From 4bf5ccaa6cd4f39ff67a669594608a02752659be Mon Sep 17 00:00:00 2001 From: Gasper Zupan Date: Tue, 5 Dec 2023 14:32:10 +0100 Subject: [PATCH 1/4] add monthly dev update blogpost --- ...onthly-development-update-november-2023.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 content/foundation/posts/monthly-development-update-november-2023.md diff --git a/content/foundation/posts/monthly-development-update-november-2023.md b/content/foundation/posts/monthly-development-update-november-2023.md new file mode 100644 index 00000000..63fc63ec --- /dev/null +++ b/content/foundation/posts/monthly-development-update-november-2023.md @@ -0,0 +1,157 @@ ++++ +banner = "/uploads/dev-update-november.png" +categories = [ "Development updates" ] +date = 2023-12-05T00:15:00.000Z +description = "November was the month that set the final stage for the upcoming Price Oracle, bringing with it massive security and pricing benefits." +references_and_footnotes = [ ] +title = "Monthly Development Update – November 2023" +_template = "post" ++++ + +November was the month that set the final stage for the upcoming [Price Oracle](https://blog.ethswarm.org/foundation/2023/oracle-overview/), bringing with it massive security and pricing benefits. In the coming weeks, [erasure coding](https://blog.ethswarm.org/foundation/2023/erasure-coding-supercharges-swarm/) is coming to testnet, significantly increasing network reliability. The Research Track is also in the process of finishing writing the specifications for the Bee client. + +The November release of Bee ([v.1.17.6](https://github.com/ethersphere/bee/releases/tag/v1.17.6)) tackled many hardening issues, such as connectivity issues, additional chunk validation and retrieval multiplexing. + +Bee JS now supports unlimited upload size and has added ‘Utils’ functions to reverse-calculate depth and amount based on GBs and days. Numerous improvements have also been added throughout the entire JS Track’s stack. + +The Fair Data Protocol team has been hard at work to complete the merging of the [Fairdrive Web App](https://app.fairdrive.dev.fairdatasociety.org/) development with the [main](https://app.fairdrive.fairdatasociety.org/) version. Beta testing for Faidrive is still open and [the signup page](https://join.fairdrive.io/) is now way sleeker and more intuitive. + +Swarm’s docs are richer with a [new page](https://docs.ethswarm.org/docs/bee/working-with-bee/swarm-cli/) on ‘swarm-cli’ and troubleshooting. + +And to wrap it all up, we have a host of exciting events in the pipeline: from [Swarm 2.0](https://blog.ethswarm.org/foundation/2023/swarm-2.0/) to [Swarm Workshops on permissionless publishing](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/) and setting up a [private Swarm Gateway](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/). + + +## Tracks + +### Bee Track +* Release 1.17.6, with many hardening issues being tackled. Highlights of the release: + * The focus has been mostly on improving connectivity of nodes across the network and bringing performance improvements to chunk caching operations. + * Addition of a new DB command that will perform a chunk validation of the chunkstore, similar to the optional step in the compaction command. + * The retrieval protocol now has a similar multiplexing capability, where multiple parallel requests are fired from a forwarder peer that can directly access the neighbourhood of a chunk. +* Addition of QUIC transfer protocol l investigated and implemented, aiming to tackle the connectivity issues. The team is testing it, but it’s still too soon to come to conclusions. +* Enhancing internal observability of the network with more dashboards. +* Writing up the specs on the implementation side to provide clarity of the network. + + +### Research Track +* SPECS template of sections to be updated is underway for the end of the year to give full clarity of the system +* Ph4 and the Oracle are being released 48 hours later than initially communicated due to a testing environment change. This release will bring massive security and pricing benefits to the network +* Erasure codes is nearing its debut onto the testnet + + +### JS Track +#### Bee-JS +* Adds global batches endpoint +* Upload size is now unlimited +* Re-adds standardised BeeResponseError +* Adds Utils functions to reverse-calculate depth and amount based on gigabytes and days + +#### Swarm-CLI +* Upgrades to latest Bee-JS for fixes +* Adds new manifest commands (create, add, remove, sync, merge) + +#### Comment system +* Adds reply mechanism +* Adds Moderation mechanism (not censorship) +* Can be embedded anywhere + +#### Donation component +* Adds automated top-up support +* Adds manual donation support +* Can be embedded anywhere + +#### Gateway Proxy +* Adds HOMEPAGE configuration to set default homepage to a Swarm hash +* Adds REMAP configuration to set arbitrary human-friendly names to Swarm hashes +* Makes the ALLOWLIST more secure by fixing a few issues that allowed bypassing it + +### Ecosystem + +#### Fair Data Protocol +##### [Fairdrive Web App](https://app.fairdrive.dev.fairdatasociety.org/) +* Development version’s merge to [main](https://app.fairdrive.fairdatasociety.org/) is complete. +* [Node docker file update](https://github.com/fairDataSociety/fairdrive-theapp/pull/562) +* Strong redesign for the Join page, please visit [join.fairdrive.io](https://join.fairdrive.io/) to contribute to Fairdrive Beta as a Beta Tester. + +##### [fdp-storage](https://github.com/fairDataSociety/fdp-storage/) +* [Refactoring](https://github.com/fairDataSociety/fdp-storage/pull/288) by removing deprecated methods and interfaces related to account management. + + +##### [FaVe](https://github.com/fairDataSociety/FaVe) +* [v0.1.9](https://github.com/fairDataSociety/FaVe/releases/tag/v0.1.9) is a new release, with [updated search layer](https://github.com/fairDataSociety/FaVe/pull/44). + +##### [Fdp-play](https://github.com/fairDataSociety/fdp-play) +* [Geth and hardhat feat](https://github.com/fairDataSociety/fdp-play/pull/105) at [v3.0.0](https://github.com/fairDataSociety/fdp-play/releases/v3.0.0) release +* Other than this breaking change, there are [new contract addresses for phase 4 redistribution](https://github.com/fairDataSociety/fdp-play/pull/102), [new bee version](https://github.com/fairDataSociety/fdp-play/pull/97), support. + +##### [Fdp-contracts](https://github.com/fairDataSociety/fdp-contracts) +* [New release](https://github.com/fairDataSociety/fdp-contracts/releases/tag/fdp-contracts-js-lib-v3.9.0): contains ‘reverse-registrar’. + +##### [FIPs](https://github.com/fairDataSociety/FIPs) +* [Cracking the case of unlimited files & directories](https://github.com/fairDataSociety/FIPs/pull/75/files?short_path=cf7945c#diff-cf7945c7254a0501e47ffc2727dfbdcb4b07b9c14f7fdab423e52b1c40c44b01) + + +### DevOps +* Deployed 1.17.6 [Bee](https://github.com/ethersphere/bee) to testnet and mainnet. +* Released multiple versions of [Beekeeper](https://github.com/ethersphere/beekeeper) (latest 0.14.2). + + +### DevRel +#### Docs update + +* A [page](https://docs.ethswarm.org/docs/bee/working-with-bee/swarm-cli) on `swarm-cli` has been added to the docs and swarm-cli commands have also been added as alternatives to the http Bee api commands on several [pages](https://docs.ethswarm.org/docs/develop/access-the-swarm/buy-a-stamp-batch). +* A new [troubleshooting](https://docs.ethswarm.org/docs/bee/working-with-bee/troubleshooting) page has been added and is still under active development. +* Clarification has been added to [the section on the freezing penalty](https://docs.ethswarm.org/docs/learn/technology/incentives#penalties) for nodes whose hashes don’t match in the redistribution game. + + +#### Apps + +##### Etherjot +* [New UI](https://github.com/ethersphere/etherjot-web) +* Adds comment system and donation component extensions +* Updates CLI import to work with new engine +* CLI import can be further imported in web UI +* Adds asset picker in web UI +* Adds layout customisation in web UI +* Fixes tons of minor issues +* Adds import/export feature + +##### Doctor Bee +* A TUI to generate health report for a bee node +* First version of Doctor Bee released – [https://github.com/rampall/doctor-bee](https://github.com/rampall/doctor-bee) +* Includes UI/UX improvements based on feedback from the community + + +#### Content +* [Erasure Coding Supercharges Swarm](https://blog.ethswarm.org/foundation/2023/erasure-coding-supercharges-swarm/) +* [Swarm Workshops: Permissionless Publishing](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/) +* [State of the Network: October](https://blog.ethswarm.org/foundation/2023/state-of-the-network-october/) +* [Swarm 2.0 - #generate freedom](https://blog.ethswarm.org/foundation/2023/swarm-2.0/) + +### People & Culture team: +* Join the team creating the future of decentralised storage and communication. The Swarm Foundation currently has multiple open positions. We are hiring a [Software Engineer (Go, blockchain)](https://www.ethswarm.org/jobs/Software_Engineer_go_blockchain), [Senior Software Engineer (Go, blockchain](https://www.ethswarm.org/jobs/senior-software-engineer-go)) and a [QA Engineer (Go, blockchain).](https://www.ethswarm.org/jobs/senior-software-engineer-go) +* Find out more on our career page [https://www.ethswarm.org/jobs](https://www.ethswarm.org/jobs) or simply drop us a message: talent@ethswarm.org! + + + +#### Events: +##### Swarm Community Call – November 2023 +* The Swarm Community Call, our main monthly online event, was held on 30 November. You can read a recap blog post about it [here](https://blog.ethswarm.org/foundation/2023/swarm-community-call-30-november-recap/). + + + +#### Upcoming events + +##### Workshop: [Decentralise Earth Observation! ](https://blog.ethswarm.org/foundation/2023/decentralize-earth-observation/) +* [Decentralise Earth Observation! ](https://blog.ethswarm.org/foundation/2023/decentralize-earth-observation/)European Space Agency Phi-lab and Web3 technologies workshop + +##### Workshop: [“Decentralise Your Blog](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/): A Guide to Censorship-Resistant Blogging +* **6 December** on [Discord](https://discord.com/channels/799027393297514537/966664597186699304): a workshop [“Decentralise Your Blog](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/): A Guide to Censorship-Resistant Blogging”. Learn to publish blogs on Swarm that are resistant to censorship and control. No command line knowledge needed. [Add to Calendar](https://www.addevent.com/event/sU19334495) + + +##### **Workshop: Hosting on Swarm:** [Setting Up a Private Swarm Gateway](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/)** +* **13 December** on [Discord](https://discord.com/channels/799027393297514537/966664597186699304): a workshop “Hosting on Swarm: **[Setting Up a Private Swarm Gateway”](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/)**. Learn to set up a private Swarm gateway to enhance the security and performance of your decentralised applications (dApps), platforms or web pages. [Add to Calendar](https://www.addevent.com/event/Gr19334590) + + +##### **Swarm 2.0 - annual winter solstice** +* **21 December**: December’s Community Call will not be happening on Discord, as the Swarm Foundation is instead throwing its annual winter solstice event – **[join us for the launch of the Swarm 2.0 era!](https://blog.ethswarm.org/foundation/2023/swarm-2.0/)** #GenerateFreedom [Mark your calendar](https://www.addevent.com/event/lf19253018)! \ No newline at end of file From 6598c966297210871eb3a1488266feda35253c1a Mon Sep 17 00:00:00 2001 From: Gasper Zupan Date: Tue, 5 Dec 2023 14:33:00 +0100 Subject: [PATCH 2/4] add dev update header img --- static/uploads/dev-update-november.png | Bin 0 -> 60974 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/uploads/dev-update-november.png diff --git a/static/uploads/dev-update-november.png b/static/uploads/dev-update-november.png new file mode 100644 index 0000000000000000000000000000000000000000..c65edf6a42249874c606ba73c267e6aba056b83e GIT binary patch literal 60974 zcmeFZc{El1_XmDV386BTA<|Q1$`nPoDvhRwd%1>`bV->qmGM$4D)eNQDTUmNxJ2d# zkvU^z%8)5j=4<-xbE)U^_iwG=AHTJ})_T^X>)dnR!+!7m+OPfE$6sIfBs(iVD}o^G zr%xR}k08uM1Ytb1c@umx)cF1w{Ex-{6y6a**tpRD=#Z%AJK#e)$MYwTBI&h)!|)GA zOHCb31j!6yTfV}CAY&g-AJ@Eio9A9hE$<6GY{B1k=vom9{uX6JE( zS|08d8YsAA$AV-fDUrHn>bing#|HxCo_qA)`AhjD0`>Dr4UObew5UfeS7op8&3Du@MXmnJl)c|K~a9GI4&$`N>w z7{zD!*-t|j?T0-o$@KiR8^~Pm>QGL40yDUOkd5T6!BsH-LSjowJxdsA-jEx1>eHZKCqlEfCEmMyn932NBqnqRwUk?5sQq{)Md? z#CoU8lZY-f^W<|%P)|Kk=2NCt5UY1GFy<^$FI5wZou4@TG}i6sO?o2X`W)HKYQe(I z!%3b_`y^`Tg(nL4cskm-8Wos(Su3H>xc}|UwoZST37&^y?YMX0iE~{IEJZkNCaL_x ziPjfq7|MN^kfy{=iuFXr?WiM5x9EwHFbpZ$FeoF5)*-tjk&$hZiWA?Q{P0W|LL?T0 zLr+-zr>M4*%_(t0s^M?PRBSzWB7E6oOI`kLN-458_lmPYdttHa zGs;MHTX^H-`$hr}=F7D^IKLrgB~pAL?R(o}hG=6X-hy?k$dAD0&X`_G6R%LAuvVT$ zmxU?Z50+9*P9@TXBQC3WOMK7oBP6ex>b7jpx&t*5L|+9G@yIrGXqwkD*M}CcpV0id z+4Qxyr)#Aug*86Hnj%3us4^={ia$boCZlnaTm9tjGX{M}O^f@j@7C8pz@`9Nir;uuCF+g`+Swk$ixm zA{=HgC#@?PUU&A|6&zjv+3M7qqR#7M0gJDtswKqtq4(`Kd`eB>&vEZIY*&?!-B(xq z9I4nvk$CmvZn7lB`oj+u%!x=WfrtAE>fdgqKJ>i!1ST#LjgyWuh`~A}rv9pyAl{TG zUAl(TbU^n~#Imv;_VUo1yy^FYg*SxaKUSwcdW3hbOCM}}dKC_2%vGGJNpmmP*b=uY72e}v9R-U`mXV!i7-_0)aTuL_opb802ou(7ABQ-3bCWjbE}p56zR z^6Yp|LC*H&C~OUv=41?~x+PBYGYdM|V>9P+Vs}Xr+vG?_b!7SoAxi3OwM2yy?eU-P zH=ACcrrLU5wAnggB+P#}<~~QD7(%EeTgOFUnPZ>Vb8gWWqojJ)KKDG#E_}oWr@0Be zYy8KVbIyTq*GPZ7Gx(?GoVx6AJd>;f0XrCh4OT46S~O>cl%hZG|)+A zYtrm8D@^KSZ)xwUnpneyy5~B`wad5x*pEMEirE=~UF_32TfY+>yH&zaVt$UDgV8&W zOQLaLsR1&C=AT{T*)CG+`3+b$CVXWdVJZtQOh z=fZ4@z?N}QMlwHI3Z^soUBU6x!J!U~BZ0rPl0!$Ph(|}}VqkaioK#CVomQsxVxhI` z3q1A+fk&S^b9^yS#~=dBWP#HhUHRNmmH&2c9&zv4u$LJV%hpDV-z6LLys56&&CNw~ zj3?UXU)p)~{b=Gb7V?sRR$tlI|16M|<-8{8zDL5bh~ zwrlxmw_fhr53x(rb;4b0{&dX7AcOIda<%UEmsnpobz;5|Dq zlQ!{72L|&ZD7A3LknYYl@XZr1MxsN+`M`0oQBn(GHPq>3GaRPFIFr9?EKXT(_Sl`q zaiwof*>`Yr{DGh48jIJd-%4$4SYFT}Nr^!L_CJ4BHSZ!FdV^HFXupz=$J&17yosa3 z=Op}gZ2mdhNx*)I#MU37znm)L)aRnIjnUhwhcorcO-hq*_anc$!KIem`J@A0!;-$2 zk@!6`=N#14aF~_|>~lCCS)a+h9t0l62S{H3i@|xvxE1XY)A`t@hlG1?wyE2#eK1QR zh0nZn)7mPO`?L=yk6=`f3pZoB2OtbmJ}0)@&9*~VjQ*S3v2UB>CNdaH6pEaW2thEwkcJaqTyi55 zT@*+uaIUhA(@rFVfA)<8rz}U`vps)mMW8Wxb&`v{GcTrA``EY0nPnyGwX5BF-gATA zSELn@`is;QtBd3V0vl(Vh?6H-!B%EJ!fPd(Nx1oFDA|8! zI`%C(*W*y<>X#tpftD$!83qQV297ZrWlWd0P!h^nt#~K_1UV8B=Z|mhE~v=2B-D_7 zBe{@p%)PX))9!uDN=YtJ{2xv%c(@Lf{AhPA-jnkvryjv1&Yb%y0Y+Y9j{7P>;Hj6A zBiW7_KgY?$g~vz6?ugM=eV`YKm1U>1_c>TFn7eJ;hZBf^WSr_=+kZ;tUA+&`AtqX)N^_nt}Jyq-;iAM^ghp$6#mi$jiilVPiiIqFL>dDDPET&?c!ID z+$9{NjnMv0;3*74@ z#ig0bX=w6BU`rRPCBP_s4K@?mdVWd^>*gAKXwscszEtT)-}A=ewBFt~tM*mLZh$|L z4ON%OvYju^9Pwe&zeM1{^Zf^ND!-6LN6m3+E(?!EA{w?MgN9*lUdfJ`NZvl*9^4!Q z8o!!Xsh30-gg`(4CNfk!`TvU-o4^&H3Y9r5&oeh&ZJ#XOKEj7EW zJ9wVXUWe3j6uyplUhHq)u=M$KXK^}8Kw-egSyf?=TC(qU!xjZG_8C)K+*4IK(s4PZ`}A@o@hAmL zGu@BOdeK;Y5doa*tD4b*8VT0DRG%7&0A1v{Lu>K0(C~QO>UG-|HM3KDU@naBGsp$2 zV@=|)o*|Fa;j$o}{y4nW*GO!zH-SgX5_it2*xj-tENIy){bP4qz~tQb?wwIs7<0%m zLG7Dqg8D;=FNS(=sB!e+E-4=v6I8$ExwHQvUJKtuXl@tynLOt1bseV}7=aDZvcZ)} z&)XCPMq{}HAqo;r8c%BB(~Q(JsP$Kw+F>LmLLrqoC@GltYO z#2zN__@TH&BzNYV=9wD?)fv0q7@KWsv%tM4QLL@{o%mG_#S(AAp=icC(=aBtFZz%U zfAv&js*GNh+s}V`nrE*8E+0<#@oaeN>la2R94)25S$)v(#~-ZE&D*XhJ(IMzVl##H z5}b~kH}M7LK6tHh6arMRdtQ_+x*gb2Gyo7k{%-G`+c)<1qXCotQpQ};tI_b9gQWOl z)e;f0c&%+H?y5NAc~L*k(2O^zbLn%#)dzKl-Vl{wSJiXy2R$a80Nq`|X$nMO_2b&f zzc(5GJ_U=4NlGIvzu_6B7t+V9kPqCQdx++NXBgarQs7^i5F=q^s zLK7fsXpeG>8bb{P`*CR)hD9tA5oVk_r#8&2;UTZ)K4WE_>+kPBGim0%hYo2=4q|P; zYOP@p?n?n+n!9!k_77%|bwqKZZ;KqMB7Z%HJWiNRch}3GiRL7B9RyV6aO4$cR`(t4mbe|1U{0 zDb0#Kd_8{R7KK&i*TT26!?nzD3Zx!-^Sxs&D72}+0$!?jll^C&ADbpGvhhl#tj2aN z2D-jn`)wARnr>Ab64`|WdbgT+U2&&Yo5qng)gTy`GKs8c?_5>S-=A}F9FnVedX*br zeY>> zZQIc2KI87LXqZ7pb-wVz57X{boEKNs6j(y&h_zrkZ9GCa2gm->XIxaD{W)kVkKzj+ z3;pWU(5gW+1*wrZ0|D@tJgI_SnW&I%rA(|dDC#VjQw!~xE1P*1w>r}+?D$lm6wq9^ z=NpZcG4BOi71wbSdL-+tFi-!n!W*U8WTQ~rDwkRb63jqN5$WCtro)*p z>H+5~Qv&2=Nh00<<$&#<*?S&KQrUZ6zYt#NUN&2^G-_yk=0$BRS(;TDe639Ei}Q3I zY;8EnY}+`^hV0}cRjhWFT#8V4o&FB4CeYM#AbQ5|oFSxKckxZ{~NT0c$9{{$~NI{~rMHv|7Rn|kMAZ1-j_&cNkzFcssOb2cQwq_v5O z+h^$mu0WDA!sefg~sO9-mvb}T8YuvgdLESVq+V;=N)sxvIBYQcN!$| z)bnl6^_Ukv6ue7ya?NOd3vw8s%1Y5A^4`0?s_Jv+|1bucUEotV`45?58_arm*yu`f=Y_ut5Erp~UvQd`TNa${XrD=G~_s7DqO6 zf?30-rwKeE-<$BW-+m}?w0`*q!fKil%Auq$n;g7?`^t@G9{k(UIdnF=lIaIpO4Myr zrQQ@juJ-rJ@hL7N@La|{#Y1k;m`k`~^ln+65|AW|MUWH-R6R$nN2_|D>~>XOcbdQUQbR7UYf@=|B1r~ND=Y2$$=Wty&*?JXncznb_x(r!s~@yEY%d>R?B0hQy^ zWTKZ&Py*O)RWc*`=VAS%Qf3WJOKzsmUMmd5Gg)Zb;L-|hFVQHt-h;pvu~kddqLhjF zPS1-N-ZE;|?N8LKqCH$3QfJbYNG}FkS#?AtQKG|h$mE|0EQU7{+k}SNGslH_f}K4> zk2Qr>9iSAGKf!4-Gv%~}ED1XbbQ0h>`m9;8?;c1e1)idAOyxv~MrtKKkr zOxLIRHwC#S*Kj;09WzhjNN~p>Yt6~os-IEVy(lRsE&`K!+C=qn{hzFP5gw!k4?>aZ z$5~%l5>XU(0Ofi#40IqFrmaTAP-4KW`V@yAQFPc$IQKZ8p&1S#h1HQ<#G)WKhrD~+ zXl&nSAYQn2x}*GHlvUNKzV3g5nzG%ZJ+;G9<5}geSa*%MU8|!dr;*Z`nR9g4Zh8EA z-2C%rlbGzUkpq4>N1We967`sCN+FIu3%K}0-AoyAD+1@ z*4U!AcFt{XD3cK}c@73u?IiQ_*g8VMS<#0)!H06f`6UprQ=5s7{hv8+YR6Ig%Nv^^ zs~1&uo3YC8YXo;m^o~G?j~Y)hO$GphO`kI?^I>YcpsEcSWY!}%UlP$u7roMfE&NWV zKT}7R;GnbT=v;jecS`v7+Wikq@42|Rnz40L4@;O48C_wX($O-iyc(_z7`DP#e5f=5 zK8eJZi6FJF4cUY=C!b7oM+EfHf}aOu#b!tzqvu5=d@j+lHVK8Rp7;l!c2ip_A=hTI zchFFEk+J#i+(91MN@4A3s803ZLIzD3-Gxtx@C|R$vP#> zgBdk6YY~KJjYeQ=woyj@7&-B$o4J!b3g>}oLJl#6N#Xw;N9lmj38SZhxDQ|5C3auG z_lm-^d$`p_{o7Pdea){$)5Y{|U03fph34+>xy41fzb97C?A2F~LgF`DdtUq+V1xD$qp_AZtWS9rx34`2Z9w|lHuzX(Zp6mI6Yq)MMS(QJMM*8mEpS`nBhCSVb{gr} zof*66=<4~?`TfMAXvgxL>wSU{W4Y1L!rDy(4SUMbw&A0{U-$lWTK4uDRdwe=`u)`< zh_#Ox9=W@y#RUqghTm2LmU!A6*I6=n+-)S1;@_%3LR1bA{vc?7py+b(WZBgwF%5_J z(PX~HYI{oa3P7McqseP2`_)R&1DL<^Ot{42lseWU-Im%zxRF3tQF!|#b%SJM#3&h> z%^5i~D(7Iam#1s+TAjVY9;pUY|Fv&MR!I9k;8)WHlgf?ck>6=4YB(@( zhX^cU5#!Y}w+&G~*Kz4dbhg8@oKDflE5Nl$o3h0KKXqc5c~iWQH8VFg1qs+gt5x`a zm|=*FC2JRgoct*nA)c>QHk;qxf)xn0h zrsZjVw(@lLcWGxA=(ZTcD@QKiS(GU|{*9}HRpNgY#7ZR38AlKl!>OF%IjGvu8Mo4?{h)u){dTKzL%N;Eg{@mk z9}gwc$L}MJRzY>l+8oFJx-Y9|>~YTeodiIO_~#no+MU)B zdxeSJix;Qfp<(1X$4buw7Q|Ow0wJVc7_EW>+n#$U%|!hGU8$4GVUp6kOLC6nPcbAS zFsJ?r7oxX^Q>_F&QD{t@6JGGLzAx(6KiJ5*g$TEx6=2+cO-6ewGU{!+;IVmQ9I&&}kX2R_c(t1+Iy<*K0aa5fP`5kn;Z=lp?tq9nd=YO^4ZI zq((wf%nC5-^zr9fj<%jeJYog9OXNJq)9bj^7u3w|MR%{()<3@6Bk$LL0nAdI6GD`t zv7liGWpvT0|J%E!El~Qa;r%bMuepq)tG@|#M6JC@Z12~TF5$iVM$3-p-DzZAlH5I+ zd0j)M<%kBg;xf(OIp$c;PW*!eoD}9k(v-f>Uds#>b@Qr`K#X4P{8LUu>RDTk>ggdz z$_{wVttDp_4Bw4zOb}kSZx8Y>?%qtS8Xr5m7S4!qK)1g0h43K`DFQm7PAJa`?bLf_ zX%;(`@ft&`=!2cZ z7b97Tk0qDL@~`O-+Ry(<6OjLxnv6+qG}NOQB`J&A;yRZkyw;x_zMQuZvG6Smj#Y|R z+WHb>S_%`EDoNg<3psnwx-|gJ;P2G8q@0v>2t}oQB{Kt+X5NOa8IS6k6N9!u5kunz4UDA~O#G;wJqgY_Nn;iJEUIF>c@hwrXH4o>@#*F!v5wAhsA!3Q1u7TB#v zY28s?;@CXWz5lqzWK*yQTIX25G?*EOY2977QaX0&iXe$n@^<>YNxEMkvh*l)a=tCG zd^=KR!K8>@%N@;ed1SlhBuxINXa~8|!gC>GZJ+beSgOzLGJVJcvg>M_8{uaN@%N_OL{x@X?k2(8%Vg>3%PS9iYd0D3Wk+!@?7DJ5FC zYq1LojPWK)XrO{0j05|V$H`wP2a@Hp=<`pTOV0?ot~wkf+RPgbDPkr(=ulsdbT1=}m~-H`lH*xAWVo7mf-DO)T16OcOq2tCwpe z{g3y=#A2Lc{pgrL>ky>u zWOipZW4m+?R4ejVI5nQydaQj`G=^$XdGgxJH@Sv(%cY-ZUh8=sF)gw<9hJ8EORg6+ zi0rnh$9YcUjTFs?l+7l%dp`{fTDdB*N16CN-lfV}=|)0d*aTW*%wBa}VlDcR*TN}S z(t5&9>Ex;OK|b2UiSpDZ@4}sJ&SsbCdHrt89)&&EDO@l&dOPE-Ys$u3J=9vpKg{Xb zzoyH4a`h@o%t_o8UWT9xMb5R;Y!Y#aH@X)CcdkTjeq542eS@|+$6S%T2q-0h)(oa+ za%{b#|N1eRI365H_6y|sY_{AG&gR+Yy06!9c4*JtMli|PZuFp;%r65uQv@q>QfAjh!ATj$tWf<~* zlDPl>YXM~?^&YRbG9q|jD^_>YVZuP1p|C=LKo;SLt?K?45qZ=r>$w!mHN5amBT2Hr zTfyd1cT7u{tOgwh2MmwoM%YAOiGJRPuZ2l zfJp`hCTy-lE;@}&{kqMxPD4&dxefjySBG3*RQ z;+y$nur~~(QW)Pq+Fq*tjt;7ffdc4rK0*}*u^bZIUyyt67 z-qi&Q6-AXu0;&DuLWTd##evIRsX9nh8JS+C%ylz**{#Ib@lS4LsWrD}((n;V>EpNZ zI55ZBk^zEaSI8y5KiqezmL3`w(Z}+?slvLS4Ck5o+ z8I(p0=FC)5$mi+{yO4~}VJY?dMCR{UJL=r&m>h|nG`hw?^rX3Qkqbs`G2c>*2F=%~ z<3QaMzO&OtLX4$pIy{D_MS%vMKS(h3@vy%c33r@dIV{6 zgghbJapB_0d@cbVNu`N`wDMFP;=hNWSa1+-CL-(vHw$?PSU^NIt10H2c+4ZDjDXWr zABGXbf+z{_@6@}y^jW?UhBIV*1eTcEB1INVKX3-&et>7{he8iP;XK%Lhm$Bl3d~NFHcN$I;bu|*=B6S4XwMpWg z{!apG%MM-6g&P)d2ztql?NGr}@i|v&K4gQ)kp6cas}^W3&WpAw;HZRGmVtnthaiCa#56gY^ zO3m&Jq8Nm4J|ahYYnv}`>Rl7f)vp<;N~C2XXy7A=wGcQ!?3#b{*-wy&7T0PK_sNos z%0b2e@zC7`1-i0Vb3QtC`lms8_%>*g7%?l=sVz||q!+@sLH4>DQo1e7}D`i|nk zd*h#!zJeM~gOXYVbu}4SB4R@(Y|!POfk8zV)wEk_UD7AwYusJ%#0;*_XL+b|SEr0Q_wlG;RX;im5Y{>ZW zcN;kUpur0P+Ez!7#PLKosrVpUjl__MG7%o{0JrV=0Gl)jn*_Ff{B2o{M9d@1&N4Vi z8iYDSQe-X#03bvhx&SqB{y7-@fp^Y%Gj*m`?aK4HLc)E@keJ7N_FaQc~bnr zBhSzqvX0a@KD%CCzrWLeZ?3yp$8zi&Yp#lyhVzA4lsM<@w4^F+yl zMhlZ1fvpa~m)#6KjLeZyixww>7;XGG!Q6VV_h*+DOT5ti6Q3JZGTTTSE`msi37)k88!qT#r=LNGd%Uda6Z@duvehKdn;`KPEqj*UW)=% zony=!n2va)G3FF$*o2WFNkEHhBQ-i!Oq77gdN?YuPCtirUkbgjld~QD8%0K-w#bo# z&v7ZEUn#YxvxVJx)d%TFu=3ZKLwVlStUB#7wm9^Tpsl%3Eg|!n9UUqnf6`Sn2DifR z(SO`6_4h%m=6&|Nr##I!9D=482wJ#8Gv3n*lmEa9p-*pGHz1uX5uDBEL_6>}4$k2p zouT0FD2fC=@VdO-k6=;h^YH+jelek>XQw}g#t+sH?IbBB^aD>e?w*iM!hU&6Q*uP2 zj`z$-n0v5RKG&D%JbaFGW9TsTM%Q!VEs!QfM_?HQx}tEV^I^vqL*6l<+My6sOH=W0 z-mpNYzk@N;?}}6%v_4y?K&pHVVK>7G21?|pk2!S?jBKgZ)nLhIu*UN$eZYJ23vnoU zIV)H5Fc2o7h{~1%>+{!B!rvrJ}?om&l&-H`HQo`q7xJ^<7 z7G!j|R`p|Tkyvj3zr)LJKuzm?#`y8PH=`Mm(cm;cr0NWbP*{_4vn_So-wsGnBnJNm zKPx}O=y$Fbg>LSQd5STQ>b-LCJZdE^Y9C)kVi%LZ=fDEqAJ)A`)#^6yQ15s{xYGV6 zUy?4(xo7eboWRo*))6RF8~io2dZ|B#7V(M}5RE>PeSgZ5ewVKs8bKJ4a|k)R93M%N2Y6$bPu+se{|F8Zlhu?o5;gj24f**He*)Q~aYB$Lhodm;YI zI86{w_xog=K?k?<;rOTbo(Do)o(N_)+V9O%foPJdlhT-wEY=v908~~ssF=e3+Lk_N zr++>Ee}W4tS+2+bPjG2F_mg9t8G}=Nd7rrrVP<(m_ufrIT4*^0I^y>$2QId%F~nHn zuAK$?!^{W9fm|4ZYf_zM<}xPIQIMeTLX-FWiufC3h8SrFr&PnAC+hqB^ZJ<0JKz4b zvsa+dnTrGu{&ypvPe3K|`rsruxnPA%^J!4*klSB!qXCE=$jS;nN~+`EZA|$Zv$-tZ z@u{c+DSk(F>RcnuL+Hz+39Ef~#Q1S>;$IBY#HpPCDhVijjrD_T&{u)Y!@Pq%Hh&b2 zRpI+mux?qBti)b90F?kBh}!{qVGhG3x9~Y0mrxCM^S*cHIL&t^-ZdTB&W$_->?72# zL5{2st`izAa#X*v>WBx4oe(2&#yslx!7~kT+s!T17ilPytW?ZEu7zN(4C^w!aFpZt zme&3cX(QZ#Ud|t6CeVY@2zqrELe(GqLhOA68@+NBN~;;$lu4VE3J<2`k4v+tfT%zQ zY7x^L&qw})#7He)_nz@P3lnMWFB5x{?5b1qrkL%Et@#%AfG|9>2wb3Mu{Df@*wGlX zxoMAY?(G@iS4M3kChTM0LOI&4iGW3G%6%gsO3YudMlJHz*m~@F-H`6ez@NLmfpEf% zWLnhhx*dTeA5j8@8)}B+7c$@lhz%&RDT`O#W|ag!&8F&mLqn|cUMpUZF~A{)mYvA- zlAksHXC?n90`>prG%%E5=A@mVg$S)qjoj~u{E|dLaK#f^1d7Kd%`w=Gn})=L2(;ds zz_Z>0gUIW-iq_jweO{xA;%IzX8M-<&WE?D9UVbTc7oZMCmFw5*o@d)sVR1IMGzmPx zOmc~6kR(SP{S$yhmVo8OzjS>1nnr79bd@qxuu?{_sB?p$VV-g;Lf!B%z@g0+Iy2Ir zrR#Ded527-pgpD{H3AD~`~oZ=0qg%an+eu|?Qw*R<<>6~`igwiLu7iOkwBO-zO%wF zt4;#I4%}MhxT|RJ$>s^uAn40@teXUZ2WP`;vV3P^hdRCp%N)!{z}{JWh9Y&97cDV6 z)JniE?(jSqnW}$hs10RzMgn$mfeZb6`*`UOK5zxkI2wIEq|7oHvzZFYkv7d2>9@}& zV5TCl0||dpn)<`}Tt4y-qyGyutB^MC47q{}{hxT#et=ruE30NJgoOBEqZhXu?+0-P znZEL61tk@Nj=?T?D5h#im$6dH_Y=*c1PokX-Er)WfSM+&IOR3Px|4mn==y7s<^3o& zm39~!{*rxlC}jM2{EW-QBlgW)Dtrp!f6NIj`t$xpphjn1MN7*d=~}WKb@-V2@h_S| zWJCx}Z>88*-4fX#q84)wm`+raxN%B*KMUGzx&!5M}+5W>{E-HF(+ zCmBswQH=X>2sB2W8-Yg75vrH&sGOFEZHB=z_;1cN>;K0aIAJ=-4exGWhYJUx*oK-K zg4pls^haV0RxT~mQeyYaocavDxHuuueI|hT6=O*QG!tbEo{wr$w@iw`SD?)-P1Rwj z=Q^yEyy$a8i`lS@az-&Mr@53Z>!h0-)M-~7QfO}5v@5l}cIul69D zhz8JiGNk+1b(kSoPs=O^N>eB#b*@ADFNhJaG~OMKO8h-IqTDCbg!3Q~gX{+F;uD2U z4oFOa-Y!~Nqc6XnFz0j8u@XQtUipK1e76c8Ov+rMfm|v7$GC`D=&=Mv(izwXmQMjS zU}Il8jfS8V5qsARga8XryZaMzh*=PF^e^2R28j_;Ny2Vel>Vu|A&2;HKylfz#AmMo z8p0!AglNGQz0(bY(CbB#3g zC=%*YMW-WSi->5f$B?ux3j{$%*9Z-G&cf+1i|qEBme`#OkHMZW9B|8?V!ks4AGQ$Z z_|qBl9-OFa%CVl_NOYhG{MO0>7wY%Nn1aP%H;1zS3n-?O-pV9oDEq&NQnG6KKjtLD zxq)ODMI>9&Bi5p7%ObFMm&{Vq-8T`X0HvU&f@-xyMy=7rgs$QRh5S4W<=7ujhquwe+Hp1L%5-;i3FK*ezX0sAO#P=sxm#4Au~AN)I=g zHe_SRkhI4ZV``n~?4RV+BZ}V_)k+#s*yMsL=w)7P&?GPk3a@1BeBfgPcdr9EP3n?|EHD2m>4OOo7!) z;H$x5vKgpDK~iH?u~Bmeb+En&3dpN59rRsq2W%kBM{h@}kIyV~;EuMPO>-{}c7r-I zk7UwBx1*?9bLpBGGO%5(1Qb++?D55;9pHRGki>vAX@X!SeEaU3j3vwj2Z7wLNZtwf z1hQ#QyD?*vl{SJBSk3wpY=U|nnhGPxMAMuNCNUmq~N(OJ)(G8Fr}RR4GLaBZScluGP?Cr=k1RT&@kO#KQOpPhK%a8!k=?t%tc`7J-~I+&JJp9SAQ2L%MwG5upX||= zqYV9K_g-#WRw@{DRT*O?-sqiwi%MMmHdQ1n;IBdxv5nUM4qRy~BSXI)7y|UbqKe|N zmT}s`W4t~E3_^$Yd7ws{SZJ#w7K|V^`lHNmdHF?z?@PR&xV(3v<_0KcdfCr9+`YNc z8iG{p1EVN)f{jJ2D0xgr{!p}t#aS?lap4=I`Gai3Om~T?ziI4- zX;_@R7o!S2>EP7&vt?~XTEXn=?@TFt+~_VpkM>WC6ri3&h&RUcYv(mj0nAdfo7V%5 z*xIK2K`ExvgC9fdzIHuj(Uipqz#o*!_=tCLe6&4Fk46xuZ{wab=(x}ljrkf@xD+YuLWiqmuKM~G##ZN8kT=j^{t ztZS=Z?UK!oEZwA6K~qoS7XObiC}yf)s6UDaYt-enLyrJu0&P%2(P;d;tfpyIA!Xv1 z{LP0-ejCgu;}*&&CmT!hu3#%kxzGi*=CR=4B(X;5(;1!;809R~gz+VRc1{ zLTE5_^p*blls`D;uA7(8ZoVRyj6=yo{ba*=kMbnRo2x$i+$Y@Kx%l2Lx8G>|J=zsX zG@q`dM@0IdRy=o7_abLgu8JUi#M7aq&chxOjqqr$>HS9^qXI8bPx*}_jT;)+*hO?0 zbjl_NM#6$@PGhDHt1%)K{+s2%RJ0G^j+9IE8qRB5N~PW7?=Bo2gA*Vlf;)1u>@27; zjrLG&04(w)t?^a9f4v*Q)PC}DyZ7F~iaVE#+%7|XG{BWXs z`8v&(mNT5h`H##m&xtXfz+I-RbL7`?gtSy+QQqt_7E<*7&2z!gb)x{Z##uIT+~=ixPyxwuDIr>~D| z*lu1uis<2RbTgulKv%D$AEd(OaO26h16%vgwV8J+ zWE&LG4IVS|KBTt#Dd9X>D?N8YwUV;+ zV=m6GR#Ja>TW_&@bHNDp;5F7mqwM7+OGV||gU!Gt5Pe^#`2`X!Mw28ZnSa^oB6nbE z?uNdp&mZhfN%I>A;WsCHoOV!RiZ`h7<04xN9Vf4?lXN{T(7r`u$T8u zZ;uleDM3#%6A#*CzKhhA)xf!>AM0`8`#Bb7P8Mc1$)Am#z<=}dSG-!-#ha1ScTl+= zKkKsK6mp_Mh;Q>{v? zS=H&(X9XxrrI}`8G-QMEpbb9@u-@jI&z5%sSB*!g3*~W#LMlaZS6c-F!-uCCv<9%O zP&3yaV=kU}yXyfClQgvWiU75yKMfS1(H!K=~aPl)Jh!;Jv>v zyy!t|>oO=5(uH?a+=Bz(nUOiZGbvzkraA2_n4%DmWUMkc3&Z&>7J6jm^!fXvLya1z zuhlo_#E;L`ae8{9RhiRpAOA8RDkLLK28XKyj!6?;8m6nX0UZa5?1(qDexCtLk*>2g z_c>qP%hKO=t=P`f?vG*i#a*QTZOIkvjc)kAsux&H;lX3Pqp`UYhku+9bA~XN4aYAK zJEJs!fjU9=e37fEX~|FbZg;8BvZUw{wsK*r(VY(t;wl-Jp{FEumO*2^PN4dW-bggx z1Rzku^x2QV`=hOtfYjW%=;|*{sS$1rxIc!0J#Z`VUTfsi5U*ix-CW*XG-B$!5>+l4 zCmg@y`3M~{$-fOLKc*pDukGe_{VkdYDo?l-cwLU)KeK#Py_04c3*Ku(x##hPxwYfn z6XW0QRus4&HXcC`8F4^z_hWPFOK+kQm-n7m;U4}difei#!2o3Z9`i&@;m_u2w#Dtr zCgEoDwfSB;k+yjpO*;d+KExw_j3HDuhRv|fWS_rDf@9bu z>E>lOTyR8sH1Zj7d2y!Y`zUomEy#84Y$a$wOnukg?Q)pKl6S zT%VrcnQNKDNdluB==m$ zsB+9f$jwb2N}dBh|MA;uX9(3lAFs>e!G`mKlHE2heR{3??~l$G&l^fS(z7cnN)PfL zx-q~~o^Z2}9|(wHFmHFxz+@=m-P+82IC(JqMN~T{iYf0nGW3VUnu!M)tGhXx3a`b* zE@)o2&66paYq!Q+3ZfZ$#Pd&dNWDBN&ID}$g#Y``1Df-`hVnxPTZOs0=X825`k6mZ z-8r@Gqp?1>Zg;znj;^iD2YE?`mPreLKi^s&zF+Wx{4IJ|hN?0jw+_L_*l4QHZeck5 zUKcC>>3WlWYq3z#WU)PH5I}ZLk3rpmkdrgt^MANG%+9TapaVx#KpMiQ1nTKFF;~tXNbPJql=qPh_~)bTIk?QxM6a7I+JsT_v(0Y`FZ?JYOZq2 zAA65(R029ql)mRS^kmmIOtUpUdIQ67(p}GK+!TbxGp45evwxbE<++f7J(=(c^U!wUDF(i_Q}9?i+5~ERz84KojQ{Y3>d4 z1~4295rtU&P-FqEN*Y;Nf#uf=!h3q4qdA9{KT13nT6@>uSp%=|sP%^ueIyqg+HIzG zz!D$Wd>z>yz2kzygY_r&-B(!&nm!JO)4ctO2Cg#GOYfR7*4FTbA3TJ=)>$IvNOClW1 zIf&(fBBQj%=2&-GX@K`g8hR{5_(V4sJ1>ED{>S#-qzPatnh%a(mdZS+A8bmno*X00 z_gf$F)P0>6$bdJcS+OUBlAyn`$*Tut|0Y@0N`j?f`jEK|CJpYrmJHgucu&-y_W$d3 z`8Ial!lLg7Yr>w;(xs#($fU@pa^Eu{@oI%505Eg^=UAnj8Xj8o^N83uR+LSzGS}av zWCF5EO!VR142Z})+6zI2!aysh_VrH^Z9}~9&ICwxJg6XDhR=Qglu8+S2)q}P9rsKQ zs=s?6LhQ2;RI&x#O#DMQE$ZhgGXAD(?*!|vi~oC@otH-lay3K+6`x=dJ{b+g91|na zMS5KhI9_*vyXsn~y|#v|)(e=Sh-#rI0}>w$1BZ72wHR65N~7kOuz1aaXNSXKu-@B0 zptGxA*Mr?I&4Yb(kqN2bNQThKZ3H5~lN&VxP1$$bXsLZNG`(-v_dvVU)Mpr;@j=FU z$+%3%1wpdPhC$}?YOC5K;CBq!bY!+*eY@YEnIsMJRf&eJ@v)ZwSbJK_ zw5ro&wsT#nRv8%ewwRtEA@x0*lWf*)dPao>5jlz4MaU(=6k*y6Mr>#$LHjrX&(do6 zPD{GsWobnl^gTC<^|{}YxS<~Yo0S7W8g4B4plX~eV$z9&d=XC|D9!(JQx`hyBBQA= zjIOLkvJogYv>4wD=g$v5%le+*g2o7+;UuO5DLC-UOsODD%pYA!HdDhYs5@0dZc~2 z0e~D-TK)a-(n5mxha)Sc+G3Cuv9<@G5RUhc$?A%6}Wt7!Q zFkxkHSyxI2cxic0EZP?UdvO<~>j?>e@*SDTkvPx23jme+HPeJ|4>(V!3Jr8+pZ7rT zTUj*>Vhcsh|FvIxpa0Sp#$eFD(d?Jc08Lv&&tb20Dj=A{hePQR;y!-$+bTk!5tDY( zgq00|U~yC0DU(cEe#bE*&AUvGggi$F6GeW@tK$0s6k=q-HzkLk+R;4NX-EwNUcTkc zFUeI^Q-s$hsH;R)Bo8f)O_*B1GY~A`TEyz^`@$V6{y}+Um!0V_CR2RwDs*8>4ChFfewx~63 zTM{-5i@)%qZ<*FBwlirkTxzIj<&-ZjfH;fhew96a-nUP-PY>lnCbqUX$u&G?aNxAo zJc<{nMNih0=w=<5=%57k4@VQ{k;4hXhx$0w)FOd%-tK|C;@JQ!J&%o`sG2j_O4tVQ z_p_uH%sml36`d`8lS;?HFbb{zCp&QpLv`7N%Ily>cEbEQBnoKGJ$MZkwkHSBhx6$6 zl~N(@zo`g0tQY<`^gopG-=ChEg8(ei>f*1y$i+^|?%`aeXv* z7ViLYWP?p8icIqFbu7sF{SIsqDZP2<9GK8!w4ee^|H--om}!*YE56hEeU?Gl2c2Hj zm(y@-i;KX^>0oapSXx?H9AO_9fR_~1i$dth%T(ETH(isM?fG(YD;hB=Xtpo%(fUTh zo>IYYlP%dJ`MLiP_WdPv&m!5lo1}+SUv?7T2y<-0fA*$BdsUs_9~dySvmTyv_zw)A ziozBk_11rlMZ^G%C7Grj(OY-;z~!d7@0&m+?3&xQ7!-?5pa>w@00^%1@zl9xqj~LZ zGhJT)z#BXIvti|KSphNNM0-=qTK@)}>uW}QJWRS5BN=Xnqvq6);;J*!E6|fv&w-M; znA$SwoR( z!&+3Y^uciXzf^WSv6t8WE7gZ{-I66{p2($aLoV=UeoYWZ8$Z!EnT42hF{5e+3t9n@ z_2x#M`JMV>7~W16;{Isb*?wnI{KXP~t%YO86duv=-y;}*f8!LC)J)tX53s5YhC(_r z%TNwDzyy4@{yH(NdL51}V=qR{wm#i7Q-p7&l!lPuMGOLAw8ni&1rdTK4#c(CG$Yth z1j9?K4eot508Jk>shCYv}>5EL993O!if2859xyp!n% zR!#uk_jT=Lw;(s=7O=Kp%ozZ{*BSo!ew8*(@*tlKyiz8k740jTDs*r*fcL7!5L;0-S@Se>zwyF*ZZ7nZNLuNfZv3nWAH%J2&2aToec{8@na8Sm0}&o&Enz0yFr;m z4A$$tN4Lunh{SPl)DSpq+iGY7aI+h|S$qO0nG}`aWsjeNdV9|PdnVEA^GjyuaVcp)J+m>^ zJuwEQ7TYDB`$Xih>IRWoDw7|Q!NK79>=8WXtYU0*XIP(-WwabqfxBHe>Nd7tPgE`_ zXU_J>5!oT;AQrUh$;qr%=ckOH^zPleaK4%AOwiRs8R=>BuNZ6nLoes5$HQA2a*P*5_|YL3t%DibBJ#q4_-TtR>#QxSle)yNA%LJ>{Od?@Fo|QhHAFFyZKg zb`Y$T+fm6ycV}Yb+p*S1YH9Lx67DN5Lrg> zeCKwk?~%ZCCCRQ!4VfJW|Dj8(hTzie7f%jx3--$>m(X6Y>)*BpKa)-dYm&J5v!xaW zgGF7M6)D2)-K7WrPCK_=2aE^QI8Q+q5o&?F|EmoA|Kkr`jiHeNN^r|;>}q6WWR{ny_Z_yq6vXJgA086YN?UHu%6{|3GzxPt zcH?L4I$9l*&9gk7@A68|)knc%wbt`mCib%*p!T?(1?TEA8$ol!>@JpLtGCS6nv%M$0 zskFW2HbW$j25kSJpe=ar@DNeiEkJlLAlI55+xGHD^V+%>-tT&V!$v-159@zJCv^2%1ZuL`VZ~U|%9IEF`acjB1C8@)ualgis7%%Z<^BX>vou5gxrR+z+<%>E ze7j2FN}}dFmm%De{eL%?QwvO=9AQ}pO5x9+GqYu!c)DdIbeFKZq6MpW`FAxrVLV3l z`J1a0b-$blT>6yHf`3uJwh>CnYkFh;^ziuKu$l)DiUm!2qE^iK{RGrQt^LlZ@9T4x zM&Zh-K2{V-5>M0eHNof{w=Q@rwfKbf2~*eY7xPBZPMX>)KNDazGwgzO=1T{4vu)mq z+Jk(LwC}O#9YipE!F`29O-LwT5vF_+$2hG~wBT(w3JloI-SwV0?vc7~)%GpQzL;#5 zzV0kxbwvHyMf({3yW3u3wCE#q?~a-sbS$m6Xg+O&9Kz~&byUpj)LtxK-F}aH@k5#7 z=SFgWN2P{6ob`TZtW8q#Y<;Q2GK#X|6exal@RzXT>~}0;!g0+0%G5lr@W#rhRj*3s zVA?7=CkvZC@-`=;DqXub*44u!)zDu)iZpRk^1)sC-J7#m2&2y@?^gcbdc zSiL%)cK=8=Ds?`!=&IpU)(`P<-1e@%Z_54&>dJ-m5oqTZfz)bLXI#hNCY`U{C3vt0 zk0FtpebOR)J=8txB5fd0yp!V62jy15^ERJs_E9(?IVl^LaVW5+PQz_;5NTroVgAl3SN1Q4;GPLyz^R$+c*HWl`DPqcDnJ1 z!q`=r=HJoCh1cs{GqfjL$8P8xP&qVc}MsdyCjD`-|QjPxTx;bV#l8tZE-E9&{m_hPE+r) z=Ka?->xsHLq0uoyOk9K(M%h31_YRa7~^)CUi5KNfz>EiEYC!K&+bE>TVP0y`EO zN4`qAUsU(}_X`TAd$|AW+xfcvrL5-^(u;y$%mKcGhU>xhw4tyZKQOD{ow-f8 z?&q-{w4Bt0hxIRaY)@Cb!h%nd|Fr@z`7>@FZbX_Axno88YPsL*rvEJ8Tu)qsi~Wy{ zUtQk^+(#8#2mm-jBZ9dTEDH=?7|>o@`~IY_$+yu7ASYHF;rw5}!nNdl%ptu<41Zn| zBB3r5yv$#Zt@q36r|wIszHlio)8}RB1W@PTZMm14@y-suSM}E7SRL<&T%spLSDbTE zhwc3({4+|f3GeH^c$;xd;vF0iG@$nF_hwlf`y{FE{riuLU`6^v7(nsOw-w&IBO3ig zCAWZ`T9RTyiuYa#WHHL`{wiTyhd2>XOVea~iD+PVDFO=n;iPlCu#|_klFzMx`D2)~ z<}Q2Jm|su)Vbg;k7;ip;M#k`Hkao-3pX#+3?)!;6Il|4}Z{Ysf^S0l=dl;tfx?>yB zZ|b~Lkg*_RHKork^%7sb*DP(&IvTK&wO~8g*rV76JYT561x6LrD;84EN;wp~X(-!o zO{|z#_oHN2iwWgv!>c|sx1gB@4&o5t;lEG3ZXoUSv#Z|r0c)10#YRPJ3sWwi2!E_- zc=uRPI^sWT)Fr?DD|8;8T3>EMHujn`3SXtn4n@WZs}PW0vm>g04rv$vdsHjzGi4dw zL&2w(i9`+#Ol;pzJViw;mY_j5a&!d0e*GHWb5kfwTh8a!An!$zhAANb*8Td;I57SH zvI%!|UN`hk$MT8HTJMD7Yd+*FM4X-bwFV*+o*#DB_bbqn@+iSyv&5&jeW)0x5 z_&aRrzu1wU&wYnOg=^sR3OER3@HD*iSR)#<+52}c=&7nYv$Mt1CV7&x*`)^vF~Fw= z&Ft+x=I!ck<5cR3v)7sQzlxjjr3)0isGPM{D0Z^x&CO5B{)@J)yTyFXJCurM-!wNN zXcMNH>%tg%+=T*d^O+I+tC4mC@CexY>UZO%At!*7B>9DwnlUtCHez}q9%k{d`_1_^ip3%d~z*DK^Z-UGj zv5O5awRc`FW^1mMplf$i_~Ml%Ef16Db2Kj>AYkYtW@-1*wjwo=G3+Axdb+#Rnb+&+ zw#xi<^rgE5o9^+Vtw;Q09G_J@{#$gjb-um*-idh#jWGwBJe*T_ zv`NBr^=SOt#kAfDkIC?LNXL5c1>=*r^v~f$1*0Of1V)t0lKQ7l`w>CnIhcyJ%1?JVq}<(5{=dEL{_!DqtcSv(GaRTz z>SgUv)X|OW$?f6}`_(eXL&l!BdUQN2>i>2h4s*CE&g#=% ztMhcS)&#{tA@YNnbNliASlJ4#gWKjp9Rvc6dmrvvvJ1H?u%S~S`*Ur$zc%N!=WD6| zAz>R-NlD#N0;Kyt@BSX&rgM3#-%)=wh`);VH5;2h;Jedqnzu;}{J*|oVFkOzv4mIt z0J#bIe0K?g7m?)^MV5I+88c*=n~J*gWxG#=8;f@)0^=0K-oJ2gm(~=KzY+QF-KXAd z=STeH*$OHO`Eyr`gp140$?5Ot2$HU_)*e-?$l0JwUbxMAFc$aWPWz#3Oln!-)6nJb zg5r;mlzPF4Ht*H+$chRhG2Ek6;MC*`!B0PqHbAYuE-}3lWwZ7rgKstYS@~5_Zsj~? zgo31Ez4$U}EJnafQEzNhixsH>V$-nS4$pUE8DW~04uh1_?mD`EQ^zTuf9-dCP!Q-( z3kx3>(knJFMm*0tS6jB6n(zSFHw`vMn{P%RCX{G}C0mXaY z-WVZM5`C|v2s;%h?M#+$9>W|91{xH=7)!(LiS~XZVz0!|>Wcc`TzYlM`oHzp*0jej z?S&@RUw^NruHLW0I)<-7lWezke-BG2kNdW3+O}pq5VZ-e3ulV}}9bfR@1ze2eXFgP5*Ri@K5@n5280TMx_jkjFu% zUWRU5#+sfGzr7pd;gx;oEZyo0Qh+x7!Lzdel%C&W#rqnvF{(4;?AK6|ixgJcT=`c_ z_G@!D<3#=ihuu22-+4fMg)}u4ldMi~-|z45x3!vWET+-kzn_i}nqFHwWb01l>fZ`p zEBBrn(0#)kgmK#S992-1Z5jKsaudQK1Rr2{AZ50m!%=jfHVgoT5#RbgO{u2BhP(%? z(~-G<#XO7GYu_VvuIlB@yLfc8a>`AIv4Nw0L#97DS!1kYw2ixnryvP{TT3!7}M zK#DSOvi!xe(J7epNU0uPyAhNKlK)rRUlb znW{nY->}a!602SR$2~xpxri_SZ*3|D`4PO9Q;FUTmZ$~LeCNgw=`R^On1@?jlXm6L zR;;$TR;not?xW|BPi<42J2>H##E8!g>f8_-~*H}&XD%`ukLkQE9#SRoj!x#w`> zv9`AUpL2VKsR=15V)O*W&r%Pgtb9wyv_H=T_JLHg@0CAJ&9cPlb5RG8y`!Ql41&X^qXxAD)+O~Uc_4WNkn)&lWj=*NmD0cB_lhM zD5W%{6^&{knr&!b^1{g3I)LZ<&pDgKXYO`uqv~o=$PpR`xhaRTyf|;|RX(iaq&;K* zN9Gf)Z5RkX=vBV9iFxAF(~q>2V#EN0aoH$D2jZqmyVpQ6_=k4n92wfR{lMyzvcI|M60c|tRl4nRN1T>@}wkq2dw#u z*Z)#<#7>+{9RvzC2aO)C$5ikPTuDK;ZnyXM4OPaFeJvEi9hKnPI?YhND*$3|83@xj z7PTZRYvGTz3ky38UAex-C^-%}`mavzg zkg{)`Rtu$eDRt{GLGu$>y%ZC6*QDu@j%p~}=?3Y`J^0B)VHq1yQInTe3$e`bwl?h_ zI|-41C%4q@vI3O<(^sVcgR-)xPkq2)b#5U)v|6vv$zUZVCY=k3Dy)UY`<$n7UpIyW z_!gU^m@{gtJ=qxB{2X^~{@Il+4q&+R9iOFwBg|QYFjigj#&x+0jvgwn465(g+gfD! z6&L*QODW77l@vPEF0zlg={D15RNTOP-wPIgXC`k~JO2 ziw*2KNOG8IXh>k=M^7FPq|9JS>Ir)@w(&EE8`XX{ek!hJL=EBxi~l$krVdX=)8;k#=CU>p6&&+O2~gE#j0sc^xxmwj%|gjeS7 z7uGFR#^8r(*}rx5jz!^MPSNhYg*PF*+s^d6&oGO{i=@^= zZyE#+UYu6@`X+2*{Ai$Cfr(1_t&6jjS=HZtO#Gl;3ora(GrtrKx{8{SCTH=2Y0O? zX{IB|V=i(FfK@Lv;gzG0Y-{AA2x06ury@Gkc8oA#9gZOE~&P zc~GenF3mmE{tJP00hpp3NkeG8t9)K7ODlPK?p+F9njSv0*gZ#4USnM;Q)&b2C;2Zo z|Ka+Pg7})Mn}0jXg*0U3^iXf0MD(j)WNe)tef=?fed+W*;rlWkU7`B&T)xxz5Ippy zgWuX-EiV2veAqs6n3F^J3p%;6!KQY6RNcTmFR|)}=b4yRwkiGN!P5b$o?mgViwfvr zw~O~y3QQBa_NRv{g9*b|U~^fWI0}c!H3+aBZt3ZQiKz+?XsN!ic@?5yX#SY-da{1= z2JSDb#i`Kg=?Xo~Avv9@DE+>yu#UEH7}{=kURbzmzn(a;Ye=`GdV%Tl8ky}^SJ9@! zaLn<{RmHGK%}D-{sS$5HURJv~_N<%D^PRai)9T#;Iz} zEv7Q_IF}52agLq(tDmH#zJEaNlau>}9)0`Nq3@Jj=9?gW2mV$L%Yom@EO#Ow1NHnk zB~*A|>ffFiBoT6dMEvL!#2|Cnneob>&0Pu~II+V`nlu$0ZE@^DPjd#xv%*w;qNS<} z44M60lD-#Tja*%Q-HlKhyh8tVaCpz>2fJfX?ciNGb;hddbUS5k7ESSd|B~D1hK4sT zS{C^TwzXW3FWTXhj5rSq?7C+(7tiXyaiNnu?}2=V*pc<0j?o4GDdpgd?{VZQl}abkHGdY6pXLWGbzFDIrQ@?>e4 zha1kXP_6|=F%kS0=(9tdQwD75cCWB{DueJa$IJA?TI}iep`WRbTW^sgH#($>eIKD0 zWx=}YzSz&mJq#xk$iZeXyC+@XlrU~9MJ|?-3aTR>7u?gL56t%IEHHikt~;R}uLEjj zoQN}BYbvS;hy;C$_Mya)MCd0WPr`j)P#MnHteG2o3x!Ugv%0|Es24nBna2-iU(zcutv~qIgYYI}<)WHpSN;^i_8G z0$&@P&+!dVB1b|oIduI zmFr!bU%u46TPW|Sp8{^1VZ9|(-Rf>QHrohyRDH4Naa3c)LPTv*ihyQI`DTf-6g@2*2e$#0p`6eWpX`>`Cj{4GV449dm0X2FDZ-K2c!mHT2y zcMi>P%@vlWLn}t^FAPz77yEe1sehf&gT1-VxMHO`GkLFy!+aH(b?xrGIILr6kJs5U zv)$(xxb5E?vDKHi2oXGyRI{ri@Nb6d8dGCO321hla`#!1WWKy})f&0=-OtnbJ?C&o zso6cXn8gYGpVgC-nua@L z6&7LmGV%mr%pDeZ=SdgS(Ao2WmSLnYZTxPuDn}T$n72Ig($*|%gCyE1v}yD%LyrcC z*@wF!i?=SGqEf%2js|M5!PL1%m`8j?>Dymu#GN6B@UujXG>sSCSNdmc)heT9c*Lpa zJl))kfq&Za=i(2sU)aU z7D+#!s;o{NqfB_2F2o9P@Hlj!D9QX{7T<2jBN6nlwAu_&_YUW}#rLTomC-xlWfy68 zcu7+smFkm^d!BPKwE;06);iWI%gYKIKZBQ9EcVlpCqNQy^7DlxncRuSS;VdI)6ZyAr&Rw63km}}Y(zRy%o!q;flJ(-n`O;Q! z%4ogmzTtUBCgIvz4qYNbKi#hVx921K8IW#h6Mbu~KcmzhM>%mB_LdYvDNYarOLKBe zQ_@RvRy>iF<+jYdT4FIK7{Arv+SEJQIjtYC46>Ams0Gwj?Z$r zTjx?YcIy(RSs~7+0S4>TuMCX}C-5xonjQ(P7M$IK2ei4hQktSo_i_e=XZ#7WcZ$Kq zZXRz*u|`T;Uo*zt_LBKeN92UuvFR|63@0Ek36Ym%=?QHO+mRW3Rk)W%KeTiU>EXWm zevXOO20yi|Uj1$d*GY6a+AGRky7Nn7q&}xM-7ZxTXA<8;7Yq1Y-(G>)<9 zHMouy+jlwZxdtnZ-c16tp*MrVSLJ>~;WwEBt;2*`;<4x1n|jaJ@JIz~yij%NU|z8@ znu8x|Tt198!t7^@ZUA#yi4!%jWw;R2VtH=)UFInd&Vmc#&k%6CQYVAYL$*IhLqOVq z|BvlPNg7+=q;A)?$%y6T zrsghk{8e^~GnQdJ3WDX~!|!oUa)LIB?(q57Z)7kVZhAt2Z5-t?AF2jAM~e1KL3G8i zvfOaPy_n@G`(nqt5m4cS<#jxb^Umk(Mp(<0QALVfmoqzdcfsH+`Fv(@yT2JMN?>;H zYp99=isI{r5dLh@c9L#>Ny2-X!-=$AN60-4kSvIG33{kF;TD;XyOnd5tA#G752h?v z21PxV&q12t-B|o^u%=ayN;WwnbQ#z7B;3Y8!#maprsImtZvb?*Ccn&xtp565* zvXPz~&sMC(>rC*Qy{}7hSmy*<{=FLlm#yDQcw0*{Y;N*NN1PP3!l@bka;mfyGeM3E zg51xOHCk+?vmIRUnqM7pL+PEnm~-V9!2!@JvfVEQ@}4S5SlLWRcijgh?$6uU63wW0 z-1wsejx)H7OMMin8U;3>@ zlw}7~l>XqF(qZ1Z!)Xc`KfJcjk-_nS5JG`y>cOshsS22rsk0dmDQ1`IE{i%HY92rO zQ$Jw6#nu=i^mTXwnB(z!SZFSdmC@1Lb} z)-{N(q`q_U`fH+Y3R|G70^+$}zEiNYH>Tym1UB+Hy2FjL%e(zMuPc4K*g1GrIqQ6O zwT;X-sf>+dr!47;WDN?4@<#&gPq{th|0o(V!psR&$NY0^cJ?@r8tMlg@qEw4L=DvG z(%13xT)dVFWg%|CL*Myzf2v80b=gM{>P=2Z{Jy({#_cH3WJaB|MGQZFHA1R=IyRY1bj5@6uZ4%?jwJYyA!YjL5F3Ugu@|{NR@^-92wnx}5 z>dX!>u++wr{d!A>**WN*h|{^meO%7SG;w==!GA_wNmm2huS0DpU5Ntlb0T4(&*__? zA&B0TPfl7I@M5^iS48NS1Lp4+qc6NLTJbczp&p-TS=zRoYN-%r_q)n=1jKLF4dr;e z+xnHowZ7Ve{99ye$#xSl!s&QRA&Pa6$=Rm@$drnZPyimkvn5M9Itcc0VfJyxd zF$;wFhC0Su!rH<-dptTBQaT)5xgFDR#{zN33Xx!5^%vjEwC?u+_qsc2kpSI1;~km z4>6AE;!cOy6jHWRj|8rS$zcufYsQ9{?NB+cy)K~BsXHFd523Bh*hqLg?P>hY&22F| z^D&7za91Rl(BJKC)O)ceT%Lh|cGMqBDl-gZ-sA+ZywaMv+v2tYaaoR0)@P37Acq0fA|;7~S(Nb`~IO_9$zzWzlr z1v8#jkxZyg7Mkn>xbfl|jqAb%kl!kp<+;4{bOVYc>)Ly#P7@53Vw|>?i2dJbo6&uv z;zLsEARi{)2pD}`hGP70WyU7hg>WIfY)S*Nb7E@iM{lbGq1e>R!Vr++js(uik>2^( z?t3^3S?%}n*rB;D(^uyvUa$}SD95*2nECKVa1(P7?)XOzo);5NT0Qb3v-Z*Y9m{o< znR*w+;U8s8WiUcD7oKd_f_Qiy$EFrZL&tCPOiYK4PWM@4bhmfqdp5ETn4<*?v6;#o ztG*v)+V`#N2eIOyWRw3aalWWi`GGQGE%lU-Mbxk7IZ>Z>F?I2kN4w~D02qMlx!ayp z-b~U?yTcb~5&*)WZ!SJd-Ehma^a)z)bqLtQIWjfA*jSrvCVGYpfgPcGe|7`I8swh8{IScUJ(BRL+~{7$6+QuLvDSis4)DVy%%K{q$%KrVsi z0p@#dv&~}0pDzu*fTD6c+K9U4UG+5IDp=Kcn#Xm1vq)lCqg3;_U(ueU(ycltn{w}}xCvMv{;RGtVnRaz<^bJS*5Z=%~w>1pF_Ru|3}wM58& zev&HFjnwNsD{pAS!>xUZ`S4sNP<(sud{osBC$?h0oVR&7T%->hLqrgI-+kVCmTffY zrUeW5lm_JKhESB-y{&2xVz8VLAHB_U9;W`nMeB2e2d+{#hZ%`GQp_qCJO^2SS3~g3LGw{n%-4i^EN1E^~Cq1#FKJskOo7af|iLm`O+a;FbpI;w7nF~__G38CGQ*jF@8kfDU#|lXifLfq^ z9BqM3=b(ZpB*T?i22=lO*8WOTLOXMZBS6tpTu5DRj!^74$Azm?e4mOecd9)3G8qs`19%xe;<`T#CoikIBCEb$47@7_LNQx>}>e1n$vUVcR~m6Kn&7 z7cNX>aQ3x8?yP5F0RoiBIn&n2lqy5SXandJp^eZqqy*L-b@HtFOF zaxQ-)Ch8;=e?qT$KGW7q;J1T}|0Y@S2$C4tp#j2a+A-`EXkrr+BYil#a70kH& zJq=xQP>}g)H-z$MD|s|-FIWzH9Kz?@jXCy~M_rx)Ff0pS7?X;BEe1Z%Y#S?aDFuN+8U+3c2!X~QCp-(c!d zmy&#sPXQ_*?F4}MTr2x+QzTf()hJWQiu8^X06b*wx*5Y`aD^&>s!!76h5wpwzu?6`NTxR zk7$JK%n!7$lR=lE+94OMo>AM-#i2Ir_z+;Qb~%z2M_Lwe2rfrQO7${yQAkY|inUNw zy2srW6)uPE?Sj`5Cr^?^AxX=yp*VDrR>A6)j&C-;F?1s%AMRJ?vs0rYyR@qX?46z) z&$#mM)%%SnJC1u1{~{K90bS@gE^c@mU%wJHP^4vbnl(d@XZtbOy2Sq4L$pG#9A4 z{Z;$wg08qoSS1gy%PSYmguhO{g>_s$QiDrAe$el-NBwM#^~Txg5i9$7<7&P6YR3XM z)yBOZhDDGFbh}^GXbzxxxupE%KzNcOQ6@^gL$r*@z`zm$yefl^ZAHk@=5$gy2UDN1 z8_fU79LWD}S@n=r6}3iN_XM)V5ggEX=#2B)>xvBDD68TsMjH(d)JoyWF(yu({!k<; zZyegA*e|F~zCcMH&bjx=-FtN&V+l8jaTa1$<)I)Z$f+wylo3J{%aS%`_qy0rcCX<# zTg9{TGx#Va&Io?AEY@$?HFIV?6HTmIswX|rgN}rTiG%vddH$C@^hIR0D=ygCb(ewD zz~xM%<%H>A26QS>#N^r}Vk9=Qide*rfs8%9T+!Xdf?qBnOe~4qXL7kPyBolNpq0 zStl_z{dk~49{mZ)HycpwR-qD!8M-7JT>s``71joedys@@R;o4GH&W_eNfh!_N!F{? zL^yif^3(y)}y+`#S0w9+sVNB8Ru7)B*ta>x(VM7tLyE?`QMKWb%64n*zQ^vn=dXK;l$_$UNaW*;j$mcP z0)Cmq?sMV7ux%7BCGnb;d-8@p`CQN@pcaRWGnV@bn3n6;PmK*@nq!Bv4^WrV3oXSS zFsGD^7sWbj8s@nS1efl53VXVPV3}w1Uxg98r1y_7&Dg{RjCtU2p z*84A~+UN;(I;TO2n_^er3awYEZur!Z@)RW*wi}B>7OT3yt+jEWQ#iCyqnl(0 z+t42o9LYkLfj@p2_)fA~4LlC*a_c#_0#BT2d#ArzFev45mB>JAGJ>1veyB|Yp?KND z;7s9eZvyP0+mxw_%-B{nA1BxPNDdnn4#)+H_WQStbW=RfXOPAQlh3w;Nb=av;hRQ` z6&|{u+KdTRokeQJLX~;l<(tu1e*yyHnMs`C>j>L!bfp*3dUYf?Xe6VRoV~mo(M9(d zv$Yat^zJGs`ZRu4G$k%oQaqW`Ry??pfWK~C`8J-Z4*1j3xjW~mubBfC*ou+)oz>r~ z1r$)@xXxkE+}!)oK8>1eLGIYfYrvd2g?}I!;7i0EC!ECiT^@6@9@tQE6As>0$Tu>~ zKhHY%PrsIrW{v&Evzl*(rcq{Ej_hpol$V}PCK)r%$}RYl=`RGOUe-Q0uXQu94zd%^ zM_NZLe;$`>7(cVye980-(BCd1y;C0JvmD{!1V_A79NTO@aCxB!d|OB^>^1xOXUHQQ9Y64iw7xL4jhSvMGB(5f5!zP=&{$^V^sSH*bxNEwlkjCUnSfLsbwRTRU#y zQ)C9iC$%{P&e8E+~X4xyUhk!y0SL7YNSU?IRXOlRwlu()mlX-B%0!-84LidR~%l zcgUsC86zBDaJaGFiFV7#A%s{rJ?7qRfQ|L#tweJ*bQODcOF!vYd{>9<&@0GIyo%Rw3zsim`aX~dOq2^ear}mH!|?Ex=^p+ zg`k&*^0y-S%&H`G9`4EOQYM_gSMhn-%3|**cxWe>OihD>_+vclQI^V=UCv9x2ab{S z$kKKr(57#~E$@dD^jc6uvV-`SikC^nu4uz%y|t1({UV0z9?i6Y0Sj4c&`BjXbkbVM} znmUmK2Y2uS=L@)rl^@F@cPY7-F_A!qe}$d(YwwQF>AWay%!o~@Bx!>)ggpK3fKrGx zw6Xo%ULlI@5E~R9J^R+g44 zhPT?P-p7**#@#5LGq9gnV;~Z+C_b$QlK&2IerzbL21qzyv5wRQAPs3hBWCxmTLTdO zgtrPr-}+|-HwDdHL>-sA4N$wjP2!5_^bm>NQt6Bf*yRDTE|1(N$;gS{a4=No^E&N8THWq_9_ z%V8gDc4V9S{~*~NJANGOo8rDJuMa;yNE&&}Kn~*7KJdDW%Ka`r5(-SZGMa> zqp4})9ovoq?2XX0xPJl>TtR$A=xhFnfSDq7_QU%Kbq{cC=APKdACFmvVjU1~E?H zw>YHV0>!*Pv4cp(j`iqWm3D}0u*jnm!(9LJi9ZD;Z=odN9wdilp_hVqs-|&K#F&c>ufR-NE$QE~C}$-NxG=zK7e5PXzAUgD5O4O&xfguJn?#Uz5uM4c3WLFEy^za{+c3K;>F8U{LSt?1WfDk+6Qw)aom|<~8OTY&# zK_&}_s9&;YH;ahq0dH()u9IvUqZBYtvOm_@xI=9)&Gv}i1F%I-?bzJp=jr)Wj@{y8 zGK93PfTew6Lql$?^{VYbh4I^_dui+`Cct&?WU?Z}laGav%Jsjo1IILB5x6kK{Wbdv zKdY--96+7JZZiOvGB@pAC2E$T-#rOK(q828>qVJzo^oY-T3$1FHnG~q)_xcJP1T#_ z+@GGE7tp$$$olAXD+=!sUH7;=z{;tg-q(A7s}-qb>a`-I2Ad9r&-H&}K4W^o^gYf_=Q7s8 zlx_Mi5|9JQFD+xI@QSXrG(h7RBJDpq+0iIPjH~{F1wJESnHL>6P4(r=eoTEPNv0?F znz_CHlMV*aQAN{@BILY<{4C2KAvt^>RaG}tN0UnS{7rkG#%0k(+R^U;%dT#Dcy;W| zGQqiu!qZ7-ZC3Y!TF?iAg(-4aw*li6I_SBZ?eYTH%3=zr6Zq#GL168Qd;|w2#pWwOVUH ze~;&vP=4$nm_A? zn4J5gOjt^C>2LCQJ4JYQ+h6pD-?&)ul^<0^?GSy$5&q1g3A! zZWljHZCIyNgr=zQd4~~(QKmI_V2`3MXwzp4;7GiIM4DM~ae$2+^rq+F zc%%(3P2{lo^b&HC%K634R{^wLYja$v=b&R|QP+9Ay}{lB^87bsLyq{~Ic6iz?zn&* zlXp^tpiPHWm$=8j!;s5~XWMNAijdkOULJb!@$4Rbh){!@lE=YbEe7UfP77$$psp?S zMbIC!sE7|FS1BHEmwORJO+aCBLsa-3KK$ID@@1LY1{aC4kFs^sIk%TcKDM!n0~Ow2 zu+W2!c2@o;$p64pW-_)`J~V6j~9w64hPWGKZ&~2RI@-O`8q&# zP|;xyoIeESEm{t{-UlhWSx}M&*2oqEQo3&te@o3KbPlV45xbcfzbfAX%m;PDwkGD_ za}LA`MD$z9(}=jhl|N|*E{`b6n-;>%DUv)@>KWtYM5a`Ojl&&2K;<3lWV+}8tX}{K z!27oE8C*$|DG!A9)FqAbkcOEMaz*G0h^U=AV|cq?+|}P0GU4a@evtEfBF+{0VwcI7uJ6n0*swZD`f!pgQG56 z%A?F&*u|%(BhF^E0xGaT*h%kvkEF2;U02-h)5k2*-2g5bx>9|fD<9;{%;w8(H_QeR zf#gV%w2kKYg@^LlAqjaLz13AMWYyU)GdOye^30X)XX)wiaECOxJ%I_!Cr>yr>>MKE zR0W||URo;;xnvy0sF42Q{EN*Feqa!k-U0n&yGwPaS&9q57C3-5_4^f;S{a3r3MPnM z2X?H}nGkRjL~20!owMevqvB&l*CF)6=`G14+f0y^^oK7pt{G#h+4qW^A^S=1Zu%dH z7{8K}{5uf<@`$>$>ZRo4r_5K;n6dT6d;+dv>&hKS+$26{46fC5ibDi6_pUCcC^_t+ z5#1}#ZdkouWoU!V$dUOWrc`a(plcNf9W)b8!ekylXRq_Ncrv=Wnw=p8b;ay45XR|W zyT-Q1z@?o3LmX+yDFq@Rew55TGFNiB(L3eyLU=2(=whQ8c*!%y19Cz+K;QGtUd6h{ zSzr=@YHDhIm!pKKJ4OWk&ZysHy_ z+&LFAaXN<~NM^1i4K?lRG-52H_2a4l$k?8ur zSjFUU&tDv^Ufp^8vkW{?R_NJL=ru3De}#qF5uoFguWITbR0V6iB#gTYh2A6NszXHJ zv_Y?126a4>pb88aHx@CTWQe3Ce{udYI`+Fs=B#5`C|071v5`Swmi`z-OAj<>yR$mz zwWI-5a>Lf{rLfKPwVLS-8WgsqlX%8Q*n?cOLDj6qu@le$*}`c}ScC`t;iPt%!;i~f zMVL}UpI7{%&ISa&I) zoYznaOf`}@6J-8Ti&Acg-?-Ue2K=G>hO&sK`AH`aS%_P$9i-YjL?_tiD;8(4J*lgJq*6BmaYZo(@D+nB~<6u?lo?0tHPLwe}Q?@a+ zOVE+?z?ul&yRf*hmOq&seqtbP8f(axO^u3Nug1AAVCg9}af&od4+w^aU!hNu|5+MG- z^Q;U*bUP;lMer->Z6?JV$H3YBI9Sc>tel(9B6p&^_r1^;g-4B#A4J{YuK7gNJd6fqn-y#I5p3Is`< zuUae7_at0rhMT;~!+uB<$@ic3m>4^X?A!^hR)>vU>OH@M@x=oBOa~K~5z`)M(8bn8##sS6 zmzIu>j!*4)N>IiPcXo(M1jWw5>tM6NAbQ7MtB1QA=Z46vmxld%>rPTVTiv{>&|717U9ruGDGDk5U z_nfRX$OeRz`<|+#@MEz#KviW$%^va6=(u{3D>?Nmhsaf`()Hgs12t9QrTKu}aM&%O zjB_VSE<}sV=538-nru%#s!$^TF3Y*tW=Kg$U_b{r$#-(gN?22>Ez!Nkw*+GBuaEAK zd#2r$ho)_cbH-l3ng3~yRjdIF=%_8fFA`3yu-hrunW@FJ)rfN7>c3Gua*=H7a^@`}u_rs#7QY@Wb}w`cvBm!1uo37Xh|?^{}aX>E^PHn`*uWr?T}F%(5*kY_dSV(Ev?`QmH5IYB8OvVO8jc~GtR z1#Q$;)`}kXm{C{uAK2wy3C37HcO#pAGG1OG!6Y~UQmjhG$@4aVQ`^=D+qu8T0aask z?~AtH9(~UZNiP{ENyAIQ1Sh%Tjs41}1=a*+xN9@lS47O~0gy3gin{M;fV%836;=j9 z+V@^hreziPb#7D_~4F#hB6kqgO4H z-NaA+RJ;)bSjN?PTt7anySAIOWrjVzK2$Xvv#d8n`65G08nAyc$2CavDDrzdJ@r-p z@1bakWe~a-y4&apWm&cPCzt4h#Exsb79U&YhdmQ^$2|)jf0t^AKY&iNqcF+wCir>7 zFQKw=CNEt@aWDOqN)#RZz1=JoEWT`lYq`hqF-Db2@Fh%r!~ID>+;;TC+Y!BrYLIbn ziFL~nm|<%2g;Y!K;>0u_{2iDCGvA(x@524j(W9^Yo9 z96=0q9`6Z9&S^uvqZ>rRAL1@354R&a`WT9t)Lb2>%*rviqd(jUkH9S+m|fu!;gJO8$oL@=m0;Cu zMb%y3KlT+5asa?m!zdIFUBT(%j@@IU*C0F))&m130l0CNyPbPg--qZCG{tB9ZZWT@ z6MRb&5-EiS*L3+l3EZQqJN?W-lf)2ybvCl;MSAhVALCnkwG+b+P}K&-W>TUy@(GO3 zQ00`*t#j@wV~lCMz6)t7j;2l8jwn_)lF573`8lM*z%s>MJ2G~5`y+Pus=5OSDsDhE z=fWWM0bMwt-+vq*Ef6al61JQ`7?70V$-c_8zb`|0&afUhdV0d!20NvCW|;_% z3`~R_&38RsjI{tton^|g`E9XCgNz4!r1+UjOWfc5lk!)x81G!sju#PJo$-CpFdPM0 z&}PlNQHs&i}e!m)~`NHXIbb3)`?2NoxARYX5Cw#-)0tCi? zUH@L-GpSTaaYf{va!dLuI+`ps8SF0fvq9aS@tU+l2g@UJ?{V2m3fxrn$1D2-DYxt^ z!OJc-@EhrK+&|*1?Vzw#UpU>xmjIbNQP2kBUgq+4PEI@NJPK7IkmU z@iQxuVqa{3s&Qt-vFscD64Sm;8uIfk+Fbt$B=jKHfwx$M-X!^tgQ7c?Pb&}PsDaT* zH)V+Yy|g%1*mu0Se+ai`=>5>N z8IJa&&F4!85mRd8rz=8MoaWElZva~C?K#V^;mEzq+npoubTW5WsEUQ2^k!aKIkzUt zGd&iT8g;cEdmL7O7j);>RGFT+9)L~q?SN}RTbCs?jV#zJ5`gXKGVN8{@?3yNeAHSh zCt*Pw5!}EjQidhI;+)qYq>9vLjU0brU>W@Vmq9c8{nz~}VQ*SPtNNiGp?YJoDOq|IT zMhx*{cDqYh;Msqfy_oJB=5BTg0Kc$!rcr}C#!n}#hRQvvbFx@kA)8dv6+{=datL;+ z@K2bv#vCtTU2~D<@jKVhDFw3@<(vWfDg2jpxU<9388ecd# z-xmHemuzY_ec>PE`}adAbh$w3;Khf{))%n*3INN!7%M{dd7;XsGJW3cMuKi957r?# zij$|1WTa!g!@0zc)mkofslCCg6d8+HMy>hs1n!?orT8qy`Z*<*HcPR#Mp11tHCx)i z#|B}E8wV;$HNpYuuU^;Gu|)XS%Nlx9yY$Wqcb%9{G*%mxS^Z&A0D!)evg@7GlQ;D zlN8&^lu@I}O%^1!(ggdv@OJgmZ|tM|N2U(NZh!uX6bYXx9UJxT@^gr8wF~uK^{mV( zKaUd;JD)(gWOZu#0zipX{mzIMUU^!+-R>@S`W?ZYip*NwU3RKV@jMvrn%;7AeSf`q zTh{}^)tag$#&?~Bt$H_Ww8U=D+8X{?y!yNA1uh(+nAc$hv-^IB%PQT;ArFeI_SLF$ zThk7nnw8RVWLZOMIi$85V^y=JkxG7sf2u!T!#J+LujJlRoK?GZSImb5GT^vz9Jqx9 z;j~tf%+x6>w1&zel_o1|%PVLm?n6?`S>PehSyXDdSNNxS0K$VTo*SR3r3(3BMfT8T zcR70}HzL>IWy_=fw6i6a66}K7dHU#hoe7@Q1S3Zw93%Yr8oj^E5UnZdl4_$}SBVjW(xek>s4mBkuz-mJlskO}lKeOx1$x zU39CX-D`Cyu7iVAYynhD%P@K4f?zT{wTJ`uHTJcEj2gBlcgiX0VbR%x7Wji6_C|lf zKxO*hYcfz_T>F>OH`&n_b6jYYO@Hg&Q4Obv^30T7@ys?TxJ2`!f6nGX92J5L3NQ#` zUuLy_JA<|2W)DZa^A+|`SR9s${J!YUi4)DLthbV7TKa<7jBg6z%zND_>uBimNngZy z`6c?4Nrj^bCaq2FVKLghZz^3YIbXf{LyOu|l-vd1;?0%BY?)qOK?M9wXvvlA@GccT( zm5l7kmC9jt7Qc!?OnNkI#(8l*=}h2@!Pab% z*8E>2|7U&x-J#}Sm;xAjHYfI@w>JQb5ej9ZK@Fa$KFQ;%GMg*(hYPMqRUShYqZcb15CXO~RA8>`PD#-bj{dFOA)idz?X*-Cp78D; z60u~{kGi3^o-euaez>z!Dxw%C3oQ#PT0mXl$ck7|08C+%3 z&ydE$O2P6}u40Ptb7~il$3r|Jnk(%r0qP>hZ?fvYG)!{$I_*f$5^H^&g|$YXi8ej_ zPUS!4iGm;CymF%x207~ye3L;Nc_A0a8T}tawdPm=J6PY-FrILUY%&hckVQ3)Z#a8i z?8_L9-`hM$3u7t{R#J+AVL&cwltv>3#(po0~xw#=>#k0U(c#bPrAyYwG8owCM4AB}47-W(0LwNt54QekTWV2tHHl zm(3X$sg5y+zG)DSi5Zs(G|#a6vB><;;A#u!y92!3iZk8+mIU zF%)dh)oO_x)}8tp(0keh5PGO^FmNyQPFN5Qe`-g%+5--zjwAOTL7BK!2KxJd#>+k<0&yTSvXIzq+@sz0>; z!+Gh(l8Q;cJNHStjfzgdY~Fg6ns*knSwo8&YV^$R>+|rrKcU7AZC?ADh;8c#+}ENT zpKwRs5xz|F9EoDiP@2=F@#fg9}#mLv5V;WBq)G+E1_ zIrBMviX~lAJtAN5&`<+d(WRJ{>OlwS=#!z#q>Xv#uz{K*a^;7Mo`2AH;Z!eiIx6qN zm#IZspK)8jTc4&D*}+o*u!80UG%Ty6K92 ze`kJ(#147^*-QXI5CSDS1+dV0{<$5$3-lbxy461TdO z5yn|b0iv72FB9*6vm0z?^O6*(bSRiO@ETSkX@1KGa`?ih_0Y`gHPfg8iooknA7K+s|f6Z9m*>xjO&oCkGFPobocSydiwc=CGy`kpFrfF=XOLV zcQ_b!6szr^u9Z%^KYPIL43=y%Dn+B?6hA*Y@#y)GNLBE+Ev*})N})Ll#`io_9D#Yg zH3tEqT9>cr$wIJL`uG;r+UJ2V6Wiubz6#DG6_mNtG^+v6YOeZ!0VI_ZlS!Bs__KWb zE@M%L5E4P(iFz8Bz7=)~JbpJ}m{z({PFebI*JkpBbn*rHdO_+^3=ohLyD8!Nrtt^- z7W$4ev11Zh?`<(!L%`aK)!@NJ2{p%ELFAm$FAJOilbk*w4srsuZ)N}b5m^IFLFm)Z zH=rM#vf0a(z0CdaHIM&t<7M@QiWec)1* zIN17atzckS-NG@Ao~pyHyRz1vx8U23Wr2zYkRjElN((|##>(>$Nn2jj!woW?b!-z- zz4;Fil#}zAHH6>|u6NGnq8RVNm3yqp1G@^=BTuZ<(1wih_0*p{!D6_8)+iVzv z32qcgI&{20z~{-J81!zYPaaX7G~@))Sur$Q!d){S8sP$?2Y}+>VW>cm=Am z5{_Q%(en!(;9biOR7EEJWLP`?#8RY}WK4_Tw+e^>0`1>O}48S~lda(W)qH?rs>@s&MDFv~=KX6^qk5X2hM(pu~7k0uMmN{z&hQy=EhQEPSOMzH{z~9rMP+aF6 znL0eNvpQF?g8VMkQ{6a-fkkE2yfXA>zHRpjMbvpDgK4$a2gwp>H@v0%&;==+MM=2v$$fo!FMgLuJz5j)mEV6yJsU z2%cs;H(TZ(x!Yw@f#HQXfg@n)pndOL#i>N$7k=oVt}%_RACgvD?pcxgFK{sEcF5Rd z>g%xcJ$E^bxoaQtp?zhkP2CftaehN(>(QG;Xm?3#~xmD-1D0(!wM%#ELE zBbT9$ThA+L%NcLG1~~*iP)IxGM&z3GJJtZry@1jw@Vi>9St!$%L~#6*jN|sM7IRZ4 zTFVTHe*tQw)5WK8=esZwJJzZ&1|Cx#G~{&<#tt}-xXTuQFeTLNG03j6J|3}mIg zsajiFv?tSXkxi7gt3^y&GfkoRPlnKI?+L0gx%1BtRwnaYi}jU+2adLMwHjpX9_vA2 z?wOKct=ETL2G>3=8lJf@wLq1VJJBI7L|g2aY>FE>QSGX{!TcI3G^Y=L08EnE$pKfo z4}Ql!vDS>&5xXoc!eGyP@Y;ql(Z} zOZvcuJ(5m~RYb%Yj4;qGTlWtP=qCWgLBd3(xLi-+l?fzj$~P$(J(cl87B7kGX zA0N4U-<$rE9MW|5BFxWf{B_aza<{KH4sHvOqZ))5@@3<97OB<5S347Vxk7FTX1kBhi8J~6!tl|Rgg-QV+% znz1T7h_ZUMX7;S(4sm?x=%v-D9CKDteYXLGqjc`>pRzXzge9}Ts%9^^{Ik0l6EgoKW`P7`oqI312rCa+63iT^q@50jX2hWT0h z6LkpNU|IJ|9?m-TM-p%ZlR-0-rA40Wnks#AUADJUl@p#I=c3d0_5+1UR^6ls0gV;; zZZ(cBA$IAj6=5y=6{^kHEK%Uz$X}z*?Yr-{ozr%d30ATPmpJwIe>(1BEBl_4X@(T_ zwXic$sjT@jy_W>d<(LH0x8Tx2U&ih&KId~)e@dHUgc=KP^5SpxC@0tj&)pr2qYCEr zXIyN2Sv1ouCXqzWo|15}J8%FjuA?|pF)SL* zI=Vc3kgP#avCcznZ8$)K8W?G;x}HlnGc5{#^Ae}cNfMqk%1i1gGlW^?8Kk#Z_Yuy> zC`XU^W@6#dOS*{h_7nAv@47cIChK%_MjPh(dAyHnw;dg#izlFYZ74)-roZJ&<-*~& zHQcnV6&4w1>xa_0=7JVZaQHTPn2C#JQ%%|P9mW7;cK(jnd>}dEYkvQvwCZy=a1HBT zkZ^;?9~Q!fU7I*vVN!_ZcGEvFD2Q{kB>&~AbKo?&wlDr>*AZ%FaO%l%p$;SL35L9m z0>Xp1bFKM1@_F=UIKwYyQHoqeEB_>U&9$B#BtnObw^p2Ub&qk?T%1X zrMQwPJIgiWZB%?#z|>Vpp-xhEL_=xPlJ^KwTuAr@&>D{ScDW*@wb}B%Pu5LtUvwP4 z;v1vo&?e+zyziNykn7^bNI`k*M!$T=@wQ0>xrnNe+=#{g` zu$+Dh;Gwlf4Bhj1qPV5sTcTv>wH)qvp2|_i8awc>)yWhgI4zuYFFEf zv%ohkS@-Z@F}d9WSDQ3NR5;OBx-T3{0mL+Fy6t z{EBH!{np*VJ1B8s;h82MB~>Was$dn}h7=NqFs|**z@wsv)UodACkl7QOzyXoly)uK zoJuqZOGuAKu=KtKu;i|CQ_`*5*JGyc=X=mIB03V6t$$a;hYD}s*;>{SachUIW88iW z5?-!JBKtZ5>BP~v{oUq-CU>LOlT-I6&f8iDaySK#kYNsqE^AM?#G~AbmAS+t2xa9g zL&b-FbET<|-JS+7LH(n`t%kOSxGC1sb~mZm#fHaJAdhmed6}%M#FeCH zQJ1mt4Ldglt_=JQC!A;S!J%dbk?*omDi4Lk;;?cBK}SB0WB`MPK7BGJ5>ECGlG1V* zGV|j4hFdmC7A)hJIPCa9$*~ES>e2Mc7oHAA=m!ifOm-~C`fnq`VThhz?;Z1zl}#>F zxp_sJK;ojE3SYPr_8jII#>{%!JR4f@VPlGm==luq@yc{^aEUo%E*C4@<>{oZ|8GVG z#47=o6HX%cs#eE2$`wjW61~U$YI6My9)~inEbi1!`!-o^nb6a}>HAp`w>FyfWdy+) zjEI`Kzih85qZlG^48JzQgqcfm3~m@d3kzeIRgQjfrZvlvo2|v(#_;GZI0M9(sXiqI z;DMxs?_D=pdVm_rT=dv68P!&qb&L+`U@T4GIoH&D_Lr1>`JW}8)@*?gbOvJ=*>_6S z$8qkU%k0e=TJ;^y@w4*CkY3-VTZPx1*6mNMCnm2#d8TDY4F;872Cwt5*p6-Tazgx0V6Ee zWIg-`e*vq)CJwo7LcLejvkNNG^*gg2uhm4h|5+3J0@J%$ zFzU16K4m4Z3HqV}_{Fr|4V~e><&fUl^I<0XZUc2}^fb=As@m+OFZi2;RB$pv*a4|r z!u6*&Vg)Oa>`(60LEY!Ceoo;Eh~B)Zvc74+H{5>jmhi{)z1u~oEx`3%LWuTHRWrF3NCoyarRf1NS)1I)`7>W& zI4w?-Z()n&xa&i{BYmZPeWhJb+PjQ(LAvkPSAu=(*`;$FC!2~F0PcrqLoQS33)?Z{ zs~6$_SO>_Xwgl8;J0fe!i_X3yvknzf&mSy|O30FOUZ(Xlg;bo7R zJ$9Y&4iVntudKP! z_jHuZ1GUF^pcQ^2Qtz9*Rx@4>{uO~-K)H&UzGQ^l+xSnv+kNeWk_Huj+h=+elIfII z^6KT^9oz}C@aTjBwghs7Qu1#usWmV4Y?rDZu)U1748P8EJg=y8=>JL_0a_#d(TWArt)l#2o`3-6=mx zazGkPfi(WtPZbX124i55;MCs!mxls={r}@Q|KDCx`hHMXM#v;Dtm>F{1i+n2AHWaYZ;%N5_+d$C2e`!LGiRu(vSm zg{#Hft=n>dN~lAc0wOYVe=GhK@UG*7%*9>#T}@R%!1>#C>(@-RbXOv9p3ChMSfV4< zV~YV0opsybS)y)!uYSIsJ$8P3`xDB)Y)KCQ%vj^*jC?y=jaLvBi!qEou_@)>*RAi6 z;iDx4mq6+pJo%9qz0(aeE@kRY-jk&4a~#T1mN^d5w+(mS&c&sLiwh>fT5UvRjJH0q zWB?%lQ>bdsxuP5&GdaOj4XVaECKaU{tybj)P|IVz-T+suJw{bVrwWQ;$OnB542{KN zRFB?)1xkxkiLuvrv?%s%YNq8huB<^=9RlAsF}v3Dau7}n2lO`c z`{69N3r{(7H?B;nI-jouh?2UhQwfd*?M_PFjSs6i`%Fn~^a^Lc^#ZVEDiuPF zI?va<-+QF}3Baoe!d=%Ud#XS~*#v2?@NE)nTr*tt@x=Wz?32Z!Zb&mfvKOAiz8qjD zB7_Y_+3x!;8y36Q4Hr$rYqq{5hIiX)SJ;9+#O1Z|d3L_(<^cMr<`EjW9iDLFxu3W< z^bMP;^nR>-Tf)l`xx=l--9z20**@JmH%FLR`%Wn{a4}HJIvW_Z0&C;Sp6DTefrIa16X^{4G9*)w z2y~vi>At@iY=}DI0@s~~Yx4hHZbcqw*cT*fQ+%>LHFe_0J5Q{dvOZ9Mh-=zftTeZ1 zaK6n7Q5wZFQ}b#8+w$v8Pa{s`$DtV^b@1iN?G<&@s({choIquh zn96e)3QYQQXDVSsiy!iL6mWC_A!>t7NwW-JMQ?T%_70xMNYYwCj`$Bf3o$ZCOQA%1 zWX8wG>sQv~3C!Ffrh4t>e@<$RBBAEy4nI?II|JgZ%Hk%YUfGxIi{ZdfczeqNogi|_ zq0`HWhnJEMTW;4sm!~p65YtDZ8bHU)up%l`gcK!PF*O_o5MZ_iGlA2R%&cNjU8xrG z-Bdod;1&8vW@a(;G#&M7=K|NwEElYvlVyRsSqb&5t9{73xV$#x~TXk*rP!ri1 zT&%A7w_r=g<*gn%l643(>vPi`VuWr#WuD;>B$|PW#OK1Ay-|H=@ExFAB0VUC*{cwr zNMT=&DauF^8GCew3tC*=?fZA=_NZ}ct+P|bt@-yRjEy|WCJ z{b3CBJ`nn0oJ+db0wVG91bO;V}X#XWM? z$=*IdtBoFPVL*PRQu(;~=igs!*wm-LLoIT^T4u=fK5g_?u4MX$4L}sj$<01f(4Kpm zM`YsH-2&3tl^l(C>`Saue)+c1%0C#la)Z&c+pO%P$@Qs5{hs-zE-xCxH@Y9g)dWjx zfKV1CRx=OYe5*&TFD@ITHTIw+}_adyYVb6U!5DPF2s}9CRMVT z--SQV5-wa?)83uiwcQS-BM%?u>a$RDb)BpQiZj87%>`_S*m@5>8VL`;lgwN36azv~ z$~rVp6sSfr7>x)?E>$~bIoR+cQg~AMzV&bkVQn_RR;F&57^19=(tqfr(w*8CPf{g$b)6#Q8F6F@MU%Co7gH!}^ebNbs zN7B3|t;iY`$de&z`p+!qd=g<@L{U2@!5v7z>p`K`hYtcUonCdt80cIMW*1=lSLhc0 z`jgew5{ZoS((<)A?3Wag!({b1BWsbVUpczh>YW>%8Nd~WzZGin^^Qqf9Umy7M|DZ4 zzS+sxBi<+E*X2n3iiMMtqfS7(75P+j%`WorZGTWdW<=8KE(70&+5`Q<^mdr{Edh^w`<;fOf( z#BDqa`<8x5W={P?5KTf((gvyoQ5!iU1#X%%?cIsq!du2M5YM%=eS)ceR54 z;5{Fs*|$?vv5X&Wr!=G;7so@mz;Kf`s-d>+R1WOP%s5^k2z+lt6=eYcg>O9z!PH14JamBbFBGyW(BuWCXOm<@?b79WSU<#Yd#FK^@H_{R%F znAfq@)ZO*Qe%t3imE(h5!0`v%>X~V-f1hrs&t$m-1VI48edZ!OAg|-(L=DVjF?8%i z+lx$v)%&c$;#7(ZxwV;@GWHfo{$aO$XDmV4RVJc z)EYQ1{B`DSWmSz8cn6Gu0ZU3kb}Qgh$h!~uP5#7Hlak=wwL2;J z-MO2x(>Xw$7c!~j>rX6j5Z(N;#c$hP0S$T{K%0gqt*(VQ32*oW)dJ&UV`zBhpIK#Z7dHK&Y!_k!bR|`2DM|TSzE1yAhCjj?!?mxB|Y> zRtDF@|KfxE67%*GjO=3eV|WjVOEJm!+#~JV|5hr#aM@6>NWtm)vrveXlb|bl?1ziW zsCR!+#)kr>0taGLadGNn&DX+Q;GtD~sRPYhnfCEc+e>+P{o#0z4v+ zFX_?6cLN(|r8z(6pAOt{I3*B}j@+I=D#kiidl?>$C0DJA)nYG@W^-Ta1J35&0+F&m zF5m}@2qZhhUFk=8Ps0z{wdq9L!@u?m9sAg@*B}DV2+P5>vd9~Fp`G%#{cPvlFn5ol zP7b@GkQ5nNAaIbA*WaqR*U$8I0X#Pr;u+uD%OWse-rKvFddXC$@h>bGjq`C$D;ex( z-P6+a7fhDl^;zn+E@65}a}?^w0s^XUROd71Q@4%tJyYVm6--D^BzFnr9pSy~ImG-P zZuxZn!PL@EilIG}lm7hkzKCrG+qun!+j4T)y$vL&H0HMCpQs6j0nt`P@p_WBp|(Sr z>d1O=+E)4dJ_-T>Wb!3q z9UiW5%3u7Xm$eCA_@KV3>gs%_P~nC=elCLKd$+R-u|1Ogriw~Af_TqP_U;;-sm%sL zcb>&Wul=593TTk^s(r#8)ZYF~QtHdPvFW@&-&q>HtU$Yq>nZK>-+Glr+&b7G98Bp* zA#-~r!B(f;rb4&&PL!_nmm(*{-F>0UP9azJ6?$clL_vPpc`2=`cobBezjWdHh(bO) z7znr6hXc(!ava}!_e>8n7bn+UF$E@xpebVwiqt>HA_uu!5%wG0S@JY9eU|kzcPj+^ zZE%m(crMMia47nF2roAM(OdYWjuvpfp_AX*B}pUCXmSJ;*}JU#*@V|eO-VxH%;x^- z$_IyUjZHgveH_Prd}BY(qlG9Zj@s*)m$K83N;?>(9@B*W;q(?0JFsuXk^2_n4bI?p zz1~^rWcX?EwQf3n8tlHghHR}z(W8AodL+ZSW%H@aZ1HMM;8Pz`XPFgH$T{N!rOi(K zGs8TBp;bWt%IodiQu7v(cFdQ`MT0uJHK+{R?e76F;V8}Jx-uVAbT)T8|Yn| za)-T;V+DVw4$-bDR5ZUy*@`-RyIT2leS!s3(0SNHjWO=^Q|v|b!~7=W7*qVd9dcfv znRvXpKXF$v@${1vwu95v4;UKM1hgy5Y4iQIGv-{zYY-tpO|impO?59+4!+j3r6voW z6S<{R=h6_VK9w3H=>Q6cMyF2bEtM~6Mw9A|W`9w)G6XS1WT;;$=6&hUkgYuCKdtD7 zvw|jRv!t+t7X5hS)isEBdcvd$6xp*(0YHxo$M?UsKY>R4Do?AHmV zbSvc;55C+T9yTJ{&ZkY&gw(P;mEWHq3PJmRA=P`Di9iaMRBj%%xJEkM`Q>oQ6D+y= z5DCya-FE$F3jrcafWOlCmBkV+egIgVF;V=L|)dXKYpr)of}ciB+7?BV%; zy4b>->76IE>vI3B`zdxv$jbh+M4q|ex0G|R1uHVK|L4x%I`I|+GFj+3XfPmBRmu6u zq}rjty?9H?ehP!dA55NR&69RFq{wHnvwSJ}5|9bw#+$Vn z?6UY|c}16Xed0aom2P$r7Sl3Q3pYPINA`|zSqDp%PKybyc}rN?ISolxN=Y4;1>fal zg*q15+&QRAMa%ha`R|h)YS1_qYE?hTrgDBrr0pa{-JFe{u3B_u_XC;9Ep3g)*>iEh zQX##!nsZ7e=E}}*R9_V#CreOoaPOjbBnRWNwY7EslP*LT{&3v%eA?__QRs;Z*!Vw= z)zt~7=d?bs*A_-(=SJ0VdKuc`x0+H9o)xY{L8@@}Wmc|o#Ky{%I#EimivLH2lN(QQ zhoPGsxPy(&oj|9ThZau+m#$MCl;e$`tZ}~uNckbhWf9ZO(k6{7`6(8zoZ%3epvYS8 zA{eWLK0B?tk9x+>C!9t?tXvTpo(VPNEv-9D(FwU~tzFS*Z0i`%A?jXL}zU2<=y8BIwvc7Rdm zsOs~!@q8R(B+t_TQXg@*?l8>Xc3gTw>*J6%eFN*kT(Y}KVO>y}MOTrp;_x87wRGd_ zqL?}@xu0LtF8fMz|G{}LI)7tewoEAQ$eGWj?T+uqwQo^eCffWYzAD@|X7Cy+jvc>9 z>FZb+V+m_QV2hA1@_oACEFFazq-&u4fWR~NouAMxF&zIAA%vq-H}BtgJoFY6>S2YT zW#tmX!+VI;Gyc%M69bG!mI(z9V__!ra;#dIN6(hZ_$SF|hWbz8faY19$iU2_v}z<| zZ(oY2W=E9IQG8;?ML35Z^d2nBzC+$0AtkDxkiUMG^s_`|OUA>3qH*xG`n3HDbwjM% zkm%IWSzCn?W7CR1vJgsfKHDGY$1f#7WPa8hZXw4D#6LX3pcM~dM{e5}y@_W;S}sb{ z<~e3b``hD^b0WPJ9&xuW&sRpBQ#6m-UmMb`3@_wRQkqrh?SC{` zc%ESe_W{Os3;wBap~TRum3~#f3)=IoV{m8fxoQ%swtos?jHI4U9}PE=e(w8FN`pkO z<@iPc%RzLCg}0pz?W6?4p++#excEyMH@(x6rKUYSSMgjK_r5#W`rFPT1Iw>-%N^GkRJf}({)DDdWzz9Y*~SZeW1E0~tVo{-QZbug#yCcJL-Q&=x!u36 z`LEB2NGz}CDv4R4>C6zUsPak^<(rMOMOHZpbP1w%V}$`6mI*8S!aKY#mr}O&`|MXt z5L*enS(ncS_FKH1(ss%^{WM8F2Am}&JOhm0SG1p*ni_Az)%%7Q2cH>9SM1^YS_~cz zF0nV<{NvH;MDp8{7D(lvUnpmsu{s9J%6o$i+?{Z+EAy=4hz?5K-%Lq4Hd|Mf`P!uD z+D~$Hck1GfXVVsZqcC}dj;W5=_hClwWy1RYRpdc=JAuS&UmekgIbQj*k5LnOS+O7d zKXE`rElTs<3>(W2F65lt2yW(57`#4htK5-LK7x$0GQ9fx6l<+J+ig7MhQ;;BP7V+x zuc}C_#n-#^7YTqdgS2&t-&Mj$g|J!OV%FInuA8&SogHPVHRe|rYalYJU%fW5{u3KL z`5JYn@5G7#aFu;n3RWx9#qE5mL&yih>b{v0ianv#-)iYgqH!R;T;Z;@#eT9lsTM3* z=M`mE`4pdnU58hz(|stz`lhva4dUH&^d8G7k#X#aAxwFsMOOInhRd?~5sG7HRwy|J zA1|^r020MH#Wcq^&s}W|on=xXDC^kfzcfF9m@yV=}6GQq-^VVWwQ>1)?8m&XL2N;TKuMmc7OW5fxVgeeaM^5+& z=6h$dyuAfEt%ej>%I;W|KF1W`e~@4?@16VOWbxi^AdZa7IoaE25_+ejy;&dT(;Pl8 z-ybs$jK+Mk_oky7gp-B7X^XpmlU1Mve>z)(vW5krKTTghy!mg9L!>d+9}QRdJV{mA`O#5-bW3SVJWz1Rc=4otp0puD$VL{s$uHP8B2wAy{Av-68gmW zA(6;Vc9(B(xW%5RQvL_4A?WjfA-^SFDu z7+#^N+W)%%Tbj!g9>2|{oRf9)=c4?kHb|fMaBMRNqWe_Aytke3f-^v)$l}pVXxHn; zv)WIKr@br}w>C%C3`5ZRmO!bu=d}ElCl{{vzCclC;&x^af5hX7A$X$~Qx~ zbY(_iCbQ)_p&JwDi_*1HqvMPT2nNKvoN1%5@q+t|fipYM-2iHO;ND>7Q_&1EPvYZ# z@f+8^noq-bN7hE%w1>pmFM$HQs*|jFfehc&Z_&0e@a$8JHI2->28tKjB4PAoO3FWl zd*6a&Fi-avQZsU!y`q-NG}bmy&t92*i8B?Q*&D9GT&!>P`{*my-GNU2szE#X>WU0NeHIP4Uy}J5$C$fxhB(XK zT7kRlOs@tl_+7a8El4-=V-hY^R8xbn|i0x;w^1)+&0XYX;~Fc&r5@o9C! z#fJCD;6rsQ=AUdv zE;77zZLYCaKo5+N4b1B1TEp5eahfDk9hiyjh7f1gCMvz6A-ys>7!B5Xy2aA<<%79s z1~{em7KTlnqxJa;40!tOM8or~ccaSZ*AO`yyhB*&)TD>WvPxcPxh*{(3^f|Ioq4-u z3*6B*5%UdTsBTc;XNn{vt&6&*T;FVaQAdznnrBGSukl||@4J(SOAR2_$&(CZo&Vm+ zOUY57ai+QXf@7++<e2C|+ztYbw z#<~`RC^IST@R={%rI=zl_vQG}{Kc+3?ljoAt6u90%D3+1I@#QD_YM2nfn2ir2P+o` z@0zWxtTb2k{eck9rm7n?fhc_&XK@g{ttmnIshc3P z=Y2G~%zw25A&`}vy7S)C^FE`M8`k|F&^wY$$HP)A-hP5mMZ|yy{GBm~*K<0xAmsIP zFsQJcp;AP*gu~dkqd^BmHW| zFbYw;vU&K}Zvet_^sTGO1j~MpS)L}HUVJQmLW3c)HWSY=G3EI0h|itBzgoajpT-+k z-@n1U(rNZ@XXZ!O{U#N#g&NwK)X;siI>ln=(SPlIwce!D%bed;aQ3^SR zfjH~`dU0-|sLa#JgB#4;&aKpA1_IGoqf}RJ()Gs}t@!}w1+!rf#Bp1a&mVnx9qLBc z`gg9YQ>4F3Q{=3h&A$*?i z7Is4>ym7gCL;EsEGY!$d`qRSxTWEh62kr@3(BiT698T+=6XTHzFC@VD9pBF5)EZge z<#eTF8z}{}HqU=+OIySQ6E)A^m~FHse{;*bf_U+I=zs4vJ7XMc_=?iNTeTkEG-=O( z_V)W``oC$b*ra2rHzLXV&4bu$p6!26L$cB{l>ckyIo|?9Vbs5G&D)DuK(GJ!zj-@Z z7UjFywwdviVrc(Ouq76u>7a^hx|S3e<3J(@762UKHIwB4IQcM$XC&Ddtf{c8sZo@*v6|oT46du4Kd#ah zl(Lk6HL3%<(k{R$V4yXyoVcUK@f~{~r~z5|dR}4&G$`;SGq(H)I$w(UhNR80%jAF!Y^M-(*C_=;en+O2S-7c z_qTs;et9hZ&&&`}+x-WMV4CzoH;P$>*|?v7|7GP;mJ5(w)W9lxA~1z6U3<5?6%=nT8|FL16jpu`BKC@8Iom^QyIFEk4bf7yn=r zESOYZEt9thv+?)YJ8x|@8}MLWNWrpzf02B}`E9GM{`~_MESZm9?3ov@AP$W>hxsL! z_}4raf6)e0eSTf!-}p;^tL^`+L&Qa69xUv%g#I4bZMN2@{_msNFM%VqEEja4Mlm=z z$4rDo7()gNLJ+2tK?=Sq?t%a`Y#18a;ET~rU=C(jpa}C41Fs^~`wSTzqeeQ@G%O$8 ZXJnMTlOp$n@gXQ0Jzf1=);T3K0RYzL>`4Fs literal 0 HcmV?d00001 From a2aeb33c6cfae70d7d58b5d80ff59fe2a08cdae8 Mon Sep 17 00:00:00 2001 From: Gasper Zupan Date: Tue, 5 Dec 2023 14:44:10 +0100 Subject: [PATCH 3/4] format text --- ...onthly-development-update-november-2023.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/content/foundation/posts/monthly-development-update-november-2023.md b/content/foundation/posts/monthly-development-update-november-2023.md index 63fc63ec..c7411761 100644 --- a/content/foundation/posts/monthly-development-update-november-2023.md +++ b/content/foundation/posts/monthly-development-update-november-2023.md @@ -24,7 +24,7 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ ## Tracks ### Bee Track -* Release 1.17.6, with many hardening issues being tackled. Highlights of the release: +* Release [v.1.17.6](https://github.com/ethersphere/bee/releases/tag/v1.17.6), with many hardening issues being tackled. Highlights of the release: * The focus has been mostly on improving connectivity of nodes across the network and bringing performance improvements to chunk caching operations. * Addition of a new DB command that will perform a chunk validation of the chunkstore, similar to the optional step in the compaction command. * The retrieval protocol now has a similar multiplexing capability, where multiple parallel requests are fired from a forwarder peer that can directly access the neighbourhood of a chunk. @@ -40,27 +40,28 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ ### JS Track -#### Bee-JS +#### [Bee-JS](https://github.com/ethersphere/bee-js/) * Adds global batches endpoint * Upload size is now unlimited * Re-adds standardised BeeResponseError * Adds Utils functions to reverse-calculate depth and amount based on gigabytes and days -#### Swarm-CLI -* Upgrades to latest Bee-JS for fixes -* Adds new manifest commands (create, add, remove, sync, merge) - -#### Comment system +##### Comment system * Adds reply mechanism * Adds Moderation mechanism (not censorship) * Can be embedded anywhere -#### Donation component +##### Donation component * Adds automated top-up support * Adds manual donation support * Can be embedded anywhere -#### Gateway Proxy +#### [Swarm-CLI](https://github.com/ethersphere/swarm-cli) +* Upgrades to latest Bee-JS for fixes +* Adds new manifest commands (create, add, remove, sync, merge) + + +#### [Gateway Proxy](https://github.com/ethersphere/gateway-proxy) * Adds HOMEPAGE configuration to set default homepage to a Swarm hash * Adds REMAP configuration to set arbitrary human-friendly names to Swarm hashes * Makes the ALLOWLIST more secure by fixing a few issues that allowed bypassing it @@ -118,7 +119,7 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ ##### Doctor Bee * A TUI to generate health report for a bee node -* First version of Doctor Bee released – [https://github.com/rampall/doctor-bee](https://github.com/rampall/doctor-bee) +* First version of [Doctor Bee](https://github.com/rampall/doctor-bee) released * Includes UI/UX improvements based on feedback from the community @@ -134,7 +135,7 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ -#### Events: +### Events: ##### Swarm Community Call – November 2023 * The Swarm Community Call, our main monthly online event, was held on 30 November. You can read a recap blog post about it [here](https://blog.ethswarm.org/foundation/2023/swarm-community-call-30-november-recap/). @@ -142,10 +143,10 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ #### Upcoming events -##### Workshop: [Decentralise Earth Observation! ](https://blog.ethswarm.org/foundation/2023/decentralize-earth-observation/) +##### **Workshop: [Decentralise Earth Observation! ](https://blog.ethswarm.org/foundation/2023/decentralize-earth-observation/)** * [Decentralise Earth Observation! ](https://blog.ethswarm.org/foundation/2023/decentralize-earth-observation/)European Space Agency Phi-lab and Web3 technologies workshop -##### Workshop: [“Decentralise Your Blog](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/): A Guide to Censorship-Resistant Blogging +##### **Workshop: [“Decentralise Your Blog](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/): A Guide to Censorship-Resistant Blogging** * **6 December** on [Discord](https://discord.com/channels/799027393297514537/966664597186699304): a workshop [“Decentralise Your Blog](https://blog.ethswarm.org/foundation/2023/swarm-workshops-permissionless-publishing/): A Guide to Censorship-Resistant Blogging”. Learn to publish blogs on Swarm that are resistant to censorship and control. No command line knowledge needed. [Add to Calendar](https://www.addevent.com/event/sU19334495) From 83d56e578b92412ec7198820dcdbe51bb49c7239 Mon Sep 17 00:00:00 2001 From: Gasper Zupan Date: Tue, 5 Dec 2023 14:46:49 +0100 Subject: [PATCH 4/4] format text --- .../posts/monthly-development-update-november-2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/foundation/posts/monthly-development-update-november-2023.md b/content/foundation/posts/monthly-development-update-november-2023.md index c7411761..f3dc71a6 100644 --- a/content/foundation/posts/monthly-development-update-november-2023.md +++ b/content/foundation/posts/monthly-development-update-november-2023.md @@ -36,7 +36,7 @@ And to wrap it all up, we have a host of exciting events in the pipeline: from [ ### Research Track * SPECS template of sections to be updated is underway for the end of the year to give full clarity of the system * Ph4 and the Oracle are being released 48 hours later than initially communicated due to a testing environment change. This release will bring massive security and pricing benefits to the network -* Erasure codes is nearing its debut onto the testnet +* [Erasure codes](https://blog.ethswarm.org/foundation/2023/erasure-coding-supercharges-swarm/) is nearing its debut onto the testnet ### JS Track