From 8fc0a5f9ecf34982accb92dabcc7edc2fa39278d Mon Sep 17 00:00:00 2001 From: duogenesis <136373989+duogenesis@users.noreply.github.com> Date: Sun, 28 Apr 2024 17:48:45 +1000 Subject: [PATCH] iOS review --- app.config.ts | 2 +- assets/ios-icon.png | Bin 0 -> 24696 bytes assets/ios-splash.png | Bin 0 -> 37538 bytes components/in-depth-screen.tsx | 32 ++++++++------ components/logo.tsx | 9 ++++ components/prospect-profile-screen.tsx | 21 ++++----- components/quiz-card.tsx | 22 ++++++---- components/traits-tab.tsx | 32 ++++++++------ components/welcome-screen.tsx | 5 ++- data/filtered-traits.tsx | 11 +++++ data/option-groups.tsx | 57 ++++++++++++++----------- 11 files changed, 116 insertions(+), 75 deletions(-) create mode 100644 assets/ios-icon.png create mode 100644 assets/ios-splash.png create mode 100644 data/filtered-traits.tsx diff --git a/app.config.ts b/app.config.ts index 178a2753..f5bd80fb 100644 --- a/app.config.ts +++ b/app.config.ts @@ -29,7 +29,7 @@ const config: ExpoConfig = { statusUrl: process.env.DUO_STATUS_URL, }, ios: { - bundleIdentifier: "app.duolicious" + bundleIdentifier: "app.duolicious", }, plugins: [ "expo-secure-store", diff --git a/assets/ios-icon.png b/assets/ios-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fda78f7d7844edcd8eb6ccd9f15ff01f6fd9ac54 GIT binary patch literal 24696 zcmeFXc~q0h);AhOr5))$w$g}zLqe2MP(WsFS|JPp5s1txL1c`CnLvWl4h;yJFb@d| z$P6;e6r>U8hf&550z@Hc`OO*x+9zu61O0G7^am%S7!3mLdFp9oWCb%aI`asPdf@5f z4gy_x9r;?`hpUIm z_KVBK+KNkhILkQgzy58{^wMr<7bCYpv3NS)aK>z-o4fWf-U#@0*CBHWP z^wd1q_J`)T$FCO|#F_RC&;O=&uzw>+LXOV9uh-3=A{840X-B>t{8VMGr8IqXdeOpc zzRB|Ry&JHz22k0{1=pvI%eqxs{8g?l&!_!#J}Vs>|Ks7On#r`(6GxLmW3CnzoSNld zR#D8XyIMS};JpdB{?g~E*zJ^m>es!ocb@#PN4@C6nV2AA+qH+14~KpD{IObT=(R6W9|j!+rZTBq zaP#QkTjOhN%}4%|gADyIXz^b{2O&o2Tu_oBNqnk*A*1q|Q2BH7TwiHe{E+w=iz?G8 zkofbDCXXvA`cso526Z_0mH90(1qXCYh;-EtqJ24V-^}84{Bvn0B7X3Z=$izMX z1X4Nw{j(=D&oEf@P&^Q3aYKCmz`g@#_I`LjeoOR7D)7dgKqHi|ue)C$$O!FzFVG!% zCd4!F;TdC?g%#rQF-Z{U3<&nyb(_%f<;jp#XWM4OFa3!~JdjIxwfF3seLplG`e86* z|6aszKknOixDfb8>x{jdli)i2L)b+(cg zY)$^^p?dT+vDbRsW=jId9<0bs-f|74NLM*e1UgVux?TBqd7|9w;aPtM%`Z(ja6ihcxL_`Zz) z+b|IIH){S(4E!q?UHf~W|Dor9f`R|V5dW)%`7ZE3fqT^V4*%{IbLQ`t|GDUEfB)Zq zo9cgS{+s>&#}NOj-@my#QK0Yt{!Nw7{68=Mw`SDePydy?|7fcJ$?p8uR{kr||3lCJ zXsZ7S5dS|kM*8+S{{UU9;Q1yUaWSOsL?KII!21ybc9#&pi3Hvv=K_G75U?dZQK?CF zG4y)xw(&*|zLf?(9t_u)iOLLzzcK|!dUgur01*-2v zEwN!HgWATvnBI2B7RDq3qT9sm^>|tG0^uP)fBLQ_=x?d&=jo)=TWz_n0Tl8|fF*dI zjSnQ}cGQ$5GR8cCap@oyvsT5TPhTf3sQ#4LuzI7&d)0?)|Hvzzr` z(K-~~7h#lP;O-a0i>f-@*K7D^HN#TZM4H_wWm&NR@;3Do;{6PO?pEdC7j( z-L?9PR6o)RW;eMNI9LY`G8#FRZAU%uV^mSi=s`gDnAx*<^QDF}l`d1sdi+P|wiLYk z7Gfp9X9qy8Z?E{~l&OUE8xx+ZnmObz>DIi%hI0CH8e6gkydfDl`Fi#h4e^2-qaaW= z51W}zkf2ZM-_9cBmTJ@sVi?Ie4Y>Q)cK>2jB|ycV+q?^=xZo!uemAi34sKDRu6^#R zuDR>S>9rul&yUDtkB068MHLOEF=i41>0bHMStjm*IyrXRmA@Xf4)`%1zf!}UHa!I4_ zEbX+W`eGGvTufv;vZZT|l=)!XC@eBXwi!2Q_0f6w569%XxSV;Wxq3LOtB#g`aq+U# z?jF(M{`~S3-=?;iY%!^IN4Dvvn#O6JbA@$Dj=lRpMu&cRp>+i;)>&wHt=HM(Vr$Vw zh*T|3-9I7M{SL+Fw(Y>-*!UJ{iI93rYU9j?L z8v0>^GUQ6luY01jcCs!kA!=0$+2w+o>_pDw_PKTG0)c2{@ZgPN2y`+n&M9Zp(7R<0 z+4DQcHJHc8wLEg+Eaw2XZxhlIp#81{C7j(E&^Ila?pSG!U?ppzgH=jyb92*O_dI3I z=zZ5f*YG?>b}^>&i}2-<(|DiCNUkbuyd_I79HqV?0mMlY+UpLBMNRnvP4~xH3nt_5 z3UQ_TKxUHiyN5%M+)XyvcLsFEGxL@CxSfo^(wVoT|Kq~Wef60NMxQIx(ltYgS9J-r z5IJYyXx>=ms$?k>GFAE#bazEjWQP=Kei%%pPc2Vu_*5gPX@6U-MY^6Nw?n4bAnnpc z?e!{PQ41{YOp4PRuC=+wR$q(B^|ha+MIvKbamvmG&EI~Tr8!TfSNB@uL^f5brs7md z+_MfObCN(%wSb4I*v}{C`s)Yn@p5(UO1NojU3fWcTf)oLOt!Ix<4fN585G2Qhs}b& zfDP|fAA~1s~_L2YPs~h_@I>|QAamyS#^?j)593Oh=Z^! z3qzEP%s9nWgRCJADGZ!;_P4!1g06*l`SerMtM zZ4}(k;4FX+DsvBl`SBj1`!_^S56?s9BR?PchiI}tXNwMac^lqM4!-oPNZd+#Zr4CN zpr2808QjYZ3YMohrSAApa;vQ(G11oEoV7?i-DNn4X{sj-j^3J0yb({YTqxAC+D+aZ_y^Yt6&f&Ea3YRRAR629Gd z!<`FU!8-u2n|MOBWwv*>mjIvz-a#rjdCm7iuce>94tI%$moB?g-?^8FImca{C$Qr! z-;wf?n{A!(9{sRB7ic{r7Knq|?U0w*#jna)j85oD)!V5fe;cgBg}Dp!V(|zUlLrP_dI4_g>;`nW zYU@1e`p5IGrtcyzN>zqbZk7Q{-q7OGv~?7GNt#eQikvDzj>a*#;v#Jng#n}EqRZ~u zM)0Tsz?czTHWZphcJ+Uw3&#U?P{Rr9 zXQQTeF?;m$+cd%ASUoDE*lW+Q-x(`mgJFp0K!V7D{p_uAMP3}IV=oNw61g>JK-up! zHetv3O;7iTe(nPeHyK0{B(VC6bx97Qd+i5MfoHEWP=SCh=A0D$-V5>?Usweg^dG+a zL{l$(L70LYYlO}f3)y;&uppje=ws`_I*6y#>m$D;S06FES(+913t=4vJ8;CDx5?Dr z2&K6I1d^Go;4S%Y@dZCgOc0&Oj`&)?(A9?AvWu|W>Vg6!O$>jKfNyQXHz*KQtr4Wt z5f11MIRYeP>AX$dV8+foMJ8Uzp+~zd^d`u4{x}(AFiKkJ?KHgz6ZR4W-txQ8p}Pm5 zFD+n^Bo5qp<0!1~{NjR%4vi2$3!_cv2DuFC=-Ttl2Q_!uov++rppO};nvnX4&K3Oz zvr?D?VUeyZ961Ves5PJ3Xh%+;oSk1OzD36Z{C*3SDYc8rWy|}GQhxtM|J$#HS`l-$ zr3g|GzBMBW2j)w_ZkA=lxj>~f6+D+n>nzf`FOTnv!3@?a*-xb_d0UJ-5S|7QQu3jy z21F$+#GdC>`S51t_Ax_Z&807ol$!lZPu+w@*IA?+gL~WXw~iAkm=L3zJG;MlEg=L) zA3nSwXC%V{D)WHpr@-4Vpky9DFKc?TDN%`-q?AsqhO?+a0R}GI@DUAg^rp#y65_ga z`Vpy&xU|%`(+J}3*f6^$08K~Zip(l~>?PnE5wVcx@DP^T7rKKr- zxVY$3+N-nKL7vldF1x;)jT|Ea?}PBGj*uBB#7!Q&%M;Fs7Zqa&743$*{Px566c2E} z;p?8zOKHMi)!7v-^iKiKL(NNYv%=gXiXK%c@bidw9F~f6W<=qa){vP708X+D&UC_> zXO9O4%g>Wu>4ms#)u?e^F=RTy$F(fe#Y=gxqGtWD**r#VF~QT&JlW7CGDxP{qjGWp zc+l9SDUCc~7+9FtLn4?rtJO2#A_sak(7*b^4zTe@94_1A=8@69_*>pd%#FGhTfude z=1nmN(~~_G#3sYEU^n&oMdVZ@j8D*SiTAMCMl3${z*kWUKkhenQ(t<8%$I;LeMdFs zKi9egu|tFmRSROnnTx$_E*&Ri;aiUrYHDGclMpGbiU>rZV*DHHMK&&05-ec}TM;^| zZxte2N%%lJTqMso%O}j7QyT(lyP3$YEnQ;IHE9FGOhO~>m69NUU1iSzXdij zP8O@R)fb%XwUn*bt>1kPWV+hWJ^X$ll!Vw+u8HGs&2+Wy6nQ!0_4p6bLlT5}p%%<(l#db4u7yQHO(q_rs%!W3w2hQaks12k(G3l}GO6YA7^=VodXplgR-%ADk(PrUHOoHZjOzD_#R2wR3%Kd__5(&(+;1MKboDDEwaTTDKYBD-*#f(shU9545*@QABX7|% zkAxemV^bJ1;z{CnJYJ@g>Fj%NK^D0v9J0n z7MoXd`E)-127qI~R%$NZ)`>Sf%l#_^v3qPNCX>-`sKRAF)n|Otz97|fyK*ZZ52MLP zrZ*VMxKd-|HfI5|e)*PNKhAUzj6bwD>h0brYkaecWiSr6g-cE$ne|N>EJjrDTIQdv z0%MVcT?2dB0$a1x397w;gpfNAM5aIv3p0^nt8DLW92n|4wHxH+O3VxjRp)ofqW>(g zOs})lG*qH)e8~;F8+61)5ca+?^d5SxAJ12XC7Z)+`!%I_L`Gt9qv|$p7d6t~XTHJ@ zJQ0{PLLlTPOSY}}4ZQ=WuW{J71 zdv4ZyuBrY2!UkZ`ot;JRj~_MLysAZIWiQ!Zcpn*t?l1t}N;l4J99T)t4ECK>v0{@| zxZJ6BxQx#)DVYK*^}AN?;~9KYPH)8`v0b^*g#HpAbj*Az;8%5I=$80-=Zzd{1DLy} zir4LjISBDZq&X+=JsZ= z?Ah_=3|T_U1#dp+CS}14ICm>oV>cu zMSR@5=w1XqtPYZgC|=f@sUg?)$tUS{kSj2i+oSglx8Q~*Q$c}G?2!*B&v z{OzNs_+XUqA*Fdr)7W-%U;T(5EK+#i`)W9wla**HrLJc`^I~av<|PxX>zWy{S;lyw z3T?Z&8P|%lmUY^Yd$k-H%BiQ}jZhZpnjr?Ixi9JVRH<|P)6RLF1KY^{Zo&}T{Mgm6 zHJ$E7J9`#83}&VLNKNY6_Z-xBnqiYsT`dWZbrF7|VA=>_mOffK7%-mA$@wuKu832W z_8AE{AcS$7;o~~oVO6}PL1vszQ>wuR3KzR&A@5^Db@SO-X~)jRgLRh?t*wa2O3EMm zWelSU$}L$DD@4)RU2kd?(#yPg8c-TLBVsNAD72Jk64S4gEQT9_uC?p)n;FY(UALjd zt?_(luXFW-KN}ovHk-As$e$PHjPXiq;qIz^%q4uQTk-NfZFTAr4e-d9=gZp5nrtCO ztVhPms|Y_+b*=X2QvpxLaEO_an-DqSE%cw! zz~^0p&GlDmp})>X*Voi3Y|0~sen&36=&IGmMt9-*$kGtGMqTX%1}9#!Ci{(=l!1cw zTnnM!AaVJT%iz`4n&+UXnDn(Z#`0DQBCPaTYu~7IAhg7Fk66pQ>+PeckMH*y1k@aP z&m^eHnZhwwv=d!OY>dPU!Gd4={q38s*FcOUkZ7o(* zsT-3r`!abMNQxY^@bhHVyS-jo50M+g&HgNg(QVNYxgw=c4wuzh#v9nW65Y{DBf#sB zQRd%+|K*@FZ8i@{_RdVqqg5Z$Zl0|lsf#67vtte97oizQrS7cq69dD^mSac zUpIRB&S=5&?*94{z6nO%w6PKe{%bpv6F)cj-9dle01iqf*XflkKK2Z#q#NUBWQ)pl zJBFXh^jX3M_UG~yB6k0Fy;EeA710o;VxZ0Tj`Q(jv+npfndee8+; zwSq-*I7QESo+T;YNt|5sP%A5#dknOa;8WPgD)ON0w=VSx_3MX6{9o6$@+0I*QY+-( zaLhTX7lo)_6X;%A?}z3ka-xpf+0N(y&+{RC8JY&>A)@NF8{u}Dd95yGYiial=PPjQ zHo*vP$*Wr@_Uqrhi)J7QZEVw}=S=aEbZ1qIsmQ<$R@?w|W+?R`jWKMDZ^bYrnlyA>5|_gs`s%A!Sw~MiLskJJ zjV~HNQR6#%%+PDEfvSWPe1n_u79Fx*`CnX_CLB2mgpVuPf-rET ze!=~Uo^}Va?=`Qjq3S}=%SL4-b|bm{P^dHUNbr_!+f8}Wc39ZcfIEe2tA7AwW7}Zy zbg$}B@E#FE@~e}-R~U(M&i6z9aggwS6U~r2R*j_Tk4$fLSeU~x3ZB#(%6HTmr=XI>}pf7Ss_|v)?_L%cE+lXf+$q~~C*xE6#R%zO|7W`J$ zc-7{8HvBxr1pc87)z>vXYYezN-zeKa*x4Alaepdhk@HVBRW!T-jIp%F(caMWmJ{bi zL6ubxZ~@4oo1av@u%drNc0~;&D7y?8%PKsOnE6Y&~BYN3x zl7P-Z_3;3;t+a#R9@KK-oD~U-UD#8VacR7mrKu)2#^D=oBQ3RwUDX^i(1HsVU4T#P z3Zg}8ryp^zGSJ_jg=!)+sx>=b6a{_|ChE;eMYn|)jMQSnGmYUVl??{KbJcG>!i=;J zVU?ZkOW)XW2Ir{4&}d=Oz~|J{fnMr6*J{4V`G)>BsBR*IM}|3~JGI{l4}&f^byfi{ z5kFG|zr$eBPoIX@SdcS)gz%tH#Zf0MDs3$v40A@0mCoLMp;forNN9Mx^sS!J{4g}^9LS%}M;R1FoMVwZlNco~i!V@A#PR&=u^?BbB&!(K( z>0>mL5)YKeWNn(sM_!i+Z&W7RPvvBu7*fBmc-cip@O3%>$$3M9itRg(qJI7f_z7ov z?%G-4#U%c*(a2et$ah@PLC8$KaK{uB?59946HVlO?wIr4wBUjz?}Z>!SUmaCBBkVH z@!K*L?nj)w$3(JH({=suoH-c+0KJK?#p|3bXl1fOpWV3A_$SX%o<>ZYh{QXr2kV}8 z>B+ewA_||b;hzR{$406;IuPFs4jXz(Sqms4Mt?53i}h{wc`RWRvwm<7XykH~3A)>o zaB#o!-OGMC3^=8%xv$L7^k%&6^RmyMQ_TeqXy9mkj!TGOg>*U?J2-5qY}e6*!1qy? zzG+2oT`b?Wq=e3^0b-KS?iEDrR1p?gxkyu_%}r1NIiXg)a6NIJP$$fY6+Fu=t7y{y z+F%UMSa}^svYB!((Dmz5a?Ui@wP__<|cSbTK7f&DlXv5{HkPbu?>HXI~&+ z1`+l|H{6x}Y|Y6CAk=#DK4nxK0G+7&#zVG>xJ_BLo4c4KGVoOrAsiOQZ*pR4x*Z6$ z?l3+l*QOowd}IV79@$X_YF@g3&z#eWvM-HvS3;SU3E-SD%J4L5RG-{*2BpDVR>Fn& zmd>`!`nH!kSHIO9Q;-UJFBoyGiG!a~2=v2luP`Jr9!Z;8%F1RsuBJqND0g5KplF#3 z_#ctu&H(-fYPUvG)l{~@3U}ux^*e`Fx0``r{?DJk^1;Qdl%Cy}>};)HYEeNhKD8<^ zm#m}-+-=T+9N}p{IB#|~v1z4d5&cpbXyD6dux?FRHn|1_9VH()YEi4NU%z&Bw?u1f zdmH)f+Y-iAhBf=SB*Dn&ICFi`QBeH5^~JESX$+iUs#3iX zotweC1+?aev^tYjYMYepD=&pHRv2HU@sfU)I<&6&nMBct_YS!p40K??gjz*ampg@m z>R)SoO^yle&~qq4pEl0{Rkd=g@UP2ZSy_Obpi$aoD~~ba3Nhr`4t@x(9Az*jJx)KsBU*&3o4Y1=-ya~0& zYwY~q<~e~Qo=>a1 z^Kt1)7z0m|02QC#z*!v%39RI40%gYX$2CoPn=IntImlr`F*!+ZvpM&QB|WV94>?nZ zqK6|w(PKklWs^fF(+%b+kQNF_X?VT0Nk;l(Sj$U1E8Z+PJ@X0z@Ho}rP|0h=r>G22 z!U@*+gBf=3N=5u16%m3O{VXu&tP8;&q>Oc%5|w!vuxo@wW=v%t$O2?qEQveu0+CHG z>LtAn3{0$>E3R&p6Rg z^FC&*bO$_)x010SV(Q42znC4CfjtP~*Seda2<`eEDz*nF&F@J>*VNphbFF$?b$ z0UxXms}%6N-rVfYE~`I3Iq=$?8;NFl0vzLwG@QGTV0}XId2J1(rSVc4uNldmLA{Yv zF;9lW{L=9gwf8D}I|-47Hal@q4LruKs|6WjYwb|fvLT<8o~2R#BsMMCL6qi$v|v5Z ztOr1cF_?ea{@BD4v%A&U!#M2qh$1;rPnZMlUf;h5Wa~>+oE58k0lNFeYsq!(6n=~3 z-194;oI-u=6k?BNF2XtwJFlh3`l+aHR`;y}UtN{4H#R3F%vN-$PtU@PvGp)3<-k&@z~vn^Bu`@0hy6`29yjNudJNMZHG=>)_b)x zo5&!ez{-yDk>W{go@xd`sX-q=N8WX>e~^#V z$AMnsz{xK{p@fbDA)lO;S??OA{P^5adu8hOVV+azsRm2+`+*hgdm^;rj=|rZZdr;J zQoKc3y)6cV*$C+;KW*IXPL?<1nsRpQq;^`qaut9T)|k6iEEMrLF4$JuFCVLffj(&(BJqJ0RQ(3V+o{ z1)83mERwnunsib%Pkd}W8b*3IJ&tltk6=dwaqJ+J?qOkKW(`7}-+rIjOeMw_I@D~u zncd$J!&xd};5IGhcHZ*G@1Qa0uYN$Up=)a^(gRJ?0JMV5Wd*+ua$~TZo6nXVcQ#++ zn!wz)$CG^LpgslE%iwO+*xeGQZ~8hN-omtvu0NEO!(1X5k%`0QWpjH$p|Nw4fdj*O zRxEFOXR}JP$F#FS)lf-UQV+REou!O9!xb=)w;msk_pSD|HngD^*B}1h3O1Kf#{ne{i(#KH!sePqVPbO6t#REq39h`Q#_a^;bLKcz*ZaXWg5GaZ07KffZTI`gh|M*oxkp)LM_->LwG1Tbk5a zix7?6=hU5#)4}N`J0IGSSpgGHRjv;lvD4xuJ)%ALBE^G zT*e!oxN`U|LFQ;vcx>8G5p&M2`wMbV6SyZ#izwCLE}RGaQsjGe(`C+pu8Exc?AX#O zGd0KL$q*5B?~vpa*bm3z{M39C=zs0^DE+0*T}`o$9$~x8bUOcR`4&;u$+J5JVkxW) zU;6eD(tf1xW*jWtSA0xSDfE(O`QX|E`a9&G&qM(Zgw&#;y}@OCWa2jrd_~iXaw)`J z-*b(5U-2rX=qTOAyb;F@3fd^l#}cbm3L_ee69_AmC)Rk_{?le61N#?hxWz6m(ou~y z6%aY7SsK3do>9hlyjNDDxY+C&d{6=tz3GAXydBG`Q4!XNYov56E~xK9*iuTn-ti9| z@x1$%T8{`_TZJ^fZB zX7>OByF;IP-O~bRd0zxQ^b;XS!qu^P&&T5-cI3&E^D{1aYe|f^Mub`4nk}lsGcaE! zBO=(Vav)`&qv)#2?cGvYDMF5(SaKyms|=D*0biRGum+|2X}XP^Ud;`PB&OjRxiEC^ zB~)z#C7o<>LUt!m-t2)bO8;bw19y>XvAfoBY^5`e zPaJdC)x~eNk2ofb))#L3c9Zu;xp;QL0I@pCrpIZ~Vy%h;WQ3^DAaZ^$sA%eQWGrpZ zmszP=P>JmgpOET6{~!u-py@lv%E@Cx8{Ym(6)}+yBW7tzN%(jLB5#6Ro$A>gIXWnZ z$=YOeZGjUkN>{J@L{_eeICy%-k%?Z4ipYC>Nqh5QUg)9scBs7IS%>UN(2??p4Byfb znG4F!HXqv`5Iokx8|GS*P*pEB6bhO_+0{+q-h&k-sloiRGDGs>-GYiugWH}ioEd%m zb9UKe=N`d>PpJ$71$_vZKC7AnV88~8nVtH6<^Wf0xEz7f+EnabqzpI zw*w33*F8jTpvN{tRM|2;j$5fCN1telHxJkBr7P(_uga)+2bD1wV}9^| z7H9Q0mazK@$p)S!(`O1jt!8l)TDZv>N7ru~a5GhHp_0gRulME{%9*%?z6+M4di%lR zx8DT37sXBQNB&5nOKxuvoAW(JiYq=gcE5BZeAV~)njOFQB<@tDLy+O#OA$V^G@q(e zN6{vY|72u*N3U|!Cj6T{-D+~rwU)C<5}@#|>Ga4$L<_C^PHb%zCccM!PTQl6fmcne z>nv+0us{3(*wKSU$g(PU*NYF4z3s#|I|;em$FkR8I(~WD^NQ6KayuM98>?toT8e5x zemQ0vj+P@<|NMS(?g=839lrC?7dFd2qOoCiz$bsR=E`3M>zcViLBLpPah-gzWl2QF z+WdN)!1~jS7j7sG*?Tm6<`09gbwwa8hj17UC#KtB`sF!|kN;QGPB^-@*sr%4yI^GwJW{-IrBaUt%W zPrxr7V`Iw^AK;B;%r*W@FT0rhS1prwx@?kN=U6AG?4J*BmLP5MSFz1>wkjAWyggX` z9<$@DkAcbw8mR7jK_@DBUjbrL#5s?PQXvSIep*CcjpCNuhmEP4I--VUNl&z|g1_zj z?n3iTcUkN0uB^?l8b5*AiL1hLGrRG>#zOL=yBEt7g#lV)>M-`wX+n@z;YY#t;`r4~ z`+HV{-X`t_nCRn0!pG#<@dx?N8565%4C7rwv882)!K=XGZEtXh?xn?=KV}s{R(3M5 zW7?NJ9~Ml6r0OcB?R1YzHy*83=qR5E_r?3v-#%LAJ%p!v)PMOMe6$D%v?b3Sepw(lV{Ik>=+^5>iXwRm$JHC)>Cm`BJ6`r8GKOv2(pP5&2cRrlM?k1X65w_Y~F`?;BiIN=6)6 zNPQirn-hxpD8Yjui0OKd9624s<6Pa~o!^373Vs4DBpW<}a|ZftHg&7(pfjkFftOWh zso%V3g=(jR16gGOZtTJy^f*s(MB`Yu@2xb%&+sgUab9Dp&13OjHx|--Lf==gRpb*2 zdgfQwW|vMqj|VqmYxk09uX`e@gGW=|G^XGVd_HDqku3MnF|tK1`z-Kj4c`)>ppEKf zWLnCHIAt|mQt|XIo??>)Ct+9Iz^r(K9uwGT){lK*l?avvPiqv(<38$Au%Qdha zs$RPH_Gg4MRO&tIgp7ntR!P&%{a6WCa|h^fAFq-c41A32+6rUA48mWq0%029w6zol zIfu~wOrFlpns|ie3`dV_{n#q2kKc%Y-?Iz5673hLQAwo#pn*iU?-kFrz0 z4O%eR^97Zp`$&2-X(?^LRgBa@vmJgCBM+*uM%7)(I#TeYj#?6Yr_y%6tmz#E2tn4R zQdk>#YqrBXMGQYHvLgLb-ztzOiD%487WphNHbf|{wZL8hO9i>9qk^A`eRPmjR|I`t z)WJu5n`VrCO$yuE7IOD^Ti!g%Zd&|H`9uU~@%bj~S>|vJsp2b4!{c$A6CnbG(}Td0m}oBEkOnPUf68Se$bxmo3`PmyN%fLql9Qo- zAa>fN&NLMLJ73sHdrT9f*v&DNVaN2e7n^-WR`6vGo}FNMOsDWe)&qhsVN${rE|<0( z?rz;uxiPbw&aXpSKV31R2R0&OhG{+NE`t7(5&NRjH6Cs(@eK07(!|V6o=N2{ab&Ielq5JL zbF^MKH~dG^ZpMKl@OXZ}pj%F#GnPqwmHFs~`@6UhDhGEpjTn5A}I@<2PRsxG< z^3C+<9&uD*j|XK0@;r-pgcry)#B8X7`G^J9r95l(r5K1r<;&ZOl7cBt8VW3(HBnEy zlW-QOu$0e;_!w*tTU&u)Yc17r@G!$Vgq)iyXt>~LZBabtCo`Cx?m2CAASZ9Fn0Z1$ zL{9Cd!2+O$p$|FdlZ3R(Sj|Ln^C?u^rp^6<(oV&+Iznm+$!V(6jEa zo%P27gyv(V6Lh^zEJE0rGp7c8sz~DRSkzh=U_!XHc^U~=-1WdOrob%^i0i40BZ9ae zzmfEWDY-enN|<;qygnUrW3W7K>#J%D0^QRei}+;s=i6i?FWO8%S8ZxhmjLai5C}X* z>Kb0=x$5qwt?5sj;NjbRa};|9O%D)3o3@MiMNP9MTnTu0_JpW=)YKCRl>-JI|@7>%pSWt<(H&EAP5s9 z7Vx>0lVglGF=GS_orsXz z{n!d1P;ef5bc0m$=X=KQOhwE+27m*X&Lpq=9<~yvaP@hq*|D9Q=$@H&rTD>r?8t~2 z5Klky;PiUqPoz9`3|S(arNiN*vGjF2 zPeNh&VN1x2F_gAqSI>Sw^B(yv8eqr6(;M#|fbDt#E0RAW1d8=~`66B!_d0#T*@BN* zh0l|B6}Mz+sStZEnUOvdyO@(z$bL=`Q#H|~`vbK(4Gq(EtI>Qg?lduuZ$GFu8NR0K zmdKbYPKk)qZTn(NAh1o!wjXf1X0veTtV}EW5O_B%udgm4(F}u8e|tP$BERX?5tmY( zQPRsg7&#z-Gckr_Bmr^x`2AbW-RdQlJa+n#DRnCA#r>1FjM^%z-mtFfan}#FABhPW zNBHswkQvSd+(dGmj-ls{@hsV|vl=JSjk(5-`p zI1}Q?S3M)qi-P7^Q5{O)ua%vxumt#+@%m!MY2GA~_Y)A54<0J7TWOkPbmK45VWX$4 zsq~(5fkHjo4fyLaeiR;l^oe0F9lkrOrTyMLLz-4e$;SfW)yAX%;NwE%BKc^H`tB}zHRZDN2p zu@fEG)%NzCVMd}(%yG7tuE2NU^}5_EpR2>c8^L@mYIW07KU}_1_Ep3-0r-6YV0l0S zU_*(>0W(ojO_%h3eeBF)b9klTJ+l9N%*P?C z8yJ>u`FeDN(!;Ql(3+(_zHR5$;*b_~?bY;eWqB9F?m2P(oBdzTil_(42HI(n9`ien0Yqil z&!cz45f;CEaII{QH`}CZuA4kt$@E#BM@}s>R=n{CaiMGX#+^4_ksFXR{V7|)X;P|= zmLli&WygL%)sVkpIF_}zC@OO=4-wd&Z+Nu(OI94_0(I{E$ZF&gGgeU&Bj@7O?lf%O z^uV`+37eU?@8H%y)n27}pxkcf>gKX-7IUH+0LFxs@yd!Tf_s%LSr|znJOyo(aQ|8F z=d2jvY%!|uh2jbE)Fk5GiDFCif+tYKgl?TanUL*gCU|sH?P!aFpJIt3{LAwdrxH=L z-Yy6gEF)KXay_vXe!=Bjd+K8#6jEhQBxl6+(F^vLrUH9`ha^F~0is?Ewsr4sQT zRCTxgG4I**QK&dh*Hd3Djq9Mkv;|aYK}uD@d0|;KGjKb81bShst1*FSFdBXi^jW#O z4noNs4cgijHqISvKj@&*y!lF4jR$K*s!<=A`%gPth!)`DNOOuAuhh!1%|QVos%6Y= zSEwy{C`*_Kvt5lU^s+;U0uB!mZD4Gep%;8xeeD5rpcnzMly%X2QPNmG8>?dRvWCSOH-J;L;_=GBw>`ozN8~Z zQ*$HxGU{BE;ln;A;l3_oXA!pfMNn#n^q=L$!rn_G587>G z#KVF|e`Yz1u3Mpp_5<^9$4%n!)MBSm9^+XRzE)CKNGDOt0(o6kDx9ga?DQL+6T z?40BEyWGdXDJF!<$5Gnj+AUm3G%}A)BC3a+i$gF)3*Hov2kBr z@Vw(Iy{097XDPN_zg>waG7_`TgLmhv^+`Ki>lx>lwLG7o=93>zDW|5GZ`b($2r7VG z&WA|KrJ3v1=_t5(!qGGK@7hO-UK`6N2zsw7#TOFrOanv-{}p)cCRi)e`(`gr-Qy;j zD(Lt+*|Y1-X}lam8Cw-p*MeKLYa&qB!k4V;`fW4f!H(EZSDUt4!_h-wFq+x3UqRV( zO;-&>b<;pxMiCR!yu+N%eK9_Y)oah1JKlDST~`t0RuHt21Z;>9rOq4=#e7~@IhorxXXY4;)>@^HY zQyaP3lri^?!7G;*7oBNNM==os?L)b4fwUzj@ZS`=>AI67p_xmrk-7H7WSm zV2kmdz^{g_=ox@W#C2zGo5gD?k>1Ya2^*x z8O%J68mXp7+Bikb2h}7xMVk7@#e=RX`&7#S(Krj0JF02u8@_rqYiwia@y=k9`?nr9 zz_$e(5Wb^+X|mh^2xLkTyxL0#$Ml^^OKK8$OrDwY7m{epKm;jp5gU? zr86||xqFZ|Eia_W!+sjRwus#-ox-aZPJaQv4*i;%IilW{fgDV$k*R;qp>+v^#-BVW zZc9=oaFQTZ_m0gQe!S-xgH2F5LvI&=yX?Eqv)^zx0gAd9l53k4CvjJsPsnror>E{JKW@i40tk0g(^FtDTV7?fhsq3&w zK{m%ujEPdgz>+YTObv346`dW`q&qyAfj!*9oO|w<- zpFs*EM7q0`Wl~?^$kOqI-*-U)x+mmMSyAB$3nWT}pN}MY?(*bL2A_p6BpfgL?IMdj zRk(}d7*y17(q1+{>AGksU;fRofjIqX$lSx(+;Cj}1+*RqoyH7Jkous|0rH`=aSkTd z$-Vhv-(F=w#E27nqlJE7WsFGk_8A;dz_6QCBYp~#lXJeviK%>%lZ_?s4^S2-WH%+< zFVEbR;Nfw=Nc?IGcublQb2i|k(D)%iVV=u!IMo;`d)Zan^VSTov?FqGo3J>bHI1q> zvNtMaD7irEJ7j=IfkvxgJnaubW|Ug~98jL`8KcrIYE-v36Nx7#TTTJ)>b9k=Ke)PN ziiaZ!bEP8)x4Ev_Z?pU@X}E|$5!wezoG_mtl!zRZz1FltAv`)gbJ>d{a@rXmr0Lu#bi@};MXuISsm#nqMl<|~Eh43W_l{GoHOaXBj?M2Lj!pSc0tfOF zKNgPJv$^*eM`#x#8;T(VPSD~)BlOP<{Ti#P*Jo>Gjrhs3F{KK$ZuH$gTq>X&@ULfS z!V_jnAPHD0eb^0`RYZ(<#wv%%9>d4#9=nf9%RfCuo`R2pu~)rdT?RtWL~K&?{RQ0d zwyMb|)1aS+eoX})>Mx#r9Y}FMuL9$|Jx}6TjD_&}fG#%O}?qfaX#0fxH#DX14%Tfh%LvLkVC7L_S ze!(-UU}EH87&@&bB8f9lDWT45PBW#tU@y^g$tKXK`=j3MW1qCDGEk#tQmMRYd%vz% zqst-1Jp4_s8ixaFZ zZKhC}pse;A-K!4cMxJN#k3!Yjh$|uZ;t5$% z7);VQiG^&V(g|v&^&Vs6uGDY(kQSV5)T8IuZHfQ~A8$cLkm0a2x977~3v!w@f645a z+davz)|V+*5anw@QrplDpRugQ@(^ERymH*E#k`7`ju@CWTeu6Al@5+45Q1FAtl-(7 zI)P%DH3q*cB~Q~`-(D3oGiu_kR!i_ReO(7Fqfe9?1A4JOC$UvAkC==jiit2#sB6nH zXlgM4!r2(2>z$Z0es}ZQmM$eIHlQSnyM&H1>&t?3+UBjsMLN4f)Py^X_NM5?hXK%t zt?%#;`-2^BEj@}}Fat+zQ3aC0Lz=Y2vk9+RV4!W~vn$h~s1akJfrKWyy9FnD*4px@ zik}B_avUob**CIU4%05hah+Ts`&lB*T-=<@7u4*@}Prab{~9mAU%^}Jl;L-Fxu+rGJNOfO*hVbJK!Zmnz}gg7dLfvl>ei9f1Gi* zgCin0+gqJ{!d`Q?i~!7OZ@9Tj*PrFvsPboyc7q0iwwl~0{)F?!C=Xmbg57|KDhd>l zUDJv7sR^@!t9W()O4GN!SyWnM6BR5UJj=kp&4DmsFfVvO%(~=1@&NBDV(s;bLC;Q| zh0Ivy0jA!CCR1%vq0|h@=|%`=XgWLU=iPN+qCE1P{dfs}J_6PE^>ciNz){RP%Z#{>>{OlFI9w)}wJp#btU-G5IoCeRX2pY>Tk&p>iKvdXvI|J|N8 z)F@bM23qEtZ?<43^AdvHpS_{mXs+Y?e9c`ixdju7%PID8UHOAy7!y;PTPoRpV)$vR zXAShmdwhinE%`;c7UP;2tS>;km7tjbSRffh~<*1EQNvTJr<( z-jP>-Vo5XT+mW0cl!+?QUeb*Jee}@&D?VB;!cM-yp8C|LB~!w}F(0NtnG&QVw)lQ+ z_<`)&z|t~O=_~E?e(3lgpK*_0Exc=ow1XSbi}D;gN}iB!y0OCY?vp6x;m^x7w^7og zDCq_$nvRT#1$06gH%$1;RS}|!8wT8g0-IfQ zuJVQ|W?v1dv0R@1P#D)aeU;Sh0gT zP;llpwui2X!CvzwJ10kk*e}0+wHGy)g@5@*ka9V_d>)pZc#zDEj@{K<_%?~-e6OW$xEtZDLjI?HdUj3{>iu`-9 zR>g5`=KoS;B|ldmT>l=@{}7?|@M|t|DkG^r8?zrAp{kq(-EO^o~I2(u9C?6^zm()X)`B2py!iC-`VD%bW$`IVXG1Tr+dc%-;KjuC_Ye8J0635Qq+@p`r%@ z(e#pjPEiAQQl;AbK_IelCuL<_n6mN}4=;DPldC-lbS*9@PFAB;_fo{M!h5dEO0q~P zyZk9@CH=O0g}Tqqyf$JENjPUYt5o-Lnq zoRcdL7J-W(OzyPG>NxBQ*+(E(STomV3Eb9v|)eT^8-gLA<>LwFtSTG)4~-n9o~ zoUOMU865{)_xDGtS@~`enQQw@kM6Li>_VD``rfGDT9NSZB=pV56TN7d{Q7v5y>dZ` zidi%hJ@aW5w~hsSn`XO<{bTxRu4q->nE=r|$7+OC49iat1{G>TR>bDEDQ=j0y+p89 zo&xMb{XkP)1%v?pI?k$e6a@Y~?V(}f4FU;qlYYqj@)Ui6n>3GLTBy9_@rpW3OV=ojo)HAP0)nY1>HCc?ejpk7ol=gdO)6Rw|qa^+MT5A}!8P$qG0D&cGN_xdRdtX*FeXgzS#;$G0Jh~hUf zWPSeD__@B)J&~c_2MO1aSM+Xz!Rf10x9;Am#o9mK>yZAesuUK`6VNj;w_)N^y4_Sp zT%O!G`0X7Wpy;qd_y07a|CIZOz&`~3A@C1@e+c|T;2#42uOm=)?G9<{iV3xBsfe3K zv8CIULSpZ%e}Qe72k4(B?~?yn=69p2%sKoFo)J_7z%M&QW0&-4tr>*F z=N04&(T^$qjEF@oEHnCScgcq+3=q=3oX?kB_*qcYQY!DN zp_&R8eAO@g9ql=_3j+z1$3Rvz*4r`lHgW+qHs0 zKgxXlxf~rI$cwv5!TDv21at_SlJ*38CXqY+;V{p)V$4I|nZGlv7V}X86P;?3Y<17% zi$_#teIuM>UBB|y%Fz#}F*jNbi}CpU|0_)&L7jKE7)<9B3*kE#c(&(m#USz>ftKC> zub%XO^mKf*y$3sb^h`Ox1abT&bo)3ZPN&HMu?>&8rRzSx3WS0J-6H`0yY!kBJ*PUV zf>G1djmJ71yNzQI+(owFzk>z-87zg(&2=NM0iji~L5^=~{r`I^HC4VeL>N2k(Q?l8 zRUP70>p8aP?WaMY)^}m_AW#%8hMRLzn__%Up3!c3>E|j%$7@e=5O&pxgs$!SYFw;4 z5|O=9e#P6pX4!J`>Zub)Z+%PpHdbJ%`pWdU$aDxf`Cli1~KCZWt9Pk4x-d zGBfabE#s%k1&#Su=5OZr)+#{f4M#mpydgZ`eoOP5sHp zQ`liaAYv{7@`cBv*sh(0eDklDci)?HY1ogt+ibn|4O4G{1cB5X?q%K{ zfHm{|PorO_$)NH%zk*dzlNV1fcf`PgC2=OOl3&X$%gb|!ZHC(vAQ2WL;m=Y=`iY1O zPfsES>y!<3;e&irVe$i2-&s$CX?NwKj{s`$N4N`%fk01vt31hLl&2{HqxIf$7>Z#a z=XeqwFDHu&5cS9J`x6dP%M%)oAb<9qzW>ewfT-v6rYTQ6O8IqIH~!IfD{7JZLQ%Mk zk0a_FZ{6F5$q|AqEiDLZZJs&PPQ^60tM?zc@4~tTmLQZx_G3K$7ASY$Z6`ud?JE!n zUxTTK;=*Y~259a6Qgwt5MTW_!;i;53Iuu*{j5i_3ACc8d=zK;6vVIukH8Z_`+u-n4 z>R;a40W6SrfjkLoi)!S@y<9%pSe~%Z0D)$^)#Jy-r`9rVeEPqD#2ULM&TPk5124=>MKlPh`{K(ZS#=~RJMs(cmi>Vwv(#i@sBV1 z`(7>Sz1eKYobUGYhW+oP_hu}UXG*|P(}W4tvwsE438NRlFv8c3x4EB@gRFn*5AvYJ zsv;IEAf<6yf2HCCq>5X5H4{%bG$J(Rc>sAO8uM5a$Sd{x#|c1Ys8{9vi*O)7rl@3| zy2gequ1g@0=IjW>iep4!GHzzqV9V_%#g~kNS(n#7`uN8O{CcQ8)OKW{WWngK$F{Uhmd0)oD;`S zdXR`2$-FI@GeO?fE=GLP`IsZMq`x`hCV=HZV2`GkHe%%(pjYL6gF?*02&D8*g%`c= zPdtRia8U6J{fQI;^nlD(i=hy!`DLriXF#FfFqj&?Z}K=Rh)ET_@Aq-YbA!Qk%pM~% z*$Et<-h|PwViyx|0bgS;oV?FzIM||7;eguat+PFSG%C#N4>w@9G??rB%claoz#KFW zO;G&}`>`a${l+Y$Vq_F>6R-)?Oq$DXsWEz{6&90^p};H%+@m>}h)PlMJUKkCAuDyp zHO@L$8@B!uQ?GRmWL+|pEy?>WuuVD8)F24{!8`C4%1Xz}5%o0Qb^prIh5<}S(`(|9 zYy&9^f=G3Xha}x2xc{4iu+Dc zE6dTq6Vk_e1aPgPaVRQ%l)!q5>d!r_2at}6*gN9`vl|8t{@e-;>zgMt4zNs^X+aDqy}Miw<7@=OTY@fX>DOjxxIaWjVO;zdMn@9oGXTM2i~J$vY9s6ztZ%6XOJ( z%YSP^n_j?e-J%bz2u+o`Coka@0XuvfmB2X>n&SSu2VfKWP4*gY>=~(q14M5I#1x1Q z872rb{2gjHFO0tI(L_I?h3o9eNE=QRS3}VYkSrZ9IEo)tq_IBDqtGsC-9YBEF` zm)Y;O4Vm~VAJB2ncIx)iR!f>-TM6a5C6pMw7%(p#y9WS7MzXhWOtxun_+kXoylqHHzVAQ3oiK zX0;N{3WUKSfDqQyq7pzJ5OK(RVhQRm|BHUR(k;m@e*fE$rq?eWw?ZJ%zlA8KJXADa z+HN>LXvNekGZ<5He5ZHm`2y)-w%w3}VKAg5d$4@e1nK#biw?F!MduwWjY;5euo%WO zq5E=I$00cGw__#!Zu^ilUK0uVtBoyg{g4`-y4~RF#KObiAe4J)v%w&pC`e?qCpr3U zmSF7Niv7*GR^YEf_cTI>VuQ=xZpB{p4P1-eI;3JS1jw4h@#cv$shE1r%@2D+dkmp8 zJLr2bUs%P8^O!<^mRafd#Ak&ad7AHN%Nn&}N1sfl#ymYL!d9rwIAx9;bM=K41e2rpwgr^300B%I56L&)wvgi~i-ns!|Y|LzdQCMADeP6RhWVIFH4KSSHUGzGCL z!fb4=W+?NNnRG~&rq?}#Vw3^EVdc$L&GuDwv-O>|zmUI#BGLOm+RvN;FiGKjWtRh{ z-1_Zm&!}0NwM&y{(@!RH!wOr%M*2(@#xw|}MlHeU>fEF82 zOq<~zDqEl%su`-Gg>IW8nB5;*AWVt^OS5qC?v_%Ab>aErvMMm4&fM5Xz9{b?{{(-a zBot6&W5^2&b~2E+Y+pfeEJ|7!vqM-EhnWq025x!n@uA0?ZrVvgcB3)%BLfXa4>^-& z8X^1if!B`taA06|lys#MN?EinyH*az@n#*`oIDecHg`RUy7++yoy;=7k(KiUC}qo5 zM)x10lnWQeV(QV|i58-D%5#A9Vpcl(UY@9PkX;W03qH0J>2uPbmo!94)|4~|XqVJz zuDgr+|M)4ywH``Hn7I#ANS*07sM6CgHXg*H4uT&Y0(n6Au7F>5O8OSC8(Qi zi15x~y?J0Vc6L{}+y^xspFT-Q_T66pc^^w!ECE<{%*K;o-{{jpiq79_gu@z`0&CZX z$*5HPyEXvam&?H}h!sHrJc?STEEluz8}rxz#c02-eQ|k7(RX`%aCUh@2G_#jgeQE8 zJMcvnt4Wop^Z7??D&*P*=PU=q5LsC>$M);pC0(j;IA54B%u9*1Sk(b^{vSVTG&w)B z9Tmax=l#AK)ZO^Lp(SNz9HQQ_^`h#B5s5qV2tfnnl6`}JFnune4!|inY|)OuE7UjW zXnA>>2bemK@$No_SS>AYH0&el1JGq<)zV5-LoYCU8YqhRKrOLl`%*{;{(CTc9F8jO z=Hm!e!%W$!a`xgPx%`XRt@{1E{?UUEkmtxRs8L~D1F6#~U0kLMe+C{*ZW3*7PzoB7 zdtbNu&%Wu_%n`7$r zoi7xbwCZ+VlHD|-{s&yYy6Mq!+M9)h!!(Z8$j5TqzDvs)c{_~3-EyxRgf-UVAPp}+ zqx{WL{qccLVJv@xMtP>b)6XUDm(Vos#}P~jw$8`A!e|-c9C`;4-PJzm^9XHwL9v_b&IzBLGes9ilSZNBL?3vr0 z&#E1+8XEmI>atX2*lDX^^{&bkJ&!|e#RAIvmJvkJ!A++?PQFEgs@u%npi0Eu>!f8|`LAMGc zV(^V(P|39%LAtj$VSQyUk;foTDj`vpi-8UB7Kf6gj)3JSW2R%jd}s0LU)8@rtU$?~ zc<=n>OdqA3i6n~dF1+R$FC4qW%;wfB4axPaQw^8gI6U z1J~BKAC;Z;>@vlf2pnED-!~&9%{S!KS2Y)q16hszY;{Kem0X3&4;q+oBol?}sdQU0 z(9SJ*iN(7c&H)z%>h{qq33-*-p4SGqm|2v_b5)1v%dEFcrVs!`-m3O#~#h3uM9)SlisvrOq);TCEJ^_Ew@S^%HMZ=(HAd2nz* z36v}3N5arp&+m6;YeZWTb0wpMWyu)HD_Nt5jDgDitq)!J-bboOu&N7SVTv^JV^Nl( zcyu8XHO#_qEv+2TM4N?YP<;?kD8F8!ciq(!&nYx)0 zFX>qK4W!uJ!Q>%p*+=fQZo&)v1s(h8?cXw_$Mxm*tm`CuAmu#*QT_Tk3Pm$N>j=n^; zkT)=JL^y@@jIltrHa@LnV1HnTySBeDON3>F7K(0IL@4*2j}l+W86~TK{natUKGa3j zTl~LKt)os8{fPZ)IoD(zW;Y|0;%z@(FPL!G1gldx0K+c1o<{AhO>GAgO|4aP?&ao% z6*l!~>cw`X`h;nQ`bVp|bkUh7pv_p%peMf^80tlKq<~_`t8cP=Lem<56LItcfE}Qe z1;sL&ALWU98>EHhDm3o6Df#67kd0Pb6AlaM!V5ESEAL(eVV z71I1;umOqv`(5&dclnvgwPI-JQO?3#nV@EUKc?|;A*Yw3-XX+oKbqnj{bYQ0vq~8a z7ukEwgjmLPe{L~T-bf*!bt`=iSeWDfm6)j!!`juE{ zIb4l+S8i0VOl~z9pWdqb`OiQsazjzMGT++>9gjbsKf#O%ye2o8+@3f3(eR4X8^&gn zFxt?>=!iXQ6O3x?H@fiL;3)Cq4D<2Nj`_Au#72Djr~k%UP{%q)C}9&LZpBXn9-{UF z*&kX+D|o~w>iw+vmfjqFpLbYdRK%W*3GpL7FzxlL0rd_LD=T#q?hf`_M*nHZA9r)^ z^Q)9w73aQ+iGS!WdN!4fv6n~utK=EM?R0FaVT=Aj=R_3t8Q8uy+u(Q4mPN#!U#0XYvgu9O zL2(xp{HAWdY`h$6x}{ex{FpmT5%i0h&ga7@mN^6F0!#I4++|yZa=%vC6Z1&0If>H2 zKs+-A?NCz2wR51vYjfw>4Xi6*^On$Q zx~G4LQVU@mW`Ben6iR&UZQoje1tjMU%f0j;R;%O z2pQn95~T!ad$%~3W%pWHg3Wmk)>YQl>}D@A3%wlGHa}uA6~iILQ1ifJ8j3;|YP#3k z6wg_x3)s-o!mBQrjK_MCMb@YOLb`6CoE>v0>vCEzizEeI49y+c$Dd#{1)oGWpx6?% z+pWY-bX~N~tCvhJZ(omw-F){|m$54yUCBy)LP2!xnRQ`XQO`nIL!oD%?%C#EeKqh1 zyml9UM7LwC^vRc|eqe&JQ8mmq>RH6sIJCck%DB_DT*H0dvT7UM%ZgMw`no0cYqySb9i@g1y!d)fT;`ZTpz+}}@Pb(ODle_Tu0Dr_P_5FhX6nYr_>@hJD>DMK467bH}t+&7Ub9(TKq%LHxG;lpI=bSjL zM!rJHuz1i!Ys_HGVI1{4Fi=E>tGiM*zlG$Y3=Y1Q5qEYm9+ZQJPm;~H^aAW=--Y@_ zKXWFwqIbU`cZy%XGW}_7Ez_FKA%#2tcOH?Ws9Zu?aXT3wNL{UMl4f0aUZ6s;cQ?TM zK#ixpm6uRLS zq2x^Ps}w3LkJCLTN5SUupYxQ-^bQ>b%aqxvEQ<7g+9-H|yb1O+P+_|aHdAkVg5|<8 z<})mFI%*UhT>vMKu#24+%GPv_ho0dtrJdJnI0#*s7bp;#B@1?B%KiNr?-XXmbb9ME zJ$UWee<6#d78L0Bv+hBTaB&?;4;-%{YbCjY*}-F~ZMXFs`nM@c$QB;A>@@pQ(Io&W zVss`pJaL%nQ2~#rH(EJerre>C%f@{o`83TJ!SDWa7poh+tpsQgr8HcV^Z|gT~7;uyY@v}ydwVaoyJfQVs@N3@K zCKsU)(VTNPv<|kuXKmU#(TBVMGe7dg%7|g1bTG?r;u9urTYHg1G4} z6xLVm&1Ac-;047~a_UvcEw;hKcqm1V%yBxEaT&B7Z+y$#k}Q~-?L64ljaT$fF`K9l zbsGzs7;!LAkpr<&vL&Eh$gRjFXx^@T5BW_+H1nmPOCnkI?fXwNRGwrO&Oi;hd$!e% z$K$$(sE3Wp*@e^?B$Im8c`rT>hSe^7I=k`ng~<8nu2?=7OCl}yYs78mTzQY1dBV2c zlLgCejhAZa{6x6+0vGMzY7XXBXMuRTxN}~_A#&=`)iN`car^kV-D1*}o9f(8zUN15 zleh%o5+W1A;Y&eg_cM(9Bl+)a&zo=EpnECYiyED!&dx1;&iMXI9{dX)jI~sIfI8Ch z8CabHmm8|ENsiz?U2nw7vx7sB$gcdD596%09XC>Pn`D*@^(x!b>I!)C#hjAw3ufal zg89|jYPhBjkbc>Uk#iY0dAO%uBWtC&=p&IjQLuma6pm;6@GO+Fv+x1Vk0rxdF z(_PZ-{{@s%^a2;alQGB;`ZcC?W0iwv3#agIVf)1>Nn^^9J`s)RO4`Auy2k`2qOSE% zq%k*FFrlunoY7WOt*scm7Kt=w_LE$d$216}5e+cYqscFkiX)Hy^FFd!_j@KBuHLGu zZK~k%(}Uu9EsHZhDcId>ULrY14+aHEOpxP3d!tacH*a?D?bQ^bsrvRvMq#_v9z5~H-orismj|efOPsaE6ToX07}fUT zf|!@3g^^)DxF7T&{XWccZ;}r!NoT;t)A|J2pCd!Cqf-u(1W&e!In5 zR)iUV$|d%UlO)7%9Pta z65&f|k!NBgUwMJd;F|i%5_Pjwwe5Pw+yY@4SZd>j2st zzhsLa7Q~HbPzd`>c^IoimG07xb7LdWb%KL&EtQun5tHOcb{CTt1flQ9ev4d)%Bzpx zH9BnS4@9=7P35!X-4bfQf*eF63qw9gPL zO!cGzu(;twcDTeL&MU47FCi;3^kd?n7+M&ok!`-ND8r=cC9Yprsk*?WVo z%Qd(`Cl6GXRrg@D^W3YNo&`?Tf{h1~&22 z%mV$=C8$r(PKV`$@^DQ(t6%9&J|PHzA{1gY`^o#Oii{iVW&?^XoE+-_9xZ+;(@t1O zVzE^wx`ihl-m#uW`n{$Le}PO6?FwsQFwLq2v3|?T8{MN6spzfX1TvX=TP;JBcrplR z(+Hzl!+J|egzH?HLO9EtS1>^Sy3O7~0Ce`f*0`YGPo&Ekj3#2%4K1jBO- z`i6*X&91d?w>yI<%7V>!8TlUH3^~0cHP}>M?Ev#xF905}2+Gzga2?SVsUl(wgIPwv zJGWHK-6i98LrF?4nK&0Pni;?S5lSoSZCGf;!a|DC!a2YN$BG^n9LWevvoaWO(u8es zO?{JK5aMcow6K*){>%3%KD}!~aPVOx`l4|I_RTS8nU6}8`*-6FPGU}mD1E*OsN+8S zaPT8mTcE@E8*rM$TSa(rz*e?c$z#A;DMy z^{_SJnX(-&^@i?)KQ~&Do}>Y(rL{Y8nNK`J$`RDb_Poa6pe!dTYoai7k~|YDh+@N*;&Q>{%s}hDK%4HR}W5qe4f6d*(JjXPyNU_ zoy#IajcnjCP#VbS=8t{(EUISmqDx?-Z-OW624vUExl0=#D?xnlS$p(uaG}`(9pKC8 zYvNfzUDIVhD|>B4iqOwJm5(~Z2IeDwcge8F#bLJbw^xD0beB0*j3hw2{AXC*yJL_B zVc}u&p_9Ox$M8M&jb_d=V-+?IaOpSb|IPI_;XcBUrUZxY2dbJviv=N4+#~{talua6 zT1Dwc5W`4uZ~X*?Uwzs3i|EBEJvUd=5kGH=)k-~nSuPGFQkiS25?uaJ1yF)B8c88n zVsVl_W^435EMLFQlPeRp5P_Fdgbw%I9X`wz;-N$hr~$^u#GkutI1vO8+y(x6Z_e4w z@XG;o4Ym5LJWJGC)^kWE_bQ-O|C@? zL}isI>LXL#IQdyUmSCPGh2t!w-}sH>{}H*?M++&dy`&DmxuEa5#1HsJE@%rH-O0k@ z)c0pZ5^j+wUZxgXpOz2Xu5+je-RrdTr69%1dY+CTlKYR<<-!0$0F~~c8=XQ8!YIO6 zp&Ma%IWDN=XFM}q?B-+jxLgSq16>n~TgeN>2^q9Ggp7@(w+n%8&IuFh9dg=U0$hrSctSi~Px7@6chB0vY#O>$=-719HWM(37bh%#1+Fy#Jki4~swLO39|`Idav4xr=f`AwQE9EBim+G}&gV9%yOL14H)*PYat z{9(ywTeAfz7PWl#KF6c|o#77&yV=^#;v`QtfXVh|Rn_N>n!bMJbp+6gDZzcPE?`MA z{L*&NP_3A&p?CwU7F}2L`koo7DlTTYkzb@^M$mIh6#1~jthI_O$o8FTCidDy~__@N=0Xnqz3aWtunb^iY3%K~}5z7@~i+H^*+ zlY!3QZZ!fXum6$0jywYl@p3#+MOS0}Z8d(FTcwAReb5LH z^M%h|B$;tfnH1LR2ru=J)iCG|s2009eNOZ^-mS{umg4!JlPr|3+zYyr_c-PB$eA4% z_z^d>rW@}>7rD?*ayk7z`ptcy4ywMBV%_+`c{%x)8z5NrGpfxNvo6$h_8& zEd%Qwts*E$lTJCFh7NF;b&XK*AvNm~rWM&0^`Sz8MyF*jm(-;0|DYag%H{ANv-rQS zCj>DvxiC4qC=ffa%4mOMxX=R)v2haSYW$4)hK#*=dpEvon^Xm%#NG$Q`P~rg58<+`Oy$XvBylou>uDf7nx>kPf1! zxnYf>RHpG1Y&7O+=t5R{Ix3R8blm_5xf!UnZzMZ+QqgJM8RLUzSSPT#*DqZyG+y_& z{o9F}aZQDUa!0FhH=U~$fQBTaX_@G^P=6Y`T&hhoz^p@~3Loa_Gs2wq+ZOZjXA4cd z8h>&DQ=BLQ^f~oQh1k4^*X0Uy<0y2N_@#x*BmvamLi7UWx^eF1LwTbLv2c*u`^FR< z(|(F|mCjB^Y?NW8nB8>ODeJu?#tp@x_x~3Kh3v9Z2E=&ml3GqVoGLgT&1XL=5TQ(% zB{|BjpUn@T70|cJ0RlYIa3eHIFguFF`?~bR&UixLM9K-NVXBaR7k~ot`B%sH#bF_K zv+EJJPg;rVZe#@ZdA%TjGNzuiV-rMf%6@T9T6B+*1Q@J`b;GQ~4CVu@2avl^AXuW+ z%qVN+ppt+}3?!9q!@H@93`b}&wDSuQaS_>k=DocMnUijF^z68`_BFM2|LKi(QYDR% zTG8{qDEMa5QH&+4Fg*?(zLZdhsk-3%-iLRA{n}?o(YJMUfICdnDd{(5|~d?1v4*8hP1u59C+JMs^V6 zSMh74^mD}eaCQ+}AAWiNj*F$mRB~_A+HErXbewZ_k5RcZzAN zM8zWILwhKCSmV_8F9^MHIZp~g>M^~E;dCRDr3KWz6J%xpaQB}K3P?{#O=u{%pBU#( z=!Q`AB`_ZaKWLaK8u-3PK5)v66o+4BtX?e{8<(#{A^D1ed~mX7m2?sSD^ccn^4A?| z`h0(q1nEFzNw#!#z{UMrD402gqCHY-bw~gNnN(ZJ_t|TB?k}| z%ep#`(;Si_CMGfVpKb?Sm_EZ3y!LWXfDV0up_fqgKZ?WP(h*KOJB;9c@=nkkYh1gG z0CZUN?7}&~?&5@Qs-)f9g%-`9#cz)>iqF1(Nn;n2l-xs*?mPbyIUJg7W{LMNa>D)B z6wu8!YRaxJ%W^#kvgRfVara5}lfNTnz}rDT04Hw$f~N|jqvik2kNq?hJRE(kc5%b( zP`>~7izKR|2h$R#ZHpe@f*ne@0RDZ4o|Nfc&`L+#<5y{u#s-9yQuMIIsi7&PUVHNt zi5ZYASRqe)7b_fl%4(wCJ>p4cbHd;x)NQ3uTZE+s=J`Bk#;@N^TSimC9p4|7w(GVb zz4B%Vi8SJ#vbOdlGFdm?bBd}8%>dS9Nn3f*3FsAa-)m*_6Culy=92qg8~yIu2-hjA z$5&(nbdyZ#1xVy`Fyw26=x)gO;hK7Z90^+p-kf$i9=zk``AWU6P?+Qp`jZrI`OC%~ zOt<83+5*Mr5N4&|otb5`G}N27ux>@vo7%br2z_Q3Qx-3`tdT51r~|-`e|wNIHSY=4 z;>+L~)i%bk@K8>W4ojkG8naZN$e&HYfi}kX_MyeVg1i>kGg&a34=((EywhY$eyfN4 zOYQqX*T#t%jzSX_uXBvLYJ6FwQN^e2gU4I}iGc>G966G;U>B1Cn)CeS(u6;F1?*dp zT<}G(@%+XwvBGADS^oFqF2-B(1|L;A_lw}u2G$M93$s>K37-A{|D{V>K`pEINiu#y zB7q|LQW>P|vKEPl-vByaz=QieNPTJ!x_%FHT#gVq^cCwsT^iaY^xw%Qt*F z4wG5mt!~}P(6`L!A}4JK>8Y!jvx2S2CSX2&3r<*LZm57^CqD1& zQ{GR2KWX{jG@~17>Ya+E(0+e;b9^B@5usVwI47)P8}=Lso1dXo#Y+k%tSQYu>;r)W z`5u#Z6~QS2{ExIwZ}7hkhNQ)2yQh!2%7HXjHRUX&0$DnxoZF*_fofn!?a!WTC!RTU znl>1ID9y!D#j`n1L%VRllOotcTI`P0vO7g#oz74VPz8n~{m{RK9m5)GAsqpK%7cJ@ z=@l+5g?Ax0xw@l}ZlV793LJ+#tFONPtSg3k=i2n9ky@qG^tp|;nY_MHTGko~n>?F_ zhTE^Mf6vt5V~V~HTe83uUWiGy7M9J`{tOZDm5s$xI?EGInI$_-1ph0mSJgnN*3@#@ZQ7ohIU=V4af7BHbam$^Q zGG+ME`R}n4EGuler^L-#0hy)Bi}Ra{26}5Tue^dMFcJz>RfvL^hu3q{$BYM2(@nc+ zYvoOnsT)FlS5(?s!Jc-vtD?z9z6w1ZMSk}9F6MlOo=FqGYr&VnI%8ZB z0}i6zB@D^#)7qlNuLIEjr)#T2-*i7ksA_lbg-1C6fJBm7sD~iS8`1zpS6@C5G+y!oevq?4Z4ENN0^r7sZRwIr^o zM5L53m%=$boh#V^*zenX;|INnTYuoQu>AOzN}ECg%F=lD;61#hAeXVuU-pGv+TL(F z7O`mB3Kz2yH}Q|5ns_+OQk@(> z7s^U|eVK1O4{GCTmg=RgUk5CzRSo6YAgEr2C-~TQu%5U_wf%1KhENw^uT-f_MOHAM zTAL|W6j)zQd7>=p0Plu(_J#nV=~Qclg;RCEN$1ACoi$kSx9W=wA8fsYuCvhG8%Yj} z9jl74xZYt#v#MOk8p^5LzMPI4tq4HIDvOi?cf}4}fNKhe9C_}1^-$wWZH4`V$k8*KRsdDAlu&x#$9&r0iE5`TB~!%w zbZ0fQ4#J;3;DxG7ypQdoO{c}%4P(M-ul@Q(XqDxQN|0)fCJzRdSUW&-W1sRyrAo`z zkBW$E@Ou1#KHTz@9HlvRy0-XNf8JFO_>l~B(y0d6jVA%Yy>2#Vkvc31)EzFWZTG?D z&@xdEWhK?^QwS}fu@dv+KC9G%>U0v_*vB$s1=MEfw1K^fp&hCUl|sU~6%kI{#;T(?#*(cZr(8pcX^=#r64 zwCNVc&BlC}8a2K5!hr<6#6JC_ z`*2>CQP-TYS3Hb%zK_`De(G(iaSR^c6qXiR75y2q#0-ud-q|Ktc@UyNM+s6uLp+xg-H)q}IMJ&=QR4FX0*NbOH*^GQ9a);6%!4%sCW| z*ZY|_8R@?d@aBCFx&G8fW1~N6x*MccxCR5xM@d~6$@%f=5t+qB5;;s%prspZQd}R@ zUGQLEwY65`7KJ5~bqpU!D(L#LcTpeYbqjlEyy*RkJ>y$2+UyvW)2JG45(bso=B@TG zO3PfB_|~@`*3UI%5KyBpJ4eyOXgJGUz&l|UFo|&ZuTYoK`{noS-h5>#S!~UF z*An!X_A5T$IM7ZZ7*sSBbVGxfh1J&Y5OG?ke~BFXb;K>Z?WADibMvByGyF&l>X5G# z5}*!0B9nT%F{U44q&xdHkds2Y2k&GiF{`D#^<(QT)zHtU`VGR6!G5RkqyQ&kdN(20 zjoD>rVdh-Zh=ro02b+f$yu|tM&d1U!$z*qljgb*=EZ=qFeV`lj_(lonF-24--V?oh z7jBt=R{Vm`ivo_x8|jd#SHJh`F>M9h`yhAOn0lmSwaxZBUXG=fW(1tl4ZmrCprDbM z-`*47{MD@Fv-!icbzl;X$Gam&duI*Rb1X$K>{z`1GHa@b0JWJ@kLdbAv z|NUH)1xU`w@tfkUssOiUU~8j6m+(o}A@=zG3XPh>EDSAON>D$sYiqlI@-WaVSPuMp zkFMkP;2f+{mwmLJeQfCheX<}ERuvW$IwrayjNVns*=Bh6{=K(Udu{|g{S?+>KZ{1!^_}0U`zGp*AZimq*6_mD zaWPbu{O=dj`kzeu$jY+zkXH-7=jgb_=XSv0A%eYzf=lcNLLIe+X=;x1py4$11h*=Hbv1Id)KA_TB!*2cmjtr|i8#7(^DMgK;~2tIwY(ml?k65nI3Z9&e6ZaO{Xa zQ_>1-H3$V%>IXc(WO=k(;A;@_+GZM0jdeRa$u)$>#)bh0FS#4yPPp!Q!iG>hkngC? zIyA|KLHuVc*e4Ru9rm*aYM1j%njKkBI7bg5NNFx>-a)%1f=f{(Eyi6G-5?`+VFK0T6z_Wg+PZwCJ3L*sHnmyZW5|O*yp3^U6jgJ3dff&y>NG$zRPaM3)ZTN%4Ohy znj%%8G?#P0rqNv9jxN!=+Oj(q*}_U)a5I>`$bo4`s>~F=e2$G3Jnbyjj#u9DT0Yii9B~85r!OqjO#m(yO~3qLM=o$n24`{^8nZpp^=ZG zhaEyWr+165>Yj^V^9eoXmpeOM;Omk_HLm0%{CT5wVE7#c{3iqr)!A%uc(QYtYlb+;B$m0yxCYn%+~Y%q8-deLqsF@NM}qO<8(u>FH&%-&ER>NVfLJ zCg*opR_(3ZBifd464S6RTA5|DB&&k|u9VR?#{imL9Q2v6e@JY;`njt8o`v^bJhHa# z*_oB}gH^7jeJ1+}q~Cy$pa-x4?*c3+FC4%^sOcU3m`k=)wHIQLzyg^t#gGUKo|=t% z5sjt+@u{>GwjOZRO0Nc4!wMaq@Gms`2|1yH>C^3)c#Wf+pKQ>e{RIXetWGP7HRGuR zQO+H6sbcQ;Tjj88SZ(xfBC__&?8#>2SP4)?FJ!ulh;iPCS)4&+b>cTdvw#y*rW|A2 z{mq{?-dV^Ew>45&pdx^Ho?B?VpTjBag{q%Zk08=9fMVX(>$pzh&8@E;1Ep2~e3^Qj zGCd+b(%m=v>MNF?`b3-7Rffp>OW43`(4NourF!}0N6W@RA@Jomv;##fc?Y@6*Tsuu zM&u=*@m3CRWsU9sESip406iDM|ENpJN3~nmENkKMu&n3?Ylg+D+vXrc(oc9m3@^}m zLAE9$v2gI3EA1Dryus@}Ix6Wj2dx^7pKj}KClHd+a}Kj}(2WfF#|6P=@Q11BcX}38 zUQDZ&g+#%JFOlA7pALL3pEbY)JQQ~Vsv=Mf1;_kdUyd=8O-n`SWFop>%U%F|9m?2) z-xBp6#viD{EkSb1Rp-~et+}oDB*X=Y8(2YfT|w91#>ZkBXnWWLKsga>EiII*_c5{J zIx90Tij8AC@d&akXPY$O5RW?%yo?$MuyXx+C~5TnwRfIhO{LKqhlHX-Ga^!jAs{#- zy?0bX6A?rP5CtN=7m*f9U>qSx8w(&^25F%?QiK3O5L7S>Lg*#HKr|QvLg?kb!F#{l z|6tZ4e9T(!dCzn9+2`#2{C2ou&eAsJo!;yoK!S8Cm<}>6g&w@`n}}&M`1SbSuI=~5 zKQv?Y-4`t+oaJ-UexyD2PZ9iHe=4m}@ztu^nuAsjvumcnz0+X@C5FGJr>`+H`rES# zKmWQ-PiOEVY!z_sG_16tSOKOer`*rl@XEWmnqI-7yrwd~P4{n0ymgCz|-f zGrVuivtpm>mq6W_-Iw=*V~_(GZU5584?{zrntCtWt=(~t;n3*z^>;44-495|R}SlY6(Hkm!{A5CW0$Cxv!4SO(JEk)9Uw^E^|iiaXpQ|lt4&0g1U|;-it73lCj7mENtJ+4H?&3Y zBz;soOS9ky$H)E-Xio}-y8Da<#IV;&1WK*Ax;qwR>G$?=DFxfcz3F0Es>3ss z+ga>W?jwAeI|>&%Z73Ammzzalc_x(;?_IdFgxAC?XGJ);i$2Y2abKk5Ic&71E<`G= z_28lS%hn?augAtVes0Y&ZZfk9(}hH7z?Xd@G!I##x+odV(s0M#zPwm)9RFwWHzA;Y zmgFnHAIU6My8jd@q&LB|D|CdP9!a?q;DJodNcUo?btVVAU6WC!vHC-n3&;EDm&gS? z5DNriV|(`bwi;;){{%0DM?DKke;-b|(~@@7tD)rg#DZpLKIG$$HmMZ94nRO%fK$4Q zLcbwZRQj%CFumYfeym%3+^2I&;~&p5uy;y@1RoIDG(tCH>71r3|`=<=Xi#?RDCVFfy`pANq98 zjef*tHv5YK#wNy~@b32jWI*T7_2V4?X;t6>@yDQ;wJ(7TwZGwp^zUS{7Mt$# z5ZL)9WAMUs6_~?9IFDEWrByvl-!-XlqyUSEZ4?qt^z;-+hBkmBb3GiQ)GfM^2Jsh- z40OMji5~&lj61ZPhtagPkSJshKdCXG;AsVVB`-T7&TiQuChhDyB%DlM*gt^o1Dd$8(lH@l8o7U1IS__A8zP@tK^VdyYdm&>^B0+AoI)a*V(_h zNviz02;F=8qfz=YF5;2*>K^v(eBe*S1ePZ#mq=1*=L_*b_1Y@1&g*k4e*&gB8JhZo zDgLp}SOXq3o1lT05tHr$N3Bt-!zs2(5t!{WQ4C=qnSDa?Wj?)55icFbpB#_!lv(+J z2`5;Z7^bRPFc+{oDhpA5FEH*p7k`;CAVIY+05wtet0~Snw)Y+tCGWxMQ3`_Nev_DU zig*6K06NVlK{r86Ua!AtOi4c{@wSDp_*GAKZ!AstB-dwZg9L+`Zjc5UKuTQMmMuf= zv{0;>#GL$(0TW63R0qC$`Jc!l!pJ}RDyOY1cE@NzSL|C?pJFsVD40OFnFxxULNCzJ zCF8E7AH*vag=XyNHIFca3$KCX?|e}X68@8tWjZEwO-b_Hg zWXEd%1hyz?DD@x%w(5tKkatppXTR4#_FzV*9&(#L5b>#Iw_#mY5;7z|i8SmYr2cXg zP_jFTYjSjvi}IlKENl>S)O`72_bwt_H<^urwiKh-w(cN&g<#7iUqAIu2IXb4akclv zsluJ9jQIU_8fFHaxM_Z=>|FHn8B!;n*T^6*$iEe%F>Yx>`K%EvUn>+?JaB_{vSHQ*s;$z(P z|wJ z?klc$C6%v-Ip#}g;<>XhCuL3{PLSc#|NRwNMW|jw3#W>kB72|(to|xOopXYuBA8;a zOJ~%8zf*flns)+8)2PS=1bZc2Y= zYpW+g_+`2LiX4XNXk>A7in%@rKJcShH!*9vT`b>Q-In;Izn;DS0xIp_6 zB&DXdSzPZwfz!nY(RZT|B0MtF5hXZJYkR6G$pscvR%oftFo(cPp zo*s?VmJbdSNXZWu0Bp9L(wXe8-g%4iwzq8r%$ET|()bVFu7!>5^|0G**=frCMqT9CkifY%f+K62MTqOJ{W)91&Sx9?@qpfoeRXZN&ar$UyG;0}Oy0F};zhMvRx zq62)c8#DTdlDh76W6Gz-eZ9w^e3(^EL4*S6IieYO)`kq2<5Tfbu)5pi=W6xy50@3N zyKi*-OVP`0!>O18PNf5j`aQ#rI!}rpDFZXgVs}me>}kOWxldqs84=*#jqdFAXnm&H z4XBIxGAU^u7DuIDJ1J3E)(WoMF(YsKg$r~U4Lg)eLEy9-5>O1=O=n=6MqSnTD|lwS zvfA!=GoPI-JTwiX7;j(zCJyNLm{3AZohF{A@{5}FgHkYda`4nt3_qvY#R7g?0A_dy zrIZV?i?GND!!kp^&O`(y&4;`(FX`V0R#hdpFJ#gg5l?KzlVkbdZ+FLbYCiEUG#Vmq zN{3W?2DR#(g7J*gOEkK1r(iQ|8B8%Ai1hQM|-eh)S$yn0qc_|Ji?@-jV_)Gii3V~;8^%QIoQF8D*Oc&?f zmcL@QSZagF3-$r@FysPeR2ts==E0IokGS~|e}9SA#ywtap7-?Mn)l_{^*Cf;u=d0g zE&=TU=40?VZc^w{@s{FZ9A-;~$Z}86Lr5PFk6ht#=n!m6Y^H)w=gShD6W0wj#FisO2K!r4qpa^xy(Cc z^AO)APi+J1Fssq11B!Bk zB#nRUaDXwSsDp0enFoCqaRCA+&Hq)!*8JHIAw0sM1y7qVZr5E143xehJMcGt7B8OX zqlgk*a?n1kQX7+jPZkfhswqKNe!|QJ+WGT`oF9KMA-@E0D07BGjFj-SUKwD4*OY7~DE8{fjM9?@tO;xu-Kv!Ntl z_z6(^QTSo-s?8S^U6mtOqLseEss6T1?i)$yQJk9;_GI6tV9LE5W}@6$uNE4ecp|O+ z20CA&7ZM36U^6;v`L9Q;L7aiaoW8-Cd9PS~X5j|O_#WdfeyXmnk30?9#u6p+d<3&T zh6Xq;@Wq`w2i8J&T(IX<{eW{)h!L20LhfuYYiXI>2f`v=CeLNH{Z^%Qu`^%T6B-Z)7c2Pzmk(^3?T`%ln$RA}!k$ zlX^fY#Cu=L;t}AIaaDP=BD2Cnx{A$PEK2xQ@VBLc^Bl}h(1y}HUM$azXupW9z^J-{ ztiK_dmQ!m(u4q;@%n90W)aaa($OQt&d{10)%E#N2;I;MM*+5hIROpcF1X;zJ!|b*S z?!qQ>g>hG>EH>wpR*16SgQQiHQb(Nr>oBUT5!OXXy)-*FD(40>$&KU-`o-io20cF_ zp18m`hk*Gd059!+x&{WxQnVwMw39!&rZCGf5nhb@=?(u`R($lq+c*35i;j4;^l_=5yVWf{>xUcVSiW{sy3?D^>_P8K|MWY@h#bqN|FcK(mRI>? ze)THudQo3xqEQLJLd z??QXkb^G((koAiR6&9b|Znb4?U!mjo=BbfMXEg}C*9)rKtXjQHDeLM){t~a9xJKu@ z;{$ON7ve5f8yjXjQcbFA(`alrt}w>3mw0JavC7zd3i!A8|pS= zQ?{)Y&F783`$eeQ9_B&2KP_0zKc}PbETBq)5R)iPb@Rb&imT~PMiH?!C676*QG+8S zKj52aM7W&(Ok&YnN5g2x36oRNuTcGyw(WN>?=*T;=&S4T1)=FK9b0c3OLf^WE3HDZg#&PnuJ`{rsrI z-GsTwicVsoHx07q!%rrEU)p{XHM5z(|7sssg7R=t+OO`GE08d|&ygvd^fXOX3Y+>{ z`{|J{0qg2>w^wC3#+Mfy8XEK#974&F>pR`fm0^AJ-2>e(cU}?FbOxWx9NwBgQ_rhM z>-be6jvN0g`^$i_m7?X=6v?rWiIpNM5AlQM_DUcfGblvD(!Ow|oa+dv@voT16^cxD z*wL>@JlLt}$t+zo^1WADRE+uPlg$v?p22E^ zWA^>Y&7VGoq`drCY-@Qioh~_7PWcLMvv3F)f#ndT6hEaTI7)F(HhyjP5WVd3@W=MIG+g<@UHQF%lj65MO35z^O>rg>U+^H^N76GweY%4w~q^y z86tXdX|cWE2A$WNWj>;RYaRS9@A2nYfnx=Z6*yMlSb<{&jukjo;8=nGo&qP@xxs(* zIAv;zxNQC3+x_v5j}94m0Fz_9|y3LGnN ktiZ7X#|j)P@c$J^hOo*WVsJmHp%~wo8eT_KUqSx = { marginLeft: 10, @@ -306,20 +307,23 @@ const InDepthScreen = (navigationRef) => ({navigation, route}) => { const Charts = ({data}) => { return ( - {data.map((trait) => - - {trait.trait_description} - - )} + {data + .filter((trait) => !filteredTraits.includes(trait.trait_name)) + .map((trait) => + + {trait.trait_description} + + ) + } ); }; diff --git a/components/logo.tsx b/components/logo.tsx index 1d131a89..87bb4cb0 100644 --- a/components/logo.tsx +++ b/components/logo.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import Svg, { G, Rect } from "react-native-svg" +import { Platform } from 'react-native'; const Logo16 = ({ size = 48, @@ -10,6 +11,10 @@ const Logo16 = ({ color?: string, rectSize?: number, }) => { + if (Platform.OS === 'ios') { + return <>; + } + return ( { + if (Platform.OS === 'ios') { + return <>; + } + return ( {data.gender}} - {data?.orientation && + {data?.orientation && Platform.OS !== 'ios' && {data.orientation}} - {data?.relationship_status && + {data?.relationship_status && Platform.OS !== 'ios' && {data.relationship_status}} {data?.occupation && @@ -741,17 +742,17 @@ const Body = ({ {data?.education && {data.education}} - {data?.has_kids === 'Yes' && + {data?.has_kids === 'Yes' && Platform.OS !== 'ios' && Has kids} - {data?.has_kids === 'No' && + {data?.has_kids === 'No' && Platform.OS !== 'ios' && Doesn't have kids} - {data?.wants_kids === 'Yes' && + {data?.wants_kids === 'Yes' && Platform.OS !== 'ios' && Wants kids} - {data?.wants_kids === 'No' && + {data?.wants_kids === 'No' && Platform.OS !== 'ios' && Doesn't want kids} - {data?.looking_for && + {data?.looking_for && Platform.OS !== 'ios' && Looking for {data.looking_for.toLowerCase()}} {data?.smoking === 'Yes' && @@ -770,9 +771,9 @@ const Body = ({ {data?.religion && {data.religion}} - {data?.long_distance === 'Yes' && + {data?.long_distance === 'Yes' && Platform.OS !== 'ios' && Open to long distance} - {data?.long_distance === 'No' && + {data?.long_distance === 'No' && Platform.OS !== 'ios' && Not open to long distance} {data?.star_sign && diff --git a/components/quiz-card.tsx b/components/quiz-card.tsx index 101fe562..f823278e 100644 --- a/components/quiz-card.tsx +++ b/components/quiz-card.tsx @@ -2,6 +2,7 @@ import { Animated, Dimensions, ImageBackground, + Platform, Pressable, View, } from 'react-native'; @@ -363,8 +364,11 @@ const NonInteractiveQuizCard = ({children, ...props}) => { {showTutorial && questionNumber === 1 && 👋 Welcome to Duolicious Q&A, where we pick your brain in the - quest to unearth your perfect match! Let's start with an easy - one: + quest to + {Platform.OS === 'ios' ? + ' find your matches! ' : + ' unearth your perfect match! '} + Let's start with an easy one: {'\n\n'} } @@ -377,20 +381,20 @@ const NonInteractiveQuizCard = ({children, ...props}) => { } {showTutorial && questionNumber === 3 && - You're on a roll! Next question... + You’re on a roll! Next question... {'\n\n'} } {showTutorial && questionNumber === 4 && Some questions seem pretty silly, but we promise they help us - figure out who's right for you. Our smartypants AI told us so. + figure out who’s right for you. Our smartypants AI told us so. {'\n\n'} } {showTutorial && questionNumber === 5 && - ...But if a question is too silly (or controversial, or you're + ...But if a question is too silly (or controversial, or you’re just on the fence), then you can always skip by swiping down. {'\n\n'} @@ -398,7 +402,7 @@ const NonInteractiveQuizCard = ({children, ...props}) => { {showTutorial && questionNumber === 6 && If you've got an extra-spicy hot take, you can also answer - privately. Just uncheck "answer publicly". We'll keep your + privately. Just uncheck “answer publicly”. We’ll keep your answer hidden, but still use it to sort the folders from the scrunchers. {'\n\n'} @@ -406,7 +410,7 @@ const NonInteractiveQuizCard = ({children, ...props}) => { } {showTutorial && questionNumber === 7 && - Looks like you've got the hang of it. We're gonna zip it and + Looks like you’ve got the hang of it. We’re gonna zip it and let you find your match{'\u00A0'}💑. Happy swiping! {'\n\n'} @@ -415,13 +419,13 @@ const NonInteractiveQuizCard = ({children, ...props}) => { {showTutorial && questionNumber === 1 && {'\n\n'} - Drag this card left for "no", or right for "yes" + Drag this card left for “no”, or right for “yes” } {showTutorial && questionNumber === 2 && {'\n\n'} - (Left is "no", right is "yes") + (Left is “no”, right is “yes”) } {showTutorial && questionNumber === 3 && diff --git a/components/traits-tab.tsx b/components/traits-tab.tsx index 84685e42..f62afc8d 100644 --- a/components/traits-tab.tsx +++ b/components/traits-tab.tsx @@ -23,6 +23,7 @@ import { DuoliciousTopNavBar } from './top-nav-bar'; import { referrerId } from '../App'; import { api } from '../api/api'; import { useFocusEffect } from '@react-navigation/native'; +import { filteredTraits } from '../data/filtered-traits'; const sideMargins: StyleProp = { marginLeft: 10, @@ -156,20 +157,23 @@ const TraitsTab = () => { } - {data.personality.map((trait) => - - {trait.trait_description} - - )} + {data.personality + .filter((trait) => !filteredTraits.includes(trait.trait_name)) + .map((trait) => + + {trait.trait_description} + + ) + } ); diff --git a/components/welcome-screen.tsx b/components/welcome-screen.tsx index 3429ceab..5aa93333 100644 --- a/components/welcome-screen.tsx +++ b/components/welcome-screen.tsx @@ -165,7 +165,10 @@ const WelcomeScreen_ = (numUsers: number) => ({navigation}) => { fontFamily: 'MontserratBlack', }} > - Cute dates & dank memes await... + {Platform.OS === 'ios' ? + 'Meet new people & chat' : + 'Cute dates & dank memes await...' + } {(Platform.OS === 'web' || height > 500) && { + return Platform.OS === 'ios' ? null : x; +}; type OptionGroupButtons = { buttons: { @@ -344,8 +349,8 @@ const genderOptionGroup: OptionGroup = { }; const yourPartnersGenderOptionGroup: OptionGroup = { - title: "Your Partner’s Gender", - description: "Which gender do you want to date? You can select more than one option", + title: `Your {Platform.IOS === 'ios' ? 'Preferred' : 'Partner’s'} Gender`, + description: "Which gender do you want to meet? You can select more than one option", input: { checkChips: { values: genders.map((x) => ({checked: false, label: x})), @@ -411,7 +416,7 @@ const lookingForOptionGroup: OptionGroup = { const basicsOptionGroups: OptionGroup[] = [ genderOptionGroup, locationOptionGroup, - orientationOptionGroup, + unlessIos(orientationOptionGroup), { title: 'Occupation', Icon: () => , @@ -467,7 +472,7 @@ const basicsOptionGroups: OptionGroup[] = [ }, }, }, - lookingForOptionGroup, + unlessIos(lookingForOptionGroup), { title: 'Smoking', Icon: () => ( @@ -525,7 +530,7 @@ const basicsOptionGroups: OptionGroup[] = [ } }, }, - { + unlessIos({ title: 'Long Distance', Icon: () => , description: 'Are you willing to enter a long-distance relationship?', @@ -539,8 +544,8 @@ const basicsOptionGroups: OptionGroup[] = [ }, } }, - }, - { + }), + unlessIos({ title: 'Relationship Status', Icon: () => , description: "What’s your relationship status?", @@ -556,8 +561,8 @@ const basicsOptionGroups: OptionGroup[] = [ }, } } - }, - { + }), + unlessIos({ title: 'Has Kids', Icon: () => , description: 'Do you have kids?', @@ -571,8 +576,8 @@ const basicsOptionGroups: OptionGroup[] = [ }, } }, - }, - { + }), + unlessIos({ title: 'Wants Kids', Icon: () => , description: 'Do you want kids?', @@ -586,7 +591,7 @@ const basicsOptionGroups: OptionGroup[] = [ }, } }, - }, + }), { title: 'Exercise', Icon: () => , @@ -638,7 +643,7 @@ const basicsOptionGroups: OptionGroup[] = [ } }, }, -]; +].filter(Boolean); const generalSettingsOptionGroups: OptionGroup[] = [ { @@ -1016,7 +1021,7 @@ const searchTwoWayBasicsOptionGroups: OptionGroup[] = [ ]; const searchOtherBasicsOptionGroups: OptionGroup[] = [ - { + unlessIos({ title: "Orientation", Icon: () => , description: "Which orientations would you like to see in search results?", @@ -1035,7 +1040,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, + }), { title: "Height", Icon: () => ( @@ -1102,7 +1107,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } }, }, - { + unlessIos({ title: "Looking For", Icon: () => , description: "What kind of relationships would you like people in search results to be seeking?", @@ -1125,7 +1130,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, + }), { title: "Smoking", Icon: () => ( @@ -1210,7 +1215,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } }, }, - { + unlessIos({ title: "Long Distance", Icon: () => , description: "Do you want search results to include people willing to enter a long-distance relationship?", @@ -1233,8 +1238,8 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, - { + }), + unlessIos({ title: "Relationship Status", Icon: () => , description: "What relationship statuses are you willing to accept from people in your search results?", @@ -1257,8 +1262,8 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, - { + }), + unlessIos({ title: "Has Kids", Icon: () => , description: "Do you want search results to include people who had kids?", @@ -1281,8 +1286,8 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, - { + }), + unlessIos({ title: "Wants Kids", Icon: () => , description: "Do you want search results to include people who want kids?", @@ -1305,7 +1310,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } } }, - }, + }), { title: "Exercise", Icon: () => , @@ -1384,7 +1389,7 @@ const searchOtherBasicsOptionGroups: OptionGroup[] = [ } }, }, -]; +].filter(Boolean); const searchInteractionsOptionGroups: OptionGroup[] = [ {