From 2707dd352505d63f57d2bbc4efc6e786d613cad2 Mon Sep 17 00:00:00 2001 From: Devin Petersohn Date: Wed, 28 Oct 2020 21:35:36 -0500 Subject: [PATCH] DOCS-#2334: Add tutorials to main repo Signed-off-by: Devin Petersohn --- examples/tutorial/Dockerfile | 5 + examples/tutorial/README.md | 2 + examples/tutorial/requirements.txt | 5 + .../cluster/exercise_4.ipynb | 146 +++++ .../cluster/exercise_5.ipynb | 184 ++++++ .../cluster/modin-cluster.yaml | 163 ++++++ .../tutorial_notebooks/img/MODIN_ver2_hrz.png | Bin 0 -> 18306 bytes .../img/convert_to_pandas.png | Bin 0 -> 70298 bytes .../tutorial_notebooks/img/modin_cluster.png | Bin 0 -> 218612 bytes .../img/modin_cluster_perf.png | Bin 0 -> 51080 bytes .../img/modin_multicore.png | Bin 0 -> 23211 bytes .../img/pandas_multicore.png | Bin 0 -> 22851 bytes .../tutorial_notebooks/img/read_csv_perf.png | Bin 0 -> 12948 bytes .../introduction/exercise_1.ipynb | 232 ++++++++ .../introduction/exercise_2.ipynb | 525 ++++++++++++++++++ .../introduction/exercise_3.ipynb | 303 ++++++++++ 16 files changed, 1565 insertions(+) create mode 100644 examples/tutorial/Dockerfile create mode 100644 examples/tutorial/README.md create mode 100644 examples/tutorial/requirements.txt create mode 100644 examples/tutorial/tutorial_notebooks/cluster/exercise_4.ipynb create mode 100644 examples/tutorial/tutorial_notebooks/cluster/exercise_5.ipynb create mode 100644 examples/tutorial/tutorial_notebooks/cluster/modin-cluster.yaml create mode 100644 examples/tutorial/tutorial_notebooks/img/MODIN_ver2_hrz.png create mode 100644 examples/tutorial/tutorial_notebooks/img/convert_to_pandas.png create mode 100644 examples/tutorial/tutorial_notebooks/img/modin_cluster.png create mode 100644 examples/tutorial/tutorial_notebooks/img/modin_cluster_perf.png create mode 100644 examples/tutorial/tutorial_notebooks/img/modin_multicore.png create mode 100644 examples/tutorial/tutorial_notebooks/img/pandas_multicore.png create mode 100644 examples/tutorial/tutorial_notebooks/img/read_csv_perf.png create mode 100644 examples/tutorial/tutorial_notebooks/introduction/exercise_1.ipynb create mode 100644 examples/tutorial/tutorial_notebooks/introduction/exercise_2.ipynb create mode 100644 examples/tutorial/tutorial_notebooks/introduction/exercise_3.ipynb diff --git a/examples/tutorial/Dockerfile b/examples/tutorial/Dockerfile new file mode 100644 index 00000000000..b8c3a367803 --- /dev/null +++ b/examples/tutorial/Dockerfile @@ -0,0 +1,5 @@ +FROM continuumio/miniconda3 + +RUN conda install -c conda-forge psutil setproctitle +RUN pip install -r requirements.txt + diff --git a/examples/tutorial/README.md b/examples/tutorial/README.md new file mode 100644 index 00000000000..660ad8c0881 --- /dev/null +++ b/examples/tutorial/README.md @@ -0,0 +1,2 @@ +# modin-tutorial +Tutorial for how to use different features Modin diff --git a/examples/tutorial/requirements.txt b/examples/tutorial/requirements.txt new file mode 100644 index 00000000000..7a4bc510d5d --- /dev/null +++ b/examples/tutorial/requirements.txt @@ -0,0 +1,5 @@ +fsspec +s3fs +ray==1.0.0 +jupyterlab +git+https://github.com/modin-project/modin diff --git a/examples/tutorial/tutorial_notebooks/cluster/exercise_4.ipynb b/examples/tutorial/tutorial_notebooks/cluster/exercise_4.ipynb new file mode 100644 index 00000000000..341d2a23010 --- /dev/null +++ b/examples/tutorial/tutorial_notebooks/cluster/exercise_4.ipynb @@ -0,0 +1,146 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![LOGO](../img/MODIN_ver2_hrz.png)\n", + "\n", + "

Scale your pandas workflows by changing one line of code

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 4: Setting up cluster environment\n", + "\n", + "**GOAL**: Learn how to set up a cluster for Modin.\n", + "\n", + "**NOTE**: This exercise has extra requirements. Read instructions carefully before attempting. \n", + "\n", + "**This exercise instructs the user on how to start a 700+ core cluster, and it is not shut down until the end of Exercise 5. Read instructions carefully.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Often in practice we have a need to exceed the capabilities of a single machine. Modin works and performs well in both local mode and in a cluster environment. The key advantage of Modin is that your notebook does not change between local development and cluster execution. Users are not required to think about how many workers exist or how to distribute and partition their data; Modin handles all of this seamlessly and transparently.\n", + "\n", + "![Cluster](../img/modin_cluster.png)\n", + "\n", + "**Extra Requirements for this exercise**\n", + "\n", + "Detailed instructions can be found here: https://docs.ray.io/en/master/cluster/launcher.html\n", + "\n", + "From command line:\n", + "- `pip install boto3`\n", + "- `aws configure`\n", + "- `ray up modin-cluster.yaml`\n", + "\n", + "Included in this directory is a file named `modin-cluster.yaml`. We will use this to start the cluster." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# !pip install boto3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# !aws configure" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Starting and connecting to the cluster\n", + "\n", + "This example starts 1 head node (m5.24xlarge) and 7 workers (m5.24xlarge), 768 total CPUs.\n", + "\n", + "Cost of this cluster can be found here: https://aws.amazon.com/ec2/pricing/on-demand/." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# !ray up modin-cluster.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Connect to the cluster with `ray attach`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# !ray attach modin-cluster.yaml" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# DO NOT CHANGE THIS CODE!\n", + "# Changing this code risks breaking further exercises\n", + "\n", + "import time\n", + "time.sleep(600) # We need to give ray enough time to start up all the workers\n", + "import ray\n", + "ray.init(address=\"auto\")\n", + "import modin.pandas as pd\n", + "assert pd.DEFAULT_NPARTITIONS == 768, \"Not all Ray nodes are started up yet\"\n", + "ray.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Please move on to Exercise 5" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorial/tutorial_notebooks/cluster/exercise_5.ipynb b/examples/tutorial/tutorial_notebooks/cluster/exercise_5.ipynb new file mode 100644 index 00000000000..f4e4e82dcca --- /dev/null +++ b/examples/tutorial/tutorial_notebooks/cluster/exercise_5.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![LOGO](../img/MODIN_ver2_hrz.png)\n", + "\n", + "

Scale your pandas workflows by changing one line of code

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 5: Executing on a cluster environment\n", + "\n", + "**GOAL**: Learn how to connect Modin to a Ray cluster and run pandas queries on a cluster.\n", + "\n", + "**NOTE**: Exercise 4 must be completed first, this exercise relies on the cluster created in Exercise 4." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Modin performance scales as the number of nodes and cores increases. In this exercise, we will reproduce the data from the plot below.\n", + "\n", + "![ClusterPerf](../img/modin_cluster_perf.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Don't change this cell!\n", + "import ray\n", + "ray.init(address=\"auto\")\n", + "import modin.pandas as pd\n", + "if pd.DEFAULT_NPARTITIONS != 768:\n", + " print(\"This notebook was designed and tested for an 8 node Ray cluster. \"\n", + " \"Proceed at your own risk!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!du -h big_yellow.csv" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "df = pd.read_csv(\"big_yellow.csv\", quoting=3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "count_result = df.count()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print\n", + "count_result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "groupby_result = df.groupby(\"passenger_count\").count()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print\n", + "groupby_result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "apply_result = df.applymap(str)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print\n", + "apply_result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ray.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Shutting down the cluster\n", + "\n", + "**You may have to change the path below**. If this does not work, log in to your \n", + "\n", + "Now that we have finished computation, we can shut down the cluster with `ray down`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!ray down modin-cluster.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### This ends the cluster exercise" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorial/tutorial_notebooks/cluster/modin-cluster.yaml b/examples/tutorial/tutorial_notebooks/cluster/modin-cluster.yaml new file mode 100644 index 00000000000..78b3be39daa --- /dev/null +++ b/examples/tutorial/tutorial_notebooks/cluster/modin-cluster.yaml @@ -0,0 +1,163 @@ +# An unique identifier for the head node and workers of this cluster. +cluster_name: modin_init + +# The minimum number of workers nodes to launch in addition to the head +# node. This number should be >= 0. +min_workers: 7 + +# The maximum number of workers nodes to launch in addition to the head +# node. This takes precedence over min_workers. +max_workers: 7 + +# The initial number of worker nodes to launch in addition to the head +# node. When the cluster is first brought up (or when it is refreshed with a +# subsequent `ray up`) this number of nodes will be started. +initial_workers: 7 + +# Whether or not to autoscale aggressively. If this is enabled, if at any point +# we would start more workers, we start at least enough to bring us to +# initial_workers. +autoscaling_mode: default + +# This executes all commands on all nodes in the docker container, +# and opens all the necessary ports to support the Ray cluster. +# Empty string means disabled. +docker: + image: "" # e.g., rayproject/ray:0.8.7 + container_name: "" # e.g. ray_docker + # If true, pulls latest version of image. Otherwise, `docker run` will only pull the image + # if no cached version is present. + pull_before_run: True + run_options: [] # Extra options to pass into "docker run" + + # Example of running a GPU head with CPU workers + # head_image: "rayproject/ray:0.8.7-gpu" + # head_run_options: + # - --runtime=nvidia + + # worker_image: "rayproject/ray:0.8.7" + # worker_run_options: [] + +# The autoscaler will scale up the cluster to this target fraction of resource +# usage. For example, if a cluster of 10 nodes is 100% busy and +# target_utilization is 0.8, it would resize the cluster to 13. This fraction +# can be decreased to increase the aggressiveness of upscaling. +# This max value allowed is 1.0, which is the most conservative setting. +target_utilization_fraction: 0.8 + +# If a node is idle for this many minutes, it will be removed. +idle_timeout_minutes: 5 + +# Cloud-provider specific configuration. +provider: + type: aws + region: us-west-2 + # Availability zone(s), comma-separated, that nodes may be launched in. + # Nodes are currently spread between zones by a round-robin approach, + # however this implementation detail should not be relied upon. + availability_zone: us-west-2a,us-west-2b + # Whether to allow node reuse. If set to False, nodes will be terminated + # instead of stopped. + cache_stopped_nodes: True # If not present, the default is True. + +# How Ray will authenticate with newly launched nodes. +auth: + ssh_user: ubuntu +# By default Ray creates a new private keypair, but you can also use your own. +# If you do so, make sure to also set "KeyName" in the head and worker node +# configurations below. +# ssh_private_key: /path/to/your/key.pem + +# Provider-specific config for the head node, e.g. instance type. By default +# Ray will auto-configure unspecified fields such as SubnetId and KeyName. +# For more documentation on available fields, see: +# http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.ServiceResource.create_instances +head_node: + InstanceType: m5.24xlarge + ImageId: ami-0a2363a9cff180a64 # Deep Learning AMI (Ubuntu) Version 30 + + # You can provision additional disk space with a conf as follows + BlockDeviceMappings: + - DeviceName: /dev/sda1 + Ebs: + VolumeSize: 500 + + # Additional options in the boto docs. + +# Provider-specific config for worker nodes, e.g. instance type. By default +# Ray will auto-configure unspecified fields such as SubnetId and KeyName. +# For more documentation on available fields, see: +# http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.ServiceResource.create_instances +worker_nodes: + InstanceType: m5.24xlarge + ImageId: ami-0a2363a9cff180a64 # Deep Learning AMI (Ubuntu) Version 30 + + BlockDeviceMappings: + - DeviceName: /dev/sda1 + Ebs: + VolumeSize: 500 + # Run workers on spot by default. Comment this out to use on-demand. + # InstanceMarketOptions: + # MarketType: spot + # Additional options can be found in the boto docs, e.g. + # SpotOptions: + # MaxPrice: MAX_HOURLY_PRICE + + # Additional options in the boto docs. + +# Files or directories to copy to the head and worker nodes. The format is a +# dictionary from REMOTE_PATH: LOCAL_PATH, e.g. +file_mounts: { +# "/path1/on/remote/machine": "/path1/on/local/machine", +# "/path2/on/remote/machine": "/path2/on/local/machine", +} + +# Files or directories to copy from the head node to the worker nodes. The format is a +# list of paths. The same path on the head node will be copied to the worker node. +# This behavior is a subset of the file_mounts behavior. In the vast majority of cases +# you should just use file_mounts. Only use this if you know what you're doing! +cluster_synced_files: [] + +# Whether changes to directories in file_mounts or cluster_synced_files in the head node +# should sync to the worker node continuously +file_mounts_sync_continuously: False + +# List of commands that will be run before `setup_commands`. If docker is +# enabled, these commands will run outside the container and before docker +# is setup. +initialization_commands: [] + +# List of shell commands to run to set up nodes. +setup_commands: + # Note: if you're developing Ray, you probably want to create an AMI that + # has your Ray repo pre-cloned. Then, you can replace the pip installs + # below with a git checkout (and possibly a recompile). + - echo 'export PATH="$HOME/anaconda3/envs/tensorflow_p36/bin:$PATH"' >> ~/.bashrc + - pip install modin + - pip install ray==1.0.0 + - pip install pyarrow==0.16 + - pip install -U fsspec + - wget https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2015-01.csv + - printf "VendorID,tpep_pickup_datetime,tpep_dropoff_datetime,passenger_count,trip_distance,pickup_longitude,pickup_latitude,RateCodeID,store_and_fwd_flag,dropoff_longitude,dropoff_latitude,payment_type,fare_amount,extra,mta_tax,tip_amount,tolls_amount,improvement_surcharge,total_amount\n" > big_yellow.csv + - tail -n +2 yellow_tripdata_2015-01.csv{,}{,}{,}{,}{,}{,} >> big_yellow.csv + # Consider uncommenting these if you also want to run apt-get commands during setup + # - sudo pkill -9 apt-get || true + # - sudo pkill -9 dpkg || true + # - sudo dpkg --configure -a + +# Custom commands that will be run on the head node after common setup. +head_setup_commands: + - pip install boto3==1.4.8 # 1.4.8 adds InstanceMarketOptions + +# Custom commands that will be run on worker nodes after common setup. +worker_setup_commands: [] + +# Command to start ray on the head node. You don't need to change this. +head_start_ray_commands: + - ray stop + - ulimit -n 65536; ray start --head --port=6379 --object-manager-port=8076 --autoscaling-config=~/ray_bootstrap_config.yaml + +# Command to start ray on worker nodes. You don't need to change this. +worker_start_ray_commands: + - ray stop + - ulimit -n 65536; ray start --address=$RAY_HEAD_IP:6379 --object-manager-port=8076 diff --git a/examples/tutorial/tutorial_notebooks/img/MODIN_ver2_hrz.png b/examples/tutorial/tutorial_notebooks/img/MODIN_ver2_hrz.png new file mode 100644 index 0000000000000000000000000000000000000000..6276bd6168c063c740f367b19dad915539180fe6 GIT binary patch literal 18306 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 E06jeQ#sB~S literal 0 HcmV?d00001 diff --git a/examples/tutorial/tutorial_notebooks/img/convert_to_pandas.png b/examples/tutorial/tutorial_notebooks/img/convert_to_pandas.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba62de95ce2d67117b9903f0f8ae05b7d819636 GIT binary patch literal 70298 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 literal 0 HcmV?d00001 diff --git a/examples/tutorial/tutorial_notebooks/img/modin_cluster.png b/examples/tutorial/tutorial_notebooks/img/modin_cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfb190b0724ed2b82b2f1e8cfdf983e0ebca778 GIT binary patch literal 218612 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«`YX#RlPFl?L*nA2yQU9uzyI}-8tFu?LGZiX)%Vj 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ν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 YkFtX#!Rj3&;NO>StCrnbx^e%%0L|5{3;+NC literal 0 HcmV?d00001 diff --git a/examples/tutorial/tutorial_notebooks/img/modin_cluster_perf.png b/examples/tutorial/tutorial_notebooks/img/modin_cluster_perf.png new file mode 100644 index 0000000000000000000000000000000000000000..d35e2411c1974c13edb80638fa5f708bf3a0b96c GIT binary patch literal 51080 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

