From 04836cd0cec3afb196d11704a45933e325816c20 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Fri, 2 Oct 2020 15:40:26 -0400 Subject: [PATCH 01/44] fix(book/array): improve examples and grammar --- book/content/part01/algorithms-analysis.asc | 7 +- book/content/part01/how-to-big-o.asc | 1 + book/content/part02/array.asc | 217 ++++++++++-------- book/images/big-o-recursive-example.png | Bin 44967 -> 45616 bytes book/images/recursive-fibonacci-call-tree.png | Bin 41935 -> 44647 bytes book/images/time-complexity-examples.png | Bin 0 -> 169748 bytes book/part02-linear-data-structures.asc | 9 +- 7 files changed, 127 insertions(+), 107 deletions(-) create mode 100644 book/images/time-complexity-examples.png diff --git a/book/content/part01/algorithms-analysis.asc b/book/content/part01/algorithms-analysis.asc index d06b0a4f..dc7b6893 100644 --- a/book/content/part01/algorithms-analysis.asc +++ b/book/content/part01/algorithms-analysis.asc @@ -28,15 +28,14 @@ Before going deeper into space and time complexity, let's cover the basics real Algorithms (as you might know) are steps of how to do some tasks. When you cook, you follow a recipe (or an algorithm) to prepare a dish. Let's say you want to make a pizza. -.Example of an algorithm +.Example of an algorithm to make pizza [source, javascript] ---- -import { punchDown, rollOut, applyToppings, Oven } from '../pizza-utils'; +import { rollOut, applyToppings, Oven } from '../pizza-utils'; function makePizza(dough, toppings = ['cheese']) { const oven = new Oven(450); - const punchedDough = punchDown(dough); - const rolledDough = rollOut(punchedDough); + const rolledDough = rollOut(dough); const rawPizza = applyToppings(rolledDough, toppings); const pizzaPromise = oven.bake(rawPizza, { minutes: 20 }); return pizzaPromise; diff --git a/book/content/part01/how-to-big-o.asc b/book/content/part01/how-to-big-o.asc index 3067704f..951cee6b 100644 --- a/book/content/part01/how-to-big-o.asc +++ b/book/content/part01/how-to-big-o.asc @@ -111,6 +111,7 @@ T(n) = n * [t(statement 1) + m * t(statement 2...3)] Assuming the statements from 1 to 3 are `O(1)`, we would have a runtime of `O(n * m)`. If instead of `m`, you had to iterate on `n` again, then it would be `O(n^2)`. Another typical case is having a function inside a loop. Let's see how to deal with that next. +[[big-o-function-statement]] *Function call statements* When you calculate your programs' time complexity and invoke a function, you need to be aware of its runtime. If you created the function, that might be a simple inspection of the implementation. However, if you are using a library function, you might infer it from the language/library documentation. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 2e5aea39..a5b9e567 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -7,79 +7,97 @@ endif::[] === Array [[array-chap]] (((Array))) (((Data Structures, Linear, Array))) -Arrays are one of the most used data structures. You probably have used it a lot, but are you aware of the runtimes of `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. +Arrays are one of the most used data structures. You probably have used it a lot already. But, are you aware of the runtimes of `push`, `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics An array is a collection of things (strings, characters, numbers, objects, etc.). They can be many or zero. -TIP: Strings are a collection of Unicode characters, and most of the array concepts apply to them. - -.Fixed vs. Dynamic Size Arrays -**** -Some programming languages have fixed-size arrays like Java and {cpp}. -Fixed-size arrays might be a hassle when your collection gets full, and you have to create a new one with a bigger size. Those programming languages also have built-in dynamic arrays: we have `vector` in {cpp} and `ArrayList` in Java. Dynamic programming languages like JavaScript, Ruby, and Python use dynamic arrays by default. -**** +TIP: Strings are a collection of characters. Most of the array methods apply to strings as well. Arrays look like this: -.Array representation: each value is accessed through an index. +.Array representation: You can access each value in constant time through its index. image::image16.png[image,width=388,height=110] -Arrays are a sequential collection of elements that can be accessed randomly using an index. Let’s take a look at the different operations that we can do with arrays. +===== Read and Update -==== Insertion +Arrays are a contiguous collection of elements that can be accessed randomly using an index. This access by index operation takes `O(1)` time. Let’s take a look at the different functions that we can do with arrays. -Arrays are built-in in most languages. Inserting an element is simple; you can either add them at creation time or after initialization. Below you can find an example for both cases: - -.Inserting elements into an array +.Reading elements from an array and string [source, javascript] ---- -// (1) Add elements at the creation time: const array = [2, 5, 1, 9, 6, 7]; - -// (2) initialize an empty array and add values later -const array2 = []; -array2[3] = 1; -array2[100] = 2; -array2 // [empty × 3, 1, empty × 96, 2] +const string = "hello"; +console.log(array[2]); // 1 +console.log(string[1]); // "e" ---- -Using the index, you can replace whatever value you want. Also, you don't have to add items next to each other. The size of the array will dynamically expand to accommodate the data. You can reference values at whatever index you like: index 3 or even 100! In `array2`, we inserted 2 numbers, but the length is 101, and there are 99 empty spaces. +As you can see, you can access the string's characters using the same operator as arrays. + +You can update arrays in the same way, using the `[]` operator. However, you can't modify strings. They are immutable! +.Reading elements from an array and string [source, javascript] ---- -console.log(array2.length); // 101 -console.log(array2); // [empty × 3, 1, empty × 96, 2] +const array = [2, 5, 1, 9, 6, 7]; +const string = "hello"; +array[2] = 117; +console.log(array[2]); // 117 +string[1] = "z"; // doesn't change the string. +console.log(string[1]); // "e" ---- +WARNING: When you try to modify and string, you won't get an error or anything. It just gets ignored! Your only option is to create a new string with the adjusted value. + +===== Insertion -The runtime for inserting elements using an index is always is constant: _O(1)_. +Insertions on an array have different times complexities. +O(1): constant time (on average) to append a value at the end of the array. +O(n): linear time to insert a value at the beginning or middle. -===== Inserting at the beginning of the array +====== Inserting at the beginning of the array -What if you want to insert a new element at the beginning of the array? You would have to push every item to the right. +What if you want to insert a new element at the beginning of the array? You would have to push every item to the right. We can use the following method: + +.Syntax +[source, javascript] +---- +const newArrLength = arr.unshift(element1[, ...[, elementN]]); +---- + +Here's an example: .Insert to head [source, javascript] ---- -const array = [2, 5, 1, 9, 6, 7]; +const array = [2, 5, 1]; array.unshift(0); // ↪️ 8 -// array: [0, 2, 5, 1, 9, 6, 7] +console.log(array); // [ 0, 2, 5, 1 ] +array.unshift(-2, -1); // ↪️ 6 +console.log(array); // [ -2, -1, 0, 2, 5, 1 ] ---- -As you can see, `2` was at index 0, now was pushed to index 1, and everything else is on a different index. `unshift` takes *O(n)* since it affects all the elements in the array. +As you can see, `2` was at index 0, now was pushed to index 1, and everything else is on a different index. `unshift` takes *O(n)* since it affects **all** the elements of the array. .JavaScript built-in `array.unshift` **** -The `unshift()` method adds one or more elements to the beginning of an array and returns the array's new length. +The `unshift()` method adds one or more elements to the beginning of an array and returns its new length. -Runtime: O(n). +Runtime: `O(n)`. **** -===== Inserting at the middle of the array +====== Inserting at the middle of the array + +Inserting a new element in the middle involves moving part of the array but not all of the items. We can use `splice` for that: -Inserting a new element in the middle involves moving part of the array but not all of the items. +.Syntax +[source, javascript] +---- +const arrDeletedItems = arr.splice(start[, deleteCount[, item1[, item2[, ...]]]]); +---- + +Based on the parameters it takes, you can see that we can add and delete items. Here's an example of inserting in the middle. .Inserting element in the middle [source, javascript] @@ -94,12 +112,20 @@ The Big O for this operation would be *O(n)* since, in the worst case, it would .JavaScript built-in `array.splice` **** -The `splice()` method changes an array's contents by removing existing elements or adding new elements. Splice returns an array containing the deleted items. +The `splice()` method changes an array's contents by removing existing elements or adding new items. Splice returns an array containing the deleted items. Runtime: O(n). **** -===== Inserting at the end of the array +====== Inserting at the end of the array + +For inserting items at the end of the array, we can use: push. + +.Syntax +[source, javascript] +---- +const newArrLength = arr.push([element1[, ...[, elementN]]]); +---- We can push new values to the end of the array like this: @@ -116,15 +142,15 @@ Adding to the tail of the array doesn’t change other indexes. E.g., element 2 .JavaScript built-in `array.push` **** -The `push()` method adds one or more elements to the end of an array and returns the array's new length. +The `push()` method adds one or more elements to the end of an array and returns its new length. Runtime: O(1). **** [[array-search-by-value]] -==== Searching by value and index +===== Searching by value and index -Searching by the index is very easy using the `[]` operator: +As we saw before, searching by the index is very easy using the `[]` operator: .Search by index [source, javascript] @@ -133,75 +159,56 @@ const array = [2, 5, 1, 9, 6, 7]; array[4]; // ↪️ 6 ---- -Searching by index takes constant time - *O(1)* - to retrieve values out of the array. If we want to get fancier, we can create a function: +Searching by index takes constant time - *O(1)* - to retrieve values out of the array. -// image:image17.png[image,width=528,height=293] +Searching by value can be done using `indexOf`. -.Search by index +.Syntax [source, javascript] ---- -/** - * Search for array's element by index - * - * @example Given array = [2, 5, 1, 9, 6, 7, -1]; - * searchByIndex(array, 3); //↪️ 9 - * searchByIndex(array, 6); //↪️ -1 - * searchByIndex(array, 13); //↪️ undefined - * @param {array} array - * @param {number} index - * @returns {any} value or undefined if not found - */ -function searchByIndex(array, index) { - return array[index]; -} +const index = arr.indexOf(searchElement[, fromIndex]); ---- -Finding out if a value is in the array or not is a different story. - -// image:image18.png[image,width=528,height=338] +If the value is there, we will get the index, otherwise `-1`. .Search by value [source, javascript] ---- -/** - * Search for array's element by value - * - * @example Given array = [2, 5, 1, 9, 6, 7]; - * searchByValue(array, 9); //↪️ 3 - * searchByValue(array, 13); //↪️ -1 - * @param {array} array - * @param {any} value - */ -function searchByValue(array, value) { - for (let index = 0; index < array.length; index++) { - const element = array[index]; - if (element === value) return index; - } - return -1; -} +const array = [2, 5, 1, 9, 6, 7]; +console.log(array.indexOf(9)); // ↪️ 3 +console.log(array.indexOf(90)); // ↪️ -1 ---- -We would have to loop through the whole array (worst case) or until we find it: *O(n)*. +Internally, `indexOf` has to loop through the whole array (worst case) or until we find the first occurrence. Time complexity is *O(n)*. -==== Deletion +===== Deletion There are three possible deletion scenarios (similar to insertion): removing at the beginning, middle, or end. -===== Deleting element from the beginning +====== Deleting element from the beginning + +Deleting from the beginning can be done using the `splice` function and the `shift`. For simplicity, we will use the latter. -Deleting from the beginning can be done using the `splice` function and also the `shift`. For simplicity, we will use the latter. +.Syntax +[source, javascript] +---- +const removedElement = arr.shift(); +let arrDeletedItems = arr.splice(start[, deleteCount[, item1[, item2[, ...]]]]); +---- .Deleting from the beginning of the array. [source, javascript] ---- const array = [2, 111, 5, 1, 9, 6, 7]; // Deleting from the beginning of the array. -array.shift(); // ↪️2 -array.shift(); // ↪️111 -// array: [5, 1, 9, 6, 7] +array.shift(); // ↪️ 2 +array.shift(); // ↪️ 111 +console.log(array); // [5, 1, 9, 6, 7] +array.splice(0, 1); // ↪️ [ 5 ] +console.log(array); // [ 1, 9, 6, 7 ] ---- -As expected, this will change every index, so this takes *O(n)*. +As expected, this will change every index on the array, so this takes linear time: *O(n)*. .JavaScript built-in array.shift **** @@ -210,25 +217,35 @@ The `shift()` method shift all elements to the left. In turn, it removes the fir Runtime: O(n). **** -===== Deleting element from the middle +====== Deleting element from the middle We can use the `splice` method for deleting an item from the middle of an array. +You can delete multiple items at once: + .Deleting from the middle [source, javascript] ---- const array = [0, 1, 2, 3, 4]; // Deleting from the middle -array.splice(2, 1); // ↪️[2] <1> -// array: [0, 1, 3, 4] +array.splice(2, 3); // ↪️ [ 2, 3, 4 ] <1> +console.log(array); // [0, 1] ---- -<1> delete 1 element at position 2 +<1> delete 3 elements starting on position 2 Deleting from the middle might cause most of the array elements to move up one position to fill in for the eliminated item. Thus, runtime: O(n). -===== Deleting element from the end +====== Deleting element from the end + +Removing the last element is very straightforward using pop: -Removing the last element is very straightforward: +.Syntax +[source, javascript] +---- +const removedItem = arr.pop(); +---- + +Here's an example: .Deleting last element from the array [source, javascript] @@ -238,7 +255,7 @@ array.pop(); // ↪️111 // array: [2, 5, 1, 9] ---- -No other element has been shifted, so it’s an _O(1)_ runtime. +No other element was touched, so it’s an _O(1)_ runtime. .JavaScript built-in `array.pop` **** @@ -247,7 +264,7 @@ The `pop()` method removes the last element from an array and returns that eleme Runtime: O(1). **** -==== Array Complexity +===== Array Complexity To sum up, the time complexity of an array is: (((Tables, Linear DS, Array Complexities))) @@ -268,11 +285,14 @@ To sum up, the time complexity of an array is: .Array Operations time complexity |=== | Operation | Time Complexity | Usage -| push ^| O(1) | Insert element to the right side. -| pop ^| O(1) | Remove the rightmost element. -| unshift ^| O(n) | Insert element to the left side. -| shift ^| O(n) | Remove leftmost element. -| splice ^| O(n) | Insert and remove from anywhere. +| `push` ^| O(1) | Insert element on the right side. +| `pop` ^| O(1) | Remove the rightmost element. +| `[]` ^| O(1) | Search for element by index. +| `indexOf` ^| O(n) | Search for element by value. +| `unshift` ^| O(n) | Insert element on the left side. +| `shift` ^| O(n) | Remove leftmost element. +| `splice` ^| O(n) | Insert and remove from anywhere. +| `slice` ^| O(n) | Returns shallow copy of the array. |=== //end::table @@ -306,9 +326,9 @@ include::../../interview-questions/max-subarray.js[tag=description] _Solution: <>_ // tag::array-q-buy-sell-stock[] -===== Best Time to Buy and Sell an Stock +===== Best Time to Buy and Sell a Stock -*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You are only given one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ +*AR-2*) _You are given an array of integers. Each value represents the closing value of the stock on that day. You have only one chance to buy and then sell. What's the maximum profit you can obtain? (Note: you have to buy first and then sell)_ Examples: @@ -317,7 +337,6 @@ Examples: maxProfit([1, 2, 3]) // 2 (buying at 1 and selling at 3) maxProfit([3, 2, 1]) // 2 (no buys) maxProfit([5, 10, 5, 10]) // 5 (buying at 5 and selling at 10) - ---- // _Seen in interviews at: Amazon, Facebook, Bloomberg_ diff --git a/book/images/big-o-recursive-example.png b/book/images/big-o-recursive-example.png index 67395f3c94048535cd4316ac65235f793368b384..77aae59890e1caa77f9d92f49c09fa684160b484 100644 GIT binary patch literal 45616 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 z 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 literal 44967 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

2*+dB)MSw}25LAw)U{Ftl@N-{?`CGDL2M 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 OedYKK>zc#&v3~=SUA>(E diff --git a/book/images/recursive-fibonacci-call-tree.png b/book/images/recursive-fibonacci-call-tree.png index f6e028c3cf7c9cad1748ee3072c82a4c6eec3982..ff7b31f355b82a370dd5096579903c178e298e53 100644 GIT binary patch literal 44647 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 ?a+`oH`!Xw{JwygigfdaX~~^`FQbDK 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 z%0D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 z%0D$1N%GNSGy@P~&EH;F#%xa! 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 UFOl_s8Uqk`y85}Sb4q9e04{)cvj6}9 literal 0 HcmV?d00001 diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index c357fb1d..6b3ddae2 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -1,9 +1,11 @@ [[part02-linear-data-structures]] == Linear Data Structures -Data Structures comes in many flavors. There’s no one to rule them all. You have to know the tradeoffs so you can choose the right one for the job. +Data Structures come in many flavors. There's no one to rule them all. You have to know the tradeoffs so you can choose the right one for the job. -Even though in your day-to-day, you might not need to re-implementing them, knowing how they work internally would help you know when to use one over the other or even tweak them to create a new one. We are going to explore the most common data structures' time and space complexity. +In your day-to-day work, you might not need to re-implement basic data structures. However, knowing how they work internally can help you understand their time complexity better (Remember the chapter <>). + +When you are aware of the data structures implementations, you spot when to use one over the other or even extend them to create a new one. We are going to explore the most common data structures' time and space complexity. .In this part we are going to learn about the following linear data structures: - <> @@ -22,6 +24,7 @@ If you want to have a general overview of each one, take a look at the following +++ endif::[] +<<< include::content/part02/array.asc[] <<< @@ -35,5 +38,3 @@ include::content/part02/queue.asc[] <<< include::content/part02/array-vs-list-vs-queue-vs-stack.asc[] - - From 8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Sat, 17 Oct 2020 16:33:20 -0400 Subject: [PATCH 02/44] feat(book/array): add array patterns for solving problems --- book/content/part02/array.asc | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index a5b9e567..500f437a 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -296,6 +296,68 @@ To sum up, the time complexity of an array is: |=== //end::table +==== Array Patterns for Solving Interview Questions + +Many programming problems involves manipulating arrays. Here are some patterns that can help you improve your problem solving skills. + +===== Two Pointers Pattern + +Usually we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes handy. Let's do examples. + +*AR-A*) _Given a sorted array of integers, find two numbers that add up to target t and return their values._ + +.Examples +[source, javascript] +---- +twoSum([ -5, -3, 1, 10 ], 7); // [-3, 10] // (10 - 3 = 7) +twoSum([ -5, -3, -1, 1, 2 ], 30); // [] // no 2 numbers add up to 30 +twoSum([ -3, -2, -1, 1, 1, 3, 4], -4); // [-3, -1] // (-3 -1 = -4) +---- + +**Solutions:** + +One naive solution would be use two pointers in a nested loop: + +.Solution 1: Brute force +[source, javascript] +---- +function twoSum(arr, target) { + for (let i = 0; i < arr.length - 1; i++) + for (let j = i + 1; j < arr.length; j++) + if (arr[i] + arr[j] === target) return [arr[i], arr[j]]; + return []; +} +---- + +The runtime of this solution would be `O(n^2)`. Because of the nested loops. Can we do better? We are not using the fact that the array is SORTED! + +We can use two pointers but this time we will traverse the array only once. One starting from the left side and the other from the right side. + +Depending on if the the sum is bigger or smaller than target, we move right or left pointer. If the sum is equal to target we return the values at the current left or right pointer. + +.Solution 1: Two Pointers +[source, javascript] +---- +function twoSum(arr, target) { + let left = 0, right = arr.length -1; + while (left < right) { + const sum = arr[left] + arr[right]; + if (sum === target) return [arr[left], arr[right]]; + else if (sum > target) right--; + else left++; + } + return []; +} +---- + +These two pointers have a runtime of `O(n)`. + +REMEMBER: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. + +===== Sliding Windows Pattern + +TBD + ==== Practice Questions (((Interview Questions, Arrays))) From 8fa2746f5c917b0f5a88289d854166210925f9c7 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Mon, 19 Oct 2020 09:44:29 -0400 Subject: [PATCH 03/44] feat(book/array): sliding window pattern --- .gitignore | 1 + book/content/part02/array.asc | 130 +++++++++++++++++++++++-- book/images/max-sum-backtracking.png | Bin 0 -> 28439 bytes book/images/max-sum-sliding-window.png | Bin 0 -> 5905 bytes 4 files changed, 123 insertions(+), 8 deletions(-) create mode 100644 book/images/max-sum-backtracking.png create mode 100644 book/images/max-sum-sliding-window.png diff --git a/.gitignore b/.gitignore index 363ed4fe..9675ebf8 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,7 @@ local.properties ###################### # Windows image file caches Thumbs.db +*Zone.Identifier # Folder config file Desktop.ini diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 500f437a..8461f453 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -298,13 +298,13 @@ To sum up, the time complexity of an array is: ==== Array Patterns for Solving Interview Questions -Many programming problems involves manipulating arrays. Here are some patterns that can help you improve your problem solving skills. +Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. ===== Two Pointers Pattern -Usually we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes handy. Let's do examples. +Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. -*AR-A*) _Given a sorted array of integers, find two numbers that add up to target t and return their values._ +*AR-A*) _Given a sorted `array` of integers, find two numbers that add up to a `target` and return their values._ .Examples [source, javascript] @@ -316,7 +316,7 @@ twoSum([ -3, -2, -1, 1, 1, 3, 4], -4); // [-3, -1] // (-3 -1 = -4) **Solutions:** -One naive solution would be use two pointers in a nested loop: +One naive solution would be to use two pointers in a nested loop: .Solution 1: Brute force [source, javascript] @@ -331,9 +331,9 @@ function twoSum(arr, target) { The runtime of this solution would be `O(n^2)`. Because of the nested loops. Can we do better? We are not using the fact that the array is SORTED! -We can use two pointers but this time we will traverse the array only once. One starting from the left side and the other from the right side. +We can use two pointers: one pointer starting from the left side and the other from the right side. -Depending on if the the sum is bigger or smaller than target, we move right or left pointer. If the sum is equal to target we return the values at the current left or right pointer. +Depending on whether the sum is bigger or smaller than the target, we move right or left. If the sum is equal to the target, we return the current left and right pointer's values. .Solution 1: Two Pointers [source, javascript] @@ -352,11 +352,125 @@ function twoSum(arr, target) { These two pointers have a runtime of `O(n)`. -REMEMBER: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. +WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. ===== Sliding Windows Pattern -TBD +The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! + +*AR-B*) _Find the max sum of an array of integers, only taking `k` items from the right and left side sequentially._ +_*Constraints*: `k` won't exceed the number of elements `n`: `1 <= k <= n`._ + +.Examples +[source, javascript] +---- +maxSum([1,2,3], 3); // 6 // (1 + 2 + 3 = 6) +maxSum([1,1,1,1,200,1], 3); // 202 // (1 + 200 + 1 = 202) +maxSum([3, 10, 12, 4, 7, 2, 100, 1], 3); // 104 // (3 + 1 + 100 = 104) +maxSum([1,200,1], 1); // 6 // (1 + 2 + 3 = 6) +---- + +Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k=3` as an example. + +There are multiple ways to solve this problem. Before applying the sliding window, let's consider this other algorithm: + +*Backtracking algorithm* + +- We have two initial choices: going left with `3` or right with `1`. +- We can take the first element from the left side `3`; from there, we can keep going left with `10` or right `1`. +- If we go right with `1` on the right side, next, we have two options from the right side `100` or `10`. +- If we go with `100`, then we compute the sum `3 + 1 + 100 = 104`. +- Repeat with other combinations and keep track of the max sum. + +How many combinations can we form? 2^k, since in the worst-case k is n, then we have a runtime of `2^n`! + +// image::max-sum-backtracking.png[max sum with backtracking] + +We can also visualize all the options as follows. If you add up the numbers from the top to bottom, you get the result for all combinations: + +[graphviz, max-sum-sliding-window-red, png] +.... +graph G { + 0 -- 3 + 0 -- 1 + + 3 -- 10 + 3 -- a1 + + 10 -- 12 + 10 -- b1 + + a1 -- a10 + a1 -- 100 + + 1 -- a3 + 1 -- a100 + + a3 -- b10 + a3 -- b100 + + a100 -- b3 + a100 -- 2 + + 1, a1, b1 [label = 1 color = red] + 10, a10, b10 [label = 10 color = red] + 3, a3, b3 [label = 3 color = red] + 100, a100, b100 [label = 100 color = red] + + 12 -- res1 [color = gray] + b1 -- res2 [color = gray] + a10 -- res3 [color = gray] + 100 -- res4 [color = gray] + b10 -- res5 [color = gray] + b100 -- res6 [color = gray] + b3 -- res7 [color = gray] + 2 -- res8 [color = gray] + + res1 [label = "Sum: 25", shape=plaintext, fontcolor=gray] + res2 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res3 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res4 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res5 [label = "Sum: 14", shape=plaintext, fontcolor=gray] + res6 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res7 [label = "Sum: 104", shape=plaintext, fontcolor=gray] + res8 [label = "Sum: 103", shape=plaintext, fontcolor=gray] +} +.... + + +Notice that many elements on the middle branches (in red color) have the same numbers but in a different order, so the sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. + +*Sliding window algorithm* + +Another approach is using sliding windows. Since the sum always has `k` elements, we can compute the cumulative sum for k first elements from the left. Then, we slide the "window" to the right and remove one from the left until we cover all the right items. In the end, we would have all the possible combinations without duplicated work. + +Check out the following illustration: + +image::max-sum-sliding-window.png[sliding window for arrays] + +Here's the implementation: + +[source, javascript] +---- +function maxSum(arr, k) { + let left = k - 1; + let right = arr.length -1; + let sum = 0; + for (let i = 0; i < k; i++) sum += arr[i]; + let max = sum; + + for (let i = 0; i < k; i++) { + sum += arr[right--] - arr[left--]; + max = Math.max(max, sum); + } + + return max; +}; +---- + +The difference between the two pointers pattern and the sliding windows, it's that we move both pointers at the same time to keep the length of the window the same. + +The runtime for this code is: `O(k)`. We move the window k times. Since `k <= n`, the final runtime is `O(n)`. ==== Practice Questions (((Interview Questions, Arrays))) diff --git a/book/images/max-sum-backtracking.png b/book/images/max-sum-backtracking.png new file mode 100644 index 0000000000000000000000000000000000000000..3712a651b8e4917a61266b9dda6511c579d93420 GIT binary patch literal 28439 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 U9d`pZyhA*EpmM+9o=MRE0$p#$cmMzZ literal 0 HcmV?d00001 diff --git a/book/images/max-sum-sliding-window.png b/book/images/max-sum-sliding-window.png new file mode 100644 index 0000000000000000000000000000000000000000..67e32d2feb579ba574936056aef303aac7ce1abb GIT binary patch literal 5905 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 literal 0 HcmV?d00001 From 273a9dc65410fb0027c04d42ba0ffccfefca606e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 19 Oct 2020 15:04:23 +0000 Subject: [PATCH 04/44] :bookmark: chore(release): 2.4.0 # [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) ### Bug Fixes * **book/array:** improve examples and grammar ([04836cd](https://github.com/amejiarosario/dsa.js/commit/04836cd0cec3afb196d11704a45933e325816c20)) ### Features * **book/array:** add array patterns for solving problems ([8c7b7be](https://github.com/amejiarosario/dsa.js/commit/8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e)) * **book/array:** sliding window pattern ([8fa2746](https://github.com/amejiarosario/dsa.js/commit/8fa2746f5c917b0f5a88289d854166210925f9c7)) --- CHANGELOG.md | 13 +++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c98336a7..3bf043c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) + + +### Bug Fixes + +* **book/array:** improve examples and grammar ([04836cd](https://github.com/amejiarosario/dsa.js/commit/04836cd0cec3afb196d11704a45933e325816c20)) + + +### Features + +* **book/array:** add array patterns for solving problems ([8c7b7be](https://github.com/amejiarosario/dsa.js/commit/8c7b7be8fe24ec1df66846b05fbc2ef5daeb6c7e)) +* **book/array:** sliding window pattern ([8fa2746](https://github.com/amejiarosario/dsa.js/commit/8fa2746f5c917b0f5a88289d854166210925f9c7)) + # [2.3.0](https://github.com/amejiarosario/dsa.js/compare/2.2.1...2.3.0) (2020-10-03) diff --git a/package-lock.json b/package-lock.json index 7ea7ed10..c89355e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9cf19af3..b13293e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.3.0", + "version": "2.4.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 4ba6fe0de1461f2cb75e775f08c855b6d8d93cb5 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Mon, 19 Oct 2020 11:18:24 -0400 Subject: [PATCH 05/44] chore(book/array): improve exercises --- book/config | 2 +- book/content/part02/array.asc | 54 +++++++++++++++++---- book/images/max-sum-sliding-window-red.png | Bin 0 -> 41546 bytes 3 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 book/images/max-sum-sliding-window-red.png diff --git a/book/config b/book/config index c95ecf80..95b431fb 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit c95ecf80705c3c41e570c095574fa4c4affee732 +Subproject commit 95b431fb37af4b23a7ce17c183da7313f1d1acb4 diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 8461f453..8050c390 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -300,12 +300,29 @@ To sum up, the time complexity of an array is: Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. +(((Patterns, Two Pointers))) + ===== Two Pointers Pattern Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. *AR-A*) _Given a sorted `array` of integers, find two numbers that add up to a `target` and return their values._ +.Function Signature +[source, javascript] +---- +/** + * Find two numbers that add up target. + * @param arr - The array of integers + * @param target - The target + * @returns {number[]} - array with the values that add up to target. + */ +function twoSum(arr, target) { + // give it a try on your own ... +} +---- + + .Examples [source, javascript] ---- @@ -335,7 +352,7 @@ We can use two pointers: one pointer starting from the left side and the other f Depending on whether the sum is bigger or smaller than the target, we move right or left. If the sum is equal to the target, we return the current left and right pointer's values. -.Solution 1: Two Pointers +.Solution 2: Two Pointers [source, javascript] ---- function twoSum(arr, target) { @@ -354,12 +371,30 @@ These two pointers have a runtime of `O(n)`. WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. -===== Sliding Windows Pattern +(((Patterns, Sliding Window Pointers))) + +===== Sliding Window Pattern The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! *AR-B*) _Find the max sum of an array of integers, only taking `k` items from the right and left side sequentially._ -_*Constraints*: `k` won't exceed the number of elements `n`: `1 <= k <= n`._ +**Constraints**: `k` won't exceed the number of elements in the array: `1 <= k <= n`. + +.Function Signature +[source, javascript] +---- +/** + * Find the max sum of an array of integers, + * only taking `k` items from the right and left side. + * + * @param {number[]} arr - The array of integers + * @param {number} k - The number of elements to sum up. + * @returns {number} + */ +function maxSum(arr, k) { + // Give it a try +}; +---- .Examples [source, javascript] @@ -370,23 +405,23 @@ maxSum([3, 10, 12, 4, 7, 2, 100, 1], 3); // 104 // (3 + 1 + 100 = 104) maxSum([1,200,1], 1); // 6 // (1 + 2 + 3 = 6) ---- -Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k=3` as an example. - There are multiple ways to solve this problem. Before applying the sliding window, let's consider this other algorithm: *Backtracking algorithm* +Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k = 3` as an example. + - We have two initial choices: going left with `3` or right with `1`. - We can take the first element from the left side `3`; from there, we can keep going left with `10` or right `1`. - If we go right with `1` on the right side, next, we have two options from the right side `100` or `10`. - If we go with `100`, then we compute the sum `3 + 1 + 100 = 104`. - Repeat with other combinations and keep track of the max sum. -How many combinations can we form? 2^k, since in the worst-case k is n, then we have a runtime of `2^n`! +How many combinations can we form? `2^k`, since in the worst-case `k` is equal to `n`, then we have a runtime of `O(2^n)`! // image::max-sum-backtracking.png[max sum with backtracking] -We can also visualize all the options as follows. If you add up the numbers from the top to bottom, you get the result for all combinations: +We can also visualize all the options as follows. If you add up the numbers from top to bottom, you get the result for all combinations: [graphviz, max-sum-sliding-window-red, png] .... @@ -438,7 +473,7 @@ graph G { .... -Notice that many elements on the middle branches (in red color) have the same numbers but in a different order, so the sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. +Notice that many middle branches (in red color) have the same numbers, but in a different order, so their sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. *Sliding window algorithm* @@ -450,6 +485,7 @@ image::max-sum-sliding-window.png[sliding window for arrays] Here's the implementation: +.Solution: using sliding window pointers [source, javascript] ---- function maxSum(arr, k) { @@ -470,7 +506,7 @@ function maxSum(arr, k) { The difference between the two pointers pattern and the sliding windows, it's that we move both pointers at the same time to keep the length of the window the same. -The runtime for this code is: `O(k)`. We move the window k times. Since `k <= n`, the final runtime is `O(n)`. +The runtime for this code is: `k`. As we move the window k times. Since `k <= n`, the final runtime is `O(n)`. ==== Practice Questions (((Interview Questions, Arrays))) diff --git a/book/images/max-sum-sliding-window-red.png b/book/images/max-sum-sliding-window-red.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbc1cb10e5aaf9ffd964754db418193834f99b1 GIT binary patch literal 41546 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%0DL~ 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 literal 0 HcmV?d00001 From f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Thu, 22 Oct 2020 12:22:03 -0400 Subject: [PATCH 06/44] feat(book/hashmap): add code examples and patterns --- book/D-interview-questions-solutions.asc | 6 +- book/content/part02/array.asc | 15 +- book/content/part02/hash-map.asc | 680 ++++++++++++++++++ book/content/part03/map.asc | 71 -- book/content/part03/set.asc | 3 +- book/content/part03/treemap.asc | 59 +- .../old-hashmap.asc} | 72 +- book/images/sliding-window-map.png | Bin 0 -> 18904 bytes .../most-common-words-ii.js | 47 ++ .../most-common-words-ii.spec.js | 26 + book/part02-linear-data-structures.asc | 4 + book/part03-graph-data-structures.asc | 8 +- book/part04-algorithmic-toolbox.asc | 1 - book/readme.asc | 2 +- src/data-structures/custom/lru-cache.js | 60 +- src/data-structures/custom/lru-cache.spec.js | 12 + 16 files changed, 865 insertions(+), 201 deletions(-) create mode 100644 book/content/part02/hash-map.asc delete mode 100644 book/content/part03/map.asc rename book/{content/part03/hashmap.asc => deprecated/old-hashmap.asc} (87%) create mode 100644 book/images/sliding-window-map.png create mode 100644 book/interview-questions/most-common-words-ii.js create mode 100644 book/interview-questions/most-common-words-ii.spec.js diff --git a/book/D-interview-questions-solutions.asc b/book/D-interview-questions-solutions.asc index e93409f5..1e37568f 100644 --- a/book/D-interview-questions-solutions.asc +++ b/book/D-interview-questions-solutions.asc @@ -437,7 +437,8 @@ The complexity of any of the BFS methods or DFS is similar. :leveloffset: -1 [#hashmap-q-two-sum] -include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] +include::content/part02/hash-map.asc[tag=hashmap-q-two-sum] +// include::content/part03/hashmap.asc[tag=hashmap-q-two-sum] This simple problem can have many solutions; let's explore some. @@ -480,7 +481,8 @@ include::interview-questions/two-sum.js[tags=description;solution] [#hashmap-q-subarray-sum-equals-k] -include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] +include::content/part02/hash-map.asc[tag=hashmap-q-subarray-sum-equals-k] +// include::content/part03/hashmap.asc[tag=hashmap-q-subarray-sum-equals-k] This problem has multiple ways to solve it. Let's explore some. diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 8050c390..86acc40a 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -3,10 +3,11 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] +(((Array))) (((Data Structures, Linear, Array))) [[array]] -=== Array [[array-chap]] -(((Array))) -(((Data Structures, Linear, Array))) +[[array-chap]] +=== Array + Arrays are one of the most used data structures. You probably have used it a lot already. But, are you aware of the runtimes of `push`, `splice`, `shift`, `indexOf`, and other operations? In this chapter, we are going deeper into the most common operations and their runtimes. ==== Array Basics @@ -300,9 +301,7 @@ To sum up, the time complexity of an array is: Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. -(((Patterns, Two Pointers))) - -===== Two Pointers Pattern +===== Two Pointers Pattern (((Patterns, Two Pointers))) Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. @@ -371,9 +370,7 @@ These two pointers have a runtime of `O(n)`. WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. -(((Patterns, Sliding Window Pointers))) - -===== Sliding Window Pattern +===== Sliding Window Pattern (((Patterns, Sliding Window))) [[sliding-window-array]] The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc new file mode 100644 index 00000000..378c62bb --- /dev/null +++ b/book/content/part02/hash-map.asc @@ -0,0 +1,680 @@ +ifndef::imagesdir[] +:imagesdir: ../../images +:codedir: ../../../src +endif::[] + +(((Map))) (((HashMap))) (((HashTable))) (((Data Structures, Linear, HashMap))) +[[hashmap-chap]] +=== Hash Map + +A Map is a data structure where a `key` is mapped to a `value`. It's used for a fast lookup of values based on the given key. Only one key can map to a value (no duplicates). + +NOTE: Map has many terms depending on the programming language. Here are some other names: Hash Map, Hash Table, Associative Array, Unordered Map, Dictionary. + +==== Map Application + +Maps are one of the most popular data structures because of their fast lookup time. + +.Holding key/value pairs have many applications like: +- *Caching*: keys are URLs, and values are website content. +- *Indexing*: keys are words, and values are the list of documents where they are found. +- *Spell checking*: keys are English words. +- *Networks*: the key is an IP address/port number, while the value is the corresponding application. + +There are many other use cases. We will explore some techniques that we can use to speed up your code with it. But first, let's get the fundamentals out of the way. + +==== Map vs Array + +A map shares some similarities with an array. In an array, the key/index is always a number, while the value in a Map can be anything! + +Both an Array and Map are very fast for getting values by key in constant time O(1) on average. + +A Map uses an array internally. It translates the key into an array's index using a hash function. That's why it is also called "Hash Map" or "Hash Table". + +==== Map vs Objects + +JavaScript has two ways to use Maps: one uses objects (`{}`), and the other is using the built-in `Map`. + +.Using Objects as a HashMap. +[source, javascript] +---- +const objMap = {}; +// mapping values to keys +objMap['str'] = 'foo'; // string as key +objMap[1] = 'bar'; // number as key +objMap[{}] = 'test1'; // object as key (not recommended) +const obj1 = {}; +objMap[obj1] = 'test2'; // object as key (not recommended) + +// searching values by key +console.log(objMap[1]); //↪️ bar +console.log(objMap['str']); //↪️ foo +console.log(objMap[{}]); //↪️ test2 👀 +console.log(objMap[obj1]); //↪️ test2 👀 + +console.log(objMap); // {1: "bar", str: "foo", [object Object]: "test"} +---- + +Notice that the `objMap[{}]` and `objMap[obj1]` return the same value! They both were converted to `[object Object]` as a key. + +Let's now use the built-in Map + +.JavaScript Built-in Map Usage +[source, javascript] +---- +const myMap = new Map(); +// mapping values to keys +myMap.set('str', 'foo'); // string as key +myMap.set(1, 'bar'); // number as key +myMap.set({}, 'test1'); // object as key +const obj1 = {}; +myMap.set(obj1, 'test2'); + +// searching values by key +console.log(myMap.get(1)); //↪️ bar +console.log(myMap.get('str')); //↪️ foo +console.log(myMap.get({})); //↪️ undefined 👀 +console.log(myMap.get(obj1)); //↪️ test2 + +console.log(myMap); +// Map(4) {"str" => "foo", 1 => "bar", {…} => "test1", {…} => "test2"} +---- + +As you can see, `Map` handled other objects as a key much better. + +Objects are one of the oldest data structures in JavaScript. Maps were introduced as part of the ES2015 enhancements to solve the shortcomings of using Object as a Hashmap. Having two methods can be confusing. We are going to make it clear when to use one or the other. + +.Map vs. Object main differences: +- *Object*'s keys should be strings, numbers, or symbols. *Map*'s keys can be anything! Strings, numbers, symbols, arrays, objects, and even other maps! +- *Objects* are not guaranteed to be in insertion order. *Maps* guarantee insertion order. +- When using *Objects* as HashMaps, they might be polluted with other keys defined at the prototype chain. You need to use `hasOwnProperty` or `Object.keys` to avoid these issues. *Maps* doesn't get polluted by the prototype chain. +- *Maps* has been optimized for cases of frequent additions and removals. *Objects* are not optimized. + +When do you use an Object over a Map then? When you need to use JSON since it doesn't support Maps yet. + +You can convert from Map to Object and vice-versa: + +```js +const objMap = Object.fromEntries(myMap.entries()); // map -> obj +const map = new Map(objMap.entries()); // obj -> map +``` + +For completeness, here are some of the most basic operations side-by-side. + +.Object vs Map Side-by-Side +[source, javascript] +---- +// +// Initialization +// +const obj1 = {}; // Empty +const obj2 = { adrian: 33, nathalie: 32 }; // w/values + +const map1 = new Map(); // Empty +const map2 = new Map([['adrian', 33], ['nathalie', 32]]); // w/values + +// +// Access +// +assert.equal(obj1.adrian, undefined); +assert.equal(obj2['adrian'], 33); // also "obj2.adrian" + +assert.equal(map1.get('adrian'), undefined); +assert.equal(map2.get('adrian'), 33); + +// +// Check if the key exists +// +assert.equal(obj1.adrian !== undefined, false); +assert.equal(obj2['adrian'] !== undefined, true); + +assert.equal(map1.has('adrian'), false); +assert.equal(map2.has('adrian'), true); + +// +// Adding new elements +// +obj2['Abi'] = 2; +obj2['Dudu'] = 2; + +map2.set('Abi', 2).set('Dudu', 2); + +// +// Deleting +// +delete obj2.Dudu; + +map2.delete('Dudu'); + +// +// Iterating key/value pairs with for loops +// +for (var k in obj2){ + console.log(`key: ${k}, value: ${obj2[k]}`); +} + +for (const [k, v] of map2){ + console.log(`key: ${k}, value: ${v}`); +} + +// +// Iterating key/value pairs with +// +Object.keys(obj2) + .forEach(k => console.log(`key: ${k}, value: ${obj2[k]}`)); + +map2 + .forEach((v, k) => console.log(`key: ${k}, value: ${v}`)); + +// +// Getting the size +// +assert.equal(Object.keys(obj2).length, 3); +assert.equal(map2.size, 3); + +// +// Representation +// +console.log(obj2); +// { adrian: 33, nathalie: 32, Abi: 2 } +console.log(map2); +// Map { 'adrian' => 33, 'nathalie' => 32, 'Abi' => 2 } +---- + +From this point on, we will use built-in Maps (and not objects). + +==== Key by Reference vs. by Value + +There's a catch when you use objects/arrays/classes as keys on a `Map`. JavaScript will match the key only if it has the same reference in memory. + +Look at the following example: + +.Array as a Map's key +[source, javascript] +---- +const map = new Map(); + +map.set([1, 2, 3], 'value'); +console.log(map.get([1, 2, 3])); // undefined 👀 +---- + +Trying to access a Map's value using a complex type is a common gotcha. If you want array as a key to work, you need to hold on to a reference, like the following example. + +.Array reference as a Map's key +[source, javascript] +---- +const map = new Map(); +const arr = [1, 2, 3]; + +map.set(arr, 'value'); +console.log(map.get(arr)); // 'value' +---- + +The same applies to any key that is not a number, string, or symbol. + +===== Map Inner Workings + +.There are two popular ways to implement Maps, key/value pair data structures: +- Array + Hash Function: Hash Map +- Balanced Binary Search Tree: TreeMap. + +In this chapter, we will focus on the Hash Map implementation, which is the one that JavaScript has built-in. In the next parts, we will cover TreeMap. + +A map uses an array to store the values and a hash function that translate the key into an array index behind the scenes. + +Let's say we have the following key/value pairs. + +[source, javascript] +---- +const map = new Map(); + +map.set('cat', 2); +map.set('dog', 1); +map.set('rat', 7); +map.set('art', 8); +---- + +.There are multiple algorithms for hashing keys. One of them is using modulo division: +1. Convert the key into a number (a.k.a hash code or pre-hashing). +2. Convert the number from step 1 into an array index using modulo. (`hashCode % arrayLength`). + +.Internal HashMap representation +image::image41.png[image,width=528,height=299] + +No hash function is perfect, so it's going to map two different keys to the same value for some cases. That's what we called a *collision*. When that happens, we chain the results on the same bucket. If we have too many collisions, it could degrade the lookup time from `O(1)` to `O(n)`. + +The Map doubles the size of its internal array to minimize collisions when it reaches a certain threshold. This restructuring is called a *rehash*. This *rehash* operation takes `O(n)`, since we have to visit every old key/value pair and remap it to the new internal array. Rehash doesn't happen very often, so statistically speaking, Maps can insert/read/search in constant time `O(1)`. + +NOTE: collisions and rehashes are handled automatically. But it's still good to know the trade-offs. We will go into more detail when we compare it with TreeMaps. + + +===== HashMap time complexity + +Hash Map is optimal for searching values by key in constant time *O(1)*. However, searching by value is not any better than an array since we have to visit every value *O(n)*. + +(((Tables, Non-Linear DS, HashMap complexities))) + +// tag::table[] +.Time complexity for a Hash Map +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| Hash Map ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time. +// end::table[] + +indexterm:[Runtime, Linear] +As you can notice, we have amortized times since it will take O(n) while it resizes in the unfortunate case of a rehash. After that, it will be *O(1)*. + + +==== HashMap Patterns for Solving Interview Questions + +HashMaps are one of the most versatile data structures. You can speed up many programs by using them correctly. In this section, we are going to explore some common patterns. + +===== Smart Caching (((Patterns, Caching))) +One everyday use case for key/value data structures is caching. If you are working on a trendy website, you can save scale better if you cache the results instead of hitting the database and other expensive services every time. That way, you can server many more users requesting the same data. + +A common issue with cache you want to expire data you don't often use to make room for hot data. This next exercise is going to help you do that. + +*HM-A*) _Design a Least Recently Used (LRU) cache. This cache has a limit on the number of items it can store. Once the limit it's reached, it will discard the least recently used item. Design a class that takes a limit value, and the methods put and get, to insert and get data._ + +.Signature +[source, javascript] +---- +/** + * Least Recently Used (LRU) cache. + * Key/Value storage with fixed max number of items. + * Least recently used items are discarded once the limit is reached. + * Reading and updating the values mark the items as recently used. + */ +class LRUCache { + /** + * @param {number} capacity - The max number of items on the cache + */ + constructor(capacity) { + + } + + /** + * Get the value associated with the key. Mark keys as recently used. + * @param {number} key + * @returns {number} value or if not found -1 + */ + get(key: number): number { + + } + + /** + * Upsert key/value pair. Updates mark keys are recently used. + * @param {number} key + * @param {number} value + * @returns {void} + */ + put(key, value) { + + } +} +---- + +.Examples: +[source, javascript] +---- +const c = new LRUCache(2); // capacity: 2 +c.put(2, 1); // Cache is [2:1] +c.put(1, 1); // Cache is [2:1, 1:1] +c.put(2, 3); // Cache is [1:1, 2:3] +c.put(4, 1); // Removed 1. Cache is [2:3, 4:1] +c.get(1); // Returns -1 (key 1 not found) +c.get(2); // Returns 3. Cache is [4:1, 2:3] +c.put(5, 5); // Removed key 4. Cache is [2:3, 5:5] +c.get(4); // Returns -1 (key 4 not found) +---- + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solution* + +The LRU cache behavior is almost identical to the Map. + +.The differences are: +- LRU cache has a limited size, while Map grows until you run out of memory. +- LRU cache removes the least used items once the limit is reached. + +We can extend the Map functionality. Also, the Map implementation on JavaScript already keeps the items by insertion order. So, every time we read or update a value, we can remove it from where it was and add it back. That way, the oldest (least used) it's the first element on the Map. + +.Solution: extending Map +[source, javascript] +---- +class LRUCache extends Map { + constructor(capacity) { + super(); + this.capacity = capacity; + } + + get(key) { + if (!super.has(key)) return -1; + const value = super.get(key); + this.put(key, value); // re-insert at the top (most recent). + return value; + } + + put(key, value) { + if (super.has(key)) super.delete(key); + super.set(key, value); + if (super.size > this.capacity) { + const oldestKey = super.keys().next().value; + super.delete(oldestKey); + } + } +} +---- + +Notice that we call `put` within `get`. This is to rotate the keys to the top (most recent place). + +.Complexity Analysis +- Time Complexity: `O(1)`. All operations read, write, update, and delete takes `O(1)`. +- Space complexity: `O(k)`. In this case, k, is the capacity of the cache. Even if n has 1 million items, we would only hold to the k most recent ones. + + + +===== Trading Speed for Space (((Patterns, Space for Speed))) + +Maps have a `O(1)` runtime for lookups and `O(n)` space complexity. It can improve the speed of programs in exchange for using a little bit more of memory. Let's do an example. + +Let's say you are working on a webcrawler, and for each site, you want to find out the most common words used. How would you do it? + +*HM-B*) _Given a text, return the most common words in descending order. You should sanitize the input by removing punctuation `!?',;.` and converting all letters to lowercase. Return the most common words in descending order._ + +.Signature +[source, javascript] +---- +/** + * Given text and banned words, + * return the most common words in descending order. + * @param {string} text - The text to parse. + * @param {number} n - The number of results. + * @return {string[]} + */ +function mostCommonWords(text, n = 1) { + // you code goes here +} +---- + +.Examples: +[source, javascript] +---- +mostCommonWords( + 'The map, maps keys to values; Keys can be anything.', + 1); // ['keys'] +mostCommonWords( + 'Look at it! What is it? It does look like my code from 1 year ago', + 2); // ['it', 'look'] +mostCommonWords( + 'a; a,b, a\'s c A!; b,B, c.', + 4); // ['a', 'b', 'c', 's'] +---- + + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solutions* + +.This is a problem that has multiple steps: +1. Split the text into lowercased words and remove whitespaces and punctuation. +2. Count the frequency of words. +3. Sort words by frequency and return the top n words. + +.Possible implementations for each of the steps: +1. We can use regex (regular expressions) and split on non-words `\W+`. The runtime of this will be `O(n)`. +2. Let's discuss this later. +3. We have an array of the word -> frequency pairs. We can sort by the frequency using the built-in sort function and return the subarray with the top n results. The time complexity would be `O(n log n)`. + +For step 2, we can do it in multiple ways. A brute force solution is using 2 for loops to count the number of times each word appear: + +.Solution 1: Brute Force +[source, javascript] +---- +include::../../interview-questions/most-common-words-ii.js[tags=brute] +---- + +Notice that we null out the counted words. That's to avoid counting the phrase more than once. + +.Complexity Analysis: +- Time complexity: `O(n^2)`. We have three steps and each one has its time complexity: O(n) + O(n^2) + O(n log n). Remember that with Big O notation, we only care about the term with the highest order: `n^2`. +- Space complexity: `O(n)`. We use multiple O(n) auxiliary spaces for these variables: `words`, `entries`, and the solution is also n space. + + +Another alternative is to use a Map to count. + +.Solution 2: Map counter +[source, javascript] +---- +include::../../interview-questions/most-common-words-ii.js[tags=map] +---- + +With this solution, we iterate over the words only once. We first get the current count and add one. If the word didn't exist, we would default to a count of 0. Steps 1 and 3 are almost identical to solution #1. + +.Complexity Analysis +- Time Complexity: `O(n log n)`. We have 3 steps: O(n) + O(n) + O(n log n). The most significant term is `n log n`. +- Space complexity: `O(n)`. We used the same O(n) auxiliary space as solution #1 for `words`, `entries`, and the solution. Additionally, we added one more O(n) space for the Map. + + +===== Sliding Window (((Patterns, Sliding Window))) + +We saw <> before. We are now going to use them with strings. The idea is very similar, we still use the two pointers, and the solution is the "window" between the pointers. We can increase or decrease the window as long as it keeps the constraints of the problem. Let's do an example for better understanding. + + +*HM-C*) _Return the length of the longest substring without repeating characters._ + +.Signature +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + // your code goes here! +}; +---- + +.Examples +[source, javascript] +---- +longestSubstring('abcdaefg'); // 4 ('abcd' or 'aefg') +longestSubstring('abbaa'); // 2 ('ab') +longestSubstring('abbadvdf') // 4 ('badv') +---- + + +TIP: Try it on your own before reading the solution on the next page! + +<<< +*Solutions* + +We are going to solve this problem by using a sliding window approach. We have two pointers called `lo` and `hi`. They start both at zero, and we increase the window as long as they don't have duplicates. If we found a duplicate, we reopen a new window past the duplicated value. + +Take a look at this illustration doing an example for the string `abbadvdf`: + +image:sliding-window-map.png[sliding window for abbadvdf] + +As you can see, we calculate the length of the string on each iteration and keep track of the maximum value. + +What would this look like in code? Let's try a couple of solutions. Let's go first with the brute force and then improve. + +We can have two pointers, `lo` and `hi` to define a window. We can can use two for-loops for that. Later, within `lo` to `hi` we want to know if there's a duplicate value. We can use two other for-loops to check for duplicates (4 nested for-loop)! To top it off, we are using labeled breaks to skip updating the max if there's a duplicate. + +WARNING: The following code can hurt your eyes. Don't try this in production; for better solutions, keep reading. + +.Solution 1: Super Brute Force +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + let max = 0; + + for (let lo = 0; lo < s.length; lo++) { + repeatedFound: + for (let hi = lo; hi < s.length; hi++) { + // check if it's unique withing [lo,hi] range + for (let i = lo; i < hi; i++) { + for (let j = lo + 1; j <= hi; j++) { + if (i !== j && s[i] === s[j]) break repeatedFound; + } + } + // all are unique between [lo,hi] range + max = Math.max(max, hi - lo + 1); + } + } + + return max; +}; +---- + +This function gets the job done. But how efficient is it? + +.Complexity Analysis +- Time Complexity: `O(n^4)`. In the worst-case, when the string has all unique characters, we have n^4! +- Space complexity: `O(1)`. The only variable we are using is integers. + +Solution 1 has a horrible runtime, but the space complexity is constant. Can we trade space for a better speed performance? Absolutely! + +Instead of having two loops for finding duplicates, we can do one pass and use a Map to detect duplicates. + +.Solution 2: Brute force with Map +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + let max = 0; + + for (let lo = 0; lo < s.length; lo++) { + repeatedFound: + for (let hi = lo; hi < s.length; hi++) { + // check if it's unique withing [lo,hi] range + const map = new Map(); + for (let i = lo; i <= hi; i++) { + if (map.has(s[i])) break repeatedFound; + map.set(s[i], true); + } + // all are unique between [lo,hi] range + max = Math.max(max, hi - lo + 1); + } + } + + return max; +} +---- + +We are using the Map to detect duplicates, where the characters are the keys. + +.Complexity Analysis +- Time Complexity: `O(n^3)`. We have three nested loops that, in the worst-case, each will visit `n` items. +- Space complexity: `O(n)`. We have a map that might grow as big as size `n`. + +One optimization that we can do the solution 2 is to store the index where we last saw a character. We can map each character to its index. That way, when we find a duplicate, we can update the `lo` pointer with it, shrinking the window. + +.Solution 3: Optimized Sliding Window +[source, javascript] +---- +/** + * Return the length of the longest substring without repeating characters. + * @param {string} s + * @return {number} + */ +function longestSubstring(s) { + const map = new Map(); + let max = 0; + + for (let hi = 0, lo = 0; hi < s.length; hi++) { + if (map.has(s[hi])) lo = Math.max(lo, map.get(s[hi]) + 1); + map.set(s[hi], hi); + max = Math.max(max, hi - lo + 1); + } + + return max; +}; +---- + +This solution has the least amount of code, and it's also the most efficient! + +Something that might look unnecessary is the `Math.max` when updating the `lo` pointer. You can remove it and try running it with the string "abba", what would happen? + +.Complexity Analysis +- Time Complexity: `O(n)`. We do one pass and visit each character once. +- Space complexity: `O(n)`. We store everything one the Map so that the max size would be `n`. + +<<< +==== Practice Questions (((Interview Questions, Hash Map))) + +// tag::hashmap-q-two-sum[] +===== Fit two movies in a flight + +*HM-1*) _You are working in an entertainment recommendation system for an airline. Given a flight duration (target) and an array of movies length, you need to recommend two movies that fit exactly the length of the flight. Return an array with the indices of the two numbers that add up to the target. No duplicates are allowed. If it's not possible to return empty `[]`._ + +// end::hashmap-q-two-sum[] + +// _Seen in interviews at: Amazon, Google, Apple._ + +Examples: + +[source, javascript] +---- +twoSum([113, 248, 80, 200, 91, 201, 68], 316); // [1, 6] (248 + 68 = 316) +twoSum([150, 100, 200], 300); // [2, 3] (100 + 200 = 300) +twoSum([150, 100, 200], 150); // [] (No two numbers add up to 150) +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/two-sum.js[tags=description;placeholder] +---- + + +_Solution: <>_ + + +// tag::hashmap-q-subarray-sum-equals-k[] +===== Subarray Sum that Equals K + +*HM-2*) _Given an array of integers, find all the possible subarrays to add up to k. Return the count._ + +// end::hashmap-q-subarray-sum-equals-k[] + +// _Seen in interviews at: Facebook, Google, Amazon_ + +Examples: + +[source, javascript] +---- +subarraySum([1], 1); // 1 (1 equals to 1 :) +subarraySum([1, 1, 1], 1); // 3 ([1], [1], [1] equals 1) +subarraySum([1, -1, 1], 0); // 2 (sum([1, -1]), sum([-1, 1]) equals 0) +subaraySum([1, 2, 3, 0, 1, 4, 0, 5], 5) // 8 +// All of these 8 sub arrays add up to 5: +// [2, 30], [2,3,0], [0,1,4], [0,1,4,0], [1,4], [1,4,0], [0,5], [5] +---- + +Starter code: + +[source, javascript] +---- +include::../../interview-questions/subarray-sum-equals-k.js[tags=description;placeholder] +---- + + +_Solution: <>_ diff --git a/book/content/part03/map.asc b/book/content/part03/map.asc deleted file mode 100644 index d5448619..00000000 --- a/book/content/part03/map.asc +++ /dev/null @@ -1,71 +0,0 @@ -ifndef::imagesdir[] -:imagesdir: ../../images -:codedir: ../../../src -endif::[] - -[[map]] -=== Map -(((Map))) -(((Data Structures, Non-Linear, Map))) -A map is a data structure to store pairs of data: *key* and *value*. In an array, you can only store values. The array’s key is always the position index. However, in a *Map* the key can be whatever you want. - -IMPORTANT: Map is a data structure that _maps_ *keys* to *values*. - -Many languages have maps already built-in. JavaScript/Node has `Map`: - -.JavaScript Built-in Map Usage -[source, javascript] ----- -include::{codedir}/data-structures/maps/map.js[tag=snippet, indent=0] ----- - -In short, you set `key`/`value` pair and then you can get the `value` using the `key`. - -The attractive part of Maps is that they are very performant usually *O(1)* or *O(log n)* depending on the implementation. We can implement the maps using two different underlying data structures: - -* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. -* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <>). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. - -<<< -include::hashmap.asc[] - -<<< -include::treemap.asc[] - -<<< -==== HashMap vs TreeMap - -.A map can be implemented using hash functions or binary search tree: -- *HashMap*: it’s a map implementation using an *array* and *hash function*. The job of the hash function is to convert the key into an index that contains the matching data. Optimized HashMap can have an average runtime of *O(1)*. -- *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (red-black tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. - - -.When to use a TreeMap vs. HashMap? -* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. -* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. -* `HashMap`’s keys are in insertion order (or random depending in the implementation). `TreeMap`’s keys are always sorted. -* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. -* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. - -===== TreeMap Time complexity vs HashMap - -As we discussed so far, there is a trade-off between the implementations. -(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) - -// also on: book/content/part03/time-complexity-graph-data-structures.asc -// tag::table[] -.Time complexity for different Maps implementations -|=== -.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity -^|_Index/Key_ ^|_Value_ -| Hash Map (naïve) ^|O(n) ^|O(n) ^|O(n) ^|O(n) ^|O(n) -| Hash Map (optimized) ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) -| Tree Map (Red-Black Tree) ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) -|=== -{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. -// end::table[] - -(((Linear))) -(((Runtime, Linear))) -(((Logarithmic))) -(((Runtime, Logarithmic))) diff --git a/book/content/part03/set.asc b/book/content/part03/set.asc index 7b64690e..b1e72b07 100644 --- a/book/content/part03/set.asc +++ b/book/content/part03/set.asc @@ -3,10 +3,9 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] +(((Set))) (((Data Structures, Non-Linear, Set))) [[set]] === Set -(((Set))) -(((Data Structures, Non-Linear, Set))) A set is a data structure where duplicated entries are not allowed. A Set is like an array with only unique values. NOTE: JavaScript already has a built-in Set data structure. diff --git a/book/content/part03/treemap.asc b/book/content/part03/treemap.asc index 4200ac19..511b263e 100644 --- a/book/content/part03/treemap.asc +++ b/book/content/part03/treemap.asc @@ -3,14 +3,20 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[treemap]] -==== TreeMap -(((TreeMap))) -(((Data Structures, Non-Linear, TreeMap))) -A TreeMap is a Map implementation using Binary Search Trees. -(((Binary Search Tree))) -(((BST))) +(((TreeMap))) (((Data Structures, Non-Linear, TreeMap))) (((Binary Search Tree))) (((BST))) +[[treemap-chap]] +=== TreeMap +A Map is an abstract data structure to store pairs of data: *key* and *value*. It also has a fast key lookup of `O(1)` for <> or `O(log n)` for <>. + +We can implement a Map using two different underlying data structures: + +* *HashMap*: it’s a map implementation using an *array* and a *hash function*. The job of the hash function is to convert the `key` into an index that maps to the `value`. Optimized HashMap can have an average runtime of *O(1)*. +* *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (like <> or Red-Black Tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. + +We already covered <>, so this chapter we are going to focus on TreeMap. + +A TreeMap is a Map implementation using a Balanced Binary Search Trees. Implementing a Map with a tree, TreeMap, has a couple of advantages over a HashMap: * Keys are always sorted. @@ -36,7 +42,7 @@ class TreeMap { } ---- -===== Inserting values into a TreeMap +==== Inserting values into a TreeMap For inserting a value on a TreeMap, we first need to inialize the tree: @@ -58,7 +64,7 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=set, indent=0] Adding values is very easy (once we have the underlying tree implementation). -===== Getting values out of a TreeMap +==== Getting values out of a TreeMap When We search by key in a tree map, it takes *O(log n)*. This is the implementation: @@ -82,7 +88,7 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=iterators, ind Generators are useful for producing values that can you can iterate in a `for...of` loop. Generators use the `function*` syntax which expects to have a `yield` with a value. **** -===== Deleting values from a TreeMap +==== Deleting values from a TreeMap Removing elements from TreeMap is simple. @@ -95,3 +101,36 @@ include::{codedir}/data-structures/maps/tree-maps/tree-map.js[tag=delete, indent The BST implementation does all the heavy lifting. That’s it! To see the full file in context, click here: https://github.com/amejiarosario/dsa.js/blob/f69b744a1bddd3d99243ca64b3ad46f3f2dd7342/src/data-structures/maps/tree-maps/tree-map.js#L22[here] + + +<<< +==== HashMap vs TreeMap + +.A map can be implemented using hash functions or binary search tree: +- *HashMap*: it’s a map implementation using an *array* and *hash function*. The job of the hash function is to convert the key into an index that contains the matching data. Optimized HashMap can have an average runtime of *O(1)*. +- *TreeMap*: it’s a map implementation that uses a self-balanced Binary Search Tree (red-black tree). The BST nodes store the key, and the value and nodes are sorted by key guaranteeing an *O(log n)* look up. + + +.When to use a TreeMap vs. HashMap? +* `HashMap` is more time-efficient. A `TreeMap` is more space-efficient. +* `TreeMap` search complexity is *O(log n)*, while an optimized `HashMap` is *O(1)* on average. +* `HashMap`’s keys are in insertion order (or random depending in the implementation). `TreeMap`’s keys are always sorted. +* `TreeMap` offers some statistical data for free such as: get minimum, get maximum, median, find ranges of keys. `HashMap` doesn’t. +* `TreeMap` has a guarantee always an *O(log n)*, while `HashMap`s has an amortized time of *O(1)* but in the rare case of a rehash, it would take an *O(n)*. + +==== TreeMap Time complexity vs HashMap + +As we discussed so far, there is a trade-off between the implementations. +(((Tables, Non-Linear DS, HashMap/TreeMap complexities))) (((Linear))) (((Runtime, Linear))) (((Logarithmic))) (((Runtime, Logarithmic))) + +// also on: book/content/part03/time-complexity-graph-data-structures.asc +// tag::table[] +.Time complexity for different Maps implementations +|=== +.2+.^s| Data Structure 2+^s| Searching By .2+^.^s| Insert .2+^.^s| Delete .2+^.^s| Space Complexity +^|_Index/Key_ ^|_Value_ +| <> ^|O(1) ^|O(n) ^|O(1)* ^|O(1) ^|O(n) +| <> ^|O(log n) ^|O(n) ^|O(log n) ^|O(log n) ^|O(n) +|=== +{empty}* = Amortized run time. E.g. rehashing might affect run time to *O(n)*. +// end::table[] diff --git a/book/content/part03/hashmap.asc b/book/deprecated/old-hashmap.asc similarity index 87% rename from book/content/part03/hashmap.asc rename to book/deprecated/old-hashmap.asc index ec8d8ea4..ded40a63 100644 --- a/book/content/part03/hashmap.asc +++ b/book/deprecated/old-hashmap.asc @@ -3,7 +3,7 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[hashmap]] +[[hashmap-advanced]] ==== HashMap (((HashMap))) (((HashTable))) @@ -308,73 +308,3 @@ Hash Map is optimal for searching values by key in constant time *O(1)*. However indexterm:[Runtime, Linear] As you can notice, we have amortized times since it will take O(n) while it resizes in the unfortunate case of a rehash. After that, it will be *O(1)*. - - -==== Practice Questions -(((Interview Questions, Hash Map))) - - - -// tag::hashmap-q-two-sum[] -===== Fit 2 movies in a flight - -*HM-1*) _You are working in an entertainment recommendation system for an airline. Given a flight duration (target) and an array of movies length, you need to recommend two movies that fit exactly the length of the flight. Return an array with the indices of the two numbers that add up to the target. No duplicates are allowed. If it's not possible to return empty `[]`._ - -// end::hashmap-q-two-sum[] - -// _Seen in interviews at: Amazon, Google, Apple._ - -Examples: - -[source, javascript] ----- -twoSum([113, 248, 80, 200, 91, 201, 68], 316); // [1, 6] (248 + 68 = 316) -twoSum([150, 100, 200], 300); // [2, 3] (100 + 200 = 300) -twoSum([150, 100, 200], 150); // [] (No two numbers add up to 150) ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/two-sum.js[tags=description;placeholder] ----- - - -_Solution: <>_ - - - - - -// tag::hashmap-q-subarray-sum-equals-k[] -===== Subarray Sum that Equals K - -*HM-2*) _Given an array of integers, find all the possible subarrays to add up to k. Return the count._ - -// end::hashmap-q-subarray-sum-equals-k[] - -// _Seen in interviews at: Facebook, Google, Amazon_ - -Examples: - -[source, javascript] ----- -subarraySum([1], 1); // 1 (1 equals to 1 :) -subarraySum([1, 1, 1], 1); // 3 ([1], [1], [1] equals 1) -subarraySum([1, -1, 1], 0); // 2 (sum([1, -1]), sum([-1, 1]) equals 0) -subaraySum([1, 2, 3, 0, 1, 4, 0, 5], 5) // 8 -// All of these 8 sub arrays add up to 5: -// [2, 30], [2,3,0], [0,1,4], [0,1,4,0], [1,4], [1,4,0], [0,5], [5] ----- - -Starter code: - -[source, javascript] ----- -include::../../interview-questions/subarray-sum-equals-k.js[tags=description;placeholder] ----- - - -_Solution: <>_ - diff --git a/book/images/sliding-window-map.png b/book/images/sliding-window-map.png new file mode 100644 index 0000000000000000000000000000000000000000..d5cd7371e7bb64d896477568b5d933c55a1ae7d3 GIT binary patch literal 18904 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 eePH|XpRwn%i1Ccpj4 m.set(w, 1 + (m.get(w) || 0)), new Map()); + + return Array.from(map.entries()) + .sort((a, b) => b[1] - a[1]) + .slice(0, n) + .map((w) => w[0]); +} +// end::map[] + +// tag::brute[] +function mostCommonWordsBrute(text, n = 1) { + const words = text.toLowerCase().split(/\W+/); + const entries = []; // array of [word, count] pairs + + for (let i = 0; i < words.length; i++) { + if (!words[i]) continue; + let count = 1; + for (let j = i + 1; j < words.length; j++) { + if (words[i] === words[j]) { + count++; + words[j] = null; // removed letter once it's counted. + } + } + entries.push([words[i], count]); + } + + return entries + .sort((a, b) => b[1] - a[1]) + .slice(0, n) + .map((w) => w[0]); +} +// end::brute[] + + +module.exports = { mostCommonWords, mostCommonWordsBrute }; diff --git a/book/interview-questions/most-common-words-ii.spec.js b/book/interview-questions/most-common-words-ii.spec.js new file mode 100644 index 00000000..cc0499e0 --- /dev/null +++ b/book/interview-questions/most-common-words-ii.spec.js @@ -0,0 +1,26 @@ +const { mostCommonWords, mostCommonWordsBrute } = require('./most-common-words-ii'); + +[mostCommonWordsBrute, mostCommonWords].forEach((fn) => { + describe(`Most Common words: ${fn.name}`, () => { + it('should work', () => { + expect(fn( + 'The map, maps keys to values; Keys can be anything.', + 1, + )).toEqual(['keys']); + }); + + it('should work', () => { + expect(fn( + 'Look at it! What is it? It does look like my code from 1 year ago', + 2, + )).toEqual(['it', 'look']); + }); + + it('should work', () => { + expect(fn( + 'a; a,b, a\'s c a!; b,b, c.', + 4, + )).toEqual(['a', 'b', 'c', 's']); + }); + }); +}); diff --git a/book/part02-linear-data-structures.asc b/book/part02-linear-data-structures.asc index 6b3ddae2..48ab9ffc 100644 --- a/book/part02-linear-data-structures.asc +++ b/book/part02-linear-data-structures.asc @@ -9,6 +9,7 @@ When you are aware of the data structures implementations, you spot when to use .In this part we are going to learn about the following linear data structures: - <> +- <> - <> - <> - <> @@ -27,6 +28,9 @@ endif::[] <<< include::content/part02/array.asc[] +<<< +include::content/part02/hash-map.asc[] + <<< include::content/part02/linked-list.asc[] diff --git a/book/part03-graph-data-structures.asc b/book/part03-graph-data-structures.asc index baebfd0e..74b01bc6 100644 --- a/book/part03-graph-data-structures.asc +++ b/book/part03-graph-data-structures.asc @@ -21,8 +21,11 @@ include::content/part03/tree-search-traversal.asc[] <<< include::content/part03/binary-search-tree-traversal.asc[] -<<< -include::content/part03/map.asc[] +// <<< +// include::content/part03/map.asc[] + +<< +include::content/part03/treemap.asc[] <<< include::content/part03/set.asc[] @@ -35,4 +38,3 @@ include::content/part03/graph-search.asc[] <<< include::content/part03/time-complexity-graph-data-structures.asc[] - diff --git a/book/part04-algorithmic-toolbox.asc b/book/part04-algorithmic-toolbox.asc index 81e4f476..f1dc3efa 100644 --- a/book/part04-algorithmic-toolbox.asc +++ b/book/part04-algorithmic-toolbox.asc @@ -36,4 +36,3 @@ include::content/part04/backtracking.asc[] <<< include::content/part04/algorithmic-toolbox.asc[] - diff --git a/book/readme.asc b/book/readme.asc index 89c67ba3..97660eb8 100644 --- a/book/readme.asc +++ b/book/readme.asc @@ -11,7 +11,7 @@ Adrian Mejia :revdate: {docdate} :docinfo: :toc: -:toclevels: 2 +:toclevels: 4 :pagenums: :front-cover-image: image:cover.png[width=1050,height=1600] :icons: font diff --git a/src/data-structures/custom/lru-cache.js b/src/data-structures/custom/lru-cache.js index 2907f8e6..2891375f 100644 --- a/src/data-structures/custom/lru-cache.js +++ b/src/data-structures/custom/lru-cache.js @@ -1,47 +1,45 @@ /** * Least Recently Used (LRU) cache. - * (ordered) Map: O(1) - * @param {number} capacity - Number of items to hold. + * Key/Value storage with fixed max number of items. + * Least recently used items are discarded once the limit is reached. + * Reading and updating the values mark the items as recently used. + * @author Adrian Mejia */ -class LRUCache { +class LRUCache extends Map { + /** + * @param {number} capacity - The max number of items on the cache + */ constructor(capacity) { - this.map = new Map(); + super(); this.capacity = capacity; } + /** + * Get value associated with the key. Mark keys as recently used. + * @param {number} key + * @returns {number} value or if not found -1 + */ get(key) { - const value = this.map.get(key); - if (value) { - this.moveToTop(key); - return value; - } - return -1; + if (!super.has(key)) return -1; + const value = super.get(key); + this.put(key, value); // re-insert at the top (most recent). + return value; } + /** + * Upsert key/value pair. Updates mark keys are recently used. + * @param {number} key + * @param {number} value + * @returns {void} + */ put(key, value) { - this.map.set(key, value); - this.rotate(key); - } - - rotate(key) { - this.moveToTop(key); - while (this.map.size > this.capacity) { - const it = this.map.keys(); // keys are in insertion order. - this.map.delete(it.next().value); - } - } - - moveToTop(key) { - if (this.map.has(key)) { - const value = this.map.get(key); - this.map.delete(key); - this.map.set(key, value); + if (super.has(key)) super.delete(key); + super.set(key, value); + if (super.size > this.capacity) { + const oldestKey = super.keys().next().value; + super.delete(oldestKey); } } - - get size() { - return this.map.size; - } } module.exports = LRUCache; diff --git a/src/data-structures/custom/lru-cache.spec.js b/src/data-structures/custom/lru-cache.spec.js index 73368627..68b846ca 100644 --- a/src/data-structures/custom/lru-cache.spec.js +++ b/src/data-structures/custom/lru-cache.spec.js @@ -75,6 +75,18 @@ describe('LRU Cache', () => { }); }); + it('should work with updates', () => { + // ["LRUCache","put","put","put","put","get","get"] + // [[2],[2,1],[1,1],[2,3],[4,1],[1],[2]] + c = new LRUCache(2); + c.put(2, 1); + c.put(1, 1); + c.put(2, 3); + c.put(4, 1); + c.get(1); + c.get(2); + }); + it('should work with size 10', () => { c = new LRUCache(10); From 0d7a14bb27ee3c5fe98412340b5029d42a7f1077 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 22 Oct 2020 18:32:38 +0000 Subject: [PATCH 07/44] :bookmark: chore(release): 2.5.0 # [2.5.0](https://github.com/amejiarosario/dsa.js/compare/2.4.0...2.5.0) (2020-10-22) ### Features * **book/hashmap:** add code examples and patterns ([f7b8d59](https://github.com/amejiarosario/dsa.js/commit/f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd)) --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bf043c1..f0658f95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [2.5.0](https://github.com/amejiarosario/dsa.js/compare/2.4.0...2.5.0) (2020-10-22) + + +### Features + +* **book/hashmap:** add code examples and patterns ([f7b8d59](https://github.com/amejiarosario/dsa.js/commit/f7b8d59ac8cbddacc34cac6a2f6e0a58419813fd)) + # [2.4.0](https://github.com/amejiarosario/dsa.js/compare/2.3.0...2.4.0) (2020-10-19) diff --git a/package-lock.json b/package-lock.json index c89355e3..210a076a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.4.0", + "version": "2.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b13293e8..4384319f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsa.js", - "version": "2.4.0", + "version": "2.5.0", "description": "Data Structures & Algorithms in JS", "author": "Adrian Mejia (https://adrianmejia.com)", "homepage": "https://github.com/amejiarosario/dsa.js", From 7659ac626e86a1685403dedc546d1a64a891d24e Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Fri, 23 Oct 2020 09:03:48 -0400 Subject: [PATCH 08/44] chore(docs): improve comments here and there --- book/content/part02/hash-map.asc | 2 +- book/content/part02/linked-list.asc | 5 ++- .../linked-lists/linked-list.js | 38 +++++++++---------- src/data-structures/linked-lists/node.js | 2 +- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/book/content/part02/hash-map.asc b/book/content/part02/hash-map.asc index 378c62bb..dc8a3a8a 100644 --- a/book/content/part02/hash-map.asc +++ b/book/content/part02/hash-map.asc @@ -11,7 +11,7 @@ A Map is a data structure where a `key` is mapped to a `value`. It's used for a NOTE: Map has many terms depending on the programming language. Here are some other names: Hash Map, Hash Table, Associative Array, Unordered Map, Dictionary. -==== Map Application +==== Map Applications Maps are one of the most popular data structures because of their fast lookup time. diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index eb008fec..3ef0f837 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -3,11 +3,12 @@ ifndef::imagesdir[] :codedir: ../../../src endif::[] -[[linked-list]] -=== Linked List (((Linked List))) (((List))) (((Data Structures, Linear, Linked List))) +[[linked-list]] +=== Linked List + A list (or Linked List) is a linear data structure where each node is "linked" to the next. .Linked Lists can be: diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 68d35821..30846c72 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -16,13 +16,6 @@ class LinkedList { } // end::constructor[] - /** - * Alias for size - */ - get length() { - return this.size; - } - // tag::addFirst[] /** * Adds element to the begining of the list. Similar to Array.unshift @@ -92,25 +85,22 @@ class LinkedList { } // Adding element in the middle const current = this.get(position); - if (current) { - const newNode = new Node(value); // <3> - newNode.previous = current.previous; // <4> - newNode.next = current; // <5> - - current.previous.next = newNode; // <6> - current.previous = newNode; // <7> - this.size += 1; - return newNode; - } + if (!current) return undefined; // out of bound index - return undefined; // out of bound index + const newNode = new Node(value); // <3> + newNode.previous = current.previous; // <4> + newNode.next = current; // <5> + current.previous.next = newNode; // <6> + current.previous = newNode; // <7> + this.size += 1; + return newNode; } // end::addMiddle[] // tag::searchByValue[] /** * Search by value. It finds first occurrence of - * the element matching the value. + * the position of element matching the value. * Runtime: O(n) * @example: assuming a linked list with: a -> b -> c * linkedList.indexOf('b') // ↪️ 1 @@ -136,7 +126,8 @@ class LinkedList { * linkedList.get(1) // ↪️ 'b' * linkedList.get(40) // ↪️ undefined * @param {Number} index position of the element - * @returns {Node} element at the specified position in this list. + * @returns {Node|undefined} element at the specified position in + * this list or undefined if was not found. */ get(index = 0) { return this.find((current, position) => { @@ -302,6 +293,13 @@ class LinkedList { const parts = [...this]; // see [Symbol.iterator]() return parts.map((n) => util.inspect(n.node.value)).join(' -> '); } + + /** + * Alias for size + */ + get length() { + return this.size; + } } // Aliases diff --git a/src/data-structures/linked-lists/node.js b/src/data-structures/linked-lists/node.js index 1547a953..9b518cca 100644 --- a/src/data-structures/linked-lists/node.js +++ b/src/data-structures/linked-lists/node.js @@ -6,7 +6,7 @@ class Node { constructor(value) { this.value = value; this.next = null; - this.previous = null; + this.previous = null; // for doubly linked list } } // end::snippet[] From fcf3db6ade12a7ed88a5b7756945a8b090ac63b9 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Fri, 23 Oct 2020 09:06:22 -0400 Subject: [PATCH 09/44] fix(linkedlist): rename indexOf to getIndex to make it clearer --- src/data-structures/linked-lists/linked-list.js | 11 +++++++---- src/data-structures/linked-lists/linked-list.spec.js | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/data-structures/linked-lists/linked-list.js b/src/data-structures/linked-lists/linked-list.js index 30846c72..9a1b5925 100644 --- a/src/data-structures/linked-lists/linked-list.js +++ b/src/data-structures/linked-lists/linked-list.js @@ -101,14 +101,17 @@ class LinkedList { /** * Search by value. It finds first occurrence of * the position of element matching the value. + * Similar to Array.indexOf. + * * Runtime: O(n) + * * @example: assuming a linked list with: a -> b -> c - * linkedList.indexOf('b') // ↪️ 1 - * linkedList.indexOf('z') // ↪️ undefined + * linkedList.getIndexByValue('b') // ↪️ 1 + * linkedList.getIndexByValue('z') // ↪️ undefined * @param {any} value * @returns {number} return index or undefined */ - indexOf(value) { + getIndexByValue(value) { return this.find((current, position) => { if (current.value === value) { return position; @@ -142,7 +145,7 @@ class LinkedList { // tag::find[] /** * Iterate through the list until callback returns a truthy value - * @example see #get and #indexOf + * @example see #get and #getIndexByValue * @param {Function} callback evaluates current node and index. * If any value other than undefined it's returned it will stop the search. * @returns {any} callbacks's return value or undefined diff --git a/src/data-structures/linked-lists/linked-list.spec.js b/src/data-structures/linked-lists/linked-list.spec.js index 9026db8e..09ba8feb 100644 --- a/src/data-structures/linked-lists/linked-list.spec.js +++ b/src/data-structures/linked-lists/linked-list.spec.js @@ -122,14 +122,14 @@ describe('LinkedList Test', () => { }); }); - describe('#indexOf', () => { + describe('#getIndexByValue', () => { it('should find element index', () => { - expect(linkedList.indexOf(0)).toBe(0); - expect(linkedList.indexOf('found')).toBe(1); + expect(linkedList.getIndexByValue(0)).toBe(0); + expect(linkedList.getIndexByValue('found')).toBe(1); }); it('should return undefined', () => { - expect(linkedList.indexOf('hola')).toBe(undefined); + expect(linkedList.getIndexByValue('hola')).toBe(undefined); }); }); From ba110e26b2103265bb78809618c7e29c185acd70 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Fri, 23 Oct 2020 14:10:18 -0400 Subject: [PATCH 10/44] fix(linkedlist): refactored methods and improve book images and explanations --- book/content/part02/linked-list.asc | 168 +++++++------- book/images/dll-add-first.png | Bin 0 -> 56052 bytes book/images/dll-add-last.png | Bin 0 -> 58568 bytes book/images/dll-insert-middle.png | Bin 0 -> 48604 bytes book/images/dll-remove-first.png | Bin 0 -> 16311 bytes book/images/dll-remove-last.png | Bin 0 -> 15981 bytes book/images/dll-remove-middle.png | Bin 0 -> 14650 bytes book/images/dll.png | Bin 0 -> 10233 bytes .../linked-lists/linked-list.js | 207 +++++++++--------- .../linked-lists/linked-list.spec.js | 14 +- src/data-structures/linked-lists/node.js | 2 +- 11 files changed, 191 insertions(+), 200 deletions(-) create mode 100644 book/images/dll-add-first.png create mode 100644 book/images/dll-add-last.png create mode 100644 book/images/dll-insert-middle.png create mode 100644 book/images/dll-remove-first.png create mode 100644 book/images/dll-remove-last.png create mode 100644 book/images/dll-remove-middle.png create mode 100644 book/images/dll.png diff --git a/book/content/part02/linked-list.asc b/book/content/part02/linked-list.asc index 3ef0f837..bba5d906 100644 --- a/book/content/part02/linked-list.asc +++ b/book/content/part02/linked-list.asc @@ -9,58 +9,61 @@ endif::[] [[linked-list]] === Linked List -A list (or Linked List) is a linear data structure where each node is "linked" to the next. +A list (or Linked List) is a linear data structure where each object has a pointer to the next one. .Linked Lists can be: -- Singly: every item has a pointer to the next node -- Doubly: every node has a reference to the next and previous node -- Circular: the last element points to the first one. +- *Singly*: every item has a pointer to the next. +- *Doubly*: every item has a reference to the next and the previous. +- *Circular*: the last element points to the first one, forming an infinite loop. + +JavaScript doesn't have a built-in List. However, it's straightforward to create. + +[[node-class]] +.Linked List Node Implementation +[source, javascript] +---- +include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] +---- + +Let's go one by one! [[singly-linked-list]] ==== Singly Linked List -Each element or node is *connected* to the next one by a reference. When a node only has one connection, it's called a *singly linked list*: +In a singly linked list, each element or node is *connected* to the next one by a reference. + +Usually, a Linked List is referenced by the first element called *head* (or *root* node). Let's say that we have a list of strings with the following values: `"art" -> "dog" -> "cat"`. It would look something like the following image. .Singly Linked List Representation: each node has a reference (blue arrow) to the next one. image::image19.png[image,width=498,height=97] -Usually, a Linked List is referenced by the first element called *head* (or *root* node). For instance, if you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. +If you want to get the `cat` element from the example above, then the only way to get there is by using the `next` field on the head node. You would get `art` first, then use the next field recursively until you eventually get the `cat` element. [[doubly-linked-list]] ==== Doubly Linked List -When each node has a connection to the `next` item and also the `previous` one, then we have a *doubly linked list*. +Doubly Linked List has two references to the `next` and `previous` node. .Doubly Linked List: each node has a reference to the next and previous element. -image::image20.png[image,width=528,height=74] - -With a doubly list, you can not only move forward but also backward. If you keep the reference to the last element (`cat`) you can step back and reach the middle part. +image::dll.png[] -If we implement the code for the `Node` elements, it would be something like this: +With a doubly-linked list, you can move not only forward but also backward. If you keep a pointer to the `last` element (`cat`), you can step back recursively. -// image:image21.png[image,width=528,height=285] - -.Linked List Node Implementation -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/node.js[tag=snippet] ----- +Finding an item on the linked list takes O(n) time. Because in the worst-case, you will have to iterate over the whole list. ==== Linked List vs. Array -Arrays allow you to access data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. - -We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. It has to create a larger array (usually 2x) and copy all the elements when it is getting full. It takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other, nor are large chunks of memory booked beforehand like arrays. Linked List is more on a "grow as you go" basis. +Arrays give you instant access to data anywhere in the collection using an index. However, Linked List visits nodes in sequential order. In the worst-case scenario, it takes _O(n)_ to get an element from a Linked List. You might be wondering: Isn’t an array always more efficient with _O(1)_ access time? It depends. -Another difference is that adding/deleting at the beginning on an array takes O(n); however, the linked list is a constant operation O(1) as we will implement later. +We also have to understand the space complexity to see the trade-offs between arrays and linked lists. An array pre-allocates contiguous blocks of memory. If the array fillup, it has to create a larger array (usually 2x) and copy all the elements when it is getting full. That takes _O(n)_ to copy all the items over. On the other hand, LinkedList’s nodes only reserve precisely the amount of memory they need. They don’t have to be next to each other in RAM, nor are large chunks of memory is booked beforehand like arrays. Linked List is more on a "grow as you go" basis. *Linked list wins on memory usage over an array.* -A drawback of a linked list is that if you want to insert/delete an element at the end of the list, you would have to navigate the whole collection to find the last one: O(n). However, this can be solved by keeping track of the last element in the list. We are going to implement that! +Another difference is that adding/deleting at the beginning of an array takes `O(n)`; however, the linked list is a constant operation `O(1)` as we will implement later. *Linked List has better runtime than an array for inserting items at the beginning.* ==== Implementing a Linked List We are going to implement a doubly linked list. First, let's start with the constructor. -// image:image22.png[image,width=528,height=251] +The only must-have field on the constructor is the `first` or head reference. If you want to insert it to the back of the list in constant time, then `last` pointer is needed. Everything else is complimentary. .Linked List's constructor [source, javascript] @@ -71,69 +74,49 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=constructor] } ---- -In our constructor, we reference the `first` and `last` node for performance reasons. +The iterable parameter is a nice to have. That will allow you to convert an array of items into a linked list. E.g. `const list = new LinkedList([1, 2, 3]);` -==== Searching by value +==== Searching by value or index -There’s no other way to find an element by value than iterating through the entire list. - -.Linked List's searching by values -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByValue, indent=0] ----- +There’s no other way to find an element by value than iterating through the list. So, the runtime is `O(n)`. -If we find the element, we will return the index otherwise `undefined`. The runtime for locating an item by value is _O(n)_. +There are two prominent use cases for search: find an element by value, or find them by their index/position. -For finding elements by value or position, we are using the following helper function: +We can use a for-loop to keep track of the index and the current node simultaneously. Whichever fulfill first, we return that one. -.Find elements using a callback +[[linkedlist.findBy]] +.Linked List's searching by values or index [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=find, indent=0] ---- -<1> We initialize two variables `current` to the first node and `position` to keep track of the index. +<1> We initialize two variables `current` to the first node and `position` to 0 to keep track of the ordinal number. <2> While the `current` node is not null, we keep going. <3> On each loop, we move to the next node and increment the index. -<4> We invoke the callback passing the current position and node. If the callback returns something, then we stop and return that value. -<5> Return whatever result we got from the callback. E.g., we can return the index or the node itself or any other calculation. - -We are going to use this `find` method again to implement searching by index. - -==== Searching by index - -Searching by an index is very similar, we iterate through the list until we find the element that matches the position. - -.Linked List's searching by index (position) -[source, javascript] ----- -include::{codedir}/data-structures/linked-lists/linked-list.js[tag=searchByIndex, indent=0] ----- - -If there’s no match, we return `undefined` then. The runtime is _O(n)_. As you might notice, the search by index and by position methods looks pretty similar; you want to take a look at the https://github.com/amejiarosario/dsa.js/blob/7694c20d13f6c53457ee24fbdfd3c0ac57139ff4/src/data-structures/linked-lists/linked-list.js#L8[full implementation]. +<4> We check if the index is the one provided or if the node has the expected value. +<5> Returns the index and the current node if found. ==== Insertion -In a linked list, you can add elements at the beginning, end, or anywhere in the middle of the list. So, let's implement each case. +You can add elements at the beginning, end, or anywhere in the middle of the list in a linked list. So, let's implement each case. [[linked-list-inserting-beginning]] ===== Inserting elements at the beginning of the list -We will use the `Node` class to create a new element and stick it at the beginning of the list, as shown below. +We will use the <> to create a new element and stick it at the beginning of the list, as shown below. .Insert at the beginning by linking the new node with the current first node. -image::image23.png[image,width=498,height=217] +image::dll-add-first.png[] -To insert at the beginning, we create a new node with the next reference to the current first node. Then we first make the new node. In code, it would look something like this: +To insert at the beginning, we create a new node with the next reference to the current first node. Then we update the pointer `first` to the new node. In code, it would look something like this: .Add item to the beginning of a Linked List [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addFirst, indent=0] ---- - -As you can see, we create a new node and make it the first one. +<1> It might be confusing seen `this.first.previous`. It means that we are updating the `previous` pointer of the `art` node to point to `new`. ===== Inserting element at the end of the list @@ -141,7 +124,7 @@ As you can see, we create a new node and make it the first one. Appending an element at the end of the list can be done very effectively if we have a pointer to the `last` item. Otherwise, you would have to iterate through the whole list. .Add element to the end of the linked list -image::image24.png[image,width=498,height=208] +image::dll-add-last.png[] .Linked List's add to the end of the list implementation [source, javascript] @@ -154,9 +137,9 @@ If there’s no element in the list yet, the first and last node would be the sa ===== Inserting element at the middle of the list -For inserting an element in the middle of the list, you would need to specify the position (index) in the collection. Then, you create the new node and update the references to it. +For inserting an element in the middle of the list, you would need to specify the position (index) in the list. Then, you create the new node and update the references around it. -.There are 4 references to update: +.There are four references to update: . New node's `next`. . New node's `previous`. . New node's previous `next`. @@ -169,12 +152,13 @@ Let’s do an example with the following doubly linked list: art <-> dog <-> cat ---- -We want to insert the `new` node in the 2^nd^ position. For that, we first create the "new" node and update the references around it. +We want to insert the `new` node in the 2^nd^ position (index 1). For that, we first create the "new" node and update the references around it. -.Inserting node in the middle of a doubly linked list. -image::image25.png[image,width=528,height=358] +[[dll-insert-middle-img]] +.Inserting node in the middle. +image::dll-insert-middle.png[] -Take a look into the implementation of https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/linked-lists/linked-list.js#L83[LinkedList.add]: +Take a look into the implementation of `LinkedList.add`: .Linked List's add to the middle of the list [source, javascript] @@ -183,41 +167,44 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=addMiddle, in ---- <1> If the new item goes to position 0, then we reuse the `addFirst` method, and we are done! <2> However, if we add to the last position, we reuse the `addLast` method and done! -<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <> to see `get` implementation. +<3> Adding `newNode` to the middle: First, create the `new` node only if it exists. Take a look at <> to see `findBy` implementation again. <4> Set newNode `previous` reference. <5> Set newNode `next` link. -<6> No other node in the list points to `newNode`, so we have to make the prior element point to `newNode`. -<7> Make the next element point to `newNode`. +<6> So far, no other node in the list points to `newNode`, so we the `art` node's next point to `new` (refer to the <>). +<7> Make `dog` node's previous point to `new`. -Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and make them point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `get` method. +Take notice that we reused `addFirst` and `addLast` methods. For all the other cases, the insertion is in the middle. We use `current.previous.next` and `current.next` to update the surrounding elements and point to the new node. Inserting in the middle takes *O(n)* because we have to iterate through the list using the `findBy` method. ==== Deletion -Deleting is an interesting one. We don’t delete an element; we remove all references to that node. Let’s go case by case to explore what happens. +Deleting is an interesting one. We don’t delete an element; we remove all references to that node. The garbage collector will remove it when no one points to it. Let’s go case by case to explore what happens. ===== Deleting element from the head Deleting the first element (or head) is a matter of removing all references to it. .Deleting an element from the head of the list -image::image26.png[image,width=528,height=74] +image::dll-remove-first.png[] -For instance, to remove the head (“art”) node, we change the variable `first` to point to the second node “dog”. We also remove the variable `previous` from the "dog" node, so it doesn't point to the “art” node. The garbage collector will get rid of the “art” node when it sees nothing is using it anymore. +For instance, to remove the head (“art”) node, we change the variable `first` to point to the second node, “dog”. We also remove the variable `previous` from the "dog" node, so it doesn't reference the “art” node anymore. The garbage collector will get rid of the “art” node when it sees nothing is using it anymore. .Linked List's remove from the beginning of the list [source, javascript] ---- include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeFirst, indent=0] ---- +.Check for edge cases: +- List is already empty. +- Removing the last node. -As you can see, when we want to remove the first node, we make the 2nd element the first one. +As you can see, when we want to remove the first node, we make the 2nd element (`head.next`) the first one. ===== Deleting element from the tail -Removing the last element from the list would require to iterate from the head until we find the last one, that’s O(n). But, if we have a reference to the last element, which we do, we can do it in _O(1)_ instead! +Removing the last element from the list would require iterate from the head until we find the last one, that’s `O(n)`. But, since we referenced the last element, we can do it in _O(1)_ instead! -.Removing last element from the list using the last reference. -image::image27.png[image,width=528,height=221] +.Removing the last element from the list. +image::dll-remove-last.png[] For instance, if we want to remove the last node “cat”. We use the last pointer to avoid iterating through the whole list. We check `last.previous` to get the “dog” node and make it the new `last` and remove its next reference to “cat.” Since nothing is pointing to “cat” it is out of the list and eventually is deleted from memory by the garbage collector. @@ -233,11 +220,10 @@ The code is very similar to `removeFirst`, but instead of first, we update `last ===== Deleting element from the middle -To remove a node from the middle, we make the surrounding nodes to bypass the one we want to delete. +To remove a node from the middle, we make the surrounding nodes bypass the one we want to delete. .Remove the middle node -image::image28.png[image,width=528,height=259] - +image::dll-remove-middle.png[] In the illustration, we are removing the middle node “dog” by making art’s `next` variable to point to cat and cat’s `previous` to be “art,” totally bypassing “dog.” @@ -251,11 +237,10 @@ include::{codedir}/data-structures/linked-lists/linked-list.js[tag=removeByPosit Notice that we are using the `get` method to get the node at the current position. That method loops through the list until it found the node at the specified location. This iteration has a runtime of _O(n)_. -==== Linked List Complexity vs. Array Complexity - -So far, we have seen two-liner data structures with different use cases. Here’s a summary: (((Tables, Linear DS, Array/Lists complexities))) +==== Linked List Complexity vs. Array Complexity + // tag::table[] .Big O cheat sheet for Linked List and Array |=== @@ -273,17 +258,14 @@ If you compare the singly linked list vs. doubly linked list, you will notice th Comparing an array with a doubly-linked list, both have different use cases: -Use arrays when: - -* You want to access *random* elements by numeric key or index in constant time O(1). -* You need two-dimensional and multi-dimensional arrays. - -Use a doubly linked list when: - -* You want to access elements in a *sequential* manner only like <> or <>. +.Use arrays when: +- You want to access *random* elements by numeric key or index in constant time O(1). +- You need two-dimensional and multi-dimensional arrays. -* You want to insert elements at the start and end of the list. The linked list has O(1) while array has O(n). -* You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” +.Use a doubly linked list when: +- You want to access elements in a *sequential* manner only like <> or <>. +- You want to insert elements at the start and end of the list. The linked list has O(1) while the array has O(n). +- You want to save some memory when dealing with possibly large data sets. Arrays pre-allocate a large chunk of contiguous memory on initialization. Lists are more “grow as you go.” For the next two linear data structures <> and <>, we are going to use a doubly-linked list to implement them. We could use an array as well, but since inserting/deleting from the start performs better with linked-lists, we will use that. diff --git a/book/images/dll-add-first.png b/book/images/dll-add-first.png new file mode 100644 index 0000000000000000000000000000000000000000..476565822e3f084fa11d204cd26be85ae24ae3b8 GIT binary patch literal 56052 zcmd?QXH=8j*Efh28z4$is)B&hmEKXB(tC#>NJpCV78U8uMv>l&^bVm!y7Ur?v_wEk z2oR}(guoo``#P3bgArAm?+?M_s_S#3HzXw2Z=e00BS}uZ0|w8%(N=m!QZ~eZ2LD{N zeX919grqX=`ti$4BqTEtFXW%<`kdP!Uj1t39ms({5z>nf9kb~DEZJvMA^+pagP&J} zW9)A*?z%dCPBKrEz5IE|-~P$RTBJ$6Tm#=L&u3$}()xR7(YXoq&CjwpnC$x)M%4};eKUFJ?~xB9W?al4D}Y^SIz2@} zkrwRd0EIsu3~GP}iRL?ttKjig`J&3%zq%}j=fNZMR@<$!f8(zJ=1E8jdu)^;3|fnY^?4~owj1i zRp^H#M9z`O7C*!mh%_-HIX4^y5-+Oohw;wVxXqDG_ASR?3BCQiDg<(d=V4W3KbOl} zN?s2=zfpJ<9I`-rtMD6zii>aT-gvR+_Dz4FHu_Cv%K{j*;JuoV8KuCyAzDqD)4#ue zu)>qU{(XW9!6XqR$tWHmdMdGEQg5Snp5(2w0lb{S64F@S%XImm)?Vp7o84^*CaC0m z5H^qu>yK?Jcl_>yE1PesUY7inK2y!HISYPhb)cUN=H{t~)V&sg&4h5tq1`w zO5M^8h_HiiO!^xq?)`J5B$>D4aq&@s3s+JtWsXIVZ-N6~i^p1Ao$2gOG)oP_9Pc_n zu>r>sd-4A8Pv65~>ITl!pEHggy8OBvDq_69g{mv9%W@R#lONdKhzk;QV7=Sb1H~jF zQy?;e&22ZZjVlF+nQA2wwCCkZByYW_FKmq0D@O+Yel6kkio>UVWeVQ%+Fx4jTj1-N zG>fY%Bl9Np`P6a3=527c+23E4qA`qR?{wE3N1AJmD(4gxI;@UjoKYeS!U_!&YbRF< zCliyG6DEW$f?1h+Ldi(ps#le@ow(kBy;)9}T4j6WwTb*vZ~C1gVZ#xzb*3JcOHUH| zgJJPoU&G*#yZPSYD`p`5SIv~@onl2*;cMB#&} zn-?42`*axv73Y)oG4h&rMfw7B6tzN~5baTM2dnqBYM3JF@)a^YN}g`A5@u>7+HMVG zk*%iBRx~;mN38mE2+5>5!*TRSm!Aj+xJ6WRZPRtrF95rNJssD8`C~48;Z1!FN%7(^ zJfD0kuyv`5NQldKaY3cyF2%9Do28(5eVC2)352?lkgQ$SN|kt)cQXfOmK35;9O}<5 z3Ei{v^J=(+Fa)d)T~zsz>l8GRfBZSl;nV9qOApwu=iQ-#!r6(CIx)a(eK@a^LLrqx zoz<&)Jmp+p8^Q-ni(TP(doA03O9FYEAJAbG{dRPq`w4@%yC|5!5uU6ZQV%~G%z2gv zj18fFQDr25GQB0=ODcJCDE`;l>*mA7V|=9>{tIsZV7!c3QqoJnf`r75WBHyvOpX!A z<3ii5nj-ge@TPia#!*}Usjc}hymX@JcCe<+QARRCNKYu&R(}RUlyzDGF~2B=f)f|C z`jfX-Z;+7aDacY0imlB0?rUr;(JYJ+XY1ljREj9iq%4$>sn*ras`&9&t-r=h)2Xbq zpuLl7WXwf+5cQ}wL{&RvAn?OG|%Su#Up+R^hZ)XMXI4gwNq~{M_sMyg&j)wAf(eG7%j(1xeIDz;OU@6FaCy%fDyK zWEb{0bwv!KM?SIMR(A|0B_SECE>|niwz^tq?jwF(f)hT&D02uBB7JK!c?OuJ$qM{=qCyxEUjM1`c>pnJL03QDbn6C!rTP7hm zWA#!gfE|Va?E7YM_2>SNtKp-6_AL|bck>ylKkZS7%%_qwi9J~n9923F^)~;aFWC4JFbtOe29}qbg`e8t4-Pi% zQ70E_XBP*0<4x-9K3^vx(XoJ}sAqFAjA-s%IPD!wQJV8wXk48cIY;t?3h3#V{}%&< z|0b>a|1P5W{~f_J?3rAfvv3(k`a5^LlUt?*tuOS%6__=77etgms@Z|Y11nim1d7eR zds*P>nz%O#E;Qe=|4wjTpBJkE-*3g8y`X>g0<8UMB5Y@e$KDzWO?DPBee+K^WCKZY zW-)xv>$N$1qL!?l_>e~16B}p`4y*Jf_bAt zwJGp1oxn!bD=y}?I?3S@B5j|Z*{ZP1OcIzd3MQbzgsq)^VFNnr#ZYg$9V!x%ZYy9b z?1twZklQOF8V>k7JGztr6aKNqc#Err-v&Mw`cgiXOFvH{s{@uO0v`3s;|C4`U6({$ zX8zm&Nr&otV7H$vuHLyHDo^aa8Y(aJ=Mfl9|Ia8}r@_O6cwAo`90V=>@OHt=S> zi=R~oLAZ6p@}I>OfItNS@MR5_&x}_z{66!&z}R(d0e!$6x^+=Erq0&jmjYBg0#qa| za`#zxsJW5(0vZrKfb(Y+7o)j`a^>CH4yWz{-jbxjnitPb(SqR&ERYloV9@;Es0JuL z3Fjy^`F}NlD*jR7lf!O}2XFNc7ATHwECVK&Ws9qMGm<>TM%HcKnDH7q2r&Dd)=2IHPY2STJz1qaf$OP5AgO8U>uWO$0H0!fMgK+So0 zdmZ^@OTC6}ppUtYj<0+0VRjB|%*ZeP^DzJCt=3iYJgXiJ_8Fbj`)?9%RPegE0Mh?` zO#BD$UcJn=Vw4DCnctmfG;#oc7hj9t%fZGY&S~Q;(mk=SDX+Z=0{+mMnl{x~Y z-8lXFcq`~+ohJt(7Z%7KJq&C1G)$}~$GFeLc=}?1ycj2!)8s0~+bl!s_8}QR%X?@g zgEC3un!lF+SllV&GM89a^1?{XI>_W(rr(tLYG`hBeDCxK8McGj&cSY?H9(rxo3O2U zfX&)F$naAOg18K~A1g6(MJv)*5O&Fazw=m*b7AmANl|PTwuJibY9FLR5@*y(#>EW2&Si>!w+M>At)iv8x$Iqo#O^y1A|v+hp|~!u<1s zf5jyP#6|P3xEz7Fc>WdFCCjB-GF8u<_*t~#`n$_7C%1e_Sbf5er6i?wb@7^IXy$@n@u8x%gqc% ztLe>?yMkQFW!*SwVf`+}`$4P}uOzH0-)JIz;tQa4f`Q?Tb%)JX9LroNzXvh`G*edi z9d8Rx*s{P&fMC@!rNDFE*vP43OU-N@r_$=G<4Z>Y$;ou*5$L z$jD)Twl~k4pR!hhc;$hxZ9fFWg?ak=SMnCj8zv5u1G!q7ADt97%l$7whX$ER>-qUxRA|CKZ@#ge6#5D4;{CGw4ZC$HrD z=q<$t)2$;uh>o4utJ^uv(xh;Fn zo%x(^)PE{p@HWlM1Q$J2RES`&_lA1g>g>vE{rDvoRjsj2j9poIZ23F@g+1BIAzOVk z^g~i&4hLnKKmO(+fZ1uZGD9Lu`t8{!m)`)DZZS%%7dBgf$sQj%A8#<`QQk{0do9UM zr|iM45JFt*XOziRfw%=3Ps@0)KM?*{d7J_F>n}XAqzXwYSksUky}VJ>LU5c~DtY=i z*S0Af_ej`Mi<>vJE}9Gq!Db&zanfpWI|VHt9T9FLx*a#^%_}$4?w#X{obA#q>hhr@PLS zioXmySL@yB3b!836-n0ZvE#4Yy#>$P4pN#w`R2j(FOMgHN9uohBmy3J+q7x#D4VUu zJY1udfmJF7*iDY`$EfTqOCJY+>WGgOQnlYB#8Nvr$uFTI@b4fEL29objxRc?HZ>mf zP1$hec1`!8BLXhz({O!vm-+3Z5oc{H!m{Z+?(JWarD?@RK=aKfx|K-m4%I7*$X|+}8(VNNCwvfpCq6WMs;-&p@9->1mx|`n8x25sD zChYr0RFT7(-*81f8geo9op7HK_eR&n2(l z=I2mn4!qyuIxMn_Q7QM4ONKkycg%__)VG*tN(_v{Hh%?E6wq#+=!+BEucJ380{LsN zVcausPxICD+B$$*qLMnZSn|PXZ_h3!N~Ye|E(H0zPJQ%sIqe#`K&`XHPM*Zr=gBcrcwb6SYq3StLgV{Aq zq{S>C4O+R?6ia%nPKpNTlhaVJR4)s&p;u~Cu+pFwm>m)3h8r$$%m}I~>HnsFR)&?D zR?KNVa>$uoC$4EoC&bZ=|EzK>Q!hrIUbhOB7=or=(Vo#ho@RC}LCLht;8Rkp2C3r`fe!@%^`> z^VVTJ`L#`lBHBJ4Uo$(o@~p*F?ipo<;1Q~+b8rHMXgBn-4HBA zE}x{Iq?F%pUGXRUNqGO&JhfulTyOYyjuw9%7t5`#r@f@k$ao}iJsw?OU5#8VU3;Nf z-Us86;Xm9&X>j0T&Fj;nt0(jw;CrZ%MnA81#F_tgCrtAcMq86)QSZ8_>N4 zh(V1L{!LLIQARPhC;NQHNy4S3=|L;myNG>SvyU)^oZkiCf(E%x<~^tHMnf3f4(^k) z#|EK?j&FFG%6v_Gd>0$-3GosZ--;99Sni1?(+*V0|8>*+Z==Q}69>6nJ4}Y?8f24$ zG%U^g4g^w7_>10~t!Gq2p=8|ml11-L!&YAfHM(Ic_q?ZY1-tn8cE?Mjc`Ur}{q9<{ zEu^LI=~Y%;qk6K^;xO_X`pv7bnkOdAJ(88Nf%hezN4VORT=;MSx;<5^Srmkn%OF|? zbxTezRYv1oA2QWniSOGD^=TIMXUZD)fFsp`RDw$S?`p(*nlMd5*W$wR2ivo#MNAXx z1v#L5Gu!RHvvC~#hf4|>K!^>IP;m~>;XwT;9feJ*e z2@>%5aosPwahC_#1UZI#@)lIx4*DkP()p#Rx1Ff2CyJ^WQszNMaIemq+F2FaZW>Y+ zcmU#)7AcFBT0P+>S{`%QPe@n865vc4r+YtluYRZdN&Y0#bFa$VJS|M73nn@_NO{QJ zxL80pL{Ivdk|9P2yS{;4yGBbs;n{l!>n3OFtvSl@50(#kOyja-ip=8lv$^O!%%Z+D z#2l3F5;(UIvwQ_0r%n>0 z3s%|nRPM-W*JF^LwW-T!{g-g(-spKwDpFZJrbK~~eu*egF}--qTxr9C?U?Sbf&x(E zPjaK=3|!bQNFk5ECPB`qE+Tc*;Xzbby`H!(j|<&icNs~}Zg8a5%2_&@=g=wkKRo0@ zK>LPH>T>48z6T0tnO3usD`y(%!P2NP#E6xcGAg&XV|Ef*O|#?wBvkG;I=)0>nHiJn z4a8ZYXQ1#(yn32=eCy#jh~#O#iTq~u3(WyyyDNh#H>k~H$TY)Q-UXJo)Cl*NuP*~Q@CU;bGY&nLiluhwk zcC|ucWL(hZx0-C1r+%|s2^@C0!nu3MUS@tl374F|g=;4?q};l;X2_#6;P7RZJfGQ1 z)mNvXQ7{S*zw3$Lvk>>)c_r>%WsJby;o)70`xu#ZG8Ho6nR7G{a@#*m;al{HdFht8 znMcOqjEj@|z4nGk-rGla(PMsrRlBhhJB7`2J8SN>&nl(^mS^s%#(Mg$f^g(+OWu}? zl5-QQTDR&3P*z)B`^wJfN5%MlGw(@%ck^1Cr+Ij~$0&kueNfw!33fUmXyvtw+UDAbV_YcBCgkZ*v16@d&>jc# z@bJgP;R*`sxImW2(wLn|YqKGzb^rOi+IP3ep$9AD(7_3{dgJ7>KtIBA&9$~$0_=2m zm)pjQbkNo+GzFVsak;&IM`K;S{GOa9L+{&;%pi{TqhgpHGA#zG&dW~Qj(lml)w5`R zLG7+z^rMMY)xX^?E4lp|Ekpe>L0kL@Ox(}&c5xtTIkcV*2BPO*8^^KC$m@&Ui5Lw& z*(ewurclf@s*E)~NyqGXu0`PjxF~$}TTW>eOH_IsVyH-;bTw=3d79UinYnd%`Ub|{ zdAfE4Co-egUVE<~y8liskD@GFnxFWmuAVHGBYIm1V+fIE8Ho9|&zILy6Q%za5vn&g zD2V2MEA>zrNLV+#l9%s%!LyPS(xAVG;lw5M%o%PL-{gMG8ab)lwOm?kpnEN$Ox$sK zv_VoXN5^%dH_^hxmg{5X$DPRmd-n=i$fdI-j7$3CkX}kbMUX^c z0c_g>9YfbUh5L16#q>2c#@p#xH#t`#(3qx9>T}dq)x21S$z@f&56>&rV-vC~nNM=! zg1F%=h8ba&^UW(1L44PPkorwf*gt;%8nERg$qRiaw4MoN#kjdqN4~Di%^$ip7UHaO< zC7a1ro#_I;YRHi3ZSKcbJCY9x-fizM*#{l;%qT>Soq7!=??KY1Wt|`FISinC1t%0 zYVP6~cX73ez$NrAUy}5kXmQ|@9O}jC-!)CgNYOjrUOZ;e_K4^IBbdgnm_=V6sy)7BNSuXd zaWM$AgY5)>)7838GoVqR!S~aI30zUFWQ`RemSxW;_q!rR&oW#I5wdC zE=3P?E!hndFL>~tf$jTDJA116Un~sk^b8D43p`{KYRNKB3?ma>P;&BYVfvrtb@>)j zl_s#Ha)LZ=e(9vee+)Y92l3lGx?rErgEjehvXQ)tXo9qGKIMqAMDeG9OAYZ1i-@~I zxhVUG=pD$l>ARihRxrEUu5#o-{yeh@ zly=xL?iTrItIm=~Q>Ml@pX!*=*4w4kSTr1b-f|gX%s%KYKklbRFwc1>Uid^aKJf1O zee&nhhcQ_8Oacg%gwJLJ*S-;TUd3wPIYnfApC>W^bDlJf%fV%?Ve_5G?&-`oJ2kDa zoaqan+H*)LmUoK~=jPjB&HI3b>ZgDOPQ?(F;2dm9;?N(pXKZV#2tEI$eC7>RlWKuK zn|3Cs4eK6&k>se|{V*Q@YX1ZDNo3^v-VRqLokNk4!eR({h z6s78KF8Vp&0n;iq%~o5W@JQ;@W`*~6e0zngZ6z-=xVO^G`AAmn~aR8HflA`#68z_x0Ql<-E5t~HJ|u!V?Q1N zo!RN$Q<*;38#CMb#TgHg(AJxR2UyKiourP(f>sv;L{piMnS*DB??!~O+5NM`?d_1Y znRF+N;rETUTh$J86?PT9=(lw=q-@Zg{NkP92zVd4vZZcTZ=~ANff>Fju%usXMhx@?-^Q7%5&u|elEVAxPw=g^L~)&-;C8u*-d8L z^qYizAs*2~GJt~S7TGV!{`q1+)IARa;=ok#lG-F&L>TGR7%E#)uQKr>=Usn_X68_v zaXJqV`PDnN#Hf30jddNJ>y{^dkfLAqvp~YTck$xc731V9Gx7mJA&}?ndwx-z(4yO7 z7xB>Bc3x9-)7&ZYK2|lqQRgs7o^QbLG2rNQd(va~i;Sv>bs{4v#cGFUPx#Z(78aPw z+LLo%fu=J7U1bL_rsr!Y$Z$u&zKJn~5Fpg_ITIw&QpZIGf0P5m`z?WJ!I&dy*^rRe4MmZUlz zd3^LW&=f;bssWPzJHz`2!7%g@%n_JAl|1I3Zp%De3J(px;1_Vmqo7uF3UgS7(E364JfB^oi zMtHVaNuLQfS-r7?Zl=F$Dgg|>on!%oO|ax>nJt83ho7|_6p06u zTmGB7eECrtsp?UFeu(3v-4K_?mHs(`A|s-+(w^icukYS&U$xcG46kcQh#3eh=aMUd37}bQDsU2=c>2- z!>&2soo?(*c4t!Zex(FnADIM_ff+mIy7@Js|A+ibMq9|hkK$24(QlW2RQ#Yq=ALi) zK=eMLD7qg=e6_7V3*?Jw~Mjq2uj+QSX72 zN4R+sk_7hkzDE9d5y+OrNV#}|=orqM57YRQ2q%C@nio_nAAv*GYm}HP?3mg(SPWXY zHBfSxCKc#4qpk`#&56Vx>Q zN1sHB_MYPzNX@R*&e1IT3u!%ZI>S2fYf|``trwRHs=MZPozWB%=z@(xuV9&(-XtsG zm{p*s^A}*9K&ZDtIOQ0Le^CqXNm7quOS-Gzn1^cF54){SFhEIvByaU#0dGYsowt&1F45ZB7$|eKuSqnU3Bx)I~{bl%gOUZ(B5ES3M67yx~y$hMfK_Pq%yw% z$XPND4^Hw|kM`t-S3{aTBQAh$6QHa53Yk=-4Zd%6r$p^51j+bY7DaH0sDQenNo8wj z{3R_)?yG_4NZu-*8NoKWddxLa0oM0f1?m2e0vBgV$6mcAE<~X-T5-)Npw%NEEgqfo zD9aA{9fQJaeP2IqAWVC#{d%zgTEY1vfi(1Fo|xtk-l1>596<~-t3U$wo_}Be`2)S@ zjhf~=GXO;(QSp^D^koi<_eEUSyiVIThjWV}ojo+H&&9ifwzP+5Mj9DB7D`$WoKtY& z`y<$oz=cn%hzm^+WyC@U#Fsry+_Mi0EVmE<3datwo7Ef>X{j-H+ql9NsvMYFVrdgZ z6(>V{f7W^q-Whd|biG=bzjhvnqhNaOADgO*cm$hZ^h19@flmF8U^`ny#)JgpN5JYQ zs4q3i5P$F5i>J@+Z9n3`o}b<$EJR7Jj;=hMGb$R@3*rT<0_L zqO@V#X|@Hl5TE-ke;2Q#f2r{0T`IV&ts!nihzU78F6SDffJjz9Iz&M?G-0mO=o!@R z>ad2C6o?={vrSvOtz)qoQM7zRP19xwzGw^YrvtcniPcnmA<@fg=UbP3d*qfO+8Z`IeiwzZEVs_$hK95QzAFJgD9Ji~zM zoT-Bwg?t!=WmGU^;g+g;Bb)Z<*u(RAhZ66zSX4RR=iTN|&-L9^N|?c*jlKeyNdhn< zn%$*Msou4@yUH~T@cITgAx!u6#ON!eI=A5&SAtlstZ!~IQu0zKW~B zvPKMNcw2Tp@v9nn82Lu&q25K6Wg5-OW zkzMAmF zL*=?q3JvrN+DzgT#G%FVY(wwSCxAi=Za|@$+eZ`3XC2h8nt^DN{<1}pbfJ_^lK&sc z;11|@Z(v(CU_nY8b{_HfpbZg>K8$$hvGGfG#(N`=61N!$fcy7}t&YaHmr(`(V2TVr z)5}-GWyWK2{i3cxjcIb>N6`BDL;j+QYVo4%etDhL$GR)qc!3A*sd+<7{L1onpqAH4vL~dHrL2raRw_eS``z z47%FKUUVUfL3&{QSAa$@Evmy>+tL>TM zIYI^F{;nPZpC!WAD9B?XD%HYsy4gsZTRfGK$k%iw@$EYMwU~3pZ_DDNCJhf2=wH52J1Qh`BTcfKt4P`Ba%U2l{|g(HY|q` zTdr`+l8Jm#k=vf+w$ zG0NI_K-FFC(k$#9GU|Yy8g8*0IAZa@qlH$Z?MkW4en)=# z{kG`Q`I*Z1GYwLTAFj6pzhS`=JO1r4;JZz;QD2*C2U+vVsKeKCuOZ%uL=R%}qVQt% zQVl;asHBTZn1MnTQy@hJuG}k;L2ks5ocx$cWrI?43E+VTM5;#k`P0^+Cd+W*)_>%q zI954v^^MRT?1U5Sje zL{c)e_;3Cr(j!3^^GflwCJ!T?08a0B2#53e29$JNE{^E-Pv^!)Zx?wn|7(N;4ek}X z9~9k;YG1vOK5zO#MW*Rs&bUxF`W~&>T8;jDw7~~ON`4*_!5xu<_NzScfW#FZRsQQN z_aZ;#M?OPxXrvGDVU3|d>%-^s-X!i%UGq{Z%(W01h<10(leGBml9Zcu=1i}i0ZWbS zHHG_FyELjYb8loguRH8V+rXoG{XV&T{AJ}1Xz^K?DkuknhDXNF6%{-+HW% z7a5C)mBw4d4(dRFOzqME5>kWWfhK2r-eJ>~ghgTS<5rhT&7>aa$FyKLizO~9jV|+? z@Vw7&V9L@y-n5{xQR+a={2tj@pPl+A|5ycuW$Vj5;c=^3UVNF8U-jM1%7ECR3Jv*)&EtlT> zNoZnL6$v^R@>pAoy1Mc#{qDpiCAk*e;Tm=zy*qK>cKfG}f5vUj$GG(i56HfP1AB3k z`zh&RO3Ky{FGQoJU^7lCt=>EeYCCHYOdraX0rdIIEHf``_-|>7dmX>ZmQv`iZFFeS zXJ$?-3e4vMh{XT6?UpR9Nzg{%xOw0;dLwzTWyjU15Km_a!UWV znnI_pgMI%mH-&n*MXJ>KJ{HGW6H*V6uZi3uB%J&(=kM5nmMcJbaY~VvU z6X{Zm6!;qI9qaTHroI!YugDXf@?I=v(=5$T^y8~QZUyyc)Eso#D+v9Nh5P0@RRSyL~e$l zg}j;l!{|P!$j-*@AYaqS)r_Y`IVgo@?`@`ll{&)MF#L6YI6v>R)CQ?%g-GtT2#bfU z{au8EsHx^knhjI0-jL}k=Hc`34s`o|v12{6#~5d|Fr;)NuqxeJ91D=(_ycZBls175D5s6;okn z(Snyre=$>Vwo)m_qojUr@~=y>gwW#pKcu7g$s2MeR2lZnKl4a1`FDsp?({rd|5;*K z_o~x<@weoE8bM3$QmUf6yqgHEi-2G)5O0 zi`ED2NA5AZ_?QF{f#I@2qZhH2g4gavTKC|xTNR93ypC^l1Gf=QBa4%45IC)8;GQS` z)+~nG5k2=cTK&fND091Q=@)lnEY=0;0|h8@A}e^ydi)KTk<=MVl_mAI{pA$?9NPN= zVu5~(&d$&NaUyszk1SEy*x)Ia&UmY#R zC@N^`?YQULJ`Gr!bfMp{Z>&*0o@eV#vzBC7q^$q{==zZS54WIf((-@u`l8W!L_XVD?E{@c5|yWQdtSNS zVDMHWSh`te+gyRR*6!);I;n&4aLV7`8;G-U<4A&?mJYXsv68~?PCEt1vWLISP}F55 zttM8KH@lBVXC9T$dMx0Zef+uXb$>`yu}l31+}RXWj^{-t+)-%YH&Rf`6@43R(@c;O&IKP1L=Dq?IeWVPyQ2HFXI%#iI|$nu5~3CHz! zoxm^jp9UHbt5U8=%p3_MMP^$=qVq+OxMrZ@AC$N0qv&2?VT)DAb;Bs%(;6C?j6T~Z zAVcZ6{6Zln54acpvu;9BVb`iH?CsjgXUn7I?5xI+4~FX1r5V}FiZ$&KTi%av88P^1 zP;n}lrNHrXX=oSc)+YTcO=(o6mC1n_kqLZ!WDFW#w4z~Cs;+KMpZlG0!xo&8qt|k{ z=H^lJ)8mp_B@)jNcGNT|?Am2I)}t;QaSJOwmrJzm`*)X4sXG2?|+sz1^PhrR@o zGF4fF2Hu;bUBD;Cj{S7fn0l7B6YdN)2%r{9SR}!X8Kh?DA5he4M*ikZI6cE@AxN|{ z%`TN^5c{=+^qD5Omz43Y(_N;v60=SM)q*yaTkQQ+){hvB*;lyI^5RO!V7a6W6lyu+ zQySRut^;}1IG;+P;FO@|J%L1Asao8Qf=5{^)z|M-MX`Xy6|nQYtYydZh~S5nli0y! zOTK?uBOg^!bH#2+3XaQ4%Zc>t*-vXa$S*y`%L{LcHJ0vyQXXFUp9m;pE8WDn-dW9h8X|iLRa0b-W8fjLDUMEZc85~k|rX^1_0s`Zsi1??I)6V06-O1_uQI|IeX@W~vxOXS}z|g3ZH6rJ$5SOt68H3Cx<}2lQGW;sgc18wnvLZ}UK_`klLmGd1_C3t66}2M#k1l#39)4UF#;?0oBVIQ2O=f*+2l zp!2cJ8mB$p!vPvdx3=EB1(6|*{sbFT1`-*1skP@;Mpu~3-xT1L)|f!2`zO0)ejS@9 zuHiJST-t9~hihTI0hjfV2%FV!8&wi$U`AKgZFal`zb$Jl3p^U)7$_!|zdG#BvcHVD zGtu%+xWaMR%)X=1fNf2mG*0qcT8$X^peyM0I(yG$avP4!^a1rJ=3mnu7=I(NNnV^M zG0R_@p{X35>0+fX-3rXQ^7*3j$WR^jP!~T?>Y`RZw_kh}HhPejp$y%Z;Zyex*u`nr zAEiM3UgJ}s0cJC}Ik~GA!giJ83)%FhTwaj#EBchYG2b(E32z>{g6}_#H9jbg(k(=0 z9R5r~$gAX06KV6ps)I4En|ja`8|9kl$lya;3a9>4^HKPHv#JHWN3X(EL94I>4`r!j zETc@4z73Y1WJIz}n=}f~tz~jG)12v!P_xwoO!z4>fHLr zV64f8|HFm1>JJRhuRW=yQ`uc9&{`6C^=?eFP%tTalcbc@7%@joi_0ZtI@--&jc`Sq zxg5BZ8eEmG;v&c_+Ft65{OqTG7+42}<(SEjH>L(F;TTl3qCNAe%{ zFfs%S{y6-z(i4qYyGi8RDOfJTE10J zhDM-Nah0Zn0?qT5vX|a1NwyeP=Hb-{`zSi~6p@p@LVGK!3jfyKPcv0=lJM*moj_vl zES6wlZh)R9&N{?V&lCEx*(TX&Au@|~c28;MSD9u#-<*hU-@y#|y*@G5s8!Ty4h7Qx z3P%>^c|IgG`NRpscMRxSx1I@LCx$qjl_k99$Nzf9Q)35fjh>6nmb1R^KaA}PcsxAA zUDCYBapF3Fs~g3bS8imxWuRWQ8t8T6mWpgcTd`R_(TB0)r zUsPNi31JaQ7Ab%F_A83U;PRJr*AY5rpB~zL!B;-x20#k%l&zyJ=DeON&6nTXv>66g zUK-f!vcc!}0w}5GW-PwKITBRrNu12Z8t2F*ti@V zo*wdHhYEO@R*M#T!dLgBrh;B8FKBoE}4UY5W$>L;_)8S1iZ{| zw%R`5Ju+(@Q&>Jrz1xZL;l6GT+S+N{tY@oku4lkcigWUrhhM=B^yFQs-)U@{Jv=|* z6MaRK)#AI<>NTuhz?96JeiNnWV;ajG5-d?zn=YhvYLko}H1`&h=>;G{V)m63uk|Utj28t%_Hm{ULf7*AuR_$;&|A z8Tob{i9OarPLwlz?Rt7ldP2O-nr^^QqeQuTh&xe|md;)~@<(|ZoVbjCh}1Wuug0O* zVfs3OQntubJ0tB6%A>|y#-p8%;nt|nQU!Kd?v6C>@(X)KoYyL7%h}9vn>eC5vWks& z^n7uj|AfS`U*9`pRxNLb4#Dx>yo{piU)^d!VT)YP_R6ckiMD%&acNUWGGn^d8nhFiN(uJ{@ zW&Vf8R!)r0TDM4NXcNeHmfkiO(o^$PtS6c=dv&2q%y*lP_SaYppb*o@)mvCCHxpvu z!UCh*eD$K3DUkQXRunp0;e`v*4_$Ul0u}!XQIT9(?kHz9ZlPi)m{Xf|_O;2?{BGQa znt%0R^=VEjDEC%4pQQGl?X9zr%b|Ab zBW6n8yWl=r)2%{m!qr~b_?i3+LkC49F(Z4VZ9D%nJuJttkI6 zj4adbvEjGy^E&(?W;`UXl3dA9?08p~N+9U4QX^(<{eNTby@Q(UzII`(pgf2uML~-2 zAP|};y{hyky@e_$y-TkOA`%1yA#{)us-YQL=pdjVy(uLTkPC z6zwbVspW;d!>LzoX3{1KQtx8$#u7?HYr7q@RuVTd?XxObY^t!OklZd^R1xfVDaA?v zFN&;m%i_#8Q4pd?=7F;Fr?AEtF2#uGoVCwiR`Xu|{obLgFFJfFnh8T!J5f8%4ZEqF z{Gri6ZO@E@EWIdY`)TJJbE<|Yex?Jv$Iy6~RR5CY9hrfDTa4b*acl&i?Dlm4rg*ue$g-3D;@&V2kC3n?ee~I^XKd z$Rrf-@dMKbz|-wHVLA*Gyb zp?o5`jj`c2qb!o&*;XO4aVdqV19?4x2Ayji9F4$E;^wy4!gwIha}3vxFhKkSKYXwRWN9&8*@88ZG4HA-Gy$!rS6wfo`W%VE4uZRo*xspACpu&kjgqeWVn=;du1eRpm}EQoJrvk$9IuqEH629A2NnU}f6 z4M`Tk*Gh5pfWm_B&&4w@Tz`kpX4oJKlyZc!1p<~@2M+UC6n ze%brm6mMA|`_6u{Pu0KDHn$gJ^58~qN-@oB*Y)zeqnq^E@{Q$2wr7Un>dL9Up_zH5F%3U?Nd~S z0V}VbyZMS&p?~;e_1YM@=FRIk`HdD)Ap)t~EQp@J-A>5AP%HZ}*W(P0ZV&{P+aIdj z!GubTu)5A9wC()xr7C!)o}8bRm4&iuJ1USb*ysC`A@KlTcRCxl^h7l;Yp5!DUFfk9CbiF1y=NZtg*Jw7AK>OCL=GpTCx*YxCl3@{S~JSA@vA@_^aOP|UjE;$T?u|(!MllL<>JzDnE4$k#RgpR31J{mhu>!Y~PXy-ig?0m%)B3 z7i^lNayY3%P`Tl0XZ8Y2O@d1i@wt1$xLMqtGLPh~#AA*aK$p~*?>mg$nJwM`hq8d4dJ)9H~eJtPMEuY;E8 zj3Cxa`1tql;`3g~HXR+wZdhV53ZL4r)sizphdn%l^?ji_WPNE-Tc;IW#IJw)r=)Dk zF}FD4;VF5%mu#VOx}WvT;Us8@{R7kV>F@3l87whR*gfc1oA*EI zCr)w%tFXtrVy8QkUdvy~b}&vYZ~^J1lJgIqlWL`M7arG-J$?h1+D_(oay)rIAf5i0 zSq4h!6ktiL622*P8r5{Tg>NeNGeL3=X{4^;pE}ccAD(IBq)pOhEIe*vSPtlo4 z%JrNx6gwVpu;}yfRo=cYS7HAviJ*a)NN9#d;3iFCFEZ*2LWDQM=8D972JvIcx( z*Z^gnJN4cb(n>kfmv24ieT2{}d|ddROAGNVT30fFT@(7vcWbm5wY+0RFFMG< zW-7&Pscdz3gEin7_#UJdEnWCt+8CR12M*4LO1pxNOxGFF$35BmDr-WeZ@M9&S2~^I zmQXomAAH6J8i(+)guU;rIl|07PX}|5{ssj1f4|8|5&dY$}#{0~tZPz*0qoJx1 z3mf%ivq#4pjgr*a>?w?XtD8AiJf^lnX;TkszGcmxouz>&?t6J|e5$s>ea6^14alqK zkH;^l`HR)*6>1@p%Wr5*?Pkr>^>@XD;)Eva&lj$OLLxOX$cK@9k?I^@juWB7g|QTwu?m z?dS3BT64LEv1OF-)+St;W z&$817OcA+0Srv?4g+ zjBhZK-u?4VEtU}I-wUrx49^v(I9)2IjxhH)Tu44yfAeH9Z%kE!I|>&aeoC_L8h2G2 zUsH&?e$CQDq3T6UEu>HM6`c}2Jr?G?73_y5KCuf{V7`pG9T}gb!n1wP-(MJ4dmqf4 zE=Ww0ZjB;v$d(=im@2BLC}k6#HqFPdYRSEiU|Q&|TY4#{MhGHs_@`VOK%8uHZKo>p zW`cT8Y^k5-P&?ORYX5;e%|7jb7-p*c>Bf`u>b_6own;me3mO9MSlZOC(YY{O-;Ud%F4S#&4RwZC|-EHxd z9+{9kWgc?suH(_Bi@$OC<;Cs$X|qVYr5Y1FQ{#PQ&4xaDCF9J?Yu_rHS0CJOf4TM0 z+f0yETFL1xvV%WpjtzAy;q#ewIyqV4VF1f9E$n!6Vc~O|Eh!|hd4mu_h`Y0UO zPfsrlCm7ndu{eP@wV#%p4(2V0g7Y(sU*KS{Z8PvUp$4JakU^Fa%h_*?O=EjM|bQs z8?x$o-8?FD1g`RYG`~-KcXiUVX-Z34DFxS^(m$c2VR?mV?-da) zpo0>C)`gh6e6F>n6ahWA@xq(;=&x z*vUY2SH}8xTIeWh-eyPS#zL9dH2TN896t-ioRy)0rNR6xBf6m(=fn6GrlGlKRV9tF zmFNyS{uEKmd%NRmx5G+E;oH^iAEF4I%S^$Gop=k0$eEU0CYz?>pz>T1qw|$oROHPx z36B2fN#PBzD2hn-t36Jf&u$Msg*g%E&1b8$afsPTwNi}SDAeJHi2Q|?IABddqwko{ zLe+;R?RDrO{AP7`cX#-D+HU7buHmVN_(OWtRr2Y+u6> z&CXdAdDbWPo3w;;$YSx|Zyz=3uua*#1z9|~yPA1nqcPbNuY$U$1c7I#}() zDTi)tLh*U+I1a&IwRF`9JupKR8Wu$rgHavWRh~x$(Ajk(vkZHFnrnU8V1A3mD5L2G zV=IcpS}>#LT51XSh1HAne?F=q)aS-5LRkuOvza{&fL0z zpJ=Qxyc*E`zHf{dl4X>4cKj13`b|Vpxt_t;gwALqY~8(K3$8AIVZ7Gtpus_s);kgg z;xb6TnSu3C`!3)H(+-sW*m!aq=B+HW#of=M*b;4x5emSxd7#y59HaR^1d{-t6$sT7 z5$yo3fs>w~=uE%F_^ zJ{0Yx>SL02K{y#UW8&aJ(YJvujyT?YHJA0 z_Z*TRJ@WbC^U-#2s261JQ$d7Jo(UYaz9}BUeLOiJlTwhY$1)F_2>q8ep7(6RfZZ8G z)RD22^nvlFIDUJajdkEuKxq~vWU+pwp01VMTH+{(TVkB4E6D58e06SNf_VV3eA)2) zB?HX`Zv}=@`(l0CaaSLOCR>F;UoCq0X9~My+qkBxQ2CHUZRQ+vAPU%0Zp;bx6Tx>T ztyc|Oit~T_wPefxb0F|2Br`y}vL7WGpRqow5BcLd;p4u?JK)g9oqfL~B{V(R}S zOc^K8Oc)nRuAl8aHOj4~8dH*#xpj@|f;!EuOmY8v<(0ryp$BP1W_k{@?hJMLHP=v4 z;$MO`8k*s8AFG3xunXkT&v*-S=pPqKEA8*{WuWDx$l}6@;$H-mqIo}B9;0bOySdGH z;ci9DiOGd==eBIR3k&HqMzvuJNtV8iTr_V#ray8*JOZjfu@PvdtN|~2SnLNuNDcP1 zDQ>AcY(-P~r%q70YZKmRdp#&}Wre?!P~vt44I^2XaHq{i0EM)3qMTee@O0LMk9WO1 z6wB@mBjQ7iI_D|iFTSRU-B7-UiufOgi-tUTG9+f9|VizL3Ho z)!iv&3u5=Km)n%wIW*DNIkD&)wb2(c%~n3fyG0Bz+iQV51Fux;om%^PuRF$!B^~-V zAp6LOYp4cs<3{((idhXfq4uZLAMNHJH0psEyzRV1-#Eds$`-$EKQ=*)VkIRALL52i zW_5e+7@&tn)%+$EN1Z`cQHTB%19cvQGXF(905FC@BmTEC4*VbK zlu+P1qL4+oC)oSXus(38Wm_|D$vd;A{W;CG7ua z@Wbf6oUPbEnDarYY03+@$M63jV>3%62(&mq59m(Ef*fJM9dQY6m9{$5A~)0G5~w%Q zyZ~^C6+=&prZ%uO{M1RW%iIP!5J^-8PKxB8mYV7cxq$fvkc{o=7LIo+_c}~7gI%Bi z^Sj_HD1(_iS&l6zXmTDYC;*u#oA%yAJuBsMhxJFhEgJ_QHDkM96D$Kr&mpdFJ+k)l zUrhUNF8~1eE#L5JPyhMDkgclT;pTJX!#U39Jc&+%PU-iropXEyAh_RFlxu==$hLpJ zXJlR~_7r`hNH5-*N&&iHPaej({9uS&s^9tZvS)BplYehvl%q%|symid3qZd2pT-ga zlJa}d*{QJ&-pKDp>rPdXF9D`7X!qjx*lt#>T5OJ0rh4#}G$P(^CexQd|V&X(*VZ0ny@Q+@yWrMvRUIkFG$KRQ*&-3nhft6$jl zSB0535PtC|uY_|RPI^%SeB&42>)tK^8WT|2_nb%cjl;m;cFbaps6LRSM(yT$^UY4@J zS^|ZSen`6%tIhMd$d$qN$xz8`)};YfnY1is*EV5#&{e?h@NVj;M3czLI>tV=+_~&k z8UL2b!C65NtX2|T3XS=9m^Kg0x%-RjE=OHbc;V)E07?(2Z8(R72_y!Y=2-$lSf#+iJFY#CXm{L+%TzZKG5UryQH<(? z*4Fbh94f1mO(a?uHr6y@(L0?=zhowkywJaZ5aTN5H@QfPU<+S4WY!W;B(a_|OXW1% z!#~eJ`&M?=vYxcj zb=?NEztbLm6J(Z?U918);QYX!2(vaGHeEk*oZS5Uo`~&K%5!5p@J>d`1!^*W5q({G zBtBB{cfuw&}~KB$SxfyK;JI!kyM-uYYwyU#UpoNb_;9Vak<{q%N$s%g%HQvVG*tW;5^Q?8i}UP26h4`sPvn^0USm z8xFk^hu_y5xC!9a(!H{o5Yop-=jjC#q0~<@91Yo47DGyEuJx;K?gl^rAyi%xzJ?aE! zQSp}w&4*Z-8nab-lLZ0!QtLiAS&B?|b#=8gty3Te>4=iXzq&jeMD;HV%`7$VECBZ% z2TaDd&<4PBwj(MCyv9Vo9DwkGAXxJ{W1)HkdQ6tN_VltBEpU_ai@WxD;&#j+QPsU>g02 z7f7TvR#t2V9v|m|{=9e5IuGS`deT_Fr`JHp=OV1Cg2UckQ{GHz5BA-?U4zRJ^!#Qi z8K6GC0IAS%WJp}WvHpF0MOq6`nfyO9)zAQ5j20;se>Yryj(lWRKl zG<{rY{}X^bL46GMfX=iCXUh8DTMIeSmduJ!=v%?#R2eb@9|H~ARYNpLAFi!+%hnfK zPwG7!0h~(LNger?vxu(NbjBrgI;@o#ICNG$!>t&w-V*@yk(nu^G(oY7$uI3CMmbC~xpfYb zE?A1qz9D7?9iDnGniXn+{yF`8WNV>UFLX~_9nPl;Dwv7Oq(UouU@fHHHG>6ch&67f zp>jjFoEl5XlG9LGsAF z$6$2CV-K0vnlZh(y1wGTUklQC&J(m*YFRo%qC2^qv}_;7S!9n!S0j7cGpb7mdhi^` zukD$gO)_?m@>j7G5s!o*rXEp)g%s~|)1gG&Y5MI9(8(4B-#Q9(ZuIm6`g=|9j+w1Z zhLQxJJc`M+&CSiwx_ku58lMLTknekDCUbxK-0vi=>^^8D_482wf|6r zKBvQ?Wr`8POc(1dC29gP>PJ~WR7&#&I&znC2r7C21*o|}N z!J_~G2Lo}qJTp0NJ3I8lE;Gs3A^L9dG!noY`LZ?8zSO9fGNrjH;utkrWNKQkIBblJ zzmu23#Uj?8-`G19b-mh(r@esP53KhWwwK_`;vksLo6qID(SH_k&H?Z-6~mUt;pD2N zb5-~F*Kx%cRB65_h>I9I?p|k%knePfapa(znd+I<%QI9R$&vjHf!>MOvH@><@aeod zs%g2a2JG<#Ii^#C_AWY14t+gI4o~PC6P2BK!}2}9>$w^T8`jod6I3U_Op!4^(JYGh$s`xU|L#1btO`p$D`x zlUIW3dw(@=iH{Sd(|{x|a%Dry z$q@N1+F39q)D~4^AFuy*oW93=ctt)R$b4RzOK0$|NWw}opc^6s>`R|BQZcSBb_>XO zYg7%Ldh!@Zi;91oDIH&{1c{Vhm{i$~sEKAPo*r|_jR%tO$6*6ZFexG5dt-HWT?5$(7ePlPE zF1Whz9v+SyjM*(b9QL;>SEa1d<^qxo{dX*Ge7uNL_qfOfv=jEBSoYQBg%>3nqf#0L;9JWZ+m2DhM|WPv@$C=+9ur3{&n{G$_!klK4tl)X+zfGU_K#TWXPtg7$8@RL0U z1S6c*pKEdzhs*dh(mn!_p?KdfbGRz40UMfRSAn2wz*2#bKZt41^(53NJ=D#6GYQcfYEy3;ye)?B#y?>iC|#YP#FHUJg?Ja|*I9^$XfS=PH>`t|&W} zW@|Z-x@}J#hPZN_|9#0TRUKB`k+)N%l9OpYWOt8`(cr1n2|rjF<j; zePC=jeR}px#w>vofk)Z7V>)?Y$WrvnK$8++#7EQg=T*Ur22IYZyWDZ)`V-9alsRwdjnk-m8rXrbnK~0CFc(6!GH`q^qeR!Pvf#WDUNn!y^6hf2~JmJ%x6n(Om z4^2Vcp?q)1R~|D-FOrZeq8kjPWL#x|t+?4hH#j)oQ~lpvQYh-fAq5<2c3#cbZ6>Wo z4sA1y8!v+<)oM(-_aD%1J`PUN_i~92W#EVEQ@)1b=e?bnN(V(rEuA^9&R>%HfX6M< zYrP(qAyPVG(tGGMGra;fuCr6S{O?yx|BazzzXYNgWH0Wu=|(#gyw*LhR^IqKYzMYI zpuQcc{9H=H?0)g`q#>w^U=HJTvu*B#9)=%l~W2aexZE|&>Z&sks%Va2DJ4(V7vlu6O_bV+HsgH zu&!Q?Ue5J8nf&Bb{k|u!PSIW;r2%Qr_e`$!ME)y65{4HzcH=bpp|v$$LWs>bNj3Gu zst35a`}~Pu?sX`mV1q@4g@yEYlFlJKjl}+Z>MlTjc>Z*Xz^Z9U>ma~3hD%gRk>J`WxtvkkX$pjYHa49x5aQkn7qZcn&CFtK;I@Z zqa((1HXm3@G%t09+S4aV{dvH9m9OsuS7@D7@Op1dL$eFoUVhSV_5#t~Ej&EDx_z1k zLYK_051G)u{Ab($Kt}<$eQ;jU*DaWB=Dqm}KMt=hSBXn#tOjKrip&Vl6k2|ORjTGO z^oS(d_KIN$2iljztpEUpmk`9^f~~X}Jzn}~k{NQ8pspKFqi9e25QrAdoleB^mLXP+ z^w0-@U|lej!=c>uv5?jr3p+cb!&N-31_l)*FzP7t2!MM?o3yZImYf%N@WG<#mU}Uu zQgFjjw?&fSu3)b`f+7|MRa4|e)LEdkA+YBFqlXM7*)~k8NT>}rNg3tVhXts)O&+C< zesW)SiG9F>ZsxaWtfS`!$TdZ@uK+Fx8R;lN^WiHs5S;t+2q75DNOb9}Lf|x$Ez%YT zvXg5c!L*CPQQIrEzi(gDsL&tME<(w<73;G?%qv{Y19p1_dgKwgc+*#^is}FgNI8x)BVaBjsxfG(RuQSUmT%||d47+JW3;yAk9L@+yN5$yW9AHXI|wtPMeq56f=n^iVJ zcI2);`U5=#^!ZOiJ)$1)xWE@7K6XLQP7#NE80QM3{ z843OaAf+W)Iou+pGm`{N=J#(74p+w@DBUq7M8|Sdh9)~c5`Ypq|g*UPiLs^qA`Hm*6t5 zb2aav`ALf>(SM-LC&<-@bV<3Sxa=06i8oVulxDQ6v1qUc>GE0>zvLT>f!khK@sQxg zXFlyp<)K^6_h3f9Uh0DSDpQCe190eowKp+#N%fW50IOt1^X5!^UaNV<-YUv=0R}Zk zSf8)62birSWp-nDw{4i2Fe5fslOy2HuxO59H-^Bxna+U7HJMd@L@^~@UMtWF_dy&) zk7K>zR~Y4R6{nrjOWsH|C@)FGGKQ*ERZ)fqUB1ot=ScQzKIKGtZ$lHE`A>G^;R}D> zgDTTdXV;(HTh0Tdr12LTYLC8`Ze8Vpawp*-og|a~MLfEU*Ual>po0}#@VpdtY~68~ zx6??%?A_v`Qd*AIPDOK)Q?s{*&5nK6{eJ#Ox~85eh{{Y>2l}RcIS_H$n%A)xGpFMN z2!cSDlBlzBzlY+HNum~h50O^BM=2cIx*yYhyzU*w+F9;-6h>hm{=hjOfK1hbC_E9$xRll*N)iZop}Z(O#%#OGLZLY&ieEK^~R`Z^N5K-U0?y@W{! zXcfJ7)!q5YT`RT(6BHSg%teJUMtGQy(ZLXxHBi1Zk+F_T#jWFR?n)eo7*wMR0XvlJ zOw0NnJsCJHq_}pt43J)wBsrEq%sX5oR8M{$LUdAJ zat|l=N7;*7iUp%d^NU!AGhyu_faqLy${Kt6KtD;LB47I}xw_OyNs>USOt+(xV}jn# zBVqAJoC-g7eu|i@B+0+z1y5?P&kkYa&TYKDQ*NxgStZKby~aJu^|>H2$I}`glB-I%&8x=@*PM`h8&7 z$V(pgH`gN`8q80d7sDS`ll1)EjFK2g_h#_nLAAz9dFe!rik)GMkzT*$_l#xaufkTM z8YkrbRj$hsUDx4%)oChDd7ALc#6#HE@IBI^zWs&x8*kWLx=*dI&*Ur|p4eMv+$e5R zoL|BzM|A~!PL23lK0vO>;m?ZwMq=`uV3~0}Y}LH@S#h=Zxju4d^!Y$xhM0O&l4D`R zgRhZl!mCPV22=*W7SxWrK@-W|u4`eA*E7mm!0h!bSO2TR{EtYJKVUPaI!aG)xEta*zyi4rRUm z^5PPd#C^Mb;k5$jB}BgD{s*Qt5iODnO7=@xs*gD0Yo5GWMVBm4J;rNv%r+64S^VMtD^~0?i`(GO)sHXzTpzm}?^>`HTl$ zFN`xnZN_e3k_nKxX0+I2rk{p#vO;M1az^#9?9!_zItkLd@$K@QDXcimV;_22o-Y6@ko6Nmtz}rxNswgvG_} zBTb>Y{n=urJc!x^(cEIgN5v3o%(;+BCMptu>5F#Vu>?kcdSx$UP`{ZL3bm7@B+6x6qP@ZX>|A=qkFX%hLBf|gBtnzZb=*12@hnX zW}H=a<7Cq*&Tj@{MOt8&wPG4y>RxStab8gGo_dVPkSndceG}qfleY2?+si+@G1*-f zFp{H|xLx^3uoCVD`lxld9{f@CKo~7kJ71L>4$uC=jqoJ*6_xX@z!2q_-E-$&Snn-J z$=cjtwvl*Y-EAx@+T}^sS$3m)>-z=u$hc}_x6sh7qqLF|HscblVnc|MFD4{Ux=*bZ(0U}&1?M8%v0ZsQf{kxb9jf;J+L`zy7SeFY6UiAi0De`N$>#*8-J7# zT?NHuqNjPK07e^YRc4HQow+q*Kw^XAa zaWY>dCr9q?;1YWsOG?e%IGHK_SX^M*O21h@7*o5PEZKkt!lPrE{84}Swm@Jw9*3{x z%En&LU(9^C640M%WT4~v+;;rOfs>)Jjd@?i)GcYBd*Ub)CwHcq{*g7fU>4J~tAEd~ z>7=CdlzMrC|5usd;BjNAnQ@EyQA0t~l*WEcIDd^uT|eySo>O_F*Z1I95`N?F8y4T^ zS$b7Ym$LP8|{gBsk)oM;Xa#3)j zCDA=w*F>J-7$N^|NI3J|cA~|*v!XXE$U|#Ohs&LXmL=QY(rXtOFf5Ws)9v{vql79gIfvL)tP{U|55*$pMN~HKD99Rb9VdA$t4(p3xoB!u>GC|LQ_qq$+qtv7^D;-lJd!SY>DeumY}2O9 z!!1*}xqHV1b5Us-V3gJch6E+a9OAvp^Ge2MH`QM zo=i+Ih$2mg4#voT4zT)n1uqi?FGwPn1di3iELlTLHmKp*CkRhI4=5MVRK(5>V~fVW zlEXl4gecafMiZp5Ej+%f>c@%?SS{}9rp}{z1(^=6I$ypRSIXyDLnYG^@c1Y)c^Rd< zxH^ZzFOsF zo=*}A+B%WC4#K_kecsQNOt)`cjjQEcY+Xr?-7yzBNSOI;wy@B4>=NkElFrNW7<=rp zyV$Sb28iI8MMBCdLOQ=hWEFmXFu4&DtS0EoGI7eYUwucYMXoXnL}_o%%H}p-@yw}T zJJ3Z;lpWr6Qg4(KE|eS*P~L4TpuQU#tW|Eet1vk2653Q5;@zXjgZ$HKPta=0zpeiJ z(_dOq(s(N;;YyQ3%#Q*i1FpgrqC8K^R3dlb+Slh+JDTJMcf`lN6&xx<9uEEdAXanD z+|splBtq?Nbd1)w?gPZvk>|PB9-l_*+;(`pCCD-(db>B4_mpv5P!}qgXD(=_CUDTI zi$nf`Dp5X-t_&i5mB~f|2B!blA0@oy_eL`g5sQ*(H#i?#vJ@E=YTx&ahH~OX96>&qykB7ez zaXO#;FdDueEyJrSeeF*U`SIl*E&t+(!#Vzo`{c4~0fw%REq&<29TO+o{Pr!cR!_i( zES7LBLAVa}4WV7hI{#xvUkn&D=-}%R1p4ti*#CHdf+}_v_3K8jjr6b${i78gZBsWo zBK2<1H+0J=%02nmjC+BOpKHp}B=IWmno(-`p5F(tePdROG`Yj$LzZe*mk{=ZG^m-R47IIxwdl%E5IlxDanEkLI5I*+OZrcWp&S{@HuyZ_CQS4@Ls`42-&) zTM{rqzB3J+DDpQQU#a6NeK;krVV_t&uisUIdJ{Rvjg$8|65iRHtkvO{>=kN6YAdj|TGR zOnYx!s&jKKG)EjP>9eMwLr-fhYkHhIdiVOyDqq|6zH3oy78(<1ksaU>7bwsks5T^M zaiF`{La`!2XsDzTyD*AtA~)6bAutsrSS0B?x!pb3$|VfjZ{+D(av@-UJ1PsLh4ODl zfdP{zxFrKukb(E-YetkJi=%==5eh4koQRxkj2Fk+=55oc8R7A|h4mm2Z(jt*T7mv{ zv&e@PdHrsizH^qqb@4PRI+;i*s$V!L4L?&Xc_U-5;S8U~IRihIimZ{WpA%Gwnbbws zI25lwRh3-ez60S2t;IlJPLsv{GkpC(1rOv>QN@KGsp}0uC z3xyb3HsQ&Amey*Y1_x8w`pz5{9o`)hxEh=`Dg8+Z-*o$_dQ0=Zxx482W5MOEq$_x% zS3ygeTCd8n$5xN=?b~>^^rf$Ig$WL>NA|Thorv`U4L2rUCU2m>M9ON!W;^;8elq8} zUVUU8Y#Bt19k`*?ZQO4xOW(B>)oCmX%#PK&@cZz%h{_;qA$VMwarc(7KHsyn%SJjD zl7SI=X_7j3wlwpfqTA*wr$)@iAIc6m)YN|U{^0>7pU)9If1N1X^NjfM{cxvo$fnR= zm2?K|NZo%7!XaAR;!N{*wIuc6<6_NGh%)zmlHWt}D-=S?-7hEI)A^O}$QhyK@zGef z-bDzmdX}u}KUV99QAHm}29_z~>E-006xwcW)$Io&kxXP)&EGDNT@5DvnT2t(-XOXc z3nII97qsIz%>~4MA|79EobXmA(HbpA3P%B7#hT`a6%U`y z3xyHazyG*I7hUYG5AtA0mqxRS5nlx1K(q-BS*W@%v-EoR2`N4W`aG+E?oN>VCo|sD z-_o*0%2x7E;xt+7=Qlh0brq87nyIeRi|Ijpc4sAy-fMXsqUh30`z& zH)j76WCI5PH!4BQ{BfpZ5*^*&E|#sk`f9ZPomOqXXY?MkIQNm#66B$o)>hT~LanI` zlTW&3hl|w_Wi#z`; zbt)FiSdbx}^#Rc5KK^6xX$_Oz08=< zL9ukDK_N6zTl0!X$3B*YGnKdx%(&(IYzzp|8Xs4h&=s{lZD|qziu5^>7NG zwl+|f_N3LgOR5GylpC*i&-Oe^h6)JB;`iq3kxv5yyF3-n*hqL96jkyEoAGB)Nv{yL z9|ac<(Ah``y#7M29s2S0tk!UfYnK7#aPhhyv8H_8Q&KOkV#y z(Tv-pPgGsgWOD9WW4$SKOOnw3SnBZer}6E%ewrm~yuACY;QHee>m1@#w=4niWJ2l$ zQEq!Qm`=zH?eRM$%34@eG2>Qi1&6Mv^b}7B_Jy;L@)c^m`_1@uZzHc0;4%KSW_Di+YYD=x6Y7?VcYQ&1zM2p&chtN_K zMQd->+9UQJF=`jBAP7>m_l%w7y!3a@b*?kszg(`o<5~B8KcD;axgQ@cbPj~Xfi-A(es!qhiBDLLaI z$h=aT;vyj<-wDn-vt7B9UvUxp<9~o(P|;n<>a(h^DH%!D2|USLoiCC+b<# zFBHF8&9F$P(|@udD)?!>D=;FeL?2i9P}F-Qikbln)Rws02LU2HnNAn;hqyAZ%vk#2 zv8Wwq0&s$WNmrYC8&fUh=nrFs^skW+%>?Si3yNX-+@A}8>tOkm3 z3`m{kosb*mN(R7G6;3+pxetX65>^vpwh$|qxSFDsSUz0eY>@PpnfUr;!O?e|Q2xas z%O>9!=%f3~QjQsjxlc_lg6^Bb6RhJNZY@k36QgD_(|VTIR~}6L01 z$2}Y4lne9itp1^wHYQ+o7;aen^lp?pV?^0ht3p^?<`0%eZ;@<-pL4_$#=5(GnFXfzZWsvW&H=#8tIl%h4nkhBEYa7V=U^aE}79w zUWQvW10-~azop_py6`7e7KUY(+sVYQRF}yW1hw?-50C2|jwwD8_xoPe`8oM-2zaXX zy2mVrP~S}wc_CevZ#x#;{R$&FRx8jm1A2V4)1Qi-!zpX{M%iGUAI%n*xr{5EA1L(Ji zdpSq|MOMWXPg!{Toi~hIM5f|Hd$#^F1_+;ze8jWCjK_M(tdwyM{-^rbscG>Qe56N) zE9Rk5Z&XGD0x;j1hjZocXZ)!A6Y+X>zJrkmgk1;h6nx;FQ4mjnLLqN|mSi|~lmeCL zV@%_yluqrKItNF+>Hq?)PxE*AgYeD0u-Awjo6PM$lAynwcUq%y4^uZQhNYgl)7(12 ziT!=f-j*GjS-P||z9wBu$A=)&3^FR@(o`Z9t82CN34+B`)WS5h44ZT;_?d3Jt}TJV zkF;STzx`XGr&z{2&e-6gr5{6z2tyl6gnp%Zq9TP9Covh)<488|it_r;%)1d-_pq7m zs+nq<39qd*=IjR|4NBKTR9xQv_9BF!v}Wn+p?1i zf87t`f%F+l#fbXd?UwfsFRNJZsRT>EdjY;!h%||t?E3(B%;U1n0lob57tI{FlW9$> zDDi!Z$EKo5r;WfpTro@hvrV!umD{n@?HBl}S9al<^r!jlPQA#UHcxo$Hvpmn#P#g} z^h}uu_?a)ad7E}tZ1*>6nnu7OyO@r{^?Tn-hF*CrdNur@?d8oetz!! zJ3Zj0W3tvZzAI8+enhBYdk20=P-#P}p8bF-*v>J9OKJy=t85K8eH!1zVkTaGi%5+m z<4jN(_svzz59>FXaoYmL_xAPKx2BGBVV2i6s?khL!EHM}{(S@wLa->F8sGIfr?TnD z=mz1*X;^f4y>h@xEqX7siwI|Dd~i1|LvY6L3w6Y5-Lywm@Aoa2cAo?lkpLRG=gY51`=g*s%S*xtYLVS_}X~ zJRRQ%`3%c6E%Ddy5XCrfbH0035BhW^ErsVTxUUcu>~K&v5~s7q40mZjY;_(O&=N3= zQw}Tg&7)6J9Y}8I=Y|@Ci9uytYul*jtMto&eG^~B>cA>`CqmS0?>!5oigwGDM>(mZ zh-p1&cb2iwYxB;3ZE-HB&msP=J$=OB?x@#p03a4#c0VS6B^l~)16rlE*pyPdkwc}g z`-E;q5`+U_#~)c-+*TfDQjjn%}OiC4Y{|Ll#Qg?Ts{(FrD39quS#kIy!n~ zKJ!Vl`Pf9FC*`9bNUqU+voCy8HT%iOYT z9@%#vVhfg6V@-?fYu9x!8S*|iB?u*?x0cM_!^XM|DC$iDc-FSDw*I+#$rV zVd}{s4u%|o09(xSMNtlfkJmlcDqt>Vd6B~LCoMhbvB{H_RW4lAb$nX-S)?|0Sp^7E zS1Ph**>@MmBXwaaCb`eN0&O>)68Mak___}5ja-yWT8D~T*SB)E6yA%FRcdP7IxhVc z9DoyEeo;Up@@CKfS4bw2rrzIv`0z^LF&-pExOk1F{#%=0`S&i5jGxWhs{zOPU&d~7 z3A@Lk*J2z~=J%N|&&e~gBuD0yo&J1iILU_K?O&)~mj{WR1_$L12It%uQKj<#ay8S9 z5f}mGRGK^i!OopSQ{FBwt`|dzMar588kudpWBo3{i_gz49e)738j!&llR*D(K-qx- zm4cPUrcz_ZOdn%$MFv1-ht06u^u6uh;?+04v^NQMIAUtDGk>Cqd}*xQu|n%Blz_T9 zdkm3=K7fW_X6iYMd5^IvW;?vws@W4#jCcb{U|N=tS#Ymn+nJ4U5B|FoYWna6L3D-t z$WE5H*Wura^6QG2U+K@>mXeCEU%fnQ-7&B7Y+46BCUj+$-e#NeW_<*AqV|Z;5dZM; zOP}Lo&w7oXgQH)T!2`A@`!bJt($AW>WX7wQ$;nzkXo+x8mELuFbNW*#U0sDS=6~ZA ztw*jhqoD+u(XMklYE#h)$WDME`ls>LHT8Xo)Vg@y$H|*m2RkWn=zv=JZOZ9^<2x zj_oO$;fVl==B+!|!C!tUT!pY}ykbyc4B`Ila<7k$A^(9AD%SS?28}cgH$Q54y+9&` zi>5x(uT_mihuyU2lM1442ll}9X5t(Hop#`G+v7>tV-%z1v-GG%NyJ@X(b1I^>QSnP zpkMEQy0_tF%KFr@xu#^0nh9j1Yvgf{PK8|1A6|7mypu9PM?_?-28S0(fkEu=8jt@9 z8R+;%^&c+d(m47`PkfZ<7@=fuJO|XY-`gWsb7He@{fd!|QCCOM;>`_XM3av0Q*p4< zh|laMPBNHP9J5u7MWRJX{_XDH`V&O_uE1xkr*7E zDa|Co>eHZJH7;X+5@_G(8)V;T7X*HU^N~lhCvv~972B?ItpD{YWG6G?Eq3zQ8G|JQXNJr!z0Y5z&}(fTbV2>aN)&|d|gOvd7n=woLg#C}NoL?cNY(`ONDEBSy*AE2ZFOj`5F3ZwTqEnGDDl;zwRUs62Bubbh>?{Y< zDkheF1unFhPfWNB6Ep19u^VW6k>4wYIpZ=@ZlQ>!-g{SmBqbv*#e|mKC;J2BU$y7} z6MP%o$XJ|HJ~Xh;;Rn|IZ&PMt(gIUrxQbLMVJAz}Qyg#`$B|~9Vm(e1!SPf=u1x5h zOCiSojsM><^#$3xX5P+kcqyEob_nX-4tgnVr1jrsdOEYASk3tUeW}>Sfn9#o8(ZBH z7pMxL;}&>2>?03h_dD)IDkX8hU%S67ZJXhLERJQe`|!a!&>R~I+1Lt9IH+s#$JS1a;Fvr(ygkrO#tAC>2)@0G7Y^HlPR-J(mV=#;3?G= z{OZ>4;O_M(8A&_&M^nEyTsPn|AjCyZ5a6nSzK|{ZXkQvT{iC70e5fFx-QxN}uF+kUv>x#HN>hpE4FP!A7!BQQra2zdZ@$Uvn1L zp`jrIkVWYaz@%}xvzqVpw=n)xTMTbdkdLg63)hM{PS|gar;>g}|*hEWAp!p*7s`ZpTC9yTu$=liG+|ldfyPc)66iyp5UK zeOxovh19e7SX2LJ_di*wr|}8YK!*1}wtdKqRFG1E-q4;X^a-BAnlRGGUz6+E3{0jO zvnSQ|i+nyO$s?*Em)`OAmlRja@r8yD zx5mgm0pX*WIN4mmqnx%-nuOEo8CpIrt9tnO{KgpM;pP){nb{oROi-8Hh)~?=xMBdT z8E1VxfQpuu-d=m|I2<3aENu6Qj6JxlvG!^FB~A|Z|A20^QJRUSt`ZjZSZ=K2!eFaB zGi>M14m>?N8KWyS9*oQ*0vY==?__w>muMl+_y8dHQD4#k^7r9@k9hY+Q>!)luz(%P z%cVE8JRg3C+IEh>5(RQtgu|`osK{pj7?NEh~T>9CH1@u%MtoSuNDCVr?gO)gxWpjI@2YnGa0Yi@y|lK>j;& zHLu%Z!~TAyiiVL64kmOl$TC|?QT7Actl6qoKx*B5fJ&jdMWzI-$Pi#fKIKemYV)Ry zuM8188+fhSEQRTcfJgp7bE`>uDm(Q6XSLK`(qjT!ViME%gpAccSvj-)poa9@Z>N`U zb!Ao9$Y`ZTZjg$s&XkuQ*fo&xt4CQ2NLu5b@B*$+ThlV!~XuwT=C!lex`O0W67^q5*na1EZ1Bn zBd6UMZ;hoS`^W+GhOE*RmGlw=;A;a55*Su(>^s_q1&3zs?e~9-+V2@&e0S|@#O?JV zK&<=^O4g`XMs`InGJ5lg`cp@$71>8hZ%}nA)~^B^5O#`toPi zm`pXB>>UuaP`n$04AH5qRLz|{IZ~LG7!|53peSmp2nTG%*%ey}xQ!RB(K$czT>uhWbJ9WE!g#e*agry169S#% zzy2JkYye#Ev|g49y_kuH^8^*fyA|!m^BY)QU;L?7=hxRG(y;l3WUlUf{=={4w|J?x zp(=p0D4lC(PeZ*OpVyIT;+Pi+iDa&#@ISaa^A9%WRJyFfwhZ|@+>H%Usb5ReH5Rv1 zca}U@qiW0UIvbC(OPRV=i-BB4A}`6)i{IH{(7APn>0Wy_Xusuq6rc_UE?F)%z1|i8 z08};tgCit4jSBJ$?q|AKN7+yBNOA*$*R$XBu<9|q&uQi|(gNs0N^vR@OPedKM)0mU z$DX@EVQU&TwmhI# z@W00vf$LrAv7&5av+>NmMTO}p8zXS9GFe zWw{wf$_16JN2!MY;}VqtF+O{c%7kHRTXrw&tDXKvI-xpg)mAy5@CG+xg7R{DVL(O z-caVZZ*Ant$+vTzl-Ob}KE|8bq>HyZc&(1;K%nAw_fXy|H2Z%xnJe~@eE(YV5jfXY z>gb&kRC%QiAZ)VG@-6QauzJ-KR|?n5RqotqAVg02tmPg!RaPlzhfm*fe9WyFCSOda*h$7}+&tPfh{M`Z*)8!0I2CV&o?%sjTb zH5>e<3~Y-EpOJCKZh{b#Ope4Kf&kX~_Uw5YR@%G~kXjcmghA?NLzbU1Kn9Ew6IL5h zA?=_xU7HffzTVU>cFU^3F>QEnWSy<(mKUsg-0$|Rohf61PyhP0M?IqOMx?<>;U2O@nBWm?%6xP{<<1Z`9u9Zr#o5C&IJJ4fWGoz9rj!T91;xegP}Kq}t!_8sskfn^C$bn; zF>z-wCB<2vGNJh(CPTCJGAj>`3jAK>0DyWJ&YnPfyLIUDwGfr&O|9c$F=M{@*6rjz z{)z+R6P?0q$b@Sb{(D!}I0PTq@XtrY_W7)J3GJLQ|1@M(gHlWjR4Fq?<=#g#AP)BS zYV(~51OgJC&v7+n8ns~{IRtMrk#_nuu)lZ1(8Mcj5{oISUeK?&K{gi&rs!&n%;_PF zL!T8PU6Rj7$Lkg^_#%{_>(ve--nTSM-qEo{lG7BRrn-fAS0t}RFNk~0{kZ01O?v;D zknn>-HGFZfW<UL9a!|8wKhF#;-#4%>q zXw|dG;NCLE3;*gqo5n4*z(+nH2ZpSvBd9QemhXs?16bRxsTVnz25pn?T~@7Fce1s; zDZo@&aqnVIBob*(ho002S9|m`&IQFSRB$YwI_}@JTo8fd~fj@zwjG$PRi+oYHL3#OlTt{xS2o@Y5n?5z3{+3p_d!x zK8l^zE`M`-L%EagkjtUNR1&Vpp)X##iNN*0rZlQ|l=ApFjVel4m_GZw9feZ2FGtJH zem1EkMp{A9B_>+kb3BP|#Gvc+M%~(Xj7Z7zeMYSArP&?SRrhN~A-Rf;{7}K=Qui*k z!lI%|cDe4#$skqjXBRZHY_d;aHZ{J0?F0>`RSue9?9Sfs8Bha0m|^q{N%1*ZVTV2m zYG=m<_UJxc{%Y+4ILNZ}KRYo@OdeZ$eR*s#+!_08xJ~LI4cKB%f3Z>hFwg=B^rqAW zP6ya2o>9akS>eD^ccAnv<#P7$IzWE#K-y@hzlpFX7NpV~pmZT7gPGo8r#O(PLkAHw zr)>Kk!<6RnXRJ(9o@04wt(++>bOBfHm6vR-bW^Y_LHz4so=o)dBf5Z#+zj4lld7Ad zRqG3-`j_jX2m29?h|;;-uH{N#Zb8-j)vrJ2Kq-nt1=FlHOJmm8`OF#eAIH#d^v@M0 z30bH$B_)bb82RD=##go*WuBW}jng?LUY74_e3%iOh6C0#$CKcjM@yX~Bn-?{iBTLn z06VDLE#wn#sHW&yV|$F)`_aQ{B_X^*Vrxnc<@nRmk=^`CQR1ZdbMs;MYwT&L#lHpm z`M-edk6Sa*Z4ZK!k=~yA`Yx2ICFVOLs>Dh@8ubM9dS&Vg>sNzGsV=@WnZW^yJ}Kw= zsmN5Z*G$HiYi_!jJW_(we@?F_?hAMim!3S9E7iVweWedVZ1%@kpB!SnXwG|LI`+CU z_f2uXsw2>kqhFl&1&(Yu(l(>o(erI>h_u`2g@CX5c=MZLY30qt3w`l9{Y@gjEcsze z6{FT~39W*teI%pZtOd`FmP2=Zx~Grp^}>?Wx9)Ke$Up=B@rj+Mt@_SpKMU+F&!YBu ztU`O6PUY4-BO-(+>C|LyNIu62*s4Y;Ego^X8btDChzyhYwifC0S!uyIz$vz%sq~Rb z@exTQnZ1K;Yx*Mm2*IPYAl}+l_5!D@GR+skeD#!}cxHt&^CQc4legm?O~Q*f#hK4a zt(u2_0&|>}Xpvq!zR(yX1O_pSsH&>={oVGXvX0eU0@{x+LCIVHJDbg9AE^Vf6Df5C zj?8dtSPC!zpDt%=!7U)iCJS20?*Md7CD8QML8i4U%I}DMbz`GC38LWdoxN!v$?@m> z0WYq%YK3me#gv#1m6a$c(VjC!FD5||x z`&$85?Yb<={Yru-{$QLU*%Et_U}VEIHHEx(_+?bb7UT{eCYiy7&&?y})nuJoqN>n^ z^AP3h-J85@*+(@p`{)I?RB3WPw41np(JEJIvY@c$Jqvobh6}69%Vh#6%qs0Y`(30fYydtRxqp>d%25TO;_{COJ2^ZN|&%8d>6Wq zpo(6wx_G{sXqkJU*Ou27r%D-8%`6$6DzX^x0PN!`ht{y7O?9YX6)PyHZ4v>i z>+2hpyMe9vVB~l9B{9t>7CI0e>jYuparO$!23Zwwi=lcA_8L=78Uvn`n18MISdg8X z-g9CSkS+v#E$mIU6#f^hJIj}TNcHvaa;;uJEStlHrQL>1?Cko<+-t4 zjUf_ROd7T(j$VAt;?Bu*>KQ)8GNnurRLTtc4=rLNXlSEzNE9@{Ps)Eqo9dV`YmW!SMKu z&}xX8$c4?Te3;leV3Ir+y>O5@RK|L^a`%|TX>>fk(7&(CqWVE)#zg1ef}(4^?XsU; zg{fP10ubNtu&4J0$2Bx#+H&&IMx~EL`Rjg4`_8Y#%Jzs}pb@=%z!pQ3d>SiGF60h{ z?#Fk8+Zo)vnYOy>N=Q;m-Eac8G*qOCSUT!Fv+hle+)WZ$lxHXS(==`?^jd(L5c|6n zx8qbO%dY<0K4~ffv*8Tni86MML-?P##y^v>-+2DU(KQ2sl{8{`#KI7CAeO*o1T0aB zJ1lccH(%(8cy``M0ip{Fi@xIT4cLhZ$+d{l|M;vJ!2er|RzzRJTbFglMK0*-&5>kI zsG0A3)U{=2*zcqNzGW29yfd7TdrDBS%qXr{K6kM}fGDQX_cRPzeN@%tF{i3)Qlr~a z3213Nln{Z}-w0**Z`u#68}kjDaT)c@UCJT?j3`w5i0aJO{QAbpI|E7fDhvHpt$$8m zIOgcAin#)N@JOP+qxkp&wV~&lo4@5V`vDTl9rsw_YWe>f?koqqau}*TLGoUgTz8Ek zb?%gXtsdCW+Z6$#qiZTMcgTh2<-}-_=0MAryJooDrRTQgV&V%q{D6fJUBWD3Zl+o5hI@$em>K#MeC2$%#cFdkUVzWDsBTpH zD22kcKH^NB#b-#FJXDxOd;91Ymr*~h^rzv=QobopzqECYEh4HC#(IJ2#41)&+%z@) zYkEN~Z6N=em&Hr(Etbk6H@7q;9ll%tpp9?Arq^c6JvMyL0J62*lC_`5A}}8eReXsm zdfxXXq!y)_!|`WkTGemRWo9*u@1QRoI1jOckYj)_u=3Dy=^3_unrPT4kP(U2{OCz>VLqG zkJrou+;%QNj@NU@uBTBM~ae>G9#F+y>@tnbg@QX z+AoV>sZ{u%dHRxKBYPpwX4w`qCGdCNW~{g%C%i}Z8JD@%tRoYUGA{;TcBX>D!s48q zPNtQWmFN(_IL(zIXG==3JViTnnv~y#Uh?5IdLZ*d>Y_5HxssA+VrYQ=s8ISLK=UDx z1=-`6k3+J|UK+Lo;#}N;oa=kqNloj>M?QOK*YBnb<4fwk;^B zNOH%IYDj{_=}M&Zn%lT>T}lT^r5}ujp#+CChffy^zmc$@69L(^B0)z#DuMr=cSE8Hni-Nnehkete(_D48O4~us8oO;Nm z$7f$a7Dm;2n?tn>XwYSt@$l~v3*#w(Spv0ieJf-DxaSdy5NilTKFjHI7JB9;SEHwd z@C{6*SlZ(cDra}Udjk})`xLWUMSEG6<){TX6U233ARV-N{P3vx6=gKQ(nYH65R!%p zW7`&w(Ekbq|GOvfIXn5Q`2r#Cl(z_Z=qr;PE{B{N!>&Xk{zv%(gW<@A}Rx#$v z>#evu4!=OO%twLX-yM`ul^=%5LIth`l{fi+S--0nd+Osp&SnVl>)yeiY5dL_^f@vt z`++mSy}rxW{EtxmJafqOCI=ODI6=N zSo`j9lvEs;hTBsiD<0GmCV2RnJTkr;Poo*7g6a2by99?w;*>%iN)*sL%i=>4zjot# z{%e)MdM?%a{4985oj(5AIc>QPw*%v6Cv8w6NfjX(YWkz~e~yOXyVV=;DUask&cr_I z@IHyH)05|$pZV3q+GudDNGi5rpw3h-Bn1Nl z+07ngKCXEz>O!!8!B}cwk|+{On$4%5vbO)Et1~>lU5zxo$A6`ZX`kq6G|yL9#Ocb2 zo%lRR%WLo6s-0p?8l`LJ^V#VD^>lq@#)y`nI=?BrZin!1xaX#%tOS;R{RtvH)cj=% z;k%3}cBKI2);FhrS9fe|1!bfs`}-Iu&Y+%IgVG4)O=3lXrK+3PL7s4GKVmm}e})m0 z^TCdc9$QmC{FG=x5zSTbhjH9TnYn&$OnX^v8rw+HvSR5~MfPX!f* z7+aa27jSFkWpy3=rZGymv9c#c=*#JPCY^&7DPr`PMi^GtbLTLfP_wt!)q$z@MQf&( z)cgq>6jO*plwvg3yRE*_)dx)vo*2_&T3-#}=nKf;J3&nwV)uDL+t0tPsE@!Hr~T$j zS9xBI)YBEi$RRTRbNA>Kj!M;X@sruW=@p1WizXR8Klqqryx9MS`(;%2-QQQrMNFXC znF4Gvs;?o51%j1wg;X<6tg(q|u~#4OGubGmZ;HkPin!uo&Adks!7>J(^A_?m+K^IB z|G1a^)tQUBgP}BWFLI$x(NAFWe+!Z*?WQy|MkLzGzc*8tXLDJ=r+8lMypA{%#68yv z@|e-!`lpAJD;TY5YsX17^g)aMZ*sUZ+p#Uzq4ks3PzZx}vF?ACCpI0w1pZE$wP&1l zlJ7Rd{Jbyl1iL@vhiT_BqMLOrjMz}EWMf8hhce*W6-Qpy{o0MaDt2rP)jJmY;Y`Sw zkO)3@U>}W%=LbEUR0L#te8aBFuX9Zr_{?npq1*5(C&8VMG8OP?t3Gg0p>7hK`)D-+ zN);cjW$&I^wVugsU3Sal77vRk zF~3)M@h2c-%ZD~c7k(b*S)z|}Ncn8h73WV?sHM7UQMnqF>lGI82pk$?lv{IdfhGa; z4Sp2?LHm%*o%*EEEd)Q*d~J8Nbk5(f#v4Peu0MzA_dS2_G8ap@s$=Za&LXvgK6kp z=6xPmUowbe090t&RhhENh!E|b*%Xf`Xn*F(79{%H+wI1r4LzvA_?YBy!b&_IQ%lJY zf=LJs-uGv9&YO>wY!*k1>wjR>m|n3+s9jXVjF=TOP~JD_%v0S4=aMYYvptL2a`78D z(t1L%wd0J%3CHxq&|`_aC5A{;C#XcdskRG5KLfg3a2xzOpT-KGDue$!{kp&29lqIm z2fM#R{8PUhyiTqOSr;17^s&~?%lkj|WM^&q76MqQ+aot2S`7BKW?osKG7FxvlRbu- z$+VK@FE0AW!4q*YC8^vVJ(( zT@qhkW^{sb0xKZ8IgAO zBkID}2XIaLRn^WGL5SJT z<#?LnaDLqOy|akqotrj*K^ENS=zVd8y5O#L>Ds=O?wX4}#gSC*_%sK`qRX1;Q%FF4 zs4vTWx$o$;cV+jbj%%N!`v-Ptsyq7JEM>Xs_d@?oTwKH*-7aip$ZrMPB16Ho(=uis zAIt??D&%9T*7cMWWOeP3t#Q=TQ>kTPm!+{;k=*5#*Mlr%fBv%SU3_=fKqI5xG5EXj zB9-jk`j~4JXzxUQykI_~($L{hH#~)fuwt{iBw@wUH2>64X!A-qBRM+?v9K#AP&qYf zjQ6absduc~t=Tw@2OUky7&yWj5QplUHS^)3)D6WKvqP9k<~IvYrRROgwKx42MeXrn z>N%;TA1tUhAqLDed?z}O+H-MI1n-ksq+34^eYsc1?qo+J~ z#*s9zICe_3Z|U$YsVE0=L}+hzXT7>XS;|j*CPv@=W_?H9UmDqMpaHCSOHD@r$+`*V zGrvnoDFt0gBuod1Zu((m#_*0Oy`@+#?OzJ{1tM-u1-&n-l-aBTjiJvdO9aUk&5TVx zXAOnXiari!+24L)u)i((W+D|nP` zv3IFiKKyU{-g@X4Zaa4z04NSCPOZo?63&q>0nL3XHsUr+?}3P z<2P`U-#M)+Bn}kx{ufo_{Z=R^7Cd^)nS+shH}w2WFxT=39sCx~!bW~&wS+)HFJTon zIDIK4AYy4S%IgI0NTBf9Ir3N4zBT0=$R-kqn(+R4oQA~VD3bWY?AR9>^iPNu$y)36n$%yCNt$d-$Bv0zUt3s zT)jiVI2`)*wGd@m^~P~EmQ43<)!_r7hS5&o&V$-82H~uYWl4J|-Ln8HVh7)iSB{)a z&1pF=*ClJmrxY&8J&;=J_9A$QQf>0|oZR$hgd(yJR*%-v8J>f%)t>bYM=-n3*7h)| zk8;Xmx$`LrRuJ~v6*LVL*AE1gjxE~8bGf%|jwJlCNXNQT0fO+C{@Ge-+R{8rT{wA4 zL8<~JCkW(#SzVnAM+U5TS(Ug(=g(9U`3(+2f;ZGxo65^uL9k<)pu#*CW0sIe;&hH` z(%%hTI%S8W)}8$;s}>tYg@GE&ES*!6ARGp{Vrm_J+6~;AGk@_T zP%Ra(aSw*1g~*ZKqf2Pt%FN zZ~O3ltcA@b(0$&j%cMmZaWQ1loj|zHP)`GjN7c`lIR~k%1_-=14wjuEU=U~~!JY-@ zqHE8|Sjf2Me(%zbij)2%0vZ-Zn1sK{F)a_y$>`K|g!vQ)$4*S`#!a*EV(^(Z&8kAi zl^Q$V>tPqmwp`a7EBLQ|*kiax;dE3)19k-Cb~83nIVXp^GEFk`P3c~IkWG0K$!)n+ z%d5l(zJU$7_;N}o7mdkmD+Em9aOwQYc3^#TR@!U2#W(G=k8M)Rcn!;c zldDWTOT@VoI=(Lam6E zj_|=;BbF}n-ubFRSumU0VO1ffI}#*AJskpbesAriKda9|S*1O`01H7~doDn(Vi-We zl5PZOtFPK_!>0eJ;qaR(Q)Qzn^6SyJ5{kPrHMma2PR%f+?fgs*LQaEVsFVMJ5>tOX=lh)2$9vvVwZ;_>di+RbII3pm(_=ANQ1Jq`L(jMgu z!#_3GKWB@;eZ`~O3%D5t`CudZ%LKRE=zd9WmR1!XSa z|x@R(M`vAR4EeljO1(2B9?#kZE`7vy{L zQ=Fp*Z7~M{6JJE06l=7V$fH79ee+zDTTTBy<-6x`l$yy^OJV5eNcQlf3KCo5NcU+wDoRp@Rt+xWC=g$k$bv)JsT1;<;>qHdm&c$zZzQVwumPW@Yq z_%mTwGNbp6@&YePL!+KhwuN;9b#v#AC(ll!nvY3W#E-rX zl#qm{pQdln^5&0M<-8|&SgG4;(j>Sb)^lJey`!$o99;Ho^Gk_dduOpzL7^(sw4@LJ z-FJU)Q>zXqin37ZWOzR6KD!MTN6g1VuupWQ zKQh=pgimR>M~sGEM2X$y;k+O9C5JVV?$n||ngb$TGW9rkpL((C@?Z!K`#R^!mf)Aw z_T9lvs|(hL&Xe@$g;g>R7RU@R7#v9qi^s~TkJC?jKVll@K?k2|%aByhQBNDh>}xiU zv}U)S4EnZ$Ep4o^%yu{UJ;1(zJ6I#4j#1_lW@#c?{(F74cH5^1wXCnGKG86#tU-G> z>p@3}0j%K6=(bS*YYu2BTd<%MrRc)Gn?I#55CBYW9M@!XF>X9D+tVA`{o5`$h57b} zlu(;-390@oc(pmMcKVdjj$nv-qb^ON!|=R91TF{_EAc6g7}RYPZ@$^he6{*(ca5cC zbRI{XCpNaLHhF9kM}(0XLp!YIMGOX!CQ$~}MJDm$Mm-(~)f^*O!?C~Z1a6v;GD(8f z;6(RoF~)dr`U!JE&DDphP=rDAG(Q|TK?r(`I6U}jf|=>!gP%4bnD%8zr{tI3*`0d; z)$-|IZi(`WyV&A`82R_HZIRFM&J}n?zor1A$qKdGc8L^;xkg-joo76#=)5g2kvTn%k zl-GeVSw^0ODv~J`K0JnTex~3)sJbUnOUDYnHsNDdD_Gw3Jez;s;-rbdBU#4MYH)9A51WC~Ohw@jTI=s-JWN}(Z&#O$_UF$_u`!fR z$2o*m@txB;Ww*!bcMTn8r6BUF&ozTS(?BZUr!7nS?%El9bip<}8L`O=5OE+W_7a1? z5b5yUxGt*tJyUb@l3xX4jYwKx8MHe1ui2qGDm&5ISecEb&ucVju3Va<%?s8*8RFKx z;GW{}U{q1>_{662mAGZk+?h!K>nQ*m*~!jiDy7^>HlA0hL(;jX~lwQjql4}_N9SDjX)BxxGzfL+&k6$ zo|NgvoRwV&i2py!F4QLa$|SzY{92eul##9WTE8eeBLJL=_-5%h0Rfy$zAWL$fTV)`!uqNW-Vr%90iWHMGNPEyeAUbpSM@|-C zwu6$9>xh(yd&6y}_A+NDe$Bh`ssZ&Q?o@~dXe`gB44B`DYm0PCuTi&Kp+x$hbI44k zfG@uG$A>b)?Y?OCzE}8ffIPMqBbVn^$I0BF7991ztm-5zxDH8ji+$Xv$#IKDx;-+!jrD4<=#Giu+D98?6$PYoO z)A#;b!b6c{pj?ICB7#N_*Ng!wMmAXoHrRU^7#ze5UO6}#tu5N#G8puGIrX1|)ON*>;R2U{Cj8|HtZ=AKsx^95x5*{eJxM8NwKf(I2aNYhT>q}(DxcBFB%d0xMF*tq8c%sFe0kD?4Q|i=L9l2Z zbfYZvC5P7gGV^z;$0;ukW_X4GC;#GAhSsl83}T1#Lz8}MKRE;0&U~rB1;HTx@qI=u z;m-vDzGPXli*7f$(-1rQ^weBZT6nEQzJpAycG#p%M2-I=Z+~N86jrb@ZZolMk6Bcq zCe1?LKIE!q!sGiRisRBE$2?%_AQc3HFd7GI)pBaM4ya~K(K+C3K*s~XY6CzhMtcto zz8)e)*T?5RA|surX#p8)DSIIt!>OHoR7Z-ty)ryi*-8%nW~xl#DU+H0YH=`CDP0<< z7~wEs*wvH**=WDMNls0l@SGjWNJUMpXAe{pt+nmzKMpii>dX9cUhC8dFp0Ome(gRG zUh#4F@3mNon;QXWcpPW4+Z!qHkYoPk%{lK(3y;Z~@gVh;kvV)#C3OQ8pR^2}gQ?Rm zzT!bg?nw)(KskVn5)T{@4SYMRu4>Sw2W`5PL4_edbXoJu^JQv_WY%}w5GVV&ylA}I zin2DZb$tpfeWOeL3*+61cB7Y(KDq5bw5YRWUyUd*^4%+CvaeIOXmFPEFa5+N-;~UE zx8lsjk)2Jqk7Br!R~Iz*W$za zQ|J^n(=cWzxP3B{SPY?5y20j`Ln8LS%i8lBj`($*k=s<~i6ZlG;JKms?&!d;R%?H9 z-yEfY8_Y=CZ4W>*C$8kc(e|6;Lnxs=tO5Rg+roKPin? z+m8fQ4i?-mCHeGorASl_oqaDW?6QjNkE3)&3)hqwAK$+C5?L)AKy0OqrWFyM^eA+n zPFbqT>Sc%h)>i7!`mLEK1e|z9FCeT7E9GyVuSLvezqMUu^!9@3P1$C^oCRzBlCb}! zQcGu@Q&Npe=`Or561=Zfl9g%gJYLW!rP-9Fu{^2an0-&)=W`*j%p^D9UMl6^Li3$E zUcUbPJbR~Hkmouzke3q?y_!J8K`GW_!XvR^6BRnop8Os*?CJ|d$eqI8+d7Lu=T zc+Ahw_c-)R@xMy`#(07vNldyw*IHWN%`HculSz7Q4<~NnRR9D%Dg(M zIm@}!>_gXCy)_bPPno~;(~*LAPO9Mtm#i#gHnUisZ(pjPvA;{D(` zPO2CC9+phpKgR)FrY!_cfIIZGEZ?dLK7^^E^T_#Ypj-khUV&FfLRg=GcRGSu4SPU0 z5QBh%K4hYOR2gP~oSwqXc-Zyp)!lUo3;}1r%{fqzT>>|B!C?n1i$Nj`4sqZv8;~_Y s95h}80#AUKa6(v>zyu0r4Un>b^*@sr>ZBT`9tXL?)78&qol`;+096x-Bme*a literal 0 HcmV?d00001 diff --git a/book/images/dll-add-last.png b/book/images/dll-add-last.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9b4db1adb9fc7a0494d935304583e999f46562 GIT binary patch literal 58568 zcmeFZXH-+s*FK1%pwd)CkgB2}9i(>^5S1o|jt~Utz4szg1O!xs&=G{tiS!nVLO=*b z2`!Y+q=e8yXn{cHqQCc@ch;J<=EMI#^JzY??#(Udo_)?P&)(-b#5~tlr@O>@iGqTH z?&%ZN7ZeodTq!6hn=ViRS8h=UEC7d#ZcmIoDJWGF~E)m zew?#?sP&M7qB4<&^y)kX#UHb$st@)2&a55Nd@!^1=Owj%I)pYm^`r>0A$i8HQl_k( zlYL`h6@DxAZDp1Pl;=%^sOBp2!POVu1H}3!6SZ(s$k+Z7mB12bPmV zFw0q}jHf^cDfEV>&H;x9))xWsC@ADiUw>(9lee=6IL6HC6e< zcRC1U;yJep42ixjMw<)gt9LD8Q7t(=aL7oJXJe}*$)|V*^O#{m=ZB{?6+uZishSyQzquszX>JyTkO#K@$DY&t6tugZ!_i<;l z$%*H5KiGK63YS&Q`NXdRY>?v=(qRdXnHv}E%`?yaK}i!ulcGt*U)ZJKG$&PDWdbl!^J{5?&Y z%1@r{c%z@SC@|{VhU%n08aoH2PFx&y{LGGo`5tDUJm5W>AF!-`p{7Ldhq2Vw-QV&D zK0*Ez6rxFGWz~x8jPWm<@%sKp;T-b5i%c@LbMgOa9dRj0hHbQ*&7Bord<`sTZ#Z)t zKcoo;j78K(03tG2UtqA zCyr0qy|3GSJ_FHszgW)EMngeS{ZQgg!YogxlPs>TsbVEQHbou{;#W^K zcZnzURo;7o7VH>7LKd%-DW{0!yKQad0>&l&aHoL}j<1DrT%D5mQ75IzFh{55d*UxZ zm7soO$ty-Ar54Z>u1(HYL9T|&=;D3`cGlL{*C;4Vp30Wl`?y(}vO!a}qM!oOLV*^9 zrH58_zH3vm8;|X|W9|t+?83Q5-sXSV?EZ(xLG1CqBSWyG1#73#C@CS~Y2zRT z#jhgR)PDSx!Nm0~mZ58w%_MI&aI)+2^~uHGN6_l8BEMpsmllpekz@a6xg-A_-}z1W zCeHo{q_a#GG3YbXVzD)?TZJ>Z{wCrR3@aawg(D()S)ne(zdO&9rWLwhCCEaQI-Q9aKo2!B)5eATk zTS>QCBj#zoG?U{ju%GS{Wu^kakGNxST~)CjD5HVb)3(4IKSR_J{p!=49XodZD<(uC z0LS*fBN%+EJ11m=w3-|mb)H0R90OwO=&Y`-0fQ@|g9En;I~&zY0iG(p5>RJ}Lg}P0 z=hv@SxS{Kx+A^XuK0iYHK@A@Y>p%(-pyK z01>!r08r?hZ0VYa%8;~(w`j;9q&2|zECt15Ti_iXKb1v9!z6I)n$PBBPMyFy{MK1oIh~o(&-h@HL1Mj@3=D* z?M|;u*-QZQ>BRxk#IHDP1pto06bLAPn=>dk%4V&s`oBIo`OU}Kp)<-G2Y5G8g~^Fu ztP#?Bm_rDR&9|z}sb{_>#LNn;`ahbv3txz08>&LYb$g)??)#7ROWy^eh!@~-50`dq zuGWOTjixXBI|{Q~bFV}gt$bXAk#zQ0mbM^Z_5hXl{=sH4Fxp*Lu<0_LzPC21>}Enb z>$ct%-z$BF!s4uxql)AWDK%t_d!uq&$nh7HuzAY_1aMWF9{`2o`QHHnPSxoDd*Jc^ zfAw?({#T%#k!g4=y4n@Ix`Dlczu#Pq{Jfhf^U-H*D(!K#10r@9jZOnpQL3t(uH0VR zmFHok!Z&-*01E)M~-iSJV1Gu+n*77P?Wg6!i9EZIG*vcKi z=p-+=+Ff)FSaKM#!@^=)9?b|qks^0>Ti(mu(aJn z&z+B(yh8w^3Udb#fAxgu(Ii-JO;3vgwS zt*Df%s2eBSBCXI3e@AdY@o7)KJOp~u6d_%cxhn!Ttk0duFh7a|TDQymXR<=Yb+1ug zkw9o-2ObOn9?UmyfS=dBhLP3cCtM&@dZ=yBVXgzR!ET;l4MiC(m~{{n3W zF#LZL50xomJHwDOxIu(N!9(!Ouk4O z(v0QyIL5)Hw!KcU#a@-LtMlmMgKvKi7hF^I0?lPon{+at)j$slx?zf8-u{l&!qnk^ z59sXQ}bD?8}Nd|z1MgPdjXHP;n_6l3j z-tz&G4VXno1M9KopkIr=o64zDxmUPa zs`;eL5bpKUIl(K$S7(nUgXn&Zj97trCWP z7aKKjtv2|nnWJeg22vYuGikZ?aO;b;S(aiBzKKcdc%^4&MJGgVwF+s|>-hYh5;H#S zURyUrI6X(XRgzf{7TDrvmW^%+{pDzM6m$&|vmZ(nzg(wq;jIoI7vf#f9{#x*_1cZPVQNkUAv6Tjp0}_F_&wpd*ST}x>9Bx9V%nm z#ZcWwjbaO(OD6hfaX1sHd6hozw%(Ci1m8bG)hajp{PbryaXV_aN)_j|-Y1p}J6Iy{ zzZkd%6Jak~?;Oq6FAkF3EDJsYfe>Pr$u%zo`!DPUYIfFlPzjjk6bUW&ugenGt z*^jDd#OEaMmF_pbTNciKJ2-Rf7I4HSMSo}+&*YKG3BH$wekO0QjW-w0t_QcxNm2@6 z=^)@tp`)HPLuX6AIGizAk1+NG7kFe==(L#1$GEc7m%uk(@u=4Yf4pZb0F=vqhNqGn6K z&3+j2YTw-s;c7orcl6Sz;G6dhs_z(d^84^qtqP_-Q+w$&27l^x-*dfevitsJv6EUz zTOdU&Gy6KbJS$&N(8JD!z-3c&@vQ>3K@_>+_@pTjJBovGdQ32HPJb>uG0pL_nT_)q z*)G7gVGg562Y@}=hOi;X(I8jr7lQH_=GwN|VF$#Rg-mTu+><^o()R`8%r>NxQhDVl zSujMX@njh+_Gi0N_ZrOk-I#RiYo*ZrdV)yGe4KPbx2NHe+DkYmq6(8L)aKLSEFq4S zeD!*C5!KxUZz@CDOaAw1@uz3I@EGYp_!aJv_e?5^yR9<4w-N89ZQ;d8f&JF2^{q_( zjDu^OGA(`!uECaWRUF{UuNpozl!Ec%$6yI$HN%Pks1!X#CUtqf2znSH!)d>1#8m8- zeIkt>IR?uGMjQK-wozFzStsCI6Gb8{5o|dh)vM^T56%jQKKv}wR_{f;%%+A9=#FY1 zYbAUoF=xwgLPXlAc`WPTJn#FOf>w6=GXoPwduNwDLvrdALs>P>e8gm3Um5bcn6Y_}G=G zuAmbvP?|)9-K#CAWNgww!{~z-%8$$ojY3v9m!wRNC0P<#9NF1~@tFQL(Y^g(CCm4Y zE!eXQNbc47w^>+r_WUFed*77X%n%tr0}rjGq}( zW`Z#cKu^#17TVQZzia)~j7N3#M%%egYEdPHkDAvD(%j+3J+>p)dN%FaQm@U+#(1>N zLlSLb#qz*Su7rHSKqx<^1CM+L7v?src4z|S$ONVp%NBi!zt8pMkpeHC)al7&o%B&AT1ZDhyy$H( z_Xcqzkt+M>$(K0mZrDZq;`iqW7}syw@;Zg;vby2AgQ`SaH;j_#H@#+9k&J}gvEu=( zr%D)h9p_Op&;$qKKq;arv-m}Ewsh_j;W#FQACuLqg^tTTOK#CsPh=O6ce^qkZ<|S| zvI!l(pS;)m$D}`g=q8#5)zGNfsSx9n-i z`_C!J+N2|6BO4@1R+jxx0crM4RL@Vol_EY0rn!xMKP>m`(buGapm&dt!r$TFhwdVd zhGwSl?GKVF4PKA}#738kpTs8aXFgfb?PC>9Nq)XB1DRfheOJ9!Eu`wdL^%^0q&XJz z*sk)-wYI#@Bl%}ZRy^T;ZOU86&fYK(>C?CRP{BPr8-nBg3}c867jAph#!Nfe=)X<} z^wLIOf$&sq>oof*a!6(QZ{eKItnG8xvYM@&oZ-eWKeQTv&01BJTO%xqu5BR;A8=~E zdkxxRt)4X^F}6ONY%-i!Uoj4F>APjV)_Zvm4S@O_xWX)Jo#?6O!ft33idG{M7$Nc9 z6C-Wg~9Qj#=cn!1qc>{=qBJlZ53w z1xgi?2P2yjqRT*G8FB6N;$u5^5}u=(T5H7k`eKf52wSygC)J~%l*fnc{d;4t>#Brv zltvfJ2b(fWzWw)Uv1s|67C1o0_Bms@H}jpk_8MVInXoM+jL`c+`q&bUpBe-E1WsEIMvPh9o>x2sB9Dfz;=x;zM(&hRMfH+w zoXGxVs{!PEWBmPoyU*8={xk9wu*UfFlx${;gD+;@Qx!&i4juT9Jm!Er{r}|o&uOtJ zfX8@NPGMFs0HqR$+m$~WfC*d_SW9g!dve||yVj%+Yif_Fh|Bh)do0`#pMZuBPFl_7Z{-o&2(xHF7FLvJ%>3MLUB z$47YEr{4fwPgs_;`yv<3lM*J#{LvJ>(+Ozax?YB zWk?*7vd`wU3~$k!DeK9@@Y;t%UI~g+4`XDKYiVh@Xi*2`Ot%KuWz!Rs4%SHrKOD`o zmV`}=_G{8C>lDo`d{WE2P4^i%wbZ!|wBPc*gU#kWXmI_hJch)Ds;+P4 z&GMV?IVb*oE*o_*4DeUxdeb{LbN$6$GV&6)ZE|CANavD4A6bc6@QLt#gMZ5nbm}EnL`JhCC{9nRh$f!PXR&R}Rp* zwqIf(vJ$T8Tg&EL(j}j{> z7&7k5-SCVHVDl!65Qok|!IvKxnqwC~L*!A$r|taumfCb1D_l5r>(fSK-1Yc?X<%fR zo*wl~2U2O{g3ub&Lxjp$v8uvE_8th60L~xntYa{t^s$=;w1`wz`XHqkDA7We6hOh? z+nMLSrmZvyjV@OTi;Q+;L0Tl@)yujU4jCI=Sa7@LNc;2E?q;0*k#RN%F|XBKBm`O> z-8Hknw7V?KQPdRE;bdY)U3c(5^d|jRULSr9CE6b%qxbU}T0^{>PO9!+j6wl2NR9845urNW zoTPy-$h!EdT(BP=MgBk^JeP25%xot``p*m{_w>eh5scWMCdz$98n-2|x0>Ak{)xsk z&J=>;x0!5$i#R>~IRB>`3>aNgOEvfU%8kJDL;maQSnp-QtmOV!-YOS1WWX+*A>=06 zbo8fG%eqJEOP~lZx0y(`&@80m)#;-?o6r1mKHaA^>CB;vdQiE&6(q`UJm=eym7?`yWacn3ZmCLJzXOf&}Lj|)AdbZ+)xW^N{kKE<}oM{213DOy(i=N8^Pd%%*cuK7252%Gr z(v+I43@1Vzc5DU&CMJidMa-GdIw8~O7w#ZCuj%W`u}WmT&ie)}cHD?ZPMXQWG_>A~ zK1m%=?A;&9mG8yP4!K-=KOKO%KIe5)9esphAmpoT-3&H8l4Id@{(EM zc87CDGs@Q0JX82(nY96vDlwQHLry0EdOXj5i~g-dl?%?)aNjvdB)D74-ndRF0oN(F zXIIC4`AnZ1+uRX(9!4FWF@fVG{V?1Hhgd0cB8%uO=6&L3p+VD^>zUims&Apzy5$*- zA@$klZ^9yHAqt&o^3vsNYfs3VGzR%(Tw^ddm5d11PG=L`sL&P!b`zHd8@Q*^u^QJe zzB!;)p72Erh8YLowEPj8{-zBVI&ng!ADsgx7eyO`tWbKDmKA1K)Qf|hBGm6OMhScu z1S<)fHh)S0KnjZ&acytAql7?h<}fN%@%!0z;s%-YKhVsRJK3IV!J3f? zJv%ze0b&oo22{}zEje0NgvOT7XjBR(czZ_h(^L>6o5tcfA}`oRHE(RMk;R<&*~|E5 zxUfDd?Dca>Qb4eGhE^a4siZwYrlzK=D=RScp_nQ2T_$gsqW5}SOxU(6C8PliX>}o!^8Lclk?bhkiS#jRAko=GfdLW4!C)FLz@fw0&Nt3$H z%ajw*Bc^Jmb%pV9N5)>oYnB~cT_qoHJwpV9*5DqagV)XtA7zV5I9LMd2(k&Tb7i)3 ztB`1>_G_GZM)f9W)HiLQ#^QUpLWA))i;(MwUVld9f%VnoF<5Q&llWxkfFfXqv>5x5 zmUp@G#7xGL4Qah#iRKs79CUU&HSff~`*f5Q%{p^4OHKgQHaKrC`deiViCzc|t@}+D zfGO}k)JH!}Wx;KyIr9La&L%xQ!*FmX=L0#WxXtlsymPCBNLaSb)zX{xDsD=9RENz? zkC2v7b8=%AAU-+3X;GS<-2P%>Np;nx?p_=DKssAPqj{-78t(KoJb()Nc3SZye!J4V z-uwZGHaRxyEGv-X5c(s${dHe4KGckmvenMfF4Xp>FNgPZWK;zG{5)$D)H^wQrRsg5 z>^DF*VY)c`*zBQe7^I`k#WZ?e-y=y2h3mc(m(#I%!zXNQE!u7!?_#$PNsy7DfMEC- zM@2XkKDAw@PuVY0jY|%c6jd5s6ra&FhNxcv^(ioQe4Q7q=lPr_4}(1_+`J#2fnO1% zOO^}TZ?RY4u{u?FiRfOo^gOs_B9oV4dH{eESY4-xGbqe9Gf) zs~cj|zU9msZNtLwy%EZ8=C;MdH<(L=CPtQZh>#P#`mgFpMzI?$FZ~ zJgc44ijXG^L`j8bRK^v<lXYcU&5N9%u@u|n*xl`_H6QbXxHj!VpUtO(n8WNKf5dux{Utjf+kyd^ zK(6Iay+2}<-!-+QP`&}Zh39Qa14px5`O6{uiQC?Gq6)>ywuKI(vE+p z20$Rtd#--nkA0l{d_NoftQ0fX6p%?vc`bj*ook+kcSB_=WKHIp*2ui!ACF?CU>ARX z^~2`!Y5U36O6g{}ThCO=_;`-9Jv&67qZV%eQv@5b8`a{*7Q?6KcM%=IyoOTlrj zY{ooyf-}!Izw*y2$xM|}aN({1Y2GzAh=LSPbj6^KrP~jSGi7AvsZQQUO^@acdDA#88bPYch)Ub;m!@dUgwZWgx;FbQ? zo3TTrgDRHPR-ek(p?5<4JMwli>bbP#8FFsyR#jG#(HYFVC5zJ4bjK^v-x@&j;;hVU zW6US(;6J$SmE`A|IJ1g|m|gpBq;PrQG|Toi-0VSt>6Bc4dCR_9S$9pPno39mUK5A)dGc8{W||8nw|lWxDl?b)()mUUkcR^HUDd*g z7Ciip^UO0w3^{$R407PTp`dhh<>&5h>v_od1lTIhxU9FMoTax3?%iMK?e7{YDh}vi zCdRa>Y&D~+Q%*kWxe&Q!hI3qs6L}bPdveFR4w>r@P)K6yPMD6oV&chp;ImfDY{&a2 zT|+yI-P-w+fWmk0WepT&$KTMjR3R^UXZ7OL-49fCOs2#nZ`eGy$e0DfySWAAFtXo9$!fzZ@98aA@bin%b=W| z#{TMIB$Am6daTWqjAkyE$ky^Mh0;RKu5iQ8*!`M0p8Sf1)dh)gD4~;hGFqkjynZv@ z$|+vu)uB)CxpT-b*swI>kBFa*>TxS7;qqB)isFAr z9&H&(g*t`P-A$;H^JZt+Ek^Hm3qIiZJ+?GWK1|-}W|$FaDE?A;PCD{}o6=VKCa=X_ zOsiCLBInbirbHSSemfms9l7N5(%k*`m^zB*Nh}+6(ll-qHUi1g6nBAE>Vy*WLPM0)sgY$wiWh{#iK&yMZq(9r^9zBAAxY_AI|2h}#2It+$f46P z8^Z^GbECpI*f}9nCe3iYCU3!WIX`%M1jZ82pKgUF1l^~xY6{f0`QA4>CU7Fpn?>hx z2{5g?swGOB7MLh zD5@vwnD+{m1M_9S(~bCyZ(U5S)Xr3zu9=N0)~$FCh^-Y8BijLHu#mcP`f!scq;L?9 z?b@k;fIp_9uh-Y}TG*_nN{f`6G>8geS2Sy)8ab^AK1D=~kZO$Jb}4>J|gBd!aMgtlosdGA%YkvkxY}4L6Pg0)Pdvf|4T=qmHD+ zIfrQ=QBG}~s1lu>s;Cfb$ELbf&#SF-6qh=iJE#!`cc4sW9L1~Jw)=z?K%<5;F<$U} z&DBil1L;NoD?>YbdvrOyNtvxE`K8148>v|UXY=@WCvjZF91<-Onj9%3Mi}-(cyqVg zt0@D#lEMs;#(Vl^PHmxfgcJ#L>DqQHN*>`ynM?%c{0e{Gs>_9ixw(1(y(vStS!Tt~30jzvn6P3`bFepPT3CvBZSL*hdkbwp%07eE z9*QV@1q3#DG*{zrw_kH_8RoCwX;DUOr35ZYFuG*4JbB+6}#Y z{=Ct224_56+A)(7u6KB7cs8{hke>Tq)Qf3?K-*|li<3>>2+i{Hn?AcU15MT%1Z26n zsPdU=L$S}Rc}`iF5va#k{)y#&4FP6VYrQP->UN$9jOw=}>HGnaLO{Ym;@(-7w-?-% z2+;b){`YL_(JG#5VFVF!;#i@4_KAIyqP&x`+r1om1)Jp9SNdX_z0di+l)(b5Udegn z;X`C3x-)}}hSL;2G~P7L8HCwi=BR$=y_9QeYcernpTcJ`3Q()wtI+1gc7UDz?;KBC zDL;$W*|`ISe4t{1twdMf%SkTb<>(zd^bhW?xss<9gPQoiBLNRcX z2Ss((D-Z?U0gTN&`2<_uR>DR9fW~wbon|2NGM`KP{4kB(Qoh8!*)ysA!06EN?{|m^ zFg&- zrsxG)(6YS1^Z*xUE~6P=P1HQ@O_!yFfPyJ!ZGlp(MQ>KWRg?jGhrTIumg;X&RPPz* z_)fGG>vhTt0OdH${`u?s!J&cC*=Y=r7ygu&fd(nsC01yhminG9is{)dq9RJ+XD<9L zgg#S~)N=o6%D7M881{?mi|XGRYw-n}$E77=FE2qc5H8%)44>?0dWpq9&QOH$jTm}^ zNU)HwuiI2mgP8HePeQyMdLc-Df)=d$D5bc|lj58XGENt=CX z;y|S*U}&Jjc4$DwcF4Bgi{`n&<9}bPK6atfE^1NzJupsxN3-hS{knoz6KoYaGvmDe zbdXabsN~sS5kAX%LM0~k;>Xk0v}wQ1v5h^&n9oTZ0ira;B{Mkf~g&vRBcKATeAbK( zSN7X7Hm0jRXG!ESfr@8s9_Xf1e$T|@BxsIq553PB6-w?7LOq#ex%oy0jCu5Fg|^H>&L7Y zEIv?3fboq@$20W6U_EBArr*!h4kczS6WXJ(0G}4h84VAnA(D4VJvz%w>CBS;q zq!Hh}c;a@>(f2reRJD3AXW_?F(t7HPMUHk$zu}u!MZIUbM3g|f4?QP+vvr#3b6Cf` zU61xK3Oo45OwNCEK!>%q0$+xzo)b}4{FS7%JAG^qm)cawZY3>H{>ZSu{rBT~V)_SR zvMRz~jKws=52n<}>5q?d7}lOfH|bn-g92_2_^QWOeayIQ#8T`nox#@etk&)E+~J}Q zML?HY>%oM1`48S}9F^#x{1`T@J=K)^~CjJu087#j0?}7FKFks9rQQ8kt zoy%CHa)_8>6~WITO8I2MGo4unfF1x9aM8gwlQsX^1n|L_m|NQJEQ7Wr z>3~)-@C$G7MzjdjMg~?Yoz-TcZPMuG(z+HJu%niP;v4$A6!QJsvD33-mmT<dUX`usv9(!mOU(M>o%C4NV0o+h^_ReB$JiR-9^o6W_Q|`-8QBg zi(6V0`*W0)g-mKhg7Da`S!b~k~!7>gozh{fvzE0^S^u#;ScE$ zk!2v2f5w07jppVDn&CEfQDKDby>LiELIR0=1#|6?-LRRYTRBKhGgZL6i$($Qtf!zETDP~(5pORvoz!*L_-$0#D72zLL-D~JBsEH zdXjjLIv|Y2FR8|U&tx`KS9{*f=Swj=C$or3`}>~7v-nX0Px1iBpE92BY{~(x+M?F) z8J^D_84a3BP7c};qJ`ALjIVTFiu}lsF$Z|Wrh;t^LOhUvCZqyXV~>^O!+%{{oYSmj zx{oN+r5q8Lm-6nI$3gQ30#}nfq@AOa<0Dnl{?45fxu1;Lx+qpshaz|)%jn=%jJFj&$5Cd?n4h< z{<_95*w{Iy(Ave1HU5L13r!m{%0#~qmL4vbAT5)?fkyr_7H7NUXnWm?v9{yDdf_iU zga}dBjL>F=uP#OdG4FFo@VdbEBp-eILA-UWD=N(J?WtIHO_p-=r71a(3e)3H!zC=w>M1N7Bq*z#+M3f z^6F&w2?U14l(PNG#BvaWpr8M?o}PEcL5$8lLU6e+3xcUToFAqo<9}#uKe!j3TeNY8 zM_8%8^g3+<^&Y#tDcWXy_#drWOP}8DwnYrZa=(B<0YOd~pv@kR|VCB2VG zp|eJ}u>bXebNqy=c4&FI5ScAH$J9gHq~1c;p|gLvTw9>|`X8jdtLq?yE%(DL6|49t zwk>#|TZ9aA?(Ipz?C)lT^iR|C2722lBHetyr+bT%mTsSUo?M_OqrSI?j9iqV}G@}m0|eu z0{~X(nu5d>Wqz?+U3Af#(R(Y&1^904Z7;q-7N(9bc~_Um3|n9Sv?dgPA2gNx#aqZe zRdhCN>E7A2kF3|3zsCMJ<6&J!Or`=i zy!gW@7hY7&!8Rv03|Q3#VarQ}pT$-Gvf2Hi_BQ<*jf;iH=eKD=etIRvE;x=xE_#s0 zKS%08m`4@rEYE4J-E0-3ahu=qNSeRk8nz@5p7w^X1ElptoHxzB4plZ^q z?s}w`{xol%XS3m>^pkiMu$@)(6&{@{1D)RxNxa(mTv?5GoLx=j-A$!>tm^eC zcKHy6V{%(4zw=DU9vq;v4ehiYPc=y>Z$2DRsu;9^UzdQ$0i1se6Q;HmHlFjKLJ+l>2Ke#u7i0KC%tD$jNBun8c46uebWxSRTnQqlPtIb~4Xt5WWC6e&h+Y7s;E-Jm(Ap2{NXAY+p2C;g0O4YXWGA;a($Vy4F+LelfFDT3jm-Fzs* zK1xDc83we`PFuMg`L_6|vsl$J_EK4K#gE=nm(@(p+<{C9zg{K*I8#b@Z{lt4~&g`K=0HV!A$hSD4F-IDNzb?N<)Dzd17$Jg;g3@L47fVl_~Q zNb~z{Y2ChS+8I^Ivi^!TJd+5AM+SG+%yg1s6qnN=7t(FNk*U)yRYo;ZQ$Zci+DXtK zq(nRJb&3aWce9VM2n?E;>`TTipI|mm{AS6D=tbrIk!Wfm0cdc-Sot@sx(-x5bQ`4$ zF_QwBzkP&nd^e~{RBZM7O(NmT8!h~&aR}UY-^TG<^Nxw-uML`TGBW4Qw?({d_3{b& z;U*!lm9P-xuQs9;l+vqGIPbZ?hm)ocrezG$+FngRiGfD#@oaF|1$}kL|F!XUT4s4d z26?@hi=q6lcr7(jTiR2Pr7GdJsQ3MZ<+cPof#+2>@%~2aO=!%0@K=DX4F@5SvIuL3X)-pjkio z<3;jV^**9fq*;{F{B2c0PMqJyyzBvKnxU}1?bX7Uc7gCuGK%5Z1A>|{TX!)?1Obp4 zZgW!s?M6hPt8)4t)v93U^^w%t%5DcnO}?nasHk8L)H5A~F2k7eI% zjuWYuK0}#fueHf^eK!IEu1@Jio+_G6%mo8W>gvm{p6WSuzFJSGS>5>7w!bu1Ko~T; zzji+^>-TtC%kE)3F~Q+o)K%R)GS_sxPHP$a>0>7Ob4iV1#wD_G%A)71|EzLms0t*l-Nv$9g z4QU&LB9ieFQGUVPBqC{gW`Hv1_T{(*{L~25YXnYL5EqZ$cBCBnEwP>cSzTopIuV6v zArfr|R{TNdfeIEyyC9Q%Zsl8+5vs}#bDfq4g@PqCmW5(IQpjA5nO{k*6te&$k0H~1 z?Sl(Iltnx}C;h4+m*22$-u964%OW~~@P86z&q?1(P-p5gVj5xf*Vj%mo93cg=deMS zpRm5yr&W&K4?ZWUcJt~fQTFEj@JbIiP%8;Dw5S4fKS2G#e(fgd9tx#!xV3&QKnyw)pmg=X{us5KQK-0Y{1F|~4i`>H+rIJo6e-Y2L}z=Gwteq$kW z5xwqwf(QBQWO;b2yHAf-mh<}fAV;p0LsyEg>fc|uG6({{bGr|7DdDJ+$~~$fTZD4u zw~q0pa5Y6Y#v6pvb#Vt!sC{ACoL2aWp4lh9!-(%f@d?j)e`L&WNBSwNZx*e%gI>DS zltA%zUBFHgQPd30@_RIt|1a#Q9xqu8R>^B(qdgx>^;2xvss7~Dn#k+4j zQ96-$`p9&rk3F>VOn#ea3-!hRf2J*X{T9I4e5Kl$h_uT~d~%Lj&4Mvl=?9ZY>1e{b zSM2hg>>R%eOBs+}c*H3s*3PE*@f2a2i%wx*_Xa@5E(y9l{HiFApD+E|7<~qRDaTpE z2siiRqKTfPm6vdSS0l6YZ||qco#{^#x4k;@Wf=%%eU@r!4=X8^&D9dq$DhW>zMZ4D z)(yU#tF!YaCiZilF5XW6qB|R6E7_oWDcqCLrt2(mJ#l~kViP{Sbo*I>U+et0?Wvf} zoo=sN%$x|Y1Z^;FhdGYItxtM_dC{m5cbbWC#T}}o*{ZF#w zZi(w*;2evTyUy?C@%%MVM74_}E39xzxYwMdICDLtLcsi`bJr4`7NIN+k-Z-TTR;#Z0 zVfG>eHN=$^5@Ps{?O^$gK?4x@^>a<>{^x54U-sCL! zk!M%KhDu}}w2x48KSGcJn)BsifcDyj_`jpQiks-^sogY=_=3-526aH#u65)8#yKE1 ztW`17rkM#vStGtRq#g@}Hy;Sb@5rXFIKGIG0z@Qw%|&VJhyQbwt>E2dS_ffv`OJ>~ zEeV5Q5SPeL$kB=pmChNZso|O5T)aObE_|5Zv^(|?Hm|j`2*Bq}6pl>!ttX=g4oFVj zq~f6E7D1mOxp%ei*c9Y{8}hi{Q36m@?!Vc$>P7gI7r)^()u>HgF=%EgMy~ zKLEBgo-=r}f2^RHlk|{t^fQ~1@2G<9m8Qs*^ZM5ZooRDosk$mN_gfYY(~*CqF(SXhtQ59uBy-T#uZWWI+=26bf_A8FD{Xh)-;H zH?Q%xQbj%n$30g4P_-OMNyJyS@+8%gV&FW5Iyp~)yxIY;6+||TW z?syZHopD{*=!2ZR{LoaR)n?OG7~=0PrzKr~0C`tyl1!A1c{~f1__vAMrrE17tx3YQ?WAbLl4ED?IusBI+vV1-4YdcL-^2I6~-23;x8&*IN&wc z5?rmt*H%mgtp5P`oQ8=>Qmj<3Wj?)?5V#93rue&Qv+ogQt|s`gc-aN_b26yExSXQe z_?-Bz31%m|yy^G8&EKjVg~fGNz9x=PlMC1h#T>R8)0+{w{+2S6 zyYP_p#(vg>IRyxbo3Ut|!>u z9cePIq-Hr1&HVC=o-u&RLzzb+q}6r$#9o#>nz%}#`TU$Xb)rI61+kHVAuvs{6s7^t z*gtXh`&e|uj~zRw3+m1>%J&BDyY`UVyzuE>#Pkf*B4jGFNe)tAaAoAuG%tO=HJU(0 z@ym&FL;^iC(VKp|E(T;RgVOP%Y>#jX*h!*HKF1v?ePs$xD4%(f(~R5o4`aO5%LYD< z8Fm7?zTrg7;qWq{9rGh$<%cFXeDlGOSQ0tLdGdgB%4?5W z#c^yZlPhtH$7OSVWURp8x920*%M=z4w2ad`998Fd8QcSQThg=vv?1!kps+pXH3=nd_%OP#6E0$NUMCqMySNdWx_`y{#l2xbJ+Up`7KC!F47z2snW7 z1(kP|KgvY0av_1_GcRS39cX>>Qm4jNTOq1Dr&Tc&{(Ex8Vvjs8YZ8iX#wl(5Fv>3N z&S_F~o^cPH?$$R@ke0T2IHjkYaDjS3@%mUCE;HwR_!wy_hxTY{G;m6T+3f!OG27r# z$rb#G-%{fdwM{d>3pa+lHs|}}oYH{J4nNvyMQTQhkzr}4k`sS57@MN&X? z<}7lsSKVm_#-J^SlXRj!#E4EfQtikXf7M4>(07Oo_3Rsq%fdIW_Jw$huKy$t6oXXR zRjOliEh`s7W`Ck66}{&VY9)h1=UbUn8kc+pHM*;}=4LBgZN864qn6ak3N8DFp`t5| zK?*ct^qd&?z1G*rpdEZ6wUD?=J-f%+fD1YF7$-!uj+^v{lBMQDjt}E!QlE!0%5T() z-(eaAHeR3;4kvLtS6OkMBf(XhvL(SUYwK(vX+K><;*}C6l%Ba~`LXM~o_nlNuZz~N zyGs*rLd4#BqWo-M_9aJH&GJ`a;bld zT0`Qkqbk>BQdRQ!yR9#SR83XReD6CTz3kP31hy5X!XL*Qm%p3Sg;6ga$M~9GeY-`3nD zmt9;wu3eK&qZ(U1NwKXL$54uTWC)pCABns*P(2@o*&m%m-3bMu+`P=3TcMrzdLzvz zGe;H**^X(BrGT8tZa|O=8@7($z(WvCR~SPDvwB_EL7L zK2&?tHZvEKo9F0xk)I*sm2U914V4@Gh;jPaOo9(lg4fb?BI=4L_8^;%M->}l+^YxZ zIeOY|T3OupYy`YkOVu?iU?1_=d1$Ui4<0#y@%f0?L zmtWVoT{&m|dSXLb$%3KBtUQOPEmk~fzJ^}HPFZKiKKTTHw>*sBYT63z#Bs^Nh7O=O4K}mb%Al)k;c*tdF0UkthY$EuJO0N!{`_E z@G3B+@|~1>QDA882`qT?Ods~3%&S)Nauiv_BdhAG6g5{yZahCER_7-i7OAte6Zy4r zJdH%71{GY-mp};owH^26G9;g57;KaA&w$!l2JIsWl@pbsnw2vWZ%I>^O`55DUk!5< zP&alw)z||MErapNSg~b=UEpa9l6zIX!WWC)g<(V1uI6ULMB1D~{7cIhXP9o?MrvO&r&rNeCO%1Rc2xYM)qeQ~N+!UQRb^0ciGEHn4^UrF1qaP5zdc9LaozElgq zh1Nn^vd!jBSBcUd@USsawDTSK!1#E@Jki)2vqdJknzy-US6Cz~+@a;OKV(`gO`6V#!{^mnz8`Hy-y>@bS__+@M-)7!ZJKE|PG2 zc(0}Ep2o&KwY2svN_5i?PdD!$62vPa=p&XMoy{1R+kz*UREW;92stjxd!VRgWkK!< z;oRA_W)#HtG%6e~J@MA12cn>s;pEJgv>RzYEY2wL)kHy5Kffx9E5(_IpC&wBzs77% z$L5qGJyp zd3zg9DA#Ewa*a-Ekwh8Ul2S<@Ds5SJI@0uTvy&9bBG(_tg#fdLg)G!-@le`S45zZb zbE4LMcfYyU3>s6vOXi!RR7Bk@S5To2j#et`9;FIeea6Vt`&iIcnxl z&uS2lrNn`ib-`0O8|F zI?F>>=-OKoS$8UPb6{-v7rCFg%I2}Y{fRBar0O(`V9D1Adh+q&fv*L1{BxtFoNZFR2yYA@&q)j{8KJ$2o~@RHTB`zmBY zd(=>>%;J&Qr=}?^QjQ2imu!d9)#jp3(@tkfBkw{A`=k1a>3NU9{l(+yw?(#pHcdE_ zl2M($UoI4+hmXJro{Dx%ou%9 zOro|6?#w}-&Z9Of*avL#t5VFOJDNS5g&I4SsOqgh7 zk&a<2R){dX?9SojDZhlD`b}KFFE~_S_hC<^W8?!EI82)Ri?JKO*ZA(53GKts`z*;N z0^*7Ua&UW9ougC(%BuQSZM%b(G>kJ1mUNS2voCt|3^@>&vei$L-e(pO7|xPdEXH?k z1L*+S6Q#R|4?tw7yYDvVAH-z$k`YeIFsO7xf21#J|7;ig|T1%(hfq&#+%Xeq9H<(S@a`IiXtXvW< zvv0J(8~5Wcq!d-A`z#b6{8ot|xzgf9-JjjFKmX$K)3+rI20qh@)ejs*w!4!9Ed{_J z2D$%gY7^1^5CLy%(w6pT43?1GuWgG=jX~`j_Xao0wO^{rlj)Nd$xfWMnVyOhnTnIy z*JtyRNP#7e!oELWEIEU9A42Q<%o8{5frAfskRVCaVjbw||s7X+gq61iq3fLHng z*N6q1nHpf#iVWS4wsyL&N9PQI^BZXDMt;w2!s%qRC&qYapA>HAE#!D?CdS6vk|yBv z*17!$4Xv^73DH(Zhwi`X@-HPU*jI%siv}too%g+nD_Y~hAZiF+gMI(7~NZxBHMlz_r z<@w=fl(9%plu?O|Q3ZO{I_)*B*I-2G8VZCv1+9zPFENWnexVmUE9ZOILCKiQJmAP_ zZv&dtx}|VmZoAWFj%kn>JpaVt)X74Zx9k&xL>k>$s2vo?*ro17d>LBM)so)MkGv_t zRmXBIb$^R$@S;&zSTxW4_gODSUiH0@LAVB?I=`qW<4Eyh=O}u6O+gnG)%d+9=)hyt zdVKKJ-Q__gYU(ZX*}8Pq;7-f`K8oTruCT($(@Y2OH=GiE7ZM)%5KLN3@3FVO!LYS& zyy(uRj$>(|uvDzs?RKrQ#myip*R2q;Ao@&I-_gujx?QgN4ujOt{S1kf4=%Iai3gTo zTF!mZ`}w`LDL!pChW3SGaa~o4p#UuRA|YR>LvVxSJ2Yo1L>%BdA^iGIba!n##4X1- z3bwlo;pr>=#8(^kjD&4*--F8i#bN(!5lI3pPUkRv9>SJQn)GygQEHCbvLeF0?FN|+ zfM9jG;Aa7FR~?mXRURSISv4iw^?pqK_NQ%Rc3N3BwQMKN-Q;m+q4SZOqS{zvVw`#` z5|1RI43|48X2J-)Op8Z})v=VQYgnW7Cb3~_)v}}ZCzCSmHfI{Zw7_j6Sw<{}D@6 z-c+aDPSIkJ9X>ldp5->H$E~37d7*=av2n99no zudnwNj;96-94zTq>8ULOgum(mYAl2EM#WQGpG9z`Y>nJlIVrP4Z-XEVFoVd86F@ZfD=M5EJa@W z&POvb?R=}NB_aN_w!Z!;f$M_pSz|t{MAGK7NyLIJ$ZGKMLH5002N{7s_W49lyODD! zv2PxVxU(N4n4>TUMHdg7%q>ZV9=qA+kCY!>7^H?JTO^Faf4Xf?bGzd>LK=G*6qEROq=cML)x>VP z!Mp2EhH{SB#zOOwP7ctYQXBG;+}&~7#=wcZvN>1#aXtLP|LpjWoQ>iN2mA{yywq1t z$ZcuuMjtLVzIY1Q)%UtE#6EeqFCEi&iOv*C4&>t+%f+z_YdkR~<@h;eCy-~EA!v^q z&JrX~l5rnOuEE>5ECTu|ZYbuafOl)oG9rfmGL0ozS=x^%hL>;%slHgY()x4Znf19O zBwh#j!z@pOUIkkEY`0F%E8R*lWxCymi-8X&f7kro{@JO8lDsy~Yj2c3l@`V;%{@QQ z)&RUUWgZT(YEPxaN;4I)KsS{@Rm=CJLwct}Z(G?N`y0;&rOFT0{~&J)xVwF)j#^Jt zJwLbg@I<#H#i!&IHQU2E^8|=t!tzhSN*O~+!uNjb2|u3Tpdw8lZn-4g$6QTZ`}Nm( z#wOu(O`*FC_$t<;!&6E8Y}@&D3960>f}fJiAA`;u2}`LNz<+^<^_-jJy*w3oe~<)h zfRCh)2PAUdDa#wyx(~*?yb8G+_8*J zSd6gUJJ&l>#?xleBWkCM2Gh{cY2ZUOA5nDiVb-bUYbRk`D59WxuI9ZhW&n*=Y&=>K z6R}H*2$^DO#BVo>LYF}xp>~-??)9D2gVwHt&49MD6pidFM5A{`BR@`Q)vS(q2`t#{ zd@XLEX*cDYO|$jtXAEXr*@N0BO_ib~^u+Z6W~;|Sd}Y34L+m?NydH}M;41?`mUjH{ zwJ#|phHsan{wXd}2?mi+er})U7KJg1AH3$d z5k2??vs{ns9t>K`cQ1CiOoyBFmiPLYjPsYiTZ}{=@q4>>SzE2yj_3(TKX$2U1wmDj zRpiX%7N*Fz{)z9bA(J+bcLZXk^6N~ILE|1J(H*;mJ(wp|`{L|DOKi;}O)k|p1q)?= zI{9Zi33tBw%esu=Nzsvq931!=ewtSY&PDh_Mffj{ZB>!&ee|!d<099-4Z=@OH{H+P zn+po>_wx5Hi}+F0)isRIC#{9DO`O0CF804Xv=Awh4G86;pUxcg<~zc=RZmMdRKw`0 zXec;5YBG1!xhqHj#s|oE;`~R2cklPc1>aL$r|##N1T(tnx238VP4u(_*P|vv8@Ot{ zxDfV)sUp!^$o2t);)5!e{(kd*-*sW1%h)O=BKKRINhNpk-fV}ONTh_`MT+ft$McYT zag8hU;$5sf3(ELLhO(%%#z``!_BBm|J+wb0Byv5}ft)ao!{t|z4+49iCCm+%kZw9* z2AV@&&8n+EeIX^SE?u2&wI@JFzPhfJ$RAU|?L?uY2@jntLd^BE5^lQyKz5)bn3k_ql7jF6oIeejWkh6xc zPU09A`xKKS|4`-Zs>Z!(pQoPq^mWzzwJDghd~xzBJ^G#es-4Rq_X+w@p5yPL^Zqkr z?Y6ILL$aj>%MXf^b&C|8y~1WH>c6TR-#l?a_Pme+$8ZOw z-rO%m_r|s)V^#DOH-|`|uvD_jy&;tNv%+p?9&adEw(zS1~eIc#$q{C2%*mr`N*?ZMsjrSmhP)xZNnEx9w2)z#=6tjFSV+<73dz{?tJS{{}cL-#yBq>7+?zK^%)^!u5ZbQAw{^r4Y^KmB9oJf$8` z#lI1zF?qx|CqcMAs`6y9E7;u_l|9sjW*P9btf;fIC4Jd$6yC(m;zRc{FXgFCU791- zRR+F%9`z&#Qbq6=gu#g^xiQ0*(Wi5}BRHhZI-t8D!bB``VIM(_!3haVe_AeF(>mFZ z$$^tY_QomZS`KyXj?(w^ofEC^!Q?8;BRSNAc(fI`C;|4Jw2wdC@NdPI=NDDV>8&g< zsLkSO{bkCH0*WqVVqLkI)fDX<-(e*q$~b)a&WzVxqVTeFG4cV zuuHcfw5|x8YPSrSo=U=S=+uX>n%Y3FUOdHrVnhm))k(~i!+!C@Ir;)$NDt4=V^UW3 zL?R7W)dFrL`5?PLrV3w|gp}BsW*Ek1am+Z%`G_PQ6mIRP6TMJZ*@NLm1iVm9|B6z- zA%u8nD|_U@vsez;k^$j)Qx=QMc7~ui&rKJ~R#um}%&;tdqS;fFrGl8HGV)PEq2Kaz zOr*#7jcXw?AZF?8bpaNQ_nPA$Fz`R{{3jBzCL**b`$Yve`@Oh{*6;9bByA9|?nC>gD@5 zSa}kcbq{+^7gQnjaId{+=Gg-Nv{hq-a=?w@Uc?^PrhvhWLH|ABP8H{833Pfn-qXdU zG~Vy%oEIZvsIJt51c&wQ}?vuL;`SHFw;wPYFnC^uVT zys&WXE;_v_u;494aX?6E72RJuW4&VnLCkn3E+n0cd?tT4{H!Rygt}%NZk3Kbt zYRfpKSh-8T!ilF?ONJXwSSRghUL!_alo#?S0Pu!`yy1AKVtUj-r4M~tvFXNQTEA;o zPb_abf46*f#O^E`)}QFDr4D?@%`VbXWfG02jTS=~BbT&nx!<^($FUr=!u3WeJsv#6 zqYSZ{KGS>2Qpdj>uBr0}0t@6}XP1br67RQ)q!W17`;ox$jy z3>EqFp4%>X!+7yp!#WN;q;6_V?|_4OQ4E*Y`hoUylHRZb%d|=yr-jqZwzX3fQd1O8e038W{IdI#shEGjLP zqAJ4VX=7@)8x;}n?05zt0tNdpBSQ~aKg{tyQ+J!mU;p>S{{Kev`QNAIP0?Z0CE<)i z6E1u+GUPi08)}=I1JP6DMY&Z|A=`^K>-6dR?`PJjBOqFC9(K$)!**Ldj8}p zZRo!(5yUdU&;Nu;`Tz9n|8Ms6J);)N2ry+>MB}kPLh-4Dk}ocfgh!fNgGYh90hGV~ zhz!s{V+{$+<6Q@&@Nsc}6*b?e*fOfw1RU=j$ZSH^)x2ZRw=juLih3=*bk zW0vrtUN(vb%!0%~?g4oUf{J{B3(TF7lx`2tfl+e5+%EWXdBe5&VBMNDmn7PBo-SpWpnx2GYMvzIYp^Nt zH_YQr#`W&M7(bcba>cFQB-_4-tMT^eI28c(v}pKd%}Ovn<#1k8zV;`dAHTN15>R8m zaBB@XL?(B!8Z#_>REWx=*0$sR=2$}FQ9lQXPZVk6z8{7mBB`yoJoAH-HP z>mAAQ*vR1@toYELsh;)WitJDi~nOjt3RdMUTjhqB&~p<}gv>Cu*mEB;l_k zLd1l}ZKmTHj}aVEsTUkUI*8ov4d1lSc+p!*(abmV@gD9HN+0o~$R<~j~j`@53{M2^Na6W3pycX!a)$rH@8y?9)08*U4 z#W+_48)ba8$Qz4iEF)} z$2)8g`-qbYCtUwLW6+$J;vw$Zhzx1x!SH8Yc_9y(eV&BuRrsE`ru9-5T6f`Fve$8f zQDC|?S;?{G?qfjHCPgBTjAoNa+7_xe1BBqtz=ACM*I~|b^!W_iiv|33f-?t0mHQm& z#}1*AXRq%?z0Vpr0cl*6QsPP2eB#fxO_~9@H~=4%)sg#C1{XwG%fV-AcxjU;BZezz z*3k~3#dYP2u7Ee4FC?gqa5^CV>G}fO7eQ!a%SAiA?8xlJ>*RT$m0$rFy^VhQg52{j zuDyc|T86*#kLkiV@{coWJX%k|dRr=u>k7yd&Df~8Wncri>iDiQm--;%(>J)~qwO0m z1%!MBNm33w_XCN6tWY$7JTQdN@CWiY9F+rPn+*8I8feTl(5>xFdrYm#?0fAcMMBX}P6O=hDugX;qAh#P{g$O4*`l)Jo@K zIM_opjP(1T8|VjG@<&cfJ?&Wa*-E#?llLd@O@t3~F<)wdP#ngf8@Luuim7QN6D6$T z8f_Ny_qV1EYehWZPAtA zRMH)OFc2s{d%5Yl`G@!TY_pfSL0$&^EQBL^+e&b6Ln6eOq!Eh;Ep{ENNiB41x{!@2 zw1KC%pX!mK=pp3nQjCTR@Rh#%CdGfMHAySt#FXMY>wa>_=UH2vve!ROC|^Rhw>wvP7!o*syP-x>XNDYx|>zWM)0npBo@ z;E^wr#g3*f6EXNyVjyczXr$+0K<;wV1+?wSet!YR@d&!IlOAvQOYG7iNa`Vw9We0O z;(!bc4BU{f|LX=c{UoaOC$RB(Ec%67rqpR~0XdKaj~&o1dHfFmIZ5_T?oU*dIZqv3 zPK09sIS9r4N6w_nhY%D)hOG9JZiTg+tM~Z@mw_oP46!C!*&y1VlJCtT{{+YdEH