From 51bd98cbc2049ccc8abd0e3306639a3ce2c1d2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BA=A7n=20V=C4=A9nh=20Thi=E1=BB=87n=20Ph=C3=BAc?= <143604440+tvtphuc-axonivy@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:18:46 +0700 Subject: [PATCH] Feature/marp 188 new connector vertex ai api google (#5) --- .project | 17 ++ .settings/org.eclipse.m2e.core.prefs | 4 + MY-PRODUCT-NAME-product/README.md | 32 --- README.md | 9 +- pom.xml | 8 +- vertexai-google-demo/.classpath | 33 +++ vertexai-google-demo/.gitignore | 19 ++ vertexai-google-demo/.project | 49 ++++ vertexai-google-demo/.settings/.jsdtscope | 12 + .../.settings/ch.ivyteam.ivy.designer.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 10 + .../org.eclipse.wst.common.component | 11 + ...se.wst.common.project.facet.core.prefs.xml | 7 + ....eclipse.wst.common.project.facet.core.xml | 8 + .../.settings/org.eclipse.wst.css.core.prefs | 2 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../config/custom-fields.yaml | 20 ++ vertexai-google-demo/config/databases.yaml | 1 + vertexai-google-demo/config/overrides.any | 1 + vertexai-google-demo/config/persistence.xml | 2 + vertexai-google-demo/config/rest-clients.yaml | 1 + vertexai-google-demo/config/roles.xml | 4 + vertexai-google-demo/config/users.xml | 2 + vertexai-google-demo/config/variables.yaml | 9 + .../config/webservice-clients.yaml | 1 + .../axonivy/connector/vertexai/Data.ivyClass | 2 + vertexai-google-demo/pom.xml | 27 +++ .../processes/vertexAi.p.json | 41 ++++ .../vertexai/managedBean/GeminiDataBean.java | 157 +++++++++++++ .../vertexai/validators/CommonValidator.java | 43 ++++ .../chatWithAi/chatWithAi.rddescriptor | 7 + .../vertexai/chatWithAi/chatWithAi.xhtml | 100 ++++++++ .../chatWithAi/chatWithAiData.ivyClass | 2 + .../chatWithAi/chatWithAiProcess.p.json | 44 ++++ .../webContent/icons/logo.png | Bin 0 -> 18729 bytes .../webContent/layouts/basic-10.xhtml | 67 ++++++ .../layouts/frame-10-full-width.xhtml | 61 +++++ .../layouts/includes/exception-details.xhtml | 109 +++++++++ .../layouts/includes/exception.xhtml | 47 ++++ .../webContent/layouts/includes/footer.xhtml | 18 ++ .../layouts/includes/progress-loader.xhtml | 15 ++ .../webContent/layouts/styles/chatwithai.css | 58 +++++ vertexai-google-product/README.md | 80 +++++++ .../images/chat-with-gemini.jpg | Bin 0 -> 10200 bytes .../images/chat-with-vertexAi.jpg | Bin 0 -> 33832 bytes .../images/create-new-API-key-for-gemini.jpg | Bin 0 -> 57782 bytes .../images/create-new-project-in-vertexAi.jpg | Bin 0 -> 77834 bytes .../images/generated-gemini-key.jpg | Bin 0 -> 20225 bytes vertexai-google-product/images/get-key.jpg | Bin 0 -> 46245 bytes .../images/go-to-setup-IAM-Admin.jpg | Bin 0 -> 57073 bytes .../images/select-and-enable-apis.jpg | Bin 0 -> 47477 bytes .../select-enable-apis-and-services.jpg | Bin 0 -> 33672 bytes .../images/select-model-to-chat.jpg | Bin 0 -> 10009 bytes .../pom.xml | 6 +- .../product.json | 12 +- .../zip.xml | 3 +- vertexai-google-test/.classpath | 41 ++++ vertexai-google-test/.gitignore | 19 ++ vertexai-google-test/.project | 49 ++++ vertexai-google-test/.settings/.jsdtscope | 12 + .../.settings/ch.ivyteam.ivy.designer.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 10 + .../org.eclipse.wst.common.component | 11 + ...se.wst.common.project.facet.core.prefs.xml | 7 + ....eclipse.wst.common.project.facet.core.xml | 8 + .../.settings/org.eclipse.wst.css.core.prefs | 2 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../config/custom-fields.yaml | 20 ++ vertexai-google-test/config/databases.yaml | 1 + vertexai-google-test/config/overrides.any | 1 + vertexai-google-test/config/persistence.xml | 2 + vertexai-google-test/config/rest-clients.yaml | 1 + vertexai-google-test/config/roles.xml | 4 + vertexai-google-test/config/users.xml | 2 + vertexai-google-test/config/variables.yaml | 9 + .../config/webservice-clients.yaml | 1 + .../axonivy/connector/vertexai/Data.ivyClass | 2 + vertexai-google-test/pom.xml | 40 ++++ .../connector/vertexai/mock/DataMock.java | 19 ++ .../mock/json/bodyRequestContent.json | 18 ++ .../vertexai/mock/json/responseContent.json | 14 ++ .../service/GeminiDataRequestServiceTest.java | 217 ++++++++++++++++++ .../GeminiDataRequestServiceUtilTest.java | 87 +++++++ vertexai-google/.classpath | 33 +++ vertexai-google/.gitignore | 19 ++ vertexai-google/.project | 49 ++++ vertexai-google/.settings/.jsdtscope | 12 + .../.settings/ch.ivyteam.ivy.designer.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 10 + .../org.eclipse.wst.common.component | 11 + ...se.wst.common.project.facet.core.prefs.xml | 7 + ....eclipse.wst.common.project.facet.core.xml | 8 + .../.settings/org.eclipse.wst.css.core.prefs | 2 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + vertexai-google/config/custom-fields.yaml | 20 ++ vertexai-google/config/databases.yaml | 1 + vertexai-google/config/overrides.any | 1 + vertexai-google/config/persistence.xml | 2 + vertexai-google/config/rest-clients.yaml | 1 + vertexai-google/config/roles.xml | 4 + vertexai-google/config/users.xml | 2 + vertexai-google/config/variables.yaml | 17 ++ .../config/webservice-clients.yaml | 1 + .../axonivy/connector/vertexai/Data.ivyClass | 2 + vertexai-google/pom.xml | 42 ++++ .../vertexai/constants/Constants.java | 12 + .../vertexai/entities/Candidate.java | 16 ++ .../connector/vertexai/entities/Content.java | 33 +++ .../vertexai/entities/Conversation.java | 36 +++ .../vertexai/entities/InlineData.java | 32 +++ .../connector/vertexai/entities/Part.java | 36 +++ .../vertexai/entities/RequestRoot.java | 23 ++ .../vertexai/entities/ResponseRoot.java | 17 ++ .../connector/vertexai/enums/Model.java | 15 ++ .../connector/vertexai/enums/Role.java | 15 ++ .../service/GeminiDataRequestService.java | 114 +++++++++ .../utils/GeminiDataRequestServiceUtils.java | 83 +++++++ 120 files changed, 2404 insertions(+), 51 deletions(-) create mode 100644 .project create mode 100644 .settings/org.eclipse.m2e.core.prefs delete mode 100644 MY-PRODUCT-NAME-product/README.md create mode 100644 vertexai-google-demo/.classpath create mode 100644 vertexai-google-demo/.gitignore create mode 100644 vertexai-google-demo/.project create mode 100644 vertexai-google-demo/.settings/.jsdtscope create mode 100644 vertexai-google-demo/.settings/ch.ivyteam.ivy.designer.prefs create mode 100644 vertexai-google-demo/.settings/org.eclipse.jdt.core.prefs create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.common.component create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.css.core.prefs create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 vertexai-google-demo/config/custom-fields.yaml create mode 100644 vertexai-google-demo/config/databases.yaml create mode 100644 vertexai-google-demo/config/overrides.any create mode 100644 vertexai-google-demo/config/persistence.xml create mode 100644 vertexai-google-demo/config/rest-clients.yaml create mode 100644 vertexai-google-demo/config/roles.xml create mode 100644 vertexai-google-demo/config/users.xml create mode 100644 vertexai-google-demo/config/variables.yaml create mode 100644 vertexai-google-demo/config/webservice-clients.yaml create mode 100644 vertexai-google-demo/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass create mode 100644 vertexai-google-demo/pom.xml create mode 100644 vertexai-google-demo/processes/vertexAi.p.json create mode 100644 vertexai-google-demo/src/com/axonivy/connector/vertexai/managedBean/GeminiDataBean.java create mode 100644 vertexai-google-demo/src/com/axonivy/connector/vertexai/validators/CommonValidator.java create mode 100644 vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAi.rddescriptor create mode 100644 vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAi.xhtml create mode 100644 vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiData.ivyClass create mode 100644 vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiProcess.p.json create mode 100644 vertexai-google-demo/webContent/icons/logo.png create mode 100644 vertexai-google-demo/webContent/layouts/basic-10.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/frame-10-full-width.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/includes/exception-details.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/includes/exception.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/includes/footer.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/includes/progress-loader.xhtml create mode 100644 vertexai-google-demo/webContent/layouts/styles/chatwithai.css create mode 100644 vertexai-google-product/README.md create mode 100644 vertexai-google-product/images/chat-with-gemini.jpg create mode 100644 vertexai-google-product/images/chat-with-vertexAi.jpg create mode 100644 vertexai-google-product/images/create-new-API-key-for-gemini.jpg create mode 100644 vertexai-google-product/images/create-new-project-in-vertexAi.jpg create mode 100644 vertexai-google-product/images/generated-gemini-key.jpg create mode 100644 vertexai-google-product/images/get-key.jpg create mode 100644 vertexai-google-product/images/go-to-setup-IAM-Admin.jpg create mode 100644 vertexai-google-product/images/select-and-enable-apis.jpg create mode 100644 vertexai-google-product/images/select-enable-apis-and-services.jpg create mode 100644 vertexai-google-product/images/select-model-to-chat.jpg rename {MY-PRODUCT-NAME-product => vertexai-google-product}/pom.xml (94%) rename {MY-PRODUCT-NAME-product => vertexai-google-product}/product.json (80%) rename {MY-PRODUCT-NAME-product => vertexai-google-product}/zip.xml (90%) create mode 100644 vertexai-google-test/.classpath create mode 100644 vertexai-google-test/.gitignore create mode 100644 vertexai-google-test/.project create mode 100644 vertexai-google-test/.settings/.jsdtscope create mode 100644 vertexai-google-test/.settings/ch.ivyteam.ivy.designer.prefs create mode 100644 vertexai-google-test/.settings/org.eclipse.jdt.core.prefs create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.common.component create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.css.core.prefs create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 vertexai-google-test/config/custom-fields.yaml create mode 100644 vertexai-google-test/config/databases.yaml create mode 100644 vertexai-google-test/config/overrides.any create mode 100644 vertexai-google-test/config/persistence.xml create mode 100644 vertexai-google-test/config/rest-clients.yaml create mode 100644 vertexai-google-test/config/roles.xml create mode 100644 vertexai-google-test/config/users.xml create mode 100644 vertexai-google-test/config/variables.yaml create mode 100644 vertexai-google-test/config/webservice-clients.yaml create mode 100644 vertexai-google-test/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass create mode 100644 vertexai-google-test/pom.xml create mode 100644 vertexai-google-test/src/com/axonivy/connector/vertexai/mock/DataMock.java create mode 100644 vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/bodyRequestContent.json create mode 100644 vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/responseContent.json create mode 100644 vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/service/GeminiDataRequestServiceTest.java create mode 100644 vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/utils/GeminiDataRequestServiceUtilTest.java create mode 100644 vertexai-google/.classpath create mode 100644 vertexai-google/.gitignore create mode 100644 vertexai-google/.project create mode 100644 vertexai-google/.settings/.jsdtscope create mode 100644 vertexai-google/.settings/ch.ivyteam.ivy.designer.prefs create mode 100644 vertexai-google/.settings/org.eclipse.jdt.core.prefs create mode 100644 vertexai-google/.settings/org.eclipse.wst.common.component create mode 100644 vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml create mode 100644 vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 vertexai-google/.settings/org.eclipse.wst.css.core.prefs create mode 100644 vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 vertexai-google/config/custom-fields.yaml create mode 100644 vertexai-google/config/databases.yaml create mode 100644 vertexai-google/config/overrides.any create mode 100644 vertexai-google/config/persistence.xml create mode 100644 vertexai-google/config/rest-clients.yaml create mode 100644 vertexai-google/config/roles.xml create mode 100644 vertexai-google/config/users.xml create mode 100644 vertexai-google/config/variables.yaml create mode 100644 vertexai-google/config/webservice-clients.yaml create mode 100644 vertexai-google/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass create mode 100644 vertexai-google/pom.xml create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/constants/Constants.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/Candidate.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/Content.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/Conversation.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/InlineData.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/Part.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/RequestRoot.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/entities/ResponseRoot.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/enums/Model.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/enums/Role.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/service/GeminiDataRequestService.java create mode 100644 vertexai-google/src/com/axonivy/connector/vertexai/utils/GeminiDataRequestServiceUtils.java diff --git a/.project b/.project new file mode 100644 index 0000000..e9f3e57 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + vertexai-google-modules + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/MY-PRODUCT-NAME-product/README.md b/MY-PRODUCT-NAME-product/README.md deleted file mode 100644 index d593446..0000000 --- a/MY-PRODUCT-NAME-product/README.md +++ /dev/null @@ -1,32 +0,0 @@ - - -# MY-PRODUCT-NAME - -YOUR DESCRIPTION GOES HERE: Please just give a short description here without further headings. - - - -## Demo - -YOUR DEMO DESCRIPTION GOES HERE - - - -## Setup - -YOUR SETUP DESCRIPTION GOES HERE - - -``` -@variables.yaml@ -``` diff --git a/README.md b/README.md index 0f94020..3d351f9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# MY-PRODUCT-NAME +# vertexai-google -[![CI Build](https://github.com/axonivy-market/REPO-NAME/actions/workflows/ci.yml/badge.svg)](https://github.com/axonivy-market/REPO-NAME/actions/workflows/ci.yml) +[![CI Build](https://github.com/axonivy-market/vertexai-google/actions/workflows/ci.yml/badge.svg)](https://github.com/axonivy-market/vertexai-google/actions/workflows/ci.yml) -"YOUR SHORT DESCRIPTION GOES HERE" +- Gemini 1.5 Pro is a foundation model that performs well at a variety of multimodal tasks such as visual understanding, classification, summarization, and creating content from image. It's adept at processing visual and text inputs such as photographs and screenshots. +- Our app allows seamless toggling between VertexAI Gemini 1.5 Pro and Gemini 1.5 Pro, enabling users to switch easily and leverage the best of both versions for enhanced AI-driven solutions. -Read our [documentation](MY-PRODUCT-NAME-product/README.md). +Read our [documentation](vertexai-google-product/README.md). diff --git a/pom.xml b/pom.xml index e11e0a0..a640c14 100644 --- a/pom.xml +++ b/pom.xml @@ -1,9 +1,9 @@ 4.0.0 - com.axonivy.market - vertexai-google - vertexai-google-modules - 10.0.0-SNAPSHOT + com.axonivy.connector.vertexai + vertexai-google + vertexai-google-modules + 10.0.19-SNAPSHOT pom diff --git a/vertexai-google-demo/.classpath b/vertexai-google-demo/.classpath new file mode 100644 index 0000000..45a97e4 --- /dev/null +++ b/vertexai-google-demo/.classpath @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vertexai-google-demo/.gitignore b/vertexai-google-demo/.gitignore new file mode 100644 index 0000000..9b0d458 --- /dev/null +++ b/vertexai-google-demo/.gitignore @@ -0,0 +1,19 @@ +# general +Thumbs.db +.DS_Store +*~ +*.log + +# java +*.class +hs_err_pid* + +# maven +target/ +lib/mvn-deps/ + +# ivy +classes/ +src_dataClasses/ +src_wsproc/ +logs/ diff --git a/vertexai-google-demo/.project b/vertexai-google-demo/.project new file mode 100644 index 0000000..84d976e --- /dev/null +++ b/vertexai-google-demo/.project @@ -0,0 +1,49 @@ + + + vertexai-google-demo + + + + + + ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder + + + + + ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + ch.ivyteam.ivy.project.IvyProjectNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.jem.beaninfo.BeanInfoNature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/vertexai-google-demo/.settings/.jsdtscope b/vertexai-google-demo/.settings/.jsdtscope new file mode 100644 index 0000000..869c01d --- /dev/null +++ b/vertexai-google-demo/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/vertexai-google-demo/.settings/ch.ivyteam.ivy.designer.prefs b/vertexai-google-demo/.settings/ch.ivyteam.ivy.designer.prefs new file mode 100644 index 0000000..7b82060 --- /dev/null +++ b/vertexai-google-demo/.settings/ch.ivyteam.ivy.designer.prefs @@ -0,0 +1,5 @@ +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.connector.vertexai.Data +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.connector.vertexai +ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11 +ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=100000 +eclipse.preferences.version=1 diff --git a/vertexai-google-demo/.settings/org.eclipse.jdt.core.prefs b/vertexai-google-demo/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d4540a5 --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.common.component b/vertexai-google-demo/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..22afeac --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.common.component @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml new file mode 100644 index 0000000..9b4b9fc --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.xml b/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..156ecdb --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.css.core.prefs b/vertexai-google-demo/.settings/org.eclipse.wst.css.core.prefs new file mode 100644 index 0000000..5ddc6bd --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.css.core.prefs @@ -0,0 +1,2 @@ +css-profile/=org.eclipse.wst.css.core.cssprofile.css3 +eclipse.preferences.version=1 diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container b/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name b/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/vertexai-google-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/vertexai-google-demo/config/custom-fields.yaml b/vertexai-google-demo/config/custom-fields.yaml new file mode 100644 index 0000000..aa19ae0 --- /dev/null +++ b/vertexai-google-demo/config/custom-fields.yaml @@ -0,0 +1,20 @@ +# == Custom Fields Information == +# +# You can define here your project custom fields. +# Have a look at our documentation for more information. +# +CustomFields: +# Tasks: +# MyTaskCustomField: +# Label: My task custom field +# Description: This new task custom field can be used to ... +# Type: STRING +# Cases: +# MyCaseCustomField: +# Label: My case custom field +# Description: This new case custom field can be used to ... +# Type: STRING +# Starts: +# MyStartCustomField: +# Label: My start custom field +# Description: This new start custom field can be used to ... diff --git a/vertexai-google-demo/config/databases.yaml b/vertexai-google-demo/config/databases.yaml new file mode 100644 index 0000000..247b128 --- /dev/null +++ b/vertexai-google-demo/config/databases.yaml @@ -0,0 +1 @@ +Databases: diff --git a/vertexai-google-demo/config/overrides.any b/vertexai-google-demo/config/overrides.any new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/vertexai-google-demo/config/overrides.any @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/vertexai-google-demo/config/persistence.xml b/vertexai-google-demo/config/persistence.xml new file mode 100644 index 0000000..d6b96d7 --- /dev/null +++ b/vertexai-google-demo/config/persistence.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google-demo/config/rest-clients.yaml b/vertexai-google-demo/config/rest-clients.yaml new file mode 100644 index 0000000..8e85296 --- /dev/null +++ b/vertexai-google-demo/config/rest-clients.yaml @@ -0,0 +1 @@ +RestClients: diff --git a/vertexai-google-demo/config/roles.xml b/vertexai-google-demo/config/roles.xml new file mode 100644 index 0000000..59892fe --- /dev/null +++ b/vertexai-google-demo/config/roles.xml @@ -0,0 +1,4 @@ + + + Everybody + diff --git a/vertexai-google-demo/config/users.xml b/vertexai-google-demo/config/users.xml new file mode 100644 index 0000000..51a6906 --- /dev/null +++ b/vertexai-google-demo/config/users.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google-demo/config/variables.yaml b/vertexai-google-demo/config/variables.yaml new file mode 100644 index 0000000..64c8fa0 --- /dev/null +++ b/vertexai-google-demo/config/variables.yaml @@ -0,0 +1,9 @@ +# == Variables == +# +# You can define here your project Variables. +# If you want to define/override a Variable for a specific Environment, +# add an additional ‘variables.yaml’ file in a subdirectory in the ‘Config’ folder: +# '/Config/_/variables.yaml +# +Variables: +# myVariable: value diff --git a/vertexai-google-demo/config/webservice-clients.yaml b/vertexai-google-demo/config/webservice-clients.yaml new file mode 100644 index 0000000..060b018 --- /dev/null +++ b/vertexai-google-demo/config/webservice-clients.yaml @@ -0,0 +1 @@ +WebServiceClients: diff --git a/vertexai-google-demo/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass b/vertexai-google-demo/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass new file mode 100644 index 0000000..8956988 --- /dev/null +++ b/vertexai-google-demo/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass @@ -0,0 +1,2 @@ +Data #class +com.axonivy.connector.vertexai #namespace diff --git a/vertexai-google-demo/pom.xml b/vertexai-google-demo/pom.xml new file mode 100644 index 0000000..05c13ab --- /dev/null +++ b/vertexai-google-demo/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + com.axonivy.connector.vertexai + vertexai-google-demo + 10.0.19-SNAPSHOT + iar + + + com.axonivy.connector.vertexai + vertexai-google + ${project.version} + iar + + + + + + com.axonivy.ivy.ci + project-build-plugin + 10.0.14 + true + + + + diff --git a/vertexai-google-demo/processes/vertexAi.p.json b/vertexai-google-demo/processes/vertexAi.p.json new file mode 100644 index 0000000..13451c8 --- /dev/null +++ b/vertexai-google-demo/processes/vertexAi.p.json @@ -0,0 +1,41 @@ +{ + "format" : "10.0.0", + "id" : "18FBD17FA8E55D35", + "config" : { + "data" : "com.axonivy.connector.vertexai.Data" + }, + "elements" : [ { + "id" : "f0", + "type" : "RequestStart", + "name" : "chatWithAi.ivp", + "config" : { + "callSignature" : "chatWithAi", + "outLink" : "chatWithAi.ivp", + "case" : { } + }, + "visual" : { + "at" : { "x" : 136, "y" : 64 }, + "icon" : "res:/webContent/icons/logo.png?small" + }, + "connect" : { "id" : "f4", "to" : "f3" } + }, { + "id" : "f1", + "type" : "TaskEnd", + "visual" : { + "at" : { "x" : 400, "y" : 64 } + } + }, { + "id" : "f3", + "type" : "DialogCall", + "name" : "chatWithAi", + "config" : { + "dialogId" : "com.axonivy.connector.vertexai.chatWithAi", + "startMethod" : "start()" + }, + "visual" : { + "at" : { "x" : 264, "y" : 64 }, + "icon" : "res:/webContent/icons/logo.png" + }, + "connect" : { "id" : "f2", "to" : "f1" } + } ] +} \ No newline at end of file diff --git a/vertexai-google-demo/src/com/axonivy/connector/vertexai/managedBean/GeminiDataBean.java b/vertexai-google-demo/src/com/axonivy/connector/vertexai/managedBean/GeminiDataBean.java new file mode 100644 index 0000000..1e3e6ed --- /dev/null +++ b/vertexai-google-demo/src/com/axonivy/connector/vertexai/managedBean/GeminiDataBean.java @@ -0,0 +1,157 @@ +package com.axonivy.connector.vertexai.managedBean; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import com.axonivy.connector.vertexai.entities.*; +import com.axonivy.connector.vertexai.enums.Model; +import com.axonivy.connector.vertexai.enums.Role; +import com.axonivy.connector.vertexai.service.GeminiDataRequestService; + +@ManagedBean +@ViewScoped +public class GeminiDataBean { + private String inputtedMessage; + private Model model; + private List conversations; + private GeminiDataRequestService geminiDataRequestService = new GeminiDataRequestService(); + + private static final String CODE_RESPONSE_PATTERN = "```(.*?)```"; + private static final String PRE_TAG_PATTERN = "(.*?)"; + private static final String EMOJI_PATTERN = "[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]"; + private static final Set PREFIXES = Set.of("html", "xml", "xhtml"); + private static String PRE_TAG_MAPPING = "
 %s 
"; + + @PostConstruct + public void init() { + conversations = new ArrayList<>(); + geminiDataRequestService.cleanData(); + } + + public void onSendRequest() throws Exception { + conversations = geminiDataRequestService.sendRequestToGemini(inputtedMessage, model); + addCodesToPreTagIfPresent(conversations); + inputtedMessage = StringUtils.EMPTY; + } + + public void addCodesToPreTagIfPresent(List conversations) { + Pattern pattern = Pattern.compile(CODE_RESPONSE_PATTERN, Pattern.DOTALL); + conversations.stream().filter(conversation -> BooleanUtils.isNotTrue(conversation.getIsEntityConverted())) + .forEach(conversation -> { + if (Role.MODEL.getName().equals(conversation.getRole())) { + String result = conversation.getText(); + Matcher matcher = pattern.matcher(conversation.getText()); + List matchedStrings = new ArrayList<>(); + while (matcher.find()) { + matchedStrings.add(matcher.group(1).trim()); + } + for (String matchedString : matchedStrings) { + String convertedString = mapHtmlCodeIfNeeded(matchedString); + String codeResponse = String.format(PRE_TAG_MAPPING, convertedString); + result = conversation.getText().replace(matchedString, codeResponse).replaceAll("```", + StringUtils.EMPTY); + + } + conversation.setText(escapeExceptPreAndEmoji(result)); + conversation.setIsEntityConverted(true); + } + }); + } + + private String mapHtmlCodeIfNeeded(String htmlText) { + String convertedString = htmlText; + for (String prefix : PREFIXES) { + if (htmlText.startsWith(prefix)) { + convertedString = StringEscapeUtils.escapeHtml(htmlText); + break; + } + } + return convertedString; + } + + private String escapeExceptPreAndEmoji(String htmlText) { + Pattern preTagPattern = Pattern.compile(PRE_TAG_PATTERN, Pattern.DOTALL); + Matcher matcher = preTagPattern.matcher(htmlText); + StringBuilder result = new StringBuilder(); + int lastEnd = 0; + while (matcher.find()) { + // Append and escape the text before the current
 block
+			String beforePre = htmlText.substring(lastEnd, matcher.start());
+			result.append(escapeExceptEmoji(beforePre));
+			// Append the current 
 block without escaping
+			result.append(matcher.group(1));
+			lastEnd = matcher.end();
+		}
+		// Append and escape any remaining text after the last 
 block
+		String afterLastPre = htmlText.substring(lastEnd);
+		result.append(escapeExceptEmoji(afterLastPre));
+
+		return result.toString();
+	}
+
+	private String escapeExceptEmoji(String text) {
+		Pattern emojiPattern = Pattern.compile(EMOJI_PATTERN, Pattern.DOTALL);
+		Matcher emojiMatcher = emojiPattern.matcher(text);
+		StringBuilder escapedText = new StringBuilder();
+		int lastEnd = 0;
+
+		while (emojiMatcher.find()) {
+			// Escape the text before the current emoji
+			String beforeEmoji = text.substring(lastEnd, emojiMatcher.start());
+			String escapeValue = StringEscapeUtils.escapeHtml(beforeEmoji);
+			escapedText.append(escapeValue);
+			// Append the current emoji without escaping
+			escapedText.append(emojiMatcher.group());
+			lastEnd = emojiMatcher.end();
+		}
+
+		// Escape any remaining text after the last emoji
+		String afterLastEmoji = text.substring(lastEnd);
+		String escapeValue = StringEscapeUtils.escapeHtml(afterLastEmoji);
+		escapedText.append(escapeValue);
+
+		return escapedText.toString();
+	}
+
+	public void onCleanText() {
+		init();
+	}
+
+	public Model[] onSelectModel() {
+		return Model.values();
+	}
+
+	public String getInputtedMessage() {
+		return inputtedMessage;
+	}
+
+	public void setInputtedMessage(String inputtedMessage) {
+		this.inputtedMessage = inputtedMessage;
+	}
+
+	public Model getModel() {
+		return model;
+	}
+
+	public void setModel(Model model) {
+		this.model = model;
+	}
+
+	public List getConversations() {
+		return conversations;
+	}
+
+	public void setConversations(List conversations) {
+		this.conversations = conversations;
+	}
+}
diff --git a/vertexai-google-demo/src/com/axonivy/connector/vertexai/validators/CommonValidator.java b/vertexai-google-demo/src/com/axonivy/connector/vertexai/validators/CommonValidator.java
new file mode 100644
index 0000000..65d55f8
--- /dev/null
+++ b/vertexai-google-demo/src/com/axonivy/connector/vertexai/validators/CommonValidator.java
@@ -0,0 +1,43 @@
+package com.axonivy.connector.vertexai.validators;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.FacesValidator;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.jsoup.Jsoup;
+import org.jsoup.safety.Safelist;
+
+@FacesValidator(value = "commonValidator")
+public class CommonValidator implements Validator {
+	private static final String NON_BREAKING_WHITE_SPACE_AND_ZERO_WIDTH_SPACE_PATTERN = "(?
+
+    
+        viewTechnology
+        JSF
+    
+
diff --git a/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAi.xhtml b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAi.xhtml
new file mode 100644
index 0000000..962d2fd
--- /dev/null
+++ b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAi.xhtml
@@ -0,0 +1,100 @@
+
+
+
+	
+		
+		ChatWithAi
+		
+			
+			
+				
+					
+ + + + +
+
+ + + + + +
+ +
+ + + +
+ +
+
+
+ + +
+
+ + + + +
+ +
+ + +
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiData.ivyClass b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiData.ivyClass new file mode 100644 index 0000000..4c00719 --- /dev/null +++ b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiData.ivyClass @@ -0,0 +1,2 @@ +chatWithAiData #class +com.axonivy.connector.vertexai.chatWithAi #namespace diff --git a/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiProcess.p.json b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiProcess.p.json new file mode 100644 index 0000000..7170d08 --- /dev/null +++ b/vertexai-google-demo/src_hd/com/axonivy/connector/vertexai/chatWithAi/chatWithAiProcess.p.json @@ -0,0 +1,44 @@ +{ + "format" : "10.0.0", + "id" : "18FBD13F8FD6EB9F", + "kind" : "HTML_DIALOG", + "config" : { + "data" : "com.axonivy.connector.vertexai.chatWithAi.chatWithAiData" + }, + "elements" : [ { + "id" : "f0", + "type" : "HtmlDialogStart", + "name" : "start()", + "config" : { + "callSignature" : "start", + "guid" : "18FBD13F904A0877" + }, + "visual" : { + "at" : { "x" : 96, "y" : 64 } + }, + "connect" : { "id" : "f2", "to" : "f1" } + }, { + "id" : "f1", + "type" : "HtmlDialogEnd", + "visual" : { + "at" : { "x" : 224, "y" : 64 } + } + }, { + "id" : "f3", + "type" : "HtmlDialogEventStart", + "name" : "close", + "config" : { + "guid" : "18FBD13F9363E758" + }, + "visual" : { + "at" : { "x" : 96, "y" : 160 } + }, + "connect" : { "id" : "f5", "to" : "f4" } + }, { + "id" : "f4", + "type" : "HtmlDialogExit", + "visual" : { + "at" : { "x" : 224, "y" : 160 } + } + } ] +} \ No newline at end of file diff --git a/vertexai-google-demo/webContent/icons/logo.png b/vertexai-google-demo/webContent/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0057108f61a256914ca1c8ecb0f27ab06d80b5d9 GIT binary patch literal 18729 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 HunzfOH+T|{ literal 0 HcmV?d00001 diff --git a/vertexai-google-demo/webContent/layouts/basic-10.xhtml b/vertexai-google-demo/webContent/layouts/basic-10.xhtml new file mode 100644 index 0000000..7f2dffa --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/basic-10.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + <ui:insert name="title">Ivy Html Dialog</ui:insert> + + + + + + + + + + + + + +
+ + default content + + + +
+
+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/vertexai-google-demo/webContent/layouts/frame-10-full-width.xhtml b/vertexai-google-demo/webContent/layouts/frame-10-full-width.xhtml new file mode 100644 index 0000000..6e2cbbe --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/frame-10-full-width.xhtml @@ -0,0 +1,61 @@ + + + + + + + + + + <ui:insert name="title">Ivy Html Dialog</ui:insert> + + + + + + + + + +
+ + default content + +
+ + + + + + + +
+ \ No newline at end of file diff --git a/vertexai-google-demo/webContent/layouts/includes/exception-details.xhtml b/vertexai-google-demo/webContent/layouts/includes/exception-details.xhtml new file mode 100644 index 0000000..a4979dc --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/includes/exception-details.xhtml @@ -0,0 +1,109 @@ + + + + + + +

+ +

+ + +

Error id

+

#{errorPage.exceptionId}

+

Error Timestamp

+

#{errorPage.createdAt}

+
+ + + + +

Attributes

+
+ + + + + + + + + + + + + + + +
NameValue
+
+
+

Thrown by

+

Process: + +
Element: + +

+
+ + +

Process call stack

+ +
#{caller.callerElement}
+
+
+ +

Technical cause

+
#{causedBy.class.simpleName}: #{causedBy.message.trim()}
+
+
+ +

Request Uri

+

#{errorPage.getRequestUri()}

+
+

Servlet

+

#{errorPage.getServletName()}

+
+ +

Application

+

#{errorPage.applicationName}

+
+ + +

Thread local values

+
+ + + + + + + + + + + + + + + +
KeyValue
+
+
+
+ +

Stack-Trace

+
#{errorPage.getStackTrace()}
+
+ diff --git a/vertexai-google-demo/webContent/layouts/includes/exception.xhtml b/vertexai-google-demo/webContent/layouts/includes/exception.xhtml new file mode 100644 index 0000000..2303e7c --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/includes/exception.xhtml @@ -0,0 +1,47 @@ + + + + + + + + + +
+
+ + +
+ + + + + + + + + +
+ + \ No newline at end of file diff --git a/vertexai-google-demo/webContent/layouts/includes/footer.xhtml b/vertexai-google-demo/webContent/layouts/includes/footer.xhtml new file mode 100644 index 0000000..3eb052b --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/includes/footer.xhtml @@ -0,0 +1,18 @@ + + + +
+ + #{ivyAdvisor.applicationName} + + +
+
+ + \ No newline at end of file diff --git a/vertexai-google-demo/webContent/layouts/includes/progress-loader.xhtml b/vertexai-google-demo/webContent/layouts/includes/progress-loader.xhtml new file mode 100644 index 0000000..0d68a75 --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/includes/progress-loader.xhtml @@ -0,0 +1,15 @@ + + + + +
+
+
Loading...
+
+
+ + + +
+
\ No newline at end of file diff --git a/vertexai-google-demo/webContent/layouts/styles/chatwithai.css b/vertexai-google-demo/webContent/layouts/styles/chatwithai.css new file mode 100644 index 0000000..d80b821 --- /dev/null +++ b/vertexai-google-demo/webContent/layouts/styles/chatwithai.css @@ -0,0 +1,58 @@ +#article-content { + width: 100%; /* Set the desired width */ + overflow-x: auto; /* Enable horizontal scrolling if needed */ + overflow-y: auto; /* Enable vertical scrolling if needed */ + max-height: 300px; /* Set the maximum height for the div */ +} + +#editor { + width: 100%; +} + +.user-label { + font-weight: bold; + background-color: #39563e; + color: white; + font-family: 'Helvetica Neue', sans-serif; + padding: 10px 20px; + border-radius: 20px; +} + +.model-label { + font-weight: bold; + background-color: #202f58; + color: white; + font-family: 'Helvetica Neue', sans-serif; + padding: 10px 20px; + border-radius: 20px; +} + +.output-text { + background-color: var(--surface-a); + white-space: pre-line; + display: block; + padding: 10px 20px; +} + +.form-container { + display: flex; + flex-direction: column; + height: 100vh; /* Ensure it takes the full height of the viewport */ +} + +.ui-panelgrid-blank { + flex: 1; /* Make the panel grid take available space */ + overflow-y: auto; /* Add scroll if content overflows */ +} + +.form-bottom { + display: flex; + flex-direction: column; + margin-top: auto; /* Push this section to the bottom */ +} + +.command-btns { + display: flex; + justify-content: space-between; + margin-top: 10px; /* Add some spacing between the editor and buttons */ +} \ No newline at end of file diff --git a/vertexai-google-product/README.md b/vertexai-google-product/README.md new file mode 100644 index 0000000..85fa64b --- /dev/null +++ b/vertexai-google-product/README.md @@ -0,0 +1,80 @@ +# Vertex AI Google + +- Gemini 1.5 Pro is a foundation model that performs well at a variety of multimodal tasks such as visual understanding, classification, summarization, and creating content from image. It's adept at processing visual and text inputs such as photographs and screenshots. +- Our app helps user to chat directly with Gemini 1.5 and VertexAI Gemini 1.5 Pro by sending text and images. It seamlessly allows to toggle between 2 applications together. + +## Demo + +### Submit with model VertexAI-Gemini + +![](images/chat-with-vertexAi.jpg) + +### Submit with model Gemini + +![](images/chat-with-gemini.jpg) + +### Switch between the two models using a dropdown menu + +![](images/select-model-to-chat.jpg) + +## Setup + +### Gemini + +#### Go to Gemini: [Gemini Online](https://aistudio.google.com/app/apikey) and create an API-key + +![](images/create-new-API-key-for-gemini.jpg) + +#### Get the API key + +![](images/generated-gemini-key.jpg) + +### VertexAI + +#### Log in to [Vertex Online](https://console.cloud.google.com/) with account + +#### Select Dashboard -> Create a new project + +![](images/create-new-project-in-vertexAi.jpg) + +#### Copy "Project ID" from project to push to variables file + +#### From Dashboard, scroll down to "Getting Started" and select "Explore and enable APIs" + +![](images/select-and-enable-apis.jpg) + +#### Select "ENABLE APIS AND SERVICES" + +![](images/select-enable-apis-and-services.jpg) + +#### Search "vertex ai api" and enable it (Google Cloud will request billing account) in [Model Garden Gemini-1.5 pro](https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemini-1.5-pro-001) + +#### Go back to the main page of Google cloud and select **_"IAM & Admin"_** + +#### Select **_"IAM & Admin"_** -> **_"Service Accounts"_** -> **_"Create Service Account"_** + +![](images/go-to-setup-IAM-Admin.jpg) + +#### Create an account and grant permission/role for this account + +#### Select the account that just created and select "Key" and choose "ADD key" + +![](images/get-Key.jpg) + +#### "ADD Key" -> "Create new Key" -> "Json" -> Google Cloud automatically download a credential json file. + +#### Keep this file and put the path of the file to `Variables.vertexai-gemini.keyFilePath` + +#### Select the modelName from: [Vertex AI Gemini Model name](https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemini-1.5-pro-001) + +#### Select the Location from: [Vertex AI Location/Region](https://cloud.google.com/compute/docs/regions-zones) + +Add the following `Variables` to your `variables.yaml`: + +- `Variables.vertexai-gemini.projectId` +- `Variables.vertexai-gemini.location` +- `Variables.vertexai-gemini.modelName` +- `Variables.vertexai-gemini.keyFilePath` +- `Variables.gemini.apiKey` + +and replace the values with your given setup. diff --git a/vertexai-google-product/images/chat-with-gemini.jpg b/vertexai-google-product/images/chat-with-gemini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..942555d24e2f92156f78c4ab32ecc95c7f86e700 GIT binary patch literal 10200 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 literal 0 HcmV?d00001 diff --git a/vertexai-google-product/images/chat-with-vertexAi.jpg b/vertexai-google-product/images/chat-with-vertexAi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfe3bbc6aa76f98f79a731f4e802571f8ea016e3 GIT binary patch literal 33832 zcmdSAd03L^+c4Zr^JGn>GdV40>NL4bnVOoCdu5}MTWM*zU`c92){e~Gz$ z{CD3cYkt4o+SMP;JTMB~^Kh>r>Q>6h&SOJI$6PKZS6vvhwZ8l6Z|^z3U(^pe98mn> z_;H16w=W&qlluK1Cl(`O@y8?0_j?`K(V(9d^;3iBw}IMo6+3H;s0nF?^lS(Y*=;?u zU?tkTWHV?6>6yuntgy0QjC7H{!ifjjHS$%;_i`4au=P|v+O}Q(_%r$O+Gd2pp&3oyOMK#u!U)wbiZZ1MDza zNGV|>ZHj=J;ro!djc5)1?DCi8MFdJ~fmDvM&HDtVX^ctYh*~Dc0J3LnVnQV{xD+4*3~WZ5}9?{?~|60!{v4BVP~Z4y0F44Ju?ko0Qg1x$&jTQ*LY+ZnI5e zbEc!wMmE!luOc@jOcTkC8$b~riCTmI&E%4UahsoA4EP#%JSgj=mZn)|-TvgZq>eyT zOMJzUTR?~Cm8(lb%jzS;+dPYaKK9PJz&B7`s7QKOOJvqzS?3>>5w%C@U$-58z%V3xO>2 zml;1ymt<+U``3<|wCxt!>;#8ly7WT*Vhv^7sS1sCn=B2Lap)ws0#{iW&e_o*0D!^>#$ zbS8N~2Q>9{;H9DT(5#R&Op~xAU9I0_qJH2G9?y`b_HwzY@{2Y{UxW z`1NNtYc~3u+@E(9{Q3_w8%i{Bni2Dxr55KfbZfP%Jd?J5U`E3GOw2(k@cOtG+O!RV zO}Qq-Z|uT4PdbkBlu4sNP^gD+e}XGFSHCZ; zENRjA<)fA!N}qHkNJ$w@8^;-qM|YLAJ<)UpeX7lwEV|I`py<#ygrN=uIyL;3srgnD z)-`9Zg)l^1ZMz*_3uLK%GjZP()WXdxN!$zstzYfZ)?dx2JvX8J+J$lHd#z;8(hOz8 zQa9!^y6rG|81tS~k$n-WjrdI~4w_(k>$J`L8#d$LbY)w>Sq$M=TeJUf{}B7P|6QX| zSmq)?abskxsV#H1sJ*Ms`+f2IT4~&)ihm4VgB*b*^FrA>?r6I3U6upwDy{Z^HePGB z{57kDSAb-}u7dxk4O9Vw+^u^vHq&=!LAc6Iem(z~#{EF`N=3<*nKza%eDKzmX}lTW zku~{UF2Ps+`%j1H{Xo`1((I#=?bc(92j!qKjL#n!Q3-k&7pAmU7m8lWlG*c6TSMp% zU;D>Jgz5b!m+|vAqqr@5=QkPI=6FwY%dBqGKL6kIIRF0qvs_R#HeE>J>n7wm)n}V) z1XQzti<*I5M@iAEv9Hl8Nh$V}sno4yZc}I8&_2S?qu8D4xsz?Ml9hc$4pi7b zSl87}+AKt9?eW^%AXdT_(Z)zto*13Y7j;>`cKwAur6vb`0LRv7^64AJjWTj98i|Ox z@eI2;XXA!L3L?ip33{HneSHgL`M};mfEwkm zWE4sjwGill^)}zf{ADy&!o`o^HeaIaHWElpCpLH6U_p}m^0%|c(YuXoV63f=!?5al zZOi)#IY%xEPz%^LfZV~jlVs~tI_NipkLV8h*)=y_?Q4_#F*yXTS#v8hDlYNl(@zftXw{@Ov@3h;)E zv_X#PPQO!p?-Vk>ea^hZNwC(cyR{tk=5O26`Q?K1&^&r|v!ow8ku%w~@j0M0lA)Q7 zKEFl8Zxl;M@7bc>HfMe>#&QWy9(8%FpWoS$XRrkvA=oZf7gK+ zKUlei73-K@Fo|5?PK!^wOmn)Fw_xg@3Uv?@%H&&V7hI;tyS~YfdixDc#6+L6)xIrf zzinnL1Y>#BWsX9|Exd}OF)*F0n3ZE zIo3Qs=tdqvAOaCG9(O8P!cen95}P)89a9xwg&BEUp+^kP=Gm!AfB`Gqw;vL#!rhYP z=eS4Cf`XBIEo0L;5(c7?s_9anqG`}F@dv1x;HwYQkFb(c_|N6=dSHR(59`WhLT=A9 z4`Dy?*=)<}nO1J9ORDC2U-ASOBujFMA3>a}-a4!b<(_y1JVm*)Ip#M;E>ftB>QcZfZ$h}IE#6^XAubKcDQ zTO7)p_RFvY>TgWGF0@uN!fvEuTCz`1MK?B>e%Fzle(7z??`_6H@NZ9*e;u?xk;TXq zAT6Tz+;Dtx_0t=Q@(fe!@2akI*eOY7Wr7w`<04}|R!C3FJ{gCU?|s{u_8MS;>|Wa@ zdfM7sSk(%#1K! zs$*-yEY^?jq6K9%g=2?*ebA7SHJMW@)cG^-8`J-Es~_`i!tDDs-(2JabL$?z^0(bnqFKI`)89Eu0dnpO; zdcyZOnawmfZ@f;GVkd|1{UTq|hehu&jE<|IM%?@1c}NjN;NYC*D2O_LyAn@|`b{U< zsX-QpP~Vpa#~f^F(a+iq%#*e18mgSYO-+{JhjoId;v9x3K+qwF%Zy%*KwJ*JfZ799 z349)0V0xu{v3~KNl%XVI9LTbIa>4)cz!sH1m>p{~Zr4dnc)O(+V@BVi;{SJE@n6aK z|E81p&nohN=JO}j&H~az85z1Ra7myF{N-*cD?MSM@tN;>6&qfAJHg0V1((9i`({2y z2=c(jTAU2?wH7S#qcTbzj&iaPvCH4mE=hztkmZ3A5-2XsO|R!%+Y)E*_k}u4FSdTe;?2tq>AFHQ@rPN@ zuS&&RusWsmXOqZv9a6IsO1-}t(D8m_#Ki#JiKr0kVt3z1-CB=Fe?lzoG(sEbZ;cvu zP>!F^G4Muw)=c;Puw?~83Nn_!HnbP8L1@DuuNcQVE@hkWpxm#=#ycXdrIGryaKJG6N_ ze~$R;fX$QLK&J6=kq#O&lRRFBYs9PqlS{M|Y2d5=2u1cbTlMYp%dQ z#xR8%2HP(8v~mYppy>}|Az_Hkn|{?jr`jwcshWr^b81HXS55w&CzGu>py1?I{Ho8C z%gWSE9jqf%t*>3jW3gWs7}X~_=lrkxcmqMQC#BM@t$^~ zqf-%9Qs4+r)8I(oC34m1SEBP8e4BdeLumaZBF_n(=jF1O+S>RrzbZz$b$9Ug^|PMY6V53m6Zo(HbXAk z_1JeA^Iit(IR}@oeo>##swzFSCaGmA`15XXxy|~9`teS^|D4$+U)B zc2=M8_7&~jwynF%Uk9;%S=YDYWdOYHQQvo8(0a)V&l83+wx{}<9{H@eiZ5nX-X1}I z|C7?Iq7d_q%;tf2Ht^U+p$_8Z-qC1P*h4R?FF8y9As%}}JNIbUSyF-G!}YP*F0!}5 zVoURz6Idl|kT>*5%>1zgB0s}2{${O$(2;H^tcZwxR+ZL%AzTJ62oJ4dhuTnwV#9xY zoq8nE3Rqw|qG0P9Ix|vpu6&|_CUlFWaSwLPh0mKQzL6i7>1n4nSP-vxo4`u+%;6h_dq3Dx9#J>~j#mBC$ z+R+GCR>RlbGEI`!P^p6Nkn$?V6f>c3NW2~+uyj>3N%LgSP`a8bX(o?_8L`>$&efDi zNx>W^uto@`F`Wk0Af;OL{@zBk!XX7VF=G=H+q((5EsT?K~=^(6ryKa)i>rYU)S zglqHJ4V2jDg)$yyaxnUndA+E(wo1b>?{0n!vzdc{lvc=V2;nHfF&v!4SudySw}P() zM#_EAn74N*=AfdgRA-y)+(kvSlpV)yE=Bq<-uXYe90)%oRD8y%^_lu|Td~onasJoi z3V~KMVaYz$89ifrHG36X>Am-=i7|(=s*;+==Hmhs)BFpT@Ly_UVl%6rZpR&GD;5f* zRY2Ce^iw5`nux+J#u?kbUB#0Ar~_eajz&&*`RXweZ%R z%ogC_QykrmL}ZoDcMi}=S#!etUHVgk!Z6XSV=TMACJ2k@R$RvJW(nmQO+li3pSL-Q;~` zA1KJ45AH`{Yoh!M&!H7Enm()yRs<$gs5V-dRvXY=_qZ)Q0D?~C5(222lFI}@f!s(x z^3Afg4begclS8_;HeS#nk5h*RG)A1A6?>e2OH@Ad_)y(#D|v4J{iuW`uRCWSlGkh( zO170~VR@g~3z0vO0h)*fJ-H|K`c|#^ugl&4--e}6cFVIfJ=|8cwFpO)Mj-lqZ69`Y z8E@j5apE|{W};G-C_Pk^KegV7%hKUNwwyjsUU@(K+_J6F;g#LD0?SBAeMXZY$nEQN ztA&t}chDfqW8Uoz0o3HtL5$1go)8OH+pb-5FQC#{UIk=5`lswmW`N;GfxZr{XKPmr*5a_x_(%OUhH3Z#$mD$$T z@~$!n@Z@$S`2ZEXuaOquh!Grd{VkhGZ(F!iur7J?v{xv8k5{u$A`mN#Mq_DH^zg&l z2oseqw#D+(L&Nu+86wIa`BdIXK{jp1*fjsCjAQwC=3Mgj8Jv5!%m31ehTB@&S`GOx zT%sdX@&=-S4=)8c3I=ov0SeP99sY*;M?VgAXsEQ5(6kGsZsH3FqX;3`p`KoMGGc$ES&|tTKY@Muev7B>gXQN z3Cn1@&b$0+XyCRTrBs~t8kYid!2q6@xbM?mug>dm-zS>4)488pAbFuiJYZD+Nasi8qD>pobqq0NJpg6jHZxJ*D1`2?2h|GHU?8- zO_xDk=%r2b=u+Q*PCE#4DGkGFA{dfVP5HL|T$UHVb!FEllT@)2TlJYUf&Ys-#{Zcl z?Y~mxt#nm>ywYVn6SunBF*W!orV}sM4p0HvhomI5SqnpuW4EHmCRw*&W0c;Ze2ss{ z#kXvAwVK1dx8BstNsYAmcs-`k$JZs)+M5-{{SpOb8HEmhG>NGThqwQ6t7pVNfuIE* zIYK}77;k@RjYo3GqXcI8Yw=L{GXx-KHJq%rA+NBLESQ#xvygJW=By@{0N?XpOmQ68o2M>`1d@-OO^kbCho=R;$~I@XQ|9Y_)LT z7|!O#p?a#5BCCJ}mYVFQ*m_I!(#esX{E7pYO}lgv($c26wp5HPLA}!IiGp*}@WNdy z>sXGE+F1V}?+Rss6mBzlonMIS$JfKU8snPl(uS;-Z+7$Ep&r7yjGd6BHQ1Phy7D5a znMs*uV48MEwIie6)?O5-f1a0Fj$7_7_%8jmmjkBB-WD^{6t>IHb@ik9N8QOUFr}{% zvr6>&RGQil*C{)+a;6FyRJd{lljKc88B8s+DVcOzuSI1oXM&|4&Wncu3ilW2JZ8@85@gUiD6I^17;c`@o#@OD>cZKi7)L_q(M>$ z?6lFU>E;marD-)hWWkeW)*?GUp@+*^8xmBd$FBXz#o}^IB00(woS!RqKCZ|+s5yu#8=5>+;t zW@jYBbis_%ke7_7q}wAP3D5fSd7@xrs5*VIiCF)cJG!iy7JnJXP71a()dr>5sDbF< z#{yP%l*I`}X~Ajub7HSgKYT&*xS;GI*oM9x!r_&4NlV3hC7f$tXh$Cjv859C)-vAF zC){X5@fDaO%kp`>Sj34-?HAs)ltouG9_%cLVmzyw7fVHc$0)MMCVq9NEsh$89()hl z_;je2m*`5j))A5%rWmAwsVTVCw3;N~n)CEA=xU?^J04sc&#?B5THj#wa=%m}dMbs| za!%2-;Yis-b+04zC1}p|k&E>e!rIk}GJFASG1O}sXmuBk`h7FewKA*hr^!uZ_ zxQhW(ao%;c-%SPtDZCr8t2_qCC4HRN&UAVr`5pR{>uOgy`2K#}8+`O2H&>;Qk#fKD zkJSFd>DQ{0xX=(ilAPV;zp~8vYVF>zx?8#WRKZ|Vl$8pO zl@wqZ-1Ih0RM3~z8xkU9Ei(EVhT`c_jjLaZrVYSG@%YYbi{om+C;j4~8|Jitf(Bnb z5P@5r8%P2%`+OC&1AIEUXS%#4e5Ukw=v=MRyqMWQ-jE)fV%FJ-T1bIsgQ=ajzPM;K z(;lGs9`VLC)kuw~i*gVbiARx|^-Kf}eg= zDtZ-KESq*!IF1K$r&Co+8gDh@S1zlP*W0ugB%ygePgauvE0pVv>qSe#sbxEZsR)}S zjkBX`g}2pIVh|H!}fgsiROdQ>;oPJ519(j4O5)RSuE2Vm` zcAc?)$?l8xpkJ@(rNkFsqrtwfUitJnhQ2(j~dd=J9U1io-M&;xTWc{hVEbz4=xmk z@zdtl;=xVoeaAzR)N=rOb5DS3;t*lp_^qTGJ2PfI&y5jIWM9G-jm(4IFO^MI zuX&Oy%S^8}UCMWj?g-u}lyp$^Jr^@BQyy)eqO9W?0mICSd`9i@teo&i!o!1B2j*dH z1s|Weo*ajG9<&wc%N_zq&s;(pR3eAXr(JOnn~3SC0rNc+^;l8$DG8wkR^zcOx?)p1 zmRao?vsrY9d#pW*aLlkIjtw3m=1V6&{ z9%O;4!)G<#a}*+f7VAMZ63#mK`lp&w;%_>7mMPzh5OQC%zJtIfKjfzP6@tfD>Bx=7 zaGDWeq%mOcipdP=FnJf#)XDprgoAu>&oup#;Jjti4EDGiwPf1-Exp1`HC;pb){GZr zlv;nCP{j$U0p(o%@S&F4s8b-+11 z4naNsOAmbT0Wv*fh$p^!(?o_UxMjU0T#}VSW4SMV4cJP4<@~G$g$}D@&^pnBT2NsF z^}KXZ@}kUQ7T1b^J*R;mnod`fHckBu&Ra4Oc9H+$QpXu-+nHd=%dU^crR=gN#;IW zQdA%+{dda8d*UL2Iel0?m??2&D7aYyd{oh>U+DLk95Ztj_9k>gVZwb-_4+(hmS&hz zR^y9vIO(7<4hifoLtK#1ex-=NB);qPkVUb7x^TyXe7r0oF1@J!KD>wRpb8s^eE>Zi ztr%T#wW+-hVg*%GAhO`>J)8{sB@%C5?1^q(Qa_ZTZCC+2VPvPqRzs^oj$F^U71D61 zoJX~my-YzIOSzpQ&71BfmPtHD;t8t0x?tw%@WmMd$J$K0ErT?FhPdV*?l_*~OED=w zNHSfn=fU6$ZhTb;vaMSl5}sR2IMe zcS;1Yl00f3j(X3Apal({N_0x@eH?+Gh+_G8<&0)=&eVfXnNDZSu>4F9SNHML->7or z?y%>|F1SQ8ykIPi1DL{at6+*S z$Z1&NJq5d~?e~qO+l?~Y0AV4=eEOAs5$))7w83vKUH3wmy?6>RDoF@(Q=cDoauq`W z4#CxyN8}Mu;&5|jZboi3>X->Ml+u+9exAO_zmD=2jx4C&X(%9x{9en0o~1)4lJgl} z`|N`t++QJ#(-Lp72P~{CiBs2Aj7WP@Fy{1n-aa>Qu6{84(UHE%Nir zY1L3h9b;80*FMD487c``P8qh^OgV%NWr2t&j-yMBIWEGY#aTYSGcC zv?2T=(LEJ!o7&NNExk>nu@U72BZ(9hVpEG9PjB|fqe^8T11o=g&fcFjS*cZ zSB{FbK*g28Jp+T{br{PxdK9|((zidYPxR7ngl6O2*vr*M!ntoIj?*M3Q>E9SZi7nj zZ;UK;<{A)bt5bH*<<8iJ9cuVI-8cr;*}dku{(2$FHXd1{Sd1#os^ABjP*MXi^@K;L z5W*dYbSi4+M2kM%Ai4q)XoZf4u2>q2-k?BHk$J6|Itaoqrp;gP{D-kEkkQdHW?F-zC%Nyv>HxREO1(7k?y*coU8BlUs8vVhGr7S4O_McZuBJ7}WL+g*N4_W999?8q1#^*a z_&I%*0N!+1)1^)3;@`c|eu(8896Ft2%;2VR z_zuKcnPl*-Q!@Rl^fuAsHOgiarJh9fp)4%^p*PqoF4fpw zp+`jF21?Yb`U7p@+!9d|Xgkp$(x(LHaJowe5q@ki@0i}};orsMeO6!E6VEcj053+4 zz(2y7b6nXuSIX1SwXdEdXZ%Cfi=W9jP9E(JqrBqI+sciRZMX_`?cZug8U0f$4?^2A zc!8(V1;}V_IJBh?>XPb4dy`hgU4CJnKHvehr(C6&AHm`a;veBz_V5Y^v%tMkKDL<$ zi!07oq!JZw!}zJGo_v($Tclg}PGn9t-U!}V<+I;m|4j7QVQS+S!#9TIu=9zeWl=BX z%mSk%wsuIo)C(aplv#{caa@XceH^lUaj9NP!Y@5BFRiE?%?G;H} z>)VHLsB*Y$U9$h0b>~s5#3soJA(+Oh7u`megDnrc0ivyFo&fss&V+WWUSF7Wa48DP z4XhxSC=&8XF#`hbx|(E9=vA`MLYK5?+8t}=b8GdhPiXhHgHG2j#P*4_Syk!1-W83lzU{O1Z;Xx= z^U@?IQ-bg@9D4A`+paSTc$}^eWo3U9WbjS+9ejm;?Y=};5Xm~$0G0x-J3u1|GjN0I zu7(V_dgEpJVeaU}VCo>T@<1)j*7P;ut~hnj^s0wV=;N^F;Fq|yo7_sOc=|y#09Oon zmr%jYPI^VdSAbsuq7Y$!GkR{S<10uBvbdhQ2US-&5PxRwxdxeD^bI}d>(5fqR zkL3_ZkfJv)7J9^MPy68q^hjnXn?X4v#?$?ixJ3mjaV{w|=gK_EYqE2O)ly}@5e-`7Om-UXhLVas z3+CThRi1#+Le4EIF+!lbtdgu*=9QcwX2i#e2`rOG8S!E(1TRM99H@Su{z>>Hh8*KC zT&t*8yV~%Isy!qmr99yg4s5_Z7khas0~${~rT}f(UXF}9yT~f= z3a#c;WVvBGJ1ej=4EF<~0978H7GEYkf!6}EPIZ4gLprKmlzx5Y2I=7W#_=AVxQ#?p zFR$}GFVjU7Z;O~zG!i{aDbKn7#(H%m(3Qk)EDBMJ2^%o}l;dLa>~(50)|Tz7i)M<7 z%oX>SyeYqbLf5ge*_U(=l76G~HX@RaXlx6)(_ET8){u@0m?< z7k(?f2WxUet2d-^p4ql}3wo1zTuIa#hp3!lV zU|9sW?Bm@;*C6?=UKIEFVLD{bptv3hQRNIFduFfG@XpY|DkWNIS$e?fnbQPXKpr6{ zNtNo&BH|jO?ZJG%tf2-YMHrd7lw*aV>O*Nrs49d7^-bX*l& zDe0sW*OGr?0&W@LYwf@h(>dHwD+A93+r~Ip_K=Q$MQ3g)f4Iwg$;Tp$*3vsInjW0k62)Z|d1jKjo_mzWXNSrNgU+UD?vppNWG^m7xy zrBcyqLAC3I+=v|2QEmZ6_r8l0)ZjHJDgC_4tt7m++F`Yw{)O z;LpoLlFQ+uRErXs`WI=m$gY@9(*C16*0cWRyUJ2Wu1=a4L7BN%dS)>jiJNwxX8PTv z7cPQ{DCaE;c`v6d7+eR6tLPY7=JFW-(U9Iuj{T!&{hp+DgQs@BS~ZiZ8#V*0=j;;p8Q%%>&50fq?k{B%Ns&$?4Y>%LD$%`R`uiC$wg@>G znqM*itg7L(PZ1d1bX^m&n{}eS#4bIs#{d*A@)xnZ7np&;`f*U(oN|P!WdMLQR~pUU zdyRl*TgPJWH?UYH9DR6g!OvROTHOKGg>f>J^%T+aNRl@W`X6z6r`3|W%n`C1H_C`J zRSr=ffh_P7r$)H)EwVBt;#1x-rtNOCWr{`^(j5s|Q1(7C+z8rt|7BO;#~nb&P&fWk znEtsB#^0-9nyd=i)1zt@Hs7nu0;frSW@1%!%kuXm%fqVQ#NC3wQBbCvda8dmzJCC0^ni z>GST( zgqdukPi=Pf`}gT2fQ$m=-D`UJ8{}`-mb6cGZD!CnKLIN zOY5zWqm%4E&O>lem$zEIX=vwX9v|*80ojV5t|ZG%wY8=@ow;~&aL)K ztz%p|%cY~NW8p)s+KBhV|30n?!HC=eppi9!*sZ?)wsMgTHVNV~*>y&J=fZcF8IE+Q zSNgG(F4c~omFx}dxOGv&i9D`(0eB`hqmnK}ssE*9C~6di_pM`_Z;5}8Hn1#jtQaLO zGIv|u3@RJ)9w9ZMsXB;~fko-A)e)Z&cKnxQs{wPLSyUYqLx_#9PwfNXOlYW&P^xOv# z)R>|*kcw?8H3UjE_Ab+vE+r==XmBvxI73frE6FtO=Ih#s%_^h?{i=&^r1XJ>`LZ zlHpqx`3TzPdvDU5Wo-L2+Emp3L;^mQ-pkN@tEASPnw^bE%FecWJsVNwIGVI5jK*f- z9l@s*elhWg$Hr7uR7FlSy-YpEBx*jc*mw50-$QNlbF(!}n_K>94 zI3_;L2xMhPR1eT!&mHD$daSweU!F=EEO^MBAXDcwaYWRZOlF~XAUxF;YpxxhfOiUX z+HXZaPwA~JMJi_>8Zf(eDAR1Fo`TalP|u3B_D|qSx)%bgv-Zo|%QF}&JwJ5Et;#R1 z`PPHPZ8#iVH&fLnYdY*B5QK{5I=#*0hX36E*E7}E&{*M)pFV5M@eeEi)oDci8-FlQK1B{1g8QEpj6GB zZ^;K-u4xC0O4G*G%Z6I4i6$!Lx7Mo%u0h;VR;z1#`1bW6zXK%ws`rNOq6IZ^rkMzw z4lac}qrGlv9nlT;5e{{FPl)37+Am#&4B|)2Io2fKeBqPq%NJ%DB;TZZJ$_q+pfyYZnsk|lYU3`olrBqY%Qg9Ei`gHmL zhzTfl%yUuqI5=Ze?Cz3PWmq1WCN*1HsGtEC^^)Q8CaLEuK@xQw+x^Hj)jnT6U3yH) z<|prU1JDzN`i2_=drM)z{tWw}dah5j3R8b=)mU!_crt(ofal6;N?4PhxF}4CDS|Dl zD5sK9#7DrG{>=J;db0^zLQMuWB-CA5$*U4$G@54*IhNu^bf^D{hBEdlR=NyQOS+Jd zo+FH7R|u6x1`ngeE4kBbxDMr0MjU4I|?@vmU9|q<4 z+OW&nfGgQtc|#!NDlK3Tdt0!`O*V*3*Mrwu%4##tJIsY&`Os%^gG`Uh?F$U z02iw*6I+n)0^mN4+;MI%Xee$+UVXeFDD{t4BdP;o)VRkiCZBmmh)N#0jsv?L>CdVp z%$M+V=N$0IpG&VvE*qW(C%fjL(h2y>@wQz0A6>pS*bdKGQdC}a7n2UnSGKZljG;SP z+!%$JJP_lpoo^+K_e2mkjxREXGOeaNsht)XwI1QBryy)A9l_cpw>Pf#P)*ff?REr` zn6w>6Y(UTQAtmPQU|w_LQU~=f^owDJ!_WbbBtH(1jcdts&aKLiuoWaU3u8 z`9f>1tqmGC!%m?Y@8Nh;DYC^5%=Z2D_;Y++{Kd`m4Qd~oq^vG!1F$C2lqq@Bul_n|Mpel1>MMFp!3*oDz34m3B~~HTa`+f$v^r6>RsAR z*#GeF*5iVMg+v<8A6#(FXu1&7#1wH`scEegQcE1Z@`O85+F;$t8OGh}?Sj1nP`Szs zJ*mNE;L{5I&@xInPQmkz$@?cOur^sAFM1V zOIY=T`y%xhg-%6)w;`SGcBbwuN9o?57@q9xw@r)%*MRKFRLNZoGM1@s`)hbPCnLKCZlXl#Wu(#Uvxes*2SNuY zZi_C`a1ftmj$|O*XAoz{EnNZc)9!A-4Ll(58Hv@czY-5nUd%T{E(`!ZhK8(mc`Rxr zKZ!dQsl4-=9SO!Y9!fH@j=_a=+KRtUpMGwCnE#faK&178HSk3pKk#JAKJ^!;FXQH7 zS0JUdfI53uw!gD1?rHQ?k8rv0dTT(PcA`nAKkJ@hUfeZL2LtET8~fW!n_Upj%tJWQ zBvh=&t)!#NG?2Iy8X0YuXL5wn-|bI)@Twdv15KAt-{yP3ke`HoXb(DFtjepB+gHi0 zlS!hp8syr8eq<9=kP|aoFp^|gI|VkI84j0-=%&tdku`wRd~q)_s2SBiLNvU7OYKt} z*%g|Hcc+D8tY7oYQCAMatN_)~0WNQ9Z~MYUgqkaKw`maQ5fa}pU2sjfyWg2cyA{vA zc!c#dF!%`iPFc$h@iGf5fEZy{52~%Izj^Hx*s0qGg6dZM!3EU#fERHyRa_4og6mIt zMI#L4Z37lGCJT1#Ry7L(6tI4Zh|DxvjBEI=9Uj>{r}}HnH4tQRHkE1GIIswNSD{dy z;)6!loT@cKNefTuX^)SG^{bmsH6*|$rboXn?Qq0#6~^b!mA7Zsav`BAK4dSttFw(| zFtMrDHQ=4~1D>1u>G|)b@bR(fYf7qfC0dC01`UGx=N4HT?+m7do+&UtWyjREo7!5 z>L7TN^uA|2UDt5hGV_i@PdxV^E>?o~*}Zt*>~;OBob%eJB89xxA=D6O9Sp+t_C zUn8qaM3ulV^S~oiWXkID*Pm3yH>^sGjcLpk)tSo^%=wP%lPsaQmwRiK_|R>0#OnEE z5zfmicoW{P{2R>>Xg~tlGR(eU7S4fIlLgNG1*(hvwFwk@(WPZjVSI0a$wA zqfyRpl-@_!zq$MTSomYO^`3#tt9GJZUQb^!5>!h3nSny}x3l!xcCV1;u!emB`3{E@ zLpv5K#N|J8*N0FM7KWk0on?};&s}9sRj%4ije)UK50&F)XU6xRO1^?~aZhWF z`=b$?M0i(^I(1Q?e|??#qvD&osA;)XD$Y|mVR1yl*XSm z-{mS)0A|Smp^oGeZN{6wk%OqJSScY{Y?xPjN#m#@EEH55S7pe3iLj zyO42ayK$|Mb>;}x)nk(U`xUS%&&9+PIa)dTqT)-8gFtaXeyuHRaC%MCMWbn6-oYO# z9oJDynLp<+zgG#vI%=Tt;i{R<%ip8cPZb#11(DU~`(B>GSDRSF53w#Ql~jf1C9Ygy zK&6=x&U+lCQ9JeFQC@bbNvRnUrBy{L;P0xZ9!U@jm(eV%n*;&Zkon%oesp@gJ`Vxs zlr>oS$qOn=Cc?&{U&^d^ET5R#KHOjG$cXf}X%`MM=Iig199>_M(Bi{U)~6aLq87Lj!aDa+%gAtcx7g${wxgK8%z8pPsv7UEMYQYP1c#H6P<2>;+7ToU@?^C5?Zqv*%=RgY}D?s%be- zVM$B0v~`dV0DG}w;svD%!ZV$I0_c(VBxE!-FPT*RU+uklP*dr;@2}h5((YDhM?fYA z1Qh{6Axt4E-6DcugEB*uh$sQVV3)d;*?x}O?o^$J0zpDLbl2w(po@c%9TJQ6IpU*c*mP1X7D1%n*-ZkHL z+01TLv+3)dXcktA9QDH4oov4I3y$5|J-R;8LJ!`v+*HaQD{760oeCO1oc|ahmmU>e z7t`+Z;ij8?iRAB&QZbaKG<7%~K=*fXhU*QJ%r_2lH=5kdJ39BFqY(-F9#$=kf>ZZ7 zn-<|VM;_{VC@HTPN<}$Ox(eR+f3&;z%jMG1QkDF$cZoKVpd(%>mpn?NCrLF5Np=|1 z^{Wy;4>i7gw^`5gMpXOx(84AxyQO(`LZe#?ESGI=IA4q*n_Gid?Qo<|0<{bhuI#V@2`(P)3^KZkn_)@!D6VtnozLK4(eJa^&~+%>KQ%RWNhS zVa~&xzXx~SMs!d2fa>lKKd#bZQmv*MB~`0QvRR@Jr7WuPLNN1vGhly7OxQ}L|9E?O zrIqzT`#dMWz;m~QU+=Mw<##w%&wYQL`byUdj}W_{39i<+OnA1ml|sQGY%=}6+KY(v zHJp26To3sBuJBJ(=9Jeumfe;KA4H4Nm-pdHHR`Os)dZ(cADdKl*w=3nFmg?+pXc1EbJrATmCR@Q zUM!Ss921^5_j2`JsB89vu~t>^JD$pk7vXREn8j^I8c!`7l;$7FB{#`gbv*m!r!3K| z`VS4qAtj>3*2HLACMl@Vv+8(pYAxU4AjKHtn4LijveHxPTzq8(=qAxg^) zoUJEMC7xt>4Md?TfA`?n6RpJBbJ?LuBNKCPY0^G|FTVZKYYWVn``*;%^3R_6*E|z- ztlCl?>ZM&C7%9)f*3NvdUcT)f(>HT}|2jK=;r_pYQT#Xc8ULrNd7+$tYx1xR7e!iv z>F9}#S)=b0zH}$OWy|o&j4BEI83L2+uxoHN6y)(L5R4ao`9^H?53wzWsR^KqeNCo4 zV@80Gfc7caTCQ*f%>}i1y6Ma+z87TUkyEh~S~BPgE7#i1=sPo0MnkH`a+;BHmvRM9 zf`%8mjETGVASNGOycWNKq+KBqNSVXEu#0)ez{cEu$hO7ZD;GaApHT``uY z{BMQ4i8MCgn}|ky3N=6W&S8L)Xg#8F^9R*`1Qm_}cAS0I_nW+s`FY~f!@eL@z5P7p z#2<}+R$gCeN!&Lz+tQ`ZD-uP$Qs)_}a${=QIHo>&Z&ZG_c)@?!cJ1x`3EMi$fqhm} zR_>qBjjs@N4#^ZHJU9@pq{_;UmhzJxeG17{=bitnkXL0_G_2_q`6Bj^{SL7-8qC;Y z&Qtum1x(l@Yo(>VD`uNo)ce9M!0~!~q8%uZb;x&W>>23d;e@z^H;vs;ed5YWITDg7 zX3l-K)=x7kodSb$qUeV`)2t;v&X zB|%i>OSh5eNWylbgASqEWVKB43{vL(7C!N;%|Cw&{s|a7!aWK*v~k^R0M}PNp%%%r zp8RMeG3u7K08rjGwaMza@Um}-u$ab7?u2t=~f9xmdhFJ z8Ulc*nlMVW8|T*vAN{OBqHE6P#6p>aj-W+XH55U6Tee!&N~Ky)Zi@nS3Kwp*WqRwJ zE?I@EFsdSF#pB5RWl)fKTm*Mx^Rt$nMPqX{*ORKJEWF#g3=nEm9$aa_Y%YdP|3@ra zDj{TYu8iM>_^~lF+K>uFg|Qql#HiaebT@8|33bpQSB2cub|K8G!_|Ebowp z7;m#Ca2b8ltQdRMkUaI=`IZ{@MZrSHMNh!G(KXa{;smJ6QLmpt)elwqBahP|^J{z< zI_&(c>Op)&H;&wHT!)h~5}0Jy9Jul;2-d%+{SH|da!*oXV%t)l7%)AV~@${^_edx zmx3^)Wnzt5LJ8@3tMs+vV@Qz}!)ubSsi(__o9#OqXL3R_)RfwSJKUNPL%?O|`{us| zR%Tb%JM-e>{2lVnJ0?EGY1W-2FtwI8mBf_D|qAu znAI?b8~vMVN@-X0sEj{|Chp*Phsn676Kt^q#Wl&eCM1!=Hp~P5PLd|vVFR5~KMA~I z6w5|W0#!--*B&80evNWuc9?TYT_9b@Y zg^Q>fa2GK$%;YV8?*Ee1LWp?1@gY#{piA^ty5VSh5pdZsyIv-6IAoEzzW+Ob(ejCa5T2tHM5WU4qgd&7UeY<@DS zkYoB(EAcwYxc(^j@4Tj~(yX>w_IWz2C-*3?J3IN`kArBy@6d6%HMpCPqfKsJJdsmf zr*~!c0`#zGB^5uM{H=ewkCRhtXDJW6oVkLFZ%cAhvIc`&<*-X*&nAQiDXu+l7k+TU zC;&;aB#U`ma@gzs0!bZ4>Ck*i>*m4~NX;#8NVI_vFw^qH)yd;&gI@Vch-cU;N`I1f zi=)V$)VMm}R>+@>*3hc%*N=SyL^)zR%n`gKODz9iMyB+aB*R; z29@o6-$tA>o>XRdzP46H{QJF-iq!yWzw#)4+Zh)Zuszjb1?(7YWI2ao3Kd(jVQjjZ z+eKa{GW_xz{bKx5MZXW($qDmR(k+N$RK5+i8xMVZ-MvLR`#RaE(7_&-F4zF&3ghl+ zY?>nR#~xfHe9)MaLtPhelJ0kwR*wIE2>N})!(6JKALJx1opi$M``%8_eX(Rpm)Rp2 zI%Nx=Dt6CqQ|WDXuYdj9Nhg48OY8M;g871%>9nWO%;ll4X{+CK{f&4vi$0Lm4M)N* zwi}qdpRZW!b~F|M&ur|jSfO>CHuzT*1yzi7nk$y_hn7p?iNnc+y`PjG0w2gsKfVaNXFuq-6`XY!;QlC}9AecXX+JY*QyA2cQ$B0< z*>z%=y|Xv`m_sk|EPZ_7@g=qi7IHYygBDGpdMVpg8+Lr8s%ws7VZ2nn1J3vGaunDQxarQ$%BR9aCMyV84B7oeE1iXKp-5 zg{C_VjrZnQ^h6BSw6=P&G~0#Gyio`=G3su*R{c!S%B9nc-o{w*)63|uNyWNe;)Iah z^6OOjs;{EDT;j;hC_!P;^DrbIG9F%~WaplLvi+Xp4ydW#Fv+7fxGKrA0ViyIDq5c} z>c6%2$>Q2h ziH^RUme`e+wn@}e(lI|6JkEXC9Qku>4JWC8(*f2ISv${T-gNcnLc-S%P%US5sLZJQ zM9|fD^%hF}5>CL@w8B9T4aR#@`foDDW`VtM$>lVIThw-oBD0nK>#yZnf(acKGx^wV zn7?*Vja)m$5wT**UhJov&E3g)^p6%jym9UJle2mX%kLNymX(TmR>PSD53teNe)#j8*uDoa?xvr?GYd~kcyRtR-ghwqw~#2>1b^_G=B9h^Q63=_Oip291$iBUB|!vL@>)naKW_GL z>4l@1iY!))+a*5U&6F+C2$`bIQkQyC&H6gb&kv>|#yn*sexIT@wp%a|7T;jfm0O$l zo%>9e!~|auFMZmS?hot!O{(#Wd+L5eis-BwQ?y66Q+G=GE`(_^Vf%E|H9ioukRgMN zTM&x~b2Xb+14z)4-6NfO!nGYQdtxuxcBbz?snD34Ni|#NrF@gqHc&4Hn5pLM0IutF zyGUZYw%mxeda8V0<3w%9md`O;lh_u_^X-xvk=x8D?1dOw>Pr8#lVi5Ps)stDf0bMr zs0*tRGq<~7OQz&?#PM3o9qq_Wk>}n$;bvbeH()|kUyknA)khy_U*NG6d~G0Bu-Ioc z6&~QzLh(tI>R1Aoq!o}Tz0)D}#$3UI#CwFV z5Xgr5E?;L~QC5X*TL^sR=Gu!f74(hGKF36qO8cVjU5bP?mLwW~WtX*}C7m}~hd3E_ zTlXdlH?v(wbdtRfvg@1mdYyfnFo)o3W7T!oS%sdMl+d1#A6Q0%M*uqkAQQvTek!Ld zi;D;Qi6hNlCxf$UP3>UG^E)-`f%#3-&3)MV0#?Jq(}sXaSCwWtM?Iy=`_dS%a}SAS*!FK_E~h-fz?$23w+>W1*28_ zMb|pQMoaG85BMP+8+YXCh_dn;ZYPPMjDMMDAt8O>=kobmu`v2*+;h0u$mt@`H{=)W zclq0hB3e>hh5b}ch+PAWs55&JF>V3XK050}#PmWV39hF412F?<{Rb{M8pP_K0Afs> zKqUcYeae5ElyZFNVeJY$MGKOL9V}OJvQgsKp;@PxijOAr_hPJCxOe$P@uj+klP!hy z-XvwZHos*R#U=Nv+W{>%&{qV-^+SV{3BRaGS570i&-_g=ZtxGfomAzBp2uCoR(Q-_ z9%#;8Iha zagx97Y1A3fh*;foOm^RIkuS*bz8tJ(Ytw?^#&ZjmU@s+H;>A+>QZE@05q18lj3F#$ z=QKv;CXM}=>vCzNA3W&2``oi9;|1yWeCL}UVd8H?T2~=$J{;HOPk8GI8$~6oqxlL2 z2lc5-wmR>|&NQyr=XAkg!Cx-LzrT*Jx+rjE0r+~futEi%(uFF z&rnyrK~y20;bfcq_BPIuRv{yY4XA&MG*0xZvtt~0|JgARsK{5UUWZ{uq z)j%^V^h|tG*tHb4zp6gS+2hziMaJ|aim zj%FT^|7$27p}O@o5aD&JIn7Mm#Gta2n!Fj?*SS$eW6d|w8u)xT2tHAg6rh&fn68Hs z(59k>+|@AT^M>NhJEtKR^WR}+QnLlG@c|;*J5Tl5FvhHu=h`Br2%dozO)5FXtfvFW zkwAAP#L0Vn*bLJZ*w~d5VQv)aU5vFrI+Qbhh6vpm_#k=j#MPv6)nnU5hAQVhm)eW^ z#!aJ*)=@HV?oyMilY@}q?_{XgL4`uD)mqUu8h0h`^AULm4R{c$kj(5DqajlQaW>PCy%IX*s z!#zK{NPCJjhjaWShtoy#7hsQ=uHjcIVKKtUZO`-}nPWf7sw}}HEcmj@h^7xwh3Qff z3Lxb!Q>3wao-ej=Z)#oLui6WT=)^9wgRR$@~W5YG$&&AuTM(pi&TtKlz zmUwz)p(On4h)LRdX(%V9DYI$VX8Cm-L42vxrVZUBy;rRLT+KG5%dEc8lKNjn)zGF5cie@N8 zd^L3jT8#RrDsS>wqP*eSR6X7R>vJvNB#3Dk%Znq}_GYwdPUHYtd}7b#+VAYv0)2vw zMr0In2lE#r`v02$``=V@{rBj@?%^o{zXzSK0hD;EO-PmI|rE`f`(7 z$J`RM7KWa{HxO;e?Wju-K(a;E2lb}(R*telZUB8 zf_2WQFz>gPHh`MIJZc3Wdf?{Z&st&9y$$7SQ~#uZ_|5YVorbAn=lG@5dll7emIfE5 zX-6Zj^vQjHp&{=<-%N}wl?`8+_3PpnGQtOW*S8x34ySTYhZC%(R7=gAfyC3=8xf?1 zw^nNdQ~vW}1@|eC#HTxrfAB=3P1{sgL==ebpH_U z+`~AL9v5eJt6mkYr+5L`K1z!RJZQWy!*>QXDAmc_Z|+8u^ybZH885Aj4dy?`#Wdn_ zS}L%tF{K*52Qh0V1>4zl+pX9}5%SJS?T<}0b+O1i`gjk{cq|Krz5wT?)!(ih zjjZ?aPADFq#mSLvn=r(>A6Z$5#^X6;lb(rJMPyVOdgW-L zb|gM@S$~RSOqa1#he#hf`k~3~@Ymw&{l;cjpXKSRrkbUVRkGw*9s12NFy*6)(3}v# zTQ`lt`-66aZYYRW=nFuDqXrnu84u4z6$6S!zQJ0nRokjU01fr1M{09y{p83e2dGXV3fT53<9pS* zEt>Xj1>D64O6)r0tnmF3G4)B?DBHuvy~OTmL*h7B)70s>L#H{4KH(xV1i z{1JDT-Ai3PF<6oVs}AtPVOE6&1y&_2BPf;j*QkI zYQz-S3OzfYjKV-LrF`NjK#-DW5#Nw3jtuZmES}uj&TM053R$?yf2MY_R!X(#FZOg= zrNaHp*0*K_g+Z~PxIxr&%pk=wrzLGk@F3dpncyBGmTeq=7ep*4o&q~T@AYmL*?O?e zVomGYXj&Kd8_pxl$jwx}BBS)k=9nluXmuTjjsTt<$sn6gNINrq{?Ol1E?h-t7}Z4< zC%VAkK*HlTaFQ0SRel*=3wf1`^I%-LfT`G`L|C^(CUJlc^bnFRr$T+OBm6FG(DM-X zP^wueiaf!Z8kfIPOLd%eC2hF6OZm~TYd-A>tNo+?CkWMj{Q)rj+K!CuW`5Sa?(v@7$Hx zTb^q8>rP+uCxVuU{-H;nt>9G7$g|RT_Y-eQHrMM{pV}a5!Lt1yTQEcgdSnLumOpR^ z@-F0!k(m8HO!j^o1A36|&VnCDdXR_?qDxVTs{<J=Lu3&#Wyi82&Dx`MR^SJQLWqYis?|vDh3zCZ-%3Ge6;!^CRq1 zNG&}_swaOqlA)wAij9A~Tw6CeSyY~kNL^OFF(3OGi=wB>xa7PT1zp|W6eCvBAl4u+ z-)fmBPMoxy1~;sCs}Gb9Iuh&k+%*;5gw4E$A&54Kw?k3PI@T(@O?Y2$5JwE`El0$&29U4YexA~Q{5D*au^Q}Z#O ztM9?f`L51Y1A)lUYA(BTwXCVZr@Zezu56*e>ne+iDNB;d0woXYc+E}O=1g2*Tl&JQ zjrE&S2vPwmD4}0E_vSz+=f}B{d!_wNsM5sgyD8M9iiG$Ic1Z4Ad@JLcsEa8@&AN%Z zj#8`e7}gX{!flQT*w9l0IoP|5JHc(Hp$H?8Mz<2Go0~bsYN}Jr`G`Iw6?Im>jZ7ca zT7NH=dVLJz%qU3;fY5+>&&%FL`J;m7L(oRgBk}^_gN4z|1pk*imb)-00X!qh6oyJ< zsTNfg$<*>Hv(}%~+MRg`F7CUo^LNcKBq@pFjDM_1?>((+b^k?b|9ou@&972QaSi44 zI|Fk4mT4#!Xk&G|q|TqsHsKt)^eP8H9n5J=GTn$65ouG|{Vt?80Uz#JPAatPbx9$n zZkMa?1HjSO=Aoi%Rivq&#DHjEJ|!08BWGet={B2dZXA{I)X5aTYWw#0WhDm&WeBFP zq0_XD&Ke7TPQ%_wwvO>UyDhvEc)z+I6{5%~TSE-bJP-uh5xt4! zvtY)G*t~e^)O-bDtdp(?eMr+=l?!=BJ?ql{aT$yN?Ki6^3v(F&N zn=QZ-%IR~RRJ@*anxfJz~uuz2e z_>KVkE*_g$oi0=h>~pje%d=5y3TF30UG78oQrmAM`S$KbYk>5H&_?{D z>1!oO_2n~*ZPl_mYkTzHS~PM8G~JPj>aeYCg{1ZC-OpW;uo@?(n?*mcr>yK9AXj(N z=C1>LvU(!jd8Gz!J(@^C?TNyu=@SD%AiJOc)AlfOKgLvyYsajAW-(9^w**@`WUi>9 zgbz#9-^C13V8PE8Qe#Xkn*CKRp$=izMl1{%)MxOvi89>4Q%Tg3hnO8VGhBel&pmB@U@XZ_ z)-}%=V>(uE;pc>Owv;jlLlmE$MX1fKhEq3ko8^ zo!zc*z`%0k@vC-`rwb`)q7+07wS#qN*(1t;#k<djx0^;ZMSW!I-ar}bFn1z)!2_deHB{nYdEHY?Mj$Yksv#(V1Pm!J1noaJET@{)Fb zD8Q+7HIlD~ic@8bl}%O^)g!oB&-!d~_cw2{8dWsvjRVS}6&jkR1`Bl0`lstpi=GQR zpphP4E(BegGGEyysyY{d3Bb2+RrMCv)3^L5(Rpnpf{u^scB0EcmqKjV)vv)6o)tp( zSUb=xw*{fiMd?3|4^vq5NpJ%7(h1`bFno-hpntknC z{TKvy){pyGq-xkd-J{Btg6L_$XnK2@i94m;1B@~K+ywt*AXw3%wx7PDC1L4xQJMVK zTuoKiJ7%A@Ce&elVu3K-Q(@Z#? zE2M`#Vg4jwIV;PK%-Z=Z4plBZ0w!eQgOieG-wh5a&?f*h2JY+~+{9xLWko_kNWC|{ zobLWk71W&?$vIUj=Cp0fRVb}p*C#_|s3KS8d_c*Az*pSfI=fCk_YwT3z4dNKtJCMw zWB3!=^g%r<>Bi=Oq%;tfGH0y!bXE==2G<7eu1-aasl&`qlm03A(7@Do*QHv}^0>)4y)=tLVAs;V z{Ja;67Fq3EmRp8h;p}OG%A;A$V-eA8y}!S(sMCSSj_S9Puh*fhyu_(O_P)?9^HG;w zBuvDopfdaX21=C{rqu^A@#9W60n~@vQVWEc&qM|lx3OJZHC(E)P@oP|k>O|VZ66DZ zs^PL%jg}FQq^4f7yXUUG3;99H<#iIZ4h1O-j8Fb~N2u!zxb~`+``^y4QnyPppR)tn zO3Ajk1SxuIb>%p6wCtSL(jGK+spF$EdU=|=sIL3w1%!2Ww2CQeN0&Ruy%a_Qh=!S; zDM`Q|NW!_$zTDmd8c+cvenn+UU3c0d3sO&(MpH3T^OwleW#@zZS6Ai6f`8A5$k3OZ z4v)SpUtkwvq^l=K6%1$+PkVrJ=a|&nQ4fqb{`4qZS^d z$S=Zu^Sc7hX_tXiGHbA?$#(x-DF}1-9Z+jl%1@KZcnl?A{2#sPh|8=IHR&~m;r+(iTf}6 z-2FeUbN@TOuK!BhzY-^XO8?)QGydzQ{f|QzkUl4wv)lQ~$lvqjd3eNlS5>MR&*aaK ze>n>OPn+fc=HWQkmx{-NV>)$r*O*Sx?jGVT>Lu`YZ`)(xKODGb(VdoU(ZU&23?fVd z&D0eZtGStbVf?qsQQB>D)@>9d2aV{o1U-fzK3KNax#f7MtG4+G&kY?8`il2|-<~C?{79kBq@GbhStFv@vcoJSfv+5mi*Jc_JvY>b9oT433&<0 zVkUYJAF-HCtWf?IJ4<4B;vB~RQW;^`*4l(#8VKGV!n(AoHy9^o16sEvizlW3_j8L0 zTYXSnF8%f|zB9uqXUopUTWmX|6youRGn|Y!8%mHa{m(C?jDHxFLUor&Q@f6`!Xci3sB zX-~Uq0?W~XN2@cUdjwDYjIZlU-aV?+xL4(g=hkb_*2Wj09hL?Y`&CLWR?w`m%tuu@ zVI1i9S76a)gn)pr0kvf%rs7l7-$5@9U6%S;>73hp0E`T}b;j#&f3)fNKQcL;f<3qT zG~U*?w62K-eWP9_9y(xa9k5*^Y958ge>NG{rnZOg1EOdFHm&vyPIKaQ#BHY~XL^y1 zD4BUDMbmpYtH?i0#mmFg{OjKdc+shNZtB^GsfB4z#_UkRgf+rWV9V?^wOfIS%>dT}`_SYB=Sqx7O0JR>L@3g%HB9 zqqf?+mySdyY>vVL)ZlU1c4YL&Q&wNWLV+iJwyma)e;5B5ZP!NI-3>(#Aflz;e@K)r z&p$7cu2gIO@UcLtZKOT+$#l9fbOMm)P?lC*4tE<#>|1X4)k=_3f zUw`Gl$ZeNn-OPnUSkIlEOhmMBBmFny-idSjso&>VtONhrFgFSTZKbz`3P&@MpYD8% ziSM}P6{KCgI^QDmXS@T6b0f+}@Hf4FGM{da9a|J~|1>e*ldC7J2J%*r{puRjV>$W^ z!k=OP`ATTguH4k=BdO5Wcd~h&e@5+t;<~KlmK7=t;V5Yx`|DjhSC98WE(NdsZwG9j z>ZbqCpFkS~Mgv|<7~mgJQOWs^%1iiPjywxmmuFns-T4ldA;6v*GBq^J#4zOD{&@oP zDqBDhp8$Hl-K!>HWFRFdWPl4sdYFdcSrA{MD>dDn%MS*d0{*vifkm?g+PkcL#6y>z zewp4j2?>^=8y$1NYD)S+WL~=Lv0V%(m|kJ{?AGjxR2hP!y=^Vl2yZ7p!|hQ)Ty^wx zi1fI#46fAd;>N+<$x>M6y-l&#cmIqbejjpOoGAc_e|=-L{b9{vT0FQNWaVz|yu()m z!DrS=GX{}6{cEja+Tj89Zm}hDhu^Ll{>z^Qv!BDhU|VG%8ZPw?YUiW!cO*#>@8*cE`67TXrdF0+3Qqj0vJf0Nb^H zsu`oS1MU72RXw=@z9gTD&wt__B4!7vgkCn>Cq9bL3rS(?MTp~10MfhOuH~Qmb1Y!c zVPACBpKtB%pg?o2ClEZjOZjx0$M$DNj-a?lTSVQd1l3gY^sbH~>~{DQVV&*Ha;j02 zV`}%P?VYq_X$ibd;mBvX8w`doR&D(Nx+66GO}5?4J)2MbjBk7RW+Wr965vld*_WOO znVlO)e$(Af+8svR+3sU(O*}99!5@LGBWrYEGyMC1jHR32Y}2j(>qXh8 z&vZpT|A19{+itd+r}->?b4gdc$pr88$=^r`UQEU7bcY~cuH8*3r7d>aHEp1v=0Bup zwgNR=QWhl%yTZ*~InUe6!`rd>W+`)DAD3gjrYlYi(L!eaE+C~#vO|XM-a7IDxgIHW z7o1IS%$#G|F)8tVjwzYu)pQ%r+rjIz1F|TSfSmiOkvQU&Yj%n zU~!*Xg!In(?sUW!2^kf!I~c=QuIWsbnne-{y{L&`L#Xz@JkNa2tF!{@0E5x!_(0d3WkbKem@p-m;?|k=aSbG^?O8>!)zOb7bNz|+R8*k)d|_GqoFf6xeSwDc1yVx4gf@#493&b#ZN}_dxm}7 z?LC^^F-?rC;`#4!ke!q*aVK{~M$*xfv2g_${ojB_gD3go9k zFRDUwk(wcE^YQ84qPV&GIM;<@JKjvLH-R4Dg$n>?xHDDW^T0iL`LQ`iqE%KNXqS40M&=5#tK&mfUN_6^;VxeV~ zX9d}B$(zJ?HMpLIEQx;)ED|31x^tKc4blOz1&s&9woXjC%C&X&KLSK?Dx3%i)8Nmh z@HFhwkM{m8RCW8BemdIMcp4tK_b@m5OSug2-RgJ$)7$!bZWL_JrS5P~6KSTdOUxFN zaQITuK|j5I*F>$4)n>bReyUtT**;QPs)s;z?HNss(NU&!M* zmMQRW;lku>ritm~2Wg<~AeMznOT3@##MndOQdaHI1HobMIYqcbU72} zm$^itDsL?E@(f!Qfce_wcU9QW72?SCVj%h`E1|C|#`0n_@-8E_NE;p(EwBk>0o&q^!`FVTDdAgke>OF3_@hwi)Lp zX%-%1=`zbrd}W?~dBHDm6&i{=vRq%SUme~Nr&3MZF;lqPgzUz02HhsUzXj0qAJ|J# zB3U^*UUAgD((rN)5ELFGQ&*)f*^6lMOnc4K{r3z z?1ZWa*$B5anVn3F9Pt)j;g%kXi%$4oSc+G zo}`m<`y27rvg3DVdl%(RTebsa0K_oPE+o|dpixYu6Z7namN*{a^+QY!;&LCacX#Rt zy5ti?ISd*W==Du?p3#bDPz}8=NN?nmaLsFj{Gz`endZafT*e}hbCz#Il1meE))d=-3c5ioo zuNsFAR|{%Vs*>B<>+2@y>Q+q-kn+$TNDmnmRtm^30nkD-!J9Sx1&D_6YV)N4{=tqn zY)6JnvYb6qyQtp^b_cRfDv3#--Pnpd zrUHC^)O+3jGF3EtPcH^szjUj=Y(zRcILY2&-QMZlZ&D&DnQ`G%ylzQmsas67e6s&w zuLCPL(>aVkMB+~nip3?60I3??;_#Rn{P}A}z0<|ny$`1)n%Q%riZl?IS@e*iuG!v| zh(M$Lv;8(|HgZt~K^M-@bA)Z@OZ@Q7J!69YItUKuvSna9hBr8jgni(!eApWLk>!|2 zu|;dHO@@j3NtH9}(s*qZNy3JnG7`A511z+u#T>1`*=R!&qH?u}={U2E%2F3XxSs8X zD>5u%&gq>3XGn}F92P#%OdNh3d2<(+L|^3!K4wM#J3=&7QJHc* z>#Dtf91SduvZB^#YWVhd0v-f5*oWFR<%Z(X_$A50mwb9_GPiNZCBOk6w(`>zPGIuf zKJ+|2^#}|Xa^rOKZbUDsfpCDtUU#`6`~}pq1aZDb*?w_yrMim3b6+-O4&efcY+T7p zOq+?0e!L6|V%rV)3(hyLL_((0R1)@$9-dPbFut~_0g7rqqF8PFTmEL!3@-FM0os3l z+8ByWoR4lC;H9%QEt;WYexGjvyl!KdI6KVF74CWE7|`Px$81J`V&Rbw1AhXp`Nc^#R@F6BB@0I4 zk~7tDu-;>)P?2cJ3xW5@CGF@~xWcoYdCK3Is=IDyc#p8}G?d zQXfk|q!}LAn9NX1(0279;Y@9Jv(Q-$^n9jmxjH6r`==)-;73t>w0VJi`=7LiQC_9x z23M|TIaxmLBBE#8e?iq??|@)nC?uE2u$NSiL=YhYJ2`qc^f%A4QbRSU;=^8FRn0>5 zQsFzs1c$y05MPxC_9|y=?IZ?saSM?zQQfd5W0g+`Y!`FO`ZzK$7&#wWP-%WrPXVun z7r91=WL^KQw^(@sXyJBD$A}*1owb6dJsc7Y)MaK?Px1EqNHjP;E|rOsQpVLm9D#f-7GONRHSK9 zCrn_Vc-zy$u6ciBGIluV1T6ZTA;$k)lEMA-+nC`DfM;)*o0-=RDd zxV79rOGsy`InzHU=ZsE|3gzgHX8ob9;{QaYcEM_h-fE5t?U5*Td5ybWQK&BlDfsEvh1Wk!N&(GKyY0} zfF+qQXRMMc?`luG`R6|G)nMK}iqv-JOzgrw33tfGP~*sAP_1I6`WIVCm$#JM<;4xU zdh8eXk~ZRC^FP3H>u>LKJ?k~)EL-u0vY3O0()WWLvahNJf$Md(X)AoPT~oT1??-#F z_;clNl~do_4;a>0jc=|}uh1MSP%=J`4Y{Bb#zux*v>C6#-Ysoj{5z|6MhVh(#Z9&w zo;_blQ7C-GLT$3IC{IZbdqC?}=X(_pR3aHE-YS~i2rFF5A^y8fu|jmdaK-9pf;o#FEFUOYPbUKEJ=0Dl<5s4rt?~##%{`g+g1y_Co3 zAtV1cJ(24r;4ngveUW}O88dX$WbNrP zpBWy_yc{JgPDuv~?SwQd=diAIV@2F3k*@wv){9`tUweZUg`ucn5VZ9~G;X?$9Rz~E z2SCiRY6YFcWt>l^+WqKOMg2Sn0B z+hK7VCv6n+8$M0p*}%Xfg>}G1a~~;se$f_xR>k=hPIRK!hAT+;KE3W3x5PVi;xm0} z6nN5cT}C}EotO|SZpax~!(6S$dbEgc4DQzdl{#6xW*NAp-5pXKPCnHfkVDhKVF9{K z7vyS}{;_QvoRor|NosHBNFwCk({B8EoT38u;ilzYzs&yD3ejUiM6n{^Z>`X?afq$Tb-*zC*ep-d*14VZnOiKP zzIE~%@4l40U!*aJjHQVV-1o7y%}2nnU3D)smu1?Y`ik2;a@E&HTo^chV%eq^>h^t& z)X8FaD?rXmez(30X}<@>=ebCPa)*k!&YH0^ao?#BJ;%IYRJZy#8TWKgr1ky{JM^bUw6kGTp!g^q;{ zg#YDb#wxth>+g1|<4kEUUlRU6d~aZ*9tOipNpYYWXlkSDDRfoY?V<#iy|>{7FGLCX zSQ<7v+#pvqv$#dByXXpbo*qPbDSB4@Rhu>5slai{7PNpr0foLF(B^tEbLr#0;(2jiUfOnp(q>rny=WcxB+o8sxC&`>GlNw${qHq@56Q- z*cmbvdOU|%e^3#sV$S(NX_gUi=3trEo`9fV=~V|i6j?S0%1w8xGssQOwOy^KVmls_ z-VP_X-p!O{pO;f1Gg;&K#9P-frqlPFuxT%?!M3@5VEg5ufr|)a%-mO&xdc+h(?)}2M?Vu;?ZO|L(b!$U3@cMsZ8_f%vzQso z3xosb!pTo+SBq-+UYqxx17P&;H=a+Z{Q}?Asu~HxMXvV1LRNU;fHEKiFCx$U+klN&(^=gvbO%6;9UIf(ptM00BBZgL3maI zVNja25*B^t;ks4hJ#*xVPyw+Q*H@JvMeRTM+|78vdJ&|E1GtTCiNJ^9Cl!tHUwft9 zJ|SP#@3^i^PYuMa4rm(o+g7^nN$4<^B#awlP1qSOo>qIwu_9^6NX-KJ`&O)*n#vno zLnX(?Z^hrS@ojCtE^R)ObaAm8Pr@z#vp6#xUy}{7!E?D<)F-XUMmu}bVJpvW?W{Cj z`00<-ijPOrf%Dz(FbI3X5=6ulbi}XgkGKsNv{*iIv^I0^6KPjJU;Ifr{u)Z}N1R_vr*56p$Js2f2w&4dn2Z=cyTn8DU$;_4`DHph6u*LZm(uCJSjFQK@T0~+s~^f-mw&5( zs3uvT>+{5IDm0(rMc6wsf3#a&xD?dN4(SyHp%y5b59SQiPy%OK%;Ja z2^b6*3K$N6*>>74@fU58DATAWl`Cwx97nY>rW!Y~CEiR1 z#u7rvZv_*iAr+)OpjpZ36wyM92+0Ylv}Ua|^>eC8{h^15zhV|iT_}6J_g2IPZ!*yd zg)(9OuoKlouFDEH)To69+ykOt4sfa|{&9aJdrW5*EsySO7M(Aqb+Y^GA6D9GAf~H~ za%nMwR297>pN)JM~d$sF_-ENv5F zDgsS@V7&Sa9?yvODeBIJ86`_PXw3U-0a{rh~bS+)$dH*0n}NO$t7{!Ob=AmH;9j z$$#dsRdv3qFDEqmx#UYVZoKL_Q69fg*uj>fiL~$E+H)g1Z+f6lCtp@RB~)scD6)q` z!GK*pSu%AP9dpvuC?+?KeT{F^}Bn0ptDa=bX6*#HzOpLm9DGj=l)}FFVwj z>sdEUZM2R8l@hWO-|i&zvN~{sfjxGgH_7+R^0*&%{W(W$Y2X{)*DGW%NQd%lHdkEC z(ekTnd-d^HL&?7rcZ=T6jA*skM_jG@dW4Tm`EES7uJq*%_CmsCp(T~~m3Ic5o=_$< z7$m(qH(k7P;~dTuA{;ww9(W z#3Ij~jcRIM7w`K*AI)7nD{3k}Z~QL#&E_KP`YzM-CoRfw@}Di)-$SWk_jO)+uOe1} z-`x12O%KARcw%IE`4Y*EG-n6iDs>W?o}0rqSGYR>RlQD~0Ie`C1=_sJ!3ng70Z1`Y;W!iaSpHT4(@S0_}>G3j0HW^A#;yxLto-nO|D{)v} zdKe+g{hpp^h6VSn%oO*q=;Zmt@=@8X9tq!B3-Ic+;H-)M{X}Wifu-=+H%U|44Yu zA{(7Dp@_D_FYhhyX-Y&O!;C5d&AxJQ_2gkVa5}B`aWfFxoWJ*qUSi_E)rm)bD+~W~ zc`ZsL&Of7&``>Zd#`mvb;w~7=9Qwa3?yE)=cf2f)W4~`>w^KBx5L&bVJrlUd-xSP{ z^0=h^m!nAdm7KbCq-mPrf%@#hN9cHbONtdw=oUU-9~QF{+LUUrvr%9fNqklI)4|}$ zzKFV$f3YZRgR7703b&S(%@!$qQcJ4h#SI%f_FO}jrp6x258KUGlH?j*_s3)U9??5_ zrGI!(-)=*ria zcoHY8dychGmJ>mA7BtbO$8RK^m~PjbONcyaMG`5<7*x<`g$aIbX5^?mSZg6KHyzq4 zD~%2GqV(kYy!UFfa%^_rZQq11Wz5SbZ!spPZuVOIbL$X~`cUej|IJr}xt6I#=&iBc zf--gUp2KriAALwzcctLkMmUjOXl?<)VjFA zM3z>Tx+OS0K)GJf3@38i!20Iwzc;9cX4 zH!R(G+P;t+5swnWDME6Bd#XA9al>8Gi0d&TBKBX}`CN5kJ{2BDzq?96YGK%c7B2wt zrN~P21i8j*{am!x^QUh^E<8`ueg}|Py$FsNtEZtgmsKPeh?`=Y%FS%kZdRQC17{W$ z4^N%HqnfG7nF#DHqEB`^OIvp>egq%{+f;b1+^T<$g4BHGl4|@#<3K0uk zGi0XvqBOv{8~jtmdEvE3-TLg5{?K$gqjnxeLKnI3q+#$f9Zk@R$LvA{j4mzo^1m=` z*gGd90@AL@{TF_o=d%Mmg;Mh#LnYPk*1jNxG(1gr=KR^21dSGeLQ3N?_c?ctQfTzK z^264^Dyo9{%n9mKKxk1qfqooShrkP2Awe4LP}hH1@r+6VG--Tf_lsGEU-RAXCGj!9B7>kZ zNgPWD6Z}d?7=jiq27bW*)jvZs{nt`Ut;5w$C%7vVSrX0ihqFr{H&8cZqwj((ja8{bfME~@cB0Db#-uLg~GVI+D1idKk zWSZEZJwH!wz_omo>Ah0>3ASD!kh(ElTqN4fOz3}qX1(`1_>h%fdj|PN7gz|-=^)`8 zE0I;A*BW1`ldB~A2E?|jgK0 z@hB%S)4rH?);8-*GZnL|1R4?Ku$SW=3VLBF(<-P2ZGP{&eqV~sYp9pi^>>FhN>(`v!p^>H^R zcCF$bE5SfA8c;>_jbIk)he5cj_3g3NnZG8ndj5@{w)zN<(Y7y;n77n92XeSi(l7=5 zjNnYo=dV(Mc}JC`{&U9S^5ck7XZ2GfKSf&WwMhTtRo^o`;T0}r_Z;$22rFZVqader z=o2SNvt;~?!YiLFb$eW_@0&JMlqen&aA6^lMO67|VFJsfmY3U#_Ok0`3DLv=-I-~vcCiXb4^8_I)DNY96sAqCz+9|wS9 z>xXH24X+U{+d~Ivs)i@*eRC@uMa*+J4H;E8JS#<`A){2nX&#A$?H>L9pQ^HHiqJrK zHn{zyOmX@lvZZn?xx@K8f)BUTqEtfdR={YV;Im6i4>i*@5cK9^^lN@I#p)p=vRp<56DVHsecJORExSCxR z2T}QF-bD*Zt?-!iy2HgQEn}f^@C}EeGsBM#tNG0mfuovwn9Uoq69*h9v}KVOnPtA? z@WrJ?onMu(T3sJ<fW(st^$lCwS@WT@PW+n(@;Z!iSr=3 zp`6wjgN|AL_**IFG7oGKK6?P^vh^fsm>gNEG-1}6`G*%~kQBnd|IEp?NjTK9iDBPv z7W>DCxLh;{v_=Pt1J&qS5Y*Swq@=pro%o?;ho$|<;De2M)|I-w&yt&=NTv$PD{RHC zj;WVkKh2b3dIlC6Eb2*)F5URSs%HnUgnWwRr^zXN%4hna+E-98hgN>Lsl+lrqtT@2 zEKv`Nx|IQ%)D_C}F^wO!^@tZJL6CP;Lp-%052my-+Mh8>zTU~CHn`uIAOru>;~as! z*yZM@@B0|!QQWw94gnQx4i!n5hDsf#>c<3Qz=PF2D1D(kk4Y&{1l28xKo5oqPEb*> z@Kz4zGf2&>jhI3f+!nu1mesbRBdm|{J*TZOy*+7)oH3M|+QV=kd9YRlf!l;KtvJ4} zuy4HgdX*JmUeu>wW##aT^rJnYWDm4NMV&5hT4yZH|2!d07}K<*+-qYw@y_0ry$WWJ zgSejky*g!}T2^-FSfDu#50}Giod+Jlqd9OZ91-FKL z+w$J+m)zV7Oc?g@9!*x&n=@ zO|I`-&Y`}##n>PL7X9A4t^R~fvb)ZIw;~JgX z;Xc2XFCo4h>&|+8E5Q=)0B?NGtk!>(2(-uR#RJ|dCsC)YK0E#1&zyhhBMduE(8$B* zE9ehHYhHJDWWFg-B#Eb1^+yFCVZMKxx={1ucu}%ND|i&2oc}(0yBfxzE_q5ue7TG) zN*=PIEgH<4y+nGvR=<37lV8q19PT)?COMdZ!HCW{gp`f3@yJU&ofRDliPB+2ua77Y z6}N+x&Bpbe&SgS%pP8vvzjTF`4!;nPe*^FUHf zYLVdDUPG85eyb6k3Es}Gj#h08NHYh1+KyEn{BowAP5v?Rai43^!&*gm1ugWLNc*#6 zaFt=SL`s?NN3Q`m4Y}&P=l_dweKTZsg{@vZSs{^%5>4! zWJyaD>yZlgCE`129P}~!XurZ#>wtIfNw;vlWiAe_su*Ki z6a6`maox<&-x5N>LC(jJaeabbK9)%`Z2z5UD!-)?`>-n6S32*)A?;nb1s=39CObNsB00q{$bjV}af zMN)#FFAR)m({VT%56P^X9n%_@zWTUcLtv>%%=D0$NcHqj#A3i9nEYD5$ z8jp88xwgy68T0jre;FA?$w1~)WzO!Ly&GCrD5ZD$N?k_HGTI#kB@ZLV4474k>14lt z@lt9l8?V)0m4swQ(9aNh|F_3Z54k-C@9X)hYE$l-7jV4TIy`XIYhEfE3>@rqRr!Pc ztqYHdMt$iE|CUFuRh9qLuyS-Y;#N3dM_kesbwjpKnRq6*!psqN`mhjA&T&{)+%v1*G=^&dr2966$9N6#`6%7HYF6-- zct+*L)XQ;Vm7l2P_xL(VOU6B|Rp!$C@M5q2>Co~)JgUE`r*(ZWaBBUbroNU9Upy&sxlaTC__2&FHq4Hw`906-<9en zPJW4)VWZi-L=~*nxj^#AvPG_NCyCZ-emJud$lhvsXn0onI23Z)xOF*OwkggcOFFYPs-AzB$o{>zbFZ z@1wnU^}{~>CbF~R%5rPXlT`I`0lV*RCOo9}ezLc*aGc~7{C;i*J%49n?^jFrX`Adv+AOfYAP_Z$KW$}I_^m)DP_`7> z`tG6U&gwPCP^9Fh;-es4yacW$~4$AY~^Ll8ZV5++izOxkn<6G`z zc%Grrl*$DkKz8bm8O_rdAEmy_RC20HVKTH{WHm@66|Bh2|G$ek`ls7({5F2G>U` z7Qd+OW_`<4dm`YmyCpGEEyRP6(del{P?+^~BwCJMyOtU_H-91{R(;wc-DjwGUigP1 zN%{p1l*zWpRBmtx~GBE zV^AoWKJpE0r6-{nu6V#>`@#aE{xpR^j}>2+^(f5YPt`^vW?3w?ocUA8;4W;2bt(Ls zb^#C`HQ~a;7GBvK@l&7lx8-InfEg46TN}3_A434i*E1T;u6PN7@M>iZM}WqQ-hdQU@Wf^;7%Dr z@7{i!^E}GDi?Uc=Zn9TTE;N2R1-d5Qeu3CEA9XXUbY`xS+0DUS zOkrSn&t&-Erp+T#%=G}$sKUajP`eL7!mmlV&(Gye8sAZ6UGC89v$*&Z$b@N6(Mv*yDbN0i*2Q~79Gk?3 zV?q0J`c|s#JsFvs!MdgP-r;`o$;hsYh-a0U(U*GtXaPK=(?wwOVL*=)e~`qP0;fhI zI%_eoFy7?;jG6oopbatB&K%SBe@ z^^FJpG=adzOY`(s!(##^LGwNXx0Ytu16@T?h;NEG-!0=(=(T6its$>I1k}2uDWM!Y zc8=(uvz(_XlAG`Xv{e{a?Y>&XyRJY))$Xy^C2Yu+T=%19h`D{T^^hy!Z=r$M4m78{ zmVi!(HWt2~uYT`RbhNb6=sAO6J+Y_E)}7D^vO1?ZAF#Encw8LilEk~iVo2U{+19g6 z8V7iJ&B%xbuvk>rZ}dq!J}pb^3|Awr_vq2>sn!=Hh@ku#Irxi`DfK85F^+%@O=fo^ zS@ERey{tU3j^6B{!&)p`v||^kVqc$Ln}fK*^VR$Ca&ZZpJfk&NPOaLThqjxu2`C(Q z908#suSblr@IMBD%tyJjk02T`_t?#fn_jf7SRXiY8JD+|F z6k-R06X7vKcghOhJj3sfFRN>q^VItueqymRy6sV!xNNq-zN|jtJB#@Kp#37)JKqfd z_C0blZ&xS#dNYot9(0F1t6M`p)vsK!WqRyhMWDf(;N$ue@3GNr{koMHMLak-XjjH_ zg9ViX%DXV_p_v+Amc{I-x_y7YBK9UYAdU8*ie+3O;k5-la8i12v*D?a`R%=Xp077; zyZ3vF!DZKhO15C(iDrb8=Fpo+XJ%;jELP5;PXcSS+(Ml$v`k-mc9&D&oY>%EWV`)l z{H^%F{7MUC_{Z4tpdm)!=bi*OZdl5R7Rxq)X@F|rm6EY(vPn-!C&Bm@Y^l$9d79Xx zjT2+4cS}3$D^9?A^&|wQMakyzw;Rz1lrcJ&D7vCP+5 zy6r6?JLM(xNPW!NoV{mAu#}jH^Po=4m{c-f=h? zJ!1zw;PFAfmcNdM_<F*soW?-EoqEE&?<`@TE#MP-N);8f@d4XY}*^tA4YST4) z0CYld>~Gc>Cd>O3LGi|je2>goZnWkzu6v}MVpKmJSJ3tQfWn>UHi7pP-l3Wk;w!6J zCVqJ771h2SXiKf~Xl+D1cIIGFiC=|vZ^g)OF`%`SUr{>ULO zlw8jl%$#oN>8pL^ZFh`U@2j^xUdY8IY_mh}|G0$*K9q`@gE0v1n^$!R2wD6!Ws68v z;6`}wbB|;y;UOQ;LG(MN)7t8=H%DODhadR47Ko@5uqPX~mS%Bw4_Vif-F=S#WQw=k zipNm|yAG46(zg^18`g<~V4Pu4rA4bT2M^m#rrLAO=8lu~)Vc$0pJ8*kp#zt#59@EG z;jHFKjK+o<0rVFE!ppnRmlj2d<~#F&EqVnIZz6cqT0Qu^J-WZJ0w%#Ab^(+ z8MZ8Dg|a++G55eR;GMtVxMSa3NUk*nzEoZ~BrKD2s5yw;AoufUphS0^iSDb5fb>B| z^$wvAh8u^0RzDt(UaB6HD4q4WT|v1#`KFHX8!VnQJZ%3gX{Ti8goSn0zE$~2DkuVg zh(e2e*=!7{tfi=0jF$ojIyT|>c(mdtOLT(jn zmsktuXLM8<*?d@%H>l->Wx7H{O*`Yc?GrT^*HPP340}_2U7+GB^LrDr_nQTc2`Sbc zS8~FwUv22a-dV|%S>xJ}_}9FfRLJ1_tSH{^tsZ7lYcp1xZ44u?gP^fFMNxK}jL3JZ zDaKs)ben(iJTz{e2lCe=oPft$2qq_C?#9IuHgCV{NeHDB3SYSUSakFGDZ1+{CIRCoEAZz;C zbc^k`eS8A(8PGBe?0bsIQNJbEgL$5CyU)+@Chd)!J`^B*>4*9WB9 z^>~3LSGW&9%8=hU93gq`=~S8)!Tl=({yeN2_D)-h_6?`fTJ(!^I)`9`wQ;!S)E64r z1Dmmf0>FNOv=ZJ(fI^stMetaICFgWCu<6P0t%O@4VJ1|YVhgDmr8O^F zKRO3CjSjjc!3sPQwa<7*-*?tWg~WQ!dQbV_)10KU3Iv7@?s@V(>R`qOjd>kVUB46X z&R5Vgn7$-45a_zpn7|@k05iA z+!Ib$!k+(va-7@Zgtb(2*~filrS~4iR9xojIOIjy%mr*upRpwBo}A2N!Sr?I?@aAB zspt1;HgPs_1W?JELA7jdLmCrIENlCX9HfOeQz-S)Yy@`2bVEp~epu`$Yz%BO7aqYv zdiMjK?qQnb2Xd)zPV~JUJQURH(DB&tF@ti!K5m7{Q9VGpUEg6q2?|xgGkLSKz!&r-H9W+2BX2%evl%%fc5bhX65+E(Pw>ip{Z}{NbCc zj=A#Uw@W%b1(yOpyN&2AAMv0vdZgypgQ}|%z&)rLs;{1w=EG&8tqDRLGup`lZ|>kl z)~`Ufve2{9&&hp$9@<4G@j<0uvHfg8Sf}O+jzgE@Gc25 z+nxsa<|Dw5nb~P-h=sE1ErvlPv5jtp?*kIcZ{)MVB&w)0QKMG5<$a*N6lDf{hkk(j zK}<5QwJ=%XYQrwlO=)pnXelUO#xCGqfXwiXDrKDI%{ncM)cy!9D7qj#W=Lx$d= zDZPkRr=Y6p7ngB3%dr=ITEuwm3_7Oeja;^~4-IEr3df(dL8hRK2>Z)%XW?AoY;cY8 zxo#C+X3H`wwHYv;=}AgBxp?H*-+`H{b&FIUcNbc@WoYw`oMFuEI@mjw0)&w6p74`x zv3h>(Jl7}4;IOpj{`n)YYsZm#RUqfuY4!C*noA?Y=E!E&K*;G5GKy}G6q1h;#^#^RaCK7YRA{??A69wm&XeX>k>}+(`=eoLrGA7u@GHyE7E9=d zIGsB0M}7&?4bmO8UEH^XpH#g>Bh{XTsJ!F5#fWvcVFCEMi}3&DGLj!>HrTSO(ejMN z+!HhORcBUC_uO?SF=h9(#kO#wdjG6$XQ$UFPJLG<2LOxaV}oYTROGU z7LcZ##-92tRG?GQ6urPH7oyOhJNCoMW;FuSJfxBmbLQo(t)-hd5}akC6TZ5EpdYpO z4hku>tbL1RlZ?5*%H7Yt23R)PFj&E1eG0K(O|lzDkH}86+d^%|IF9Z<-#xF3Uy-(S zVxGnpF05R2eENQ~q+4n4RV4PzVkncK6V_8a=W4y}`2trO##6_y%;so-RZN=k$b8ZK zBi7gvL{F{i4Q1C!bhj$tjB!^0#$7^s4T{>r82!vWv%69FZg(#3@x6=n5iNs+m{;s& z>Ms~#L@p60NHX5b4M!BPZu&`$^Vn7@-QRB-mTJC35Hc$)SnV zybSd|{GTlpP|7VZ-669t?STIZd1|O|e+W-;997A{bi(kp#$q72rW*czY zCU3*6pM|qyBLr5>;%&Y;Q$YpON2sg8SpILR~iv?ULZE6Z&`dF>d5pUwWU(S z<_|G_O%H^ajJwD7`@mPJ^aOcP?k6MK2E=;@|D$fgxq#NzbrUk>pZK z5M*`CMoCJWrO=h)jk93Jzar)=z|7zkIs(W>Pu6_iQgJAL?z>((y8GbXY5?geCChZX z74wMr*LR_J&_SL#wvWgP)6SUQ>vz1oSu$lF@5}DK*1oO0TIqL)jYbNHg0PzU-Y=>Q zX%<%8nCfpy9($(0l7QZhFN&5FxA|)SL{}@v;I(sIM7>Ocb`4m0Jr5}~A+uIWcMoCw zVfAmL9GrsaTP4*q$v4g)R+d~h9fX1Q=i%3XNpEE#h-@g zp)G!8{dHz~hGF~Q!AED$aki&yHs8Wy!h`qtv<zE4+i(BcUHopGOq)a3Gi=#z-kpw(5vXZx=Wa$L=;d2M7pJWhVD>Wx`!TmfFTEl zj=l7KzwiJ5_VGU3>x?;=fmzS}@T~j(UDt)eD(F`qM>>QHE7*f;UR{{GeL8*}lcXRD zJD(0EOdXLj*|+Y_sahj-Q4)N-|FF?=TGUWn)~`)KFKb1vyK?t1S*md{IQ=M4H0b+pO%x=7i{r7qp8@zjo5Vi6YzYl!viwQ7^whU)#Ak@ILif__=B=dIZZ+Nn+i9`Y=}IPaO!KexySbcLwBCwVX5l*#m+1{P?Mld2*n#h1_K`qkUdamu{C(0!T$ z+rMxdYK#kYncXBu--pIBZ`Y5y-q}q1rxK6RtOv&uzX z*C6~2VPgK?VIskP{WrRKRxasv`v+=3Vx{?dLM>Dd4ip0v8o|$xJ~BqocMag}HISdI zHw0G(%sjP0VQOdQX^gl7Ma!rt{KHo}YhrMtQx&tkHck(YWLtcFxmQ(OXUpF1Uv);G z?l^QFH14Rqg(Qv(xKQtwJYO{WjKZDIkf(8fw#rY9cn*1a;#FY3b@mDpS9D_6c9n2! zAYv*qaPP{gXF52Iw}FEpd0Sc# zJ0sT8zDB9uz;Os3<@e3(oPb1ZCIh=7Sk~D#VS%(Dd##Im=D`6$wKU0q)h{V}+FeMr z_Wb5LZ?Fj!nh+J6YD`X%B$jT7>A1cBX*WuG^ERj`J6oasG!tplp}n20A+vA0we(5C z>)Wd?rOf6GokEfkJ=LWVg>SjTLWU61y8cTuboSbf3pI7z;Sxg`3 zrMV>{`}DAI@t0Q&7Z?SMXH~LYMm&dVFS(|wyIdr?dV`|eR~m^b&?Ku1<&{*jG^)d5 zopm8{h>_YOxaJ5!r&!I?zc5zWO}|0g6K+oB9_zs==jv;mOK#kE}J$6Ld&^WszVYU5YuZBsL>VNTatQ+x4jqf7`G^*(i ze;O4|bSS^I4tlcSGk@^e(|z%^Vgjin%NYHK=; zk#j|q*I&rT4NBUqAC4zUY}scB&YfCQ$6rJ{FO_EUPRfx)F#7QX&pll3xRF3*azYUN zHj-k|)nK{uVCZvQ$4?&dXE!V4bB)LRU5X&TwxR~mHL>w9c-C@^ovF9}#>LN3XQ82L z=hmZD!Mfwbt11t@MgFds{_Ar@O#u>tGahVvscL=Y2VxBEqn#z!(S~{ku-28XPEyEK zD-`9Mr7D4>J2EmO2_ieGDmOr%hTnN%?G+I{`CN3oF+p0eF*T21-r1K#sy+}E$+)CD zGUQkq*2Rxl;N24!dc5WRMmpdY<6)vlW*J1k(Vk%}AYWSaBSvZ7+t}VP^8*WCS6|u) zO+WsT6R0oWIz2QQv3NY2i?RNlbG+jV-7F7t-GoX>6-#?5H-ftwzaKV&^ug={&VC#V zAOUy>&VKvv8LBs_qHd*U@hal^DvJ1xp$7L#)#9`S`atU`OSkk>LW>zpc*%KLiACsl21rnOZ(X96jDBX(5;D8c7G;aTD*-linR z2O}6J;~6h_rH>pphsfh#dOqT9Qi+;W%N^~o-3~ai-nwWkiV4jI9%Q9A+KnjhG8~{V zqC)zycr%U)?bn4LrzcEAb4_(MQY?m3b#(ee;yZjhoiz8<&V8BC@sEei(lT)m95}|1 zy-g#^g+;jfcL&`{b&WnJ9ZZRJePV36F4Mk9=8P|@IMeKoG{YWNj`YM4Iv@3z-R^bc z3a<~9m*~#57yjZp{z!vZ+uLKFdwcNV{JtoB%meUp>Vsl!8%|mpBI}h{hYCmi-E+^j z)mJWkI~o`FI_qBZ{qQk$4VfeNSQxeZPenO5)2L9ae7p7z>23-LJ>D31KT3JPpZ)_G zBT>e+Z=S6r78jLp%e{A3LS;IUhk7O4wIQn_HMt0`kOV9|4={YTb6N|hZP1&p=nPjD31bl6K1n$3hTIgo|lOHqd*%9Un!oqFc$Y^U=;- z6&$`&57rk=uJ^2^5Avv7C*_WUFu8(Ahy#{+JN1EKCI|Y2&DQ#>`C1N^YNnO*iRIjv zX!l8Xn!X0I_2K?>#CjxHeB1_`jIX%FL%S&5_O`&WUVf)R$Ci^;jl0P&pvLM3AxVFu z$%~~TUlSh;WW#A%{$#w&ot2Ey2tdkSk(nRkk<+=8BVo>;&1ZQ4B7uPVPiybm5jQeo zW!iFp$|Wvxi4U!+yU)|6eCIBYkve$izF_}F9u=)jlyH>DfS%E9$^@wBUQ z>RI=?aGNA$g?*WRQ`jrXEvKaBqUS~apI3VZa;VysMb+e&e!sF6)1%yEYyk?RJCIEd z_J?_MXaP7k(k?;9Sf!;B^D>@Tb1SAu~oie4e zojU{%P4XfvsP zPb(Y?Ae=SxgR=^pe>dr$W*56PZ*4}Jqkzk(ag|HX-C;L|s-+;BF=UNv^k*K_MeF~v zaFn39?JpCk8wxq0=DRS-@QE~J^GG||nUHDpr2X9+@Q#nJ2=}pRr4-^Q@L5#;rpQhv zGRf^TR$xWIa*~nyBd^W8KWcr^zt7{ev&L0F`6Yab4|$y#;F4f}xu~B%7GB>Wu=4_z z?Ze1kXRcPs2CAmaMMfur>!eYFimegHK>cldDp~fEybAWivSiAWvZ4FYB zLfCqr=f#^w)HmONLy4scshHcc+8W!QxKa;k=D}SlC~XQky3|`)d3sn?_ibzaF^9L) zS~J-1GYzUf=fjOfJ%CSpw{4-Z(AZi(B~j+! zZ&gvDLjHXAakUa#ekV5GhZ4gUtqCEd)WjpVs_KnS>nvKbd(bJ~sB-f`lVLh`C#&n_ z<@q8nlsFD0AY&btZ6!xzAz8fS)}IZbf8+gBgwOI&h@Nf;`6OZ?Eh?gPQ$;nn|K)$b zm47%LKz^sk@PYOu7-+IeCe7oi8PQuG$H_b}&hE*D-eO$(U~7$P4smTR47}|WyVkKs zRDp;+B0ux@mQTbnQ!4Dk*Kc~JPws1UKd5O@BUR!av+!&Lj#V)d|{y(kTo zJOk4^Fnvf3naWPSaG~|P<+{p`qD+AMmfo~Nm5WiJ*$&&)HUMINL_C|=&zJ!HxAgw` z#Bas*Ze_Nj%WAtKzv+mvFXwhwId^G>af2^yCz!YD-PR{RMKywMo(S3=XS>l!kgxN} zkQ&>dQz_DY@%e~k^PrD`Db`vlAs;;qqITNgOuo_sx&zb8B63>$jfgoxgi3(2q(9Px z7la;8LUi6bcVtZ;gy)sOEWYYIWAO#?XXy|FUNBV&P481v#7r*2q}z=DSGf+5Riku- z|J}ynY+tvVU!YBd-AEt*OY=s#@g1LKx!~?TEM$XM;gO?!Khr?pApIp%iQEIO>`+P5W`qY|b!1o6_3;5}4_k+G{D^tmw zKxROS+AG+gkXscSa?qb`fxwn%Ndz3?)n52ab`AVWt~@Bx+etHb#v@;_iwEepG0zF8 z(5nG0mze$r8s$t+5VcvIysj7tw9`5|$~^RZ`8_~cctZXM9|TbA`Jh8H?hm}>NKIdH zVIwyg!6N|?S&Q;w5Sf&eye^a5y)2iTOgH#lD#vyuEhjPV;pp5!G@3CGVAYhO6C@w( zm=80IJc|9iH0{QFBP`qEtdUy0xsik^1!~ z=+hs93a5F#Xdkp#&CA|tl`V)$MMtHhY@%EYCuG#uT5v@K+4_@sv(~vYYZRCK9ac9n zA}?;ahpu$5$PIkg8|vt(_M0=O5$%!G@;hwXp(SWDfhUnwHAz+L<9R2R4nwF`!lBh$ zkTKp5OoBx#Y-l7C#%7Z{@4VGlP7wMmFFHR^pe9_r=w2o!50ap4S*{BA}n>h>Q<{nQuPjU}5xUvVYASX!RmH?DAs zT=ELEZ6|cKX;yt_fLjSqcuC@UyfW3LF~uOl9>}8%eY)ly2(+C zA|ou)b8ob+xS7Rt?SXMEPk*AA`th(^{{mx2Qf|!M?f5-IA$-;ZhenEm=At@HM#@V@7)ON{#&Kbv zQXI6O&=Ls`f4&4wUD>USDeea=>!;M^ z-wr)ZGAS@JXT%B7bxGoB>`84$61gMMa;Bsy6MX)9X`idFt^)PhyT+L}G~OCN2Q5Ds z2`~5kg^@B6k;n6}fjy{vp&_uDK>QnB9XQBAh*M6q_aRT_Mn1xU7>K{gb{V(HFiwmOPdOj!4x zMeorbi#chW6d2F|&>zjdJGaAfnQvw&$i-gDi*;DoEr@S|*ZEIR5a64=1NBKh%LCN@ zTY<+Y-I~|cf4Mxz&i5OqU3tRm1LO+KCk#>)|6pF=N=MEdm%376bm^M{$ytSqxDA5l z9VIp)YI^_@WCm{XeYU*Sx zP1VlsGvVHWrcv~TGfK)c4LA@dhMg(+^R2x#e{u!J-RQXHjQqo%nmrm02ubPtwL+v# z8bqnKkG3{jNJ156Luuh71rA^>Ug1Ub+C@`i!kt)O>7=&9`a^dp@fE+{Uba0Mx3|)H zqcZ^OgzvY#HZTh>SLBEbAeAE^X{&;&323>Dd9cIk)WKJGeXqPjtv9ixqkcrtt~~Ha zyjh0kQCx_V|ANu*AAUbC(%Rh5OiR8gux|hZP4QZp(;8hxWS4K7qr9 zj|69gaU;hT8zO~5?jif25J%F9&RQDe^>cbJaaoA?g;R?Ov9k%rJI#$qqi&^ERPQOqPy9nLw?PCjiNx~#W z=!m%W6H_Z4?!Ne@83QUS4oY}Y#<1umsmDo`?>w=9pPi2&rR2ty7f7cj@(^s3PNA@o z-!SMOC3KqO2U5|mN})+SsFI^-s9x5VktuC%@)PGgiNq9Z#dHY1LH%^~({j9U6Oi*i z93CB21o*d#pr~8TIIgS)i@5zv0NYEA7?V8{{_N)EB*UKBcInz!lhe&|GXNvxkLF&$ z*k-)A2uz94*GJy>?ybOeXtC&2RA;LRJX*BsFNiu%!@@JEG;5U%Yg4N2D;}rK*4_0Cy~x1*dYUxBcR0DC*LRla z!I#prp6{b0q#(R5&mLJdoU&0z`|bg%glt5`eeS3 zwI9amNpR0ttnUs$$74?Qe4@;qM=T}&;GMUifMGhL)sH3w@` zQ%(kiNc+CEfuf1h#CLtEYPlWWHI_9S(%~SxS1eJUdnocl&%EeY?@TTzG1acVuX;w( zj<&HObo_y*uH3YMr}(v*>A#Ta=Qnud{8B%Ri%mxgKAnp`4DqsF@The}?Q!Q99X_Ql znLr+24?}kxvU%qxO0f+QFPX>s=ZCvtA8ajFADrw6d)pK_R>Xy^HK=kR9Gc{kj?Yhz z>)X)2E%2xY6zA0Oscr?LU8*0x5qMcCB7#q@_AYM@kF7Z)?5tU{)A7Nyk3umx`ruDX zc9*ZzaVa%PyLdoj*WoFBM>Xj%k;2$zWv7#dL#WtcL3?N$tn-_}0^fb*h>$Ql(z9O~ zWLhMZ3e8zzPG9yznms?8=Yt~(HcwzH9s>SK?P{u79~>5a*ramsxPRU=deCpGtG`nK z$@I3kui2C;m362R86@ukSBA|;(``^ljrL9ZLCdcHXl@QH=p!BaF26C>O4}tZYsF@~ zxt&Gffg5!;@L8>v#*v=R8~WYUo*QNJlYOUY=L^|#+R%1ta@3ScJdtRO6U(nJ52I-- zRZXUv?hyR2NiHQnfYg^7RjI2DVEhC0VcJW%g+A|(Ru9STwN~h6F`GJKtlbs8dbo1) zOoUYTOAFc~(BrC+;PIqdQ6{OnGla&`y8M(WlBu7is`1e<9AUV6y_voTIs3>@8ZmD^ zKGZH*sun7;Iu7&gg*nv(SKx#|;`MRCU)LzEzPN#X^*IKpkXI4v)$GG1V`)Q>onN-i5lE`t%8qomlv|TTyO_WON_5 z!N$HVt$Z@>Fse?Lfv>r4V$#Q%FKg>CI5N^zVx(#$ij#A+PGMBvceW9oWUbKdC}z9y zP15g;es}4%DCAATarM!rV_O8>k}r#iOSmH>8v(qHI{a98 zO46*aIH5bJryDe|f$9*uVd(f0DozPEJLXR~8)hQ*fBWa$UA`n<{&e3yglpORM_d|Wy76p1FE!1K0ll}a(v)_5;w@{c zW?b5k)-n)jZGzR?edFIG1%uK;xZ4~gDezW5V@jLt?maTCFQ{&WEE-_mja)v6>|8uS zUcO74@l!~7VSc7MYexIzWvQ{%F076;A>HDG1wC)m7XuHqTa(|wmnJTL$UNzfu>MCk znPg2;??WeNpAm~!d!y1#25#&mHeHC$OfgrObqnj{?P|VDhgZg ztgA;+m$Q+K49m>u`9xXv5V(qy@rGi1nzIs9tj@u=fGvfl)Z`{-%QVJfAw8kVH>kT^ zsJ_ib*(o47&4+^)C)}7dw;4x#H52+=r~z}~-s-;v^1UP^9l7J!D+P_R?0O&INaob2 zdeagd3<#jUSt7q&&|FA&;iE)lEEXp!#X@)Wuye1T^2rrhnw@G3{o?(_X8&K6JVlH(>rf6kH*< z=tR9cC?zrm!@Vm)DOx8~B~5L;=3b7UsY`z*bOWaz2nq6R(z6`Ty(}SNpXv^q893=V zsMXFartz#hdq4L0TfI@vv{7|$;7<>XuqFLjo}G#zB2FLggrln?s(jjG{?p1IY>?xA zgGSBQ3;DI-CEtt&@s+*hlUj{7fw^vid-bnh3RfkZ-qY=PH~)gpE=;%MG)xQWvF=(C z$X1r#jQG?IrcARiIL)hUQ6n<-bb1-%F?+KtU|_U!x$Nyw9r49;@H9F7*De_07P8hpOdY^*cl|W7o+F2 z05ralRxrfF7%m+4>0KlB#DyLD(;H!ff@VYE6Q@S0%BIvqcs$o7Xx{C)(9fv>TgM+u zcDrerLlqwy%-&Mw>zo! z@v=w!j%cMxY`%W;bD!$qo{SdIgYF!R$tN6yhOO8!yEtwD(phd29r%@AqUd?Yy!s{cs6dC zW_ZcD(SRg+GcG@MHD!xH=BXJso2u>Sz0J+DDhp0#cEa<}o8?wQktf6%pZog0Y1}T3 zJ8dA1Q#d`+aK7^XK0H^x)llvwo46Uv+~)shl47jZ@-sD zdOxDuh;iB`eF1aNlsID5udE8p>1QXptFXd`Ot2RzcTv>5-! zpZhUG&$H+;&{d+Y!{Z-Lz+ z!7YcVbO#4)XTkAx8hy*TETTavE*$A>vY^W7^sM4bFJoo%2hFqj;c17hQ;eQ?D@nYK zY!Iu9K@Yl@k3~o0oM#)xQM$Qa7%LxrTq52&e5RGycrkvYWnKGCk4O$3 zB(fq8)8y4AR?QHc#7i8`QN^KOA+dG9k_%LgNLcD}7-ia(Ud;YOj*}T1q~v=(5_OLu z($U9dr8?+*W!)^lP`k%>w)drLO;ax`v$Dl=xTZB}bL<0kk@)_E-6kvgIY&+vMq`47 zVhL=4EUtV@DLUG9H9wPt84LGiQ=9i~c37nRjXgNJRFh)At6}4B58QA9Kd42IoxEi( zSw-2|3=AHhO-RNS371;rXBQvknY}$zCAq(6rGx4{if%(!!WA}XC*F=_vaX|nIWd@h z5iU~>A2B9egm=2^$PGKjxICYIQSALr-|P7DV4rc{D#iD1tb$z|(qRgQHp9Hek3h5N#wHA+5djzElup=aTN!xVYrc6R7-F}H%g zZA3%czMnH9;dx>oL~!na?I%gr)0`sWT8AE8ZIGB$lJIO}gqmRLZc_I7VWPeE0_fI^ zUR;lp*Qt}eg1<9iT>Hh=J)6g0^evBn5mH9)&Y6Xsq_cb95ZF5z@zW!O&Yp5t4t)ls zYug%OJOT2b)bZu99);j-iDa?}T{`tv;#W49K=hkmZnCuUkM!S({d~(!wM^T5KF-nX z`-Jv}$b44N`+R#|C+biKV`Ae4`Kax1>$;?ke2E@uS^GelN1PjV^(c}wLy-~48GJ92u1M8}gP1%D#OOx8jJI8`-55o! znn9iUMj2;u>c_jUj7j0uh=i;D^UJVR)8jbnANOMh@9pSxI4#v9*j%hx{gi%jEq$zuF*r(w-s=qxkieXq z-zr1W#s%oGVnyu;Tkds_K09RE>lQFD8NyUnyQDo;pc|QH^SOGoVr&L=_ZG}mr>)!{ zRLgLD2iCX4$(O`Ky^g&@F!u>-~Rq zn~%QO?2?qwW|DTN2isQDA0nm3S=e$x>I^Lnlg&RJA0e`{&pVn_dwvL>i_2DPAS(+q z#-|*aR#XnWIqtrIxjxXCqp-N7H8&4zl{#_XAuDuAgB;);N$l?P?iqmXb96WtCzv=b zU7eNGWVyU)yIgDJURoJoz(%SO${eFe(jKW!@8=E-Zw|#m?upvujn7%Y3(vq zlye*XI2IX{5pN+W*xNnyWoy(?*ksS}ed8gSP;cs8fzwuPAv_WPnT^-?@oY*^qoXz@ zK`lHo#5Gvy+a#psUuhhIycG?>loG)&+}?iIE?jtAk{pJXuus1rgf-Z$m>+@)sBB7U z?2U+x$NBU-EFY3FdkTaNTaW_+Ccg2NHNpAPnG@{_z2;(SrO>)<=RjC^moUy=@#)J4 z#kB8EzmKGuP<`<7maML9T{qzT%5WwIH)bGEl=|IXy9?rwOk4s{Qo~ zJ5l-xCrE^bT-T;P4Q6jDSAL^=HSBk_5PVBxj{C(9(?FhrB?v=*Ou7Z8IYnd zmlT;k>3+ejo0e&FJ5;DHXGLp@pYieQvJD@u>iNb8{#(C~O5Y-rCdx*K$L;v8yd0@V zmR=NOP#j+H%m-*EW@V zK$CnP4wmmfYo#^rOBHB(*n zv(}AmP_~fjqi|N#lEp`js7(_x+qH}uD&Y@Tri-}We~t+$m)m;lh^0EA+`M?!#NXM3 zK38kztUln$9tFJrvs(@UX&PdB&UtYi`^%l87#ovfSUHMBw&-5k5&dbrC5M>u5;Xa$ z%Ww~7owk}J;KY8^l9x^`UbA=lpxDbmP>oPiVqNuwYP$6L?*>6}hvChcx%_81ZC9+v$) z)t5lXfK&2#WYpI_1I_>2e^c6g}kZ=f-Msl#j&4URKnRWnmUxUHPepdEX98zKvFGdN(K8 z%11JPPKM$BjD8Qwl(6c5r%$C;q#LHRhnt>K7)4QJaP%$zJOn^3zb~|ln>dNde34k; zj(SIH4$7k!;g9)EUezc>W2P@ZVxI+SBk?g?9d!Y-&1KJu>OYUKHE2@ACyC|LtZpg! zqMhlZjz+GfQJl`%&t{}~`#6E-PrD(rqe5`82U#>HHTEKi6_>wfc`}Knt_asAzsUaL zc9UzCqhH5He>z=-y6WN}TT@$Db*2I8`e*!A9F-Ng@9c%n%ujQ5h>5d0Gr`U>1#;sf zBn5}tH}~$6PuBreH$Zhs(x0Llb52jU-y3~?05A5L{=$hKG?3o;bEY3s{9~8>k0Zb%8f%8< z=bc`A9+T4Cv_C$n*h$^$Bj=6mh}|>XZZIJP8@28$Z~oweSOvI-3dNoh&$ZHqkb!2D ziA;2fkK{eZUS9;-mJFAN+$lIN_Ya>EF1lTY|6u4y*yo8ih1ayOpYqM|tf745={zj4 zl+&vTK(&VP_^%5k4X^akGiLXa-ec$yoXTYW4sUY{5v!axFK{d!ccaN&1Kr04!@bL7 z4-j%qwzlk){qOy6ll>rJJSj zjV04Zu@Do0OAqP|m}!1v=qElsedt5K<+O)+ThmXl9dKQe4Qpzz-RU~3_Mx0Z=8m2A zZhr%DTB6$XVSYyTh@6I*tl=jEt=cm7*~Tae1Z1j&4%$CKe4u2J@EgX;M(IeT{Aeo@ zl>$rgHOU1w&>E_@tu+mndroP`BvNLLDckI!gC{K(Lw~qO{Mi9In*+Csql%`huRxt( z-{gJO+ITeuBPrMvMz1f3^1mX)zWy;F_FGWD<`=i27v@cOvCOP z>nH<9&--&NPqUN2Thgy|P{X?xg9zILsrPDNgi8Hq)8EuSmRNKun8@TD{S?&19>= zC>L;SeBjDF{wzz#x;I7GYx|>zDaFOcMbIlZTioFyuhZQ)iufxpaZ4-5{+X^+;hUYf zWp6XHfzJUbHS$FeP25l|2fiO`mPB)9fbm(^54fnP>Am%`hlBh~nLFPr>S9X#D!kqi z#JV`EOL*U7+NwL0$dFuS>D zeiN4Mf+RP83yajFx;J;fiI_#A*H8bIERGb~;?w^!_|74Qj1Kb=MeuT!{3#O%cAff7Mb{x38pka1{*2Uv>2|l^) z1U1NUNfzqG;d`yd6xvFXPkxWzcj#GZHh<*?F^(?_mdt*(k3 zWWtJ(oih(zOM>G9w|;X?xnu37Y8rYQ|M4phy78Ys`8~O9hiidPZF~o`N9dmceodKSdJ{>j41I%rgmy8-%=qh9W5>Z|K< zfJNXONBID?K}qmYX@u5GXgctVX3Rvvo=Y5@tCXhVQ}zkOddn(9WC}(6gDX_6MP=wV z|K8X4K-2s`eS(3Sj7n{2Ueu}gl(mx_W$}|lhFFZW?2x-bS!JZEK&5)?IN)I7=!{AR zLlj~>RNnYfY@zNO??88XibYNYx4eNl|7}4oskZB1RuR_g9CpxuhS0#=Sd7!yBfdi~ z;QFLqvorsSvV?NG4$@{Uh=k^hzSPm4vu~O~(&_BIB@i9Ule7i?p4RgZDDsP`J8ACO z%l17}z3EMfrm4AS%?qYgRdEIF%_{>`1mog?cTZ343Q0ShDDKtw1@_pSV@co6HIy9Q z4XcJlNoYIk5paNppnEO*N$svziD3PSm)y>&T!{2!C*=dI*;o*NfW-XyfT>0Qkg_>N z@ZjQ7vW5jC)^Dze&&ir4A+GsY)2Ne^-TQY6q92nyDOXrfXWcOSlqFCs@<_H^Sz%~| z*1C7(%_LKkD&`?7KRus`8=ICaN9yCvPZ`qOdnKJ`qx#AKujR?W#KA?m;0CkYJHSK*>f(`hg&JD&lIza?R39w1y73Fjqqn(cEczVxC0X@Cv&p&$lKC{6m z7S^n(%!_BVP1?j)c)|zGB@MCIhE)E9@y~|ZRbG*E3dipVW89`18U|%-6Mkwikfjg2 zz9|fPSlC}$_#$~}+G?~^nVter;3M{J8vlu%d;9hwKDqh&WSN6@Ba8eb6V1}hPQRh& zIlHlqe@g1gKvdz{C}295!fa;&ODk@a)}0eq!W3;?m#6uA7xHREnZ6V`;O)!jfhdX* zIvN(A5DVvm8<3`{DTU7jOz!xwLN&pMnCc_a+341#hqSfVPt*}U=2G__hX}YAn#U7Z z>oR0?*s7B>Q>Q%)(IeZKOb-MlnXvCy@&0;WvQf}#GRRsl{jtA1)06<4vq=U9W?x=s zGg;ID3y2RVzwYg;3)k(4bM=@1ZR=+S<8|)W4tVnL+|_|GJokAKTBP^&6B}w$MpnB}7(0Cj)(Qg#jKoA-1eZG&FI?TS)vi6?p@A7+V3AnkWGzA`sxjX-O80sJ zsxra@M!OO^5K7tijEPH3t>ERXQ{s^)khitZ~rqu%nZ8ceNk;ax;7LrkP4)6xS6QC-N=(S z!wFr$zZlpheU26$@_#B-N$#76M_!jJy@hEMFrTCzXs~tsdNhz`{Ed;luFutAH%M_B zLmwde#I>n9)%Ac!3y5^;(wBv*MW4txt}}jV0FgWx8(|S4m3ga})h68rV_yW3Eu53w zMa0OZ?5@pGPfLEg8n@5eL*DG3wa*Qj(d^DMgA%Unx1ssIt&*ZxAT`OLgonv_|KtS^ z6T2|HxnAr}+#0=+t225Xs&0G;K`bd_uZ^Ak1-CouZn@THA7Pkt+=vLV3hi$6xysMp%->lBp zCiZvF#Ur=XTv0a{@KzQ~Op@PDCz6f-(Z@MebI21$4&`56Cw)8Rxz6wlaGdL19!l!A zwYW@jyFs%@%>Q*Ho%He5=amd)Qb5VbCG}J!@?psF0|-+f^&-vTf##*QOOw8pb-qN< zBwMK1>&SguXPVaQQPQReo8TeNbUKwDQn{E2}$4$W~8l z9t{3lkIBIFLn8z4hHv`k{HTL``74Y5rS_qKkP){0^=?5Jx>(c6_;UQ+#?DSgj%72t zdR#uKA2NSY%sk_H-PN2I&>p0 zWM8MMU?F3!R@!Px1mY8JUV*J27d`Q6Fk0@hkVNr24O;9?HZ{%su3uKy2(Y*o2zX`! zX5+T!wqjGompjA8)#@BCiDYlpwpT3Kr_JP6D{Oi13EE*dLOvgKsUfsHh=lLhasKfD zBpCjqxa^>GGcYhaO%=XPD00pqum zxJ>!eJ-uq5996hU@MMPyfsT+j;ch;Zm0wU?jS3n2nSZ}p=|O;t@6g1p+a2^Lv4nd# z_RRUH^*8gBd@l50$jJWE?e#F{D17Ketq_y>&L^q3Wo3-}bvZa3+5x-e5KFwH+k)1fH%lk|~u`f)(W3{~y3D|W$R zS`3asq};>Rnu`$P)D{y}5$?^vA^IrrT0;uvcs(HGUBNhnI%}suI(SOnX{RQ~MeAjr zGKrkd9~{zm|HJ_gy10gVF+*kSbvy3 zqA12qKfdC(g_~)d8zc+Rso;!%@aG~luf#jo~Hjo9K*)%)dGUoRB9jBUl-!#iW={Haa(A@>xsN?`^`Had@uY?F_z+snp z9UeKi#*%l#03*!h!?DC`K#Gz7yNLg`>@m_ajH|hcp$=sB?SEWjX@F$uRu(=*Gnxqs z2gjJOodqcQ@FzTSOHHf7>i2H9SRghYQ*=bYjU*a%HzItbhw>h+=vU_3x+D8F!)DQ7 zi?M(UEU}u*+(I3~gY0~k^c#-57WgM3^FLSDIM0oLOGmW_qs_@?8D5>c0@;vi>;uEC z^L{f%6F7x`a?yffw-Tb$Y$C#MYpr~o9l3P*f!1w(aWm*0-oxjAwO0SUp>$OcBN^|P z2hD!ZRJxJ_+z^D`BzHeeN+Ev43}6_ex3fhbtTxGF{7jx(D2&oQ4C5B7y8aOFf8T(G z%%ys7)ng5l;oC!yE8JG{&CPl(J^3*1hwzQNw0{n6|6YLMv;{yz6a4X2`p?w`1QGtH zEAh{3|37%;y#Qbzt46pLk2WBD{a;tyqhe@%eq-+E@tX13C!Xes+gXgiBTj&w9Zc^# zS=qnUKPv_N1O5>OQ`^bOO~wRI|J>&qGJb_Z|3`;%|IFL!flk$d`ce8=^wP|sqi6LP zCm^M}1KclZAWs)~j>!mf&u9)ll%h4(^~2J5AUVHsfXQ8v!$ZK6rvE$fFd~E@>iNaR zo0Q_}sPHBUW8qDXtcw)nTHEQMpQexB^U*CNug-%7?1m&T3Xtk{vzIcm)KF?SV5iwJ zh+CY5ZEOSXxkx}i{EyHA8#jB?rmpa=lHVhU?nmmLeC*2N&;5;lNT!ati|5NR<6*tz z@19S#4^K`0>#uuw^pE}Rc`AwQ48()z+O;6O|E!Vsk!zQCWtW{x((8lk&ctnYiUwgO z$VtU)V57cYY;8x2gPnYoZZo3>LY^?Mnu~IJ4OPcfAftel+R6#sH>lNNG_d{$xxn!5 zXKC5Nlv}c0XiW&EL65w9iI=n^H?WYAM*%ngtk`Y8|LaQw;)kFD7L)I6t!@7y(VgAR zrU?PN*x{5g_vb}U6SawV6bvyE=K0PRe_AADM*U8waR2ZeKxwtF&BfnH7Qe)~|I@Gq z=6mU5poNrWGcg2Cund1pQGFcVm;xGf$aqpo@6debnRXiGbW=y`kGqe^A{E?TX=|)> ze>$MQfOeO$Px(J`_mzT$cR!5{p1YPJEyt~^VY8rjBC24oWz2nOXPa>WSRreh8HPR% z1x7<$p~Xz5Zd*8BboE#EnY?jfK~0a}96J(`)j=MoFD!2$0oEOBm+>Ns@U};5p*git zv!RjxeRYeMU>wL4V`{n$^muf#m#mE`IhEFU_q1;#NAM6_pyKI=#Ut+|r;&n9@#ES8 z|G3*ScS{~Ts3$i}%^@EZZ^~?-fV05qj(uWQy^>mREuF|F-DTse6ZwLo!IdPX#P1ui zy%ZWvZ?0Z6S(f_s(M7J#oYXlA3<0Kgb=KvW6%rSzNwm<4AbJJ%|1kHKVNrM8+b|bM zNC=3CbSWjFQqo=0-Jk-}42>{^ASFmi*C5>>odcpG&Co-Sltb450}RYOgV%N6|NB1P z=Xu@_@0XVka~%98ezDhHYwf+xb)Mq$1}ep)ATBi@n50CB{uWc0v@SCJUi1cjqb(J) ze##Mt3a$UfuffSiU>tPE-tyX4H?kM2VPIMkC0^cL8g~}+>?uUY2Xikfo~jCZv?2Y~ z`A%IP;cr0gM}{q;Sl}p^(Xwr(pI>8FRN19i&tTrtYTKKjs4Ud?`MyzWEQdabHVJ{> z?KgZeTo(qr9mt$@&43F@i!(Se`NFVvpwKPtk5pVlrnJUyB0xwO*Wk0ad!JOhcO=#& zA}Y&0djn;dZKVk?319t_t{8D~aQyzmmbn^a6<3^dJ>M2k`7Aj0C24K%9TXNm_Q6x? zdaew?E^A?m5HyZ{O;{>GG`s865;h>s zQ13(%sF>l&;aR~{mX_F-O3gQaKpOjT(8kw6= z23uLJ>r%qmt@HZ(w#9cYv56*|Hq<0edaXsjW2^4SCD&!PYt}$}S|WRs4UY8ad+=+m z_X4OS4iTA%uRfjPnV7>g(>hD6T&+-*KyZ}7Z-rs_#0ByvdYrJQYEwAIwVaSy}FnsIFJu+?hs;G zIM}zZ%rhRBDW+5)sknTSb$aGAaJ12jtzEsiS^)a`H8OFemb%>9%a4WQ*Da@f?}d8n zJZZ@|vz~x2w`bFxH0@3!BPtm*0y@lpTxft>4YZZwf0}~)J{!9%VD)pTx6;@4ON+Uy z-3G3EkHjUmHnsH0#mlZg^}lEDD1@Zo1i9o|2fAfi7x4eyanaVDT{GkvkHhprYl@qnN>CuYb6-7os(R=2wm!L!f{SMx`C*pAEz^foh)?<~Wh8rSXLX!0h#Wquv;<53f1dS$0=;)el zw56{oYG?xEb^@wg1qcXeiHhaf{k4pkuhDijD9`J;SnWsx5;VsK*3S5JwKx{uX{@-M zTB03p*jI>WEm%i%MbV|145bOhcw(7H*euVQID?~RA#df*yzgC1boJhPm8SomYcld~ z6Lzb8pXooGDC`*?&!jTc6-sGKUoJTqkkzsuDqJqj$C?~=6&sCogQAF7zf;* zf6ge$9Gw?0$s^8^*2|DLNsUFOZ8*_2dM9Mb;+eM+DqjWl-W}2}$)=w?-}7#=A{Y*! zD-V|uSk~e++rD~sA6g%Y(1JTQGI$5iS>-8l? zmzNpMmC4s@(h#GKZg>5&e5EfKNU<>6_EvZdMKJ&E<958bL5S%_meD?5=WmLR_%iWQ zx}@mGOAF0?>M8jX|q8~R2`fuQ=mGm~YYYOVAu$OEjrQq}$U1xmJ^XC(E4mp!M zu~ny(4Gsqv&Qo3b_`2uw>po^=1;-iJ(6CDa5iHFlW4GA6ii+_$nc;D3fCIHm?G%Ny zigCR(yyf15%9?exPTqQe1mhaslB+RyT9E0YDrZd;>=wVZmKTTV_mHAoYq(v~ zob%$#cIxx;rQ@vhTs3Ij=m;>U=Hfrbq?%60#zkcr*w9P;S5B zi|&OP^VUh)wJU7J2pRkyZyk7J^--Oep%wN92kmsa{K6-)t$S zNCr#gbXnXxHFV6Ot4!D$YLK3eUf|{nia(B-`YZR&MO6}%%GH}c3EZIwD#?ZTYu@(B zoP$FxpnIhf)r*90M_7IR+XnePdB6Mbbvazy%^+o+mY48Pmv#$1tQ2t(^?kFU;8*)8 z9Iat}0;V<*nYd@f@R?o03fq4B!f(6t$<^Q8ROfN>ehNxoSRI9^)1Z^%STN^rR{6_- z%}u&sa|7Xf-rXZM%25onn}NwQcRoaIe1TeV_?_?MT>N~+pQgwtgI@}7>! zMub?cn$%8?Po~(JhhpfnB2DZM8rMX^~q`8#2-929u6w_!<~5$amxyBUHd|R!Y_K)r$>$s zJ(}3_VXILg5PAFrV8OW>(1U|*1QxExrL?|^Lmw{~JAP`qNsJfEojaM2@8A2gq+mNO zaXjg3&$^oIWXwd&KE&efm}Y+KF^(k3To$6>ADMCw?-$T%tvEykuupXw^1`e>lBRx- zqlRu`nPeDUH~Y)Kz~8C@ypzZnB;Rxg7wVT|v4K~&xXJ7W$V74oq;ADAN&loLlsqIT zdzz(eN)?qQS+*`(xhLvygYMg@_6L-GQf0q%$Z|l2B|45>r27Wft}L77N#w=c*Z!nH zq(uKcjOvFnv=kcWj%T@h+86Vf1X%VkHNL-Sees-nQuV&;^F~PFPOVg41WVM_C*-XV zt@2p4jm!xm9t4+x%!TIFx$@Aj!$&{4bnl$mo3B6Mc6?E7o^)NfabL5gWXJ9amz_3K z-q@yV(K2xSIEG;|n7@DLslrd%c0X#QPXD@9Y!wtD4);=WmrTdbQUUeH$iJ+-qAjgz z>b;6JCpKu2IcnGc3}ckL)$I3Cwd1$#(1^9bV~Lqjm^-L{WmWNFAe|`8ji&}PyWgIgITkS+us>kM_`5US9`u-*@6B_LeGf+{b+_cRb4-MW z0?8iDg-R0T>2##ZU<3~zBJPXxf-g)?CEnWLjg+nVvzJW?#^D2iX)^W3=c8t#Nm0G?X`uOAC(0sz@y zD+XZ5BWi-QZp8)iZlwiloxF?ZDx=q0j4DMa{H3*r`<;I)RzG<*P*(w5C~F@Rn)+Ds zh)}$@{=U>!Ii24kh}Zj$_EdQkbO26Z0^|=Le~lV-p0c8H8T&Fo5WU>>_3b+Oy4QPo zY}0sVEyQMGT(P*GQcqaqNU_=z3~Gb|xV(hIZ_TciE)1Q%oi54WY{sJurZZUHJlUyh z6JUC)1tCjR(HA+goiQrRVE|ebJrYXdgr`f*ImI&=an1L$^*t4(@;|O0cQ#Cnpf8vh zt?g@Vfexv?I?b-A&j;UN{cI{fs9y)V3oDmQ$En&B?_BoPmR$4k8Mwyv?d#i(w@(xE z@-3^9*()v8AIlXhOdW{@i?4@6`WUH#Nye28I))Kt>lEoK?5Ue;@T=(erWT@_U*7M8 z_9LlRL4zZ)IqY?k`gC%JV$ohZkw0?8B=4!|B@iVq2bjG+qufgM;ynysUG|ms|JbmK z{@vIoltPeJJYC(7#v@Y9uwgc<0pfhHF?L^~x+uo`t1fO?c^ga<@9gR5$HzafFAats; zgJc^>1jpCDwR~6r@?!IoHq5&Z5lgZ^#wT_y`nv;CgXd|Y zBq0#9-P^!%e*L-(Lt+AP&b=e72x@(UMpHxPW$8K*$~(z|%&zrt^8^ag?YUF#YYYuT z)vp86$L9~<51(PkemoUz(s2fN(6Hj*kaj0gM?XI)B9^?$k2Bi#>5)}@I*kn0vJOPs zU;dIOZ1Tf^q_3|4CtGbV?4QW*qe^9lenl>JArns01<=YN&#Uq7>_}`*3P_iBUu}6^ zD!{rYx^rr%hxA8R_7ExoNN;*Dim-0a8m-EFrOQy*5ogwMflU}YfO*4QWIju)CadSx zf&A#}hFL&&NW9F6@7RaQ?n0TX4Zuk{Xns=|-5G~I>}4*WzQg9SbGHx0I4va>!(r$> z#{7IQX!W@!tR6*ll&lq24Q~AVA zF-|_9qRe>D5)N}0-nmN$OBu$a?Bqi}f0`We``%v38Pm=smNF6WIn)wgsQ}Quz4G?0 zOlDuuRM%wIyD5Fy4b7hVFH!Ck8xVD3(D z?%Z)Hum80cpg1qkJf&Oi*!l^JU9=K5I{squjPXr>#n+=0hjw|pQL+z`T4Kym2>B~| z1|DbJ)GXkjVfv>*!6r(fMu0ZS9-Kg~WBi%Lo!5Dc3^{cZ*s_Q5^*D(7^xc71U2f;^ zMxomud>+?huoA7fgyv>=ea&>P5wpqwb)X$iKzkGI(79b^b?#kB3L=E!>Sx}mMo z^GN+4=hNPe*^sr;A)lpCyAOZw77Ps;`l{J|I?th;=pxiZ>}z2cV3{EO>H(*9 zv3dxaK4{E<7mANdY2LmmV0{JBx`#q}+Mr5Te!kV*r(X^}I9Pug&wDS=?tS-j=qn$7 z?mY%^)x&*$YKQ(HlVYR*O$B(*4|x^WwYlFUD7t;*e zLp+_X@d$;7CCRn*awU;}Wt|+#i%&2UPrUW-&&NrnnoqwGX{st@Ft(XVr!>jUmAo=?X5i?PR-ws|*QbLU|M0 zGkZ^4=!YpWJ8suH~giC%+&_U8W<& z8{cWAsZLx7eRGcqB^7i8zX5gRNy;7sqs1)ezwIm+gi!XK|JtoxA5;HXEE68~5SvWV z+@!(p79REaj^@_<^dnE03$fN;i%nQvu?!H*Eb=dEgVi$QC|49MV_g{zvXGKC`qxU* zxoa>}Jl8}Svm;jB8GI3PmO6Iax>xO`6h=&&!=5dxs7Lp@IrD7Ld}{f+_9RLsh@bNa z-H5`WHr#%{>s;K;FKxtZ?e6_B6Dp`C+mE=c%7NQas8%a-vm zdH?}^TLs`-6lYr~8Zu?YiuS$5rUyyVWMShb%io*6j4-f04bxFj_^@X^zN0XuqtjhL z1-*Ke?#WzZ_*aZ;k89~j&ejc~){UC@--Q9}YyV6?nIh3+F|Na2*ws%@svL&^CGuRM zWDyUWOY2~jj_Q?E(z!9F*{%#_kQGEg z-+M~J|GFG3_1?O4dD;SCk7jSXK*k-L@a9$iM0Q_+%pNa#ag{}$!OHz9tM;_7?7`s2 zSpHYg-$OHdsecmH9lc?_xpwH2y@wfA5Dd~{ZZt{OQt5oiS#6YTV2)+#HLESp&qWs` zV4@mkJifu3kP(#l|8;uoYKwGAgU75Z$I8S?V=`xlT88EDA+>aRSCGydxN5RL-H%K8 zklBYK)fp|;T1xFI3Y|{vC-#DBJ_g4g1@MTZ|Gt|by6FCoOM)v}v=c&-V#y^^7Z1Vi z6QCkGmjBX=#FlJsV<~!8shK!pqTDapoBBw#@xT5T58O>v><_;2pP_r_^8f!McGS`R zA)e207V#{Q0FnQ?oqU!5Pq^1#=)~@>hyW}rMMwzwUdRl1L^Ty*@|R|&h-HRi;SHnL zfAEI|EXX!9(jmQab@l^kB@g5Np#}4*rf2wfspviTo}}2LQ}4RcIN#yBd2noe2633N zL+AXT#PVQ~$*3`>!P|QwP!fyep}n-zz+AUa;O&YgLK|y0I7ZH!ouzOVW3dMF&frg4rno{-x!{V^ zK{Hao2(T_hW19rTZLsuFSs=4HRT>oPZ>p(|RGz;5Q6?;SO=Rk8(M*%u28e0Cb9&1C zM&WF+j4tsm9wpKy_kq)vKb`9d!{yJdjz<)f6!g)pQLGdmkO%&u(Q;|$OFcR?tjePa zOGCNA8n9sxKEijv8}IzDHg~6o4{n4G4c34=AfAdU6Q%$Z@DJOPuu^`ce=xh}AD*Ot z(=2JmHQH>*J4dtkng3D)=ntOUnxqI+mrN+(UC<)aT($T^!*q+Xah#;w+rCg$g+zGQ zLNns`9wrg13|7|N5;4dKD3vjsRHoT6p7iUqD^z0IHG)^cG>gx~Gy{75AMY4u%?uAD zgZT`^vm6d$wyYArcHKv`r2CyNI1VIC(YLL*=B5c%M2=u7eE?L|w@=KX9f|HPoMrtS zYyDZ2A^vJ2xjP)u{eefb(D+Y*YU5(Ood+)bk*Dg@g&B&o&W#a{r>w zb(UwpL)J7_C>6UMrJ8lVTv<2+a`rw-+*vj)C{O9_4r)}%A{74~t?LY2h7)nU zS>m7&)JXabE6pGSPe%0q+F4XpKfboJ@WX{~G!7or{X$M*yA|tv%wG7vxix#*S2N@Y zD=gVRM@4mGc2UYNP&K5B&;rTR08`(8mB`=*>lgwx2qP-vHVkqla)nIK%?}GxN)ZLW zPjlM*`T?%?Sq9@uL=sSaqhfd2&qkb6TKFU0nR)t zW!7Kj4O*_S%6eM)vCFX*E0}RnDgD{-^)-oew&U*id~YS&3{d!*G!}{NVy^E01_p?B zw&sfGo_N!&c07V*NC_j`4k(fCfpVT%wq`ONH)nDkUy@QAe{gLMl0|%jx}eV9@FZ@b zpT><}K(-id@X3ac5Fm%NKHdPcl(?2WAKsm;^cwM9$w-aDwH)>I*efE^g@-dzOOJ*$ zi~FY7^#yQ#Y29!^{%PlUa@RC&%5(8pTG%_`yaoC+vW)?KQ)pW$Ur(Gh>WauyQK~Ip z3FQ}=oo z37f3%UU=C0J&X%=Ug_=tmfeseZEtVgI#__oO^buo$X>drfwyiSF$jBm`OlMmX~BxK zmQz^;C|NcBU1~GWg(besIu%KTl?e+dVpVa$ljGxfu6C#YqzI+ za3%(9p$#*$H1#Y@j^`9*QHo0eM#jN@I>3kpEYwT7l zRkIRIps$5+4}SFl2qptU103+TrYu;crmVWNE55^-1ty@txb}Y)6}K%g3;SZi6N8-Y z2b{Oq*y4WNM(W%l+*(hxkXnD_WY)Mah`gZ{Tw0=@mUIlL};V1tY zA4K!2SOIRFnjP!Rkn>$sjJRw1BN_8)sRx~->y6QHx7@e)&rWqJxzZVP(yVG0GHaF{cRJCAhqgAN65!_x1G%OL(I-i7@bB_bS{g&BFv{X zYZi|EO`&DS#eLlgd(PO|cyfG>r4FicO9HSZY~;|cg5YpsnbHC;+txgZzf}cEol5Fw zY8{Q&j2ja$Qo*rKz1=9Y?t)eB5|3a(YQ|MNYki+RpZT{I*OurjwmLU9YL_*LsAIEm z734g|JjqTs!r;sM7F3qgnRTgWP<$3ylhgHkLPwmliVAZ!ZJMJRI&Z~W<*JNV-ePa#V)k?jEil2Y8t#x!!WWt#Sjj?ev z>zG@p#nP}$Q8;vYIq)aGWEWWdWCykQXi$?Uw|A6g)h&*2Y6Jj=aX z+>T*fK~6#7U5~FJLy;G0Jd8N6@atK5=-kKp%D+r7L;)GyZR)2@K0)G)OP;Eiv?S13 z3H9lDJ@$smz+J6*=&ucIa+b;-VeXvR>TEf|UJK{+3B4;vWJnr8mqXeI1BRq6eqOz4 zrOO&v;4f!j*eIExA13i%Zdj<6gcKIwz0SO2F%a~;c35~&Ho8neefX@>(9+CN+Wh`M z@`&ao^g1@Us*7W9=!S;tOMPSN?+%?mFfE0p$i1+Pt_)dRkPXsmgM>R|BBWOzSlP6& z0Ka+b2#Y?^`j;eQNh2x4;7>y|Lp32*zCb^e&ybwNLDQ06*dQa)@Rbpxr4Sr0UW72N z8M4%p*sd%))V-ejWF#F5lsRM|`klS>xnfXgpD9ZT2#IwizlZYYoalr8?yBX`*>FUj zZNIJHwY33T<$Z?&K=_V!thFB!?1bgvp4V{uEU~V((Uiu1`}*0LTZG{`Y(7^fvf*Fq zKLqRrCfikjjvTSgz=HEt2UHMaW1Eh<)o@=a!;p?Vgri+ix}$z;aOM?Ua%Zb3R*EA5 zVQZ-u8j~XayGnp|YOC=e0VkCJGnau?8dM76Vc4lAk(6KyB}#gO5@X$#A(wIJirsaN z0UDLtI|nl5nLr#V^QgKdOwQX16KGYf|1xY2$9o+~tmyvzjC7J@RpK?RD1Y~OaR9!g zN2C$>;t@4ODD;Dp5Xz?xts@}yEw400R(SQnhQMaa%0D{2O$&E+_H5RfidL_!bu&pF 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 Olf^kWtnSQ}`2PYmhzQC6 literal 0 HcmV?d00001 diff --git a/vertexai-google-product/images/create-new-project-in-vertexAi.jpg b/vertexai-google-product/images/create-new-project-in-vertexAi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03551240d7079efc6a40ed500996f8d5b52213bf GIT binary patch literal 77834 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
DDYKd&()?C# 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

E}Y&8)88 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Ý_2seK1EqK)9DrqCyzW->w0(V&GF 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 d^CGpQBPWp|n;%{6Bij*>Pfok5dDu?6k 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 literal 0 HcmV?d00001 diff --git a/vertexai-google-product/images/go-to-setup-IAM-Admin.jpg b/vertexai-google-product/images/go-to-setup-IAM-Admin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6366fe91aae83c58f0db8f99775d33797d1cf222 GIT binary patch literal 57073 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 literal 0 HcmV?d00001 diff --git a/vertexai-google-product/images/select-enable-apis-and-services.jpg b/vertexai-google-product/images/select-enable-apis-and-services.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f458248cd421bbbc6ae3a69a48f2f1b8c26fd49c GIT binary patch literal 33672 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 4.0.0 - com.axonivy.market - MY-PRODUCT-NAME-product - 10.0.0-SNAPSHOT + com.axonivy.connector.vertexai + vertexai-google-product + 10.0.19-SNAPSHOT pom diff --git a/MY-PRODUCT-NAME-product/product.json b/vertexai-google-product/product.json similarity index 80% rename from MY-PRODUCT-NAME-product/product.json rename to vertexai-google-product/product.json index a5a4b33..8cb3d2a 100644 --- a/MY-PRODUCT-NAME-product/product.json +++ b/vertexai-google-product/product.json @@ -6,8 +6,8 @@ "data": { "projects": [ { - "groupId": "MY-GROUP-ID", - "artifactId": "MY-PRODUCT-NAME-demo", + "groupId": "com.axonivy.connector.vertexai", + "artifactId": "vertexai-google-demo", "version": "${version}", "type": "iar" } @@ -28,8 +28,8 @@ "data": { "dependencies": [ { - "groupId": "MY-GROUP-ID", - "artifactId": "MY-PRODUCT-NAME", + "groupId": "com.axonivy.connector.vertexai", + "artifactId": "vertexai-google", "version": "${version}", "type": "iar" } @@ -50,8 +50,8 @@ "data": { "dependencies": [ { - "groupId": "MY-GROUP-ID", - "artifactId": "MY-PRODUCT-NAME", + "groupId": "com.axonivy.connector.vertexai", + "artifactId": "vertexai-google", "version": "${version}" } ], diff --git a/MY-PRODUCT-NAME-product/zip.xml b/vertexai-google-product/zip.xml similarity index 90% rename from MY-PRODUCT-NAME-product/zip.xml rename to vertexai-google-product/zip.xml index 003f06c..abfb89a 100644 --- a/MY-PRODUCT-NAME-product/zip.xml +++ b/vertexai-google-product/zip.xml @@ -11,8 +11,7 @@ . product.json - openapi.json - **/*.png + **/*.jpg diff --git a/vertexai-google-test/.classpath b/vertexai-google-test/.classpath new file mode 100644 index 0000000..4d11c33 --- /dev/null +++ b/vertexai-google-test/.classpath @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vertexai-google-test/.gitignore b/vertexai-google-test/.gitignore new file mode 100644 index 0000000..9b0d458 --- /dev/null +++ b/vertexai-google-test/.gitignore @@ -0,0 +1,19 @@ +# general +Thumbs.db +.DS_Store +*~ +*.log + +# java +*.class +hs_err_pid* + +# maven +target/ +lib/mvn-deps/ + +# ivy +classes/ +src_dataClasses/ +src_wsproc/ +logs/ diff --git a/vertexai-google-test/.project b/vertexai-google-test/.project new file mode 100644 index 0000000..176b4dd --- /dev/null +++ b/vertexai-google-test/.project @@ -0,0 +1,49 @@ + + + vertexai-google-test + + + + + + ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder + + + + + ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + ch.ivyteam.ivy.project.IvyProjectNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.jem.beaninfo.BeanInfoNature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/vertexai-google-test/.settings/.jsdtscope b/vertexai-google-test/.settings/.jsdtscope new file mode 100644 index 0000000..869c01d --- /dev/null +++ b/vertexai-google-test/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/vertexai-google-test/.settings/ch.ivyteam.ivy.designer.prefs b/vertexai-google-test/.settings/ch.ivyteam.ivy.designer.prefs new file mode 100644 index 0000000..da2f976 --- /dev/null +++ b/vertexai-google-test/.settings/ch.ivyteam.ivy.designer.prefs @@ -0,0 +1,5 @@ +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axon.market.test.Data +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axon.market.test +ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11 +ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=100000 +eclipse.preferences.version=1 diff --git a/vertexai-google-test/.settings/org.eclipse.jdt.core.prefs b/vertexai-google-test/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d4540a5 --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/vertexai-google-test/.settings/org.eclipse.wst.common.component b/vertexai-google-test/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..c9d0182 --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.common.component @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml new file mode 100644 index 0000000..9b4b9fc --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.xml b/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..156ecdb --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/vertexai-google-test/.settings/org.eclipse.wst.css.core.prefs b/vertexai-google-test/.settings/org.eclipse.wst.css.core.prefs new file mode 100644 index 0000000..5ddc6bd --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.css.core.prefs @@ -0,0 +1,2 @@ +css-profile/=org.eclipse.wst.css.core.cssprofile.css3 +eclipse.preferences.version=1 diff --git a/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.container b/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.name b/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/vertexai-google-test/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/vertexai-google-test/config/custom-fields.yaml b/vertexai-google-test/config/custom-fields.yaml new file mode 100644 index 0000000..aa19ae0 --- /dev/null +++ b/vertexai-google-test/config/custom-fields.yaml @@ -0,0 +1,20 @@ +# == Custom Fields Information == +# +# You can define here your project custom fields. +# Have a look at our documentation for more information. +# +CustomFields: +# Tasks: +# MyTaskCustomField: +# Label: My task custom field +# Description: This new task custom field can be used to ... +# Type: STRING +# Cases: +# MyCaseCustomField: +# Label: My case custom field +# Description: This new case custom field can be used to ... +# Type: STRING +# Starts: +# MyStartCustomField: +# Label: My start custom field +# Description: This new start custom field can be used to ... diff --git a/vertexai-google-test/config/databases.yaml b/vertexai-google-test/config/databases.yaml new file mode 100644 index 0000000..247b128 --- /dev/null +++ b/vertexai-google-test/config/databases.yaml @@ -0,0 +1 @@ +Databases: diff --git a/vertexai-google-test/config/overrides.any b/vertexai-google-test/config/overrides.any new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/vertexai-google-test/config/overrides.any @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/vertexai-google-test/config/persistence.xml b/vertexai-google-test/config/persistence.xml new file mode 100644 index 0000000..d6b96d7 --- /dev/null +++ b/vertexai-google-test/config/persistence.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google-test/config/rest-clients.yaml b/vertexai-google-test/config/rest-clients.yaml new file mode 100644 index 0000000..8e85296 --- /dev/null +++ b/vertexai-google-test/config/rest-clients.yaml @@ -0,0 +1 @@ +RestClients: diff --git a/vertexai-google-test/config/roles.xml b/vertexai-google-test/config/roles.xml new file mode 100644 index 0000000..59892fe --- /dev/null +++ b/vertexai-google-test/config/roles.xml @@ -0,0 +1,4 @@ + + + Everybody + diff --git a/vertexai-google-test/config/users.xml b/vertexai-google-test/config/users.xml new file mode 100644 index 0000000..51a6906 --- /dev/null +++ b/vertexai-google-test/config/users.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google-test/config/variables.yaml b/vertexai-google-test/config/variables.yaml new file mode 100644 index 0000000..64c8fa0 --- /dev/null +++ b/vertexai-google-test/config/variables.yaml @@ -0,0 +1,9 @@ +# == Variables == +# +# You can define here your project Variables. +# If you want to define/override a Variable for a specific Environment, +# add an additional ‘variables.yaml’ file in a subdirectory in the ‘Config’ folder: +# '/Config/_/variables.yaml +# +Variables: +# myVariable: value diff --git a/vertexai-google-test/config/webservice-clients.yaml b/vertexai-google-test/config/webservice-clients.yaml new file mode 100644 index 0000000..060b018 --- /dev/null +++ b/vertexai-google-test/config/webservice-clients.yaml @@ -0,0 +1 @@ +WebServiceClients: diff --git a/vertexai-google-test/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass b/vertexai-google-test/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass new file mode 100644 index 0000000..8956988 --- /dev/null +++ b/vertexai-google-test/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass @@ -0,0 +1,2 @@ +Data #class +com.axonivy.connector.vertexai #namespace diff --git a/vertexai-google-test/pom.xml b/vertexai-google-test/pom.xml new file mode 100644 index 0000000..c81652a --- /dev/null +++ b/vertexai-google-test/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + com.axonivy.connector.vertexai + vertexai-google-test + 10.0.19-SNAPSHOT + iar + + + com.axonivy.ivy.test + unit-tester + 10.0.14 + test + + + com.axonivy.connector.vertexai + vertexai-google + ${project.version} + iar + + + org.mockito + mockito-inline + 3.6.0 + test + + + + src_test + + + com.axonivy.ivy.ci + project-build-plugin + 10.0.14 + true + + + + diff --git a/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/DataMock.java b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/DataMock.java new file mode 100644 index 0000000..ba6ee64 --- /dev/null +++ b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/DataMock.java @@ -0,0 +1,19 @@ +package com.axonivy.connector.vertexai.mock; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import org.apache.commons.io.IOUtils; + +public class DataMock { + + public static String load(String path) { + try (InputStream is = DataMock.class.getResourceAsStream(path)) { + return IOUtils.toString(is, StandardCharsets.UTF_8); + } catch (IOException ex) { + throw new RuntimeException("Failed to read resource: " + path); + } + } + +} diff --git a/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/bodyRequestContent.json b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/bodyRequestContent.json new file mode 100644 index 0000000..2a12640 --- /dev/null +++ b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/bodyRequestContent.json @@ -0,0 +1,18 @@ +{ + "contents": [ + { + "role": "user", + "parts": [ + { + "text": "What is in the image ?" + }, + { + "inline_data": { + "mime_type": "image/jpeg", + "data": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAhCAIAAAAeQ8GBg;" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/responseContent.json b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/responseContent.json new file mode 100644 index 0000000..97bde15 --- /dev/null +++ b/vertexai-google-test/src/com/axonivy/connector/vertexai/mock/json/responseContent.json @@ -0,0 +1,14 @@ +{ + "candidates": [ + { + "content": { + "role": "model", + "parts": [ + { + "text": "Hello! What can I do for you today?" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/service/GeminiDataRequestServiceTest.java b/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/service/GeminiDataRequestServiceTest.java new file mode 100644 index 0000000..2b31d15 --- /dev/null +++ b/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/service/GeminiDataRequestServiceTest.java @@ -0,0 +1,217 @@ +package com.axonivy.connector.vertexai.test.service; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.when; + +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.text.MessageFormat; +import java.util.List; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.ArgumentMatchers; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import com.axonivy.connector.vertexai.constants.Constants; +import com.axonivy.connector.vertexai.entities.Conversation; +import com.axonivy.connector.vertexai.enums.*; +import com.axonivy.connector.vertexai.entities.RequestRoot; +import com.axonivy.connector.vertexai.mock.DataMock; +import com.axonivy.connector.vertexai.service.GeminiDataRequestService; +import com.axonivy.connector.vertexai.utils.GeminiDataRequestServiceUtils; +import com.google.auth.oauth2.AccessToken; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.gson.Gson; +import ch.ivyteam.ivy.environment.AppFixture; +import ch.ivyteam.ivy.environment.Ivy; +import ch.ivyteam.ivy.environment.IvyTest; +import ch.ivyteam.log.Logger; + +@IvyTest +public class GeminiDataRequestServiceTest { + private GeminiDataRequestService geminiDataRequestService; + MockedStatic geminiDataRequestServiceMock; + MockedStatic mockedServiceAccountCredentialsStatic; + MockedStatic httpClientMockedStatic; + + @BeforeEach + void beforeEach(AppFixture fixture) { + fixture.var("vertexai-gemini.projectId", "generate-images-for-process"); + fixture.var("vertexai-gemini.location", "us-central"); + fixture.var("vertexai-gemini.modelName", "gemini-1.5-pro-preview-0409"); + fixture.var("vertexai-gemini.keyFilePath", "D:\\test.json"); + fixture.var("gemini.apiKey", "AIzaSyDaxbn4Ragu"); + geminiDataRequestService = new GeminiDataRequestService(); + geminiDataRequestServiceMock = Mockito.mockStatic(GeminiDataRequestServiceUtils.class); + mockedServiceAccountCredentialsStatic = Mockito.mockStatic(ServiceAccountCredentials.class); + httpClientMockedStatic = mockStatic(HttpClient.class); + } + + @AfterEach + void afterEach() { + geminiDataRequestServiceMock.close(); + mockedServiceAccountCredentialsStatic.close(); + httpClientMockedStatic.close(); + geminiDataRequestService.cleanData(); + } + + @Test + public void testCreateRequestBody() { + String input = "

What is in the image ?

"; + String expectedResult = DataMock.load("json/bodyRequestContent.json"); + RequestRoot result = geminiDataRequestService.createRequestBody(input); + assertThat(result).usingRecursiveComparison().ignoringFields("id") + .isEqualTo(new Gson().fromJson(expectedResult, RequestRoot.class)); + } + + @Test + void testGetAccessToken() throws IOException { + mockAccessToken(); + String actualToken = geminiDataRequestService.getAccessToken(); + // Verify the token value + assertEquals("mockToken", actualToken); + } + + @Test + void testGetAccessTokenThrowsIOException() throws IOException { + // Stub the behavior of FileInputStream + geminiDataRequestServiceMock + .when(() -> GeminiDataRequestServiceUtils.getInputStream(GeminiDataRequestService.VERTEX_KEY_FILE_PATH)) + .thenThrow(new IOException()); + + // Call the method under test and expect an IOException + assertThrows(IOException.class, () -> geminiDataRequestService.getAccessToken()); + } + + @Test + public void testGenerateHttpRequestBasedOnModel_VertexAI_Gemini() throws IOException { + mockAccessToken(); + + Model platformModel = Model.VERTEXAI_GEMINI; + String bodyRequestContent = DataMock.load("json/bodyRequestContent.json"); + + String expectedUrl = MessageFormat.format(GeminiDataRequestService.VERTEX_URL, + GeminiDataRequestService.VERTEX_LOCATION, GeminiDataRequestService.VERTEX_PROJECT_ID, + GeminiDataRequestService.VERTEX_MODEL_NAME); + HttpRequest expectedRequest = HttpRequest.newBuilder().uri(URI.create(expectedUrl)) + .header("Authorization", "Bearer ".concat("mockToken")).header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(bodyRequestContent)).build(); + + HttpRequest actualRequest = geminiDataRequestService.generateHttpRequestBasedOnModel(platformModel, + bodyRequestContent); + + assertEquals(expectedRequest.uri(), actualRequest.uri()); + assertEquals(expectedRequest.headers().map(), actualRequest.headers().map()); + assertEquals(expectedRequest.bodyPublisher().get().contentLength(), + actualRequest.bodyPublisher().get().contentLength()); + + } + + @Test + public void testGenerateHttpRequestBasedOnModel_GeminiModel() throws IOException { + Model platformModel = Model.GEMINI; + String bodyRequestContent = DataMock.load("json/bodyRequestContent.json"); + + String expectedUrl = MessageFormat.format(GeminiDataRequestService.GEMINI_URL, + GeminiDataRequestService.GEMINI_KEY); + HttpRequest expectedRequest = HttpRequest.newBuilder().uri(URI.create(expectedUrl)) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(bodyRequestContent)).build(); + + HttpRequest actualRequest = geminiDataRequestService.generateHttpRequestBasedOnModel(platformModel, + bodyRequestContent); + + assertEquals(expectedRequest.uri(), actualRequest.uri()); + assertEquals(expectedRequest.headers().map(), actualRequest.headers().map()); + assertEquals(expectedRequest.bodyPublisher().get().contentLength(), + actualRequest.bodyPublisher().get().contentLength()); + } + + @Test + public void testSendRequestToGemini_SuccessResponse() throws IOException, InterruptedException { + mockAccessToken(); + mockHttpClient(200); + String message = "Hello, Gemini!"; + Model platformModel = Model.VERTEXAI_GEMINI; + + List result = geminiDataRequestService.sendRequestToGemini(message, platformModel); + + assertEquals(2, result.size()); + assertEquals("Hello! What can I do for you today?", result.get(1).getText()); + assertEquals(Role.MODEL.getName(), result.get(1).getRole()); + } + + @Test + public void testSendRequestToGemini_ServerOverLoad() throws IOException, InterruptedException { + mockAccessToken(); + mockHttpClient(429); + String message = "Hello, Gemini!"; + Model platformModel = Model.VERTEXAI_GEMINI; + MockedStatic ivyMock = mockStatic(Ivy.class); + Logger logger = mock(Logger.class); + ivyMock.when(() -> Ivy.log()).thenReturn(logger); + + List result = geminiDataRequestService.sendRequestToGemini(message, platformModel); + + assertEquals(2, result.size()); + assertEquals(Constants.SERVER_ERROR, result.get(1).getText()); + assertEquals(Role.MODEL.getName(), result.get(1).getRole()); + } + + private void mockAccessToken() throws IOException { + String MOCK_TOKEN = "mockToken"; + + // Mock the AccessToken + AccessToken mockAccessToken = new AccessToken(MOCK_TOKEN, null); + + // Mock the GoogleCredentials and ServiceAccountCredentials + GoogleCredentials mockGoogleCredentials = mock(GoogleCredentials.class); + ServiceAccountCredentials mockServiceAccountCredentials = mock(ServiceAccountCredentials.class); + FileInputStream mockFileInputStream = mock(FileInputStream.class); + + // Stub the behavior of FileInputStream + geminiDataRequestServiceMock + .when(() -> GeminiDataRequestServiceUtils.getInputStream(GeminiDataRequestService.VERTEX_KEY_FILE_PATH)) + .thenReturn(mockFileInputStream); + // Use MockedStatic for the static method call to fromStream + + mockedServiceAccountCredentialsStatic.when(() -> ServiceAccountCredentials.fromStream(mockFileInputStream)) + .thenReturn(mockServiceAccountCredentials); + + // When createScoped is called, return the mocked GoogleCredentials + when(mockServiceAccountCredentials.createScoped(List.of("https://www.googleapis.com/auth/cloud-platform"))) + .thenReturn(mockGoogleCredentials); + + // When refreshAccessToken is called, return the mocked AccessToken + when(mockGoogleCredentials.refreshAccessToken()).thenReturn(mockAccessToken); + } + + private void mockHttpClient(int statusCode) { + String mockResponseBody = DataMock.load("json/responseContent.json"); + + // Mocking HttpClient + HttpClient httpClient = mock(HttpClient.class); + httpClientMockedStatic.when(HttpClient::newHttpClient).thenReturn(httpClient); + + // Mocking HttpResponse + @SuppressWarnings("unchecked") + HttpResponse httpResponse = mock(HttpResponse.class); + when(httpResponse.statusCode()).thenReturn(statusCode); + when(httpResponse.body()).thenReturn(mockResponseBody); + + httpClientMockedStatic.when(() -> httpClient.send(ArgumentMatchers.any(), ArgumentMatchers.any())) + .thenReturn(httpResponse); + } +} diff --git a/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/utils/GeminiDataRequestServiceUtilTest.java b/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/utils/GeminiDataRequestServiceUtilTest.java new file mode 100644 index 0000000..5530dd1 --- /dev/null +++ b/vertexai-google-test/src_test/com/axonivy/connector/vertexai/test/utils/GeminiDataRequestServiceUtilTest.java @@ -0,0 +1,87 @@ +package com.axonivy.connector.vertexai.test.utils; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.Set; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import com.axonivy.connector.vertexai.entities.Content; +import com.axonivy.connector.vertexai.utils.GeminiDataRequestServiceUtils; +import com.google.gson.Gson; +import ch.ivyteam.ivy.environment.AppFixture; +import ch.ivyteam.ivy.environment.IvyTest; + +@IvyTest +public class GeminiDataRequestServiceUtilTest { + public static final String IMG_TAG_PATTERN = "]*>"; + public static final String IMG_SRC_ATTR_PATTERN = "data:image\\/[^;]+;base64,([^\"]+)"; + + private GeminiDataRequestServiceUtils geminiDataRequestServiceUtils = new GeminiDataRequestServiceUtils(); + + @BeforeEach + void beforeEach(AppFixture fixture) { + fixture.var("vertexai-gemini.projectId", "generate-images-for-process"); + fixture.var("vertexai-gemini.location", "us-central"); + fixture.var("vertexai-gemini.modelName", "gemini-1.5-pro-preview-0409"); + fixture.var("vertexai-gemini.keyFilePath", "D:\\test.json"); + fixture.var("gemini.apiKey", "AIzaSyDaxbn4Ragu"); + } + + @Test + public void extractHtmlString_test() { + String input = "

TEST

"; + String expectedResult = "TEST "; + String result = geminiDataRequestServiceUtils.extractHtmlString(input); + assertEquals(result, expectedResult); + } + + @Test + public void extractHtmlString_multiple_p_tags_test() { + String input = "

What is in the image ?

"; + String expectedResult = "What is in the image ? "; + String result = geminiDataRequestServiceUtils.extractHtmlString(input); + assertEquals(result, expectedResult); + } + + @Test + public void extractImgTagsFromArticleContent_test() { + String input = "What is in the image ? "; + Set expectedResult = Set + .of(""); + Set result = geminiDataRequestServiceUtils.extractImgTagsFromArticleContent(input); + assertEquals(result, expectedResult); + } + + @Test + public void extractImgAttribute_test() { + String input = "What is in the image ? "; + + String result = geminiDataRequestServiceUtils.extractImgAttribute(input); + + assertEquals("iVBORw0KGgoAAAANSUhEUgAAAEsAAAAhCAIAAAAe", result); + } + + @Test + public void formatRequest_test() { + String input = "

What is in the image ?

"; + String expectedResult = """ + { + "role": "user", + "parts": [ + { + "text": "What is in the image ?" + }, + { + "inline_data": { + "mime_type": "image/jpeg", + "data": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAhCAIAAAAeQ8GBg;" + } + } + ] + } """; + Content result = geminiDataRequestServiceUtils.formatRequest(input); + assertThat(result).usingRecursiveComparison().ignoringFields("id") + .isEqualTo(new Gson().fromJson(expectedResult, Content.class)); + } + +} diff --git a/vertexai-google/.classpath b/vertexai-google/.classpath new file mode 100644 index 0000000..45a97e4 --- /dev/null +++ b/vertexai-google/.classpath @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vertexai-google/.gitignore b/vertexai-google/.gitignore new file mode 100644 index 0000000..9b0d458 --- /dev/null +++ b/vertexai-google/.gitignore @@ -0,0 +1,19 @@ +# general +Thumbs.db +.DS_Store +*~ +*.log + +# java +*.class +hs_err_pid* + +# maven +target/ +lib/mvn-deps/ + +# ivy +classes/ +src_dataClasses/ +src_wsproc/ +logs/ diff --git a/vertexai-google/.project b/vertexai-google/.project new file mode 100644 index 0000000..5e505f8 --- /dev/null +++ b/vertexai-google/.project @@ -0,0 +1,49 @@ + + + vertexai-google + + + + + + ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder + + + + + ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + ch.ivyteam.ivy.project.IvyProjectNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.jem.beaninfo.BeanInfoNature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/vertexai-google/.settings/.jsdtscope b/vertexai-google/.settings/.jsdtscope new file mode 100644 index 0000000..869c01d --- /dev/null +++ b/vertexai-google/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/vertexai-google/.settings/ch.ivyteam.ivy.designer.prefs b/vertexai-google/.settings/ch.ivyteam.ivy.designer.prefs new file mode 100644 index 0000000..7b82060 --- /dev/null +++ b/vertexai-google/.settings/ch.ivyteam.ivy.designer.prefs @@ -0,0 +1,5 @@ +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.connector.vertexai.Data +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.connector.vertexai +ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11 +ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=100000 +eclipse.preferences.version=1 diff --git a/vertexai-google/.settings/org.eclipse.jdt.core.prefs b/vertexai-google/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d4540a5 --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/vertexai-google/.settings/org.eclipse.wst.common.component b/vertexai-google/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..3973fe1 --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.common.component @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml new file mode 100644 index 0000000..9b4b9fc --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.xml b/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..156ecdb --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/vertexai-google/.settings/org.eclipse.wst.css.core.prefs b/vertexai-google/.settings/org.eclipse.wst.css.core.prefs new file mode 100644 index 0000000..5ddc6bd --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.css.core.prefs @@ -0,0 +1,2 @@ +css-profile/=org.eclipse.wst.css.core.cssprofile.css3 +eclipse.preferences.version=1 diff --git a/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.container b/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.name b/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/vertexai-google/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/vertexai-google/config/custom-fields.yaml b/vertexai-google/config/custom-fields.yaml new file mode 100644 index 0000000..aa19ae0 --- /dev/null +++ b/vertexai-google/config/custom-fields.yaml @@ -0,0 +1,20 @@ +# == Custom Fields Information == +# +# You can define here your project custom fields. +# Have a look at our documentation for more information. +# +CustomFields: +# Tasks: +# MyTaskCustomField: +# Label: My task custom field +# Description: This new task custom field can be used to ... +# Type: STRING +# Cases: +# MyCaseCustomField: +# Label: My case custom field +# Description: This new case custom field can be used to ... +# Type: STRING +# Starts: +# MyStartCustomField: +# Label: My start custom field +# Description: This new start custom field can be used to ... diff --git a/vertexai-google/config/databases.yaml b/vertexai-google/config/databases.yaml new file mode 100644 index 0000000..247b128 --- /dev/null +++ b/vertexai-google/config/databases.yaml @@ -0,0 +1 @@ +Databases: diff --git a/vertexai-google/config/overrides.any b/vertexai-google/config/overrides.any new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/vertexai-google/config/overrides.any @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/vertexai-google/config/persistence.xml b/vertexai-google/config/persistence.xml new file mode 100644 index 0000000..d6b96d7 --- /dev/null +++ b/vertexai-google/config/persistence.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google/config/rest-clients.yaml b/vertexai-google/config/rest-clients.yaml new file mode 100644 index 0000000..8e85296 --- /dev/null +++ b/vertexai-google/config/rest-clients.yaml @@ -0,0 +1 @@ +RestClients: diff --git a/vertexai-google/config/roles.xml b/vertexai-google/config/roles.xml new file mode 100644 index 0000000..59892fe --- /dev/null +++ b/vertexai-google/config/roles.xml @@ -0,0 +1,4 @@ + + + Everybody + diff --git a/vertexai-google/config/users.xml b/vertexai-google/config/users.xml new file mode 100644 index 0000000..51a6906 --- /dev/null +++ b/vertexai-google/config/users.xml @@ -0,0 +1,2 @@ + + diff --git a/vertexai-google/config/variables.yaml b/vertexai-google/config/variables.yaml new file mode 100644 index 0000000..195a8b4 --- /dev/null +++ b/vertexai-google/config/variables.yaml @@ -0,0 +1,17 @@ +# == Variables == +# +# You can define here your project Variables. +# If you want to define/override a Variable for a specific Environment, +# add an additional ‘variables.yaml’ file in a subdirectory in the ‘Config’ folder: +# '/Config/_/variables.yaml +# + +Variables: + gemini: + apiKey: '' + vertexai-gemini: + projectId: '' + location: '' + modelName: '' + keyFilePath: '' + diff --git a/vertexai-google/config/webservice-clients.yaml b/vertexai-google/config/webservice-clients.yaml new file mode 100644 index 0000000..060b018 --- /dev/null +++ b/vertexai-google/config/webservice-clients.yaml @@ -0,0 +1 @@ +WebServiceClients: diff --git a/vertexai-google/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass b/vertexai-google/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass new file mode 100644 index 0000000..8956988 --- /dev/null +++ b/vertexai-google/dataclasses/com/axonivy/connector/vertexai/Data.ivyClass @@ -0,0 +1,2 @@ +Data #class +com.axonivy.connector.vertexai #namespace diff --git a/vertexai-google/pom.xml b/vertexai-google/pom.xml new file mode 100644 index 0000000..429347d --- /dev/null +++ b/vertexai-google/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + com.axonivy.connector.vertexai + vertexai-google + 10.0.19-SNAPSHOT + iar + + + com.google.cloud + google-cloud-aiplatform + 2.1.0 + + + + com.google.code.gson + gson + 2.8.9 + + + com.google.auth + google-auth-library-oauth2-http + 1.1.0 + + + org.jsoup + jsoup + 1.14.3 + + + + + + com.axonivy.ivy.ci + project-build-plugin + 10.0.14 + true + + + + diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/constants/Constants.java b/vertexai-google/src/com/axonivy/connector/vertexai/constants/Constants.java new file mode 100644 index 0000000..bc6b6d5 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/constants/Constants.java @@ -0,0 +1,12 @@ +package com.axonivy.connector.vertexai.constants; + +public class Constants { + public static final String COMMA = ","; + public static final String SERVER_ERROR = "There are some issue in server. Please try again later"; + + public static final String AUTHORIZATION_HEADER = "Authorization"; + public static final String BEARER = "Bearer "; + public static final String APPLICATION_JSON_TYPE = "application/json"; + public static final String CONTENT_TYPE_HEADER = "Content-Type"; + public static final String BR_TAG = "
"; +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/Candidate.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Candidate.java new file mode 100644 index 0000000..c576474 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Candidate.java @@ -0,0 +1,16 @@ +package com.axonivy.connector.vertexai.entities; + +import com.google.gson.annotations.SerializedName; + +public class Candidate { + @SerializedName("content") + private Content content; + + public Content getContent() { + return content; + } + + public void setContent(Content content) { + this.content = content; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/Content.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Content.java new file mode 100644 index 0000000..a97eb48 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Content.java @@ -0,0 +1,33 @@ +package com.axonivy.connector.vertexai.entities; + +import com.google.gson.annotations.SerializedName; +import java.util.List; + +public class Content { + @SerializedName("role") + private String role; + + @SerializedName("parts") + private List parts; + + public Content(String role, List parts) { + this.role = role; + this.parts = parts; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public List getParts() { + return parts; + } + + public void setParts(List parts) { + this.parts = parts; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/Conversation.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Conversation.java new file mode 100644 index 0000000..aaf7967 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Conversation.java @@ -0,0 +1,36 @@ +package com.axonivy.connector.vertexai.entities; + +public class Conversation { + private String role; + private String text; + private Boolean isEntityConverted; + + public Conversation(String role, String text) { + this.role = role; + this.text = text; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public Boolean getIsEntityConverted() { + return isEntityConverted; + } + + public void setIsEntityConverted(Boolean isEntityConverted) { + this.isEntityConverted = isEntityConverted; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/InlineData.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/InlineData.java new file mode 100644 index 0000000..f2564bc --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/InlineData.java @@ -0,0 +1,32 @@ +package com.axonivy.connector.vertexai.entities; + +import com.google.gson.annotations.SerializedName; + +public class InlineData { + @SerializedName("mime_type") + private String type; + + @SerializedName("data") + private String base64Data; + + public InlineData(String type, String base64Data) { + this.type = type; + this.base64Data = base64Data; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getBase64Data() { + return base64Data; + } + + public void setBase64Data(String base64Data) { + this.base64Data = base64Data; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/Part.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Part.java new file mode 100644 index 0000000..71124ab --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/Part.java @@ -0,0 +1,36 @@ +package com.axonivy.connector.vertexai.entities; + +import com.google.gson.annotations.SerializedName; + +public class Part { + + @SerializedName("text") + private String text; + + @SerializedName("inline_data") + private InlineData inlineData; + + public Part(String text) { + this.text = text; + } + + public Part(InlineData inlineData) { + this.inlineData = inlineData; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public InlineData getInlineData() { + return inlineData; + } + + public void setInlineData(InlineData inlineData) { + this.inlineData = inlineData; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/RequestRoot.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/RequestRoot.java new file mode 100644 index 0000000..f4b0147 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/RequestRoot.java @@ -0,0 +1,23 @@ +package com.axonivy.connector.vertexai.entities; + +import java.util.List; + +import com.google.gson.annotations.SerializedName; + +public class RequestRoot { + @SerializedName("contents") + private List contents; + + public RequestRoot(List contents) { + this.contents = contents; + } + + public List getContents() { + return contents; + } + + public void setContents(List contents) { + this.contents = contents; + } + +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/entities/ResponseRoot.java b/vertexai-google/src/com/axonivy/connector/vertexai/entities/ResponseRoot.java new file mode 100644 index 0000000..4e675af --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/entities/ResponseRoot.java @@ -0,0 +1,17 @@ +package com.axonivy.connector.vertexai.entities; + +import com.google.gson.annotations.SerializedName; +import java.util.List; + +public class ResponseRoot { + @SerializedName("candidates") + private List candidates; + + public List getCandidates() { + return candidates; + } + + public void setCandidates(List candidates) { + this.candidates = candidates; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/enums/Model.java b/vertexai-google/src/com/axonivy/connector/vertexai/enums/Model.java new file mode 100644 index 0000000..5783a2a --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/enums/Model.java @@ -0,0 +1,15 @@ +package com.axonivy.connector.vertexai.enums; + +public enum Model { + VERTEXAI_GEMINI("VertexAi-Gemini"), GEMINI("Gemini"); + + private String name; + + private Model(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/enums/Role.java b/vertexai-google/src/com/axonivy/connector/vertexai/enums/Role.java new file mode 100644 index 0000000..afbfd1c --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/enums/Role.java @@ -0,0 +1,15 @@ +package com.axonivy.connector.vertexai.enums; + +public enum Role { + USER("user"), MODEL("model"); + + private String name; + + private Role(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/service/GeminiDataRequestService.java b/vertexai-google/src/com/axonivy/connector/vertexai/service/GeminiDataRequestService.java new file mode 100644 index 0000000..87420b2 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/service/GeminiDataRequestService.java @@ -0,0 +1,114 @@ +package com.axonivy.connector.vertexai.service; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + +import com.google.auth.oauth2.AccessToken; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.gson.Gson; +import ch.ivyteam.ivy.environment.Ivy; +import static com.axonivy.connector.vertexai.constants.Constants.APPLICATION_JSON_TYPE; +import static com.axonivy.connector.vertexai.constants.Constants.CONTENT_TYPE_HEADER; +import static com.axonivy.connector.vertexai.constants.Constants.SERVER_ERROR; +import static com.axonivy.connector.vertexai.constants.Constants.AUTHORIZATION_HEADER; +import static com.axonivy.connector.vertexai.constants.Constants.BEARER; +import com.axonivy.connector.vertexai.entities.*; +import com.axonivy.connector.vertexai.enums.Model; +import com.axonivy.connector.vertexai.enums.Role; +import com.axonivy.connector.vertexai.utils.GeminiDataRequestServiceUtils; + +public class GeminiDataRequestService { + public static final String VERTEX_URL = "https://{0}-aiplatform.googleapis.com/v1/projects/{1}/locations/{0}/publishers/google/models/{2}:generateContent"; + public static final String GEMINI_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?key={0}"; + public static final List vertexAiScopes = List.of("https://www.googleapis.com/auth/cloud-platform"); + + public static String VERTEX_PROJECT_ID = Ivy.var().get("vertexai-gemini.projectId"); + public static String VERTEX_LOCATION = Ivy.var().get("vertexai-gemini.location"); + public static String VERTEX_MODEL_NAME = Ivy.var().get("vertexai-gemini.modelName"); + public static String VERTEX_KEY_FILE_PATH = Ivy.var().get("vertexai-gemini.keyFilePath"); + public static String GEMINI_KEY = Ivy.var().get("gemini.apiKey"); + + private static List historyContents = new ArrayList<>(); + private static List conversations = new ArrayList<>(); + + private static GeminiDataRequestServiceUtils dataRequestServiceUtils = new GeminiDataRequestServiceUtils(); + + public String getAccessToken() throws IOException { + GoogleCredentials credentials = ServiceAccountCredentials + .fromStream(GeminiDataRequestServiceUtils.getInputStream(VERTEX_KEY_FILE_PATH)) + .createScoped(vertexAiScopes); + AccessToken token = credentials.refreshAccessToken(); + return token.getTokenValue(); + } + + public RequestRoot createRequestBody(String message) { + Content requestContent = dataRequestServiceUtils.formatRequest(message); + conversations.add(new Conversation(Role.USER.getName(), message)); + historyContents.add(requestContent); + return new RequestRoot(historyContents); + } + + public List sendRequestToGemini(String message, Model platFormModel) + throws IOException, InterruptedException { + RequestRoot bodyRequestContent = createRequestBody(message); + // Create HTTP client + HttpClient client = HttpClient.newHttpClient(); + // Build request + HttpRequest request = generateHttpRequestBasedOnModel(platFormModel, new Gson().toJson(bodyRequestContent)); + + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); + + if (response.statusCode() == 200) { + // Handle response + Gson gson = new Gson(); + ResponseRoot responseRoot = gson.fromJson(response.body(), ResponseRoot.class); + Content contentResponse = Optional.ofNullable(responseRoot).map(ResponseRoot::getCandidates) + .map(Collection::stream).flatMap(Stream::findFirst).map(Candidate::getContent) + .map(Content::getParts).map(Collection::stream).flatMap(Stream::findFirst).map(Part::getText) + .map(text -> { + conversations.add(new Conversation(Role.MODEL.getName(), text.trim())); + Part currentPart = new Part(text.trim()); + return new Content(Role.MODEL.getName(), List.of(currentPart)); + }).orElse(null); + historyContents.add(contentResponse); + } else { + Ivy.log().error("Request failed: " + response.statusCode()); + Ivy.log().error(response.body()); + historyContents.remove(historyContents.size() - 1); + conversations.add(new Conversation(Role.MODEL.getName(), SERVER_ERROR)); + } + return conversations; + } + + public void cleanData() { + historyContents = new ArrayList<>(); + conversations = new ArrayList<>(); + } + + public HttpRequest generateHttpRequestBasedOnModel(Model platformModel, String bodyRequestContent) + throws IOException { + if (Model.VERTEXAI_GEMINI == platformModel) { + String accessToken = getAccessToken(); + String vertexAiGeminiEndpoint = MessageFormat.format(VERTEX_URL, VERTEX_LOCATION, VERTEX_PROJECT_ID, + VERTEX_MODEL_NAME); + return HttpRequest.newBuilder().uri(URI.create(vertexAiGeminiEndpoint)) + .header(AUTHORIZATION_HEADER, BEARER + accessToken) + .header(CONTENT_TYPE_HEADER, APPLICATION_JSON_TYPE) + .POST(HttpRequest.BodyPublishers.ofString(bodyRequestContent)).build(); + } + String geminiEndpoint = MessageFormat.format(GEMINI_URL, GEMINI_KEY); + return HttpRequest.newBuilder().uri(URI.create(geminiEndpoint)) + .header(CONTENT_TYPE_HEADER, APPLICATION_JSON_TYPE) + .POST(HttpRequest.BodyPublishers.ofString(bodyRequestContent)).build(); + } +} diff --git a/vertexai-google/src/com/axonivy/connector/vertexai/utils/GeminiDataRequestServiceUtils.java b/vertexai-google/src/com/axonivy/connector/vertexai/utils/GeminiDataRequestServiceUtils.java new file mode 100644 index 0000000..42ace10 --- /dev/null +++ b/vertexai-google/src/com/axonivy/connector/vertexai/utils/GeminiDataRequestServiceUtils.java @@ -0,0 +1,83 @@ +package com.axonivy.connector.vertexai.utils; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.util.Strings; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import com.axonivy.connector.vertexai.constants.Constants; +import com.axonivy.connector.vertexai.entities.Content; +import com.axonivy.connector.vertexai.entities.InlineData; +import com.axonivy.connector.vertexai.entities.Part; +import com.axonivy.connector.vertexai.enums.Role; + +public class GeminiDataRequestServiceUtils { + public static final String IMG_TAG_PATTERN = "]*>"; + public static final String IMG_SRC_ATTR_PATTERN = "data:image\\/[^;]+;base64,([^\"]+)"; + + public static InputStream getInputStream(String keyFilePath) throws IOException { + return new FileInputStream(keyFilePath); + } + + public Content formatRequest(String message) { + String content = extractHtmlString(message); + List imgTags = extractImgTagsFromArticleContent(content).stream().toList(); + if (ObjectUtils.isNotEmpty(imgTags)) { + List parts = new ArrayList<>(); + for (String imgTag : imgTags) { + content = content.replace(imgTag, Strings.EMPTY); + String imageBase64 = extractImgAttribute(imgTag); + InlineData inlineData = new InlineData("image/jpeg", imageBase64); + Part currentPart = new Part(inlineData); + parts.add(currentPart); + } + parts.add(0, new Part(content.trim())); + return new Content(Role.USER.getName(), parts); + } + Part currentPart = new Part(content.trim()); + return new Content(Role.USER.getName(), List.of(currentPart)); + } + + public Set extractImgTagsFromArticleContent(String content) { + Set imgTags = new HashSet<>(); + Pattern pattern = Pattern.compile(IMG_TAG_PATTERN); + Matcher matcher = pattern.matcher(content); + while (matcher.find()) { + var foundImgTag = matcher.group(); + imgTags.add(foundImgTag); + } + return imgTags; + } + + public String extractImgAttribute(String imgTag) { + Pattern pattern = Pattern.compile(IMG_SRC_ATTR_PATTERN); + Matcher matcher = pattern.matcher(imgTag); + String imgAttribute = Strings.EMPTY; + while (matcher.find()) { + imgAttribute = matcher.group(1); + } + return imgAttribute; + } + + public String extractHtmlString(String htmlContent) { + Document doc = Jsoup.parse(htmlContent); + Elements content = doc.select("p"); + return content.stream().map(Element::html).filter(html -> !Constants.BR_TAG.equals(html)) + .collect(Collectors.joining(StringUtils.SPACE)); + } + +}