ow37CGR 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 Hjh_E6>0uFzN2t&fhS_Y z2*(f*#1PVA!YXchM``ela#MJ}^_2rZM;DTxD+FTv#AQ=V{$ubdXg!*wd@Xs$z16rp zHY*o$JX7V<_fOKvMP`xFveNI*eB0x^d2SXRkLNrqoJW@*QeF8YU~kInuID>W77mtH zl3m)v!ooxiNFmXQUq7b-LIMa?REzG4|9S8kMnohvElrM`TnOr)k2GmyQj#=@Ji4V` z5R8-`_~U?aF|LKtsJrmUvE+c{RKT;wvd;jNs7(Q|#l511}Cb|Cz zhhcR8pZDS2faVWLy!4X)BP4at<$p&R2@yCedfUqODis9K^B(knq+KO}M5qcrbvOUd z_<@1J{yVV$&RC}-38Pjmb=m(+O*=`Y?Mi!YeV|CH%3|w>e`a|FKDP{&h{vh_q~7r1 zALS_}3blLP{asQ7DbMz|vj3yp7hqmlNv|tht4+Y#k9-SQ2gW*^o#QeoxS`twzz9SR z^-qk4z>N?i!F>kN^q8-1w~B+`KV^bMU=Ez^SRROv0_I!@7c~=A88q2B;vNcaZB-vI zLxd{dwipI7VBY=Nh=oY>s z!@IkjRIqI%^2X>RaMd}rNoSz+XCr&nUD6QjhD&##hSuZica-(x zmXpz%vzo6XA`jO`s)Pvk9}kDsqWxZH;g0+^(vPAiPbT3vk?*6wwrv}xa)G?~c(!;> zz01jR+wN=?+4fk50?Bn2{~S4be<)bH!&E)NF!UttNA(MKtDTVjl^4ni{DC!N0=yQM zGv&IWDK^d0PwqEMu8R4xILLAjf6A@U;l*A>yBIhnfs_F))L91CjPfArHaq8N34eZQna0ubJQN>zPr_1AZedMliKg^X}@J$Lab z_ZeN+wRF#8;VPqEhq{}VllJab_lrumGow=N2IQ@wgg*8eot$}MCS0`w@;7-uf8ufe z7RS~NKqlZZI9>gvQEeR3>{Fsv_VLT_cZUlNC=r6sjmJ(0s&i_soXK|-=1qhdA;kMn-+GXV}-s79!t z^TD(nd=V%fZuR}Ks>4pj`>)EzE8;hRLPf{%+PC zzAsOlSd2O!aG&eNWCv@l7qBM6HzEY};?U4y0}WY%8OFE0Z-A{ET`W|61wN2?@pDdmvGylT|Jz1=x-rnuU{R^WyHa(6w@F4luOS9&7xv!I^{mkO91I6@w%Xg@7&gAVY&h} zU?hU_TMf`4Yh&gn&sKfcrS5u1`}H+q5ShinSK6Z3F+r_~?ONwd{2|*R)T))u1qWuP5rbBqq(mh z;?iy~`6~OX@3bV^yvjiZVHhQ;WBSK&|2@8X@sbSVyQa(tFW$TXd5acs`s^rIVKY>w7v=*$WCMo8L|XHuO^uZGca zOS*t2L97Ha`Jk396@t(mC>s=KV&*cM%1ujKN7{dyWsZX$FQwe0yzOQ}$jNfF(m}-X zNOw^YU#TU+=d}Bo-4!oA6~VsNMZBIwi`=>(m7R^rv!JYhW`4BJe&e^!I3K}Jn8$x6 zEJdN3-|q*4NjoPWZrqyroPretUv-eDiPQ`(PdKGcRPguBHyQ!+bR_XE;t~@s0kc1H zO{nK_)9dRU2Tt#H$8+p^&?NsW4;*`t|tLr_-P`+j3;T{TbbtJx;~Z4$_e z*ZofKj<6yH*56FT3TbIjr)W6qc(Fabt?5jL2= z{LTb6kgQ%U%56|uX>xqrc(sA-yn(5i*0FXtB<2|=+R0==MDnD~cy{3YHKu#T-oA3H z?SD5<^Tlcn5i9YAYK?tBa@A}LYtA1OJ?D-^V?3uux2J3SbaK;#dUskephU6h7)rUW zwwvXWo*`o~dh0)PlK4!d@%Lrims)ie!a-*lKKJH2cE8@3ABwkLWxno0-`7jbr$#kI z=%ez)JROo_@vRIAZp?m#U%1t8PJxGzQ-N~JEzx@^Gsln-3ENsqh7#g zQt`Q9t2A~7Ny)*c5eG)6qxrfib5%7Kh90%H>KRQjrFjG3zrjBJUtTnlRA$+(p5yp_0FL7Wo)wO#zPJV*iOk zQk5@)UgJTj*UpIV=oUVKV=fv=Al_Fdsec#aK-h=(dZLMd!#{WT?Epup(F4Q7DltEtUEQN>pukvPBn*S@n6Nn@}C^S zP(jK^-KoVRTj%ltMm+s}bQ+Ku9HMeHTfat<0(Ib6Q0UX^AauFe$c)ryHD0v@J{~E9 zbosF`{`-i!hr`=XbP_+gevfweH30R1`GCes>aryq2GTYB@~R&LF{?>f@Y8>P^sfs3 zwSxZ-3*oxP`rZP%x!y8}NkBIuTN1mwHW)i=+C+Uz^VisdkC@tyn#R*T9aqjLXW8UB z2uwQFdSAt0?lKNS{d<_O3=X2ccs}{5N~>|G%iUS1je?Qxkp>P&jgq#*HLvVAuI<@q zuAA0Sd(|a8#hV~)5$hUt&qp2Y_LsL6ZI}2qmLAyQv^rcq{(KHSEeZYE5e(Xa$=EvC z&T?4DjF1vNzzTO~A~V{VCFR`-U%JmxzJa9voGCOsxU6->qQ%)R|0J*!$b}!>8g@y* zgO;GHi5<_x)6nlr(Z2ME$+EEGUp!@*eG&qQzOSYn_ZDNBkKaNOO2!y&+6a z`dN^X7!flV*Oxeevi41@E=`|4JHYwK(L&Em1@vVp)aART@PFMKxU-TPCdKs+sa~Jn z&}(tQq6j`iF&25t{T=kVeb#n5v7?gbt|Rq%T=P7ft68YYGT(7MXcgllskeB1sOUKT zQ)(rPKS!jl@A*DRAu({{Q=E&>uS#?bBL*+}QfctM;<6=z0cfdfN8i?b5&g-tR`Q~S zC)=`u1UMkFU7zt_(o8oWTCjDr zkd1O392SZ;@cPb$QxSQ>$q;71n$Pqm=muWv-meC*P!+pd@jCXbUHnd%E|1A+-)CnO z>y~iM7S7>S%#~8qt~^AjQmH@cBl=ULEYo^1ZJEgI8iKxgN-mqOeb1%Vb`CXNs+Z?O z(LGmJ(M0$&c`5M63oluZ$$ZaRBA<(0_&Liafq>+3u0T=$KwE%5*JEI&X32FTix0J) z$FsRfMwq;2Rsu)CQPr{HcD4ewC;C@;!k?I948NbB9_;VpW=L}!u||ts7@zMi6zJWJ z2(bhOP!0s$u#NhDyVn02X<+L{lO#+U3TLSh@V#a$^|*6)9>dz;Jvj!&45e8N9S_5R z!Hn{BXoM<9t2L2D%Rd@n__G8r_*{NxlRI>f?-bCleiBUM>03X(^A48pOeE243b_4~ zC0ZOq$leG`?h!A4+7qMjYm}gaS~&iVApz?{mTF5mwML~u;e7?CPx!L#LSeX?Sc_NS zr`a}3D&zE8^H3MJjVWx!X4$#M&^q8$-y-Vjb^FYFyIvDv_jStgud~3*rs&~=b%oX} zyFrg}EU>5=J5xakix1s3l!lk9>1M9BC-_XPq^)hui*erv{GT3FA2tQZf@^oi(tm7? z(JNU4l5~lRlu#)uj;XBeJ6Y>P;`#i&&$n)Xw*1v>B&7ow@bMG`+L{Rh) zusjqc@JKsk2wE>?!>A;Nr9YzTX2_|$wru3&l_}w} z)bKEnxQ4O+c=*u*ahH#BcRsB}l>GVk8?`S|8J;8;!2!#}=ae2@~HwN<&NQsa(=W*)q|{Is|k~ln>1CTZ8HcbW>NfsV*Mj*uNtL zy@+n=pJoc){!IQhRM9M7r|>8>7=|;C_;B;`^Drr*SP>_`^%Z6-Pe%i5G)nus@tR`F zS566nbgU@6za?aZI;ZrsYCO>VJj+RZgHB-@U=d70hCd^8JP zA9e|OFClT)k`;}R@G@J~sKHLO7<;Fx^(;L22$nRss(1SGsdsRLX-Xupv4I!IeVwJq z#ok9JM+Df3$|QO%+YD@NO)lXHZ|~*;qMj754smzKZH>#{(_5g9e z^Fd6Rg?nCq+$o@=p6e*>qD!;OS9re^IqfHQZd@pgSN`}6XKdPET7)3WzmcYi#3%$-GfouF4CpK{dzO`P8 z1Z!<*e^F^%j0>?J{!d#_{hF-G@Zq5Tz=XPOB8|YEOsDfy3DD? z;DGD6(rtmv$$Kol?vGoE>17{0j*@Cm`MRJr# zs``$39X+2z)S98@X9~ySh|wgpeHF5kE_AoK1^g2s6q(d7@MV})9yC1<*H1xho-SV| zXYi_y+os$eM%1V9Esc9@)j?^~R9;K(MIc0>E^fKkM6^n ze?G32r}65*SJi%Og)aB>7R59VmgJ0bHPn^yId&!S+3Gd5Qy2;|v-5O(htDoPlK1I{ z4jQ3P1j|j6W1q`kt`{S1(aGj33K7uKVumzHy(RDMYCiQU|_>}5)Q^Ra-{Lb$U9-maf-&>B?h)&Fu6R(h6dOrA z!zY%G$0g1bqfs<%(hi@amaIUI>AIlsG{R!RNBQ>Wb3~^RvwgFNXl&8RX@T{KnTiqn zuMN(=EVfIItGha$iC>oV=}D%`#%fVptRnzrASd5F-FV}>xGW=yF$lkUQVQ_8uL5wD zkH&6V0k=`X`8%jHW+I2iQ%)m@7KVqhP1No>G#a97Q*d>=jx=49y-1+;;XI511A6rVP|5;HM0no!<~R`9<@A z!-vv1MRl`y?`GMD;Jc@*#1$@frsRv_;7y{@`+rVpMBw=`g15ij|2ik{BtH`R(eAHz zmKkF*>d@5EAzA#W4l;uKW|q0xOcVCJ^IqAunu*Ev0iAwlq(B>vQqw3@vPa}WSOI)M_ebDp2N=24wL@!R-#RCh=cUQ`vSr2YtfX#v0T)H z+P+-WA^rirDzBe1N;7(*Q;1P@!Mey{QFUb-%~Q0%zRt>%iRIy4 zjdxE`NieNAf+9Eq(MduB=G)!5dOAKb2LXG4{RB$}REE{>-l4$Y_MxKf(QCJKuVjBY zU?I6K+D@$`gRs4G%$I_o+AZ>;qM8h`B|O}qAA`TJ=5k<*W3uGSZae;5 z`lZ~XQ}j$|a2_!;^h_Y5Z7{4@|0Y8jg9Bh1COT|=56t9xiweEyQst3UL54lmf1JqK z|9Ou8zd70yv$8604gVKxu&yagvJww{e%Rx}c|QA+jruT7YxN!g3sB)dl71CC9JB>= zQ(5(jnS2C}y3k>u4Zm#Eg-i0Uuh0b7KiI%kzec)7t30a=ucXComK8peGyD`UsfEPpbzN9lzao z(tp4nhIgB*y6?PAZ4MFNn< z``YT!6KXsarrXr!ELuAmd7t0a}k`F;G_u33~_t+xB+xa4?^sRD3}hkb*H)#DEht5Scy zHI(CevTQb8nsm<%_%c6E0FGU@+fkM7M1w?ILu71(c(^%nCGT1rw+BerN~2zctDJ1{ z&@L?;k9qTgEQJgKv&BYc;7oE-s5>kRMV_hPCsH~V$qt^4-5+*t8{|CkhI>mbt~tg7 z(VyIW@3yex@*K7XcNZEev<^)OjAQ=bec1wl-yZ+~5-tQKK#5AzRnc~h3$VOdQ$|U= z$PwX8O`GUe02!m*V554a1_WDA_gCEj|6A%zfCXfeR05E(Rm6M8D4_}X)`#Pk#^dG# z{4w|iYcn?|uR)rE)%+Bju1N*Kp8yFetZF~Xy<-3npT$VBK(8SH8ZD2nJuM4W4nLgE zj|XthiouTkBE@lZ>e*jMlFJW5RX=BMv>Z1hR&+c!>rqPw8DJXvtQ~CT$O~4o#+)$FZU)D8*Fr2 zZ z`@MyaaTk(PytFnH#(FI~zwII&)QZ=|PxLy#PyFkRs=c@e4r0}v z=&fVkw}W#ZWK%eh4rVG)*l!AR!bJeGCXRZ=t{W+mwLA$R7{Kx1B(D^)G|XnG6lrHD z7DJcd%VSPCZD=Kj^?WXjCaE+UN7DBzMX=Zd*kZWBc}8gD28n*4Nc^6&0jiA6+ZvOh_&;&RAJoOn*Ly-}(c^m+Py}u> zZO6RAu?d377V9j5rMUKnV)*fYwS6ZDg0ffeY#A$ z6n-=luePFY9y3xnXsHBH~~ z5U|vMtg9+}BX(;*X%-PXt}EWKNw%>aCNDeszE64EN1L_>E7LFC9Wr>G+Q>RFh}eu_ zLyRr&fJ}+J`!7fXpK9r~1B`t%qP?uLd|#gZn+2)H?Kgh{wu19J-q7Q&21v_bw;*O> zl|6$8=@0x3^itrNUpen0Eyx|vv%70i%KJ1gnf==q({UHb!#O~&Rn*I-Z15D$`yOpg z&vJ4Nke`JeNv&jdi}rm*)N;@LE(Dq&^0bUANgt*R+SuMtQPO(xxa<}IswHYg)iG2G zYU6gFm1}q1dO&F9Ub+$(Vu|7a(Y=*};dyhcy3n*~Ye?l=nsKz)#9BBTy=r;hyc zu<~NJUsNCxbhc@Wa~})K_{gC7Z2c59w#=MFMvPXLIzYd2R~KX4uO*O8Y(z%NxWlLK zIKuAooJFTfQG{0I#>7Ii^k5tN zE79il?`i~Sz|8GQMOuB2#>V76Nglw5bkD-BXVGWUKaEy|r3)cOArjDO`@0j@{_^a} z9`W)U&(^MSA=O+(4#TKhh^!<=oU6_AMgkxpPbXxUdRylU6?6V}8{}!*G>Ic=4?+=9 z`l3ZbbMd$w7E0i)BSisD<2{fN@-3Bwq3h|dvO<<@63cTliD(%!8o`iEVe4W*M;NXJ zVF^4Lu@OBHmL}j=b_>=E03a)DK>D6)uVAy(es3mm7$D|SzTnhRh6I6A8GLSlEq)s} zJwC2}B$>S%$Xd!fXR}?_VOWh?`%3wOhFTS6rj`vY%@WLnXi6IM4)ceGAm9M^)f<*v zQtm57YFnRMWZJOy#QM&ssP3?;ODp52wq!#nh<*4xF3p^qQ*wb_QAjRD46htHV>z0{ zfzlD!Gq*Lii=~5njX`oew$f2)q4ZvnPr20&Dp+??7?B`_C5lt5$#M(sFwyO)Qu3(Y zyPb@T@84ya`?Klq+`gwKvODem`SVA)8Nv~dU*=DIZu>22@N91hQPL4Byf%be@ zGZwosG}l!P7dp@ZBc>zfWb!L6&KM*gv|maNs{u+gnX2%r6ej(tq7l0_O)H=Cg&SR2 z&xTws@uRTymC+|;NO=5!j@ui+$(7!d&%LFP-hSwAm>X!QmJG*FN)5{UrAplc&vx!S zqg#N*p&`xlbuV!KO@j}Aa zJ-(;EV6(JiGllDunUjF{h@+cXogu1wLhbEbJlogd4?pa_HBuGNn~hiM9IS^jsUcR9 zBgC6&$oK8f*U<&N!!hz~(aN4bZ1C8kP~jTb!Jrrz+z0YWisClaqTknap=3n4yKrZu z(73~hg;9KtOdv-4vR9KmGE;mHt?yh_b?7`S z-<_5nW;>h&9uqyjy)$Uk3h~MzC^yoT*bd*yghm!$fMycSU@5f~?>ldmy43FQdD6k` z$B3Yh{_=?s5(hGxrUuyh0$jYs^mO%vwuTIaxybn4Hy3q7L=MBX)ANjwWF)a@HLG)Z ztfkfH2K@=DyW$6YVK!w%8kRjQ(~(Lvsz|G=tN*I8wd>5)7#ch2k%U%lLVp0F+p+gCrSb`DR+NB)RE(E}?Z1a@2twJc?4X=^X*KZ?=-I-=Dyxqo0gU%mgv`G0M9@ z_L-EpWZt&*Orq~+wC(RfEPOP5Zf_|8RQqX7Q+ti8kJ5Lk1+7klrbub|qiMV)WH?Fa zqC)kF47$xKPf2P&Pd<*qu_i^tV3D*I72D4IuFa zn;2KcQw-X+-{tevQfjTA){0gtRx5+9aDpr%4b3(A@sf-oBfKnR+Y5UxG?Abb3{=sP z#C+~P<)esMF|5T^(5M!xgdiSR%?f9)ppi)wez!96CYzC9rVcLLy(L_be zq{xy$zq2;PJ$cSvbz19n=b+3f<@g}({h3VcP zp){H{n*JT{@{Lx^-`d#5uy^i*X5aAxNPRbRpw?cnuB+-<;2~^G&qt9qD^cz~2IJpZ zcxQ^{8*UD1${xePNPxNpe{CJBX?}tuf4DHIO~L8NSsJ#Jbz#Uq{Jqm3wk12)Eo=E) z5-4JoTsU?hQ%_b6&AfpM{4RW;yf=2~7C)&fmBusCT+T1>b~5Ani3Kr+6-sqbMfFYe z5l9VIq=maCAuh$mv2Wx+DgWsAj?`Fo{!!LU@?st|Hd>9S>kgD2Hz_Zw>vcBjf&E2u z?cUDMv8Z%$xdqV*b_}D*M=0eC_3(aVu`zKoPJSP~I1X!00ZET|Hfxl&>CYg!3q)D( z*9Q2pvz9Jz-Bssn0h#tRCu;dGwM0ocMwmWcxo?3Eg)VghTqZYmRLv({HXL(Jr6;fd zSRw_^vUPLsM4aYwXyxrhw)Jh=t102KcU@UI5`)xiHt4Pg3<1|u6D#Fx1l&V{;d z#BrW3@8A3#8!L68w9wOlzQX<6J;y#O0bl}-s0)u%U!81cpz#EjP$!XWW2l!5>=a~%v&G;?*DaYj$*i$8aR8iAdsqY zEEZewnegsnr+b<~P^3p`ftBvnHr%ZXFNlU8< zgGA5E9mCPv!v$iB66-iPF z`J=&RF%H)jWV}|`CCP1*8^f(913Fk%!4{=@CtS7OOWhM50$rOjhrCn{fBRqEwv0tB zd6_dyKF(zL8ZNHdyIGBjyu;=F98#5HtPbi9_Mcx~z)JIU7V(FAL*0X%HEAP+s@^hb zvwf6L)>9ko?#XpHxc*fEk!1PdK=0k5032Pqrhk!R!Rnx8MHnKbR*;(reP~<#QzKFY zf9vP6K}LHk_^>1n%GxVxy}MIOhbkGVFwwW#Y)z9)S>Xmg32mU>Ftpf83i_fKlZ&i!3Li2>S;ahagc z3v>=_*l*Wm7tNEG8VM|-AQh^?mT4Xp!j0i~8F52)= zc>aGGAl3)@YxcpU-{>L8$IKsW8i>SMh1_C!&9BM-HmxNmy3C)>y)~}i3(5&4D7)s* zP+G%i;rN-%1VUpz!qOqxzWD00kW>y>``4qaDI7_fR1T3xfJkpdk-qICZcagXm+Fje-XHFyjh`memincCxy=@ZVtLwC%1f)C_I}aSFq;fxu$e7F zJV{(35!CEWLw=*}sZHS|0NL~@v?SHx9i5#pciY6MKV>Xk=l?`SMCG=0mKw{_xa%4$ zG?fd5Xn)womHogW>}@zOqB(ii`EvS%Vgb?#AB(*xUvRaIU@cC~l0S|<7z(CJPrTs* zzT`hJ7``!2N^Eq=FomgGFRplQftmql^|f9!;($7s^^c8gz{yy5S(lS3LGl=kP9Y^ev^GjG~1kgFsu!2Q%e;{XRLT1Hn~e zBk?XKNTXfsGx}*?w(7KDKQ1xPS_g+92e=?EYfi@dp1QMMR3QsUx_G8;wtm>F3lb@X zliIu+hb7wRHDNM1Y9U&^h!9j4Ot6I?n)@?ePdIQQ2VeE~YGHY$az9U1qy6&D6%;XD z@z$Hn`KGDQ2S2nL+kN9xs%EBP;9~@aD*-Pj@I1S@c>hT@~`IVFEgY_&wprveMC*HR@h`A7ZFp9M7om~{y znzx*BPt@d^d+q|FS|#fn>|YF`&H3*(0gk?JtYqS!s4*HGHR2*vnfv$`jnPRO!)EW0 z)}{~&R(t|F$ROjFNd|X7-IIU!CSRZeKZ*d99{R_|{F2^$p3tK#3-w4yTO6t2l&th5K7(%LtGD_{lc1p^cW?qF7Y9?Gs6%Je%3<7ibU z%Bghe;AF+{F`xmU0tqNR6L2}4U27Z&M8NC<5=8A!+HQClhoFw(!MqWe{7`)ZuKEP< zTNTr>O(rNh^>Q(Qp{jD+k)QgAP?hct{EYMRWJSO2@*o!=60_AS^mtTry)_Z+p>%|@ z=|U_}2$XW3>Xm>>!qa}Th}G7M(VDo7q+zt(r54V7*`(+kV25bKVEsBQ)cXT-L>I)~ zM0yHrb_TPRh93ldyuwX?h#VrAmWu!bz=6)Re8HlKR%|P?NQgQYi1eyabgdfO{!|B_<>L z{w>v@B|!b!&^KPW5+aOeN$1_|0VAo%4u+^U`s?e;FXnRtQj4=qK zPKYeS2UsXOr!&?uzW1!AqnqnIl7G)f=`T8g8oR*RZh0V6CJRF_;*^lZ7;bwcr68aI zV2pQx!ZWRg^Sy$M?P73+?e1KS>En;2ZVmw5vQ{}}{hiEIA23_238T5KTgs^<(SMx8 zOG8t#05JL6W^pa5zTje9qaHYX$6;o9#(`Etn1Gj_koR#P`Vq`qLPV?*R4%=IpRN+L z9*8F)Sl%&&Rv4EBT*{FCR@e7-E*E#ekDmTQSi%;_#jN8vg=^i;r35MyA?>MNPyUul zz5&5?R6BVJP|Muy22rHq#N$P1R#I-c)KzF=S&_4SLqiD%R; zme}C1T`u)eE08Ck=wB0{wBm z-g;G~W}28*Fq0YAaDddbyMvH` zvgaT89nn*Vfbo4xb)&pU0Lp}TT$1Rg zbbyG}iYDof|CWi8d{6Y7oGRpv-9K61=e1};L?^B_TLz?oJO;U(uwm>WuiRV!{4I26 zZVCBjl@NR3Rqg5k9ErIR2Bl4_d7S2J%^M%jhpGVFZwIp`z!IvuPmi<#pg1=G{&Q3n zC6G&CzTe$|J5d5gEj+jOK1-vnf9_z6|0eamF7;?cb>hsuWki_7MMgd+m0h3yA;={C zw|O=(F9nuh2Yqx5f0tUZZc9Cnua-Q1bk-g?Awb-2B!x3VAIH(`Jt|R!dPRCN)Gff9 z{KYvu7Y;uaBN@eW+~l(ZG7hG?L|S-ZjQc$46%d>m^a#lRx`7AWK2(3}YG=NJ8o3}YSR5)#cg z=^_?dg#64P@>b&ce2590bW!MTm_!sFZ|ox{FBCI1S^Xnf-}uMalzF(uxSbn+b)bYi zdk!je^F^opQTJmAK<&uCQ`i4{54>H{i-WOwyB!HlVa%I^e}GLVy-A{2CDym7jFVB6 zg6}Tgt>z6Bz%+PhYE>J<1D679Y_s??eX$_qIwe-xd`sO!W7OYj^ZlFESij5mVHrpc z`TQ2R`@jxJp_wa5ZCXdKe2=6Z*H5^y-W$3x`z7M1wk@s6M}CylPgdW&m@w9fwZ{w> zX!?=;d;1yn`=Y;7+5ixJKh;L!Fe>n7N|Vy5MMx@ae2yxxYKkT7*NU zOdUT*UWK)P=|fKSJZ_5Yz-H6|fp0*l5Q$f#o9Mnl(x%G`q1@rK1Mb!M(`f&NoxN*3 z@$VTjg8lyN#97+sNCGlM%*ZkV2jWntAQrI^)`F#)*yykz$BWQZSb>+v3z7%_E!+IR zK;Dl$gJ*Ly9zr#p745eesd6BP=>xAzY0D>#ALDibC}N|~Lqq9eo#^l~V#Bc>z}8u0 zsyyQ=ChQV4Iz=6wH=V81TKwqwm!HYrS88T*Ype( z4-gLnGN24PJ~|ekEDgHama*ndI@@r034Yx1pFH`MiCT~`V!gurhFhTcw5@l#ssBud zIaquZ;NpG**HPpOd}1>FRG_`iXVxe)N-LCk#FDT>ZM~xej08D`qtLuJ zF;3LNB=WFyc&(BM4o-=S+K0mf6U?~Ve3h(3(glk^hDCM#FV8&UouGlX-fIH-v~1wD zg_}^P5#TBu^&z}wTLcIB$VF}Zm8uB}-0)P`^3Pe{?%{@jWTWAy&a)-*GKbHg$-%{t z7EOfn4y&dHuJ(vL4>o*m6nax(Q=o|dyZ-Io@a=O{I5&0Ap4k=5GV2>0+WjbT>qYI< zg>fZ*T;vSc(F{RBty;6Jb|k%Kr#%<}=Te?sU_OK!G8GmwM!yZW^;V^^sOGHoyRQQ2 z7P4uGx@B7I83I{W@fkqn?UV6O3@e#t1eP1D0!cP}OTtFr;su&pwu^XlaUfQqt}f+- zg+$u~ZX7TK92Gb*ZR$kn$pH13Ve}3)SBY)d-N40;67X7b6UMss@b~~o7mCd!k0`vo zy#BKID;cjGp!b$NPxxW(WX(sR`@Dyfev$a=h#Xe()x`MGL7|h_&euwN54i%Dc@!h> zrH%uh^tuY|7gZz}!2En_``s0l4Qh|LA06q_j&7ZW z>Xdzf_WgE>EjR}agGo=PEv(;Soj6bM`Bqf?>|BZBnRX$Hv3ZxYzukZm{iC#>ehP{coyoB*@oQrpMug(poj&iy6Bi>Nqc0;BY`sU^<0B(aW=TzAH+;Be?D|7L6E8x zrG7(2k{pFTf%yp2dD$&GQDjB5oH7P9?)?>&gNhQc6-sX&1;zeiCrU{K3;8-!(ERvU$ z{=jI8Y4m6)6(2ENYXkPV%69PXn@0=AdZt$RQ8-XQE*$@zWU~{Fdv&7~gE?;nyk-kP zU-G)GfwlN+aL+kH7}Z#_k^-^87*hR@eA@ZLBG?xlxGRLT;JCk6guB&^EQ53C zTk96sJjtXK6ayRza`8>&5|AARuaxGO@kX=$<3PgZ4wM<@XVHGB+8cg8WgZ7YH#|Q` z2*PcjRX-0ET#gix)F26kN$u+#;@}g8cJxk5$l9N+LZDrD`+TQczDln!;qby($E+nVQC4O+Wttv9(av; zyaJtx?N=RK!eXzKuyT!+0tzDA@o#|G_2xp42PKBUOhf}MGK`F-$V2#d0r5U!b;dQ; zfkgM(MP~=}2Ur7oh&#^r@VUUfD)w3_8JrmqP?T@xm^?$Bv)9ZnI?>RV%zfO8%=EZTvkA>JlYvIgfLK5Fn8(@n2^J7 zh`Y>b10}l^APQkKXV;iWuV5-?{|0KHz(>B`?R5!*4)@mI?3-2HqX)zg(ozs65)s5_ zR6lkUddEp$oaVPBK#nyW_(}<04Vc?2yn85km<))AONjYM3B=5C^uNXk_TM_Iwa}$V zA+PtO1FZLz*pg|Ye^p4rpA`stqd)Sl5kv|lqZKOU7d!VIPC}b`;xhP2$b60gj^j{6 z7ShDyz_f)>rq15e^n`5T<<8Ue2v=hPcU2ey&wshVBG^|RnO0w67{#ywLnMy^>?@@5 zy&Vkzgk-+0{e)mIgw*#n26#FvAVh*(|0G+VE@Bl;c|ht<4qoGEE>Mi(B=Qh{{nVsM zkPFvlt$?Sn3$Q@j^%(=x%CEaLd88QNO31t9JM#dflElm$3JAR5B@YLV|-1ar= zoCiXcbaH7ZOf+y|UaHtEd?Q967vyJXEs8*{%%CqdKq)r96%n{?A4+W^E|TRoN6u=V z>n`nzc9YQVMDrZ`jWW*pK|F@Z|F9zCG$rqk_onqs=KjM~=6y=&nl=AoCp+-vy!2&E z@VO^Z_{&*OE0sY3|9H8%?rQLfZ)b6W+FE>m!z#db6%lF6Zmz5yB{ADm=7*;xZzL0y zY6kP#wzKvlqE@mophx5(mx_%c2x#qk2Lt6(j)1Vdk)m zfZLXll`P4J^g^XJ1P`PEgj7^sYhRWO90Yq7^9wBzpvGLV5)MWSw8NAVfs37*^4aoU z8dN6L>M^p<9l(XX#Nm0r}ocFfV&jp0<6)G)Tls2f~5YXQW)`cY{W*q_eB-BEAPdH(`KG&3%DLEKu+K0clMjm)BB-{k~{YUT-U{= zcT{n_G?K~;p3>TuQ{{oZ5e&a4BbZdTM$7Fv_Bo3qQt*}nNX36_Qa4f42L zVK&zpEJ6ozeQ^0CK}XYL82d!u6EW(8!6Z-vrSEnA<`cd))D~TApY)czSOese-R>$0 z14(?d38Y4Ctz#df*Ynv9SJh(32UcrYGg_g52HOOmS%5;L2%}2Z!FsqM>I@p=Fc>T6 zr+w)kAhYu+yHKsOnfC=Qa;xjK21uw^0$KA&HkR*L!)oa~2VHILkFSdF-x6P4sZ$0L zo24vF0WV*E4xf57Qx$&EI^kJq{%W_16OaJ4y==%I2JJ1ImJPK_!fCv~Pz?Fs7X{8p zjMEccJMM-ERXdcYa?pT}L^Cq~TAH;dR+jv1^1$?A!jXE}`$8AsKT&5mTlL_VudNrx z3mo;m>elG4F6Nyr$N)U>M=spbB|Pg#)8F`P)>AP2us1zXk_1IQJGD=?ZS}ZG)+|5` zyZI&lB6NbTb5ir@ukWyD6E#eRkCpJn%cs~dGM~408rVCKbUju=qw_u$d+Ga}QM`4* z3y2W7g;U;<{}nf*hg1Dr!qomlo`E+{d*$gA2Dm-Y;LVM7CTfdmf&~RML(f^* z|53}i|1-VEaa>1ENs}$q>0pm7EX_#i;{!J1!epMF=rYCn!mp_N$GCrFdo5`J|D8vJqbc{q0YQDlaU_)^{V=-QR!4k4Y8bK#?mq8^!Hg>+3 zAWwH$GeWdwX?Y>(F7JLW>z%5gIxzX?WWK3!(!2r*wtN}eu5Rgz-SF}<@L&b!czL9j2q5Y)8iS$Sm9u`!>^Lz?JV`L<5yab1Di{PW{O)gA!-W^#V}nV=Q- z5F87CpVG8}QKi{VQBsj6mOmE?9U9KL@a};W{b6*hX>#7UX=2V`C_x30J(=OIYs|cH=5s8HIbeM);fM#!K>V zrN=c_{mN0j#e=Rv&3HONUf9Q7v(8p{mu5=dTyk7JrV5%2(*_)+r7}+hj#^I$;IYn$ zPHUsvAfW{Pj;P4KsV}(Zd!NKdH!)>9dU>JNS36jow9LfW#UX;*{hA$Qg@mOp4n!)u z@H{0ZpgQc?EhaWr=6K22cE2EFVp}y)h^?0`OiUeS#~MS4GY8A?Q`cie#Kyto;?MU1 z%4G3SjOdEBjqEbGXUhBfSAnx+vXj$*KFNuQVh#c=`Ada2`vHvPz0zT3>=HeAi)*~! z^MOI;s|#<6zK3-XDW_M$3t$Sr{=^J6#{PESBL-xyZQ)KrWEp`)YGsBYH|`T&J&DLQ z=!rSf>8|`jJrtwrTWd@AKi2N|XNumWrr|K}2JIgvnQn;(-NDvaw5-_G2+vdXANlv) zjWQF#AhjoCCRIhub>Fkbstjj5v%|&W^2z4FEXRsPxQRM>{X-Wsj-X$Ht}O_n44Ajc0a!#;mNu)R6Q}rM&{I`H zv%lbDbVm-Xr^TS0iI%H2fs)cwnvsx++qyE2DN@xFV?Eqx6WHql2fsl_&(oAphs)_c zxV_>#nXZMFJ*;|NwS}BQpd8e`xBPi(`09Iaxmp{}p6ND1Srx^E&lcmGjr?|^Wn zYBQDTR7)n+tGF?{y8mCE26-|x@O{THZY9vPC*ZMj;0Q+pnHieuB@j4uHV3k&Vs2rI#s%Ju_}T7fOT&6+dVB(M7@ zZYQKa^$xv^!hn1K(|J8kLiS5DUe89WaBkcG7$;CbP zZT&vabKY~#AHUxp=epkOoc9kefqUI+&6=4tYi2$(_q*qcQg}F|I5%$Gz>|>{SGjTH z=KPHtXgFB6!C$WL%m2D@gZhSyxabR4{moSDdNtMa_H;=)q9~+XCsRz!r#o&68Lpht z?2KZBpWIk__64FjUVjL=P>=|^Ljnsx1h5%PXJ;K;3xs;jIM}XCm-S7bPnHF5UwNK6 zt`}7tY0s?io>%!;7B?uSaaoU(-^Irgxq$}py@B2jrzU`>+}}#M_vcsYmsrMFyC=H~ zqG&h&4iRC2{vOODgr~?A@ZzCU-vED}eTs(lOy=g_0n)IW0X*S5yqtfZ-Jp4d`Df4# zH1mhPkX)!xZqSWCkEoH0e}5364o8Q~b2P6Eq6h$k0}{yp{(zMgbpxIvd6GiR{5bB4AO^6~RmJ|24KcL;`vdiRNi-}w(m4l(-KXi&Sk0XD(4WKT2wT5W`2Y40+X~=zbf>gc=PU zVi>@KX5I@y$>=2h20RRM&dtAyqQ(ykB7%UNlq9G)TFu9;@caN6|`zAU8LQ^y(IS`L|au9^np9PKoENDGZ z8H+>2*dcg431c_yhFrP~F92<0^S*H1KmYEJ*|js*Qbsh-tW(*s_#=Ah2Yq^slJMn= zUY>w7VW&CCHXnkiyfup&&nyyo>^_~I<`*}9U@ERxaX;E% z(9pFDyf_>&D79abP2{pp61cwD&*{;zZBQGpvSpPBy)RhMq*G-R>$boAV{fU;qlkvZe#}@GO zu3=&3<>^LQUzYt+=N@2n5+7qJqm6;*ZXnczs0$4Pr^92rfu2vT$cu#2BIX{8?&wp+ zK}_pngC_6(JXQK1>B3EUM%d=>?$U+L`W#QW*zf(I?>e6GVI>gQ@fEl_Sy*lpvxR7v zzqZqSQuyrmXt^Ff)(J4w;6y%Sh0Ww@(opg_em+*1b>IXhe@<1Sz- z91=Apny;Gi)^SYIAt2i4b6S(0u6GNs&I{cfE==B-X)?Ias-N=g()wM(aLqylzxcUw zsj-Zzl*Du5pjCD&r{w5I3T)gs?xLr&{sfE5$+mGbKG%Y(KHOHL)C$R5oV0wV-4D#C z>ubpEkWk5w1|FN7`(Zi~msjW8+)IXmCzr=F@e{U9dM}=M-g|bLkue`86}2XeoS5;ax|?# z&Gh^)-`3a%M_0||5S{U?wmE)>ByZGdrYo(Jp$0@9fw;s;466mfbOmc!Y6XW{U+8+z zboufpE>?5X<&*i;$hS`maBQxxF4=R!oN#pY@^MU^LwlXKCe3w=BQD?3r@glr`eGul zu>PW=_R#10d?vBhMv!W|KfCKyv1?v}rN@|pPP8jz2Nz}9kK|bTBOjos%6&B?@r5aj zh%HrpIB$&CVflfE1#ib_o_XqB_1wJqygt`MUYp^CKH=+osaHcQ#c^M?;R3IJQtxkY z9Z9Pr77m##spfgj`40>7+`L@I?Hh;Jb(6WQ`MP_eUqg1t{w$`W*iQvrz&UiYEg&0O zHTOy%)pj*jI9`h>;&dWcsxGy`|3LVXXw4D3yrh7eNQceXZ;%fjyF|@)dpCbE=tFqifKHEBO*!-}?17I@N!0#M2QPXOonnIzHU1&A7Zqd-&6u<1p2DJ(RBgz9Bci(NcoSLp}++DDb9X%76LTx7U?&P3y^{9&AIKK4K2;^Og`j`>frJF z!iF5Db?K=pt>eJPgMPUl8@1uN3W(0;T3s*WhjC2HV)Lm3v8v^6n__c*IJrl3b6ni3 zOXC0sT@=B+-KH<1U@x&t6lKb?O%|J}e&2*4vFtt)CiIGZqkY*ht(Gkt+v1Goe;55i z9(5I7rlcR>q4D1R+IS(Vp%6(aIBw=s#;cyV+#04K+-sOJ728d%1iw z6U^lQL!rdS3+z*cVCa0eT?>@H!zh49lgiN@_pe(?F3k1EdsJc;1a2){0<{|oI*y1@ zC>JAYTAn`+6#tnfH8SF>GBzqMfm^X-CM20!jGKOWeh1~)@}uz>l9y!OX@>GQOVXj( z%VU_#>kDgxPRJ95pk{d^bwer)<{Tr+V<@?EmK9TaFkt#Yd6Hr5b36dSw!dT9v{C@^3zUgHCk+A@6^f@;^-Z zqbYQ{t&Jxasx?*C4h(Ld3?%GMjpVBHng(}vQn?LcO`TYKDp~1MbtM_ob@YmAD;ssa z4}F$8V4<$V+m}8UG<`xfx}9n2`n^TEJx+D1?RZh|GPlZx6bE$1rMLZzvY*d2S9YpC zPWY?NiJ?H9dyZq@G9pV}=BqVnp5c?Q67}V+VQ-T}OLkPh@-q3=881HJ>_LsR!44`G z0tSx1(;@&I^BIl3I*5V&>5yIOS!098lK=7a2d#m&PTc(Tm`*jz4g_}DV)>p~jj0WG z?g-pd>G*uHx7SPWIP&&er9alf1Vo=$$=ggAY6#}9buQZ z89Oo4+ew}Bar z(B=Vq_M17_(k}@DnLybU*%HH635@v>1MfKPiuKNqzXq17KV-9!j@7Rkt-5V*E~9;( z*U8yv>e+5Q+uOhMos7dG>7q(hwPaL>czJ@)G3t0)-)vlXeS3m9(Ck)j|yfl``Ogi!15Q5B!EQ zCGwB@3$GD(o<&eZ>klejj4+hi&NPNKI&E-?j86_t4NLHn(5OQna8~DbCv$4WB=Q*v z;*;}Gmzjk{13gUk(a3Z5BUdZ`yfIxNH|=4TdfGHP>UlXt%;x->sznW>i*cr2%|n%C z?5O_kyyZIAhvShZ2D(UA=2P5z?-%4^ zV^@8ys8mEo8u-oFC)+ges zUO~*{(DabWkNOlQrypwATn`-0f1bqMu~Sjj;&BPOvpyrilJ8XbnXFWN=&s?W%tEpa z_ofzcl|s7bV=ulc&SoL6Eu5OYq;-X0m#eeTgY9AcH1B!kg-z%tx>XI3wwTE=>p9)1ul{4H~rvB#%Ip z5i>Ge6veN@9rIy6C&nY5VhY#~VACd8iGOF?RO>TIV&*`nYYse9f&`Lyn@NmBqQx*=@Aa_l80r5{ecFMSDC5GfY)wl;vTY}=_P8;UlX77RHXKgtIx9+cj=8umzDUv z-#6-wcgC>_$IB2ri5uwqoPZ_v&^r>P+jlAc=(b5jD%VW){HR!~%~`-J$!bYO_YMJe zMaSP|3q>x|PlT^_ymV=X8RpWC!{cB$M4f|!(UHQmspDMnqqwz)jEc@H!{(zARoqe0 zT`>x4f`)PhPiWNRxtw3y!Zy}qZEGw1Qylm564UJHNnJL!r*KMAkKZt7l);eBXK9}s z#I23#kz=j=${xFCM%X38;SE2^#yd$zT%WzuyJt4leL%|7h7_EBwe)g0F~^A z0i(*^FeESTZXyw*%=KLK(&x+&O7*98xaDfkrxv%SntsIfBrmq$Z6`@c)Xpv~vMtTy z*g31F#JOrUMLO|}HH2gi1gG*(K0F0EGW1>7yQvz0;h?rPz3NvnSIbdL3CS zBdb=HqA`4@N%4BtTvI<+`;57!cC-;gqFZOyxf>^Q`~yuR`ri8bJ|^L(WA7mR=6$P! z<*Dw@=h3fYJ=x&8A76eCON2ThOCki1#9kIMePzd&BF?>`4o5%@rOZPiD^HNM7JPLS zQS%@WyB0d?@YLGv@Z8tsKKeQI)x&27MxWwZ$^=64(4h*zrMUCq{r0VbY~mws1D~-c zzV2R|q%h=g22%zum6mv=&$(0EVEJL4ZR0fUzL`Rlno{A@zBHrt^4C+}1u`RC%09%} zl)?)XJx_d#`YVl;YO2~r9E>u`plc^9f=|Z^E`~5HhBI(eWyy6^9R1?-Xq+eXOW`rU zZ}-ah)Za5S$%}+>G;NUoh?r4K7G?HFX^=fJN`w0H?9&cN1oUyJ+>GH;8LfJHXCxWjtJ0DP zBjTpkBPoNLHM_n-N#8@Yq>2&%&MT2l(&`>b9f?7H^zB#R`&UEjp*!WsuG7%~bP@Pnoz1;*2yXf9-`7!r{JQ>U@g8IyBF1Of3;d zJ3q(gV)y(`lyv#`7ADrBxH?_3_@v(HM@MeTPoXG$ro!wX?lZo$x$F^OJ;3oy+AT z|FcOWN`g^4q<;BIHiUmu=@ZYx{V>hI(N5OXo?jZ9vav!8s*elXVdfDwzN~Ih&bdMe*4r4#@Z*7?77#A`~dAYdEem37Lj#lCfUw150 zTv}VcH=d@LS?h#!rx`q=OcPWapPmvMpB@+x$Q&~JR-6B!Q7-vV&~V-G68MzH9ixf% ztFcaD1Ilw(rt9%+-r_#&PKCjA$dZAUR1ds3b?dF3liM_2BaTPiyUU^X3|rZ9#pNF& zK@1-kPBz_BKH|6`NywM{^KvV0Z!gJA!hp$gv|O!?zd+ctX^Mx}t4S?#BY?*_yM}nv zjRC26zEA;aUykqPd!43p3exg>JGV?l;~Oiv-Pb0=W_W9{0zcpVSHIH6qw z(`4bPS-49^sq=7u54R(~sNP~$djwSzce0hhad&4}D#Gy=j-^H+S#m{OgNIK%ak>Yi zQOlje_}_`IKt@bG(x@-j>u2b^ZPO+Pzp=T2&&8`cHz8~0;m%tBm zEF5LdXQj?V{XQdk6Vh=kuFs3Us0t6Pzr1f|d54>;X~^oip&+*sxTV;s$HJfGy7E(` zkHD>#_GhP$6BLXJ^hOQ$wY1jTICqC1kG`{g(1k+OGV3K#ih3zD^F7ln!7G!vC)Hd( z^w(uda+MXaOYu~Jhp^d{k+#c1f2+z_YlwO#Q-Gd;EK%?Gm`DU6U+^EuhZNcPy6cyv9Hi2&vgs|1GjE|BNwkcvP_ zR23wcI#3CwlFXPkDC%|%1__LBuTaUW(O>Ooe^NL2sN6{a$X7V74gQGf{!hlpTKzCb z6ChdgVzpQ;k(fYj0DQ4Zi2hdkZ*Havl?Qrkhsw_U&Ajm3d<^D!q>Re(h@kz=@ep8x zSnvPU^o$9^lK;PI0sbdd^FR5k|8_~ebbdpZxoj>}E)nD;$>M=$QG*?BBF=#HROO}C?;SSbldOEUFkX) zKE1jmhTq^_1kv0=q_BRP*O8VuPeq401sVfLRp;Je#uKCFL@y25N#eB3vKlMR<0UDC zgJl4inoItS-q+U!9r9{hvmYeWL8|;n?%{7t^t+G~0H!XETNZQn1vv4M(#v;>P?Lk& zlQ+mH<$x65kewk717u2o?{)E98;zE~}; zUkWfhiV1?_|h5scv_~LxV`ifvS}!&pO4Z=ELazyQh?38|6wAhW!&!| ziq=r#cz~9VR=)y8LDUyu`JMIz=vmA+ml-d5qqeXp0N8a*H+U$pGHDb&k&AostS^uk zzyhxU>W~RFlU#+N)sngoepW7hGY3E2?-N$&V^lAAd_3(@%wgUy4&48h%;|n2F!vCc z`vqZ+7uJQ?ED$mmT0KBTd0lrtp3dO1REyL)t{PSrErRs&CmFCc(@7F19PG~>Hsj?o zLKizN@;;5H%gJG7YsXkFTa#KA!v%@WX+JptB7qKA3;85Y>c9Y_= zoqht~ec1> zbW)qo0Xl#s4631s4GW6$KmkBRZh4C>6v zD9)fB%x9QLuU$ps^M^I%nRQ_F^r?qE*5tD^+|_5&h13|zi+t$jc15h0`(R> z>Vd?1j!~yaDH{=UEx}#yX+UL$R|_7u^!jk&m>xsxZiX8Q!&rR;P9qQ6T9D7#D!s$~ zsm7=4rg*jem7tVj50tMYv2jm1MjxyVb;)x({9WS&K$i?*B{uUu}E*{WCfWfU2$yI;~e`+ zUd{!y1qNqDMQ%f1)HYaCnl(}SapPtaC>~RNkT_mp*#-Ww_rB?V*509E;6=ypvK0eL z5)$;{75P>l?r$WpdMUl4evK+W^NmE2hNC!aZobZOrrqBW1%uArv&+>&ZB!IxlO7v_ zN|mR{r)Gi?LT9f}K}ku^{b1Jm9W+HAi3{`lD8@fWu`py1n3>d)yL{^mjtk+Sa3hhZ z-*ZVX1Wlw2g{7bYd!;D)u{1fZ*Zs>~I$7zdTBoHpGFuKZ=f$36Zj6Qu8Pt-H9d@8v z7{3yQylNdc$2nKyifh*xS3wcQ*ab`}O+aQO7wwNtMvnyA^EM&xW8=}dWrR+VN_L0< zI6kIS=6{R+u(*MHv~V(>3f9xsL#h?)3;uEmKb-L3`D4+kNr5{Rxllmn{QICZRjf%O zPt^bRveMz&(B_MbJAYOP0GQZ@orvYo7rNr6EBDI6H5To-lQf^JQ_A$z<-fDM2D1>r zat8W=t>Z6{nBvU$zC8Oh^VxCQZN<%1G6{uE-SGQJD1s0Sd%00w9#YI_KxEL^@m;Kg z0|Ny~8l$7ZkP;#Huu0Ai?tpqU!5VkN`DHvC@UMN+rZvBMmv`@xy?$#;^7KV9QNXC> zCm~zbD#9pS1UI(mWc^&iM4>AYw~*AdcyGR|>p=1i++C>|uiu>h(&ZYv0cAZr4*bwU z+>S<+qo9o}VjrtzO52Z*Vq!D-VWXK6;VJw|0mz#e%_d;Vje2y5cm62yU96E8@l~ z8M#0kpoEhrJf}f^zoRC*5Co}{!zs26n>@TtbChK8a$F2?i||W~{?AR7*=F1Ldl91) zd6RkJ5D(;7?bDsGQIhBXULKvsnb@s(K~ms?h`^=cJJh3x_30)J(hr*`f+rzE)_f9T z=pr+B7#>wOO^wvw$CdZMvU>@S?Z>Uv!_ht2{9tG?{;#p0H90iKl|dDe;LG>Z6}79q6-}1mfUjphx~h0HCfi*&J1tns^mhzY+3fX zT<{I3Sx(NBpEzP_S59NoQBMR=1U=@nLADs|z8N7S{|`6j5dI`zV%qR%oa685&pfF4 zFWh8k_&AaMEpUc~0n8TFnL3VDB9)SuSGeFa?!u>0icT;fsKWh26jDKCTTqaU|m4@>pnW~ZnwRS_;l{~X+809-i{(v5>oDrVTOT=H3|gh#6)s}Hm`?8_zqVe(nT;uJyQhb zD7e|GGm8CR^yE+ley6qpqi&rS^$xjV$^1&DEM701H^*Qmvhi^Pio9cpqLBR@W`o2w zHR)i-dL3Cx2l=)i8(4N$edSjT+!Y-NGPwNY2fEoqyci95_sVOf(v0rdy{NnM6vA8Y zUo`}Gl_?1@#p^lcm2da!Gp4B0w1{4!DlF|Isjf~om65wGMpXtn zt`zf|oHj49c}?C?HM=O-wcj-%9xJkyppd#~y12f|P0!l@{HxUJ(7}F_E?zpl(xs!u zEG?12W?lGH{I-1RqrQel#c?j1hb>#Hk0o%3xxz=G{RZCW3d;gV)ptBz#^sg09+b{= zn!~7E*J)^l5^~ecO3^GkJS;UMfN!kzHW$K#-pu;SQwXYUrJwk6SPzNw9dAC7h+w>1 zrKHm|$=I;H3R|DiW%X~v`w-M)D=jN+)aN8Op_Ap1uBh_yB`Cb`zwbxgL9re8Nn*a;dVj>Ai{jQ+^vJY_f$70Eec{@O9P0I<5($Te0^IwLU&?iWT9of} zHY+65`g$i*e1`LL)&k_Zo%RKHNu(}LbJOK=`T58m7@3B}u`{Mb!4il?VFlUH{|B=`kXw?dvSF@u9J9t zBJ1XO=&aBqJISzRhX4qDDsq>x z+6n1k)*G#SOHyV*hg2@oZwlb;aG7JKM6>!hh=JGT5Zmhw5eDso$M6&myC@ml`_jiH z3rj~q+#SDJQnTM=EH0RuS&XkG(IL49YgKZN*XdhBDFY#dRaw|43W!s38l((;$q4+S zy;0csz$??_S4u0}%NIVdHbwk8I5|J3msC6d;ufWgOrz&1Wd32s_W1(A>ND@R-JZsI z@~Z=KHnyWrf84)fvC%*n6tLt!hjQHAB)Odkp#z?}Cqa-#F5AW~e*_ zC+MaDoVjXv;{LisD^~9!VV=!?ts_h$^6pUN z=DpAgap$dZ=1ok3xTQWp*2oAdrt5|S6)8Kphgqamwmv7{u^NjyS(FPB1UMYuwB<{^ zTWfd50o+U?@U};KM$|_JXW}Xk2A+(h`^0X!9KF{ta2*=rulZ5mn1%b@onVuBWah+R z;md&tB3f=H-TP8a`*4*$-@s?;--FtmwjcEr7e+(50}`s~q`sZwHYK-eqo$TBJ$?V# z^C5XjBdb8x2t=#q09%RNPLa(0MUlD|%S9iCy|w>(*5s-Q9qePFV95&y`^qKhOqEs4Pf>zSQggzqu2H#a!z9p|nOlL_8+ zO2HA=lh?UnWPJL|Jt^@_eTXvu#?5u>{su9Z)63%qY?tBj^K*TYU$y}PwJ#Hyh;0w) z5d4;#*ZWGV{N|2xs(ybpN zF3#m4)Poev)Ya?|a&NOVgjmkPf|v4+Wr*iMn*y8D^u0XI8pF!&`XohyQi$aYvEX5O`PM|=(HC>4;>$-$ zv7!0uQ95hGv6-Rw6)Z~B>U}j;J*d2o5}zbL)&HW-!!%Lt#)Rn zqHKFZcAI>y%qpY6@jUFU&tWS%D5HZm1 zOWlbcP!t+dn|%8l@h%x9h=>GNS1JMxsx_Wi7z~L?Kp8WpYStC-iV(1{!fk-K|9HBw z)NR0&R?@LD?-l9djV4|Us*QN^I&mTpmJUL7rj2CM0 zFtaLK<+uroW=N|_99Cqm8B|d+`4Mj*n|yw|v)#bcoNJ-_s2N->A>-TcPC+l_TxIhzs@L$h?poTTgV~tFcMXJJ&m|UEs>|Y$HLdQ}Ksw&H6PWZ5kII)ogA}u<xh<+^) zHtf(?GIwj0%{{FC@|V>L9HlCoKC3nP zmIaCINycp=ju@4d6_QHx5)ia}Y#%YoZhzDA@f|q%)5SDL?mO@eY=kf8ywha;y?Nh^ zgRD9bibX57a=e9jC=BL;U`Gf~{;f^+I$Cq!j9#Pbze2H|xeBOZ@w>Bf!GO_RKT!}{ zBKmWgkC1^V(c90QfCgXwGn*3!2zXd7w)R^89X>z|i%&6f1Os@UX2AcK z;*z|RrTWGl!oR`C|MuGqtOl6 zW@lF&*b<>dZk=T3JJ+&MW0lk){u8}M{D&uR{?|fNFq`y}qIJM1tXE#4?$$d<-9miP z_-d^$HFAq~>)$ai&wset48>%B!4Qs;1jGML5-RSZRdRl~O?oO|Hdrh_5Md+_JLe|; zL-(1wCH&gUV7eAWMWwZmN8F!SD^; zR|KRLQGHi?psh<5vZlcnR)E*Dw$j8mk2k32TNc7XJvYC1%D2_ic0(uV`SZ(3^zXDTd5IzjIhC?`5G znk1w}_AdBB_|2qxAP~)Z*OE!+3G1;4alI0-ryu02bdWwg9YOb<@0dNGXz;hOe{Zya z6sO7P*H?+Aw54g-U}egGR)6Ys=C}$HrxCDUE3J`2XP@t}>IseJQ5LmPMe6*RW{ZVc{U=_Xykc;?OCJkB8Ibju> z``!ipVAoGbvSaldkw=S;20W6CTk$qN`Quvn_?91Jg3ig6H(->P-y+EO+h)}aOXz*( zQo#=(b5ADv8Fce)^4)Wk`W8V}*}L;oj6i0gEqp5VX>-M4>TC!RQzvL*iQ~Ws;4wEQ zAp)AQ@tFh-jeGKqzrguMnM|Z{XAHxq?K1nUG+zpCt3x!64FO8+O-(rkahC%4D1#@`d8z~f= zVj?2k!6%>#kS$!C*f@`=dhvtYVxn2vGui^;N0*tO3Va-Kl&*`EGbM9UYv8^}4Ke99 zyoC@|vRWY6pR!mP*}rIdi>SN~!=z@0iGDEQeVKhf5^A6oDN(8~lMBA@teOO74g z(J1P29jyosZm$j~33KMV6*nAdJCxn48;FZb<##EXbX^EvU3JCkJKO7Gl>^-y-SMBS zCaaZiijq*v_bPyq>vS?E8Et*t7rFxYz5P7VW2VD%|>Z6y6AMpC~NXa}Pdk~kR9 zVR+M!gG=ivsd2ud>Uo^ik>d0h#rji|)p^}=qB&q7Sg zZ`1g1jwn1lAoJu=E zA@JpPvab-qurOaL$@b5cmum@4r^{q+sK!L$>rc^PjJS7Q=U4a|8gsTU&V9 zj;GV`)9D_#1qk(aI-&#s+Tmt8h=AO5Y8iG|1ZGG2>af^H;`PB51tUD=Y;@GFC2w1T zqt_QA1?vs#$MB0|)=4TB1#Qb!pcl1WLhi*Oz|l5{ew=KAbEP^F{klBjpP@I`KV{iy z>e*dgoa&WJs<8r;M*n$tBi`g2i&Il;P_n5vox<#k?$|=$m8&_!Y)WP1gASol)FXe> zl4q2x*M()b#l8}D^Wjs=;U~XX-M${Bm2x5W5D4@r{YZ+G8ads5lY2u@wT_t<=`5p+k4D>kHE<<;D`0ejXEvx| zDbdOj%dQmpn93Y&LwGZC2Zo$(11~W58S984qUj`0I|yH1uO8$A4(Z)_(=uJ+IDQwt z5kr1RE9ZNeJ3!?gFk1HjOk}iLP8TrBz`G`qbmLqpm-_;%g!{s-W%`Zd1P**7j`|QL zgBnlf9570DRsG7Ar`8&S##!$DS=7UCR|Bhf{P2ymYeFRf8qlm8tCB7Iqb-~)`*{X@ zi!2*M3SdNk+M%KtRCA<3!`rA2AKnjNNL{e^Tp)2LC>AhY?1-`-(Q~P>eSe=EU_}&} znTCUZuleOfv(jrv(z`cloG~f5HzLwUDhLP-ih-9yLOaXzPij@b6~bsndxGILrmI8_kvp}2bSM&h$cNP zr+8Kaq8risb%3wmKq9LeK@OumV-NO1TbIZRK{(!x!amAZX8Q*WzkEvgnvphC+&B}F z!c5!Ek}U*K4)(S~3FAP7Cq1o+gmHSA>E~D+a7GwE_nW@J`t4b+KN>+4)g`gm`uUDP z_yX_~zPID?FT^obK<0J7cgw)#Uj`r!AW?L*pYRi56#)BPJe?1UHjB&W1Or-oe!!(? zjiIOW>2|S%QN?0BlEQe{G>Sr`)pLu9OBQ$mJQ{WmrSI>$%8ReP>kxs~ux1$@bbST0 z(E5=nMrdfu!jR_Q0ShHRRw4v0Bgxb?JgJQr_6Od8A)o#)Lqvq7s6wPMpyrQgL&dm+ zgz+$GDyi@$zj~>gGrxo65((22K>a)dZQAWgFa(Sezxqf>L-TP0a}8t11ETkE=R4|RK{l6ma> z6>E1!0GOj?HEm$m213%Kr4T?89)wl_54blJ9-V#$(6H3^k4zblfB>cgh-upJJfdZU zEHG$}l%M{V{f!MQ@Hs?E58=kOAr$O6f(GBHd;c>70<5F?@%Qjr$iCI67yfAxM!={G zO@W-Ckxgg5fK?3+G8#CEH@+m}1gkcq%4m2x@p5tKa8$ z5KLNmN45a;X~L*Z+J1d;(||Xgd88`$0v~Xve6iY-slzH!LKEetmHL>9kT<(t&01(w z5|4mHHPe0)4!-<`7cAIJ`xYWa-ErqvJZeoX%>veLL~{jGI-;JLR!uys0`YqsEdp{E z0cQ(-YITRF)0t$h%JT%J>RT!{c&%z~4=Oz1Hp z7|_$5bX+T5=qc$FY;17}#1NhjBW>{IzB#vSg7jJr0l8AT` zG59;0%IY4FYKo^mdhKmE`R|=yr|(fJdhU0p4!pa$0)H(_i_E~LyM_Jq=9JGFKlE4V z&e(Om4*Bd{R{8oXVnBfGKzn*P_|8liZbJy=&D0Mzw6yFJ;@s!62qo%n!1ajN!!RTi zPoU+90+3xv{NX9?Gn-L;{D7i+aPr#sY#(o+u1(~3+#UH{r)UwtZI7j;MZNl$*<>q^0PW3h+9PN0h#}eOp3Z43HC!pS@x6%Fl|RDlwtE3JVm9R1OKK5 zItyVGvH0R&J6c3~M|9~a7I+!`-R~vHKh~_C?qhl%frR)BvkfaPd%d;L`$7yoK)auO z-JmlmjUuywcCfDwYEy|Xe*%te91%jB&#>&U{5#*nB}9(Xuaw0Pwoy0S^Kh2a@90|K z-5>4zcftK79grw`JH=N~riut$aQz&!Ms^dI)F>fYABbsF(cqiEBvJni{HlZNW|9}+ zlm@TCRySWl3~k-|Nzqj#L~^rOiK6^y?G3&t-t~3%2Pbgu#zT$TS_C9FRA41g#2(#I z);$X0$xOQ>z9?cpB&N!TKuJmAEZdYC%g&;@pAo$tWd(c)@jd}1Xt?4CC;&M_<7xFt6AY{5+DM#$=6$S4%yBwC>ZqM| zKLX9}ia5l9G_z!A%2PgkSYVq+J?#%4P=L%Sl-?cNuK@j1?REJKkWjZ7r#Wyz`a3?~ zxH$ts%wG+7gX8qoR*3TZDi)kPMe~=c2YLZ+MMHlKsO-6rrdAohm-qeb*~IVY6>!J( zMfFpo+oy_Tl{2XL_Z+^M4_Kvs8Q?loXPdh)nL-E} z@L$jV=KA}5jvCAiiwHv%egBu?e}4UM|8$;*_p8f{&?=X6O1E~UE+r|OW|E#xyK@c- z8NZVx1XFF0P!eP=JU@!Q+MJNt=C`Sux{pEg9>wU3zl_GR<6+}{n<;{TJ#Y*nm;Lj} zhfZWf^T+>i8hloYrcaDlGJq%MmC17`5C%VF9;7Mch8y>b}j9&1cg{wQyiTU^!9k5bTS z{IHiB7sbbEDI1)lkk$Q;o{}qv%I8!9RT=O^r$KxAd{LD_xxQLg|I!oGY82_ZPrJ!D zNaJXW;KGnM@yMrwMD7Ev`2hEv{dO~PX9o=hU*>6Ls?agK_>Fb?a=^@fw?=L8w_&UC zRVTd_^RUY9Dz8ob6W2Wk2JI}w3l;=;8Eh?{&QG*hd#MZqhZ=HZnJZIoS7iucFF zH;u7%RbwU@X-JOYI~on!*MU!7j9V_%IIU-SCbI3V_}#L972C1> z2^wnXwCivdD!P6fG-rEt)ndPnhZly>dYg|XXtO0iB5d1uP<^PrI#LwA*q1KcZrqvI z0MK*MEsAITJWC{(=Q8XjtFMO0p{kA4571~aX+WQ-2j9}A&xI}C#RRPrp zcI`j>{V_Y2hVqlIh2PA6y!ZIM!SqFh`%%SJKJ<}cWU!TVugY!V z=QU%Z0X*F14lGz%;9Dpu0g!c$BEF9HGy_N6=@XU<{w}t-Uue+PtPIO)HqTv3z*zf~?6gfoANzlF zbN2sCu5lc%S0Onvl}gT%P{Ij$Ch{Wmz*1|*X3?-EvlTWEGjeDt%t;=SA*W2zkjFN& zo`lFlVM!q@jBw^*7LLxPI_Hl#_ixvI-S_Ld?$>>Pzt{J^zVGkH>MTxam)1ULOcZN| zM3d%+s#~8e;f~o4AMnOJIlD7Vv^O&s>B^d)&}+=pxlzQsUekY(uo!$|uX1I)^e1Xz zydI@j{B+#q**zHrSM^YCe{h}qu)y^izoEOZ70P1pb*qUlWIYYB@yt__E|tjQ~0(29CRY}q#)?tQRTTrbY@KQ_pOAjHv z^3mLQi~jJC&DdgIj!_PrA4P`*MqvDH$ZxO_QLPHN8=2&>J>`^SwPS^7qM1U6#R?G0 z+pD%4vI)4Q&GrP#A+=Ke@dnDIuJg7P>RR}hbIu9Ac?G>$l5@w8eMwuy$EEMkp(g0R`Z!5G^yqK=({Eb57&5D#H& z#55mA{)?IKAgoW-HtuH7B)88$%9vm7ZZpPM7vXF|+DdF_(I1GPeD;$G@~V+1og*%O z-Kc626j|M#K-TAuJ!pI^ZBH1Ud=?~r;}|5UtjOWxkxol@?4!_6)&@&Ng)PkdxX(Rz zQz)H&_s2olzHwjNHAAqn%WDXb@sTH)ek`}`DXQA@rH}W(g8~c0CrEWU7awJmV2K|& z#c2lA3m*|}g1IW&lXasb*+M!BIdY4Yq1Fnfh4ero22L+T&RV6yG(UKnvL|hABd`r2 zLMAgzKQDl`baX;?UI}edE$IvUoC{PRmMip{I~Y*^ce#CU!)CU=$}`A|=-XeMC~$Qk zj=%rFYe|COVPI;{kwp3~-S2PVp(ElcYC#03rfuo+HnrK9vN;tfZ2>u;kXsjZCBW#0 zrh7i(R32ZbTp>My)IeLqMAJ#WIkpbEIV+@2cV6FpY;A5QwLUMJAb|6@-mls)Ay{aZ@d8tM8EpCCW(3-rwD>G(E~N@yv?laJ7cw7 zT*KFqc+W-?@t_Ruv$W29z%M%Q3(Plvu@a{WGU_8^2di}eFn@C^RwYfl{g7Umk{Xdx z{1(x!+dS?yf8VWy$t#bh*=q>O#gyl|9%Yva{fp#=k~8oniP7_b(S#s_3797;rUL^N zGU$rNW^$J*D%>gd52G?lP}%?{@~6mEPz1eI)D)ihnH+9Mm?;U!fAtPdOs3eTZi>6w zOn1#bNRc*Ynv-PZXx>ynip)&IVUOZ84*Elen&NNA(wV^V+=B#OQpr}bU2S2Lrz?LFD3g>d4fKJw|>k(XC3-K-Ozr=<{y ze=ZTxR97_BxrQTl;@m@ZzgT=kUJ5J!^lIPdtg2GK4U(7#h%J~M?}nbd6K{kw4>=|{ zM3ZshH#ET3^WLssOb8(UEOSf~A4v!CXLpnF)Kd_Lul~5LS?d7oN_jWL4SY0q>zr#e z{*Kxbucfc)|Wf{cPez_lZXED^I1Ipc2oBv(@qq%DM|Ce4!yRw4}sFN{?Jrp}d vOU+5?^112fAokg8$hfuc`}v~*o!{04HGXL^dy>9u4LFWD!j6>K`~3b7aurXb literal 0 HcmV?d00001 diff --git a/examples/tutorial/tutorial_notebooks/img/read_csv_perf.png b/examples/tutorial/tutorial_notebooks/img/read_csv_perf.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5f7e8ff6303ee57a1b97935f4f54ba982893a5 GIT binary patch literal 12948 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

Scale your pandas workflows by changing one line of code

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 1: How to use Modin\n", + "\n", + "**GOAL**: Learn how to import Modin to accelerate and scale pandas workflows." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Modin is a drop-in replacement for pandas that distributes the computation \n", + "across all of the cores in your machine or in a cluster.\n", + "In practical terms, this means that you can continue using the same pandas scripts\n", + "as before and expect the behavior and results to be the same. The only thing that needs\n", + "to change is the import statement. Normally, you would change:\n", + "\n", + "```python\n", + "import pandas as pd\n", + "```\n", + "\n", + "to:\n", + "\n", + "```python\n", + "import modin.pandas as pd\n", + "```\n", + "\n", + "Changing this line of code will allow you to use all of the cores in your machine to do computation on your data. One of the major performance bottlenecks of pandas is that it only uses a single core for any given computation. Modin exposes an API that is identical to Pandas, allowing you to continue interacting with your data as you would with Pandas. There are no additional commands required to use Modin locally. Partitioning, scheduling, data transfer, and other related concerns are all handled by Modin under the hood." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + "

pandas on a multicore laptop\n", + " \n", + " Modin on a multicore laptop\n", + " \n", + "\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Concept for exercise: Dataframe constructor\n", + "\n", + "Often when playing around in Pandas, it is useful to create a DataFrame with the constructor. That is where we will start.\n", + "\n", + "```python\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "frame_data = np.random.randint(0, 100, size=(2**10, 2**5))\n", + "df = pd.DataFrame(frame_data)\n", + "```\n", + "\n", + "When creating a dataframe from a non-distributed object, it will take extra time to partition the data. When this is happening, you will see this message:\n", + "\n", + "```\n", + "UserWarning: Distributing object. This may take some time.\n", + "```\n", + "\n", + "**In a later exercise, we will discuss times when it is not possible to speed up the computation, even with multiprocessing or multithreading.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Note: Do not change this code!\n", + "import numpy as np\n", + "import pandas\n", + "import subprocess\n", + "import sys\n", + "import modin" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Implement your answer here. You are also free to play with the size\n", + "# and shape of the DataFrame, but beware of exceeding your memory!\n", + "\n", + "import pandas as pd\n", + "\n", + "frame_data = np.random.randint(0, 100, size=(2**10, 2**5))\n", + "df = pd.DataFrame(frame_data)\n", + "\n", + "# ***** Do not change the code below! It verifies that \n", + "# ***** the exercise has been done correctly. *****\n", + "\n", + "try:\n", + " assert df is not None\n", + " assert frame_data is not None\n", + " assert isinstance(frame_data, np.ndarray)\n", + "except:\n", + " raise AssertionError(\"Don't change too much of the original code!\")\n", + "assert \"modin.pandas\" in sys.modules, \"Not quite correct. Remember the single line of code change (See above)\"\n", + "\n", + "import modin.pandas\n", + "assert pd == modin.pandas, \"Remember the single line of code change (See above)\"\n", + "assert hasattr(df, \"_query_compiler\"), \"Make sure that `df` is a modin.pandas DataFrame.\"\n", + "\n", + "print(\"Success! You only need to change one line of code!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have created a toy example for playing around with the DataFrame, let's print it out in different ways." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Concept for Exercise: Data Interaction and Printing\n", + "\n", + "When interacting with data, it is very imporant to look at different parts of the data (e.g. `df.head()`). Here we will show that you can print the modin.pandas DataFrame in the same ways you would pandas." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Print the first 10 lines.\n", + "df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Print the DataFrame.\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Free cell for custom interaction (Play around here!)\n", + "df.add_prefix(\"col\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.count()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Please move on to Exercise 2 when you are ready**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorial/tutorial_notebooks/introduction/exercise_2.ipynb b/examples/tutorial/tutorial_notebooks/introduction/exercise_2.ipynb new file mode 100644 index 00000000000..65789ed3880 --- /dev/null +++ b/examples/tutorial/tutorial_notebooks/introduction/exercise_2.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![LOGO](../img/MODIN_ver2_hrz.png)\n", + "\n", + "

Scale your pandas workflows by changing one line of code

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 2: Speed improvements\n", + "\n", + "**GOAL**: Learn about common functionality that Modin speeds up by using all of your machine's cores." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for Exercise: `read_csv` speedups\n", + "\n", + "The most commonly used data ingestion method used in pandas is CSV files (link to pandas survey). This concept is designed to give an idea of the kinds of speedups possible, even on a non-distributed filesystem. Modin also supports other file formats for parallel and distributed reads, which can be found in the documentation.\n", + "\n", + "![](../img/read_csv_perf.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will import both Modin and pandas so that the speedups are evident.\n", + "\n", + "**Note: Rerunning the `read_csv` cells many times may result in degraded performance, depending on the memory of the machine**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import modin.pandas as pd\n", + "import pandas as old_pd\n", + "import time\n", + "from IPython.display import Markdown, display\n", + "\n", + "def printmd(string):\n", + " display(Markdown(string))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dataset: 2015 NYC taxi trip data\n", + "\n", + "Link to raw dataset: https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page\n", + "\n", + "We will be using a version of this data already in S3, originally posted in this blog post: https://matthewrocklin.com/blog/work/2017/01/12/dask-dataframes\n", + "\n", + "**Size: ~2GB**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_path = \"s3://dask-data/nyc-taxi/2015/yellow_tripdata_2015-01.csv\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## `pandas.read_csv`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "pandas_df = old_pd.read_csv(s3_path, parse_dates=[\"tpep_pickup_datetime\", \"tpep_dropoff_datetime\"], quoting=3)\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "print(\"Time to read with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Expect pandas to take >3 minutes on EC2, longer locally\n", + "\n", + "This is a good time to chat with your neighbor\n", + "Dicussion topics\n", + "- Do you work with a large amount of data daily?\n", + "- How big is your data?\n", + "- What’s the common use case of your data?\n", + "- Do you use any big data analytics tools?\n", + "- Do you use any interactive analytics tool?\n", + "- What’s are some drawbacks of your current interative analytic tools today?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## `modin.pandas.read_csv`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "modin_df = pd.read_csv(s3_path, parse_dates=[\"tpep_pickup_datetime\", \"tpep_dropoff_datetime\"], quoting=3)\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to read with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas at `read_csv`!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Reductions\n", + "\n", + "In pandas, a reduction would be something along the lines of a `sum` or `count`. It computes some summary statistics about the rows or columns. We will be using `count`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "pandas_count = pandas_df.count()\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "\n", + "print(\"Time to count with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "modin_count = modin_df.count()\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to count with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas at `count`!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_count" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_count" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Map operations\n", + "\n", + "In pandas, map operations are operations that do a single pass over the data and do not change its shape. Operations like `isnull` and `applymap` are included in this. We will be using `isnull`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "pandas_isnull = pandas_df.isnull()\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "\n", + "print(\"Time to isnull with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "modin_isnull = modin_df.isnull()\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to isnull with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas at `isnull`!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_isnull" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_isnull" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Apply over a single column\n", + "\n", + "Sometimes we want to compute some summary statistics on a single column from our dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "rounded_trip_distance_pandas = pandas_df[\"trip_distance\"].apply(round)\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "print(\"Time to groupby with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "rounded_trip_distance_modin = modin_df[\"trip_distance\"].apply(round)\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to add a column with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas at `apply` on one column!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rounded_trip_distance_pandas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rounded_trip_distance_modin" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Add a column\n", + "\n", + "It is common to need to add a new column to an existing dataframe, here we show that this is significantly faster in Modin due to metadata management and an efficient zero copy implementation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "pandas_df[\"rounded_trip_distance\"] = rounded_trip_distance_pandas\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "print(\"Time to groupby with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "modin_df[\"rounded_trip_distance\"] = rounded_trip_distance_modin\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to add a column with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas add a column!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Groupby and aggregate\n", + "\n", + "In pandas, you can groupby and aggregate. We will groupby a column in the dataset and use count for our aggregate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "pandas_groupby = pandas_df.groupby(by=\"rounded_trip_distance\").count()\n", + "\n", + "end = time.time()\n", + "pandas_duration = end - start\n", + "\n", + "print(\"Time to groupby with pandas: {} seconds\".format(round(pandas_duration, 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "modin_groupby = modin_df.groupby(by=\"rounded_trip_distance\").count()\n", + "\n", + "end = time.time()\n", + "modin_duration = end - start\n", + "print(\"Time to groupby with Modin: {} seconds\".format(round(modin_duration, 3)))\n", + "\n", + "printmd(\"### Modin is {}x faster than pandas at `groupby`!\".format(round(pandas_duration / modin_duration, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Are they equal?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_groupby" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_groupby" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Please move on to tutorial 3" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorial/tutorial_notebooks/introduction/exercise_3.ipynb b/examples/tutorial/tutorial_notebooks/introduction/exercise_3.ipynb new file mode 100644 index 00000000000..6de80d3175a --- /dev/null +++ b/examples/tutorial/tutorial_notebooks/introduction/exercise_3.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![LOGO](../img/MODIN_ver2_hrz.png)\n", + "\n", + "

Scale your pandas workflows by changing one line of code

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 3: Not Implemented\n", + "\n", + "**GOAL**: Learn what happens when a function is not yet supported in Modin and what functionality is not possible to accelerate" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When functionality has not yet been implemented, we default to pandas\n", + "\n", + "![](../img/convert_to_pandas.png)\n", + "\n", + "We convert a Modin dataframe to pandas to do the operation, then convert it back once it is finished. These operations will have a high overhead due to the communication involved and will take longer than pandas.\n", + "\n", + "When this is happening, a warning will be given to the user to inform them that this operation will take longer than usual. For example, `DataFrame.kurtosis` is not yet implemented. In this case, when a user tries to use it, they will see this warning:\n", + "\n", + "```\n", + "UserWarning: `DataFrame.kurtosis` defaulting to pandas implementation.\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Default to pandas\n", + "\n", + "In this section of the exercise we will see first-hand how the runtime is affected by operations that are not implemented." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import modin.pandas as pd\n", + "import pandas\n", + "import numpy as np\n", + "import time\n", + "\n", + "frame_data = np.random.randint(0, 100, size=(2**18, 2**8))\n", + "df = pd.DataFrame(frame_data).add_prefix(\"col\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_df = pandas.DataFrame(frame_data).add_prefix(\"col\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_start = time.time()\n", + "\n", + "print(df.kurtosis())\n", + "\n", + "modin_end = time.time()\n", + "print(\"Modin kurtosis took {} seconds.\".format(round(modin_end - modin_start, 4)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pandas_start = time.time()\n", + "\n", + "print(pandas_df.kurtosis())\n", + "\n", + "pandas_end = time.time()\n", + "print(\"pandas kurtosis took {} seconds.\".format(round(pandas_end - pandas_start, 4)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concept for exercise: Register custom functions\n", + "\n", + "Modin's user-facing API is pandas, but it is possible that we do not yet support your favorite or most-needed functionalities. Your user-defined function may also be able to be executed more efficiently if you pre-define the type of function it is (e.g. map, reduction, etc.). To solve either case, it is possible to register a custom function to be applied to your data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Registering a custom function for all query compilers\n", + "\n", + "To register a custom function for a query compiler, we first need to import it:\n", + "\n", + "```python\n", + "from modin.backends.pandas.query_compiler import PandasQueryCompiler\n", + "```\n", + "\n", + "The `PandasQueryCompiler` is responsible for defining and compiling the queries that can be operated on by Modin, and is specific to the pandas backend. Any queries defined here must also both be compatible with and result in a `pandas.DataFrame`. Many functionalities are very simply implemented, as you can see in the current code: [Link](https://github.com/modin-project/modin/blob/f15fb8ea776ed039893130b1e85053e875912d4b/modin/backends/pandas/query_compiler.py#L365).\n", + "\n", + "If we want to register a new function, we next to understand what kind of function it is. In our example, we will use `kurtosis`, which is a reduction. So we next want to import the function type so we can use it in our definition:\n", + "\n", + "```python\n", + "from modin.data_management.functions import ReductionFunction\n", + "```\n", + "\n", + "Then we can just use the `ReductionFunction.register` `classmethod` and assign it to the `PandasQueryCompiler`:\n", + "\n", + "```python\n", + "PandasQueryCompiler.kurtosis = ReductionFunction.register(pandas.DataFrame.kurtosis)\n", + "```\n", + "\n", + "Finally, we want a handle to it from the `DataFrame`, so we need to create a way to do that:\n", + "\n", + "```python\n", + "def kurtosis_func(self, **kwargs):\n", + " # The constructor allows you to pass in a query compiler as a keyword argument\n", + " return self.__constructor__(query_compiler=self._query_compiler.kurtosis(**kwargs))\n", + "\n", + "pd.DataFrame.kurtosis_custom = kurtosis_func\n", + "```\n", + "\n", + "And then you can use it like you usually would:\n", + "\n", + "```python\n", + "df.kurtosis_custom()\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from modin.backends.pandas.query_compiler import PandasQueryCompiler\n", + "from modin.data_management.functions import ReductionFunction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "PandasQueryCompiler.kurtosis_custom = ReductionFunction.register(pandas.DataFrame.kurtosis)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# The function signature came from the pandas documentation:\n", + "# https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.kurtosis.html\n", + "def kurtosis_func(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs):\n", + " # We need to specify the axis for the backend\n", + " if axis is None:\n", + " axis = 0\n", + " # The constructor allows you to pass in a query compiler as a keyword argument\n", + " # Reduce dimension is used for reductions\n", + " # We also pass all keyword arguments here to ensure correctness\n", + " return self._reduce_dimension(\n", + " self._query_compiler.kurtosis_custom(\n", + " axis=axis, skipna=skipna, level=level, numeric_only=numeric_only, **kwargs\n", + " )\n", + " )\n", + "\n", + "pd.DataFrame.kurtosis_custom = kurtosis_func" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "print(df.kurtosis())\n", + "\n", + "end = time.time()\n", + "print(\"Modin kurtosis took {} seconds.\".format(end - start))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = time.time()\n", + "\n", + "print(df.kurtosis_custom())\n", + "\n", + "end = time.time()\n", + "print(\"Modin kurtosis_custom took {} seconds.\".format(end - start))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Congratulations! You have just implemented `DataFrame.kurtosis`!\n", + "\n", + "## Consider opening a pull request: https://github.com/modin-project/modin/pulls\n", + "\n", + "For a complete list of what is implemented, see the [documentation](https://modin.readthedocs.io/en/latest/UsingPandasonRay/dataframe_supported.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Test your knowledge: Add a custom function for another reduction: `DataFrame.mad`\n", + "\n", + "See the pandas documentation for the correct signature: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mad.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "modin_mad_start = time.time()\n", + "\n", + "# Implement your function here! Put the result of your custom `mad` in the variable `modin_mad`\n", + "# Hint: Look at the kurtosis walkthrough above\n", + "modin_mad = ...\n", + "\n", + "modin_mad_end = time.time()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Evaluation code, do not change!\n", + "pandas_mad_start = time.time()\n", + "pandas_mad = pandas_df.mad()\n", + "pandas_mad_end = time.time()\n", + "\n", + "assert isinstance(modin_mad, pd.Series), \"This is not a distributed Modin object, try again\"\n", + "assert pandas_mad_end - pandas_mad_start > modin_mad_end - modin_mad_start, \\\n", + " \"Your implementation was too slow, or you used the defaulting to pandas approach. Try again\"\n", + "assert modin_mad._to_pandas().equals(pandas_mad), \"Your result did not match the result of pandas, tray again\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now that you are able to create custom functions, you know enough to contribute to Modin!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}