From c5313f5753be3480791a68f1bb083454ad074e8c Mon Sep 17 00:00:00 2001 From: Adam Ding Date: Mon, 30 Nov 2020 17:25:40 -0500 Subject: [PATCH] Mocked List Delete --- .../List/target/artifacts/Lists_jar/Lists.jar | Bin 17942994 -> 17942994 bytes Lambdas/Lists/List/test/TestListAdder.java | 10 +++++ Lambdas/Lists/List/test/TestListDelete.java | 41 +++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Lambdas/Lists/List/target/artifacts/Lists_jar/Lists.jar b/Lambdas/Lists/List/target/artifacts/Lists_jar/Lists.jar index 10f0103bfea64f06d3f6c7aa129ebd9a17a22cde..d347f7d1f94f6c1c4cdcb63b5433f27677f2e473 100644 GIT binary patch delta 28677 zcmZ`>30#y_*MA?G4F+b|_hnFUK~qdKMaw03O;J*_P0Y;9RB$P>6tog8QxQj~>cTrE7kzL$1Mdl0jR`KV^q{g<@d#pZPP`|>l zwBE1d{J(3XMM0nv`}vTlRo4Sry*x+k&s5??h)oG4>g(HCQbiA&l1!koqM)1hwoMsI z@(_Q9D>QHs8KHQF{NbBQsMx=;fceOeQ0|}#jwq$I$W`kNJ`4%Rj;v_WS}O<@p+l8G z(e8D{W}dXTa}qQzy40#c@xv7_u}xTI?NWh@_rth8a3AXJZ=L<|NB-VZ@MAcx3p%sA)85@KDIT5TBiudeFigFGg?GZjv9f!JzUImw77mX-Y%*S&M=9LrDjrq(n}H1qDMhWh}eH{h9&Z; zsS_qloHD^zP;F;)juv-+KFKUDuAFHTTV2SXNxHhMoMf-$% zj0lJQ-QHl*#?@Mmw)(He@zgj*RCPd&Ns)mg%$`OSqXUh_eRmh8l}s=oqTK&@t@G)u^fU|2gb%7X3(#2p=+& zy2xJ;-k1K~HMu@jl#CqJOsiiIzKnZcS`xm6ilEFH^!L)q%4kutG&~VNTemd)i)-B9 zk}q0BX@v_T)&?+a|3`Y1I295Tqm6zw;=bXWw|+^hC^38NsBlsJX}D2LIox0pkJVaY zMds6^<7M8K!wn9tOHG7{O|9p-h;esQpZL*Mly`|VX-At!{t(U7*o-XGBIC7_cSSxp z!?#zFd$z$?Jo&RoZSrSP^&b!om{zpdQxhJ;Wg>fJv`KsSf#^fy{CKO`9v!HCygfQ$ zsE4G6fwT_sKpvN_zb+X?;P2sK4G|7O$>~VSfX2N)>h28^Tpr zxgF+|@@|Y-JFzMzixv?rZcWS{mjBp$vtZDU*f1?3CH5g&P&6p+;3iCZ$JoxvBJa7_ zWbIbd*j5oVnAC0Xn%R}HEkwx!u~uzrr`U{W%0GQ%IE?L-5?WRm+fq9}IQE~8Orqyw z$x))d_pMM-72#^5-99h2NjewIJrI+Qx=n>W#uca)e-Jw+kn`Io#BsisxjxpyhCp3v z=u&D${$4N;x)Xjrvt4YEa3s1cTH^NDa+7TR)a)pcH>7hQk4aqo5j@`56&o8*rKR5= zh5zfAG*`M8lqBM22)soJ}?v^Wy zhliR}mraYk9J`a3B=Qlak z{4-s-H5eD)749~Ry7u`dQ9ZzA6^~r!wYKc?nIv%_rQR++d^ny3K%QI8{wfT1Fm<5I zto`|L{BNa1<+<41siL|dB~%pV*W0zo%khF|5<*H6DdwaQp9O%TpvFGc+^qo!9BkL( zd9DycMT^X9@f4IW2d=B}!No<_;*k=xqHBqnBYDo*opYB{4~z)bF5a7TlhvFTu{|S_ zqI^8KN93Wxk(cBbcwiZc7WR=zQKDwND=^3_001*AB`8p|c<|>Dp=I`DtFVtq;^k-M zo%zvX_K^{xqWo!Bq-QRp&@KhcUr=w_lh z0k?vLin`onlc*_jVX@TX!p1U;#8~!%D^RRO5esEykMqf*WMOiQJBozTV7)>;5&DYD zQru=#lGbKa^1f$0la{&2<7uU8 z)lA&e?L@q&I@{Es4bM#0I-0I1N;U*1pHT3|M_3ZDsjsEgN zv}uqd+)qZlFg!QF5iW|}bIDNN6Orxcdm>s;8!8L&o#NC1j$YiSn?M@%vT}f{!ubrORw>oP6)1CH_S{b9O|D)`P)E?!l&J@!dcNPvY3e zACDFn2RhpFIL}2yi_RZ5jT1$yTxM^z8g>jzFqc%Xas_#pfZLWL_oXyg;vh*9D>RQd zBJA0`@jg-49O34onWsAz&8Mqf=HkM^4y071rbx}S!og{$@~B?!wzQt~7a>Es2;H6* zqn+B8_5?fF0ejOZdeyM#ZQ_i6htpVylMkoS=76RyT3dHGE$2x$5&U~sxHQAunudv0J$9>9{ch6AtxTMGA=3&d{WGJ!Pw1--L)sCv|K=h+! zFKT%QTX17Xjx{X}+D9u|J}`i4foe)|`ni@``ngs)eLU?-Zp$cX<0HKi+9I_> z%0z09bURW9q>e~;Aa&Ay7;xwFzfzwR5{s&~ottW$-J*k=GSo_y*>5W}_F1V_~$GaewC~98O{%aDaRPXA5N8 zwX|nDZ<&QG4PO5yX_vr{mSy*LF=#<|cF7wVS1TS>6r%Qk&ZkD0pGVu4HJpXv*#n`| zM6qsLmJDVa+g9CwZ_+zJh92JNnxF7@50kYNDvP z_B*z3+p=t;V$fiNIJI4;sB|t&q!Bwr$;!J;qODWUPn~;LJ2f;@9@WhlE|y;XA>n=y7W)vB#9-3cg2WmJqICHrpTUq zmqCQ?$l@ag^xvI?hSvS*FIKQ5G4#uTBm%6})ecX$)nv0X}tflwg z+fJ>TsVFUcR-ctSW+sZdT~M7K>-xs{F;9{S?cT>Gj_=Y5BeF>3VTzR9SvKiJJj$1Q zTQ{@%$Oc6T5_!9&C>!_Hh1%d0zX@r->z;NZyJkRy7}6!5#nM>4-B($>7Pys39*VGh zsy5vf=|_nbhomoh%TZboz=fBNL_PD92Z?gun zZG0;o3(f`-MD@2>yeIwbTS+?RyR42>>E7?MIQV5U@4Rx>Dk{FqO8T!(Zxc&jIU6H- z?9Ynho>}$gJhMAqa2w>eBx*RBNRT-t`?EOyLyXu)gkCvg^HZ7ndy`tLxxE6ExZ;5a zvXHtWbwj!f>29R%NIj5xBK1PL2dOtwAEdrW{gC=24L}-*Gze)h(!EGSkcJ{1;I^EZTu?jH}Az8hN9R8)LCJVNx_HauQr20as{0XEoaI1tJ`Jkq7d&!wq# zg#k)CZNRqSZ$-I>-&QRtwJV`o+K?6aoxPNS5lhHQAM?EzhE@V7N%)5_+ zLqy${QeS2?tcJhy5{|VGA;@Dn!9vZ-VYX6fpJeHplgK&T5$$I@2L%?9w*3Q%m`wv1d}4PbB_^}4s05vsa9K=IpMU~9$4RVz=(${d%t zw?ihJTaPfW_&PxGI{`=d!68A2=#f3bCWfBOVUNi@<(Mf$%yx34tQdk;QTy-i(t2%XG#zpFr zkFIEktX@1Apu~ti-A=>`$3AS?vJZ@S**(Y6;=@BD{@=}V#nBPA;(iB5X#Eb3v_4N% zDLzzd{t7^V_D4ia3`UM>Bi$6qYl00pV3_lIwMm_dq7dz+Z%2PYS0;jY zf5~s=Ca5)G2E`z-Sw;V|g{U3< zV5{PfCO?4mp!U(^hhE`0nAi{{Pdywa4u3r^4oB8oEyD5Q6A8r?(;w0*ra%0_ojlC^ z>=seQQ`bI>^oTZf?HKW=n=1`m9p;&K^O&S%ICB>da1T^#sa}TtBG|6B?797bPl+b_cJ> zG%CJpEqlyY)=!G32H15p6-(w$HjC=@(n)eo-kvGG{);Ngh{Qu#4NWp)<23cNNxbyB zjk+n3b-M$Q{cIB7j=2w~!qki0EctWU%)Lq^GuunQc_m7G^7*7-QS|vF>GR!Lyuag( zL&DtM!NT#$)IhQ5aHX_@My7h)X+$8>Zo?#Y7T9ngu>ES1Nj$t^5^ufT{RN92ho1`c z@f9mKOzOj2V3l>yv71$O8bXvvwZs9M#celELV5~mGSU>S?Z&AuEug_}yep422UkUW z8)(o%@6H=X{cAJ(D4G@|K1F@M{M;?mg8Tv>)*x<_ z-6`L{kfRagC%MO|R_r$_egpNHJ=2Os7>797DWCP;t?GQc=NpN;kM1H>$FJ^T@bL7r z*bp_l&ZyXZmGI8|-c$!mR5MY&!VC*aeA?nSBHolZx0pkyFihljmSSV;C|K}Jv=2p6 zD7EUUQSsXaH?FUF?>%i1t|y)``Ly$!J^KQAroc1F1?` zmcOQWR1QV*g2g>4Y}PbbwY&r@dacK9>4lVa%@6ex0L>b*lX&u38ft1mXz}2#`AE}{ zrX$Tjnu+u@(lZ|n?pi>rhBoBIf_vDZvnN>dN&&kk2#K!_S~jXv%Ax`{b9{`AYm-F< z2KBF|Cf{uh%jy0_1<~5aiwZ1sV4~qEz&i$}#MfVW8w=PgA~H`9pKdH@#YLW2zO1sq zFO<)&EZ|VSu(IHOQU<;T>v5_eOe9yz*8|uR@$-OIRJ^q9ExeETrXW(3Xa&+B_-+g> zqP6d}0y`ZP$;*W7+n;r4&2E1-Q640AewOUJcyi}wwaJ}l^?8lz@p!7%&a$c2J|-nt z`}Nyd-8nXw&UE~97BTSnEVfftxTlWKN}+a`MEKhA&)J0I+AJK{$U1!2K)GsmKNCFj zt>d%UY&^A9*I1L{x7c7dnAHE;!GaccuqT)SCfRfD6 z5{qY@oQ3op((_2OwOJ?U%wErvg6j`l#gv8MbSJZjJqP!LzP}1{cBId}4yZW`1c>EIy{r{w>y06fFiDWnb(ZrWlJzo#k5; z5Qr94#v)!+_}HnW7f9B8Wx^qq&7?P@)1ORJkqi~`)2>I0RTv(Uabh_y{bR-V~S{{w8!W?PCniJ|YzGy0R* zfQzS7-CsyiE50`=Y2rakku;5by_H<+JvOtV#F3kR%=qltXLew|wA> zf#PjFn=h-j2Nv;p?J=-CC5vVsN84HTUoTWjE0x_&`yJD7O~zJrl1^G_$I+-h}5t ze_4G;!z1?0CbO;P8O@5{9T1bb{`vd_v7)}#y+lU~j5}J*wwM*ao4-a`m3%Zm$Vb&0 zMN|`9WD~hx&$o)A5MQQnm>N=K6x%|IORFysg7qE<-W0k>(=JLwW(}MWmOI<|7p&EzlhH zg)R9B*ua#9awnRyFoVd@p}x32{Z+efsI)(2VS6eD6Sw0p$KZn;3poZynL{}KSY#1P z918=fl%5e)I2Oj}EgT~ApM`OwYIR?DJg3xhVgX+|UeA`0PUexN$ILp~ zC`(urB%H`(on&6FG+ij&C06znQFq^x|D{5iZkDWm!vU&`Sq9qO=~pmW7R^ z`Ne+oPVMD4maUQt3GIai_QKJ^an~}dHeOx!(HQCo)w;B!`Y@nO?fJH)ZDf5qC!<>y z>}BsP4cD+hB?VA5oVO5Gn<0c+?|0+g6|yX)BZho zH%<#P)89xCZ$G&vNUX^J9quot0_hE;H<8{#T8{KK(mO~ikW{2{ zq?JgkkX9qTi}W7S`$!)keW)dmS#w1`*80SzIOt|CK^r=5%_2V07;*@=jhV+PeYe!Y zHgQcSl0oAzQ72eTo4AJWLwV0%QN1&$Y{{A^v1Q^KX*Z{TbEZ&^x-BJ03Gy+(urF~@ zS#@)5f*6Dmv+^mAjfW%-YeAx_;N$dSNCN32q_s#NBYlFj4(U^*3Z(T&pCNs&z5V0{ zOCr87RpO^g{TyvWddt&p}J3H zHg%#F{opSd!PRqDZ?@u1ntr6huM$_3eu))i_2w|q=Af5Y%AeR0C~kf(4~*O+4-&|> ziRF4lzL!T%j5w+1(7@FSb1+UAZHFW^9uQ^u9b>@E*xA9Z9A(G1n$+CKFlh0~p-QQk zG+!d`NTpG&vIZ-DDhO%dHO=m=Mv?fF?8d{QT4N7ZaLzDyx3npKyrQn#9;6qP{8Y); z;nc6FKEE~CFQ{ZE@A$dWuJ(uqAs_AbGX8ASwn&k2)UR`9SY%JwCJ(Mi0X>Y#!3<3a z_S0GNERM3$ZNZ|!eb(jXK`u1I4OATa|8T-BPkgh@!rZW`dxq>T3-KExKT$0_Q5mFG zr3d?;g!nK_uTli0E#Fc$Doo9hN)A5xjZN26mAD3u?g$b89+Ok&emsIz%eo_4bUUuwhI>)s{4}u$`9xn@cFqoi*sAC7a#6Hs zhf(~g=dh_#j(T85u)k~YlE9)JHt{eff#=LUCC#Z95}ca5BAD)5QGv2xz8vXzEk7qK z`CNminFg)~ueV7GTr;nfMk?>W0o zYW>f!2hVDNa`ypUm?-}h4^3~)k-Rl#SJ}Vy+UNVT5`@jt9&gu)3hsl>Fwx`XZ;WDX zp(N?fc6bIib?0|cUVbA3U&eUO;6+~Ful$DM<_Vj3l!+b#_L;@vA~<31h6zO7-Bqxt z`fZO2nI)0kCjAgw@>RF3ySIUcJpkzum9xbKz#AidApImLi!qM57IYCdy)1beT(!R(te}^ z+R}N|k6U@n?)RIm)I1zE*+fIfQj0uT%562lpiNj@jr{-#hrK<%9|#vcKB%^8cfVf! z+%Ycj_;Hat{73H>KG5L&?+0+5#!p^Qrxgd!#R#5}en9#W>7ceE|InKLT>I1e`pIxt zAlwZUQ=Ny*+UuJSy})J?Uv;Pji3q+TT8yqb6iZ-w)uB7+FT2mGsza$vhrP^=szd3F zcti84;cyII5*;##VLJ{*az6Wvy4as^To`xEF4X$kKq7_pE?RtY{|U3O4>;y$C$R5m z@zBmgwy-Hkoyut+PCc%D1(vk2oldObZ0vWU#jB!8D8F|L6F>LDW8Ion z$(FL1XZ1XF?^c_VsIBUD;;fPTz!h$qR?+Lkt|m0Pr~8~}Lw|WBoBNzdB52I zYo8CN;>57cC$WP&SQ*H4SPu@=od^~+f1M0evwyH*B^-FAR+*!AXgqXmO>l8$zY|C&kxpru{c28(;~uWvorkT>+8VMeZP?nHyA9NI>8CY! z(_ci__i!~lj*Aj?Ym`tm&uUj}YL&^Z*tO9WHC;wgJ-kOrS2IKHN}6`Ue0n#JnonLf z2c4$5aqj`}Nz;9&qlMLa+RLHR`#)q`MR)7zaH8fmW3$M!o+kg$*xY{O7o10;Idg?0 zqC{@0CWqsBh`*^5Q8f=GfyLc}Pb2-Jbq_u><|pc-{FgJG=r0~^%2Q*bXj^y2rrFP& z*%U$r?!A&(oVxS(2vKn9V=O4IyCc<4Gs~(;SsiA%GDNS+4l`}}cBK?N+ zyOwd~>^)>!?vLl}YRyu+V%FB(I%{N;gGclJv`sC?0~@n;(|GP_slx6XShFaxo{J}m z@NjStkB=%c&V^_vt>+eOr+hqZN)RFY&UrtsK{gg>U9#H#z31}68rk-I0TiLlKYnhy ziHO|%8R22jluQK8gEiZch#T^vC(Yr+j%SpIjTEZM(mAPl3BJ)2#a*)i-}%n@k>-hlnp_e_+Y%s;h1FUycF` zL-z}Qdc_78J@!Jl42m(BoJ+MWsr%WNYTK~*d9}{GTpL_=xz=y7W_{m(^@2rYxBM$y z*e>f%#@&S1>3c8Nwk3ir=!VO+ILhsH(fi#V$`IE?i<7Qei>Uap4xdb3mM-4igy)9W z`|H7%quH4eMc90@2<>n=RBmQy9oXHve(le&|%8)f7f!*(pWEV z{uS>{vFwoINV+ebSPIO#?o`Rq+uRg~|$;{9oqC)R=3F_x>f`io2S!Mc_mcQdFg_HR5_p=)sJ8Mi5A zkNz7b98>@HdN)gS);GP{T+}T4+xvwn<%c!Bjt^6&{v9iZe)hLTSg+}G7k2YnbCLV) z-@b0Cai$%a|AdPYcWw8e@LDJHAMd>-nBrrWybm!O)JE;TE7WJp`rkENU!#V2=(?1q zXQZOy&3~fAJ9;(;$E06&s#gCPs#yKvOd5(>ekc@CVA4O5C@;+A7q5iL21312 zOBN|`%hJV{VA1b9d;j7~EFVs5R$Wc_pZ)wr{jB}hEyg_;lFB~6>KB)|nGX|1Utjf$ zs2fFGaqeokc=)ESRCIrvcls)h<`-V`K1TpojZH{LR7ZH2zl1#HdFpde!b>GxR0a63!S{1fgV9&aLK}1a)H9)_=qXvr%&|0m?d6$MLnimNTphA5u3lbiNl2JH$zsuh1v5u&C%W8-Jk2_BJa>m zKR3(TkR5>Q;_fOp{aiB~>a7ZOB8L|9CJ#*?&5$=eqe&DC->m1G zhtnZoZQq;qtr}Sie~UX5J>O!=I>YN^u6k)5-fxH-Z`I#PEtn}WWO+T^XR4D8c9gxb zyq;d;>FsKlOKR(nHY93yyj}kmcl&*nq`mbS$XUC4M|~KvEiecC5kSz_;7Z+DPbX+< zSR#fdj_s_c^H$YyhWc=PSx*OM>Rf!{kSLz|vYsw~)O{ZqfU3Tf(|c(d)lAqWm0|3z z`X^9FICg{d*fsXmqRD7V8C}!Ck zw3@V16oW+JrSjsg6-t041dzNuJkiv!L?@#xnLbk3@iegEr*GJZHpBGw)_*f5?5XpmAKQ<7#l^l(E1 zQDQZl^m9Y+CR7P%ApOu8jyuuNo;hR@KXImE3|+-ZCDML7*AUxCP)n$7h$L^Kwg0Q( z808CYlu_64x`om8hI^^8)Ri_jq^<}^I#HYOZ^KTiq$_K`02jaOVoBTxaBZiezYqr{ zYKIK2D7wj2=T0X>uvlE*a$nHaMD22*D}&DE)umY$6lO)ZX7jBtv=%L+UH37&$vD1B z6#ZgdKQ_|o9Ot@^$IbSkeU#vOh3h)WK((AC*EB9Y`3J!>DXy=%QS9+foX|7dVDB;<3my-#x;cL5Ex>)&GQsQhY7wN3-Fz(23k;4$s;D_linc)ZL zGh93YJ^PX}m@{3?r~%u%)<4tr5_ctC>4o+#a;5rQb-3M?-^lXL4zBn4{(?1R{#~wB zEK;^Et#40PqqS%Sy<8@iA=!@hb|05Qa|}%*cfDnR>_a+(fPpS@22!Jj40Q27j3Iiw z0t;T>Z&Bbr-v1g)5a1JB2dU#Xdp0 z|K6&L?@QPNmZ&art@>JUT6OVSAS>Qc&K31_YHqpYQ%Y`Mxl~E!%dwLAl74)u1p2D5 zeI+Y`F5$pc%(4{Rm{lw|-I0H~%0-S`@2tsc*%>=WF?hABHI+%-dVRH*Zq=-I9Vf@H zQ#txCQ_;e1x)NB%(hvvUlH-#8X2mU6B`f*p6TwR2o6{7!36$&nn;$9^v`8U-aYi}9 z8qTZMmZL_+$#a2-CULoDR@i6AvJWkaoKp$w0+kHAht8JHaY`j~BTIu5l$qSWgle*K ziW~vEzb$X4Dl^#q$-=f7%2Dq4QP@GS_=izG*|@U=YqKaXR}cN(il#Qg58KLlk8#NuHNr=jV?oN)^kCqYCHJ zv5GQ~sk4SVZ{U;h*~}NKmipQRMPa{1w&6Sl)RkMW!~@VoXXhs|3U1A#Qs+%llxFU} z)GvX^1<7?w4SGsZILcysQAYx@4=4GkYk|5`OGcK-63KN;9S_)-3TeqxzX77bHRG%USr%5Ja;?S=vQF986Jc{SZjVN$6CdXG=~O12U&lmgfOkmMrK2&q_hF zlT$wgY7AG^>wq+5HYRn@EJfi>6;HwkKs*Uj>em5T>TIFvKm_Y7ERyqZ8l23(67bfYPXYj$+i!fczYj zmBCP`k5=l@eSoA#asOctKH|172vNtooOFlbr|7 z36P!hyf}vf#;_NVy}yXBe7ScHG@VBP?`4O@%Hiz&l3ra7>{SwLh4F$)5C9D;&f=kq{gY4w+MZZ4K|ROz<{FA0!-i=Coc zRuUi`)eig^OyiVx(RyhB&$C^7YI9`b99JHo=%ERsEcM-$0SfQ3 zSd}jWk={vm?!o7`tc6lVUjt;dlOi|^$Rc13>bN?<+g@G-dSWh&lJ_^KqQkk;?s6l#Z+V48Q#V4`6ZIzNT|0E^FrtBO7 zWZ*|byvF6>Ygb<5oJAJ{lntyAJR;}tO99F>u1M@Se+e`w?|CN2`Ch0&`HY}6VCT#j zgVLYkT4vsPtffKuAd-ru+{^DWD9h5RnAfE2afnn69{BPEgR+Eab60mxF(|($QDfHC zPrEKMD9o7D#nG=Cl(-OT%(YA2GRU>oNye~={_#U6nNWocKEX5(;q~reIU7ehA1zXPixm@f7q~(I#(F6D^1Bn748l|-D z!$555Ykw=!H^q)x=jNH@w4BrvZ_h&|PB{ zATNQm*HmK`%L$j#egueDc;zDHPpj%mVDXgxKe;tn){QNom4SB96%R* z637FP-7W-d?DhvB76cE+>1bwB9wvXoOO$hYD}0efgn8?y?#eJpuH*zqv^L2JmSNIF zKn{~Qj{63PZHN{ywQU=dT#BR+-vA^bN-_Nk#A1?U@3>7TD+l)qU^n(i?3RD)Vv=r| z&czbdFdUU7gOZcBJ$%ri?-c&&ZPK>_WUU+l^5m`nB5RgX{|$(TFU_z6J_6+Z0UZOV zbAWhC*v`HMVlm2@PQ(X%Y)i7`R6uGe_ps__HgAHVa= zNiy%fr!&CIR~=9b-bu1#oOi4-DJ!@(hj7kIADI-n4Yqx(%Z&Gp>SKVZoGZT<>N6n1Hak6>{a3I0d^(JK!{aB12)7?3VYRYFOWhg<8fYe2R z0{~@Ubp@y~>>m2Lk9L&L`^04iJK(% zQlvA0y!hJ<$omU9w3sjSp~+=)3Lr0=yg^sj12!kRtOfr7vBGd<>bz&ONr`;|rMx<^ zdt=+Hz!eeMp1vOb0m$oNSTnO+CnfDXK&H*B{01Oigc zVCg0Mv@pv>N>0jRK)KS8V>kxH@{y}jtCnVI7m`vwpmYWJ;mtI@@nU;nKa>N+eu(DP z`4-TutHdf_`lz=%EDGPMk>2CH1#l!8zVyR}rWVOMyCP=}pvmNE?0lxBMJeH!PI{m8 z))u7`$CSK?KikftY^2&U03DoZQNAH3BZI~c9RWR+o$*~P%1r9nN!y=?>6gAi2<~Q4 zMzM2Zn|03ZZc*CFa*izb_pm6di3@p@wB#O(*HKcUb4PEBax8?3*{yFLZqeO3JKNuL zEYg1D1b4d6;?s^rvm(;;^rbGC=08AWlhRuH z;G-tC7O5L$fQ`q&>P0|~-sHZquOmot_H|g5-=aW3u8jjaS>@WO>*O?ioW#?M&XQCo z5NnqtZ^H!?lb7R}0LThUfx-R66RTuQ7rl|(p+64TxIR3Q_ zB62b+0n1qi(#&Q&VwGklRa66H6_pWo6WpG*02lg5`T^2N^eC?skV6~_5&Ba;A2F&e z@cmCyf|AGtKqex)_!yA8kWSzlAX~DGP`Zw_$_RyRVJ;Baf=+1#RlGzsknOVusmw?QU)EG0q-|=WnqS_yj7dknV z5ZR zdwS%46_7(m_T=61!3=wH$^KkGW?xEpA0SIumf9!DQfYjnf!O$DEcFo}$5N;9qhDix zeV>y3$<3v@1dvxW88e&)>_wI34ELO@&#;`*xqv*Sa$q|Fy(Y~vMQ4ZCyWv0_1M#@Z zfoNQE_xB4B`)RhiR#SD+%0WI0$b(#oAA=fs3BpyaN86Z3xvDHiJ`0eE9R^~D#7wlv z_hw=y5DQl~SinYuUD9NlRdF_%7OafmSIz7}XMTe(4Cp1Qv?Axqy}`<-^p-^5Buv2< zCfFpn%hkm{1;cy*We-0B(jz0?2P7X3h7a(-Cw*b14y8&p!KWYeFiAJlY`}H|=i=Q1-6^asS`rN6$u*naA`V zqz{}0NH2-hmH5#YKjZ`(@$p5g#zunyz1S+#;R@VHC#k1>3tQuUiR;ouQ%9m91E#fr z`I~^9bayw3gwFQwEEOS2PkNv#k5AOgpM}6Q0b73_qR2G6bI? zJkOZU))JlP@UQpYPFNljb#~&@W=}Wj(}2u`H03RT{QQoGu2jjPO9$H@s6DlmTNDAv z?|?aYJ_FQ&3R&Zv9d|&Yte+IYXQRML0>V27@WBT9kI@bTMFZ*D`mT{%0T~3&ErCod3l{#Ws3ShuJvLiX3*MVp}lBeH*s2^!W9edkZ4FOfpz}ez=YNeP<0R|o!ZMP2+W$2>>nZo? zTnh9VJ1nWTV^uq=trYhZJoyxw2B9AGvwBXO$hB2k;^FWFFwN1o^$1Gj6qA z`Hq@N9W%UVXC0Hr_Pv0`_JtkSS5!>1>zuyTu8a?6NVKl*u`Amoq|)yX*%brRqNT`r` z(}37J$a9M?0q>%^@^&Wq7dvie03XATvGhX*_GbXQ5+peeq#v^51%Przz;Q^TdK8eo zxAY|Ke$_n*`=u9wxM!*NhXBdIr6o4~O%6}*FAtFWlji;nAbsOT%M-snWuHC)h!;fJ z+eSd{oLC-3JWBH$cUGF8zD#@!$c{y-#0@}J33+(g=bRl!R{B5_RTYp+CC?WCxvdN) zI-i&RLe9wxKs+as@Q;ApRK~6;wRXg=AS~rR9gyWNbznartB0Vs`VOMUBcQMWnC{0o50Jg;N>fhY`-$C^=fb{wssrJSi@ zfV7}XO??Z9^hLVy3qWi`awf7a>Dt4pRSYDn(z(UYKrA3xwfSXz(s-;(rUN>sUk+97 z`HYCO)DFHICZ#6#t!a1>O&_D^$L6yDDU#5ys=o&$f$KAw_I{XdL1Y5XLcmoKR7^Mf tiO%ku!<1I+kD1f?coy9_sKY>wYg6;BVO|sKoB30zcF+kdaj1_Lwf`!XoFped%Aq9yKYijtabVrFKhf=i*Lpp|Huq7a_;Hitvo>s*Yrvn+GmLR2`a8;c$w+_uhlDHmTk>dVD*bsW)Ionf z2yKNwuNPm86tx#>{7Ztv&D>|efBs|n5Be-g4{u&l7~$`gDOTN|&|FkLUuP}J4GTbf z&L}D9ZY}vl;xkt}N0uB6;~_4G-9sa#hj($;6zMP2S;e0t6B^rA?X`LhLE{R?vO1rE z^Zu@h6#4#2^yfn&R^RYDK5MQxkgmjvAe$0Qy>Dn|NfwzlC6Pcyd44zTZJRQb_#yrb zRcPWOJWOer@`rCK!Q#NCe5NBWOu36HI3kqRB1f$=co8HVJ2N6hYb`%m1P@jGMZ4D( zlTQU|H#A(aQ77MjTHTx~8b$h)CN}SiJc%vgN>ipk`O)|Y;U5(fEXr5Zg^IHJ8jDT^ z^J`f{N5P~03?gTOpRs6Zgo4xr$xmAvVOYRq)6`3M)S2ZsOxf7_!x19KzAHc!-!uh#&tcebLr+vL z&HKKU$enJ8^e(L)Zph*;&K%#CM6HvA<9>q~q!}%uFxwEog&~`pMu@_E*?*Eqf7}@0 z)lJcvYy*-J$)ughHgD-f#O|db5`Jin)lSU3^e% zZh^nAkA+~L|L|Fx)pNR7=}2+oTC81E9hzYhY0Jzc040~hB1L9?Qjj=sXoe;H>8TSY zOq?>on^A3NbdD7Fem==8F0Gnr6J^WH{xn+IiR@;ge7`x&YnZVoky{;IZxNHC>ivad zIS(VwQ02z#oaN>q>Lbq)9Vx0;J#7|AaTc3wvSztCl**FzCU)(@a`SjWSy^e8ZuqM$ zNwXyLjIsXRnXU0>&pO2E`1%AbJ>7EMN|jr6v!sUjNZbw9BcJojbo{Cl&I{08k55PN0=KLm5=r}7X2CLj}(ApMG8a;(*BIIjoglE zMSYIiv_41efe$gcZ@y+p71T(iKNV~&dZA;m_Cm*yFV~=^*8k^_BN_A~IV^O@Od29@ zVQ63ad(Y&$WKleFR5Pt^Vd!!meOYnnRw{xpr_tZbrz#>v@v_i(0B!xU&@Zm@cuT)% z5up_<3R~yLu>BvY5#n@ERFpRQ)v)`AbKZufts=ynv7>Pi>Uj6`haRhioMmLQCudnRz;e$cOQ&AJkE!<>K&2(+Q&O0uOH^L2H){9BMMW2J!8`WCSdp+HKTOo!s5gsOS4XkEfjT9N+8gzus;kTn zbxL|S%B-DS9hE^&M2lG)wU_xn_Pz`#v?Dr13rmWAm>h}*!5!R$yWTmrbE3$7E;>=W z-88yY7)>U5JFI3_MRW^M{9v?Io7yQlEt2xj932j2JFNtl7DTtyE)0(Trz3aKAAvFvs zr6O-12ngN9VP zJ7Qvpn2^sVMQUU2h)L?l>n0t$zsPwmCP;idLypT#F1vZ&E^<4#!nE2MF>OMqHY{MI zIQ>dKsxOLx_Z)S>UpQ;v>Ix?|v54aO3wBZbUW{FI?&wO;K3x!V_&&6P9ZnL}R4eOV zmr>htC}vj#4^7iucr+$P)YioKYZWyyU$H2$V;++n8!6g_#rkWXE3vO7QGLqSkbkx- zw+7+jyMjGtQQJPxB&r6utm4rd>}yM}oJ|l1lj`i^!$)G70c5$=tgk|#2U7>S%-Wxi z#Qs)7y*wAaCs|bGCk2awygIuUekE4$N`grVBFUT(CiR~Sc5aDIP z8(1DJ9JvWTfd|}3q_B@nh!EA|UH$-y=$LBdBtek7TunVwEJmK}9x^S>Q5@KhcU<=q92$0k?nz zi`tw-lc+9q!CC5YVPhF)Vk~{ZlOf?si2irS1y z(Atbj-2ZIDqNOi(Ikb#}iA9Z?xAZgk@#-HF^NL7msG8G1$dT#+Lj{cr4(r5AlW56G|xCJWLEBY zuc<a8uE&VK`>Zr)ym1qJqH=q-3O~NX@i@!6~P6sb0?ZlpgdKAw#MN-jNceo!*}E zBpcWP`%)-+)!_6tb4I@-Da^#lM^b2WKuZ^?tv`~I{gfLCAUJ|ysRpfi&r~&JoB~TwM&Aml~iwJ2utH)`xm1LY6jUUUTd6hDy|nHao0EZ#HRENp_t1Pz!^0wq=XF zUfxw_KHZ{Ti(SQ z+&GY9ZA*jp(aM$&4xn1-HK{1|d`m6$e5>p}4eg5WNGopBP~PLgG_A*jt+(**fch2a z7bg9e)<)6$?u=NGnf!`D>pr!0(ot%IMR$n8{%w*O3^$~&C?BC%#PR-ZSadd|jf)g@ z{oACmu;yLdnIx+IZkH_Hd1`Hp$b7s_XSKdtfMOQE#(xxC^uvHQNOvH$MQVqXj?^CM zPNWV<9g*%r>ZJWJ;O^&tr7>S5geuW+1!0gVf^g?kgiqz5`=-h2}M3H)eTdS4fV7I1f$+%c5Hj(xA%C0hHaw9EFFIV(&_!n8Y^#MF)%ChfK4 zj2BrnFhZ(Y{+OZ|HSjo&DAEvoJ)mMue~($dDR-A7X&Q7dM)Pb4Ny)cvR132T|sl z!rAfSxosKJAm`0{I$jhnxhG82&gu~$va$x6eXN~VjSwG;wmoAwGoxV-ghAuQ`t2Dq zm~CuZ`M`Z4qJF#YsA}01MF|u4?a1JT9NX@8q{#gWqFLqWYxf~!-tMXKqWt>r*uHJg zu!-_PgAL;J4!uXEb3r`K*ddBn-D?tUoqB%qynEWI!MO@Hj)hJ+2$-F&<|50>GE~U1PkbKNdZS+}eINQCz8W|73Q8SXyvTl&I2k5Mrf^taicq<` zU0vC>3640te8{rgKJC=1Lrs)e@BFcE_Tfgc;`uLih7J3;CucPmr`%b~9=NZaS~*iu zT6lS%RXbm4Jqi05gFq&*onX+#=?FXxVKX7$mH ziV`4l_efSY?yC#5!AU*~(tdZZb|R~KK$sZPC6C$CSiRj>8SD$(!Xytxm_L=9?+N$m zi3NwaFEZ!%5A>M@t>)C>eS9Xz3wG&HW~|uywWM`bhr9$qIco7piWQIFoyW>Zq82)J z`hq(^l=2flbZVXmxh?-n7-mh>@t)68WM z;c&J43H0P$Nc4ovm^j(nPm?63s{wNqY$)zMQNfzX-ArB8%||Ff51UAq>au-(EaK07 zasoH^Nv@~t&qyb!9=SiG^M9Q_G!?nuW~4UQs`72aWb72 z=^mtek-8&gBK1J(iPQ_JH&P#@zDWI$`XdcM8i+IqX)w}#NJEf@B4ud<4-Wf=BZtPr zt1$~U28r$;50|zZQq)wGe>^-)^xHl>R-^|!8=(Q#+i5yrN-v)2vJ>Z1)Y<|+rJXil z`|!6S+|zHX7MIwSU@hgx;nC!48_tqTj}7-eOQuueB;&_ZOATvYU!_M~BP({`X~rB1G2F;Tb$WHn53ko8~2+8V(oI9wOr1$H76Oc58_@ zF&ez#@9e_i`w)UWo*gLEjBF+=nf6JRuG#UN!voQNrs1H#B68PeTSaNfm~(RZ2Mc7gNCih5Dqdy zRX3Ux4jWskL96`~o2M=#m%RZLj-y`p_A*RWclaqjy9;cs__%7-Nm-fW68Cn{KGI(R`|JjtEz)zQfV1*Pa+dw^HwT z&rb>Rq#ko?rOrXF)iamt?x(t9v8m1?y3LOc7R3c65k-}!v$e|8_orQ=G5P3=+o_Fv~cXlmM!bxh?m`K94S6LJmUY|ESDb}VJqr)XoS}9&`9g^)GNh@YV}`! z2oPV-8dYFqF*vg(3X#FcQEkKeOI^c(eCOyN0~Oa+&Gyun32TNDpXp#*Uuy z6!jM3THa=5fI$frZM!Uw7CFu_&D82Z0}dGGzFuWgr=loGd+FQJU(l6_;N4&1n>lf6 zb%;SR2<$jwMe)K>XhT>{!2d(Fy?>5=qJXONHf#NbWs#!1$-`FB|6BoTM?Tc5=%dLG zB0Z#iH2L9II1VNz58$#Hm&fb6yLv` z$^sqjMX`CjQER>8@jDMtmU|*`TJgm32X7O#=-Tfz_ez`TqUZZeKzdSpzR$#NeD}b; zWL}+U)N1EWY__kVw*U?lgoj2Jmsy0X?$vL@ur+C{hswg9phMv{n1S2+1Q$L%;uGg*9O{rVA zIY76cP2$@z_u*8CdWoAQelDB2y+k6Dz3iJ;BE%=3PYM);pHGrD-<`$#JKi|N&D#?w z9G^_}7mJTnNG)h2D)Vk50+DtbC$X`>h691^SCdTQk&Tmh>+K#dP-Gr?+TY7otlBuK z4^sgz>!4#dtLiiaDdB3d1AP{?-82d5X{5N?S7{Wz8dmHc~+i96zJKFmhN;( zo}J6ooY&CM%NNP3A?j7Q?#$!x0~VUc33s1eQQVY(9Z5VaZ^yiFv7|#DpPs@64&>=` zY?&UP&*f=EJzqGLb<7L(9;}h30^@7Z>d-|-#p{^QEfRd}Wm4C_XH>keT^r;iNaTc1 zv(d430F8$ez-FAICVh-PIWTRMk9#umg2c(fX#wI>)c48H**Y!2C-7kj;zn7W@_Y+9 z8bN-7d!B0f0i)tGQLoiAtz3+Gh*O>NSnl1T&bNEsk+}QlE?jl|>YfHqPd|$dQnPA} zirrfX@6PK@b>O0!iL#YuXi)q!7M~gMro_3`97Kg7BB!%t8*4}Y!e=ABdL)5TE3X+9 zpIvaHf6aaG8H;c|`K-ySozLpomm1+1hjx*(CaF>>%c|A~nXp8~T_g=8Dy12|lF}e@ zD3TW}?nPm>rpc;h#URncAG^61RN6H!*oOhMYRFFD#b<7)$@#%WgS+M-O+%WFGy`cS z(lbcUelWOeK6wpo$cy>C*r2l|So=yon0j;QbS=-xqAMs6oxG2{0r9$xC7+OSX-)s4H zIw+Et30Zf}a%j!&oE0w*5RjNOQE=r{>Ptz>9+G4_w8R2H|uky|^HR^F}VI>ZInpYf@T>+Z{^+#M3nv$iiJi z44SjJV3fSs<0Ip?qQHG*+)|XSCnKtsN3g5myaIK)J z*6CWogF#evxnCiP1Ktuui5N>^pg8SUD6OKQu$izK3fX;Nm9RN96tak}G8DEA9{cQc zul>3}E=TYzE5U(zLK0{B76lzdib`W4 zI~6{5D(;CctG_bgkjiG#o6+e{x~Wix3VA6vB1Phf1rciDrzUW;^0j$^qFk@)rV1~C zEQS8Q`hE0rq-gU6Chss8w&qo6-y5B^jYn3l+1>vK*qqI=6m}9r-*dtBn-*1<0D^H?e$+zrt+F0ty@N6^Y4eaV;#2 z_$#1LZb4z|B81&qn8s{yqZl>k@BgJYks|P5VUQ@Z7V@U;t>zldiq9PocXQ+O1#x0!U5(pCM+(e4Qq8iM6`z~GMqU+vv>?Ds)EZe-9av}+ zIbScZiozgoqHvfRRA?02g9_z=n|scBe(rAzd=3iTtVPHhT4WakZ92<2EPUD~SwTnY zLbVmflStz|OR8|#!Kq8AOgX%*!&@#x5welyAK+>Z2R16~S#9xlV2RRmT4308~aQv~@B9=N9`BN!9 zBPw?+iqcy+MEXCA{JqaWH;h@@LX>HX%%V;5BAx)N?2zO|tgiEjxAD_AN}uo9n7mg#D=#31abuWyEwX zr+V3SxzXec!d@jWeVku_|QGvs5LicwNLpX)H}BS7 zeq;G+=}2fVEU*`j6pnkATeb1(@{h*QK&aNG9o2^drEAZ(Eomd`(>WR4vS2TJcS)!Q z2bJJQ)o|XPAh1@ z>0PAvklsi70O><5am?DQ^0C$@HpM|VdvV&(acdXziN=t_xNS^7Ug5o^7Pg6NI}r~W zr-?d&V%o&Dd>_ht{_?6_0i{dVMu@Ew*Gj!P^P4k?a@6ff0ZM?E0)~8vi^|Gd>*B;9 z%$S8wd3-!LaYPFcmH8j17J(B;A0e$n`WWdGr1eOjB9$X;K>7^nbM5V?Hd?|#pZ5OT zjk|ar?%Wg5d!ut_r@(Q)6+KF6Ir-pU^; zR82qE8{^&{Md>XyQXTME@sD(fH zaz=3VoHbjlc$20dsqm}Bl_g)ogRI#SBHA4CU`yGPTm8kY&*g!Ud*%TG**394ugLfE z$cYlC^c?2RWxSw6=YP%}1m&?`sjiESn|=W$G0d~&!#3MQ?W$URzN zR4c84ijN3_8+c8#XPZ&P|0IWLAW^Nh2P!ycn72pj6hB^3*Y60>3yOcL;OlT2S5#ft z7U&aHvXOWETwzx;BhitUbbBa&mT7yqNIT{;I1?@ExPnIk_@EjU>bpjM^^`ksV% z5lpXA1h_5VQZ@=q_0b9rKKYGJ*V7fa9i^oTddiBpw#_klRd?bvB((7P9cJ;!u?kk; z#=enlQit9RW{B2$Axlbn1|&u7`!B{8cXQerZZ8{*E!k<_nL-qM5UCCHl%92ZKhbU| z5mnZmLE_)za_QWUN8q)rJ0nH66S{7=of7A#h{edK{-tJT?=*;QdJemb!o@p{;!iz? zRh4qogEInsO@jvq7Vor)N3aOIX6_|vPNNXx)SQ)pbl-{!lm+$WNXNtdoT}h+4Pu+f zJyj9P{WLBSvMl1`Qx&|M1KqrRL1hX~8~DU~%Z5JHvRtbYr0)1UQ1N|i;ifM@))D(p zSMZ4eNKJ3BucCJGZo9arT9VA>uJYJ!|DtKt6-XM=W~48Wwjgaq+J>|pX$O)MsS;@? z(k`SgwQ1G6&7DE6hQK4Aof`L9Jz|f)mYBFFd^AmkHvQznZR*m)fw(B9chx23Nd|4{ zvwQB~MmX4RCMxIeF^P53DDj~}@SHuoPmq3c&Ymz)z4|M&cyx|@V(ZS9?vpR7sLsJT zd-y1o4>w$M_OSH14+!}z+^FW<3{-qJ2OuFu6d&B<6I8edLHIp)k4dfj8T#Pq4crHG zA)@S8JT$#MSAYIXAFbeaEksn>zxCeddyx`=&C*^U)9F6w3=x?xe`6Hu3S^h=Y`!hx z$xYq$U4)O_XgGrxxqZL#nTnfKY~E2OG6(E8izS7+5q39Zo8cZRP*nc5*QmC8F349& z+;;%X+=hIo|=g!}zwD>WB~ zO*T>AvBV+|mU3E6FlZB&RO$Nxw)XgbAXH?2P-WHbeZA_rmvmMWh&Ad6;eg^vc6*ci4PZRvu2~e%Q*~tUN3adU-?hso_WzUJ@NPh+#VqhjT5q z8MV~|u?tD;FTzjq4}Klj9A-RjkemeQzMdY-y(n@x$=R(Csj z&d6in3O7Y7?|E`}6YBVxJ}2AIU!KX9J|`0h9PM+mV+iQ+`fw^n4BK)FJGes?{@f4C z!NJ;-fuj1aQ~qk!4>owhfmdq+xD=5oUJuMZ?fHETdWI|PP9v~id20X~4;@<_Sd`xH zB+@CQ(^`7J>XYNRkL&m5Vr#RmIteYbVe6{zHBi%KpH|;Xe-T~x;%ayt7a?lbD#2>5 z)vnmoN|Rl&Yop7nyNsfGc#o2*rU%=V6z!z>%pRUKpS)}dI1`Tw?mYlLX}bSRq_A4g z1W+^geuT5FqPz7>C}q19(kybVXX3n?+i(7Y^GGyjs&GUUPd!@I#85mBX;AeO^07OY zMHJ*B*3+WJ|e)oJ3;LbjM`7E&31#d>bYM2G=To`oL#M6 zW>?JG`rGG>lusvLo}adcYO!l+VYMcn@S(b2rZ?oS86<+HR`auAGmhWBC=Zk6)J33bR*+#LV76fyHeAZ z{xYNMuhifux926#cY7#9ToWlyxoRw;{KHy&GI<3i-lGYx4g32Wfmb5gm{BowK2ZdB zxDqTkv%1N6^i9xHy!49COdE#?{`rc>(;xK1J;(lC*X%E>bWVF19ql5xG%w# zN_`EC&4R1p;^f~r=|(nR4OZeiS<1GmS=DwNh$j70V_`n>*>v}RYSNf=dQhA`>z1r4 z%JyIN{4|POj+=*=%e5N)#U;jINz9756;K-eH=e7|H8_oo+mzDB{tXe1segOCo27m> zG`-ebR4@PA^Mxtphcvx`4^yW89W91__P0e?uj^|Ua_f3?k@M}}-e#$Br5)-2gou9}p(0MX$RfuV1eJ9)AtLvQ8zCZ&ZhMF%wizaf{+zb{g>-C}NCLZd>=8F0&b?GK6 z@9)2xi^7V3ZEEoJ5XJLJfLko^PWRtPvCSoWa_c+?S#>UHuh=w>Y;nu;${2Qb>_zf5 zFt_RQPvYy<7el=aC0^*{-tuo?6egD_oW-{qdBppYhj&3S3YCjd#I+usXT^q189#lZ z=fy11${zK&axs}|u|{n9;ua1QZrlo5`4(2s<1|M%fA@Z_my6uPw|vYjOGB0)u8Y?- zxoG?EF2(sK7de_@Kls3xx1vNVzl*FO?xwsT#IK@P{VpQ?f%GTRUr3jbYLPA@T|v5v z^f%H!NY{|ABi%r{iS#ehE$vmm+q>8v4r_axgGW42=*`S*e3Y8o_I89?_8vsrBUYo2 z3iJrOe0_*ww|O&;#Bc!34>qW|Nbhyqrd7AQ{r(T!^{F%qUxY-dnOj2?oAyJKx}6+- z^5dm)XDn_nV(R?GK4Tq;v^x$B5?qwtr_S>Y0>%Kd@R2>5sdK*$@p_StLeMD-wE|P! zwkOb^hQRk0Uv*?mtLsgh$--%M-RSR*X?653Qi!@~b@$TWd!{p1A8Be<;>8=&>-au@ z*si*Gad3Ja9n-7Ha}^XRGwS$Nl4C|)Cgql;P=mQM>ga8VI_zCPpl@c>(Lt$>B4Sp-k+&Q6DeX&8(vfNWGJPXL@$h=NZpVmg`6kclsGwbLSW<_BCnG)W1R)%7sRh{w3HydUXFBZL7$D8RhK_G4an{}-k zNeg|82NXTt;+}Pa*UMb>@_M}A5I5hdyPH}tQDVr7I=atPCmZZ2dt*f%y~fkq)vS=c zZ8%mRuif=_-CI2D_m#5mZO?+w+PypLLWpdEHQaIFEK~qEGF*R{~R~>DC zRmWKx!|`Pu9hj-}@QFjbc>2pay8Kc1e_#Nr{8BFO<>gc}ZnqSMvAgS@L>=MSgRal* zuImS&rSGZRK%YwKw7RVIyt3R<8yHxhz|5QzfgPoIDX5;#N7S)@QMWsS>iKXE{Od#A z@)Gy9)$kbdX{$DFKh&lEC?pFCSXhE7(b5NW@iua9o*P>ZXn4<~D)wg0RBIOPj&lvZ2+ zI-hTWn)|4+l$AC&rK|{WI$oRbZ~ZQ+qzh|5KNr92Vou!jbM2s_zYqt-YljW42)fBt z=S?R?uvlE*@>r18cJNfvlU!f(pv=3y$*wtESE|;yX0G?CUuk_> zq_|ddp@ipBT~6+Z6<^!k(#68ZoD%0+xkzSpgK<}yiwuT<1V2K5New@^kmlkA=+T#i z!JO`DMh#fswf^a@mv|^?N-wr|ktx;Js>7YGyhf6Db#T4UM^`K%3+{2PW|p#cX?=UR z8ns2s@98oz4@q~lxBIvhT4P8Wnd_|s>Yuy( zVgh$52Qxn@2V>(jN&?-OfAFM>j5*sk?dFrNK23o%a3QTx4#dL6F1G)Y<3B8Ry~JWG zWqKyQs^_(06Imf#Y$7GO#y2FnEW_GEZ@BuCdg>;2=So*HAvOx7s*7!cH2=L-7vGn# z1uRxwWLkA!a7J~pFOU`QD&vZ}pPE-D>6Dz?UnWJ8>2j=Mx}+VSDuM15cC2DS&^heC znn{+78?%}jryKH5SG&lN>w`5}BL`#SC^C$od!!k|K^7Z1uc?^Uz}BrvV^nO+Iq~W zIC(9|5v_Mt_QYbs%_zmjHe=x1x^7^Q-#k)?rg%1j<#LN!r2O@@HY-`2O2 zl^JaQWMSJh7dN5qmhbz1LK6gCjd z{$Z3)I_@lnZJ3ob4aBH5GI)9R)G;@!oehEY-Nct@` z;AutSD2w$)9SO)bocN=z1L{sK8CfPvB>k8=9i?Z$?4btGdq z^*A8K>e7Izou(4`Xh}<@E(PjAg*)&s7R9T70rsRqnyESjA7--|ki@Eh9HFuRsDA@; zP|Ai^?VG1491xMkQ_Fxj9%D^YYXM1iWWT+q>HW%JUjT8J zk`dW)c2CU*N}=I7icz-!@^efU219{9TPa8P z1Ckuc*{%hm+3I3$ER{`JUpl1c=3leW-dBkbOQ!b4v%jpeW7(FEmkB|4XCE!Tsm@$-#MDoI?Sl z*b2zeU&L3wJUR!O&ZB_$vB6^DaQ1#luP!Gx3;+BcPfX5aDDwhE$oentP++a}lHEHP4Id7vu@e8Cbn4Hy> z1|^oZ+A_d%9@}S7CIu5_<#3KWZcxmm){-FS!a9TEWPdG{X}r;>oQt6DC`eJCiZd#7 zK%*unVN}A36OV6Qu7nBHD|NKVW|2zAjhEu$%sfPxdz0Jp9btfL&@-<5Rk$H-Hhx6E|Ei>hcX;YFATkrWX{-cf7f5?eHEM}m zaLMgQf!M=Ko3tK~EsC^Q{{k`#boY#J4vE8(dI7}L>+Ttl-Ln+8p7^4W_#i2I1&9q7 z&*dl(&qXq&-Db=N?7Ec5=YtaGj}DX4gzbQo>#NBo7DYLMF8CynCm@Gi1lTz2 z4?xTao{rPe%%nU*_J&=Qb44qBkwqQz)=%A?W|CCN1rBR%k_#-uq=|qWCUG414G`-P zIWVh;w51{`xc1V zC|5cjAMmj*$(Bc`DRLWZ`&j20?;F*}0h1dhxdy0ljn&J5B(jnNUGdQ! zPm-s+$c@;190BsszLq%MX6=)Umdm(qcw_E#?!FebxOHj zUCPc(K$0CbJsii$>S4fv1d}(Ilu7hs34Tm>=ftZ?pP7`Q1UUjy7XuCel!4V%pvJI! z=;vP2RR%~Ap$sLi0kJ`oMtjIclQi1;Y5+ED7u8xIo}tvq9-B-uewVOBhf?Q$17cy3 zw&<=3lQdL3_xV5#tcq8E1mply)@`ZDy1Lz(3CQ$v)BQlyR8k+mSyC@qIs?dqzCD1v zzmQXl`a++YbemHE*=_O$UEKiKocd)c_y>puh9gsFuPr7e`bm_scVhF#x>t@XBGNtG zAN~Qz{xGDOS^7!YcP=3J&0c;Z5PNw^$2CBvLkeyeTq2R+%5yC>ACQ`|R?!0Mn{RWf zSsGz!F|q-PM|xzt7LX&`Gx(8B`K*QNaC}I{8)i1K>wwtA%C-I%kQG>3$v!R2(n-lh zSpq0M4H<^xK+GTMm0GnlOTCaiTOHbic*J z(=1&K=v;iizw+WNaePdrofa2`yuqwYrpaba}2XwMZ->A#vG<=-I%ZtGhR3{Kim+an#3n=bh z&SwH33oHc&4-ic(l2KjsMskP#1YqM1P2B>>K?=_%B*Q8>BzLJ}0ojPi#i#%*V;)E~ zoAIbss+kl~4Uk1tM%Ybod)fk2=ridDNHfu+yb?eTaVSLSPx*YrsJ6iOKTQeBP9^|y zCvu370eJ{%1g-sYIdP*@k{0g*1~J?#bLo-X4@AIg_Xc>iNoJ-$TDAFr+g znE6Mp1kjaq}W5)M84H6Tt_6KA~C#O;j$WxKD9|z<> zUyhqRULRL3#3Vp@TmW&4S1SRjE4jdyC*%T4fgALWmorOx0-zsB+UJ}t+Sn@e>m zAbT_!Gn@hJNtNXa_n54&uw2r4fV`w~V!Hr67R@q6Cx`vra3GF>cwS{dG%vaP`vr*Y zG;3X}sXA-rBxeEgBv;|bphj8(a8=tNZA_!|Doc>h4CKy^0I@-0B3k5m5-}5qnX4-- zV57n=Z8FWOIGaohR7Q*g$hyJc11F5|0E*8zA9R-mpT4Qly&T(+?IYDKuGtEHv}*qZbh%`}hUW!>qJD8t5tR z`EDpX*#)Re9;uQ2SfJEMsSKlZD92ZUc>M42qX!KrWiI`=K7zD?vjI8OScM;biEnIt zjQIG1jgM?J7|=rtOLe#sH_{2}8Slc@xL@MBbkW3;DFdc;fO(rSf|Ksi7H&+8PFJ&Zn36T8=i(TI+n`EBk>}!B*`lOJY0Aw30d3Y+5OhtDjV_N_K0nTut_G6bI?JkOZU*5aM#@vryZNmw2e zb#~&@X6j55@eE)Kf>M>Y0`l`aUOuIgrjC~ELHh%>r>auq1R%cy=HU4(PzNgHm3DUA z36Az6Oc8t*emIFic;|rLSV8|W+M%GRAXlr8$&MvJA4G{5kl!S7-AzDTS8gl}_%5I$5y6(gITEm-9bvg(S9{p8 zV1Uw;cI|0bY6(gP4Co~XlJj{Th~^_{`VEN2kxJCDw;gieM)P%~Z)d9j=>?*GxfIvO z4$BM3tEWB(IH;l2`77XP#=HY`K7{xDuMuaQq#a$DM^aAvzh;M=>SH>W0ewb~-*mAZ ztJ)#9C}no92ZDJ+FJ%2Ya4%O^>FXmm54~2~v3WpyDJSy*XA$K0YR;H7cI7*2CS}a< zo}Fb(9^3Z>`iANLjIt{>$ARv9yBIo-J5bKmQhUOD?7(>*RaxxH*6h%Ln zEp?a5agGA=IFhk3CnYy@^&A7}p`P!$OQn3)0J3~a^LpngPf>p!h(%p0`hGy}Nj42W ztv8jW4*+uMJpAZS6JrB*4u}PpRrW5te`l4I%JUK+DUaMQ9|6i}oMpQ+k_R#-nFhqx zL7rQD33w0HmA5mAzu0j*1Nb<8jHMqkus;jfl_2qPApMX7F9c+*m8RnuAej!`lC=9( zw~r3ZBP+C(r79qoN}4YMa$6a$biN?%g)}=a z0P&j0rauC5QyIG^)z}fcqGQST>4404DFX)pS$t&W$cuVqInGmnWS68QYy#qGOWye5 z0T=N`5-}2piI5$=56Gj^25$@vFW2*-KXv{}ncE1+GA9+`CZLDHb-`;#RyeXhOmrE3 zWYU-%N!A0UP~TGLGB4>mCy9RnkcnqMb^wU|7$2=f)Y@^hf|hcnh5@pnWO;cDh~!0@ z@ryvLLvkfDF6+|6Rf~XRRXVr$8HgDqt2V!)FB;Ev>2yHn^ee$iug|D+R;NSnhDff- zeQOF{MAOG8`myC6~_dVYO62tYCOnE;<*C3n-#yblDSBFtC-R#FZyKf0mTCqK5 iN*CZ+bmOFs05$ri=G#I%7S=ffFqmzojF$GIRQW&EVPLKR diff --git a/Lambdas/Lists/List/test/TestListAdder.java b/Lambdas/Lists/List/test/TestListAdder.java index 9ef83ad..f933421 100644 --- a/Lambdas/Lists/List/test/TestListAdder.java +++ b/Lambdas/Lists/List/test/TestListAdder.java @@ -63,6 +63,16 @@ public class TestListAdder { Map ignore = new HashMap<>(); Map body = TestInputUtils.addBody(ignore); body.put("name", "aname"); + try { + Object rawIDReturn = listAdder.conductAction(body, TestInputUtils.addQueryParams(ignore), "cognitoID"); + if (!(rawIDReturn.getClass() == Integer.class)) { + assert false; + return; + } + } catch(SQLException throwables) { + assert shouldThrow; + throwables.printStackTrace(); + } if(injector.getStatementString() == null) { assert(false); return; diff --git a/Lambdas/Lists/List/test/TestListDelete.java b/Lambdas/Lists/List/test/TestListDelete.java index 162b56a..240261b 100644 --- a/Lambdas/Lists/List/test/TestListDelete.java +++ b/Lambdas/Lists/List/test/TestListDelete.java @@ -1,4 +1,9 @@ import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; + +import static org.mockito.Mockito.*; + import java.security.AccessControlException; import java.sql.SQLException; @@ -16,7 +21,7 @@ public class TestListDelete { @Test public void testListDeleterError() { - testListDeleterCore(true, true); + testListDeleterCoreMock(true, true); } public void testListDeleterCore(boolean shouldThrow, boolean hasAccess) { @@ -50,4 +55,38 @@ public class TestListDelete { assert !hasAccess; } } + + public void testListDeleterCoreMock(boolean shouldThrow, boolean hasAccess) { + StatementInjector injector; + ArrayList rsReturns = new ArrayList<>(); + rsReturns.add("cognitoID"); + try { + if (!hasAccess) { + rsReturns = null; + } + injector = new StatementInjector(null, rsReturns, shouldThrow); + } catch (SQLException throwables) { + throwables.printStackTrace(); + assert false; //Error in test infrastructure + return; + } + + ListDeleter testMock = Mockito.spy(new ListDeleter(injector, "cognitoID")); + + Map body = (Map) TestBasicHandler.buildFullSampleMap().get("body"); + HashMap queryParams = (HashMap) TestBasicHandler.buildFullSampleMap().get("body"); + queryParams.put("id", "30"); + + try { + when(testMock.conductAction(body, queryParams, "cognitoID")).thenReturn(shouldThrow); + Object rawIDReturn = testMock.conductAction(body, queryParams, "cognitoID"); + assert !shouldThrow; + assert (rawIDReturn == null); + assert (injector.getStatementString().equals("SELECT * FROM List WHERE (owner = ? AND listID = ?);DELETE FROM ListSharee where listID = ?;DELETE FROM ListProduct where listID = ?;DELETE FROM List WHERE listID = ?;[30]")); + } catch (SQLException throwables) { + assert shouldThrow ; + } catch (AccessControlException accessControlException) { + assert !hasAccess; + } + } }