From 42e4eaa98af097f7dfe9020fe417be6225b4d5f5 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Mon, 6 Apr 2015 16:29:46 -0700 Subject: [PATCH 1/2] Add a multi-node startup guide. --- .../docker-multinode.md | 106 ++++++++++++++++++ docs/getting-started-guides/docker.md | 2 + 2 files changed, 108 insertions(+) create mode 100644 docs/getting-started-guides/docker-multinode.md diff --git a/docs/getting-started-guides/docker-multinode.md b/docs/getting-started-guides/docker-multinode.md new file mode 100644 index 00000000000..455fe4c4a9a --- /dev/null +++ b/docs/getting-started-guides/docker-multinode.md @@ -0,0 +1,106 @@ +### Running Multi-Node Kubernetes Using Docker + +_Note_: These instructions are somewhat significantly more advanced than the [single node](docker.md) instructions. If you are +interested in just starting to explore Kubernetes, we recommend that you start there. + + +## Master Node +We'll begin by setting up the master node. For the purposes of illustration, we'll assume that the IP of this machine is MASTER_IP + +### Setup Docker-Bootstrap +We're going to use ```flannel``` to set up networking between Docker daemons. Flannel itself (and etcd on which it relies) will run inside of +Docker containers themselves. To achieve this, we need a separate "bootstrap" instance of the Docker daemon. This daemon will be started with +```--iptables=false``` so that it can only run containers with ```--net=host```. That's sufficient to bootstrap our system. + +Run: +```sh +sudo docker -d -H unix:///var/run/docker-bootstrap.sock -p /var/run/docker-bootstrap.pid --iptables=false >> /var/log/docker-bootstrap.log && +``` + +### Startup etcd for flannel to use +Run: +``` +docker -H unix:///var/run/docker-bootstrap.sock run --net=host -d kubernetes/etcd:2.0.5.1 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data +``` + +Next,, you need to set a CIDR range for flannel. This CIDR should be chosen to be non-overlapping with any existing network you are using: + +```sh +docker -H unix:///var/run/docker-bootstrap.sock run --net=host kubernetes/etcd:2.0.5.1 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' +``` + + +### Bring down Docker +To re-configure Docker to use flannel, we need to take docker down, run flannel and then restart Docker. + +Turning down Docker is system dependent, it may be: + +```sh +/etc/init.d/docker stop +``` + +or + +```sh +systemctl stop docker +``` + +or it may be something else. + +### Run flannel + +Now run flanneld itself: +```sh +docker -H unix:///var/run/docker-bootstrap.sock run -d --net=host --privileged -v /dev/net:/dev/net quay.io/coreos/flannel:0.3.0 +``` + +The previous command should have printed a really long hash, copy this hash. + +Now get the subnet settings from flannel: +``` +docker exec cat /run/flannel/subnet.env +``` + +### Edit the docker configuration +You now need to edit the docker configuration to activate new flags. Again, this is system specific. + +This may be in ```/etc/docker/default``` or ```/etc/systemd/service/docker.service``` or it may be elsewhere. + +Regardless, you need to add the following to the docker comamnd line: +```sh +--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} +``` + +### Remove the existing Docker bridge +Docker creates a bridge named ```docker0``` by default. You need to remove this: + +```sh +sudo ifconfig docker0 down +sudo brctl delbr docker0 +``` + +### Restart Docker +Again this is system dependent, it may be: + +```sh +sudo /etc/init.d/docker start +``` + +it may be: +```sh +systemctl start docker +``` + +### Starting the Kubernetes Master +Ok, now that your networking is set up, you can startup Kubernetes, this is the same as the single-node case: + +```sh +docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests +``` + +### Also run the service proxy +```sh +docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2 +``` + +### Adding a new node diff --git a/docs/getting-started-guides/docker.md b/docs/getting-started-guides/docker.md index 933775605ee..f6ca8a73634 100644 --- a/docs/getting-started-guides/docker.md +++ b/docs/getting-started-guides/docker.md @@ -74,3 +74,5 @@ Note that you will need run this curl command on your boot2docker VM if you are ### A note on turning down your cluster Many of these containers run under the management of the ```kubelet``` binary, which attempts to keep containers running, even if they fail. So, in order to turn down the cluster, you need to first kill the kubelet container, and then any other containers. + +You may use ```docker ps -a | awk '{print $1}' | xargs docker kill```, note this removes _all_ containers running under Docker, so use with caution. From b3c46b5c6618dc7030acbb1b2e10ae9704bc3606 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Mon, 6 Apr 2015 21:47:04 -0700 Subject: [PATCH 2/2] Add a Docker multi-node setup. --- cluster/images/hyperkube/Dockerfile | 3 +- cluster/images/hyperkube/master-multi.json | 45 ++++++ cluster/images/hyperkube/master.json | 2 +- docs/getting-started-guides/README.md | 3 +- .../docker-multinode.md | 125 ++++----------- .../docker-multinode/master.md | 143 ++++++++++++++++++ .../docker-multinode/testing.md | 58 +++++++ .../docker-multinode/worker.md | 132 ++++++++++++++++ docs/getting-started-guides/docker.md | 3 + docs/getting-started-guides/k8s-docker.png | Bin 0 -> 52545 bytes .../k8s-singlenode-docker.png | Bin 0 -> 31801 bytes 11 files changed, 417 insertions(+), 97 deletions(-) create mode 100644 cluster/images/hyperkube/master-multi.json create mode 100644 docs/getting-started-guides/docker-multinode/master.md create mode 100644 docs/getting-started-guides/docker-multinode/testing.md create mode 100644 docs/getting-started-guides/docker-multinode/worker.md create mode 100644 docs/getting-started-guides/k8s-docker.png create mode 100644 docs/getting-started-guides/k8s-singlenode-docker.png diff --git a/cluster/images/hyperkube/Dockerfile b/cluster/images/hyperkube/Dockerfile index ec8b6afefc9..b0794a9f517 100644 --- a/cluster/images/hyperkube/Dockerfile +++ b/cluster/images/hyperkube/Dockerfile @@ -5,5 +5,6 @@ RUN apt-get -yy -q install iptables COPY hyperkube /hyperkube RUN chmod a+rx /hyperkube -COPY master.json /etc/kubernetes/manifests/master.json +COPY master-multi.json /etc/kubernetes/manifests-multi/master.json +COPY master.json /etc/kubernetes/manifests/master.json diff --git a/cluster/images/hyperkube/master-multi.json b/cluster/images/hyperkube/master-multi.json new file mode 100644 index 00000000000..d02f5f43535 --- /dev/null +++ b/cluster/images/hyperkube/master-multi.json @@ -0,0 +1,45 @@ +{ +"apiVersion": "v1beta3", +"kind": "Pod", +"metadata": {"name":"k8s-master"}, +"spec":{ + "hostNetwork": true, + "containers":[ + { + "name": "controller-manager", + "image": "gcr.io/google_containers/hyperkube:v0.14.1", + "command": [ + "/hyperkube", + "controller-manager", + "--master=127.0.0.1:8080", + "--machines=127.0.0.1", + "--sync_nodes=true", + "--v=2" + ] + }, + { + "name": "apiserver", + "image": "gcr.io/google_containers/hyperkube:v0.14.1", + "command": [ + "/hyperkube", + "apiserver", + "--portal_net=10.0.0.1/24", + "--address=0.0.0.0", + "--etcd_servers=http://127.0.0.1:4001", + "--cluster_name=kubernetes", + "--v=2" + ] + }, + { + "name": "scheduler", + "image": "gcr.io/google_containers/hyperkube:v0.14.1", + "command": [ + "/hyperkube", + "scheduler", + "--master=127.0.0.1:8080", + "--v=2" + ] + } + ] + } +} diff --git a/cluster/images/hyperkube/master.json b/cluster/images/hyperkube/master.json index fc9cb2466fc..edaf27ec43a 100644 --- a/cluster/images/hyperkube/master.json +++ b/cluster/images/hyperkube/master.json @@ -1,7 +1,7 @@ { "apiVersion": "v1beta3", "kind": "Pod", -"metadata": {"name":"nginx"}, +"metadata": {"name":"k8s-master"}, "spec":{ "hostNetwork": true, "containers":[ diff --git a/docs/getting-started-guides/README.md b/docs/getting-started-guides/README.md index 9eafb5b9115..5d0bc958e2a 100644 --- a/docs/getting-started-guides/README.md +++ b/docs/getting-started-guides/README.md @@ -25,7 +25,8 @@ Vmware | CoreOS | CoreOS | flannel | [docs](../../docs/getting Azure | Saltstack | Ubuntu | OpenVPN | [docs](../../docs/getting-started-guides/azure.md) | Community (@jeffmendoza) | Bare-metal | custom | Ubuntu | _none_ | [docs](../../docs/getting-started-guides/ubuntu_single_node.md) | Community (@jainvipin) | Bare-metal | custom | Ubuntu Cluster | flannel | [docs](../../docs/getting-started-guides/ubuntu_multinodes_cluster.md) | Community (@resouer @WIZARD-CXY) | use k8s version 0.12.0 -Docker | custom | N/A | local | [docs](docker.md) | Project (@brendandburns) | Tested @ 0.14.1 | +Docker Single Node | custom | N/A | local | [docs](docker.md) | Project (@brendandburns) | Tested @ 0.14.1 | +Docker Multi Node | Flannel| N/A | local | [docs](docker-multinode.md) | Project (@brendandburns) | Tested @ 0.14.1 | Local | | | _none_ | [docs](../../docs/getting-started-guides/locally.md) | Community (@preillyme) | Ovirt | | | | [docs](../../docs/getting-started-guides/ovirt.md) | Inactive | Rackspace | CoreOS | CoreOS | Rackspace | [docs](../../docs/getting-started-guides/rackspace.md) | Inactive | diff --git a/docs/getting-started-guides/docker-multinode.md b/docs/getting-started-guides/docker-multinode.md index 455fe4c4a9a..c2fe5568aaa 100644 --- a/docs/getting-started-guides/docker-multinode.md +++ b/docs/getting-started-guides/docker-multinode.md @@ -1,106 +1,43 @@ ### Running Multi-Node Kubernetes Using Docker -_Note_: These instructions are somewhat significantly more advanced than the [single node](docker.md) instructions. If you are +_Note_: +These instructions are somewhat significantly more advanced than the [single node](docker.md) instructions. If you are interested in just starting to explore Kubernetes, we recommend that you start there. +## Table of Contents + * [Overview](#overview) + * [Installing the master node](#master-node) + * [Installing a worker node](#adding-a-worker-node) + * [Testing your cluster](#testing-your-cluster) + +## Overview +This guide will set up a 2-node kubernetes cluster, consisting of a _master_ node which hosts the API server and orchestrates work +and a _worker_ node which receives work from the master. You can repeat the process of adding worker nodes an arbitrary number of +times to create larger clusters. + +Here's a diagram of what the final result will look like: +![Kubernetes Single Node on Docker](k8s-docker.png) + +### Bootstrap Docker +This guide also uses a pattern of running two instances of the Docker daemon + 1) A _bootstrap_ Docker instance which is used to start system daemons like ```flanneld``` and ```etcd``` + 2) A _main_ Docker instance which is used for the Kubernetes infrastructure and user's scheduled containers + +This pattern is necessary because the ```flannel``` daemon is responsible for setting up and managing the network that interconnects +all of the Docker containers created by Kubernetes. To achieve this, it must run outside of the _main_ Docker daemon. However, +it is still useful to use containers for deployment and management, so we create a simpler _bootstrap_ daemon to achieve this. ## Master Node -We'll begin by setting up the master node. For the purposes of illustration, we'll assume that the IP of this machine is MASTER_IP +The first step in the process is to initialize the master node. -### Setup Docker-Bootstrap -We're going to use ```flannel``` to set up networking between Docker daemons. Flannel itself (and etcd on which it relies) will run inside of -Docker containers themselves. To achieve this, we need a separate "bootstrap" instance of the Docker daemon. This daemon will be started with -```--iptables=false``` so that it can only run containers with ```--net=host```. That's sufficient to bootstrap our system. +See [here](docker-multinode/master.md) for detailed instructions. -Run: -```sh -sudo docker -d -H unix:///var/run/docker-bootstrap.sock -p /var/run/docker-bootstrap.pid --iptables=false >> /var/log/docker-bootstrap.log && -``` +## Adding a worker node -### Startup etcd for flannel to use -Run: -``` -docker -H unix:///var/run/docker-bootstrap.sock run --net=host -d kubernetes/etcd:2.0.5.1 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data -``` +Once your master is up and running you can add one or more workers on different machines. -Next,, you need to set a CIDR range for flannel. This CIDR should be chosen to be non-overlapping with any existing network you are using: +See [here](docker-multinode/worker.md) for detailed instructions. -```sh -docker -H unix:///var/run/docker-bootstrap.sock run --net=host kubernetes/etcd:2.0.5.1 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' -``` +## Testing your cluster - -### Bring down Docker -To re-configure Docker to use flannel, we need to take docker down, run flannel and then restart Docker. - -Turning down Docker is system dependent, it may be: - -```sh -/etc/init.d/docker stop -``` - -or - -```sh -systemctl stop docker -``` - -or it may be something else. - -### Run flannel - -Now run flanneld itself: -```sh -docker -H unix:///var/run/docker-bootstrap.sock run -d --net=host --privileged -v /dev/net:/dev/net quay.io/coreos/flannel:0.3.0 -``` - -The previous command should have printed a really long hash, copy this hash. - -Now get the subnet settings from flannel: -``` -docker exec cat /run/flannel/subnet.env -``` - -### Edit the docker configuration -You now need to edit the docker configuration to activate new flags. Again, this is system specific. - -This may be in ```/etc/docker/default``` or ```/etc/systemd/service/docker.service``` or it may be elsewhere. - -Regardless, you need to add the following to the docker comamnd line: -```sh ---bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -``` - -### Remove the existing Docker bridge -Docker creates a bridge named ```docker0``` by default. You need to remove this: - -```sh -sudo ifconfig docker0 down -sudo brctl delbr docker0 -``` - -### Restart Docker -Again this is system dependent, it may be: - -```sh -sudo /etc/init.d/docker start -``` - -it may be: -```sh -systemctl start docker -``` - -### Starting the Kubernetes Master -Ok, now that your networking is set up, you can startup Kubernetes, this is the same as the single-node case: - -```sh -docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests -``` - -### Also run the service proxy -```sh -docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2 -``` - -### Adding a new node +Once your cluster has been created you can [test it out](docker-multinode/testing.md) \ No newline at end of file diff --git a/docs/getting-started-guides/docker-multinode/master.md b/docs/getting-started-guides/docker-multinode/master.md new file mode 100644 index 00000000000..ce5c8bb0acc --- /dev/null +++ b/docs/getting-started-guides/docker-multinode/master.md @@ -0,0 +1,143 @@ +## Installing a Kubernetes Master Node via Docker +We'll begin by setting up the master node. For the purposes of illustration, we'll assume that the IP of this machine is ```${MASTER_IP}``` + +There are two main phases to installing the master: + * [Setting up ```flanneld``` and ```etcd```](#setting-up-flanneld-and-etcd) + * [Starting the Kubernetes master components](#starting-the-kubernetes-master) + + +## Setting up flanneld and etcd + +### Setup Docker-Bootstrap +We're going to use ```flannel``` to set up networking between Docker daemons. Flannel itself (and etcd on which it relies) will run inside of +Docker containers themselves. To achieve this, we need a separate "bootstrap" instance of the Docker daemon. This daemon will be started with +```--iptables=false``` so that it can only run containers with ```--net=host```. That's sufficient to bootstrap our system. + +Run: +```sh +sudo sh -c 'docker -d -H unix:///var/run/docker-bootstrap.sock -p /var/run/docker-bootstrap.pid --iptables=false --ip-masq=false --bridge=none --graph=/var/lib/docker-bootstrap 2> /var/log/docker-bootstrap.log 1> /dev/null &' +``` + +_Important Note_: +If you are running this on a long running system, rather than experimenting, you should run the bootstrap Docker instance under something like SysV init, upstart or systemd so that it is restarted +across reboots and failures. + + +### Startup etcd for flannel and the API server to use +Run: +``` +sudo docker -H unix:///var/run/docker-bootstrap.sock run --net=host -d kubernetes/etcd:2.0.5.1 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data +``` + +Next, you need to set a CIDR range for flannel. This CIDR should be chosen to be non-overlapping with any existing network you are using: + +```sh +sudo docker -H unix:///var/run/docker-bootstrap.sock run --net=host kubernetes/etcd:2.0.5.1 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' +``` + + +### Set up Flannel on the master node +Flannel is a network abstraction layer build by CoreOS, we will use it to provide simplfied networking between our Pods of containers. + +Flannel re-configures the bridge that Docker uses for networking. As a result we need to stop Docker, reconfigure its networking, and then restart Docker. + +#### Bring down Docker +To re-configure Docker to use flannel, we need to take docker down, run flannel and then restart Docker. + +Turning down Docker is system dependent, it may be: + +```sh +sudo /etc/init.d/docker stop +``` + +or + +```sh +sudo systemctl stop docker +``` + +or it may be something else. + +#### Run flannel + +Now run flanneld itself: +```sh +sudo docker -H unix:///var/run/docker-bootstrap.sock run -d --net=host --privileged -v /dev/net:/dev/net quay.io/coreos/flannel:0.3.0 +``` + +The previous command should have printed a really long hash, copy this hash. + +Now get the subnet settings from flannel: +``` +sudo docker -H unix:///var/run/docker-bootstrap.sock exec cat /run/flannel/subnet.env +``` + +#### Edit the docker configuration +You now need to edit the docker configuration to activate new flags. Again, this is system specific. + +This may be in ```/etc/default/docker``` or ```/etc/systemd/service/docker.service``` or it may be elsewhere. + +Regardless, you need to add the following to the docker comamnd line: +```sh +--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} +``` + +#### Remove the existing Docker bridge +Docker creates a bridge named ```docker0``` by default. You need to remove this: + +```sh +sudo /sbin/ifconfig docker0 down +sudo brctl delbr docker0 +``` + +You may need to install the ```bridge-utils``` package for the ```brctl``` binary. + +#### Restart Docker +Again this is system dependent, it may be: + +```sh +sudo /etc/init.d/docker start +``` + +it may be: +```sh +systemctl start docker +``` + +## Starting the Kubernetes Master +Ok, now that your networking is set up, you can startup Kubernetes, this is the same as the single-node case, we will use the "main" instance of the Docker daemon for the Kubernetes components. + +```sh +sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests-multi +``` + +### Also run the service proxy +```sh +sudo docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2 +``` + +### Test it out +At this point, you should have a functioning 1-node cluster. Let's test it out! + +Download the kubectl binary +([OS X](http://storage.googleapis.com/kubernetes-release/release/v0.14.1/bin/darwin/amd64/kubectl)) +([linux](http://storage.googleapis.com/kubernetes-release/release/v0.14.1/bin/linux/amd64/kubectl)) + +List the nodes + +```sh +kubectl get nodes +``` + +This should print: +``` +NAME LABELS STATUS +127.0.0.1 Ready +``` + +If the status of the node is ```NotReady``` or ```Unknown``` please check that all of the containers you created are successfully running. +If all else fails, ask questions on IRC at #google-containers. + + +### Next steps +Move on to [adding one or more workers](worker.md) \ No newline at end of file diff --git a/docs/getting-started-guides/docker-multinode/testing.md b/docs/getting-started-guides/docker-multinode/testing.md new file mode 100644 index 00000000000..9c115ed8ef0 --- /dev/null +++ b/docs/getting-started-guides/docker-multinode/testing.md @@ -0,0 +1,58 @@ +## Testing your Kubernetes cluster. + +To validate that your node(s) have been added, run: + +```sh +kubectl get nodes +``` + +That should show something like: +``` +NAME LABELS STATUS +10.240.99.26 Ready +127.0.0.1 Ready +``` + +If the status of any node is ```Unknown``` or ```NotReady``` your cluster is broken, double check that all containers are running properly, and if all else fails, contact us on IRC at +```#google-containers``` for advice. + +### Run an application +```sh +kubectl -s http://localhost:8080 run-container nginx --image=nginx --port=80 +``` + +now run ```docker ps``` you should see nginx running. You may need to wait a few minutes for the image to get pulled. + +### Expose it as a service: +```sh +kubectl expose rc nginx --port=80 +``` + +This should print: +``` +NAME LABELS SELECTOR IP PORT(S) +nginx run-container=nginx 80/TCP +``` + +Hit the webserver: +```sh +curl +``` + +Note that you will need run this curl command on your boot2docker VM if you are running on OS X. + +### Scaling + +Now try to scale up the nginx you created before: + +```sh +kubectl resize rc nginx --replicas=3 +``` + +And list the pods + +```sh +kubectl get pods +``` + +You should see pods landing on the newly added machine. \ No newline at end of file diff --git a/docs/getting-started-guides/docker-multinode/worker.md b/docs/getting-started-guides/docker-multinode/worker.md new file mode 100644 index 00000000000..96380952c39 --- /dev/null +++ b/docs/getting-started-guides/docker-multinode/worker.md @@ -0,0 +1,132 @@ +## Adding a Kubernetes worker node via Docker. + +These instructions are very similar to the master set-up above, but they are duplicated for clarity. +You need to repeat these instructions for each node you want to join the cluster. +We will assume that the IP address of this node is ```${NODE_IP}``` and you have the IP address of the master in ```${MASTER_IP}``` that you created in the [master instructions](master.md). + +For each worker node, there are three steps: + * [Set up ```flanneld``` on the worker node](#set-up-flanneld-on-the-worker-node) + * [Start kubernetes on the worker node](#start-kubernetes-on-the-worker-node) + * [Add the worker to the cluster](#add-the-node-to-the-cluster) + +### Set up Flanneld on the worker node +As before, the Flannel daemon is going to provide network connectivity. + +#### Set up a bootstrap docker: +As previously, we need a second instance of the Docker daemon running to bootstrap the flannel networking. + +Run: +```sh +sudo sh -c 'docker -d -H unix:///var/run/docker-bootstrap.sock -p /var/run/docker-bootstrap.pid --iptables=false --ip-masq=false --bridge=none --graph=/var/lib/docker-bootstrap 2> /var/log/docker-bootstrap.log 1> /dev/null &' +``` + +_Important Note_: +If you are running this on a long running system, rather than experimenting, you should run the bootstrap Docker instance under something like SysV init, upstart or systemd so that it is restarted +across reboots and failures. + +#### Bring down Docker +To re-configure Docker to use flannel, we need to take docker down, run flannel and then restart Docker. + +Turning down Docker is system dependent, it may be: + +```sh +sudo /etc/init.d/docker stop +``` + +or + +```sh +sudo systemctl stop docker +``` + +or it may be something else. + +#### Run flannel + +Now run flanneld itself, this call is slightly different from the above, since we point it at the etcd instance on the master. +```sh +sudo docker -H unix:///var/run/docker-bootstrap.sock run -d --net=host --privileged -v /dev/net:/dev/net quay.io/coreos/flannel:0.3.0 /opt/bin/flanneld --etcd-endpoints=http://${MASTER_IP}:4001 +``` + +The previous command should have printed a really long hash, copy this hash. + +Now get the subnet settings from flannel: +``` +sudo docker -H unix:///var/run/docker-bootstrap.sock exec cat /run/flannel/subnet.env +``` + + +#### Edit the docker configuration +You now need to edit the docker configuration to activate new flags. Again, this is system specific. + +This may be in ```/etc/default/docker``` or ```/etc/systemd/service/docker.service``` or it may be elsewhere. + +Regardless, you need to add the following to the docker comamnd line: +```sh +--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} +``` + +#### Remove the existing Docker bridge +Docker creates a bridge named ```docker0``` by default. You need to remove this: + +```sh +sudo /sbin/ifconfig docker0 down +sudo brctl delbr docker0 +``` + +You may need to install the ```bridge-utils``` package for the ```brctl``` binary. + +#### Restart Docker +Again this is system dependent, it may be: + +```sh +sudo /etc/init.d/docker start +``` + +it may be: +```sh +systemctl start docker +``` + +### Start Kubernetes on the worker node +#### Run the kubelet +Again this is similar to the above, but the ```--api_servers``` now points to the master we set up in the beginning. + +```sh +sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube kubelet --api_servers=http://${MASTER_IP}:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=$(hostname -i) +``` + +#### Run the service proxy +The service proxy provides load-balancing between groups of containers defined by Kubernetes ```Services``` + +```sh +sudo docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v0.14.1 /hyperkube proxy --master=http://${MASTER_IP}:8080 --v=2 +``` + + +### Add the node to the cluster + +On the master you created above, create a file named ```node.yaml``` make it's contents: + +```yaml +apiVersion: v1beta1 +externalID: ${NODE_IP} +hostIP: ${NODE_IP} +id: ${NODE_IP} +kind: Node +resources: + capacity: + # Adjust these to match your node + cpu: "1" + memory: 3892043776 +``` + +Make the API call to add the node, you should do this on the master node that you created above. Otherwise you need to add ```-s=http://${MASTER_IP}:8080``` to point ```kubectl``` at the master. + +```sh +./kubectl create -f node.yaml +``` + +### Next steps + +Move on to [testing your cluster](testing.md) or [add another node](#adding-a-kubernetes-worker-node-via-docker) \ No newline at end of file diff --git a/docs/getting-started-guides/docker.md b/docs/getting-started-guides/docker.md index f6ca8a73634..097d17d25c1 100644 --- a/docs/getting-started-guides/docker.md +++ b/docs/getting-started-guides/docker.md @@ -2,6 +2,9 @@ The following instructions show you how to set up a simple, single node kubernetes cluster using Docker. +Here's a diagram of what the final result will look like: +![Kubernetes Single Node on Docker](k8s-singlenode-docker.png) + ### Step One: Run etcd ```sh docker run --net=host -d kubernetes/etcd:2.0.5.1 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data diff --git a/docs/getting-started-guides/k8s-docker.png b/docs/getting-started-guides/k8s-docker.png new file mode 100644 index 0000000000000000000000000000000000000000..6795e35e83d5bf1350903e1a0a0a0028b99ad6ac GIT binary patch literal 52545 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

