From 45165c1fa31db2f73b34c2b56a3510e950b9cf6f Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 4 Mar 2026 09:47:54 -0500 Subject: [PATCH] Add multi-provider ensemble demo and generate PNG/SVG for all demo workflows New demo 11-ensemble.dot fans out to Opus (Anthropic), Gemini (Google), Codex (OpenAI), and Mercury (Inception) in parallel, then synthesizes results. Also generates PNG and SVG renderings for all existing demo dot files. Co-Authored-By: Claude Opus 4.6 --- demo/01-hello.png | Bin 0 -> 7681 bytes demo/01-hello.svg | 51 +++++++++++++ demo/02-tool-use.png | Bin 0 -> 8107 bytes demo/02-tool-use.svg | 51 +++++++++++++ demo/03-subagent.png | Bin 0 -> 8506 bytes demo/03-subagent.svg | 51 +++++++++++++ demo/04-pipeline.png | Bin 0 -> 12816 bytes demo/04-pipeline.svg | 75 +++++++++++++++++++ demo/05-branch-loop.png | Bin 0 -> 23278 bytes demo/05-branch-loop.svg | 95 ++++++++++++++++++++++++ demo/06-parallel.png | Bin 0 -> 40702 bytes demo/06-parallel.svg | 127 ++++++++++++++++++++++++++++++++ demo/07-human-gate.png | Bin 0 -> 29940 bytes demo/07-human-gate.svg | 95 ++++++++++++++++++++++++ demo/08-multi-model.png | Bin 0 -> 17958 bytes demo/08-multi-model.svg | 87 ++++++++++++++++++++++ demo/09-simplify.dot | 11 +++ demo/09-simplify.png | Bin 0 -> 7392 bytes demo/09-simplify.svg | 51 +++++++++++++ demo/10-plan-implement.dot | 17 +++++ demo/10-plan-implement.png | Bin 0 -> 22526 bytes demo/10-plan-implement.svg | 95 ++++++++++++++++++++++++ demo/11-ensemble.dot | 37 ++++++++++ demo/11-ensemble.png | Bin 0 -> 42023 bytes demo/11-ensemble.svg | 145 +++++++++++++++++++++++++++++++++++++ 25 files changed, 988 insertions(+) create mode 100644 demo/01-hello.png create mode 100644 demo/01-hello.svg create mode 100644 demo/02-tool-use.png create mode 100644 demo/02-tool-use.svg create mode 100644 demo/03-subagent.png create mode 100644 demo/03-subagent.svg create mode 100644 demo/04-pipeline.png create mode 100644 demo/04-pipeline.svg create mode 100644 demo/05-branch-loop.png create mode 100644 demo/05-branch-loop.svg create mode 100644 demo/06-parallel.png create mode 100644 demo/06-parallel.svg create mode 100644 demo/07-human-gate.png create mode 100644 demo/07-human-gate.svg create mode 100644 demo/08-multi-model.png create mode 100644 demo/08-multi-model.svg create mode 100644 demo/09-simplify.dot create mode 100644 demo/09-simplify.png create mode 100644 demo/09-simplify.svg create mode 100644 demo/10-plan-implement.dot create mode 100644 demo/10-plan-implement.png create mode 100644 demo/10-plan-implement.svg create mode 100644 demo/11-ensemble.dot create mode 100644 demo/11-ensemble.png create mode 100644 demo/11-ensemble.svg diff --git a/demo/01-hello.png b/demo/01-hello.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf188e4b1508ae2648cb238cfe96829750d47ba GIT binary patch literal 7681 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 Oi>N4Q$QR3+di@WNmFf}z literal 0 HcmV?d00001 diff --git a/demo/01-hello.svg b/demo/01-hello.svg new file mode 100644 index 000000000..3c1c2e34f --- /dev/null +++ b/demo/01-hello.svg @@ -0,0 +1,51 @@ + + + + + + +Hello + + + +start + + + + + +Start + + + +compose + +Compose + + + +start->compose + + + + + +exit + + + + + +Exit + + + +compose->exit + + + + + diff --git a/demo/02-tool-use.png b/demo/02-tool-use.png new file mode 100644 index 0000000000000000000000000000000000000000..5728fce6cfb886954d6dbe3e63c93bbe5b9faea3 GIT binary patch literal 8107 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 DTS3b~ literal 0 HcmV?d00001 diff --git a/demo/02-tool-use.svg b/demo/02-tool-use.svg new file mode 100644 index 000000000..ee12bfb92 --- /dev/null +++ b/demo/02-tool-use.svg @@ -0,0 +1,51 @@ + + + + + + +ToolUse + + + +start + + + + + +Start + + + +explore + +Explore + + + +start->explore + + + + + +exit + + + + + +Exit + + + +explore->exit + + + + + diff --git a/demo/03-subagent.png b/demo/03-subagent.png new file mode 100644 index 0000000000000000000000000000000000000000..b784640b879feb47b73f64beea63308727e0d873 GIT binary patch literal 8506 zcmZX41yq#Lx9>+N2r@JX(k-QgNP~2jh)PO_lz@_w(hbtmjkGjKNQtPl2+}2?2r6B7 z&;P!6-&^mEvlLk~^PTUUy??bQTuVcd0FN3EK@b9EB{>}g!SIKlC2=pq-%QS*Q1H)X zGgU=713{=@DLM6%COmb|?(1r!IGR`hX%OhDWttLFg_n0|TZ= zhm<}4&kSYW!8379I`!=r^Czr^Uz&fs7&@Ut5feW|KaQ{WSn6ZoqaOm*DF5K#;KJ

