9A&2wsVgdU4k`#=@WPo5{j;QC1yf{4F zA;z2?B7e+-`X_&WdaErvcd@m{kgTZjwXqUG(tuhVk{(JQ>wsdY#-{6T?X*qq<(ZcE zUXw#Fj_W5MNh-u>v(Af|tvBo!HDutL%$E3hN`Dbno)i&s3-I{GTp~~x1}N%95k=MK z=}V1+KpDa9E7Y8gds;DP+z&W!Z}6J-=+xtL-)P%n zu+kYH9rKXREMl7mEyYFpuzO0qPz)teuyb*-6-)Ker|y3?F`N3@C<2z;&sg(W7$uVq zjyra}uwmQFAv EAovB!xS_97KELDbK6MZ?yT0?yStHLU=(*_g~7s&U{h zLix1Xu;)D1tEJA9^@C?+M{ZWDSct==eLmBfxUEumpJ!@83`C^qfqt~p%(%GOHSmi- zbdj2!H9_p9(GKZ+j&(qY6(NTyskC43#Yocz4~D#cFhPNc=PtQ&_2UnLuj+!*GUeKk zzwk^!E2_E-Il^;>mc>RgWdQKJ>UBrjsPRVz1T+YQ!kKULUAttW-8SWEC%V@O`%^2? z6^}z6&iLdp8HjWyW1W|f055233T^6HRXM)}vD^TFxlsKjVmf#{3 z0j+Byp-V#)RtSETBG|f%H+~I?pVp8uD<<7{N7NhO gsDsGAas51rdI@+g4=J9Ru=9!{x7GNyR;S+bHtD1h2VSMx88HYg2LD% znGp~T`*vDiMc?N!x~(DS?;_Y+XQguQ? 5; zP=@CfQ88yR-TS$2n{;u-ZlSLLPYd7_8$Rvy>nPk0 +W5?5Zw1p1BhPrR7e2z-9s;bDiY}x zs=*igMWo#5Zp!XmC#O}JU<8!u1tjuxrz?&B%l2_>`x|8%2Cq|p43vXMk8Q6qibC3H zv3jcl (A8T03w$He9iNXdbX!afBNu+ zqeeMS`*(Gf#z=i{k$OU9U2+j+Iv6iKQqy@QA)7e_*R!r#i8#IW6V!SpKM$ITHS+fZ za&DvgZB}T!^?86?=vz`A2_CO=zK}09bcR?_BYlw1zOg=bSzL?*#-U|++hbEDjk!4Z zxeaXs#b+w_sXIa4I_)va{`@5-;?nNo3Fonw93??3w<31$ GGLZ=Ps1-mp(v=I(l?`BtWv~Q{?#s#XQj9NN>SoKS)er5`yanOqE742 zRlIR4QD`hV|5FH#fzonNdQRGYJJBRI(y3alaJql3pXYepI4eLy-A&sGj6hge-`KUm zTW!2af0-M;eJRDjHlE4vdWJg3Be~CXr*RN=@llbLztfNRXL|d+%1X?r)-tafM;N*! zY=nY*G|%ZkLTZHLD1_n}+xx<%fcvjGGl3tw+#;o%gGvv96i#1#34gP%=-;2U;5}JA zoRh-7vBJT8aeZokg(dZ#b#f|=^u*cq@-O8i381j#a21M|j>RA#Cp00i>1^o7OS?F? z{)rzUj>cHRSw>cY&n~_33?#{5X<9W+>6Llm(A_pd5rFqKXY6J=KH#XL!?To|ZV# zUNtT|^5>lp><$p`7+d`wx)f>GFODS(Qsd$*NreT~*UWf}f&8k$hxt(=b7HG7K6uyl zM#tFYd&KKI4EhDTbb~0!58Ny xgrz$V#WBw;L7eEN3^02r|Xm}b%~;pN3 9Kh9d>4sW?SWSR*C(p7JSw!ad3>ox{GF=V zmji_S_@GvE%WcH#SF!)?{+J&S|1mAh&^h$HrEq${q``|>?7W}+c=1fv4WTDmnY_~0 ze9R?+>|FAqehp33TD`mTEpTu+IfWSJqj2`-h(YHo=MC`K@i#GkqIL!iFChUjY1R5e zmHYG=^QL9K9?I%2ZM2n5^_jwnmInWKa8c%V^9o&+!kK)ebD|TsqlQM8jdc7jX~LeS z+AMa4cDZL(db!77=JxaX8=~Ii%_8*r-iP%xTfj^h0Lf2{ Jp?m8M9REIXjoGVfBJ?k}a8Ud{CET<5c-zHK%~ES&$dpHYPmivXmuiK4XQ zq0(`#r)7NYtdZnaD=w8v)1Ze!O=-(dpS4k5^lxGx=;u?=l|kd@WTTv6)`R{@YT33K z{pvq$J@dB}Ix(jAx=xt;y`XT?11b;`RAbrMZQtwST>lroGFF{-1|vKXPxF-%v_hkG zAjJL#P_%dI@Fh*QWsT@*KoBf`#Tr-4$`K=8Us$|+ukiX` IQ% zAW4p?odD5$SOS4*auiYgN(EHmE2HAHIUcW}((L3jSMNmn3gZH5cSN3fAmet~cHUGL zQ7Rvfxwq4TL-)Up$9&jmK3}UBbKX6J8+KN(r{zU#S-6_q@}j0;>h)Edd0t@Gsz0)8 znSKl$JY^M68_jnlPNL|6^CF*mip^|hQIid3^CgwWH@2}w5CuCH?XYa?9D xI^^KWV(|EQ&&=0wo)rbzSw8SJI{d5fyvZh?-Qn@+mtt^(wE;AGw_(tZ1SyFh-t~ z|NQWg9xQW3 h2Q+lz$r1M%*D>jAoiUT4KU$_+!7=LS2x{ z iY>*;@P|mC3~k*|E4mGtHhc=`!0O0i5gDH z?$(VTkFB9_|E_isf%b=gL9=H3$VVQ$i7n;*XA>{sk7(^*#CaYlc~UDV>i$&Mn>rQC z^G;Us66cq_k7Sj$a|$)XNKdNd5u(}|gHBq(pT75w{FPc;E{x*UhhYLi+x=*U;QGvN zhTu}#ySb}NWfo#uII`^( vv|3K}W=KI&4J2N85$# z#k)q4>&6v!|5E vtI83De=_NN$95I%%r7R5eG^+OI=*bC%K#Cy894VM sIfpcd84vYAe_w dTPal}|wiy6go3&8;CBanSNqn@30%&wT$W|U7OR%+49C&?6YpXEk z&khT9e00;9>=0mUs|DGJN@PFhdT+w#*iGSy9NY1f{zYI5>FrhR!9DN#^A_}TX_k>c z<7f=})Oee5qCeZ{dT3#C&ln$*!9{rH+vsu|K#Kzx;O1@=Ih${Y1u9+VdGIRau!&?r zyA+ohlq{3^&8a%CrK!U>5}T+A+28{ ec+$bL@5zz!#~>&4;`$W7d}tj2ASuHq |$6?dXbGdqn z%%q)Rhx~!Juh+2n_qG?-xEq}}$jV!R7^hZ!0O~F7>QzQS8d#F%?P* N*E4uC7o zno^r|XtkOqanYC2%_{;f`a*2t)5ZhyH{1+7u^~G3GK k)LUy-%lp#0BAKNf zhd!qnv3KQv;I8@dxbu=e_4tSm)dhgvcYz0k#G#QwhV$^)b+ke6XSpmSZ7aM?!w}P! z2AaQPt;vLEY1ln;w2({m`juuE&;_Puw0*dX$L&gunVHgyISvW2nJopCrc0{{Mt-iQ zi=}uV^_xek+k&)3LfGO8j)~@2qs4Vor23+2^Q_R*qeT?chs&dD5=7n!ez54TLY%r> zhC->Ezf^s?lnnms>{Z;E4hd ^$fYa Nb4#b%w z;C)9{UJcR8NQHN@%b4wm7=fo?&&$u$cd-LsPlGzvi0a`&GKB^d!g&f@fpDYpw`*^X zRsJA6tNV)LHzMbRDgwfX)BPy|owiN$2*II_UC(_oQ7;@IIuU}d>K8f@wQgLZlzW&$ zk4-DYNYP5^EnR*0lHA(S51Ob^!1lfLd6+%j?)$H6>1pxvf1oT@=)cP)>L 3g7o=-*N2G&08WR=N-J=R;VkF=}5B8?0%C!w$5n40>(1q z228#}`!(mzAwv6ZDtj#;xVvtf#M@}p$Kzd>G-yz|w2UruxN`&XuX_N6IN9Z~2h~>B zi#q>|g%5eNS}YAAJ>&P{IrZXVvy{@H2vi|OknYCVrEgc9^{Ib%%Vy>1^rbUL6`mU{ zFx6-9d#s-JtZ(Pa!PWxvg9{xL)l{aGoun>pV{U!|@%ZbLnbzxx$_MJM-j4~fdPn&- z$-8WpMt edyJX-8vyTrEB#wA^}CerqyTx6R)@|aoYV>>ol_Akm4AVP;~&u4E) zOg0O)3hbTbW7$ $?zW!>Xy;s(Mv?BA(`_SICk(*WyIkMmbn z?(Wb?godG!G~ZZ9a$10v+(1C|CP@0Ez%lj>Xn$RfL#;K(S9REb%AV0!uFNSlj*ZIi zlTkROVA+U;WPe~J%nDfwl8eg=TG7qhT-2n8c;{`nZU)byovX!Y@!gwUrvbnHlJ -n&jIyed2TB&ySy~$kLk3-lv~cKP!`4 zG>bK9PbEuX=~)UkAIXo8F7pJH6g_eRzgO}ff=ld?`zTPn4w80w>Qa-29$7W*gj3@0 zt7ECRCAV%CWm)ldb*C2?i-Wu*Tet%}RJ=#pL8l5>{lpT9M fQW7NRKSQ8!XJbAsEA>TB1y$xLK#gt*Ef 8uZSnLKiL^?YJw^|JYoNWuCfhv(;Fr+mTODr%yHG)>Vb>bWv488pNC*I4MJ&az%X za(NZ&)aUK4xW~-O1Ru5jWBx6V_V<&1KVKvx)o)*+1>XI1cyR3;$s*a2sc=leQC4~C z_0F>#DVJK{mgV3n3Q9g3${I}`3}jCE`*o*Q>APUUp$*D`e0_J@MuIP(Y~;BPTFz-r z@hsf0KWocd8c5pcN-%Zdy$CASW>%2yMY;RA_Gg`=Y>OrBjD1%b1+Y`w7xq$nfDn{a zQ)Aa2CGvi&yQ%Q{^gY2l1b%wDE^ TEN`gg{P;yjV9EIO5 zfOrR_pOy*x4HnrY9a_-8 tRE_sxTfN&snH1a+ZvD%~yKtF;Bg~TwojYw)V~S$?9|Z6DNM$zieD}#) zGTX7~7`*Gj_WOoV0g*1!n;r6mU5LTM`?2k*gT_0<{6$f?rjUq1?PG5#DX9c88jmz~ z9Un>06!GK{;@hOHV@ED(TK$R0&((gO=Z<=uY6LyzJ8xBP9GSqvgKR3=E3T$9!o_H> zR%_OSA(lYO)SqO3q@@Jkkg=D*TljSXQ6wc5i<>FzO@F7ragK&lg&4%f0!15`ylcmn z125SL=UNCBUP6E1iNj{FMq*h3`fYlInE3rfFFcj|TNF-Pu4Wk2=6}gp)T_gc$A6AH zR$#-!6ph+2Hmf{@msw|*OJx24g70d>r|lf0>-rCNIpfOmmfiiWf2s4_xD++?EVg#= z1gXm%OkH4Hay`1; V?C*s=fk(m(bmf>Ym{Jz^ C(hGf9uKf;-`OmALj2!UJqTHNiLwtBR<`@R(0rb$>Y}UHU(#ZC1%%cOyrnUsGsB zr-6tQ3D5VyLxh-4YP{H4Vfrf*Oun;~z0dt)oVqwyW@3W)&@7x@Wls58f44tE c ziKB%J9te p$WnC(jzwmE=<+R^2Pe~7put?hHCw}!Mbkw z(XG*6zB(L7**pnW3Q*777OZ9Zu%dJ4cA49;%N6QdeZ4V@6!Ti^H00};GbwE=8i`>8 ziqXa2qQjhSS~QoW8W~6ew!|fLKt+4^n+EV%4H&JsoN7fAKvi(?Gp^q)6nM!V>5!F^ zlX%Hv$f-ST_i lF5LK|1aT19)7q5Z7sNq^;|UmlpLH;D;E1#aam{utuKY z`PdY0SaK9@Ea04A e gRdm2kL5Esawqajpqc$U7+|*YtXb|&~)6R zisNghB6`0Yy)+qEz@@ENw~Q7cY)a>Y{`T$fkTg(GPRiR@nKqves*%;zH&l&}ECEKM zt)*{z)c#3(?D%-4!pwg|I$7hsk!6mUU_?v~K^NsHgHzti0_4h?FA>X|5SQR=IzQ2g z{^&hz9Ish(l)=ofV~>-->YY T7*O`3wGEZ6fnUigbJOro$r^8r;>f|dm#1{7cxIU9b08}p zDMIh~R9k`|$KMjNa;g&lzSpE$wy;7ST2EG{hW)$+t~7Cq-8)pWGWfpyWpm&AM&(eY z%`1~t2$}aB*r5*J@Pm|E)auW8VkU`1_s3r13Xjc(MM+S#2rcwLn>zG4p-MMWktOGh z15 HYRq5hnr0omRYl!0 #f$dc)z8ylHd34E=yGU8A$ (-U#O2os{4%cr9F7hryQRXKj=N;8kiUOUIf@H@w^4}W* zg#%Ba1C$PAZ>N}0j?_B%^ >#v7BBN5WT)F{K@cbBD^{*d zi+5D=g3GNxEcTuae*^Jxw~ZF)Mv6HAkUpdJL(%t3aOrzJVx~V_US75*|Egl#!J5|U zeV28@P!)W%sKEA#!X-ZoVmorMynipKiFkc|?{KKZTTz|#K>=84=b0#64YGg+JF>R> zz;L{VMI~z@=bLoig{cqME}2cWHToJCQ9Sm+m0a8PAU3Ur7ZCPqCg@x#V>uhwLMEWT z$Wkg+28+AmXv#7HT2!*$w27n7DXr$Mu^t^9Z`}P*$0Q%wq%S?t>H^0CTh4src-mG< zI0f7XdjZZBPWiB-;DXDq)58{3NMTK`Ahe(OPXc=DY`Ic((sC``Q|$~^N1u~=&1Ke( z(pS%c9+#s)Wk)4m7HH*Fl U?hAL&$4hF-OaYzBygB zfpbDy>GzC-gG}Do1m*K8_y7qr9{9yvH6f6T8;^EpBtu<*$i4VeGgc=gyqk`#PW$(5 zuU8b7_c6oKPn${|YXW}A>|GUhN@L==8Ldq5WKQYnJxs;b1H0T(H>E>%=bqNVE~6Yg zkhJJpH5Ed)>MYT^OV5Q+ *U}4my($g{&XqAwh|s0zEW^nnYBxz0YiZ9%%Jz=a|%f%Vzzz zBvo44VTea=ve4Myy3vZUb%y bte+D3K*ow$dETH@(_A{?s z29mm9{t~DCe3n?2D? J%WB)QpBB7 zp{HNbU&-67yKdaf4{l4|7uMFS*MdNHifEAmE!~Plx6c{+Qdw+tmaGCwmwTIpamcUI zM1@H4K@w75@3ABwOO9ZhY |+BHXapXM^5V>iKh9 gO%2tEwMsd(}UUm--Dxcg!1d8b%MLMqf7B_L+!$L zf3#J>eQY~cAgWYQDi6f}GfL~mF4PW-dIEDSuN1s&0ndJI0<6r-eev>-Bead0+6lQY zNtC@?J8Lr8Oq{%b0GrJy0{vb;G?_|Uj-wFEXV4J>vFS${aZ&S)xlsFqEsMk93pW({ z>lY^Lk1n}V7mb%|S3}v4Ze(yN5mn|C`zB)f-N>6~&=OQGRruB01_TNrU~zCC!x_o# zm%5)E6i#XJ$d#fw+L3cCo+e+3ecfL?9(P3vKB^j`Jx{#)ahlzW1(*Y2uhQ=OKFRR$ zT6S+*IiOsp$OP;FDIWF`=LV?$_*t3?-*m-iS*#qU2HbGU0IuqThP)^8>#4>cSs1P@ z_))@nPl1BT+)kKuQT$VH74qlEawoAUS-l(EvpmU;tEQ8GIlhVg9Zgepi6rnER+Lz$ z4!r3T!XMegufyWE9Y0v=%|%+8BfilKr`KyjBsBkXx}{r5ld;9F>bD$zq4R$VF?}eD zEFf>IV@`fx>RhuL*~Di5l9{^m3aD;UHN*1HqiZaZI>V0s6u}Pz&F9Y{*X)WY{EDSB z=mq85WZgGn*g-U>Za&k*@8G%@ -(ZLgBf4yM8GMo#M_0g3T?$qgWPyYa6m?6YF0EA`{CIUT(=n nk+%ll_mEvWqSdh0pe-HfHo`LFHSX=-H#V3eE zi&jjGM$z7$XqI{1o8dJdY0?&yYOXq*+${nJMF>x!)5qq8L59XMixtcX!JVSZmHs4& z4&hyAf5`)E%w&3JL-E@yUIELSNhSAo%!_xe?J};L`T3 oOHd;KSIAk0@SZ) zsAmA2&FRY^jlOx0l0B=X @K;?RE^&$uLjoTZ&Q_xDtv5=eQe6~7i#Gpfj;L39b705n6;sacaZuvb*q$5**D_I z&qx;Wy^MTrdv!_I5j!kJNoq|*Us`+!lGkj80>R+H{+H50ju}Hmv6R8%ht?G<&kSHu zuxN%OA!%T^G~~#?mH{nD4%sJQZ%Av!^5slh{#gQfb0rZUkM*&0p6GZB4alM9P_unz zA`ZaA3oKo?w8$(o@Yqu>#`bTxY^4THTjUQ%Akv)yL&xOHV>BQ*0%7SU?0XgRC`7a% zB~9g&mA#&?+kmH!m+{=8OEw*|+C+bdKFcIUN#IQ^3W?$Bft_GFi8FkyG=2oIxeWK{ z=;WoIoqNQd;)X1}5}{(}eHw6z+XBC#f}NspvLrjKh6LZVV|P#-NJ3H@cn54bdnnk6 z*v{*kQ=NiaZnfi*L!|;>2l_^{}Sq9T&i`0yL}hLw G4b?Mb%c!q1&Wt zAT;+SYN{wS=4F_zN-V{1qtTSthvLLGHQMNQx05B%a7g~S%$B%caMS1aAYG@CPiv^h zf=$(u_Ut#{Vn_9vqnI>lQa`_8*t~!MXX^Yjf+(B?{)6fSluwFZ&4xk>miJ3#Hhqmn zmc)VFvf1kXBmFVW)_aYuoVUEeqJNOPOYoa3Sp$t&G6v#P6C1BTw++=D-212Z)j zkuVOL1{Bi`Y%Qd34S9^%Ps#Coei((Be!Q!#-c*eEA_8gpJubHOn^h_vzI;0?<5JMb z%QH7Vf3CM1jhoVO+)EN4sE|x?1L0lHK&Xwf-N}6Oz*YGotBX78jl%ebDv5zC9*rY8 zUHpq90MB=vzhwz (e%3$u; z&eo5L$N!8R&EhEw0c-UF);Jy^Ngx9_a}=E%+LN>&lsoF#&7#R9ll`qj**@nkm9Z6p zqtHGEdl|b+M2gEwFE$JAt=0${=f62P?Z}KDq^Z(0TUWE)-{$cG4CVAv9mh!au^E4$ zl4N8V#5Jr3dp+cpL+^bqC!4&ofRyXIR<3iERAlo@maepwCi{U9;`C@$=#Ma@dMf}C zgsT^jvy*)l{%e(u?O5U)+@2AXd&j_|Vy=fsKSk-CPIKShl=LvQw2Y*_3zrFbgD+4b z_V0yV&Me8LC#ylW#qUg>B8Y6?-n_rYwNl6AFFPe`QMq4Qu(I}}+Rt|Mj$_`H%2gX8 zlaGe09NIM!GyS57c%KPCp$kHO>qRe5vjUz-1z-s)ffO*dQT2%UlQ>i~e&_!Erg#Xf z%TfcbPCZY-o-(|);e7~dbA2N`lbQ7gyMK -K3icdvR@7ISKP3UGVY~Cl z*gKA=c*W@f?l^~3C6>GxWTf5-Koa=99yAC56RG*1Iatc>-Q&wbLOZuzCJJ8Y(OAMF z-1GJJ`xZ-mp7dnMQKVUZkSd#wDtFLc!uV2hP~bT_vd>)op(QQh&jcNy0u_cyt=KMn zuIT^uCbeVr@|f-Fnc;9nP;T9Imdj17{gojDBtaIs4^FOGmyw#aZRx!rjsKfYL<4%^ z jNL-J`Kb?S^{>j_^RCOSboi0wO z#FuiQ13IKw4UCn3(@Sad={~N?0K!?YfghdBTL3lS)GpucCppvuRQw#iNo0HB02K}9 zBoUB%9s3(F227;vh&&LIwjt|9a6=4NkN<&oLLYS!*gV^LMeRmU8&LbYZ+~jfE@anT zecSu1*w*H#ZAYHJzCMj5L*~h0n*4)iVf8TdD{lYX-pJzR&2xcnptgcv!sOcgBO?AM zI+!MN73I|erEew>%vS6nN!Tx-7zhgMpqtX2*pH{GPZ&2qLjSAbZf>b;i7;5yD+Q0B zsgsK!s1>!d>=CscS=^@b1{fOBUMGx?i@ z=@Cgf@eGiCL06~sYE*|Q!48cS* zB^fVPbg%C*d x6QyZLFH(hhM{4iYcM32^(YX=vl1z-A?5V>x9cgJ=gu|Q`WQ| zY%ah1NIk_zH^yEy*^=J9mqfQmpIH2~e>|tIevJAb@jvqTQQIcuq}B;8Kz7d#qPY&c zvHeU#PIXrY2b@(UlUxT@qX+s`Wnb1(nW}nA7MyyEY;rb{=Dq*R6AW!{9TEGLE5l+V zVYC;aj)EXUS@oSoM)6tv*t{=r@akRp)4k@E2NHqB3bp_C&$bm*%_5r{`kTz1)5o57 z`ir!adlXi1rgPLii{|BP3F0@kly|u#8It$v-|*ARGtj9Y`#Ovd`r+CxUb}!gix~vn zqt;Y*`!wU~9H)i>Gw6{$#l~w+{hV^hu{Bl;u%;Z75*t7-lCB~GTncK^u=S|{ZR7l} zf~w$jBPKcKb{{#ZXj>1xv5Z>7sDg8T6 w-kh)Zn1O2? zNhmZ)B~W@I)x3C;^QG0H1#P^Nm=h(yujQ0JEJ6T0U{D7O1BC!)&G_Gw^>bIf ~t#O>K zrVRaT;Ay`AZBVcW01g$IQ>oWCr!+aNHjxL^j0V6?h-0AkBH%Zz&Qu2w!#-a2`lQMq zKN$J^#zIg2p}Yi|UvyR*goDGwqAkfWfIZ*O+I1hBtI=pymdF3Olj|mnMMlC7>-1QN zv&(e`3!DS!0tE+b0n$(<+qp@*KTzsmDt&3aEEH{3xe6Hm{Ss(Kju$9ei`D9h6BVI! zyQ|VwnvK_R4T@X+aB5A);P4U!SKaj%dg>it_IN;vKhQuX^Mc^lLdOxL=B7EwYGSfG z$a`XCT6E+ok+}@#&n4OEdWp`b9 CdP7_dOQfO#W|4Xc=u6^+-~NGW zk`~CBFIRggZPOJpyK3~U$!tRhC)wf7EOb})^tF#k>^%deS`{bLMJk+ISxpl+1LV&_ zY#?v>za*!I{h$PDs!cpVRl{1?gSIz@m+AndPSp8<*lbpx6bo$r$(VwGUpq1`vQKx6 zK>v}?1%d#DMy0w@BnzO1QLkuKPW#SpzD7p3G+8XOie4>@`L;}(7kADAF8}2>8qyv& znMo%ZU|4&KqRZHG_p{r4g%7^l(h6nTn>S@8M&1A5=5B}nRa+HAd>6B`fbkq#78WWT zKbD^X;iM@&1>Zhw7Lf99bf3P9w{?4`JsjQL8;*NMSdjd3;<8H9iFjt+R$I4GySox8 z0iB 7#Vw00?vZK7(*eon&jdi6f+XeJf_G~99%ho5e+OaP)e7!lYOM#eRX za2Msq8Wkb7H@VNgqlun9Xvgm&K?uEj$lY&FTsFHws&`>$YCGORpc=H{oFIt97bd!D zU=;Y{-QP!pRz*QSlFuBm4}kyz5WMhQQVoFCG`fibUG7M0JxGU+eK-Fez@jUYMKcy7 zs<&UmuRa{mA2UB!aKdit{F6uw7A604>MabYPu|Soq|2yWHxU;6D{eK-XY^=mT9m35 z?9|o!BJhU>>I(KcD{V`5ch9C&@qh+Ocj)fI;f+idAqGZOv*;D$+6BRgY1RXe@?e^@ z?CMOAQCUoof8*kn^0f@Fc$T;jk{Z0>DR1ZWOa@LGTBEfiIi+kyPp_qMSE5Kij)_98 z>E5Qa*J6M$Tu^_fDf#}KK-0?z?tt8QIi5AY(}F=Z#mUx&^KSCu11>_j^ml=!xD67} zzR|P0(0TFA;w(QUDRkr^caz>=cEpSCVwk<#$yWnU9#WUNftDEJk*4riJxtSi+c&og ztib0^*Utjk>!Q%3qq-6x;Aw-zy1@63n(gO;6m8H~hXb~J|9{FP8NOSef`)6Rc#iBf zH@ _ZYLAl1$dm4 C(roNJ}N!)Zvf>ia4; z%KBc>0$Ose-M4{~ModS^akvod!t-;xRddkjSfdo#3abf(5ugx8;n~gQL5029HRpSW zw7r?MdC26vyq)7a7w7RtmVp%SUF`L!u1+$L!V~p&ZKD~eBl^1aQZBwe 6b_bfg+eFS}xAm~_MfXLzV*`5!Ke-H1=*^bV%qh8%Or`sF^ z%D`fFDZzsu7Iz$KZQYpo%M(N)uJP)rgph~;)`}{&Ne#bU7a(OcKhxV2nBH>%#4@pu z)8j6F0G@1tqfuKu4a|Xh`XKGOCCS_%Re_kL1^f^wEX)NNZL-l=Q>zvq7Qd5~&S$=b zF`a8{YPomAN9hp%`{w#JARQ1(qy}54Lc_biWT7V|PeDh3n~cxT-Uo%wtv8WXFZET` zpR77=vcg|wzOftv%&V}#SWx3u@n? &o*zP?30f#OOBO6twf$EH|VX zNVjKYEbkq06Y3AQ{6>)H7AjV6gSrZbHS=}vS@EvqnlzdEEL^!5277h*-#f_l@gsc@ zaJ=C2l?WbuY^4zYFpfzS>Xw3ril*L#gF5ZxkDBXzboWlYJjMJl9RzYa+Tvbd>m9S@ zy8J{rvb&S&qqB)%z?>-|4@`p4L+E8Vy47ubx3?uOCflbl11GIA8_67w7kn%D z^?;N;vzWFOe7b^q$|++!Jy+lAAxL#2dXkSr?}It+_YqNtuQd|ls&8jplA3t7Oc*}z zm&Se%RuT*z#5^4IMg7X(QAY@L^2!6to;Az&wWumbw@&ybTDs`M48`w}E%GWvT-KIn zhM8Qa4ESFqRRUpZ67TF(Pq@^o+T_i3B1gThbocsv5RxUOzh~J6Q0=5xX9YcaKDq4A zv@tD>- rclTZ~$HD z0ymV;&!r Qgt$c+3Bhh*q8f?;3VL-fhGU6D z$lfGAX#&QKemfu${l@M$s;OT9)CE!TD#yG(kJ@)Yaag`AVi|YNYQpE2s1KOAQjLs1 zX9f*>kj%$v)4xFDm*5MT75;?`Z_H#82TZ(oSy*k|mhSw F-(cj=gV0KmR3$d%w%{%&yT1 zu(v@7OBsCOJYTTKBFDgY-7}dM0_pia*osZ0{zIaT36al>V}g@@|2{6lu&R8|;05xA z_7q{9YEjhRERM+kF 2P&qI>x;hg zbgYCl@|9+2;Aj_Tu?);GuSVWnzzC=bJ-GLYyFrj@gbsXrPSF804l8!>;0^It1U@kP zFtEXmwEN<|@17RZ(is8vq%3eqAFJ}c+&y2P;r@PB)F#FF~gY6!K>4fQWla zRB4V)L5E6u$-tm1UvjpB@uGR0>6a$9bu8OY2Dp&nGsrhAYiz(-kL5fA=!H<@A(cKh zd#4>qM{NM*RipjAHy$IYjB{25dno2Wa;Yeey>H{~EOIcrOV*-&-|J3EShtB)`%}ep zRhVCY5QQC7+{KRMXN~okyRR%O^L;jdus+ ?KMP#!FTncz6q6hOPjG2vBQTs91lk@MVh$lSR@-ll 8RU38Bxa#^ab%VhSjl0S>s1JztVqix~rOvA`iAusOAzh9f`a5SJJ;**>`$!0a<9) z>Z4Dj$Bvchd^_}h`jXrSD%bPds{zc~+^0B~wI{O;zL!%y&fNa=AAi~c@3W9ZAr?Nm zqB$#ue$tJX+9jQUFZHB9Pq339YS;tK`jgX4!Gt50uT^Ih?a%$Y8VFQ*)UybHJ$*k; zBOwjXllr%0D3e`Ry|)X}1Q0;na_#Yb-(jt&ul8jCp|*Z(L-2D`c%~)=nW|{8e9c^E zfA$zPuc3Z*TfLFhN^AaFoXO(*U2<9|2)}dyqQTD&f3rEgj(Pq1#dhNqL{G`X2+%!i z`)MupZDH!=9P-!xi?4P{!Gk;g5 WbV z<&|q`YeGub8A6B$^iM`eXDeLIcZY${3MadF|F4ap;3u)ZSwW_gE$ULA8xO-pi)~Ns zD(UHJN=sA-*dsSj-_@oEyeb8eRjW%e&iB`0_(++xXYplwm<4JV5FM=Az3dq^KLHED zfH9AH3DuNcj-SIhw5bIxz8zkSF8}d^)+KZ;_G^GNP%}Qi>N~ zZ+djcsi*6IzdICHzkEeonRT(GU@rgs-P+H0_RsZzHg}&TKgS!c<}t@!aM(Vr!Z0wp zJ8HCz&%^-}-g`gJc=3W1S&s?GB}||TP6p~SM=F*|x8PN+{R}_%0M>)NS3onPH-+;) z!N#xlFD$}4_jvKH`6kk)18Ms{bFlQO5sxmJv)ErEG;$fJTv9%HImwO3o_Cma1ijC2 z2O6&@jQ+D!g 6_1Wkl7JjWbY*1=_l3Tu}LZLOmml}+KeZSSXtD~qosnH~t+ z-DxGVmw>)jCzXMqBL|=GJSSgpfm4^(q5udlc#w2z=sDa=6IQQm`=)0>!%>-Lv5sH{ z|KmCKEtF2K-a+UO8hpP{89|k2jAO9w?uVN(w-5Y-qaJJuQcvztL*JpL-oJbt{MqL& zKJ4<y)Zr3u$2Fzl|HfIH$0J@XjFBAH){a zt17GqPN!|TJSiORfSa_g`gn6@qYywCzg532pmgRhtZ?MUa+W+zTJS+g1dXcIJV@P& zqL#B5F;(!o=>& nAg=4PE-)S3c&?@B1l-WoW)1SMYcJML#1|dOVczYGFO{~T@)CJ= zy$*TR9SQih04CPp$tfTLK!Hlq@yS`O*EhJdZw7-NkEPGt>1VNTuCCp23 91_? zWd#G9)w1 -bQS(==FH?3&vjnGeg6O;xdV;T7c$V2?Z^c@K45f@sdr1n z=`IjKQpuc`>hQ!Oj=0{l@;7FYSE8R9ZGZGV|4V?QMIm9-k=vjA#}9P2WQVVGOs46u zAkQW6Q&KCbR~E2rpxFik(k$_)--G8O=_Kg1@hR&MV7f!NdKI?BY~`NoVYPYhN>UBz zgf*XPE7_WU)y-KQnfs}rkon=ZHuD8xM9HXI+q0&k_iPG6r-dtQFZ`2?xS%d&c&SOD z2|rCg`TLl8&Rt4;NJ-4kT*k{|C$-bks)D-*YdrQ=RpnLt(f1Esa*e8Fp4`b $gYlc3;L}bADc@{|6^jt84 zFm=3D2lPG<)fKtIW!%9rb*1SYGTC!e&Qv*(L_E!+&ZJ|E-tF{A#;P5vl!N9yhs01D zT$U?sjs!JE$?8!R<7MyCsZmR1KN1cyqTT;k6J=}WWeKuQG~!_#Ycnb#b4T#cv28Ef z#@g;kZB#dvVuqXa-dueqW;dEk?zClU@C@*KPeM_HgXh7mp2 y*-ejd 2@+?Qp#HMM+^0Hv`(=;9N!@2@dqipERThP}e54t(Nu zYTQD;ZSY5{GiSOO`0f!P|B!j4U%Wh&mI?EHRe-o2+#CP~($mEl(h-v&6Tq(Ak&%GQ z`S?IT^0JDb7#{2#@H2I>DNx%6xoCyGH~%?@k&7oBn~(ozur%Vl>o-mG?@5S!-v7uR zKd&i@H{qr2jgYW%7GYS^FhS*5y58HI%qECu`vHCW>SMA%(nI;>1|E+K?N7et)5 `x3lVHbcms*7E z11DWAuZ5}x-@gTmYV3pntR$9FK8ExVhbe7P%02ib;ALV$`wy|^wt_WPI5mNKVnzQ# zavN=DVIHbnyP`;)m-b21Pg;&Iu427+iE-a)@i0BJ1v(i#kEH&GaMC6l8Pv%vij?Kf zRQyRHbV#tM8@5}1vSyFx6mp7`#ch79F=!YhzS!bw%R=d2&4Uh+sY`Kga&0&E4MXO! zq6n1gJTc!svwP-TWgpGbW51Zpj(#=Fpq^(8^S)KYfmPj5nJ*Pob8Xl=WHTZAbm8LC zulGmrARmQ)uQec*s7i*7TzK)r^g?p|0zIudyDC*w9;WG$?D?0a2tjXi3*LU#^31d4 z1E <`u1WO@gA4yNtZt8xf82ys-9oqj_w57ojv2*%HSWGj(SKjQe2&iBe1SV> z!%SV6Zm t}F2W4Z5+G93@wGRahP#;87`RH}bx dXCfJ)?cr^%c8IVTMB)C!^o*O7<;BRXe@LW&^PsM!JnT z9eYgb24Jt5 3aa@Pf8~YEZKKTlIjrhKf=XQGDYkPER>` zxOz5NOObDpXrO!Aaj;#CH{@M8X2VY9^yGA6+Z7I@8vVrA;3& z*WSZ2*}-F-vs^=R(wGvSPcickI6M5yeevMlc+xfgWy8Y5?tOZ(>aECUVwgX0_50w* z?>4q(NJ)%n@A+c-`t%E)hYSDCe_C;idr+R)Qp@{SxA{N%4gJP@mS@`e>7VP0!!Tm~ zG-7>c1dm$<0aqwZK*r0NePDO2$BmVy&ofmB^dF4h{Ee|@w;*Rp!!<(!V8(Dp7%3(K zH! X#QUCf-04QPev+_Zm)M&f1xsJbTYsY+_1)1&FHX@`Kc#l zMLi8mkE( GUVE8n-;&K8p zp?5GYP{=;N?NZE2yt^V!d=bA_m_%e3Pr_WWW{2^yz=RAl9GcH6P?PH1!@tjwa8ub; zhZ|Bl@yn$y+Z(h>_9tsJ`i@d5iha7m5ZIy?+ux+&`T9#gQ#$qp#f4a4m;DnFdBAQz zM!#;snJt=|vQIs)2+yn<|HWaC9#>5ojd@(0N CU@x) zpI#&U3^rIIpY6agsW%w|A|6-vscFJCIGhii w?MbQIH*M^#ki*~Bc$Hccv2z~Dq_k7Hz7yN;aa`(NU`+ioyhn5d zPIXIg;@W;E&dQoOFDB>f!WnD?q^dxbwE(UZ%Zp=oa7w{TRx%WfIdHBBT+rX?(azSa z8+SQHCjozfmLrV*k${U|Wr4j0k1kf%n?ad!ec@5~Ri945t#c!;?|H^4gr%z4n*-G_ zvh3Icc4+Gk?)1$3NBke8V$<*UoV_eOjm=X-2V=iv;fURyn(3}*V)zl~4xFGm9NgoL z-2zz_=tFP x zXO9`ZP?=7_ICL8|h^b? z!NQ3B@q5OD}NckDdQ#;))mpOko?!=RP&V5 zuSAS2G~GJ~gBG-f4toAovTqn#Vzd4}lg{@~C3XIK594NMg#8j4rixN~Y+S<$0q^W5 zj?qgvT)X`#U2Z;ZCBAsJ!JCXK`LvmW^9P 9m+^94s`N4nw<0knN`}jLJj8r)YbDak1?9Iv>J{haQ+QN2qgeSZ!JSqP;n zx65;Psa0eAXOye^2ZGc5i85Rn-+|xFB$~i_akJTB{Q_lBCQ*gE)%AB=`h0lV-)Cm0 z6I-A~)^5AGza3;sB?GmS;YIBXmPj`OdF(q#z$g8RSgRMD=hQul#nH-`1BT2vFc#LZ zZX|+dL>_9Y_gZx2Y@j*R|H_=4x%4)Ez=2jRSP+DkK3?^cfSpUpKM0zY%wZU)b_$=5 zDnXj9RYzZ~b8M1DoUC!cr*7!OL}8(?=`d;{ReS0DSc>daI%}8>>{8!>&547aT05b~ zQr>NU#L}+bW6ysjQLJ~IJ(atMA!O<6n4+Oe1cO_S8_&<6@t7r;2a~0quqb}@6fk4^ zoQ$wT&2F=~A3Kq}1|_~)as%Z@R_5<+joohBP8d|}SXe6j9WTmdXziwZ(fW}b2YSKN ziq5dUIU)(lLzuM}CK&83X1ZULfa}>R5+XhTZSOwVcZWBdq4$Aa F72d6kR1eHX4ziN$;?edE+Q?x3%_8 z)DN?jGav*mxof*{CFuf+CsPYd=|L6=D;Nd+D^9gr{HJM;dd1*5<}gN+(z%|9 >rN!P-1mf{bLJrSR3uLSAgM=N rO+*P<~ zkLklkf@iW9VZ&`J8&cILim%$n6u4GDPC)cnI_qBSS_l5Vh@ms|hAmeneceB*9SClD zYWRdi?KV%y!xx>wcmfDD%eOKFblcD^vf^!x5%j>pn9vVyyq@GSkqcB*yAfHXObj3G zI?ah!3nVm;oZ{i1@Y7CLdUA(*WKOH_?=#ie+S8BNT4xE1l^w5!85iMT(9?*9{)RJA z(3({l0*#F*6v)4D@~_)f?|I}!B!LLr8Op|~S kc!W!xmB))qa2V@7l_v!xQNX8HGBqP*~ zvS673)vmPTl|KnYCbTqX#fMgEo4Z$zdK6SR7q>sBL{0y~0B$x;zr@$+JV{;{zACWQ zEDPUMTLQNw0d5Nu(1lAO6$^c2>;({l8!87Z0zPS>F9jVJffGrh@2(z-@DWgKDzk|i zQd$)9P~_=$c38U{(wm4e*a*1Neva+%2TbV}T)pA;aoX=;syr+D?E~1ix5h&bAKABa zN02idzx!zpJ{9<4+rF;wqE}9IiL3hEE>AeS-7X>g{yo*9n?O%W)ktr-rKTX%dop1{ zIBT*|@K0KcOA9*Zkjejp($B~u$=B+%zUpON278a#(sUk=y)pul1BSQ7TBiN`kHLjo=wU3 zEduZXzGI~zX4$y|5?DUD94^OQusQG2O`<;_7F6xSAJ@*5Wz*N0Qsall2R|Ru9{e}! z-RNjV_uuqcelX28ci`$_+9Vw^%B}_4brY)|{twcXSN43Y62tBW!sm}yjTKz1nL fx@(23pJN^yME!s!I1V?rOaj~nZlYoe5b?6^ z@8Y}#6h$cDGGH~;s!2)Ckcurhp@k&+(J8YYrtMP8*BX<->mFJJ$c2yAX8R<|k7M6& z>0*@8YuPpHjS56!q7z-3J#k)}vy9eoRk_zyd&0lwevwf1!bhCPTo_l#niAI-GI;tL z{Krc=Oh^g*Oh#=}1_kGMtc)4Dqa#$Sl{eOK`nLSB (o>3CYm+4g{OvjG?yPUSX$glC}!%t%?+Dv=}7uW`t4-k*&`6V>v5;wUi#ab>xYPP zf&2=j=!9!I<3jiFGzmE$KI_^?yrbLLqhIpWNUk7M&LOMqL5`-fo7C|zGA<88l=qGU z_jUd0I|MYZB1ZmA)Gv94Dq|SXi}F*vC&~Q3XPnUxP~K;X8c5oW7; zMKPZC|6=Jfbu98r2Z$~t>~Ps8zbrLR6r!rL8^huS6}YoFN%yV5?w6-mp5P_Wji~Om zh3u34JtOgxFT|=tYuTV31!|80jq(QEqmGZhXIGCwNr5%pg-7`x;Hrr{5y+quj4&k! zy+*Ag0Oge(k%1rY_xd!KnVfijQ&o!R>of`%EjzkqgkkvbcOs@ ;P< tU?b`kMa9gpu?5o)fJ^36PelvS~9`9=&}G91^|L z$9`~@Y!^PNp8uE0R?0Z;c7(aO=XJi(YkcR8@O*Po6m$6Nz4Lg!Y4@hQ@s86S0=k3` zy!&e{E<@wU_K4zJ$=;1+RSCkW=A5*uKQ0hk1Ufq_1y;jX65!jesL`zC)){jUS6D(2 z3_&L#kX04Qf=joIvSC6HIAdB3r@*TjknyZmMuV=DvtKDw_)eUkgHtMg3^m4CB71gr z=Vi0f?eAVjzS+5N =X_oviY}pV88i9kkt1&=MG4kDX*QCrAj-R{^rnJ8^2>3NKJn^5`{&`(&EOlw z23b`ldp4ib5SF~yb%k)MC)sWzV^&Ktl6}?XoN5CQrcjd90+~cPRAcBcliuV _3T4^L_s}fV@urqkny` zLsK433nqk*p))=ZK}>Emafh5;Yz*rik4-xlsw`Bu%u~s5)n6&|8gWd%na7P>d}L5L zS<=so;wxlRJiEEXs)L<=A7qh*ZQW4U6u}U2Q@Z4AA{gQzR#~xuPe>k~{@~2Ben+m1 z$1TuLJ?2P5m5?%tdZLRJUD(6$NR@X)gVWab0P~HLeJM*Msb%+o{|d&c^(10E{Bs#5 zwjc7*9GIaZrH8L2>Y;O7-88RYU5qr05CA=CMpyrPA1gxb!-6#y3`2Zb@K(?HN^qH| zfRZgEG^!|~nPYR9J5vsl6;8AqajFv--UCE|s4Pz72EO>6W_86iq`$(acpeb`?7x+U z*S;fK$~RPXyjLs5fMcV|0^5%RhCA}P`H&Kqaeu9ecm&EqhrG~tGGT_(vtwq^iEde# zxYY*E$U_jnA!|5=u 1s%rL8#k z&6a~`nigCgdacG!GT{1c{^v*J^B7x>#5hd)ZSo$21l-A*2OO9Xd5W!>NIwl*moR>i zWegtFV_hWN94gxY;0ZpCM3mMt{4R>$_eOki5L0jXVW~E_@wJv2eU!l+65G8I)s@X| zFZvxBCtT1)l)a2E4Awldtk(A)+h>LpR@C)iZ6CEj)Y%^RKHpKwSH+fC%-JwMyd-KD zk#@3d47YIGmG1X(`hH!^p~{Kh;W%_%6iLh81ZK<^Wh6&Hp}Qi6p~~htSWSI#1f;9B zFvT&!Pw(`HpT6FRsXbU0y9Hh3rD>%nQA5>lf+SZ;VPLKw-jsv|;ZBtn59Vzu)iVm$ zVA5cue&Pd$f8(OYEIS%&1NIO}940Ox0T-ksA{sW+q~QkumGRh_nWP S9bK!wtbH>g|TV;KwT{Ij+kzZ!X%uuH0<_vjh5YI?VK? zBn+uPz^7*~tArT%kX2k9{MSGOi)S)c=Z1k-tG%QHul9hOfR9Je26(#=0Bm8I7;*5C p8~6qohAs 593!930)r?>n{bzqiZI=2mP6=~Ro{~yqn6Tkof literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt new file mode 100644 index 0000000000..8a35d64916 --- /dev/null +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Appearance.kt @@ -0,0 +1,118 @@ +package chat.simplex.app.views.usersettings + +import SectionView +import android.content.ComponentName +import android.content.pm.PackageManager +import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT +import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.material.* +import androidx.compose.material.MaterialTheme.colors +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.toBitmap +import chat.simplex.app.* +import chat.simplex.app.R +import chat.simplex.app.ui.theme.* + +enum class AppIcon(val resId: Int) { + DEFAULT(R.mipmap.icon), + DARK_BLUE(R.mipmap.icon_dark_blue), +} + +@Composable +fun AppearanceView() { + val appIcon = remember { mutableStateOf(findEnabledIcon()) } + + fun setAppIcon(newIcon: AppIcon) { + if (appIcon.value == newIcon) return + val newComponent = ComponentName(BuildConfig.APPLICATION_ID, "chat.simplex.app.MainActivity_${newIcon.name.lowercase()}") + val oldComponent = ComponentName(BuildConfig.APPLICATION_ID, "chat.simplex.app.MainActivity_${appIcon.value.name.lowercase()}") + SimplexApp.context.packageManager.setComponentEnabledSetting( + newComponent, + COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP + ) + + SimplexApp.context.packageManager.setComponentEnabledSetting( + oldComponent, + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP + ) + + appIcon.value = newIcon + } + + AppearanceLayout( + appIcon, + changeIcon = ::setAppIcon + ) +} + +@Composable fun AppearanceLayout( + icon: MutableState , + changeIcon: (AppIcon) -> Unit +) { + Column( + Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.Start, + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + Text( + stringResource(R.string.appearance_settings), + Modifier.padding(start = 16.dp, bottom = 24.dp), + style = MaterialTheme.typography.h1 + ) + SectionView(stringResource(R.string.settings_section_title_icon)) { + LazyRow( + Modifier + .padding(horizontal = 8.dp) + ) { + items(AppIcon.values().size, { index -> AppIcon.values()[index] }) { index -> + val item = AppIcon.values()[index] + val mipmap = ContextCompat.getDrawable(LocalContext.current, item.resId)!! + Image( + bitmap = mipmap.toBitmap().asImageBitmap(), + contentDescription = "", + contentScale = ContentScale.Fit, + modifier = Modifier + .shadow(if (item == icon.value) 1.dp else 0.dp, ambientColor = colors.secondary) + .size(70.dp) + .clickable { changeIcon(item) } + .padding(10.dp) + ) + + if (index + 1 != AppIcon.values().size) { + Spacer(Modifier.padding(horizontal = 4.dp)) + } + } + } + } + } +} + +private fun findEnabledIcon(): AppIcon = AppIcon.values().first { icon -> + SimplexApp.context.packageManager.getComponentEnabledSetting( + ComponentName(BuildConfig.APPLICATION_ID, "chat.simplex.app.MainActivity_${icon.name.lowercase()}") + ).let { it == COMPONENT_ENABLED_STATE_DEFAULT || it == COMPONENT_ENABLED_STATE_ENABLED } +} + +@Preview(showBackground = true) +@Composable +fun PreviewAppearanceSettings() { + SimpleXTheme { + AppearanceLayout( + icon = remember { mutableStateOf(AppIcon.DARK_BLUE) }, + changeIcon = {} + ) + } +} diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt index 49a52784ef..d1c68259a4 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt @@ -75,6 +75,18 @@ fun SettingsView(chatModel: ChatModel, setPerformLA: (Boolean) -> Unit) { } } } + }, + showAppearance = { + withApi { + ModalManager.shared.showCustomModal { close -> + ModalView( + close = close, modifier = Modifier, + background = if (isSystemInDarkTheme()) MaterialTheme.colors.background else SettingsBackgroundLight + ) { + AppearanceView() + } + } + } } // showVideoChatPrototype = { ModalManager.shared.showCustomModal { close -> CallViewDebug(close) } }, ) @@ -106,7 +118,8 @@ fun SettingsLayout( showSettingsModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit), showCustomModal: (@Composable (ChatModel, () -> Unit) -> Unit) -> (() -> Unit), showTerminal: () -> Unit, - showNetworkSettings: () -> Unit + showNetworkSettings: () -> Unit, + showAppearance: () -> Unit // showVideoChatPrototype: () -> Unit ) { val uriHandler = LocalUriHandler.current @@ -145,6 +158,8 @@ fun SettingsLayout( SettingsActionItem(Icons.Outlined.Dns, stringResource(R.string.smp_servers), showModal { SMPServersView(it) }, disabled = stopped) SectionDivider() SettingsActionItem(Icons.Outlined.SettingsEthernet, stringResource(R.string.network_settings), showNetworkSettings, disabled = stopped) + SectionDivider() + SettingsActionItem(Icons.Outlined.LightMode, stringResource(R.string.appearance_settings), showAppearance, disabled = stopped) } SectionSpacer() @@ -355,7 +370,8 @@ fun PreviewSettingsLayout() { showSettingsModal = { {} }, showCustomModal = { {} }, showTerminal = {}, - showNetworkSettings = {} + showNetworkSettings = {}, + showAppearance = {}, // showVideoChatPrototype = {} ) } diff --git a/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue.xml b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue.xml new file mode 100644 index 0000000000..1d211342c6 --- /dev/null +++ b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue_round.xml b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue_round.xml new file mode 100644 index 0000000000..1d211342c6 --- /dev/null +++ b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_dark_blue_round.xml @@ -0,0 +1,5 @@ + ++ + + \ No newline at end of file diff --git a/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_round_dark_blue.xml b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_round_dark_blue.xml new file mode 100644 index 0000000000..4407fbbf70 --- /dev/null +++ b/apps/android/app/src/main/res/mipmap-anydpi-v26/icon_round_dark_blue.xml @@ -0,0 +1,5 @@ + ++ + + \ No newline at end of file diff --git a/apps/android/app/src/main/res/mipmap-hdpi/icon_dark_blue.png b/apps/android/app/src/main/res/mipmap-hdpi/icon_dark_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..979790eb2fcb3f6d1b882eb5513f22889a61e5e7 GIT binary patch literal 2596 zcmV+<3fuLGP)+ + j=lZw z?C+D`|M&mxh1hH@qh+*=meDer{Sa)n0rv2MV``MKNc21sKI4vK(=Q-75|ZpuNsH}{ zq}S|@#AS9z!t&+?-!twVF>owaG5R^Qi7~_5Nsh!qKq?7gfD%WcEoMMFL#%#`hV_Yy z6=@fAh8G;ukYa@BlH*TJQi>Sl3`usAWAUA6&LkqHAtXh{r@F`N<4~)--7)l)@D`Ln zc1Qn}9BUwgM9DEYOS@ng3esYVjNibq1|rBVIR<4LE*4g(86-tMl*_RODrk*%!7vsS zpU1HVC}?1gcEP3>6a`u(nU4odLk8t@tf3>Q^)M3CUL)z}>1xoP?^_X_NaEo6B+gn# zQk!J+`vDP(f})d1oW72PudkC(R87*)CY#UkBnondE+C=mJPF@BNt~OfNH(44H=!no z1D%!wIZhJJ$SQkkNa{7oe6Abf(1j#aUVt3A0de+*MvxR@g2d#%Ku$dg-^xacPa>1j zP3J3fhP_C_QOG$f8~N%wNqwf9&i9WH6C~X|lEmCH5>7$VR|xWJ4SrpC0ySxh;e2t} zOC)@DP8WGv JE_iQVi@ 0CTLQV+@$04akRym=4-F=e8CsvT~>3LnCi^^*xre`;j941r+ zF&)Q|kPS(nLsB(o2KZ9ri<|mum%zhUAt$F1 uJ& z+;PqEqzMGseQo?)bYw}TBvzsZRmnP^YaFU2agv{M&`$W4X+aib$Bm^;TuMKUd))M% zH(2Pysf#JG8avZ52=Qe185HiRrg>iBMs!3biGN)0gQOq|iolJ{nVUn-`g+=bpo%(o zNi&^eMRLmX^xbzC=)z5zQg}Bz;>J;p_p!S@=tIZNaz-sh)}c$UL^C;!JMLROmIO&q zRGVS++`M&k^QMzzSytG$zmmE>IMH;jJ0nIdqBCdDH_Z93Q>GETn;o)XCz{EgQ%u)r zfaQ#N9j!sFo_&Y$Sn^B(NioCC=PLwB(Bn^LQf=+^hCrG6dYQ_~k5G?Zzc-!Fj7WWn zzCC@;Fo*g6+70TowUUH`s7as6M&3JNEeTKf;#jl>d#^wWi_zdLEc^j;th@A}33{O0 z1S%}5Fa=wW Fkiy~vklK48B$xpDm9h8l{i%ja_w%kx> z#IY+$D7mbQtk5XFNMd5fEj}U%k|5^(u4z R2;O#F-oSctc?y@e> zMbTx*$xyd@i~H0GvLJ>tsT?vqB{5E?Uc}uq$5M_9ND^K}CY3?bURh_K1uXAlEUToK z&DXJ{2?R0scb(u>k~>^;X3oy`F2@Bgw^vY;N>I4VWFzHn?8352$~4dSN)riUxDVpx z<|)NRUEK|uK4UdGZrjXhv>S~~Do5dkh!P8S@v`zYb6hl`AckvBU7d0JcTrh&in`sV zPcoo%$k@t@AY+dO?|g&8?QJ{vMiUC+t^D*E^KRv$9+dArO5J-tZJKL> hASh+zi*(vT4j1HO$4;4!dut{YSk9xXNZ5fsXP2z -sWi=d`vlVhaLeT$oV>@=M zhtUMajwfLeT7Zw7x V58=AmD7F+o}ED4$P52r5jLyc9H$h61I za} R_&3tD_mSvP^PZD3X*+(&sqwdgIA@a{L{Ey$jxR<1Nk{3pp;@ zjUn;*GKj3#h3<5cIAIe>ZJPMwj;J=twBUujhG4k~{L?dUDDphdb%&Q5*B+Og{2IvF zfxxzb?QU#@oc>Ep^G)29O2UFtRVXBjPizd056l?Ol=%xc&^2UE`qY(PGshE_w7aN+ z)*i2?Xcn^tY;_|S%PM}c4-cLiZAX$guY|<$`JwfZE5lOy^quar90hFUca2_4F KPk;?{H{QT*)el>F=X4VOdIAL+bt%_PUM@>2Bk3op z=IaJTs0m^@@k=467IjB9vI@IZzfAqy&QnNOazd5pLJ RVVpr)Op*Np&mg;F& =f z{5H*av2cQ88cbruFQ;;>HruZvJT2U62tWcI#fSk1^$Ug*36S$p1!BBci H%k}^5h3#!mxpvN1 zEoQe{=Hq?c8VS4&*tHGT|MO=xIX`!ugdUk&1Qy>v-!Y8+MZF^8`;oY(L(Mr#>efb| zXCtO0iRT!@A!DUzz0b2<8&)g>ri*=}${*C`1N3NjUgbl72e-c2Hftm{Ke4+Lmv&+j z=lOTD*0uJaf~t(|L@YBCcuv;($eNTm7;lxpqWZ~o&cMrNKrRww$n=MIDxdWL8Ffrb z&LLATXXFgWs_boLiW9nW!7_8{L)5v0=`>P>if-qX57`|YYBVM~a(s$N+{TJ6J@QYE z=X;ao>$nR@kshc%yIhTR(TpGgotn|pLES GbOB2pv!@=GfzvDI#?&$_Nlqo-3I#Hhjvr0?yNF(a+*QF^Z7Okn>> zzt{eN_=^S8d*rPWYG+H*y+LKX+`KV+5~YoZ0v(3|8W*7JvT_GXEja1(f*Pf|WBsn< z0k+6bEQ4rhl|I^d1lr{3vv#m~mnF-KY;|es^-Dj_wHx5FESbq8U1n(@+zWHn>=@YV zc-Ca;WAL9*Co&F|PVj~ONA2}xF?iHKcr&S*O&$#B)bt5J{01I$OOs~)sm10{-2pN} zZpskNWuaSb1;KRpnF*asf;;8z2T->1lsa*!d8Jbs`+NY?r-3(F>>G=4ki7h+PC(Oq zsK^SRommd85<*E#yBbY}Z&d~FTu~EH2|*BirCKE}qyf1>2El52tmftgv+t%=*?F+t zfS1h=D?8A}W8FdsvB4Y<#HB5w%H-A=>CtWZcDS&EG{F^ftEVY>Z=DMKvC)I~M{+|w zY5z#hT*m2V%Chlm7~QP!#7y!jnn+|(mJ!xnDvCHK-t($5WUL#7`si^IgJUI;a+GXf zVs&7nh3)-juCv;_yMdV48NI@l&Ki48IL5L1^}A_DfFDclIsEOl(EZd~w9UF=Yz3nU zB&|LCvM~NV{wwm24so=REOm!O0ftP1;rho8-(7E@yL2&Nm@m5P_0Of*>sOoC) K)1OZVqvepg^~gDkLq+efwKHUSCw}cCWW~U|eX|6Cv}pf5B7?sKNi;!aY9B_X zeVEfq9>|1JZC*U$V`*N%ygAcICAiX1^@%>XR@+q)|K5Uv{ucUVg^kFbYN-sP5IqG! zKzM}#f1dl|P2J36=n( i
-zb8e %_MYNMn0^P@Soqr5g4Jy)9&ubZiB zQyeOX!dfozv7JlW$1OjarL_7Oy;EldWifgNy~=?X_DKnw(N5%bIaf( !AI4get zlGokb *a6K!KR5PW6yGMq=;LZHlLCMRre)Fmc*i4~ly=TPswH}jvg zpyh{r=Enf;p7)^Fns=_RuuqhPV>!(qS|~{CyFLm!9ExNY&6@f?Bv(@e22Q)6lly6c zZ2tKK(jFThMr|L5B6kFtn^ZE@^iCW#i@->ksLdAs3|jbuy8YRE9Qzk5V
;@eLt2`D`d!fY0Z_3)S!h8L7dCnBUQCbXgrIU1+bg;2ZvyVhM?St&J`r>aL zM%z|czwnL$w5mM;GbbqzXAyE9-VV(RYhm>Xww^8BxLo8F(Sdd0lJtFnct6_QXD(i$ z#FG-!eYY+!>^eRAIle46^rd^>w%I(Tqz?wZfT!ObD-k}bTL$Z(7dJ^acRfi1v8bhV zH*UR$dfr=`;$V}0yg7{1mLSJ|P`6ZwKp-Sb^WJ>VjcYkQXn(O%B`#<-SXSA`XOd7` zgBMMm$j(@1L%~i0Y~#n1+$Zv8=MjkyzYUQV41{AJ)8{s5KI}-B4~7kQCgb45van?h z_()``iq2IPZ@sL{@?)#H5xWVpmOEd(2x(pDg^CX#?i)*07?PN0^&?DNcy_MoClao* zVQZJRr^tQGW8VaKZN8C O(!ta8R4i@bWQ`X4~ZOOEV*|@hD&TA8CA=vF_xFHWa#7Q=MHrCK^>(>98(b z-xhM7Kij@7fIx}fN@9L9@Kt#(;w*>J<_5E7iyVNvXPE<|=4!qs@)%moN#ucdR)0#g zp=+dES|fyTog-(R^O4rN2-^w@7 U?)?gNI|)-QDU%25-_-X1<0 zhtC>-VPD3fbx?KEtM{kzb$lp}zDKV9`LhI-d?aQf?J92fI6^#Zh+`WX9MYI@qRovN zBQQ=t;X1tE;9t;5MkHpgmG@Z3aIY-2=S4duZeNBI9!Tn)OK|Q*ix< NIt|p) Vt@ay&gQ>DbAf7jP {m a)HFbD(t`pE%rY)J+) gNa^>~Xu z9>7f2)o9D%dto0!v>L}=Bc;Da2lkY>zC|&9stm#664Xc!yvNAEsh|n-^($AKW^TYC z9au0`EEk|yavM)Ms@zSt%VGRm%PGw5cSpv0YEIj!DP@ d?%zCr{KBUuI|q+4My+48o(K$$ #m)zyK;_f? Xe~x+!!yJ z|C5DckGq`@TJ~}q2E9%K((TdrjB*Zy*U>;;qg9ZR6EblIN6?WkMWxHczE1#JTKO9m zE4 zjRZ!jB`C&2=$o%Dztj4mfS{OArNF8Fi=|Nb2iFzApNzcl1L*O%T}V+}V~ ;M1& literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/mipmap-hdpi/icon_dark_blue_round.png b/apps/android/app/src/main/res/mipmap-hdpi/icon_dark_blue_round.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6670116b612c38ec68cdf089b8e238cf98798c GIT binary patch literal 4489 zcmV;45q9p0P) 7S%R{{#eY$SP!MzBiJ)^kMdrZgTal-5cuxS`aZmZBA^ zR6q&=7Zg!M0U@$@)V40528qN4kYZ(#5JFyWzyIDl@6DTeYZgHJpYxHI_wK!O|L^_l zoe7$DVnvtuoe>@O=l?$fWv^zMmg|#0la+`$-!;O>5=c2=5m6-I*U~TVqO~bHUGoRd z7NFPk9(@*760P~I5c^wqNP593zO=GD!wUS8S)~h^RkD%!13Q=%*oU8ofujnC@fp3h zLyW;#!(TF)=F%DwYo=_CCtL(6VK-=3ei} }f4}1x5iINmy&l77rM{CmB;p@^h zU0=w_CG;(ZP2Sh0 |(qO-8kWnN;O-+GIK zEX_q!U>WVjv%ljn7n=4f!(VzUHg-f2V{f`OiE+bq%|JcvDcW9-lh_w5?1&A$5Vn|- zV^KDLyrK3WtZ60fF>=qXF7iT_RhEej>{R4nQ!No+S_)z>Hc>k*t8|ES@2w~@@cH~D z#bm}|a@-p{X<+ZI-sdkaaq7?tBH2e;y(;Wd&H#C`!m&rI==)AxT2SPIK7XL7+2pjl zjI(azsD|-=mI!T1IU6v6vy3aepT&hJ3)Jh;rB0n%K%_}pRuRRV`tSwan@9p}OS$pm z*<4?>m9t?L-p>=j$e+UXf9>MN^h(Z78SD8xK5UYT>rFHFJg08W5W9v5bf91-FVIAC zI+Sx`!Yr xc=ccPzs8D;X+j{XW11oNiqsC_pRNqx}X=I zf~34Do;isTfG)+{@aIo*>Y9S6W-qOzHx{c?i#EN^K~Og4yvFsK1}Fu^K6BtxxZC<# zWl0Wq!)rn8#?QiJlJ(j6_%Jsn&2K`$CWw9xS#5Nk=FjODp>uK~2jg3 8=6+3lLAa-CbUfry$6$?GabNykE^bttf5e%b-e!|_>ehPB-%HQ22ZvBQE zlb__QW4U+TCc)M%f322Wz?Noan#I}5dI&9NK{k3^!}Zx@NkNH^W57w^hp?PUi<;|J zZqO+J7gprEB*)1?43Q>=iI264^*8}{Gaf-q+6GIi4timeNB96S=f`tIE#+CK*-$!~ zxeJ{fL=k0P?MHQ$2j*gOQklz_WU=P~1@2j|apMEH)`w&z4t%8W?h$TGscc%zq1Ghf zJeASR!mqS8S-m2-h!kZ#X+<|E>q&|n3+=;I 7D&bi+6Suz+=eitv_euT4aAj8H7 z4y@nH+3?#v^AdvEn!t2!+`53X&WS2+(v|9>k+(RxaEZJrhk?tJb+2{^mOs6D7C(6K zFt2+3J)U*`PdsDdp{#r=ude=#f7KA=S0O`LTS3VC3iMk14(oaa*)1#iwuH4U 5c8{1#`1~kHLMmtPky`=u(}|~1C!IUdvz7-`V3yr0EH7k{ z?|`JqOGMoBj2BRD<}dhC(*|~r CkMvQTxsy@i50W?p+j{c1#N8Hw3QFe z`jKaj6UC)>@S0C{d*+fQjYB&3y+ca5K%}ie#eG4XQvkA@qG@PN>cW<2TO%yd_{HKl zF-g`$%%5E*If-yHyYDKToQ!*Q>Ut$#`QjE~HEtyv8yoqCs&@rRZc8G|A#y%~Te;^E z$W<$*E#l@MtI+KuyZtlh0^IHST4_mccO!Dj;Z|$+NiyBobbuS*n<)c#6rH5bh(p$h z-)i2Qkivot^d<|#gWU^6;+)JI`CD&Sdz7?EB1 4BS((%`yW`s+jc;m z(-Yb4A(Q}b2fg?QumtXw>1a#HtwzIg*6a(D`7Z~y)N$hnv*lr36kQ~g&Q?w(ap8 s5OX%xd5I*f`x=(>2hZNUP-jI}?q+adIe4*yQSUSmv|SC3 z8=##SFz5!pY4bL?+cA&g sAqvjjL5yr&*a 4YzBM&J~%zS7WZ`+iv zyxTQgfA}4c1R^##K!g!Mo-wh~J1;qe2{H$t>m?{{NFNM3C mzs{t3C-2@TZG5_e-)!?KGMM9$Xf%>)W zAAb=waK~#)1c;o`51?{Jg}gc##w!ZX9zaam#`RSVlDr6@PMTjUEh#B?vkS$XH^4;) z2QMU|tZu`s{6*ox?ggSFQTssI>f8%{nxHLt-_w=|x5|O#ECx9*LE%*{JdbQO7IjXq z>$rZ`hDZXPL_P|48|Y|DV#01UE_sT$a2 _IToI9l-CPz@B_TjeM9}T5)*_OQR z8E1oHQYdg!K+Z+Xc?NFvV$h39)H$V&_5pR0ekY2_l?`D6Uv^*t+LBDVIT_EA>}GZ7 zeZ)nyX4S{og=LZ;_vA>JD8LGero?F Z_g zTg^v6UJ;ad!GUF{kONWboYPQo{|0r^iiR+eWO;-a;cjzkklo@1Zqj=+XKc_o;=)Cc z@HM2g?q`C 1QcO2% zpK%4h|G`RLS6A;M=P18z(xV>BaU)t=auhw=qMeOAgDmD*7nTDH;Z`L{v=1HNZg(Ii zJ=-8j73&@4#*dZ>SM-b*u xQa{)A9NoGH`^PY=w2)gBI*7Imk5&X{OuDdw-0pawr>5q{Ha=4&NColslqY` z<{#ij*=*0;gy=Gk8 @W5UuT$f5L}zfaS;(t}k*j@!L#8B7O7otc%J^vPm}&SQA~ z=qWtCQxl%DK(;#Vdw=0wo< !s_C?dq_v$uw|sX;vklY zY}S^s%*)hdTBOO1Yg|yBGZLx%VPvaCL5aV+uo!p}vE=p*BDQ$eXg<`f=R#z!zE_d% zG2)L?`qJNMbz}a#HFA-}R+KWRLLQDH@Nv{R3xg6*MuANn;nsDWbsg_rt68vh8&L(F zyDQxjiC{1t^}y9sIJLMH5jmsKmCr(jJU 7X0A`G_7X@S(kc*>PIdKeDZ$QMxd%00w>+V1;@IOB!Du(by5M*6j$<=o5k2KP z0&X=E0r{^%FJ_}c&ILK`RGC24Zoi4hV6|L-tTB>E!e3!Yx4_*_8RxxLQXpMMqwgAW zKk2Axz1q07Peycg`=bxDM!c*RPTkegK+e$VT>t&o=&XYha~zljatdR#4+AQ=es66g znU5*VMXdT6xm&!45~4xrU}mp@Zf7eUW7R#0M3`MC)K2Fb{!4eLi=;+U+sn9d`2rA8 z5BCa20;Cz2CTJh}!jh&|OETv=@CYj8aZ8h^b0TnzT+6UV)j+2UrEW EImh8vu|V$D2QlfMFF #*ENoP;wM(Mm%)4XsiL5{!wZKQ*yb)>)3XfbkZG1S6+Otb$@%*?m%!lp(N5t9}t z<|IPY^PE_qy VeKf5D9muQO?JX}@IGz6IgR_|b^m4<>sZrH7Syc1tq!xv} zpJJ|CBWsw|Yb@ V zlWpmt$NoOwsm097egOeoZQ9Ost?7Egm1KsZ-|5;`_DY|xEByg)f4Mi2%8xraPVp(< zJ_8tRntdiP|FHEk(}gU`R)olEj%AUhIMz}YBd#@Uy=k6xBke)%MeHfn{;JhPSyMau z-&l|-v@B+w@k3?~U26Dq_lVmm@*B573ffQsH71;6)qGkDy%epDYcTT+I~D7MOx8diD<;v~~`V zX`1Hwz)(`!=j&X={9OYCdM(K`FQPFtR?VTgz2sV=Xr&|4 qN*Ej6%%LxVk00000NkvXXu0mjf8O@|? literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/mipmap-mdpi/icon_dark_blue.png b/apps/android/app/src/main/res/mipmap-mdpi/icon_dark_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbcaf2f1e0c3b98b2b9a6399fddd8453ce2ec66 GIT binary patch literal 1744 zcmV;>1~2)EP) ci){E-kUdr+bsOyNq&Kud+(d?yZ7Al z?wb*WTQQ Wu;j5qaK?Bcc>Xy5fX`+cTxoM1_6`{# za$xFq&?K8vFZmUw0a} >XyJoW`+?$T zm OnCq}Wv?J+YbOuna?+N=O<>j~0{k zWGTs`78=`K;wu9)3rMW4C9$@bqyh`cp-uvWnfMJP{?kUHwVR|B<>-@cyp9217{H8+ z`%aR0P9gC>P}4`!N{cF5ZAZ#Ti;7A7yMx3=v^Rm{R+8_{GG5DoFAOlI<&s#{Kw_Q3 zsp%&v&%)al7LoW@7l{oDH~C{TNpXe7Yq-Q$1{hJ H!5;Nb2)WT~k zIMGOQ%xdFUxA@WkBN{951@^+f$`EI4RG%j~c8&k5(C9IX4DUIBIMcLz8eP?dnOBDR zp#y2NZg}zIuqQ&CH@1fj#LO oE2r5RVQr)^Pqv)xB~j)bS){0LJj9GP<+C36rh<=CVpAgMrv+ur9t%hwMU^z zzYmaj3I={-tAG;wjFSmA{-M<*9&P4EPol&wDb=i$2MuH{FQNAKZq)#zuCAF9<`$|Z z?Bbgs-rjDlYoe)3Hj#L+p2VLO&WRq9o`Q){88-22NIcxgO){$6NJ=aAj)9<2>6DYV zl{!0n93pG2O=>zVdz{a_ #zcBhQZgpstGA(9f=j^N&HFS9K$|I z+c0$h@U#I&Anu;oxvx@BPoG0 =%BbR#*6PN|QTZeufQfG*^gCwaGD < z)7O&tE~?F!5L^ikc9Qr$%p6fThjDgV=He9VNdv4@E?vHXE?(?#h^?tPuU4D9mD{LI zV~Uw@ti*$u`L`hcGYI`09B3serG(@NY-|gT9fuWetOBRlObaiuo;JYJW^raQwY0Q3 zM4m;piHl#Ywguq`CD@(#c#A@JS6m_SV}-L9;^*4LYgSgC zj8p6`9K{cz&yHG@+*O`8U>CTupqx(sX{9+hM(9Ln`sCzqqsqEox~~F)KCrR3lcavSc#&ONUH*;HV+zLup8O93Bx=|v17&5wG{S7D>kXZ*#};0g2;S!P2(6ly4<(p zVFSa$(kTLGn=%{^-c~s8Xm| ~S`gYqssIu`M^bPG0VKZ$QDoEICeV cJ#uo;H(^1>YA-o%_fb)DTj>JJu)h1*i z>N`wq?S 8+Z7^0D}okDCINnu2f>irTEPxg=_2l)wm%8H~8f)OBt6(;+sKh z;99=iHP4!ILo47lv<7B8pwp@k+m8mp(f7#a`4`neBk2bYQ_3YFD10K<>e2v<_3Y=H zAlaO7z~+90@G!~dxR0PM*rw54sEt^OF_E%)_CeW{)GC|ib;zdVcK+9w*gq2*%(D&& z!fh;l }{%VS*4aHd&CzX9)6LegdBzFg8Wia`oBQ2J0AU#y_E8w4Vv(TCQ2V mHrQsFVe&6-H|(t#5%E7tn6)UP&`Apb0000 _@DzxUob@7?qLzTdsy{q7^2 z^@r;0G2Wx0p`qh@#{1m%^P=L~rMZ2l#31@KG Hn&vyR#Q-2nBC!YfP?XiK6 zduYQ`gT|>T`bL-bBX-nxV`p49p0!rE{=Lyam)df{ZsVDr5&+^yz%KoD2wB6H)Ma^7 z0j=_2+0h)5*MN`~Y@nmqsa4;R*77g(C%or@ywyWw>@~EXG(K|9DI~&9$;ZgDxRH$h zM9P#;6y->AQ@256j-hy`v?r_te09WgtBo?FJY1mmJ~wngxObyeb7;%+OS$n-M7f?H zYB4_TFWg&f*O994cTN(YC+1Eg2XEkur;p`7Vi#9`A{cCnu8bp4Redu6)z3Zg1FUn0 zbqW~bPP?r@M3x;*WgT@Kh3ki!rRn%k0f-$piem{{TZs `5_p@^ ra)XY`J$S a))5Y<8oTNb1Ux> >2=-WJGT{;uDZ{W@Oez~5$B2A{8-wWxN7e?esuU-3XtSv)-{G}=&v#?Tgk{dvI zyFMp1$~%5&9oppZYyV-verq`l|8tQfvHwjemp^=6S%G92YZwV9bQP}}J!QQF f z2g&j)x+9^n4rIb!1h)PtN`_5>(4?t`_oCPH$Y>0?s|_p220f9j#_a2d5yNl~09C %6X39>d z0D>&r9F?Uwtb`wMYmPk~-;VDtHI3iF8-+!I7n&>3_cSRIy#%beDd?q%65G@| ;5-cl&Ls9zEhd6&;LYy8Kv` zfSa?>`W09U8q^wTG!+lt1S<3rqPe ?+=c zARuCAnkd7(E{+^N*nDm6CRUqv8j0v`vOcc1yC>(;HQjY4dUOrrAI*&K-g@ZawFH=E zWEClOfuQ5Sys&nr;Lg%(y}Kp7vFeH+fiawTVLnj^p5b06C!ER|;A@x3SQB2DZ&c1` zWA>ojQ4@5j^d3evRgN KDk^%;e+KAv z6zrM5qV>BM8QUO#FL6Tz?6cgu|3}0K`P9$Mc_9w>)A<+7t4~_)9|R-rUb7ETjh@V! z<{(GG$!!|zTZgCmOvMi{j0v&(d0if8+vP6_F-NWPS`%xOXL}u-E;*SEKGoNj9>@c0 zZDwC(Obp+_Ag88^@`nB1ypeWJ=!;a|y?4C!G?(8|zT7#VMY{Eyzi^74%_&oN*tfY= zAmWhBSTy`;DzeT--Ig_r82f_~%h09xGpqtBOg$dxvYL-M>m|L!woEIp|2LffG`Dl3 g4FAWnn38jQZhyo|zi-(7OVRN4@%OIx{Kt*|0BJvOr~m)} literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/mipmap-mdpi/icon_dark_blue_round.png b/apps/android/app/src/main/res/mipmap-mdpi/icon_dark_blue_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c14794c2bc06da8bcadba68c002f96d6cdb004 GIT binary patch literal 2899 zcmV-Z3#{~sP) 0&9OIAvh4ECC8t zmg0gMHjOoul!C7TbSSN|l#Z4TqHG}nA k^0@ab-*?XU|L2^m zit_b~swks%Md=fif3H;>byfG OF6eT<0ekx0Liqb4UO-ahTU4Vb{GvC5}a9=mA z_z({leM?U&nxcn`R_fux-Fmp-IPf`sUy$J6{EXkB4(f6nM;|vw2rs=^vQt20B1n~i zTn+vb{x${Nri}Ygl)UEtW8Ao6_+0+h!bJ}U!i7g&q`$(yqltm*T4J~_?o*D#MXd0R ziVrI=gULl%dZ;jB5f^0Yjlb?0z6N~SqHi9 5={-bDLRr2Vdx z)WfGq%P%H9IbP KCZ@ud}3$obRm{gEg)e9x~g`t&t*ga4?vEx9$j7cjp$goMKWBo+0%lNc|5u z*&qbzcTBbFrHv(R(N0qTTPH;_j#iWQlO>-1oDd@LH@_he7~Id!(WlsaAIgsyo!EoQ zAI*o7HhvKZT_N?;XbjrR5z@O%AiWJ{{<*EBeo}9V{G^Vw=_RDM9O3QH3&|mrQweGY zN8cUWv`)b^%Q^{Wo8%(W?pr|W2UVp0Cu(8a5z 2l^cKUt z?Hh&IC$MAZ9#fR8mQK#1NJV-uccN|feLA`Z*iJuM2%@mlQT91-%)rO6&6MTWLEZ#& z$|pTI;6XcQF1EB;zy~vK;PHND_enH%{IitOx^dsOO&dcGZ9hcqnfymKyn7NU))v@) zXfXouw1l)_^Zin+!71lGB^C>UyRkupbGt)fjjZHcf%MMf=$*3tbmnXoJ^9ocN{Zv( z_P33p-!ChrFYD@Q)ww9OW#Wf{e@bX8-iL@Oo^}Fk!3RrV!D>?XAjJ+Uc5QY>MhfND zD53s$O8$boOiOxF-h PrfG|ho;kw31DP&ok*Ks+2yd49p}zn#LTa9lDCT(iIvy^JM9J8eKx!g z>;?I`TX9+)>uno@d9=v+TuHhs!x9kg*HsS{oVO~u8(QF)DBtygM?`IHov>7MS8zMP znPvpX1Oj_c)CQcNo~t0eb-bB3VF(E3UQj}PzHJkb)jd%Gt&nYAd%XhjU|Gqu6Q|e| zBd~qJd43#HWjSo~7ZBfV!|EfXr%&* j5wlG3^W@DRO%tBu%;qP{}1Sp-`Xx9j0 zp7~X4b~*x XRZ^fKQhNs1(=_)T+uR54-2l!(gS*&{RV~>6QKKRsC1S^ktbQ}; z(@#%3Z1eE+rLc%I+wg|QBFvTevOY>L9!0Qj0p5yAyos5Ayv& gFlWb6LJ9Wlg_jp)Wos2e$lry-is{s;vm(!Pstm_D%<)RFoi5ik z&_W#KTD%D|uLE0v*Fb(+sWtO%@TDjpDR$i%kVhP(j&s#90yvaYtpt1YwYevDoW^cE zc$d+@ahwj~Xgm7H^XZ{!iyP1LKzimxdgzT4)QU;J0=#Nq-l6#9P4G(GjZ aMl-iYK5Usqh-eKf zJuAKfh~@L{&M^U5^GSXFEUW=i%P{jlEtfOzuG`@OQlC65MKT^os!a3EHU>o6#MpUk zorTOPj&(eRQxh-IZF=aQjfM#B%wI$jg6pngQWu=YVGVh{wckz3K-y%|rtc;7(Fl$a z?mTaYIUavT$=b|Z3{HuB+~p$TftTubJ=A}zA%Z*iw-YuYy*n=8Z5knO;#M3FQsW)g z1f*?v%uv7W;E*Y~#Pxl=A{xMR3NAZYn|LV=5#R8C;NUUx%$e^dIV5HspCW@A$Owdc zFT^%}RSw49ykSC2;<7J{fw5lTG3D6TP2McRP9cS3LeCth2k$*#t%fN?#79%an2Et4 zZq7RT)-xyYSaQrJ+a_*7@Z8BF_)9>KK&aO|EtGvs3SmM*48sV%Yr?3{Z8^(iA48wN zMc?0%V~DX54cMj>k%QS%9S~Q&0-?LGYxl3vgF~t;F%Cg4nD05eaGU-W+z0n1`%Ea$ zf9+zP!;^tj;0{Gk9~ubt{G}f1yIBtnh-l$#Tu+C520xz_z;E#k@3;=v^y{98QZccKp0