From 62f35383349f8b0c7f1915b8adacf06f7a799031 Mon Sep 17 00:00:00 2001 From: RickMethot Date: Tue, 31 Aug 2021 17:26:33 -0700 Subject: [PATCH 1/8] first commit for predator fleets --- SS_benchfore.tpl | 22 +++++++++++++ SS_param.tpl | 2 ++ SS_popdyn.tpl | 72 ++++++++++++++++++++++++++++++++++++++++-- SS_prelim.tpl | 14 ++++++++ SS_readcontrol_330.tpl | 19 +++++++++++ SS_readdata_330.tpl | 21 ++++++++---- SS_write_ssnew.tpl | 10 +++++- 7 files changed, 151 insertions(+), 9 deletions(-) diff --git a/SS_benchfore.tpl b/SS_benchfore.tpl index a55ee2b7..c9862e28 100644 --- a/SS_benchfore.tpl +++ b/SS_benchfore.tpl @@ -1651,6 +1651,28 @@ FUNCTION void Get_Forecast() { Make_FishSelex(); // calcs fishery selex by current season, all fleets, current gmorph } + if(N_predparms>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1)(styr-2,styr)=mgp_adj(predparm_pointer+f1-1); + + for (gp=1;gp<=N_GP*gender;gp++) + {g=g_Start(gp); // base platoon + for (settle=1;settle<=N_settle_timings;settle++) + { + g+=N_platoon; + int gpi=GP3(g); // GP*gender*settlement + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,styr-2)*sel_al_3(s,g,f); + surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); + surv2(s,gpi)=square(surv1(s,gpi)); + echoinput<0) get_natmort(); + if(MG_active(1)>0) + { + get_natmort(); + natM_M1=natM; + } #ifdef DO_ONCE if(do_once==1) cout<<" natmort OK"<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) { for (s=1;s<=nseas;s++) @@ -241,6 +246,28 @@ FUNCTION void get_initial_conditions() // SS_Label_Info_23.3.3 #for each platoon, combine size_at_age distribution with length selectivity and weight-at-length to get combined selectivity vectors Make_FishSelex(); } + + if(N_predparms>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1)(styr-2,styr)=mgp_adj(predparm_pointer+f1-1); + + for (gp=1;gp<=N_GP*gender;gp++) + {g=g_Start(gp); // base platoon + for (settle=1;settle<=N_settle_timings;settle++) + { + g+=N_platoon; + int gpi=GP3(g); // GP*gender*settlement + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,styr-2)*sel_al_3(s,g,f); + surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); + surv2(s,gpi)=square(surv1(s,gpi)); + if(do_once==1) echoinput<0) get_natmort(); + if(timevary_MG(y,1)>0) + { + get_natmort(); + natM_M1=natM; + if(N_predparms>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1)(styr-2,styr)=MGparm(predparm_pointer+f1-1); + for (s=1;s<=nseas;s++) + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) + {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr-2); // need to bring in selectivity + } + } + } + + } + if(y>=Bmark_Yr(1)&&y<=Bmark_Yr(2)) { for (s=1;s<=nseas;s++) @@ -756,6 +801,29 @@ FUNCTION void get_time_series() for (g=1;g<=gmorph;g++) if(use_morph(g)>0) {Make_FishSelex();} + + if(N_predparms>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1)(y)=mgp_adj(predparm_pointer+f1-1); + + for (gp=1;gp<=N_GP*gender;gp++) + {g=g_Start(gp); // base platoon + for (settle=1;settle<=N_settle_timings;settle++) + { + g+=N_platoon; + int gpi=GP3(g); // GP*gender*settlement + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,y)*sel_al_3(s,g,f); + surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); + surv2(s,gpi)=square(surv1(s,gpi)); + if(do_once==1) echoinput<0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1)(styr-2,styr)=MGparm(predparm_pointer+f1-1); + for (s=1;s<=nseas;s++) + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) + {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr-2); // need to bring in selectivity + } + } + } + natM = value(natM); surv1 = value(surv1); surv2 = value(surv2); diff --git a/SS_readcontrol_330.tpl b/SS_readcontrol_330.tpl index 4b93f52f..5c910dde 100644 --- a/SS_readcontrol_330.tpl +++ b/SS_readcontrol_330.tpl @@ -600,6 +600,8 @@ // read setup for natmort parameters: LO, HI, INIT, PRIOR, PR_type, CV, PHASE, use_env, use_dev, dev_minyr, dev_maxyr, dev_phase, Block, Block_type int N_MGparm int N_natMparms + int N_predparms + int predparm_pointer int N_growparms int N_M_Grow_parms int recr_dist_parms @@ -618,6 +620,7 @@ // read natmort setup LOCAL_CALCS N_natMparms=0; + N_predparms=N_pred; natM_5_opt=0; MGparm_point.initialize(); // 0=1Parm; 1=segmented; 2=Lorenzen; 3=agespecific; 4=agespec with seas interpolate; 5=Maunder_M @@ -1044,6 +1047,7 @@ break; } } + switch (Grow_type) { case 1: @@ -1245,6 +1249,19 @@ { ParCount++; ParmLabel+="FracFemale_GP_"+NumLbl(gp); } + + predparm_pointer=-1; + if(N_predparms>0) predparm_pointer=ParCount+1; + for(int pc=1;pc<=N_predparms;pc++) + { + ParCount++; + onenum=" "; + sprintf(onenum, "%d", k); + ParmLabel+="PredM2_"+onenum; + Parm_info+="val"; + Parm_minmax.push_back (3); + } + N_MGparm=ParCount; END_CALCS @@ -1322,6 +1339,7 @@ if(Use_AgeKeyZero>0) mgp_type(AgeKeyParm,N_MGparm)=6; if(catch_mult_pointer>0) mgp_type(catch_mult_pointer,N_MGparm)=7; for(f=frac_female_pointer; f<=frac_female_pointer+N_GP-1;f++) mgp_type(f)=4; + if(N_predparms>0) mgp_type(predparm_pointer,predparm_pointer+N_predparms-1)=1; echoinput<<"mgparm_type for each parm: 1=M; 2=growth; 3=wtlen,mat,fec,hermo; 4=recr&femfrac; 5=migr; 6=ageerror; 7=catchmult"<1 && need_catch_mult(f)>0) {N_warn++; cout<<"exit with warning"< 0.0 && fleet_type(f)<=2) // excludes survey fleets + if(fleet_area(f)==p && catch_ret_obs(f,t) > 0.0 && fleet_type(f)<=2) // excludes survey and predator fleets { catch_seas_area(t,p,f)=1; catch_seas_area(t,p,0)=1; diff --git a/SS_write_ssnew.tpl b/SS_write_ssnew.tpl index 329ce213..4397fa71 100644 --- a/SS_write_ssnew.tpl +++ b/SS_write_ssnew.tpl @@ -50,7 +50,7 @@ FUNCTION void write_nudata() report1 << nages<<" #_Nages=accumulator age, first age is always age 0"<< endl; report1 << pop<<" #_Nareas"< Date: Thu, 2 Sep 2021 18:15:26 -0700 Subject: [PATCH 2/8] some code cleanup and add predator M report --- SS_benchfore.tpl | 6 +++--- SS_popdyn.tpl | 17 ++--------------- SS_write.tpl | 3 ++- SS_write_report.tpl | 22 ++++++++++++++++++++++ 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/SS_benchfore.tpl b/SS_benchfore.tpl index c9862e28..d2d4cf2c 100644 --- a/SS_benchfore.tpl +++ b/SS_benchfore.tpl @@ -1656,7 +1656,7 @@ FUNCTION void Get_Forecast() for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1)(styr-2,styr)=mgp_adj(predparm_pointer+f1-1); + pred_M2(f1,y)=mgp_adj(predparm_pointer+f1-1); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon @@ -1664,10 +1664,10 @@ FUNCTION void Get_Forecast() { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,styr-2)*sel_al_3(s,g,f); + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,y)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); - echoinput<0) - { - for(f1=1;f1<=N_pred;f1++) - { - f=predator(f1); - pred_M2(f1)(styr-2,styr)=MGparm(predparm_pointer+f1-1); - for (s=1;s<=nseas;s++) - for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) - {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr-2); // need to bring in selectivity - } - } - } - } if(y>=Bmark_Yr(1)&&y<=Bmark_Yr(2)) @@ -807,7 +794,7 @@ FUNCTION void get_time_series() for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1)(y)=mgp_adj(predparm_pointer+f1-1); + pred_M2(f1,y)=mgp_adj(predparm_pointer+f1-1); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon @@ -818,7 +805,7 @@ FUNCTION void get_time_series() natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,y)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); - if(do_once==1) echoinput<0 && fishery_on_off==0) SS2out<<";_reported_M_includes_PredM2"; SS2out << endl; SS2out << "Bio_Pattern Sex Yr "<0) {for (s=1;s<=nseas;s++) SS2out<0) + { + SS2out<=3 && Grow_type<=6) { From 2ca0ad8e2dba6205d959c3451d0681f2a3b4e2a0 Mon Sep 17 00:00:00 2001 From: RickMethot Date: Wed, 8 Sep 2021 15:55:25 -0700 Subject: [PATCH 3/8] update to predators to add exp_disc and survey of M2 --- Change_log_for_SS_3.30.xlsx | Bin 49753 -> 50043 bytes SS_benchfore.tpl | 4 +- SS_expval.tpl | 16 +++++++- SS_param.tpl | 2 +- SS_popdyn.tpl | 79 +++++++++++++++++++++--------------- SS_prelim.tpl | 4 +- SS_readdata_330.tpl | 2 + SS_timevaryparm.tpl | 2 +- SS_write_report.tpl | 33 ++++++++------- 9 files changed, 88 insertions(+), 54 deletions(-) diff --git a/Change_log_for_SS_3.30.xlsx b/Change_log_for_SS_3.30.xlsx index ed80a6bf75de307329c2c377805cdb7c8870f8be..e69bea340bd8896b986f33046ebe08cd980e61a3 100644 GIT binary patch literal 50043 zcmeFY^Oq(;v?cnL%`V&OQkU6fyUVummF+Iuwr$(CZQI85z4yI&^VXgJU?zTumAT?% zt~ilTs=MJg@`L zvZbH9B!1@Y==Lk43hWQXVic@0b1-*hX+m=`}KH#4E8-fKi6qWn~@px5U0_Q@Q# z=rHdUq*vf%{{y+NvOV|H{Ir_i2UJ)lF*UtzabS?f7Jo3D_8G|e+1vhdh!yeUD~__F8K-%T zL6$uiiJPvGRnNU}diRe{PdeF*kv}9Xs4q;@V#DM)k3Jd=EVtvCZUgKv{pBM!qyFK9 zC0qY8*ncNUN`+D}#=nuDU;qFP02;*Ais8R_;sUg{GynoE|0BEoznlU2m*W1}{-50{ z;-)1B_~D1H{jcSZY>LsfM4C3oNiLL^p|FZi3D;5+BvdZfap7z#X&>jt`B9JFymVtOY@h)%T{qJL_EfMwH19r1tnPk zvY@Bv;-p5&wEb5rVER$9Quv4dL|>EiZxTX!kcdA2=!UI5BWgN1l9=E2=pt@HTtN$( zH1fO>2RzX3y<+|Y!+%HBkLoa*&VOMy{9na{^v~iSs{U6z6)0^3*BFt#vm3sN>s{%H z6XsA+%A%?QtuxE&ni#}KIK&KgS5hzGU#?x8(~^>S9oM8TxPNYMK5s_vzBVEE0%wAL zrpAjW|@t+L~7RGBheE}&8{fYvS)GY8XT?w8i4plYZ9Yk+sEwH6cYG$0hqn|*4Vc%m73WZrzf!BNH>M$)ZVAqaV2Y1e}}sDc3{VQY%!ahc=J5& zj>ly>VA?)Cre5G69Q{h*UA+hS3%=mmFEu?HI(RBmQPl+XBxPSjZhpjc`y;6@OiEn) znrI~J5xj8)R=ojJb>p$0ywOntp(V*c>4g!I;K!s}nt!@CQ(3-`g?2+;3#+wLJ7vEu z(hE?*q<(*Y3RH@gSq(Z7AJR3F%UtB|7w*C*mN>+{VKbL)uxidWzVL7qm(`_<;b*AK z&=31cC5j$X>ml?enO)c42pD(RCNx!t?rvVOKTI{sC5u$<=RVo@v7=-P?a&x(E}j~8 zI)_zFhTD*sRGNZR|8VzW*H!Lc@KQGmlIJGJDBO)8yhJ)+MC;$I{ZiYJkVaZ!Ig;f($)JW z*4H;Zz}I$-6&|%|UuK`gvR<_rNtFEwwRbmU0!e1-*++!36R|~;gm>K<4Ja5K>B)5 zl*AY2?lp!aH@wNPa}IjU`%i&tmxk_;xCg&flk$cE2PDMX9p$u-jxgO5v5$jOc9FY> z^t;n+C(rGRWV!CuW3ji}@sfzn={KRcxpUvm#mdKv4-FYih*O!+SJ5pO3!; zBX-e%ut{72#j$I<%O)2W7Z!mFpI2;Q{gtV?=lW;Kt*sn9aLbXeOlQ(#W67?X56`h$ zSJbT`WSryL`&VyYn~w17uo%UpjZ7ScG3q3BB#6pR!^B-*!m@&S-6_kSd&JQ_H*=(l z2oJMemY6XU>!Qrfpl4g!em^Z8&#kS|=T$MV{)#erw74<f1c}`81)Z{AjWJ%$qi$QbTm8f{JKFAwb1az4rymnE5rH` zliQ7W4l#$5(dFOG@0`arl~kQBWn#Jrx{!$YgH9l=f0}?U`S!^M1Fq$mt({SdR%LY= z!{Ho*mizD9+KJIJ)$cFguR!RBn;wrqi&u~BjNx(GVDU*u<%CsGL#c6|bO(!QcZy^n zr|{}pNDeLHT%h_go#>^f5^PsJ1kq0;qt zyrMj|WUY9NHdksHj8^dE??Hw(bSUR7r?mWJ7^kb^<`QN`AS!W9q2hIRz_`8KwDhuX z9AuBk`rwq#ZhXG)yJ73a=Qc$i%%?v%)2fN0q*{^X5}RqN>K8pB@m04m%A#=$;smfC zo}*r&tWFV@?~vLDof-xp>cNG?DSnm-ZZV~O;{Qa|Rhp)M0?osD>c~_vpa(K0_m+32 zZsXu1d2EqM$HCj*+3Y4sGzuFDmZKPmZII>JN;ha7se_jSf%w0b!iny##dR5ic)n&i zp}Pu9r(}OFs#6nElBbxuEow}a$+w>VqJI&nQK$1l^DHnerkCu{1hG`*S98S9W9fJA zbAAmdWTPKbH#F5ABuB$5_Hs@Zg-aPZ?jC40J!Mq=Gz69lZLUyOZeHigEb%=IdA9k| zUu=PgKRK|?$Fn*^p$#}9BGk5Py!CN$oe=V{Y39$K49ssQW<3Q3oxk&5ySvKwlL950 zJ6KD05xk-X@}~EDs-`-SKqQ*($K#(5J@rTZkb;{YV1CRwUZpo28ER?D?~K zkjLQkm5J{Zfx0;#tmVoN8ylWyl>fuf?i-XHH=-kUT=VHAWM2SCbv&ojJ%!NPMAxrj6=eV+qJQm2JY)8j4tmQk5vx`_gikqhlR(^ zCm%2CB^}Sf5p9KtG$7Uc0p|97>ZgCYXJP`Lt)4m_Aw<&PZf*B@O*2^djnNL>9VGJ_0$qeJ+?)lwurKiqD!96BpXZq3(TJ}532(5@sH@jD3 zGIFtZwAL5jOzev6BDyqe`N&C%;vp>bWbgF*4)G-WuIULhZ16xHJ5G?>=#WJSnkzK# z#@!PlwX-)jtLuf-rCJQDf_b%HGqrptOV~vct?RrDY=9uQpLt3S*S$kO$KTZ9UOn=X z4sp%_a1=owDg}*9C?b7%(M`Cu=_rtK^I-#~J}z>514x}$A*Jge@Pcscnp~%n1m)+?wJ()1;7u&hn-QC*e$N3T-xXL%lykltm+EUnj8n@|`X6z1kD+ss6DIo+!eGyrF)Gxn+oJMt6};CD_S$jt_bm!|7YrHIh=@=(u0X;r z=kR>ACGaR;-M!wO9|3~S!(3TDUJnE7;6Al050+EHIi^^Gv&$F39prflf+2EU6q50` z%3v`oBf$s5_K32>#d|zz?W$Nmi7-qOHP3$Q*{-;}69>ehb;RV-ic^DKo3B1x%?^F- z6IT8U|KKbL{Da1=yM^B^Q^L7{^n0p&fYxnsb~t+!A|hf3WrJb2y8omdZ?LJ-ur$UO z@sTNMZjbPz*cP^;XYblM=Ie6MQr#;0?3m~}m5yev0FOCBtuZZ-5Zm-bO zr#fxK_lLkn3aP+ckmmK|`L#}`+h?)MwNBrYdiiFQ>nV8OvQYw5J2#81klEUTkA$yb z_`$YtNN6#C1CA~4Hk8_OWpiEmty@(cf*fmyV{IuH%z`qWT~vV(jh&6s23-=lQzb2g z*^Fk;p+!ww{J^Pi(oC7cnW7dseRCHjpo|wG%9!iMv z9*+YX{V_Ji+%qf*ZH#4%GE*)NRUP^tybf_jzpCzI>LY{1?E#nlYoE=DQuRR^+KIXl z)p{#cRJu(E)V>swV;mhGA5#8|#}(#AhGcB}&r zOgSckz)7pJ0t_O-6L&%EiB&yYCGwg!@3xZ4>Ah@KHTrlSb-El}+L~aaV^2-?_Kgp(ihYh%=CZBSa z`4G22Q<^5N+Q^V&`#4eU0@`nrsDZ;&flc7*zi-`kPJ8&ni|Zq$c>;J(u2Xse-w3zc z0yhet)-CWI)`8i~-@ckfcZ@I-b}-CE^2@GUZa}e$vBB5ZsGf;=t1b;9Bnapn#AywF zQy02FvYz(FJ+vAS8)@k_%c;)y7q4(H&5q|n&GKOR&TsY8^;4JD38ZQQ(%_jBSaC4O zl)G1-*ys`uL+~eY@;Dh6sRN%;}x;SiG* zPBlr`d+MOJ4dNC$-I#FAL&^ByIgp*iAGOfxEM)OoOyL|~cO6ZG)rtM`5ma)!VEu7Beg)g69};RCEL7Iu z|G3t^6wp(xlc|cAn(!>EdNr-dhO7c^i7o6v+aN*Ws3V?>kvxiSYLLEUJw+C;yfZe? zC+xkDEZE$YNpa4FjUIk7+IHpoJKIrA#H&IGd8Lzh*Q`@&!iGu30&GiT>={VL;^vN!I~vDUdKD3>eHU-o;|3vBh^KT5 zAc`EwY&g`G%0M2)a>Q5SBYv$OOE>nN=D?D^6PXaoa_g| zi}Pd{HBg@%w<)CpkqR2J*@DYP=%wCNN8*bCT1L1_Wiqjm9cmW5r zTYo#FZ_`Z21*gm8#qx@LdgT|?_x9&OTTZy)=8vjxr~@CK9BX9hpp!U`KG*fiTl^fM zj=RRl%wGsK^#|cILZWwgmfpbwh-V_+Uj@~&Ki#O+3RDjtqr88Y@Fi1j45<~8d&4NXmH_$BOJhx4gARMW-;bQJX?C0cL8&J}_q%#$lQ=BB)G%9=@C9C=T_3dMx_E z^Mq75#2;895hQE$5PSjScs%qQ=vx1W_*3h~=j!!#ERK1v8ziOB5lR2GTAHL^f+!IiwC`{cfU{Qdr(hi^ zr3kyxi&5=U0nPDQ3}NkFxgp}tI-qxw>8zW|7eCC#QeWKy84-Sx>KIC}*wk-8$^I3# zt$V5FKkmVIR2+@47il+ZG{ACC*_M)NQ8BB1!(VJTJ*S~SO*9;T)w~w!R`jPc89b^G zHYd6e>GSKLY2=D5T+u!q!_F$LGxv3JGO3)(f*p-c&<+!%&ax%2iL+AH!(R0*$;4e8 z=RqebElgvyqj&ApQ&aL}Q=ea}^xQzSZ{E2U;GETS0k&mS!xH6V+ea>GI&cY5x6Z#> zUiuXjbe5Bq6^^v;U#}f2?z5E&bs9T|BAD?aAB2xhee#DhHIX{w8Ew;-Jke!~TQjg4 z#6&HW;U$}zTn(?sq-;F5b&{)tS4i+P>Rhi1)Lu{!kKhq+vS5CBW2@71`fxp&y; zTv)1Jb?5*;tfQ2{V}6~Uz(Wcm`2tEU#7{h~mW`u%SD5g}R^z54FOD-=sx~3bvpfU< z{!M7gdR3k*vk(Dx`49-xPASAV;{`X323?CCYuAhh;4Zr2U*#3M{mX0QwAWPHCT!Ns z*ZMKsqTxc?U#@s(E6rrQJ>x3u1sZxGh8dwee=BSHi8utzn2M^M!dDgiM`=TAV`A~J zJG3ULAopq~Hz!&R*=97QycA)m9Ex-Zj9e*(L-vKzwz{jT(OwrmW}q&4ok`M9&=3+p z`Q0;r1D3ngL3;I4fg@40UfJJ_E%Ql%lL8;^0WWCto&dHC0dNW#4L4AP z>0{)5ax>zy3N|yz8A8NRMU+my?Qh(<6E^&VR7H7N)D@^?>6prO$xS!KNA~S#61zZ` zQhl~EAD_;pcCw+i+1&!v55R+fR_4H*7H?bJl0AyOuEf6ZJM)D*z;5M67ja#KrHLOFDc zrJ^-7Oa&|bOYL~%IITpNUjj3-@}Hfxu--pRSucO(FmxW749P&=`CK`@MfZdel=U*v zGKkJ+7s+`xz;jE4l60{O=>`*&%P zMy;SgJBU=&mNbD}3>)dlHH+BbBP0y~k|S4+s~Ub&zRkq4vL&~{UxC__S02zwx#rl14E9PhP=r^s1iCVP^ zZ{yg@qZaF@eW&>5mlprWDNqunksaBKnuDeKd7Cq&MIVD`N{p{iGhnXlXQF2;qnn|F zMe&OxsS`7Io%F!c%X@ z^>@OU?#-S%pskEB1}ErSD=V}aL2jO^pp+kZb$`W(W&%KIsjBqjC8@Q>5w&xy;v!$*G)G65A>cDF#c zM5ZcD=;Lj~nG$qh=)yj<)ojE-T4#qTK==m#R3^n6=dlbFw4kWq5j$EIL!T+5hyEEi zhSOD;3e*Z3aHGmqMq@5O&cG~Ptcw#GOW~j4nhQFg+1RfuDIlwSq;7Qli6n$y1Q$mk zuJqFz7E#}W&$bCXR&V2oMom*xQ7VPi%25rv1L|(@?}{)&p(d!m>l*^yA{IbPwA!ZM zkK2epByRr^K&(#5uZz?6H*rPY3#-kS%=aaSCI^YuU1X7rXWSlsLed9KX~fC8I45d` zD2{U&Ot;(X^{m>EtN5*Cn$ksN{}mV97YwAOzy$#U-<#IrhIhT}A_J$g+)kyC$)!BtGV8)hOvjvezZpEZZXc3fc>t5k*HfuA`%=ui0G8^Q>GRu}n~?2T0PTG{2nQBVVrP?3E_F z*{|Odt}E<=c{W-lk5&`*Qw5v|VYGw|OT%Vbf9T_R$>PIZU{6P0#;6p~%FmAAw0tRs zSn?G?R{qNau~9=-vDb%<7lNWD4o@gdR)LD>h0Hh<29EOsHEk1ltOGTrnF35h8-m>U zm40rN-(2i&ny(@hn#eI5^lanw?F&KBF4&E@ZPu@R7vIm+RnCRJ-9ldG*ql8a$NNCg zqzZe8u!}%ddvYA4JBL+LYptYrfl1qF#mlucjeR;B^fE#X0$-6PX2=I(vLdYxV`5kbN|DXu+X=o9@lWe*-8xY! z9wUAV0b7Ao2Uk$P_pvV!#+|nsfos>3;u#*Cx~f^Hkm`hC;u~ZmmAQPuUs&OiP(Gt5 z!ki9^rp}M9jiihD{zV(SVIDPdJkVP?Gp}*2^>{YidD;Bv5tc6{zUd>cy!JQ&PUKF_ zDkWKY?$+}jdg5Yr$PD!0*C$)Md;RtINWJS%C}vJJ>3p9QKGENrm-*-O3`&$I7>ho> z-8)qV2R9*@JEo(QuheFQ?xS!l7@+N`%i4L=pgmZxhrWat;|Sx$*Z8NWv4}y@b#m{= zzs>Ozs-#&=M22^?B3KvD701=<(GVtC4bq9E0KAm4D)^J?Tq+Lm~q^S3K?mB=@-7@(C~Kuz>03OnQ~=s#rn=Qk26g&)`G1?6wk<)6h- z!IE04C(Vr2>ah!UrI~rppxcnk_H(Fn$`z~=>E;VE2f!2ArOn_%G+3y8w|h%iUD1)_l=V(jIUNltW%IdmD^O%xmw%=IP>P}-E2~&DizkMYSG&fO zSCrK$x1u`nh!(-`AkI=GC81z8d9ff3I#hn~{1Gg{0!D%s(0)sz2^2k-yTLtBeKTetT$}3}X zY8vrRpvu7GlhePj7SCu7>Gn8XJMyhH9MdxjZmNby;%|Am4#MkZW(3%PRQlfVe4!sa zsjZy{vB*TE(X!Gh;|4KQ*k=6(eN1m(V>8ONu2<(>Uj?O4#8A{%U;T|x(H}3INtb7y zH&kVeqo#V{r_TvkIdJNYycC0swH)qn7s(%qc84@a^EV5i91$O!!SS+TV@BV#z3H3d zC49v-Bb_Zt_bpSWdk4rT!g3Y`MOt#TB<0mN88r#&Dd+pL7M@fr!kji6D%KuVD&aUm zfMYM><;q0u---hXuV5RqqoCL8`sUm<%K{VA{{}{|;VzA|mH8vUJhz^6QxffZwFc5a z8D*tj6%=k)@eTxAJXzCY8e|gR+uZZ3n6@K2mKQc+#;Ly+#-hmmdL`(4DOYa;P??_|2P|q5#41kp^=;n4L{7%D(kNJ z0c7K@CDz{s4-#+Jv*y>6`Rb_A$5REVz}MvH*&{=gsI%$QDR>Tb_eeKxmxHRFQ+Phu zp(D}OF3XdhZ3~T@A#(|fgDmt}JBpVosw{*#F|S-o9~^7akC5l&TXbxXlzcsHecJA( zTp6gdHDsf~Oao&!AyU}u-cFCc&9vSxG@|3|6U;a*+bVav6a@(t{TcB-_aXZz0QqhO zmouSySy*)dJKoAK-rsH|3|72UjMGlh&1pmvU51C{>mh z>6`0~+Q=$P+LU%tTC7Tbe$Knq*5Br85vm`{9oqKwlxrad+j{~_7KUPUy=dzlC znmr^%%uXDaG{ENu#Fb~!WWHG$*%JthMwAq3Tv#b`UX#UDHbXEN-02~1wb48zEfIpr z5DVcT{ZNlU&t0W`w}U^Uyl(8?-CUSUTdugYVB(PYOviAG7>G|bny|(hFeM~J^5QyH zj{K~#fvw=D?D2;%LsauZa9#;Y!G4 zgcr|Z9NxBi5+=BD`IbEk90FJ2eco*5SF$#K1CBp5D;6k*5-+w-bl^vGA$&>TZH)`g zIW*DFv6+OG$)|exR=Dq*(awAGNN`ECOe+}ai~-lahd3IJJFrPaiq6gZwPbfP^_MJu zbCW{(yGHSwtIq+#EE=;#>zMkz7WQs3nDUDK)w~ZER`yDS1)yn$hIc zS8xnA4rSq+;LmKDzc3xn(Y3(n%UtbBdRR=wcnm_0EK67WJs)=-yvPpwU^+asbEKUJ znRf9Q0C`Aa;z21tN;O3Zb3&06PcQP~$lQ(QcI9u6)IkbO$}RPD&0(ldl&Raf>dq_7 zJG<^<<))M4FA&zdSN$F8{w-ozv-s-Ie&UNwo?kas)tx)Py57QbDZSrYT^d3^JtyDs zUBQ~J@w>iZMyxeI3EJAM9zVgl9*Vyd)ZbctY7nROg>V1*p!(uEA}t+%@>B0E^q z1Cd-^#F3T~$W=P)Kq@40!tDW5JGR12Tm?lMXqmGsuo!L0HC||x)3sMz#f!ScAz_Tm zTD=^50#K~?@tT*yZ%eH6(*e+Ku*9s7<~xk?yB>=$5}L#U)<-C67h`oW%HjG(9u9fNu6H9#pTQf1ivsf`pRt6(h2Yoqu$ zY3`JPI)iFb>c+%`)A{Q%gY;L>63C+4iG7fKcvvo3&e7lrZnhPhx(rd{Z}!h{3WA#H z2HA0E_xzNDlhBJeI;loEi}D&Q<;KYU$!;cgmX(4EtNBAlMnc4$4rwa#ERJ(Bg5hjBb}j`a*R*=m*Li_5XT)P_eWn4 zOFRuQtSBux^i799T`E%kRF1&OD2(sc1wd=*>?s}xFaAVcO% zNnB9%%5?ofL|$alJKF9#smNjn?N0(?uQdg-_LEPLz4cdjL#3v1skIWb^^`&px6)w# zCB;^W*Vl>UFyaIo=LQva%AHkPbW`>Ba?3sy$~d_Z-yfV3Nq!@pbA=|>?>4uzmu2%V zE3hFGq{RY$LigpI?3LsN5OHFO)}NcxF6Z$PR{ijrSRx34e~nz12!-m5>g+%7?auyk z)8Eu84d*xC43^J_W9pJihi27ODF0J#eNmepK-Me!a#n}^?TMKukL^|>cJ&2SW%CD=VH}D+6$XDk7WH0DqgZ60Q=oaM$ zzc8D1S#BcSijuDg>3Xo`gnfW&6j{WWtdo^C=R_NuI5*|9M4r8O%o007k zo@4)Tx5Y+`wUxFFKPECs)Lq-h?~=40GwWPrhAy_s-I;KzDk@&*@)@*(D^EEt(l^K7 zYgR=;1e&J0+^5_FuD$B3riToa^pU}ac5JHBy5|-RU35V6V@yO&YE9be=1ieKC)EQG zxvtRas^R&ZK+xVGuX-oUdbu&7K&eLGYrB)Pf=-q)2*#ezexNPA^yC%e=PfuG3wcEd; z)kU3r1+mSHKHwB{n?;M82MsaX?3<%Y1;6V*N3SZkaQn(KZzy_XkcDH~&KZKZ-%uh< z#zK-qs64Gc;^Tm|$5VC|hoa*_;)=4TPp&&;(RjkN*5BA6ThvB>*4t_v`;m+*r5!so zAd3CO<;{pJMyr)gkV#Q6q*pG{(_8^tEh7zYBdML%>{sIvjXYENZt2zB7$#8N1v%ChuA1TV6l7{7ml`QNR8maevH?mw+)BI19X7W+@_v!j`@wK2ng_W$Yj zgsS#G{WF@^Km9ZEp%(NQl8PP2D?Wu&UAo`i zEo97za~bZ8+2h!$@1=hZE0*Jl;eWWPBqa2=w;*#W+)%~okd2TIOsZdZY!g1)$JuS~ zlLgnLC;TD*6v2N=60oW&Ab?I?Imu}VkGz7yAr`6AX4>UNW_x~rx%CJiCrDKW6t%Um zdedk@gj`L_4GIAiwKsHlz+)H#v>lfbZHm~-b2QdLQ?oZ$n#)HmIBaiJKJPt-#B~`%SbKJ`?L7`S>Z~>nL#zBOtWT0(Fm-zB4M74*P|>;$ePd|e zDh6CF!pIr>p@N@dN^KGnFfe#Ku%Q)#lyg7fV4%>0XBkd(tP=E-edtIWilD%}N+Lny zN}M|gS@wz2m`-jB=#D6O)&%^6{`{D6_znzcOp!8h^&Kc607w541$B9%p)G<^(>l3n zRB8;9q4CwohsC3dHk(Hh9pdN3MinKkjK7`J(59Ozr}3gqov8Bt{SZ+Gs!>>+c0PM~ zx|#aNBWMm0rhG#SRRz0$#>%o!cY<^}gMXMulX-)X4!_RJ=8ta+h z_{$ZmXOWofa3i{xf7et;@KQYMg+L!>gHDiq!p|qPK0&YyJ+@SWBQ47AFOQ;;LPUNrQFAXRR$n_gJA|ei@POY@)d**pMXBjx3HnI{+_xXMn&SndxErs+6oWg) zBVIImE9r8;1(X~^8j{OTfdah&Cw`LZM^bF#WAkzf%{s5G$ATq_N>RZXRZ}W1N1B-s zRQ5zs?YIDFCR)q1GU*0ITkn_4GVf;DqYdr6l}FJ&O`9bF+kCU-9Y%RmC|5;<)BdJZ zlMZ`jCnD^lUNXn5Q}!$}t;MAQBI{&}W&c`zxkB>VPaWtA>4@lq%2O05=G(a`r2D6G z750!fozP*xH|CnpPS_=W$}nuzJaaLZg_Hd4k3 z$77}z4`?b7q`ZB1(JyR{(Aq}Mqw_^p4zOvU$Ba@mW)Iju6HgNENf)GvVzpWvDwPzm z)k&4g;Osh=#g8iG$M5quWdPY#+gvKll+ZDdQ5-ATYEm27Tir7tE$E{LQ^W=OGnd~M zja{=g){5KBsOuXbWZ%6Gt^ppk+Wd zu{vAO?{vtH&~5$O6z$ahWnxCK(BKS?39|UHIb^Gw#zg1|370)3g^3B`;T=NT?w*V~ zYp63qfNK!83_2_Hw9u069yQ-0MWlRO%jI+r{1idNrz5;B{QJy?>gwX0qJT7&;XCaO z!Y)yWkhrZ(g1DaH<*lBH2@OSr zoZ6@T3r9fTNkb}qg}DhVp8satBHFi9yHmAoD}@X$hEN|N>tSjRC=3+Tqp2&9sbDQ! zqP@&bQfbb+Gibw=LUBv>@K#r*Kvegzyb`62DS`3j&l7pZ zQi3^6mKm0BD!UMzy^Ml6GhV}_c{K!=f-I~SbLUof#7xbXxV?tMNXBNV+=J{H28m$* z+nl2$(87^_Q%mJ$HLzIuCr&Q#cpT||(QR*?*@d&7a+s{>9 z+8@Leg|$%Fw;*n*zdJAw8J2Eh6+hW#&9!~a(=RAlP9;Ih|UZeMFWbGx2?4xHJ9<<;$Fu%c4` zVh`OPc>O-IO9)+FQHiP?m7Xf@9<*`%q1=s7hrVyjLw!k~11sWa4bXl$=>EPxdd%mu z+3xgldVU&}xSu^8&0lY3xb}8?d?J*S?RtND>sFzR-rDYVeIE~Bb^!vjGd|qjzYe*DupCuld^EKc6Z;50~3rfI1uN zK3(s_`_J9o?OwN1-!tjU(d+Z`hx_adI-R`OES?`WQBm!>K3ex6-}~@- zy9>kD*V@IGT)pe9{lexq)Izu0cYE{m`f|PN+zZJ?<upcB`nvi`=lkX?`F*>h`BH5B z>B8uvpWWqqYpd&R7|6{n{dT8&U0EGJ0BOq}MfiPp{Py%I1xLjEo$tK-G2Xtsl=OL> z&tC1!2afxV`F;BR>0)8}tKt6ZYdZ5UX8u(zuEgj~i(7@y#uq*z@b}qNrO@eZspZ`* zJ+IAo(eQM7w94v!ux4}jQ{{TM;W;;O`n2V-+-KpR_2ut1mv`ItCGqc?PwwBIXBEFc zUfkR_zBZeA*UiG8yX@XwJl$=&8RqhzfbI>Jrns9c5u6c^TNn4i0b^#)^%p9uA%!(r zqSntpu>Bjpb1QT=x?djRU0lAsjpmC)&OP2+SIIU!twc+(`090E$MK(l+&4F*KK6H8 z1wNkcZ=?Hs&TBsm*b}k(I!yVZL1tYC7JX|@vXCpqDptq#9wrRg1{?|O=o(xH5KwXx z=}@Gq_v=AsAM0b>9PP_j*|#gXYh2C^P%`W}^_+!nhl|4p^Wc2CalW$JooYFdqLeQy z{0&3R`>=H3#IX)=1=j$puyp#+e7Ho8Rg>2DneAYN4p+XZ8S9Y4+6X?+QwX(nDwhFf ztH|?O0X5_W2w&YObP#l!f^9j6^&o=BYdlQbt=u=ijuBJp9D=(&j)TP2%AGNY?L!3) zQ0Ib(+lUWnxl~!uNL_qqTHBY$E>@kP5T`B$b?KodPBv_?ivxGBw_10TTQDwZ1-Wqz zkXr+Y?3Ja6>6-_L9HF2)+sBnmJY1ljwl3-YP5(V}uvyQj{uFu=AHUJQDdL%4>MYn| z1#W_Vlw)a-#!9Z^C|=_#n>- zqI}YY=%fra3CjH_jtW4z+M12AGRb0hV>w`-U_dp4y}lRcLG5YhJ_6R2it~bp?9!QO zPDCpk+99G~Nt3{kZhR6sFGCmgmppw`@gf=eBsRFR8>$PkG{OR(BTtYvX*mcsXmPm3 z)Zj#Nm$M5IVfdi(*qJLNyoJ>~#+I{&JE~AJ7^ZyA!R_luM4%fZ0d^Rv0`CC?2ZUvG z6C~tE&6*0{J>v>BL_v*|K7Et^pN+&q>d*La*SpFo25g`MHCY0H#4Kby&BfdlVakY* zGbpCGgE)eQmeqU&B|Ew_jSPc0j00MFWEhd1)v{mG1bxmetpnicPzt>S zUM!3EMm5@^U2*>=FUCfd9%h*VI$)M10Ih6T-l9Rq?}?oxuKz=AcS6D)k@rH`w3PLe z4%%R%Ye^zJy>V{B!s--7 zhsvZXO(=+BV(up}mCJ>;nZaoALlSv#f1KbFFE52ZzP+78lhW74MY>d3F&4}kJmktG z`_x7s^N+=>npWZmt$si^m?964SAzqV0qEstgjcsf__KpiNM7lnxt0Mc(VIHsKnpK9 zZa5s#Kkyj*0}o#aNs|MW0jP|(4XKDU;QCnaO@pP8BeJytFgwjml~)J18vO67u(Ib# zz{8LC?SuutggEIV9^?4JT|x(j7Fajb&Z=DW3u2pzK43EU{_q! zAIwjcX5kW!p}1GjV_^S-voDXQvfcVOB!x(ZQYuO2S&~#J3L#>flVnaZBx8lBkdh%| zk|H*d*%pzIS*D5%nH$JdhLYZO-S<|WbI$vD&+qrgdCv3M``*`mU2A>UcYW7dS3R0; zjh)J4gs)NiHit&8s(DEYmMGKYDoba3`*74JbJWLS#HYYT;r_1mGq*%1U%vECKDs^l z(@#hn_BHCD}p6X`@eLFou|0o+^IIU|CIe^&PF!lKn;`M zDn{`y2R-MG__@2_fuG}h}c=H@F7B?Zi-WI2IJig9H zU&-3+6pv4;I%3Wvap?Hk&5kH!l(P39&#o|~6FbumFCp_;83f^YZg+TM5V zU+b%S^iRfpGibYVtti~&c-WYfDCeI0)Lnw>Q~EZrnGESp7O{90@$v7d5oNJxh&nzP zG)ka)w_kcITZojO4R6>v%Kk!r^NkYQg7iEGt`$}&G4ZKyPx%%7TVCbh^&xtd=l(+i zJf{?=8N#x5EUXS24fUq4bqn=os$~jYTvK~IbTR(ew$bggBF;_wck-%o#)UGSoE6O7 zNLYL~B}h4)IOe!vr|3^ znl&to%VTxz+fZ-nS{Ie)0Yh>s&#w>Bs$BLT;#0ZYwCkYgjPkVw9(%=<#(7Thwnw$| zoD?43M-mG3)>U0)qhpEcrde$pQBm1^oQ>Dv-7fWQ37tuYix23){}Mz#Mj;Ye6<@e)49pDypD?(%aidc> zH|6xxo3EnZ5O*}hjxpqDCi6Ks3NlnUSKs;ih>xkhm2rt%w2{;4nL)45`<|ei&Oa#} z9d6fN?i0IDtYXRC;``veb;hgIf&ssWtjXZK9WZEa!SILrNzF4C)kG^i5Y}8WA^G#w;@IK2XOZ{6`hDF_(e%qnhal~*d;N>ng|c$9*&VB` zZz^4x)V8V^$~|tI{c-Gcu=0V$8}C`H>csnJS54+>nuwhcsX9YVbu}up-0Y3^Ic0NE z@rZ&A%Txc}!_dhTCmUJbN~+<13^(`D)r&+X>iB7)%NAkRHiS3en? z9=MQkvm%d6&u_rDtCQQ_4h1Dj1w3>*^WO-Xu?8y!u@V14M~ z-h@@f+UHL5vU-ZMSRIq67E_6x+2~s7P1z6?x<6n@NF_mWTAHU%VVX1S{Eh|2u!$WD zlwsRRMdQjPw>^DXD7idJo);nzK;!qvH@I=TGAI+2W^ zdYUBpy{E&)7cRs+xtsh+Qtf%U&VLo=gLVV``7=_YMIwXT4i%g?>J<{a&+yC7b7_`{p!kZ7BwUA#n_8PrSQse#yK~{a-TG!QWki z-#9k9I$hXvI%U4{)vmQ423Z)6=CQh+RytqfSgH83Xjtf*8H>8%t@%pH3!Z8juhJ|( zj*LA#DZOZ@zj>@%F2YNGP*C(0kFbV|deQE!^23Jd*FtRrEv-vhZ}dm(_*N<9N|fIe z)_Ulhq^J_pMzzIA%8!JFDt-oqim@xKQ!I(ACgp?N1$FaTk4w`rTxO-Z%B3Tt@YexBe>;K8ByMp|irMHgiqiy@ zI|WHkZjO`mzn-`>HT$-^ksw$6{t~ry$M!R}fzRb02z#pUdb@UL;K1_$AdH0Urc~gL z9jkcb97~=J?&~`IIO@^`m*l{&jK}OR%u!6XY(2J3Sozr0Iw5g``t_TR$h_YdeAfQZ zaf#xY?>p+RE)^G&st=uKil%m{rI_r!MXPZ)X;+Dcbq1$~XEn|AmItI4?IOD;`sNNs z%t+s2nikne_whZYOL-x6`OiHLkHtDS5GUyvb{c*ROm`-VxEp8u9CJ~g7>_T$5?ZKg z`)SEgbjpSb_h0wpG{K^0+=b$*JVC)ictmJH<8yex&t?Q@Y)|O`O);i(>Ej zSK|@i!$hh!^8)`D25hS=NX&Bjq?AvHRdw!KQ0(QEe^^NU$->inwJy$RxNa@w}H zp0hYoN?DN8M)oSON)Jh6>>ZltzpMTXhk2Y*AuKa+O{sxuK&GC4F%b|tV>#JtY zC`nM36b?RESmoTy=u&^g?BluFy?04v+UKftUQ+3pi;l`_FLIr4{t$TS4DA`?$x3&A zw|jYD3Br0_TPmG+RlBLmrQUaECMwVDmk^lB-s+KLBXF0xa}7i30m<2hGu8k-N4@))=1NjRL% zu9)G-5I@a0ulKaVJ;Fl-40Or??#!@fh>Pl_7p$+PEp)&1TsxR8q1h~8txNfPKemBK zPi@vlYNLm4GW90Bpi?%k@_xuJwEzAKI+hWiLK>l))|qdUl2=zvvhq6|p<{TwL2>IK z--|=XYkSg-@}BBn7-EYSw{+w4@uEpkHsUw3(~>;toAiuk_1C*0RS}1Mf|fFs+4QAS z%_}%3=MpP_%AHVdIpMPT_H9)y73wUS8;p-nY6x%7W(x{p%&KD7mwE>eIu@A)Ti+20 zy1UtA@sYwB$BP`Rj(mLaCb&GJ^*KSL_?^(cJ@+{u2CJ%W>ua=CPg6doA^f>Oo2$s! zUbwn2`8D-LQSqvenN=J0rRHI^8xAiv4w4r0ZPEg(=w#?txixd$tP^hNJ=DBy@Wcy( zNCm9N-t%hBnG*xn6Gb6HMs@>DZ;tqWaF{;q-JbfbvccFaC|p&9krex42g``U1$st~ zvYiIOcVp*OYtdthLWAtS_6+?8t`s^Eg7s&EZUxL`_f$WsyzbWho=rr0DsD1_>P4Sa z!Ipr8+#*U|@v6y8Wnq1(8wK^BwsERsyE}zR~ z7kO}b{s`s;v16SE89zi6l0OY4vFDGmd0dfkvi&IOd*r%U)KvZLRgNULZ!bLU?2McV zA+P+x>8_gRQu%+kPfm3->Q7?7J;t{6``7YrM)xSCoWNw8H#$0A6JgBeEypjc7e2X} zS&E5LP@{2UzRj7ekEw14&a-CAQFxD4yWUAlD|J()_|(Jk_;>&_!^zJAnhg0W12i#V z(VG@OwOKB1o`MpwDda2{G0mXY^Pxg?AkDMjz-xK*E$YfuHkrySVwEKIrpg39y6ZC( zc2~{IiD~neO<-+Dz`x*)Ru+$>a@JobgZWHDg#szI!~I-ucA-r?A_vQNI^EHzy5vGr zQSVs2^w3`T@BWfJO;wm`PdaQY6F;7KY45AsQX9$xTsF$U-y!4_uHY+vseucgF6lHA5{Io; z(Tl0v+Wf-{{-Bji;OVR9Z(Hb0#o5yMm07Pp{D8Jn%S^2;|J*GrOFsFbh_*z5BkpTH z)H6$yyqV8x-&(VM(CMK_y>Gdu^H#KMU?9{6fUB@DK`DBlS;wr3p9L%C4aH+81 z+UAT6%FVfh?oomoce>8ArH;)TwYTmm<(Lk3|8_}9BV5CqU>dS!VqV4P!da(lQT+QZ zuO8Kn6|WW23UuA`INxS8Q2_ovo+)4VYMCtAgrDK-nsPtC`RM*4;L|*ZaRl)||NO#O z+pS}|UZr$P9FHC2?5HS1N@ZTruMQfF+G%$sz1>QzE;BMI%6d#)O=C)wFV4W9c<8Rf zQAr}n@O6{BUu!p~yLG%=V`KLNd&fPFO2f1TTiTf;`8_XJ^Cq|Q48+CONqLIQ+FC1C z-rSb4`xWhy0H@d*{-!6jZ?pt-l0MFJJd0Fgu?eG!wEkvP+1~W__0$w+gzRMnjjYz_ z9mbU|Z8T01j8W~)@h!z!q<{K$|X2HC1Au*)inXjmcZLxBm)B-S4HlH8E=R>4^t{GeH!Q zFQ07|I=4zFLAM=TEb{~g1tj{E;6s>!#kQ{JQ zE>>4ac|y9%p!(36L*r*+Oxam4aLir1c6q|6zGVOP^FgLTX+}0i+;ZB)Ae|%96`gA; zIOy*iihEUfT-+8ceS6KuhU~pvo=UPZ!HnY3qw6(K)43?n2uAp2yPWFqGn{O6KM>>5 zInyX5YO%|I&Urtt#Ahc{cC_cv`gR(bg%3ABJf}CjGn5pUo?U9KyRX3@wvnrAn6 zoPV*u;BF&F67_`{PC)^Uz%4aDMaOzfEOu*1i*}x+)5&$r9Sy5%^gC89)Z5s&^K5;$ zaE)-!{_A_ybj(kOUD`P7AX-M5&iv{~=$~?~-v#HANt6s| z5nf~cY27=$hk>Oj4_o53bdp|>WOpofb0#_Ws6QF+$=K&(!_HM~Xgk0gtH72!Qm|QI zOnR$ZE?)q5Z1}d(5d)K^?){RahDMiJL1nRkIJUuWZn_S02coA|+owyEo3=TL{d}S} zJWSbN${Fm^x$su0R7xzoyI*N!iDZ8;UVTqm2;;KZH?*BqC*V(~7FqG^X44tz$^X!H zu5|kad*a&*-qm~6D8jeNi=DA_uoIcd;qsX>OTVXGeM0cyDgDGF>J3Sy71y_E7>7{I z#@>3iz)z{}SrRvR{rTatUrBd9Q}n1)@plWSKB^gBMf^Box9Ta|;<1K?qifAt2YYU^ zy-v#)j#Z}pXyxZ0w>Idmf#{r1$jgGwzrRRtWg2<7DE4W}boK8z0GzPFmQwZ5$(+~z zvF|SWnZ!HBPuuBlO#DQgDl=`sn-Dq~mUFPa<4a_$bGW6?vgcZ7DPc%lR+|1nk z3l^N4*8UOoZLip?u9UNK)Qsjy`zY>;C{)xxx}rYfpJFcgmhkWjGW0>U-(lM(EMJ$w z-tLaRmTx(>?HD1&u}vvWP=v#^WBydur=qyq(`AodJ>ytBZztk1!@0!gDbOvv+e!9R zYTfhO3{o!ARPP$Oeb&0#Sh24XcX-tmuSk`;uUz(ODXRnTn(fhFy~NMdrludE@X~m7 zRd$TRSz_m>sTT}Xd-Lzo%y3fidkU0f6bavr2_R0ln}kqaw4)XMHr{&hqvPY%#Wkn0 zj`+JtrPhMqMr4hBlAY3`(A zja6!0q*(n9dv?%tmO;zIaEzi_=hTShSBg5u@_O_4jOhz%ESj6wYB@xfny5aawwc=bbZaAbX{Vy;@oVYyAuQU>?$n}4+VFztFaJQ zeOGd*C#U0C64h9uMphB`N{A7$V8KqbpQ|KJQ6uGzq)hW^I5&56THtnGIt>ig^i^e{ zmOSkb1g>uJIhXP6tWNbiGOokYIjC4kEf@Q)j-@|sjcrN7;B|Z0*J$gsL{f_ijh z$_6n*T?{kXoFBKdj68bPT%ULa1t*4@eoI$%))GKXF=_KJJ|GL|>`EwwaOu&!rmF^P$W z_tCp9g-OjIEEmb{d~;G#411~`o~mCpWpm9YGrImB2IYrRE{C?>81|nuT`dt~^uDQKdp*Yg{A&w9eQx5FcMa?SX!dVR+cgBdjtR^dO89M-v-3JQFV)}zutaImq&8BlcTv^BHqVdEM%MNQdn6k&ZH>hx!T!1KZ-*fi2*aJqA z$LqmShWL?KSZDur3ZQV=tFi7Bx;BE3IpB4j!b?$F*Gq)wPc7bhk-{(yw&!tinZN(q z|5!XQvXjM!42&VJ{NCF0>zJpB@I&)UQu%kQat7{CPILZvtllrN(^rtzMS96?PcYiI z*~sjvE&8n@(Y3!VXg`d|E*`fTFnUhGR$7u#4VF53RrUcRz~5W^Y7Aids^LX0PeY%* z67=g03n(H>O+tQ)u>CqDitVZ3x6%6WwETv8*bj!keuw@eHiBLVGsH$2&jo(ik+<;G zXmv0^!r|Xa;Fq+($Myj!IZ^2?Wy2Xg02tPK^Eok7(o+YB4YB6VUo54prr;JHV_QKH zOX2iv@bHw!!pE7yg;upwCfPTX~D%XWa&HN?~k+aP!Gconf$vX z4@R_-gI=uTq7H{i(v^CG6AL=vOUVN|>^hjZL2_OYUNP7)RT_Lxz57WBr!*?dnT>`^qQ!2x6bC zP6s(kX%EYoNmCWEwyP=S^7#nHRxNFJD7Hy?lVg)`nBvbvmNJmUjwwFzkNdUSESFBF zmk|D~NcG{FR!B7axRN{=DRpCuY`L|nR0m5oQ$tR^7sp~JZ(H8Dw!i0QhKJp`?Tw%u zauF5T4me*^V0*YwvY7_U-F;Mf@4oBK6ICIDO|4tR2$mHRW09ea`5``COPS#xSt(8F zPAGfJcrn^!oh<_5lG%Aa0dSY0Vq?;*Ra)6Ctl-pV^?r?(Y&1OSq8Ptdny-Dg^@pY= z-W?@TclI1detb!(ET$~3!&0Wf5?g1QSxwoj8n5&wUMoDx>7-%!`ri6?yCEhZc~cWj z2dLLj=F~GSHdpw?j7OgG>Dc>0HZa^dchsjq^tQlZd&=q!@n?nD{lvJGXe;TpzJ=+m zR^*Oei||V4F509KB=B-OCBc+k&L?>N`H|u5eBtQPF%%;LS7ZI7)*`4;@4sI~!SeZa z#Ewl|VrLHagX8ZAEsSjJ_CvSEo<0KchwHdaM&x9+LaQX1 ze1aHna2$4&(`=w(o%jk>QR;N1NeD#(z1^;E&NYdSx$h`V#4UL#S+}lt08b_h_;SX? zr4bEm%m`SzID%+u#NW|&b=I?3;3=f+azF3tz0%5BWSAJFGeg`=IVPC+ zLgev$;?V~|Es%;cS5dQGo_*$1*F3;rQ$p9U2vT&xgOQpQ5n+m17Qsd^lj8}I86Ywx z`;tXr*iw;VP~^;rwY{uS{=%`pwtcWwzb+C>LvvH&e2Y3A#K;Ik%P~*G zFVH2OTC=U9e8PQhfzifSaeYl8b(FoNmHHp z-Hwi24^q5Eoj<1Y?&yBRoJDDJJ9Y8ewie1_!|xlqm3+me>9r)HvBa%2IW5^>9i?$d z!}Jy@)x$8JD#UFmChBN$;eC*O{!ywdhWC_g1_t6OBF_K}OV;NFzNO&Rop$!ht~he` z(7Zu4u?6!SgVy)3>HpYLdF z^rNiaodWaubY4FCIT9XwlS3zFP@M{0-1-U%y*iwsXoZ_u-iSY^}Jcu_ol zlOubkX`_K~Vw>(Ob90gnG3pWxErwC%K%;A0ebCfaCh%I(L zJ20nkuchwbm5qLeRUU86JEzKKxxYRz5(YkHGK-C>{S6EdvBR@g;40TMrG49cna3kj z7=*G6Klvpn>cq#q%$jmm(hw^z+UOSDqpH}s zz8ZBGf^k<-So!8)qrzfKaVyL#=8|Tk9)WpD(R}&=y&Gn?Ps9CjT~Dc;{r9yGlDG|31Nl z#y;4hVRnJzUhUa1Q@s@NXc}TDI?8-sqCm;-fyWUeBjvwipI)?fU|&4X#g%_z!n-8HbBfi!>^n3v8dZ(` z?^hi;efseG&(V5=ynZGp{go+Zav%E$d9U8fU2^|SKp1o6xW>4$;lhMFQyA6hw@Od~ z1-wW$e3*8G(o5s?n?y)k4YB%nx=-dq=He_X;M69?5olE?+30d}Df*8Uk3VPX>{4lI z?$~R#bMFV`ZW&t^yJ@L|_ck;4HamIQDapz=_xli|F62t?61Exh5`R^Xp1j!PA9aA% zWUUxI<0hGXZ^zraE<3YtH9Pd!Gte!u)&I89+{wMBbWhF^?_jY$5Hs?il#lPH8DpET z#%8}&1Kf|8hy6Sl*Xov9K>i{g9VajR@Rnw4eFAmnKp@3T&Ig~OHMUB!V%P>4tSsqL z82o}3Omsr1XJfsE-KMA>*6(?cVo?2p#C+#?Lyv8S|AD0Vs8L6SmSZCvRFzpGXcG?~ z;hVVNvVWCSUX%uhLCbdL-o^&0r)&2fw3*0E+Z`MoV{K2Rrt!h2qSskmf6!-Lpw33I zOW9_#oQ}In)EVFP8-;7%rnh?0t+eMTYi;1ufMbnRy2TF@&k-Sq>o8dHx}Y5&eX&Q% zh2^PSRZw-i(Os*C0iUF}ibmaCranof=1nFcRC_FxPV%&}H~LatoT49R?jL2yu&H@N z)&Krx@h$b8V?~Z7+(qtuK|L=w%sHgrsW8>KF;P_O-O1bjP4m$pONH$77jjOZJNlBS z-wkbh-+bL~Lg_(Z|C6zvQSnTxz>d%-`4uf^gG{T1Bpw_Q6Wh6twAu69P^A|~RwWXK zejBc}k9)R%Ex9Rd6uUvbJc6i}t706&G8>x|cgExOo(HoIjHm4!c=^V(w5})(Pbjre zT5Y4^@r(IZ5Zp0R_*1kYvG<&`=DV{&4!5jp-$M$$Ia9c^;;7Uf67Y~s!ppU&KanPI z`I5CMZ))@h__JZBvjp5_H$y%e^{+1)w0@zk`R>8K*&EI;_Frc~-Gt_T|2k+*n1rwt zJhC`>S8w)yNOaV%=ZVvjb2M`8=eB*{D;C_dKcyun?)00|&h+Ma(|VF&Ov%vzH#2FY zcSn+}9>_Y(gvgJ7=Xc%~#MBih7}PM!pVN1amrjrH@bq}i`6Db1#5>xSddlrqO5^LK z)4A(1g1B=9S!mLU*$I2L9oe0Jgeu%HU}x~oIzu*XD*|f_A%@?85Mq%xHF@7qI$?7| zMg{W==HZMW{#;m`s6O=MGtqLgG^NMOe7mn|yJnIrefzZ}FbRLxKJBMOqw4OEwP&q5 z+<6`3^%PM>~{E6PjsGzUPzj*6+tP60KZYbgDrrLTJKgoH4NKL5se`*!(s7n z$Y&8L{1|P_b0?0Pqutxa>(T-H*M^fHE$~JfKr9GE{zBvOA zv3EEJo9b*58ev!HG>|Ctsi}s|h|--Qh!h%#7pic}=rxE;CWfHb+Ghljs*;QxTF%m) zLHpSPKU$A|RHJ-4gE-7iKflHL_gx*B9v)7 zlq9YPul=;`=cS8rN)8!C|Jc!w_q|uHOwE>hESx#~%j!CFZ0_xg$%&_yzWn;t6E{Ad ze&t(5_|f0C>|&;u7whkTc|Rw1zHjs7w})>sBR=VG|NUlQdR0oYuE z?dDnwiv*VJScmnd4tgAP*JxR%Y|J;!Y%soUo?Rw44lLn*MQ;1<^dijeCWWaN$326C zUpES78c!BqIA{Y_^r^`JKXzowo_CrmGOX(MdmBEZm>cv3bFFLelEau_F3s14J+Q`$ z_vJ@*pVzI8_?21Ya3{E8f@tL6>y?jiP;$vjNfsVKPJrM3>S%UFCNI|SYV>Uoar~XH z%tdx_OW!M#SAt&yAJr$^BXqO8xYTCF_7;Q77xoU(00$?HTxG7eBJMF#uy4%MaL^^* z{(Wbv4&1q*k&XOQq}llgO2i(I?g93JbnOV^s%Jq9A3&3{p1W7m?E6cDM5v}KT#7|j zkeR$uH>!}>00$pJ@!?9}opTmW|KVf_L@T(EsmlO+&pZ4*jTylTUjskvGYM8$26@-L zd=ZB``2d0!&#V>_4Xa!cW(SIu^M%ZfO}gyRY8{#0uUG7>rfcAqZmymC!m~9NV4A-H zQ?@>@X#&~jTswNXTMXJH9x_*cTWw7@KWGNH@|*L&#VI#w}AH>Fq~*sF-JDDD;TbFKF+f-U`<8=pWpkn zn9pB2g3qIkKPYZVH+N|1d#i7q0UJkli1Z~}H5SoB*^kUy1d~FQxz8loP!f&9cy8Zv zz_*;z)_(=~`LrZw4WD&~S+9U(&RHi?JOYlX;;WU$TgqsH_*8LACuI*5S6!ffAMNm$ za`J<_j7;ubln!!EcYm>Ydr8X2Ye`R77Gg@fN^L|O1f^iZlLw_%LjUWIvrbac2>Nr^ zfn&iMO1QZ*iPO(2G)$0Pdf!SXP0z7uu>+c&wQrQ$k!Ze_A|{%=m;sEAvky2l-}s49 zx0EHa!8u*;*W7SiY_Zgf!Med-_YnRjXZcpXUG$utQ%IO$)eL)yeIU~c9JCz2*Xj3# zz0LKg*R|$nAx1YE{_t&?{^MH!nAYS2Uqu?asS4?1{=g@Hi%-|5Bk{jFqd!UB|7Ad# z-+%QjYmZi*E4O^E{xhe?Ra^J!Kjhyo)En_~rAbqg)m9BOaiGJWPvOvB_(_MD9L$Q` z$DVu(B30EbvnYEYVa?ZT+35e^SWd?um0f#uiy*Q6DT<0<{UZ@5I^AC*IR1LF-4*Dn z>cX7r9%H45Ms{rrj4E@9(Z;&Z?pJ1RR%JVoi|{bP*1rOKr|h(?fjcF7#_ogwMjdmn zqX^+fKl>J?(w>c?=0QaxJF_M8Cgl~7?bJdzYHMUe5mDaAM*ixA!|D8H!44UY-K4h4 zhrsShdsxX?#l+!s)! zLfWen$>2AUP7gI^sJlw25jmoJS3=t&R~Z;XaF|{1>XTUbaP{yD!Lh)b{MN7-4!^&3P^+&LvPZwGUUw>v z+NswM+?`>p1@a~WiH;wK3SFyV+wk`QeSzdurF&Ke!4;Ghvds7QjNfgtj%YiurN8+@ zp7%wFgt+|Ax11tfSY^|>?NH48VNW)_50ujW+$5-lzO|qysST^h|Zr;|4Hj|2C-v!%pl5zb@=@0H^W0@ z&OrVFHqslFlWTi?+S@~b_!mB*Yaua(Stnw zyuflRsDV3l*2UQs9>KRodu!R9BMGPBMZ zV&b48rU^8{Q_<1a>1O}@3VoJvztb=(92hFK_p*MKYp|WGtQ;()j6~Oq;`nw;@)pze zqFi1NxiOvSSGQ)HQ!11=i3UZZQ zRuiD&MUdS@1LMKdU?y+z=4C(3!m^kjB1XqD>Qy5UX~9pQ!JcR}mfRwd34k22T}c%3 zgE4<}-6izuXVlB`&v|fZ#W6>Y`l25~Pj-5k`uF#M2pdKFwGq1s+k*2mbxjb9_)a__<0FJ@75j_41w;|2us?sWIN;TQ@D=Z^c6ebOYDFl=#B z^Pmm0!Tx%~Sk7AZuB` zItT-Z8H97zro2AzrBBzSVz5F2zN0gQ@e&$3>sZ46`r6|7or0&BR@L?Dce4mA<6~j$ zE*KDj30|mVxQZQW2eN+_IBSaIy(eRnwgeSu4()tOMgY7R^Juj3Q*h8fh-g&dKiXml zw*!ctr;w`iMbgC)b0AKU1zfNckGX-ySq?p3dD1;w&Inj(^~mMRYo&-oHHVC6w92^$W5EVrphvB}ZPkdJ4OdAb zEB##wK$f(h3K`XuTwWRw$N*TzHwv^1sVIBFdKk5UBErNOnSKA@9tq&5qI}!))(DTV z1H%fU;KV{0QAJ`s%2j{p;Ifr9Y-A5Bc}v&nm<`UM9h1px#Y%s8fU^dxO`Pz9-9(iO zYg5T*WL8kW964n5`K^y{?>TXK6^WsK3S|{L#qu9mU zQ9fypu_Kl~aBh}LL3x0UC2-w#_#rwD7Tiq`NGXV%K#92bf`tNe`Uq1cWFW*sF@dE? z1ZF&YpKM|bkU~WXmW%PTM;HrZg|hT9WOEmbo^MfhtwbR$h%ErV%A^*7mJtkp`_KyW5l1}BHq%UY=kt?%?BI0tyqtD%2{pU5iCsiJaB@eHtkAxNs2 zV~-f3>#TS*MEufg9wQL*d#Wc(-djxHov#AEEv4B-s^|-hjzDj*OtH8oWI?Z2%a(&a zmSYYNOV9NB*N^Aed3WiboKRwax;vlhj)=i7{Tg_Mp#CQY;aue{Q7${8q#i9;@I{4F zZ;wcbFy-~g>MDw-C&llG5wfCpmX(b%8TNH1SOv>`%^6I%M7ei{J&a^tz!eqlQcKvz zuWwo4J}ByCGJL(vM8Y_0v=wlbdmCMdtyfxY@+ok@Q$n2J!!VhDRW!+X4N z$T{b;rYfIYZ=hCK`sZGA+d=1BF=6oZ2kGIUPO30XdaK~DdQzT~>?`$Jwp^OYSm!Ex zN>$i^n&@b2^)ROtDV@pRXWnIf;#<7nxWVxSL z6y>9}I~CbE5b|uyDRQR#9Jq$(J+`56>S6rdx6>CVqpPZyw9`v;)Q}@=8;^U8%niues;*SA*8X`QayukbuoT;V= z0Ja3%Q~8$g0s66GB>Dl*_n^)sFu*yJCJCL-Y!f0rZzEuR73V59?&Y_J!PAtcI$&(B zTDHEx2$LrKNbmuAy4P4C4F0k5WALEDJ$6}#8d%V(_INP-SBH>KX23aov1U5-spV0XZX|Dh8b>SGjiB z1YtM@LW9a(19suV19W=j3dn!23@O*(_`3zx6iq8m3mozQ`AePaG*OP!Z!T=<2c*cmo zk3S-Tp`AZmZ4Ga&=jqe`b42v}_+x+!D*=)n7FuwY-C1}rG_dDJm;eBs|HL$`k*H@D zBSNONPC5&Wz0$z^=zJIzAt!oPfwlN(iHOp2MT|8sE-!%?0R`Yo_kD4HU(?=NS#NNZkUCbct`;e8JH8LsR21= zz>!wzKq(CmNpLwM@E8N7f#F2&v3v8KAVa$Le#Q2?DI|FEMjY-%y~x>)DQ^c=buylQ z;y!Gr`QNx>U_-Uct{iYE+Fm2D5)c<#Zk6yZ{d0&I@d!l@MLv9CUm*paG7TA`IZz?n9el$?xXft_V=Z~A&W48WtBc-NQx-U z3MtNP2YX#2=g1aS)9)y)!U$MWe}_h?dB?q0JPP0I`@NN z#xc>v_q?KNW(skLC}fON;qZ+_)BXu1{xr}TNO^R^A6K+i84;viOFC4L$fHkED<$UO zi-Q!papi`;t#ny^;_IJr?xCb3!ry+M(*@O3hG2wsEE3n(4>3NTv46J zhl@zGd=gMsErlf?nG)vMqd=a#BHUWz98kuxwibT!RIRk4G(a^?|KuDyc5JpA_Ah)t zvw?Crkwt{RYA)_vXIpwaZM%>~aA*c5ufEfPR>I^D`a!H0WX3;g&J>d?S4_!?1lR%y8GVj0*+x~__&$2^`ot6cqQV=*zRf!! z&_naG>g=aL{uI?QU4iUCQK|!UvCR5-qSfR2isYL+-yzjZ=SWY`WIz}Y!@!(Wh}*%_ z=|jZg!Xixmr0Ea#pT|R_DcQ8Yx8l)-9Jfp7ohbLBl@X)48hz;X3-cuOB4~(lIrJV{ zdFE-;eE1a05*TSfj>NJD!r}}vg-h`+Jf}d)6N5OB2)_@Mf%KVBD57!*%zX*XBF9hr zNacgN@fAeO0nFd}Trjr^tUriM*+kD3k4ZH6&9dQA@*unwx{*czeUpsq4-d*?I`GVj zgJKj$Z-5jY!uV(S&u}9On?OXr@#$_nnKI%^1Gg0>cpi)Y4cOzeV8Oo}gC!LpZ4CL- zQizOt1k&_nRcf#VUV_WYjvH&%Efp$OaxS_-AYF8z~zcu07H&Ouy? z%ODIJDec(d5bq-XeIods_{A%jzC5N7usDAgvW=jAnm$Iom}x;aVI;^8P$B2pQkwD@ z{8Mddl!j^r4+PZPgW@ZJ4AojfRr^Qb_NL3c&l#Q*0ym*V`TN>&O!6%Qa-04_|CKG_ zKM%-F#?Gb2>T`jQPGqIrkM``CMK1ySBHy7?<)~%WO(0@TFdg2{1$*Igr~?z!3|mB+ z;F<-|c&F_Pw7^C*S{&vR{6zM3_U~j1N!tnb+9T!@)zWX|3V5vOf1*5!6 z=PB=|kPC{7t0j%i5|?3$04XHir(#1hjc5$yFP2SB6}n3Tc0c3(Q^qXN*$+CKt`KJ^ zo$iX7ffA!&e^$*fXSi2^LdOB($fW=TOweZ~AV&^lIxD>ffk5Geq$oNUSvlYoQiEj? zlh5SB2lPJfTX?%Jo;CDpJ9dlTV?T#H;<2EDbTmUdM-AHQ6G4*QGmsKk@PLSfS_9&~ z9oIY9hi|ZyjSL6YhP`41iw72FU6|uRLtrTyk3TrYauM?!6>VsbsE9#W0}26w9)%na zwVjLlSBM;NZY~Y+FB5IUp1pNnX5t_`jszlEnqX%8qXYk}^qBm7)C#2pLI!&pKJtYW zgv2ghcOVpoA$7rk$MF-vdt>M3P@YE0b2lF^e2(jD5TtUd>>Lxr>Sp z55)5xGyra2Cbi>gV&Nr71^%Nr#Z)mObLX7!dRg8%dtaiLZX?bUh?t;WyN$)#tLB+e zHm-Oh-^IHuVgK|hhSn3HjjRO5(+iM~u^95sIg{uaId~0f7!`mA7X3@cJ248w!qzaE ztVuAXP9urrF{vG#xXg$UwtayVS!t%jTo0f&z~tB^OmSl787Gr~&{LetmL(9Qx0dG# z&zPZ7yJZNY$_i8U%Si;W*cs<$_SE8|9q}Ssf5AOlgk0&exWAd*$I%Y)2Uu6>S5rs&>>tfuCzShV>xIZD>qRWN_gy} zUeH{%UK6Dw$SRjn^@$zxdr%*4ne_cynROUN`4oB3+g|*eV5g;?;@;+2Aq^pdprkgQ z1%-9SxljN9|ESCR#L4zmGt@R@)r&_HbYGejmQZC2DwFIcsi)&8XfehdRRFN!r7$L= zu&lV8S}#@o%>mQzqnY-$0dM&ffzMH`2|@T4m4me=0lP^nbrkj~rg3l`1y3I;07>zA zz}Tb~m6X2ss(eAsC?*!Lw2hA}Z_~fse&@*#A?{p4zQ(EaN z`vRY;Wjcqxw)M3KaYwXwf|q+~(svu*tR0_A4^635Qq6Qkx({>|{<N2@wNO8TZye z*=#`{?tKcxLlz2jqzTA1+@qn-?iPg^P{m|zuf@ro`ik-6mAXO=Rq)S&#jyq%^s@#R zy4!@h$tJ;~z;~IXkd=@m+N<>wB}A=FZ#UdJpOS{q9Pkdszl1nsm78ZxMh1*)POiBh5)H||~i z5407sE3yx!BK7}`kKZCb7ElK~bW6z*ziLaDvOK`s05jOmp@D#UDa(BTAi;sgg0WA8 z%kzDiIBQ~p2;)4m;ib1N72v%iD5tOv2^kK!vG!3T-!MpY>Y_R#lrK18dSR7yVcPjgIthB5`>EL@eM;AipeJ4*KG9@UO-h@1^?C z@c#Qw!z|~}P#`~W1XhEP&w}eD;2}I+ekYEjn0$NN0u!uKtDELvMI&e*&T6hgvH|JC zhjvY4NSIhdg^$$rg=3cU^pzc>!wY6t;w39p54s07r7t4L5-+C<+~8MqF-^)zmD@n zy=S~3SBuq;Ge7QRfT9HD&X7muEPV4)lhpn3C!thXnPbt~e;UC5f;Z?-P*tL;0~h%q zYABA)T!h$ow2+5X#LDPGaan%07lbZKOKrpx=$Hnv$nPK!2s3zRzD z!Az-}raz3jRx`-2D_duCL`XbXT>tG!K;pruaM9yCrFAUebiEATkw!XQ#Mmd<;~8?Q zHzQ8}IhH3`FJ`tQ_&@so;vC0rN{c53O0U8eH46Nhi zVteXO=Y5yN9ekH^B6y#;jYqK&d~Av)x#X`fY{JW zajgfn%U=#$D*53f)dEKwy`XlbaRJ3%9J?N8 z5;9w#*M;GYC1M$iVP8@GHho#{8nzr|mA09nFq2_Yd%AEfAyVWGWb9Xvf9pXy`CDX8 zYWjmR!PQl#ITBHmB7Et2FjwQR1-Sqdhho?S`W&`Jp4Z{B&XX^PDqaA3Vj1WN_~@@2 z^+PesgQH_CsWdg+vK8#o)tJNWi0h|m18EbEW5C&C+b&r| z_TLG@3d!=HkB91el)oV)kSV}Az)Yykk2FSs1=)0{gAxrDB5DblAiCm}r>-5g_|pPE zd z4I7^R^&y(K8Tk$u#*^PUmiJ+feN!sR63f#Xnqz+_^0u%F3<>eL{0U_@MOGSgRH(vC zri_~mVPrXu#1jUPOUQh9FNhqIpFswq=HK!(!>a=(g2>Y3=_cM|z)_8Sd@(94n0x>$lLa9qY?A@H|dy+Xy~F}plcBr74zRgY=#5()3=WAM^JcO=TseumR8 z55Do-j=fzLN_dzLVY-BT@Q~|eD8%+u_%g_^;b3? ziEP3OQ&?Vux{c2M=iP9VCamODLWvD}3@hlZ%@5-s0IC}|w1PkPnx92ImFtXL_6F%OyRPERX%N@lt102fuz)B-zS_Yq89yJT=)*_`9u0cJq~mq1uuVHc0%ulJk?H|#mB=5mm;?>6{6QRK=$W~C+BU< z1(-&6g1IUJF1Q9OW@LP%aDYH%iWffQV$(UmjT`!Gm8CQw2A$5IKH==TKgSC+MHMs# zthssv?YSI?V41{6YzCMfDP;1WDHQEK6npZ)=cbj#3%(nC&Oq*rVUy`Cs5y+!j|sQ7 ze1;}FN?K!N>qx?o$_6!i!_w2R8WnOJGCyAHVV8#h6KHMwQ)EGo-&HBZnv>WzflDX{ zQt-CFUZmcKDb|Tj5MJ}RUar06#tmH23#uQ#zSWKFj8qdMxJ$UoLXIMj;2||*-KZz1 z^|s74+prsE*l5N938pzZP}37gJEK~(8w3f~;6&2-&!k8%l6(i{2of2#kSrm$JZBLg z#T#RNPjc%KlR|>yKJ>$U8cVVz$R$RN%TG%Sp17mK`h{A z|IbPY^E98_UnPVEKO!rn20mlb0&Ao^2aSPk9Nh|7PBZ9!+Dy>$JF(BvB|S)t$l?~( z*cG&RxSoOq5biQujx z)+;Z(y&HsmQ|gcL-;5-<$D3@uLNSo4(F4mO-O8P}x|to>9fr0Y!XD}!Rw|*+>{1FJ6ikai+nS7UlLf2Ix7>&;3>{&EzB2hn0A93U zA%@K}VRY<{#y+@X=Q^$@+X6$Nu^`IO*e#qM@E;1we>4NJ=TQ}oOVNLHQ zQ`+b=a-AK2Oh}w5f=o;hc>f&z;lc4IK39x(kW~!HEn{T2<;dfm==f(7djYkKurSA% zbb0Z4)TDu3Q(fl6f-`kJ!R9~p*Fw*NDd!-5<$>p#}1{nt+YA2Px(dM=kL zfBf=q-4Q(I9xZsRP`MbA|FgGg#FQwPj9+lYI@ib?c!f5MP2*5n ze2{FGcwzhiy}9-d}+PQ?nm; zU1+hZ$w0(9sN`r?AaCyXo-9C;Kxd@3Ib(P@8kdZIkw+PeY$_Y@d z?SPy&uK@#d81qExTs7%GuLYO+GEZdj!Yk_7%&vURXv;sDLg}>vPnZfg9fes#wPWy&J2K$(ehivlbf_wpuS&Z8&D*|Rc((XTVQq&bAL!z8g(v0EM#GdfX8!5$ zU#OE>gfu4(1o9ncv>SYWfl+5J*3(Dc#mY$3k^uL^mA}%@&>>&z+XFKAQ!>VfO>QkCc?|Z8?^P>#q)gE$D1pm)NQI~)PENM`JXWj_G#LHPo(bO5a|CIIAH z0AqnzD7#Jvvn3E6RvzIHtmd&N#JVRU@c?$=RHVj5U}OdCL0U_Ta!Q*B0PWZm!ue5M zsE_s|ATBfkcb5ey-Ek_a2$^(&#|(P|nZE})v=79Mdf#S(S~Mj2f%Rj44}~bT1@sdT zT+(=vQvlm)p5k~OOlbgR9+ZyQdzfsHP$3-RxvK%Zp8*jWq{5s%4 zNJyT6I051|9OpRB3s3-LoR(CXIOOCxkQczEK|Qz*tlY4+hm;+l|7v0))ff0tY@#nB z8kQ;nc@fDNIrt1l$r7gaFvo_I`5PxYo^9F3b|>fxFl@1F51hd!Ndq7SDTAgjs>$h1 zJO=v&o?gGx{14NXRAFH41 zEv7|C&|{-35x>3Rz~f^eS>({@%-F61m@rm6_BkKQ@17AA+@LVHlB3*bIQ8VTSp#0@9kHw}#=lz^yxg0s?Mu z$)G7cKu)vWnB8qoG6dt^yg!lo$bTh3CJsywf6DllIF(JB5rWXdxX-~@KxGNRmGNwv z1_HSAJmn_BQaT8#kR6*}5-)>T7X5tRQZ<BxF&MYrO^FUBY&u(L$r)cS~Js#)|aMlFh96^6?49 z26ekOL=+gj+tq+3*}H|citL=UCy4KA@7_^u+R>on>YeCoLSL(mG>RgdUEz%?z7tL- zbabODKN;$@OC2k?))9JQBt1D+sHz+7yiqPRs`$@uf8E%(S?)uwMq1IxL&Y-#X}xMk z3N|K8skBOrtu?fIa*tFv7VL~$$ISe+f%et^vroox@1BXbaYa>bSHw){Uw8-3hZSU& zaW$6@P4mRPb!d|~1bWl0k`_}X5nBz;-5eT!Jt81CEwAk*t|*iokk|wS+gLsE#C--b z;%z5$iuSaBw}_93QjCF8t+trZV;roWRJkz%2cTi5XD#B}PZZn=%ZOowYdDSBq;>9% zD|RtgoTzOW(RSQ7+hn~-`&mblmxw;5{BlyzKd^0*W9Of>TS;;*kptGu)~?c;^I?-{ zY-plyRPj*9#W_c;lN8tF_EN6wvcrvdUAYh4D*dsZxLaQFu{;^$Wm)>a5BN-vph;V3 zL-*GZpukNLlMm|@0`+W|)VM5t*#Xm}It%^1)=#QBOr7KlZ!6Gi6!b_#;U<~`TD8uf zO`W79CcQ=)ig#z0NZqtdGpiGgDvrzIp6+h|fAq};fQg{E+iYk~1gl`(!f@jv#Hi>M^sodh78Cy0z74-3^&?+(RK5;OTxY z<}Q7;eItVs{CB6TqX7Cb86qN(C57Dn5~H=Jo>=oy%KBLBlsf)j-V`+eBT;a4vv++*`R4h zuEucIJ3fVGYwhrrh7RBZC`M1`7>ST$H*V(GIfY(DwbiY~BqS>USF3-A_Z;0L6ly{r zBIyNo*)ge!%4m`t{p7zYx*H-AZ-B3Sx67$XGXqAg1V)w3ygl|8{8YFxuIL_O)EgY5 zDsBh!&+3uD;rn2g>UhP|m=kzx*>NTvLuP(`OPTIhEhjUla=_7eM-FywylRRytxB0q zp2m>}^09Msjc>7(xjs6LIoX%Y`f9}bGF84wRo{59oLM8uvP>=cDOg$2?WQFIE6Hc6r9U|0vi3#vT<7viqmJn+)UllVq z+2_n`oT4%Nu4Butu+o1-YqOX&t*n`7I{62qUzO5I$)3AO{yrx;ZOvl5N-p>NhMAjf zTtj0`W5~zwjWlLCmdt#c{{q9JaQ*U8&_ZJ0TJD2Wm%#(q*P>Q&dEq^62>4*4sz-3J z%F)1p&39LDZM%(vjsH)-vg|GKO=@dPWxh(DqPzJNJ4QNPQEWPOtjp6VukWu7K96#T z-e2_*8yz3c^(?ZK?>Sje`>OG#7CzueEHk8y@#EjeGlY)SQsuFvx>CbdMl+gemznaSHB_OOIJ zP`M7HTth@haJT9aHN^Q{yj`Owb5bt1no4#CtuYW*dQt50kFnx~1Fx-(S4Nkm_AuQ~ ziyZG1wsjMnmRi62U%M~i3Vzv2uEvMj6fSQ5Zok*{wAuYYD*v_@`-azP{;;|IV_l$* z=L=F~Os_+LL*+ITTc=ZfUKd7B3ioPBj^*-f7XFi)a73X0eRx1!FM<1cS5Cznh6|%! z7#shwlCu7)=4ZE0BmF7?f-V)RqsF|`r{&X#_FE6P#b!OS6779Tb_v#$$?t4p_&IhC zswfkDm}8M{jl6d=Xd%Zn$2Q^5W|!Noh)z51E*zT1t@(BOmA&L|J-gl2-y0INYlAka zt8N_Z?)XgGa=rf|!SSWmj!gc!$>?5d;F~NK56Z@zXN53|548#$OQFMSb+fM8EPR%3IlD%1O1U0KlnK24pe^3~Qj2eiOmN=szil}g zG&A)mD04!_J$9YS?hW+0ZK(6b z*WJxs_?bq7b^$4g_YdLkvay$Zo?UyuU#W4a)K`y~{Nn8S?hIl=)X@w?`A>N=i@$35Jr~m_goa4HcqF zA2iB5c+h#(r26Ni64#d&qctKye%a+}g6j)z*+1s#;l5%ScQl}-Ai}=yR597;Q>oOa z+&lVl?%fitWSvLJ{@Q`%`KQhwaXIj8)M#q>0P(YA=&dK2ANps7HqDej$IS6|5<7)N zO_ILfK9*`Ut48(|9QJL{I%pl9^uA&%{T(SlRaD}a3cxc%ghwaqHh<+*| zvK0QKLE^{D7#`FHdlTVBC{66L}?vx)q z-(iy17(SXc21f9|M-^jxrpO*}MjQP6#va>1T!@F4M~DZPHrLBJ)CP&Z1%1*a-q0e=>Dy1RU>Zf zCmHBhYx}ld#~@oPD~lxdUt#ZbH3rXwsO!=T?yhLhc)DV>^gRbDF~b92&8s?AnWQ*d zd2}45I*~Qx{i2U2n^QbZg~wM7|W@&A}`| zh5QTFTB}^i_v~dX`OkA}Cl8)5c~GI4>z{R`ol5E5!Lx>@(5<>{)Bb%up_7w&;k(4P zDQR-QJfL*;l0gl3?S;~F6OnD&xiUJH4_C$XCEBOxH`vM&&QbP6yz~?8(%o^%#+-{= z8MPR`&t&&SlYx=<@uE;di@}QX?tlRv%%`9btV4J(j_3x%`EmhI9o1we!PhN7{D&j8 z_{s;_4wirmAgZds-^&~Ro#l`w3a+dOz9zQV3cPFQLnbr3EeTKXKZM8o!)yOij!@18 zg;H?wi$H@lKgrSHN8~J(u)GshEhqly+=fE&rJ#UOmcGPSBaMl^9t7~vvJenhe2Bl& zUnfw*yb?6j2dc;{6@XIOv2b~!FAf(%RAp;~9H{?~`nY1Jmh9r!ujT`DFpAB9?;{4Q_(b3(DSwQ13k*7NDb^5)A|g+&2XC5Q_Dn>Av&(B06z>lL07yXq0H^?HP#sYRdsj1iR|8cqM>7{a z22VR%q5^PGsy_hGfARmP{BJx1RjT9igG|WXq_;?kwPj9|AjFF)V3Q~`&Axre3aFKl zc3vgLpFR{olF&cJ1?gh-{0^Bf(>MN09BV&FwXR{=$KGi~HM~vq)XG}VT&~s4hIZlE zwvF}c6=(8A{I;%lPUm?g zM)`qEiq<=2LQgm!2pW?Kif8|F_Av})8fy6 zu7vw%TLWh^TNg%#|J47-uKyc*^nV(9Rg#>-AQOD}wbVz%*z?j>0&il5jm}G zhQW&&OhhLvsnQvX(eX}g1@+bUe0HtkGU9Itkw9A*%Cj#;;5-ua$D6I z=Q{I{co~@5_T7tR^`d_I(#vO$DU-1Mcww2993}tr7@*z6b~~BlHN*)sSUGkx9vn?r zw*4=I{dbdORH>F?{A-~F0|0OU&>)_+jQ_(Y9uCen#tsfP|H*Fuk7q#srMQ2w|9h9J zq*<9EA^4H&;A_QW`%-jW@s_Pgl1sG}D6G;m!u8A)Y4xiOTsZq`y2trRp&!TZ{xCc4 z&u1N{_@L~ktf?cBQGGgeI0k0tk1wwGe@KiE;1=>Dej*52ryCg9<>j-|<(1icM~Mxq zlvp2sDcLlzbBQuP?V2eYJBAm-rvhW`__ytr{yQ-t{fqdgs{dI}MXEav>rBZ0c}?HMjhP zLVo*Fj@}B1F!ip>#T3PpVR@8LA{qRho)pMW&Bj6W2GUDo4|oS=V#nXet|c&B(YuMO zVkahzJNjGH54^H>Ov$@3uwkVvb)DsIbxvoSUkuxp>Vl+gv?tMSv}~`n#5UUfS#LEdg`~OWFsccjd>#ROu>XhTNDKgnESi`z>^A)?*^AL4aZ|N|4mN(e%uPL zt}A@(7DnW=OuA@Hn{r9V(7rMO;pQq$@7c~wBZ7q#ABn*?+2;VsQd1aUnbVqNWV3$$ z=w0ZE^x~jo-dI=&3`SQyszc@xgunUmSdj`Jr=JfT?NeqFbhjZ10Edk82{{}~N7Q+q z?rJJ3}mvZk=cRlx@0swjo006ZAA$J!`BWE*H6<22~dkdHU?4gHx8}_);Nqz=~ z-^4~n7KiwHp2<{ecC&9K*oAhjI?l7j%m5`aS>@Pq8h16NhBvDKlbt7>CzU7Jr|e%- z9cJ?zSTWRn2tSeN8Z=YUGqKZADM@-?KTD4WHix_tP0x~{K0~&_P)i$abBi<-2tIE1 zY`+hKs3)j$B%|qK^Z44LqoH~O-fF+^4=~^UTC(}x zJYs4eBQ0m zJtQNo(PX+Yemb_^5%BV1Jt4kHLUk_ymoRThM!Fr6?tqDr$1W;lf}i@kabKA48$3(dIUx^PDc8Vl#KkjIdJ1q$!Gvbs(T<0UVzO-#e`tLdeT}fJ9CIzNY(~c6FL;AwkoqCd6@yE-3BBBbT*$pf5<2y(f z?5_2!*PPq&x)Zqpws9iLYYh8LRar5LCLCh-AvqG*QL#$3T=9fA;LKmqW@wV{xQ9pM zu>-=KkX>2t*RuLPWNRsU6FpL^%D=PrqD>=FPCheG(?vr!P^#|#aO@jkxznk(@#=| zDGS-t0iax+rJw~Xzm|!Iknj}79P;}`Dr41wQozINWz6V-ib8;f_c|_4&GmEF#hx%i zd^h>l-SVGcL2N&$iRX_csHvgNu20|x*kkj#YT5bJZh#{EYDA^Dt43QG=yh25S^K@u z;fg(f`D;K7t}x2L5=sDM1w(k+2XLdW^I0AY*O3qJ_1cjc1>NjPu8EoIwTb2^F8kps?JW^QX(PoC0@M3sNa{lqxZR8t8B)C z8<5}fw;4G?e6MWW=;s3SH3tv>;|Jh!KGkBQ9z9O}qksQ1zRS@(l~St@ogeu6cWkC@ z=XnR?{#WtI*Xy9WyrSTvD>A>UlwY< zS+sX=j3a&1W>z3R5`Y_Z@* z#WX<~WmHMDw=K*e8d``NI@zlv9Wk}bn)^3SE<>JuR1?h^F+jN-yW_AQyBYAj;r-sv z6RfN9TyGbugi%X?qZ~06aCS|MVVVv(N<7^CpgW$dtlM0;M-A+pK)PX@LHB8qRms^_ z@7i=G9?q`z#?qUqJ@Gw6kEZPa1sMrEgvGwR-NL{TzVyI#L*b@PKFAZ-DRO&#iWm_q zC6B$NdqSj6&em2f<6jM#)}tC=ex27WZQtqAPO(HA`Y%J9AjqBPzA~c?@6gZ5Hx0N1 z5B#Jf-17h&70`!j5z}Le*g$@Cb51?RQe@mh*wC4e%l!UOQuj58pN)`##KbM#ACYHX z4m}}y-iO@OzOLxS7g$)Y(uz!a2KxJ%9ZaySDF}PKf}@gPf^*G2WPqV&{U?O3w+9PD zFbDBG^i`puEVPZAy`qD{LR5!~Ql(dprgPfJTvFGe5}KHbLokzVvzzmJ^g}gXBzEZC zUlGO-Vx9rUY*rm383ho&%+_0zWKgFQUI{x9=-pdS55o-Gd7_z;+#=Lk`ge@m&;}p8 zy2iqomo5E#qh7&V{Ws2Oq3&!HcV#E#dosJ*oDaDmF=IU$=J%bSI=id{VvQD}wrYN{ zSJeGZ>LepS97BPGLgnBz%y{aCp52M1c&P9GOWKo-)WHX6+h-+y`=rpms8Wgv(c%7_ z!Bm4TaTbJ}+f$N_59W`7II!AJ^BsRE`stX)PFVfK(VdeniDr|Wok4IPK!Me8`Z%qz z@P@usQ3|+*d@lw)iIvBz&y?iGjq%~)zkblEc#gm=4JQ6McZ8kTz{;wwzpy-T1sTLJ z?AJ5CVwSiKiaJ1ne~`HKwhp>wNx5(qdCyb~)xEXIi{^}zEKGb3b-(0PsN=4|yoou_ z7#|QE`miNK%P9L=#U;MptQ%6Sj%}{vQVFxp5pro4ngPeb++}JJFrLO%{81{r=o;EB z-j#BFt%i#2Nb(EUg-mMQ@uJ)7^Qw}w_WNbagVE@{YRO)*%N2CbhGimT3m>PAn9c6I zm#nW|{LX=7Xo!_a8=)=t8m#JKS!ZqOg->HGyc9>jV^uW={G29^OLCq#m5Y-Gm{yt8 zp`HfHc1l0!%&xg5z3(a{d%9c6g*^ifvWh$48rD~@Dc-zdtT#1VRk7TRn_g?7I#8HM zor@fTsgofzRxRX@QEga@ImT?~n`H6vN|pmut^-g>j0r8E{Y_nHzyXRzMzu=Tkx~iX zLJ!e6<#OYuN5jLN`9Pqgjj@l>WGW+|t>I83>XT&%t?b;Rxzx`%?01eo_u3vWRvDvX zn5zw4c(pJ_rUB#W!}s`qR;7Un|9Jq3p4w}yh_>)AV1PSpd8x$t?Qps=G1mJD)~tNv z#6I-E^2c1nVcNE$2!lxE)LR65YR%A5mAtOQzoV>rc0X@flVO2Ri!mP;_kce{Wu^)8 zzSo~8LMKecj`;O>m{coMvcaEBtH`0Jzc9EpE<(&ICy`_hAN=~WApsZC&{!b} zqo0!Kv3pQ5r=YI!xf|lHoPmMy!m4@qVtIXq`N9OrTT|Q3T7I z!;gdiN_KqyiislgHi2{%r$Uf_(%lyebwFlY!BF&;ZoLhUDTZj*oE*MDXAf2W5+YZp@Aj&PCutQkt0JNPiHKi1>*#P4zHu4e{6UWiH+xfX# zc(J;UAC*uSU&v6SL9QlQcFMP+=GCGu53;eCYl z(ho};bHZ_au?YNck-AIYxD~dQ(|&>|cut5Q$|pk10R|I1Uix%WeX9*uZmOeLTMpBL zZjFjl=QCM>=|1#DCL&q?s~T$vG$lOTtqEYX#s!02D>NT7Z;Fj0J*@BtpU-`@HZrfG zNboe~bq}^{@AOFPP>7NuSuoG?b;s-IJ=P22u@OOtL#W_{JO_6g5sp86N|nwbgb+p6 zi6tcdGSWF;^h1f{Tqx^Y?(TO23W}hoHJFT15pt>V4W-I>D6%@Dd*d|1oXv-L>qig` zMOrgfKya&V^7ut?evcfA;OccUJ;ZRa6rfF2svQ%>Oxnr?dRyDjh4@wS7w10gC`$fz+4M&wqC#-AP5A7I6EB)nb{Uw z@a!MzMRvG6$KZ&Vbc*yU)6>Kfn4aSG4RUeNbL2G3!mNKsiRty+1#sgcn_1ipnW$*O z7hW%;%VZl1v-UJxCi}*YH>aRpx@FMU4TPqX>}WQ*VVbheHL08D?xm75-{D_BYLI@s5*83re<OgAuEg+n@w>Yk zNL&IGV7$DWj`NC_^l`+)muCU)sGY9h$dv#)RrY%*P7T_t1RIy_s>&kYdeYfukOcWR z*^vUNDABoGHgH@pS8ws;~+DGW}C&19(5)Ao}0P?p0dwF{7A zp@z_?F$n@QKNl8MlnOU*+^g=&nKqS;bMD@Ppj-{4nMF-Yx_1XM*OGV?8tgNEyrst$ zwP5MohKX6JAVs>|KMikS`b^oX5QPWGmDsGx-rf!oR+RtVLb*K$TEwK-WJ{*1`}yC9cZ^vJ)d{6r?g#k|fFM6=_rS{wQ9^F!H4 zVw@7EXRu6t*;LpQXq(HD$s^AC0}GFWypwe4nfW_+O@k1=QJ#}7J|CwXr;3+lIBI{S z{y7=i(YrNRhMcWZDsihTBR|1bTw&zZpLMHS+q75{gVyuKGhv@`m;+heFH~L6?2qYL z{Cew7h*jL4Zh!qQe77WVh>-9>%>=?IO6*vth%|<)X#Ypp0n_aA!+gFF2!Jgo5ICt} zndyfSlD1F{g8o3zKBu}L5s)Jwt3v>2@(C+Zq~Br$8|1G)gh^K zUVs3=zlqG)s40+Vl_bEf906h3Er*z7y5yzNrf+j%@0rsE+{ITBA6sPZF#C<2^;`V3 zkNRsFX!jUx-E{dgSfO-x`?pzTXEreE1sZxWffb>$a64%BiTD?o85LD0Mc@iJYI#$8 zb86|RH?$6^2=7`qFE?5p*;ah1qAX#g0?N-{Fbd@uE_s(~J6fI^ru#iPXkiBA4Mu6S zpub1}7k8~fO<3Nthgr3pMXp5gh7}>%+gj7Yr$qt0Lw?X!eW4uL!r&Bg+JX!ZuLagv zH>R^pQy9nxt&{zj*zmT2kYc};A8-vN9fzj)mqwW zQYxX_Y*g%^VXD{}Ug{@fC+Vbnf>KzK)s%PFqxzLua$iCeF!Ud3Ovpgq1wFaFB=*G+ z)C_abvWYJKE|K$Xg6Efsrs-cF{y8Zv9ag*MBK{F+!m)K1f5OIKwxSVKGGv{`UJ_T# zGXVRpPzTY8x{F67-Ka$;vCv3kQ>Z57a>{IIwJYnyuyhN`rLkrD(mi&_JQewpz>yUiEL0g{}(beF0c<)^7MfVDrQosTo}n`KqDL z)A-?r%0XQ0g0}p@xf%LTK6`8>83Fc*l&5{YgWKwmvNTLg(Sa|jHNV(n0P~uK<}rN~ z#imYQ=UDsFl-WFjboe}NzIb9U+~gG(5$D?~*>0(3#gcQw&y?^CG|qu2(op*=G~wx?eM@D6X zuEO)+k=DZs{lvD{P%~*nKVmj?A#5fstzjC&V-ewko`rfmk+aJ3U1f!k6?*fFalis6 zPnYbt93$YNm7Kc>h{!I$Ph~|t>VDu>Ac*h=8lwFlZ0tj!~=C^t;J(`Ee8+AX4YsVTeN^QbbMAD%XVV;)c z13Ny)K$h|nP1((7^VKJ7yVWcYeT<(si5#dP zA1)KA73%;%BI7D9FAEC5qs#spC3E{b;Z+Px#=hfkEqfr;KX9Ln2nM>>YFBauIw5Ch z*S5)PV-AK#(Tt4;8;Ls}vjvh8Z6utv#q)6W=p8i-SE8KAIj~r*Pq<~;F}WNZ&>~Z{ zPe-ebjQd1^e5&a!i}ov2-{vh?%@?NynjM4)KbfJ(3#LuCb*?Tfj-=!!7p7RNY6ic+ zx2gq-{Z(WU^5wqD(&-FwfX$H5xEk~h8Co;y9fkA}$>Y5@gvsOi`wm$%nH3%frM&m* zU3M8dECPOv44Q$;1yO;>(O^vw0I5sJahe1FiS}DkbeX*a<~H??3!ET$O2%823KCW6 zY?qNcn98E&ZK{T#*1gDEbuOh-(h2D)5~?2;jmMzDF>TOJ@&UCh*a?9U-4T_$S5iKt zuBHgc0lTE4T5IQx1b-%lu|FKPi@(LI>+9+MMeMmD09rj`cVD`5czqjiA?oV)mU#}o zRq%#%gSn{|gGX@tH=VT)=C^XFt}yn@v2DoZuC*E;SIV)!Ze z?8xUwrd$#-Nj;h&^E(O+3W^S`Z>4b+>J^n&x+&QJ$z4&~tkB-CX?*3Q2b#S~mZ{YW zcxfNA*=(O5q<8J3Inz z1xAuR@z#*MjJa15NDzgT(FS9`&VMx0sXTi9tTU<{c$2^5d@k-!`DtFAN``oPVpGdB zZo^{;o%?`|yJD-xVNv5Y`+4edfvG0VIRYnwUK5C&Ax(XaS_#*SI>*LoMyu3aAC0W~ z!Li7nG!#eZcVMae9Dgn+sZT7V%3x9h<~ z^Y3EVPP+9k{++*i`H_*vkf-c2YTx)J9t;&DeaX4&De4nQuCX>8)<1V0a%`mNaIxw zg5%d$a<%mCRI^^AjbWus8N(TBb4GB0N#X_ldlvjxe=!LN!QT~#A(?AeZ-~ z3uZ9>vMHIYupm^?KK0e%0c`I&c1NB_L&lm-^t%g`4kh_R*kFa(22f3lj4fjYI5#q* z9JxG=&T`{F5Smgg7v+SOs?z)bWinxSDuW~J_`0%xwRBhvNb4$;`hF`vv@F4#t(d6P zA6Kj5xIutpFX83O#U0#AIS>M2oActJHyQ@!y>%+WQnNzBVmNS@$2uy4>0zGRFL)`5 z_WatzXrN4UGl50LJJtL{5!O$344B3_r1$psLh2Tsi0(Q`YdRcTHd;F!SG$<3dUHMd zs#X;h!&q}qBBpt*ir(Y|vJrjDhJWM2AI)MOby21F<}6J_(x+?HJRA9E)5v^h6LVAg zW%*kQ$~xcuszj=JjH;AxZ@?Qd=Oe{N)mWy@;B=p>=p(PX7n62y(=hWBK&G@88{wR4 ztVyAPn6Oq3f3e1_`uh=q|r5r4q*uI4G*6{6@vB z1Z!6f(4yS7bvKqB7=VFKbnjme?)&}WWi-fD1FFf};uttAjhAG)71}Lzjr#b+G3lO% zs9#(N9PihW=;%-t&&hW~#m$!nqLCxWd^b%~YW&oZMV)KZuI7wRwHw6BclNJ1bJt0| zTX4DR4N$0yG}{}oRb^maZ{Sm8<^<4a# za~=YZxP~E=S-UQ)H;$g>5)^*yF5NPh(?4l(qLaFo$G)MunckNT)-Q&sn#0ECN6F1J zZ6KJYDvk>x`blPOlPzJ(zNVs3E3>@f)8!TsaDjZ=LUZdfO4r$n4AxF~_G!ke>e##d z0I3uh$B@6hf%=e=M#Ah4j#J}P-n?FAi@3lxdjD3V$^sO-9dGsMOlUNX!KIuTw&vG zz7GL|Hqa&?O;(~!E$#2+Q&;gR&>!D+ecod_d5lQ#!7(T_lmxv@REPuRHC&$1h3zv_ z3>BlCNQwaeX_U*~(NNl4C#le;Z;?wF7(L+6VFi@84;pes)u~#f7)ia{In{?B&xZ&k zfp;`3y5Q15zrbb@QzM`07hL7NUqQR*FCf7s(Y2^zqBjFv2Oi;QyY9lK5vjPh9@LZF z$u(ZF1>Ftim_?`U4O$(+h>PkBdRc;PINRm0t^VLtQmx{6pi`2ekSOS zB8H+|1Kfz)71^RHTgi~l`~nQjHQw@r+f@j=K(2;F_BzIGTB}Z05+lnd6trU{YP|3& z@xa5kiEE%>*Z=PMB0Wh8w?Z9`I@U<)>9rhb8X(ShQ4%R+hfCN{*p*YGd($PBN1u_G zq_3M!&wNEBVB=60zlqT1(S*QsxyRQ##9!s>RWrb1sw86&a^>21dY=b)v*5*dJ4fK- zpTEY->YynS0)%^C|t`+dY~h zKYa(^W4k~$o)LGx(GFX3{E_tZ+~2-H4Bk|}%jiBg1vMj1mKtJG)w^_MFKlAPfe2KJj_u%+xI>1B5~PV$* zYS(RPn`OWmTU2fC_4TX~yG2bqm*jORjlFvvPzOQnGUq7&I!*A3vnAOVnU#=271d1T z_zhJ*7j^tn@TO2L>)eZnrHvvS`B zkx-Yc)e8+d+f)?X-Xxu-lgd}g>ojx{YIX;n_q9_92pnuK5>chtfSAGaGme^X*lwz2 zkY?oZ^mhk#eCv(w4pvYyDPeND{ALX4FB|1S4x)0}h5-w$)fpnS1Dz-tpKg0jinWr? zt%gP0@is9Rk{0+d$Sk(?C%CYQ9P+Ntgs81Yw)(*sI(1$aFtT(G+bVx1tI zyFUEWaX&%NI^Bjzi<=G-U13*L5NTGuDn&ME@b(d}NyiAN0$sa3`rOizFAf!jR}R-& z`WM5A*QEu(Z)7ERImVtK`kO`;dWy(bTt1rc3wb*opu=JhpdNp*W*=DyFVSmNB1_** z?nyo+kog#6+ols>|GM8mn)4)}4IziLoHUQ8op;GQR2A+v9Ws^KTF%)~?LlrazL=w+ zhY>?Gr+-v4pxg$RiY(W1ykpS6N0Y+~{v#ELm(D8Ub0m36!MT^-;#Nu5Ty0%)#XaE~ zQQ_INHH6zdOQ?6YI(C^f7@HJ?JzMf_`TiCV%NzHjURUIav^b~&TK4`R&5~V6lPNUk!R~V&soBrNe7}$R7EG>=&+Daz^$}%>> zVV6>kSE4$pxw6%;_*tEt8Y*d7;xKwmYK2wIpos^vIY&)+(j*tK#M9v{du|h57ZH7L z(*+F$ z;xKj-<7ZR_K+*UST9he>P0jy9QL|~niHuPAV@JDMijr+Z-3309jbD zZRvn&6@Oac|5esye?Yg0#ILcU6h5d~QAin%XrrX!vY(i~t`;Jan_c77QBQD}yazyi zn9{vC8+8Vv-Nl~1heOVdU*eqbSb9iVg^VoN9cZD8`{dMx*{MIr7t9)f(MNFk9i4r{ z{4YU8UON`q{(mhZ|0r(K{{brghs$-bG&6H``M<&M|N3D5f3fe-`2MH?CN%M9urEHxe2?ED!(veos4|s2LT%t466nw?z75fWxL)eogKgIM6%Iz(Yy2LCSVI%c%fZ>Ba(e^ zao|%k%bu>$>vGJmNZc4a``NFx^Gt;lO?5E7`Tc70c{cD|M8Zc>wd)ELR5~-D7w~T* zV@;jU_GZeP#Lj##S3as*NhXFz^-@ns8SHFB=2p6)O427ABORL7y6)N`e0EN9+BqPL zsLM)GCjS)2e@YX!ttlda&RjkH(-a*Ggu)>fZ_s1e<45Lret)_3iJm0LR0EWBw6Xis z=tBGg&MFLx0#x)i_4&XPm_qejR}k$>I4l2XZ-8dzZLPLej$3m%-l%^VMcljn=|v9t=WQ}X|7d@GaJVw+oXdAuXmf_Fv1i~=5dk>*mjtNC6AfJnl&0?KO|xoq zlpIZa|+>8QT3#oJn7l? zS3!s=j38?5=f)c7BR5(f_)#I5Ce!6@y;tFpl0P4G#U zh~G}T8u9=o$M^}!6Qo3e-h`7pO@*44*!#tkhUt~J#D`Q0V={B3e^~Or2^mST&=&GMF@rTuCC{V1o^D{{IPnGJN zzuxpCM*-iM>jAq_SNIvDur&+3B}MHL-|E4A#k0C&xEp=t(f@1s8g|@Bfb*ZDA7B9h zg#Y1a7gsM^v;U&5htzc(vY62R^U@&jL%yBOR2p1WPNhgjkG(vzNdt_c`5ca=ggonM z#{-^tuK8l!Je?2x-7w(fF2{vyPkJ!ZO;T07_*a6*AxZSFpU0}UBoAIWtE{GKIMH~l z)KZ}>MIw~9?;b|QtueYg$OZI)$ZDbXO$?ZEDrTIa2j^00VtrX6G;!>6 zvf11{7xMUV`eudGF;OsRi^(ga~BiEg<0=bm)luA965+UE;kao`kX#zZn@}+=2BC~wNIhtK(?^D z+tBay$&S$-gF955H2s=^Okj}_*<4d($rJO)wl~eG&{NVL`>IM)Q^cdYgpR#^*$sA3 z=Y#;yaBMkrcIa8rWygJL!6k}V#iX{Y**^Fgf|yTNcmw$NxlN6=rFj+MpHwFAbTqqz5SUwcAH=im{MsX*01kpi?k`DL?vJm zjMQCSOmel;Zt`TR^Tqa=Ne zKb>E=LI+NpG8w9@%wh3@x0067zGXYzY8~4t0k!LTb zSkdHKVg+V$io!X|DOs`NHBDR9LhvZb!|JkjZ}-N`)qP1hYrBkPZ9BHb@}?QgJpa5qwplGUB`JDWizHy&B1PU-FNzYF|U zM$AxJkA!^-=hRY#r@(G@akuz*B#NH1T*%yM!DsTZec#OMC=EJUAFsbyOQz0UYdmu@ zqzpQ#ElED|N&qL_2;r0$uQ~AgR9*D!7g3SNLg&}u7d4?y0N=34cJ!vmHqwm^_~)Ph zo--8$54X|10D$lZFaXwnJ2m`&=Y^^q0~cJ*hNtVDif7(7-vHxjcyXn2u2OX}^5eri z)RXU=6(x?E=IWH{Y5SQ{!D;L%1b=VcKhq#?7*S7{i}BAK=S(9pzHH>_@cA*U(~nL``2wiz{mIZ zj^uZb&-3ha@Ame#APa)Sj-cPi#pkC3p@7%j*HLY&gMQcdF0gf@^(ox|xZUmLWO-Tv7d^l)+A{Jfj2OmEHVO#k+Fd4KX(yaPTx zM*CcRzZ)2QKKU;`9UtMj{pO)pA|hI;PGwgldyY!G=975<0d(vtJ~*! z|GIV>_{|oL$tbz?86fnTrNOwf)!qAk^aZB!YH_I>hGp@pra%D!6-tu)Fi~ z=LK(@5}rB#!4&WwL?HlqW8yXz%_82FW}X9 zr_J|{Xl6c}u8eO_N}^pyHVJV{)-@zkx|nzE36 ze-|pP_*wG#JfEIy80ddoJbu0bAD?Ued%l-C7X9mNX9?p2UfzH^of{h8FK#a-tUm!* z!R@cdz`E01AhD6xrH?WRSmC0sRV7g~>Y8J+Jm# zA>BHdTV{@zfon*^*My81TP$35{2%-t7se>My(m|70|5I-D-n$v7^{#p+$H7H+qevd zvRBi1QCpW%q_2Yv zS$Rd$m_4DOb2r*fU1cU5NanUYxp0(1+T%- zGduq$UO}DZ1nAN}v)wRiVDla!&+XM0BX7?rnzu5z)15qcVM@BLB~FP7Mu{2>jX^&Q zO#zO=Cv<8m%X=(&L*P5n4tBh|nZXJl@H~SMw^5fftd(KjGPHXn0i9i`4SU;;sy_N^ z^lu7$DDXr)jrRQcLZ6Xx?(PCJySiZa+6lgZ-FTPlzueXTP7V=;!UUzmXoX7KP~t@0 z4*~L%>6iRo`04{rQ<9;k4iBSm8g-BYp5^1bep^$n_K-v7|Afw_(~i0aC(fXRgwE+Y z;Y1?B^m(9uexk_}5P0E)f8hb?3h8GOQ>n~=p_EJ8BW(NmGYkS!03!oP65gPU=KU!> z04)ghgY&w21sXAIh${&3D=t$9)H47|!`@Vdc&-IB)JxRx)S>^wI6QwnN=0%2+T+@4 z+;@h~6LE_#Fs{uDz{T0xUm-{OTRUvrj8-Uv8ypf%;VcqO!Hud15>=w@RhX_eQ}q6a zrSm<@%nZ!#7T(yd1Y0v#^nD}X@AM_>)=&8DkO}v;_Myk$P>J0He$GixuC;m+5=l*- zoRU41S+FMc=tLb}kVh)9)l4>1hJMnC&?kNG=JN9{(7XQ4>)Y88b>Y1b5Ha`16jtLq z9$Vs${px{S(v7p(MG&Kdm&_qhC121UP!yiVMlOgDwxCeDkgyH%0K(-&aEb&M7t>@N z5M#~R-5`|t>-kb*o2{?NQgt?c1q#J^Zr#sk0n zlAx4^+!4ip{-Ms@kU~N2Qy@%i_*H^o!JLjk1Wc=&^~9y=Oz?w7{>Ww;m<=K!h(B>h zWdHdmB(I))xVlH&bykAi4aMUf{FlFZUOPScB`7*(?C=^eITXd;ADPqk#BmTD=X0}a z|05f~keel?t*V0Q^ez^7YVnkLTlLE_J5Sss=0rI0=00T1h&KX{Vy=HSgR>2;&631M zNltGFUHRWnTO^3)Lmeu*LBCg#JFh}IbHz73DCA7s{W#qP&Xv1?zSPCNt5=l6{ai5C zLC#udl`62LtLeW~jo1awFYkUa&4a}uOznktPlzu6r8`)52mQD7^GQOvxFZlMAjYb* ztHi3Y!_!eY0H-Ias~^DG4ZglvmocMSmU|aI&3bvj$q8a(lchB_x97a8tC6`nrXuzxwt$P!bzm46|zy*G8WuWPki?vPK7Fe~LK-6P7>wPuNw)AK9k5PnGxZ zPZi3Y2>+8hVmp+Fy2wg`g7RT(3hR0=ET$C^lm$Lv;)9Ba27Dlc9T8B2i=antL(uJR zXhmqUBoZ7bukGu4FqKYHl-T|2i>Lzv5~%Jj&Qga;)P;!}-YE54%JJj9RQ}E9kA8Bm z$$po-c31DgOq(?gkiiz>*H>;ohMGy`&B!*jV$5|Y%9lT~&Lwzdl+FJ|*_X#txqfdO zBT6YWOEQlkArzv>kkTe?NraNnmbn2@#*WNmNhPz)^B6LVsFWcxG>|bvN$H#8!4KAZANGv|-jvMlHJ`qJpOIs2u4$s%lxyAkc52hnIT>>wi3OoK;*ML*dNIAn}(yKkOYLu}i=7=5pUto967_8ND$~_T5?|`A8<~3rCG4 z9$e-XzJK|Zvi=1dgY%XWHQiRv=-8W^{btS&ESzvo+R$Y<$|A@k5k zvL`X%q}6VU=FvHx6Z=`r@3g;e9c6H1T0Wd3>0%^%3x@b}GmqnUqVNM*$NuOeR;DL-}Xb~sHqqH0$asm0}`bmC6u zJ!hM8)vw+(Vi!oW8zQSmre0LXdH&ii)!wWczW3x|zKJX?1JP5$)zuJd-U$k<;YB@Vf795pf5Teey8{I+E$wJTmKNblDHdZjQ8vn*Lr-f z?*0pgtUrF#G>NHlJsBKSjphM2nCi9!+*n&Dp<3!ba7Fduk;(O3y-Jh2xO$IFQga<~HWQ6MN>@1ww>S1&Z!*T2rSNaASR)t!k;;08zE{&VY;R zE!Tl#s<-O74-K&AZoS?txqaN-BSOiF`Q4{Y<(>u_8Y)MI#l%>*vN0Rqdk~(K+pm%E z!AIgk<-mmq;Wg`JEy{1KsT&TsL0K0TAa`d#P_^{#fDBi!!lW=)ui~UU*I|XpyccFongs`{J;jgBqZc+gm-Eu{ zENa+G?0dwe!5(_;+=PzNp*sU$3D*I2)rX3ctX$`hOzsS{=9p&-9OIa058TZ$&m8!O zJoz-pWK(Fo439zN{oV=7(?@EvtJ%J(1`iA z;qKGyjW^l1#NDeLzimO0AKgH?b>F?+DhmtwV=Zr9EgoY&;mM<2`pk2Tj`r?hpKZSF z$2S~xb$+25GwtDSvS{TRNXLi2d=fTw2Cj z4Y9({zg|CbklLdE3Z7lnWi)yFYe2Mo5s5GAB&t-Vm5SpY}@(y%+KkgIkXPGA&=VHAJ_hVWGkgF z+`UUnv$dNVHvQv?Xy>LMCpKiI}HfJKqJAb^n z=DB;+qYArg$4s*>s%PA-(>3~X^)as%Bcr_0^Q6=^gFuOvvVp6o_B+dtYt_t9*kt(c zy{w+gQs&pou&zW?zEMe;SgYj4Ut_N&@i#C}E$7Rqg80`_%1;du&ZR_EJbw zVg&otIQPoT6J~^cK{69xAf_ zuF14k-WSB>I&1&bXYBy|Z9WhBbtUq51O(*8O4!2NG)ND0s>=pOw`pWpk0j*L>KG`; zhi6M$zv>oudz@Fn5;COvk~V&8os7MYe5UK||y^X0%pE2>&Jt)$rS!0`7 zZcuaM$XA)FTo-D?f$VY7dHXejBRgcb=ee`i6umv5=Ii@0KbC8sAF+brvwNTgz;2?-1S+nLg_?nch050>UC$s_Z{mJzO?85PT$b&!5VrT z`7Sj>Pb}B*zq*m+c+yv3#z#w&=XrwhseaxdRaO;s`z)9IY#n!{?T*3AvLS4cG4*u${-MC@7({zAQ+Ipg#%!9^#o3iEK^I_N!OklkM8 z>`A0`FEZbF)KoXRgf?Dzt6mPh33`go$DXT@_JUtoxBsO?Zz2&rR(CDKEOol7k!a)- zq$bQ%5LvNj^N?2&9rvL^u?VlA_KE35-RpFTdF8LWlf*n`7e;Fc!iJrK2U&Zb+wTb4 zG&WY-siLl#qFX}X@R;=*J^FZfXOPrSmX}3r83s-7tu(^-_6g_icw)Ds_0*fHjzjQ9 z+AP1{Ycew&f2g_oh&G&UCrREp%hSkwo6%xhSxcu^Xk@-d5rJdQrRM&V*VH_s`&1m> z#f2tsYZt$8KcA@GFjvuZ6b{*T9qpbrN7-@nn<}a&vaM&X9ZXaa)^m5So_#~0@@G0P z^7+;7wVz01b89|oX!;Ygh#ihX{Bipdqy!bhYE?X*dA?ytJ}Z~0H_+?9zT|t}E>8zF zt{n!U(vo)LBAx6K|7?r$Yoou&KIO1Y^h#@uVJrU_kG72c=JHoo23sN`Ba4%_|08jy zoFjenR*$suV4k}TXSp);uD2CDd8#DlOwD#>ug$B!mdj@a72X{ zSjERPy^&1Z&h*EJsjUbKk&CX+@t)LbMp3oQNRe9?A1d6lxqmNZbGfH&@oC4sQ9e;L z3?9(ti?KNO53Z4Q<4^r|?rpzkN!-S!>Ab_H z-zse*pEq{G#*X}3PZuYS3An}2-9KjWcI~G>yWai0sB706s`m9g%=*gbeEPbhaHb>w-1fb40o5u( z=Yz5x@4Y&>E-6t()jf}a=3dLEf0Q;H|G}tH*K6O!nQZ!7PfK}yWaZ9MFY_12+F3qN z+{|ZZ?is$u_Aa%0>c%G4k~9S`+qFKMeW^kcp6x157;@Z{b5#1!i-tL8$yXcb$L1U_ z*(nbWw?@+L68)w8s^$H?)1!T?NeY8r>D6LU5}R^)O1aXHwzEuR%nms!N|?CiH9gMZ zUmvzBHjFmaPtMSyGB8Og7TO zj{D+dZ=fMWRpsp&OSY!i!B-^FV}RpcCaqRvdT^00NB6=LQ%d3|9WlYpe%I;SLodpCsH zEuL3<41XT9-)j-sHu2|`m(5sP{x9Q)da1N0EV+FiZn4}i!Y-gGof)q%7?7@_I%?A? z^lC$b$^Bs~(>qNUI?r~!+5gJ-Q0s)mrNlO_q3sp|vZZWdIn;33U~EH`h)NZsl~15g zW{#=BXdrBLjXWVzd4_L4tM1m(@^d-aNB5l$mfQY8_J%U){`a_J9#Izk4>L6-O|IzA zNSmlnjd%4OVHf%=5D>2S-axE4$|5EE9m|=^#Q_WT%|Cx0cE4sQQ|6aba@1p%Wbl3a z$c&@<97s%LY0#8p_;BUmsObsCkT6=>b2aN@%`8SYHY8Dpi_v(^ z=kKTO^gcznZYx>YNng2*F;Kl zTBX&9?5Gg&jFK-pZN)Ysez%x*>iyXR=3Y#%n`{%F?)S8cPvU%XIq6!R;hV3QW(-ah z=-bpeh7=VzUA!6*MO*STYIx(Z%f}bC&%O2(GU3;1>hLnzn-J|~R_2-5)%Y^CiMH3( zu$QW;%Pu$|wMhM%Q%MC~yti^DU+Bf7xJQrLFN?@!%J+fLD4f*Mmn_I|@TK4y|oe9xa!cFlQ4B6K0(^cFr z`j70rh_K-iX&*xdQJtW1amDIwPg0LkxM)5v*-0Nep85Wo!G(WrS_n@~?xf;#<}cRJ zG?3U7>BDbJ^rx7K)N+~UqSSC+@MA9fb~XO3xF{pl))VRM4`mmcC;SVkB%{MaDm>F= zB6GJ>j!4GXPpMIbPdiF|?y77*J7lIv@zu=TBPxVvqk^eTYf}fkk>K2xEI*HfGmD#P zY&=g&-O<>!NiblT9i#q zQZ#5Wk?D1Vdv>3ZTN_JyPDaE$cGN7GDO$7u*xQ-H?#*dgOl3Y4D|ddXCjsMpKoh=NGTxYD_nkt=WV>16=gkB zm8F)eM^uLuPxpeWaCzExYUHo1UaFD)T})SgYorZJABwEdjDMSX>0uTvpK~2yFRfCW zkb=sZ_XHDci!2=Vv=tAvWy=dm$(&Hl#w2Q+sp$0z7kuc=ECigLPGTU{+O}4b z+xEsEZso;aS4?DjH6?QF$1_J1rZXw7Ngi?SKiSd!n6A_NOnjtG)ZzXPkWkiv#ruD-$BKHX2o;k5%gR7ZpVc+hSPc# zD_<6v2vm{$^$rq3!!2s<>Pgpe!!>^pOy%w^dPAfoo5X$MK28A8f9X})Reo_F-7j7q zv$nDWZy)D+M@*lvr`Rmv!rvw5yXZaR!#@?b{SWNw{!q}g=+}u>KY7@cP~`CI!>#Il zW{=la!TZ+OO8&~z9v0o!$outt+vnn)zJmJuf)?wTIKpZFytF8NUG-!e)#>IzfU@Vo zTWX?@p59jbXO<*1a$)z>bIop{(BbI6EF~-%Li_uS;$ELNSTs2OEKZiRE!4h-51#uwbZT=P> z{2 zd%8}fuwXl-+@qYou&pj3dLyA^6DxLNLzmn=3LirsnLCmB4FdaF-}p^gETq4??rer- zh{F||(9eFKMS=q}f= zPW3+13k?5k^PZ`P%Ja9`e4@Uk{iD{HY3eEl$Ri!_)VDpZZ2V|(9pctsif1{0A`p^8HHtrOf&wx>lbtFIV#F)PLIahlpOuGd7gFo~}DB z(qlU?qkkU1-CKD~!VBdhGsVCAB$5q{&2(dhw9g-Mo}Hes8c9%D`~%})7(BO*?GAea z_96PjNcNev{0)w(UOX>kZQ0uR=Wr{f!ME#dOpmoxIu8lx-*orjv+-6`x?slp@uw$NS96s1v$`wi?|_ak7AtymJlYIaX~-i~Q(4+Jl$U zj#7qM9P>+8D5Lf2A?{~n*qTnvz>D`z1}KePLi@cvv|@cCj!H7+vy2>9o^p*8_diqK z)+HouRQ#i|OM{8;Acvuwt#oXg#~({dfi+Vql1xAv=GSN>+zAtt3i<#`e=p zLl!J>T{CK+Dq8!MJLK>F`gk)7Va6dDStuRG^|3sCrtbBIX*Cq0W@6!}L1zn>WuFk7cc@mb}_km(N!A0~QH zUqh0yZoEfIH;-AIPvbxwa-*lWe!k2`g+5>dpVzAonPE>#wd`?iV=0VC^6^|F0)8}n zb6JXxiVvds6P0?C&Xvwa2<9Y1W0@n7N>W)R$b%Gy^i;JCshcb!BR^}t2{pt14J?F~ zN(zhKU&U@j(HZ@ier!MWucU2TI_A!&^RKZzvnMxEX1pxRbswaYS4FAFq{*7K`InwL z*BL#ur8#{`pk^`&s|nL2CI5^YM?+&a-jAp%s(={yPyyU_Vol2Tmv>$X{Ng8=&&3{l ze7wjt8HgJMOv|k;+VlF+l>T~d5s!`)hRr)MQL~g>JosFr!Z4Y_bU5u#bVd@+v_{s( zPG)krPK1h0O{$hbK1-El*?+2}D*Ca)w0M-DnQgKK&5L&|#XHBeiY(xW68(wyetM1D zu4(f_<;mR*(i$IgqY`Vk5WV?j%IgGF=Cz7C$0#3Wv}qxJ@vH#lQg?R-DMpqj5gcg} zjCUGrk4iG+Zz|>&S*yR_g~5^S%>`dGMM{&#kI{+@d?MDt3=5$VMs3GVW`(b&iWE*8K4JNmMteF?CW}I>VPkA&STb|DdQRS5l_wsN#xjO)bF4O1 zR+EagY#^L=VNnnl=4VPnIPKRfc8KC*pfFtfE5+ccB<%T-fZQr|yOUbTzZ&>5WV4L-xdO+S)2O169t1n4+ zzi}scQ+dX1D#~~?pXfFjjnK|O<)|nsOT||L6>i~SyL$wU_H~X>$$~?24kIb4udDvi z3@)kWf3p2=5lf>$a}isE72}H%KbHiy2KT?!)Zs&>laN=%Bp@W~Iclvu{ErzayA0yb zn=5!m?fNSrb+0EXiuUhkQ(p+U;5`S+RrYph{?bpNqGXALa(9$Mls0FRl|7Aiq5eh% z!(8c{&;qAsw%Bjn=4Ow*D>Ss7%&=#!Y%*k`(Wc3IPc?83R)S_@BN)IrBJ#`?g-ZfX zodT1(g%6Ehvt;=hm3MeW2Ff@(Dd$Ja1m1&Az792y5vHP_{q`tMa8|}B0rB&tID74U zu=FM7#=XE4Xep~CUGJeV=Wxvo6ANdhA3IDdpxLPVAn)ux#a4Vv!1^QPN?`|#D z?XLO|ovkvbZ^^=TAp2w1Sr(huER`}nHKw;_SZq97D2{o|+NQ)fUJ{2si^3l6ltMSl5iFg@d;5se*S=&<680HycYa_fj4w zs2qOR@2Yz&LbReGUtTh69bZU55}6;XJ6 zG~%GFny3p?LNS!Fg|{z@<#Izcw@XOJj&Sp?f2>9`wV+v^n|PGUMe~{!Q_*_8BQ7U) z?{=5DMK8v=(B*e}RnWQXyK2i@j0{IV8_G?rp+qg_h!myXgmSs_m)1A0dKxmEYrN_^ zy}!7QXBs8Zn_WI0El!gV-Xe+WS)EIP@0P9lLM}}Cl@$fd4_pdfvdZtRcXDE)V=1X( zm8To*^yHrVaO$zo=^|`5txbE@OGvqF%CGcU^cuIiPuO)d7}{*j@|U*Te9iVTYJPI9 z>>=&b`|P^jTgTzv5#*SbIlZN-mzPI&fe%;x91^YIf-~CYbpuSEJy|sINdX+`+i#`8*>tAPXIP=lHLG_3w z+aB%_o2wOGBty0+r|HR^$N4n9cN?)62CP4GjV-Ze?T%AVMc95zNx5j{`>AUVnUN}) zXn!69o9xsA_OeON^tjxh-IvOBQh6QH7t;Bgw@uXEiqbaumQgkTk-2YEvGhx;qo;pB z0&Q-jQkG(TO(l^a>(*J45%_b2YoletOv$9<>``9t1LZUK^3g zjmMlLV*4ArbU%BP#D6gj2=O>rCH_`wQ>Dwci>4N%0lnT#*#;~j-RrV`Xv)&%$a<1` zjdHI_o_&9%epXp{|0|P+Ph>~l-Is`AIj3_m_Z3~!YYmo^q@yoCJfQXG2`B7*QlH|J zFzR)1;ZtLhmw0kqZA!gzMUq9zbN_qHO-T>RFY5Ny_Ir_ZRf6HK2bmFg7<37Hw_TN6 zFxU0Ju_ue+7|pTZEP=SjBtG$E@slr-&aUaL@n_4j(5R6}&fj&1PMB&hynr)HU^8uU zl4;}BuDAP=YX+pUe4=(czE1Js%M$QuOhP*fjm^EbqatOyZBwIw)qzin%Zon9OG*yi zFcZ1Z_)vNDI)&LAs+?zEBI9=W*lVGm-L^A1L<;W=s?}#bX+~g)Ae_9YtMWiU#M_g9 zMUpl-oJe7+Tb)vYe)&KjzGdqm`5Ff033yM+Y)rVy*ea;~BBMPlIhYUa#0N%Ky6`>#TD8@0bl^f`&s~N*9+m_eZnR z4jz1v#&6GDE6;53+;ZisrV{)sT6_4c{AaZpAO?F=Yi}^|mB0`0r&k=2-)+vlz)*_W zRqD;#41iMM%v<=(xNxV#!q13hE9J;uCw5sBv8xmiihqZ0fFygQwb^@tnExRrN7(9t zBsy=J{-H~{*Se`Vvy$@ROg`_~!g7(F9diVC?_Y6*RAz4e-j0;*hKnLp5k!dAWpt1I zN)ac1I(`a$A}X@$q!T-R@Silt9>8BOAxECMi^4+p+6j+YkNbS)a3Z-&Cb0T1Spl$- zt?$?P<|8##S7eA@La;3E^u^<~2f+fWvzmpy@B;(C%PTfAy^m}p)_o+xAHM23vg#}U zd)Qa!eupFLygRf4mYkw(#IDeMb`>X@NiCISMA#bL9z7qDQ90^?EZuWKIu7EEFAGpw zz;}jlwcEHbee4CNd^e|~mqKi=FhmZZFEazs^QXhX4h7FwLwO7pS01f6WJ^^?hR?8Y z+o)}`z{9+9VJ9<)1QhSz+5X(Lv;%0V6pl3MSA$`Wn=c=%!|Hw(gMMPI(o9jm6JyU@ z4IM%$o^L*=Toq2!%905f7Iv)IzRD?!_UQ+iYr*UNLQ&M<6d#FYuO!%S(D#k1uuO66 zai6_6vEr@-`!PM=sQkB2_#O#6p5L;&IR4AsxR}lJc{Vx3+_POSC@Fp#Jp*ut7=ZM3 ztvl{Rs;=;l2=U~6tBQ{ab9jbC*gIXMl2l!yh0f>rd-JM&S%e+P$v;|$RuCoj-&uv@ zZKqAmUZtvFKgnzLs<*X|waoSUdKYEAq;qQR{ec|l2iV;X?v`ZtP11j&q2mYd+Z|BDvfr<-UlMTfSju+Ozqccn|BPpsJJfrgO=helMySH4 ztS)#`B&%?cd=;I%6b9J#3N%>pXZEr-6Qxhio$EMgeSwzAq-MWQ*BC?ulCVsX)gT4CTi#|u0|4yC|uU;{5;L0~z1@;K^I@$RrNa!5E{!mcuJS@EIc z#yHM528PQmB%h}q+&fgx1&pXYbX5t;+1{c{cmSxRsK-*jKS3Fz2WQnxlP6RGLr~Q* zY5<%ERX{t(aVL(gt8c2nPU&I@Lvh?FO11==g*1dg)_WjKlAx? ztsM(^XcaI;?a#h~GwZ~>MHta3>A<)U&SE+&676-awjQD3Imzy(aCQC@nSBg{iNfr4 z2(KFjM!YuyVOhl*k~$bhwM%T}eY(z6v*6%@Xz(>)sj>KbD{ZpK_+0aSJDFoA7fUN4 zt_|{x&S~8PT1kXIU|&4IL1N4JcJO+F5h16`-A+dK?ch!o1lQN5%v(>+6v3ZvUTr}6 z4t*K?E*sSbD39P)sDI}_W}sSYH4y2LJA&LWf7z<*Mg=0hJ@Up)*5dn2%&qJ%w%efUcbN z%0Un_0tW-X18;3IH6a`2NMGYm^b-Vt#0DUDFG zb;+r9EhB*B_E1jLyreXI)xMAdT@GJ#!4HH(vRiMwzNLr1fXPz=Q6}hTCgA@f3dYcd zI*CAljDhuJ7;wCCN`db(?gkTt@&DI(A3?$h;@ctk!y927?8XFrYI9+<@>TxK3^D-r z>2@@e;%tTrv7}Q2Y!H64;lo&xV-GR~w$n5y4>*+3j#fO-WmzH5EO!Y{bGrnTjaHH& zBHn;kD2#AUPnQ$s!5RQZ7N|hXeFu=m01u_&a#{3g#If=+$$VxhlkFBn zKzzs2t(|QP$$G`0^J5HHJwFrn<}p};1REyjxc_)B3S0oZX01neK#Z*Z7D_{H% zKY%_Rb*hkFL3n}U0fD@W!90@CwVAR$r5{x#zpbiANCF8!+h=Nq38_XECSnX3R4u8B?Bx=*>! zA?NntcNqfl^fN_3$$T>90wA(eh}suTe%?-r?ru)W%ZRqFeob37S@ZkK`!$)oQ=4gI zKIp|NH{=FXi4U+2%;-o&8~S#%OzS@~4T}mEXbRKeoR=r$p81d;Z4%!uc#%;zQLmOQ zxINi`TW{&(0ftU@0?E@-Q7z5J>cXkBZY{mT4_U+ay6bXes=#RXf$$k_y@KN<0$D0M z!ff}1Nj!Dhz!ermZ5{k0n4QNd9oA+nh~5(+XvVlM82&+$NfjutXkZ&4iCEVeh!F!C zwo#X*>-=OG6V^DMR`^4ijU;nKT(1!xAc+*zQ|C}MShm&-8q^N1!ym6J7!cSHoGebv zz9zE;dsaH{lfq5dLt41-agpJ+n!%kC^J5)5qA#b}@K(B!sx1{oo)eypC4JYr2>au* z4cS{6LOm#;mk4j+4zs=dnRGwmRC>5@?cjhyLA|2Vs&%;Gk@71^*mg3H7pX)Dlh4y6 z7+|2qRD2TtW>EM*F9AO~mo0i1?{HwUoOW8ht?vPmVI>iB)ghlwcLS|vv=+S1sZWF` zE?W?7Li$Yf*l%u6lF>)sWCiOQy^EScGj(Uv)fbFGY>K6 zz1S~`;esS16Q;}2vf@1Uxi#jI*v@6b3?{nb04rAwn#FWT)w0Z=B-3{$!2g&Rv&~Jt ztHW#*<`%T##Mt9$j=WTACH(~|b%O?EM4K^wk{tAL;0ze>8D4gEpx{FyMLIt^{Q!Ko zgn+J&9hEX;2zHYa{WzP#_mI8n}PwK&gHFq>!9DX>{q!wzJh3Vz(8ZL!9)oh zAMMbRQcdthBO7eo)1WyZ1zv{`{d4siti5Pmw{NU1!W@Zu9mM8m{tYr_2*9wqmN2+sMzuVaj(?*;4Pca{ zXPSHIGf8BCboXLOzYD;e;UWg;Q|TWv$?wxocf=s~uV)eLgKWPR8RssW`j%$|7P6`3 zJGoZ5CaB2yi1e`G12C-Aafjm@f)DQiK*8uZ|tcP z$^r!V^dtl!q$Bt*2?#>W+C6)^6hh!6VP4$P`spN#0Kw8hkEdfv3$hQ$*=yz;2I**Z z!GN*l5Cv?ZP|Ts44-Eo1CF%_lo40(-9BkT#FV%^;HHdmJX*mKc;UFlAvZ*3gFM}Ye z%Q2>mJm9>Nb!^ii8<+2RCj0E3T4`39O_*>mD;bXH4=D)I`p46jK@*W2y}dnIs1CQF zp=HBE!$CQlZ9%_#yPvu=<|AkiRX3I?D* zl46|+c%p(TlW8~sz}ISiW;ijXj6r)T4#<%W4=<-ovWvq20?T$sSuv%J9gC0T_LcG# z>7ufdUdO(97Fo`haN>n@zK9cd-fEYUYYarvn{tRo6kvnGoeYhMecK7PC`ho}4Zbj^ z9oqf30k0?6LET9I!*Rw|CB_@(yzuk0ZdmCcd?T!w%DFl(8qZ$0c~6m%#Q)RhHm?%w z{oAYn-CC#{%Yg|g8%)I%EZF0%(8iFGS^WW(ec-Gn^!DqNrXIye}Q97#YsHGla zaNyj@r{~z9rj{m9TK&tIXun_x|B+q61t@HYmmL4b+6?rd)38Vhc^-yiNDl)i z;!#kb;3=MGtncl3GqHs#3uqyK456Y9&bfjL)IeD!O6H&$3iH*$E09qOH|y5{yTTF{ z%IF2rx*-NRrifpBCyIkHy_3EM2Lc+7TPmRE z-Jtk|K=EtD7L8WNixY;1d4?NzB$}2!ceH{y!B;LoUIb7gxZ(T$&gjq?7+yQLGswkQ zsY5bpNFJz{?$;uL7GcBu26nyqSAR20^&|11Gx-$VSqBL>o0yFe66AnrD=}>s;1?(n z44tEsLand%}+1N9`>p!p|6bSG?SXVC94)}*wPlDG8|@Z?ouQM7pv zZZ(WDlhZV2hPusffWMOSkVpYeYH&0IWhuX6K|85M6Nq!8v}JCD%8CmI?!Z#K;v5G) zIdcw!hueqFwLYirLG!nW~Rb=>AD4s$Q ztr1~9gI9+j&Jl*%VsqGoUZ#NfZ&ZXisNOEX^038jNKGK5{6 zLvAnRWK9Y4dPR}2UID21av%byz{q7mHr-?iA{7WcJSQ})ZQ=n*1BT`f*cDq~4>`BDQAzJ<-_HB@DqTY=L8THF~mt^7SD8X=j6vi91 zpE$EX>E++t8ViRYb6+XxHxPlY`H5p#`;|P&`X1UyNOYI&S1K-1{8imKnG;gg$^TvhaX2q^$QT)rCR>)V0$JXfVvPo=utnl2im+G;8f5-47#AE z4I%Ph^ob4%E!y33SKaS|x&Z{#za0>O;az_jcN5+vME+%bgp;{mxLP8k2l*d>H|M~) z6}2;16U_?00n*$Xh(LteyhT?`c9`$LbjMiJsO@y^ybz#X9K#hvWE3cOKHxMvOnJ5zH|^o21wEM zm^gsE`U7a;PRA$LpHJ_rn=Svh(a5d$%?x3pJ-F)Cz(ZkeJO3m+T_7aEhW-(pL`PHX z3I;FXw(s$Vj!6%-sVHL0L1d82bLG<0f%js>6Tt?NC5bi7-rgv;K&l|QKT8CzNClC9 z1M&keWKp~+MR+p3I-j=CS<$6@uYsGq2Xpp#mjn-`7uwWuEDW=$bRwc}D+ zE}Sd8&Y88XU2wUF!&H+4cr$&GktrCdH??d$+HfFIf7X_pXz5wP$0)CZ>x259_oGEQqZh6tc*;Lnf zjX?`K*J(_xuG7n!Nt=vxqCkVbu1d%q-%G03*u(=1;)RbLID_Fk`1sqrV9&&PY)hUX zh=v#pay%YGzbZ{m6es{{hc@eJSs_q>NX1XsECCo%4kC%A#Ns{CQ|ziMOxdsmS_05u zn*AXG#AgwYlVu)M$sxy%3hP4)x=$NQ1nR5{$VX%KDpNFt(1pZ+!aNZ(5td%@_UTvJ zc<38+fG*=@^PEn%;Z=fGzHoCVrYfNR#q}NPTV0>7?gL%a--02PJEnUpgP|QY4h4+{ z1;tUoe{Plp(MY7AGR8{{r4|bHsmv1Y?}YpGX8{NpA0uGO(hk&a|7WE|3oJ7tj0tq1 zjqvnB#zlDutK}eY8G-~u5$)93Lxx#R`Pb-}rH-eIte+XhIzz2cCAR`nt`Z#(nz6?b z(+HS8H_>Gr+QwjsC0j7S)A?B>7C=*lQzS4fGIt}C_kCn~GYYAHKK&?)DSOeKm_|h| z`+3lVyn-YC!n$tr(@ipnwq4HS!-PV#`f8zY-l3yraA}h(L2m^)QH-3-A*iY}K|fip z;sYcrREdyg1M)=uV`Z}5vi?(}IwqoFEDY0+uyu5BYm;J^GIuuB$4uJt2&BK%4*DfI zk^7$x7hmjHs1MWlQC68ycr>J-k_d+AI342LVQ)og6YmUC6iMbuy#XrQT06qY`qu*p z@=?5jqVB*6x)fyI$XSrgWX6wv)%toNa27QN=s{qWkY{Z1o|WuVV2c0tDMrIT5>fw2 zMUAv9M4m_;_RxA^(89R~0;L&$0nR8f=wggOM!QJGiFXn-y9I_I@=N<;=!Z^$#3H5+ zd<5}qWJFA!1Az-u$*v$GM{ZT=Eb@$Cmv55D0u4ea7Fy8U&a!0KT?P7F~XVb_jA<8uW*Qu;RoReud*d7b? ziv}WTWuZj9;?0zXIvB@9$^@naV7^@4u*dvC4ZA2n0s9Iu!(~C#6eoypp3Y)||hmeI%Ws9mbb}D=`Q>ZIMN=bIo^tqgFZy=?R zMKCffW}}ry1_nr6c+P=Zi`wvZ2V9syX=F*5D8;ENwl>n#C=4NqV+sW*O{k)xNc>kt zElb|=Ba<8PU_fr$!a0!Fka3YBh&5DXJeMy8KUSw!v?iQApbUktuv7_SOQAaUSLcq* zr;*t6Epa6BQk{NI)`Rhig!c^p5w``=5EU`3A20-UHqLC}0w&+0f^f87W?Pi$_ zAXfF9KrTgSKSSp)Ahry?#&C`G6Dt`2%{VZ54?Sv$H71zQr1f-Z?;nH#{KZ2d)H%d) zly8#Zuprx&M}(1oqD2E#8RHZfz?P;NkS(d8yy668*>PlD^ad@Eyd{9HwA)y)3 zC&R#UVjHrsMky>sZ;z%6M{-)Q6*h|kLS!xDfCVI|M|@~t6hNLiLD)i=VxMC3F9G5R zFv3@39iViSKcH&_fnjbY?q-h0Ysl$W4Z zFr7{hK#CGjkHyM!Gb!Z@pG84QS$p|ICqE)#e0VJZr6vgRLSRX-Bk8H5qGNmAM28q)dkGqV~Dnq69R@-umU6yjJ2qOSbz#k z9;UuxS$}1q28{>etXhb(QrQLspqbJK>IQ5WfPF{@x)Vl20tQgq)MeU$av#)wUS9dX|PLXdhD!(8FVj3mO76 z1AW7BAckl*rgr}Jz1o?X71SWZlb46a&qzup^Bc?}Z4THl5%(WxMlj`Z#6*>;a#I|C zn1-c5R{Q9rb<*a5zCb-?Cl4P-*|1gvo#;Pi0N4)G_bn5mI+vfu#M~R8uPi$lk!nyB zy3Qj7Q)Yuf%|K}ubvibvSf1J9l@*Wo=W7bEYP2*wUv1i(dN_N)gUk_$^22aEq`l!t z!74lY1n)<&RPNv^kwf&`efv8i^V+=_1;%(q2~t{as}EsR6EwNB2Y6?jNqZ*pTgTjl zl-`n}RR?`4z80jShy?es93-h$+WM<U6p}WQUotFA+@lf`WFqRSe|h)*$i=GIc^QEMB*hK zNs?HE^a`#EPTt8yo|W}rR~k_J3!<76Ix-U1$~ME?{s$&yB2EAm2LmXX8{k2?G>0Si zBFHeAxDeX>40JIdM?b(-VmfGU431L3b^X+OJtH_0-LH59nG-@RmW9X5@P1XiOI{Segt7(v7Kjwz|G}LKk1v_KIS90zK^0E{S*xb%5 z7LnqOQb^T8Cet;-nq!n?I;|?oFp`nDD%B5^=~;(@tQkWOuI)tj!LEB?voU1N5nNW0 z(H6AX4vkv3H$^lq3WEF_6N5mw;|uCz&j*|e5QrhTynw9Z=Z5BM*qsJTN}C~+ zC7$9Vx^JxW%V52+0R|hXm@KqRg)lG;SPW3wVqN3XXn>4i-14Jrh&{bYYIDGQJCsAP z(JM4-*u54E1TcQY?-#5}`Y@jubwlHI=&|wXP8kTPkj$`aCYaS21~4Y8ot7l~;0da0 znXFsevgtCv9si2=q^aefJ&Q)Z0N*Ltu2^ZX2cLYA1q;1gX-qvB^olh!RRf6xW~^zr#tl^ru0}O!9eL?o-_p_Lcp)2wc!$ul3H3)Ui2%-$Wy>$j5VzCNQjwn z!~6^po`P!VI6!z}^^#=om34g=-G!j>H=mdVj{NMGC2 z*?ixY5h_X#DH6MjG)3{>k!#0G!Y&bEx@|Oh6o(no$?SI4el)UC=t7)(6r;oXGK)anRnKnNcai$S78CHxgJ6LJmJGFKw&4w#j3oqtIy zK`+cCtG>9T0oM~yQoQr8B8&Cn*ydLEZHB-k(1*)1H^u{wAu>3CRho1Bh!U-^QVbSL z5sa#_947F!3l_r+7oU&;@eXm|1fWwRO=;%bpcelu-iH-LZSP$zB(P+gj;{zaT{385>+ z^`C!r+^f<9*?L1UG0U8A3MB_z2*1VYFMw-mXrhXwIb;=#!|u~wYS-XygaaqsK)R1z zxuZiua+Q`OBZ4Uw1M z`>*lw7~HDEmiSj$b;2$&fgr3Oi6{z()#@202lfNV%9RQ$bO}viR;@$#ZPht()=v_- z3B4MU3(p&?z1;4Il7=n#va0p^|BcRttXPG`He>)RPvUI34p$mJB_*Fi< zaI6AjEV+iE2UnMvf&Z5?XUp*!7N|tvPjm?gEBUzZ=g`F)bR7i^RB&h^MFP7xhF{k> zi^dc^ND`Jok}w3|AU0UUfvRCUaq zNWWNVy3w5&+_G4UvNQ=OQ-p<3WZ71uKf=vSTu~u!4l#4=)*M`5g|wd=-5rQ%@+?Li zXJ^nY1z?i8K!xC19^8OIW(1`O6EqW8&tT0ra%V0^nFb8dB_5bG;>oWJ8V^Lg$aEWT zbV`#KKBwb63x@?tX?fAm(ftGP$BYvch=%7t@ai4VToHo{I@HQw99`MNY~X^(_Ub!X z=u>p(7Xo7Ga_|(~FxV7GzBxi3A7Er;GUgBB_cD?OGSG;iW(6G--AK@Z>zwefCnb4# zF#QY;3Pj!%bb8E|zmcd4j*2zFuR_uxEguP_h{&Sci@O>c8tm~UNddp5hk1IGO-Axk z-Y3M4K(__qKMP|=^823Fu`UZooeXj-49-)QdG&~`v!4q&75h}M%Uk|#@* z-rf!2_!zBt@F|)aej~sIU!ZBKLooFMzJvy51Z$ZVl)3pq>v0EN43U;zRLFrM|Lp0f zK_>gj0GFEJwv(0zcH3zR!LOXE09;rK2*jNXdw zYD;SiZUhbi-2+m2<^E$DK8Z@`iT^60!*Bs76YJaZY-a-E8@1HP0@11T!bPnCWB}Z> z&^=Wacw!?iFggA?3?AY7_$)S$9A-n3C3MS<&?=sFbF@}eD^jtux(1VI`CdXZH3{Z| zaB&iblF$|AZx(|aq%cZc3!_B*0t>nYhBUR9+D=3mos5xksCS$ca>oO*1|%@tl-R|d zI{bzcqC|o(Ag*Ej+ExsQSn5$RaVzM*vJtlMJOdgo>%pxv9E^Ckf?2Bv4QLQKSQ4wS zV?yToKkZ$4Jk;y=AEe@j6zY~t(q_q)k_y>c$WmiSkt-%yM>E4D%Sg9G-IA1hD_gfx z)+-k=G0IZXLfptU_OZld88Xbw_jx`uB)8w|_51((o!5((=`+vsIp;j*InO!o^ZqpF zAU$}t>4&T`h_(RtN4QOV!C*Wo@#+`!_5rR!gzmgS>pCLdEGF)Vut=fAF@v9>sb*ND z0QH9eI&y`7XoIAf&ohTNoZIwAI68bO;IAsO508o7v z3vwa;P6MW!IoXj^YsOjsl?WyL3mijCU1<*k5=8&LgN_g@!KRx4Z|184#RA8a4J0H3 z1~s2*3ta;gju2OXpa39=0b(7}z=BsGN-qrT!88Q{8}S*05esV8W15IT1mGXCRDuH) z5KUVn0dxWOueY8n(p$`LdBm4+78jVmj>Yf<`}dYatk(t6g&!-)Kh`1J2I6B7Ylq$o za8d**m}v>Yn+eEaKsd-=3PeH|IBuZc@{gE;gaIUgOqjLNXIsn60b5`cm@@66dkG$fe9Agsp5jF@ zRh6l#8~8rYr*L%<67Ybs2zjX$C9sn`TbOqTBjDA_M|{dI!pacrnh($5Oe%06=78#c zb~8aXOOF6qLQVj4swf}+%h&@CL!|x5g`_l?C<4ZJYH_|b0zM&a9_AL*JIHp0T#X)( z2EjpU0vGRs4~ookHD)91ZE}EZCDuxUfTRP6>@*|M9is$Dxq=x2;FQ2(ezwd6lpBc3 zZ(Vqs4}d{0LK=_2?sWS{9{`n1bbSZ_$!5dgpd5mjfqb`vK64gAJmWoVwZi4Rat@{o zJ%B)maQ%@bi4;R%>ivzM_@FOzk&lRKNF4)PQVD`OhL2ka)&yZ!ArW#8Ko834DTv2G z|K-<_0)(Ccpnwrjy8-GEB@1EVfPAM?g_YVhx1?o@!p5zr#p^%7m|}C^@2e*yVGr zQ)W=+K~t%E0<%!Ttv4~oq%4PQLL~2K`U(f8tVaLs&P-i$kN0>WtWzI5v?kNqpiZAG zyWqN1V-ERDLi^DnaKk9BvYyfIpa@1Hx<6s)%l^*uI6HZ$ zAkCJsk(~$zRmZ<~>Nc@6YN>6BNEaUb1Vq7oBrw4hv1DYrSBp7zx@!tTfhEA5VwR_l z6sHTvGIGf1C*u7HMN`q({XcPRCLI6xCoqbe0)UL_&D)y*7P_t-o^70qOw56;2 z{XKAb=S+BClq!?yI#WeTyT(e76qv-@ZPa1;etbeLCdw`|1w#5|hVRTcXl!Z-JOKT~ zyiyt)=xis{k5Rp`xdwkbO_WzEkAlY4-J?^eQVf-{sIyK1 z^>Nt!a{m}k&ZuQv*c(yEAloOVJzE>UCTk@SM(n%ZAhW^>qkPh zjYoQe*q>@Gij-HipL&b`u-tvsI)*_`aUqGU#9S2fwrNWEYOZsV7~g& z81M~Kwq*|Us@exB*KSFF_O^(PJ!j!Y*HyB5$WMOIjz!%*+xO*V6=IqGGa#aF}S*-{?N4IeBZ9%iJ?ujD?j}wfcf5+uRp2qRXxz~U{qzCK zG@CV$#oNTqq5)AD8niwhyPZtou-ym&YcvN2Pdm zG&bIlGlI?G4aX(&rc3cW7NefGh{NS^*iF2%4%1b<6+iqc<>jl!KRy&fp?(8jSiTgs zSjY|UYD2*L5j9-={M66*c(1*;KxlIk3Vh+g4>h3+;U_ZMdb1C>bPNzlW$TFXnL4@!D9{{om>jpj&;VOk~u`sV;x* zRgF6K+IsJzYsC*bILFV+2Di!_a*|*xuH5bbd>U2>sX%H);{$u1b5ER1*clkd#Q9%u+ESI{$d90@Pcb8!N+C%Q-pPf*)K8Z zpE`CP*J>~&=)Lt-(9&4l*WS`Y-w?;ROu$y?Zc7v6j$P}r{-JMEY$~-(famTLMxmtV z`nD^cfcu|wf7{T(*PSg&HD$`_qBN7rpgRv;vBr1KT`lU}^Vhwvaxv75hWm<<0i5xN zEp`la@DfI|^E>_gBcHL$L&E(1(=1G5WXzJxRK1F})L?R>vJQ3au8+~pxVVhfRvqqi zT;_#M&CxS|We5#;`5jv8vG0O%&AT8It$-7YqNwY4ke2FZV4EXST27RfuciyX`=Iku ze0N+kaW~3!t8|UDa`~@1%)Fn44*zm$&$)5Q8^5+`WGzZ-P89i*&|{m+v~1{GIdOMO zxzXL`AbabI%z+r+?G=kB#X=qEhF8-nauo`fg*8-Lm&Q9ssOWBcbtj?aG%csd>eiM9 z8~i!SF>&RJXxk%g3T`sR4d0?p^!2f<%l7e<&5Q)81{TxVEa;@ zw`{BS(gVk@-;L4Rkh8TztfZouZvEZ>_}9O`puXFPy)F)1d9wh8+63%;##_UW;NeTc z5imFs$-~#3IRCwt`Uwx;&lpRKP8%8h1GuF|q;d7KkPV*ch3S^D=C|wC%ewq-=ItD> zdq1#!+x4BL(|ON%Z6BQ5UO(8S|5!YH-6i#tT1*06ulXAB#FZ=CV|_%sO99Zn53>nu|2 z%uY7GalCy^edw+yiC%g>wEXbM(+SD2!e8FEEiiLJ}! z_QiiqI{UzES~JvDV&GJb?l0DX@eL&#nIA+3w%Wf`_uAeb<1>2F;m!8!mkp9Wm*145 zRq}G4sRiKnCRhI^|K3F7#?dRPA1$rSY~<8-sNJxYV|=-(ut8a}u2Lsuk+G7DyYV$q z`O_PxURXS-jS1<^dv<8SK33KBSK_odqOrvTb8_9DwJRmtV*^z-ei5N(XnP#i93pzE zlh#wj&iKkx6@|Avj+Qx$>s{y~zr9H-)ZULo0{O+OTh^|;uYxuU9 ze0%79^)8bP-Sl+ws&fG!^tJnbC28q1pWa*0oSM5}$+|yn6<3)a8@4EIS-kJQy_HML znOM6}ZDr4E!HE_W*8?&mOGd}mNv3L>pHg0Wve=rJ=^40Pb6v+E{W+0YR9osDG(oZ+XQo6Q@NYPc=H8v|8-QVFqHkKE-W7TFg z9pQ>&Y8S7VR0+S0D!Md!;gepr(yr&3i=(^mV(uH)99mDfL@@}e@RV!Q-*&~uLP&TE zN(QwMwHTOH5%p_E_q9-9J&@pU2vdgFemjJ07`t85?&b#Y7t zweq{6DE;}$d{bk-0Nihrz diff --git a/SS_benchfore.tpl b/SS_benchfore.tpl index d2d4cf2c..53198c98 100644 --- a/SS_benchfore.tpl +++ b/SS_benchfore.tpl @@ -1656,7 +1656,7 @@ FUNCTION void Get_Forecast() for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1,y)=mgp_adj(predparm_pointer+f1-1); + pred_M2(f1)(t,t+nseas-1)=mgp_adj(predparm_pointer+f1-1); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon @@ -1664,7 +1664,7 @@ FUNCTION void Get_Forecast() { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,y)*sel_al_3(s,g,f); + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); // echoinput<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) - { - for (s=1;s<=nseas;s++) - for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) - { - natM_unf(s,gp)+=natM(s,gp); // need nseas to capture differences due to settlement - surv1_unf(s,gp)+=surv1(s,gp); // need nseas to capture differences due to settlement - surv2_unf(s,gp)+=surv2(s,gp); // need nseas to capture differences due to settlement - } - } - if(MG_active(4)>0) get_recr_distribution(); if(y>=Bmark_Yr(7)&&y<=Bmark_Yr(8)) { @@ -252,15 +241,14 @@ FUNCTION void get_initial_conditions() for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1)(styr-2,styr)=mgp_adj(predparm_pointer+f1-1); - + pred_M2(f1)(styr-1,styr+nseas-1)=mgp_adj(predparm_pointer+f1-1); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon for (settle=1;settle<=N_settle_timings;settle++) { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,styr-2)*sel_al_3(s,g,f); + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); if(do_once==1) echoinput<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) + { + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) + { + natM_unf(s,gp)+=natM(s,gp); // need nseas to capture differences due to settlement + surv1_unf(s,gp)+=surv1(s,gp); // need nseas to capture differences due to settlement + surv2_unf(s,gp)+=surv2(s,gp); // need nseas to capture differences due to settlement + } + } } #ifdef DO_ONCE @@ -667,16 +664,6 @@ FUNCTION void get_time_series() natM_M1=natM; } - if(y>=Bmark_Yr(1)&&y<=Bmark_Yr(2)) - { - for (s=1;s<=nseas;s++) - for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) - { - natM_unf(s,gp)+=natM(s,gp); - surv1_unf(s,gp)+=surv1(s,gp); - surv2_unf(s,gp)+=surv2(s,gp); - } - } if(timevary_MG(y,4)>0) get_recr_distribution(); if(y>=Bmark_Yr(7)&&y<=Bmark_Yr(8)) { @@ -788,21 +775,19 @@ FUNCTION void get_time_series() for (g=1;g<=gmorph;g++) if(use_morph(g)>0) {Make_FishSelex();} - if(N_predparms>0) { for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1,y)=mgp_adj(predparm_pointer+f1-1); - + pred_M2(f1)(t,t+nseas-1)=mgp_adj(predparm_pointer+f1-1); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon for (settle=1;settle<=N_settle_timings;settle++) { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,y)*sel_al_3(s,g,f); + natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); if(do_once==1) echoinput<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) + { + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) + { + natM_unf(s,gp)+=natM(s,gp); + surv1_unf(s,gp)+=surv1(s,gp); + surv2_unf(s,gp)+=surv2(s,gp); + } } + } // SS_Label_Info_24.2.2 #Compute spawning biomass if this is spawning season so recruits could occur later this season // SPAWN-RECR: calc SPB in time series if spawning is at beginning of the season if(s==spawn_seas && spawn_time_seas<0.0001) // compute spawning biomass if spawning at beginning of season so recruits could occur later this season @@ -951,7 +944,7 @@ FUNCTION void get_time_series() // SS_Label_Info_24.3.3 #Do fishing mortality catage_tot.initialize(); - if(catch_seas_area(t,p,0)==1 && fishery_on_off==1) + if( (catch_seas_area(t,p,0)==1 && fishery_on_off==1)) { if(F_Method>1) // not Pope's { @@ -992,7 +985,7 @@ FUNCTION void get_time_series() for (g=1;g<=gmorph;g++) if(use_morph(g)>0) { - Z_rate(t,p,g)=natM(s,GP3(g)); + Z_rate(t,p,g)=natM(s,GP3(g)); // where natM already includes M2 for (f=1;f<=Nfleet;f++) //loop over fishing fleets to get Z if (catch_seas_area(t,p,f)!=0) { @@ -1100,7 +1093,7 @@ FUNCTION void get_time_series() } } //close gmorph loop } // close fishery - } // end continuous F method + } // end continuous F method } else @@ -1188,8 +1181,28 @@ FUNCTION void get_time_series() // SS_Label_Info_24.3.3.4 #No catch or fishery turned off, so set Z=M for (g=1;g<=gmorph;g++) if(use_morph(g)>0) - {Z_rate(t,p,g)=natM(s,GP3(g));} + {Z_rate(t,p,g)=natM(s,GP3(g)); + Zrate2(p,g)=elem_div( (1.-mfexp(-seasdur(s)*Z_rate(t,p,g))), Z_rate(t,p,g)); + } } + if(N_predparms>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + for (g=1;g<=gmorph;g++) + if(use_morph(g)>0) + { + catch_fleet(t,f,1)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),sel_al_1(s,g,f))*Zrate2(p,g); + catch_fleet(t,f,2)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),deadfish_B(s,g,f))*Zrate2(p,g); + catch_fleet(t,f,3)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),sel_al_2(s,g,f))*Zrate2(p,g); // retained bio + catch_fleet(t,f,4)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),sel_al_3(s,g,f))*Zrate2(p,g); + catch_fleet(t,f,5)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),deadfish(s,g,f))*Zrate2(p,g); + catch_fleet(t,f,6)+=pred_M2(f1,t)*elem_prod(natage(t,p,g),sel_al_4(s,g,f))*Zrate2(p,g); // retained numbers + catage(t,f,g)=pred_M2(f1,t)*elem_prod(elem_prod(natage(t,p,g),deadfish(s,g,f)),Zrate2(p,g)); + } //close gmorph loop + } + } } //close area loop if(s==1 && save_for_report==1){ Smry_Table(y,1)=totbio; diff --git a/SS_prelim.tpl b/SS_prelim.tpl index 8cb09b4a..af776da8 100644 --- a/SS_prelim.tpl +++ b/SS_prelim.tpl @@ -957,10 +957,10 @@ PRELIMINARY_CALCS_SECTION for(f1=1;f1<=N_pred;f1++) { f=predator(f1); - pred_M2(f1)(styr-2,styr)=MGparm(predparm_pointer+f1-1); + pred_M2(f1)(styr-1,styr+nseas-1)=MGparm(predparm_pointer+f1-1); for (s=1;s<=nseas;s++) for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) - {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr-2); // need to bring in selectivity + {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr); } } } diff --git a/SS_readdata_330.tpl b/SS_readdata_330.tpl index 35c7f638..4dfc4ef9 100644 --- a/SS_readdata_330.tpl +++ b/SS_readdata_330.tpl @@ -205,6 +205,7 @@ ivector fleet_type(1,Nfleet) // 1=fleet with catch; 2=discard only fleet with F; 3=survey(ignore catch); 4=M2=predator ivector fish_fleet(1,Nfleet) // list of catch_fleets that are type 1 or 2, so have a F ivector predator(1,Nfleet) // list of "fleets" that are type 4, so are added to M rather than to F + ivector predator_rev(1,Nfleet) // predator given f ivector need_catch_mult(1,Nfleet) // 0=no, 1=need catch_multiplier parameter vector surveytime(1,Nfleet) // (-1, 1) code for fisheries to indicate use of season-wide observations, or specifically timed observations ivector fleet_area(1,Nfleet) // areas in which each fleet/survey operates @@ -269,6 +270,7 @@ { N_pred++; predator(N_pred)=f; + predator_rev(f)=N_pred; surveytime(f)=-1.; } if(fleet_type(f)>1 && need_catch_mult(f)>0) diff --git a/SS_timevaryparm.tpl b/SS_timevaryparm.tpl index 09c9ca99..06ad4944 100644 --- a/SS_timevaryparm.tpl +++ b/SS_timevaryparm.tpl @@ -218,7 +218,7 @@ FUNCTION void make_timevaryparm() case 4: // logistic env link { // first parm is offset; second is slope - for (int y1=styr;y1<=YrMax;y1++) + for (int y1=styr-1;y1<=YrMax;y1++) { parm_timevary(tvary,y1)*=2.00000/(1.00000 + mfexp(-timevary_parm(timevary_parm_cnt+1)*(env_data(y1,timevary_setup(7))-timevary_parm(timevary_parm_cnt)))); } diff --git a/SS_write_report.tpl b/SS_write_report.tpl index bde71b40..f6eb4fc5 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -968,7 +968,7 @@ FUNCTION void write_bigoutput() dvector Bio_Comp(1,N_GP*gender); dvector Num_Comp(1,N_GP*gender); for (f=1;f<=Nfleet;f++) - if(fleet_type(f)<=2) + if(fleet_type(f)<=2 ) { SS2out<<" sel(B):_"<0) for (f=1;f<=Nfleet;f++) - if(fleet_type(f)<=2) + if(fleet_type(f)<=2 || fleet_type(f)==4) { for (i=1;i<=disc_N_fleet(f);i++) { @@ -2414,21 +2414,26 @@ FUNCTION void write_bigoutput() { SS2out< Date: Wed, 8 Sep 2021 20:45:45 -0700 Subject: [PATCH 4/8] one more update --- SS_popdyn.tpl | 2 ++ SS_write_report.tpl | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/SS_popdyn.tpl b/SS_popdyn.tpl index 147b1dfb..c4ad9f12 100644 --- a/SS_popdyn.tpl +++ b/SS_popdyn.tpl @@ -251,6 +251,7 @@ FUNCTION void get_initial_conditions() natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); + if(do_once==1) echoinput<0) @@ -2310,7 +2310,7 @@ FUNCTION void write_bigoutput() SS2out<0) + if((fleet_type(f)<=2 && Do_Retain(f)>0) || fleet_type(f)==4) for (g=1;g<=gmorph;g++) { if(use_morph(g)>0) From 6db561923b8e697ad6708edc451cef23416ccb1b Mon Sep 17 00:00:00 2001 From: RickMethot Date: Tue, 14 Sep 2021 18:34:18 -0700 Subject: [PATCH 5/8] add seasonality to M2 --- SS_benchfore.tpl | 20 ++++++++-------- SS_global.tpl | 1 + SS_popdyn.tpl | 52 ++++++++++++++++++++++++------------------ SS_prelim.tpl | 22 +++++++++++++----- SS_readcontrol_330.tpl | 33 +++++++++++++++++++-------- SS_readdata_330.tpl | 2 +- SS_write_report.tpl | 2 +- 7 files changed, 82 insertions(+), 50 deletions(-) diff --git a/SS_benchfore.tpl b/SS_benchfore.tpl index 53198c98..a6e8fa57 100644 --- a/SS_benchfore.tpl +++ b/SS_benchfore.tpl @@ -1651,12 +1651,13 @@ FUNCTION void Get_Forecast() { Make_FishSelex(); // calcs fishery selex by current season, all fleets, current gmorph } - if(N_predparms>0) - { - for(f1=1;f1<=N_pred;f1++) - { - f=predator(f1); - pred_M2(f1)(t,t+nseas-1)=mgp_adj(predparm_pointer+f1-1); + if(N_pred>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1,t)=mgp_adj(predparm_pointer(f1)); // base with no seasonal effect + if(nseas>1) pred_M2(f1,t)*=mgp_adj(predparm_pointer(f1)+s); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon @@ -1664,14 +1665,13 @@ FUNCTION void Get_Forecast() { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); + natM(s,gpi)+=pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); -// echoinput<0) - { - for(f1=1;f1<=N_pred;f1++) - { - f=predator(f1); - pred_M2(f1)(styr-1,styr+nseas-1)=mgp_adj(predparm_pointer+f1-1); +// SS_Label_Info_23.3.4 #add predator M2 to M1 to update seasonal M in styr + if(N_pred>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1,t)=mgp_adj(predparm_pointer(f1)); // base with no seasonal effect + if(nseas>1) pred_M2(f1,t)*=mgp_adj(predparm_pointer(f1)+s); + for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon for (settle=1;settle<=N_settle_timings;settle++) { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); + natM(s,gpi)+=pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); - if(do_once==1) echoinput<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) { for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) @@ -776,27 +780,31 @@ FUNCTION void get_time_series() for (g=1;g<=gmorph;g++) if(use_morph(g)>0) {Make_FishSelex();} - if(N_predparms>0) - { - for(f1=1;f1<=N_pred;f1++) - { - f=predator(f1); - pred_M2(f1)(t,t+nseas-1)=mgp_adj(predparm_pointer+f1-1); + +// SS_Label_Info_24.x.x #add predator M2 inside the yr,seas loop + if(N_pred>0) + { + for(f1=1;f1<=N_pred;f1++) + { + f=predator(f1); + pred_M2(f1,t)=mgp_adj(predparm_pointer(f1)); // base with no seasonal effect + if(nseas>1) pred_M2(f1,t)*=mgp_adj(predparm_pointer(f1)+s); for (gp=1;gp<=N_GP*gender;gp++) {g=g_Start(gp); // base platoon for (settle=1;settle<=N_settle_timings;settle++) { g+=N_platoon; int gpi=GP3(g); // GP*gender*settlement - natM(s,gpi)=natM_M1(s,gpi)+pred_M2(f1,t)*sel_al_3(s,g,f); + natM(s,gpi)+=pred_M2(f1,t)*sel_al_3(s,g,f); surv1(s,gpi)=mfexp(-natM(s,gpi)*seasdur_half(s)); surv2(s,gpi)=square(surv1(s,gpi)); - if(do_once==1) echoinput<=Bmark_Yr(1)&&y<=Bmark_Yr(2)) { for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) diff --git a/SS_prelim.tpl b/SS_prelim.tpl index af776da8..ea82799b 100644 --- a/SS_prelim.tpl +++ b/SS_prelim.tpl @@ -952,15 +952,25 @@ PRELIMINARY_CALCS_SECTION echoinput<<"ready to do natmort "<0) + +// SS_Label_Info_6.8.5 #add M2 for predator mortality + if(N_pred>0) { for(f1=1;f1<=N_pred;f1++) { - f=predator(f1); - pred_M2(f1)(styr-1,styr+nseas-1)=MGparm(predparm_pointer+f1-1); - for (s=1;s<=nseas;s++) - for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) - {natM(s,gp)=natM_M1(s,gp)+pred_M2(f1,styr); + pred_M2(f1,styr)=MGparm(predparm_pointer(f1)); // base with no seasonal effect + if(nseas==1) + { + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) {natM(s,gp)+=pred_M2(f1,styr);} + } + else + { + t=styr-1; // resets for each predator + for (s=1;s<=nseas;s++) + { + t++; + for (gp=1;gp<=N_GP*gender*N_settle_timings;gp++) {natM(s,gp)+=pred_M2(f1,styr)*MGparm(predparm_pointer(f1)+s);} + } } } } diff --git a/SS_readcontrol_330.tpl b/SS_readcontrol_330.tpl index 5c910dde..d7653bcc 100644 --- a/SS_readcontrol_330.tpl +++ b/SS_readcontrol_330.tpl @@ -601,7 +601,7 @@ int N_MGparm int N_natMparms int N_predparms - int predparm_pointer + ivector predparm_pointer(1,Nfleet+1) int N_growparms int N_M_Grow_parms int recr_dist_parms @@ -620,7 +620,7 @@ // read natmort setup LOCAL_CALCS N_natMparms=0; - N_predparms=N_pred; + N_predparms=N_pred+N_pred*nseas; natM_5_opt=0; MGparm_point.initialize(); // 0=1Parm; 1=segmented; 2=Lorenzen; 3=agespecific; 4=agespec with seas interpolate; 5=Maunder_M @@ -1249,19 +1249,32 @@ { ParCount++; ParmLabel+="FracFemale_GP_"+NumLbl(gp); } - predparm_pointer=-1; - if(N_predparms>0) predparm_pointer=ParCount+1; - for(int pc=1;pc<=N_predparms;pc++) + for(int pc=1;pc<=N_pred;pc++) { ParCount++; + predparm_pointer(pc)=ParCount; // first parm for this predator onenum=" "; - sprintf(onenum, "%d", k); + sprintf(onenum, "%d", pc); ParmLabel+="PredM2_"+onenum; - Parm_info+="val"; - Parm_minmax.push_back (3); + Parm_info+="val"; + Parm_minmax.push_back (3); + if(nseas>1) + { + for(s=1;s<=nseas;s++) + { + ParCount++; + onenum2=" "; + sprintf(onenum2, "%d", s); + ParmLabel+="PredM2_"+onenum+"_s"+onenum2; + Parm_info+="val"; + Parm_minmax.push_back (3); + + } + } } - + predparm_pointer(Nfleet+1)=ParCount; + echoinput<<" predparm pointer"<0) mgp_type(AgeKeyParm,N_MGparm)=6; if(catch_mult_pointer>0) mgp_type(catch_mult_pointer,N_MGparm)=7; for(f=frac_female_pointer; f<=frac_female_pointer+N_GP-1;f++) mgp_type(f)=4; - if(N_predparms>0) mgp_type(predparm_pointer,predparm_pointer+N_predparms-1)=1; + if(N_pred>0) mgp_type(predparm_pointer(1),predparm_pointer(1)+N_predparms-1)=1; echoinput<<"mgparm_type for each parm: 1=M; 2=growth; 3=wtlen,mat,fec,hermo; 4=recr&femfrac; 5=migr; 6=ageerror; 7=catchmult"< Date: Mon, 20 Sep 2021 15:05:14 -0700 Subject: [PATCH 6/8] modify M2 parameter label --- SS_readcontrol_330.tpl | 4 ++-- SS_write_report.tpl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SS_readcontrol_330.tpl b/SS_readcontrol_330.tpl index d7653bcc..1b05caab 100644 --- a/SS_readcontrol_330.tpl +++ b/SS_readcontrol_330.tpl @@ -1256,7 +1256,7 @@ predparm_pointer(pc)=ParCount; // first parm for this predator onenum=" "; sprintf(onenum, "%d", pc); - ParmLabel+="PredM2_"+onenum; + ParmLabel+="M2_pred"+onenum; Parm_info+="val"; Parm_minmax.push_back (3); if(nseas>1) @@ -1266,7 +1266,7 @@ ParCount++; onenum2=" "; sprintf(onenum2, "%d", s); - ParmLabel+="PredM2_"+onenum+"_s"+onenum2; + ParmLabel+="M2_pred"+onenum+"_s"+onenum2; Parm_info+="val"; Parm_minmax.push_back (3); diff --git a/SS_write_report.tpl b/SS_write_report.tpl index 6b253cfe..055a4b65 100644 --- a/SS_write_report.tpl +++ b/SS_write_report.tpl @@ -2412,7 +2412,7 @@ FUNCTION void write_bigoutput() if(N_predparms>0) { - SS2out< Date: Mon, 20 Sep 2021 17:58:04 -0700 Subject: [PATCH 7/8] resolve possible merge conflict; tweak discard output --- SS_expval.tpl | 34 ++++++++++++++++++++-------------- SS_write_report.tpl | 13 ++++++++++--- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/SS_expval.tpl b/SS_expval.tpl index 57bb25b9..08c24275 100644 --- a/SS_expval.tpl +++ b/SS_expval.tpl @@ -451,27 +451,33 @@ FUNCTION void Get_expected_values(const int y,const int t); case(2): // DISCARD_OUTPUT /* SS_Label_46.2 expected discard amount */ { - j=have_data(ALK_time,f,data_type,0); // number of observations - if(j>0) + if(have_data(ALK_time,f,data_type,0)>0) // number of observations { j=have_data(ALK_time,f,data_type,1); // only getting first observation for now - if(catch_ret_obs(f,t)>0.0 || y>endyr) + if(fleet_type(f)<=2) { - if(disc_units(f)==3) // numbers regardless of catchunits for retained catch + if(catch_ret_obs(f,t)>0.0 || y>endyr) { - exp_disc(f,j)=catch_fleet(t,f,4)-catch_fleet(t,f,6); - } - else if(catchunits(f)==1) // biomass units for retained and discarded catch - { - exp_disc(f,j)=catch_fleet(t,f,1)-catch_fleet(t,f,3); // discard in biomass - if(disc_units(f)==2) exp_disc(f,j) /= (catch_fleet(t,f,1) + 0.0000001); + if(disc_units(f)==3) // numbers regardless of catchunits for retained catch + { + exp_disc(f,j)=catch_fleet(t,f,4)-catch_fleet(t,f,6); + } + else if(catchunits(f)==1) // biomass units for retained and discarded catch + { + exp_disc(f,j)=catch_fleet(t,f,1)-catch_fleet(t,f,3); // discard in biomass + if(disc_units(f)==2) exp_disc(f,j) /= (catch_fleet(t,f,1) + 0.0000001); + } + else // numbers for retained and discarded catch + { + exp_disc(f,j)=catch_fleet(t,f,4)-catch_fleet(t,f,6); // discard in numbers + if(disc_units(f)==2) exp_disc(f,j) /= (catch_fleet(t,f,4) + 0.0000001); + } + if(exp_disc(f,j)<0.0) warning<0) { - for (f=1;f<=Nfleet;f++) - if(fleet_type(f)<=2) - if(disc_units(f)>0) SS2out<0) SS2out< Date: Mon, 20 Sep 2021 18:30:27 -0700 Subject: [PATCH 8/8] mirror the N_warn change to avoid conflict --- SS_expval.tpl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SS_expval.tpl b/SS_expval.tpl index 08c24275..1cd3fdbb 100644 --- a/SS_expval.tpl +++ b/SS_expval.tpl @@ -472,7 +472,10 @@ FUNCTION void Get_expected_values(const int y,const int t); exp_disc(f,j)=catch_fleet(t,f,4)-catch_fleet(t,f,6); // discard in numbers if(disc_units(f)==2) exp_disc(f,j) /= (catch_fleet(t,f,4) + 0.0000001); } - if(exp_disc(f,j)<0.0) warning<