From 41e895c631ee76102a73359b89ed484397326abf Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 11:18:09 -0400 Subject: [PATCH 01/12] beginning updates to docs --- Docs/containers.md | 23 ++++++++++++----------- Docs/details.md | 11 ++++++++--- Docs/images/deploy.png | Bin 0 -> 72250 bytes 3 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 Docs/images/deploy.png diff --git a/Docs/containers.md b/Docs/containers.md index 2129198b70..ef2a792717 100644 --- a/Docs/containers.md +++ b/Docs/containers.md @@ -3,12 +3,12 @@ Singularity supports containers in a few different contexts: ###Mesos Containerizer -The default Mesos containerizer for processes which sets resource limits/etc. Enabled by adding `mesos` to the `--containerizers` argument when running `mesos-slave`. If this is enabled, commands with no `containerInfo` definition will run under this containerizer. +The default [mesos containerizer](http://mesos.apache.org/documentation/latest/mesos-containerizer/) for processes which sets resource limits/etc. Enabled by adding `mesos` to the `--containerizers` argument when running `mesos-slave`. The mesos containerizer can isolate the task via cpu, memory or other parameters specified using the `--isolation` flag when starting the mesos slave. Deploys with no `containerInfo` definition will try to run under this containerizer by default. ###Mesos Docker Containerizer -The [built-in docker containerizer](https://mesos.apache.org/documentation/latest/docker-containerizer/) which comes with Mesos. This will manage the starting and stopping of your docker container as well as mapping ports, adding environment variables, and mapping volumes in the container to the Mesos sandbox for that task. Enable this containerizer by adding `docker` to the arguments of `--containerizers` when running `mesos-slave`. +The [docker containerizer](https://mesos.apache.org/documentation/latest/docker-containerizer/) that ships with Mesos, will manage the starting and stopping of your docker container as well as mapping ports, adding environment variables, and mapping volumes in the container to the Mesos sandbox for that task. You can enable this containerizer by adding `docker` to the arguments of `--containerizers` when running `mesos-slave`. -To use Singularity with the Docker containerizer, add a `containerInfo` to the SingularityDeploy object when creating a deploy (without specifying a `customExecutorCmd`). The Singularity deploy object's `containerInfo` field mirrors the Mesos `containerInfo` definition: +To use Singularity with the Docker containerizer, add a [`containerInfo` field](reference/api.md#model-SingularityContainerInfo) with a `type` of `DOCKER` to the [SingularityDeploy](reference/api.md#model-SingularityDeploy) object when creating a deploy (without specifying a `customExecutorCmd`). The Singularity deploy object's [`containerInfo` field](reference/api.md#model-SingularityContainerInfo) mirrors the Mesos `containerInfo` definition: ``` { @@ -20,13 +20,13 @@ To use Singularity with the Docker containerizer, add a `containerInfo` to the S "portMappings": [ { "containerPortType": "FROM_OFFER", # FROM_OFFER or LITERAL - "containerPort": 0, # If type is FROM_OFFER this is the index of the port assigned by Mesos. (ie 0 -> $PORT0) + "containerPort": 0, # If type is FROM_OFFER this is the index of the port assigned by Mesos. (ie 0 -> first assigned port) "hostPortType": "FROM_OFFER", "hostPort": 0 } ] }, - "volumes": [ + "volumes": [ # The sandbox for the task will always be added as a volume at /mnt/mesos/sandbox within the container { "containerPath": "/etc/example", "hostPath": "/etc/example" @@ -49,17 +49,18 @@ When the SingularityExecutor is given a task with `containerInfo` of type `DOCKE - map all specified environment variables to the container - assign and map ports and specified volumes - map the Mesos sandbox task directory to `/mnt/mesos/sandbox` in the container -- create and start the container, directing output to the configured `runContext.logFile` +- create and start the container, directing output to the configured `logFile` - run a `docker stop` when receiving a `SIGTERM`, try to remove the stopped container, and exit with the container's exit code -A few special notes and variables that are set: -- `MESOS_SANDBOX`: The Mesos sandbox directory as seen inside the container (generally `/mnt/mesos/sandbox`) -- `LOG_DIR`: The log directory that SingularityExecutor will use for logrotating/uploading/etc, generally mapped to `/mnt/mesos/sandbox/logs` in the container +A few special notes and environment variables that are set: +- Environment variables: + - `MESOS_SANDBOX`: The Mesos sandbox directory as seen inside the container (generally `/mnt/mesos/sandbox`) + - `LOG_DIR`: The log directory that SingularityExecutor will use for logrotating/uploading/etc, generally mapped to `/mnt/mesos/sandbox/logs` in the container - The Docker working directory will be set to the `taskAppDirectory` in the Mesos sandbox -- The container name will be the task id +- The container name will be a configured prefix (`se-` by default) and the the task id (`SingularityExcutorCleanup` uses this to optionally clean up old contaienrs that are managed by Singularity) - SingularityExecutor will explicitly try to pull the image (ie, must be from a repository reachable by the slave) -Here is an example deploy to get you started: +Here is an example deploy you can use with the [docker-compose](development/docker.md) setup to get you started: ``` { diff --git a/Docs/details.md b/Docs/details.md index 7675c32f6e..e910f6d1bc 100644 --- a/Docs/details.md +++ b/Docs/details.md @@ -6,7 +6,7 @@ Singularity is an essential part of the HubSpot Platform and is ideal for deploying micro-services. It is optimized to manage thousands of concurrently running processes in hundreds of servers. ## How it Works -Singularity is an [**Apache Mesos framework**](http://Mesos.apache.org/documentation/latest/Mesos-frameworks/). It runs as a *task scheduler* on top of **Mesos Clusters** taking advantage of Apache Mesos' scalability, fault-tolerance, and resource isolation. [Apache Mesos](http://Mesos.apache.org/documentation/latest/Mesos-architecture/) is a cluster manager that simplifies the complexity of running different types of applications on a shared pool of servers. In Mesos terminology, *Mesos applications* that use the Mesos APIs to schedule tasks in a cluster are called [*frameworks*](http://Mesos.apache.org/documentation/latest/app-framework-development-guide/). +Singularity is an [**Apache Mesos framework**](http://mesos.apache.org/documentation/latest/mesos-frameworks/). It runs as a *task scheduler* on top of **Mesos Clusters** taking advantage of Apache Mesos' scalability, fault-tolerance, and resource isolation. [Apache Mesos](http://mesos.apache.org/documentation/latest/mesos-architecture/) is a cluster manager that simplifies the complexity of running different types of applications on a shared pool of servers. In Mesos terminology, *Mesos applications* that use the Mesos APIs to schedule tasks in a cluster are called [*frameworks*](http://mesos.apache.org/documentation/latest/app-framework-development-guide/). ![Mesos Frameworks](images/Mesos_Frameworks.png) @@ -29,13 +29,18 @@ The *Mesos master* determines how many resources are offered to each framework a As depicted in the figure, Singularity implements the two basic framework components as well as a few more to solve common complex / tedious problems such as task cleanup and log tailing / archiving without requiring developers to implement it for each task they want to run: ### Singularity Scheduler -The scheduler is the core of Singularity: a DropWizard API that implements the Mesos Scheduler Driver. The scheduler matches client deploy requests to Mesos resource offers and acts as a web service offering a JSON REST API for accepting deploy requests. +The scheduler is the core of Singularity: a [DropWizard](http://www.dropwizard.io/) API that implements the Mesos Scheduler Driver. The scheduler matches client deploy requests to Mesos resource offers and acts as a web service offering a JSON REST API for accepting deploy requests. Clients use the Singularity API to register the type of deployable item that they want to run (web service, worker, cron job) and the corresponding runtime settings (cron schedule, # of instances, whether instances are load balanced, rack awareness, etc.). After a deployable item (a **request**, in API terms) has been registered, clients can post *Deploy requests* for that item. Deploy requests contain information about the command to run, the executor to use, executor specific data, required cpu, memory and port resources, health check URLs and a variety of other runtime configuration options. The Singularity scheduler will then attempt to match Mesos offers (which in turn include resources as well as rack information and what else is running on slave hosts) with its list of *Deploy requests* that have yet to be fulfilled. -Rollback of failed deploys, health checking and load balancing are also part of the advanced functionality the Singularity Scheduler offers. When a service or worker instance fails in a new deploy, the Singularity scheduler will rollback all instances to the version running before the deploy- keeping the deploys always consistent. After the scheduler makes sure that a Mesos task (corresponding to a service instance) has entered the TASK_RUNNING state it will use the provided health check URL and the specified health check timeout settings to perform health checks. If health checks go well, the next step is to perform load balancing of service instances. Load balancing is attempted only if the corresponding deployable item has been defined to be *loadBalanced*. To perform load balancing between service instances, Singularity supports a rich integration with a specific Load Balancer API. Singularity will post requests to the Load Balancer API to add the newly deployed service instances and to remove those that were previously running. Check [Integration with Load Balancers](development/lbs.md) to learn more. Singularity also provides generic webhooks which allow third party integrations, which can be registered to follow request, deploy, or task updates. + +Rollback of failed deploys, health checking and load balancing are also part of the advanced functionality the Singularity Scheduler offers. A new deploy for a long runing service will run as shown in the diagram below. + +![Singularity Deploy](images/deploy.png) + +When a service or worker instance fails in a new deploy, the Singularity scheduler will rollback all instances to the version running before the deploy, keeping the deploys always consistent. After the scheduler makes sure that a Mesos task (corresponding to a service instance) has entered the TASK_RUNNING state it will use the provided health check URL and the specified health check timeout settings to perform health checks. If health checks go well, the next step is to perform load balancing of service instances. Load balancing is attempted only if the corresponding deployable item has been defined to be *loadBalanced*. To perform load balancing between service instances, Singularity supports a rich integration with a specific Load Balancer API. Singularity will post requests to the Load Balancer API to add the newly deployed service instances and to remove those that were previously running. Check [Integration with Load Balancers](development/lbs.md) to learn more. Singularity also provides generic webhooks which allow third party integrations, which can be registered to follow request, deploy, or task updates. #### Singularity Scheduler Dependencies The Singularity scheduler uses ZooKeeper as a distributed replication log to maintain state and keep track of registered deployable items, the active deploys for these items and the running tasks that fulfill the deploys. As shown in the drawing, the same ZooKeeper quorum utilized by Mesos masters and slaves can be reused for Singularity. diff --git a/Docs/images/deploy.png b/Docs/images/deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..e285ef4bcd656982378dd40b9b446054bf60d370 GIT binary patch literal 72250 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%0A{O2H$H~{ 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%0A<0ypi(}4WjWt_ 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 literal 0 HcmV?d00001 From d1a2ee8f19be1ac094891b0c0bea9b2f2f65f656 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 11:56:06 -0400 Subject: [PATCH 02/12] more progress on updating docs --- Docs/database.md | 13 +++++++++++++ README.md | 10 +++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Docs/database.md b/Docs/database.md index e66805a1c5..08d253b596 100644 --- a/Docs/database.md +++ b/Docs/database.md @@ -39,3 +39,16 @@ INFO [2013-12-23 18:42:10,327] liquibase: ChangeSet migrations.sql::1::tpetr ra ``` More information about `db` tasks can be found in the dropwizard-migrations [docs](http://dropwizard.io/manual/migrations), and more information about the migration file syntax can be found in the liquibase [docs](http://www.liquibase.org/documentation/yaml_format.html). + +### Purging Old Tasks + +You can optionally purge old task data from the db by specifying `historyPurging` configuration. In the configuration for SingularityService, you can have a section similar to the following (default values shown): + +``` +historyPurging: + deleteTaskHistoryAfterDays: 365 # purge tasks older than this + deleteTaskHistoryAfterTasksPerRequest: 1000 # How many tasks for one request before we starting purging + deleteTaskHistoryBytesInsteadOfEntireRow: true # Keep the row, just delete data to save space + checkTaskHistoryEveryHours: 24 # how often to check for tasks to purge + enabled: false # determines if we should run the purge +``` diff --git a/README.md b/README.md index ff98dfb482..aa6a018f11 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ For a more thorough explanation of the concepts behind Singularity and Mesos cli - [JSON REST API and Java Client](Docs/reference/api.md) - [Fully featured web application (replaces and improves Mesos Master UI)](Docs/ui.md) - Rich load balancer integration with [Baragon](https://github.com/HubSpot/Baragon) - - Deployments, automatic rollbacks, and healthchecks + - [Deployments, automatic rollbacks, and healthchecks](details.md#deploys) - [Webhooks for third party integrations](Docs/webhooks.md) - Configurable email alerts to service owners - [Historical deployment and task data](Docs/database.md) @@ -30,17 +30,17 @@ If you want to give Singularity a try, you can install [docker](https://docs.doc Run `docker-compose pull` first to get all of the needed images. *Note: This may take a few minutes* -Then simply run `docker-compose up` to start containers for... +Then simply run `docker-compose up` and it will start containers for... - mesos master - mesos slave (docker/mesos containerizers enabled) -- zookeeper host +- zookeeper - Singularity - [Baragon Service](https://github.com/HubSpot/Baragon) for load balancer management - [Baragon Agent](https://github.com/HubSpot/Baragon) + Nginx as a load balancer ...and the following UIs will be available: -- Singularity UI => http://localhost:7099/singularity -- Baragon UI => http://localhost:8080/baragon/v2/ui +- Singularity UI => [http://localhost:7099/singularity](http://localhost:7099/singularity) +- Baragon UI => [http://localhost:8080/baragon/v2/ui](http://localhost:8080/baragon/v2/ui) *if using [boot2docker](http://boot2docker.io/) or another vm, replace localhost with the ip of your vm* From 3482f716cfec314b2aff925c19f4e01345746030 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 13:06:41 -0400 Subject: [PATCH 03/12] new deploy flow image --- Docs/images/deploy.png | Bin 72250 -> 80552 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Docs/images/deploy.png b/Docs/images/deploy.png index e285ef4bcd656982378dd40b9b446054bf60d370..c0b3a6f48963a9ff76c1867da66bdf16c4a852ef 100644 GIT binary patch literal 80552 zcmd42Ra6~M^tOpZ@IY`5?(Xgy+}(n^yAy(IaCe8`?(Xh#aCZ%EbMpJoeCwOFW-jJ# zE_(Ip?&|8QIwgBQ@2+q~c}XOATzD`rFeIt(V#;7(5CG6o4hI9elU;pI13Gk*&#Mi>BY#144Pb5;%A2te1=UPHPw9o~=H1-hGza~`BurBv z?f35xY1TmH$sYW~{ZMg)2OHY;$qw@4R?d>||FqyXIW#_-DY3Lw9@0z{ctpX$UaCZ#lCPt;*>n$})@B;s2A6C3ncu-_W&gH-l5NU`?uevz zlRtdvAVsCix^JmgVQ}LR1DBt!FG^m+grZ8oq4=&=yeaAlXFJp~xhBVDf+YDmE_Kjn zjS8-y6t^vqYQ+EPiI3QCq&t`;OKgYlu!Pkw{PsraYrZ+oQBMyh^) zwDeNq`JJ4`5xFJQ9Cd}t{2?C(?EEm{`D?V2a-Ry8zPm2Q%mEvCdf^o-_= zPRLu}en?*4eu2O<$*OHYHJurf?Ct*@xh>~ui1X6b;+g2g7ku+ZyJykX2nBE&EA6@I zxba}I1eXV>vOqjz3|x(0dBL!F_#K9s;^-vD(qC4xL6q~KaLBgQebLJ7XZyM=c^6h_ z`Mjt@tX*CjFH&U1MbI)5#J=683C_gE4_Ae78dT2#srD5+ zIjEp(mlmHkf29h2M7Z41a%Ol_I_LIljuy7L&eG$L_d}6}+vmFXty-vM+5gO-J$2IuLe`X!0?>aD7^;4MlLLuIx5%;78qV39mzygm9UZ zBQpeS&{_se>u)l1Ox|d=cZkj>l~$*JUsexCvDsK)#D1f-($R#fC%>l$;s?F}1KR@} zY59ONV4v+~!NvP5r=BA6IiXFZdne5|Pw%fle&$RMMSCwUbT19{zUAbo(9Ly~`pY#< z2E~@Gzw&u@holZQ-r8ooO)teF49|b1sIs%>Yly`mIF~BT2r;=d^GTM@`^(QV7#|Ij z$ocNT2$K`C_-rXE2M$!LV&bnIP;8 z#)O9JDCc0{Kh=AKoJfWnK)MUC{L;=eoi)rma;l2r;JhB?bhqP#yMpk`&LvbsL5X;I z7VwEV)Tnoj(hupf&3%fjL#t1=bj3`vS3ByjA1XlAe-Q2O9wbn+4v=vvLAj31>LVI? zuG^x{T=#jp+x^<)9n@6FNLPAHS^*oYXx)c)v3TY+*qTr3LY_0Z^k-Quk4+)j`o{yw za`Hw=_ZE_UQR*s8vfXC-y;p@^i!tL~C6XK6EWp0jZuBBNPZ@rU!xfm;Hf9R6r>G&ybS21=RlKRuE&vU6@ah>8p5sxGoj-Obgz3{yqg{Oma$YR<`S&6a$xa4oxwgmynw8p$8a)2R~q@m!=JRCpxlxh^i zE_Sd89@(UT}jsV2j3yz2*unLVqq(8lB!|YwyA6 z_a(;(@vDtq?F$rX4fegPvte^*TL*q;e?OWia2Tmjf zi6-OZgD^{}(zU(M3HP{t2(1_&>R_k`)58ldp-{R;eI((>HKdB(SFeNRKW0ewUrD5=VU!oi+`6?qD2kuPaaCdMzzL zwlSW@xI3W@=UH|}UB3HwEoF=mE1ROzUy<8=gDR#BdB)XGP9~FfEGqD_Xl4T1}0L%36yKlXYnF_993sY*>!o z_mC?@s-pJq-hD1hc-^P?kGPMJpC?+~FBhqcw81OCiog*EwXiOoxwIKn&Z5P@jSrCo zp^Ak0*TQWtODD(tdyM)BBgF%{38%zBb^)f87ks>9{*dXrdNuuv>J|V!Rg*6V`4NCYxNy zM8Y!2SpoSXiWaQ+!;F^I6`G=-p~Sh!9z4II3#UJMS}C~VAavwK&Ix~eit~P4y+h=< z|5l+FQ5B1K34=GxsC5V_h+rQOKyb~3-S zN1shuP|z0{;TQ?+1Jl__N^3dwAB1J~d|Ps}2eRr<9)vJ(IUdMMYZ;OFD`sq;5YaGf zUK;emUl3AC1hjPAd=6^J>;aPOuS82(-J?9penlCbF*kT<_Waqhq-V*M2dak`CpuC% zI5-EN;NL{n+0sDGC!bc258uGb>}vTT23f8vF!@6Nn#S5jo3{9fc9##UlKp6UJ`MKK z!B)q6t~1a~%W$_xsKZtR>6Zaf zV^+dylc`|9LwdqOQ)A=PJ;hp4(x{1J0;|X>cP4b5Q=NS$<0;XGsHmoc_KqK{-Dy%r zhW9HihR8ZI%RDhnCZ7t948aOG)LUqp%rcYtq(IXIB4m%p8(m7%6cZ&r@!R8!fB*q= zdhF5pUU$C;7&fmJ%n|E+E0_>f+-w3i3rTvbp!g1gu7GDEY~Nv>?U_U}-D`X@7}V`a zdNkeY3#S31r5atf46m_=fD6^U08T(?0W!)kkx?`5r&LCI@M|N^6QK{davd|c7T5&ocCA~G zr2JvZU!ubt6*>YSB=D_i&Iw*;yw#0w^(5Rz^Q-tk-Piz~ZeLG;T+}(1Xnx?v)?X4f zz7X?n&C$#>##**IN=Q=wBJIg?{PfP>d+=zFRc0qY<>>TYc`2aV4<+k5CG^TME%z2; zNiBhl5Rbz1Y1|B{TN-5FV&=CHJeq6`KJ30uel9WWHUGJ@HJ=cd)i@J#V! zBjmse6}<8@Uv3}-By2W4`5{-eK;p0T6E8-fbVv4pIS|EY#ff@6uTrp8b;+lcrk}+;)AoQesmGcG;fJ3)7Z<&vWe9C?Sm%}HY@(&GIuTrwjPY`hY@U&brB zL|@o5T~x7L`}HR0?2jm;y$>5z_!(c!9F*hld%t@p(lH|(UnD*_hAY3Fzxd&T@_4=` zSl?$J|$4L=q->75pXRxMu3+?g~0(_T(IeI;rd8F6(?E*j2;DF|c%S>14$X+0u zf_UN|@QqQtD4Vt6Vof!Mb+30n^77NG3p>zxK!2ZO%f7&$^c`HAEB>g)(8#97J02t@ zSbNo?2r#)td#ss+lcWe%v{#M;ysa5I*-CIizI8ogF}!)i*MKtgw-5!|wCy^gj6fY&!$T5p6B?L*aJ4RAiuSy>&KpbEG94tWD ze5Ic5=L_SvrRYvtf}Y?88-kO+gkjl3RdCN9nSENs|aL~c(8dh`v(2>55mCE=* z&<}J9$0IB4yv+v}g0cCBuhL5HY47q={-OkvG#a|u>xtph!Xk=Pn@!+?Q0z~exY)b4 zBSfAgUA^yz>#O5`UP7hG!ir^ z>(v_@g+Id85uSCV>!@tU_n{1z)6EWL(bM;kRr3HC$gsBy+@``kj%+fGj3$U7qrkAK zucMBl<~?G=?t3-`!g3Xw8z(piBH_i(m3q2%aSCh4-N^EILU_c(915#YNLul!cG%U; zb3-@OHTUO9Vd)cP2CEc2c_aLNC%ZmnX6kNgnoZG4nJ|KLwEsO%o8R|ba`yrKS**9m zA1cB4l>o6Oyhak2Ww#(M>iBYeyDS3?&i{(sip@q`C%|^+@3}x&S;8<={-Yv2wdH1X zXoa4Ej(9aQ^)nCfL0H>0sD=7-&moA`Tg|`dx96!wS9n;k9m;NI4prXp=cr;Bps#N$I#rbfK@ficN5pb*04c#r=+#{` zEHYw0%n(k2&8e&Ha~15ByMytB@HF04{)P{?$ae2&D_{@0$;#d*UKAwO-b{z6yn@bt<4us1WNhv$3D2GiK2$;Q1g zm4IF!IT7J=2F+E~;_-p|a~oi~U6+!!p(wU<$zNiHpT6%zZ4mzMUf;Z-^?y$H?6YOV zd0m&g`RJ#PT(|rfYN+nV&NVv|>LEx#TJW)=i>tmM??~W`JG>Re1eCJi=mk{PhrQaYDz3{E4Aw)kX6ic};KmvSw`gNRQ+xRlpKV@?v6E)PmdupL$$%D6L z*FIoGzE_sNA$&(qrdkH>=Bh+RIvR$A4iJWFYI*Cr^WvY=$?sa66@Db^#IwSsJU<+1 zy|K)4BF0C}&Ar0aVpMwK=8elh5$Q~cHqz)gSXqqM>_iK?LQb%DzTldl8gM4Y%Cz>_ zv4Z_QvY>wX$J2}-Ve@+LZ>x=!C$6-u;K_g?gNcyq70luLB=XSqmKQ|M#Ye^iyUdlb zHtz9#(sQ{gJPH6O7W&O&7Yu z2uHwmJIACl{Sx6cX5H#HuPTg^&QPrE!~3_#dgR{OY6Cig`vRhF8La4{)d$vDiSqLb5Q!X{q!hxF>`WBqQaYJIW# z*6eDO?)G#GvEKK!`hc*@d$_*~%uWl6>eWA&V)+6_q5MC;_0M2x>lxZd?fif@ZBFn^ z+yLgC6g(QT^llE4BJBBil6f-7XVOpI3*eu}(3N%HK1*g`|K0TGV*MoFe5DF$nqOkI{h+h54>O$Wh~75^ z{J1+WqKl5`u|D<^@aYx=n*TNJ9THRCTds4MoYqt;lg%D8dVcC^36<;H!WJzt_j3BP z=^vKKoHbrwuo5ZQB>;mwaV38B@vHP>4vk_ujKWq6%DAM8zCLSwXu~F#;o}i!g@Ze+ zhB&SvwISQGzQ9n9?CWer>8@^cy`<6eUf4rV;}ZrUdOHk(H(e-7&WV(IycY7t$x*SSEl6YB`6k4cUC`aY>2F4bXGgC zrT}278X~?P#`LL9Dz_1V+@{WSO^P=7wbN%=)cOY{R_vLK?NMJ&#?KfJ?P{ZmeL0s5 zugs5&jsW$JnnE_|vkNKuPcWE?^={t`hR7*W90r}vo`QQdo#nGT9fIqvZ-8PexC z2C?o1c>XFETeQ(XoH|Tra@X)*jw%&~Fb61tP&sAft3d-nc^Ta%i!bbM<7mEE-&CH? zGm<%{aw$V?V{23lcyEc0d09L_VS{P2CQiOvx4!FCf2LMu0tZ{LC3X=S`^ z*H+zNb1^oCf**X_XJ&TeBUcEIds}aYXiXnb?EPt7f(g&Sc&!dc#+{rgbBpR+mbKcw z>r*HK%emCT0$|?9yXy3nua><&5PrrXSfFpKWVb~#Obma2lgilbR z)?<%&$PZUoLYEBB4UgWBKNMt~i49VMJWmHYC;r}1Xdfn6iO$7ee9-2xm%q|GJ@(^5 z3JJA)5^JzawNNy4NJIT)0$SA0`7^{%Ym0oAcp=(4heeBjokRIt)|-#&e1-C1fw9*q z)tyIhf2cQ_tu`qaTZ+Eu31q#V=@(eIwud)Atb6>9`$A*+#`BCrvK3Cg@gZ_@p-K2- z8OP%3H)WHWb#I)SjbO5fz8PO+Xp@;>UW5Iac(zkNEz$2F@whj2XShyYPBO+t}b+w+g`TFImA9E7Lc3mz_u00V1kCPF~`wT*)oP#^ap*Wv{24e1}zyS3U+ZTg@>87w;)5R3g3TC zIprXNa7jYRLdVORm9DrK>YKvV z7UhDFJHaJr2j&kZjdQ&+rGkAGqk1l^9I%I~mL-RNn3lJreLM@wU=>OE0AIEB$=XAE z1Lm1v9ESR*Epy)pn`I-ZY3Sio*Rn(HXBdftsTT{;oi;vG^)PtxY!+IY;&#*Yjj0V8 z?{6K?5HiE%Q}{YvxE9j3k~Pi?o86lpdZ$Sbi7R8O)f#V74MSV@g#dHDOM6Y5PxSE+ z7EkGKU(DN3TPsnLq;<(om8-!S4)5DdJ3x*>&c79|HKXJiaCtRp%^dC6+Aql1x#;FH zCBQewp03e$KRkSMNuWYJ(EV>Q6e%sFeG6qChEnGlA5uxTioMUnaQAcDRtMf#;7Fj{ zS(ZnzBq*^>NxPriV2LEkf$VN#)e4C4l*ao=9L0^zx|^_D_Z_F5wglIz1BkC6Qt@xf znOT8cB3NFE)e9_Fqr;1(@*ifzs9JU(tI;I_Q74LjNQUPXlL7#Y+SbF+z04+53*)8Z zmf^j84qT6?!-_)PEe6pSnxI1%3nf^NoFHBF2_USTwI~3qRQvg|b4YZ(gAY2TZrgH5{5%b%o$^OhPcRODDy|G)!iRr|+DortAE{~^(_U^2izR!W5x@A8j~ z=Ier(+W%_;$CQzg5h4MBkGApQ;o*e1I7e7gG?6f%3<#%QqJf&S<93V|5t}K%csM3W z`*Nk$_}_(wfv+0D1w&A&BB)Ti3@la)R7S?eH#awVI?Z;2@v)%9vz0oWK0ZES(b1+0 zrAnAls&K@1nex=^xM4LeL?Up}jg9P{o}K{@QE78a)w-=lwb;R^yD;Mar_ni}cX*WJ z&!9Q2z#?6RMNbN12mh+IZmQjACGOzhP<90i3p-z~R^b%&9h5N&2>P}lL=*786mO!7 zgte#rOB*bmaq(LVnOIC5)H6}t%d96YM(9FO^GWJKGAsN-ac}OY@icF<{fqPCg^mlD`68xooeA6>Hi;@ZWG8A zSXUQUC{mqE;+T)?JLygs84SU_M^t5~-VPFa)jb^l?4bA`fXn@xwsZhstgOL!Q!#wg z(usid-r+e=jof&F$Kp5JWt}`}fW{eBxCTioMOQE($QT~wFEs2eh%-*teDW)VkIm%%z(PM1{@6{Y>Jna{jhoc9v^usz^jOZ-+576=#Z2cJ zaB{_eP;oS?t1-8>wl>#t5Q|xw6pOAidlv7G7YQ!aBUvoh!#3(|l%CH1CP1g0=gdVY z!>S);?fnopwzw$m?^lvMn~AgG45UWcw(kOLAfQMB2x2Z$I~OggI3ryR5c9+TF;}mS zhf#>B4B$9dS46ME(!bZbclK6uz}zTW8eCbjL@2QmXkKO|tIDCQ3 zw)cjWZ&TRWSDYa$(_T9}rITRa{@&fnZ(gm(JPP8B-o^0n;s1K_nN=3>m#ZilO%PqR zW9arh90}~=@N@#RMmCLe_oTdPLIls1tk<{U@nVwW({KzQSqG)<$Ra#H&iu;jt53O4X%)^P|Uw~Ihe#j z!Bj;Ow8VA^lHD}A^2LdoQ?}~#!oqrs#)^dzS}ppOf~i{9AD3!z@QN4xM-^8Za?4}L zy7_L^5i`m^1DNh7A88lQdZ`e1tlT4%D=6HQ0=(WMldPs>D|PFy?@#wzC(HS%-d-wF zgJl+az#5#ka#Y*9Q8ZAinvR-v_U|(dKgO7-l6)z2eed)dtYF5N=;Q%;=Dnf-kzn%2ouPPi&bF2O<(BvE*VM2oU5iKOu*3a2ff9sS|0zWE5(FJ?zQ7adw zh;6w0_d|eHpO8Pa>tbfYVC?)u@D98pJ*=DtYj>n7jI+TJKCN+w!r>#YqMUxC=wOib zK}Z#keaxc4BzN(`grRmu0oJABmVe3pq`RiBus_Asi~x!?rJK@>cqI)-Q|Q9Jq29Nk z(l1+AYQSa8m`M;;Rx=R%7F2dmF6h3j8Q~}IezjTYcC~4HA_ySq>XTBrcBz35^(vx%vo zDRe6JtnbRcB*^Vpo5pZ^zPiiufDu;ajHyIt?Kq-5h`-j^Jah0sS>E_~{vcIYrkT}n z*7NP+osv=Tj#D>gOu(eyZ9lGs;t@^~M#qkW_Pm_L;WQ;D_T}CEZ8fkwO_*F1U%qa! z)(Uv2uG+4h0!ZNt9>WYn{Wm3|#rjZ2KcbO)8kkvRR^!!13sfIW2Gr9jjnC19H>f z3^_Y<=1$ehy3tr2yE!S)G@8pxe?Jg$~Hc6r`EnEx<)`*1h%7eT--XRm3 zE?oh_=|P&Gh_7Bq!wD?U@3Eb-&$)s_YCArECl%hhKx}v#YTJmx;I*t)_Pqf`O?FjC z1Gmizs8SCWKPt1{&q0cx_DzHz3vjRN@|U3bOXm3q$JL(g=J5VX6d0sQdEd!BpEGY# zM8^~@S7*MS!L6S)mh(o}1dQw|_u>2fab@*o!6?*dz~<)HgfDe<6Rzf#S6Zv5!at)M z>COEBy`&60xE@P8_s8$sCZS1RWVN`#Oial)pHfqWsJ)3oI1ZUDpPq=oQikZhjK=;2_IFu5BgV9n-8?Cv62(nH?_OpEf*)obz^__9K9jP zt63WV7G=qm<$%6e^elwNMsZ}RC!P*^t|xXQ4L@pTeFO_~gYU2cv1Kr04lN2&?_~0C zk@F^35wH%#^sni|MaLvTHHaXA&|P*kEk;k}*9l-T&VWHeC3LLCgQKutXBJThdwhLQ zs=*H~274Ow+}%wNv9^1;@No|;sdg+Ujj6jDpU(kWgu=#b4#Cf4UubAY?ws!^LckmP zn)iq`&&@QT0H3YT_j%d&w|H`ESE2J!k0NBk+*IT~^~jVw`04G*ADxA?|0@ zf|CPJC61@k)~3v{z&M}i{}H2e>#ku9oU5emXTJT)67(P5R^l(a_rTlq;PW@@!NlXo zmy)Him>)aL83sxfLB4YPF+{2_(m+z513Pj$B%R=m>uU$U%(SmyEC9OAS+NNQ`!P>l z2*H?H!?L^tC0^#6!td1fG7M6rP8w^e(I{6>G9k2AfunLKK`k<)vY{=;(jT(5v-4LF z%pI?ri1LLdaq&hbXMreb9&p-%ONo*^A$^%UbZ;Bq&2}*<+zAJoC2AP8a-LnAE`Bwf z!a1sZ4DYa+>(-&5ZhTm7YI!8$ZlWk9$W45>(NohzR;o~9o9rP-Nsm(+(F=_H z)2)7Exx(iV9e`E$I1z{n~3HPsN4FnN$nR z^_A)FTfxVhpTjElLmTY&XJ`od2$S*F>+Cy)>!TT(;#M=$<{KTK!d3(` zE9vn{HLVl8Th-Wbd zI(H92?}t2Dry%m-kzv&n9#NeNQ+6oF%?AP}3x(ocS*=)CQ_8jcrdT=IIPxftN{yd|8aF$25`Z8v}DPVQ^+EZuoa&#Zsh?AQ` zqDoCmO#P9`?72qz8EpJZ@QN`bAhzvJkQ7s79Y5hlU%fA7X%tl3%q+LB!7?xqdT-Q;$BF=6by%Y?;}+vfhu=$&pn zato_!+M)|KAe6xC_{9xW{V2FBc}|J{dfTa|t0ZK0SBUaBx3|ZR?$U=wne06eQo|zJ zmQ$r(=e0|xS9?>e#;PL(SKH3X@x%0iT}UM!`xWgU;MyY6S)dz@@s;MvVRY=570~;Z z`iyNkjTKmrt@@pvg>THAZ4>N6ytJVO=al?1*2`TJZCPcWInFolD*oj8(~)!=$vpwk zosJB~O?_*#ts`7NowH!L3<`2U&S@+eU^gbt`REZQ-B)17#j>GFGB{?5>$rC|E9p`%@ z-raGTDiUVMe}>UfT2bFo6#D6{pRH$!0^im>cl*^aueLVY;E3t|8@i+=8XsvV3s>hw zg7cr5LDoyvZ%@V$dPc}MUU>a-F$S2xqamRjtv_!q1^AG}1A5~B{R2z3rH>$!hEM_U zGn=Q)jj*SUbjaUfTP^*#M->FtW*W_BUDT z*VKE7-RvQ;AvigHH_)e)?`7MMdpFlnNr28*;snvd&uE(vk!IsCNc}*a^Cr5Y-M6s zD$AahK=H`UvlDfhX_VIL@XHGpagZqp&s?UyWf&*vGF)ZJu7rK>*fQvgI&kE(#2XL$ znjl55#K21$cQH;9mhKRbwdtRgj)irtz1)>)gE_fBDC0pS5YO2jJ5Z{udEYxv*XSF5 zOz3{?c4d<91zS&#;g>P+KI|LG8*cq7$bV$24wL(!2tB)?+uEqTgFbT)nymZeI zfaTAM2pwRLZaYxVi$q7eUpXeiesoet{g$i?gNHYy)_Zn&M(*oBe{Sn$M0hB+aIFg8 zkKE#Wa?obW#>)>o7DNS3)jw_bGjWKyn(j;`?hdoiheP7+YGPwZ&0ETN)XqzF`E}A7 zltA6=G+3-ROMYecrS}}uv@(ctBxE&|fZ4foXL^ow@JpXbV)SQA<}tf5#Xp-9uwT{= zLQN(v(EzPfYpu>|o!tE-8gu!QlIJSX9?OrREvj=Es;yR^Z5`d7q?P?Z z*^$!4m`^7ORv_%Bbo-Jq^;SK|0_AOeh+(v01S3S%dG!C}DwQy_0I-MsV|y~ji|5Mo zSlRBjM-UDC^gE-IV=-c@k2QIp-H*awAfH#80h4b?=g-_Yr;<#rOBO2}A=9PfE5}lN z%1GBay<6jF*WHB8^Fwd@>$S597Wzo%eZ_UguV9-Vl_*VG*-!qcqF!FO6bHI9)o-8P z|5cAz-$Zq5+&_iU=y?HNoOvN!T2*2__ z9O{H+%w%V;P3sJ!Z}RZ)7xDAotL6hP1jGAi88SJw+pmKRh^!y7234s;5rwET`qBc1 zKxk|q0>?Rc9 z)%+@g*P@YK3D0@W(mK{P%`8T-O0KdVX;L!iE8Cxx@grZ z$3GcOdG2>--QpdneJuYGu_E8`3904mn$w*V@uga|2@i9EW8#8++0fQ({DgKLXv+9* z7}q+GP26BGNxP>iI^(;VM6y3$A<+rdW)&++15&Vf|FdCA+ysJ7>Y_cWjJ)uM@*edX ziut8I2E22~bw2~CCrun71>!DW9-HO4`b=`!2&Y5Bm%k_tL$Ofm^v}V6%I(Om(t6ts zeV^Z59@O@fos_^1A8$Wrr&MyQUr{dyYHcpHSun^3qL121ulM(&t0M}I{hl4ml+6%T zsfTI1W9nX0Og-_)ILRrR-UvOkM zs$p14;~s(*mp0mZcE9&g!mt`2Cy+lZXCGQAZ*RKMi5jep7jAC)7&FXsK5!wOcO1V+ z`ETN2hzv6}TwL0cezEf+jLDfaS18Fw^jdgRou?2@;63JP6TFH#8M`w8XFr43 zRuzw>ZuV$zHr+7XNwa(A|5yDU!h>^km%M4{q-~W!4;sX z;Y+pNKE6`)?5{*{c13MBE>GTo`!P)xZ<=ZXV#9u%bWx@NJ|U^dtwYP*kY%{lBk_BNh`A5 ziovjo2xCs|po!?&ryoCA2|7H^yyYW0*jw)0Y@ zy_}Lmm8rpm;5{`{naHE^_vlcmE<^@byhN?4)CMtmz3(M;&T{3go7up~Lkb-3ocN!O zov`dyT%UKy%`#=aQacNA=(@Fz1Cuh|n!3HbMNwKOAk)F8AbG!2I_Nsa>XSQ5y{Z7NrXMq{)-!(z>C^Ibg% zrn1Lkz^dZaI?`r9CB78?Cmxj7!v5i}sw8ZOQmaVR(+|6KdsE)=0*P(o(ElL&zx-Vv z=w*4DaC+NmTGq1(_23-GSsHMLOvfJNJ~EF$o^J9(Vky5Gabh)jgETJ;`OQTJ@CI6m>s&092Z9 z{NqRa`$78E&6++U>oWh^SN8uVC=RfzRq5g=C@9E;5)bf;{>RwH#^4DF37;`NBXK$H zWcP-m=>bFCG5XaY5f7G@w!)u*E~th6-;h^QS6BD&_D)DnmQYqk14W+iAC4iV1(|}H zV0(KzprWFJtY1Vk0Hhh~9^ZRC=e*I!m*m0|)A0O%k`>*Q4$iHG z8z@xbpCal01*FvJdmdoGAY%8_8V^g;yPvNx|GTKD?xI1VK^IY_0tuClSUBuf-)d`X zpPrs(Ds`HTMu$O(kC!U(Kx*m0(9l1L5kZ0m6iFgql8B2Wrpbd!95l4Hmfpd4@ud`0 z$D%5OR;NKDW_XaO8ZmR?VhpN$So_4Z;HPd)c8*D+E~B;tNG%10&IGlLH&`u3fNHP2 zg@TM+tX83ZfE@>tmkItW2QI(YU%5_7Q1BM(f2v{<2avcPUnDF-_MarGyqrG!zl)0T z^#GP};-J#w|AbI=7c)^aZje}+)mQ|HiZNWK8pex^hraECOJ*7%O0lEg96 zj|>?~k2l$w8;`78Awp6siZ=l9$Bed9JF*E zvVWCzi>APC3(DnMnaW5~g2L2FG{n+kbb~f!e%yddaSe2i7B)I1cV=kJMI2%cI3WlU{pw8Q+-69V_?xYD7{K0=Zti6~K~imd%n=6QwR zt&(Gu!y=?WqfaiS?#D=aUr_%v(ooY++?c`f(euzJPNy*24utI&x26mJmZ^7)sUvzp*8IfPMU%H_-;(cr06ffXTsU> z4sdbRrh4=zU@NY(KkLn>jhL|M@Dfom!a%bWP02j`a%Z_TXj@2^7enwFR-KKMv~=Ib z20%wgXB?Uwv{~feN0rS$!4Q?Y$t#`DHUu%sjupj2t%1y$ z-N7&RukmlR8|BB?&BU`L7v|Y(qY;a|qjV+jm&pg}ds}~nMR7aZo7Q*fsVON--aeUv zOLIXTJn=+bzHw+<8!xQe{0~zVjZmsTo>Zox(Ir+h8wbZK<2qkWTr9;Age!8 zZ%1>eV0{Dwg0p>VV^@7|nwgMRCJSa_aan zc-E4iP8)4t{qk554$Tnd*MBzw4?pDjNaYM6f(6(i^AKFJ#b1OU+7I7Ydp6thuj9M4 za6>VBf@Hy}2@f-re~$a!;&gJnQ}jxeR`s(1pJ|Ns>qK0zDJT|ka)(a2Y4EzifN?2v zteQ3shY|Yb6ia99TymED;JVzXcKV4sd%!lqvkoNHi4SKdNYNGfCIns>pllEB7<*JF z#JE)lVQgLTyymp{gWDetZ(|J%vo`DczOlI9+LgHZysduEz8kN$SL=-$D6_5itSxKe zFFpFsku^qQs)4A$3Fs*nyU?8eP(YnVGRVD1Xi3({crem4isQ1&-CD-wOc3FH*HAP- zoPK8C?-YL>vn>{dbA(J(E=WQZ=X+7xaiX|5Od%(Q#PEApQxH@=bIfSG2u-1abX^>g zGK3dxS<5M2h)rmt66$6 z$WK#{98V`H6`{n+NlTV0mU7n=)|3hbOPe)v7&{3Ehsd>}Js}3szgitE0jze%Kj2Tx zpS@Aa7(-l@Q1dAmfECCoOMV|Mfh>Gqiz$Yx7@D?*&QAQ-Jnt#A5oI{e6%E9LXs$Kt z_hj(G4cfPNXp8eG!G>XLW(55j$ypla zXpOajiuW?<%CA^RvrFiaO^%)K45sU#KoI}b?pr{s7GRZK4}9$L;Q4ff-pB6KlKSPb z*89<}5p>9Wj>0Q_je-HKL?6ACS^EFBLU^7AE55|&^aj^}#V>!L6zq^|a|F~5*(9>m zSy_WPLHjC#oxqeJ_0v~nKRGiuCL*-PRp zM?F2i^w+7*{jEG+h5fkeZY)IfNu0MfH!c*+BAhnc887;4EJkaE$(G$8+~3phmU`|B z_in;|FA}3PT>u`<`_u=)%LBtXaOm>V2-G-qypQ~GKR2rism#y$?cCjD&h;;$j@4Sn+{|9B?7-UJ%cG>2%yQil; zJw0vPwx>01+qP}nwr$(iZQHi@&in2c8?h1lV}IQnajWWPWmZ0!&w0){b-nNS(4Jsh z@7ryu$;Nc1$q~5$;c0Z!KY*{;l`gXeO9(e|f+1I=o*MKQgnavHz+NZ9U~fx=Wg=Cy zo?mwFM5l_^7HKWQ#zYUMF~ecOZf=&*4vlR!Hv{_)P(w38@W>RsG`sVr2ocOcm;H1V zrrr47bnn7dvG^pG9esj>Je-c_dE->pH$Lx0w3h33vocnptZ%MAe)2$Ma$L~gE`#@p z)=7|YUh{XR&KSZXwZAGsh-E@G%-Th}W9(G4*4CEjew@rhIbgmt7QS&ET(#wlY7DWi z9#o%Ywe0+{-o6KU-LLGBBmB}?^Fukt%NEm`)h;)w9X{F-7otT+^Y#Z=sZV-(`6FN| zm=D|l6b@ML`)RN32@VAsVqtc&Y-y$HIqt)vwWBjM z&vfi=e=tl~Z5h2YB@d(HN8g*Ah~q_r{=D?5a%HEEgxZe|RBDc1FBONnczyFeGyvwv z4COVM@WTx*Xw$26d*ue798MX5Tfz#?!oRP)8f#UgQVSQ_hdmI&z*wfSCklk0?j8>J z-V^gwzLdxcjP${9!Q1EjKd4f02j8h@y4CL(-gY!Bq)=P;kq0{LQ!Tb?Q&UEws6x(1 zGo(Wyd8JuC1mDWUTK#NUzMk4%zm9%seT&{%O-+Bq~3>x(Us5>Bh!F%(&wiPeKY9G2Y_(V ze6zoe{-Ducx04ZkQXTLl@U@-g8>$THKA5&l%{C<*kd7|^u4hZ#7)J4x8L*cGW4Xe$ zKM-~r?iaeK!O7a8VJ~6K^FD`jnT*Sf2)6G?vyHAh@=FBoj^_aBt5aoCLzp3f10=`b3L`uKUlMTWy=_WVSK3BIe1K(%neoWb;~gbb41 zbd*nttFv>2qb_Vj`N$WofRe5>h>P)8j3F8kJ32DIdiGe#*m1CQEj@d00%`iS*}}id znoFLbT*Sc*`*`m%oYbT7mBkB?Q$}{8~G@X3%&?nR>bOQwH&m5x2GR+UH z)-JDP9xHaZZ_HdJTW(ByZT3o%(yV1+@B27`{XeB zg$N7-G}dgGxN!GNBk$DTjMb?=th-<#3S$SjC_Qd!pDo@&U2HM(>B1<4qa}oOJ7{#y z*IMm3{psZ0%H5?UZ+yP1(OX-KR4GN&ls}z$d?{0ny+F?EdZum_vM5|guhD|^gHyMY zztCjWT%^7AD&7PLCj=4NQhdhA2YaPgeap$pZfdUClz)@+PEPvIwZZ_N+hf<7>~@rA1uZAk1tKspRMwXy+MgXPhp4mgFy zs4IpyxvDfAJk?UPa}qA?inCfucORXQWlMpgN1xFmqGHa=O0q^(^HyQx+B@NA*=Njy znx{97+$0|}POa933QBHHRocyRrDv2RjU8brGOHnz&r}Dht+70|918PGn~mp={lTKy zcVo2wsBAiuaD*>eCRYRc3k-bf-8H$&FnJ`n-uz+}MzK~_-2W6O*~fCrvw3Ypv^GU8 z+};RiON19Ls;}_EhC`z?AEw0U`&w>%%Mr=%Tnbai*K!sfEAxm;=E zZU)Eh{%yMOq+V`j_Jq@x9eJeC5v~;$8yQpGt zx(zxL;F0S@4Uwy8Xn>F{tp*m7{p{Irl-4`i+4V*q)^q5CMkq(50R6(2sfWP#MxX>3=6zX>JV)QL}=h3BaO%K732 zT-&bz@>Ix3MJae$vf6cD@(0te(Wc;%qn)Al? zq&b$v=1869%A8@b8#AxK?ld^!L6`Ihzdm)oA0B}e>$8Zr_Vi7Kcjsp?*4XKa>I$#P zx1fhS67WBCp4TkgVw{(D=aM{Dt`=wWk-n5sJfHgaF&C|#r~+JU|8DjEYvpj@=B(Iv z!C6smOKx!3emOo@-RZS?^nSr}(|+W4l!l12>LFKo7j}+1sgE`i$#GNi_-0`K&A;Pk z6QhkQ2!)#~GoGbAmiiN4qbPN0K(0v$)_X1U{abHy1-G%DQP!GIWa{dZbN zhkTwFfl%0YKD`L5f-wp_xzQ0aTgJ#u8^hY8adNu_w=I8jjBn-EwqvnC=c{Tt z`dhk#4ZA+zJAS#}MRG%DLJIS%zI?Yh&SAy6@-4fr%jG^Usezd1W=f5QcbCc23ugex z#Do4AV9z80;`4b-M_n5u3r)CKZz?lGQ0fGyC!;mq;o|Sj&ARmddLcKGT@)})8^{M{ zkz{hcybYMmGK9y$7DWLfbuK$XEV2j&uZIxwzlvtv4Un06G$yBW!)v#2C$`zoX2~#o zl_u7-1FipB8>DFe;I}sKR>}9q?ODqXoHg}fykqqNb5&Jl?|7kTZFBkN{rA3>1bMDM*cIB0j+!ZBx~(UIKdT~Yl$e$?)ial0 zD$^}iH-2kywXVjpDM~3svoYxou0ZH(^iaWl<^74D2@Y2qXF}H694-kSsQb? z>NBxQtF9Wgze zEA>)CnqKUr@7geFdEr`PF9gJE@DW;L6@j4x`?2w^ZB`OP^3?GwVg^$!RvuEO@)MuS z|HVK3zIHQ`LYRgl0mc!$M2QI5MKYm3eU3 z6M2ER>BYwSxZ_!`WbikEh3N&NJu+Ql^A$d^%oLa_aHUZwi z;GC)op=q7316*fvJ<*~d9>BI%rSO)M!+HV|bI+|%M;`t8pUF(Ou?E7ld5YnJp1!ZE zS|eTq;_SbjoI|xHRb;h=Ei_2|YMvyGl?#B1?!zcStMl1fi!}NgExo^IYJYo_ns+tb z)JuDQEUE?97^A_BZECR>Xw^bN{oF18PeIvB+aGM!I`>ep^Ghg<` z;-F1iPRh{db7#$gr6jr1naRT|kU18^_)vp=*PLjzH*9(IysGx{4vXb(Alj`;Z_PTd z2onbAqcC6iPNDqIyyaJJeexl{|6Gffb$7ib-`+I+rSFezV`0yA>8XAU&1`?lm57zO z^V%iO_tWvBA=~%>ydYPDcW4J9B_`Pri>a$p4Ql|JNTF&rUb<*-qPK7?5`<9k zUEbg!pgh%tYx1&-`{&!MZkLxSTj(oTC4EtgeI9q(8HoD|Dxyth$9wxgL>iZ-W}1iP z1h&-uK?Y7^K!Co+6y%xTjC>fcvsLa!P-SPO6OPek;E_!1BiA4v2y|-_xQr1k4)Yh*#tbe@Gdn4`bZJnqKr5F+}F1jS`B_9 zFZ$2AAK_A8XGm&Gjzp##Aa2tml=9xaPLYv>Pim-(?H>KU^t`Cb+a;q zf&Kb*9ywT^>N$IX-9%)Br_Y0=JK~ITe`n5*(L|qf$+iGjpwYR;egnq~xexmB;t5vC3O zfx|oTulLdSvk>L-{DvW9smw=lJi89-0&yZa9&&cZK@v@7T6rrzQ?`DgjR5&dS8vfq zN?<8lOiD`!oss z9W3XuLZGLWZ5r*0yhN?VK)QWc6y^Cc3-LZ0+RAZUYtvJ{dMRoGaG)N{^&?0gg>YSs z|I%03Q+sh%7CG%zHCW{0jXp-TJ-m%#S3iE}uBv#2OYzCYyaradb5i)4bu}Vo+cAL+ATN$4BiE*NETw{cna!?72BKuMD2_`jeRCmPl=qz@3FE zES8`%MXJwr`qs`3$l-&gM=oIBM^C`rTo)7z0@n!It|39?z4{7*>Q?Bpq-Vwh1#L5z zrGx&EDJjoJCxBMLPQYw+5Ri=exa0sQSiqJN&^s)$06O zztVYU`h6nrCMeJr5FI^vl(Xbbo#*l1fNv$jFx!`^KeB5tY26}~)Jdq|^0q?w0B3Dm zoVe3FsayalSkoFmHvIeC-Oc$uzS$s zVwJY2Emw13TIxt(i<|4cY~pA*`|THqhUi4x(aFe|`n*pyQF$eI>2*MC|04hW@X<=K z)~_SM;FkKLmWrXxj7Bw8$F#8W>2z@3z{o$bQ?gXQ)$4|-bXDiheB(y;=(hFuZK=?r z+SFjwjQU)wLdV+Uv|t9&)t4$8EqE8KoEgJdMGI$tfxcC7UASOK@hr4D+!65!a^8YL zf~u|c+$2>1@~#}PG?^fVkB2S*b5jD`wMr;jxpUmciFc$yk|ePuzVaj-`FM4w=qN9~ zL=9^IwR5^7MD=+>(Vh@9Zy8ZR4Y`@=ra z=bUe2)5C<@!+3by2pxW0tb?(~f*%Qp&QD1XW*`(JjP2K%7KC|eTM5d=sXn!ZIaz_? zb{PHfewEpDR=Anx9VL?hh`?% z_Y0JU|Bd>SIn%=bAvy@+_Fz3c;*B`WQFLCV%ZlC#wp^vf3JDu>ia-^va-%fQhvbQg z7pZCIuJsJ7=@}g@sDYZW2_mX`%U|#ca^izJuJ!C!N;^%2F8B8Gjdd+8B*QcTA*xNC zckW2rQS>{4qlax746LXV==E^jqQ+t}`*a<_mpM#@5z$(7Hp%#SI_pJ zT12f$P3sC=u!Q&-z|yRc;Rn+DMSP+!zjA+Ak4xxDDWwCr>w8ryy_2cRH<4T7+b3aQAcifKlxu*>sTsB#OFn&(^-IaHx zpLpiw$13WB3s+0=srDhRU$asB9JzNOQAIru3g#)R%S!51jyOpbtHFmf2TWMQs?0@^ zRT>~?P1!Ve_Wz2t_yqql?6Ee=_7?K1XB0$mM{~}NCaS1KaDN-DFYr$UT%Yg)Em{|} z67r&+o$9pP!J~NCt=jnT&>0@Ggj#U*oPvz~Z#}D5SX*s4?&(lB^Q+n>`xZ{qE_GA* zzYt5zGDZJNFf1#?wLVYV3GiqHj>qV_s2$#3?I_LM8)i^oSESp;d4|rE*lH#us61x+ zHXl~yRija9G(!se?yr1k3}yplmNeLLKqC%5$l-mE`<_f_qX!7okT!63N_q;>pnV<} zY*^ZzU)DV>-f7bQ^6%L$4<;tZ%KR1KFp?gwIkzB-EJGhke_lp6qMbbKru>!4WBiNL z2&&E|nch-FY5)}TwTl&*G~B@J0uWtkB$(306Bi0@R^v9Oem-60s@@8b^z@)>YJfme z1!F8ls>0S6&nvTWFj*-(`#ZqJ<{vJT_@JFQC=E;R?vu4ZHD?ZT^f!VuAaz|om`+H zbfPeLKs9TbnG0|32R$AJe{`6)D-_F_UvOZ*{W_SCsn8k3`q8<~33zTA^xoxa1LJJE zq`kY7bmItc;rh3Mp5rQ%+#`=cwg<7q+>#HSh55Mez^TIRdu+LiCveji1;in=MYUj?)C8AZ@#+-(cxc_?&SkbBv00TWW&4 zn=SUvcT8}#O#LumGgeTemnF4KYKk7NbCFqsGer?mp%-rKLS$&ozALuBBUmETm za-b3?8gEisk@UPw(8HSpc92>+<`O8NZkA5C1FNL_Q`kr1zZU3^$_?G+l-)q3yR3dI zH#V(DHuO(e8Vh0)-~@fcMp)5-5FXo@i+pbTITJ+VsOV6-H%hY6SI5&Wk@i19z3y_X z>kVD>{?SDv&16`d{FzH{6DEoya<_gF1%ejIceUm2jlE`V+Qi(~V zerA-z?lnN8B&{t87_31a6!%fO87a2>RAn7!Pjb5zbQ!BQ= zPd&x9+&y57Xn&*}I2T&-dfkdwKc#;lesKQL96i_q*PZFca)Kjk(mYuk53GrPf3c!% zFgcHkyP=&8-QJkN6ZSpL44U^d>AJ)b`}XOw)FdJvw)1mabGlsdATknkZiJR?DQT)@ zp59Cpbh8D`MEszwFP*Txecg0aS zV8?`l%~V$YMfKzYqo6!EZ!Li=jos8!uBv{@bQbDN8?uEm`ap5{4ALD8ffk=4^H&1w zD5^sDaAbAnOtXV(+U}OtWV58mDt*cUmj^{gFV2W{6wR>CO$jZtqu!w^T#??WM1XhK~UhD$%1jjC7FvtaT1zp?ORAMPBZ|3 zW5irUeSDqtI0xydCclANmCZe()NxZ{s9koOn6d6_()DZ;XVpDm`|KTmylBp}4V>sQ z!T<+1CCQ<0uW6KrRxXamzRHw*;Mf~tRY&@}f3{|#q|Ua_qY`a#)%``0k@gD?zLOgt zoCIUuSio*XwS{qG4JXmvZ1m!GWGFu#slWp5L3@GX2?@oeubwT-HvIC=r(7#b;|=4J zcXoFs2Nk~Nq(|YguI&YE2L4Ky8OtRh++W6bwb=+C>Py@HULSv;p%{<$x=iHb*x(n+ zHJ=N$3ol^Y7JWao18hi|16*iu_bDpjyVo5RAQf=f?2`gCW>lOCrdK|%m5~V=8gy+$ zd6zC8jPJ|18yuMDm#w$)=PPl5ORh?P%d^|B>X;K74*_ji0N{GRPym!3Osv?rjCn;EvrxcBjD)`9AewfJYS zJd0VSZaI4y+;diCW%m+75~^FkAu{XU?Ax6?=e1eCnuVCPtYEQ;k;A8-fxjK}f+g02 zB{DrP#N3v`pn5;a?!%B7RFfmk&2#d@zi`j6o!;WV<6|8UNYKQM7B&LIM6Fin9Y8I| zTraV3yi&SFdqk<_g^I9t=RJ~UHfmg(?Z{OxEuWT^-Zpb%86s&~;aJnRyHd)En1G4NDbX9WQ@YxjG^I%SBl$DSR#o9*@YR{zJgC*MmxnoD!V$?5 z1(L3DXsp3TRhPYIF3T+GG0+ewQcL=`(XwmiQM9=bJ3_$=*Q9v^dP_)%0%=gtL`pl2 zXX?9p5^{wDCk#l$0(vTkpk z*>Dur1ov0?1wEY&=o)&Ufh0-^=W3Wzbs20gb=CC&zqIP<{nDC z#!@Wo&Hn1&iK7n=+l87D^7o0Qzcke_wgmsyS~I!fDB9bvgXKF~WUs;R!mlg?_9B6P z+4>aK9Hb}iY<%wEri*1t<8%y!S=|42GFUh`^Eooo6j+0(e;z2H6)f43{-&C@78$HF z#mcb?x9S(nbv>U!GBP7rFqjyn2Ypyx?b9(Z^i578=0ohWv&d$XG z8n~JhRda=a#X3as5C(lcJ-_sHoWsLIL%cBLX~Gl0p00an|9 zUv7keY2!cR7t;Ujjm-u0>-gsgvl|LrO#Xe54fwBBjLR=zhXT(WKqI7uM%yJPrG-Ef zNWh$%|NlPyzZNwArv)QG)Wc;Avh>^Gfv~PXh;hpO|EmT65HK3Du)fiF($#inTHq}g z6c^`{9qdDeG{YH-Mp3oX;gbR%8lZ2?<>lo+0%x1!S)P39WoI7pZYq$X=W=LhY+Ubf zBA=I^KhA-EcDb$%%#0Xd)&c zKO;0M%INj}WWB{Uzd{h$mjb|h&r%J`s{vjQ6%7rPj+uFIYl{F03F-Xef}SO5{!P{P z?oc`|KAzq4l}T4u7dULd<5cSmV6VE~sx-_{@-kw)69*a3_DADi@evgi6ow+O`r&Ci zavO~xpgY_lUGB5WKS24-hbXlZE=CsO^@DoHpv(o#}>oGz9tFA>5K;)4Rol#J$A zo1L#Oh7+FqD)sum9w_PxCuy%=l=g`-szBq3PsUG<~13pp%o6YVgm1|2)HXJEoThf0$DF zWRu=GLL^>ZUZ)pR{wxa!-sB$D)n5JVa=lWfk+rz_E#O&pfOF1CI8YBHqsq~6O^OGL zfM#r%taY#(Inx|$NAJCmjDbeqTT%h+;Es~F_JXf?NxUzFx+(^`vI)k)SYDK|8g|N#S!K)hB74XS0MKb_>n1zhDk|(uFJd+>Kw=Zm&g~>N$%Z z{F^|)&@>iU{Bj$XM;3$JKh*unaC|Z{oTsLs^=K=Qi8@@xY_9X{-~}hH3n;0^!n{Q- z=WHHKe$cqQr@2_KWPiMC{{{o-YoGVd3p7Lr7meISeSGIonXJ`RXR9%XuSWdJcvQ;A zV%7QHHLrYY*@;7S$>FCgst6Qf^eR%#a}x%*Z2q?iZN-B6U>3R)>FQw~m+Wqk>YaGA z`-VN^*|pE}U5XG9!PN!=RRS1Sh|jKl1deOhVa*<8j_i{|PKoa? zg|&78*?xX+s~4UW1|%dMp7aLz|8N1SOh8+6$jok;bL5Wl3o^EKz%tb6V3HxBa7yOk zgngNEQo}o)cval!?HoY#dGY!HvYypPhC<*-vY-56g8Tiu#(tTm;*K!e zgAVkTx@0YnJq)b*&%GttJ3A6F8pC|NIIE>!Hm}sH7h^G}Y#xv3bK8^6(#!PzVzSmu zWifyLY>cxJcqg>i@WKPMOJy#>*bDW9N^)*z$L;+k3E_Y}-+yl@Ss8s0VxK2h{zd)M`WWk$M}9T|kaQ1% zfX&o$b%CqRgPq+=7@_7F2ISCvEx zC9sc=pCl{F_OmoC!}Da1iyAe>IVLX~yicfa(=;Fght)=UThq2s+f*oLxd(M+hFEFH z(|Gyrm?*m^#bjYp2NrHjyKF6#*cuu-vdCwMCs42v;XBqjj{RvM=juG6uM`**iD9q4 z@hi#iA!V2X=!D#O2MaGY7Y>}=IquasT44;bYff25-TT?3&DrozT;6f|tH=oTM1O4? zy(NceHu_RXJjFv+Ww}0?%1kGlMlG+A0R01oJMW4Q5Z15JMcw9N|!yeLhSh2#9`#uFG@1{sD|NDy9Lj3mZ-Rg_9wiHpb?-SqpV!8=t zLvU^GQ3_xl!DReB=j!^+mKL_Y?UZJ4{Y2NRJHRDt^Z-MSCSgH38>bnRfFN71h|j6; zdxEs#%L<5xhX`t{ssoN~d(vHzEaN+eQ?6t(O@rC@o`{)zz(Hv{%>9k-&8(v5OE}6n z?EOuz@xJpwBC`5n@1S#}`M&aa=(y6K1PvCc>t16EveclnB9ZH&Xe4{0DjTDIWuW@v zdNGO3-|`5RV=34N3kBd5c|Y4kxu}Da3hg>S9DIdXlt-rgOfwVQ(^^PfokOO)Lg!4y zGx>fzR|v1k;Z%@1onFD?1}QvBtoH)pk=B?8lvg}MNNry+rpmtGN}R{SW;>W6}-{tOqEVcmIBV!j@8hCz08Yx7G`8ZhZW}NN%Dv z8rllw`*m}~XmV)?%eT4u(D8ctP3yx3U)#YnAn+CJtQ&u%nV)yAbe<|hFB&xdp*iA_ejKHJ1DR&zVqH-tH)7R?rqFGqgQ_)!TRaB zJML2|KP-;i&QTEe2KbgSL$4NF9s#>A5d@g z=s(`NI58jbL9Tok7OLyw3I6t$%mfiztu7+HU-EhoX1T{Xa6!NGbaz{Ai7pDiw=~z6 zU5Bp5(N?Rl&6dQXfh30p9(KC4#yam9f3^wu02fdLR~a8WD@sj$U4(nWgg3-#nwh(5}5uW%z_^UNlMDr7Gp^YMVC`W ztnr!*-lO9zYB%*Y_`PQX&k3TMw5pkuhR;KaX$Du>906-s)&`yQwGGH?@cQB&zf!*@ z?w$|DK+%?K))7@}-kogTJh+l04G9Co?vk|LN>c%;^hm$ESY9xxL^7uxD2k$b!J`OuxzxdM)O8J6nQM0l+yw1e`5n*M2blddR_ZnxL>ynpt=_TUveCVP7;VTTIsv!wOv^{qnv zo}`3%dpA5e9g7-DCa-%O|J4=J=_L!iyuXS4LOR2>k^;do95_c!^amA<5}aCW5eLXLpen?@6RDcw?9PB;2*K zjUbWua%r+O?*M<1{#y5hX|}FlJU05qKxpj9po%@-d8?FOGKWi|mHTm+3r>N$s5|dY zQq(inBx!=i;eGKa2lK7iJ?G!FQyyLF{N9N}UDVwfvU_)Xm_2oHG*(k1*GvLjJahAM zGB1$)F?pF;!JMa!dtnJ&g+m0yD5P9wYB(NQd*Q)8QCai{D-qW zLfByB=*)k5L^5gTkHI}rpYI(e+Rv(|JBCslaQ(#-hH^kyCR`xp$1%7lZA?nJ&3-W- zSh3|&a&uF)_}W*)FdiLqkYsUmd5gs+2IOEHv9*)4UjP16 zYApd^sX8hywI^2S`lc!7X zg<@4{#*vvu+{L5>yRLcmMZ3}Qo1C#HAzRoYZsqN=nvg_(%&orTY z{`^q=o037~XGlRU(=cU!D5h&OA8kIyZK~xuCNdH$HXAb9+<2`l6-COz1M1d*!wQP+g;f=jVSj9x4eUVVi7c(XlI=b++ z<6Xw~QmE`$umRPt8FJzI*92Rbtdo#=eZAdUjvud+Z4a{-D6AbCWihswKjd2Ex^tX| z2g0kW-;To;ii-k+671=JpN=IIbrcFZ{!Bvh7YLCU`$p4eh`z~2`k6*pRC6H>mXxb5d6BXIsB7kZiP1qH4LdfxT(Fef*x7aV%^cB zty>VfS?Dkli?7`Y^d5^Y!qu4bdh|)Z)YvVvgxj{I@o}I?XF~$vgz?reM6EArZ#g`g zl-4(1?pj_j`B(N)`JFFYoC1Sff`o(Xnf`jn?zk?uDdtRY=w09O%T2S#(meQq8yvk) zb2t$8m3Yw7EkWAe4h)Yc7eD%h^sucZugDiZ!e;~FspPJaL*LDd^7W^sd6Xy}OJ6!2 zYu(iMmS|4~Aj9z64_#{)M?wjFB@Eez|dJ-;*vmJ$LhV zG+kI9nIieH8mF?#Su$zi#v{*yRLX?kw9>ssmsG8<$)~FzeO3$u0w+MgfDALM?b2l) z+u>X@|M?)SPvLtlvH+J85Nk3{k|>-b#bLGH92gO^lB1yg<{qy|p@by@q%0)>pW10E zb8~axi@89=WMzi|fVK!C)M$xbTgaLkmlVum`2RAyjg#8jIb&mEL4fbxl54d)V2Bdq zqEN2Vn4RWiXHV1xzOPJF{55|(az4UIDHppYK%+l;ZwW0&euu-tRTc7a1qk&>@DiY* z35tjed3M7K6ct;K0WFJ3NJP9XIy*YXcJF~u1r#uNTDj02TY3wSOzljc^dFymv&ook z1cSZH8fhi2PImN(*4Sus1mZydFqU*y>pIUjCoV27pqFsZ*qFrSjZ2UT6E<*pZFPH~ zD3;AWJe*7iS*TEr2VybcI(EZ*!$9;ZvZFYkOMFG>1AC){g)^>Fe?1k=q<`gs8&(#+ zu#!2ZCSIJtQ{cLcdwU~(@a~AdqLQ&7+i0rb2@3}ms%HjrhYD-4$zn}jg4Jq$8z_I? z1vHui;X;>zGR0B>9i5*TlxABXKqF=U@Nh{iQQ`m>K7NWsv$}V3l`OXAqkLf5jx@kD zUQ7Sn4Kpe8RXE*dpfcABf!AyFf=@;02U>Zham$t{?%1T^3ujhDWSOXn!S8bacU2BR z^uws(M#@}mP0hAH5>E_mzTME^V4+waC=g3h4?^MYxc&(vZ(4kvQx_!?Qb(AqJchyO z7NG_rDauIy!>^C#wk_CceS%rx73G2<);>3T4{G7V=2x#Sj+g{bZ+3Z)VF@R*`BMJg zk$EZL9)!7atcm!kzqi-7%k$0dbb(w?PfturYJVsaM|P{7Q>a#v0^|Gl?`-VsI|m2C z52uUaTomf9c7_!dS-J7@Ft*BZ4hf7)4{7rRVz7uucTrOSr1_^>BXT~vM#WyJ!Z&^M ztpGxPZdD8>?CHXM-=zseb>TH*iwJ9={@!Y{BecHWUN!g^K0PBNquEl0>XI%{R{%uP z#?lAig+Q#EnOpX>GY3_FlAYrcys5=O4_IvVL8@!7Phal!ZEOGG=^D!Ya94d1=N*cI z(cOM2T}hTh!xsvK!?1C7CgtJDnwXfVLlouu1r(jPw6y%m6$m7i*A|&$pSsWzeD94k z&bW9#b;sUSJ_U zAu~qRLqd&am0rJ+!ivHR8?4Y5ovO+f8t>5=vf>Ip03Zi1<1GsXL=Vw~8~jyf-G%Xs30)vlnQ{9So9*m5r^_o3><_yS?F2Q6b^0c+ z*~|)aOdt$Pm}M4r_?_O{YdX+B9p>2r+{x;R_q3ji;SE<@HiU?LE1*nfN(E=VJ~kb9 zc(s5^in@Gv=aK5s7Uo7remCl7ShR9`275wp0PQmR(rr+QV!kD z-YO<8ZsNt>nBDW1t=Y=d9ZY(H>V)2N`r|kLeHw{m01)lWNiXT!zKJf3;s zRZ$x~yANzhubBAu`Fh7%r6ms0a~p^aF~zP3kfi?4iNLC>09W!aWiO)`8^wI}YTq9? z?LD({*3{S3m>RPJ|Z(;DYYV5I1FOclL|VUA$0m zS?fo-V#lzW0E|A`#npIPwqT3n*>~e6>fZ9VAGpBRNQ=b%r-@Uo8|L@2r7jERA%+JO zhPbiF(}?3^N+o-XG4aDlzIi*xhl367=5D2Ka6qaU@K1J;tQMx*mu|qYaQ}q7?H=wF zN^|%mpmB;xNKh<}WBvCahU$Tnql@!$-_y|!52=vbzQ;hb*O&FPWHD*!L7=z1g2FuN zGO&sTbF)6$>Ltu;ZKMlJaRT&o_exQ&TbSOOkl>d?2S#{cm?X312F{^UV5G>d$b5Rk zefJwf0M}MTL|EoyrMhp~MZmB4 zGxzR#a(>NSx2H5Gnyhg1k#3|$go}j!j4!Ayl>D*_h@p#VDzDBA@6s(Nu=qSXu_!=P z*@e8*VM5pDeTt2uC1xG<9;n__Xuk9stW?xkYxjedQJv*<_wV(NC!W-GW3WBMe(0IFm2azubQA;t^u9GQo(|sE=ljEv^c0wmgcSvt`d0>KycE@t-Oj zY5f=&G2%;;aDT>1m92w;O0JuQ1FF?@bChtyDSZENh#PeMMSE4n;h zEs{H?hwDQqyXw8=GU;n>q?Q2-FLy$QihT({)7b0EGlB3|tA=aK3BRk)@js|1PxcW_ zQckGzT`AFJ4=#$H-x-XznEznKdU5#mh~uPinddsKo>8iL%UIfci9rH?NdGZ@ET_}2{hZAv3cfXr$CR${xhaQX_xX|T^o)n#b=<2*s$B;5?P})l21n)a z9>=BZV%YF3Ik)c zSvNa0S$e5vB=GKy-r91VB6-uj&CZRVK?vtkU65sGQuwUd;_cNZfF|G9>S{ynCX|u| zsuw+;d~eQ)V_W#thId)bj6JNHcl1_gQ{&rK{nu9|&qGGjJ;)DsWI9uDdoPW0-Y!B? z1_@`6tGUD7Q-04(;;qjT-YM{;?4O#35EK}I{Uw+Maj7h(c$Rv^crA;Uw+wus3kon; ztZ{$IDQ!HqGJZgD_U`;fRZNxga)&~TUaNKMb*Hj2A6WTk#Fx?^s_T2gV3G`6VVZFmo{3GoPeg^=Wl4)(@pY~+Po}XSNsE23GP?zIL5AbMzC>dU$gnIm#fqI~~LnuLXS?*JHX|IC^W;=p^TlXCt$jT>|}+O2}b2N@@8F>Jg`qJ{eiB`3L+XKu&l#r?J2Fox>B z3$tm9r6_{Cf+pjz?$xJv_w$Q_H*j$0T0l4tF@w-$N4o)+KEklyL#5FM#a?EAV`&N3 z2uW*5zTPN+_9JHTtCq+GpvF>&l{+;_Vxi2Y-<)3Kc1Sn$IzZ21LNH3P=1#E13DEH1 zwsmi&_n4GUqJECKru|TDv?1SfGVGHkvSAofbj-BvH$rYG=THcGiBr>fA&qeuIlutU zugZcdV+@~JJVPmIN>B<0Ss_$(Xn3!4No`qs6N~g-z(~ z$#OfBZqI79I{cj4M@6IS(K%UU&V+|4_%`@6)*oT*`_R~yTA>3zfnrAdd*;x+VK$ho zeOGlV3JNt)UG?MdM%T3pAeic{@^^*Gs!IhN)o*~f42ythGz*ScI9k(YU8C!RSkJcS zrj8OGM4ry)5C5eU&@TH$HV@>&$ikIzO2Eb8A*EvJY=~-iRPh!D{5A)xk6dqj>b5bo z>*2%~O5;;|yrA2J>5~5N5M=dyBiy~^H4QZ9 z)G`U$8c|O%X7@MiAgmglOBj|1m4R0@&6Cwqat~YIfKg`liZy2xWBJj>&tz^FhR!ZX zZ&1NvkFlc*Ji_T9f+V5XSo^yseI0=wV{q3(en9|$U&D%eJI-qB2dGoP)P<<5`?0}n z;A;Mq4O1o9#igr?F2KjB%ZR@#(rytLJmWzoOaoW zBE8V&BP2CXEt@Pmmie}~T4|Qt%6*rplm5^D9ZjJvw-- zgwA(%QQz$Oj`{)(^;BK>OtIVw6yb(qB{*^8cpKuROzM|&(e}pV&r1n_z74ZzZ@wJ3 z4kITbM@@JU)hF$@tp{4~@+rPM5+;WEp%WA1(#oxM{$|bmwJB(#ItChswq=RkhwN5; zGXsb+bv^|(PV5ssCD2tJ1I4yI^@7R4<@w!3s|WyVaBqH>0p0cmW={nY*G~n=fx1%= zz9_FP4E3&ptw2$rLJmAE&*pYt{PA)_(!zr38Cxw!uuq&_B8uHjnqJ2f)2t-s>D5SACCUjdpXo>Otvj5koQGUf9A*0 zq2umO5!ItPzGq(RY-NhhcVV<1z+A<~^5LWbSn2ds)sxfF<#I$QP<4JVlb46zP}5bE zyn3YD+;|kmxuqCY9BlwR8{qI>DX!aC=2z;dHf3&?5yN(tcXxpm>Cb{uR+1da$=g@n zr@)0%Qt!ZUss>o&%R(rUvS#r|j!aKy>Oyp=vjmm*S8$=DXYk@6BuqGbCGcW>SY^U$(wHf z#xziLili0|KE8?e?{8@ZF&OZ-o*wv~8nAy7cIvTFFhARx%q8-+ z*ncY<=O^G9%bG4 zobbDIUGqP0-Y-0Jf6l-*`q%=E(7 zBTjB;Avcf*mm4`Dox_>Ga+Vh1koJpPJS;!AalZjBR(vFn(Ez^_uvZO9$#> zAmhM&T<$drnSwBghr$bx@Or+W2hQ#0gryr{v3Cq#Bu(=q{#lW|s0__W#JJiOfl>b~ z>@^lStW35aVnB-*cj4LIibp2;eWF)qHQX0s!JkFP*Ppak&1Kx&~wV zFqcAKe8m7pudxz)+IB>gpSKTwO7P5a;X9wqkaKgl9}Wf4P;zjja62C}*==$GF-n!% z1j6#AY4J$t=(M{i;1Yxj+0M2*(e!(@i;L<|O@^KAVZxl69-i_^GC2h#a9j~mjcDqcR*0a|mJ3D(>v232&wrRa?_SBZRm1~9x_ORuvV#TGC{7;HWPqm&<6 zREww7Nf6FnX9JCss{=;W=bm_BUzz@(^li!4+PTu*I0fy-8_biLBl)#6za3t#@d3~- zT{xSC||9T@AC^Il63&oal@xz({m5&l;ACjz?NrANqL|0^Ti9i(>g zy*1YBZE|LMbaZEH+_iJwg>eLHyn!uP)wMhGLYDFrH`7B^=cAsyM6SP@$2{l{b_d$0* zqnZ%vTBtM?j<%Bq57L?{yXfRu(na2&l(3mFLsSh0#UP_d4Vj(pFX&cCV) z@+edZ72Q)f*czt{?2yO=MSi9)l*NnIuT9&W&rdDi=&tAX&RLw&AT7iU*7EBdZbl^3 zxjD?8E6LS2(&w+xS21WG-a$bsnv4IYgjlMg8);gG8bunV`45+s1}FQ6nsZf_sQR|~e0Fbld*$vtNCXpj9GCNj z&@C-31M_7gz>v*Cp(L`~)e-{y)pmC#Fb-*Asy3)W_(P2VgRRI0aK{&A5oCrl$=Tde zI9kVWE!#}?SkXr7pY{@$mE3y@t77*eDiKlbhW$cOL>iwqxP!Cv;w2?H zd3;)$6p$~nQi)VJx+G|sf+?|;;^vm{7V)0bYIG@fBRN+j$ZB|Ty$2{DJ|(4O1FI09 zJ=p8<4DduG;3MVb#RL48ps9_?d_{xuLy~%hVr)uE(#R&lHDn4F1tte6Cx%~*@(i36Kv_@|#jj!w4lP_;fsPk+J zxBo=>v=pI19pizt>-h1-{0_I1e53hDPwix0>Ky}fZw|S%Rx$^BmE_cBY+TO^0n5z% zjitd@>$9%_`pOPVKa*@W_;lnPbM8a}JtPaEHC+Q+CB`TxDL+1|jbYpl5|32>y^UDAx&oxJ3X_fuqX z-(MBM`<|O&p0=h1;S%J;YQAO>^H%=qt^e)_X_7{D8|%$}vjitxzr&5uoQ&^;JdgK! zudy5H*>*5kt!MM1WGC9Fa&G{!xekJPt~YCaNwZHcQhx2Rn~YsC&K= z4mY|43C_&S{0H?F-1A0j27Ik@#a^x7>wg(#b?Mc8XluqljB-#wcmNiLi;rTOhU%G4 z+2z;tzv!YPR*rbvIp}IHRz^_Jzonez3$ZCvLz$2b_s->3u{FBzgD-ikOQC+B9}K63 z@Jf4w@gKAtt>t+OVN=#tjuX_)tun@Vf^K=*4oECaFfIH5nj%(9AxEv`&c)MkYtzuwQ`3=D8C z8a;@q`<}|Hy~vS#js39>yT$p@Pd=-B5uFjfl05A~&=d+Wj?23bvylyxfI9m8A$Bor z5Z)69J7Mk9ON!*J0nM-H{NktrGpIq1!sAWCy3R*@MzWfQ8|V^ic^yM>*u;OX5mLX2 z6(k9X>PZcKROr(3b%&m>q2u7Oh!C_k8?ch%Bx6~m)rTO|Arog$74L!GO&#=$R1O9Q zLrhGUK=%?&3&-;>**HuQLW@splxC&ZDq!O##O>v`?TZY$H4}TFXlJY&H3r$6#BrlX?J+Xx=$8W*sz7ZZ(`p|(xenU)Z>8Vx?f zx=8-KkzwblEY2EEKWz(W7LcGWa~xBiMV1#mM-aY%sPa@K+mgZ2PEQI0ewA86^1F%P zu2Mhg9rI8g8lqzKZWDgty;j)tIp}tt?BL#_!nw{I@2W2E>{I&8*Ggf*mRX{pqx|Wv z)_t4$=lHv?Uj@rMGy=UU8!^<|Hd@T6rK**%8x6Tdl4mk_0FN`ugfrDubT$wx4E4U4 z=*hZn!w3~v3JQn4l>@`QV4325hZkZI4Q^J8OMlCZN36!}OsSzLf|rVO_8`gGLF*Z9 zOo8XPBfszb9S6yMPGn(!fsFN4gs0m5T;!8Fw>5C{4+~r(2EX{UTX~r4o#0oTTC{dY zQk+gK7Q5dTe@*s1W!p3SOt9|GmdxlLSS&VDgK^%{X&o~K#fq0tFYiRKx>hG1w}}?E zrr}(Tm7RF-)LvICubJFDp;UW!qzbJC@3&6|9qqiKu7Mz1cY7RuiRr@UG%0g$3#RXA z$A?Dy;dFhgxJ)J4M`YDcuey(qN*g{_5cp&`=4=fm%Os}wrI|wX;7kTn+bE6~cDa(p z1u-zJ>fJ=U7$J0p(4mE^_r{{XzajfJ4Cu_a`a(lP(yVw20>a7Ve6^6^bW#|220kU> zo<5th#Xh)**2Bz&&TGN6))*7`Q@0O_H97~{WXY!eQxknnw{IpuySP85 zc{6^u?fkWvlr?C0eSisyW)CU-bWBQKZS=i`@mdEX?9Y1lq(WuB{kT0-3V#a}T?xBO zx#jNZgfUvw!CU<|b0GeaQBa>BM(}QYB@!FE_G!roa@_lk{ym-`WG+(6O|&?@7{=fh zcT+|l2hz~t;#rKCf*vz}dGs`9jhC@fy!c+_RnL6w)U-&*=wIC zis}Yqvn_L-GuNbH?uO)w=VtmKu8OCT9-$Ay-<@o94?UP@8o+=4 zJbOeBEyev6d%QdcIZt}cbq?zCfxJQSG=jjy-6?BAWLv7d>iZ|cGU8QLfyj{j$wo^c z=nHA?`!)T-o>RKeogBg&e9r}2sc11@#RLlf+fiT#f8rgAfg1KkrBJ2Z;o^tLOB6l! zF6qe(BK!2=%?1EMEt{Qo!HgzJv;B?bwNL#`zje8bVh$_64YIq(^l`NnB#q4n5}oB= zQTFE0$32tDJJyS*W{?JzMXI~S#*Av$-cAN%??+6|*H*n$uW(e!w2=lBfF{}Php@cf zGogzul3??x7^gdQ%oUw(jPTZCY=hIQ=QhHQs8Fj#Af}J!7lr!|fZ4(#yDvQ((P-7Y z-x7F_X2RH1FwSPJ8G09 zkjv!`ay`|5UcirFa5NSwOh<7qc+)7STyAfwB!K-Ukq z)$~snvsX3jFIoIv8H;=qi}lmmYX{2c10jQR9-dbQM7^J)PzfcXa9*GCgD?#;%_W15 zUYM<$4K`KH^A65)kaVJ8JZIvA)xn$KLZPlYL|`w0M2dQ&lZPk~FZ(Mk456oMN(uQ8 zy1A}P083*Pye4!p)~iqXIaz~qaTV852pm&O39e)<7C5>ha_ZH$SE<3@9TXJAMynLV z>%y}s>UMwe0Ml`n`Bhm^T+QS@>r`Gcp^tNUrLkm-jamZy%#c7tmd5Uul3=ajJY+*NtljB7CmM`ZU}{ejUSb zGwe^Aryk6ct%u%$o|Tk3J-LM4EG{bn^+@7z_imGhFviR3=|v^bUMtjOnlEy-EL18= zuj)Jo(X4$>n!Y)jJ?;hQPSQ%l&U8L-z_uOj&2`TQOk!953xHe7Q>PtQ36x0>(XM8Y zh{@rYptA!ZbmLgR$LwM^fdzq%<*UhY=W3>nD6wxER@XVP@QOB*W|ZRZ0O6Wx`2?|~ zO7g7Lg$R-<1g`a^YdS>9$STP4vU!Kk?a6*$IWX0<(4GVARY-HWOwqZYFll&y(tENtjeHNf z@~{6cNg9&mPkBMCHd;NSZP$%2i^cJKffdW5w>?vm2`+hy6I&9{va)p-A{5yW$5+ab z9+u!{7JY#8(FPtyewRtS*u6xAntMAEVT4M8W}dAnu`KZYvXJ3Pmq|DOk~$t1eMoN( zjthqg;%yy@QT1rji&QZ$YR*SMS1t5Wki?xFk#OiRVLFj?FG(kzdODxgPESfzuzoha z%qw*^x5BmS78LrN=b9NAZZH{?36iWTRJAee_sXM`WSMA8r|Zpmos|txx%YyU>h?v> zI>WTi{dk=3jdj6_8n2z22|bk6RmQbU3071jfjWJMsFfweVlEYpC81;~-Mc$t{c8*Nyu{5X*WSi!Z zhudmbIcD#Vyem?A%pl54moamu%|ETMtnh z;g{f5Ifjs6!IQ*%?AA+|-LVl4Wda<8S;-KrvzKCxy8MkboDr%HSLRRB`{U~=c>ZYX z=i^lzzE@0kK#gI#9U);{SD3B;=3q_EU;cCR13@=d&bYv(fK&tL6)}-Vo1kV{cw4e1 ziI)~$`*WDPPaXKOWB#-cA@gpl0^`$GJ0< z@miRSERg{=zfk0bgI&?`)vb5~TvZdxx`s zi2f-1<}en0amOJ6p06z>-Kl=#Nr&#w`-0@SCYx9|MPW1!L_o4EG&G}X0GDI4I>-!s zmd$18-*}QLFDHryPD5azcs~PHZ z{FP4&gpJX3zK-cOUq5v21(Ym0xc6bJqT_SCxd9DFZ+0cELx!g^rPR2T*>F|y(DAVb z84Ir|YNZKL@;;~XQ#|T_KEsr<)b~TZ@;(>ZX{qcN+!FWh>KrWPyY|QJJ=(E81WPg% z!`D=wMrXrUP(n#{=fdN#x{x{W(8Ye3$Kasb+KzQ8MPfB+^uzVs>3J%)i~mgZNl!Iz ztPNRnZ=XaG^_$jN@Dq0GpDA`ysZcf&z>>NMgLG7gDC*e77CQc3-HGAyXT-Y(i&ei& z4V6{0u%Zc{@B2Ur({gUd%-}|8nxG2}ZEbnIQh9$l==2dI3O){qpzp-M=Ss-p&oW(8 z3340r)wRM`O4>$awV@wAiW2h`^2k>2e<>@rgg9a^!4fR>)fPU?emG4p!Ay~<;yx1g zSAcj2LH7n9KGA^pNE2U#MR;UdFEn3WzzW53C=gqRUkiEvUJs0^d3|&-{4kETyIg-kO{0^^`ysk0lrvk!H;$yBo0^qPC=#sEV0jh1DRI#3gm^NC2?5lzP?G(~#8VC>H~ zrQ==ee&3)e8`Yvc4trR2KIVBE{`iy(W8Us09Q(^;eM{0WA6OFX*)D!5Vsk1K#<>yS z_9W|bJZdHQG}b77Ro`r3A+p|o^93Hix$|@1kJsl2_T{~Xe0%_xksAV;a4@Db)Xd%c zgdE9_J!jpncFyjK9PFK)#O=t*ZFABB=w0G8N}Amb27E5rz1kl0{#kUwAb4Xb-jkde z&Gl$!rXRKj?s<03bi+Od#yxN6x6GdC+QSj!tdjQnMs~)=jSDf*3iMjr&-k+@4I22w z_~QA8ewTkDO0kUfjIPTI-oE>aQ~RN>S0nH}Dw|8j;FoU@@w(aUMJyoSx@|n4)*WLL zHP3o?J6&wFdY+sh;cwicp7an5df)pk>pI*SIdtk&ed44Lyr&2YU#lG z4sHnz)xY}voz5EjiXec;H;B=as_mVHQ6R2s1x>irgDu$p})IGvo$EO5kq ziX9Q-x|e(vAh>cqY4Y0~uin!4ngGONp4N zk9gu@z}JlGXYij%cV**HYm?3b(iQ4{^{nV;K@2<=Hul+VN>0n;QDOzI}*(2>8`|r=un+hiI}(kff|;odEU+J zo+SEf%+GUq+1b9Og#rj~YUvKIL^_jd1aT;88T1P}c@T0-fMIs8{_l&_j9>7j78gvS z(i7QXn#+yUy6QjOsQwmJYBZxd5g;ri*ANy9OE3K6HPr7SJd$`bQ@7y@Tfy`5&;;W| znw#@ROZ1O6(mWVV?R_X@==fZaNXJkJ%UQey_COR+)&g)QN=>qiC|m_l!>OneDUB{; zs_vSrfISliL}#-ik&6RcrQWEa*$ED9uFo*_k|YYWD2fBy^#HC6GK$2H=4i;wl2=M%RAZxt+g+X=zI!e(gjnFECi8(bOGRhW z+-)%L?z?A#L;~h)nuwOAtqT@?K1d7cgIGO%I&|m;zRE)jm1|T5nNP$Q^jLnG^$EXg zL2B$gdgW|;9|jdVd{NhX5cmLfz687$XTRY@LYO%?IM#jZoZbF~s52yH@o=;)*HfqM ztU_66;0fLT3#*St9QpA9R-};4!=pziO64}=N~m~J@E~^Ju*RpL1tx5!B#nMrL7P&u zO@{+Mz}`ds}ivYgtuzeqB5{pFXN2|028#D1AS$N!NH@9IxhmqVJt&u+?|eIgXC9`FtcvPe7%X>=pOA)ls1l zQGdhn8t+bXd+-aiwk*~7IWCE!8q_V5SyM)TbP7lIDtRGWE0lTmkM*bzjO;Zi(sqzV z=^#7iuBeNoOMTNV@u5^JKhT2T()9^Tu&hVp z{N*jaT=`?;(HZ~nmqN}rf@jFGDpW)#Hj@ihq;4jqG$dGY@?=VOVKi8#-fjjpTAcD& z2diyKp=3;*9Gt6c$^65Aga1XNZ^k$L{c2kaL0d zH%@$%fTRwk-`5T=qE{mxaFG;did_t{6Apxo?r0+awA$uDCX$$Kj<{qe zF9OD{9w^OV#XcT8S+uw*&PKtNW%f9XQhO}>MX(K9_1P~ui%Q|fW`LY?Cy#tbqoDQW zE{2rQAw?ftqR0d-j~>njcGD~T%KaGf;w_A3DkqQQ0Sb5rbi><+sOVN?2j#A#7nIO-0FwaxU2)AmzEMAXz1JT1*Lqii$@tv+AWTWu z^-Rm$+7S3He98QjAKMC2PF{o#<>s#u-AMh3i#YNuN2}@G)UCE0!{IT;ps~#l?sJ?z ztY9{Hgls*|?8k?bs1<8wK@Z3hMz*7e0`jKl4JLn0yDczmPCKrgr;O_z z2609+l`*va?DfUYSB$`iJpCY!tlOpS${v>iLU-LWJ9K7X9^ zO(K-NcUXc@?wjAXq9AltrWZO7L_QV-KV7C7ytD}h3+o;PyQ?cxU7hVE{`y4(!|!$r z%$mIY7M#~1jo4mKiNgsl^R^_f2E&~5ztE^Ux14Duf?jC0#XPZB5J}G%TPA8*@VCJ} z=lu%&K2$2WF~41aQE~H?z6tn;(8aCrT>MAxVCFBLZ^ln}!aL~z&Xk4PJ_V7O*G4l@ zGD;F~oUeYUw`|<$FBwFZxvqbZu450X)KVLX#$7Hm9?nIy zqjf{C$1JD(ZW)BHi9oa9Ab!h6YAKm^s0#A=;XxnAnPrT zp{x{~$IsRrNk_Z$Oe98Pw+Lc?p|UOu7|IQy=_Z)G98S(U+=S;J&BvzQZGn%7RgLhU zV}qKAhHL25`=JaG@s6aMjAAqUGWbdJrZ=3TZ?0bz`=%67ou4SgLckoN`&oG#AnhP);*P8S?98xRg!?pkXeMbVR@sOi8FP^36eX+KKWT_I+?N?_LBwm3b&8eUTs_u{8At0qf13?j$&x zb42qO`z!;L?iSWp~*e&+89nxI%m-yHySM`JFP*a zD4!~^Gch>M)eQ4bV2}HYh`f3;Oew~|EpocP1FSLzy`sd((eM3IpIw-3Wu^-V>>;E= zCIHFO^fyPe=N^n1XB2+Ft-^bUGw<7fG-xb*9JS$p{kc7X;9&-(GtvW>u0WU3m7~5h zOLBt&&4M?C-a(!rcr_NcvNBOoo7}vX6sVV3$kznzV4S});Qjxw0F&;jrv^m&HTOS_ z{KB}MDMNN58vvTMU95m$9$>w($LI#!yZz%hl)qaKxu}VnSDGK&(ckkvJzAzc zz*+mO55O;WRwchcY{g4ujhu1Tx$0Uuo@Cy}NgfZK1-H$at&wz(wHC6ddu=J>L0{ab_QGOij8>c^xCp$G-lZf* zEDM%L7VXz5K6u+eVy-mO_V0wcMZeXp-)ym3) z6Dv|`>?GPpC2&*oR!+{-ZY%IgQ=^H~SJv3BTy+B|7DsOv^SJSQx!_6#k%Z0-kE5@` zU~fJPpda3DK&+DCvd39w?q2&)_B){(O*Un*E7eH&y7SDHR+;L_4u0O0itcCu!)r{ByILdB9yw za)r|pAZUu0YittkHchudd@>2wXOhlc2NqWaIp#hXj{Q-t$^seVMH8@K;U~vACPQx* zWA#c+(TRC<7BAwg>SfVc?58FtyiVS%)$CS)4(tb(n?saB(uBT z6eyvd66qb#974gQ@6}Sm$vKV%A)ihkTtru0MVH6PxN14Ed^jH9jTKd2o^!Q^n;wVt zceYwjC(S2@R>t18v&7lzS$y*y@ULHtcg7@7$7&uB`L8sMV+L_7RrPO9Bqjpkza)X3 zT#BP+mmYp(qCdS#H-z+OIdjN-rOz4Ft>2P2XGk%nz2gSw{{6n2RvE=93pGc79e5t7 z+)G8v50U1&YC>9UoZn)y5ualk@r1}1$8B!1pvguPv(`cp@@k?v6sw_{oP!X4Ayvqc zgG3?#*$8Q>XUenIGXG{8h+0|ldXcJL2I*U2l!3Tz^M&)a9^}W2XpMp7*c(=+Q|5C( zaHwt4U*ikw@3-JLVi>DJB)+?JD<@Z@JF9sZSsro*G@APM|VWLWjR5nGT8=i8n zdFV@_wS^M(kC*l@hBcg>qpo7*a-gqN3`Fn)Bzh4McRZa)`u&wr=qG_+&Kz}ib$9@{ zu{Mv$V9x4tMt%qeCu(x|vrI6+hunORSl2u5-sE-AwGYJgY_8-G@&e z@x12U8bxUe?DZbSo0p$aUY$Y%R1n@4H1Z=6p%I?CluC=G4?%T{+g8Nc`y#TbJZDQz zjtw=yR^Ih!B=?ixkg)Ak0#1&pk)tX&!qTWC9W%Q|(>K!kV3VqE_*6?LbfYiuW}0H4 z*H(%I9Pk~)9$JLysdxym$9|daFkuAK9CL@)aD2k{X~;v=)ThbTo5W#`SBrJ}o){>@ zJPznck@03o+)0tFyA**s79yzB?r74O{f1RwSjDpro;0IwUQweG#w*eHmQQ|$4Aa)b zvp^14^ev;6O)g%Ng-$!1kS51(c?zXR?=K+nbS-6L zU^(5~oW@ZTcm?>v-{NFEn5k5080)Z`Av zD76c`Afz={_!;l_;`wjoFp&)W{V2KIAZ9xSF;3(o8amYJ@&1RkYIlRp=B+iXkOebb*^3jQUiSD<` z#3wEMy~V8^WMvQV5kDo#2%<<#U%e9k<_vc#UwLB0+ToL)RUUA8w)SZkQ$Q=7hh%D; z$NW2tEA*|7&zynbjGd`7Bg|AFcN7E=H%iumO(|EXmHp!;8~qU3%$C%Rd<{GrH>^=V zKUx`cw3~-ZFj>XQ3~FwUOvIyPwe)EX91_hXSzhtKCi<+;&Czs{8*d6$)HJ- zXTB_-UIMu4@}3KvOX=iRiYaCMleQ`ic~HumQ$F1Xt>z5mLP-6C$N3k$IllsDQ8rs? z6Kt)a{uq$i$Z~C)A0tF*DuU2jt~_WJm4Ite`=<`Z*Pc(f^uA(5+vXOxe`~ZMXUa>} zhQ69|<_+>@OY7cJ3$WHK(C_|2QXrDC-AHN5e8UQ?kyr(ppd+oj8qnD3k>1aUeVy6=H?Wv_RNE?tUd`rCghwaGzQPwONA}@L z8v1+|Zu$;3xT4wcauVSoCGk52b&_^e;u{-hH@vz$pDwXurjLTBjq$LfN0)z%qJ(@^ zt#ysbYK_Dv)&L&t`X{+OKmnVOkS=zdVh?B zc`3oVu^o&1d8FTSH{mA&EpOWU)b{K9cIvH(vH5FzFezV^D<`w=pAKE_J?ivpHgmUN zf!2$=)=dN~v^jL3;M06Dm}dSG5CJaiGjdaB!1j-3{2430w4 zYzT7uXNV8Wf{OfW;?0bs6P@{|SAISt@9wb#ziJfRPPEC;9J4vqXt=CBFETeb49U?_ z{<8e5Dk?dp6z9YXKKYj6l=#&?wFRxTk`H?KMlPx2z4;Ile>ZDp#|JWMfp=2*e30lV zNDvYMyKGJlPzjfZC(r&POHIW*+8kjL4@mfGmrIFot+!S3>7cYdD0tlD+(@kv?4GC| z6c+yyq`%7X;FGal38M2I6>nuMm`XwOEj`F~-!3Pn#wpV6MLvG4Yh-5U^8b{fSz8+E zAHHHH?K^h-oU%hAU%PY4#i|3Txz3ILCe!g-7ZkZ~%5NKen z(rae*P&U))6HaSHooiz)NqO@;&mlk1Z8qoEys z8e)7`d9)4`X>1m#9xpkwF^Yw9$2i^V?wRHISQd5l4RB|!V!aDwP@D!HDQ(H zals21l`;_UC>I_FSQG!70{kA~C3-=_LF@lMMkwsX-=!0dhDNz095{k=;mSLfNUy%e z8A3*-Uvs`eo-tr1|NRCB2lUES`k*r+B8Bu!jie(jCGRO58ofbZMv zYQWOL`oODm`Ca79bEV52)|D)ZVNHgzM5j`lvvQgFkN&eV@9f0IP@=bQxQ-<}jtM5Z zXQFeOt&!I+3!qqK4U^g`SByHh--t3$;D0PJVer8SrwhL6;OH5XqsqCvdd0<%LN4p< z?0f)Z_5%SD27&|IZNpV%=JB<8-j~?zjF)>UHle90>KdF5PCJKzzMQd=eoXgO!KDl7_htW^u4t|bs=uTZcHxatYhph#@rmp1Tf*s8hMrPj4aP2K8wDi zW8jM2CkqE4@69W_P!G2X67ae$aT5SBtz0}j#zscUJs4<7c))_oq2Xabj82P(Sx z6-_j6_izMzqH?8E+s%fycJCJs=3{QTRWn2ouJFiZrS4{@f-~`W*-5^Z#?b0&+fdiP z1px6YTv#A-$EhpT1OfwS{(LIVwOJro_(o$CZHs=J9?wAX&vT{N-sy6aFiqa^+}&?6 zmX};D@*14^0&)1wt*waYXmVcOOn&dDx&JWCmzVWTO;z>Id|&cF9O%O0Vmq+z6^lWa zm{+HfBsVGw9ufC<=%b8tBi8V2{)(%z`MaDe8vGxANKI~z67kw^l;>Xi@o|-#Ne$6c zRuimdIV+83D=^_^3Z2(*gC1NFg%mIl=-R+ED}&m!w6vtOUTq!%>D&LPa1>jE7zT+- z_nFVv5@mHL7mS3k`!^U(>hr;UzYq@20%1K`?5B^tcX{$m$}!6m$RdmeLvM$%3>@B{ zY=Je@ujjSBFTl@4uW^u5q1{%;!^N5^XM7Vde*UW}KCfin?#2Zz=4+_1bEVxCK(;~I zD;HaTURQ@sN(d%wWLl(ql-eHL<|=*f*0;2d>iMkPabBFBqePz_(~C?5veMHu_l$eN z!z@?@tWfNc`kA5HU#Y;dQ;Q1wN5m9n_E7%@cJENFS7nlwlhfkibe_(jCu?YE$f+_c z&)C7$wOBHiFfHS_THhR4x*viIYeizd?Dmk=6ix6`Z%kR>aJd-$1N%^6@k;dfQodjd z!_`ttOJ&xqC1j9QxOVbjVbc$l+Mxso4_d6}s)c9=?DVw7hppQ3U!@Fro&l}()Si1| zxUD3X+A3h24SyY75=^Q&El63(17$f`nCcyhvuHQ{VlOJ!3>Q7g2HoQ{%(-1WbyBAf7jRYwXb zkuo*A6#+U8Os-bd+-vl^y~d92_8WeUVo1x5Xm5uP2w1Tq_lN(7@LxX_ClJKs#j~XJ>H0^d!xk= zgvH?kJG9@wk9T=TU;O3mNS1{RDn*n|P@XIxGauymtE*{1_E#Y5LR7ICHKs8tjEwN* zdb1;NO8sLntQ#O%ywGaRGC(UI1>PwUjjP=02Izf5Q;o6{c)-wQ*)&E+(uA&}*Iez(9Zr%ZtRv zDFIlVueOhjS85J7yLA8!l?6RPXR^^wJP=@kKpg(B?C44jQi8ltZ?)CX2rfN3fn`7l;?Q>sVef^9{V8`}rC?&iPxQm1Z2Y zOvXY|$@f16QIiIuznk>`!$1mc0H|d=x#0JL2~@LJW)f=gqasU-B#`kz$sJ0`BvaG9 zq$*)#_xg?2E}HZQ$vA>kOst`*+5cJm>Cqt-adM&w6B|h~gb}211x8GLg&py-FfyEx zW|@7;ME19*^2v$Ci`fS8;IfY3S5@2p6aW;JD{ICD@(XYQQ^7d^K;ipUG)zE&>Av1{ zdwl8m`O^vYon`NA9NXbKG}8&%LxiXs`!dL4RtPhsBeCr$Zo3jYaQC(>a;CQ~ z#-LOYk{9IH5m1^S`vl+=?`#UKnNoHshXk!GPj2Yj5Bqeo(R}xIglUs|tRkBE!;cGd zr6;H8YF&g5v};GuoU zWd8xsR{R|a{24IzK-B&-6P*9d1uUFNRdiy z)WE#AxRH=XjlKegn&`u{U(Gy0xY9t2^IxjeID44gX&0r}*`Q4E_MJ#l;Uxf3NTfXA z^L;~~tgd*2vqH#EAd^QYB>)o!t+G7c6K36WfXN9M$T>du@IJT!lrG&qG5mTPE$%x< zO#e&K>5f-q+2GANcK7v|x^f;7hyBJ%8`+Six4p=oG+rB#IIdvgWP zwX6HT+jG{|G+*Cvi|X$lhgo?ufnrogH#&9o-PL~iLbAu=Vyx>Eqrg~!y=C`0|E5ys z_YNX+EZ1Pv!&Pj?oxQNR8Xa=rXG?;XjB%hPDVVC|X;4-5bl8WGce`F5r$v(4zS=Axz9l>nkOM$R&@7sq9x=7lG&l2{w9T#9++k?mjGHVHI926ifu2nD z3|kiSh@mDcLN1-5UMRr>Omo3Y0tZsF&M5;=F2Y>_6|{ZC;KMN{DHj3`4+PcaOGLZC zKw$K5TYA3hm8xeGf&~iQ*q2I`iX!662HBqMO(C}3!>Ap-)6_|jCg$ne{=S5%cu2qpJs$xf?X?V#TuD z|HeF%1}#140SoE>5Az#*dp0179Xrahl&3+>fgCYLHzc`tu+S!Yi{dg6k}*ny9w>lVK{dDL*iEV1p^ z31w`0;CN#LlC^Y^+i5LfY)lf3$62G2{hv7EG6ifd0(ZirOU^ooP(R>6!5%zRPL6ey+AtS>2=-jB4V*gw(8ZR!!51aSua zYNu*R{79F-pBZe`*H_@ls!V#3wXvb0LK_k|Itok$qPX8mxe9-O3b>^ZI5H7m&U1+^ zul*a;3~3QL{tG{0GF%OT-n6$qS_~$d-cHU~evzCS4OfpT_H}gbNRkG*{_E^$*BUQ^ z=J?@ld{G&(-G)tv_V2r9Z&$he*Ejj-d3=ACXli@Tp?MMGr6r6H_i^lXEh#Q-7vu4s zBFajWpP9gE{E)nBvh29D-2I=u(3ls2*MSjkbqmjsN@)yKtM1hEAo0XFlb+-fc{Y!t z(1kLZAAnJEL=*O%^RsY2toZzBWo)p%l{wr3du>~xP2-|;^dUsJ*vOF_HDB~~faw-p zZmdg%tOS3*@p6XrUc|&Zw!RM9e~!A)?n&7GSs8xe0PM`ZXEU72*t0W`ec3Pfm^nLX z$$st{4P5#)-4&hudrM8O^Zz@$i$@^-_#^w6Zbk5#V2XDu(~-)FOB$l#q*4eMd^(l> zcr->BKRjDp^pXEJ&V-^)sWE&J=PL63u9<YE~oY)0VH-Y zDD{gP?gn-HoZ3!`k_SK{>TnDoaFuXClK||{E#odHrd_gr5MQr@;$f5pOvz0*%l$(0 zw~;LZ>~dgR*BaSHkvj0|1(FyDgy0^^>#;qKsW~Cnv2ltQ2feSeL=Rb`{?9^aqT%oW zZOE(aR?@*1mk2W_AaF;naba~Qt3S?6shHIDjlKgtw3}NGCP1SvbYE$<3}o?h!lJ0l zJv*pb+MryRImM%m1lZ#e%lT*cOI6|uXJ}QcYb0_Z;s4uNH;kpH5k-n^Y+L~{Q8ua&A5=%q2hN3^B754>%5XFwi2p&J?HR1I(UA+@w~Qp!3S}t zu+I$6#8tUJN(2yDKPu-7;_m+~uEz#Y^=%sjv>IJYDbd`|=(HVP+9L*61L<{#N&`!q zkA2p;!y(N(h0XEtAtboebFR!xYqy8I>dnJ|Q&GcD(5}vb`vcabli|J>wnC%t;pGI@ z+Ss?AkJ?gFJe%ru1lCF<^f@w3NNXU@`q1n7PP_gM+IK%IXdu3x6vB3D3eIQ~_Ub2I z#0{y!3xoL2W?mz|RM#0WW^;N&uPcCzW1auc;pLvtLsJ9DAxo-e&%UO#_Xmz9PE}=l z`nbHNEA!Gak+v-5k4yqv^?*P+J>qdp^q8-oAHL`EEE{Pn9y%$;k(7Ctxl6%6^3{4$ z`=Y@k$eSe|%tZmvAfq#;=takuYrfKh=Yu}kxiJJkKE#(G*+)07|CU$DQ*DanG$=#b zIP2Knlx}RV~NWhT(%{jTCzc@{F8^olEMu&K7+A z0zb&j)--heK3SP%E_aZm=KFwp^zlAXf3c1+S)&&ve{Vm~4&e=xBT(T|bYLmu@4+ni z?}(^?!GBY^59{iZVMuH2&+I3AXU~&osqGiU8+Zf?zWDBUnrNF`=Kl)s}7l$V^qLbs(E#5t;5rZNabdyvyp&ZpySTSn(PHrY4D9- z!%KX#-XXTP=4Wo-pC6ND_IX9WKK1XhR1}H`Mq6})=ffet224Pjkb!gquHQNrdzj)n ztGM2(g^EGywlJ%MX{>CyOa6tf-UuR=%{~?0N!+iIK#rSxTheHQhF{G)Wg0|y z-kaKpTyQD;E}*&lNR9aD9dVA&gN%ojFcxY43@BX>hK(-h<$}KhwUpW+)u?{MWcnRw zf<5i@VwU6f^2>B};L&Bt{{2e!#xE0xEexj2Cg40biqRw)04DcQ`g50S(Z25{crUgj z-Q?%dGJVFb{7lSyXIj1_bpqk=w-J$*f~Qq`ml2-@1#xh<@3&=c7~ zZSJ}A>H?klJ3s*X!v`}2gYj!!>(3+|(wS*S=^0riAs|*|p8QJAjN&I#Olw@8oQBK@ zBZEX0yeu7>Yz%EQQ5NoRX|Se20RsxvmEk8FjmT}{JR8Vq;(&m4S<8jm+zZ&z28cLOCBe8gJ-$q0vXn2695u}U6A ztPV`+PEOCxy_>=R!~%>t+1@pTp5TnNV#HfZ`}@i3Iv{ci^yl64}VSP`IT#Pnlt7k z6-@Ft^rsVPpTvEl1jo_l+`s&hM(Gd6N0glf=+TqAH%ejuOf<*ywCQix$Np%jXS@8} z&3x>0@U^gh`B&sO!rFh|cm1bW!De_KX$a0Ih%V5#Ip@CCgI7$rM!0fqtvAu7j(zy} z@KzEgtlbD+O2{#yD5UCl`{G|yT$u|S5Tfx0JzM+gvWIvf*V<1LOi+Fq6nr{iC6ys` zR{oBNHE}X&@jV3g$@8sy+sly6l64B>Yuo}aImH*5e`GS=$>*}<>EhcRVqGso8jEpZ zYevYdfh=Hz2b-lS5wdVd;wK9F50xhqp%c%1=f9|gw^9mGL9Ro@a+yAPVjgiUjEr61 zPHGew$yJ%#U+q=uiYO6&6R1;Fgr5rkp+hA(+i8H4R7zbPJh7zFwbP^OAvp9WYDu)a zfEPv0xfXoMgVm?3lDEwe)g_@aTE~k1NYG|=(Egxje%tP!OlKh|2&+bW^!=BRmG?8! z)sG3TeXm`ljr>cx@(m?EPv~A5c}&wsLYiGwOCKqbgkZ+H#LqbU(_TNN3NI-t2b1x>5*0|r>=7KzVqAA2G{w4=y z6*3W&9D9%s-LcN>>7=W?lCS@W9^Qk4Qo6g9V}6tR_|-Sof3!R2i+-y6a?sM4Yf$a@ zG*hbVnkvIE*cZ{lVYmNod|^#9)ym<@7q-Kei^dO4NFg?J1fPOrg(9}HqhOEaC^TBD z01q3X{T(i8U92Zkqb=AWrTdj_$9UPERmveyfJlWlR}80qmy=(y!D*lSl>}pWSk)ve zxD5)aZ{)2T*j;T>d%EWlV>?fzr%H^?Xg#iXB+KUTmTiv_sv)w*bg2sm{zwd@k)$hi zTKCsZ{Zzr57GjluI$ncxID!oKA#LAFzB6YGHnk`RNSB^ivh7p^ zro^gcYHhzJVTN1TdgSV34rgg*S*#{u4aPjas?R4-3Utk{P`-M&^pl0?SRgMqCpiDd z5}870={}^409rq|NXnqCshkeQm&K7(JYHz&K#HGuV=24_-X0%1+^hQLA(7YxaFA#( z_xnHd;rLf;G1dFpKe>&h9f5}G>e>s&Z||NTJ_ZsJ$TB;2&lMqW4);$$OW?jnnLv|> zx(Z=-gnZr z!5mI~Q(@y}pv2nIE|v4|fZZ}<#(mFtcLud{Xyu0rR0FA1Ib$*bgyTxeC@)2Eajcz@ zR|8ZhPY1=8S$h08febIJdB!d#=5q-+=ks%h*aHIqgChwO`s|f(d2-b3`nPz5U)eRf z<>cGOwd@@G^fkKQnD^0YJb~J&Nwhxzv6Zb|unCip#DNJOV2TO1 z0SJMvN92HRAbE~_{Rzw!VegnIVujM8@ct>%cYt7sH;6sjfRU((7!RyC385n8aL0}B*0GCaUp>e+c z>N#X9a>IRmbc7TEM4DhnpP%N33vkT_!RYX1xoDB=KE3D~h7ZA?Y`GfZ#8+-Vl9)z& z;*-+Ex1ac9{P=ICjCpuguYA9e$cgk(r zhgq{OYYc;WvJ`hDfYDthGMN=_Oz3Sf&QOgcaIg-W{bE`EzA2I`&@l69FiJtQuHbFq z%=k*gv|B2*uyJH*E>x)~s}IB6=)>N1*==iZ^Fl#3ecSB4oFF-ZQPGmpFv?}^hOKmU z_PN;htzBKvgp0GQ!!%Mz(WR;OK*k!>@~zr?KO?MVFCGyXo_)^LS7P&^`%|nxf4`MF z9V!Mixkfu$5cOnd?9J`$V4iXN#TeH6Ed6C)#73hK*)DK1Iyr>Ut2UE`%h&Mw`(c!R za~6CSN33w};WG(NgR)tJQs7r)$5tKMel8Y#!URts#%f3J)0u-3BB5>$DzSpt*mgMn4 zS^8!{uzRt!M>KMHg3_}N`u5cx{`iW%IX6RiloO7+W>Fp%(uv%a>gm6zjAX{rLB8>(TIe{8RF0+#nHJt zmNlKQL6V2#L1uV47YLapEAFA5b|^cbq6n9|$Pg`0aujjtPjE=W4K14~?r>ceEE_L~|_ z)1|mPBT=8XFSh?att7F%pOMOGG8#Re6EusK;q4JW0lQ?z^j1XZG0Hw}|GY4K+;i0a z;I{G3#ck?M7bTvjW1yQ6FJ z{Nk*aAAtn#L0~QZx3y*WU?9=c5#W`VhtTNQcn_v`)O;$gnh&p@Gmb|sUdh-CDuYR@ z?pjO`VmUcXTqS_tYS{J+Y5|v+*7!n(o4x5Kd0|$8Ypy8S4cJxijs3o8z)mv7R-eu? z)k5*n*AV}*u+_?9!g>+68=2}HB+oPPJApaE-Fc^p^a379xWJ&F8oKCIN~~+5hGqOW z^QO*;T;4t|^F@kSc8^xbFYgRT7TjXBsMN;L2!>Usx(|Rk+VV@nU13C6ImvM9N$SMz z@8>!7-?6xQV{Dk~&Pd}dFIw1**SkA4K&s_yIUB2n6`j2>FSPZFshwqoUtAqCW6+ZD zP5snP2{V7{FIP|g6R(Ds@A-C^5Ue_;Ur1#gLAjl<>%OC=zXb%zU@qlT#vVuPp`ywc zvop{|Bf}u0D%XP826a5*`1fPP;%@P{=6{P)4Fxx3y~coWwJRf>JV~Vy*&c9%wvc~% z-M=V6me5SUIQ8^J%)P2?sN4^8^<};9eTlY$CgkUuDlEqSawv``yc0Xv8?lU{kHUKz zNz0ymV6)%tp%ISoqq$U`@NO4gge)RbwQUOLoZ+rEAHW;p%%77UfD! zWi5>ufl3#vBTo2FDxytch{n?GYu%ltmKFkUkr&LJ7wQ|A`@G#%g!dahq!ZCV6b26z zpkC?ZbIEs?mvY1C5)@}qIxSGto#T6?_dL~d=XTjHm1K_>s;;z-J!KZv>yYZ8H)@DA ze^k4-iEsNWlYx;6L6Tf5XNlo9_vrJAVMny-NL0W3+k#gnk;D2cFDw}+Rf1e{XN(xP zqU~NKNW&*|4!fXbLc{OugSC`5#o1XPMI~uXbuoT~=Ks5FF(t$alpIhj`AChaPbTe1 z`&}!I*M--y*VfK=t4{GVxV6TfI16K&^4KVUXU5ZS%Mvarc&m0Xr-Ye%jqf1IMt_NE zLW)X5xTFm^PD&|UTmIt#p!>eED=jQc^n7*7Yfv1PPcVbFE&wJAZN3;$V6Cgu3k)612o(Jqc4Hl{0*RJ zasH(B!Xp7lyo{er-hvf{wSINr8qs=yD#iXJ@5?dNH}H;2^8b&vx5f*zu%QJM1}~!| z(3)et0MSP>XCssp_EW#L09SNu<*M0$US3^gNo8=`9ZrIVO))NKUqu;D3V?r~ z$^5sRkdYxJCx?1XbMY&j}Mq^;155e-P}CBSy*}b;E<3XTwHh{aBy&7;NVwxcYRAs zShluL1@lS(g{lAOs5rpa2+%&}H#R2T-r6aYs}0o}&*YW}KwFROvUnGwkxHdA)>;9K zk+km5cIV9}zj~Ynq{Y#a8$~3N8N2%WATcm7*d0!V_4J7Q`uchY24Vn`#RADRalCAx zm(jU=vmwA!z`2J)zzvFti6O>r03{_Q{eplycz?D6y4Yk(dbZLq02Gt&je;S>CIaT8 z3@F`Af7)QaqOh*e6b4XnVcrA0ks=}@SrRGCB%#94Q%V4DhKYcrWVp7b3Y!JZSPBcv zDF!NPWJ-z{aO`q$s4lKR+TI7a?o9lxM+9R?0BVuOKLSk{13X?aCNManTGXf#c6 zAE^K`4ou=g9KJ?XVw9>brF)$LJ`)MB}drvXcgd|XC` zrH`j_c9qC~tfKGKc-aWEmXrfn?axLiAphns^j$illt59@qJS4#mWlj#-_;-fqFLm@ zp$G^%Zx_amN~^DF@&f*Hf6@F?KKlJ%YoAdb4}M6F;!hr`1c-`?isShpWg|z&BS@bd z-_Ts9Hd4FAF2^MB`fA-^BWRFu7?#IF@jVe7FN>Dp4kSGZBZ2$@FZkyAXOFiV-GFl) z#nI7m)s5I7%~AboCrUeLkb?hX=;( z>b+zdkyC8!hNUe>q63F9ybTWrOQLfHh7Yg<=t!xQ@${$~1KT4=l@J*3{M>=&*$cB^ zC-{w%M>dNqk>J(cx$Ld`w#DB&y2212nR_u==};ARs#Q#OXY7^&&#@gE&VT}Y5`wR8 z>34{un*Hq}{2*@U7K7o+?!x?^G zu?9mn2zEwvi3XRSZ0Z&|UMf=vEhb#g^SDliT%E8H9nHqeg9@CiMewyVEOJzb0A{?^ zn^d{8r8_Fz4`Zl6kL51iiGZugweYZVdB8dv{#w5L6udVc= z_?XYfgMTY(FdMyr)!|0dh3Eq2;r7xGiXRs8)7FLt1V5!EM&QpGXp)fx^pumxLr9_h z-Q2F{{($8Z%%hG8PiyP))v@H}Z%61`3CC5u|F#|9xOASA~xQ>E;e4FDCZQrh6EN8X5-uIyh#A{^5B+k0h{|N z!*Y~_b`h^Z02|Q(9?_N+{0TR7!QFV?=5L3g+HWfi zPvCe1mBBIMiw7_JUvYv!5=9o^I#l| zX;jd}B)fTkE46-b$Rd=GY1Zlj>v@kQmj!7&NOv{K+SfC%x8UP1$H>jCr2Un0^o|hO z>OF7nV>2CKgTZ56q1VUt{G#-WGmyN zM&I7U?%g zS$^pOaeR;5Oc5ZZ?zwZ+Srlr#7Ra-KBcoeq%&wkC-sq3?)fb=wn_nwm1IfPMBkuhc zL9o_**L@VX#V@Yjoer5(6|@5Bv2#hj-Vd_I&C8r-Fm7d;$s=Y*fOI+JAp=}$9*xM) zhzd}4b>-G|c0sE0vTy-1YT{i{L~0@7?G|_iHJPOSmY zF?G6JR}eQ(R+fB848d2lyAmR-jM%5(;8phz1;KsPqdPQyFv8Q;P%x9~9VfdACv@1; zgd#$Gim_rAbe^tpiya*%MuY<%ApztucQAf8NE&eWKa6<4OaC5(<4#@jgnsScGA64I zjF|6=l~Auxu4$1Z^~Llz^4g74mOio2t1epAr97P8GuElGFt08y?ID=V8zDwGNVe!M zeO^cKr1j~#(X}iV-#btfK0QvdJDLjQc7LAKzZCa)BwFx`@jcr3i)Gspu{GE;AxX1x zv(p}Ku~=^v_-KAAJnG%8_haBoWdxl#vk71yGU87If_^Qm)-JJ#!YWutU`qj85LF(O zeuzfqZ>eRwo337YX2!w}34Y?0ZM&1x&zJ+tgAeY-(U|t1Zdda$ey#2-t~@aP_2b#? z0i*B;pc9UawYr;=ro_$dgooqzxj7AJX#-slkmf@af4tbQZz+W_EU_8vFPu7W;gu zW+}~rIqJU#e3}v|Pa5|p`1)Vze;O>-4(H2ovi{xeMN}-%ne=1R59x@O@|Cza?pPp-u`higgu#KkYrdPi zO`VZ^1641et1cj&M{t}eIB>V3%HWihK-lLDLMa|b^@Pgt#rHdtm;O*IlA=m|xp~T1 zdVN2sc=dRuO88J4Lb5Dr4iXHiQ5>R=^S zYY`!Kpbt$4Wt}SF508xO{GD@)_E_!qY3iWWelq#-J{MBRl5XIv7N0ewDKCHj>xpMQ z=s685sw6m>Ck#(IOI+icfqJDe@^%LdffOUVn4&)K*t( z-M!=c-M(9T$H6y_=+1dH0eRE%3zdncx5B61GAC>t`8-;-W9eGAS6c7xybMT9JHGd!YuQEu8v z3L7{!M+^xApAMc`V-KL{5+fEJ$btj8RI46J2&{2xkTlDz6C{y6(?H$o3KgianBUwv zpHuVVnt17%8_D+rE_4;{pSGvg+`vbt+Jq4u53imBQ^^+v`lF5`G&!5oBBD3rCN%c4 z5b7t-Hd56%qSJU%J5#>q-az1JI)h1No~2Y=jx9RlJ`+WvY~(VSjW2L=OyV6zBu~d6 zipl-Lt7vLhP&9EF7u;aGfcU_|5|#N4y`td^ZBCSk!p|saEa>a}@!qLx%>h`Sv(3lR z;eJ3xY>3)9$3PGh6o$7t&$sa@JK<+NY%U%;ip`lc8395>0vAVX>XI5ZE-?2+X}PNO z5I}h1drkLRZN#Us^SOLG@;8TuzXsTcgodyqd-91fxod3W9&s_T+0)u+`042k$T#~Z z4GXT+DylW7O#~jg``|>ha$@_qV_Vcm%B#+YOCMUI-$p`AA`bd0ptRO`plBx!$JPJ+ zldg^LR17_RlFvJcdp`IO26MhG!dcc2Ti0NEpB&1 z#<8D(GjjGn)>KJ3n}+FE5oNXjTZ83l)3Q`62r!Lz%(a{{ax(7`PyB;NNT|~}uHei$G)Ta>wNeB=TDIy|9kzS z^i_)|?Pb;uw=;}ozCy>#9pL#;87 z-%N_|SLk|szW$=t)*4^$>UM6Yu+wW~s?I~3)G5JySB;C}so6>WknZ^V?HJjE#m&q9 zFgX15?+=V&VNlA+y6c_GhaJsq_6~ZF-~>rQuew@*j}IhE*F9!gTqbZJ$d4JM_YQ{a$hD)qxR`4VH(hx+XzmsdTr+E~zfl zm}(tqe}Ug!rU-?L3VGt-j&&B_TP#m!m&BT=px75bPCCKWGdee5v|dcq_Ttd@^)DKv zJoQiag$H7_*3lyMjH(}arSfP{4G4`_l$w_8gFp9v(3Py~_2u(an#=cGIjA4;vTIuY z%NgwQKHaFN{dp^)GxN{tViI!Nv5J%%1q#Z)kw){Nj%C5Rt1ISRe}i%>y1UQsjA|`5 zJWio+>pc0Gq2!4T$K8;DgQZoKLwo+WLJ}J9DqC(|&eYXj(U3P4T-a`lGYZx@sFhEV zxggRR#_&5{iU+>NcjOZG42TFcYCJ5cg-SPjO?;19j%ot{THzj| zs0oukW@c}2L4EMIK21I6+l3b5Wkw_=aYcE<^P1%vb=hP3F@FZ$u~n*69Tfb=^_?_o zP?-j)TAYW={&E^qLGnnGk`Swc{$*BHYR*aBU>Qra_P&v$fu;cSe_{bR6xd|>4VKw} ze=s^a%vMw;J0^N^SNj3nvN=6_jK8$iC7NuUbJK>lVI{1u?8<9-PpYIohTwP*wo@k3 zv-76~mW*F%N|0!lWV{svutW#}^gU@0n;)YQ^SKTl%jUlpz`G0Qwi*z2R&6 znL!HBm;G}&cKKL|`ta*U~z0D1H6Tp_oj|<%GMk)bLRfY%KG(F*G@r- zKH9vy^y_RHqK5`F3UBXC+*`uyzYm!I>>?~6OHy}VURz&5;!(y`UJf!Ru47;xQDV<@P;R~2v)sOXq51w+ zPLWeLFqiX8zffGUe?aAjluslgl%v;INiIfcLXm}>`Hy?VN%IZ<3(h*ik9Eq}nUwC! zFYK+jqWrfC^z@!PE%uver@jS-q+k5qy-gqZoZj2^Sc>IMZ`c{{w!<*^uFO=Xn5<++ zlc%ayzPA!wjQ#y+!R~Yea6oIrnB1Hwn?pMSU9W%0bbencObG|sIs?eOpqGt)gqGv` z#?%X+s{g=z?Ws3e<<5ul`H^AV0V5OTu`d6+GAV{$+rfbugpG}jm6cVk0I&gu zJNo0EZU zN8E(ba+HX#7bhX|%uZp4vZj_akB@StsL4@L+Sh2x`Xy~=t4+268D%Lcs?=})ka<^w z0Ra>BY@YguUbkgy(`YJhy+Ov|G$zH zC|(8wz#N3|1!$<^}3hgkm6!0%Y)@kc#Zzzn!N`HBDAqK1F=U zb*0KR2BDaAU}9o#Zr{Vh!=0R+lUOMT`H8YWzi@p}P{=etKi~Se{qK6@ka=fsPo8`W z#LC8oUYnmcs9&@nIONX(nPP$w_+u9xACkPhU;vQ-Dk|zAE>>8OU{2TaGByhf%O|7? z_D%?3E~33hBH$*<@iaibF)kw@AOJw{WPua`yWQbmV{CK6-n1_D z0tS2NZ11R{u47>j4{m8`>43cT3q21H5Ajr1WPp?R6A4G^X4H#YYL3pxn0S4<`ME`g zLO?Ll>U={+Mn-E-26RDOxLMI8skoS5Kp-kT9l^`rAJW^~8=xTBK0OU>dOG_UtWay> z1-RdXgM;~ngk;s!J`nF8Adbw{jm z$`GC6$zursfwr=?2EcOva6FDr@*-<%IsmUHCMKRNk|mW5Bm;U0L3~uG|MGCba*Bw{ zibP6U!0}_MFgPX#1sn=N@8$js?H-P?BMn=YHCO-^@=o|3dVF6D~b!sYZ&wJYXuynce&3?ce;3BZGwH+E8i<>j_ zN7_aJq$V|k#gY*~kU@-hn8DX{eGn5D2QVT7E)MP8xFz=7;$v!aw!n>nK7CBOBo-wS z()cL=6^|He-E&n~r%$@L=suw{u9MrCQx^wT56NRNFtM^OPL0|qV1NveTr;5*l9on} z^ev`X{fj0bpcflgk`|9Z9UaYHqzFA_m5Vhde2k86(EOX<7eI~e59d|C zgbr&;YMU$3o}ZsLwzM$VUpd$mYgk&40S*>oGtE)2>J!&5{>Ui~O{L|;+{svag_K77 z1-Y?tO{vxYup%CM*VfWDEAw9CVdLv&hY5X+{gHS9dP93r=~&g3VGj|?knRi)qNj%e zNPdr|Fq#AjUEAK8!}^bk;k)N~XnE;D&ekCB3BgI1etHMVrqqM0~tT(6dSY7)IcH+`VyzH$vcRuGmuSDEKQc|LqHK zyE-7CgWYaq4VJ8W0qnf^y1=* z{$)_dO&t%q#Di+xeGpz5%8>ioS(#FFaNjFyij(E4wm@!tE0`l}WWW{Xn(LZ}ux6sj zZ>;PnV*GzbWeilt0v6TLrZYnnr4bb3g zRu?<{1C4dO$>*9~>SVw!R`ekRkQ2+m;>2s7)0`~MYT@5nT#n*oHef3Pyo7Xzgf6%K zGP5QFUWF#I%@FYZOqSK}!q_1;-gmZ|q;Xjgc6EZ(kPGt`jdipKkMnz@AK+wE`AG#d z7QI(X%Nc{xu&k9fkW=~(2>|UYA-{Rlc^tc4i8{)@3bhtuv1kQMl$|C=+V2j;;qm*Q zHU5s-K+x4+BofJbi=Ib$2_{AJYSAb&Wc8I@ zYb(AuNdpX&Oi80|Ru*SrF?rGw2QowCQ`@IoK0gKY^!IdkcKv?-jg1pkL0Gl-eQ3mj zL#LuWl}e(A^m09KDu}-T9Du^1q>wSr?B`DZb*`$i>)0XLrVX8gb$|b@$a9BT(q;jP z)4E(wT@i~@G&i*dC*wh!qsQJGsBN7SG$( z@aPiqj}cEH$um9Y<`Bk|!vJe7+XvWF!e9Qv0`JkV-KUW=OVai)mx~7$&C~2q_o7ut zH&nGMH9Jo<1viUI7oMbO%gUC=MhQZC6DsOs{ zxq2G!Y6hv^%qd|OA5x6|t;K~z-R1T_&QmPT7=rh~xVp~=s-~D@d1N$LTyIC#2eO~I zHu`%kTZi6zdz&|=F7eOH%p5B&T6XK(zP*on1O@_Ns zn<%ZnzA~9 zJZT6&uy88E+?(9E!}sQnpA>pN6Xr#|AHus_#FKf#D0qL{yS!!beA|i`z86Cp;|o0G z#&E$nyWYdw3gu(Q=eL0JXNv&hdek+(-Rq~&nzcVhlWyN&fncEYVV^L8)_TT}LLe_~ znKc1zYAB!_MqZvwTxn#+Qo#Bl^r=*{EjEz4f%a`|Vn|*-aLsPBH58o|_R&;3AC;@$2&i5$?<<}@p zU}zI34!HjzPP(4+Iv^rwKTKh9I&6F(pKpYF-dgQdh{v_8eZOC*A$u^s^Oygd#(tIY zLAC2W@T?V+AhN>DjT9r*o}C%L+vQG3-5Gq zj(WPiJ$2?53sK>APl0G(>2L9|zq=fD`nm;CR(|SVj%M%POq|g*b01G_uX(S3EqR#{ zl|>BcS9ul}I5|JFif^Cw>kBd*p`Hz`HIoSY@!z>zK6z9t+rFY#jM^luUtZa$S!B+y ztggh`M`#O}Bo99!sUgA2d{NRt+s zV@v!`_<8lDI}gR{?FDe!iwy8YLsZ>`ZK`kgq+2MH^M4cC5&q7G%ARP9{TO=>tC`jGL1@w+r}`v zZ{x#=_cKk1UO1MentdQI-$ZMzD9#N4Bs5e zwtb1os3`=cE;=o1E=V*1PvmtYaBRm|9_MKsxPcAcm zevxAYE8me&GQWA7x0Krvrd2fbN$+m{zPD6O{Ps*zb!70!a}8pq(%Y}e@b_1m&f5Sb z$Vv4%+M9vFL4czv>01ixe*$fTa3%{?*j1ny!}W4j<-y5DxP@pE1#iK;(8X0SeJcDJ z5(2*J-CZBSD&Ov_1!;{S8T^3PRt5(T`7T z;O8QXW4W8T2D4!`tdYqEuHnFNoL+uf7QbmkOU+K0+nuROjX{{UCV&%dk6ZD}Ru$)T zwDvg^v~VdTnGc$rDoif#9GghZp=p(+wCI%41o@!5x}MEZwws(;-xZRT)HMjH=B1k` zuj~|8v|iWE-#aO-DB@V!Dn^)kegSsl{u~`1- z;R2DQts8^Re&c0pvuP~?Z~X-Y1qIYf00ojiyMUiww=Tz!uR#YrVM1QGKZNYGv3i1+SfDIF5g+Uo#4thM{2OS6 zbCEfWQ4wOBW34yquz=u^`$S?70s?{_4?)3zA%y^Q;T3?P6n>(2Y-|jb2c6IlrqSOY zi2@IQbG8vrQnezmhe>pbuW4-O9_nRREF_|n=P)y=B_ z09}!q9LRVW11{>{rDeevQAPVp))u`F|->^ZO4{Jgn>cF&mR{r$5`rEk3Vy^!VOyCO+S{D`Ew{&Yj zX!UWwyglvBtfa9z^MICWd5&o33q$~7jsWhw3BW#HY;$F4Z*Q+PngZkC;7DdPc5>D* zmqqnoT~!;;;E~eN$<`JREGQra7zZJKm&_&8^8-^$G6@ocVD;r`d{x?EI(g& z1mfVI#E@UUV(VcFo9OE5ZU=oHs2T#E3>}}bbiAQnaG3fq4y<7(1v2(+?wzY^CQw?8 z(N1)`FWKxt3ScsFG`PjoMqPNH&xv-M^b<23Atw>z-GHhmSJ&6{(hy(&0cJ9hU})!b zwazsi5T}G9NDSC!sMvbbQOS0RsIQj~O)frXJ3`TwHdgzi=l-|&bl$$s=(x|7ENi6v z(I$J|AMWZ^!(S?p-No6t9RHzHV{*AL_5^(G85n@V!AarRx0eRiQCQelz+8jJVGb3- zcg~gR*8a5d(_o(4fzc$&`JQS#{olYQ8`_$AKsW^u&jpEyh$tI4t)--_ymfSBd<-yx z@+SWF6=#1AJQHX;{z^&tWo(uIUUofTY*F?|bO^EO8Y*dfNFadjoiiqhn1u!UpUfj4LlR1JfCx*l3d4Ha-PmadN1JaUD+hBWdP)z~1RCYd-%igT|T&tLhP`i)D31PgZR) zAz_;By)ThfLdiLge|`fpcK0t>MSid z2|MI;E61KzUsf?j07yz|_-9&gr$*s}(cx>n0_2+vQbqdhD3BMwKb^6cd8X5N6nM60 zbN^qs@@4{61ZJhCdibc2)Rr`*~F;l!S!~_U!QgI@rAwrPy6mr%YF= z`kl^*3fqX1^Ua~3ekNK<2~92O{edIwJ>$zMHo?qf;4aMm5NqY!GBQEvTFX?VytD%; z3x#Mh{t25pukD_?^tWAD_Aut)Tvm?g1@M695=LUAidUcUj=c&@nlFJ?vW>{^=x@r8XB)4 zZC{8YBC?#0sNsQ`U*+2(W29YnE|;wN`ieJ5AoC0(ipF*VEQ5hLmj0+TFQT7Bf~^K_n6om2_6QG;%P%I zxIj^b)j2M{1KLYMxe8jUQje*$;-{{oh1ZXBH8ahQ{#!QSp=d->^=3l zhH^{oKJ`KUeP{11(Iu&Nd!hm}V`^M>Ft|T}f?xP)2ERaH$&(oAPXHF4NSTRBTeE{c~O6T}^ z%&qDT^FhVJUjy#R>7Jj;+mcyxdwok)THXqeHo@P$g`TtXUn%3|ofiQj>DJ>TEf{QwT+BBPddgDsD{|EwiBg0@U>*g{{|HuqrS5z|69C!wf0d*N?f;% zzeY{%G}FXN zHZbM_5c0@a@OOP>p>dHQsP!xFZiq#wSFve!!gC0E!oS9qDR4N6u)iy9$3_V*N-RnOaw&6xGf2{xt6{U}1kFoR142?3p-M8e z(~3@H{;>|g&ZEJQH z#%z@@IsPhzW}|2A|FMw#!WN%)$ODm$;Vz<64jwK5L*@P`{r)EKO$DW$e&stF$&o5) zh-6p2d8KoW2ZzpVEGjo1w0C9j^F-B08LQ(h(j}6U>Yr|!-b${M^wFpzW*V5Rr=@>cj$2Paqa(7?X(WjzwCN_=Ytsz55F0F4|nJ7 zB))Ycup{vva!CVJK&z_dmwne16YKG0ijQAK!yQ$h;C3BjzrMd9wY*pt)ek!{($V+V zU#VAeanjD>jfOz`id&)K2e?%V*6X7REh;J2J6cmN+aj8m6`eqrX@lzAKQUFo!} zo^txMD;&SYL>yV2(nm=c21L1(LqlO8o>GmRr?mVNd%QYsAiW$BBY{%oTuuE03TfHz zc}?nV_>Fvu{U{>grDKAP)`pqwr%EapS7mM_x#fY*3_O+Q@{qUZo|g837g($FF1_qT z?%!)Mx_C-YG+Zx38=Ij>Xc1KTnVAK&Ax(Z2cQ9z~2xCSrEx z@&wtDB&NX*L~AQlwS?kP=#b>Z5btafgJg{<8%oRIISI;yX7c(V`u|F&cG@eqNb^ zACZ2CIh?z?zo!JOlkp~dF(Laki%RnzC}c5X3)O$mJaRsgEEbuEc4X{$&oUqKcI>0c z%x(I34sEVEKn=ZKhrE+&qor%+?5Xa4r^A;&Y$xAl2aEV7kEjmu30ki zI1k}T!wX9$`ns4^2f+t@5!^f1u9m_$H(E!l%hZ`~r^47(Xhwc+;A7Fs;WNJB6qpf#mXjrw`?>2`p!xA3;e2TnA zY$I<4-t-b_7fo=mp7SRZ{}T&fdBR;IoCc_fSyjik!PB`mhNI*42tKU1n@6MmF2uuQ z{K0n0ya$G~^0j>1JIUjb#V*Qo?Do}?vU`@H`DY;@@0d48)Mf!sWR76$M(-%I^L`zi zP99`>lKkgG(FAy9=dL8X%klLjSTm=39S<0#N&B^+6Oail{d9grU6V-y=i&~_Gm1di zDa+?o5OBF=~#(hPO&T*cCtzC;^i$jJm@cQH^pF~`zZe211IPW@e< znxJD^s%&RU`qhrNqn*Gy4 zmbkM!I|0u{Nx7>FJL$}vxlJ@PgK1(vk|R(1N>b)I!yBuZCJf^*&6}8J&YcIN{8svy z3vN6CFT?LI|4&vSjoermIAfemr3~B+2(Vz@svXLiV=I+ z{Gt9$`g0qFbMl*TAoi8}Dd^F|z+Q^0t$5>kcke~=TzqkR z@5NV%HZrUYHgsrOLflzr(;v*vu0ixHokYr{}44;oqrMK#Vk0bSDbzZtX3?(Gy_>~p~|zh}9zs?Y5@kAJYWij$igAneG*=k` zr)$3Jp8Qx}39P#z393Zb8Ug~M^5|mR%&45Aw%d6`*-!-^Kmj=~OKJt30XmZiRO+{j zZ`=Ht719>&PK8~LUP2K3Yg6Xxsk|x9J{*6jvkUf?7|X`wRBfCMm}+9E6t~KKI7Lu1 z&7a6s28WEkmqzf`A%2D1ujjDsxU=*5;Q3?$u}#2~JcB=H`skS2)K~Q28S3RttfT!x zB;ZY!9nMflaCdrv`LI8U(G}i!bM#@TeiQB&32*%pHw%SGmv`<)NMQyhjBtSfIRA01 zUu&qtC0YK*fc;{VF@U&^`VlwU^(B~vhGFeWqZFI!W68>>JCfFg$@^GU|QM3ujIpaw>-5<&(dbBA>#Te8N2e+6q|HRla$ zpTT@Qz3vV5!;lw1ko;(9uzyUvwT-{`uBvxQMuQC=U&73*GL^wg(<9r$9V*Z2c9 z^k<%3qnNF=mMN#}W;#`3GxyI^I1f zM5Gnw30Km5+{QmM=G=0WUxg~PmF>Q zIj_(26>!kytTRXBriE>ELIug()y;)PwFKISpBy>DpKH;M-fPlJ0V5vRy&5h&2njY9 zY8*(2!V6+F%3@B%t`~hYxFnLP6_ehhbw9`-1dS|B2oKux9yS zDtr^*<%=CxCnjGDpY#c-p`z`aW4p8dT&wB@mq z3tydpAQfez?@xBu8k1fO4@U?8d07;FfYOi!c!$MBJ<(6(Qu3}ni4x}~)M;I{;iEap zm3Qd<>&&0N+e}T)lC^ktWf~35_m*s(+HsuP{R~Q+8r-tMrL$uqh@1Y~*g1QF_V+Nk zI{=shfWM9_e+z(PD+;Z@(%>EzFV{i7-bwNfi9~lETnLoS76GM)sT$DpN2Fak$Ob$W zR>DONFWXI@mVMT}Yy5Y!^1+pcCdvbfwznV?_VQ68D`MP8y3OrvrAVxQFXT6>fm=?T z){ zzd@^ny@n61e43zt^+w@d7O}oT+(1cXEctdLbMw%`LR05p1>0diJ$Ue3Hg}2Ya7Cp? zgB88%#!V>P$^xFY?VFjooD2LnkkB|vWFpI^A!pL4d(XiU4@XMidGz7&B!qHUVoD0p z{}Ms$|K?2Bn#%L@Vlpzc>tDWFbPyV)tLiL#i;Vr(&^P5)&adH9`0xrdhGW+M4k>?* z1Hw0-mEK5#;G5S9A7MpsYRGx=Iz{|~-Q>Tf0vBU>*m}B6w*AXO*uTuQl}7l8$=((&M7a9WC|Pwv#TBbIhsjBEdWku4LB@4QXSJxdMuFSj5*gUuk^v9b zQxzU=O0Wvit}z5?Pg|Cry)3qHmU*u}Nl@?Q<`ldwVDb68R%7VYA9#qr#Pi^W@4+Gl z{in1AuhJBIbA9^Y%?GcWb9h$qAfu;)3@^5W6kgbO{{sImUQYJk-`xbm^+Y-)MfIW@ z@RK*6|B>*T(0Z4z4F9(pO55gu=1};3JQU7h0P&fTeuPRX@k$jl!!J4bguIZ2cqrdJ z8E(ggdg*$1E~Ma?VwN3?=j0UFEjTet#yLxtK$kc7k&GR!xJag7g8rCW5`JCkTe7w* z^drd%*w?jSrrxUOoIkq95&-Fo^JA|($)RWjl$gB|y)c!=;R{L@JeZeHeCP8EEc zXTK}L^SGasO+=VkGBk(7W}arr!it0wbp|WSgcg2Xq2^_@oTu#49mz12g3F|8g?<+W z_Ld+pKGVA4dVVh!zIU48qaikf70Ds!uwHv|oh`(_eHhz6yGf9#rGXc-(kDq?i!8k2 zhe^Ol+n|ao-7k};;@mq^@MjM2KEFm5XRTuA%{Z_mOO<@AK$^o+Mpm|zhZWAt74aWV zMG@ivQ57wB+QI|gs8Rb{yzxDfFq=3Jt1+)JAlhE=c|aUarol1GvVo9K5@(w9G^uIzPWg_{ zl}hJqd6JH<2XfJgskA)W(wTuA*UD~jvSC-GOpl&lWo3Wm=cUfJNT>emO0){KxV}>T z9sYQCxI;?4v=1mM11F4{!&^)BmidK+s)JeM-g&Bj-Fe%sll0c* zXV{p;ByOhz;^>OjX=Y2aMO5R0k_OzfXZ8gl4BJ9mTEeZ`NE8LFw0S#G>KJbFV{d0y z1Y`Xqo1zjGK_){;{3U$9RQ>+5ZP^7g_Ji+M3VVS7rqiDdEI(>ig{FW85E%(7#&+*~ zqa$0JY2e4%iU{-VM1tj~>~y1rA-%bDRlDYJ{~8+rb$28fL=ot)SWQQqsVn8R?PqbK z8K0G<+l~;j^j~*4==hPee_c2Q$0z^XeX(R|@7PXoF#K!L*M z3_W9i;IDR}5osXSf`e^*=Z;;mC>|4sink_TLiB}*byBNQ%JqdrSeQP@V%{fMx6OQv ziT3$!cx(9Ngc6x9znNq9B_h4&$Bih)GHOlVyF&XGpO9jK9|(kN#<;C40oS+0G*{LY zHd{DD54y)(39?3aGX~XOgrceBy>|d{%=^Q^yUy5-x2bgzb!iDK9WO}eG^b-ae@ECJ zZ%Rc;)!zN7RWv;x)58cbvD&&{w3cCt=;ww<@bz0~p6Fx*AzudaN$I-CZnxs?bFg^Z zjQHw&?a82>w(fN+lR#*yL>$mwcRMGkI8o;J{^3IB9J18#aDgMMfS>9zkEz1~s#m8o zYT=8`h;L(sp_>FMS`|PAtGbX<*QYZy$+Q3bzIIYe<^9DUa)a+R5zfXscPYsUO8id` z)5vzdA0l+hi4zxe|IF=Q`f!sby+OY_2+(hb>J%T*9fo@niI{1ceMyNtkz&~hB zZSrC@Mdg?tf`sszypB)}ZkV?y0tW$k`(x)a((cGe_zd9|zJMdFGEE zFt>&;Kdbb7JyK2@E~zatHC#Q#XMj*`k$KR*>g{1JepQaWrMy)sIMZYA3-h*aXQS(8 z!rfW*DeXa{te4<}VQy}Z8qRNK7m9b?C3w?S2wmaGBe{FagdPh&FU;4oLgo>}$Y9AN zhn!qqE=Rl}+1#hz%RaB1omi^Jrysa~_)_b3P=p~@QPKp+iE`%}9liIk;U8xd8gcAi z^P?c4@_~jH=~jE}+piD}ZA|YQ!5%RD6g$a9OY1h~BUveT^e;&jx3oyaI}6^K;f(bl zSfnFFqTj$Ey#WvUPn%y_Fv$JF#X$&JEcu#^`us;|!;1)hOG(i0o911_$eK$p7i2z* zkFS%+M6yf}=!LMZ$L;2_2uE5R!}p9ZgKfWe+*X5KNC&dHw<30p*XKCl{}Gf-ROLxy z`?r77_`)rpZNeVQx9m)BG6?A{EYAluJZUt~)vzk{oCtgqbPn4#ts1(@AF-S?GB*C6 zJ(IEQcNJLY^cvuRe*SgVSVhD8Zckcnf7xARODcF%@#6hj@-qhg?~%2QI@_JsATzDd zrJVLc52+aC3acMh9?T1~rmFcWtw6#;5@Qbk*$k zifl--y%i+I)2!Q>KBQa<(0SOD7%SL0U5+*MdK^>x&K-QVmK01kap?EXD`V!Is2O06 zyN4lEB&DF8#4<=CxSNAC0sXa8W4jP*8b9trvV$x8BZ7S~h z7_L~SL7=IX+1M@w9Dsz()r9?}ultfv;xLkz*|AxFXP#?bt&NO7`TMA=PDCwH)1qAy zs5H6n@I~&lzvnks(ksFPjPAkWsxmTWvY89bTQb}V4&|O*b^{S>{hrqX5yr#~4}D6<)xDFTL?`rV6%If+lR$~utU zI&M}!Qv6O^!StOA&vu!tpw4WYh38fjP zh7^T8htqQu%=>85jqm0aIM+$L>sVZJRGqrMCQ_`8;q> zdX7#=&ox$kQ397HJ_DVEMQnz*6fW`BHDZ?;xZV%91ugzxi0L*Fow5#+5}FFNm*Xb^<7p&NiagYoKb> z$NuQyst#XEX|p;*QqI`}xX9nytR)pIs>J=we7p>R?DHfP<5=Syn9u|)eozB&#OLA_t|#uLExyP{*Wi`hpU?_l=9s?~Z?hLi(v0^cO+EU2#Y z0$Mcr)&@4Nx1Q6+F7akN8v1jYxV$4_dkM#_Sk2( z4PElU(t=V#Ulx7-k_dC!w$+C??l;57NmaI^tq=iZk<}%_@eq5GUekjj1HBbq7{jI&B;!6SY z`Pv$ukyJM!3q|B1GX1zmlKeXzj_(3<@+u?C@5*~Zs;0-EAKm1X1NpgON72Tml|O@b zVXN2@7h)amhwgGni}MbAE%{(klu?@gxwK%^w>_0fIX-}!om;nSqpA7$jaD|VbIU)Y zBS}l0h!&PH-`N!$tkw{C4AdKpNchkmo6Wf?vVQ2dgAxU}e{b*hG{G)o)fJu&?6ZJO zmOd#%Asqb!53FRv2hUk-a5#+q&Ggwqb@+lp>z-v>O4isTUKFE4DAaAeLzo%tlO{J2 zJ7jR>fd%V~CFl?2{$gr}V&LWNL z2rh`s!Uj|91@%Mv`eURvgci)%en(pjM8vo#ey(b9^l6Z`?y(exsTFS9kLN2#1&x^eLqb@9g$^P6kziEn0MU&7Rl|!{g)To zkfgx)7<{MDC`SGRx+kWQGXF#c9`hOM0=BQ;TT|DyxBT59Jqw5$v4oA8@|(a7Hy2uK zd9R@hs$72+Cty%O^$72dW2pSp&gs14)9nWoP&AqJR)SgsbJR9q?U8gg0W+Y$AqMUY zOER(;(%&Z|=x4mVPB`C)#e@VFC9Q+)scmU;e#)H`{>ICAs9I+==m~%6-s8qqNQJFZXlp!eJGP7xcFduh_Q5HVrjwu+Pl^!xwD{ z+%2YX@317ay|&+w&7R#dbno+Ki*IQknQJfIuXB49&Bf98nbonk^;^s}1E3kLNq~G{ zW{@gHfboZ|tx8AV9rxg5{hlXX+aIQHfW{3-MrXW2{Ex-k#0{{UA&%iw#xV00S;B%G z+aS?|A!RvH{kL*yP!EH-6eknZ#7>a^zdjb%)%y5ej<{oBwri?i(}W zevucEx;j53TB_HA>_H(vbs&}*;}sY7b(X~ag_sQ=PrhW@tM1G(+0(|l<5dU^W->^= za$_;>keBXCca#i&!^egYedV(K)@LW`i~3A9<%%u!Qv-yR+4JO-STJmTsLw@yMd4iG z8clyXT$lLuen%bCBr97Axv|zs7N&eyX*> zP%FWo6!CL4*7GE{L zl;uU#*(}wr)NkB!EO_NTbj9K8sP#Yw$oQbbYN??Ll%W_0V+~63-4G-RMxp!-{ax$+ zEGc1ta$_KA#b}SJ^FwH6b=kck=OzTm3Con(y0$Sotcg(IIhY6-L(kYNs{b8XxK!h> zFN2bC<~6Sae}E6<7ZsC-X$ac<@=9>E?YyW}=)=UIVuKRjne1@dOcB$9XGV5yYD0wb z#|{w&Z8$Y{=8#lz`*uOf8;B@hIw6<$_Ebce_ht9V7&PT26E%zhueLc^fcrPH> zfu?VjlTZkv(?3=VSVViz;O@53vfQXuz$zVh9(h<6&YB?#R{&J(f@fNm@wX+dSq2qix7>oX8@j1pU5>(M+jF|c;xu#K-+0{`etMPjZkg;D{FR6X=6=< zpDu**^3e`GkR`3N`%=qWqT3rGl#Sh->&@$nQz~v#+U{LB2V_`DeXm%aNF}cJXQOTH z&aLgdqhIxF$xhqf^=`2k-_KXgy~63G*b-U0*#BCZzu>DgA!Opt0LB~uhW2O)*ZnJ6OT$CIt>Jzp&(vi$?gtEjxA5JsihQ>Ed zYk}pzL7y(*5%*J|b+Oh6k2a3G=Do-3lN-edi3E8B9=d0Bfj`{QE`?ag6Bq7+%9*I| zeG2ZQ;^&^3h6??HO}u*s)B(k1oLc+Vq#QpZ4Z}VR|HeYdk*_j2|Kfw;OLmo7izi=x zEwS}i>QIjdIGAZN9Ab)K_l7WRH^zTk(NEfwrHfpCcWO}e!Hg50;QXiwM*EfIh3h(9 zs;}wF@4aHHUBT&Sy2AfwePC%$L(JQ}W&RcaH#8Sk>MSV%WgWy05tvMgsj~|bdM75)Si#R> zmyz1NdjeG@i*UA7Hz-A4>J?_ijW&P9E8jq^&FpF$8${fyN6%XO+IS{)Ddl{Zjo$D_I+9muBj2$CVIZOyD;GzqIDj=dArN0$a49X)qb>1W*18&K7L2CTeB zJ7dB*Jeii@;MinEK%eLMSci#uc`W+P6`TpAjtfQr0N(XWiis#aBQhiyNCquU#isqz ze@ss+tY~$R^EUX|mvy^2TE1}Up6UW}o+!60R^Q(GI+aS-q3Mg)Isb)(im<~R{i#(g zPrxHAy!ejO#vKWQ%F0#(Uth9&|4MVQ$%1D+LJcAsEt5T4`m%A??Y^LyU-eRY5)%Fp zg@=AW<*p;os3{0B)F&LjIp)1{$C2}fNy!vL<-HJm##P&n2M9JM2=J1M%RK%l^56Y^ z2}>Ml_olRn0{wD=@Yj{}vF=0P+>i{v?Tr0-qZ{1c;VzbmNxRe5!koSTog2dog&9VR zAL4MqSbZFNk=DJ*w`Awn$gXcSFUZsE9XmE&ND!b+t^J8`Wdjnpju66+{rOCX@|d5S zExY-KY5v7sKg|PusANIPfiH;&H4&+4He`?m7Pc84FSM4cr2acTdblIN+)UwI*mh|O z>xF(A@#e1>%HZZ0VB+Jsxd#742x{A3r74pJpG7Q+a4JT$b;Jlg9}NoU<$PrbkS#B5 znW8Kb;dHRj(9q_H{)p+j-yxMxmp(Tz{d2&Ogye$_QK8?LEziH^>cY0%S z-O#e!boxBT*&7CQx(c7-Upbp0lbTo#fjJ|N`eKI_(h-+}+M`YYzH@!Y(86fdt=j|~ z@WALUF6+);hv&EVJgxo+=z06RO;nyL$2%oSWbjtM(?xgck)G7)6&B@B8yeo~_bY(@ z&TR4VUcxG}-Osuc#=m$$j?z+O>_qfYXk@nb9hXFg6v!s&+TueKP=766G&w0tF83NB zeIrZx_(-~0lbItr$M-(D0VBNeeSX!07xpoK>(<+R1X(NT7tu^PnH4K+()*kdKbJL3 z1&_VdzMp0tZF>VVneBWIlqjiXUx@hI(&?sct93@!(2Z>oVmq^-NqQl+y6Gc}CG2=K z6uMc@fyeTYPt_GiUz5b;74!SZzIZ23N0P^G@Cy~=xC;+OXT^bzj9nz!#%%zVf^BVQ zc*Iz?E8Mgu^p+UQK~`wJgX-gwy`acu`UY=ZJ&V3|2ypo`#E7fejMIp}a`d=-VEg8E zz*2XRn;F3plIA7uRe}N^&^>Tp0faB3*6Tk+2P8~%1*VDa-J(`!zj+~kpweX#gzQxH za(?3fj4t2~e2!2Th-#+7KevRh1hgU{xBJ^X!!DnX1;#)6W3Rm|wT-|}BB_F=YyPd* zI#hR9@ebrck8Ut~Pp;h*(cyD^2ESU73ctpE#f_UJ%6sBSzv%(|4&=iUp4)h8ev0p$ z=Mv4KCnIq_H1HE0ko@g=D9`y88*+E>Qn38`O!>aG(cV0|;Ggtf)hC$rPdt!}+T)xX( z`&EO^Bv_3K**tb-HWF!Dnm%$&M>Hmx?xt8517w{m@kd`Lo3o|LhGoq~y{{t|7X^gO z?#f23j{gah`>j{lsJ%@DxHS;A##0%v!dNG%N(W%nN}H}yLP?2rcymNr?MhcDOaFvT zz_OFDC?qWRXFcC^*YIFFsMc}V`l3GRtMq7&$o>;lM>H)#4#7mt^B4cM*YU@Sf*rqR zyoxp1PrTXZkph<~_RnSkX8^eS?ncyM^ZIiHQ>VNHCHh0IAep~qc%tw9?Njuz4q3|a zh-dSK8c&{WF_#AZU26;%I3-lz(?O1NE7azLBP!1FtI6l(k)JND>q!jCyHFwa`96HhJOi&(e?i&y;f@~st{Z+ux zJs2=1qjv;k*>QUF{$)yK?a}>JDPhmGU~goGaH}bqu|yAF&852^UrcbRCdDI~oKjQA z@fA)VqG4s0-ihw+(A4jmUElaOopEAr5d7S(p)Akte`NFl(%=V5o>R=}6+UDC@pAs*53&3)lpSoh$oGv@W z$r4p~8<>x}H5 zG%Pp7MNYh7@zp*v%4;iBwdg&@BkQN|WExwU;Mi9gw1*cvzA(9la8h9@-mdhFj`OGe zCV}#l8Lo(|8;OahwA@T=1lbR~_+@JYcD8q<`Vv&3yjYMDoP&FpNGiUoKI-1`h&jk! zXTpm$aqrJ8Z@R}t@?{g83q%yXHgs@IsiVWv*YUfJ2!jcCHT}~epRkUq3Anm zhQl)|5`i4eY8zL<&G~I%AUHZuXq*e30My1w2>Z>f@O#XL;jW2s1+++~6i;5t|FDG$ z@nVY*>-s%tw3f;d9#xTOVX7(~shrf7GBi(91r^2?_}u#*ng3VKpn?M5@rJP%r}bN~ ze1K~wE6uo9a8w1z$Loa81!ZMaXpLv zUEe|DL$SNM9!%15FwXiAD4Vr0NPrUScK5+Od242Z#I$zPxz0pm$o?}td#4c-99d5Q zYY?~I94j}?uIq5OL|n0WVoX3aRjzu5SxNJ0Y}%_g)f(k}gX-9WCuuI}dmjb(pUoE| z#yAGnJOy&4=+Ue&S(?jsmmB4{(Pk4EZt8j|PLIO%U&&~UYPMT1p56=V92aaI_R($O za3eQ+rV#PQG^rT6n@$SLF}~JkVr{vsT5Cc3lcCuwO=(!=4hp-&vgr#7JUyt=Qh}jS zLEYYhF@@pQ_*hq)6p*(WU8P|pmTTXZ@$rx=$Xg`S3kM9c*x^QX(WgUdzF(gMhpy}& zEsaKq9izlYRaxSJfU=dd`jXqV!rHtWCXgZM@A3CDO<)GeYDrY8s0jTu?G8+Wx?ChF zDOUyDiV=6S<}>oeoC_Me7@sB-JQmw_cVGwcSMAgoT!T>_fpEu!0JuZ^@MULoAR5&n z6_MG6x{QS&lu{N}1{cyryae$1YN3`1zivC295cKBk*>{yA(Yf3*!`dQedB=&0}TmzN9|4r z6&l=9rKR5JVzb|I7f9SqnMi)mMwFi7%00*Yyivp~W?@6Ba_K?-Iyy(>Tjv~h?=ov5 z7u0mzavDQoqs7aoa$02L&=UhYqSiO#58T-)Md5HH!Efmgmb=%JcB54S4csZ39d}P}FRWD>Ug;5n zWGgRO3W-L{7r#pvkk6Q zkU9NC*QkJpv5BQhHX;45GH;!K7p5cKZ&$J4X@sBwoRIIz_MV7OT*$rW-vpOSPHtuG^VF0+&BEAMJ)}Bgtslp%ICpLyU6mGz z)z&n75E^}++-GHgk9oUa)!0&)f)(k$)mf!*_>V;7J4%>tVK!!%qH2X0KK-#aqH88q zXHQy9@YePgho;sYA`qz5JnSJK5%+9B^FnUN`78FiXULg-ubDfaQ{=|_$-KaxZ2Xh> zB%&k1xeLmKrv6i@u*z4p54Er3R%oW{%SADG8+o$CMyZ&{5CPJPj*PM=#}d1gmhvvf z#kRE4Uxnmbzl<_avfB%N%+KN(dzfe?+9J`q>lJeux zk%}p=Tk%e>uMg+*1S|@occBBOQSd)T=lyVCjvh1k<2aanP*mS#_|aFvC^_p=)69Lt%egv$#S1_xBfPy8dYm~+ zAmKh0kMnf|L1KK4cg4uB^>IdwxlmNp*0zkHs5IAMo`uGNiNY$Q9phoL#v=yZGobNe zqlsH;%sZjs?h$Kl)|7+ zQB@@$CZQT5aikku0;aZ4Low4J!U5vMw>Zz&7hnX~ESGTw8s4lja^pzYYLOv$_h)c2 zd@|kGl+~B})|AyY9W%p(j^k*mm8PuayU6Rf_|#3e!xZTsGke=Q)8@$VZ`Mfc_dUcB zS3M=AY+OiTH78`5Q+PUTpGF`etGul26P@YW^gM%EvQV>WusV9 zbWhNvDP7fG72aol{TZ8yt89ml%r;rdW+=9BRfklhI={;*@sLFF338g$NqQQhOHi8b zF0t1@MpMkf;v)G4k}XPjGE=+bcDz5EkFC1YIAv=OaV`-F&R#~P_HS{-o^%fUqf*sKhdypdOQL-bh5gO$G1^ zR|sIR1GCEc3hmOJuYJcB3spI1o~6g2mY#;%gU77-Z2i?1Lu#AeMT3{ix|;D0cM*l( z@LRbF3=MsgnVAVUC(E9-7#ZN?8aM;NByf9S(5rLQ%*h*JbYjxGJD0&%S-AKWp#SMC8W%SyXy| zOMw9I{~>)RWL@)Y0jOl`2&^2fi%31WC2->BXOSakm#=4UXU7OF-$;a4d#YcI792<_ znVI>Nv`fJ&p&w;#XsB3z_L>Mq`?Z3^qNcEt5Lri5%0D~^1-_NBbVNx*5vPjfUkszEDfx)5XED>IN>6d=QSp!li$sP>JM98@G&CTv~2 z7QVLp7;H_)h#r;!=ifp=<;_V1Jm=#R1C+%rqFA$iQ&ZUT^5X|U(f5sT;}hrf;$nI@ zx|dM8;_+u}EGm&n)4;+)V>RbBeDMc3Ntv9QIt6zcW9Q(Il$HGm2B$rG5wVt3!1sFx z22kMYW=U>K!ha~L0RK^7B6t;LjrL{}ty-{VO0i3ij!LeY;A; tko3UsblUa*aecYKWt~-o|Gtsm`5xg)L{{aW!~ozQNpU%`iqCpK{tp13>;3=$ literal 72250 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%0A{O2H$H~{ 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%0A<0ypi(}4WjWt_ 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 From 205e41b88a4480e9a8c6c7f286b6593355f65de6 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 13:07:41 -0400 Subject: [PATCH 04/12] fix link path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aa6a018f11..2d71878b9b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ For a more thorough explanation of the concepts behind Singularity and Mesos cli - [JSON REST API and Java Client](Docs/reference/api.md) - [Fully featured web application (replaces and improves Mesos Master UI)](Docs/ui.md) - Rich load balancer integration with [Baragon](https://github.com/HubSpot/Baragon) - - [Deployments, automatic rollbacks, and healthchecks](details.md#deploys) + - [Deployments, automatic rollbacks, and healthchecks](Docs/details.md#deploys) - [Webhooks for third party integrations](Docs/webhooks.md) - Configurable email alerts to service owners - [Historical deployment and task data](Docs/database.md) From 892b39ff78a6c94f109b49038332c949151a0a64 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 13:11:49 -0400 Subject: [PATCH 05/12] link to correct area of details page --- Docs/details.md | 1 + README.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Docs/details.md b/Docs/details.md index e910f6d1bc..909758f1fc 100644 --- a/Docs/details.md +++ b/Docs/details.md @@ -54,6 +54,7 @@ The [*Singularity UI*](ui.md) is a single page static web application served fro It is a fully-featured application which provides historical as well as active task information. It allows users to view task logs and interact directly with tasks and deploy requests. + ### Optional Slave Components #### Singularity Executor diff --git a/README.md b/README.md index 2d71878b9b..67f8dc723e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ For a more thorough explanation of the concepts behind Singularity and Mesos cli - [Webhooks for third party integrations](Docs/webhooks.md) - Configurable email alerts to service owners - [Historical deployment and task data](Docs/database.md) - - [Custom executor with extended log features](Docs/details.md#optional-slave-components) + - [Custom executor with extended log features](Docs/details.md#optional-components) ---------- @@ -72,7 +72,7 @@ Then simply run `docker-compose up` and it will start containers for... - [API](Docs/reference/api.md) - [Configuration](Docs/reference/configuration.md) - [Examples](Docs/reference/examples.md) - - [Custom Executor Components](Docs/details.md#optional-slave-components) + - [Custom Executor Components](Docs/details.md#optional-components) #### Development #### From 960194426535b52200d366851d2cb233587c180c Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 13:14:15 -0400 Subject: [PATCH 06/12] link to correct area of details page --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 67f8dc723e..3b4d7762a3 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ For a more thorough explanation of the concepts behind Singularity and Mesos cli - [JSON REST API and Java Client](Docs/reference/api.md) - [Fully featured web application (replaces and improves Mesos Master UI)](Docs/ui.md) - Rich load balancer integration with [Baragon](https://github.com/HubSpot/Baragon) - - [Deployments, automatic rollbacks, and healthchecks](Docs/details.md#deploys) + - [Deployments, automatic rollbacks, and healthchecks](Docs/details.md#user-content-deploys) - [Webhooks for third party integrations](Docs/webhooks.md) - Configurable email alerts to service owners - [Historical deployment and task data](Docs/database.md) - - [Custom executor with extended log features](Docs/details.md#optional-components) + - [Custom executor with extended log features](Docs/details.md#user-content-optional-components) ---------- @@ -72,7 +72,7 @@ Then simply run `docker-compose up` and it will start containers for... - [API](Docs/reference/api.md) - [Configuration](Docs/reference/configuration.md) - [Examples](Docs/reference/examples.md) - - [Custom Executor Components](Docs/details.md#optional-components) + - [Custom Executor Components](Docs/details.md#user-content-optional-components) #### Development #### From 08413dc40df0eada10188f17b501d3d06d5931f4 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:03:47 -0400 Subject: [PATCH 07/12] many configuration updates --- Docs/database.md | 2 +- Docs/details.md | 10 +++ Docs/development/docker.md | 10 +-- Docs/install.md | 19 ++-- Docs/reference/configuration.md | 152 ++++++++++++++++++++++++++++---- 5 files changed, 160 insertions(+), 33 deletions(-) diff --git a/Docs/database.md b/Docs/database.md index 08d253b596..51074d4a05 100644 --- a/Docs/database.md +++ b/Docs/database.md @@ -47,7 +47,7 @@ You can optionally purge old task data from the db by specifying `historyPurging ``` historyPurging: deleteTaskHistoryAfterDays: 365 # purge tasks older than this - deleteTaskHistoryAfterTasksPerRequest: 1000 # How many tasks for one request before we starting purging + deleteTaskHistoryAfterTasksPerRequest: 1000 # How many tasks per request before purge deleteTaskHistoryBytesInsteadOfEntireRow: true # Keep the row, just delete data to save space checkTaskHistoryEveryHours: 24 # how often to check for tasks to purge enabled: false # determines if we should run the purge diff --git a/Docs/details.md b/Docs/details.md index 909758f1fc..6f4f530950 100644 --- a/Docs/details.md +++ b/Docs/details.md @@ -42,6 +42,16 @@ Rollback of failed deploys, health checking and load balancing are also part of When a service or worker instance fails in a new deploy, the Singularity scheduler will rollback all instances to the version running before the deploy, keeping the deploys always consistent. After the scheduler makes sure that a Mesos task (corresponding to a service instance) has entered the TASK_RUNNING state it will use the provided health check URL and the specified health check timeout settings to perform health checks. If health checks go well, the next step is to perform load balancing of service instances. Load balancing is attempted only if the corresponding deployable item has been defined to be *loadBalanced*. To perform load balancing between service instances, Singularity supports a rich integration with a specific Load Balancer API. Singularity will post requests to the Load Balancer API to add the newly deployed service instances and to remove those that were previously running. Check [Integration with Load Balancers](development/lbs.md) to learn more. Singularity also provides generic webhooks which allow third party integrations, which can be registered to follow request, deploy, or task updates. + +#### Slave Placement + +When matching a Mesos resource offer to a deploy, Singularity can use one of several strategies to determine if the host in the offer is appropriate for the task in question, or `SlavePlacement` in Singularity terms. Available placement strategies are: + +- `GREEDY`: uses whatever slaves are available +- `SEPARATE_BY_DEPLOY`/`SEPARATE`: ensures no 2 instances / tasks of the same request *and* deploy id are ever placed on the same slave +- `SEPARATE_BY_REQUEST`: ensures no two tasks belonging to the same request (regardless if deploy id) are placed on the same host +- `OPTIMISTIC`: attempts to spread out tasks but may schedule some on the same slave + #### Singularity Scheduler Dependencies The Singularity scheduler uses ZooKeeper as a distributed replication log to maintain state and keep track of registered deployable items, the active deploys for these items and the running tasks that fulfill the deploys. As shown in the drawing, the same ZooKeeper quorum utilized by Mesos masters and slaves can be reused for Singularity. diff --git a/Docs/development/docker.md b/Docs/development/docker.md index 4ab58b949f..307ddc3d22 100644 --- a/Docs/development/docker.md +++ b/Docs/development/docker.md @@ -1,22 +1,22 @@ ## Setup -For developing or testing our Singularity with Docker, you will need to install [docker](https://docs.docker.com/installation/) and [docker-compose](https://docs.docker.com/compose/#installation-and-set-up). +For developing or testing out Singularity with Docker, you will need to install [docker](https://docs.docker.com/installation/) and [docker-compose](https://docs.docker.com/compose/#installation-and-set-up). ## Example cluster with Docker Compose Run `docker-compose pull` first to get all of the needed images. *Note: This may take a few minutes* -Then simply run `docker-compose up` to start containers for... +Then simply run `docker-compose up` and it will start containers for... - mesos master - mesos slave (docker/mesos containerizers enabled) -- zookeeper host +- zookeeper - Singularity - [Baragon Service](https://github.com/HubSpot/Baragon) for load balancer management - [Baragon Agent](https://github.com/HubSpot/Baragon) + Nginx as a load balancer ...and the following UIs will be available: -- Singularity UI => http://localhost:7099/singularity -- Baragon UI => http://localhost:8080/baragon/v2/ui +- Singularity UI => [http://localhost:7099/singularity](http://localhost:7099/singularity) +- Baragon UI => [http://localhost:8080/baragon/v2/ui](http://localhost:8080/baragon/v2/ui) *if using [boot2docker](http://boot2docker.io/) or another vm, replace localhost with the ip of your vm* diff --git a/Docs/install.md b/Docs/install.md index a957520d55..baef93696a 100644 --- a/Docs/install.md +++ b/Docs/install.md @@ -6,12 +6,13 @@ Singularity uses Zookeeper as its primary datastore -- it cannot run without it. -Chef recipe: https://supermarket.chef.io/cookbooks/zookeeper -Puppet module: https://forge.puppetlabs.com/deric/zookeeper +Chef recipe: [https://supermarket.chef.io/cookbooks/zookeeper](https://supermarket.chef.io/cookbooks/zookeeper) -More info on how to manually set up a Zookeeper cluster lives here: https://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup +Puppet module: [https://forge.puppetlabs.com/deric/zookeeper](https://forge.puppetlabs.com/deric/zookeeper) -For testing or local development purposes, a single-node cluster running on your local machine is fine. +More info on how to manually set up a Zookeeper cluster lives [here](https://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup) + +For testing or local development purposes, a single-node cluster running on your local machine is fine. If using the [docker testing/development setup](development/docker.md), this will already be present. ### 2. Set up MySQL (optional) @@ -19,7 +20,7 @@ Singularity can be configured to move stale data from Zookeeper to MySQL after a ### 3. Set up a Mesos cluster -Mesosphere provides a good tutorial for setting up a Mesos cluster: http://mesosphere.com/docs/getting-started/datacenter/install/. Don't bother setting up Marathon, it isn't necessary for Singularity. +Mesosphere provides a good tutorial for setting up a Mesos cluster: http://mesosphere.com/docs/getting-started/datacenter/install/. You can skip the section on setting up Marathon since Singularity will be our framework instead. ### 4. Build or download the Singularity JAR @@ -31,7 +32,7 @@ Run `mvn clean package` in the root of the Singularity repository. The Singulari #### Downloading a precompiled JAR -Singularity JARs are published to Maven Central for each release. You can view the list of SingularityService (the executable piece of Singularity) here: http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.hubspot%22%20AND%20a%3A%22SingularityService%22 +Singularity JARs are published to Maven Central for each release. You can view the list of SingularityService (the executable piece of Singularity) JARs [here](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.hubspot%22%20AND%20a%3A%22SingularityService%22) Be sure to only use the `shaded.jar` links -- the other JARs won't work. @@ -40,6 +41,8 @@ Be sure to only use the `shaded.jar` links -- the other JARs won't work. Singularity requires a YAML file with some configuration values in order to start up. Here's an example: ```yaml + +# Run SingularityService on port 7099 and log to /var/log/singularity-access.log server: type: simple applicationContextPath: /singularity @@ -49,8 +52,8 @@ server: requestLog: appenders: - type: file - currentLogFilename: ../logs/access.log - archivedLogFilenamePattern: ../logs/access-%d.log.gz + currentLogFilename: /var/log/singularity-access.log + archivedLogFilenamePattern: /var/log/singularity-access-%d.log.gz database: # omit this entirely if not using MySQL driverClass: com.mysql.jdbc.Driver diff --git a/Docs/reference/configuration.md b/Docs/reference/configuration.md index 6476a7c03f..bf6a3ef2c5 100644 --- a/Docs/reference/configuration.md +++ b/Docs/reference/configuration.md @@ -2,24 +2,31 @@ Singularity (Service) is configured by DropWizard via a YAML file referenced on the command line. Top-level configuration elements reside at the root of the configuration file alongside [DropWizard configuration](https://dropwizard.github.io/dropwizard/manual/configuration.html). -- [Root Configuration](#root-configuration) - - [Common Configuration](#common-configuration) - - [General](#general) - - [Healthchecks and New Task Checks](#healthchecks-and-new-task-checks) - - [Limits](#limits) - - [Cooldown](#cooldown) - - [Load Balancer API](#load-balancer-api) - - [User Interface](#user-interface) - - [Internal Scheduler Configuration](#internal-scheduler-configuration) - - [Pollers](#pollers) - - [Mesos](#mesos) - - [Thread Pools](#thread-pools) - - [Operational](#operational) -- [Mesos Configuration](#mesos-configuration) - - [Framework](#framework) - - [Resource Limits](#resource-limits) - - [Racks](#racks) - - [Slaves](#slaves) +- [SingularityService Configuration](#root-configuration) + - [Root Configuration](#root-configuration) + - [Common Configuration](#common-configuration) + - [General](#general) + - [Healthchecks and New Task Checks](#healthchecks-and-new-task-checks) + - [Limits](#limits) + - [Cooldown](#cooldown) + - [Load Balancer API](#load-balancer-api) + - [User Interface](#user-interface) + - [Internal Scheduler Configuration](#internal-scheduler-configuration) + - [Pollers](#pollers) + - [Mesos](#mesos) + - [Thread Pools](#thread-pools) + - [Operational](#operational) + - [Mesos Configuration](#mesos-configuration) + - [Framework](#framework) + - [Resource Limits](#resource-limits) + - [Racks](#racks) + - [Slaves](#slaves) + - [Database](#database) + - [History Purging](#history-purging) + - [S3](#s3) + - [Sentry](#sentry) + - [Email/SMTP](#smtp) + - [UI Configuration](#ui-configuration) ## Root Configuration ## @@ -32,7 +39,7 @@ These are settings that are more likely to be altered. |-----------|---------|-------------|------| | allowRequestsWithoutOwners | true | If false, submitting a request without at least one owner will return a 400 | boolean | | commonHostnameSuffixToOmit | null | If specified, will remove this hostname suffix from all taskIds | string | -| defaultSlavePlacement | GREEDY | The slavePlacement strategy when not specified in a request. GREEDY uses whatever slaves are available, SEPARATE_BY_DEPLOY (same as SEPARATE) ensures no 2 instances / tasks of the same request and deploy id are ever placed on the same slave, SEPARATE_BY_REQUEST ensures no two tasks belonging to the same request (regardless if deploy id) are placed on the same host, and OPTIMISTIC attempts to spread out tasks but may schedule some on the same slave | enum / string [GREEDY, OPTIMISTIC, SEPARATE (deprecated), SEPARATE_BY_DEPLOY, SEPARATE_BY_REQUEST] +| defaultSlavePlacement | GREEDY | See [Slave Placement](../details.md#user-content-placement) | enum / string [GREEDY, OPTIMISTIC, SEPARATE (deprecated), SEPARATE_BY_DEPLOY, SEPARATE_BY_REQUEST] | defaultValueForKillTasksOfPausedRequests | true | When a task is paused, the API allows for the tasks of that request to optionally not be killed. If that parameter is not set in the pause request, this value is used | boolean | | deltaAfterWhichTasksAreLateMillis | 30000 (30 seconds) | The amount of time after a task's schedule time that Singularity will classify it (in state API and dashboard) as a late task | long | | deployHealthyBySeconds | 120 | Default amount of time to allow pending deploys to run for before transitioning them into active deploys. If more than this time passes before a deploy can be considered healthy (all of its tasks either make it to TASK_RUNNING or pass healthchecks), then the deploy will be rejected | long | @@ -88,6 +95,7 @@ These settings are less likely to be changed, but were included in the configura | cleanupEverySeconds | 5 | Will cleanup request, task, and other queues on this interval | long | | persistHistoryEverySeconds | 3600 (1 hour) | Moves stale historical task data from ZooKeeper into MySQL, setting to 0 will disable history persistence | long | | saveStateEverySeconds | 60 | State about this Singularity instance is saved (available over API) on this interval | long | +| checkScheduledJobsEveryMillis | 600000 (10 mins) | Check for new scheduled jobs and those running into the next scheduled time on this interval | long | #### Mesos #### | Parameter | Default | Description | Type | @@ -115,6 +123,14 @@ These settings are less likely to be changed, but were included in the configura | sandboxHttpTimeoutMillis | 5000 (5 seconds) | Sandbox HTTP calls will timeout after this amount of time (fetching logs for emails / UI) | newTaskCheckerBaseDelaySeconds | 1 | Added to the the amount of deploy to wait before checking a new task | long | | allowTestResourceCalls | false | If true, allows calls to be made to the test resource, which can test internal methods | boolean | +| deleteDeploysFromZkWhenNoDatabaseAfterHours | 336 (14 days) | Delete deploys from zk when they are older than this if we are not using a database | long | +| deleteStaleRequestsFromZkWhenNoDatabaseAfterHours | 336 (14 days) | Delete stale requests after this amount of time if we are not using a database | long | +| deleteTasksFromZkWhenNoDatabaseAfterHours | 168 (7 days) | Delete old tasks from zk after this amount of time if we are not using a database | long | +| deleteDeadSlavesAfterHours | 168 (7 days) | Remove dead slaves from the list after this amount of time | long | +| deleteUndeliverableWebhooksAfterHours | 168 (7 days) | Delete (and stop retrying) failed webhooks after this amount of time | long | +| waitForListeners | true | If true, the event system waits for all listeners having processed an event. | boolean | +| warnIfScheduledJobIsRunningForAtLeastMillis | 86400000 (1 day) | Warn if a scheduled job has been running for this long | long | +| warnIfScheduledJobIsRunningPastNextRunPct | 200 | Warn if a scheduled job has run this much past its next scheduled run time (e.g. 200 => ran through next two run times) | int | ## Mesos Configuration ## @@ -153,3 +169,101 @@ These settings should live under the "mesos" field inside the root configuration | slaveHttpPort | 5051 | The port to talk to slaves on | int | | slaveHttpsPort | absent | The HTTPS port to talk to slaves on | Integer (Optional) | +## Database ## + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| database | | The database connection for SingularityService follows the [dropwizard DataSourceFactory format](http://www.dropwizard.io/0.7.0/dropwizard-db/apidocs/io/dropwizard/db/DataSourceFactory.html) | [DataSourceFactory](http://www.dropwizard.io/0.7.0/dropwizard-db/apidocs/io/dropwizard/db/DataSourceFactory.html) | + +#### History Purging #### + +These settings live under the "historyPuring" field in the root configuration + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| deleteTaskHistoryAfterDays | 365 | Purge tasks older than this many days | int | +| deleteTaskHistoryAfterTasksPerRequest | 10000 | Purge oldest tasks when there are more than this many associated with a single request | int | +| deleteTaskHistoryBytesInsteadOfEntireRow | true | Only delete the taskHistoryBytes instead of the entire record of the task (e.g. to save space)| boolean | +| checkTaskHistoryEveryHours | 24 | Run the purge every x hours | int | +| enabled | false | Should we run the database purge | boolean | + +## S3 ## + +These settings live under the "s3" field in the root configuration. If using the SingularityS3Uploader, this section will need to be provided in order to view lists of and download s3 logs from the SingularityUI. + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| maxS3Thread | 3 | Max threads to run for fetching logs from s3 | int | +| waitForS3ListSeconds | 5 | Timeout in seconds for fetching list of s3 logs | int | +| waitForS3LinksSeconds | 1 | Timeout in seconds for creating new s3 links | int | +| expireS3LinksAfterMillis | 86400000 (1 day) | Expire generated s3 log links after this amount of time | long | +| s3Bucket | | S3 bucket to search for logs | String | +| groupOverrides | | Extra s3 configurations provided such that individual requests may use separate s3 buckets. Each S3GroupOverrideConfiguration has a name specified by the Map key and consists of an s3Bueckt, s3AccessKey, and s3SecretKey |Map | +| s3KeyFormat | | Search for logs with keys in this format, should be the same as the key format set in the SingularityS3Uploader | String | +| s3AccessKey | | aws access key for the specified s3 bucket | String | +| s3SecretKey | | aws secret key for the specified s3 bucket | String | + +## Sentry ## + +These settings live under the "sentry" field in the root config and enable Singularity error reporting to [sentry](https://getsentry.com/welcome/). + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| dsn | | Sentry DSN (Data Source Name) | String | +| prefix| "" | Prefix string for event culprit naming and messages | String | + +## SMTP ## + +These settings live under the "smtp" field in teh root config. + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| username | | smtp username | String | +| password | | smtp password | String | +| taskLogLength | 512 | Send this many lines of a tasks log in emails | int | +| host | localhost | Host for smtp session | String | +| port | 25 | Port for smtp session | int | +| from | "singularity-no-reply@example.com" | Send emails form this address | String | +| mailMaxThreads | 3 | max threads for email sending process | int | +| admins | [] | List of admin user emails | List | +| rateLimitAfterNotifications | 5 | Rate limit email sending after this many notifications have been sent in `rateLimitPeriodMillis` | int | +| rateLimitPeriodMillis | 60000 (10 mins) | time period for `rateLimitAfterNotifications` | long | +| rateLimitCooldownMillis | 3600000 (1 hour) | Cooldown time before rate limiting is removed | long | +| taskEmailTailFiles | [stdout, stderr] | Send the tail of these files in messages about tasks | List | +| emails | See below | See below | Map> | + +#### Emails List #### + +The emails list determines what emails to send notifications to and for what events. You can specify a map of [`EmailType`](https://github.com/HubSpot/Singularity/blob/master/SingularityService/src/main/java/com/hubspot/singularity/config/EmailConfigurationEnums.java) to a list of [`EmailDestination`s](https://github.com/HubSpot/Singularity/blob/master/SingularityService/src/main/java/com/hubspot/singularity/config/EmailConfigurationEnums.java) + +`EmailType` corressponds to different events that could trigger emails such as `TASK_LOST` or `TASK_FAILED` + +`EmailDestination` corressponds to one of `OWNERS` (as listed on the Singularity Request), `ACTION_TAKER` (user who triggered the action causing the email update), or `ADMINS` (specified in config as seen above) + +## UI Configuration ## + +These settings live under the "ui" field in the root config. + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| title | "Singularity" | Title shown in the left of the menu bar in ui | String | +| navColor | "" | Color for nav bar | String | +| baseUrl | | Base url where the ui will be hosted (e.g. http://localhost:7099/singularity) | String | +| runningTaskLogPath | stdout | Generate link to this log for running tasks on the request page | String | +| finishedTaskLogPath | stdout | Generate link to this log for finished tasks on the request page | String | +| hideNewDeployButton | false | Don't show the 'New Deploy' button | boolean | +| hideNewRequestButton | false | Don't show the 'New Request' button | boolean | +| rootUrlMode | INDEX_CATCHALL | `INDEX_CATCHALL`: UI is served off of / using a catchall resource. `UI_REDIRECT`: UI is served off of /ui, path and index redirects there. `DISABLED`: UI is served off of /ui and the root resource is not served at all | enum / String `INDEX_CATCHALL`, `UI_REDIRECT`, `DISABLED` | + +## Zookeeper ## + +These settings live under the "zookeeper" field in the root config. + +| Parameter | Default | Description | Type | +|-----------|---------|-------------|------| +| quorum | | Comma separated host:port list of zk hosts | String | +| sessionTimeoutMillis | 600_000 | zookeeper session timeout | int | +| connectTimeoutMillis | 60_000 | Connect to zookeeper timeout | int | +| retryBaseSleepTimeMilliseconds | 1_000 | Wait time between zookeeper connection retries | int | +| retryMaxTries | 3 | Max retries to obtain a zookeeper connection before aborting | int | +| zkNamespace | | Path under which to store Singularity data in zk (e.g. /singularity) | String | From 2a2f1039dc9da1137c17de5ddce77f1405306e7b Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:06:42 -0400 Subject: [PATCH 08/12] silly markdown --- Docs/reference/configuration.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Docs/reference/configuration.md b/Docs/reference/configuration.md index bf6a3ef2c5..3fd76ce366 100644 --- a/Docs/reference/configuration.md +++ b/Docs/reference/configuration.md @@ -225,12 +225,12 @@ These settings live under the "smtp" field in teh root config. | port | 25 | Port for smtp session | int | | from | "singularity-no-reply@example.com" | Send emails form this address | String | | mailMaxThreads | 3 | max threads for email sending process | int | -| admins | [] | List of admin user emails | List | +| admins | [] | List of admin user emails | List | | rateLimitAfterNotifications | 5 | Rate limit email sending after this many notifications have been sent in `rateLimitPeriodMillis` | int | | rateLimitPeriodMillis | 60000 (10 mins) | time period for `rateLimitAfterNotifications` | long | | rateLimitCooldownMillis | 3600000 (1 hour) | Cooldown time before rate limiting is removed | long | -| taskEmailTailFiles | [stdout, stderr] | Send the tail of these files in messages about tasks | List | -| emails | See below | See below | Map> | +| taskEmailTailFiles | [stdout, stderr] | Send the tail of these files in messages about tasks | List\ | +| emails | See below | See below | Map\> | #### Emails List #### From fecc26988c253d994c69ab9102e8fb0919d5010a Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:07:12 -0400 Subject: [PATCH 09/12] silly markdown --- Docs/reference/configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/reference/configuration.md b/Docs/reference/configuration.md index 3fd76ce366..8bb25fbd69 100644 --- a/Docs/reference/configuration.md +++ b/Docs/reference/configuration.md @@ -225,12 +225,12 @@ These settings live under the "smtp" field in teh root config. | port | 25 | Port for smtp session | int | | from | "singularity-no-reply@example.com" | Send emails form this address | String | | mailMaxThreads | 3 | max threads for email sending process | int | -| admins | [] | List of admin user emails | List | +| admins | [] | List of admin user emails | List\ | | rateLimitAfterNotifications | 5 | Rate limit email sending after this many notifications have been sent in `rateLimitPeriodMillis` | int | | rateLimitPeriodMillis | 60000 (10 mins) | time period for `rateLimitAfterNotifications` | long | | rateLimitCooldownMillis | 3600000 (1 hour) | Cooldown time before rate limiting is removed | long | | taskEmailTailFiles | [stdout, stderr] | Send the tail of these files in messages about tasks | List\ | -| emails | See below | See below | Map\> | +| emails | See below | See below | Map\\> | #### Emails List #### From e6f29de2d239df5416da8f7f72ff79e709b6a968 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:10:16 -0400 Subject: [PATCH 10/12] clarification in docker dev --- Docs/development/docker.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Docs/development/docker.md b/Docs/development/docker.md index 307ddc3d22..e9fed05bd1 100644 --- a/Docs/development/docker.md +++ b/Docs/development/docker.md @@ -20,11 +20,13 @@ Then simply run `docker-compose up` and it will start containers for... *if using [boot2docker](http://boot2docker.io/) or another vm, replace localhost with the ip of your vm* +The docker-compose example clsuter will always run off of the most recent release tag. + ## Developing With Docker ### `dev` -In the root of this project is a `dev` wrapper script to make developing easier. You can do the following: +In the root of this project is a `dev` wrapper script to make developing easier. It will run using images from the current snapshot version. You can do the following: ``` ./dev pull # Get the latest images from docker hub From fba366785c89af98099a0b01985fbd9367658ce1 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:33:57 -0400 Subject: [PATCH 11/12] one more example --- Docs/reference/examples.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Docs/reference/examples.md b/Docs/reference/examples.md index b04395c8a8..7b02920e43 100644 --- a/Docs/reference/examples.md +++ b/Docs/reference/examples.md @@ -1,5 +1,14 @@ # Singularity Deploy Examples +- [Creating A Request](#creating-a-request) +- [Basic Service Using the Mesos Executor](#basic-service-using-the-mesos-executor) +- [Basic Service USing Allocated Ports](#basic-service-using-allocated-ports) +- [Basic Load Balanced Service with Allocated Ports](#basic-load-balanced-service-with-allocated-ports) +- [Scaling Up Services](#scaling-up) +- [Docker Service with Host Networking](#docker-service-with-host-networking) +- [Docker Service with Bridge Networking](#docker-service-with-bridge-networking) +- [Load Balanced Docker Service Using The SingularityExecutor](#load-balanced-docker-service-using-the-singularityexecutor) + These examples assume you have [installed singularity](../install.md). The services deployed will be a [build](https://github.com/micktwomey/docker-sample-dropwizard-service) of the [Dropwizard getting started example](https://dropwizard.github.io/dropwizard/getting-started.html) and a [simple python service](https://github.com/micktwomey/docker-sample-web-service). @@ -324,3 +333,27 @@ To deploy this service instead change the Docker image being used: } } ``` + +## Load Balanced Docker Service Using The SingularityExecutor + +As we saw above we can add the `loadBalancerGroups` and `serviceBasePath` fields to our deploy and have our service be load balanced. + +Now, we also want to add in the SingularityExecutor. The SingularityExecutor [also has docker support](../containers.md) (separate form the mesos docekr containerizer). We can instead use the SingularityExecutor by adding the following to our deploy JSON: + +``` +"customExecutorCmd": "/usr/local/bin/singularity-executor", # as configured in the example cluster +# Extra settings the SingularityExecutor can use if needed +"executorData": { + "cmd":"", + "embeddedArtifacts":[], + "externalArtifacts": [], + "s3Artifacts": [], + "successfulExitCodes": [0], + "user": "root", + "extraCmdLineArgs": [], + "loggingExtraFields": {}, + "maxTaskThreads": 2048 +} +``` + +`POST`ing this to Singularity we now have a docker container with mapped ports connected to a load balancer and running via the SingularityExecutor. From 6cec0b330d1e16b5614470d77c858b364f57aa21 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Tue, 18 Aug 2015 15:34:36 -0400 Subject: [PATCH 12/12] json format --- Docs/reference/examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/reference/examples.md b/Docs/reference/examples.md index 7b02920e43..1848b3a03c 100644 --- a/Docs/reference/examples.md +++ b/Docs/reference/examples.md @@ -340,7 +340,7 @@ As we saw above we can add the `loadBalancerGroups` and `serviceBasePath` fields Now, we also want to add in the SingularityExecutor. The SingularityExecutor [also has docker support](../containers.md) (separate form the mesos docekr containerizer). We can instead use the SingularityExecutor by adding the following to our deploy JSON: -``` +```json "customExecutorCmd": "/usr/local/bin/singularity-executor", # as configured in the example cluster # Extra settings the SingularityExecutor can use if needed "executorData": {