rSkuRL;ca-F@smm(>60%KxOV+jwvMEKLLdU|?t zaB&5xvB`RRidgVd!IP7VOWVjOdU{$PL5T0NCEobHxw$E$si}En%s?bHm8j@wKIa8#SYPM+_n7+nXG@y({UZ}B1Dl(69-f|z%*B)1Ox;nB_+}h4i%&Ex_Wv-8ySPE?_tSbzkaQ5Xy}V$lwDX@ zKytNk;VC92wsYij+mD%>HkWsq5HatMkylZ{o0*;Eb6xwyD;ChO?uuI27%L8ojqQ)2 z6+>@sQ%lQIhEsb$aWOlcq)*s8?*k@raT%T4a_Z^?j7^++QqvMawyoPUtp)HDJ(87T9}*5`bcK`ym+zkF^Q`p%i!KUS+kl{ zg%}!TL*5i|2?=GUc$qHIPBl>g0n|JIh1 z!!9f+82;UHq2bc}+IGM}M_c=@t*tE?J-wzugFPcXJ$-FsBRhiaf0=+_3DT2?w|&T?+Q{ErvhXA-h!FWkaVGQyp|>G;{vQE-!svp zlM~X|erBkh=>~`ENl8f(?tZXO7M7OsjEsy!6ZH75Gp+8ik{740e|B~l92^{$c0E=$ zH&rt3II)Gx$;8r2S?TBXHM{;m{rcV*JLmIPo&U}qcErNTN%PHvs-jn~$jYj!to6-e z^8`@-HN_b-oth)5{^_fjp8ljic7ey7ss+#=x%WDzN!Gt)K!m#LQ zd3$^A6&I1y(^DcEnya~5B?;$`#%1N@FOiUv5|fe!y|o^aF)^X9YCq;|YiqmZy>I_e zU!R|+rk^2YFg`v$fRtT>K}3XVV`Bqqac6foprb=-W@aWe`Gc@x3{BVR(ckZ%Fh_e* z{jAs3o)ewLUm91T=GcqC&8e+TU}9!g<{;zjzjOO&$ys=1V?!Bm% z_rV3l#fmL0E$9tr*La;%teMTvQ!yErnW+wY_mQ!d(!?kJ`R}>e(%sc|6>nl>O!NHn z1_#M{J+ZW@DdYaH@1aJm&vRQ^sN37yclP%~073f%$0sM5+1YVm^-W%ToQ6h5HC}sm zpEAWBta6<_6jgljLZbcr_=(T{ly#HO5x=3KVYSTv3_!&4G-qJE!?>+7s>kV#Lj4faxIR6ogL@0 z(o$1>J^b3*S|#X)tSq{;jEsBE&bL-qSNV9}Xu58W-=G$I&b{j)u3u|$Wp!^4^zIyd) zoNM$?L_`D!3(Lz-pFSxmDu$k(oo&DYz%AV)qo5dV^Zbj8G`F^nMPI*@nmm59w4$Q$ z!v`g5K^r0hYQeA=I*E^UEcK(`F#b_M2{)6j$D?wZno`lN1t`S^ZSm*epcs0BpY=zx z$Dfre;k{-qE-p;4f7{#J@A|^`EX>TzY!*5L(2Zd|lx3-p!j~{G-vLS?4ebU*l=3>< zVH`^s4}6dDPYAA2LkhsZE`nlUXAhNQBHq~A;-Yj^F4R#U)WZKvnGEZU=`rKWh#!@= zd-7zXqHzv=EjYxzI5hNN&3;YSKWuTk0U({4T%_H8`bU-9py4XzP2(Qbo9}vHs~wqA2KkcSx` z1FgJkQBqg*#<=}sbK=d1k00$0XyE#Xhlg(ZvX3570ZtIp&_s21c4{;}LDjz{Y1$Jt z&HO3I%6iGz*x32`^S;j+cNW*zae>obhJ=*$9(L@!$44)q()b--xLjZ`KBbJRD*ltn zN(Yy$yy*l^ElZQnPhDMQVV}crZ+4vW3pvh&bp_#=?`=*1b>I8`?7lpxg8l8;$b^Ih z$AjISMcKBC^OJ{ft)i!+FFt-6>xI>rFTF@mVz<>g)2^?2CmNNZBs?KYPRQ;Y+(IC{Q2br8fW zy~Mz}%wggqNk26;^|0N?Gv#=EbTqKE)Hae}PS-B6g<6BdWlk}gdcth+>zk@}mBC~l z@42u-_1CXo>#uyRdRPO7;qa0GM*s=~+rO^9exScU6nLz)ptx05 z`uX$cK)Mr~H3xIvnygQPTI>>a`EiD+mJ1wlZaL00QDmQ;pZuViqD8_}xd0$!J2asD8Em{Sn7FJeE z?+)g=$BH$RvI%HK$>0YZ#IVU3BP%Pbq^wNF$44B%wM_h`nAmkO_wAl!9s}pi@lv+4 zwY4>~ziXduY;2@mT=*ND=40r64|6}ak4J+Gz{JFKKG}Bw-oVAi{FEheeYr2X8-QYW zWq>r=c7xlcnFgMk*^=^RW=w7G-kI9j;raRby%v6o3BbZLZP@yppt-pj7Z>-j^zOwi zett~k+tgIOu%5PdKuHNlxj`eU)%|zha(`?Fjg;THxRAs2%NHm6rWfaDMt0vPylX2f zQOFKltf!}EA&5}2^Ul1_*rqdKXm?kpm^%?Qbp)^i=XX0yRaI3F4-W=ONn`U#``F`S zFCyZyvN9q{N*s50_tf-sv#DB3VZU>q;{K!TP!Kckzka0kD~wHy?eHx zPq6(H5)(K6ZH&qNeXa$va$Z{G@F;6$Xt7@7}#rsG3UcBbGL}DVeQ_07gataTXRAbA5lqkBKH_PY(}{ z`IO}3(WTzVD+rH%U07IHfzAzJK5eKmP@^p%V?U<}DB4DbO*c5vju>MP7ewh98PS3Q z2a^{9_D3yCoXX_I9y!R(&eiAM?GG(|pt&B_*$_LolPJ%o@RwJ=q% zc`)xsh@^_RvI*0m5C&0EYOouUYU=7>WH7*8v9Pf*2@79?TY?3@52g3TMU*r(`+=eG za<#(z&bCZ=j?E&TF849QTfvy!*LVy%(G=`Js<FAlW{Du2_9a4bYT2BLk4>1NsY(q`Zli*nfWv^{)=5h)wKgUz}Pu{vNO$E9x2; zxT2cEdkHBwYNY_05q`Ew2Hlo4nKHOa6xoX)VENz(?Pr>_Uzpel0GP*RXA^?fi8gx6 zXK86ko0Z?>hmVI>?f%=?=ltl$wcB=Nm{?fZT%=XyTgBd~LzP0*{iA2$eka+L^ylZBbS8HUj|I1TLomQTJ&+5~) zg2F;ZCML|>++6hHd=D3KV8b~thV_?M1`?fJTrhXIjUvO+Uw-!T@OrL;1|sfzdJV`8?EK~I zq0ro1MsVE3R8;?|g|Q;_OgntH-&vmq1_I=mx&R*Eh&uuOaBy??Siirp}E-o&|$K?L~U_h3)10q0nBO@c%Kn|mA&Wq!JY$zJ(H>?q06mMevPInbCrF(mO9rlx6zgEKx@JEJw z!bvwKP5gej8RS*YCn_r|WBdCaZxjoi=+-?kR5U+3-Ycl6n60F^-;Kh!%_<_&Jn`54 z*R(tW7}F@M_vq1-1#Vc0w@|4;VyB~{qmq(RCy0u`M{li60lXp1*ya=2EGjC3x_Mar z7z6SgUc;v0wPx_S{Q+1wMC9bb@{tsG6%`eOR9Xq^YrmQuY|l2i|IV8Js$YUBnN5fa z#e&D-(GlZ~8&|-MK()Ng$jIP#qm}X%hmV7t;d7VUrbZt)mJb61UFo-<03Tkaq@+4gaB~dvvDwxfW z%j3ame)1;ic?}JEX_l)HxYXA2gZ)B>R-pgYePgmPQwA@k3? z-rs#z^78c5r=XzV@%ibInkvSQ{oSOc01MzIC1vHVe8pIO@wk!%d(CT*H_k=)OTU$w0wHuu^t*wQCzqesY;$&dRk>@lr zG^8>1*_CfQ{WGYN*(uPSot|Ds6RM`BCI_ZjM@PqbxsTvgQW7Ib4fo%3_cbox7_A}` z{H;2>kpiWDc(@#E>f{vbKIe%8$zLaMiu3uYC&Yn#lEkxUR;Ht)gX;A7w@wUnumip2 zeyBUR=uC9&T3Bl8HQoF7OO34IN-8QUTH4wpD}O;MnnKj{t=bd|+|!kXDdFuutAkIE z{#c%_-t_AN6X3kFaF^S#i3p#9+ux8^QAsK6Pgbh%QzkTbKqsQUZ*Fa2tshI+Iygl8 z`y(@Lo}>^J9D)$6u^ytcpKE)RhF6hlu62qpEO%1OG< z^hziiVgDQViv0VROIN*sBr4_xK^#G>sar(tcQEUYz99g8bdYO5-%bl<*$vJ($$_k) z@~IzZqjDyllAWa?WNLAc5@O`knD>u{5i{Ftj26!Rs+C>)oT2#T%a=NjU9;(?r_Arb zRs5UmI8WN1d-q2C2jCqud@jhef4!6@M8xr+C!RJNf^5zKJvH*R!XSKbb#(sX++Fnf z&uh`w_yUo*sw$_%grJJOLOU{7#HnrfGI-xaXtHp*JY#MD)|QrZCMG6Pnk~oJygVjq zVduw*y*`^V+WI62k4bx*GGik6h(u`y1|A-sbOCD=L~S6sbiN2+FfcPSTb9{CdIXF= z0u{9WcSx#ucvwrn&7-FFP}AEXyv0v5IVFW_Ob;WjqN2j(Z+$@l3$=&~3r0>7*8?3e zC%ygsiQt(ra-h8L0p{v=EdTsz53V#nR`OV>VsZnwR9A(Mk53mWpkm)B6RXK(6|dsa zTZJQUFjM)Sf7eDJYp|KFvqc91;&idl?;GE0%q?telvIOT2{9B7czmnaGNA`1CYtELEt*!WL2+XfCEI)r+(#JNb{zQeM%D;7#&T3Oe8hAdsH2LTj))zs}n3L z6u%=eh2cgXO&M&B|Gw@e5AK*G1d%ICOEM@F%KmPuv677q2P{@aP0d0-Lgg{7Ki*?i z8OiI*geVjn06M>*poOYTLpS&~2<#HTjm)-rCfbT{XXaE^#^_b(%hRAj^YZdiAx8L? z5XV{6K_0BBs%jqj-aTk($t)do6csh~D8v-#wV@#USXo@WdwhKC_HSLgXtji_fuk)Q zn1L}~Ne+GsvRDpsivpd}BFmCX@;%Gj+Zu??Ow&^qib(IXm#IaiZ{FmSbLkOI;{_LG;FA96+TATCnorWjiv$@g~KP5jEi$(a`yN5n56 zz)VX^i%zk!{m#>DAH9fx?)tO4%ZRLOZ_mBy-kno(aNvFN*rW5kRIeGMNcz9DWg-Yjg5GC`z0Kld&b6e z5E}|YW?BSP3K?{MomatflY}Sl05lOp7Zhw>Hp4XA%#{O+^Q!c{*o<4So1InN>=v4 z14`iShxK;kmkH@U)rm*Dtb8E;lr7cKOJ_YXF_9|aEd;Fs#dpi}J$4A0&}v`wb!T_? z{u1qc=RYe0Y#HXG^z~FgNef$B-v_YQI*cn%a7fJToBH~ZDW+Rr~@zA z%COlbn1V+iUC9Oc`LeD*zWma?>y>=5J9x8W7|?v+%NLF2s>v(~?_;<0=ZbZWMCHZu zm<|$0T1fLj`19D( z@)FF%urFWU|M24Uwz>hae_$5LmAZqKDt|9;>|yH3Dw7Aib+z^Ng$~~vZs0pgIr+gn z1Om)IhG#Xm`oRg=4rNK8bGy-z5k|ULMbHZc5S@;?&%c;l>vMQP4uhFSr}?6=Fx+%0 zzjhbXxcq!(VE!1GrA$^G}kvA@*i#xgvT*b!)a=gJKE{|s*eTudJsw7wK7K6=k% zZT-Wy@xHuCG4udLd@X!2+WIN!dzuQP3fq+r@gJk7z6C3s1%c#>h>a}<3>t2Fy8P;yDGo%fAiC>d3^4uH znlMwuH3Tg7WIio=dJ6emG$fXC;E@EK=EPTpCC^KqiNPoZs3{-fomxU6qZ~*|ZKtoe z^&XP$<%;-!+4;9|4~Ac$TWOn~ZBhJp`gj#)t>Qk1MBWG6z3}n7hr8w=$04aF0HbB5 zFN7~U4u%f21sGgKFE3HRocN@qU>FJ_{*{%y;I&MxtwSMV?Ed%>55|Ypb#*-e0t`gB zkIl?RH@`h`2V_OB_~XZqTDrO~VGfW}T}=cv2ZNI)zY9qSkF|Amu@@c@SiwLmicW$W z6ly5s8hx?!gb>9f*={9fT>1Jl!~p%0|l66^JK;`*1n;MO<%Lr}DMkkR1=%Uq?GqyaGJR1JLW zsqlan$?;_$rd=ki`;8p`H0oY-z6EKpTBay@qvNa$%r4QhADfXp)RT$rBEwto?SN(U zcL8dvAy;}2l>g{S3mOMJb`~&T!(N3Lz)1W8+9~$qN0rqh{xmgPH5h9awBa22NJ18m zK%9K-`t|Ofo`P`Zn(Atp=U-}FE1=A&s)_{_gihH&0CPUWoV|TcJ7P^M4ZTkl1QTO^ zo}fZPQyZHPDB682VH%Cb?=4MDC0YXlU=P`^QB#+dcSwq1_rTbC)CkfR7@v;++J`RS zjGfME9C~2vc?r%sT57Y^^*`SQ;Ql3JSVUfpe%!*^LeO6#IKEMi^%#z4qxe*+{y<=! T!bvY4ZWmFO*O04}c^vp(a)<=? literal 0 HcmV?d00001 diff --git a/demo/03-subagent.svg b/demo/03-subagent.svg new file mode 100644 index 000000000..d3be0d081 --- /dev/null +++ b/demo/03-subagent.svg @@ -0,0 +1,51 @@ + + + + + + +SubAgent + + + +start + + + + + +Start + + + +research + +Research + + + +start->research + + + + + +exit + + + + + +Exit + + + +research->exit + + + + + diff --git a/demo/04-pipeline.png b/demo/04-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..bac00122edb4ac2e448b984e02e96783f476aea5 GIT binary patch literal 12816 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 literal 0 HcmV?d00001 diff --git a/demo/04-pipeline.svg b/demo/04-pipeline.svg new file mode 100644 index 000000000..4ead71072 --- /dev/null +++ b/demo/04-pipeline.svg @@ -0,0 +1,75 @@ + + + + + + +Pipeline + + + +start + + + + + +Start + + + +scan + +Scan Files + + + +start->scan + + + + + +exit + + + + + +Exit + + + +analyze + +Analyze + + + +scan->analyze + + + + + +suggest + +Suggest + + + +analyze->suggest + + + + + +suggest->exit + + + + + diff --git a/demo/05-branch-loop.png b/demo/05-branch-loop.png new file mode 100644 index 0000000000000000000000000000000000000000..b2162fed3d897b8fdd56e8fff8674ad90ce6a68d GIT binary patch literal 23278 zcmZ6z2RxQ<8$W!P20}s-5kg94R)j*RC{!}COIcB}XJu6~OGXH#B&(3UM=~2SDmxX5 zi0t0)`Rn<=pa1(l&r`qggqBr{Qh3!Dyv%M<>lo#SW9Eq{X76a$>Sd`kXpM2KQ$E?92VB_^i;;=yW>hax`V>M zzb5%w{Q3D=_R2R#IhXNQuCnCXqI6C$-~xu}wM|SySC$u5jEp$8h@A1$)>t;G&`MPB z3{>=9sQmnyQ{H8~Uw#|@=)-+acC9C0AfR7-W!Kwx?;^s(4;;Snvi<%(rw3_ifzD$e zesR*0>$bZSL+-z)@aR1e^W}w^u5xdAkKf;_$Ys0y=n0sdbW~MSQ$Bk1)`TOua;wy| zZRDCb^mKJsb8v9P#K-U8<-IoH7<^5^XNgTuPcKH=p1mU)ANp30U&n&1iFJ)tOI$!r z(8e9RcG0M*sd)vdump>*JAL}}*|TT4MMM~EY;3%ORPphpw4?v6qIJfxB*ojfA8tv> zJCRHd$qycI<1z-{K012m4*BRbo!d0zKIvb#wFTY1yE%}7^QMC5>?9|HPR`<=iJJQQ zb*4V^{L!MOt^cjztFZ_FuG>h``Yqp?QnyWq4qL_E@-t9Ou zdP-18XquCWES}uIMST0gKQM5x@+y_A%Qzc9f3LFbhi3FoL~re0WAvU*4V&(#c$j0DQN{^S-H z-^9+&P8Q}#Y3Viw28QYDej})CQUAmf>$o0qb%$aQ$`^sCE6)z8Ku(7j$FgShc)aI3?>ElaNO`>cH9+Iqk z^eL2AO-~%6D` zopr^NGjD>iVm$58(7B`7EUO&h!>Jt&iGyJn-d9873yC!nO^xwEcsF*M^7BVjbCz zCn?qyJC8k#w!dH$B2KqeVohb!h+t1o55+`4BJEfLt)-EdM^vZm)>_W5kk($bn+TufC7Vwjwr zjee^2rmNuo{riOiVp&;PpPo;TwA6%b-79AEUQpl2Xa_ep<@lO?RSR`sNwUiGV28l%%aErxL=nb^CO%1HjB53;lS9xk6^$<+_}{_b%q zn&}))_rJQMBlr(-WFAmeU32aF^-Gie2T|OnIFFU>-@o6?&Mu_SXOW(Zi|boYe#S{2 zUzBUIclGtzPM$jTD3Vp{)X9@;`p?k^1xmUap-E9pLfv#r3^a6fHf3w={E%%L_T-5m z%I{Vj-_knLh$gT8JBn`DvwOW}yU)icddmT?G`Pyr>+0%O17(C>yS7?0Mr@VSNb^8i zU41<-o-dww)b2BT>*Mn2_wLvQ`@H{fE-f#cJ2KlU_RXaZwzHUv0vz@<>Q9;l!c3tJv7=M)T6a)1?UR+BFcJu^bx^ zuvT$tQe~Th2TN5|6~*u7OTSrwI!5@KSMNr@YmehnUalAcbEYvJWD zv;-J*`*M*rCoVBlEJ?UJDOuVPS!qp1$tq=MwYt=hx#ubR5!j zVO$E;xt0wm+MyMHS2&bb=62ZG*}2V&oPMT%70?amCgoTXJGmnxUiHd2ql!qCG z;IMV5D-Rw$>KL{^rKgwj^eHX+hwhm7?D$qLMK5Y6r)jx&Ed0QASUXjmt&z5*wxe|a z)!A^>|C*ow`VjHL;$mI}1xEuTV&Y8%qRrk-MV?R z8cid|>FY5z4i2C)w5w`)o7d#12!`wLsn0R5K_v;n19MD08vat{(k1a{&z`lHdAi&CbfIPmp(I zIA>c!=FEeN(glXBXY~tj+4XnH6_3PIJTi<&EEE{;^#^I(P6g)>> z(|>(&I6W_qMOs=~OkBJw{lsH#M(R0+8-m(;daQUPV&`770DGj@btXke*YoctYdkmS z7F=g>W%T_G+ZCR}`Y0LsbF(yHIIIW$+oGz81V4p`GxG8CC!?PKkF?0h$UJ=bkei2R z74Z7yJ}Yb$((qO5=BK~nTyKcb@HZ**ILyC$kFf9;u8p|Dw`=})h5V>*scN^CH8iL} z5WwwJt9<6aZ1Gx||61rcuo|t`?bZ$nH&dwkp^DEBI$*HMS zc;Fs?@xU1=nkTNC7i9zNvz_Wk>>QgzjcS_|=B&j|$<78Y&+fpzFpUP14lJbSh$ zebWI8OG_O+y>-IE!m_fmjx9>tI642}Mt-m?tHVscI9HK{>XF^IZ=gL{mEKFP{b0~ks;ck0wBaXicMk1sd+F3)Ts^k>zoRfT|-@rRF44gkHqDRMeb zP7_5N*tx`Y;_{7~IXPlWlQkRvJ4#MBXm{@1+11mdEXXpoRS_#G9cuHR9+1zsb7xI; zb&5d~^_taJzQ0`yoCFxNxBb!4EnbU1US7T#o~L){(4iQ4R}s+4(CmtpxCuwYlP)gO zAcFNB&w@ik)vT>|{r^u?c@1vzt&8@56kav@Sb`jnynM-XrU3QQ;w#t3+e~!G9`pQh!RLarv?Yo8`Cn=~3^gxtACJsF%3>m}7_qdL8>$ zR38#rgDYOQ^LU~vR;p}zmynPO+74QSJdg$p8xK$B33GEEV68%*-6^T5ztC?|&>eH~ z^S`K3F8z0|X!-`Ac35-%tEZGoV4+K+?|0pobEZAtmUzg=$LIR=hBd28|E?@{<=bwN zbN%`3fgp{wCwdl60V)II_U#)1gK(pVZ&NHB95&)o{#%3;xBvFol#9o&!L{TF0!NXO zjz)pb>UiZ!ZSbZYVrG?;5H|6YW9#qnMo=p!GooY#WM_-gKhn_Hi^j?$E*@dKatS;g zG*y|8Dfx7^iLTZGoVIy}dyLA#OaDm@uRiV&7QTH{mGERdvv0j+@@gS$t6W`OL$>YH z9ldQ2ez1vyV?$%6?%~5UA3l5_L^0c>Y_5l1xmOk}URUL=Nr?+RzEDg;;#ygm!s!hDs^WDc=7r2B_kulD6cIQ&xtyqy3<2^XmD_~mR3vL_J3CrpHW!I zM!0$?m%>f(hJmW<>)YSGtC<|A5x1zNE-Wm3fLojqsj#S{eRigZDMVbXescLw-_S>g ziU1AORC{LL`|PbzP`S83%~L!4%_bM=k$v% z^Y@wOJ^A?3q2|-4(h+qBbqikTE-1EFaUWnCN6M5dzMz_h$Hm{7Z*n$Mp~M{ zpVUW>0?_oUD=Yo7&gY{f*ETdb<@1W1DWv4;(*fvXH>}>F7E+1Ako@e~r-w7fK>h?- z;7TBx+=L+3>qz!heCTiI&Yf$2`xa1}s&k1nPfocj{qkpYH`cRZmojeI z64ceDkL^@_lQFTpCI^3ThXgJwMP!7(-UqXGm@}p-n(3bY;(_d+WEppk` zu3byD{q)?=!q`;SI-o9nR68OJ(u@^i4`|TEvhv3HmM1Ua&JUrxx z;ujlxz>%N1|&Qj4L#y3%C5}$@KzkN+$K2GpaUErI`9SJDVt^B*u z`OIu>kBYLmakJivz^=r?h-})leR~*gK3J6(H=JtO5UQb}Q91p!t%zM54{gZD&ffmf z&shIbdlP-f}AL;sQj94QzCL>XlN)P{&if@<;#~Rn?x(P0cUWx zF=FPcffM6V>*`_B%Cs1X5y;eXzxMfF(2H%djzkw#J932fjIlAH=Q!)vf?gdyiel8T z-FN9~f4^C6UEM)-_4OAoUSyN9x$~*v2=IrRg#|BA({>^oeQiq$I>22CdE-~(&LpVd zWm>E&y{f3;!8dLU_~0OigW6EqKYSRmsro(Med1~T!G=&y_t4ULP>!M=u1MdgsHjWO z;UGpI*u$!V{bOZig_anA`mv6V&95AfxhVEJZ^wAv)cf=kf_wH1%Vlm8w^#!{TGNvt zxJj9s^shfZjnf6VA#$39B%{vj?(hTHIdJIEqeBHodU}CSu=nWaJUC@?!t`{@#Hp#M z@Nhri8*H{z^i|y(YvkqS0Yarb<)xxFNBRdn)YJTNmRtfIJ-v~~X_^6JCnn~bM~-Mn z%Iy24wo?F=476q4((FeEbb{(U>vxmTdZoHzWBtKsKniofDbZf5A#!fmB2s&2*NG?G z-D*HNM9Kl3BdhlCaFp1kK~+%6keBPPmX_`(^xAWF{2

ob#wZ#4>Z>NC&UG3m;VX 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 z�_hZ*VxQ=f)NqJd-RBC#Q~M3#C~-m%e`eDl@-eH0|&{CNOeceutu!P2{O>7wymT zXWR7MJI6_-WpE5Q2f^8kSN1_QP5-*ZfTlFAv36w7V+fIDnIbU#AdsK-19`3S{kv$2 z*faJT!b{4#p^KZpd76|Fr+nGxz2fn>%ckVEp*v50f1EUkKfE2_jDi6p9B_@z)%<__ z(^^f9RQ@#8Czi1Hq$MTw3Dv!0LrM&rp{A{EBMAY3pf*S)KZD|Y5j1vD$RR^2{eQAB z6B+de6@r89hoA*i;r<^#=%KSAyr^xlv{@tZ93mIu?o(&cq}Hkg(&=3A4aKRML%@NN zjg6W@&?-7aJ5+u!u=P+Xpd8pmWrYdPH+K!^v$3&N;wq3p9HwnSs_dVwpVU06CES7s zkAABw^9Udz#i6g9P1ccn%g)K?eg--^RV|)KpT0yp;{y(4GnQtIBr+#>(|PdChI&bn8ZgzgIeq6 z?rx4Ee&$3<8j1S=MXvMp^+lRUD>UK*zk8JanKRAC%r+}O_yeRG^B-7M>FO3{?z_S> zIkjpITHYs)Bq#&bkhg5*PA+!6?dYf@bJ57S(Q(SLAS+DfDskX~kfrOqNr3L_OBvs6 zO|-zryNaC1q-Wb_YOpg}&=_K;Vwk_H%u@!C`!-aWi?0j~Fq&v~?%bpB!uXWg`1Ac= zKGGbPnu#0rj56tqpF$@E>~6h8Cz*Y~)X2o7S4ep0t!Lhn5)w~OtSwZW>5xtj1C=;k zGT}UO_wJg=C!*q}rjgVaWV_#KGaWv4D!;L>BmM}=bjB|s9ew>^@F2&4XDBN;U`P+D zAf=0ppuL;{V#@RsXC`~CB2jE?ghXo4Rw3|{whFq`_<4g(A2ZUL?Ds1a=|783d@7=P zu<|tvweEdMOa0(Iso#z#eg+Uo3_)Mau1gGKPY)0|Bt9R8G)7q}!Jq;_HewSj3akL> z3Sojnz^zN*h-@8%K#nz73)vMy$Oc%Npz;ozsd)07aS0?-3SzA|*H4wsV`F4^@ZiNVyqc-l7|3^VHJ}yZ0!3BzF^! z(b`2QkFk)9Ii&5_jvhb$b>uL@P>73b!rc1Nm3v*h9(wZ@62ED054ZnZd^htO_yk{GH8pEi0xf^A! zesyN}dWW`AWiHa8e8NkyjhX#5B?l81dZwmrco{{biN|;Tcds5|rx4ee6(%et2kkyy zjU&^fEUu`qFeeG}<(|EJqp-Bk5i@w_^kyhD^XJctvl*t#udmn@7Zv4Vlr&JhKCw9M z>P63-hD@o%>4oY3Dk{Wbs?v@pwMw$L_?dphStXA7yCI8h*&U0ie}aYaqK!L89$5eh zSt8T72SW`v>MUlP_qN3(%7d;PJ$B3rWl2*YO1#XZ&AD+|&g1u!??vsOKPTAtl_wAv zXT|%$^lHnHU3ZU+Ao7diua7v=;=81kT5Rug9$Y@Z?@vC=o@k3|y%$2iRBZcTaoe}P z1rCM%T}}fKcNaM$6!9*T**4#mcjI5;)D(Jg2}HkD4}+*@9YX`7|Mlgb@2Ak z#S0g{O~0(|n#_(`&%Q-2H21M->P5TeIrv=H+rIv>ZkCN?vkY%M`)z!@7V7Nc=f5c( zHp%b4H}~$tne{6vDcKcU3|Rj_O>@T8XvY`$1*Bquii+XV@zR1S0rn6>4okX&2M?zG z$}TV~Y-rN32!W|Oh@(-5ZJ6oN7maY5KY6VPzKRl$ET;|CKKUm zZ(KB^#r6fG`ioxcyAcP$zPAz*GI1LSIG9~H&@9-jVNoi@YpaW7K8QSWXf#^2HE34KTac`33I@IPvED6;!QU%#M*S zB+wC}FdJp$+qYNX#NDF4^GBm0HUVBX5UV!pXo0M!qG{qjr$FG#P;@nEpm-u;!+VNV zPR@C~+*js#4+t7rc}e1WSx+Y~y}>irF`9eZ2@phe!KME)}9)akXwF!6c}bZ zWMyN*}e)_nHXe%7?p^r3d=EANuox8)DThm@ZrW7`NK_T zCCJ{#8x^Eq1ifL$cvCKtY$P&;;m?B*o`1aKJZEET`wMg011O$pvD22BZ$x?g_j~Xd zVrUa~#H8DPpt;zYHIP(Tt@(}@9<1<`I79S7uw$faAqsq+c`Ju}{{5|4Zt}j~}uK@00mW-SnI*-*w50+oA=+C@9$Y zG@@d_D|d8q8YC*S{9NVPQ}s}Q9%)r zdc=~#`j$pyG&D8yij?~6>($8Y9b~`NNo@_7jlr~*-Sqmvvh=4RM)#-Zako5h} zEH;{X$J0~NfA$}v=9vu?*z0&p;5lQ~e!06fCe=68RcKJe#=ZQ1y zz?X*iY-`@w%3ADNzP%xT#xbQrdo`QenI~H7nAI@ZGWRVtj0|2}adovs(9mt@whUfg zW|_~PXDCc&NFnjDp+@4^=_B=z!=)iwnE4P80;w%^1QQVC%?0`|NxG;DD}cO+2=jE9 z$|=amkb&3;{8GEuCIc>Q49a%$Hj_b-Sk>C*)Y82U!hh)J-~5yXHHgCoMZ5LwMTQ8tPzK0A5mJDplJu5ty?XWPj?0U~-vwD{mwtu$)?(jpVqx*`TbX_7hPT$(D;DWx zbdZe=K=|Ozh4AR;K+Ht+czvEF0|X?q0rY=qpn5HNT?Uq~9!e}3pTp#W4YK#-O-vY2 z2`0e}L1EzlRo<%@6GzZ4=WHVryrv`%AG{|aK{uo0Np`l(n34IJU1IDaZ>_&jZxvog zD?s^3von$0nqbT~E#3$-j6T5VBcnqQS#y9E%w-tHy*(l7p_m|9NGrvgr<0$bKR2E9 zH$=32ZZ&St?ayb|i12VTr;2QB-ytN~$qOyf%TV}pF|=CJche#R0t!UZr$QI6>1qZS_Qws`MaX1R`zBiJ6Og~A>6&8ezy8|y80qnw? zH`2WG{23*V%yb$ZyCL}8vY>~L>#o&z4NzW{ezM1b8ra_a!^UgM)D{kj zESi*0LCn`_`2BR)HQ9i*&B@)iwyq0nsKHJoqv$u7cPjq!r2oI$Fw{_Pe*OS8=AH-` zPvli=0M=$91$JBU+L)&98<;_3My605Pam0VYHzC%%SM;ko3o4lY3PPB^1J#vsVw6qREe@@E&@$+Xrfx#dVc&7XEw?mg`gb+f z6_#HpOj8b}n*wj6h^K8PugnTR^5}xS{aOkcpciC8ESaTE;m zUtZgDgd~j_K6eMM@Fo~>cxON5r07ye|IwyF=SdRyv~R2|Ec2Y zLz;@>=o4gZEzvfOp^;nV(ovxnCPR(QuO(|(E(!4uQ!5*Z{-LCyZaJM)<`NB+ur|e| zS!Sf>ikzaYLhz&V1IzC|)M+XyDLU(14I+5|JlK1T`|kbSbI&=yQ*ElBz_*-&lls^r zXnVW+2dDb`BZ0=jVxk+=MisydlFN(FxO`#99#Y%!DN7zZ5L3d7CFNW?>WmgWBFf|6 zp*9mAJvt0}M@9-v*106#1FvrwdVt$Vza z7?rqk;okCHdB{4QJNSGu7HCU#s^+{L4w}FUV>D6YDBo9C;=-4;s z+VDwH+cY=_0iy|p!k(d_8#tMLP(E*L)MHSwPZ{QaE-Vn~79}Y@ipPRb2%AzwLI|A~ zAB3|CY1Zqi!32aSr4^WL>@OVV5;+ph4olWof%G^NbJ955>ktc43S9ieOsHGOLk&wx z^)nA>oWrQNgQcFa`FaR4WNRjk0#L%C;1Z<}WKJ-+ag2cRaM9V)kV+9)Q5-h%plQ90 z_l`DY4X3nC&(7vE*nFUo;S`Yvq@e+eUM@K2${g$;#m4lP7HXS1MM7hgU)lnNb%=cv=X{!4-<|0XFRG!w1F|fJ|3a-lW^c8~ z4cSIA&JG&Lg9?z#;2~~H_G4v;p}Yg}gRK~!o4W<+M2DK;x5pk}0-)BQg-2-Uw8Y$? zr?FLE+pmx3uv$5G{HsM_RRo=an<_xxhvKu38M72Cl=NO8wTYNYpr2tNq}Ou1bYqKY z0IF)hQ;_te*B>3$JTAAjP8h-NoSvB>fh@&gZn%JSbdj|{ygFQRfz5i-c}=10fjX?p zJ99(rx=v*Tj4l~r5I1XGwHNQD(=aU^=(e~}Ym-w`iC+N3I^=_sm8Y=s2A#|t)Oe`~ zhWc%A&e0H!1?-LHlw1po@zkT8!KXTN+3j|2)b@Yz%rBoMe)2)KO1Z^5M6PVJP4y)~ zaEMTI5MS^G? jvL>5ku5P{Q|C?_nMP~RL* + + + + + +BranchLoop + + + +start + + + + + +Start + + + +plan + +Plan + + + +start->plan + + + + + +exit + + + + + +Exit + + + +implement + +Implement + + + +plan->implement + + + + + +validate + +Validate + + + +implement->validate + + + + + +gate + +Tests passing? + + + +validate->gate + + + + + +gate->exit + + +Pass + + + +gate->implement + + +Fix + + + diff --git a/demo/06-parallel.png b/demo/06-parallel.png new file mode 100644 index 0000000000000000000000000000000000000000..790106bdabe01e129e6d07906763d0b2d3e1d21a GIT binary patch literal 40702 zcmZ_$2Uw2p{|AiUp+u#uiUuw8(IiC^(a=Iv+DVbNXm1T^si>3+rG%u?($uC!p|ppj z(y%Jc|Le^6_Z-LnIgZEoGx&VD@9R3R^L)Qw>wN{CR99qJzkNN0LSax=I(C{uS>uGC z*VEGApI^Rtk$=&gS5Z7hStkFxUy>F@q3on6A3Ji!`QG<#C!I5GbK-r0yGr&bZ9XRY zkY0x=>pk_xkUfu+PbG_rMkgQQJ+;~N$|kidr=<@aI+YwGs34%sl)UHW%^Q2@6>guW zN>Pe<(&CozXEDNdy7|GLoiF$&Jq#T9<7M1>7*>CGG0$*%BT~ak%jL&(bmbpPw!aGn zdbj@XSNKo2!jkO*|DRu`u>Al3Dr&fhf~>5{a%w8g(9qE1XU~oq7;ub^j-EVs zjz8B(rIT`4Q*(26cDA66=BZOY4x0LSY5o2E_Xr4lkrn#yzoW;GQ=d>#Ii;!DdS0jXqu7B14^mRr zoIQK?l7+<)Jw3MTGzW>eDmt-@WTw6`9%}6c@Ms<;$1%aSiy2$4{Ti zpE|X1`}XZ!N^IxOox61T@(GTdN7m=FSRXxllwtD}cW!Mhc;du~lbV{>M@KK;j*fnq zm&d$y>()I&LN?5@$~O3vE>W`!7w)H}t@ZHmpx?G{O+Y|^h?rQ_y9e?nmoKl^)YN3% zw(S7hkz@ZJ2b;Tk{{}pTm{0HCc?UA?7+6}Icb@8_YH4XH(8G0CofoATzq@}#WZypD ztStMS`|?-Vq@6{+47n|rx8M?_J?6H2{`~p$5iJ`VAr>3*)vsP{r-&GrQ|Q^mL+IR8 z)znN(OsISgdq0p5{OK;fvQQ~&S01y{`~@>JE^%?@A3uH+crD9r+O+9bZ0wDW4&A!9 zZ_l^CFkuxv?{`LttI)#2;)j7}cvMWx?yUjJHtFf?XOr z*q3&8BF_y=Za&q{5xXl_d?O<_^*-9PvO-PA$>sl+z&ecom zEqphs&xh=g<9z=7`HS3K|Kwzz(6=M2-`3aL|N5%t=jXSRmv@b*sOZVlr+tHi>7-?3 z`bS3AtzNylw4Qh6;R=V7WglUTjEb`VQn&G*tjG3s>(;S~U1E}!mKM3##9mNTq#4`F zNDhRE2-C%;d#^t})y9$VwrEW?dF@NBlYL=bXcIU2u#u8IU3ikEPjCo5Jw2!X{HYFQ zlQ6z;VaF;3?VX)7K|?jlwP((p=^LmHKIk?ruxiz+lX`l==W@(Vs&8(MJz&Ya zWy_XXp@@}2@RGw{%8#j~t*W}Ze}1y8_D$4oa!_q;ZHs@@u-Vz$``o+7-a8b*nVOxw z$!qEFZg&rljm*q6*4Ea=e?I9={rKVY-~m_f(8iVZ`&X^zZq~;L4;D?9Ru0w2h&q1P zDgMi>Yb=@w}wr3 z_G*imRIDi|EIcB>Jc#?b5gc6kc04=ZFX)f(|)*#12_7^fO%x_%g|7kO}8ZP?%k#nU4=~R{jttRP~`vj5loa1 zC-34?)fyBZo)-G9E>%_?rinx7%n{4}GXp}}sv`xjiE2|f_y|Vb@Tw-Fk^Is+M zp*~?};y)-`XJ%xKf2d7={=CL*vLrC)Vzc9@y-%6;5jr|L(tz?aikhC5T)leLZfU^< zea~cZ?oaV2^7TwDNvFsYl4+mm^$PFm(r1@)q+h>&eetL4Yhzj>HFkaFRH|`e>-L*B zl>Zp4%`$J?ZaC%|{pyuuMP;R^*OGhsc#`|ibyer>(`1@#%N7H$&A)%nNox(`@BjXt zUQbUi-MaglAqSp}-{SntV0)Hnf#;%RX70+(|JMF@_h*fa!VQWXU)R>It*NPTkGZaw zZ*v6Q5IgpCr-W@!mzAEzmB}8N@7+cDn&E|B%bo`%CAr1Kwgd$QCAeBqtk?g1HBc=1 zwzYLLp6KkP*K)lR|G#YzDcwtr@3Q!e(lPbr&E{u1S-z7%O4u<6uYO}%`rGU^Kx%9k4uk_AE7^gQ4XLI2&xLW}`vLPTrupkhl(WTfo+DD|ib zLPA0fA3oeZtF4`br7*X&tQQj#D;OO5`ZZhBv_=Hrq=wbBw6s*!$S8@*7|6pM=b4@| zKNMpW8xzB_x;)Rew~5tMKwA2qpuwx#RK~+i38pbZ2Iuj-8_Kah#<;$&K{0XheJm_2 zd2TZ{yO@LZ79|CAUU(l@RNP;~x?e)#B2eNp{P^r?eTb!obuT}^39iekGtc_jix;>4 z&dp_0t)>w^nOlI-V z^+)C9NvTK4s;sPBonzj3^u&pqA3RBU(6cR}#$yU$li1MfF~h+r>waT-ang(8efFu= z>#i<#oDp%9<*B9lNgf#)4i+JO?^mx}bIf`e=;=k!&L;-ZM@)y_-s!4EpCxFl$Ng8M zxs2WS@89t-Xegwob#--#xccIegj0%Ro6$8T$%O}P-u>{&ll4Gt02$dIZl`D)d2Idr_wUs7G!3Qht@v{5 zhpX|}BoyNx1JxAoQ^^WP6ckcFUp}32?&YP8hAu-}(>X=cG?D^hV%i+EdFTHQCy{P3 zF(}dFy!!Ix%d;bCNxEIj$A^F7aI+t@yMONBemt7=@J?4l_sC}xk1{ix9sY;V8UGMG z!Fjpkr3DU{uM)2>@J;WK9Xe3|;NW%a?DLfY3 zxTpYLx*SoeagKQe1nAY()yE~nrJN@2;|QGF+46g#1J}BK!-jywL{4(Yr7HhBm99%4 zxdG8MaR_6@EH*h#biHxnr+ANd=Bs!-%gA6bGBOe{EM^6I1?JO_8j6jLHJ=d{79LjU z(tmX|{qt~=tVaj+*?gP7KZjWNU7#(U8{Nyx$9F_UWvnn+-E(=->Djp)8Y(I((z2bT zJm$nGS1+Br`esWi%2!yzF-B0K>%fr%f7*;D-|tOZ!7RVe{@WILsA>e?fdsk7_ySpf z86KACl(p@Vrg(+dY&&py3qalrbde7qKiba|u237kBk=G}?`O{h05(wt>pYfF9Sc0> z#l6ei@;`j~bV7#4RQ2+5*d^CxoK0ikZCZNzD$>$&E!$*gmgc9&D@Q**jknIv&aSx4 zugS#3RIa8L>HNMhgi~fa#jd}?-@MlP)p;#T!|Ab>ZKbmVbhq!^F~LLqzXL7&uiM22 z2Cj`3)C<5_<2i8PPMa>MPPDL57|?zCI4-jmeM;2q?G}3WgG`of&#QrKs1+3z7p6OH z54z8aL<f&!0aO?~00}>AJkRXSKAhbkZ<#(o=4Pg()~YAH=RMXwCqt>FDTC z($EOZ$#Hl(>^c3NaKbCKmjTA<05N89EsyfbzUeE3Zl`u~a=Itwv;mcrhJxkh5)#@F zA_{)>06)5iKPCXAUB|8=IQ2Rptnh(<2i&b#=o2XG7ytkE?!6lt%CKKl)C4EB_+!@9 zk<;Sn?&fA@)u=ye)2JK!0VckF`BK%=+WKhJpw#`)>T-$*F2r%}x5dOSkkp3G&iMI- z7bcbM8G89C6Sfu>Zzv)%GBRJs#_F{)4I9DC>%^@)s=$J3anaQjkq0O10Qo9eO$ku` zzGHcI?do!Xya-MhojmES7|w}ee{U@J*E3)$viDc{ zP=FFnCq+ru+}Ox-|KUU5+qbuXjpsVw%L8Okl$Vzep7HwgQQQ7|yC}BZ3;9~lh`hx5 z%0Nb(lp7H|irkznm)M14? z#ykcflw1C*!7h1~mMkF7|I=ZiPBlY;efu^khOxiyDRKKN^r&r*uy8GKvOS(8!K}02 zbDF_A$U5}54ZqwXi5j%&?c28pou_sJhEDakO>#*~v!jAlRRwMSE0m!fbn|9K00Wz` ziHVP&-x_Siu*pc*(9OHm`zjgbj(K>{~lCu;JFYjJEWD%C?x)r`p^skM$!)@o)U{TtY8eMZZ3EMXi{G$`Q3f4|0qCJlq@sEF1O_EYfcRYga~ zc1BL=^2xI0up2jM!6?W|x$gP5uWx+1Zhk zo0Nr#0=2v}Q}*KJOTVHbDIC;|?Cc>xYy$cPOe-`^Y2`z8kF;h(0|++>;o7r@78iHy zV7}$$hjC(PfD>b7 zJtRrJq^4s&eEhioQ_EN}|ExXk3)mcAXK|K|J#@aS+-RchzNUjx&%PQq4fP+os2OVAA zqdS>!>~eB60$*~=$?YKeoYN#H%eR!26mL-)D4&p=jNjhox4U}PFE{sEj>zzFe1_d% z4a1FN+(aXil-!PL5i4S{3K!QmI=UXM6U64~`)&Uo@P-v}VUFxC?31*{`FhA2;BIJN zHRV35lZu2*>CuL|>Tcl@(aXa0&U<`&_drBKf@ozsnP~Bs$oVSTZ{NNZe>n6<8w?CE z9>Ux4qeoYv95*lOojJ3H^6vfn*C-1nrlytMzyJJ^Dv8DhI(FLqY;Rp z&D&gP_FK3461DgW>i7J&jHG>|W!=C-9G=(>vb}BFHusrsCujUEwcw2Ydf~!OSy{u; z=-Al0kM|!u@Y%?tQ2yb=mekbLuI13sP;lNg2M*+Jkn^;i0XPLb;z0?AoJpicXso2f zp-cextfCOr8vQjr{?Q{o91E9pDM7)|_=>G~;*b{zReb%L3Zh)>A%|V6s;bWEp=3X% z>{yXfU5g-Ruc4tC7z~%IX-(5W!)PDy#4~|#Tam7rCgQm;E0q2Sxa02KyZR^JixuqQ z=kK3}l;WS2CHnjKZ=$Jzl;NoUKQi~7E>xwWl&?+X;DOXnXzA$Oz`vzE7g$|fT0fGWZXT{+qr7WvwG>_BHgre()dey2ixyT^$3PHSeq*WcLnR^0@t6}ljefh>jmgt1 zm19nFrCLh3{{FTRk{xiIH^`Ixkt0;eis3a0Qcmw$GOuC1p>PdCye^)u34-H*VbUMnOgMc?W(EA*a2gqXMGw#KZ)aaJcBq zN^33+Sdo|n@%WioS&0k)zI625xovoCfhYI)f&BuCLa9knn5e6-m&YDmhD2d_dApVq zEC4I<^$I@$toQ-ga1)i(f>0%(|0`gxqIgp%sMU?zRby`7R`NFjA#1FlQPx?rAd{<# zl8%jh+9wha7nt~w0`mb5>y*cj+pCQpC1yYh^IH7FB9Xm&*De}V9a4@ZvTL#DR@2b; z{qNd)!d9;R4OH^}$w@|BJ1;NqVfZ2-z`nTl_;|e>3Msn%{rybA)uhP<1+61m1giYh zRT{sAaY#r+x&Gdq~`O&jyw`!)TKl<9R($0kgSH41dI~$ul>dEZ<{NRUl&AO(h z0DRKdrUW`PDpYo5wY`@|Yj=260ngIauo8s&y{Ci?Pp{jV#_wfgPUGE7^e=4JZ=<6X z@854ECr8wjCV+8AlhfUmZz`c8T5v@^Oc+uUphbhFIWNqL0)Im05Otfj!UN265v#+vJ?cMzs(Hp6-HyRRU*fL9|w=0BmcK4eOfB9lucZ(}QN06)g>4OJUP7_`I z3e);!o*d{!r}x?yLMiQFzqfMY*FGS^>?;)<6<=T9zRAh(zCL3JA?Hz$p`8*Lih7^l z%ZK<@37alw8wYbYw|URrsyOne7nxTC@H_kV@85_chsMW+j!23(wC}XE-C%w9pFXX3 z3iA6csgWrC8k?E)9DD<69U4D17};P2CvE`U_y6wGX{DM=>OmN5N{|XfQ72nkMTL$m zx{RCn*T(p@*rlZ^yeS$HVi$p#${}^%ijSw`;NXBY;UMECARsU+6t!}HPgfv?uu2QP zIG%~u!jH9)k&zK2W?j{xaAX zw<025qtO?>sKxn*W9J@oVx>Q85#n6;3jnSk8YwL;?O|L!!3egtj9~33cBW`^Kwz{k z>ok&NkL&2Lw&m=GfPlgUH)d$=55ccE*8lf`+gGY+I;s9^))4WLmVv<^nuNZALI3!8 z=pl!%E7lOungK5w*v5?;aT`Z~A+vLG9z1^@1_Q)_$8DEt?BP}+QkPqzR#u;K61D!< za5KS)0F(o(IB>JLz)P1dP2pz!);5b@EQMu+Tf3i`$>`?hMqqJwcY?yywMd}U!@Qda zKfu?KPS?x#M;T?CU@EXMB4gRwYB1ES<4Tz!-K)iG>y|A$0dJROpL zzi}8yhzErYQY+vo5on?JooP3|YpFEo)(S58}}1 zw{M1NiCzmWF^tZQor43q-n*}+HXSe5^?EJKpd1DRc*|>R=hHRc|AnFs4eF-l84uVT zz!aoWIXXJ(Uoti`JD%*|dJ9&LjjR5#V{0lZDsH`f`rZ2fvH*AP5Gh#a+&N{BNy5>c z3Q-}K7*{TqfB*i?(1(cd4GaoLoS=F<8%Uh4Ya^LjhCr@2;`G2`(l2)27|tonjcpg@?&5!9xiVwRsztksyg{?aUw{~6zWcxR0zMVIutxbFFI|Sq z1z=t6u?%nNq>)i`=-Ws?msLLAbJHM8Gb_8S2w;N?l?}TcAM)hfhUI|?(FP* z^1eLnNbZxTPr2|B5W@CqKPNN*eG+H_C*o3G83-Ss&DZ9naO}`)m;6*Mc}uP*Cfo$i zUJdZ6dhcKaTf+MY&qHc#vp0`%Z((5}N;QsjDottkm*b(g`I2oxQaTnrE^VhVEOFgR zO-&6OqxxT^MUw}XGq@Un6`UkhY=q+YF3NTlG_;BX(nJ|C<<3-_u z7S9A+9tfY4P29eBMxa^z^ahkxRP01ZuFoQ}QR)!x=9P9Ax>@3!O`)n^%E{= zDO98nxC$xX9~>SIM7=C;Z)ff4=|TIB6}R4A!nD)x_cP0=x`0gWzAI5HB4jd$0sp9VA|yE04XF2_f+ z$E=YoTV9fan=c9n8iweRJzFY1eTt6TKka~~2=9@wB=kN)TYvt%Lh+Jt5fl`({^1FQ z^YP=ym;Mw0gA2;$6D=}5{f&o!%ll_QIG}6zv+un$KdBpv!~A#Kazp&^y>P_He5ly%?0nh@oj}3Os(@ zu~!0wHQ%QD@+YN2i=C|z3U4#is8co?ret7io;r6f2*-(}iEs%hdFTYg(=O9-M~>q3 z06d=VKF->Gw0MkM3Wb=?yF_ zJk&e%$8Cql?~TOga@v*>pOTt-zUszCK~MEf-`M3m*};B^aSX5{@1wqhBz~YUPH5@s z-ozp!?r{IvGkP=*tnguw7*Lc`ke$XgwY6&v?n6(0h&nOZYHwfN_Uh^m3oxsc z7)KB`n3pGx5+Y(ha7^0e=Nf?hJ%WP%&z}qJQj7b2y3snG<~Z;!h}rksHE%(K3*2Ue z+Rhx}=3a$Q8keN8C<0HmD+#r-wiX5dbKF6Uc)~tr+%IKBz{ZK{gxOQ%CPDEThptRI8rtMfq4IVQcvq1T9l2^~yc|vkQ$RNtD zM($?4ynLnl(_yo)65@Cqw12qlCk1#`jch;&1poUlUv9yQy+-!O9y-p#R3)R5vhr(` zb#xjU)g;-3$t&|2;j(kI;P5wsg8GZLwD>86+D9 zNCb#N6j`i)WH`tzPz_54t*}wylaj)RmnpeU3c9YlCqMs!!nA6q%)ZAEgUWjskAZv@ zI;{oeB~%z&Na$tc8m-81K9+}(^Wtb<)dnKsB_m^F@&KSp?5OcPzgkV2-i5P@&FJd`GoRi&cg}N`R>8lTe_}4maI(8Tz~Wwozc?b z78lpLylsAhcDW{$ZFjD!t73(mvc`R=tb`1qBsMAp75>A2|>goztuIxjK zg+Ma&7?4VCAS`Tzu2L`?{aaY-)o>vumLtd3qBh|e*zs8LCST^WEl|S778~2f_qRxp zi0s6M^qP^yokwoph{f~AVM~9P4mUM?haC2s&xdQ_;FKXN(vBY@Z535jYj*A0#R{(r zhQ`MS>6s~}9c&X<&0hS<4u5Z3kpM;OeA{yaBAlbcOx3X2LZg=Tj)>TpAFd;yaOu(> zczQwLVJ49Obnv`#>L*o%dV|0Ee|bJo8bs3C@U*J?bm75 zGc-&*!^DTR!s>h*8zXL(tE(&V3F#RaM6KFICKSAS=Qb#7uqp3pIlW^GR6HmiFX!9E z##5I^!Yte(O^r(33#%>Mpd@s?EYpNAm6Jrhc5R^e%yaI9Ow=fQd;0>1;SHS9&gImS zKyt<*MY-GGP|mY<&agoiWoEp_|-TWoAutQ-^UooZidx);W;SH*FDZoF)1 z84(%j`|_n2k^A7-!0~*iKC$;@PE3v~X{*f~G)$@Q3~JcxN(kB#L@J^9h3< ztVg>;W>FC-$(c-E?5_gB=2T6SE12ZiW_< z3i0saLnb!1`fdnK<*e6H{h(_gfmG1>_*62q(;J>H9OS@!`EmiW?#@Gp?$VX=8f8Ke zH>vPj$13M3jrBFQwho0M|HHsB^V280G^y(eVY22)^iF6D#M;j+TiQWIC)D2bbz zTShML=Hs((^(IOvc6n@E-2bGuu3FgNL_+&3P*?v1``6Hr6MsavSh+$PfQ^-nO@1d6 z5}>|roFUux(_jlrCmmmIxubdKl|%X%h)K$$NAFL!c^t!^v*|5u^strM{}>X6JOuig zu62xzim>L>LcU$LULS|9h%Q#;pN#M(ltU}0@kIm6BMCk}RJchKYwN}XS>tt=%9b7% z7qdg9IRd>ID03q+b_hj);7zh3v6;1$&Z{%5h z_C?(B&o|QRW{PJCMRD{eBf=h34?sT2oPpnfEB5d)Nm;pKE>=e8_@ zp-QC0k>{9LhM#2RRJOWh21pq(Kx%kWhfkm01i7Su>sMrNJvqz!&FO2xcZ8#cn4-Y2 z%D9Rh@R+y&VW=Dh)}9c>wzf)~LKsQ<+Q#D;k*c2@_Jzbh(JmaWqX=+I< zujco}@#-(5qa6C$=215b_R>?sH!TxgqO^rL)(B?&`-;W z{qMQp3^U}4$%c%U!;-|bCuIoThIkC!MS*ZXq5g9MJ&`ah3KGjS#2{0gp5Ge=R1P|R zXVrS9LxqF}VyaG$dyi_XE2jg2K^d30lAL=sLbAm#=C`L>WhtlXk2yIx$!3EVG&0{(^{XNwk?H%(v}i+)39<2Dp1YZ!4H~%|92_8L`Qj2@K22hb zFu#2HCb0Nma=5JPgy)tuzh!>QjK>Z$I7QPtMAN&8OGu>Aq@>gn-G!fD`Er3Xju7A% z_kqQlj*hsv*u2&()7lqThTbwOX6L0oGS7xDhE4ZdMIy=r(kg0F+ySlVHOC`aK8Stv zeYuNx9EPlr50Hp5Z~dLBk<|0x6lX&B8O$4OOI8SdXg9p9qM=cX5K-UQSa4Oo-C|$X7ElGY1ezh~0wFNhO|;2$TbaZ=;qB zOa1Z$R+qT^`no}Qb@xjjn^u;31iAyFqBdvr9qmy4nc9PB3zZln4@6Hzks9O6m*4vP zPft%nu$-j}2ivDbTw;;)@^%G;%3`fIIZ5ien@02@L5-a#s)Wns9jCC~twJ_N>evBQ5F*o3!izRuA%$^QeuomjnymUo`j z3*TO-si#MWKV;Qg$^prYsKjWQ5L>!UJ=005A#ejn1*!CiJiz(v2ev5(nVc2MP)v@H zT4eFi(3}1}qDeeK7{7qOb&ZYw=tcN^6HCir_@c%*FJjd`za>FX3S55ef+FSvxJRrb zpaBps8yg$qd4U7sd{;Q7%P6SukOoxx_bVIhM*Icg3$Rz^$*_`Q>M=2fn?&BabLZo; ztSgGzecUO6yerB9Du1^{=6->n+$ITsm;gnQ{dw^dJZp`vg&|GI}uzmk?wKoZ^Bp6#YSB@>jM&W{EX zcVHfJc9iZ!Hb@(`G|nK`mWhQV2oEIoj3Ar>Y89%T2%a&bdn7@M$%m_=$LH<=c4OV_ zj(kNPiEus?23r544e=70y%K#^{9Wl88UA1eL>wL(0!&+r$%*2t*E_J@w{PFJ3%$c9 z{BV4HJY8{hznZqJ#@N_c;m6Xj9dcoB-<|*xbx4{F?^nn9C|&ref-gF}lgSu4Vx2sz zZ5g*eDg%7%x88Iu8upih$l1uu4in>E*KcCY^{q*z=MvHJ)y)Ug5p7%&=mI1%-@KCNV|*OudbEsYLB?I zeF`b^vX6FaL)KyoT1|idtg4_85Xvg*JKmmk9mM_TsS{~8Lqnky2%3VtsA_10TX(;@ z1BHCbKr1}g<(D~0WI-_q?k@F+r!q$6agS-ShPd$=bfg{Jc^f4)Bco9(L$?~yvj%X% zS)uS-oS@jgi-??(h!&P#6u9Z@$jBQZ!{R!erQV@y@j%=p536MT6!~y4MBTY#Mv28f)hls5@axYXGg#RM=VZCM2S8aH+S+0=3`^qHty#5; zho=%dH1_b$zQi#o!mbmdONhYcAj5RRTIIxv^AsKEc-qm;Pl2kx_V>T0ynxWYKSGIQ z_b);uXsE3Xgx|Yw^XAQt$hDNJjKXp8w(cs3z^9|d*PyV$&^CbfT-YID)n1M$v|fj` zUVe$0rjZdbCRG!qx1n^x84ZAt0Z2530MK+$;S3boT3iPq7taienB|scc>uv*Al8mt z>tYlv*M_lHvf6(GPkyix?I_ z92K&7vGMVPpc%*D>-L&W??IU$8=hI%kRFOMnajfSmA`sb%)BAi2d(TOh&PFfmwL=2 zk^58pKssMa+WrFvs(%jEXCd=Xf-?xclr2uPA(Fy`=mwHfbYM}{-`*!@T^Tw-W(L5V z++!N|X6b|=NpI2+D@p<~Aebb`1F-qSV0-`F(o$K%H<3KUq>(YAcRIz+q7W?KI$0Pz zgeHbi(8yUH$3#AhYyseSfENfoFAI!f0;RAj?S&4z6+&2jNHGM7*N@u&;AH!5qi=-y zAXN=kRE1EJ9Oj^o0FWckf%-+}Nk%SU0d$b&MV8)vcFKfI$dKQR^Gs$!>gs3e{MW4; zIR!n6X{8E4AY&^llIz2y-i^skZhmA;g$QS)oFWEHWC1XJc<<#Bz3$hM zEzUJ)JwrQ^K~GQr!mj`5_l{gT@V-3=58&i83+Q;GkUldk*)F&EdvmYZ&s|tn?34DF z7Mqbw^aF^;dH#i|6cdnqGQdP&E08G@?V5v56G$jsdxa`X`F7`Zm>)_UeC(Zj_tqz9 zXc{n2fFJe&IQhbeO%*6{L`D-j z#OwFl5Md%RVFV-zy^wr2KG1mVQ^vctw&5b_qppHzau|SM!NeU2=-DCR69VFhI2)1m zdWU{Ab#}6$_SRzO(W7{c{!pZ)0G&gf??Z4>0)3js=Ww}`a&Zvmbx$_um_>laenCOX7v=Obu{6Z5M~m(%^F(3>r$Nt$JLBIYgFNK23;um~HeKPEbs{_W;_9vGLAS zwRjp#_jQ$d?I>ILNe5S)Olpwu<$lgojTd=&HMp@`_wLc-F31!Vkw!3IN1|(`^*nyX zhe2l0O|#7EnV%VzaiXy5nVG^k#n-vy1Il4Fll(b204%!CeBqzZlF=21VRZs*NWe=yQ98)T^Di~jrfS@| zh(!x;sfzmpq@5v$rga*A;KWucOxl6pS`)_6**`dpSUlobWK0HKx2>P=35q$%Jv&(> z-2qc3*+9AFh5h8-@bn$u+6M;*6I@3!si6`*-)@`!3>6JPs6c&Nz};K7C_q`zA|VH` zy~xfU^;=(Ls4cxaCnv`q*5CrB!oaRB1D%(X zQ!XS_OjW{Iy871?elXXeLw^hBA!w6vM{8Mgr^V8VcN&Y3a9)tzhweaV0TQYN>YzqC zjeL0e|1}48=5kq+`|ixAy<2aup#?as@mal=Owket92)|~N5*vzQ0@GKw6wK5cILwMYj&_J86q!mShe%u%v?MU>*Hphe z%4%g*Rf;yXl);~S?tsvc>44JzbR{i*O4Ky?QFN#I6g$!-m5?m6FqKlgyfja$HW^-X z?SQDPYwbC+Z*HL3N{<{GSpJCn`Qs_ZxLbE7gQ-Ezw{vo;#d@I!zqXW-d4u2(QNIQB z^5~Ies71^&v54r(WN7MpXFek|4;i6$D&$6r#Eqh^ermpi{Xxh>LPDeUSf<>vhZ^*M z^nv~_U;NN)0jX2uYyZ~DE%`tu>xW6$ExVXfX$eafnph>0nvl*aWzs$(x_1A*H##$5NuELN_q?(G z>1UaVw{KSw^aW*_OkQ^uyX>!TY#frE{QkWG1+lgNPp458g62Wh=hLmxD@-R#W)eT- zfr(}#_o?pE&?K#;g24VZiX-Gf8$C=HU^-tsDk8!Jb^8Jiyz$wy1Ld(t|1S%0)<8>M z(c?!oi>kVM82_FBSXbrt5N>DJ+N_uzm5)#Q6C79iDhX)n%~EeH1Iq9Sa-O2NN-q@*Q!lv7fcB+u*61Q*e&ViOFk{UWG37s$ih$5*vR-S~JFYdwq)uP%o@=aBehvpXSlHN-piQ&hFIqTjrIyAS7Z z*Ov9?F#ig?>(al7%JvqCkDa+0Xwp>1=+CD+ha2uz8baVy&nSC}BO`)bA&qxql3dxx zMe@N&6=F~g>VXHf<4J9!D6v1U*Y3bPS)sa|jnM&2MNPlioup(vKU22cs1U}^pDW1E zAG9)E)_smMEiW&+NF55S8BR|F>>l_$xqm0e&|X<7%$qi~RDaBSzOuIxEeCq0o#G}f zAiai6ug;I>3(NSu zkbz!@F=?J$YfKgYBVZT_a(p{@?Q2$t{JzV(A-*7HO;j}zm%(WGo9jki_v28B20Y$VR$EH9>MKMi9GovR+Osxj1XNJr8ng?Hx(9vrc~Y zEQEngd_it{Lh5}J%D%7SQm*eut;=KOx_a7rxl4(X z9lE(;x_bH1CQp4g+wEiDO1`_yWyt4&5)9?fDv@9yeWOgh4;r}Tt8y0`!0 z27DhPzLX7tt7VfIDa0KG`-Z+w-g$tx4J7iJ>PZ*(Y&laXHz5nQw3!D4%K8sMmVn@OCrEMv0n-51H&X14pBc0 zQUgojK_fpzCRaq8Av*NqZVT)OX~6yZMn?F5zABhp2o^5Av`KmaxFRAhZhc>4`!eE0 z;^!2;L2mulnJgrVGIHLUcYVvsSi*o_50W8 z$tO@ND8-+RAZOV3S5V`LnT~!)CyE#h)bcNp+C2fykH@rs;?YUE&K-w^nD zH!>&WGy?o1w|V@_BGd%upI_EtGhzV32h;kuK8LeSY6>Q#0kmy|u)JF%vAm^a6UbFW z9fP66wT;@TQ@i3T`$bG2Y9vVdBhCP1WsEP+@SOfM%ERA3J0**OL6?leYxm^5I57v@ zFr9$-3gkHZ8_~U2BJ9ken3UWjVa@3Q3j=hin<9)uZ5h+KAdKhQvG&t>iI#^;K zf2`};*%ooct{6yU8TG;V!{bwGHoQHlR?2zGPDRsBd<>oZ;Iy;Y`XoIGR{grIjm5Mk z#AKqDmJ83U7S`R+IkT(_F49V^yP~!9p0}3A|567Fhp*ejE(})*6mMgpkxjja^2Gv{ zt#NpeWbP0&EFv$Uc%7HXMo-1sFple38}r6EY8)5N@HU~b5`eAEO5~s9zS{8Yy}<^) zE}e3o@N1nZR8}h$@k$Uc3;&*lyIiQCg>cM`^)Z z>@g7a`}^mpLtF$S0jeFu^CZ)3h+dnZ)`QG!4FlpQ)2(=U4Mwzy0st@98(8Y5pb95! z;w(fQh=PaZs)BC!zU-g&0-nK#e1|>s!3~+(pvl4SPnlGT!=(a9sl+OYUjDFWc6Qbn zqqzIh<&hyG^xJFcZ{VRIe9w7|w-CXA%&U?(44@jR4#Xe$?j$s^2C37Pi^NKyT-*E@ z_<^au^Nn!_SOJperpJS!W}U|!sBPN612XMXt&F2E{{l8}+{8E?V*TsEAQjEccSYSP zeYB{>j<*yLu~FElbj#nfFKv5E2@{2Oe?K|-I&R(s9fx@HxDBEy%>Mn`54}n!$DDzT zRbnmn)t+^zR~dtRj~CgLewcLA%Q!yeKM#3~ALq?}Vb-3Nm9-pOh1eF5mEc}t)cZ@= zzcOPIJn7sZ(cJ3PwneIZp;4XV-@apP1AbT2$Rae1A!as@}Gul0# z6#lvjQoMgWH7933NrHl{_dzvz*V0mf0veYQT(BnVGey1{4Z-&4W5iK@W4ZVDiQX$R?;zz9bV-4m98EIWLF`cq=N3 zXFAq8T_3!eOgsuO)8RG=gMdd$a`ONvWD=DE`{E`PfBI%tCq#Vx7N7Khi<5$w>6#{aB#JJ;A=mf(=r2Im8hJ(q~7X zX4*}39fG5gaIUTMw!z7h??%NVKIWF~g%cd(67Hb<@>6oAi4@Ws57A@r`7wER%t*>Rj2%JCU1X1?}W)PHBRjqOj zK?p9O{5JHKEzRwvIt-myb*3K-E4OTXGsL7Izb=g+hHEK01NeAtHDLY{? zn{EcTF~+kQhCn2ERPn^*Wb=ZYlvF%rCt2d2&X%8%Okca+L%Hts?D!OT z=g!s~4Me|mo-_;EwtOe86vI1J&CTKG@Bkc+;bt+>Dd%@rj!;DfJcbbT8xTunJ3G55Gd(>;@HMK#M1mL4JbU&y>R;1>pv`=q)&yjz zb-~q}-rSYI0A)*&lWl~3FCwG~`+DOKlEmhzvuE$jA4(Ps2ltP{xP{}`J&e2TL*yAj zbQ0R2It>0;S&U+<0N!&L*trgw-Z=eES__Xdn+YAmQujmeKYZXtkPc~ZNMq|L+3*X4 z>TSY!tvA`%KIXOdMgZ;}Fzwk39#Eb(y(w({l&#mfE4yIYiKgXi*T_vq6p3tPaaMVE zfjsg^*lr$ok$(9|t&9DfVcNyUxZ^Oq>TrVAaoPT)1N;r4ESCu`iO=wH*bD#1k3S5< zn0v;fRFDxk@jOB;*P1xk*w|W<6&Wjrf2~Vu-VM=Y7Zi*tIKvkTq0Ckc{Qxr0Vgdag3^`rWu7&$2<3N#PG#o0Ng}2+jz|3K8V=g;;>-$eSY&L<4&^ z@@8u3562!U{b=zH?oD~W9ijKo>5S2{NP5xO*f_qnwG6t7YMVm;%kZOsC$t+j*tE1l z+m)3^9vh*NHTVBaO5>8z$|~_7`L-`1Fe>Z5^mn+S7ys=#CVi(Ty7xM|nDj(LA`)r- zGudl&fjQ*Uw4ObI4@kKX|FOY=NJG#=UYqB<#+5+n2bm#xeF_oL%|F-lDqGg8$RAAB zRh08Hh}Yv`9|a)SK&RtEHWBLmEI#G+`K;InA_o3q^C<;`{rLX@crFGAQ`rVkA$%r2 z;?ia(=L!8`YV_mYueQozzi<}0A+RASLV6|9Z^=vvlFPVNs5f^CgcyR@j&{u+vQLtc zkjSr|dl^vK5Ak3ZN3>|m#5u$$SMDrbK=G(F_e}d%;%G? zK3?b|xz&U*0v}BbQ;OYG-;ss{DQznu`or0auL{Rp@m`m@lgUV%zkd7n<~GMY%AW-- z($!YokXxJgiH3MW5ZvPEy)cqgt{1~_|D!c`y``7-&%W2I3-8JCCI~7zyQ2b%4u_|t z@FMcG12FtbQX}o9q(Q1ndhrE(*{{?gKpeq449R@Hw}gy7-X}uer=}rtt~;hq50mrI z2S}c+(BPt8yu~Rc=X+#aTBpoY1{#DNUZaJWYu-o>4hxxGftXAP8vYChmwB`411n#n z`%_U24Gm!xDMn3OC=Nwzj(4a9(kJ8l*(^8}c?l8;8erD10*{eE@T|%HD}@9zVn6O6FT7!9X2#YwH=I;mt6>V3Me-OR zPZ76o`#~w<#@H>c}MW&28x6TlFm1boSb#I}zg$?WfQqp~mr)`E%^yVTN9Zk5`) z$Wdsw5{Dt`56(FNO%*Q?sDVuz1TjLSo{SBGMvz%$l3c}FAk|v-*){j2yLN5A9TKo~ zxDnNOaR$ORF=}vpdIxkMbJrF?!1}Db$SB98El$$3QNj|XtlL;wUl!PG2;|wfHJ$fR zhhKLex|b!M{{a^n_-Ja^BK!)PdvrZ?N#a>3CfIXvj=TVo+&>~6d-kn4-f~UgT=p6O zxEfpuQ7@r5Y)8c~HMCvX@O5>x|L0(S)HdRRM@M;w;!jKi^!7^F6(V>wK)PI!G*a$7 zfH2B8K7Xdo48&T%g<2068}BV@SMQ#_q+un_wpZ&}IdtF^ZjGWv0?2^=q2|3jZ#=uZ zroa4fKIpY1J<(GVY*HEU;9rgr@1cpTGE;eCAHU|7Kpp*!JSqg>$UH5thRI-advvzX zr~GyAN-`G>f_TTbARUE)6z+ZdvNgMR)Qvh*IzH{P2@=R`4GmZ6_qbwip4u>>@9*>jV*W+FZ9_&hVc-sgF5j}$cN(rmU-V1Rukb+ z0Ne;OzujhNN))8Pn$iAVgyPH_3 zm?bB#Qk(kubCcAd?^IhHc4ys#nwF?)S^kBsBk+yY3@zLDD>C~HZ?Hdf7cnNumqL*r z6i-8wI%q$z23kMypCT+%Q^xRuLVx7P2}L9tKu5=`&piw+w~L^jV7`}-3SwRpJuF;q zi52`8A)ezH_QWe|1b$q+lSUvoDmu5!$1iF~q@%)}#4rMRI}fI>fSO6wK#C`!l&iM~ z4lD)u^?Q5PYDjIE#xmU$ck`Ec?H3j!cb{$h&HKRP6fmNu^;|y)p@RK|(ig53(;cvi zdU?mL1pLhX>6N(F4sohiy#VYMUFz%T>5maYF}?-Ef?$gJ1BQn=jx*P;e&;!JCA&af zA{AvF!T}gY{rA#iJtVk;l%CTQ!_*4)1JG7TLJn`TL$sQ7|2#co#Y+QKL6n^>ZqG_f zIRR1$8Nt2p%0H#C$^RB|G9-wG_CXpWpe{L8Km+jEn({}PcQe>`Gx(RKNGu)Kb{46w zsTm-J73qQFo4ikKj*Yyk6DWXMM&>F}E8B~lgk}GJ*_@J=Hi+u{B0qofg{#sD=Z&Ix z-zug92^ELcNTja3yu9)3rsz^Bq;_DTNvxY*XG;OD<zsu(tnGm(tmofK1EFm&Glegcn|*k|zALe3;<8j|Nq zLTW{hA?+^dVG|^l-{u?fCqein5>g$%Fg^SC&g2@mKTF}?dSZ5pwg`=9R2NzKW&Orzl2-38BT)@BM+*Vb0zT~in|D6s2a zMc#7;*~Ap^8FMo>`F~0oumJ^hU*6cJT?7W_m~b`&M+VypsNu5XHc0yd2Cue|x69&n zE58>0e^s4#JlFmA|7q%K(^RRWJ`KJJ-IWuFH`;+Cch;@Fm6E+%q;nYGtK990{QW;ux)8BGxFM|t;rpPWwE zu16=3w3}sdi~SQ)4rA?%@2^#EGu6;eLD&xYKCn+>^2@Y;5atU2AzjNAZ#*zwI~*1l`tRiwCXT;nWpSS$)|8Vy3Wa?6&sjR>&eQc9NUaTTC0&l;pNo8FO=U= z3EPLKojbQO@YB4pKww1913hy#Q`$A=f}O-ap1T^&zXH z9$or6uRDTTg)5=yoxs}VDeoSB!~iCaY|v^Pknq#ANbqz%Gg+Q9J#)#-rD;#0s6J4= z>MUuZwpkA`GlQfx3+0u*knHhjb-0WEN6VQ>76AY^<^;4(BwVM5ImokrvFkDcxl= zusE1!0m#!W3&!??=L8@qFV1Am*VA3*>&{rM)^hO^?L{YsCgj5!Az#mVD!xWAWofTJ z{eCGzqssh-n4R(zoEI;C>Z*Na$Ia(U#K{F6JcX8mSh(TnQuxVVg^OMpE+`itayQzp ztHR<-wXE{lK#cnI!D&Z{D=S^A?LIp-E1W~tTrSh2o(U#yp}+0|wqi-l(KlC9YfnjAsrTmLsjgykXJu#SzR$|qS_5B@QHbb%VwOhD3|giXctf4PEaRp%{@`9F ze}-$ViTqogklsMydF?mNVZ$!nIO`fifl60;C%k~x3Y)TD2Gc|uKXq!aT2If>;FrN3 z=T5SNl%M6EoC>%)Co!=eAuyAhUI;atrVy!D2fzvIr?1})=xScg#p#!Q55pZl6jRH=WkZzA z;zI*CViZkLHd@gjZ=$5sZSD7u-4!w+TbZ+hoQf7NU$!jMJ$&tGg;sb?XeY+Bs&V_g z0lT?ClS$L2*&tWU1TnY6p3+nT zhq^Bq5Q=-{*w~7^)`e&7Dhre29xp#)+N~QLf!S`IFcatoL!d8U6#@?zclTSJ`@)6P zB;$qA%u`wrND(>rte`SQPGB5lz9F9TNau3K-5o#ONjGubpWgslhK8DO-nwJ`AukRf zJ6H&sk0nW0O@og7;qzy=eKV8h24xP`MP-FVNQF4vAMUNPnp&R%A%SMnlN=SM;*~RI z!WWjE3h-%Axl}|TbBEl9ySqbFo%4FPfSow81kngSlMUoIFyxXE_CRIFG#B(v8a-{w zV(V_Lc7c%Z;(4}i;crH4PhI=toXx|#Z7n+$1x-YvgQ@Va`q_>=VwpS+()8|Zw3>vmY1y}LYtuyOzwpsOuSILY z+4-i0pVOa=pMHIB&vZBXV!T>#*nMvgvAkSI1bag8vmELe74dR_!-NTD?6ycJI}75P z_Kz=BIw&iz=j8kgW^Y#F7#vdBxhTkJ-p(w%SZb&&V7}D@)Eq^QXa})xwDd&#d)z;9 zUN=nxF>x>@#dt2CPD6lcH}7}-{|}d|auWNP8JB%+ff}vE9<<`tN*|xl0Uw@tR2E6c z)WyYRq@aP|&z4jRiF1-ZU5Xf5X+D+t3L~KY+mZtx=;l31$974yM)J!a3wx$$tUPz} zoG63g+Dbwz{Xh^_tdxz#*AkQs)q%x=diwKVlsrQMy?ANI7XJAWffGv;B1oc@S{)vW)YggLO2>ak`m=&*>Bp5SB^H`uAzDJ*FB7+eMG(`-~k}MIfO&BSbeKJvPMmPa{X*x zVd@AxshBC@apvE1CHpgLW;iIr0Tl}X_V*@|`K=LNM_lb5JUx|@*y7CO-pKF8WmZ%w zmwkVUm2U=Cggoelp1s|?+H~sFlogBhS2utbY1bgWISv0$_0dt+SKuDcK6nd^cZRcK zLGcC0634d>#F88uDPqQB2-<+mrJSMtUp8cSH*?SS#A4}~9y)xOl6V6Eq(;x4O@NKo zl-D=r>C?ffNf;fyA6JQ=KiAOB6Je5QBRTj*g$d6Ja>tAk$M;LB{u_{$o4e5H&loRx zDm>fSr04Q!s01Fp%{k@p1i->8?$>)tS83vjLs6G5#TE68X?fKoY_v)GIJnR#G6}<8 zX-U%j6pDA~fQ1`T({nVLE8BTm(5=DFpyAG2exwRCz^hSn%fJNA&y9GIq{mr$nsE?9 zD$QV}m3#{g-*N5bG7)VzXxLC@fdKcv=1>PyeWIyoVs0PLo~~;xp_5v}v5sHkbiQS%ffYOrR4BIpqy;2aGvlXeM_OvMo zVt>$uvdE;c*a|i;=O-7jFgo{-#{7F_;;xL@3r~I|c$<03v_1y?{OEU*<+yU>l>sG; zFQ50e^7ZGrvAq`UhTBzxL&;hC^9f0Cn6hovex%tic!?q! zlTJCUV@wdAQK_IhzrrGT+Ozi03c`FNU>u>k3$Y)Y2X>=eAcQVKd10*_iHsD3Up8%9 z0ErxjM^(D)KA%ZP^WXgQB!Z30-#)tF*-PBJz|GjF;veq)twu}CRwz3Vh?WYBgC#d# zGsIBG+T9JjiGS&A;@yh9P4Dq4_lhT1uc}!4WnipAZv_fcmEJ1rNv5J;B=}#NM}-H9 zEs?kA&wtRHVq$bjLC}BDSo$q2G+cwentSo^y}Dz^Aft92J6a*89R>9-fY#dMGqW2T z#92*h)wQb~^@$~ny8wE|Q@BT;PjC08#}&L$iZ)#E6Y!|rkDqDxvP-8|Cw$`FQxLmS z)LhTX0+&J5>Pj=Pj3!x^Vbgn>XXS&3W)beQz-Dow{pb0TL9V3s@&#oy!ghOoDjQuG zW*k57QR0R>`uQO4ks@Xw^PRr3XrPuZU@}4cqw%kG z9Q@TBq+)nVGhD_dQN-}36(JU3*4008&p7fVP!Fhoml6l} zQyt>_bI`EgUuOq}8Sx-kyp3hr3LZ0*s7q3(iO>{qdHgBSILP`VndWi5^X7yzE0@MW^cquJ%O{$K?$fT%v` zC1mPH-XFFvt4htEOxY@{^=?6d7HJ`(9Dnf9%rvJ>y9VB^q?@pdou^V)yHS+%89XEP z_@_7d{-XFRcsaN4&PspZ=v*9yba)M}1+k9T@7@g}Ahe>OaKRCcJt3i$oawq8-A_EU; zgbiO;66J|UTX5DBjh_h$tynw~W1(2u(KoSqGH6dulRGM`E}J`xxPTY0Ut1D^M)R`@ zi<-{x&QZEELVnl{m#v)*fN<2SeD<%Z3{YW9lRE>bYm&Cf6F}Ozi!|70()LwN?}QK6 zfl=HIp=1MvGs($X@(0-$2?wVst*%t^+^lA@ef4{#fn#bFeyaa4xp8DQ08$HO}Gviu2nYGzb=A0toZ@_pdKA1zClJM=znVw@Fxf+`|}_ zZCiyW)>a!(-2u}09Xkta|3F2su4vBMD zD3H#aKoH#LKm4@Pg49bSEZpSOX**gxf8+bwt8gX4`>&jVvfIgE1wX?vh`e8v^o^RU zZW1R7j#-%;wd&Jbtt#CK#pC$#98Im;xA#v;86=`OS%`Ws(tIpIP*HXmvZ6<#U5&R19BH!`%bwnFo)Ygv;1Tm$AU*o)$Ka)) zK=6mc0vg7+HQg%R@!q=^`~+D~!B0@=%k*|=^f*I$6R&c8x10{EhW=is+9KN{V8ylW zPVo&_I;rj}c;jc>yckWA^t#A4g=$Fu%^82F{)-*3M3I#s6Vvb)lY))$AOl}Ba>wRj zZ6Av2O^^cUNSKG&SzD`gG@Fk9EiqnI>GkNjODxV282T*p>%t@C>`+*bYZKJ{we;w& zVNgxdxS2eaUhEaO#Fx{S$0lNh!)TL#Xf@ON*u-7FU^QWnC(1?^qO-fZj`BDg*7 zC}@VViCRktl^dXH-JdgI`UKF7T8&YhDAI)_&;+d+4A%nI()d3;rlMb?8VM-d7JKsK zCRRHZi6PTW$n})}#Oh%uw1t1|MxO>Z?i*;5<}HctNct}ju)vQp#EI8VaW_n;r+xN| zf9vm0CNXs< z&s@6uG*nGV6`o9sI_;mwTawa3Z0qTvV<^{RsHy8LXl&5pReUO`R$1}aiTRn2NT2gJLhlaE9nA&FL5zvk$Ev4Y$?GH)I7(xwYGk>n>XNVp%FxRQUZl?J@S`q{rcZ6k=CtXYmF}mh=@1Na*vs z--(A(e1$i|kTvbIUFat@SKH}N-%sR27!R)}vq+D75-AQLlyQJ7GAjf>CkX+Bcc8xh z<%{g>?u<27w0FNZeo5okofXxr{9QcLp6wXN))(Iuc8~@_MCRdKx#0N@&Y=3zjszc} zy!-zC<_=imLPk3oNps4yMaB;f)mtwbP4Xe6ko&zHPps5zR$1+BBK!t1hdq4waC+RQ zvDCh()!bIiqMavIF;SI!QBdHB=D0wlII`@nye9seyz!Own~@NA#Wn(nN_%~N_0ugQ zWFidgl&k2pXt9ujJJ(xp7@#pTxX5&;s*#K|8^6CeY+xRpaj{UFuoC|)fSH434Lq#v zn#PtI-JU0Ubo{R5++x+|c#&lOgGW+Kc2(w;Qu=@+ltfOtyYyB;!QMt{PsjWCq*_+R zLgB+PXML`lzz5(DuoCOTx18nfZZTo1p+FljesZeI39=yatq7(BdKp}0e)}jkMKuY_ z_UAh-X}oLkdW(adjf)4QXaHaN(Sd$Oy)EY5S6(iYraYlypm7_a4$C$Xgo>1NHY~u& zXI#v8JJZxZdiAiEpMDD8+Id>)vW7^%B>@msG`--YH;p!~S}k&L+jSWV>#OZ&%(&fK zjJP3*cfdS~Rt?9mKIjh2O0SC>Vrop6G=m-ffzC<#ns3Vd7|}!f`VIqG z2nr9E#wu!~qZck5^aFX>eLNO_z;OmI zN1K}qM8J}SK;pK@L3~wGkE_hB_@P|sPSz0g{m0wP?tWz3vJ<=X@6mWuE7_W42I?EO z@o@?)XH}?42fC^dpD`0^ZeU=*jbx>Mu8>&(upzz4`6SjdYU`(h&d=xO$X?h7vo^Z$ znvPv`n=>l-S&MGr3OkdscBidf63qqmkg|}zoIfvGIyscbvK$mzu|;I*lMCR0CuC~= zb&TETWu|_{Ra>@XoJE-BM<H75A+CADoD$@Zv zh16i!!~+wkeicfrW#I>3T=hwCBM=AY1q(!zkA&Tz;-8^IFODs!J%t({HI^`?h08#V zL~bcgWJHm^Gtx~#xA4-c4I?4l+8}k)MR&d4y@wRIzZ%dc*zpZN{t=(IEXEI{oG)jz92VD)kc?V{_Mi$h3WNCP|8R! zg~d_xD;_86i0L956L^bMGoa`_EtFE~ax?NHK{+v}8Stj<-LQPyTJQ7$b^{MX)NS^h zPaDY>&@q{?SVu?adt7p}y)ZB6j8b2^ZTTTIN6o>Drn-&vC`x-z_t=~SbhqhUYJvW`s`awHQR&VJmuZZ&EkDX)rjemYz7 zq=>FLPvw776PAWD?#)ayJeHOx@1WL;MNBg@Wd0hNBT(nJDWeX>OB83%CS``dgRBAP z2uSK9Vp$nik(d#|=~K;}@Z0chg{4Z7;t=gC`48UQewxMML@g;m9vRnFoNGlc0okH# zy52vFHyV=<@AWb|(c+%d$d}{*vO|H9q(#qBE>o#gU%%P1skyfEoxL(qYR?`+p9D~# zy?gg^1nuf^u6xTy3l^I;#$e;7mboBJ%txVm>f0_5N`-1O_ znh;6_WandDy|=Sl@6Q>S(}bLG^VhH5XKv{g44_69!Tjz~bkmCj?JI3tx9*;wKF;AGK110*XTiegcF#JB)rj54x9*Y73JhWmelz&VxQqey ztD|l$%{X$T+8>eKjRrfQ4j;k1l+*6jpXRHTjhdz8m$)3>opiO!k+t4v(VJnv(KhbAohu3s2#UG6rqYqX^l#@oMT6PP3qE+8EPUFS<>)^XIN$y5FFw_2afaZ3y_g-SFv zRHfI1Hs*@65*A9PdU+tY3|;IF!+q25X9V4dIeGFr>6!DQMI}-1Xt$^xz78N;`@{8CdRpW6 zd0yHJa6-u(qWLPaZY&L~!px8V!Qa0LJxHfE-5Sb=c-OE%wGyxY*T&rbg~TCFo`t?5 z%n040cHSWjMndSiYLO>Xm310!>u1bIce!S2hxZS_4pMTFrBe^*o3=E!FTP2CStx`8 zbliBk$*hS;d7zvRFg81(S+>-yZ(PshnDhCA@^rF$zSnC0F4H?ptu~i*OGdO& zd00HXw06#n=vT@;^N$Xi9)460k?bW_1D+zYlyB-%4O6nfRPzHEb7YX zbuR896Z{*UePXb65$2W#vnP_M5!>!-+8b&abMocbOt@B+pl8zz^0Byy!_zA+xOp4H}eLdOTq6of+br1^TdPnG|&FM4yw+Eka-& zYhXP90*nutbG;$JOyl=jiCw=UX~`1kD`W3YwNRy@jp@Amxu%CZ#w?$Ir{jG-?Ziq8 zS;QAtbD%RMu%U$1dy&?pwL##VAf%PygZ)e3Jq>QZoD7lK%hey=G- z4Z`Ve(kLp9if(EfQRE}pC1|9c_QY3z>z?$uF}&gA9rA`(oxkY&OI6fn>>Zf}I3Tn+ za45k?w7`Vongn%o`@^P`(^%u)XqK$3y<_2l29L?tUwsN54-}4JgcDs z%bP6u12cw_h3xk7yr9)Ca5D_%tC*0Y)x`{Huh(9A*606z?2B~n98BZ}Nb-`G|Fu=P z0(dN40-0ff0A^W2cXRu*4tRu;py^LoOZnK5Qb*ltmkz2?a(tgjdymOViS4IabhO7d z4_h9RFtUgghnV$64F}|N1tLH-x_dc?>TaXC>g~CnpWZskr+@$cU95Qt1o$NGK&_gY zc93Py@A#v#`g+U*Bv7ZNidhRZaxn;{D~>tZW~<%W0EhQFw{BBl1-DfY7n?hWXgi5K z6lcHLTbyJ9p;|`WkMlG#Ofj=>Q!tVBD)Zebs6GhzPQoZ%B&e|Brz4|HStun15huJR z5}0tL(+h48lIu1boXbYv9ek(QOCd4@`ETq+b z*eCEL_t_f?R{urJ_98l$1Qp%)hU1aa}CmlTIt58&D)S2Bb-5 zDpWLfvmj8fUq5tP9D@TH( zmpDfLee@^)KKjHMh-dUEjmsAt{Uy`WpSU*C=a zYuo{y^M$-?!YS-^j-IB&!gu0MV}`L4%%Ba3&oh5O9p+>OO2zD}cXZ+T1nO+gh0Lrh zDORM0gRp1tr*DrQru>=I77^uv^vF4>U zO(cP;|2OQ7+Eg5)4>ky?iz{P3|9wYstLT*84jUQ>%w7sfkV;8H751O&1^`p{o6w#!GbTGBY&s?h5hGrv=Pk>>0=rC6) zw8W*BegIEd?hOzf_gLi^ziOkSpaZyKZRi+kC zi>bKv-^J9JRSVbI0*yMf>+bzK$8^VyV5E{@3E{rqW2U=x*6rKZ;;+$h5Wqx(tf9PwDof29=os`7ahJa=|bnw+$});FfxGS3txSL)+x?%!tSN-!kmVkyg@e12+CdP zm^OJMJ6w^^KYG+T^x@+!{7ZKn&4Bi(y_`4B1Qip2hIf{S0`VhlM8MSR>lN$kQ_lnQ zvQLg@yhBVLNC~8UfM(fN-eZtvCfR~*O?x?a_}!&0@8v4#JH3G0%>a#saoNiTbtcKE zqYLOekBrNH_~3y$up;A%5MhsGTVS(WZ=@1#M0Zck9FC=M24y1|5KhVOl7`w1No4g1 z6v-PWI>7xi=X=m_HX-5QinzLsw@NwEj-hU^2=0;QtXxJGORd0$A()GeD0#OjZ_f47 zjJj>yV~oe&Q|<5|V`HHY?D}{=0c!2Yx+&6Pv!OoNp6DTF51Sa3LvkpN*fiw8WF)A| z#6SAg7dR|;^5549|9h7G0ke3d#pbjLu<{_*%lyBQN|dm1aq|Z>wlfnKUb+v0 zhSA~|knz;a%Ob@_NW=7rxtuDb4m)lyyWfP0@);dmIl#p;QQ8AkqHtX|kP$=l1l34! zi(YaE(I5Uw2i{~cpcqlqHqoh=#RH%gMowx~_lnzSP5ArhrVD;bdb0@xA2)9x|CVlz zVyF#F1z`E_zntFV3B9DD;s)k6`}`tq-5Q@Qz!Mv)N$JTRPRV5+758)DORN zi)>;E#@%8}D18m+5A+j73XjCj1&$1zs<~;JkE80&p<{(@>$dsDKslO4i6h!ydMQo8 zZlvBQDJkI`+Qhj4JL+O2pxhx8XH<&=W$*=&fUi4UM?I5Csgx!wEW7+Y(I5Uz^QwZu zAb;}HNmB$7`5$;If=zA^zD&Vb`Dn2KMxTfzbPF&d>6AY}C6jcW=+*zd(vlW`1Ckf# z&LBt!V!^Aatu530Xj2~;y87I-sDh|6!dz1^n-B#bK}38TINP>_hK8ocjsCkVl5~a^-s=Lp*9aPKC;AOR9WkfaQjMMzPv%9XG36aZp%?U+fY)Hsje)P=AF_(y6V_46a1?+D1$xZ>LX zjQ0nZAzqa>B*lhmDK^ZOf$SeMAu#v}EhL=h*eG<7;(w zBL|{~-Ox{Mh(YjlY|GzfuH|sJj_=)km=4030-t%%#|k&&QNBmw^2|qh9OKLv;~b&K zT3Vi7b$U74J*W|q#edD{`uhs&q@U_`w$dIr08c-p$S5{4+DIr1Urs)tSR@|^fy2o( znQkJ_x$AxB<|(=exA`GLE)+89Hy_UaE<;v`fAW_#w|_(;Fce?mHKOc3&@ZF#r98mQ zojr|0Zl-IuA;GE9V({fgzBR(b}M z^BZObS+{RrdN+hwnAcFFbnNHS0Ev(*?u882OvJoccv!Z!7vBv|*b9+_hb5*EJ$v;s z7=Au6F{8Nn@DR_plRx&=)4Ld5`*c2vJ=jJEv0z=#(4(CHU8GTxp7p4REqv0=?Ce0V z5+DCbGkk8uCgUmdFBF2H0|zX}joW2D72K3OU8a0dq7;AVjF8v`zbFvYryn|K@7@ZJ zpWI0%rLaxgRoof+MKq9WM3?&QTk!{z;rjsLU}oT?kot1lei}rlS(P3It5W_{^=ELL zSSX-Rz+&e?9}9V*b=UPun1nEX%DpcCIPCaNSUse94HJ`}2_qxACMKp`T-_9INhU1Ss>kVH@*%~e zKGGRBtfVlq?v?$?UpR$@mjf(^Z~Gv+auefcKfktFf&KS-%UYPKdI@=b^z^jwf`g-d z&~V;0_(t=JFC^bsO}v!xK&Xwh1`RsEpFB!uTv)Lc_gis;bxQWQv3T8&Cmv4@B^Y^C zP6PF!xV`WBgpQ;LCSa1{BIHpJYmSQ)%UYOO>*=ksG{j?`4pqO)4`=D0o_(uDpJ^$k z@IR<}U!8jwzkr@N0~ii+%0QaE2ERo_Eu@8FI0KuKlZ`IUfSn(TmfuliX0dooDo}4- zEiV4GCH$N3n@49fFsX5dazd0hss3ip!;cseFKgGCx3b3We2e0(5LHCD%5<{14-<-Q ze>7^)Kw*;Ec7E1)@@@Fx{X%S3R21$dD?0cCSS*N^$Bxc}ukkN~QMAK_NbYcFmcDQ% zoRa2VUF=)iiTMg6&;?OPUh^!!!<-@J-$1}rwy?O>=>bv;cLf>gO{nC08gNbyJm0us z!wINo49|*s;%IdG<7?`Fu6hR;2W0gYcd9lUm`UkS3HMK`IQ2_+3c%EM>s3) z$4%OajO7DTo-nrJlr;}IKjCXG!zM!2aPE=}pGpRh4F}RZIpDIahsonpG}OoYQK!x_ zR9$>w%*zp?zEyxDbpGPTxnO8N-@6Z&)Co`sjfgm%iKOw{l`=T~T|ja;DJ|&z0aGnV zF6a*T@A>BTGlbv`)q7v>DI)<=l3Se^|;_r21gma!tgaUR*cwk z{?MDrkaX06LB?`Rs9LlK4EVfdIbKI$kV699#TanjlXH4YJli^0S}KvFm7^bPn4qRR zJrb}LgttF-v2kHurElNtH*{c8W%)M zJT3PTBcYzhdN_}Dd|ht|)8a|NQA3C;4DVQal}y8PFS+?~HZiIJNMUu9(Zq&sgl>h0 zLmz#;bqDKe&bf4~?Tz9+wb(UB8(U(&L= z3vJp|qfejP>3g$Op%TgdqGIekWX0>KwYJ(S{P&fDUFA-Winh>VbDykPbWS(Mqv<0o zkS4@ejDE6-4U1Mc^7QFlEc&NQ-isL)GtjXWS-snC_B@O@SSwpFw(3W+78>?uxsFio zfCS;Gzu-s)O>k^_SuF`{k+S&5ZeKgOwq@&j*6nEedvgnudJ?|RdUWBCQ%GpknM6Hx zQFu|&Gz`1X1`60m$1YsPl6S(MF^GZ>Kn=9oje0?Gp7yr ztL`vIIuZ|<^+TlgL+&X4Ugq$o7)#2|CJJ*TV3aWryik-!i=acver-CE0IeyQZ%|q|bb%hv) zfblfKr`lSCC$!ARAhhRj;C*+gK6g)uv*CV8}RD^l|?JU1o8mtvzi=(JL0=b z!|5?u8FHPUZ|v3`BkB)~FF>xyp;TKq|CE^F6E8AIGWpP9OqQ8NF51q&3*C+|8PFo$ zC@?M$u}tbsy7Q}N@7|gumz?;CJbTWI4W~|>`ZknP`D0~qC>4mfa+1(l(B-7l;!I{N zx5YwsI=^T;v)CzkI0b_!aV~gOExI&J4Q>O(2p!I6{JvKIYFly+_O>Wp(6P+553hTa z(}TCaS@d9MU_d|tOJRoh^M)dO{CftS_ZZ5_3hh3x^TeWnyK^;}C`P9xu)^lyf0>zp zLmTOyNjHc3G-m4g1oLp@2%;)JfBuVJ%N3U>HsAT~gP2kaQ?vMPidS5E`XQn> zsqN}vC)QKokP=UEc9b}(z)IJil&kI6I`M|%6OrKz?0MO zd1~qC5TaysLD#QE@F-xHGeGScEXa;LhWe*Q$TnPLC8fo2*kK0+u#TCagA1Z>w%(X! zj`sGgNx@xtuLSD7aBw+V7FC=TE;mC-by0|wRX@+bw9K9z)YwTzWA(lGQ5pQ^C&zaL z$4tu=zET6FE^NBu$XN=QS?pF>d~!@-0fxWLs*Jd+FB_9*iuw`|Cy!)d7{WC|%AAU` z>*L&iz^Xb69iy@8d&aJ8bPw~{LI$qfxpNNZa{MgGFUz_|?=@Ce-`Q$+)+hox=Ta2k zp8mOTK4{3F2!nZLA69&RKLy9pp+wKQCFz63;fECXK_8i(GHQ`+FRxLf)U-%g`G(zL zVYj)h5X_m$fZRxo3lenOD*~E1L(56>DA>jtELrtV5Adz+dwDnayE&z5sMjbNBj(3~ zqYuFREqXvaPUbO>B^Jg{KREd@drNE_!I4tZ(hQJnU>$kHafSqRqn#}r+O_uSi~_TU zxp>NOyTRwcJD%fT<;oy(pcbbz6CYES3m}xsr?&+%^M?FJ+?Y`}oVr|}#~gIfTHa-8 z1g(0wUuPLd!D#~6x4g|KOY!K&n zvPv=Lq&~-I!Q+FOB7_b1WY;B>{Z^oG>7-|wJHKwA>l-@;W4D-vl_!aVc zcj|0rdDi6P#<+u@3{t>zWOUl4=WNaUv5tXAv_v(@Kqm~4R=m#JAb-J+s5sko6?~2k z%^H!%N<9Vu3dMIlQM7(u%F@~3^xUi_GprGIZk{KfRqr2`a@iuH1n}-)lu?W<)^Dr= zuK)nsW&V6?G7E%3$2i7bO~OEe1EwdZdh%xr?^zOlsXT=r(X5f&|J7MnX6YX=>r9F@ zWaWE$xh;9t11?KG_wubA;$_|IUPI;1*u6a*yWdP6aT9zo_ZJD58Ck`Lk00p?Y8x&t zIYjohk-41cEd;{j0K^T~WKXa4bP%$#vo$!Sh!&6m?Z7oqzc90gF0vI0l|i0w+wg=H zvIj4(Z7~2(bZMw1`uBUJNo#I&NTnHIRt=P$>T6WJuZ)6{)2zH za*_}gr*jKpGIrEGyczaHboG|eG}~&o9hg58W+dfr7+KH1qcymhW8{r=9{y?CG!>#W z$tD&0awaApHBQ@{sJ!x?e%6Hu5m*epxnmYdoqh5Bd9VsT%YCG=BQ{(ZRNn SW{Va0Wo15gRKmzv8~+~!2o;(D literal 0 HcmV?d00001 diff --git a/demo/06-parallel.svg b/demo/06-parallel.svg new file mode 100644 index 000000000..86cc01776 --- /dev/null +++ b/demo/06-parallel.svg @@ -0,0 +1,127 @@ + + + + + + +Parallel + + + +start + + + + + +Start + + + +fork + + + +Fork Analysis + + + +start->fork + + + + + +exit + + + + + +Exit + + + +security + +Security Audit + + + +fork->security + + + + + +architecture + +Architecture Review + + + +fork->architecture + + + + + +quality + +Code Quality + + + +fork->quality + + + + + +merge + + + +Merge Findings + + + +security->merge + + + + + +architecture->merge + + + + + +quality->merge + + + + + +report + +Final Report + + + +merge->report + + + + + +report->exit + + + + + diff --git a/demo/07-human-gate.png b/demo/07-human-gate.png new file mode 100644 index 0000000000000000000000000000000000000000..6de549d9f64440fb83c46b30bf6ab2f1bd3071dc GIT binary patch literal 29940 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%0A}6WBvgBP3#Hf zn9*CbF=D6>@c*%JiMk7vMBoD(M3`LukplUWdluZQ_w=mn-?_GTU-cOgW+@2%-n}+V z3ImzbrHx!TKoG%9ADf4Nnzc~j9SA5eL3bsrZeb#dCZVFjmrt^?|L2psBN&s`p1j0` zi`@wj!b}DtLpQgjuuM}?xUAIx!f`yv0%V1CWF0PTc^gQ=@5HLn#J0NuR?3Sm0i!x9 zPnABXh8S+ZOP1IMa9RYvkMAh=vKjZfdGC5CoFIs*v7CL*0}e}2`!q6E{Hagcfi7}o zK%`-%fs5_m!O+lFxQO725K7e3!sMN$A5S#$3j1xzXA0j{@9}$Zz-kr!i zX}<-e6%$JEY(QSzxxP8IrKi>6&Zy|&1*R%t1S1~!t^A;FLa~N|{zcPK)d8Av1?MK+0T1K73dht^N$~|@eFX+rYh$)ioX!_`@qqrFg-$YHo14_I= zW=Bl8gouH1((>V?eyZHgJj-_bx$B<69n}D5IMu21rN + + + + + +HumanGate + + + +start + + + + + +Start + + + +draft + +Draft Proposal + + + +start->draft + + + + + +exit + + + + + +Exit + + + +approve + +Approve Changes? + + + +draft->approve + + + + + +apply + +Apply Changes + + + +approve->apply + + +[A] Approve + + + +skip + +Skip + + + +approve->skip + + +[S] Skip + + + +apply->exit + + + + + +skip->exit + + + + + diff --git a/demo/08-multi-model.png b/demo/08-multi-model.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4baa77a920067b3691f59dfecc52bef5fb7cb2 GIT binary patch literal 17958 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 D + + + + + +MultiModel + + + +start + + + + + +Start + + + +spec + +Write Spec + + + +start->spec + + + + + +exit + + + + + +Exit + + + +implement + +Implement + + + +spec->implement + + + + + +test + +Write Tests + + + +implement->test + + + + + +review + +Code Review + + + +test->review + + + + + +review->exit + + + + + diff --git a/demo/09-simplify.dot b/demo/09-simplify.dot new file mode 100644 index 000000000..1403e562f --- /dev/null +++ b/demo/09-simplify.dot @@ -0,0 +1,11 @@ +digraph Simplify { + graph [goal="Review and simplify recent code changes"] + rankdir=LR + + start [shape=Mdiamond, label="Start"] + exit [shape=Msquare, label="Exit"] + + simplify [label="Simplify", prompt="@docs-internal/prompts/simplify.md"] + + start -> simplify -> exit +} diff --git a/demo/09-simplify.png b/demo/09-simplify.png new file mode 100644 index 0000000000000000000000000000000000000000..23ec1f5e507e0c19d2415380f78e3a50068434a3 GIT binary patch literal 7392 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 IQ?d&CKY4vc?EnA( literal 0 HcmV?d00001 diff --git a/demo/09-simplify.svg b/demo/09-simplify.svg new file mode 100644 index 000000000..b417960df --- /dev/null +++ b/demo/09-simplify.svg @@ -0,0 +1,51 @@ + + + + + + +Simplify + + + +start + + + + + +Start + + + +simplify + +Simplify + + + +start->simplify + + + + + +exit + + + + + +Exit + + + +simplify->exit + + + + + diff --git a/demo/10-plan-implement.dot b/demo/10-plan-implement.dot new file mode 100644 index 000000000..690e9d9c8 --- /dev/null +++ b/demo/10-plan-implement.dot @@ -0,0 +1,17 @@ +digraph PlanImplement { + graph [goal="Plan, approve, implement, and simplify a change"] + rankdir=LR + + start [shape=Mdiamond, label="Start"] + exit [shape=Msquare, label="Exit"] + + plan [label="Plan", prompt="Analyze the goal and codebase. Write a clear, step-by-step implementation plan to a Markdown file called plan.md. Include what files will change and why.", reasoning_effort="high"] + approve [shape=hexagon, label="Approve Plan"] + implement [label="Implement", prompt="Read plan.md and implement every step. Make all the code changes described in the plan."] + simplify [label="Simplify", prompt="@docs-internal/prompts/simplify.md"] + + start -> plan -> approve + approve -> implement [label="[A] Approve"] + approve -> plan [label="[R] Revise"] + implement -> simplify -> exit +} diff --git a/demo/10-plan-implement.png b/demo/10-plan-implement.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac7d37f99540eec966cca906b8134e6ad334528 GIT binary patch literal 22526 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 literal 0 HcmV?d00001 diff --git a/demo/10-plan-implement.svg b/demo/10-plan-implement.svg new file mode 100644 index 000000000..653c7f648 --- /dev/null +++ b/demo/10-plan-implement.svg @@ -0,0 +1,95 @@ + + + + + + +PlanImplement + + + +start + + + + + +Start + + + +plan + +Plan + + + +start->plan + + + + + +exit + + + + + +Exit + + + +approve + +Approve Plan + + + +plan->approve + + + + + +approve->plan + + +[R] Revise + + + +implement + +Implement + + + +approve->implement + + +[A] Approve + + + +simplify + +Simplify + + + +implement->simplify + + + + + +simplify->exit + + + + + diff --git a/demo/11-ensemble.dot b/demo/11-ensemble.dot new file mode 100644 index 000000000..af18dc83c --- /dev/null +++ b/demo/11-ensemble.dot @@ -0,0 +1,37 @@ +digraph Ensemble { + graph [ + goal="Get independent opinions from multiple providers, then synthesize", + model_stylesheet=" + #opus { llm_model: claude-opus-4-6; llm_provider: anthropic; } + #gemini { llm_model: gemini-3.1-pro-preview; llm_provider: gemini; } + #codex { llm_model: gpt-5.3-codex; llm_provider: openai; } + #mercury { llm_model: mercury-2; llm_provider: inception; } + #synth { llm_model: claude-opus-4-6; llm_provider: anthropic; reasoning_effort: high; } + " + ] + rankdir=LR + + start [shape=Mdiamond, label="Start"] + exit [shape=Msquare, label="Exit"] + + fork [label="Fan Out", shape=component, join_policy="wait_all", error_policy="continue"] + + opus [label="Opus", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"] + gemini [label="Gemini", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"] + codex [label="Codex", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"] + mercury [label="Mercury", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"] + + merge [label="Merge", shape=tripleoctagon] + synth [label="Synthesize", prompt="You have received independent analyses from four different models (Opus, Gemini, Codex, Mercury). Compare their perspectives: identify consensus, highlight disagreements, and synthesize the strongest ideas into a single coherent recommendation. Note where models agreed and where they diverged.", codergen_mode="one_shot"] + + start -> fork + fork -> opus + fork -> gemini + fork -> codex + fork -> mercury + opus -> merge + gemini -> merge + codex -> merge + mercury -> merge + merge -> synth -> exit +} diff --git a/demo/11-ensemble.png b/demo/11-ensemble.png new file mode 100644 index 0000000000000000000000000000000000000000..4b579ffe968359ef4c316c7e15ba86f1bf31e0dc GIT binary patch literal 42023 zcmYg&2Rzqp+x`z3Wv7rmN{gZ*E3%@D(m*JyQc6fhcDAfEL`H*#?98&a7A0Gmg+fTS z_#apI^L{@6_j#ZDxf_1J@AtaS>pYM1IF9oQIijb@yoP5Dg+gIIsHJ|CLZLCIP^dT< z=akZ9OGFEX1F2x=eXy zWWgrYKcoB9baBt+ulX6>I{zm{YuMSg_ir@ zZwve9vTZB>@2?0a2WUC)`>?5YQeWRsQF;(rT&%c`i)-LR+}`II83zs?Tus@Je;hq} zbok>Vnmc#zK1xYhEg>PHb?DHQ_;~Ws5+Q3ORT(abT;K20+Gd}bF{rj`81tRPGqN6!qU;RN%Lqo&O&HeE31Et}vf}LUE;VH7Bc-~GSfplLj z2I1+{=g;@+=rBEg{FsfGH`L#M)tx(c_8S}X>~s6G|ACU{$08TI;o;$jjzbN@%_$sv zq@^Fdc(LZ>$&+{})srVTP>viu>ihGj&2a;R$IqWLcqj?(JYBqBPmd*WpL<~0$};bT z3m07HCWN zpAp|-RvPy55bw;io4)H83!+cW|gkK6v|Ka&om(v0KTtDLU(h_=*ZYdWYqu zYtK_sENa6x#O$_anZCh}k4YC?Z|;9{=GnuCl##YfO>=XhGiT29{`wUm=Qy}uQ!{Af z{P_2d9P9RMEBcvVUqgTYzVbd^jzc?I{QB$H@@=2Ux*b&}!8N9-p+QScP2D>(!nk$o zR`FA>*JWg6965gcn|!C{*6rJ?mj5nhJC7L`})y(W%a|sQUQqu;7>CYaF$;wWgZ=ItXz#LBU9`zY7-aSr&!Yro{gH7UyuB zG_AN>ckZlGP*8}8ixU+WXWF)H8-6ApLAks%b(o1~4?|TDYn_?*-x{Zlc%S62kL9qT zGNQ`Lf)6}rHe7XbBKuzd_U#q^loKgwY1PA@lA;n5BTNb|t7vP7{`Yw9YL4W6Xsnnx zHtVVD>N4xa%c|5E?n5ltFU>hT&-QqM&;e*W;AH`&hH z*j(X%)^haNv8t3~&)B%Qf=(4VJMae~QZKliXAluqADx`{`19j4{jq0yHQ0ey5u%*Y z;wOE}%l9WgdGZKH+q8}(t4>B9qy%GFRWRjKxg_B~1a-u+P@tQH32>?V3E zXb?}U-HZ0@*&}IQPPsbT&W;ok91>Ddew{|6sdP(9YO2-8hbo00^Sk2X;|n9y$a!FF zra8dCeosXl0?pK$iE4SG=qP zb&uyP|E}G;9R}ZTcptZywJqaR)hov#b8~ZwwY9aDmR2tgK61u&Y(?qv!bM8?o7go<@)agoWw&)&2PKgNpL&%PaC~OMgBeCK(;Y!^6`vDk|za zvQE65Bi-i1i6nZZY?`-h+`O5QQS#!&iyrge@AXd2S5m)!_m1)J;%r^h6K!@Lo;7>- z?u}Y!o*?f;ZN)^s==IeL|MxWi0?g#>*|QYNwQKX|%AAiLT}wf(d-iF-rY!OP{ToPq z=E&b$cI=?DVmf&6VEy~|{&(-LS5;ND@2jNUvUO`kb8~KkbZ%arg@uLiQZb6r;>?)e zt5t;Hp zC-C#Z!p)7CBAR$W$4hvgF(b8I)H5~7XJgBX$hWhO6>@4f@i;rUd zqv?sDqXKjP)I3G#)@k*BS&<7Voh^IQ&Yi3p8XCo}laD(xZO@!pMREQ8?O;;fKEyxe zV}YGnpOvCOW`h*T5|rK_pP%Vo_O6TI-y$JVLl*h`N1=6`oHFxYW+(e=7*TijWAiq) zZ6-l>ie&6+T1CK`#kxVzup)gK7S`Vy1zb3^uslGiqE@yJFV((3V-lAMOLmk z5(zihh`)mOd$@IlI=ausDIE#3$VQeUqnS!+MqF7>6*fhO~GNoA^G<`EnnK|w(aVe7MJ z0}dWQD6-)12w#g#ClJGBPrfECd)+q?I9vYQSscz!1qYSFi5j++nKaSV}g{!1o^l5@TZ! zLRCSOl4oV)6!!@US-m_rz?zXHU9{V};i31+a*Tq@j)j@AP@Kz(&d&QIM%Y4zYmEQC z`w231c6Ro})Kt}T{UidZckkZKr|iW?&nlpfgQugTBk8r|YGiEO517Zsu*$S<*&O&m z*6HWEwDfc-958Mko_=gaq4$as9SfgU=uNVg=}cq)O0`{gu?jkX4AWP>&!2CpuBqt* z9KRVArQ+lyZDV7DFZ4}L-Z=d8=bA=sEv@p`P9qaT54=?mA7(`oyAEido0}_J9QSl! zYF^f3PBP!FC!#J=unG&ReQ!q%umTkY9ZmUTjZk|u4zlv{B9fA9JUl#n&&2SSoh6ii z1@=i=8WS=}?es_+JDLaHy_X*%@#2Ne|+0}D$n(t(u6 zoV`w>;)a=-nIro87eY*IUf#O3);}Pi56N5Bdsz`%PT}I>BH-YG$M1tBL!=Proco}P zMrLVgskgtssWOEe%HN#-4yEXpEe!as!2Lo#VPQ<@xOn%SR#m0mZkR!iM$fe|)bgeI zp$C=yNYAL>WJ5&{gpmzJc8MD?xUVk6CbVf2E!PgyazGLLu}*2pT1m@l2J)C@p4015 zV|%V8An{t%+*nWgk^|v90RR#zsNl4}(AhEwuc!iTt9ulC{pCSQt8ZxV8Y-4RQ$o(h zP(y;BfAylS%ZJ9sx&THldqAsrWp4q11fW96y?cY6JlUk9tBVxm(_P}eH-%zzgFG|R z&)nj8899sCU}0flswYpLeEj&a{GORt$fqRDfpKmDAPaxzaP8Y$w{DS+_E&ew;-{%ZgbK-wg@v-!b#eQ+87cQunnD81K8>6xEfBaa4^3bX-g5raJldL^rY<#1s>FC6~ z2eN5zO(>TuI!Q!8Ikz9OAQKalxrGH4$_c{!v00hd2ZJql@7=Si3S>4axXdpuE}rEw zei{h<*~tuDa`s#vBmIeZp%~crmS3lvow^kreE@*+{rmUoO{;5whYy4QaNrNe)?LUU)Ie~++?*?^2eZGvw&z{s zy8QJuEt*EOM>KQR?R}dcc=(pM&t8c?zC=nk*Ur<`4G9Vkz2#JY#(Mp^wkIlQ0_z4U zzJBEguo~_uQx0SmWWk}tg4+N0bjQfk!M{=VK`pV84v|9y~Uq=Cvt|J-e8 z=&z$I###k9jkH#L{(M`8anK03;N1I|>*N?C0_`0gQwz9BGOJhkv<)@0l@Ku4A`LGu zB@io8-pd}_N{z3BBoRT~{QT^2UE0YU^NSZl|NOc7zpo29-NB|RYiMd3h8P~`vMUQn zN)jdC3S4Q=A6l$|&@3%2CEXWLA1RfW+Ow#rultOg$M*&sky_2BS5sG4_2$j$nwpyS z0z1Lcv9VVX>fMBHGRePmJu;FtEG#U`u15($aD_htKHY9b+p{CDQ;SqosvyW0&PzkGS?-#2QdYNA!U$$2j!Asit{G73_5 zHQwvIKE2c?Hij&#Iu=5sEG#ULXF=Ji|3`Zy=RGEr#XB4?U-TTOi(Rh+%)C$B7k6W) zl-Sm-s}Z=MXkZV~~?GRQDp4OW2=2sjk#!1AvmH0~cn zWILeASps(@d+qneh1u~)l(herIGu$w7E$lsy{kfp&^Iy?Dq)f@1Sn28i8_%FVF=Qi z8d@CQ;kHb{KxW=R>_k#>vj6|ySA~!aBI|)+$4eJkcJ10F>$N2Nfz?J65cK-VoO3GZ zmk3l(NZ|iRfUsqJ;sYK(FIfvfOV{4fQBhe*?ego(qyE$chpSiBaa0NBMr|l8EPVLz zq0fIs{~0+9dlW#*=qDYhsH>xo+iO>gC&4bhbrP?<4!G5a=$e~qRCf5$wCT@S7nk?a zBz;>pvL0Il!L=6*5SKM*F6>v9J=HZes}Qs!TFL9}?d{8PzyT^^r1L!B1^c<1O%liS6@OO+;P+vslg;blYz@PjHL55%2uAP$VQBww8c5{I83!h^{Z`?& zYR|pELAV$!S0BK}kz>aO4S1rg%U|Wi zO$)O=%((3XAwbBR+nWy~?`>MLb9R>bJvF6|CqR!BY2#NnpaNbBpog$qXD8) zMd~DNOK0B2-Cy-boCa!{(S3{Hp#W)-RxalB7!r&mLDqPDv#2P|KwV_r)KH_tpW#n3 zIj=4QqT#fX{u2-_`RP-UO`9|d?d}3lzjhgC;pgWkU!ti=k8j4paCi|C2S5Snj*5bU zhu(^X;)4`Pzy<~VT>wfjILFnYg`hHuJ?7UoChk)+Fo@1--@bi2%|8wZNLNxu=0KU( zUsUAl=z!IXjqm$eYhQi)?p?M`%eG6MxvP;#$e{nW{V0lK(y>vrSN08kCO zLX9g|c7d*QK*cR~n_dHs?0?uNkZFUjuv#EPklc+TV3%Hio;ncaS(Y_x#Eo+q)~?-S z8;g9|PAc;6%VAPz$}Qg9+5~!O?aXM0X!OoMyLatk|2%6Fov>CVDm5oTffMDfL&5=j3s7N&C zfO~kvIy4W2Km9Ky3Hp%+Vc^iALlXdK1C7cn)%Y*d&Ye3mL`&|0qU&!?IVS7Szv}Xr zLMm`8OdEEsLhA=~?az+leEmyfi_B z?vox}J0g`0fDM@r0j0Exl*zz-t`ih=Lo^Q>>u^S;t_~l`5S2a%aD*fi0Meqmx|$#~ zZe=e;F}?U;tZVK(*Escc3P~{d2~<*F#0l7Ab8wh3k`})95%*mL|M zP6Bdj4KipaxNizx06nC}kt1x_aW(+~7HB)jp8L^@AeCuezPzJNswWh95ea0X&CFZH zzE20lk*zt-%8j)qq>US-dT~o6(AitT^&FgQutG zXiu5o;NakYQNyE3N?>`mRh>Cx11Be^jT<-S{_KbT#n9t1#mvXYXAYFGI6H3j>9NLf z4^IlZXmO(~3dxM<7$Z=1EGqq1SAKX_Lj`%Qs7L|(NkBDni>tdklC$rBwYCH`Fqxl& zVUieGfovrTGcY8oi5?wmAT~Ozv^%2T4@m6X{U-ffgcIau=E#T=})(fdlgE@r@V`X z1VsUqY9j6a)5LNe{~QXu>3jycKPxAv>ZY(7S!+}hh%oy1cA5nS1<|*ro%92_3EAZ9 zNo*3D=`8y`RqRLNh^(MG&Lio7ks=(x+LHbOiK>tE4>z5|q91KeChSQq5y~8g^u$jW zbEBE3kE|PzH%LOuhv67GM20B%p9{+81ra1KzkNI7G1FnKb@;I6)vLMf>&zS+92i!w zzK|_&1K1fYbwyhn*X7HXjdIR0ujSyV;J%ps$R!{k0JTFExGOY%RtarwmTi{|VIa_3 ztvjh8@g%=+FX%xeH%ZThs~~p&fpRScqI}ynL${Q2oiM-pqlp&#hgN1l{^;#=aQ;w&_Gug^muJ=%7^L{2@OM3QIQYC=F0p67@wQ>?rm=B-sEs) z;m-w+zte55;44zQvlcx|TqmiKiz@DO$!Q{~;QDaSVdU*iaF47}M-ewz*a{LJ{VFy6gbA`QNcAh4S_$>HUlT$*?E zSe_q3s)hYQ(7XKII|z<~-+(~SAv~xLYPRhuycQ|!}a4yMC?Kt(Zv?Jj0^m)n}8t8 zkD^2Ifyhc~Bl@>juU^G~1V2v!)pe8gUwD-R5>IwmKX`Vf~MiRaT2sT_`app)7x>Z>@ITal4V^4KRm7-(fCgcs@KDTwiShYV}QrQIr zBGzv=5CT#K)(c2Y-Ht4E1MeXWQVjg6{go?gPw$20;>f=W?*aNQLyT^qZ zF2u$_5NuYKWcHVb_t7KFqKv4&Pk>OU7RYoR937zAKU9_+dDPUD2}(;;epF0MFxZ`| zU<uPE&8sg=+<*#l5#dQPKR|G;d)})qIdC3RVGNEcocL4Gz8)-);UX~q)o>7OS;^WOw?c1!Z|@`mv%aDr|^&gAqeK|q9ZN>l zFJ{0iDAN6q8|y!O&^U8uBiTyOLw!z&qREBnixf7NxTU43#(=h;plm43vDU4Ct(5)F z&iPsGX?FEz$JQ=Eqvcd;g%)SA$eghGP)A1xx*Kgg_Ih1iU4r|9Z`@EtBU7TrQU>`I zswePZ(#ftJ@KXQ>XMyDbvmiZ^XL1xKf-HC@5MCi)J&vQjTR-WYhXQ*1__7b)n#N%8tjuOXeAQC(A$!qJ)@y;?mYda zH`I1@h&SE(;!_{rynVYoRM^S&*sk&Wi+u&9BPF^jDv$II>v+}$H=%ozyz;G{)AqJD zLUoI{IJ^WOyi38~L-33wU{OS*UpZhYs2=1i(oMGKqBCin;1uCjbe+&NyT=$NMT{{h zPX1t9hz#%IGRx`x8N9ABFN!w%ZlHMJWNIkd_DG4cvaYA@*CBYWt>*raZuQv}hCwH(0lw#}HMUhbGMgb4ghFJbKk1r%9Y3ZZ$BV#XCq zUB%u2%Pr(z{;wLFfJzs!HcJ*D$t77UY^%`TVEQm}U|ANNHtug(@3sqDN zB&kZ!G;C~aK9I^<71Ca&zj^o04-6h^j1Z_XP>&6AIuOOA=RCY_XLv8p*b>qQ%f-OT z8kCutX+J`}e*N9S!T<1BGA_bKLpFP{GxNo1s)Sxc0 zNx1$QX6KYJ_9uLr`^;#HW8(8cYg^Eo=mRTzyjPgPUqt18GQJxfErQJjG z3j7%vpLw^TkN^S0KXOv`>U0mVFP2P32tFekI;L{KOQ~zWztKhR+_p^>rjStE-5=ut z*?WKf+-9mX*n>1{|E-=K41h3LS%~}B3kvo^Ff)d7nkb>ZsqdIl!D;*c3>-_Ic1j(L1&mbrFit|nF z6F>qYyu%bnjz^n=Y~9e519n$kL!%E*inG6N=GN*})C9ScR#L$1*fBqpLz09^GlK`~ z`~JOUn5}=P@qrbrL?Fh9E{8W3Gf-XxiB)LdM@=joF278P91g~0THqbG8u~wUljyye z`=+ey?0Uo*KudTD7yM%EjmGS^ipYvYaLZp-;S=X9EACS z%)7C%Z;-lU;^X-~H#J$plavOgKj2sLHQ1^K2L`H|o10@mBuq_An8O$up2)$$Q3VQR zLu8%R--T%_@|oDJfVCW|TA>rqz#khw!e^1P7#kZ49A1GQr7)s81iTk)86-C#>T^Au z7!e(W-3NPkGbX0}9A^Mq9*CMtUHQz=xgoO8p|E71d9$`}*=`!K#gY#R8Ii~T`t@tH zXZ}S+?s3BwAQ{&Gx)2=~7mCwe+0|uI$gl26sE7-n#rWi|tor)esS4?;cW|(EFvyHU zwUd^h){D0hsNgz56A|YdnAbu1Ce5xgZ)Nx+KfZFbhU-if@Cq)UwaaDE(FT4y_Z&NV zR1%uz@W==O3^<~;eSgM2!+K$EXBUY@hT8^3S0F1tKQK0S17aCjZkvHxzcDc*P}9(4 zBh4K@aiT9s(2MA;D1-%cjVTEnoS;gurlc8%XX;d3`|-a$$k1RB^?_MMaEuWC6%eeT z9JTby;i%TOrkhNnso1ZgLIr&58x*AJSG8faaQ}zSPUCOx*Yh_*g#nGb)Wcd3NgXB? zh?q@+E(e2DzdXzQ3R+7C(9aoGx$@8+RN#a3Le`<%oLOdzoTV!tp^d{rCEm;@HKG*_6mclRl35$gYA&L%2Of@Yn20|=;O2}np6;!JBU(HdDqtsu$ z8k!}^6KKu;Mg6(;zS*8o|Vtc z&0Tk~HH|D1$)HY7(~%8FL5dQ+1*-UVgEZH1o_+)bPPl3btx;Se4LH*V@Re0e%*-1o zt&h~`LDJNM5Cz4>Z3XbcMDg_arU|oB+sd7BP(bzQp6`1cRuqVwbXBDD`7u141%h*C zZqn-9<;x9Nrw)X6Vd)c@5mXzU6DRJ*-oO76_L$|Nk(QPgap;V+^z^%d#LfXLE)}%2 zww{CN{=Tj4UQKm%78GWdUk|^3DRI9ir=YMKeKuh(2FJ%6p{DXEmOAUjV7Kk{j1aL& zFms*BLcPs`4a9!AXwXv$>(X8sz<3hAm!#R*nfRR?9JgH>=C|$Gac+5eISp-y&Vd7g z_~aaLOM91DHH^b?&^ZMK8}%M2eL&cEz|GQuU2Hcr^Q=Ll?0}Y830DFVPJDgoUQqUU z9iEX-N%T2cS>~vh?^{~#f|L!TU9~C;2kK=^4EM~RAIE_73ccQTCV;Y$Vr7k-m4B9% zbu%_DZZ|)F!Z~lVo0HL2-TQkPBZ5>&-!5E_EWP!sVBs6g&o@-1DM}4$Feg;=i z2ce17P$>6zMheHGQD1hL7Wx1ThmLHq+$tr-j%_2h5umTK4#%Zv>dEGFTaeD0=>=Wr@F3_{j`Maec-jQ z8qx%FzHo!%Lz{6I@Wi@_G%g_AiA)XB?RrE+gThdG3yU>?*FFJ7S0B(lR$wcU+Syuc zqr~9qt7PAS)`--3VxvMlt(lcrMZvof4IRB)<)dNZ1_0wcV}Phxt$Yu@%dDVOSPR*^ zy-u3Ii2P58KLTC!zXS9TX9W;-Gsk9q&Yn3ViFz-# zb7vz?X$<%-_}VWdSV4IV4GTMi&}X8Ipf6%vv&Lp>ygB~>j@F5r#cbs}H$;`~049qP&iozC?nYlAH zE$veN#nu<_$K#;AfBW_Zl{qvR@jZKTKaH0Z7*gRaF1e&qT4&~_e|#QFGPo|jWy|>q z*X#Ss;pguF6&ANNu6kb+wZ8~e5U*v4uJ;_6CY@u)j?ERB>gtA{G&0IUl6Z;02pQ|h zA&>A9xN-)hMaID1=dWMi2d^1M(gEHgAJzbwvv1eUz$}x4S8x6ConO{o$kEB^ERM%n zFjQ7>t_{kUw!1$Nkkp^?kk&K_pZ3WMp%xbt3zUDQD@1=Z_v$czAg5cwSacF67wEy#8SLH5@kbA^l|o3r3WlXlayom}I? z%q{7IteXR8?O^d;XNjFVBY_oeNSrQ?@tmyT(os>lPGt_AlWaHIuWS_imw1;M&{i1( zH*{d`1qkOMPm5}G7Cr?lsDPDy;pfhsyM)>?3UX9@_wL&xg_h4!XpOWv%>+Bo#fg{O zct0{RHr_=6dp_#t-Jt}jc7ARy3)OKK4&LCeUk%I4i+1eEVs=T?qXW75)M?oIO=4m% z!6@wp-g)}?aV13(41f&mq=Q34ZM}+;Sgxl@NmZCfS?Y#U(fwXHzd|&Yh^)Ia+}k__ zJ;BJ(;4b9)LOtEx-JQ`P>AgH-ZJh&tcJTXmlGOvIlu)Q*af+vY|F%S&>+WEBrW;p_ z4ut?vnsQT9Qzci{SCBAC)LgxKH3qTb=6)xgvsyPdw@P8=57YG8ciJwG|Cyd1 z@$8e>zTISeApObn^B;`WsG?(Iw~qFqa&xe}1KDl`j$T|?_>rDebD8%FoqNgsri))= zVEXL)m=3ehOYo%nkuxU18yz4xN#xO#WB%q1rZ!$hoX|w!&T4D!=s0N?vB({C~yDwkAcA&%M**ElG5jcyu4QKI7llTR7I?nVNff=9ob7z0%NYZxxK`u z&HQZHo*{aJc$TtYTh8~Gzaj&5L~PTh8dpVuMYMk%_oXkMS1F_`PNfXIoOA18vbAK7 z0IY}XZUNK}BjXW6LroZu)br!dBbvc;=o=fa!NU;30S}+CyW{qrQ;`DufLa64&bMAe zbIFf)4w;w&O0ED>zr-2cyOt}|UeRNYjr5PuN*(5ZpT&$6@u3q?n3Lm|kZ>w#Q4Qyc z8`i?-X=(n5CdlUzkdmZdvwmEB4cjD8hQma!3c$6+(%fW>tb+(h7^)2$V$WUFCs`inP=B?VCUN`_K=T+{F5blRKBT_yWRiqlszj(nEEFR)ZH~!Kj$!&*qdls6gl(hUjwO7-S}0GTvtrzghYDGY3>( zX0Mf@p&={S`H8a-X>;6z{TvBquYI0>KY;we&O(tY`d5MD}Okf`mz!aA7;vZ|DJ*Uto z5)&zDT9NiaECyhHtTs|G60IU9c631AGWBD-2%kiD?}1~|o3yP$?Q<8XMrb(Xh+QAJ)t`xGpcrA-&nd<$@`himECaz>|y9i#zgUNO6aJh$rLSr}xERX5gr{ zqM;p^DM~r%ypjIlSL#Ui9qA#SJ1MJL!h)mv21Z6k)_X;3LvV-1inv5EO+qIR0tn^S z>Pw*m_pUR+MrmTR!f1?1cOI|g$pdfGmMvR+z?>3c8j~eJ^^W|LNpSvtDRNGWuaG0ZMw?Fz*xahLt7Nc&d@K`nGO-HFyIHz(!fm zg*|v(;)HGQ>as#?A_#5|>VrH0LrSO+JU$?%5Bfz^x4zNQFByAz?4DCD>ed(@+a2;LFN)7&t&ucy{9Roooz7z_VS&*LH(e@V779 z0z@%5GV%_Hu-ZvIYP-1j88G1&nzqGZ{d6$Yg^a`4*x1l;j$(x4;Ah*+a((gJ?Zf_R zz3{`eoX-H4J=oV*0k{{yxDTp}beCs=21XPtQLJ@LOybBhV3%f4-wrflW^Emd^=M0K zn?lfT0l6#w2eq{JxLnP?dHZ%1!sjGtOp;y+;{hJfDE0K+tn^gCC`8ixH*Z4VNtD9U z&%mBhP-O8Y?jnx0PIEiAirYsiRE zI-KJlGUXCe3m7x-;8GM6>_;7IG8XJh_8$OWMEI6CS%=5=-?stb!yF(T@)j%1c)Op&D2I{&4iA!1FI*uqWf(J^0bIGpt=P897t=5GAykPurI zSl*Y&W7$yl7`UEO%5e?1C2%UVPs}L3k%wXtA`&Ck_Us$_#MFN$^H8&aY~-@ zyo#<__K!FyX?QmR(P-)DUV`@ycG`K`kq{?GCr_C8v~XHL7`g<5&orkw^l)>OLekwz zoP6mI1@iGHCcDfDYa5$G?;h@@0T_-DR9=2imKT1_otJ{OhLyck-puYWZ95^nFe%bV zutsUA5+f5+@?M(i{qS@xLLH0=2%x1Yhp)8(qDz%i8t0@ll^9EnVfw<${7wy7FoPtC zkA5xUg7*sUu>dp_5N<0^B+u4zS3yQ6%rVmDpOH3J;O@ZCQ0>qU$2jQ8kPx!gPsM2P z`{2hs0Q*+typVVD~`ym+NC7eaS^mGZR02q!HEpEWUeUz3KhInp`-93}v zDQ5w8qyq5v{+`WY#mcqZAX$i~62@t6Y>mwcV!)b!3}Wz zjAeT}AEV+C!iO+OhK6+j9+DVz(>e(0EWG#`e$Wb&XoXHAoPb5y=RWXYB^>#+&)5w4 zKyZK2@?qZXo_FJF1=xQ49Lr_r52hu^@)#H62HSnQOG_?(QZ`EnK4&Dv$GjjQNg${w2du;BGB!Y;M3!TY(7{ z2&#b?PifOPkwCvpoL>+zQ>I`$l7pTchCfpDTv&&pbYe0_SWO^dV3lDcrGT-4ez=~3 z0gAQ%8x*|OH-+W|_R19b0F$0lPa-Q5ci`~wepnDucevj5gi1)jwU6or4$l`s4w5YZ z=CQV|F9D@_Jnp5#tN*`y0g@giDo3b7XLwOC_X1P7==`(chJ;FF1!H1xWF&D{#Eq5K zuk=m2!vEj{5_Uqm8mNTK^Js)}S~MjeBpkkDL|`BtK3?|F`vgo5fGs9&d@KnzIAA$9(MP6?aDuAn3y!y$ zo;|xs0X|(`S^J0f+!e@kUEe0c05bnS*4fd;#e1kWYK+~sdda~iNC-V!B526fTpwT@ zum&kL3iHxAw5%6r2p^83s+%A`oiy8cDV&(7L2Ff8wp*y#1c{<++=aGffo0OJv-6W6k@5jxhvAY3 zfx`gSy1KTu9~6-N)vK3oFWNZ$C!$rOVv`6Z&fxlbXzwhAu9G5dlUlq};Cp+ql@RGw z(fS~$*fwkkL3*m}>|9VDU&GPVigZ!X-gAqFo~0btWHJp6EiN0{hI2_I*FBVL`?(1V zXrUAw-de~@Wb`+~%Hc5*3}KjWtlysH_16s(I(hH9%kuSr!O1iaGqVO%3UD(~5DJ{q z&Ye&&T>+(M`FU#E4ljxMFW3wo+yAU63rVB6FU?7zazA?ZEC`-s0@}#!2$1ckR@#fE z3VA-Sc=u*H>OI+a_r}Y+x1_as*Qj;es*P5P-j&bv5&H~sucWFg`GdjEDx6>a#=9p6Arz@OunW`iuKBLzoO%<`Af*l;?sV3n<52!l~>V;h8 zuml$J7R$j)gKYb!r zc2F8@92}oV4=w-v@k3Zhh(bInAPI?`1dwU~&?WHRJ;NN?&=VL?0;`Rw&pn5{;S+x` z=>@9+dK2kG;yA}uq>scb6~Xz{)vG|Yr8TXqlC*Tf@Il`jIrK)bhGf@{!Anfq7m8qm zNaTjyfeEW@Ey)n(&tyogOVMI^;*h`j$E?>hm=l?Bo&!(!xbfPJnLsV^Da2n zO6pAQ0Zl{%ad`OP8>&RZdhts)T3#5R7?_x8B|NB%)*>^Uy^Q2- z0gxsE`?U8&BT`gA(xAzfB`Ba(0fsy^)P#T$2F3_xbRi(v!$CKBERGd8+2p*QH5;wF z;IuV0=GHA$5RmY`Xo7wFHa4c)_&}MfTN!ZwKCTh4zI!>1Os#}84uyWnhrDB4?3!I~ z3j@G$eSP6*rJ4?d6Oi3kQ%=3QqTy-+yLm@v=h~nuVXz>-XJ?;5X_Yo&ns$OelX^c& zg)AQnvdL|%e1e=~AYx5ves1B;qkFe+BYcw%72qr5F)VTPS^m$e+S))cQmG!wFkWfH z)F(22*0yEHQEZD^kLkPIT{_3~@9p}7o{D%%YndX^dmhAyI^`qu;ul|cKoWx0hJgZZ zaL;KUT_R9WJp_i0>WZ`6uz(6nz29`ly+YF+Z|dtm;=KNtn;bX}hAvemdZ(EloV?*) zm!Oy${M(K3Wd~%4RSypea2@Q#kn4GfZEM5(fEQNzpmZ`&Ql3A*3A-5Pn+zAe96yU& zC+>Q=C~FuR7IgM}2cBqo(Q`PZ(V-K-;6-Sv^V#8nfdRyj>{Ybg-pliwWiEdSCX^6d zn!tb@b_b07py{93CfhqUCUM0C(**FwNJKAJcNm;vI8a8$Q83wMG5`BJNqEHU3Vr23 z-Zq_8jQrP`@e{0I!(q_ckHSIr3~9T9WDq z-pe6~Swp$pQrAgKa0%wfZXgj-or-QP#7i-KR)kxL_&jk{4#wVAp$~rX|CjJ}t-?qcghQJO$G6awyH|4^c@PB^pQf=r4X9sDem_8pD7S8 zl2uSZPr)52eei0kqeDgtmIO$*C?a<*!Er*+HnBiJbPoVUajqf$=U=$tvs|Xaa&Dpy$jU2!AHC%8U%DU`n7LPX7S(A;kPj=D6Ybw;bOMbq%eE$cRSs zAFpSyFQKa-pGSl$*zF)P_hSMoWm3BsPk_RxlOUh>cJc0=JCdNSiT?)<0*o=jBLJMr z*`TZh*opImfuSIv$hNuIv)qC6?Jv*1BX`IUu?){EGJDqAS`<1K=~r-SUU(Guy3B*` zCIc@ReG=7ae$mOg12%lD3<)4&;Q`5=ge`$H$(J}bO*1AQ7Cp_6J9A)^La~GeBLC9>MiUfpjna{U>~?I~g$!<8=s#1gZGxxo4Yt7N-FS z4xFfPg#HE)12JgW5f`oIv}cHTfD5cvuV4~WqPVfPmJXLtK`W)7=-Z9Sk<&l^+C3l0 zJ+!(V`Xy#Dg0c6ad-swrL#kJYS4pWTr?KU!E-x81{q*S*0|Nt_R|oXS)xA|GA0eU! z!0KVO*uB`lV)z%B3P-9Jh8=jO*C7os*xA_ue~>xaoo1!}=yL#&?9pDp2Xvw%dLxFE z30ffoyw_>yNn?Jx#Emp$$jRqhUaS{T@@OA+ID76~t7};=BN=}LhtY=)ArNFd318c_ z#|$xDLFPL^C+tv^I`VmupO23T-;3^m4AzmkeIQ?m*WtLOg4h~P%uJzuL%)NITr>-- zQf~C})B}R`7mb%zp+3U$B(75qM6@f4<3NrHG$S`f^f_rrz<~^Nr^qK zX)Af)tk8?Kx{9AWe?AyY(*WR-NKzh}p&+ofVmdKC$Xq13O8*K~&hu7u9AttghC(5u z4~fd&#P~q{e0~aI`$aMrf+m-kuwY1&vg=j^f+6>=7-d`1lFL7EClZP5@t(3ev^v?) z;hw*E;ak<$i>{iC1`-n{J$;ba6hGNL6g&*eZO)cf!M#F92mbn6Re??RpgBj(n16Ta~$7A)`Y z0SygyN|f`9E0|=V-Ve@ilZXgH<|y!5$2k|I>LC=5P(`omVD@$F?7~ZBy?e(H%A${d&iaAR z5(AR&b1K1TwJ;_3%J;X%1z)*;Ix@#3&-zWz6PLy{cXtlTww*iea@%ID^5i%baIFN@ zL)a#?T}>d&V#bPLAmc-6;fucmu)i@-{$e=1vTJm7^f_Q!n=c`OA}(1ksWZS4ri6T@EqjZE3!Gd@ouB3*tO<#U z(Lt%JBn>`JKaov{nI*-tWsDw{KlP_P;8F!p2`Vqj+I)6CwkhPV7`yQ1&Cd)bS9c$V z69TIP&lL;s?D`1VmVADP)DPJ)D0n!qlb;VOueJ*f4lW0T3<&+)YHhZZ9VyuMM4PK` zWHO~O8HzJbIJoSn>su)ejOx&}UQ{df z0Jo%`h(CH%P^@nQE=dHX0i_=}E}*#Bqa?8a25L}^WEvEliOBZtj08}05knu^Yl3k>Me;(84-q#+<6 z0P7;D>ZmD3V{XThTtRh|Bb3M`VZ`$c3ZJ99r}Bkp zq5uq;z~6xw^CWYDa8{A~L|%A?nez}-^AY8GTS3ZYWz@qEq!v-YDX>1IZXrXnn3!}K z7kp?=#L@#4J;aneo|;@efO8`<9*LeBoe0`W3v27mQL@TT;lfZF8xCt-XN6!mr( zA$|S)0&JVD%}n_#M(CPwED5-ZH{SNO$7u7L zi=)WYwBSe3RI+90lVZNH_4(Q`3YfO_Xx?G>d+ywYsTDF%-d^Og6Tn6|`&zb>ev9!% zqDeG`>M;)1pbxOb93O5tt43BM?kk};_sRj*0<4>T0UMEIC#rVM$m53ka4*#)Vb zP%zw5{W*(gxC2w(;s_EZ7M^@ELjxM&h=DUfI4EVB7uof z7YrhAEIvKs*m+Kg0Msk5FwK1(w+^5_PC|4i;HIQmY0`De?>!>UR2nq5l-Giwo12=`8C|!{AD$38p(rH(HrH!qUG8w{6%eSpvbAp=h4O2*#ntjF4sxM4bN5NmQm7iL(48=`TZQS-$(b<|c#xAjWpZA=B+4@J_UWX8 zl61R0&w`mkOL8Hol+}TfXOkguXfOa#L!f32fIF?^_#G}c1y46M9LAi>-Z*73a*kqn z6((HO@;+WJr?oD)Ur{f0O4da8;_;TVV@V6(hATlFXe&7N>v-d-(`MxY0g6lloUua!!a3O!G!zWqhTjG&(WR*J@u%p8z003Zba0vGrVL1*Fm6e@OMu!X2qm`qY4cQokhe|r94cc8`n z2Pi%vI!Sas;1kH;IGBI%hV0$TxIvKe*t#1E!z9Gle)KdIIOLPWK>&z`-sbhh{mh>; ze!yBFOSvY#z2P7=0bLtMVe4v4?R+j(bMyCUy*8#Lga-ZGtUo;G&bbm?U5>Bq&i_b_LrO$E!@4#r_vFk-j4@luAoqV7~yMaMR)6Z`QXO zhpOu8Gz&9{yAGe@@3}hBL|;E@LJpvrA8(A<;&|2i8zh$9uAb`v*8N~2fSomxrcaVo zNA4?v2Cj;J4W2MR*pp?3n@b_^^({_I;Sv)31i7T5Jm_sKVeb%051%{mZ? zFk?ViGfzhL?wj#1YnH1ZFDxNc5rO$)U$2DU<`yQ)qVE$xB>;$DD_Lm z)7eFkQO)RZsQ04)+(8uu>fVGZLA@W>mEjh$G@b!+IVF6OL2&cxBG@-$K!4ZXz0U-_ zm$I9-{Xp((22!HNn7HveK0Y0s;N%xC4&e#!#KoD6H*QGvt(WZobSG5^l`;`hj22}W zv9dlTrU+i(Lwb5*B9Fl>FW`fBFh=DaS!02OWSHqrCK|e|zD! z(K0Z|KU(t=B=ym&SO0A8x-34O;@kdZ)8@^vwDF~%D$4(~0Knyz9#NwNMrK#%Yp2wD z+q|z_D=sTwtPi4t6Qz9X?^gx3xeCWW`ewdr4Aw0M+nqf8QV5?SRb0y`Evqz1qL zW0>gNAhbvrW$ia|*tKoj4WwWl3hHGrTmxz#n*iQ6^WgeFW&y>R;EgN%phcMw<7+S! zovXzA_MwWO%_-VRs5rUcy!u8iU$}rE(0z=5d;-CThCdP*q{L(X|5bG+U_IyE-~W}E zC`)B+L|QCKVnVjkqJ_$qEo)_{>;^-mtQ9I{&yY4+RGMTRl~x9mQueVgQ!}9*=L~bDz0E#cyuI6I5^{Yr%*{=lTs8 z5HGj+(E&(?$w{+MPifef^q^rjg3*`n-%sH0_94On=TAZo+Mn_>`(cf9PGwBi`(NkK zg`EV8g~BMI@SRH3eW)xwy>Ya~YY!(Czu9d#UtPb4^Kd1tb3A)Kc2eDYXUaewlqD#U z`@xFRgmEFg#PUOKqerisxpdc*@lMoCAYd2i5pNu0BQDt*<^Rrb$|)>-o$={P)Gytq zmCI$G0&&r)V@DjwCLcX8D`|p%+jl%dIbPg~kUNWPlEy3FIaK*^_^EzM$-lSp@Pn`x znubJJAfwc8-UR+PrivX`(HZaC+YI|y{t%dF#i+yLM|N&*7fa2|uT)0|BqjNzG$bdb zH2jG@ENTlHHSJ9f?!w22{*xB9WykT2H=3qD`FzPlS}I<*j!#(j`APAq&6};_m*#&N z?g@NxA>jGUNgObG^qh4mhk@WL*0+6X^YcAyLwwKO3<_lWm%weh_>OVM&Yg41%QLMS zwVZxUxtZQoG5g}`);c3r*PrsMepA&mxxs0bdG}|p+R%ha`*n8ayR=@01_nHvR#17+ z3=?AO9%=?Rnmbo%4ZbkjL_98_Ek*Qz7hnu0+IKSbu ziFD9F*}{V`mlDw~{EIaVhz-36AOkO%fN2}AR?%&TMtd~3jKIVou!br-mA+!aFT<$v zr7jewKl;tP;3PfZ&FX1%AvEqmH8{4kR}6Z6@dtwn19;flRk%e=O`hgXrm9EAH)z4t zJrh!A-iIzK726iK^=0=#~%WK5z1=d&K$Xz>UD%hv9SwE8GuG%#>j zqfrv~A&)?pJZJZ;B~v;qj-mI7&lE-k?ck9_)p&aGU6b8CEqlPT;F7a^x2bjkfmc#& z^C$%#ZGa~ch*0EJ+&VOnPC|E5zZmZ09wt;EbC0NPWikqZFjAby9_^j9|CIGZFU>&!9giiSD{P^7LpV)tztLY+K(_JHF#|55kqT}>5~l@bg{dq>`F zCYf~pk5Z4tw}k{L)-Og9B zEELsHWvcfWb^cFllL7br@Ad$_b>iA=2fuGAda*gkHgy+1e0H!%CGaltTA3Vzr=eK@ z%{U(pWdEJ?lCrXVv{f=pNBuq@x$ZqYNICMS@dd*;YvVBYR#$Y0t>+1I7k6N^4dxY5&{B)6@fLbwR-Pzc&$Og)B5 zp%h8~KaesZ4LSo&Oim!gC_zMbl|uv9?=W}nF~uI7007$|cz=wiU9sfMp~xhFjYe2e z@|kH0}5> zi0FuRyArQJ?_RrdWitq_;_chpFpRTqXs0&~u*nA8Kd)KmyeT9DMkE64{i6X54X^^Lc^LI6#(-!P7K`}DM}dO@%ickD4GbofQk;P>VN2gmcd*_f`8L@>VerWl)NY{ zzce)L>^_pBcIt(tiyQ>Egfh5rZxI_?XWE_LR-;mG04JIdYqi* znw&^q&1q9Vj4ivNX{vPPa6aN;4UQJ`U%~Hkh<6;#DEclA%tTT{-k*7Mgh%T`^+U=Q zBX_8~w#}H|Y{|F3v;F5SS?c#Eyk0+Ji+^vldptG4SqF7_PpuW>eT8*KI5XUUS;Z}T%#-?xq`J_&-!ysF~#l>YG<#11}x zUmU_Cy-jNBH+b;xj>lFvltP+K1b_RXqu~4LjVjz78oDgK&*$V>K^GExyO$fzv%P7i zq}Ac8E*?!<3b^>=RQ^+VwhpsqU9xJDQj*CiUeieOc5#7wSKP|CGj+Q}hy#)6NpEA*m0P#=n0I%{yw)W!FIuTZtBHi*__YiP zc@fuC0>p!x7<{VcX&+0=C}upQ5s_PRfM$}m=Y(ETS8F;eGCG0@&{4vOnj#dGS7F0v3uPBh%PoD_(w( zpZ(|TI|gthb3JQfoC?f#edmfYYmhj)C+%;Ud_d88!4!s}6rRn549uEeL+xgOob)`g zC3Nq#Gg3?|#LSDRb}P$ogZRrZ(cN*@DTcteF@eyo$0$`0z38IAT3!#&rrc}r+Q}=_ z=-6=^Xj4>rfYcdT8`ozvxL_Ww4;2p{L9J@fXAzr3J!_5;9(JvXdGKg?H*TmSBDO~6 z(?3(60a{d{;-dx&nB?m4!jln2gmZbsiEU$}v%Y-BD+Ab?#C;2y!q571pf%76^tN5o^Kotx{ic8#S(y!4IdvQUZ4}Vt= z?Iex?;$X?wrLEO?z%(q%2M;K_b=6Omkj+aE7iHI(=ws6|YEcGA*PB|H(Uh%_BVpN2Hz5s2zxy9u)+W*sv2OU)8Pf{AFCE@sSPYz_uX`okYU#_wt~ zapE3ZwO{C_*-gDZS`^g;Pv&&K_`h%C^+A9B)N40x7;t~&Vsn4Oj~w}N^v3$?j0YWe zpJ|Ig!93)o;a``RvYW)jZ2gA?;g(eLrMGS+tZsy_z5hq8o0n1ScJAPD6dJ46u026R zS@ooEYrCsJ|0JEiKU7!i!XN)%r4w0b!UEqJew6Gbv@8;+T7U!gNN(buKYw2AlQG=4 z>HBDzRRv}`5-w=~L@wF9pApMR#BP*JG7=2L&`er&D^3tqQt0FpadAP7i5tT?wcb?h zX5OU+j0Wn9fX2}HD|F9|6D6ChS>z*pLuca|V_LOpm7D8AFYq`h!Es~u-}}nVlzZz| zgrA-evaz+<+kQbqG`{8t`Y~Vn3~GIiPb|QRVYabJ)BJpjt_1}W2%(-Pl)9VEayC?I zOuJ~XV9S=FJ)1b(lR$g@h7LVD_ghc%6#*DAIL?`Kl;e<<;Ju@comF-+cP_soO-OHA zRhpNx7|-4ZZnYz9z5M4N2Rs~d;}VH5@;~@z*lZ0+LR7it5)i&O!HE=%zQB%a7}e>d zu4BZ(gK1ME^51+U9YoOQaD8j-%%#iCoq`ydyaFsA-Eivskt8G(swdl0l-#*^C^#|E zJ0-1k@`P1Iu4$-aaU7F0OKu%-DnE&$4-PdJx|=JZ!eIBAdy5YUQz=GDP|%^U3HDf= z<@zye-7RHC`W7z6`_Ah%Ph0rx4bX5jX`Q_E!`RxEeda4O0zqMB$IO0i&kAmbcJVD$ zlSfl|K~RDm*JWiM3ia_h7SpFV=X`$)C|S+KU?hw>4Z2{(9`esjH@9gUZvIsi>z+9v zG<^U5v2e_Ao!9>U`|`EWT8C25_SL++t>CJVZa>Rxvg`Qs)6CIU=l=uE>r)k*dQE4FB?)Xbau_PMF6dx(5h|=^n@m3h zS9`bws>KV!qN9$EGyikm4W}5yWw#05-hl6ym6hY`tiJd-|fmJlg@fN{#o5MqXwXeouCG_SJ)9PV0--YVP@mlTY}W4KY?~ z9CcHUB=L*aALE|4qdaN$c@Xhfd;7ch7UJd)Op8cOHJO8GGW?k1$NhWujKP^-@FhP_ zbMZsSO)OLF39 zO{Yaws1aZ_f6vTB25%DFm}s^$>~j&x>B|C5H)H^lSKccr2`6_<_w2dG`QNTJ*Ncl! zlEuK*anye$G&i=#j@j})i%;3Mr^RnVp2BFKWJI1%C{#@e0o~9deh|7c#1=Nhrg#!} z2?*(0LBVzcdjj>d0WGwR7Lv(nw?qzG-s4MS;}mud@~#}sz7KSqqiGsbI6k*Ba-)Wy z)mZb&=g8>_I4iPnL+o8ih@$wGVMr|Ka*+BpH9l#=rBAA2F{N{UqQ;O!sTocjh~ZAt3&v82kjKWi_;cz1G}NlDI?c zzaas|T!yAJ{9Iv>hJMoD7R;B3C=)0nyAd&-|B*L4mQa`M=d^L-D87?8vq7ByH*uQ$ z!FrwDU=XkDokPAj&L0JD5x9E$!&Mh%dwF?{;aLEbagq^}7iNK@smEa<(FR!K$jf`q zEkcy5w(BLJk@=i4>u?VpL|GC>7eJUE@>pMEI3fyb@iZ^&U*3sWd%e$YIySW;DUh;Dwtt92 zEeCP&qoMS&C^I`vGjw7D3{gt_>Sf;R-o36U{lzem>6bEx;xVh})`_rg^P8?%b~-<*gVcefIu+nDjZp znqruRXpG02{Ag~q?{cJCc*!P~zrATT2RdKuN&wf@^yqjBy?A`w`CNm36hZY(ybjdp zJw!h<6zD%`?%Z|?+P=Wl%xVjOgpBp#%npnu5p?eT3m1$AeCOVN!13)wB2pgV@ruO+ zP1h(Db+7XVr?Refxs|JBs$>y0&-07>4sRoICuU?%Z`7!-yGGBf#yJtvz15I!UupC| zYd?o+t@@2w)mh84zO;e_5_?#TExwh*tL)q~#YD4vU~I5hSGh`WKh{8i#IbsOTehRIm(1 zG^s@^M~O21!nY#*P{0`5C9fn+O{QTRU>EwE`=K2Rv2TYHLPBxwudvH}0~lTr7>0+J zHbBMLuz-mNz=p`VZ}LZhemR!|Mk;w8dM(pDEb?nSmFVvLH-J$Tv*8a_77ZL?W+tm% z5FR0~jp6d$Dl6NDFju%M42}WBdGsn6gUg{$YFKNWWz4nPilqjU@KEC53u*|$)n=?9 z7zW}ehf+J`U~K-<_$U2J$~=@QY9hKupPB>FN$0KHMW>@dm;Z)8h?XE{AExJrt$Nw^ z{R;!xaE6jIX=+3RA|g2*&~~C6gz$WPHT);_+cTs=@F?3q`*D~*lov>*pmQ+?9A(5? z->{uHs`N57tK#QwxC-0xVy6`&z`car zrvN`K#uRth1)Y5*%3~yV0T3$MxT?T$+f!BCU;UdKl#1B9k&XhXvR?2qL~ueg1txuq zn{(PM%ynp8Zoe(r`|j0Z>py~2MPnz5c8IdO-jT1#To@zlWR@q7Fhg6#>*YUaL$RyR z>3X7{TKo1zOe2cBI~4;PXJ?l7a&$$wl#zLY85CZB=_>j3{D>JB#(JIPC?JhM0pVlpnro_l+o|Qol|TQ} z?e+LyVCFfS=v!h3uHAg+!GkQnk)ZZTAo@6)FCL>eeLV#4=>V-R?qqG*`c zJTjvVZ9zUY-piqqmZWAzg^%1|GgVDl^53B1<^g_m6zISDK0aRHg~kU(7&`{-GPi5E z?F3t4%%DV%Q&xF_S^G`y{@RmR3Fs@}Dkm)^@v3mMM9o8WDb*$sJgd-WGxz(`~sBzduBIW9Wdij7@$%NjW;W>|bc0DA16 z@f9+}!Nnz%!`Y`|qQPtKL>Xm!bL~b6Z!!FVC*&6ed!|n|pq*!V4Fe^`p8xTGL#s1< zv?=1QK6ntR*uy*!gIsqT*3fnQqFkSGv5M0{pm;{rD30b_%HGCZ9#0n6dl2Z>vuD?C zts{rDr`Vzy)sfDf*tK)HMOX)jl~~LhbiVws=g=ix$x-=TSLP9{5UlF2V1mstP;U@~ zR{;JC93GOpQOH`q-Pd1<@CIedtdxTzpRKweYy?*mL9y%*k*z7DL+loSJRR;%@z#`7 zcyvTdY`0+6yOM=ODTe-<@SlGmm@_rjJ$s${?cGd&u*^?KTu%|J$jV-z(6|w&T21G$ z;GKds@X#4Ok+_RPA6rK*8tpaU8q3#EKz={9De`))5o{RM{Mn%5>1z;jwD|ewS8h`` ztK%-ZV~5@4hIFPz>1K&JE5)h@e?xi>)N;uC8+|kHyAp6@W>BmQVGT-B=Zt*j@%ZND zT>U&#C%<$}5B1yX7_bQgCQj0T|tyNQ64R_3hIWCfE*y00Grz^ytg2Dq<5C-#*b+)+6$( zPP^3h;PvfzW3_7E`EzPe&Ew%hUdP0XEaWg1(MtHe)w-_)#d-0ofN zp5IgLnrAj8)-FWosT$OV^m_41bS~{R!;~n_qm^4UG z_nmM$tasG}bAv=SE!&jTPl@y>7 z04MQd+&7%^l*e#NlIuKqj&=gJFDzxHi*z+a(5=_p*Wd_^J)6${-+sBW;3zz|2XRj& zKys~~9EUaZu;Y|;`CH7T5H8o^i)?GeUeb#N`r=HJRS&*h-cf_ zVO++{r4J7@ckp}Xkt6;%t=C=s_9HHp*glG%Boskg(u`xE!CI<%MF19nt-P~S)kb7* z_$+H7o2}d5iDD5D4i=;JAHu7U^@4g2LH(_pzJVo?Fg)e82~?PNYDP11p#cje)1uma zAKHZfPyJiBK5`8T@s`J*+36hl9Y}=}OCBpFfV5-4@WQs7h*HiWG(Vm{Wel15(7-O2 zTJ3hvQV=8M#gHx10TrW|n+6=QdT@7~jh32~rnsK_rd^q;#k8NI=ZO}byL7Q}aY-$F zH*n6yZG7#x;3LP60z4jFT%$%QxL@;7nA!-{6CozE&Z-0O6VF=y|LRwtrhJP$PJ`lW zQ)18n8DC&slPcteEwkXbMJVKq$v~A1YmwN+4HY8^M{~CwM62N*`t#L4ZU;ciE#ivF z^w6_B<5OB;|5pnTxU1s|ufK@1*sKQt=!Q8oA~uzYbVBF~Nv!7#_1uH2rIvow$06q8 z+IKtA^eCE|8ZwhqHD6L1Pro>!dfii-*6(T7$fEn3H)W}MVnIg3D30-1q!P27ln>wx zO(jatM2W=>`6Q<8*A9+h?J9J$2(I&P-gLGOC%u{8)Byy&R%7URE8h^q((dRgruKL= z%$_9P_M%BS&hCn*d0wt-;_v>#P8qmjHkn65C5i}mwWUHrH|M>Df(J6y$9`h#lK&_D z)bo4&^5s)X{M;tua1ZfNhV+p^P*UTx$aZ~}F+W|%5aW+$!cI^jbQiS>rIn}_xZWhN zsSi>?QsNU2dp#q$w3bh-KE<&0ylsrVwxH=04}J`%W$h3i__~q5_ zLt#xpRU&H4e>Xtr;vP2Xu%?Cf~~DkZVG@B%rModbPJTn z;7oUdDtOh(mAw?gEsOw-P(YQC2m9h85@gZwmAG4ck~M(JW2o5Lei||R!m9YvUm7(r zP}w5=M;cha9X*4Y;i1hD*+l7!WXsMvectOO%(K9Os>ufeD-6q?@YiuN2cP)J#H<^Y_OPRZDx7 zUneUFs+QG+7=n3h{UlT4SgYVba(9MqEOrdc?AybPF?TTQ)leoL1ufHDt|sn^*$PQ~ z!4b+E5h(GAnigp6*-=YFd_JZINL3S8w=Fv;t1x901b`$Jogih%u;vW4!+W^$4A9#E zTc{urme3-Qwdhc9`&K*D4QA~i`kNP2@HamVH=D`>6BH!U25b@?1NGMu4#fbO)p9#w zTs#4D5$(VwJG|F7e_KZq217Msever!vIEBvaU=R08EpZN;bgEC_mG7nBkz_;jV&1s zc#DU@O`}~C&89=t=HiK5jqubHUTaAi8Ffc^oMKwbaCf&3be}mzErmM3aBIcpC$BM< zQ6d}I6E9_QeQAO9iBC)%%T7j0T(H9PU5;5ns=Nr1vemGUNhD;nDp7Ue7+|myVczXr zu9UzE5Jx`amRq^St*^%n>jIP;Lp6&@o;yCuzzWB}vL&6mba~<5)YwxBf+kg?0XW+cXA`LOn(Uu>hnBTf< z-We~>tsR|E?uppKz*#x)_`4ywWG6{aXiaHPF)b9)F7ZC|`o@%V)p&8@_G2jzHO{7C z2^=kgsLr9jTr9S}yOz4k{oJj}^>k8Ogba;Bf-BgrE8=0sV+?gBAC&F=50gABWO2j~G_!?sp)}{xXEb3W~I$l?8l!vzf+9o?TnPwnFdV zWu(T@lu2Xmpkv_F#XLJZHunhDLjr;-M2~cO>S}TV*fN^3T$MRHiiH~HJ#Zs(mY)Ct ztlrb2J6$7IXj}5!AEuC{yVNGq6_m|$e9Ca7pYm212!=Y@v44Lj z(f9y7I5>`_?vAth9_N^;SOa{+NjGp;yop%zu#CDiva{X&?g%|J-Xp#NS?SrF$e zFG%KDIZfgtErSwBICu*#&>Z3sXwbX2>|sTARbQE$)}d3U^5=H>F|o1kY-MF0L)O3$ zg3MR{)8WCn3e z^96QYBrY4ESIC1ONCo1DE`Gi!YUL!*z@JZBTkMJDtHH6#2d|GMRInW((y!Ym-p7(h z=QX(b_Rv(KHllB9gQm4KT8@cR%F2ZJqnZo5p14Cu76lIzvRD4c-vrQQkIPFs2vPE! z(N{Z=1eaCz$ID<7bStYH_OD(S6;FLi*3aXRt@v8Ma)o(!*@KK90viPBHhak4is8S! z7EKZan8@YUjXL(=4kt4pB~-l zlGf<^*ZRLGkO$#N!KkNeRnT%nHn>q)z=h-xswa^GIK5IxFyF=Yca4$He~_Y|Jns&r zD)SSRTqWtA_UWFK&6oRkHr4YT$q6k)7L9jIJBEQm{C{h!!1h7hbI`Aey$OY~R0c0s z4JX$!(AA!zaHo!zqM9Q(o0d7xLgw>vpE{nLtcLzb&_A&(?WdWR`;bVA&Yy!NbF_;t z2L&Zq%vaKnIro`S1)NGWghN27C1Xx&Um@Z+ShquxZ0)+#%gPsdInX)kD&Ye10#ZQjL4vTIW-6-sudl0fj z{YLhsXFUBVr&A}}f8A+x-@5bKcap8G>+;h9 z8YP!%7^sF#5eXxgBbttnhkeq@feRC;Q)Rm}N+O!my(}%~&56U88;^L|hLPZE#QRhV zxVW#PvQj8?KCf44T=2ylyv9Z4izKP7Bv>-He|5LB7qKr^p+?N(S($S1Fp@j>c=TjP z`k8WgdJ;4Xz&g>cMk{e&Qpbt4${}tu0eui_#ps$QO@Cydr3NcO}K5+YwA?-;E*&eHVf!xw$WX`m(Hl9 zPbc}Ji99|r1%njcCT$1S@z8qF9N9UzFN@;ZY*!}U{8OIXg|H{|cJs9h-qLb+kk2;j z=rKG*DqF!B#ME^Ca8;pfXk329Orn5PzJdjIX3HMUsAB1}ZHzm&M*9VS8Cpgl!qq*! zq(+1;F9;o*`II3@k=j!Jik_Q-Lmkn>|Gv^wzVhcKOVr6y;@3e5zXeFi&*m$K{8Mm> z-Ot@oj!L(LYNh#8mbW&ZZ|mB>W1E)3Fk_#d%hBWtdf3ObuOfe_8g~0=~2X-L{bKK zH{lL(z#Z^J`Y%L2bqmG^VFX9)yUPA?+bMvod+&`#e2nmH2JAL~I6st&?|L#lKqK4> z0%JFIprA%^pC#@D^3MOL(YET~(@*EJ3y(>ht3UxBI0y)LPKnRwvbBxV;HNvdw$(Pv zv26M>K{ls|b(m9c8!xYa78gs)Gc+eB=Yg7o4`hqHH@1GedwI#KK=FLQr9*3^wuVM{ zp#;YfA`KR2SJJNR+s1h>n(OgkIG9UzfbmxF649Mp8a9RWw_tELnV$mO=+R1@oaoy8 z*0lpUW|it>eIXt3krGb{=)Y|gZ7mdHbwCv>WcB#TwYtxss-}6oZ}~pO$I|o_(Yysi<7GwZvt;C zb&NgxPR?z3MWhtAR$7#d0z)hWH%AML``7F{1ShyW1SR*s-le)RqL$x4>^i_Awhq(% zMdOR(Pjz*54g?}PvEmQ%b6dz+`|Bbz5@K5W=ZCs2l6vPRQ z>Rkq&N3H*WRIKIl-;Or^1m5fw?tmYY){Gf5a_-#e4Db^3Lqtt(XP2~2bZx_GfzLgX z85oplQBZ2Hz1P@?n$rHm5uis&Q^-$*mp42DZ0CA`!WqVp0d!8GNX_?;i#J&S8_KsF zyJSh#tm3}BmS=R~#3&Qq`@fbx^lXdz%UxLyAOkz3fj|T*sM$--uk>^<(BwaL#s`=! zp*|`5ysRuigWp=|>s(**VR;eUt+Y9k7ZuN4LN|A!(SAnEWXascYAAIj1=Rd}hC-#^ z$JrWuSbgx}s+6Y3=-6aC?|F>5v2of?n6|dJf0L4mbw$kQ!l@mC9X|5fp79$CDB@p( z!dvbi*AhC6C7fxp^GS9i(rT!=x^EZ ze`CKU^NcOV5!vIuaKIVoPc&J8vz~PCk%w$$rbq?XI!Xj)H}j}WOL)O@MiDPorU=An z>h}I62Z``HZ8;KXTjox9xH4)kn^wuqTL98pNZrmySFnLff) zt?Ce&qNhFpB&p}JCs`qcmRywjc8Ml(r2H3ItkFiNINl%U0fBf4NkxTLW#ZiDGsoo4fFA z6Fkby(8RtSiG&_SEa*#mFG=8I-~HocYF!@cxbfp<#i)$76%@2YQQ=W^yQ>6o`mAim z>ZRIjSw*wbtEzDYzm#?WLEB80=fFvArB^AQJu*`R(i#5C$76(sbaW^(bi{89%9rLY zODYGfHRJd-EPPY+WwMHf_dbZtjUR6g+cPenC2vKvUG^X#p<9x{W@G}045QE=tY+lr zIY|x|^*lt3s8)2>j^g|HZkNk>5^B6VdQ(DME^{ry0M!+RBrXK9iGvXtzNJDkG!&V} z@J^)u%Q@Y6BS)zF#Gb+_(yTSijFpt5CbO@8n5u^GtNL#C_f9kj>!0r$D1Tb;hNJ`3B5fHyN!KrF;*@Ph z$;(F#!W3HOM?CC76{QXrJ$}&DQ~v&IdI+b;6VpJCqUh;Nq~-G9=z6vQ#F{O>qYi`c zUtW`=R07zSVMfU2pTCqUh-!h86J^=c{Kbpa80i1s$5%JWwX%(A-u29U4{8kYHGJ@3 z<6t)})hz+7wR-D9D1orI%M}ghDw$nz;m~WAi`5A;bX5DffBu~cXjS$j+aSx4JKltpjzm3**=ht)2k$^Rdvji$Aq66r2 zW}{L75fdV8HwRw`yyc^Q6{|$PjDeLBZu)_=yOa#Azt@EM&nKH;^cj9{rF=SNuv_qJ z5U8n{*|w7>7lnik!I`ZtX(t+qjqlbI;pjNDQUG2F*Cz@yya#W$RtmP=!Z{Dt*&Y<+ zpigBJ?gfXi1JhlE?57KhN=r(t$RM)aT5t?!CvDVn@(9;Xp`a_TT^wJ*!D8YndQ<*h zKE>nRyk*--Y-5GC8e?+sZsmDms0|LFv=ly+rZYQB%Rvaow98pko5aODBr6!nE`!)g z4rB7yP@5>U4}*;D4uDGZS)xH>flz`oxAHaPYdcc>BJ_NOaM6l zmY4d!Un=k2Q+1BPbDoGo_fO?6^6swzwat45|3SjZ=2FHjrRzfDJ@Irg3FEV>kiBvW!>O04PH5DZkU{v8jqD~gQgY# zNC(d?(`S3nP4!Cjr4#|srStKMzIFGm|EnRq3~85m&e;BI6?zTkha)4c^}=0`Tu2;1M@xuMV5R~I`s=HK{#PjE zsN0`eu4(!#QUZE?XXx?YDWqmEb^T2OnWS|-qQ=iv-nUOg^MzFVKZyC6Si2oM^v9>K zU4HUJCNfZG!=PQCj0P@D<#^8>!N$VIMV{Fa*3kh#LTSE|F|G8%b4p7;Y<<+YR3aV4 zGEqJ`a}agAnUvGPcF_}`Qa*+C4eK@3r%V+9U`UNPh-L!Y>8nHDjE|oTrz87n5&mEB z^|~A|S+4J9M?!Xb#I; z-pGCmCD*9?e8xP2(+U*kAe0vbKw((3>YuCCZJ0Umz;8`2O5Y1OwT{lAT`1~Ok+#;; zyOGwbbomswe*byASeG!ru|*fRu=W(F2(Y`6y2VO$`s2nh>C7Yf(;Yop2R_pONz~hv z6x4g%;sW}Bix#Lo*q3RahwQckou=u&~j86f7 z1<{O0YP{FA50}%asNrZ}2V{(~!+Hm*|egEg&Rp zDtm&6t~_IG>9Wjzlp*=F0!WcHHb7h7PgTLNJkPjkzXNj@`dD);uV|MTk1YKdnZ_2VOm@kXm$r|f=rvKoKi3O(nS{lhinDlu*(2> z2}~_dbf-@8<4bhL5ch2*8bzbB6wm+jD?Qqjnky77jyu{~xxQ%TWLyUVCng;gttp2~ zk8i~>vV)Q;!NVFAaOh7SJ?|l86)Q6CSq!J2G+bR%vzaV+uY~+i*%r7}stRk#!S5n= z+K9{)|iX2?E#=JPcjdpJVPu!LS-l!9QVH(7ymFkEcU_wJRZ0skQ{w+pt_TYIB@5~JZLug1_#kuDs0h@w~; ze-NcYyHLnR)BjuR%25rIoKWshcS+g-Q~-2ac7ryQMEs=2P?XRXxFpdOfF$WK{M|zk zrj<1v01pp}?(KXY>B)6aQGyejWAk!6$qPbd5p*WO6;|ARlY^ z@bndwC*^ZE#QhlA!YtxB|AyxfDSdE+955ETmA#YQx zfXfUHoW|u~T~#4A*zV5c7Fy3B8r?6zR$xW%%nz>9rtRRc3cyX6d-3~>LKd*GB|{w? z0Cz&yJ#qYR5KTO`@{DDq3x36y8)otR>RRw> + + + + + +Ensemble + + + +start + + + + + +Start + + + +fork + + + +Fan Out + + + +start->fork + + + + + +exit + + + + + +Exit + + + +opus + +Opus + + + +fork->opus + + + + + +gemini + +Gemini + + + +fork->gemini + + + + + +codex + +Codex + + + +fork->codex + + + + + +mercury + +Mercury + + + +fork->mercury + + + + + +merge + + + +Merge + + + +opus->merge + + + + + +gemini->merge + + + + + +codex->merge + + + + + +mercury->merge + + + + + +synth + +Synthesize + + + +merge->synth + + + + + +synth->exit + + + + +