From 7e1abd2315d38d10f23b7720e41a710dc3148c2f Mon Sep 17 00:00:00 2001 From: momo Date: Sun, 22 Mar 2020 07:26:59 +0200 Subject: [PATCH 1/3] Momo --- Project/OSTask1/build.xml | 146 +- Project/OSTask1/customers.txt | 10 +- Project/OSTask1/nbproject/build-impl.xml | 3568 +++++++++-------- Project/OSTask1/nbproject/genfiles.properties | 16 +- Project/OSTask1/nbproject/project.properties | 190 +- Project/OSTask1/nbproject/project.xml | 31 +- Project/OSTask1/src/CustomerManagerApp.java | 190 +- img.png | Bin 0 -> 47311 bytes student.md | 5 + 9 files changed, 2095 insertions(+), 2061 deletions(-) create mode 100644 img.png create mode 100644 student.md diff --git a/Project/OSTask1/build.xml b/Project/OSTask1/build.xml index 0418d77..8910abd 100644 --- a/Project/OSTask1/build.xml +++ b/Project/OSTask1/build.xml @@ -1,73 +1,73 @@ - - - - - - - - - - - Builds, tests, and runs the project OSTask1. - - - + + + + + + + + + + + Builds, tests, and runs the project OSTask1. + + + diff --git a/Project/OSTask1/customers.txt b/Project/OSTask1/customers.txt index 37f65ba..ce94429 100644 --- a/Project/OSTask1/customers.txt +++ b/Project/OSTask1/customers.txt @@ -1,5 +1,5 @@ -Thomas Willliams tomwilliams@gmail.com -Jane Adams janeadams@yahoo.com -Robert Rodriguez robertrodriguez@sbcglobal.net -B D ppss@mail.com -ahmed sdlk saldk +Thomas Willliams tomwilliams@gmail.com +Jane Adams janeadams@yahoo.com +Robert Rodriguez robertrodriguez@sbcglobal.net +B D ppss@mail.com +ahmed sdlk saldk diff --git a/Project/OSTask1/nbproject/build-impl.xml b/Project/OSTask1/nbproject/build-impl.xml index 1ed8349..0d381cb 100644 --- a/Project/OSTask1/nbproject/build-impl.xml +++ b/Project/OSTask1/nbproject/build-impl.xml @@ -1,1770 +1,1798 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set platform.home + Must set platform.bootcp + Must set platform.java + Must set platform.javac + + The J2SE Platform is not correctly set up. + Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. + Either open the project in the IDE and setup the Platform with the same name or add it manually. + For example like this: + ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) + or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + ${platform.java} -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Project/OSTask1/nbproject/genfiles.properties b/Project/OSTask1/nbproject/genfiles.properties index 9459be3..2e7af63 100644 --- a/Project/OSTask1/nbproject/genfiles.properties +++ b/Project/OSTask1/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=262e832b -build.xml.script.CRC32=df8de2b9 -build.xml.stylesheet.CRC32=f85dc8f2@1.94.0.48 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=262e832b -nbproject/build-impl.xml.script.CRC32=3fc56285 -nbproject/build-impl.xml.stylesheet.CRC32=f89f7d21@1.94.0.48 +build.xml.data.CRC32=daf58277 +build.xml.script.CRC32=df8de2b9 +build.xml.stylesheet.CRC32=f85dc8f2@1.94.0.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=daf58277 +nbproject/build-impl.xml.script.CRC32=406a4914 +nbproject/build-impl.xml.stylesheet.CRC32=f89f7d21@1.94.0.48 diff --git a/Project/OSTask1/nbproject/project.properties b/Project/OSTask1/nbproject/project.properties index 7c08e37..d404fc1 100644 --- a/Project/OSTask1/nbproject/project.properties +++ b/Project/OSTask1/nbproject/project.properties @@ -1,95 +1,95 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processor.options= -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.modulepath=\ - ${run.modulepath} -debug.test.classpath=\ - ${run.test.classpath} -debug.test.modulepath=\ - ${run.test.modulepath} -# Files in build.classes.dir which should be excluded from distribution jar -dist.archive.excludes= -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/OSTask1.jar -dist.javadoc.dir=${dist.dir}/javadoc -dist.jlink.dir=${dist.dir}/jlink -dist.jlink.output=${dist.jlink.dir}/OSTask1 -excludes= -includes=** -jar.compress=false -javac.classpath= -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.external.vm=true -javac.modulepath= -javac.processormodulepath= -javac.processorpath=\ - ${javac.classpath} -javac.source=13 -javac.target=13 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.modulepath=\ - ${javac.modulepath} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.html5=false -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -# The jlink additional root modules to resolve -jlink.additionalmodules= -# The jlink additional command line parameters -jlink.additionalparam= -jlink.launcher=true -jlink.launcher.name=OSTask1 -main.class=CustomerManagerApp -manifest.file=manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.modulepath=\ - ${javac.modulepath} -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -run.test.modulepath=\ - ${javac.test.modulepath} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.modulepath=\ + ${run.modulepath} +debug.test.classpath=\ + ${run.test.classpath} +debug.test.modulepath=\ + ${run.test.modulepath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/OSTask1.jar +dist.javadoc.dir=${dist.dir}/javadoc +dist.jlink.dir=${dist.dir}/jlink +dist.jlink.output=${dist.jlink.dir}/OSTask1 +excludes= +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.modulepath= +javac.processormodulepath= +javac.processorpath=\ + ${javac.classpath} +javac.source=13 +javac.target=13 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.modulepath=\ + ${javac.modulepath} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.html5=false +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +# The jlink additional root modules to resolve +jlink.additionalmodules= +# The jlink additional command line parameters +jlink.additionalparam= +jlink.launcher=true +jlink.launcher.name=OSTask1 +main.class=CustomerManagerApp +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=JDK_13 +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.modulepath=\ + ${javac.modulepath} +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +run.test.modulepath=\ + ${javac.test.modulepath} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/Project/OSTask1/nbproject/project.xml b/Project/OSTask1/nbproject/project.xml index 60ed835..4c64728 100644 --- a/Project/OSTask1/nbproject/project.xml +++ b/Project/OSTask1/nbproject/project.xml @@ -1,15 +1,16 @@ - - - org.netbeans.modules.java.j2seproject - - - OSTask1 - - - - - - - - - + + + org.netbeans.modules.java.j2seproject + + + OSTask1 + + + + + + + + + + diff --git a/Project/OSTask1/src/CustomerManagerApp.java b/Project/OSTask1/src/CustomerManagerApp.java index 2a27245..f377413 100644 --- a/Project/OSTask1/src/CustomerManagerApp.java +++ b/Project/OSTask1/src/CustomerManagerApp.java @@ -1,96 +1,96 @@ -import java.util.List; - -public class CustomerManagerApp { - - // declare class variables - private static DAO customerDAO = null; - - public static void main(String[] args) { - // display a welcome message - System.out.println("Welcome to the Customer Manager\n"); - - // set the class variables - customerDAO = new CustomerTextFile(); - - // display the command menu - displayMenu(); - - // perform 1 or more actions - String action = ""; - while (!action.equalsIgnoreCase("exit")) { - // get the input from the user - action = Console.getString("Enter a command: "); - System.out.println(); - - if (action.equalsIgnoreCase("list")) { - displayAllCustomers(); - } else if (action.equalsIgnoreCase("add")) { - addCustomer(); - } else if (action.equalsIgnoreCase("del") || action.equalsIgnoreCase("delete")) { - deleteCustomer(); - } else if (action.equalsIgnoreCase("help") || action.equalsIgnoreCase("menu")) { - displayMenu(); - } else if (action.equalsIgnoreCase("exit")) { - System.out.println("Bye.\n"); - } else { - System.out.println("Error! Not a valid command.\n"); - } - } - } - - public static void displayMenu() { - System.out.println("COMMAND MENU"); - System.out.println("list - List all customers"); - System.out.println("add - Add a customer"); - System.out.println("del - Delete a customer"); - System.out.println("help - Show this menu"); - System.out.println("exit - Exit this application\n"); - } - - public static void displayAllCustomers() { - System.out.println("CUSTOMER LIST"); - - List customers = customerDAO.getAll(); - Customer c; - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < customers.size(); i++) { - c = customers.get(i); - sb.append(StringUtils.padWithSpaces( - c.getName(), 27)); - sb.append(c.getEmail()); - sb.append("\n"); - } - System.out.println(sb.toString()); - } - - public static void addCustomer() { - String firstName = Console.getLine("Enter first name: "); - String lastName = Console.getString("Enter last name: "); - String email = Console.getString("Enter customer email: "); - - Customer customer = new Customer(); - customer.setFirstName(firstName); - customer.setLastName(lastName); - customer.setEmail(email); - customerDAO.add(customer); - - System.out.println(); - System.out.println(firstName + " " + lastName - + " has been added.\n"); - } - - public static void deleteCustomer() { - String email = Console.getString("Enter email to delete: "); - - Customer c = customerDAO.get(email); - - System.out.println(); - if (c != null) { - customerDAO.delete(c); - System.out.println(c.getName() - + " has been deleted.\n"); - } else { - System.out.println("No customer matches that email.\n"); - } - } +import java.util.List; + +public class CustomerManagerApp { + + // declare class variables + private static DAO customerDAO = null; + + public static void main(String[] args) { + // display a welcome message + System.out.println("Welcome to the Customer Manager\n"); + + // set the class variables + customerDAO = new CustomerTextFile(); + + // display the command menu + displayMenu(); + + // perform 1 or more actions + String action = ""; + while (!action.equalsIgnoreCase("exit")) { + // get the input from the user + action = Console.getString("Enter a command: "); + System.out.println(); + + if (action.equalsIgnoreCase("1")) { + displayAllCustomers(); + } else if (action.equalsIgnoreCase("2")) { + addCustomer(); + } else if (action.equalsIgnoreCase("3") || action.equalsIgnoreCase("del")) { + deleteCustomer(); + } else if (action.equalsIgnoreCase("help") || action.equalsIgnoreCase("menu")) { + displayMenu(); + } else if (action.equalsIgnoreCase("exit")) { + System.out.println("Bye.\n"); + } else { + System.out.println("Error! Not a valid command.\n"); + } + } + } + + public static void displayMenu() { + System.out.println("COMMAND MENU"); + System.out.println("list - List all customers"); + System.out.println("add - Add a customer"); + System.out.println("del - Delete a customer"); + System.out.println("help - Show this menu"); + System.out.println("exit - Exit this application\n"); + } + + public static void displayAllCustomers() { + System.out.println("CUSTOMER LIST"); + + List customers = customerDAO.getAll(); + Customer c; + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < customers.size(); i++) { + c = customers.get(i); + sb.append(StringUtils.padWithSpaces( + c.getName(), 27)); + sb.append(c.getEmail()); + sb.append("\n"); + } + System.out.println(sb.toString()); + } + + public static void addCustomer() { + String firstName = Console.getLine("Enter first name: "); + String lastName = Console.getString("Enter last name: "); + String email = Console.getString("Enter customer email: "); + + Customer customer = new Customer(); + customer.setFirstName(firstName); + customer.setLastName(lastName); + customer.setEmail(email); + customerDAO.add(customer); + + System.out.println(); + System.out.println(firstName + " " + lastName + + " has been added.\n"); + } + + public static void deleteCustomer() { + String email = Console.getString("Enter email to delete: "); + + Customer c = customerDAO.get(email); + + System.out.println(); + if (c != null) { + customerDAO.delete(c); + System.out.println(c.getName() + + " has been deleted.\n"); + } else { + System.out.println("No customer matches that email.\n"); + } + } } \ No newline at end of file diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d32d5eb16e4dcd56a69dccc4ab9395c209bd529b GIT binary patch literal 47311 zcmXt918^Pf*N<(hQ5)abR)fa2ZQE&VyHV5Fw(Z7AW83z(@BHV>+&h`v%2~yEu*v5GdCXvFT2)!%Y7N`R6&tgjf&Eo6pi!k>lyg>Ev)JIT*7PD1J_~S zVgpG7t--zu1q8-KC)Kta4~J91V8GX~<`nX;XX3PLYfFC{tZY%OeK@~ZZMUZ)*`Sr0 zo8y<2YChSZ-N?-R#HNJ9Z&-w3UeJm zDh@$Vh=pJnE(4zePr*{C^1xS?o>PriRLsS&PmRol(6_4B!(-P221b!A3bx?{2?2&N z{IkYEXd4|2VjAjq&r{yKDc%q!*G@Txxg@!{0}>KMI(Q+aC_XD`;14(?sSHXqHh5Dj z&{~^>LUWMT?b#wl)C9T3DQew#eprJyxGoAq@=u+Y3r&Wq1CwEP>>Q^^T&BoV(L&Nl zvlb;)_di7kl5MgS}jmhyA>>{XKD z3I#v)Oui5LOB#fh8sJnV0T1Q?f<$Y{n}-F9HH3)$8c5RfHP{Oz3Xy6GiUm%v77v0j zco`HfhNlsXmSq|-1=iNXESvf@v!^EW8#+DtjkwJIdC8a-{0}DIAx?Y+NWKNlEKZw# z4&TDk&(TE+|0e5}b|0x0H^#j2-u+qkX(x2KM83^qWWLhP-@RaDGJ=K{g7-7>fy5Ar z(1tsHTVrke^$SJ)^R8+0E@5oQaTY}qNaIwYyXfQBhW`YZvje#7gdn7Z!9>7seoO~m zaAEB2PG3h%dm>!%<|@CLQiCxeQvA*M?{|Z$Zy$-oY?Xa*oe0+m9Qal z4k6Iekwj0B45b7t0>SHl1j_CtAde-=GW6NL2s_YNblG2}*8g{|%5ih%!I z(l=&Mjrx&#^CK`Gi|Y?4t4NxiN_DovL)X2)bv?=|6mx-I(2PrX!tt$S7lwJMxC~ce z;jwhjOTfGpyp||eBNlZW-k@E8h%?|6+QAoL33ba0D~F`#@mRmMsPZS6fhI(bX^%6K z2ZPU)BNX|x(4M9w1Y(3aDLg0z3I}4ig-F6C)zBp;gaN@ud1oc`8xyjsQC1l_+b()l zf>MYX2gBkndhHl%gNSC4jBWdlv{Ipfnc8%2_ZDWIxqan0c(HYSI~d$6ta;kAr5MeYEX@Nny;&g$r>m+fhm0eX?YlP9dNUd2|Tw9FNx_IGn zkCP8n*u)(ZQXr^iWZ=8W4n!S1`brC)pNyoW*t3@iwiJ4Z{yrW^Q7WwyO!_J)#b~P< z`MNAa`d{pJs{oZ(PKT+dy}{IJD0dr}ZqOQZ&uMkgmuf#U@_^%A50)bjmu1JFA5Q(p z^ox}``6u7Uka?9#v=f}xBUG~F1|A?5?jc8SOAUAhK%4>lPc`m*`m4xWBplWqki!_^ ze259aTD23iL;f)6tsU6b7&_4SUCvTWp`tfE@SQ#_xuL6J{!E@G#71d?4x%1Dw8E2E z*PPF{US}(laZ2y%-}^>eLt2%v-++hp178{e?)M{wUSU_h5^FJfEqe|8;r<#D12(v$ z^wT-R{+n0!xlEG z^Kai@QuN(n`>kKQ9ndCp}Yu94YK)HPfcbUoFM78!!iL}oAQ!)~x;Q5+A_;w`y zNy9Yx@`_S9PP#lw73~?%F_fDB=0|p#uF%|doVQcARwAwG{%-xAQgdy#Mw6r6 zFdQ;;g!yQEB>gCA>&PHk?yhv9tD&Jxa!nQI4g;>UNXjHTZCP9n8RTDSCjVZ*-K>4; z!*mRM4TA5Nv&o%jn;yhn*E!yl>g73i&dgouEG@fAi$7(VNq<4|?B_xj1Pn9us71a{ zCqGenk-$w7LTDYsY57#e7Gr2Ta$?~dw}}gRW^ie~kVIFRVf1wj)N|qwwSI|OAq?8| znSSBUj@0G(RV6Gy`d5=_X-Ge%^n$`iYIb~8tL^u*Xz0GYRgrgFzBd&I-Qt#%9&XwV z56yyYdei2Gsrw2fR)UzkQlCd|f(0q0C79tzm{pAB$B&%KVGbQ{M0?P%*cXTP3b3`>*wttno6i&n}jAi~6bsE%Ej znoh8sO=MXjHPG;|_~`diyWO!)0;+2nhOFeB-OiKw(%Rr6+8rLQ0|d?h-b_0x-+@nf%%FB1#?w`BxJGK)3Y+dhND?ah_4$tMp9p%=uKS{ssuhEz>sIPHoY zKU%k42-%4hHDJQaA)J0BpqQqRrX`<@hSy|9Um^0tJNk79)+Nirk3&pXx8*eZKCIev zv~5RE{jrYcjbG7Z${qHkOu~L4f{9~CeoQ%!yzgr)e3==)#l9aCK~|kSraWqU)A<%C zM#->s{gsB#kD*=Txj%^(nO@v8oJb$VE;iixY99RC)4-u0)0 zgS&(w?*97$tD~XZR(gAQWwl)AV&&KoRvS#~qymD|`Jr-<&m? zBv*o&?H-TGH(sbDKg_a^*alDi)Rgqi;3V&LX|&4LWn7tF*QfxFYy00`R8e(SnY?-~ zI>zXKXrCn16~JyUbe>W0*_4(LGo~(9k&7KfC?3Kn_x-Ugs<|VOhtcXG6{)?KW$!}A z^6&c+=_PA>K0I{BgxdPixcd3F&q7Y=@y4;!oS&2B>c~_zXW?WW{Nz~~vzsM7l#t9m zb8?EK5A{LpV|imRt&V)jTcM0n*F2{AQk|n+5a+y?-`mw!_nG?Q9X|4USlNmkJ~Z?PJbhU5 z`8l&o_mytqoS3ia!zk<{6C{0Kvh2Ce^)3tkJ89It9rvj*bOzprniam(YHsCQ!b#)j zOxKQlPvvqk-3{stpVEt->o$}hY44(2a4e4K{hEU$=gQeKGCD`H-yyCB~Xvpja^ z#?>UU)g;>s)a%vdcC=~mwq3wY?>;d$lT+oD}*p-$OW!FB$3-bFT8@es$j@E^AjmZEugrJ6Qy<4vy2Q|V}F)qX&jz5%^ z9SAh5Hp*3D-F-Z}#;k*~)~DJSU@>ATj^xMFiNc>S->v+p3pOUcJ-NTK-rQdc@5j#A zRJmkHX^Ae0+JWOT{4!4hmxUo^Tt?|?(5>&j+O-xt-bfuHOdW0!I49U;fW?_EUZ&2V zo(CNaDRmw`DS+;0GuDzy!|w!q9>NqUt}k(}ObMTI)-M`~U4SWPzP0Y}Bo|BhJL8%C z{Mu(hz}vXg(W}ycXj*+TV&679ISb|bt%~fz$pg(3CZk1?>P6+Qc>g{@&-G(K;m*lk z>!XD6tFAJV+x^JqrykHG`AUHMU2NcnGqL2L_77)YZSz;31p|8Ik5+SBV z_S|z>w=`ggM0=Q^kT5@dQ^_8?o2(UlbNe=H%Y?z6{7NDZU$9~cd)$1v^uSh;-2_k# zxCM|_gY2Gbh)C9zCxghMKp3HL{ObXF`94jsOnrre&x*PvtrQUiiwTm2$)**pUGox{t z9U4DzPqS=kU=XOM3SnrJU__Nnh$bxmrM@IEB4hiTh(=(VW8A}xw4BR6LIi0x?27_{ zF#V~KI*%#>c@B+Lh1=r>p;3jpdT+>0LTEhqkgrXgSp?hvV89EmBN%X~?BVz1?oKi_ z)qhX@b8ALzlhu}_=$v)1jh+q39WD6|3hTJ-U}#Q}ES&D$z52bk_C6ze_6PxoA5S;v zEuaIJmx{84$7m%+-OB5#+}^K&-@{y1IxUN%SX*xi@3My(DshAy8#_KWLQ(?yk1<4| zBKT-{K>FBMTIX=uw^#|89u||~zllsfy}^djSGV$^Y;Jwnxp1m$p9BKvi9N&md3n4W z&QG1Bd2ntW$E3^ec$B*D0e!BJ>9KL4+rKS6Ebti0GNYvCgbR=Jbea|IxJuY;HRRNj z2*7-DjVdjE7qy;cHx6ChS%6*&sb0-g5}q;joctZ?H9BB~tRHz$A%M$}_ISTvTF!TJ zq}IQR(@kIXa_Y1YP%qPtTi3OgI;BWrwf#)EP1Fb#TFD5m7$YKo6b#jmI>TE_@B3PH zA#jM6;8{YBsJW9D4)S2Q^WcTwMD5gHe=yJxa9Is9^8!#6L1E6 z;ETYB%4i9nw>vT%K8>M$^F`$@(oUB?=+col#5I7Q3FQG&t{_R5ISnp%8bo0fpmQLwT z9e{9x{r~j`eqO3gkZNo);fCkrm7lktDB;tU8-b>$lnStU%^9mUq+T}fMo;Oo@#7( zCKI3#v>`5S%3_5^jPxJKD1)6+U;>-TR&7FY8rA8Y##2jGV-flL*!wu6mvgPF?Ms%k zZs)%IU-l8fprb->-yzSlhqC7dUh5cV=kfcl$vT<^HrO10t{CQVu(E-CL3(3q+)(0| zITjX2@Q84AA8kqf6xOp1&*B_O2HF_-d#Z;KxPEOwh5+e}=_pCcFl_w_M`S;_F2~2{uurA-{ zoD)y4gGfLs(^v$Hi0*2HhliYv1N*y3BUzQHC&N8{}vqIh!xfR@3*(z?7;5j8kY zU-t+JO>f^;od>CKI2tXwtk74HQ5GI1nG9__xQY#a3;rw!QjC5S`0G8zo6}l9C~V$*fVb5@t410;&n8B?9!3&L8l;miX`gz2JRm@LT@`2ag3AkG?-yq`i~n8Seg& zb*|NItWo8tRc!(|pJIt7_2L&SE1Z)y#5n-^=#+TNq=uc8UvBb0w0 zDPcqCdS~67y&h&_=mckpZzi+i@yPEzx^7k1A3o>Y4`^4O??W}_*4!8?P0_#{+-VS%jRYQ|xU&xk1LK)|`Zv|+Zz`JY+G{8x#sIUHmimo>#z7v2X>~_? z=^$50s|~`?uq-;{Jvy~bw*{F;(?6J{)RUQJ3J5PRseuwpq=I!9f6x8zr9KC}Cx;hr zhL#RePvzQ1u`2P% zy)$Wee*um^ zdYR9w_6+=yqN*g^sGfFiS|!6q3D$Hm$M+r2vtBb#3)G)9vRAgjDH|Kh0X|Tbja2kPP_K{-tQV?J&?66rBm`iC^>Drb; zJDT%su;L|Dj-=9uAkH4Q1tU6HiE9X+q}Ygl@InE+q2kXS)$>Zt;_IEW0&I1^JtU|2 zFGq$QTi2(L9NmuImDgtrgIXO5jTu2!(Sd)zP7Od45k?wXafKR-Dw^z)C(hIait_En z5X3>04H!}vlUCiN6UP*2xI5U_N3>hZuIX6jDKw*+L}$#_umPe(&^((2KWl=IsTW%+ zk<9pY4*G{J*zLLAuHVfF-k#v=`wztjn6Qm5O&_E7?GCQySr0cyY2LbDoLeoufxPWe zd_lk;u7t>QLEZrb=@1CXgeWsIacR(Q$q>=sYDOra4&ME*S*8>I-K^N_vyg;%nKrE> zE>n%z`*`wEYRx&+E1cDFto2*!|8X_e ztjMGia-2aXcdV*voJxm{w$^s!+{tz<}5%yQzyU-^A<`zJU z#y!83Lqo1&Bc`5ycCD zuPBYeT~FEdYi@&4={&xAtm~T{bqf4m=9T!2izriQkPrc;@Fsv9BGQ*J`Yneyqxa4N zX{E(OAG2k=;KwpHoCzj5(ER5LnD@$Ysu&ipE_Cp7^u+)@w&5MJV112^Z;d(gFTMTW znztuOxpPH|4Ekav>CIR3B;>6tIWq1BvZ&S-OG8;@N|!9Z(_!@}{im7x+4)XcdaWh? zhrH;cZA}Q(0|zU)Bm?j~z*j0)AQyT2wzO@iq1lT{p6CzeX@pxbMtOWF90E zVj>Lif3{s*z}+`{r=W(CD5S^ABe+Vi*yc#*sPor6JPRF8X z>6*CS?%6>qH80CA^Kb+clAAjt`5A-aH|OW8eix_abB_1&9V1G1*xTf>r7(8uk$CT` zw)E1YEhzlWXb_LPfLe`7tqvHv`%yJK}yQ~tIDjnq|@@n%U=P3OE3M%xr1~gD_KrU&LA+c zZh~{O9Vl)0sgG>w1H&J8UkHMt0jmUtoxV*Z##|=tgA@0#+*kc_VW(|BNlq{mJb>JZ zO8{#SkyVqAH(OX|AK+0Q58IvU)2KCiY**Xa2n;&(wf_`Z<1r51?%E*Y6x2mGri2qy(bUDP@b+9JF&=IJQ-H277Rj7OyqNL0d#Ek7C zI8~iVN+!MPWAwk4hZhw|=`Nk&68BQ!bL9)k)nVMG;*4x*oDEpr7SW2u&0BLAL9NCi zN1o&NcA@5x(Tv^Bu($>ctAjx4us&r0Ec1ou&Cj|g#ljWkvLpQr?HRq!<{1x9yH+xL zHBeVl4D&Sl_irc?umxNKMEw!lct8m=trduPjDY90J8!5V^4L|eIoj5S@>(N25%+Vkhn2974?)<}7KSW<0mG7yp)W7>bL2c`Bm58+psM4ZkhiD6 z0I}VAu!2M+B#TP&5>&@%+a{r7|D~@@cO?HYC=rrQ;&Oqe^wU8{NoRj1H}&dm6!c%qQcw#733QZ8 z(S#f-<28k8m&^Km?r;FzN}=rY?SxdSKX`N}HI$PPQj}Lui!(U1!8h+&{d3}?@#@J0BTn`kK-S??!oJn;)|FJg zt~-E&!Y8)&EQoeHX(?a6N{U0_HN_cCiqE-hdu4mxwh#jj$W~Js4i)^_^G7sRnun?D z3=2I^)O}FS9`9e+g=Vv9=l%AinRdE^azf}`&doM0K3D6)jEYl+)zYDKvHonFQ z>IOA2pJLn>lnP0rGFB*15??`4QS2|AwRk&-_4sbj*SV2kv2aP^|aiS$hg32SITmJq3 zSpW`n$wozN!q4;SM~%(*q)NzR8WN45H$lI5Ra4t~&$?3R&wbcty6N{lFJ^T+u8PCC z*am8#Q^rPkoOlpydia5v#}zTn76{=iPrDEmVtG7@!~0(=5-+8ml(1!oJ**9Rsoqf* zI%M8`Wze$c7Fd*q@pGVwBhee(U2kOp{EDurmIACRpUBJugGLL30*jtoninO6mh923 zO3E`h)A(qFqfN`{%^!by9eI`iB`NhdLDng+2f6ShpW}s=%`5*yvImSny`Az>bl( zWdjX|89skGhCat_+c&h-9)1*9>uYzWU_(OHgO${H0T-*aE2v6y1oo7^rym#*p_^0P z*@jIH#&jOQP6p@rxtKAAL+A|cerwe8RxPKI^U1F1*}^pz&1K0(cbItz$d@|UI+baH z|6RHF5$q3i3e)p{XMea@k4e&|IMl|i!kX6Ctca<^m7RI`8Ov)?;TN#q z5ewXtr;kG0{}8&0`<7=mg+9Il!ZhOe0^1y9f3Pg2V&Q#~ft$Q7NEGn)$yvf$#=a7x zZ?y!;Y`7Nvacm z>^AMcADlOuUB(n<{dnvOJXGw1Thf-z>$gyo@XZ$sGa11(4b{4H5fs%Nt zU$9A1#`vM6w9WwD_?m^r9G}o1(~GK5aT)ByGcXSgo|i#I8o>@~=cq z=Z+aRsM}iJ|0DsE?H_z(Jh;t(F@0m$~_BL8SaG?6{odV2@ylIk>DCP_ZcJ1|=Dy2{-<{ zj)n$;3Xp0St(c> z7WtvMYt-A>txDs5v9FUiO(?7IXv!WnNWI417V+-ro-n}70Vp{@(l;{bcHgs1RoKm^ z^34Q% zc$?a_GOLvFS`||(htyBP#UhDc&tGHZWRDqmfns|rfS`*O&(f5eFV-oCK!$ zfEY9%wJfKlGB1`Jd3}RKkArsyb5&(E`>qY5{Hg@?g$0O|EEe#Rpd>f7@OzR)0 zR0?l3>8`A^T@47;ot|5e30ZRRJ!E9)gxsO@9Rj&(AF-{@{5ZKy@D4_A#KNgUA5X&3$zWv(x zOTl|*$mxsocueZYDv`9C)HOLO(3%k3CTv4&>o%)%6EWN zw;g&0tY`Qoy`%48?8u3t_j=6)Nb^b*G`^Gb zEQ6r2>4;o%P~t*fWk8L`jv|ZE5t`~d_#tp&rqjDt0%4+yH>M_M-B36u4Yau zT1P~Lhw`WCqxlIJcpx=XxFkTn(2I6On>%6^qYL2V(V@1i+X^s#jtPD+7B%>PNJK5T zRi7WuI1=BSfzqq*vrX+c=i+QtD-P`{*>cxFSs9@-_>Nucbxpk$KUtIDeU3*3?h60# zm%^?ulu@(WtZCYB_48s^U~5-1jWFlyT^ioS9mfubupaVt%S2~ zfyE2$YKRVOK0KRhDr(O`>`se;f>dfJ~)O_>Qv@3?;VHm+H(JFbBRKE98Nk9y>jR zC9wNC?`uTsrB1+g@iucC)oii6b^vCbw?WB@N`UMwc& zp+^+V)0iS`@hJWYpqYX-hpjIxmmau+c@7<5MAA&@31skRUA8stRKqOVNwmhEt_M@lt~Uk+1h(S-xkG;jpeC>@cXw6!(Az@%4s-cTfm zv}5Dw5ZOb~Wcd9CKHBR>=ArfVit9_KOs}+U2vackUdOrPWZ> zPQ;TZ#PJ35KXD6~GusgbKcer;ww@PL8+{WM95#mT2YEI+ehq8&E-M#SVu~sf;YS-$ z(}{9@Cw7u`uIZ@Utt^KI4*8d9t;yTU8@Z6z=+Q2~hMWk#kypg3x>X-%ICvW|l_K5) zCUm#oP4r7Fhp3JqDHzuhGC9#Wo}y~aX>cY{*7ha z)o**^%n8*iug#605O943%fPI|lu-7#kI>`e$N?L^ST~7Lz~bw%(i^@nCybdeij?s-CVfaw*V2@80+BofGpLoy!a-LdAUiu`)1tQ^vxPxG(HyI<5>n3 zD*<{K4e(Gb+y|5YQ;_1u5gQxMXGka(8_d2eMajk(Q z(Zjg=5{^@XlcI+dt{{blsmK@!zyEr_s?yzA3MD{(TPL zxuiy5u68^09C`3(aysvHl@x4g#ZyxR>6D1g`s@O7MK*FQ$v7DaACa7-Jx@L91IN8Fn_ zRn48F<(4fY>Xm!@At%npZEY@QAV=$$w`bE1M`7!w%zvr9K*Hn0gMNlrzec}}N8i^J z5S5h6cx@RSqsE9r>kx8sN4Ji5Es5~Mg%Vn_Tiv}M+ltPO0Z`t~IqvZ)4$p4;Y2+VA zBD=G!fK^(87RrFa6iaB(ZnP6dg3Z)CE94osdzl@Ls{qB;QG|&O9<=h8^wK=)&F;7S zp5_1+N-!B51VElHQh%SXYWby-f>9S%ko+y_sf`8I$*nYSewL@jvahngl-d&C$jUem zhI0OCzpz(fJG|RTm3u?6Xr7>;;A2f0x}C!Z%=HJ`BlG^Nt0^6Lpie56th}BqT!SD3 z`H9F7=dOXQMoX>A@C&gEJ29KfT)(`13LyGi-CeV#a}*&!<@Bz6{SnRwIeF)JYzLjW zvf<%0cL(tHKo=RVc2(CuEh2W4L}J83+8ujMt)l9-_Z7!GQ6w9svDMgjR_F5?Y4UM4#Pf^!ekotwWDw=>rS@r5w^6Y)q9PQMR^i6)+lu-=id(k) zhOTB%>!AAAnB)5xZ*Jb(5o&oMf&KW)>{-99RcSiqR8CuZO(T@F=qepQZg)+k#Jqz9 zins6Tk%QgGp*^~_kY|h@2gM7mMKpdMky@-qS<~U#4*Omr@8C%o&f*BV3Kw~Tekniv z%y&KI{loXNOOJzrj4-WlyR9hduUf&=2 ztWT?86Xj}FY9n3mA4gr&T-SEynViH-LLgiYcf!zw2GL4z!(lZc3T+|vqK(dmB8m3Y zsqHJb187Cjo3{n0)zS;-r9Do1n~&dfdRPHZI&ws0OLU(v6}gy$H8^&IeKCM4l5tNvT+%uvK}_ z5-KnS@y->m@2(X<)KwSqd%;S1mTmu;bN(Lgm~_wumBXjHsLx=l#>pof8##1_ofa3T zr*$%1(vH;S22P|{Hu7T7B^a<`d!z_RI&pn&KIu(iO8vmu8CF^tHRgq}q`c zs3Mk&eR;Nm66J=TAeJff(@;VOXUrW9REl)!AJUq!(f&PsOM}3Un9;)IWn21Cjvmr} zTX~ogvZBdm_W0w}XcOs1@U@yMWEp~6*|KeVO>>TNOjg3GSf~ZKf(ym#J{cUqZ5tUF z^yRLD1rIrgX{p6JA!M{`wBy()-tQuIdcB+u3spkse*k!ZgLPw|lksKyjYleJ(G39o z@J2?Cq<b>HUE^s3d*a@{wF$qmEvrG|Ju`xr+ zpr?zyjeZ4XUo;HLektfAcu`{cN3Sg+S%S8dmHeO80gTIY!a@bJCggWGtblVE>iM&y z{g6x#AFhWx3A(8vmG?F89`Dz>xyvl!hn4V()n2+H>|fm-3Mo3A7TQ)RV3Oj{GRVVM z3+69>lae1M@t~9YYWV)+*6vklc^P)AhYq9D{um8*|RmJL=NK-4sdqvX1z zGisFSdwcMgk0BJPdSjz>AQY3p9PTC7f>7t(BB@4*rOK^BgafWr(E%dl)3W z9Jk-A+~m!*Ji3?b;BB9_lOh zkUQMVqaW>4YPFcQTza1FaODpjjJTTS-kfSC>MoUav@3RJeXyI=3B7S3j5BIXP66jw zfHP_E(5x;UU*3SUKq!R^a1s66mu48fn7+NS0_q1d5>!qgt>efL1=3@Q0UpFEyzzuL z`p^wzWJ%xlvI0_KPgCO_(o>6Lu%So_R}Lbf1jjh#n}NL?VmB5722{W|reEhC4;FH| z@0b3*vrmE_HlEYgNsnuyMPSeVr$a)G+x)KPosKr07AC6;V^U~t^f3=*T%0LGNfOHO z-`%E@R|S5cDYW8~ zJ;k#`N#ZCf&{SkSiYl&fs|DPynjQF`qJ6&$E&+Xd{99WJq6D!UzXAWV{yaUo`30UY^ zoVg8;Kx#8`hktoAU}fZ2wSQq%Y3=kCCcMq&1ZnU(zi+jp94-3A*7GuTI$JnW!4L6Mq zWfX1SoR^_ud%yqz5msY(K37mo%h+X>UC<>g5Tgf#9HwTBRAN^QaAbauG2)88=A!NO zYLybJN_(j7|M%QH@ z)Ud#&3n*|~0}e>SLcEkJVsL>y=y!$R{v*owzayO1hs*|lu7*}g_XD%%-%NYfzaQgC z^4J^|Q9GE^^jk6RncnxA-d6FQLNcBLo{h6La{8_6m@ebitM>fljvj`TQRZ@g5+dQZ z9uz^VZjgWr>*rG$u1y!?>%9(3k+;2@H%Je(M-qA!Ma#38hcNOwys@#TlR00H9Sekv z7C1i=sX?Hg7$;1?!J1BYPda&M>Cd+2Wl(|KBK4x}6FBs$Az>}Z=}4Z{pL6Z|=8^2)9hNQ8 zht1|rF7`@&r4dkoENJjYBCv<~m8a97z+`7g2@C2=g&xYAG0%_ycAfSEAm8T| zwU4OV+NjgFd|6x=VS!5QG5W1P2;`3dv`dC*9oP1A7y8edOZs^v_rrGf$(*$I!3dBK zS<7j>y~qdyQM5=d)WO(Sun{w||H^j@m6q^U<>SmAx|6J+XRi0wCScg8%$r^NbmT!5 z!K)Km9g8MTU5~&6O!p-mYbGs_+Y}mLeKE79_H1%-2AHTUt2;ifAN88}W5KKTc+Gs5 zb=Ja>M>!g1DWvm+WDW^i4vir1jt-25kP2M*4c`Co=##uM9W?6z2}FE)38fo_coKgh zS@=ME?@?T42!F)cFHKvTT{TW7W|UaTY4aKXFo>6y2B8Aw)hZ$lBSnFx&;u=0Tp5$Lf(H^5rg$}mg%u! zm38pr$XZRM_UfRCYEI^r>ZW-}dkVm}G%udbPxl!VQFZ?JTUn_@YfF=oV}-=?KIr*3 zjDabmUhzI4WC72s6sQdddJp^56>;Y>a-Nl#UHG4+qXCEz2+a;oXh2B7KFYIM-~tjP zkpF6_G_G9UcsS}tk(#Nse)ZIdjRWM%%DNS&2wAZmrsS0WhVxv(byI2xI>ZP>l(I2= zGN8(7l^B-WG}%zZ4b`f`FL_xvf)BestoxQ&F@PgA z&b#ESgEZ+bKR4w+CFC9_sJeVh3z_wQYM;h@pjA_w)QMOQ4;P82gFLR$RKi7K`-?!HGR{-F0X3^ub-lPZ+ijwU!d1^)e=M4!0`F zhwU+wdV1HirlHrNdR&O)TdGk{)l65^rtiEh01tkV)*>4>kg!e#Jk8>!ZCox3xGAU9 zi@e?^jvA)5giS|$jK@iUqqKep=mG_Q`)+z`Fynxv`G4YYLQIrx#{647nn+JAROb(T zd1C492Q5q>0@$|idmy{f(7$*NJRoKuei8ooT7Q6#!?X&h^oh`SEzPzMJ{NdeuP2{u;hDU!6rPG)=W~d*FKZbFT9BDyYJ*! z>Gr)Cwv0VmGeY@hfl3JfdU3(0S@5Px(+OgBYa^g$nQQ4!sTXW7cGk;&XKX~DdKHhw zxQs{s(Kf22hJG&5QQgQW=hL-pi{sVnxoDPy6b)z@GX}g6ptsJ{qb3RZp(jJQP72Gq zqkiufL)+>J1~t)A9&oa0(9@Ec;Q!436+PNZ4XE?vPUa!BeyJ^e1wb~mLtTvJX5~EK z6lNKe0erj1NAGg-s}hEuX9q6kJ30^^e`i2(^hH>|TUJ`dR|0L9)KVsc4;y?BRuixy}0N_S?f};&JAdKMcBs`do&=i&sG7!9MApbLg z({dwIk`m@!BM(Ec_|LuvB2lSxnM`QI7(j*$5Zr#sRIp-rcEgFlVMT~CkZm6sU>)PQ zRD1eymHwCG#b@Z?__j@w3Z(D=6cvjqHj|e6_>Of3i&b=*WVBAK|8G{ljUklL21{E> zeKpaYJkdZUAp7au83N16*O0QonesU4iNXFT}8c)wfVgUMqLlz?QM?JCiyJ3I|@Lq!LS%R799N z9C!W;=!q(h`|l8+g5LHRIzQY@BeEZJ+Tn=haXRbwQzT3R9N zyh!fG@3-%VwR`2mc1{P&cA*hf{F0kv)Vli->mkOxD-%==a`ZSL&oEdPJ9*ZyyZus2$RkB3pFr(m>x) z!4uob$=TjKD+lSdLx^i-!6`Q!yjPBW4E%A7gU zY;q{Bn>p^XliU1T`8dlSi!p{1-`cM{PL3r!_DvUuQzyvs+mupU8}a|o0`#q(+~(~t z0o&ckwdDk)E+->L!}A=?d^83F`k>Lr^~00?`XJbTh}TfRr5tv48d+ZZkvp$GK`&W*>0G<>t9PQ1BxHc zcnd%Mk|KD>dVrIEy1k^|UfhQ{IEhWD3{OT7NnM>b!f;yKBr331nCs-J&Z0lava?LV zW(?w}FV?v5XsOkj=5K`p3k4re`tmssdqE71GxzU0*TGFYh%l@1W^fKiLBcLiR-kSo>y-z)b5vyn;F>uR^V{DkoS+sj~vE@so5v4 zoy9%Jc^ej{9C~<8<@nsREWPZmf5Z*tw>Z+uk|GoOKU6}mb!foS&EUP-oXHnh;af{t zF4(*s^CCWNYuoDRRrJ+o)TW6`$<`*{f7uf;+@sQ1MUH;@(atd#5*xPgjBt>}@Jsn< zk1eo}8`oaX29L%nZqvR=S?>VNJ=ibbV}zE(%m4^Ez+rU=PHYIvvhZel)y@N zgLH$^p}_Bce&>A8;V;hKz4yNFyfe={^UQ3$j4z2Lud;^s)}^-W%-36Cp850b52MyK z8w2|6^hCtlA;0dn*VdE2f1GxHW{5^RTh!coetJrN727i~B>rStL~ks0=AMK*QDWp6 z==a-zDlM%7zU)DKkYQ0>VQurd%%6;#M<4h~uRmjzTuoF2oQk>X_XzCrVP~ycQV#0B zMHGSIh?u9vX0{scxjM1m1?Ke{aDN2avNvWLIlIH$$!a_fIZg_+NH~e_>hiA*33}$V zuwh!oU9ahT&gQN@R!3aytD*DhuEZ(R6dAMjCLsx*uOCkYZbO{aC!TJ?6Ws$_=}5ot zn>w_&1r;O#@0WPMryfRFoq8hpo{{n*70w>yRvG^L*U5$zyZ09iE&bj z7M02Dm7_&@2idwxy#EZ|gr$Qpbybt(D5YD8F3thLRiEMf{-!=)fqu6S)HPg&xD#KH zEv$Jg@+4`SIQzc81O;rj4T<{5JRPhboUV)9PfcoO%Ib0Ys$scZTA}{(wPSRyLWcT%Ka6ey$HT2)yCC!7l0DqG8g>YsA^sk&!|rkoaXF1v zOjx31cF=2fsd9OlmW(rq#m?P75Xnwva=#J-*IA^JU!;+Tukm%^kVacNjt_J$n6|kW zn77$)ifniVQ@jpHIna~}6ucXB-~BK|P@F9E=o?UU_s+B6m4eC|))dcN=ZB_0{jFk( z?4u>J*mbKnZkFFsCQ2-Z5)fk*k*&3Y=cT{QdXm@A@^8#cYYFnBP#SayhY6o8DOA{8 zZW&z8q7_-f7ZdXJ8_x$L#lC9Pcde69$8TL&4IrAq=qLCyA!gGIzmK)tDc3ufdRuE+ zacWtaAs{uqYU#M(3!9N(*3@pAd(I?kXz=}$`1SKe_rIMnR`C?oWTBzz^brW7Rq5u2 zxbU9adt>LM5eCn{>@M+zGhTmgQd#y)-xTSAr_i%Lbn``bKWw6}wi$)Lp9=qASiaAq zKotV3XcD+Co+kLv`8cUG-?DoC2YA9)b2Bt!HaIN`?v~%fA{nKudE~x=eqWdJ$jyJB zA{lxAV!_a<&A(i`jmnG!*T??7S$DT+``uvoef)=~C+R1J%d#Pn3(DHRE=ihSetW%{ z8ffmSdqpns%c)>@3$stHwpzCAXAO_)zFX%Hx)}3stKG~Kq~MZVyZnXA*glGzFi6I11f1y(vw^J2 z>uJHzZv?L=RC0d20{#)PV}363#n&b==nnl3m39U=P?u4M6n z!jk0As=zNSWS4l0_S4NR2;9waRymaT^!-%D%7I|^>P0K>X9`RS8YJEvBLAAbjV!~g zwr@rQW@Fqgiy=Az3>|bo2ZmNse!HG3jO0CT?Z4UjLhz{qhdxyU-m#Lr_q#TkCo!ye z@@GMk`gtOU`Zw?L&`f)E^k;j%u!^BSYgC^9?Khucb$?Mv}nju8TLqW17e5f^jZD4I!c8iC+qrMtMc7f=fPlHFUBv4BP05Zx(!A079R+E zlS@hyAN<>d6gms=hg_@Xao>G>6QtAm==HH)JjrnN%tE6p_)aA7;N8DpPY;sEzP`fi z1}dMdou#YpKZC2%)BFuSUOM3l8yuH++1;ah7&rhXI}j)=erNcbbE6uNDrMW7s-mo+ z{9O~?`}3i@Gve0O8vr-515@A5RU54(_9yL-FvWJhpznU3sBhWs7v8AVx~8b%(&zi- zwXw+KaWNBjLRoIeX=XBc_Q9Wsg;@NN@QK98{W~6vScGg~Om*3>?8pSL0LDDi7p+73 zxn-t#u4?NK6Mp-Xl{*E&?k}@iUOPR95I;QT1lf?Xc{l2mPm3>P0>R(G$`uWOBc##2 z&1@C4avzFIW3kE!@WO*0auogz+@{qpUJzXW!3rmMk0V35Cj3S=th7@K1(njH$ZC5Y z&LYO_jw+a#IppTPt|pUY6`B(i@e^i;pac*K5OvO5>0AJs=C>LV#XWYPQJr-AoWC#e zPfSRIG>Qm}W4-|OVi0wLc4VshiRn8swWhVNS=G4VpBySrz&v$j^*@qE5c(1H199f* zU*O1pG3bmQ0#j-e8fZ>^RZ}}VS+-p6KDuC5gaYeTBv5H82wpln0p^Kx99vs4&>M2C ze$!hZ@VD*MLM`hc9w$6AJN153P6uPYF+ItnquSex=RPwV7Rfx;<#JX&#-CVrnB1BR7 zLxlnZwjqyt%TDn!1GYwoet*<#5V1Y3()vT`5q-yL8#*zcP5H=xGszzR3(7bJyk;*3)Don)O;wz7Lnt3h}X#|(T z@2IwB|K?M5TH0GnxAjI=?MjdJ7a2F7pB{6WnU!TfY)m)w787KYM5)_?xEiLeSVj-n zKmhtPa_!9b3J~b3MFpY3oa8DD#)jv}xZ!}UqkWd4AYDmxeuX(bGr<1c)0zMuRR|s( zsU!2l_WgUFwsRXEqlbaNzeV2dquefsRFNQR{|MN75;nEo_Qw;YMJ`#}N*n`LKp+t^ zagNu~IX+qs2Eq9qw;=WoiYWYZYyKneYxSB&l?$|+rz&T`--Mud-`zV~pE*D8KR-x+)9sX`_=t;RD10OL zYM`M`^`}{u7(QkVGTTH3QQTBYCb)JuX~k_<=4Mpso)Efuba*9Or=?x zbIdQ^v$<6Z$2pG1<02|Ams#q))kyn{6)QXihd?i3!}pv;oQk3XHW06oE6B*e#~EbN z<7A>x0tBf*BQ+4ncw<2&Q`Gkyf2gB0`g`Z#CIwQ9mJEpbAf+vN^QE(>-#&l;-67wf zKjc684FzjLzH48-^0!qE%*>su@H4l0DW^7xz*Ok^5~3RW2^AJOfaR1MX)vbPWtAEM zk~S8Uz#Yq0=)wysKINEzMBzEi&5x;in;BP--DIdBo3XnU)cjhb`1E{}^t^1aZKx=Y z4m}Mrd;1H2{STw@BB8D#HakH-d;q70Q-7jy+fYWy)AP?2$yX08G95N1v%)kJ*FD*} zdfs0iT9ro28{K&1eqr>JlpZsaO_vD`U>#%cFLhjT#~fnxD_=_v<3ebsm+@wyO8UB7wIDO%7`)T3bE443-;=ky~lN6?ER*X*d>ZWf>8uUA`4n+Oz zk_H_7y%0K1?OMUvJFaWhhFoUZwXYmmb8!gs&FggumXK_TaPU~Le^CB}zE^a&Esq@|ecm9fbUblvOnP-V-;EH5a^Tn5vhOOt-$DT&% zo-E5@YgXf8O1%dHiM_Vo%cjvq(6`0%W*-_2$V{HMd@b0 z^rdjzm87&XVWDGuy6W}WIS0ld$T=QoU zU0CG2)63D;D~D#E(C;jd%8-`8f+0>1&-9r1+J`RS4$)NG&OzXHcm&B{$V;T0j&R@F z=E?Fr^(^_9T9Ybhx;!|{XbCWo^!&G73oAt@{Yy@>1HV7xh_;gco))lKR$q&Q>!B$L z?j1;409myEWB-($E&A{;FZ=3>B$j_`6Lij0G>lr;(SKY_-W!2L#snpPT0-qIO%v1;lQuIL7KJC8Brtl#1m0UfgFm;Q7;z zRU`r_UHzojrV)C}42NG4Z+m+?9j&C?`dM@i5DV$y>^7A3WwaIn0Ibg(vPfl;fe~R+ zHfSkk%7N!{0&Mf6|0z+7Kr3@2BSp#25|ml1z4|oFBXwX(Y7qB5ewzi$^bZ|InVwUQ zB9Y9D5VlTf6>gX7u>0G0eDjBq&v$gs50ZbM1D-oQyR-!tXcS*_$DK>HaISp_a{rDJ zKQ(RRVv9~bY*Zhq!xhMZs-{I|d|qD zI1k#+_lXs>f12Rl$ig;8@lPQJkV_V9l*=y4-@=?TYpO)cgf1w|?Mz;WlM7^FPggn*_c? zg%w!c=~zqPof9O01*xf?)v7guU+i*myzZ4HFGaxHvRCR zV*=V6z&y@)-EJ_nS>xgbiarQao0-m=Mtf2d^jVbBT0d+`oWiv#sv7b%|2k=h8O$jT zWR2~|YNJe8D$b(nu%i)4dm@X<%{9AmUBBhQ(Pmg%lbxl-==(chh5d5yqm?7C^~O;z3i9!^$s&+i6f9DE%#@TO!DKNnyC!$q`3J9HhsJL= z*qHxNJISB1>aNeoa|BXqyHnP1>rZjl35djqteiyF=ruf!yDjP*8FPF6NqqdbpHJE< z_JL2VTRf(ko^0UWP|yW1@m$OuMtUN4U+rXVl%Ya+er$x^AGxH(9(fBz>`Z;!RLT-g zuTt};-}-Ek=~*j@srUix-qn*rNA8IF`eOl=#X`EF`0j^WX>qKN6Vml3XWJX<6D-21 zD1lN=c_c3J0A(@d*imK}*W90F2fog3*GjsLAeJm|!$Y-+)Jl)&L&W$fdPhm9mOv)L ziPsYCSm>P}PmJ*qNecCg(=>tl$)JSY*w#4Q0wtKza9PLARR6iR^ob-&Pv|~de6y+x zud*vIWF5);eZC7ZaE;)8!Hk=h`vh*l8`(YE&-+sau%7yn&mhloUZGTwK%C-0?h;L! z@i4;(bb`g!k}s~kBV1#q*KCZf*jW?c=;CBImtBS1TIlY1>=5C~kkldr#sY)$*F`yM zy`B_6;KgO0oxq70od5|`m?n(m%g$4JJcU&49}vxQxY&J!cH^iU8`W_NPh=!95wwtr3QF#$K1!3L?lyh6Vc=gEtr zfzQusGVV~2C+O#sk|1k=3%h>6~ULO3G?zkr-|LCz&_ zf+@LU`Bb1uL~h9w?l+)F|-ACj?h!l3%FZ>UTI+*;?}a}$!0bKu`_=e zDF%`&GHKr^HNj{zjNvfVNaY?+@@wk&f-P8)mcL2aA#kk3- zTNyJ?2dT}_Kk#fT?zRNhkb4^`!kPJ+>Jmt3(?WAb)(G&?Wx#J|Q$(xpz|3wr9&U)` zA1uKvdq$2jxtnj|h$V-A{wOSlm2gHNU#n(pis4mfCfbcD!b3j4Q*o4Rpt~6UX4o!B z3=E`2_NQQa4>`!vDmI^;F9sfF(PJ|;qCcAqe4S8(a87(sv$fn?y^v9f1QWGqy`|17 zJQ@v%s(K@uF${g_ej{KrR0#0705jVh=5u1nN$9Sh8fU(?Lc~RnkLV0NiKzb=&!>}J zptaUJogKK2=OM3D{*LhFOKOMMxB%mLS97*JX92x$OY=?ku*ld*16lF!Iq+BzkdDOA z9_wjQHR~W1mEHc^*}DO|pq39aT-}>N%Z?+yn1Jk2-h-P&_Q${R^fanWP^kFw_Evmmiy^DQ@ z$dJ?^b4qP(YNX~AY#us*4RH!i2<#L=R3am?#-Jnl4Nw3@0dRXorS|ZO=WtdgX8a~W zi%jXw;)INR3q`Nh2-mDbOo-kaOAiHzV5lH{GK+hpYCAoQ^F%FEpDHIxH}1qGlfD?z zH)g|GC0{+G!>|jz6pGT~+Rd^gpqza9qtS88-QKDJh=s+#B1YV63CeSt^0<_fCgoW9?||ICNNH zP~g^iiMST^;AN-|3?kPq;|W1AY@|ulWZEH!m#kh~idybmvm9jX+*yZedm@A?o(L9x zo42zZ*tVbT5G-KamCRE-QB?I5x(l9CG#W~kiVOsl4dkH5DOe%o5-$^z@-8Mq%Z1uw zq2z}FP6SF1KvbXL#>c1J*15fp8Yl^*O-PPayRl=U*F~vi60-pbESY|v{Wa`BA-Df} z43Xe@@y%`mjB8!0Z$gN&CQJPJmhq1C*Bd!*OxuD_z6!3xeO63kP|fE|4JypvhU2CM z9&VE}Xb>-=rY-(aVQLZdCT-6e#N@snmOiB*&m3Fz7k{TIMOgY&OAw7&w59uaq;S#R zrvK-k>uSJ!NrpgOmE+1wPlVnJ7s*Feu}{S+@!!%@3(YZj;LhTSy z6 zas+={7aM(=1czKnmt-`-4;I%*vAZFco@Vc9BQ#s&1Dcot-qzP~h7J_N%!*U&J1GUI zJ!aKy@siF^o#a`*If|{4_1;o~)Bu*9kC$vya~H%_e5C|$XGexW$N5sGw=?xu*UCc85)k<%5{>|A16Q2E8uzI0Rh4YE%&`|Gzlts;Ke9@}D>l^Ja?XoS-AnFv z=t=5)h8#ZRwJ@gyh?M5Gk|1;3Wt|&moWWR>E|O&snY)ZJ#V}MdIy5!kREKRX1S(Gd zvQR)wp!D?|eFzcvn!HvXOIwS^t9U$wPQ{VP2G=W3V_g-0g->s^YKB;0(jn)>mloB@t&HliZcZI>+; zvMR{GeNy3U$8g5kX9K*pqKIu;fq37=NM!?(*OQlHI<(3W$HC{U>^+fSCD{pzHB4t% zqwR_l1S{1_7@<;KF_Fv)O$BjfLDF6DEHm_X%Y(>|Hu44oUMQJgpDu+AC+y;%h}p5p zwNNUoHR6mx;bA#$hf_vMhAQ4$H;NGlEsnl})kK#NB>)|PgAPaEyyzG7bRANd$F@^D z5|hhZT9CE-_OYfY-LX5D#l}M`o^oU31vXnMjpy!ky6PJx?=2X5=vm0mn2XE&j}qxl zct5KsN2cfO*u@Q0oHOhzTTgZo385FOX1deujwm2BvN@p|1?@^mUtGJFLm!+=k4Or! zEV5cZzU%4_1desAtCmqa`^(o^pq0o4h@DPf_D})K?5i1!!fS*AzBr+Zi8}+$E7oD+ zZxq%6tv$FBm3}1+h_vfPGSPHr79ufud(|F_xLJyLZN7#oebn~ZUr4_~-ov0j9y0w*_9>d}sX4NBJ*2^+I$JfRLq8OQ@2d$(Zk znmGR=R(hbIO3R#~9l&mu9+gHv3D01NCmJf41*q^4vE%zq(qcp$fWmD5sHfXW6mcd6 z9kxC=gPxK?G5eltqi5~%D(^JK zm!ss7c`oJ8(l5pLp?R{DCfRmh8bZ!&;7#e=3UC?VL2=+p+LQxo!}fUF7FJ5!j;rnb z|I-2xP{OyMp;g+zUGxH~##%brsm@0}N@cSz6L2@7Z0h%ADNl6* zc$V~XK`enB3&NIG2i1@u+ukO*^8Mh8&V5^a`NpX5LxD&wGI|KR5hRS{3w>#IN5DWv z7taDo(_;yO9C}`5p-o1J>Vf~77!D?4Om{yCBWu}fj4CFl^kzAPq(QP5sl_XY`G zOugQziH`aD4?Kdon4tn%Xx_1$ zjk#mSyJ;(nwPA$zRiEJjEC88^t$OSCb=!Tuz@A}>A!3x*Hnb0@XX5C9Ap$k!SfeJm zd&)8;lnsqlq zpb2K>p*JmVIM{OLWV?l&{5b*Zx8_PRG5>Cgb@Amcu?0q*qN?!l)+9L_T=j?3Gpe^1 z~DW38YtAeLTD>%-&n?)8peA#^Z1Gog%`&N zMhI8pdr=Fs!@+OFLPrOYMCi4bM%tuaHrOJ_7~8$`bl9=@R)EPONaVu^`c>nvz;HCi z+dsVd5nz?rLN(kA%_m*m&mFN-a*Z)3%mPF%`~*wv+EHrQp|(@2lnpSPkArNu|+vEKxx8Yw7ebLT8xZ$f zxNwiZ!fN8hXod12Sw`PtZ^m*JUSy&U7gE&HDX_^<7F2+D!(sQ4M~ygeFTM$RnQ;-D zO0`4~rS0cSV;Hexltkx?Oem0r_Tm>K8r6-{3qBE`svs%G6vBuUl=+xEK9l>+=fiGf z$)e2pSFGSivqkdcl$Ul0of66mJZU=}wupM(%PM;P?olfl4PR4*5W+%=@WKQ_1sts+ z8n^s?gaf1%L9C1& z%Bd1P8kv2cw%ayI*#IJ-EKgGa0B(d+&2-Gk`~Q|IM1=3MhR7x-07JuNm_EXM6*wBm z16U-@Y@{&g%j7RAhx+0gK(_3jKaIDfrd_*8v>%PEo~3_bX9ZDV`j(znRt24=x8>`n z_V|HbSe$Mj%f~$rP=1 zjNm@PwpNhLBB~>niIAL^~3&CHQK+vKm*sA`FUx(qP`a zeTjE(B(ed;*B@_AQ}Az~%{+YT>6+LMb(9hEveLyWCn;Q11I%b+dACA1Td-k3VvlXW z1T9)kd23OyP^gHASx^*sm`T$RPl9_tEu0M<+_}rJ;vj_WaDYQ*^S-{ZTLB@fs6By( zXapL>njNPJN8jA&jMaaHj;$>Ah8Uht>_K%(l*GnHe5C?mScEpQPW)#i zGD$uZNeQ|Ox&FodKW%WDg5Heeea-UXEM<|miLu!mn%O5tq85A-{W%G3@pD- z&0okA+!abpjbI$Ps>&7wD(C4WR7F@IzQ!2M*us~D#AMgKd}$Q-|Gu^P$~$vFTl$n6I8jyLc|65i`sB|m*%oDmN=r3<7|g8YFvmih>*>}1`^;1?Mx6k zCA44ZN(mxdb)92DB@;^N(eVI80me<48@muWJ7)Gh+k6s5n-4ltGo79VcEcpBMUHJy z3iNy5f)<5MQ5P1r_+AlN9km1Q4WUX73~h1cu|CwJ61eK_-KcZj1FxRQa8)OR?!TC=~CdHTtU#L zV*gU+h$^9?k~a=QzYJLOs%W{7w#6NWNMxDZ(v$sRbS*BLX#ks*evHdbQ6vPek&8J0 zX^%)CHmC z05lff6O@c)0bf6py)7sCM>z%s3RT1&jEQ^z67;Ul*xa-gTUvX8t|;}UPxCu?6ih_A zfJ4bl9V3IBzr}afK59?G`km>AS)s57Y6Eys`LL=-&svF+4L6>6RuW@KMutqsUbJx# z#DNrq;KPn2S^|iL+0~^@C>&q{L*09bim|tq!-*LrvL0&siIITnkq|C*yce6sx(%4h zM+`>k0PVOAlf~or3>lXeoWf3J{`pf)!7iS4fUBK9uM0@lu2Ucr=;=;`5MbmvO|{qrvd&|flEZ|9C_T~}pHfpE(wshBAq2Ig9^ z2-}6$%0<0Uijgz4UNgl>Xg7#x#uwz}3&+_Td<(V#_bYTYDD05bj7?Xa-0i2mm$X+m zDbE+M0RrPFbmYD&J&I6Fj`p6_^+hle9Hz| zkdtC+V8c+13lL=sO^LA9)$_za29dIW-UxO+JWg+BhTpjEOg9dzJ5`I z>Am2BO6BX59o!ePl6G^nadOh%4q^LXe*RpJA%L9feY7jCX6%iiG|M`I=+uPZy-jD6 zY0+Z`tIyp5g((8Lv60)iYA@Tg071Y(B2LBvGLljRg+g|)vTO(NjN!6^8(*)D*hv(P zPm--puEqs+`nNJxOxHEK8g$7Vqq4XEMa(K}8{;A{VG1_va^u~m8DwBM6e|``Y^=9I zL#krVeq^C-?+{hDP4Mp!@uKWI%eW)A3&+*3y#PoaIXSrNhx;U*`T0Y_B?d3oPuQL@`tal8IJKXc6Xr6Q9&rdgD4k`g|rjRZYf?UZ7CXAxsiSn z*xsF2B0G`y^oC|+!cIQ3E@7z9p2iSPF_{BV0}In8=toI4Kq_6WklS3n>uw3TQ6z{9 z*!?)-W$?ATEX^I!$iHa@kN2LZ__CjAET%EiOnE{~ARvOBfSS}L8$r)m0*WBa-)eBH zal)jD3n$%>IaMaluOM~aSay*KfqacgS9S4`!^5p|(%{Iw2jz`vbm8Tu7~FXJnJAS@ z>h>AYZ{Fh;%pk#=T%3vHn#z3tSuZ63DvFIofoUQXiw)MrgD3^31$h5KkLO}ffU%4n z-n6Yvn)XQ;$xInBGfLK9zkiR9=VzOce`YK|3jLcx zalD3P8A{opW7PP*W8N#zAB$%7{I!g{_CK)3opof2FeOR|FOgrvwsp76+AptuEebC8 zJ|lO^OnvcNFslp|-f8ky1{Ok=vrafB!AMbzY`|Nxu`q-whNMVEF$^IJM?*=tTX zeUXvGhS?fbOYVT_ar-YKs=rfmNG}Rd8~U&pw)%}WevYH9S$g#(jzf?){dhg!kqG`W znol=#r^wVFiP8Q1*O1TI)qy7?uuFGUv3mK$mvd887#bV6RMBwx3+GI_$xJ zua)~eDPHNXAi%8B^D~Ziy=77{Xg-)k5LD!WdaxKic`79q!jhrxJGn)0aj6>lxsy>s zS>_1w2t)W{F5bCW(A7s71EeT!xnIr72(aim9KueYzzoP1TmDXsX7o~{NA$#GbnDo) z9i%|!6E+qFeJy!n&^p2$Sj>Lq+9K|MfmR9~gtGyPuiwau3m*ZgfcPW{6@4?P4+CsO zNN8i56qypqX3eud%Ko=$LIip?6;eK+w(@gMuo#T^_XatXvfZRbfrA4}x$<8wIuC0! zrM$_BG;ZP>U|Yno5=r3MlsE`krayjxIu0}=^~$`4t-ky0^SC}kJQC+Msvn0ynrzHP zRvIrB=?4AUUT3tAR}?{X$yoSzE~d#M2qh(ptqQhG-aTX1hUU3$Ph9K}s>>caubo9I zE)URT73%uhg*9L?B)wTlf#64i3;HwdC2I_uFfY3Ag5N#9Ahwd1ah0oh{QvJ)@M{wd z4VJpQO7&AT-VsmYK1vm!u+N9(Yu9U!Q4)s5So7WX!|V#j|>@{N-v}{u30dS$FghSuW4I`nX6~g;3ruL3^Cm%g3d# ztn^drSoWN9h;|r2^3RQsL;K~ec;~C{&9cYHoXVSSFDLgYFsYR_8o55Uk9&%GnuZ-+Hpzk`3 zUZgsr+7=yG4qDZNtk`9OkKil{QRBxhP#|>klhP`&)f z&k%tInzUIVTR&TpueW}^g$%^4Q2CY zf{G6N-~QYy^bsU|KAtsy90J3xyMR>5mi|z0@7uB&sF}z&BgG~MB<`Shx;pel#S+k> z{>HOMbUtE9qLv&*99TIOIpr)_WXrNeUb}`2iKnc7`)etSwG}rs|BBT4R=@jlI1$^@ z2-EG2BhL1ZUic3Uo*(l;G48xnQM_-E(Jf4wd}Y4sfVllbRqYW%uK?T27f+a?QMBim z(}?(Cz#~{f?4ZXbSaFjf1WzW8J=02tj=X{Z>Kd#VhSvA-HC;!(=9JJO>nAYQ9ji(O zWKc}GT=^zP)?t)smot>`t=muM4#r~k;HXi6mll9U>SbD=5^U+byLA8T7CGh`($$MA z3C!*Q$rL#O!m){_(ovBOzlPHy@!6;=1)w6rE}gLZMxrm=@Nt|2)g#O%9M_*54H?JE z8$PYhkS9e=#y*>i;V{e)9F>i3qrY_^k7$e?y2csVbq2v9z7&Ue?K`XY+C+mW{mNm0 zk93E=Yf*^hF7bKgbB0k27+u`?dB4=n8+XeqFkIe*?0Q>%^)|)kGPV1*;+Y6-F&3Sc z55fW?u^z%c;Jh!w`~;w9v9Eh4-(>t{Vs0pSNujFL$+Fm?*4lb+amOm~#WiINdY-^j zLfM6@3!n7RKKDF{D1IQOa>N3mIV{jLQH^Kl8QYu}i^rY+43{lX&KtmLG0|VVpLAswFF1)5Ht0Y`esoBU$Z)8L7PC! zMUi;I1PN)2^ti;wu~}0B6puC06j)@~Ub63BBG+1czN>hugw3Uk)LqTq24PXU#I9`VlE>txoGVwc?>&_3+uK zD9?kTMDl{v;Y*^V$B1Xp)>bN0lOtBSeL?lX%|H6uQWZSNDpEb3(Wzba+G?n#TCNcZiNT!m&=dA^bzTwyV%gVZN+$-S7#Nftu`U0 zRzJLf`jNz9c78AhOSXOPe87p8MMTukgMzpbovek%R0aOA zsPK?w#;lEUYJuVdI;~3*p9m^4<>aroA4se}@$hc-1IlNE<@JmknIz)Sz+-EPHGeK= z3lbRN;WB3d301Q2kgxFflG^QK^AG6sRem?-bM?785FAHhw4;IaE)?Q`yio=y&-nmM&YV#`H?XoCM^pvILnbuS30@!ev?HPH%-OaMF50e zH|H<_eEuLL511F&S(A+rcV+|v3}cO7G`cm#T;&aUVrEygoYwc~fYBl&$!o^*TS$fL znSca}Vo=zNvzxjWQ>8|Wa#?I;eX@H23iP+`WXvxRWXxqEctDLRu_9;Xoh;rQ5^!{qdV`23wZ!}S4gcW_y2;09~f zHuO0ZX{|}Q7%J>f?e_7>CIk?DhbfIVp=k(55i-uC7m&2+!MpQdM+)GX!OR2Nm9t2{ zrq>z6Yz!IRM~MBlPN}~2p4IX5DhwNLCg6#I%g?Hk<6)BQirB0qYg6F+{NKqhm}#V3 zI+`&zJcsQ5k`+aA@yUvr?;dJ|JZcNhM9E>oB9RI1>E*cnWiYP1eKQI6OkG`%wUHK2 zFxtBLgbLRr@tGi28>~QE9dIuGBg?dIIjfpD>|I@SDO6of(2Z8k>$~X4ItV+35}jy| z-TUYg6c6b3J`e=nzC=Qe|NIxW#b!R^Xhp1pEX!HnvcEmT%E62yDC=TlOJBmx^Q7cWCRvF{+>gE#)|`$L5Q+Y(E$K*ZH+>GdqKRflfulD(CT}(Y3Pz$#?;#Zsp{N) zBPG-~07UC@#3rxcl+4DwT7Q_X>TUnY-h({4m?NYJ-3Hyl%yUU&tTERJ_N|3=MX=9k zBL(x*syWA%wQ9Hvf~|rZ%eKA^IR0v)*Qo6IqfglYddk8)8-PR!?VDvWk!q`Yn zS3q#EY|QLJ|iCG^8YTK%V8<{kF9OiGey) zUF4`TCj@{3=Whs4sLwxmf;5=UYLeZ9KP9;L*lW1UVj-)eHYi-$$IYaGj;-t%ubX)R zN2tOi)CrouMRB>6i_oPHU7;Je+u1}i{fiui7=__NkR~hv6`+Ig#RLy0ZlSzIFv;fn zgVNtk5^4@C#8>O7Ut+M+jhO2e#(fhx>7`d_KYuZqNlG34+LP^Lrv0G#$HFu0)ZDM+ zD}PhG>M>zqCMlb7BjiZuhMQnJ4aLbJ1I&lLG*#GQ}dYThb3AcJfUzv zkN3qSyT!>qx`6`oU&z+#QDkIgY+<_eQDV_^AkQD+q=(j_rGGb(J#U1Hj>#CMaCFRU z_NI>mrJfGsxqbdN{$v(V*)aMc6UAA|AUCe%4d~Gf6VYsBRM{79QT{z?0O_88=?qrE zB;AnF3a*>)Cl{}Chj|yE32;_oM6G{{O^)rcaVGgsa-MH}Jvqs%1nf|^_hKG2Ewrjn zyEb8)+R5(OArdHVL*9p()>E>d2PBaek0S3nlYQ&k>2ljC9issyw_w_q4BLT57uztj zlD27*%%EY=0&Y8V1AnG*d;VwL|xlgKX*cmHyX-*{*?0B@)<4}cV zT2_*80p96_(9l7${SZ$EvAXGwjxoIeIlr$tYogjs>+Fr&m<1t`j%6v`*7_g?oiug6 zv&bKs+ibu+Jnd0De+;BEm24~#0hH~)i2LlzNk_4|>ca`>Z4~hGiEhE332U7=VidY`+7fE~2 zOX3<3b<^j6_MFxZY~mw0s(z#2?P7}ib@)E4ubBO(NdXSuR-V-FSDGR~pJ^)ms28uR z(c;~?&6~G-yqRYYa3sl}kngF~OPR^(@C;TwqAhSE)~eJ*6)&mvb*+ zUS~Ro+Skv2e$syTyYUd`ve|*yylbY_%&qlg~YxA zb&N)w44(~j3kC%jr+j3H{^mHyr1Ym=VMkK&C)Um%$rTpfiP4vj?o!JOW%{x}pfC8udUS+uPQ_^ZgZ> z8te-HJO^xg1Dso=f3KDi-+7hb_?_J!#eVQeFALc%zO}Q-C2P+wDfND+1W1Iv|N28M z{l~vO_mOKV{^vT*cV`ODA#ItVo`jsK*6XLXFW)A&|eft8y0>tu!q;kHQ^SJ>}>ef&Smn*T{hPB_R}^5Ke^RAuu9p*2bB;hjjX}~*5?WScGaPYl40XX zjN=u}_vB_z*WGRX9hz2fWc;7lKBqQcJHz!kZj-4O0N}xGjmf2*K?Qo~NDA0!MT-V# z-6*y%LjUEKDKZ#RZ`Z%y{_T?W4^HS8kGq>8a%Ksz4Zv9)1mFT7?)&x$ZoD%@)hjUL zhh2W+KPk4f zP&k3r%&9$4Ue{gcezee)?$-4A2RVH$utXnpvVOjsT*Q?d6m6)q;Stgsc#G6*1G>T45Q^M{CWHTf;TyzW@nGe0s_v2E_>X^?DIp~5;LRG{^YmZtM zMN}K%ou59Q+r+$Ck-EVkiuxW@_I=qq9bfpGIxfx`v`3txwWEVqDROC0OaNA2v34iupxx6|#! znd$jFY9K|vE9L39TY2I8XX=p_z;0nLVatFhxpQ-CqPsi7_gA`HwUzqYsO&jl+^6QB z=SNE_;22nTl9Sd{S-~Q5`vYKG&w7N-qXiB(8V26rKw zhpr*-g4)7?9uA;!+l?kJ`#s6f|8;bY(RFoOGw(Z8YoyNAE#6kBobkpEr#{Z<$*TJH@X7_7DA)gd(4UX=-q$(d||{dDW9? z+Dso#OCwi~UJX37iy@~as5Iz+ue3F?_iM38l%M1yc+A$U zw6&-WgeyT$=G1mHDbcpL6tN=kN`a58ItKd@03-Yw&OQw>3qB|SR?D#}I%NlRc8GV0 z{zT4=hK;`z#l#MZ^?#S{B~gt6~*#lMY@B*o{3(WTa>vcJHpqqcfC}OVsj_40|{hUf>AG>?OfXvH1^hO7@ z4+MSBr#Vi65Wa~QY6t=TM&N1^!gcXyPZtkz3d6+ZYv273* zdZtN=h7`oyD?)_dOohcjTI(tH9T(o_vB+|oxzW$AjX$L|`>pM&SWBRs6wfzY1@T)V z8^ei8bApp9+13emk1r{2zSPXZj%I55-JhKKIR44d{}wk3rNvvQoQ<#Trg_C*zmq4P zdvn73RaX4RqY2^uF9^|=3e~}K1Gg-Ln(Lcz3wOn&sI24mp&{WcE&)^S-ziNTW+T*=0b zX<@Gt-?J+7o><#!w>Ywu#c($p&iVJmR{jwLMi)j)wl6If#iEjqMKDzctzDh*3Oeu= zfkZG3WluWmE2w>FR7W((VWiKCWs1SBcn)Hg2k{>{9_o%ebrEiBB{Aq5v>TSFIBq1V zh+`0LVjW%AK@D>!C9hkHl}+s!x(rAD%u3{Ysm5x{FIja4d3W?qD={TG&Vov8`u}nv zH0Qi(we0>_Z(3TZp@F&WWfEUfBFkDGTmsP~Fwkk(cXwtVZE(bz%f&NgGw=GOWV^># zx_js&5^EAvm9?*HtlACjW0R2*v*BH!xOr>;*!;3&wJf7xID>)cY_FWMAwH|cVzuF& zZw^}CzW5vaBac?ap^fRU@$7b4kqwC*HHWG>nQN0^bV6VPUhZU zZ7M`UWkqbOB-HKD&5ijQkepVTxiCKJ#vOqmuV#RhKmguir6+nV9Xq9Tx_e8mO3 zXk;r-lbD)~%)5!A!WBL5Bl+4mrewASTAXCA%bN>IJU_Vh?A z0>aLwR=9J^Oj}l#ymf8-uHfjVPjal`T0F&?mCH(hcqS)Km4n#U z+AF{2^upun=`IaI+pLgiRSRZ-y+ay1aTE|%=sJrdOd<5~!4D}0cKI>(Taf7=-9Hc> zIb!LIFY#ywucy*8{9w>$@I_t2qFeZ=570A=N3BHkZ z5vW6+=Z8z#N!R~AKfl13SuU6Rlk1E^^>1A40*x71HT{vRKL7g~Czsj{7_8T@x2>Qo z<#P6cA%SQw>OB<%;WFA@<&DI|>KaM9!PwyhfsfMGsEbFLMG*p6iTPB+21#3nAGW4w zOC{{HmcfXO2@EeCly;a&GPb6n27#RJ8Q^2c_+2mIRhP#hq;Sn3Z zOWNkS*z9svp#_!n_4gGV7qpMiO|siP7gJsTxLAnj|Jc6ER$3ax#95vtv25d!pe;0u ziFcsT^r(_UwSLVt(+W#k-I=^3PB2|zCdpGyo#LVG(EpXXCKnd`VV=a3fL!lKyUGS3 zrbdre3$o91Yenev@~pIQL$5Hp67nU@*tQaCoEncs)_WI+LN|U95EGE zq>G#*p8~9^M<4DY$rmI0QqhdBlOCW${#)fzb5lg)S38}S2_W`FKFu>4dG6+G;+gn) zkS$79`|Q^3Aa8R{8zUugMOI_d;6Ah$#Cf%lCchgTmM+g;UW1HqLH{0mJpSdnrz{_$F?kO z8WXcJ7VZV&Y$lwmxnKhsl^6uq0=Y?*RP@C;rCkmwI%ibGeT&TmmwUW~gxO~T?k}MQ zRbgg|qfq}=;jho2>ZE8*ol#$evopN-4JE{1H_*9v z;q@poFmV<&QSPFJdJo!nM8w?`(FVOs=8X-p$Ab7X8sG6fpy(AEoj8Ys9$&r;!%z@m z{A?gh1S!P#2=Yyb>qE;;s_NE?eI4MupJ=DvtKn$`Y+{H{$g$IeP+U89~=89s?EC<_Qy@j#uuooxd$R>x(=*}QJZM(YP{yABr zj&EJBVmq)Q>TC0l;r?McLdP!HR@4~+l(|ee&WVJURCpaKY;IhV7<3c@2aGzM*gCqr z*i4j%xq1U;MQmMW?g}R{O+|(oE>U{y?R1JR!KIomN2|9IkVOY312@etbMM!Ca>SJk zrP*Y#9BPEJx{b8_SI33J2`#3wbhqr%a?c1VGCC8MaopDZKN)JKAmSDVx+OwiQ);1x zuj?q_w+Dnj>BhrV)kq7>m{xBV!D2vFnhpfjy3HU#MAvB*bA>DGXvd@+tLyYc*xH>M!@tLq~cJ zJx|?JKpYw7;W+{PS0)to_Fya ze!M4(RhFf=^xtxnMU1VdFx~Y7-gW+R9#VGNbiBdI6w@>4iBy+2Geq9L5IAdNalhQ3pJVSrzX<$wY;xb0nloEY4@9% zp)7;?QazDu^Nvc*vbp@)9y=Z>KD)Q2Q;PPNC!l6vMr`I({ypm>c{0bx7gZnmy%5)7 z+6)W@J&;13pQ8ZoOz9*j)Z4HjEA>j@;1DOI9M6$!Q007ToAF=S=2riyV*|R*!2Djr z%$qn|0AfB0vC#W*ZIgNS2fnb3K=29_=bd8CfI|^7Ckkcebe%;VT9O$$wT! zi!T@ckAUS%qk*-vUANePr+xscFn5lMTILo%cQ4|r-)i0bg(y zdpdz#w^`1<1|iwNn-$S+kD3DSl6U=LA-YN~ga7cDh(GUud%Il2YD)C1@xaVblg)8? zwZ{<#_qXr&#WS`jD?lFM@}NZN9z8L<~~_!-jdw&)1Q$0+sVKeOTH z!$@&w;BfiJvSfSb(ZqbV^UrH;85FQ)sr z^Jyp#I-~St_nxwkCpn~;Gsp3;KAuh}L1)dX!;$3o9$z7*3nIM$5U5{%2ol!c)Ih$C zlt^!bS7k-Mh&XDyS~}Y-Z;ED%cvRP84SwhE+=1_g?PR8cVKTC+rwa@OOi7^pbeDG& z5f$O_{cyn0L?=PI`Lf=?TBU+N&F)Kjj`*Z&0};xEX9HpMMHOXanq2o^!^q)!d&`C{ zWPAVXT(h5Kq4{lN3Eiv$u;g*~^gH;C1LcDHEz+fRwlmWk<8E(i5d@7?*lxMp><)%V zPZ7%^_enLW_bvj;4z==H9dQSW_RP()XEYq0kn?%h;=x@BVA&DdIzbi-HBg2{l^} zq-YZWYxT~r@<%rjYotu?A3K&Jl*5Y(+B=)oDYRItRto4F5n*t0nSKl1^bUp;*aaZ{ zShey)L!-#tqsMSyr?;^B(YSjuMkdFPyixVa4yL@;WeJ3O&Ni|z!Ebz>h?v$CW=I!D zWT7!cxxK9+J@Ec0$4)0PIk-8bSSa<4BK<)hld49->m%02)*B6iE1WrYPNn7^A4VKu z4f*xq5<(-EP-Py9Tv|{_wHK?!Bsf7^Joa2duZyPH@~yG{zH|eVe5D}`>42Gen>eP< zq+j`(7^eQ2qb@Md$Hc)N;)G7Zh&-$xo>I7s1c`7yeVDbD zUDFf%BV{3aJ?a;31{QZwPHO<8DZ~u}-D(mu=O`w=xjc3P4Nr}Nl2gWRsVVjQ7-^^w z82}gnCfNr}9mL~YDss4E{u&G$| zFvv(Nm{Sq#qQMbR|?c2m+yT5Rk{VdrD z@`R9)Qg}=ljEYdq$5#fzsNSGy6qCR_1{=r}m4_;|9rF(9g&qc)-$=u%2)H@pO}Sfjt1tcb59FFKt=n`Q z=4FA>4&M%#-s4TOd-#4S-9fOAeoEi~h6~gGHA>T>En`P^6qAX4h%uuU-MJ`usxE}J zq5fIs1;=nTR%VnGogMcCagPfY#B6@{$HMjxfKN|fA`eHp`?7R$Vi=a02<)`xlhUIJE6O|6E9qC(_O{k&eqd%ZJl@MxeypZWs+A};1$CUZ6*|8> zENt!>rWJ>t@+Wnrcd+-e{e)}jkO)Z3+zI6;a>O_0_h*mq6l_f%3bHM8nyw@Y7<@^- z+hz<)zvt^L;V;^QUdZkm*N(qI?h%V!fl$iF-tMvWMoC$5eU6*!BG1=St-*1QZY2Wiu#4OcEFhQbAwJFnW#^4y;7zFQtl@6QhcA1rr&^*ON_ zP?{HSpEW=MulZNWwvZ)Nm|pShjm@sfCE^@N#g zh*+ENuF1;Gj2z7x4m1?!6yVZJ5_-qG5(Bq^D5cGt*k9HL=4@c_(o~s!iJffe>)u*R z&7m}_*STfj<-=h}jAa@P{woZBVqw)7N);17-_UuszFxu8Lte@L_#L18@8zH+ueNvu z(%K7N*&7+h0Of)~OmyxhDdV;I^T{O!TW?v%N2z?~t1?vgqs87LVab81zsF!I6pgX; zmCto4$jZ-T%Ze!+#&`KE)MZ>RNK@Zp@3LQL$phtwSm-}Qaj$OZk%2~odudEv*KusA z!F|VUp%b~zs`$-*KA-gV0soe%N;};tWz04~O-l9OtFyQiP*{dhx^(*}B{W+ww(dz* z=YOMNRwOUZQ;C<`P1ZwkO3jh5Fq~pp=MzhX!BpXh!tlpf zY}nI7jiB~{Ys9liXV{W6-g~XteP=gh@XD5m^v*t^4BVCM@3U6pUKtphKk2$}eVSr> z@EKd3(X$w)S3SPzLnKD!*C&j9$+&(W3)R+>E=r)Ma@~I)7A1SLuS>&tAHNbR0`@9A z(pfB6VaeN`RKatfd!|$byWr5tU)9fFE^ubd4#$;@{uRrcZ{_vNgfG7e{Hn!W-o=Ui z^RcO0LIZyhg|^y7-;noek`pfCSa;U3hxD08@w9Oij^UQZVpXxhObXHNJ1x>CxATus zO-`&MHSQgwIq~pwo7}T(_#x<-ET?kzb;AW;UD7h>iZP3SpvMJQ$ddg%=*MvFa#Zlt z=oX(CU>$9vX`?FFJul&YCGD$ar`&iFwMIkP(o5FVIv1bcy#nPp0E(klw*zv7L*!8grp6t*RBn)r>5x#6YaJ z7pj>i&17Lt4RrfH+D)ADD=y{JI$}4P@2B)jvhV?15ZF@)myt z>i6|m_4|)G+``?Q14Nsb?hXP9v=V32gzlaeg0Ps<$IkB1e5cDoU!llUJ5+(i#Jt+Z zdy={xO`?||50-~Ya?n#*Qhv#2=93C2XDA95E}o{o(WC5hnj`MxP*u(8-28bmHw>kO zRlVrYj)mjRn3#G7r_7T{{uIY^gDYE$Ka={QHV^QK(Axtf$02gx5)=V_E8siZvM(RQ zjx`_z&laV(Z1B#i$%`!^+0(TSnfG00+g3!}G18kOm@9*&R+S`a3@P#UhAjB21smhVU60U#w{4^@Sp(PdBCkC}d2#}U1c>l-De zS?msxdA=1}fmdw&F?)>E?(Dn`=X_XUZ_tS9zu}7r+Jgg@E+Z%~+Wh$uaH=jTW>&Ro zvLq51G8%$8=L&jTbK28#xUU#Hb|TXEVPZ1<{gxV?UN9*UyzzN%(NrJ8%ISKg^!v5v z73NQL!37u?E~>1As0MlA-XhT{2Nf8?h}Fsa6z`a}=7`^w*DzfWNCK#3&&pPKAFtBU zB0`14ey*4KR~{ol?|)8F%A`I9veQW*-_blj@3c|D^Ja9ugMz%kyURQGuJiNL1IU>Y zSIvt+b$q@-HujV4!?Xb)_mT7gZTLhQ)>jHjBSPxOIK8`3Ct}0rE@Cd-k5~e*L1SF< z&oRdL&#}$)Edn9Y6qZC(zLJ=O@5OAU(%KKd<*YL6vFRD?a9>!y%&o;~YBMwc&7u=> zw?0t4fqk1|UTWi3-~BTw2;jl>oL^1x!uQ%}GpOHv6fs7^kGiZFrrRjQv4r#NlSGG7 z?|KE)e%G80mP+@hURWgc{p!DNW79YF1dW%Dk+YCo9%y&7{c(2kHiY4u={fDg8zZ$0 z@_sndkO>E)V{R0=$U=#88)(#7vp)D_BD(S+xv!Yk*SbI_i3308i~C-e>F#A?0DV$XBz z&1Zb4sgmn+r+W8Upxf2t03qHLe(#hQ_vGcjUO^v#Lyv~cpSE+lOpnLFs)BwL`5InO zw03^bC-0s})`TM{b-PF}4;$(iV|#3#c{gw&s0nF^pDs%hFRTRX@lX zNN#`vICwmO6N5iJ%XO}e75E}rWJh`+CuVn1T1Sksjd{h~&8*-+6~X%ni!&A=C~j>< zNa1-Emd@HFkTxAwml6x6)MvVrcy+E3FTxX*`>R-5@nJdAnUnC+|Gd(D17u3&ZIz!t;8I?4MUGDX-2EGYP!D{sFRGfNj=#Uh(>8 z;1X$2zx!oKAc)(qqG~Or%DK81^*3ju16-*=K0SM0omyS%!}U@Gbp;&RW`?(j*AD$S zo81?Mr56>k-*A8TOzHSt#Iuo z=RE-@3G!}W0)_#{7+q}YKiw^pyL#^MiyEMsbDw|VJ!1(*AIZ7*%yyynit0fQJmgiq7fMo%3M3kiDX*n=mfK7vbktXvnxQO%e?t z^}$IvL)S+5;7-X5!F0$vhCEQ$BZ zhIJHy9=#XKK?vTb3OH6@F`ZZ}Z=}$5;4-27y3l0}{JwTg&deYYv9noG|L9YGyB%mv zOQniWfk~4$sJa&*o~aKR{#e;voTI(A<(TMN?}pJF6maJbu9orHQ&`8MHz14sgm_sp z{D(;AqYO7y+>hs=53wh!GtTqh_g}64`a3gET4}TY=MfzS#cE#8#4ZX>Krqi$LW8ZR zNIv)`9DlqL=rL97Vd6931RWqwB;K#i4g~BA|B&MD0Pl*Be>T7uvNw5*sQjS}Nndt` zc}XlaD+Z$!$kqM2&|Jgi4`5U66w9Ip-cpv#oR72;f18J^{*Kgr;T({eVQHiMnXi-H zXxou6J2|yuQN!(9VM?HWs6L24&n(@W3e9NhrI!c=@-d`6)hGyp5dpL6;N=qp5NU#563l}_M-?-hh#R4 zKPZ|6qSaeK?;?2;xOyA|Js&Fmy9a1u$|>UqNH<538bc!t6n{QMj^KL) zBrk+h;(-(0Y7X#IfoN3wYS!W|E!HTkyZ`w4h9^b-6+rN2pOdj*gZTueH?Z2E2NA-N z%4Kh^+<$jfl@!mDM2tNivC%;RKdv_^(-{EtiB!XoKuD~-y+G*ro=7tT!5@DzCkGix zjA&9Krtra1P%Mcw{Ba^5_Vif)&uWR*Scm%gg|>krfbs1$Hcg2|1(Xudgtm7!=ydyU zzn|TT1}F?HsSIlxr%L)Xm;Pa-5#EfUc48%M|-h@}1; z2D78HxR3W@Tp_Zbuzo#Sb_@!6+cFBZ7Oef(TLB2)tgAGp(~r?GmFm9S|K8&#nTttx;1Iu}JGXtT(@_TH^~m@yin zZemDCh9h^6pPAxan9z+gYEBH>T$dK}*=ddz^ktXXeI^q#ga4sG)VfT1)6WWc1&|Jw z=@0UtEi2|>c5hN+En-ay{NC|9({P6-B;~z z@NxyF`uJwnW=<}l*DB59$Ql^YVBaewjP)s0Q}SCF8VnNsS1hRw%{)O;E#_nrZgE}A z?WU53V46azb=8Ln96YZ6zAo8`EX-~$zkAPJ6+PBG63Ae%D1__!5)H=SO)?yC%XB6@ zc}5H4ZXuj=H4}X>Eq=WB+Ux6c8e_h#x<>=jt?3Xo<~)2(HBlhM!uJiXDP`Mt_ z*^Xz0Jb86VVZnmK;yc@>Ikj%lTE!AAlHgB|Z^dE>G$E~&Z*U$To{LLk6xWov<|H@= zR5+@cf;~PAnS#$-qEE<#T19KS z5Dc!KOH`}Bpim66pmZOq5)itiy~hj3_Zdfk>`$jj zB*zu0wm_}@dyG@R@hl?}O2JUv+Hh~(##?PDl0!0fOp;2@<4`K$?~>b(Tv}&`mcez` zc(sK-Pjec4GikUOxGBWGHMLugG?f{4IBhgBDBWf|I>#cik$*^FoN0v?a8TEV-XrJ0gtY%t+!)}qjDzvHg;yxLWP zkKfq)M3fj5nZx?&3<=jtru?#E^RtRMAKVDK8>R z_$XE}fl6({z1A3+lsk@H%cn{6*X4evg9|H!SG=Fq65| zx1e6wiu_=Ddi&*4*(K5~BJg`iSgwC9uq@!p#Yk@Z-9alwa7A)^z8K&ze&7GkQimc@ zikIyE$8BnGekHd}iprtvr|t`mDDpyn(6b*YcC2O}G`)+V)NUC~XZ%eSdmt9--bZd& z0Sv2*X4E*?1n0`6&2}OG_{*u}Lrn5B&ZRpY(N4P^=K15eV)=FpB9I76pSVPvla(6+ z9GLG|=0g1jw8A$#w0ogwfN}uH$<>oIa5`PLR2#59NEB-m99d$ zodUB)TeHf}ut7ACk4oP*!vD3BeJHtx_-tGCCWf@C5Z|=Kj@Vq}C~F$)<|RBpn;EsE5%rNz z8W2qya03QNRipE)NXX(Cz~DD%fitAr@-OG?eO>FK^tJqSXPIrznXG}=WPtK+8^FG_ zYVeZl{{}>e5=3O|-yXpG(9PqPD%N%{nyu3=d9oIQ(T-yU0U_`ZH3ynWh|5F_Mog)-%A5x zN=vq_{a~(M2)`xvVl)9ax(QxJgLjv3oFNdgbd@_YhQdo|FS78AOhk~`cHJAf^j8f} zkP*Zqgm{Hiio*rduOSkuU(7>S3K@u`xGGX08f?;?NC99}LpHCSD=GrHAH4L!{&?K% z(aFQGFqX@x>AJwUa6>Y8AQgQYQY4P9RImKVufzBzm`K}n#oU}JHvloA!Sd_!yMf1EQz zRcs4kUojwxDqlZ7PufYB8G8_67qH<^!ysUaf~96OdN4RYrPMXay1(`SOb>wGv1m#S z(2i_$s$PopyZ{Z|HUp4cEA_|!dI&w}C|B7mZsznn32x0yEJzsP6hu(#h+Vr)?@b3! z&_>hKc|2xyMAtcMOxp-4fAjYdHQG$G z9XtOe`}{;6hA}M^!|p+PL%23fgS|l9@_KU1ya<-yBgqJ^3VTu^@)9YnmTVvsjP@PP z4Ka>SmZoBJEEbGHts1zBj%M&$S!}B?d*!|UET*UJmN-ytC-NfrxnE0&n1LiZt9MneyR+ztAbUE$8oDP zwO&POc%+x4xF4fjB~-ct!GS;l_(?(HaWmRN%kKv&@V)5OV+nBM>X#Ah?M)P4#u>Vy z|NHeP)%G18)y?1HOSn$FhM}FHW!g}GWG>{Q;MF!V1C>EdCTjwI8V($sirjd5Od_*A7YTb?*R`FY zIk6j3)O##f;7{gO%yL0%EdR`0xDMB8^f>vw;!SH+6w#iN3#^6bTj|&Uin99(L_5vL zB85tH7q|)3ayb6)7s6`@xlNAs-wPf-DHRAhDfCKjR8QLDoE5ON{=L0SALkg1$zPK*n^jXF{tnTHxDH8#~e>R7v7rv}#bIG}uO(@Q&U z_VMLfahooUH!zbKMIOt-TSUqRv%o?Va{?#*YL40++0_q2lIn9fScvx98zk+t57M#d zPjh4(e3Gd>lBJ50J@U8{Ax;iBl%;02+3+KysTO3*tkWEY7yK3A9r zj@-ApSCBBCOj`b+;5bHinB1IVq2P{1TF7P0kQdwrMynf}ij)t_IH^cDf)&!wI8T%+ zUkaHgw@qf5G?&^!B!@2+-ZZKg&zZpt?pVwG8JE$kE4US`lDINIQ-YO?`|+p2I#k(? zFONEfl4#8YLTq<=<8PxfRV?ft4i_Dck5$@fP9OWg&?{Jni8cQ9vt$xLMC7)@ryZ@A zzE}Rt;lx(;MMtbah_*37C{-4Wz0K;lm|P346W!dTR0-8FhUy0I3}avHUOEr@uuBZR zWNT<1?Ep@}@UTgn6$(d>_(ZZui`8%IX4aQ^+F#p*(qYOYFxM0@YXV(ZZ+d-}SKwOBc)w@@=&qlRDc)^O?l8!*yQ z@8fSs>9L8V@vd~-VhaUNOb{2>68_z6!Bm&pV5L3jOX2B@i1H-fMwP3c+Qv?fcrsAr zJGaAtViO~7!DG)tH4ZqCsb(3&J$2n|B*6wAK0U5{Ydx; z6eMz~rFOXWX&b$=`fA4$6yu$(xz|2uOBF_fk?-V)-0rf)oG1gV#E0$kZ17rpnHg+y(<)vXV*?bz&yp F{|7zLBdq`c literal 0 HcmV?d00001 diff --git a/student.md b/student.md new file mode 100644 index 0000000..806ee80 --- /dev/null +++ b/student.md @@ -0,0 +1,5 @@ +OS_Task1 +=============================== +*Name:* Mohammed Ahmed Mohammed Abdel Fattah +*section:* 4 +![it seems to be url problem](img.png) From 7fabc2b1bc632d5fab632a3bf59c122dea0213c1 Mon Sep 17 00:00:00 2001 From: momo Date: Sun, 22 Mar 2020 07:52:02 +0200 Subject: [PATCH 2/3] forget display --- Project/OSTask1/src/CustomerManagerApp.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Project/OSTask1/src/CustomerManagerApp.java b/Project/OSTask1/src/CustomerManagerApp.java index f377413..b9dd3c6 100644 --- a/Project/OSTask1/src/CustomerManagerApp.java +++ b/Project/OSTask1/src/CustomerManagerApp.java @@ -40,11 +40,11 @@ public static void main(String[] args) { public static void displayMenu() { System.out.println("COMMAND MENU"); - System.out.println("list - List all customers"); - System.out.println("add - Add a customer"); - System.out.println("del - Delete a customer"); - System.out.println("help - Show this menu"); - System.out.println("exit - Exit this application\n"); + System.out.println("1 - List all customers"); + System.out.println("2 - Add a customer"); + System.out.println("3 - Delete a customer"); + System.out.println("help - Show this menu"); + System.out.println("exit - Exit this application\n"); } public static void displayAllCustomers() { From 22f82b9e9ead959f0716fc69daef73bf68c92b53 Mon Sep 17 00:00:00 2001 From: momo Date: Sun, 22 Mar 2020 08:53:59 +0200 Subject: [PATCH 3/3] mohammed --- Why.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Why.txt diff --git a/Why.txt b/Why.txt new file mode 100644 index 0000000..7e49e63 --- /dev/null +++ b/Why.txt @@ -0,0 +1 @@ +LOL \ No newline at end of file