From f8dfccc0c62e60ed7a1764f644e0583d7ea88968 Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Wed, 23 Jan 2019 18:20:57 -0500 Subject: [PATCH 1/8] initial commit --- Readme.md | 84 ++++ aml_config/conda_dependencies.yml | 50 +++ aml_config/config.json | 6 + aml_config/security_config.json | 9 + aml_service/00-WorkSpace.py | 54 +++ aml_service/01-Experiment.py | 39 ++ aml_service/02-AttachTrainingVM.py | 73 ++++ aml_service/10-TrainOnLocal.py | 62 +++ aml_service/11-TrainOnLocalEnv.py | 70 ++++ aml_service/12-TrainOnVM.py | 72 ++++ aml_service/15-EvaluateModel.py | 83 ++++ aml_service/20-RegisterModel.py | 82 ++++ aml_service/30-CreateScoringImage.py | 84 ++++ aml_service/50-deployOnAci.py | 81 ++++ aml_service/51-deployOnAks.py | 103 +++++ aml_service/60-AciWebserviceTest.py | 62 +++ aml_service/61-AksWebserviceTest.py | 65 ++++ aml_service/helper/azcli.py | 67 ++++ code/scoring/conda_dependencies.yml | 49 +++ code/scoring/score.py | 54 +++ code/testing/data_test.py | 89 +++++ code/training/train.py | 91 +++++ data/diabetes.csv | 443 ++++++++++++++++++++++ data/diabetes_bad_dist.csv | 3 + data/diabetes_bad_schema.csv | 3 + data/diabetes_missing_values.csv | 3 + docs/code_description.md | 60 +++ docs/images/EditPipeline1.png | Bin 0 -> 46302 bytes docs/images/EditPipeline2.png | Bin 0 -> 163627 bytes docs/images/EditPipeline3.png | Bin 0 -> 50470 bytes docs/images/EditPipeline4.png | Bin 0 -> 46651 bytes docs/images/EditPipeline5.png | Bin 0 -> 56424 bytes docs/images/EditPipeline6.png | Bin 0 -> 56970 bytes docs/images/EditPipeline7.png | Bin 0 -> 31603 bytes docs/images/EditPipeline8.png | Bin 0 -> 44509 bytes environment_setup/install_requirements.sh | 31 ++ environment_setup/requirements.txt | 4 + model/placeholder | 0 38 files changed, 1976 insertions(+) create mode 100644 Readme.md create mode 100644 aml_config/conda_dependencies.yml create mode 100644 aml_config/config.json create mode 100644 aml_config/security_config.json create mode 100644 aml_service/00-WorkSpace.py create mode 100644 aml_service/01-Experiment.py create mode 100644 aml_service/02-AttachTrainingVM.py create mode 100644 aml_service/10-TrainOnLocal.py create mode 100644 aml_service/11-TrainOnLocalEnv.py create mode 100644 aml_service/12-TrainOnVM.py create mode 100644 aml_service/15-EvaluateModel.py create mode 100644 aml_service/20-RegisterModel.py create mode 100644 aml_service/30-CreateScoringImage.py create mode 100644 aml_service/50-deployOnAci.py create mode 100644 aml_service/51-deployOnAks.py create mode 100644 aml_service/60-AciWebserviceTest.py create mode 100644 aml_service/61-AksWebserviceTest.py create mode 100644 aml_service/helper/azcli.py create mode 100644 code/scoring/conda_dependencies.yml create mode 100644 code/scoring/score.py create mode 100644 code/testing/data_test.py create mode 100644 code/training/train.py create mode 100644 data/diabetes.csv create mode 100644 data/diabetes_bad_dist.csv create mode 100644 data/diabetes_bad_schema.csv create mode 100644 data/diabetes_missing_values.csv create mode 100644 docs/code_description.md create mode 100644 docs/images/EditPipeline1.png create mode 100644 docs/images/EditPipeline2.png create mode 100644 docs/images/EditPipeline3.png create mode 100644 docs/images/EditPipeline4.png create mode 100644 docs/images/EditPipeline5.png create mode 100644 docs/images/EditPipeline6.png create mode 100644 docs/images/EditPipeline7.png create mode 100644 docs/images/EditPipeline8.png create mode 100644 environment_setup/install_requirements.sh create mode 100644 environment_setup/requirements.txt create mode 100644 model/placeholder diff --git a/Readme.md b/Readme.md new file mode 100644 index 00000000..bcb43505 --- /dev/null +++ b/Readme.md @@ -0,0 +1,84 @@ +# DevOps For AI + +DevOps for AI template will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. + +This template contains code and pipeline definition for a machine learning project demonstrating how to automate the end to end ML/AI project. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod, integration testing and functional testing. + +## Prerequisite +- Active Azure subscription +- Minimum contributor access to Azure subscription + +## Getting Started: +Once the template is imported for personal Azure DevOps account using DevOps demo generator, you need to follow below steps to get the pipeline running: + +### Update Pipeline Config: + +#### Build Pipeline +1. Go to the **Pipelines -> Builds** on the newly created project and click **Edit** on top right +![EditPipeline1](/docs/images/EditPipeline1.png) +2. Click on **Create or Get Workspace** task, select the Azure subscription where you want to deploy and run the solution, and click **Authorize** +![EditPipeline2](/docs/images/EditPipeline2.png) +3. Click all other tasks below it and select the same subscription (no need to authorize again) +4. Once the tasks are updated with subscription, click on **Save & queue** and select **Save** +![EditPipeline3](/docs/images/EditPipeline3.png) + +#### Release Pipeline +1. Go to the **Pipelines -> Releases** and click **Edit** on top +![EditPipeline4](/docs/images/EditPipeline4.png) +2. Click on **1 job, 4 tasks** to open the tasks in **QA stage** +![EditPipeline5](/docs/images/EditPipeline5.png) +3. Update the subscription details in two tasks +![EditPipeline6](/docs/images/EditPipeline6.png) +4. Click on **Tasks** on the top to switch to the Prod stage, update the subscription details for the two tasks in prod +![EditPipeline7](/docs/images/EditPipeline7.png) +5. Once you fix all the missing subscription, the **Save** is no longer grayed, click on save to save the changes in release pepeline +![EditPipeline8](/docs/images/EditPipeline8.png) + +### Update Repo config: +1. Go to the **Repos** on the newly created Azure DevOps project +2. Open the config file [/aml_config/config.json](/aml_config/config.json) and edit it +3. Put your Azure subscription ID in place of <> +4. Change resource group and AML workspace name if you want +5. Put the location where you want to deploy your Azure ML service workspace +6. Save the changes and commit these changes to master branch +7. The commit will trigger the build pipeline to run deploying AML end to end solution +8. Go to **Pipelines -> Builds** to see the pipeline run + +## Steps Performed in the Build Pipeline: + +1. Prepare the python environment +2. Get or Create the workspace +3. Submit Training job on the remote DSVM / Local Python Env +4. Register model to workspace +5. Create Docker Image for Scoring Webservice +6. Copy and Publish the Artifacts to Release Pipeline + +## Steps Performed in the Release Pipeline +In Release pipeline we deploy the image created from the build pipeline to Azure Container Instance and Azure Kubernetes Services + +### Deploy on ACI - QA Stage +1. Prepare the python environment +2. Create ACI and Deploy webservice image created in Build Pipeline +3. Test the scoring image + +### Deploy on AKS - PreProd/Prod Stage +1. Prepare the python environment +2. Deploy on AKS + - Create AKS and create a new webservice on AKS with the scoring docker image + + OR + + - Get the existing AKS and update the webservice with new image created in Build Pipeline +3. Test the scoring image + +### Repo Details + +You can find the details of the code ans scripts in the repository [here](/docs/code_description.md) + +### References + +- [Azure Machine Learning(Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) + +- [Azure ML Samples](https://docs.microsoft.com/en-us/azure/machine-learning/service/samples-notebooks) +- [Azure ML Python SDK Quickstart](https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-create-workspace-with-python) +- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/?view=vsts) diff --git a/aml_config/conda_dependencies.yml b/aml_config/conda_dependencies.yml new file mode 100644 index 00000000..48505e28 --- /dev/null +++ b/aml_config/conda_dependencies.yml @@ -0,0 +1,50 @@ +# Conda environment specification. The dependencies defined in this file will + +# be automatically provisioned for managed runs. These include runs against + +# the localdocker, remotedocker, and cluster compute targets. + + +# Note that this file is NOT used to automatically manage dependencies for the + +# local compute target. To provision these dependencies locally, run: + +# conda env update --file conda_dependencies.yml + + +# Details about the Conda environment file format: + +# https://conda.io/docs/using/envs.html#create-environment-file-by-hand + + +# For managing Spark packages and configuration, see spark_dependencies.yml. + + +# Version of this configuration file's structure and semantics in AzureML. + +# This directive is stored in a comment to preserve the Conda file structure. + +# [AzureMlVersion] = 2 + + +name: project_environment +dependencies: + # The python interpreter version. + + # Currently Azure ML Workbench only supports 3.5.2 and later. + +- python=3.6.2 + # Required by azureml-defaults, installed separately through Conda to + + # get a prebuilt version and not require build tools for the install. + +- psutil=5.3 + +- pip: + # Required packages for AzureML execution, history, and data preparation. + - azureml-sdk[notebooks] + - pynacl==1.2.1 + - scipy==1.0.0 + - scikit-learn==0.19.1 + - pandas==0.23.1 + - numpy==1.14.5 \ No newline at end of file diff --git a/aml_config/config.json b/aml_config/config.json new file mode 100644 index 00000000..0d14385b --- /dev/null +++ b/aml_config/config.json @@ -0,0 +1,6 @@ +{ + "subscription_id": "<>", + "resource_group": "DevOps_AzureML_Demo", + "workspace_name": "AzureML_Demo_ws", + "location": "southcentralus" +} \ No newline at end of file diff --git a/aml_config/security_config.json b/aml_config/security_config.json new file mode 100644 index 00000000..abb27988 --- /dev/null +++ b/aml_config/security_config.json @@ -0,0 +1,9 @@ +{ + "sp_user" : "<>", + "sp_password" : "<>", + "sp_tenant_id" : "<>", + "remote_vm_name" : "<>", + "remote_vm_username" : "<>", + "remote_vm_password" : "<>", + "remote_vm_ip" : "<>" +} \ No newline at end of file diff --git a/aml_service/00-WorkSpace.py b/aml_service/00-WorkSpace.py new file mode 100644 index 00000000..26e05184 --- /dev/null +++ b/aml_service/00-WorkSpace.py @@ -0,0 +1,54 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +from azureml.core import Workspace +import os, json +import azureml.core +print("SDK Version:", azureml.core.VERSION) +#print('current dir is ' +os.curdir) +with open("aml_config/config.json") as f: + config = json.load(f) + +workspace_name = config['workspace_name'] +resource_group = config['resource_group'] +subscription_id = config['subscription_id'] +location = config['location'] +#location = 'southcentralus' +try: + ws = Workspace.get(name = workspace_name, + subscription_id = subscription_id, + resource_group = resource_group) + +except: + # this call might take a minute or two. + print('Creating new workspace') + ws = Workspace.create(name = workspace_name, + subscription_id = subscription_id, + resource_group = resource_group, + #create_resource_group=True, + location=location) + +# print Workspace details +print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep = '\n') \ No newline at end of file diff --git a/aml_service/01-Experiment.py b/aml_service/01-Experiment.py new file mode 100644 index 00000000..095503c7 --- /dev/null +++ b/aml_service/01-Experiment.py @@ -0,0 +1,39 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os +from azureml.core import Experiment +from azureml.core import Workspace + +def getExperiment(): + ws = Workspace.from_config() + script_folder = "." + experiment_name = 'devops-ai-demo' + exp = Experiment(workspace = ws, name = experiment_name) + print(exp.name, exp.workspace.name, sep = '\n') + return exp + +if __name__ == "__main__": + exp = getExperiment() \ No newline at end of file diff --git a/aml_service/02-AttachTrainingVM.py b/aml_service/02-AttachTrainingVM.py new file mode 100644 index 00000000..d697526e --- /dev/null +++ b/aml_service/02-AttachTrainingVM.py @@ -0,0 +1,73 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +from azureml.core import Workspace +from azureml.core import Run +from azureml.core import Experiment +from azureml.core.conda_dependencies import CondaDependencies +from azureml.core.runconfig import RunConfiguration +import os, json +from azureml.core.compute import RemoteCompute +from azureml.core.compute import DsvmCompute +from azureml.core.compute_target import ComputeTargetException + + +# Get workspace +ws = Workspace.from_config() + +# Read the New VM Config +with open("aml_config/security_config.json") as f: + config = json.load(f) + +remote_vm_name = config['remote_vm_name'] +remote_vm_username = config['remote_vm_username'] +remote_vm_password = config['remote_vm_password'] +remote_vm_ip = config['remote_vm_ip'] + +try: + dsvm_compute = RemoteCompute.attach(ws, name=remote_vm_name, + username=remote_vm_username, + address=remote_vm_ip, + ssh_port=22, + password=remote_vm_password) + dsvm_compute.wait_for_completion(show_output =True) + +except Exception as e: + print("Caught = {}".format(e.message)) + print("Compute config already attached.") + + +## Create VM if not available +# compute_target_name = remote_vm_name + +# try: +# dsvm_compute = DsvmCompute(workspace=ws, name=compute_target_name) +# print('found existing:', dsvm_compute.name) +# except ComputeTargetException: +# print('creating new.') +# dsvm_config = DsvmCompute.provisioning_configuration(vm_size="Standard_D2_v2") +# dsvm_compute = DsvmCompute.create(ws, name=compute_target_name, provisioning_configuration=dsvm_config) +# dsvm_compute.wait_for_completion(show_output=True) \ No newline at end of file diff --git a/aml_service/10-TrainOnLocal.py b/aml_service/10-TrainOnLocal.py new file mode 100644 index 00000000..8d36b0a0 --- /dev/null +++ b/aml_service/10-TrainOnLocal.py @@ -0,0 +1,62 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +from azureml.core.runconfig import RunConfiguration +from azureml.core import Workspace +from azureml.core import Experiment +from azureml.core import ScriptRunConfig +import os, json + +# Get workspace +ws = Workspace.from_config() + +# Attach Experiment +experiment_name = 'devops-ai-demo' +exp = Experiment(workspace = ws, name = experiment_name) +print(exp.name, exp.workspace.name, sep = '\n') + +# Editing a run configuration property on-fly. +run_config_user_managed = RunConfiguration() +run_config_user_managed.environment.python.user_managed_dependencies = True + +print("Submitting an experiment.") +src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config_user_managed) +run = exp.submit(src) + +# Shows output of the run on stdout. +run.wait_for_completion(show_output = True, wait_post_processing = True) + +# Raise exception if run fails +if run.get_status() == 'Failed': + raise Exception('Training on local failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) + +# Writing the run id to /aml_config/run_id.json + +run_id={} +run_id['run_id'] = run.id +run_id['experiment_name'] = run.experiment.name +with open('aml_config/run_id.json', 'w') as outfile: + json.dump(run_id,outfile) diff --git a/aml_service/11-TrainOnLocalEnv.py b/aml_service/11-TrainOnLocalEnv.py new file mode 100644 index 00000000..36d6d43f --- /dev/null +++ b/aml_service/11-TrainOnLocalEnv.py @@ -0,0 +1,70 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +## Create a new Conda environment on local and train the model +## System-managed environment + +from azureml.core.conda_dependencies import CondaDependencies +from azureml.core.runconfig import RunConfiguration +from azureml.core import Workspace +from azureml.core import Experiment +from azureml.core import ScriptRunConfig + +# Get workspace +ws = Workspace.from_config() + +# Attach Experiment +experiment_name = 'devops-ai-demo' +exp = Experiment(workspace = ws, name = experiment_name) +print(exp.name, exp.workspace.name, sep = '\n') + +# Editing a run configuration property on-fly. +run_config_system_managed = RunConfiguration() +# Use a new conda environment that is to be created from the conda_dependencies.yml file +run_config_system_managed.environment.python.user_managed_dependencies = False +# Automatically create the conda environment before the run +run_config_system_managed.prepare_environment = True + +# # add scikit-learn to the conda_dependencies.yml file +# Specify conda dependencies with scikit-learn +# run_config_system_managed.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['scikit-learn']) + +print("Submitting an experiment to new conda virtual env") +src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config_user_managed) +run = exp.submit(src) + +# Shows output of the run on stdout. +run.wait_for_completion(show_output = True, wait_post_processing = True) + +# Raise exception if run fails +if run.get_status() == 'Failed': + raise Exception('Training on local env failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) + +# Writing the run id to /aml_config/run_id.json +run_id = {} +run_id['run_id'] = run.id +run_id['experiment_name'] = run.experiment.name +with open('aml_config/run_id.json', 'w') as outfile: + json.dump(run_id,outfile) diff --git a/aml_service/12-TrainOnVM.py b/aml_service/12-TrainOnVM.py new file mode 100644 index 00000000..709afec4 --- /dev/null +++ b/aml_service/12-TrainOnVM.py @@ -0,0 +1,72 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json +from azureml.core import Workspace +from azureml.core import Experiment +from azureml.core.compute import RemoteCompute +from azureml.core.runconfig import RunConfiguration +from azureml.core import ScriptRunConfig +import azureml.core + + +# Get workspace +ws = Workspace.from_config() + +# Read the New VM Config +with open("aml_config/security_config.json") as f: + config = json.load(f) +remote_vm_name = config['remote_vm_name'] + + +# Attach Experiment +experiment_name = 'devops-ai-demo' +exp = Experiment(workspace = ws, name = experiment_name) +print(exp.name, exp.workspace.name, sep = '\n') + +run_config = RunConfiguration() +run_config.target = remote_vm_name + +# replace with your path to the python interpreter in the remote VM found earlier +run_config.environment.python.interpreter_path = '/anaconda/envs/myenv/bin/python' +run_config.environment.python.user_managed_dependencies = True + + +src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config) +run = exp.submit(src) + +# Shows output of the run on stdout. +run.wait_for_completion(show_output = True, wait_post_processing = True) + +# Raise exception if run fails +if run.get_status() == 'Failed': + raise Exception('Training on local env failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) + +# Writing the run id to /aml_config/run_id.json +run_id = {} +run_id['run_id'] = run.id +run_id['experiment_name'] = run.experiment.name +with open('aml_config/run_id.json', 'w') as outfile: + json.dump(run_id,outfile) \ No newline at end of file diff --git a/aml_service/15-EvaluateModel.py b/aml_service/15-EvaluateModel.py new file mode 100644 index 00000000..9a0ea198 --- /dev/null +++ b/aml_service/15-EvaluateModel.py @@ -0,0 +1,83 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json +from azureml.core import Workspace +from azureml.core import Experiment +from azureml.core.model import Model +import azureml.core +from azureml.core import Run + + +# Get workspace +ws = Workspace.from_config() + +# Paramaterize the matrics on which the models should be compared + +# Add golden data set on which all the model performance can be evaluated + +# Get the latest run_id +with open("aml_config/run_id.json") as f: + config = json.load(f) + +new_model_run_id = config["run_id"] +experiment_name = config["experiment_name"] +exp = Experiment(workspace = ws, name = experiment_name) + + +try: + # Get most recently registered model, we assume that is the model in production. Download this model and compare it with the recently trained model by running test with same data set. + model_list = Model.list(ws) + production_model = next(filter(lambda x: x.created_time == max(model.created_time for model in model_list), model_list)) + production_model_run_id = production_model.tags.get('run_id') + run_list = exp.get_runs() + # production_model_run = next(filter(lambda x: x.id == production_model_run_id, run_list)) + + + # Get the run history for both production model and newly trained model and compare mse + production_model_run = Run(exp,run_id=production_model_run_id) + new_model_run = Run(exp,run_id=new_model_run_id) + + production_model_mse=production_model_run.get_metrics().get('mse') + new_model_mse=new_model_run.get_metrics().get('mse') + print('Current Production model mse: {}, New trained model mse: {}'.format(production_model_mse,new_model_mse)) + + promote_new_model=False + if new_model_mse < production_model_mse: + promote_new_model=True + print('New trained model performs better, thus it will be registered') +except: + promote_new_model=True + print('This is the first model to be trained, thus nothing to evaluate for now') + +run_id = {} +run_id['run_id'] = '' +# Writing the run id to /aml_config/run_id.json +if promote_new_model: + run_id['run_id'] = new_model_run_id + +run_id['experiment_name'] = experiment_name +with open('aml_config/run_id.json', 'w') as outfile: + json.dump(run_id,outfile) \ No newline at end of file diff --git a/aml_service/20-RegisterModel.py b/aml_service/20-RegisterModel.py new file mode 100644 index 00000000..245faced --- /dev/null +++ b/aml_service/20-RegisterModel.py @@ -0,0 +1,82 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json,sys +from azureml.core import Workspace +from azureml.core import Run +from azureml.core import Experiment +from azureml.core.model import Model + +from azureml.core.runconfig import RunConfiguration + +# Get workspace +ws = Workspace.from_config() + +# Get the latest evaluation result +try: + with open("aml_config/run_id.json") as f: + config = json.load(f) + if not config["run_id"]: + raise Exception('No new model to register as production model perform better') +except: + print('No new model to register as production model perform better') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + +run_id = config["run_id"] +experiment_name = config["experiment_name"] +exp = Experiment(workspace = ws, name = experiment_name) + +run = Run(experiment = exp, run_id = run_id) +names=run.get_file_names +names() +print('Run ID for last run: {}'.format(run_id)) +model_local_dir="model" +os.makedirs(model_local_dir,exist_ok=True) + +# Download Model to Project root directory +model_name= 'sklearn_regression_model.pkl' +run.download_file(name = './outputs/'+model_name, + output_file_path = './model/'+model_name) +print('Downloaded model {} to Project root directory'.format(model_name)) +os.chdir('./model') +model = Model.register(model_path = model_name, # this points to a local file + model_name = model_name, # this is the name the model is registered as + tags = {'area': "diabetes", 'type': "regression", 'run_id' : run_id}, + description="Regression model for diabetes dataset", + workspace = ws) +os.chdir('..') +print('Model registered: {} \nModel Description: {} \nModel Version: {}'.format(model.name, model.description, model.version)) + +# Remove the evaluate.json as we no longer need it +# os.remove("aml_config/evaluate.json") + +# Writing the registered model details to /aml_config/model.json +model_json = {} +model_json['model_name'] = model.name +model_json['model_version'] = model.version +model_json['run_id'] = run_id +with open('aml_config/model.json', 'w') as outfile: + json.dump(model_json,outfile) diff --git a/aml_service/30-CreateScoringImage.py b/aml_service/30-CreateScoringImage.py new file mode 100644 index 00000000..5e2928f8 --- /dev/null +++ b/aml_service/30-CreateScoringImage.py @@ -0,0 +1,84 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json, sys +from azureml.core import Workspace +from azureml.core.image import ContainerImage, Image +from azureml.core.model import Model + +# Get workspace +ws = Workspace.from_config() + +# Get the latest model details + +try: + with open("aml_config/model.json") as f: + config = json.load(f) +except: + print('No new model to register thus no need to create new scoring image') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + +model_name = config['model_name'] +model_version = config['model_version'] + + +model_list = Model.list(workspace=ws) +model, = (m for m in model_list if m.version==model_version and m.name==model_name) +print('Model picked: {} \nModel Description: {} \nModel Version: {}'.format(model.name, model.description, model.version)) + +os.chdir('./code/scoring') +image_name = "diabetes-model-score" + +image_config = ContainerImage.image_configuration(execution_script = "score.py", + runtime = "python-slim", + conda_file = "conda_dependencies.yml", + description = "Image with ridge regression model", + tags = {'area': "diabetes", 'type': "regression"} + ) + +image = Image.create(name = image_name, + models = [model], + image_config = image_config, + workspace = ws) + +image.wait_for_creation(show_output = True) +os.chdir('../..') + +if image.creation_state != 'Succeeded': + raise Exception('Image creation status: {image.creation_state}') + +print('{}(v.{} [{}]) stored at {} with build log {}'.format(image.name, image.version, image.creation_state, image.image_location, image.image_build_log_uri)) + +# Writing the image details to /aml_config/image.json +image_json = {} +image_json['image_name'] = image.name +image_json['image_version'] = image.version +image_json['image_location'] = image.image_location +with open('aml_config/image.json', 'w') as outfile: + json.dump(image_json,outfile) + + +# How to fix the schema for a model, like if we have multiple models expecting different schema, diff --git a/aml_service/50-deployOnAci.py b/aml_service/50-deployOnAci.py new file mode 100644 index 00000000..c1171379 --- /dev/null +++ b/aml_service/50-deployOnAci.py @@ -0,0 +1,81 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json, datetime, sys +from operator import attrgetter +from azureml.core import Workspace +from azureml.core.model import Model +from azureml.core.image import Image +from azureml.core.webservice import Webservice +from azureml.core.webservice import AciWebservice + +# Get workspace +ws = Workspace.from_config() + + + +# Get the Image to deploy details +try: + with open("aml_config/image.json") as f: + config = json.load(f) +except: + print('No new model, thus no deployment on ACI') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + + +image_name = config['image_name'] +image_version = config['image_version'] + +images = Image.list(workspace=ws) +image, = (m for m in images if m.version==image_version and m.name == image_name) +print('From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) + +# image = max(images, key=attrgetter('version')) +# print('From Max Version, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) + + +aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, + memory_gb=1, + tags={'area': "diabetes", 'type': "regression"}, + description='A sample description') + +aci_service_name='aciwebservice'+ datetime.datetime.now().strftime('%m%d%H') + +service = Webservice.deploy_from_image(deployment_config=aciconfig, + image=image, + name=aci_service_name, + workspace=ws) + +service.wait_for_deployment() +print('Deployed ACI Webservice: {} \nWebservice Uri: {}'.format(service.name, service.scoring_uri)) + +#service=Webservice(name ='aciws0622', workspace =ws) +# Writing the ACI details to /aml_config/aci_webservice.json +aci_webservice = {} +aci_webservice['aci_name'] = service.name +aci_webservice['aci_url'] = service.scoring_uri +with open('aml_config/aci_webservice.json', 'w') as outfile: + json.dump(aci_webservice,outfile) \ No newline at end of file diff --git a/aml_service/51-deployOnAks.py b/aml_service/51-deployOnAks.py new file mode 100644 index 00000000..5561a155 --- /dev/null +++ b/aml_service/51-deployOnAks.py @@ -0,0 +1,103 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os, json, datetime, sys +from operator import attrgetter +from azureml.core import Workspace +from azureml.core.model import Model +from azureml.core.image import Image +from azureml.core.compute import AksCompute, ComputeTarget +from azureml.core.webservice import Webservice, AksWebservice + +# Get workspace +ws = Workspace.from_config() + +# Get the Image to deploy details +try: + with open("aml_config/image.json") as f: + config = json.load(f) +except: + print('No new model, thus no deployment on ACI') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + +image_name = config['image_name'] +image_version = config['image_version'] + +images = Image.list(workspace=ws) +image, = (m for m in images if m.version==image_version and m.name == image_name) +print('From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) + +# image = max(images, key=attrgetter('version')) +# print('From Max Version, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) + +# Check if AKS already Available +try: + with open("aml_config/aks_webservice.json") as f: + config = json.load(f) + aks_name = config['aks_name'] + aks_service_name = config['aks_service_name'] + compute_list = ws.compute_targets() + aks_target, =(c for c in compute_list if c.name ==aks_name) + service=Webservice(name =aks_service_name, workspace =ws) + print('Updating AKS service {} with image: {}'.format(aks_service_name,image.image_location)) + service.update(image=image) +except: + aks_name = 'aks'+ datetime.datetime.now().strftime('%m%d%H') + aks_service_name = 'akswebservice'+ datetime.datetime.now().strftime('%m%d%H') + prov_config = AksCompute.provisioning_configuration(agent_count = 6, vm_size = 'Standard_F2', location='eastus') + print('No AKS found in aks_webservice.json. Creating new Aks: {} and AKS Webservice: {}'.format(aks_name,aks_service_name)) + # Create the cluster + aks_target = ComputeTarget.create(workspace = ws, + name = aks_name, + provisioning_configuration = prov_config) + + aks_target.wait_for_completion(show_output = True) + print(aks_target.provisioning_state) + print(aks_target.provisioning_errors) + + # Use the default configuration (can also provide parameters to customize) + aks_config = AksWebservice.deploy_configuration(enable_app_insights=True) + + service = Webservice.deploy_from_image(workspace = ws, + name = aks_service_name, + image = image, + deployment_config = aks_config, + deployment_target = aks_target) + + service.wait_for_deployment(show_output = True) + print(service.state) + print('Deployed AKS Webservice: {} \nWebservice Uri: {}'.format(service.name, service.scoring_uri)) + + + +# Writing the AKS details to /aml_config/aks_webservice.json +aks_webservice = {} +aks_webservice['aks_name'] = aks_name +aks_webservice['aks_service_name'] = service.name +aks_webservice['aks_url'] = service.scoring_uri +aks_webservice['aks_keys'] = service.get_keys() +with open('aml_config/aks_webservice.json', 'w') as outfile: + json.dump(aks_webservice,outfile) \ No newline at end of file diff --git a/aml_service/60-AciWebserviceTest.py b/aml_service/60-AciWebserviceTest.py new file mode 100644 index 00000000..1b1c842b --- /dev/null +++ b/aml_service/60-AciWebserviceTest.py @@ -0,0 +1,62 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import numpy +import os, json, datetime, sys +from operator import attrgetter +from azureml.core import Workspace +from azureml.core.model import Model +from azureml.core.image import Image +from azureml.core.webservice import Webservice +from azureml.core.webservice import AciWebservice + +# Get workspace +ws = Workspace.from_config() + +# Get the ACI Details +try: + with open("aml_config/aci_webservice.json") as f: + config = json.load(f) +except: + print('No new model, thus no deployment on ACI') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + +service_name = config['aci_name'] +# Get the hosted web service +service=Webservice(name = service_name, workspace =ws) + +# Input for Model with all features +input_j = [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]] +print(input_j) +test_sample = json.dumps({'data': input_j}) +test_sample = bytes(test_sample,encoding = 'utf8') +try: + prediction = service.run(input_data = test_sample) + print(prediction) +except Exception as e: + result = str(e) + print(result) + raise Exception('ACI service is not working as expected') diff --git a/aml_service/61-AksWebserviceTest.py b/aml_service/61-AksWebserviceTest.py new file mode 100644 index 00000000..66ca4ef0 --- /dev/null +++ b/aml_service/61-AksWebserviceTest.py @@ -0,0 +1,65 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import numpy +import os, json, datetime, sys +from operator import attrgetter +from azureml.core import Workspace +from azureml.core.model import Model +from azureml.core.image import Image +from azureml.core.webservice import Webservice + + +# Get workspace +ws = Workspace.from_config() + +# Get the AKS Details +try: + with open("aml_config/aks_webservice.json") as f: + config = json.load(f) +except: + print('No new model, thus no deployment on ACI') + #raise Exception('No new model to register as production model perform better') + sys.exit(0) + +service_name = config['aks_service_name'] +# Get the hosted web service +service=Webservice(workspace =ws, name = service_name) + +# Input for Model with all features +input_j = [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]] +print(input_j) +test_sample = json.dumps({'data': input_j}) +test_sample = bytes(test_sample,encoding = 'utf8') +try: + prediction = service.run(input_data = test_sample) + print(prediction) +except Exception as e: + result = str(e) + print(result) + raise Exception('AKS service is not working as expected') + +# Delete aci after test +service.delete() diff --git a/aml_service/helper/azcli.py b/aml_service/helper/azcli.py new file mode 100644 index 00000000..b29c710b --- /dev/null +++ b/aml_service/helper/azcli.py @@ -0,0 +1,67 @@ + +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import subprocess + +def az_login(sp_user : str, sp_password : str, sp_tenant_id : str): + """ + Uses the provided service principal credentials to log into the azure cli. + This should always be the first step in executing az cli commands. + """ + cmd = "az login --service-principal --username {} --password {} --tenant {}" + out, err = run_cmd(cmd.format(sp_user, sp_password, sp_tenant_id)) + return out, err + +def run_cmd(cmd : str): + """ + Runs an arbitrary command line command. Works for Linux or Windows. + Returns a tuple of output and error. + """ + proc = subprocess.Popen(cmd, shell = True, stdout=subprocess.PIPE, universal_newlines = True) + output, error = proc.communicate() + if proc.returncode !=0: + print('Following command execution failed: {}'.format(cmd)) + raise Exception('Operation Failed. Look at console logs for error info') + return output, error + +def az_account_set(subscription_id : str): + """ + Sets the correct azure subscription. + This should always be run after the az_login. + """ + cmd = "az account set -s {}" + out, err = run_cmd(cmd.format(subscription_id)) + return out, err + +def az_acr_create(resource_group : str, acr_name : str): + cmd = "az acr create --resource-group {} --name {} --sku Basic" + out, err = run_cmd(cmd.format(resource_group, acr_name)) + return out, err + +def az_acr_login(acr_name : str): + cmd = "az acr login --name {}" + out, err = run_cmd(cmd.format(acr_name)) + return out, err \ No newline at end of file diff --git a/code/scoring/conda_dependencies.yml b/code/scoring/conda_dependencies.yml new file mode 100644 index 00000000..9bca0710 --- /dev/null +++ b/code/scoring/conda_dependencies.yml @@ -0,0 +1,49 @@ +# Conda environment specification. The dependencies defined in this file will + +# be automatically provisioned for managed runs. These include runs against + +# the localdocker, remotedocker, and cluster compute targets. + + +# Note that this file is NOT used to automatically manage dependencies for the + +# local compute target. To provision these dependencies locally, run: + +# conda env update --file conda_dependencies.yml + + +# Details about the Conda environment file format: + +# https://conda.io/docs/using/envs.html#create-environment-file-by-hand + + +# For managing Spark packages and configuration, see spark_dependencies.yml. + + +# Version of this configuration file's structure and semantics in AzureML. + +# This directive is stored in a comment to preserve the Conda file structure. + +# [AzureMlVersion] = 2 + + +name: project_environment +dependencies: + # The python interpreter version. + + # Currently Azure ML Workbench only supports 3.5.2 and later. + +- python=3.6.2 + # Required by azureml-defaults, installed separately through Conda to + + # get a prebuilt version and not require build tools for the install. + +- psutil=5.3 + +- pip: + # Required packages for AzureML execution, history, and data preparation. + - azureml-sdk[notebooks] # add the version to lock it ==0.1.74 + - scipy==1.0.0 + - scikit-learn==0.19.1 + - pandas==0.23.1 + - numpy==1.14.5 \ No newline at end of file diff --git a/code/scoring/score.py b/code/scoring/score.py new file mode 100644 index 00000000..82ab5930 --- /dev/null +++ b/code/scoring/score.py @@ -0,0 +1,54 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import pickle +import json +import numpy +from sklearn.ensemble import RandomForestClassifier +from azureml.core.model import Model + +def init(): + global model + from sklearn.externals import joblib + # load the model from file into a global object + model_path = Model.get_model_path(model_name = 'sklearn_regression_model.pkl') + model = joblib.load(model_path) + +def run(raw_data): + try: + data = json.loads(raw_data)['data'] + data = numpy.array(data) + result = model.predict(data) + return json.dumps({"result": result.tolist()}) + except Exception as e: + result = str(e) + return json.dumps({"error": result}) + +if __name__ == "__main__": + # Test scoring + init() + test_row = '{"data":[[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}' + prediction = run(test_row) + print('Test result: ',prediction) \ No newline at end of file diff --git a/code/testing/data_test.py b/code/testing/data_test.py new file mode 100644 index 00000000..8726b4b7 --- /dev/null +++ b/code/testing/data_test.py @@ -0,0 +1,89 @@ +# test integrity of the input data +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +import sys +import os +import numpy as np +import pandas as pd + +# number of features +n_columns = 10 + +# distribution of features in the training set +historical_mean = np.array([-3.63962254e-16, 1.26972339e-16, -8.01646331e-16, 1.28856202e-16, + -8.99230414e-17, 1.29609747e-16, -4.56397112e-16, 3.87573332e-16, + -3.84559152e-16, -3.39848813e-16, 1.52133484e+02]) +historical_std = np.array([4.75651494e-02, 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, + 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, + 4.75651494e-02, 4.75651494e-02, 7.70057459e+01]) + +# maximal relative change in feature mean or standrd deviation that we can tolerate +shift_tolerance = 3 + +def check_schema(X): + n_actual_columns = X.shape[1] + if n_actual_columns != n_columns: + print("Error: found {} feature columns. The data should have {} feature columns.".format(n_actual_columns, n_columns)) + return False + + return True + +def check_missing_values(dataset): + n_nan = np.sum(np.isnan(dataset.values)) + if n_nan > 0: + print("Warning: the data has {} missing values".format(n_nan)) + return False + return True + +def check_distribution(dataset): + mean = np.mean(dataset.values, axis=0) + std = np.mean(dataset.values, axis=0) + if np.sum(abs(mean - historical_mean) > shift_tolerance * abs(historical_mean)) > 0 or \ + np.sum(abs(std - historical_std) > shift_tolerance * abs(historical_std)) > 0: + print("Warning: new data has different distribution than the training data") + return False + return True + +def main(): + filename = sys.argv[1] + if not os.path.exists(filename): + print("Error: The file {} does not exist".format(filename)) + return + + dataset = pd.read_csv(filename) + if check_schema(dataset[dataset.columns[:-1]]): + print("Data schema test succeeded") + if check_missing_values(dataset) and check_distribution(dataset): + print("Missing values test passed") + print("Data distribution test passed") + else: + print("There might be some issues with the data. Please check warning messages.") + +if __name__ == "__main__": + main() + + diff --git a/code/training/train.py b/code/training/train.py new file mode 100644 index 00000000..374b0323 --- /dev/null +++ b/code/training/train.py @@ -0,0 +1,91 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import pickle +from azureml.core import Workspace +from azureml.core.run import Run +import os +from sklearn.datasets import load_diabetes +from sklearn.linear_model import Ridge +from sklearn.metrics import mean_squared_error +from sklearn.model_selection import train_test_split +from sklearn.externals import joblib +import numpy as np +import json +import subprocess +from typing import Tuple, List + +# run_history_name = 'devops-ai' +#os.makedirs('./outputs', exist_ok=True) +# #ws.get_details() +# Start recording results to AML +#run = Run.start_logging(workspace = ws, history_name = run_history_name) +run = Run.get_submitted_run() + + +X, y = load_diabetes(return_X_y = True) +columns = ['age', 'gender', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'] +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) +data = { + "train":{"X": X_train, "y": y_train}, + "test":{"X": X_test, "y": y_test} +} + +print('Running train.py') + +# Randomly pic alpha +alphas = np.arange(0.0, 1.0, 0.05) +alpha=alphas[np.random.choice(alphas.shape[0], 1, replace=False)][0] +print(alpha) +run.log('alpha', alpha) +reg = Ridge(alpha = alpha) +reg.fit(data['train']['X'], data['train']['y']) +preds = reg.predict(data['test']['X']) +run.log('mse', mean_squared_error(preds, data['test']['y'])) + + +# Save model as part of the run history +model_name = "sklearn_regression_model.pkl" +# model_name = "." + +with open(model_name, "wb") as file: + joblib.dump(value = reg, filename = model_name) + +# upload the model file explicitly into artifacts +run.upload_file(name = './outputs/'+ model_name, path_or_stream = model_name) +print('Uploaded the model {} to experiment {}'.format(model_name, run.experiment.name)) +dirpath = os.getcwd() +print(dirpath) + + +# register the model +# run.log_model(file_name = model_name) +# print('Registered the model {} to run history {}'.format(model_name, run.history.name)) + + + +print('Following files are uploaded ') +print(run.get_file_names()) +run.complete() \ No newline at end of file diff --git a/data/diabetes.csv b/data/diabetes.csv new file mode 100644 index 00000000..162002a7 --- /dev/null +++ b/data/diabetes.csv @@ -0,0 +1,443 @@ +AGE,SEX,BMI,BP,S1,S2,S3,S4,S5,S6,Y +0.0380759064334241,0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052,151.0 +-0.001882016527791,-0.044641636506989,-0.0514740612388061,-0.0263278347173518,-0.00844872411121698,-0.019163339748222,0.0744115640787594,-0.0394933828740919,-0.0683297436244215,-0.09220404962683,75.0 +0.0852989062966783,0.0506801187398187,0.0444512133365941,-0.00567061055493425,-0.0455994512826475,-0.0341944659141195,-0.0323559322397657,-0.00259226199818282,0.00286377051894013,-0.0259303389894746,141.0 +-0.0890629393522603,-0.044641636506989,-0.0115950145052127,-0.0366564467985606,0.0121905687618,0.0249905933641021,-0.0360375700438527,0.0343088588777263,0.0226920225667445,-0.0093619113301358,206.0 +0.00538306037424807,-0.044641636506989,-0.0363846922044735,0.0218723549949558,0.00393485161259318,0.0155961395104161,0.0081420836051921,-0.00259226199818282,-0.0319914449413559,-0.0466408735636482,135.0 +-0.0926954778032799,-0.044641636506989,-0.0406959404999971,-0.0194420933298793,-0.0689906498720667,-0.0792878444118122,0.0412768238419757,-0.076394503750001,-0.0411803851880079,-0.0963461565416647,97.0 +-0.0454724779400257,0.0506801187398187,-0.0471628129432825,-0.015999222636143,-0.040095639849843,-0.0248000120604336,0.000778807997017968,-0.0394933828740919,-0.0629129499162512,-0.0383566597339788,138.0 +0.063503675590561,0.0506801187398187,-0.00189470584028465,0.0666296740135272,0.0906198816792644,0.108914381123697,0.0228686348215404,0.0177033544835672,-0.0358167281015492,0.00306440941436832,63.0 +0.0417084448844436,0.0506801187398187,0.0616962065186885,-0.0400993174922969,-0.0139525355440215,0.00620168565673016,-0.0286742944356786,-0.00259226199818282,-0.0149564750249113,0.0113486232440377,110.0 +-0.0709002470971626,-0.044641636506989,0.0390621529671896,-0.0332135761048244,-0.0125765826858204,-0.034507614375909,-0.0249926566315915,-0.00259226199818282,0.0677363261102861,-0.0135040182449705,310.0 +-0.0963280162542995,-0.044641636506989,-0.0838084234552331,0.0081008722200108,-0.103389471327095,-0.0905611890362353,-0.0139477432193303,-0.076394503750001,-0.0629129499162512,-0.0342145528191441,101.0 +0.0271782910803654,0.0506801187398187,0.0175059114895716,-0.0332135761048244,-0.00707277125301585,0.0459715403040008,-0.0654906724765493,0.0712099797536354,-0.096433222891784,-0.0590671943081523,69.0 +0.0162806757273067,-0.044641636506989,-0.0288400076873072,-0.00911348124867051,-0.00432086553661359,-0.00976888589453599,0.0449584616460628,-0.0394933828740919,-0.0307512098645563,-0.0424987666488135,179.0 +0.00538306037424807,0.0506801187398187,-0.00189470584028465,0.0081008722200108,-0.00432086553661359,-0.0157187066685371,-0.0029028298070691,-0.00259226199818282,0.0383932482116977,-0.0135040182449705,185.0 +0.0453409833354632,-0.044641636506989,-0.0256065714656645,-0.0125563519424068,0.0176943801946045,-6.12835790604833e-05,0.0817748396869335,-0.0394933828740919,-0.0319914449413559,-0.0756356219674911,118.0 +-0.0527375548420648,0.0506801187398187,-0.0180618869484982,0.0804011567884723,0.0892439288210632,0.107661787276539,-0.0397192078479398,0.108111100629544,0.0360557900898319,-0.0424987666488135,171.0 +-0.00551455497881059,-0.044641636506989,0.0422955891888323,0.0494153205448459,0.0245741444856101,-0.0238605666750649,0.0744115640787594,-0.0394933828740919,0.0522799997967812,0.0279170509033766,166.0 +0.0707687524926,0.0506801187398187,0.0121168511201671,0.0563010619323185,0.034205814493018,0.0494161733836856,-0.0397192078479398,0.0343088588777263,0.027367707542609,-0.00107769750046639,144.0 +-0.0382074010379866,-0.044641636506989,-0.0105172024313319,-0.0366564467985606,-0.0373437341334407,-0.0194764882100115,-0.0286742944356786,-0.00259226199818282,-0.0181182673078967,-0.0176461251598052,97.0 +-0.0273097856849279,-0.044641636506989,-0.0180618869484982,-0.0400993174922969,-0.00294491267841247,-0.0113346282034837,0.0375951860378887,-0.0394933828740919,-0.0089440189577978,-0.0549250873933176,168.0 +-0.0491050163910452,-0.044641636506989,-0.0568631216082106,-0.0435421881860331,-0.0455994512826475,-0.043275771306016,0.000778807997017968,-0.0394933828740919,-0.0119006848015081,0.0154907301588724,68.0 +-0.0854304009012408,0.0506801187398187,-0.0223731352440218,0.00121513083253827,-0.0373437341334407,-0.0263657543693812,0.0155053592133662,-0.0394933828740919,-0.072128454601956,-0.0176461251598052,49.0 +-0.0854304009012408,-0.044641636506989,-0.00405032998804645,-0.00911348124867051,-0.00294491267841247,0.00776742796567782,0.0228686348215404,-0.0394933828740919,-0.0611765950943345,-0.0135040182449705,68.0 +0.0453409833354632,0.0506801187398187,0.0606183944448076,0.0310533436263482,0.0287020030602135,-0.0473467013092799,-0.0544457590642881,0.0712099797536354,0.133598980013008,0.135611830689079,245.0 +-0.0636351701951234,-0.044641636506989,0.0358287167455469,-0.0228849640236156,-0.0304639698424351,-0.0188501912864324,-0.00658446761115617,-0.00259226199818282,-0.0259524244351894,-0.0549250873933176,184.0 +-0.067267708646143,0.0506801187398187,-0.0126728265790937,-0.0400993174922969,-0.0153284884022226,0.0046359433477825,-0.0581273968683752,0.0343088588777263,0.0191990330785671,-0.0342145528191441,202.0 +-0.107225631607358,-0.044641636506989,-0.0773415510119477,-0.0263278347173518,-0.0896299427450836,-0.0961978613484469,0.0265502726256275,-0.076394503750001,-0.0425721049227942,-0.0052198044153011,137.0 +-0.0236772472339084,-0.044641636506989,0.0595405823709267,-0.0400993174922969,-0.0428475455662452,-0.0435889197678055,0.0118237214092792,-0.0394933828740919,-0.0159982677581387,0.0403433716478807,85.0 +0.0526060602375023,-0.044641636506989,-0.0212953231701409,-0.0745280244296595,-0.040095639849843,-0.0376390989938044,-0.00658446761115617,-0.0394933828740919,-0.000609254186102297,-0.0549250873933176,131.0 +0.0671362140415805,0.0506801187398187,-0.00620595413580824,0.063186803319791,-0.0428475455662452,-0.0958847128866574,0.052321737254237,-0.076394503750001,0.0594238004447941,0.0527696923923848,283.0 +-0.0600026317441039,-0.044641636506989,0.0444512133365941,-0.0194420933298793,-0.00982467696941811,-0.00757684666200928,0.0228686348215404,-0.0394933828740919,-0.0271286455543265,-0.0093619113301358,129.0 +-0.0236772472339084,-0.044641636506989,-0.0654856181992578,-0.081413765817132,-0.0387196869916418,-0.0536096705450705,0.0596850128624111,-0.076394503750001,-0.0371283460104736,-0.0424987666488135,59.0 +0.0344433679824045,0.0506801187398187,0.125287118877662,0.0287580963824284,-0.0538551684318543,-0.0129003705124313,-0.10230705051742,0.108111100629544,0.000271485727907132,0.0279170509033766,341.0 +0.030810829531385,-0.044641636506989,-0.0503962491649252,-0.00222773986119799,-0.0442234984244464,-0.0899348921126563,0.118591217727804,-0.076394503750001,-0.0181182673078967,0.00306440941436832,87.0 +0.0162806757273067,-0.044641636506989,-0.063329994051496,-0.0573136709609782,-0.0579830270064577,-0.0489124436182275,0.0081420836051921,-0.0394933828740919,-0.0594726974107223,-0.0673514081378217,65.0 +0.0489735217864827,0.0506801187398187,-0.030995631835069,-0.0492803060204031,0.0493412959332305,-0.00413221358232442,0.133317768944152,-0.0535158088069373,0.0213108465682448,0.0196328370737072,102.0 +0.0126481372762872,-0.044641636506989,0.0228949718589761,0.0528581912385822,0.00806271018719657,-0.0285577936019079,0.0375951860378887,-0.0394933828740919,0.0547240033481791,-0.0259303389894746,265.0 +-0.00914709342983014,-0.044641636506989,0.0110390390462862,-0.0573136709609782,-0.0249601584096305,-0.0429626228442264,0.0302319104297145,-0.0394933828740919,0.01703713241478,-0.0052198044153011,276.0 +-0.00188201652779104,0.0506801187398187,0.0713965151836166,0.0976155102571536,0.0878679759628621,0.0754074957122168,-0.0213110188275045,0.0712099797536354,0.0714240327805764,0.0237749439885419,252.0 +-0.00188201652779104,0.0506801187398187,0.0142724752679289,-0.0745280244296595,0.00255889875439205,0.00620168565673016,-0.0139477432193303,-0.00259226199818282,0.0191990330785671,0.00306440941436832,90.0 +0.00538306037424807,0.0506801187398187,-0.00836157828357004,0.0218723549949558,0.054845107366035,0.07321545647969,-0.0249926566315915,0.0343088588777263,0.0125531528133893,0.094190761540732,100.0 +-0.099960554705319,-0.044641636506989,-0.0676412423470196,-0.108956731367022,-0.0744944613048712,-0.072711726714232,0.0155053592133662,-0.0394933828740919,-0.0498684677352306,-0.0093619113301358,55.0 +-0.0600026317441039,0.0506801187398187,-0.0105172024313319,-0.0148515990830405,-0.0497273098572509,-0.0235474182132754,-0.0581273968683752,0.0158582984397717,-0.00991895736315477,-0.0342145528191441,61.0 +0.0199132141783263,-0.044641636506989,-0.0234509473179027,-0.0710851537359232,0.0204462859110067,-0.0100820343563255,0.118591217727804,-0.076394503750001,-0.0425721049227942,0.0734802269665584,92.0 +0.0453409833354632,0.0506801187398187,0.068163078961974,0.0081008722200108,-0.0167044412604238,0.0046359433477825,-0.0765355858888105,0.0712099797536354,0.0324332257796019,-0.0176461251598052,259.0 +0.0271782910803654,0.0506801187398187,-0.0353068801305926,0.0322009670761646,-0.0112006298276192,0.00150445872988718,-0.0102661054152432,-0.00259226199818282,-0.0149564750249113,-0.0507829804784829,53.0 +-0.0563700932930843,-0.044641636506989,-0.0115950145052127,-0.0332135761048244,-0.0469754041408486,-0.0476598497710694,0.00446044580110504,-0.0394933828740919,-0.00797939755454164,-0.0880619427119953,190.0 +-0.0781653239992017,-0.044641636506989,-0.0730303027164241,-0.0573136709609782,-0.0841261313122791,-0.0742774690231797,-0.0249926566315915,-0.0394933828740919,-0.0181182673078967,-0.0839198357971606,142.0 +0.0671362140415805,0.0506801187398187,-0.041773752573878,0.0115437429137471,0.00255889875439205,0.00588853719494063,0.0412768238419757,-0.0394933828740919,-0.0594726974107223,-0.0217882320746399,75.0 +-0.0418399394890061,0.0506801187398187,0.0142724752679289,-0.00567061055493425,-0.0125765826858204,0.00620168565673016,-0.0728539480847234,0.0712099797536354,0.0354619386607697,-0.0135040182449705,142.0 +0.0344433679824045,-0.044641636506989,-0.00728376620968916,0.0149866136074833,-0.0442234984244464,-0.0373259505320149,-0.0029028298070691,-0.0394933828740919,-0.02139368094036,0.00720651632920303,155.0 +0.0598711371395414,0.0506801187398187,0.0164280994156907,0.0287580963824284,-0.0414715927080441,-0.029184090525487,-0.0286742944356786,-0.00259226199818282,-0.00239668149341427,-0.0217882320746399,225.0 +-0.0527375548420648,-0.044641636506989,-0.00943939035745095,-0.00567061055493425,0.0397096259258226,0.0447189464568426,0.0265502726256275,-0.00259226199818282,-0.0181182673078967,-0.0135040182449705,59.0 +-0.00914709342983014,-0.044641636506989,-0.0159062628007364,0.0700725447072635,0.0121905687618,0.0221722572079963,0.0155053592133662,-0.00259226199818282,-0.0332487872476258,0.0486275854775501,104.0 +-0.0491050163910452,-0.044641636506989,0.0250505960067379,0.0081008722200108,0.0204462859110067,0.0177881787429428,0.052321737254237,-0.0394933828740919,-0.0411803851880079,0.00720651632920303,182.0 +-0.0418399394890061,-0.044641636506989,-0.0493184370910443,-0.0366564467985606,-0.00707277125301585,-0.0226079728279068,0.0854564774910206,-0.0394933828740919,-0.0664881482228354,0.00720651632920303,128.0 +-0.0418399394890061,-0.044641636506989,0.0412177771149514,-0.0263278347173518,-0.0318399227006362,-0.0304366843726451,-0.0360375700438527,0.00294290613320356,0.0336568129023847,-0.0176461251598052,52.0 +-0.0273097856849279,-0.044641636506989,-0.063329994051496,-0.0504279295735057,-0.0896299427450836,-0.104339721354975,0.052321737254237,-0.076394503750001,-0.0561575730950062,-0.0673514081378217,37.0 +0.0417084448844436,-0.044641636506989,-0.064407806125377,0.0356438377699009,0.0121905687618,-0.057993749010124,0.181179060397284,-0.076394503750001,-0.000609254186102297,-0.0507829804784829,170.0 +0.063503675590561,0.0506801187398187,-0.0256065714656645,0.0115437429137471,0.0644767773734429,0.048476727998317,0.0302319104297145,-0.00259226199818282,0.0383932482116977,0.0196328370737072,170.0 +-0.0709002470971626,-0.044641636506989,-0.00405032998804645,-0.0400993174922969,-0.0662387441556644,-0.0786615474882331,0.052321737254237,-0.076394503750001,-0.0514005352605825,-0.0342145528191441,61.0 +-0.0418399394890061,0.0506801187398187,0.00457216660300077,-0.0538708002672419,-0.0442234984244464,-0.0273051997547498,-0.0802172236928976,0.0712099797536354,0.0366457977933988,0.0196328370737072,144.0 +-0.0273097856849279,0.0506801187398187,-0.00728376620968916,-0.0400993174922969,-0.0112006298276192,-0.0138398158977999,0.0596850128624111,-0.0394933828740919,-0.0823814832581028,-0.0259303389894746,52.0 +-0.034574862586967,-0.044641636506989,-0.0374625042783544,-0.0607565416547144,0.0204462859110067,0.0434663526096845,-0.0139477432193303,-0.00259226199818282,-0.0307512098645563,-0.0714935150526564,128.0 +0.0671362140415805,0.0506801187398187,-0.0256065714656645,-0.0400993174922969,-0.0634868384392622,-0.0598726397808612,-0.0029028298070691,-0.0394933828740919,-0.0191970476139445,0.0113486232440377,71.0 +-0.0454724779400257,0.0506801187398187,-0.0245287593917836,0.0597439326260547,0.00531080447079431,0.0149698425868371,-0.0544457590642881,0.0712099797536354,0.0423448954496075,0.0154907301588724,163.0 +-0.00914709342983014,0.0506801187398187,-0.0180618869484982,-0.0332135761048244,-0.0208322998350272,0.0121515064307313,-0.0728539480847234,0.0712099797536354,0.000271485727907132,0.0196328370737072,150.0 +0.0417084448844436,0.0506801187398187,-0.0148284507268555,-0.0171468461892456,-0.00569681839481472,0.00839372488925688,-0.0139477432193303,-0.00185423958066465,-0.0119006848015081,0.00306440941436832,97.0 +0.0380759064334241,0.0506801187398187,-0.0299178197611881,-0.0400993174922969,-0.0332158755588373,-0.0241737151368545,-0.0102661054152432,-0.00259226199818282,-0.0129079422541688,0.00306440941436832,160.0 +0.0162806757273067,-0.044641636506989,-0.0460850008694016,-0.00567061055493425,-0.0758704141630723,-0.0614383820898088,-0.0139477432193303,-0.0394933828740919,-0.0514005352605825,0.0196328370737072,178.0 +-0.00188201652779104,-0.044641636506989,-0.0697968664947814,-0.0125563519424068,-0.000193006962010205,-0.00914258897095694,0.0707299262746723,-0.0394933828740919,-0.0629129499162512,0.0403433716478807,48.0 +-0.00188201652779104,-0.044641636506989,0.0336730925977851,0.125158475807044,0.0245741444856101,0.0262431872112602,-0.0102661054152432,-0.00259226199818282,0.0267142576335128,0.0610539062220542,270.0 +0.063503675590561,0.0506801187398187,-0.00405032998804645,-0.0125563519424068,0.103003457403075,0.0487898764601065,0.056003375058324,-0.00259226199818282,0.0844952822124031,-0.0176461251598052,202.0 +0.0126481372762872,0.0506801187398187,-0.02021751109626,-0.00222773986119799,0.0383336730676214,0.05317395492516,-0.00658446761115617,0.0343088588777263,-0.00514530798026311,-0.0093619113301358,111.0 +0.0126481372762872,0.0506801187398187,0.00241654245523897,0.0563010619323185,0.0273260502020124,0.0171618818193638,0.0412768238419757,-0.0394933828740919,0.00371173823343597,0.0734802269665584,85.0 +-0.00914709342983014,0.0506801187398187,-0.030995631835069,-0.0263278347173518,-0.0112006298276192,-0.00100072896442909,-0.0213110188275045,-0.00259226199818282,0.0062093156165054,0.0279170509033766,42.0 +-0.0309423241359475,0.0506801187398187,0.0282840322283806,0.0700725447072635,-0.126780669916514,-0.106844909049291,-0.0544457590642881,-0.047980640675551,-0.0307512098645563,0.0154907301588724,170.0 +-0.0963280162542995,-0.044641636506989,-0.0363846922044735,-0.0745280244296595,-0.0387196869916418,-0.0276183482165393,0.0155053592133662,-0.0394933828740919,-0.0740888714915354,-0.00107769750046639,200.0 +0.00538306037424807,-0.044641636506989,-0.0579409336820915,-0.0228849640236156,-0.0676146970138656,-0.0683276482491785,-0.0544457590642881,-0.00259226199818282,0.0428956878925287,-0.0839198357971606,252.0 +-0.103593093156339,-0.044641636506989,-0.0374625042783544,-0.0263278347173518,0.00255889875439205,0.0199802179754696,0.0118237214092792,-0.00259226199818282,-0.0683297436244215,-0.0259303389894746,113.0 +0.0707687524926,-0.044641636506989,0.0121168511201671,0.0425295791573734,0.0713565416644485,0.0534871033869495,0.052321737254237,-0.00259226199818282,0.0253931349154494,-0.0052198044153011,143.0 +0.0126481372762872,0.0506801187398187,-0.0223731352440218,-0.0297707054110881,0.0108146159035988,0.0284352264437869,-0.0213110188275045,0.0343088588777263,-0.00608024819631442,-0.00107769750046639,51.0 +-0.0164121703318693,-0.044641636506989,-0.0353068801305926,-0.0263278347173518,0.0328298616348169,0.0171618818193638,0.100183028707369,-0.0394933828740919,-0.0702093127286876,-0.0797777288823259,52.0 +-0.0382074010379866,-0.044641636506989,0.00996122697240527,-0.0469850588797694,-0.0593589798646588,-0.0529833736214915,-0.0102661054152432,-0.0394933828740919,-0.0159982677581387,-0.0424987666488135,210.0 +0.00175052192322852,-0.044641636506989,-0.0396181284261162,-0.100923366426447,-0.0290880169842339,-0.0301235359108556,0.0449584616460628,-0.0501947079281055,-0.0683297436244215,-0.129483011860342,65.0 +0.0453409833354632,-0.044641636506989,0.0713965151836166,0.00121513083253827,-0.00982467696941811,-0.00100072896442909,0.0155053592133662,-0.0394933828740919,-0.0411803851880079,-0.0714935150526564,141.0 +-0.0709002470971626,0.0506801187398187,-0.0751859268641859,-0.0400993174922969,-0.051103262715452,-0.015092409744958,-0.0397192078479398,-0.00259226199818282,-0.096433222891784,-0.0342145528191441,55.0 +0.0453409833354632,-0.044641636506989,-0.00620595413580824,0.0115437429137471,0.0631008245152418,0.0162224364339952,0.0965013909032818,-0.0394933828740919,0.0428956878925287,-0.0383566597339788,134.0 +-0.0527375548420648,0.0506801187398187,-0.0406959404999971,-0.067642283042187,-0.0318399227006362,-0.0370128020702253,0.0375951860378887,-0.0394933828740919,-0.0345237153303495,0.0693381200517237,42.0 +-0.0454724779400257,-0.044641636506989,-0.0482406250171634,-0.0194420933298793,-0.000193006962010205,-0.0160318551303266,0.0670482884705852,-0.0394933828740919,-0.0247911874324607,0.0196328370737072,111.0 +0.0126481372762872,-0.044641636506989,-0.0256065714656645,-0.0400993174922969,-0.0304639698424351,-0.0451546620767532,0.0780932018828464,-0.076394503750001,-0.072128454601956,0.0113486232440377,98.0 +0.0453409833354632,-0.044641636506989,0.0519958978537604,-0.0538708002672419,0.0631008245152418,0.0647604480113727,-0.0102661054152432,0.0343088588777263,0.0372320112089689,0.0196328370737072,164.0 +-0.0200447087828888,-0.044641636506989,0.00457216660300077,0.0976155102571536,0.00531080447079431,-0.0207290820571696,0.0633666506664982,-0.0394933828740919,0.0125531528133893,0.0113486232440377,48.0 +-0.0491050163910452,-0.044641636506989,-0.064407806125377,-0.10207098997955,-0.00294491267841247,-0.0154055582067476,0.0633666506664982,-0.0472426182580328,-0.0332487872476258,-0.0549250873933176,96.0 +-0.0781653239992017,-0.044641636506989,-0.0169840748746173,-0.0125563519424068,-0.000193006962010205,-0.0135266674360104,0.0707299262746723,-0.0394933828740919,-0.0411803851880079,-0.09220404962683,90.0 +-0.0709002470971626,-0.044641636506989,-0.0579409336820915,-0.081413765817132,-0.0455994512826475,-0.0288709420636975,-0.0434008456520269,-0.00259226199818282,0.00114379737951254,-0.0052198044153011,162.0 +0.0562385986885218,0.0506801187398187,0.00996122697240527,0.0494153205448459,-0.00432086553661359,-0.0122740735888523,-0.0434008456520269,0.0343088588777263,0.060787754150744,0.0320591578182113,150.0 +-0.0273097856849279,-0.044641636506989,0.088641508365711,-0.0251802111642493,0.0218222387692079,0.0425269072243159,-0.0323559322397657,0.0343088588777263,0.00286377051894013,0.0776223338813931,279.0 +0.00175052192322852,0.0506801187398187,-0.00512814206192736,-0.0125563519424068,-0.0153284884022226,-0.0138398158977999,0.0081420836051921,-0.0394933828740919,-0.00608024819631442,-0.0673514081378217,92.0 +-0.00188201652779104,-0.044641636506989,-0.064407806125377,0.0115437429137471,0.0273260502020124,0.0375165318356834,-0.0139477432193303,0.0343088588777263,0.0117839003835759,-0.0549250873933176,83.0 +0.0162806757273067,-0.044641636506989,0.0175059114895716,-0.0228849640236156,0.0603489187988395,0.0444057979950531,0.0302319104297145,-0.00259226199818282,0.0372320112089689,-0.00107769750046639,128.0 +0.0162806757273067,0.0506801187398187,-0.0450071887955207,0.063186803319791,0.0108146159035988,-0.00037443204085002,0.0633666506664982,-0.0394933828740919,-0.0307512098645563,0.036201264733046,102.0 +-0.0926954778032799,-0.044641636506989,0.0282840322283806,-0.015999222636143,0.0369577202094203,0.0249905933641021,0.056003375058324,-0.0394933828740919,-0.00514530798026311,-0.00107769750046639,302.0 +0.0598711371395414,0.0506801187398187,0.0412177771149514,0.0115437429137471,0.0410855787840237,0.0707102687853738,-0.0360375700438527,0.0343088588777263,-0.0109044358473771,-0.0300724459043093,198.0 +-0.0273097856849279,-0.044641636506989,0.0649296427403312,-0.00222773986119799,-0.0249601584096305,-0.0172844489774848,0.0228686348215404,-0.0394933828740919,-0.0611765950943345,-0.063209301222987,95.0 +0.0235457526293458,0.0506801187398187,-0.0320734439089499,-0.0400993174922969,-0.0318399227006362,-0.0216685274425382,-0.0139477432193303,-0.00259226199818282,-0.0109044358473771,0.0196328370737072,53.0 +-0.0963280162542995,-0.044641636506989,-0.0762637389380668,-0.0435421881860331,-0.0455994512826475,-0.0348207628376986,0.0081420836051921,-0.0394933828740919,-0.0594726974107223,-0.0839198357971606,134.0 +0.0271782910803654,-0.044641636506989,0.0498402737059986,-0.0550184238203444,-0.00294491267841247,0.0406480164535787,-0.0581273968683752,0.0527594193156808,-0.0529587932392004,-0.0052198044153011,144.0 +0.0199132141783263,0.0506801187398187,0.045529025410475,0.0299057198322448,-0.062110885581061,-0.0558017097775973,-0.0728539480847234,0.0269286347025444,0.0456008084141249,0.0403433716478807,232.0 +0.0380759064334241,0.0506801187398187,-0.00943939035745095,0.0023627543856408,0.00118294589619092,0.0375165318356834,-0.0544457590642881,0.0501763408543672,-0.0259524244351894,0.106617082285236,81.0 +0.0417084448844436,0.0506801187398187,-0.0320734439089499,-0.0228849640236156,-0.0497273098572509,-0.0401442866881206,0.0302319104297145,-0.0394933828740919,-0.126097385560409,0.0154907301588724,104.0 +0.0199132141783263,-0.044641636506989,0.00457216660300077,-0.0263278347173518,0.023198191627409,0.0102726156599941,0.0670482884705852,-0.0394933828740919,-0.0236445575721341,-0.0466408735636482,59.0 +-0.0854304009012408,-0.044641636506989,0.0207393477112143,-0.0263278347173518,0.00531080447079431,0.01966706951368,-0.0029028298070691,-0.00259226199818282,-0.0236445575721341,0.00306440941436832,246.0 +0.0199132141783263,0.0506801187398187,0.0142724752679289,0.063186803319791,0.0149424744782022,0.0202933664372591,-0.0470824834561139,0.0343088588777263,0.0466607723568145,0.0900486546258972,297.0 +0.0235457526293458,-0.044641636506989,0.110197749843329,0.063186803319791,0.0135665216200011,-0.0329418720669614,-0.0249926566315915,0.0206554441536399,0.09924022573399,0.0237749439885419,258.0 +-0.0309423241359475,0.0506801187398187,0.00133873038135806,-0.00567061055493425,0.0644767773734429,0.0494161733836856,-0.0470824834561139,0.108111100629544,0.0837967663655224,0.00306440941436832,229.0 +0.0489735217864827,0.0506801187398187,0.0584627702970458,0.0700725447072635,0.0135665216200011,0.0206065148990486,-0.0213110188275045,0.0343088588777263,0.0220040504561505,0.0279170509033766,275.0 +0.0598711371395414,-0.044641636506989,-0.0212953231701409,0.0872868981759448,0.0452134373586271,0.0315667110616823,-0.0470824834561139,0.0712099797536354,0.0791210813896579,0.135611830689079,281.0 +-0.0563700932930843,0.0506801187398187,-0.0105172024313319,0.0253152256886921,0.023198191627409,0.0400217195299996,-0.0397192078479398,0.0343088588777263,0.0206123307213641,0.0569117993072195,179.0 +0.0162806757273067,-0.044641636506989,-0.0471628129432825,-0.00222773986119799,-0.019456346976826,-0.0429626228442264,0.0339135482338016,-0.0394933828740919,0.027367707542609,0.0279170509033766,200.0 +-0.0491050163910452,-0.044641636506989,0.00457216660300077,0.0115437429137471,-0.0373437341334407,-0.0185370428246429,-0.0176293810234174,-0.00259226199818282,-0.0398095943643375,-0.0217882320746399,200.0 +0.063503675590561,-0.044641636506989,0.0175059114895716,0.0218723549949558,0.00806271018719657,0.0215459602844172,-0.0360375700438527,0.0343088588777263,0.0199084208763183,0.0113486232440377,173.0 +0.0489735217864827,0.0506801187398187,0.0810968238485447,0.0218723549949558,0.0438374845004259,0.0641341510877936,-0.0544457590642881,0.0712099797536354,0.0324332257796019,0.0486275854775501,180.0 +0.00538306037424807,0.0506801187398187,0.034750904671666,-0.00108011630809546,0.152537760298315,0.198787989657293,-0.0618090346724622,0.185234443260194,0.0155668445407018,0.0734802269665584,84.0 +-0.00551455497881059,-0.044641636506989,0.023972783932857,0.0081008722200108,-0.0345918284170385,-0.0388916928409625,0.0228686348215404,-0.0394933828740919,-0.0159982677581387,-0.0135040182449705,121.0 +-0.00551455497881059,0.0506801187398187,-0.00836157828357004,-0.00222773986119799,-0.0332158755588373,-0.0636304213223356,-0.0360375700438527,-0.00259226199818282,0.0805854642386665,0.00720651632920303,161.0 +-0.0890629393522603,-0.044641636506989,-0.0611743699037342,-0.0263278347173518,-0.0552311212900554,-0.0545491159304391,0.0412768238419757,-0.076394503750001,-0.0939356455087147,-0.0549250873933176,99.0 +0.0344433679824045,0.0506801187398187,-0.00189470584028465,-0.0125563519424068,0.0383336730676214,0.0137172487396789,0.0780932018828464,-0.0394933828740919,0.00455189046612778,-0.0963461565416647,109.0 +-0.0527375548420648,-0.044641636506989,-0.0622521819776151,-0.0263278347173518,-0.00569681839481472,-0.005071658967693,0.0302319104297145,-0.0394933828740919,-0.0307512098645563,-0.0714935150526564,115.0 +0.00901559882526763,-0.044641636506989,0.0164280994156907,0.00465800152627453,0.0094386630453977,0.0105857641217836,-0.0286742944356786,0.0343088588777263,0.0389683660308856,0.11904340302974,268.0 +-0.0636351701951234,0.0506801187398187,0.0961861928828773,0.104501251644626,-0.00294491267841247,-0.00475851050590347,-0.00658446761115617,-0.00259226199818282,0.0226920225667445,0.0734802269665584,274.0 +-0.0963280162542995,-0.044641636506989,-0.0697968664947814,-0.067642283042187,-0.019456346976826,-0.0107083312799046,0.0155053592133662,-0.0394933828740919,-0.0468794828442166,-0.0797777288823259,158.0 +0.0162806757273067,0.0506801187398187,-0.0212953231701409,-0.00911348124867051,0.034205814493018,0.047850431074738,0.000778807997017968,-0.00259226199818282,-0.0129079422541688,0.0237749439885419,107.0 +-0.0418399394890061,0.0506801187398187,-0.0536296853865679,-0.0400993174922969,-0.0841261313122791,-0.0717722813288634,-0.0029028298070691,-0.0394933828740919,-0.072128454601956,-0.0300724459043093,83.0 +-0.0745327855481821,-0.044641636506989,0.0433734012627132,-0.0332135761048244,0.0121905687618,0.000251864882729031,0.0633666506664982,-0.0394933828740919,-0.0271286455543265,-0.0466408735636482,103.0 +-0.00551455497881059,-0.044641636506989,0.056307146149284,-0.0366564467985606,-0.0483513569990498,-0.0429626228442264,-0.0728539480847234,0.0379989709653172,0.0507815133629732,0.0569117993072195,272.0 +-0.0926954778032799,-0.044641636506989,-0.0816527993074713,-0.0573136709609782,-0.0607349327228599,-0.068014499787389,0.0486400994501499,-0.076394503750001,-0.0664881482228354,-0.0217882320746399,85.0 +0.00538306037424807,-0.044641636506989,0.0498402737059986,0.0976155102571536,-0.0153284884022226,-0.0163450035921162,-0.00658446761115617,-0.00259226199818282,0.01703713241478,-0.0135040182449705,280.0 +0.0344433679824045,0.0506801187398187,0.11127556191721,0.076958286094736,-0.0318399227006362,-0.03388131745233,-0.0213110188275045,-0.00259226199818282,0.028016506523264,0.0734802269665584,336.0 +0.0235457526293458,-0.044641636506989,0.0616962065186885,0.0528581912385822,-0.0345918284170385,-0.0489124436182275,-0.0286742944356786,-0.00259226199818282,0.0547240033481791,-0.0052198044153011,281.0 +0.0417084448844436,0.0506801187398187,0.0142724752679289,0.0425295791573734,-0.0304639698424351,-0.00131387742621863,-0.0434008456520269,-0.00259226199818282,-0.0332487872476258,0.0154907301588724,118.0 +-0.0273097856849279,-0.044641636506989,0.0476846495582368,-0.0469850588797694,0.034205814493018,0.0572448849284239,-0.0802172236928976,0.13025177315509,0.0450661683362615,0.131469723774244,317.0 +0.0417084448844436,0.0506801187398187,0.0121168511201671,0.0390867084636372,0.054845107366035,0.0444057979950531,0.00446044580110504,-0.00259226199818282,0.0456008084141249,-0.00107769750046639,235.0 +-0.0309423241359475,-0.044641636506989,0.00564997867688165,-0.00911348124867051,0.0190703330528056,0.00682798258030921,0.0744115640787594,-0.0394933828740919,-0.0411803851880079,-0.0424987666488135,60.0 +0.030810829531385,0.0506801187398187,0.0466068374843559,-0.015999222636143,0.0204462859110067,0.0506687672308438,-0.0581273968683752,0.0712099797536354,0.0062093156165054,0.00720651632920303,174.0 +-0.0418399394890061,-0.044641636506989,0.128520555099304,0.063186803319791,-0.0332158755588373,-0.0326287236051719,0.0118237214092792,-0.0394933828740919,-0.0159982677581387,-0.0507829804784829,259.0 +-0.0309423241359475,0.0506801187398187,0.0595405823709267,0.00121513083253827,0.0121905687618,0.0315667110616823,-0.0434008456520269,0.0343088588777263,0.0148227108412663,0.00720651632920303,178.0 +-0.0563700932930843,-0.044641636506989,0.0929527566612346,-0.0194420933298793,0.0149424744782022,0.0234248510551544,-0.0286742944356786,0.0254525898675081,0.0260560896336847,0.0403433716478807,128.0 +-0.0600026317441039,0.0506801187398187,0.0153502873418098,-0.0194420933298793,0.0369577202094203,0.0481635795365275,0.0191869970174533,-0.00259226199818282,-0.0307512098645563,-0.00107769750046639,96.0 +-0.0491050163910452,0.0506801187398187,-0.00512814206192736,-0.0469850588797694,-0.0208322998350272,-0.0204159335953801,-0.0691723102806364,0.0712099797536354,0.061237907519701,-0.0383566597339788,126.0 +0.0235457526293458,-0.044641636506989,0.0703187031097357,0.0253152256886921,-0.0345918284170385,-0.014466112821379,-0.0323559322397657,-0.00259226199818282,-0.0191970476139445,-0.0093619113301358,288.0 +0.00175052192322852,-0.044641636506989,-0.00405032998804645,-0.00567061055493425,-0.00844872411121698,-0.0238605666750649,0.052321737254237,-0.0394933828740919,-0.0089440189577978,-0.0135040182449705,88.0 +-0.034574862586967,0.0506801187398187,-0.000816893766403737,0.0700725447072635,0.0397096259258226,0.0669524872438994,-0.0654906724765493,0.108111100629544,0.0267142576335128,0.0734802269665584,292.0 +0.0417084448844436,0.0506801187398187,-0.0439293767216398,0.063186803319791,-0.00432086553661359,0.0162224364339952,-0.0139477432193303,-0.00259226199818282,-0.0345237153303495,0.0113486232440377,71.0 +0.0671362140415805,0.0506801187398187,0.0207393477112143,-0.00567061055493425,0.0204462859110067,0.0262431872112602,-0.0029028298070691,-0.00259226199818282,0.00864028293306308,0.00306440941436832,197.0 +-0.0273097856849279,0.0506801187398187,0.0606183944448076,0.0494153205448459,0.0851160702464598,0.0863676918748504,-0.0029028298070691,0.0343088588777263,0.0378144788263439,0.0486275854775501,186.0 +-0.0164121703318693,-0.044641636506989,-0.0105172024313319,0.00121513083253827,-0.0373437341334407,-0.0357602082230672,0.0118237214092792,-0.0394933828740919,-0.02139368094036,-0.0342145528191441,25.0 +-0.00188201652779104,0.0506801187398187,-0.0331512559828308,-0.0182944697767768,0.0314539087766158,0.0428400556861055,-0.0139477432193303,0.0199174217361217,0.0102256424049578,0.0279170509033766,84.0 +-0.0127796318808497,-0.044641636506989,-0.0654856181992578,-0.0699375301828207,0.00118294589619092,0.0168487333575743,-0.0029028298070691,-0.00702039650329191,-0.0307512098645563,-0.0507829804784829,96.0 +-0.00551455497881059,-0.044641636506989,0.0433734012627132,0.0872868981759448,0.0135665216200011,0.00714113104209875,-0.0139477432193303,-0.00259226199818282,0.0423448954496075,-0.0176461251598052,195.0 +-0.00914709342983014,-0.044641636506989,-0.0622521819776151,-0.0745280244296595,-0.0235842055514294,-0.0132135189742209,0.00446044580110504,-0.0394933828740919,-0.0358167281015492,-0.0466408735636482,53.0 +-0.0454724779400257,0.0506801187398187,0.0638518306664503,0.0700725447072635,0.133274420283499,0.131461070372543,-0.0397192078479398,0.108111100629544,0.0757375884575476,0.0859065477110625,217.0 +-0.0527375548420648,-0.044641636506989,0.0304396563761424,-0.0745280244296595,-0.0235842055514294,-0.0113346282034837,-0.0029028298070691,-0.00259226199818282,-0.0307512098645563,-0.00107769750046639,172.0 +0.0162806757273067,0.0506801187398187,0.0724743272574975,0.076958286094736,-0.00844872411121698,0.00557538873315109,-0.00658446761115617,-0.00259226199818282,-0.0236445575721341,0.0610539062220542,131.0 +0.0453409833354632,-0.044641636506989,-0.019139699022379,0.0218723549949558,0.0273260502020124,-0.0135266674360104,0.100183028707369,-0.0394933828740919,0.0177634778671173,-0.0135040182449705,214.0 +-0.0418399394890061,-0.044641636506989,-0.0665634302731387,-0.0469850588797694,-0.0373437341334407,-0.043275771306016,0.0486400994501499,-0.0394933828740919,-0.0561575730950062,-0.0135040182449705,59.0 +-0.0563700932930843,0.0506801187398187,-0.0600965578298533,-0.0366564467985606,-0.0882539898868825,-0.0708328359434948,-0.0139477432193303,-0.0394933828740919,-0.0781409106690696,-0.104630370371334,70.0 +0.0707687524926,-0.044641636506989,0.0692408910358548,0.0379390850138207,0.0218222387692079,0.00150445872988718,-0.0360375700438527,0.0391060045915944,0.0776327891955595,0.106617082285236,220.0 +0.00175052192322852,0.0506801187398187,0.0595405823709267,-0.00222773986119799,0.0617248716570406,0.063194705702425,-0.0581273968683752,0.108111100629544,0.0689822116363026,0.12732761685941,268.0 +-0.00188201652779104,-0.044641636506989,-0.0266843835395454,0.0494153205448459,0.0589729659406384,-0.0160318551303266,-0.0470824834561139,0.0712099797536354,0.133598980013008,0.0196328370737072,152.0 +0.0235457526293458,0.0506801187398187,-0.02021751109626,-0.0366564467985606,-0.0139525355440215,-0.015092409744958,0.0596850128624111,-0.0394933828740919,-0.096433222891784,-0.0176461251598052,47.0 +-0.0200447087828888,-0.044641636506989,-0.0460850008694016,-0.0986281192858133,-0.0758704141630723,-0.0598726397808612,-0.0176293810234174,-0.0394933828740919,-0.0514005352605825,-0.0466408735636482,74.0 +0.0417084448844436,0.0506801187398187,0.0713965151836166,0.0081008722200108,0.0383336730676214,0.0159092879722056,-0.0176293810234174,0.0343088588777263,0.0734100780491161,0.0859065477110625,295.0 +-0.0636351701951234,0.0506801187398187,-0.0794971751597095,-0.00567061055493425,-0.071742555588469,-0.0664487574784414,-0.0102661054152432,-0.0394933828740919,-0.0181182673078967,-0.0549250873933176,101.0 +0.0162806757273067,0.0506801187398187,0.00996122697240527,-0.0435421881860331,-0.0965097070360893,-0.0946321190394993,-0.0397192078479398,-0.0394933828740919,0.01703713241478,0.00720651632920303,151.0 +0.0671362140415805,-0.044641636506989,-0.0385403163522353,-0.0263278347173518,-0.0318399227006362,-0.0263657543693812,0.0081420836051921,-0.0394933828740919,-0.0271286455543265,0.00306440941436832,127.0 +0.0453409833354632,0.0506801187398187,0.0196615356373334,0.0390867084636372,0.0204462859110067,0.0259300387494707,0.0081420836051921,-0.00259226199818282,-0.003303712578677,0.0196328370737072,237.0 +0.0489735217864827,-0.044641636506989,0.0272062201544997,-0.0251802111642493,0.023198191627409,0.0184144756665219,-0.0618090346724622,0.0800662487638535,0.0722236508199124,0.0320591578182113,225.0 +0.0417084448844436,-0.044641636506989,-0.00836157828357004,-0.0263278347173518,0.0245741444856101,0.0162224364339952,0.0707299262746723,-0.0394933828740919,-0.0483617248028919,-0.0300724459043093,81.0 +-0.0236772472339084,-0.044641636506989,-0.0159062628007364,-0.0125563519424068,0.0204462859110067,0.0412743133771578,-0.0434008456520269,0.0343088588777263,0.0140724525157685,-0.0093619113301358,151.0 +-0.0382074010379866,0.0506801187398187,0.00457216660300077,0.0356438377699009,-0.0112006298276192,0.00588853719494063,-0.0470824834561139,0.0343088588777263,0.0163049527999418,-0.00107769750046639,107.0 +0.0489735217864827,-0.044641636506989,-0.0428515646477589,-0.0538708002672419,0.0452134373586271,0.0500424703072647,0.0339135482338016,-0.00259226199818282,-0.0259524244351894,-0.063209301222987,64.0 +0.0453409833354632,0.0506801187398187,0.00564997867688165,0.0563010619323185,0.0644767773734429,0.0891860280309562,-0.0397192078479398,0.0712099797536354,0.0155668445407018,-0.0093619113301358,138.0 +0.0453409833354632,0.0506801187398187,-0.0353068801305926,0.063186803319791,-0.00432086553661359,-0.00162702588800815,-0.0102661054152432,-0.00259226199818282,0.0155668445407018,0.0569117993072195,185.0 +0.0162806757273067,-0.044641636506989,0.023972783932857,-0.0228849640236156,-0.0249601584096305,-0.0260526059075917,-0.0323559322397657,-0.00259226199818282,0.0372320112089689,0.0320591578182113,265.0 +-0.0745327855481821,0.0506801187398187,-0.0180618869484982,0.0081008722200108,-0.019456346976826,-0.0248000120604336,-0.0654906724765493,0.0343088588777263,0.0673172179146849,-0.0176461251598052,101.0 +-0.0817978624502212,0.0506801187398187,0.0422955891888323,-0.0194420933298793,0.0397096259258226,0.0575580333902134,-0.0691723102806364,0.108111100629544,0.0471861678860197,-0.0383566597339788,137.0 +-0.067267708646143,-0.044641636506989,-0.0547074974604488,-0.0263278347173518,-0.0758704141630723,-0.082106180567918,0.0486400994501499,-0.076394503750001,-0.0868289932162924,-0.104630370371334,143.0 +0.00538306037424807,-0.044641636506989,-0.00297251791416553,0.0494153205448459,0.0741084473808508,0.0707102687853738,0.0449584616460628,-0.00259226199818282,-0.00149858682029207,-0.0093619113301358,141.0 +-0.00188201652779104,-0.044641636506989,-0.0665634302731387,0.00121513083253827,-0.00294491267841247,0.00307020103883484,0.0118237214092792,-0.00259226199818282,-0.0202887477516296,-0.0259303389894746,79.0 +0.00901559882526763,-0.044641636506989,-0.0126728265790937,0.0287580963824284,-0.0180803941186249,-0.005071658967693,-0.0470824834561139,0.0343088588777263,0.0233748412798208,-0.0052198044153011,292.0 +-0.00551455497881059,0.0506801187398187,-0.041773752573878,-0.0435421881860331,-0.0799982727376757,-0.0761563597939169,-0.0323559322397657,-0.0394933828740919,0.0102256424049578,-0.0093619113301358,178.0 +0.0562385986885218,0.0506801187398187,-0.030995631835069,0.0081008722200108,0.0190703330528056,0.0212328118226277,0.0339135482338016,-0.0394933828740919,-0.0295276227417736,-0.0590671943081523,91.0 +0.00901559882526763,0.0506801187398187,-0.00512814206192736,-0.0641994123484507,0.0699805888062474,0.0838625041805342,-0.0397192078479398,0.0712099797536354,0.0395398780720242,0.0196328370737072,116.0 +-0.067267708646143,-0.044641636506989,-0.0590187457559724,0.0322009670761646,-0.051103262715452,-0.0495387405418066,-0.0102661054152432,-0.0394933828740919,0.00200784054982379,0.0237749439885419,86.0 +0.0271782910803654,0.0506801187398187,0.0250505960067379,0.0149866136074833,0.0259500973438113,0.048476727998317,-0.0397192078479398,0.0343088588777263,0.00783714230182385,0.0237749439885419,122.0 +-0.0236772472339084,-0.044641636506989,-0.0460850008694016,-0.0332135761048244,0.0328298616348169,0.0362639379885253,0.0375951860378887,-0.00259226199818282,-0.0332487872476258,0.0113486232440377,72.0 +0.0489735217864827,0.0506801187398187,0.00349435452911985,0.0700725447072635,-0.00844872411121698,0.0134041002778894,-0.0544457590642881,0.0343088588777263,0.0133159679089277,0.036201264733046,129.0 +-0.0527375548420648,-0.044641636506989,0.0541515220015222,-0.0263278347173518,-0.0552311212900554,-0.03388131745233,-0.0139477432193303,-0.0394933828740919,-0.0740888714915354,-0.0590671943081523,142.0 +0.0417084448844436,-0.044641636506989,-0.0450071887955207,0.0344962143200845,0.0438374845004259,-0.0157187066685371,0.0375951860378887,-0.0144006206784737,0.089898693277671,0.00720651632920303,90.0 +0.0562385986885218,-0.044641636506989,-0.0579409336820915,-0.00796585769556799,0.0520932016496327,0.0491030249218961,0.056003375058324,-0.0214118336448964,-0.0283202425479987,0.0444854785627154,158.0 +-0.034574862586967,0.0506801187398187,-0.0557853095343297,-0.015999222636143,-0.00982467696941811,-0.00788999512379879,0.0375951860378887,-0.0394933828740919,-0.0529587932392004,0.0279170509033766,39.0 +0.0816663678456587,0.0506801187398187,0.00133873038135806,0.0356438377699009,0.126394655992494,0.0910649188016934,0.0191869970174533,0.0343088588777263,0.0844952822124031,-0.0300724459043093,196.0 +-0.00188201652779104,0.0506801187398187,0.0304396563761424,0.0528581912385822,0.0397096259258226,0.0566185880048449,-0.0397192078479398,0.0712099797536354,0.0253931349154494,0.0279170509033766,222.0 +0.110726675453815,0.0506801187398187,0.00672779075076256,0.0287580963824284,-0.0277120641260328,-0.00726369820021974,-0.0470824834561139,0.0343088588777263,0.00200784054982379,0.0776223338813931,277.0 +-0.0309423241359475,-0.044641636506989,0.0466068374843559,0.0149866136074833,-0.0167044412604238,-0.0470335528474903,0.000778807997017968,-0.00259226199818282,0.0634559213720654,-0.0259303389894746,99.0 +0.00175052192322852,0.0506801187398187,0.0261284080806188,-0.00911348124867051,0.0245741444856101,0.038455977221052,-0.0213110188275045,0.0343088588777263,0.00943640914607987,0.00306440941436832,196.0 +0.00901559882526763,-0.044641636506989,0.045529025410475,0.0287580963824284,0.0121905687618,-0.0138398158977999,0.0265502726256275,-0.0394933828740919,0.0461323310394148,0.036201264733046,202.0 +0.030810829531385,-0.044641636506989,0.0401399650410705,0.076958286094736,0.0176943801946045,0.0378296802974729,-0.0286742944356786,0.0343088588777263,-0.00149858682029207,0.11904340302974,155.0 +0.0380759064334241,0.0506801187398187,-0.0180618869484982,0.0666296740135272,-0.051103262715452,-0.0166581520539057,-0.0765355858888105,0.0343088588777263,-0.0119006848015081,-0.0135040182449705,77.0 +0.00901559882526763,-0.044641636506989,0.0142724752679289,0.0149866136074833,0.054845107366035,0.0472241341511589,0.0707299262746723,-0.0394933828740919,-0.0332487872476258,-0.0590671943081523,191.0 +0.0925639831987174,-0.044641636506989,0.0369065288194278,0.0218723549949558,-0.0249601584096305,-0.0166581520539057,0.000778807997017968,-0.0394933828740919,-0.0225121719296605,-0.0217882320746399,70.0 +0.0671362140415805,-0.044641636506989,0.00349435452911985,0.0356438377699009,0.0493412959332305,0.0312535625998928,0.0707299262746723,-0.0394933828740919,-0.000609254186102297,0.0196328370737072,73.0 +0.00175052192322852,-0.044641636506989,-0.0708746785686623,-0.0228849640236156,-0.00156895982021134,-0.00100072896442909,0.0265502726256275,-0.0394933828740919,-0.0225121719296605,0.00720651632920303,49.0 +0.030810829531385,-0.044641636506989,-0.0331512559828308,-0.0228849640236156,-0.0469754041408486,-0.0811667351825494,0.103864666511456,-0.076394503750001,-0.0398095943643375,-0.0549250873933176,65.0 +0.0271782910803654,0.0506801187398187,0.0940305687351156,0.0976155102571536,-0.0345918284170385,-0.0320024266815928,-0.0434008456520269,-0.00259226199818282,0.0366457977933988,0.106617082285236,263.0 +0.0126481372762872,0.0506801187398187,0.0358287167455469,0.0494153205448459,0.0534691545078339,0.0741549018650587,-0.0691723102806364,0.145012221505454,0.0456008084141249,0.0486275854775501,248.0 +0.0744012909436196,-0.044641636506989,0.0315174684500233,0.10105838095089,0.0465893902168282,0.0368902349121043,0.0155053592133662,-0.00259226199818282,0.0336568129023847,0.0444854785627154,296.0 +-0.0418399394890061,-0.044641636506989,-0.0654856181992578,-0.0400993174922969,-0.00569681839481472,0.014343545663258,-0.0434008456520269,0.0343088588777263,0.00702686254915195,-0.0135040182449705,214.0 +-0.0890629393522603,-0.044641636506989,-0.041773752573878,-0.0194420933298793,-0.0662387441556644,-0.0742774690231797,0.0081420836051921,-0.0394933828740919,0.00114379737951254,-0.0300724459043093,185.0 +0.0235457526293458,0.0506801187398187,-0.0396181284261162,-0.00567061055493425,-0.0483513569990498,-0.0332550205287509,0.0118237214092792,-0.0394933828740919,-0.101643547945512,-0.0673514081378217,78.0 +-0.0454724779400257,-0.044641636506989,-0.0385403163522353,-0.0263278347173518,-0.0153284884022226,0.000878161806308105,-0.0323559322397657,-0.00259226199818282,0.00114379737951254,-0.0383566597339788,93.0 +-0.0236772472339084,0.0506801187398187,-0.0256065714656645,0.0425295791573734,-0.0538551684318543,-0.0476598497710694,-0.0213110188275045,-0.0394933828740919,0.00114379737951254,0.0196328370737072,252.0 +-0.099960554705319,-0.044641636506989,-0.0234509473179027,-0.0641994123484507,-0.0579830270064577,-0.0601857882426507,0.0118237214092792,-0.0394933828740919,-0.0181182673078967,-0.0507829804784829,150.0 +-0.0273097856849279,-0.044641636506989,-0.0665634302731387,-0.112399602060758,-0.0497273098572509,-0.0413968805352788,0.000778807997017968,-0.0394933828740919,-0.0358167281015492,-0.0093619113301358,77.0 +0.030810829531385,0.0506801187398187,0.0325952805239042,0.0494153205448459,-0.040095639849843,-0.0435889197678055,-0.0691723102806364,0.0343088588777263,0.0630166151147464,0.00306440941436832,208.0 +-0.103593093156339,0.0506801187398187,-0.0460850008694016,-0.0263278347173518,-0.0249601584096305,-0.0248000120604336,0.0302319104297145,-0.0394933828740919,-0.0398095943643375,-0.0549250873933176,77.0 +0.0671362140415805,0.0506801187398187,-0.0299178197611881,0.0574486853821349,-0.000193006962010205,-0.0157187066685371,0.0744115640787594,-0.0505637191368646,-0.0384591123013538,0.00720651632920303,108.0 +-0.0527375548420648,-0.044641636506989,-0.0126728265790937,-0.0607565416547144,-0.000193006962010205,0.00808057642746734,0.0118237214092792,-0.00259226199818282,-0.0271286455543265,-0.0507829804784829,160.0 +-0.0273097856849279,0.0506801187398187,-0.0159062628007364,-0.0297707054110881,0.00393485161259318,-0.000687580502639557,0.0412768238419757,-0.0394933828740919,-0.0236445575721341,0.0113486232440377,53.0 +-0.0382074010379866,0.0506801187398187,0.0713965151836166,-0.0573136709609782,0.153913713156516,0.155886650392127,0.000778807997017968,0.0719480021711535,0.0502764933899896,0.0693381200517237,220.0 +0.00901559882526763,-0.044641636506989,-0.030995631835069,0.0218723549949558,0.00806271018719657,0.00870687335104641,0.00446044580110504,-0.00259226199818282,0.00943640914607987,0.0113486232440377,154.0 +0.0126481372762872,0.0506801187398187,0.000260918307477141,-0.0114087283893043,0.0397096259258226,0.0572448849284239,-0.0397192078479398,0.0560805201945126,0.024052583226893,0.0320591578182113,259.0 +0.0671362140415805,-0.044641636506989,0.0369065288194278,-0.0504279295735057,-0.0235842055514294,-0.034507614375909,0.0486400994501499,-0.0394933828740919,-0.0259524244351894,-0.0383566597339788,90.0 +0.0453409833354632,-0.044641636506989,0.0390621529671896,0.0459724498511097,0.00668675732899544,-0.0241737151368545,0.0081420836051921,-0.0125555646346783,0.0643282330236709,0.0569117993072195,246.0 +0.0671362140415805,0.0506801187398187,-0.0148284507268555,0.0585963091762383,-0.0593589798646588,-0.034507614375909,-0.0618090346724622,0.012906208769699,-0.00514530798026311,0.0486275854775501,124.0 +0.0271782910803654,-0.044641636506989,0.00672779075076256,0.0356438377699009,0.0796122588136553,0.0707102687853738,0.0155053592133662,0.0343088588777263,0.0406722637144977,0.0113486232440377,67.0 +0.0562385986885218,-0.044641636506989,-0.0687190544209005,-0.0687899065952895,-0.000193006962010205,-0.00100072896442909,0.0449584616460628,-0.0376483268302965,-0.0483617248028919,-0.00107769750046639,72.0 +0.0344433679824045,0.0506801187398187,-0.00943939035745095,0.0597439326260547,-0.0359677812752396,-0.00757684666200928,-0.0765355858888105,0.0712099797536354,0.0110081010458725,-0.0217882320746399,257.0 +0.0235457526293458,-0.044641636506989,0.0196615356373334,-0.0125563519424068,0.0837401173882587,0.0387691256828415,0.0633666506664982,-0.00259226199818282,0.0660482061630984,0.0486275854775501,262.0 +0.0489735217864827,0.0506801187398187,0.0746299514052593,0.0666296740135272,-0.00982467696941811,-0.00225332281158722,-0.0434008456520269,0.0343088588777263,0.0336568129023847,0.0196328370737072,275.0 +0.030810829531385,0.0506801187398187,-0.00836157828357004,0.00465800152627453,0.0149424744782022,0.0274957810584184,0.0081420836051921,-0.00812743012956918,-0.0295276227417736,0.0569117993072195,177.0 +-0.103593093156339,0.0506801187398187,-0.0234509473179027,-0.0228849640236156,-0.0868780370286814,-0.0677013513255995,-0.0176293810234174,-0.0394933828740919,-0.0781409106690696,-0.0714935150526564,71.0 +0.0162806757273067,0.0506801187398187,-0.0460850008694016,0.0115437429137471,-0.0332158755588373,-0.0160318551303266,-0.0102661054152432,-0.00259226199818282,-0.0439854025655911,-0.0424987666488135,47.0 +-0.0600026317441039,0.0506801187398187,0.0541515220015222,-0.0194420933298793,-0.0497273098572509,-0.0489124436182275,0.0228686348215404,-0.0394933828740919,-0.0439854025655911,-0.0052198044153011,187.0 +-0.0273097856849279,-0.044641636506989,-0.0353068801305926,-0.0297707054110881,-0.0566070741482565,-0.058620045933703,0.0302319104297145,-0.0394933828740919,-0.0498684677352306,-0.129483011860342,125.0 +0.0417084448844436,-0.044641636506989,-0.0320734439089499,-0.061904165207817,0.0796122588136553,0.0509819156926333,0.056003375058324,-0.00997248617336464,0.0450661683362615,-0.0590671943081523,78.0 +-0.0817978624502212,-0.044641636506989,-0.0816527993074713,-0.0400993174922969,0.00255889875439205,-0.0185370428246429,0.0707299262746723,-0.0394933828740919,-0.0109044358473771,-0.09220404962683,51.0 +-0.0418399394890061,-0.044641636506989,0.0476846495582368,0.0597439326260547,0.127770608850695,0.128016437292858,-0.0249926566315915,0.108111100629544,0.0638931206368394,0.0403433716478807,258.0 +-0.0127796318808497,-0.044641636506989,0.0606183944448076,0.0528581912385822,0.0479653430750293,0.0293746718291555,-0.0176293810234174,0.0343088588777263,0.0702112981933102,0.00720651632920303,215.0 +0.0671362140415805,-0.044641636506989,0.056307146149284,0.0735154154009998,-0.0139525355440215,-0.039204841302752,-0.0323559322397657,-0.00259226199818282,0.0757375884575476,0.036201264733046,303.0 +-0.0527375548420648,0.0506801187398187,0.098341817030639,0.0872868981759448,0.0603489187988395,0.0487898764601065,-0.0581273968683752,0.108111100629544,0.0844952822124031,0.0403433716478807,243.0 +0.00538306037424807,-0.044641636506989,0.0595405823709267,-0.0561660474078757,0.0245741444856101,0.0528608064633705,-0.0434008456520269,0.0509143632718854,-0.00421985970694603,-0.0300724459043093,91.0 +0.0816663678456587,-0.044641636506989,0.0336730925977851,0.0081008722200108,0.0520932016496327,0.0566185880048449,-0.0176293810234174,0.0343088588777263,0.0348641930961596,0.0693381200517237,150.0 +0.030810829531385,0.0506801187398187,0.056307146149284,0.076958286094736,0.0493412959332305,-0.0122740735888523,-0.0360375700438527,0.0712099797536354,0.120053382001538,0.0900486546258972,310.0 +0.00175052192322852,-0.044641636506989,-0.0654856181992578,-0.00567061055493425,-0.00707277125301585,-0.0194764882100115,0.0412768238419757,-0.0394933828740919,-0.003303712578677,0.00720651632920303,153.0 +-0.0491050163910452,-0.044641636506989,0.160854917315731,-0.0469850588797694,-0.0290880169842339,-0.019789636671801,-0.0470824834561139,0.0343088588777263,0.028016506523264,0.0113486232440377,346.0 +-0.0273097856849279,0.0506801187398187,-0.0557853095343297,0.0253152256886921,-0.00707277125301585,-0.0235474182132754,0.052321737254237,-0.0394933828740919,-0.00514530798026311,-0.0507829804784829,63.0 +0.0780338293946392,0.0506801187398187,-0.0245287593917836,-0.0423945646329306,0.00668675732899544,0.0528608064633705,-0.0691723102806364,0.0808042711813717,-0.0371283460104736,0.0569117993072195,89.0 +0.0126481372762872,-0.044641636506989,-0.0363846922044735,0.0425295791573734,-0.0139525355440215,0.0129343775852051,-0.0268334755336351,0.00515697338575809,-0.0439854025655911,0.00720651632920303,50.0 +0.0417084448844436,-0.044641636506989,-0.00836157828357004,-0.0573136709609782,0.00806271018719657,-0.0313761297580137,0.151725957964588,-0.076394503750001,-0.0802365402489018,-0.0176461251598052,39.0 +0.0489735217864827,-0.044641636506989,-0.041773752573878,0.104501251644626,0.0355817673512192,-0.0257394574458021,0.177497422593197,-0.076394503750001,-0.0129079422541688,0.0154907301588724,103.0 +-0.0164121703318693,0.0506801187398187,0.127442743025423,0.0976155102571536,0.0163184273364034,0.0174750302811533,-0.0213110188275045,0.0343088588777263,0.0348641930961596,0.00306440941436832,308.0 +-0.0745327855481821,0.0506801187398187,-0.0773415510119477,-0.0469850588797694,-0.0469754041408486,-0.0326287236051719,0.00446044580110504,-0.0394933828740919,-0.072128454601956,-0.0176461251598052,116.0 +0.0344433679824045,0.0506801187398187,0.0282840322283806,-0.0332135761048244,-0.0455994512826475,-0.00976888589453599,-0.050764121260201,-0.00259226199818282,-0.0594726974107223,-0.0217882320746399,145.0 +-0.034574862586967,0.0506801187398187,-0.0256065714656645,-0.0171468461892456,0.00118294589619092,-0.00287961973516629,0.0081420836051921,-0.015507654304751,0.0148227108412663,0.0403433716478807,74.0 +-0.0527375548420648,0.0506801187398187,-0.0622521819776151,0.0115437429137471,-0.00844872411121698,-0.0366996536084358,0.122272855531891,-0.076394503750001,-0.0868289932162924,0.00306440941436832,45.0 +0.0598711371395414,-0.044641636506989,-0.000816893766403737,-0.0848566365108683,0.075484400239052,0.0794784257154807,0.00446044580110504,0.0343088588777263,0.0233748412798208,0.0279170509033766,115.0 +0.063503675590561,0.0506801187398187,0.088641508365711,0.0700725447072635,0.0204462859110067,0.0375165318356834,-0.050764121260201,0.0712099797536354,0.0293004132685869,0.0734802269665584,264.0 +0.00901559882526763,-0.044641636506989,-0.0320734439089499,-0.0263278347173518,0.0424615316422248,-0.0103951828181151,0.159089233572762,-0.076394503750001,-0.0119006848015081,-0.0383566597339788,87.0 +0.00538306037424807,0.0506801187398187,0.0304396563761424,0.0838440274822086,-0.0373437341334407,-0.0473467013092799,0.0155053592133662,-0.0394933828740919,0.00864028293306308,0.0154907301588724,202.0 +0.0380759064334241,0.0506801187398187,0.00888341489852436,0.0425295791573734,-0.0428475455662452,-0.0210422305189592,-0.0397192078479398,-0.00259226199818282,-0.0181182673078967,0.00720651632920303,127.0 +0.0126481372762872,-0.044641636506989,0.00672779075076256,-0.0561660474078757,-0.0758704141630723,-0.0664487574784414,-0.0213110188275045,-0.0376483268302965,-0.0181182673078967,-0.09220404962683,182.0 +0.0744012909436196,0.0506801187398187,-0.02021751109626,0.0459724498511097,0.0741084473808508,0.0328193049088404,-0.0360375700438527,0.0712099797536354,0.106354276741726,0.036201264733046,241.0 +0.0162806757273067,-0.044641636506989,-0.0245287593917836,0.0356438377699009,-0.00707277125301585,-0.00319276819695581,-0.0139477432193303,-0.00259226199818282,0.0155668445407018,0.0154907301588724,66.0 +-0.00551455497881059,0.0506801187398187,-0.0115950145052127,0.0115437429137471,-0.0222082526932283,-0.0154055582067476,-0.0213110188275045,-0.00259226199818282,0.0110081010458725,0.0693381200517237,94.0 +0.0126481372762872,-0.044641636506989,0.0261284080806188,0.063186803319791,0.125018703134293,0.0916912157252725,0.0633666506664982,-0.00259226199818282,0.057572856202426,-0.0217882320746399,283.0 +-0.034574862586967,-0.044641636506989,-0.0590187457559724,0.00121513083253827,-0.0538551684318543,-0.078035250564654,0.0670482884705852,-0.076394503750001,-0.02139368094036,0.0154907301588724,64.0 +0.0671362140415805,0.0506801187398187,-0.0363846922044735,-0.0848566365108683,-0.00707277125301585,0.01966706951368,-0.0544457590642881,0.0343088588777263,0.00114379737951254,0.0320591578182113,102.0 +0.0380759064334241,0.0506801187398187,-0.0245287593917836,0.00465800152627453,-0.0263361112678317,-0.0263657543693812,0.0155053592133662,-0.0394933828740919,-0.0159982677581387,-0.0259303389894746,200.0 +0.00901559882526763,0.0506801187398187,0.0185837235634525,0.0390867084636372,0.0176943801946045,0.0105857641217836,0.0191869970174533,-0.00259226199818282,0.0163049527999418,-0.0176461251598052,265.0 +-0.0926954778032799,0.0506801187398187,-0.0902752958985185,-0.0573136709609782,-0.0249601584096305,-0.0304366843726451,-0.00658446761115617,-0.00259226199818282,0.024052583226893,0.00306440941436832,94.0 +0.0707687524926,-0.044641636506989,-0.00512814206192736,-0.00567061055493425,0.0878679759628621,0.102964560349696,0.0118237214092792,0.0343088588777263,-0.0089440189577978,0.0279170509033766,230.0 +-0.0164121703318693,-0.044641636506989,-0.052551873312687,-0.0332135761048244,-0.0442234984244464,-0.0363865051466462,0.0191869970174533,-0.0394933828740919,-0.0683297436244215,-0.0300724459043093,181.0 +0.0417084448844436,0.0506801187398187,-0.0223731352440218,0.0287580963824284,-0.0662387441556644,-0.0451546620767532,-0.0618090346724622,-0.00259226199818282,0.00286377051894013,-0.0549250873933176,156.0 +0.0126481372762872,-0.044641636506989,-0.02021751109626,-0.015999222636143,0.0121905687618,0.0212328118226277,-0.0765355858888105,0.108111100629544,0.0598807230654812,-0.0217882320746399,233.0 +-0.0382074010379866,-0.044641636506989,-0.0547074974604488,-0.0779708951233958,-0.0332158755588373,-0.0864902590329714,0.140681044552327,-0.076394503750001,-0.0191970476139445,-0.0052198044153011,60.0 +0.0453409833354632,-0.044641636506989,-0.00620595413580824,-0.015999222636143,0.125018703134293,0.125198101136752,0.0191869970174533,0.0343088588777263,0.0324332257796019,-0.0052198044153011,219.0 +0.0707687524926,0.0506801187398187,-0.0169840748746173,0.0218723549949558,0.0438374845004259,0.0563054395430553,0.0375951860378887,-0.00259226199818282,-0.0702093127286876,-0.0176461251598052,80.0 +-0.0745327855481821,0.0506801187398187,0.0552293340754031,-0.0400993174922969,0.0534691545078339,0.05317395492516,-0.0434008456520269,0.0712099797536354,0.061237907519701,-0.0342145528191441,68.0 +0.0598711371395414,0.0506801187398187,0.0767855755530211,0.0253152256886921,0.00118294589619092,0.0168487333575743,-0.0544457590642881,0.0343088588777263,0.0299356483965325,0.0444854785627154,332.0 +0.0744012909436196,-0.044641636506989,0.0185837235634525,0.063186803319791,0.0617248716570406,0.0428400556861055,0.0081420836051921,-0.00259226199818282,0.0580391276638951,-0.0590671943081523,248.0 +0.00901559882526763,-0.044641636506989,-0.0223731352440218,-0.0320659525517218,-0.0497273098572509,-0.0686407967109681,0.0780932018828464,-0.0708593356186146,-0.0629129499162512,-0.0383566597339788,84.0 +-0.0709002470971626,-0.044641636506989,0.0929527566612346,0.0126913664668496,0.0204462859110067,0.0425269072243159,0.000778807997017968,0.000359827671889909,-0.0545441527110952,-0.00107769750046639,200.0 +0.0235457526293458,0.0506801187398187,-0.030995631835069,-0.00567061055493425,-0.0167044412604238,0.0177881787429428,-0.0323559322397657,-0.00259226199818282,-0.0740888714915354,-0.0342145528191441,55.0 +-0.0527375548420648,0.0506801187398187,0.0390621529671896,-0.0400993174922969,-0.00569681839481472,-0.0129003705124313,0.0118237214092792,-0.0394933828740919,0.0163049527999418,0.00306440941436832,85.0 +0.0671362140415805,-0.044641636506989,-0.0611743699037342,-0.0400993174922969,-0.0263361112678317,-0.024486863598644,0.0339135482338016,-0.0394933828740919,-0.0561575730950062,-0.0590671943081523,89.0 +0.00175052192322852,-0.044641636506989,-0.00836157828357004,-0.0641994123484507,-0.0387196869916418,-0.024486863598644,0.00446044580110504,-0.0394933828740919,-0.0646830224644503,-0.0549250873933176,31.0 +0.0235457526293458,0.0506801187398187,-0.0374625042783544,-0.0469850588797694,-0.0910058956032848,-0.0755300628703378,-0.0323559322397657,-0.0394933828740919,-0.0307512098645563,-0.0135040182449705,129.0 +0.0380759064334241,0.0506801187398187,-0.0137506386529745,-0.015999222636143,-0.0359677812752396,-0.0219816759043277,-0.0139477432193303,-0.00259226199818282,-0.0259524244351894,-0.00107769750046639,83.0 +0.0162806757273067,-0.044641636506989,0.0735521393313785,-0.0412469410453994,-0.00432086553661359,-0.0135266674360104,-0.0139477432193303,-0.00111621716314646,0.0428956878925287,0.0444854785627154,275.0 +-0.00188201652779104,0.0506801187398187,-0.0245287593917836,0.0528581912385822,0.0273260502020124,0.0300009687527346,0.0302319104297145,-0.00259226199818282,-0.02139368094036,0.036201264733046,65.0 +0.0126481372762872,-0.044641636506989,0.0336730925977851,0.0333485905259811,0.0300779559184146,0.0271826325966288,-0.0029028298070691,0.00884708547334898,0.0311929907028023,0.0279170509033766,198.0 +0.0744012909436196,-0.044641636506989,0.034750904671666,0.0941726395634173,0.0575970130824372,0.0202933664372591,0.0228686348215404,-0.00259226199818282,0.0738021469200488,-0.0217882320746399,236.0 +0.0417084448844436,0.0506801187398187,-0.0385403163522353,0.0528581912385822,0.0768603530972531,0.116429944206646,-0.0397192078479398,0.0712099797536354,-0.0225121719296605,-0.0135040182449705,253.0 +-0.00914709342983014,0.0506801187398187,-0.0396181284261162,-0.0400993174922969,-0.00844872411121698,0.0162224364339952,-0.0654906724765493,0.0712099797536354,0.0177634778671173,-0.0673514081378217,124.0 +0.00901559882526763,0.0506801187398187,-0.00189470584028465,0.0218723549949558,-0.0387196869916418,-0.0248000120604336,-0.00658446761115617,-0.0394933828740919,-0.0398095943643375,-0.0135040182449705,44.0 +0.0671362140415805,0.0506801187398187,-0.030995631835069,0.00465800152627453,0.0245741444856101,0.0356376410649462,-0.0286742944356786,0.0343088588777263,0.0233748412798208,0.0817644407962278,172.0 +0.00175052192322852,-0.044641636506989,-0.0460850008694016,-0.0332135761048244,-0.07311850844667,-0.0814798836443389,0.0449584616460628,-0.0693832907835783,-0.0611765950943345,-0.0797777288823259,114.0 +-0.00914709342983014,0.0506801187398187,0.00133873038135806,-0.00222773986119799,0.0796122588136553,0.0700839718617947,0.0339135482338016,-0.00259226199818282,0.0267142576335128,0.0817644407962278,142.0 +-0.00551455497881059,-0.044641636506989,0.0649296427403312,0.0356438377699009,-0.00156895982021134,0.0149698425868371,-0.0139477432193303,0.000728838880648992,-0.0181182673078967,0.0320591578182113,109.0 +0.096196521649737,-0.044641636506989,0.0401399650410705,-0.0573136709609782,0.0452134373586271,0.0606895180081088,-0.0213110188275045,0.0361539149215217,0.0125531528133893,0.0237749439885419,180.0 +-0.0745327855481821,-0.044641636506989,-0.0234509473179027,-0.00567061055493425,-0.0208322998350272,-0.0141529643595894,0.0155053592133662,-0.0394933828740919,-0.0384591123013538,-0.0300724459043093,144.0 +0.0598711371395414,0.0506801187398187,0.0530737099276413,0.0528581912385822,0.0328298616348169,0.01966706951368,-0.0102661054152432,0.0343088588777263,0.0552050380896167,-0.00107769750046639,163.0 +-0.0236772472339084,-0.044641636506989,0.0401399650410705,-0.0125563519424068,-0.00982467696941811,-0.00100072896442909,-0.0029028298070691,-0.00259226199818282,-0.0119006848015081,-0.0383566597339788,147.0 +0.00901559882526763,-0.044641636506989,-0.02021751109626,-0.0538708002672419,0.0314539087766158,0.0206065148990486,0.056003375058324,-0.0394933828740919,-0.0109044358473771,-0.00107769750046639,97.0 +0.0162806757273067,0.0506801187398187,0.0142724752679289,0.00121513083253827,0.00118294589619092,-0.0213553789807487,-0.0323559322397657,0.0343088588777263,0.0749683360277342,0.0403433716478807,220.0 +0.0199132141783263,-0.044641636506989,-0.0342290680567117,0.055153438482502,0.0672286830898452,0.0741549018650587,-0.00658446761115617,0.0328328140426899,0.0247253233428045,0.0693381200517237,190.0 +0.0889314447476978,-0.044641636506989,0.00672779075076256,0.0253152256886921,0.0300779559184146,0.00870687335104641,0.0633666506664982,-0.0394933828740919,0.00943640914607987,0.0320591578182113,109.0 +0.0199132141783263,-0.044641636506989,0.00457216660300077,0.0459724498511097,-0.0180803941186249,-0.0545491159304391,0.0633666506664982,-0.0394933828740919,0.0286607203138089,0.0610539062220542,191.0 +-0.0236772472339084,-0.044641636506989,0.0304396563761424,-0.00567061055493425,0.0823641645300576,0.092004364187062,-0.0176293810234174,0.0712099797536354,0.0330470723549341,0.00306440941436832,122.0 +0.096196521649737,-0.044641636506989,0.0519958978537604,0.0792535333386559,0.054845107366035,0.0365770864503148,-0.0765355858888105,0.141322109417863,0.098646374304928,0.0610539062220542,230.0 +0.0235457526293458,0.0506801187398187,0.0616962065186885,0.0620391798699746,0.0245741444856101,-0.0360733566848567,-0.0912621371051588,0.155344535350708,0.133395733837469,0.0817644407962278,242.0 +0.0707687524926,0.0506801187398187,-0.00728376620968916,0.0494153205448459,0.0603489187988395,-0.00444536204411395,-0.0544457590642881,0.108111100629544,0.129019411600168,0.0569117993072195,248.0 +0.030810829531385,-0.044641636506989,0.00564997867688165,0.0115437429137471,0.0782363059554542,0.077912683406533,-0.0434008456520269,0.108111100629544,0.0660482061630984,0.0196328370737072,249.0 +-0.00188201652779104,-0.044641636506989,0.0541515220015222,-0.0664946594890845,0.0727324945226497,0.0566185880048449,-0.0434008456520269,0.0848633944777217,0.0844952822124031,0.0486275854775501,192.0 +0.0453409833354632,0.0506801187398187,-0.00836157828357004,-0.0332135761048244,-0.00707277125301585,0.00119131026809764,-0.0397192078479398,0.0343088588777263,0.0299356483965325,0.0279170509033766,131.0 +0.0744012909436196,-0.044641636506989,0.114508998138853,0.0287580963824284,0.0245741444856101,0.0249905933641021,0.0191869970174533,-0.00259226199818282,-0.000609254186102297,-0.0052198044153011,237.0 +-0.0382074010379866,-0.044641636506989,0.067085266888093,-0.0607565416547144,-0.0290880169842339,-0.0232342697514859,-0.0102661054152432,-0.00259226199818282,-0.00149858682029207,0.0196328370737072,78.0 +-0.0127796318808497,0.0506801187398187,-0.0557853095343297,-0.00222773986119799,-0.0277120641260328,-0.029184090525487,0.0191869970174533,-0.0394933828740919,-0.0170521046047435,0.0444854785627154,135.0 +0.00901559882526763,0.0506801187398187,0.0304396563761424,0.0425295791573734,-0.00294491267841247,0.0368902349121043,-0.0654906724765493,0.0712099797536354,-0.0236445575721341,0.0154907301588724,244.0 +0.0816663678456587,0.0506801187398187,-0.0256065714656645,-0.0366564467985606,-0.0703666027302678,-0.0464072559239113,-0.0397192078479398,-0.00259226199818282,-0.0411803851880079,-0.0052198044153011,199.0 +0.030810829531385,-0.044641636506989,0.104808689473925,0.076958286094736,-0.0112006298276192,-0.0113346282034837,-0.0581273968683752,0.0343088588777263,0.0571041874478439,0.036201264733046,270.0 +0.0271782910803654,0.0506801187398187,-0.00620595413580824,0.0287580963824284,-0.0167044412604238,-0.00162702588800815,-0.0581273968683752,0.0343088588777263,0.0293004132685869,0.0320591578182113,164.0 +-0.0600026317441039,0.0506801187398187,-0.0471628129432825,-0.0228849640236156,-0.071742555588469,-0.0576806005483345,-0.00658446761115617,-0.0394933828740919,-0.0629129499162512,-0.0549250873933176,72.0 +0.00538306037424807,-0.044641636506989,-0.0482406250171634,-0.0125563519424068,0.00118294589619092,-0.00663740127664067,0.0633666506664982,-0.0394933828740919,-0.0514005352605825,-0.0590671943081523,96.0 +-0.0200447087828888,-0.044641636506989,0.0854080721440683,-0.0366564467985606,0.0919958345374655,0.0894991764927457,-0.0618090346724622,0.145012221505454,0.0809479135112756,0.0527696923923848,306.0 +0.0199132141783263,0.0506801187398187,-0.0126728265790937,0.0700725447072635,-0.0112006298276192,0.00714113104209875,-0.0397192078479398,0.0343088588777263,0.00538436996854573,0.00306440941436832,91.0 +-0.0636351701951234,-0.044641636506989,-0.0331512559828308,-0.0332135761048244,0.00118294589619092,0.0240511479787335,-0.0249926566315915,-0.00259226199818282,-0.0225121719296605,-0.0590671943081523,214.0 +0.0271782910803654,-0.044641636506989,-0.00728376620968916,-0.0504279295735057,0.075484400239052,0.0566185880048449,0.0339135482338016,-0.00259226199818282,0.0434431722527813,0.0154907301588724,95.0 +-0.0164121703318693,-0.044641636506989,-0.0137506386529745,0.132044217194516,-0.00982467696941811,-0.00381906512053488,0.0191869970174533,-0.0394933828740919,-0.0358167281015492,-0.0300724459043093,216.0 +0.030810829531385,0.0506801187398187,0.0595405823709267,0.0563010619323185,-0.0222082526932283,0.00119131026809764,-0.0323559322397657,-0.00259226199818282,-0.0247911874324607,-0.0176461251598052,263.0 +0.0562385986885218,0.0506801187398187,0.0218171597850952,0.0563010619323185,-0.00707277125301585,0.0181013272047324,-0.0323559322397657,-0.00259226199818282,-0.0236445575721341,0.0237749439885419,178.0 +-0.0200447087828888,-0.044641636506989,0.0185837235634525,0.090729768869681,0.00393485161259318,0.00870687335104641,0.0375951860378887,-0.0394933828740919,-0.0578000656756125,0.00720651632920303,113.0 +-0.107225631607358,-0.044641636506989,-0.0115950145052127,-0.0400993174922969,0.0493412959332305,0.0644472995495832,-0.0139477432193303,0.0343088588777263,0.00702686254915195,-0.0300724459043093,200.0 +0.0816663678456587,0.0506801187398187,-0.00297251791416553,-0.0332135761048244,0.0424615316422248,0.057871181852003,-0.0102661054152432,0.0343088588777263,-0.000609254186102297,-0.00107769750046639,139.0 +0.00538306037424807,0.0506801187398187,0.0175059114895716,0.0322009670761646,0.127770608850695,0.127390140369279,-0.0213110188275045,0.0712099797536354,0.062575181458056,0.0154907301588724,139.0 +0.0380759064334241,0.0506801187398187,-0.0299178197611881,-0.0745280244296595,-0.0125765826858204,-0.0125872220506418,0.00446044580110504,-0.00259226199818282,0.00371173823343597,-0.0300724459043093,88.0 +0.030810829531385,-0.044641636506989,-0.02021751109626,-0.00567061055493425,-0.00432086553661359,-0.0294972389872765,0.0780932018828464,-0.0394933828740919,-0.0109044358473771,-0.00107769750046639,148.0 +0.00175052192322852,0.0506801187398187,-0.0579409336820915,-0.0435421881860331,-0.0965097070360893,-0.0470335528474903,-0.098625412713333,0.0343088588777263,-0.0611765950943345,-0.0714935150526564,88.0 +-0.0273097856849279,0.0506801187398187,0.0606183944448076,0.107944122338362,0.0121905687618,-0.0175975974392743,-0.0029028298070691,-0.00259226199818282,0.0702112981933102,0.135611830689079,243.0 +-0.0854304009012408,0.0506801187398187,-0.0406959404999971,-0.0332135761048244,-0.0813742255958769,-0.0695802420963367,-0.00658446761115617,-0.0394933828740919,-0.0578000656756125,-0.0424987666488135,71.0 +0.0126481372762872,0.0506801187398187,-0.0719524906425432,-0.0469850588797694,-0.051103262715452,-0.0971373067338155,0.118591217727804,-0.076394503750001,-0.0202887477516296,-0.0383566597339788,77.0 +-0.0527375548420648,-0.044641636506989,-0.0557853095343297,-0.0366564467985606,0.0892439288210632,-0.00319276819695581,0.0081420836051921,0.0343088588777263,0.132372649338676,0.00306440941436832,109.0 +-0.0236772472339084,0.0506801187398187,0.045529025410475,0.0218723549949558,0.10988322169408,0.0888728795691667,0.000778807997017968,0.0343088588777263,0.0741925366900307,0.0610539062220542,272.0 +-0.0745327855481821,0.0506801187398187,-0.00943939035745095,0.0149866136074833,-0.0373437341334407,-0.0216685274425382,-0.0139477432193303,-0.00259226199818282,-0.0332487872476258,0.0113486232440377,60.0 +-0.00551455497881059,0.0506801187398187,-0.0331512559828308,-0.015999222636143,0.00806271018719657,0.0162224364339952,0.0155053592133662,-0.00259226199818282,-0.0283202425479987,-0.0756356219674911,54.0 +-0.0600026317441039,0.0506801187398187,0.0498402737059986,0.0184294843012196,-0.0167044412604238,-0.0301235359108556,-0.0176293810234174,-0.00259226199818282,0.049768659920749,-0.0590671943081523,221.0 +-0.0200447087828888,-0.044641636506989,-0.084886235529114,-0.0263278347173518,-0.0359677812752396,-0.0341944659141195,0.0412768238419757,-0.0516707527631419,-0.0823814832581028,-0.0466408735636482,90.0 +0.0380759064334241,0.0506801187398187,0.00564997867688165,0.0322009670761646,0.00668675732899544,0.0174750302811533,-0.0249926566315915,0.0343088588777263,0.0148227108412663,0.0610539062220542,311.0 +0.0162806757273067,-0.044641636506989,0.0207393477112143,0.0218723549949558,-0.0139525355440215,-0.0132135189742209,-0.00658446761115617,-0.00259226199818282,0.0133159679089277,0.0403433716478807,281.0 +0.0417084448844436,-0.044641636506989,-0.00728376620968916,0.0287580963824284,-0.0428475455662452,-0.0482861466946485,0.052321737254237,-0.076394503750001,-0.072128454601956,0.0237749439885419,182.0 +0.0199132141783263,0.0506801187398187,0.104808689473925,0.0700725447072635,-0.0359677812752396,-0.0266789028311707,-0.0249926566315915,-0.00259226199818282,0.00371173823343597,0.0403433716478807,321.0 +-0.0491050163910452,0.0506801187398187,-0.0245287593917836,6.75072794357462e-05,-0.0469754041408486,-0.0282446451401184,-0.0654906724765493,0.0284046795375808,0.0191990330785671,0.0113486232440377,58.0 +0.00175052192322852,0.0506801187398187,-0.00620595413580824,-0.0194420933298793,-0.00982467696941811,0.00494909180957202,-0.0397192078479398,0.0343088588777263,0.0148227108412663,0.0983328684555666,262.0 +0.0344433679824045,-0.044641636506989,-0.0385403163522353,-0.0125563519424068,0.0094386630453977,0.00526224027136155,-0.00658446761115617,-0.00259226199818282,0.0311929907028023,0.0983328684555666,206.0 +-0.0454724779400257,0.0506801187398187,0.137143051690352,-0.015999222636143,0.0410855787840237,0.0318798595234718,-0.0434008456520269,0.0712099797536354,0.0710215779459822,0.0486275854775501,233.0 +-0.00914709342983014,0.0506801187398187,0.17055522598066,0.0149866136074833,0.0300779559184146,0.033758750294209,-0.0213110188275045,0.0343088588777263,0.0336568129023847,0.0320591578182113,242.0 +-0.0164121703318693,0.0506801187398187,0.00241654245523897,0.0149866136074833,0.0218222387692079,-0.0100820343563255,-0.0249926566315915,0.0343088588777263,0.085533121187439,0.0817644407962278,123.0 +-0.00914709342983014,-0.044641636506989,0.0379843408933087,-0.0400993174922969,-0.0249601584096305,-0.00381906512053488,-0.0434008456520269,0.0158582984397717,-0.00514530798026311,0.0279170509033766,167.0 +0.0199132141783263,-0.044641636506989,-0.0579409336820915,-0.0573136709609782,-0.00156895982021134,-0.0125872220506418,0.0744115640787594,-0.0394933828740919,-0.0611765950943345,-0.0756356219674911,63.0 +0.0526060602375023,0.0506801187398187,-0.00943939035745095,0.0494153205448459,0.0507172487914316,-0.019163339748222,-0.0139477432193303,0.0343088588777263,0.119343994203787,-0.0176461251598052,197.0 +-0.0273097856849279,0.0506801187398187,-0.0234509473179027,-0.015999222636143,0.0135665216200011,0.0127778033543103,0.0265502726256275,-0.00259226199818282,-0.0109044358473771,-0.0217882320746399,71.0 +-0.0745327855481821,-0.044641636506989,-0.0105172024313319,-0.00567061055493425,-0.0662387441556644,-0.0570543036247554,-0.0029028298070691,-0.0394933828740919,-0.0425721049227942,-0.00107769750046639,168.0 +-0.107225631607358,-0.044641636506989,-0.0342290680567117,-0.067642283042187,-0.0634868384392622,-0.0705196874817053,0.0081420836051921,-0.0394933828740919,-0.000609254186102297,-0.0797777288823259,140.0 +0.0453409833354632,0.0506801187398187,-0.00297251791416553,0.107944122338362,0.0355817673512192,0.0224854056697859,0.0265502726256275,-0.00259226199818282,0.028016506523264,0.0196328370737072,217.0 +-0.00188201652779104,-0.044641636506989,0.068163078961974,-0.00567061055493425,0.119514891701488,0.130208476525385,-0.0249926566315915,0.0867084505215172,0.0461323310394148,-0.00107769750046639,121.0 +0.0199132141783263,0.0506801187398187,0.00996122697240527,0.0184294843012196,0.0149424744782022,0.0447189464568426,-0.0618090346724622,0.0712099797536354,0.00943640914607987,-0.063209301222987,235.0 +0.0162806757273067,0.0506801187398187,0.00241654245523897,-0.00567061055493425,-0.00569681839481472,0.0108989125835731,-0.050764121260201,0.0343088588777263,0.0226920225667445,-0.0383566597339788,245.0 +-0.00188201652779104,-0.044641636506989,-0.0385403163522353,0.0218723549949558,-0.108893282759899,-0.115613065979398,0.0228686348215404,-0.076394503750001,-0.0468794828442166,0.0237749439885419,40.0 +0.0162806757273067,-0.044641636506989,0.0261284080806188,0.0585963091762383,-0.0607349327228599,-0.0442152166913845,-0.0139477432193303,-0.0339582147427055,-0.0514005352605825,-0.0259303389894746,52.0 +-0.0709002470971626,0.0506801187398187,-0.0891974838246376,-0.0745280244296595,-0.0428475455662452,-0.0257394574458021,-0.0323559322397657,-0.00259226199818282,-0.0129079422541688,-0.0549250873933176,104.0 +0.0489735217864827,-0.044641636506989,0.0606183944448076,-0.0228849640236156,-0.0235842055514294,-0.072711726714232,-0.0434008456520269,-0.00259226199818282,0.104137611358979,0.036201264733046,132.0 +0.00538306037424807,0.0506801187398187,-0.0288400076873072,-0.00911348124867051,-0.0318399227006362,-0.0288709420636975,0.0081420836051921,-0.0394933828740919,-0.0181182673078967,0.00720651632920303,88.0 +0.0344433679824045,0.0506801187398187,-0.0299178197611881,0.00465800152627453,0.0933717873956666,0.0869939887984295,0.0339135482338016,-0.00259226199818282,0.024052583226893,-0.0383566597339788,69.0 +0.0235457526293458,0.0506801187398187,-0.019139699022379,0.0494153205448459,-0.0634868384392622,-0.0611252336280193,0.00446044580110504,-0.0394933828740919,-0.0259524244351894,-0.0135040182449705,219.0 +0.0199132141783263,-0.044641636506989,-0.0406959404999971,-0.015999222636143,-0.00844872411121698,-0.0175975974392743,0.052321737254237,-0.0394933828740919,-0.0307512098645563,0.00306440941436832,72.0 +-0.0454724779400257,-0.044641636506989,0.0153502873418098,-0.0745280244296595,-0.0497273098572509,-0.0172844489774848,-0.0286742944356786,-0.00259226199818282,-0.104364820832166,-0.0756356219674911,201.0 +0.0526060602375023,0.0506801187398187,-0.0245287593917836,0.0563010619323185,-0.00707277125301585,-0.005071658967693,-0.0213110188275045,-0.00259226199818282,0.0267142576335128,-0.0383566597339788,110.0 +-0.00551455497881059,0.0506801187398187,0.00133873038135806,-0.0848566365108683,-0.0112006298276192,-0.0166581520539057,0.0486400994501499,-0.0394933828740919,-0.0411803851880079,-0.0880619427119953,51.0 +0.00901559882526763,0.0506801187398187,0.0692408910358548,0.0597439326260547,0.0176943801946045,-0.0232342697514859,-0.0470824834561139,0.0343088588777263,0.103292264911524,0.0734802269665584,277.0 +-0.0236772472339084,-0.044641636506989,-0.0697968664947814,-0.0641994123484507,-0.0593589798646588,-0.0504781859271752,0.0191869970174533,-0.0394933828740919,-0.0891368600793477,-0.0507829804784829,63.0 +-0.0418399394890061,0.0506801187398187,-0.0299178197611881,-0.00222773986119799,0.0218222387692079,0.0365770864503148,0.0118237214092792,-0.00259226199818282,-0.0411803851880079,0.065196013136889,118.0 +-0.0745327855481821,-0.044641636506989,-0.0460850008694016,-0.0435421881860331,-0.0290880169842339,-0.0232342697514859,0.0155053592133662,-0.0394933828740919,-0.0398095943643375,-0.0217882320746399,69.0 +0.0344433679824045,-0.044641636506989,0.0185837235634525,0.0563010619323185,0.0121905687618,-0.0545491159304391,-0.0691723102806364,0.0712099797536354,0.130080609521753,0.00720651632920303,273.0 +-0.0600026317441039,-0.044641636506989,0.00133873038135806,-0.0297707054110881,-0.00707277125301585,-0.0216685274425382,0.0118237214092792,-0.00259226199818282,0.0318152175007986,-0.0549250873933176,258.0 +-0.0854304009012408,0.0506801187398187,-0.030995631835069,-0.0228849640236156,-0.0634868384392622,-0.0542359674686496,0.0191869970174533,-0.0394933828740919,-0.096433222891784,-0.0342145528191441,43.0 +0.0526060602375023,-0.044641636506989,-0.00405032998804645,-0.0309183289641906,-0.0469754041408486,-0.0583068974719135,-0.0139477432193303,-0.0258399681500055,0.0360557900898319,0.0237749439885419,198.0 +0.0126481372762872,-0.044641636506989,0.0153502873418098,-0.0332135761048244,0.0410855787840237,0.0321930079852613,-0.0029028298070691,-0.00259226199818282,0.0450661683362615,-0.0673514081378217,242.0 +0.0598711371395414,0.0506801187398187,0.0228949718589761,0.0494153205448459,0.0163184273364034,0.0118383579689417,-0.0139477432193303,-0.00259226199818282,0.0395398780720242,0.0196328370737072,232.0 +-0.0236772472339084,-0.044641636506989,0.045529025410475,0.090729768869681,-0.0180803941186249,-0.0354470597612776,0.0707299262746723,-0.0394933828740919,-0.0345237153303495,-0.0093619113301358,175.0 +0.0162806757273067,-0.044641636506989,-0.0450071887955207,-0.0573136709609782,-0.0345918284170385,-0.05392281900686,0.0744115640787594,-0.076394503750001,-0.0425721049227942,0.0403433716478807,93.0 +0.110726675453815,0.0506801187398187,-0.0331512559828308,-0.0228849640236156,-0.00432086553661359,0.0202933664372591,-0.0618090346724622,0.0712099797536354,0.0155668445407018,0.0444854785627154,168.0 +-0.0200447087828888,-0.044641636506989,0.0972640049567582,-0.00567061055493425,-0.00569681839481472,-0.0238605666750649,-0.0213110188275045,-0.00259226199818282,0.0616858488238662,0.0403433716478807,275.0 +-0.0164121703318693,-0.044641636506989,0.0541515220015222,0.0700725447072635,-0.0332158755588373,-0.0279314966783289,0.0081420836051921,-0.0394933828740919,-0.0271286455543265,-0.0093619113301358,293.0 +0.0489735217864827,0.0506801187398187,0.1231314947299,0.0838440274822086,-0.104765424185296,-0.10089508827529,-0.0691723102806364,-0.00259226199818282,0.0366457977933988,-0.0300724459043093,281.0 +-0.0563700932930843,-0.044641636506989,-0.0805749872335904,-0.0848566365108683,-0.0373437341334407,-0.0370128020702253,0.0339135482338016,-0.0394933828740919,-0.0561575730950062,-0.137767225690012,72.0 +0.0271782910803654,-0.044641636506989,0.0929527566612346,-0.0527231767141394,0.00806271018719657,0.0397085710682101,-0.0286742944356786,0.021024455362399,-0.0483617248028919,0.0196328370737072,140.0 +0.063503675590561,-0.044641636506989,-0.0503962491649252,0.107944122338362,0.0314539087766158,0.0193539210518905,-0.0176293810234174,0.0236075338237126,0.0580391276638951,0.0403433716478807,189.0 +-0.0527375548420648,0.0506801187398187,-0.0115950145052127,0.0563010619323185,0.0562210602242361,0.0729023080179005,-0.0397192078479398,0.0712099797536354,0.0305664873984148,-0.0052198044153011,181.0 +-0.00914709342983014,0.0506801187398187,-0.0277621956134263,0.0081008722200108,0.0479653430750293,0.0372033833738938,-0.0286742944356786,0.0343088588777263,0.0660482061630984,-0.0424987666488135,209.0 +0.00538306037424807,-0.044641636506989,0.0584627702970458,-0.0435421881860331,-0.07311850844667,-0.0723985782524425,0.0191869970174533,-0.076394503750001,-0.0514005352605825,-0.0259303389894746,136.0 +0.0744012909436196,-0.044641636506989,0.0854080721440683,0.063186803319791,0.0149424744782022,0.0130909518160999,0.0155053592133662,-0.00259226199818282,0.0062093156165054,0.0859065477110625,261.0 +-0.0527375548420648,-0.044641636506989,-0.000816893766403737,-0.0263278347173518,0.0108146159035988,0.00714113104209875,0.0486400994501499,-0.0394933828740919,-0.0358167281015492,0.0196328370737072,113.0 +0.0816663678456587,0.0506801187398187,0.00672779075076256,-0.00452298700183173,0.10988322169408,0.117056241130225,-0.0323559322397657,0.0918746074441444,0.0547240033481791,0.00720651632920303,131.0 +-0.00551455497881059,-0.044641636506989,0.00888341489852436,-0.0504279295735057,0.0259500973438113,0.0472241341511589,-0.0434008456520269,0.0712099797536354,0.0148227108412663,0.00306440941436832,174.0 +-0.0273097856849279,-0.044641636506989,0.0800190117746638,0.09876313370697,-0.00294491267841247,0.0181013272047324,-0.0176293810234174,0.00331191734196264,-0.0295276227417736,0.036201264733046,257.0 +-0.0527375548420648,-0.044641636506989,0.0713965151836166,-0.0745280244296595,-0.0153284884022226,-0.00131387742621863,0.00446044580110504,-0.0214118336448964,-0.0468794828442166,0.00306440941436832,55.0 +0.00901559882526763,-0.044641636506989,-0.0245287593917836,-0.0263278347173518,0.0988755988284711,0.0941964034195887,0.0707299262746723,-0.00259226199818282,-0.02139368094036,0.00720651632920303,84.0 +-0.0200447087828888,-0.044641636506989,-0.0547074974604488,-0.0538708002672419,-0.0662387441556644,-0.0573674520865449,0.0118237214092792,-0.0394933828740919,-0.0740888714915354,-0.0052198044153011,42.0 +0.0235457526293458,-0.044641636506989,-0.0363846922044735,6.75072794357462e-05,0.00118294589619092,0.0346981956795776,-0.0434008456520269,0.0343088588777263,-0.0332487872476258,0.0610539062220542,146.0 +0.0380759064334241,0.0506801187398187,0.0164280994156907,0.0218723549949558,0.0397096259258226,0.0450320949186321,-0.0434008456520269,0.0712099797536354,0.049768659920749,0.0154907301588724,212.0 +-0.0781653239992017,0.0506801187398187,0.077863387626902,0.0528581912385822,0.0782363059554542,0.0644472995495832,0.0265502726256275,-0.00259226199818282,0.0406722637144977,-0.0093619113301358,233.0 +0.00901559882526763,0.0506801187398187,-0.0396181284261162,0.0287580963824284,0.0383336730676214,0.0735286049414796,-0.0728539480847234,0.108111100629544,0.0155668445407018,-0.0466408735636482,91.0 +0.00175052192322852,0.0506801187398187,0.0110390390462862,-0.0194420933298793,-0.0167044412604238,-0.00381906512053488,-0.0470824834561139,0.0343088588777263,0.024052583226893,0.0237749439885419,111.0 +-0.0781653239992017,-0.044641636506989,-0.0406959404999971,-0.081413765817132,-0.100637565610693,-0.112794729823292,0.0228686348215404,-0.076394503750001,-0.0202887477516296,-0.0507829804784829,152.0 +0.030810829531385,0.0506801187398187,-0.0342290680567117,0.0436772026071898,0.0575970130824372,0.0688313780146366,-0.0323559322397657,0.057556565029549,0.0354619386607697,0.0859065477110625,120.0 +-0.034574862586967,0.0506801187398187,0.00564997867688165,-0.00567061055493425,-0.07311850844667,-0.062690975936967,-0.00658446761115617,-0.0394933828740919,-0.045420957777041,0.0320591578182113,67.0 +0.0489735217864827,0.0506801187398187,0.088641508365711,0.0872868981759448,0.0355817673512192,0.0215459602844172,-0.0249926566315915,0.0343088588777263,0.0660482061630984,0.131469723774244,310.0 +-0.0418399394890061,-0.044641636506989,-0.0331512559828308,-0.0228849640236156,0.0465893902168282,0.0415874618389473,0.056003375058324,-0.0247329345237283,-0.0259524244351894,-0.0383566597339788,94.0 +-0.00914709342983014,-0.044641636506989,-0.0568631216082106,-0.0504279295735057,0.0218222387692079,0.0453452433804217,-0.0286742944356786,0.0343088588777263,-0.00991895736315477,-0.0176461251598052,183.0 +0.0707687524926,0.0506801187398187,-0.030995631835069,0.0218723549949558,-0.0373437341334407,-0.0470335528474903,0.0339135482338016,-0.0394933828740919,-0.0149564750249113,-0.00107769750046639,66.0 +0.00901559882526763,-0.044641636506989,0.0552293340754031,-0.00567061055493425,0.0575970130824372,0.0447189464568426,-0.0029028298070691,0.0232385226149535,0.0556835477026737,0.106617082285236,173.0 +-0.0273097856849279,-0.044641636506989,-0.0600965578298533,-0.0297707054110881,0.0465893902168282,0.0199802179754696,0.122272855531891,-0.0394933828740919,-0.0514005352605825,-0.0093619113301358,72.0 +0.0162806757273067,-0.044641636506989,0.00133873038135806,0.0081008722200108,0.00531080447079431,0.0108989125835731,0.0302319104297145,-0.0394933828740919,-0.045420957777041,0.0320591578182113,49.0 +-0.0127796318808497,-0.044641636506989,-0.0234509473179027,-0.0400993174922969,-0.0167044412604238,0.0046359433477825,-0.0176293810234174,-0.00259226199818282,-0.0384591123013538,-0.0383566597339788,64.0 +-0.0563700932930843,-0.044641636506989,-0.074108114790305,-0.0504279295735057,-0.0249601584096305,-0.0470335528474903,0.0928197530991947,-0.076394503750001,-0.0611765950943345,-0.0466408735636482,48.0 +0.0417084448844436,0.0506801187398187,0.0196615356373334,0.0597439326260547,-0.00569681839481472,-0.00256647127337676,-0.0286742944356786,-0.00259226199818282,0.0311929907028023,0.00720651632920303,178.0 +-0.00551455497881059,0.0506801187398187,-0.0159062628007364,-0.067642283042187,0.0493412959332305,0.0791652772536912,-0.0286742944356786,0.0343088588777263,-0.0181182673078967,0.0444854785627154,104.0 +0.0417084448844436,0.0506801187398187,-0.0159062628007364,0.0172818607481171,-0.0373437341334407,-0.0138398158977999,-0.0249926566315915,-0.0110795197996419,-0.0468794828442166,0.0154907301588724,132.0 +-0.0454724779400257,-0.044641636506989,0.0390621529671896,0.00121513083253827,0.0163184273364034,0.0152829910486266,-0.0286742944356786,0.0265596234937854,0.0445283740214053,-0.0259303389894746,220.0 +-0.0454724779400257,-0.044641636506989,-0.0730303027164241,-0.081413765817132,0.0837401173882587,0.0278089295202079,0.17381578478911,-0.0394933828740919,-0.00421985970694603,0.00306440941436832,57.0 diff --git a/data/diabetes_bad_dist.csv b/data/diabetes_bad_dist.csv new file mode 100644 index 00000000..2d7cf434 --- /dev/null +++ b/data/diabetes_bad_dist.csv @@ -0,0 +1,3 @@ +AGE,SEX,BMI,BP,S1,S2,S3,S4,S5,S6,Y +100,0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052,151.0 +-0.0018820165277910,-0.044641636506989,-0.0514740612388061,-0.0263278347173518,-0.00844872411121698,-0.019163339748222,0.0744115640787594,-0.0394933828740919,-0.0683297436244215,-0.09220404962683,75.0 diff --git a/data/diabetes_bad_schema.csv b/data/diabetes_bad_schema.csv new file mode 100644 index 00000000..b21fca1d --- /dev/null +++ b/data/diabetes_bad_schema.csv @@ -0,0 +1,3 @@ +SEX,BMI,BP,S1,S2,S3,S4,S5,S6,Y +0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052,151.0 +-0.04464163650698,-0.0514740612388061,-0.0263278347173518,-0.00844872411121698,-0.019163339748222,0.0744115640787594,-0.0394933828740919,-0.0683297436244215,-0.09220404962683,75.0 diff --git a/data/diabetes_missing_values.csv b/data/diabetes_missing_values.csv new file mode 100644 index 00000000..44d8a056 --- /dev/null +++ b/data/diabetes_missing_values.csv @@ -0,0 +1,3 @@ +AGE,SEX,BMI,BP,S1,S2,S3,S4,S5,S6,Y +,,,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052,151.0 +-0.001882016527791,-0.044641636506989,-0.0514740612388061,-0.0263278347173518,-0.00844872411121698,-0.019163339748222,0.0744115640787594,-0.0394933828740919,-0.0683297436244215,-0.09220404962683,75.0 diff --git a/docs/code_description.md b/docs/code_description.md new file mode 100644 index 00000000..45fb7bb7 --- /dev/null +++ b/docs/code_description.md @@ -0,0 +1,60 @@ +## Repo Details + +### Environment Setup + +- requirements.txt : It consist of list of python packages which are needed by the train.py to run successfully on host agent (locally). + +- install_requirements.sh : This script prepare the python environment i.e. install the Azure ML SDK and the packages specified in requirements.txt + +### Config Files +All the scripts inside the ./aml_config are config files. These are the files where you need to provide details about the subscription, resource group, workspace, conda dependencies, remote vm, AKS etc. + +- config.json : This is a mandatory config file. Provide the subscription id, resource group name, workspace name and location where you want to create Azure ML services workspace. If you have already created the workspace, provide the existing workspace details in here. + +- conda_dependencies.yml : This is a mandatory file. This files contains the list of dependencies which are needed by the training/scoring script to run. This file is used to prepare environment for the local run(user managed/system managed) and docker run(local/remote). + +- security_config.json : This file contains the credentials to the remove vm where we want to train the model. This config is used by the script 02-AttachTrainingVM.py to attach remote vm as a compute to the workspace. Attaching remote vm to workspace is one time operation. It is recommended not to publish this file with credentials populated in it. You can put the credentials, run the 02-AttachTrainingVM.py manually and clear the credentials before pushing it to git. + +- aks_webservice.json : This is an optional config. If you already have an AKS attached to your workspace, then provide the details in this file. If not, you do not have to check in this file to git. + +### Build Pipeline Scripts + +The script under ./aml_service are used in build pipeline. All the scripts starting with 0 are the one time run scripts. These are the scripts which need to be run only once. There is no harm of running these scripts every time in build pipeline. + +- 00-WorkSpace.py : This is a onetime run script. It reads the workspace details from ./aml_config/config.json file and create (if workspace not available) or get (existing workspace). + +- 01-Experiment.py : This is a onetime run script. It registers the root directory as project. It is not included as a step in build pipeline. + +- 02-AttachTrainingVM.py : This is a onetime run script. It attaches a remote VM to the workspace. It reads the config from ./aml_config/security_config.json. It is not included as a step in build pipeline. + +- 10-TrainOnLocal.py : This scripts triggers the run of ./training/train.py script on the local compute(Host agent in case of build pipeline). If you are training on remote vm, you do not need this script in build pipeline. All the training scripts (1x) generates an output file aml_config/run_id.json which records the run_id and run history name of the training run. run_id.json is used by 20-RegisterModel.py to get the trained model. + +- 11-TrainOnLocalEnv.py : Its functionality is same as 10-TrainOnLocal.py, the only difference is that it creates a virtual environment on local compute and run training script on virtual env. + +- 12-TrainOnVM.py : As we want to train the model on remote VM, this script is included as a task in build pipeline. It submits the training job on remote vm. + +- 15.EvaluateModel.py : It gets the metrics of latest model trained and compares it with the model in production. If the production model still performs better, all below scripts are skipped. + +- 20-RegisterModel.py : It gets the run id from training steps output json and registers the model associated with that run along with tags. This scripts outputs a model.json file which contains model name and version. This script included as build task. + +- 30-CreateScoringImage.py : This takes the model details from last step, creates a scoring webservice docker image and publish the image to ACR. This script included as build task. It writes the image name and version to image.json file. + +### Deployment/Release Scripts +File under the directory ./aml_service starting with 5x and 6x are used in release pipeline. They are basically to deploy the docker image on AKS and ACI and publish webservice on them. + +- 50-deployOnAci.py : This script reads the image.json which is published as an artifact from build pipeline, create aci cluster and deploy the scoring web service on it. It writes the scoring service details to aci_webservice.json + +- 51-deployOnAks.py : This script reads the image.json which is published as an artifact from build pipeline, create aks cluster and deploy the scoring web service on it. If the aks_webservice.json file was checked in with existing aks details, it will update the existing webservice with new Image. It writes the scoring service details to aks_webservice.json + +- 60-AciWebServiceTest.py : Reads the ACI info from aci_webservice.json and test it with sample data. + +- 61-AksWebServiceTest.py : Reads the AKS info from aks_webservice.json and test it with sample data. + +### Training/Scoring Scripts + +- /code/training/train.py : This is the model training code. It uploads the model file to AML Service run id once the training is successful. This script is submitted as run job by all the 1x scripts. + +- /code/scoring/score.py : This is the score file used to create the webservice docker image. There is a conda_dependencies.yml in this directory which is exactly same as the one in aml_config. These two files are needed by the 30-CreateScoringImage.py scripts to be in same root directory while creating the image. + +**Note: In CICD Pipeline, please make sure that the working directory is the root directory of the repo.** + diff --git a/docs/images/EditPipeline1.png b/docs/images/EditPipeline1.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e60c606777358e5cfc27402e1d5f948fe16a84 GIT binary patch literal 46302 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 aZ=eNuK1?kx9 zBF^bVWwy42)8$1|&Z6>-c}uKDOWf4s`k3^ZB_dP9iSgq35D}U3i^QtId{nnBRlW<% zXlQ$Ht10Maev>u4o%Q$0Td8)b3Aa#Z6W}DJD!!;hekE!k7@#8w`ttv5&DEqwO_Ev! zb`nsQYt4(FM>fAUivy)GtHWFz?M7F+>M6h7t2rH>h|(yn)v&4Mv9Vu&HH~bD zLk4yiLI+s|jdZG;D^^@h2KJJB+e7R)_{(#@$jVCM(p-v~Ka8C`ZIhksSXx)>Li8!; zpLD0VyehjEUW~R!yQuJtgGN5gD0fvnez6wwv_y@w%O)%~z~X}0>>e5U-}DLeMn#~X zN&%(I8|5gopcSSnO8PwDCuYFmR^#sA#`3DDLjLwO00HA*|rR7y&M z{5TM|Y~Zolx+l8%btb)AEotNQ33G1j#ReQH{-X7=Vr{Z7+GM%2b2Wdca+sG8aUbUD z&xS_Fw;FW5FHLyurnuR#mfS(=e)iZV>W-Sftq5IN|{r?`&pQ3m@qrUTdOoG7SJs z0~e7{Zs-wh=(!?>>CqpXgyoec)Aje6HqU~YM%%_{c|tX=`JtfyRKNfuJYSc zycF^%1#+qq{i+XLWl1q*#5k8CMCI6B_wAU7Pv)56orUpEN zCB(wN%P|6`*A;s^`-AHR;UN4z*O_VWR@$C8^9NdE?|{$L-IOwH0%K1VP_wh^{xEw( zsrQP`GRpC7aJY*;2{++mSGda)B|3(zxYv3UG8xfB$}iVG_57Vm2W;NtbIizl7<%D` zgKd{!MYU?nuO;2H&A~VtyklnQA`u5~{5*5Q;3M)sRlNGl*=<43RC1|Qz=8k@loZn4 z6?GO#4xss*7VbIVq~5*O{934L>Oi7XW+*UZm;&NfS<mjeA57(awp{99F2gGDo@Q&Z4VT*Yp`2%!ohxq)%xQ0 z)s_?Wc9kchX=Bd3RhM5&^i_(72Mb09i|dUPWf!Mo;!owZi|v%_72Q(|2XDb$%JpYC z;I58S83OmbQ%i35%t~)&TO&;+WgnWu2kIYHSe8E*n-%MJjBa?qeO&pzUg_UNX_|4P zy^o^c(CgSU9+Ces(AzsOAcs4`bvPu^8&18x@_A-%{49(P<^4dd8k~Rd^Hk`lgUBd* zPD$Bu0&Snw9Bz8aU#~OihlVBay%_erP8AK<`?;X9(Nws)0!X9X zs@(DK*MU6UwVRIGahUW#A`YA;bqfMw?4s;~tf772uI%(uJ7-|qXxdI>2D)0Um}@I4E&eVsAv z`V6AIOgF6@#+*#F7pr@eU92F+F@7NHB%T{REalXeV5}#rveQVtwmM0 z+S~GhQnD|*?PN6K+OedxY<8ptQtYR(8j=<=XtXOV;84PpA?nd@0Z8A>@QBjCSlMc# z;UvTOY}Q*wosyoi^1?}JV8P@u-f( z_{VeS=qiBvOSI1#nybE%OzlrgceoOp~(7Iq`4$$EQcToVn$Aw8Og-h@*XC#ruVT zdvYtvQo8M8_sIesiClMLpwynQeJA<)@Xm4rAsAIHTIOJ-d7GuX)%toX_j3_&fC7_Y zEMt9!^4sx zy7X*M>p7aVa(@brR_j@(BN@p#%%Cozqwu(MfT9pP}s5CE9O4AJC7mwNVD!BLtYJ3AP+k!+yw@3IG;p+o?Ypo zV+G5cwiHe6d9^iI-Yvxo4!y8xwV(Cf-Y`)@58yjASWT^=Z?QBm-!0#`n&Z|)5`T}j zex_t6_QKm{J5_VKk#|S=yG~70r9d0OT!I`?c_+j`t(scdA$8Y)Ar)$Ukvzwqi{r&V z%E5LP0-M31oWSgu)|#5ez@cZg;w56wTp6Gmj^n9G;ejV`*P&bwnadsN>S#hfN?6YE zyiuFB_0@5;)Y8y|P0AkXY4cv4z%L6A`mxbKqe14u4x!X$PP77mVM;iK63q z>P;T1sZIY`1pk)&YJNEh0_nmXN0HnYf2bHk(7ZIP)UE_p;NgaE+d{;oml>sjqgFAG zueBY`1WL00Z5q!vS=>29OmBMwN*FIL@`+J7WE=W4wb$rk$g|#Lo&(ObqOAYMvZa&o zv2d`I@_U&;=!9J~bc$Rrw9L(f?Nn8Q)?KowU=0*Luyo!=U_=)+7yYD|m)`AjcYDc?juyop6i+NSptL|t zFU)lxIZ5rN#oQjJD=D-S-P+2#Q_|@)FW&;NB~>2%wGhwKgUc>K=DTvsdk$-N9G3or z=fiIZDAz#Q*#rwczU1Pj0B^9n^eTcNMBpV(A}vl5ZL}uvFWmDH#Iqwn0793&dsJ*< z$KBAunX2kmRbQ`#s%o4Ep@HH8|TwMX__F!MNPF(sucHG z^AZ?oijT?r=3e7kGNR|3xmI`lxK?k(Yh*;c*8D61{Wjdky_%s;CmLFwK8;bdj_c)B znG^B7imQDvhhpPk3FK{**#vjY2X}Ek?w%pu*W#5rHyt53dld#0*g;|D)e*bl@d=M4 zcoPY+k-)~AUfa9TaO8Hlh9+Ds`85k~dCvm9_I(vVAn^arGTM~YeDhPcS6-eEyma#l zMW|DBPrEiY%>>DcwpgWezIcEs|c(?dLf zN%mbY3&Ul$dR?eEvW(9mQ0e6U@i4JJJw)QiwgiMfgkZdhr_8~T%`HI0{ma4P10Y;! z!j@cMDX)a3iVea&>_tOt_OoeL;W$4~TfKuI*YC{usS+SL}sX(cV` z8=(c%F8n;;7h_-M?a0x%A^;L!gZ&pBl2Gcz4M|_an9*9LW2xmXqcF-0@^JC4hy%i> zLouS3e`tMNTpz| z54a6=xPV_2OQM<{`;ygHYaYngg)yv>Tr=@A&Y>nC3pJ zk*87z3A)i%Y*~`-Za)|fLJM*m$+R4$fyw{-se@A>VI&C-uV~GGr{Wxna^6wshXn5CV4v(;Xv&Xr%1;*PTuZv+GcY z!I|E*A#BeNy?cuLOR2__;o3;p*XlK);(_|eY)3+#1(6e#{hPliB(NKFfmw$cPwTe{ zQ}|4vXde$;Y@!HzVZ~C8v)*C|9Qy673z@?^8g5IBID@N@27aW<}x-C8`{YB!)>3`KH&q>&Me*g{!r_!%|V~keuhS_FyIlwQ^W+B?4zRAt~vt zM%z@m)01cp*bKT4F^-UXCYSqGQg%`xK)rg;MxG*KMi7pC``9#vcK_Xjl@I7zdo6LI zwB$UW>i$o?&6`%$}a| zRAL-cJJ1le$w-jvN%tU-d$VOMX9@SPTa_zx8x|*exj#OJ<@wh{8c^uAvNarKzlZ8i z1Z&&lR?Jhx7}2#bCN~L$ct3AFeDAybrL%~zmz^=8Y66}`5-m>cEsT26qxkzMG1=Jl zUD!qBM;bbz*^-_6N%uVPwCmi};OF=VMD)6nus|YoVj#>mNDbacW?;f!sapFX>hWVz z9VUO#%DArY=L@Sl!+Av`W&Sl98i@0~AYEznB$f!>7JZD~@X5D-QWK}d;&>Cam1LUF z-G$~#;bj1#D>g*>FQTiat}fv#i}svqc%KR2DSs^fNT2w~JL4JE^DjlTHTln01518`L8B?pt(!F-QanSQw>S(A z{5a7co3R#wsI-xvwQ+YBHNY=AFR3mQhvHdcsuJr9*)~$}}>d`Oxn?GLl0w>jdX@5GROzY%M zphQ2`l+(WJyPK`z?ax5rfX)MYj4{_-P97nyK(v0%rF?7L*rA^JVxH2c1zqh>CfB$dCV(3u#-+R=``t+3F*#9+zny>E`XG=jzZ zm~tmm-|KPJl6hAfAlwT2ropfsH#RyjJ~Ge=>RaZZBZ-Bptv__wh^KkCL(szZC)dj{ z`KR$!MT)2_NK=dGvKia&y6_7gjVy@MM^Z%?J^a$TL4P}WrO>I-kSM`a&gQy;dH;*r zq?_JeHoB}1wTQdAk?gFUfRbo!lEguOQ22``30>C_Vn>}Z$mEocCd_JZ(_Y9=t^Ir8 zBnrh2Z^+=p&#`hUc9my<;3Y$O5RsNXL_eKK=R_x&-Lm{%p7Fy_Y6|z?1w2eh!2seF z|L1CMs5fMz5Z0Vm1)htYlWRD9Cox)8kSrO_?sD@m#wWFBw+Smx#-43IT)90s1l8MXVuFNn-!IO>Ua(OPRR&X?Ydm8Zt~k7uUB?VV!% zRI=TEyTQ;gB~@xP6cCac2twg5Z_HB`ES*H?OwK{b{~{ zgQKX2#pd3vwO!luNUUgUep{XB^uVU0$<=ltXH(tg2<7@bcWFd~35%U4ZQq-ddBBWY z91A`N4Q0s@I8OHLU~xcyV)b!+8d(r<>`mx~6zf@*0QF^CgT;{BfZ(&SlSx_7bp8A^zoul*xffQD(CkIFk~NGx@=w) zZt^sW|1ITGmC%QVDY6Vvm&<}r)0;C*+p*bQ32x(y%Q`r0iLlBiX2^!Z&3yLI(=DUm zM|0c2Ibf>Qd0}0H4J_|FR0ZW-C5tvRtlaLV5stCYyy~PUt(WYWDjcyxYgpEb9AN2i z@6M1CeJdYg*kjm1i5=+h!87XYE@CcS!xN`~S8nCva(S9v=O)8s$ zKXDjcfv9Rwo@6kBL>X%>27H!fDktc~jA7jwBHI%p6E170tEu?Tvnq*xw~nO@g{#D; zR%*77jPOn>hqU((epfzTN?`@j(D;Jz7nlIc0%`gGwXE^KmK}P^ruon?Jpv92$~l7qqKLgzKfX<6Z&l4d1(1>uP|J|X*hEn!{<(|vbZ?^x{} zDaaYsnh`rksp8Fg3?7o%V`nDlLgpS?l*GUNGX*$Tr}qI`IG2R(*RVb**AN^^Dfm&a zNETXjOdTrm>l>#`8O+8t%ff{g|GSg+fodzfNs0xM^I}hc-%yWo;T`3j&}#B_PPqvV zBDfnQXFlXWg$yQpzs;&El=g}qUlm>m)yx}^ zZr}>k-IjSc!wP4Ob-IG~urOy=&hr-|sB;2`-qKX;yL?#)9nch#f(BW#P#vj??wGlb zh)JLdw1PZ+D4WV<7L3@96(Tp%%y%e1TI(R|ADrFZLnDI&oZ?iqtgZU76C77KuOsyp zC=(>aO%ny^fc=SWoPP-Tv~==M)$*6n0|M#sd;;lZUBlU~!WeAWm6*BTG8xurn0f1E zWX-qE?);qT(=i{S3VVF65{ZX%TqUV+7^q_lme4eP+nzLfjcaF=Tj5m`G#{E-PXvEP z5~_=zC$+*4A0^(K0uByi)qU+Cs?w6|cDk5QJm$(_O=&XBFCqE1OKuq)hT=W|P1?-DP@h{Nkdm8s2(xA@bBW)OyhO}Em63ZO{tFGE`9_INv z2z@|Pd}qmTs!YZRGnjQ$Dto49=_rhJ^yvcj`ETN&3*$cvBo+{5`cA~k-o+}Hxr z$;+(g4+BS8BYB<|UQBnb5)l3}0ovXEE#0pi7}pFOxzTkFBc%MVD8NB{*!rLYr6JDdJq*4IAf zJ-NHAwEUM6ePSqI>Udav&LM6f-xb+vG#zo_6x-=V3ZUj}~9- zT!Wv!QO}KWZKQNjq*qam7lZdN%WzTm`oXix!8#r}R1a8kb5_ zRn$r2_%%Oo;{H^vs|$tjRmtwp5zFqnlCr>ig5s4gE2=Qr?Z0Vn*lumuZf@Dy?Mu3( z30L*5acBowi=}BybW6n|eQR;kB<(@`Zh3Mf(=Jr7dTONzl&o!DkF^a|bgG_;3I6L1 zjM`>1NUyzOE#Zxxe)HsHLd02+=!RLYXd*!8Xz1EI;`d1f#e^8=ayXUNeL3tFTV!$0nmB9tvD?*s>c?babXZg2nX^O? z`CUuR^%aT9XX=t??oZ;mi!p=4?t&#wDu_jvNK~cZSisUE>k3iQR##J2tgHw;3S1y{ zaKWt-ZgO5tJMGDQ#WL!PJ*XQ(z$z*M5Ri!XD*4!$J&R?+Q?mSmHMh_J%$90TItgH1G5O@MLqSnplm6nN9V8#$adcOR2rqR zAYy+yxC58JhAg+hUMFuRib49_J- z0UjPE@c2=i{kqF#+-+kt|2qGa;r!YMi_ngw-I$bmVZ*sarsf$v_mpG!+~CC7>;7FQ z8NNvB9CK+r)dd#nlN`WNZ29!rAuFRF~D$bU=A2;N3qeeHWy?VE{y1D8&k6g%|*ymh9(82CMWk58XQ@{ zH907)S@cu40M%H!Vhfor`ffTp<8kgLuywB4cG3I24{z?)l3h{+vRfNgf6|{I1sE{8 zOr_D2Vp* zO}WHvIQl7=RfwzBg$S`Cb0Q_$v={gk5rId}cfI@MwC;CNJ!o;xDDo7qoV(R#ag!{; zjx_b-wASd=9$`+Zyf#Vk?0jVouCI4z-9`65hp9NM2W&T!erkHM$qG@F<{%i{|?y$~tjw7(eGDz1I|Ds{WQ9 z>m8BvB(oCRE*TT9+D>kk6i&DqULk{boSrtscHduH={hdsXuf}9cujUCQPI%XnI#?B z$8;b0hBf~-=d{MQ*`o`^hC@$DT>I;up=MAav;JqX*4@{NMR zR!ttO-h~eXw{B zmSr(w_+_(+^z}!l6~G(HoRDLcUijl^_@k)mM-jYuoezOSNYjZ(w3AK740Wf|;?rc~{NU|+yQgf_`3Ov6XEjD0M$TQ9+DSOYpUM+Q=R@nViv6h4eg9N7O+;=k% zay1V+U6F7t$JjQ0QrAGGp@xc>gMS?$ylp(LB!tEH%KLTzTl7rRge1c>kiWrNt-~AV z#QrXH%%N3i)nB6&lzay-%j4BW<^$@0twe0=MX*l}+ zCY%rT(oZzYOB!S>S1%}O#2JfS&dbB$AWJprYRi;PzkQe~T0Ud>Od2zvaT3gVDoK-Qf!0@*zzE3lW}5Bm4GHe8AOl(rFjzo1%~{ZX<(!oV#`@fahc zX$1NsEUfcHQly zPFC4h0d9gJk@J_%)v`_k+_x(`6%}5)Z~^59{7VTTjQ$k$N_YVxiLJUxrxk6tf9HuCBXZka*hr*R>$GJ+}TijCjsExm{^P1$i0B>-+y#`x*z_>h6mkFJ*b%PPv5g09^_zUhDf;6;#oqRHuD^Z=RO4uXibcA-VX01Ei7)yQHP13s;FP zE&`Bj&eDRVPff78DgMp_6&XMwXz03D1H}LPmVqW)vg4IEf-}a`5 zCg7--ktXW**?uNt=2F?zd41eRMu?H_=cCkJp4Rk(ULVKX{ZSf$EEK!V`Y%>j%dG%m zhd^5`VX^Q{4#9(C9gP4U>!(VE2L1kG4#|!P>!n=t-4ew{KZpJm&iUWJf>an4FZ_4C zED(eWUA-*7hV!4fy0fJpT^48iU$xKd`}50oG{1R1{o%R5rTD_dA#d>4t#ywC;H;mk zwcl&fYT+(}pNck2x)DuEf{Dyh*E`{^Bhz&sMu36ev^Vej{qCQpJX`b=Svo!!yUn_$1V8qhH@+K(`@W#3@oX>xwQ7i;2wvsp~zFXRMNDsXLZBoR&Z+Lp*-nznOP zgO0J+IwE%Xg<}Ijw13(Y&$)IItaK9P-y1=AVwWqozx}wJy2=&&8#T@H@BA}q6MA;J zUNT6feXoe|+2wJ=Cgyn0_~UpX{)+NS*bXcTY3e?8xXKl4c55kLFK>L_be z`CiuXZt=c9*If-~>u=k0X;B#K!k&3l?a z=jvGu`n|-=1dHKb1$oed&jp5N3~>zqtMdQ6HMhta>vb}Cy@)We=x9F7qsV~zlI-ra zOFR1W?blfubCO2#YRd+X4JS z6jyj-`b1~v{kNk!f$4PLQ&k3JOQKTtF_zO+aD7M7sa7F{n8Tk)EDx&U;t%taOQ?4? zajG3e$pPrg!_W~`yv5qCZmvP=?t0MllYs8;RbX#!~tf#8tbXqr<*qhSySt!QN`PmYMt<7%9{)N7V-mV1LzKDi3 z)SzxcBm3{1j=r4JodO)4G;QgPYrFRqI0|8oXS?~K_KIc1{Sy6a*vWL{uT zKK(b*WO#Mho){_uk*e~mv~0^Pap90wx%p-dXpC;%-Ly~&A3QI?VR}3W+dmLTFI%Q+ zXrk|Q8H68=ZKPpp&ceQqQAglcMZm!40~RQn=UYu8USmD&y_!|W>S8Nz+hCD(z*_+* z7G;Xw0qky~HKD3sLh zR?h3|hjZNI!dPBybgSy}gPrFnlP3D_zV;H#NY5?KJ2%a0+l~jcq?{=}0}?4N{?0%C zky|V>Xw#l#2Wk#WN!nP^S{SjYO2 zo7>wmc-zB;!M`dG8~>2dd%-P^(L<=}jkBWm@ulgTNIHHB2c7UNm{K~WjLu7+`B&SI zh#aGw$aXofb;sT(LZ=&QfzT^XFqRnxc+snCa9K`c21;g*A(Yq&B2m=~*0PNFDAwYS)-6$J+kL>NK z{Ax<4E%v1r5lJzE}QTW8h|^Oi;~4JIwv5mff!@X}FRm3d&;P*A(kZc7qq& zzsP(A6`Pi*eC!V?&dmD0lAgHqfVc!wxEtD~Q6w{~O)P|)iA6n0UvJovE`B+Fso2Xk z;m+qv7mHsdLi&Tnn@id4hp-dWmT{kMw| z1YQ=HSnUMxM>L4OYYu;g=HsPM(}w~vAhMaA+9nFD*&4O>rp~@RsbO!2Zl{h-Oz^}i5J~NZaz6AqQn(G#iPMdx2!an-vK4pdh=aKf;dKd#ou!q%ue9I*lStlloH3I(TxV;;P>?`D!wtejO+`1c7XprH;Cy z=M-n_ezf%=8SQJGW42>NM}L*;4Of>zq%GI6-4RKe%jteis5w>2z&r$UxGN2qd73+N zP5yftFZN%=K@$?J zbd_-s$+ZW(8BR{C^Ep4Q5p+HxgGS>*Y5wW#a^O~4Z2UHUJyJ$%L-}U`c7E+^CCUX& zVdPmz-}SIv#vlyM_etL+C(iUR0B}l))Zpk6X!vk*2r~C#y!V5jj(|;EU)?h17)z(v(FXV~{yQLwxphR*4=OP774F zhAzHq|4l@03ebA!wtxgjAtLQAh(+Tf2zk&_Dw>f}I2pG62J_*Za)Rk)-X$5l_?}|! znZXM^&<~~Jm1BjaXus1ov5leA(x*p}lt+Fi#k7UOD(2RcMarPOq%HOASw=(n=;k4q zu(8#RvASG{`Uu`6a9+LoeakZ#jCsj+;1SFgtSmKtr9$m!!f+wPKN`x?8eOS~U7Fhg zL;&_g@ZV3AH18KA6KA#nCw{|bULw$f_IJNYbIz%9O3hrmVz0&^`q^58yv1x~0wOx& z#b>X%MV*5!2k3&(rgx7@f6(EPLrM<<|am zd)9JC2^ZMz!8fxzwRRErBJAp^I08c~ zgEgZOLyLQ^26;!sgNjEh)%Q3rGatLj_FB-7A*++h%!c3?g_^ha_EiBmDXnZb_uuPA zQp$3QvLCWjsfoA2C3e*!!j*EdIE=x%?y7#C3YfN<3XPi!xua(=nky%5HEBh_@Ew&9M0 zrm#WdrjLRf=4OJIl}e;k{hRW{j?`Fy8m_g-UwHdbq0-k&rZ0sGRf9-nd)IP=)PvY~ zUd~u~7lnoGNV_rlr*Ab}wbf~&BUSGH(4z9tfxc_+qL)WmbD+SFdmmJ%F6yW9R7TmF zaUP(K$)Kh7X?Fi7-iFjYqcBor@KFavQ94W2s~1l0oAk@E{O~N5!$j#N>%YNp}!vQF&0;lGeD{!GLk2cutP{I|sNzouq?obvxPH~ha@0H_~yDcR!VDp2liN}S*&R1WNthJN;ZZJSm zS--GiM&=>3abj$*d)-F?{}SGq$V1;le(r z2awDGk3D(Eub160x^_+X8RiqQ41I*vb3TWlOx z_ncQAy#|M6+bTI5we6N%W|w}Vx!Xb#?&$8`>ml6HDCAq{5*F6_Ro4~!`neV@bfD-$ zQ2v0`W{-aNH>b(({Bx$`SbibZh1*S$nN0216>QK*i|IyxH{w9lT)Yi$0teFR8^_hO zv@|jto)EYh=85L+A2g&AN`2a>$1&QeYmzEgvJ8hZ-mDbM@1T`rf1s)Vou+JG@|bL+ zihNA8CQ8@Ml_pMPHiqve;rn1JTk(9?6v;a#X^{^ql98v2Q+{JNFGu)Tx0fXKCDFf~ zMeNhC0dZTcN2jStE*0m$QT9SeQaHbWRz=!`p-X}M)1B8W$0tp;Yf@JS}(OXJn2y=J%@-E0l%1O zoHMSWDo8QGROyuR-~t$x-11Ghy1G~>0QbUBIP9qS-hCX^u(7ScG5jf})qXWX$r-!w z6h=k0Wmkf#{PdIF73kKrHk0CZ@UD`$l(``yvEQhv(K>Lw+ORdRl+zqL>dN!wdd5?c z2*PIHKHg}|Xd<1exH4fVylL#`#C%=^yo*pkzrW-F$T2W$39qTihylp8)sc@kxe5~b z0hA>FhhA#$-`&SA738?k(ffQf1>)LXRo%I#1`zm7^;*a&?^)m&k!HEaB&af`IU z1ExS3Ige5v3+X9Tz^%P0HRAg97y0Q6dBQ6NI4QugDLAX^K7h3Mga^>3Zv`@g7?i4< z<-LL$9f02;`IqwN4Rd}gnJS#7b&u6PN<`9k z(ELmBPwx6WbeK;IfL!7q2*`LJ=%#p#HY^AgsyhdcINNh1!g+dtsY^9&j`Y#b+8=`# zYcz=J9|cQY1iWt(nz*K1Y?38Ay$D-_ZNc_2Q`>$?cus^E^+zdjyDjPc3`!T|PPk1( z^$sJ7;HBffi3xCgSM~o5-P^rI-E>quAaj1ZE}g+v)|+_oxh&`lNFgB5D7itfbcL|u zR`}uhSS8CZlEZbg46xlE_p*Y3xWNihOhW`{CZ0>KmRE7G$mq7t9%}P}i5xN%bOmE| z73NDG7e{h+yFC6NP}_?H^TqDL@uI-|*f=ENhFv30x%94jwQ@F$E??TZMa69w; z8VuNEJCQmw{r;VR{do5SScN6f#lGByH3vTRdqHl1YvCgDC|ob`%|zeV3sEmt=cnpy zA7DZzNWDWHQj35ojRE?Q1E#(-=AVlQ7_+liM?dYBG%jQho|hh7Ke zZ#T}n@S?A!&f22M!ou1FYT+-JFKf3oD~JE2-Z}%^Pz^mVXYi#rp5^TIULk=CLU-;f zE8P42LvECy=yO3qop(Ro|FOmj=uv#_%0Q*pLAiKS*a~ zO|tP;X>sUFTwX4ev~Pke+*qfV_=4S*5OZBlDUdOdR^Gap5XiZ?4O=O4nm6rf!tw6X zXA<$AK zqoZ?ntzn_xX;zC=Gi(YL${JwL#oZwH^f4CPVZ6rN_(9sJc;ja?GQ^|CJ4WhtGk^00 zkt>WgPg1?CEy;v@b;@n-QrnoJjq%93MQvxAvISfu)SnpKX>1x$d3Q-hLAO~n91&S} zMUjepH}TBwLF!<%aFbYU7j6p;OuZTD~nAUtzz`e?Pux! z9hsnn)*x6KIj1{|exvLy`e^oCntjmc_N7-zUGbe*o)%6bVgu{uvp^_&EV~!`hGu#| zVPRo|6=}4p-(LRR3=571nLX0dT8RY|b)7vso>Nc9>hFw9P8I(Yl-sQCkw$iOnuP0T z;cjvojvkBF6UBlKxr6SoGf-QX&nRuRFKPd@IlCT??z~H0j>lNp7vC;(8+W@OhcE1``(Yum#kH;Y;fmK$$U9U=<Ye#j}A)2i+P-K)R6Uf7=WihzB?;D$l>A9*xqm95o- zc*}-#Gzy0n6d>AWs2yjDJW9t|S9&{k58pqQ>DpUIi}NrI+~hu;-Ncr$0O7zOKxu{erC&I$s(cH`~4%t#3@Pm$7w z^K`vk9Eb#{8XT(mTt5;zk4FrxhS~>44e$96>=&zQ068>HKCqKY7X#Eqy}s+G!*S*H zH5#<9uEe$jQjBng_vjYgwUIXZ&?jkDyc0!F+^;o;EUY&LER1!nk0UzbrnpKL9H8E| z37611dirr}GcKHW?xFc+N&deT)17XWUHJ42SCD&|v(>rp3#dijuj1zTutInY!Wu*6 z2W$^z$^dWODrGw#tpBT;M$w}Wc)Y9-_@Q}xT1!<+5#F)NSrC}RJ^6Z>kBEgIs0ks^ zv~Q8lE(g{l=2Kj#F}D%kU0V`o=_35K-EpA+5Qfi`;uZb*j?#q*il63jBCkN!z=f14 z-?-%r&6UGZ+XB(mbP^QuX{O%6r}u0{{q+P;)chNGdtJbKd;Vl$ZSwm$4yN#Q34bHe z8+8pTE^*Nt#GL}l%EhS8xlnQw8xnm`+haK_Yh7&QIse8oM0paNnp#yAQ`AG`xz8s8 z)KZaKi`Y%e>%2L?qFWUsOhhoR5L>hPoe!t(@Sek#3}U~CUqwp!`aW!lyqP`!&bg$* zhNB6ai7+S-0>b3_7A)R>ss0jR7Pf*&Znatjz{=?n=~Rc)$PT5EBcwg3#7H!dDMyd- z{ z^S|#5ZJc&$`g?=wi)vhb-EuPD-91VOVp`P2^5jhyN4k?-jxsjGnWlM?XwDcNdSxN9 zwll$ggmcTj=aCZX-H!x7=yk?dr)an(GjrTqT`XowwgB5GJKrIdNJ*<5pWaFkk*NAff$ z<$^i37GI~<)G2(%&UY9uSG!QpFaFeJI6pM7ZWP`m0F+h)S!YXIh~_FDZSZ_fQ;}Av zG86Tz^)iY##3m<~Ya$u*4#lW_4|1W!hUxgV?f6W2;H{M`gOZ~9;`Hl=>U^4Lmq!R- z-HfV=N(g?oK@d1-Sp16gT@t%$r*-iIQzV0W^EjgUsnht5W7l{^iG&aN#guh-?lY9( z!tu;U(3Ge;R%*UkT;|T5Fnl7e#|+}E9LgxIBqb)I?bTf$KGy)Qjqb3E2Q0ci$Op`r1i zFb+02TI195@`qGJmhJc+^1Mm2Q1RI0W#CtE1~IHB`A%g&x{5+JIr?(o$UtZ;)TB!-_B_L+dixH&w^zb9fhau3{#(` zeQ)mEVv9&p@vWbj&P6@w{g$Vf#_B~;ePZgI8|BIXkY?=g4}V>*1VrcCDUXJs zJ@I@94B*{~XTX0y_hc-f{AZ}DLlw-*58f7;mlsz$`l%;3uTuv~OvftIr+~AEBAjFZ0V=}ap*%Aa5yokL(Up*j+vPmfogEge9aOi+D?ycb8rO8I?y(&VckS_xgsyL(`lTU z2sVLc!)b?j3W-frp_HOsm#qQ`e^!zSj8J8?9_14M+fzVRS9=>8*VDFaQE$NW7_Gn6Wfo%x@j3z2 zf4temG-oAk%}*^kdeqh#zQMc6^2f%h3j&Gd2Eo9Qke#lEk-(-j!~LPnvzXh33b=_L zqLI7R$4<%B%#tzz=a?LNvVY$To8jD|ZoYRk<~#X#Ns$G;mZ|A|dX%>;V|VuA3yA&~H3> z%X4zlQ&FX>04b%ko;0@f4}YqFuK+7b=(k$n2K!dst7MJWrR(K*3A(3$ZTWli;7*TJ zvKWEAsfK_Q#%dRrNAeYf6ud>MG(k6CeD)g_o3q#3do1Ps+0C!he73$cO$2%JMM_(8 zIOz6YcIeC{zI?cn&pxBgC8TVtR^PPc?j2(^>w`l@jXGQQvKEtP0slydkvQ#4E=((u zz#d_pOo9B5vAxFwyouIHA3Y8>ZIq`$Q;%9Ii;DYRsLe+vK9)1pYODOYoDu1@HeKBb zK8E0CB~t0n)Qigus%u$>%x(uZWMJiAfokRi?$_-EEuF7WFYW#y)Thjos_;-Ozlt;G zx_7IulV0m%bK)6-aJE_nr_!tW8#(Zv3$X0fV1u?SzQ$o|9c)mkGv5j%dq9qhRaKqr zDsQG;TM(R=D+&Y{eujl|94&8Jr#w95OTf7_c;wmMserdb|6p{9WDKID=}woO_Cpsu^Yk5&~>tB7H!JTw)OR3`vrGHYOEH>h z7o0DH0RdkwXJuY@s(Fe{WGJUe(R^)SPvaTi(vQQ;2ov20Wx~|u3G(u5-+Sg&i;BWT z9%fumjRSEN)~Hm6HqW}%QaPH=hPZM&fdb2Z^QQ-5?0gCwb&K*LgRn5^BQ4!{E!~&a z=H-1*(U=c}O^HzaK!JmcsuhSd3wZ4`U=8bL8zy)BsoOd*HvWin=< z1LsaqQn6)lxlNd>PV-vxdrE~u2N06bTa*+7I@fB?Fk%c|`7;qqv~9{`^I3^koZ)-9-ry#$m3bhvY`ts2W$yA`?gWSmbWW*c48rMc)mctRc>>?@s$1G=HA)dTj1x?WOawz8|pSS(IsN z|MqP%1Z4OM7I3<=XO)L66<>S$;VzGbkxxBy{?GqNNG})eVb-)ber2&|pnawMbJ~i? z*_z;Gb;mYXVVob#5eF66u3S-5WkR!e&4LFuKXUi08?Jus~LwHYtP}S ze8QS&kK2@yAljO=-q^{k<}~gyv3X;KQ$x*YY)Z};ZPiRYWtP?prjjU$7P==4rZljq zEd4=apLN0aRE2Hb(zkbf%^^ZkcU0`B5#+jj^_4Xjk(yJ(AR2?7<4b4UwVbX zAI;wP5Z$k#N>%hnU)xTF`5a2aD<}D<3-qhPZid%s=kH`=#70*pYhOJfx!)d+i%UpM zOdOOfn^xr5;>;NvyT$Ep0QIs9=zP!Zo_(*P{M|?D?=??+*&({Fq12fNgu>j@DycFT1t}BxhMrjq5K1z|iUIY4BjoI!Bw10=@XU7Ohg}rY{!PpSPhF-|{hlD@9#g$g<(_c6+8rIWm48c}k&=#$tVt|BR#Ky?x>)Lr zp4CnIiHElC<2xI~k{|Jp?#d_vce)<@uLs-z5Z!lAcO7M8Bbs_Eb9DD|^#^e;q8|Ei=+p_2M6~ z3L9Y2lpCh>Prj%9FfZo?l*Oz6xOqOjZSHQww>Z1-DVt09X00;JTpbAf!FR27Gew?% zvCGV{qNPl&t?^-L1sioQ#g-6NGfax+Vkf9w{^b|@poRLFt*iew4Jq)64YRg6nTT)H zSv888oNW9a-z_XGDrRQ<^OG(+{QD(D#9S={j>s=p!E2UNSKX0$(7!X#b*eyT_h^F? zX0uvd^Be9>jsLKRz~QT9Zd>ib>L!)#0PR@JK1IXUZ8HOisKBHoDj$mSr`HEDI?n!1 zq-1Ub!Ci7A5?_RSUuWo}?W|I$1G}}wzq2KpyZ`iRYz6W-e)Fwdueiu~;Xb-bx5X&$ z?jC#H0ITo2PUnTb6Xu+N#?2RQp)vJWe7}3XCBV1uP1=ZmOWO?(f`*@p?L?OcA#Cn7i-ppIR`%ROnyg;-tJ{o2td^F5zY~ra zk(u%ml)6`W^^5wYUwkAG85-%cQ|1xoq6nn9VzoBAYL56m)1;Lz+SbG-tQK8Xj4U+0Azpzb zt|zZ9&E5Q0F!FK?bDV{LUl0cIxsikZj)rt9^nK%r4d|+OY@*Aiau{;{H?xLMA;&^a zS*EM4y<>cCk4szk*?-cOVXXF}ym>Uwe;Bcf@!NM{>3flQG=1lSRz_&Kd~GS$f1D#8 zQTdPZGAPks{-dn_j@ literal 0 HcmV?d00001 diff --git a/docs/images/EditPipeline2.png b/docs/images/EditPipeline2.png new file mode 100644 index 0000000000000000000000000000000000000000..df91ad2d6b2f8a254fd06975726aba5c280ad84d GIT binary patch literal 163627 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ÝW#1~TWiF|Kq{3?h{qoJD? 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⪙y|7Av{4=j+epfXHHAgQ)_9{ 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 z

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 E0j+)}t^fc4 literal 0 HcmV?d00001 diff --git a/docs/images/EditPipeline3.png b/docs/images/EditPipeline3.png new file mode 100644 index 0000000000000000000000000000000000000000..47a114aec26a9efa712e3f28dd36605af5cb1103 GIT binary patch literal 50470 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 literal 0 HcmV?d00001 diff --git a/docs/images/EditPipeline6.png b/docs/images/EditPipeline6.png new file mode 100644 index 0000000000000000000000000000000000000000..bdcf6ab270b552ff0ac8489abc0d488eada31c95 GIT binary patch literal 56970 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

  • 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

    8nb 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 literal 0 HcmV?d00001 diff --git a/docs/images/EditPipeline7.png b/docs/images/EditPipeline7.png new file mode 100644 index 0000000000000000000000000000000000000000..aff974bd6fd6b71431cdd83322b6ee58335f03bf GIT binary patch literal 31603 zcmb5V2T;>b^e>79Q4kOW6zM3vNtZ54uM&C}>0Np!D!un!qCh};4;=)gmq6%UI-!Lg zASAiy@BiM+n|X8R-kr&0_q*TkIcMA1v!8P|;)9wzA^r<|92^`%MFklE4h}984$d9= zhj(wEjF5aKx&6E229SS;Q!z>nzb)LimR6O+i&-PMWP;`-x|Eqs1y5Zg`fm%GxkCV;(pi{6v z8|ntNUYU+i2_!}C#2QeW7vg&Tj8&jK#&rw1rz!DDlQ`Vpq`I)fT@O7I93lRXN-Mok zT!TmE@iudg3TYFy8)r6T4{})1Z^bhI0kxzq!>leQS)V=c(p&JYgm6ASm9Qk0L*C<( z6W8>$M3=YG&*|nIH7t5(gZt#Rkw)1Hx zi`_O50MhA6s^jR4{ICuU84+WS{g||D=q+=fQjN~0rWttXfG@g0oFZO~ao?}PeoctDmL{CQ(r>#>+ z^Gj+4s_yWiTWhpxr-aod;-gf#kS#waU9voUuHbKYyE8S`p&?PPB1|Na)Q-Z3b{oNT ziNcds`6*%pVA0dWz2pq*aSwTH!SE|y-D}~iJXZBIKopQxo&iZL##g6hH$Te%Q=`?! z;Ny2uM$6yNhWUylq_e=fIi5-NlG9BZcQCk49YS6+;rfv`HYIML{yGSg3<{HME) z0I3AY?gvMlx2?AbW89=l`)syJRix0IGzOMgKanL(BE4e7Ve_j)28ZKbJTOv2b{P7T z^qV_8ciziO@1FIwEU@TV3mB@6flvt^tPYgs5+Dd2O!hCrOU|H`sq4RUge8Ov&e3_8 zafFm{vq9@0ZJ%P`JeerTiwSQy6Yos8&S3x(yb?L2nN!*pRlDPjAk^ib|6t_Yli#FH zjiGu+#SY93+}v)q8#`J;FkMZIpckHgL1z}6q;JJpMC+UX2+ z@*{Ilj~h%h>G*+VUcy(L^?TFSmm4519$JG(QdA~6D7|cF=8>bL@2BV+*dcDWA3*fa zFRdnDpvHS9-x+V))ET5W$4m{M(F+=egJc2SWe(su@mt8IwQbR6)3P~mnNjIh)6ol$ zC5i|3U3L?r^SyVwJDdtpraBJ-iBKag=Vf20Y2PX{!~|t;=U$of3q>`&yf7+Vsf$*Z z$n`5mU?bI6?DB;HYo|hK1XziKDY_OdR>O+dXe#ll)WiI)5Hh~nWW^xZ<trA7yN|noTWS?e`wjT@T`Xc|7+)u2DeVtL&X`oq9tx`w9>|@3WQb%C?I`b zHjbiB71_b;Pf}VS6vgAEXC&9R?d$V+?sE|QDd}^LHAbb*_VB=8`Z_?Pey#*Equ!83 zk^u_`qyGMUMpaf009%uPPK+1}%*tk(ct&>qC_ScSp9e;2;D#T?#9aBoD=Xk>pbCqt z-7bwiFL!Wx6Bplu?tT}BG}%P)3lu{EW($w8=$-veJ2InxtODcxzCc^exjDX-UrW9| zr7S|U-7XPvLBMFuPyD-OwkM=X3kzEr)F?9D*$q_96d<9rclYZk#8=Jqw;!fUsvXIb zG078a@cqco?!a;KAgB&72iMc+(vWR>)3mj+GKjl^;W~NHO?*)B&FbE>sMaUv$Oc&S z)DK2%R)bdg0db#<$(V-OOb<5F2)`i5ajh0z-G2g(zUqUiOo^-({Z#CjV&u^+Tp|#V zzy;(mt0tGG^T_C==iU|7)tdFZFw;1lC3f5thw8&yi~?U)n)Ywk{*h$0X*1_9ZGdd==xBH!AbKEiQ~aGKvH~*uop`TixCt z|CB||C|n>I>(zA)qMO4lIWui!IQga}$n}Gz_##3kq1G?18~lFgmFP>Bt|Y11=Ns?U z*Vp5 z$&X!D2Mg9$;p*&?-22X1i=ltwySxOaqN;vQ%1Kvpn2d}uP&xBsgdy$+X_@*|*G*jJ zyo?zT>=Y*hpfGPuwsfIB%4NwuWy7}q0eOybat_;Of5q=ecbybp^FPmo5PE@_BILU9 zJogg%PSUKrdV#tp|$S#Hhh=L&PgO~IlHjqr?pPI?yrJW)bHeQ zWcE7DHGzPFFHl;d_T&Kn;N?_P?04IoPSX=kYw;C7nPt{dw`BOjPd;?q<;!0dHx2wO z1;vJ5BIYA8QnqVXQ#At!JzzYFj-&1@6!FG4x}N}C0Fpm4b2Mq1qQk*)ZFvKaeXDCo zl$h*CHa_+n0(x63Td!-M>KW0J3E=R8t^2ufPeqD_JA@kh1u%55#kWabDKulzeb1^# ziv?Bd?l9k@pj&tk+RE->QK-^|TxmaX+o@4LUt=^EI6!xyr!&rqM_(bk7|miK=}KYb zNj9o6l8DngP@+(Y%Bu}{qiLlcCcmEpO;eK3HFAyG`MJ9=#wOq8fYHi2=t#k1 z#tQOT2)E9$i1Wp(6FI_pg{7(yr|0m~Aj_h|L2-wr?=SX8g9GV$T!Sb^;0{;*>_xq~ z?g`FDooQV2E?dL_i>#H`=A>=*CwkWb!UbRZi)3i|RT~cEeWC>--=I#Pp$mv0dksb4`cPEj!`cep|gt#L(fYS zU9C@!>Q@x3&5!W_WlmGRO)pWCUcx-D1WQ`09g?md`~me8Yt2Sq$8_`6-nps z#PAN6v(QoWoe|l=iDY1zapM#7eq1RBmjL#)(*YwM;y5SeXki7VD5xM%jVNil32~Dd zSAgQW8br{gGn9ip#MUFrLwu(p+)0CNqFyhPKRAVn^EI$Ie)kYFk?mND@3!MlaTt$X-Z!@GHNrOz z0=)2cCnZsaVrgOKTNR%C)D?K*u4oE$CG}#7)}iv=y{T_emrV${G~8CpURx?zFRsas zHzF!rR8$ft!o~sOqG=|cB1}bHPS$dUFErDpQ(SD%wRMmz>a8xvlaCJIpMByq=X`A2 zTBVwdB4*NFEf?Ku@C+W<4%;=v;1sCsvp}PwJD=o9xN!B!mt-vE@j{%gCw&SSMZ=P8|4Pflk3km);n+_N zuRRTE?=9||;`Qc@TJI2aK2}u1U^rjq^6F^6I*6SZVp={h-214xoze1gw|vkDZw_T2 zCsjFZSyk_J(loGI3#*e|-*9ev&Y@NF%>$QzX{ArAIV>Z7{v%ezKiNz6%@$99$fX%7 z)s@?0tp#B4TJ+6_-JoU0CW7W9dGq3KpWvH=PaC$G0**EgC?Qfjhac`%YF{Us+kjJU zN$tVb&FMVLjx%1JQm#!Jk=rfrM1^|gefWiP<(1c$J$%JBY1P%uH|5-hmT|X!)9S6^ z-6Ag^@r+C=^sCdA0sg}|r3@sz)1Wu&H;Eik+vT&PFM5+#{mp+4OZ%!RPp-dFBIge@ z;Q3HPrtDAZDB@syEpVnHeE=J-uTwBoP&eIV<+Yk0=e&syShYZo`i2eRqn0vvPY4|UkU z6QTQimMEnqoJ1(t%krlrtzNOfMh{hJEWejun&Im^rbg@2?VG0=U?PJJagM-P2& z4I0kG)*{kJ>t!{#$swso=Ztavo7}WqR;b{BygK>!H-oc`qdPBO-5E$H;>i(@L|jaDAoJv{Y)%nhq8y* z`^arSd(lzh(}WJibk6eEt`orn?uUj3XxY&w-Qt%yl;`iyM#7gU{65-RaG3l()w!*i zmrocX9_EDN*PG;fPvxui7(V;P{i1Kb-Ie>zhx!Hp>?diBHQ*lQliDfaVDo8#f zo4puPhAAaK3|0tXNMn>qxKZtKGhuI`?9P=?N9yx=a$*r3zc{^K>dLsIjTfKIofpNs zW0g-=>ksc0qKx$3Gz<;!MGq`S?6`zZd%W3$oo2_4$nKGXr#xAeU zcmyNED@L0gr2w9D*Uxpf-F(d44pw%5`foEz^axqy>v1IL3>T1>f*U>Hh7Ye4-zIu4 z$qm&r0af51gnp;tKijA95`l&86p7VPR&pey#)-%#NhpU2D8*lx4Tk0mkI-q_SIUTa z6~Yf|T+FBd`^P!n4ogi$Eue6tt?Q&Xf@;1e7wCSomEe7)!}U*={wE^VTrK&pLY>-v zzEBg-jS&+*v1#oG(+{Bs27-MXCk>qjKuYDYTkcpGb<~|IALx-;b9XJADIjNn z39wDacl6BGZu9Z2z4Hu_>^E_{rzvmT>3)XI>Q&d1tSkWavm{;r66W87m3ILd>&(UN z#aC<}^RjE#EQ5@8*#y*f=@8wh1w$u&1He>EPKl;8J07do8|P04EVqZbcpsK%^Z;18 zUp=?oW^ECkRC3%fu>@NDo&UKQduHBUYi|wLhD&e}J`Q~6lR5l;-gC#eJ12?-x&3qje8Gtr${8G0cH7_@G#*V7gO!RWm5P&!_>d&<;S*mWe@FaL zM#3HBPA0Nskp~c}Cbnw_rgH{jV^z?ucZAARewGy*6v>O!yME2N(#e|h`pT)j58&*$ z2c151Ka74W%0{abO!qi;@y{<;2`%M1!vF%y*iwPC$|Us9Xa1G&0QPQNG)*Mcquxg2FB&p zZLIRsS)m01@-W+OeH|H#Esgrtw%(4O0bonIe9EC7w~{2|%ek`oOy?~{9_{M^k-dWB zZg)Iu|0bD@5EP!3+V?a`n&H6bH+$*_3|OwZw|+0nAuyC&*OCR%$cGhqCD6D@8A+SWTl5UdfC;# z)BBLLQi_}=YVIJ<6pCS7;#!?Xt+K(#&_k0X+7HROIXtg)YeFTH6pEBK3j7pCwEfPt z;hv51anJoCgbJcYv{>$^Bns`w$K>6UA--yr# zEhF*)k_pdPz0dO`bTCu+<<-n05R}J3mq@EY76y zsH|fASqC+CVqf2snHfb_M7T3rQE=^l@1*9SW8M>czy_?V4yOP!G*Y7MvMQ>ft?r)8 zY020>1jQ4Li!RNMuBIie4Vu0$RAV3UNWKg%iUhj6UczEFqY9jMkrKLUKRQL4WGgCE2{&}n6HByD|5c#rpLeaBiG0wlNA4-0;b z+}|c3h~cn0i7e{pp9IV{`;Ev&kLV9jW#=|H3mK~^K<=BabF}*KU6#damvcMXoIg89 z2_OcBYz6CntZc*u+26dU?O*CQe}@tC$(kz5mUD}h7<>M>cUx+q=+kI&j?6*)-bBC?1O@791{=k&34$R~2JkW4h&HtrZn=o!qK3c)0p4Kn1?v-7nKcIwU-h!y600`?mTV+kdV` z{D6A$;`F#O@W1WD?k$$+UpytVvPbw}^Z zNeEB+E}f1lI@a0SLit1;-8G=|n;RM9x@x8t+7hM5QlH2oS)fW9iIUfW8|Wg;R|EnvNo#&H_w8lb;zM=z)Ihe4Yh*kh*dnMZDJFRzz7$u_nn<;b<|fwoF7OEc{Y z*X?S7#8lGW^P-LSG_E*jpJ0o(Nk zj213 zc=$#8!JmvOyy`>e)|CqRhC3#`8sXp4ydTer+00FwD*8(p{viM6< z(9Ujl@^|alUiz8%pFBpqBi>?Z1Atq{we8zhLLViy-i21CrfTSxC7snDNxxe%Rqv~- z;eOwegOnN47G3h4eHoS?^s5OW67R-K?LbctkD^E%Zhhe!fgv!qINXH-8^QYvICFT% zLT{}cE&;T=Wm?2TV!5{(^fo)JPV}aNDk1Rdi zU=h-JeM0K3TFv#AQZf8rcmch0f84RqH^(p8Ve$VSoKQupb4ynd#@{=V`x|xe#h+=V zXCd{#HvA5bYxL#&3|LNz^_(m2#W+V2pCM~esrG4&g8lPtT*g7AY!cOQ&xN9g$@h98CfyJLU?WwwDwEqfl z3pXL3I2X;7bJI0DG#Pmq_$BDF!7zT?k;3P6ZA>R~tG~2}`Od%e|La_wF9Aa~tu)NC z0Y+|>qXD5S(^S@FaCJ-l2t2UIh3QLhO*^-tALQ6LK+18mVdxcz2c6W&(i>!5ru6ei zGqx}7!NC(Ba(H7Iyn}hAE=(SA3F}@Tq8Vo_Wy}d@pps$cf@!a=GVrm*cckv{@L6pj zIQKUSP7&&j(+ABy>Is!M*(`{#0F%h;^jjbAR)am4+V~5s@+Y~_h#)c%l$;+sfE~v6 zr-S$a;q~%w;|du04;GBA@e;Zh(1jPAE8q z<@3s{NO3PTvOh*x#z5!SDOK1?%c}?@KDfm|^WYqGCTf5F&Y`QcMYdf(ir+|H7R8I1a5_yLuEt_ zMcUxKvk#Jp?l|oCrXz|x3qGT)j#8amJ65+$a@1cy?;=E%`}i%tyOYzXwO71B-}>UO zB6j)xzp`rXIQtE8ILugk zPD5#e2VI}nEk|zSSMuV{GH=`pGhuTH_K}R^$AKjnNUB%wMQ(jonli_g9Tk%nhsek2 z9DgL#Jf*h8S4uGoP`^a5fpmA{aTIEsv#?HWD{|XwvYXul%X}@H+{+4hQHxseJO({F z(7+11N4pnZE+1}5$y}+7OLJ?{6=(@x(esQ+4;H0y6N`4{2{dJ%MJZn&BdJRz`vqan zFGPh$`nDD=%?38S@-Y{bSNMg>jdA|oFtj9W4^qkcgZg+RpUR3bO$`stu7e#Etk@H2 z>o!o&mi*mqu2_}MG)|X3zgTw*7~CEPSxb*SFKu;-l$a8Dr&`gMK2+#9T-<057L zIOK1<1{8|fk5DhgTVYp$N{jhp;>_ed+dyv`^*vFYZ`1WwGUxmRQdB&WF10CWiFOeU zzuD_HY3aVh8-Z|0*N`J;ZZ#t}V-9=RJK4w8j5$Qwu|q6hIjOWlPK;$8#!QNKLzcJ6 zn<~~YUukRWMYsHKX4%=OAY1(bkjcip^>xFc6cuu(WkEZW?P-do6c7k5&SR%?+QpbP zvPE3HCZN^H8S-+gEpSm;SA#?2BiV&K zcyt9I;^4pV3+aW$SCb1nuIR)qbQN~M^;_JyrKel~<3|=-vz{K{)&LZ3j+uLB)6|B|{GaHo+@Y$+fMuNXHDn)4D*vn+AOM!2^E+Z+KK$4ecaC+D{uu<;?H60&|b3|aBY67n+` zcka!;lY3@x>jENi7Q>piMtBY23VDr&#T3vMIqW`Wvyw<8EO#POy#*P$`HFpMNp@|} zLwNQE=Udxh0)guz_|b6gB~l;J+O-rBwiF97E1>EGz_>&6nG|1drkYiKj8dD3*}1Tw zszDP7q%Y!dx%)`OE6G1dc)t2i4qi+(;A}OhOo=7e9&-bad;0!w|DDKV{gQAbDB1~Uf<3lcdx6O-l|A1<5FxG3n8GbvBxfMiTe<)@<%5;+QnqFo$+dan5i` zs|r|LU7P>e@IZM9{D^d5%hp3PFh}ZFEj5@x$Bx%xz~9sK-1ChBqN?eJhI#3XBuRX2 zeHFMcfvZy=Ol^YHnASyMeW&PTy_<8$^DRs)OubIa z8eceYAwdq*g9sHAswlPTYnYE}6!7OVr%8!mb0Hz29CrZ4ptUT>w0%<$ z`uYViv~fh7+V2Y{3Odllh(->|8oqaAwZbfjA0G=djKnR2Y>{W?ZiUp70SzoRaWK1W z$?qBrLehtT)udNuK_c zc}O&iLP7aa?t3brV|~37B$25K6zdukXCrtZSh?J!)j5lT`g&dn9&H#Ad9JqvbQYupewQ=V5!+ydlihhG>p#;1b?% zF=LcD*C&1fY3@_w}Ff4>tuBgqz&Kz-bMp@?=_A)SJ>8FE zPe_mx&n<@=>xzHB>h+AM?{A;)Jrr-`*qV=Z+gl#x-jC>~)Q?tIa~}@Lt9Q>l9e*xL z8N%MdyX2LD+M*{tTrA7)$i*KquHwq_1 zoeSgrPLIsUTu)OEs0ksKfSE}G0RKtMdsKb2pm3mRwUzregXGigOEl$$g0tt{p`yve z%NtmhNlv@r>iPoW*q7Ki2^8O@Q3P0wCE`crL8EyEvGU zJ)oqmr3>CQ&TgZ|AM>Qu6Zzx{pSIM=3wH^Y5S}n(pe{!jjEwOR3KxTQV~9>53b3h9 zXnJ@}IC$t&e~Y_*c;2&0>9Cs7q23FmZ>{_wuduNixh(7_Gfm~m<|GF*qDoDB)`j-7 zJgueEQky|(N5?e-V8S)kw@^@0su!dI5ufWX zf1hHHU1VEjsxgY`oRZWD08E9+LcBcY0@N)g%uWMtP2R8Xv!2!4Pt1O13SN_t6@e08 zNz{?OiKPZNvo**>nMzgyJy)@r#UL8(sx2!x#pri4kJ*GdY?dvx@<0hqn2twGX4(YT zg52%)aWGr~GIPjte(e^R6}FI&C29D4>b;~9yhKS?eQDjT&EPz@PM)*QyfnoxfSd$Y zj-yk7zv*Ixf5pyue*FX<_@}4Ms38v6aFwP*`_st~m!tmSJU`fRH~}ie1Ptg#vgi*& zYe>n-^!;|Vhs~2JQy4eh(k4oPmoDlJ=k3ZeI-9+rSIS+p@fbFvmkA`pOX83^M!EJ0 z{SYF)k(ReRHSth{OEV|n`IA4mmrh}4errd~ymWqohFx^SHX&CH8D~R{pYS`F!-h}w zrChjW7pV$|Y59Phbbp={gwv$@D}Xfc{n+EqL)`@-3)0+E`(Q-+f|jIjq`I ztt9?@HlmJaOY{;(@;RiGwGaJ{p9Jr@x zSUJ}$%qafm<6h14>+c8+dGuW4;TLUKz;1Kxh*YAORaiMC>J+g`Lc-8@QBfGb)MP1< z#H`41yZfz%+`q*O`ifUPJTSfku>`~A+ep}@#jAZ-G5(0jx^1CUC1#m{X*CTB%QzOG z?fqKpCZqJh^rNuQo{jkc&5tHwylW#p*26SNiCUP;9?|d^4cSXS>qGk$zAm~R zb(oD_YUKg{4~8q}>0NvZz(X(33Z>+8XWRx^Ni@0FU+fXB6QzKTA*@Ous4Zd+t!cll zl3jbzg7DRS((}r5)$3`?`HQvF9QT>yMYFAY3_d^>t`f19cwpoOGHasLu;J@V=3c(( z^%g~mOZpkl!Qy&dWca<(bi-|(UI;%jGlntHxPQWsS^51QxY#%5TFbFhvguhB=3?f~ z8nfX`>&?3hC+DxX7Cq1CqgrU$y}o~T92w6N&+~h-*5PpWNon7>y;n+xX!4A=Xd2U7 zB9IId>CDMnvb+P^xkoqURfr@qo(5F=>vPahzu<*nzdX#%Ht^gQls)>Ab=;E zq}E`^WG4~o!PTR;Lb=8fN?_PNT@8?sMD)~(48coN!LgS_=sy#<#08+SQ@qvAHs6?p z-bdN_cE7wlF|IM*ujgjEZ|wz#_~X31phfF*ddmDDY85;-DRItFBG*5UZ;cNQa(Dfs z`^FS!3uR_pV%}M}6&+Ula+to}*U^ zB46XDyO%jH*1>#~66N?0kEfrf<}m;A`p)}QnBDhWjPNu1M!-K*8Bgo7ew-fIa@ zfi3@;i>7Dq?Q9>aFs0)I*1?qYF+n{m=j@!ugyjnk|pnU%h{m`KG;0-<8 zv601wh-O20$+qo1oZkB8_DHe?j^-w~D)Sz*bjju>@Uua28Ct#rdBP;?owhOOru<-* zIpqr{Y-fv$0J(G0!XJ2AkHK|Fi;=I=6`m%t<;=vzA!P^m&x}>(bBm@+gIYt`?_fY&iY;`T_j3>ATgNVNk27 zby!E+Uw!SG@8GcV0O!l1WltcDTd(;)Y}Dc2U$is0{5H7q(YhxZ3cQkkG4z)gP7Sx= zb6F5Lb;J2nLtBldsn zn~2s9_ItVulEam7;4dq($Zr4trjK+2SG(rE=Z?lQN)&$qSFjR4CR@QW9p1EAG=Hex z80c%9a92#{`Av9ZROL4Z)EIR zKV3HmTkrpZjDn<0zrX!z^vrpCHtX-5G@O&FOhNm|WaD=z$icBDJKj8CA^$ez$VeHZ z553=S;$A(@WbH}v59$0x5bV8>noJ*tCmtL}Lm0o5?45N)n){*VABFhtC(aAG)F%ou zwDhRsy%9T@= z-{!%Xjd=bie^GoKoLQ>h3qmjP#7Il^zw9$}zqtkT|E7yO$DXOIt1*-&qY;c>_Fq*9 zz0|OK+&Y5)Ujy;zZ|!CAE(S*8_?+KUR;|l257KVKhX104LEZ~OPiFt-Z_U0JYmSC% zT#?y;uBSL6?*pz}8Xx{6VDj*mt2yNc{peTf?n>c2ixJX)AN)`A&guKVQiqh@hOXXH zT>i%k^OqNTGAzdLs##K#c9)gi&mRK^^^hu-wtt0n*1Q-v4aP>Xw))?4HA!9P~B z5h{HP#P*GL!va}V*g}(Gov1kpy<7zQiT*1=NyE=vZh~sVc>Q6l!&@@6|Aa898}3;k z7R*d+b_!%c?Ebd)&uj5>+7e625j3MycpK{Hq!AH$wC|KIt_2$m+Hp;r+dt2V>SYoc6C(M;%}2n76}Y=4ss)Q3h4@ZrF{va4A3XvazkO zV2o(c>ez{zR}o~Y?j`~Xa9=RuV;ucB)-(BrUwbz?u>X2gyO1?&TF@_S(hYs(i0)d} z@|o-m6R;opnn1RJ%3URAdPdkeK;$IKZtM`9yMbiT^by6m# z72If#Ug5SaJgW$|eknSY;-&_sG;Cb*M1IaHH3Bo3H_PNwE_<09cJR+5Ry;nHd1jGx z&|*?(QkpwUX+Yy9yH5~W7RG;^iutdDV_Fx3C6AcRxgFDDZ8QxBn<-4azIN?po#Js8 zWNQu)`zzIo7~Tcz*DOhejMWiAaSB4Z97ZnP-V4dYq?80qYy!pp)2thS+YUq+KaJ2L zds$Vag z{X=T9y$rkm`1e!sQ9E~_s|6&|VT~5oK>{w%;Oo|#x>peEfl|{CopU@d;u52{j26a< zAW9&@Jn@{a2A;*PX5i?1(_(UChbaYabq&R1yTfbS>Aa-AAx0JfIK8T@g4T~pf++lW zb%o(vs9sysJZOG^pO5YJ>ne4S?OFcnTv>j2<~#d@>R0IX^mc?C z<-uQ2M~Kp0LSKH4oB_6-gXK2Aw_lzwInLMF>X?57kA;%ZJ0=UsYk>Q=HHtx^qW+?f z7+->b2{rXv-yCrbn*NF8TK~9j!6^sWv_JDnwl5F%*{rZD)sNg(vJLfs#_a$f!eDN4)*1 zz}4ZO8(f;Og9x)Fpyi!zemW=3s=k*83i(2g^LjB~i{q^{zI}5uNwhVDIFL|9MHdL9 z%t9DumJ3{WFMSG|*4$;})G`Gkpf%-jSONHZr{346+PMnqDnvL1|IA>~7Ed<-cJ~8{{M6)Xz8%$LlA6BV#thsOmWMo`9;Y6QQoPj%}n+my)?vNP7!=^%9!h zF7R<9>*hM`dHJgEG`QUKC;RBor_@c{AJ91ej%NNBt zwXEhoOcbj6^q0rVvRxE%B}xWdhclWN*=NFxn7Fp|%{`b>mGx6uFLlbe-?4UztroRY zQRj#bz0Ir)R%^fheGB=j6gc!DHu6)Xr^6VXwU)IXK|~%K5XI|?b2jcAwzTAx1lYG~ zZ*-mGcSzVE`^vwq_oQ`yr5f#koF7vSy%W@|IQhF*^&jv(bxv}wON$&EN^(QAYZMtZ z>6)NAyr2?hWj|+xHARo{uh#)%j4!fOwY=@$dQsG?Z19y*BM0r5`LUwpr=_$q?X%)1bB#()Aoat$ zfB$E`W$e~TKz{M2QS9Ip$7%wXwU3d`dm~X1CDl@@Jdcx#JH`7CH1b@CiHURnz@CD) zzx;uM{m3SHFCwU*viLZz!a3fSD$%0X3buU|NKuIiN@w3lb<#(Fdt;N2(wV~|%lzoQbkp>RSm1+e|J`NNxi z)pDAxyxn3bl`D0e4ic1?T9544q#H4_5|sR*(9OgR84J#_vQk|~AA&Eg zcog6suYrUFT3T9ZY3U4<{jHhB^MUp%AM;IOQ9bEG%D>BPE>eC*Dc_4oV89cxoP%9u z$zu%yMC6f+A3Dy#TA>|;`Vt;Wbs%${Ru;AO!SC{|dySUDuDA1mmy9bcH1x!sMZesj z-uoityHv}Wm)q?i?GibuW(k2gQzndpZ^IXwZY_OI{pFG`1zIgD+`kWY%nv-z-Kj)e zU#W6o!%uYdYvZ+pJ9@)(!IKIc?c{0TTK!p9?VHN>%=84o8zMW}GnmHdJq;kFpLy+f zh9oiybVD80hUXK$RmPC@(kDF!Anb~mi6Jz-W%Z<|LO{a%h#or6Kt~7aiFyXSn6qxL zf&8!5-ZChzuGknxay8?VQ(e>T8TstIgpL1DNH_V(fAEZc6eIK>T>)>o^-qBj1UArUa34EGhga zgWpW;)2DDL!`FBH>$A#_928Ej_HXI(F&Yf2@{#itE;0#V&sk<9lKbmpag_Y;aqUxnBt2EiZqMaDt5Di(f@XuXY{B=txnf<3tKE-Z3@C^>j-Oy1Slz48ymINQ7B|c8QU{-{IZkqD z@rc*5!yMJ-z2wjGR=Xl7E4bCzwADYZsYc;aSK##IH#cn1XB|iLMyb@U5k@m3j||#i zLHxieGO?jveiuK)*w?mpg-d_Xz2)j(rp$eUv?>vV$DB#c)$(6a+ z2N6XjbyE?kdr_}Ko!DERx0qCg0t7heLcH6}VZ;wAhQ9Y&O0JL53tu)%*5OzYf8L|i zi0b7*9Vm-cmd9n}*DhT^K){O^FW5suLe?1T60#XA&zSdvMBLYDX_33P@bK}a zS{gtkAat{a56RSoG0c||YhDRv6WLgs+uPeTw$|3+sW?`F+lP56C077?9g+SoJX-!N z%qB)Vt-s8OMrz&R6MYNkc(EEhwz`^Y5EFIMVSg@fY)MllcM`1bC+j-O&IQvn1sAoM zXC{cc?-$cbl|1OHv_v&;0WP)AGJ5zRJNt( zu6BQK2?c92cLv&YQC|v-1HP2WJ%s#?6X0L&F3St98b?tDd;8R`S|(4wQ|zRa;$YWl zW1bYS5XJ8yC$fW;ugQLWiy|dGgi@5gfF>tBy=A)&au>yPA zhns_D@t&s`Gi;tB4zk};0X-|bAIl&C;2O8w$GUE>PE?$80h5}-A)0FzSZ|aGySNh% znCjKexe6Zj{b~7`d$?1Q^yJFZJ|b*z0*vJ?Dk@r04}o+@`nxpugg8wAA;g7QN$ zSY^x`le;#kbr%|sz9ly#iZ3wCVM4yF^?esKwla+)NmF}%b9w3S%n(~leR=pC)|i5O zG-){xLz|}93sWA=N3od)S4@CLa3Q2!u(;~$WPyjI)BaluM*Z)qg5L*BXNoH7z}jnc z3@qEt%$t zsw;<1VE#94eh%2z%ecv|{NsRLbhdnwLK0`cO#v=^Z|cdDCz@o%*np8fmQszt;H>sh zm{D=%7{-Ig1sXf8gE{V_#mnDm?PDtv*c-nWYMt@(DG-fW+r~>z?cB`UENCvE@9az4 zx;F2gnva^(5zj@F=r)Nak~ka$qp&`cc;$GRMcx3I&w|{}`_)Md@;3lpZ*nV=W70RC{HItFN73+;PdGCEXO(9H@Pk5NK z#AJ3Amch7vf%;zb%TzAbV zvwCRmc&(RSKkq4$M@sp}29lg0!@h`8YKEmlMZKeDO~HkGLK|i+RT?_ogq_}T3Nis) zf@u=<&skl)IHr6fTA#`ykdJJT*u?m+e2?e8aGlG=K7|z;)a)uAkWiMW zEPD=bIe>fPS@gxUstk|gS==57Utx4WDg|_+3Fd`LKY^~U5mcTSn=vxX-N^bKaC zuMP-sI^9$f6Z`oYiJWgZ=6tcmdvkNscrdjc7@eIvKX~iNuWT2$FsT5%Aa&LMFVghR zPdS5M_a>DyHmoxK6tyJ|2M8k{fDnBsn`tTpah=HQycvDYWmF(m`qRTuwz7f$C~q@N z{#*yIHI5lnR=lx8<(PPrw#{Y{z4?{2!MVHX(z)S9?J-}gx)q;O-PWR8NQ}hB*bnEN zDdm;GRNoZ-i%$xMU6u0ibDcQM0Hqn2tl;KVolfFzVM`${KFYVS#-@!8JyER~{c!~0 zVckk?NltglDqoWt`x11m1M)3b+Ex(QSYgxX4Ugx@$VVu~n1aHDI2ndSNaPOP1`Ui3 zSu+jJEe=ToWr~P`KJQhG*=U2MBzv$Zy47b^yBXG6IUBoaukfLv#b@wV&9lf1xx>wI zvr!C{D@X8-sIDnTO-_7^t^#-U$^*aI`-?>dwY69>U#sh-o0xhLZwy84Y**9QYXqP2 zociIt6>rnw8v_g21N?pV(JYgMRzd=|qd%M)DyC&0n)L3T>k}jd2QOvkl8PQ*yhHKxEbBb~tJ7`fP_qm=Hf5syxJzP1b0p++9$8mC^G0zMZCoL8HH(catQ=yaPx~E>A8id79?=FT zceC~#>(#+@#)?g5d{&`m z3Q2ITn10)6&zQp0Enpc0%UfHt%D@D}E!Y8)2&Ws8*5ZjFE@Qvmj|Th_wif*h4pQ@| zsi~<9@t|W~q-kni-kI_7@!{c!&RLr@3$OoC?BT` zjC0hZDw1K~>**X+fuMTH2i=*9l>4I!QA&(NAXUZX(}wMzkBov6S@K?Z(qDnuIE>Ak;4m_x5D}kWolob^!MultcF8J7j(|&y_mDc=syUY75%c z6@p+A6;z4K+RuTyW#rxcQyoIYb-$SzMw1OY9ZDBnrkM*-n(>$6s`)J zKWitfPL8O0i7if@Jf>watxnIqlyqqrB>tY#kqnF+Lz9wAySVy7H)_SFM>TrpU-5Fu zFw!-ypGjwH>Q&;lFQ8_27&t~K83mqr$Lz+jRH_N*Kiyd(P_;e?xcn7urvXre>0K%+ zCat#FaE6amUY)&4Vzo=LX1Q;Myl#eAK0m6Oky2uuF-jBBv4XT~?fC47X(fAH517l5 z%t{vfxeAG!j;aN)CKb=ugvV%{HK2j)M@0vLhP|FRUgvuZEK|9z+Rerr<>_RwG3&xu=bNhW4ufyg@64tVvQ!Ng z37AHO)3H=r26l1Ll}Gi({r2AFI-jNmQrBgbyt0it#Z_QGCy9A~FA>Pr=-d%8veP8TSS-*Lv%v z-xM($stXh1Sq4j>QOA4r#8Re}!(Jjs_X9*7B@h6*5<=Ceb9+mOuRry=~~!i3L1 zHdr`ZHqM0>yBxa%z9v&@b~o=!xB}o1Dy1m_6bTGr2_Wk!iEYzd0p@$~lj5`8?mZS& z{Cl32DEe2okh;FZN{~yJB5L_tz|$c7-(55Ro;FjJqJHR3j*k971&=b!eQ<{l#7 z;7Tkw%D)&`6UyxOv?2gA>{9!4ka?i7n~q6kF;rO2Yh|&v4-PWZ&`3SzhaS__z&~G} zVdJQDHJS`lM8p}E8qSh3XqII`u8t}6<+p90Adw6G?ciDU@$JR-I9yzU)A@9>)^_8# z!q3mIy1II9hria3XOJ!$6ZSsl)2l(OWLDX?M!B5ny8O1lN#~R$U@^n4^bbMKu!$HQ zvScW+bU8XOZ=XN&E2zrO@}I>ll}t6lJG80CrnV1-;-r+zxD0nz3l z)7GhTiqR;n2c3k^7Pz}yqY-g3u(I0RU7t}{rGrPa+2bD!6!o?$K zwbUN&@5Ciyd%l{7K1>Y-(k>v-8h2h+d0Sa1)sTty0ZH%S$ArHhpCd5MRchfPcjJ4$38$(rDMR_6fO zsAsHk2CG`-6Tl{A9;^*<_0p9kNxDz?TF1-Bh+xP-Ol5&PrC0YO&!|6viA=T!#CJVmAzJM}CDu)Za`DHksLe<6yg)To6l14s zlB!-}e&>hU3gebv_8jblA;w_@?kV-uGHbXt{kh)JQ*4=jbLZ>4-$2Ln>Jx3^srPUR z0*yS=1j2kZaVc4@OQltVH#@w_)BE@l^5XTLFXe82`Hgy=VmjCq z^&dFDZiq%81C@7H?ZMvkOhN3cEI{UPy38=>F@=`Z6MJ;-k4y=^h97m4u$k7>Vem{i z-lBVdxth(;r>M(e3EX5GP09+!~|9S@YbfY zmL}ijX2?cMZA}Sf%}xzpx@CWwdDU6O&#j&SzR)6XpfW7oJfxYKt`^Wx0PCo{8rjg$ zf7Q8BRdY8fR{jN%zrp2xQ)#wk1APGEN`4QNE=y!o?C>U+$N&leWcx@ZbbY7-LRx^# zdF($doNs>3U(!=t^+gU!lcR61_{xE8?$T8(X(pJb@y6A9&aj#4fIV)bdtyJYrt`yP zNPhGWMqR!RYo`0fG!1!CJxl9^2eT!I>DLam_FEJ-^PJ!7M!7azV&dorU+R8>mRdb? z0?phWm1EmH$h@ug!9V%^W`}7oZ_q?-TYaCWu4eHu`@S2}(!5Yp-og-HT_jSBW1*7~ zTP0Lrs=DzNL;NEi2J#`MhdCx5o}UyEu+)J3V~QQ&_WI3xWx3+{7M<(BR~n7H`soz% zTEUyD8t)91-`~gQdkqIVo;%@N~jESks1e$DT`u(~^l$c)^+6?j4K3nU*;qH4N3*OtjWT1%bhC3sCSA6it8XR~g}&&J;bp;=4~EzRM2_Uvh2XQ-ml zYcm$RtI{LS*wTn-oULg7CgRs=_xVq3pt-rZz=1)lA9*5jH6ohz2Ol1KO>a7ViS#3s zm+sgmdNtw?X5qWnsE~c*{gnl3ETPrvy*J$aL%qG7g-~8;!o7YeZop{pS!UN)mx_;| z7^x+(LLT2BL4IwCOie7Hg%WQ1uqr!#FiQ^Y3`{~gOiTihd$~+0rdA4~@mqY5Vq70_ z1arvYRWnGx7r-!|hP56m9P=7Oh&Zo%EQV|ETJ;zkZl=p)rKJIS97xI-n=e+Hshm2y zM!wM#)7>_|yM8uEeDn3&$)H~)kp8=jc$VcrJ71k*&Ln=T=rlvzn|z6!H8TT>Ez?Xvk(Cv9iiEav$n&bM;;gZEkE z;{SYz3lon(u9nyn>+u&nveKrQzhXq0<^1H{rqvM|a%CjEMmDSJ`OA!u6D7T70j` zb1%!!xbb?caA)j;l(jGMGgXofTSg(qq3ttmpZszpbmd=d#RWAz>3&=|%@(mT}TQ4MF zI1Zfb95TWPa}C>A*Ly`@FsiUWwRmQkIiS<{u-Y93H%7N}X|$ZLyK_R;FqWK=jd)(K zQS#+ugz|TL`&i2Fl20D_Oe>&NR{O3J zEL3=!e^d4nYG*FvgK;0^|4USCFNN1_9SrN_rYczG0AMHY(eHFNo>iO+pz(;pJGNhI z!%xRYd2NWVqcUx6ioE|owuFG{@&SCSppOIQB7xN)LC!YVToYsYZdc;j;5ENZ>{Am0 zm{YJkAZn!kmw96qMzziEL135MH;S#K;&r$=!`fnIb8LfYca7W=dO`l{C6I^J5IKzf zYlj-T0e~ImI@!&%>AxA3Bi%3rq5quwDPl&a^vyi=1DukP7LZ`}#kY6cykmY>%pGM$^|I)q{-B#EAo}0G=U=@-3Sv;t7^oQKg+2$P%(fk436)BB^(!TI zPVu+2n(JmPo`LhXL-STn#fKNJ`iUCI5C$Z}e$B9tsOJRe$bRTu&x%Hv{9EM!0A zGezlzDqqzoz7e4tc1(0Mr}X1rchu8Mq_ExBr~%-&rfC%lTBM;#e96UB)`HWKHsT`e;nzZT#8|`_Pk5o zzv9X6KYxDHMlST6I>*tarnop-2C{uJp3Ef#ol6fCXrBXmGnAotSs>l~0gB|EtDBdr z-AA1IFCh?OL42V(U8^&RMYM2n|I#PBSdRSYiifPZXW{sDkI?^RY{<6B~HvX!iAb1NKj zc>7&kMpXy0O>)c!#Gnq%iSjK~G?nW!^Az5^&J%DotLyjycVvkG<)!^&qK6CE0Yl>a z_n}M8CcS}kv_&?ic8&WIK+RQ2s7NrjD*Ty(S@rUIfKVt`ztB0AOx2aRWQRSb4{=&B z8rM`o0v1?VSRbF7Z{2O3o(Jy%UwX)fE_^RNquA>hT|VQlcVN16T+s9Et5h9F9dW>_ zRQ|Ur;MC;3iu%hZtUvWYVykLxKzIra$6;0+tGN8f`%tURwJwx_(Ww@StMDXcc$fX` z@Yai($y8CvGX+Q3Fgc#+R!G?@TH;xLS~HAz%Un(~ysldgAxO2hW5T}LWKpEYTsc_y zceqIRgSKf#v%Oy__xk60uQCe1<=eCFy~9=^*R@vH8+h5-NYQN!P8QA0xZYYj8tu;;fansfr zMMR%ZGdH#rPjDD|YTb!j0B`EE=F9D8_l!?mIs%(j!>QFyuQx1wj|5@}Q1q+ETSp!F z-U&|x$UeS11qo?a(O0zVki;$TrTcr+>|&YHz(0wII4Ks8~;uCnY~ODJDNQicBQ-GR_2@S(DqeGq5mj?Z@s~q3qf} z^uskOzgQ!T0u;#tqj9KY)iG)R-X#)_HpjHl=i>LFVb3O1GMY5(I*mKg|M4rjb-Q#mbg^Xg%gb#s${EQ~q$Vp|iWtw{4=ZEDEDte56$Pgu2RV;G*3;9zktwO`j zoD9iLblC|scDXu{KE-q5?dh`F3bGc~ZOQ8ef{hAT?b`$u5!gx*07is(EB_As#IC}PP4A0IS`Bg zKF}`(h>63C$saq&bg?j-H?aSmmIwc<|NH(j|4-SJ|B<5UAI(t|AE9~oPV5ndlQSQm zo?<`lOc$s6^4@Qsmq9?v9ch(Ot1$NeCF${h-6rS%pWDd&!>74*YC0TI5a{HxYHJXh?ApzXV~Z$|Q7-A#FI? zhEcP>Fkk)mug)GGtcKw^_(r+W8!yUFJlSSt*q}b z?NVNHFN8K?{W!qxzdqVkv{iVhVK?w`Zxh0Xc2ac&;H)tLg$aZJB|&kKA@F0orrjTS zxPHCFG8ilQ+6rvB$|9o?zHxxuy?T=hH9%*2H1s|{;zXVWmX4*4dhoPVJY}B0*YO|3 z-NkO}$xQu6>iyJLVYOOYut2+@NvH0-65oJ>@8F0XMN8s(IEc6mVlm}A&voyH{SZIc zlaaROO8cC1T)D5D2t_hLKm}aOuhRz%0}78k#N;Cp5ja1m}liJBS_42#p1j1BWxtTI+8I2#2It9NRs)@Cv`c zW@k0rwFEVaf!8bVM`{sXo_mLP&ya)>zYc12>+Kok*DTk&`{#pj8JDSKs%-`1yliD0 zdmU@33^g;DmcXIKk_N%Kgy}yUaw~9j2aaMs$Ev)L&kM)waX@KcmG5toUmW-E(%v-u zFqXm{fmvw3dx-k)B9Md+zc8Rhges10VV=>8x|7@v`hWH7+-)d5kbdejjr@FKpAEKE z+N>J~&utj-GH_UPYgexHy7f{rF0(k8k7ez5<`BwvjP~GQKJNUoY=f1s z>V*$&Kh0BFYD_hiXHQZbIL#hjbL`5ofH81jLEHg0D)? zEH|lS4?66DYZPZ=DoN`Gp6lpJzJ?X<3kC4n{LI*IP2mdy9`IH1gs^I>PQ=N*7ZrQCz+cXJQXx(MEE?leb9)r(J6)^Z`$ImMIh;)G~wN5}Dr_ zRaS~^FT_gaw$}x=)9!VL>fY?-iiFrxPNcAgJe*w&+;OzZ>&6-dip1Eu#GS;9-og{= zsX_Z@ZsCHWLkeRwqDjj3BJL2(H89FrvQiswerr?(xuVpnce=jjy^=ocX)SgMM67;B zb+j1&tL_w)1$B z^80R>z{{+Yw-)BU&Y+RlRh524ycBsBZx$!!EVS`(tW9GKq;Tq^=SvfX+9w6Ps@Wf6 z;zpyFwc(-#O0I@)45_k|G9~!2srl1W;h(}H6p|KSh{VKPZ`&x)5^!6S%g5ZQ`ki8f zMs*CSq7}gY+=zmC(@ykMfIZ}=jXJW=czYz=CX^n=ycLCsiao@QYfZC!JJRbTQ_o$) zjc4uL_+y1moQ@CM`U{~%y4{ZOEMYNn%SF`*@5U(M*($1 zopHq-IvXToZ0{wm%R$%W2>!T8ve~%2L#?pGTt}HsNuP^cjcN9b=nD9)bF+`~is@yO z&mCcN$IIHUc65_FEJpzi4E;KGR3G~m_bm%25lO|#>yvq0=U=k5cgRvB?J4*JIjQ!3 z^1n|~DNofmD~0XcudCG@&dX|o$s$TWOsv=)jGr3o&QN7E*S0nmUi@}Vk9Na+b2%w@ za4wYS{%=jK{$X45Q_4+ps91wa`TX&RD6G@N#VKby-k~|_H$R^0=6w3h1IoEioJvpR zEAHqw0kt%?N^L=;h?1rTCL!7t3__qEoRWt322X%&N-O0^^o-kR0EMZRw=)&wCugc| zqcex%=jA8mYJLV4Mq$w|-bqRsW<`K)QN*C*bD#lwtzLr$*Sqe1|D5WVe7H<1C8|5e zjEy_!__|hId@&6&HP}|4^L2M@81rk@?1s2a@b4UGc2#TqZQmrS_3y=~uO-^$jktZ< zyLUB(2%iD&K8S-gTXrPH<;T|p`G@*J+JQd&Mtd%OMx#?Ry5os|+_bNPkiuXasYJmd zcZnMIMYk4dbXmyO^#sIi8nsmZRXx@a}RPLv4`w$oyL7p zj+Sg2Ox@{?G+Sq_c*@mvif4M;OHT?`{X85NtD z8wq^~i0PXCccTY%J}-}OpXqMYW4{*=Nd=GHOnhb;O#@yD(P*ajn$5uCe$T-ZN;bd6 za|RRLw3R40Y&pMY+Fh^q%y^$t6!3=ZMre_(`@~z1Q;^xHM^5n!QXF}!N){nY^IcPc zm_P?q1cXYpNrwJJ?=Ze7d}UnfpWo_?%lHWm#*18P^@H--$$*!uW)k=T9cCD*z;#~& zTLmfX3BRbx4!}XKEj)dVdJiPQ-mL@Mc^}p7INM*_HH*{8-@~3E_EBXxVcHb+DOS-F8^y3|8Ih9ZVn4ZJYes1cXHN4uKs5j8kMwH-P?oZ3Wo%q^H0 zmo*x)v)sF@>Znj#yHxiuRM(vXpGUc2v$vJmAfQm3DFWX4QqVTbrg3hpt>8~yTG?>< zY!N*?T&vsX9`dFq z?V9VX8AV-MCYMzgZ6|do4C`;_s9f`EsoJ^l=s?i)buRkQ%w`;a)3PRF(xV> zIRD3k`pQ>ErG1T;aEWS9Hmd zuR9zYnky?MV?cN=c5xbTzcoMQ5~p8;fDpdDc&2!OzrxIe!=#aG9yL-NV@N%vmq53ONDbKgj^gLI+BCssYlK^;p_8Xe0^&P%f z@5z5Zi5`Cc%wt-I<;XNd(7ZMdp8dIysK5q}5LHZVr0TJ-a9T{BziXIOY9lG<3mjLh zW#f_Fhd+oMqA!_l5~Bl+6b}awsHjzpvk6ydBZ!U-qdY#4N*cT`qlAaX$8DZHXp-e+ z@ZIh0M7^x}CAOOI7R*Jq^Zz;?pXP57-uKb*rqxbWq} z{EH||aQ_+Jt=3VHH&l}OAbgHhZVh`hFt}moc`JVeOkY5-yY`CJyTw4to)@e*F?R)z z8?$U|fOXu^FhOFI&ZEL(@2bThvC1VkH z-yfg@)Poq>Y>~AUDJk1DW`SSNrf0q` z9;ItjVgSS7;on+c{4jqPqhO_e*{ryYzN-TR0YLyUJNh^K4jg+r9hemCITcZEeRSux z{?*n%)4+pr2j#5%gP z%4Zu7visYJ$1Wpyh&V9Oofvd%T_ZEtG9Kg&O3!~RYe`9*4sdW(%+LQ6)b zF81}{KT%YKn9$8{e+jHYPt?qiCV85ND(=GQu zk^QENt4gDz&>Bg(-+M^5Zx}7jFI-y6 zlSjY_4B`EVCCB;^SsXn^&FT`B^gw2{T&*mdC)rM^hdO<|UVcX-`W<4vEGY7x83W?t z|IsJ{Dp8=oS?;00Y#iO&^nysq-Gp{B^2Um!fy6}v_*U=m(zfGlsfWsy$l8DD8iDT| zp8RqXY^D=bnoKj82cCRC{)X4sXL^1zR^!Z?8hrx=(80oM0f=qJ+X&;AJh;a+^PBbA zSWdXWJk2R?Qc=!lt(pS>+Cf-hYrei(Y8nPqzy^uLlGJCCXkDx<7l~sZHeU5T2bhunI$?U&rBd9dBM9ZqmzOIlP!$zB4^{F4odWm7f)I5p+4U;ZnmmwWn`I z+d<$F0GA3kG;6TfAae%(Yx5Z}19ytB{f1I2sre_iip-q&uhew&Pj%0VI0DsGg!<`4 zEd@d@FYdRXgT;_+z~`YSJ_URpcdxBX?QcUT>6!cK@&=uomVF9Ic2|u6>F*G&49h(8k$V9 zxU_T4j7rHJkjIarcoZ)KBO55%*06;ie+2rFkm`<6ZDFDXD1FDU?VB44*l-N zm2`EjaPW@kvfYt|a&~-G`<=L$bkPaTvgUKQxxZJwlJQ-!0KBJovL4;`?nE{OKCza_ z#WeO`D?tQm zTDUwQWWn*Hq4Iu#DCde{Is@$m8i>bsPT2yRtfRlvIHK8phsmNV)(6WK0%@DFERA!8 zyjSjDY$b}_Z|?5JujjX1m&wn&vqe;pXe^6;4J0+e8}2b4&>QVx%5`=<6&nncu+V1i9rNtG*ibTG6{U4&92mk;8 literal 0 HcmV?d00001 diff --git a/docs/images/EditPipeline8.png b/docs/images/EditPipeline8.png new file mode 100644 index 0000000000000000000000000000000000000000..396dc084942a21d0835378f56c9875590b139c1d GIT binary patch literal 44509 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 literal 0 HcmV?d00001 diff --git a/environment_setup/install_requirements.sh b/environment_setup/install_requirements.sh new file mode 100644 index 00000000..164a1a7b --- /dev/null +++ b/environment_setup/install_requirements.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright (C) Microsoft Corporation. All rights reserved.​ +# ​ +# Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +# royalty-free right to use, copy, and modify the software code provided by us +# ('Software Code'). You may not sublicense the Software Code or any use of it +# (except to your affiliates and to vendors to perform work on your behalf) +# through distribution, network access, service agreement, lease, rental, or +# otherwise. This license does not purport to express any claim of ownership over +# data you may have shared with Microsoft in the creation of the Software Code. +# Unless applicable law gives you more rights, Microsoft reserves all other +# rights not expressly granted herein, whether by implication, estoppel or +# otherwise. ​ +# ​ +# THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + + +python --version +pip install azure-cli==2.0.46 +pip install --upgrade azureml-sdk[notebooks,automl] +pip install -r requirements.txt \ No newline at end of file diff --git a/environment_setup/requirements.txt b/environment_setup/requirements.txt new file mode 100644 index 00000000..c69c9074 --- /dev/null +++ b/environment_setup/requirements.txt @@ -0,0 +1,4 @@ +scipy==1.0.0 +scikit-learn==0.19.1 +numpy==1.14.5 +pandas==0.23.1 \ No newline at end of file diff --git a/model/placeholder b/model/placeholder new file mode 100644 index 00000000..e69de29b From b0ce07bb9036fe4924a9250bbfdc1dd652b6cf37 Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Fri, 25 Jan 2019 13:30:08 -0500 Subject: [PATCH 2/8] Adding automated solution link --- Readme.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index bcb43505..137861d4 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,6 @@ # DevOps For AI -DevOps for AI template will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. +[DevOps for AI template](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. This template contains code and pipeline definition for a machine learning project demonstrating how to automate the end to end ML/AI project. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod, integration testing and functional testing. @@ -9,6 +9,11 @@ This template contains code and pipeline definition for a machine learning proje - Minimum contributor access to Azure subscription ## Getting Started: + +### Import the DevOps for AI solution template: [Click here](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) + +Skip above step if already done. + Once the template is imported for personal Azure DevOps account using DevOps demo generator, you need to follow below steps to get the pipeline running: ### Update Pipeline Config: From f1d90040f0a5f1bc0d47ce69c3cec8b34d1cb284 Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Fri, 25 Jan 2019 13:32:44 -0500 Subject: [PATCH 3/8] update --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 137861d4..9ebf7c71 100644 --- a/Readme.md +++ b/Readme.md @@ -10,7 +10,7 @@ This template contains code and pipeline definition for a machine learning proje ## Getting Started: -### Import the DevOps for AI solution template: [Click here](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) +### Import the DevOps for AI solution template from Azure DevOps Demo Generator: [Click here](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) Skip above step if already done. From e94d66ab982344c6109d2663309ace19ae2219b8 Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Tue, 29 Jan 2019 12:11:01 -0500 Subject: [PATCH 4/8] code format --- .vscode/settings.json | 6 ++ aml_service/00-WorkSpace.py | 39 +++++++------ aml_service/01-Experiment.py | 10 ++-- aml_service/02-AttachTrainingVM.py | 25 ++++---- aml_service/10-TrainOnLocal.py | 34 ++++++----- aml_service/11-TrainOnLocalEnv.py | 30 ++++++---- aml_service/12-TrainOnVM.py | 32 +++++----- aml_service/15-EvaluateModel.py | 60 ++++++++++--------- aml_service/20-RegisterModel.py | 63 +++++++++++--------- aml_service/30-CreateScoringImage.py | 68 +++++++++++++--------- aml_service/50-deployOnAci.py | 52 ++++++++++------- aml_service/51-deployOnAks.py | 87 +++++++++++++++++----------- aml_service/60-AciWebserviceTest.py | 22 +++---- aml_service/61-AksWebserviceTest.py | 22 +++---- aml_service/helper/azcli.py | 28 +++++---- code/scoring/score.py | 12 ++-- code/testing/data_test.py | 71 +++++++++++++++++------ code/training/train.py | 42 ++++++-------- 18 files changed, 418 insertions(+), 285 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..eb025143 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "python.pythonPath": "C:\\Users\\prsol\\.azureml\\envs\\azuremlsdk-0112\\python.exe", + "python.linting.pep8Enabled": false, + "python.linting.enabled": false, + "python.linting.flake8Enabled": true +} \ No newline at end of file diff --git a/aml_service/00-WorkSpace.py b/aml_service/00-WorkSpace.py index 26e05184..89716a4e 100644 --- a/aml_service/00-WorkSpace.py +++ b/aml_service/00-WorkSpace.py @@ -26,29 +26,34 @@ from azureml.core import Workspace import os, json import azureml.core + print("SDK Version:", azureml.core.VERSION) -#print('current dir is ' +os.curdir) +# print('current dir is ' +os.curdir) with open("aml_config/config.json") as f: config = json.load(f) -workspace_name = config['workspace_name'] -resource_group = config['resource_group'] -subscription_id = config['subscription_id'] -location = config['location'] -#location = 'southcentralus' +workspace_name = config["workspace_name"] +resource_group = config["resource_group"] +subscription_id = config["subscription_id"] +location = config["location"] +# location = 'southcentralus' try: - ws = Workspace.get(name = workspace_name, - subscription_id = subscription_id, - resource_group = resource_group) + ws = Workspace.get( + name=workspace_name, + subscription_id=subscription_id, + resource_group=resource_group, + ) except: # this call might take a minute or two. - print('Creating new workspace') - ws = Workspace.create(name = workspace_name, - subscription_id = subscription_id, - resource_group = resource_group, - #create_resource_group=True, - location=location) + print("Creating new workspace") + ws = Workspace.create( + name=workspace_name, + subscription_id=subscription_id, + resource_group=resource_group, + # create_resource_group=True, + location=location, + ) -# print Workspace details -print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep = '\n') \ No newline at end of file +# print Workspace details +print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep="\n") diff --git a/aml_service/01-Experiment.py b/aml_service/01-Experiment.py index 095503c7..f95398da 100644 --- a/aml_service/01-Experiment.py +++ b/aml_service/01-Experiment.py @@ -27,13 +27,15 @@ from azureml.core import Experiment from azureml.core import Workspace + def getExperiment(): ws = Workspace.from_config() script_folder = "." - experiment_name = 'devops-ai-demo' - exp = Experiment(workspace = ws, name = experiment_name) - print(exp.name, exp.workspace.name, sep = '\n') + experiment_name = "devops-ai-demo" + exp = Experiment(workspace=ws, name=experiment_name) + print(exp.name, exp.workspace.name, sep="\n") return exp + if __name__ == "__main__": - exp = getExperiment() \ No newline at end of file + exp = getExperiment() diff --git a/aml_service/02-AttachTrainingVM.py b/aml_service/02-AttachTrainingVM.py index d697526e..17946a8e 100644 --- a/aml_service/02-AttachTrainingVM.py +++ b/aml_service/02-AttachTrainingVM.py @@ -42,18 +42,21 @@ with open("aml_config/security_config.json") as f: config = json.load(f) -remote_vm_name = config['remote_vm_name'] -remote_vm_username = config['remote_vm_username'] -remote_vm_password = config['remote_vm_password'] -remote_vm_ip = config['remote_vm_ip'] +remote_vm_name = config["remote_vm_name"] +remote_vm_username = config["remote_vm_username"] +remote_vm_password = config["remote_vm_password"] +remote_vm_ip = config["remote_vm_ip"] try: - dsvm_compute = RemoteCompute.attach(ws, name=remote_vm_name, - username=remote_vm_username, - address=remote_vm_ip, - ssh_port=22, - password=remote_vm_password) - dsvm_compute.wait_for_completion(show_output =True) + dsvm_compute = RemoteCompute.attach( + ws, + name=remote_vm_name, + username=remote_vm_username, + address=remote_vm_ip, + ssh_port=22, + password=remote_vm_password, + ) + dsvm_compute.wait_for_completion(show_output=True) except Exception as e: print("Caught = {}".format(e.message)) @@ -70,4 +73,4 @@ # print('creating new.') # dsvm_config = DsvmCompute.provisioning_configuration(vm_size="Standard_D2_v2") # dsvm_compute = DsvmCompute.create(ws, name=compute_target_name, provisioning_configuration=dsvm_config) -# dsvm_compute.wait_for_completion(show_output=True) \ No newline at end of file +# dsvm_compute.wait_for_completion(show_output=True) diff --git a/aml_service/10-TrainOnLocal.py b/aml_service/10-TrainOnLocal.py index 8d36b0a0..807d1843 100644 --- a/aml_service/10-TrainOnLocal.py +++ b/aml_service/10-TrainOnLocal.py @@ -28,35 +28,43 @@ from azureml.core import Workspace from azureml.core import Experiment from azureml.core import ScriptRunConfig -import os, json +import json # Get workspace ws = Workspace.from_config() # Attach Experiment -experiment_name = 'devops-ai-demo' -exp = Experiment(workspace = ws, name = experiment_name) -print(exp.name, exp.workspace.name, sep = '\n') +experiment_name = "devops-ai-demo" +exp = Experiment(workspace=ws, name=experiment_name) +print(exp.name, exp.workspace.name, sep="\n") # Editing a run configuration property on-fly. run_config_user_managed = RunConfiguration() run_config_user_managed.environment.python.user_managed_dependencies = True print("Submitting an experiment.") -src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config_user_managed) +src = ScriptRunConfig( + source_directory="./code", + script="training/train.py", + run_config=run_config_user_managed, +) run = exp.submit(src) # Shows output of the run on stdout. -run.wait_for_completion(show_output = True, wait_post_processing = True) +run.wait_for_completion(show_output=True, wait_post_processing=True) # Raise exception if run fails -if run.get_status() == 'Failed': - raise Exception('Training on local failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) +if run.get_status() == "Failed": + raise Exception( + "Training on local failed with following run status: {} and logs: \n {}".format( + run.get_status(), run.get_details_with_logs() + ) + ) # Writing the run id to /aml_config/run_id.json -run_id={} -run_id['run_id'] = run.id -run_id['experiment_name'] = run.experiment.name -with open('aml_config/run_id.json', 'w') as outfile: - json.dump(run_id,outfile) +run_id = {} +run_id["run_id"] = run.id +run_id["experiment_name"] = run.experiment.name +with open("aml_config/run_id.json", "w") as outfile: + json.dump(run_id, outfile) diff --git a/aml_service/11-TrainOnLocalEnv.py b/aml_service/11-TrainOnLocalEnv.py index 36d6d43f..9e2a9a3d 100644 --- a/aml_service/11-TrainOnLocalEnv.py +++ b/aml_service/11-TrainOnLocalEnv.py @@ -36,9 +36,9 @@ ws = Workspace.from_config() # Attach Experiment -experiment_name = 'devops-ai-demo' -exp = Experiment(workspace = ws, name = experiment_name) -print(exp.name, exp.workspace.name, sep = '\n') +experiment_name = "devops-ai-demo" +exp = Experiment(workspace=ws, name=experiment_name) +print(exp.name, exp.workspace.name, sep="\n") # Editing a run configuration property on-fly. run_config_system_managed = RunConfiguration() @@ -52,19 +52,27 @@ # run_config_system_managed.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['scikit-learn']) print("Submitting an experiment to new conda virtual env") -src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config_user_managed) +src = ScriptRunConfig( + source_directory="./code", + script="training/train.py", + run_config=run_config_user_managed, +) run = exp.submit(src) # Shows output of the run on stdout. -run.wait_for_completion(show_output = True, wait_post_processing = True) +run.wait_for_completion(show_output=True, wait_post_processing=True) # Raise exception if run fails -if run.get_status() == 'Failed': - raise Exception('Training on local env failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) +if run.get_status() == "Failed": + raise Exception( + "Training on local env failed with following run status: {} and logs: \n {}".format( + run.get_status(), run.get_details_with_logs() + ) + ) # Writing the run id to /aml_config/run_id.json run_id = {} -run_id['run_id'] = run.id -run_id['experiment_name'] = run.experiment.name -with open('aml_config/run_id.json', 'w') as outfile: - json.dump(run_id,outfile) +run_id["run_id"] = run.id +run_id["experiment_name"] = run.experiment.name +with open("aml_config/run_id.json", "w") as outfile: + json.dump(run_id, outfile) diff --git a/aml_service/12-TrainOnVM.py b/aml_service/12-TrainOnVM.py index 709afec4..019bf4e3 100644 --- a/aml_service/12-TrainOnVM.py +++ b/aml_service/12-TrainOnVM.py @@ -38,35 +38,41 @@ # Read the New VM Config with open("aml_config/security_config.json") as f: config = json.load(f) -remote_vm_name = config['remote_vm_name'] +remote_vm_name = config["remote_vm_name"] # Attach Experiment -experiment_name = 'devops-ai-demo' -exp = Experiment(workspace = ws, name = experiment_name) -print(exp.name, exp.workspace.name, sep = '\n') +experiment_name = "devops-ai-demo" +exp = Experiment(workspace=ws, name=experiment_name) +print(exp.name, exp.workspace.name, sep="\n") run_config = RunConfiguration() run_config.target = remote_vm_name # replace with your path to the python interpreter in the remote VM found earlier -run_config.environment.python.interpreter_path = '/anaconda/envs/myenv/bin/python' +run_config.environment.python.interpreter_path = "/anaconda/envs/myenv/bin/python" run_config.environment.python.user_managed_dependencies = True -src = ScriptRunConfig(source_directory = './code', script = 'training/train.py', run_config = run_config) +src = ScriptRunConfig( + source_directory="./code", script="training/train.py", run_config=run_config +) run = exp.submit(src) # Shows output of the run on stdout. -run.wait_for_completion(show_output = True, wait_post_processing = True) +run.wait_for_completion(show_output=True, wait_post_processing=True) # Raise exception if run fails -if run.get_status() == 'Failed': - raise Exception('Training on local env failed with following run status: {} and logs: \n {}'.format(run.get_status(),run.get_details_with_logs())) +if run.get_status() == "Failed": + raise Exception( + "Training on local env failed with following run status: {} and logs: \n {}".format( + run.get_status(), run.get_details_with_logs() + ) + ) # Writing the run id to /aml_config/run_id.json run_id = {} -run_id['run_id'] = run.id -run_id['experiment_name'] = run.experiment.name -with open('aml_config/run_id.json', 'w') as outfile: - json.dump(run_id,outfile) \ No newline at end of file +run_id["run_id"] = run.id +run_id["experiment_name"] = run.experiment.name +with open("aml_config/run_id.json", "w") as outfile: + json.dump(run_id, outfile) diff --git a/aml_service/15-EvaluateModel.py b/aml_service/15-EvaluateModel.py index 9a0ea198..2dd9d99d 100644 --- a/aml_service/15-EvaluateModel.py +++ b/aml_service/15-EvaluateModel.py @@ -38,46 +38,54 @@ # Add golden data set on which all the model performance can be evaluated -# Get the latest run_id +# Get the latest run_id with open("aml_config/run_id.json") as f: config = json.load(f) new_model_run_id = config["run_id"] experiment_name = config["experiment_name"] -exp = Experiment(workspace = ws, name = experiment_name) +exp = Experiment(workspace=ws, name=experiment_name) try: - # Get most recently registered model, we assume that is the model in production. Download this model and compare it with the recently trained model by running test with same data set. - model_list = Model.list(ws) - production_model = next(filter(lambda x: x.created_time == max(model.created_time for model in model_list), model_list)) - production_model_run_id = production_model.tags.get('run_id') - run_list = exp.get_runs() - # production_model_run = next(filter(lambda x: x.id == production_model_run_id, run_list)) + # Get most recently registered model, we assume that is the model in production. Download this model and compare it with the recently trained model by running test with same data set. + model_list = Model.list(ws) + production_model = next( + filter( + lambda x: x.created_time == max(model.created_time for model in model_list), + model_list, + ) + ) + production_model_run_id = production_model.tags.get("run_id") + run_list = exp.get_runs() + # production_model_run = next(filter(lambda x: x.id == production_model_run_id, run_list)) + # Get the run history for both production model and newly trained model and compare mse + production_model_run = Run(exp, run_id=production_model_run_id) + new_model_run = Run(exp, run_id=new_model_run_id) - # Get the run history for both production model and newly trained model and compare mse - production_model_run = Run(exp,run_id=production_model_run_id) - new_model_run = Run(exp,run_id=new_model_run_id) - - production_model_mse=production_model_run.get_metrics().get('mse') - new_model_mse=new_model_run.get_metrics().get('mse') - print('Current Production model mse: {}, New trained model mse: {}'.format(production_model_mse,new_model_mse)) + production_model_mse = production_model_run.get_metrics().get("mse") + new_model_mse = new_model_run.get_metrics().get("mse") + print( + "Current Production model mse: {}, New trained model mse: {}".format( + production_model_mse, new_model_mse + ) + ) - promote_new_model=False - if new_model_mse < production_model_mse: - promote_new_model=True - print('New trained model performs better, thus it will be registered') + promote_new_model = False + if new_model_mse < production_model_mse: + promote_new_model = True + print("New trained model performs better, thus it will be registered") except: - promote_new_model=True - print('This is the first model to be trained, thus nothing to evaluate for now') + promote_new_model = True + print("This is the first model to be trained, thus nothing to evaluate for now") run_id = {} -run_id['run_id'] = '' +run_id["run_id"] = "" # Writing the run id to /aml_config/run_id.json if promote_new_model: - run_id['run_id'] = new_model_run_id + run_id["run_id"] = new_model_run_id -run_id['experiment_name'] = experiment_name -with open('aml_config/run_id.json', 'w') as outfile: - json.dump(run_id,outfile) \ No newline at end of file +run_id["experiment_name"] = experiment_name +with open("aml_config/run_id.json", "w") as outfile: + json.dump(run_id, outfile) diff --git a/aml_service/20-RegisterModel.py b/aml_service/20-RegisterModel.py index 245faced..47870ae0 100644 --- a/aml_service/20-RegisterModel.py +++ b/aml_service/20-RegisterModel.py @@ -23,7 +23,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -import os, json,sys +import os, json, sys from azureml.core import Workspace from azureml.core import Run from azureml.core import Experiment @@ -34,49 +34,56 @@ # Get workspace ws = Workspace.from_config() -# Get the latest evaluation result +# Get the latest evaluation result try: with open("aml_config/run_id.json") as f: config = json.load(f) if not config["run_id"]: - raise Exception('No new model to register as production model perform better') + raise Exception("No new model to register as production model perform better") except: - print('No new model to register as production model perform better') - #raise Exception('No new model to register as production model perform better') + print("No new model to register as production model perform better") + # raise Exception('No new model to register as production model perform better') sys.exit(0) run_id = config["run_id"] experiment_name = config["experiment_name"] -exp = Experiment(workspace = ws, name = experiment_name) +exp = Experiment(workspace=ws, name=experiment_name) -run = Run(experiment = exp, run_id = run_id) -names=run.get_file_names +run = Run(experiment=exp, run_id=run_id) +names = run.get_file_names names() -print('Run ID for last run: {}'.format(run_id)) -model_local_dir="model" -os.makedirs(model_local_dir,exist_ok=True) +print("Run ID for last run: {}".format(run_id)) +model_local_dir = "model" +os.makedirs(model_local_dir, exist_ok=True) # Download Model to Project root directory -model_name= 'sklearn_regression_model.pkl' -run.download_file(name = './outputs/'+model_name, - output_file_path = './model/'+model_name) -print('Downloaded model {} to Project root directory'.format(model_name)) -os.chdir('./model') -model = Model.register(model_path = model_name, # this points to a local file - model_name = model_name, # this is the name the model is registered as - tags = {'area': "diabetes", 'type': "regression", 'run_id' : run_id}, - description="Regression model for diabetes dataset", - workspace = ws) -os.chdir('..') -print('Model registered: {} \nModel Description: {} \nModel Version: {}'.format(model.name, model.description, model.version)) +model_name = "sklearn_regression_model.pkl" +run.download_file( + name="./outputs/" + model_name, output_file_path="./model/" + model_name +) +print("Downloaded model {} to Project root directory".format(model_name)) +os.chdir("./model") +model = Model.register( + model_path=model_name, # this points to a local file + model_name=model_name, # this is the name the model is registered as + tags={"area": "diabetes", "type": "regression", "run_id": run_id}, + description="Regression model for diabetes dataset", + workspace=ws, +) +os.chdir("..") +print( + "Model registered: {} \nModel Description: {} \nModel Version: {}".format( + model.name, model.description, model.version + ) +) # Remove the evaluate.json as we no longer need it # os.remove("aml_config/evaluate.json") # Writing the registered model details to /aml_config/model.json model_json = {} -model_json['model_name'] = model.name -model_json['model_version'] = model.version -model_json['run_id'] = run_id -with open('aml_config/model.json', 'w') as outfile: - json.dump(model_json,outfile) +model_json["model_name"] = model.name +model_json["model_version"] = model.version +model_json["run_id"] = run_id +with open("aml_config/model.json", "w") as outfile: + json.dump(model_json, outfile) diff --git a/aml_service/30-CreateScoringImage.py b/aml_service/30-CreateScoringImage.py index 5e2928f8..c52b3de1 100644 --- a/aml_service/30-CreateScoringImage.py +++ b/aml_service/30-CreateScoringImage.py @@ -37,48 +37,60 @@ with open("aml_config/model.json") as f: config = json.load(f) except: - print('No new model to register thus no need to create new scoring image') - #raise Exception('No new model to register as production model perform better') + print("No new model to register thus no need to create new scoring image") + # raise Exception('No new model to register as production model perform better') sys.exit(0) -model_name = config['model_name'] -model_version = config['model_version'] +model_name = config["model_name"] +model_version = config["model_version"] model_list = Model.list(workspace=ws) -model, = (m for m in model_list if m.version==model_version and m.name==model_name) -print('Model picked: {} \nModel Description: {} \nModel Version: {}'.format(model.name, model.description, model.version)) +model, = (m for m in model_list if m.version == model_version and m.name == model_name) +print( + "Model picked: {} \nModel Description: {} \nModel Version: {}".format( + model.name, model.description, model.version + ) +) -os.chdir('./code/scoring') +os.chdir("./code/scoring") image_name = "diabetes-model-score" -image_config = ContainerImage.image_configuration(execution_script = "score.py", - runtime = "python-slim", - conda_file = "conda_dependencies.yml", - description = "Image with ridge regression model", - tags = {'area': "diabetes", 'type': "regression"} - ) +image_config = ContainerImage.image_configuration( + execution_script="score.py", + runtime="python-slim", + conda_file="conda_dependencies.yml", + description="Image with ridge regression model", + tags={"area": "diabetes", "type": "regression"}, +) -image = Image.create(name = image_name, - models = [model], - image_config = image_config, - workspace = ws) +image = Image.create( + name=image_name, models=[model], image_config=image_config, workspace=ws +) -image.wait_for_creation(show_output = True) -os.chdir('../..') +image.wait_for_creation(show_output=True) +os.chdir("../..") -if image.creation_state != 'Succeeded': - raise Exception('Image creation status: {image.creation_state}') +if image.creation_state != "Succeeded": + raise Exception("Image creation status: {image.creation_state}") -print('{}(v.{} [{}]) stored at {} with build log {}'.format(image.name, image.version, image.creation_state, image.image_location, image.image_build_log_uri)) +print( + "{}(v.{} [{}]) stored at {} with build log {}".format( + image.name, + image.version, + image.creation_state, + image.image_location, + image.image_build_log_uri, + ) +) # Writing the image details to /aml_config/image.json image_json = {} -image_json['image_name'] = image.name -image_json['image_version'] = image.version -image_json['image_location'] = image.image_location -with open('aml_config/image.json', 'w') as outfile: - json.dump(image_json,outfile) +image_json["image_name"] = image.name +image_json["image_version"] = image.version +image_json["image_location"] = image.image_location +with open("aml_config/image.json", "w") as outfile: + json.dump(image_json, outfile) -# How to fix the schema for a model, like if we have multiple models expecting different schema, +# How to fix the schema for a model, like if we have multiple models expecting different schema, diff --git a/aml_service/50-deployOnAci.py b/aml_service/50-deployOnAci.py index c1171379..34c5b83f 100644 --- a/aml_service/50-deployOnAci.py +++ b/aml_service/50-deployOnAci.py @@ -35,47 +35,55 @@ ws = Workspace.from_config() - # Get the Image to deploy details try: with open("aml_config/image.json") as f: config = json.load(f) except: - print('No new model, thus no deployment on ACI') - #raise Exception('No new model to register as production model perform better') + print("No new model, thus no deployment on ACI") + # raise Exception('No new model to register as production model perform better') sys.exit(0) -image_name = config['image_name'] -image_version = config['image_version'] +image_name = config["image_name"] +image_version = config["image_version"] images = Image.list(workspace=ws) -image, = (m for m in images if m.version==image_version and m.name == image_name) -print('From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) +image, = (m for m in images if m.version == image_version and m.name == image_name) +print( + "From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}".format( + image.name, image.version, image.image_location + ) +) # image = max(images, key=attrgetter('version')) # print('From Max Version, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) -aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, - memory_gb=1, - tags={'area': "diabetes", 'type': "regression"}, - description='A sample description') +aciconfig = AciWebservice.deploy_configuration( + cpu_cores=1, + memory_gb=1, + tags={"area": "diabetes", "type": "regression"}, + description="A sample description", +) -aci_service_name='aciwebservice'+ datetime.datetime.now().strftime('%m%d%H') +aci_service_name = "aciwebservice" + datetime.datetime.now().strftime("%m%d%H") -service = Webservice.deploy_from_image(deployment_config=aciconfig, - image=image, - name=aci_service_name, - workspace=ws) +service = Webservice.deploy_from_image( + deployment_config=aciconfig, image=image, name=aci_service_name, workspace=ws +) service.wait_for_deployment() -print('Deployed ACI Webservice: {} \nWebservice Uri: {}'.format(service.name, service.scoring_uri)) +print( + "Deployed ACI Webservice: {} \nWebservice Uri: {}".format( + service.name, service.scoring_uri + ) +) -#service=Webservice(name ='aciws0622', workspace =ws) +# service=Webservice(name ='aciws0622', workspace =ws) # Writing the ACI details to /aml_config/aci_webservice.json aci_webservice = {} -aci_webservice['aci_name'] = service.name -aci_webservice['aci_url'] = service.scoring_uri -with open('aml_config/aci_webservice.json', 'w') as outfile: - json.dump(aci_webservice,outfile) \ No newline at end of file +aci_webservice["aci_name"] = service.name +aci_webservice["aci_url"] = service.scoring_uri +with open("aml_config/aci_webservice.json", "w") as outfile: + json.dump(aci_webservice, outfile) diff --git a/aml_service/51-deployOnAks.py b/aml_service/51-deployOnAks.py index 5561a155..66ec8848 100644 --- a/aml_service/51-deployOnAks.py +++ b/aml_service/51-deployOnAks.py @@ -39,16 +39,20 @@ with open("aml_config/image.json") as f: config = json.load(f) except: - print('No new model, thus no deployment on ACI') - #raise Exception('No new model to register as production model perform better') + print("No new model, thus no deployment on ACI") + # raise Exception('No new model to register as production model perform better') sys.exit(0) -image_name = config['image_name'] -image_version = config['image_version'] +image_name = config["image_name"] +image_version = config["image_version"] images = Image.list(workspace=ws) -image, = (m for m in images if m.version==image_version and m.name == image_name) -print('From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) +image, = (m for m in images if m.version == image_version and m.name == image_name) +print( + "From image.json, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}".format( + image.name, image.version, image.image_location + ) +) # image = max(images, key=attrgetter('version')) # print('From Max Version, Image used to deploy webservice on ACI: {}\nImage Version: {}\nImage Location = {}'.format(image.name, image.version, image.image_location)) @@ -57,47 +61,62 @@ try: with open("aml_config/aks_webservice.json") as f: config = json.load(f) - aks_name = config['aks_name'] - aks_service_name = config['aks_service_name'] + aks_name = config["aks_name"] + aks_service_name = config["aks_service_name"] compute_list = ws.compute_targets() - aks_target, =(c for c in compute_list if c.name ==aks_name) - service=Webservice(name =aks_service_name, workspace =ws) - print('Updating AKS service {} with image: {}'.format(aks_service_name,image.image_location)) + aks_target, = (c for c in compute_list if c.name == aks_name) + service = Webservice(name=aks_service_name, workspace=ws) + print( + "Updating AKS service {} with image: {}".format( + aks_service_name, image.image_location + ) + ) service.update(image=image) except: - aks_name = 'aks'+ datetime.datetime.now().strftime('%m%d%H') - aks_service_name = 'akswebservice'+ datetime.datetime.now().strftime('%m%d%H') - prov_config = AksCompute.provisioning_configuration(agent_count = 6, vm_size = 'Standard_F2', location='eastus') - print('No AKS found in aks_webservice.json. Creating new Aks: {} and AKS Webservice: {}'.format(aks_name,aks_service_name)) + aks_name = "aks" + datetime.datetime.now().strftime("%m%d%H") + aks_service_name = "akswebservice" + datetime.datetime.now().strftime("%m%d%H") + prov_config = AksCompute.provisioning_configuration( + agent_count=6, vm_size="Standard_F2", location="eastus" + ) + print( + "No AKS found in aks_webservice.json. Creating new Aks: {} and AKS Webservice: {}".format( + aks_name, aks_service_name + ) + ) # Create the cluster - aks_target = ComputeTarget.create(workspace = ws, - name = aks_name, - provisioning_configuration = prov_config) + aks_target = ComputeTarget.create( + workspace=ws, name=aks_name, provisioning_configuration=prov_config + ) - aks_target.wait_for_completion(show_output = True) + aks_target.wait_for_completion(show_output=True) print(aks_target.provisioning_state) print(aks_target.provisioning_errors) # Use the default configuration (can also provide parameters to customize) aks_config = AksWebservice.deploy_configuration(enable_app_insights=True) - service = Webservice.deploy_from_image(workspace = ws, - name = aks_service_name, - image = image, - deployment_config = aks_config, - deployment_target = aks_target) - - service.wait_for_deployment(show_output = True) - print(service.state) - print('Deployed AKS Webservice: {} \nWebservice Uri: {}'.format(service.name, service.scoring_uri)) + service = Webservice.deploy_from_image( + workspace=ws, + name=aks_service_name, + image=image, + deployment_config=aks_config, + deployment_target=aks_target, + ) + service.wait_for_deployment(show_output=True) + print(service.state) + print( + "Deployed AKS Webservice: {} \nWebservice Uri: {}".format( + service.name, service.scoring_uri + ) + ) # Writing the AKS details to /aml_config/aks_webservice.json aks_webservice = {} -aks_webservice['aks_name'] = aks_name -aks_webservice['aks_service_name'] = service.name -aks_webservice['aks_url'] = service.scoring_uri -aks_webservice['aks_keys'] = service.get_keys() -with open('aml_config/aks_webservice.json', 'w') as outfile: - json.dump(aks_webservice,outfile) \ No newline at end of file +aks_webservice["aks_name"] = aks_name +aks_webservice["aks_service_name"] = service.name +aks_webservice["aks_url"] = service.scoring_uri +aks_webservice["aks_keys"] = service.get_keys() +with open("aml_config/aks_webservice.json", "w") as outfile: + json.dump(aks_webservice, outfile) diff --git a/aml_service/60-AciWebserviceTest.py b/aml_service/60-AciWebserviceTest.py index 1b1c842b..e2087c98 100644 --- a/aml_service/60-AciWebserviceTest.py +++ b/aml_service/60-AciWebserviceTest.py @@ -40,23 +40,23 @@ with open("aml_config/aci_webservice.json") as f: config = json.load(f) except: - print('No new model, thus no deployment on ACI') - #raise Exception('No new model to register as production model perform better') + print("No new model, thus no deployment on ACI") + # raise Exception('No new model to register as production model perform better') sys.exit(0) -service_name = config['aci_name'] -# Get the hosted web service -service=Webservice(name = service_name, workspace =ws) +service_name = config["aci_name"] +# Get the hosted web service +service = Webservice(name=service_name, workspace=ws) # Input for Model with all features -input_j = [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]] +input_j = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]] print(input_j) -test_sample = json.dumps({'data': input_j}) -test_sample = bytes(test_sample,encoding = 'utf8') -try: - prediction = service.run(input_data = test_sample) +test_sample = json.dumps({"data": input_j}) +test_sample = bytes(test_sample, encoding="utf8") +try: + prediction = service.run(input_data=test_sample) print(prediction) except Exception as e: result = str(e) print(result) - raise Exception('ACI service is not working as expected') + raise Exception("ACI service is not working as expected") diff --git a/aml_service/61-AksWebserviceTest.py b/aml_service/61-AksWebserviceTest.py index 66ca4ef0..d55b6baa 100644 --- a/aml_service/61-AksWebserviceTest.py +++ b/aml_service/61-AksWebserviceTest.py @@ -40,26 +40,26 @@ with open("aml_config/aks_webservice.json") as f: config = json.load(f) except: - print('No new model, thus no deployment on ACI') - #raise Exception('No new model to register as production model perform better') + print("No new model, thus no deployment on ACI") + # raise Exception('No new model to register as production model perform better') sys.exit(0) -service_name = config['aks_service_name'] -# Get the hosted web service -service=Webservice(workspace =ws, name = service_name) +service_name = config["aks_service_name"] +# Get the hosted web service +service = Webservice(workspace=ws, name=service_name) # Input for Model with all features -input_j = [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]] +input_j = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]] print(input_j) -test_sample = json.dumps({'data': input_j}) -test_sample = bytes(test_sample,encoding = 'utf8') -try: - prediction = service.run(input_data = test_sample) +test_sample = json.dumps({"data": input_j}) +test_sample = bytes(test_sample, encoding="utf8") +try: + prediction = service.run(input_data=test_sample) print(prediction) except Exception as e: result = str(e) print(result) - raise Exception('AKS service is not working as expected') + raise Exception("AKS service is not working as expected") # Delete aci after test service.delete() diff --git a/aml_service/helper/azcli.py b/aml_service/helper/azcli.py index b29c710b..4affc1b3 100644 --- a/aml_service/helper/azcli.py +++ b/aml_service/helper/azcli.py @@ -1,4 +1,3 @@ - """ Copyright (C) Microsoft Corporation. All rights reserved.​ ​ @@ -26,7 +25,8 @@ """ import subprocess -def az_login(sp_user : str, sp_password : str, sp_tenant_id : str): + +def az_login(sp_user: str, sp_password: str, sp_tenant_id: str): """ Uses the provided service principal credentials to log into the azure cli. This should always be the first step in executing az cli commands. @@ -35,19 +35,23 @@ def az_login(sp_user : str, sp_password : str, sp_tenant_id : str): out, err = run_cmd(cmd.format(sp_user, sp_password, sp_tenant_id)) return out, err -def run_cmd(cmd : str): + +def run_cmd(cmd: str): """ Runs an arbitrary command line command. Works for Linux or Windows. Returns a tuple of output and error. """ - proc = subprocess.Popen(cmd, shell = True, stdout=subprocess.PIPE, universal_newlines = True) + proc = subprocess.Popen( + cmd, shell=True, stdout=subprocess.PIPE, universal_newlines=True + ) output, error = proc.communicate() - if proc.returncode !=0: - print('Following command execution failed: {}'.format(cmd)) - raise Exception('Operation Failed. Look at console logs for error info') + if proc.returncode != 0: + print("Following command execution failed: {}".format(cmd)) + raise Exception("Operation Failed. Look at console logs for error info") return output, error -def az_account_set(subscription_id : str): + +def az_account_set(subscription_id: str): """ Sets the correct azure subscription. This should always be run after the az_login. @@ -56,12 +60,14 @@ def az_account_set(subscription_id : str): out, err = run_cmd(cmd.format(subscription_id)) return out, err -def az_acr_create(resource_group : str, acr_name : str): + +def az_acr_create(resource_group: str, acr_name: str): cmd = "az acr create --resource-group {} --name {} --sku Basic" out, err = run_cmd(cmd.format(resource_group, acr_name)) return out, err -def az_acr_login(acr_name : str): + +def az_acr_login(acr_name: str): cmd = "az acr login --name {}" out, err = run_cmd(cmd.format(acr_name)) - return out, err \ No newline at end of file + return out, err diff --git a/code/scoring/score.py b/code/scoring/score.py index 82ab5930..994ca24a 100644 --- a/code/scoring/score.py +++ b/code/scoring/score.py @@ -25,20 +25,23 @@ """ import pickle import json -import numpy +import numpy from sklearn.ensemble import RandomForestClassifier from azureml.core.model import Model + def init(): global model from sklearn.externals import joblib + # load the model from file into a global object - model_path = Model.get_model_path(model_name = 'sklearn_regression_model.pkl') + model_path = Model.get_model_path(model_name="sklearn_regression_model.pkl") model = joblib.load(model_path) + def run(raw_data): try: - data = json.loads(raw_data)['data'] + data = json.loads(raw_data)["data"] data = numpy.array(data) result = model.predict(data) return json.dumps({"result": result.tolist()}) @@ -46,9 +49,10 @@ def run(raw_data): result = str(e) return json.dumps({"error": result}) + if __name__ == "__main__": # Test scoring init() test_row = '{"data":[[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}' prediction = run(test_row) - print('Test result: ',prediction) \ No newline at end of file + print("Test result: ", prediction) diff --git a/code/testing/data_test.py b/code/testing/data_test.py index 8726b4b7..206cc8a5 100644 --- a/code/testing/data_test.py +++ b/code/testing/data_test.py @@ -1,4 +1,4 @@ -# test integrity of the input data +# test integrity of the input data """ Copyright (C) Microsoft Corporation. All rights reserved.​ ​ @@ -34,24 +34,54 @@ n_columns = 10 # distribution of features in the training set -historical_mean = np.array([-3.63962254e-16, 1.26972339e-16, -8.01646331e-16, 1.28856202e-16, - -8.99230414e-17, 1.29609747e-16, -4.56397112e-16, 3.87573332e-16, - -3.84559152e-16, -3.39848813e-16, 1.52133484e+02]) -historical_std = np.array([4.75651494e-02, 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, - 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, 4.75651494e-02, - 4.75651494e-02, 4.75651494e-02, 7.70057459e+01]) - -# maximal relative change in feature mean or standrd deviation that we can tolerate +historical_mean = np.array( + [ + -3.63962254e-16, + 1.26972339e-16, + -8.01646331e-16, + 1.28856202e-16, + -8.99230414e-17, + 1.29609747e-16, + -4.56397112e-16, + 3.87573332e-16, + -3.84559152e-16, + -3.39848813e-16, + 1.52133484e02, + ] +) +historical_std = np.array( + [ + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 4.75651494e-02, + 7.70057459e01, + ] +) + +# maximal relative change in feature mean or standrd deviation that we can tolerate shift_tolerance = 3 + def check_schema(X): n_actual_columns = X.shape[1] if n_actual_columns != n_columns: - print("Error: found {} feature columns. The data should have {} feature columns.".format(n_actual_columns, n_columns)) + print( + "Error: found {} feature columns. The data should have {} feature columns.".format( + n_actual_columns, n_columns + ) + ) return False return True + def check_missing_values(dataset): n_nan = np.sum(np.isnan(dataset.values)) if n_nan > 0: @@ -59,15 +89,19 @@ def check_missing_values(dataset): return False return True + def check_distribution(dataset): mean = np.mean(dataset.values, axis=0) std = np.mean(dataset.values, axis=0) - if np.sum(abs(mean - historical_mean) > shift_tolerance * abs(historical_mean)) > 0 or \ - np.sum(abs(std - historical_std) > shift_tolerance * abs(historical_std)) > 0: - print("Warning: new data has different distribution than the training data") - return False + if ( + np.sum(abs(mean - historical_mean) > shift_tolerance * abs(historical_mean)) > 0 + or np.sum(abs(std - historical_std) > shift_tolerance * abs(historical_std)) > 0 + ): + print("Warning: new data has different distribution than the training data") + return False return True + def main(): filename = sys.argv[1] if not os.path.exists(filename): @@ -75,15 +109,16 @@ def main(): return dataset = pd.read_csv(filename) - if check_schema(dataset[dataset.columns[:-1]]): + if check_schema(dataset[dataset.columns[:-1]]): print("Data schema test succeeded") if check_missing_values(dataset) and check_distribution(dataset): print("Missing values test passed") print("Data distribution test passed") else: - print("There might be some issues with the data. Please check warning messages.") + print( + "There might be some issues with the data. Please check warning messages." + ) + if __name__ == "__main__": main() - - diff --git a/code/training/train.py b/code/training/train.py index 374b0323..6aeb2c96 100644 --- a/code/training/train.py +++ b/code/training/train.py @@ -38,32 +38,29 @@ from typing import Tuple, List # run_history_name = 'devops-ai' -#os.makedirs('./outputs', exist_ok=True) +# os.makedirs('./outputs', exist_ok=True) # #ws.get_details() # Start recording results to AML -#run = Run.start_logging(workspace = ws, history_name = run_history_name) +# run = Run.start_logging(workspace = ws, history_name = run_history_name) run = Run.get_submitted_run() -X, y = load_diabetes(return_X_y = True) -columns = ['age', 'gender', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'] -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) -data = { - "train":{"X": X_train, "y": y_train}, - "test":{"X": X_test, "y": y_test} -} +X, y = load_diabetes(return_X_y=True) +columns = ["age", "gender", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6"] +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) +data = {"train": {"X": X_train, "y": y_train}, "test": {"X": X_test, "y": y_test}} -print('Running train.py') +print("Running train.py") # Randomly pic alpha alphas = np.arange(0.0, 1.0, 0.05) -alpha=alphas[np.random.choice(alphas.shape[0], 1, replace=False)][0] +alpha = alphas[np.random.choice(alphas.shape[0], 1, replace=False)][0] print(alpha) -run.log('alpha', alpha) -reg = Ridge(alpha = alpha) -reg.fit(data['train']['X'], data['train']['y']) -preds = reg.predict(data['test']['X']) -run.log('mse', mean_squared_error(preds, data['test']['y'])) +run.log("alpha", alpha) +reg = Ridge(alpha=alpha) +reg.fit(data["train"]["X"], data["train"]["y"]) +preds = reg.predict(data["test"]["X"]) +run.log("mse", mean_squared_error(preds, data["test"]["y"])) # Save model as part of the run history @@ -71,11 +68,11 @@ # model_name = "." with open(model_name, "wb") as file: - joblib.dump(value = reg, filename = model_name) + joblib.dump(value=reg, filename=model_name) -# upload the model file explicitly into artifacts -run.upload_file(name = './outputs/'+ model_name, path_or_stream = model_name) -print('Uploaded the model {} to experiment {}'.format(model_name, run.experiment.name)) +# upload the model file explicitly into artifacts +run.upload_file(name="./outputs/" + model_name, path_or_stream=model_name) +print("Uploaded the model {} to experiment {}".format(model_name, run.experiment.name)) dirpath = os.getcwd() print(dirpath) @@ -85,7 +82,6 @@ # print('Registered the model {} to run history {}'.format(model_name, run.history.name)) - -print('Following files are uploaded ') +print("Following files are uploaded ") print(run.get_file_names()) -run.complete() \ No newline at end of file +run.complete() From aeb47677748cb589f4161144c395e80094924cb3 Mon Sep 17 00:00:00 2001 From: Praneet Solanki Date: Tue, 29 Jan 2019 22:51:26 -0500 Subject: [PATCH 5/8] Update Readme.md --- Readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Readme.md b/Readme.md index 9ebf7c71..c9d9774e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,5 @@ +### Authors: Praneet Singh Solanki + # DevOps For AI [DevOps for AI template](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. From 29326f4efbfa96bc79191ae4ebfcbf02efb229af Mon Sep 17 00:00:00 2001 From: Praneet Solanki Date: Tue, 29 Jan 2019 22:51:54 -0500 Subject: [PATCH 6/8] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index c9d9774e..2915f7a4 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -### Authors: Praneet Singh Solanki +### Author: Praneet Singh Solanki # DevOps For AI From a9d05e6f65bd395b212c15a85d3a02b22f013cfa Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Tue, 5 Feb 2019 17:56:56 -0500 Subject: [PATCH 7/8] cleanup: remove unwanted files --- .vscode/settings.json | 6 --- Readme.md | 91 ------------------------------------------- 2 files changed, 97 deletions(-) delete mode 100644 .vscode/settings.json delete mode 100644 Readme.md diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index eb025143..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "python.pythonPath": "C:\\Users\\prsol\\.azureml\\envs\\azuremlsdk-0112\\python.exe", - "python.linting.pep8Enabled": false, - "python.linting.enabled": false, - "python.linting.flake8Enabled": true -} \ No newline at end of file diff --git a/Readme.md b/Readme.md deleted file mode 100644 index 2915f7a4..00000000 --- a/Readme.md +++ /dev/null @@ -1,91 +0,0 @@ -### Author: Praneet Singh Solanki - -# DevOps For AI - -[DevOps for AI template](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. - -This template contains code and pipeline definition for a machine learning project demonstrating how to automate the end to end ML/AI project. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod, integration testing and functional testing. - -## Prerequisite -- Active Azure subscription -- Minimum contributor access to Azure subscription - -## Getting Started: - -### Import the DevOps for AI solution template from Azure DevOps Demo Generator: [Click here](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) - -Skip above step if already done. - -Once the template is imported for personal Azure DevOps account using DevOps demo generator, you need to follow below steps to get the pipeline running: - -### Update Pipeline Config: - -#### Build Pipeline -1. Go to the **Pipelines -> Builds** on the newly created project and click **Edit** on top right -![EditPipeline1](/docs/images/EditPipeline1.png) -2. Click on **Create or Get Workspace** task, select the Azure subscription where you want to deploy and run the solution, and click **Authorize** -![EditPipeline2](/docs/images/EditPipeline2.png) -3. Click all other tasks below it and select the same subscription (no need to authorize again) -4. Once the tasks are updated with subscription, click on **Save & queue** and select **Save** -![EditPipeline3](/docs/images/EditPipeline3.png) - -#### Release Pipeline -1. Go to the **Pipelines -> Releases** and click **Edit** on top -![EditPipeline4](/docs/images/EditPipeline4.png) -2. Click on **1 job, 4 tasks** to open the tasks in **QA stage** -![EditPipeline5](/docs/images/EditPipeline5.png) -3. Update the subscription details in two tasks -![EditPipeline6](/docs/images/EditPipeline6.png) -4. Click on **Tasks** on the top to switch to the Prod stage, update the subscription details for the two tasks in prod -![EditPipeline7](/docs/images/EditPipeline7.png) -5. Once you fix all the missing subscription, the **Save** is no longer grayed, click on save to save the changes in release pepeline -![EditPipeline8](/docs/images/EditPipeline8.png) - -### Update Repo config: -1. Go to the **Repos** on the newly created Azure DevOps project -2. Open the config file [/aml_config/config.json](/aml_config/config.json) and edit it -3. Put your Azure subscription ID in place of <> -4. Change resource group and AML workspace name if you want -5. Put the location where you want to deploy your Azure ML service workspace -6. Save the changes and commit these changes to master branch -7. The commit will trigger the build pipeline to run deploying AML end to end solution -8. Go to **Pipelines -> Builds** to see the pipeline run - -## Steps Performed in the Build Pipeline: - -1. Prepare the python environment -2. Get or Create the workspace -3. Submit Training job on the remote DSVM / Local Python Env -4. Register model to workspace -5. Create Docker Image for Scoring Webservice -6. Copy and Publish the Artifacts to Release Pipeline - -## Steps Performed in the Release Pipeline -In Release pipeline we deploy the image created from the build pipeline to Azure Container Instance and Azure Kubernetes Services - -### Deploy on ACI - QA Stage -1. Prepare the python environment -2. Create ACI and Deploy webservice image created in Build Pipeline -3. Test the scoring image - -### Deploy on AKS - PreProd/Prod Stage -1. Prepare the python environment -2. Deploy on AKS - - Create AKS and create a new webservice on AKS with the scoring docker image - - OR - - - Get the existing AKS and update the webservice with new image created in Build Pipeline -3. Test the scoring image - -### Repo Details - -You can find the details of the code ans scripts in the repository [here](/docs/code_description.md) - -### References - -- [Azure Machine Learning(Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) - -- [Azure ML Samples](https://docs.microsoft.com/en-us/azure/machine-learning/service/samples-notebooks) -- [Azure ML Python SDK Quickstart](https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-create-workspace-with-python) -- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/?view=vsts) From c41807dd9f83c907227c4b8822db29b6d058c55c Mon Sep 17 00:00:00 2001 From: Praneet Singh Solanki Date: Tue, 5 Feb 2019 18:03:43 -0500 Subject: [PATCH 8/8] docs: updated readme --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/README.md b/README.md index 72f1506a..4f52ad3d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,94 @@ +### Author: Praneet Singh Solanki + +# DevOps For AI + +[DevOps for AI template](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release pipelines along with Azure ML services for ML/AI model management and operationalization. + +This template contains code and pipeline definition for a machine learning project demonstrating how to automate the end to end ML/AI project. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod, integration testing and functional testing. + +## Prerequisite +- Active Azure subscription +- Minimum contributor access to Azure subscription + +## Getting Started: + +### Import the DevOps for AI solution template from Azure DevOps Demo Generator: [Click here](https://azuredevopsdemogenerator.azurewebsites.net/?name=azure%20machine%20learning) + +Skip above step if already done. + +Once the template is imported for personal Azure DevOps account using DevOps demo generator, you need to follow below steps to get the pipeline running: + +### Update Pipeline Config: + +#### Build Pipeline +1. Go to the **Pipelines -> Builds** on the newly created project and click **Edit** on top right +![EditPipeline1](/docs/images/EditPipeline1.png) +2. Click on **Create or Get Workspace** task, select the Azure subscription where you want to deploy and run the solution, and click **Authorize** +![EditPipeline2](/docs/images/EditPipeline2.png) +3. Click all other tasks below it and select the same subscription (no need to authorize again) +4. Once the tasks are updated with subscription, click on **Save & queue** and select **Save** +![EditPipeline3](/docs/images/EditPipeline3.png) + +#### Release Pipeline +1. Go to the **Pipelines -> Releases** and click **Edit** on top +![EditPipeline4](/docs/images/EditPipeline4.png) +2. Click on **1 job, 4 tasks** to open the tasks in **QA stage** +![EditPipeline5](/docs/images/EditPipeline5.png) +3. Update the subscription details in two tasks +![EditPipeline6](/docs/images/EditPipeline6.png) +4. Click on **Tasks** on the top to switch to the Prod stage, update the subscription details for the two tasks in prod +![EditPipeline7](/docs/images/EditPipeline7.png) +5. Once you fix all the missing subscription, the **Save** is no longer grayed, click on save to save the changes in release pepeline +![EditPipeline8](/docs/images/EditPipeline8.png) + +### Update Repo config: +1. Go to the **Repos** on the newly created Azure DevOps project +2. Open the config file [/aml_config/config.json](/aml_config/config.json) and edit it +3. Put your Azure subscription ID in place of <> +4. Change resource group and AML workspace name if you want +5. Put the location where you want to deploy your Azure ML service workspace +6. Save the changes and commit these changes to master branch +7. The commit will trigger the build pipeline to run deploying AML end to end solution +8. Go to **Pipelines -> Builds** to see the pipeline run + +## Steps Performed in the Build Pipeline: + +1. Prepare the python environment +2. Get or Create the workspace +3. Submit Training job on the remote DSVM / Local Python Env +4. Register model to workspace +5. Create Docker Image for Scoring Webservice +6. Copy and Publish the Artifacts to Release Pipeline + +## Steps Performed in the Release Pipeline +In Release pipeline we deploy the image created from the build pipeline to Azure Container Instance and Azure Kubernetes Services + +### Deploy on ACI - QA Stage +1. Prepare the python environment +2. Create ACI and Deploy webservice image created in Build Pipeline +3. Test the scoring image + +### Deploy on AKS - PreProd/Prod Stage +1. Prepare the python environment +2. Deploy on AKS + - Create AKS and create a new webservice on AKS with the scoring docker image + + OR + + - Get the existing AKS and update the webservice with new image created in Build Pipeline +3. Test the scoring image + +### Repo Details + +You can find the details of the code ans scripts in the repository [here](/docs/code_description.md) + +### References + +- [Azure Machine Learning(Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) + +- [Azure ML Samples](https://docs.microsoft.com/en-us/azure/machine-learning/service/samples-notebooks) +- [Azure ML Python SDK Quickstart](https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-create-workspace-with-python) +- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/?view=vsts) # Contributing