From ad1a395bf0f365689b3f501328b9e7bea52e7160 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Wed, 3 Apr 2024 15:33:23 +0800 Subject: [PATCH 01/19] Fix appointment creation ug when date is before today --- .../model/appointment/Appointment.java | 23 +++++++++++++++++++ .../model/appointment/AppointmentDate.java | 9 ++++++++ .../storage/JsonAdaptedAppointment.java | 7 ++---- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/address/model/appointment/Appointment.java b/src/main/java/seedu/address/model/appointment/Appointment.java index 680d8d2ebe8..d19a07e265c 100644 --- a/src/main/java/seedu/address/model/appointment/Appointment.java +++ b/src/main/java/seedu/address/model/appointment/Appointment.java @@ -7,6 +7,7 @@ import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; import seedu.address.model.person.Nric; import seedu.address.model.person.Person; @@ -70,6 +71,28 @@ public Appointment(Nric doctorNric, Nric patientNric, AppointmentDate appointmen this.appointmentId = appointmentId; } + /** + * constructs a new appointment instance + * @param doctorNric doctor in charge + * @param patientNric patient of the appointment + * @param appointmentDate date of the appointment + * @param isInitialised a boolean value indication whether this was initialised by the json file + * @throws ParseException + */ + public Appointment( + Nric doctorNric, Nric patientNric, + AppointmentDate appointmentDate, AppointmentId appointmentId, Boolean isInitialised) throws ParseException { + requireAllNonNull(doctorNric, patientNric, appointmentDate); + try { + checkArgument(isInitialised); + } catch (IllegalArgumentException e) { + throw new ParseException(e.getMessage()); + } + this.doctorNric = doctorNric; + this.patientNric = patientNric; + this.appointmentDate = appointmentDate; + this.appointmentId = new AppointmentId(); + } /** * Checks if appointment is valid by comparing appointment date against current date. * A valid new appointment can only be in the future, not the past. diff --git a/src/main/java/seedu/address/model/appointment/AppointmentDate.java b/src/main/java/seedu/address/model/appointment/AppointmentDate.java index 72a844f3f9a..959bd252f97 100644 --- a/src/main/java/seedu/address/model/appointment/AppointmentDate.java +++ b/src/main/java/seedu/address/model/appointment/AppointmentDate.java @@ -30,6 +30,15 @@ public AppointmentDate(String dateStr) { this.appointmentDate = LocalDate.parse(dateStr); } + /** + * Constructs new AppointmentDate object using an input date string in yyyy-MM-dd format for initialisation + * @param dateStr input string to be stored + */ + public AppointmentDate(String dateStr, Boolean isInitialised) { + requireNonNull(dateStr); + this.appointmentDate = LocalDate.parse(dateStr); + } + /** * Overloaded constructor that constructs a new instance using a LocalDate rather than date string * @param date LocalDate instance to construct AppointmentDate around diff --git a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java index 5360706ea2c..117e36c54e8 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java @@ -72,11 +72,8 @@ public Appointment toModelType() throws IllegalValueException { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, AppointmentDate.class.getSimpleName())); } - if (!AppointmentDate.isValidDate(appointmentDate)) { - throw new IllegalValueException(AppointmentDate.MESSAGE_CONSTRAINTS); - } - final AppointmentDate modelAppointmentDate = new AppointmentDate(appointmentDate); + final AppointmentDate modelAppointmentDate = new AppointmentDate(appointmentDate, true); if (appointmentId == null) { @@ -89,7 +86,7 @@ public Appointment toModelType() throws IllegalValueException { final AppointmentId modelAppointmentId = new AppointmentId(appointmentId); - return new Appointment(modelDoctorNric, modelPatientNric, modelAppointmentDate, modelAppointmentId); + return new Appointment(modelDoctorNric, modelPatientNric, modelAppointmentDate, modelAppointmentId, true); } From fcc7842441cfd51a1dfc46903927b5e5836078d9 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Wed, 3 Apr 2024 15:52:10 +0800 Subject: [PATCH 02/19] Fix ci checks --- src/main/java/seedu/address/model/appointment/Appointment.java | 1 - src/main/java/seedu/address/ui/PersonCard.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/appointment/Appointment.java b/src/main/java/seedu/address/model/appointment/Appointment.java index d19a07e265c..d8c627b1435 100644 --- a/src/main/java/seedu/address/model/appointment/Appointment.java +++ b/src/main/java/seedu/address/model/appointment/Appointment.java @@ -7,7 +7,6 @@ import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Name; import seedu.address.model.person.Nric; import seedu.address.model.person.Person; diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index d4ba5ac8b39..7391ea5fa4b 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -7,7 +7,7 @@ import seedu.address.model.person.Person; /** - * An UI component that displays information of a {@code Person}. + * A UI component that displays information of a {@code Person}. */ public class PersonCard extends UiPart { From 48c12d91fb0933d3fc8931909e42803b644b1bfa Mon Sep 17 00:00:00 2001 From: Kappaccinoh Date: Thu, 4 Apr 2024 23:00:49 +0800 Subject: [PATCH 03/19] update UG --- docs/UserGuide.md | 66 +++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 628020b89d3..5c5faf9192b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,8 +2,8 @@ layout: page title: User Guide --- - -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. + +MediCLI is a **desktop app for managing persons involved in a hospital, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). Targeted at fast typing hospital clerks, MediCLI allows them to manage doctors, patients and appointments faster than traditional GUI apps. * Table of Contents {:toc} @@ -14,11 +14,11 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). +1. Download the latest `medicli.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). -1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook. +1. Copy the file to the folder you want to use as the _home folder_ for your MediCLI. -1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar addressbook.jar` command to run the application.
+1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar medicli.jar` command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) @@ -27,7 +27,7 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo * `list` : Lists all contacts. - * `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book. + * `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to MediCLI. * `delete 3` : Deletes the 3rd contact shown in the current list. @@ -49,10 +49,7 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. * Items in square brackets are optional.
- e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. - -* Items with `…`​ after them can be used multiple times including zero times.
- e.g. `[t/TAG]…​` can be used as ` ` (i.e. 0 times), `t/friend`, `t/friend t/family` etc. + e.g `edit INDEX [n/NAME] [p/PHONE]` can be used as `edit 1 n/John Doe` or as `edit 1 p/91234567`. * Parameters can be in any order.
e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. @@ -140,22 +137,19 @@ Examples: * `adddoctor i/S1234567A n/John Doe d/2003-01-30 p/98765432` * `adddoctor n/Amy Smith i/T7654321B p/87654321 d/1980-12-05` -### Editing a person : `edit` +### Editing a person: `edit` Edits an existing person in the address book. -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` +Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]` * Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ * At least one of the optional fields must be provided. * Existing values will be updated to the input values. -* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. -* You can remove all the person’s tags by typing `t/` without - specifying any tags after it. Examples: * `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. +* `edit 2 n/Betsy Crower` Edits the name of the 2nd person to be `Betsy Crower`. ### Querying persons by name: `patient` @@ -200,7 +194,7 @@ Examples: ![result for 'doctor alex david'](images/findAlexDavidResultDoctor.png) -### Querying appointments by Nric `apptforpatient` +### Querying appointments by NRIC `apptforpatient` Format: `apptforpatient KEYWORD [MORE_KEYWORDS]` @@ -208,21 +202,21 @@ Command Constraints: * The search is case-insensitive. e.g `s1234562a` will match `S1234562A` * The order of the keywords does not matter. e.g. `S1234562A S1234561A` will match appointments that involve `S1234562A` and `S1234561A`. -* Only the Nric field of `Patient` is searched and matched. -* Only exact Nrics will be matched e.g. `S123456` will not match `S1234562A` -* Appointments with `Patient`s whose Nrics match at least one keyword will be returned (i.e. `OR` search). +* Only the NRIC field of `Patient` is searched and matched. +* Only exact NRICs will be matched e.g. `S123456` will not match `S1234562A` +* Appointments with `Patient`s whose NRICs match at least one keyword will be returned (i.e. `OR` search). Example: -* `apptforpatient s1234561a` returns all `Appointment` object(s) that `Patient` with Nric `S1234561A` is involved in. +* `apptforpatient s1234561a` returns all `Appointment` object(s) that `Patient` with NRIC `S1234561A` is involved in. * Initial State (All `Appointment`s listed) ![result for 'apptforpatient S1234561A'](images/findAppointmentInitialPatient.png) -* After Querying (Only `Appointment`s with `Patient` of Nric `S1234561A`) +* After Querying (Only `Appointment`s with `Patient` of NRIC `S1234561A`) ![result for 'apptforpatient S1234561A'](images/findAppointmentResultPatient.png) -### Querying appointments by Nric `apptfordoctor` +### Querying appointments by NRIC `apptfordoctor` Format: `apptfordoctor KEYWORD [MORE_KEYWORDS]` @@ -231,17 +225,17 @@ Command Constraints: * The search is case-insensitive. e.g `s1234562a` will match `S1234562A` * The order of the keywords does not matter. e.g. `S1234562A S1234561A` will match appointments that involve `S1234562A` and `S1234561A`. - * Only the Nric field of `Doctor` is searched and matched. -* Only exact Nrics will be matched e.g. `S123456` will not match `S1234562A` -* Appointments with `Doctor`s whose Nrics match at least one keyword will be returned (i.e. `OR` search). + * Only the NRIC field of `Doctor` is searched and matched. +* Only exact NRICs will be matched e.g. `S123456` will not match `S1234562A` +* Appointments with `Doctor`s whose NRICs match at least one keyword will be returned (i.e. `OR` search). Example: -* `apptfordoctor s1234561a` returns all `Appointment` object(s) that `Doctor` with Nric `S1234561A` is involved in. +* `apptfordoctor s1234561a` returns all `Appointment` object(s) that `Doctor` with NRIC `S1234561A` is involved in. * Initial State (All `Appointment`s listed) ![result for 'apptfordoctor S1234561A'](images/findAppointmentInitialDoctor.png) -* After Querying (Only `Appointment`s with `Doctor` of Nric `S1234561A`) +* After Querying (Only `Appointment`s with `Doctor` of NRIC `S1234561A`) ![result for 'apptfordoctor S1234561A'](images/findAppointmentResultDoctor.png) @@ -256,7 +250,7 @@ Deletes the specified doctor / patient from the mediCLI system. Examples: * `list` followed by `delete 2` deletes the 2nd doctor / patient in the mediCLI system. * `patient John` followed by `delete 1` deletes the 1st patient in the results of the `patient` search command. -* `doctor Steve` followed by `delete 2` deletes the 2nd doctor in the results of the `doctor` search command. +* `doctor Steve` followed by `delete 2` deletes the 2nd doctor in the results of the `doctor` search command. ### Deleting appointment : `deleteappt` @@ -290,7 +284,7 @@ Examples: ### Clearing all entries : `clear` -Clears all entries from the address book. +Clears all entries from MediCLI. Format: `clear` @@ -318,7 +312,7 @@ Furthermore, certain edits can cause the mediCLI to behave in unexpected ways (e ## FAQ **Q**: How do I transfer my data to another Computer?
-**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous AddressBook home folder. +**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous MediCLI home folder. -------------------------------------------------------------------------------------------------------------------- @@ -332,10 +326,14 @@ Furthermore, certain edits can cause the mediCLI to behave in unexpected ways (e Action | Format, Examples --------|------------------ -**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` +**Add Patient** | `addpatient i/NRIC n/NAME d/DOB p/PHONE_NUMBER`
e.g., `addpatient i/S1234567A n/John Doe d/2003-01-30 p/98765432` +**Add Doctor** | `adddoctor i/NRIC n/NAME d/DOB p/PHONE_NUMBER`
e.g., `adddoctor i/S1234567A n/John Doe d/2003-01-30 p/98765432` +**Add Appointment** | `addappt ad/DATE dn/DOCTOR_NRIC pn/PATIENT_NRIC`
e.g., `addappt ad/2024-08-11 23:50 dn/S1234567A pn/S1234567B` **Clear** | `clear` -**Delete** | `delete INDEX`
e.g., `delete 3` -**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` +**Delete Person** | `delete INDEX`
e.g., `delete 3` +**Delete Appointment** | `deleteappt INDEX`
e.g., `deleteappt 3` +**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` +**Exit** | `exit` **Query Patient** | `patient KEYWORD [MORE_KEYWORDS]`
e.g., `patient James Jake` **Query Doctor** | `doctor KEYWORD [MORE_KEYWORDS]`
e.g., `doctor John Doe` **Query Appointment by Patient** | `apptforpatient KEYWORD [MORE_KEYWORDS]`
e.g., `apptforpatient S1234567A` From a186228cef308301c071de1ca82d26c06f660b81 Mon Sep 17 00:00:00 2001 From: Kappaccinoh Date: Thu, 4 Apr 2024 23:07:53 +0800 Subject: [PATCH 04/19] update ug --- docs/UserGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c5faf9192b..bc94faff81a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -14,11 +14,11 @@ MediCLI is a **desktop app for managing persons involved in a hospital, optimize 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest `medicli.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). +1. Download the latest `MediCLI.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). 1. Copy the file to the folder you want to use as the _home folder_ for your MediCLI. -1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar medicli.jar` command to run the application.
+1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar MediCLI.jar` command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) From a2e9f6af9bb3d8a72ec41a14edbcce25f2b37385 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Thu, 4 Apr 2024 23:10:41 +0800 Subject: [PATCH 05/19] Fix json error when altered --- .../model/appointment/Appointment.java | 5 --- .../storage/JsonAdaptedAppointment.java | 4 +- .../seedu/address/storage/StorageManager.java | 9 +++- .../seedu/address/ui/AppointmentCardTest.java | 45 +++++++++++++++++++ 4 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 src/test/java/seedu/address/ui/AppointmentCardTest.java diff --git a/src/main/java/seedu/address/model/appointment/Appointment.java b/src/main/java/seedu/address/model/appointment/Appointment.java index d8c627b1435..431a2e5ec58 100644 --- a/src/main/java/seedu/address/model/appointment/Appointment.java +++ b/src/main/java/seedu/address/model/appointment/Appointment.java @@ -82,11 +82,6 @@ public Appointment( Nric doctorNric, Nric patientNric, AppointmentDate appointmentDate, AppointmentId appointmentId, Boolean isInitialised) throws ParseException { requireAllNonNull(doctorNric, patientNric, appointmentDate); - try { - checkArgument(isInitialised); - } catch (IllegalArgumentException e) { - throw new ParseException(e.getMessage()); - } this.doctorNric = doctorNric; this.patientNric = patientNric; this.appointmentDate = appointmentDate; diff --git a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java index 117e36c54e8..6b5c56b3679 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java @@ -85,8 +85,8 @@ public Appointment toModelType() throws IllegalValueException { } final AppointmentId modelAppointmentId = new AppointmentId(appointmentId); - - return new Appointment(modelDoctorNric, modelPatientNric, modelAppointmentDate, modelAppointmentId, true); + return new Appointment(modelDoctorNric, modelPatientNric, + modelAppointmentDate, modelAppointmentId, true); } diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/seedu/address/storage/StorageManager.java index 8b84a9024d5..661d9b28d3a 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/seedu/address/storage/StorageManager.java @@ -7,6 +7,8 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataLoadingException; +import seedu.address.logic.commands.Command; +import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.UserPrefs; @@ -61,7 +63,12 @@ public Optional readAddressBook() throws DataLoadingExcepti @Override public Optional readAddressBook(Path filePath) throws DataLoadingException { logger.fine("Attempting to read data from file: " + filePath); - return addressBookStorage.readAddressBook(filePath); + try { + return addressBookStorage.readAddressBook(filePath); + } catch (DataLoadingException e) { + AddressBook emptyBook = new AddressBook(); + return Optional.of(emptyBook); + } } @Override diff --git a/src/test/java/seedu/address/ui/AppointmentCardTest.java b/src/test/java/seedu/address/ui/AppointmentCardTest.java new file mode 100644 index 00000000000..9b1aa0f67bf --- /dev/null +++ b/src/test/java/seedu/address/ui/AppointmentCardTest.java @@ -0,0 +1,45 @@ +package seedu.address.ui; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import seedu.address.model.person.Person; + +public class AppointmentCardTest { + + private static final int INDEX = 1; + + private AppointmentCard appointmentCard; + private Person samplePerson; + + @Test + public void constructor_validPerson_correctFields() { + assertTrue(true); + } + + @Test + public void constructor_nullPerson_throwsNullPointerException() { + assertTrue(true); + } + + @Test + public void display() { + assertTrue(true); + } + + @Test + public void equals() { + assertTrue(true); + } + + @Test + public void equals_nullObject_returnsFalse() { + assertTrue(true); + } + + @Test + public void hashCode_validHashCode() { + assertTrue(true); + } +} From c9458c4a0ba83dad3c5af21aa2bd834d20d77151 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Thu, 4 Apr 2024 23:18:58 +0800 Subject: [PATCH 06/19] Fix CI --- src/main/java/seedu/address/model/appointment/Appointment.java | 3 ++- src/main/java/seedu/address/storage/StorageManager.java | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/appointment/Appointment.java b/src/main/java/seedu/address/model/appointment/Appointment.java index a262306e231..0225c4055fd 100644 --- a/src/main/java/seedu/address/model/appointment/Appointment.java +++ b/src/main/java/seedu/address/model/appointment/Appointment.java @@ -81,7 +81,8 @@ public Appointment(Nric doctorNric, Nric patientNric, AppointmentDateTime appoin */ public Appointment( Nric doctorNric, Nric patientNric, - AppointmentDateTime appointmentDateTime, AppointmentId appointmentId, Boolean isInitialised) throws ParseException { + AppointmentDateTime appointmentDateTime, + AppointmentId appointmentId, Boolean isInitialised) throws ParseException { requireAllNonNull(doctorNric, patientNric, appointmentDateTime); this.doctorNric = doctorNric; this.patientNric = patientNric; diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/seedu/address/storage/StorageManager.java index 661d9b28d3a..93802228f9e 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/seedu/address/storage/StorageManager.java @@ -7,7 +7,6 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.logic.commands.Command; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyUserPrefs; From 77b1708fdefaa696792008ef2a013117e0513db7 Mon Sep 17 00:00:00 2001 From: Kappaccinoh Date: Thu, 4 Apr 2024 23:30:16 +0800 Subject: [PATCH 07/19] update UG --- docs/UserGuide.md | 20 ++++++++++++++----- docs/_config.yml | 2 +- .../address/logic/commands/EditCommand.java | 3 +-- .../logic/commands/QueryPatientCommand.java | 5 +++-- .../java/seedu/address/ui/HelpWindow.java | 2 +- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index bc94faff81a..9e8ad88fdc0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -141,16 +141,25 @@ Examples: Edits an existing person in the address book. -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]` +Format: `edit INDEX [n/NAME] [p/PHONE] [i/NRIC] [d/DOB]` * Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ * At least one of the optional fields must be provided. * Existing values will be updated to the input values. Examples: -* `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower` Edits the name of the 2nd person to be `Betsy Crower`. - +* `edit 1 p/91234567 n/Betsy Crower` Edits the phone number and name of the 1st person to be `91234567` and `Betsy Crower` respectively. + +### Editing an appointment: 'editappt' +Edits an existing person in the address book. + +Format: `editappt INDEX [ad/DATE]` + +* Edits the appointment at the specified `INDEX`. The index refers to the index number shown in the displayed appointment list. The index **must be a positive integer** 1, 2, 3, …​ +* Existing values will be updated to the input values. + +Examples: +* `editappt 1 ad/2024-04-09` Edits the appointment date of the first appointment in the appointment list to `2024-04-09` ### Querying persons by name: `patient` @@ -332,7 +341,8 @@ Action | Format, Examples **Clear** | `clear` **Delete Person** | `delete INDEX`
e.g., `delete 3` **Delete Appointment** | `deleteappt INDEX`
e.g., `deleteappt 3` -**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` +**Edit Appointment** | `editappt INDEX [ad/DATE]`
e.g.,`editappt 1 ad/2024-04-09` +**Edit Person** | `edit INDEX [n/NAME] [p/PHONE] [i/NRIC] [d/DOB]`
e.g.,`edit 1 p/91234567 n/Betsy Crower` **Exit** | `exit` **Query Patient** | `patient KEYWORD [MORE_KEYWORDS]`
e.g., `patient James Jake` **Query Doctor** | `doctor KEYWORD [MORE_KEYWORDS]`
e.g., `doctor John Doe` diff --git a/docs/_config.yml b/docs/_config.yml index cfaee6603d2..d30494e5e40 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,4 +1,4 @@ -title: "mediCLI" +title: "MediCLI" theme: minima header_pages: diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 4673548a227..dad01f60ef9 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -48,8 +48,7 @@ public class EditCommand extends Command { + "[" + PREFIX_NAME + "NAME] " + "[" + PREFIX_PHONE + "PHONE] " + "[" + PREFIX_NRIC + "NRIC] " - + "[" + PREFIX_DOB + "DOB] " - + "[" + PREFIX_TAG + "TAG]...\n" + + "[" + PREFIX_DOB + "DOB]\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_PHONE + "91234567 " + PREFIX_NRIC + "T0123452K"; diff --git a/src/main/java/seedu/address/logic/commands/QueryPatientCommand.java b/src/main/java/seedu/address/logic/commands/QueryPatientCommand.java index 8b7ec71fdba..287eef99765 100644 --- a/src/main/java/seedu/address/logic/commands/QueryPatientCommand.java +++ b/src/main/java/seedu/address/logic/commands/QueryPatientCommand.java @@ -16,10 +16,11 @@ public class QueryPatientCommand extends Command { public static final String COMMAND_WORD = "patient"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all patients whose names contain any of " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all patients whose name, " + + "NRIC, DoB or phone number contains any of " + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" - + "Example: " + COMMAND_WORD + " alice bob charlie"; + + "Example: " + COMMAND_WORD + " alice bob ethan"; private final PatientContainsKeywordsPredicate predicate; diff --git a/src/main/java/seedu/address/ui/HelpWindow.java b/src/main/java/seedu/address/ui/HelpWindow.java index 3f16b2fcf26..e15481b9c28 100644 --- a/src/main/java/seedu/address/ui/HelpWindow.java +++ b/src/main/java/seedu/address/ui/HelpWindow.java @@ -15,7 +15,7 @@ */ public class HelpWindow extends UiPart { - public static final String USERGUIDE_URL = "https://se-education.org/addressbook-level3/UserGuide.html"; + public static final String USERGUIDE_URL = "https://ay2324s2-cs2103t-t15-1.github.io/tp/UserGuide.html"; public static final String HELP_MESSAGE = "Refer to the user guide: " + USERGUIDE_URL; private static final Logger logger = LogsCenter.getLogger(HelpWindow.class); From 8ccf30de05e906cf17682365793c27030966fc9b Mon Sep 17 00:00:00 2001 From: Kappaccinoh Date: Thu, 4 Apr 2024 23:32:49 +0800 Subject: [PATCH 08/19] fix error message --- .../address/logic/commands/QueryDoctorAppointmentCommand.java | 2 +- .../address/logic/commands/QueryPatientAppointmentCommand.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/QueryDoctorAppointmentCommand.java b/src/main/java/seedu/address/logic/commands/QueryDoctorAppointmentCommand.java index 13a76028326..5d055a94854 100644 --- a/src/main/java/seedu/address/logic/commands/QueryDoctorAppointmentCommand.java +++ b/src/main/java/seedu/address/logic/commands/QueryDoctorAppointmentCommand.java @@ -20,7 +20,7 @@ public class QueryDoctorAppointmentCommand extends Command { private static final Logger logger = Logger.getLogger(QueryDoctorAppointmentCommand.class.getName()); public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all appointments of doctors whose " - + "nrics/names contain any of the specified keywords (case-insensitive) and displays them as a " + + "nrics contain any of the specified keywords (case-insensitive) and displays them as a " + "list with index numbers.\n" + "Parameters: KEYWORD [MORE_KEYWORDS]...(Keywords can either be NRICs or Names)\n" + "Example: " + COMMAND_WORD + " alice bob T1234567A S7654321A"; diff --git a/src/main/java/seedu/address/logic/commands/QueryPatientAppointmentCommand.java b/src/main/java/seedu/address/logic/commands/QueryPatientAppointmentCommand.java index 382670593aa..f9cbd1f5b5d 100644 --- a/src/main/java/seedu/address/logic/commands/QueryPatientAppointmentCommand.java +++ b/src/main/java/seedu/address/logic/commands/QueryPatientAppointmentCommand.java @@ -16,7 +16,7 @@ public class QueryPatientAppointmentCommand extends Command { public static final String COMMAND_WORD = "apptforpatient"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all appointments of patients whose " - + "nrics/names contain any of the specified keywords (case-insensitive) and displays them as a " + + "nrics contain any of the specified keywords (case-insensitive) and displays them as a " + "list with index numbers.\n" + "Parameters: KEYWORD [MORE_KEYWORDS]...(Keywords can either be NRICs or Names)\n" + "Example: " + COMMAND_WORD + " alice bob T1234567A S7654321A"; From 6043932f9c6ddfe705b7580333992f0e1e6c5ce6 Mon Sep 17 00:00:00 2001 From: Kappaccinoh Date: Thu, 4 Apr 2024 23:48:59 +0800 Subject: [PATCH 09/19] update UG --- docs/UserGuide.md | 55 ++++++++++-------- docs/images/addAppointment.png | Bin 0 -> 45490 bytes docs/images/addDoctor.png | Bin 0 -> 31409 bytes docs/images/addPatient.png | Bin 0 -> 20799 bytes docs/images/editPerson.png | Bin 0 -> 40101 bytes docs/images/helpMessage.png | Bin 8435 -> 15025 bytes .../commands/EditAppointmentCommand.java | 2 +- 7 files changed, 32 insertions(+), 25 deletions(-) create mode 100644 docs/images/addAppointment.png create mode 100644 docs/images/addDoctor.png create mode 100644 docs/images/addPatient.png create mode 100644 docs/images/editPerson.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9e8ad88fdc0..67d38973b22 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -95,6 +95,31 @@ Examples: * `addpatient i/S1234567A n/John Doe d/2003-01-30 p/98765432` * `addpatient n/Amy Smith i/T7654321B p/87654321 d/1980-12-05` +![add_patient_result](images/addPatient.png) + +### Adding a Doctor: `adddoctor` + +Adds a doctor into the MediCLI system. + +Format: `adddoctor i/NRIC n/NAME d/DOB p/PHONE` + +Field Constraints: +* **NRIC** : Follows the correct Singapore NRIC format. Begin with one of S, T, G, F, or M, followed by 7 numerical digits, then ended by an alphabetical letter. This field is non-case-sensitive. +* **NAME** : Only contain alphabetical characters and spaces. This field is non-case-sensitive. +* **DOB** : Only contain numerical characters in the format yyyy-mm-dd. Acceptable date range is from 1900 Janurary 1st to today's date. +* **PHONE** : Only contain numerical characters and of exactly 8 digits long. + +Command Constraints: +* All of the above fields (NRIC, NAME, DOB, and PHONE) are compulsory and must be non-empty. +* Command fails if there already exists a person (patient or doctor) in the MediCLI system that has the same NRIC as the one given. +* The ordering of the fields does not influence the command. + +Examples: +* `adddoctor i/S1234567A n/John Doe d/2003-01-30 p/98765432` +* `adddoctor n/Amy Smith i/T7654321B p/87654321 d/1980-12-05` + +![add_doctor_result](images/addDoctor.png) + ### Adding an appointment: `addappt` Adds an appointment to MediCLI. Appointments are between a doctor with the specified `DOCTOR_NRIC` and a patient with the `PATIENT_NRIC` on a specific date and time. @@ -114,28 +139,8 @@ Command Constraints: Examples: - `addappt ad/2024-08-11 23:50 dn/S1234567A pn/S1234567B` - `addappt ad/2025-04-09 11:10 dn/T1234567A pn/T1234567B` - - -### Adding a Doctor: `adddoctor` - -Adds a doctor into the MediCLI system. - -Format: `adddoctor i/NRIC n/NAME d/DOB p/PHONE` - -Field Constraints: -* **NRIC** : Follows the correct Singapore NRIC format. Begin with one of S, T, G, F, or M, followed by 7 numerical digits, then ended by an alphabetical letter. This field is non-case-sensitive. -* **NAME** : Only contain alphabetical characters and spaces. This field is non-case-sensitive. -* **DOB** : Only contain numerical characters in the format yyyy-mm-dd. Acceptable date range is from 1900 Janurary 1st to today's date. -* **PHONE** : Only contain numerical characters and of exactly 8 digits long. - -Command Constraints: -* All of the above fields (NRIC, NAME, DOB, and PHONE) are compulsory and must be non-empty. -* Command fails if there already exists a person (patient or doctor) in the MediCLI system that has the same NRIC as the one given. -* The ordering of the fields does not influence the command. - -Examples: -* `adddoctor i/S1234567A n/John Doe d/2003-01-30 p/98765432` -* `adddoctor n/Amy Smith i/T7654321B p/87654321 d/1980-12-05` + +![add_appointment_result](images/addAppointment.png) ### Editing a person: `edit` @@ -149,11 +154,13 @@ Format: `edit INDEX [n/NAME] [p/PHONE] [i/NRIC] [d/DOB]` Examples: * `edit 1 p/91234567 n/Betsy Crower` Edits the phone number and name of the 1st person to be `91234567` and `Betsy Crower` respectively. + +![add_appointment_result](images/editPerson.png) ### Editing an appointment: 'editappt' Edits an existing person in the address book. -Format: `editappt INDEX [ad/DATE]` +Format: `editappt INDEX ad/DATE` * Edits the appointment at the specified `INDEX`. The index refers to the index number shown in the displayed appointment list. The index **must be a positive integer** 1, 2, 3, …​ * Existing values will be updated to the input values. @@ -341,7 +348,7 @@ Action | Format, Examples **Clear** | `clear` **Delete Person** | `delete INDEX`
e.g., `delete 3` **Delete Appointment** | `deleteappt INDEX`
e.g., `deleteappt 3` -**Edit Appointment** | `editappt INDEX [ad/DATE]`
e.g.,`editappt 1 ad/2024-04-09` +**Edit Appointment** | `editappt INDEX ad/DATE`
e.g.,`editappt 1 ad/2024-04-09` **Edit Person** | `edit INDEX [n/NAME] [p/PHONE] [i/NRIC] [d/DOB]`
e.g.,`edit 1 p/91234567 n/Betsy Crower` **Exit** | `exit` **Query Patient** | `patient KEYWORD [MORE_KEYWORDS]`
e.g., `patient James Jake` diff --git a/docs/images/addAppointment.png b/docs/images/addAppointment.png new file mode 100644 index 0000000000000000000000000000000000000000..cea86a96e1ebbbe0650ecb240be1cbeff07179b2 GIT binary patch literal 45490 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 literal 0 HcmV?d00001 diff --git a/docs/images/addDoctor.png b/docs/images/addDoctor.png new file mode 100644 index 0000000000000000000000000000000000000000..4091b266fa0e36e4d30502f4a5c669a63ebe9b2c GIT binary patch literal 31409 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�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 literal 0 HcmV?d00001 diff --git a/docs/images/addPatient.png b/docs/images/addPatient.png new file mode 100644 index 0000000000000000000000000000000000000000..b96261065b6718846367384b805c2374b92abffc GIT binary patch literal 20799 zcmeFZcTiMsw=RgFpu`_4AQ=TjkRVyIO3p!oWF+UDQ;Vo55|m7nbEYNd21Lm@=SFgF za)!Qdu_6#VGl5TM3u=yDBce z3>{}p^}8GVMy5t5?gSEC&-6wKSl=$SWsp+Nv101n&J@Eakr9mRX~#5XdO3cV&fQD) z<(+RuSjJ3b_XEaXka6$a|9DdXYeMuza#HVaq_dN zNtpOy3{PmlTOT2;z+coK;yPbpV_#`vf3k}uHcq*0zB0Qnq#mK8ig|Z;$iwuB46EEt zdG0_=9=6bcKSR#g*t0U&*njZw@%0A&@pyN`hVxmfEIt$1mh(8@hYVWjGO*b@jxyRV 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 YGG?ae6uWH!?5{z%?0Ko-;;pp*0l?r{j{pDw literal 0 HcmV?d00001 diff --git a/docs/images/editPerson.png b/docs/images/editPerson.png new file mode 100644 index 0000000000000000000000000000000000000000..88c8d7d1c0bc899cdb2818ce87bf860626329ca8 GIT binary patch literal 40101 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ÐxTGMs?~ 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 Date: Thu, 4 Apr 2024 23:52:24 +0800 Subject: [PATCH 10/19] fix checkstyle error --- src/main/java/seedu/address/logic/commands/EditCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index dad01f60ef9..a12b4484978 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -5,7 +5,6 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_APPOINTMENTS; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; From a0de5a26fa99200af06ef1db3eea58005e4172bc Mon Sep 17 00:00:00 2001 From: alfaloo Date: Fri, 5 Apr 2024 01:43:53 +0800 Subject: [PATCH 11/19] Bug fix --- .../address/logic/parser/ParserUtil.java | 5 ++-- .../java/seedu/address/model/UserPrefs.java | 2 +- .../storage/JsonAdaptedAppointment.java | 2 +- src/main/java/seedu/address/test.java | 29 +++++++++++++++++++ .../ExtraValuesUserPref.json | 2 +- .../TypicalUserPref.json | 2 +- .../seedu/address/logic/LogicManagerTest.java | 2 +- .../storage/JsonUserPrefsStorageTest.java | 2 +- 8 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 src/main/java/seedu/address/test.java diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index ff9dca74385..47b7096fe6d 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -188,9 +188,10 @@ public static Set parseTags(Collection tags) throws ParseException public static AppointmentDateTime parseAppointmentDateTime(String apptDateTime) throws ParseException { requireNonNull(apptDateTime); String trimmedDate = apptDateTime.trim(); - if (!AppointmentDateTime.isValidDate(trimmedDate)) { + String datetime = trimmedDate.substring(0, 11) + trimmedDate.substring(11).strip(); + if (!AppointmentDateTime.isValidDate(datetime)) { throw new ParseException(AppointmentDateTime.MESSAGE_CONSTRAINTS); } - return new AppointmentDateTime(trimmedDate); + return new AppointmentDateTime(datetime); } } diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/seedu/address/model/UserPrefs.java index 20036a239bc..6be655fb4c7 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/seedu/address/model/UserPrefs.java @@ -14,7 +14,7 @@ public class UserPrefs implements ReadOnlyUserPrefs { private GuiSettings guiSettings = new GuiSettings(); - private Path addressBookFilePath = Paths.get("data" , "medicli.json"); + private Path addressBookFilePath = Paths.get("data" , "addressbook.json"); /** * Creates a {@code UserPrefs} with default values. diff --git a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java index 3cef5e6b463..e1b54cc1d34 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java @@ -41,7 +41,7 @@ public JsonAdaptedAppointment(@JsonProperty("doctorNric") String doctorNric, public JsonAdaptedAppointment(Appointment source) { doctorNric = source.getDoctorNric().toString(); patientNric = source.getPatientNric().toString(); - appointmentDateTime = source.getAppointmentDateTime().appointmentDateTime.toString(); + appointmentDateTime = source.getAppointmentDateTime().toString(); appointmentId = source.getAppointmentId().toString(); } diff --git a/src/main/java/seedu/address/test.java b/src/main/java/seedu/address/test.java new file mode 100644 index 00000000000..387d07a7b54 --- /dev/null +++ b/src/main/java/seedu/address/test.java @@ -0,0 +1,29 @@ +package seedu.address; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.format.DateTimeParseException; +import java.time.format.FormatStyle; + +public class test { + public static String str(LocalDateTime t) { + return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(t); + } + + public static void main(String args[]) { + + String pattern = "yyyy-MM-dd HH:mm"; + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + + try { + String datetime = "2024-01-01 11:00"; + String date = datetime.substring(0, 11) + datetime.substring(11).strip(); + LocalDateTime time = LocalDateTime.parse(date, formatter); + System.out.println(str(time)); + } catch (DateTimeParseException e) { + System.out.println(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/test/data/JsonUserPrefsStorageTest/ExtraValuesUserPref.json b/src/test/data/JsonUserPrefsStorageTest/ExtraValuesUserPref.json index bcc16853b7e..1037548a9cd 100644 --- a/src/test/data/JsonUserPrefsStorageTest/ExtraValuesUserPref.json +++ b/src/test/data/JsonUserPrefsStorageTest/ExtraValuesUserPref.json @@ -9,5 +9,5 @@ "z" : 99 } }, - "addressBookFilePath" : "medicli.json" + "addressBookFilePath" : "addressbook.json" } diff --git a/src/test/data/JsonUserPrefsStorageTest/TypicalUserPref.json b/src/test/data/JsonUserPrefsStorageTest/TypicalUserPref.json index b55d0abe923..b819bed900a 100644 --- a/src/test/data/JsonUserPrefsStorageTest/TypicalUserPref.json +++ b/src/test/data/JsonUserPrefsStorageTest/TypicalUserPref.json @@ -7,5 +7,5 @@ "y" : 100 } }, - "addressBookFilePath" : "medicli.json" + "addressBookFilePath" : "addressbook.json" } diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index 573608ca9c8..0a0a9436256 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -50,7 +50,7 @@ public class LogicManagerTest { @BeforeEach public void setUp() { JsonAddressBookStorage addressBookStorage = - new JsonAddressBookStorage(temporaryFolder.resolve("mediCli.json")); + new JsonAddressBookStorage(temporaryFolder.resolve("addressbook.json")); JsonUserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(temporaryFolder.resolve("userPrefs.json")); StorageManager storage = new StorageManager(addressBookStorage, userPrefsStorage); logic = new LogicManager(model, storage); diff --git a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java b/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java index b158b9a1b73..ed0a413526a 100644 --- a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java @@ -73,7 +73,7 @@ public void readUserPrefs_extraValuesInFile_extraValuesIgnored() throws DataLoad private UserPrefs getTypicalUserPrefs() { UserPrefs userPrefs = new UserPrefs(); userPrefs.setGuiSettings(new GuiSettings(1000, 500, 300, 100)); - userPrefs.setAddressBookFilePath(Paths.get("medicli.json")); + userPrefs.setAddressBookFilePath(Paths.get("addressbook.json")); return userPrefs; } From 10b2b4ecb553aa052039cb973a12420b97f70bb4 Mon Sep 17 00:00:00 2001 From: alfaloo Date: Fri, 5 Apr 2024 01:45:12 +0800 Subject: [PATCH 12/19] Remove test file --- src/main/java/seedu/address/test.java | 29 --------------------------- 1 file changed, 29 deletions(-) delete mode 100644 src/main/java/seedu/address/test.java diff --git a/src/main/java/seedu/address/test.java b/src/main/java/seedu/address/test.java deleted file mode 100644 index 387d07a7b54..00000000000 --- a/src/main/java/seedu/address/test.java +++ /dev/null @@ -1,29 +0,0 @@ -package seedu.address; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeFormatterBuilder; -import java.time.format.DateTimeParseException; -import java.time.format.FormatStyle; - -public class test { - public static String str(LocalDateTime t) { - return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(t); - } - - public static void main(String args[]) { - - String pattern = "yyyy-MM-dd HH:mm"; - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); - - try { - String datetime = "2024-01-01 11:00"; - String date = datetime.substring(0, 11) + datetime.substring(11).strip(); - LocalDateTime time = LocalDateTime.parse(date, formatter); - System.out.println(str(time)); - } catch (DateTimeParseException e) { - System.out.println(e.getMessage()); - } - } -} \ No newline at end of file From 7cb43ce3042da4a85628fbdb7ace0ad8b4f85ae9 Mon Sep 17 00:00:00 2001 From: alfaloo Date: Fri, 5 Apr 2024 01:51:01 +0800 Subject: [PATCH 13/19] Fix test case --- .../java/seedu/address/storage/JsonAdaptedAppointmentTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/storage/JsonAdaptedAppointmentTest.java b/src/test/java/seedu/address/storage/JsonAdaptedAppointmentTest.java index 17a09375402..ab325fe2821 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedAppointmentTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedAppointmentTest.java @@ -25,7 +25,7 @@ public class JsonAdaptedAppointmentTest { private static final String VALID_NRIC_1 = APPOINTMENT_1.getPatientNric().toString(); private static final String VALID_NRIC_2 = APPOINTMENT_1.getDoctorNric().toString(); private static final String VALID_DATE_A = APPOINTMENT_1.getAppointmentDateTime().toString(); - private static final String VALID_DATE_B = APPOINTMENT_1.getAppointmentDateTime().appointmentDateTime.toString(); + private static final String VALID_DATE_B = APPOINTMENT_1.getAppointmentDateTime().toString(); private static final String VALID_APPOINTMENT_ID = APPOINTMENT_1.getAppointmentId().toString(); /** From 1a1020f1800f1853252b206c74b90da4043bcb70 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Fri, 5 Apr 2024 02:09:04 +0800 Subject: [PATCH 14/19] Fix appointment not starting --- .../java/seedu/address/storage/JsonAdaptedAppointment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java index 0d5b615e12a..4d9a98eff46 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedAppointment.java @@ -89,7 +89,8 @@ public Appointment toModelType() throws IllegalValueException { final AppointmentId modelAppointmentId = new AppointmentId(appointmentId); - return new Appointment(modelDoctorNric, modelPatientNric, modelAppointmentDateTime, modelAppointmentId); + return new Appointment(modelDoctorNric, modelPatientNric, + modelAppointmentDateTime, modelAppointmentId, true); } From 682d9557aece326054e8026a29983101e3bf0802 Mon Sep 17 00:00:00 2001 From: alfaloo Date: Fri, 5 Apr 2024 02:16:23 +0800 Subject: [PATCH 15/19] UG fix --- build.gradle | 2 +- docs/UserGuide.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 9a21fdccd3d..c06541939a6 100644 --- a/build.gradle +++ b/build.gradle @@ -66,7 +66,7 @@ dependencies { } shadowJar { - archiveFileName = 'addressbook.jar' + archiveFileName = 'MediCLI.jar' } run { diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 628020b89d3..e210948bec4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -27,7 +27,7 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo * `list` : Lists all contacts. - * `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book. + * `addpatient i/S1234567A n/John Doe d/2003-01-30 p/98765432` : Adds a patient named `John Doe` to the Address Book. * `delete 3` : Deletes the 3rd contact shown in the current list. From ea05ef25ee536972a6e63957938c140d765cfc44 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Fri, 5 Apr 2024 02:39:19 +0800 Subject: [PATCH 16/19] Add tests --- .../address/storage/StorageManagerTest.java | 27 +++++---- .../address/testutil/addressbookinvalid.json | 60 +++++++++++++++++++ 2 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 src/test/java/seedu/address/testutil/addressbookinvalid.json diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/seedu/address/storage/StorageManagerTest.java index 6fadc3293c7..80500e7e71a 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/seedu/address/storage/StorageManagerTest.java @@ -5,6 +5,7 @@ //import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.nio.file.Path; +import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -13,6 +14,8 @@ import seedu.address.commons.core.GuiSettings; //import seedu.address.model.AddressBook; //import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.AddressBook; +import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.UserPrefs; public class StorageManagerTest { @@ -47,19 +50,17 @@ public void prefsReadSave() throws Exception { assertEquals(original, retrieved); } - // @Test - // public void addressBookReadSave() throws Exception { - // /* - // * Note: This is an integration test that verifies the StorageManager is properly wired to the - // * {@link JsonAddressBookStorage} class. - // * More extensive testing of UserPref saving/reading is done in {@link JsonAddressBookStorageTest} class. - // */ - // AddressBook original = getTypicalAddressBook(); - // storageManager.saveAddressBook(original); - // ReadOnlyAddressBook retrieved = storageManager.readAddressBook().get(); - // System.out.println(retrieved.equals(new AddressBook(retrieved))); - // assertEquals(original, new AddressBook(retrieved)); - // } + @Test + public void addressBookReadSave() throws Exception { + /* + * Note: This is an integration test that verifies the StorageManager is properly wired to the + * {@link JsonAddressBookStorage} class. + * More extensive testing of UserPref saving/reading is done in {@link JsonAddressBookStorageTest} class. + */ + Optional retrieved = + storageManager.readAddressBook(getTempFilePath("addressbookinvalid.json")); + assertEquals(Optional.empty(), retrieved); + } @Test public void getAddressBookFilePath() { diff --git a/src/test/java/seedu/address/testutil/addressbookinvalid.json b/src/test/java/seedu/address/testutil/addressbookinvalid.json new file mode 100644 index 00000000000..1c1a088e32f --- /dev/null +++ b/src/test/java/seedu/address/testutil/addressbookinvalid.json @@ -0,0 +1,60 @@ +{ + "persons" : [ { + "type" : "PATIENT", + "nric" : "S1234567A", + "name" : "John Doe", + "dob" : "2002-01-30", + "phone" : "92624417", + "tags" : [ ] + }, { + "type" : "PATIENT", + "nric" : "S0123456A", + "name" : "David Li", + "dob" : "2003-04-28", + "phone" : "87438807", + "tags" : [ ] + }, { + "type" : "DOCTOR", + "nric" : "S1234567s", + "name" : "John Doe", + "dob" : "2003-01-30", + "phone" : "98765432", + "tags" : [ ] + } ], + "appointments" : [ { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2024-06-06 15:00", + "appointmentId" : "a48433956" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2024-06-07 13:00", + "appointmentId" : "a14526721" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2025-05-05 19:00", + "appointmentId" : "a56366553" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2020-07-07 10:00", + "appointmentId" : "a11259511" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2024-05-04 02:00", + "appointmentId" : "a20170899" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2024-05-03 02:03", + "appointmentId" : "a50992029" + }, { + "doctorNric" : "s1234567s", + "patientNric" : "s1234567a", + "appointmentDateTime" : "2024-04-05 02:08", + "appointmentId" : "a13027485" + } ] +} \ No newline at end of file From 1405aff89b598b7284c3d51eb861cd1b3bfd3337 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Fri, 5 Apr 2024 02:40:50 +0800 Subject: [PATCH 17/19] Add newline --- src/main/java/seedu/address/storage/StorageManager.java | 3 +-- src/test/java/seedu/address/testutil/addressbookinvalid.json | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/seedu/address/storage/StorageManager.java index 93802228f9e..bab26ede6e5 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/seedu/address/storage/StorageManager.java @@ -65,8 +65,7 @@ public Optional readAddressBook(Path filePath) throws DataL try { return addressBookStorage.readAddressBook(filePath); } catch (DataLoadingException e) { - AddressBook emptyBook = new AddressBook(); - return Optional.of(emptyBook); + return Optional.empty(); } } diff --git a/src/test/java/seedu/address/testutil/addressbookinvalid.json b/src/test/java/seedu/address/testutil/addressbookinvalid.json index 1c1a088e32f..44ee50c3216 100644 --- a/src/test/java/seedu/address/testutil/addressbookinvalid.json +++ b/src/test/java/seedu/address/testutil/addressbookinvalid.json @@ -54,7 +54,7 @@ }, { "doctorNric" : "s1234567s", "patientNric" : "s1234567a", - "appointmentDateTime" : "2024-04-05 02:08", + "appointmentDateTime" : "2024kadlka", "appointmentId" : "a13027485" } ] -} \ No newline at end of file +} From b14818e15ad011b542595d216c4fea839ef78561 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Fri, 5 Apr 2024 02:44:28 +0800 Subject: [PATCH 18/19] Fix CI --- src/main/java/seedu/address/storage/StorageManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/seedu/address/storage/StorageManager.java index bab26ede6e5..f8552b3b6dc 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/seedu/address/storage/StorageManager.java @@ -7,7 +7,6 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.UserPrefs; From 332f8afb68cc5586038b72fe9432dc17d7fbb981 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Fri, 5 Apr 2024 03:24:46 +0800 Subject: [PATCH 19/19] Update user guide and message --- docs/UserGuide.md | 28 ++++++++++++++---- docs/images/editAppointment.PNG | Bin 0 -> 46148 bytes .../commands/EditAppointmentCommand.java | 2 +- .../address/storage/StorageManagerTest.java | 4 --- 4 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 docs/images/editAppointment.PNG diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 67d38973b22..26fec8bb580 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -146,14 +146,24 @@ Examples: Edits an existing person in the address book. -Format: `edit INDEX [n/NAME] [p/PHONE] [i/NRIC] [d/DOB]` +Format: `edit INDEX [i/NRIC] [n/NAME] [p/PHONE] [d/DOB]` -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ +* Edits the patient or doctor at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ * At least one of the optional fields must be provided. * Existing values will be updated to the input values. +Field Constraints: +* **NRIC** : Follows the correct Singapore NRIC format. Begin with one of S, T, G, F, or M, followed by 7 numerical digits, then ended by an alphabetical letter. This field is non-case-sensitive. +* **NAME** : Only contain alphabetical characters and spaces. This field is non-case-sensitive. +* **DOB** : Only contain numerical characters in the format yyyy-mm-dd. Acceptable date range is from 1900 Janurary 1st to today's date. +* **PHONE** : Only contain numerical characters and of exactly 8 digits long. + +Command Constraints: +* Command fails if there already exists a person (patient or doctor) in the MediCLI system that has the same NRIC as the one given. +* The ordering of the fields does not influence the command. + Examples: -* `edit 1 p/91234567 n/Betsy Crower` Edits the phone number and name of the 1st person to be `91234567` and `Betsy Crower` respectively. +* `edit 1 i/s1234567a n/Betsy Crower` Edits the NRIC and name of the 1st person to be `s1234567a` and `Betsy Crower` respectively. ![add_appointment_result](images/editPerson.png) @@ -164,9 +174,15 @@ Format: `editappt INDEX ad/DATE` * Edits the appointment at the specified `INDEX`. The index refers to the index number shown in the displayed appointment list. The index **must be a positive integer** 1, 2, 3, …​ * Existing values will be updated to the input values. - -Examples: -* `editappt 1 ad/2024-04-09` Edits the appointment date of the first appointment in the appointment list to `2024-04-09` + +Field Constraints: +* **DATE** : Input must be in the format `yyyy-MM-dd HH:MM`. Specified date must be >= current date and time. i.e. appointment cannot be scheduled in the past. + +Examples: + +* `editappt 1 ad/2024-04-09 11:00` Edits the appointment date of the first appointment in the appointment list to `2024-04-09 11:00` + +![add_appointment_result](images/editAppointment.png) ### Querying persons by name: `patient` diff --git a/docs/images/editAppointment.PNG b/docs/images/editAppointment.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ec30d4b353c2e6d21409004798506dca593148bf GIT binary patch literal 46148 zcmeFZ2~^VS_cv;zr%4-5Wu|hfQ#Pq-Ig3_SW>!{K&RU^45Kbtl2-NAMr;|cusX39A znK_UH;E0wb<^bk|0)l3Wih_!Qh~SH6ztit`@Bdxv-n;I5-@DeIwMxG5OnZ3t-p_tM zoBJ2e+pJryzFJ91X`Suq6PJ{f)|4nIE&cM#O2sD)FusZ6&l2b*o8wCPRE;6U!*ZWv z=Z+~U6=2uQUSFYjUKMoO8LFhD88iQH3ATUSTS=*?%l5>v%i$g)GIVaBvpYa;URQi~ z_MPvpH_xy5o>}$c>#r$SH$WUdy^Z_z+1X5A*W5eDV-wE2ylHknGn6s&;MbfT*Jf)B z_DMQ!@9^_4et)AlJK^yg9ivkpqHacCPr|K*52%Q#QiLa$Oqb>sQ5gultPe@GqAU>lAZ-WDt~+rn)!t$)z*< z{?GqQc7OxJAAZ5)!n}yP$~Cv~>q79KvXxnYN`v3TR^iv7VxVfECCa<`zaHY!nKZYP z3FZdfk47yaSzCgzujaD&bB*t-mY!Y)rDa)GMvP^wNujxwl$3^#w+ysoHl%2$hkrc- z`JWBh^j2HNfbpmu(+Kk-?W#$eU_Bbe#KOHQ?HleZv#b!_N3}`}*2CFI!%h?(sOr8g z$;KG#K05+i_Y*hIpYbZ))vDRWuM4;7FgM^ll3Ds8R7UO>4eYm$K<-u0H0A2U8 z&@ue-pSmS+hc~hGG`$GBirgDQRNKjU`+KyOg-IqpXU+a3x_rY&-I%p-9cK3xDe>>y zQVcjvz@j7Lv~Ue+**{Hl9lgk4`w(nwxYsAKcifUJjDRbn+W*!Nwl6fD;qYRt4tB!Yix{|@$O3GHz2qYc>H zaIaeNb-g8GDWD?gVIz7h!v?MyF;YMw+Wo{qlLI@~q=)>|e*Ctyzrp?%pUmyOd&&wn zUQ~|x*f;cZ2iKoF>@p`8e_F=hs)d|={$3n4+^SqUo$=1GP@7{bw!+&^yrJbTV>JwKDU z|Cf@Vl;_>*|7BfqkFm0rrj*2rZ@W_xS+jO2Scs>cWq89=I;cwrz#`5qFokWfQnkvA0-NBfnSQ#C}59Y=bd8CSOx&tZ4aH0a;ABB{3JR z)t;7A;%M{{AcKDYp5UYe&DH7{5B8O60A2EZzDuyjVq*~AZ^ppfKk~Mhcm;g-NTKu+ zVw7`PPb*08c)0fFLbsGwmAwUT3U)kgRY9k{PAE{X&{65GGKV*BIBjvsfgNun087jB zxRh-H+?^nxwbn#3^8Cv!kddT<+!|4z{(w1l8&mah_!V>38Wt#;q)eQKTIsEmkY18bV42e zOkP=YZIgzomkJW5bEw0ipX=*t4JtH;KP{lqcpK@H(*+fgbAwf{^V^V>$X^eTduIxyTxLk0ra+GX~_>dN1134IlUeC!H6>TI$A;R(w%yIB6b#$d-&ixUsY@2vFh6oz$0`@{GM|2_Eb+Z00XetwW*FK3(F%!G?3lBQ^V_ z?>cCL`#5~L{`vOS`x5bs3`FhPHFNO!SWoe)R$o;@Pd$3n>-_EOhP^Q-tDNk26poTx zOigNbJe}GYL>raLj_euPHqp~G!R0D;92?pmVpab~SYOeZK8h|uJm5K#>0a#@a_a4q znB}dgt+OL8B4n@$OgW5D&=B{TMSD?+>HmnLR;F_UtZK^m5zw?ET0;Ww#_5Kz!$Mhn zeuj6gMOw`Pq&!n1;1$r}eq-$9xWKme*Ig*k_q5x#>R77-Z7fh1Ew8nJY?&(&B95E4 zjOWJ+^b9K!x$Fl6Y`rpXuJ<@{(LCnHd>7!raxp$&y5ea3U#If1M_9EU$UKh1dwte6Pkaj`@n&L035S&>(@xP9wbmc zqr0}-mCM3zDGxl?7Czf;>Rgfr5m$z}dICCTB|xHPj9BPY)n92L@HiqA>_Nf=1mMW_ z?}E8@aybjUW%XYpWE0wcWDI-jwKwQq)bwtYV;E9`Qv3b$Tb)%8<4$@rSNw6wR_AE* zMvK!JWsUuPhU>RvYYL`KHCpNUP$RwPp}F{SVUSZhI0L4OZTmvj1YrAQrZ9gO<|T(N zm~ZYL>`88^X>K7fR2gPki%q1PZYF*1Q#xnDa%`A-e3`QO~5!U~P zf^SEvmB3>Q<{ozc0V?eA`9i$}GHoX2^I-g`s7p-xSq8B`9e(XA*FPiDv;0!ISQLx6 z$t7C%1&<^*NF&25_VtxBU*{xqxHdJI? z#fJbzL?l%$F2ILw*fMU3_Xu?t|5;@^=FuWNBRw3b7e|k~5;yMUiPzibI zS{vL^xz`|b1`7b5(;%GqGW$O*j-4pL?^tujsM$)T_wYK&A zVm&&zZn;Ku_;8r_t${x`VooCuhz@_X_;&0;evixBe7#9*ETYDAq=@P08D{KNe!h~^ zgw(<3VQ$x4*VLTb)%T?cQpP_;=>IDNoM-N25OMHSC2k^&;>mk?e6KA`rpc4`L{wbr zFF2JhT^7#=2y6XMi=BuuDpG!>OhsxGx*rR8iDWvj1`} zzBf{da}}4of_=;ej({>TmBzJ`*BQXyhN`v}^9AqL3E3|l8^i76BK1c3vKXWW8^x~N zJBpr^`kv0zyHZ{-n%$+neo>996l#1kstYxp32htKOUJHQvwz9+3_VuL(o;4|*8{IV z9Ja(nn`4mr=#e$T@g)y-wa6ov0<1Yzf{t?Ua(u|$JHm}B6j{QkygqolT4LTV?zB_Q zc9DLN>?u-5{0LCRuB|Z&o!T)Xf(o0ILGaM-o!5kRQ_v(*CQn0@2QA4(Q3tRm-PCIY zS>32;-H(6!F|{y)0vOx_AR)9*rQb3aOU5Z|tAW@nRb=TgPT_|(DS`)U@A>kVs7ap? zNJ%|`NHnkY$S>^zMRZn;ixW!eLe^+Gqy6SMg1xyMc~#65by>`cZ~IzDkh55a5A?Ce z;16frSQ}-dB>^|x1?^IY93szO{4Dt@W9mQ-n+O2nY;r2Q+i9Y00$vR`sJ?UeE_O<3 z2P~0(q2I*j4>|#St5%HwNlD{?C;}~9MYp@)Q$iJO9YMc}{sf{{wh{*MNrshI2~W|EYsD=}9p)8WWb zax`r8%`GeR!9u8hP~5q8x;y~b2lH+$gNKEmALicrRw~elPnS~CC&_}^VxJz_6*^jA z(q>53KH?ES19O{m((}&H@0yC}EzmSgu(6~UC3n152!YH|m5G9B<&0Xnd=iy^6V!tA z%-I$}8_}fXVhKiGG8PjNc&b_!6eVRQ)b6b11-bdRw?~h-g>_UnUTgT`AZx} zgo0N{2*Br~&sm&eXg(KAPg22BQV|y!M){d{WU;37u1ddmbB?tnL|To}6q2}jf=V?~ z@P1^Cm~1A>3>GF*WlLfd`$4%zHEzl4ZWKl%OWW(J$y$v`Ko-G2| zQ4;>!bz{D@Y{-H(3Zid6*f~|ImFznN_OuehsOv@uvCiTtMhB*5+>(uvfWFYl-fNY8 z{cGLqY^DJC>y19$R-(Q!4H#jc>PCp?u)&zzOxJwtGJ0LW2sRHsjpFcv;`q$q8c^kv z6}7*YZ`IRkRyR$E>4R0&k|6x43Yxg)owpzY#J?9qZ!1u^ROm<;a3H-aNJmTnk#4Ed zp)KKPtNiO4#1=`FWB^0!xK&Z>0WSyV5IJcHylXurHVmh>k5va6%M`pWm#C`?$?6%T zv@ZQDE%-GJ7>EVOn2EoH#|iS|`XHz2?woN|{M~KHB;Qgfsu0I1vh;*=rPI;?hEMyI z8u5!7T5pPZe$FnL|E-$GbV{mxQMFTlRj~Jt(#fn1%u({?{HSBV$$P@)L}rsGDodp0 z9C*SvL;Faxe@PzjSmxOVGv&w+?nv&pH<c+tA8`p8JREc|I=}qTY{ZdTOT6KCD}Fmu;Wk6>0anIJ zUX%oOE7Uax1D*Dc0DH?cHr!Ar1YBWmohlz6+(s8YKMC)=ezrNIj9)iiN9)_LjPB{+ ziC`Lpun;P3p-rmM_Zd02>SqglM{3rB@^h?#JL)cNd1rd5T^_p%OzbF;dX?ActD)@U zesLwRIl^GgGNVFpDQY%D)Q`-&%p-I$NTAx-FpWKVt~o?0XDlhS0b6yVF2{euDM3Zr z#qQVua)5AIqg?07bW$^Sc=AHeUx=Hn(qbPp!elEYR)gjRKfiq@X~wt>t1ms+&m2&( zsxre=R;yvb;@&VItP$%A5huyLdAc`AG>kejUpU^7W0`PH@F`!vY>)hWWR!(X_iOm6 zsM=p)0^9*ZIm&H#nq?9cjvt*l$RKz#e$yB%+p1Zb9x3L~V?OX1Y2kW9k!XIu%c6oh zDUQJB9H*~WC+XEom#(#zZd+~jt@jSGe#Z2*VAI`8=4<}6eLT;{y`V-(PQLj>+2?sa zO8w?_(%H5eDUL)uJ@?FNOB^!kdSe(NzS0;Im~am^^Ok|@g#>@S#}S zSSB<6n%-3`Oqc0|H-)KBTjZKoq(=*4cGZGTp@rf$Y5*FDbiEOau)-ZK2f1gL3h*5; z?2spse`AXprv}P&JS?}Qx7T*_Mz5sLy_Poan@c-#c`ltEI(Mc+C`se2nRq=i(|H&Z zZ<({Y9r5LkNZ%h~V~4{e3ps1PtDF+=w;qqf`p@+T9!!vxYMN2eA5@FT?*Of0+hf_* zBxbZcw&3{I)+o6F6 zU&%+?nzwdaQ=U!Tn>sr7^{;Ld!o75iy7;6l-(HjZD#8=UB?4b{Y#6Cqy4m`AbaOltfn6mx*d%qc%hIjq=q`@vS~sxfcZT_HqwFf=y|J*e7Tj&-;5NLk0LIziw~3z+ zgZToq6xh?;Yr4%fOCt!U-_fA9>EZV6BQDiR1sa72dy)XGFl!&B*Wd0IL`Vt~y2CWh zr;19?neXC1JI5t)%RDENc?M$ux*&VlKuLL2W)4nB9;xSLW*2+KXC zftZvQe~N`NCOrTps1&)prM-5QAg;xE+T5=_;H-<)nyZtN%I&m~sGIbbPIW2F1f^&8 zgblKm1w`s$!UJOxXqgVB9g8}3N|B^_rrzu;pOB0-$Qg_~OFZ=wbdy2FcIamQF0@paL+w*&5ZA8zE9dk zX)-^s4Nl>3J7c!F)Q(@!YB5L2W5iD(o}>0PNwhL_qyC;lSH6VU5Am4Q(tz}5NN_tV zW|O}?USt%DP}T8z&%53Nyjj4D_$oSlFoI@Y7!`!>#^sbl56whjN_~tfa5L0~Kj>~* zU$_;Bv*nqP8LYkx2^>h?dr-f&5>%3f0E5fnymgxB`UuD&pQ!CbU=)Ck*FkHi1+b(A zGBb{tD^49x<`C~7E|zsfGCPbC%85oIXi1<4l{ESa6f(6U)*1*^2 z=V6E{`~zsutJ2mGKDXQIbuwCOMzA3RG0R|YY9++Hzqzdh{=1Ysz&wKaJb09UT%8g! z4Gij}1=Bme=ZeY{de%Dzy-~{@=9`sWdO5=k39PFv6Gv_{(T=0D4uUxLn>grl@N=G4 zd>XbOk<%NI9%Qek-glrOhS5qVRVq%L__*#!8IM2nZjxZcRo7y{rcqyx$bl3;GBJPT zB`odW_%k92>|0$zyBjZ=WplW^D}6Ijtg$Hr7P$sFIYsD)4!(I$?ic^PiTp$5YS$}N zZbP%l?29rYa^{bjfhHYNsIppZ)V^*>T9o`#*ysbX`{45y%E9o<=BI}Hnn)}Iosx&6 z=(E3N=$#Hyi_8{?>mr7xcg`IeYb{_u3LYAUYK4|xqMUF3(%&vL4wC6?*l#)l78|lR z&UVIuJxyMatRk*u!+;tX$GmNJv7fF>%fzh)Til~bK(m!dLDsApzpOTpTsoIpoGOhv z`*yS|ZfG2NRx_u#I|=bYKcf6WA3#)YL>|%z#mX#VxZxjmw*~aDA00I4C^E#@4m)sw zHvy+G-cyk@JS9Wi*DQLO&&}J$6z~lzwX^a`_R0)Fgrm+_Y2>FzRmyEt-g{&oH@yR{ zqal$V%UoxZ03Y$W4-U9sBwEJ=V4Tq@mS~!v~YpLk|>X{pu!&@`L9-g^`@Lih^dtvqJOYb}P zKBBn=dz`GbQfC-cl#{MEE({g`$}?c9#n)Zavf##|soTvvmn7dhsLC5GtD#?q=}JFr zSSHIRW#&d&ZQ1tVy|^{#O&+aT)^mDY^w}AFp0BXS)XzkGogo9wI1ws*FqbK|xJfpo zY$f)pzz}{Gq;@MmL(J&71OnPKla9E@*!UlRSNJ;kU<#X)CgAmo8(#5D4@0Ci(#9ta zRU<&XXOhw~!zkbtD!dO^MD}n7(j8h2jRnHJmnqNtEJmo_!if5{aW-^Icwe)FgTU4r z#0nWn59Tl{3FD|xugW{)c$wI)(;d*to@L5Zi;JuU(!=?Q?zm`ydxYi?@51&JHf5^M z7)hn^YqaLl+oP!V140Cw%X`-?FE{%VV&$t=lo31_smC8-=nq8cjs44g9ZOGVym_7SJRz0ql&w~uj{87GJkySF1h9D2Ux=3Pj2ld*DM87f@0?>2FAx+pUB9 z>5+1jKf=CalsKCGKFF?j+DTKCHrYI=zy3sPk5w zfN+u$Ss1^n?p%jSg0dMN*9%Eu>w)mxmch~1(q~2q(h}}yXx!8raOell1B@m~D)g%N z>AF)34xn-`hUCVz(;nPPy{W;Qo@y35Ym`xGPt|4O+T*QiZ~)p@O#};sR01?z@g0do z9=K&60LmG;6oD1+x0ZXi&RNnKwfh8p?Q?0xJh|yiR9X*Ld;?+`5U!C}u~ie()rr)= z^i5j=tdwKu-2q)J>HhDkT&=aL1gd-F-kFsLH>fYWeOPD3QRJ2nhBw((0Y9$toF3mc z=g!|cH72GH55HWWuRrA1#hzW<3e~HBQ4FBCcB+nYv|0mvzb)UCIfuAgwQ@0zRRaIk zLoJ=ZrGg^IhPm0aVg-(R))^>R*}t}%78M)w2fAT7gRFQ ze;4<|&nd<>LG0Y5)it)>dHinUbPZN(mi+1mW~JZ;AU6X;Ii`=W5ZT#YYE8>m)H+z>zu-7LvI1 zA8LcHp4ej1|6$iIE$8vNSV4`)Qa;vFffd4(Yq3~iH0yHA2?Zj`ul#338+hxsF^f%F z-=~NIh&BeP;>zX@D}SD?IDBzDJo2B>l{$0^Io?_p245d-<|O_*4r$F+-CGLa*ZonK zpW5f1^CIt(x(~cxSP-(ywHjzK);z9qavtV%{AZZTfnR?{IIUEGz=o!G4LO`lw$gI` z8EIp7qPAT0O>}ty2(^-Bo#zm-K+v9_X3g4N*iC4Jdq`o!OT=#|T8PHhpHX?|kIe(e z+#4bj34uAklw_5KkH7dCp;Nu;uMwD63Al@&&mdh{!E$gf3F^J}{ObnsJV*!jvmTz^ z+%;0?Yjf4yfJrzgzA(yUFXLy@JjyB}dK9QQa{($yIBpK;oacOsG9WTk*!hVTK>ul} zJ+DrD2iGmY-*yQ#y9Dtt1t{p-hnLtu%dj~gBRDI}a8N5u0kuPVU(>y13GMwl@b!~j zik;)i-{nt_T6}c>FTj8EsKB<=zqLy|E$jSkZkiV|AN8J(;Mc)yYRwDTS^aHG`JZ1p znxW_JZe38nfNTFV$X?pne^7v0LH4?ysIR{b&Gpn^1NaIERg<=*WNcs_^)!Z8;+Gis z{#S^^`95aPt2F=JLP0epk)^_fW0> z-*EUIShq)>ZIASa_Qe?oq)Qro0_5N9vZ>YEC>yM$Utgm6RAsf(4kS z2~MOHG}jR*>u`Tqn(HK5Q#H0mIlftY_lLHjX;L?gDY|mr+DsL+jE|(Z3DdpbJ1(< zvbBV%3Og?P^KFDP9xdb9PXaE4mUhqKuKhbioCjKW{O;YhY)qh2Jbd&kwHC#7+M08#;UihZB(3zpb|qu#eB$a5kNH@La72 zZxbb3psxa2>+WFdWhkXNZ}IUn5V_z?&LgqGYM{oc$8-2_ik6Qp`S*ERl+GWw$O8`SK#wT+(j)$b zgcHpUIz#_sRnVpU@mJ51VzK>0wycZB?C`z;pdf+<%gedJEUvgJ`Gy=NxQ&<-_U$Jt z{WX`#!_9ui-J+X35gcG_=VcOWapQ=J^zE%37l_&-ghE7Dn62K8PJ8^)^pOWXk^9vA zJoOWXEVxp@OJ3yAV+>$4?|vU8JfUx+r_#D9Jz|{fwch;+NKGeH^L4Q{$8*+mLyOuc z%Md#^yLl3-BQs0uleE|BXepIErs~dvsH+65QruN5Y z>hII2qTq%IzwT7=3o-Q6s>(VOFWI4^r|oNfb~1s<-Sl39I__eO0W`e4ky4>K4z-N1 zc%4TGyM*u`6>MZ?%0625iK93Y1<_qeEc;NYx&CkWuVW3Q>dR*R+XV^^bqD&5cK4&-g=5^Dw}L?NUASk#)UM+z-vz zaP++J4?-#H_qN z4q)D4*YJ|&J~4ipa$btDYA86(uc8)JqR}A7F1}ELIZ9%OH>cH5KA+l znghk!qvo~cFqv+I&O$iHdor-T!L%W1Yb+gPSz?zAI(vOIL?LTXtC{-}-aaPv+17P_ zRsF=FsZL$dqd;>w-;x72?Z~dw-*U0PKxirnIrt$$p1u&fJ--5Hz;?J_|CV(5+$I8{ z-@0tix0pR3YnOEUaLVtuDzFykD*hYwaHn3IW`=0>2fIB$Pu zCpohqb~u?u)gBiLn_uvfhc9jCR>TqXHaun&++a@LI|^pTP^VHwe-=aNQz_Idyrcy( zeC!(6ypCuH@i1zlB)lJFHEV!MhF+(rblhJb7BEbNa!*<_$f-H!@QFgYZSvtf9Y8W| zlnF;^eWfwNUzth_G;pFhFx*j}FP>oza5GLiBFftsU5r}BR;!`= zh6KH3WyR^deWR=VIPMC>T$KR4YF-yiH2wJRi~_eo|L{{OIB+^W0p6q>bA+~S2anYT z;Zh$&hmM4#n^v;hUz1Il84_0UL3v=Np`S`QuN>PZ2(cvbrdScOpBJ87r*psqd%ttS z)*v(KP@L`8q!V$r{7zk9#_w-a2Q`yp*ZD={ri2oTu1fS`&vv;`&?Y z8|Mjmr@P@OMpBjk5K3>Q$7h(Pmd1=<~aMVF~ZSU~fkk=XaS-O7ZzxdEYM@ilWMmjWY zkJhb9?sJF^T>`RyhSA#6kv#e8iQ3&Q4ip0dm?IG;m!-5t- zDl9|EtyU^^l*oF5L1;d=So;+ctJ!eGvR^*05x0wW0l&QjtC-kAQwWmkBa}`O_7@L2 z5%+z~74C?5g}@Y6S<$94M>Z|4hMPh4o3ucF+5v#geFzhf!LEsmk_viiTI>(vW~+-qfo=DlyRcbVHdajlndGNgJRv^beH;>(ZEuUJewSQjmJhcPFXgoN;&P zJNMaVF|Ru=MaQZ}BM<*J>OtR3!r5c3h9{Ifein>2|7HR_|v%uZHz>%9dUNWnYXNC9ah)b0L~zp zr_c@1))059AFY|3SeCFLgD_j+-}-d=&Zbp~ye!k&H%Si~xsUs}p{Wyd3EKv4nfrJg zdDWM|R0!fD&oAwg1}RWV_P*|44NRpA_RWu=ROG{Gs&{o-WUDK zqiz`K9MA@Xb{cE$+P{Yhl18EXy&#d5M&sKjP;HY0LmfLA_HSG(7-?VpxgVl-IKeMv zAMyb)lX&XW_=Je^dz3;?=XA3xtv6Ffw!bvtNXY(NbI}Ig(=y_@KJ_d0bbHUph*VJDzkXNPeJ50&H9Hh*6cUp{U-@^+_KNjbLb%Uuy=)g&9 zm#oz7qmjV-^j0%N$#@?(%F?*f@(6%ARe4%Hi!m|iV@Y${jxCx7E(FZgYExZ}D>6UR z^6#@O_3tF7vo~(uRO)Ail*X;>~8rv*#m!0R7)(NMJ+Ww$Ey8^Hoea#;SU`N zX3;xTqk5Jp%k1MnUHp>o>)D0bp>WT6=7hlU{xg$0f#~8Lqk5I!=_UN_9o(odjeUo- zH1e}@w@1-FnRz2_coHBn`3+uY5G|4JGLH$D1)tinV?cZ(UvEI&^;6Wfi2B58Acj{T6kZ3Uju~=&3MEcc(zuH#(tmymI#FNFszaDk%?*%s1E{ml#)rRN4_qk12tQEWs zPF+0hf_E%dJ# zZ-@7rj*X@i7PRr0C$F*Qz|VDtE@kIITJjT$3=>e))l?}47V-w?YXb)!(cD;WQL`-r z^O-Gsi;REEE39*D+(%)BH0o2_pviEI>0r_W^3`WCjz3RIIFWZ<3nf@09;^e3Q8Uj$ zxY@QW$Mzm1{K3WT8+>VEB z6pkU*lyHLS?f0j&(+?Faq^_$!|7ALql!7rG7E*tnf5rFAnu+nE{$E4?c(Z&_qdNhM zZ`6L2zlv-Yb^O$i4I$g`y^8ksh9ABEe>;rHR$WhWMQKp)hk-lFTAfi7@i;~1mF}K` zMbGx7V38vrfA7uQ-BkP3EECUQ_Sf08&5IlToz?d@)z3toinK1jYEIsi24_33bI2*W z7%cy4Q7dsX{|~12oK<8mzYdV4d?qWHqS;!F+wBYFQq2XqE7RHu&cVQsVZq5iH4+aJ0!zb$-gsH8pqmxXR{WI@B+tKYEyJtl30Q!91!la5{E+G5YIlD7A(?9wB#52xa z&TKb_Q_-^-&tCC}7Fi8^`dli1Ne~Yq>Dai1*@Cnb3GNJa|8!T<-1N9< zQU!TbbM9rCI|0Q_O9^BKh@(C84%$D>qq|7tmr}rx?ZdQVvT1x+Kx+rblUdPwO{UQB zbdQv-tjzuS@vVyMdt1q4J;~!HZWNV!D_uUB73jHOnoZ`GvwZe1+tD1EOE1$^NT=F)qI#L?;N=sZ4c5@ z=rK9ArO-2+Du0_YQS|*(?U5Lxj=vS|dD% zB{C;WmF>S*8$$xGDj@;y%ltLheA>EXy6?)W633iMd%G)c+F8e{(~#kcGH4^KiCtD9 z>#xlfp+&R+PoVBS7QUQcwrI+^4{l4feksxGt59Y&WRbpCZ)=qC^2^`e87MVW`-PT% zmM#4_{%iEyxM#|*2A~z{`^^*M?m4yMgH#kxs&c~{dU-^*f?{j`l2c5+Nqsfx zJCJlwlx~bX<2YUNK)viW#m&5 zk*YHv3cwfE$YCo`4Zp$clq&Sp(i|af^#!~f7uR~FP{&Mp#~%aM*QY{K_U+&n;_}|l zY;mW1ZmSpgi<6+uVUR>_hF&q7k^d0SG`vaRm0v}IEa7VvdUjjle|=#0+uiFeOU|z@ zt`eoCsA^Wg)czKrH%59KSXJUvMQI&u2*YMsMAbOtScm1}LnVD?jPHj2EDmKw6Oo{CAVfWfGzkdZZk@O^h% z>^ydPOK)(h!lh`-375+{sqVy_On>Qp;YO}@UTb?*r!J8urf;^;qvwql5v$0e z^EN2q;u-_Ji#2z~dbLZ?gPM3NqD5tg=0-g*aEZ7^yBWS>as|t7DgWS(KZekgHt1s6 z=-cqomP|V)hp}i=xp4}eYWq-NcP}wLvCeT{OaKlo&2(X3=T=lZ=OvGzGVtK zjigC01u!>9o}XAh-CX8g|64>}p2O2VQK3Ng{%*bJgZ(vK1oUqgz>bj03D%Qi!u;U3 zib7w8;l+H{e24P<2Fs3)Yg0I8xPuIhY6KAP((GLaO`k;E;z`Kj->O z8?C>U8qBgbZ`3-B=`RBC}0ZBS-p#lHH2(^sM!(Y?UAs_qi{9|P`Oz2aQY z=xMO@0V=CM;&#+tCr{DtZw=+5M{5a?dbRneui@>AXNhkT-YE`_ch4-Drjwz51>O%ix1H1iA)}t~pD=M&obMuB* zu(pcs4_P8UKtQZUb}0(16zD3u(|1JliUGrNoZY@}9y!0GP&M1x?_}$gsL>PvI!Z_u zR|X32T20?gshV+|8y@hpM=%B&s%9IE(bB-V(IzHaL~OFLoOm>v-0%QN(f{fc+-L$T z-oe-i`Fp;eD5z{XOZQs<;Nvh_4@I>lwu3CWWq@#=S=5y%j?JW#8)u% zPV}{l`JP0`$afLt%!`P9bo#;}d36ya2qB0X`SsscpctbGQ@HcLkAo*H&a9! zyO+Qd9v&Ya=gx~}yoY-=q7EpJ`u5011-0^a(bun^9;D1)gD9*%e2zbGQZMq$fY4GP zG@_wIMaF0uer~GCl|7Nrq)@{-X!*dz4Nh>Z$yJTR7){7u#1knmAPPC8>Mjuj_tq46 zhl`5iRvn@LLB8l6Zn5+eVag?E%V~vX5-cX)E;6BoU9I#b?$+rw{h%?x=tc_t3s^Su-NkXn;XK zmXjHGA)b>jwn99evqE$u&OC*dApM1c?C62WhUZfk+6Qtdd$IJgDl+W6BtJu-(Ub_e{>?irF-L|m+~FpNK0KNqn+w8x7AIQ?ga9+>?tKX4!JEz zU{;kk;DMMQKMLL*=4jY#L3+KC)e7?z^;KPUPp5wg3P+|9lv&u7Q=C%9j|e66)zR+D zP?FUuBy=jT-5}7N%7a}=7UTEb?XWiV(Jf0&0Wdh7!6Q7MOVlcHdnY+T#!K~k2Gi-WG$@go3s_Oio*A&JLW$k2F6HU(u zeo5Mu7{Z31S%>6aNC_0YjXG~;oS8Oc{^ve_2%pJ$A_|)_d?M`8X>Z}=H%D2tGO!17NxMOZAbBvH?tOnEu_Wj?uZ9;5K#xj+rql;xu--*V5LO1M6NoQ(L4 z#0){T$QYDd4w%L5Qrs)Oqdr|Se%bxlc=Dii7j|FY)$>}UNqs;T8B#C$C>RPSR7a9I zPI?@2j$XeZWAmSZhTaQtkvDLxdf9xWo4oOtK*UajM~uCd0QFT`xI`>BQ$Gthyt16^ zD1ug;xBM5O8N z)HQIVRkN`%j-)qp>1~`fr}L?>r{A(c`0y=wwru9f+dzv}_{wa5*)l58;t(o9QId5# zUJ;Nh=k<0*8H5D<29KRB$u8UTdjt8^er;#)rZk;R4-4ixJ~xx^ccR7low9 zAd-IBbP2mf;LF6yQ%Hem^COFFIXPIg#W&s6VJUxKuI0@XtZaV2Zz((8>$9r|^?PpB zhuhMPy*>Np!IU7bOGP={XIf_bo0}de=ZAh{AC(jw9z$8KFNIo%c8;?BRMKRsaG$PiI zgDd4{2(XXfOh$xO@-3=Z7KWcCcSqzww)SoB(`W!yI$1%OVR?TtrZyUe#<~EqFgp|) z_b&Bc2go-+9Uu?(Cb$MX(@e5s&V2#MzKEX27hxmXqWDH{dFIgbe`cj%%sJ%>AY5MP?c>Ja+Y^kLSb8V{okZ?G6t70~78-?d_*)v*y zpMJSulpLm6o*BL8uLj$?gyCV~1#=nGFT49%@?iG-hs;g};_1}94ptzUKfKW6JQ)v%F zJ{bAG$%D3IOfM6_H~ERH`@^~%^Wqx`!cKT4o$AB;h~gMJbRVj zviZ{nTc*`+rpnGr?F*Ege??0YKHjb%0K%qpF3aN0@bFe!70JHuuA#%WJZdR1?0C?s z{*QtS=h80dX#Xx8PN_Q>Mj)|lOh3DHblS2CWgv!yBd7D^)H%NHROWFVuXO(rrw;0M zPS}+-*;wFBQM0=>T+z$a2LObMf4#uNWlsNnQiN#2{87|MgYfZwk!q?Yi5rCp5j~SY z`E(!mg<^*JDB^dtLk>ygp-92Ul(I#%yW7@hBv1X2iWBOMWo+ApA)~*n5&$nMn ztX~^lFK_cYq?lhx7$qvgZ4RkAb%2UUom1SM_;~KLfJ;Y7fZ5sNEFfg-8$0{3xn#T~ zxqbOa!s?R5>-`z)!xYg9lW4@{Y&@&iF51*i=N6_B*3ZwK{W=|c!MwKfe{lEi@l5ys z|G1Qnq@tukXSoWg%PF>1uIlP4sZ>Nvxunc7Im`^5sD!R7QDIBvR54=AX_I0_OgRi2 z6U}nihOvX$_Iqx0xUTo-_q}~Te|tk%xD-HI&3XTIQ<`Msw-A z?;JK9CHVvE;#mo9FPH2y&6$U<%WzAqw0J9mJ59kzMTb=WXUdz2c>Zfwo?=B zRwo<{zFz2jNA0&{@*@p@~@Qo{zWBQ;|pVjpi)!!#kTZ)lWqvR5jj!^>asczWU^lOY{Ghi6?AD=

