From fbf8d83da1087f547d0ab511f8271477a04b6647 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Wed, 2 Nov 2022 00:48:07 +0800
Subject: [PATCH 01/86] Fix ordering of sorting criteria
---
docs/_dg/implementations/ItemFeatures.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_dg/implementations/ItemFeatures.md b/docs/_dg/implementations/ItemFeatures.md
index 6a48f805a7f..2785e0ec7bc 100644
--- a/docs/_dg/implementations/ItemFeatures.md
+++ b/docs/_dg/implementations/ItemFeatures.md
@@ -36,8 +36,8 @@
The `sort` feature sorts the list of items currently displayed to the user by specified flag(s). It is possible to sort by one or more criteria. A list of available criteria for sorting includes:
* Name
-* Unit
* Quantity
+* Unit
* Bought Date
* Expiry Date
From e8725f0798e5f340afcdbf2c7a125fd8be753f1d Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Wed, 2 Nov 2022 00:51:57 +0800
Subject: [PATCH 02/86] Fix dash type
---
docs/_ug/TryingFirstCommand.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/TryingFirstCommand.md b/docs/_ug/TryingFirstCommand.md
index e92f551b571..d67aa95c21f 100644
--- a/docs/_ug/TryingFirstCommand.md
+++ b/docs/_ug/TryingFirstCommand.md
@@ -52,7 +52,7 @@ However, note that the following executions are invalid:
_Find out more about restrictions in the sections [Flags](#flags), [Placeholders](#placeholders) and [Commands](#commands)._
---
-Let's try out another command - the `inc` command! `inc` lets you increment the quantity of an item.
+Let's try out another command -- the `inc` command! `inc` lets you increment the quantity of an item.
```warning
The format for different commands are not always identical. For example, executing the `new` command and the `inc` command will have different formats!
From 37df781f0f2ba3c2680558a9060efdfeb21c071a Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Wed, 2 Nov 2022 04:22:39 +0800
Subject: [PATCH 03/86] Remove extra empty lines
---
docs/_dg/UserStories.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/docs/_dg/UserStories.md b/docs/_dg/UserStories.md
index d4097ab7e5f..691415bcdd2 100644
--- a/docs/_dg/UserStories.md
+++ b/docs/_dg/UserStories.md
@@ -27,5 +27,3 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `* * *` | purchasing manager | delete a tag | I can remove tags that will not be used anymore |
| `* * *` | purchasing manager | add a tag to an item | I can classify an item via this certain tag |
| `* * *` | purchasing manager | remove a tag from an item | I can choose not to classify an item via this certain tag |
-
-
From a6a94952c827d6cb2b540d7cef57073a555209b7 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Thu, 3 Nov 2022 05:41:33 +0800
Subject: [PATCH 04/86] Update PPP for RichDom2185
---
docs/team/richdom2185.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/team/richdom2185.md b/docs/team/richdom2185.md
index c3e690b98b1..63f716509e2 100644
--- a/docs/team/richdom2185.md
+++ b/docs/team/richdom2185.md
@@ -60,6 +60,8 @@ Given below are my contributions to the project.
* Support autoglossary syntax ([PR#424](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/424))
* Add bidirectional header linking ([PR#426](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/426))
* Optimise styles for PDF layout ([PR#428](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/428))
+ * Add PPP checking workflow ([PR#439](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/439))
+ * Always check against PR creator for PPP ([PR#457](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/457))
-**API** : [`Model.java`](/src/main/java/seedu/foodrem/model/Model.java)
+**API** : [`Model.java`]({{ page.master_branch }}/{{ page.main_src }}/model/Model.java)
![](images/ModelClassDiagram.png)
From 640bc3bfb7768c92fa8fa9c5700a08ef28d0d040 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sat, 5 Nov 2022 15:44:30 +0800
Subject: [PATCH 06/86] Update autoglossary explanation
---
docs/_ug/HowToUseUserGuide.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/HowToUseUserGuide.md b/docs/_ug/HowToUseUserGuide.md
index 205c2361109..f9938778847 100644
--- a/docs/_ug/HowToUseUserGuide.md
+++ b/docs/_ug/HowToUseUserGuide.md
@@ -38,4 +38,4 @@ Throughout this guide, you may find coloured boxes containing highlighted pieces
Besides icons, there are also some special notations that are used in this guide:
* Links in blue point to other sections in this document, or places on the internet.
-* Words with a dotted underline represent terms, which when clicked, take you to the corresponding entry in the glossary section below.
+* Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this User Guide.
From bea7123ab091737c9890b6c5a800b8170813a98f Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sat, 5 Nov 2022 16:17:39 +0800
Subject: [PATCH 07/86] Fix broken link fragment
---
docs/_ug/commands/ItemCommands.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/commands/ItemCommands.md b/docs/_ug/commands/ItemCommands.md
index 173b2b6abc4..7d05c61dc75 100644
--- a/docs/_ug/commands/ItemCommands.md
+++ b/docs/_ug/commands/ItemCommands.md
@@ -53,7 +53,7 @@ Tags: {}
> List all items in FoodRem
```info
-* This command is useful to view all items again after using the [Find Command](#Find)
+* This command is useful to view all items again after using the [Find Command](#search-for-an-item-find)
```
**Example Input:**
From 6b9b0e7f6199d8066849ac6ec6b63bb9e3cde8f0 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sat, 5 Nov 2022 16:19:27 +0800
Subject: [PATCH 08/86] Fix markdownlint violations
---
docs/_ug/HowToUseUserGuide.md | 2 ++
docs/team/bryanljx.md | 6 ++----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/_ug/HowToUseUserGuide.md b/docs/_ug/HowToUseUserGuide.md
index f9938778847..1717c14601c 100644
--- a/docs/_ug/HowToUseUserGuide.md
+++ b/docs/_ug/HowToUseUserGuide.md
@@ -37,5 +37,7 @@ Throughout this guide, you may find coloured boxes containing highlighted pieces
Besides icons, there are also some special notations that are used in this guide:
+
* Links in blue point to other sections in this document, or places on the internet.
* Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this User Guide.
+
diff --git a/docs/team/bryanljx.md b/docs/team/bryanljx.md
index 812f0926087..4bdbf6063af 100644
--- a/docs/team/bryanljx.md
+++ b/docs/team/bryanljx.md
@@ -10,33 +10,31 @@ AddressBook - Level 3 is a desktop address book application used for teaching So
Given below are my contributions to the project.
**Refactoring**:
+
* **Refactored Feature**: Refactored `tag` model ([PR#140](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/140))
* What it does: encapsulates the idea of `tag` so that users can create and add `tag` to `item`.
* Justification: This feature allows `item` to be classified into different categories. The refactoring allows for creating of any tags as well as updating of the restrictions we would like to place on names for `tag`.
* Highlights: This refactoring allows users to create any `tag` they want. Through the use of regex, it also updates the restrictions we would like to place on names for `tag`, such as character limit or disallowed characters.
-
* **Refactored Feature**: Added storage for `tag` model ([PR#223](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/223))
* What it does: Adds storage functionality for the refactored `tag` model.
* Justification: This feature is needed as we needed to store a separate list for `tag` besides the `item` list.
**New feature**:
+
* **New Feature**: Added `renametag` command ([PR#179](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/179))
* What it does: Allows for renaming of existing `tag`.
* Justification: Users might make errors in creating `tag` so we want to allow them to rename `tag`.
-
* **New Feature**: Added `deletetag` command ([PR#199](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/199))
* What it does: Allows for deletion of existing `tag`.
* Justification: To allow users to delete `tag` no longer used.
-
* **New Feature**: Added `filtertag` command ([PR#302](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/302), [PR#353](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/353))
* What it does: Allows for filtering for `item` by `tag`.
* Justification: This feature is the core functionality added by `tag`. We can classify `item` by `tag` so naturally we would like to filter by `tag`.
* Credits: Thanks to `eugenetanwl3881` for catching a bug with the Ui related to `filtertag`.
-
* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2223s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2022-09-16&tabOpen=true&tabType=authorship&tabAuthor=bryanljx&tabRepo=AY2223S1-CS2103T-W16-2%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false)
* **Enhancements to existing features**:
From 0179f8d137e4e9c840fb8d49b049e7d6e0e5c42e Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sat, 5 Nov 2022 17:56:08 +0800
Subject: [PATCH 09/86] Remove hard breaks
---
docs/_data/foodrem.yml | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/docs/_data/foodrem.yml b/docs/_data/foodrem.yml
index f7b0302d5ba..dce6bba56a2 100644
--- a/docs/_data/foodrem.yml
+++ b/docs/_data/foodrem.yml
@@ -1,13 +1,6 @@
acknowledgements: >-
- FoodRem is a brownfield software project based off [AddressBook3](https://se-education.org/addressbook-level3/),
- taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html)
- held by the School of Computing at the National University of Singapore.
+ FoodRem is a brownfield software project based off [AddressBook3](https://se-education.org/addressbook-level3/), taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html) held by the School of Computing at the National University of Singapore.
about:
summary: >-
- FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers
- to manage inventory and obtain insights from inventory data. As a restaurant manager, leverage upon FoodRem's
- own **Inventory Management System**, where you can manage your inventory during your daily operations. Utilize
- FoodRem's flexible **tagging system** to help you organize your inventory according to your business needs.
- Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem's
- **statistics**, keeping track of vital data such as food wastage.
+ FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, leverage upon FoodRem's own **Inventory Management System**, where you can manage your inventory during your daily operations. Utilize FoodRem's flexible **tagging system** to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem's **statistics**, keeping track of vital data such as food wastage.
From 28443f59ad55302347c412cabe8926bbcefaf9b8 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sat, 5 Nov 2022 17:56:32 +0800
Subject: [PATCH 10/86] Remove unnecessary clause
---
docs/_data/foodrem.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_data/foodrem.yml b/docs/_data/foodrem.yml
index dce6bba56a2..b972d52f4e5 100644
--- a/docs/_data/foodrem.yml
+++ b/docs/_data/foodrem.yml
@@ -3,4 +3,4 @@ acknowledgements: >-
about:
summary: >-
- FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, leverage upon FoodRem's own **Inventory Management System**, where you can manage your inventory during your daily operations. Utilize FoodRem's flexible **tagging system** to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem's **statistics**, keeping track of vital data such as food wastage.
+ FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, you can manage your inventory during your daily operations. Utilize FoodRem's flexible **tagging system** to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem's **statistics**, keeping track of vital data such as food wastage.
From b895b7fb240ffb92f2140567d8c5cc6acf27dcd4 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 02:19:07 +0800
Subject: [PATCH 11/86] Standardise page title capitalisation
---
docs/Configuration.md | 2 +-
docs/DevOps.md | 2 +-
docs/Documentation.md | 2 +-
docs/Logging.md | 2 +-
docs/SettingUp.md | 2 +-
docs/Testing.md | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/Configuration.md b/docs/Configuration.md
index 13cf0faea16..817d9a9e579 100644
--- a/docs/Configuration.md
+++ b/docs/Configuration.md
@@ -1,6 +1,6 @@
---
layout: page
-title: Configuration guide
+title: Configuration Guide
---
Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: `config.json`).
diff --git a/docs/DevOps.md b/docs/DevOps.md
index 616de4bd2db..4061d31be2c 100644
--- a/docs/DevOps.md
+++ b/docs/DevOps.md
@@ -1,6 +1,6 @@
---
layout: page
-title: DevOps guide
+title: DevOps Guide
---
{% include toc.md %}
diff --git a/docs/Documentation.md b/docs/Documentation.md
index cee445f81ab..99ebc810532 100644
--- a/docs/Documentation.md
+++ b/docs/Documentation.md
@@ -1,6 +1,6 @@
---
layout: page
-title: Documentation guide
+title: Documentation Guide
---
**Setting up and maintaining the project website:**
diff --git a/docs/Logging.md b/docs/Logging.md
index 875f0ad255e..59de614eb67 100644
--- a/docs/Logging.md
+++ b/docs/Logging.md
@@ -1,6 +1,6 @@
---
layout: page
-title: Logging guide
+title: Logging Guide
---
* We are using `java.util.logging` package for logging.
diff --git a/docs/SettingUp.md b/docs/SettingUp.md
index 47d0a64dce2..4ff08daa642 100644
--- a/docs/SettingUp.md
+++ b/docs/SettingUp.md
@@ -1,6 +1,6 @@
---
layout: page
-title: Setting up and getting started
+title: Setting Up and Getting Started
---
{% include toc.md header=true %}
diff --git a/docs/Testing.md b/docs/Testing.md
index c95683d480a..6b11d466ece 100644
--- a/docs/Testing.md
+++ b/docs/Testing.md
@@ -1,6 +1,6 @@
---
layout: page
-title: Testing guide
+title: Testing Guide
---
* Table of Contents
From d0c863b6a0a93b55c0d83bf573a58deac0d0f494 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 02:19:47 +0800
Subject: [PATCH 12/86] Remove unnecessary horizontal rule
---
docs/DevOps.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/docs/DevOps.md b/docs/DevOps.md
index 4061d31be2c..1fe33135f6d 100644
--- a/docs/DevOps.md
+++ b/docs/DevOps.md
@@ -59,8 +59,6 @@ Any warnings or errors will be printed out to the console.
* LINE is the line of the file where the error occurred and MESSAGE is the message explaining the error.
* Check scripts must exit with a non-zero exit code if any errors occur.
----
-
## Making a release
Here are the steps to create a new release.
From 4cc7321fe5efef95f4d8c68b99118fae3a062f55 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:20:04 +0800
Subject: [PATCH 13/86] Replay changes post-merge
---
docs/_ug/AdmonitionBoxes.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/docs/_ug/AdmonitionBoxes.md b/docs/_ug/AdmonitionBoxes.md
index ce74d2f61f8..a8c82e687ca 100644
--- a/docs/_ug/AdmonitionBoxes.md
+++ b/docs/_ug/AdmonitionBoxes.md
@@ -15,5 +15,7 @@ Throughout this guide, you may find coloured boxes containing highlighted pieces
Besides icons, there are also some special notations that are used in this guide:
+
* Links in blue point to other sections in this document, or places on the internet.
-* Words with a dotted underline represent terms, which when clicked, take you to the corresponding entry in the glossary section below.
+* Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this User Guide.
+
From 44d383579138731c0e7492fb94048e79ba09e230 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:22:41 +0800
Subject: [PATCH 14/86] Remove trailing whitespace
---
docs/_dg/AboutDG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_dg/AboutDG.md b/docs/_dg/AboutDG.md
index b1c71d38e63..af807d5fda9 100644
--- a/docs/_dg/AboutDG.md
+++ b/docs/_dg/AboutDG.md
@@ -1,7 +1,7 @@
FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. Users can leverage upon FoodRem's **Inventory Management System** during their daily operations. FoodRem's **tagging system** to helps users organize their inventory according to their business needs. FoodRem also derives insights from inventory usage through FoodRem's **statistics**.
-This Developer Guide provides an in-depth documentation on how FoodRem is designed and implemented. It covers the architecture of FoodRem, detailed specifications on smaller pieces of the design, and an outline of all parts of the software and how they will work.
+This Developer Guide provides an in-depth documentation on how FoodRem is designed and implemented. It covers the architecture of FoodRem, detailed specifications on smaller pieces of the design, and an outline of all parts of the software and how they will work.
You can use this guide to maintain, upgrade, and evolve FoodRem.
From ee5e4071b07aa250283297595af375a2e069e930 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:23:44 +0800
Subject: [PATCH 15/86] Move DG about to data file
---
docs/_data/foodrem.yml | 2 ++
docs/_dg/AboutDG.md | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/docs/_data/foodrem.yml b/docs/_data/foodrem.yml
index b972d52f4e5..55ba5b3ed69 100644
--- a/docs/_data/foodrem.yml
+++ b/docs/_data/foodrem.yml
@@ -4,3 +4,5 @@ acknowledgements: >-
about:
summary: >-
FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, you can manage your inventory during your daily operations. Utilize FoodRem's flexible **tagging system** to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem's **statistics**, keeping track of vital data such as food wastage.
+ summary_dg: >-
+ FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. Users can leverage upon FoodRem's **Inventory Management System** during their daily operations. FoodRem's **tagging system** to helps users organize their inventory according to their business needs. FoodRem also derives insights from inventory usage through FoodRem's **statistics**.
diff --git a/docs/_dg/AboutDG.md b/docs/_dg/AboutDG.md
index af807d5fda9..dfeaf1f7a2c 100644
--- a/docs/_dg/AboutDG.md
+++ b/docs/_dg/AboutDG.md
@@ -1,5 +1,6 @@
-FoodRem is an **Inventory Management System** that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. Users can leverage upon FoodRem's **Inventory Management System** during their daily operations. FoodRem's **tagging system** to helps users organize their inventory according to their business needs. FoodRem also derives insights from inventory usage through FoodRem's **statistics**.
+
+{{ site.data.foodrem.about.summary_dg }}
This Developer Guide provides an in-depth documentation on how FoodRem is designed and implemented. It covers the architecture of FoodRem, detailed specifications on smaller pieces of the design, and an outline of all parts of the software and how they will work.
From 72a8dac72c2642e38529425a33f1e9591a15bd05 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:31:18 +0800
Subject: [PATCH 16/86] Create glossary entry for admonitions
---
docs/_glossary/Admonitions.md | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 docs/_glossary/Admonitions.md
diff --git a/docs/_glossary/Admonitions.md b/docs/_glossary/Admonitions.md
new file mode 100644
index 00000000000..2d980a9db8a
--- /dev/null
+++ b/docs/_glossary/Admonitions.md
@@ -0,0 +1,8 @@
+---
+name: Admonitions
+show-in: [ug, dg]
+---
+
+Admonition boxes (or simply "admonitions") are coloured boxes containing highlighted pieces of text.
+
+For details on the various types of various types of admonitions used in FoodRem, see the section on [Admonition Boxes](#admonition-boxes).
From 2dafa5bb48a4b42715eb61a5208eea676dc450d0 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:32:44 +0800
Subject: [PATCH 17/86] Update admonitions description
---
docs/_ug/AdmonitionBoxes.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/_ug/AdmonitionBoxes.md b/docs/_ug/AdmonitionBoxes.md
index a8c82e687ca..53a1311b662 100644
--- a/docs/_ug/AdmonitionBoxes.md
+++ b/docs/_ug/AdmonitionBoxes.md
@@ -1,7 +1,7 @@
-### FoodRem Admonition Boxes
+### Admonition Boxes
-Throughout this guide, you may find coloured boxes containing highlighted pieces of text. Please take note of the content within.
+Throughout this guide, you may find coloured boxes containing highlighted pieces of text. These are known as admonition boxes, or simply, [[ admonitions ]]. Please take note of the content within.
| Icon | Meaning |
|--------------------------------------------------|-------------------------------------------------------------|
From 2f9eb46bfd09acbd1ae7d0a4b54d0d64682f1f63 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:42:21 +0800
Subject: [PATCH 18/86] Update badges
---
README.md | 3 ++-
docs/index.md | 5 +++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d4ac24dce0b..7a368a9fad0 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
[![CI Status](https://github.com/AY2223S1-CS2103T-W16-2/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2223S1-CS2103T-W16-2/tp/actions)
-[![codecov](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp)
+ [![CI Status](https://github.com/AY2223S1-CS2103T-W16-2/tp/workflows/Build/badge.svg)](https://github.com/AY2223S1-CS2103T-W16-2/tp/actions)
+ [![codecov](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp)
![Ui](docs/images/Ui.png)
diff --git a/docs/index.md b/docs/index.md
index 2a65d0b62ca..fbcec1168e2 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -3,8 +3,9 @@ layout: page
title: FoodRem
---
-[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions)
-[![codecov](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp)
+[![CI Status](https://github.com/AY2223S1-CS2103T-W16-2/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2223S1-CS2103T-W16-2/tp/actions)
+ [![CI Status](https://github.com/AY2223S1-CS2103T-W16-2/tp/workflows/Build/badge.svg)](https://github.com/AY2223S1-CS2103T-W16-2/tp/actions)
+ [![codecov](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2223S1-CS2103T-W16-2/tp)
![Ui](images/Ui.png)
From 1305eeb4a548447c864590f51c175817846c9a66 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:43:55 +0800
Subject: [PATCH 19/86] Update AB-3 spelling
---
README.md | 2 +-
docs/_data/foodrem.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 7a368a9fad0..c5fd8ba1f72 100644
--- a/README.md
+++ b/README.md
@@ -12,4 +12,4 @@ FoodRem is an Inventory Management System that empowers small food and beverage
## Acknowledgements
-FoodRem is a brownfield software project based off [AddressBook3](https://se-education.org/addressbook-level3/), taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html) held by the School of Computing at the National University of Singapore.
+FoodRem is a brownfield software project based off [AddressBook Level-3](https://se-education.org/addressbook-level3/), taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html) held by the School of Computing at the National University of Singapore.
diff --git a/docs/_data/foodrem.yml b/docs/_data/foodrem.yml
index 55ba5b3ed69..7770c34d29a 100644
--- a/docs/_data/foodrem.yml
+++ b/docs/_data/foodrem.yml
@@ -1,5 +1,5 @@
acknowledgements: >-
- FoodRem is a brownfield software project based off [AddressBook3](https://se-education.org/addressbook-level3/), taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html) held by the School of Computing at the National University of Singapore.
+ FoodRem is a brownfield software project based off [AddressBook Level-3](https://se-education.org/addressbook-level3/), taken under the [CS2103T Software Engineering module](https://nus-cs2103-ay2223s1.github.io/website/index.html) held by the School of Computing at the National University of Singapore.
about:
summary: >-
From ced9f467f0b09725a015cbeab9d46ced61e4bdb8 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:45:36 +0800
Subject: [PATCH 20/86] Update heading
---
docs/Documentation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/Documentation.md b/docs/Documentation.md
index 020f47a204c..80e9c71cda4 100644
--- a/docs/Documentation.md
+++ b/docs/Documentation.md
@@ -14,7 +14,7 @@ title: Documentation Guide
* :bulb: In addition to updating content files, you might have to update the config files `docs\_config.yml` and `docs\_sass\minima\_base.scss` (which contains a reference to `AB-3` that comes into play when converting documentation pages to PDF format).
* If you are using Intellij for editing documentation files, you can consider enabling 'soft wrapping' for `*.md` files, as explained in [_[se-edu/guides] **Intellij IDEA: Useful settings**_](https://se-education.org/guides/tutorials/intellijUsefulSettings.html#enabling-soft-wrapping)
-## Style guidance
+## Style Guide
* Follow the [**_Google developer documentation style guide_**](https://developers.google.com/style).
From 3df89c5c19282ba8a00930bd531caa34ff8cbd99 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 04:50:30 +0800
Subject: [PATCH 21/86] Fix formatting inconsistency
---
docs/_dg/ModelComponent.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_dg/ModelComponent.md b/docs/_dg/ModelComponent.md
index 004bad230be..5a0b020dd3c 100644
--- a/docs/_dg/ModelComponent.md
+++ b/docs/_dg/ModelComponent.md
@@ -1,7 +1,7 @@
The Model component holds the data of the App in memory.
-**API** : [`Model.java`]({{ page.master_branch }}/{{ page.main_src }}/model/Model.java)
+**API** : [Model.java]({{ page.master_branch }}/{{ page.main_src }}/model/Model.java)
![](images/ModelClassDiagram.png)
From ea92a301d94b674b6dcea3b3a71cd5ee82bb9f08 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 05:25:27 +0800
Subject: [PATCH 22/86] Reformat Yi Xian's PPP
---
docs/team/yixiann.md | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/docs/team/yixiann.md b/docs/team/yixiann.md
index 803bdbc94b5..45910330e0e 100644
--- a/docs/team/yixiann.md
+++ b/docs/team/yixiann.md
@@ -17,14 +17,13 @@ The two main functionalities of FoodRem are the inventory management system and
The inventory management system uses an efficient tagging system where you can create, rename, and delete existing tags. We are also able to sort and filter items by different attributes.
The Inventory Analysis System tracks data that helps restaurants streamline their business decisions through statistics.
-
Given below are my contributions to the project.
-* **Major Refactoring**: Refactor AB3 into FoodRem
+* **Major Refactoring**: Refactor AB3 into FoodRem
* What it does: Removes all occurrences of AB3. Converts the `Person` class into an `Item` class.
- * Justification: This was essential in creating the minimum viable product and laid the groundwork for further extensions.
- * Highlights:
+ * Justification: This was essential in creating the minimum viable product and laid the groundwork for further extensions.
+ * Highlights:
* The refactoring was a challenging process as the changes must be documented along with the test cases. It was critical to ensure the test cases were still relevant to the `Item` class rather than `Person` class.
* The refactoring meant that all commands of AB3 were extensively modified to suit FoodRem:
* Command to list all items
@@ -38,56 +37,47 @@ Given below are my contributions to the project.
* Commands such as the help, exit and reset, commands required minimal changes.
* Pull requests : [Refactoring Person to Item PR\#157](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/157))
-
* **New Feature**: Added the ability to add a remark
* What it does: Allows the user to add a remark to an item.
* Justification: This feature improves the user's experience as they are now able to include notes specific to an item.
* Pull requests : [Add remarks fields and remarks command PR#254](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/254))
-
* **New Feature**: Add the user interface for tags
* What it does: Allows the user to view results of tag commands in a beautiful format rather than plain text.
* Justification: This feature standardises the UI of Items and Tags.
* The implementation was extended from the current UI of Items which was created by Richard Dominick.
* Pull requests : [Add UI for tags PR#340](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/340)
-
* **Enhancements to the `help` command**:
* Enhanced `help` command to provide help for individual commands rather than a generic message.
* Enumeration of CommandWords was done.
* Pull requests : [Modify help command to provide help for each individual command PR#201](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/201))
-
* **Enhancements to the `inc` and `dec` command**:
* Enhanced `inc` command and `dec` command to have optional qty prefix.
* This was done to make it easier to increment and decrement the quantity of an item.
* Pull requests : [Modify increment and decrement command to have optional qty prefix PR#183](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/183))
-
* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2223s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2022-09-16&tabOpen=true&tabType=authorship&tabAuthor=yixiann&tabRepo=AY2223S1-CS2103T-W16-2%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false)
-
* **Project management**:
* Created the following milestones `V1.1, V1.2, V1.3, V1.4`
- * These milestones were essential in ensuring the group on track in our tasking.
-
+ * These milestones were essential in ensuring the group on track in our tasking.
* **Documentation**:
* User Guide:
- * Add skeleton for the user guide [PR#35](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/35)
- * Add value preposition of FoodRem in the user guide [PR#147](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/147)
- * Update Quick Start of user guide, and reorganise content page [PR#141](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/141)
+ * Add skeleton for the User Guide [PR#35](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/35)
+ * Add value preposition of FoodRem in the User Guide [PR#147](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/147)
+ * Update Quick Start of User Guide, and reorganise content page [PR#141](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/141)
* Add documentation for the `help` feature [PR#90](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/90)
-
* Developer Guide:
- * Added about us section for the developer guide.
-
+ * Added about us section for the Developer Guide.
* **Community**:
@@ -97,10 +87,11 @@ Given below are my contributions to the project.
* Stats command fail on FoodRem having less than 3 items [Issue#447](https://github.com/AY2223S1-CS2103T-W16-2/tp/issues/447)
* Rename tag does not modify tags in items [Issue#293](https://github.com/AY2223S1-CS2103T-W16-2/tp/issues/293)
* Rename tag to same name is possible [Issue#273](https://github.com/AY2223S1-CS2103T-W16-2/tp/issues/273)
-
+
Other PRs:
+
* Update AboutUs page ([PR#14](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/14))
-* Add skeleton for user guide ([PR#35](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/35))
+* Add skeleton for User Guide ([PR#35](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/35))
* Update aboutUs page to include information about Yi Xian ([PR#89](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/89))
* Update userguide to include help command ([PR#90](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/90))
* Add skeletal PPP ([PR#91](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/91))
@@ -109,7 +100,7 @@ Other PRs:
* Remove boilerplate and update roles in About Us page ([PR#100](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/100))
* Point CI banners to own project and remove traces of AB3 in README.md ([PR#102](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/102))
* Add use case 7, use case 8 and user stories for inventory items ([PR#129](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/129))
-* Update Quick Start of user guide, reorganise content page ([PR#141](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/141))
+* Update Quick Start of User Guide, reorganise content page ([PR#141](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/141))
* Change TYPE to UNIT in UserGuide.md ([PR#145](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/145))
* Add value preposition ([PR#147](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/147))
* Refactoring Person to Item 2 ([PR#157](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/157))
@@ -135,7 +126,7 @@ Other PRs:
* Fix rename tag not changing tags within items ([PR#296](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/296))
* Fix storage modification causing bugs ([PR#298](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/298))
* Create welcome message for user that shows error if datafile has issue ([PR#299](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/299))
-* Show empty foodrem when data file is corrupted ([PR#303](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/303))
+* Show empty FoodRem when data file is corrupted ([PR#303](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/303))
* Add tag related images ([PR#314](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/314))
* Centralise logic for validate string regex ([PR#316](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/316))
* Add remarks to help ([PR#317](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/317))
@@ -147,7 +138,7 @@ Other PRs:
* Update UG ([PR#359](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/359))
* Add storage restriction to items and tags ([PR#362](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/362))
* Apply negative index validation to all commands ([PR#365](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/365))
-* Update user guide to match changes to codebase ([PR#368](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/368))
+* Update User Guide to match changes to codebase ([PR#368](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/368))
* Fix date validation ([PR#370](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/370))
* Update find to match new find ([PR#371](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/371))
* Update help command to use ITEM_NAME and TAG_NAME instead of NAME ([PR#374](https://github.com/AY2223S1-CS2103T-W16-2/tp/pull/374))
From a98795da9e214c81f2da0b7b73137b99e8beedce Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 08:54:53 +0800
Subject: [PATCH 23/86] Reformat markdown files
---
docs/Configuration.md | 1 +
docs/DeveloperGuide.md | 2 ++
docs/Logging.md | 1 +
docs/_dg/Design.md | 3 ++-
docs/_dg/HowToUseDeveloperGuide.md | 2 +-
docs/_dg/Implementation.md | 1 +
docs/_dg/InstructionsForManualTesting.md | 17 +++++++++++++----
7 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/docs/Configuration.md b/docs/Configuration.md
index c70cf1df75b..0ec15e24bd0 100644
--- a/docs/Configuration.md
+++ b/docs/Configuration.md
@@ -5,4 +5,5 @@ title: Configuration Guide
{% include toc.md header=true ordered=true %}
## Configuration
+
Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: `config.json`).
diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index 3ba1169684d..7863c011af8 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -34,6 +34,7 @@ Refer to the guide [_Setting up and getting started_](SettingUp.md).
## Documentation, Configuration, and Other Guides
Here are some links to other documentations you might find useful:
+
* [Documentation guide](Documentation.md)
* [Testing guide](Testing.md)
* [Logging guide](Logging.md)
@@ -43,6 +44,7 @@ Here are some links to other documentations you might find useful:
## Requirements
This section shares with you useful information regarding the non-technical aspects of development. This includes:
+
1. [Product Scope](#product-scope)
1. [User Stories](#user-stories)
1. [Use Cases](#use-cases)
diff --git a/docs/Logging.md b/docs/Logging.md
index 5db5c9cbe3f..205c29beca1 100644
--- a/docs/Logging.md
+++ b/docs/Logging.md
@@ -5,6 +5,7 @@ title: Logging Guide
{% include toc.md header=true ordered=true %}
## Logging
+
* We are using `java.util.logging` package for logging.
* The `LogsCenter` class is used to manage the logging levels and logging destinations.
* The `Logger` for a class can be obtained using `LogsCenter.getLogger(Class)` which will log messages according to the specified logging level.
diff --git a/docs/_dg/Design.md b/docs/_dg/Design.md
index 169c075d188..fc530dd0c32 100644
--- a/docs/_dg/Design.md
+++ b/docs/_dg/Design.md
@@ -2,10 +2,11 @@
This section gives you a high-level overview of how the application is structured and what the key components are in FoodRem.
-The [Architecture](#architecture) section gives an overview of how the main components in FoodRem interact with one another.
+The [Architecture](#architecture) section gives an overview of how the main components in FoodRem interact with one another.
FoodRem has four main components and each section describe smaller subcomponents within them.
The main conponents are namely:
+
1. [Ui Component](#ui-component)
1. [Logic Component](#logic-component)
1. [Model Component](#model-component)
diff --git a/docs/_dg/HowToUseDeveloperGuide.md b/docs/_dg/HowToUseDeveloperGuide.md
index ef33ca6da30..e4378bcc7db 100644
--- a/docs/_dg/HowToUseDeveloperGuide.md
+++ b/docs/_dg/HowToUseDeveloperGuide.md
@@ -8,7 +8,7 @@ You do not need to read the Developer Guide in a sequential order. However, we r
The Developer Guide has six main components:
1. [Design](#design)
-1. [Implementation](#implementation)
+1. [Implementation](#implementation)
1. [Documentation, Configuration and Other Guides](#documentation-configuration-and-other-guides)
1. [Requirements](#requirements)
1. [Instructions for manual testing](#instructions-for-manual-testing)
diff --git a/docs/_dg/Implementation.md b/docs/_dg/Implementation.md
index 9cd1c6cd8f5..978862944db 100644
--- a/docs/_dg/Implementation.md
+++ b/docs/_dg/Implementation.md
@@ -3,6 +3,7 @@
This section shares with you some noteworthy details on how certain features are implemented.
There are four main groups of features that are implemented:
+
1. [Item-related Features](#item-related-features)
1. [Tag-related Features](#tag-related-features)
1. [Statistics Features](#statistics-features)
diff --git a/docs/_dg/InstructionsForManualTesting.md b/docs/_dg/InstructionsForManualTesting.md
index f5e0f506ae8..1a289ce44a5 100644
--- a/docs/_dg/InstructionsForManualTesting.md
+++ b/docs/_dg/InstructionsForManualTesting.md
@@ -19,45 +19,54 @@ These instructions only provide a starting point for testers to work on; testers
1. Test case: `new n/Potato qty/2 u/kg bgt/10-10-2022 exp/11-11-2022 p/4 r/favourite`
Expected Output in Item List Box: New item added into the list.
Expected Output in Command Output Box: New item added message and its details.
1. Test case: `new qty/2`
Expected Output in Command Box: Error message for invalid command format.
-#### List all items
+#### List all items
Prerequisite: There is at least 1 item stored in FoodRem.
+
1. Test case: `list`
Expected Output in Item List Box: All items stored in FoodRem displayed.
Expected Output in Command Output Box: Listed all items message.
#### Search for an Item
Prerequisite: Suppose there is only one item named `Potato` stored in FoodRem.
-1. Test case: `find Potato`
Expected Output in Item List Box: `Potato` item displayed.
Expected Output in Command Output Box: 1 item listed message.
-2. Test case: `find strawberry`
Expected Output in Item List Box: No items displayed.
Expected Output in Command Output Box: 0 item listed message.
+
+1. Test case: `find Potato`
Expected Output in Item List Box: `Potato` item displayed.
Expected Output in Command Output Box: 1 item listed message.
+1. Test case: `find strawberry`
Expected Output in Item List Box: No items displayed.
Expected Output in Command Output Box: 0 item listed message.
#### Sort all items by an attribute
Prerequisite: Suppose there are a few items stored in FoodRem and shown in Item List Box with different names.
+
1. Test case: `sort n/`
Expected Output in Item List Box: Items sorted in ascending alphabetical order based on name.
Expected Output in Command Output Box: Items sorted message.
#### View the information of an Item
-Prerequisite: Suppose there is at least 1 item shown in the Item List Box.
+Prerequisite: Suppose there is at least 1 item shown in the Item List Box.
+
1. Test case: `view 1`
Expected Output in Item List Box: Still showing the same list as before.
Expected Output in Command Output Box: Details of first item in Item List Box shown. Displayed information includes the name, quantity, unit, bought date, expiry date, price, remarks and tags of items.
#### Increment the quantity of an item
Prerequisite: Suppose the first item in the Item List Box has a quantity of 1.
+
1. Test case: `inc 1 qty/2`
Expected Output in Item List Box: Still showing the same list as before but with first item quantity increased by 2
Expected Output in Command Output Box: Incremented item quantity message with details of first item in Item List shown.
#### Decrement the quantity of an item
Prerequisite: Suppose the first item in the Item List Box has a quantity of 3.
+
1. Test case: `dec 1 qty/2`
Expected Output in Item List Box: Still showing the same list as before but with first item quantity decreased by 2
Expected Output in Command Output Box: Decremented item quantity message with details of first item in Item List shown.
`
+
#### Edit the information of an item
Prerequisite: Suppose the first item in the Item List Box has a name of `Potato`.
+
1. Test case: `edit 1 n/Tomato`
Expected Output in Item List Box: The `Potato`item has been renamed to `Tomato` and this is now reflected in item List Box
Expected Output in Command Output Box: Item edited message with details of the edited item shown.
#### Add a remark to an item
Prerequisite: Suppose the first item in the Item List Box has no remarks.
+
1. Test case: `rmk 1 r/For Party`
Expected Output in Item List Box: Same list as shown before
Expected Output in Command Output Box: Remark updated message with details of the item that has remark updated shown.
#### Deleting an Item
From 2eed9f3aa3009a0daeffcb477d6bd4fadda138ff Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 08:57:13 +0800
Subject: [PATCH 24/86] Fix incorrect guide label
---
docs/_ug/AdmonitionBoxes.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/AdmonitionBoxes.md b/docs/_ug/AdmonitionBoxes.md
index 53a1311b662..f4b3d6de943 100644
--- a/docs/_ug/AdmonitionBoxes.md
+++ b/docs/_ug/AdmonitionBoxes.md
@@ -17,5 +17,5 @@ Besides icons, there are also some special notations that are used in this guide
* Links in blue point to other sections in this document, or places on the internet.
-* Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this User Guide.
+* Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this guide.
From 041e2ca121131957e40665f4620c143ccf7b3083 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 08:58:38 +0800
Subject: [PATCH 25/86] Update hyperlink
---
docs/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/index.md b/docs/index.md
index fbcec1168e2..e1e05426bc9 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -11,7 +11,7 @@ title: FoodRem
**FoodRem is a desktop application for F&B businesses to manage their inventory.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
-* If you are interested in using FoodRem, head over to the [Quickstart Guide](UserGuide.html#quickstart-guide).
+* If you are interested in using FoodRem, head over to the [Installation Guide](UserGuide.html#installation).
* If you are interested about developing FoodRem, the [**Developer Guide**](DeveloperGuide.html) is a good place to start.
###### Acknowledgements
From 5a6fd15ca41fcf5e9b04e3a1732460d7f2e1139d Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 08:59:56 +0800
Subject: [PATCH 26/86] Add autoglossary link
---
docs/_ug/KeyDefinitions.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/KeyDefinitions.md b/docs/_ug/KeyDefinitions.md
index 45534514906..0cd904f5dc5 100644
--- a/docs/_ug/KeyDefinitions.md
+++ b/docs/_ug/KeyDefinitions.md
@@ -36,7 +36,7 @@ FoodRem Tags are unique by name and case-sensitive. This means you cannot add tw
#### Flags
-Flags are delimiters that enable FoodRem to distinguish different parameters without ambiguity.
+Flags are [[ delimiter:delimiters ]] that enable FoodRem to distinguish different parameters without ambiguity.
You would put in the corresponding [Placeholder](#placeholders) immediately after each flag.
From 9f4e39954f0412be85517d980e8b59226b16d84d Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 09:01:21 +0800
Subject: [PATCH 27/86] Reorder section
---
docs/_ug/Commands.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/_ug/Commands.md b/docs/_ug/Commands.md
index a05aa0a51dc..71df2856db2 100644
--- a/docs/_ug/Commands.md
+++ b/docs/_ug/Commands.md
@@ -16,10 +16,6 @@ What you should expect to find:
* In most commands, if the same parameter is repeated and only one is required, we take the last value provided.
```
-### General Commands
-
-{% include_relative _ug/commands/GeneralCommands.md %}
-
### Item Commands
{% include_relative _ug/commands/ItemCommands.md %}
@@ -31,3 +27,7 @@ What you should expect to find:
### Statistics Command
{% include_relative _ug/commands/StatisticsCommands.md %}
+
+### General Commands
+
+{% include_relative _ug/commands/GeneralCommands.md %}
From a15362925cadaeffbd82bda778fa519a59a8add2 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 09:06:33 +0800
Subject: [PATCH 28/86] Clarify definition of 'substring'
---
docs/_glossary/Substring.md | 9 +++++++++
docs/_ug/commands/ItemCommands.md | 4 ++--
2 files changed, 11 insertions(+), 2 deletions(-)
create mode 100644 docs/_glossary/Substring.md
diff --git a/docs/_glossary/Substring.md b/docs/_glossary/Substring.md
new file mode 100644
index 00000000000..a209f50fbae
--- /dev/null
+++ b/docs/_glossary/Substring.md
@@ -0,0 +1,9 @@
+---
+name: Substring
+show-in: [ug, dg]
+---
+
+A contiguous sequence of characters (letters) that form a part (or a whole) string of text.
+
+Example:
+"ca" is a substring of "ca", "cat" and "thecat", but not "ac".
diff --git a/docs/_ug/commands/ItemCommands.md b/docs/_ug/commands/ItemCommands.md
index 7d05c61dc75..2834cfb54a9 100644
--- a/docs/_ug/commands/ItemCommands.md
+++ b/docs/_ug/commands/ItemCommands.md
@@ -82,12 +82,12 @@ Item List Box:
**Format:** `find KEYWORD [KEYWORDS]...`
-> Finds all items in FoodRem whose names contain substrings of the KEYWORDS
+> Finds all items in FoodRem whose names contain [[ substring:substrings]] of the KEYWORDS
```info
* The notation `[KEYWORDS]...` means that we can take in multiple keywords. In this case, at least one `KEYWORD` is required.
* The `KEYWORDS` are case-insensitive. (e.g. "apples" will match "Apples").
-* The result will be items in which any of the words in `ITEM_NAME` contains a substring of the `KEYWORDS`. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
+* The result will be items in which any of the words in `ITEM_NAME` contains a [[ substring ]] of the `KEYWORDS`. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
```
```tip
From 90023a60698603aa7354dfbe438088614664c531 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 09:09:23 +0800
Subject: [PATCH 29/86] Swap find and list commands
---
docs/_ug/commands/ItemCommands.md | 48 +++++++++++++++----------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/docs/_ug/commands/ItemCommands.md b/docs/_ug/commands/ItemCommands.md
index 2834cfb54a9..6befd125f63 100644
--- a/docs/_ug/commands/ItemCommands.md
+++ b/docs/_ug/commands/ItemCommands.md
@@ -46,74 +46,74 @@ Tags: {}
---
-#### List all items: `list`
+#### Search for an item: `find`
-**Format**: `list`
+**Format:** `find KEYWORD [KEYWORDS]...`
-> List all items in FoodRem
+> Finds all items in FoodRem whose names contain [[ substring:substrings]] of the KEYWORDS
```info
-* This command is useful to view all items again after using the [Find Command](#search-for-an-item-find)
+* The notation `[KEYWORDS]...` means that we can take in multiple keywords. In this case, at least one `KEYWORD` is required.
+* The `KEYWORDS` are case-insensitive. (e.g. "apples" will match "Apples").
+* The result will be items in which any of the words in `ITEM_NAME` contains a [[ substring ]] of the `KEYWORDS`. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
+```
+
+```tip
+* You can use the [List Command](#list-all-items-list) in the next section to display all items again!
```
**Example Input:**
```text
-list
+find potato carrot cucumbers
```
**Expected Output:**
Command Output Box:
```text
-Listed all items
+1 item listed!
```
Item List Box:
```text
-1. Onions 8 kg $1 (Bought Date: 10-10-2022) (Expiry Date: 10-11-2022)
-2. Chicken 30 kg $4.20 (Bought Date: 10-10-2022) (Expiry Date: 15-10-2022)
-3. Carrots 11 kg $0.60 (Bought Date: 10-10-2022) (Expiry Date: 26-10-2022)
+1. Potato 6 kg $2.40 (Bought Date: 10-10-2022) (Expiry Date: 10-11-2022)
```
---
-#### Search for an item: `find`
+---
-**Format:** `find KEYWORD [KEYWORDS]...`
+#### List all items: `list`
-> Finds all items in FoodRem whose names contain [[ substring:substrings]] of the KEYWORDS
+**Format**: `list`
-```info
-* The notation `[KEYWORDS]...` means that we can take in multiple keywords. In this case, at least one `KEYWORD` is required.
-* The `KEYWORDS` are case-insensitive. (e.g. "apples" will match "Apples").
-* The result will be items in which any of the words in `ITEM_NAME` contains a [[ substring ]] of the `KEYWORDS`. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
-```
+> List all items in FoodRem
-```tip
-* You can use the [List Command](#list-all-items-list) to display all items again!
+```info
+* This command is useful to view all items again after using the [Find Command](#search-for-an-item-find)
```
**Example Input:**
```text
-find potato carrot cucumbers
+list
```
**Expected Output:**
Command Output Box:
```text
-1 item listed!
+Listed all items
```
Item List Box:
```text
-1. Potato 6 kg $2.40 (Bought Date: 10-10-2022) (Expiry Date: 10-11-2022)
+1. Onions 8 kg $1 (Bought Date: 10-10-2022) (Expiry Date: 10-11-2022)
+2. Chicken 30 kg $4.20 (Bought Date: 10-10-2022) (Expiry Date: 15-10-2022)
+3. Carrots 11 kg $0.60 (Bought Date: 10-10-2022) (Expiry Date: 26-10-2022)
```
----
-
#### Sort all items by an attribute: `sort`
**Format:** `sort [n/] [qty/] [u/] [bgt/] [exp/] [p/] [r/]`
From 15d8f0801bad2c37a3e2e468fe6ae94b55add804 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 09:09:55 +0800
Subject: [PATCH 30/86] Add punctuation
---
docs/_ug/commands/ItemCommands.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_ug/commands/ItemCommands.md b/docs/_ug/commands/ItemCommands.md
index 6befd125f63..b7c49eba1b6 100644
--- a/docs/_ug/commands/ItemCommands.md
+++ b/docs/_ug/commands/ItemCommands.md
@@ -91,7 +91,7 @@ Item List Box:
> List all items in FoodRem
```info
-* This command is useful to view all items again after using the [Find Command](#search-for-an-item-find)
+* This command is useful to view all items again after using the [Find Command](#search-for-an-item-find).
```
**Example Input:**
From 76fca6312558973fa08900707e4360fb04403b95 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 09:29:04 +0800
Subject: [PATCH 31/86] Reword find command
Also add TODO.
---
docs/_ug/commands/ItemCommands.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/_ug/commands/ItemCommands.md b/docs/_ug/commands/ItemCommands.md
index b7c49eba1b6..37fe9a7cea9 100644
--- a/docs/_ug/commands/ItemCommands.md
+++ b/docs/_ug/commands/ItemCommands.md
@@ -52,10 +52,11 @@ Tags: {}
> Finds all items in FoodRem whose names contain [[ substring:substrings]] of the KEYWORDS
+
```info
* The notation `[KEYWORDS]...` means that we can take in multiple keywords. In this case, at least one `KEYWORD` is required.
* The `KEYWORDS` are case-insensitive. (e.g. "apples" will match "Apples").
-* The result will be items in which any of the words in `ITEM_NAME` contains a [[ substring ]] of the `KEYWORDS`. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
+* The result will be items where each of the `KEYWORDS` are present in the `ITEM_NAME` as a [[ substring ]]. (e.g. "c e" will match "Carrot Cake", "cereal", "Cold Escargo" and "eclairs")
```
```tip
From 4329d7d4278bdeca686cfdb5f29cbf061c75de03 Mon Sep 17 00:00:00 2001
From: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
Date: Sun, 6 Nov 2022 11:23:50 +0800
Subject: [PATCH 32/86] Create include to style command formats
---
docs/_includes/command-format.md | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 docs/_includes/command-format.md
diff --git a/docs/_includes/command-format.md b/docs/_includes/command-format.md
new file mode 100644
index 00000000000..2d478886e48
--- /dev/null
+++ b/docs/_includes/command-format.md
@@ -0,0 +1,26 @@
+
+
+
t0`!m*$1Ku$v=Axab1^xcBX1TRO_EN?vwx-qjA+&DrM% ziNLNiK?-EhjJu&7ajLHMqq|ji&a*@+eo~^xuidUf_fesObwy*NYp4F2VdFAqdCCso9ac0n+-rvM`9r`YR+&tvh C+m7u!>sWn!{WiBAI_HQC|mZw`+2!Q5)bH)B=L!yZ%}^e635UiKoQahKoURR zo)3M!&i`WS-mbrd+sZEkAJ?@iFY!eGMdS7zbz4xZUjo2;+|z2VjEGq9_b3te%-Pw{ z^iX>_T;&^RJe2bhoszTJV5^plf)Uqgejng$wd@2v4PVb@v)h^v?(N*sx>t!yM3EVp zQD>OSMHc!))YM=QWE(3b%U=w%{4-}vu--@RMi$|qh-}PE _7XfJ+3(j?a^@l^B+d4vAxGbY|7_c5K>=!y*u>#ZY=h&RIQE@y%7h zx~d?Ig|eX}=Wf2aX?WDTc`U7-_r7jqp4S16d3N6$ddmyE#iNr#5Z>>-j~5+~qVZim zH@wEX>_3>=9_~rc6(xJ7Sm21TR3~N_6R#VR^*{rnEC_p#cAMc-P#~FQ3@fG5yN %SkY?Pmr% zL%;j2k!uc_5+H&{kfV~>ek+cpYdO25u4KIfK;-AFj| ^V^ITFGKYp1pI_X+k|EZF-W+>nbRD_}Guz*J z%@kUOJ9{Jn`$?i~a;1AI+HkL5#HVJyd~g;4>L2!89GB*k@H`B$TK)WHk1u)N=6wfh zgNvtGz;-gbJD6ctShCp8HSKIQwp>(s{crB(7tL7N#SZhl-Lh;Z#rF-LPzN;0`ofm# z?l;6<4zkW0fA}u!(z5))N<3GAr>mcIyZtZ^k4Wa~HDq;j62sgt5`$0z4U|Mz4VoK5 zptrr$lk(yI^KWkAZh(9yZouo3`|u{|W=i3!I-$Y*9FS|kN~$a!#EVvV<*?PzUrq#q zV7v~BtOox2XcXMO-&g2=f9G7=#df(TbKW%Di$Ns){0=rjzwLgA(61T%7S!eBUfX$3 z;J4-*WmdoJ;yn=OF7z3(eAt(S6^T|0ijedqKkvpM!c}?^#Nt(y_tEPw-S>DEP7#*} zX$DqpWn)1e$&rzfb%@BI#iTSXubICf%w_ewH#W>8jx55ZmtoM#1!`%!5is<^>eJb~ z;P_P78%{0&g$4d9DSOI&pAzpIGw?O!;y1#?{O2Dc_JM}iQ@wFqOtq8yl^8_gfB$%p z(4XWGbWKIDUt_`V7?!79n{P#|_Q^pDw)tMMqOaaJ)tvGi@-nrzPHc)r%5oQ a0>S@G+|wQ=)315^(jBTZ*mw7g^dv5A?oL0;wil|9+guos=5 z7C=W}S(pAg4^-o=SB1dC@#FoFb5}rXD31s-83Jxj9nzON8WO ^g^j{owuI;Gu zG9m(if95Lt#K`(-`(EL{8NFV8+c9y1D(^^O0oMZOLbDMziIOr^*Uh=e&7jNo0g<~U zlom4u@5t{#F9OAhfCdMS+So+fy69%Mx>`rr7D$?lXZ8EuE%47OXdZtAJaV3@eu)}9 zI(Ui08nMI7=2kfK;YS?Z?P~_#`n)}_=}&X634m3Z=VP{Id>q_(*%^w Xup=d87>K}w)#}+%sV|Qk;tK(Lv OfPC5Cb89&m+502P-8hd~2^XHxKXZl`Kns~f 5Kf}$)!cQLA~)F*A}c9V7N!QcMT9FLGLU8~I&evBPdp^SSoB@3A7 zkND+-np}AgOJ7jOhjStjQr_rUEqy{p?@qTpcz_bmxw>6MldlDTYKvni00=i-a)X}x zAl`Wv#gnn4OTw94ZW>+rCZn;M)T3H0xkKtFV~7Z^V|z42*O}N!MOr%G1=v^ w!_mDe#{jBVny{#uJBYkhK)ADNo*y?{AUS5jfio8)%sgX1=^km=-!Lol>d z+*;&IX{v^6uMH>C`pE|7jciQf48kgkjst53Zhr(oM7J`4^(z-zkvs7EPKwO2x(>Uu zZ}zA-+hft!vg!&bT_yP{^LXSj^rCfC@)xSZDc>`0O>PD7gQs~;2f_;QukP?#qTcjv zCux--pyC5AJy3#PJI6f?<#G9kCf^*I&KOt(ee~dCAGbL>nzo|zrIC7oNw~SMlJK`7 z9ydQq@2**Gmlb_Yaa|^2Ct=SYUxoX)r5QQylY?7zAO{kgNoq6qL|t0J`VxeOy|$sm z=QpMle!W^3zfLDTh8d&6brBGytIt~tU5$Nx5Pqu>*359(?P5tc5yecJ?jHqa(Iz!% z>$k91b4~Dp;kj%e0ovqOwLJguH_Jwg4`kne!E^3_Bl2@96-Xt(6S|aLkOCNZF1#2y z?XSy5)c%ck0lpyGhcEWc@{U-KW!-0MXn >DLFDH{a#G;}T%2(EIg zAE0=X$i=+Qn4ZywJPzH(UI7Bwu|TkW-d=eK (X$kfV{!zPGfl;fdC_1LpwV zh*Yq8@8fALFBT6kC|=DW@?CD5dBPu@lOtu*qHEU)8|fCv1Lz9&hwto`q(JLZ#%gv# zRP;Qy-X)e$JjNIZzbrSWJL2N=uoU38f D8E7+g#grBrOgy z@ACz}$b}6ZV53_fFOMq_Bc|_cOyN6{Aex=OL+)zu)cps@*fK_TDL?3|II2Z{v^rg= zw%es{J24!}7i_oK=hcEKH3T+jyURyDf3W!~DUz=+4AW3kG9m@FTy`hY?-ZY0BY&Hj z!z*dp7WnJps9W-EJ*PkIi3qi {YiQ*`*^8U|y8zC_xuT@y!&WM{u7?lX z*WYj@|FHEzH*>u$Kf8vI@w|MPlD@ZwRh(;V-A*}&P=+T;-x=j9aK-1%(X;NXW%SR} z1+%1#?fcKtT)q%~&O|kHU -^`dw)c1>-Roz2kPp!OEef#AG^slKvdE?6A zX+Z!U?NkAw_|Xq*Hwmuyypd$4c^)2&6fg>WN?D{l@UwE3-NAA%@B*PFMl^*kjaVx3 z5|AeFeW$do6k#s?Sq<>MJm`(GhLFbes=HHsc1KWX4!-fv1K8M;g$L0`kgNE5@WDg! z>JnAN$sM~U3EeZ@TjUY7#a9RjLw3yr)T=QC-$WI`Lo7T2h`=~D_py>(9_c-*7y%jN zUC;TD4rRgQ)duu3mcHD?P(Nvb6gY_hAU$v|-ue@Nnv+Q^L3}Z-%|NxiRB>{2U_n`^ zMW0Q=r`+q2#z6_fd$GuP2-E$&M^)RbreuzvTJ6&-=HuKp`Cf{8cT&BKgRDbd@09d> z%wsP^SNdZ!eS1Q}^KOCmyU&iTUfc}WWBKraZ(?a&N3; QONp4gBBVb!5CqhA-euG6N#CD&i)FzRzoPw83M!t$ z|A9w=E@yTXD`xJrH`9x-j^km|xa@$^(=P-m(RZ+hu?z2B;X#DjPWo3ryCBq`?azdo zu4GWc9=0wT#R`mF_~#wH07J-VP`1mUMd=a^(EWFvJArnk{^f6=$0yono4!_f+JEoF zkrN`D&s)p5<339S{HdzG-(mEX(UV1G2&3l~3;A|dfSoZ6-n-pai#7sU@O99 DSI= H^=m#uam#V?aZzs_qgAI|F!p@n!~^Y9I)Y+H$e6-?w;K*>7a~zt?VGM z3tOJ!X&fhU5m^1_pnvIF@LVk*Z&|^jFTa)LxG=z*O(tw*;7i`{CEf28Lv1hDV{F+? z-&MX%DaadreUq>>_iGLur~q=y(v5_!RhS2FC*oB@X5x^3Wwj%_YDz<)$vU!00`a4( z{1x)BNGwX1zO9>@|DAta{~C6oi`2J5Hw9)jg8GGbf$C6!=PQfM)mj4xe8EZL;Oo@< z;mssQ`74jhH`^bj=0;6LCuN{6(nh`A{)6LSFk1b&wR~a&M=6|QpmQac5>Rmvbt!QL z3mG>wFlKfqFI+Qmu1x^!-^%#lW>WzMr7@-`r9#HM<)aAGE#~Z$pDW9UX&k?Pdvljh zka^ssm|Z_Qb}F`1TKM!CPxK+>hlOYMvbXYhn@2adkP LRPp>~v?w_{N^u`OF^bz$fdNB3Q$~b3~*|k_x zt_WFR!3SyGk6J|NvFzR`2$-t**zSLc+?%qwa1@avJLgO%&&d!1;wn^5%Q$}@cXHcy zzA1Cr`hw9ne*6Tvmj0}eBG+Xi`aD9dc2XwjJ9;3`!D)A#p+i&H-A=Ym`cv295jB6u zxSCW3+a^iXC9S~o39>Nb?XXQ$)B)es3hzVt?{_#xj)90qbK|707t!+O+BT#Xm{TX} zoFe00qH5W^8b+T+N<4nACS5&N)}B6BcsZ5tzPshB2?S9AWP01WaG<9^ceqY^J}_G$ z95dzoEG|W8N(y)v|88$1sR%jXXaJ=TjRpF~p8!v&DLBQybPU=48no!`H9Kq^l_lC$ zn}fa4qW2i|-KG^R&C&F3I|I7p6z00#E%$P^;e{(nt|8-lyQ0}i1K7XV(|YWGd6)_Q zk@F%bJLBhhVi7iaGK9rwC>S3moA3MUEbO`-GusBS-I!UsH7epNV0c5_Ng%pbH;ioE z^rbc3m(9mo_u175e s_s`~F8}d79@|<^~#UpAovxbK(SO}g>siIqs zqK&=PW~@wf%y$Y;Dw_(o+a4F4w_~{## z**Zd2zeCi&AWkYkJaLI6?4zwFe84U%<;yrVC&d(^$H_mypI1CQBVh8J!1NF3(kq9n zfi=*@TLGjGF?Xka2+=D*;IMn&DnzkOG !qsvur6Yyq!1?gH{1W@nxweMyHjjn0mimk(W?a&|T7@3$1J`83hzdVFHn zNT!7$ap_!C>V}9#_iPz~BmUjn#Y%&l!<-z%*Gz(|`H)KxGI&N!-S*fTN_Jm!wmPMT z>ijHg--ne<;2A(QlFCFaG4xRdB)?`*NAVW=bQ+N5g>4MQgAz?=7Y$G&iKUyJ8G(pv zl{C3KG)P))THTVR&C~s}I?_(?dH9A%a6(E=b)-r5EWzs6>etnLUTsGc6BnSH$u0Uj zFhof#X+O~eIGAYo8TKjh?4>94M)(m{p8*A2a3)G072sseP_O^})ld%=;fx3Z9NETx znd?DZ^Qj}=G Mi`$9~ z&P1vV<$ouVJmc#)L{`^5e8`D>0q*t#26V@M5TtkS8ga)`pdhNzCBvSn8v*_jTGhHY ze~UwrJDcn88+MaV9dq<}ihNpg{0^t`vo{ly$g85bOS>TRfOCB*ts6P2$DKbJ?4-<| zUqpS^jOwTERYaj6`g&lvY5U4HP*BrcIP-zz9T`w@Tbb|OqV2uy^?U;$5JD2%p3f#M zx~kQvdG~OJsl{Xe9mjv&qf-N9SKit9^(|vgDuLFyZfsCp(}-*wPgj```20nOqI+Jz zVY2wR@S&NGOvLJre{bJq*AZ;uOT~V6tD1B;R_QXTP3A#jCpz6B$q8~f#v5UCWhtIH zi6gxy(l*A^$>q{E9Vwwux{#c-U@{1DA&;2D5pOX%E#Bh&Qzws6^;7<%bM;E%svd?y zf#)fzD@*om?0{whXs|ftl!Eis C zirCFNogfM$^DzH2z3diG9#f7xYaqtdXA{J3rR4)t`rv@i%F?_{iG%1CcO+ia&7>s2 zFW=>Bt7umU+{M0)N|x?s^}QNTy{#|Zuv-Y_rBwLgE1&%6R;- CxuEm=7d=t?RyF=~I3%Fdsf%>2#azSGky9#F`5Vw#=3E80M jsK3G?81Jz14nARjelH{cSy=4jAM%eWja(i-M4?No!$7xf3rX6vBGlG z`oym_jrs2De(i6%+5~Y^k_8kzPpl*r91g1h%G_#MrD}*K6IBM;e0Se+MVH(SW7i5N zH=tu-e=dDix>*)iTM?uyLoDLGWRobpt`bf?>nZ_}$%Ro>_5^p0F9t(-o97ItUm%Ia z5~X4dbH4GU;pz_}0huu7s$VA@RynRM$tsO-?RamNF3Il12yhX m3U%JUE1Ie+zB1Fp@!zc#=pM^Q*Nl*MQdlYmQReE4*a=e>N@}7?a7n{ zGJ6q?sC_9fRvu;NQy65U&D%;zDFcI1ZO9q$jKu!kKJ_(xZ>R54Tb&vd{5L6~gZ$j? zs|Cvhx~kGO=27}-+2DWw7r@)x=o=`l&EOJw3|CV1@=F1wl6RDae?g1p0U9Y1wVLB1 zl0ZitN13Uf2hvO>K!DKK_FT}2OdJt?a5pFZk%Ys;8&9-lnalchzs;b1T7l1J;8Rqa z6LjR@VO<53x=PTA{HFQp<4d`UmW8`lN!1z~FvXPzVDsf`Kih%)JRSIynOxDhlQ81v zPuPt`uCnr%`GoMpKL?AyTzFcm`Hn8Pp9)HqWj@_^h25ocZEYjJ`^%@S5fU0-5Ou-N zFU98TH(B;JHNYoVsN!xU`1RQvz$L>L)+hF@-R2QCA8=9e&3F``_`2>Ik=eInbk(|- zVu1q`Kcvf5KT5RFR^ehGrqmDnMZ6DF>_6Z|pML46RMDcvgV>D;rxgNz%@`nTV7j2o zjNZpleDfTY?*G)^s1F~1?BvR}O@>ybtBOSr#;l00da6 kt4qK8{wkB5LVow#RUz2hr;}$ q7>=ESHWg z q%c)(-jX-1tI`3@h4 z zA}g=>2ZBNuM<7?UWYrua4W92tWLi^iDPMiHz^<~jl=u~Q#p=G(fT{TxI_&%II|^qq zRQ(n16!04^h#DR`bdYZWQQ05~154m9I%r|9sc#KEt 0yw92f5t)%=k4;5`=g>F zhLy0P%oThpG2(U|oBUea!>Er#yT&s^9+eQ(`eMbbEpQmN1>KC(J^uv#3|(`+ZVS7^ zA~0bL#A0Xu1vpM38p!i|QX@26Xw!yzEqmJ!VfuURiLiAQ_Q>_CC%d *jl_}6wZCuc(VTxy4~ zWX-MUZv)@OE;l1W76P_J$~DQW?lBxO2LA^X%M(i6JTqCIL>PM9iIKUz-?3l4U-kn8 zUceNm$ MJOqMn+!wC2qGy@{`{;k+-1e&@}1v~|nU0eRW=B!C8 zXl+0;(j)duw*o*95gsPNir}iosh(UnqQxzFZ>1NW&$}MmaLkqBpdIVhklJw5?~hvx zgk4tAM5Z@r8&^XQVSx^=tNHHi0AoQYBzYwPkR?Zb&OD3l3Lh~0(jiC}46(X?A|6a0 zpww}FvjM#rpscv1{QL~ZB6I9gOzIJ`>mTAI0qce9>OXnGS=*M Ef0K_Tqs0HF0oRRY7c)1g(&It|S;j=M(i^75)3RQ@SNZzkNyiX<5Yt)9 zSj~25kNn?mz|L8ZE4cLrL7^!IX1OCY-Rf>=(yIPd_Ov7bz>=>){Rn#pmS05_DJ7=6 z`s28z7UXfagvjs^fLj?!iNS|aOPaE~J}zpvfQ`wUAz2u|S hysj{rn=@lFS` z1Zwf1Eifwy(b0D&84kVpt<_2i-oHc7znls_0}sgorLOLD-FQU?5K8o(wpsQy0sjYk zcNrE{^!E#2K%`5gQxFg->1LEv8bLxzKt#Hw8R>567%7qN?w0QEZWuZy_8I^8Ip@01 zn{z#{o>zxgT+D2C%-(D7S?l-xtnI`<&8JNf5)~zEiX=P|&D}(kh*P(A8OZ3r;>E%F zlJ*U|{CkG8_d7&f2mR#p({V@LD-zjjs2k~aI$I0Xb^1{WLF)iX&y#lau>_g6N!Pth zw -dGJoLKJ|bKUT^KZ(8l_6A5)Iec3h=&e%>VtJsw4c zZTx5*);k*rtjeI<32K{WvGaPC1-e!yTU;rQ (?3(Ew_ES1>BP12=$5k&K9?t$i1Tb1DM(nAdb6l^F+^BxN@5DWRL+QK0A z4A4wNP6>KSo_dAykiBPh3!c`?@o8s|boXeE{>E6mDqOT#)n0^)M<9qw-Wqs4US4eT z+7BU`n4nMQR~5$~@?IjlXLMs%PXc=vKX(OF@PO~RZWv%^;5X})>!x>TiT1gC&Dv>* zJ_IN+)#s@%(vh;_X2BLPI(Jw6(e-ZAA8o;pTx2=*vVln@P=Zvh&^AMM*NW>RG@dFP zp*%USZRMOqL7=NL+=ld3C@s=^z^R~fTI!O59S7(HMD N=mQ}*G~$~PQ#=R?tZWf=vkrU% zVk{ST)gM@!)52V<89m0~dzlo;k1C15QhBW-YV|m%VHn3O67C0>oReMxQux^z1=Lot zhG(mXZP(*zXZbr;Si>i2PLBf(W9j0T?`p_tC_hvdhIkLlpE%RDl!hALt(t_;?W_)+ zd|!Tk)ybhoVc`D!JlDjXhPZuq*bmAj1&^;T3db#ctkl_kv&XZ7y4%D`Y;|F1`l^{c z-}lB$c2w9%wl!jZz?HJQ$tCd3Yu$2}Bho(FD4HVEkp)Dzl<%X_%8gpWh0V_&n`C2R zZITrSbmb=_Ad#gLQvEO1apK-@f@f1Lf-=upoLAEy@G=ChHgBl^V68I{JHI>%*< XwnS{nu!bGY}qaC!AV}-(3QZZ+Rv|)Qp?$(?Cs?ChOW6&=g^O$2K zo-$}IOJ%rq-kZ$KXyb5f%FZXT!fkUjI^?ZvIBKa{nPsj%3s%A{&UH@M9&a!;k)>_5 zJ1`ump9_zf=>1E5eEl=V1pIaW!3$h^Nh6?XbCd%E@43M7=e80BP{Px%s6uX1#sU~n ze{SXWQ0c8sD2hBPE}@Q=C9Lm#&|lUsJh=jY>Y*bheo@#DS{xMCxd^CX%M4^7oj7Nv z)uH#8j%#>0w;)MDRbg(P_Xk3a;SNn~zR(<6V=aCf`l~G4x`lIL{S Dy0ihzZr`RLbtmyZ z_Mqij1qbPsG#oU1E;W23PH%1ZGlP_ZJ-+4QB8|FM!^MonoZR7Ob>dGk`WLW` v4w0a|v`EA4u_^$ixy!b?j ziqxtL?sa`gg@hM?HYR8LHU(O=ZVrdagQ*<&paBeU#thh8`{CQPl%1~wH}^9pzSTKI zWg^QSw}uS@-+#0?B{6jB6Bx@F;FWj68N6Sf%{2p`q~iH-?Xf KuwTioADBY<0}(HIACo^P-zS^)t4&mnm#;zI26_V!k|3-`T8~ zeI6p}_~tvgYLXCqBG_c{pn%BC(e&cDdTcPP<7(=f=%}>b=&m0%{^&ZJQ|h!pf|b)x z@8wM?;($iAN2(?fy$7Nv%9ZL6IluYc>L~cGuQB?j6{B2Z>bVJl`p!C O%FCBc6jRBr7o&H{5pVva2Ur*3UD zg!4d01z+3MGS 2)#r18KeK~p^uvjGx$vpawR zw%q$z#bBBN?xpDRcr)yAxh@hlus~5BZuXODvPJR~e>j9FOeI8rt1l}3$H{eM#??6{ zy0_ANKG5*Y7}FSQk(z=&bSw(voZoSQ(tU&Lz4z)Ks`Ra=T%g?a)!pusr!422bAQ>y zk-Q{rlQBz>@>B%z*r(x8or#MjBJb-91~53jWlBGDsxN78OxPuZa4G%K+JPfxr1O?D z>z2cTS6bUtAj5{@*nx;+ZAi&S3?npreQ$1malt-S-|t;Ej~fZ>ENaf{Is%B0w(hr? zZf0h6YVy{Ananf$R}I%S8g -Mo%=8hGU}J-UppF$?$u{tHFcQlR zjh2U@IQ os}yQG2`b+*4*u@KDSUo@8m)YtTK^bc1sXg znD8nkJv|tH?r>yVAA&d9%y`@k_+B_}rQ0>Ve>e=M-hvPO^0EC^`MvFis*fRB6n}A- z*U6w4jp}HSGf;A9DkxTqT2M&IT{X96TAvcd6nPoK1z}XQv|OzM^nZdZYSvyiCLaz` z2MvA{9p8D2vt~UOV8LA`%AxqP&Iv(Hi0-jq?F$!6 Huwm a+@}L0z33<+4{j{p-6~)^?4( ze|~bDOyM=Wv;UZl?s%e?^_723w&%P(2rFf;i!5cqQE2t0=1XU?=u6Dy?_Dv!MtUu< z92oB`VQaeZ#f~#2sM3Hp=t{zyhS*mR8UcwZXpNj)9K3$ql6953m(?qjCOB-uKxDHY zo1cEZ_x`c5W06i$6-ccJ@f|r $)Ee~Fa63|=g@8s#BC HE;nI{Ss} z-e;c(vlk2Y%xeM%X983ITY7oIDT(}*PQtJM_NN)CUw@WBUJ>ezX|%onEz~@g4@AjD zgGtIi(Mfp+wxIiVpkIa{r*2~s9=1{ExGEuokg{*a4pCkGswc-P>s`1+uCUGBYpOX1 z?~3UD+~v}X{q%kTZ `0#s4=aWT9p(i7rpmh3TM0Q#Itrwv%FTXux>EzqGTuH3z)wJ_gYkf!2#Qj>z ;awGivp zgRjAR&%=}h-6;PL>rM;!zgu@yTW2*>stHT8j+$h?0+}qduG im<2lwc?mk@IT_il+Hn#%@n}zOZ9_|Ci%JN-ak|l9IhVH<6;NN5$g49n`ip zQ*R7m0 #FF+s%{_6;ZNc>w`HV4W4`naUxTD^xf-xqu(ODCHA#v z=X@!;^kKr!&r4OSw=h08!w-|4s(uj#7d>mQg5j>NI`<|fhbTGlc#UPzZ9wLXLWs(T zr+@Gj{cgz4kF#~ cymVvf&43=B2|=53YykU3ou~OTP{(;Te8^KN4m0Z&M5LuoFHQ z)usKvfBOIFm`)rfs7VA-EZLCtU5XOiqqS*D4G-;6+%r+PL=f8_dvi!!PfxkiY=0A# z|4rVejgV+riDh8eHBD I?NZEYhogjy0w&lgimLAFIe0l&2x;oUmdD6+A z;!F7R=C`j7X3JE9* =+sIwi7ZPUFWuV=4-SDR5ZFM+eM-FD$>KA! zb=~tA-+ct$n~(pl?8_LUaMq?>V Hso&!7WT1s#stA9jk S~GTpr<5-y@mrFc5+xu7!z{3EZKjhMw_S}eb5WXP7>W}dBw z%icQ_cNv^hMADTEAc#j2{DGca8tRD0>ro%!9LV_{kK}iRx~OMvV+mSCWL)S^fF@q) zB1^V`d+;*ypYB$8zc)45&afda=eFUcBfR1r;cezWR@xR61G(wfC)w-bn7dDUgDkB( zw7UCq#0P r{*R69+Un?E?%I9?_2y?Ai!r@gd@>+&0ZRe8O_clWh* zcQ>+ZUE6dr?@FCV@;A#-K-7@0DGJh3=dSIoXA>h~J)xAg%CzR50iJ~%f)~^xt0svD z^Z#qHy#Kk_fA}aKSeS-3wRGe3e{EjPe{G)kDk5gBb1)%RZ-;$gAw7e`vB+^y4oz>` znP}Y8h-vsGb+Z`zbLX{bCb|zQ;MU?B<~B^IqxBd3#-Ii*II}8ll>g+q4(_);ZV!V1 zgKKbC|Jr$t4L4u#Wbnu9_CxR{-XZlNIf3KHt(c1K`H4I9Vzh!ZaH!@8=#YW8{F&U% zbEe+>-8Jl3>D*reJs(Fvo9yxS`}&8*jMNTk8E}mDt%8a8SC~>|g*rdUM!G)YG;37u z=Wm%%uq`ldEG;U1MDdu1VC+n4FgLitTjP?*JJ*4*bAY&N(l7b%a#G (#nFB}2@{u@cGh)G6%@=~g0?zRctc+U! zMdcRqBcWPlhGLPtLw|OeSaiJKDN)$T<}xd7qr6DxdLb4nHR!>014;q_F{6L}Ke HX2$t9pJ>I`NDRFK6OYsd6cb z){L8-jSot5<)%SF7`+{6-%)vcQ*+g4{G6pFcM6Y-fMjmJG*Pt$^({3AUI!~U3ur(# zhgNZr-?*x37m@~k?3V@}ihVQUUtseGCBz!HPYw9S)3R0%2T__zr}OBsSB9v4d6$|Z zzy0fqqPisU)d{XD-?#&{iG2E#F0` bU*xhdR#Z&4 z^qzw8QGA9ZpW!X&ig=GFOd#hJOc2%tjF5auc^z+sG{-;qaLL0EK4(!%kdVaU_mmC2 z^Tjcpq7_qY9wXgBkD{y+g4FEyD&v0)3{XT0CDn(#mxcduTkl62@divJyCMl6QLkGe zOaE;>9^^l7c$>SYIa{x{_MS)6p7 0ePcsEDQ EUAR>%QS<_F9UjjUN~B$<6&;$}RFlDLG) z3?fE`^(&Qw6|y#xhOThe7)|=~pL^kc bH94DPL-ao*X*x-18-(B%HxVg{W$=|9Fw-I-8v@P|&L~ z%^_pqhs*Lu@z8MuVUa5!L+rGy`)&qde?|7sj66aL|4%cL>py1X*wX(tBUe7qoy!Pj z@!&2O6_)x @kvf5smcJV(*tmKM`&D~5#@?a%JM>$0tQ2d8o(FRk z*Cn1~;dY%B uNRm`)?fXN$#Dqr2$k$M>!2W!pWw23oL=oK0iI*yf9nCxz7D9h`(5&C8f| z^?x$oG=fL^`C7fbo|d#s^jD?mU84H3euhUV@o##ID1wxN<_h0!js%fshAzVN$`2!K z7V+Zh&nrPC*+Io_Cnm%~y(4?mvqbs#j+Q3cFcKO+BW*J98zz{FbOP;*&1pG}1_KSt z)9Go>@u8wkwfXc%R(%z5n*UKI1(E6N&%5b3wc)vA(|7iSSwb0I1>uU$A-{M3;iOi` zx4(KIz3J$AqQTUna>+T9FGa7<0MBRQjF3QHUf?ys#^mnb#Bis_it!& C7 8Fb-w-yAkl47dt#T%-DkD z?8)D(M*wuaz*k$h3wvNHw7zS-6EMpEKou(@Ej*r`zOH2eUrz>raaK%whn^j*5X2t` zKG%$=D^Mojv*EA SN&QE^@CKMQmEPx$O8ahR}Y@L`aleYUk zJUs4(&y)h+)KkF7d%3>uNs-<{A7n1*;U&KB=XWU nuO#rXZFqWDA6Epp# zJ|Rr#m=G%%NrX?2%2n;mI*duWg`j#}c}kiVi#C>ye8iPwL~FxQs|JIXzb~Db{9T82 zbrXSTzoy&XRAksN^foynpF~DEV%HsEkYL^DdyUj~Z7$1C#_7G!QJRw)myNT!Jw}Z+ z31s-(EPQ26{P|PAy;f=7G=i%uoTKdJ$;t}SF;=YZk1% 00116<>Mqm=t%AnX=7RsuyBhhz`cwN-RlHF {?sF4Q~bT zr(_hWfhZbbZUgrTxs;)RjUWmmY<{yPE>vb>! ?A2f?@$^>e@vKgpn*kQCYQ2Sjog8$ zqCtmn@&AAy ^hs9v2 z{RUP%_6#>pfn~ZUYakKt$C(_Z6{fnDEc@`;dg&PY>C_Y0)*7nLPjfS-v6vDMwxH{R zUWIJA2j9>B79klR5TiRLo;n>?seWG}M^i)m{u!=f^*iy=>2Cn4n;y^WxKe?dZ-s>} zut!vNs@zy)|5rd)eLKR|7M?K*+-J*lvw~J%3`@>sY@qr=?G{N`i7$c`IhjwJZ&xdp zPMbr@QKW%GpPohCoC%#l>db|3 3$Wb@EB-AJOuOR_6Op`9xoNBiQNCx z?7|hvPUs5-6wKs9GAH)p6zGG<2D8WJd6^~))Xp4mAD}PBlgf_MBY*0t7tI-iedfUc z!n~~2>oz#5Qh*}K=zFTegJnUG6s7SNAGO(%Wq)Q@cZ?Jh){YPCh9I{;GS1h>^A?v4 z@=#FGb>U$n2Rwn9(@+<5zya58f{h=D8;TiPfHIn3sA`Cl6bZK&F0>bAvtuwFA;n%~ zo6YqT>^#MI_^GMNT|sWHOGOyt(7b8f-Zu5Q+4mVM%K$~{?n7xui zgJZr(rcdlAuL7O#zKIEnHrQj0KrSAGP3N@r#zh*xIHg41fgfRoECJr)2V((~z2t_^ zt_mzbM9ZC*IP>*)JKtFceKtT>>|tvSnaK*APD6M1$p~~fhHp> z%;Qd9xDV n^a6v{SycTsM3B4%?D0Txd zUT+TE(FAy7{O#iV`yN#)BIe$j{-hftFVk&NRN?|ElU=Q#u+N4_;i2m0Cck{MvmWY^ zYNn+>U-lR5{kU4V@2()2cInGBZ`C4C7SL>2$8rQ$0_F^ep#hzXBBH=2k(&lHvSxfO z(j<#4M|lxC@YS_9{JlzM{1%bqm3m--C3mw$Z9b6cv75SaHKj&jGV#U# sV`LR6Rz)n;^nDMhnm}5TC(X<&aT1v2Y^-&$1up6{ zyx-%EArl9qkbq_n+2Vw64DF9y%CK8dDbMu0+>-|OPI;J;q(pY>?W%S8=-YAFB?M?8 zZC`bZrU8{*=4#}M0S|NSxJXotRDSQMy!}-C`zh+Zd`Y%u49EN83i(nTE@h3oX_@8i z!BPpIA$(%-U9x*yF_N>5gLCbxjeXR`ZmUj1T$x+_F=yV++kZz5zc0wach>_5trqOh zT5pnWAodaW5_jr*C?96ZI}{SBvP)W8SILuWS&e8G2d7TGD*mi${aICbC__G)61B@B zY#9Q{j2*~Tue1D1v{@o&81^iKE0SO-WQl96;P{mYe%JSv@6Gc(TOAGh&ZP~8&Ab5W zD1NL1p3vB(Y|d`F-M#K{g2TQ|E0hYC`4?lH2K%I=92jjbB>^eeaCN2(1f0EH@aY(V zvj~VFdAe=3z(Sa#KidADq;Afco*VR?;bvNwSCVhu3LeD|ZtE=BE#3dRn{kiYXwPQ2 zDrMmv_9ZEp<|jSTuURsS;S1J@Li#H0J???N>w%VSo&|{YuF*jI--pZtD6eJqe$2Y; zpl2pYb(wn619`vaRu (oSmt*Yx7}Znt;2qrmW+w)sh=U7T4X0J|TnpJ|EY{oO)aKW5EUXT2yk>bprM zD@!Do7p`3>Fx;;3%NB%NHG!lSSCqVwCn@||Xa(}0$0rcAb*z@h6~J}`4I=*T=)fU8 zPkoLbXzcdA5Au`eiw&5NC|s@buM;qEx5Z$23NG 1SCP=~2@`>s+s{%?@{WE@Ec z*t_<5iw<;*u7B)Xu!IB9e*s+bG(2kWh{8ir1eMF&y+au-y&D|?g!rvq*MtCkuhwL~ z!XyYli3jMH_iiaB!Bkzm{q!vDPrqLsKEGTDzohD@^m$p&pVyHwd G~>kakuYi~h4f9_sA*?pG0!MuhqYy!LL_m1wm(Mww@ups)pB5YGT zGi&l_?-Ge6#&8rEFS6`%8HHNi#90b+zA@32(o!N~m4@ueRuazcAEs`1HroWSyGjIT z9QqyA49qmt-euZ;pWd<8oz~u%876Ftuk6- zDCr}YaA{gFu2B>1_~Y?(%v4X9nB9rndmO*PAM>Y_dZd%;b$v{V;#8Vm+uT)bgT0fE zACAh1rc{LuMK*d!yWJcGt(y*h6FH;$)s|UrryvOB<29eT6+Zlq^kA7P-Nj=-KJv{d zO!)N?C}B8L=c#9Jis>lL>$M+@&i!0!%b@#vNPk8k2QiI(U`F6lgr}1f{}_|bh$ftm z%`xmIB<4#ST-dasz2~)a$@Y-c)VpZ9iVpO@m1ldDPg<&c<}LbCyLjiNsBe>!>v8e$ zbs1Y?8uq@|j%3TPG>yO$0!3MWi!`3|h`k;?T{k{acr1khhxnofZ2PXJpw+hZy)&E4 zm1vFU;$6P56H=l1&ln4km z)lSlO{8) Cpi!qwctDXlT#Zczc~KM*T@VrE< GhKna)Li+(jH}a?rP76_sA=Z> zc8o|Wq5Y3`0}qiGfZh_ojvrg2!j72zb2KV`#<@gJPxtT#nvuvbg7kx4^_fQPNlf=5 zlaYRX9wV2F7$O(hgcy1CS8?ZlAO1vJ$T_rU*jSh;%504V6mZIah=OKqseM_bwCPwC z&PYOd?0|A&PAGOM{jeFc%P|lWxr_|^K-6;vgX#R}lRe$MQYh|dO&**<#U~tj7Uhh^ zY0;8Xf~Gz?PE1iRK1rrmQYm+^rnbuydr6^^F64;C(8Wu;6H|rytPs!7Ty cN28`Y(p1(7<}?V6TzOpOvna1kH1aEojLxcX z@hi-+^>*B>ROV>4^G81{Xww8N4++J#*U^10)cbgL`MKc-_-s+azhoHL%UKdYMu0lo z%-qZ?Np$~|D H{(OwK=FK=-k=sSoZ5%O`h@5aL<6Ael)DE1F3&L5 zz5@vBaOpj^ z!_`)W00Z!itDnf_{s5i#7)_SmKOEN(iqw4 z{rp({E_HEp1lR{>{=)*&0^-%T;xc9I@Y#`66hxeIdN9XT;)Vk2*C@_=PBCfyx3ZQ_ zC7YV rIdT-b%Q_M9<(og()Z9wOv z*SGnK0$QW`A$JB4($J(+T*SVU|B(RWyb7JT+xPjbZOiFqOg!>I&1y0oo1Lj){@t{n z(+vX&tXr>Po^}Z;B5%8?LeBuf4(1CmAt5d`07{XdQahPdNR7(>G5a&<;Be*8U0MP4 z8a74d^O!3%?L=T~OPzNu&?Y<}$aYp+W`4gqdV4B>NOC{R9gaiE?$~~{J&>^Nfb4ty zi&?N(E=q#H+-8<`mVlUGTt`J7|M9O&lPkc&7Pu5q{%yNBUE8Tg<%r|M9epRi=}6lp zwY?q?w7X5jI?#*ZZJJRBnc2KEc8(I16RMHyd5KMTKTe lL0zoH16wdCTRf^E`6fH?+V+-=;BtQh5=061iDi z-b8&--PF9_g=e67Jcat=cl!l$oaTOXeq;>bVqF+H06vH9r}ulo&1w{*Zu+*B`Aeq7 zrOQGWyYaSDH&X>0Zku6jgX#2H3zeT1@AmY^@kZOnSG |8+*`FGS=*QX zSasod&_MUW5JG*l 7L8WP-VGk( zBjD>O@5Cm-Ipj0`RB4#h#>w}hv(yhZfb_nQSX wHaT|=`(Z!U=~s}jRuFB-VDGi1tCf{4g{|I? zD|z^0O^){VQ(uhNz@v&i5G-*k#-5ohS#Z+yeLCk*EOVK A?x8_XlDp*onRcI3!K&5d>*_eGgiV_bw6A^_HMPIa% v^I@sx5*h>c&3({90z zpC?s*48Peo5Gq1_^WoYQ(THgdU58Die9G8dlh#*+=6Tq+-IL=Z%$BbX_+vlClrpJo zcPu|vURNXXT3m5HlXP;h%TII{54`}>+pGI)^cR>CoP!T*EKfx{zKI@TU`zQ++=aAO zoEnP=3@xso2-T(4xNOnW;%)d~_pNv9{; U6yR@H#&u1j*)+OWRcGm&5qfa2-e(Rlib)DeVr7o*bYWI9AL*Jf@V zepseUgPe^Y3zX){qHcgT*xBAqHw0?zYpNd>U(X*4ppIrh`N^6+=w~NHv`)!O&Sy2} z4f~qt9weMSH(&ZBDg(E6;B5;VbYXTmOQL&hm$NCC<0WJ!Y(wZ z3oSx$8emuHHoF2@!`QmiStRYyo^mJePgSr);gGV1sx|H0eDjg1^CCxd-?$z9#tJK4 zwQQ_G{04su)eLi6A@=@k8yM85@F9tswe7duLx}`XT~L~FZ|TwT3uxrBEk8Rxh?d-V zjGDYr*MqC=!KxS&3FbQ^y^U}NpQ5BbLpRjZ+5nTk?(Xxbf$eMs05j8y5Ao2k8KRhA?zLz?p?$>f3jN#0S9GGyH@>m8bEo~ zh2m+{1jA<7`a3rOA+yZwj?v2{RjO@6bq8`gm9W`aVj!aU+KgI+HI>q52h(l4{r6^M z_>x<@kK~FX5)@Jw2Z;G@!K*=i14!5@51c~zgFq6P&@9DgDQfG*hFq%DkkB+h%HIE( znL_Q5$;T- H3?vIgO>;@O#gdXU1ejh ra8cFWjr^SJr&q{LW9Y_*7Jf=Pq%fx~)k6 9Yo0aI~Yh*r2M;zlJWpOf9|RNcbhMG z5IoDs4|f0`HzXD*V_e=eSakZ%#-wFuc4>K5-+pIQY)e_f0KxKr+lPNRz!iFEwTw#G z5o{2MeUHWBmwGF~{jf&MA50g8#kRE~Eg`U(1ah8vfY{TE0uFGu{dpXHJWHVnV#UhQ z3Vr#gi6Qb;A2 JlcF3O=%M1eQXgs}nYC+OlMeKIm3zg-w zu $NeGBP##i<(_7I5D-RV29uk6)6{o5VmP`~Ppx5}3hgV{av z!I-IKchP!z=`7MYgwFF1s_cAa6gB^jF%RsEeFu|&eF&ZFmB##3d)TtoB`WpN#8H`y zMD=>Rm45yMP^wjzu6V1zl}cJFmnf&myhOVqEdR4p>aZLF@|b+l*cr0(4nVoYE~s+i z5>6(<9=*&=$6gDbeI{DZ#3K>=uG%VQsP;L&a!<0cN27JL9NxiLm+K%3BTU? XVZ)!+X?(XpwK8nhs~w{`m_` z s>j{CjSvQ8#l`!rob7UD$T0pD@n;V@lySpgYZDmWK&AWc zsc)1Z0@W0#b6Vfoe$WK<+y(KAat;}PI_8R&%K)}iG{kRC7^;+!fqs=qPpJbu&KmdB z`*%kSjoW4}?v-*8i%+#z$Af=Nb8RaP`w9q7@kF=x9snI`k0ZfdGaWa?cgt{~k2QTD zl}%~{BI+ExWU=P6yu48DpnV7|pZC-4m9>3+6lrJ79FMwhc^%8(@G4LYrJ1!`--q}Z z f?J&ke?c=Q zdr&E@+T{?``pfoi2FhIAohOaPJ}FQ>j~#U{P;8#~pQa$GEfnX*t^J{B$?R6rv^;0i zpw|v4Jy{+blhiSaswS|6QLIz9pbE_gMpAg`)Ygd{EFiAm*L(hri@AB)*Pqm#>f*=h zRK)yTV&ZPQd+O)sjl;L8WS9yR#>t9wO+oL7>Za8102JQYFay<^F$lS#`TH>+&x8}d z$-ctHtv{O1N2o%hVS`ZQj?n}CGh!^DX8E*J=RkPPo1YMOCG34Z&vpZSG4S=G--+u} z-Lq)HPMQquZ@B}cm;1WlN!W}WMS~@S&og5RMec7re(;fd_cHOL g>R)}xYY zRX^aZ61E-Uo>D( H##q8h=8eMV~H=v$R6A3*ma1yPKuc3l EL5r )8 z`wfl|`D^SffwNWDt5P|#)89`U0Gk1hPCHD4LtNS24A#|&u7c3o$E09CUWxj1iLUq0 zF4-~9rDu8Eq@J1>M7_ep*{)2Z6aVglVnE_JSz$LvN17X*Bmvi8!Fw|gu}KRMfNvIe z;rrr2G?Az?08$07lo-nN85OmYIz+B8$GmBD#bg5~1xjszx+s5d`M*`HHl=<_wb6^y zGhmyYr_^f8eFggDO _oHsI xl-}X~>Uu&{C`bI< z+MC+!Jx`_DK@T1@jU24^i63*U>J6lPLY;`O)EJc=n2uB%73$v}mT`c;p)RX%`6mH2 zDYZ&cWZj)5m`>OCt}gM9i72J%*@5hl4f|aYc?&U8VgkxGUozny1|J%r2~aVp=2Vu~ zuHMF`aOJy7IoVV|{G_V-vvn|={85=TDQ~ZI99 3hP>2jycGyy|l*Pt7*T=BP@D;mpY3K0z6C+8!$E&Wrab2$rsb@#c ztw3c*oAv6pZ`DkymrE>3U*aKfOLl OG^D=mT{`q}-{P5`e0W=% zVAZ$?frV*9cW&m-|78K}`H~(x0_QP_a|E@ Tib5j%LXKfKqB5O{|mHn35z4mz@ zqog`Z5!)L>JgrP_EA5dO$K{N}XKv6_FZ#BK=-38;KKQDa0-(lgCtLnu?Hf|6H`a9N zNN M@vB_py$)@@YpeqO1xv6@@I|db&(z|H6%oFs`lfjUl=s#KQzG1JHiI zGkKDAx9EGw(DrsaiIkf>v@@@7zr1B~umN)iE1p@H)+5LIVu13)JqfQt!10hJ>-p75 zb1n_v9h%!j`7el~om)$g1p1Z^g>q8r6;6DllylUGKOHE;W?{_iIYZ0y&^4ZMPlbn> zZR38NZL?$X3zY;jc7{)ZT19p3)IPr_7H&1}Tu{H+iEgQwP6JOkFf~8@YQHsFb8K-j z6Kn~il=xQBd{s5H+@)I?e!~%c!PB_v04qHa`|W9B pk@7jx^^Nq@m0rUl8_Q~>D0IjA6tfF=p z7-)5pTon8uZ$mwJMU&9ZRR7cn%a_#>5(l8>G^p~f-rzj`v)-MY)`QHEfWoQQD(J7f z85-D~E-AO~%#5J^if;zS_oAX*EP?a^4#6JHG>^+Y9OZMi8<4rNOGSY(2A#UgFJ}E* z^(T4nlNqk^4Vi9;e!Op=1+gn$L!v;N%tsBST84RJ#7i7)V_cp%<;hGyt$fz0>G 6#h+2E}z?})!CgF+{m1YOYy7LAks5W&O6Oemevds zAVsbE9QFO+v#-}depa35vc>Io0?^rZVBEkzDnS~O1LmqXr5vY0@%So<#aE2#**KM^ z=z~W@9xLktHhxt6o{_Y}`20kQ?;F+UD>$T{Kk`m14P^trmUAEGi7YC%0jP_QNG*Il zeg>QTz>t }2;z+PII? zR1+mr UEe0U$<=IST8=Mb z&36# ?)oj4_fkG4(GtErq;XfxGy6 zlag=f#hk9lxUM+>(CR#V-yiP`&?&HAqQQ~nJJdo7FFP M7eB%%m!O|^20}8 z7~TUFv2O4tvHtQpIdE$4xHqLzLB+|q2c7r_upx;n{W)5&?Y2Z$c!ea1>o$O2Q$PsZ z1+9I=J9*9`W;@4rDU}p+7&k{J_T5Ft;L~h!?@fXfLC#b~X`*MUYYWqrbsmpvI2mbp zFGIJ!4LDUtTdmvTM9oo-FBN(51uWRFzZ~EY9M90dlge}NDInHhwx>G(>7fo=d`#9s z=W)HbBMrltl0#X(0aT_2bzOtQ`O{u8-}Szz2)3CZtC)-#WN;%L=gx`huM`8!_-_c7 zd3q#CHg`Q<*~M+w4!B<9nR`2%jNlf)A?-gHJY*5N*gMy@-+GD%q%;*3bOTH~AED7w zM{}_nM3Nn_QIQy8Q?33mbnO2VqSf%_rsN0IMVFwM-n&xwSx90iS*@b;V2&6+woG(W)C_>e~R$n;rus0J>@ z;#j~U+lH9%>HX L==<@;a-{?~Yo%~apix&&+E>snuY9mFeSy 4Ih |=#K zv>2SkV&$?lXqW?4(Yvi2@b0jl-R51G(-1kuB*qhiBjjBHsImF1sUN}6cHIG*t^8O_ zMn^&35*{~4{s~A(s^y+dVG$@824j9L+kFRuxIArJyYN54Z$Y&rhJ56hVg32$p{Xa3 z2wrc#KFOWj1cqD34B3a<&ymBalBA*PSuZ ^l3^&LDWQJ_6_pPJQd7>Qou{pohCyT20Q%>G+HlwC{xAtHjB`$bBThhmt1kgC+Z zR*g@?e)$ov&}1ErfHf+`Ld!2PwLu{t1`l$Ks+r*(y+(_#4c47L|D>{W?Qj4)%I0ZA zl`bTXdwxo7{P6V-k4Kuv%|E(T<48BhUL?nU-c+#>5jD`BILRl6;P6QGjRoC+^Yy>q zjg`KsA|uyNWbZyIt1sjHs$*1`xMWpq-{kB#(Tl3h+4{PE{J8&ugQuNyWCP8@D7+J^ za+*&9MwW2~&Z=J@LL0@Z(LYu+pPZ;9SHw KlNsj?$YfIXwL42Oe%81-vRK*hIKNr~nRK~-ZTMJurgo2Z-f1nEZ~rXf z%D&&%;`jcfHhNdzYOCi^NRWJ_J4r|`IL4L*#67;3bq-qZekJhY`zjS4j-1ltmocG~ zqgO@OAbsh*C^8%x^qck|7Urv?oW--a9O8ojbY$|uShpshsspo;JDN_@b%%=1+(50( z2YF(xK?aDa(?%y3ouu9q9h-}5%aZ@W-dl!674>hUbVzqecc*}WjC2d4NXn2REe#Sw zw+x-qB^^q~(2bOIcT4xgJ3i0(Unjnu>pIu@^nRS#YxZ8V)?UB<-8VaKP^I|DYVZ|f zf^4FHYa<7$Vo#=bd3SQz%yk}B0#`Hq&8}4(e4i}B?sT85JxP0y1?}{Z=J?YMcM~Gj zSVy9Qi cWoojFjoZ;&$|PG|Liok*u9V8Q{WZ^Sq`*+yVCk;@cQw-^9jow z@wA4i6ZJ(r$d_?Bq*5!fi*cR80WyUCxuz{Ad-no`T75+G3=gIR23>;KkMJh<(f;xL zaRzS~@M`DeF}L$@NX1+|?j{8wJ97B9yq=qOS8><0U(!~`Fa#NAF}Q _^R?<-p`rP-ZtjO& v6_fii; za9F;y*ZS6`H=t@JheI98(Ffmur&ul`UCFIV_V^C46HI&ANx8F1wzKKUAiI|5kKJ ~uy24k;Ix4oziH-c?7+~Meq=5pR9_Dee^-55j)&}T6C^ROxfEWSf&@IS zrEaAT7OoxHV`%+*$+ndqgT*!x`!opoia&78+~=yh&WoD>Dr`SX4vE*U*w_Qsq7E;2 zTE eNTG8E5TE#0VhK0v*eDDr9S zvrMrgi}AB*POTFPnI_|4`21IIC-29~h>Iw5k8ce?PP{O(hq7sepChu8)23V1zx(EB zcIG3PF8^f1G9e(jO6qfgXx(nCwfNsCH4^R1%Gg<*5hDz}&yk(M)Oorq7Ng_c6|@h; z%tU??_H&A(PvVf ${=EPZ0 z$<2rPpO2$=zVbnm71b77%I54?)_CNZYy$%IYV_%!j)Wi#^F(UCdFL(h9Sp!*F;k6k zR?_ZI{F@b)YeECE7A@=f&xsE4nr)2u?27%=<$)pnx23Lndmz*#r3FGkgqwHXUFD2$ zK}D*NaNUCXSjzLDD>RrDRyV}@9I#@;rtp@? z@%q6%ZaX)4+nCpyVyqNp7;7Q8{{n*R6fAvGtIz;v(C bw`W|d zET5(?ZtBvX;@W6Q_gr1D3AD#28@BTSoA&02wqV`h$t6l+0L!B<=JKuV49U*VKgH@# zPdf8vvKGGHPpKby9j J=e7gP7s|7Uu8*` zWm?>n1o5`ljg!QiXx%Y(OpF1^kAV=nU@(?Ru_Wf z-BBsznRdzH#w`x@_A~YG51E`0EDpm+F0}l9mJb$S=#rJW0snAklu>@MY~BZ(TF* zwLBkD0T!_u5F&e5jrs286*5ScX<7_h8R!;i7jT8$%#q1Ey3kV-4Y&Z1o)9oe3{H&z zetlq9E39Kv*R{OVFbTmX`e1N9KIlDieKyF@UvVSn#CO#5YJ1*Px(nH9AdU&2@y<7| zbmZVU&0bI`nxO9IY=o>JOybVN$%2H0 NnaZ`J<(HFt4MtpB7I(rGVv`mUmRY29GF(`%(wR=DHst!tf;7RU2CX@Zqx8oN@CT z2IPf&sfWwuM>JcqM+h>?mdN?=dD{a*$8@?$14f-UrKeQt yM#!byyfY)ALbSK5E%0@23#b+vq_u zCkRrG7Xkx+xZgg^<~gu0A n}=K$)91KrqF;@gG}rGFT-T z_k{USmlDukfS3TmlLBhvqP`ThFFX0-yiu244>Kabp>Od2M(sMx|8T%F!S=gRaN{7RE Hf;5Cg?m>IeyHVaY&=^bdmpxS(IKE31;(!-EYaJitUERnjK zkjCDsKH|QAJpX!$@nMPwR<}J6?b;op b@CfZXEKbI0$Z|H2BRQd)H|osnp186O(G# zlVklbT8f8|HN`!*LCi{xNlWkXtAW5S2%~Zhfqp?B7;yo^2#9+0ZSTPUOT7}=7c%TO zdL03PGt7dMsi)P5$i_~aMw>XB4|E<^mL%7*!}%TjM(bz>K2klmn$w)NQG1>GnEQ5a zkwbVc2$`%}ksU^_ZimM&?|jC&+zja&(MA@QH_Wd*Oal0z*&TO@GKnTc`i$D?lHIF> z9p|V5+Ga*02wxY2bYP7s5s`!uvUZ@jOY#nhn>BP(CoagX3+_?DAcsvfi9rRhJ(j|n zQPp==XLKD^>Q&Ee!|hL`1MmyisN|~+s#gL+UI2COBSYyD0F5cv)*{&cZ|;A(*mSf= zUF?D)nOm&NnJt7fle2I|kbSDobja`_R=|^W3=-reT_Ywb5xARXx95=Gb498x2 zld=@n)~mzfe*_4)G4_tl4Kmod#Agt^JNVY0)R5~vxWysen0x8T>_n1WrS>5nWv%$y zdS!jg1&IEt1ominFZe^_bY2Xu&dxTHn;f93iIx#y6@I=YI+AN ~Jf78U}-LhkW?&kOkD(UT1l}D-!2e;vUe>xK0Y4C?6D}Tfzkpz=SM@7fCA4 zNvJ@QBhZYi?!Z{~xx@Dic6WhH!M&X6UB2L8c8b$?zw3V~?1t xWQ1;4gY zD}nWkT4miVnrtbKww?sKjv%CD^1O#GwlmvhAG9U%pNpOkf_EI}Y(%;BwGd%J6~vcq zmBWzl31;?1b(ICKnW$xe84m|+9C;tk4$_TC#dq44ozOZIh;-Gc8DUj?7_5Ie@fyxZk(^067Z z@PZd?_{N4i)RK&R%4Lw1tHg7%_Z!1Tm)V%Rkm(;g09~dsk7=qvxwb@x#MU~9-RnHU zFO{W|Y)0AAPLrtGg~pp-c1)TC|Ca2(-b6Wy>)m-) K{B&@4p$44`I$tr-$UAtqH_Gq z10BngqAl%JpKdRI)d)W_h+X`uhOQC;Lw6%!;dzXNvIk~^rJYGG{PfQHhSs|&b(mYv z+=-Sk_YaBuuZ0a?U&JrGY$nTzbDYjJ=g0ms=jH#$5hVxzL#rxK=;>C&pk5aE^uTUm ziaR1sA1UsL?4 )HaY^QOd zpof%IC9Y3psk%=B#i;E{K$1}{S%|^6yx+@IAoWxM)N#n+C%Ba*l2Iq)jI%TTy2@pH zHk{5g39Pwx0R}batojaZx$;#{RQAp|#syUbX5n!*23{A*C|Jcy0;-9Np-G%6)e8Xu z>;b4bzb-yylU?Zj{lHtr<~(AwaeCm*XR-G6$+5fs$*FBSi#h^F%3|SRxowN1)^}(2 z390PDok=TWVwlBydgH=`_}07WGQ5QMGB-~8al?4dkM{wRM_f}M=Qlz;mmLvROn9_h zb3O-?gYjc^ONu+J^dPL^4>f`?zp4V1ewDXzL=-RI+@DgJ 9D2i!cXSjkJ1X}41&cx zoxRhxaH-4BlD3cYeLOVxMwiiEGjr^?nUi;adyQFj4Pb6SF#5(?K3hLPMNI4|u h~+vzwFyQc?7t6F)#m+1w8vM7;N_K;2k|k{nsnPP{dy;8O_)4 zzY7Hu$q2dv`j;Jk7wS?SjJd-Nv59P|`xPS1==e%6seY>#eY>kXw_Gam5M;sB&QQh5 zD0Ja|KEt 4y*}~c|r6*F;r |>i}N|pT62HvFK zmNMr!A*u}K%9XTa?9ciqWPLP`?^v#{Q*&+fU6M1niLf2 _6;s#zIVRzZq)|pHJ|O(5+m5sXE{rx zb a~ROKWRbb3Z+*>8hkTG!%najtfIPZGZsM+|KogS~gg9op4k!b_~+**|I&@ z2Df$JtqU?rZs!~of~A&Rct3nW1G3hrJSazaB%^1{dFhf=F+v{49oaiw*|m8suA=~_ zh~g ;mmm13;Vv}h^ zk+9_>zSTt|*ieXYB76!Q23Yeuj96#cY;>IW+~4vP50KcCks)s;s3{v}-Nam)5Jb3= zxb}XN*s}CQbT9r$E5`LJfb6Ckk3{@M+7{ {9XQEWIZeP zZ;oajN=s@W*V#gyLOyH<1UhhBqrNkC==F9R%W}fM)qaO?lildtw~UirO1ns56UN;t zeFhUs#|ig4k_pyWHV;*$(G=XhZ6c lR75^Qzfc4qYEK_V2d&iiyPax`^SpZj* z W)o}Uz=whNaL)yEm6guOiaWp~PE%}^fKB%_e7`C5p7{6~ zUuUk*t*u0qC~x00y$l+2XeAlRRy~?1pN=!u-S5lT2fR)*51a{W>&nTzTq~LU+^Qn$)~WoLa#y zf5sa6NA&R*Nzuz2a a{_kbCMBD~6CHx26 zAGSFcA8zbhZ!VJW8zBgK8^RCo+3u^90k;CEC{sB8srvydYG)m1_rEfL3JsiJKd7uF z_M9>n0X;QB0-mQTohU;lb6AGeCmw3DN7L$J~)WvR3FZU&pnKgK8y9hX7CP--GA~C$Hg=t3W%{}7%=OXFvQ50 z yPl# zU5lr76>RbA9pztcZ(VYrMXzJoGnVqN8s&8LXy^?4fmO`TR>~r+W)Qx^h=<#GJ%y`X zvEC&ZcoHJ3$2_7sa-s7>q)>z%We_D$#NStnc#%}znuBGn=`7A^?)&1x?X`}piVMk? z-zP8Qj7!&gW=1tG@;d@xkC@3}ulGQykaPEPCK_7qXua}WjV|jh<<~Qbqe0LP(ZBRw z8>rY@#7@!@)HWs8!}d!!;gHr-!Cy`F895{=G%4KHIo!+jaG(ebcmVF2R(H}b!PuZi z(b)s-K{~S|ElA|8nRy23Fe*z((7)hYJs6h^GMehTeqoD4d(9~evhw=L_BN8wnDjmb zLrs*eo=>i|A3cxgOIt8z|HL(`N*A$Z?LG9t0cyj&Xn{#C`pIQ9+>0IFWMr!}&tROl z0K71xHv@3ORuBW{iNGxY4NU18L}IHOp$QODQ1r9CWW=$y$IJj8{CQ2fN-vr!<)1kG zsGmW<_+2O$8by rUBmbAE}jvd4@C7 zFs#>0$eF3qg8*UEbyUDBY810XGnCtYOIx-{8j*_^i5Q~(+r 4kAFPbY2QWgKiSpU?5w%08u+ PM**3Q4$NC3EGyiZB(pup#j2l> z%02p2N>T0XC< ?mn$Xqyf}L!7p^1_B{lwE~1IGtB#s>Aw+^6+B z %z47* hK z@6WqQ3Fy|xZNi(?;SoL73w((91}m!wGaQV${$wNv1rkL<(!Etr_72oTg%Kt=@H~c$ zt;BE$8gJh&mP@mBdCz-{==v>E6IzCAqacJKKb2m80*0)>e-)B6{? zDi*T%AEOasdHDBgy{uyYRD5)H!d|tsLvkJP9T0eDz zK{r;4Vy~Gj8NWkkYV~cFe35y`_;p$+V&!jF4bP?2G>tb|H+LE~VBWB_%5R{9+bM^q zHF@85Ax{K>995zco3uwK!3!g2A)vF`L(~r;d?fuOE^p@RB!S%?XNw996-6C3=2un! zGv+VCx(-q0bzoeRv94oe#1USR65Z05vpf-DK9ZDdJix9YntMnozHatE_e7pdK2X@j z{)EvoPT5gJeke*)bA~y2cnJyy*T(r~JUN=)g&>b`vNF@m1a#ukhIIgpf6>D=ye)Xl zIE13CMjS;f)NRNDKn^%wuLS*sH*9XJgnOGOGl^<(I%L{dQ>_yflMHPOf+5x}(Eg^2 z Au(8QI04?Ncz zLk5vzOs0SFfkgILLN4!F6?FM++DQP%jF#9fJ1W|905ioud Dv~_>oFvW1cpEyeus)MFz3+ zz&QZ`);tVC67pyR6L=g|3x8UU>H3J;9Ru zlLPC=4JD+Y2hef4d=^R`1iJL-{`EGsh9%uN=YWLRwpw1!u!x93`6?}y--&&PioBcv znB}_&Y!bXoI?b&;R@_lsNV=)1-L#iP{P|<9sCpN(g+f;jrhEI!N_R*=SmW9gH85e| zV~`cIu3 KKhqEYTJmM~SCdU?Ii@+Cyd57rkf_xi(Aq}o((J6W=D zGY}aFLwG%0RPQxA8OLX3S})9O-N^T;6+^!tIgi(65N3Hh54q)eAFP7DhCJialONI| zN{auOdHRmMfV)Q>i(UN}wBlThpN+RubNwg#`NW_o;wN-bGFWxzBJBojw_FLb_9Xel zrE&>Hj|+VWSs@`zc?GC5aLoaQS?A~_fPCN-gn@#KaM8`7tFwX=@Rs>;p56P!ADPMp z7eC{fj+PmsIoMwev7olIcunDkU1oHO@Cm(dVTE8SD|L#;KS!k`;Yqd$6`0YN9SR(} z6co`VCZAyNCSX$uR0@5zOM^7gOZ|o}IeVD?Ke=MB2;aJ?dBy`FQM 8#@+ULUd6%t;?;E 52s8`H70U&V2qVa(jZ~Um>kwpUU zTnS>ZE;H(#g71}sN0IfkL 9J@tBD64ix^R#hI4mKIHBq zMN%b5k+Z~3k4(n09(fD!co})@d!0)tUbxj0D@7C&(;~dUhi;+UtlRqO%55 ?TtaG2^8J4>Bwipe)1kn*X;i(E9)Pi2v&X{r|BZC;|6O zA6-bgrTWNwj$Ok#S91!~G^fUc@riZw`?Z6ktAa`~x!)9!q#e?6iXet@heCu{MuF5c zl=0)OJ0vv8_^oV6@*yaV#!ywV{(!pHzO&|(2oeZj6u1$KSr7H8%MVNs?bZ$+DVKrA zvX2PGuv?C}iGTrgCLGF @xp^k3Y`G^jsE$?2pcsq@1d(5EQao=_4&_K3i1v3TzmpLq~EUVy%1FpV4t}`(HCl zE6V5Ln6Q6}NA@M6*r71zQ*&8GsN#?ZRrKLcA7nDVCSYPCM-Mw8#tmZml9Db*`|%3> z2Wn`jMP58T3$qSJHL0j-p?v_#i@ LW_gwwXzn!cx3%o PDFf1(jTS z2^nl`s`5e@JVMrw|J3^BJsH8<_heCT%xkB{FvS1!i)OJ@q^1BEBCKGnQp|ezQOZ+h zg&DZ+XjH+>NV`xn-j(%uT~HYzULRje7`e)nPfgJCouhaYg%~Y!SyB__7L7QcoxBiL zNK3sJl?g+v$t4}-`(X&hR~a3u V5tH%6*%bP>V}V+fHZHq$U4 zTV2|?@4w>r#0f2HGZ5BJYVFUiri;X$zqDl@cYHozCW;tcN%W@JD^|0Wbe)z*&N8-J z00;%IClLR9DIU!Hg7IOr#J5nFjJ>)Hi&L#LmY!S~XGcxPg`Mk{4yv)Ht|Wi&dttkz zp72*{BiFA4QzQnM**?KzFcL`0+Hu-sCM*mTo(%$bEmHyK%;q_2`iaSdxoPaX-&}?i zRjs*q)6{7}WCpoEz8Hn88N#~?LwyG7*tkb?hu-9X^u#sgyU1~m4Agg(kkIUuy|n+H zmMjDB>O&4&W#a||NV03z?<-!I6XQma)S{Cx4!Ss)YbUde*S-(I!(@7sNyQ{TRX}5d z&-u0M(__xWwFp9sp&n^ri2%TWIO6T_VYT;6h6pZav 8h3wC<>PgwvL6$3T(Z zE7oIR63tbLFr}z0X1Mhe=Q8Mf-WEPZFi;O>Y#$;Q9 wzXeq{1GhSs)t|Ly>B1Ntpu?O2CM6R zpb)u)zN1#7L@h $AT z$BICiU-CcRTiMZiyD{fovMQa2M6ygK*bSe*5JY-ZROaWd>AT<+p$s!gFkn}84p3si z%xH+v<=Sv4;&R@ZUtlvtIvXm6yAKx6N3R5}S=Hk&* xB=%Gc2;5PtsQZ!W@jXVQo3uuB&*p4&O%wl9?AI)V1 z`asLVhaOcJ-NQ(>c0)}6 T?j0 U1UhVUEk_XM0(et$X(Z@t2v0`8>?4sKcnLbN)Jp4$ hs%~ z2 );^mf!e zFCZMg0=qIz08C%M7fa?&B)_rC0S%=}dZO8=`x)h&I1l;LmosJ-(4T=81#C5$jddx4 zW3YS&laj@7u97N=V||4C{3|@56%`?m1AtEtM|IC)j|82ol*VSjKD4B l`d zexjjaeP8 ^UM{2W8g>YL5`Kf; xNRU0%j95kDjz<+w~5t9*ghq z?FrL)zShTyL(gly;elhp`oZzlM1(KOs6-X(V?QTa-?2?U2{9Up$hBE4%YHrkFTlpw z^}hw)z1Y8b{ZIDpAstr8B7Ep}Uc?MEHyPd^P{7fkW%j%0^9yOila)TFI`8w*z!W9) z&$O@W22McfYf&WQ!9@zlm|gH9VVlTbI&x|v&b&`iqxBdxlth8Dd31#AJ(ztxVR$C1 zXwcc-?>2@@4`US5_uX4cZ_6)$oM0~UG(Id8mKRpcsMu&0U7&(^M!6w2G<&QooTxj- zOFxAuyMjQnz)(@x7-$3yBlI$LS36xU{J`S*lnnd_XBY9;NlVhVFIa6$jO*d~wN^0R z8R8