W5r- 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 literal 0 HcmV?d00001 diff --git a/docs/getting-started-guides/k8s-singlenode-docker.png b/docs/getting-started-guides/k8s-singlenode-docker.png new file mode 100644 index 0000000000000000000000000000000000000000..5ebf812682d27e325cabf532f6a67f7bd69cf86d GIT binary patch literal 31801 zcmeFZRZv`A*RBnOBxs-s8r&_o2MrP+1WoYZ?!h5w6M}1ScXxN!;O;c;?$XF!Jn#E_ z$>Cpr?OnAGcGcp5S*sVb=bUTEb&r9+oQyas(iV$Ve#9-+V_T8RM0} zf|vJ~^pu11@uqSRef|LxM60C#r4?4(mrPF#6Zwai?lj^lx?Fdgyr|g5Vvrf)Q4z-( zB>uifb!m31W_s4>$ZfhFM()lFzTHj*){{L=1@myP?JLIX{?02nTy)r1DzL39hKBIs z*P?I}cTN0pak&!R6_nt(9%-N)G_#GQVwVw7ybqKGKJvpdB4iZnfk`V--_BEDr z*(k&Hr9smd$#|HJE1L1~>%>nm%$RXn16x#S=Kic=n0SZ&r*JR`k)1q^Hm?G2c#M-_ zoU)D91K|B7b+bX!u_hbay@t0Z6`yZ(S?D7>q*wf$J`JB&qJ%Kxc$Qd2i@{Q=TErQL z9~2QB9H>rh8sD_cE)ltZzUS}#4pls%+8<7SAC#=RWWHa>)PxOlNuicNSkWA%2vceC zLTF>9Q1*xf=JYvCB_#2T$j4msSLZ4UHFDtozPT-IiWwvQHWxI-%c`%%hvzD;{}8Ig zn~fs~CYQuwGZ5Rz&dHV%9T-4)6*H`Ve}(?I*2-ft_`Bn6VoEE{$_mw4_;W|+qIS}<-udE{y(U-nw@!-$YSqp%eG4(GO~j?RMA z+uUee6kcK*%KH6b>y{Y#Yk=j-r}t!^H!o2_^=&BA-{NH~d7HPvVT8T3OGRP_Gcv=y z)kY=oWc&6ELIUIMDS`eh`Wd4HoQV*8`FnvG;0UtJz&iXe{RT4u{yqXP+%&-u!34+%#I#&Ao{4nfHv^e1@bbK`gXOZ`E+?db0MEt|he+k`; zQ03y%{m4%fk>funw|i5Mpz-52_2mc&`-^*6H*ZiZ+_(Y$-1Rf_QuXvZxbQ z;!B*?`IV2g*aEL=+HqF!k73^a)M}4F5b8yEHu^yY0sll)I822C7DQ?mPL>ImCl(*} zDigmhSR&kd{n-oOG@V#n>~6d@U)7)$T_v3<-H*(Zv3jvepKvxg4bj=aH(pt~lV#Z| z)P;f$h@7B=V1`a5?NDv?(wMSmGdlac1h0Bp@m2}Gx!2-;WwqoehOa@J4r=h+>p)$h zI&o^GgJ2$cp|#l_>$;LQBY6;b5G{ogcehZ7A*#Wfd7+U;lTesbd_jMMu!V5%4QgkX z2j|M#k@=uIcYf8SEen}>-zZ5yB@=-u=|h2|KtUT<3H~B!N~S@@Pt`;k@%x>=xDBqV zkfv-gMGA=)CE71Rxkwr+OxceFV#2dBJRj?XoQ0f4vJ_BrEhkj+W9yUDWSd0YKDsf9 zN3g}5#jO1 zr=(bXdX%o8ZoIC)?vGWDE_uqvU*KOg7_xanJEdckS)^}-$FrQrYAdBH-_04!F%yb& zWkSazcDl}qx0}up4JZxNH)u8pHr{Mh^eMb(XV$)EQ^3m#iU?{53O!@rtQ%e%p64tv z(R^&Ajk=+;q;riTi!zLYjS9{Gq-ZsXIhmAikuN*JY)WOSV>)XJon$Ns9?ltdOdd|s zVt-t}^W812_y1mdYkJYK%fB1(CjL$H8@xA)Z(`WHIq>2wuD=I$7VHg$2TrA)((#x$-G0Kps7<#Soi&35Hea+XJ&yK>f zQcNmLS|##FX#(;oMJbsr;w|bPeXS!TbJ~IL6WVgq0@7M^l65jx^vLtW3r6WO)G~Ox zx%H~815O0i)Tv7SlO%sh2LG1+JTn3LqFp~+IgDbqX-vglz|qi?Ub>*FTKHiqm8XNR z*EPdA;f5ZWKTstw340M+>+QkY&kTESiB)M;pQ~6@?v~zm%yq__Y3RB2_?WKgRSab> zZdMiLF)TT>9JukuYm_cxH^?*$U%t8|gHl0RUh?}o`8K_}nz3`BY4CQN1nq6F)DE2l zt-Yjnp)MPj%vnlO9ikmV9m+sP!8yj6V8FE*wO*+uunA|>XAIJE`j$4KI3Km9ws$)q zJsrH|&}q@RIKw}CUkjy2lR^s@5A2D|iP(BGjI8MwQ=%NMTvGGvO83b0C`aI(fWJVn z!0Tp*<^ngSYn^+zdxzV_v+3il+i9pQJU4tH;x~?5!yS}D;^k( zErsp);kS5~*rd3$n2T79m{g3)Th)s74?$`{B-#Af#Q0b)6b?3dS7VD(zH9rdNNb0T zY+s`*_UCM>HuCz1i^H_qRITZV@QDeR&>#I@x94qqDn8e$bKHQRj%e_O{@UuM-wHm_ zxHh;8hmY|t_Z}6E>D2JolPs3Rl3at6eP6X~U#@iuUeAjRi_D;9%NxxbH1V#yt{fMp z)Cnl1*I?tPZer?S&tMj*?=zV^RD7K-G#dVi##Ys^AvWaU(}hG3MFQmyRpbiOa)^<* zK}w(e0BG}kJ$~J?pYZqDZ>T$mA%~;AQM1E?&s`hGq1mgVpHszO=j&t~HQMS|E}Hj3 zEl4aRW{>+n^amT@FIfgaCgfA)OPjTgD~>k1h3kanSDF}x)L)r*nPZtBEE-l6na;8fhZjubCz6m1Ng zrk~a{DDO8b>8M+4qnU*2hgP!YmN$JYF%_T8+0EPqzX^@sY}$3HIY^r8nV)W1vhWy( z4Sv@3Qh*4PpwXlEO3tk4y+xPK!b)Ms@Lu|EeT$KYmWSwp#7X$D_)qbyp7v1tN#2QR zu3WB2&i3G6-DPXmJy!S27a}gN3wGq#GU~43xk-6WR(r0AkCIXNW}O4v@^`53Q!cAV z)B@DfrWU6Bt1~%GTt2xh?RbtS5e^YD2qrwbo(EmV#aHwhNezb&VI?N;q&T{t3U~iJ z3G~PDeWz?EP+z$|mQ-9?4Cx2QlxUvR+2qYPLGKh}3XF<*G6 z_T5c(s*Wt0cD_~IN3RuyG(UISy48R(K`!gvHbNeg@Sg>~xIJWSc6roX;NNkB+>gG@ zL(>!-_|AQAe6P2^mQIZ%OP8E4Sad&mJ#CoRbiSWDtvy`fXB6sFE5h^`byFhS@q9RM znEpfMhh6a^@!_DGpvCWH=UvDBK{4ZNKU-)Ys;{C(3sT%2p-o1*zdMi3M)%?bKSFYw zd2XjJEw=Qx*T)@Ajdq8?_u5o52H_fYnfK~FBzL;IqJh?QlcxZrMML!1Ai%Nvh1k_W!`WSC)yeh^1 zrI+7@8k#UX<2+4dR$Rvjt-h?k>p7~qOf(y?cH2}tdKh;68f}Y2MgsSL`z2QmZ;E7b zGu!e2Whu@!^c5bbPeSnX{Pz+HM_}h{c03Dh;j7~}qnDr{LpS?6`0PNntPcYgg#Pbk zEC?4|d@^&18Bq0{0~Jj-!}bSsvhMx;9#UVr=-*2~D60)g|IX!T-DGwIT51%y4U}HQ5t+W!d1z{ zlcD-w*nSI1EgqxWukLP;YFzCz4YB@APzZhup|U~3TxDxvm{=o8Ns_jOXJ1e`+U9J6 z^UtbnW5OLUVxTo=+xf;;fQXzmZmM|HwJ@3f9GZjosf%K|Jg*>tjU=K`^!ayNJQ2RU z0z2UNNB#J~5Bhg*=-^#Sl5mx#D@}f!KVyaP@63@C%{eq5m=+h^=W$BZs#o!x??2XL zHxs;UuaN)J_~)T^Z^7w#RddBd(hc7-LJp*bcQnirU2Hy$yZf0tXZ(Gb!%~DseG+&@ zNV*$5ZXFxCGR`&s-5g*?NWen!qN^e5SXuGjhgstH-%9Gw5t{yI5rJbPK_Q2E!MTc$ zVdQ^~Mf>LqQ+`aPAuAJw790Bi&l&VY&?l9v{7HXu>tUzf^GKk%6x>j|7kUILQ9Jsx z*+THA=-ce!*Q0{(+@<2}_olXXni&KCdI$w*3)Y>MzHfpc)tc9>srd}*UU2Kq3R%->*oTNo1X&qFIiJVkZ)YO83cVP6s~J4q+= z@fh(GD3>^pe+W7@p?}}IU_Y&4x!xPzJSt$a^vISv{gk+8N!%^~JVX^|wKe>1*}_+HHZG_18;Fz^B>Os{;PrQduFgveyC# z!-9{EYxaxw(;J0J9_zz=XF;;iwwJ`~pXQ?j{kXhw;L^#Td71AO)m$pFv$NOw61&eZ zXf|>eeVqGtwdmL&89`<6HG#`2IpLkXsoJfLTZP?@f``_QS@lcLD~QW*4r!6sf6oPG zf>2J8W%5bI>SKs)*~(^t)l{MCVb!#zZNpKsi|*LGWy7HT&RAEG)>2tPrIypmbH}5m ztNMPXmIaHlE^L1b6SMV!IJU*Ro3lkp>ZJ9+H}C9nUG~d*7U)YFS6}h&mwq`xc~o0o z7<+xS8pw1j1wCviq0IAJtJ_N6d&PI$8tGZ=CzJR3Ki0uOHg#N7cQ(RI@8#u;9@^Dz zLCL#DCrPr=Mu}*~y!x6Y_xYxW+r5XeWS7GohZ!B;O#Q=+7%d0e%>nDGsw&GAw@d4J zi<%@^U!2hI0|~y`9eVzr$j?k_r!vIRQkELQnQi@D-)IbM+`5DCESFosmL*M>NP)+Y zaze)i7Oa-X2PkyUuSbqT0N6FlacM651oLwLH9k!L^B+RQ?X7&gyIBnPw->gN((3I( z{9iK;{A5+UFMLc+Y{(K35fsMMgeF?fhIoq|k08y-a$oR=Nkx3FtNE@LY%OaR9c+1z z8Y>Kjxi62FmKfA3dxMGi=UkN7F!cRPU1aBLuYSBh{rE{T!T6;cnZ`_v(~H9<#FMWE z-Df*Z|Lm5K0fzCzk@ETj;q@67p{8Do0LS4&#dmur{-QjX_r77y%ixy_s9XzSq^9Vh z-mhi2+X8==zIr$zw(bPsoeZostcCC@2$QJSv*>l#7L+v41!jE{fSmLY9~HcpLr2## zN_NgBzP$jA67wZYYq}KiZYA2fV!~O^l`NqWM(*X< z=Jnh%!J_&%9mdM_@(;B7y^$fMA_Iycjy7+ znd_`U%m$`^C9(iYlWZI-rDF6XNbpy*L#OYe$yreiB>s}89@xIcT=|TzZf;FXJ}yRA z+;3x`gGQ^->XwpcYV%tZp9*aMvCrUL(o`P*B)gK6?@89(c$y2HIHjf9&riTO);UQI zea56@u+|?0#uTv0z@%%XZyP^5y#XO-c6{z^2Z<6{`{8fika8nB%{y7GG@cEe>6*2B zBWm`BJ%)+AvffJZXvT?+4k5Rt2ALsbAu}~HH?Hrg)mUo8D~G}RanFg*BRK5{K=;`k zx6^#Tr}gq!!{1&{sas`<;#)gGRqni&sR(s@8ol3MBSMA0&-qPb>mU|n3Z;PjO4&$1 zy~CCFW$B6V^+g8}m%Ic!{ickm-5JlJ4k&kO;-fHcJn4Qo3$xP9MHKC%{v_dX(uD(k z7%@by40X+@yC~#DamE=*}p_tM(mi5<=)ILKDpAE(0t**LEmXWG^n~ ztpsbntq7-tmiNjozdJ%iAjVcC5g2~A_x31l^_{iT$YJA|Ov=y$i3CkTo&AZ96+Dw0 zs;}X1F7`K5hRs=sIPgR|*T*XlKezfGfpCj*F`-XR(!(WEojfGu_5m;LeQMc<%*s zLAH;0APwfQG6?)Cp9QXhb#Ca3Yuih_a`>rKK$oSIAr7rXoKEo_p1u0-K`Dp=BEZUU zFNX&&Z84V&{l^p0B>-N58lvTsaMH}e1sV>0E=qoOYK}X;deAHA?v4MreDZLji_1ZD zY&V$1J58E>42OYEF)RQz_o*4yLU|wwLhz$KokO+`JZ8}`Ql;Ud9bvi^7hG%Gq>P8r z&&4D4m3V*0%rqogGHG-MIuT%Z*Tpze_v&ukE zbdFa9bskPIgY!GD#XMFI%C5hPZ)&pYhx(4s^o%EH%e-MVREg6zIW9lNL-M_^BeKG` zMF-V?LxFaSz~38KNBzeS2-#zVN$jsf-EVhtpx85|M7p5|*650UVQ7MP%o#uL*u>>Z z(SPt*Tn12gnt5-xjeD2kGi!Txs2f7EooLz?u^mAw10spm+qri-Y7VbyF7D_6T?$oCphUv#t8NBX`3@fYVYVCWHjz;=& zC=S`gmfH>1;<_VIxUuq+Nb2xOs~dG}&2-D`agJHg9gReCO}uhT>C_?=jk-I3i zPzuHz`1JgAkR>-}IYK4|zuBk3mQWIX;&XPIY*(CA!m-eI;w3u%UM;>{(K^CpOB!c{ zi{_Am49d!^s!Kkx`2}HPNBfZ(ChbR^rI`4iS#O|+NxTKS`1|R~KiA|E#X9RKcLw9m z=_BBQ+7{}~VL>M9<0Jy;{EaGKytqQN&V+;vk*QG7@%^%=;1ksGkcypnB7?Wi(|n0e ziF)K}ZH5x1;n{6bIvkkILRf3JNIg?oCbSq_KF*B>rzq7))dKSKvo(v z0{!#J;@O~9xDqmvO&w+?x^o>EW{GK7S`h^ZRe)x0^5uX!HR(Cdp!bAI#Yt*%{}M zinwSA;Xq}59YVPK$;%e&ux)b#BjmYX<7 zCEkoF_(tJvj@SKnPhQgmNZjo$@m}JH^xbokzB{HOi@x?HL`rsALN_%3I9N)fNyZm~ zGCj9BOhp7@DD*N2N1lg}yg`4Bz$Hv0N*i$+8`Hxh(&+cx`&lvrJn}&WYBA`e6RWMi z=v>>exhqFe3E#B{9tv`W6Io)Yv1DvaZ?f;eB%5r!Mn=+GIvsoh_*VvHe!k~^pXVTB zLU`u)?VN(gLZzS{9%MC|=}u}QL2umTxl2s{h0mSNuJmcg$s?~05!;h@o)Np9hqw4r z5$y0@#k()NWxEYH1_z2Z2CW+%(p|+3KS#s(CYo5ms!3Lsl|q*F6n%o}$i7`JN-+}O z?@pr=mq1uoYA`VRN;WrQMkrukg1CtdJZ(UJ`j!+HO*;$<3SxYzB)c3d}Q-{ z&XtRV(Y-aU_&#P*?7t~zE)AU6Yk#?fbA=`kMa=j1AO56lbYVg6n|1NvXKvP z82%RUx%+?eayfq>JEA`+&X@f&_Wy4C|GgkU_Wx*d7SG9%(s@$-I&uKkpVXd?a^#Q<6vF0SEw8$~|K_6k>zo?4(4@q_gaI5t zDmO3B|K7F8+*d{Qk@7`ZgYNlm6_M96Q_@_GCj{;2y8rdKGZvHrW%UGqAG9{Ga0o z3z`wq&R5?N(=~cF+8#C3{48JV&r$jq1_Z*05KIoqKV$Enf@7m4*vY?e3#9~*Ou$nL>b2lEIa0%7XgwuE%5zc7yx zfO+=!c~fuydbi*aB`BhorR5|3K)cimU~IGY+4NW2VBU?$&o-GOlz$dB_Y)i?1I9}f z+~w7haB}hbC#XZ?xR#fbYy$ujEBRdo%D>j{BfP0p9?MDfTb0t*gYtgH!{ZLLs~Bu1 z&3$xBaU$nT-rMbrCeMN*h8@PvhRmzKK8X$gQBwyMkF`_7{bqwU78MoMav+xFFgwB0 zM%}#Zr(ibYuIQg76;0JZh-{Pyy22P<0rL7~!{Ouu%a(fw$A_D(hJ)&P#whcf(~ZLi z=#eA9G2%n#%}SaUp7Qzc=iA{Q^{69RoKN+Aeap34+z(^*LahD9zJe@Asf_vhD9^F{(#}%PW`c0E)!3c`2QOCDOQ)8XSBnzP|?HpsPzrTldTr=0{dZqHbFYHXY4k7vsgPBj->wQM-p z#9OT+XGR(16XW~tv|~6JzXAEa$G~MV$9@I4`dc#ropU1q18J6)AsCLPiyh7yrPvR6 z07&XtQ)vY&1HU-@svn4aA(6*+AyYD9p&5F($Hb&jKLMa3YlzGBVZ%{9knKYTQv{ci zoL2oIYyO@n&xE5dMPYoTx$3Ix0=yt8o07n$CYU0L<*Z9j`&apbwLYy(g47 z<;`WbMWmQEH!q4_Pl$BY@GZLL^naq(f9Pc-9Jo9oA{KQHAanOw9j|!blK=iE{i3*o-rJ2fu0%qp`WgV*MEpS-36z%&7*P!e$EiY^Xu+*;^CR4+4& zNN3thbZd#)<91}*$ke|ahMXpRpArRY<0tJ4*0xSk+m~x#9)I}Pj)nR%A903_j>JQW z4!X7{m9-9<{0SJ$%YRcnM4qlwveUi$51$1zj7VN^d18bg^>H`8m7N>(QhE?gKQ|UV zMOGpa6;VB&&|#(x?OD%HGR^nyK1To_AW^3)-FW4~LG-N^_HfRuM7p4(dcgUxZcAau zp6t)@*^o)y7bPPS?VS5XDYcN~2#Gs|u;7$=JU)axrzj+;ZvD8CVAVYP*hn0xf{^hc z*yiHm!bE)neRzr!h2d&v+_%OAmWg5-J)1i5n^%R7;iYzALBSca;oFcP6yJ*P?<6a; zu?o5VG6`OQNuUro9}&r0vVu6R1uq`2bP&!Dm9p5^f;dE)&;+hiwVcXMs=Olc!Y%b z3NR5+))^n)X@DdULfI|rHlj~-|EBsMlZ7OQCG|_%n9Z9mrXFzQ(S0S)9%EB_A$~Or zHd3Y;yU2{StybV4t;o-S6+Kx8za%V=I=CIM`Pf4rY5#H!rcdJ1 zV3CseUt`~ZAm?X=!pA=!&3yw5DcTlH%KsUoNdz3+N@3(*T2;OeFf_SfYX9Yr(MF;M zd>J==)*oLA&L;(iIBL`g{|fK^&reOrqVD`W_{MCZC#8fwW;6dO0zibX-XEWIvlY7X zrVr>77vf|lCe^?Jk5S2mT$a2QCF{0c9WcmpyPA9l1QK3|5;WLBebkYt=6Fn5*kA=J zIhm)s(w)&?UKQB>xSftVZBm{GEJ8VYY)vj?P~&R}2>jO7My&tEW_pGhncOXW-{eEo zPl?L;P$2@A%$TN0Ad5;3Lil7)-z4!igDU3hXM<-_htaw3$>e~*rOHFCR$=5ok?hZ+ z=Q08tF=^j2ss3k-#!pBUl?!KroDv8Zj5)y1Jeu3L?ssDvYI#3gnA`L8{o@TbL|e_5 zrV<>i9q%)93J%m{ijHcl`yytn%@xZLA}L_md``OWZEoYgOlUneLky&1K4!jt`WrOl zaI@xfca(ddn^dl6zjNKiXZvn^(Z@;w&dtf7@^pc3YoElU4#}Xz918{WhAirex<@l7 z8y$Ht**~`N3u2+wfEDz^Vi{e=O}~;j9#*1H!UZXiV3RPP-VRW&sVA$hB_}ow6%`L# zqG&mLB+Xm71UGzX6BpIM1P4%j8<~u&KGL%My7MM|X;Y<)s^OsF(7(!ZA$;yyE4ee^ zPA&H{Sy)Qzk)}m2Ejq2ve&i$sI#b&gEpVQ58!3M3STeO$B1-$uTsje4o6A{pgfi=x z2275ti*-6A&I{3|vdot_LOEmyY0HYMTx{1R%^fr8@@Jwyz_0XdFg2HkvM;wa!x29F#h`HTpiW&b{_RGE|6b$OvQ{C^Rs+$$?sglU&y~$?>$n#%ORBAiug@qhdV{c>hk*+WuWV zMUb|9Up*>zkTaKL;FmdMiD65Q1I5U`C;1c132L31d@0irQt76V-+69QTPIB{X@CtL zBh&tH;VI5YaGO>vY zr!Ogf3OR*b(7AW22i#trMe$zb;MZBIV#<+LAN3mJCz+PIol9Br5PpH1$$Y+(5aQ)IEaQv1xHxZb55$SOP z8`2}<=)C(v$9$DJT=*?=m0R^*$KKhra^XRQg!v#ft8DVgT2I4gS$+;#It^^_CFQr? z;;O^Vh%HrszhkH(*D!3H;nYBfgBykm=etUKwXoZi%Q@( zQw=Qg?pieyW^i5n)x@I`By=%X&*fV^7E1j@@yXnmHD?a0BupW=3+`c=T~ge{$fMT zT9@mdfZJ{DQvfvI^-q>CB~zL;Bfn3}i3^qDsjAv}w1l`rEv_~btm>sXXFCr7-Lu)1 zo}6zr*mWz(aiJCbY*EwYAWB{)HrjSKr|2m&>5p>U8OsX6x&Mh(o$TO!p8}}MF83GH zZXVjWni*Os8R}Xc4kIt%EIgUq*0ElkD!ef0p7q|b)5Hb8)Er_Q8Ss%;Fotp-X{-ro zBsYHKsdW2UmCE`#%fl>iqNggsb@l?Et=kQRSeq3pu&eaA!E{)$bU$RjX!m)V4MXiR ze+SYu$)JmS-u;$k9G=eO@o?7O&f#y_zb!7XO<^kRkKx<9 zXb#+4tihSgi5lmPN3J!!G@m}6HL}z=S0lp1(;Veu-7wgf=i;V2lTz&u){12{2zX>Y z>uS8+Ex3QZz)-WWI_zxPaCh3@G)e{ld={tmaPjQs^=U1SCfWX?RLU&KGWghY)o zWOz0(nb29h-+oy^mQ{_Qk`CaKJQ7RoKv;k6a1vmf)uY{AQo(cZ8GrNaQv=OeeUw%A z6eMQe`jFbHVOWWQ_P60}Z#>E4;RYi06TQ=tbfUQF zQcdecHBy2PuJC|%i-hlB=Vzz8lb)R2??4JpczF(N)5YaCAR)cdMZ|v-Aj%i)&1{t) zwhgbtq1%aI_&j=@nWg>!fKB@Fu;*mcy1at@! z$zPN$AsE0D+LM}s`qI8p9EhOtuR~jG+0!qAtz3W504ZWmUEb%McZtu_ENV_^0w16I z9RgW#Rwr|^Wa8_4=+)K53jb4S$|B$&Hh$*t;2MfQo}v4e#^8*STTQ0a7WFCjT5}ma zhJz{Qd%XB6%tG&6N>JvFFI3;SXi4_WN#KMIPN$WKoguiXY%h$t`rCdz!q-^aK%%8S zU0%^yznG-yPgB3Eu+fxua| zRqm-!z%s`88b8BSOWT`Lw%Xj{2YC56u88+&TdrEGu{I2|E)tm>9enj7pA9TF?!a;! z>?@B=I%SYnp{bqLu4)9mWMxt(WE(-z`63)At!cPhGk-ROB*GIkO!d0Nj|B?->jN0qH!{u z<`HJJ8h;?r@3WDG``Up}HrkLrOJivo-fJhgeWYj00)>lSJ{e2$hN4TrzZqBRlc+e$!-{ z9`rSWIOoHISf-PWckMxcIQzkv%cE7(Jn3+HTP2FYxlb^2_okT@dnmf>>IhI=m#!FC zbVV@~%;$ebCac?+crgkWjpcEdp^k%B%se3~>xnOBEB8?IsCjtuJfR-6cxH73CXE&J zX!Z!`r11e$YbKN3q#Lp64n*kq-HwQ$Nh6BVKg$Rt72=*FAVLwstu$>3i|Hej7^?u?H42WL40AG=I zeo5?cXWfH-4wMR{ObKjKVxZg9iR%7B1*)MU+*)E?a05C4H_BPWfFS4PKXbf_XOy^d zoZmiNeC7eZB%>3&I~I9td5M|MUzVrB|m_yGMowU zlt`HU)!)PS`L~8yG}O-$7x&NUpOL6}F+kZ}NFUGLFI}x%OCfGXzNgjE2%T0Iwx0G) z`XMRq^^LFQoVL*7Tr1Hv_LSW}uBUHLdSVd|y7s3_goPpFud0etoZ2NfMvycDKW1%%|IKCyI8oh|j z1GU;)Y-RY-*>#}gJEb(AmbFE@0Iz%hB2??jxcww1o#``EwUl3wv^rcztJAXx;a}i@ z96iP$FNDZvus#w>MHY6xn#!?$wGY=s{kmW()Dj+v4h=hE3i*4(G}EB3kxl=IQI7G>6@z z$4%*d2DiWKu!WxnY#h#qtf9e-*Z`VSe`%3&(?OA2RrV61P`Zv0oz}g+a|-WD7LF3# zSeY#ba?b-ji=Fpt%9xQS6KRVWVq~^xs+kyQvf{R-3;sdX=HKk^gsvdtzcQALGhDt-?|CL0+UT^(AxqwYj6^mv z3;+EC{%>983dANS=y%bI4@y=}sqV{Jw}tA<=GYdX(Xm!xoP_!DvBr-}4sd?L`^2kg z_`QLo@|)dT6YOTR z8-Lw&>Q`5Ht<7c!X=l7Y*}F_$`3{F{uxc{<$`}3J8)Gi|EY>~9i6lHlEWk1 zB9nghd~t`NZ1OhnfM6?fEEy{oDXZwFc+ z<@u}TTJsC`q@&o0)5U6=0yh^W8b?+h^A?2n-iw=~bd{Ire(bO(J}iw-1s0+krK$tU z`Yv8y!Ay?;V!Dsvu_RGt@b&%Gdi)+J0!djW{7#5Rl}7X&w2cDCl{m705jahZ)JxrM zzCM7!s1|>W&_sIn<8g|wX&pLk=4g`pU|7uvV?W(oYk0NPwJ*E_hipS94s-uv?Cu5}5DygU%wiJGEK?wnJk zUxXNoohBa~P!^G=B^`*`$;iUqC&$doIK#(nj$4iN-am;K zx?gec#jEsC{__=4qpNNJ(F%jeUFiW%a^;9i^n_lcuOFQfk)CZFMrQ{%XAIAe>iF23 z2&cu;l9@vwm*FY#=nJL&ryMd9Cd-1-fsjUvQ7Km0iuG0b5#KDIa041at&JAnuFZ$54V zTBh!Anif7Rj*H7d?$j^qW}-vatcJ|pb6>6X-!y&}UELkLwT~5AH`L}+0eAZpn`8I; z%<$a@zu};>_{HfJ?v@|B94xP!3-b)D;tIsT_e82d4P!`4i+LWi^XYmemOU;z3i^u> zyMZ*F(6`A0EPX)aVGfs4)XT808DBFb9q9hf^jeV1?SkcJU2<#Dy=3=9aaU-3C@!_a z!qp5JJaRJg{u^)?{fsbnl}c+t58dWd&DrX#&kO6$Ku@c@zf>m@;v3o? zI5;HUKna5`4k8IrlKBaASrUGWjKSB`GUo+VCx@i3K(Tf3WH%tcNFL5z{4;n}+F&8W znMF8}(@NAf0<>?!pIG^m>>$6WORtn(Uu)oEv&XxHTS+ zTD{nH+e2KR&)-`co^E(_wF!n^9XZM>jzOxe3Z%<&qp*;6N`1H9b%#Xl$zTkPMl_&c^wia*X0%R|!(u1m){548Bnv9~_76qV<^3v=he9G3foIp>7R z5(!9><9ANV5~f)I1ENudV*vTtwKx8dd~tRMRo+^lqV|^a6G9o^`wE{Q4)Zw*0Y!wq zk_jA*AZj{f04;Vl4|cgNYIoqG{X$Z0WfiC%FRE+pT)+w1W`^_QXLD!B%j9q_yrTe{ zOxppV_M1Dog_3Q>a~V=wvaZ4nczvkaP~ix{O^+WEgX9i?((*%E_s)inG0vEC)Oc5GdolGApTyR~>^K$2{~>70Rho399! zfAIMe_9#&X3gw_91XG~;wOAc}puAUj?=qcs`ULn$h{3f*fi1%^Em_m}=~^y%=KyHl zaa6f~4fYedK2s=q&PuaVBgxXv@%$isWKJzg_K8!g$!dSEBnG5|O~e+yi{2Kib<+Z& z_W)KaN+H_70ke`YH?}TuO7Hf`FXh`Cy)uKS5BQYu-qP~tF$6r7`Gcd;uQl<_my(|~ z)Ta=SH->Kd83&eCjka%@mb+p2Gu%|t79m8^f-@Pa> zgC(vCehWqK94J))IFS?GuUhUC%1oJ-pz;w>iek#-Zs;KaznDE86)yi;6j5}=E9O$*ke-KGDOt;$Klm%3@_eeBs^3B4*gt3E0oFMr&0 zqbxI))&lS*D#r#0%u1o{6K-MVfIq^K@iHS_>s9P|&$*WJtRr;54i68D^hpAu{M5Rs z|9EknIn{yFE%L*+JU~aFTGNyLGl-WVuM%{O0TlpM-?e zuZR?gqI>5AQ=k_dMi+Dde*pxG*ts4G7S(0N>G~fj z%TGx0saIilzGUbxv6~fK9v{JNCEt{=t3-7rTJ|(QY0sk);dzAK7uCTjHh}QaFIv3v-D`|JA3W@T7LoISL>ARb2vf_=l_fZ@o{BQ+>IS#UmJc zeP&PTE%P)1V_Gl+)Xsj1V5BK)Hd26$1V1+vj1b8MwyE?mAjMz_d2PfE2-9pUC)^hY z&^E=>jg{ZBA_SQ8mHsG2AL9V^h<1sv>fd58;N5)Z4~$WRm8*bl{O={#2Nc{$-5lmx z{23dOgzqz5`AE&8@aIOXPs^<-CC5$kr&1h;hiu>L4i&_cefj*c?$VT}pRC0{S3E*2 zdeGVR-qLhVy1+yFC}8TPy;!hRyQs(d6kX3I?Lo$f;40K$%T6XGL;bjuieT1N%zs{v zETL4=+qCMHY4$(?Z`}pMB!{j1pzH@d=ZyJ6N9hl)RbqfbGEb=NQIOmkz!7}-a@r`M zi92>A%+LjnI#dIByr+N6<>>$cAz+$N<*mP&d7<^*6qnkU?vr}zDZrFuq@YJh3|t%2 z2*cAwc>31~yTmZuw=y|eXZSkWzD`!#+hj5!$|h~{)=jgEk^$bj3WQ}1JH`f~^W~r)Wf_K%k^Edtn<6X7hDc~Zy4*EUfA0!-_(!?>PPXJzGaHVXUUj=# zVa<203Wn?+Uf!rx{H{H#Om1$h!7jAjf;7yfNYPXymaziwV!2Qr#Ln^5TYzKK%0}eYHF6?i%^iYbm9&H&~fs!9#aHD6M_}-8$b-< zBMz^9!vGKe1E>fWqDE&Pk1lu8M; z@qg;hS?mobzpon25N`l#6tbh*@HeHNu&Th|Q>BJC;%kDAHTXFp)ylY59(x}!D}$i@ zqD?i$06YMt6Gkupxg5$HXsd&00eKm*U2!uYf0kLpjI3|a!>5Z|jLficH5)Eq#l zZ_TL@TwiG(Oyn7_@D!o-0bu^&Vg+Zlf!Br0Ba`!JKak>T3P|YRM4*$t5^yE7HPFAfSA9{r=FgWv}Z^IvnU~ z(8_&0(1%&@#Vt@wbG}mz`EI7QRnvS?#I7Tz%C+QL0Wi?}g(u_~3{(~MyCqFX;{kmi z)#R^W?EsPg`-vW0*lnzB9neKo|I`-t)c>Wq@Ptb>X+{N3Ph`DV5fXicBkmgZ%L9j( zO0)!14ijyMBsZ?&(gmLis(A0u$K9OIjh;%1N;_WJu5|}jQ22}AvN-Ik__m6ik7d(- z&c41{U(^fbR|o=WF5q~_KcAC=(qsVbR3Y`m&g-C;{U+nts;nN55{^K3+>KqS=kMZ% z!`&m)3k7W5@Ye9FZVUkgxmy{6n>wy_G-9~z;itxr=BuWo8=IZav_7L(nfOv{?v)&T zHPz}1sSN6dNWD41hQa9}U1Y6}j)wY7rB+B}+VBt1!t5mMeYfJZ#hk12>Qb|q{WHA* z#!Wh3vzHdJ9`}Iac_^4-K1W2Ym2A@hDSt%Sm}&k(~k>J_>R0i*{b9bvscHS6 z%CIp>>YKZl#IB`GG38X!@$17N5xCHB=eMh>> z)#2fo6jPOc^Khn!IRNH5lArG&I7xz9C#*-saBjFm8i`r;{XAs(nL8p7MRv&qgLWKo zqX9O0SiAPhW4QOT>B^ANbauR*P2~u@i1_t!#KqxOsNoyt;)v*B4GT@x$2`g{#dWejHx=vqC_RG-In7meVJmE0 z@{_B)Tch3TGxs%$U1zdA=J-BePLxOyy&E#>A8^+^n|X89xqmKS`}Ke($1JY0FYm&6 z&UAj7QNNRY_)CgW63aWRgWj*z z3Fxr;e3H2Etpl}KJahn+r=;=pKB0w1nq;?h~QfeOR~wA5_AL zK?W;@6+<@oR*hv>Gaw@fSECvB_VA+P(m|I(^K+I;UVV2!Ca7itKSgaogkXYm`B7@9q*%MbiO^O0 zOc$pjBAUB020P|}TL2>v5Q*rEM5c)0VMLPr*cwICW=h!^c&HH5n=a@6S950-6-T>9 zY0^M|;E>?%L4pLQkpvGA0t9!5;O-VYxRc-n4GxWK(BKwaI=H(u)-XlRf6keitGSt3 zvlbUn-Bf>4{Z-Yw_p@sdy#Nr?`VIheZW*z5n0LXQU0Z`!oG!?|Aq6IDiWgJQis8@Tz;CowV&PFj}9sL&xH`2UY78&KvOFZhVWH)IC=Kv z0s;bO{9_hCi*%3^_6gb8ds1F$s&cIh{hIXGompE<afyRNE+5v{+L32lR$b9*5*WmR&(TuouuSXkr%!h%*wavoh z=HbY(P_K#x*Wn6qVBXvY{xqV{ugQ?q)l$9f3tbS z8Eqd2$|8{-US9cZwQGl6=XU#h%;KXufa490G!(k>J!wVjp*t(~7hG z9f@P3GP-Uv_Nru?{U~Kt$%Fc)VE+T(8Lmf+LUz=FsY*?)+{uQx!9dAesF(P{^DnK# zUNa4fDSV>bp{+c(M7^qO9tWYK*ZmvUf+Ab&*cfogR*Ejv#pUoUcsOlybC9ro8Av<0 zz0AEKND*(dQR66WQfc{BderQ^vl{h6v5<%yEIAZxHEKW;$f!kH*OSn**bt4udpAfX z3QlFiWJu?jU$M7W7Wj=Us^`w+k=u7=JVtza$V58~mTw7lXOo9ah}>HqBj7wG;xLcv zfcM`1GNSC}j;uz;|0R!NaWpDbCn&^x|5KC)n@6ROmvnPU9!%@>*3E*h%jtEVp-#?0 zZHvdG+t;=G(;a=?E^VH}8lJ2MQ!7!YsH!ZBo$36vw9|IC4YnV`_@$pLzBviNj_jHh z+pZdfBWzQuH+@N#ps)0!2IgxeH>h#0M~*ekU)f&ieo}g)v}*r~UF8!|@ygGWPIUHj z>`3{*H&k3HgkEn9JfFI(I+#Si*1OO1Z-9g<*C_UpIYp9!-7D*tW2H;<_*HIYKnT3m6fl2KlT>E;xF; zk{J{wZ;5s{Nsut2W_?-syz8^#jMq^%aYr7nh|`HwG_o(0w7oN!v@4!5QjRP0N@KxmkpoB7}|&RXx>Bl<A+#Lv`Bj8N1koG28s%Knpz=0uA`~38bcVf{G(72Ro-6tirinV5nrY_yOVnS zG0}=ZlUT(~nI&w?dPWl~k&UzPd{cdURvi>hnE z*XC!s$8=cazuQMJ4`)0TR~LWL^0S}P)j`Nk*}}l#KBqj~D}tSoh1zx8hN(eGC1GC< z>Y>YpW>9c9-44f(M`toqj|Vmhx(H4N5)z3X55eoylOBs|_n<-}0=Lu;-8DSEckXsY z!)vJ;vH@|BfSeBm4OC(BR};P=9vU1*A@e~mjYcEEaMST;K1+ZqsQfl2hj#O(a`zjX zA&#v3c50tVgaeLcqNGKHI*qDT4J5x>?(VI;RmMd36xp zaw~`(a~>r9!~36L6VaT6as*Fc5uuy*)m^7Rd^bwMBgNvF*$(+7s9KDixoIaiyq;3ISMEXUiUYfsLs!r3pqcB1z0w4K&^8`KuN zc4H_uvYK_+b0PJ2TZb6BcS^}0Bi#aykb-XGS=$j@l~Q+lay_23#9=Z@^wQa$B2M*C z0U;tY2{cR2bcTT|r}X4P-%F!Y~wRSTb<$&K-Kbyja%O8Ub;(@Hqq! z>9Ooy-yAH>@It4eW(}k@@=ojX&lX!0mmU1zea*guX)b$vx}%4rjg;PSi89+|d#8fw z3g@GTG7r++w}-@+kw;jxAdDr~pbr=eKi%TXN-ObC#K_JF}>=`OztYky53VgWRFM#dk+0XYmG?0 z*SFK$5xEC{%Z|snB$?%*=JoqH^QzXi!%XN(U5DfTeiZhOX;V6t2N^pQOvd@86BY40 zQx4{@Z&e-WvwWXDuC9D>`U0KgD9S5ak)${}%c{Kd?!&}{@c6HVTx?eAhRvrGIHt z*LsN)ExU@lMq2lCAkSvsCY62c$Q|0RV&RLVO|3l;bRhGIeWqq9jgBD<@}Ve>Qpq;+ z{W5+-%$-v|4Et$7+HhKYMa~M%?~0a>b>dY&2=uF zPitMv#*E_)(reZgU>9s|gMxllW7Q>`BG5y+K+<8j|94!)Z=pPj9fR zmxv>(4^SI{MDSLtq*#fp+3AY=lzah1mo}7_7OC5(^k^fAx1a`G%>&rQ!Zr z!vyOUOL788MgCZdYgbGQd^&_{b`vTrc8c)J?0V>|rzWOILMQ%kPyfMlUNIrWh2w2k zpdbjJTJGBYRuglWo46oDgF|r}h?OpzkE_t+7Sx%CQB>+uyU~!khYV}WNV1)^#CtCatWC)Ez@mph` zac|_w+n7TR6hh9BUtNQJOi#u8O0Qy2LQ2shV`B-F>Nk?LJy$Hn2iI$DT#1Oq#&G*S zVoHHmX%P&`Au$=xa8eRSw-I(usJM=1L7!)Qr@lDL-ll13k(WgHd%Q^SB)_-bo~8BT z*B*)=yyX|3hyUypXt#tD2&qXmQm{BSH0s!e%(H>W6{u3Eht>H!5?aEOz?MRk3Cb-a zZNXs>`!?>}h#p(k(zSGdeiK}xcKgo5C#)mJj8D?O+xQr}p`LPFAS%+da|9zubZcrR zPj9|c>AgK_KdR`fuco1N%9FKvk`qppcVO)&>7^k|o>eEFl`0pN64%rvqNOSLMGPQqV>?ZkdvSySfQ~sMTWIrsNnL8 z7y(Fl_tWC;&3Z7sW_81%QYH`E5I*}}IOnk9;)#`~zBeeW;)A~?I?hK2rJmcXyPpjl z=+LciGgcQ=SE*SRPA}M&qh${&tuTc97K~^1W$yC?rd@UWcIjg6UYv=laW_4kd-NT7M9_CEw{7E<=V&!{nXINYL`aB2KtJWNtE#Lk|2<8fA>Z4kmBYq ze3G#TnC9f>VsWJ4Uw=0qb)|?WV2xt`cA!;fCJeI`U$u}?zA5|;H5_5YktQD-WDs+ty0|mg{hD7;sZeO%WtP$|JGcJDvQwwFj%8~u@ND&5L(c6DG z{-Z4;8P;wMI*x~yU(S?!u)_OL;s=CnkA|+BWp@SyUOo6FIv!@szXGXB`R61eelOh6 zp_ZMc?+G@w7qB$VrrSulA9d;Y7m)b$O+Z3M_FN<*W#2WE5D4}Oo;?k9&F)h=7DBO#e*))?6=^<@E?g{^GK0&h{rZgPA zD5SYm4t1NfW|1el<5~I zMv6U(cs*1dF!dZ8BooAiUd2X9K*UHafwQ2;UFBygV2uJ)E;&0g(2Y}i1L)T2!J89p zTR?G&7;V$w8S!l@OcQNRBjqqDBRv&n%Vi>f8O<0&H;iT$=5GKc>afOV^3xEz8uDO* z)`IZ{Al7bkgNS5qMclM#2P%z>8Avrk_$oRWL}7!6w&RQCwl&MTi(%-m3Duu#M8+p^ z{G*gLZkf@^UEP=b?eLf(&{81`8`oy+4<9B=4i(|McsobHwY@EXtP;LQrSeHE`#RMa&~>zC)efLB0^f8LS_-8ZcC?g z;}Z*<+TLw@$)nN9%h7YIXS(&?u8?!rA%d)$Z3M3 z|BrW>;f>E|yY($7H{VvIE??(ef3m1{%T)S7Q_sTxVe9+*6zx3~bLkKBj1{OafZLk* zK`WA_S={E!Pm}MDRm>}#Rm{trZP*H9d0C?VX0-q`D0%=QmOY@E0W_89R;Ev#j#ing z>+^u*U3xjF##-;P_dBS=!PF}@9ZU9jX6gTmu)u;NVT8OS?;`o%ZSxUgNsDi>^yBwGHl_mz;*-nSqxs+splLnkT;RDuKS_6yB66VIA0+dl?rAqVjtK6zrc@VG02Nb{f6q>L)8c|a`rdCp6K0G zel*IWb`P>wn1ObifmN^;&%mVyFjnF{Vbgh;->hV6V`))TjaAb8*p4v}s5*|#KR=KB zEx^-@SN<4#i@NBN;xw4D_5SOT=iy=#^W$kCUzRG%M!RKJVDl48n3(xv%#-|$s-9cB z??@C;oG#P*ud9G=rivxI1e|e-WI!ppy>`zS-7o`wZO#iFBzo&s(R^Ti>?ci`Cl@LP z<>BJ~oWfg&gZa(DEbrCDacLp9PPCB>&reP*BY%6ZjGFEo@6;6{z~||F6Uap&g+wDh zEFSXlo!wN7BYk!-%ZBF`bM}(3C%@a($_SuPEZ$u!kl&nTWsvfZHNIf^7Rk6Q1+0HS zYq&wE9dWc7%@=B0L_8}wUpu(d+1u<7S0mDv_bLG2@)Hj{p@g+H`%7_r#0+zXb@Z}E=#3!VVyi}(&BxsMu5atZAcs?cZ;UwRg!9qX0@C~O5 z=DK|O**fa2d5f1xn>1?sWomuEz~P|=ElXhXFd`^_EPUJ*_xX=m)FAN@^UUJLuwF@N z;DoSCh2x3O^IL};)}rJ2GEU=_+mFtL{@5B|Cszt;FkmOucpP@QA>V3fCW7Bnec-*N zYx~C_k>M|+N)RmOw-wD_H8QNFbF>(8VE;wAg83!$e=HM4E^6;gs{@i88Ear`$7_3w zH0nnLlA>JMA3Tr-#vdupZvOY_jisj|oV!XS0c@A9w!5Verq<#QAiOVZ%~jO_Y-_6J z#qC@lc`J2}bmiuC|5sR4x|x*)n3F{E0FQ{>rNv(=*3hl$Juyb!S-_*>x~lMDiU#0^ z{&7_Jy!qc96?$~ZN(pl1#nl1yZgRh=aG8Lsgn3cmi?Myl9QV&6@Hpj!zzJx#3A$VM z-)+w&fNuzu{JZ}tgknk(*wl1b@5%CSmjx9F8JDRfm<9PlCj9Y0{?|`-1}Yg4wn$8m z3HK~(-aj6Io~hDsu1&MN1T=&1E`9+YIe z^QAW(Gaax{D9?oI*L3ojTw}(3^|Q5a={zrveBn$Jr}2hQMHe^VEt<~F!qj2D$MEzK zBlKW1dX7c&swXS=0cN+i*u6D#^TXHWlOmtJ+_2Wm#O4WrM0}pofg(5Eta7BGYM<}m zMQC=nlIa56rO!0aQSvUlpMX-#{e1J{6AC?Em!kiOWcFJ$dG}9Iw{TKSO)prr4Zx*=ae8XSQk_eI`T3hltO`1>5sbb8&K^-?+apChx z;FfJwS1C;b7?-;}0QuJE*MzQ4j9d@zLcj?lhZ}8o`QIS?uVW=BxP61YHgh)(zd?ck zTOshhlBBbr3$$9K+}iZ*V1o!Wc2mv_VL1*Z)s5Y}W6S6be|He=Eavqn_QQaz0%x&) z=ITT=1Beza&YDl>aSt+$<=eo9whcjUy{P2~u~1x%2K$^xjxjW;;Rf@=jW(kk_g z*(<%AnOa@B!Xxr=yzuVmY%L?xXyVtsm?Ydql4ai>Gf_E>r6Nw594v7(S|FSk&I{87 z!EZT=OOKm`l^F9?(jS2cz?3lh81s-Zhcu;&1Pay7VqKpv`DDEa%T-F?kZ-Q6mi|D8 z*VU}Mu{D^&?gnVlDP7r*n)V?e)Rj2WY|Oy(SxA>o+I8lrG5f^cp}L}Ky#Ur@AWi8J zY8jk?RKy>V6e{v9)>f5 z*?8wXHty%lL-RrzwK0yPKvo9~2tQ~9YS`1cF08bm9`B|Dyi&t!i(&@4*_5Eg^|oh2Ft4S$&J9w+mlOe15C`dI-`n-PUqI?Y4o6Z=Ihy6@(t>?AgK{ zMj_XeknQ@1>A@vuWo*LKs?Q`}_#@G~-ItJGe3S}jR;J_98DODEP2e)<@P}*zGJd13 z+tQQ`5ba@gSc2PBGbQTmkDR7gS^#E*=pW_jzmAvCsPF~Znr0wlA!5OK zQbD)f7hd`;axL+tinlgkMcLmw0+3F{EEDzqp)QsU?WTM9t=BDay$yu)HsavB=&V!0 z*mJx{QkS1WO;=fBX?pG}!Ee8O_=ZR2?=$cGonhfpf0D~)QoVh#$7Z>?H>%CNHjN^m z91qSfR);e`#n}7taHOh+NZ0{Q21Z-f}->~P@3P2+MHArJ@^Y?D)FA6ju=M^^gc?wA|m%F zT~hOpF`kb|^b!zovCIVZJ{x{i(N7L4n>?D9ff0h^A0QLz{2|PK^aEi9##H%TOsThW ze#eUBwdpI0A{Uxgm-E^j`nooHQ7DK?)~+~NF#B-vy};1G>y#(3{^;_Nj~^CgG(EZA z))2U!Na}P6dV(!NP~LX)iJc_%eH>dla1`C&cDuA?Nt3%IrU|*(s#SHta10xKyCx1F zSz^B!O7G*J)~e6xDbn8Du7RFa5S_UHLTwTKgITS>7On1 zMC|apMegoo!ks3~X7i|*Cm1emPBu&^%Z7u=N^bCD2oVrt;tX@1K5^)qWHcHN zB2g>=;!PU8cJfnN5FpNhDA<=2Umjy_wl=VzS_9e8nh#ZZcv6f2<(Eb|&(q}u(2!mM ze1MSSHmzyiNFnTbbxH`puM|G#N^ZZXL-VR9_3l>;J2;Ywbc3ifLG%4894mPV?@ym* z`nf(!lBKf!WJ*=sz5AynF>?KU zXVOwxOAKKHFC1(iYzU+gANCOHI|HL{0)*500XVV>Xq=|_yAFt!S}vLO1iP&l*(*Tf zt%ZXG|7sjPxseS(TEmuT$&H?Ay8sDDdHa}zSst6j^#H>{5VW#iGx{F?Y@JlZyTQ-D z05j;32DO2VOJNB`xWxkDvo}Dlwnxrm%JNO9?*vevcFaDZ&Z4ck!U=IQ zY{}4Wy=;q*{%ZUo>31{Ohm-mOfV=aR@n8Tn*9ZvfGkwFE!V6viExHnvD7FqVvVRO^ zPEyyC75<9v2l#*p>2PEt#$E^f@(M983cV>#0b-1>-B*a7Nvs0L?MKnlAs5iX)Ul$? z?;<73r)l@UDm^4rPx>NNEq;r{sDVRQ?6S(;(j>dsg39;??LbUc-Ru*L!4HR1H{1d4 zzw6`uCfG~sQ@3QrGZ;9kYXhkV+&jFI*bER?srAWE&NHr;=VPv3AJH7VSzqCipu(%< zbjMSmy7{$@ovCJx)m20A=fyLLmcZBMBl2FsEhz>VdaSs#_ZhjnZHfGx7YXs#~&utzzZR3H+S8weDRL`0IO9Pq1;eTE*Gj>^ z#8Dj~IhK2&bLl|#?pQ8YG{E=AQ08K>b0lW47<3Uu<-D(HmvzdYyM3{#mRXC^oXWzn zHE~G1LnQD`)X%q^wMi`mX?2wi;*?W(60kj!cO%u#P+QOj7=7o@Lsz)=U7PtDe@Frk za5C=x@QNmuQ4WK_NrR~TPx$QS#qmdS!q1n>;P?X%x1yO{tk$Tx-O56p5Yy*BLObB> zPrb$^mfCE3wb=1EW6ho)36-Rvocd9I`W8_q;>bGB^J>xY9d^C=L%F4ci1-t~)sO~% zR!P}Tw}h7jmj-=ZDZ*E#RtVzdsG<@mP?$HijyL-pnm>>nOV{cFt)5bPcLJdl>J#Te zm#y@}Ab$<}>M_BKq>xtSV0KiB-6AdVT3tvx8yphSHHK$bGS^`Zd)3eTEtI?THMnrp zj6GbDnO45yY=XX$isVH&iuHm^AI!e_DY`Prw*so0yd|2c*N>4Mzc89YzvJQ}(d2mP zM&178+gmI`+$E#v8KOxV_z=^b7BHF){C2%DlyDJxF4kh2MN-f8uG-qAMtE7~_G%L&TO&(?Nk07ZL>I zKlK4m5}@Z1Wn|^cmnod!rQdiI-l;Ql@?;WA3sZ5R)kwl(h#nm21CJF zhy6n-dNV?q{^9uztr6|!<|q{LUG5?FUmyCoN%o(DVy?sF2RTp7ggf*&%`4fcOVb>S zfVygngoKD|EQ;YKdC0QpMD=m30WXfWYzGU;)7`Kce7zZu4ZN$XvtEEjQKXC_D0z-| zC@Lq4hfoM;jI0!fuP94SIh^I?&FIPSv%5NIuv>zMlvZ}|W0nAi!=dEY;r5?@s^_De ziBv<9W%?*S4M`gvRZfRIK8B%U^?TIsQCE`R_^(6^2g8Br@|&g;M`b>I$XB`Uw(vSQ zl42jm9>+|GBgeA**k=0F$g?TQ4v8G{u4P4c=Ib3Hd6n(!(*l&sw+Sq|xTvY>u|5x# zh%K`TNj7br{u$I9FfNGI{(c7yMHV>*Mf&-@vGl<5KcIde=0 zZgZg*$mxRP{)4sU0kxnlOZ)GdUQvlq?1|*UZ_zIV7Kii#tOI^-jUhSs@y$wQ~!!K~dlg!4ue?Rukk%diB@{7b~QRNn~VutnM zz@114+boQQY_+GT^5KQ{%a-fSv}GKdcKBtnFn(8B)CUthUhQQAdl|wkSZ6{B@id2B zol}Ub^{UW;Jaa+|M!*@Jf}e)$FEBZ2G}d5&EpJDUQ^%sjo|{~#c51@ZL|f3on8yxY zDp=5`i2nXuez1#iOFwghdp$le8iL~8N~3_P%d*$8ieXJq5;&Lq)a&Olhr>!bn4pmA z7m-WHQ$uZ>WQGnjhK^bVHBI*z#RQ6LHFj~9edc!sJBZ2dGO-th1`r>3<57J#Ks}Of=y(zU9BL0 z(Ck*muSY3Z*j{^X!@X1kJ?7+DR&=94m~`4Y*)nU}T`&=X1kqZYw4OZ9$LpCauYoygH_GV>B`%IPXqm{bW`MdKqWh38}}@GuSNhaLM|S z5A|(Jmr5wF;`u9xUOo#}Km&R9bY7^&s&$y4`d}(;7`)#saCMbgU2}zJw@>>k`+7}# zGSoW1bxR}6XY}$Rz|-R;Km@Vz+GCYG0qP4!zgvc~|s2dEm(KM~NVAzyR%W z4W%=?23>iCR8+HVYA~49^T!B*S}%dT;+;4vjkZ+JBc~-6heicIEqj9{9L8<8BI>w> zYD4dl!fNH*C#B-@gY)BhXVRyZxZN7mb(-VadtGHvoO7dsiKi?yViV5vsD6mO#7m_J zZ%7V7Y+HsLsMmR4a@fq+rDa}c-z_nJ{Y1NGm-U&3f_NaxZd9dvS5@@|UV}^5V&}9o zyfbcTY0}OV%krU5Nvn2(By(UALPX!zU)K;OCXHKJ%;OMar0kO>(e6U|bda>y!MA@U zNt80qcOU^38K`p^gMx|LRI3yW(fbpy`$hBz;oO<*?d5+v<%PraJG06z7x}cCa5+l2 zIyBAE_H4Dy$v2^;Z)OKYZB)nF1MdJI$lL$O5g=Y+^-U3VrD$v_)R~MO~!60a{mn9AB(@9S1;_PWXm( zOu+3&J7MM!@P=n1W0lTPI-t5g3HUIJJT3s-+UG_8%bs!$vk z;IT>BMMzrA>sU=q{S4(Alid0aTV)AbTJ?~{T-PQf%=N zy|qIBPHyv)$tUd^L;Zc8i(&i*+|P*h`>Q|^@TQ_9^14> zPuRqw{AkV!Qyy5ZFiiaPlc<8gC)`Tq;H<1{HaZ(v7M02mB|YEk}PB&^xU$DALCsT z!wiR80EOHR(_6!rQpViKU%*d>Mh@3}SQ;yzj%FQ|NsDUoI$azUhNM7~yG{t9VrXhw zlk{T#9TuRss}>MJ1`fr5ngncdj|Nm6DlvaCxsJZ4Y~(gbfB!-V$OFAKn&{N#eFFNs zC7Yg#uFe^P3%nBn*cAUP=*DPb_`pm9^Wg!_YeGwlH$W3T5mvFs@x<$op|75T0dqjn zt$tYSmF4wSz}AK5>%`Cqgn$On1)R(c8E&pOydMBRh?4okhP>-_&2~#xQ-MQ$a=zD> z@pB0d@G>+`b!UsxS8VrzI+AzZbcuu5`tXgw+PFzpErIH2iDW#gGC7(k~Wy z=#q1PXA|X!ZOZ)9m0!$2*ECt|mi|3GA^x$m9pe)Jd6|mNtgOWa|DT?c0F#F(jsMTw zQI+_|rq-TLEBy0r3slr_OfrRk@2V7d^Ynl=-@j*?nu?Csp8MZ3UHuF-{D1l2j)?a< zFHzoCgos8R{^wn&=g*n0tt0m|sU51wr%jLdF3ey=#xyr{{~8HY9QRhSVXKOxl^qsB zAim7c^<)or?aE1Z@PN+tPdlD~R8SNBuhwq2vQ#2%*4LJF{8Ft4`p--v|h@lJ6zT-x_@WAArgsDgXcg literal 0 HcmV?d00001