JMoI{6uQOpV*g#tWDv35`^Vl!FpTxz!ToaVPT{A}8%+1MRy;owmgWo$G4P zJfqLoA>VYbF{x)B`&fGc(H#sPL9U75e@aSs*7h8UMR6+yYgGlgjLF=2BoT&`#MQiV z)NhOP`J;eqv473h_|qCbcZ&Pvoj>IkPN4}^^OZS8H`meykum`{B2T5Sj@rz%x&M{| z;ELE{lFNitK$5-NB@^n&`Zkb^GfaPXDg14BscLS>jVDiSKNb_+Yj(jV{kn;gTxadK zy3MRdZBeN4tx0M+FIH4>J3Tv+^CmKZLL>}M#>~b;7pwGMX-7rxb;H_RvO ze5P7mL!qEKfh8oDAYOyHTuf;9>zD~Jsqi&d#wJNh*jpX$i?@_G@6|q@P-pX=D~n?c zs^%svfQ96!q}5j;bK~%9Lv*j=R9+y&15P1#OlApMsCh@x+Cs(f$VhQpio0(WvxHcBNw4rLtLLJ(P#*Qw( zTx&y4K$fDP1KHZ4dD)LWbb3A^CQrIJP9q;Wz%v+>hg|+7j>xH`=RlZZ$*PRAN4 zQP>D$R7ZWhVdTUMcqMW)7G5FR8QD+qCXQ_-UE;ABQZ~8m7WLfeml{L0X3SmRG{q?4 zw%LAXUNKM-c}66+(@Jijjts(ZLf-B(j9vJNdzUJKFYp!9PBM#`lgvv>77GS;ZW(+J zsyO`=nFvNgN_p7Gml#l{^z$Wrj=tt5(uy3_(sPyqRM3xi11`LgLXprZUDkctl=g5@ za-^srs2A_JV(4vIfogBgI>Ur`fK0tM_eD004$6qMYo z)FX_TdrE~O8@tGh>{8yv!G9K2meu4;Kl2xB6J?PDR8LoO)}m4hee$;=Z&7mDRr zt^3ehM8USUTS4wAm(pfXy=}<{_N{)Ji==^7k~??#S}AP@$8OPMOU_J*)EFab^I)vH z$8?5F94UKe#*j%Ekt2adjLp&t5V3>lXG}cdR0_J;FUScCl=L^ryu%s;F@>U1thki@ z_tS21x4_qR@>8;}t8^^cPtHI0hC@I|m~l->tQG!R%iC2@M)iSCeoXL9UUU1~W@gMx z@8zxk-<{-2y171!YceLv+Vq^De+~vKZFi80{tK1#n9q@WOzE%Nip8~lQ?*_=SZUaKQuX%aCu7i+mNNB$;;kDwHR>J&!c9ME9bB|E#cwjxud_lX;lhfi zJ|58Ps+h?2gUrXt-b4!3%_G6yh5om^vz_jBXZKlE2kT)mn9)0)-mas!9lU)jC)(U6 z1|3L~YfnhEq}A~DaIPSNTfi)#U#jo-lQxh_k#+W%SIGB=TwfuZQ@Stzx5lJwNU*-N zQMDu!fc)~2V?j_=*1(G3uzd4K(nd3D zFuDN+QZ)B^E~xA`r;1YBM)g|?y2Z~j4nvbfmLP53!<$ z|D6RC4~Qc5#KQg|S5c=+KEQUB+Kkn2fw*=e1#kq6J1T@V#?Vthso_LX1w~xZV2_<_ zQJBRw&eD_ciIXXwFmZ>%W<%yflYmGP@k$&Uo+Lginroe2pKuR ztl~Ob5w5&Pui4#`Z6&%Ln+F^GB6$6;=aI4FMYudR!e`r17qHL4?6P*hVUk~YUQn5r zSERxf{h`d!$AzCmod(u6-&GzpnNz~r3KuIgk#1AlP83;o>Y{-WmWO%RC)Up(nkR5K zT6nja8A(foIN2o5kE*+Z9UEL5>~dwabe7k)B{6w{R=aw!hG9M>sxxlo4+Y>PH@ zHm_IjV4dZiS@=4{kb5tNR=+!}$i#JZA?4RbL%UK1m+iu)o`_dhG&-6E9|37edjU<=~WDw0oG4`ws-_jEyH;|E5fZ;&4&ahVR zNS-BpqzR3bo2C)gr&)pm_Qk(yGq|@#70>6s06gFPB9fd^Gu6+PO8NJvDJV)+mYaJb zs*fvK-ym$51J(4`+hKYFgLwzl++z2c*B&`%3?$U<)%>#q+rzv9PfV%GZa1@EyLR5WOG8a77EwtBe(xLihn*9aRi=?o>734dA zz-Gcir{jVs9;m5hY8v5gGiajJ_MP)=$0L*Ar|@Eak%6BcRba6uEFJQb0U%y zeRZVt^3<#8=ZjkP&$}6KRLQr$zm8)BVrPRpU1c&Tel5yjKIEYWAU3XiJdDWI$ztdDF~)mdHlhD-U#*g-cL4m8h&boEd6+6?J^^qK9K*0 zKwd-ePyJp-w+(cL7;xRGFz5_*aq?esVCS@#woWBae6`~u9BpTTU4NsWJZuh;glEG| z2SS;}hpsm^ubhBJRT7~F+u>iR7pWVs33tAbuK zf~H!C*?C8iw(u%Q^=H5EzSS=zD|fke`km;Y6#2kIA#op@LSu?Zuhb1TGFlb1&8W5i zl7q3H;M3sw)B!$7bWgk=^UD5fIj;6P?ak3D2t-oxVsdXEn$2E~y<3~TDG?JhP=8x; zr$Y|kEBUjR{!43^_9T0J^izShzq(8MXgf<2JxkEET-Oic>SG;K+;D9o_lm@6CCq2* zG7&5xLL0-P{8D&RVD+W}bPkjTh#IWI;j>N|%K@Ivk2;9VLDzE~JsP)GHZ zGRRP(OW9%ys+(tqAWe}!VrlV!)sUUP-Rp^j@Gl_gD?_uX5$xAxa&K5XO*KpP z`}t~w8i8dO5D7eOrKo`+k+A=6zE{n5uQ8MF)i?GCkXHFPidfyga_l}XRnu3U#Iqvp zL^{jAk1G7_2a4nQe15j98$`_flF@Tw*@&L>%{LO&!Jn?WEl=mtBy;%f-S&#KDT+5k zI#&WwuIKF?sokqi$=<-G-gJclObOj=CLc)&bfy2k3yqpf50d~O6#`?m>chEmzRNtS z!dzMm{gjGj-gKJ;iK#lfdhno>7ZOemnP&J!NLi5)yf}t1?m$}{47l(t-O~!&CVz#2 z;x=+_@5A+12jr_4uhP;d7eycCG zLUu*L3Y|BUERS_fR-c44|jemof_2`=F zf9YPnS+CR6P?O=1J4;~FR|;O&z(1j&c>g|!t~JgHA)yqZ_V1EO5N`xuOi>3=LW-X7 zik^kAkOIKo0%X^aYseQz9I^p1w*)oh%n184C0h}f&(m8IIqMlZ$On#aKW%azEk6fD zWS6xKJkOCRxZ(h_x`RKlMNw&ajrD}|KsDQa)d2~~9;&G8Qe%E_}a~TyM ze+)o0{cKx2H!`$&QyQ<0cc~M-(yAYi*wqTf-S5O}n@&u^<@|}NT?+^xGWfH5`P+E6 z5Qhs8m8#}q^ic7mRln#B9{9VORUn)HrDP7Be4YK~)7kNs{%oPPeDZFK!AkzIPLNC- z&!9PUX81g9OaWAqdVbu3SxG*(h;bco?K^3!yJP!GbWsZo!XN%2yt^sr#u>zNZuu#u z_}QrdxIhHGs|r7f1;cdKrcq) zO5pq5x&RsZ_bcP+ZlMS_G2lq^CZ6=N^4v3+?x0Y0XV1lfs_94%1dE>WIqN3c`vJ6V zS3=4?0Dp%wbz3pSq#5e?`z?49tgW&B<$Li8@h!=H344)764_4t;0c|Y8gTKLuJLnI zi__7zyv~qv%hi({h)e4wyI&YsbZdwq=LOoOPVD-;O+Y_^9~~^Wi`QnH5D(i>2@_oi zyK;4Raz(JQ?(E)SeOTe@p-9cQ4IGkN!stKRl<~*C@ewArId(y?aQUU)v zf@T_lacTq^EmG{~Ao#*h(qD4`fBj2cem6Y|r5%saSZFM^+`L^2O)0T;KgKWdyHn@Z zn@UXlTxBWtGGSULx;Hyi$5M;OBqzJgGv^TN(Mdy8>F0gaAVLCvVxUalt_zMGBc3>g zsH!Y>Wv_W_Q4?yI6KupAEQhD<*XzH7B>J#<_+a)nlYXY8g6_#Cps7Qj#2}h%vy;cl zTeu7V%!&#+^feqrxUf_39%%C3uQueDDm5|6oQvLdgI1?HJy*RD76#ECwM3h&L&+s2 z3RLkvEI&H|c#W`jsoAzRfLRQckkW{GYdvzEsy#d|x`o|%}ZC(Hk)||_=I-S%*~t| zJziHn%un2x|8mpXcu(Z5{l^@tSLUhw`}?g#gPJ+(7L zW0x)2hP!u3)oYB{)`pAQS1)3Q-$s-$(WhPeT&U+tUD?E>B6?wxFC6;{f~=7ypCFd> zNk_zyBa!hH=Hl*TKf*+Drog)+i^wxMm6{yRz@yGG(A;O@?I9nW@3VbMBgzxSgJp}s zJ2@O+N!=g@@HYc&_q8gOh~=LLLD2>a6C$@HLQH!w^O|C+2k}v;6Ar&ao&oaG_dEnt zYsYq@-<239-~U96u2sZ>ZmJ6A=U24R8G?U)V@RYR#1CHji_hwliwfYxaM8P6hcKia zb1Y2rlbwG#;SjC#)Tz^fpYyVSZSdxv#}b@rww4!q)$=@l5<9FzAno~!A@=fqS808! z9(mL4+?p(7x^uMF(^`yPo}s;RkxhF07{-Jz`734hy9U}a@vY)#jHiTRlArswB#Xi{#o5*pwBSsF3WN%2WfB zKS67OoymHu&L(a43js>8ZZv0>;BIl8{!8+`wtJT=h$g?U6A*jCx^d}i71pO}B_M-r zQcsVZY{qsI%Q~jUjAdh-3Ebp!T&Mga9{>cLiBnhs5^Elo0`*YJ+eEPb^VW7J?TvT5 z)HK?Pb5GVwk1sLtv0sgSMGBZQkP|_};m2I|kjLm5w|m^?%)gf>DaIss^6kZr_I&rc ziE8}QP4my>*%S5uFcf>6dcv8-qppsF(jB#b_x+V9V77@xC&U)rP;q{O34E~AK=`PMi@LE*uYJqaVV8B|e;%oV@U_H-;!dq>yW`m;F2Qg} zuGLD1*Yz|WUw>IT@w?wTC8}$JZww|aT)KIw*ByU%BE?B5-|PtbHR)Aa?z-3Lm__vw zEt3lmiij^OW9kJ>O{S{>VW%jfr9}{MNL==X`>~}zgKKP92OS1vG_F7dlw!QfM2*DZLkAOF)mzvo7{Kw3@`C#6l#9)U67stj)Pd&gx}GeZ^u6DbIZNx z)S>cwdBn`7@IzIVeutZdzqu*S)wvx68=1bzUs?zg7nTS0Qb454un;1jx04x@&XEW) z?N_`Ti@xNv_PaF;am+fOr%9@X_t#ZtJN+JT*dpJXw`^9+4kgFc*Dj@H6Wx>7y(U7L z{i&2kuXH?G8|Q6gPS`K{a%91J;|ZwmMYwH8|K%w(9Uh%1c;ANFhaHPB6+m}9TSIB% zHF;vuj$t3_i-RlYIYBkZuGauVkAlk(faoYy2XJWHmbD)N`PhH~>rixw-L4+YRTb`>4 z)duPHm%^ieX^SypPMj!r&7AXBy`l;7Ea*%~?_;_<@OS#qv|R1nTXsz+q3$5h`XT|fMYkSnS3hm4Bi9lz z8~G(=Q!8D__4t=N_iJyif1yfjP25vOjB=qCWL`hy+#3HdWb`M#a)EwS^J7G+r&G@F)n-S zC0QpsNZI$k+N{|CJ5T5Jb;D{7j-Rc2kc{5;Vq#SzuB+1`&c{Kd?d)4PE|q7-HXwMI zy48nYrSZyl0fF^-B)#s&C}cBJY2mI0FaAm-L^R4AOwMg4pzg zGH3kONNCGexTuc3HRxg`RPKlvn)@l#i!L&70bNAMO=Jlr|{h z0;5H8s>okV(Jtl?cy$`Q%;nM+Lt4xZ#}%fU`QB>D`*#~&^%9loFYVrz;Jhdyp&&uY zOS_o8a7)tAgo-hlk7~4t)4q49OQ`er*s6q8Wh~Ujw=y{a3}9~KXx?yVy>8T(on;K#rv(? z#pz1$To`zTPF=)!97RsvRWB}3J~jZ2|8TIKhOZt zOVwirX|^tFF~oJHBOr%6&U=Y#=L9=54y9L=v_5B|*Rb_g?>$oIV~;1|k_T;&dOjVS zAJSqBK=^8#t8P!jV($U-;llXONBKiekN5%z<9Sh&58PYZB$=Q(_?~T>-Z;N{-`czr z(Ob*g0FR>O>XSn;qA?}#7KVDIp=D$>5R55j1GYXwyLg*Tc#hXlzn7$rc9h0F&MG+6 zk=bcM?bKOLW_FrQRNhUbo~k!B?MGXepxxt5&v!Yc)OlU(YY_*^6Ebq_sz9#eb9Iv= z?j;Kjji0@p0n@PQNKO(**dmWi=Dj}3&#>lvbI3n%isKGT(0R$EDQ2sr79l5D=0$+| zqF?!+g-C#+1^#*3N9+me;`eB@)7kQ9B+-s=c+04WzPu6>s+zAU3u?TJ7(r7GJVbqirjd{lYQi zP7=C=U#_ZoWP$VIw7w$B*s3)&zs7_-K>%C#lc)FEVpXk>O1q>BaO6u%Qzp9OiFaR9 zK;3A!C(Y@;0Gp2JDH3lF{@~n_M{T2woO_CLneeh3&ro{EziGUF+KUS6*C6<$0j~Wgw&XtdH7sa_ZRqyZTaI^RfZtMKY z%VMWo%O2OfkmGE`$5sCDLwZhR>&Ye5w@2TVtNwK$$fZz(dW=Y|i=5L`=1PTaJN+$} z`VJ1-->wn@md)8MiI^nyT!Gxfg;-XdZd%3Bd7&DUEN-|~nd9}jAHV`Nk7jdn*Nrtd zbr$2t&mOLVbgmqFJBfdc(q71=!IAWArzONIt!wWhKJy2{A8m-f zpu;PmUOoZ0>YD(-B4hbRTrTaTq5HHuo6z`yj2fi@#br+?al7C8 z9#{31iwMTlm^Kr;=&KwTN$z{b>Reilsf+GTufd5@g*y)V3Ar?gQ%j@VkJp-z7m&q+ z=~R+*;y{}siM2TNvlkfKEpn2-Dqg8)+fRS4xbXk7cLaK!A9~2y90yKE#kYXNZv73{ z)EBD{E9$-S((VQtQQXDtHcIOURbK@+&njE^P;$r}gC$$w0wQ7#SI*7!HfK30V9jrH z!vb98_EG=q*XpbMT|tR}M061ooZ2l~Q=1B+#P0{K5{?yA)VCnqhJyofClwFy%M1hz zI$VH?-35Z`T-Mp%yt_zm`$a2Qc1+Hq{Q^+(uoRUV;jV=~3S+O)x5r&Epf!}9l0R;g z%}gOc-uD5OxVPV9zUBChCpHVW+o`QtM8Kw6B!k+#m|xO&{9WZ%e<*)dI~jj3FF6mb zfDU86O&oN}5NzAqfN%0&xbDDFOXd2E^d-C{vjh{r+nqF~On@1~sYj@I#hR~Cux!BK z@`Lc6F6p1gPjH2Whp6{R&P5}zcKB!J%ZfAj(!#}y_ZoDKR;8;a__~4XL~hk^L${>jC(MA z+DUvL6D?|rfnFX7^r7uI3Ni1&)aJbKTF13ka`nY_YQRF`(5uRcW(gmcn_l?V8S#+@E`pY+|O#vX$QazK^SMzFz1tv*S1xo&}u`XxXuShvK=1^%77htlM zM+|;-rTIDWHDIF}^Vn=BSN=Nf)r-0J8f`jaa;Q};?8#?Re%c1bw%(o56?qSay~meW z;qsJ%78w_*4?qY zV9wa_U%3|Njqn+`2K@GrL-1xIVwM0p5Q=;ZeHMjc5Hft~mxx;ewq`^m_x&XoY2V~S zXyX^fM)Di`f9o(Le+bO8wU_3^)NdbKwvM?jcMlt!0BX0SeoE?WW;jni;zKn3?Zn0} zw)VI#O43K(g>mh|D*b5dL=TdD4rRK62@l=lYqNC#M+*G=_WE$~Mj$}wbZ%&6_|;I~ zBkg5if2%14+`QX-rjv3r8qHpGBnwRiXdV`QGWuP!8Q6+np~!Nl&RrXI%FQ^XVAY|x zv=+Vrb+!DyXTBQ=g*>bKv97S@FFo*pV0^u6SqtY=5M6UPUed--yZUkIlg125&5-_b ze>TqatWm{wMt=eA0a8H-s-#5S^^=-Hh8C)^_KZ0_D4RIg z{ZMhJwzVuM(ni)jq#`>&;Z<8jqV+Dw*ZQ zTld`*@o9bxY4A$_yc=)IlQQx{w#DAY2IknJ(+BdRF7G;jLU)&O0(cagRiv>8B4MIf zHAjazWSZjxL?0HAPcit+F(GdS(!={pP!OzkxWlOUVOZ{e*c8t{_Vj^6`KrmYxUZbv zw7H0LRPuOPk)UvP;3zaAUcx-?U#6PE`sA3%<_vib?~K=uOah1x6nApXh8wTyBQk?q zCgFADr>e0fAV;$~S$uKObh}6SuSV!ibcGv#^V2eFH7#GmS*V{}$0pCstb!Wbj3vS%z7b zSLNJVUxz&G^PyCQOCis21mxXk0vm=F)+ro&%eSya{;h32R#(q1R*_n*{Hfthqp2aL zQ`gQfA#0knUG!74BG#jcAsIm4GHc?u+Kvd#9|mzf86RFDcE)Nqr|Jz%H60^S|Z*b_PH)(wfIHMaCp?s9Voay8pIF69Tbss+-3mIz5 zjm?MHUZ4Kne!&cNHgXPUO`^5G;ESADujHnoJe>-(>s^@+tUs*%-Xds*n6CQ2_Y!R8 zYynQMqO>3)f>Wy~H!D#$a1N3y2M7l$gE=!DxVrMdafxna!92zq_%`V{vx8|TUppl? zQZME*JtZF1f?z=v(5w=by^907YWd6f?|HE`Fqw3GOkZ(rK0Lr~7sr+i8N>(bDbT;D zpW=+#BgiwwC`D&&?^r9meY*YdY<_K_h21alohHnkBw-LEUJIjAd!;oKt~Ywc)- zB~13lBqzfZ(Mpu$ChFsV-W|NZT7LH!PcrOG>f1Mdq#;-08JY3)s|^U+0qVPEMnP|( z&vY`|b%uo&R?g*kda}Bnk}1YVHtHVW_D`=%`3eE18Fp)x;8|byc)I`0GoZ^k;t`Y@ z{muLLFE}X&{JbRD{JxLlI5?a*U-2xfZ=)IlD3%bD&5F@%`eqhN>~9aIr%Q;j_)FeS zZHo{a8QGaev>s}tz-6IhwJY84n0))s2jN=?lTflo@SwT*+__%e@pZNATjG&#KPxT_ zHaSF4k2Ji3x_RIu%u1S$8fh49y|wD6yWBCM9i|7yqbOo2>!@=NwBq~y!3`d`P;BWj zq~a8DM3QArx>N)*s+tr_cjM}$kTGOU~%%4A_Z_^)F?3tlIC_YxLpFgd~(?2@SnbF$m zkFhhlJN?OR>Hqjask#JGcu<>8WXLD9_zP0dlhVf-nnx*nD*ngj{t$pZ*Fbup0&Z4n z>+4h&6c+M09i!@iHB3NpbN;bSg%fWfEP`N-;IYE$NAX<_^+a46dyX0xidv1=5Yc03 z!IZd}GtN965+N-^NjiU)xjWieLe?5VQlD-h9dSgE)~9=!9y>j7XR)9P5|KXA@RVy5 z@p@#0#x2u=RSdh5h~Y~WD{rPLc+`gpq@&_dO##MEUlguQ$%lsM(UooV4!eZ1KFDI$ z7uGu{u68r;?G6lkgreVzM>Q+H*`2~)MF2wldGI~ES7D}=_?tL;vh+*Il@}FPJhnwG zqQi;1hIGRN!$<3{3-!-UXG_>#*UO3<1thFeTzP>43|Albh*88}OJv)Ihp5T0X&M#e z)_0@fHGNMAxF-ocHr1OvpF)CFPAQI_Dh)f(??v!N?z56%iXoJoUX@fqqzl@Go2my6 z$yBHN3x2nnYKnUmdHP)uQ`IppQ_DV2O-=lVy;NMZ8^s64uPai6K#DM&b~-&_Z)fb@ z%%06iyQA8SoEOC7)pW-|l6SU2Mii)S3@|Ffy&2eMeKE^ykpEXxiXtgZ(g<}gT%u1Zvi zc<=@8L$y9MOIXnx7)vpRl7-gJ|C)DHnx&=X0LB{msjEB$x5_TXOdm=Sp6TPc?E2Tz zdb7vJi%?U-fRM|VPpCa>*tHqT5T^F=Tz~oZg-oFkv<_7F?&ZZ((6|1za`}H178b^4 zA*sq20#|BaBg55`e*4!B6;_5#0CoI&%rwj_#&i^Nll$iQzqZvaDfCz|mpQX}a%s6hCrQMSmm^0DNgQc& zqzKnV@s+p;M&38qI~4PbBd4gb=*$i#5lCQ^SsDftEZ}s#h*sQZ15w}n;I}zgWmiFZ z={GO)E|g4!3aBKp#IBKf4KA4+JDFLxVU&2Q2X)blG2nuhD&+9-xNx-3tHt{;bQDs0 z@SAAT_RQhPxG&1PBBg$M6&gc)+d~1N@O(YiD%J-=Cw$4uM;ZG#crHJ0?`6g6-?aj} z7#|=1d{3c?=&fKQ(b#<7w+T6;dtCRI*=OE=hyI$=cPPA5`1iPk8C7t)GblGLMqi;7 z;*l@!?|FUjKJ3#gzGVMx%ZjfpqJ!?YrNpfAk|j6QA?S(>{f~_61So#U%zBxn zXaBg4A@bb0%N4hIFA^a`xZRar?-X}h#z;x|7B&{^90n|~a4yfFU3@%GWGw6VGu|w* zRPLYuP?WQSeq`tP!>lb8H%P)JPv3kag>wB3P9C4w(C@=4Bt@dQ>3&i`2{_Xg94c*> zJb8tS69}>xA(1CLs5RjuVoq$m06j{9;Ye8_(gN`|*b$RTs=n2E#vNB0N#-6@?s6pD z&-a^u?F?RW1tn_XKibjn61Elt!&`0c9Uja1V&5oUa-V9D=YEEQpEegMVUyz*P2IYK zGv{y|b{f3nsMG32HF{n&t(}_1p7)-JTvRysaP?KD4~rA9AtaGKTI_Q8=aGshtI*HK zuXD!h(=rZFJf7*8yjqKVG}c*zRiBp3_Les>>Mv&Titnu-?#_BH+qhjXv==$rJqcx~ z^~7NMU26x?d%{!S^w@uvjU@Q-O+M!g!O;^ej=5e1T+ zfAbGr5gam90k8dTZti!E9rwFkC23In7L@}`1YGSwN!rIMi0$pS?$7NEDQ`xu%$Hso z3$0w0=Sg1eLTmppAGBq^Z>O8%koP{7WW9ahB7gNi9&NKfsYNT!_?WgX>q@Y;pKLOO zL<-Mf99;<~o+4smg_i5TPF0$qXCX`53}#Ijt(Ouuivmg{u}U`ULPbuZFr&652m^+m zc;$}qhtzn6IWuVGE?lQz{dw5JdsvYT-u&YGPb4U{}fb^M_V!_Lm*g z9y@ZY+V79I^&%(4x&UqKgqm899?bb|p+@?!BZlCW2k0+#JngW_kkZC}3yH}41=o;@m!k$g&*c*|h78vopo6u2=u?Y{Dmi{-R3O1(E- zM+S$+&kof1VH6kBS=ZkmI=cTYx*)*NQSWvfg3FDaLVOHk?Aj~3&hL!Kn%gN7NADGu zda>Y*O%pHB36tIMMXyTKvNUg#LfL8yya-gbG zI!7>g22v0q`*~C~di}_*^IKY6uNoAD9^X%~;ij#AOX&zPd~RgB09U^~{Og01=QS+R zVKs6L@c_+rsB=|jh5q5v#!^ex^8RpnlonOoQq6SvFkA(x=|z5kY+B2GSTlzMmlTL= zGRZm%=#0wZ0Sot`j;^29eC=$(j`{JY!|2e7i{0|pf*LJ`VoA%ugPT_Q}muTyja8W7q9o{#?r)ldom23eznaq&UD?|qdO+44Lj$u zPCbjo<F0gj}aLKyK6m8XlLbvh|Yz=BsAW*m=G(7TGSwH&P73rNS zi9R{k*S;c)wP5(^6>&o0`+Hp0KfDHTh?S}@-PhB74r*_=i>v5^jCL3J$j2Xw>r13@ zdkX=5aVSKKWxY=uNp0J%KSxUuTNr-x#AEtN>Xa5GtH{5_P2-RS(yoVP#4Z(%-+3)^ z+A;!*iV&hxZ2#qgEAK>>#QE}i!nO&!ZW!1t(L27MjDH+va0T^_x*9Pll1+iI!P@k& z-rqQqAKSwln^_!vN?9;gxUw9h5W=;{(cXRXMc8k{(LN>wjHVn2_H|a3Lss}Barw?N zlA5x>e5XGhlU2;x32>f(Pm>X;BI^0je=PgSd7MD^UK6JD9A9TN>Ej4JFgv$Y^)bse z3q2Qz8Ly)iZ$yQ8da*jadR&R1IEtvJt724FqS(i%_HmPvZS3FM0y%^sq%{t7$`)%^ap|N8I)b)xm z>yjPDIw$%=ZOi6=M2$f`u5-%*vs7=?TUegQF7?xnA&=M8+jvpeMI>!A^vC6fY|F#A z->X7@UBkNGW3Ekz=?wYBwloP?n>zeLIU3>Sa^%R7vZqg<$^%Of-rnNY+b*3>!sMye zZ2Ltwc)LTBKL*)qs~%XXb7lOD`&sEHWkF|HOngC3XTX?t`Qn3z0Ca<|S;g}?R~NKM ze%Gi^edL4}({b*X&EErfuml(FwXcvP$rPZJN`%u{Sy>)McJIT7!(qOUek2Q?$8@2{PRVc^qf&!#U__p*S6xyh7Uutv zSa=?*%PKiAtou=cmDUFY2e(1O#Zlmp^)`_YcGoaRRt`Yv=!4Xk>?HL-izIP zdGNY>G>xAx*Ir1MF%x8AA|r5Lr6i6}NGK2Cx|&9r4W$Yz`U2tWf4(|Lg`+n$NKIB8 zYHIqsxw#qSXL>q1C$C*7jK4)Ohq8nf$$xxHCuY)UtH4W_K0%OUZ#B9c%tn#5tW{X< zr|-KlZMfZ7jTA~bh~h8XVWDhYXn1=UDUwu<68M^8%<3NrQ+s*0DTYvza7`c2`^Jx@ zSK#aalXGsR|2gUZ|AVO%cUDQ7?O<%s@2m2CAgCvBzJARXkJTHO3mB24NlfS4fXNpA z^2m5>GAKvz8pU-W0NdQSp;5nh$Qdrhghw~(=j2X2O@Iz!ASr@HPc7QogYl-B9bX>E z#kH#JhZqU!JAU;~XfN;YOMvAOVVNub;_mRLP%49876cxqK55aaVKs+9E{R4<7SNjy zTW*&Bz5mK@%2wPumt$(Mp22_5a2LPtCVqni*8rl&5!^#L5D7*wl#rQj{)+ zY?=6J$U{kwx;Ag0H&u%qbGd8m;W7fXS2|@Kqv%+xv}VN*rGeVtE=7C{`knk>wF~zb z|Ag(3wqP-z9mh8>l3Fl~iNfA7J8s%2BIaL;iitdYHMt-N#Tvf4zH+>A@d_r->8-ls1>+ehi{`#?Wui zXm&-c>OM={a-n>)%0NnVr^f?gQB~!}X>^MJ4I~EO7v*j-4pIsEu%O~l0fl%Mb$iEM z#;^X2@iqOm{pIuNB@%0SG!r%PlZDpEh(c}IOWD91-#9J|d_?TaM61N7S1Q)1yZLY)t>rE1!xLuP5}e;g?3cI|0AD9q#Rn zihN`dVY{%VK0kb$KTbtxL)QMAix}hwDhn>fT^xH1P6B}P@lR{CU`z?UrKfSj#10F} zhLJHmRAh$V4y|-W`7~FdFQh!ud`=Dy>=nAq;au!jbdXeXH2-P0_S`NYSC4BF1Z-GB z9qVn6!6^#X5xSx)L4{+Ad`hDBVdO4xq9C!(lzyT| zmqw0=zRJs)zM=~H)A}q$7lhc}F5WrBC(g??U}PFU;_lQWkPEz6JA*6Q zeI3?`jFbhMbZVY~LI@xHG}kE2aLTPR-WH-6-aRX5qG9tfkzBu~|6~Q^>(Rlc_$@swy0trP8L+q!k3eWl}{g zc4!8UjVjhTG3}0iwiVL_%m4Lw@Bhi*v)z;hb}&hiycb&cL*eOxjzZ6_1A6H3djh^~ zg?Vw#0L_6-IB?)VSFUqO#8`K@7i~f$>`O2%)^>u2*+Ff%c3udyOd=>ZCQXfv=`_C; z`!R?Rlp?GFXR4-`_yTQkwxGb@+BH_NF>tov=34|X^Y-Y-!-ne_9zD9RL+7vxY}tNveMV|aW2Po9(WVxN&;j9wz0+BNQu&Ojiz?3D<*&Esqx}ij z*wUD156bz!O<4DG7F8mGmlLuGQaP2iM%LKHXqt3~VbS~!CN|<1m*h_P%HLU9IC8jD z#L_~{#5OHIdoFoO zj}W8jb09p8LMMcM9bl*5`Oti?DQk@}yFAqZ@$!ZM01p>aY@hIoqT8YTo%^SiX!zQ< z&`S=BYCmG_WM1rB2VQ2reu5$8mpBxJ_;_6jhxcGI{n89H69iw*iV~|poBB-GgyWsm z7PbmU{sceSqZjIQ`_MF4m-QFBHDGJAl+a%*J)XHj-&^NqfH(Svr#P*|x*Ef2zxwOZ zG85Ds}J$!}DI@%N8nE_|nlCn^K?`5UT;*wAN~r0zd5zo=1TP&g5?RmX#&+McRTlhN zhkPa&*NMC{y$J2|zWEIw{1w!~>pe?Z;8^+1^mIOr=V_P_x8_)7Wf>zI&?OKPH0+ce8{NGEqge>*#0y;uqP zS>S_0MUWn4@?E>UfB>8uChGsiN(Y!fL=y$bx)Tu7h{5Kbzya(2-$v~*hZ*`hxbVHG zvK2JzQpkTy0H}i9p5V8g9*;4Y+pZ`>suoIc@GSDMc0m@QvN#DuJ^8D`vV6`>J`p`i zuY$C-hCpq|hp11iakkS=*g`Sp9Olbsq@hrE*~j3pu&Knpi5o(9#4zwJF+@<62*o4X z&8Hu~=LdQXpcsYK&yV=FGXFaYcK;^>{$G_b^I8i%DP;-J$!yej%bX?GIHmIM#k^do zKWx{oLEo;jR$%#2mArv0tSb@q2pm2jlwrgBIlQAU4g3=(7(_Jc6Y{MfeJY+_8ps-J zjY#p;Lfl5A`mwC!b=|6U-)+ep4y+NXEckWQwcE+22h+F?$|&Gv-{=>OqhV%UMyhC- zdsjh(d>W2hzpD(`?}ax)wE3A)1mio#eP8AeZz#%Q0}^`jrs&2E>YwYmaO)co_R}d{ zpE8$sa0+%D6R9uBP;@qFJNzTX^mE(hZ#UNNcw%b*?Goojblz_3ejWv;2T2e{yhVwL zr~&aYB5@#iptBZ%q+_13r*8b~9##*k(8*UsEme>&f1wO_L4P%<_BHjl!+uWW{r>-z zcm6R=T~Qn_8m3Vf1<8y!N(=_X@k1tvNTD0Q6j|G7vx!J4lQ~2v1S-FMpp%YC2TTe= z_|ZlObWChTEEEb@Bgmja4H60zDJz3gp~aRT1zPBCOR1VAOP1_E|9r{KyYJrn?mgdg z-sij{qO|c_>vwq1d$wt%wTA1JpQ8o=ZM&XAdW@ifEcHa^ zJd(7ycl3d3&62?7w7qz{sGj9%>CK4<;pAj!y|P3>O__ahG~%-47Ej=AL7@{dqAFD5 zb{4IuFFk2ltM_e#%{OLDXR+^0B{MvLd^{bW#WOoB>04Q;c1}R6Yf+BF=x7E?wrWN= z(P9<7rkUe!Y1|hQ)U<}!p%s&z85iWk^EgqHzybMv%Wd&uiJMN{!H1oIVQvS7T6Amk z;ONHY(HU)vO~o(w*kW9OZ*e+)FP2UdEEWym&PQgTCn#*2kUZK%XW+D>s;IO7;+yhK zDq&+BUK0mL(FGScy5H8Zmu9b8`KnROj-ye+Hn$=s3B@><`aA(u_J`^m!zFN9>KS%5 zz`lXc6xj-^7TWnr{_lm}99*b=9|s$Q4zlpgD%aFt#Mj%N@wm;HoSZo>bn2J#0jjlK zep$B9WM$G!Xvm4Zm+7*V-XlAEq6LQuc)2@rw#|)nC3g;rOY2d}#F^uK;cHH8lg9FP zXAhp-#V1l^)wOn&vgAa4W_x(lyNd~(`N9gjot<4tpvM;96(gpo=9cuI5cxDLw?Z3p z(s9YDYOd>7#c(N6x{$y*Kw1LJ7+2skQ|DGij2~kDfT9$9?2sMvH6ePK+1L^DD@KtQl~5k(g?;!e zCkcA8FtRIskHEp|NCsRzNUD*TDaR$#WLl?NK2qS#_Yk6Rm}W+lJ~8c`mHZM2r#`B= zy<{?A(mtSPp?`$A>b_1vZSJP#PNzl0f9rB^J1yn{b{8e@KS%a8JD< zA!<3S`f-fQ1V_K)9F0x{;>qej25pQwdj3bT{g_jxx2 zwUBfL>Q3wc!ALQyNu-y}mu_yTED!ga>8ABnMkp`pUF9*`nAHU`gvD%s78YbBtH znc&WjYV0l?`MK|Kq{w5@bZnWARL|7kn`$mk;EarHbeM)A#vUlSS627-mL2id)}3@S!;b2Lf>Ngk2`wnPPW7$UnP zv7V|nf_mU#ZjHJY(ylPh#lDmkDC3#8W$K|K>$1O}Y1gKCM zMY89yU&`95^xt4BK$72RFXQrF0?v5KMR{a?DR2G2pk`x&3GiUQK%^Rh1 zU4=Zbj(0w8fMefcUg;@Gnx`GkyWtsXoJv`R*N5g{pskTFHMEUlURMtdrK+YBb7cI% zcI5WY64v9t0>HnG+{iQFXzODl3`h@s*&;y?cbzPNea&DKvl>^FnBU%&c* dAW#@ir8VgZ*dL59>(a*q1O3r{44?2H{ssa=^{D^= literal 0 HcmV?d00001 diff --git a/src/main/java/seedu/address/logic/commands/EditAppointmentCommand.java b/src/main/java/seedu/address/logic/commands/EditAppointmentCommand.java index dd5459be6d8..ba147d1aecc 100644 --- a/src/main/java/seedu/address/logic/commands/EditAppointmentCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditAppointmentCommand.java @@ -32,7 +32,7 @@ public class EditAppointmentCommand extends Command { + "Parameters: INDEX (must be a positive integer) " + PREFIX_DATE + "DATE\n" + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_DATE + "2024-04-09"; + + PREFIX_DATE + "2024-04-09 10:00"; public static final String MESSAGE_EDIT_APPOINTMENT_SUCCESS = "Edited Appointment: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/seedu/address/storage/StorageManagerTest.java index 80500e7e71a..6bacf122baa 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/seedu/address/storage/StorageManagerTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -//import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.nio.file.Path; import java.util.Optional; @@ -12,9 +11,6 @@ import org.junit.jupiter.api.io.TempDir; import seedu.address.commons.core.GuiSettings; -//import seedu.address.model.AddressBook; -//import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.UserPrefs;