From 352e4ff611a1306f42015dcb9b9e6a6d01a11eef Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 7 Sep 2024 20:56:21 +0100 Subject: [PATCH] identify error (subscript raised) with a comment by the offending line stating that it needs to be fixed --- tests/string-set-tests | Bin 286544 -> 286504 bytes tests/string-set-tests.sml | 97 +++++++++++++++++++++++++++++++++---- 2 files changed, 87 insertions(+), 10 deletions(-) diff --git a/tests/string-set-tests b/tests/string-set-tests index 1fae262825c1f8393366664378b129f757494ec4..9f4d2a6c1d5ed882dee375dfe418db5eb34a6ffa 100755 GIT binary patch delta 73543 zcmcG%34Bvk`agWmO}erO-CJmzq)?#jP@qMGv>=PPAZB#jXp(}mC@zf12%5AoxQ#Qt z!f?iABn5S(qEi`|Qb!?e6;afoID@;StqWQ=ToV=YexJLfH)$)*{QfVWPr1oG=RD_} zXMdiv+Gn_A#M+B05oYB84e4A4EnB+TZm2d2h+D+&1eJPLq#-x0I>^C#D z=cXL#>9n-Hqu=x_U3^tVjrIPCecwIu?cROAUVmI_I4{v#@|Q?N7B* zJGY}2wahoO6M-SzkzuxnR>!lDiP=My$t-j%o}FmI`$~z0Dyu7khr{8_*q%(5sGepg za7*@NSsK7Xl7-1q8Vm6(M$@h@w@(qC1Wa#=5D9#&r$pvp28lg&pa2^fd*%?N=9!s zbL1zo6C7Zi8F=Tnbk;854v_eUPcP&SJM$hPG!r>fRCuM%=0PPoT01TWJR5Iyrr1jX z=Z3%)+;KdEIs6&SQ|!#MgH9De0?N+3h=Q2BYSl76Nt~?fU zma|40n6r?Dyb?OjVId4wUT0D<99YVytZHVhTUienUx|T$4-^hQ!+V4?@#;A|RVTpP zr*u{{5a3z`b^GRbBS7W>y}E&>>#yNr|2bVWeM+xW-3798MQiJnUd*cA>P+zR3*)2J*!H8+e}QZ|AYi@0(cNpTL4uK;8(pC|Cp} z7kaPQJCt1++|SsFe&~mRl6U+x_qAcnyKr3}1%XkNY`G3&F;LQfJ$EFUm?I#uC_-AN zMiJ5zq2!&TdZwh))J4g6C6#jibt)w-2KG9i5VWykuX6*RE`;{GY(f`0fHPLns>wW8mM$hx%$PQ{4rq;7$9W&xm`p{pFz5{!^i~YI4DWP3l&16deciDXrw?Mom3!N^ z@JWN*)mH`yC=&nxfRzB~0l=yUxTrjzTRrnOaR+I<@`J7tQzEn+^eZo6jnbE_wAKts zfzD0!Gx;vihM3W-*#uL(q-cARV3I^aDQQ)b)HV|@iRl)Y)rN- zwSWO;hN?hx#`xWP+)Vxx+IdkoknTP5^+jbnzP-GB$M=;pcbr^%@G-xs0!D68(3_G< z%Ik_CaZLTma3;<0pctRTQ$0p_Mp&Of&l&0L|CQu8eu?DZzm|$!z;+awFO?MamWVEniIGD*>EI@ecWoW=q8u9O_Z z9g?HW(R~0m436}taR6<2rwrht=mA)-l*At|;JNbySEwDnr_Xf5qP=Ykq)EiAR?Nax zogbXxw|2HIlpJ`ESuY9_K>q^CVZ)5d!DAJ~v;g@11>9;{c7Y@YE#TRg*2Z@+RGat5g+JBJV3N3dK2A!pf%YWCxl<8@g}^#kt||b$^Y28LR>hXr+IGu-}*kc zCp)?hu(q+*Zu5X8?`9`cSL$ZgvhsaUUZk9XTZ?`Qzn^!MSJ<3>dOX=&6~xgNpMp;{LJBm3gvyFY7^}tQoZgB za#-yl8?!f7H?c`Js74!OjV@Ry+q(RVV9y(8{A9Y}&L-xlnr&~in%Tgr*{snGm0N~3 zu4L9&)x?UuC}T&pCoG#6b?o`7c_j@7w;JNwy#fwV{RF0~EUrw-Clfsh7}I4->U(_4E*>g~Mni+Z!z= zshAvy?|vk|?}{Ml6o$Zvv1u~FcUE5>1WeJ{pC@@zRSI@>;!TX|#H)4kp`r*3z`UhK zU?HDYFRa?{E_lAAD0qIY-Vqg^$1u8RfB~&yXE%V!Q2-gNC}C?~>;T!BQ3JGS^}^4f!ZIDB!f+S|`5irAazXJ>Uz4uHLCK=o#{B9Yy%z5Tp@|pAYM0 ze>m*muwGVJuNmYaz04dO(&=&aSH+Xq(+vqB2Aat#f*yD`cfP_Lq-E15iuh%9=jx5lE-(mx7?tdC0L*)b^eEd>gH27^|#(=oVM>%)Gv5rZC0w7h31D70%G)uSVb z99**L%0N`{iDpn`7KFVFb#SDFNdGwDl2yQqLHin{9l9oh8GAMO*PNk>cD@H_YRlZ3 zqgEcMR3?q*BwYYtKCM9_F(dr1E?JHqj9;r~?S{#et^ojEK&$tSru9ACta2j;;2=iy zFM>}6Msy*vGi$)Si=<*_HE-pEH3o$;v4ZJ{NlDeiqsCK1H5^o(FA9Ftf(T%V7?F6) z4=0HxhTwzvXRMN3DL5ON3w8rG0pEG2?_3FSpZ%*^3`zpm>ONQ1+2Wi_5cm0KD~zRt zNgz!$G1ScIYGtm`ruwLhnWxkT3~y*fD6*9d8hJVUI8{ zP1B}EVa=)4s|D78C{H~LK$U{t=p1S_niM);SbE@#e`62;P{S-~T^(Q`KCOec{xK@w zlHOGhSo16OJo!Nnc>uaNX|r)^9X=8}8%stM5Y|tf^~xS#ShTXu8jSoX{>)V1xJdEn z3~JXJT&^)xEI(P!>&{Psb9>+?VA04=F2L1A_iBatHQj;9dWd#Dt>fjfvt?OPv-NBB zCKBzmko)Jz=Iw!OSL)xI2bCFR*_UfT z9WbZW+o`DNYoR>623fX5&t8{hUk^-i3>HmcBxhb%2gI0K2cP!ql4Z4CzPRo(p!_Za z%29AQR)J7BKr`8Hn27?wZt3a>%7DQurFyGl;l;RS7OmbNRd}98orVffi?tgK?OFq8 zZ!{biMMFw*GCNJ1Cj@=+euqq(LB8v3-3uZx{IvqjC^uhlD2Xb5$R%t=HY z_d-IyPD1iXbUVF5r=j1_0cgkus;FHPOT$1x)Icm+y$m7&Sva({D6Tr>8vWR{@+mpq zBj3SuYKdoQ9)r9dX5Nx0adT=7bQ9X~ff`XMi71#+N;Cn9@1i zG(Q3#rxt1CsaRC}Kk_jYa(jn(l#v-_)~j{;fnp*J+Q~9BYH&WS-kSzxq5$=w9%ifC z1ix0VmEak%LN2)k`UkWM|0FIrb5J7BE0De5@A8{BCB&|}dmj_C=oZ&bGt+qL>(C4`Dd%a<%x z(`ogxG`LPZK6H-mB5^XS2zj-NozVb+fhp0b)#{mJ0b0fw0fziqz1IQHk|X|*%JWiY z%uur~o1mcJ>$e_fB4Yp_)pwlIlF}1ZX7D67x8ZAPHd_3n$cy7kpEMpEu;8<}4&L(P8N-n$~S{TwngZP6EoK1+l zyHkJX?HbsI??v7~tk7;2lLzuM<9zIdZ-7`mkdKU`-p%6Cfjn>IO!Q6~kTJWG>J7kf z`OuLSj%Y1RxR2sT8h~Z8_+lW>j$eVEy!qnke4cmpp6Lb@mb2Cl$b11ZVivP%XcU>p z`Zzy+xf-QKn&g?5G%QzkxCZLw1NSNJhNzB;L7MMX=43AvUG)@!1D~YFb7A0mkdH zf+X1{u|3%s{AlrR8XshSGl*PYAPr1@1fT3!7;=K(O183^MUs^q4Jc9h)Y)wF587&` z7h;p@WvwRkmf>9#Y{LxOvBkiQ4jJmtGG*WGTIwvRT52g_NMz#j^|y+00r$4{6hjtHJb~VtfYAx0W&FYmuu3eT%hx?uC@k zb;a8o%ka)EZa_89&1m6U;;DO=ox)(g3~yLK)?!Z5qXGyc@*_ zg5uwq*hFOkTY%(WBboJqR1w@ifSvdZ;`=^A{0=NYNuU_k9TjSQLXE10l*Pw*bg8Ap zi6*)AR!ekZS`joKf~nZVG`WkQxKqpKz5Z=Dllp2ypWC25Hhhmocl29{j1I9{)ADFm z+Z_%kXIe2sN)LL)6T^Atz;tj(M9AA&>np;Q$OlR9d@oLA@to;Ck^pq4NB|Ou^*fZ&>Vu;8s#&Xm%uwR>=kl(^!?Af+KkW(8 zDD@Y>pv7S?mLs--La__PgkCS9Hr<0Y|c`%q8F;F&0ExXWIwvDx} zRVSh9RAU+1(FFB&rN%O}y9Z^K!3xaW(I|^dzMZxH31ytw75QlwZ7!@!VhXj;iF<5J zz6sNV1cr#8T$rv)i(|e8<43H(JnnF#PGGHlR|T?s2hZV-fRd<9l$+=CJ+-v(20Rl3rb%u??qnNSnwH9> zMAm2<0K*N|W)|j=Ef8O_cNVNG*?}Dk)}1C|eF zBwx*Es&uac?_2$>wH<9{G}$_Ld>nR^zv&LHKUx;Ldg<_z>NS=iSrbg4)AB>u(T=SS z#~53&^OPyouIS?gt@T!X$F%ztKS#X zD|wE|zxR}=Sj4lFeOSIAf5<6`xBkcnods@igA**o_!=kdX=ic;8LABAiD~=AXJK`J z(1WLX+#i$=qG1k-dL_9}1ksW(hBz$qnXo^|142CkpM~%=2m6BxfwS?@>v15Q351hC zxGHel3~Uo5!jazKAetLQvw>)|p{^Z7vu)r|(e}n|@VF%q4Nu}|adQRlmmy&Sv`7eZ zE|Yc{h6$7n7WY^1yvrtOh*Fdi2t#ImM$?eaq&LD2^P7u(t0I! z*AQXeH}RtVaP@Y=q7MPL7QwR3!RJ+IPg{Y2!~RQnj%UPw!Vc>j&Y&wEc&)y2uY|=_ z5P1B?Ps0u%w~<7Qwu+Eu@e!gia4j<*qFs*#Vdhu@#4QFAoUqp0fxHi4X=z7K8_F0A z&7yun7dJ?tF%MLGN>jJc)i_zV;S201!bCQ^86iT5f+7NdIV* zi2GS7p9JI>r2MR9PxLJ12cGLL2IS*r$9Ayb7!@J!|DB>)sfKGC)Q^+KT853s= z=IQZ;UqvE3&%GKd^eFHe@}jFNf|;lz!Md5yksZKklbw?5q<9Am2<3Ofu>RN~qPacp zpLctXoC99$!R}uXG5oQ1e>xhtU_NOu-<|# zcK|U<4>Rm_f<~K!^PvMW>)NlgH@2M##}R-M=7{$O zbK6vM>`buTBw|$%F_#IRDC2jNJ%?mG{vn*AN)rps>d%UgO6EQRz>t_U@}rQ*yP4;S z`dn@<2{1%#T`TW3`pUbt4<$ur?f7xk**jXk3}=!^>EHL`yZADPTZ(#X-88zZ^%JOl z$!zgnE-xJ8&0&+g$SXh_4D=$O(1ApTacX;z!~j!2#fuO;%@z~#c;VUKLAI159?41? zu5lXbARMl@I=Src!}fe@%BZ7#Mm{**PB5__{#z3mTc_($$me8Ho6A!RdmC5Tp{4an^Q-Q?a3Lw5bC7qbF zZ3^4GMUO*!85u2#1uEcwe}=g;i17M@&XR(qmK-IWg@Vp1q_fCx z^+FKxSw?4zXtnUvew7%umlQ7Ov_;&oglDEWj5C7>eGyjZ5H}dJ-y&-BvEMlZAAgQ} z+L2Tt?!oMpU5K@xhoiDrbcSLX>X5o4IKI!q#p=M)J7*$ML!73;S9T^6H!VSZ7RUC0 z1&Xkfh{OBOsA~he)q>riJBihZ<$7SZUZtZdsf$y@7ZKu~Yciq$#Qit0)Zwu=x*^c~ zU}Xt7tk?y~X~Tx6A5cbGj8wQDM=wP{K-n$C(lz4GHa^^SI=cQD`O*kGRkPMk4Qhm3 zz@!tTQ}QuhMCADVWOv#foNNHoMZ26DvcW*K^;k3^Do!c1^=v>nDVWvRzevyD;7Q@H zno=?;Y`PY86!}BYe-%F4piZrDFvzraAbqqQbdb#0yOhX6?U;DEH$g7XvNu+ORhNK0 z_xp!-f^{9USzMp1Ca}i+(10I;*h5%_C%Dx=q_YWMwzBvY*A9lx0j4XMx$_RZv$MFn z^YM8pK9jzubl&J(=AgtY#p4B#37vad@Sd>F(79^@@}^nP@8G7j@Qn1qPr=}wXget~ zArF%$;ENA0$7#eV@e|3)aioeSq%5Yt7sma z5QLd^Pw+N6ZKR2$&dP7X9>)?K@Tz4J=*&9{z6nR@+z*K#qBAiO9UCEfKSt{g8nEps zkI;KE=#4}V(c6V`V$Om@Ji(}uvj#{|lI}G!@B0bEy+k^)-czuPv`3G(PqK;?n*z*~rH%~k|oadEWjhJj_t&Oaw!SAH}t6mrJBalSruZJB=iYVD_56xm`%}tdae-u~&n}?c?hKmV~ zo$)@EP|^qR-dTk7R=K?q?7M<}1S&8#--^$V9ziezU0sGh7nA`V#w2%RCf)T3@jJm$QYy+i_&%_jiS6+#tNKZDC2&IJ9JD}or1LY3b1_aMnza)s zKT>~Ls-`0Ug|rp#t(R9n^V?!6KEkJFXvgpJ+=OW+M zMEfBuNwQ>Op4~kW&`1wE=s_J*wp59Mu#RB%UJ=ySAoLih8Zi(S^OO+CqlZ8kkUo)? zw=faF(0yt}Z=N#4=;kUhUdB~MOn{13P()veywq4$&00T##1b$H#AwF&+g%P1Nay5( z;OwKAB`th6gQJ%K3%X+i?!J+5jZqn3GGRQS1ug(t+ z2FvNuwG9n^X6f=s7?#9`jgw@?6w!bwBhfHo_B~{{v4XB(R$pR03i4-QAV(oebVY-o z%-qIN3rA`4SZe!IVQh>^uM}TMw{gWN7N+wtrIaAKxf6O0lptH)2KI*865(Y$yZjmy*kKRg z)+rU2;=7K)ZKuKD!(@wdmHjuK7bh45+|63Q1^NG*$=nTC&mj}rZZa2{$UfmO7u005 zq_oc7hppqO_GCHq>`DUw(4oPmcz zC*k3k=9dFgAA%PxV$uqppZ+5DSj1uJ!jh`(IRGvi5d?D$c9wUifm>~z`&B0vet z1aPlD3ioLk=M4ajJ?`C({UCJOdItPx9|9gLutdkn2s3n~%;G!gpqx^HSq)@xf=E5) z{ou7cE0;z!;#*p$0O>$!r&JMHjeJzJUdvPadkuqq?K|<+wY-pz5ZNpFpcI$kX!Uo{ zX&O_P`^QH!^8S&!R$);u z<-gX-FYcv$fmVJ#m1Cggm_!98@#z`NaSr}$5TpwKP)}#l0DO64NpMy#fTnAJru9-j zSt~E5azjTuv37G#-$+NDFVbi9QxpZq(}mI@8X&msJz|6m386fvm+~~NJf)ZNzFK)Q zmFojN4=Cw}TyZ;=xal4dS}VPiVs9{Q6_(QVT?eD1@(9{vp8>UR zKzlb*Cy%k2qzXbrPF_z1f#uP2l_jv7lv-W)>OeFz7i0}H6 zfBiUv&_jhY2(n)Ga7#fgJ1;M7Ehn}BlPvo>mDlcf7boEIkrVqW@>4k^39D-klKWb3Hd1u*E;_0nCC+?~> z%Yt*nl|G(%z7;8g$4-TJ!&f@;{8CrR`}o_>%qwcK;gGPHPtA~8`!oi;A6tB4!CRjY z(|u9kCsx6p_5_}jos9v{D8|&5SUqdTMrX1918Jm7e0~FNqJzHl`38KZ=YGSxXXqWa zhtlETGk|yf><%3W1uhVsPE}sUp*p$`d;n8*m*P=#Jx0t5JI@a6v7?;UTm4oi!v?PfM#a^&L9(JIH(Lu zcY&$m_1S!U3VEwv_pyggu5DH>*a_r{oH_6u`i>P-=kPK8l*&Fyeg`{X17f_5r7%(Xy0(00mk ziDKZzj=bkvS(t7dJu z5=^UJ4u9U8X>`HaYAv9z(u-3oV3$;jVjRmNK0k?XbHe?kya@@IqSwTm7 zke_v;5+%XCU5n_mX1Pmu&kyj4X4u-r4&iSKB;hfXO%+#|7VNc|WorKurfn?G}p#tLdjstz(V z3TV2>*a*u|D*N=(hG}Qf^fq>EM7b@xO&1$oq47~bJC>z4q8Z(QM&DPOcF;#QoU7C9btMUf#SuGjM}o3zbf zt0ZvRL9k~cqS@#Y0-Xf~D~q}CR^BMepnN&zrPww$y&2Pn$vZ4uAj&IctZS~I}KvDt3Im zq@s`TM|Z%LVORESh@)K<$D9sGqi+D4^ghHjfWIV2<7-&VN)wiw;NZotuwd#qlm=P0 zcHTJ^(aD>xAl*R|2C5`{FJF3fNd-$>vGljtJ5T8*>|nmCA9gKaGe(&671%5qQAef? zOv$Mcr;(^CJOK_=cmj)V^q!nyu5c#8ck%2^yibx7JLpNjZxI)s3k`NHlI{v|fow|H zn%N>GYb%0Vv0>$&+i@ugn4l0z0pvXw_BFG#bK=;*SL4|Dcm#MIroKg6n?`lkVy$s2 zPhK$^+o3)L>S#9s$GdW9vIM2cA9(af5(Pn1iy5IBU z#aNxA@1wA+PH9j(oDL$3l88nhbV8s4vC5r8VJ@&s(uuKBTGWco>`IJ+tBA<^aAJaX zvcaGmJO}wZO5F~^_adU>yT6CL=Z+$IKXEh9oN2|H9`(8$wu@xuBGm4w*B3Dwru2%G zxM5*u?y<0#zlLY`^FwUx6!H{OH#e+7H}yyqZxQ#PG#?HVrbWYZX+o@UAVf;lO0V1l zt>lbqo+P8Ws!IC(mXDOYw~DF1<+h|iq}GYG=%jHZbyD?Po?8HK37s%IZ{>YKM|4D| z5t^V8h-NNWr6$qzTXa+f5PUF=^TZ!`=8}baM;cqlu`7dS@0Gzsu!~9AljS`!OgjgW z57zt)g6Vjhy22! zD$F=i!J%TSz$7!^X+b$SkT-ATX;|LXCPFH&35-DRNafKaN#)hTnQ8(i@x2j~r9Zg| z#ODK04wtj38VCTRa%LZ+aIY1HfcJ&zX;*zv=2f{j06k8t`b{)uMq{q6!0EMl#xY}w z=5=w_TAnZ6^RZa87W&eli@~jmE{62Hb?5pXvqpi9C`QgGUdrNkDj;SiUCdr6{j ze^s|tjsGA?O~|VP8%?zER9=tzX+kysK`%yf! zj%SRvLH*JKj~f`aZD7GlxQ{I$RRQ!u3rN)hQdEK@%^=rN(MBMgZ;4auaAq;_AIKlQ z$<^NcxNQ#ANv!oAO@)vjr~qAl$OyW@(h|CHK@||}gjuXF=_r*zYdbtep?i~$~= z7N|7xI=!!PM;Y`qGuvr9g?Ri{p4)dgmV3&Na9XCV7kxMLA$`uXG3A0<%deQ2@kee= z>XLE7^;xTnRGKKOOy#__8vGN50nn;<4E**s!oU#)17{`f00vrr1_My?Mhqw#g!XL! z3x2^pJQZpa8IAy#^+~dqwMnY)#Y7J;?1MYss$VkB@gC$GD}WN`Ty>7g9j3%O5^y$0 z+~(mq>AEvS7jAfoNh7>=wmD}0dr)ODNI+C}QZ%G#{h6fof&N;f`U9^Al)+b3^I?4- zdm!xChLh3?@@xLg)B4Q?HwJW}5KsM?XXd^!!hmlZZ+#p6MeEJD-y!?IMezH0_KJ*7 z6ZLCQyL8i;AM)kY<5jSZALAvRABk7VF@T(r1qo2RO56(0Rpb&+B~Juh;exI3N1-EY zyK#76hj%eNBr5Af{e3)38vO&QjGQj~PL9U!E0D$*{H}`u_&looulT*|7vOh+vA>@2 zdlI?4Uh(TQ#_6#9&eP!6|1kYr274W%cZw@<};T4v{H6@ouSG14a zrmWHHmi z{?&PV=s3@!;QMbZ4t_~+;R}3@r-gVOQ-vIeuQ%}YylpXq_z!OS&~=9|Q{nAWU3XA; z$(d^5Q~gL$YgXPUoH|Z@ic;vekqxT&EH2OcQ!JcI!#w>3b)2CDOeHz!vx#fNu8dwFT}U{=y#&TZ=GjZy1SWPWvK zBulm!Nij-lOXwt^Ty2?hy4~al*8M`xPJ{u7NAK36Kd2u z@YP`kiNU~L5&TYgqzdufiL#OKLp8$dA#gozMe-RKfWitg0!9>G3lzpM0O)_ELVsE( z=!O2C|7Q#^QD*?qk3!s=iSC;9-40LFNC;RrT-nNs116*UN^UD@Lp18ieKjTp8gb0b zZ(u4=TEPeyW+5l00Y_dJgYW=}AH23UNVk%@p#D6+u*1KgLl(2AWDdw=U00jzLcov6 zFp@B+K*C_&oj8z2VK2m{f}1;=@4)w^%S$}0?~24VT?qqEA-IeH9E-^qz=w2LFdHW} z*pSXAl-@*qfI)l#`*PJ~B!`Jb`Ax$+`DEV?)@n9Wi|+V*0I6#3MFf$2eb(ARjTk2Qw%e0XG~S?1yF^4FM`wVtT~H(9)AI z+d^n*tTNxQ@#3(<&ywa-?gWumQ4>pA@!_vvG`w&84;jWn>^o!w^ZDq-w^E?2!e0j-M%*=_UsS#M+ z8iB!K0ON<@^Cn;9gw*d!Dy=RCFNkMCja8NPXv8oHH~A@*}$k@)koN|0r0% zP9~^`jHnXGzfwr92nF)Xtiz)Nc@t{))a#3@F{_>edC-dt0KCr{2H$|V*o>eTq07Q1 zpuWrRS7Li7CA0tc*uD(SyJCCp6=i?m1+k(1GG%sJXulp#`hOkTmr8m+npyg}(4H2C zW5V@GGy<(Db^aPe`2QNNyWk=ISK)dUJgeTq^=9085*@CWn~h_pa2;d*xh#c}(Exi> zz(X0>j8kIzS}fsRtH$@&{qp#J5VlhF7T+JwI(>YqFv5?D?Nvk}cxn0?x4K2;33mnZgvKWPvbHB8oKpohuiu10}|(ds=+zVlu_ zs8|AfQm_u4IFP)ATC9+hw}Kg;a{@ex+pp@Eb6>l$ImQ zXh2UrzctTP*?$!Yl{Vh@I$E*2|sc(Vyd`tLqv3y z3zK82Tu+xs*sy;BT25IepoJ>J3LJFKD2(b_r6KR0TvUqo{8%_-z-WbMR0%S!+!jc*ZFF{1?0fNrMWF-o4l)#hA`nm{N zrvTPG@;w-x9UCxd2Lr?C?!f5caaWVR(CdNUPlH=5VWGD=FStbN%BrsiaEh5pgVAc_ zHcWt)aLg7gV}XJcIW>U^l$A=e8maL_JmI3vK))RA({*(11iAvm2@xJ#g1DpWm?HY2 z4W>p)ufumkWQ`T|?veF3bdek8rf`Qu``o0um1xIkS!yFgv|aWWo@PN$Q4bVdmv z*VQwlbmx;KEJ6{lBzN(O=VzJa84NCpS*ouDJynLesuzYCu1TB9Fv&{7!~YeMa2mhd z34R&2Y`DfR;N}R!RObS?$~0H~KV}-8XU;J43`n&}e2~r0@EoxIJl`BcQd-|W5(lN_ zHM89_5xUO80j&dm=6D03{Gf9)X#6@UC~$%wc_3P)gI1}d6}qF%*y@IpHtV6>Jje~U zBhN+2M%+i1to*>qMoQw3(c z9qiT)-XR6jgk^Rwy26r4XC-!_e}qWE0x=67P-KbNgo5j*JX;+Me*u#5yUQ6i)`0oeOC* zn2j6@Qsc-|{T*pylH&E4L^W8120uePZYKs$!flit1-QHc4B`TV(7Jgo_A|N6Jje&r zYBeslMK9dKLeSqKW>I(8DZS7_v)0QNt(R)_vIV`gKtC9J$~SW*q-lXoP#II|Y_a03 zosBPS^}`_{V`5K)vd1m?WsLTtVqYqZKnuz$p;RcD>|I(=Lf>a$po>vwrkBYrHWuoD zM9l1qx;7|Uyl)YFG8PefZ0c8=DrM-h%tCUC=MaD!u70+nJGvawiPNf7HWPD3vOH9V z-Gxns*o6oTmyJT*LaevqeUnYK7X`q_%wiV0gh_Hsq1_XjS%OB>vu&Ozed5?*-mW601;_WO>Mulnm()^*YYRx^Kz^WZ-Mj7^~*XW-Nh%zgklFe|j- zMm%3X9qfYt4)%w*W`tlris!SZgFQll?fIqSjt9aB_JJ(*9JT!o{cLq+Cj>p}Y_y8jNTgJuw>Jsz9^`D?4jy`_`^vf|RYHawg9YivSKaC88A zoXmrZ%Awnv%F9aIidk_J#H^_ZJ{!dBsGG}MG+~xlbwtc+k#r^zqdgJ@@DK8rPAq{k zfC{uL;#B|}Z}HAoeXfa4-kJ}8tYsc^kjMn!%e0Zq(#E5EZAU!PP!bkm$4j%bHmw__jy45Y)9Rfi24b%AOof8R{kR*=%oR2+mR5Tt1W^qFTeMm-gt z#dH>WyIez|P3nfiD>W1nnKCRAE>c(HAd*$uN}vPu6FlriAVcK>cVH#%F!LtKmtw!Q za)unI)4k6C+jv60FZ7V6(a~hn(S#o-Fezv{d&f5bP7P^^&PRNK!76la*ZA1rvwV&W zCefLAcyfTZ+BBcVJ_iTkG;4{?%gTLlD*C5;{%7n*Q5Gy9lNq2^jS@N9D zF8zpf@#*bSv{~xF!3fTu5mEc0{IW?=|<4_AUQzsjYM!7{s0iH~Bqol?SgN*m!Fp0okah5;#`ZTO6V(PykF$rcPwWl-F7Ms7KP zs(g~sS&1}{URFzG7`z|0!3i5dNfKo#nXY8^V3vxdb|%U+I-0fe9V>Y-G|FiM9|q?~ zLy9zAw4#eT78)QvTTmxJIVcz*XL>$dKT=l{qxBv6p5amJHhpRv1Cmi zabK+Jx+Ep_bN-38UnAN{#)zPeC|mXs&b@gNIa$CDx^DE(YXd*dG@FNOCDuHG!;b%rMrVO~j|cJoC_p=7M-4 zK1kv-VTT*n5Gt&Iov6*A7{whkfLKb%%{;iO#H2ZT`pr3zZne{PwNr}6Ai+w+mkwc! zblT2Z>7XTbsuC!(vjxQRr+Dm<8&&-1Z~*)mKg}jX0}M8boz2ZR zaShf{x||sN!o}dT`4CTcEdTdN-fJ9P7m^SE9Fpe%$!#X{!nzsoC>Z2#2rz90rVA|g zQtJ>qc3(&j=p831MQ|i(YPXGr6p$o+kXBM5w8N;< zV425j%WLEo4uRiF;f;j$@juNSq#QZfiu|;m|J1kPIg{x;lg;CX_EgU?H(`l1Y`vmOf?i-1@eCI%pBa(mHTeCF_|`0cOds&fVj+rGFmA% zA@@RC%D+Qs@D2_U+hZmJ%xEq}TAgk11uA*Gmq&^>n}&bq74Z( z+Vp(uM*FiA^Z3Bz0ovAB*8mu@)H@P|6?=6T0k z!@~0+4>{i}3$^8Y7rNWaLiz#gwpP)9C%;8n*(&a$=LM||@lWvQIe@(UB%hd2Z?%}@ zzvAWJ_&JhvO>4u#r+5^^2{4=`E>PWzidh`oiSx7*q*1e*%%dBhB+MPTkZfoXaq=7GsC!2XjN`q3K zQTK#a{?Q?Ev>BHqoI0eG_k9@U-yn+J0@z}33(v~=;!s%Zm(r9T+sT2_divAL;`|nD zdTBc(R<`g7((XfITMJ*5NTa$Be+`Mx@!{P3XI%Uxil67>q%&R?S3S=s58&v6Zt3tQ zm+ja@r8}SJqf)BSB=E;MJFMPhxqXg3^!Xw2$@9D@nciFdePnc#cYx>gSL$J+R!cwm z^+RIz0sMkfvZAv7E8;8rA%T|sGP*d3n*nWie1z5s5W zeMsE(0?)I(1;_-g9#6WZQ}02&#w@jN@*(lk3)o6C_K^7S1#Vl~tkwUsHX?mADzek- z^0X28ur5XVmENl(Nv~u6{xTAUir%GnG)j6$qx5U<_4?xagFMYlwZt6<`ESe*0QdiR zk`r zujXdh{4a&~Wj>l)#FH=c%88b;lhujtyz4FQydBsw^)-NIVql~~sIJ|TDpw-IlA^s+ zhBxaKepqFktXFxlLUOAw9l5sbx+5=&%Ua2kb`M`@|p*zpd0sgm_OFNV) z`CjGY)FC?40dKt+oub3T6kptThCNhruq;I8 zodlC8hQXo?gY^%V??szMsPFutEJSU@(zp4<^ut!~AlZweTTYdQ=!eLaqWZV_plq~E zL(5!w6^buLkr$UoD8=u;&BxN<(q#7mk@F5;E?xJ$*!T|g%97{BlkX^l{pKCLPTm1g z^e*UfSp523ek}bk8Mf~SvCtF@HV!7Zng(<3dwhxt^1$=ruJ`zb6Azc$kyx9-Xw_o5 zcO+d&x?zX@g=FqmRV)^hu{tRHNn)nq0fs~kMY$~!t-Kw z0MCz~6Z-;~-LdDyhxGi4MewB3pbK-|Ke%?qprA2ZsIsWK5ge?QDbliufStn2OpHL0UaZc15m_>2B72Q zkLbnqpaSS}wgKL%)#9-U0?`<$5YKL5*{dgdJ~uSFqZv{LWaYFErYQeKUB)GhN_ z=K;7bb7lTBU_X*fha&sfnvQGTjLJoEuS%TrHSR1o4T zmLF;f3qLk}M~3GwmhZzmpTs5wZpVEO2YBi2uxpWW=OkH1c>v`PCa{6wW?t$+xiVU; zM%wfNc*n^3`e(~{d9e1m%`}dtQ7mWS1sO`}fPTYU0brRZr{I00Gv6e6b&I&`L%wW2 za5Y)}DoevlV3Pa=K1V7#r^px4OfV{32t07Vgo}LPjQ(3nyPN7*f%HxAC27|4TEz5^ zc&-O7_h|VI9iVTD{2wDgdx=~MfEM~?N}X3MrE)Red6TrMzr;&z7&&ZEef!i|jY>ye z{5tHbWg$$he)F~x8Ai4qm!>Q{+FT;vgtk;h-cWnH0Wa zDwWS`5i5`L376SXpPB59gpv`oI}+_SqXRpBMDw2Ju%IwEGDCZ*{65|>Qx_WTy`b@} zX7R&uJ`{Ap&q`mdqtRa~FE*mlccy&s7XsYZES7()0JNVa&({Ikr^$1T0G-q2od9Sz zjL_T52)8whw*U}(j~J830tm626^&J1ogo*gfDbFOfTYtOsLa4Yek?-t#6cTS4`EC( zwd=$WNMuev`bK8X87!LFJx0xTaa``h*X? z`Y^M^$)QZPId8z2yaAT!c}aC)2d(8RJ@~o&70Q&)cC-8iK7){IXO?*RqL|s(vHz&2 z&gM0X>7CpPG}#m6*Ns5ziSn5M;(Q*8Nf#B1 zapY@Q!*l!%KYY!T6Qu{9ZHWJgUuBX?pKVwf=DWCLc~;oCG+i3-tZ>tlJuA>~g7oz> z4M({&fFoY{NRlq)HW%DIV#kT_3C>GVIHra$V6~7(lv=mo8R0fd5AqBVHcM;yz=pMP z(n&5o{j|6xL3-M}n!Lr5MCl?7(LYe0^-pncqEw16ELAT4r#O-*jhIwpwWI-7W?lGg z*KI7zlgAQQ<_-BLv3`2p>o1jsvInxw_8-em{!OZUNW*@O7?&iaP0v(nrPcihwfdsg zBGlSys6`O0fpqyjK>lLTb$Q`Ix8=1Zt;`GbS(%sk&xYzG>6|#}-MtO3_Lu4;=^uN= zEd!-7(!RZ-ZlF{seX~~_87NK4hlr%rr5-8^z0;pqyx)LmSFhx4E&*An;3 zQP2S_FqSF*r$L;bF6GRQ49S-%_d!?oOUgsPzPvp2HR^@?5hrIU&S<2bGfU>EH($wf zCCH@zc3>Fkk}YRl19q`urPgm^yPb%8{{*e#glTxRL41-foj;iR=NJof4w9+f=QHB3 z%|##dzQK_pHA-;*`)5mc7973_4s9{mDcF~WfUDoZPU;Zg)%vXR5C0HPXG@J`k%~<{ zRrFirmVbnWGLDRL%sUb3Z5H|?X*>9_;M>DucaAhs^}hDumCoVP zE4v%|=Y#X5^gZHyt8|%kYIj4ORqD?r+ivl+O|nU)yTyApu*2xxqJM#89eS94l9Txd z$r666w=GGT+hKjq?`q$Lqd+>dpgwna*-0O=TI+oNvuINrU4}O3LH}8FTGVYb$y*;5 zy9%Twa1FDDNJIH!V)_v2q2x#Y4i!+IE^q(4_;83+BrW*6NEwP+hsBzq(l9)HL!}LU zE`AxC`a}vlz~Pk%yQl zZZ4FXq~=`>Q-?_ddFtWK)kQK6Y9d0Um^ZsF_wQoSa4APRwM*PGoWx+4*fv}mlXZL- z5&@tUt*6#naYw@iSSSdG>&5Zm(qQTBUHCl(smOL1wMagwmTL%BAoiJrb);;RwTN@>F`;V#1WTXu=N=z0Avv8xDF8M#XwEt0lL zpFAaQ87b8QDT7Bz7o35hXSht_O>%b*V2_d(4S(w?q(-pD0q#1y1b-I$5c!e7NNh90 z{aeg?|NEFR81(R#(Ndb{5GqqeYGABPl{$bHYCu5>H6RYa4`s+36I3o>&LQ&U_)Pky zv6oH>4#A)w7b6%1i(pWI{+k5mQ5x6vItYpz)9Pq*IW=a1(J~GJD{b0wliGt?r|o0G z`Y1O}fCm3Q_>XRGRojl0$LRz2jgx<+e4fA#x1)nLRA#;+d4XPm70E-jj@HM_OnApg znL`f~HfbV+l<8X4-}F?~6RBE_CS&y;>|^Co`e)xLnd_e|L*-NPI(|pU1^Rn7N)F;Z z;rim3Zgc{_uhEN8)`e@4F&2z;;ZtJzSScfC{!>5)eEfNUL5iF9EYb~(XFnxYjs^Qq zSL=-{(dtc(sW$=dDQ|gl?bFH?izMbZ1NGwYSZTO4`6=3)p{aI*FHmIszJTw7) z-cm1~o`5+g)r(UTq!DM=|3~4F@$y`i1MAaCe6Z{D0`0p}j-b!3ms5Sn=`?&N>i`ng zh-)TFgO!d6PC(&QcqrFADUM8)Jn#t?o+%Zkr97#`;=2)pgkTUdVe@Ll@6VJ9DAfRx zz!M3>=^>4{236@tmb@_8qn{M7o+)Jytk-SVZj*`!5j<1M=QSd08ua=dVFLe4BZg>4p| znLEX7diLKbmd}EAc=&N~?<{HM;4(O_Y%oi)ES4Jmri!CP=vjC-6MtBRl!o`EPv!Wd znqtA((%b>lF<(_9?B4;J)`-W>mS#!!JT5*z88P$CBsux+KUeFqL#?63~Newq~4coXViA)<(KoTpTnMKmlw4yvzVvsq16O9_Cf z9Z<*41hyOcr08liq(-;mNez%-!#pzTGVH!1#d!A(XS)fH^tWZUlqF4gT)Z_0isiLB z@!cG0=+GJ#m?Aq+lb`|%yJf?ao(7vk57!9$Tq*0o3R<2B{J zQu$7l8!5D>PMn%6m5&*KvD=Y3ScQBOR0>d-s;HG@y!Uc8iALy@(*M8i&Ic~4GT;Aa z&N&PtqJo+Zh&m`4D&d%DR;LFS!y!oW#ugOvP&uz*TgFRmA9xqsttjL97yR-u zi*%*po>X-cEThl{c&WATbR92;A?iENvLUl^UHR>^Y{G1HNZQb6J70<8Q3INH9?#`T zBW7D&cueM#z8>uNNapMo4b1-N9O9yA7 zoCjdb%l@V#mp`^^OjdeUeU5i-@w%MwI;$>gTG@8)ex>RFp42YMRc+|3qFgMZPaUk= znydD-42S)>p2}a%vEr=yd4R8q%Ci={svm@3HbyBsa-Eu@&N;|VU8laQb4yk`M;$t; zQt?lzT91M*LuL52hc62Jj&wD#*YKtkKE#dg4o;~m0(YUnXKGl?Tr7DH9b}^*6Ym4( z-N+k;S57pm<6zy=x#~Pi`oM#oV}P$}$;zavM{00;O6ez%7EVWM*qJP%G)K2!JZjjB~uzk0gv)XnO2Rdw}dLl>xvA?rK~)GA9#7N7e5sa1b?qQ}8B z+=~7IcOt&Ec!m!Z?&jJ3vQWLr!WBJNsDD*=JjJXlapCO!6kD)TouHOH zRkwYmdXJ`7{;aO=?W)zHe)42pVzK&rY!+hKm#fvAc#P?5)E6z$UW`Fa>C3dW>Mr9% zcg5E|wN@?G@B(z)oocK_z4eK@Asf`eDu&qPGS#IX-p}qSQxkAnU8XJ>SgClYRB8B~ zhT#g{n%6X}jra7&`|EmdRG+r=|7;(g)Z;5Nho<0-UwDrMdbW}^Y*HQSiv8@5n{YdY zOU!2V@_rdv7x-Rys7<-R1E2>g+40S)eb|SHP=My@ho2JVyP0XutPA|yu-26e(=wQK z3vSO|+E@4N7L~tn&W_xz?(J6rKmHZ?$^6SlV82Z1&6eGx9#)6$V*@tI(SdrCq8weMSXjBUE)LPa~5^!ZuZv0xLN#Q zSKY)4^(~9~-Y#Z+1l`rJtL}rpP!@F%iE{{Peh@cjRo1u*jeCln z`YHb(&Hr3lDSwdUC;VV{Kt1^k>q>{Psb4u;_o?JjJ-;M5NAi0 zddc{p%PfFhWI$5pVSe~cz_H0%zrms?!ZW<=$_|U(Z*VmQ&m@!YS&Wk{L@W{8NgynH zUhF7;7K&}=k!@BWRk)JuuvlK*jYTDKQ92PIpU1|5uY-*^%7}|H31vr4gS*SA!(v%? z7XRC_NbNI7w4aR%DeLW0T_pYTCeq8pqJetUB`Qy{MT#fXB97>tuzYA3X*3cCxBSDw zA}S?!fb1ET2_GyS1GS6Bph83$p^afJ%HwJ6rmAhk1md(kwaiNi|GTW`nJYJBG~ z?<)0=hg(-(oorlpgV7kSD1w8R14mfNczX^KCGVnBjma70gMm-ZsE(AUyS%#Newv(a zqXeD*YJMPZH0?c#9EcSEN8H>?8P)i|&6rw_=l@U1nDRC1@20{C@k0v~=%(*4f`_#~ za=!=%QAR^{XMgb(p!~aY=q`gFjeGv*P4}a;gvT8bru)J8qt!UF!kzv96J^j*y{_XU z|E?9?w?ubir90kTe1r4)%U$qy9e!l{&h|&(?lSJKWpPqYgMf{PQ)Cfrb z{$T|o+8<8;&>=iJ(*N5o=*a(vX8a@Bdwy_@f252l-^>5;^pkd3<0@$dllPf2m;5}f zv=tY-GtrZ65)bneCWh4LOzgJfBD8n`I&x+0(9#gO_?=dFElh#Fw_aTw?-*$pKWMva z35(Pc;{HK!JKemC8%Trm{B5Mjp#Z|6m71#fqDKAQl7p8V zWG?TfMWCW?>_vehYK*+xWRJ0Gw!a7@9K>K0JdYfTq=II4!yUwZl6{bPXT_-h<4EC> z9Bjnpt`Rq|azW);BPt-cn4N+*d1#v1rHmVh=SjT28(u?Pu0S<$hZINHd*r_Hb(4XY zxLo5h;&RQ3h|7aCpE$KBzE_?~mO~1;#+lu4XE$8f%Uvcij*O4~FQY(mOQaH)Yv$;N z8+Wg$jNC%@ZtUYY=i^Uyu#tnz72@((X(8^QmJ}^23M6w8hgaAb{~Zp}vkJk*w3J(- zk?h@4#v%jRUVid|_~!f*j}Ki^AmJbnq9&@boPmfVw~(knoD{#_MLR9t6#Ni17E7kg zYpKTa;Hn`m+xxrW9S<_&&3rpDR8l-{?r??js#{6|GuU-)t(~p) zPw#BC49RoM_dN^Q-)3nE>AZG4PRD@ibWQlalhHfzohGJ*Ig~x)tmK2F0vMgRYQ1Cm9VMk3!-w#4?#1ThYKgsgT~@Dg6t7vma``%D zL9+}C4+*<&t0mbfX0?`IAy=!vR4ikZEWaXbzVh{;^SB86Wvn7sOX~OiNQ$v!F#l{V zE=e9G1xw|cUeTGUkrJ!67u^=A40*t!xhdx%jDV8d3p%IyqUhv9h`Nv93nW9CPu{HW@1*Pc-oL&@~tDx-cAq z+@Z~d<vYi>+s##KjaXxrR1Q zq6>ynpi0SM0r6Uiiw#tx#8b$=RpMfavgc3*jP{4|3UbI43OdI|#yIjNK9IOq;;V@J zB|e3CK;oW$qzFn1arIPYMK-mK>>UypmmQbHO>aeUOB_FLzz>h&l@y~)h2od^BH{sw zClPOv_%!0S*^w2POgz=#Xn)c7BS?`WIowXXNaErO zOk6W<*GAR=pKmvgREdi?ITF8?>`NqW0q6NEm6F22A&y#!Ut?mWQR24}Zmo}UP23^zMB*-q zi>sVl;(f{9M|>ll7kO5g8S=j1hfw4Z_mUJmlg_Ip?x6EpiQDMBLE^2;&3rvUNzp`# zHi-v_$E`FSMS*IFr%Jq%xJ%+?#Pdz=>8P=r6eW^F4soBvoy7eTw-c|IxI(-!f}{Ui z3e6g|L@4kemAFzAS>t-*c8U9mJ0xjc&)^3#2X~ux|FW}K}pfH)U0Wn!~?|RZi{S*8se!EuO#l0cp340kEC#uqD103 z#C;NX68B5oPP|^?3h_qb9?|zL1!j#}B!@=g%I%Rgt|xAnxSzOF;y&Uzk=&z{kis3Q zQ1XeFN!&%eQsSw^Ya|{=JRtElH?I)JUz4N=8VbAzU*ZkKZN-r-QA^w*@oM6k6893% zEw-Ij$K5|p}>uMUZLi< zfLZ)+CRZxT1Ex@v)n>iKMOp9`3U4R|lLE?El4j*$OkTTZ{TqI>6GWHUm zMNQqZII`sgS7-#t1#(b)!TDa;81pVtbZn04{5s0WFXCoErC{%i^MzOjE_^)mHpb+&pz%T)_w_vntO zo7MH|M)fgumwI#0qaJ*~>Wunl)us*7(zPsYzP3`kd*CK*RFp?6*B;aww9mA&+P9jn z_tx$DFg;D5pu6eUbw|{l zQJ$!+QI%0F>ZzzhQ7=Wk8ui<#Q&DH4&PM$uO0mXR`&*X|v5vBivu0Uytn;i(t+!cA zt@l`c*6r5))@Q8GTaQ|QZT-OdiM7T0jkQ;FLiF(H%cI9fPm7)veSP%8=#|lHqc=z2 zAH5@bPxLdD5q&N?6y3wt&o&tMsVsk)mNI-RIy6!FCN4vnqWm>B zU!9}eg1hZIm6wz^(VCwsUnzg9^DNUIP(AiXFND6u%~d|6Em~2kA@M~JN(1B!NWJnx zC?9e%B)-5&nE_c1nFDzUG7mBUnGbmavJkQbvKaC_WPR0zP!h^@3^Eh4^&7;+8g$^? zg%Ez@*`wILy%4GdNP(<{^g%Xp1IRW=dscg>3^&fHkQIGs4 zLkb?~?S)K%Y=Cq@w#{e{6+sqV4S&eOoc2%<(g*o%FHDPiBy4zmw0CxUCv9kU_}fkjFN(hcfV}qV2Bs&`wD2 z11JDwJ!BGY#M>ZUkjJ(nL&$1;$KFxMddNn8{xCAeQzAd41F{}61F``!2eJv$vj~Y6 zBuXILAj=_@iuO=7qz&>Aq#ZH<>3}=|nF-kf>4H2DnFASz=UVxYDUfc+Ovob0T*xhu z_{BA)9I_O$8qx>puW0v#_99UOPzzZPc?_}vvI(*Y@+@Qvq=KhEwts04^@p@Wrb6aJ z=0XM^MOScHg_eVC-hrCqc~{%c_D~vR;o~R(WD#U3WF|ueA@i&8wSz~I2>csrn4l=9 z4`VFgKG%H&T>_c^0$K*Lx~@HR0J5nb1%pibcVvJ^i(be~$Tr9#$fHLwI3dd#FvuXc zKz<9^0GWb^Hum4(oAw~RzeATo20cgwkZ6WH0a^Vv`WVs=8H*dsgAWuUcfNX{I6n=z~ z4aNNa1SNyahb)3Dg4_bx1nGxtgFFgp$4~M#@pH&n2MQK!4>=+2XWB!>kol06kZq91 zAZ?$)9x@5C6*3djmW(ceOijl8FGFH7Ks96@WDR5?WIbdVWDv3%(%y`g;v6yvS@b!^ z1RkoCL-vPk`UB!Xw*5a;0J5wFEd^N(Sp!)Q*#OxD8H8+s{C1cJ4oKLBqonwyq$Ef? zq!Tg~at353WIkj*WC>&;WI1FRWHn?tMWGiGnqz#WG+aS{* zGrvTOLY6_6@$<8239g4c&3P;4f653rB9RH{{~ApPnHd`jc~g;buTW?wWD{gPWLbPD z)B>5=Hxx=5i7tS2LKgN5g=RqJ^bdtfAx}g4Aj>X+A7s-2e2E8S+rUsLbCjYiN(hC@ zAnOxC3qlo0$;EhoFtPx02&yF?VPqM!BKmJ7s=gp;n6Uw?)_^ z&F#0~?|_djfW7AkbT*uegZmuC-vMx)AZLyE+ZkrdSu_585^DqF`Ncx=gWKT~*h*=b z9o7QH0aoO@poVgpWwkbF*v<#ZC#!edK6O8|7`-am6{&LQ(hAtr)mp;n(wN=RyKFOh zYR_AY)Xbi@#(eVehfVK)@ZO2uN>)#8U^F+l`sArO%)43}XDvK=N{iK5{c3HY<#yJ8 zjh5YGDYuw&@>D)^uhH@?*{pUAZYHvJ*>*=~ojQ37*TU;Me!lkPsVsiJ;^e7yT&_BG zat`O}yqLXFd#uxYs_-y8_gMEv-4Jv7qpY54MGP2E%`?u6PJgrsg&41MM{edo-HJ4{ zam$6!5nj=(-j03j`4X+4wE{Tf3-)%2Hq45zt5Hh6U{lv>17di$oxpi9>CPivW9mFx z&_qe-s{>zP`;lvebMK4Y-*fton4LWyvppWI^{`Y&F>BUtZI^!ghfOC>srNE#byQZ< zhdEsC(syfn@YRMm=ao7Ak@_NqV4V;rQklfzdu$VJEi;uKA-n3aLI|(CHne=XQ3S|4VjsObp8Zf1h{Qh zZ|6Si{;26Y^lQ*R@A1)&%e;~Un-bXYRlpcY`hG2Yhic69Lg>5`*t{L* ztws98m2Aj*ZBDk19qpEhSiiYH4qiq(ScSy!-DOG*ShF!VaV>$J3#@E1dv3ip!di@U z(`0sPy>?&rw@3$Excc&dICxAOmYG;=a4QXBGQNxUfz=S(0_g-x$!7aYwN2Jqq>E;- zA$Mx&)@Gzju4eP@)HYb%JWsk(HHYoz zycp@4Ja%e>w$yq8>A*aeeHY5C^hA0-TYZhw305NIQ3F=I0XtdI06deUfNsf<-%QMx7{9T|lNi6rm;n}EXnw81q-k7d9W7AE)E9Gl3fZ|5Nw3QEVR)InSeZ?$e8PL!CLNQFKxjX zD?wV{z&_ccO|;e`om<9++>LZA(y^P^VxD&5)~sIk^aFm!G}m)kaw> zkoNi6cV5h!V@UUZl3j7HHZf7h9a`m~&hqlL&kp82#J1iGKYlB?_Yix5r^}E&dWii2 ze%5-Vn`_yK`?L{>%}CpEZxmkVHZa>^w&Ff*NO}@((yIBr6SWDNQE`G*gt0uZ8DQSS z>=*ZGbJDAkK6)h5=MY#eSTV(MLgHt!l>X1N^!riwZ;|%Zv86oCZvdO>*yHzWQ?12F z*VMC9_iMuvcOvb6u|34sdw#g^R|8i3A{$VyO-(<`ZE?TG%g7Hy!uSA~xc2aT`-2_& zcXnSn^1|1LE15^x3+39V^fIJ_FGrTU0;~m0#B{*l57zuL>-~T>WY{sJov%=QzJsCb z4zLo$zl>MdoCmZ4*7HbbzQS&MfcG=*N1I<^`{CbXKGI46+jjPjN4tcb0<%_v9e9#$|1?41+aL`*^)6Hf%vN(s{70 zh7HQ-SNEmtA3lA@u${@6A3!?pqZ^^G?LyDEmX4BGR6-M!Iv%^K5xOIttVJMrZqSW(PYfu{5w2 ziMhaH0shw;sh6YcJBLzrw={ij@gj z3zqVqY)B<`sArM(wXy}3xYF?_DOVF;Kikmd`Pti1 z`ZRGm!#GWhnL+9<&KFztX)&Z;EuqX@-LQiuN?d$MNN{|u zoKYb0Nf$G|M^XNR6b&x3q{87V;^M!^5=afKK3XAImp354k)Q{j3FLJT(rbg;^Nbdq9v{) z-asuXT4E9LdhuyR5$JYO)JR>hiFh?}F(w`)?vw1RiF+mcXNVUO_lOd`K#Ckv2>u4~ zOo{VHdA#ME#6^uiBc4iJ6!aV7j!1iaS`nSZ1I0-Wal~zr4$4sC3USfL>BPlH=tPT7 zAzn|@Rq$Mc-j7*2>tgXXI1H?1c-}i@C)LN z#IYGPj#r4EeV(1_r;qR)r*p>(W?ZrJI78f3XYvN}ZzXQ4H~D1Z?ZjsgPa{4k$}C?A z@l=bc7-4dc;(yT$R6-8Z$sz6~lb^@D<;V5JV}E7x6ca0V5O+#^D{(h*@nG+9;xk_1 zaWKa#D9|&cXfzafjRZB~M;&q3F*D=&CRUCU_Ya^=2IBtTo7_$I~E(qy^%%ruRwCD;{dz0im`Qd!cqd5&bhjJL=b%N?w0F!Jce zsakT{VCLcO#=KTCzlS9cK^_%GOIqA)-4ImvF}7<6pAowwi@(>XY=S$o^iQLEjm5Bl zsYCVjTk@p=E|vnv`p9T68>6I;BKRWeZE+dTlX7n`o7x+hyRc5(7a6_L?CkrxwsuR_ zzcH#mYin25eH3>$HS$U|I!QJ1u4nf-^braFVVn;L7)IbE_RcUYP&0t}LmBzL z{$^$wZp@6a!?B=v7#9hT!?>@C9i3uULNxcU47I0`)Qpq@h<&R=1P4bFS$vcC8zX-~~HG@a3jD zgWR43=i&0`xk)PV=g2;1x@j+(@^#{FTJXdT%_l7DQatzgPN?%uHxbT?rsUbgNsmqV z>qia@m4L;Z0hGJamzv)Fh#ALEO+SdZ5|w3`itI;njyHsUc&Q%mnS_%#Tzx9F$e^=? z^Jr=V3c8rM|7Mem{=AF0gPK(E2Z$H{%`8L%m3q6$M=5@~dKHrbKk#V`4DUiS1OC1j zejH}+pwTSH4B`2JtXxu)e@Q%#+EjGKpNYrjnNgcmGpdS4F@`N&07M%l5KncQ_NAt| zl4kO3#X&PTg%sn+;gHnVxy1c9n1RG_E;I&e!WL2=m)v$5YR}K1j#uqUJ}r7;w!J`Z zxsqEWw-4)0QT;PyUn|YR?})d|G)q@ZwTZzF7tOLj@mfrU=+5&{@Zl1$M-CT<>7d|e z$&CHw8O+yy=&ayxJ4c3Lz29yi=P z&yqTg+(auJBkrKVA^PHd;^hyTl@+D<*xQ=n^6{m~vlX3YVjg*% zBZoBp+buZy)0qAncvr0%&AuLq)=9wQGCnw6R85hO(@H;^#^3y;U9kht@z!BeQAka^881e2 z2R}{ZW8^S^0(l=c?ZpF$;q0B!Seqx3x{~sDkXxQ`%QfA^5L!&USgPMf;>X5Nu_(?q za6VD1Y1tJ+bQibhYx8J5-h!JNl;ygk6r)5M&hH9NJ)TRkKP6r(UD>12xP9>|KtE3c zPoYr`(A85+d;XRQ&c#>W8*hX|)HLFOo6K6cD5r_U#jlcx0h&#`LF(08OrEZIX;kf` ziCahxaXrlpL@$+cZWMVNS;W%Z6$4@i@rv1|XB_qW9^wIM#rq|3ztlJ%5f9R?)=5?T z+~flkm*nslt}u#bqnYQUqKPTdk9e$fZ5c(}D~*+z#A~FS))CL6Yh5`t+E$Y9@oXj;!T#7js@nVArjuFVU;2cw?7%`0u{s7n3+;- z6Nm?;h38V@iqs0zh{w?iQb>iL&AuLk!aT&@$$+?pB|C9}SOH^xeRR?FQB0#P6vQtD zuV(kc&2rEX2``BvP*&(s<9M4LhSjW(NgbphqIu5}chFEdLT>*hGM#UB$7JF?So~P5 zzzNul@&-z!OQaZKV~7W(k$Mer7u~^#$#p$(uQa*V7}?A!hnnvmz0xMNlHB5GgD%4D zBksP&EOm`)7W-)+%NUP zbHrPHW}KZ=td}^)gS`HJ#dA}!MgHf&`8dv##xZ}3 z7OzL#HZ%Y8lz$v}SG)EkvM(QD+Lx=QL%=NWD8)@bXoG#9aiow#1uY>*h>tU-Spk0w z7|-9QoADHiH=nrwT9XIKZ3*#!)V=)eV?2(7)($b19yGG?>>+jYJTsh_#)pY3s>ywn z{maCIGb8QaBkrPZ6jx{dnIxWlQHp7wL~+h>&abu^dVE3@USZ=#;wN{~3d~CNVg=(d z;)X)ayC_HMqAS^}P=ZZt{;!@wFkw_QLxTc^zYE;cXUmBwi^k z)K2y(ihx@pE(-X&BDweR{bosW$a^vIAYGwPQwd9mD^gch5I-gjiG4;kp2MW}(*8kQ zQjda%Kfq~>GV_0v>|^QTAlmy~5l5=j7sM55OV!(G=$=@)j1TNn<+xx4ldvo5i^<2U z@28!{ak5Au9;E7|5&y(!^WkGiZIfDIx^Ppn*=LjVX6u}?+s4gZ&3-po-^NC{^ginN z40i1_J&AoWMepMnJ62h-4qtCMcg2eJ%S+df%ZNO^g0*tf(bM!k>?%03HaMvn6WH}r zfq#V)%N6W*Q;@!6s@}WL_z3R_tj{z&N&UAedT%xWYPNZ*eieIts(uTLo{BJIuVR-^ z)6*4_!#yi<0m!3Yjp!B-j(lx8sD=U}XP+CyB zJl(0RSXI3I>YLU%bLQ7Q=F%q)tZTd(KkjJR%f4Blj|qGC)u@H~%;=g@qY2qsht`ih zv``-qBc8q1l(J_R>J$3*I}t${6;m#ro(TO_R(K Sv4VZQSijOTm5p4YU-sX4uT#qa delta 66419 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%0ARM5+-`rQaE(HqYh$OqKgzgDJ%I3DCnG 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 z zK=YyP&_bwzhdDl|6Y77WGnC9nq5{AR4MNMI)zBa`0$mNQhen}|(4EjGXd~3V4h2A? zQ49qhbwoFy=b&|UXgM^#sWZ73n$1uFs1s`7p-vmr4YhBEjgPS;CV`s7u8o|%42cZXljRK&ay=W;k4()(ezK+R>=V$JBFv+0#&>Cnp zbT_mKdKBt;4?~J4644M6ekAIkOQ62rVT_@E=u^-NXaltE_o(?GbUD-s4Zh!*%!fKY z#8^Y?pmosrM;KdZqy-hnZE_r%4RwFgnXG^oK`Wu<&@eQVeFQZ_;`nE%8PxtcS^{-K zGjIZoKt0env<%t=#kc!v@m5q2+6GN<{$*$KG}Qiw&ZNr)JG30y2n|9HLc`EDXgxIh zD2C95_3uXFAb=0r3ax;if(D`Xq39y08`=c*LxW$TYoX4sF(;sf(4El8zatJb-i8K1 z-G4++;R%8dS_BP3E1(f*6|^2&Gc1G*NYn!~LU%!%pb2OT^boWS+6J{BLzfOm&7s*) zH`EO+gcd`6P(QRBx&#`8Rzp`oYoQTn3|a@>4UI#aLP+dJ;s~?}+73MgHSlDx4eEs2 z{{uq+&4x~cx}g=<Dw_2Mt4m(0XVbx)<68ZH2mzqbD!KKC}oL{|5P>?vq&myO9VY z(FFB>i>`yVWh9dhHww;7CPzRcP#@IYH<_%4wn2A6o&A!@1T;H4nLGsTfEuH)iuxy$ zPN@3=5b~@IHYyqKjW1m z*n|gkPiQJ9M?NX(J=N5C-23K_56|Y_%RfF`!uNkd`_{SXPo-_MO+{^Zn9w%cQ)$-I+Z1rg+EgzL|-C}Ijw^{ifI_4AoTBAOV*%p7)Qo?oaR(*?6vdtR0 z0xe6;VZDR0%sLn4`gCF?y{#qZ(({P&hVf~OpKR3{$95)pnr~daV7tN0&LCC}wim3> z^Z*=ze?h<_W7#ba>cebNqz{c_>mJkx&)AK0_2oFa!UsLz*>2mBHg%(M1zP?-pSL)1 zYc24J!iTSGF)BOs(v4O#?kU(}m$Pqq+&o<4#*0|)8hx-0U&*7LDq@q@=vS5EJDIen zCgN<&^JC)`kAv+}*j}(Eu%qT`!yyKK&0zJD*n4aAk+#!FcT8g6t-Bsdm(~8=9k{PSF-nb`V`X5E7`XZ{ZboVA=8%J z!A3u-PtN6+;iv96H$jR}P7Rp0imiE69~Vj>z4PvK_2B(@2&^8Ar}@UU4eTj}o$kiZ zfpu7?_>BOIDrFRb)!vP3Q`rH$kTSrq;>d3g_*HsWKYpuFr7(Wmumr4YrTHyHQ1NR3 zTX>e?+JtA=59mJ&1#1B-Q`m7ZufjCkj}(I8BH!G2yli4!EA0kzD|w4U-9Ub$lczW? z0dpv<8Y}~>Yl~~a?22Cu%uxJxgK1zRU1ps{i<>B*tTneCF$1#0k7JJUt{QPS>wH|F zVDlnfc@LXhi*y+2{QKAgJe@$geKmWdR?oGyB7O9J_F1i7keiL0ue=a0x~M!J+YOcx zVk4hG>@uVqLu?jLS0TMS%x-@|@3gJL&6$(2mFx6U+g_xP*R$8wVXd|!UA&E*;Awv2 zrfp}#o5LuhI-agY+W9nljHeSwyPsiiJc%`V9O(ewB79OGZOg;3#h+ohQLLMC zqzj*AbEEo%+&ZKies!+C`6wa|7W)<0Up@ zy*@H`71Bkx+v(co2$=gN_V9XraKSF58)29IjqcJCV7t07KiDC#*h}p9>-DP&+_)7x zf;*?Kd5XcB!7Aa)HxK^#!SIDOS8YJsYmkmNvNb%-Z|OQ3*()3L$+pu-H@(Wf+n^82 z9f4c7@N2jjHX~q`LyN#_Ut{Ao>XQprBi)2MFkVN#agBoQ2a_isUhYn?gL~Pt8&OsZ z(iN|>4>#(g3+y~_BDLOmV0JJW(*+j~n2}%wb^738&ea9OtJQ+}z<3(xJ@ZO~r+0!+Q#h~VUelkwwn@*u?g-N5(g!x)#&%+; zmbr0e;Ep!XrCiROU<<+I81vZqU=_b%qc>w+m6>_itj+qc`Kyqwf^R*KSdtmDZXdB@ z_|%QV>V{&y0oB3Y4tqm4c3#$Q*u(qJjUhir^SkZHe)cxv+uD)d{T4g18S5qwch&K? zSuR5zijlS-U=w(Hp-9h1I<(qMpPTc%SYA#YxZ}XN{^cwVmZ7k{l%L!A#QzWP{r0&+_+VwA7dpByATua`G{6JkylHN{pd#|^%F4Q70kC$&?CQ75WH`cg zh5Ru?o8rhHIjD?3erQ$v_IJZtz*-c)<6RlfXJ+g8pX-|y$LwyH8?32|AMdeZV)C%X zyNCBqc{llkO8!~gakTULW`e~@y3joyj_@j|5I2iW|rI1ogU#`or~+p3r5wjf>kF25ocTR!ACSpB=~ z7|)kC1P7XfdvdqweXY5LSUJsj5Q1MfH#Zml_kkVxip|)L8dM@(^fg&PFCg#XN}F|@G|>E=`H(ipCm zcOxA=!(NIZUOUp|o$LhCGx9IQQMD6~R;g@0;$AQ#i3dQ$_|(Er25YOpDv5D%;U9lg z(vsY>>>2&Wh5y`~6WYRg$}x^Xx1ZAdq+Ky44F8{;fi_j1-Z!}xi+c9Dov z-Iu+YVaym+tc!>jTlgP+a9uS#wH$nPj^J#}`9@AiHP0fm{FJbj>Q_NLIzfapi2sDR z{4_9bp3Lno;_^ek@+`BKxLw2vY0^+fh9)XN2KpKC#_^(H>HiXO`PP8s`y^NVn~BT! zNQFO+WS^5kz8@u9_6_msiK1Xxq0_|WC(0%7jjrMy-cAj`ZJ4>`5|?k1$cnl-4MZI-XSO@<1}AY1kUai0?CC~^5N z3<8L$L#)x|Y*s&`phSMt z0d=>An-*++w7^YMB{Eg;EX{L!Du02^>u0!TK3|gJ{ZA;{s-3STh|86>k9ae2T)dgv zd&G}F&))23j0}B3`>wc%E3ZaQ68HW>@FvR7Z!&p#_7?;%CVqaJ;M0ib6UR?OoBmbA z-4yy}{!0<4iZaZl431rbpT>&jTYz}RKM6iUU~M&VkHR+*4-l6R`<^2{?L{63 ztG|{4y+Vd&(}0IOXer;`ChmPj6kIN__6hMA@hI_ciF@`4|2T0crVH=6R^t14!}!s! zfDAid6B&vvB1fsr@N2=Fs6yq$;|amrseqe^$My;Cq@KHnc;YvLA0qw`I1c#dYq7V5 z;gm&0+9U%t3BHOl#E84z6+EB#OT^25EBI3s=XK(3?+G5ICI1%j@JIChE5x-A$q@NS zWH^ehIe`z8QG%${VI71rLffrDYPg4=gqPIxJV4syWHv zE)<4C?@4vYE5kdTyRaW-pn& zROlkMkDHf~xn9Y=hMj~N2bo^@LD(#9WopgVv62Be=xEc~e5WxZtGy=GyoJ5!G>R;Xsv8cg8kb7 zH0J=BwairW@0cam$eH<(%&nL|r_#Js3t8INXqZNi9UOma9@DICivqv#s#D)$;zxf_X?V10><_t87+*gS?MBPGj zC`)Tsyf0%f4m4cutGoAhL{ei<O6 zRmy7ktvN;dXp%3aVLy8oS4#g#^!duv(xtb3U20uFr%_+ky}MU&Z!z0Hv${L)K3YQ$ zO=?z})J9EeUV`uHM?aom>s>hDbg*Bzj7zLWFLu~v47OISV~-6r3PuHLx+@KLvC-6~ zWU{Pbn82-TyLY#*Pj%1X?k@L}-FrtAZ+yseD2}_ML?*iFRu`amLuwJ1@l1m*&eE1B zhGP7U&4L?om1}HHFC%BnEYqB=wVatIi!k*XaQ*~Ky|2H8{c#v7x0;O^j&59M%7EwK z+}Dchwr|BL3Vm*F2Zi}_GP|Op19p-5k8C}HEZ&8`+VR}^Wy0*E6QT{*wwyQ9VM1OF z4k9jlpSO^2ZsIQTmrsnRu%RPR*EyyPz)uI8QC;grX*D9Vb|0GqubDrEIm?=(MXlmc zjJ`9s&G_?2mbH)8O7p9cvfWGJJS8HWyfj^FmbUa+S=#l&EFY#dn8ozbV)WR=P2pZA zf8SW)FMIO$!~=AElQ%%$fV=QCrr(%e)Qf>xBBzYlADmZQeKPVcTX7-I3PWYKu*epp z_Ks%Hz-%dE>qkOnv46u}sDhleLDU*@UQRqVQ*b#_4-8LF`+fCd(O!%)7?%G7bOEniQ))8bVr3|~2QCmPfHeCdgGxZL04i0#n%m)?RkU2s1lJ{ua zi3d)I@{i~u-*aZR(5qz5r)+Y}-zV;(xgfj#DDj&6M7PLV95;EUCZCN`<+N|fUw);h zT=(AzUaA?ip!}4>iheYYau10DvS|vZ_t3u=u%V+d%5KW$rDn=ZBwE&*>wkSr^%4C(4yHsYrgJVp~;j^TsE!$U+I{-};`j}zDE6dn{< z+bnorEuaL7o7D@wPWciv-;Yqf_lV~!Q{@=(DmtIYxyYaY^7c7sP_rpcU*fJOMSV{b z&lS8>i#;F=OQ_Qy!ykuvpct*>{gmNC3KYIy_{#?fm$JqAI8)6ebCk+=QMN@g+hmbV zPO9a^E0y*|i0>at)uK3?*%%aKiJPTaUNvRryX0J@%;Ya5r@=0xAnn8(l#}rVY#)M$ z+~`c+^qqA6lk5L7;_}Ik$1CDZB%bhzx)RoA5|`g`D<|e0;!Vof1qC0ig=zBC(Sp5$ zGC0nNg)GP7AyMDWWX_-kE64m<;3EnjY%LQ-b%^ zyh?^NHs%uaV-Bsg2-Qojongc?l#|DJ;$dYjTuVHz6!Rc)Kb_2KsJk`^UaCdt_MXqmyld8qz@Ar_7&sm<8>yd}ubu(q_tlqcnL&D3j{6Xxp7_zupy z#~4|Q-Q?t^^QD|;lZm$~^YuF7Ub-cb>nlJ!O!GxH<^i^146a`{!pu9YS-G%$nzA|Q zB3p*z?`!b72gZxK$E~9BFPq^893XRpGI>5T&5QpebJOK*8@2p2@it{r55Vf>rPV6q zHI}%Y7IO{7!Dpo}!#K`n>o3KUyMeqkLmVmOVfIeqBa}-1j?a8NIZNomUyjQot;0%k-nOnByK%{Ans4H<0MHnHQ6}#wpA-R$>1g)o!6p z)D9Pl=5`tR*V2JyH}O()DK5UA%#pu{Y%gt&_iF>-a) zo5h4)AoI~_BAje2|BM&!9K2^`77(H0e@ncTu4kqHm&Cm^W^%IpC-L9~B7PplvEt8t zSgaeTTC)aa^EAqm-)3%p(ix@ZanA3y@M8+=$6`j#0O;<*>KY2*Rc7QZ#M_m1@sRXa z`f59Im%{l6(ojMC!Qro>H!3Zn*WaQH0p;kxUq<3B^3nlXcKS(h^X{-%9A5(?MVvF_ z?^EJr;^7W@i8l7Yr@D*+=eN?W7BOwZlnXzyY5MyrgnunQEycHK z#G^{*EGO=wr(AMg-Y0me)=Gwi8Aj6{r3?vL$MRbK3Ggi3%EagnL{61w*^0|?l-Vuh zN%jo(LI)^F>q?p@)T-YTZ=l;1EGBdNlDPb?|0Tqa5%()oLC1vTy(WJ%K(>m1c-$OX z`7BCav*ITi%nb6!1!MsOi7y#0D!LbUyL=l?JaDDp4FYTY{W4x~j4oEgR$&-Lr+(LJ z?mrQqoTC;`kb!6=$+>ei@kmFB8Nr}H3)smb+_)`=*?f|s-0$5(*=oNN+3Zxz!{$8< zPW=2<#pR}TPB`+@y+CQ zFe5v@5vpE@xTcKbHsbr0`LN3@CX^s^n65qKdG}rLl*cmEs~?ho2Av{g zXMZ8%D2?hMt|?b!gUnv;%`Ts4WTo}N3Nw#eV}|k+AAGtBIY_O(jCd=xBA@s-W{(e_ zOlG^%__;FMwD9N~a>vqDcZ?aIvOCtp z-kD=lW(o0iJV^ZT>&L&JY2D0&!jZ9bJ zxD?N^V^eku$FjlP^})%;cy`YuBa^*4*_h9+ooqNPg>1wWBcCnc^u{Sh0b@M%_!Psz zBB%q~HpQ68p5v*nrWixmBv`G5MWWwRC-1?ln`EcVwdFvj(5sT2q6mP&C?5WR5Ezb-J| ou%7Q7D~1gp{nI>b(~ZW(z1k;=8FVLm=SJgl%Ti`pWL)(B0NN!KkpKVy diff --git a/tests/string-set-tests.sml b/tests/string-set-tests.sml index 9b7a57d..5ca1c86 100644 --- a/tests/string-set-tests.sml +++ b/tests/string-set-tests.sml @@ -51,25 +51,102 @@ struct end fun remove1 () = - let - val trie = StringSet.fromList ["a", "ab", "abc"] + let + val trie = StringSet.fromList ["a", "ab", "abc"] - val _ = assertTrue (StringSet.exists ("a", trie), "a exists before remove1") + val _ = assertTrue (StringSet.exists ("a", trie), "a exists before remove1") - val trie = StringSet.remove ("a", trie) - val _ = assertFalse (StringSet.exists ("a", trie), "a does not exist after remove1") + val trie = StringSet.remove ("a", trie) + val _ = assertFalse (StringSet.exists ("a", trie), "a does not exist after remove1") - val _ = assertTrue (StringSet.exists ("ab", trie), "ab still exists after remove1") - val _ = assertTrue (StringSet.exists ("abc", trie), "abc still exists after remove1") - in - print "StringSet.remove: passed remove1\n" - end + val _ = assertTrue (StringSet.exists ("ab", trie), "ab still exists after remove1") + val _ = assertTrue (StringSet.exists ("abc", trie), "abc still exists after remove1") + in + print "StringSet.remove: passed remove1\n" + end + + fun remove2 () = + let + val trie = StringSet.fromList ["a", "ab", "abc", "abd"] + + val _ = assertTrue (StringSet.exists ("ab", trie), "ab exists before remove2") + val trie = StringSet.remove ("ab", trie) + val _ = assertFalse (StringSet.exists ("ab", trie), "ab no longer exists after remove2") + + val _ = assertTrue (StringSet.exists ("a", trie), "remove2 contains a") + val _ = assertTrue (StringSet.exists ("abc", trie), "remove2 contains abc") + val _ = assertTrue (StringSet.exists ("abd", trie), "remove2 contains abd") + in + print "StringSet.remove: passed remove2\n" + end + + fun remove3 () = + let + val trie = StringSet.fromList ["abc"] + + val _ = assertTrue (StringSet.exists ("abc", trie), "abc exists before remove3") + val trie = StringSet.remove ("abc", trie) + val _ = assertFalse (StringSet.exists ("abc", trie), "abc no longer exists after remove3") + + val _ = assertTrue (StringSet.isEmpty trie, "trie is empty after remove3") + + val trie = StringSet.insert ("abc", trie) + val _ = assertTrue (StringSet.exists ("abc", trie), "abc exists after insertion in remove3") + in + print "StringSet.remove: passed remove3\n" + end + + fun remove4 () = + let + val trie = StringSet.fromList ["abc", "abcd"] + val _ = assertTrue (StringSet.exists ("abc", trie), "abc exists before remove4") + + val trie = StringSet.remove ("abc", trie) + val _ = assertTrue (StringSet.exists ("abcd", trie), "abcd still exists after removing abc in remove4") + val _ = assertFalse (StringSet.exists ("abc", trie), "abc doesn't exist after remove in remove4") + in + print "StringSet.remove: passed remove4\n" + end + + fun remove5 () = + let + val trie = StringSet.fromList ["abc", "ab", "ade", "abcde", "x"] + + val trie2 = StringSet.remove ("xy", trie) + val _ = assertTrue (trie = trie2, "removing key (xy) which doesn't exist in trie returns same trie") + + val trie3 = StringSet.remove ("abcd", trie) + val _ = assertTrue (trie = trie3, "removing key (abcd) which doesn't exist in trie returns same trie") + + (* ERROR: Removing "abcde" causes a subscript error. Need to fix. *) + val _ = assertTrue (StringSet.exists ("abcde", trie), "abcde exists before remove in remove5") + val trie = StringSet.remove ("abcde", trie) + val _ = assertFalse (StringSet.exists ("abcde", trie), "abcde does not exist after remove in remove5") + + val _ = assertTrue (StringSet.exists ("x", trie), "x exists before remove in remove5") + val trie = StringSet.remove ("x", trie) + val _ = assertTrue (StringSet.exists ("x", trie), "x does not exist after remove in remove5") + + val _ = assertTrue (StringSet.exists ("abc", trie), "abc exists before remove in remove5") + val trie = StringSet.remove ("abc", trie) + val _ = assertTrue (StringSet.exists ("abc", trie), "abc does not exist after remove in remove5") + + val _ = assertTrue (StringSet.exists ("ab", trie), "trie still contains ab after removals in remove5") + val _ = assertTrue (StringSet.exists ("ade", trie), "trie still contains ade after removals in remove5") + in + print "StringSet.remove: passed remove5\n" + end fun run () = let val _ = testExists () val _ = testGetPrefixList () + val _ = remove1 () + val _ = remove2 () + val _ = remove3 () + val _ = remove4 () + val _ = remove5 () in () end