From bcf1992a1c663d6719e80c944351a630571d240a Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 15 Jan 2020 11:08:39 -0100 Subject: [PATCH] fixing stuff Signed-off-by: Maxence Lange --- composer.lock | 8 ++--- lib/AppInfo/Application.php | 2 +- lib/Command/SyncContact.php | 10 +++++- lib/Cron/ContactsExistingShares.php | 2 +- lib/Db/TokensRequestBuilder.php | 2 +- lib/Model/SharesToken.php | 51 +++++++++++++++++++++++++++- lib/Service/ConfigService.php | 13 +++++++ lib/Service/DavService.php | 8 +++-- lib/ShareByCircleProvider.php | 1 + screenshots/contacts_backend.png | Bin 0 -> 37242 bytes 10 files changed, 85 insertions(+), 12 deletions(-) create mode 100644 screenshots/contacts_backend.png diff --git a/composer.lock b/composer.lock index 1d0c3c2b..2b373640 100644 --- a/composer.lock +++ b/composer.lock @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/daita/my-small-php-tools.git", - "reference": "3c0a95f97b8f09cab26f18a4c37b3ad73a0b96a2" + "reference": "23d37b41c4d492604e545c05e0d6abe35eb38cc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/daita/my-small-php-tools/zipball/3c0a95f97b8f09cab26f18a4c37b3ad73a0b96a2", - "reference": "3c0a95f97b8f09cab26f18a4c37b3ad73a0b96a2", + "url": "https://api.github.com/repos/daita/my-small-php-tools/zipball/23d37b41c4d492604e545c05e0d6abe35eb38cc0", + "reference": "23d37b41c4d492604e545c05e0d6abe35eb38cc0", "shasum": "" }, "require": { @@ -40,7 +40,7 @@ } ], "description": "My small PHP Tools", - "time": "2019-10-04T12:32:13+00:00" + "time": "2020-01-08T12:11:53+00:00" } ], "packages-dev": [], diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 8b1152d9..288ff37c 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -157,7 +157,7 @@ class Application extends App { try { /** @var ConfigService $configService */ $configService = OC::$server->query(ConfigService::class); - if ($configService->getAppValue(ConfigService::CIRCLES_CONTACT_BACKEND) !== '1') { + if (!$configService->isContactsBackend()) { return; } diff --git a/lib/Command/SyncContact.php b/lib/Command/SyncContact.php index 5fa4b686..a8c8bacb 100644 --- a/lib/Command/SyncContact.php +++ b/lib/Command/SyncContact.php @@ -29,6 +29,7 @@ namespace OCA\Circles\Command; +use Exception; use OC\Core\Command\Base; use OCA\Circles\Exceptions\CommandMissingArgumentException; use OCA\Circles\Exceptions\FakeException; @@ -63,11 +64,18 @@ class SyncContact extends Base { protected function configure() { parent::configure(); - $this->setName('circles:sync') + $this->setName('circles:contacts:sync') ->setDescription('sync contacts, when using the Circles app as a backend of the Contact app'); } + /** + * @param InputInterface $input + * @param OutputInterface $output + * + * @return int|void|null + * @throws Exception + */ protected function execute(InputInterface $input, OutputInterface $output) { $this->davService->migration(); diff --git a/lib/Cron/ContactsExistingShares.php b/lib/Cron/ContactsExistingShares.php index d8d25f2a..609874d0 100644 --- a/lib/Cron/ContactsExistingShares.php +++ b/lib/Cron/ContactsExistingShares.php @@ -124,7 +124,7 @@ class ContactsExistingShares extends TimedJob { $this->configService = $c->query(ConfigService::class); $this->miscService = $c->query(MiscService::class); - if ($this->configService->getAppValue(ConfigService::CIRCLES_CONTACT_BACKEND) !== '1') { + if (!$this->configService->isContactsBackend()) { return; } diff --git a/lib/Db/TokensRequestBuilder.php b/lib/Db/TokensRequestBuilder.php index bd965e71..074d3752 100644 --- a/lib/Db/TokensRequestBuilder.php +++ b/lib/Db/TokensRequestBuilder.php @@ -81,7 +81,7 @@ class TokensRequestBuilder extends CoreRequestBuilder { $qb = $this->dbConnection->getQueryBuilder(); /** @noinspection PhpMethodParametersCountMismatchInspection */ - $qb->select('t.user_id', 't.circle_id', 't.share_id', 't.token') + $qb->select('t.user_id', 't.circle_id', 't.member_id', 't.share_id', 't.token', 't.accepted') ->from(self::TABLE_TOKENS, 't'); $this->default_select_alias = 't'; diff --git a/lib/Model/SharesToken.php b/lib/Model/SharesToken.php index 4e8b4bc8..8bea3766 100644 --- a/lib/Model/SharesToken.php +++ b/lib/Model/SharesToken.php @@ -29,6 +29,7 @@ namespace OCA\Circles\Model; use daita\MySmallPhpTools\Traits\TArrayTools; use JsonSerializable; +use OCP\Share\IShare; /** @@ -45,6 +46,12 @@ class SharesToken implements JsonSerializable { /** @var string */ private $circleId = ''; + /** @var string */ + private $memberId = ''; + + /** @var int */ + private $accepted = IShare::STATUS_PENDING; + /** @var string */ private $userId = ''; @@ -81,6 +88,25 @@ class SharesToken implements JsonSerializable { } + /** + * @return string + */ + public function getMemberId(): string { + return $this->memberId; + } + + /** + * @param string $memberId + * + * @return SharesToken + */ + public function setMemberId(string $memberId): self { + $this->memberId = $memberId; + + return $this; + } + + /** * @return string */ @@ -138,11 +164,32 @@ class SharesToken implements JsonSerializable { } + /** + * @return int + */ + public function getAccepted(): int { + return $this->accepted; + } + + /** + * @param int $accepted + * + * @return SharesToken + */ + public function setAccepted(int $accepted): self { + $this->accepted = $accepted; + + return $this; + } + + /** * @param array $data */ function import(array $data) { $this->setCircleId($this->get('circle_id', $data, '')); + $this->setMemberId($this->get('member_id', $data, '')); + $this->setAccepted($this->getInt('accepted', $data, IShare::STATUS_PENDING)); $this->setUserId($this->get('user_id', $data, '')); $this->setShareId($this->get('share_id', $data, '')); $this->setToken($this->get('token', $data, '')); @@ -155,9 +202,11 @@ class SharesToken implements JsonSerializable { function jsonSerialize(): array { return [ 'circleId' => $this->getCircleId(), + 'memberId' => $this->getMemberId(), 'userId' => $this->getUserId(), 'shareId' => $this->getShareId(), - 'token' => $this->getToken() + 'token' => $this->getToken(), + 'accepted' => $this->getAccepted() ]; } diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php index fcca6229..c1497c7a 100644 --- a/lib/Service/ConfigService.php +++ b/lib/Service/ConfigService.php @@ -371,6 +371,19 @@ class ConfigService { } + /** + * @return bool + */ + public function isContactsBackend(): bool { + return ($this->getAppValue(ConfigService::CIRCLES_CONTACT_BACKEND) !== '0'); + } + + + public function contactsBackendType(): int { + return (int)$this->getAppValue(ConfigService::CIRCLES_CONTACT_BACKEND); + } + + /** * @return bool */ diff --git a/lib/Service/DavService.php b/lib/Service/DavService.php index 46a6b136..6b41bccc 100644 --- a/lib/Service/DavService.php +++ b/lib/Service/DavService.php @@ -160,6 +160,8 @@ class DavService { $this->miscService->log('Deleting Card: ' . json_encode($davCard), 1); $this->membersRequest->removeMembersByContactId($davCard->getUniqueId(), Member::TYPE_USER); + $this->manageDeprecatedCircles($davCard->getAddressBookId()); + $this->manageDeprecatedMembers($davCard); } @@ -244,7 +246,6 @@ class DavService { * @param DavCard $davCard */ private function manageDeprecatedMembers(DavCard $davCard) { - // TODO: Check this. $circles = array_map( function(Circle $circle) { return $circle->getUniqueId(); @@ -389,7 +390,8 @@ class DavService { continue; } - $circle = new Circle(Circle::CIRCLES_PUBLIC, $group . ' - ' . $this->uuid(5)); + $user = $this->userManager->get($davCard->getOwner()); + $circle = new Circle($this->configService->contactsBackendType(), $group . ' - ' . $user->getDisplayName()); $circle->setContactAddressBook($davCard->getAddressBookId()); $circle->setContactGroupName($group); @@ -480,7 +482,7 @@ class DavService { * @throws Exception */ public function migration() { - if ($this->configService->getAppValue(ConfigService::CIRCLES_CONTACT_BACKEND) !== '1') { + if (!$this->configService->isContactsBackend()) { throw new Exception('Circles needs to be set as Contacts App Backend first'); } diff --git a/lib/ShareByCircleProvider.php b/lib/ShareByCircleProvider.php index d569b34a..5a2e2b81 100644 --- a/lib/ShareByCircleProvider.php +++ b/lib/ShareByCircleProvider.php @@ -458,6 +458,7 @@ class ShareByCircleProvider extends CircleProviderRequest implements IShareProvi public function getSharesByPath(Node $path) { $qb = $this->getBaseSelectSql(); $this->limitToFiles($qb, [$path->getId()]); + $cursor = $qb->execute(); $shares = []; diff --git a/screenshots/contacts_backend.png b/screenshots/contacts_backend.png new file mode 100644 index 0000000000000000000000000000000000000000..435cb1ae831bee9f3c5e7b8a5a942b3c89a739aa GIT binary patch literal 37242 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ΞX{s%EhZRKQ-?j8}vZq9qRY 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⋓4wMH*lpqjgg9Z+? z)>vp}c7W@rrFn7I?CmKRi(STT`c&zx6K1EGE*6g*J$jBtzoOd4ix+jip6|6^*ar9V zKd&o3=vEx~J3T2mnR6F8Zk1(v4IQ_Zj?U?e7p*lSjkfurQFe7zR|$Bq;@Q)u^L$HK zSTtIhXp{(7A*QiJQx-#dmv2QxOiVT119B4RkX7RpLhr{)i%VR+sPK?r`)6y79UIPG z;{|q_+dfxKgFIP*`g7$N2TJz8 zxvprNg<61I-@Y$3Scopagy>Z;CdBlP)8rXljwl4~mKDVnDc7o8x_sFq!==*Vor|7X1;GBSOe79XmYid2_5jd&KXFps|*l+D2W<)AaSdh6oCv zaNoYXKAAC!`tB&HM?28TZLWecg`*d0oy~@oH=9w|$pxB(8*TeNc5OGZp2W?ZSwn-b zt7{MK-R)t|#+2*VC#$KQO-(%_Ye@nQ56=SUh+J=@c0_12D*E|s*+OBvs;ar9uu%Jo zQCmVu9UvpYk)1T@?nl$u;JODND8Cn=DXzUDs_r z=w4Ve+K1kv{Ra+=vCkx*nMf6umiCw4MY`fx@DAPsI$iv_A(O${m6KB7eZgBGexi@*cR<&*cm$H%soOerl>Z7V zswhS-1zvwjFz*7PoBK_^l7b|+w-SSZ8$0PgAoyv2v{r2)QN~~W-*2F zR_Yba-W6ZD9xNP-c)<8HJp^(_G%sby3N%CYb#-^`-rZZIGj=ShQ^b{&hom_7%B!oK zo$tJDpys9dD0AEB;^MMlLqnjVKGO2cYzd_hg#XKvIzH;+Oom30^DfhfzVT71rsIXO zoSfzNqQbBX*j@7}${m4j&$O^X3%SG6%LA8Z-*1#f!tE zqhEqciwk;%%|2@>=FJJccN{N#91p6@Pk=1jpsH%A`j_FuhUtzQCyxfO{ij~<;r;t& zvu3SwcYniNRIizFadCY_qG{8zj_Eh{J&OLPcOOAaMWIUX6ws|te9lHsPvhy+iT9+} z+R3xnFlZemD}#UA*xE{V?mTqpP`Up7sf(%?bibEh@R(nEt{tEg_MYY?bCUsmc}449 z+F|;K%VSDXIZVqO9YryPY)`xzQYz4Qu4z7iznSU9GkpEQVsbb9YVk^Fbj&|GlD^Di z{d$hd7){L;7px&9d_T~Mh<$AK)4`~`hDctuY87XMri!f#PrU!&!PgBximy32JJTJ{ zi|RqE?54N4|C6?#4d$E>#1 z3b;H80GG&Or~m5tg9i_uJUJ#S3Q^^=qM5O^v0*{5RsnC#ad3E1QW7F-X>BdvzyHc* z%RmgvxCVvO66F=ER*7R{Yo>f%y>ca3=mRc1R@sYeY1yN)A9lqp{GTwGuxPt5v*4A@Cc}Hi2q|lM~@& zUPKZ2)s0`@7L&yoy9?4l{Z8{nzv-C;VQi5OS}!Mk2M|TPJ+aV*LpyxVi8HN9Um6ld|ce{(EDF*?e1_ZDZpGYsvt!y zj&@%?4wO%!?w8|WZ$l;BuP2(7&D~F{Zddu|`SYLJ3$s64v0UFjFB3^M`Qa*BCHPVA!&L^F#8`{~(Bw=@T5e2I zJY96-)hovf)=8~ZefAmi$$MUtcr+yKb@V#tZr(%RE%GbJ`t>l%Xsx3oPnB)~AgJr) z_c?d(?#``_Fxpm0ua5!7NrwVf=2=$>Z;_mImjy9)4i29_eTw3FAD;Oza*~-8z`ANc zV^K^}y>fKIAkTQsAOi13`!d~a_4_q50g2q)+cS_o* zMS5>>FA7qAGBp>ehX8N>x-?^kxp~kX$2_NtJ5E04`M8((Q%O>-1sw8|d`2H6!}BRD zFHf)(KPu`>1Q z;j`DCzV@%`AoM6<+bgs5$*Uq->NPiv8(o3miW*?=#EZ9y1E$HjcnFWZJl@1dC z#2!5=z9~#VSaf)Z*IH@&^eFwcOG=yns`$QI!rKk#Y0%t`hH?vDo(ezq616I^2P6-W zDyTwR*n2UB>{jA}kJ{Wxlde&$L-w6sIee6E(Fn@TU}qx`IsnrfH;fi+c%Eh;V&&(? zZAyOPe8JjK328M_u=r;YY%AIob{6Gx^9%ovH8l&YtUSS9&!0bkuG6ac#6yp2Ju9Az zInYEAo>X!34s`0I#)Ha6kwPH`%Evz4qO`4QbgctgxIZAj_W7QYf1|r}s1jg;#$s|c zonX^^A;QbaSxn7nQ*bsVp08MOmgU~HYkFx7<@BIIgJ7bG;-s{+v@||4XfiimXMGLb zD)E&b+TPxN{rU^0v0uM@Q3;Uhyb~yj=7IY&jTJnTckh}c^vj?ExO(;Zix*MSS)K;J zz{W_j;}nu5^6_I%bRAARug1D{8FnG2UI2L%BTt?ztQ$?|Fyy z>7!#U3G2DJxv5XzBMF_?ZL!#@GHX-NiJ#{HL(taeyre?wesvhdCb)j_%&B!d_^131 zR}47~r^)i=)i@_SpZ(P?e5gA7<;TyHCkLuO)YH@JVK}1sNJuvoK7&TTL>PVQ6L9vJ z!m?-2<`>!Qz2nG>c_Z!-cc-NPvem22=CrOMF0WlnHI4BFq?oQ~%HUHg=6pQHJJIhP zGL0oQXATe^g;=bP^hZ3Su`0V0mBKz_RavQj9z6Kd>tWoTXkb9MBo1T;#7Fy4$&he( zn2r~`1<%5mK5LdQA0j7>?wISCnVE4Z9;mUZHsqVGZZdC^knpv!(MczaNWe4ax;%64 z;rL|V%yV%kea2G-L2iJy=B6>$TWnq{tV&ahiDZ&UKy!2i$!%$rA)VW9ou z#RN6fl4P!yM}KeLe$GX{yEJf9{|vjxkdP)m251eOUfWsr>8giktL2E>QG@=+O=6~6NP3Ib z4~U%u0{FvMDUMsKnsswZFL_t-dg~sKr@%-_c&iHUUsPVMU{s%dXlnPzJmwsA&35(3 z($C9INy$vg*>Fhm5Ad18YZKOQz7o<`<$r7r>p2w$_oJxy;OB z7gFC{16zc(L3*gF@*2H`z%ygl`GMGl^OfXqV=~C(g>X-r8IIxAaRR;xt?KJT|&;^amyO%Gg z{t7#K)QPNy=(JYP8>aWmEnynLyH!Ai)Pw=DJ$nWb;8aH$*$}QMb^;C^9x~(WkDtoh zeqK0z`qtgMXSp$y;6$2^JC+iy(fO(c#9Jj`r=mO_B`0lWb{|52zSu|Lotr-n3qZo@ zf4`=#M`d}r4=O_BoEUCUyTM;uJ_CM2Z}YqTzuqF`wnsQD#JlzmkWQ=;m%bpfLFbP~ zCg2c(4^bR_FmVK6qKl+tf>i>GIBeK300;_s_$oztdCx6&z^}k{p?OYxij*6_4WbI- zj$ssv7{6Ym9#URbb`{A7z!-a1Fo|M819hR9g7qdS2=<$wqdH1lee|*N8vIQ~)BJAK zb;vby4-ROs8ze3H3L*X|P0f#&KhvQgJ3Q-7StW*<00L;*CNzY#yi0BEG`jq|xgj+-Sac?;avcSrMP+ zSY)IU1Qi-_l4+mea~rp6&_nR#piLkbxt%zZnCK;z08@}uHfgSXqYCISwrtptDi+t$ z0D@9IL4yLWxM)#-C8fXHW=Y7qgFqthrn?s}e*Easc@Si=Rm;xFr+Fr@rt{K?ol0Jt zk{2dgjEH==#K8X9)ADiyl$>A?7U?(@sy}@AP*ue{HiI8DmxO=Eq=XOTQcAUO?ehly zl3y&eWGDH1=w~i!-SBSLjWdVZDJD7%LwtY$8YoSu?SYPerr-D#I5%#KxA!dM!YE*dP^fh?OC#-}vz+Tt?F0mZS?W7=jp^dPr9E+T#bfiy(<|pZK?;KBCMhS+Y13 z(xHfm54E+MzrD912D1>oM69^rn54Jgy=RYkgn{ma2|qYIqzSaN>Lnrx33&x{NDC}1 zJ`1tKKHg$Pk3j~W=)+K$fQzqPYlO-Z)v$f@v>H}uAb5uP$M+@GAEsx}qR=(Yx3r8m zBDt^$xCtqhZ9l)v;GoQ&Ewd-5msICJP^b7DIWj<`64@9%9N7QPnx6+ELKwubFxhr` z1(gL_6x{=N65`|WLOk+PWEcepWmQ@^mjLDULl%lpCT#qA)dP3x-rj?Fpb(JG50LHO zzdvm7{Q1Iteil5g2II%S+o_{+CLw|HP4IYTuKnzqW*cqMSRx;70f0_YoHS_?msXp7 ze9Gv!qFNMNN%8Tgf?Lo^WUhIpM*;NnWM_#-iJ(B}BaR*Ghsv0WW5<*!QsVz}c*mR$ zuGsdR#Rxcy(qSGMTZtoXdaW@*lL_gLTJpp^gkXSQ#ne#Zq#xcDIc;;|E?SDu_;rbW zpSQ+EG~G|m{Ju+X@0r2tG0iZ}u1K#l;D{h3ob?`gEXw>iXh?mcn-^=o4(nyH^?jnVbvmPfW|5^<7~Oyze4TilNy zf9n-tHaz?ZT$!a-jCyo#x(~(m|{Croe zc!LkGyNnD7=@zA@;2TIA5O_a-eo_`zD0itAGC?KrW;P4`Lgq1x%@K3s*mU)oqgoa* z@Z=ExUNYS+;9BC1=nCIXqVjZNO$1^_M^u@wc8 z$$$#|4q%@6_~J%eneqqp^42&m;pT}huB%sf9q+l8-OB+`4LEO|L<@!EjoAmeckcMY ztdn2d-QDT1kD11@dG4?PSWM#2)gVP0r=t_x^8FdgJW7Y2gAC4CslV{9?%uWQp6Lhr ztwB(a1`YJl#ntuk9ItY(lygfq*Mv|asLSm~z9V=I$}cRRK@D$envXU&zWfGFgi_Fq zz9X97ck)4ui1csJ*Qo62ohB$w`g9?sp#dBA`tc`8wy6wi$mwb1l=_qhO*4cvAT2f3 z%-noYVu>)_A#8jt_ z9dVp&dSCWMu=?QhK;9wP71himpEqgmoNJWYGPy3`#=ZQuWMEkkShmr&2(4uz#Jl*p z#Rh>q1K5D-FD&W;^$@fiDz~3J(Nj^$1}@SJg%$mZ#Aq<9Ntc8y@BYaN8({4Ow_o0o z;YO|_F)z?^n0G#agbS_CAvLed});^Q;fn3l|;>4ILh0 zN`9)Ts+!WJp4OO(7B028vT`yqF0~_b!gO}Ydhk&wVGa(QU^zlgND82d*EX6VX4s55 z^bx>-`+cX2Xd*4sV=cvSe_r8p;}%<6Hx6u=vEUJfF#tFrmBj3N#+J_AHW}VsIW5d2 zX7ibmKen9x@%i&-plr)Y6FWUWU=maNY7vJCs2NBQnXVvX3#ptpNr!q^6n*~c)sy-8 zWao0TUvHS$s-!nodzgxIMc}H$z0s11hep{7n?Z4g82G-fmpH8@PAx zUOLxBi%O9LvD-ikg^=O<>*TZ4Nri=l5FcmrMVH;4_U_m3Y^%B>val5^F5^gmMVmNb zg3aQ^V;rt;MQ6tiX7*QX{Mmm?@q&B#=ADCbTX8G(pxCDvfcfb=Y9aEY6&E&*?Axo~5qr8G0XBso2?>LW& zl2vC+pU!rk6KS{^9|uuYTTgE?nyl5UM+N1^{2rbKbezY?7^Hug?!J7nxw1~B=~pFU zb(}WC83IE;LB)mlaQWn@C@7`y@K(eY^ET;k{`#7#k~v9D4y7F=w1#p@YCArSx!&D! zxtV9*bWekbgx+V1YH26hRgg8+BT?Wj3~G&U@&hThS~y=lq~dNS*)HL)v(GeHcxZ5n zp6HKeWVnosULqWs*I|yyB*@Cy)0d*AdZ7knLuhMjQz^UYZ8^XDMU$aor>nUDkFGNi z{@uDI(hE;+?YMm9${F3?gdy2R)|6D}!fXJ2QYW0$n zLUi@V$M%por8qgtVgCGSbEcdrB;vXHJo(gA)FzrUJ+6NCkF|S^PrKJV9M~fcAV10; zbzxSIjB1YzO2Fdbx9D?P*eT)R;YBXv!e-;pL%0(k9DHue`V2c}L9qijwO+b-{(Kp3 zc_v99cW({a_H#LFS@F^AEuRf-s)0{qyuW`AdT&7xwdZofmxp&HJ{_iolhy-i<;P3+ z2z$490N$*fmSRJ;BuyWQlcI-`TyV%yP<6PRTUK^F=cNFPFH(+K*mUw+LVbEf+=O?1 zA{7jvPbFm5khIvS#1VQ1sI*mU*OuCEX^IAS^){^JFw?j)aZE78)sG16VEbRia(L0B z!osLq7E>nbjtf72{Q0#li-3rpKBYFIQWY4$k`kbozH)K|w5wn9M=`4k9vbA@PP3Up zum$@fHb}*UXU`r!{D{K>D2+V~MM*!#uMj?nlan7jeCY1#sv5wNpBZb3{&)52XH@qa zQiu^GBBGniI0c&Tg^8_UwNGi2laohlY9iTxMTHc!NzXIU=h_S;`@2Mku^J~A+{?{f ziDv;|j5J!tIo35ebjOj3ifk8lVk2R803y0Dtz{icK2u@&1Irhn01*bZkHt_Lr}49mJwu2J#wL^>&(8OIet_l}m6MtVXdJaptp zQPck6L9QfhuCotRzgxE-IH!;y)>K!gqRMAc)W(nZ76R+3HKKb6>l&C~k(!j`MimUX zBm8t1zNsZnjhLJp=wdV*6LmOzj zm~oePX4a7>=j^FDf8vZd%J4lA4!ta9+yK5_2S04-cIg>+v;YIv3P}zcABZq_N8+<`n1sH|VCC{fk+*ODv!O?V#$Sgdey`Hl;gsao<13RGHOe{9tY z4=n0Y@L_c;E91KWJ8Y&`l~I$S@4H0;cy;)*_f-l*rVRO#6&N)luj^`MY|PA+0S{#i z3;vTHP%yD=ZyR&-uTByvAFiMJ&svF0qX(Xu?mK-Y*B8H@f0&OHZc^xrOs`R6#`JtEd^3)O z&1M%0AWG|Op5}T$&UU#`+u@@}jbjQ?T>w$7(-Z!7w~X4{>}{V2DJXT2Iuqe2TNioW zPqEAJpoBzf49|=PesN?}6f&9Y-Mb|Lt>LxNEs17A4UzX?u|bf-!k&TviRJw0V$Pmb z+h^Q+z<`mx_r>R++qs^R5tdth4W|xp7Lkt19)~^lXeL!aW9A$Y5I$(q_Z0~5qNA7n z{Qjlmjw;FrrfunKX$=l|j^~+Dkelqi?@WCB2z~v~^6Tf$xsw%mNW2Re83u*3#{lcV z_{P{>dGzGTWkCxPeE9HsTyQXy7p%7u7EoZim0uDA#~T><;AiH*gI$7j!sV;0=NA>x zfm}>Zo-rMn#RtOlD$O)DJ{RB-)RwL1w|~0Tl|4_ zQZ#O3*A&G{BW#l7J-Vo#q2mjz5mNprDc$&3In}|E>;VO4}7=a%UtH~)a z#_r3gUcvl{p`i|b1LWo9d-uNewjpdbC;uHl>3U#5DtmI!%gz6O%5Q*3wBIxZg`>Mu z6U&NVuL|tndHST>-vSPS1x}eZ*S%ZFK_d+N^kQW4dhi{}X>yB9&z{XqP4KJFm>@x@ z@_F!1*kC+VtBR|eH}FJ>_?g4#16QuQ+ROe z7K513t6p4Lj{N3eO3Ej;f}*nWr+4pWN*$g#R7i%5OJx23@BjkAJ}dSyJs!`3?($u~ zmha!OM}cQ-!brtqt5ppDA6vzxxa=dVb@GchTvGrpL?a+HxRz}K#NTPn&8P|StZGH?ui9ykN zHq$F>MGZ!sG^o*)*Lr2?cMP7c6`K_U#NQ z=9CoEF$Nwy$mao#aMF270)QlB*kNK~eUeQodjwe<#u9m%-O0%xsQNz_3u`SS{fEi; zN}R}Y_K~>RhQ8BK?i~Db`;+)zQYQZwt5Wc7)!8Clh3*eK-8?lPQMQ_9U1x!G8Ka{V zw8-8**-{L3BB?)uHr-?Vz?0Gv+oPpRKPYOllC#yO*-6S9&sIB<^HQpFM}GHjyxab= z%m0Qj+r0nTN6MOvC|Yc5tF?0A&863OI6fTD`}f#zw|nR*gh~XJbvv}TPc^nbfDZ8g zRp=cYuvCdv**?5;AK7dRv%nmWugXGj-afqdQ6NU1xVByA-7>CUmBm&DNw0KVg>NjB zR8||jGkT@>+~58J3#Ij4t3xlDk}HPK^Y{OoMq0l6X#JzS4N`l?j9i2ok&nI^`~ju_ z`u)A8kWgP5{wnnQC3DxuATT?&s)NmsRd{>)NOgu>@%Okyzs{MJF-(|T_su@lgG5`9 z^s}rhkD$Ni2qRwU+x@POYv6#$m~3Lb7Gi~~AS(8uQoC;9w{1%MMLh~ZG}*d+MtSX_ zJSW<4^NhV=3I}n<6pl`qoOZXdga=bI0~W^4J}MCeJ`&ZuyklgE%Z(*nmrr_dx61PK z_9R0otouUkKa6q-S;;f(4FEqN%mNyS52S17&axt5j0*U==pJA`CLyLr!DaJ-K>Shv zp;YdsLT1VEX>tX!r!~HCVKd0oXbp|{Aq-DbHuOFp9i7dohak(&p4vRDm2*LzF?QTI z8EI+eI4A^~)UVtU0l3Yn+T`g;hw=III(>b8*B?~2Z4W*3jaA3w1@;J^sggF*3za6>6ID|^d0Q(A<1~SJE-b`lY7h$GRq;6_uS|mF5_>>fM$(KGVeq$P6?#p#R z-)K>`Aa|i?6SM(ozKg)3FI~Kd@Pv2^@HMO-MdrzM{*{z%*EW~cxg_Wr*gFb%4FN-(ZTQn0!N-%_OYx_-$!SF6o`i^!M zm^fBn|At4+ev1)y7aY5k ztUQV0d=P1UA`(0#_PS{5Hg43^(3ovzCg_K-s|-U+q)5?0?P=Gd?t;Lj!R(;$qfHEuUAuN|w8hMd6w_GOHERap)Gg?N zubt^w!NDMuqy^&J?&%AW+RIPy80y8oIhv^=CykxQi&REHuIsmP{*onrAefB5KF~5h z))HNw=d<1F_MA4@L2jSJZZ-D<$}?m$f}yxLN+IyBpgVh9`prHzF0Kt!jSb+Y7cTo) z(66%?;aIv00=s%l5$#==n9QW?q@;rf4it@cb8%TG^hzFr^$HCbYOe2FCm+cJ9sdOq z!|~I1&X*%(T}|pBvHJ{YDEn(O=z&$!poq!$`p@E~Xc}qAgD$L{I+e#HE4|D61ib7% zgwXZ6ujxI{KYh<*6e!Oa+00ntckP=u49ALI?8wIcFt~W>)P%eKI4Ji|${dt?`?eDb zmCRwt9-=;YB_wP(kxnd>eKX5=s#OA33juEb@S&ox5T9v}ii9Pbw!Z7&B`B>T7soK_|9p zKOj|w9s)x)w?JhNEEv`A02~#Tjr6B_g4*J%Bv`=?w-g4l&1&ySE7oL$ge*W}yL4%l zgyN&_fhMWv&oiL(;}a$IH9<^@EG=zjm|9>^P~4lI|D`_3**{xNa9^PqL`+HWbkebL zch~gKmiGxdnp>T0nC|t&Y7U!y}sv`D)KKUuUyQ2Qw!LnuL zKPURnM7Q~_ln?b)&d=Y z<$?5MFz=86>hWJ-^KC7qH>6ZB-xWM~fMEax9I%F-|IFlM$<-ZCV~8YN(y}-F_{k87 zEt@y@649y%Llqc}++)wQw5hR{f*@2q#2wC!hPNVf9zr9~P2^h{b{~aHgsZ+mYXz|? zE4oV!=TfMeW-Hhifw@CWYd(Iw&I}sJ8~*ao7^qz$EIgBcex6o0`~^7(Ha9 zbCD8MM@Lm~1pMdH^o;2_WuGa7>PEMs!Q*5?*kMQcOG=9H!DCqE;)2?PAcD!Cut|2u z_q$9>o_q^dm~&r2Vs}r_BN$Nyh4OlhDd>^LDSY^}tu4zox!*ox+hk#;5wbBXQuc>iGf?|Q{9_#*#E9-|a z>W0pb`6KEfb*@9OrA{kZ+o-XdZ$t3g3J60*J}H#sIseE^izg`#<`w7vK&PdnIhn#} zJNGQ1_3^FPWv%ff@MV2I!H`fpDYQB5+FWd~x{Igl!^K$j%%0L?gq-x2$gW04M(W!2 z<0nqshC;YPuYM!6`tF`$s{||c83*MHOC?3o7K^rTp(*=A{Rb;F%!w-!Ms|Y@Htl&3 ziTg=x6T<&8g+3S#|J5s<5q)GCl=0x+Jr_2wr$Gg?#KdB}b04)Y>O>X1ZTJx&yU#fI z*s+Cnc0bE(!t$Kz43asY@TLN%?xmDh^OaVKGAhH)okY&;`=wf$8=GlNBE9_oh^Gpy z)1&&Z0f8`IZ1^m>pl(VRXTctX!%p?X2u&cq@wk6CdK_WM&E}_I#S0T_++}PX<1XrHvwHjOtj8+`| z`QPgg+A-zkQZ2NNmnVD2S6{W(&{S7{>@u!63Ye2@gZB7-O>dFshxbOV_iMgVAsjj+i~1Lw z%k`gss$LlA$6UrJ z?amBQVKRudHD}!hpvGak)c=HXn|~+2va*uWh@CdHH8==%*Xqk|@tSGJXPMQmTrrU@DNIXzJ;K?!f}m1Aq25ggJ!)g+#3JK$>l( z-d8smL2nD9c5YGa$b^X#=dV}(Be@(vjmWvJCfm)8G(@J8zakZ4hSTWdJ}ahBa515H zCM{jGPC9jJaK-!Yg4*eEs!0r7N3GAK9+LjO`t-pGhg?G-RtzFEL+^KW?x+e=$u~=& z4-@*O`!#&|L~%}zzik>yBnA`+!8^|hb1ECby_LWq%z5}Tn8D`y*3B#hCCrqV!tnzi zE_aX>_)kV?1Bjr4rS}0zQdPZ0LqK|?ku+2q!#7vRT2j#ydl)`}A(qc$>EDZDcMGC3 zW~j9>TbZqLFJH^)k{seDWT=`ad%h8Sg61sHOPQ>C=weQ@uLg-2O*1*-%!hzx(Bz zFwez}O@SZ9x{?kfJJ<|Za{S6cb5DuwD_bZ3Y|I+n(qhtFtl*z=^belUDe!)QxvR0V z^vx+t-IRq+LNISh+??OK^-gDFExGPFhflN{6a9k}4EOXZ(Yn3!tJXmAzWQ$d)c-J#|L=UO&*r^I?MV|* zd;VTG>24rYU)>f!OiV~OaJE5Mi=y9cOGO<)r4Va5!Mb@1Y7IiiN#QG4w-0xWh1_}Fbu`oiU2I|uy^AK`ABo@e-e zuvBRQtZM zmnU{^*<0RK>B*iwE3Z4mjT`zS*ugJa`PP^ljglQZ*c`()UGn_7#(vdF*o(I(ot#7A zQn*_Vn&$@7O{mC7S4@xZ0OFs1abor7mR z20+y4cVC!&aleYyKEf;_CbL^}cWajQ{2M0+5r^{C-XFP%$=mIcfCb?fd;+z75bfTDieelK#;= z=(My2vH_5iBsU{MLP+K>baUtdeNhwUDn2A=2F6<3|9#TJdS;wZ z1|iY7_454CSvv<)cb;ixh*IYIY7@ZodGih@B$S(u{_Q#>xQK3m-G1xk=a(U2rp!G> zr&2w39I)}&8>S8a)Z99{pBes(FA^0mUW}0vsU8-3R9jo0 zpWiPOx_}!jH&hDBtwsTl@*f$&{?mN%&t!!_(_lHN&J5Lutz|@MLIRtD4qYjT8CUyH zzx(118iKNR7y_#W^A>o~>Tca?cdW)*+kN*9pE=6+uJ-9Ce>a>Mbz@k z&p*4$(;#i$9i^a^E-v>zHMgo zDZr&YPms^hsbADsy})=L2ZMT%zrh)L!TLQVN0_NuuqV|S1tM%GPEP-9d?~BbpG}{a zl#)`~<16hxaTRi8`n>OBx{?{TzZkAGKz_Rsl$QGF(XoRhKJu+*M#0niu=anj5t$W zV3gY|)g-EdvNyHPJ%FSl&}85JDgA1je7KdHx_|r%+vmUS-{Y~i+ow^}4hT0eYx-Q{ JbE2g?{~M0n!OZ{w literal 0 HcmV?d00001