From c77f7dc8a154384cf56e2883866f637e99f4e301 Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski Date: Sat, 9 Dec 2023 21:05:18 +0100 Subject: [PATCH 01/35] build: update gradle wrapper --- .../gradle/wrapper/gradle-wrapper.jar | Bin 53637 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 +- CongressRoutePlanner/gradlew | 307 +++++++++++------- CongressRoutePlanner/gradlew.bat | 66 ++-- 4 files changed, 235 insertions(+), 143 deletions(-) diff --git a/CongressRoutePlanner/gradle/wrapper/gradle-wrapper.jar b/CongressRoutePlanner/gradle/wrapper/gradle-wrapper.jar index 05ef575b0cd0173fc735f2857ce4bd594ce4f6bd..7f93135c49b765f8051ef9d0a6055ff8e46073d8 100644 GIT binary patch literal 63721 zcmb5Wb9gP!wgnp7wrv|bwr$&XvSZt}Z6`anZSUAlc9NHKf9JdJ;NJVr`=eI(_pMp0 zy1VAAG3FfAOI`{X1O)&90s;U4K;XLp008~hCjbEC_fbYfS%6kTR+JtXK>nW$ZR+`W ze|#J8f4A@M|F5BpfUJb5h>|j$jOe}0oE!`Zf6fM>CR?!y@zU(cL8NsKk`a z6tx5mAkdjD;J=LcJ;;Aw8p!v#ouk>mUDZF@ zK>yvw%+bKu+T{Nk@LZ;zkYy0HBKw06_IWcMHo*0HKpTsEFZhn5qCHH9j z)|XpN&{`!0a>Vl+PmdQc)Yg4A(AG-z!+@Q#eHr&g<9D?7E)_aEB?s_rx>UE9TUq|? z;(ggJt>9l?C|zoO@5)tu?EV0x_7T17q4fF-q3{yZ^ipUbKcRZ4Qftd!xO(#UGhb2y>?*@{xq%`(-`2T^vc=#< zx!+@4pRdk&*1ht2OWk^Z5IAQ0YTAXLkL{(D*$gENaD)7A%^XXrCchN&z2x+*>o2FwPFjWpeaL=!tzv#JOW#( z$B)Nel<+$bkH1KZv3&-}=SiG~w2sbDbAWarg%5>YbC|}*d9hBjBkR(@tyM0T)FO$# zPtRXukGPnOd)~z=?avu+4Co@wF}1T)-uh5jI<1$HLtyDrVak{gw`mcH@Q-@wg{v^c zRzu}hMKFHV<8w}o*yg6p@Sq%=gkd~;`_VGTS?L@yVu`xuGy+dH6YOwcP6ZE`_0rK% zAx5!FjDuss`FQ3eF|mhrWkjux(Pny^k$u_)dyCSEbAsecHsq#8B3n3kDU(zW5yE|( zgc>sFQywFj5}U*qtF9Y(bi*;>B7WJykcAXF86@)z|0-Vm@jt!EPoLA6>r)?@DIobIZ5Sx zsc@OC{b|3%vaMbyeM|O^UxEYlEMHK4r)V-{r)_yz`w1*xV0|lh-LQOP`OP`Pk1aW( z8DSlGN>Ts|n*xj+%If~+E_BxK)~5T#w6Q1WEKt{!Xtbd`J;`2a>8boRo;7u2M&iOop4qcy<)z023=oghSFV zST;?S;ye+dRQe>ygiJ6HCv4;~3DHtJ({fWeE~$H@mKn@Oh6Z(_sO>01JwH5oA4nvK zr5Sr^g+LC zLt(i&ecdmqsIJGNOSUyUpglvhhrY8lGkzO=0USEKNL%8zHshS>Qziu|`eyWP^5xL4 zRP122_dCJl>hZc~?58w~>`P_s18VoU|7(|Eit0-lZRgLTZKNq5{k zE?V=`7=R&ro(X%LTS*f+#H-mGo_j3dm@F_krAYegDLk6UV{`UKE;{YSsn$ z(yz{v1@p|p!0>g04!eRSrSVb>MQYPr8_MA|MpoGzqyd*$@4j|)cD_%^Hrd>SorF>@ zBX+V<@vEB5PRLGR(uP9&U&5=(HVc?6B58NJT_igiAH*q~Wb`dDZpJSKfy5#Aag4IX zj~uv74EQ_Q_1qaXWI!7Vf@ZrdUhZFE;L&P_Xr8l@GMkhc#=plV0+g(ki>+7fO%?Jb zl+bTy7q{w^pTb{>(Xf2q1BVdq?#f=!geqssXp z4pMu*q;iiHmA*IjOj4`4S&|8@gSw*^{|PT}Aw~}ZXU`6=vZB=GGeMm}V6W46|pU&58~P+?LUs%n@J}CSrICkeng6YJ^M? zS(W?K4nOtoBe4tvBXs@@`i?4G$S2W&;$z8VBSM;Mn9 zxcaEiQ9=vS|bIJ>*tf9AH~m&U%2+Dim<)E=}KORp+cZ^!@wI`h1NVBXu{@%hB2Cq(dXx_aQ9x3mr*fwL5!ZryQqi|KFJuzvP zK1)nrKZ7U+B{1ZmJub?4)Ln^J6k!i0t~VO#=q1{?T)%OV?MN}k5M{}vjyZu#M0_*u z8jwZKJ#Df~1jcLXZL7bnCEhB6IzQZ-GcoQJ!16I*39iazoVGugcKA{lhiHg4Ta2fD zk1Utyc5%QzZ$s3;p0N+N8VX{sd!~l*Ta3|t>lhI&G`sr6L~G5Lul`>m z{!^INm?J|&7X=;{XveF!(b*=?9NAp4y&r&N3(GKcW4rS(Ejk|Lzs1PrxPI_owB-`H zg3(Rruh^&)`TKA6+_!n>RdI6pw>Vt1_j&+bKIaMTYLiqhZ#y_=J8`TK{Jd<7l9&sY z^^`hmi7^14s16B6)1O;vJWOF$=$B5ONW;;2&|pUvJlmeUS&F;DbSHCrEb0QBDR|my zIs+pE0Y^`qJTyH-_mP=)Y+u^LHcuZhsM3+P||?+W#V!_6E-8boP#R-*na4!o-Q1 zVthtYhK{mDhF(&7Okzo9dTi03X(AE{8cH$JIg%MEQca`S zy@8{Fjft~~BdzWC(di#X{ny;!yYGK9b@=b|zcKZ{vv4D8i+`ilOPl;PJl{!&5-0!w z^fOl#|}vVg%=n)@_e1BrP)`A zKPgs`O0EO}Y2KWLuo`iGaKu1k#YR6BMySxQf2V++Wo{6EHmK>A~Q5o73yM z-RbxC7Qdh0Cz!nG+7BRZE>~FLI-?&W_rJUl-8FDIaXoNBL)@1hwKa^wOr1($*5h~T zF;%f^%<$p8Y_yu(JEg=c_O!aZ#)Gjh$n(hfJAp$C2he555W5zdrBqjFmo|VY+el;o z=*D_w|GXG|p0**hQ7~9-n|y5k%B}TAF0iarDM!q-jYbR^us(>&y;n^2l0C%@2B}KM zyeRT9)oMt97Agvc4sEKUEy%MpXr2vz*lb zh*L}}iG>-pqDRw7ud{=FvTD?}xjD)w{`KzjNom-$jS^;iw0+7nXSnt1R@G|VqoRhE%12nm+PH?9`(4rM0kfrZzIK9JU=^$YNyLvAIoxl#Q)xxDz!^0@zZ zSCs$nfcxK_vRYM34O<1}QHZ|hp4`ioX3x8(UV(FU$J@o%tw3t4k1QPmlEpZa2IujG&(roX_q*%e`Hq|);0;@k z0z=fZiFckp#JzW0p+2A+D$PC~IsakhJJkG(c;CqAgFfU0Z`u$PzG~-9I1oPHrCw&)@s^Dc~^)#HPW0Ra}J^=|h7Fs*<8|b13ZzG6MP*Q1dkoZ6&A^!}|hbjM{2HpqlSXv_UUg1U4gn z3Q)2VjU^ti1myodv+tjhSZp%D978m~p& z43uZUrraHs80Mq&vcetqfQpQP?m!CFj)44t8Z}k`E798wxg&~aCm+DBoI+nKq}&j^ zlPY3W$)K;KtEajks1`G?-@me7C>{PiiBu+41#yU_c(dITaqE?IQ(DBu+c^Ux!>pCj zLC|HJGU*v+!it1(;3e`6igkH(VA)-S+k(*yqxMgUah3$@C zz`7hEM47xr>j8^g`%*f=6S5n>z%Bt_Fg{Tvmr+MIsCx=0gsu_sF`q2hlkEmisz#Fy zj_0;zUWr;Gz}$BS%Y`meb(=$d%@Crs(OoJ|}m#<7=-A~PQbyN$x%2iXP2@e*nO0b7AwfH8cCUa*Wfu@b)D_>I*%uE4O3 z(lfnB`-Xf*LfC)E}e?%X2kK7DItK6Tf<+M^mX0Ijf_!IP>7c8IZX%8_#0060P{QMuV^B9i<^E`_Qf0pv9(P%_s8D`qvDE9LK9u-jB}J2S`(mCO&XHTS04Z5Ez*vl^T%!^$~EH8M-UdwhegL>3IQ*)(MtuH2Xt1p!fS4o~*rR?WLxlA!sjc2(O znjJn~wQ!Fp9s2e^IWP1C<4%sFF}T4omr}7+4asciyo3DntTgWIzhQpQirM$9{EbQd z3jz9vS@{aOqTQHI|l#aUV@2Q^Wko4T0T04Me4!2nsdrA8QY1%fnAYb~d2GDz@lAtfcHq(P7 zaMBAGo}+NcE-K*@9y;Vt3*(aCaMKXBB*BJcD_Qnxpt75r?GeAQ}*|>pYJE=uZb73 zC>sv)18)q#EGrTG6io*}JLuB_jP3AU1Uiu$D7r|2_zlIGb9 zjhst#ni)Y`$)!fc#reM*$~iaYoz~_Cy7J3ZTiPm)E?%`fbk`3Tu-F#`{i!l5pNEn5 zO-Tw-=TojYhzT{J=?SZj=Z8#|eoF>434b-DXiUsignxXNaR3 zm_}4iWU$gt2Mw5NvZ5(VpF`?X*f2UZDs1TEa1oZCif?Jdgr{>O~7}-$|BZ7I(IKW`{f;@|IZFX*R8&iT= zoWstN8&R;}@2Ka%d3vrLtR|O??ben;k8QbS-WB0VgiCz;<$pBmIZdN!aalyCSEm)crpS9dcD^Y@XT1a3+zpi-`D}e#HV<} z$Y(G&o~PvL-xSVD5D?JqF3?B9rxGWeb=oEGJ3vRp5xfBPlngh1O$yI95EL+T8{GC@ z98i1H9KhZGFl|;`)_=QpM6H?eDPpw~^(aFQWwyXZ8_EEE4#@QeT_URray*mEOGsGc z6|sdXtq!hVZo=d#+9^@lm&L5|q&-GDCyUx#YQiccq;spOBe3V+VKdjJA=IL=Zn%P} zNk=_8u}VhzFf{UYZV0`lUwcD&)9AFx0@Fc6LD9A6Rd1=ga>Mi0)_QxM2ddCVRmZ0d z+J=uXc(?5JLX3=)e)Jm$HS2yF`44IKhwRnm2*669_J=2LlwuF5$1tAo@ROSU@-y+;Foy2IEl2^V1N;fk~YR z?&EP8#t&m0B=?aJeuz~lHjAzRBX>&x=A;gIvb>MD{XEV zV%l-+9N-)i;YH%nKP?>f`=?#`>B(`*t`aiPLoQM(a6(qs4p5KFjDBN?8JGrf3z8>= zi7sD)c)Nm~x{e<^jy4nTx${P~cwz_*a>%0_;ULou3kHCAD7EYkw@l$8TN#LO9jC( z1BeFW`k+bu5e8Ns^a8dPcjEVHM;r6UX+cN=Uy7HU)j-myRU0wHd$A1fNI~`4;I~`zC)3ul#8#^rXVSO*m}Ag>c%_;nj=Nv$rCZ z*~L@C@OZg%Q^m)lc-kcX&a*a5`y&DaRxh6O*dfhLfF+fU5wKs(1v*!TkZidw*)YBP za@r`3+^IHRFeO%!ai%rxy;R;;V^Fr=OJlpBX;(b*3+SIw}7= zIq$*Thr(Zft-RlY)D3e8V;BmD&HOfX+E$H#Y@B3?UL5L~_fA-@*IB-!gItK7PIgG9 zgWuGZK_nuZjHVT_Fv(XxtU%)58;W39vzTI2n&)&4Dmq7&JX6G>XFaAR{7_3QB6zsT z?$L8c*WdN~nZGiscY%5KljQARN;`w$gho=p006z;n(qIQ*Zu<``TMO3n0{ARL@gYh zoRwS*|Niw~cR!?hE{m*y@F`1)vx-JRfqET=dJ5_(076st(=lFfjtKHoYg`k3oNmo_ zNbQEw8&sO5jAYmkD|Zaz_yUb0rC})U!rCHOl}JhbYIDLzLvrZVw0~JO`d*6f;X&?V=#T@ND*cv^I;`sFeq4 z##H5;gpZTb^0Hz@3C*~u0AqqNZ-r%rN3KD~%Gw`0XsIq$(^MEb<~H(2*5G^<2(*aI z%7}WB+TRlMIrEK#s0 z93xn*Ohb=kWFc)BNHG4I(~RPn-R8#0lqyBBz5OM6o5|>x9LK@%HaM}}Y5goCQRt2C z{j*2TtT4ne!Z}vh89mjwiSXG=%DURar~=kGNNaO_+Nkb+tRi~Rkf!7a$*QlavziD( z83s4GmQ^Wf*0Bd04f#0HX@ua_d8 z23~z*53ePD6@xwZ(vdl0DLc=>cPIOPOdca&MyR^jhhKrdQO?_jJh`xV3GKz&2lvP8 zEOwW6L*ufvK;TN{=S&R@pzV^U=QNk^Ec}5H z+2~JvEVA{`uMAr)?Kf|aW>33`)UL@bnfIUQc~L;TsTQ6>r-<^rB8uoNOJ>HWgqMI8 zSW}pZmp_;z_2O5_RD|fGyTxaxk53Hg_3Khc<8AUzV|ZeK{fp|Ne933=1&_^Dbv5^u zB9n=*)k*tjHDRJ@$bp9mrh}qFn*s}npMl5BMDC%Hs0M0g-hW~P*3CNG06G!MOPEQ_ zi}Qs-6M8aMt;sL$vlmVBR^+Ry<64jrm1EI1%#j?c?4b*7>)a{aDw#TfTYKq+SjEFA z(aJ&z_0?0JB83D-i3Vh+o|XV4UP+YJ$9Boid2^M2en@APw&wx7vU~t$r2V`F|7Qfo z>WKgI@eNBZ-+Og<{u2ZiG%>YvH2L3fNpV9J;WLJoBZda)01Rn;o@){01{7E#ke(7U zHK>S#qZ(N=aoae*4X!0A{)nu0R_sKpi1{)u>GVjC+b5Jyl6#AoQ-1_3UDovNSo`T> z?c-@7XX*2GMy?k?{g)7?Sv;SJkmxYPJPs!&QqB12ejq`Lee^-cDveVWL^CTUldb(G zjDGe(O4P=S{4fF=#~oAu>LG>wrU^z_?3yt24FOx>}{^lCGh8?vtvY$^hbZ)9I0E3r3NOlb9I?F-Yc=r$*~l`4N^xzlV~N zl~#oc>U)Yjl0BxV>O*Kr@lKT{Z09OXt2GlvE38nfs+DD7exl|&vT;)>VFXJVZp9Np zDK}aO;R3~ag$X*|hRVY3OPax|PG`@_ESc8E!mHRByJbZQRS38V2F__7MW~sgh!a>98Q2%lUNFO=^xU52|?D=IK#QjwBky-C>zOWlsiiM&1n z;!&1((Xn1$9K}xabq~222gYvx3hnZPg}VMF_GV~5ocE=-v>V=T&RsLBo&`)DOyIj* zLV{h)JU_y*7SdRtDajP_Y+rBkNN*1_TXiKwHH2&p51d(#zv~s#HwbNy?<+(=9WBvo zw2hkk2Dj%kTFhY+$T+W-b7@qD!bkfN#Z2ng@Pd=i3-i?xYfs5Z*1hO?kd7Sp^9`;Y zM2jeGg<-nJD1er@Pc_cSY7wo5dzQX44=%6rn}P_SRbpzsA{6B+!$3B0#;}qwO37G^ zL(V_5JK`XT?OHVk|{_$vQ|oNEpab*BO4F zUTNQ7RUhnRsU`TK#~`)$icsvKh~(pl=3p6m98@k3P#~upd=k*u20SNcb{l^1rUa)>qO997)pYRWMncC8A&&MHlbW?7i^7M`+B$hH~Y|J zd>FYOGQ;j>Zc2e7R{KK7)0>>nn_jYJy&o@sK!4G>-rLKM8Hv)f;hi1D2fAc$+six2 zyVZ@wZ6x|fJ!4KrpCJY=!Mq0;)X)OoS~{Lkh6u8J`eK%u0WtKh6B>GW_)PVc zl}-k`p09qwGtZ@VbYJC!>29V?Dr>>vk?)o(x?!z*9DJ||9qG-&G~#kXxbw{KKYy}J zQKa-dPt~M~E}V?PhW0R26xdA%1T*%ra6SguGu50YHngOTIv)@N|YttEXo#OZfgtP7;H?EeZZxo<}3YlYxtBq znJ!WFR^tmGf0Py}N?kZ(#=VtpC@%xJkDmfcCoBTxq zr_|5gP?u1@vJZbxPZ|G0AW4=tpb84gM2DpJU||(b8kMOV1S3|(yuwZJ&rIiFW(U;5 zUtAW`O6F6Zy+eZ1EDuP~AAHlSY-+A_eI5Gx)%*uro5tljy}kCZU*_d7)oJ>oQSZ3* zneTn`{gnNC&uJd)0aMBzAg021?YJ~b(fmkwZAd696a=0NzBAqBN54KuNDwa*no(^O z6p05bioXUR^uXjpTol*ppHp%1v9e)vkoUAUJyBx3lw0UO39b0?^{}yb!$yca(@DUn zCquRF?t=Zb9`Ed3AI6|L{eX~ijVH`VzSMheKoP7LSSf4g>md>`yi!TkoG5P>Ofp+n z(v~rW+(5L96L{vBb^g51B=(o)?%%xhvT*A5btOpw(TKh^g^4c zw>0%X!_0`{iN%RbVk+A^f{w-4-SSf*fu@FhruNL##F~sF24O~u zyYF<3el2b$$wZ_|uW#@Ak+VAGk#e|kS8nL1g>2B-SNMjMp^8;-FfeofY2fphFHO!{ z*!o4oTb{4e;S<|JEs<1_hPsmAlVNk?_5-Fp5KKU&d#FiNW~Y+pVFk@Cua1I{T+1|+ zHx6rFMor)7L)krbilqsWwy@T+g3DiH5MyVf8Wy}XbEaoFIDr~y;@r&I>FMW{ z?Q+(IgyebZ)-i4jNoXQhq4Muy9Fv+OxU;9_Jmn+<`mEC#%2Q_2bpcgzcinygNI!&^ z=V$)o2&Yz04~+&pPWWn`rrWxJ&}8khR)6B(--!9Q zubo}h+1T)>a@c)H^i``@<^j?|r4*{;tQf78(xn0g39IoZw0(CwY1f<%F>kEaJ zp9u|IeMY5mRdAlw*+gSN^5$Q)ShM<~E=(c8QM+T-Qk)FyKz#Sw0EJ*edYcuOtO#~Cx^(M7w5 z3)rl#L)rF|(Vun2LkFr!rg8Q@=r>9p>(t3Gf_auiJ2Xx9HmxYTa|=MH_SUlYL`mz9 zTTS$`%;D-|Jt}AP1&k7PcnfFNTH0A-*FmxstjBDiZX?}%u%Yq94$fUT&z6od+(Uk> zuqsld#G(b$G8tus=M!N#oPd|PVFX)?M?tCD0tS%2IGTfh}3YA3f&UM)W$_GNV8 zQo+a(ml2Km4o6O%gKTCSDNq+#zCTIQ1*`TIJh~k6Gp;htHBFnne))rlFdGqwC6dx2+La1&Mnko*352k0y z+tQcwndQlX`nc6nb$A9?<-o|r*%aWXV#=6PQic0Ok_D;q>wbv&j7cKc!w4~KF#-{6 z(S%6Za)WpGIWf7jZ3svNG5OLs0>vCL9{V7cgO%zevIVMH{WgP*^D9ws&OqA{yr|m| zKD4*07dGXshJHd#e%x%J+qmS^lS|0Bp?{drv;{@{l9ArPO&?Q5=?OO9=}h$oVe#3b z3Yofj&Cb}WC$PxmRRS)H%&$1-)z7jELS}!u!zQ?A^Y{Tv4QVt*vd@uj-^t2fYRzQj zfxGR>-q|o$3sGn^#VzZ!QQx?h9`njeJry}@x?|k0-GTTA4y3t2E`3DZ!A~D?GiJup z)8%PK2^9OVRlP(24P^4_<|D=H^7}WlWu#LgsdHzB%cPy|f8dD3|A^mh4WXxhLTVu_ z@abE{6Saz|Y{rXYPd4$tfPYo}ef(oQWZ=4Bct-=_9`#Qgp4ma$n$`tOwq#&E18$B; z@Bp)bn3&rEi0>fWWZ@7k5WazfoX`SCO4jQWwVuo+$PmSZn^Hz?O(-tW@*DGxuf)V1 zO_xm&;NVCaHD4dqt(-MlszI3F-p?0!-e$fbiCeuaw66h^TTDLWuaV<@C-`=Xe5WL) zwooG7h>4&*)p3pKMS3O!4>-4jQUN}iAMQ)2*70?hP~)TzzR?-f@?Aqy$$1Iy8VGG$ zMM?8;j!pUX7QQD$gRc_#+=raAS577ga-w?jd`vCiN5lu)dEUkkUPl9!?{$IJNxQys z*E4e$eF&n&+AMRQR2gcaFEjAy*r)G!s(P6D&TfoApMFC_*Ftx0|D0@E-=B7tezU@d zZ{hGiN;YLIoSeRS;9o%dEua4b%4R3;$SugDjP$x;Z!M!@QibuSBb)HY!3zJ7M;^jw zlx6AD50FD&p3JyP*>o+t9YWW8(7P2t!VQQ21pHJOcG_SXQD;(5aX#M6x##5H_Re>6lPyDCjxr*R(+HE%c&QN+b^tbT zXBJk?p)zhJj#I?&Y2n&~XiytG9!1ox;bw5Rbj~)7c(MFBb4>IiRATdhg zmiEFlj@S_hwYYI(ki{}&<;_7(Z0Qkfq>am z&LtL=2qc7rWguk3BtE4zL41@#S;NN*-jWw|7Kx7H7~_%7fPt;TIX}Ubo>;Rmj94V> zNB1=;-9AR7s`Pxn}t_6^3ahlq53e&!Lh85uG zec0vJY_6e`tg7LgfrJ3k!DjR)Bi#L@DHIrZ`sK=<5O0Ip!fxGf*OgGSpP@Hbbe&$9 z;ZI}8lEoC2_7;%L2=w?tb%1oL0V+=Z`7b=P&lNGY;yVBazXRYu;+cQDKvm*7NCxu&i;zub zAJh#11%?w>E2rf2e~C4+rAb-&$^vsdACs7 z@|Ra!OfVM(ke{vyiqh7puf&Yp6cd6{DptUteYfIRWG3pI+5< zBVBI_xkBAc<(pcb$!Y%dTW(b;B;2pOI-(QCsLv@U-D1XJ z(Gk8Q3l7Ws46Aktuj>|s{$6zA&xCPuXL-kB`CgYMs}4IeyG*P51IDwW?8UNQd+$i~ zlxOPtSi5L|gJcF@DwmJA5Ju8HEJ>o{{upwIpb!f{2(vLNBw`7xMbvcw<^{Fj@E~1( z?w`iIMieunS#>nXlmUcSMU+D3rX28f?s7z;X=se6bo8;5vM|O^(D6{A9*ChnGH!RG zP##3>LDC3jZPE4PH32AxrqPk|yIIrq~`aL-=}`okhNu9aT%q z1b)7iJ)CN=V#Ly84N_r7U^SH2FGdE5FpTO2 z630TF$P>GNMu8`rOytb(lB2};`;P4YNwW1<5d3Q~AX#P0aX}R2b2)`rgkp#zTxcGj zAV^cvFbhP|JgWrq_e`~exr~sIR$6p5V?o4Wym3kQ3HA+;Pr$bQ0(PmADVO%MKL!^q z?zAM8j1l4jrq|5X+V!8S*2Wl@=7*pPgciTVK6kS1Ge zMsd_u6DFK$jTnvVtE;qa+8(1sGBu~n&F%dh(&c(Zs4Fc#A=gG^^%^AyH}1^?|8quj zl@Z47h$){PlELJgYZCIHHL= z{U8O>Tw4x3<1{?$8>k-P<}1y9DmAZP_;(3Y*{Sk^H^A=_iSJ@+s5ktgwTXz_2$~W9>VVZsfwCm@s0sQ zeB50_yu@uS+e7QoPvdCwDz{prjo(AFwR%C?z`EL{1`|coJHQTk^nX=tvs1<0arUOJ z!^`*x&&BvTYmemyZ)2p~{%eYX=JVR?DYr(rNgqRMA5E1PR1Iw=prk=L2ldy3r3Vg@27IZx43+ywyzr-X*p*d@tZV+!U#~$-q=8c zgdSuh#r?b4GhEGNai)ayHQpk>5(%j5c@C1K3(W1pb~HeHpaqijJZa-e6vq_8t-^M^ zBJxq|MqZc?pjXPIH}70a5vt!IUh;l}<>VX<-Qcv^u@5(@@M2CHSe_hD$VG-eiV^V( zj7*9T0?di?P$FaD6oo?)<)QT>Npf6Og!GO^GmPV(Km0!=+dE&bk#SNI+C9RGQ|{~O*VC+tXK3!n`5 zHfl6>lwf_aEVV3`0T!aHNZLsj$paS$=LL(?b!Czaa5bbSuZ6#$_@LK<(7yrrl+80| z{tOFd=|ta2Z`^ssozD9BINn45NxUeCQis?-BKmU*Kt=FY-NJ+)8S1ecuFtN-M?&42 zl2$G>u!iNhAk*HoJ^4v^9#ORYp5t^wDj6|lx~5w45#E5wVqI1JQ~9l?nPp1YINf++ zMAdSif~_ETv@Er(EFBI^@L4BULFW>)NI+ejHFP*T}UhWNN`I)RRS8za? z*@`1>9ZB}An%aT5K=_2iQmfE;GcBVHLF!$`I99o5GO`O%O_zLr9AG18>&^HkG(;=V z%}c!OBQ~?MX(9h~tajX{=x)+!cbM7$YzTlmsPOdp2L-?GoW`@{lY9U3f;OUo*BwRB z8A+nv(br0-SH#VxGy#ZrgnGD(=@;HME;yd46EgWJ`EL%oXc&lFpc@Y}^>G(W>h_v_ zlN!`idhX+OjL+~T?19sroAFVGfa5tX-D49w$1g2g_-T|EpHL6}K_aX4$K=LTvwtlF zL*z}j{f+Uoe7{-px3_5iKPA<_7W=>Izkk)!l9ez2w%vi(?Y;i8AxRNLSOGDzNoqoI zP!1uAl}r=_871(G?y`i&)-7{u=%nxk7CZ_Qh#!|ITec zwQn`33GTUM`;D2POWnkqngqJhJRlM>CTONzTG}>^Q0wUunQyn|TAiHzyX2_%ATx%P z%7gW)%4rA9^)M<_%k@`Y?RbC<29sWU&5;@|9thf2#zf8z12$hRcZ!CSb>kUp=4N#y zl3hE#y6>kkA8VY2`W`g5Ip?2qC_BY$>R`iGQLhz2-S>x(RuWv)SPaGdl^)gGw7tjR zH@;jwk!jIaCgSg_*9iF|a);sRUTq30(8I(obh^|}S~}P4U^BIGYqcz;MPpC~Y@k_m zaw4WG1_vz2GdCAX!$_a%GHK**@IrHSkGoN>)e}>yzUTm52on`hYot7cB=oA-h1u|R ztH$11t?54Qg2L+i33FPFKKRm1aOjKST{l1*(nps`>sv%VqeVMWjl5+Gh+9);hIP8? zA@$?}Sc z3qIRpba+y5yf{R6G(u8Z^vkg0Fu&D-7?1s=QZU`Ub{-!Y`I?AGf1VNuc^L3v>)>i# z{DV9W$)>34wnzAXUiV^ZpYKw>UElrN_5Xj6{r_3| z$X5PK`e5$7>~9Dj7gK5ash(dvs`vwfk}&RD`>04;j62zoXESkFBklYaKm5seyiX(P zqQ-;XxlV*yg?Dhlx%xt!b0N3GHp@(p$A;8|%# zZ5m2KL|{on4nr>2_s9Yh=r5ScQ0;aMF)G$-9-Ca6%wA`Pa)i?NGFA|#Yi?{X-4ZO_ z^}%7%vkzvUHa$-^Y#aA+aiR5sa%S|Ebyn`EV<3Pc?ax_f>@sBZF1S;7y$CXd5t5=WGsTKBk8$OfH4v|0?0I=Yp}7c=WBSCg!{0n)XmiU;lfx)**zZaYqmDJelxk$)nZyx5`x$6R|fz(;u zEje5Dtm|a%zK!!tk3{i9$I2b{vXNFy%Bf{50X!x{98+BsDr_u9i>G5%*sqEX|06J0 z^IY{UcEbj6LDwuMh7cH`H@9sVt1l1#8kEQ(LyT@&+K}(ReE`ux8gb0r6L_#bDUo^P z3Ka2lRo52Hdtl_%+pwVs14=q`{d^L58PsU@AMf(hENumaxM{7iAT5sYmWh@hQCO^ zK&}ijo=`VqZ#a3vE?`7QW0ZREL17ZvDfdqKGD?0D4fg{7v%|Yj&_jcKJAB)>=*RS* zto8p6@k%;&^ZF>hvXm&$PCuEp{uqw3VPG$9VMdW5$w-fy2CNNT>E;>ejBgy-m_6`& z97L1p{%srn@O_JQgFpa_#f(_)eb#YS>o>q3(*uB;uZb605(iqM$=NK{nHY=+X2*G) zO3-_Xh%aG}fHWe*==58zBwp%&`mge<8uq8;xIxOd=P%9EK!34^E9sk|(Zq1QSz-JVeP12Fp)-`F|KY$LPwUE?rku zY@OJ)Z9A!ojfzfeyJ9;zv2EM7ZQB)AR5xGa-tMn^bl)FmoIiVyJ@!~@%{}qXXD&Ns zPnfe5U+&ohKefILu_1mPfLGuapX@btta5C#gPB2cjk5m4T}Nfi+Vfka!Yd(L?-c~5 z#ZK4VeQEXNPc4r$K00Fg>g#_W!YZ)cJ?JTS<&68_$#cZT-ME`}tcwqg3#``3M3UPvn+pi}(VNNx6y zFIMVb6OwYU(2`at$gHba*qrMVUl8xk5z-z~fb@Q3Y_+aXuEKH}L+>eW__!IAd@V}L zkw#s%H0v2k5-=vh$^vPCuAi22Luu3uKTf6fPo?*nvj$9(u)4$6tvF-%IM+3pt*cgs z_?wW}J7VAA{_~!?))?s6{M=KPpVhg4fNuU*|3THp@_(q!b*hdl{fjRVFWtu^1dV(f z6iOux9hi&+UK=|%M*~|aqFK{Urfl!TA}UWY#`w(0P!KMe1Si{8|o))Gy6d7;!JQYhgMYmXl?3FfOM2nQGN@~Ap6(G z3+d_5y@=nkpKAhRqf{qQ~k7Z$v&l&@m7Ppt#FSNzKPZM z8LhihcE6i=<(#87E|Wr~HKvVWhkll4iSK$^mUHaxgy8*K$_Zj;zJ`L$naPj+^3zTi z-3NTaaKnD5FPY-~?Tq6QHnmDDRxu0mh0D|zD~Y=vv_qig5r-cIbCpxlju&8Sya)@{ zsmv6XUSi)@(?PvItkiZEeN*)AE~I_?#+Ja-r8$(XiXei2d@Hi7Rx8+rZZb?ZLa{;@*EHeRQ-YDadz~M*YCM4&F-r;E#M+@CSJMJ0oU|PQ^ z=E!HBJDMQ2TN*Y(Ag(ynAL8%^v;=~q?s4plA_hig&5Z0x_^Oab!T)@6kRN$)qEJ6E zNuQjg|G7iwU(N8pI@_6==0CL;lRh1dQF#wePhmu@hADFd3B5KIH#dx(2A zp~K&;Xw}F_N6CU~0)QpQk7s$a+LcTOj1%=WXI(U=Dv!6 z{#<#-)2+gCyyv=Jw?Ab#PVkxPDeH|sAxyG`|Ys}A$PW4TdBv%zDz z^?lwrxWR<%Vzc8Sgt|?FL6ej_*e&rhqJZ3Y>k=X(^dytycR;XDU16}Pc9Vn0>_@H+ zQ;a`GSMEG64=JRAOg%~L)x*w{2re6DVprNp+FcNra4VdNjiaF0M^*>CdPkt(m150rCue?FVdL0nFL$V%5y6N z%eLr5%YN7D06k5ji5*p4v$UMM)G??Q%RB27IvH7vYr_^3>1D-M66#MN8tWGw>WED} z5AhlsanO=STFYFs)Il_0i)l)f<8qn|$DW7ZXhf5xI;m+7M5-%P63XFQrG9>DMqHc} zsgNU9nR`b}E^mL5=@7<1_R~j@q_2U^3h|+`7YH-?C=vme1C3m`Fe0HC>pjt6f_XMh zy~-i-8R46QNYneL4t@)<0VU7({aUO?aH`z4V2+kxgH5pYD5)wCh75JqQY)jIPN=U6 z+qi8cGiOtXG2tXm;_CfpH9ESCz#i5B(42}rBJJF$jh<1sbpj^8&L;gzGHb8M{of+} zzF^8VgML2O9nxBW7AvdEt90vp+#kZxWf@A)o9f9}vKJy9NDBjBW zSt=Hcs=YWCwnfY1UYx*+msp{g!w0HC<_SM!VL1(I2PE?CS}r(eh?{I)mQixmo5^p# zV?2R!R@3GV6hwTCrfHiK#3Orj>I!GS2kYhk1S;aFBD_}u2v;0HYFq}Iz1Z(I4oca4 zxquja8$+8JW_EagDHf$a1OTk5S97umGSDaj)gH=fLs9>_=XvVj^Xj9a#gLdk=&3tl zfmK9MNnIX9v{?%xdw7568 zNrZ|roYs(vC4pHB5RJ8>)^*OuyNC>x7ad)tB_}3SgQ96+-JT^Qi<`xi=)_=$Skwv~ zdqeT9Pa`LYvCAn&rMa2aCDV(TMI#PA5g#RtV|CWpgDYRA^|55LLN^uNh*gOU>Z=a06qJ;$C9z8;n-Pq=qZnc1zUwJ@t)L;&NN+E5m zRkQ(SeM8=l-aoAKGKD>!@?mWTW&~)uF2PYUJ;tB^my`r9n|Ly~0c%diYzqs9W#FTjy?h&X3TnH zXqA{QI82sdjPO->f=^K^f>N`+B`q9&rN0bOXO79S&a9XX8zund(kW7O76f4dcWhIu zER`XSMSFbSL>b;Rp#`CuGJ&p$s~G|76){d?xSA5wVg##_O0DrmyEYppyBr%fyWbbv zp`K84JwRNP$d-pJ!Qk|(RMr?*!wi1if-9G#0p>>1QXKXWFy)eB3ai)l3601q8!9JC zvU#ZWWDNKq9g6fYs?JQ)Q4C_cgTy3FhgKb8s&m)DdmL5zhNK#8wWg!J*7G7Qhe9VU zha?^AQTDpYcuN!B+#1dE*X{<#!M%zfUQbj=zLE{dW0XeQ7-oIsGY6RbkP2re@Q{}r_$iiH0xU%iN*ST`A)-EH6eaZB$GA#v)cLi z*MpA(3bYk$oBDKAzu^kJoSUsDd|856DApz={3u8sbQV@JnRkp2nC|)m;#T=DvIL-O zI4vh;g7824l}*`_p@MT4+d`JZ2%6NQh=N9bmgJ#q!hK@_<`HQq3}Z8Ij>3%~<*= zcv=!oT#5xmeGI92lqm9sGVE%#X$ls;St|F#u!?5Y7syhx6q#MVRa&lBmmn%$C0QzU z);*ldgwwCmzM3uglr}!Z2G+?& zf%Dpo&mD%2ZcNFiN-Z0f;c_Q;A%f@>26f?{d1kxIJD}LxsQkB47SAdwinfMILZdN3 zfj^HmTzS3Ku5BxY>ANutS8WPQ-G>v4^_Qndy==P3pDm+Xc?>rUHl-4+^%Sp5atOja z2oP}ftw-rqnb}+khR3CrRg^ibi6?QYk1*i^;kQGirQ=uB9Sd1NTfT-Rbv;hqnY4neE5H1YUrjS2m+2&@uXiAo- zrKUX|Ohg7(6F(AoP~tj;NZlV#xsfo-5reuQHB$&EIAhyZk;bL;k9ouDmJNBAun;H& zn;Of1z_Qj`x&M;5X;{s~iGzBQTY^kv-k{ksbE*Dl%Qf%N@hQCfY~iUw!=F-*$cpf2 z3wix|aLBV0b;W@z^%7S{>9Z^T^fLOI68_;l@+Qzaxo`nAI8emTV@rRhEKZ z?*z_{oGdI~R*#<2{bkz$G~^Qef}$*4OYTgtL$e9q!FY7EqxJ2`zk6SQc}M(k(_MaV zSLJnTXw&@djco1~a(vhBl^&w=$fa9{Sru>7g8SHahv$&Bl(D@(Zwxo_3r=;VH|uc5 zi1Ny)J!<(KN-EcQ(xlw%PNwK8U>4$9nVOhj(y0l9X^vP1TA>r_7WtSExIOsz`nDOP zs}d>Vxb2Vo2e5x8p(n~Y5ggAyvib>d)6?)|E@{FIz?G3PVGLf7-;BxaP;c?7ddH$z zA+{~k^V=bZuXafOv!RPsE1GrR3J2TH9uB=Z67gok+u`V#}BR86hB1xl}H4v`F+mRfr zYhortD%@IGfh!JB(NUNSDh+qDz?4ztEgCz&bIG-Wg7w-ua4ChgQR_c+z8dT3<1?uX z*G(DKy_LTl*Ea!%v!RhpCXW1WJO6F`bgS-SB;Xw9#! z<*K}=#wVu9$`Yo|e!z-CPYH!nj7s9dEPr-E`DXUBu0n!xX~&|%#G=BeM?X@shQQMf zMvr2!y7p_gD5-!Lnm|a@z8Of^EKboZsTMk%5VsJEm>VsJ4W7Kv{<|#4f-qDE$D-W>gWT%z-!qXnDHhOvLk=?^a1*|0j z{pW{M0{#1VcR5;F!!fIlLVNh_Gj zbnW(_j?0c2q$EHIi@fSMR{OUKBcLr{Y&$hrM8XhPByyZaXy|dd&{hYQRJ9@Fn%h3p7*VQolBIV@Eq`=y%5BU~3RPa^$a?ixp^cCg z+}Q*X+CW9~TL29@OOng(#OAOd!)e$d%sr}^KBJ-?-X&|4HTmtemxmp?cT3uA?md4% zT8yZ0U;6Rg6JHy3fJae{6TMGS?ZUX6+gGTT{Q{)SI85$5FD{g-eR%O0KMpWPY`4@O zx!hen1*8^E(*}{m^V_?}(b5k3hYo=T+$&M32+B`}81~KKZhY;2H{7O-M@vbCzuX0n zW-&HXeyr1%I3$@ns-V1~Lb@wIpkmx|8I~ob1Of7i6BTNysEwI}=!nU%q7(V_^+d*G z7G;07m(CRTJup!`cdYi93r^+LY+`M*>aMuHJm(A8_O8C#A*$!Xvddgpjx5)?_EB*q zgE8o5O>e~9IiSC@WtZpF{4Bj2J5eZ>uUzY%TgWF7wdDE!fSQIAWCP)V{;HsU3ap?4 znRsiiDbtN7i9hapO;(|Ew>Ip2TZSvK9Z^N21%J?OiA_&eP1{(Pu_=%JjKy|HOardq ze?zK^K zA%sjF64*Wufad%H<) z^|t>e*h+Z1#l=5wHexzt9HNDNXgM=-OPWKd^5p!~%SIl>Fo&7BvNpbf8{NXmH)o{r zO=aBJ;meX1^{O%q;kqdw*5k!Y7%t_30 zy{nGRVc&5qt?dBwLs+^Sfp;f`YVMSB#C>z^a9@fpZ!xb|b-JEz1LBX7ci)V@W+kvQ89KWA0T~Lj$aCcfW#nD5bt&Y_< z-q{4ZXDqVg?|0o)j1%l0^_it0WF*LCn-+)c!2y5yS7aZIN$>0LqNnkujV*YVes(v$ zY@_-!Q;!ZyJ}Bg|G-~w@or&u0RO?vlt5*9~yeoPV_UWrO2J54b4#{D(D>jF(R88u2 zo#B^@iF_%S>{iXSol8jpmsZuJ?+;epg>k=$d`?GSegAVp3n$`GVDvK${N*#L_1`44 z{w0fL{2%)0|E+qgZtjX}itZz^KJt4Y;*8uSK}Ft38+3>j|K(PxIXXR-t4VopXo#9# zt|F{LWr-?34y`$nLBVV_*UEgA6AUI65dYIbqpNq9cl&uLJ0~L}<=ESlOm?Y-S@L*d z<7vt}`)TW#f%Rp$Q}6@3=j$7Tze@_uZO@aMn<|si{?S}~maII`VTjs&?}jQ4_cut9$)PEqMukwoXobzaKx^MV z2fQwl+;LSZ$qy%Tys0oo^K=jOw$!YwCv^ei4NBVauL)tN%=wz9M{uf{IB(BxK|lT*pFkmNK_1tV`nb%jH=a0~VNq2RCKY(rG7jz!-D^k)Ec)yS%17pE#o6&eY+ z^qN(hQT$}5F(=4lgNQhlxj?nB4N6ntUY6(?+R#B?W3hY_a*)hnr4PA|vJ<6p`K3Z5Hy z{{8(|ux~NLUW=!?9Qe&WXMTAkQnLXg(g=I@(VG3{HE13OaUT|DljyWXPs2FE@?`iU z4GQlM&Q=T<4&v@Fe<+TuXiZQT3G~vZ&^POfmI1K2h6t4eD}Gk5XFGpbj1n_g*{qmD6Xy z`6Vv|lLZtLmrnv*{Q%xxtcWVj3K4M%$bdBk_a&ar{{GWyu#ljM;dII;*jP;QH z#+^o-A4np{@|Mz+LphTD0`FTyxYq#wY)*&Ls5o{0z9yg2K+K7ZN>j1>N&;r+Z`vI| zDzG1LJZ+sE?m?>x{5LJx^)g&pGEpY=fQ-4}{x=ru;}FL$inHemOg%|R*ZXPodU}Kh zFEd5#+8rGq$Y<_?k-}r5zgQ3jRV=ooHiF|@z_#D4pKVEmn5CGV(9VKCyG|sT9nc=U zEoT67R`C->KY8Wp-fEcjjFm^;Cg(ls|*ABVHq8clBE(;~K^b+S>6uj70g? z&{XQ5U&!Z$SO7zfP+y^8XBbiu*Cv-yJG|l-oe*!s5$@Lh_KpxYL2sx`B|V=dETN>5K+C+CU~a_3cI8{vbu$TNVdGf15*>D zz@f{zIlorkY>TRh7mKuAlN9A0>N>SV`X)+bEHms=mfYTMWt_AJtz_h+JMmrgH?mZt zm=lfdF`t^J*XLg7v+iS)XZROygK=CS@CvUaJo&w2W!Wb@aa?~Drtf`JV^cCMjngVZ zv&xaIBEo8EYWuML+vxCpjjY^s1-ahXJzAV6hTw%ZIy!FjI}aJ+{rE&u#>rs)vzuxz z+$5z=7W?zH2>Eb32dvgHYZtCAf!=OLY-pb4>Ae79rd68E2LkVPj-|jFeyqtBCCwiW zkB@kO_(3wFq)7qwV}bA=zD!*@UhT`geq}ITo%@O(Z5Y80nEX~;0-8kO{oB6|(4fQh z);73T!>3@{ZobPwRv*W?7m0Ml9GmJBCJd&6E?hdj9lV= z4flNfsc(J*DyPv?RCOx!MSvk(M952PJ-G|JeVxWVjN~SNS6n-_Ge3Q;TGE;EQvZg86%wZ`MB zSMQua(i*R8a75!6$QRO^(o7sGoomb+Y{OMy;m~Oa`;P9Yqo>?bJAhqXxLr7_3g_n>f#UVtxG!^F#1+y@os6x(sg z^28bsQ@8rw%Gxk-stAEPRbv^}5sLe=VMbkc@Jjimqjvmd!3E7+QnL>|(^3!R} zD-l1l7*Amu@j+PWLGHXXaFG0Ct2Q=}5YNUxEQHCAU7gA$sSC<5OGylNnQUa>>l%sM zyu}z6i&({U@x^hln**o6r2s-(C-L50tQvz|zHTqW!ir?w&V23tuYEDJVV#5pE|OJu z7^R!A$iM$YCe?8n67l*J-okwfZ+ZTkGvZ)tVPfR;|3gyFjF)8V zyXXN=!*bpyRg9#~Bg1+UDYCt0 ztp4&?t1X0q>uz;ann$OrZs{5*r`(oNvw=$7O#rD|Wuv*wIi)4b zGtq4%BX+kkagv3F9Id6~-c+1&?zny%w5j&nk9SQfo0k4LhdSU_kWGW7axkfpgR`8* z!?UTG*Zi_baA1^0eda8S|@&F z{)Rad0kiLjB|=}XFJhD(S3ssKlveFFmkN{Vl^_nb!o5M!RC=m)V&v2%e?ZoRC@h3> zJ(?pvToFd`*Zc@HFPL#=otWKwtuuQ_dT-Hr{S%pQX<6dqVJ8;f(o)4~VM_kEQkMR+ zs1SCVi~k>M`u1u2xc}>#D!V&6nOOh-E$O&SzYrjJdZpaDv1!R-QGA141WjQe2s0J~ zQ;AXG)F+K#K8_5HVqRoRM%^EduqOnS(j2)|ctA6Q^=|s_WJYU;Z%5bHp08HPL`YF2 zR)Ad1z{zh`=sDs^&V}J z%$Z$!jd7BY5AkT?j`eqMs%!Gm@T8)4w3GYEX~IwgE~`d|@T{WYHkudy(47brgHXx& zBL1yFG6!!!VOSmDxBpefy2{L_u5yTwja&HA!mYA#wg#bc-m%~8aRR|~AvMnind@zs zy>wkShe5&*un^zvSOdlVu%kHsEo>@puMQ`b1}(|)l~E{5)f7gC=E$fP(FC2=F<^|A zxeIm?{EE!3sO!Gr7e{w)Dx(uU#3WrFZ>ibmKSQ1tY?*-Nh1TDHLe+k*;{Rp!Bmd_m zb#^kh`Y*8l|9Cz2e{;RL%_lg{#^Ar+NH|3z*Zye>!alpt{z;4dFAw^^H!6ING*EFc z_yqhr8d!;%nHX9AKhFQZBGrSzfzYCi%C!(Q5*~hX>)0N`vbhZ@N|i;_972WSx*>LH z87?en(;2_`{_JHF`Sv6Wlps;dCcj+8IJ8ca6`DsOQCMb3n# z3)_w%FuJ3>fjeOOtWyq)ag|PmgQbC-s}KRHG~enBcIwqIiGW8R8jFeBNY9|YswRY5 zjGUxdGgUD26wOpwM#8a!Nuqg68*dG@VM~SbOroL_On0N6QdT9?)NeB3@0FCC?Z|E0 z6TPZj(AsPtwCw>*{eDEE}Gby>0q{*lI+g2e&(YQrsY&uGM{O~}(oM@YWmb*F zA0^rr5~UD^qmNljq$F#ARXRZ1igP`MQx4aS6*MS;Ot(1L5jF2NJ;de!NujUYg$dr# z=TEL_zTj2@>ZZN(NYCeVX2==~=aT)R30gETO{G&GM4XN<+!&W&(WcDP%oL8PyIVUC zs5AvMgh6qr-2?^unB@mXK*Dbil^y-GTC+>&N5HkzXtozVf93m~xOUHn8`HpX=$_v2 z61H;Z1qK9o;>->tb8y%#4H)765W4E>TQ1o0PFj)uTOPEvv&}%(_mG0ISmyhnQV33Z$#&yd{ zc{>8V8XK$3u8}04CmAQ#I@XvtmB*s4t8va?-IY4@CN>;)mLb_4!&P3XSw4pA_NzDb zORn!blT-aHk1%Jpi>T~oGLuh{DB)JIGZ9KOsciWs2N7mM1JWM+lna4vkDL?Q)z_Ct z`!mi0jtr+4*L&N7jk&LodVO#6?_qRGVaucqVB8*us6i3BTa^^EI0x%EREQSXV@f!lak6Wf1cNZ8>*artIJ(ADO*=<-an`3zB4d*oO*8D1K!f z*A@P1bZCNtU=p!742MrAj%&5v%Xp_dSX@4YCw%F|%Dk=u|1BOmo)HsVz)nD5USa zR~??e61sO(;PR)iaxK{M%QM_rIua9C^4ppVS$qCT9j2%?*em?`4Z;4@>I(c%M&#cH z>4}*;ej<4cKkbCAjjDsyKS8rIm90O)Jjgyxj5^venBx&7B!xLmzxW3jhj7sR(^3Fz z84EY|p1NauwXUr;FfZjdaAfh%ivyp+^!jBjJuAaKa!yCq=?T_)R!>16?{~p)FQ3LDoMyG%hL#pR!f@P%*;#90rs_y z@9}@r1BmM-SJ#DeuqCQk=J?ixDSwL*wh|G#us;dd{H}3*-Y7Tv5m=bQJMcH+_S`zVtf;!0kt*(zwJ zs+kedTm!A}cMiM!qv(c$o5K%}Yd0|nOd0iLjus&;s0Acvoi-PFrWm?+q9f^FslxGi z6ywB`QpL$rJzWDg(4)C4+!2cLE}UPCTBLa*_=c#*$b2PWrRN46$y~yST3a2$7hEH= zNjux+wna^AzQ=KEa_5#9Ph=G1{S0#hh1L3hQ`@HrVnCx{!fw_a0N5xV(iPdKZ-HOM za)LdgK}1ww*C_>V7hbQnTzjURJL`S%`6nTHcgS+dB6b_;PY1FsrdE8(2K6FN>37!62j_cBlui{jO^$dPkGHV>pXvW0EiOA zqW`YaSUBWg_v^Y5tPJfWLcLpsA8T zG)!x>pKMpt!lv3&KV!-um= zKCir6`bEL_LCFx4Z5bAFXW$g3Cq`?Q%)3q0r852XI*Der*JNuKUZ`C{cCuu8R8nkt z%pnF>R$uY8L+D!V{s^9>IC+bmt<05h**>49R*#vpM*4i0qRB2uPbg8{{s#9yC;Z18 zD7|4m<9qneQ84uX|J&f-g8a|nFKFt34@Bt{CU`v(SYbbn95Q67*)_Esl_;v291s=9 z+#2F2apZU4Tq=x+?V}CjwD(P=U~d<=mfEFuyPB`Ey82V9G#Sk8H_Ob_RnP3s?)S_3 zr%}Pb?;lt_)Nf>@zX~D~TBr;-LS<1I##8z`;0ZCvI_QbXNh8Iv)$LS=*gHr;}dgb=w5$3k2la1keIm|=7<-JD>)U%=Avl0Vj@+&vxn zt-)`vJxJr88D&!}2^{GPXc^nmRf#}nb$4MMkBA21GzB`-Or`-3lq^O^svO7Vs~FdM zv`NvzyG+0T!P8l_&8gH|pzE{N(gv_tgDU7SWeiI-iHC#0Ai%Ixn4&nt{5y3(GQs)i z&uA;~_0shP$0Wh0VooIeyC|lak__#KVJfxa7*mYmZ22@(<^W}FdKjd*U1CqSjNKW% z*z$5$=t^+;Ui=MoDW~A7;)Mj%ibX1_p4gu>RC}Z_pl`U*{_z@+HN?AF{_W z?M_X@o%w8fgFIJ$fIzBeK=v#*`mtY$HC3tqw7q^GCT!P$I%=2N4FY7j9nG8aIm$c9 zeKTxVKN!UJ{#W)zxW|Q^K!3s;(*7Gbn;e@pQBCDS(I|Y0euK#dSQ_W^)sv5pa%<^o zyu}3d?Lx`)3-n5Sy9r#`I{+t6x%I%G(iewGbvor&I^{lhu-!#}*Q3^itvY(^UWXgvthH52zLy&T+B)Pw;5>4D6>74 zO_EBS)>l!zLTVkX@NDqyN2cXTwsUVao7$HcqV2%t$YzdAC&T)dwzExa3*kt9d(}al zA~M}=%2NVNUjZiO7c>04YH)sRelXJYpWSn^aC$|Ji|E13a^-v2MB!Nc*b+=KY7MCm zqIteKfNkONq}uM;PB?vvgQvfKLPMB8u5+Am=d#>g+o&Ysb>dX9EC8q?D$pJH!MTAqa=DS5$cb+;hEvjwVfF{4;M{5U&^_+r zvZdu_rildI!*|*A$TzJ&apQWV@p{!W`=?t(o0{?9y&vM)V)ycGSlI3`;ps(vf2PUq zX745#`cmT*ra7XECC0gKkpu2eyhFEUb?;4@X7weEnLjXj_F~?OzL1U1L0|s6M+kIhmi%`n5vvDALMagi4`wMc=JV{XiO+^ z?s9i7;GgrRW{Mx)d7rj)?(;|b-`iBNPqdwtt%32se@?w4<^KU&585_kZ=`Wy^oLu9 z?DQAh5z%q;UkP48jgMFHTf#mj?#z|=w= z(q6~17Vn}P)J3M?O)x))%a5+>TFW3No~TgP;f}K$#icBh;rSS+R|}l鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 53637 zcmagFW0a=N(k5EAZR081>auOywr$(CZC96V8(p@my3nWR?C*Rt?>>8Ga;>=U{1Lel zDD75u}rp6Jr1cQuqg>^C$(Gz+VQH zzl8R`GRg|dNs5UotI*4eJ<3i`$w<@DFThLFQO{1#H7hYLv+N%~Ow)}^&dAQtNYVns zT!fjV{VLI->cAu~`&D8zKG=$Lu6gHl?*#n6O!!In&y|7wozULN{2z<@cOKaP;xTtJ zG_f)LKeD3!lhxhH(80mf>HjyxBFMz7_%G|qUn2d_LqzP|?QHA~O~{z&jcp8_oqc0u zVFnqILia4#v}oKIf?(Ie@_rIJ5YzJt+6db~OG;MtX2T-x7Y?I2Uh98n5LS3V1C}HS4FGX~v z$Nc@PV}OL57{$6`F?OZpC3tYw1_6FuD$Mp!j{*rU*hqXn<%A*gByd7vSP+Eau|x2# zbojpicFH5Wp{r|$!G;AH>zuv{!no&WYcJOy1{EKKcOER79a z?4AB~2&Kxl_9%i#ei(r8v4z7*gWA;1RWFs}DEkEi9O&3cXeQYzSs4LaLs0WNcN6=> zhx(^zTh@EXx8j)QAE`vZsJBD2SG2W63c^S1{zh~fgVeITo?~@0xwiXYeNvP zh@DSQerPfkZJ10ogioa8axbRq$V#3hB)2X4*Hvv$DQo-GDR8ToL`Y31j{uZmPfbMA zDO<_ir_inB9$^)ChAVKt@$BqJST(FPZJ}%BPCY=jaRw#?9IjmBccA|-JE9aGzDlEg zeo%=%7G>$qB1lx89YeshqzNP9V4Y2bdLDuN2?(_%6$Z0L368S~6Kz}SMGE)t@mmsN zc-{tuAZhnI$c}w0ld&HggTlOv_yo8fgAE`4L#E?jYFxlIvpGP*Zau2r$I6qH{1mrxV-_P((Xe*bOifCT2vO#(V)|9y!dZ2Gsh8;} zQ?sCNCg|@t{8YP0s#TOLou-F|(Kd(lAtMK;sg)c|G-j$*YY1YaLz?{q;T^eCN-_4h zpZI%MF30$%+~z2klD@+^+(~()lTnS1pGMpOoL$T$A0;lXrQuTRuP|s*x=rn$Gr+d4 z3I4F^6Pv$E6^GF?I^-}mmKpx1G5H^QdwQkeT=iGlw*C^yf0jDQ|4+64B~zlYKmRHg zT-cxK^Aj}W9vHo6qx+s}7*IilC%txNb}60<7yfKW!hvuUo>Xk8iS*C+N1q)+AdEBb zGcPD8zakoPHhHMzbBa^-*%ZKrA!exlB&)W$Qb;o?vBr*(VoIi(IU?Vbw=Yv;#cPOQ z%cthdrSPCec1md&rBcJ>T@g|k8_wXJF+-=+#!E_c2U*N_@riQy4+jOv&JYZpDO+jR z>-8s_+W~*jf9@2l(rZWOuYM{1)i1jLyi@W2*I=nSn>tC@+nUPQ+grOj{A<&(%G&Zc zf@t4jiMp%LN;QDiHY;r~?G3GK)urL7sz?&KdVU=acE_TLA$-5RJjAAjRnkkD`65Jjn`R{(1?A?_+?MiP!W=HvIoVjJ8mhHson^bb zCK-2PX-u2WWAbJ&rM5S#fQ)S~-jlS{qjGrN45@v`>rzi8rHJsFGAg7zK6s zJ)0yWejy8z^(ZyQphG;H!2|ot-rY1-cm$)Pzap7soaKFpEwxZ@n?mU>ReMCcFW09% z!B%_3Bf>qp<3YOK^-KJ|%Si8yQ@E))xW^eXNcF~EBgVOnA;#$UB}eJCoA6*D%5_XQ z>+qEdvzV!4q}`2d;sbL0k#`i1bu;F@JW9LsThR;uD(?DN40We`e!x;xjrb-w<#Y=`i$V$+fEU#tq#5&}ge#UU~733BA zBe4RaFC;iUfm?X+4MH2F630E>h|()3W;~9yEOt11oZnaGGO`7Vk+ukY~$)| z>1HZsX=5sAY;5Z6ENf_IXm0vnRzFou+5y!R?~iR3g=Lp5@eg7J8=%k@g&+XNQc&8u zk%d+Pd?`43`vkjg*G_DASv=S!l;^-55#~M$!59H(EWjqASvVqeVbqC3 z4oEn&>PBE)gvEYXeiKfyv)NsFtTrn+$}WOWtyW=XglP%{vJ|+#$vjZa z(xTX?W)!-ki-W6D)gW9|-&k0pcFQ%gI?^NbyfunbH6~k}8goibT-n&|sNQ?5Mm8Bt zo{R)>m3dfoZKq6@g$kvaQgW=2E94!aP&SL~@UpN`o#<|AEv&t0jd3!IOe@3ir2$>^ zylt%0(ZApJJ=u(xGV+PF-Lhw};*pc>%*4o+JCh*b&BM@#6rO{Q0u5s#WGWvIm{?#9 zBj!^;W|sdT5YYw9hNROXv(+XxgFr?J#X8ei#w1Fqk z!8f$#-f_zKEx0N?vxS2j;=53N3^zirwR~$OJC<(teCN9|;<`AXI=HE5YNQ~0W+up| zxvZj{PxR)!iWjCW-Ig8CDHCWk#0%vtVOdMULc?IV!z_lSQLov;T*|y!zwPQB+7ttL zU?v!p!|rZS4&oJ%!e$sqYH++a!KbqFQfoCqGnfJx#auV4&&7;mVTJ(c$1?_^{d&lb zOnXQSm!w3~_Zvq|b%v|`bdv6I^wJXtl>K^$k7Q+<^l#p8sBnyYPMe4enXluVhw-AI z@a!F*NYbiI!d7fdbQWxkV&O8?OzJvGZ*oL!SeQj#9jkh;h5W|i-A#MKU%%ddjE0YY z+$YAwCz|J_Q-y|$OY2%&@V~`C7$fcKE zX3DpH%e}R8wDG#uA_= zu81aAn^uMGZ$ZG8>9wq&M)6H!>(a0JHdm;7;hx1KruTKEIM=_Pqz)Mjq*YZ*1&XcG zXZk|?;zjt>5Pt)mL>hIw0@@SV<%J?4qsTo?z;Y88GP>k&u>EBlz-+p0jZ;p{X4eTL zZ@iQiqe(faxGN82c+HgcNa(>8coQ$K&FyFdcY; z1@v~{hAL%lfP)cUAU=>vB_v3vOo0o&vpaH|N+mb#P>)K_4}N8apNaqqvQHe6p|x+6 z;UH6m{|j!0r2^XmrZ#hQvxDO*R|ud-Ps=bT8MJ&~Fg`^t-(|oh!3H!mF-3;}zh%J|M%P)C3KgaUaZE`o>X9 z`0;Lkfee?(9W<68&ayWg+!3NCbBM&(x}XlCUyQ$30J?Vw@EcfqT8q@TIKc31pZEyw z5t#Uh?&10MC7f5`gb32&6P)+b90bWEtRJ5=DmAN?R}T6_%T;bR=@Ie9PC!{3!`x3C zhcViN*pISAoN~mN`itwG67YwNN>Aw`QtfF6xs9$LsuY87YUils%)P>@=kJB06UN~h zYQg|sU2)Q8MHdT7DS1ua8=u3v)w%~=lE%EUy@g$|RU(c}%|vwG!TUn^Pw+AguP2uH z7reYf{BOaF`oDZ9VS76>OLJEzLl;YXyZ-_&$+q&Sf=FY3woX@r`GW$Aib$@Ba|-rZ zpb=G>RN>Gie1z*9(nycvwsqO=l`Tn_?n4O&5KVJ>wF_#thB;W8SswGhu5~^>=H~Q) zPVNBV(isy5?9q5Ja5s(uV>7%QubrL)GeS7gmb@nOFSY`AS85y$y5WWmjuw8*@MADB zwKLDttjRTJkx1gtQM_$&idMmSh7C9p#ilWsp+D6r-RP4WVcj!#jkogPxA{%ag9s zU;N~9qag(;Cpy{u&`}5Vko+R<-p=>zDnTXYac6P~RrsVN!8FO{MaUAeA68NcEpSTeL1$Kf|4njPYra1w zK}@)px4&TjDcg#^_?E|iK{@tc#KZWX5zoK-yAp1yZdtlLuar%sfUt* zhqCn6nvs!IQfY`bL?zE!5XKU{ENTh{M7YefOB|h5ysI4TEpDq>=w}$y5(;YQRgA+d z4hy!^=IB*PVkR@5a^93oem46fjMtbACAu`%sEye02|j5$svK=&hP&uXi}B-r7K#62 z1HkPNhP^yQn?|*Ph1qSR!)#cFhuz3bq^H}3w!@5q-R_qKCTnfTB@}5jkxD6#)iI2n zqzGGRU@OCvIAu6y63J;+o2cd^dLzL3z65(nYQ(}!iz;fl=73^pP}A*Z=PDvaWB)5p zV$^`MQbB$bo8G<^$JD8dEK2&ZDv16h55u+K_hzA2!v&Z4xr6SYjAod&!g?qZbrF%X<1xM+z_%}&Gmutk#z~z^IkX{sN1kC2`b3A%XjhxN8 z1W<8`dV{T~iU&4nczQk=NsLiYyd-$#~1k`dM5hUB8bcxqyn`1D8ekPY^;DXuT& zc-;eB>jc=g8lkbRyoX81YLl|w@ElTEN$b6@0d6HqY>g1Kd<`y%%G$d_;RJHh;C$=M0F6MP|*X$A5Og{hmDTkL3! ziS+E~3#+e4+4(KDo*^%hyCiM=V&Or8`s1%yTWH%qp*vv{k8fe$qt9rKJ`9M^07aJw zFCid(Bzd?h!dA#UH$}aaB`;F7xhg&}4lJ{KAFqmYzO1N;zGvnjUmgqE!kmBO4GJWJ z8A3eg2xT3pxJaWE7vT}x^ir?LaReZXbI(X#mgu56Igh_|NUGM(?>RguMg_M= zq&wtiAUUrBxgp;Tm*uATcQM2@)T%oBy)(1ke%4|NV-R~37t{OeO;H5R>cyN&e{tAau?m{vqLf=6gO)qzMbao!*zz8u0GdmVaclVyl``xLJ6Lh?F8&(?bYyGeKG zu)chV-+i~zH(8FoyR9s1tjZXQhcl+Ld^DtRxfNe`0pHcY>A1K!PHbDTtF6wtd<2Qj zHn&jWItWTh95200}C(M$vaUP;{gsSd3{KTE|lg74u6XDqmhtD?5WG;^zM}T>FUFq8f zK|}@z8?P);NK1$%*1Ln@KoAE}QKC3PT!Yf3ch=xK&BB32vbfzaL89&=l!@L=UMoQ0x+Qq*4#eM(Y$($Xs&| zJ&|dUys`?Gx$8p227PcDn(sU$`H7!l7QSKY%pG9Rri=CT0nN@1X>x6R4#+&fZ>m7E z@B1l;asBE2w1qSweR9MfuxHzNxkKnuH^o!HTE+CnPqQCqF+bAX%{8<`)uHuBC3b?R z{MPaE5ch?)N_R=}+QhY%r9J3+(ihjsE-YPE~t1##KlDUR_1^Oy-PoUT+OHqKu{8z>ri1 zNTS}Yh}72qrk306u(l?(r@rm#t{x6^LIu3~f`O!bKwxT74YvUM{fY6?6Kj=`&5lDTaqGgc z|A6i4W+8m6^lHnyHy88X0i@W-y3D!v*RG-3OLqLSaqLD1cb!>wtsrVE;QF0G5gBuA zxr&)>Gi8L;)*m%Vr~|%;ZY=uKnNQF#d8Bk2T|8;{vMY_^upaRnf# zcne261NoM;gJGE^m+UP$Ad^0UEpv@FNU~2i0x#b^kR|U@ai?QLTy5z9j(4D|>_V$o z&AYR}M^-n}6TIc=+6V40(d}GSaUkxt>axcdZvF;08hT)YfF%_6-|6dV9$R~C=-sN` zQf>}T$_9|G(Pf7y-vx3f>fu)&JACoq&;PMB^E;aGj6WeU=I!+sbH5H_I%oD1hAZtV zB^Q&T@ti5`bhx+(5W$&%+$E{Z>30UCR>QLE-kMh2$S`cI(s^3>8t@vw1lfs?_oAf3O0(TGXet6fGa!H4Cc0s#(f9x|s4qp|pucb69f&W{y7k z+~uCM?-px0{PKXSp;m_Pi=IQ=4SEX1)RS_Oyox-^g z4c|8VNmbQ{0K++9fC>i&QdUrPIWi^8_QZu%rTT_|lUW{fz7#AqyR5Gv&__0p@E7m^QMN1FZE_Y7nu!ZN6Jm^H$uPK_~BC*L{YcQ{6g{KXaVmC zF!l$ZIUUUIf^<8ha69u-l7Ch(0fjtWtUXwj0H?duK4>8xWExTEY9zG8GfabA2v#*y z7wWzW-i5hlr+19k`6)f#hyl;*iYl*U^-D8Ze$!ZHhUi&5BZ%?(Y6MUU#rD1pKGE^h zUnnQOG_s*FMi?EBKpGFaKd{(2HnXx*;dYs?rEV?dhE>{aR5m{vE%{5}R#b`Rq> zzt6hx9+5sc@S^oHMp3H?3SzqBh0up?2+L*W=nJ#bN)K6&MV?Wtn1yFbC&B9{`(t`zcppF`I3T;#g^jbHDih*k;w(q;VO^=lfzo;gHu7oqr@Lfj!f z3cx!&{`j|#8e`$9tv+azfBr2m%(>gPgZnp6enkZYMD(98R!KW&7egDHe?@z8HDP_w zj#~vNyEisyhiH%nC#^+DJi|F~kl-Z~){zqK7>O=S+>>IiNN;A7L~6C7rB?bBv=`KB z;*IE36(#2Z>sG#PFNLkGtt)EQ_LtYay{|93TOZV~{$_3**(OMb4EKskf5xo=Hs84Fmn%&S3q-yvIk3`E;w`Wci6o0UQ#7o$_MYj zSwlylI+LcrRYy+mH3?-(SyhfYGi)#ncaK7$m=iH0z*%$BCH|H9=@ZVK5#DJrx%dS} zbqX`9>s%IpxWbmzg@DqnMDls$jB5`4zxe; z8_2TWIB!m9N+ba}aPx9@DWge|RH5!v+o%P0nYgEVn)8%Vdf5BbZ&vR;TD$yo{GD0{ z))_(YvDO#t9QIu;g_W*Lqh%}E9Bj4roi4&VWvw!yGwGMzPgxNJmo=8HC}uUz;7f16 zJ!mb@nXID;Bn2O=Gkp?0%*zuEvKH{zeC>icS%yWIE83m}S%MIX9BzjhXS!s>rL7u5JC_n~)6lI9rOR~Gm}U~M zJo_G}F|vasg=bd9ZL*|55$g)o%v-9DgOWrB74Ly*sA{995n4IQsl3JQJUWfuT2?fZ zLR{oIEJrZ3UfBI{+>WA^3Ip^u0-<=2QCiOG$+I}(2a+h5B_paPcDPKzW|Iv|_c3l6 zxJ`_mW}3Ku7%34FqX8kyO~Bc8>pJ2t^I!Mupdf{n+xD^&`sSeG%WELyUR627_-v!H1>3O7b%S%w09JfbFXxeaQ{1cUU< zy}>Yq1IKG!GEtHSPhL}#XtQQ*7*%nn=?Z!mN(tx8rJa=T6w6hZgnq)!buxxCrJ-;k zWdYS>7%S}Yd1GHY5j?QBhzcStQiUTXpND*(EU5J!a2Dgve{r->K_Hw`sevqCGv&1+ zW5;H^URKar-eQA`7DK7+qN$0*P7+qK6cSy^s3=)>bq)G(I7N67WCRU5pVzd*b~hvh z5J2x<3^{bxF{WBWeixgTdNTDj+`^W&PDsWv6-h$FOPm2l;lw7nbp9RMIDe6-)=7g-M>lqJw`(zxpd)NH@he;;;wxTseZo$yE3{Vi3L#KE7waR48B=kX zESjro$+lBC_xfEk*saIn)&4+R^_zDu>iT_HY6i4M^2}H8nBgJ4 zK(sCi>TI>uRkcDH?Yn8x`<)%k?ItA00UX&&@L)@|FSx(xLH%7W_4QtNoc_i%c+kE2 zlkK}}^7YOy_4e3a!a0BPH5vu6;*;nL4)^E$VQgiFsaUMdpjp?Ik2WP;yW0FoI@zi9 zK}X`Uk)yP*pw+pV%#yKhM%sWMZaSV?En69f{!ElLzQnJrg=k;y#d5mo*~@CNOr~Lf z-;d)nwfAhFA8;=TlY56>GCXnskt}x<+C#0UWXXbup-xyZ zArLX^SBq1vaU#4`=UJ%|H#H-|=MQzO zZfN5cu5PjHRzHr#!DHhqeIf|e-=I_T(Z&c*{H|7oGn?rX=Re4Nt9XA1D8EAqls+sy zutVi9WC#8F(Tyz)SvYWtZ8J|<}mH^+{GD@r35ZEx&N$!%M>a-=!qew0J%v9h7pRK_;4mZJB0UB2Khq9Al^@XZX$@wc;ZjAE;os&`=<29G3brICGCR>iWoNL^O z@Gry)9Y8f+4+*RF78d&c42!Y93@X523z)4e z3v))!8?NEap1^>c`%LRX%uXxptukN)eZ%U`o|sa0!et&N^(DmJLBUeA*V9`EiB;Y- z*h#(zBS4n*IcR~|TW0Dc$q?jaUU?5Ws`*^c`${TWCe!Tta5lPV>AK-TF*G*gF`B2W z#^>et8ddT(*4Zt6sqvDIg&d&sr!XhSF4)0}i|B{vrd>Nv11`42yT?@XNjN5cl`&iD zL8E%@Hz|&ecWs&L1fu2O36c-V$*s&9Zbp80y_oPOHNi!eA7q;lQiHxN1k;hc!We*- zU~|vPIi81cbsf`?s7s60TY9hGbM{>=s}rfSfLMH-6x%H4PI0nqBv7pr1rda?%yGV_ zVrs|)$vu0~5(raaI;Lc)T{uA-oJtq)8)`GJB?!9{CX2gHj+SI&wCR1AI7{74Y&U|* zdpM<%y6YI2h8xMjp`V&mAE?JH?aaLvt)vtdKFKCN{U*oDzP>C-H5NLlkS3o<-{8TW zAi!NLrC!P`H%UUr&fx+ktJJ2iWN$b7bDGG~FgOc5b5B4fhlV4}>vY=jpr9a#)qBY! zha@Na@~pAw*ndf<*uc65He_!ar2~nir0eCR%WKFg76V{r0b-#yd(t|eOT;x}H$%@@ z=sbTAb?0tx{7K9a*Hu$F(fYF?x&rmUvP$;uCrxm&PYnJ^VuksthAsw*m^ zZd9GXHw)(2BlcB@%X&*bC+V6pZrVfc=Qi#+MT_^HD?Y&EK1ZGZ2l#O?ngtCWN2VSD z(KBN#Lp`UAl;^SGL#jG{8FaV}LcXv!&inlAh*WIZB6fly!Au!SPp%|~amjX}Wcz%r z$V>M4@JqHts(F8;4#AUOUS9w~;t3SE#7}2cQ2|+ zsanLZqu@TltW7n7C-6ranktBjiu^J@@sar0gl0JIv|uN4liDI|75E9vb*DPl4%1^D zQT-AI!6F~->^>Q9LGmBcXYA{1!L7$GJUh@cW}`OiOjuOKSuX>eps5RGWO@2(LZ8%-g14X zPa5=q`gOf3hpg@So}2MCU`=B$JBQYk*lYJ!gyNJ zx$R}8uaME2mp8Y8r(R^UzqAt|V_?UO66SYBg`|)$C;kO=EWdMCa=@Wcc{AZEN zY7NKy7b6M@L^VMHB=LyIrs!S?D5Eto`8jdTU65EvpD5x`P4&R@mdE2kXB5Js`+k`Y zsDMy>8So>V7?>5^af7v=^op_z#Sq65q@|y>VdbkPwe_P)8v$`a_aT-TO`_CGd3d!L zf_Glg1+Nt7crs`K%{&E>GfIIhFn@PNo|kjLZqiE22n58Ief&=nPmRtrgoUGmSFj0F z)N=1U5&1f~@JfN&rRIhJ2iqF2#EU5!$cnO6ZSo3z2TVE$A`Ck^os#t;^_Dizg~pCn zy8f!x8O*0B>el!8C6u2_O1H>b>}bu-w&gnTVQcf8oJQ0nOc5HqutoXdST;Zp_HD)k z;ryu(M1K5cd9f8elWNUO)n=r8rl)wGsGp}B_VQbfN!80lc)tM8sJ!H>7Z8?Q4L)gL zuNxm0Oa!fTs^aOMd{Yn6Nbs+TYN{#y6|0y}&r4ChC2A19@(Yu^n_WDF5`OJY;~dSl zLG6OITL;-Z6)Al|4d2vYeZjM#8ks;0;G4JY!7kLQ16|^ce%uaz(_%YtZ%t>WYaO!Ak!jJa*!&ZT_IRLUvky(fW&$dEm+B<2}`V*~!rvlT?set%f`@`~5 z?H9Tv6lN=4fhEG0tq1;TkKQ)Odg?Lr9#c{$9EM&{y6}82)cq%tQv`4R4+O^nH)!b*;7C7Q6mvwx#hT%VXQUp)7$0l29x&S1ep-S0Ih#jkn%g4c zS@>O(N$T3U_!*B)|JQohOStBoKU783Y56?vlQQn6=$YqGm|LEXSt-Y??HkH^zM985 za@UpP;zwm~XA$GF{6P;SV9$HrnGx43ls&$9V2&vZqD27H6ph{(0}pTtZ*;0FHnPujOXOv=!n6QgXtQ3~{*ZN4B!Z-QJ`HDzFBk-*#B}qS z)*L_EY#MpHkEQNi(S0((2KNMRlm1JWgcb7hjg%*w!(*o~VmEGw_^V>0g%TzHqWRK% zqaWwE!Dx`f-CJR?@bl=PDL;Ubo}|>7&v1#P_w%@a9O3Vm2TeADj@e_Db(bvJ_k(|p zAqW=ZyKor@zG=R&1n796=5hR#;)q=**&96DVukjCEPUrZ(}1R%D|}60+Jh|J3tlAz z$o&D5^8aD?MQY(2!hK07cuuN<$l#l>%lQ&i zHDHHwQH&_K0*d_-Fhoe~P0`+F_$j}?|7%ryo)U>F^GZ~9K}j)GtH?I<)hIl#w!xVwTDcg8qrc#Xy~0a9!1NpSczciN!rwFys7Mo8x?mMpdl&`q(%0KQ)97x4 zXrLtX$K-UWCL;OsX|CWVVm*S3fH(C4#>V2iP-)m4HOG);Ifv?r!7>cy%X*UnMkHm1 zwYxpwP5*pviC8JPe0nl{_?MiPD+Omsps@`C&QQi<}|JWz9gGp2KIBqX#x#-xy8LX)w|%t#>`hkb945` z`R$Oq^BvdhuZvk;cXq0z8=o&`nylkfR+!yE=K~GxV$MtCL9}ji}J3mD$U>$0j zP8a_CTS55FfK24@-@233zprinHwEEB_VzB$E`JNFWDPCtlwAy+T>fX#iKh0J8WP`N z6L=NMfDIFv0|;97h@7$%ZUHNFXaiP~K^k{SbOVE!NLmFg>RB4S0BZgnQX91kmq?wOf9&a>0K#$WGq_6)#1frO@Sj_P6zW@J4KhH7FoCnnoN zJu!b142F_nkWAQ98V5sPUcCEB;m;bWNa>7Z#mLqutEM&v%7c*45)K^kZw({iW6y62 zqvCHGgOtw-?@rocm`Nx~AU?`jg&RvCyoGmRK#rp_Ou(^BGX^xB)9lTw%eJ{>-x--I z&+sdYZ+%2)*Sd5xM0hNB^cJm0=r^z;cksnvSchAC*%1bO=-6ApxEtZ^TDNoOzy_-esc-&n1Vz z*jmtBjO*fVvSET^ zGNHe*kaJa;x}b#AR`troEgU{Xbg}(#`{QUFYau%BdN+bBIb>>->+C>?la_i6tiAJjH5XBLc)Kzz_ zB~xndPLF5rr1%TDrUi6DGUEWuw_;Hf{eV)M8{l3q(K_b29+mTckTnacJ^l#@%!<|K3(kS zWlQuT?fex!ci3GJhU;1J!YLHbynOK?jsZ~pl1w}*anoV=9}1qxlbOOqJEiec1oV5ayrkRttwqs0)8{bzlO%h8Z>aM^p_EJ`2X{2wU( zgDf&1X)~AzS_tK1(5M9txh=PYjCDqEJ5Mw7!h}G*2-BXJQot1Yp-jJi?2&yS2VD&b z$1FyD;0cFxM6%Lq42+LiYu{uALU$P4)Zd7SSB^YmxZ` z-55W8I;sV_!N9_xmh1qKdju~XC;7^`WetPD+=IqF95XNeW>2`+WPa_D*M{>4)E)6@ zMdIyhN~Pt9+y(8q9d5rP{xg9uvD!|y^tS|$6blFl@SpPx|5ait>S1c^`rmKNQq?^T z@Kmw?$Tm&bu`h+#CACpe(URLP&WKL!q>)N0GkwVdu-|tXhQvYNGJFUVu7{YXAQ)-( zAWc000pZ6yltW`*9%KRHBT-`^U#NmPaq>~Q@l#jI%pWd5`N)KEZ}%a0c!{|mCNG)- z{FuWVoLB?N4_`h&`cV7Pz&=y~43KxJKz-Cx^6&SpL|q}*mk(cIaPq2$*>7nQ?`?#8 z&_$Sg=;V8_haYc&881Ubej$XA_o$z&0r^xFdyBaE*f-ZW_~-a|>wMhX?cNq14i)Ae zCNhE*x6HQntBK1>sQ8LgG9?u3R2qx6C5vfkO>PzwF?9x}c>#5^7V+Xj-zN&ESLv%J>sE-m^$A9Q<#yNgMKhxkHK_;|n%gOQUK!)(9J{7+kX*KG$&7Cn-fVDI0Zl7KxMQjm=2gF3f~3+z}0&X$>PTbgdgG1j(7? zpj3js^Z`FbZ*4_7H}+@{4iqwU&AZO~V)ES-9W$4u!0H_x;p(#4TrOu*-b<2T;TdBg zF#akdz)5`EJCE)yw|3AiVzDJpAMkob%a#5O z1Rn9QLDU5W$XceAW^khRS+C<}`E2x_P<&L0ZriP&nPWd&&yB^n`LY^uni&OMc7 z6wf|T2>AW1kUvYqL=5_w+C!@{zxXMnv|7KFfZ8pc&A``1j+VSkLr0QH+qGtjg>k)9 z_Q7^9!2(Y1IA5NLDpFDwfq;|fAVO`ynI{C^dL;UbuvjcQYcR%Py$xIWsWa)WGtr=D zjh)bTyUXaM$}XRau^=+VIVwlHrlg}!e2VP!@3XTToumQIszp>TD^FhgaR zhV1xmy@^D{8=Kz{x2}T+XL1vYvR7RLdP^63C}v3b>wJd8QkIJ{r(J>!wwlJ?+@huV z4DC1$Ui!`1n7t}*>|W&HUb7XZCLguikty|PgY-zLM`Kj_eknD=z7#qY7WH?4fRg66 za=osWmij#7jjGOtva7jm<@B zQv#&XT@bJgyF2IcteJf}{RR}X^Hz~bK`W^z2QG=eF; zl8L+m6mDKi3}tU1@SbY&ysq4reWH&=l{aaPJ9V!tv$s>#9}sA`a;ADc=AL(zF?gYq_6S!t5yVrIp#$q;{4!}2c|hKh?yxgp+%w2 z4YfxwHEssjXNLNZrs1Ay%(DDoafzGCQC>H`Ovtn_R5c)>~JY<~3qN%EfD#g{JEs9}r^IC1`teKotg!XjewNAR_0gfhZOfXc@ zbY&MP@kSRVE)7FS=)x6IEqP)#F>qWd?W`?*kz5lYJNTkaHEG++3(+4Yiu^EWnmHFV ztsPd?HmoVRtSNb{4UOESFsgG$lygVKvK?ca+g3HLo7S=r3k{3s!blGX7DybHKg<>$ z*1ueg;co`{G)_Sp|JI<}1;k&jaN@Ue1}h4nQXbIOE0G}$0 zQI_ficsmj|owWh;2G4ItA9ui|D-#F`p(wMbG_zMk@g>7iH=2XkQ=R%?JEc^Nddj`v zKx=jEObay#v$55#{35Anabcss2WweqEsA;Pi>0v$ zm7E;2&-zf4dv)`MM_LyyeAcw#3@UZz%+>7n!!VydoW|C2RWn3@S3GtrJBz4Qauw;I z?u}yR5}jk-IQ|7MwTCxr29k>kohuEmX#;0_hy-oxR{3ai@yUAulHQddjFF4BAd0;6 zRa;1BD))j~b(X=PsV!7or64}aJ=#i-8IlU7+$9LU zqNZpVv7s_%4|;$BI>f$Q?IhYeIV*5Z-s-_s*QDz{-IXQKcfI}H6sQkvI#5~rJt&uY zAHuWWRW+Y!z5R%P^Ulnr@9{=GchIzbVC|S2Etw=Hoetf~y$Q+wdsFKo^CkEd(`1ir z_(3b}&b1RH#VLcK8%a;}3EkU`k5tKMPA_=v!6w0MPeQ?m3yAFhVeFmaEAO^#?Nn@4 zY*cJJ729^jw(ZQ=wrx8VqhfQ$wkoRN%e&Uv=e%p}eZJqmn0NDHqL1-!y^S`W{{G6b z%U!ohHzZIbYH-C_JQI4xM}{$K0l$slS|vIsTT@h>q;e`@Nk@JnCZ89R@~x4>QO$6? zYc<&euAI43u})(Zo!$C=@lQ-%*CxljC%8#9OXa1AXz+8ljhN<4Yes`WXJC?stR`_+ zI>APNv-) zR}@DB${lS4{T)hfZQfFq6Q*b&2@Gx_ZpuHpz86^&l_(B5&oscMD+}Y~`b2HxLUA|6 zuyiGSUZOsclTU6JEsK+4HA40rjY7`N^J?;>o9Efg&4n9CC-kESY4W1WKjZh@&r#M2Sin5_l)gmV1pX3L(aXJJKM!#ZX%dYoO+Wl1e zxX=lQjHn4lMpV4Rp$Brv~y=D8Bi|O3P4sd-p=>2}4jI^qF<8CQl>wfQ{2>)5T3-y$*<6E>l@)RDC zyK4sPTT_7a6S-{7Bd@u;a?jq+ZX{r!)3bvI@$vlZ?0l65`Ix&TcV>Wzk01528Flt) z6eA#koh7H~zKtz!LPm; zlL+JEy&)0owze*4wp=Z~$NGz7_(uSlOX#g^OYvDa%5CK}Cx(LVROjztf$|^}wgH|3 zrl8W|J($E$wFL>OF#iNb*-AdCjeZBdc-E(SZtZCaS{z%Jk>UHNI#$=*Xkjr?6c*pW zsBe8H?cm*|i78Ai45ZYNg6pi<9+Zb|=q9hcB5RI-#^W%(oCyPIOs zu9xz2dZ#E?jNyrRl=5>?J;mb&BuVu{A#OSB_#_k5pTlr|_UtLnUL)mUOg3^M{JdFb zU;)W4jfG5J6kwIyhIrBH`+3Vp!;bNlvMo`!9lWf9dgJ)|8+H9}P~2YfBXn;nVg|cU zMl#yZ*^=0psvUFaEc)LP*u@T-qOvO8`vvVU!Bi!&Bw3Qfu&O0@v0l=8ccW~xZ*Gzf z{3R>!B}I(}prXQ1@LQS9+5cG6aV+R^%HB?F@iP>(I|^MiPugFOCv?HB(?VFbK`vWj z_0i$j4$I=i?2xM!!s&iP_>5tXji^&Gw$mQzT1e$R5p1#rg{SQ|%fT;pfm*n3GQ4 zwmY@uj2Z4nEKS+Y<5Lje`>s6fd({rZ6HTJ!q0q%#Vj=LQ4e)d43g?q7VkxnUh){ZC zjev2fa?OD7G3*DP;@MWKymX)ug*mlX2js<$O@Cpu@^^An8n|=Fyx(PM1hUK4%eRVY zCrTPcp|cU+ypM;_3sghhs#aM@M&e@U>PfdoqYKgMSD2JSO}bEKn*Ay;?o>eGmqiN` zlBJ9)yH;jX3|`j|t1)Q%$_6^L`b`LZC_&DsJxxAZT_l`bN;IA17hAmqIGSR9xKzCc ziZrVtS;a{c*CovxUm^pPk^>F5sWDc{?yCBA3k$)Jm3%kR)m*I%c=y-W%-4vQ% zd~}??(MQDKn|E=JX;|1}W*}HhtPYP~NJD9*FVX_kX2HaWi7UbARk3-PaBN|%-ol=j z8}%%?$3SQryUrTX;4oF4*J$to>u;eThO&*oYcj+OM|b;wwH5Q5F@%;SEmBwN<7jAo_IdjUlWL89w1T$>vB*S z)v7T85qag!RDHGm4Oi4=h(o&?hLwZoqj{&hIzs45*qfM;lL{gR;U0j_y#g$E?$oAr7%#NV*3%zENQx4k-eAHykzLpb7QcRXYsnKdki!A|-~|q+ zS^rjf6Y65Ycf5FId?qR!*!Y;c#<6#s@&vl3A0m`H4Ci0!zk#S3fVF(NCJy_|VT<%+ zbV5+>`chieI{GnM{pf$oukxXy3ie*I?~aLM+;2lbW0eu$)i1<5)G`NC-}bD@2m-+u zf6@+y284?mIskSfV7$Ch;W}_A>gzHi?XJ*Z0ptoRyKpaa3XnlPf#TbQT3D2)__q)X zo2(J@Gp4;{s5;brLCTb*CLYp)bpmtrurD}s&`oG^1qGro)WH~X`3aPf^BM_as&N#H zbnkgTEl>s9HP@7y=rvfwBefRt))+%fg!>ApXpe9-n8K64LdzN~D$INjSp3@N4$HRR zOdj3Ll5!>He}=>DNoP}CJaDQQ0!b@QNjA;I;y2RRtlOgO>>;OzG0 z>$XjhCg#$SHV1_@X?CE*56PWlznM)TX=PbB1D9haDYfPT1->3uP9Zo4cVS$&ru1Y9 zT__0W*@FH~%nPd2Q82V4-n#V!7Y*+6s6%+VMz zRx|tT#!m5*yYaSi&7t(6&` z@QbhROI+&dOE5YvODU>yTRNAP4S~%5di{{l7s6yO>D)mw1(hCtNTyxtV{yQUqqv?d z$vYk1So@#ebe$dilgJp?ZvGvRYjfsX^Vi@~);`>LWUh=ZZmw)fiMr7NQ>?CTwVA^! zq)bZ}2a4+Rs~8@k9f3VgUgwS7UB`S!qdsIUGktSoHV+JS*<)LiSHOo_qiM*Oudmbv zhh(&0RAq{iWrlD{oJf6eOHym~7g`x@+*k}A88wTe5t3#kr0q&C8l;+cA>4^~XkdI$ z5;c$;(+J$_@e99Q+Fxv%mD0bhAX7>iZ2`-i6OuFEEb!v^b49LX_Os8MD2YRgWj@m3 zH4J{>jsg3#=^rQQALpp<<1JvwWb(dq#M(~mDxEr_bXlUF760c6+3FOEd)_B;py~5Y z*Z&I+_0Q<}e^J-6)verc7tw*sIGPc>l6YUfD29SF649(k!NYu$6Z*>IFUUkJw>vDW zJv>Jg%aWrgPD+uFl-JcyIs;mq=0=EYE{&^I#aV<9>snp2=zA{i3*nb%LKtm4-mpvl zTZ{j3ljSI<@rvsY|NZobwQU+$k@yDfW4BzCs1Y?t6)uhviI1-vXwI>$cfWi#vM@ zC1L{bMg)pnf|7v5qhK|^4Qf|gg=2FJlNqWPfK4QjeZ2k^A2yaEm02e(*tBp>i@{Sd zQqc`xW#$El*Vw~s#C51(;W%;sfNP`_>Mr)napsy9TRl0WO6d#iOWq!1pbc6iIotB* zee$VjomMe3S{1K`%K9EAzXnG2HwC$f4MP`d9Re)oKdzoL9PO~nU+*Lbcnm!Qo*hS6 zorbfd;>{p2$oM!j@xXwfz{cuae58+Y0+<@N<&x>)zA;p5gRir0o|+gHZOu2k)@ zZ`2ebG0dv_P~tNfwe}}R2d}C&oM)Y!JaOsG-oSPJ^8DQT3{T?=t z;$5^S|KtQtc$S9p-Q@hpfKh*~gh5UMmwe%O%sdc#Ld;%mgn|>Z?}zg%`cZm2*p#qZ zK2giJUhb{pozf?nk)tP}k*&c4f7%WsDuP7WXf_p%Mq?BhN8ev~7HBm+_IQDlo+Ue( zVEZ}!DJ4*%^K?Dtb|DE3BdJHSeznAPpt~ZR1kB`yv(3^y?aS9A=~$$hY>~WX9M?sY zI=3)u#-FB}vPMK5m$x{b= z0>@f`P1ln+C@b8CD^MQ&_ps>0!w#!N1ohd#DA*cGN%4XUHxE*dYe8z=AfNFM0Fcq+ zCcnopA5dR?THKe&zq#OUL7$Pg1XB=v$gOy-xAhoDbas)Y(&9eoqPT@%iXB!}RD7Co=qr9Pt^-i|J>I-keB#k2@uim?oTGp`j=ttG?*r&lq*Lf>tL&M)k2)kZw*5)}{a^yN#EWt@mR z#&T@d%T=lBPu64FJ;?Ckk0nhtll;s~&@#G!LU(2?0M45lKC-F0?t5D=ZraakEwU!| zNHnJ|-*5TZHFZK2+!2dO-4Y4H+M@;V?M`XkP@`F2jVC2<4~5kpc&k4GvY$9ycWCY_ zIU!Y`wvenGQakX2EI}X3_D0JRR|@s|;ykl?zm}Zu)#iOY2TGOzIGy+|4H=>s#?m{P zpk>>X4iuGScL;n{IjdZE^b9Qwy8H}~0LTSLs%^19*gO%ju)I5SeIFGI6KGp(Yxz1AWu&5JUGceYyacUvL(?c zo8$`!h#D9O2@}Mh4a*7N3z23qzOx3)o3k(w4^kqytWw0vDYt9hzI# zw3|G_tj^YUwWS47!HJtfFbKUVWfF+xI#v-9Wg|bN`V_A7zxNWV^0ENt%8qEBvSAyIRmo-CI*!OCQPb?IMSb?&sGyO( zzBOViJ4a^6NxvM#r&|k;^0Sz|lE(K#dA`}yC-RyUu^jdwRH?X)4ema@zmc3Bv%ZVl zUTSFhM$4)~{T;zew)`gyBx=9d66#p~%&+~u0;?!g44c}ihh|Ger{v<`Z6ev?8nVD* z4`a8A=3jKEzS=AC&mUx+IZ7^fhnEq&Bid}(6h9jCZO6{OWg)M!w}FWALL=+*_2QX+ z9;p7V7j$>?i#;FKk`!4B|IX3bko*-^wei<2D|^*l?#|73WdU3c<0un8;U^tD5sSz#4b5L|t ziV7%uxcK^1gzKn#sH^oXf41YV=`F1#;`YPSi#b7q( zD{2Smzk7TMMpC%g&>$evNFX4@|8ph$I|VaDJ=_n?4BOYVv6F=do(lt2gEFoJ!TOQ} zHlb;?mlw#go)z3RS$ z%y0oL#E5EEFBmm{FjC|pso``GH9^0)iMPz~h$`#eSL%#wNpz$=Wy9xrSOUdQw@r;T zSNX=nTW|>ThHRD>r{H1)&0BLw{kkoxmij3pV)DroWOG`iGtjQg9dt|OhAvB`PFbdh zE-DK(K^Znjz|Qeg_)Zs(U79U87@4L-~C zn99t{Pk1FR0*Mq%rC7O)%DT3B2r|s%VKvQ*T!*Fjw_0h3| z{)RSQ!pxwD8s~(@VQ`PW1avInV(bZ+CQt@xP?yK3q@7Nu*=D#7-__Z{YIvf}>sypa z?cSc2)3Q{D>9;5GYBV56w3&<%$xlYB6{!2wD$Ka#g+`W+Y?Ql%nX4(Yv=Q0gcvsCB zlU2o~SdR#j<5}ZHcP;hIeVZ^i1^tZ))Kn5HsC1BKIG4TmDphEf!#G&u#s~~Dn)1cg z1Nm3OYt#3KaPMLa zkV>Obk0)NOeQo9Z&vCAg~!MIU@rB zWLfi!(J$Rar>7vj`k_Vv`yV;?)O6=qMxJ+7;=?ITnw*gHN@p3v^mA=vFvqt}8l z8k9HURMOgY5b(4xluq4gCwEksN5C6$&jGY|XJKHp3tgy)(^F4+$6y;Cq(ZDwl!xCuFm7S# z*H5>VK5&;t!BthoVa_U;RkYcc7f>28*7fj_M37>ghb$?b^n2QxxYJu9K*#Uaq_mUf zUQeUGR_aWho_6QXF2NK^$$W4z6{_)x!Ro&s9p%6yD<{(1m8%hCFJH7tRHd_8O7NXu zU=X^9HMS6Jz?;oZwe4q4Gz}V(_(S&CQp%gsjg)n3>cvGFPBmaU6BxK3u)_{pE5s(#Lv))2V%V z+Slh1wdgXZ@!I7vM^xBtOY?~eHtVJe*yjosXwBj9Xc}Ax5p6z#Bi4k7-ahGF)D>zsB1iH}3)=Bc>yEMzkFAB6a(c?d@n+ zyj*sqNOPLZE7b<|b%V}Y&Z%`}YeBoW0<`xiqJLL%Hj zKN)^z7JoMbbXP-C*Z8kjw+O=^`~LmHMTy@DEAVE`a>;<1(2Sf=)IuTcrpk8`my3|FPO z!r<;%ok%PZ$Ooa<{J&Jcs9_&gnxxgH=s)bx@e9YqA>zBk5E@tc=3K~5kc{e7Lt|s`OB747iePjJwVdUVhaj+F=t;Zsk@f4=?#*Z&iVPv`beRwLa%NcHxg zSR8u$|HE=uo|=@Wnv_(Pkdz&t7^fYZnBG%Dq>@#=mZw)_WL98gY-VO^WoA>hcSS(_ z0*jU5h>mt(R!p9XwqEiNkpC(9k+CCs@?o;^VaeLRvHY(-dEb_YLDbWq9|Y%9_I{pc zf*873SR2zhni!c_*gOC2Q?SK$+72+ni@Lo_p#*q7#S2QefQqJI=)&<~i3gBjCs^O# zow35SdX0`tudz+McZo@hmS#bp<9mllG^e+j2XyUGA{U>Ud;q)x#+d*Qm(9R*!WdHS z5Iw5W7u#!F5wvV9ZXRmVm~YPzHSI0NBo^|xX39*yXL>)$G1V4WQ#+>T}5)QnR|X}UK! z+T`-OYIi!^1b+APdxx|SBL#ywKVD%&?u+??Kb`z2^Na07?htpkb({;z4CR))7 zG{#w0Iv=oGO}GdF5|Lzha}6zFfi;qIR`iQ}w4>3FbWGcU23C5#6Mb7yOlaN5Ny*q% zR3T?v0WFjk#*BJC^&USudN^k4N9-$4xO2!t18dIpE!YcwK{*prSMSwDSYmYu$&|r~ z%@e|A{&ZC(Y*hbk^J7u6zt;vZ;j)}80`o^QjZ+) z0z$`ID8$l}`D~J%IGSSYYHc8Y1m)1&%%h?7acG*zN4{u?Mw|nsB{FCWr>Yfm3jT)h32Nx*2 z`-dh~PQ}A;vQr#kjeO4-{$BD#v2PX3JJcxP3CO8W9a7V8{X1pruTo_GVG>*NS%Sx( zum1??{#ChuD?tSV$4`#^fBCW@QG$O>!w~&2Z`OiyJ?IFt5}sB-0~hW4I_O$PX8|ht z+n%1+KNMA2r^BBA?mMCB=GmJ&=qPe1w6I9woP?f-Kgxkl7!gspyd+6!DvA~p>!u1_wjqD7AsTHHPINJbF|bJJ>^Om>dJCq9W6lGF{~E8Zy} zE&7mNDd!q8?_3vHlXqx#uh`@%`om8k)A{W=}kYJIe3xw28?w|(& zXrLZT``$6)fX-?|}q7+!|Ti@pd`@V{0YzPf`Z#gcNf@YZn1$|A*zb zV6r7T2Q2DY=B-7!b~mJX93qo&^2E*pp=L9uOhp|tkb%1%z$UPCpHA#}GO8;Xi#%qp zKhIXf>mkN>IxdpgbI?@lL3n^j>6X1#a0mtg4r{(H3>Rl=rwc$9B`#R?{QeMTP?3tk zGV!n}0FZffWt1T>;`A*v0ywn^S8!bGDyJHlHt;b-oi-cRmcXSF11GU9Ui^oM)h#sS zg1$iza}jf6lU(py5POo}o`d9j?@;vrDFTe*8559CyJ6{HP6qB z6VPAavfGb=P>>}TA&+4)68PIe!VHt8IYzYzf9E*BvJ=>g#+z?L%fsO16Httqes7ge zzC4FBJg*F$_ZB8h1(h`*@!udGuiL5vt9xrP*5goJ*{B=W+bed4NYoS6oMsVc1H%?E z=Oi;ndHzac0Dg<9)-O88axX&t@V7|*U#q>VN|yOA>T}TNgNN^bvjYBE`pTd7l&#t4 z`mi_n#6bVoESPMS=}!tY+Pi6oiGfZ2ZJ~a1pjN(uF%{8g#H1)3rXJ-heE4R`MG3s7 z>)2(=Q*G~9CY09=XgK+BqhHd^q-(X1l_jV1X69p$$JM&s=KaVt!xjkI%|tKqAp(}= zY<-^5tUrLPIgL9-HN#qQBqBx?5I}b_s-H=mlKWkM=9ewd5UX5b#B-6iMr#vSv6+fl z%fYIjA2~Qz z1lTf>K_}Z!09RU*(T$N~=h42IECugLx1l)S?tLJU1v`%+H(*UF4UB)*<=z7Ve-cU*sd0_d%}MD+DKxGnLRinyhmeu;@^#qQe+)XK2PEc=!pEfwk_4 z(`WDmFvl@{$?jw36ABXB#o*IK(1DTeG+0YFw$MWU(FXn@gE#_R4MshxED@h;4rY(L zr{E-dD-!yhSj<7c)c*70z?Y5(6fJA7n=4>P3SSUYem3cp_NvoC4slI$kC4|mJqiP| zXWpWPcka7zuQ=1hNZi3*+QHY+J4v)>G&K+MZ%s?KI4DY+-%5lMc-n*sC>$$Cx9Mlc zNkYB$Ez0ppa-ze27Rf|eJLX^GzmUAqGp?LI|7Nk#FV#$-lnb3qNXk@WWMfm@k!|2j zNc^3`0)%vi9WK|8xn<%-ylG5>vmr1tWv2a#pvM0JrgRuHSIU+FXJoaUy>Aqjf6t- z?qbzZ&V46;j*I*Yp z*T3=|)BI!Plj<4z2_XAl?LgADpL4kWxefhOf&A?u4Aii4M>|0G{b`)2Ne%`G0SQnm z&4@F0Li!Rp(?ncQ1Q5WLiE3IiaFc=LU|COJ1wS8>(!K!d&9JL^)kCj&21ua_buH-C z75rW*kpFn_c;WSV*~+cvGc$E<%mmhjfB$ood6#{)(c|=I>T>8K$M1^(&t`Hxgj-D> z8FArPBUBk|VvQ)t+glGkYdt(Yof3ITEF>eLeiZEG?J{@>H>Ud##vY9ThMjR4=T@2B zpZ)7z-@H|aJ-zv&yiBYIe3(CZIk#i2#-AxfgZ?YP4d3v_kASN^sIFIq{@AA{PQvd* zdsqZX*GAYbb^T8;eiR-alu^02j|SMW+h#I#+v2hhru z$Bc`IGjSayx*4^f*7%iT&Tg@X6WV%OTlST1*t;_1&JR-QsSTiHV$r>8RbA&UF4|6X zQ&q6z_=^`lg4ooO3{59CdJPAn{G-S)v2X(0TOUX#npqt{>74{po35t2xxR4>J#LTH zUq1RUhLrkXYQJJmIIyw~&u-1NIL%=n^3?kf+T!ymz?UXM8`fKz3pdQ3j+bFw^Tqqr ztkv!DT`5<>W2ugXS_1{)VOZ&HmAMmL3BykWpIX63CSkbM-_)v?7P(z4H|Fpcn{*Zz zFBeoNRpzm`gx(zZ_a5=Nt42l}wzehNuc#p8_pk%9fh85OWWYjfb{8S1g(911TnE0I zO@mcSYm`MgR5=>Xpe^b)2o4%|3}M(QLy7*R-j)LTEh|n$ljK}3=Yu>y74*Tz$@y>1 zTQ5Wa>a;#Cm`2zsBe^~&cd`CESiRmzSl^MpUPDrsA=rx+v14$S z6I%#Ka|ahqNj$-7CES(!v}s>$URC?Iz!waYE4EQLQQ98B9xMZ5$Xa6XN){pPC&y0( zL1o7+i0(@;8GHgdcDtF)Sr^tU=t`}z=F8^o7_P)*L+ta^0E{DWb}v5moInB33bE(k=Z4E#&X_t2yY3?YkWxq<;^3hW`b=JRMp=67iQv!^p?Y9f^| zG`Tn5Hbu^oOR!?fK3f9T8e*f%wbb*yPxw3Wq*ACxq1=QGFusc4*k5N{&$c zHWr57E^8%+#k*gMu+U*-7L3#1zn;Tm3h6Pmg}Zox+e)4)+iyTG=OH z1X7Bdw>Z!INh)Vzl*+8johtHs*3M5dn<96AJV`kWlk-u@1ryC_zBJk9V?RHG2zx zKE5gBAoaVTL59I;km{9GbxYLyp|?gZGZO2KINU&z4`sS*bcH1D+UTIBUgx+&eV|+^ z(Y{}DbwzIYWjVU0H58yd>VLHz5=?j_fY@Qt1AGKg4~@j%1@$`5Vm)bYKq|sih|@vW z%Qk#NG;FFbZ|7FgWe0OG6-*<%X}Y{QVb(0)MqX^a&eKpZfZY`gp_&PTRkjaRH-L}U zUpRvTl-OMNBPh0Bw5u)eqI61*LHbUksHfS`5Hn59@oyqp9mf$%Mb&T zF`f9v2z!$DL~G7-x1ez`(sy=Uybh@q(W~@ z6zie!{jECEXT)w4xt`JpW*k*dN+Ujg_Yaz$q{iO03ydfXE~*}jvkg|tjt%oS$7dhN zdSk*em2mN~51S5PVzb_CMQzL$&no6{6){Mu zg%(Jao^f^>tWmKdr(4almS0}UHm?A)K2s%3aF}@5*1_VDSU5_w_=*ql64x0*bWJ-< zdTX-VH&nfKfqwa<12;LGxH7zXCNruEBAUzRTb(O#Z-cKEW<|sfEYA(Ommx*>1^^ zozY`--7@MLoO`qY%Y3YU4XKUVf~|J7f-0D@o=Jmiv;C@!x=BsBgYR-MDa2$w1faF3 z(QDBGIwDMS&hi+=4iTY6ZSxJd>nw5FCgs~-wYRy}=Q+X)D;5`G#M;48>*_uR60w%O zwR>yhs<><>v~G~;8(`VS+GRMG_|ppp30h367M#x_s85JT4>ixi9@Qu(G8hH)*mbk= z`rNyq5nrbi0zocRv@B}kviL)hZD_;SKU$i&%;T$7G_M$p-I>?Z9IURcyb9j(tn4 z+J=$bxZ}z(jPfo$Hr)Fbo^HbpY`k_R924r2ke}8mFiXi{p)8G8$3yb3*0+#B=DI7E zObCX5!U`F*YJxSG(r}(?_>w1@_N^ap_3P-LCyR-vGg^WfZb1(jWvYgxRm>)mM3QK! z?+uDCg5?@R$3OnPv)MOXq}cgfA-117`medYe~r)mo7?=i&gNg9ovN+X|Bs69RvlOR z?Bn_P#=aRa3qT{^goII!Aw%!vlZ25J7ptOag*50de^cH&HU?zKB>lMlp(BAFOO5I4 z|FJ#1+#ik0(NWjMmkx^}MCPz_xOut$nAPKRIl2FK)p`Z8@1QLRzX!|BI4fA0#hBQ? zKh&2LXfYw;z!qTz@3^{`LokFV{EFf>-qA@83V#Z=z63OhOda=3H!vJ>h|b!%Ehs*M zO-a{wl_ImnRF~1N-4#3CzJn*e#DO16HhYDb*4$usw92tsgTx<#3)KMZ6i)EV*T>`% z#Y4=qcZ)*u`DE2|33?5gEn)YM%f&~WVNg{j&y`&AA7-Y|>+PepHBad(p9kr$cv&V$ zfXSa9wcO45wjHF$yrpK*CE25<ZA;!n)`98)) zv~`e$d7=~>apRXAcFYI^R-h#dAOqoxFa-m~m8}>3k0Z5^hqvhA<}Zu&G)y9d{fI9b zfH*XSd{w2U(Z>a{TNH@`AJ+P}CYo7#nVug;P;pK5e8ElU1pRAI1pD~had9M>fif)b zD9nGrLwv+I{si(rpqC!YRHEvGn1T3_(Hp-@=}D9VHtm^sk5aZBqNOYST;dy$az z_k7MX{LQ*;!Wr8Kk`5Qw&=NbENxFUIqTdeLBk)V5&uPCnvG=>TeMN?XSA10Ddt@5c zmA`4c;~+YWP3pp$s5zmc<1KL^iN=cj;A(A00;;OosRRQ(ln!nY(Me<)dkX${kaaGl zMJU4W%9G`)=mW_DM_6KD*+vq7xFc1EucCsPa_J)FZU@l9jW8@VUX7-9Syes4c~K3m zO&$2EUjL&5CGi~7O8E4@(h)%ZbFRdHINty4I{)SOs%bmTt0BK9VU5>|qQVdE5D@tr zeciwSO)64=ZWWO5FOn3_6RlSjSBclrJe>Q}{RY={Uwu%F)TG>BG~xU*C~WpZ@gltD zE3Rg|+8|w$7(SJ=m;z{gKgU7>2X2c!CF5{xlvw7SLZyIu6;yyuU z4|WH$F-UjgE}%@H|3 z;UT1WVQ3=Bl6?Y2MzDrlhr_num`*$X=1)fbKBYPM)i}q?O{_fL?2eY%i$BfTv64xZfyiZYs(MaR4rm14nI9 zXHkF)*@>u1Cm>Nw;*En&uBse;-_ zAO%x4)haHNSQ{$RGRnz00;q zy(bWtbYjm;T6h)<)?ptEeg?{4mj{9gy};*2USQrc{jd_+(kEnS)`p$K(%(6IA| zVW`rl{-o8%LE^d(=&z-_6G#2VTYSV{ftXD zl8)(ET}m#_t(Q>ebQ#LL?rCT-Y1qkzN$3YWKo~~yoCjyt)ehX zWME%aUs~|R$?Qi%440ZJ83_g~9xwM0>)l;v(AEoOLZFF$ zVVhN9k1X=!*5h4nmi+~Eb$38mBcsFgh{qJ+C$)@5*Xr!v<=>chfgqs!Pf{_44fDGy}yKSuEp;;AsKpK z7JZ;~%tR6#He_l5!Vh?hnY6k@BH`%(@!MDFZ@lS;ndjF`wAYJGNB<3Vq=|DhpC88(0 zpC6&SErRi8Iq3dYne?t|SWd@L%RhOn&v6{+nkt2Mio!9Nk6#TNw9IP}$P?zxfz!Xd z29@LlE{wgH${}_>WpHr?DNc{&>h-U&I5(W=?p5hMI#FuY(;E%YF7G=PHIA=5;qR_q z_Lx{_OpX12v;Ri!j&A9$8Dnl)0LdXD>r)$E8Kl4TTn*Kwo$+-wjKd}{ z$f-p+)O^<+=F*|?IJA%dDZ~KrtJVW%$Uf5bNCz})1cISixlhkEw1TBiPp;*-IE{Me zoa9-{#kHTtmBT5@QLZNx&m&mkPb`8+ChS7zdhKKJq3=p7q1IEn&FPWj-F`y;{$cvY zB*qy2b%OLC8Jt^zvGmceMM6`y^XWLfq<`FpeFz{*8CE%cv=UFiYFP1g+i&VN9i1sQ zyo~3Z3OvvyVJN!VT5c^-4NW1|DVJ)>>>p@keo>!DMhqQ6c^2c8Gyp!kH z)H~i8{#_GgS?f%fe!9IS|2=v8AG`X$G|~UVQcPCT{VRFP*QnX(Dl6NRvFjE^B}Qe7 z_Tw9gxd2)qY&`E1yCmRZ)Ktxsg6yO4XOVme{}b3tVT2p|7Zf-PSAwbR&ZC@hKDYPR zw>S8044y&|igv0#Iphp|x&phGq^ka=UKcB5HIh=U~OTOj4gq(-PE&bl z=_-F=$1k3E?g8&A%7sHQ_{nxez9j6!&HHlIM{?<(=)a9bwSsyS06PV1-uqh~$PVa` zbcMyRXUa5Fq5V2H`>M$k-V(Tq2g=`~uImOs0Kik@i-8VcFiRDa%6q76wAPJ)+fZ?n zG*!=cyq^W+du- z9T36BOr{Theb15sL90o|J|6){Xh&k;PfyToP3*KqZDI0M^afl*1(TSxPA0UzLdQ`< zt3QV#N&6*uqt)tDQmRW|5iF5@nH*aiO#P0hphfm27cqGF5366>-8L=hQw)!w{Ev_H zfBfUdf0M=k^7qwO{czRM-^JEP=S1pNM`D2Fs`H#FCR~7TGw$V)d*rfs>r@Vs_FAxC ztw`kK%#vnD!?mTP^JhYeiy<;nd{`m_idbRDzo&3K-Av)ybzQ3?_wcabNH4W9F|d3F zEFO7|yv^F@K4)8xd$`K#s!LS4?rB3MlKW8!RLlkjonamXp^9k4x(G zHMoCg-dq8;SPtHzT|Z*> z&~JQI&AZ6ueA&WlcN#Q&bwRv^htC|k;sua;(g!o$rH{R(d3)#x?8csAf-g*0mt+ea zjXjoHoC`;@%Og({xHX!8&uuqp5ya0hS7IV8)@Wq}Cr1Ae2bxH-MFi3JjwV^4Lq(=& zQCbAuk@;LZELNC@z&JT5vcW2Moo zgvq2q$huEon^r^~v7N!($O?J>%2Jm$Q<28BvTGbV$RZCGN|c2m_Nfhi;J(5$YO%P< zRC0ZC21||uQUjv~?x)UI-N_|*3>l7-L4f4mr@u_2A0CJR-<(U3%p9XJL2?k_LH zo1(x?jHJy(hj&{vX`UXee<+|PNvqB;4M+DEmBSSTB@#L_tKGzzsFy)sR=T!ZN*`Nt z+ZR=&!e&TRSE9d1t+`$W zC!^%@mo&$fqlV+lM4UEMb~QdzmgpX%TlhDT!0fZ>oEAvo%jqZ^1Y86wHL_^V`9Jn8 z*j*kJGeIj5^I9t5OlUJL^1h6tFOvl+;~9z?gx=9X)_4D3Xx)v|RRLfqZmmADgk zC&U%v?(Xg`#GMFncO~w`-Q7coCnWiYcex)Bc=z3^|5Qz#nX2iv+fH|%-MiN+BIU8f zsx1uNbp+`mfG~qk&VgyB*queUqo5d4*qGgLmZ4d5%A(hzlCzS;hySc>LhdOf8ij@n z59zDn|Cz9KZujAqU?z~Y_}dpkk{g~d!hudNW-ofZ>uwno~Nj+-6RM*J8$cAinVIWTSFel1zyFNozGc4XXiWeC2b z57jKMz@}UGX!e8AA`^fA(mM6ooYypGEN3%g`>S2ChK8V`ZQKHPzG zf&yO>!;f9SgWYahQ)ca1GnS8<8?)_;KFWy}ixTo4Xq@u{!7$&ojy+i{stN@Rc52+j%!C@rskk1&J$We*H-07c?5(wJuJq0m_ zoMLlG^1s71cFqUG6>PQpC>E&E}-imBKbcL}- zl6nU;>qLJ@qAj}&dMW;LYinP+74*3~$b$R~;ZhBpaYlay6JB$Ok)A!E5ju-Jpg6^{ zKjd4yt_UPK%q?psgOIX+*LFTT2MMCHo3G`@!+)pF4Kikj`` zA7LcO*~BKaqn3Z>**UVXn%09J72X%?&@)+}`Y`z*<+gmzMu9c4*9fzFh#oIK& z7rd0U#YQa%TW5(^iCA`t&$F||S!;y~N=dWvGO>ldWy3|5DDW;SKR_UeMC)H@tVFdl zO5VNJ1V&xq2Nmw+rw3XRWNrpIwpi5{iPKz8GID2TC_lCwfK-!8rOF?V$)F{=c5vXD z5VOgF?A<|8!&sW!Hj% zyOZ#SX306CuKg_aj_&&SXr01+mNE~-wM|J%uys%{;ysZdDY)&a=dX*pP<|FOH^8C} z8nCG2{N2&@%Er<}U)K(BvjW6M8tdEsG{rv&m`sb2lyuH>Q>^A`!OXfoYansLrsBs7Z1TwdqO- zoy`vIreh#PsJ(Ws%}+eAT{!h$Qu^Y}H7}MyO?#b5>FechQEe(8K&)$HFQsyEZD`~+ zF(VM*7j9B=(JnG{sk%FdTOzcZv^x^HOFAQUy+|5|JPj6sbQ<9wfkPGeCiufv3-85r z5GMsu;7jj$KOIkrsqjlkbllRC*$}%g1_xSHl2`RpxKJxKd9W&q%b&57T5!YOFB;S1 zF?jZw!ghT0gbTM~_f2yISF2cISD-gM=EcH%b*`N^l9FT|7dCRl?VCO%2n8x%g=~up zorjkH?0qP*8{{B^M&#PL+P*ayt-IjFn_UUuFRy7pSN zJ0za2Dfd=~AY4L6fW$;#;_4Y#s==JOLjpj*({r^uA^G~P+odSx2@SRsG#IjAqU+8` z!_Ek|&BlYHPiGx+Jt2fECSS|2&573k3pkmhvdPhwTb6U$4 z2ZOD-)#o@N{>G&@+ftrn#U8wa2Qhv8jsgRohbm)@U;Vmr<9hs5F>^$p?sFWIMN=%( zT5$UXfSGthtjrvGB_Zx}0xjdZHadYO^1vh)1)FV#HR!;V_5yzj~ISjjXhco zu2dub`p|}E!_mWAV!47G$Eukc`B`_Wz%&u?1yxyC;TS4APXw1Zj{IlLYdSgp|69i4wlZ){B?!ljZOwzS9wh#alq1r34@tP}}zVc_fO)EWP>3ss( zb8+vb5C>bblO3~@EfL@2N0m%_5Xj{}g2q(6L#G?@4n~1L+ zLgU&z#SshE5&G&w6B+lm=pDt-Gw2QwM4p^83 ztEKCLi>dlv+htPHkQ5x*<;KP#w`*C;^!&l;NsZ(3*XsskA?8ro?QytU&zrBpJox=P zWmxyL2@f*(2b)>)oJViR3xZWQaMJ9IH90X4r{_AglBSt2jZ;&4Id}FH+5=>6UJ7hP zbE2Mpcsa7;^YXuVdL&-6cF0vHcF=zEWL!#SnodMw)$L-NhIaiHd2bZ%Gz0BEdS%?V}@Pm`r+z z<-+S2q)VA}r$elUpn82yS7oSEf+$zC(poLJCh8?S7doRgwOws$FvC^Hdg?LjnBn-> zyYrI{-cng%z%ijtf$K5^)f$?pD zf1_-{byG1{zpet7eajqV@?y_h_1Q2-;fl_! zq^i)v3__+wC4DB9dPXGkB9qW$TEe124wPbvLvww4v$=s68o=qG1{5fBiujA>H6%mb zUD)N%S<=_&hEQr%(&UQf6k5GdDB!W@D}AG>SgLujy69Ch7^DR#3**z#!;;hm(P)k} zQDDF~Boj4Aa}N?1?W55oS)psN8aZp##%cs0cZPj z$dN1YBCG6N3ucPzfb?V-#vI3*0Mm!BcPg=hW&}Id@*WK#*-)lA$!zuVGe92hm=_bM z9YlfS_-Nc$ULB-x$3IOc1#4)5Y(10I!T?^!X|AOVjqI$&aX!t&#!bdl*vJ(d4Pbi= z%!!FpC@!4U&`1`2h;k@ikc! zQM7jR0TT=x^)APwy|EjdSG8gYh_xR`%-uCfP%4w(^`;5TKP!I8PS(}GCsu26z)Fv} zC?8u9M_sAkj>IFnBuo zyZtQ@caH=FEW_-CQ{*}!BO)=ovR`9h*r6|(kMcK8WYUeAgDvqpGKR~3(V9X%ISlE{ zi=WdD9c8x|g|8pX>}*EHcX`Eg1%v?3>Xe0P+Dm4=&b3Pc?P%P*uximdo*B5ukhh){ z;mdy*-GlW;|1;h)H4HCtMp05>;LA t9m@SZ!E*7&jsr?!t7TL-WYI4eM@gAug8 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -77,84 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/CongressRoutePlanner/gradlew.bat b/CongressRoutePlanner/gradlew.bat index aec9973..6689b85 100644 --- a/CongressRoutePlanner/gradlew.bat +++ b/CongressRoutePlanner/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -8,20 +24,24 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,44 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal From 995a4de6925d99e70abd4380cc685260b326aff0 Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski Date: Sat, 9 Dec 2023 21:10:02 +0100 Subject: [PATCH 02/35] build: update android build tools --- CongressRoutePlanner/app/build.gradle | 12 +++++++----- .../app/src/main/AndroidManifest.xml | 3 +-- CongressRoutePlanner/build.gradle | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CongressRoutePlanner/app/build.gradle b/CongressRoutePlanner/app/build.gradle index e69ea72..64cbb71 100644 --- a/CongressRoutePlanner/app/build.gradle +++ b/CongressRoutePlanner/app/build.gradle @@ -6,13 +6,14 @@ ext.versionPatch = 1 ext.minimumSdkVersion = 14 android { - compileSdkVersion 29 - buildToolsVersion '29.0.2' + namespace = "de.c3nav.droid" + compileSdk = 34 + buildToolsVersion = "34.0.0" defaultConfig { applicationId "de.c3nav.droid" minSdkVersion project.ext.minimumSdkVersion - targetSdkVersion 29 + targetSdkVersion 34 versionCode generateVersionCode() versionName generateVersionName() buildConfigField "String", "WEB_URL", "\"https://36c3.c3nav.de\"" @@ -29,16 +30,17 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - zipAlignEnabled true signingConfig signingConfigs.release } debug { debuggable true applicationIdSuffix ".debug" versionNameSuffix "-debug" - zipAlignEnabled true } } + buildFeatures { + buildConfig = true + } lintOptions { disable 'AddJavascriptInterface', 'SetJavaScriptEnabled' } diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index 9fbd485..2743a9c 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + diff --git a/CongressRoutePlanner/build.gradle b/CongressRoutePlanner/build.gradle index 0cc143e..9fbae1e 100644 --- a/CongressRoutePlanner/build.gradle +++ b/CongressRoutePlanner/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:8.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From f51698710c05245e56d877084e232d6ea999049f Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski Date: Sat, 9 Dec 2023 21:27:37 +0100 Subject: [PATCH 03/35] build: switch to kotlin buildscripts --- CongressRoutePlanner/app/build.gradle | 66 ------------------ CongressRoutePlanner/app/build.gradle.kts | 68 +++++++++++++++++++ .../{build.gradle => build.gradle.kts} | 10 +-- CongressRoutePlanner/settings.gradle | 1 - CongressRoutePlanner/settings.gradle.kts | 1 + 5 files changed, 74 insertions(+), 72 deletions(-) delete mode 100644 CongressRoutePlanner/app/build.gradle create mode 100644 CongressRoutePlanner/app/build.gradle.kts rename CongressRoutePlanner/{build.gradle => build.gradle.kts} (67%) delete mode 100644 CongressRoutePlanner/settings.gradle create mode 100644 CongressRoutePlanner/settings.gradle.kts diff --git a/CongressRoutePlanner/app/build.gradle b/CongressRoutePlanner/app/build.gradle deleted file mode 100644 index 64cbb71..0000000 --- a/CongressRoutePlanner/app/build.gradle +++ /dev/null @@ -1,66 +0,0 @@ -apply plugin: 'com.android.application' - -ext.versionMajor = 4 -ext.versionMinor = 1 -ext.versionPatch = 1 -ext.minimumSdkVersion = 14 - -android { - namespace = "de.c3nav.droid" - compileSdk = 34 - buildToolsVersion = "34.0.0" - - defaultConfig { - applicationId "de.c3nav.droid" - minSdkVersion project.ext.minimumSdkVersion - targetSdkVersion 34 - versionCode generateVersionCode() - versionName generateVersionName() - buildConfigField "String", "WEB_URL", "\"https://36c3.c3nav.de\"" - } - signingConfigs { - release { - storeFile file("../../c3nav.keystore") - storePassword System.getenv("KSTOREPWD") - keyAlias "c3nav" - keyPassword System.getenv("KSTOREPWD") - } - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - signingConfig signingConfigs.release - } - debug { - debuggable true - applicationIdSuffix ".debug" - versionNameSuffix "-debug" - } - } - buildFeatures { - buildConfig = true - } - lintOptions { - disable 'AddJavascriptInterface', 'SetJavaScriptEnabled' - } -} - -private Integer generateVersionCode() { - return ext.minimumSdkVersion * 1000000 + ext.versionMajor * 10000 + ext.versionMinor * 100 + ext.versionPatch -} - -private String generateVersionName() { - return "${ext.versionMajor}.${ext.versionMinor}.${ext.versionPatch}" -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - testImplementation 'junit:junit:4.12' - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.0.0' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.preference:preference:1.1.0' - implementation 'androidx.legacy:legacy-preference-v14:1.0.0' - implementation 'com.android.support:support-annotations:28.0.0' -} diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts new file mode 100644 index 0000000..1cd4346 --- /dev/null +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -0,0 +1,68 @@ +plugins { + id("com.android.application") +} + +val versionMajor = 4 +val versionMinor = 1 +val versionPatch = 1 +val minimumSdkVersion = 14 + +android { + namespace = "de.c3nav.droid" + compileSdk = 34 + buildToolsVersion = "34.0.0" + + defaultConfig { + applicationId = "de.c3nav.droid" + minSdk = minimumSdkVersion + targetSdk = 34 + versionCode = generateVersionCode() + versionName = generateVersionName() + buildConfigField("String", "WEB_URL", "\"https://36c3.c3nav.de\"") + } + signingConfigs { + create("release") { + storeFile = file("../../c3nav.keystore") + storePassword = System.getenv("KSTOREPWD") + keyAlias = "c3nav" + keyPassword = System.getenv("KSTOREPWD") + } + } + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + signingConfig = signingConfigs.findByName("release") + } + debug { + isDebuggable = true + applicationIdSuffix = ".debug" + versionNameSuffix = "-debug" + } + } + buildFeatures { + buildConfig = true + } + lint { + disable.add("AddJavascriptInterface") + disable.add("SetJavaScriptEnabled") + } +} + +fun generateVersionCode(): Int { + return minimumSdkVersion * 1000000 + versionMajor * 10000 + versionMinor * 100 + versionPatch +} + +fun generateVersionName(): String { + return "${versionMajor}.${versionMinor}.${versionPatch}" +} + +dependencies { + implementation("androidx.appcompat:appcompat:1.1.0") + implementation("com.google.android.material:material:1.0.0") + implementation("androidx.legacy:legacy-support-v4:1.0.0") + implementation("androidx.preference:preference:1.1.0") + implementation("androidx.legacy:legacy-preference-v14:1.0.0") + implementation("com.android.support:support-annotations:28.0.0") + testImplementation("junit:junit:4.12") +} diff --git a/CongressRoutePlanner/build.gradle b/CongressRoutePlanner/build.gradle.kts similarity index 67% rename from CongressRoutePlanner/build.gradle rename to CongressRoutePlanner/build.gradle.kts index 9fbae1e..f77586e 100644 --- a/CongressRoutePlanner/build.gradle +++ b/CongressRoutePlanner/build.gradle.kts @@ -2,11 +2,11 @@ buildscript { repositories { - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.2.0' + classpath("com.android.tools.build:gradle:8.2.0") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,11 +15,11 @@ buildscript { allprojects { repositories { - jcenter() google() + mavenCentral() } } -task clean(type: Delete) { - delete rootProject.buildDir +tasks.create("clean") { + delete(rootProject.layout.buildDirectory) } diff --git a/CongressRoutePlanner/settings.gradle b/CongressRoutePlanner/settings.gradle deleted file mode 100644 index e7b4def..0000000 --- a/CongressRoutePlanner/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/CongressRoutePlanner/settings.gradle.kts b/CongressRoutePlanner/settings.gradle.kts new file mode 100644 index 0000000..15a801b --- /dev/null +++ b/CongressRoutePlanner/settings.gradle.kts @@ -0,0 +1 @@ +include(":app") From bf8554cf7240029453bf757a649a5a9899568f4b Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski Date: Sat, 9 Dec 2023 21:27:52 +0100 Subject: [PATCH 04/35] build: add required exported attribute --- CongressRoutePlanner/app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index 2743a9c..eb797d2 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -18,6 +18,7 @@ From 3c48eaa51634cfd20357dd43552fc035df085e51 Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski Date: Sat, 9 Dec 2023 21:28:11 +0100 Subject: [PATCH 05/35] chore: R.id is not constant anymore, can't be used with switch/case --- .../java/de/c3nav/droid/MainActivity.java | 132 +++++++++--------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 8312a93..0f8743d 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -220,57 +220,58 @@ public boolean onNavigationItemSelected(MenuItem item) { Intent browserIntent; Uri uri; mDrawerLayout.closeDrawers(); - switch (item.getItemId()) { - case R.id.accountLink: - if (loggedIn) { - uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/account/").build(); - } else { - uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/login") - .appendQueryParameter("next", Uri.parse(webView.getUrl()).getPath()).build(); - } - MainActivity.this.evaluateJavascript("window.openInModal ? openInModal('" + uri.toString() + "') : window.location='" + uri.toString() + "';"); - return true; - case R.id.editorChangesLink: - webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/changeset/").build().toString()); - return true; - case R.id.editorDashboardLink: - webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/user/").build().toString()); - return true; - case R.id.mapLink: - webView.loadUrl(instanceBaseUrl.toString()); - return true; - case R.id.editorLink: - webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/").build().toString()); - return true; - case R.id.controlPanelLink: - webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/control/").build().toString()); - return true; - case R.id.apiLink: - browserIntent = new Intent(Intent.ACTION_VIEW, MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/api/").build()); - startActivity(browserIntent); - return true; - case R.id.twitterLink: - browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/c3nav/")); - startActivity(browserIntent); - return true; - case R.id.githubLink: - browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/c3nav/")); - startActivity(browserIntent); - return true; - case R.id.aboutLink: - uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/about/").build(); - MainActivity.this.evaluateJavascript("window.openInModal ? openInModal('" + uri.toString() + "') : window.location='" + uri.toString() + "';"); - return true; - case R.id.settingsButton: - Intent settingsIntent = new Intent(MainActivity.this, SettingsActivity.class); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - ActivityCompat.startActivityForResult(MainActivity.this, settingsIntent, SETTINGS_REQUEST, ActivityOptionsCompat.makeSceneTransitionAnimation(MainActivity.this).toBundle()); - } else { - startActivityForResult(settingsIntent, SETTINGS_REQUEST); - } - default: - return false; + int itemId = item.getItemId(); + if (itemId == R.id.accountLink) { + if (loggedIn) { + uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/account/").build(); + } else { + uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/login") + .appendQueryParameter("next", Uri.parse(webView.getUrl()).getPath()).build(); + } + MainActivity.this.evaluateJavascript("window.openInModal ? openInModal('" + uri.toString() + "') : window.location='" + uri.toString() + "';"); + return true; + } else if (itemId == R.id.editorChangesLink) { + webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/changeset/").build().toString()); + return true; + } else if (itemId == R.id.editorDashboardLink) { + webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/user/").build().toString()); + return true; + } else if (itemId == R.id.mapLink) { + webView.loadUrl(instanceBaseUrl.toString()); + return true; + } else if (itemId == R.id.editorLink) { + webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/editor/").build().toString()); + return true; + } else if (itemId == R.id.controlPanelLink) { + webView.loadUrl(MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/control/").build().toString()); + return true; + } else if (itemId == R.id.apiLink) { + browserIntent = new Intent(Intent.ACTION_VIEW, MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/api/").build()); + startActivity(browserIntent); + return true; + } else if (itemId == R.id.twitterLink) { + browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/c3nav/")); + startActivity(browserIntent); + return true; + } else if (itemId == R.id.githubLink) { + browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/c3nav/")); + startActivity(browserIntent); + return true; + } else if (itemId == R.id.aboutLink) { + uri = MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/about/").build(); + MainActivity.this.evaluateJavascript("window.openInModal ? openInModal('" + uri.toString() + "') : window.location='" + uri.toString() + "';"); + return true; + } else if (itemId == R.id.settingsButton) { + Intent settingsIntent = new Intent(MainActivity.this, SettingsActivity.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + ActivityCompat.startActivityForResult(MainActivity.this, settingsIntent, SETTINGS_REQUEST, ActivityOptionsCompat.makeSceneTransitionAnimation(MainActivity.this).toBundle()); + } else { + startActivityForResult(settingsIntent, SETTINGS_REQUEST); + } + + return false; } + return false; } }); @@ -1092,23 +1093,22 @@ public boolean onCreateOptionsMenu(Menu menu) { @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - mDrawerLayout.openDrawer(GravityCompat.START); - return true; - case R.id.share: - Intent i = new Intent(Intent.ACTION_SEND); - i.setType("text/plain"); - i.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name)); - i.putExtra(Intent.EXTRA_TEXT, webView.getUrl()); - startActivity(Intent.createChooser(i, getString(R.string.share))); - return true; - case R.id.refresh: - webView.loadUrl(instanceBaseUrl.toString()); - return true; - default: - return super.onOptionsItemSelected(item); + int itemId = item.getItemId(); + if (itemId == android.R.id.home) { + mDrawerLayout.openDrawer(GravityCompat.START); + return true; + } else if (itemId == R.id.share) { + Intent i = new Intent(Intent.ACTION_SEND); + i.setType("text/plain"); + i.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name)); + i.putExtra(Intent.EXTRA_TEXT, webView.getUrl()); + startActivity(Intent.createChooser(i, getString(R.string.share))); + return true; + } else if (itemId == R.id.refresh) { + webView.loadUrl(instanceBaseUrl.toString()); + return true; } + return super.onOptionsItemSelected(item); } class WifiReceiver extends BroadcastReceiver { From 49eafcfeb8b65e67eea12edbf929dc2a3fc90aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Mon, 11 Dec 2023 19:26:26 +0100 Subject: [PATCH 06/35] remove wifiscanrate setting --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 8 -------- .../app/src/main/res/values-de/strings.xml | 2 -- .../app/src/main/res/values/donottranslate.xml | 1 - CongressRoutePlanner/app/src/main/res/values/strings.xml | 2 -- CongressRoutePlanner/app/src/main/res/xml/preferences.xml | 7 ------- 5 files changed, 20 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 0f8743d..2c3615d 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -158,7 +158,6 @@ public class MainActivity extends AppCompatActivity private boolean settingKeepOnTop = true; private boolean settingKeepScreenOn = true; private boolean settingUseWifiLocating = true; - private Integer settingWifiScanRate = 30; private boolean settingDeveloperModeEnabled = false; private String settingDeveloperInstanceUrl = ""; private String settingDeveloperHttpUser = null; @@ -489,8 +488,6 @@ protected void updateSettings() { MainActivity.this.evaluateJavascript("nearby_stations_available();"); } - settingWifiScanRate = Integer.parseInt(sharedPrefs.getString(getString(R.string.wifi_scan_rate_key), "30")); - setWindowFlags(); if (BuildConfig.DEBUG) { @@ -1065,11 +1062,6 @@ public boolean isCurrentLocationRequested() { public void currentLocationRequesteFailed() { Toast.makeText(MainActivity.this, R.string.current_location_request_failed, Toast.LENGTH_SHORT).show(); } - - @JavascriptInterface - public int getWifiScanRate() { - return Integer.parseInt(sharedPrefs.getString(getString(R.string.wifi_scan_rate_key), "30")); - } } private void evaluateJavascript(String script, ValueCallback resultCallback) { diff --git a/CongressRoutePlanner/app/src/main/res/values-de/strings.xml b/CongressRoutePlanner/app/src/main/res/values-de/strings.xml index 07feff7..8933ed2 100644 --- a/CongressRoutePlanner/app/src/main/res/values-de/strings.xml +++ b/CongressRoutePlanner/app/src/main/res/values-de/strings.xml @@ -44,6 +44,4 @@ WLAN-basierte Ortung ist deaktiviert, um diese Funktion zu nutzen must du sie einschalten. Einstellungen Abbrechen - WLAN Scanrate - WLAN Scanrate für WLAN-basierte Ortung diff --git a/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml b/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml index ad5b880..b5ba025 100644 --- a/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml +++ b/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml @@ -4,7 +4,6 @@ keepOnTop keepScreenOn useWifiLocating - wifiScanRate developerSettings developerModeEnabled developerInstanceUrl diff --git a/CongressRoutePlanner/app/src/main/res/values/strings.xml b/CongressRoutePlanner/app/src/main/res/values/strings.xml index f626ab8..9f7e945 100644 --- a/CongressRoutePlanner/app/src/main/res/values/strings.xml +++ b/CongressRoutePlanner/app/src/main/res/values/strings.xml @@ -35,8 +35,6 @@ Stay awake and don\'t lock screen during WiFi measurement Wifi-based location Use Wifi-based location to get you current position - Wifi scan rate - Wifi scan rate for Wifi-based location Developer Mode Instance URL Override HTTP Username diff --git a/CongressRoutePlanner/app/src/main/res/xml/preferences.xml b/CongressRoutePlanner/app/src/main/res/xml/preferences.xml index e5ddbd4..e532994 100644 --- a/CongressRoutePlanner/app/src/main/res/xml/preferences.xml +++ b/CongressRoutePlanner/app/src/main/res/xml/preferences.xml @@ -19,13 +19,6 @@ android:key="@string/use_wifi_locating_key" android:summary="@string/use_wifi_locating_summary" android:title="@string/use_wifi_locating" /> - From 1a9b7a8ac5cc2c4d43cdd139e74a624cfbfb6700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Mon, 11 Dec 2023 19:26:39 +0100 Subject: [PATCH 07/35] update to 37c3 URL --- CongressRoutePlanner/app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index 1cd4346..adcadf0 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -18,7 +18,7 @@ android { targetSdk = 34 versionCode = generateVersionCode() versionName = generateVersionName() - buildConfigField("String", "WEB_URL", "\"https://36c3.c3nav.de\"") + buildConfigField("String", "WEB_URL", "\"https://37c3.c3nav.de\"") } signingConfigs { create("release") { From 809a9dc0796a87e503d8aaab66c455ef2b22be65 Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Thu, 14 Dec 2023 17:25:27 +0100 Subject: [PATCH 08/35] update tls pin --- .../app/src/main/res/xml/network_security_config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/src/main/res/xml/network_security_config.xml b/CongressRoutePlanner/app/src/main/res/xml/network_security_config.xml index 073201c..ea060bc 100644 --- a/CongressRoutePlanner/app/src/main/res/xml/network_security_config.xml +++ b/CongressRoutePlanner/app/src/main/res/xml/network_security_config.xml @@ -3,7 +3,7 @@ c3nav.de - YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg= + jQJTbIh0grw0/1TkHSumWb+Fs0Ggogr621gT3PvPKG0= \ No newline at end of file From 56bcbde6f9ac13a74a3fc4b901dc36fbc33392c0 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Mon, 18 Dec 2023 21:38:24 +0100 Subject: [PATCH 09/35] Revert "remove wifiscanrate setting" This reverts commit 49eafcfeb8b65e67eea12edbf929dc2a3fc90aa4. --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 8 ++++++++ .../app/src/main/res/values-de/strings.xml | 2 ++ .../app/src/main/res/values/donottranslate.xml | 1 + CongressRoutePlanner/app/src/main/res/values/strings.xml | 2 ++ CongressRoutePlanner/app/src/main/res/xml/preferences.xml | 7 +++++++ 5 files changed, 20 insertions(+) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 2c3615d..0f8743d 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -158,6 +158,7 @@ public class MainActivity extends AppCompatActivity private boolean settingKeepOnTop = true; private boolean settingKeepScreenOn = true; private boolean settingUseWifiLocating = true; + private Integer settingWifiScanRate = 30; private boolean settingDeveloperModeEnabled = false; private String settingDeveloperInstanceUrl = ""; private String settingDeveloperHttpUser = null; @@ -488,6 +489,8 @@ protected void updateSettings() { MainActivity.this.evaluateJavascript("nearby_stations_available();"); } + settingWifiScanRate = Integer.parseInt(sharedPrefs.getString(getString(R.string.wifi_scan_rate_key), "30")); + setWindowFlags(); if (BuildConfig.DEBUG) { @@ -1062,6 +1065,11 @@ public boolean isCurrentLocationRequested() { public void currentLocationRequesteFailed() { Toast.makeText(MainActivity.this, R.string.current_location_request_failed, Toast.LENGTH_SHORT).show(); } + + @JavascriptInterface + public int getWifiScanRate() { + return Integer.parseInt(sharedPrefs.getString(getString(R.string.wifi_scan_rate_key), "30")); + } } private void evaluateJavascript(String script, ValueCallback resultCallback) { diff --git a/CongressRoutePlanner/app/src/main/res/values-de/strings.xml b/CongressRoutePlanner/app/src/main/res/values-de/strings.xml index 8933ed2..07feff7 100644 --- a/CongressRoutePlanner/app/src/main/res/values-de/strings.xml +++ b/CongressRoutePlanner/app/src/main/res/values-de/strings.xml @@ -44,4 +44,6 @@ WLAN-basierte Ortung ist deaktiviert, um diese Funktion zu nutzen must du sie einschalten. Einstellungen Abbrechen + WLAN Scanrate + WLAN Scanrate für WLAN-basierte Ortung diff --git a/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml b/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml index b5ba025..ad5b880 100644 --- a/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml +++ b/CongressRoutePlanner/app/src/main/res/values/donottranslate.xml @@ -4,6 +4,7 @@ keepOnTop keepScreenOn useWifiLocating + wifiScanRate developerSettings developerModeEnabled developerInstanceUrl diff --git a/CongressRoutePlanner/app/src/main/res/values/strings.xml b/CongressRoutePlanner/app/src/main/res/values/strings.xml index 9f7e945..f626ab8 100644 --- a/CongressRoutePlanner/app/src/main/res/values/strings.xml +++ b/CongressRoutePlanner/app/src/main/res/values/strings.xml @@ -35,6 +35,8 @@ Stay awake and don\'t lock screen during WiFi measurement Wifi-based location Use Wifi-based location to get you current position + Wifi scan rate + Wifi scan rate for Wifi-based location Developer Mode Instance URL Override HTTP Username diff --git a/CongressRoutePlanner/app/src/main/res/xml/preferences.xml b/CongressRoutePlanner/app/src/main/res/xml/preferences.xml index e532994..e5ddbd4 100644 --- a/CongressRoutePlanner/app/src/main/res/xml/preferences.xml +++ b/CongressRoutePlanner/app/src/main/res/xml/preferences.xml @@ -19,6 +19,13 @@ android:key="@string/use_wifi_locating_key" android:summary="@string/use_wifi_locating_summary" android:title="@string/use_wifi_locating" /> + From 4c6221896dc4d54a4c6705e02f4b3f27d238ca38 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Mon, 18 Dec 2023 21:44:27 +0100 Subject: [PATCH 10/35] added missing ressources file --- .../app/src/main/res/values/arrays.xml | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 CongressRoutePlanner/app/src/main/res/values/arrays.xml diff --git a/CongressRoutePlanner/app/src/main/res/values/arrays.xml b/CongressRoutePlanner/app/src/main/res/values/arrays.xml new file mode 100644 index 0000000..1ccda43 --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/values/arrays.xml @@ -0,0 +1,25 @@ + + + + 5 s + 10 s + 15 s + 20 s + 25 s + 30 s + 40 s + 50 s + 60 s + + + 5 + 10 + 15 + 20 + 25 + 30 + 40 + 50 + 60 + + \ No newline at end of file From 9f69e7ca10b020f90fc450a2ac984cd86972358d Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Mon, 18 Dec 2023 22:48:26 +0100 Subject: [PATCH 11/35] updated settings because of getDefaultSharedPreferences deprecation --- .../src/main/java/de/c3nav/droid/MainActivity.java | 7 ++++++- .../main/java/de/c3nav/droid/SettingsFragment.java | 13 ++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 0f8743d..a2ae3d4 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -195,7 +195,12 @@ protected void onCreate(Bundle savedInstanceState) { intentCategories.contains(Intent.CATEGORY_DEFAULT) || intentCategories.contains(Intent.CATEGORY_BROWSABLE) ); - sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + Context context = getApplicationContext(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + sharedPrefs = context.getSharedPreferences(PreferenceManager.getDefaultSharedPreferencesName(context), Context.MODE_PRIVATE); + } else { + sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + } locationPermissionRequested = sharedPrefs.getBoolean(getString(R.string.location_permission_requested_key), false); if (BuildConfig.DEBUG && sharedPrefs.getBoolean(getString(R.string.developer_mode_enabled_key), false)) { settingDeveloperInstanceUrl = sharedPrefs.getString(getString(R.string.developer_instance_url_key), ""); diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/SettingsFragment.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/SettingsFragment.java index ce4ad6a..3ac6ceb 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/SettingsFragment.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/SettingsFragment.java @@ -1,8 +1,10 @@ package de.c3nav.droid; import android.Manifest; +import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import androidx.preference.SwitchPreference; @@ -16,7 +18,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { - private SharedPreferences sharePrefs; + private SharedPreferences sharedPrefs; public CheckBoxPreference useWifiLocating; private PreferenceCategory developerSettings; @@ -31,8 +33,13 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.preferences, rootKey); useWifiLocating = (CheckBoxPreference)this.findPreference(getString(R.string.use_wifi_locating_key)); - sharePrefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - if (sharePrefs.getBoolean(getString(R.string.use_wifi_locating_key), true) && !checkLocationPermisson()) { + Context context = getContext(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + sharedPrefs = context.getSharedPreferences(PreferenceManager.getDefaultSharedPreferencesName(context), Context.MODE_PRIVATE); + } else { + sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + } + if (sharedPrefs.getBoolean(getString(R.string.use_wifi_locating_key), true) && !checkLocationPermisson()) { useWifiLocating.setChecked(false); } useWifiLocating.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { From d70f35088c1fb37eb4909ecd102036556838b96a Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Mon, 18 Dec 2023 22:52:26 +0100 Subject: [PATCH 12/35] updated primay acceent color --- CongressRoutePlanner/app/src/main/res/values/colors.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/src/main/res/values/colors.xml b/CongressRoutePlanner/app/src/main/res/values/colors.xml index 155949b..3dac2a6 100644 --- a/CongressRoutePlanner/app/src/main/res/values/colors.xml +++ b/CongressRoutePlanner/app/src/main/res/values/colors.xml @@ -2,7 +2,7 @@ #000000 #000000 - #00bb31 + #9b4dca #000000 #ff5900 From 26999faf37840b9238048df5f3fe2e2100175890 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Thu, 21 Dec 2023 03:50:00 +0100 Subject: [PATCH 13/35] fixed typo --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index a2ae3d4..c391171 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -295,7 +295,7 @@ public boolean onNavigationItemSelected(MenuItem item) { authLoginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - MainActivity.this.handleLoginScreenSubmitt(); + MainActivity.this.handleLoginScreenSubmit(); } }); @@ -304,7 +304,7 @@ public void onClick(View view) { public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_SEND || keyEvent != null && keyEvent.getAction() == KeyEvent.ACTION_DOWN && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) { - MainActivity.this.handleLoginScreenSubmitt(); + MainActivity.this.handleLoginScreenSubmit(); return true; } return false; @@ -729,7 +729,7 @@ protected void maybeHideLoginScreen() { } } - protected void handleLoginScreenSubmitt() { + protected void handleLoginScreenSubmit() { if (lastAuthHandler != null) { lastAuthHandler.proceed(authUsername.getText().toString(), authPassword.getText().toString()); lastAuthHandler = null; From 2719997f258c3ef1c5105955b8a2fed3baf90857 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Thu, 21 Dec 2023 04:51:49 +0100 Subject: [PATCH 14/35] updated intent filter for 37c3 --- CongressRoutePlanner/app/src/main/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index eb797d2..036b9a3 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -43,7 +43,7 @@ From 9f4be7fec6de355dcbcccfea0d8b9ca2babc9605 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Thu, 21 Dec 2023 04:52:13 +0100 Subject: [PATCH 15/35] disabled splash screen and adapted logo screen work as a splash screen --- .../java/de/c3nav/droid/MainActivity.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index c391171..b25df13 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -333,7 +333,8 @@ public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent if (!splashScreenDone && activityStartedFromLauncher) { mDrawerLayout.closeDrawers(); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - showSplash(); + //showSplash(); + showLogoScreen(); } else { skipSplash(); } @@ -362,7 +363,7 @@ public void onPageFinished(WebView view, String url) { initialPageLoaded = true; Log.d("c3navWebView", "loading ended"); maybeEndSplash(); - maybeHideLoginScreen(); + maybeHideLoginOrLogoScreen(); } @Override @@ -669,6 +670,13 @@ protected void showLogoScreen() { logoScreenIsVisible = true; } + protected void hideLogoScreen() { + TransitionManager.go(new Scene((ViewGroup) logoScreen.getParent()), new Slide(Gravity.LEFT)); + logoScreen.setVisibility(View.GONE); + logoScreenMessage.setVisibility(View.GONE); + logoScreenIsVisible = false; + } + protected void showLoginScreen(String message) { if (!logoScreenIsVisible) showLogoScreen(); logoScreenMessage.setText(R.string.auth_title); @@ -702,15 +710,12 @@ protected void showLoginScreen() { } protected void hideLoginScreen() { - TransitionManager.go(new Scene((ViewGroup) logoScreen.getParent()), new Slide(Gravity.LEFT)); - logoScreen.setVisibility(View.GONE); - logoScreenMessage.setVisibility(View.GONE); + hideLogoScreen(); authUsername.setVisibility(View.GONE); authPassword.setVisibility(View.GONE); authMessage.setVisibility(View.GONE); authLoginButton.setVisibility(View.GONE); loginScreenIsActive = false; - logoScreenIsVisible = false; } protected void maybeShowLoginScreen() { @@ -723,9 +728,11 @@ protected void maybeShowLoginScreen() { } } - protected void maybeHideLoginScreen() { + protected void maybeHideLoginOrLogoScreen() { if (loginScreenIsActive && initialPageLoaded) { hideLoginScreen(); + } else if (logoScreenIsVisible && initialPageLoaded) { + hideLogoScreen(); } } From 084940b420772aac8cc5e171106af63e3e341cc5 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Thu, 21 Dec 2023 06:31:45 +0100 Subject: [PATCH 16/35] updated logo for 37c3 --- .../app/src/main/res/drawable/logo.png | Bin 59179 -> 9207 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/res/drawable/logo.png b/CongressRoutePlanner/app/src/main/res/drawable/logo.png index 091d94038858897a3c95c0ec28c73e4a0a17c3f2..1dfa6d13cc8bd64c2128518e2ed2fc7ff407f007 100644 GIT binary patch literal 9207 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 Zk%DGr)|3&2_9T6yc2i5K;Ku!D{|o3LWuX87 literal 59179 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�U@?3VVmQ$6o*KQlJ|;pg#tCKW_!0O#IFus|C- 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 g#{9605 zjL)(&_;YrcYTfy;Srodfv&6g6R(yUz|F{^1H_cvtw=!brMgV z1y5Y?oU+}6xzHl#D$C`n&i_|edx&tXXPuI-T4($InRr36tAgwla~lD@;HU+^K3?71 z@ZeSEgyJMwVXs%W#V+sT&i6Ak7CUbc+i&1=FrOLk$L6t5SC&sUH=gufwz@^=I<)Fh} zZoXf9JbUuI{)Dc7Uz#WHD(_g6D4h6)Nig}wOG6{BKYEK4lvh3s>|w3jdj3Y${Ycg&u)5{%u~{wxDLIY@lbjwb?a}yuphM5@*>x9z%ZQ#l)=j!~CxExVGI+ZBxvX Date: Sat, 23 Dec 2023 01:48:13 +0100 Subject: [PATCH 17/35] updated launcher icon --- .../app/src/main/AndroidManifest.xml | 5 +++-- .../src/main/ic_launcher_basic-playstore.png | Bin 0 -> 13615 bytes .../drawable/ic_launcher_basic_foreground.xml | 13 +++++++++++++ .../app/src/main/res/drawable/ic_navigation.xml | 5 +++++ .../res/mipmap-anydpi-v26/ic_launcher_basic.xml | 6 ++++++ .../ic_launcher_basic_round.xml | 6 ++++++ .../main/res/mipmap-hdpi/ic_launcher_basic.webp | Bin 0 -> 1058 bytes .../mipmap-hdpi/ic_launcher_basic_round.webp | Bin 0 -> 2946 bytes .../main/res/mipmap-mdpi/ic_launcher_basic.webp | Bin 0 -> 792 bytes .../mipmap-mdpi/ic_launcher_basic_round.webp | Bin 0 -> 1896 bytes .../res/mipmap-xhdpi/ic_launcher_basic.webp | Bin 0 -> 1424 bytes .../mipmap-xhdpi/ic_launcher_basic_round.webp | Bin 0 -> 3940 bytes .../res/mipmap-xxhdpi/ic_launcher_basic.webp | Bin 0 -> 2352 bytes .../mipmap-xxhdpi/ic_launcher_basic_round.webp | Bin 0 -> 6264 bytes .../res/mipmap-xxxhdpi/ic_launcher_basic.webp | Bin 0 -> 3190 bytes .../mipmap-xxxhdpi/ic_launcher_basic_round.webp | Bin 0 -> 8600 bytes .../res/values/ic_launcher_basic_background.xml | 4 ++++ 17 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 CongressRoutePlanner/app/src/main/ic_launcher_basic-playstore.png create mode 100644 CongressRoutePlanner/app/src/main/res/drawable/ic_launcher_basic_foreground.xml create mode 100644 CongressRoutePlanner/app/src/main/res/drawable/ic_navigation.xml create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic.xml create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic_round.xml create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic_round.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic_round.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xhdpi/ic_launcher_basic.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xhdpi/ic_launcher_basic_round.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xxhdpi/ic_launcher_basic.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xxhdpi/ic_launcher_basic_round.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_basic.webp create mode 100644 CongressRoutePlanner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_basic_round.webp create mode 100644 CongressRoutePlanner/app/src/main/res/values/ic_launcher_basic_background.xml diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index 036b9a3..9321b14 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -10,7 +10,8 @@ diff --git a/CongressRoutePlanner/app/src/main/ic_launcher_basic-playstore.png b/CongressRoutePlanner/app/src/main/ic_launcher_basic-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..91e6dd9d66cea540b769879dc44f9f9822ec647d GIT binary patch literal 13615 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 KOo@*D{r?55%DNi> literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/drawable/ic_launcher_basic_foreground.xml b/CongressRoutePlanner/app/src/main/res/drawable/ic_launcher_basic_foreground.xml new file mode 100644 index 0000000..1b2fc36 --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/drawable/ic_launcher_basic_foreground.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/CongressRoutePlanner/app/src/main/res/drawable/ic_navigation.xml b/CongressRoutePlanner/app/src/main/res/drawable/ic_navigation.xml new file mode 100644 index 0000000..4d80b3c --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/drawable/ic_navigation.xml @@ -0,0 +1,5 @@ + + + diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic.xml b/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic.xml new file mode 100644 index 0000000..7b2ccd7 --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic_round.xml b/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic_round.xml new file mode 100644 index 0000000..7b2ccd7 --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_basic_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic.webp b/CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic.webp new file mode 100644 index 0000000000000000000000000000000000000000..97bfb02fc7f28ab012d5f1bf89d649f383dccdb2 GIT binary patch literal 1058 zcmV+-1l{{mNk&E*1ONb6MM6+kP&iBt1ONapN5ByfhXpCJZP&{B$-!ri6lCHt%re}2 znj`{tBuS2yM1ukRVFSM7mDc*Woq`-mk|N1>_n754Ax@6d|H;hV9gu6=TAu9p#XTv- z6I=?=3bYy)1yBWJ<_Q6-Vq`qA|j$0m57LlNKuP&L=>z0J?kF|G9eOp z`ue9#dEF*h6S0dT0Ez^lfXW{SNdW>90m@ndWkRf31gy!FiR5LQ3Rr6a@%a7ceV^7u zKta~z{eSsd3rs2gy%hilDgN$GfdUkm0l%qO#BVCfZz@)_Sd*5@!REw_B#}@)=)=LT zdOkgTYRsKZ+sQeHV{%};d*Z0t=rT4o0}!uEL`5Y zp81Qt{^R3fTiV-K(VFS`>gwV4>Ac{Owr$(lNF947?bx<$tZk(l8(G`7ZJR%`dGliR zv3>G1Z$$qm!1n(=>AH|6g%2R8-;f{R+@%ZWFLE6KOWMG1zz=6H&r6MedF71FPh>@p@Y>boPay!z1sl__zs2u0QTZ2?L157T`L2Ml1z}cV>X50fk$j`bI7VcamPG8Svs*}Oi0wnL5VFPLtwQWU6-r@m9pw>`Y zQ-I`6E?@?pN;;Ved94>XfWczBuk1d6MjdjiWK81%28--Is9UB4PGGc*O~3+fV6cvb z^a4kqHqmQTfh*Y2L@Q_lXP`FGsWX8)Q0r*a1VI28tgsugioGBNjFmdb?1h6M2#l7I z6%B$gFj_-WF$e;Iw^6U!tqBFrHeYqyHNn8!la83urGjuUvtjkB_0t+R#~CmV%6mqR ziV~1_jhvVlWY^wDMjmUyog(1Ef!E=$NRq;$Z|q(O3h0*)V#7=lco*^U{-J%lx!-&6 z;irhVHu7IFiEmy$fAItnpCL+#C{ZFxi6{{fC8Csw5+$OPh!W+~z{@v@F`vO;$d{gt`w#9Bq>ZX6ApB1S0M0E2lK=n! literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic_round.webp b/CongressRoutePlanner/app/src/main/res/mipmap-hdpi/ic_launcher_basic_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..a0455cf39b7bc6e0c6c114e6e5c16dc84f8cf35f GIT binary patch literal 2946 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 sZ(QrFDs?-BqRSx$H2PF1!9|?v`L509>h+WB>pF literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic.webp b/CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic.webp new file mode 100644 index 0000000000000000000000000000000000000000..df70344126d3242a6b882ae8398194412698f8d6 GIT binary patch literal 792 zcmV+z1LyowNk&Ex0{{S5MM6+kP&iBk0{{RoFTe{BSL8U7Bqu7QyI6}2eBl(j>$DAy zBS~_UI<3GFjKXJ(;KfhNo^l+?wyO01xRZYhWa9)tv18?W59HdmmNgrfDNJ2Up$Cef z9-5#W7BhEuOY;ADg988}APN#70-_)Wa%cV{0g;G|udgjd(GUt zf)e8cM9zxo^|hx&PD7DElr`n?`$LBN+n$n&v*PmkQ9iMM#~6x`iiOH2O_r)zY+!&8 zp~;^}iW4L#OalF*P?Do*lx=5=-73h#^>zFVAqkTR=8rZpt3r&T>-DQ?6wo$dLF;yY zbkm(HdEO%@iPnuP^m;|p2FWkp?iQc?cb)sCZJCN#ZKQ6-0ptI6e3skoek|m4T3q+H zHa*a>UN0|9WPd%^RzTDRU+F;tDIky35`BLQ0~SS0nOK;fmh+v8ki0dY>$$M<~#rj7~5_`TlfN zvi(%tnTf`7Kb3c6qLA&Ts_hwjs~uFmb=6k3J*MGWvv#tbRB>*M^6eQLnI5XT;E!_X z3e0&uRE-7096CKy$$lz4G(N+hX7ENi^d`-$4Nzh0I#W!wa~O0+j#Kg6p33%&04I!0 zs;ry>aF$_fmWn5hEU8?e02bKB43(ZVvf8V)IUSSqtrrWA zXSl|CDsD?MQ}Eg-5NiN9d8^0FA!woc%^tG>uPLT;#A9}lZPGX#FkA4Nl#ZmCJ$S7O zO(_-yq*^6SNfr$x+61j}78S%hDA0D1nY*fmm8FTrEYtcZdv!(6q|4p=EGm<)*K);t z!Ezq^55AKRoC~Yo-`LN=vcvVa)gcj8{(JNI{zF)Gc=YanrNp7S?$7UEz)$19fZu=X WszV~jkD6NR?ng+JKYX+P!5x&dI))+u literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic_round.webp b/CongressRoutePlanner/app/src/main/res/mipmap-mdpi/ic_launcher_basic_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..cd9da4d8b291ce6140a78fdc087d79519e02e063 GIT binary patch literal 1896 zcmV-u2bcI#Nk&Fs2LJ$9MM6+kP&iCf2LJ#sFTe{B6;Zmj?Udzw9Va8(Hrp<1@2}nC z*v{0pZ9B94fc%1tY|m`F_V>NJ&Odl#J5#3}R;ADEtjx5lhq3mG?W8%(O3lKVZQE(o zT4xr$lc>&Ay=QHAE$Fsw8*g@M+xDmUL!5lZz2}^-{MU!+n-{Wd+oqir+ctW(Z993k zE}wbM**kU9&qqhjZEeRMt$eXWFN!-pRtw4K+zJEt3=$I}A_(!$MR=&6;VM zK%2Ak%q}a<>s-- z%v_x(c3x@0Fo38-vPtr($|VCN7!|h#nCr~Uu*{egmpnVgf77+kRlj)mHWe z(DmZ^TlbLU!3s&7NxCYy#X<~_Is@{z?Y!CoICsmPe)d|bM{hq#a+jrh2d1q!x~byM zwfshzVs@VP13EL7GS6A%<$yhx8W595iOEbZj8ay<6`n?XF&;yoE?1e-oCTV9=rm&y z`MAR}93pmWEM{F%Q@Hmk z6V5cdRzHsQm8$kspr)LS?6B6xhI^x|cQB6NEd4i#%IPZi?cJzD>>gE9gS=V(1q0L& zZMI8KQBp3jVDpw+43X8Ym#ImRRabmH!VuhbrI}RW+42=dLd-vpxeKK4)2IWaku-!xO)NIs9mLRMnBdhHG50j=plb0(W1@MC zZ8kayiP002bq~jh$eenJhQBJm9nyVpMeMtEY^MEyXwc{IE?q|rx1OSpYzjiF(9EC3pqDDEub<975ruS>tNP- zDB8kvH47P_=gkWbfcI!=qI-&fI-PzQ8rmSg3qaWPr6h&tHReEcF(!1+zfj z5t+9Pu*33jsfuNl0h&WuSLp#&`(xIV>9DAMMH3*qgn2;+8I|S#3jU(>XAt`==iJ<` zrj95E1B?m`ykiOp?pB!uRS5m$9!rfZ_jUrwetvgA*T@rmPcgtquES`tAD1cvYzog4 z+sAWZ;d7wQzjv6%Y0!t^^N$r06qtnfBJ9VdYC+$TuNdH5Y!=^FNKoNBAeJyM*mk`G z!`N=UgY=RlfwE1COrwVkaQW&4_&aqj16&JDqdNf-R7jpek`pWvEMuHfW8zs9l5cpj zLW`#u;C5~TVH4*vz$u^iIpwR$zv*tM1NH7EZ&mu8$NiXoQ*Ka_IZGOm{>_sDdt_e! zY~G#xJPZ;3JbAbIvn@8S`!^1YBA-E7V6h==mj(lj8Q`7UeIItE8CeUeP=ON*X_7Zo zs6Z`V%iVt)VSvvw9W4yWzt3fWRp+Z6e#3U3x{F2HV{cjf{PWRdRtRd+(N}m?>2tA2 zfBewzKc4$HhN|^91GE`n$pFtjE*6q&{Y3_NwSVt#_V+7E*?%ryF~Fexo0oR8+8)s3$y`itR|~PfeN+9?H``zHl@Y}h iY9-1$E{!2|eFPj32!Mcq0~JsN0v-tX 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 W1*KAZ_r?(1yH_a+Vuc{hs1yL`V|!=- literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-xxhdpi/ic_launcher_basic_round.webp b/CongressRoutePlanner/app/src/main/res/mipmap-xxhdpi/ic_launcher_basic_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..815009b77eea009ca6548568e97275f341dc5ca3 GIT binary patch literal 6264 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 literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_basic_round.webp b/CongressRoutePlanner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_basic_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..fb16ee75b6fa6149cc0780d10ee8a38fac63d4f8 GIT binary patch literal 8600 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 literal 0 HcmV?d00001 diff --git a/CongressRoutePlanner/app/src/main/res/values/ic_launcher_basic_background.xml b/CongressRoutePlanner/app/src/main/res/values/ic_launcher_basic_background.xml new file mode 100644 index 0000000..822d622 --- /dev/null +++ b/CongressRoutePlanner/app/src/main/res/values/ic_launcher_basic_background.xml @@ -0,0 +1,4 @@ + + + #9B4DC9 + \ No newline at end of file From ff80fda0de37ad51a3b06a82a2f1447711181483 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sat, 23 Dec 2023 02:02:40 +0100 Subject: [PATCH 18/35] updated shortcut icons --- .../app/src/main/res/drawable/ic_shortcut_build.xml | 2 +- .../app/src/main/res/drawable/ic_shortcut_edit.xml | 2 +- .../app/src/main/res/drawable/ic_shortcut_my_location.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_build.xml b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_build.xml index 461e12a..b4486ff 100644 --- a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_build.xml +++ b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_build.xml @@ -7,6 +7,6 @@ android:pathData="M24,24m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0" android:fillColor="#f5f5f5" /> diff --git a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_edit.xml b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_edit.xml index e449859..38106e1 100644 --- a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_edit.xml +++ b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_edit.xml @@ -7,6 +7,6 @@ android:pathData="M24,24m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0" android:fillColor="#f5f5f5" /> diff --git a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_my_location.xml b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_my_location.xml index bd795dc..df55b0c 100644 --- a/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_my_location.xml +++ b/CongressRoutePlanner/app/src/main/res/drawable/ic_shortcut_my_location.xml @@ -7,6 +7,6 @@ android:pathData="M24,24m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0" android:fillColor="#f5f5f5" /> From 3035b002a32038410ceb1ea80cdbe9b14b5284b4 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sat, 23 Dec 2023 02:47:29 +0100 Subject: [PATCH 19/35] version bump 4.2.1 --- CongressRoutePlanner/app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index adcadf0..9f0262a 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } val versionMajor = 4 -val versionMinor = 1 +val versionMinor = 2 val versionPatch = 1 val minimumSdkVersion = 14 From 0aa845fa4043d72a35fa748dd11237a6d8b6da2b Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sat, 23 Dec 2023 17:25:06 +0100 Subject: [PATCH 20/35] updated current_version file for fdroid --- current_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/current_version b/current_version index a2317f7..924504c 100644 --- a/current_version +++ b/current_version @@ -1 +1 @@ -4.1.1:14040101 +4.2.1:14040201 From 46c4ad04459416fb3e7d33c27c03b8627855c4a2 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sun, 24 Dec 2023 03:58:09 +0100 Subject: [PATCH 21/35] updated c3nav logo (better kerning) --- .../app/src/main/res/drawable/logo.png | Bin 9207 -> 9174 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/res/drawable/logo.png b/CongressRoutePlanner/app/src/main/res/drawable/logo.png index 1dfa6d13cc8bd64c2128518e2ed2fc7ff407f007..3d65922e7f21d1890298ff8efaf6cfa5d35cdb26 100644 GIT binary patch literal 9174 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 Zk%DGr)|3&2_9T6yc2i5K;Ku!D{|o3LWuX87 From 5a1c9531897ffa219417d9d9e76579df7d2619b8 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sun, 24 Dec 2023 03:58:51 +0100 Subject: [PATCH 22/35] version bump v4.2.2 --- CongressRoutePlanner/app/build.gradle.kts | 2 +- current_version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index 9f0262a..d9e5757 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -4,7 +4,7 @@ plugins { val versionMajor = 4 val versionMinor = 2 -val versionPatch = 1 +val versionPatch = 2 val minimumSdkVersion = 14 android { diff --git a/current_version b/current_version index 924504c..3ae6bbb 100644 --- a/current_version +++ b/current_version @@ -1 +1 @@ -4.2.1:14040201 +4.2.2:14040202 From 454a09fa97f3253273c1f8cc1d01f70097b9f278 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Sun, 24 Dec 2023 17:18:13 +0100 Subject: [PATCH 23/35] replaced twitter link with mastodon link --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 4 ++-- CongressRoutePlanner/app/src/main/res/menu/menu_nav_main.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index b25df13..edf0291 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -254,8 +254,8 @@ public boolean onNavigationItemSelected(MenuItem item) { browserIntent = new Intent(Intent.ACTION_VIEW, MainActivity.this.instanceBaseUrl.buildUpon().encodedPath("/api/").build()); startActivity(browserIntent); return true; - } else if (itemId == R.id.twitterLink) { - browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/c3nav/")); + } else if (itemId == R.id.fediLink) { + browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://chaos.social/@c3nav")); startActivity(browserIntent); return true; } else if (itemId == R.id.githubLink) { diff --git a/CongressRoutePlanner/app/src/main/res/menu/menu_nav_main.xml b/CongressRoutePlanner/app/src/main/res/menu/menu_nav_main.xml index 583ccf2..0ec665a 100644 --- a/CongressRoutePlanner/app/src/main/res/menu/menu_nav_main.xml +++ b/CongressRoutePlanner/app/src/main/res/menu/menu_nav_main.xml @@ -46,9 +46,9 @@ android:icon="@drawable/ic_code" android:title="@string/api" /> Date: Sun, 24 Dec 2023 17:33:43 +0100 Subject: [PATCH 24/35] version bump 4.2.3 --- CongressRoutePlanner/app/build.gradle.kts | 2 +- current_version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index d9e5757..bc1a3e7 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -4,7 +4,7 @@ plugins { val versionMajor = 4 val versionMinor = 2 -val versionPatch = 2 +val versionPatch = 3 val minimumSdkVersion = 14 android { diff --git a/current_version b/current_version index 3ae6bbb..3a06ec1 100644 --- a/current_version +++ b/current_version @@ -1 +1 @@ -4.2.2:14040202 +4.2.3:14040203 From ebacd62f9714bde8481345d82a9e2c64728af87a Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Mon, 25 Dec 2023 22:48:08 +0100 Subject: [PATCH 25/35] use autoVerify="true" for the URL intent-filter --- .../app/src/main/AndroidManifest.xml | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index 9321b14..2acd1a9 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -26,27 +26,15 @@ - + - - - - - - - - - - + + + + From 0f606dc5f2ca56c8e408aaad5a4b975b19cf069d Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 04:10:37 +0100 Subject: [PATCH 26/35] properly check if mobileclientOnResume is available --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index edf0291..d0ed358 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -759,7 +759,7 @@ protected void onSaveInstanceState(Bundle savedInstanceState) { protected void onResume() { super.onResume(); Log.d("lifecycleEvents", "onResume called"); - evaluateJavascript("if (mobileclientOnResume) {mobileclientOnResume()};"); + evaluateJavascript("if (window.mobileclientOnResume) {mobileclientOnResume()};"); registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); if(checkLocationPermission(false, true)) startScan(); if (splashScreenPaused && !splashScreenDone) { From 4e66a9cd4fb0a8c3dbcc007397e27c76407eda8d Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 04:11:10 +0100 Subject: [PATCH 27/35] don't try to use WifiManager.startScan on API level >= 34 --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index d0ed358..f429126 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -870,8 +870,10 @@ protected void startScan() { if (!powerManager.isInteractive()) return; } if (!hasLocationPermission()) return; - Log.d("c3navWifiScanner", "startScan triggered"); - wifiManager.startScan(); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + Log.d("c3navWifiScanner", "startScan triggered"); + wifiManager.startScan(); + } } protected void setInEditor(boolean inEditor) { From 6e83e81a8844d1943875ab5c1ddd1922fd9a5b83 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 04:11:51 +0100 Subject: [PATCH 28/35] add information about 802.11mc support to the wifi scan result --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index f429126..3799ea1 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -1140,6 +1140,9 @@ public void onReceive(Context c, Intent intent) { jo.put("ssid", result.SSID); jo.put("level", result.level); jo.put("frequency", result.frequency); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + jo.put("supports80211mc", result.is80211mcResponder()); + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { if (SystemClock.elapsedRealtime() - result.timestamp / 1000 > 1000) { From 0e2ac21cf0ec0695a02eb6553220e626c62626cb Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 04:13:31 +0100 Subject: [PATCH 29/35] version bump to 4.2.4 --- CongressRoutePlanner/app/build.gradle.kts | 2 +- current_version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index bc1a3e7..fc33220 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -4,7 +4,7 @@ plugins { val versionMajor = 4 val versionMinor = 2 -val versionPatch = 3 +val versionPatch = 4 val minimumSdkVersion = 14 android { diff --git a/current_version b/current_version index 3a06ec1..90bc084 100644 --- a/current_version +++ b/current_version @@ -1 +1 @@ -4.2.3:14040203 +4.2.4:14040204 From 11f99696b66f267043ce498ccc0b87b7442fa34f Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 13:03:16 +0100 Subject: [PATCH 30/35] Revert "don't try to use WifiManager.startScan on API level >= 34" This reverts commit 4e66a9cd4fb0a8c3dbcc007397e27c76407eda8d. --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 3799ea1..c137703 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -870,10 +870,8 @@ protected void startScan() { if (!powerManager.isInteractive()) return; } if (!hasLocationPermission()) return; - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - Log.d("c3navWifiScanner", "startScan triggered"); - wifiManager.startScan(); - } + Log.d("c3navWifiScanner", "startScan triggered"); + wifiManager.startScan(); } protected void setInEditor(boolean inEditor) { From ad8d5afa848b9b038ebd4cfad3482eaffabae99b Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Wed, 27 Dec 2023 13:35:42 +0100 Subject: [PATCH 31/35] version bump v4.2.5 --- CongressRoutePlanner/app/build.gradle.kts | 2 +- current_version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CongressRoutePlanner/app/build.gradle.kts b/CongressRoutePlanner/app/build.gradle.kts index fc33220..1d27f37 100644 --- a/CongressRoutePlanner/app/build.gradle.kts +++ b/CongressRoutePlanner/app/build.gradle.kts @@ -4,7 +4,7 @@ plugins { val versionMajor = 4 val versionMinor = 2 -val versionPatch = 4 +val versionPatch = 5 val minimumSdkVersion = 14 android { diff --git a/current_version b/current_version index 90bc084..0086d6d 100644 --- a/current_version +++ b/current_version @@ -1 +1 @@ -4.2.4:14040204 +4.2.5:14040205 From bbef54d1349d78dd77168970ff6024cdebe46ed8 Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Wed, 27 Dec 2023 15:27:34 +0100 Subject: [PATCH 32/35] rtt stuff --- .../app/src/main/AndroidManifest.xml | 1 + .../java/de/c3nav/droid/MainActivity.java | 193 ++++++++++++++---- 2 files changed, 149 insertions(+), 45 deletions(-) diff --git a/CongressRoutePlanner/app/src/main/AndroidManifest.xml b/CongressRoutePlanner/app/src/main/AndroidManifest.xml index 2acd1a9..107ff18 100644 --- a/CongressRoutePlanner/app/src/main/AndroidManifest.xml +++ b/CongressRoutePlanner/app/src/main/AndroidManifest.xml @@ -6,6 +6,7 @@ + results) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + RangingRequest.Builder builder = new RangingRequest.Builder(); + builder.setRttBurstSize(16); + int numPeers = 0; + for (ScanResult scanResult : results) { + if (scanResult.is80211mcResponder()) { + builder.addAccessPoint(scanResult); + Log.d("rtt", String.format("rtt-capable access point: %s", scanResult.BSSID)); + numPeers += 1; + } + } + if (numPeers == 0) { + processCompleteWifiResultsWithoutRtt(results); + return; + } + RangingRequest req = builder.build(); + WifiRttManager mgr = (WifiRttManager) this.getSystemService(Context.WIFI_RTT_RANGING_SERVICE); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this, Manifest.permission.NEARBY_WIFI_DEVICES) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.NEARBY_WIFI_DEVICES}, 0); + // TODO: we are already requesting permissions in another place, it should all happen centralised - List wifiList = wifiManager.getScanResults(); - JSONArray ja = new JSONArray(); - Map newLevelValues = new HashMap(); - for (ScanResult result : wifiList) { - JSONObject jo = new JSONObject(); - try { - jo.put("bssid", result.BSSID); - jo.put("ssid", result.SSID); - jo.put("level", result.level); - jo.put("frequency", result.frequency); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - jo.put("supports80211mc", result.is80211mcResponder()); + processCompleteWifiResultsWithoutRtt(results); + return; + } + Log.d("rtt", String.format("starting rtt ranging with %d peers", numPeers)); + mgr.startRanging(req, getMainExecutor(), new RangingResultCallback() { + + @Override + public void onRangingFailure(int code) { + Log.w("rtt", String.format("ranging failure: %d", code)); + processCompleteWifiResultsWithoutRtt(results); + } + + @Override + public void onRangingResults(@NonNull List rangingResults) { + Map resultMap = new HashMap<>(); + for (ScanResult result : results) { + resultMap.put(result.BSSID, new WifiResult(result, null)); } + for (RangingResult result : rangingResults) { + if (result.getStatus() == RangingResult.STATUS_SUCCESS) { + Log.d("rtt", String.format("ranging success: %s", result)); + MacAddress mac = result.getMacAddress(); + if (mac != null) { + WifiResult entry = resultMap.get(mac.toString()); + if (entry != null) { + ScanResult scanResult = entry.scan; + resultMap.put(scanResult.BSSID, new WifiResult(scanResult, result)); + } else { + Log.w("rtt", String.format("got result for unknown mac %s", mac)); + } + } else { + Log.w("rtt", "no mac address in result"); + } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - if (SystemClock.elapsedRealtime() - result.timestamp / 1000 > 1000) { - continue; - } - jo.put("last", SystemClock.elapsedRealtime() - result.timestamp / 1000); - } else { - // Workaround for older devices: If the signal level did not change - // at all since the last scan, we will assume that it is a cached - // value and should not be used. - newLevelValues.put(result.BSSID, result.level); - if (lastLevelValues.containsKey(result.BSSID) && lastLevelValues.get(result.BSSID) == result.level) { - Log.d("scan result", "Discard " + result.BSSID + " because level did not change"); - continue; + } else { + Log.d("rtt", String.format("ranging failure: %s", result)); } } - ja.put(jo); - } catch (JSONException e) { - e.printStackTrace(); + List finalResults = new ArrayList<>(resultMap.size()); + finalResults.addAll(resultMap.values()); + processCompleteWifiResults(finalResults); } - } - Log.d("scan result", ja.toString()); - mobileClient.setNearbyStations(ja); - lastLevelValues = newLevelValues; + }); - webView.post(new Runnable() { - @Override - public void run() { - MainActivity.this.evaluateJavascript("nearby_stations_available();"); + + } + } + + + public void processCompleteWifiResults(List results) { + JSONArray ja = new JSONArray(); + Map newLevelValues = new HashMap(); + for (WifiResult result : results) { + JSONObject jo = new JSONObject(); + try { + jo.put("bssid", result.scan.BSSID); + jo.put("ssid", result.scan.SSID); + jo.put("level", result.scan.level); + jo.put("frequency", result.scan.frequency); + if (result.rtt != null) { + JSONObject rtt = new JSONObject(); + rtt.put("distance_mm", result.rtt.getDistanceMm()); + rtt.put("distance_std_dev_mm", result.rtt.getDistanceStdDevMm()); + rtt.put("measurement_bandwidth", result.rtt.getMeasurementBandwidth()); + rtt.put("num_attempted_measurements", result.rtt.getNumAttemptedMeasurements()); + rtt.put("num_successful_measurements", result.rtt.getNumSuccessfulMeasurements()); + rtt.put("ranging_timestamp_millis", result.rtt.getRangingTimestampMillis()); + jo.put("rtt", rtt); } - }); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + if (SystemClock.elapsedRealtime() - result.scan.timestamp / 1000 > 1000) { + continue; + } + jo.put("last", SystemClock.elapsedRealtime() - result.scan.timestamp / 1000); + } else { + // Workaround for older devices: If the signal level did not change + // at all since the last scan, we will assume that it is a cached + // value and should not be used. + newLevelValues.put(result.scan.BSSID, result.scan.level); + if (lastLevelValues.containsKey(result.scan.BSSID) + && lastLevelValues.get(result.scan.BSSID) == result.scan.level) { + Log.d("scan result.scan", "Discard " + result.scan.BSSID + " because level did not change"); + continue; + } + } + ja.put(jo); + } catch (JSONException e) { + e.printStackTrace(); + } + } + Log.d("scan result", ja.toString()); + mobileClient.setNearbyStations(ja); + lastLevelValues = newLevelValues; + + webView.post(new Runnable() { + @Override + public void run() { + MainActivity.this.evaluateJavascript("nearby_stations_available();"); + } + }); + } + + public void processCompleteWifiResultsWithoutRtt(List results) { + List new_results = new ArrayList<>(results.size()); + for (ScanResult result : results) { + new_results.add(new WifiResult(result, null)); + } + processCompleteWifiResults(new_results); + } + + class WifiReceiver extends BroadcastReceiver { + public void onReceive(Context c, Intent intent) { + + if (!checkLocationPermission()) return; + + List wifiList = wifiManager.getScanResults(); + MainActivity.this.processWifiResults(wifiList); } } @@ -1189,7 +1293,6 @@ public void onAttachedToWindow() { setWindowFlags(); } - @SuppressWarnings("deprecation") private void setWindowFlags() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O_MR1) { if ((settingKeepOnTop && !isInEditor()) || settingKeepScreenOn && isWifiMeasurementRunning()) { @@ -1227,7 +1330,7 @@ public ShortcutInfo getShortcutInfo(@NonNull String id, @NonNull String shortLab } @RequiresApi(Build.VERSION_CODES.N_MR1) - public ShortcutInfo getShortcutInfo(@NonNull String id, @NonNull int shortLabelRessource, int longLabelRessource, @NonNull int iconRessource, @NonNull String action, Uri data) { + public ShortcutInfo getShortcutInfo(@NonNull String id, int shortLabelRessource, int longLabelRessource, int iconRessource, @NonNull String action, Uri data) { String shortLabel = getString(shortLabelRessource); String longLabel = (longLabelRessource != -1) ? getString(longLabelRessource) : null; Icon icon = Icon.createWithResource(getApplicationContext(), iconRessource); From 0731d2e948f8b4ce7fcab4e4597bcb886015ddbb Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Wed, 27 Dec 2023 15:36:10 +0100 Subject: [PATCH 33/35] rename "level" to "rssi" in wifi measurement data --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 1ba4d12..21e0aa0 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -1215,7 +1215,7 @@ public void processCompleteWifiResults(List results) { try { jo.put("bssid", result.scan.BSSID); jo.put("ssid", result.scan.SSID); - jo.put("level", result.scan.level); + jo.put("rssi", result.scan.level); jo.put("frequency", result.scan.frequency); if (result.rtt != null) { JSONObject rtt = new JSONObject(); From 323a23f22862a06707e7bbaf264970c94f66f14f Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Wed, 27 Dec 2023 16:13:51 +0100 Subject: [PATCH 34/35] record rtt support independently of rtt success --- .../app/src/main/java/de/c3nav/droid/MainActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java index 21e0aa0..a9a44dc 100644 --- a/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java +++ b/CongressRoutePlanner/app/src/main/java/de/c3nav/droid/MainActivity.java @@ -1140,6 +1140,7 @@ public void processWifiResults(List results) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { RangingRequest.Builder builder = new RangingRequest.Builder(); builder.setRttBurstSize(16); + // todo: use max peers int numPeers = 0; for (ScanResult scanResult : results) { if (scanResult.is80211mcResponder()) { @@ -1217,6 +1218,9 @@ public void processCompleteWifiResults(List results) { jo.put("ssid", result.scan.SSID); jo.put("rssi", result.scan.level); jo.put("frequency", result.scan.frequency); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + jo.put("supports80211mc", result.scan.is80211mcResponder()); + } if (result.rtt != null) { JSONObject rtt = new JSONObject(); rtt.put("distance_mm", result.rtt.getDistanceMm()); From bda066a9d2545b7ba23522f417bcb775d720b494 Mon Sep 17 00:00:00 2001 From: m4ci3k2 Date: Wed, 27 Dec 2023 16:22:38 +0100 Subject: [PATCH 35/35] add custom fdroid repo to README.md see #27 the fdroid button is hotlinked from Wikipedia as the officcial fdroid one is a differents size and resizing in github-markdown is quite ugly --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 85c1002..72a3e1b 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,5 @@ You can get the app on the [Play Store](https://play.google.com/store/apps/detai on [GitHub](https://github.com/c3nav/c3nav-android/releases) and on [F-Droid](https://f-droid.org/repository/browse/?fdid=de.c3nav.droid) . [![Play Store](https://developer.android.com/images/brand/en_app_rgb_wo_60.png)](https://play.google.com/store/apps/details?id=de.c3nav.droid) -[![Android app on FDroid](https://f-droid.org/wiki/images/c/c4/F-Droid-button_available-on.png)](https://f-droid.org/repository/browse/?fdid=de.c3nav.droid) +[![Android app on FDroid](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/Get_it_on_F-Droid_%28material_design%29.svg/190px-Get_it_on_F-Droid_%28material_design%29.svg.png)](https://f-droid.org/repository/browse/?fdid=de.c3nav.droid) +[![F-Droid repository](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/Get_it_on_F-Droid_%28material_design%29.svg/190px-Get_it_on_F-Droid_%28material_design%29.svg.png)](https://f-droid.c3nav.de/fdroid/repo/?fingerprint=C1EC2D062F67A43F87CCF95B8096630285E1B2577DC803A0826539DF6FB4C95D)