From 742b48d64c555b4b40cb9bfa68d9bf987cb1ea57 Mon Sep 17 00:00:00 2001 From: Adam Liwo Date: Thu, 11 Dec 2014 15:14:41 +0100 Subject: [PATCH] Created binaries and fixed bugs when compiling single-processor version of the multichain code. --- bin/cluster/unres_clustMD | Bin 1191005 -> 0 bytes source/cluster/wham/src/Makefile | 2 +- source/maxlik/src_CSA/CMakeLists.txt | 61 - source/maxlik/src_CSA/COMMON.CALC | 14 - source/maxlik/src_CSA/COMMON.CALC-single | 12 - source/maxlik/src_CSA/DIMENSIONS | 5 - source/maxlik/src_CSA/Makefile | 44 - source/maxlik/src_CSA/Makefile_tmscore | 38 - source/maxlik/src_CSA/cored.f | 3151 ------------------------ source/maxlik/src_CSA/log | 2 - source/maxlik/src_CSA/maxlik-opt-el.f | 319 --- source/maxlik/src_CSA/maxlik-opt-multprot.f | 254 -- source/maxlik/src_CSA/maxlik-opt-tmscore.f | 200 -- source/maxlik/src_CSA/maxlik-opt.f | 198 -- source/maxlik/src_CSA/minsumsl.f | 86 - source/maxlik/src_CSA/rmdd.f | 159 -- source/maxlik/src_CSA/sumsld.f | 1446 ----------- source/unres/src_MD-M/MD_A-MTS.F | 15 + source/unres/src_MD-M/Makefile | 1 + source/unres/src_MD-M/Makefile_MPICH_gfortran | 2 +- source/unres/src_MD-M/Makefile_single_gfortran | 12 +- source/unres/src_MD-M/Makefile_single_ifort | 10 +- source/unres/src_MD-M/checkvar.f | 63 + source/unres/src_MD-M/energy_p_new_barrier.F | 2 +- source/unres/src_MD-M/mcm.F | 6 +- source/unres/src_MD-M/minim_jlee.F | 6 +- source/unres/src_MD-M/readpdb.f | Bin 43512 -> 0 bytes source/unres/src_MD-M/readrtns_CSA.F | 15 +- source/unres/src_MD-M/sc_move.F | 2 + source/unres/src_MD-M/stochfric.F | 18 + source/unres/src_MD-M/test.F | 124 + source/unres/src_MD-M/timing.F | 15 + source/unres/src_MD-M/unres.F | 31 +- source/unres/src_MD/Makefile | 2 +- source/unres/src_MD/Makefile_single_ifort | 2 +- source/unres/src_MD/cinfo.f | 32 +- 36 files changed, 309 insertions(+), 6040 deletions(-) delete mode 100755 bin/cluster/unres_clustMD delete mode 100644 source/maxlik/src_CSA/CMakeLists.txt delete mode 100644 source/maxlik/src_CSA/COMMON.CALC delete mode 100644 source/maxlik/src_CSA/COMMON.CALC-single delete mode 100644 source/maxlik/src_CSA/DIMENSIONS delete mode 100644 source/maxlik/src_CSA/Makefile delete mode 100644 source/maxlik/src_CSA/Makefile_tmscore delete mode 100644 source/maxlik/src_CSA/cored.f delete mode 100644 source/maxlik/src_CSA/log delete mode 100644 source/maxlik/src_CSA/maxlik-opt-el.f delete mode 100644 source/maxlik/src_CSA/maxlik-opt-multprot.f delete mode 100644 source/maxlik/src_CSA/maxlik-opt-tmscore.f delete mode 100644 source/maxlik/src_CSA/maxlik-opt.f delete mode 100644 source/maxlik/src_CSA/minsumsl.f delete mode 100644 source/maxlik/src_CSA/rmdd.f delete mode 100644 source/maxlik/src_CSA/sumsld.f create mode 120000 source/unres/src_MD-M/Makefile create mode 100644 source/unres/src_MD-M/checkvar.f delete mode 100644 source/unres/src_MD-M/readpdb.f diff --git a/bin/cluster/unres_clustMD b/bin/cluster/unres_clustMD deleted file mode 100755 index f7cb1f8c43eefaeedbb6475e96f042ffcb99665e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1191005 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
{*BqrQRS5 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

{eMin=*lXIHdtQckLGk?_IB-Wip z|E11`ak~6dRd%xiSpD<4OI?M$;_oKdw9rJ}!TQ8r1#$k`zThZ+TbeEYATavaB-!Nm z_bMLxisidYlEm7+;*<6&i1OF=1?FBynxxX07WaQpn#4{8xO$c*u~PvFerY;@qclUj z(q#82jr{&j#eZ-xL+vDkux_PE+NmJQFO9(5IZ6{9{oX$9RE&F{&&0^6qq?e&jp&IH zj4$1zor;ZNOfoE~WUOZ$bWAj}8e1_TvrnN_kVw1EJGF-@cgbkneM}htKeJ2G&+bz6 z>$Xdwi3Y{)wp!NqYWMs4(cb34Bh5}&wu^>;{ds=)SD(*0-%P=pt3PBVu(Ok=oVm^X z0#%%HYbf$AlPm44ha>ZMha+=Z!jXI3aOC^#p~!ceUo2xuHeN8Y;Onck)LfrJ{xpk$ z@3Nvd)kKXVN;fC`sLu`(HN!-W?vbiRQL_}4qMOE23+e;>fN+DNW-BV7C|!v1qy9Hh zq1gOoae=N@N=)mLIcJ5t$Fzn*@X_+g~hz^?ukE6XteH_yS>}O|^9_jR_wug~>C9N;vSlJ`|~4L3k)u zCSw*C0=5!w9R=bNLp$D8c+)6JXeiej4$@3ou^UH5t;0={7J@xYE>54wcHAD3g6KwM z2LTBpQ((jzOJoL4)vWvP>kN^T@q4JtaQZ|}^;5+DCWvlC&LBW2Ao6<_NeaWUha>~1 zk0gM*$udz8t5fcHuD8#`K?Hb623sWAgm_4Dar#K|a5q~df>>Sf%`SG0AwV(R0upv_`n74Pv#8uC``sFhsDB((nY~mP|013c&4=6T<0}Ga2`8OO7B` z7ksOWoH7D*!x?fykkhT(e$_EGITaAooY{d$^u-wjCiTTxcn>NI+ZX5I{X$<99_$|( zs=|>2wlD5zR9}oVb?=K6eqUTh8eRUA!Ec=5$Wx2?z?jGR9I|B+|GM}CO9bie`K9TL zXJqb7%iPJZ&QO_9p$v1&2>uk*U=oDeUI>Yq?`=X&FKO`letfp2Fm@~ZJKs0Vp9-uY z)k=qWm0yM#M0{>YeM~TJ`!p5#C*Y$TK7I9zeDFG`H&xzK$^gBBIQ2b96Br>Y`FQ<* z6;5*!|E*t~z39tr(Pu%(8H%n|JFn=1aF1T6qVL_PqBr?Pf5I<%lY1pa32iD`kX-I3 zy@C`iwuQcRfqS}AC0+rV#42GHve$XR>eSQYnz@06FT;epIkb%I+Adioi!5Ew-gDuO%qJBLxIOJzA zOG4-@ESg801`{$67#S?!<7KcIr!pXP8BWP>oR8y7V{_QOg=|C7?>2{{-)|2`(cq$J za?$x*N;~x3WP3(VU`X?S%7CDr@4@`R6f8^*V~Or-&6q{Nq)-LV^#n4X0)#hx8t0}H zvW^#h$~c!}4eS%#JU7+JU55%e7yWVJp#?^69Ig3I%IvQ=FWhP`H##pYuI7v@TMLV> zRdKn)Skp0}+HL($ptX8ZX0H6{w%v?X0HhdwusE{OOvaC3+)Z!J%re87Q7EMI-N%Ss z=)AxxOL60Yfb&8)=O06jZ)Z3!%+7hB$a&$nT6`*Qd?yg@yDi)o6Gku8USmR9GH}PP z#a+^OcS+wjO7eF&i=HM^%u%H>%_y!pJ)rtgStl>kD>PHhoxoFii)Kc2^tg4;@`~w2 zdV!Y|DfKz*vKMLt&|DHsh_qn+0#1DSyMPCe>0l-cELOqc?T+{`(wQWz5*1LGf8=;a zmpJXQkhAED)Rc&e#=n3pzq>B7q3t7&JZNIm!H`MlUjJgGXK!2JJxTmV$zI> zcG}1=V`Cjhj}75+_6vd5Emtm(-i+OF zA1kiG7Hy$Zu}P+-uysnV6>nOL`={*7AuKOfeCp)xlHn&=(khqvtYH?hQ*lTkrxf>r zGW5vfITh@3?WK`#Rn!3-GDTIc*G**5|Df=Z@E{S*f}kH%yg|e#3Y9_Rignn;V%sg( zq;r+{4aL2RtIQb9(u)f>y~0n$>wp=%l^@6_16CDH*a`yyyJDCLBdrXQVrCMXB#UdY zO#%*?>bmJLOZiv3&QEqx?{u{$=O7 zvU6BEBpbZKHso74=4O#q=9S7ymSKTg2bQeX*mV%?Ux!OrZ~ZAf-%|&2t|#&EuA?%eksbu$g1zqRWr z3))Uanl;(U4lYSBrw=5d{XB!5kglg{^h%6#(^`&9(h+&)cT@UP1)b)8y6KiZ`zM$( zmjM8x%sRe`|JYgE#9gfFCfU0*`=9jUsjN^M(fBDzcwi!sdGR7+R7sZDry#&FFPq^G zUv13YSX;D6AL=j<@g?_sL^}YA?k!H8-vaZ zg?ZRF&7SjM&56kmPwQ-qIGkl5^cxDD{XtE~xH-X9T@^sR+4p_5XLDf-iNiCh|~72kH78rHutvQc=qVjLNp3%{joUmDs99VBRCz5 zep3U`ETKZ()?nH-+PF`i=!L-qmO$*);=%umxv@rJyXbMw3i0nt2*sy+5_M({-u z)^>X_RxUbUwY~|?3u#wVsPmjfgCMwQdTPjG4`fe-g+Z;T; zR+-FpVqsJ#EOETrxi){-1J8%3OSaFjYeKAcRkTz>iAQe72m%)2wipc|!u{(VT=rL4 zvMt>z0gE`6>dAkg?jyTbE3n{aBMKIe-ZNEJ3SUUy&UfT7DEc0c)AJy6O~;R%NvCR$ z%^pzOIXf#@)6i15I4!5(XQOfo7SB%0)?%5_S0-2er7N?r>w&9x{$^G=+UAxhCq%Xs29v_6~*`h7pXZ-2YA8?Eb2_4Clsd=>O+QvLxu#e zfh6)z%Te3wYA6inIc7VwfJE;3A6l&@FiAj0Kbvg&oj?W|s_BdY_g9YEPepZf}#k=u*<1S206 zMw-;1MsC-k-7u@aq0TK-^5E|TYd$+~_E^>PXMJYpv%ORES@xWapjiV{Bi!5fqhQ}p zyjr>Nx>#YK&R{2RQg7khTTy=F1FP4?O)KAEC}?}7o4p1^aKLu2Vwur6Ra|+xr1JgZ z{Lkl)=BdeWU|!BtWM5nGS0)H0w`y8y2>J7LT5LQtSPo3pU2m4$nAbZ?w}#}ry&QrH{?-YGwrysIDc#P zDt3nvi-9h?8ZV|)(D`$rB$E_17u3wIZI`nK_^18>DSs- z%?(FnO@m|9EMI75fJ~T~gS~356>&HPQ!7@qm9Vi*7mJ(N|;{>Zd z6Mok3s=~#YJ1VeJ|3dm!J~{*3@x4N)WD5-lF@UKowWHYsi)y#e&O#6@X5=aSS(u;2 z;eL6t71X&ABSnGgXHAxR-n+#4(^iu;`SJ*f(~jxp;41YS>i9qZs5+kWP2N2Um>X8u z0(6#^h^1Vl;iXFzGfFXavRg9@x+rC&_tva0TX&}D$eu{ENoxSxUbhFM{Qkgu(8k`v z|Bd!}|LuIQ49w_d-Lr z_Nnt9w_pq$Tj#6C9tztI6kMex7b@e+6o_YD!;#~3(A9;ADl^ChS9uGAr=LzsG3}R| zphbJ=nni1`*d5t@XK;!P|42W$EmWxyBs_*e<3#qHi7d-fIlj+;G% z-(j;&hShu9oZu#SDoeSIyVRNH_tzhQ0w=ib+oE-b4lzbHa+$h58Z++dTAm} z6l*ERL$tVn6*XU}OXD?OBj0T6frUp`-GkX|Cc44n9~4El1shLX8jS1;HlFTXH1wmA z%I(FKABJNUhf~6-`-_k7y&*RHOT9v|NeGHx-34Dm$KMF0zG8L}Hk0Yr;@JG&rYG7A zpZ{H2ioqW|{vjwYCAwE+N8@L`gG1j8SAN1nR>w+GU%@EW#MsPC@IGd6#!5O3-j~q= zgft1^G#}ydw#Lsc#m;-<$=*YE=(9RD4XxRL8nG8&E?_UQj+O*y(PJ}c(I7B~=lsa{ z6F^FP;LK13hy|SOW(hPY`K;n-Kdc?;CHf}~ynEzai!4vw!3T{$oj^8bhKDTAT`$li zWb;DNzQQ#x{+z}2djMKrQZb{WFZ!>u^MpxBPo~TSgJ=&~rT`JF4>TLD{PtbTmB~I= z%Hp#HokWSwTz|zY$kdGFf>b36GQ;P}RQEH^QgkI>o>NB(%a|p`9baV2vje#3@E;7} z&cu+r_~jT@nZtX$$HJBGhAZ2`k=DY<2SaysuH`K%Ol38;qy}r=@0H)?EP0cWAXGVS zyD{nhq|woWkxz9+Mp~_m5iL`mkxl5ki*XUKfRD}!t>8D$zNMDyPDSwq___8=T zAI^ZtA3tRI@*p5S()gze)4h@JDm1#rRKC5IS;EV3H}Y(E9ZXXW(h3vlIt(ryFHx|2 zDXHyhW@@#$y&$m@Pnqu_Pf>Kura_$>jACM^56;pjP|Cwm+fWP1+q6>7 $$5^b7 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

y>n%zgHxIX`f+B6Vx$i*#o9oa&^-1TV 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

8-{v8;O%a)%C{hLFn4zUm| z9hL~gNjA*-$+!@1O}2=B5C(52qHT~4vMQK!v>g#s@q;PwO77wQ%0D1A0W z_qS5)@9lr82E1S0y8*8td~ySvYyd8$F1P~1@{|oRq#7jTuXem<3p&`A;+buvJzJ~U z@;UERhhF{p@K!*;CVN2O=2x;=VuFrC|2*B zgbXMnNiKe7SQ&a2KR?E>!R$fo217gpIk4~S%enaJHs1ocT>MO)8ejY*p&|`=;jeY`chLbi|a3PiI#)W^@i|zyeaZ?b-l-91n~2#)QC2Kp3l zyZMvNQ1lb{7;2>|Dw*5W)a?ioO{NjB1 zWPW*a)2aF8uF*EX+=?&BFEeEv_~j-mPV&o4u!YSp*N;o!m+>GUdI=lWX(Kbe2-@ zT!n}pe)-)^iTqM7L%sN=Fbn+Bddausmm4;n#4k$^{C#+?{mop743hRa}S~r|Y>xO|iitc{(fxW>LIF8GOL!X1n z3cMo7436snoQhlHKG%toFJPI%EwMHnJYmBHmk7G+F|nwZ;6z2M*PTBcWphFRUy>7U zmT};O309osgqt~DEXi@r*aS`(1?pgr8Nj3|H^U=0p(r=*sAK;UIW7*kPL!SxRlIGo z@{;4aNy{BK;B;y-Oh2xR>?qy`?77kAZG&9ve*?__2o)s#}` zv-`}Y_Q=&DSrnYYi4N;_r|hM@jJ7V5(b%oUPnp5Lsq(U!IIUK7kpQ<^-%EZ!d)Rth52B_fnP0>D*mR4zv=jE*P#tg z`wY4d%(NJ(4Lk!OSd|g(qGXX$+GbXvJ22>Jc?i?7p6ig-1UzBOXi(cQ@{lW<0dz4J zK$J@PHCryNhv1w4Y`t(fdPdcpmyVPASnwXeBv~-#p2LY+?N{hAX#&t!tHnf- znS%kOPq-d6FUR)LI!PR}bqK5FLBRmR9>9d4MAl-Pr{xL!>8n4kgjp(72=HrPdz(&Rc=Xee zP}Q(nLWz->5axqh5eJ@aKnS<&^nv>khBtf!b?5v1jx3abyCq;yga*DULPm)QT~sGR z>%t;5AtplAVS_xFBU2te?}l@WhlF4D(WX(Y?zwq1!a0lVL zK9Qq^>%h%vXn=d&f-|3ln#gsaYmMBCD#tEjpV9I$>iAtk z9S`@Zqg^nO^O1NRU&}gvV%IUjsw43L?~24%Dt2q=B%`#R(9Qf!Q0Z>@bmt3XIhpNRVO2 z&KE3$(-yf{I%Hlcx@WI>bbu&|o6#1eduIBy<{5ZDOPoQgc3Ytu2^elIPaT z_gRAZ?-ZN-Bk^csM}U*b1t;P0m_(9^5|0N7-Gc`c67UEk)y88vAu<2O@%W9zBgw|Y zARhb!9;r011rN3C5IYa0@CG2bMcb+Bfl4sTtLI@K_I0tD;H>;eG6Lt^4fsxEgbZ2d z^EtBZ!FvHyZo!y$9ypl^-a_vG#01k(c_I@$z)DWX1d^s}GX+h_>L=6mM&?J~#%X#r zp?he`gan%AAl0VnXhLev*RHYqc8HvGpKG@I_B>9y{1cyaA4QTjxb;do>Bi4M2!q)+ z#F7$rW;Ti0wsbJ7+17Fh-60$F3TR;Ad~$<+*3(+aB(n*9+6LW;RJ%b%gw&j!SKAGm zBAMj~HzD^q=ijB0^i%`I&eG0&V?8Oor z4mu%oKa?}bm7s+#6p~QKJ@kG!SBX5!mqCr^$r3HUXD!x7O7HWed^#04g}wtTVpaPZ zv!Vl-;pH6I$5G|MH~_XCAA-bCc@WYE9!3EA4!@nP{HCX&!Jh~aJXfU;+$TN*<(T^R ziqGOzXxsJUI49z* z!Vzt7;zmvbgc>Ac3N>&+sF_WnrUbQum8u9ew2?amLo?<-PVOy z$_W)!pJE#eI9%u~#2|=wVG47?axU_TY8?BqVm%aKE`U3o_54~I)i!3d*^>jXK*%|0 zhzS>q;-yq|nkM=`T42q=5)4&1Hh+{#WDVTuiCm}>d25uFNV!U6u?ZJ@$V?<%f*Evh zI#D!Z(^(?HEI}7k{qH#thk(GMDhZ|pJVHq@o5qR+b3CmfBhV6J<{@u-FCpeklRz&x z${U~>>%IhX%q7GazeGuLE^TGm`)LEY{IT zGr!n#kTmlg6cCu9rsEh)`N9bk%*G$IqLF+q(wmK!ouDoN`>Hyp3FS#CI% z0uApqodO#1XQZIE_776+9EF>I7F+b7+k-8BdY;wJUe(S`CS2?ZzP{T>pxI2A!wNJw z#z8*)1>LxO#ypxb&9>MQq?I_{3{>*Vw%Bha14p%ST=FH9ze{7YPSUHI^z6+Z*uw_( zLX?K1XxDSx20Lg^G5uiX9@HIpVG&#GAOYk!W<*7*xh0d(skwz%X_I9(Vy#LXNJzt0 zH`1)c;Ll`=u+4s7DqaiR1%I4BYL459x^TVy%44 zCZu5-p3KKpDj%Jj&3tgqi>rxG%qGRoMh}e7Ovys*Xq1J-;u2c%m1Dq~B1#;3UQrQs z#9zbBKPzRMO8KdCRSkG2gCET_VPcir5AH&%f&9<9P#F^M(}nIvI`OxVA61c0X;P6z zhpb2k^MnRXR%8*OQx(aGw2B;qSgSbSC!}FpcaGJd7l;sJ`^$S~Me@KX&Yz^P@C2fa zVgESIlzu$ndO5Bq45qIjDIFv%%+8mID4q=bdu^BAHQoBXefIIf06}Sg(zd#seKDX7!+tJDIHXxzvQU` zeF2@7B%ud|(8du5Nk5Ab6yGiq&DcBo(i7?DhoC3dOfH&1*yT$487Y~D^kY_X0{7>~ zp4Eqd6NkyCtL(5s(XTnx%K~~NDg)vVYAYrF+%4kIla2(qiNFKL$V;*D3X>j6J7xrC;ox)6|j_Kw6DQx@Z9frDa$T4IOoVY6-bB2d~ z0Vl2tw})+UxC~bvqPMGPNHxQv;+zPnX2i$hymcvN>kr@rsRqElr(jnDc9VjA6R_(Q z>?YWxhRbk$M8&89$n%}XK%V!*x#Lb_02P$rjNNI7VhNnP?=)}<(&Qb8%~`0-je2c1%B;$L9;jl^HioUSbKrymxH05xhOyLUd2QmC@@BzlmbYhymi1CNrL31QOpXs>-<9PJ+b%!lk*w!=alm^&)?)jTCfG5I6)A?pO277K{+s#75EaSCSTIpqM+Q2f75jc=$ zo-VN9(#yC|;06nvS;j#YTzVO&3EZ}mSQlm)KZQr?BE5{dz`Z1JW*M6mT<ESpZ&)t3rR*NbiSf7cCk-#zhO7yQ7@6o|$vC zhZpifK}WT^4|GM!1}G@Qq?G6Hay)b{cDULd)pdm0Vm<$X-suh-+=(-&B>g>5#1Z+W zW0*MZ_j7VVHJXptE?b(e3{%xB0UiXYtz(1NV)h1&-!u zuB&)WXDjZgW%yuEzM?&G9f)OwcwMMMEM%K^ZUVL_W_RtpfUV8^@+}eim*6Y+Z$8le zA`cRE1TlT~l;K3#zqX8Iw7=l0NbmFgN-S2vsD0R=7nL>WDBK!V>KMj;Mt^^z5~U5yx;L1{w+#@wT%b%%&zFtsbzpc6*M zb>rMltEqvAY&6kCUiBwXL)+GPHCjNF0RCegD!mcWJPCe=J6oJz*XS;g*!Yyig;~#dDh}gZ$U>^rZ3OY$fL11%sSHg9Kv!KhEy}+ z?=mcxVYv*$AkK)dVpsvg3K)h>?2I_GzPL~sWvj=c5L?8o>W-{Jr{?U6^YRwbKi)SD z`HR96E*t)QHNL)l2CNB1y8XEiXg0X@PPf!_*Qdq*8ePEu?S_s+#u&jUK2Z9>~}tDv6I;nRtXCWTlwj zcMYY0gju+?EEgdejSdTHGNE{56Hu%BLd~_HE+teHzD`%0jI(h7pAYaJ+i&|KL1#nN zf(=Lj`;!NDU_GOB*@*B*XjOut+D)ZM?<`-H{4Cw$WvUzKu}qa>d@o zOn{l?yHXy`C-3005tcqDBLJ{CCC6?0D={lbMu8B?f{H(%lW&fz!I1^?tnpZah#(Cej<*`aY;uU-`4_@#PJ<1a19)D zy4#V878oaPUU$|47mJ(I8|<6Gtt~6doYTT(ioYB7J$X|{8Gxy0U)^c6%=xSfz;n8r z1m%6i&*@$x?zhAp6?e0^W8!{M+$!nk#Z3w@V-B}JTH-rVuZLg$bfdiRPNRHe{BNi) zT6fq%{f8}_FhB5j6?xx*0d{X&91nkFq;i7p4QiV({O5FU7WW#sL76Nq*WWcf{$r-p zg=_FXgd@HUwDm?Bl*q)NbQh!9zqLf)_?aH;)B>vzPwGveWtH;-aFRo0b1+Gzav#2~ z0P_M006Qa*DA4t=qfm$WVQu-fBkzPodiaZU!%+x-$(_cvBU4~y2rfdfj^L71a3zAv z5IhONdMbD_f-4a`6~U8I!P5{t8Nt&LJT)0Sr zUwS1fR36Bh^I1P@R-tA}vX z;Pc}p{%*E%_we{lZ1rxmawQx#Dk=KAj?rq^w>kCZzgEUBytNmtA~aS>VtlVK>4Awc z(lOABjAnL>daJ+a!FDb1^da+p(e+ycb=>J0Wa4M+56^GHj>e>+i~*c_A3z z0JwYc_#`8qf$9Okr^loKkYt9EG`5^6qFnIrC?`ZUtR}^F71TH(*ictqgr2bNIbiqL zUPzZcDNY_NZvO|k{n3HG0=BSOn)n5%Q+)+9!oQw1cz-Ad56@(w z#ynXg_q6(nli?O&jU@3`{VaAXQ?96nwFrT>pj!i|b zOda)Cz;Eoi6B~qc{o8Vzw-w~=F}}pw7V|)73&;cb%dme23Fsp?2ctxdt!jH%je4L zMAm$B-@kjVqxsW3?n7X&b{;Q#y7dkzy|IJeuUpL?*RYnWgx;m2J9wc z7KXCXlqTqLVm3~@x9gu-J3yPuc{4tilV>EtMsaH^$7iBFFPzZXBJFunC=)H6B|$I> zhdb{o!nd;}Gue_w=;Vg0Hhu-V3i~U}qLhVgZx6s8!~ke5%_L#r`0`;LX4W9c2I4D7-yezHxE8(cxZTJm1&Bl4FXP+eYWrjgZn5C8 zhz_H>acQ?Gr+SR7SVmp7=KxMEJG|#Mev5`jz@-Rqgum|y-;m=7UkzJw;|m%yq7rqw z!0zzzdY}j|l5XR0?2rI46S1_(97S()!|tRzEH+B<$e;`R8?Y|yu@}1WVB5$FL=;to zZ?TtDz}O@N>B|5+!>)U1)Rd9f^|=LamjYrEpP>V)7tim(1ghXqC7ckMMmV7~op2zx z)LxC$30g*L;*_2VtyjSKG?@SqDl71!AmwJ_Od?JlJj9tyoW&Azy?rWimWbyT`!wQE zuqDoP;xxen`e2KOOUk~hMGf85$iGPu#O61MrS8o_%{1y?n4q@8z>Da8AC&?nb zGRI>ql4RkTgsrxvD%tR~Tp%<7K@U$aZ~}n|I>VL2oq%Uz&hVsDJpgAyz@1je6r%7T zg)@l|QxTPRVzevIq;r@;m-0*-2@Kv>1V#}txR1d+jUfiNqnM`)i7{MxrhOk6yetEZ z5@K*`ni$y6TO{`2iBV3B5);D-j538Wo*24`p%bH0c_vj7W0Hw+9WW*M1EX4D+)j*;iE#%pYE2BVCbWi$F%=kf3S$~E7MmFN5@U&p;Uz}B ziE%$LniR%#Vysc&wbiUkAhjv~!iU9=W>Nkn0r-I$71a7iBvw7-fSlK|_Yk|?#I7~5 zyG-o=P}p3fXv^!l!^5<(3C?oY{>sFr6%_avE;O;ZGwlp7p(!OKT?k*eezA#*`2UUNox0%n&a| zox(g-VP-(Mf>9z9GZ#Lz%1{%tK)eeJOiVuZhW6yfBimCjN1B);6{g+9EK-<-CT5Ak zKD^1LW3iGE5vraIlnwX0f<{c*H5`{V0#H?4CGZbc%U`{tN*CRJf|M@1m^ zP8Qk!A_3s42;khZ1b#LwypS*&?0=Maa94#e&;Dlu;K2OYI+!M8Fi!t3Rr6Ao+ApLfgMSy%Y6D9?77O{ zU_VAE%(E9D0L=l1NpiRfSR@aFu;7I%V5uE??<6@=kqFpNRV0g)zrlW*NwP#C%oCo^ zT$ZVTMfQ;bvDB`sfTeaAejv$8MIvAytw>H%{sucuPm-riRtWR#MG~;cK2-%QQga1z zIZXvDwZkAFNlsTJ0`|)k$!g_quwQPH3@LM*`^P z9z}1lcpKDwgd8pr=y~=#1RG+T_!rqHo79@bztnyU(F681f*!C>QqtuLXAlqaCGe6=9lc=p;%%@m zGO6hTjS**3s}%nt`%>|P9f%+7i0EJjf*!E{nO^V$@j_k}XjG6ugS&_yoIw1GWHM#v ztrq`MdxN4D5_Iq?MXgr64fahYwS@u=zG70V6aON4-Aj0Y_?OD$jJz!o^niVbqE;_n zH663wngn{D{Uejw8u3FY7e9u-_?OzhCVIfWS4ffpvjcHw=&FP&(U;K;g zIh+7c(k}5YwP(N&Y8hCAu@$~m)N;k!pr(K1tpI-ZfuVwp!7hHx4kooi@h`RKD{3PJ zJz&qJx4~W{-Uho}py%031R6a>{21`!Ut~X3{21@z$5caf40k~f*e|5F!9Gd6peoQ9 z>;gT{K3e=3>*7bh6F-K!_?Oz9M8`-M^nl0}pjIv32K!}*b%md?mk1VwIE2eEmoJ7l zzQC^I2mMJxpRq5&x3O9+JpZu$0L_J@)|{4pLnYX;r6Pdmym3u8_VDwVV{O-W2F=U% z(#Assyd^qQO3m1w+Z3+jvr<+^s;%_B5qG064 z7}nVl%u3|pyl@vB3>WRam8ar<9Nts=&(Cm7cp=utu`Pqu{{P2BZ4EBLen9QWa_$q< z!-)&7*kZtJQ5kz`Cw7paE{sq)^#qmhr>P*oknr@hpga{c1wkn~776r2!s}`9nhLro z6{JVzbBjX`=wl-o?w5@yoQre)&?~do=X^=v-I{jDCk zDF@Gy>zZq0MR+;a7VhxVQTa5sqZC(0^2g|--q1_;-mkke7vzGBCwotYA)ugrZj$y0 z9S@AG@6wxNpuI|O?#gm!))W9f{(aB^uDGeVRT2Ixmp>KZ=W-bnemp}0Yq)j+anGo) ztdvG2P$6v<#;2Z92|UON&6Enw8Hd>+J%Uj@%rz4JqN_GaiAx;5wfdiFlIA^Aqu z?8&U1d~nvXC2NVnh;b{o+mIl4WI2nE=iK$|_hLWYnn`V^ATNnypy9o|#~JGmFJRX3 zLcCcMdUiALSt{y54)$cnD~!LY($%nZJe@=6)(Yb}dfj0uEJKG{ZKh|x;Wi#;9VBwC zFh^%o83Md#xxA7j^?PEj2SrJpCwO2+>Y38sk2&>BVv zgATtlOnd)Tjd*R<3X0z z1oWTCsd^A94jlFOdjF#k%&?0aer^Lsqp%%!1#BI^fxh7i-&o*}7Bk7P_oc*r8ejh4!);XT+PMFXcSgtMe7WFubTgpNgBmMD3&LS8m zSi>#P(${BvY!2nF;wH(CM_c&_=W`G~X~uT^o<0jEz4ncn0Tr)(7tT5+0Ue!vBWJ9| zZ_(^mk&%g1Tg7W=ctQlG`}d9UIg2+`7+<=ZzKYLtn!uLm$KkVY=_-l5(a;g#5z0Z>e(X}$UL zD`-#5o!zOg@1~)t$HoK49mzSpBD-t6wruD?{CFhHuG4Yp=zl z4rqJ5w0p*ecs?=Z%I%$?4;KvdPvJnrHnkSygdwjh8Sm=;&$4|v;jF}Yuz!xi0eoZBnFqAI_zfzDxmxhq zUO61-gRRJ{#CMQv7qbX+JLS1Z(#oTr%B0R*>Kk|IRz3&%a&=^MKL{eDU8#(&bsB3O z^(v!LW^@EI>aOb2&w40Va!Qr>ji2jz7{m|dIy&1tXJrEiiFxvx@JwC&Imx6CJp)(F z_Qk5bxf$^%l3{z0+ip~EruRgxu^e~HQ`z-57o>8mEkDj}yw9q2`?msNdnU3T$)^xv zR%atKxp60r+Z1AH`tz)_I<@6(VD!5G)hxYvd$#dD+GP)P%74zIj$=FDJL^4NYiyFL z&1*wAY^I8FiI{beBFwN|y0pLRByH}=sCj?a>9fx8ca50=yC@gVI#E>NpdqBqJ%F4* zOGta1dutWi%0G~KaQIaX4XV+*ug5!vPxruP^QX+Wd(>*2r)TToxow4+uqq78ibcg8 z=s0Nu*Lz*xOvx|<8&>&ZSM?1Dqn9N{!kz2Or#pOOj`4$>#0e>P_?lefs@(7c`Nn*JrrR1RdEDrjf$wBR&?ETuZQZmqzp5pGZP%(@HmKV(^N#mbe z`ern(_8^XAgtFs{z*zXG4HQg6$HyOoPt79a7vTwD1ts1K{IiE<%{bR$0YlBV6QH-- z9Lol;CVK(Pn2`^5F&lRIB><;azcOn(oFkPDPU&53^oO~$EyDAfRaI~BzIrIq zsr=~v-JE}t`nvK8HP|n^ZtTB4#OaXH!lR}uaRhofP3k&gLvT2Ux7uJ$hBk3t@^^Xh zyn5Gz-hZorQP=kOA?U$$PAlZF6ETj?(ZjiV)dn2HU2C4UZMS4eWs$y1iq`6iva67x z(^h^{mKY!24r2b9(G2gKj#tnpGZMIs0F`1>7PV^SF!SjYsOa2^Ikl7KGP!6JT_cXo zXWpaS;^jCn4FS(oxxgb^dZbdrSZy!c#OK?0E4y6{d^v0wGFPjW(-24wLD2>#wr;XH`ORN7B}thW`Y5% zW~N}1nljH7v5&A{$1=EE2LcGoGs-a-)n;k9_Q5Qu8xI$fF^4PQyI40K8!5h-QDlFh zCo)0f>$=8mDCBMVq1#x<3Dfv9-JzWaY5Kgf0{(#4oL5%FpECYb@@Fzrs0d%-F-qj% z)tnCt(4R0L-i^1!4&XF=|BPHM@DkEYoRX#$x*9FK;tuSzV1e=Ve`0=!RM`A`@6saQ zW$vohq9^C*;W?q}VLq0M)RQICwRI>b*s~UtMPzt!34*m{OV*=i_10?o_}7U8T?mHf zYRhWZBF0$n-@2uF*8u;v%;s&jyw^h^hWbCl02fT9G62rJtd?qtq1tANK9G#&8cw2L zlIRr@y+0Y9%jk1}{U#!q*n#F0E~G9ssyoYpf>dm~dYfY@&o`=f*BV*EQi{=fO=|c4y!# zj|cc3_5A;}6}3PGSUQ!5G!&e7&TC7@JZBW9*HVDk)?$_p?h{37_cB0Qof5QVkc%$keo2`ke48e7o|oA;hRYW-as*bzHFaAa@7B!D+U@1jtQdn#^N=Zrj3jnNHT@0if< z(&qjK<-@BuGUAbZ1v(>MMr-np1m}wBr6JX4pGPie%hT+(%qO~T6y_sicu*9oDyX$K zJyOwCVMJqpdN3PRcEI}-9_VSu13k5FgVT2m7$ zo`Jr}%*8T6xtn+9m{g+fNDXt2Y+x{$97>oCZwPg)D)i-btQs!wnhoF(NHVR!W8l-s zAB=cbbfMv3DAjFjj@isy{+&5g+0%meLCQlGSvoE7I5ve^ZFk`v0rE9m0j_= z92nr#oV#R6G#X&o<*Gx4Erg0R1+858;f8=L-&zh&;0(d~-+!RMdm4TRW7&#?szaR0 zxHU#k9X&8F?%M1OE#~eo@Hbcgj-j0(zq$H9>HLE4(?Ee9PE^!pY$j1Whd>qK zO1PuB3<6yBE6d=MvGO@Wyh+Xo~%Q zdA1}Im)iUmv)0X|QMJPjH7+WSuv1h(LWil`-!c=F){jH~gpL?E?7W}BiXkx&%apL8 z@dRfucdMUX{y92V(dE4Wd3c$#mBZKzJ+Lj!Ukvc?%xvCibLOpcg~Aepm4z!L1b_w5 z4DZRrqSFz2nR6NRybq*6WHu8JPG#*2sWMXYf4vn4umI$FRNy-7+o3x;k znV@L0WfYzWj(#Ns)2-I4TiUx>7}ZdJ&kvPTW_y@*&aWw$KFlF#38tBRQ!A5iYGv|G ztxW8d@J%fY?^@lEJCI=Ucgz@qJ9l6}1!l@jlpM%-xCt5Is0^HK(Us;Z2Ss`z2j`HQVl-nS9s*&&C z+UN)g4~P$jMlho6R#alU797Y~H2gG&4K|scR&roc2yt}2%9OlChbCe#>huDtcm&;m7(ws$*2LIa4beecOcQ1g__#rd}nC#zq(>nq%r(d zIjl9{?lqDFwFd0)o(c}PIrbi^9Hs|1BS&)eE!YW1;@>%6bBHEae=rpuu7EeJmVdrl zFpB|tWEPmpPKcRzGShb=(|0n{)OoF@Bb$xr9>SVvS~J-Cntpx7#5TcNt$n z>gEESE7qT*;SZh<%oS_-6I`)+>}tsxWk#(f>k4b8f-$z5I1|+)Y9rXDQ9Zs#K-=A2R!vmC4`}B5(z)fSx=ALsCFls%Yi< zu72ep&R7NZ+8i4o*VXY9s^YBJ$_$yHS>6)>N|qX`k!AMQ16EXyM9C7nMwZxH_ghi9 z-m`&4Hpv7IG{i+G#-+2ocsps7997TfeZP3MEPwV>Pm@-nvCanVgcl zgoE6zxYo^L_GzcXtg(wXq^+`7s8x24_jJ4lsh8F$Ii-fgu-BLpRd%S}5V_-^-k^s^ zocl`*BldxZWCh@F0=g&sdo>tdHW%Aj1WHMZX^ZVO)MXC~T&#g^T(w_{Z~Qcn^F0E& z>O_&qWeZ#_<;?->2}@5zJ@=VKaXlQ(D^uh_J1H`&`lH<;L0T-WyFglZfwXS)fEgo= zyFeOufi!M(zZoNKE6vz<>qO>Ef3(vCl%`!EO}jvvHu{AbBQ3i?T6Tf7Y;=o?FG#Z zBVKl_0$7dkaLrIx_2%ro7rjr5T+KyFc!^pH;7aoO1QUeIz%Q^lZLXDU@Zq6rwN}Df zh36RBGKZ{{;&3~9);RoKSSvNd<1(7CR(h>$pjs>a9PHsW1be~{a;@}u+FGg6Tr1@v zGu&~xW*U=OsgmjO=Cn-UQpx*6?99}G0z_ynFaoe06R=7;&zLaTj4&qL0he??NPxHE zpxI+wgEi9Q3`$fW)dk5lQqM}%qq#w?G-|H}DqLAj>M*qFKi`tI5?#@CHS$D_Z^Uv$T-r=GG1+a7*_Qfm>Yh*Ki5P6u2cIu{}+W+#5Sk4LQ<{!PFm`F97}sG@mEU@1YYZ zJ7vwfIhyAFU9Jc68m_v2izf(MT^zQ2DWOZIbz#vsbl-2h?QgMler|L&_sD+ed(OLF zAB3*$81<#U2rQ*+Uu_I#;XC4ucY|5_3Uny>)0PeU&HD&2hS(90 z&x`AWSe`|9I`Gi6Gh};3Vc8~rgy0pE%dlnn5(b9+!5o?PX%KgThD_Q_1*&1q@6b2w zx=kdp9VFh!Z7dtNCd(NbF_EbnW53uTpCZ81$dE29lf-o6qN>e7oEyMm_C;R;*#CNN zXjl(|>I=tnx6!sqP;EA%uE02wKjsvf&izpG{%e$k`F5bw0Q4b~-N*RRAu9`eBBCfjo#lYp%RrHsAY$orDZY~`OI3;+%}xLLtPDWqA4=7dfN z>SsmtDx{IujAVub67MWsZwUQD{SlcSQ@pMVv++Dz<4h9R+o zlWDrzO6He9S8eV!KN8`JcS>d(bO}07Kj&vIQvNAINc^&WoKu=i+AP`-ng5Yd55)?%*;S5 zGq)aPW=`vqnX6T1@>OQAog>*;@|Ky60fucc+>II7=8fIlE9q*4OFc|F%A|k4sCPYV z)TACXm2|FQ8v}|7Jlb@QnR;UZQ{B;!Uf^T;o9YF9QoXfrs!eaIRF~q*syBPi{b;jB zG?%5%SO$L7)<<8c-EDMLD9ipHV?R|Bj-op(`fYATL~n1E)+J-TA#R7kKB?6TAN`Vp$lp$LT?)BiE4__`wa9tsDYw~GYrs=>3QvX z@w+lDJD^m0SGqUv*Z^QSrP z@RM~9@!ax5FDw|{hjX!>qrT*oc)gjAawLy zFhFscXhZvlMk|FxD@EyJUo21R;FK}&RF-8h0`=0(THsg=9fsN&`t>pu8vGK7t+ta; z3bIwlEBtjwewazfOG)%MNupYSH_I3?nk4>ak_d<{A3`r==x;5;3xT}Sq6QJX^c&6D zZr0HZ#6e{d_JE3J+~@DQWcJS@m2JFc|0)3Rf@ql*IR{CxI$HpW1Gjhld$YW4{=Jz# z?E8=QVam85!5`o0<;Kuw%NDK4^5t`{AS3aTe{Z($GyrLV1pG__YE+lZ&WjBFkI2wU z|Ejjc0*s1b=i}V~yc{*`9DExm1G2co7&Zc)SnX^s`VaXEWADIL+tzbby(#wH2dCAx z3ehMB>I|9@K0{kM4n-dAtwzSRzyqip6iBJBmY1qhXmckcSf#F>pfWBBfQppz$u(Jy zp4Cp{?E4YIK_YZ94E_*5A6O|Gr_#rI0S2s67<=RYiNPp))A75Lt{=nIYCFx$qf(oS zbLQ`zyv<4;m244J+4$n@v}~9Iz4!c8bg22u0SlC4Uji<~qMxD78ZTqVx%WkO-qo$P zClSL+EB+9p&KU6<^*;J;UeUcggH&kt^GJUPTua z0Jr}DM)t3fWrCi@?}y%v{{30rxBdG$viEUh@8ihcCnG!mg|eqOvR_7SG7|Ov{T$i* zFtUFLTqXjmoE+KtMkN1Ae{)-6K1cRcyk}qx`yqa1TpPpw4NkEkxC|SmxF-ZJ22F)t zHO#@7wU}UL6*@~Vj4-ts$B66cHCftYw;~x+7d{%c6#)3KlV5nmmuEhbmH1w(?NfY{ zjgcs9wQWKGR~aw!C!w|4UPS=a@LuLm-zgY!lQr>bK^iJS)m?Azkz$_)FRDfh45MRz zrgv0%sj4GwF8O!40UvU1Tr?R;IC@^g1ocC>k=BTh2%;bbP9Wy@9Y~x#QO(?6B3@ zM_;}T`bbg84l(SpZWjJ=KWKq}(OV?-%_ zwZQd2L%rfsj~39StM~MG!p<_$`Z-}!yAi^v;sck%%nf)RC806~%7lH>UpX?nw7`RA z3Nm4jGed)2C|av+YN48VUPi0;R77UjG30yHkdFgW5!C{US@oz1JHsN(N+Y;T*t`Cs zk_$c!!Y?JsVR~*V-Ke=%Y0mYiDUGTzP@%yriD`Rp(G0JD?ns~XYf4nd3=1FyHI`?=6+hjIl=;{K zx-AKG6M^<&h(c_tm4~#-OD)1L%UD)87|TYt7%yU<%!u0%r(Bc)T5UGaNfs==P>t3@ zSC4rfGG{jr1~KL1ebu`$WT#+la%&Ub9&$rN5qA3Pt3i*ak+kfD*B`{f6BDDq9SQIo zWkS?B!J8uyyeEY#E_^iZ6*{312PY10Baupgc_Kk4KCvr)gxw10`MK(x#tTKnr}ly` zirP0eh9@rZ?}L;zW+*x&ZlIlyuQU7t5usO>sXaCb0dU=*MS70stWu%{reVv+5t-QS z-*=r>^8|e;cB>xF#@YYEIC;8q*Ty?|$RpvQ_^zb8I{t~}4pOX(uS}Gm*nO^KRVQm(i zgs?&EUmF;1h(As%Z3;yv%JQVQj9wamP_YZ?{dLmYM(?9Z?;3g^N_y+*{b|xGH6R+B zY?$C;#$KI_t)usfq&GxwQPMk&-ZS9!&sO1;!5$b3KnIKx2;wk_I&jTR;xVPTf#3f_5E!&`QU$za8g<^g&JC(oq+`2gc@+QUbVh z7;n7Zyek_J*y`OMxokf2mf_56b%i7n=CwPUs}V#j3j=oKX6^=fr?F1y3Sw_5g<`yy z4hyg?%~WHwC|Z&0B-_#bq>&@Kj@V)*5F=O}tO2_HJ3DbjD{mhPpB^OzjoYAJ<=@$e zGHe?lAPiQ8Um%6wHXA1F^45pMXGU-V;-pdiOjH}=7?7SM-ZxplOWh*y@7$71+JVxd zC9*A0qPenr{5$umwoznmWzJvb2`#RH0o`Hjao{?FgJdKaCr(3f#it!J?8*LayZ{e< zm-gz%h*7{ChHC2Jq)QLKI1Qs)HbO*%i)(9iSuU`&>jA@I)nbudn}*!#jQM%s9%=Q@U2al;<59E8Opl3t1bJbc`&UT z>sBJu=E3x5VNts{7(or^LJssJ&P>nV42bZpb@BT}OU_q^yXZ%=UHgwrVx z_rA^w*MiS5I2>UxxCXd~Sr^^Vo55L!_|S_OuZN#x*U^oq*mcm6RNyO2!fn*EhnbXc zABQa>D(SqQ+fjz*n&>p9qrFTl(RFtkzqliXqM8kNxv|-7RHE4ws3E%OsK;bOI1MO9 z%`^ooE5ie=#>2pL8C|iFj~=G=ic$VRH2O74wnGBjr1O)CHB1+l!iEMzhR5E zS5K$mtpAao{%zEAm z7!K9*o&nGPAL)4yKXTZdy4tJjq~BH7nY|9iU0;&U)c{lJhs%2Y|5VmngNMy}?@nr7 z(oCwv#Qt&XVR{|q0&-zk5Uwy5v#1VqWr!J;s3!AtQdFZ4wn=mm)s~C2@>zFYds#@_ zirCCu5GIzWxC2I4QX#V45mKQ$K^&HIm-#5qJxV~M9aoFN{*my0XCx@2LfVD69Aw_Z&9)UC}A)yMLEZ$l%)U}39@~JzD{Re zlPT#ne-6E`lxPW&2?QEZhUfqV#3GpjSGCkbbawM+1M^xOA@OoZ;N~-B8>lBb@>Yk$ zEu2qVHrLJ!;66>>8;+3jfL~DjjYD!4q-_x1-V2EvM|+5RSVXrd3f$v>ev5v zm_B84vIh?r?@^b;5W#v+X7*lHy}B`5ym z42_qSnJbY8LvRSMy0(58b2<+BW`#XL2%{YN=BzqLM8V{2CFHVvxbjrf$J&&RP{pC;1kVD1`GD;+za; z;$BB%6Td%kG!~wL@9p@WiSNw_=l42CWA$11Ug>Cz@>>qVc6=`dsk8ANgRJs@tQ6E)#r_nr6MP#&w z-9r~G!uUWBdXJ@DlkG+1sL*5ZoCVnN~~%#y41(tKGj4Th!lG{E>>c$75F z4@7FDDy>2Dd;+`nGo#pQgeo$wI2%*ics`*F)w#ptp`+2{y;F=04R%yN$BScI5;wq~ z<%3`J;R_SvaTS)6QlS^mq{{X))}NXQG@H(lA@k;z0>97Ki-@FW>WsD{em?(hwuw!!-&^tc5tBEY{d%X__lU$*xe z2os{;-?1v!SKhIzz&Dm5Zv%#x!-_gqW%))igevQutE!P3-zk{$nwX8jjutVvHXxB} zx@@?{9c7MDQ#VV7Jf1kFyt#(GjcH)QIU(ZoK)Pf7}tIp8B^D7?xyoNI{0AN0*lEsI{kQ?EH9SCE{m2enCJowcD%#g`X zv;Z$)@ZNGikI)}7(fWCWUTmWE^9VhG5*ZcH%=$u|o@LBG&;ykwY{oaS``p9`IY~cp z9*?wQT3}zkDwdq2XIi0cW~iK`C!SES!S8~4t8JuB9p0*)SZF(WB2zQXMCCv|3@WKa zaYzSZX1tuM{}%KRFUkKP6(^_bv(w@(NX5w+dsQk@c@jr+t-}M2 z$!2?qP252h7cW&@?x7Y9j^kbv0Nm5XdE8TZYK=FV-wvF%<2>$dp2wZuTaV^6W9XCW zu)WuD9Mx#<0P3OCXyiCM->zr?S3*#0@3a@g*^1#ErDd+_2Q>U_P*wuvzt&{VTd zb(Y%a%VGOqapA~%mIIG$=%sBlc7%sK2SA>r{}x~Fh)ZMe@a<6qaEnFuS$O#NAOd)z zyn;VSMg!X*|H^iR9;fjDSQ#nfIKZDfJb;$%_`qh3jxf<$9QxYu;~wOh&OcVz#YRy~(E4Y-RDO z13UD!GOIU{`xk1#mVeSMHl>#znI{^0)8qdFTCVSwBURI(Qu-&&+zSOIo~kP85!Kpk zs$SFFL)KKPX1$*tDL2vda)WFRq=*igBeQ%*Z0%l%W`&h`=OK5~IR}h!m)5L7a~`?> z#?n(qE3-GKvdvIsJL>-1o=%B9r~m!87m4)#`$!!#gFfkLBoKceA&*eaLwi+oUqIS$N;U%WAA;ZN4T?b?%%jtKLt#2`pmSMljgSJA_7Ht3 ztyM<%!KN}VvG0+tRE(zO?3&}f?MUUjFr5gO0N}zzJ95&!u#oXW4o++0cF?0(?X+}O zo9R21O)o-rj;~-bj6N>LE2Ma;E_e)4`c`gQQOnYEX^pf)k@J#VfQ#Y&ljDtBD|hlb zHgcDrBF0ds#P_0yRYcbj7+{Q=JF2e2OLeLri?ZgN#q z#U0x~P}n!7;86NjT)+8N505XwkQk)ZP|?|BT6KzP;TV;B{_7kq>Vb@m_%L>CZCOCV zt>6K8a}l~Pj*tqDb8b8c$kqqwjY9$D5NJ(dlF}az1(e+fXwIR4GJ7YNxb2_}W%YsJ z{!s67W%N#{m+2JQLDjK}!4B%ct1;BZ&gI(yE&a|78E`9&r){9iSo1-w~vu0rj>N^hDLF!b-e z)W5%nO8%x6@QF$bcqmdJ>~GMJeYAiNq2n*NcY19*P{;p$;2uiHU$z~7`c+VF?@Yy4 zHXe9;=Qem^8?M5(!-z^aak+ro4sL>4+YT4br_S*VY&*aO?b=yI$!&)b!vV-$hJ1XJ zwai_H{d?3q7NX+IEp@(+Vhz#^NBu2>JsHr(M?YUA<9Fp$1mGEkcK`Nu{x=F7Ar*X- zx<6n3C^zFJ=%iA3AF6BPR;kPvYAf@{`1kURW-rfZnxmn)!(^jh?VChf0^+5L4}%*Q zArt-R-DMaQCTf2UC$zwq=$clV)BBeuhlYh(-9J1++X!W><^jqPIh|e4OZxY#8sBlmMF8F znTd-mXBN)BteGpF!q8Oc_Aji|ps(HT)*2h^e`g2tw+_Jx3S@B5y*pJZCOrMC*LBz9+jZNxYp%xk>+#oI zcRkNv+>se0zK(r7i~O{Ok17Oy2}w#Eax!a;^|T`Y3uE2(!~ajl`q`~;bsIX$Pc^sh|M*WG-`Av@yW>De=Ei78xcZ*dM= zf{DYoq`$NB`7+#q*Uw?f*Ec1-evVOI&J?_U4$vDcync?(<1M^?4$U?hU#ORUj>``$ zy#7tWS4*ArbN&sZLtA|}T8yI*brOJiZ@_EqWC=m(!MUTWZce?*SS2@yae5 z>N|@2=uQ}CH{OET5w`*6F|o^2^%-V=J5{Bgy-x`$kVn8?a8GmA8FwJ>v|hNSy+s2AQ*lmA5$0=#g-D&zmaB`>Dg<0{y6N=tr?r zyNnK4?fWL6T2^rPMsr|3sDi&ONY_ynF~rRYcfNt~h|RVPl-kK&HM zW2NXv(YAg8^`jCGfIh$XI97^s)Q=r2MLFs=e5n+5Bf|N;#<5bAqb49Z zDo0%bs#K1;*s)TSqrM9|REjzm@cf>B80DzZmvfz2(S^%FS5-MLhGJCISA132dogT$ ztUGFP#9QU|w+gl zuU9OnJ}Fd>VEx5P;41Wvi?NZ2S(esRCL)o$(>5i0XX1ih$*6}6)BEe3-4tuFrvw!r z*yJ@f>c&i{JMhs0eC6>1+$@Vk+M$r*i3E4x6DuBxEyq>pgG;arfr>ZAotlV>c$fh4j(@i2@!@ z?~C|>ZBuTJ;GY>&z?k3Shk&jAE<`XAd97svbIcgS-%jtnNpFnas-!ncFYjNd^mxV{ zcfsp1UgkKBUy_VkLoeTBRFF;do|5#|(@QfAj72XU0$cSZI84rn)B3V*j4O$M4u{~5 z8yVl0bQi|oO}eMYU$@-;C2+-GPI?#9`{$&0A-zu~y;9`IlHL$wIqX$dtKmxAr;?tU z_=$2xBN!(3+!mw}2QEr^nSDKfm@EGNNWyqbLSRi_{ zxGwcyBhdofgf;veQ}Ktm&t=><2~d;cKZ7Sd*Krp`OaB4r<6eVRBV5qObtxD0admWH zp-Yw9)#wjG+jv3 z&^nhEhoo}@d%t>VD=K~8WVfEkD=~20`0sE}O!c6L&|80?$A5_cs@{HAs8jWpiqDBP zmg+6B5-;Jd1J*i8$jq70gc zF!X*fIsO#xMWzEC%rFiWiwAPKX6<_(&lBK@<~btio7VVYEQJa~qp5dt&^< zuzLjG2p;T-xY}dcD1yTevtgOu?}9sz!kUz4nrHdDZkP!xQddKPHVqt?viU5++l46i z+H`>;DN7)`QFl1U?luNc3~*OnZy!oPw}E%5t;MU+k!IfndF^e349|eN!q0M9>mU0B zY;0y|!I|(V70;`FO6eA+$?iuCcnUNlIv_+jjf;Mc05MH=Q59SWxC0+8K%EcM?A9OQ zr1`FXYI#;g_aGvl0K!(#q>gP!C4dMZfdnpCFVb&E7GS5dF?G ztWc|%qTiWkh6X7xwAysoIL$?^ImC<+#3aa4lTyacULdqePYX;ksf%9ct9O}cmYAWU z(fNWE%GP53M3-}c87hjLy%M4wv<`^M_`?nOj+8|--cKlAdl-9YJ<#KP4B4kz3=azb znLV^ulp^Or_RxL++(RjHiaoS3AK2BVp51{L7y`y z`kb!Ni&Px}dw^^~6M||FOBS<`jKK`F;P=6|OcQHb;5;%hnpwk8rI|IFN*XE^qs<+H zAXqYcMVU&v2&p=HTAjw&Vz}ZbS&?EY$pR`!0v$u3uffN#KlRJ_DmYSvm(phvhE<&6 zwed?3qD&?2g)pN`C4G@}{R6I6+tSVH6%qfj1U`+xR9(ccLm<|&-g7eWo3dA22wR}I zgC{r0aDfg+9@ZAPLdx4xU5^?=uRN+7=MPOd`faUf+O}4d+eOj-Zfl*#wj|!awyhOy z?B}-DZ_x84y?$VBz(1TWb>=jP=sbZ7p>!1-$-kYyCjd>esfGZ6 zu!5d`0{4D!V7$h^?>kz6OFS&-9>nv@J=xv?_|5YD2*N_l9k~rB@_e;8cI%V_J=pXa z8wYcD;Q{u@lIY2>k_(`t-{TnN_BZ9zPL+SJHscj=z$S3OC^#VY7<_GVVh_mz`vPEs zeDBo(N%a_i^UMCdW%pgAzcdG{U;eL0b~Eq>wH{n0`yof5f}Qf(1o8<&)w}Rj>CIdN zb0+02ImP6{O@N8e+7sSuVK(w!$J1M4{R#P!th~hZ+&$}1@9xr8r{>v)DvT?6@_uFC zc+T!60OI}xnhe*c#AXz*`HaS!*pCy-Q9U#mC6=RT9jXlcl;0xrTWEd@@Ksi$kg=y* zkuhU4jFjO1B_~a8Du`P5eTZ;}<+T;O8jyn%_Q6`s^N6+db57xH0MpD87JQhBa73A* zY-75N-SLHh?Hd+gn9{3)MzyIs1wGRvkhvBpjdeJ)h&^;WR%ztjq^x-#1W|foYdE_bXMNaN#_03G)q&Cl>o%5@f#^WN&lIoSN%w3 z{GCH&oa`?#ElKyRB;At^LpL$5v7SWlHi>RN1kq+BeXy#~RcId^{CtG@9;v*J_AT&U zf+psA8jnq^K~CIw5Q!gc<VWN_UJ-sSh7bF^%`+;R7>w{J0^oK>oc0`O@V6ruT8$U# z)8IgIk0;`QFgH-ExgJF~nt0P<@;Mx-CQT620#pS6dn$yfXh{fsw=fgNTUKYqOAwU~ zx+)3UvpRlCpU4$v(u=%Fr?>;CJGSGN^?iNb_rpdk^Mra_;^tn6ra)Fx!G_<6WPE)yHn?|(0e|O zghlm;YdasEKhYVw2HSBHw`t1;hpx%gBNbZ_pXm%u$V%WTr;2DuW0YB);1v^sI{T z0ya4OA&z$bl{Cvejui6@W5@c4*`KY&1ATZ za@&DD+AK~kuB;@lvjHU|=DXzp&g$ic8*Syhd-DN|XUuTiPzM!u%uaAls$W~L-JwiT zpqe9kfpR;~G)MHE;8ndKFs82S9VX-VatRY`au*q`kCPThs{^C;GqgBH>(_Yy0HgJ5 zEs)=vij3ASFgUBJNCrdBg@$hPUWNK5wS#(&3Ou;yFg(?B=wr_jJG$&VW|2Y#>_sMR zWE0~MtZq5MQ+^xX;my_8@yu~W80y6>(2q6OgJV* zvq1+VK7Kw?p?u0Sn%H8m>=Op~Rt^Ix3B{f;18+xQMd@>7)ejtNv1vJAszeORQO9J! zWN}bjR(CPwt|tg#8G}Z z-=J3*0^A4^87n2ZJsx9kY|aU)I#_rCh@E&7R9=D7OM^VEV)W$xTxH+=M9g=1e*;^I zU%HJRzH?gusotn*LYnw=;e$hBb?2y_`2YyCV6(u{v}J!~H+OWt#(MM>;MP_hA@CQc zrC)dW=_uS4YPgw$#WU(F+$zFKCH5-vY>s7YXB&#IWp6~4bpgxa{}fL$O9F1=X>tXS zV+K6gUsV{(>B5K7Hc**td;pS^%w0i;;#Oh-=2Y?jm3eWO;#F{u@rHZU$G$-zNc@C5 zIgTrqc#O}v$~hN#!(r|c8PZ@GY<@{HEM!dTdNwR0NT%>1DXAa~E4h&18-$VzGr9^v zd;u=gn+z&(m%imahS^C5VHOZ@lLzISM{U~iMbT{j7r!DcwnDj*6G2FuFNutaIX zQl*}Vn)5w2{hJVm_)xv^jj=@__QZw*6Dtce{7cA!B#1eK33{@lo>8$1>@#Qc5tq`} zDztIm;AXzphEXtkCHf?G_T@GCdK}cYFk54yAv=g`TxGhg^7|BK%4&vW?E@8wfW$Z$vqbJd~#CB zkaZ$MrrwI@wIWAHkadR(GTb{NG76>9S zbG`~PFiirT3eZ$SH`A9)$fL*{A))j8B(y)75T?B$y+~7nPmxxK>qjaB*O(|}vJBgg zQDueU>>B-Ruf58>n$ z205B{=Yk3DaE5*ip-B>iz?YpEgUPK8BI1H&VStv*sXh0Z}-UI=cQj>x_#vP8R_#ZK6f;0h;f&}>r&j6W+ z>+{Kt+@+iDKM?{G=f6Ubjhz*z*z_#pkPUM?NpxyDf@=_1rY^xFPTi%t*J^d|R5ROU zK0KtEY!b-A(yg#iQQgX0X4Zn#@*dmqxg z_6yrE#$<0Nwz-R2>|k>P&=pX>7OlLN@kN&3sw3}ExTJny1jeiz-@VqzM5mh1QAcx| z*Tb%?_nMAXWxgvRb9#p%BOG=pe}uyhyI`4KJ-v#uq>6G1v5=H3n1B{dthN%v&9H>l zC(^$SPsU5qOzRXgE!d#NyDUN9;Earx@fT*se+q{Rx}7d6gWsg$GUAnRfc0p>0yx}} z>+P9P^|HA&*CrjuG!PD_JsD2h6}hK`Vp3EI!ZT>WS4YbbX*${hfRW-oFZ$L5s;$L6z49=j6ji%j)d zbLKTxjv$92#k!0e(NAkWYBjSl6pfYaLL%)ak~T6YdMzF-N*C;Va7azT>X!z06K;#r z;r^SX0q#HIA(^HgOrfb@5>1h~i}8+b2|?YLOi%;OaqMf3U2H;H?=JvNeFX~LprZkG zm=HO^d{9+_bPmJ@#*;As7R&JVi=Bxv?~9qj9!^D1+-Ogrer`e zzYY_qyVP|$pidvA0g{GMf@i%rbzvqs|E~dm9VBw;z%!;mV zBoR9%l^za1`>Sy{OZtec!8c19x_BKPdfFgk3Zyr9iq+t8craH;And~wgzXT7!TS_f z9B_6{L>24Xa|M3Q#oETj8YUE^L9A`U(1b&8Oqo+QF346}K%bOh_tU9cgR;_@p0l>hgRcX!3VezQ~dRYl4M?b8onh2bG(RB<3OGH#e8ll$WcD` zdpsm?y&whG)hW34^ad#BAwp%ng$v+#7`u3KQWwoGry_C;cPQP*#c>vJ{qSHR$>f6| zJ<>Z-DtH7DWkTscKqJz}b$9@qPs~BlJB{xh4oWu_(>3=Fbew5U#i^V~*fPjeR9l8~ z@s_+R94u5O4S@Oea38>nEVK0i{M4D|Mqp^#M~dR?G&TSv#}BDJLL3np*Y0)bP5NYe zTGB9ke{l)MsbJ3ul}*-;)U`>+On)xmgw|>ncho;4}<>b0XTMl(I?^rL4C( zOerfP45JlRg6HyH1d0xX{Yx` z3IgyJfM%Y>7pdpC?D$RCjU<(jlkNtjfjbaIC7w!k+>|y%6uT8CJ~mMQoKt4QnQA%$FnUDwIB_t5kK3?+m-pz(@;MSojUl% zJJ8uLdRi**19+KKl$zErx;K%at*-19T@34)$ms}qWJ-vsfs{ZT#G;fC2O=0lkq%q5 zLLCDoF@1L|C43g;umXHr+{!?2ZWaH&O%qD;UbyK0_lBV2~ zk%RMJhB5CQ7wctPASG1i$^PnKe(%5gH&n*OMAiQ{v^r3gYq-#%qWNT~Wgz=V` zVneuoTENcBiTGHQv&us{Mpz&)zO*5{Oy%D)aR?_VyxIr{!uxz%`p4-{a>Tk3N^Q=xu zK%WZ&C=+&P*_+rvL8Q4yulV@(Gk7Zkv2GQ*vw}0zCX!mcVjXlA*G7LUFiu{g8~?_L zK?Zzto!#)(L(dF@2`OodDsDF%wNO-b8vk+{FFB3>*^C2-IwE|nBl5`@NV6-NJg0!D zmY^d`K|yu)khk6@f<}lSH^eT2z}Qu`$6c}Ojsb3?4SuS<$3!2-$MK{Nx?ni7|6~v0 zJ87-3zA1xF60<{0DkG5pejK5@_FD)|7fvI*O{W%k05Z%-1g?qkg%pHmx;n@NP4s5q zG4h)pwA5uh)e@lCQkH3_qKwmMa~cORz7LW#jb`|;-GYms)s&C+(rQ|Ou0Xvz^i&W8 z?Cr%1i;GeC9$~#Lg%q`10)I{{1_!vdptRyN?jarGCxRb}ogd_h5I<}Mm;lKoOgv0g zEL&)G@={d8o*L`SRCn0{mvK-nQa3UO$n^}cppO2GxS4Y?(x(=hHJrwLau?-N?b`}% zDW6STV{x^D)C*GRr$oSA_7uU64n`6#a+2(+{1@kkdikFYXjpY-G}fM5loF_p@0?_-EK#OfOj&qR7ZZ0U85Z@#8@+5;GHb zR{ztD{UK;W5z-bD(w4||(*bGkrhI{NYyl*I{h_1W`Ol`Y1x&)!j5J}NF2k<)i_$_h z`8WDM9KATC|7;a~?PvBi)T>ZRX@R+Dsw75hIl=j8Z-H|jehBCN_)Ug$ zhGYwzcjFQL6qr)zml7U}V2S_qcfI=k9GNp=*Z|_jRTv#)ZG#ra8e8Yv+OWGm(uUo(LmPI(7H!y+25s0?&uGJ{9@B>D_i4i_tHE^IO$|LR z(h-}{#(OhkQ6cA8*b5^UQ0Lm^6!=8`3iA@1vEC8*FQS7Xp~+D{1V8vxF~SfOqeheC zg%M0K7`uK_vko8mNL^yuYoZ|?R|(2>xMwQ#E=raZd#(;mf_sn=Gqv!TLIeJu;r=6k zQgf_7+<3sAV+>5s&{(KnH%hreXZX$^v!tJrP0+Sz}o{9%0V34O^vZE=dR!a!^I^;~UGjR&y$sXf+Swr?r}QDnP@p z1k=^E{2}|_i3b>e-A6Y$W$Qp=e~y@O4sT6zbGisqz!8N1MNxEx^z2wpn4-~AH6JvkG&tr9H} zNPUXfgspS+f9WekLB0TKu8>iSA5jii4}qx)4|A!_umQ^m^%`2hY`h})-lT2L&zS68T}?7 zckTEeuama<9;Z&hepd56Mlw3cN8P`imr8xSMLvVhLo1osS}oUlp1z9S3caVcR?AVt zYo-*iIQLuV9oh(0-yl7%_Y^i(QahTTAOXJ#zUX_5dY5gHqRHx9%?lcqNXF_7M-8ik zq3o#GT^iA*Cz`uDm=jXzbqzUSWW)E=o%%mINZMg$;F^llJwAx3F#}hzh%+>@6wxQi z5#6EdN(&JZg~@I!beyyU9FmA+GKcXXlNsRxZTy`(vEuAT)L}#-`%cV&8(PJt0~8>g^v@o znm&|<@Y_{5JW9ZB;c>exr zNCs?*dX|LVi|omOP7@i#1GVii%SNpjpTNh6m2rGvTT{&~aIm`G#D~+rz5u!k#XiAH zaSC2oGO^;#!r3l*ve=&{7~IiA(7h)d7C}uP_5eYn6A04aACf!CbFE*APqs7FB3M;dkzyZwfm{5&0;tm#skNhHKAY5-HC+eJ3zDx zYKeQAlmOk4u+Z==J^-sHM(+uzH2y z66=i6U4g~6pljhd8w*n|)cJv}MjuO`6Z;C1@{^O!P}o%YxHe12=JVjd(OcjO_shZN ze+C^EnW07N zF9$&@k2@@a_QiUDAfA6sa5ce*e$!i)Sy<{r)=2T{CVk%>+tyaxA;rVJ= zVtec)Vim-f=k4pemq{hDKEB5#?@*!}0p=Lp2iftLgVP(1JuFV2LpK*lURbRQqVw-_%(o9B`jbN-1W-Q1j5N0GoUFgCJN;qKEs zcHE4#&wT7)BN;Zu%bCYx$HajdkRlLyEQlsFRZh8u&B-}vVJ#k;#$0!rq{x<4ZPL4O z7LrynoQ0TYt7EH?=ZiDJm9(`pP|`#g#5|uJVQeH5!k9;doskJJr6(?M?2UXMzBRfe zBvnd=cW>ld*-H@}D+C(@G8H6UUakdR1fvrEMshUfaC6Kvsx#!mZpWB^mm)~q6A)1SstR~kOhGl^rLsew5}b3wfg1weoo|?2^6U{!XbiI(+eq00qmSR zhayW?QZ-t|HU;REKnd0YG+2RrPMwqD;n|wqB zZPHHcSUt2z+7)q|`UE6yM^NdcBmvyR(5SpW=f7bz<|Lt5y{u_>>k8yuQX#t_pmic9? z-16v__xw9s1PICqgOY3lAtiRrHnueE=p!&N!Dxn|axw%ArQBugWrTsQFMq>n{F*F6 z$w+}J+}{31@ep^tE3}-VH@6tuu$ z5F`V!@Rk$nt-R)#W5NOS?`p%CMDq}8yJ1JZj0}^L2L&T?Xb5YN4hRJMeJ{p;K1EZE zV-51KHN2f?D|#^~X>deUkL#{F$=}_EaMnfbwxGP4HTkiI_j-YN{X5nG)Rx{w8-nvC zb!Q(t?g7vO8W2!-&o1hy49c?|P7L7L5BoyONg+NJ>JQ2r78qo#P~Y6X#C3tj)uhg9W zoqK4SKh37S*4tssDx8Kt{T;zs$1vrR+vM+EHf>lQ{*5W-pA!BV!9SJ!Q^h}1*fBUu zQozpP5giiRX|&ZSxbqsLp0>WV_%dSjK~Lx|e~aJ0q0$z-f=?IV@I!#KkuEjkFYoo)Q21^p_ia*?nz4nm`;~B`DfO_!eP=^#qnO3!&`%#&d@U~6#3e+KC1JfIZOsRcqPs?N)LtPF+U^-GD5sE z7uqz9%ps{o3$QieR-nDmTN!e%gsL1oabpO6B~47-sJHEdBgG9U7}H2^dXtYY{146{ zR|?*ZIds7ggE>d<&)i7zNBAA{n?vyd{>N8E@_C*?z93grhzcB7wfI;VJJu9ZNt(#3 zpa#cK_VD#<95ow%__o7z%3KZa;YMq@WVau|CepX6mBMascjvEW3${)TM7lA2HAM>gMV%EA|kEPOU);S)p_ zKAW=eogxdLOrd-$<5(f9rR|rn??$3WrF- z>y_lKB#s_$eOwZLX+iW~X_81PA{@Ob{zz^Xyvo5v&SJ0qI~!s{-!L)5JAIN+*p@CD zAN(YRHIi%MX)IRw6bX4fTqZ+8-jF0ASL8%|nG$lf+xjuS5q&gG=6H1Rc70B_@b;T+ zM}oH`iTQtin~t}cz?*E%GYHM=6GC&MPYKPj-Rh3eygn{8Z=%q=4@X0Gv+u({Z1k&X zLd>I!@sHv0BqK9SQ0lq=IueX03DJM@csj;!1IANi>E?{4EL|uxRhC|Vs4U$~QnGaO z1%kaaB+sBIeM6d5^XMXZ{(){Gx#`s-L2{C8z4v43NG3Z-5wWMS1B%!a?7$SUD|T=` zCF~2KS)9BPKDv0j^3!hNZNWc}1aC_`$J-si8>QqKCGRFbpyb^oR(0irxt@@` z!=R*V$$J`!uEQ!AJqwE9UmmJs9o<58=_}b#jWr!Yc*-uh8d*a4^PHjF6d8PdTn68u zWbjvGLtxF@=pd;s`=huB{vq!AcsTnMC1tZTafQfeMFNTTg0(22G=K1x(EQPjtFUHb z$7(F@>L^ynMks>HBvocUrON-Ut5U51C0?*z^Lvt1qQzd2S_eOqs_>x4C z64Bq7tuS|^5YvxPVtO3r;Ud_Q(&NpU5Yjh5NUvsZ^ja9}Bv#0N+1gJOd;8_X^-gw% zE3*|-1idir$a@uzywO515xU71eO<(p01H!E`rdjf?o)xEj%-3u)H1w_ah9$vuP^UZ z{tltox3PSyXxn>mAl924OMpGdfPP0Akl}8DG+W%e&1|+A|AIVw8`S+n^LY}4b(J=M z)X6-NdP;}ra80kxui?mR%j~7oVL{vCr$I5zcg%(H5zDf-zPkjhYU(;}~bQKlL@Jj7s$9RVM)k?5UFut7kmBD3uK-BnM<(JUZ2jyLt=6rkF9THAy}3$n@;4mx?>kAG z`(rK;8}-o0%`KEz?Q({$D7}hzI#p1oB1Y)`JbE$eA(Sx>-oO?Q$p~dkq&bac>TC|| z%$ICq84u%n=gUq*NMhv?+7$!`%^MXyuCUQ8R40WA?c}gL1$@f(?Oi$ zkue_`kd$hH@3MXe>OYURbE1Fe7c9i1rDu;bTe=$$wpM%T?Il{^G!(+DhOX}9ZMN2X zD22@PeDx1LGywGm^K*K5(NeUnL$(Cn4>we*F4-vJrNCeCZI~HQHUZw~v7^H+s2aHh z!MV+J1b$|cvq?(fDMv4Bb`E=x7=a~13x9?^C|DWxAhCjawMZ0RTZ;CDi8)sM7-`~W zN^-?GEzbSp#%T|d_v6Mv%uXocMBg^lv8wQWP{f1kG!Nsnw$+dwcP?ip`PM5R=N(d0 zDhZ{23&UWcgVUGxG6Bv;18*|`~_@94q;#DhlnbNn+~Agu}f4|QSJvk!Xi8-dJOrF!V^ zuZn}rvcJDN1zm@+)8Ah$;RDp}^Iy^{nrFPJ=ZD)-PdCCG@p6p$vr;9zh@eCc4u^ky zM8^oL&#OYMfC(Qu2sok-fq*PLrIJl#%xXn5&)`Ne^lUwv_a6lLe)9xC3^r0T9GHyv zSey4xbcMZM@FE^U@=@l=*&u@6p z9eTsge7$1N%yae7JZVl3t(3aDG4B%@8voiMy0P*TH9CzbJL8`Us#Xn9H5e~J=3n*_ za8SN=ns#fAj3>TTqXyW&7T?-3<6XUC!wh<$ik+;79uO#Xf(I;aD!LG>Kt3Rwf{ zfp_WjhCjv%7JVXloR8x;A7fhuQp{1K9qX+YK8E=HF^VekD}Td(u-A;c{09flMyMPy zjna(Mi{>J_OgZ;I+H-LJ1Y199c`r&lwf@78NMk6=+Z_x~w zSG>KLc${ctgcq#6_R^c2q5h?C zdOHMD3#A}NysmV5o3`v3%5K^keMs_@@kSuje|^i7xC5Zsw?0+)3L-Yr4^Dq0OfI9E z3+w;&@B4~2_h+cCmh#FnF6H25ETn5|M!J1Zz%@4Dnu5l$HhD^`u)%?`;3cRNdX_A& zVORcguqp7AftrgLVl;X4b&F=jqm`lDtspaVf3lg;$f?}Y{;yBkWXr>pV|KhM6PC+qLfaD zR>?;?Pt?NEB7CH?*Nij$odaioCEk6&glY>^HEeXEHdOO>o{zcPIm&yMxdd>~s>G9Z zNYLotcj64JRU@_e?*JHXD!QWZp}jvJ3cnGcXQpu33()j_0CnESzzL=77Y^ASbc@2D zjb)&4LGPN8n@53mwC6@|9*tkS_FTc{i|`-_pJv0@PQfLrz4Th_3&~vk?WbxrKjW-u zKTfOpDIRcNdyfcZWJ`AqQrw~MmsT|et^)l7^Vk*a@2AZV;>oR8mD^}=m2HH?cnQeG z>EG9H)-A5kBEG;ttVP!Fm$8gT@N{{&|B3F32AA>324vrn?>1gveJ)x;gdwRMp3oVY zmq*u`QUENCwQ!%oX3R#N@;PVcCaf3^&9Nn>Ie3J4W7Y*GJfTGd)jf3+tkL?qD(ba+ zhG2Mr{vw-ibYFyhf447s(b-_@TsQ*1Yp0+!rs5IaQFmSb|5z1iVfYqfkH zw)h`K=B~*wVAfF%Tvwge>$L?fXuT^g{5Z(*^Vnx_%YT#*^z~gC5TwKdbgIYLi(+i! zZ-Lo6R@efkGI zDg7}dlJHBwjY0HUd`I|Ij^ z?^zkGMo|PEI~O-5<*m`>A9BQ$&@MUUZ0-5s}@nc2;jamti0v-5@jN zg2mB*<{ozP+pyg>x35n4M>DoVo9$D0JCAQ;r3Cl9l(4Yl5IFKYVb*mSo2=b$uZ4Zm zs=4yrD2^RAcG}qZH{)B*vaM!$m+|uI5;PP!HBk?mRHy(-Xe{^!KIUHH4q*@GDhsfx zJ6~~kP%K^mSF&_Q&i%Vh3>=e`dU}n7W2I1)-HVo2cGB|>8FA9DW`$&Vasu(#B1*R zQ)u=^texg*;KppH0j`}&z^!~+)Mdh#X$HOb&1?u$me54m@MkliEXxGG5>)zm;^2!q z5q*H@CS8)5Ft^0KJsSZZyDTRsqG#W=PDFpglm8{CE#p!t`a8TxzCWISH=fLEsFzBj zGx0_wMsGG}N;2oiIY;iZ_*u(HUlxbN9!Y|2$7cpxN^XFYdkFPxAb`I;7bFF@Umr1& z0WRd&sF24(^S-bdY#DNbDIzZTyv$(ez^Vnej~j6N*vxA~Wdk!xj_;H9Shg>satT`) zfi-gVX+V+bRwiKsQzG3E&oY&$p2Y@+t<%NKQr7rCW&<;}57{(_i8e66O=xCBO;*L+ zx^zVI9=4UJBsMVY9Bg48xd6Y~vXIa?EB-z5G zSv(wK2;-&Ez*D>dM9`6hAxz8>ltkV|Ys(fh-`LdfUOo*P-rjEykLFsGV=LMol)Umc z+8TTu3h*Y~_zi`P1P~hXv}2)Zf;&{b6sc}ysj1Zr#EY_HDPg_C8$Q`Xt45=Xwzei# zNV8*U!mUltk=wDHcO-T!!y#hsEqZ=^-ByP+i#!ixIeozcccD3P>s%S61!B-9^2vI1ZA=(RfVt``} zAl}*AUi6+_kq9iG>;~Mgh;@oU4TF|_uu9>x-Pp$*H1bE3dv|=xc+JlmS9R}!Y zxqN$ficyQC9ct9_AyBa!MlGF=qNcb}%S@2h(?dZ~a1S^FKUF}rGdxMtVbp@?Db(01 zv5Z?B5DPd8vCnn%w*?(y-QuXEb&Ernzf~}CfgwvV{*~b02+_t!vbAs;4v=ej4`?xR z{bQN!Exv}Uug{{9Y_boqRg;AXCqGoxTOE^&5IZ};bJ8jS6@_aUt{FSa$KR(#PS<8I zkAr-V9>`byGYiPd?f}*hMz!d{z}BN2_ivNxO^c7n>#@xJ$UUn4Solh|et^C~K}&jM z?{QI0kL*1x>yAD%95C^i{aH;szRR#3h-1;~bGP%b`P>s=(8SoVyD^sSkpQ$OGE%Lc zY^rhcvC35AiFR(LM5h(X*<2{&Gvf0#)wp4brTVFK{7hFxBk;u}9luPb8X4FAIJD{R ziY|lCmW-%~yDX~tgX|Kz<_$LAEShRuE2bK=XsU6pm}<jP4EybIR2{KJhT0X2x1&sMj1m?ZjkL%>Fz@xsBBK|C7}2Sp zvkgqoko-e9uImPpA9}K9NUp#J*z_>7{kAxgzc3?=G`v1eBaEWY+0vzFcQ~o-H+&Jc7AX_dvbBh0IH$y29!=Sh1wV2x^tsqtqyl#fP(V3M zCg7NF+FI1(pqg=DOy^Mo=6ytKC2l?^t`OUXp4(ca!pKIl!N`0n44jq?Ky_au@a&CD zdNd1-sggINQP=>N9lj({q--q?{w7PaBwg5A+#0vF0L3O7Teu739+B3=*utdLRk&A6 z>@Xh5_JKsPJGxiwJK2gQ`9Fs}1vbgBr@;9n?$`&WLkwYY&>eyri{TBHzkze8F=+z= zKTzOMUJuPww{cVH&=tNvxls8pL$Hs-Pl^1jT7nG+B12FVQn}m*4MBvb-DD=fq70%y z|I4|R!BwmUk?|UFn1Ne$ACTSovcI$7&btwyJ5+EW_;qL(cDBGzHCy)Y_WNJ1L_NO5 zu1roXu~I9OQ;V(C;mN6mR_Y)t_2mNp?zv_v^vG%nzVV4GJSpf3yEnMPfr#|$Ngaw* zP_J+qtLW>}+}{E9@E7n93V(`pTqsdJ zd=I}CR}XKb?z1%3I)}K&m*%2|3*k&rPHbTAWK*3~67M`^MzO#1+}TA+UD#o~AIrz6 zLfw8O8-*9S`R`#k=%Zen_ayXjoCxUw&oj=pZLa*a5ZP^{g7^R(g{dGuV2V7~=x?Bcxa+_|-QSdl*v7Zlj|=y&)ZwSbRk3#ZFldEKTdt6*c$u+s zJzGM(A(tDj^$VSy^(c7zzZ5_N0FVxQ9eU($+pgz#ly9VN_-0n2ZusV6RTsM9FW(N` z@Q&M|8@`qJnI`~3`TT$s>1<*qbi=nUM{m*Q%d<{*g;af4nQG9bJ#F8-kb1lM?Rv$g z8Tj5R9>R5F6^C0a2c)sEj9KJ`4vhOFLs=s92x%rt@tji6j`Bv)-$7YJM=vkT+_Q}4 z38|y$S(O+`&oikXcp0#BT#v=LYV+Qfw{x`xuj9ccuBUieQ^VJkdLS>@TY$6zGm!bo+9 z_+2Q`obQCW#H=DU7owMQObvxm112Q4)j%t)M6|%q@S4&yZQ0Mq8y)_gd7xjMz zgsP7V=A(kPY+@B0(R@$VDIu|EA*LL_~#TG1wY$#nTbr z8DE#Ol_(FBEzaghU(#V{;!w_)z_h`9kuS}mu-;iKMCz*gw}iuqZ9R!Pvzk3Il161L&rohR%BX6&G} ziRj_hSwBL?1oO7wYPRj)S={hm0aP$YI@=nFFSP9g18AiTCTYZI*hg9-vv|EV;yOG-% zD8@Uc*&>?WfaMOt>omI&C{(|T`r)^A?8IDe5gN5J!sGY*JIb}W2cau$Y}G@fU-d!O z-ML#^Hm=IptI~0cab_6Jqo!l~9FT4-`3Rit{*cFLrzw z99PAX(RnCgq3}WzQC{{QlDlyuIN(?p2r@rOHUi9r#*IqL&^yPKv^ErLfrqf9wl-i| z-G>Kl%_{az4;`o2a^(sxiMBc}ortjuyTgs}%7se?#OtlO9&mv`#*KFv8{p6ia(~*r zRZ7>O%5)4K64*A;>%v$Z;-HDwQx4ooyQj=T!{3hz$s=f%o6a#tXR2OiCSlz*0#9SK zWv)5-=CB7kgJBN%7+4(6$;IC*=HyK?WX!!quamc9t z7~Ixkp2ui4dB<=IqlPO(1i@ zW1&12An*d`|48)Mn4>@B=#F^0hGCoV_F zodcdc@htqg`fRM}hTs7|M2O%$YS(mzBUDJN~AnOdT0vV zfD{>QW6@Q3#JA;#Q}|nBEp(bw*y~9e=$mjk!hs&gfyNeBW=}{U2i5O@k^#ori(QK9 zjLOG2M;obsa42~{Eouo#t#I-@#6(5&;NU}}_u~DqWH4)t1vi&=t!9$6EZc&}FP_3o zvLnHz_6gXi<$xNU#+xD82V!F#y&BnAoU7V+C5$n-1xrKvnjiyupW4 z0F1;y>KGYw0oa3yu*T&7l}K(1Tw!K51*-5Q{Qo?&j>-RrB7F^cJZL6SN3nm_VHUXm z3XA(Y0`-c9!2MU`g88rL9`k40G7&$mv_>G#{7*#xGBN*Ji}|y2;Lh$#;>`b{ZAZfV zr{ZEM!Th%=<}Zzt`5$8w<}b-${@;?q3Fc31f%HyGN(O^AQ~M^RlAAM`g!&QYnK=jc zCMCa~lx!6Tn_ridY?emqUzmF6#CQN4w7SUmG0 zl^3Uto%e@Hvwkh8hO>TD>a6EyfQ1-lig5UEDh|)&1c#6QLne|r#hFLUJ;%hPDgJxB z`@$!KITcu(UVxOPJo5NO7Ie{BD9CBb!$X0;qX3tP0Iquzbsf zCoSDYWSX=kkodsTIJ}CT!>n37CO&E3{pXQPS{jZfCT$MEG8^Zl{qBV_X(btxwpt1& zCM~fAV!AOY857G)y&@@fkfd5W_Uq_%Uk4xO|+kleFL z%b_jE;5)OdbAclI<4>j2B2HVLQ;OAF&28xl3|R6nzM4C8+gN0_P7`lmCp*1vUid^-PDTAyD33ziA zcmNk;s|5KM8&?55$uO=0cyk3D;0WN|V1bwZ5d$$NCO2mU@ZUCLTjZvvvjFI9x`bQ@ zJEm0VlNuJ=w#cpxyZ~r4$4>mmZ$rJ5L0pS6W`QFZ!~{+*2lJQ9jWKjvY9a-XnXp0} zBsws2PqNeZF2>DtP;7&Z(w#-MLklnzCN zX%>Ntu?(ZG`X^!5A|x#vYqP^C18;-n#83%>uE>+uHMjjGOCK{Y#3z2+;yBSyaJ%l` zSZqmX-otC0Z7c-a0GGT8SDu;M+Wf6}TVqkMNyG-|Zcg-kyvjNqdoSMPV%6kqd?s^~ zKT9-uB?=}rd1*3u+=KwU^3)=w$wkQcP^1`XAvt_ANCD0w{*DSQ&^yKxSSC&vJq?vI z!}!`a4Z(}aF`6o`8>`;BVx{T0s$ z!!K+ZdUwg;P-ao`$<;(Ug13`U)`AXw{Lo)QxT;8H` zk5cnNKF3}*6|sJaBF+lr{R(;7>V7=G4{3cHN10+^-9k1oXi~0V7;lb3YiQBu9|%p zFG!Tzh%OKrK(<2U&+()!s~XSysh5(QW@HW>+u~1oIaM{@=HF0k4^~#0?Xv;q0}~|} ztjZXItf{x^jXva|Ymz)g4^@?b?q>Iw)&#iNIJ0bS%!V(@t-W>g;JL}96RqYgELflw zZQiT$08c&tz=K&e&+1%4w8|q@Yh_igw^yVT$d_JYAbZ_;@3}cq%rh)-l_hY8qAj=( zFHsl%;OqKCb?;G#h&K7azqc2pMzOy51K%;&`8thPycc3}OvlyBWH`RReh=yGOeft3 z;lIv&@dv2C^0qVZrl&tFOQ8r^1P3g)bGzD(oeRnj_mmP(HsB5dwKjWDpGf5BoeScG zNkN0F;&soz@L}&(vy+9WQOMHKPP9rflc~7RsQ|}M(7^1-y;F1L z!w6Moc=T(O8G#PS@dYDF5hE#HJK~=&MWz|89GW|m5%wOwEuSOD02?NVh>)RM>J_4Z zQD^E{ti_)5$|_@ve@C%@A4HVD#tDsYc_K3$V7`_3_u;n82Ij&%bzfvi>ucCLu9wPN z1&!q!ofT`^k)-+Qq86iff-O9u&EIi@HunT17+YPuV=1SO#tx@{RwewVoP%`bi%wgu zacoY|pU(kGa(|KF1$y8WTy1tXISu)sv-6TlXGlG&@7)d;oR<$Re7I!RH$>8@Jo^DkO6K$54v26%<1) zI@mjtkK#vAH(oSBAY2Lx6FhBBJ_!#1#m<8~cDPq#EgUn5Ea2o=B*Nv-BLs|v2H<2P z6MZ@F9svdJD*~#aJ@MED0SYuD4Z=DV;gIxh%j_Z-O;q+zdod^s#jYnn1uFfY{ zhw(;_=Atl zngG1ywl(?iy5=1G(HxNUxA%j;5bRLnbpmbI&kl8(l zS`jSA?)Wg4Ism=0%4z(dGWu`qtt|p&kAx zzM8dw*c`o7$aC4RkV!v9;E0~<{QLTPzDJfdOkbTtl1yP)uX&DDSOEzE!8y@qa8|Mi z>r7|$tV-$Vpk%sayWS-+xPUD2{w}rlbkqiwjEAzo_t=mLWYmopJ^c5x@df4Y*#CZ& zQqH@Xi$ROi*x)oi(T)9jC|`w(sl;r%y2>V3N3sy${;0uWyq>r}f|VS02h+#e`S~6 z)+o0~XJaC7C`LQbep_l=L4h;W1?!s}|72p5qnRl&_%?KG02Q#*Hrt93iBe2NDW*VC zz_T#l7QF4IOK?B5Fc(hb^eIpgurJJm*<$6jw#LdE;9||&2WlaBp8`HpPXV*bXo|dj zb^%00O`-|JIbjPqiv9Kb{q0Z&*owAQ1TNpVAX?rDT|Gn^noN7t(dWix%lEAo*>bWP zz=pF>)6xQH5iNjM^n8fCj*Bw9YP=nak&itGVq_yfT8<1}^*i8BZBh;d%8Uwwo16GM z1KA}COhXC68!y3x5AoSVkzii*EhboP;Qb}M!@gAnGM0?Et`dphUoEl%FxNd53W`4; z$~3!yosTI^VmoX;eL4bY$XL@M@&8KY!?6ukJ@(G@BcL`^_&ehq%U?JTKIrx~IP2pgjb5HQ zoIhpTV1T`#dr>c&p&ScSe<0ns9yp%7&27A7Gup)He^Q;@fHsI53bYOcCZkjGohs(# zPqrV7+xwH#Hi?%(p?_ui-2#r+6nF<)Wi=@R5j;Y%WDhsbjyl}^axKu7IiCN6j}JAo z@we5nve<(_mn|ri2z1Fe73h+cCD5fbrUG5cBLiLbyi#(Y%Tc&?2GXg)jR6Bj;F(7m z`Kz6aW#n%+I+nkG_c%_nJ~MfycHsB|JmJp@{8>VIHm#zKR}f^-UKFzjC5e{T2tdeO z9G#)bP_!v1ZxBDm{n5M(t7UB;q=f*>KVRGs;W;K4rO{`Aq{?Kzv znQA<@1V1KmR*y^p@X9C;EV^d&=V+oDXhO4(h}ZXK<2Hq zlFBJzNK5x^xeRIPzD))BlYo97l7X2Ad+7LFkFu?f6`;qf@x-CjhB+2agU^OqY(Dk? z8CY!=ZNL(Odwov%$cxt~xAPN(p8mot*VJd)L97OMq>a#chc&;gv7k4|)Ujl&Z^npD9!ja4 zJ$P)ReMG0ELup%OdEQ;Kr!Vb78t*;fg5$lX)NJ((y7&L(UT`IZcU1q^{f&7wTfIB! z{o~|%#9+jMt{=7+3rV4|iZ%c1Y31>(j81cJ5_$H|?4Y*_xGVNtmH}0@KOm~SPu8keXhHg>~^${J{SRrLlJkgQYB^%ncfL|XyiaX&K*(q)@Z#sr) zs~xp)W&p`<`@mU;Fz)j~Phi|P!TQ=HInpImU51mH)~x5>$8w0p z9%KVjPURWZ#YiDMX#EB}Mt_Tfw$PduJeO~cwEp>1Sc9~~jNw6zHM#wt!!;O&R z8N65@6HaEH42efMevgZb=;r32wdlXl1rau&0|T&M&O}2wSZt3T4ZX4;I}O$Aojy({ zBH8!22okXC19ny1RU^c{aqJLKj9VrK6l>cOfprjrLN^D+Or4eEc1U%=19=&B>gRB9 zfix)LBb8W<{t6FZF$;;xw}@^@hFsOJfllT6Jb{S zVs%MufYtsZzH+B$SU$|u#sr={$fR*rh>U&73=bl{(S&zn-K&c)GHFgdSnZJbt4vJ9 zUsXk_YuO!Qb`c(AlY;oG;?zSGSjYmVQxCJsC^Z;K@mD1y9)C6CUOx_Pe4}ML-}8pE zP*>ck$J5u#U0c`7tr>rH35Jl5aOy$bOFqJ>$6iRT`3R>TH({js2&WztJo6DwJ+7b? zW;nbU484o^tII~vsfu?LhaDRlia~;NUNDDT1;i}TL(j4{83>$0u?X%F5P`ACaf`=drDaOA651|oEP2mzbcuGV(Jjwd;(Y|$V66(DklW6I9F*s)h z{t^XhdNUZSg=a+m0uH?ch{Yof#(FDc$}jgK$>T{BhgK}`C* z2=T-cO!cQ~dS{KtYVifeV>RhDEgtJY2FmjOS6Dz$&X$L;00v`~r%H(xR>qAU?YVFvQ9D&|Tef=9|)|hy2|H^FGuu@pvm9 zait)e?jD4+O~oS{$p$0yiN}3&vH+;m;{=|)k*{B!h0;_>4i3D8^g4V=qDXlO+4j9G z&60rOCFGI!I2$M7oZFp z595%Ig;t+hj3a&oFvwfiv3hyQ`I#w$jbx(?=94nE`wmMP0?*#a;A}m_K{gMU^CIkk z`_(;Y9ar^1unl+F2kt;UE?*%rTYr1GDY#I?vt~PxBQJ21OWPh!9q2?yUUpV&zN4Sp zcpvd4y?tW+@Z({K#o6~~ZQ5)Vk`U@b!J48Lo#KCP<2m9BpTHCE!~8q;+kzr&f?5D2 zHm>|A%pv%M9}0E+9i5)O7~cBm9bns$GadqYO)Yjpj}n>xS4gX7R(DBj#g$nmkIY+{ ziuY$LhPx{_Z_+07Chb06Qs92;psgX=$5FJ!9+VU^TjbWM+}#J@5*fN~Z|6Gl-*6P| zw+AJ|ylrC{3fPBO$QctJ#KTJtZ{S!W&GB-Z(bVu^o?O7?+lyXy1n*@b zhq2Dq@OCeb7o>>4l$LjHw-vo&3(AYppmybdg?CE0dEVa;Er8>Lh8=lDA5{h=k#agz zHC-dO!M8JA@p}y|eRyhzlW_U^uG!)joX>Jk z>7ZBWAn&Q5`bRN~y=a3YC<%m`7l(umxZ3V8-cxsna6!Ej9;SJJ$UO64!8ZIY`%E|0 z@Xh>RThaR9940F*2{dQyMT~*h%2f!Vu0+QRf#IVkJ9zWwS?H9=jb8E&)*AGH!C==$ z`d^WST6Lq<^siru3hD8C3`iRZ=pD}Zr-EiPyozb~pc8Ar*Sd*s5E=m4IF*2=hyn8C25p`QN{?) zE^K#R8)t@l{wp#Bd3I}LqCZ0;syS*DnjVc{7oWg8T7E+=jxhkWBGh)=4kW&Yv9X7) zr_M@qD{g0PS$ zqPz6L9a*|$#ZCh*)olc>m1+UIwrqAeJ!L(B=T<*E3JybInYQ|QUJLk}_WL{g-}ybd zr|W;9_5x9T#xSURg6Daq;55#UU4?e}Z06XI^XhG38(MU=>_-58cJa|!CW<2;}OmdpsB;vuVs}H$35U*}hCA^66L_WZ` z84o@g2BD<9s9xg&s4+IkRBvZccpA=NH+20r28G{-XE;g_Y>}AeHz5~Nr9y4q=@>ig1NOqQvutm2PK*x(7I)Qdxf<%(V!${=9jF%KH0YpUV3CV6G>~@@)2@ zwUvW|Dt+Z(L1OjVdUPJyD>ql7CR_~`QvZ7134BQpUC&N4bUk~>(Dm#xqTUZ-=z8{1 z?~I482kzd2q8vik!_iQmvQ2P`W`?e3CHN_vXU4F<^?_G!Qz_qn)dx6gUM0cdVV=ac z$HN1!?olZZzec1iG)*B6TwpC#VCFm-J%tzV(Z85(q;c9f_J z!|xC=YUHUs&kXVIDrr{Ij}uAIV^zf_CDMXs(illfaO};{qc!(07XpYQwfN6sNbtC zTOs>_CLbzzhQoFO2sFdgZ}ps{PnCgze$fR`1SwKcxTTqJ)qnjRh*EzJzNDP`m7LGL zFFZkTC=sQ8^duFf-Z2GDV_ltz81*nY3w$EuO_tcOJAVasSTfeG4)8=4ioS~ccq^+{ zs1Wt(jc{`kTEs@|;erWk`k)n%Ss%ORYI0AlcN>nXXjqC682IYc<~`33!O_@)zY>}z zM-@>7y}Bv*$%#%$Ej%A-QkbV`s}S{bwbd(Bpm_j#F6tzf0|cnw2`~UfuNi0H@4(ro zSQP=0Q(L`IRh(26{g{pV+t2s(#@|u6E1W7laT>^@%1KC2=|0U9rcMQ+s zJ4cWHuDdx4{RvLijDD5TIT=j;RWm$i|5sIb&Y4xvNOv%%y!%>g?PdNNlNLisnhrVP zPDcXFzm6@C1eo7~2W^?3w@k9YHsIYIa#SH~5|E8sfOdqIe?-s`lC7(;K`(PG#){WZ zHv$VW*4q48l09=V!of2E?yc&<^x+O|gZzY-A`zxZb@+i!c^|M_#+hGh#hGUvC*#bQ z)_jU>qLjlaQ)-2z4LBWOi#j>dB6fSBbv00u=f$p-DlBXgO&i zWE{|OFSrQb*6!H`Zi30x*Eb4wXnlHPs5_ewdfqv8En?HphUMe)LxBz)B)kQf$yK~I&{fhYf_ z%IHt=i!26~KghuHn@XZrGfM;((W=Cw1CJ(Wp4G=>#_5Lyu|-$sSW8K(La65U^AJ|v zJji%ZTZWN)Ug~u^s%C6i2r^njyekC%3KxaiGQ^xmQCS|>fqH6@4eI%V(S6a6yNhm* zEepDV&b%3eRBv8{%$V<5_+%h4fix9LlmV*MI!B3s2mw^#4}b*gtRB5$k9Ga>W1zv< z%kloWG7A6{vLNiV2P*ZH*bG8_HVcK__{lEg_fx1Uob4;hO9z3OmaUk&3zAczKz@F< z!bfeWC;q6rLv37~1=DJ@3<>vO9hx(uRu%q#$wPZLUU2sEyrc3e@Y;{3V zeJ6HA2vNNSs!a;dvX>J)Z@DN7+*q>_ntC)Y=D`au)7A`H&&6+y_T1?8T>LK4p6kC} zEq;?2ntG;M{Gta@A^kf)&h{OX@!Q0h8>>NdAER9zt@(Tl^w$&UOhlcQiIzg>Ph6M< zSy=Nap@G|dwPI}b+@&p>P>%KPHjA(QNLzis2xmWUby*NC zOsI8j7qZ6rGrNX&0 zYZud= z2TW>-Jb>&jzXQLGvNgn3v9X}oYQpR|7#adF$WGSW;Fh&J^KnKrWV_2vzj)Z`2S5=6 zhfG66gusKN-I$3x?v0+&pd>j3m?BEUv6yZQVEb3$UVKMCz0AGXX}GIm{dn9%_u$dR z1z}Eov`!R(^v;BWSq=7o^)TjZM=P zE~`_oUx`Y4oZ%UzTpYeLo!bZRi{j!^tnLn2YXcaF4P6qus3`; za)(FBA3gwTS{+aW7?Xr6*mAjy4C!RH7JTQA2>G81O;!Cvyg?C4J! zmo&Q~qczok6cs5c(VhS2T0__CS-0AHUO6g_-PHWHC%>0jVweu z-jBCG`1o8i2Y*{7GLiCqfSe@X2Y54mAK*#(K46mR`+$$)`v4C;spJX`_nkk=+s}75 zv^HzpkeOn3U{)mjp^CFwXt%&=6O;zneLH+Vn4S*?j3&=>G;7NQNf?Vq*dhGZ@*>^l zf5-BF@U}fDNzlkb=`Q>qK-||%g&FuHc=Rp~FPeq%7nJt!IH}nkx|iZ?w{hyqp1kJvnI0{5sG1B6033`mmW8r(E$Cc=oAWxhSoFhsl zMOw{d=nY89ZpayVdQY})EvbN8f(~E>)~)kpTkUSPbiHeSgUeSKEK*H=32ya&kM1OE zRv*Mgf^2{2m>>^$l)@Ihx4Nl0X@a> zZTeC8jIf)26f(k|uhGGn~?5bPdXD=X1j7TF-x`g;Z=j!?PC~?55E*$|W0JtD4n3 zyhI;IOQGd0c!Y}CoLeoM>mOm-5qOy33P5q2Yow&vTw^*|HrL=x)%9p9VRPM_WOEIS zh|RS*g}84?f`l`yiq^qNX)$OV37E_*H*KzA!*6vaN16~Q*%>*BZAXX1$oMru)ytwg zSG_yMg9Kb08@0&BnNX|A6}7cw4-&{;z-%~_fX>w%P}Tn`R8UJj<$50XyiE& znI3+4xC**MHy64>ve$4MOYRafkY+#|966zc`|zMR4m{pNlZKx$8NBg52$ie~YHaJ1 zO`=&+nM9{E=%g(`9M-r+v>|@*udB*}1?5LOQae-*NL}+%o9}0Ny|tQ;u;TF%=Fq>v zigiO)Hb%+K=fALXxqo zr*SlPBB{pF%?aaZg}Ir{3FGK71<_k&@KVWbF29iCjpd6ZxBZuAL3I4M9T|!9PR4aB z9aC~d660tSYbL^O-5W<3E_bR^6NxV^qI&LbBu&HYcXp*b&SB(4DB>b^xe3t{Y z(az{OZ6wPt6OVs$cMFg2pVebL(o{MXkLN&}(ImV$9<>0)8pJ`8gNd#Tr<)Uo(}Gf5 z`Fqb%^#UEhC1xa*Q?l7kH^*(K*A{Rb;Y-5QH2r9B=C+D@mA z#jig+bS%V@nlznaNp13i0*i|R@ky4{&4*f2n@MLN(hIgiDj(VyX*eHAOX_n(w)$n_ z{BM_a3+L~j(PNxXI0WbCK+cd(|8YJ-HI}$tbs8U`U3C&4VbM4r*@26`=yqlIpR)WP zU4Hx%XSeY9#OXc8BUZvR+TH$s7kH$VHF*ek*>qB~M%fKDwDhLE5L0>NR!oFe)+Q5C zR@UGQEU_KFqRCfiWsTD?lS&RD-0QLSMQ;(=>z7Hm9hY_s;pHV+5YAl#tgL?ry#->= zJfe6Gv9iX-|2`fCz%UDW(K1h2S*sZx{Vu9oC-1;x!p##Kv3%fAHe$(E)@UzSi-L$o z!$HwQ_gMR|!=AHmCN*R^XEUF74sTqN1wF|-#d+vg{A_v)YRg7E-AN%}?7l33tz?6d z`KByjWOu=gZ)hj3xE0lvE$wH(BOA#EBlC&J`yE;EsP1kAp1qNcr)HrvRg!}Pv!h23 zUy>*??Vqz1CIQ3B`XzA_z{6USl{Ma+ut=NF69QLyYa&N$QCh)6p^W-U|7>4Tg%c*( z+fO-cPZK8Df6Z1nGWr@ZqHazxq9(D`0s*NfnTadTCi=v@{xb|b8_72C%;&&AH1@Cq zFYxS*G@qOW9d$G}hG?S&&4P>Uk+0v!(~DmAnme!+w#RTRxAykYN)Ta6hoOhb6Jcbg zphuo@LCl@^YRHt~nSN~@h7JzZ8>9R2tLob1TTWw3Y9siF8y|5QPg1Sk*bj4S-Xz1^ zx>$Zz4Z)8zhbt2$qjnoFxM726yhcmw4|vZ0-w%|fb-4)!PLKo;_Rnk-Hqvae{Ea&N z#hYq5BrV4#uMi{e{D`Zp9kv?i@N3SBf6>_bQ`lZBW9v?3Y`rj~MC7Wgso#KSef5>p z=3Sxc7GMAvE(A_-{AW*GMztV1zY$No^!7bQdDDJpK5(OiO~!o`BkN7owL~QTgS$QW zq{k`{y@|8Q9Ds+vPx@2?kZkAwe}Y8YD!WUfUqy)LjK@Hk-eLvYyL-j956RLRRA|LI zzaz4QM4m}TgsTC;Dz6H7e8F#K18+uI@X?YI=Gv(S-s|i^$uO@ISOx~(C@vQ&cB7uL zRa$ZnweW6+{j(TyOI(yLO}ve@FouS|#AYZKg;dMii#FMU@@zL6)d6_L%lzi<{S6-! z_;=+t?8+-TSQ(T=5)&XXSb$%Ffj3OB?LkSPYz^)HLVAU*8V%90X(PnkvDt!VPD`Iu z2xi-gHkcqlp~pOf(-Pa?a*%D&q;2ld?}vhAK(vaOt+3{C z8wlnmp=p*gG!57)cAVs{kaFQ?)lw*YTM=w@&9Mm>pG&YL&d-CyS?305Nfu~x4ZN69 zt@Mk;+LCn4W-zdRgh8sb2jw+(ZCXZ&mElawK;R@*V?{G%8 zr~y?bng(+9p=sboy=|Xvtcwl7R7m*Xe1^O|^oSIq-Th;Drz)yx9yk!s=guxN?W&AV zV)+y8{W`$#j*?llENN)2_`vSkJlhrSx`Jeqa=!gxSX){D?WIG!~YTh-|<8AVk+s zMpz_t{f6j8GAg|hhNh#J_qvb_3(;?4927OjWY&4MEfEaZV2%@{$G^g0f$lM0-T|?b zX;E6QYxdVY#c+<`Ei!HFp9k3`f2|oEm9e93+$q{TUUG2!v<0u?iOR5;OR!_+TT(sH z4~%L-JAqkJ;=k~=IyFEFf>ABIsdv5z-}f<(xTZm@RhXl^SH97t0*or*kO4tQ=sad8=VHq$11JQ6~q0tl~~rgHrIQ$09%MKS%83WRuWG0^9A^PN~g8J zdW;<*LdP*vXP~SUm;kJl;Kg&Z`jUTVal?BBPz$|CZ(9d~&GDSZS~|g(9u6U3qrmdE zJA%Mg?3=0C#mpWNORJ<(y?x`=LSgnDQY~^z74e+>9|TXR?#*{-tG|D59&}WOnqXHV z#dU9PV*r~dr~(;_a`0;p25?O3L|~|JvHE@FSo{(*6LY;qXxGXLkKga_DA(o=8jOVv zLCFeUt%M?gt+NHac9mAq47bGJQKHo}pMY~cLI_^qU&V==<2hAru5tFM7k#Rbuxl{B zXmk)pl`*9$CbjvlE1mFR^cr;M@HL-CO|!z+xLODd_^M|Vh#QRk0RSQKtpx;LAy;`` z&Ird335PkdvvhOVykB8bF^6r05GGb8qD*}&b~98 z>*W!cjN~{(w3TWfR&HDC<6duVZ$(6b1eG8@c&SBD37|N`C`QyIfRNvJt$ohSI9C!Q} zzq1BT4lZdIgUeG06Z>igTmu!U@<`}d{HqH}kf+bo!})v2469y`HKjl|(Lmlbnz(oo zWDKRqr)6ATm^$PRS*9ilM>Nu>y3c`in*+^t8jt8qyFOY3%!{a%O;+5W`kp>RUYwc& z((9xB-LLi0emu#it0BsEyWUL z=p{RMWxy#&TmodhW2`f8HMP=9tz6<8ov}o`W}9R}6rG}(_0mh~m?t13@cm&K$?4R+ zbehwmcE-z$c}3#AjC41*Buh-t_Sp%P{8UD=o10W&VGI(c!oO#rl>{|pmyu=WW`c$f zNK}x_La|SR=-4Olr}RWKe;zq;r`4N67d==bgbtc_KVvm$qzRazYJy-BW|%BhX0z=C z$IG7WFt=B;7`z?gV5@4;VZzc`p`nr8MPWEOg%;N52Ckmrar6*MF(65H^I*)9_zlgr zDI#Drf_``T_4k^RP_MfWnch1Mq~tY~HOB#f$IG?g_% z&`Z+;mFcZ~2tj`941>@YrOF!ED`{dsS|)2V)JLdrLF7fEA)>$_#E}PcIAWTk2vkHvqN zHNAf@HJN?Fs`@!EUFKZOM;#?0VwVY_u%e%WWSO*dk(`4dsQ+D_g|KI}p_!15)Q1`?e>c-zN)XFbFwDjG`8?J~ulEw1d6#O!wfyY_-{oU`+|wS~ zxZn$4?;#+#z6%5pTtB}pu1h=M?avr6C>lPDxs#+co+oebWQ`}UPGP>}7PGCf?vj_C zZ$Q$Yg4@>wZiM1%i~c8cgZ^_+jc7}gtM2IC4H_)q;}NzFW z<6(PdNhz)li3EEZ$Cq6L!-q;WA))|YwiU+xIGhrqipdd%ccyMa2vL>CNOXX#FuE!y9Z7EI)5pU#o`Utlx7DV zwLaFP-HR1(N)$TN!Ed42A`86kSz!Ri1s3HNXJyI%6e|#nt`xJLpy|IVhDoC*8_$9= z$U#&4MRw8HZ&xV0+ zNTh;Z-JreAK7I*iwBQ)maO7HeC(p5Kk2UA1KoYRm5<&o2j48}SbTLd&!(}_V zW3^+lmD^6UCekItlRWd6_5?jDJZo1>_QZ2tCR+vw7unmu932lP$@@29{=|XC$ATk?duM zojx=p+09Mr=S)Q>TW{iBGerl&N85DEpR&qvG0_~%cwo4)X+ z8GOZ4vZ~=L&Je!hkQ7@W?Z6eBBhGlDXBq}t(lQtege)$@Egyu3=$*+!q_$^=o_0x8 zp5|jWyhLgHzFSr2P@Q|g~k{GnH9Z^_1`^(nD#{!0zQ@Sz~Y>5uuCIG`pj+Vx`se=ZR#w38}KwlqGk|} zzJ=~t{3c%NqgC$L`e-Fjsk68gGE}0bnn$0SJHgVX3mGyYg@jBHIk9c{9h##nhcp(ld)!HDGSJ0_(HN>v?g}2m->f{R4=oT3DI|Hms^sJ zEqR&*N!<{HA9T!3s!eKVWMYuyHm7i9$rIlo;lPd~f)T6=Ie!0vM}s+<;LI~vA-K>9 z*^rO%7yhTibY9=~`2C=`8tOLSG6oH1*lk3^s*dy9F=1yH=oQ*qM_XF;1c^XPtaWzy}?%Y~{mw0*SdZhv3EM}?PKgMuWEar9$ z|30yz!@(jpnM>$ltFfnOF2;F&rzK)b#i?EV{Hx4$ZTn6g`w#5YRb6!ozXC$cI`6Ro z;n@RN{xgL-)v!Z(Rjjp=X&8GX(Bkfmy)eA6Poou>$NRGT% z8@up`Iv%=@LxdX&Zag{ z`A=R`S%l7#WdoAC48Xm_YntO1X`k83U;JYS40w*Loj_<8$;PQxxw9*N$Y*=W)Ct{5 zXW8-T7iM{>t1LdG!~=|q(N1aZcU@(aj&g%6Is|elwH;s~MM=Eg&|wU?x*-RBULj;- zKw_9XOt-X4Wlb)jus8psXvZx_cR@Q+DpfM#CqC%{dTxI+fv?`}4B5w9UFby4k4t4` zseVf2gJPT;pqPT+0-PNf)AVE?bfT(9TpVbP%907h9uUEqI5KqJiJu_Co0fi7RSg6z zfXx#*tR=n5YEaaPv|MM+p2Ifb>YP*>ofBVER4(sxLR`0hPDu3Ycxf6j7XEi4Pu7AF z7gt_5Iwuk5g^sgR{RD!BI}lxMRn6d&wB(LU8cs}+;ygT36#90g;UntI3t5kFK^j?+0|*jh`OYuJ zvNMYfBbi)B&~j^J*Qud{BfCxsf8CB<$QAO7)BCp1-iPb~3=V*m-MZ2)dBd8OCk-#@ zB@%*ufv2-j`~=3xxaDtPT|+Qh7k*7@j#f?@yN@8xZhz$7IR%Up1)iZE0*KI2=tzt} zf?g{phVUUxBQC~-Sn5pXXMPDCEniTds2?$!jF@`66<0#$%{?~A5Z~>n2!bCYiC&6n3=HOr3+*y=JDb|i}~jbSX?&N?`+^Iw!l}nJy#$Y z&d0q|QvQUlMAtPuB#1H)c>^V@rwot@I?i6gEB{(^b$;x14R&;Ss5b&Xi1|Umk`)!} zL4eSC(rsVlC4@;^o6D*%8!JNywASbvVN}TicWecZAgj8MT_ridTGHo_pAXDR$W;QG zIH70hM))Z&AC;k3b=lbDs{%21RWy~3&K8|W)=4-&emwos8EOa9N_#Y_+pHbCW`XqG z)kmx4v7d|1qi_s|Yj#RdY&+Om>F_#5dOslfVY!DVj+nWc1TJH< z4XH-Eb&tP#@@Oe>I3d2Q=*vB*Z!y^!c|!c!i?i4|YgViBmZ{+-FU}Zi@+`Y%Lbh== z8QF6R8f-g#R@t7&9$XUtiK;TQ9+mOp&7Qmb=wSFzMi=g5rZ4hxp7br?Fj;2&j5v&n zd}s)BjQ&+^cp#%31;s87gL@NflF9lSUJ`tj!;U}2s=9{O!NT&AhKdg%Fby4!lIg^0 zEgoXZSyM@mm*8QlAa5qNCLV?#b+JrwIr)}5wMW}avH@iF-EL?KLvrC5C}7XrEvv=4 zYalNvWKFka@HKHEU%9WHh~CWSr*XEIrXrsYw4%$IiNxbl5oqT1KLbdxjU9(_AbDjT zzS#zSR?=F=yd^Gaiwp^Z=0W|pSa*zqI>L(UB52+a$bC(g9!#shdemsUMy{L|Tqvp+ zBSiJ$vJ=79V9kVLc(*4+XI7>UPlR{l4tj-<+3Mi`)caqPC)6?g^XvVqMa;wV6~8O1 z4nBh2hBPEsR4iya{^qX?O?zBu8tyx?1I|;1jKklQP8ne@(p3hB0YfZ{KD`?*3!Q40 zG+U7$NzusjIYH-PDXG{Mc`+L|PNNgI%QsU{^A44FXg>M4?N=RW^$@i!UdtC{GH=x) zx^%hhj4W%4?1sg>leKF!c}o3q$>8o%Iq2ewdK--8wL&ng1=pjKh>r)D%Lho1$1ypH zC*`qewqZ$ACC(xhjg}N2DXgizD4Wj7|BQiJRiZ~_s)g{&C{0U=vq^UwZGHhDWra$8 zk@r5*KIMguVABz*5I)!!c_qhRP2UndrGz|bb&#vf>b8^HE7Q+fG8%QrQ$to{_bFjw z4H#v`>HRt@_-9$OvHKcm%x+yF8_ujlXvkezN7zd}ZqsPuuiIuvo5QceY+6+z&_T}T zW6}J7g?louqaw6qE>X_(AQ$cd%RC}^tbw?`otfd1SaM^>PJiUNqMhdMglz#l1` zfd|Ek0;P$$?UQG|QYlH^RE#N2-Y8-jxXaoZhj8);~ku8lPf2U_Q*@g>pbSTRl=0#|YBbdH;^O2P zG&O3pyReeSdqhkq7cnHDv51A*(O^|tJezZEpmkJnVh|6oo&$HndgefUWRgZ_hkrwB z@wJ%kCx2!zD|zRE5I%Fj=3i|`GUr5P7?2ZP0^cc0;nib=tdyG0Fu+T$n zJuKVn-Va1u6tTlSBddydE}lxp)%sOfu!=HRzpk!smi*}^G05D8B!;V>t3aHsy@G;B})$o^U_)9hX zrJ6rW!*z)QhCgF{@&ylQ0Y|%QU^lh{?0lWUuHwq>;r1p3p#$7zKWIGvtkC_7(1e0) zBSALLP1lk>>pudes`(Cjz07m+DSO~<9i!=_&Uh8$@H&5By=F((Lvt6i-D$7a{MO9& z1yHv{AJetdrE6$APiyp5-X#-X$%@GoleqE`@b@R+@73ThMmrA~NyxVNF>L6<4xS|l z#0>%CkpL3WBHop))+DuD+ZO+rlb&QgNHcpPla#_xA6W4KPGw~3WpL;Ueaf@y3d!Lm zvdh&K>a|2wh2GLMRE2)84=Ce^wmrSjCDmkeY&}C*<$)`$CFew1MPsM+>=}pIH5ap? zYcm>d>Ent9Z4RxV52Yfb6*SmhnpqfJ)T(ae>#qzCsa$I@2G3bbr$i%V9Z z-zhA08eZfGzvFhmLBPlBL+K8L#&q6zx&|4|@n$sE9I@_E?Iv7#V9nvRLY@j3(_V@7 znheUD*<}Q>S&sQg{*LBA?hZ}GZ0>pcZUF$1I3a-zpi-?^WN;S3@M~J!UdTuNS3ao; zXO1@sGZtGcKe7CGe^!+6rh7f6dn8bJWhsZu)rZK}ugkV~6o)oF5?^$V`E-f@c`zRDHUV0F#0V-J= z|K7)YTbEAUeIp0u<%>$m8J~OX=dDY7dEd{L@AEUi-^h2E&$uKmGGEr%ku8nt0nQ5L zOt$`38`*5Fi(Ajuh6`}+~^ zfb?PvK{f?3e9aPXEz64D!4;%auP!8=4W0+dmlAu0!*6Mdh%qDf3l`Niu_tF`m0DG6 z`O$cL@!vOSZ8v0kbH1Dk)rG;3w263RK5eyeGED?J@`>-+;TZF2n9Rf;xb2S4(w{z& zvT_mgi~O9d#NQ;(lGtDALXA&i^;xqoXCMy3>b@@&2ViNp(3wVx$Po>%ZIK3fj{UrV z66`V>0+a@YV%Rn1MI5fxy|JsXq8+8ARrLl9xx+Y>ylUy**)Yy0U)x~}kuG)!clor` zBEwjP_%cyMo^(G$J?uzro_MHAJ_PcGKg#B$2SNB-`9rCtChZ9J#mPBNrtt%8^#pAC* z*aqO)9m0BJt0@yiH6c%>zgwkiX6jY^f}V+x0PXEgYOfxRlOA0K%S&^~`Ey+mI6Wd& z76Nmt3m_L-sPc@=~%yA5w~M^N{_7tefxRNotIDRA(@izdRgC{eiB(1mOCHYxgByp@8%{b z$M}|D?x*G1e^C&?_BYK|!WQZo|2guFWPW_=v*xCLj}9Q%V#j_tUmnGH^)()vMsWE& z#2GPBXrvq01T_LS3Eu7&#u(9h=-VzH#Hhege=W)Wop|cQx~VoU(g7;Ngd0QN7+YN| z+@QBl>s1&Ozu=I4ToT5A-H$zl>a&&zQ8Y1uHm%>=nj~71k`5*wufI17F2rID&*nypZFXEHWesQQ@8cMl?rC1F3I9|@t(L*tMIqP7OL*TokTv0zkr~9=^a!WKa75` z_SNKrzKDqFY-IP19cx26UrSienYlDx7IHv_L@zALy`N9E$UX{#&7Q_MqR`= zFRRv6?sQvRzXOpidxqEaf1IYW3fFO&WkRew>rbd8#b(N^1#`6`%U_Qzzq6rkdk%Hg zZOJ8UyngXJabmdRFkpNOM@7%Kz$W_RhK%<)xUiVk0w;Z+TIFxqL#%piu2FHV+nQrS z$IAz|S0)c};ol=J{Oi^CWPFm2)FDydnyq2s-zE=X;mM;Pw&F6tFU>5J*U0-b3itS` z_1SsO>z!<}fN>vHloh^22PFYCkghM5mVA--H~G-DTa$DdSh<_dDx@&PP7Ip`uYZxm|RRY~dTRUJ;6#X6UNf?l5grPRsq)hP``&CE==B5|FKj^g4OF*K&$gJh)@ahCOr{%d;|CHXrt@<@zSH1!=L|@xw62 zgU-GTb`iVBx+2n7`R_F0htE-`0KY?rr5a9cn4(>|k^P_v) zkv&|dEa2_J?pJtA#C9I#?PIVL!M&zn^^w`bg+e>&hv}vefR*$nL+dBSaUQ=XTc~oI z(isJp%*|v&tD(zgSD&wJC_PKDp*%OxC|#7zkX5ZBRPSOz*wBEZS3!yEsU>s7<2-IU zu*hXYzs!iGXhz37j#x4Xb9%<^ZbqCQk;faj;}V9o>#=eCH)E6aovuUm_!=~+bEu>l z)+0R}kz3Q*nJjC-QDM5vvIZQzY)p2=vVQv3UQviLz&DqS9?N=6s)@d-CVKfQmm041 zGVZGH^Vrs6dGYvGY#(}rh6zvl9VC>>Fn>$<){`?cWiYO8CShDtH&C-Z#+8%~jH_H5 zbj`SK0bR_J>9?-)B?JFw&N2U-CG#J#8p)Yv>S(9C2lVraHguj2frNQdg|;gP(PSQSsAzC}TXU zPg}-VG`*I;qC$+$sdpw5ESZ1##hDGuEt#+HE;E=T6Q1V8(M#2YF}W@-Ai>T{+zv~W z=DCmRu0~;21zcS+uyZpJWzQX#H2e1}p#yv*-JCB(KX577GGUHa2 zT(bSs7T9-@7<5UpS)MJ4@1X~q=IC$WM!w7Z_4$*grMUbL4uZ?Cxy93;668RhEBw8v zOs;n2x$9A#gr!eQbh(DFgq5s}=>@}loX_0HSM)RkE(YQ;x8pxzAY0*w(jD!3bMK_fDMnV7XS$9r9Bl8R=6br873!Ri-G}Ja zWs&!jk3DtmUR2>-kQzSLZQLZ%o|7SA*JP zxE^J#jLO6aqWvgFSXJZMG`mM{gzN3lTjZf0Gv2yV9NEnlf4HtY8(};_T*DZ);n(J7 zGKe+fdck-aRYvJ>gJOV|QoX&&POwruU{$?N)zufkb?Ud}!-eadYq-uj?~KG`8?F-v zIC^AY*Jw-_uG8y?Am%cz1gJ>bk{2p!*Ch}#)g|FNO+)CZ!F4LnL1|N@lLouwI$vF- zTqnVY0+U{bR0`v%vQi^_?ZF+bT~eovXQK*V8|`crx3YIPre&!kVIYyE4tm&ZbImde znf44>>T1$-n>*9+kyu&9=9A`zyJ;l6m{2GQnELI(8w1YwU?d3y==@4jyB4PYB&i#k z=%#cujy+9sVl2B8SdqTO8TCW(}(L~ z#HfgBGUcdl?vLu;M~oVjc4wM)8#a{{5&%@+5cvXL`S@Gmju1~GN8OGb6?a{ATXK-@ z`m6Pe%sni=%eJ+bqsk|(yzV2Muf8vmRKElFnjuN`)xFQ9!ZdO|rK8)1^VMdYr)n_= zE`PlALPe({OH~21N_%B91r6lulctZ`ItWug@mK3NS&1;fi=+(wNQqO+3R}vmHPsWS zHhO&Ajq{aaUD6i0L!*sA^-?HS=g1w1DH`jg!YFd7AF>Mx=_EEK8fH529g=0r6U}Wz zsvp*ZSV!{>-e*dR*_x3h%vMTYJ#y}Qe9I2?TF6@A!Ut{k`uug0#H(}e8lFT-MzZT~ zHSz)a8q-)^IJBhZKe$;#m&V6abHM4T5;!pnsL!9xM;@{w=T=F!@X2Mdb7yFcPX4X@ z;w{n1zmA8H6~B+tPJNlPFJ6-^BGPFP7Hv0BkMvJ!JDZHAwzGILwVlq>;94jDWPY`_ z{yb1yAXVFWZELH~-&x^R^AS&`n(aJEHCy=AYF_7oYI0K5wD2UIT6i*DXbX?x3})5U zWBFUaX$m->mpj|)^Jhsb6bi(?8$T9m5^!D+33IqU|60D70bMP51Ux59k=V}1T(H=A*h zZ6Mj|^M6T#8O|@{lMLs~dw7!JIQ-(S)5)L81H*ZgKFDl0#UG@skOmLSw52xsZG!~g zI1J$6SL`sai2EEDzGx>D(PDl6G14GUq3i1N59Qf(!;;kSiLtL2@*us)3D9*TJg^$~DyTlGw9Vj8dVa{Asqt;s1%@lcZ$pT{$fce%R5P|mB0@dV`^dSKJZV!?d61?;{7O^T@=H_m=(;vFM*!1q7E;8Z zhloDw^G~IWsrF=^wAvGRkZQlquT*;ozf}8Oui7)auGVN(y7&#gsUi`FPti8IqS5EP zp@E4%55)X(!4Nv#J)$YHu*zf|s?Bi2!u#lyK^A#ZI6Smm;P9U}&`pvkDsvXPjP*|v zkAUWC`6!tBLmp%d-{V)t5agFJ+`h*J&CLwPYrN3+tRQ6KM^u|e&F|2fqUP0#n#&b6 zFQtr!n#+qRWKi?MS3u3_yb5amVmGK6GN`$m=M2<*W|yL7Zx1#7S;TEJh}U@XbBhio)sKS zUX(_~V_%RdXu002_%oieQQjK-Zt~>V*FWHm$1>-HEj&dx^6)wjG?3#puuA|UTdq6L z*s032>r7)KkM4*d<$aW*WhV4qp0ww8^B_I1=GV!e&fn-pDt;7DXwTdbn)=rd(rIY;CX1 z*%tpc4N{5J75W-uaECOlVWF^p26g30QFlAMX<+7F8C~dlkE-=zn}`>^^h|3~o*@6H zQh9y;ul~d9&V4+Y?);1=>CT<}YImmbKzAN%k>N{s=2JGa7w$T*&%cnIW^^`Brn(V4 zNp&UsYIWb@f$Ae{St7rrW7GVt9eOl0J}ywGVGkjdCSJAusVWwOlBq7>zi zz|4IDqVQp|4||(#Y9uqSGgF6TNmhLYuV!F3$_JUY)2`!526h#{WOMSz^T5DnH5)kX zh~LH#z0MW*mPn71H!e+0l#lLY%ujRtrWeipG&4VQsHHxC_m91Hn|V^~Z%Up@;~(;h zX?B@&=2m%%e#q17Jkfqms{Iz8%;=^ylsP&`#TBnlpi+A13x7%X3@XW!qSAwPaHFd9 z+5SFXHaA=<8xyt~8*YQU?a}&Eb16SC+MNdp-?Se=!cn*EV;D$pKKu4 z``;a;T@c;P@r|+Z4HAUgsu^D3_!~5A_xMIUF2%;jO~7t{Jk|@3-21Yp`;9P?I$B#_ zEsF&k@RvDg+9CcLUqKmVaXVk08>B4fqIi%*?$G1@Sa!hr(+V5wW2<#p$s1Ga9n0-n zng!3m*O?zQ82Ct6@iH`&AK+uGiWFL1!e@Vir~{va?REfKodKX?n!~`!1rWT-_y&St zqya<_ptW}H_yz?K@dHFn)4$%1f-8QeSkFb6T4x6kDGwHc(LC}BDpONIpDACO^vpf1VJnn2z5VhL|RsbFqHFn4nx`f_+&5Rdg2iS^zEqP*c3X6Tea-MhtD z{i2Cn_&iqQbFPtYa$(^SCEMxgPETfPda5#0lW{X~ZSDVyY-cx{X`_~@+fl^!*C+sq zY_pt?*ERT*ha-erLBJYb3o{rm-?^uC@Y<-j*%vJqcsH>zHv0q1dGROgMUv#|Kd*-L z;FJ1Vqzdg&;WSz)AIPjkW#R3|YJt;+>j|%5eo&`YZhLjmd4Z!0PCX^Mz*6+TX?#30 zxW#t3ji?FNif6Gb{GUjyh~+T(R#iSds#o{U1Nh`FwNkoJAN`cS2ANDW2>fR&z@t+8 zBlrw_LQ2SdZ|~QUMrC_{pOhsy#rK>-8>wVouNK{c4YK}6F;tk;(* zbX4WpL&Lo)e@dvXD)H9HJg){P*!BSp*J_3cuF#1nbDE9ft3bz7WBK1_&HV>+qJu*R zRuxDZxHQ6VT6Wo7g^{mp z-j|`KR+r47SMt?JIwITH(YA7-x6xmS)It*(0!>6T;%LKzYqm$WG-xLZwG)!;c0zM( zo8hdf+uT$8APGKaHGv_#E{Ht`@)OLA317qQn(2z9W_H6_Z9@6Lo9!v9=^te}v(o(; zywS`sA`$TZm$!j6NSk>4t!Ohq18M`Yg-?(ga27to50OR=6tT);PxfYXu)oDL9g^Ul zwUyQCebQybt*S@)a^M(J9y{mD6zYYHxo4yWA00Ceg#@$|Vm52Z11XOn=!mprhmOwB zcb&+U$sl0DeG`E}>c2)&w_yF`x04$9RTlw@!2T=YS@ zRV&Jm8CZn#PP7|k5)clm3~uwDw65bz)tV*~!?nUf{r5}(*kJ|tH7h7dSfm|Xv~D9TQj@=MIYLMy-3!+S>hBl?H0J=;U~EA#k68Cw0ndQK zXT8zG?@TY4%%9%=>gfkhCguE_^zUsx>*O5%4=<8GsP~*a9DBr*hnLEq(eh`a42+Yz z>8wVl=CoKYb2>yqbRG`a&c7+LA}`YLzOVZHnn*wA0p?4?*2oIHjJsbBOD7h2 ziEi*_s+}xq;(51TX_U!o4aiUI6a*pRo<3l7+w)+__m~F z5~Po_C80@)S3&ropmRe}Vi{}2u6fb~p7|*L*zv|#O&pZS)MZ9;Uk_Th4K2lIb-m@v z?OEL&!ql_)y)g9|)RqkiimRlyEA@~0>r|NEc_Bg%Nslq?oRWj(W|8d1MvHO$BX*7Y z4~&2N!M%uIEH6q{o1qN(rw--ywcQTI{{(zX%>S(IY_P51_$Q()#!>Z=X$vuN82^Oh ze-_J|gJnAKiaZH;&XTJgeXE}(sDBff0-ip?m(je+YG&%52sqW1yb@AL3oeoud*-qR zW;UL?U3j8kt-wdb8ky649&P>erupeL-NNQ+=`LXfWnctulrhBbm?i!w*#L{_M&#SmpK(!Nq9wu zG7^!x^~KkUGn$(ZlhrX66m3S-mM!Z@E6SXY{Z3XaGjGB zU*(LP9#+*nG&$rE&z2XXSs{-lR@D}i2jp>>RdqE0lE*Pt)v=629>-eIqg#NN39=T5 z{j|UrJAKhu#_bd5+F9|xR!G=8S#IIM>}lc&zk25L3hD8+m3IpFQk()$xVHK($pK$6 zGB2^1Da%})v!&K1ANn2_LUjSN#1Z<35#gf=j?yKHrEfgP{jod1#!h!3!~Xc#aztCroCbomm5!iWfgRB`o)gA& zN;tHr99&pmdQ#Z3SItSXjX8-ViH#zR_I!EXD>EU`mf27~_XDh$6Nljf;a>;wn_t>5 zh(GrGF9Y$CG{h4(w1@ajK>TUIQay7Ke`NI=o*Y-=tRT;Cdhm3@=D2lQt}v* za>IQDt|sYN17!1pN0@d%p2}G?@xPz^D}mg5<$eL#|GO^(W+cELoUc#@4d^XZmG0Qu+cSU=_>WIsUtI}Qh3W|KYrA}czw(J;wP3cFLK@QQ^}NjFETr{%lY`CNc!m@dZ+Pi9q# zXLjw`g!Q86;;r?Yir@L$hq3>>YoPC7j zY~oaiNGcw5F;oXZb}fSJg$S~rK#;ux33gCiz9YuI7S4r}@*~EBAa_$Qiv2jTXzw`~ z5)^x?m;pP%2C~F8ptKs7u6Le8vro=$vU2ZgDw3>|`vtJ9m_9`$CQ|~fFXJMz-y=o% z69oE?6kAmf^NT!M8nl)is?l#g?t_T0VUtFvd`X{|B4n9@QfqwF&Ble!1Dw-LjgwwO z;$1*Z(cc^`N7D)YA}d6UGeu13+f;i6-zhU{N@TOC`&%R+d&4Q5*1hwlT+q=3a&A4+ zt>3FWN@|9?Sr;0;*9n)Rzi7_B(?{DiLvSDZl$?{T*}tSP z_ane>?zKDyO6C>-q+3O^R36Y=m7l~?VdP_Kga;huz)J=JCzg3qubqoZk1DB>Am?oj zH>)|sh2&iqGdC2Jx!2=*JZnmitc0-cfymw*tL92!;)7OOcypU@*I~dxyi1Pd0dJ)h z0P{?$N0Pr9!m%E;c@b9Tga$oYNjE|#+ck?7L2ANChUTd^8bWSTd(er;H_lTTQS`S2 zzhg8iWx&|WZ<(UE1xAPP_J)1W!VE)2ToSgGBn;B zNZ?Jt%8$T+a`SmpI-5h2N@x9xeoPt!%>Ak+ttmhDeasmdSPHpilt|840WnqrN56$q zRK;i@O9yjS`6x7Nd~J4zl3GZyR)PWkJu~@hmQI_QJnLp=@^sPVr^>w{V#XD>6t2iE-`j(xm@d&wHm3lRlwic<;e#Gx>Mzfc2*z-)| ziWP%j#LI*KP5O|y3k2#CZQ_5slbd;W>D_cVV|y}A8EZtJwsBKb45e4XT86HM-N3fTf?*+T0 zamuN7Y>rlE$DY-)wln85ou0_Dezx=MXJ&?$legkE)2)@Vy79Tir3Nl)?c5avuC;Eg z(n+PUDl^NGWi+;?;yoLW(FAC(O&)E>?$vJE&b_bbtV*=?6%}zliid0JT=SJ+$ql&V zPt2l1Jce?^E3i&Z6|-NBxPF0|$MTrY5X;ZiPR?1gL+2J%0Vl4p)}v^Sz7X!6Jcldb zrgE!nduWi{RuA;*9FUsTLuFR`_!fhISvt4L9%fUEOl!;v;lgr4KX$8dA3T7HcaE&Y z*}Iq<@wqjjU*a^Lq57k)55&IatDHQg*;?=yIj*CO)V#cs+@VuMfEnxiO2b3qFl;T# zZj%&uttEZW;I$A(XUw(MQ8VVl2=S|DpTJeH>>NX0Z;+j1TOh`E5p4|*l@0AS97D;C zf*bzDww4YXU-<{(jXGqCuxhJ5V+X+vsx@mHi#pMt%Jgl$h|{Ek#6cu=U3`;Q{NYpq zDe86NJDql7$)cjiGW)Q?tK=%_!~OixK8#CM8O^Bjv`(rdyKOC5wC7P%t2ImfS0^s= zDk@A>G%TZ{v$UdswRFP76qGcyt3YY*IY5c%umULUj9g|V#H+QwiG09-XS<3Q3To}go9&Ia!Yh;bJx_!kU~(h7^G!tFzP@MA1t+w<0G|_kc>}LT^PHtNfBNZL zsXDIgz7BkJWhF!{MASzzpry6MSvzJxM@lU&!93Eci9jbK`|_ur6xnykjALy)x>-w> zc!1WTkEe>h!&7A6*{r^OLkUwqX|a&e6a=HGd<*0$JvdS5O&;fs{>Z5ZMRpId?rNo{ z8JR|sNw|k@cz~ko(mcTPYrh&E;H5&B2PiFbCVKlnj~MQC$pEA`f1|R+y;SGCIh@OaI!gAIEFbsS%*!cVSv@5Q#PNUs;wu8e-((YsXT)C8O~fX ztyMF*-u*-TE1&EF@%0dks%n|DMU49ItI@zPZTMF%ja z{M@?6g5nDQ{Lxc4B`RnpW2QQrrt7axPgC)$Uk#0_WP;su%5WaP0X*XTv>#=4lYFMv<^kJ9kTdgUvJ4@dMb3m+-kC4A(gz^CRf-NHwk zSNJ^75v5Z=W=a`wj`$elihO!-?q=&dd{P>0FTV8U!6sY96e04zVL;H(0%9hK^dlak zQjtAYY5LOn{D9t8)ur@LqecyLx(M5Muv*VuM5H&hY43E1MsjYpNTef#*pH}Omh@9QKnrfNlho9)8SK>O8 z4N2oKxYTM|EylX;VIWm+#?iIh*&e@j)?WOj=7e702Fi-|MA(-oU?)t8@`MKdoIsnM zLc-*F)mbUIe$rJgpNVuxFc(oDc#B^-cr?e$adw+YxW%J!0U%VUXRK@$fGFnn>Z%Fu zC$5!^cqq|n#=s63DbYxt(*5on8r`#XXHQJy_J=FJJZ@)VNu`G+{zd<2l5qR~c7ZI0 zWTr{NpYP~mh82)=n&fh^3EV&=6#Bpb_kCXX1KmQ46N|}7kht$P3R{+VkBg6(a_4pL z=Pp9Jloe?`#46tni)c?$j@_E|1`_H-Z|>;7DC6T~R2DPw4o@+a*whTWcnO-7RNK=k z-k7PO^jLOU>dh_y6g!wkM)ihBug4#5(^I%@w)kxf)3V+=hk5_$JnqUok{wpU~ z%4B^xS+o@GYGX_BcrQNM9dMRt^STpcv2Aq<#V>%*wck&}r~h+b1$;QF-~>AK4?Ls) z^^xv?lBOshRDL;_jQd_1CI!p>zX6l^5APpL*3akyCUSgR`7VQ%TZp-}JVjnaiF(wO z#4|k0*I%c;-oulesi#C6+Ht8LE=Ih^DAi$Q_4V zilR4`2xMHl9(@$Mo&zmZ9y>O}uIG1f zmrNTPo?_F3(Kq4{6Bbnole0;!dNN$oZh+r}wG`lBh#@1xx@Vzqv6#m1bJnS6<~?QA znqsE~X}U?N+@Nu9o-#3*%%<${Qmuv}<%>eqaPnLWIa@tz{-<*|8^O?=z@ zYNEbBpv8y*==@qP=n-d00?PApd+*j7jLqb1fC95BptwNKCgp%8u*|Sro^k2H?(kDa zH0puDGom^0={WSu%%K?3M?LKQ%kv?`jwntzUbS0QoRwK{!HB)o#qVnn?sHIjmekNz-i3H zw1rYzcM2r(U5|LOJ&q6?~ss~7e(9L{_A-bNBt>}eJOYG?e zG7MfD-}MYOsgV|hFe4Zuaw8>2u~}M;GfS#*$)O#)%Ou{#O#_J@;i}~=O}OL@!quXQ zTA8o%chdY`VmwOS5WZ?HZ&28&DN_2k3OWCow~P9`CWw@1o(^c{eEE_0S$$n}8tFL) zcNe?{o=GhQLg$G6vFD7o%>wjXgU5B7=wuC?NMi!-UJrHyZfnWR3@^t`6fve;#ZW7W z_A#^3bXkIA%xsY7*gdNJWGq&$wUb|i-7(>{-5(igSi|Hd41}43} z@_t^yMvqg#_@><1f$7g9q{~0I=jG1M%KutT+NO8~iXrfjZICRroZ-e~F2$$*V{aJ+ zq>;ulN0MPLgbzs}VLQtl$r6YSIo>tR3C4bOyx8VQa?qJ?c!wH!V`k?|-vnds;X!x3 z3C^Vx8JGF4TZi*~luf+?-nNmp%+Z|2GADDpld)tlR;kYRw4GH;1XRwOK4*P=?hf{uSDb5Bc?hrUExzF z(AVHHSNy6Q=o`r{0-*RWD!Q3~_TW>6DmC44LFt+}tvNRZMTowz^8j;98klO!Gpm+q zau*9BAdNYX+M}@8+5y!y=`md4snnNfRxysw#J>S>vwpc>z&-os0|u_x_p}9WXjn(! zTG4xDb*C6#k+^qZ^kWF=UB>Pwrslt@(0@v*baXoa292Z=yoYzN{yCKVVj>`joiYMi zCPqLxDI=h1VgxkyQz1P6E^~DGefu>>^KLxgIV$NeN2|~2Y>py2N4mJ7C?X%Io@LC0 zGAIgrc4|_H2`!dF-sa;O3ms2tZoAZDlit}aWir%mN;ZkJd!<3wRcE>5nq)BQ}G|LziDSX<}By5V>(InTd$k3!)(YH%X(p&z27vNrh?|uRI zq3aJAxMF0~mL@fPrxV~#OHq_=t&TDXl28@dnA>2zXM5C_)SU2kkMLBh`H@Ug8^W`d zO*gSYt!@5YCSvQ)_G=>g|3^0yAv_FLNIlX6^9+&BY-fn1qi%1D6oL)%K$ZBv9SH6` zBc%2skz=4ru1Mr3O!HTFhLze((XT7QpU|ues(6 z`=15&m|p$ii!+Oy$Yj3ti!+NbhCT$l%NhUMqvCPWtkp?HoXX=g;U#1sc?Qym)Zwc` z8mX;2q>=A}G$-Emg-D|v+Zn%nayLLII2^S)in@ z;tC^k;zGnIXs*PhOD-D9h#1WeHXI@einkc>$#YrEe2Hm3_qgF(#FthoTnJdvHuf(| z9L7_bsojTVKn?<^m)vIDHt0sVs@ZL=+c$C}O9yE>4;8y8AP%VVa6m}w!VEhK-026YZX zoAu=btQGenk3*Y%p|K3Vl_)m{`K9^yVx6 zM@4s);{98r`*&jdi|#*})D5~D8tE>K5#8l&~mLB$tcSXC#5xrFGlz z=;f={S5|`@AL+e19mCh$9#a=V1JvalK?4XH>v|;9?SPtG2Vu>`kt*EftJc?c-B+vj z$hM_UUESs$Dc@)=YGwdy22r2N3Ts_px!s{R>YHq{7x@XlW|H7?7EC~b8KRa-kqOdM zqCmB}7kc?z=#^EQ4}duXSW*K6+{Gm#9?M$&3VTznZUC<6UHqvv;I-{<#5l;8h*7%K z#KH$Vh~-@0d{b6g{}lf#@^Vgw3Y*gEzbw>#s)$J4h-+j5y@QUgMW`i$KVz}lfi3>M z%(8ls`KJn`UY^~}QgbH^&d)f~_2;1{__3V_9^nT!%)!_+u^_$;yi}ii?_wm3iSd&|g+e>J_7=8gwPsDWZm7j1 zEqW9BhVg@chv#0_j?9MbJZINL8`VDH0V7p?Kvpa}hwNskVoKfal{zv=$r;&JzBoY$R24$NA}!urbxFO47mJ*H{zw;sv3%H$ZOj5fH;z~ z&}_j3T!|QZ%qGMr1gxcJtM6{ruR-B8fhIc zwNIpV(2N3~#<5A}qDYJHE4t^$eC?n}OTJZAh^W<%+t-$!)|@M70k2rr+;KAMNl|IX zcA}5S$U)S8;OGEJ!ckU@CN}S~9eh|~v>BVH2}XSYwc2o@Pti5;4iKV0STwfwpL$}X z_0$>PbTg~*8`C87kh@mY1{|#f4=MFgNfa^_i+)P$sMaILGEJ1sE22tqWzJ(bxO(ViX?Wj zO$>4RF*IgA44g_X>rYc(7cCY$w^=M?x7fK)w#eK$PZm?JTF7cGHS+`q@JCFn5q=(6 z!B3epkI>-cRmXZ|j!M$w7d^WdPE4Pf^G1eM7Snue15%1h38@3)kcps-{DZ4nEh)~+ zWzOSSH0v5qCe%K*rH4Vg=wP@DMM{IsSyt7{(z>z4akWrj+^ni6NjA>+ttt_Q`bmsd z^T4u`QKd$)uiJqv$C34Z37BQL zUC1!nEO$Y?f);M7(*}rLfXtl|cPvnXgPN=xX-bc12yNe_IS8B}V04Ptq|%R-hs>zXevbk~E^0+gYo5g!O7p#mCy!^O_>m=;ZpV44ixhlhL1BIYh;%!7QAu0E4EG7SQ3hMUG(n8AsM|}(qeX_QP2t9TyO=g5Hu#&-gIbv z)T>ph?pm7xKb~3Te^8~1Qi)F(ybIZw&X5aVF+GX?hV`A;K#uZ~XAhTM#G3m9{>q%i zr4QDho;_ST6P%a3aX^CzorM?qQP8+GsV z7dCTqKcca+V&z!o)YpB~&*wbno4Hl8<0!bmSGdPnUf0l%3Z&?^g2H`;EzaV;BlG+a;?`(E!dXM?u=j%k=C3*YcN8+>(J`}t;Wk*bIZM&)aLh3n|3 zY2NK_stCQL_ovo(sn8m&}ko%dvW}h8xnmz`GQ8K%PAXsyGAEudj@2twagGO2lrXJOL ze)Y3`B#&=!y-6q=OdPVQM_}x~Du6X;Yh8KCt5Z2}DM5g*)Yfl^ES6n0D|9u^{dgD} zy4+pdZVvXACv*Yrkf>0WqFab_=3G^B zY_2ONSLkph`Ble?MJ;Y?2wmrXE#<2fO|qDRvALCk)sbC2t*V{yV>nt7c>`utqM8w? zDLWh`rA8}q@gSiCOEhY@@}g_MrNs)v$KoS7+&dV%Pb5i+AJ7=z(+NQmV7_H1Mh_Mi zGOi2K73VxD;+%lLA?QGEaMFfA z$tMA;{1bXz7(SQQFhQpegN;lHi%sbXyL-SY!%p|5;J~+nxeqolobr-)ru7L7eA#wh z4dgy0De!L=Za5^=tH35Zgu|g-g;q417pa&H5`DQ(WTnMsH}V6(#J5f`_OOc45Q*vh zfjl)0JjKspKINSElrGMt0$i$lg{Cr~=T`d^shlM;EtM`g$kPj1G@P%<8r`pLozN7P zI}Uu*d*B;(P2OST4`k1l_TvwE z1x|qsrR%xNOSX>J71Y2O@Dn5h9J~>Xk%i?hI4V4ftVrZRJkF zWyW2Rp=h})_s7o)0cT_{C*`Q{@8N6g=4E1k6)q+ex#51Am4%Z;Rsm-6nlX8h)*@w? z8~x#s`a?>~ZWg|%U1>>lOG}H%p|aD3&+xLhZ>)WG)0pWi3-y%D1)vMIpFMDAzK z)DwrjkTnYR#P_lPRT6_i8c~V0JIRAdY>-(o?{rouC3=cIA)?yxL{dIOtN2llc(Swj zau13h(nM+XZ2&^Qi=v{}ium$1wWa)p)q7RmuT`dc(}RPx2E^5_$V!**H%xjGWB)X5p~8B}92!Gc9&@!3m>mepp4T+o}@2$rl2S|e6MCIqKAeNMa5 zw|usk7|b+MmBF>kdlE8Mfyr)ppM0`g8K|cCX6~NJP|Ga;3a=68Isd>l!AWa_j?QrT zz)iuDbwTU=4MFEYgSUhze2zjA^X3fbm$nAGEBFA7YOTgkn^x}Dm~JgWtcg~?vpHCz zy}jiiNP|?#Db?9r=DdV4$Q}2Q1rHfQq`rBAnhYtmbRlrEcA8J(UcP|u~<^FAOf!Krd zDX2rnDo1?sOB~ryxif+-S-&|W@Qz_(DR6jZOP;hpTk;nS)EL4KsW`wvC1(i^`^2ITVWdD(}KE`YM;oj-DMNP>1r4iKX&|U0U{j6N@t>k4!K2P_dsFtPO|m|ZuFz2Dh*K`ig>iDFvNa6wJk;C-B2*{)2e(4#;YUv=K` zpsno899*kMW_#?e%V#DK5@e04xqL8Df*%-7Nxna)fkq3Ybkl6P-zW}^EO$29oTP)! zn*joW5{`|qGQ*B%Bb1u`)fZ&Djg(bi$xg5BRgcVV*I05YYVFbp`+~S{;6iO4_a3d% zN%jb-iVR~l<)_)f*n_6>vE9^oO8ZUw_c&H!)9y+A?OKnl!cU!Y_K6?DbkUMPimrT* zpXwgzO{zVNk}ss-FxKrKrKICB02xTCv^zd_I_Z9c!bZCpvIM7v+rj|Kn`@c#iTQ}*&9Jh2cqLs{vd;TZRU8m=N z+gTTI&_HRLe!@bRwwn_?Qs%OjK*`=)`a~A5ryfq4nDTpvZW)SSxS*c^+JE4*3qIyoX zs{F`E+7y*?<0;1}CF-YM+H8@g2bz7(nJqkB=fk@7yY8^U-}lMrTfE%7`{-?QhG<}9u||+VtVVqo>|&M;>_|>?lcChQEzjUxgVH< zpRFso#G5bh<)14BYlh|hDB!%#O{sjbolTrxu9zv;d)zIq*^^NsaNOJB^$D^4Kv=4o zxv;EHoWo@$n?KT{DTroA&_#g{u6Ti)k+Pt z9{eEXLK2{s-fLdMwzW`sN$ue1D?* z4I?q0RQxB7V#}SYyt7BAazOXcAqHZ4{OL*-XpF=bTz#P9$81d8*1Uc00gd0KY?qwm z;l;*8e}c-W&c{`5Wnbyj6Z@1vhwdF*mb8Z{t2PS9lEt{=(I%tFgXs7$v%P7kU1|=eXYE zBG23b%I#mh=)O5+Z{&#<2p+ZPB+k;Q;zDl-4?0x?d0?t6rYe`I8aAqC+$mO|Za0>C z%&@?J(jE9Sg`Evv>YxuvK=Ua!6`G%2wd7N>)WXO~Ei-yYID+QW2Trz;u2P>@dJ4hwVHjrZQRFO#rp+J z+TZ%|m~55A9g_H2fxPc!hCh)RX5y3kY#q$>^CnwUHswvWrq5tN?h_+&p9V=QwKUMk z{}!oAvF0;s+2-PjwGphWXx6uSTA-g5jfyn26rMgZk5W_C3k;?Mll1fP8P7wgeHZ`h z`2R8G>A$rRgsf;_G|3iTKIH|>q~E-}#LLGr2+B;KL8{wZlH8{Osi&b-xs(4)6=-i& zyg{aP)eLLn%Tk+EP0JhC@v>8@rp$D}ZB2PcfWriNPp77yhN0e2YDenw0wph5vo=6X z^jNt$FIcj{iu@7Q)#V3A#_~=d5i2`AZ$xa|=>;QV<)`;{R_S&1DxbS5>OSH|nOosi zTxv_2-ZH;0X()=KQt1pk-6uD|Yi4fN%i9ENV3+f^j1|#Zx20cM;clni?@T>CPx3C~ zwpuQFw-=CHM?twQ-ds?)OK*#b;p`)40k_aZd=9iem(IPC1k_>sks?L56cn!X6|V3( z^ji!hWq7khg~6q%2~lv<6(`CIthiiz&2ARlci~)xJhJ$9<=Bx1D|Cc+_1{89yLr7G zsVyROc8*;$I?payY0Z(FD4~%9S7(w*#6-80`eS{U_%#A>KR>aaAtQ8-$kPyz^@LRC zP9DJN7$GMlzUeRAQ0DYsg3#D5X{o4X@!nxK*IR6dp~)b_33Kk(b$?pO{GNHa`DOjx z_==F;zIX7n0h|DJ6cH=d31X}#MG#3*=1pFN@G8oXcSip^7!zYzR`J*5kEE3o-Bu2E zTWPvaTh&%r0e^QZ5Wgwk^~ZYuBBe92%Agb&g^~nxSE#E?b(vJ5x2iSK_ZKedT*f{r zClBu!6}p-$alIq-&Uf46PaLZ%nMVh6-wWn`R$lUuY@O43yCoA(ASdJ^PL4!eSW0Ei zbMfnML3mh=z2@MxiOt9mQTt46gg@nVq#%#*w%g;sIL0tAd4p?{51?dYxY}OgFc@4= zt~MD}gc{6_mCz7Pj=sk+IX>?V^+T>YYIhpDGFGnrf8hC3(L{Z0QJ=J&m zB6KoQCR}f8@=fn3J0PX)@HZ~$%TY8wxpxmP2UID-z5Gj*pott)O*K&% zt(wBgQ?BW&aJ{K2vC$Zi3OaRisd(4Hk~uqebDq<*Io~hvIXgu?$Z0%5$+76&toAt{x1m;R0G;X#UECXnc| zM(d&!lujJZM%CGOD2tor7P(HAyyZ2$qo4;@s4L3{uBCP^4R1L~DEA%2td%pnZZ(<6qC6Kv=mWa7Bx1u{FRl2wgN$mEVK+SL{r&eLjCCYTVzPjMR zm4V1+_^~(3iL6q~<-{#R%VPa!mO1Z$YGux*6wNDa=1p|9Qd?tTGf3tPnI$gEq01{S zsL8v>epJ`>HA11QerEQ8>&@?(mL^3gVt8 zh}#-iv)jYl{@^9_UOtp(We3*m0wK9|X-)i4FsI!&gRk=W7Q$Rdt>et{!J_ zOLC-eHB0eS^ayMR<^yKsYc}3JWlJfRM3-4v6ECl^3jnngw&v#Zi3>A%2|8=a2d)51 zdxE9G+?A-w3Ey(W`PNhY$FRLTS1|c}r~k!))@9{rwkKE~J{E$vy|_Z(PdNMez!uID z8`(^57AE6nPIcBsP8La0XY?HogHa%+hU;W|NePP&pq$(LDd)L8AI=6CP<6rKPTmE~ zKcJ}Co-B4hGym38^vYLPCp%>C;qF38coQ3cTPHU8u&959`gp1tiEG}Joy${u%M-<| zeEeNY>LMemR%J8yfB4`S_ury1oHSWkglNEMH{!arPgY8MTiI?0Z9VB1r)`X)c{sz2x>qL zZ_50?-*ca5UP3Yn*rNOUmyc$i`+o1a=bn4+x#yhwuBCbAEqqIxa}jdJ`oBw_;+uPe zSbM`U3N%vg)OQa$2ARe;7zXRc9zP5|{7&a#;2pFhahEX`f_&&Z4<#`%nw$}5e18M< z)xGC8IztD+*epXjzQEa(VvXVpLL6Rec#TG03of__>29;9)4Zmu@rtl3kjzwrHBsD+ z&9ZC~<~c>{cVExF#t@gW5yz%_`fK;_SJx=PSn5 zxiCs(u~gOvNmhgmdpkI~jXYo08&`vqS(isWf`u1imSW^EWt{NhjWKWUfM+=y`m+w3 zX#umJk7MM4>{ve(ZZpMGxb>bhYzD<=>`pQ$`QF0a+T8as`93HHw&G0cxml6}p8xNt znH#nLe#H;mq<$}R;n#x`GURsHm%KR**u;=e@du-{yT(OW?3fsYPst$M4^|iq!lr5e zgAG9oEks8k8dwa|Q$fd#X>+pIX}l>5(JTH(Lj zsX=Y|_0!hFlEiou&fwr#H~KMLlUW4blk>Wz^XH*9@E)ApqUZHcx_B3GIugouxPikc z3aU#-XIuB+1-KNawv^nj10TBD+Jgh%;HI%9Mnx}R#mwI%FrrOP;B?NpumVH{p8J|^ zIx31N(3^XH+VuCq^xyNn#ME=6pOz0$jn-C<^JQUM!?EfrqYpPeFJIn^bwigjrT-P@ zE{wS`In;;vjUrGW;8+<-9qWj#Ebw*S%H;cwkwV*I_t6)0o;)k%B1@TF)Qa3VApGw= zno6-GV=m z$m9ckAxNRo0IXjFR|2Zc=P?>A!$HgTE!}LYZd!cV0sy(8W4ncJzOS=xSk{YBA)KI`U4Vq3T5R85GV*q1(UKutxsG)Ochi!HA_Ff43j-l*VT90sJ&l5Vr z0z3eT^|1^KBh!Vp++(-SCzdY|Hqq$CQ|HdbT;YH#W-*dqlpyWR;XCJbo?2OECb+g% zb|$yoY`J7ESuXf6uN*(5WnlxL{<>)Q0jR&U21%+-kOdh5g(tF-D)2yUHKLcgD{X|M z2J{(F=<6ELMaM88Yl=Mk-}A&FKDH)m%_MuGdWv#Ma-zP@P4+rh=O?PQ;_lu3JCC-l z%YOeWls$Y-=i3F@CW|8%VTbVI2mLydi2m_N+ax9z$JrA|L>oqS9{e`dME9Wvclo)> zmrLtaAN(3uefF`8#u8{*hDW(r+cZ4tv!RHFM>{OGgG>etk7UoK;nBQCOr{ma)GEUx zZyuO3c~CUAlgWx>5n^(iv6$jpp@&pGfqNw@S=k*4Z^N5Lt1_!P#UWF;)5{x&1o7=vpuKtB;{9213XxKUhxk+sas|^m?2KC5b?fd9km8 z*`jR*G7t}J38{rpvk^sv8oD7!gu)x;D{0Sx#X}>^DP1g$H=2rIVe!qDweY|`1`XO9 zQLU(^pAsEz=Y1QQVlMniudBbEetSw?7E=d?ZAYM&Rg++3ZMZKR>0vd7TT+svZLob3 z4ZM5U25;}v+o-hD`J%Sn-&m#O6QH<^y`h@y(p;Z{5d>V$QXNY8azf;Ya6g$S7`@%D zuKQ7=xzA$0#(t4iD|bsU`Foa&%Z3*oX|V>uTdLSOQvO+r z^z9BKC(1BJx)a?I=OdIbg$*Ka`he@~q+5|>6|#pBeZo!z3z`-CpOlf|&_S!9Tz@}& z)#9s*|5Qwc7z8Pyiq#BM+pNA59e#`op*PGJ>5rVF3-=a->tEZ5>OJsHs0zT1jtl484fR=07p`2mg6>Rqb)Zc zW}p0i0FlT1{m{=mB99X0*kI*KM{cFLx&vtn-|`bEwvm8W{Z}m3?b!WN##^!rs|j{R zX%#(;ip-qQfiwIicGHjxr)9YZS<;Bazx3%mk$|Ir>!HCx$50A%nv(;6<5Qe zaAXdYF?!aAHfEPz4dO1zKz~S(Vii!DKn!QF&AhTWnD^S8SXlCYowB7DuIM~3kOuXp z-kpbfCZ@cgI+ZO?_n#KpGnfyF!M~+?QG<_}X$#O}tb-6Y60dPSxp#xM<$s(MD}R ziFvb;9y%Bg%rKwl+6exRN69a3bNio-2X}3RhOs_VRg0E;TNOfUcUC3;G(A!0ZjhED z0lb0ozM?}vIc(9PLF`pXy3@51JK!vs9r};$&gX`O-l907ur*Vhw7SvDtJz2A~5HO z$6Udc?J*xEhojfI8}S1uw7|3Jp!b@3c+9zs(Fbkwm{o)^Hv9#&4E08a7s3Kw3r|D` zLkA&88ONSdXMdD@v;<%nv4Vv?p{gKCz!^r4065W6rfu9&94qhTI9`dF)~@Vvi-hU*#)_&&)+Z!FsQ;KYB8z zfLQ-AP8Xi|T*3NE&I|u}>gL+`kIw}DyYUKZ;USN9)tgk(a2i`tks#jg=o1Gle7zJc zTAlHAc}gMPm!3fzJciUmEi)><{4-jy-f4kRxd4xk5XPI%K%F!I__1B#c2rnU&8~{G zN(;iy;2(rR!sVcN30MsnDrUV}nDtuswo~*-U>j;v`^(98ebAfAigCDb7isk^as z{Pt4cj?#%coBAX51*9Uyha3~@Qd7|Z(9ZpeCe^lB0J#JmK%cIS3}FjUvk)g^#09{e}x2^zNza?B1P12!~}^J(!CgVulJE?&$|a6+$rR zHJo-2e85|@N12?QaPW-?TeJP(=N7zfKpcFCSSX8`x)?+YG&gVnZmuoTmy6aYbIMvJ zjvf9@W0C02Gsu?7Jm&ffT0!~9wPec#@MOz=2CsMm+e=Xm8WYwmwV@ zBm?FI9m%bUy3bg^C~LjOd=MI84j;4#J4T&C*o`4w5*Z!Hn8F_HjlR@_ z=SErevF=E;DM9q77z0SVmF6)XOmdO$W3#kIi@~Msw4b9C=nIj|S`wsreJ#?J*lA-U z@LA`s#-O>fsuPI)(Wf#|{&PJcp?hkhwTjC|n}d>xPOk8_+sP}KPZ6*sR;8zcu31B+ z6;E`!RXSyCP47i-J~}p*i|imQjp%MExJvg1kGVhs&MvVftm=|B3O$GegSE9-9nn-r zw31&UDSGf4)%ld>V>dIQ5eX*rM9CcI9ZOGnxLmGnszSnM{4!&t$K{WZ!mO-H8FL>rAFcI+01-HOl+Cp*?xnry-g7 z(i2)kvH@2+rwe5*p^u0>IEzBaYkUG?^Ulc>t@)>W%#w1T1JE08$v{Fy_WXmSyAeqh zcOxZg@mBj!fwG!0Cf8#uW(*d7%H(17E>5i8Ph|BbJc`tRm+upCSGE0K*+iN;DuBqPjb#3kkoEzhl=zm2i1ooet zfV?MO!h0$~184B}q>ypL#&4g-+#cSMKhF76CE6#ZS$;a>rO|C8u2SE0kXS^^zv zv*utbF{xY=(d8euJ=^v~@xWYtC znOFm{HTGtlQpxaRtz_O2>=2QAu$q`a z8Q-Z5oW55ZICZ-=aLQ(F;G`OD;DrCy299}58>s(U8(1_O=Pz*V0cbPaS&!2@4x$qq zea0*5m2fx%E<&^NjD;`iHQdeE#Nh;e$8%t&v!ea*IGWSg;Ks2wtlpZ=NAAH$LgRU` z*XJ3&uEb$S8YM6>2A8^cFn(G}STzo8703^77o!leeE7{lOiKw3GUTyvR+@Y)oFVmC zIBSu|!ll;8NIIdDPd*lY?1j!wc`SUC_zawg1NyDi*tWpD6>ozF0nB>6?5-~36X6_F zo(unTFCL!VmGFmvH#UqV(=ju;IlfXiev<`+()rT6xuAlvhP;Z4_X9ZQ{k1^?AWQ;Z zSHf<05`ZrAF9eZu|Au^204)qOo_MKyL!MOnC;UBjSa{7Vj;9b`>h3P@a-Y(V<}Y}u zdlcR}m6(45K;Z(j~zqX7>= z^sEP-j6{5?M0){U_)oZ>S>Pk;OD7E3LXCVX0cxyjBzD=;Ujd!-bhid7}%y*#(h0+QW z>7|_g^mqwXF;aV5dWO~88}aBCDFAV>^^02ojG1_8xx)^#mPEsCbeQSZTU!rbkg?Bl z1)zmDq0iQHbr&-cR5SlQ<<;n623S& zK&3S94AtYB$x1mr8JTBCqFTPzfog9fGu!pvpD9K*e+(H}7MLDt429~8P+)q~$Yeym zL|mGTV3pIG@{YFRK^)JbJMYdG{j>iRT=rF_ zz8BlO4`xB$KDkCc##@Z!h2_YJ;4P##DbMf%mH7;>EOuFsroCUNwU=SKl_2)5Z)ccj z=p)j-r!(lgI~((phuSKwdo5_;KZ7pe&S@D@p>QQP704;sO?96HVdfYPMO`34&T`cc zao`e3#f^9%T(%`M{k?YComd}sr%L{)fmP#^B+_Tj=4axW_VJa;H`*rxf#iX9_7T^! zQ&=3cJ*>892$9~7Yk~kak$8@_qG$**LH*QrPn3mnu}g3c!9^7gU_bdnDQ7$=W1Uxy zA33Q!ZLiM6o9?KBsjYlIk~G3iOj}bUXX(WJ0DIbX@_5-lWtb!EcMEw$vn8S-3_ziF zqs5df%>qb9IP^yJ(b6zLlWTb~XM6q@N?8+jY!732Qw+uX!NR!Wt5YSeY`A~ zalFjHeZURs0?|UFVtiU5GTLoMKF)38q&KgTF-hHtHb#c?wi;OkS(A07z(gD{A62r? zU`rWde;rQcS^n#R-Sq%k5u9P!H@qVt^A8NuBjW}iu{9@Boxcf-QHnBPF?xXGPPCzr z&Z?MxBUQzH5*5>fB>Nzy(m1k8ic#RPw-r-IT{webAfHgRkD-JTulWR5ATFEyLZS;WUFVsr8W9)$;pK;MiVfsBYuyDX zSzL*AwhvFJmoc+gtHTKF_n$YmVM#fKg#j^Y4-LxAW*>yZfA?dbN{7d#qw zi?KVF7bfrIHJ>3(kBqPIL}qnCGk?BJ-u-?XvUlE${L@ISs?UJXp?{f?8#?r>SvjF~ zjo_gwO8ayXgSfgG@1rXf&f2csQKh?LRB*$csJ;KpE6xb?4{!1Jx&KF9uDFp8CiD57P;GX2OJD~KS;AA)9fgs`Ihz7MIhu|SzGI0+JRv6dx0}~nr+Tq@ASJWZ`*#jG?;nCD$H8C%>avQkM~P8_{S_ zsJgUEIST-Tk6m!k;QsUr45}S)IfJvZPtwAF#&sD#$7 za~m`^<11f>xq|?`xDt>2t!FD*)#$FVQ8H)gtkOJIeZp9!r_Ra%+{8Ucbl2Vt(6xYK zfe5zGBwnkoPl9OR8p?Gf8j#X0NRf3dol|W=3KxHHcvO?8AchC`QX$5yfS5W1--g;_ zC(9e)Unk`J{W=A?zce2+H}UdE-aN z4CS#&DEGwUU`Z(3)S*V8Onq{KAe}m7r&9-JO;Cr6@Mu`9NnW@9Iw5yspH4w;;htlL z9QH7qI&5B<3b|jX6+WBd8B&I|HS$PnP2)*i-Hc6=1}t%#G+3A#EN71Qn@$6!W(PhJ z5>U#h{G*WbIk-`ZmGar)uN65z?cFI5U)+=d#N6Sp(@Ls$tHHDg@Vfekc<{(b91`i- z%fJS3n0O?ZpCE&nGVnYsu6{rdvX}OFG-lU!#l# z$GhRw1|Q&-c&(R4sEeHKB4+JgoZj&aMuJ zNujIC{8WdTsiqvAmnmEHwC_->0gEu@O>+@`m!tb4%1J?v3pu1QlN1sk?;>L*nUI6& zM2@>o?GQPnKl`G;|1bm8Dj{RYg1rTWK$gb4^~4!o#e%OHU31sKJYbr`5}y1ozWqx% zY2YzOTp}`x^a{mS@!M#wiRK_3*NBH*k^Uu|PPs}{sc-{>+T4|pGFCEsXxIMG_Ab`* z^b+GWC-OS+0oB%y_v!4VW_vfdkaU+yBvvzvFQg7aX!~JfU(N2WxNNN1kq!Shr4n7! zn4?&HdGH=>^gK{hD&I99cO&9px0TjE>;mozT~?eGqeyKMeVbMDVfUU#ib|zp)}ev= zz5o$~6`>Ei^sFtN!wB+Y+KMXa(k^I<#x}=fSlxOaEGm^~`w~^ug+q;Sjq_2qGxS%y zZ~u|I=LTG*s%nZWlW)-*d!rsau1u|}w!~yh0NE2KUbqgP%G#C65TwK(jv+P*9s-k3 z&)>T}1J3D@6~vEpeT{rn0+ovjs9Y?A_iVoO0j&#M-%f;n5^UM-!cGVQtFf3KVb#;m z1@FLRay4xS!Z+dS!)N|JAC$!KHQ+(|ZP3<0b@j%2pE<(;caV^d-UIw`IqrsJ)Mp@W z8MNA-L_e10D@Puf>1M5}w|M5>f~y6n0m~EUPs;aNXDP~3E$Yt@c~fBb1_XRojg#M8 zmgmn!MJ2C0Nc_e*`i1IoNrw_m-qd;*BN=79j=S-6lhl3-VnW+dJK|Wo&#HaF`F8Dg z)wl8DN~;>@xFfXgNa)bn+Pq)oVz^s$v)9&1yfNI)p-zBu8-?H=e2;y#C;ZkBbW|5y(})j`Az=$dAWtPiDyN$AJ4 zQ32?sDw{Gu+)b%h0cCUyv>KW8io*W0 zpm(Tlku-eqOqz?=V2^a6>9W#Yyb>*HxTjK~OH(X-<(}#WRD*k}o5AJU^`l1$%cY3j z67H+4mT+HXwS@bsHR`_VU$A;2a$j{YJ8(V&a$j|@yMJ`(;7R_GFv0MT(D72R-49-& zU7VV)5A$iv*CUw^aKx>Z>W;A{iwI$?A>QL^N-nLUKYkYK`N?JB#?lGjDhkz$xfXbl z5QBjhp1C}dtwo?O9FHv_acL2J!>#sWD8FE;?9A30@*21Ii=B(y7KOo@5|Z*yXM?01 z!ll=avsj7CF%5+2eawW2*Nf||db9n5{}kl>48-*nuCAUXWz{2#>FGvS;&PwS9NqIK zFR`?eYo!k*+pb{F> z4uJt6NuX#WIf%`XHl@tY{&hjL7l7XXV$oEBw4mf;WNDu+O@p!z>C&7!MRpz~q}o!I zee7M8;b{~ATD3!$f`1RX)C*0XSh~~)C(i%J>C*YQgaTdK1P1#XPM7LRNRapsw234t zL7Uc82yG&&Gl!++I}0?*-!qNmD6T^7=&?Vx2({{>E!coUwoYVs_+I5JCbJQT=QjK4 zlS}rHm~<%-?^*Fz;F_K0OmgB46*pud19f0E_uBpd=U; zF2IKwVJE=p^nt{-k>h$;pS)4uf6!ypHubeBu@K@XG`+lIHgTI3_pMM#x4c}2B2V@$SMg8wtyJ+(zC1=1S>Cr^B`xnu2*Cfa z|K)NNS>3lm#joy5uhJvvlR`Is4O+UCn}b#t|h zO*iI$&cVVPSwG!a{W(Xc$7_*y+Up8zpThf^Zq&fdKfv}D1Q&RWMY}63IEWAL)*$|l z+ggUdH*GCP7s7(3_?W+y+T8e9v^7tCEZv%~+Jb-n&C@D%xO=1srRf~qTqH2pjYTgv zb3pMLCPtCC3Ijt2HvdglK(ye?c&rQ+x(ixhDNMwP{RV%ianmhys9RvX!b=O|xV5Q+ zarWkq1y?7-Cqgq&b^pPV7GP?iSJQ-oEhQ~p&9%>eEf6$txwVp5wbepXVFF=$6Jbwr ziYBF3)l=tk^aJ*1#YXaWJ-$wkQ?bhsz@F)K z+~F~YJDkB=9Cz=>;d3ExIbqMZzb1$xFlNN!GKat1_m@;Ds6f9hm2k;&&(&qdLwZ%Tb9|`>@K2#;K27G3y;7PlJDaj&_;4{&g!uC2- zwKngGw7xuGS9LDR$0p#9^hHZn>`JZp(zYu`8C|Pdd-zXQ-P#-)55-QltE)!H8rtXh zY~4?vwsxFjQd^+=@(O}3=a4{8dKO^C75F2epC>C`YR8d2s>Y<9SP0<+FpmO2m1b4d zKT#}pJw9=0!0dCn|;xoux&tM2GR!ZN_)-_q16KJZJ9Fs#YanFBM#u ztRRd}_?Uj=>&C0p}(~Tiz>96hblpOS*K^&XpDa7KQ1+NDbq;R406!b12oPvj- zJH!<&yoRMi@uGYC!ZpJ-1i(+MX{7C{Q5*%~kBpB()vx*#<>;UkkcEfYAWUK$8pTa1&GWuS84s%JZLxgJ3jx zMSfrinI&Ug2?t3ESC|-eJYm+oQ>3FNsRh@A8#1kT?C1dp0oeh zghp?}*E(S(NG$}kr6$`yQ3lFW*I-Cn(P)J2X)E$dPqR$W^f;saps4XzJO+LPZ(wI4 z*)_*+qZx~kU{r82V7D!L_o3mCgeVtro?n_187#XCkLR$>0SofT5M%; zwlCveJarMwMkoL7iy-TP-686aw>m7vFJH3iEOpC#3+#&OSivlu%o7t+bt0H%nHGj?wBvo}6HCbnR5BE5`u!z zhmh)uC^L2yMvo+iEkkJ9DKlDS-{r)jS9RE0NjX|;4Li9x;``K+daRNcmQIYPE!Z&w zVW;oy4D6&c0=wxOJAz$umpLH|jOzKBCNph;t*X!5drRC#aZ}0T+2AUuwOU+{NuYoZ zQ{?ZZY&f(M7-E6=h(H|ifjsP)BN0}DrE34>0J<31r|`u}Cf6&}ILlcoY4ja!m(WUH zpGf%M#V=2U`=i~yD=xb*-n4raPu=KTOhHzH>|stC5!R|k zb_*RK89zWWK2pfIEHb&Aldsrsp*xEtl5vS>+KEFf7h+ND!JW2BjtIkr3Ql_=Gf=<= zH3x^mYtg!d?4MrPIypc75i)0%6Mmrmt!Lso$L$yVY)*+u5A5 zc>n3%nE}`g-W477p5n*(a}Q!6_J$@H_96csb#;^@YGj>S8fF`3WT)mmgwqlZv~q^f=4^r-Cf1G4FB5s6OXfY8miJNQwGPg& z;Zv1}44>s()m>`uepKyuu=YQu<$W%hH@)_vWbFZb;vhU!Tezzk0@TS{cx2pa9T|IV zwU3NjQ;&?^lp~`y=Tq1tSX~`}%F^i76V=}^Y2y)=snKGf&TWH7(R98<(QM!WOpRuPQa1r z`oDH!rc#bfv*FL>8-;3RA9P{>_Ci^|`Wx2!Ejy2)_uV?^J*5JR-m#?u_v0(H5q<@r zbrdT>fXR~+$v?&ym>jApZOo5NM5qm>#1_qy!?GL#wUJ8%`!u3~Kx`V_;_7g=PWPIA zN52HeStg#y@OQ>Vw*MX+*l?IBZiGG<{OjD=>@nVi5Un1H3A|*9&V5QuYfppYnP&L& zfCHN1M&Xa?iN-rQ@GdeR@I+?P!1n4x^iUOeow{Nz?bz2Iu}yZLImUNj zWN^l%%D(mp>}yBXx-N}NJgyH_l4W0ur;s~uUwfC>*B(oez{$?K?l@3nHC>?_uSV}Z zEKaxD9DV{GVtcC&4Rzc^alQ0vbOcHs1++HcpO41)3@U()YnHa%D81S_H%gqt1DHe1 z)IrO*`0*U8oC01iR< zPvZSrUC9S1HCV<~LdiDj;iX!O_=mu~?9)iX`5FUG_n-6yBE)|Z?;4Z-lNeI|lUR%R zPm)@d|0MaO|DbzIOZ%m25-x)2P(MOp7-Ss z-ecb<0(;Y;BZc4#o7X4GtMy^5%Z7q?@DQHYFs2JQ+`ydDEP#$lfDSdwbwf;kAQB`7 zD7BvBKqvDN;!Df=d~qbzU^$X%S#N2N9uGpCeLRJFJ&Nevlnhs94ed^*8{RJHOT)c|#DW`OE5>JZ=0q3v+~^tyBN9%twSIDh&e$Jz6xQb}P$ zUSlD(t)Ttg;4@06NKqe({x`LT_t)kVNyB5HSrPiMD0HMq3;(ho@mcKM=-UcbtAO;w zR5qI}N`yyyCAt*4aw2F+akc~`5aaf`k++;Ds7$m-I$QD@I;?92Ypk2AG`y>%wM=45 zX~Rg1>6QW1#qVao+m>~?nz&T5{VN^iQt2`19V9xh*0%dAcAm9l>O9k}&foP;hR%D< z#|9v)CvuYmX2m<^XTrFIVIco`#bird!89-!;S9>_@ zS=@4ns0^hIT)O`n3joqsz$@Kn&qTzSQlVj1vR-V>@Rvd=(#RteQ z7?WQ^P>ZpU-Y%9Bp>qB(Of4Qki-a#9G{;oP`0*u3i(d64BB%JbPbHqVFQ3MC$Zo>B z>c76l-nK(|wJKB8r!C*+#TcFPeg^%u)nYuaKe#~m3j<=we+Ri9jvV`UA!&BV3VV<{rK2pf*+rD$92FS zmm#BX10c_|1&}_2@oE6!VL98mwk0G4&hJ)BBNrZYpn&{+@!?}-Z5r5`!cz+a6#lB` zzW^~;5H|(lR;}mQwf44aJvsQi(uba)RXrf;(2xzEhi}n_hWDN#stFZBh0TAt9+w$| zUo&{`8IY1E#d(jFht7NOqJvC!$|^8IS+bb87%CO2VBtO~3%875QCHuWmqOwi^g71o zaXnjZd;CLm^EYY%zT>}8TQQ0rd%k6P?3w@ZA#(Lv?I>~B(}4Bl{BPJ(iy55PI1~-R zJV2p!lGWmAWB?Zl4kDTxcjS0n0@{P*>A;9a$H2uoR$s|apxy|VD2z^Qlx_QBVHS@W zz=9TMEI#v2I%8q1&sa8HMlRK)8tncWbFN6fF=3Le7O1u><0n|%b^&{lCtb0yUR}9j zNnPnA_9;x{(fgJ0mebf4owL;jNE;j$-kW(3wu4oFkwb9WZkX6humT#2PTJ@UDdlv@c+e@zI~_?*U%Gd1E2-bY_AdrzWJ|33P9d9<7Qgs+$L zpgqc1_hk5s(`k1vsX~6m`3raw zaq^dN{?d?i{vvP(Gm~`wGOBCL6eJ;E@o+hyA}TXse24(e1C<%ITi6eiz?u#l&u`SE zzT?-t#x-C;CSqSoyiU@3PA$T1VIJ&qUai8p$9k<~Ic@^mrP>K_M?d;=h6znTN)Apq zTXUc(o?k2wMhD!R0GQX5yb5k~_CUC$xq@lHOYd+6vo6IIObYxgS1^i`9gXH+W5O{EU@6X3+j9)lkaP?qAhjLCpj-)r93WO5 zI)-UTIEGnImnAuzC^3mxoB+Y)LfkPr(>Rrq*oYwF2?!WoQnY6#1N;` z+{9S406c(F;^uv5(oIam(Qaa_DCH)`3c&kBE0|w;nD`GV_16gVJ6`P+%zyvKV}|)y z5JTl;%Z7R5w6 zuoWDa{Gx3*(uE9Z2v1h+x{$Gm2wlinL`1oe0cBvhR2MRkb}$MqWLhEa&2%Aizw#pW zb!~vpywoXx?|D1}z{xehf6NBusR=?hIg`?VOm>?87>v>KAG0pie~f}kY&wb`oBtTp zS6Yr~701P@)h97N;1Kb>C~+8X6m3)JdpnEi_ZD4449^Ja`K>3Goj<0 z1d(#VGAL7KA~5{Nd;|qU?pws$g#Q?Xu1@-oSqJ|y7QU`UZq*;ku~aJ?9_z64lpCqc zOEP7Se*1$%iV#oEqol_8byUtlB7rN%u;k32GMyI^C|`9tSxKhpWICs_xIP2EDWFJy z_C=p5&j681I!}Srsu9)VSj2;^*L;9y5`EAcz7lBf<8)cLZrY_vaAjRhM1L-zu{mgQ z|AJhVfKL`&#KgY9uW2?SxR&*M47f5-thwg zV*24nYQw{Oc+~|(JjM~9vB77&nRu6R=gvcL@>1&`sw-9=Z(g!)xQAh-&<|skm^gWX z4;DgFHMFb{+w{+{ZphB^<}`W-MU}spH$8=0@9E()K87C#SajnVksIXf#TVrz!QW9Zcv#PQ6H*bC;{g%)*M-UnN&JI!(4VKy zUm{qHtp>_RjqN~83n?G?CLv{X14rAA1TGCJzx8Maq)g4pbN1dxI?SvzkeT^~Oqn6O zX#`lYDH6)3Ro|=s&*DAq1sA`=akI%>b0t zeKBPy-}_q(g_UF)3e!21ch+|}6zR{t=xLdTf?M0gJQLDG3k9*_;U@|YKh>6pA4nT` z$FtO-Qg?potl16cG&{PubGFF)9V$iL7Oi9^qd|H334M4t(yIjB&5{cvDQ`5`cSfqZ z9s8YdA%sS8CDe%bKzMP)6t)W0g5}a`=)?Do8o2rCxz|~$V#vU<$FHg$A2!~s`J`)T zSC^Vy*?4;dJ!b;N`N;I3%CuuY8gTV&aFt4gbu-1bYIb+Sa3GaJ$KmUzzH|X&DVR_3 z^|PaU&qE1cKf*opW(vN3jJHv^=Q`!1$9Qk^$Le5cITv~#et>E|>_$I95<~G0pecTV zFzSOfP1&KHIXUmRdaifd-hzr7(%k&qj7RW9j-rK^0G6%KE{hO%f@DckYBHdlI#bAf zUF=8D{!M!M`Srt@mQrLnH&R=lV-jvXpwH24>2p9QKy(4H!5#LRchk8~H7u6uedbdG zK*K$C?g1=ZP+b5J;lFCUW)$!aTJ+^q?&aFki@qF;4?SMz%h{wC z9-8s4Hz%?Lg`nEOs#9&}*%uccibDSAANPL|cbW3tbZUBU@Nh5JT@by(tCW-Q$$zo8 z@Bzi~YG`plNk{svMVvvA{ zHh(YX8+Q=eLT=RN8o~php&9))eA0|QuI~qX^8(H2Wnxj=)5r@(hB@H4P7D7R!ZdaC z_rl-)GkW9i#j|=TM?-kobs25xm$CmAEO{-k;8TVBMHti5 zEIvG98Ae89`VrOq7zumugf;z$3Y9j0L_I#>9%eApl}SAukY@V|H%)u~n#l06Iy7y) zgHO z5|4iNc><48ki|x!*yCu?UGRaJh{s-o05V~q{u4Fh)?9+H3hBmUR@u(YG2j8*I{=3p zX`&u?muv(Y1WuuiI=*3~zQgaM`@+ktHh~0Ls*StQMhZThD)^A=Tum&7jk?g7Habe} zxS=QtYjP!m8ehRz8t!))Vp0pF34eSkSN1`uXKck6_QHzM@YQ8z*OpWQ8N0w7_|Pau zfNZQON6c-;;tKqX(pHQ!b8d4Pi~k3q(#5Osm!9_*SK|Xe_4siYY;lG*<+@52lbQh* z50Z>ww?0Xp+v>TcRAocLdL+1EA^B5iLwE825P!1+XORK3^rYkW~+oes~kJPJ%H_ao$*bmrR%+;+{Tt`&Hh`n#?yj+XJ}KA>QvKrLYwlf z&+|f?@~qE37?1UNGJ2&x0lscpq*icZBOcE!$CogbbMcXW8E&PD!Q0$nm|x^mm*LjC zz;d&qG>ICiA822OH_M$0Xmab9f)lslH{poWx-{4}RWOyq_QF%&!vByR5WJ6EsYz3b z%oxvU+Co0ctrz0uwgr4|fGuteC(JbP%ZNbLJnrx9tewkDIr!zJY&Vd& zpl@tm!4|w|ONxu1Dfpp&9ww5HH=Q(#5W zD2pGC(@{TO<3;`SuJ&LfKCCbv66To#0I3r0EaLA0s=k5;z1X9u79=+n7tTTJ7B0xy zg~pG9DaU{dESQ+3ws3(N$cm4_F~410Xf?(j9HSl?+qDUPb7X*UHUbB0X`{2o40YEY zaImHZNfY!|bsZDDhW42JQUQOcg2ly2gavuQQ`?L^c45>3N%UzI2tXyFGik2b3D&MF@P z!N?GtuYm^hu^>2A!(&0JXWvDy<*}edrqh_I7c=3pAjt&i!tI)L0u(zJE$|;=sBhqj z&!xVg^*A>b2Em7|TtRk^Ucn$5fdAn^o9Ix;@Ku7v8MM!nv!W3dfDwiBY@|l6ht(VC zwrdl!=#e$#m!K;!Mpm4xwCC99ZAOHI+=55+&Y_TxsD-F_9=d3N@qU;d$3dL9ZXtLn zXOS+_djPk1tZ^u`BQJC)FVH=->l0^b@mS%O#-L0{d{$szc}DI@$5&hpUnckK1B)wT zk0Ay`2L2;%$i-@@h3kAppwy|J1nT2R1_EVIN$hzUfGi{7C2^2Hp)@zTJi|I`O>@u5 zIHZ=j$~{6Jj}TX4esFe(g)u(<&cH9kUF6k;toR0q<>o?UOQkV*PD;@jw^(ipwJb*- zG2HB6yAf6NW~b?fn#rAw?d>)sE}uS=VbGy9jp!?%VEm5sjZ~j|9BmKhl0v6&DSry0 zZ}1dFi(!>!&gB6ID9L3ZTWHUd_^}0|xj_w0u+$gK!#ApPk41u3vJoZd619dULsg{7 z*;?p9sYftF>Uj^lnMHm_B1w!;j+OkfU`F!G4200;|H%L$Oc)7JEpDgc@+CtFHDdL+ z$AU-s19wpT3JnU?^M%B*SbqehwG6p$z5>k#pn|(pWiOT7fO9WvpNtL6;cmDe+u+Xm ziQ{@}sPGA*6ULxC|KAy)ViQ*T<-Lc107_r4dK~rj05uV&Vu;uk1a91r=QaYAR+wl5 zAOW1#hAgk73(buMP+jUuA#_gIZoIA{!@yGp1~;eGvJ1T+rg;N z!Lzl6>k}uKRaox8&2~;OK}b7{2z2X?>jdKx-4N>p!>UZF>Thy_889#H1aln*MBaz1 zB7J;BR(<(PT$dhvokhCm5V!BG+0c7+jnND*4E;;`-V;%0!>NsMWbe3ttOmK%QL! zJl(ayReu-hQ65yqgT<{-f=OEESQmDWCm^l<;yZ* zd+6X`EnEPVJCL(kT!&dM+(m09LV_P&ZtnE|_VXI_ZE=lS#TcYyzF{QZtL|4KNLz}Lkyd*JU-t>k-r z%q{Y)IzBJv@fjBbjg+P)#aBQ77H3$9KTXYeB96tHrJnC<3udXUXowaLsIQ^^r%*Ti z9=?WaeOpqj?i?V5G1lmmyW@VKu4EX#fE-}q7Z)+oSUiD0btPl01h{3lz95*LicjR6 zf}ez#bwA&*%kuZbbXQR)RIXs)!QFkxSi_>u7WddZ|3s1g6fR~BGvE@mxU$R4Vd`CU zS#-78`S!h$C-N)Y%(&m=<&b@J3En#P6T3w|;fCT`_>w+g2q6o`9g^yV7QPdh8j@zS z0@oszJGxf#BVw{CB0=G}Mk9=C0>}(T@QZRO-fIk2*~n3%J66+r+*cXHV~kmz$yLqF z9a&76S#yJ9Pp>sJ7`CTI#1g0XXRT|P&u-ROL!hAhFVMe{E)7Jjc3^%`y_n# zX(PRoN#H6xW);EfDXeP5j~4bauCR)`tQNjf*ba5+XqAF+$hwsD zPf&<-Ho%vP6;_R$CcsdDjQO;tC;IfbZuYui|161;K2Y_ni(qp53|oVUoVOjP$oT(^YV{=eEWPEgb>=v!)_XX1F32;q|h=$JoL&OSz%@yyfQ}55NMx%){ z@b%V&TeIEzMEovyANb?~OMF3JI(p7Domet!@D<7pq8p;Cx z(;49%^rkQ8HSPP|8%+URLlK7Fx}}G0Hi+dl1mfe< zTyK*Gr1Bt<+rUmFHq77WgDgN>g4DrftQjDo;!5L@!T92p2YwWt@LzAS9NEx1vRKLQ z%ll{$%!#NEBK0J%`XlnHhis07eQG)x?ygVemKeA0suJ|~J=)!#;}z$LaYXFf$zpK!CcJxEb8M{qI)tM z-?o?ypW4o_NsuQ4&0ism#`CDf+HjO$zXz=HEQBL#ah<{#;aws>Quo`Bk+qPQ*0Mx8 zWK|6nXn!w^*_UK0M0jT3ORCFX3|A>0re19?IGU-r@01frWdaXppfV}LJINFIQJYuV z_Nc6}rd?^{h9WDaj*K7@&fcy}kMtS>pX$JDc{Z#KW+E;EbtMe)r3r(sY=?_DqR5J4 zMuM!^t+hfBtKAOxhwNTST!JIUPTXZ5`J3Kl;~sl~;u_-qT<@Sm-kgI?r{FFdufY0p z6iZ92J<Nw^x|TdMstQ4t8&-}Ov%GMYbOOwx))8OT?wbKi+O6Fr)GhP*b? z=e!QiMCvAxXQJ~udnUR_-4fn-Z-Sa7*Yj~RN%x`BZ{C@x6HHPo{s@G9;#lYY^*j&x z{YO(NkFZ@zN;h-3B3T1PUWLbnZMAMtPrTQCh^JtS?U8DmdTHTF+)9*0F0}I#cj?5j z7A>N1T{xWtnGzC`e!Pu#8PyH1u!vT*HE9;HvgI~Prlt?1z%K4T&!%w3pN|s3l|k}n zsWB+Z{ydyC+C$L7b08OuRpU?la_N5ojE+kh&w?4H@ytMJeD7apSffhRES(Thv-|c8 za_O&g6yCC97{#n9-_TLag^p9ZGNjgX@!ZdkYZN1o7o%7(BStX;F{*k&hog{A2u6K+ zTZU1nAt&$RYcplGNn`8+Si7~4ix(d6_*pRH_?bb*AL(%X(g`*GTaRV@nKCEF-v?f@ zzt-{3KbG;|l41NwQrR72iVen})+q5z#`5-Q()(E|-Te}wSOL^BTUT~l2bC!q_*-zR zfaAUvo`QR>*njY{EB!WgE)c=uv1Fo;NBfxtJB4jy&0~Oe$>a>s{yIl7|Ndhb#oC)Q zjRIGl@XUvo9%7~V)Bd0a1H#9(wX$HwsbK~Zf|YPJ*8w?~P6#2`{Vy2?g^P{Y|GvnJ z{4KF5_yzA=jz;AAev5yGC~l2(iRP9h;1jQxJg96gw$SF{>Rd1)5^i-z;WDZ-4aQ~E zL_aC*XdEu1)@7`tBG&nthS3@r@;a5W+0ZRRL_H!FPUCgsulnpg6$CXbz+jJ93g5(K zutzM1Z{j5$<0ajA4GI$#9wY8ER}Sa`TeoYb76m8&VwTT*x|tK8t$c_laF02Uf+ZNf z;~<{18z%8Qh{M6P4}>h?zcNm=xf+0{{* zkAI%XIQrP!(VXH}laJq6UNr|Rcbdbrf!W%?k#MIuG9Py{6}ka|+m7g=ZrNE)16XSi zwQ2+1u#SX@>p*uS{%@9yk@2vud@tI7oKB+#MpFI@p>_|g^e%Za0ZVYVR1SsZGT6$L zx{P|v+cH~s`Nr#8)msf!=#^A=bs4WkW}MwMw7tkRs7@?nOE$VR zS8aU#$cQ&P+Xi#tA#K66Q0OV#G%L68ZEeA$Xd9p}$B*2_O+v?nCVK0NCXu*ViFHM{ zj8q}pKrVZOR5lRgFA?neEcHk+oxF{Ja6QN308oeBp7&w}!e zgw%+L1!iGPi`*yozANSt7XXBZcxUNsnWyZ2O2$Ba5n2iOOM!!Ag5A$NW)i!fYhm{T z8R$G^_cKq)KxwEs2}P)^fS+jhYbbY+ZyYd~f@wAvvu-oOx}BvDN%N%(Suqg+Qqqk+ z(2-}qVU2JyTk8-gH0teI11=wn;3=~pu8d3F5~mHy8Y*P0XF^L_jqPPLl2S)T2rW#9&`=Er zb6c=GuO847J0)2Lv{T|OvBy{`x5T$YQ(A*Wo6l{H2{A#XT7LNcUpS}_- z#7xI?d*7b>AI_nJYUcynUhYw)n=%hq0_Pksjy z-04_>o`{c3BsQE_>@=w6s!Ns zMWk3eJG&lbabs4+l?PXKf?`p@C6!`r!BUbP)wAkEP^{fEGmJiEbnQ|sdr)mrte1|J zV%e4Hk^b8L+71cUZ;zW`ZBqnmKG@n$5G=b}R+l=US0j`_R~81`EXXC5YjKQgcXP3X3%HIr?WN-_u0SY=B>xqgYhfb zIP((th6#EMiL}!AbnUlGdz}t8Rxf;GM$9f^1cKf{e<2GeOm5C=*o;_LZT7_;bD^pg zo)i8;f~!RiE6p35UjCN5MmmRw4U~nBfyI+if{;ZAITMsJK_V0EoHRvt?sSWt182g9 zVn0ozhSr`5GI;KdiP|#IzaF*)zQH21<_Au$6+{IUu{=rh?A)d;p zdkO|ZMo)I_p+-bnVN4mB5v-xLie0;jHs-Q)W87v_iQjN6`4dR|KKf;bp{EQDMs4ea zU6XMs)AF=ISwqz$H_^0QjcqwWa2()CH7Rd{RXd!*s*S@=LX&buN3Kd=!mW9o5hsD+D$QKV(pej;1ax6nnigl0+-0t7DGmha_NXC zl_7hm4Tg*g)CoFJumvi7GcT~#INr_bTW!%1MOi$BTS!@i0(f&agGyESR6EYv?17%R zB3Rmr8{sGDRrt$rmfm>1KKaLan8qnUTaS6w0K9i`rN4jc6KCp4y>(jRu#lcmybNAA z*Z@!Z*0WszZo<6dD$8hkW2{Rvr9vBH2jS*bi8Fb4ljpj<#=+>K>qM&5_6azdpGI^C zqd)IBvv3-c`HD=Lxkm}RR}WEZ>t?btl~kFN&AfJPh5?`%#Z{gLA#Cer9?n##k6_8pkv-omSwYV<`rpGrK{TD!|-c$H; z@%P~Ke&#D}l|XL)MtySsM?J979P}boXFc&IsAd%79WY3u)rtZu6T$I78ybc@- z_Ca)}RgHxWLG{ejorRnI@H^FYUP^qt8nN)ug*W9l_y@uL6!vvb;rlbHqPH(Nf^9k- zG9my}P>Fhwo(eU6|2y8C!vLHrlmOlef+uA@Y-eSh4*+FiBiI)w><2g{2dP?fiPzZW zG9VP$?E;eb{wKNw?lDb1|8_>o801w*NW#O%vJ+tYmH1wOZ0c9 znk`6{I9m9ukB9EtfO`Q8+wdX+9JIaT#;bZ> zU(P2OnlI-=AQu*opHsR!WlDP&zG2U3B064O_=cL$I)7h#Lf@NF9bGd22uM#$)9mO1 ze93fu8v6wxkX$eM)>^@uk+p(7?T(%4fHO0R^(8;>7VTIj_An<`*J?>4cdb^%2szrA3eVt=M?iPi!RDVCrhmi zZ{{WB$#rgWAP~R6$J$<(=6%Brs2H1_H3zf7o6Y=|%gi>rI}5QC*Mr+|#@AEa!adww z_|}Xa&gUoshG(W6l-3rMp{6=F6o=wjZleKSmg?LGXv9?K{tSP!{C!87u99Y#*~4{y z{r-jvSk~3EULW*|zW*&xPCYtNu+e2~sX3I5**=Hu)@UX2M255zuVLebn`Zo#Eo$LD z=#kkS?wdxM-o?$vrt=$|=Wi_Btc4GwF}G14djY?C;Vaq#+&OfrV_NHuC41FSb08b* zyFUQpX1D%?D%J4Wt#w@s>t}qRx>bx6=3>9bpfRPt@uG<-3)Ek5S#&E z_!F;jV!z&H?Tvtda}`g4O>5Dv^|{>oeX2NdML4~%d*BkO7PwAIuy4jktiNQV7G8%QnB!29cK)XG*A>=l z;R?jqkGmGWGILr-J?P#>4?H<=nrOUIb0ixZ#p#9Ffu~gSb+Y1**vE;k$Yr6PtfO#@F(HT1b-N!B1cCM z=TY`=!F)-y=DelvxOL)Q3*Z!sBhv!b54ZU?e+$iO|CLU|Z_UWWe+hIg^F4 zaUa)yS^G8Zm&4fZb6iE=sQvOuqG+O9U+aGP{Z{lbIoHW8b9Hjd{BLW^{F8;p$H_na z10T}(r*9BGXtOR$+b_QgKIox6MK}*PfXBz#>rR}BZ>`7q3ns*My78jNcpaR+x3CE+ zx>0B&2=DDN-h;>G&%MTnI5I{b>I1fYa<%9O5Js?X>UQr`&*V3Cv)9)A8!0vfSC6CF ztx$D9{bpdB^cQC}oQ?P>V4=Ht=DV%)$e}VN!~3l>q*sz6{+fU`pZh6 zd1KI6>z*Y>=FP$J4M58WSd>`&OjOntl^w{3Lj}5LK!t^yXT&no+B&AyV+sMdiQDk-H%`&I@hMKxupr~Bc?*7ryagMtiHy4p;JMlyo`1FJ&(HN1 zesXUw_^j6Ee4lj{elo3>o^u4h+MEj!0l!{(;MMiQ7pJ}CHQ>Pb9ViLGcPlLI7d(T% zbnlD?aX!2gsyr{FAMl8BH%^c^1sLloSuuw?_#R{~Br7wgp=sm5En&%s2uf1+^G~(B z?$J@NcU4EBqtl}o*=c2El&|b#{=4nCHuC?-PE+}%{u^Fvw|+@4=pa3`rTy|QEw5YC z?@r1>MW^gizZdMpuQuQ_M4ji-#;u16)+gJv0k3HT)_RZu$rH)e$Vww^G({g z1MqiWrwzc12Lq~6M^mC@7n^pWZKpP%8I3e+13pCJWh1P{ccSsXGQ$hnxXEuzBnET>feUTFnpY zXiBuq`PpaB4;tb8An~$aT8+#6FazfYzwOTt^c86X2U12cWHWX@Jexq$8Ghn4Foar_ zJBvOmJ@F0Jci=OSkX7Su#-;-r6ECRV_mm!g^?p2Rwyv~0UIPeM2llmDEPi+Xl+`Gv zo7d#I%xn6gnyN-@C#zmZq_eUfe?f98ri18#lC@cd*Sukv*ZgUbZjQpcem9IkRTFgc z?n%0N-xTNpPW77CO!pd~yLd1u2qLD}b#>e^*^ANL* zd5IO7f0IOxa}2|)OFXdYbuP!?aT4iupgptPiY)RyJ3y2s>CcxL@RC%Y7tvk%OgIO=kcJ)d=*Gg!ztb_y+9org+%VfbXsnzuXbU zcU94kRDnhWzTkWrs~rdM&7A}JoALP>qP=LAnnlh^ztsYFl0A|#-_Z}>n2o_Kk%#XO zBz}>DI?--`7 zoce9XjCm3<#tet9t(>0Eh)F}IUxRvFjtQuzXc(iWluK)B*4W_XjGekjVwXC~0Wr2Y zl(EyxSl=R{Ad+wNw^BSBN&~%58`(MU-@VwPUcvPQL}Q)L>(`*_C04W>;=T{5Hh1;{-~PiXSrx z@vK61eW^oN@e`&aegNXxb!49)wU4<6v11UMt9mj?VyF5MI~}o5<|0t0NbK}!h%HAf zOpc`|Q&r7HQxRW}c&PeGPo}H*GR`oPnvv8?l9oD3Rnih()gY-K1_dQg_NPqRC=08E zA|$|50)ewc5-R4XgegdX+A@1pE(w)Egb0^qs_Nhp2`_R~s&E-y4ih=5Rd@-7g=nu{ zN|*fyL(3fv5~?8bq2_G}nUy^Lu;M5Sn!#lfT;yn$VA7Xj8eK}rR;NpO*4iUiAEm*7&zR0%F=V97;}=`2~chk@meAOjUq239-D z7^wU}N`)Ouq*Sm`f{PsG5-j^df}qtBT*5VjIxAVS>@xoG%D*7?7+K~&aGAnrp!#eX20zC61 zh-D_hvWq3S)R8a2B?DM;kz+7RmN^($?ij{EMLq+o9YqXO4wq74hc2ap!z73WBf+wv z5?tz-B*7(vSrWiz$uchk%N5@`d-cl-9Btam(1j}xc;8MpD2`-ty zlAxh1SvHOVP)-Ia#xMYS$v`FD1#|4xQYtt_f*_6(EW1U5potP(GKnPtY?dsW!2l>A z0~OO50O4bx(l4bzK(NdJkz=HV;BC%E-XhB*>?Y*-G$31cDxI}@bh+e z;hs1==W;g>;?%n8Gi=_@$|(L~?_PjXkmN#H>dph)esMtOt%4O}-GRYp)`hA1W(QL4 zJD_4kK@XJ8zEscBt zcp6#_9r&ddz8xQRZZgnNhkif$!EF#<=Rk1~2l_MlKEuUG*Uemg@)m97(Chct@(>kx ze{DXS8{KAek1@7Yb9@|JnmdGc>fGE_rMW=s=5`?A=;mlB0Htj=#QF!ETId~QqUxWq znMSdE@bfm!pM9J5W_4)0_F7b1T^;DD<8|zu&C!eD{s|CSTl83cc0qN#uXk2U0c$%Q zwdLZ1BQl-OQs5n@LrvKQac|D2yh541KC6f=z-aYtm$5y%a%b19L=A^#wiKwDx;1Lw z4$1utgm0Y0$oSVGiLa{8mYIJ2)Wqo10?$Iq?Sy~kn%M_~n9vy^yFYy&DsCwN3SVF$3e>V1 zc)9Yi%h>0sL|5fsbT*FYPF(q!6M4DOh`GRg1e#r<@v0`nX)fu9&Ze|d{2R(e`=W-X zvbt_t-k6h(A!O-mRh{v8RS^;UpMjQgJIKSMZggweIww0N&lu*p!p_4JEb_dao@WyC zoMGpAT;-`s&oh;I_F?j+t)R;DU+H;*%=3!My+ zUtp!@BmIi>^lGO6yGjq-sn>No3GElnxe8C-;t#?{UZ0aaMtvT}=T!B10G|!&^P~H4 z&!j$gAygeTHB zFdgsTvW6Pe(6j*(=5lEx?tc!eC7&rzBNs@v7A{3f3zkq;R=+?1QdD-!ScfO=X78|8 z=k6|{O+nnmP8L%au1;QP7tUtR0KAdUmH`-Dw=xO$k>;-@qHvCk@N|++^FLCe0w3w- z992e&Izw?hm^&I9d}0h;WQ?I*kLJ zphiB5T(6tg4aS>!4Z3;nFkH7{?T#+;8tz6MNXt=$*SvXx7T$rOE}l`Ur(oWK~l64&(>&bRaL+N z_9@7=^zaoD^`QjI8<)6ua*WCOHye}tRZkv(w;;_={H5iIzqC2kFi{)h%5LQ!gm`de zBi4f}8-9b)GXE}ZxlmQWWZv9h%kE%fezhd&hHBF=Ng?rk?k1l_AT6rRxx1|-b{uD| z8RR$x{z#kOL5zGMejVC!b0ey3i)8suMI($}0D|4VH4^QGOWq?bc?C_?k1{p5?O?T) zHQP57S=S)38uuRa(*gTau6$Z4pLiocaNB!ENn! z&O)h#2&oS8O4{JI&+Sje^66Fi#9MKL+qSAtcJF51de9o4wyC#fYoQYv71F$ZhHR@L zav8=5ljv&f9^Hcg42dCM-bGrvr-;w3Z;}L5`Wr}(ZO8h`4=?hAk>_XvCwm4J$|cmF z0jKFyF4aAQVkCK~Z!wDTMZVl44JD@v=|2+t6UW73BG<6RS!gj`ew;-LV$2WFi5ngc z*DVFJTmoTXF@%OEYPkLzYa85;aVX&l-C=B9NwYXs-pA5bTn+4iCq|Y_|8Wu|)TUL@ zNn2N8VHk6~>eqPpRxBqKdCh0ZQUVXX4ipDKNiEUmdw-osa+KA6a^^3(=WAZ`3}IfB z)`paqE)&Kzx7>VzRU(nBdC0O2z$kpZg*8v(OKINk@#Ft~vXP6>2oW6`&NY5*<^BN5 zYY%F&xBw3(@L&QDrvC{M;F1Lgq99;iz>({ZI^)lK%vFm~n9=tZ+vwi!Yb$ZKg)Cm} zF&7d}V`DIqSGmpN)v>JLx&VAp5cdOtBowdSq?bOX%_0eF) zIFN?@D#PFCG4BRbp4(Jz>R`&{&8Uspz2@v0<)JoTsmC0kxbZw8#)EgV!FfWZ``#dx zs`PgxJ-w(O3*PzB53e~0S{EcnH{sbv9PWS>pq7#CAwmJz-nQ0~O~UpN2FDFKZ+iaC z_|wl>Jzb*SgoOFwTS&McAIQ>HDxOGMcMT*997q;8kSuT@Sm4KH{_XHvTFB9I2EvL7 zZr_dTrk&N2=rI%shLBsF>RWUS00kY?kPZ&a#^m}7XPXr^i2f1Se{Uj^jJeI2O)Z#J zjhJ0j(VDO%m23%4yaTww_Yh@&C!K!ETj69?heFVTzH%A|wW^WW$^t<@j|Q+(_R_*1 z;p6H;rM6&^&)fGpNxe?1`XfFNmLD;}9I{=0RxU=WUOKf%3kCUPF@thchdi}ud8{v! z)t9IFr6KRv_(3s;QYIb|JgGQ6S!eP){|W8Ff_=z3 zyg-xTwYro9YFKG(I+_DutC-PNL!9ADx}P*^W{{3g@Kn_6N{G>_UWXyvmSRGi{JVjq zXVwdnd?OKIXFQNiV7|{ZQ(nOxf_TH7I8s!`LvTv7y>43Vup&(^;5XNebsnSxOJj z!@SyU&nxYnUdB}rC$8#OeHF!tDKq)!7Hv##ZOqg{{9la!$Kn4n{69^AFcpQh;35AC0-H?}hhnHkwh4=-aGrrz0reyA$=dL=SJ(+$1F4hIu` z=3I`y{qOZEdZ=EEWZk?hp96?4%{#|yX2H*Mj$?E?Y1ZL8Hn{uXq-wk?BwL)|vV8be zj^iR2)J=Qs~=`>nSlFddltP8Nzh+W71gvXdNBi2j2Bh@+{ zo6M!a;^YXCw})bvnjXpe*WWI~Mb=M*t$mFMQL0hQ;oS2NlYo5k@ekJv0W+y)%1wm?bLip^r*l>)D?3~(&Z{4O?&_pI;5 z_&z`LyVxvNs_$a6xE$@5!K`50EH1+PG-Yv^ipN>%(S^q*_4s{MXxS{z!=q)h7>36M zDnl{yS~iQ}cwCCq*o`=731Ir*J*_ihvp7=$qg7cpi;sSS4jXy9)G6)Z1)78!1UPBXkM@dr#C%F4dQ~#3A~iDkB(!*E@OQBykJL;zaQUV680kDlr&fLC`>RbtSx43 z*w+bYg2;$dmE&1`p}&vl_&Yf6=5$OC!fLUT?;0B1_@&iGKeVwey$!F~>tbV0KKuuhoX1n~Ljs5fxQJN%4Lz7p#s+lb z+6#)~Cw9qjoE|<08Fu9cZY&uM4Kdllzzw$^U0YPgOO`H24X^Avc9Gt6VA?K3LITdl7RiCm)Kwa zTE{LNI@^R^tn5xy)|KD`fbZWS_%|T`VP9rMQ98k+-!$e$En^-Ar^!`4KK7-U0#c%f zwJ>eJ8QA^_c$}3l4t$Y3#B0iB+%uD_AkO1Ao6~m^*@_Yb;pIw*ahey;bemIejJB6x zWi%RMW7$%-@kyKD*o*k@^tX3u%bPC>=Pp9e9p3QpGx;;NSr3O!1T4w$Q)Hbg`oY1{9&E{n?Bu%wk2cS_7xDv#;QPXJoDI-xu{aSbf>UgCXf1K?NG)!n!_u_AG?qY|}o7Q$etL<~x zcAnE1flzyB7rR$mJa{>&bF)8D&7Q_)bJ6GsRPR6?T4=qRbsfr}D?1A<&fxAWwYvae zkRm}1V32=0R679cHlhe+$EVfBNUudrK+>8OpZwxt_O5P-+{(c3@f_rJhNpEg=z5J8 zbfB8e7|TY>(<+e)DmDdM`Z$f(a5M#@lawyz+}Kufi8<;kwLi1dcQRxPR^TapP&uMj zl>uMn=F{S>S`KT`N4nX6-YQHnoSYrPnRFaqO7nh#A1$;eA2M3W&R1>%=*dQUqY-!L zQ!TUtU-cFEB>y1k6r-ut%xm>^pWWBZgTIER5C27cv!$@63MIQQ`3EfpaJ1vMQUt86 zda*a8zF*$bM_pD5fvS-#1&drGq#tV+C_2WwFJ(INp{~yL&qP{mJEnxQzLz8R4~S;Y z>JhOqNN8{`rt}B7y-*J?oFyqwk7J7AUV?RYsX2XdaNoGOT6hxanO60j=}Y5SBd0?c zpM<5@4I|OnJ<4@5HeQ8vz2Pt^7?D6$%y{Br2SQn_!@i)RiH|`JmB&N%GjNq?k2W$Z zPRB-OMYFeb$IlC)2r#m5Q%kNRb~U<*ckEO~>+p^pOz+qoNT@AF_ay!=bA6X`syPWO zN}X>|;BF{1Rr^5ux(Q9S&i|R$6sq%@LUL}S1GoMN)tT57#hm9bQ!cG~O!VZ7@)*tQfy(Imu69yqDNH4sEf zE7F|4+Ral8@4$YO>Rkf|IBv%Gs)5wt)e|Q#)nRSS{fqG^W(k;ydLzNrn^vRVP5e{G zKTBafpXNs_G3Bxkw8f9XM3X*-`(Y*BmTQ^lbMw97YqK;@a7Qanwa>|if;}g{9|9k{ zs;|tan(fLjmcOH&+L#>tKe;ef>-d0I8=VCnR0x0+ixcM7TZFlv0wrXu*O0j(y0Re0 zQY9b?T}e&{sM3?6q{b)MEQx3l@>?k~-c=ZXP~q5tDW(KlWP0hFjV#?Jh9&z{mFh+m#^Xo!Q?bp!E+(_u<%YiA$SvRemi z!!UN&q)zN4jP&F@!)7Je7~U0M@tVhZ!WS!(GxiXZR_7e2aSx5o_w;jDUm-?k*@tDY zbvXy5jj3FWYHY@lMaGdu#*szFkwwOl)s=A|WZK)%$BE$Oyv8_0sYmS^jshkJVO|gtEo#n{4H2 z1fV+n8#42VE#@6N&(kW;yv#gei}{dZMQkxYwZ4}D zj?**0i!J67>w7W2@B2YUd9lTOM}7C-f~|!5zuhOc7(A}U<1}SYsl($e^|%U;P3rM) zsLL|Lyog834D%Qs7pM%sMqbMd^Ee)tA~hEJ7swZWFnCYvhnQiWon+zE2V5i1&Bzm* zj{KSSmZqCbhf4YCTAn@(yJ7>iP)+^c(}L#@h39asnJtlb|N4WTp}ue(b=4Nm+i zz`zhsZ}C>Nx!|CM|3AV1t#Giwb<>{UL1;L+preM61JM+VIgUzFEkvaapS}I=y_)B&+zE9rFt@-N{3Od6d?VmYyjotd6MD}_w%#+Wywo~*SM@S5 z*-7Ea3oiw+K=u`dXEa|*^L~LJEyNQg$p%ND!Ork=u}%RGnSglZ){PUF_E3N+Ag!5U zCSxR8wB?Ve;QI&RmjJH>dDG2R{H~j@3cgGYQ#XH@kLbiq^cYXv4Ir#4;JUMzSS0uO z10E#U?2lF!;}Ms}fcdFK(<mgouO5mmAGmUU;ejJ?I2T5}mRxQ5m06?P)@1v}w5 z=}}v-(#_*^)0Ib=zI0`x82HWd&QZgFA{N@tlIDg10Eh zLDxt`KN$fw=LUr+QxdFD*g{u+SUv=7hjUEI2W!@4z+&4hde7r&n;ffKc zj$sGDhd)fd(>!nG6(D9O3p%3vBV0B7C4zIJ#^y1_#1(Odm6>IUeEE*Rt+}y&sMKRx zvd~JJCrF23>YU6*J#XRK7G3n!;a7l8c)2WvmmPJ2m&t+`(v*!CgrmmsPb7F4 z6*Yw$$pa>do$*3piwJ#_i0$0>P2p+M2}gk^|CdLFrwJ)My|P;HG+SFfovut(GC^%z ztyBL{uV^q8@vkO|C)h|gFV^8I_1Naj8I2)5KXH&uY;I0FDa1}`{TXXFpc8N+m ze{%g9hItqZ%VmS#1o_2}KMJ&t_}5XPwKRp+8*2rvw+l+iBW;xClKjX#DNq4dIDwK4 zD?1Ev{sL#c;-{y@k4HjID&gdKAN!k-Es>d|)74P_V-sLwv1hILl>VR1=ieN66bSt% zJQ@x+`8&<$%TowFW>wmJ=Bi{P6k(RDMsd07G@m6;I-VZHRE`aXvi;5AX?D?3;OUvx zqrwyS#H{ro{)*sfju0M~eH%|%ToqT#t{VKOdlfX<>wk(6v;6(xVr{3#N8p9ziB#Sa zprnO3TpQIB@tr}4#hBEwzr+6V%^-N-u}6Vm*XM^vFxTEowa~}BZ?#RyPr1I)9&A-7 z8mSdf8^8?2#zmc0O`XriM(jDO2wjPawa_0iG)YS#m9POw7bWb{m3QD9lra0V+)t-s zl~A`FpcF6a9^I;3ES;_mVZ^&Exht57O4pY|4v!og2GJ9Li~b0Rmp7En{ApSTaLM6` z)~kTj11MSih)^<T2uLj7$pCa9_1&_RuW}w!heJ!Bv(&#>F=JeD=GUuGV$M(TDR%Np7GWJWz=jT~j?381I2 zz-`XVBi2ZV$|Kgum)wxqS7Tk3f66ng#XmzM&6$JU96Fd)pxN* zjz{}t%9eO89;d0tv++1fJ)VWfCiOT9by?QPlkjL+BYWX-fyz*Typ}aGACF6s8oK~T zG6Bbzi!yK_*2p3ShgM}-Bb$*Y#v_~zJe_`i4faTksO2~aH}Ntc17=BX!5q>o`DTyI zk`g49heF|*ep3rS$fEaL^)+17UzMY$B^oD= zyF**PY?$Q6#_kdlUwgd_uQ?rF3V))(1u{Yh9F!!Yh#_%Dw5l&r9gHq0h?Uf~XcprY z7ES!MEt+_wMH4^f!V~bfZ4EAnWvhW|F}=w3vP)2d68+OGnk>nkdMT_dnoP1RntU{m zKl(ym^JJ|yM>LA9{VdbVP#iUt6fgS9J=iX$mvLCqv77pV2%zP_*dpQ=qZc|Jze(%b zL8CdtDmWK8Ulz4%*MZ=U?1F!lRm&@!gF4*W@(1_{@!j`3AqO~7(iv&Vb{90dtK|z^ zt~xx)bA(#eOMsW2gCz)d8q^orzP8gW4G>+2QLu$-LH4 zG{y8eii5l0?~7b;dB8}nT#V1+ged;Lh@-mk-sQFi-Qkq2&8pu@o^oVQnJhnokxDqc z*O)PrqiFf`x{TSdRZ3oaCDOdcEp#pf4J~0BTy0ulG=>uyjxn2ao5cARPLc4mN#ZYQ zoiyHc8?Dg|AX$)Jv~y7@1j>#MpGN7*hZBNqTAZy!+P;}!QhWA5dsf8z3cGAfg?Dl} zkos!{Cv;T-HUCHG+AlPGh#{4gm$ruJIUmUy-TlaS!AzQ+ z;hv>}nW+|LXho>LkLCsGb8sz`;8zP3hTzGbjv;2XIm2DFHDIoPlbG5F8a^cPr!dub z=h0v)&C+n$i^P-`y5E}S+VV=tb6XDm`5qOAXg}IW{ll?eCLtbd}K(Qre z9NCn@aqPW!z|{mSe=)PbEU`8hnC3_b*F6a1S1bf|@EfGd3M>IV!1nKO*7K0ry3l2s z0b<7sLYH@1bV(CL^?l0jV9!`szmll+ohl}X{=`~+fVoeLj}Rk7TGGjJSxD7)I6Gxx z^-0*HoO|wFTpU;@>v@ulQN8^L^Ib*iNT%11Jnbn@{ zKcOWe4;Gtm5K}wgBH05>ozQYLm`bxlRQy>mHH%%uOt&{6(hU&Rk1#bg)iGsldW0oH z&0pr&8XqWTh)*S{nn}f-iLXCx4}XIb#W#r31?YYcP`d8J!=Mz)G0YC1!HB|+vzA9ut99n9{ds0)r^e&9>v=#Ed#{wh25qksvMwCB&sWH z`vcKx9lDSmV2a+!?cdH)Rp$=YC^N)db*ibW(2}%3%!Vk^xiG~t<@%f^@-bkd0C<&U zeNgbpQLctbVt`Nxs63S9*SVP*>dMKsx`C13E&GEy1bPU0Azd6>3I6e0;cvPkYf#-|p%=ZsNXey^NIz-Pqa!#U1%ni{#hszB5g`MG8y3{~a z6tXq$QyQHguijDceSYX}j4&5tn_iyjFF%Je1V$bcwW4 zbtcSl-ylzzBOLA!!k7Fzg~X$$7d?7>~Buu}`1!M%GQ^PFY!&(ZNM@Vd-#kR(E!jL6)v=GDu8wlaVYb4!ID`%gp|P%b1B-trjIy z7?8`j0eYu23}#?6pfn#D)|K>;fjZHBSCh~t6;Q+la~myDF9+yQDq#uwzsm(r{rSy@ zA(yW4j4D5w1rKl@3AEw~(0U^WbDYLMadD*4j*BdDLiT{~TKqleyUJtME(Rb*cmYrk zU)U!&0@i-_HD@EphABy=e8&O4Ik?(nK1--LZ5M}6xL2LqJ09ou@|`O%-yLwpDp`kN zd<=D!o6kyQ2D6qvAueM_rdxgV^Tf;6sE%g6H z89f{(pf009sL^;2#8?~y)_Z)wB71KxDt}yfUq!QC`qs|}0fcg~V;D_MHXSK(m%q86AJY*NNB%C~O6}slx#acav4O$5hLg znjyL|w zMaiG1D0%)?;UCr^0=d8kPNc%EgcAdui_wyeoU2hy{LN&oy41Rgyn(%RqRse&b`iv~ z3E1V%LPpFs3ZjTR23lcXunqZt7BG#a6trC04w#rB=ML8qmjLR$-lr8p)`W2sEafcgrc%W6*kL7XJr5 ziZcd+Q}rg}j5VJ@*sa!5amLn#(po^WiZk}x^vs8eGggsaIxWuF57X1nkKTR^Bkl-w zL}%jJ9$u}AdvSnO_J4ZG=;W%vMc@*q zjYC?7e|baRFRQxWiR(2ub0_Y}ASit`c`^T~a{=3rvGQ0uarb5Bk)60&I}aC0OqH86 z^Tw6j67?k;4cH+*nz8B;B_AwddWhZW^ z`tH98hXMX_-+lH@+@J9{O>LzUTY_A z9v+t>H9i(V+<})ggvvJDBZDl2{v0?)p39g=gsrc<*ARXosvB>4j4z$F7G*rl zKf>8||C{)ji!UgMH}1e>X`xT>7H6J>-<8VqU`C#K%yTN{j#RM(b=1NB)1uDdg;{$w67i{H0G4GY53K3kU)mZ3z6L_fD6kYHv&Wpk& z)eNbWx=HmY4i}NaSPSZ1y|^EuaaI)WgXj&!xLeC9YyvQO?qK>KTVxkeL z>a%aB(GZ@MC|QRrBlU{5DOzp6Ue4g&VqYG4QK7MnSTkA^8xoPyH)nqUr_SVHB65vf zCoZV=LI-*cKq3PoT)11=Rvezu*HM$gZWpM{1l8Gh^3{hZ$U1`i=4n-5o}-il{rDCvJ(&%?j|0?>YVp~`&ZXvqgZ1^df+zdpCf5kJ05 zWiy`!`s#B}z?$iX_%RNU`T9E>+}yl qN)zVKg+H%vGK_ zW4cBa!?V;`*^$s3j(Hog|Tl)f{Y*MxS; zdpdSsYr=D~Fi8>|^#`~lbU;gmWq zVnn6#G3PyyNKSpuS+LZ$Vk;j(UM>nx80j_kMW2-1aHr0B9|L(JG`Vs1_;nrxIip%< z@kwDJwVPE)>y3R$Q<4;Q_e-CQzHvRAh>yp?8D`5me!pU$b-6GZ_tozI47lPkR&(%c zi*NQi65DliV$+GI!*9Ab0<9bOw}7yWhUnaUX%`&H*N5{qMs|rajjiKQ$XUa`@t>mT zA{MR7C^{)sv=@uUr?A{;DaXHY_?J(d&T`cm<@$CmH-P1er5yjlmxAE*6a|ld3>5qf zqC;{42yH|k@FsR(-}U9@{ZzIIVh^!ehAJ6JRPisycNplwRW7JiG4%qrM(&=C2WteK zYW=Dmj~+l}{tBH0zu=0|6Ar&2h7|-Ch9bLa)N4c-+z{MHs~sBq4fai}&+JCYCTDe_ zT7F9EVo%C`-o*XGf$0&w(g$}j-mv5ln`(pv)2R^xrenX5eXEJ9Sh^)Iz4Q$|C>>&H zOdre+4B`_yJCE4sU?&ak#aF7qgy}<}!QWavzzB1`de!tpjE-vb7y)a(dLlZx4=@HJ z16SW?NQ6BL=kQn*ywrHjThURnZY74Dqg!?%ZP)Fuca}k)$Ut{qn z;xsxMpetT2e2Trm&=%I`9*aKI!CYncK_1F0>d?LMj_4S60gL9~lDcXkv68xyO$vVO z7=sBkl2|LGke=giy&31aXUu3Q%bkIL4UU_CHrr=OHfS(d*VmdB6?Ia397Lm6C|OAO zq_7rVZj8XkcP%2a-O&d09lf`gxMtFGXB?rY(F*`cS`W3_Fi9sy?S!jA;O;D}gaK4_ z6l?M9UAYXlTlIoaIbEg!I5sIY1MmqMA8XP+_5l2Z z%xMUJvVbgCoK?Si3UI4Cvwu?Nvn!dAZZ07Vp~U`wGv`0s%G1 zEP`-mvva}8`NT>0@u#53SoUc+M#&ZI)R%B2$=kS4B}`wW!^nFFd3wk&D{u#g$GpI4xFH`jMK}K%#9~fIQZJ}7^|^(P!1!YS z5IDRIMD-q{S7JR95HZ-{iyQwFo=rJ^)4Y=)$0IyXF68(Qk>l(91B@@6hTmaH@mmq~ za~MP+IG~AW4iVkoA)*j;KschUE=Jn$gBrnVeVc&9E9{Yf<27KWLga=(y;=%82I=ZvUzg1l`qeC zHS#qf-`&iY$9!BpqOT&Ka@)im;dY%2s@Z7Puz~0?W8@xibWAR^hbeI`WOz|QEFo`t z-Rfo==IA+z1JpFArexrP#q9hwY58-HnBPP&wD2^sGa8BZfj-{wUS_;Pxyidr&NwSIg_Rg9YoI)$$ClP?Kp4cL*m>$?ilbdpLT+ zxpSktT2inm*THp<8ByRBsib8;VvyxJ3mU2=U5CyH|51LjstoRG4{pmZ*aL??)xvbP z@PJhbE@Z)K7TmTKuB64vja22DOE|^QfTn&+n?;aK?Lbp&oz?OIa7y}ix@@A=YI)n% zUa-De9<}9vS9M9BYxo@8y*jw7tN^D~<(1vVj2Q<6+P$_hf!^N>xB{u(Q~d)>zhXTI z_b=6L|2)`I$a64~3Mr$mhP01k7Y(5n)XE9N_&0dO&lB>quv+~rz)$p2sM9K7CM;fP zAbQEc16ZKv)`6Y zB;$TH_^BNz^=*s>DY!nc9Hf=QSr&MJ_Y;&kgL5%Xp^KrP>&Bv`BD;ZNjjaeMlqaXz z5Kb91rq%xaCFBoJNd!B3Yxh428Z@w=4Svn>W2LYLTS@5VrnjOdx;|8g92L)=-s?G*9vbXJ7c?P~q2#DZfdBVPS((9+c74*S) zlshDy>9U4Jlbjo*XdU!L-)gapBv$Y{eO2ad!_?_S)X8#a&hA(*gn`bbbD`=LUOIKj z>L+^EVfT!8OQcnCXxx|?xEY+^-oT0NJGMFLaF96YPk41dyzv#@O&J`k`eAnUgY4@21YY4dXZdDmwU3fmg8Q=l zC*ql@!F|1bWx;*De5JvC`8blEkl~A;8QhoUADxzGAoKKNp59g-pf1m*gN9%}IT-#S zg=RG2N;7abh)u2^sYJwRD%li$7&q72A1;*-?i#OI!|r>>){xR5A?fOtV^76a?od3x zfMV0o`rP9kf%A*Op!`Fz|4$)ljmH@3OuVU5eIGOEp8@?~m+>z~_Y72W$gpRZh z5>vl{Vgu^~%cmB49iN=Wn?_^e^+dh1v~~9X=wS(F>@><@u7qWLEf+`AnnSqts4bfN z2ku}p)>L%w@8z*B+SFlj-v&N($9?~!_z>LJ%@3UjHC;?2R%>O#Ah_bY(OxgJ$wNpo z6e(kFOoL2_FIQj^;;A;oBW#F=917y+aZyaS>&2t|&~=nh?H9jfu6M{Hbpig29!fjW!hoQlVPljE>xl5=#!arm7ar{4#M;W*0YO`wor zyl~lJhLKYTWA)poEb5xwW})j=K6HmJ$B09W)$ZX(7^^Plx5nXw0rVkQYW&oP=&#el z(^g6uQnzYg>y=_muG`q%5IScotkw8O30uv4SUTWCJDDLmwW>!>0gHJ>CmH+t)rXos zNAB2(vUEuhIuXJidL&SvHCUtg^KetE%;H5YgMDaNA~bI z#Z>G(VYlke^W^D(&t>mc&9`=|$WSb3v0L>q-r~%Y@RuRg%0n`-^Z4h=PL+J(P8EZ_ z*x$4e&w(j-9{+UQ+oM%&9)*UnsAj*oqc%GE~I%CGh+^;+_l6N@pBP7iITxo<nGK`Srm0%(3AkHfzbL;r2j(&s64!2HBX%_+r5k3y z!@Vs!fyglX#=r{7+M#f&F=>zP`<#1FT4*;0*%}x^SRZO6Ne2_y1-TaStK|UUUpe%( z@&)3MAC-}kG4{;cdFyHwTfjGFk?pH}(dDgs*)((a#Da7o#4~SB2h3g*)r{E;7-8f~ zs~G!7O)@v?qmLLg^2sZ&LEkQ=buf-w^jKs0@amJ3DL2Kx1xJE zH6VEqZ4}c_0_yLJo`9J=#=>k zr?Eb5L#lVihSWZLLkfe*CajS_?HGzj$6=Hz1niP^qApDiOy~_eb0cDZkW1i}fDg~a z;mQz^gqU!sAZKGvQ{_IjCnbAvShvy-TG4g@Z$!BiLq^NyH}ytXA$MQ&99$t_%9|<7 z2%|_0V`Ua-_r~s&P?oU{=U!QghM}Cj7Vm;JCA#N+j^-+mGAC zOJveAyi*pC^1#vy;H|`G{731xnm?#_Fq~ny&r?=XhbOu>7RK{x@PkZ`HcO^WzF&gp zW+N&rWy*f30`VJ=lH(taNh(!np{dv~#dn^a%91gTUud!4V(|SFS!w0~)_jVr$x%#I zbntY7k{%od6cH3YBou!@9H%Z&ly(or-6<%JL09v%`zN5Z5gLqH!~?%(zqg;b z6{^-Yw8q0Fxz50|Tv_jlmqR&R&ZOXmLT9x+#c^Y;jVEmCft%VnvVt2Bi$rCjqlHxv z@iJ7}pj4Wj4}-ImgCjuQI~-36oJIvsvZ3W;ct)CIPE)X2_O+_TNL4HUa(oIlmZ>hq zRwJJcr0+vJzkf5jM=Mx%?8&qYTIdJeRzA7=%B?zb~-$y_gdIzLjAPL;x_QIs?IF8ibHu+WjjS1_@Ic`fvxavK{TR7r2bG%lLl> zb)={eZeq*`0U~tQXyOMkOe95oNH7@5&sWQ5jIgA{XQjF}5nqt=aaJU^y2+CTU7o*R za6L*%TKs&%>pw?ArKptANl@vMkTLCRGC)Orx1e;ccK;Q_lD!@G6X|W>p$#0f_zVI} zs(g-^^7pj{B7mu>vSh{2WfoHFl6-$Yu2#uilIuGzv)Eh7V)@onnQ1vV_DGUH+`R>5qZ2!4-Ra)p_d`ZG{ovzhJf*pBt5Xe0L-b>NG7-&|)0OE+3 zp=gfpd}Jm{!PPETVWBby=?i>I(US$S78*?e%wT|sqF8vI4G>r>06IB|ra~?BH3V-o zy$m&F^T02{&9WF;*Fqm6a#AvHKBC$qFV1a*8u<&VtxJ{7SuJ3DQ`voE(Z4;kSey*E znIm8k;U+_~Q?+Hu1jKzgGS>75nh&6Yi5y>lT+{2z2mR#YgotL1S(ftOzX^>CF(Ry> ze?(g(+fU*WmQuMbfC?h9-k`W+upXammCRd_hxGWlNU|%l2;gKuzdpD($M?3CwbzPX z%-XjL6sINod3XY2HjF1{OO|i!k}Px~+cz?JFpn4S9d7mo4?@M5N*%(y0$xR%a7YC! zq|c4N**;R2MIvVvF-xbKCZ>~!Xd^8nZC*nH_nLoRfPMvAa&fUNuO2;>6ca>Jm#StV zF-dKdi0=hgPm=QqF7wRm_f|sK=Glm8uto3$gugiU1LVTDsmX8aAbzRS5f|VSw(t>Y zfH3fm)BX^xWunIzVAJXw&KKevF7vCweza(j-qPs2u2^$-?(0K0fXCZ3P;UIC5E+uB zfH5yd12hd5`iEk^bO45n!h>JH59f_nbA1eGge$;JuA}$QZ?nvvw$+ETrpo(pYBF#BN1kqa7pFWC=Zy~!!myw(xS!PAnh~cN+OMX)aS+DEG#hf^VM;5 zm<$jT&wf8Seokr_9vj?Eji0C2Xw^daq5z8>xw|{qyxqapnqHH@Ho<}|@T>$F5TVdw z6Zzf2vM0R;jOXJl#&KmKY}FxHDL0}d86dV=AYLVnfggbc&&J=JblQ9Bm~J}#NvDP^ zc|Z%@39+5az-=PF2a7pYK*D8gL6)rLq*4e4)Bys)4Y|Qx4Uk-!82dHBp?ne=i#7pv zX5L+Em3Yj&aUA##F0sHru}jwUYU6HXU3|!_8MPjts_9t*cyDkQHWCF4R5BBtK?Yfh zIKRpwANOMC#^G|!G`gGBoz9RkwxDM&(x~zl3qPHzII|~J@TfnknALq1A5+Zlyo_{) zg3(h@#oek3e{N_~yb~mU>`67Rp&DOGXvoHznB^@*}hViBex zK=lgzT6w`p9I@x{M@7K)=Udvyl|Z{9F;(};R(gM{96dndKI^4`FF!_W_E%Z)uY#m; zxs{_2bGX|%DIC6uo$9triAYhLRt?yfBd(zuD#z?uUnIckvh}Mm@KgA3Z^CWRtMws0L0jj> z`*P|)`zch!$805=YFLjaSSwX(?xx_j)sgMJxK%Ip(27;{7_!*L*kfGgpS>vKHUz}j zz4+!e|JZ~dT&|^69mF=1Wy69MfW}rM^a-sS#=f2yCFa(_CKX;Lnr?U@jl?+9!t!v8 zf~g>}89swn)A8OGns_tUgBv025dWNPvZ$!L0GPySj`emZcF7&E?y$o+=wpOhQEmJr z5>6hhS=LvMjo`$}fW6d)PzQ3d7}CDLV^qT!K~-c0Mu-+8m+^Tmi32P0-?#0>z9{y9 zh659n7bq1_I-(b%Gf*pAY6zVyUza~lc!S$}ZTy&5$Nv^pSVxldU<9Z1_LgbE`8GuQ zTP^x?IjF^V7v;Ta+>Sd5``FKt{488x*Fx-!N9v2aJO}>x%Iq{V5@2XkC7@v~VWPA2|VDs1!TZ#{P zTGbk|tfUO1RrQgtV3kz~%xN&q9RKNdTVU9>H8Z#!jy(bZ%x?lvY^%zjN&tyT;a!M*6b2doc_M5{Uj55fzas|XD^47HdPh^XEn^bQL(P14qv za^n+E`}C~smO5^MqZ6WG3N*Qp8O zH9n5!H}6dtk>FlnWEtg{iU{;P|M7uU%y+z2bqPw@Xo^)}nN2|}2(1PaQ3&;*xSjK` z2#uZ4wHjx#8l%V6U^gud8o}K@%y^ISss*Etc-!iqLfrfK>K)tS34WdHo7$-#b@-}yIBuY!3APhDX-Cke}SJ%*(blAE@CAx90H zVcYN%X~{2W(q4u^1svJ~fb7AE{SJ9k-510~-pxcDe4^!_LfjwmRUr;Kq&8{1=`sz3@@eYsh_a3KbD8ybagZ?t{00`JuwJh#1*RxFF{uR@7KVDLT6KQ-b%Q?jgD zC`^K*c%r>fEKTNo3OOwR(n!NzkMPU&@nH1F7Ch$w9vhVSxt%@4B7hzO?D2?;m&`UUkC8=7B;mP%Lvw#yc-x@$1VwW-Ie&t8c1?NvAL9L;l14?PP=VO}aGw8|i2S;#bfqT^uV-g&)i_!IBL z#qFU}m^+UOgnkN=p$eg-Er`-esQNLOwNWWU)O!dPd_wGcD-Bu!X|!!kneRJ#Y2#h+ zplgixfzxCA9$kA8;b|Ln+K3K;2>ZSZ z$>9k!N`?0nip1k_;|%l+`s#Ntae^JO6WHBuQNUjH<^j29*MASV0@Ez|KySs`meYi% z4x~d|^qroh;o{UpM0JknX<#LUg5<`2l%?YE;+%Oi;js)<#XLvRkax|b`{)}4Z$~%} zq%y;23LXV%@qR6$DE8qDXJ(&jEhc^A9PrF>UDP4+q2=iUT%R8n;K#!k*jJwE<(+fq0t?cG9UN6ZQIyam6& zQCXTmtew^}%ky~RGdp1_X?lYkem?aqoRYizpVBlOqI~@?72vF`6pCMJl};VXj88!65iEUKM(MZkW}Qz;mL6!8PCuozlK_tEp|{pm zF9In$fpQQ483inz@1sk2qdlS6S5a=xABXN+;P$Xq2WmyEFj+G*e6GM}LhE##&4jB8 zzs7!^8f~X?sk0Bzz64}}GbrD-BOkaABia%CgP1+#;w9iNq}vsa(`vQfkL9B|E0@)y z5?l{8-Vl!|MCpnRAUx*87qv$h^ zm}0#$#drnA!(qUx`n3>+ZM%x;pTdk(v;nxPC?wNCCKG|x`(p#JqoAAJQOMfq^RN?7 z=+B|HeUfa`h;7g~6I7v$9wYH2i=^*3+vt*EE?WK>#1&&{r&4F<#EkcRtDG(dC3_U-q@3$!x3vz-l*iq_%^Yc*cWB_9uQa7L-K1u z8+^Wjx(Lv(JgkfcDw?R?5q+L?Cdx8R6G{fNG)StB|6I2>p%RUVa<4)~qmh{6;8M*^ zs7ASI#U9&}6cv-|?383H@1hm-Mag9CI2Rb)+Z&$Xtthif7~m#6immN0l7HKlB%?O1cyL&|_kqPz%X<#SSFG1j_WEFqT1Y5MLDd}K8*U$y* zT^QO}0AMEpOx8{WM(goiA>}*i`qIyF8Z;BYMHpITmoOSE`C5l+A|O^KE18T+OmV2Q zR0CTlcoLwg572;t;e+*EKrJPx4RU()>MT8{K`(96f`f3l_58kCs5gUl;^=f~)9lvR z0c1)IkM!dp@JB%*r3k!)647IsoUy>euQ16FC^FRC4K#?fV2@5Wl5y!{lOa6vxjp^G3g0 znH}ta_rL`hw@}@^r`Eu-?a(V%&DzRse>`fJhWJd0y2eqA8TT|HfcF&=Vo%`NJa>09 zDmjQsT&$$+-a%-A;;1^C8ar1C;Kc5oqhn+63^a>8-rl5KAZ(*@c-k~yVX*E>TQ!J% zj#0+T<5VYN+wl_h0LMh;^|-S%))^7$2o*%$ZX?oeL93dMQkJDTFQ(%q+6KB5n^Ep4 zEDi`J1HgkFBebfC@&N7S96Y2A6~ZnD>kbAxPS)k*uXl8*p1peLYMY*BrJDY(RFY1!kFAsAQ;< zf>W6m;;}cpiA4e7rSR6xdXAd|OX>_+=c6NE!$gDG%-VZ`yf5CY)+QBP2w}lz-Q1-L z-|&&tE()K&j}xO6yYLWAY{*JBQTJ-6CdAzQx!pv|YBVYUr#ID3(+C^*5GOw^oPk~j zy^m$81$U;2Oc3jjSNM!<;>uO^Jf!R{xc^QD*3e7J65KSKN%2#8iYafe*bkXvtFu(l zmDs@@6(x2IvbTPOF~@FsR~m=IO0Mr>Y}WXu0E@Mvi#7z%tp7Z`%bvN~rS+exc3S-- z+8fI7U8_13HNa&~dvLfs(K26_=ZZC`f@UqWEB7e?w>2dJwEf-@b8BDp`+!u*R5rZpe8W^}1X#Q9tVEsKG*z&~ z`>9Xr4dG10g4+gw8fR=QT7!;Rx*7W6Pya!VY+D#w@zx_1Ki2DY01qBYogFR-wr@Q6@@wmW zX9<(?#cHX|YW8TX0%cFZDzIU_fce;40JGthbTBd~?zXHIqSm?LLS)w~O+KLR#VnO7V+a|(QmGpBk~a^%d(9z}Z{IdiJ!cQLz<(7|Np%zVJrPcm@z z(2=W30@r-ZjH%UNW=XoL5$E-leOZPd&IFa&ajv8y<5Zo!Q`H zkCVd>b4Q19Zp-jj;@pOm6}DNsiL`N;5NtC5cL!mnJ)^TG&fyHKTUg3Of- z+fFUCR8*$U3O}^MT4SuBwqL^Qp@&QHmM5^tJjj|PsI9A0P0^m$^ayIQgW4W|wwj6! zrd53og|LSJU4&}5i&g6|q{}c)BCPEuJFG3LL0H@MNL8N^);1XqtNXCF#GCO&GOX<; zKP;%$*p1XxSX*WR5k)`yyONJzfQU_`6N>uKtDi%<3U%YB=jaoK3M3 zbW?A*JlB!Tr92cFwDz(DGzkW>cos{%8xxjmfjVA7^Gd`H&}kzqU{KTDVn5d(VMiQ+dVL zh=wUHigK>krMX+xr0sxJ)|4K*b9T9McAyJ~KGE9*=>*%P>O`-FcB(Qz_0kgcY&)r~N36;xYZP}&k3ZWhwr3w0h{`}N2nXtFs8QrDC7WVj;UmWLo(3TI$rsa+TMSfN<9Ueq zvpZwhx?<^xEIl)$^me=*sWhC(Ky8c0V`ex5&(I)!udK<@53bpd!tw!pvh$99+BEGn zL245Cmzu;4GG#4u5AmbSJ<}1NB=iKj?=qfQf>fA%YPRCz7MOXc64T71@S~gm_<++l zdLxGfJec8a|G??cv+%ad9Q) zj5~Zt8F%_)h-4qW7f?v!ju3$wTEv%J3m$02wuL?{JvLR3P3bYVBJP+R&OK+MvgE{s z6bOhIaPFR(28)<%oC$1MJ!8Wn59Jj*VS}3Bh~9_s=H7;csa3dUm|Dp!W}1_T!U}=y zkYQ?>o81=!jl5U}8W(G?P_hid)MDOnSS;Q{>&)v@Fm)eB2V5CFWPIEuU=mjMvGx+Q zSWd#S9{6rMisf|o!yL_eMxw8JfP^1j#g!N+5R7e)4tPN<8cf7$gLEtdr|``Yy9W6! zs#A89K^Qs+6rA9&zrKnu# z;;S)NhlL<5G+70oWhDx@845Ti*pR0_mZp8|0py7=M_J4(STLH~IQ$d0t^qe0^yhS5 z^cdc{a+3_liP&4%JAzfk5~OKWu>|m{XRxEAtSZ0zi_}9lcr+%JPs5NAYzC!&e( zR0rQ{zCVtP2ubR@-q2g6yonoQuw!oJmXKtUALIchmdr2A@_+HYb9;L5lVU44E&}4d zX>4>e;*0hmqPO8Z*7I8v2_JUh+$~_Ijv8n+j@ZBOhmLh~@oO~Vo_B;?)0{?|)A$!c zz4Ysj7F3ZFMH3q!X~s|XhJT*rlGul5dNkKTr{-!E z@zYt0Vu)1gYW0TQEi1V#7JUkTz!{6Yrn?1HH|H8JHssoy!AHEByDpB)H++M!8QAJ< z;Na6lrebF@zXuVnOY1<)>RSy@w8it>MsLc3azVVxD?a=26nYr=G+#c0w>QBJopsX_29lj?cs%Z!g$Tay?xH$M;zAgVN4Nn zICxM-^U zZp(r$cfy4pUY1eO?hJl?op%4%DDF0PUSf{=s1D+=GqE$c_PKa5mxU0CCPocDxOQE< zKY;U1eFd`=uT5U9c89xkv-Z%FERRES4=%(5{Ri&fiU*JO;znlC&Edb=4YZGaA9wF* z_f!7#$50-Jlcaz&=6k6;d zqYmioil1~>Ce?!dHFgiG7h;O-XLQ+44M~9{MRfT}LQZ~72P2blrO_w&Ng-&oqa6M} zVRvg(N28cJg{f(SAe&^6(7+8iVXWyqYn*D<%vIUC(7&o*T`=h}-Y_=Ww?>fW8I!xvTU+759yYw%coV*p#F3(u*Rbnl7fF$ntZ(Eyn1ohNHoeg?$H%|Bt24u#D$icisJs1Lxr0BtIC%Vkrmo@3_@4^G;L|L$K zoD_$*ydzrxVj*hr0ae>#CZ5WTwVvRPES%@{_bCr;(L!sHh;dJNM*b7g@rLV+;xYh# zvwa2lo8!xm_c6cT`Uq12!m+@{KQQ1-IEYrK}4GdZQ zRJ6*a-&bH`vLJrF{dg5%_7-ddJQzg};sZMpdizH2$e1VWa$`j`T+5oU{D&_|n67Y> zUa<#T%6Ra73N_6?&}EkIbeYqe8r+-FKp>uPCwMCN1u^7Wuny^Xxg9TePN#(}xU1N1 zyC^l1tj!+G_|O%}Axuw4H_A|(R@DHc*T639h^@nu>E7(YObV_ka2XrliaI0PPIMMT zEMfow`_41!abU=ZL}EB0WHdx}=j)Zb9S+>!RL~xY=HsM50yr;dh5Z`0R5ZDa?AT4J zUOfE}PkK!NokM#LFIJNIAL0R*o%kkmLUt^O>`%zN!pl#3 z=TCC_g;iL?a}w)0!2�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

xl6xi7# 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 diff --git a/source/cluster/wham/src/Makefile b/source/cluster/wham/src/Makefile index a35a3e3..693492e 120000 --- a/source/cluster/wham/src/Makefile +++ b/source/cluster/wham/src/Makefile @@ -1 +1 @@ -Makefile-MPICH-gfortran \ No newline at end of file +Makefile-MPICH-ifort \ No newline at end of file diff --git a/source/maxlik/src_CSA/CMakeLists.txt b/source/maxlik/src_CSA/CMakeLists.txt deleted file mode 100644 index e80d110..0000000 --- a/source/maxlik/src_CSA/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -# -# CMake project file for UNRES with MD for single chains -# -cmake_minimum_required(VERSION 2.8) -enable_language (Fortran) - - -#================================ -# Set source file lists -#================================ -set(MAXLIK_SRC0 - cored.f - maxlik-opt-multprot.f - minsumsl.f - rmdd.f - sumsld.f -) - - -#================================================ -# Set comipiler flags for different sourcefiles -#================================================ - if (Fortran_COMPILER_NAME STREQUAL "ifort") - set(FFLAGS0 "-c -g -fbounds-check -I." ) - set(FFLAGS1 "-c -I." ) - elseif (Fortran_COMPILER_NAME STREQUAL "gfortran") - set(FFLAGS0 "-std=legacy -c -g -fbounds-check -I." ) - set(FFLAGS1 "-std=legacy -c -I." ) -endif (Fortran_COMPILER_NAME STREQUAL "ifort") - -#========================================= -# System specific flags -#========================================= -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(CPPFLAGS "${CPPFLAGS} -DLINUX") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - -#========================================= -# Set binary name -#========================================= -set(MAXLIK_BIN "maxlik_CSA") - - -#========================================= -# Build the binary -#========================================= -set(MAXLIK_SRCS ${MAXLIK_SRC0} ) - - -#========================================= -# Build the binary -#========================================= -add_executable(MAXLIK ${MAXLIK_SRCS} ) -set_target_properties(MAXLIK PROPERTIES OUTPUT_NAME ${MAXLIK_BIN}) -set_property(TARGET MAXLIK PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) - -#========================================= -# Install Path -#========================================= -install(TARGETS MAXLIK DESTINATION ${CMAKE_INSTALL_PREFIX}) - diff --git a/source/maxlik/src_CSA/COMMON.CALC b/source/maxlik/src_CSA/COMMON.CALC deleted file mode 100644 index 8efc9da..0000000 --- a/source/maxlik/src_CSA/COMMON.CALC +++ /dev/null @@ -1,14 +0,0 @@ - integer nene,nT,nconf(maxprot),iweight(maxene),mask(maxene), - & nprot - character*8 protname(maxprot) - double precision enetb(maxene,maxconf,maxprot), - & rmstab(maxconf,maxprot), - & qtab(maxconf,maxprot),rgytab(maxconf,maxprot),wsq, - & entfac(maxconf,maxprot),weight(maxene),sig0, - & temper(maxT),ft(2,maxT),sigma2,frac(maxT),heat(maxT), - & sumlik(maxT,maxprot),rmsave(maxT,maxprot) - double precision ener0(maxconf,maxprot),ener(maxconf,maxprot) - common/calc/enetb,sig0,rmstab,qtab,rgytab,entfac, - & ener0,ener,temper,weight,ft,sigma2,wsq,heat, - & rmsave,sumlik,iweight,mask,nT,nconf,nene,nprot - common /names/ protname diff --git a/source/maxlik/src_CSA/COMMON.CALC-single b/source/maxlik/src_CSA/COMMON.CALC-single deleted file mode 100644 index 34f3324..0000000 --- a/source/maxlik/src_CSA/COMMON.CALC-single +++ /dev/null @@ -1,12 +0,0 @@ - integer nene,nT,nconf,iweight(maxene),mask(maxene), - & maskel(3*nnbase) - double precision enetb(maxene,maxconf), - & rmstab(maxconf), - & qtab(maxconf),rgytab(maxcon),wsq, - & entfac(maxconf),weight(maxene), - & temper(maxT),ft(2,maxT),sigma2,frac(maxT),heat(maxT) - double precision ener0(maxconf),ener(maxconf) - common/calc/enetb,sig0,rmstab,qtab,rgytab,entfac, - & ener0,ener,temper,weight,weightel,ft,sigma2,wsq,fave,frac,heat, - & iweight,mask,maskel,nT,nconf,nene - diff --git a/source/maxlik/src_CSA/DIMENSIONS b/source/maxlik/src_CSA/DIMENSIONS deleted file mode 100644 index 5d7b19d..0000000 --- a/source/maxlik/src_CSA/DIMENSIONS +++ /dev/null @@ -1,5 +0,0 @@ - integer maxconf,maxene,maxT,maxprot - parameter (maxconf=100000,maxene=30,maxT=20,maxprot=30) - integer nbase,nnbase - parameter (nbase=5,nnbase=nbase*(nbase+1)/2) - diff --git a/source/maxlik/src_CSA/Makefile b/source/maxlik/src_CSA/Makefile deleted file mode 100644 index 37a9ca6..0000000 --- a/source/maxlik/src_CSA/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -BINDIR = ../bin - -FC = gfortran - -#OPT = -O6 -OPT = -g -fbounds-check -OPT1 = -O - -FFLAGS = -c ${OPT} -I. -FFLAGS1 = -c ${OPT1} -I. - -CPPFLAGS = -DLINUX - -.SUFFIXES: .F -.F.o: - ${FC} ${FFLAGS} ${CPPFLAGS} $*.F -.f.o: - ${FC} ${FFLAGS} $*.f -.c.o: - ${CC} -c ${CPPFLAGS} $*.c - -#maxlik-opt: maxlik-opt.o minsumsl.o sumsld.o cored.o rmdd.o - ${FC} -o ${BINDIR}/maxlik-opt maxlik-opt.o minsumsl.o sumsld.o cored.o rmdd.o - -maxlik-opt-multprot: maxlik-opt-multprot.o minsumsl.o sumsld.o cored.o rmdd.o - ${FC} -o ${BINDIR}/maxlik-opt-multprot maxlik-opt-multprot.o minsumsl.o sumsld.o cored.o rmdd.o - -maxlik-opt-tmscore: maxlik-opt-tmscore.o minsumsl.o sumsld.o cored.o rmdd.o - ${FC} -o ${BINDIR}/maxlik-opt-tmscore maxlik-opt-tmscore.o minsumsl.o sumsld.o cored.o rmdd.o - -minsumsl.o: minsumsl.f - ${FC} ${FFLAGS1} minsumsl.f - -cored.o: cored.f - ${FC} ${FFLAGS1} cored.f - -rmdd.o: rmdd.f - ${FC} ${FFLAGS1} rmdd.f - -sumsld.o: sumsld.f - ${FC} ${FFLAGS1} sumsld.f - -clean: - /bin/rm -f *.o diff --git a/source/maxlik/src_CSA/Makefile_tmscore b/source/maxlik/src_CSA/Makefile_tmscore deleted file mode 100644 index 08b804f..0000000 --- a/source/maxlik/src_CSA/Makefile_tmscore +++ /dev/null @@ -1,38 +0,0 @@ -BINDIR = ../bin - -FC = gfortran - -#OPT = -O6 -OPT = -g -fbounds-check -OPT1 = -O - -FFLAGS = -c ${OPT} -I. -FFLAGS1 = -c ${OPT1} -I. - -CPPFLAGS = -DLINUX - -.SUFFIXES: .F -.F.o: - ${FC} ${FFLAGS} ${CPPFLAGS} $*.F -.f.o: - ${FC} ${FFLAGS} $*.f -.c.o: - ${CC} -c ${CPPFLAGS} $*.c - -maxlik-opt: maxlik-opt.o minsumsl.o sumsld.o cored.o rmdd.o - ${FC} -o ${BINDIR}/maxlik-opt maxlik-opt.o minsumsl.o sumsld.o cored.o rmdd.o - -minsumsl.o: minsumsl.f - ${FC} ${FFLAGS1} minsumsl.f - -cored.o: cored.f - ${FC} ${FFLAGS1} cored.f - -rmdd.o: rmdd.f - ${FC} ${FFLAGS1} rmdd.f - -sumsld.o: sumsld.f - ${FC} ${FFLAGS1} sumsld.f - -clean: - /bin/rm -f *.o diff --git a/source/maxlik/src_CSA/cored.f b/source/maxlik/src_CSA/cored.f deleted file mode 100644 index 1cf25e5..0000000 --- a/source/maxlik/src_CSA/cored.f +++ /dev/null @@ -1,3151 +0,0 @@ - subroutine assst(iv, liv, lv, v) -c -c *** assess candidate step (***sol version 2.3) *** -c - integer liv, l - integer iv(liv) - double precision v(lv) -c -c *** purpose *** -c -c this subroutine is called by an unconstrained minimization -c routine to assess the next candidate step. it may recommend one -c of several courses of action, such as accepting the step, recom- -c puting it using the same or a new quadratic model, or halting due -c to convergence or false convergence. see the return code listing -c below. -c -c-------------------------- parameter usage -------------------------- -c -c iv (i/o) integer parameter and scratch vector -- see description -c below of iv values referenced. -c liv (in) length of iv array. -c lv (in) length of v array. -c v (i/o) real parameter and scratch vector -- see description -c below of v values referenced. -c -c *** iv values referenced *** -c -c iv(irc) (i/o) on input for the first step tried in a new iteration, -c iv(irc) should be set to 3 or 4 (the value to which it is -c set when step is definitely to be accepted). on input -c after step has been recomputed, iv(irc) should be -c unchanged since the previous return of assst. -c on output, iv(irc) is a return code having one of the -c following values... -c 1 = switch models or try smaller step. -c 2 = switch models or accept step. -c 3 = accept step and determine v(radfac) by gradient -c tests. -c 4 = accept step, v(radfac) has been determined. -c 5 = recompute step (using the same model). -c 6 = recompute step with radius = v(lmaxs) but do not -c evaulate the objective function. -c 7 = x-convergence (see v(xctol)). -c 8 = relative function convergence (see v(rfctol)). -c 9 = both x- and relative function convergence. -c 10 = absolute function convergence (see v(afctol)). -c 11 = singular convergence (see v(lmaxs)). -c 12 = false convergence (see v(xftol)). -c 13 = iv(irc) was out of range on input. -c return code i has precdence over i+1 for i = 9, 10, 11. -c iv(mlstgd) (i/o) saved value of iv(model). -c iv(model) (i/o) on input, iv(model) should be an integer identifying -c the current quadratic model of the objective function. -c if a previous step yielded a better function reduction, -c then iv(model) will be set to iv(mlstgd) on output. -c iv(nfcall) (in) invocation count for the objective function. -c iv(nfgcal) (i/o) value of iv(nfcall) at step that gave the biggest -c function reduction this iteration. iv(nfgcal) remains -c unchanged until a function reduction is obtained. -c iv(radinc) (i/o) the number of radius increases (or minus the number -c of decreases) so far this iteration. -c iv(restor) (out) set to 1 if v(f) has been restored and x should be -c restored to its initial value, to 2 if x should be saved, -c to 3 if x should be restored from the saved value, and to -c 0 otherwise. -c iv(stage) (i/o) count of the number of models tried so far in the -c current iteration. -c iv(stglim) (in) maximum number of models to consider. -c iv(switch) (out) set to 0 unless a new model is being tried and it -c gives a smaller function value than the previous model, -c in which case assst sets iv(switch) = 1. -c iv(toobig) (in) is nonzero if step was too big (e.g. if it caused -c overflow). -c iv(xirc) (i/o) value that iv(irc) would have in the absence of -c convergence, false convergence, and oversized steps. -c -c *** v values referenced *** -c -c v(afctol) (in) absolute function convergence tolerance. if the -c absolute value of the current function value v(f) is less -c than v(afctol), then assst returns with iv(irc) = 10. -c v(decfac) (in) factor by which to decrease radius when iv(toobig) is -c nonzero. -c v(dstnrm) (in) the 2-norm of d*step. -c v(dstsav) (i/o) value of v(dstnrm) on saved step. -c v(dst0) (in) the 2-norm of d times the newton step (when defined, -c i.e., for v(nreduc) .ge. 0). -c v(f) (i/o) on both input and output, v(f) is the objective func- -c tion value at x. if x is restored to a previous value, -c then v(f) is restored to the corresponding value. -c v(fdif) (out) the function reduction v(f0) - v(f) (for the output -c value of v(f) if an earlier step gave a bigger function -c decrease, and for the input value of v(f) otherwise). -c v(flstgd) (i/o) saved value of v(f). -c v(f0) (in) objective function value at start of iteration. -c v(gtslst) (i/o) value of v(gtstep) on saved step. -c v(gtstep) (in) inner product between step and gradient. -c v(incfac) (in) minimum factor by which to increase radius. -c v(lmaxs) (in) maximum reasonable step size (and initial step bound). -c if the actual function decrease is no more than twice -c what was predicted, if a return with iv(irc) = 7, 8, 9, -c or 10 does not occur, if v(dstnrm) .gt. v(lmaxs), and if -c v(preduc) .le. v(sctol) * abs(v(f0)), then assst re- -c turns with iv(irc) = 11. if so doing appears worthwhile, -c then assst repeats this test with v(preduc) computed for -c a step of length v(lmaxs) (by a return with iv(irc) = 6). -c v(nreduc) (i/o) function reduction predicted by quadratic model for -c newton step. if assst is called with iv(irc) = 6, i.e., -c if v(preduc) has been computed with radius = v(lmaxs) for -c use in the singular convervence test, then v(nreduc) is -c set to -v(preduc) before the latter is restored. -c v(plstgd) (i/o) value of v(preduc) on saved step. -c v(preduc) (i/o) function reduction predicted by quadratic model for -c current step. -c v(radfac) (out) factor to be used in determining the new radius, -c which should be v(radfac)*dst, where dst is either the -c output value of v(dstnrm) or the 2-norm of -c diag(newd)*step for the output value of step and the -c updated version, newd, of the scale vector d. for -c iv(irc) = 3, v(radfac) = 1.0 is returned. -c v(rdfcmn) (in) minimum value for v(radfac) in terms of the input -c value of v(dstnrm) -- suggested value = 0.1. -c v(rdfcmx) (in) maximum value for v(radfac) -- suggested value = 4.0. -c v(reldx) (in) scaled relative change in x caused by step, computed -c (e.g.) by function reldst as -c max (d(i)*abs(x(i)-x0(i)), 1 .le. i .le. p) / -c max (d(i)*(abs(x(i))+abs(x0(i))), 1 .le. i .le. p). -c v(rfctol) (in) relative function convergence tolerance. if the -c actual function reduction is at most twice what was pre- -c dicted and v(nreduc) .le. v(rfctol)*abs(v(f0)), then -c assst returns with iv(irc) = 8 or 9. -c v(stppar) (in) marquardt parameter -- 0 means full newton step. -c v(tuner1) (in) tuning constant used to decide if the function -c reduction was much less than expected. suggested -c value = 0.1. -c v(tuner2) (in) tuning constant used to decide if the function -c reduction was large enough to accept step. suggested -c value = 10**-4. -c v(tuner3) (in) tuning constant used to decide if the radius -c should be increased. suggested value = 0.75. -c v(xctol) (in) x-convergence criterion. if step is a newton step -c (v(stppar) = 0) having v(reldx) .le. v(xctol) and giving -c at most twice the predicted function decrease, then -c assst returns iv(irc) = 7 or 9. -c v(xftol) (in) false convergence tolerance. if step gave no or only -c a small function decrease and v(reldx) .le. v(xftol), -c then assst returns with iv(irc) = 12. -c -c------------------------------- notes ------------------------------- -c -c *** application and usage restrictions *** -c -c this routine is called as part of the nl2sol (nonlinear -c least-squares) package. it may be used in any unconstrained -c minimization solver that uses dogleg, goldfeld-quandt-trotter, -c or levenberg-marquardt steps. -c -c *** algorithm notes *** -c -c see (1) for further discussion of the assessing and model -c switching strategies. while nl2sol considers only two models, -c assst is designed to handle any number of models. -c -c *** usage notes *** -c -c on the first call of an iteration, only the i/o variables -c step, x, iv(irc), iv(model), v(f), v(dstnrm), v(gtstep), and -c v(preduc) need have been initialized. between calls, no i/o -c values execpt step, x, iv(model), v(f) and the stopping toler- -c ances should be changed. -c after a return for convergence or false convergence, one can -c change the stopping tolerances and call assst again, in which -c case the stopping tests will be repeated. -c -c *** references *** -c -c (1) dennis, j.e., jr., gay, d.m., and welsch, r.e. (1981), -c an adaptive nonlinear least-squares algorithm, -c acm trans. math. software, vol. 7, no. 3. -c -c (2) powell, m.j.d. (1970) a fortran subroutine for solving -c systems of nonlinear algebraic equations, in numerical -c methods for nonlinear algebraic equations, edited by -c p. rabinowitz, gordon and breach, london. -c -c *** history *** -c -c john dennis designed much of this routine, starting with -c ideas in (2). roy welsch suggested the model switching strategy. -c david gay and stephen peters cast this subroutine into a more -c portable form (winter 1977), and david gay cast it into its -c present form (fall 1978). -c -c *** general *** -c -c this subroutine was written in connection with research -c supported by the national science foundation under grants -c mcs-7600324, dcr75-10143, 76-14311dss, mcs76-11989, and -c mcs-7906671. -c -c------------------------ external quantities ------------------------ -c -c *** no external functions and subroutines *** -c -c *** intrinsic functions *** -c/+ - double precision dabs, dmax1 -c/ -c *** no common blocks *** -c -c-------------------------- local variables -------------------------- -c - logical goodx - integer i, nfc - double precision emax, emaxs, gts, rfac1, xmax - double precision half, one, onep2, two, zero -c -c *** subscripts for iv and v *** -c - integer afctol, decfac, dstnrm, dstsav, dst0, f, fdif, flstgd, f0, - 1 gtslst, gtstep, incfac, irc, lmaxs, mlstgd, model, nfcall, - 2 nfgcal, nreduc, plstgd, preduc, radfac, radinc, rdfcmn, - 3 rdfcmx, reldx, restor, rfctol, sctol, stage, stglim, - 4 stppar, switch, toobig, tuner1, tuner2, tuner3, xctol, - 5 xftol, xirc -c -c *** data initializations *** -c -c/6 -c data half/0.5d+0/, one/1.d+0/, onep2/1.2d+0/, two/2.d+0/, -c 1 zero/0.d+0/ -c/7 - parameter (half=0.5d+0, one=1.d+0, onep2=1.2d+0, two=2.d+0, - 1 zero=0.d+0) -c/ -c -c/6 -c data irc/29/, mlstgd/32/, model/5/, nfcall/6/, nfgcal/7/, -c 1 radinc/8/, restor/9/, stage/10/, stglim/11/, switch/12/, -c 2 toobig/2/, xirc/13/ -c/7 - parameter (irc=29, mlstgd=32, model=5, nfcall=6, nfgcal=7, - 1 radinc=8, restor=9, stage=10, stglim=11, switch=12, - 2 toobig=2, xirc=13) -c/ -c/6 -c data afctol/31/, decfac/22/, dstnrm/2/, dst0/3/, dstsav/18/, -c 1 f/10/, fdif/11/, flstgd/12/, f0/13/, gtslst/14/, gtstep/4/, -c 2 incfac/23/, lmaxs/36/, nreduc/6/, plstgd/15/, preduc/7/, -c 3 radfac/16/, rdfcmn/24/, rdfcmx/25/, reldx/17/, rfctol/32/, -c 4 sctol/37/, stppar/5/, tuner1/26/, tuner2/27/, tuner3/28/, -c 5 xctol/33/, xftol/34/ -c/7 - parameter (afctol=31, decfac=22, dstnrm=2, dst0=3, dstsav=18, - 1 f=10, fdif=11, flstgd=12, f0=13, gtslst=14, gtstep=4, - 2 incfac=23, lmaxs=36, nreduc=6, plstgd=15, preduc=7, - 3 radfac=16, rdfcmn=24, rdfcmx=25, reldx=17, rfctol=32, - 4 sctol=37, stppar=5, tuner1=26, tuner2=27, tuner3=28, - 5 xctol=33, xftol=34) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - nfc = iv(nfcall) - iv(switch) = 0 - iv(restor) = 0 - rfac1 = one - goodx = .true. - i = iv(irc) - if (i .ge. 1 .and. i .le. 12) - 1 go to (20,30,10,10,40,280,220,220,220,220,220,170), i - iv(irc) = 13 - go to 999 -c -c *** initialize for new iteration *** -c - 10 iv(stage) = 1 - iv(radinc) = 0 - v(flstgd) = v(f0) - if (iv(toobig) .eq. 0) go to 110 - iv(stage) = -1 - iv(xirc) = i - go to 60 -c -c *** step was recomputed with new model or smaller radius *** -c *** first decide which *** -c - 20 if (iv(model) .ne. iv(mlstgd)) go to 30 -c *** old model retained, smaller radius tried *** -c *** do not consider any more new models this iteration *** - iv(stage) = iv(stglim) - iv(radinc) = -1 - go to 110 -c -c *** a new model is being tried. decide whether to keep it. *** -c - 30 iv(stage) = iv(stage) + 1 -c -c *** now we add the possibiltiy that step was recomputed with *** -c *** the same model, perhaps because of an oversized step. *** -c - 40 if (iv(stage) .gt. 0) go to 50 -c -c *** step was recomputed because it was too big. *** -c - if (iv(toobig) .ne. 0) go to 60 -c -c *** restore iv(stage) and pick up where we left off. *** -c - iv(stage) = -iv(stage) - i = iv(xirc) - go to (20, 30, 110, 110, 70), i -c - 50 if (iv(toobig) .eq. 0) go to 70 -c -c *** handle oversize step *** -c - if (iv(radinc) .gt. 0) go to 80 - iv(stage) = -iv(stage) - iv(xirc) = iv(irc) -c - 60 v(radfac) = v(decfac) - iv(radinc) = iv(radinc) - 1 - iv(irc) = 5 - iv(restor) = 1 - go to 999 -c - 70 if (v(f) .lt. v(flstgd)) go to 110 -c -c *** the new step is a loser. restore old model. *** -c - if (iv(model) .eq. iv(mlstgd)) go to 80 - iv(model) = iv(mlstgd) - iv(switch) = 1 -c -c *** restore step, etc. only if a previous step decreased v(f). -c - 80 if (v(flstgd) .ge. v(f0)) go to 110 - iv(restor) = 1 - v(f) = v(flstgd) - v(preduc) = v(plstgd) - v(gtstep) = v(gtslst) - if (iv(switch) .eq. 0) rfac1 = v(dstnrm) / v(dstsav) - v(dstnrm) = v(dstsav) - nfc = iv(nfgcal) - goodx = .false. -c - 110 v(fdif) = v(f0) - v(f) - if (v(fdif) .gt. v(tuner2) * v(preduc)) go to 140 - if(iv(radinc).gt.0) go to 140 -c -c *** no (or only a trivial) function decrease -c *** -- so try new model or smaller radius -c - if (v(f) .lt. v(f0)) go to 120 - iv(mlstgd) = iv(model) - v(flstgd) = v(f) - v(f) = v(f0) - iv(restor) = 1 - go to 130 - 120 iv(nfgcal) = nfc - 130 iv(irc) = 1 - if (iv(stage) .lt. iv(stglim)) go to 160 - iv(irc) = 5 - iv(radinc) = iv(radinc) - 1 - go to 160 -c -c *** nontrivial function decrease achieved *** -c - 140 iv(nfgcal) = nfc - rfac1 = one - v(dstsav) = v(dstnrm) - if (v(fdif) .gt. v(preduc)*v(tuner1)) go to 190 -c -c *** decrease was much less than predicted -- either change models -c *** or accept step with decreased radius. -c - if (iv(stage) .ge. iv(stglim)) go to 150 -c *** consider switching models *** - iv(irc) = 2 - go to 160 -c -c *** accept step with decreased radius *** -c - 150 iv(irc) = 4 -c -c *** set v(radfac) to fletcher*s decrease factor *** -c - 160 iv(xirc) = iv(irc) - emax = v(gtstep) + v(fdif) - v(radfac) = half * rfac1 - if (emax .lt. v(gtstep)) v(radfac) = rfac1 * dmax1(v(rdfcmn), - 1 half * v(gtstep)/emax) -c -c *** do false convergence test *** -c - 170 if (v(reldx) .le. v(xftol)) go to 180 - iv(irc) = iv(xirc) - if (v(f) .lt. v(f0)) go to 200 - go to 230 -c - 180 iv(irc) = 12 - go to 240 -c -c *** handle good function decrease *** -c - 190 if (v(fdif) .lt. (-v(tuner3) * v(gtstep))) go to 210 -c -c *** increasing radius looks worthwhile. see if we just -c *** recomputed step with a decreased radius or restored step -c *** after recomputing it with a larger radius. -c - if (iv(radinc) .lt. 0) go to 210 - if (iv(restor) .eq. 1) go to 210 -c -c *** we did not. try a longer step unless this was a newton -c *** step. -c - v(radfac) = v(rdfcmx) - gts = v(gtstep) - if (v(fdif) .lt. (half/v(radfac) - one) * gts) - 1 v(radfac) = dmax1(v(incfac), half*gts/(gts + v(fdif))) - iv(irc) = 4 - if (v(stppar) .eq. zero) go to 230 - if (v(dst0) .ge. zero .and. (v(dst0) .lt. two*v(dstnrm) - 1 .or. v(nreduc) .lt. onep2*v(fdif))) go to 230 -c *** step was not a newton step. recompute it with -c *** a larger radius. - iv(irc) = 5 - iv(radinc) = iv(radinc) + 1 -c -c *** save values corresponding to good step *** -c - 200 v(flstgd) = v(f) - iv(mlstgd) = iv(model) - if (iv(restor) .ne. 1) iv(restor) = 2 - v(dstsav) = v(dstnrm) - iv(nfgcal) = nfc - v(plstgd) = v(preduc) - v(gtslst) = v(gtstep) - go to 230 -c -c *** accept step with radius unchanged *** -c - 210 v(radfac) = one - iv(irc) = 3 - go to 230 -c -c *** come here for a restart after convergence *** -c - 220 iv(irc) = iv(xirc) - if (v(dstsav) .ge. zero) go to 240 - iv(irc) = 12 - go to 240 -c -c *** perform convergence tests *** -c - 230 iv(xirc) = iv(irc) - 240 if (iv(restor) .eq. 1 .and. v(flstgd) .lt. v(f0)) iv(restor) = 3 - if (half * v(fdif) .gt. v(preduc)) go to 999 - emax = v(rfctol) * dabs(v(f0)) - emaxs = v(sctol) * dabs(v(f0)) - if (v(dstnrm) .gt. v(lmaxs) .and. v(preduc) .le. emaxs) - 1 iv(irc) = 11 - if (v(dst0) .lt. zero) go to 250 - i = 0 - if ((v(nreduc) .gt. zero .and. v(nreduc) .le. emax) .or. - 1 (v(nreduc) .eq. zero. and. v(preduc) .eq. zero)) i = 2 - if (v(stppar) .eq. zero .and. v(reldx) .le. v(xctol) - 1 .and. goodx) i = i + 1 - if (i .gt. 0) iv(irc) = i + 6 -c -c *** consider recomputing step of length v(lmaxs) for singular -c *** convergence test. -c - 250 if (iv(irc) .gt. 5 .and. iv(irc) .ne. 12) go to 999 - if (v(dstnrm) .gt. v(lmaxs)) go to 260 - if (v(preduc) .ge. emaxs) go to 999 - if (v(dst0) .le. zero) go to 270 - if (half * v(dst0) .le. v(lmaxs)) go to 999 - go to 270 - 260 if (half * v(dstnrm) .le. v(lmaxs)) go to 999 - xmax = v(lmaxs) / v(dstnrm) - if (xmax * (two - xmax) * v(preduc) .ge. emaxs) go to 999 - 270 if (v(nreduc) .lt. zero) go to 290 -c -c *** recompute v(preduc) for use in singular convergence test *** -c - v(gtslst) = v(gtstep) - v(dstsav) = v(dstnrm) - if (iv(irc) .eq. 12) v(dstsav) = -v(dstsav) - v(plstgd) = v(preduc) - i = iv(restor) - iv(restor) = 2 - if (i .eq. 3) iv(restor) = 0 - iv(irc) = 6 - go to 999 -c -c *** perform singular convergence test with recomputed v(preduc) *** -c - 280 v(gtstep) = v(gtslst) - v(dstnrm) = dabs(v(dstsav)) - iv(irc) = iv(xirc) - if (v(dstsav) .le. zero) iv(irc) = 12 - v(nreduc) = -v(preduc) - v(preduc) = v(plstgd) - iv(restor) = 3 - 290 if (-v(nreduc) .le. v(sctol) * dabs(v(f0))) iv(irc) = 11 -c - 999 return -c -c *** last card of assst follows *** - end - subroutine deflt(alg, iv, liv, lv, v) -c -c *** supply ***sol (version 2.3) default values to iv and v *** -c -c *** alg = 1 means regression constants. -c *** alg = 2 means general unconstrained optimization constants. -c - integer liv, l - integer alg, iv(liv) - double precision v(lv) -c - external imdcon, vdflt - integer imdcon -c imdcon... returns machine-dependent integer constants. -c vdflt.... provides default values to v. -c - integer miv, m - integer miniv(2), minv(2) -c -c *** subscripts for iv *** -c - integer algsav, covprt, covreq, dtype, hc, ierr, inith, inits, - 1 ipivot, ivneed, lastiv, lastv, lmat, mxfcal, mxiter, - 2 nfcov, ngcov, nvdflt, outlev, parprt, parsav, perm, - 3 prunit, qrtyp, rdreq, rmat, solprt, statpr, vneed, - 4 vsave, x0prt -c -c *** iv subscript values *** -c -c/6 -c data algsav/51/, covprt/14/, covreq/15/, dtype/16/, hc/71/, -c 1 ierr/75/, inith/25/, inits/25/, ipivot/76/, ivneed/3/, -c 2 lastiv/44/, lastv/45/, lmat/42/, mxfcal/17/, mxiter/18/, -c 3 nfcov/52/, ngcov/53/, nvdflt/50/, outlev/19/, parprt/20/, -c 4 parsav/49/, perm/58/, prunit/21/, qrtyp/80/, rdreq/57/, -c 5 rmat/78/, solprt/22/, statpr/23/, vneed/4/, vsave/60/, -c 6 x0prt/24/ -c/7 - parameter (algsav=51, covprt=14, covreq=15, dtype=16, hc=71, - 1 ierr=75, inith=25, inits=25, ipivot=76, ivneed=3, - 2 lastiv=44, lastv=45, lmat=42, mxfcal=17, mxiter=18, - 3 nfcov=52, ngcov=53, nvdflt=50, outlev=19, parprt=20, - 4 parsav=49, perm=58, prunit=21, qrtyp=80, rdreq=57, - 5 rmat=78, solprt=22, statpr=23, vneed=4, vsave=60, - 6 x0prt=24) -c/ - data miniv(1)/80/, miniv(2)/59/, minv(1)/98/, minv(2)/71/ -c -c------------------------------- body -------------------------------- -c - if (alg .lt. 1 .or. alg .gt. 2) go to 40 - miv = miniv(alg) - if (liv .lt. miv) go to 20 - mv = minv(alg) - if (lv .lt. mv) go to 30 - call vdflt(alg, lv, v) - iv(1) = 12 - iv(algsav) = alg - iv(ivneed) = 0 - iv(lastiv) = miv - iv(lastv) = mv - iv(lmat) = mv + 1 - iv(mxfcal) = 200 - iv(mxiter) = 150 - iv(outlev) = 1 - iv(parprt) = 1 - iv(perm) = miv + 1 - iv(prunit) = imdcon(1) - iv(solprt) = 1 - iv(statpr) = 1 - iv(vneed) = 0 - iv(x0prt) = 1 -c - if (alg .ge. 2) go to 10 -c -c *** regression values -c - iv(covprt) = 3 - iv(covreq) = 1 - iv(dtype) = 1 - iv(hc) = 0 - iv(ierr) = 0 - iv(inits) = 0 - iv(ipivot) = 0 - iv(nvdflt) = 32 - iv(parsav) = 67 - iv(qrtyp) = 1 - iv(rdreq) = 3 - iv(rmat) = 0 - iv(vsave) = 58 - go to 999 -c -c *** general optimization values -c - 10 iv(dtype) = 0 - iv(inith) = 1 - iv(nfcov) = 0 - iv(ngcov) = 0 - iv(nvdflt) = 25 - iv(parsav) = 47 - go to 999 -c - 20 iv(1) = 15 - go to 999 -c - 30 iv(1) = 16 - go to 999 -c - 40 iv(1) = 67 -c - 999 return -c *** last card of deflt follows *** - end - double precision function dotprd(p, x, y) -c -c *** return the inner product of the p-vectors x and y. *** -c - integer p - double precision x(p), y(p) -c - integer i - double precision one, sqteta, t, zero -c/+ - double precision dmax1, dabs -c/ - external rmdcon - double precision rmdcon -c -c *** rmdcon(2) returns a machine-dependent constant, sqteta, which -c *** is slightly larger than the smallest positive number that -c *** can be squared without underflowing. -c -c/6 -c data one/1.d+0/, sqteta/0.d+0/, zero/0.d+0/ -c/7 - parameter (one=1.d+0, zero=0.d+0) - data sqteta/0.d+0/ -c/ -c - dotprd = zero - if (p .le. 0) go to 999 -crc if (sqteta .eq. zero) sqteta = rmdcon(2) - do 20 i = 1, p -crc t = dmax1(dabs(x(i)), dabs(y(i))) -crc if (t .gt. one) go to 10 -crc if (t .lt. sqteta) go to 20 -crc t = (x(i)/sqteta)*y(i) -crc if (dabs(t) .lt. sqteta) go to 20 - 10 dotprd = dotprd + x(i)*y(i) - 20 continue -c - 999 return -c *** last card of dotprd follows *** - end - subroutine itsum(d, g, iv, liv, lv, p, v, x) -c -c *** print iteration summary for ***sol (version 2.3) *** -c -c *** parameter declarations *** -c - integer liv, lv, p - integer iv(liv) - double precision d(p), g(p), v(lv), x(p) -c -c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -c -c *** local variables *** -c - integer alg, i, iv1, m, nf, ng, ol, pu -c/6 -c real model1(6), model2(6) -c/7 - character*4 model1(6), model2(6) -c/ - double precision nreldf, oldf, preldf, reldf, zero -c -c *** intrinsic functions *** -c/+ - integer iabs - double precision dabs, dmax1 -c/ -c *** no external functions or subroutines *** -c -c *** subscripts for iv and v *** -c - integer algsav, dstnrm, f, fdif, f0, needhd, nfcall, nfcov, ngcov, - 1 ngcall, niter, nreduc, outlev, preduc, prntit, prunit, - 2 reldx, solprt, statpr, stppar, sused, x0prt -c -c *** iv subscript values *** -c -c/6 -c data algsav/51/, needhd/36/, nfcall/6/, nfcov/52/, ngcall/30/, -c 1 ngcov/53/, niter/31/, outlev/19/, prntit/39/, prunit/21/, -c 2 solprt/22/, statpr/23/, sused/64/, x0prt/24/ -c/7 - parameter (algsav=51, needhd=36, nfcall=6, nfcov=52, ngcall=30, - 1 ngcov=53, niter=31, outlev=19, prntit=39, prunit=21, - 2 solprt=22, statpr=23, sused=64, x0prt=24) -c/ -c -c *** v subscript values *** -c -c/6 -c data dstnrm/2/, f/10/, f0/13/, fdif/11/, nreduc/6/, preduc/7/, -c 1 reldx/17/, stppar/5/ -c/7 - parameter (dstnrm=2, f=10, f0=13, fdif=11, nreduc=6, preduc=7, - 1 reldx=17, stppar=5) -c/ -c -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c/6 -c data model1(1)/4h /, model1(2)/4h /, model1(3)/4h /, -c 1 model1(4)/4h /, model1(5)/4h g /, model1(6)/4h s /, -c 2 model2(1)/4h g /, model2(2)/4h s /, model2(3)/4hg-s /, -c 3 model2(4)/4hs-g /, model2(5)/4h-s-g/, model2(6)/4h-g-s/ -c/7 - data model1/' ',' ',' ',' ',' g ',' s '/, - 1 model2/' g ',' s ','g-s ','s-g ','-s-g','-g-s'/ -c/ -c -c------------------------------- body -------------------------------- -c - pu = iv(prunit) - if (pu .eq. 0) go to 999 - iv1 = iv(1) - if (iv1 .gt. 62) iv1 = iv1 - 51 - ol = iv(outlev) - alg = iv(algsav) - if (iv1 .lt. 2 .or. iv1 .gt. 15) go to 370 - if (iv1 .ge. 12) go to 120 - if (iv1 .eq. 2 .and. iv(niter) .eq. 0) go to 390 - if (ol .eq. 0) go to 120 - if (iv1 .ge. 10 .and. iv(prntit) .eq. 0) go to 120 - if (iv1 .gt. 2) go to 10 - iv(prntit) = iv(prntit) + 1 - if (iv(prntit) .lt. iabs(ol)) go to 999 - 10 nf = iv(nfcall) - iabs(iv(nfcov)) - iv(prntit) = 0 - reldf = zero - preldf = zero - oldf = dmax1(dabs(v(f0)), dabs(v(f))) - if (oldf .le. zero) go to 20 - reldf = v(fdif) / oldf - preldf = v(preduc) / oldf - 20 if (ol .gt. 0) go to 60 -c -c *** print short summary line *** -c - if (iv(needhd) .eq. 1 .and. alg .eq. 1) write(pu,30) - 30 format(/10h it nf,6x,1hf,7x,5hreldf,3x,6hpreldf,3x,5hreldx, - 1 2x,13hmodel stppar) - if (iv(needhd) .eq. 1 .and. alg .eq. 2) write(pu,40) - 40 format(/11h it nf,7x,1hf,8x,5hreldf,4x,6hpreldf,4x,5hreldx, - 1 3x,6hstppar) - iv(needhd) = 0 - if (alg .eq. 2) go to 50 - m = iv(sused) - write(pu,100) iv(niter), nf, v(f), reldf, preldf, v(reldx), - 1 model1(m), model2(m), v(stppar) - go to 120 -c - 50 write(pu,110) iv(niter), nf, v(f), reldf, preldf, v(reldx), - 1 v(stppar) - go to 120 -c -c *** print long summary line *** -c - 60 if (iv(needhd) .eq. 1 .and. alg .eq. 1) write(pu,70) - 70 format(/11h it nf,6x,1hf,7x,5hreldf,3x,6hpreldf,3x,5hreldx, - 1 2x,13hmodel stppar,2x,6hd*step,2x,7hnpreldf) - if (iv(needhd) .eq. 1 .and. alg .eq. 2) write(pu,80) - 80 format(/11h it nf,7x,1hf,8x,5hreldf,4x,6hpreldf,4x,5hreldx, - 1 3x,6hstppar,3x,6hd*step,3x,7hnpreldf) - iv(needhd) = 0 - nreldf = zero - if (oldf .gt. zero) nreldf = v(nreduc) / oldf - if (alg .eq. 2) go to 90 - m = iv(sused) - write(pu,100) iv(niter), nf, v(f), reldf, preldf, v(reldx), - 1 model1(m), model2(m), v(stppar), v(dstnrm), nreldf - go to 120 -c - 90 write(pu,110) iv(niter), nf, v(f), reldf, preldf, - 1 v(reldx), v(stppar), v(dstnrm), nreldf - 100 format(i6,i5,d10.3,2d9.2,d8.1,a3,a4,2d8.1,d9.2) - 110 format(i6,i5,d11.3,2d10.2,3d9.1,d10.2) -c - 120 if (iv(statpr) .lt. 0) go to 430 - go to (999, 999, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, - 1 330, 350, 520), iv1 -c - 130 write(pu,140) - 140 format(/26h ***** x-convergence *****) - go to 430 -c - 150 write(pu,160) - 160 format(/42h ***** relative function convergence *****) - go to 430 -c - 170 write(pu,180) - 180 format(/49h ***** x- and relative function convergence *****) - go to 430 -c - 190 write(pu,200) - 200 format(/42h ***** absolute function convergence *****) - go to 430 -c - 210 write(pu,220) - 220 format(/33h ***** singular convergence *****) - go to 430 -c - 230 write(pu,240) - 240 format(/30h ***** false convergence *****) - go to 430 -c - 250 write(pu,260) - 260 format(/38h ***** function evaluation limit *****) - go to 430 -c - 270 write(pu,280) - 280 format(/28h ***** iteration limit *****) - go to 430 -c - 290 write(pu,300) - 300 format(/18h ***** stopx *****) - go to 430 -c - 310 write(pu,320) - 320 format(/44h ***** initial f(x) cannot be computed *****) -c - go to 390 -c - 330 write(pu,340) - 340 format(/37h ***** bad parameters to assess *****) - go to 999 -c - 350 write(pu,360) - 360 format(/43h ***** gradient could not be computed *****) - if (iv(niter) .gt. 0) go to 480 - go to 390 -c - 370 write(pu,380) iv(1) - 380 format(/14h ***** iv(1) =,i5,6h *****) - go to 999 -c -c *** initial call on itsum *** -c - 390 if (iv(x0prt) .ne. 0) write(pu,400) (i, x(i), d(i), i = 1, p) - 400 format(/23h i initial x(i),8x,4hd(i)//(1x,i5,d17.6,d14.3)) -c *** the following are to avoid undefined variables when the -c *** function evaluation limit is 1... - v(dstnrm) = zero - v(fdif) = zero - v(nreduc) = zero - v(preduc) = zero - v(reldx) = zero - if (iv1 .ge. 12) go to 999 - iv(needhd) = 0 - iv(prntit) = 0 - if (ol .eq. 0) go to 999 - if (ol .lt. 0 .and. alg .eq. 1) write(pu,30) - if (ol .lt. 0 .and. alg .eq. 2) write(pu,40) - if (ol .gt. 0 .and. alg .eq. 1) write(pu,70) - if (ol .gt. 0 .and. alg .eq. 2) write(pu,80) - if (alg .eq. 1) write(pu,410) v(f) - if (alg .eq. 2) write(pu,420) v(f) - 410 format(/11h 0 1,d10.3) -c365 format(/11h 0 1,e11.3) - 420 format(/11h 0 1,d11.3) - go to 999 -c -c *** print various information requested on solution *** -c - 430 iv(needhd) = 1 - if (iv(statpr) .eq. 0) go to 480 - oldf = dmax1(dabs(v(f0)), dabs(v(f))) - preldf = zero - nreldf = zero - if (oldf .le. zero) go to 440 - preldf = v(preduc) / oldf - nreldf = v(nreduc) / oldf - 440 nf = iv(nfcall) - iv(nfcov) - ng = iv(ngcall) - iv(ngcov) - write(pu,450) v(f), v(reldx), nf, ng, preldf, nreldf - 450 format(/9h function,d17.6,8h reldx,d17.3/12h func. evals, - 1 i8,9x,11hgrad. evals,i8/7h preldf,d16.3,6x,7hnpreldf,d15.3) -c - if (iv(nfcov) .gt. 0) write(pu,460) iv(nfcov) - 460 format(/1x,i4,50h extra func. evals for covariance and diagnost - 1ics.) - if (iv(ngcov) .gt. 0) write(pu,470) iv(ngcov) - 470 format(1x,i4,50h extra grad. evals for covariance and diagnosti - 1cs.) -c - 480 if (iv(solprt) .eq. 0) go to 999 - iv(needhd) = 1 - write(pu,490) - 490 format(/22h i final x(i),8x,4hd(i),10x,4hg(i)/) - do 500 i = 1, p - write(pu,510) i, x(i), d(i), g(i) - 500 continue - 510 format(1x,i5,d16.6,2d14.3) - go to 999 -c - 520 write(pu,530) - 530 format(/24h inconsistent dimensions) - 999 return -c *** last card of itsum follows *** - end - subroutine litvmu(n, x, l, y) -c -c *** solve (l**t)*x = y, where l is an n x n lower triangular -c *** matrix stored compactly by rows. x and y may occupy the same -c *** storage. *** -c - integer n -cal double precision x(n), l(1), y(n) - double precision x(n), l(n*(n+1)/2), y(n) - integer i, ii, ij, im1, i0, j, np1 - double precision xi, zero -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c - do 10 i = 1, n - 10 x(i) = y(i) - np1 = n + 1 - i0 = n*(n+1)/2 - do 30 ii = 1, n - i = np1 - ii - xi = x(i)/l(i0) - x(i) = xi - if (i .le. 1) go to 999 - i0 = i0 - i - if (xi .eq. zero) go to 30 - im1 = i - 1 - do 20 j = 1, im1 - ij = i0 + j - x(j) = x(j) - xi*l(ij) - 20 continue - 30 continue - 999 return -c *** last card of litvmu follows *** - end - subroutine livmul(n, x, l, y) -c -c *** solve l*x = y, where l is an n x n lower triangular -c *** matrix stored compactly by rows. x and y may occupy the same -c *** storage. *** -c - integer n -cal double precision x(n), l(1), y(n) - double precision x(n), l(n*(n+1)/2), y(n) - external dotprd - double precision dotprd - integer i, j, k - double precision t, zero -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c - do 10 k = 1, n - if (y(k) .ne. zero) go to 20 - x(k) = zero - 10 continue - go to 999 - 20 j = k*(k+1)/2 - x(k) = y(k) / l(j) - if (k .ge. n) go to 999 - k = k + 1 - do 30 i = k, n - t = dotprd(i-1, l(j+1), x) - j = j + i - x(i) = (y(i) - t)/l(j) - 30 continue - 999 return -c *** last card of livmul follows *** - end - subroutine parck(alg, d, iv, liv, lv, n, v) -c -c *** check ***sol (version 2.3) parameters, print changed values *** -c -c *** alg = 1 for regression, alg = 2 for general unconstrained opt. -c - integer alg, liv, lv, n - integer iv(liv) - double precision d(n), v(lv) -c - external rmdcon, vcopy, vdflt - double precision rmdcon -c rmdcon -- returns machine-dependent constants. -c vcopy -- copies one vector to another. -c vdflt -- supplies default parameter values to v alone. -c/+ - integer max0 -c/ -c -c *** local variables *** -c - integer i, ii, iv1, j, k, l, m, miv1, miv2, ndfalt, parsv1, pu - integer ijmp, jlim(2), miniv(2), ndflt(2) -c/6 -c integer varnm(2), sh(2) -c real cngd(3), dflt(3), vn(2,34), which(3) -c/7 - character*1 varnm(2), sh(2) - character*4 cngd(3), dflt(3), vn(2,34), which(3) -c/ - double precision big, machep, tiny, vk, vm(34), vx(34), zero -c -c *** iv and v subscripts *** -c - integer algsav, dinit, dtype, dtype0, epslon, inits, ivneed, - 1 lastiv, lastv, lmat, nextiv, nextv, nvdflt, oldn, - 2 parprt, parsav, perm, prunit, vneed -c -c -c/6 -c data algsav/51/, dinit/38/, dtype/16/, dtype0/54/, epslon/19/, -c 1 inits/25/, ivneed/3/, lastiv/44/, lastv/45/, lmat/42/, -c 2 nextiv/46/, nextv/47/, nvdflt/50/, oldn/38/, parprt/20/, -c 3 parsav/49/, perm/58/, prunit/21/, vneed/4/ -c/7 - parameter (algsav=51, dinit=38, dtype=16, dtype0=54, epslon=19, - 1 inits=25, ivneed=3, lastiv=44, lastv=45, lmat=42, - 2 nextiv=46, nextv=47, nvdflt=50, oldn=38, parprt=20, - 3 parsav=49, perm=58, prunit=21, vneed=4) - save big, machep, tiny -c/ -c - data big/0.d+0/, machep/-1.d+0/, tiny/1.d+0/, zero/0.d+0/ -c/6 -c data vn(1,1),vn(2,1)/4hepsl,4hon../ -c data vn(1,2),vn(2,2)/4hphmn,4hfc../ -c data vn(1,3),vn(2,3)/4hphmx,4hfc../ -c data vn(1,4),vn(2,4)/4hdecf,4hac../ -c data vn(1,5),vn(2,5)/4hincf,4hac../ -c data vn(1,6),vn(2,6)/4hrdfc,4hmn../ -c data vn(1,7),vn(2,7)/4hrdfc,4hmx../ -c data vn(1,8),vn(2,8)/4htune,4hr1../ -c data vn(1,9),vn(2,9)/4htune,4hr2../ -c data vn(1,10),vn(2,10)/4htune,4hr3../ -c data vn(1,11),vn(2,11)/4htune,4hr4../ -c data vn(1,12),vn(2,12)/4htune,4hr5../ -c data vn(1,13),vn(2,13)/4hafct,4hol../ -c data vn(1,14),vn(2,14)/4hrfct,4hol../ -c data vn(1,15),vn(2,15)/4hxcto,4hl.../ -c data vn(1,16),vn(2,16)/4hxfto,4hl.../ -c data vn(1,17),vn(2,17)/4hlmax,4h0.../ -c data vn(1,18),vn(2,18)/4hlmax,4hs.../ -c data vn(1,19),vn(2,19)/4hscto,4hl.../ -c data vn(1,20),vn(2,20)/4hdini,4ht.../ -c data vn(1,21),vn(2,21)/4hdtin,4hit../ -c data vn(1,22),vn(2,22)/4hd0in,4hit../ -c data vn(1,23),vn(2,23)/4hdfac,4h..../ -c data vn(1,24),vn(2,24)/4hdltf,4hdc../ -c data vn(1,25),vn(2,25)/4hdltf,4hdj../ -c data vn(1,26),vn(2,26)/4hdelt,4ha0../ -c data vn(1,27),vn(2,27)/4hfuzz,4h..../ -c data vn(1,28),vn(2,28)/4hrlim,4hit../ -c data vn(1,29),vn(2,29)/4hcosm,4hin../ -c data vn(1,30),vn(2,30)/4hhube,4hrc../ -c data vn(1,31),vn(2,31)/4hrspt,4hol../ -c data vn(1,32),vn(2,32)/4hsigm,4hin../ -c data vn(1,33),vn(2,33)/4heta0,4h..../ -c data vn(1,34),vn(2,34)/4hbias,4h..../ -c/7 - data vn(1,1),vn(2,1)/'epsl','on..'/ - data vn(1,2),vn(2,2)/'phmn','fc..'/ - data vn(1,3),vn(2,3)/'phmx','fc..'/ - data vn(1,4),vn(2,4)/'decf','ac..'/ - data vn(1,5),vn(2,5)/'incf','ac..'/ - data vn(1,6),vn(2,6)/'rdfc','mn..'/ - data vn(1,7),vn(2,7)/'rdfc','mx..'/ - data vn(1,8),vn(2,8)/'tune','r1..'/ - data vn(1,9),vn(2,9)/'tune','r2..'/ - data vn(1,10),vn(2,10)/'tune','r3..'/ - data vn(1,11),vn(2,11)/'tune','r4..'/ - data vn(1,12),vn(2,12)/'tune','r5..'/ - data vn(1,13),vn(2,13)/'afct','ol..'/ - data vn(1,14),vn(2,14)/'rfct','ol..'/ - data vn(1,15),vn(2,15)/'xcto','l...'/ - data vn(1,16),vn(2,16)/'xfto','l...'/ - data vn(1,17),vn(2,17)/'lmax','0...'/ - data vn(1,18),vn(2,18)/'lmax','s...'/ - data vn(1,19),vn(2,19)/'scto','l...'/ - data vn(1,20),vn(2,20)/'dini','t...'/ - data vn(1,21),vn(2,21)/'dtin','it..'/ - data vn(1,22),vn(2,22)/'d0in','it..'/ - data vn(1,23),vn(2,23)/'dfac','....'/ - data vn(1,24),vn(2,24)/'dltf','dc..'/ - data vn(1,25),vn(2,25)/'dltf','dj..'/ - data vn(1,26),vn(2,26)/'delt','a0..'/ - data vn(1,27),vn(2,27)/'fuzz','....'/ - data vn(1,28),vn(2,28)/'rlim','it..'/ - data vn(1,29),vn(2,29)/'cosm','in..'/ - data vn(1,30),vn(2,30)/'hube','rc..'/ - data vn(1,31),vn(2,31)/'rspt','ol..'/ - data vn(1,32),vn(2,32)/'sigm','in..'/ - data vn(1,33),vn(2,33)/'eta0','....'/ - data vn(1,34),vn(2,34)/'bias','....'/ -c/ -c - data vm(1)/1.0d-3/, vm(2)/-0.99d+0/, vm(3)/1.0d-3/, vm(4)/1.0d-2/, - 1 vm(5)/1.2d+0/, vm(6)/1.d-2/, vm(7)/1.2d+0/, vm(8)/0.d+0/, - 2 vm(9)/0.d+0/, vm(10)/1.d-3/, vm(11)/-1.d+0/, vm(13)/0.d+0/, - 3 vm(15)/0.d+0/, vm(16)/0.d+0/, vm(19)/0.d+0/, vm(20)/-10.d+0/, - 4 vm(21)/0.d+0/, vm(22)/0.d+0/, vm(23)/0.d+0/, vm(27)/1.01d+0/, - 5 vm(28)/1.d+10/, vm(30)/0.d+0/, vm(31)/0.d+0/, vm(32)/0.d+0/, - 6 vm(34)/0.d+0/ - data vx(1)/0.9d+0/, vx(2)/-1.d-3/, vx(3)/1.d+1/, vx(4)/0.8d+0/, - 1 vx(5)/1.d+2/, vx(6)/0.8d+0/, vx(7)/1.d+2/, vx(8)/0.5d+0/, - 2 vx(9)/0.5d+0/, vx(10)/1.d+0/, vx(11)/1.d+0/, vx(14)/0.1d+0/, - 3 vx(15)/1.d+0/, vx(16)/1.d+0/, vx(19)/1.d+0/, vx(23)/1.d+0/, - 4 vx(24)/1.d+0/, vx(25)/1.d+0/, vx(26)/1.d+0/, vx(27)/1.d+10/, - 5 vx(29)/1.d+0/, vx(31)/1.d+0/, vx(32)/1.d+0/, vx(33)/1.d+0/, - 6 vx(34)/1.d+0/ -c -c/6 -c data varnm(1)/1hp/, varnm(2)/1hn/, sh(1)/1hs/, sh(2)/1hh/ -c data cngd(1),cngd(2),cngd(3)/4h---c,4hhang,4hed v/, -c 1 dflt(1),dflt(2),dflt(3)/4hnond,4hefau,4hlt v/ -c/7 - data varnm(1)/'p'/, varnm(2)/'n'/, sh(1)/'s'/, sh(2)/'h'/ - data cngd(1),cngd(2),cngd(3)/'---c','hang','ed v'/, - 1 dflt(1),dflt(2),dflt(3)/'nond','efau','lt v'/ -c/ - data ijmp/33/, jlim(1)/0/, jlim(2)/24/, ndflt(1)/32/, ndflt(2)/25/ - data miniv(1)/80/, miniv(2)/59/ -c -c............................... body ................................ -c - pu = 0 - if (prunit .le. liv) pu = iv(prunit) - if (alg .lt. 1 .or. alg .gt. 2) go to 340 - if (iv(1) .eq. 0) call deflt(alg, iv, liv, lv, v) - iv1 = iv(1) - if (iv1 .ne. 13 .and. iv1 .ne. 12) go to 10 - miv1 = miniv(alg) - if (perm .le. liv) miv1 = max0(miv1, iv(perm) - 1) - if (ivneed .le. liv) miv2 = miv1 + max0(iv(ivneed), 0) - if (lastiv .le. liv) iv(lastiv) = miv2 - if (liv .lt. miv1) go to 300 - iv(ivneed) = 0 - iv(lastv) = max0(iv(vneed), 0) + iv(lmat) - 1 - iv(vneed) = 0 - if (liv .lt. miv2) go to 300 - if (lv .lt. iv(lastv)) go to 320 - 10 if (alg .eq. iv(algsav)) go to 30 - if (pu .ne. 0) write(pu,20) alg, iv(algsav) - 20 format(/39h the first parameter to deflt should be,i3, - 1 12h rather than,i3) - iv(1) = 82 - go to 999 - 30 if (iv1 .lt. 12 .or. iv1 .gt. 14) go to 60 - if (n .ge. 1) go to 50 - iv(1) = 81 - if (pu .eq. 0) go to 999 - write(pu,40) varnm(alg), n - 40 format(/8h /// bad,a1,2h =,i5) - go to 999 - 50 if (iv1 .ne. 14) iv(nextiv) = iv(perm) - if (iv1 .ne. 14) iv(nextv) = iv(lmat) - if (iv1 .eq. 13) go to 999 - k = iv(parsav) - epslon - call vdflt(alg, lv-k, v(k+1)) - iv(dtype0) = 2 - alg - iv(oldn) = n - which(1) = dflt(1) - which(2) = dflt(2) - which(3) = dflt(3) - go to 110 - 60 if (n .eq. iv(oldn)) go to 80 - iv(1) = 17 - if (pu .eq. 0) go to 999 - write(pu,70) varnm(alg), iv(oldn), n - 70 format(/5h /// ,1a1,14h changed from ,i5,4h to ,i5) - go to 999 -c - 80 if (iv1 .le. 11 .and. iv1 .ge. 1) go to 100 - iv(1) = 80 - if (pu .ne. 0) write(pu,90) iv1 - 90 format(/13h /// iv(1) =,i5,28h should be between 0 and 14.) - go to 999 -c - 100 which(1) = cngd(1) - which(2) = cngd(2) - which(3) = cngd(3) -c - 110 if (iv1 .eq. 14) iv1 = 12 - if (big .gt. tiny) go to 120 - tiny = rmdcon(1) - machep = rmdcon(3) - big = rmdcon(6) - vm(12) = machep - vx(12) = big - vx(13) = big - vm(14) = machep - vm(17) = tiny - vx(17) = big - vm(18) = tiny - vx(18) = big - vx(20) = big - vx(21) = big - vx(22) = big - vm(24) = machep - vm(25) = machep - vm(26) = machep - vx(28) = rmdcon(5) - vm(29) = machep - vx(30) = big - vm(33) = machep - 120 m = 0 - i = 1 - j = jlim(alg) - k = epslon - ndfalt = ndflt(alg) - do 150 l = 1, ndfalt - vk = v(k) - if (vk .ge. vm(i) .and. vk .le. vx(i)) go to 140 - m = k - if (pu .ne. 0) write(pu,130) vn(1,i), vn(2,i), k, vk, - 1 vm(i), vx(i) - 130 format(/6h /// ,2a4,5h.. v(,i2,3h) =,d11.3,7h should, - 1 11h be between,d11.3,4h and,d11.3) - 140 k = k + 1 - i = i + 1 - if (i .eq. j) i = ijmp - 150 continue -c - if (iv(nvdflt) .eq. ndfalt) go to 170 - iv(1) = 51 - if (pu .eq. 0) go to 999 - write(pu,160) iv(nvdflt), ndfalt - 160 format(/13h iv(nvdflt) =,i5,13h rather than ,i5) - go to 999 - 170 if ((iv(dtype) .gt. 0 .or. v(dinit) .gt. zero) .and. iv1 .eq. 12) - 1 go to 200 - do 190 i = 1, n - if (d(i) .gt. zero) go to 190 - m = 18 - if (pu .ne. 0) write(pu,180) i, d(i) - 180 format(/8h /// d(,i3,3h) =,d11.3,19h should be positive) - 190 continue - 200 if (m .eq. 0) go to 210 - iv(1) = m - go to 999 -c - 210 if (pu .eq. 0 .or. iv(parprt) .eq. 0) go to 999 - if (iv1 .ne. 12 .or. iv(inits) .eq. alg-1) go to 230 - m = 1 - write(pu,220) sh(alg), iv(inits) - 220 format(/22h nondefault values..../5h init,a1,14h..... iv(25) =, - 1 i3) - 230 if (iv(dtype) .eq. iv(dtype0)) go to 250 - if (m .eq. 0) write(pu,260) which - m = 1 - write(pu,240) iv(dtype) - 240 format(20h dtype..... iv(16) =,i3) - 250 i = 1 - j = jlim(alg) - k = epslon - l = iv(parsav) - ndfalt = ndflt(alg) - do 290 ii = 1, ndfalt - if (v(k) .eq. v(l)) go to 280 - if (m .eq. 0) write(pu,260) which - 260 format(/1h ,3a4,9halues..../) - m = 1 - write(pu,270) vn(1,i), vn(2,i), k, v(k) - 270 format(1x,2a4,5h.. v(,i2,3h) =,d15.7) - 280 k = k + 1 - l = l + 1 - i = i + 1 - if (i .eq. j) i = ijmp - 290 continue -c - iv(dtype0) = iv(dtype) - parsv1 = iv(parsav) - call vcopy(iv(nvdflt), v(parsv1), v(epslon)) - go to 999 -c - 300 iv(1) = 15 - if (pu .eq. 0) go to 999 - write(pu,310) liv, miv2 - 310 format(/10h /// liv =,i5,17h must be at least,i5) - if (liv .lt. miv1) go to 999 - if (lv .lt. iv(lastv)) go to 320 - go to 999 -c - 320 iv(1) = 16 - if (pu .eq. 0) go to 999 - write(pu,330) lv, iv(lastv) - 330 format(/9h /// lv =,i5,17h must be at least,i5) - go to 999 -c - 340 iv(1) = 67 - if (pu .eq. 0) go to 999 - write(pu,350) alg - 350 format(/10h /// alg =,i5,15h must be 1 or 2) -c - 999 return -c *** last card of parck follows *** - end - double precision function reldst(p, d, x, x0) -c -c *** compute and return relative difference between x and x0 *** -c *** nl2sol version 2.2 *** -c - integer p - double precision d(p), x(p), x0(p) -c/+ - double precision dabs -c/ - integer i - double precision emax, t, xmax, zero -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c - emax = zero - xmax = zero - do 10 i = 1, p - t = dabs(d(i) * (x(i) - x0(i))) - if (emax .lt. t) emax = t - t = d(i) * (dabs(x(i)) + dabs(x0(i))) - if (xmax .lt. t) xmax = t - 10 continue - reldst = zero - if (xmax .gt. zero) reldst = emax / xmax - 999 return -c *** last card of reldst follows *** - end -c logical function stopx(idummy) -c *****parameters... -c integer idummy -c -c .................................................................. -c -c *****purpose... -c this function may serve as the stopx (asynchronous interruption) -c function for the nl2sol (nonlinear least-squares) package at -c those installations which do not wish to implement a -c dynamic stopx. -c -c *****algorithm notes... -c at installations where the nl2sol system is used -c interactively, this dummy stopx should be replaced by a -c function that returns .true. if and only if the interrupt -c (break) key has been pressed since the last call on stopx. -c -c .................................................................. -c -c stopx = .false. -c return -c end - subroutine vaxpy(p, w, a, x, y) -c -c *** set w = a*x + y -- w, x, y = p-vectors, a = scalar *** -c - integer p - double precision a, w(p), x(p), y(p) -c - integer i -c - do 10 i = 1, p - 10 w(i) = a*x(i) + y(i) - return - end - subroutine vcopy(p, y, x) -c -c *** set y = x, where x and y are p-vectors *** -c - integer p - double precision x(p), y(p) -c - integer i -c - do 10 i = 1, p - 10 y(i) = x(i) - return - end - subroutine vdflt(alg, lv, v) -c -c *** supply ***sol (version 2.3) default values to v *** -c -c *** alg = 1 means regression constants. -c *** alg = 2 means general unconstrained optimization constants. -c - integer alg, l - double precision v(lv) -c/+ - double precision dmax1 -c/ - external rmdcon - double precision rmdcon -c rmdcon... returns machine-dependent constants -c - double precision machep, mepcrt, one, sqteps, three -c -c *** subscripts for v *** -c - integer afctol, bias, cosmin, decfac, delta0, dfac, dinit, dltfdc, - 1 dltfdj, dtinit, d0init, epslon, eta0, fuzz, huberc, - 2 incfac, lmax0, lmaxs, phmnfc, phmxfc, rdfcmn, rdfcmx, - 3 rfctol, rlimit, rsptol, sctol, sigmin, tuner1, tuner2, - 4 tuner3, tuner4, tuner5, xctol, xftol -c -c/6 -c data one/1.d+0/, three/3.d+0/ -c/7 - parameter (one=1.d+0, three=3.d+0) -c/ -c -c *** v subscript values *** -c -c/6 -c data afctol/31/, bias/43/, cosmin/47/, decfac/22/, delta0/44/, -c 1 dfac/41/, dinit/38/, dltfdc/42/, dltfdj/43/, dtinit/39/, -c 2 d0init/40/, epslon/19/, eta0/42/, fuzz/45/, huberc/48/, -c 3 incfac/23/, lmax0/35/, lmaxs/36/, phmnfc/20/, phmxfc/21/, -c 4 rdfcmn/24/, rdfcmx/25/, rfctol/32/, rlimit/46/, rsptol/49/, -c 5 sctol/37/, sigmin/50/, tuner1/26/, tuner2/27/, tuner3/28/, -c 6 tuner4/29/, tuner5/30/, xctol/33/, xftol/34/ -c/7 - parameter (afctol=31, bias=43, cosmin=47, decfac=22, delta0=44, - 1 dfac=41, dinit=38, dltfdc=42, dltfdj=43, dtinit=39, - 2 d0init=40, epslon=19, eta0=42, fuzz=45, huberc=48, - 3 incfac=23, lmax0=35, lmaxs=36, phmnfc=20, phmxfc=21, - 4 rdfcmn=24, rdfcmx=25, rfctol=32, rlimit=46, rsptol=49, - 5 sctol=37, sigmin=50, tuner1=26, tuner2=27, tuner3=28, - 6 tuner4=29, tuner5=30, xctol=33, xftol=34) -c/ -c -c------------------------------- body -------------------------------- -c - machep = rmdcon(3) - v(afctol) = 1.d-20 - if (machep .gt. 1.d-10) v(afctol) = machep**2 - v(decfac) = 0.5d+0 - sqteps = rmdcon(4) - v(dfac) = 0.6d+0 - v(delta0) = sqteps - v(dtinit) = 1.d-6 - mepcrt = machep ** (one/three) - v(d0init) = 1.d+0 - v(epslon) = 0.1d+0 - v(incfac) = 2.d+0 - v(lmax0) = 1.d+0 - v(lmaxs) = 1.d+0 - v(phmnfc) = -0.1d+0 - v(phmxfc) = 0.1d+0 - v(rdfcmn) = 0.1d+0 - v(rdfcmx) = 4.d+0 - v(rfctol) = dmax1(1.d-10, mepcrt**2) - v(sctol) = v(rfctol) - v(tuner1) = 0.1d+0 - v(tuner2) = 1.d-4 - v(tuner3) = 0.75d+0 - v(tuner4) = 0.5d+0 - v(tuner5) = 0.75d+0 - v(xctol) = sqteps - v(xftol) = 1.d+2 * machep -c - if (alg .ge. 2) go to 10 -c -c *** regression values -c - v(cosmin) = dmax1(1.d-6, 1.d+2 * machep) - v(dinit) = 0.d+0 - v(dltfdc) = mepcrt - v(dltfdj) = sqteps - v(fuzz) = 1.5d+0 - v(huberc) = 0.7d+0 - v(rlimit) = rmdcon(5) - v(rsptol) = 1.d-3 - v(sigmin) = 1.d-4 - go to 999 -c -c *** general optimization values -c - 10 v(bias) = 0.8d+0 - v(dinit) = -1.0d+0 - v(eta0) = 1.0d+3 * machep -c - 999 return -c *** last card of vdflt follows *** - end - subroutine vscopy(p, y, s) -c -c *** set p-vector y to scalar s *** -c - integer p - double precision s, y(p) -c - integer i -c - do 10 i = 1, p - 10 y(i) = s - return - end - double precision function v2norm(p, x) -c -c *** return the 2-norm of the p-vector x, taking *** -c *** care to avoid the most likely underflows. *** -c - integer p - double precision x(p) -c - integer i, j - double precision one, r, scale, sqteta, t, xi, zero -c/+ - double precision dabs, dsqrt -c/ - external rmdcon - double precision rmdcon -c -c/6 -c data one/1.d+0/, zero/0.d+0/ -c/7 - parameter (one=1.d+0, zero=0.d+0) - save sqteta -c/ - data sqteta/0.d+0/ -c - if (p .gt. 0) go to 10 - v2norm = zero - go to 999 - 10 do 20 i = 1, p - if (x(i) .ne. zero) go to 30 - 20 continue - v2norm = zero - go to 999 -c - 30 scale = dabs(x(i)) - if (i .lt. p) go to 40 - v2norm = scale - go to 999 - 40 t = one - if (sqteta .eq. zero) sqteta = rmdcon(2) -c -c *** sqteta is (slightly larger than) the square root of the -c *** smallest positive floating point number on the machine. -c *** the tests involving sqteta are done to prevent underflows. -c - j = i + 1 - do 60 i = j, p - xi = dabs(x(i)) - if (xi .gt. scale) go to 50 - r = xi / scale - if (r .gt. sqteta) t = t + r*r - go to 60 - 50 r = scale / xi - if (r .le. sqteta) r = zero - t = one + t * r*r - scale = xi - 60 continue -c - v2norm = scale * dsqrt(t) - 999 return -c *** last card of v2norm follows *** - end - subroutine humsl(n, d, x, calcf, calcgh, iv, liv, lv, v, - 1 uiparm, urparm, ufparm) -c -c *** minimize general unconstrained objective function using *** -c *** (analytic) gradient and hessian provided by the caller. *** -c - integer liv, lv, n - integer iv(liv), uiparm(1) - double precision d(n), x(n), v(lv), urparm(1) -c dimension v(78 + n*(n+12)), uiparm(*), urparm(*) - external calcf, calcgh, ufparm -c -c------------------------------ discussion --------------------------- -c -c this routine is like sumsl, except that the subroutine para- -c meter calcg of sumsl (which computes the gradient of the objec- -c tive function) is replaced by the subroutine parameter calcgh, -c which computes both the gradient and (lower triangle of the) -c hessian of the objective function. the calling sequence is... -c call calcgh(n, x, nf, g, h, uiparm, urparm, ufparm) -c parameters n, x, nf, g, uiparm, urparm, and ufparm are the same -c as for sumsl, while h is an array of length n*(n+1)/2 in which -c calcgh must store the lower triangle of the hessian at x. start- -c ing at h(1), calcgh must store the hessian entries in the order -c (1,1), (2,1), (2,2), (3,1), (3,2), (3,3), ... -c the value printed (by itsum) in the column labelled stppar -c is the levenberg-marquardt used in computing the current step. -c zero means a full newton step. if the special case described in -c ref. 1 is detected, then stppar is negated. the value printed -c in the column labelled npreldf is zero if the current hessian -c is not positive definite. -c it sometimes proves worthwhile to let d be determined from the -c diagonal of the hessian matrix by setting iv(dtype) = 1 and -c v(dinit) = 0. the following iv and v components are relevant... -c -c iv(dtol)..... iv(59) gives the starting subscript in v of the dtol -c array used when d is updated. (iv(dtol) can be -c initialized by calling humsl with iv(1) = 13.) -c iv(dtype).... iv(16) tells how the scale vector d should be chosen. -c iv(dtype) .le. 0 means that d should not be updated, and -c iv(dtype) .ge. 1 means that d should be updated as -c described below with v(dfac). default = 0. -c v(dfac)..... v(41) and the dtol and d0 arrays (see v(dtinit) and -c v(d0init)) are used in updating the scale vector d when -c iv(dtype) .gt. 0. (d is initialized according to -c v(dinit), described in sumsl.) let -c d1(i) = max(sqrt(abs(h(i,i))), v(dfac)*d(i)), -c where h(i,i) is the i-th diagonal element of the current -c hessian. if iv(dtype) = 1, then d(i) is set to d1(i) -c unless d1(i) .lt. dtol(i), in which case d(i) is set to -c max(d0(i), dtol(i)). -c if iv(dtype) .ge. 2, then d is updated during the first -c iteration as for iv(dtype) = 1 (after any initialization -c due to v(dinit)) and is left unchanged thereafter. -c default = 0.6. -c v(dtinit)... v(39), if positive, is the value to which all components -c of the dtol array (see v(dfac)) are initialized. if -c v(dtinit) = 0, then it is assumed that the caller has -c stored dtol in v starting at v(iv(dtol)). -c default = 10**-6. -c v(d0init)... v(40), if positive, is the value to which all components -c of the d0 vector (see v(dfac)) are initialized. if -c v(dfac) = 0, then it is assumed that the caller has -c stored d0 in v starting at v(iv(dtol)+n). default = 1.0. -c -c *** reference *** -c -c 1. gay, d.m. (1981), computing optimal locally constrained steps, -c siam j. sci. statist. comput. 2, pp. 186-197. -c. -c *** general *** -c -c coded by david m. gay (winter 1980). revised sept. 1982. -c this subroutine was written in connection with research supported -c in part by the national science foundation under grants -c mcs-7600324 and mcs-7906671. -c -c---------------------------- declarations --------------------------- -c - external deflt, humit -c -c deflt... provides default input values for iv and v. -c humit... reverse-communication routine that does humsl algorithm. -c - integer g1, h1, iv1, lh, nf - double precision f -c -c *** subscripts for iv *** -c - integer g, h, nextv, nfcall, nfgcal, toobig, vneed -c -c/6 -c data nextv/47/, nfcall/6/, nfgcal/7/, g/28/, h/56/, toobig/2/, -c 1 vneed/4/ -c/7 - parameter (nextv=47, nfcall=6, nfgcal=7, g=28, h=56, toobig=2, - 1 vneed=4) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - lh = n * (n + 1) / 2 - if (iv(1) .eq. 0) call deflt(2, iv, liv, lv, v) - if (iv(1) .eq. 12 .or. iv(1) .eq. 13) - 1 iv(vneed) = iv(vneed) + n*(n+3)/2 - iv1 = iv(1) - if (iv1 .eq. 14) go to 10 - if (iv1 .gt. 2 .and. iv1 .lt. 12) go to 10 - g1 = 1 - h1 = 1 - if (iv1 .eq. 12) iv(1) = 13 - go to 20 -c - 10 g1 = iv(g) - h1 = iv(h) -c - 20 call humit(d, f, v(g1), v(h1), iv, lh, liv, lv, n, v, x) - if (iv(1) - 2) 30, 40, 50 -c - 30 nf = iv(nfcall) - call calcf(n, x, nf, f, uiparm, urparm, ufparm) - if (nf .le. 0) iv(toobig) = 1 - go to 20 -c - 40 call calcgh(n, x, iv(nfgcal), v(g1), v(h1), uiparm, urparm, - 1 ufparm) - go to 20 -c - 50 if (iv(1) .ne. 14) go to 999 -c -c *** storage allocation -c - iv(g) = iv(nextv) - iv(h) = iv(g) + n - iv(nextv) = iv(h) + n*(n+1)/2 - if (iv1 .ne. 13) go to 10 -c - 999 return -c *** last card of humsl follows *** - end - subroutine humit(d, fx, g, h, iv, lh, liv, lv, n, v, x) -c -c *** carry out humsl (unconstrained minimization) iterations, using -c *** hessian matrix provided by the caller. -c -c *** parameter declarations *** -c - integer lh, liv, lv, n - integer iv(liv) - double precision d(n), fx, g(n), h(lh), v(lv), x(n) -c -c-------------------------- parameter usage -------------------------- -c -c d.... scale vector. -c fx... function value. -c g.... gradient vector. -c h.... lower triangle of the hessian, stored rowwise. -c iv... integer value array. -c lh... length of h = p*(p+1)/2. -c liv.. length of iv (at least 60). -c lv... length of v (at least 78 + n*(n+21)/2). -c n.... number of variables (components in x and g). -c v.... floating-point value array. -c x.... parameter vector. -c -c *** discussion *** -c -c parameters iv, n, v, and x are the same as the corresponding -c ones to humsl (which see), except that v can be shorter (since -c the part of v that humsl uses for storing g and h is not needed). -c moreover, compared with humsl, iv(1) may have the two additional -c output values 1 and 2, which are explained below, as is the use -c of iv(toobig) and iv(nfgcal). the value iv(g), which is an -c output value from humsl, is not referenced by humit or the -c subroutines it calls. -c -c iv(1) = 1 means the caller should set fx to f(x), the function value -c at x, and call humit again, having changed none of the -c other parameters. an exception occurs if f(x) cannot be -c computed (e.g. if overflow would occur), which may happen -c because of an oversized step. in this case the caller -c should set iv(toobig) = iv(2) to 1, which will cause -c humit to ignore fx and try a smaller step. the para- -c meter nf that humsl passes to calcf (for possible use by -c calcgh) is a copy of iv(nfcall) = iv(6). -c iv(1) = 2 means the caller should set g to g(x), the gradient of f at -c x, and h to the lower triangle of h(x), the hessian of f -c at x, and call humit again, having changed none of the -c other parameters except perhaps the scale vector d. -c the parameter nf that humsl passes to calcg is -c iv(nfgcal) = iv(7). if g(x) and h(x) cannot be evaluated, -c then the caller may set iv(nfgcal) to 0, in which case -c humit will return with iv(1) = 65. -c note -- humit overwrites h with the lower triangle -c of diag(d)**-1 * h(x) * diag(d)**-1. -c. -c *** general *** -c -c coded by david m. gay (winter 1980). revised sept. 1982. -c this subroutine was written in connection with research supported -c in part by the national science foundation under grants -c mcs-7600324 and mcs-7906671. -c -c (see sumsl and humsl for references.) -c -c+++++++++++++++++++++++++++ declarations ++++++++++++++++++++++++++++ -c -c *** local variables *** -c - integer dg1, dummy, i, j, k, l, lstgst, nn1o2, step1, - 1 temp1, w1, x01 - double precision t -c -c *** constants *** -c - double precision one, onep2, zero -c -c *** no intrinsic functions *** -c -c *** external functions and subroutines *** -c - external assst, deflt, dotprd, dupdu, gqtst, itsum, parck, - 1 reldst, slvmul, stopx, vaxpy, vcopy, vscopy, v2norm - logical stopx - double precision dotprd, reldst, v2norm -c -c assst.... assesses candidate step. -c deflt.... provides default iv and v input values. -c dotprd... returns inner product of two vectors. -c dupdu.... updates scale vector d. -c gqtst.... computes optimally locally constrained step. -c itsum.... prints iteration summary and info on initial and final x. -c parck.... checks validity of input iv and v values. -c reldst... computes v(reldx) = relative step size. -c slvmul... multiplies symmetric matrix times vector, given the lower -c triangle of the matrix. -c stopx.... returns .true. if the break key has been pressed. -c vaxpy.... computes scalar times one vector plus another. -c vcopy.... copies one vector to another. -c vscopy... sets all elements of a vector to a scalar. -c v2norm... returns the 2-norm of a vector. -c -c *** subscripts for iv and v *** -c - integer cnvcod, dg, dgnorm, dinit, dstnrm, dtinit, dtol, - 1 dtype, d0init, f, f0, fdif, gtstep, incfac, irc, kagqt, - 2 lmat, lmax0, lmaxs, mode, model, mxfcal, mxiter, nextv, - 3 nfcall, nfgcal, ngcall, niter, preduc, radfac, radinc, - 4 radius, rad0, reldx, restor, step, stglim, stlstg, stppar, - 5 toobig, tuner4, tuner5, vneed, w, xirc, x0 -c -c *** iv subscript values *** -c -c/6 -c data cnvcod/55/, dg/37/, dtol/59/, dtype/16/, irc/29/, kagqt/33/, -c 1 lmat/42/, mode/35/, model/5/, mxfcal/17/, mxiter/18/, -c 2 nextv/47/, nfcall/6/, nfgcal/7/, ngcall/30/, niter/31/, -c 3 radinc/8/, restor/9/, step/40/, stglim/11/, stlstg/41/, -c 4 toobig/2/, vneed/4/, w/34/, xirc/13/, x0/43/ -c/7 - parameter (cnvcod=55, dg=37, dtol=59, dtype=16, irc=29, kagqt=33, - 1 lmat=42, mode=35, model=5, mxfcal=17, mxiter=18, - 2 nextv=47, nfcall=6, nfgcal=7, ngcall=30, niter=31, - 3 radinc=8, restor=9, step=40, stglim=11, stlstg=41, - 4 toobig=2, vneed=4, w=34, xirc=13, x0=43) -c/ -c -c *** v subscript values *** -c -c/6 -c data dgnorm/1/, dinit/38/, dstnrm/2/, dtinit/39/, d0init/40/, -c 1 f/10/, f0/13/, fdif/11/, gtstep/4/, incfac/23/, lmax0/35/, -c 2 lmaxs/36/, preduc/7/, radfac/16/, radius/8/, rad0/9/, -c 3 reldx/17/, stppar/5/, tuner4/29/, tuner5/30/ -c/7 - parameter (dgnorm=1, dinit=38, dstnrm=2, dtinit=39, d0init=40, - 1 f=10, f0=13, fdif=11, gtstep=4, incfac=23, lmax0=35, - 2 lmaxs=36, preduc=7, radfac=16, radius=8, rad0=9, - 3 reldx=17, stppar=5, tuner4=29, tuner5=30) -c/ -c -c/6 -c data one/1.d+0/, onep2/1.2d+0/, zero/0.d+0/ -c/7 - parameter (one=1.d+0, onep2=1.2d+0, zero=0.d+0) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - i = iv(1) - if (i .eq. 1) go to 30 - if (i .eq. 2) go to 40 -c -c *** check validity of iv and v input values *** -c - if (iv(1) .eq. 0) call deflt(2, iv, liv, lv, v) - if (iv(1) .eq. 12 .or. iv(1) .eq. 13) - 1 iv(vneed) = iv(vneed) + n*(n+21)/2 + 7 - call parck(2, d, iv, liv, lv, n, v) - i = iv(1) - 2 - if (i .gt. 12) go to 999 - nn1o2 = n * (n + 1) / 2 - if (lh .ge. nn1o2) go to (210,210,210,210,210,210,160,120,160, - 1 10,10,20), i - iv(1) = 66 - go to 350 -c -c *** storage allocation *** -c - 10 iv(dtol) = iv(lmat) + nn1o2 - iv(x0) = iv(dtol) + 2*n - iv(step) = iv(x0) + n - iv(stlstg) = iv(step) + n - iv(dg) = iv(stlstg) + n - iv(w) = iv(dg) + n - iv(nextv) = iv(w) + 4*n + 7 - if (iv(1) .ne. 13) go to 20 - iv(1) = 14 - go to 999 -c -c *** initialization *** -c - 20 iv(niter) = 0 - iv(nfcall) = 1 - iv(ngcall) = 1 - iv(nfgcal) = 1 - iv(mode) = -1 - iv(model) = 1 - iv(stglim) = 1 - iv(toobig) = 0 - iv(cnvcod) = 0 - iv(radinc) = 0 - v(rad0) = zero - v(stppar) = zero - if (v(dinit) .ge. zero) call vscopy(n, d, v(dinit)) - k = iv(dtol) - if (v(dtinit) .gt. zero) call vscopy(n, v(k), v(dtinit)) - k = k + n - if (v(d0init) .gt. zero) call vscopy(n, v(k), v(d0init)) - iv(1) = 1 - go to 999 -c - 30 v(f) = fx - if (iv(mode) .ge. 0) go to 210 - iv(1) = 2 - if (iv(toobig) .eq. 0) go to 999 - iv(1) = 63 - go to 350 -c -c *** make sure gradient could be computed *** -c - 40 if (iv(nfgcal) .ne. 0) go to 50 - iv(1) = 65 - go to 350 -c -c *** update the scale vector d *** -c - 50 dg1 = iv(dg) - if (iv(dtype) .le. 0) go to 70 - k = dg1 - j = 0 - do 60 i = 1, n - j = j + i - v(k) = h(j) - k = k + 1 - 60 continue - call dupdu(d, v(dg1), iv, liv, lv, n, v) -c -c *** compute scaled gradient and its norm *** -c - 70 dg1 = iv(dg) - k = dg1 - do 80 i = 1, n - v(k) = g(i) / d(i) - k = k + 1 - 80 continue - v(dgnorm) = v2norm(n, v(dg1)) -c -c *** compute scaled hessian *** -c - k = 1 - do 100 i = 1, n - t = one / d(i) - do 90 j = 1, i - h(k) = t * h(k) / d(j) - k = k + 1 - 90 continue - 100 continue -c - if (iv(cnvcod) .ne. 0) go to 340 - if (iv(mode) .eq. 0) go to 300 -c -c *** allow first step to have scaled 2-norm at most v(lmax0) *** -c - v(radius) = v(lmax0) -c - iv(mode) = 0 -c -c -c----------------------------- main loop ----------------------------- -c -c -c *** print iteration summary, check iteration limit *** -c - 110 call itsum(d, g, iv, liv, lv, n, v, x) - 120 k = iv(niter) - if (k .lt. iv(mxiter)) go to 130 - iv(1) = 10 - go to 350 -c - 130 iv(niter) = k + 1 -c -c *** initialize for start of next iteration *** -c - dg1 = iv(dg) - x01 = iv(x0) - v(f0) = v(f) - iv(irc) = 4 - iv(kagqt) = -1 -c -c *** copy x to x0 *** -c - call vcopy(n, v(x01), x) -c -c *** update radius *** -c - if (k .eq. 0) go to 150 - step1 = iv(step) - k = step1 - do 140 i = 1, n - v(k) = d(i) * v(k) - k = k + 1 - 140 continue - v(radius) = v(radfac) * v2norm(n, v(step1)) -c -c *** check stopx and function evaluation limit *** -c -C AL 4/30/95 - dummy=iv(nfcall) - 150 if (.not. stopx(dummy)) go to 170 - iv(1) = 11 - go to 180 -c -c *** come here when restarting after func. eval. limit or stopx. -c - 160 if (v(f) .ge. v(f0)) go to 170 - v(radfac) = one - k = iv(niter) - go to 130 -c - 170 if (iv(nfcall) .lt. iv(mxfcal)) go to 190 - iv(1) = 9 - 180 if (v(f) .ge. v(f0)) go to 350 -c -c *** in case of stopx or function evaluation limit with -c *** improved v(f), evaluate the gradient at x. -c - iv(cnvcod) = iv(1) - go to 290 -c -c. . . . . . . . . . . . . compute candidate step . . . . . . . . . . -c - 190 step1 = iv(step) - dg1 = iv(dg) - l = iv(lmat) - w1 = iv(w) - call gqtst(d, v(dg1), h, iv(kagqt), v(l), n, v(step1), v, v(w1)) - if (iv(irc) .eq. 6) go to 210 -c -c *** check whether evaluating f(x0 + step) looks worthwhile *** -c - if (v(dstnrm) .le. zero) go to 210 - if (iv(irc) .ne. 5) go to 200 - if (v(radfac) .le. one) go to 200 - if (v(preduc) .le. onep2 * v(fdif)) go to 210 -c -c *** compute f(x0 + step) *** -c - 200 x01 = iv(x0) - step1 = iv(step) - call vaxpy(n, x, one, v(step1), v(x01)) - iv(nfcall) = iv(nfcall) + 1 - iv(1) = 1 - iv(toobig) = 0 - go to 999 -c -c. . . . . . . . . . . . . assess candidate step . . . . . . . . . . . -c - 210 x01 = iv(x0) - v(reldx) = reldst(n, d, x, v(x01)) - call assst(iv, liv, lv, v) - step1 = iv(step) - lstgst = iv(stlstg) - if (iv(restor) .eq. 1) call vcopy(n, x, v(x01)) - if (iv(restor) .eq. 2) call vcopy(n, v(lstgst), v(step1)) - if (iv(restor) .ne. 3) go to 220 - call vcopy(n, v(step1), v(lstgst)) - call vaxpy(n, x, one, v(step1), v(x01)) - v(reldx) = reldst(n, d, x, v(x01)) -c - 220 k = iv(irc) - go to (230,260,260,260,230,240,250,250,250,250,250,250,330,300), k -c -c *** recompute step with new radius *** -c - 230 v(radius) = v(radfac) * v(dstnrm) - go to 150 -c -c *** compute step of length v(lmaxs) for singular convergence test. -c - 240 v(radius) = v(lmaxs) - go to 190 -c -c *** convergence or false convergence *** -c - 250 iv(cnvcod) = k - 4 - if (v(f) .ge. v(f0)) go to 340 - if (iv(xirc) .eq. 14) go to 340 - iv(xirc) = 14 -c -c. . . . . . . . . . . . process acceptable step . . . . . . . . . . . -c - 260 if (iv(irc) .ne. 3) go to 290 - temp1 = lstgst -c -c *** prepare for gradient tests *** -c *** set temp1 = hessian * step + g(x0) -c *** = diag(d) * (h * step + g(x0)) -c -c use x0 vector as temporary. - k = x01 - do 270 i = 1, n - v(k) = d(i) * v(step1) - k = k + 1 - step1 = step1 + 1 - 270 continue - call slvmul(n, v(temp1), h, v(x01)) - do 280 i = 1, n - v(temp1) = d(i) * v(temp1) + g(i) - temp1 = temp1 + 1 - 280 continue -c -c *** compute gradient and hessian *** -c - 290 iv(ngcall) = iv(ngcall) + 1 - iv(1) = 2 - go to 999 -c - 300 iv(1) = 2 - if (iv(irc) .ne. 3) go to 110 -c -c *** set v(radfac) by gradient tests *** -c - temp1 = iv(stlstg) - step1 = iv(step) -c -c *** set temp1 = diag(d)**-1 * (hessian*step + (g(x0)-g(x))) *** -c - k = temp1 - do 310 i = 1, n - v(k) = (v(k) - g(i)) / d(i) - k = k + 1 - 310 continue -c -c *** do gradient tests *** -c - if (v2norm(n, v(temp1)) .le. v(dgnorm) * v(tuner4)) go to 320 - if (dotprd(n, g, v(step1)) - 1 .ge. v(gtstep) * v(tuner5)) go to 110 - 320 v(radfac) = v(incfac) - go to 110 -c -c. . . . . . . . . . . . . . misc. details . . . . . . . . . . . . . . -c -c *** bad parameters to assess *** -c - 330 iv(1) = 64 - go to 350 -c -c *** print summary of final iteration and other requested items *** -c - 340 iv(1) = iv(cnvcod) - iv(cnvcod) = 0 - 350 call itsum(d, g, iv, liv, lv, n, v, x) -c - 999 return -c -c *** last card of humit follows *** - end - subroutine dupdu(d, hdiag, iv, liv, lv, n, v) -c -c *** update scale vector d for humsl *** -c -c *** parameter declarations *** -c - integer liv, lv, n - integer iv(liv) - double precision d(n), hdiag(n), v(lv) -c -c *** local variables *** -c - integer dtoli, d0i, i - double precision t, vdfac -c -c *** intrinsic functions *** -c/+ - double precision dabs, dmax1, dsqrt -c/ -c *** subscripts for iv and v *** -c - integer dfac, dtol, dtype, niter -c/6 -c data dfac/41/, dtol/59/, dtype/16/, niter/31/ -c/7 - parameter (dfac=41, dtol=59, dtype=16, niter=31) -c/ -c -c------------------------------- body -------------------------------- -c - i = iv(dtype) - if (i .eq. 1) go to 10 - if (iv(niter) .gt. 0) go to 999 -c - 10 dtoli = iv(dtol) - d0i = dtoli + n - vdfac = v(dfac) - do 20 i = 1, n - t = dmax1(dsqrt(dabs(hdiag(i))), vdfac*d(i)) - if (t .lt. v(dtoli)) t = dmax1(v(dtoli), v(d0i)) - d(i) = t - dtoli = dtoli + 1 - d0i = d0i + 1 - 20 continue -c - 999 return -c *** last card of dupdu follows *** - end - subroutine gqtst(d, dig, dihdi, ka, l, p, step, v, w) -c -c *** compute goldfeld-quandt-trotter step by more-hebden technique *** -c *** (nl2sol version 2.2), modified a la more and sorensen *** -c -c *** parameter declarations *** -c - integer ka, p -cal double precision d(p), dig(p), dihdi(1), l(1), v(21), step(p), -cal 1 w(1) - double precision d(p), dig(p), dihdi(p*(p+1)/2), l(p*(p+1)/2), - 1 v(21), step(p),w(4*p+7) -c dimension dihdi(p*(p+1)/2), l(p*(p+1)/2), w(4*p+7) -c -c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -c -c *** purpose *** -c -c given the (compactly stored) lower triangle of a scaled -c hessian (approximation) and a nonzero scaled gradient vector, -c this subroutine computes a goldfeld-quandt-trotter step of -c approximate length v(radius) by the more-hebden technique. in -c other words, step is computed to (approximately) minimize -c psi(step) = (g**t)*step + 0.5*(step**t)*h*step such that the -c 2-norm of d*step is at most (approximately) v(radius), where -c g is the gradient, h is the hessian, and d is a diagonal -c scale matrix whose diagonal is stored in the parameter d. -c (gqtst assumes dig = d**-1 * g and dihdi = d**-1 * h * d**-1.) -c -c *** parameter description *** -c -c d (in) = the scale vector, i.e. the diagonal of the scale -c matrix d mentioned above under purpose. -c dig (in) = the scaled gradient vector, d**-1 * g. if g = 0, then -c step = 0 and v(stppar) = 0 are returned. -c dihdi (in) = lower triangle of the scaled hessian (approximation), -c i.e., d**-1 * h * d**-1, stored compactly by rows., i.e., -c in the order (1,1), (2,1), (2,2), (3,1), (3,2), etc. -c ka (i/o) = the number of hebden iterations (so far) taken to deter- -c mine step. ka .lt. 0 on input means this is the first -c attempt to determine step (for the present dig and dihdi) -c -- ka is initialized to 0 in this case. output with -c ka = 0 (or v(stppar) = 0) means step = -(h**-1)*g. -c l (i/o) = workspace of length p*(p+1)/2 for cholesky factors. -c p (in) = number of parameters -- the hessian is a p x p matrix. -c step (i/o) = the step computed. -c v (i/o) contains various constants and variables described below. -c w (i/o) = workspace of length 4*p + 6. -c -c *** entries in v *** -c -c v(dgnorm) (i/o) = 2-norm of (d**-1)*g. -c v(dstnrm) (output) = 2-norm of d*step. -c v(dst0) (i/o) = 2-norm of d*(h**-1)*g (for pos. def. h only), or -c overestimate of smallest eigenvalue of (d**-1)*h*(d**-1). -c v(epslon) (in) = max. rel. error allowed for psi(step). for the -c step returned, psi(step) will exceed its optimal value -c by less than -v(epslon)*psi(step). suggested value = 0.1. -c v(gtstep) (out) = inner product between g and step. -c v(nreduc) (out) = psi(-(h**-1)*g) = psi(newton step) (for pos. def. -c h only -- v(nreduc) is set to zero otherwise). -c v(phmnfc) (in) = tol. (together with v(phmxfc)) for accepting step -c (more*s sigma). the error v(dstnrm) - v(radius) must lie -c between v(phmnfc)*v(radius) and v(phmxfc)*v(radius). -c v(phmxfc) (in) (see v(phmnfc).) -c suggested values -- v(phmnfc) = -0.25, v(phmxfc) = 0.5. -c v(preduc) (out) = psi(step) = predicted obj. func. reduction for step. -c v(radius) (in) = radius of current (scaled) trust region. -c v(rad0) (i/o) = value of v(radius) from previous call. -c v(stppar) (i/o) is normally the marquardt parameter, i.e. the alpha -c described below under algorithm notes. if h + alpha*d**2 -c (see algorithm notes) is (nearly) singular, however, -c then v(stppar) = -alpha. -c -c *** usage notes *** -c -c if it is desired to recompute step using a different value of -c v(radius), then this routine may be restarted by calling it -c with all parameters unchanged except v(radius). (this explains -c why step and w are listed as i/o). on an initial call (one with -c ka .lt. 0), step and w need not be initialized and only compo- -c nents v(epslon), v(stppar), v(phmnfc), v(phmxfc), v(radius), and -c v(rad0) of v must be initialized. -c -c *** algorithm notes *** -c -c the desired g-q-t step (ref. 2, 3, 4, 6) satisfies -c (h + alpha*d**2)*step = -g for some nonnegative alpha such that -c h + alpha*d**2 is positive semidefinite. alpha and step are -c computed by a scheme analogous to the one described in ref. 5. -c estimates of the smallest and largest eigenvalues of the hessian -c are obtained from the gerschgorin circle theorem enhanced by a -c simple form of the scaling described in ref. 7. cases in which -c h + alpha*d**2 is nearly (or exactly) singular are handled by -c the technique discussed in ref. 2. in these cases, a step of -c (exact) length v(radius) is returned for which psi(step) exceeds -c its optimal value by less than -v(epslon)*psi(step). the test -c suggested in ref. 6 for detecting the special case is performed -c once two matrix factorizations have been done -- doing so sooner -c seems to degrade the performance of optimization routines that -c call this routine. -c -c *** functions and subroutines called *** -c -c dotprd - returns inner product of two vectors. -c litvmu - applies inverse-transpose of compact lower triang. matrix. -c livmul - applies inverse of compact lower triang. matrix. -c lsqrt - finds cholesky factor (of compactly stored lower triang.). -c lsvmin - returns approx. to min. sing. value of lower triang. matrix. -c rmdcon - returns machine-dependent constants. -c v2norm - returns 2-norm of a vector. -c -c *** references *** -c -c 1. dennis, j.e., gay, d.m., and welsch, r.e. (1981), an adaptive -c nonlinear least-squares algorithm, acm trans. math. -c software, vol. 7, no. 3. -c 2. gay, d.m. (1981), computing optimal locally constrained steps, -c siam j. sci. statist. computing, vol. 2, no. 2, pp. -c 186-197. -c 3. goldfeld, s.m., quandt, r.e., and trotter, h.f. (1966), -c maximization by quadratic hill-climbing, econometrica 34, -c pp. 541-551. -c 4. hebden, m.d. (1973), an algorithm for minimization using exact -c second derivatives, report t.p. 515, theoretical physics -c div., a.e.r.e. harwell, oxon., england. -c 5. more, j.j. (1978), the levenberg-marquardt algorithm, implemen- -c tation and theory, pp.105-116 of springer lecture notes -c in mathematics no. 630, edited by g.a. watson, springer- -c verlag, berlin and new york. -c 6. more, j.j., and sorensen, d.c. (1981), computing a trust region -c step, technical report anl-81-83, argonne national lab. -c 7. varga, r.s. (1965), minimal gerschgorin sets, pacific j. math. 15, -c pp. 719-729. -c -c *** general *** -c -c coded by david m. gay. -c this subroutine was written in connection with research -c supported by the national science foundation under grants -c mcs-7600324, dcr75-10143, 76-14311dss, mcs76-11989, and -c mcs-7906671. -c -c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -c -c *** local variables *** -c - logical restrt - integer dggdmx, diag, diag0, dstsav, emax, emin, i, im1, inc, irc, - 1 j, k, kalim, kamin, k1, lk0, phipin, q, q0, uk0, x - double precision alphak, aki, akk, delta, dst, eps, gtsta, lk, - 1 oldphi, phi, phimax, phimin, psifac, rad, radsq, - 2 root, si, sk, sw, t, twopsi, t1, t2, uk, wi -c -c *** constants *** - double precision big, dgxfac, epsfac, four, half, kappa, negone, - 1 one, p001, six, three, two, zero -c -c *** intrinsic functions *** -c/+ - double precision dabs, dmax1, dmin1, dsqrt -c/ -c *** external functions and subroutines *** -c - external dotprd, litvmu, livmul, lsqrt, lsvmin, rmdcon, v2norm - double precision dotprd, lsvmin, rmdcon, v2norm -c -c *** subscripts for v *** -c - integer dgnorm, dstnrm, dst0, epslon, gtstep, stppar, nreduc, - 1 phmnfc, phmxfc, preduc, radius, rad0 -c/6 -c data dgnorm/1/, dstnrm/2/, dst0/3/, epslon/19/, gtstep/4/, -c 1 nreduc/6/, phmnfc/20/, phmxfc/21/, preduc/7/, radius/8/, -c 2 rad0/9/, stppar/5/ -c/7 - parameter (dgnorm=1, dstnrm=2, dst0=3, epslon=19, gtstep=4, - 1 nreduc=6, phmnfc=20, phmxfc=21, preduc=7, radius=8, - 2 rad0=9, stppar=5) -c/ -c -c/6 -c data epsfac/50.0d+0/, four/4.0d+0/, half/0.5d+0/, -c 1 kappa/2.0d+0/, negone/-1.0d+0/, one/1.0d+0/, p001/1.0d-3/, -c 2 six/6.0d+0/, three/3.0d+0/, two/2.0d+0/, zero/0.0d+0/ -c/7 - parameter (epsfac=50.0d+0, four=4.0d+0, half=0.5d+0, - 1 kappa=2.0d+0, negone=-1.0d+0, one=1.0d+0, p001=1.0d-3, - 2 six=6.0d+0, three=3.0d+0, two=2.0d+0, zero=0.0d+0) - save dgxfac -c/ - data big/0.d+0/, dgxfac/0.d+0/ -c -c *** body *** -c -c *** store largest abs. entry in (d**-1)*h*(d**-1) at w(dggdmx). - dggdmx = p + 1 -c *** store gerschgorin over- and underestimates of the largest -c *** and smallest eigenvalues of (d**-1)*h*(d**-1) at w(emax) -c *** and w(emin) respectively. - emax = dggdmx + 1 - emin = emax + 1 -c *** for use in recomputing step, the final values of lk, uk, dst, -c *** and the inverse derivative of more*s phi at 0 (for pos. def. -c *** h) are stored in w(lk0), w(uk0), w(dstsav), and w(phipin) -c *** respectively. - lk0 = emin + 1 - phipin = lk0 + 1 - uk0 = phipin + 1 - dstsav = uk0 + 1 -c *** store diag of (d**-1)*h*(d**-1) in w(diag),...,w(diag0+p). - diag0 = dstsav - diag = diag0 + 1 -c *** store -d*step in w(q),...,w(q0+p). - q0 = diag0 + p - q = q0 + 1 -c *** allocate storage for scratch vector x *** - x = q + p - rad = v(radius) - radsq = rad**2 -c *** phitol = max. error allowed in dst = v(dstnrm) = 2-norm of -c *** d*step. - phimax = v(phmxfc) * rad - phimin = v(phmnfc) * rad - psifac = two * v(epslon) / (three * (four * (v(phmnfc) + one) * - 1 (kappa + one) + kappa + two) * rad**2) -c *** oldphi is used to detect limits of numerical accuracy. if -c *** we recompute step and it does not change, then we accept it. - oldphi = zero - eps = v(epslon) - irc = 0 - restrt = .false. - kalim = ka + 50 -c -c *** start or restart, depending on ka *** -c - if (ka .ge. 0) go to 290 -c -c *** fresh start *** -c - k = 0 - uk = negone - ka = 0 - kalim = 50 - v(dgnorm) = v2norm(p, dig) - v(nreduc) = zero - v(dst0) = zero - kamin = 3 - if (v(dgnorm) .eq. zero) kamin = 0 -c -c *** store diag(dihdi) in w(diag0+1),...,w(diag0+p) *** -c - j = 0 - do 10 i = 1, p - j = j + i - k1 = diag0 + i - w(k1) = dihdi(j) - 10 continue -c -c *** determine w(dggdmx), the largest element of dihdi *** -c - t1 = zero - j = p * (p + 1) / 2 - do 20 i = 1, j - t = dabs(dihdi(i)) - if (t1 .lt. t) t1 = t - 20 continue - w(dggdmx) = t1 -c -c *** try alpha = 0 *** -c - 30 call lsqrt(1, p, l, dihdi, irc) - if (irc .eq. 0) go to 50 -c *** indef. h -- underestimate smallest eigenvalue, use this -c *** estimate to initialize lower bound lk on alpha. - j = irc*(irc+1)/2 - t = l(j) - l(j) = one - do 40 i = 1, irc - 40 w(i) = zero - w(irc) = one - call litvmu(irc, w, l, w) - t1 = v2norm(irc, w) - lk = -t / t1 / t1 - v(dst0) = -lk - if (restrt) go to 210 - go to 70 -c -c *** positive definite h -- compute unmodified newton step. *** - 50 lk = zero - t = lsvmin(p, l, w(q), w(q)) - if (t .ge. one) go to 60 - if (big .le. zero) big = rmdcon(6) - if (v(dgnorm) .ge. t*t*big) go to 70 - 60 call livmul(p, w(q), l, dig) - gtsta = dotprd(p, w(q), w(q)) - v(nreduc) = half * gtsta - call litvmu(p, w(q), l, w(q)) - dst = v2norm(p, w(q)) - v(dst0) = dst - phi = dst - rad - if (phi .le. phimax) go to 260 - if (restrt) go to 210 -c -c *** prepare to compute gerschgorin estimates of largest (and -c *** smallest) eigenvalues. *** -c - 70 k = 0 - do 100 i = 1, p - wi = zero - if (i .eq. 1) go to 90 - im1 = i - 1 - do 80 j = 1, im1 - k = k + 1 - t = dabs(dihdi(k)) - wi = wi + t - w(j) = w(j) + t - 80 continue - 90 w(i) = wi - k = k + 1 - 100 continue -c -c *** (under-)estimate smallest eigenvalue of (d**-1)*h*(d**-1) *** -c - k = 1 - t1 = w(diag) - w(1) - if (p .le. 1) go to 120 - do 110 i = 2, p - j = diag0 + i - t = w(j) - w(i) - if (t .ge. t1) go to 110 - t1 = t - k = i - 110 continue -c - 120 sk = w(k) - j = diag0 + k - akk = w(j) - k1 = k*(k-1)/2 + 1 - inc = 1 - t = zero - do 150 i = 1, p - if (i .eq. k) go to 130 - aki = dabs(dihdi(k1)) - si = w(i) - j = diag0 + i - t1 = half * (akk - w(j) + si - aki) - t1 = t1 + dsqrt(t1*t1 + sk*aki) - if (t .lt. t1) t = t1 - if (i .lt. k) go to 140 - 130 inc = i - 140 k1 = k1 + inc - 150 continue -c - w(emin) = akk - t - uk = v(dgnorm)/rad - w(emin) - if (v(dgnorm) .eq. zero) uk = uk + p001 + p001*uk - if (uk .le. zero) uk = p001 -c -c *** compute gerschgorin (over-)estimate of largest eigenvalue *** -c - k = 1 - t1 = w(diag) + w(1) - if (p .le. 1) go to 170 - do 160 i = 2, p - j = diag0 + i - t = w(j) + w(i) - if (t .le. t1) go to 160 - t1 = t - k = i - 160 continue -c - 170 sk = w(k) - j = diag0 + k - akk = w(j) - k1 = k*(k-1)/2 + 1 - inc = 1 - t = zero - do 200 i = 1, p - if (i .eq. k) go to 180 - aki = dabs(dihdi(k1)) - si = w(i) - j = diag0 + i - t1 = half * (w(j) + si - aki - akk) - t1 = t1 + dsqrt(t1*t1 + sk*aki) - if (t .lt. t1) t = t1 - if (i .lt. k) go to 190 - 180 inc = i - 190 k1 = k1 + inc - 200 continue -c - w(emax) = akk + t - lk = dmax1(lk, v(dgnorm)/rad - w(emax)) -c -c *** alphak = current value of alpha (see alg. notes above). we -c *** use more*s scheme for initializing it. - alphak = dabs(v(stppar)) * v(rad0)/rad -c - if (irc .ne. 0) go to 210 -c -c *** compute l0 for positive definite h *** -c - call livmul(p, w, l, w(q)) - t = v2norm(p, w) - w(phipin) = dst / t / t - lk = dmax1(lk, phi*w(phipin)) -c -c *** safeguard alphak and add alphak*i to (d**-1)*h*(d**-1) *** -c - 210 ka = ka + 1 - if (-v(dst0) .ge. alphak .or. alphak .lt. lk .or. alphak .ge. uk) - 1 alphak = uk * dmax1(p001, dsqrt(lk/uk)) - if (alphak .le. zero) alphak = half * uk - if (alphak .le. zero) alphak = uk - k = 0 - do 220 i = 1, p - k = k + i - j = diag0 + i - dihdi(k) = w(j) + alphak - 220 continue -c -c *** try computing cholesky decomposition *** -c - call lsqrt(1, p, l, dihdi, irc) - if (irc .eq. 0) go to 240 -c -c *** (d**-1)*h*(d**-1) + alphak*i is indefinite -- overestimate -c *** smallest eigenvalue for use in updating lk *** -c - j = (irc*(irc+1))/2 - t = l(j) - l(j) = one - do 230 i = 1, irc - 230 w(i) = zero - w(irc) = one - call litvmu(irc, w, l, w) - t1 = v2norm(irc, w) - lk = alphak - t/t1/t1 - v(dst0) = -lk - go to 210 -c -c *** alphak makes (d**-1)*h*(d**-1) positive definite. -c *** compute q = -d*step, check for convergence. *** -c - 240 call livmul(p, w(q), l, dig) - gtsta = dotprd(p, w(q), w(q)) - call litvmu(p, w(q), l, w(q)) - dst = v2norm(p, w(q)) - phi = dst - rad - if (phi .le. phimax .and. phi .ge. phimin) go to 270 - if (phi .eq. oldphi) go to 270 - oldphi = phi - if (phi .lt. zero) go to 330 -c -c *** unacceptable alphak -- update lk, uk, alphak *** -c - 250 if (ka .ge. kalim) go to 270 -c *** the following dmin1 is necessary because of restarts *** - if (phi .lt. zero) uk = dmin1(uk, alphak) -c *** kamin = 0 only iff the gradient vanishes *** - if (kamin .eq. 0) go to 210 - call livmul(p, w, l, w(q)) - t1 = v2norm(p, w) - alphak = alphak + (phi/t1) * (dst/t1) * (dst/rad) - lk = dmax1(lk, alphak) - go to 210 -c -c *** acceptable step on first try *** -c - 260 alphak = zero -c -c *** successful step in general. compute step = -(d**-1)*q *** -c - 270 do 280 i = 1, p - j = q0 + i - step(i) = -w(j)/d(i) - 280 continue - v(gtstep) = -gtsta - v(preduc) = half * (dabs(alphak)*dst*dst + gtsta) - go to 410 -c -c -c *** restart with new radius *** -c - 290 if (v(dst0) .le. zero .or. v(dst0) - rad .gt. phimax) go to 310 -c -c *** prepare to return newton step *** -c - restrt = .true. - ka = ka + 1 - k = 0 - do 300 i = 1, p - k = k + i - j = diag0 + i - dihdi(k) = w(j) - 300 continue - uk = negone - go to 30 -c - 310 kamin = ka + 3 - if (v(dgnorm) .eq. zero) kamin = 0 - if (ka .eq. 0) go to 50 -c - dst = w(dstsav) - alphak = dabs(v(stppar)) - phi = dst - rad - t = v(dgnorm)/rad - uk = t - w(emin) - if (v(dgnorm) .eq. zero) uk = uk + p001 + p001*uk - if (uk .le. zero) uk = p001 - if (rad .gt. v(rad0)) go to 320 -c -c *** smaller radius *** - lk = zero - if (alphak .gt. zero) lk = w(lk0) - lk = dmax1(lk, t - w(emax)) - if (v(dst0) .gt. zero) lk = dmax1(lk, (v(dst0)-rad)*w(phipin)) - go to 250 -c -c *** bigger radius *** - 320 if (alphak .gt. zero) uk = dmin1(uk, w(uk0)) - lk = dmax1(zero, -v(dst0), t - w(emax)) - if (v(dst0) .gt. zero) lk = dmax1(lk, (v(dst0)-rad)*w(phipin)) - go to 250 -c -c *** decide whether to check for special case... in practice (from -c *** the standpoint of the calling optimization code) it seems best -c *** not to check until a few iterations have failed -- hence the -c *** test on kamin below. -c - 330 delta = alphak + dmin1(zero, v(dst0)) - twopsi = alphak*dst*dst + gtsta - if (ka .ge. kamin) go to 340 -c *** if the test in ref. 2 is satisfied, fall through to handle -c *** the special case (as soon as the more-sorensen test detects -c *** it). - if (delta .ge. psifac*twopsi) go to 370 -c -c *** check for the special case of h + alpha*d**2 (nearly) -c *** singular. use one step of inverse power method with start -c *** from lsvmin to obtain approximate eigenvector corresponding -c *** to smallest eigenvalue of (d**-1)*h*(d**-1). lsvmin returns -c *** x and w with l*w = x. -c - 340 t = lsvmin(p, l, w(x), w) -c -c *** normalize w *** - do 350 i = 1, p - 350 w(i) = t*w(i) -c *** complete current inv. power iter. -- replace w by (l**-t)*w. - call litvmu(p, w, l, w) - t2 = one/v2norm(p, w) - do 360 i = 1, p - 360 w(i) = t2*w(i) - t = t2 * t -c -c *** now w is the desired approximate (unit) eigenvector and -c *** t*x = ((d**-1)*h*(d**-1) + alphak*i)*w. -c - sw = dotprd(p, w(q), w) - t1 = (rad + dst) * (rad - dst) - root = dsqrt(sw*sw + t1) - if (sw .lt. zero) root = -root - si = t1 / (sw + root) -c -c *** the actual test for the special case... -c - if ((t2*si)**2 .le. eps*(dst**2 + alphak*radsq)) go to 380 -c -c *** update upper bound on smallest eigenvalue (when not positive) -c *** (as recommended by more and sorensen) and continue... -c - if (v(dst0) .le. zero) v(dst0) = dmin1(v(dst0), t2**2 - alphak) - lk = dmax1(lk, -v(dst0)) -c -c *** check whether we can hope to detect the special case in -c *** the available arithmetic. accept step as it is if not. -c -c *** if not yet available, obtain machine dependent value dgxfac. - 370 if (dgxfac .eq. zero) dgxfac = epsfac * rmdcon(3) -c - if (delta .gt. dgxfac*w(dggdmx)) go to 250 - go to 270 -c -c *** special case detected... negate alphak to indicate special case -c - 380 alphak = -alphak - v(preduc) = half * twopsi -c -c *** accept current step if adding si*w would lead to a -c *** further relative reduction in psi of less than v(epslon)/3. -c - t1 = zero - t = si*(alphak*sw - half*si*(alphak + t*dotprd(p,w(x),w))) - if (t .lt. eps*twopsi/six) go to 390 - v(preduc) = v(preduc) + t - dst = rad - t1 = -si - 390 do 400 i = 1, p - j = q0 + i - w(j) = t1*w(i) - w(j) - step(i) = w(j) / d(i) - 400 continue - v(gtstep) = dotprd(p, dig, w(q)) -c -c *** save values for use in a possible restart *** -c - 410 v(dstnrm) = dst - v(stppar) = alphak - w(lk0) = lk - w(uk0) = uk - v(rad0) = rad - w(dstsav) = dst -c -c *** restore diagonal of dihdi *** -c - j = 0 - do 420 i = 1, p - j = j + i - k = diag0 + i - dihdi(j) = w(k) - 420 continue -c - 999 return -c -c *** last card of gqtst follows *** - end - subroutine lsqrt(n1, n, l, a, irc) -c -c *** compute rows n1 through n of the cholesky factor l of -c *** a = l*(l**t), where l and the lower triangle of a are both -c *** stored compactly by rows (and may occupy the same storage). -c *** irc = 0 means all went well. irc = j means the leading -c *** principal j x j submatrix of a is not positive definite -- -c *** and l(j*(j+1)/2) contains the (nonpos.) reduced j-th diagonal. -c -c *** parameters *** -c - integer n1, n, irc -cal double precision l(1), a(1) - double precision l(n*(n+1)/2), a(n*(n+1)/2) -c dimension l(n*(n+1)/2), a(n*(n+1)/2) -c -c *** local variables *** -c - integer i, ij, ik, im1, i0, j, jk, jm1, j0, k - double precision t, td, zero -c -c *** intrinsic functions *** -c/+ - double precision dsqrt -c/ -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c -c *** body *** -c - i0 = n1 * (n1 - 1) / 2 - do 50 i = n1, n - td = zero - if (i .eq. 1) go to 40 - j0 = 0 - im1 = i - 1 - do 30 j = 1, im1 - t = zero - if (j .eq. 1) go to 20 - jm1 = j - 1 - do 10 k = 1, jm1 - ik = i0 + k - jk = j0 + k - t = t + l(ik)*l(jk) - 10 continue - 20 ij = i0 + j - j0 = j0 + j - t = (a(ij) - t) / l(j0) - l(ij) = t - td = td + t*t - 30 continue - 40 i0 = i0 + i - t = a(i0) - td - if (t .le. zero) go to 60 - l(i0) = dsqrt(t) - 50 continue -c - irc = 0 - go to 999 -c - 60 l(i0) = t - irc = i -c - 999 return -c -c *** last card of lsqrt *** - end - double precision function lsvmin(p, l, x, y) -c -c *** estimate smallest sing. value of packed lower triang. matrix l -c -c *** parameter declarations *** -c - integer p -cal double precision l(1), x(p), y(p) - double precision l(p*(p+1)/2), x(p), y(p) -c dimension l(p*(p+1)/2) -c -c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -c -c *** purpose *** -c -c this function returns a good over-estimate of the smallest -c singular value of the packed lower triangular matrix l. -c -c *** parameter description *** -c -c p (in) = the order of l. l is a p x p lower triangular matrix. -c l (in) = array holding the elements of l in row order, i.e. -c l(1,1), l(2,1), l(2,2), l(3,1), l(3,2), l(3,3), etc. -c x (out) if lsvmin returns a positive value, then x is a normalized -c approximate left singular vector corresponding to the -c smallest singular value. this approximation may be very -c crude. if lsvmin returns zero, then some components of x -c are zero and the rest retain their input values. -c y (out) if lsvmin returns a positive value, then y = (l**-1)*x is an -c unnormalized approximate right singular vector correspond- -c ing to the smallest singular value. this approximation -c may be crude. if lsvmin returns zero, then y retains its -c input value. the caller may pass the same vector for x -c and y (nonstandard fortran usage), in which case y over- -c writes x (for nonzero lsvmin returns). -c -c *** algorithm notes *** -c -c the algorithm is based on (1), with the additional provision that -c lsvmin = 0 is returned if the smallest diagonal element of l -c (in magnitude) is not more than the unit roundoff times the -c largest. the algorithm uses a random number generator proposed -c in (4), which passes the spectral test with flying colors -- see -c (2) and (3). -c -c *** subroutines and functions called *** -c -c v2norm - function, returns the 2-norm of a vector. -c -c *** references *** -c -c (1) cline, a., moler, c., stewart, g., and wilkinson, j.h.(1977), -c an estimate for the condition number of a matrix, report -c tm-310, applied math. div., argonne national laboratory. -c -c (2) hoaglin, d.c. (1976), theoretical properties of congruential -c random-number generators -- an empirical view, -c memorandum ns-340, dept. of statistics, harvard univ. -c -c (3) knuth, d.e. (1969), the art of computer programming, vol. 2 -c (seminumerical algorithms), addison-wesley, reading, mass. -c -c (4) smith, c.s. (1971), multiplicative pseudo-random number -c generators with prime modulus, j. assoc. comput. mach. 18, -c pp. 586-593. -c -c *** history *** -c -c designed and coded by david m. gay (winter 1977/summer 1978). -c -c *** general *** -c -c this subroutine was written in connection with research -c supported by the national science foundation under grants -c mcs-7600324, dcr75-10143, 76-14311dss, and mcs76-11989. -c -c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -c -c *** local variables *** -c - integer i, ii, ix, j, ji, jj, jjj, jm1, j0, pm1 - double precision b, sminus, splus, t, xminus, xplus -c -c *** constants *** -c - double precision half, one, r9973, zero -c -c *** intrinsic functions *** -c/+ - integer mod - real float - double precision dabs -c/ -c *** external functions and subroutines *** -c - external dotprd, v2norm, vaxpy - double precision dotprd, v2norm -c -c/6 -c data half/0.5d+0/, one/1.d+0/, r9973/9973.d+0/, zero/0.d+0/ -c/7 - parameter (half=0.5d+0, one=1.d+0, r9973=9973.d+0, zero=0.d+0) -c/ -c -c *** body *** -c - ix = 2 - pm1 = p - 1 -c -c *** first check whether to return lsvmin = 0 and initialize x *** -c - ii = 0 - j0 = p*pm1/2 - jj = j0 + p - if (l(jj) .eq. zero) go to 110 - ix = mod(3432*ix, 9973) - b = half*(one + float(ix)/r9973) - xplus = b / l(jj) - x(p) = xplus - if (p .le. 1) go to 60 - do 10 i = 1, pm1 - ii = ii + i - if (l(ii) .eq. zero) go to 110 - ji = j0 + i - x(i) = xplus * l(ji) - 10 continue -c -c *** solve (l**t)*x = b, where the components of b have randomly -c *** chosen magnitudes in (.5,1) with signs chosen to make x large. -c -c do j = p-1 to 1 by -1... - do 50 jjj = 1, pm1 - j = p - jjj -c *** determine x(j) in this iteration. note for i = 1,2,...,j -c *** that x(i) holds the current partial sum for row i. - ix = mod(3432*ix, 9973) - b = half*(one + float(ix)/r9973) - xplus = (b - x(j)) - xminus = (-b - x(j)) - splus = dabs(xplus) - sminus = dabs(xminus) - jm1 = j - 1 - j0 = j*jm1/2 - jj = j0 + j - xplus = xplus/l(jj) - xminus = xminus/l(jj) - if (jm1 .eq. 0) go to 30 - do 20 i = 1, jm1 - ji = j0 + i - splus = splus + dabs(x(i) + l(ji)*xplus) - sminus = sminus + dabs(x(i) + l(ji)*xminus) - 20 continue - 30 if (sminus .gt. splus) xplus = xminus - x(j) = xplus -c *** update partial sums *** - if (jm1 .gt. 0) call vaxpy(jm1, x, xplus, l(j0+1), x) - 50 continue -c -c *** normalize x *** -c - 60 t = one/v2norm(p, x) - do 70 i = 1, p - 70 x(i) = t*x(i) -c -c *** solve l*y = x and return lsvmin = 1/twonorm(y) *** -c - do 100 j = 1, p - jm1 = j - 1 - j0 = j*jm1/2 - jj = j0 + j - t = zero - if (jm1 .gt. 0) t = dotprd(jm1, l(j0+1), y) - y(j) = (x(j) - t) / l(jj) - 100 continue -c - lsvmin = one/v2norm(p, y) - go to 999 -c - 110 lsvmin = zero - 999 return -c *** last card of lsvmin follows *** - end - subroutine slvmul(p, y, s, x) -c -c *** set y = s * x, s = p x p symmetric matrix. *** -c *** lower triangle of s stored rowwise. *** -c -c *** parameter declarations *** -c - integer p -cal double precision s(1), x(p), y(p) - double precision s(p*(p+1)/2), x(p), y(p) -c dimension s(p*(p+1)/2) -c -c *** local variables *** -c - integer i, im1, j, k - double precision xi -c -c *** no intrinsic functions *** -c -c *** external function *** -c - external dotprd - double precision dotprd -c -c----------------------------------------------------------------------- -c - j = 1 - do 10 i = 1, p - y(i) = dotprd(i, s(j), x) - j = j + i - 10 continue -c - if (p .le. 1) go to 999 - j = 1 - do 40 i = 2, p - xi = x(i) - im1 = i - 1 - j = j + 1 - do 30 k = 1, im1 - y(k) = y(k) + s(j)*xi - j = j + 1 - 30 continue - 40 continue -c - 999 return -c *** last card of slvmul follows *** - end diff --git a/source/maxlik/src_CSA/log b/source/maxlik/src_CSA/log deleted file mode 100644 index b503944..0000000 --- a/source/maxlik/src_CSA/log +++ /dev/null @@ -1,2 +0,0 @@ -f77 -c -g -fbounds-check -I. maxlik-opt-el.f -f77 -o ../bin/maxlik-opt-el maxlik-opt-el.o minsumsl.o sumsld.o cored.o rmdd.o diff --git a/source/maxlik/src_CSA/maxlik-opt-el.f b/source/maxlik/src_CSA/maxlik-opt-el.f deleted file mode 100644 index 7ff3c24..0000000 --- a/source/maxlik/src_CSA/maxlik-opt-el.f +++ /dev/null @@ -1,319 +0,0 @@ - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - integer i,j,k,l,ii,nf,n,uiparm(1) - double precision x(maxene) - double precision rmsave(maxT),fdum,rr - external fdum,funclik - double precision quot,quotl,f,T0 /300.0d0/ - character*8 ename(maxene) - common /names/ ename - character*1 restyp(nbase) - data restyp /'A','G','C','T','U'/ - character maskchar(0:1) /' ','*'/ - character*80 Naresfile,Fracfile - double precision g(100) -c print *,"start" - read(1,*) nene,sigma2,wsq - write (2,*) "nene",nene," nT",nT," sigma",sigma2 - read(1,*) (ename(i),i=1,nene) - read(1,*) (weight(i),i=1,nene) - read(1,*) (iweight(i),i=1,nene) - read(1,*) (mask(i),i=1,nene) - do i=1,nnbase - read(1,*) sig0(i),(weightel(3*(i-1)+j),maskel(3*(i-1)+j),j=1,3) - enddo - read(1,'(a)') Naresfile - read(1,'(a)') Fracfile - close(1) - open(7,file=Naresfile,status='old') - i=0 - do -c print *,"i=",i - read(7,*,end=10,err=10) ii,(enetb(j,i+1),j=1,nene), - & ((eletb(3*(j-1)+k,i+1),j=1,nnbase),k=1,3), - & entfac(i+1), - & qtab(i+1),rmstab(i+1),rgytab(i+1), - & fpair(i+1),rr,fdup(i+1) - i=i+1 - enddo - 10 continue - nconf=i - close(7) - write (2,*) "nconf",nconf - write (2,'(/"Initial energy-term weights (* optimized)")') - write (2,'(i5,2x,a4,f10.5,1x,a1,i5)') - & (j,ename(j),weight(j),maskchar(mask(j)),iweight(j),j=1,nene) - ii=0 - write (2,*) - & "Initial base-dipole-interaction parameters (* optimizable)" - do i=1,nbase - do j=1,i - ii=ii+1 - write (2,'(2a2,f10.5,3(f10.5,1x,a1))') restyp(i),restyp(j), - & sig0(ii),(weightel(3*(ii-1)+k),maskchar(maskel(3*(ii-1)+k)), - & k=1,3) - enddo - enddo - write (2,*) "sigma",sigma2," wsq",wsq - sigma2=sigma2*sigma2 - close(7) - open(7,file=Fracfile,status='old') - i=0 - do - read(7,*,end=11,err=11) temper(i+1),frac(i+1) - i=i+1 - enddo - 11 continue - nT=i - close(7) - write (2,*) "Fractions of base pairs" - do i=1,nT - write (2,'(i5,f8.1,f10.5)') i,temper(i),frac(i) - enddo -c Transfer weights to variables - call w2x(n,x) - write (2,*) "n",n -c Compute the temperature scale factors - do i=1,nT - ft(1,i)=1.0d0 - quot=temper(i)/T0 - quotl=1.0d0 - do l=2,2 - quotl=quotl*quot - fT(l,i)=1.12692801104297249644d0/ - & dlog(dexp(quotl)+dexp(-quotl)) - enddo - enddo -c do i=1,nT -c write (2,'(i5,f8.3,f10.5)') (i,(ft(j,i),j=1,2),i=1,nT) -c enddo - - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - write (2,*) "f",f - write(2,'(/a3,a8,3a10)')" Nr"," Temp"," rmsave", - & " fave"," fave(exp)" - do i=1,nT - write (2,'(i3,f8.1,3f10.5)') i,temper(i),rmsave(i), - & fave(i),frac(i) - enddo -c call grad(n,x,nf,g,uiparm,rmsave,fdum) -c write (2,*) "rmsave",(rmsave(i),i=1,nT),"f",f -c stop - call minsumsl(n,x,f) - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - write (2,'(/"Final parameters (",i5,")")') n - do i=1,n - write (2,'(i5,f10.5)') i,x(i) - enddo - write (2,'(/"Energy-term weights (* optimized)")') - write (2,'(i5,2x,a4,f10.5,1x,a1,i5)') - & (j,ename(j),weight(j),maskchar(mask(j)),iweight(j),j=1,nene) - write (2,*) "Base-dipole-interaction parameters (* optimized)" - ii=0 - do i=1,nbase - do j=1,i - ii=ii+1 - write (2,'(2a2,f10.5,3(f10.5,1x,a1))') restyp(i),restyp(j), - & sig0(ii),(weightel(3*(ii-1)+k),maskchar(maskel(3*(ii-1)+k)), - & k=1,3) - enddo - enddo - write (2,*) "f",f - write(2,'(/a3,a8,3a10)')" Nr"," Temp"," rmsave", - & " fave"," fave(exp)" - do i=1,nT - write (2,'(i3,f8.1,3f10.5)') i,temper(i),rmsave(i), - & fave(i),frac(i) - enddo - -c do i=10,30 -c do k=10,30 -c weight(6)=0.1d0*i -c weight(1)=0.1d0*k -c write (2,'(i5,2x,a4,f10.5,i5)') -c & (j,ename(j),weight(j),iweight(j),j=1,nene) -c call funclik(nene,weight,nf,f,uiparm,rmsave,fdum) -c write (2,*) "f",f -c enddo -c enddo - stop - end -c------------------------------------------------------------------------------- - subroutine funclik(n,x,nf,f,uiparm,rmsave,ufparm) - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - character*8 ename(maxene) - common /names/ ename - integer n,nf - double precision f,loglik,chisq - double precision x(n) - integer uiparm - double precision ufparm - external ufparm - double precision ww(maxene),sumlik(maxT),rmsave(maxT) - integer it,i,j,k - double precision beta,over,boltz,sumQ,ener(maxconf),emin,ee,enel, - & sumover,eboltz - call x2w(n,x) - loglik=0.0d0 - chisq=0.0d0 - do iT=1,nT - do i=1,nene - ww(i)=weight(i)*ft(iweight(i),iT) - enddo -c write (2,*) "iT",iT," temper",temper(iT)," beta",beta -c write (2,'(i5,2x,a4,2f10.5,i5,f10.5)') -c & (i,ename(i),weight(i),ww(i),iweight(i),ft(iweight(i),iT), -c & i=1,n) - beta=1.0d0/(temper(iT)*1.987D-3) -c write (2,*) "beta",beta - emin=1.0d10 - do i=1,nconf - enel=0.0d0 - do j=1,nnbase -c write (2,*) -c & i,j,sig0(j),(weightel(3*(j-1)+k),eletb(3*(j-1)+k,i),k=1,3) - enel=enel+weightel(3*(j-1)+1)*sig0(j)**6*eletb(3*(j-1)+1,i) - & +weightel(3*(j-1)+2)*sig0(j)**3*eletb(3*(j-1)+2,i) - & +weightel(3*j)*sig0(j)**6*eletb(3*j,i) - enddo -c write (2,*) i,enel,enetb(6,i) - enetb(6,i)=enel - ener(i)=0.0d0 - do j=1,nene - ener(i)=ener(i)+ww(j)*enetb(j,i) - enddo - ee = ener(i)-entfac(i)/beta - if (ee.lt.emin) emin=ee - enddo - rmsave(it)=0.0d0 - sumlik(it)=0.0d0 - fave(it)=0.0d0 - sumQ=0.0d0 - sumover=0.0d0 - do i=1,nconf - boltz=-beta*(ener(i)-emin)+entfac(i) - eboltz=dexp(boltz) - rmsave(iT)=rmsave(iT)+rmstab(i)*dexp(boltz) - over=dexp(-0.5d0*rmstab(i)**2/sigma2) - if (frac(iT).lt.0.5d0) over=1.0d0-over - sumover=sumover+over -c write (2,*) i,ener(i),entfac(i),rmstab(i),fpair(i),fdup(i), -c & over,boltz,eboltz - fave(iT)=fave(iT)+fdup(i)*eboltz - sumQ=sumQ+eboltz - sumlik(iT)=sumlik(iT)+over*boltz - enddo - fave(iT)=fave(iT)/sumq - sumlik(it)=sumlik(iT)-dlog(sumQ)*sumover - rmsave(iT)=rmsave(iT)/sumQ - if (frac(iT).gt.0.95d0 .or. frac(iT).lt.0.05d0) then - loglik=loglik-sumlik(iT) - endif - chisq=chisq+(frac(iT)-fave(iT))**2 -c write (2,*) iT,temper(iT),rmsave(iT),sumlik(iT),sumQ,sumover, -c & fave(iT),frac(iT) -c call flush(2) - enddo - f = loglik/nconf+wsq*chisq -c write (2,*) "loglik",loglik/nconf," chisq",chisq," f",f - return - end -c------------------------------------------------------------------------------- - subroutine grad(n,x,nf,g,uiparm,urparm,ufparm) - implicit none - integer n,nf,uiparm(1) - double precision x(n),g(n),urparm(1),ufparm - external ufparm - integer i - double precision xi,fplus,fminus,delta/1.0d-9/,delta2/2.0d-9/ - do i=1,n - xi=x(i) - x(i)=xi+delta - call funclik(n,x,nf,fplus,uiparm,urparm,ufparm) - x(i)=xi-delta - call funclik(n,x,nf,fminus,uiparm,urparm,ufparm) - g(i)=(fplus-fminus)/delta2 -c write(2,*) i,fplus,fminus,g(i) - enddo - return - end -c------------------------------------------------------------------------------- - double precision function fdum() - fdum=0.0d0 - return - end -c------------------------------------------------------------------------------- - logical function stopx(idum) - integer idum - stopx=.false. - return - end -c------------------------------------------------------------------------------- - subroutine x2w(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - double precision fabs - integer n,i,ii - double precision x(n) - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - weight(i)=fabs(x(ii)) - endif - enddo - do i=1,nnbase - if (maskel(3*(i-1)+1).gt.0) then - ii=ii+1 - weightel(3*(i-1)+1)=-fabs(x(ii)) - endif - if (maskel(3*(i-1)+2).gt.0) then - ii=ii+1 - weightel(3*(i-1)+2)=x(ii) - endif - if (maskel(3*i).gt.0) then - ii=ii+1 - weightel(3*i)=-fabs(x(ii)) - endif - enddo - return - end -c------------------------------------------------------------------------------- - subroutine w2x(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - integer n,i,ii - double precision x(maxene+3*nnbase) - ii=0 - do i=1,nene -c write (2,*) "i",i," mask",mask(i)," ii",ii - if (mask(i).gt.0) then - ii=ii+1 - x(ii)=weight(i) - endif - enddo - do i=1,3*nnbase -c write (2,*) "i",i," maskel",maskel(i)," ii",ii - if (maskel(i).gt.0) then - ii=ii+1 - x(ii)=weightel(i) - endif - enddo - n=ii -c write (2,*) "W2X: n=",n - return - end -c------------------------------------------------------------------------------------ - double precision function fabs(x) - double precision x - double precision a /100.0d0/ - if (dabs(x).gt.1.0d-2) then - fabs = dabs(x) - else - fabs = dlog(dexp(a*x)+dexp(-a*x))/a - endif - return - end diff --git a/source/maxlik/src_CSA/maxlik-opt-multprot.f b/source/maxlik/src_CSA/maxlik-opt-multprot.f deleted file mode 100644 index e51674f..0000000 --- a/source/maxlik/src_CSA/maxlik-opt-multprot.f +++ /dev/null @@ -1,254 +0,0 @@ - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - integer i,j,k,l,ii,iprot,nf,n,uiparm(1),ienecheck - double precision x(maxene) - double precision urparm(1),fdum,rjunk - external fdum,funclik - double precision quot,quotl,f,T0 /300.0d0/ - character*8 ename(maxene) - character*480 karta - common /names/ ename - character*32 protfile(maxprot) -c print *,"start" - read(1,*) nprot,nene,sigma2,temper(1),ienecheck - nT = 1 - write (2,*) "nene",nene," nT",nT," sigma",sigma2, - & " ienechek",ienecheck - read(1,*) (ename(i),i=1,nene) - read(1,*) (weight(i),i=1,nene) -c read(1,*) (iweight(i),i=1,nene) - read(1,*) (mask(i),i=1,nene) -c read(1,*) (temper(i),i=1,nT) - - do iprot=1,nprot - - read (1,'(2a)') protname(iprot) - read (1,'(2a)') protfile(iprot) - - write (2,*) "Reading data for protein ",protname(iprot) - write (2,*) "File: ",protfile(iprot) - - open (7,file=protfile(iprot),status='old') - - i=0 - do -c print *,"i=",i - read(7,'(a)',end=10) karta - if (index(karta,'#').gt.0) cycle - read(karta,*,end=10,err=10) ii,(enetb(j,i+1,iprot),j=1,nene), - & ener0(i+1,iprot),rmstab(i+1,iprot),rjunk,rjunk,qtab(i+1,iprot) - i=i+1 - enddo - 10 continue - nconf(iprot)=i - do i=1,nconf(iprot) - entfac(i,iprot)=0.0d0 - enddo - write (2,*) "Protein:",iprot, " nconf",nconf(iprot) - - close(7) - - enddo ! iprot - - write (2,'(i5,2x,a4,f10.5,2i5)') - & (i,ename(i),weight(i),iweight(i),mask(i),i=1,nene) - sigma2=sigma2*sigma2 -c Transfer weights to variables - call w2x(n,x) -c write (2,*) "BEFORE funclik: x",(x(i),i=1,n) - call funclik(n,x,nf,f,uiparm,urparm,fdum) - - if (ienecheck.gt.0) then - write (2,*) "Checking energies" - do iprot=1,nprot - write (2,*) "Protein",iprot," name",protname(iprot) - write (2,'(a5,2a15)') "Conf","UNRES-calc E","Initial E" - do i=1,nconf(iprot) - write (2,'(i5,2e15.5)') i,ener0(i,iprot),ener(i,iprot) - enddo - enddo - endif - - do iprot=1,nprot - write (2,*) "Protein",iprot," name",protname(iprot) - write (2,*) "Initial average rmsd(s)" - write (2,*) "rmsave",(rmsave(i,iprot),i=1,nT) - enddo - write (2,*) "Initial target function f",f - - call minsumsl(n,x,f) - write (2,*) "n",n," x",(x(i),i=1,n) - write (2,'(i5,2x,a4,f10.5,i5)') - & (j,ename(j),weight(j),iweight(j),j=1,nene) - write (2,*) "f",f - call funclik(n,x,nf,f,uiparm,urparm,fdum) - - do iprot=1,nprot - write (2,*) "Protein",iprot," name",protname(iprot) - write (2,*) "rmsave",(rmsave(i,iprot),i=1,nT) - enddo - write (2,*) "Final target function f",f - -c do i=10,30 -c do k=10,30 -c weight(6)=0.1d0*i -c weight(1)=0.1d0*k -c write (2,'(i5,2x,a4,f10.5,i5)') -c & (j,ename(j),weight(j),iweight(j),j=1,nene) -c call funclik(nene,weight,nf,f,uiparm,rmsave,fdum) -c write (2,*) "f",f -c enddo -c enddo - stop - end -c------------------------------------------------------------------------------- - subroutine funclik(n,x,nf,f,uiparm,urparm,ufparm) - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - character*8 ename(maxene) - common /names/ ename - integer n,nf,iprot - double precision f - double precision x(n) - integer uiparm - double precision ufparm - external ufparm - double precision ww(maxene) - double precision urparm(1) - integer it,i,j - double precision beta,over,boltz,sumQ,emin,ee, - & sumover -c write (2,*) "funclik: x",(x(i),i=1,n) - call x2w(n,x) - f=0.0d0 - - -c do iT=1,nT -c write (2,'(i5,2x,a4,f10.5,i5)') -c & (i,ename(i),weight(i),ww(i),iweight(i),ft(iweight(i),iT), -c & (i,ename(i),weight(i),iweight(i), -c & i=21,20+n) -c enddo - - do iprot=1,nprot - - do iT=1,nT - do i=1,nene - ww(i)=weight(i) - enddo - beta=1.0d0/(temper(iT)*1.987D-3) -c write (2,*) "iprot",iprot," iT",iT," temper",temper(iT), -c & " beta",beta -c write (2,*) "beta",beta - emin=1.0d10 - do i=1,nconf(iprot) - ener(i,iprot)=0.0d0 - do j=1,nene - ener(i,iprot)=ener(i,iprot)+ww(j)*enetb(j,i,iprot) - enddo - ee = ener(i,iprot)-entfac(i,iprot)/beta - if (ee.lt.emin) emin=ee - enddo - rmsave(it,iprot)=0.0d0 - sumlik(it,iprot)=0.0d0 - sumQ=0.0d0 - sumover=0.0d0 - do i=1,nconf(iprot) - over=dexp(-0.5d0*rmstab(i,iprot)**2/sigma2) -c if (temper(iT).gt.340.0d0) over=1.0d0-over - sumover=sumover+over - boltz=-beta*(ener(i,iprot)-emin)+entfac(i,iprot) -c write (2,*) i,ener(i),entfac(i),rmstab(i),over,boltz, -c & dexp(boltz) - sumQ=sumQ+dexp(boltz) - rmsave(iT,iprot)=rmsave(iT,iprot)+rmstab(i,iprot)*dexp(boltz) - sumlik(iT,iprot)=sumlik(iT,iprot)+over*boltz - enddo - sumlik(it,iprot)=sumlik(iT,iprot)-dlog(sumQ)*sumover - rmsave(iT,iprot)=rmsave(iT,iprot)/sumQ -c write (2,*) iprot,iT,temper(iT),rmsave(iT,iprot), -c & sumlik(iT,iprot),sumQ,sumover -c write (2,*) iT,temper(iT),rmsave(iT,iprot),sumlik(iT,iprot), -c & sumQ,sumover - f=f-sumlik(iT,iprot) - enddo - - enddo ! iprot - - return - end -c------------------------------------------------------------------------------- - subroutine grad(n,x,nf,g,uiparm,urparm,ufparm) - implicit none - integer n,nf,uiparm(1) - double precision x(n),g(n),urparm(1),ufparm - external ufparm - integer i - double precision xi,fplus,fminus,delta/1.0d-9/,delta2/2.0d-9/ - do i=1,n - xi=x(i) - x(i)=xi+delta - call funclik(n,x,nf,fplus,uiparm,urparm,ufparm) - x(i)=xi-delta - call funclik(n,x,nf,fminus,uiparm,urparm,ufparm) - g(i)=(fplus-fminus)/delta2 -c write(2,*) i,fplus,fminus,g(i) - enddo - return - end -c------------------------------------------------------------------------------- - double precision function fdum() - fdum=0.0d0 - return - end -c------------------------------------------------------------------------------- - logical function stopx(idum) - integer idum - stopx=.false. - return - end -c------------------------------------------------------------------------------- - subroutine x2w(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - integer n,i,ii - double precision x(n) - double precision fabs - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - weight(i)=fabs(x(ii)) - endif - enddo - return - end -c------------------------------------------------------------------------------- - subroutine w2x(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - integer n,i,ii - double precision x(maxene) - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - x(ii)=weight(i) - endif - enddo - n=ii - return - end -c------------------------------------------------------------------------------- - double precision function fabs(x) - double precision x - double precision a /1.0d4/ - if (dabs(x).gt.1.0d-2) then - fabs = dabs(x) - else - fabs = dlog(dexp(a*x)+dexp(-a*x))/a - endif - return - end diff --git a/source/maxlik/src_CSA/maxlik-opt-tmscore.f b/source/maxlik/src_CSA/maxlik-opt-tmscore.f deleted file mode 100644 index cbcbcc7..0000000 --- a/source/maxlik/src_CSA/maxlik-opt-tmscore.f +++ /dev/null @@ -1,200 +0,0 @@ - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - integer i,j,k,l,ii,nf,n,uiparm(1) - double precision x(maxene) - double precision rmsave(maxT),fdum,rjunk - external fdum,funclik - double precision quot,quotl,f,T0 /300.0d0/ - character*8 ename(maxene) - common /names/ ename -c print *,"start" - read(1,*) nene,sigma2,temper(1) - nT = 1 - write (2,*) "nene",nene," nT",nT," sigma",sigma2 - read(1,*) (ename(i),i=1,nene) - read(1,*) (weight(i),i=1,nene) -c read(1,*) (iweight(i),i=1,nene) - read(1,*) (mask(i),i=1,nene) -c read(1,*) (temper(i),i=1,nT) - i=0 - do -c print *,"i=",i - read(1,*,end=10,err=10) ii,(enetb(j,i+1),j=1,nene),ener0(i+1), - & rmstab(i+1),rjunk,rjunk,rjunk,qtab(i+1) - i=i+1 - enddo - 10 continue - nconf=i - do i=1,nconf - entfac(i)=0.0d0 - enddo - write (2,*) "nconf",nconf - write (2,'(i5,2x,a4,f10.5,2i5)') - & (i,ename(i),weight(i),iweight(i),mask(i),i=1,nene) - sigma2=sigma2*sigma2 -c Transfer weights to variables - call w2x(n,x) - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - do i=1,nconf - write (2,'(i5,2e15.5)') i,ener0(i),ener(i) - enddo - write (2,*) "rmsave",(rmsave(i),i=1,nT),"f",f - call minsumsl(n,x,f) - write (2,*) "n",n," x",(x(i),i=1,n) - write (2,'(i5,2x,a4,f10.5,i5)') - & (j,ename(j),weight(j),iweight(j),j=1,nene) - write (2,*) "f",f - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - write (2,*) "rmsave",(rmsave(i),i=1,nT),"f",f - -c do i=10,30 -c do k=10,30 -c weight(6)=0.1d0*i -c weight(1)=0.1d0*k -c write (2,'(i5,2x,a4,f10.5,i5)') -c & (j,ename(j),weight(j),iweight(j),j=1,nene) -c call funclik(nene,weight,nf,f,uiparm,rmsave,fdum) -c write (2,*) "f",f -c enddo -c enddo - stop - end -c------------------------------------------------------------------------------- - subroutine funclik(n,x,nf,f,uiparm,rmsave,ufparm) - implicit none - include "DIMENSIONS" - include "COMMON.CALC" - character*8 ename(maxene) - common /names/ ename - integer n,nf - double precision f - double precision x(n) - integer uiparm - double precision ufparm - external ufparm - double precision ww(maxene),sumlik(maxT),rmsave(maxT) - integer it,i,j - double precision beta,over,boltz,sumQ,emin,ee, - & sumover - call x2w(n,x) - f=0.0d0 - do iT=1,nT - do i=1,nene - ww(i)=weight(i) - enddo - write (2,*) "iT",iT," temper",temper(iT)," beta",beta - write (2,'(i5,2x,a4,2f10.5,i5)') -c write (2,'(i5,2x,a4,2f10.5,i5,f10.5)') -c & (i,ename(i),weight(i),ww(i),iweight(i),ft(iweight(i),iT), - & (i,ename(i),weight(i),ww(i),iweight(i), - & i=21,20+n) - beta=1.0d0/(temper(iT)*1.987D-3) -c write (2,*) "beta",beta - emin=1.0d10 - do i=1,nconf - ener(i)=0.0d0 - do j=1,nene - ener(i)=ener(i)+ww(j)*enetb(j,i) - enddo - ee = ener(i)-entfac(i)/beta - if (ee.lt.emin) emin=ee - enddo - rmsave(it)=0.0d0 - sumlik(it)=0.0d0 - sumQ=0.0d0 - sumover=0.0d0 - do i=1,nconf -crms over=dexp(-0.5d0*rmstab(i)**2/sigma2) - over=dexp(-0.5d0*(1-qtab(i))**2/sigma2) -c if (temper(iT).gt.340.0d0) over=1.0d0-over - sumover=sumover+over - boltz=-beta*(ener(i)-emin)+entfac(i) -c write (2,*) i,ener(i),entfac(i),rmstab(i),over,boltz, -c & dexp(boltz) - sumQ=sumQ+dexp(boltz) -crms rmsave(iT)=rmsave(iT)+rmstab(i)*dexp(boltz) - rmsave(iT)=rmsave(iT)+(1-qtab(i))*dexp(boltz) - sumlik(iT)=sumlik(iT)+over*boltz - enddo - sumlik(it)=sumlik(iT)-dlog(sumQ)*sumover - rmsave(iT)=rmsave(iT)/sumQ - write (2,*) iT,temper(iT),rmsave(iT),sumlik(iT),sumQ,sumover -c write (2,*) iT,temper(iT),rmsave(iT),sumlik(iT),sumQ,sumover - f=f-sumlik(iT) - enddo - return - end -c------------------------------------------------------------------------------- - subroutine grad(n,x,nf,g,uiparm,urparm,ufparm) - implicit none - integer n,nf,uiparm(1) - double precision x(n),g(n),urparm(1),ufparm - external ufparm - integer i - double precision xi,fplus,fminus,delta/1.0d-9/,delta2/2.0d-9/ - do i=1,n - xi=x(i) - x(i)=xi+delta - call funclik(n,x,nf,fplus,uiparm,urparm,ufparm) - x(i)=xi-delta - call funclik(n,x,nf,fminus,uiparm,urparm,ufparm) - g(i)=(fplus-fminus)/delta2 -c write(2,*) i,fplus,fminus,g(i) - enddo - return - end -c------------------------------------------------------------------------------- - double precision function fdum() - fdum=0.0d0 - return - end -c------------------------------------------------------------------------------- - logical function stopx(idum) - integer idum - stopx=.false. - return - end -c------------------------------------------------------------------------------- - subroutine x2w(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - integer n,i,ii - double precision x(n) - double precision fabs - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - weight(i)=fabs(x(ii)) - endif - enddo - return - end -c------------------------------------------------------------------------------- - subroutine w2x(n,x) - include "DIMENSIONS" - include "COMMON.CALC" - integer n,i,ii - double precision x(maxene) - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - x(ii)=weight(i) - endif - enddo - n=ii - return - end -c------------------------------------------------------------------------------- - double precision function fabs(x) - double precision x - double precision a /100.0d0/ - if (dabs(x).gt.1.0d-4) then - fabs = dabs(x) - else - fabs = dlog(dexp(a*x)+dexp(-a*x))/a - endif - return - end diff --git a/source/maxlik/src_CSA/maxlik-opt.f b/source/maxlik/src_CSA/maxlik-opt.f deleted file mode 100644 index d93d91f..0000000 --- a/source/maxlik/src_CSA/maxlik-opt.f +++ /dev/null @@ -1,198 +0,0 @@ - implicit none - include "DIMENSIONS" - include "COMMON.CALC-single" - integer i,j,k,l,ii,nf,n,uiparm(1) - double precision x(maxene) - double precision rmsave(maxT),fdum,rjunk - external fdum,funclik - double precision quot,quotl,f,T0 /300.0d0/ - character*8 ename(maxene) - common /names/ ename -c print *,"start" - read(1,*) nene,sigma2,temper(1) - nT = 1 - write (2,*) "nene",nene," nT",nT," sigma",sigma2 - read(1,*) (ename(i),i=1,nene) - read(1,*) (weight(i),i=1,nene) -c read(1,*) (iweight(i),i=1,nene) - read(1,*) (mask(i),i=1,nene) -c read(1,*) (temper(i),i=1,nT) - i=0 - do -c print *,"i=",i - read(1,*,end=10,err=10) ii,(enetb(j,i+1),j=1,nene),ener0(i+1), - & rmstab(i+1),rjunk,rjunk,qtab(i+1) - i=i+1 - enddo - 10 continue - nconf=i - do i=1,nconf - entfac(i)=0.0d0 - enddo - write (2,*) "nconf",nconf - write (2,'(i5,2x,a4,f10.5,2i5)') - & (i,ename(i),weight(i),iweight(i),mask(i),i=1,nene) - sigma2=sigma2*sigma2 -c Transfer weights to variables - call w2x(n,x) - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - do i=1,nconf - write (2,'(i5,2e15.5)') i,ener0(i),ener(i) - enddo - write (2,*) "rmsave",(rmsave(i),i=1,nT),"f",f - call minsumsl(n,x,f) - write (2,*) "n",n," x",(x(i),i=1,n) - write (2,'(i5,2x,a4,f10.5,i5)') - & (j,ename(j),weight(j),iweight(j),j=1,nene) - write (2,*) "f",f - call funclik(n,x,nf,f,uiparm,rmsave,fdum) - write (2,*) "rmsave",(rmsave(i),i=1,nT),"f",f - -c do i=10,30 -c do k=10,30 -c weight(6)=0.1d0*i -c weight(1)=0.1d0*k -c write (2,'(i5,2x,a4,f10.5,i5)') -c & (j,ename(j),weight(j),iweight(j),j=1,nene) -c call funclik(nene,weight,nf,f,uiparm,rmsave,fdum) -c write (2,*) "f",f -c enddo -c enddo - stop - end -c------------------------------------------------------------------------------- - subroutine funclik(n,x,nf,f,uiparm,rmsave,ufparm) - implicit none - include "DIMENSIONS" - include "COMMON.CALC-single" - character*8 ename(maxene) - common /names/ ename - integer n,nf - double precision f - double precision x(n) - integer uiparm - double precision ufparm - external ufparm - double precision ww(maxene),sumlik(maxT),rmsave(maxT) - integer it,i,j - double precision beta,over,boltz,sumQ,emin,ee, - & sumover - call x2w(n,x) - f=0.0d0 - do iT=1,nT - do i=1,nene - ww(i)=weight(i) - enddo - beta=1.0d0/(temper(iT)*1.987D-3) - write (2,*) "iT",iT," temper",temper(iT)," beta",beta - write (2,'(i5,2x,a4,2f10.5,i5)') -c write (2,'(i5,2x,a4,2f10.5,i5,f10.5)') -c & (i,ename(i),weight(i),ww(i),iweight(i),ft(iweight(i),iT), - & (i,ename(i),weight(i),ww(i),iweight(i), - & i=21,20+n) -c write (2,*) "beta",beta - emin=1.0d10 - do i=1,nconf - ener(i)=0.0d0 - do j=1,nene - ener(i)=ener(i)+ww(j)*enetb(j,i) - enddo - ee = ener(i)-entfac(i)/beta - if (ee.lt.emin) emin=ee - enddo - rmsave(it)=0.0d0 - sumlik(it)=0.0d0 - sumQ=0.0d0 - sumover=0.0d0 - do i=1,nconf - over=dexp(-0.5d0*rmstab(i)**2/sigma2) -c if (temper(iT).gt.340.0d0) over=1.0d0-over - sumover=sumover+over - boltz=-beta*(ener(i)-emin)+entfac(i) -c write (2,*) i,ener(i),entfac(i),rmstab(i),over,boltz, -c & dexp(boltz) - sumQ=sumQ+dexp(boltz) - rmsave(iT)=rmsave(iT)+rmstab(i)*dexp(boltz) - sumlik(iT)=sumlik(iT)+over*boltz - enddo - sumlik(it)=sumlik(iT)-dlog(sumQ)*sumover - rmsave(iT)=rmsave(iT)/sumQ - write (2,*) iT,temper(iT),rmsave(iT),sumlik(iT),sumQ,sumover -c write (2,*) iT,temper(iT),rmsave(iT),sumlik(iT),sumQ,sumover - f=f-sumlik(iT) - enddo - return - end -c------------------------------------------------------------------------------- - subroutine grad(n,x,nf,g,uiparm,urparm,ufparm) - implicit none - integer n,nf,uiparm(1) - double precision x(n),g(n),urparm(1),ufparm - external ufparm - integer i - double precision xi,fplus,fminus,delta/1.0d-9/,delta2/2.0d-9/ - do i=1,n - xi=x(i) - x(i)=xi+delta - call funclik(n,x,nf,fplus,uiparm,urparm,ufparm) - x(i)=xi-delta - call funclik(n,x,nf,fminus,uiparm,urparm,ufparm) - g(i)=(fplus-fminus)/delta2 -c write(2,*) i,fplus,fminus,g(i) - enddo - return - end -c------------------------------------------------------------------------------- - double precision function fdum() - fdum=0.0d0 - return - end -c------------------------------------------------------------------------------- - logical function stopx(idum) - integer idum - stopx=.false. - return - end -c------------------------------------------------------------------------------- - subroutine x2w(n,x) - include "DIMENSIONS" - include "COMMON.CALC-single" - integer n,i,ii - double precision x(n) - double precision fabs - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - weight(i)=fabs(x(ii)) - endif - enddo - return - end -c------------------------------------------------------------------------------- - subroutine w2x(n,x) - include "DIMENSIONS" - include "COMMON.CALC-single" - integer n,i,ii - double precision x(maxene) - ii=0 - do i=1,nene - if (mask(i).gt.0) then - ii=ii+1 - x(ii)=weight(i) - endif - enddo - n=ii - return - end -c------------------------------------------------------------------------------- - double precision function fabs(x) - double precision x - double precision a /1.0d4/ - if (dabs(x).gt.1.0d-2) then - fabs = dabs(x) - else - fabs = dlog(dexp(a*x)+dexp(-a*x))/a - endif - return - end diff --git a/source/maxlik/src_CSA/minsumsl.f b/source/maxlik/src_CSA/minsumsl.f deleted file mode 100644 index 53105e5..0000000 --- a/source/maxlik/src_CSA/minsumsl.f +++ /dev/null @@ -1,86 +0,0 @@ - subroutine minsumsl(nvar,x,minval) - implicit real*8 (a-h,o-z) - include 'DIMENSIONS' - parameter (maxvar=maxene+3*nnbase) - parameter (liv=60,lv=(77+maxvar*(maxvar+17)/2)) -********************************************************************* -* OPTIMIZE sets up SUMSL or DFP and provides a simple interface for * -* the calling subprogram. * -* when d(i)=1.0, then v(35) is the length of the initial step, * -* calculated in the usual pythagorean way. * -* absolute convergence occurs when the function is within v(31) of * -* zero. unless you know the minimum value in advance, abs convg * -* is probably not useful. * -* relative convergence is when the model predicts that the function * -* will decrease by less than v(32)*abs(fun). * -********************************************************************* - dimension iv(liv) - real*8 minval,x(nvar),d(maxvar),v(1:lv) - external funclik,grad,fdum - integer idum(1) - double precision rdum(1) - double precision urparm(maxT) - double precision g(maxvar) - call deflt(2,iv,liv,lv,v) -* 12 means fresh start, dont call deflt - iv(1)=12 -* max num of fun calls - maxfun=1000 - iv(17)=maxfun -* max num of iterations - maxit=50 - iv(18)=maxit -* controls output - iv(19)=1 -* selects output unit - iv(21)=2 -* 1 means to print out result - iv(22)=1 -* 1 means to print out summary stats - iv(23)=1 -* 1 means to print initial x and d - iv(24)=1 -* min val for v(radfac) default is 0.1 - v(24)=0.01D0 -* max val for v(radfac) default is 4.0 - v(25)=2.0D0 -c v(25)=4.0D0 -* check false conv if (act fnctn decrease) .lt. v(26)*(exp decrease) -* the sumsl default is 0.1 - v(26)=0.001D0 -* false conv if (act fnctn decrease) .lt. v(34) -* the sumsl default is 100*machep - v(34)=v(34)/100.0D0 -* absolute convergence - tolf=1.0D-4 - v(31)=tolf -* relative convergence - rtolf=1.0D-12 - v(32)=rtolf -* controls initial step size - v(35)=1.0D-6 -* large vals of d correspond to small components of step - do 20 i=1,nvar - d(i)=1.0D0 -20 continue - - nf=0 - call funclik(nvar,x,nf,f,idum,urparm,fdum) - write (2,'(a,1pe17.10)') 'Initial function value:',f - call grad(nvar,x,nf,g,idum,urparm,fdum) - write (2,*) "Initial gradient" - do i=1,nvar - write (2,'(i5,e15.5)') i,g(i) - enddo -c minimize the log-likelihood function - print *,"iv1",iv(1) - call sumsl(nvar,d,x,funclik,grad,iv,liv,lv,v,idum,urparm,fdum) - minval=v(10) - write (2,*) - write (2,'(a,i4)') 'SUMSL return code:',iv(1) - write (2,'(a,1pe17.10)') 'Final function value:',minval -c print *,"exiting minsumsl" - return - end -c--------------------------------------------------------------------- - diff --git a/source/maxlik/src_CSA/rmdd.f b/source/maxlik/src_CSA/rmdd.f deleted file mode 100644 index 799ab47..0000000 --- a/source/maxlik/src_CSA/rmdd.f +++ /dev/null @@ -1,159 +0,0 @@ -c algorithm 611, collected algorithms from acm. -c algorithm appeared in acm-trans. math. software, vol.9, no. 4, -c dec., 1983, p. 503-524. - integer function imdcon(k) -c - integer k -c -c *** return integer machine-dependent constants *** -c -c *** k = 1 means return standard output unit number. *** -c *** k = 2 means return alternate output unit number. *** -c *** k = 3 means return input unit number. *** -c (note -- k = 2, 3 are used only by test programs.) -c -c +++ port version follows... -c external i1mach -c integer i1mach -c integer mdperm(3) -c data mdperm(1)/2/, mdperm(2)/4/, mdperm(3)/1/ -c imdcon = i1mach(mdperm(k)) -c +++ end of port version +++ -c -c +++ non-port version follows... - integer mdcon(3) - data mdcon(1)/6/, mdcon(2)/8/, mdcon(3)/5/ - imdcon = mdcon(k) -c +++ end of non-port version +++ -c - 999 return -c *** last card of imdcon follows *** - end - double precision function rmdcon(k) -c -c *** return machine dependent constants used by nl2sol *** -c -c +++ comments below contain data statements for various machines. +++ -c +++ to convert to another machine, place a c in column 1 of the +++ -c +++ data statement line(s) that correspond to the current machine +++ -c +++ and remove the c from column 1 of the data statement line(s) +++ -c +++ that correspond to the new machine. +++ -c - integer k -c -c *** the constant returned depends on k... -c -c *** k = 1... smallest pos. eta such that -eta exists. -c *** k = 2... square root of eta. -c *** k = 3... unit roundoff = smallest pos. no. machep such -c *** that 1 + machep .gt. 1 .and. 1 - machep .lt. 1. -c *** k = 4... square root of machep. -c *** k = 5... square root of big (see k = 6). -c *** k = 6... largest machine no. big such that -big exists. -c - double precision big, eta, machep - integer bigi(4), etai(4), machei(4) -c/+ - double precision dsqrt -c/ - equivalence (big,bigi(1)), (eta,etai(1)), (machep,machei(1)) -c -c +++ ibm 360, ibm 370, or xerox +++ -c -c data big/z7fffffffffffffff/, eta/z0010000000000000/, -c 1 machep/z3410000000000000/ -c -c +++ data general +++ -c -c data big/0.7237005577d+76/, eta/0.5397605347d-78/, -c 1 machep/2.22044605d-16/ -c -c +++ dec 11 +++ -c -c data big/1.7d+38/, eta/2.938735878d-39/, machep/2.775557562d-17/ -c -c +++ hp3000 +++ -c -c data big/1.157920892d+77/, eta/8.636168556d-78/, -c 1 machep/5.551115124d-17/ -c -c +++ honeywell +++ -c -c data big/1.69d+38/, eta/5.9d-39/, machep/2.1680435d-19/ -c -c +++ dec10 +++ -c -c data big/"377777100000000000000000/, -c 1 eta/"002400400000000000000000/, -c 2 machep/"104400000000000000000000/ -c -c +++ burroughs +++ -c -c data big/o0777777777777777,o7777777777777777/, -c 1 eta/o1771000000000000,o7770000000000000/, -c 2 machep/o1451000000000000,o0000000000000000/ -c -c +++ control data +++ -c -c data big/37767777777777777777b,37167777777777777777b/, -c 1 eta/00014000000000000000b,00000000000000000000b/, -c 2 machep/15614000000000000000b,15010000000000000000b/ -c -c +++ prime +++ -c -c data big/1.0d+9786/, eta/1.0d-9860/, machep/1.4210855d-14/ -c -c +++ univac +++ -c -c data big/8.988d+307/, eta/1.2d-308/, machep/1.734723476d-18/ -c -c +++ vax +++ -c - data big/1.7d+38/, eta/2.939d-39/, machep/1.3877788d-17/ -c -c +++ cray 1 +++ -c -c data bigi(1)/577767777777777777777b/, -c 1 bigi(2)/000007777777777777776b/, -c 2 etai(1)/200004000000000000000b/, -c 3 etai(2)/000000000000000000000b/, -c 4 machei(1)/377224000000000000000b/, -c 5 machei(2)/000000000000000000000b/ -c -c +++ port library -- requires more than just a data statement... +++ -c -c external d1mach -c double precision d1mach, zero -c data big/0.d+0/, eta/0.d+0/, machep/0.d+0/, zero/0.d+0/ -c if (big .gt. zero) go to 1 -c big = d1mach(2) -c eta = d1mach(1) -c machep = d1mach(4) -c1 continue -c -c +++ end of port +++ -c -c------------------------------- body -------------------------------- -c - go to (10, 20, 30, 40, 50, 60), k -c - 10 rmdcon = eta - go to 999 -c - 20 rmdcon = dsqrt(256.d+0*eta)/16.d+0 - go to 999 -c - 30 rmdcon = machep - go to 999 -c - 40 rmdcon = dsqrt(machep) - go to 999 -c - 50 rmdcon = dsqrt(big/256.d+0)*16.d+0 - go to 999 -c - 60 rmdcon = big -c - 999 return -c *** last card of rmdcon follows *** - end diff --git a/source/maxlik/src_CSA/sumsld.f b/source/maxlik/src_CSA/sumsld.f deleted file mode 100644 index 1ce7b78..0000000 --- a/source/maxlik/src_CSA/sumsld.f +++ /dev/null @@ -1,1446 +0,0 @@ - subroutine sumsl(n, d, x, calcf, calcg, iv, liv, lv, v, - 1 uiparm, urparm, ufparm) -c -c *** minimize general unconstrained objective function using *** -c *** analytic gradient and hessian approx. from secant update *** -c - integer n, liv, lv - integer iv(liv), uiparm(1) - double precision d(n), x(n), v(lv), urparm(1) -c dimension v(71 + n*(n+15)/2), uiparm(*), urparm(*) - external calcf, calcg, ufparm -c -c *** purpose *** -c -c this routine interacts with subroutine sumit in an attempt -c to find an n-vector x* that minimizes the (unconstrained) -c objective function computed by calcf. (often the x* found is -c a local minimizer rather than a global one.) -c -c-------------------------- parameter usage -------------------------- -c -c n........ (input) the number of variables on which f depends, i.e., -c the number of components in x. -c d........ (input/output) a scale vector such that d(i)*x(i), -c i = 1,2,...,n, are all in comparable units. -c d can strongly affect the behavior of sumsl. -c finding the best choice of d is generally a trial- -c and-error process. choosing d so that d(i)*x(i) -c has about the same value for all i often works well. -c the defaults provided by subroutine deflt (see i -c below) require the caller to supply d. -c x........ (input/output) before (initially) calling sumsl, the call- -c er should set x to an initial guess at x*. when -c sumsl returns, x contains the best point so far -c found, i.e., the one that gives the least value so -c far seen for f(x). -c calcf.... (input) a subroutine that, given x, computes f(x). calcf -c must be declared external in the calling program. -c it is invoked by -c call calcf(n, x, nf, f, uiparm, urparm, ufparm) -c when calcf is called, nf is the invocation -c count for calcf. nf is included for possible use -c with calcg. if x is out of bounds (e.g., if it -c would cause overflow in computing f(x)), then calcf -c should set nf to 0. this will cause a shorter step -c to be attempted. (if x is in bounds, then calcf -c should not change nf.) the other parameters are as -c described above and below. calcf should not change -c n, p, or x. -c calcg.... (input) a subroutine that, given x, computes g(x), the gra- -c dient of f at x. calcg must be declared external in -c the calling program. it is invoked by -c call calcg(n, x, nf, g, uiparm, urparm, ufaprm) -c when calcg is called, nf is the invocation -c count for calcf at the time f(x) was evaluated. the -c x passed to calcg is usually the one passed to calcf -c on either its most recent invocation or the one -c prior to it. if calcf saves intermediate results -c for use by calcg, then it is possible to tell from -c nf whether they are valid for the current x (or -c which copy is valid if two copies are kept). if g -c cannot be computed at x, then calcg should set nf to -c 0. in this case, sumsl will return with iv(1) = 65. -c (if g can be computed at x, then calcg should not -c changed nf.) the other parameters to calcg are as -c described above and below. calcg should not change -c n or x. -c iv....... (input/output) an integer value array of length liv (see -c below) that helps control the sumsl algorithm and -c that is used to store various intermediate quanti- -c ties. of particular interest are the initialization/ -c return code iv(1) and the entries in iv that control -c printing and limit the number of iterations and func- -c tion evaluations. see the section on iv input -c values below. -c liv...... (input) length of iv array. must be at least 60. if li -c is too small, then sumsl returns with iv(1) = 15. -c when sumsl returns, the smallest allowed value of -c liv is stored in iv(lastiv) -- see the section on -c iv output values below. (this is intended for use -c with extensions of sumsl that handle constraints.) -c lv....... (input) length of v array. must be at least 71+n*(n+15)/2. -c (at least 77+n*(n+17)/2 for smsno, at least -c 78+n*(n+12) for humsl). if lv is too small, then -c sumsl returns with iv(1) = 16. when sumsl returns, -c the smallest allowed value of lv is stored in -c iv(lastv) -- see the section on iv output values -c below. -c v........ (input/output) a floating-point value array of length l -c (see below) that helps control the sumsl algorithm -c and that is used to store various intermediate -c quantities. of particular interest are the entries -c in v that limit the length of the first step -c attempted (lmax0) and specify convergence tolerances -c (afctol, lmaxs, rfctol, sctol, xctol, xftol). -c uiparm... (input) user integer parameter array passed without change -c to calcf and calcg. -c urparm... (input) user floating-point parameter array passed without -c change to calcf and calcg. -c ufparm... (input) user external subroutine or function passed without -c change to calcf and calcg. -c -c *** iv input values (from subroutine deflt) *** -c -c iv(1)... on input, iv(1) should have a value between 0 and 14...... -c 0 and 12 mean this is a fresh start. 0 means that -c deflt(2, iv, liv, lv, v) -c is to be called to provide all default values to iv and -c v. 12 (the value that deflt assigns to iv(1)) means the -c caller has already called deflt and has possibly changed -c some iv and/or v entries to non-default values. -c 13 means deflt has been called and that sumsl (and -c sumit) should only do their storage allocation. that is, -c they should set the output components of iv that tell -c where various subarrays arrays of v begin, such as iv(g) -c (and, for humsl and humit only, iv(dtol)), and return. -c 14 means that a storage has been allocated (by a call -c with iv(1) = 13) and that the algorithm should be -c started. when called with iv(1) = 13, sumsl returns -c iv(1) = 14 unless liv or lv is too small (or n is not -c positive). default = 12. -c iv(inith).... iv(25) tells whether the hessian approximation h should -c be initialized. 1 (the default) means sumit should -c initialize h to the diagonal matrix whose i-th diagonal -c element is d(i)**2. 0 means the caller has supplied a -c cholesky factor l of the initial hessian approximation -c h = l*(l**t) in v, starting at v(iv(lmat)) = v(iv(42)) -c (and stored compactly by rows). note that iv(lmat) may -c be initialized by calling sumsl with iv(1) = 13 (see -c the iv(1) discussion above). default = 1. -c iv(mxfcal)... iv(17) gives the maximum number of function evaluations -c (calls on calcf) allowed. if this number does not suf- -c fice, then sumsl returns with iv(1) = 9. default = 200. -c iv(mxiter)... iv(18) gives the maximum number of iterations allowed. -c it also indirectly limits the number of gradient evalua- -c tions (calls on calcg) to iv(mxiter) + 1. if iv(mxiter) -c iterations do not suffice, then sumsl returns with -c iv(1) = 10. default = 150. -c iv(outlev)... iv(19) controls the number and length of iteration sum- -c mary lines printed (by itsum). iv(outlev) = 0 means do -c not print any summary lines. otherwise, print a summary -c line after each abs(iv(outlev)) iterations. if iv(outlev) -c is positive, then summary lines of length 78 (plus carri- -c age control) are printed, including the following... the -c iteration and function evaluation counts, f = the current -c function value, relative difference in function values -c achieved by the latest step (i.e., reldf = (f0-v(f))/f01, -c where f01 is the maximum of abs(v(f)) and abs(v(f0)) and -c v(f0) is the function value from the previous itera- -c tion), the relative function reduction predicted for the -c step just taken (i.e., preldf = v(preduc) / f01, where -c v(preduc) is described below), the scaled relative change -c in x (see v(reldx) below), the step parameter for the -c step just taken (stppar = 0 means a full newton step, -c between 0 and 1 means a relaxed newton step, between 1 -c and 2 means a double dogleg step, greater than 2 means -c a scaled down cauchy step -- see subroutine dbldog), the -c 2-norm of the scale vector d times the step just taken -c (see v(dstnrm) below), and npreldf, i.e., -c v(nreduc)/f01, where v(nreduc) is described below -- if -c npreldf is positive, then it is the relative function -c reduction predicted for a newton step (one with -c stppar = 0). if npreldf is negative, then it is the -c negative of the relative function reduction predicted -c for a step computed with step bound v(lmaxs) for use in -c testing for singular convergence. -c if iv(outlev) is negative, then lines of length 50 -c are printed, including only the first 6 items listed -c above (through reldx). -c default = 1. -c iv(parprt)... iv(20) = 1 means print any nondefault v values on a -c fresh start or any changed v values on a restart. -c iv(parprt) = 0 means skip this printing. default = 1. -c iv(prunit)... iv(21) is the output unit number on which all printing -c is done. iv(prunit) = 0 means suppress all printing. -c default = standard output unit (unit 6 on most systems). -c iv(solprt)... iv(22) = 1 means print out the value of x returned (as -c well as the gradient and the scale vector d). -c iv(solprt) = 0 means skip this printing. default = 1. -c iv(statpr)... iv(23) = 1 means print summary statistics upon return- -c ing. these consist of the function value, the scaled -c relative change in x caused by the most recent step (see -c v(reldx) below), the number of function and gradient -c evaluations (calls on calcf and calcg), and the relative -c function reductions predicted for the last step taken and -c for a newton step (or perhaps a step bounded by v(lmaxs) -c -- see the descriptions of preldf and npreldf under -c iv(outlev) above). -c iv(statpr) = 0 means skip this printing. -c iv(statpr) = -1 means skip this printing as well as that -c of the one-line termination reason message. default = 1. -c iv(x0prt).... iv(24) = 1 means print the initial x and scale vector d -c (on a fresh start only). iv(x0prt) = 0 means skip this -c printing. default = 1. -c -c *** (selected) iv output values *** -c -c iv(1)........ on output, iv(1) is a return code.... -c 3 = x-convergence. the scaled relative difference (see -c v(reldx)) between the current parameter vector x and -c a locally optimal parameter vector is very likely at -c most v(xctol). -c 4 = relative function convergence. the relative differ- -c ence between the current function value and its lo- -c cally optimal value is very likely at most v(rfctol). -c 5 = both x- and relative function convergence (i.e., the -c conditions for iv(1) = 3 and iv(1) = 4 both hold). -c 6 = absolute function convergence. the current function -c value is at most v(afctol) in absolute value. -c 7 = singular convergence. the hessian near the current -c iterate appears to be singular or nearly so, and a -c step of length at most v(lmaxs) is unlikely to yield -c a relative function decrease of more than v(sctol). -c 8 = false convergence. the iterates appear to be converg- -c ing to a noncritical point. this may mean that the -c convergence tolerances (v(afctol), v(rfctol), -c v(xctol)) are too small for the accuracy to which -c the function and gradient are being computed, that -c there is an error in computing the gradient, or that -c the function or gradient is discontinuous near x. -c 9 = function evaluation limit reached without other con- -c vergence (see iv(mxfcal)). -c 10 = iteration limit reached without other convergence -c (see iv(mxiter)). -c 11 = stopx returned .true. (external interrupt). see the -c usage notes below. -c 14 = storage has been allocated (after a call with -c iv(1) = 13). -c 17 = restart attempted with n changed. -c 18 = d has a negative component and iv(dtype) .le. 0. -c 19...43 = v(iv(1)) is out of range. -c 63 = f(x) cannot be computed at the initial x. -c 64 = bad parameters passed to assess (which should not -c occur). -c 65 = the gradient could not be computed at x (see calcg -c above). -c 67 = bad first parameter to deflt. -c 80 = iv(1) was out of range. -c 81 = n is not positive. -c iv(g)........ iv(28) is the starting subscript in v of the current -c gradient vector (the one corresponding to x). -c iv(lastiv)... iv(44) is the least acceptable value of liv. (it is -c only set if liv is at least 44.) -c iv(lastv).... iv(45) is the least acceptable value of lv. (it is -c only set if liv is large enough, at least iv(lastiv).) -c iv(nfcall)... iv(6) is the number of calls so far made on calcf (i.e., -c function evaluations). -c iv(ngcall)... iv(30) is the number of gradient evaluations (calls on -c calcg). -c iv(niter).... iv(31) is the number of iterations performed. -c -c *** (selected) v input values (from subroutine deflt) *** -c -c v(bias)..... v(43) is the bias parameter used in subroutine dbldog -- -c see that subroutine for details. default = 0.8. -c v(afctol)... v(31) is the absolute function convergence tolerance. -c if sumsl finds a point where the function value is less -c than v(afctol) in absolute value, and if sumsl does not -c return with iv(1) = 3, 4, or 5, then it returns with -c iv(1) = 6. this test can be turned off by setting -c v(afctol) to zero. default = max(10**-20, machep**2), -c where machep is the unit roundoff. -c v(dinit).... v(38), if nonnegative, is the value to which the scale -c vector d is initialized. default = -1. -c v(lmax0).... v(35) gives the maximum 2-norm allowed for d times the -c very first step that sumsl attempts. this parameter can -c markedly affect the performance of sumsl. -c v(lmaxs).... v(36) is used in testing for singular convergence -- if -c the function reduction predicted for a step of length -c bounded by v(lmaxs) is at most v(sctol) * abs(f0), where -c f0 is the function value at the start of the current -c iteration, and if sumsl does not return with iv(1) = 3, -c 4, 5, or 6, then it returns with iv(1) = 7. default = 1. -c v(rfctol)... v(32) is the relative function convergence tolerance. -c if the current model predicts a maximum possible function -c reduction (see v(nreduc)) of at most v(rfctol)*abs(f0) -c at the start of the current iteration, where f0 is the -c then current function value, and if the last step attempt- -c ed achieved no more than twice the predicted function -c decrease, then sumsl returns with iv(1) = 4 (or 5). -c default = max(10**-10, machep**(2/3)), where machep is -c the unit roundoff. -c v(sctol).... v(37) is the singular convergence tolerance -- see the -c description of v(lmaxs) above. -c v(tuner1)... v(26) helps decide when to check for false convergence. -c this is done if the actual function decrease from the -c current step is no more than v(tuner1) times its predict- -c ed value. default = 0.1. -c v(xctol).... v(33) is the x-convergence tolerance. if a newton step -c (see v(nreduc)) is tried that has v(reldx) .le. v(xctol) -c and if this step yields at most twice the predicted func- -c tion decrease, then sumsl returns with iv(1) = 3 (or 5). -c (see the description of v(reldx) below.) -c default = machep**0.5, where machep is the unit roundoff. -c v(xftol).... v(34) is the false convergence tolerance. if a step is -c tried that gives no more than v(tuner1) times the predict- -c ed function decrease and that has v(reldx) .le. v(xftol), -c and if sumsl does not return with iv(1) = 3, 4, 5, 6, or -c 7, then it returns with iv(1) = 8. (see the description -c of v(reldx) below.) default = 100*machep, where -c machep is the unit roundoff. -c v(*)........ deflt supplies to v a number of tuning constants, with -c which it should ordinarily be unnecessary to tinker. see -c section 17 of version 2.2 of the nl2sol usage summary -c (i.e., the appendix to ref. 1) for details on v(i), -c i = decfac, incfac, phmnfc, phmxfc, rdfcmn, rdfcmx, -c tuner2, tuner3, tuner4, tuner5. -c -c *** (selected) v output values *** -c -c v(dgnorm)... v(1) is the 2-norm of (diag(d)**-1)*g, where g is the -c most recently computed gradient. -c v(dstnrm)... v(2) is the 2-norm of diag(d)*step, where step is the -c current step. -c v(f)........ v(10) is the current function value. -c v(f0)....... v(13) is the function value at the start of the current -c iteration. -c v(nreduc)... v(6), if positive, is the maximum function reduction -c possible according to the current model, i.e., the func- -c tion reduction predicted for a newton step (i.e., -c step = -h**-1 * g, where g is the current gradient and -c h is the current hessian approximation). -c if v(nreduc) is negative, then it is the negative of -c the function reduction predicted for a step computed with -c a step bound of v(lmaxs) for use in testing for singular -c convergence. -c v(preduc)... v(7) is the function reduction predicted (by the current -c quadratic model) for the current step. this (divided by -c v(f0)) is used in testing for relative function -c convergence. -c v(reldx).... v(17) is the scaled relative change in x caused by the -c current step, computed as -c max(abs(d(i)*(x(i)-x0(i)), 1 .le. i .le. p) / -c max(d(i)*(abs(x(i))+abs(x0(i))), 1 .le. i .le. p), -c where x = x0 + step. -c -c------------------------------- notes ------------------------------- -c -c *** algorithm notes *** -c -c this routine uses a hessian approximation computed from the -c bfgs update (see ref 3). only a cholesky factor of the hessian -c approximation is stored, and this is updated using ideas from -c ref. 4. steps are computed by the double dogleg scheme described -c in ref. 2. the steps are assessed as in ref. 1. -c -c *** usage notes *** -c -c after a return with iv(1) .le. 11, it is possible to restart, -c i.e., to change some of the iv and v input values described above -c and continue the algorithm from the point where it was interrupt- -c ed. iv(1) should not be changed, nor should any entries of i -c and v other than the input values (those supplied by deflt). -c those who do not wish to write a calcg which computes the -c gradient analytically should call smsno rather than sumsl. -c smsno uses finite differences to compute an approximate gradient. -c those who would prefer to provide f and g (the function and -c gradient) by reverse communication rather than by writing subrou- -c tines calcf and calcg may call on sumit directly. see the com- -c ments at the beginning of sumit. -c those who use sumsl interactively may wish to supply their -c own stopx function, which should return .true. if the break key -c has been pressed since stopx was last invoked. this makes it -c possible to externally interrupt sumsl (which will return with -c iv(1) = 11 if stopx returns .true.). -c storage for g is allocated at the end of v. thus the caller -c may make v longer than specified above and may allow calcg to use -c elements of g beyond the first n as scratch storage. -c -c *** portability notes *** -c -c the sumsl distribution tape contains both single- and double- -c precision versions of the sumsl source code, so it should be un- -c necessary to change precisions. -c only the functions imdcon and rmdcon contain machine-dependent -c constants. to change from one machine to another, it should -c suffice to change the (few) relevant lines in these functions. -c intrinsic functions are explicitly declared. on certain com- -c puters (e.g. univac), it may be necessary to comment out these -c declarations. so that this may be done automatically by a simple -c program, such declarations are preceded by a comment having c/+ -c in columns 1-3 and blanks in columns 4-72 and are followed by -c a comment having c/ in columns 1 and 2 and blanks in columns 3-72. -c the sumsl source code is expressed in 1966 ansi standard -c fortran. it may be converted to fortran 77 by commenting out all -c lines that fall between a line having c/6 in columns 1-3 and a -c line having c/7 in columns 1-3 and by removing (i.e., replacing -c by a blank) the c in column 1 of the lines that follow the c/7 -c line and precede a line having c/ in columns 1-2 and blanks in -c columns 3-72. these changes convert some data statements into -c parameter statements, convert some variables from real to -c character*4, and make the data statements that initialize these -c variables use character strings delimited by primes instead -c of hollerith constants. (such variables and data statements -c appear only in modules itsum and parck. parameter statements -c appear nearly everywhere.) these changes also add save state- -c ments for variables given machine-dependent constants by rmdcon. -c -c *** references *** -c -c 1. dennis, j.e., gay, d.m., and welsch, r.e. (1981), algorithm 573 -- -c an adaptive nonlinear least-squares algorithm, acm trans. -c math. software 7, pp. 369-383. -c -c 2. dennis, j.e., and mei, h.h.w. (1979), two new unconstrained opti- -c mization algorithms which use function and gradient -c values, j. optim. theory applic. 28, pp. 453-482. -c -c 3. dennis, j.e., and more, j.j. (1977), quasi-newton methods, motiva- -c tion and theory, siam rev. 19, pp. 46-89. -c -c 4. goldfarb, d. (1976), factorized variable metric methods for uncon- -c strained optimization, math. comput. 30, pp. 796-811. -c -c *** general *** -c -c coded by david m. gay (winter 1980). revised summer 1982. -c this subroutine was written in connection with research -c supported in part by the national science foundation under -c grants mcs-7600324, dcr75-10143, 76-14311dss, mcs76-11989, -c and mcs-7906671. -c. -c -c---------------------------- declarations --------------------------- -c - external deflt, sumit -c -c deflt... supplies default iv and v input components. -c sumit... reverse-communication routine that carries out sumsl algo- -c rithm. -c - integer g1, iv1, nf - double precision f -c -c *** subscripts for iv *** -c - integer nextv, nfcall, nfgcal, g, toobig, vneed -c -c/6 -c data nextv/47/, nfcall/6/, nfgcal/7/, g/28/, toobig/2/, vneed/4/ -c/7 - parameter (nextv=47, nfcall=6, nfgcal=7, g=28, toobig=2, vneed=4) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - if (iv(1) .eq. 0) call deflt(2, iv, liv, lv, v) - iv1 = iv(1) - if (iv1 .eq. 12 .or. iv1 .eq. 13) iv(vneed) = iv(vneed) + n - if (iv1 .eq. 14) go to 10 - if (iv1 .gt. 2 .and. iv1 .lt. 12) go to 10 - g1 = 1 - if (iv1 .eq. 12) iv(1) = 13 - go to 20 -c - 10 g1 = iv(g) -c - 20 call sumit(d, f, v(g1), iv, liv, lv, n, v, x) - if (iv(1) - 2) 30, 40, 50 -c - 30 nf = iv(nfcall) - call calcf(n, x, nf, f, uiparm, urparm, ufparm) - if (nf .le. 0) iv(toobig) = 1 - go to 20 -c - 40 call calcg(n, x, iv(nfgcal), v(g1), uiparm, urparm, ufparm) - go to 20 -c - 50 if (iv(1) .ne. 14) go to 999 -c -c *** storage allocation -c - iv(g) = iv(nextv) - iv(nextv) = iv(g) + n - if (iv1 .ne. 13) go to 10 -c - 999 return -c *** last card of sumsl follows *** - end - subroutine sumit(d, fx, g, iv, liv, lv, n, v, x) -c -c *** carry out sumsl (unconstrained minimization) iterations, using -c *** double-dogleg/bfgs steps. -c -c *** parameter declarations *** -c - integer liv, lv, n - integer iv(liv) - double precision d(n), fx, g(n), v(lv), x(n) -c -c-------------------------- parameter usage -------------------------- -c -c d.... scale vector. -c fx... function value. -c g.... gradient vector. -c iv... integer value array. -c liv.. length of iv (at least 60). -c lv... length of v (at least 71 + n*(n+13)/2). -c n.... number of variables (components in x and g). -c v.... floating-point value array. -c x.... vector of parameters to be optimized. -c -c *** discussion *** -c -c parameters iv, n, v, and x are the same as the corresponding -c ones to sumsl (which see), except that v can be shorter (since -c the part of v that sumsl uses for storing g is not needed). -c moreover, compared with sumsl, iv(1) may have the two additional -c output values 1 and 2, which are explained below, as is the use -c of iv(toobig) and iv(nfgcal). the value iv(g), which is an -c output value from sumsl (and smsno), is not referenced by -c sumit or the subroutines it calls. -c fx and g need not have been initialized when sumit is called -c with iv(1) = 12, 13, or 14. -c -c iv(1) = 1 means the caller should set fx to f(x), the function value -c at x, and call sumit again, having changed none of the -c other parameters. an exception occurs if f(x) cannot be -c (e.g. if overflow would occur), which may happen because -c of an oversized step. in this case the caller should set -c iv(toobig) = iv(2) to 1, which will cause sumit to ig- -c nore fx and try a smaller step. the parameter nf that -c sumsl passes to calcf (for possible use by calcg) is a -c copy of iv(nfcall) = iv(6). -c iv(1) = 2 means the caller should set g to g(x), the gradient vector -c of f at x, and call sumit again, having changed none of -c the other parameters except possibly the scale vector d -c when iv(dtype) = 0. the parameter nf that sumsl passes -c to calcg is iv(nfgcal) = iv(7). if g(x) cannot be -c evaluated, then the caller may set iv(nfgcal) to 0, in -c which case sumit will return with iv(1) = 65. -c. -c *** general *** -c -c coded by david m. gay (december 1979). revised sept. 1982. -c this subroutine was written in connection with research supported -c in part by the national science foundation under grants -c mcs-7600324 and mcs-7906671. -c -c (see sumsl for references.) -c -c+++++++++++++++++++++++++++ declarations ++++++++++++++++++++++++++++ -c -c *** local variables *** -c - integer dg1, dummy, g01, i, k, l, lstgst, nwtst1, step1, - 1 temp1, w, x01, z - double precision t -c -c *** constants *** -c - double precision half, negone, one, onep2, zero -c -c *** no intrinsic functions *** -c -c *** external functions and subroutines *** -c - external assst, dbdog, deflt, dotprd, itsum, litvmu, livmul, - 1 ltvmul, lupdat, lvmul, parck, reldst, stopx, vaxpy, - 2 vcopy, vscopy, vvmulp, v2norm, wzbfgs - logical stopx - double precision dotprd, reldst, v2norm -c -c assst.... assesses candidate step. -c dbdog.... computes double-dogleg (candidate) step. -c deflt.... supplies default iv and v input components. -c dotprd... returns inner product of two vectors. -c itsum.... prints iteration summary and info on initial and final x. -c litvmu... multiplies inverse transpose of lower triangle times vector. -c livmul... multiplies inverse of lower triangle times vector. -c ltvmul... multiplies transpose of lower triangle times vector. -c lupdt.... updates cholesky factor of hessian approximation. -c lvmul.... multiplies lower triangle times vector. -c parck.... checks validity of input iv and v values. -c reldst... computes v(reldx) = relative step size. -c stopx.... returns .true. if the break key has been pressed. -c vaxpy.... computes scalar times one vector plus another. -c vcopy.... copies one vector to another. -c vscopy... sets all elements of a vector to a scalar. -c vvmulp... multiplies vector by vector raised to power (componentwise). -c v2norm... returns the 2-norm of a vector. -c wzbfgs... computes w and z for lupdat corresponding to bfgs update. -c -c *** subscripts for iv and v *** -c - integer afctol - integer cnvcod, dg, dgnorm, dinit, dstnrm, dst0, f, f0, fdif, - 1 gthg, gtstep, g0, incfac, inith, irc, kagqt, lmat, lmax0, - 2 lmaxs, mode, model, mxfcal, mxiter, nextv, nfcall, nfgcal, - 3 ngcall, niter, nreduc, nwtstp, preduc, radfac, radinc, - 4 radius, rad0, reldx, restor, step, stglim, stlstg, toobig, - 5 tuner4, tuner5, vneed, xirc, x0 -c -c *** iv subscript values *** -c -c/6 -c data cnvcod/55/, dg/37/, g0/48/, inith/25/, irc/29/, kagqt/33/, -c 1 mode/35/, model/5/, mxfcal/17/, mxiter/18/, nfcall/6/, -c 2 nfgcal/7/, ngcall/30/, niter/31/, nwtstp/34/, radinc/8/, -c 3 restor/9/, step/40/, stglim/11/, stlstg/41/, toobig/2/, -c 4 vneed/4/, xirc/13/, x0/43/ -c/7 - parameter (cnvcod=55, dg=37, g0=48, inith=25, irc=29, kagqt=33, - 1 mode=35, model=5, mxfcal=17, mxiter=18, nfcall=6, - 2 nfgcal=7, ngcall=30, niter=31, nwtstp=34, radinc=8, - 3 restor=9, step=40, stglim=11, stlstg=41, toobig=2, - 4 vneed=4, xirc=13, x0=43) -c/ -c -c *** v subscript values *** -c -c/6 -c data afctol/31/ -c data dgnorm/1/, dinit/38/, dstnrm/2/, dst0/3/, f/10/, f0/13/, -c 1 fdif/11/, gthg/44/, gtstep/4/, incfac/23/, lmat/42/, -c 2 lmax0/35/, lmaxs/36/, nextv/47/, nreduc/6/, preduc/7/, -c 3 radfac/16/, radius/8/, rad0/9/, reldx/17/, tuner4/29/, -c 4 tuner5/30/ -c/7 - parameter (afctol=31) - parameter (dgnorm=1, dinit=38, dstnrm=2, dst0=3, f=10, f0=13, - 1 fdif=11, gthg=44, gtstep=4, incfac=23, lmat=42, - 2 lmax0=35, lmaxs=36, nextv=47, nreduc=6, preduc=7, - 3 radfac=16, radius=8, rad0=9, reldx=17, tuner4=29, - 4 tuner5=30) -c/ -c -c/6 -c data half/0.5d+0/, negone/-1.d+0/, one/1.d+0/, onep2/1.2d+0/, -c 1 zero/0.d+0/ -c/7 - parameter (half=0.5d+0, negone=-1.d+0, one=1.d+0, onep2=1.2d+0, - 1 zero=0.d+0) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c -C Following SAVE statement inserted. - save l - i = iv(1) - if (i .eq. 1) go to 50 - if (i .eq. 2) go to 60 -c -c *** check validity of iv and v input values *** -c - if (iv(1) .eq. 0) call deflt(2, iv, liv, lv, v) - if (iv(1) .eq. 12 .or. iv(1) .eq. 13) - 1 iv(vneed) = iv(vneed) + n*(n+13)/2 - call parck(2, d, iv, liv, lv, n, v) - i = iv(1) - 2 - if (i .gt. 12) go to 999 - go to (180, 180, 180, 180, 180, 180, 120, 90, 120, 10, 10, 20), i -c -c *** storage allocation *** -c -10 l = iv(lmat) - iv(x0) = l + n*(n+1)/2 - iv(step) = iv(x0) + n - iv(stlstg) = iv(step) + n - iv(g0) = iv(stlstg) + n - iv(nwtstp) = iv(g0) + n - iv(dg) = iv(nwtstp) + n - iv(nextv) = iv(dg) + n - if (iv(1) .ne. 13) go to 20 - iv(1) = 14 - go to 999 -c -c *** initialization *** -c - 20 iv(niter) = 0 - iv(nfcall) = 1 - iv(ngcall) = 1 - iv(nfgcal) = 1 - iv(mode) = -1 - iv(model) = 1 - iv(stglim) = 1 - iv(toobig) = 0 - iv(cnvcod) = 0 - iv(radinc) = 0 - v(rad0) = zero - if (v(dinit) .ge. zero) call vscopy(n, d, v(dinit)) - if (iv(inith) .ne. 1) go to 40 -c -c *** set the initial hessian approximation to diag(d)**-2 *** -c - l = iv(lmat) - call vscopy(n*(n+1)/2, v(l), zero) - k = l - 1 - do 30 i = 1, n - k = k + i - t = d(i) - if (t .le. zero) t = one - v(k) = t - 30 continue -c -c *** compute initial function value *** -c - 40 iv(1) = 1 - go to 999 -c - 50 v(f) = fx - if (iv(mode) .ge. 0) go to 180 - iv(1) = 2 - if (iv(toobig) .eq. 0) go to 999 - iv(1) = 63 - go to 300 -c -c *** make sure gradient could be computed *** -c - 60 if (iv(nfgcal) .ne. 0) go to 70 - iv(1) = 65 - go to 300 -c - 70 dg1 = iv(dg) - call vvmulp(n, v(dg1), g, d, -1) - v(dgnorm) = v2norm(n, v(dg1)) -c -c *** test norm of gradient *** -c - if (v(dgnorm) .gt. v(afctol)) go to 75 - iv(irc) = 10 - iv(cnvcod) = iv(irc) - 4 -c - 75 if (iv(cnvcod) .ne. 0) go to 290 - if (iv(mode) .eq. 0) go to 250 -c -c *** allow first step to have scaled 2-norm at most v(lmax0) *** -c - v(radius) = v(lmax0) -c - iv(mode) = 0 -c -c -c----------------------------- main loop ----------------------------- -c -c -c *** print iteration summary, check iteration limit *** -c - 80 call itsum(d, g, iv, liv, lv, n, v, x) - 90 k = iv(niter) - if (k .lt. iv(mxiter)) go to 100 - iv(1) = 10 - go to 300 -c -c *** update radius *** -c - 100 iv(niter) = k + 1 - if(k.gt.0)v(radius) = v(radfac) * v(dstnrm) -c -c *** initialize for start of next iteration *** -c - g01 = iv(g0) - x01 = iv(x0) - v(f0) = v(f) - iv(irc) = 4 - iv(kagqt) = -1 -c -c *** copy x to x0, g to g0 *** -c - call vcopy(n, v(x01), x) - call vcopy(n, v(g01), g) -c -c *** check stopx and function evaluation limit *** -c -C AL 4/30/95 - dummy=iv(nfcall) - 110 if (.not. stopx(dummy)) go to 130 - iv(1) = 11 - go to 140 -c -c *** come here when restarting after func. eval. limit or stopx. -c - 120 if (v(f) .ge. v(f0)) go to 130 - v(radfac) = one - k = iv(niter) - go to 100 -c - 130 if (iv(nfcall) .lt. iv(mxfcal)) go to 150 - iv(1) = 9 - 140 if (v(f) .ge. v(f0)) go to 300 -c -c *** in case of stopx or function evaluation limit with -c *** improved v(f), evaluate the gradient at x. -c - iv(cnvcod) = iv(1) - go to 240 -c -c. . . . . . . . . . . . . compute candidate step . . . . . . . . . . -c - 150 step1 = iv(step) - dg1 = iv(dg) - nwtst1 = iv(nwtstp) - if (iv(kagqt) .ge. 0) go to 160 - l = iv(lmat) - call livmul(n, v(nwtst1), v(l), g) - v(nreduc) = half * dotprd(n, v(nwtst1), v(nwtst1)) - call litvmu(n, v(nwtst1), v(l), v(nwtst1)) - call vvmulp(n, v(step1), v(nwtst1), d, 1) - v(dst0) = v2norm(n, v(step1)) - call vvmulp(n, v(dg1), v(dg1), d, -1) - call ltvmul(n, v(step1), v(l), v(dg1)) - v(gthg) = v2norm(n, v(step1)) - iv(kagqt) = 0 - 160 call dbdog(v(dg1), lv, n, v(nwtst1), v(step1), v) - if (iv(irc) .eq. 6) go to 180 -c -c *** check whether evaluating f(x0 + step) looks worthwhile *** -c - if (v(dstnrm) .le. zero) go to 180 - if (iv(irc) .ne. 5) go to 170 - if (v(radfac) .le. one) go to 170 - if (v(preduc) .le. onep2 * v(fdif)) go to 180 -c -c *** compute f(x0 + step) *** -c - 170 x01 = iv(x0) - step1 = iv(step) - call vaxpy(n, x, one, v(step1), v(x01)) - iv(nfcall) = iv(nfcall) + 1 - iv(1) = 1 - iv(toobig) = 0 - go to 999 -c -c. . . . . . . . . . . . . assess candidate step . . . . . . . . . . . -c - 180 x01 = iv(x0) - v(reldx) = reldst(n, d, x, v(x01)) - call assst(iv, liv, lv, v) - step1 = iv(step) - lstgst = iv(stlstg) - if (iv(restor) .eq. 1) call vcopy(n, x, v(x01)) - if (iv(restor) .eq. 2) call vcopy(n, v(lstgst), v(step1)) - if (iv(restor) .ne. 3) go to 190 - call vcopy(n, v(step1), v(lstgst)) - call vaxpy(n, x, one, v(step1), v(x01)) - v(reldx) = reldst(n, d, x, v(x01)) -c - 190 k = iv(irc) - go to (200,230,230,230,200,210,220,220,220,220,220,220,280,250), k -c -c *** recompute step with changed radius *** -c - 200 v(radius) = v(radfac) * v(dstnrm) - go to 110 -c -c *** compute step of length v(lmaxs) for singular convergence test. -c - 210 v(radius) = v(lmaxs) - go to 150 -c -c *** convergence or false convergence *** -c - 220 iv(cnvcod) = k - 4 - if (v(f) .ge. v(f0)) go to 290 - if (iv(xirc) .eq. 14) go to 290 - iv(xirc) = 14 -c -c. . . . . . . . . . . . process acceptable step . . . . . . . . . . . -c - 230 if (iv(irc) .ne. 3) go to 240 - step1 = iv(step) - temp1 = iv(stlstg) -c -c *** set temp1 = hessian * step for use in gradient tests *** -c - l = iv(lmat) - call ltvmul(n, v(temp1), v(l), v(step1)) - call lvmul(n, v(temp1), v(l), v(temp1)) -c -c *** compute gradient *** -c - 240 iv(ngcall) = iv(ngcall) + 1 - iv(1) = 2 - go to 999 -c -c *** initializations -- g0 = g - g0, etc. *** -c - 250 g01 = iv(g0) - call vaxpy(n, v(g01), negone, v(g01), g) - step1 = iv(step) - temp1 = iv(stlstg) - if (iv(irc) .ne. 3) go to 270 -c -c *** set v(radfac) by gradient tests *** -c -c *** set temp1 = diag(d)**-1 * (hessian*step + (g(x0)-g(x))) *** -c - call vaxpy(n, v(temp1), negone, v(g01), v(temp1)) - call vvmulp(n, v(temp1), v(temp1), d, -1) -c -c *** do gradient tests *** -c - if (v2norm(n, v(temp1)) .le. v(dgnorm) * v(tuner4)) - 1 go to 260 - if (dotprd(n, g, v(step1)) - 1 .ge. v(gtstep) * v(tuner5)) go to 270 - 260 v(radfac) = v(incfac) -c -c *** update h, loop *** -c - 270 w = iv(nwtstp) - z = iv(x0) - l = iv(lmat) - call wzbfgs(v(l), n, v(step1), v(w), v(g01), v(z)) -c -c ** use the n-vectors starting at v(step1) and v(g01) for scratch.. - call lupdat(v(temp1), v(step1), v(l), v(g01), v(l), n, v(w), v(z)) - iv(1) = 2 - go to 80 -c -c. . . . . . . . . . . . . . misc. details . . . . . . . . . . . . . . -c -c *** bad parameters to assess *** -c - 280 iv(1) = 64 - go to 300 -c -c *** print summary of final iteration and other requested items *** -c - 290 iv(1) = iv(cnvcod) - iv(cnvcod) = 0 - 300 call itsum(d, g, iv, liv, lv, n, v, x) -c - 999 return -c -c *** last line of sumit follows *** - end - subroutine dbdog(dig, lv, n, nwtstp, step, v) -c -c *** compute double dogleg step *** -c -c *** parameter declarations *** -c - integer lv, n - double precision dig(n), nwtstp(n), step(n), v(lv) -c -c *** purpose *** -c -c this subroutine computes a candidate step (for use in an uncon- -c strained minimization code) by the double dogleg algorithm of -c dennis and mei (ref. 1), which is a variation on powell*s dogleg -c scheme (ref. 2, p. 95). -c -c-------------------------- parameter usage -------------------------- -c -c dig (input) diag(d)**-2 * g -- see algorithm notes. -c g (input) the current gradient vector. -c lv (input) length of v. -c n (input) number of components in dig, g, nwtstp, and step. -c nwtstp (input) negative newton step -- see algorithm notes. -c step (output) the computed step. -c v (i/o) values array, the following components of which are -c used here... -c v(bias) (input) bias for relaxed newton step, which is v(bias) of -c the way from the full newton to the fully relaxed newton -c step. recommended value = 0.8 . -c v(dgnorm) (input) 2-norm of diag(d)**-1 * g -- see algorithm notes. -c v(dstnrm) (output) 2-norm of diag(d) * step, which is v(radius) -c unless v(stppar) = 0 -- see algorithm notes. -c v(dst0) (input) 2-norm of diag(d) * nwtstp -- see algorithm notes. -c v(grdfac) (output) the coefficient of dig in the step returned -- -c step(i) = v(grdfac)*dig(i) + v(nwtfac)*nwtstp(i). -c v(gthg) (input) square-root of (dig**t) * (hessian) * dig -- see -c algorithm notes. -c v(gtstep) (output) inner product between g and step. -c v(nreduc) (output) function reduction predicted for the full newton -c step. -c v(nwtfac) (output) the coefficient of nwtstp in the step returned -- -c see v(grdfac) above. -c v(preduc) (output) function reduction predicted for the step returned. -c v(radius) (input) the trust region radius. d times the step returned -c has 2-norm v(radius) unless v(stppar) = 0. -c v(stppar) (output) code telling how step was computed... 0 means a -c full newton step. between 0 and 1 means v(stppar) of the -c way from the newton to the relaxed newton step. between -c 1 and 2 means a true double dogleg step, v(stppar) - 1 of -c the way from the relaxed newton to the cauchy step. -c greater than 2 means 1 / (v(stppar) - 1) times the cauchy -c step. -c -c------------------------------- notes ------------------------------- -c -c *** algorithm notes *** -c -c let g and h be the current gradient and hessian approxima- -c tion respectively and let d be the current scale vector. this -c routine assumes dig = diag(d)**-2 * g and nwtstp = h**-1 * g. -c the step computed is the same one would get by replacing g and h -c by diag(d)**-1 * g and diag(d)**-1 * h * diag(d)**-1, -c computing step, and translating step back to the original -c variables, i.e., premultiplying it by diag(d)**-1. -c -c *** references *** -c -c 1. dennis, j.e., and mei, h.h.w. (1979), two new unconstrained opti- -c mization algorithms which use function and gradient -c values, j. optim. theory applic. 28, pp. 453-482. -c 2. powell, m.j.d. (1970), a hybrid method for non-linear equations, -c in numerical methods for non-linear equations, edited by -c p. rabinowitz, gordon and breach, london. -c -c *** general *** -c -c coded by david m. gay. -c this subroutine was written in connection with research supported -c by the national science foundation under grants mcs-7600324 and -c mcs-7906671. -c -c------------------------ external quantities ------------------------ -c -c *** functions and subroutines called *** -c - external dotprd, v2norm - double precision dotprd, v2norm -c -c dotprd... returns inner product of two vectors. -c v2norm... returns 2-norm of a vector. -c -c *** intrinsic functions *** -c/+ - double precision dsqrt -c/ -c-------------------------- local variables -------------------------- -c - integer i - double precision cfact, cnorm, ctrnwt, ghinvg, femnsq, gnorm, - 1 nwtnrm, relax, rlambd, t, t1, t2 - double precision half, one, two, zero -c -c *** v subscripts *** -c - integer bias, dgnorm, dstnrm, dst0, grdfac, gthg, gtstep, - 1 nreduc, nwtfac, preduc, radius, stppar -c -c *** data initializations *** -c -c/6 -c data half/0.5d+0/, one/1.d+0/, two/2.d+0/, zero/0.d+0/ -c/7 - parameter (half=0.5d+0, one=1.d+0, two=2.d+0, zero=0.d+0) -c/ -c -c/6 -c data bias/43/, dgnorm/1/, dstnrm/2/, dst0/3/, grdfac/45/, -c 1 gthg/44/, gtstep/4/, nreduc/6/, nwtfac/46/, preduc/7/, -c 2 radius/8/, stppar/5/ -c/7 - parameter (bias=43, dgnorm=1, dstnrm=2, dst0=3, grdfac=45, - 1 gthg=44, gtstep=4, nreduc=6, nwtfac=46, preduc=7, - 2 radius=8, stppar=5) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - nwtnrm = v(dst0) - rlambd = one - if (nwtnrm .gt. zero) rlambd = v(radius) / nwtnrm - gnorm = v(dgnorm) - ghinvg = two * v(nreduc) - v(grdfac) = zero - v(nwtfac) = zero - if (rlambd .lt. one) go to 30 -c -c *** the newton step is inside the trust region *** -c - v(stppar) = zero - v(dstnrm) = nwtnrm - v(gtstep) = -ghinvg - v(preduc) = v(nreduc) - v(nwtfac) = -one - do 20 i = 1, n - 20 step(i) = -nwtstp(i) - go to 999 -c - 30 v(dstnrm) = v(radius) - cfact = (gnorm / v(gthg))**2 -c *** cauchy step = -cfact * g. - cnorm = gnorm * cfact - relax = one - v(bias) * (one - gnorm*cnorm/ghinvg) - if (rlambd .lt. relax) go to 50 -c -c *** step is between relaxed newton and full newton steps *** -c - v(stppar) = one - (rlambd - relax) / (one - relax) - t = -rlambd - v(gtstep) = t * ghinvg - v(preduc) = rlambd * (one - half*rlambd) * ghinvg - v(nwtfac) = t - do 40 i = 1, n - 40 step(i) = t * nwtstp(i) - go to 999 -c - 50 if (cnorm .lt. v(radius)) go to 70 -c -c *** the cauchy step lies outside the trust region -- -c *** step = scaled cauchy step *** -c - t = -v(radius) / gnorm - v(grdfac) = t - v(stppar) = one + cnorm / v(radius) - v(gtstep) = -v(radius) * gnorm - v(preduc) = v(radius)*(gnorm - half*v(radius)*(v(gthg)/gnorm)**2) - do 60 i = 1, n - 60 step(i) = t * dig(i) - go to 999 -c -c *** compute dogleg step between cauchy and relaxed newton *** -c *** femur = relaxed newton step minus cauchy step *** -c - 70 ctrnwt = cfact * relax * ghinvg / gnorm -c *** ctrnwt = inner prod. of cauchy and relaxed newton steps, -c *** scaled by gnorm**-1. - t1 = ctrnwt - gnorm*cfact**2 -c *** t1 = inner prod. of femur and cauchy step, scaled by -c *** gnorm**-1. - t2 = v(radius)*(v(radius)/gnorm) - gnorm*cfact**2 - t = relax * nwtnrm - femnsq = (t/gnorm)*t - ctrnwt - t1 -c *** femnsq = square of 2-norm of femur, scaled by gnorm**-1. - t = t2 / (t1 + dsqrt(t1**2 + femnsq*t2)) -c *** dogleg step = cauchy step + t * femur. - t1 = (t - one) * cfact - v(grdfac) = t1 - t2 = -t * relax - v(nwtfac) = t2 - v(stppar) = two - t - v(gtstep) = t1*gnorm**2 + t2*ghinvg - v(preduc) = -t1*gnorm * ((t2 + one)*gnorm) - 1 - t2 * (one + half*t2)*ghinvg - 2 - half * (v(gthg)*t1)**2 - do 80 i = 1, n - 80 step(i) = t1*dig(i) + t2*nwtstp(i) -c - 999 return -c *** last line of dbdog follows *** - end - subroutine ltvmul(n, x, l, y) -c -c *** compute x = (l**t)*y, where l is an n x n lower -c *** triangular matrix stored compactly by rows. x and y may -c *** occupy the same storage. *** -c - integer n -cal double precision x(n), l(1), y(n) - double precision x(n), l(n*(n+1)/2), y(n) -c dimension l(n*(n+1)/2) - integer i, ij, i0, j - double precision yi, zero -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c - i0 = 0 - do 20 i = 1, n - yi = y(i) - x(i) = zero - do 10 j = 1, i - ij = i0 + j - x(j) = x(j) + yi*l(ij) - 10 continue - i0 = i0 + i - 20 continue - 999 return -c *** last card of ltvmul follows *** - end - subroutine lupdat(beta, gamma, l, lambda, lplus, n, w, z) -c -c *** compute lplus = secant update of l *** -c -c *** parameter declarations *** -c - integer n -cal double precision beta(n), gamma(n), l(1), lambda(n), lplus(1), - double precision beta(n), gamma(n), l(n*(n+1)/2), lambda(n), - 1 lplus(n*(n+1)/2),w(n), z(n) -c dimension l(n*(n+1)/2), lplus(n*(n+1)/2) -c -c-------------------------- parameter usage -------------------------- -c -c beta = scratch vector. -c gamma = scratch vector. -c l (input) lower triangular matrix, stored rowwise. -c lambda = scratch vector. -c lplus (output) lower triangular matrix, stored rowwise, which may -c occupy the same storage as l. -c n (input) length of vector parameters and order of matrices. -c w (input, destroyed on output) right singular vector of rank 1 -c correction to l. -c z (input, destroyed on output) left singular vector of rank 1 -c correction to l. -c -c------------------------------- notes ------------------------------- -c -c *** application and usage restrictions *** -c -c this routine updates the cholesky factor l of a symmetric -c positive definite matrix to which a secant update is being -c applied -- it computes a cholesky factor lplus of -c l * (i + z*w**t) * (i + w*z**t) * l**t. it is assumed that w -c and z have been chosen so that the updated matrix is strictly -c positive definite. -c -c *** algorithm notes *** -c -c this code uses recurrence 3 of ref. 1 (with d(j) = 1 for all j) -c to compute lplus of the form l * (i + z*w**t) * q, where q -c is an orthogonal matrix that makes the result lower triangular. -c lplus may have some negative diagonal elements. -c -c *** references *** -c -c 1. goldfarb, d. (1976), factorized variable metric methods for uncon- -c strained optimization, math. comput. 30, pp. 796-811. -c -c *** general *** -c -c coded by david m. gay (fall 1979). -c this subroutine was written in connection with research supported -c by the national science foundation under grants mcs-7600324 and -c mcs-7906671. -c -c------------------------ external quantities ------------------------ -c -c *** intrinsic functions *** -c/+ - double precision dsqrt -c/ -c-------------------------- local variables -------------------------- -c - integer i, ij, j, jj, jp1, k, nm1, np1 - double precision a, b, bj, eta, gj, lj, lij, ljj, nu, s, theta, - 1 wj, zj - double precision one, zero -c -c *** data initializations *** -c -c/6 -c data one/1.d+0/, zero/0.d+0/ -c/7 - parameter (one=1.d+0, zero=0.d+0) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - nu = one - eta = zero - if (n .le. 1) go to 30 - nm1 = n - 1 -c -c *** temporarily store s(j) = sum over k = j+1 to n of w(k)**2 in -c *** lambda(j). -c - s = zero - do 10 i = 1, nm1 - j = n - i - s = s + w(j+1)**2 - lambda(j) = s - 10 continue -c -c *** compute lambda, gamma, and beta by goldfarb*s recurrence 3. -c - do 20 j = 1, nm1 - wj = w(j) - a = nu*z(j) - eta*wj - theta = one + a*wj - s = a*lambda(j) - lj = dsqrt(theta**2 + a*s) - if (theta .gt. zero) lj = -lj - lambda(j) = lj - b = theta*wj + s - gamma(j) = b * nu / lj - beta(j) = (a - b*eta) / lj - nu = -nu / lj - eta = -(eta + (a**2)/(theta - lj)) / lj - 20 continue - 30 lambda(n) = one + (nu*z(n) - eta*w(n))*w(n) -c -c *** update l, gradually overwriting w and z with l*w and l*z. -c - np1 = n + 1 - jj = n * (n + 1) / 2 - do 60 k = 1, n - j = np1 - k - lj = lambda(j) - ljj = l(jj) - lplus(jj) = lj * ljj - wj = w(j) - w(j) = ljj * wj - zj = z(j) - z(j) = ljj * zj - if (k .eq. 1) go to 50 - bj = beta(j) - gj = gamma(j) - ij = jj + j - jp1 = j + 1 - do 40 i = jp1, n - lij = l(ij) - lplus(ij) = lj*lij + bj*w(i) + gj*z(i) - w(i) = w(i) + lij*wj - z(i) = z(i) + lij*zj - ij = ij + i - 40 continue - 50 jj = jj - j - 60 continue -c - 999 return -c *** last card of lupdat follows *** - end - subroutine lvmul(n, x, l, y) -c -c *** compute x = l*y, where l is an n x n lower triangular -c *** matrix stored compactly by rows. x and y may occupy the same -c *** storage. *** -c - integer n -cal double precision x(n), l(1), y(n) - double precision x(n), l(n*(n+1)/2), y(n) -c dimension l(n*(n+1)/2) - integer i, ii, ij, i0, j, np1 - double precision t, zero -c/6 -c data zero/0.d+0/ -c/7 - parameter (zero=0.d+0) -c/ -c - np1 = n + 1 - i0 = n*(n+1)/2 - do 20 ii = 1, n - i = np1 - ii - i0 = i0 - i - t = zero - do 10 j = 1, i - ij = i0 + j - t = t + l(ij)*y(j) - 10 continue - x(i) = t - 20 continue - 999 return -c *** last card of lvmul follows *** - end - subroutine vvmulp(n, x, y, z, k) -c -c *** set x(i) = y(i) * z(i)**k, 1 .le. i .le. n (for k = 1 or -1) *** -c - integer n, k - double precision x(n), y(n), z(n) - integer i -c - if (k .ge. 0) go to 20 - do 10 i = 1, n - 10 x(i) = y(i) / z(i) - go to 999 -c - 20 do 30 i = 1, n - 30 x(i) = y(i) * z(i) - 999 return -c *** last card of vvmulp follows *** - end - subroutine wzbfgs (l, n, s, w, y, z) -c -c *** compute y and z for lupdat corresponding to bfgs update. -c - integer n -cal double precision l(1), s(n), w(n), y(n), z(n) - double precision l(n*(n+1)/2), s(n), w(n), y(n), z(n) -c dimension l(n*(n+1)/2) -c -c-------------------------- parameter usage -------------------------- -c -c l (i/o) cholesky factor of hessian, a lower triang. matrix stored -c compactly by rows. -c n (input) order of l and length of s, w, y, z. -c s (input) the step just taken. -c w (output) right singular vector of rank 1 correction to l. -c y (input) change in gradients corresponding to s. -c z (output) left singular vector of rank 1 correction to l. -c -c------------------------------- notes ------------------------------- -c -c *** algorithm notes *** -c -c when s is computed in certain ways, e.g. by gqtstp or -c dbldog, it is possible to save n**2/2 operations since (l**t)*s -c or l*(l**t)*s is then known. -c if the bfgs update to l*(l**t) would reduce its determinant to -c less than eps times its old value, then this routine in effect -c replaces y by theta*y + (1 - theta)*l*(l**t)*s, where theta -c (between 0 and 1) is chosen to make the reduction factor = eps. -c -c *** general *** -c -c coded by david m. gay (fall 1979). -c this subroutine was written in connection with research supported -c by the national science foundation under grants mcs-7600324 and -c mcs-7906671. -c -c------------------------ external quantities ------------------------ -c -c *** functions and subroutines called *** -c - external dotprd, livmul, ltvmul - double precision dotprd -c dotprd returns inner product of two vectors. -c livmul multiplies l**-1 times a vector. -c ltvmul multiplies l**t times a vector. -c -c *** intrinsic functions *** -c/+ - double precision dsqrt -c/ -c-------------------------- local variables -------------------------- -c - integer i - double precision cs, cy, eps, epsrt, one, shs, ys, theta -c -c *** data initializations *** -c -c/6 -c data eps/0.1d+0/, one/1.d+0/ -c/7 - parameter (eps=0.1d+0, one=1.d+0) -c/ -c -c+++++++++++++++++++++++++++++++ body ++++++++++++++++++++++++++++++++ -c - call ltvmul(n, w, l, s) - shs = dotprd(n, w, w) - ys = dotprd(n, y, s) - if (ys .ge. eps*shs) go to 10 - theta = (one - eps) * shs / (shs - ys) - epsrt = dsqrt(eps) - cy = theta / (shs * epsrt) - cs = (one + (theta-one)/epsrt) / shs - go to 20 - 10 cy = one / (dsqrt(ys) * dsqrt(shs)) - cs = one / shs - 20 call livmul(n, z, l, y) - do 30 i = 1, n - 30 z(i) = cy * z(i) - cs * w(i) -c - 999 return -c *** last card of wzbfgs follows *** - end diff --git a/source/unres/src_MD-M/MD_A-MTS.F b/source/unres/src_MD-M/MD_A-MTS.F index d3c3cb0..56b3ea8 100644 --- a/source/unres/src_MD-M/MD_A-MTS.F +++ b/source/unres/src_MD-M/MD_A-MTS.F @@ -1087,12 +1087,25 @@ c Applying velocity Verlet algorithm - step 1 to coordinates c c Compute friction and stochastic forces c +#ifdef MPI time00=MPI_Wtime() +#else + time00=tcpu() +#endif call friction_force +#ifdef MPI time_fric=time_fric+MPI_Wtime()-time00 time00=MPI_Wtime() +#else + time_fric=time_fric+tcpu()-time00 + time00=tcpu() +#endif call stochastic_force(stochforcvec) +#ifdef MPI time_stoch=time_stoch+MPI_Wtime()-time00 +#else + time_stoch=time_stoch+tcpu()-time00 +#endif c c Compute the acceleration due to friction forces (d_af_work) and stochastic c forces (d_as_work) @@ -1507,11 +1520,13 @@ c statname=statname(:ilen(statname)-5)//qstr(:ipos-1)//'.stat' if (restart1file) then if (me.eq.king) & inquire(file=mremd_rst_name,exist=file_exist) +#ifdef MPI write (*,*) me," Before broadcast: file_exist",file_exist call MPI_Bcast(file_exist,1,MPI_LOGICAL,king,CG_COMM, & IERR) write (*,*) me," After broadcast: file_exist",file_exist c inquire(file=mremd_rst_name,exist=file_exist) +#endif if(me.eq.king.or..not.out1file) & write(iout,*) "Initial state read by master and distributed" else diff --git a/source/unres/src_MD-M/Makefile b/source/unres/src_MD-M/Makefile new file mode 120000 index 0000000..8453cdd --- /dev/null +++ b/source/unres/src_MD-M/Makefile @@ -0,0 +1 @@ +Makefile_MPICH_ifort \ No newline at end of file diff --git a/source/unres/src_MD-M/Makefile_MPICH_gfortran b/source/unres/src_MD-M/Makefile_MPICH_gfortran index a945ea9..bd160d8 100644 --- a/source/unres/src_MD-M/Makefile_MPICH_gfortran +++ b/source/unres/src_MD-M/Makefile_MPICH_gfortran @@ -11,7 +11,7 @@ FFLAGS2 = -c -O0 -I$(INSTALL_DIR)/include FFLAGS3 = -c -O -I$(INSTALL_DIR)/include FFLAGSE = -c -O3 -I$(INSTALL_DIR)/include -LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpthread +LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpthread xdrf/libxdrf.a ARCH = LINUX PP = /lib/cpp -P diff --git a/source/unres/src_MD-M/Makefile_single_gfortran b/source/unres/src_MD-M/Makefile_single_gfortran index 845a5af..3c87733 100644 --- a/source/unres/src_MD-M/Makefile_single_gfortran +++ b/source/unres/src_MD-M/Makefile_single_gfortran @@ -38,19 +38,19 @@ object = unres.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o \ energy_p_new-sep_barrier.o gradient_p.o minimize_p.o sumsld.o \ cored.o rmdd.o geomout.o readpdb.o permut.o regularize.o thread.o fitsq.o mcm.o \ mc.o bond_move.o refsys.o check_sc_distr.o check_bond.o contact.o djacob.o \ - eigen.o blas.o add.o entmcm.o minim_mcmf.o \ - together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o \ + eigen.o blas.o add.o entmcm.o \ + csa.o checkvar.o shift.o diff12.o ran.o \ indexx.o MP.o compare_s1.o prng_32.o \ test.o banach.o distfit.o rmsd.o elecont.o dihed_cons.o \ sc_move.o local_move.o \ intcartderiv.o lagrangian_lesyng.o\ stochfric.o kinetic_lesyng.o MD_A-MTS.o moments.o int_to_cart.o \ - surfatom.o sort.o muca_md.o MREMD.o rattle.o gauss.o energy_split-sep.o \ + surfatom.o sort.o muca_md.o rattle.o gauss.o energy_split-sep.o \ q_measure.o gnmr1.o ssMD.o no_option: -GAB: CPPFLAGS = -DPROCOR -DLINUX -DAMD64 -DUNRES -DISNAN \ +GAB: CPPFLAGS = -DPROCOR -DLINUX -DG77 -DAMD64 -DUNRES -DISNAN \ -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC GAB: BIN = ../../../bin/unres/MD/unres-mult-symetr_gfortran_single_GAB.exe GAB: ${object} xdrf/libxdrf.a @@ -59,7 +59,7 @@ GAB: ${object} xdrf/libxdrf.a ${FC} ${FFLAGS} cinfo.f ${FC} ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN} -4P: CPPFLAGS = -DLINUX -DAMD64 -DUNRES -DISNAN \ +4P: CPPFLAGS = -DLINUX -DG77 -DAMD64 -DUNRES -DISNAN \ -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC 4P: BIN = ../../../bin/unres/MD/unres-mult-symetr_gfortran_single_4P.exe 4P: ${object} xdrf/libxdrf.a @@ -68,7 +68,7 @@ GAB: ${object} xdrf/libxdrf.a ${FC} ${FFLAGS} cinfo.f ${FC} ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN} -E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DAMD64 -DUNRES -DISNAN \ +E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DG77 -DAMD64 -DUNRES -DISNAN \ -DSPLITELE -DLANG0 E0LL2Y: BIN = ../../../bin/unres/MD/unres-mult-symetr_gfortran_single_E0LL2Y.exe E0LL2Y: ${object} xdrf/libxdrf.a diff --git a/source/unres/src_MD-M/Makefile_single_ifort b/source/unres/src_MD-M/Makefile_single_ifort index 90cb357..0875ee5 100644 --- a/source/unres/src_MD-M/Makefile_single_ifort +++ b/source/unres/src_MD-M/Makefile_single_ifort @@ -30,20 +30,20 @@ all: ${FC} ${FFLAGS} ${CPPFLAGS} $*.F object = unres.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o \ - matmult.o readrtns.o parmread.o gen_rand_conf.o printmat.o map.o \ + matmult.o readrtns_CSA.o parmread.o gen_rand_conf.o printmat.o map.o \ pinorm.o randgens.o rescode.o intcor.o timing.o misc.o intlocal.o \ cartder.o checkder_p.o econstr_local.o energy_p_new_barrier.o \ energy_p_new-sep_barrier.o gradient_p.o minimize_p.o sumsld.o \ cored.o rmdd.o geomout.o readpdb.o regularize.o thread.o fitsq.o mcm.o \ mc.o bond_move.o refsys.o check_sc_distr.o check_bond.o contact.o djacob.o \ - eigen.o blas.o add.o entmcm.o minim_mcmf.o \ - MP.o compare_s1.o prng.o \ + eigen.o blas.o add.o entmcm.o \ + MP.o compare_s1.o \ banach.o rmsd.o elecont.o dihed_cons.o \ sc_move.o local_move.o \ intcartderiv.o lagrangian_lesyng.o\ stochfric.o kinetic_lesyng.o MD_A-MTS.o moments.o int_to_cart.o \ - surfatom.o sort.o muca_md.o MREMD.o rattle.o gauss.o energy_split-sep.o \ - q_measure.o gnmr1.o test.o ssMD.o + surfatom.o sort.o muca_md.o rattle.o gauss.o energy_split-sep.o \ + q_measure.o gnmr1.o test.o ssMD.o permut.o distfit.o checkvar.o no_option: diff --git a/source/unres/src_MD-M/checkvar.f b/source/unres/src_MD-M/checkvar.f new file mode 100644 index 0000000..630bc15 --- /dev/null +++ b/source/unres/src_MD-M/checkvar.f @@ -0,0 +1,63 @@ + logical function check_var(var,info) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' + include 'COMMON.VAR' + include 'COMMON.IOUNITS' + include 'COMMON.GEO' + include 'COMMON.SETUP' + dimension var(maxvar) + dimension info(3) +C AL ------- + check_var=.false. + do i=nphi+ntheta+1,nphi+ntheta+nside +! Check the side chain "valence" angles alpha + if (var(i).lt.1.0d-7) then + write (iout,*) 'CHUJ NASTAPIL ABSOLUTNY!!!!!!!!!!!!' + write (iout,*) 'Processor',me,'received bad variables!!!!' + write (iout,*) 'Variables' + write (iout,'(8f10.4)') (rad2deg*var(j),j=1,nvar) + write (iout,*) 'Continuing calculations at this point', + & ' could destroy the results obtained so far... ABORTING!!!!!!' + write (iout,'(a19,i5,f10.4,a4,2i4,a3,i3)') + & 'valence angle alpha',i-nphi-ntheta,var(i), + & 'n it',info(1),info(2),'mv ',info(3) + write (*,*) 'CHUJ NASTAPIL ABSOLUTNY!!!!!!!!!!!!' + write (*,*) 'Processor',me,'received bad variables!!!!' + write (*,*) 'Variables' + write (*,'(8f10.4)') (rad2deg*var(j),j=1,nvar) + write (*,*) 'Continuing calculations at this point', + & ' could destroy the results obtained so far... ABORTING!!!!!!' + write (*,'(a19,i5,f10.4,a4,2i4,a3,i3)') + & 'valence angle alpha',i-nphi-ntheta,var(i), + & 'n it',info(1),info(2),'mv ',info(3) + check_var=.true. + return + endif + enddo +! Check the backbone "valence" angles theta + do i=nphi+1,nphi+ntheta + if (var(i).lt.1.0d-7) then + write (iout,*) 'CHUJ NASTAPIL ABSOLUTNY!!!!!!!!!!!!' + write (iout,*) 'Processor',me,'received bad variables!!!!' + write (iout,*) 'Variables' + write (iout,'(8f10.4)') (rad2deg*var(j),j=1,nvar) + write (iout,*) 'Continuing calculations at this point', + & ' could destroy the results obtained so far... ABORTING!!!!!!' + write (iout,'(a19,i5,f10.4,a4,2i4,a3,i3)') + & 'valence angle theta',i-nphi,var(i), + & 'n it',info(1),info(2),'mv ',info(3) + write (*,*) 'CHUJ NASTAPIL ABSOLUTNY!!!!!!!!!!!!' + write (*,*) 'Processor',me,'received bad variables!!!!' + write (*,*) 'Variables' + write (*,'(8f10.4)') (rad2deg*var(j),j=1,nvar) + write (*,*) 'Continuing calculations at this point', + & ' could destroy the results obtained so far... ABORTING!!!!!!' + write (*,'(a19,i5,f10.4,a4,2i4,a3,i3)') + & 'valence angle theta',i-nphi,var(i), + & 'n it',info(1),info(2),'mv ',info(3) + check_var=.true. + return + endif + enddo + return + end diff --git a/source/unres/src_MD-M/energy_p_new_barrier.F b/source/unres/src_MD-M/energy_p_new_barrier.F index 91046c3..2097265 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -439,9 +439,9 @@ cMS$ATTRIBUTES C :: proc_proc #endif #ifdef MPI include 'mpif.h' +#endif double precision gradbufc(3,maxres),gradbufx(3,maxres), & glocbuf(4*maxres),gradbufc_sum(3,maxres) -#endif include 'COMMON.SETUP' include 'COMMON.IOUNITS' include 'COMMON.FFIELD' diff --git a/source/unres/src_MD-M/mcm.F b/source/unres/src_MD-M/mcm.F index 7f839f4..09d00f5 100644 --- a/source/unres/src_MD-M/mcm.F +++ b/source/unres/src_MD-M/mcm.F @@ -110,6 +110,8 @@ crc include 'COMMON.DEFORM1' double precision varia(maxvar),varold(maxvar),elowest,eold, & przes(3),obr(3,3) double precision energia(0:n_ene) + double precision coord1(maxres,3) + C--------------------------------------------------------------------------- C Initialize counters. @@ -170,7 +172,7 @@ C Minimize the energy of the first conformation. call enerprint(energia(0)) endif if (refstr) then - call fitsq(rms,c(1,nstart_seq),cref(1,nstart_sup),nsup,przes, + call fitsq(rms,c(1,nstart_seq),cref(1,nstart_sup,1),nsup,przes, & obr,non_conv) rms=dsqrt(rms) call contact(.false.,ncont,icont,co) @@ -325,7 +327,7 @@ C Check against conformation repetitions. if (refstr) then call var_to_geom(nvar,varia) call chainbuild - call fitsq(rms,c(1,nstart_seq),cref(1,nstart_sup), + call fitsq(rms,c(1,nstart_seq),cref(1,nstart_sup,1), & nsup,przes,obr,non_conv) rms=dsqrt(rms) call contact(.false.,ncont,icont,co) diff --git a/source/unres/src_MD-M/minim_jlee.F b/source/unres/src_MD-M/minim_jlee.F index d83b15b..56d5010 100644 --- a/source/unres/src_MD-M/minim_jlee.F +++ b/source/unres/src_MD-M/minim_jlee.F @@ -7,16 +7,18 @@ c controls minimization and sorting routines include 'COMMON.IOUNITS' include 'COMMON.MINIM' include 'COMMON.CONTROL' - include 'mpif.h' external func,gradient,fdum real ran1,ran2,ran3 +#ifdef MPI + include 'mpif.h' include 'COMMON.SETUP' + dimension muster(mpi_status_size) +#endif include 'COMMON.GEO' include 'COMMON.FFIELD' include 'COMMON.SBRIDGE' include 'COMMON.DISTFIT' include 'COMMON.CHAIN' - dimension muster(mpi_status_size) dimension var(maxvar),erg(mxch*(mxch+1)/2+1) dimension var2(maxvar) integer iffr(maxres),ihpbt(maxdim),jhpbt(maxdim) diff --git a/source/unres/src_MD-M/readpdb.f b/source/unres/src_MD-M/readpdb.f deleted file mode 100644 index 084d907c05b686ae11c3af387078936502ce1799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43512 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