From 182925dcbfb8e8dc4c50214fc205fe8d06598e80 Mon Sep 17 00:00:00 2001 From: Paul Wiggins Date: Tue, 24 Jul 2018 13:31:33 -0700 Subject: [PATCH] added clist gneration counters and progenitor fields. Added segment deletion and creation features to Edit Segments. --- Internal/intFixPos.m | 17 ++ cell/trackOptiClist.m | 57 +++++++ segmentation/defineGoodSegs.m | 13 +- segmentation/intRemovePillars.m | 63 ++++++++ segmentation/superSeggerOpti.m | 32 +++- trainingConstants/updateTrainingImage.m | 206 ++++++++++++++++-------- viz/editSegmentsGui.fig | Bin 37503 -> 46607 bytes viz/editSegmentsGui.m | 172 ++++++++++++++++++-- viz/showSegData.m | 22 ++- 9 files changed, 490 insertions(+), 92 deletions(-) create mode 100644 Internal/intFixPos.m create mode 100644 segmentation/intRemovePillars.m diff --git a/Internal/intFixPos.m b/Internal/intFixPos.m new file mode 100644 index 0000000..360c45e --- /dev/null +++ b/Internal/intFixPos.m @@ -0,0 +1,17 @@ +function x = intFixPos( x, ss ) + + +if x(1) < 1 + x(1) = 1; +elseif x(1) > ss(2) + x(1) = ss(2); +end + +if x(2) < 1 + x(2) = 1; +elseif x(2) > ss(1) + x(2) = ss(1); +end + + +end diff --git a/cell/trackOptiClist.m b/cell/trackOptiClist.m index 878abb0..8fa73cf 100644 --- a/cell/trackOptiClist.m +++ b/cell/trackOptiClist.m @@ -89,6 +89,9 @@ index_dlminOld = strcmp(tmpFields,'dlmin'); index_ehist = find(strcmp(tmpFields,'error_frame')); + + prog = []; + prog0 = []; % loop through all the images (*err.mat files) for i = 1:num_im data_c = loaderInternal([dirname,contents(i).name]); @@ -182,6 +185,57 @@ daughter1_id = drill(data_c.regs.daughterID,'(1)'); daughter2_id = drill(data_c.regs.daughterID,'(2)'); + mother_id = data_c.regs.motherID; + + % get lineage stuff done here + + if i == 1 + prog = ID; + gen0 = 0*ID; + gen = 0*ID; + + else + % copy info from previous IDs + prog = nan( size( ID ) ); + gen0 = nan( size( ID ) ); + gen = nan( size( ID ) ); + + prog(~birthID_flag) = prog_(ID(~birthID_flag)); + gen0(~birthID_flag) = gen0_(ID(~birthID_flag)); + gen(~birthID_flag) = gen_(ID(~birthID_flag)); + + % now take care of new cells + mother_list = mother_id(birthID_flag); + + prog_tmp = nan( size( mother_list )); + gen0_tmp = nan( size( mother_list )); + gen_tmp = nan( size( mother_list )); + + prog_tmp(mother_list>0) = prog_(mother_list(mother_list>0)); + gen0_tmp(mother_list>0) = gen0_(mother_list(mother_list>0))+1; + gen_tmp(mother_list>0) = gen_(mother_list(mother_list>0))+1; + + ID_ml = ID(birthID_flag); + prog_tmp(mother_list==0) = ID_ml(mother_list==0); + gen0_tmp(mother_list==0) = nan; + gen_tmp(mother_list==0) = 0; + + prog(birthID_flag) = prog_tmp; + gen0(birthID_flag) = gen0_tmp; + gen(birthID_flag) = gen_tmp; + end + + IDmax = max(ID); + + gen0_ = nan( [1,IDmax] ); + gen0_(ID) = gen0; + + gen_ = nan( [1,IDmax] ); + gen_(ID) = gen; + + prog_ = nan( [1,IDmax] ); + prog_(ID) = prog; + % done lineage stuff. length1 = drill(data_c.CellA,'.length(1)'); length2 = drill(data_c.CellA,'.length(2)'); @@ -421,6 +475,9 @@ {'Neck width'},{'neckWidth'},0,0; {'Maximum width'},{'maxWidth'},0,0; {'Cell dist to edge'},{'cell_dist'},1,0; + {'Generation'},{'gen'},0,0; + {'Generation0'},{'gen0'},0,0; + {'Progenitor'},{'prog'},0,0; ]; diff --git a/segmentation/defineGoodSegs.m b/segmentation/defineGoodSegs.m index 2380a17..8183da4 100644 --- a/segmentation/defineGoodSegs.m +++ b/segmentation/defineGoodSegs.m @@ -1,5 +1,4 @@ -function [data] = defineGoodSegs(data, ws, phaseNorm, C2phaseThresh, ... - mask_bg, A, CONST, calcScores) +function [data] = defineGoodSegs(data, ws, CONST, calcScores) % defineGoodSegs sets the segments to good, bad and 3n set by the watershed algorithm % "Good" segments (segs_good) are the ones that lie along a real cellular % boundary, "bad" segments, lie along spurious boundaries @@ -11,9 +10,6 @@ % INPUT : % data : data segmentation frame file % ws : watersehd image -% phaseNorm : normalized phase image -% C2phaseThresh : c2 (curvature) calculated image -% mask_bg : background mask % A : scoring coefficients % CONST : segmentation parameters % caclScores : boolean to calculate scores @@ -39,6 +35,13 @@ % along with SuperSegger. If not, see . +% phaseNorm : normalized phase image +% C2phaseThresh : c2 (curvature) calculated image +% mask_bg : background mask +mask_bg = data.mask_bg; +phaseNorm = data.phaseNorm; +C2phaseThresh = data.C2phaseThresh; +A = CONST.superSeggerOpti.A; sim = size( phaseNorm ); diff --git a/segmentation/intRemovePillars.m b/segmentation/intRemovePillars.m new file mode 100644 index 0000000..727fa67 --- /dev/null +++ b/segmentation/intRemovePillars.m @@ -0,0 +1,63 @@ +function mask = intRemovePillars(phase, CONST) + + + +if exist( 'CONST' ) && ~isempty( CONST ) && ... + isfield( CONST.superSeggerOpti, 'remove_pillars' ) + radius = CONST.superSeggerOpti.remove_pillars.radius; + cut = CONST.superSeggerOpti.remove_pillars.cut; + Area_Cut = CONST.superSeggerOpti.remove_pillars.Area_Cut; + debug = CONST.superSeggerOpti.remove_pillars.debug; + +else + radius = 2; + cut = 0.05; + Area_Cut = 700; + debug = false; +end + + +[~,~,~,D] = curveFilter( double(phase), radius ); + +D = D/max(D(:)); + + +D(D (mult_max*mean_phase)) = mult_max*mean_phase; phaseNorm(phaseNorm < (mult_min*mean_phase)) = mult_min*mean_phase; +% Filter to remove internal structure from phase image ofcells here +% (and little pieces of debris from the background +if isfield( CONST.superSeggerOpti, 'remove_int_struct' ) && ... + CONST.superSeggerOpti.remove_int_struct.flag + tmp_im = imclose( phaseNorm, strel('disk',... + CONST.superSeggerOpti.remove_int_struct.radius )); + W = CONST.superSeggerOpti.remove_int_struct.weight; + phaseNorm = (1-W)*phaseNorm + W*tmp_im; +end + + % if the size of the matrix is even, we get a half pixel shift in the % position of the mask which turns out to be a problem later. @@ -212,6 +225,14 @@ adapt_flag=1; end + +% Remove CellASIC pillars here +if isfield( CONST.superSeggerOpti, 'remove_pillars' ) && ... + CONST.superSeggerOpti.remove_pillars.flag + mask_to_remove = ~intRemovePillars(phaseOrig,CONST); + mask_bg(mask_to_remove) = false; +end + %% Split up the micro colonies into watershed regions to assemble cells % if data exists, reconstruct ws if dataFlag @@ -287,7 +308,12 @@ %% Remake the data structure % Determine the "good" and "bad" segments -data = defineGoodSegs(data,ws,phaseNormUnfilt,C2phaseThresh,mask_bg, A,CONST, ~dataFlag ); +data.mask_bg = mask_bg; +data.phaseNorm = phaseNormUnfilt; +data.C2phaseThresh = C2phaseThresh; + +data = defineGoodSegs(data, ws, CONST, ~dataFlag ); + data.mask_colonies = mask_colonies; % copy the existing score into the data structure @@ -315,7 +341,7 @@ if disp_flag - figure(1) + figure( 'name', 'SuperSegger frame segmentation' ) clf; showSegDataPhase(data); drawnow; diff --git a/trainingConstants/updateTrainingImage.m b/trainingConstants/updateTrainingImage.m index 46e9ae4..5aca34d 100644 --- a/trainingConstants/updateTrainingImage.m +++ b/trainingConstants/updateTrainingImage.m @@ -33,82 +33,154 @@ ss = size(data.phase); x = round(x); +%% +x = intFixPos(x,ss); -if ~isempty(x) - % creates an image of 51 x 51 of gaussian like point - tmp = zeros([51,51]); - tmp(26,26) = 1; - tmp = 8000-double(bwdist(tmp)); - - rmin = max([1,x(2)-25]); - rmax = min([ss(1),x(2)+25]); - - cmin = max([1,x(1)-25]); - cmax = min([ss(2),x(1)+25]); - - rrind = rmin:rmax; - ccind = cmin:cmax; - - pointSize = [numel(rrind),numel(ccind)]; - - - if im_flag == 1 - segs = data.segs.segs_good(rrind,ccind) + ... - data.segs.segs_bad(rrind,ccind); - segs = segs>0; - tmp = tmp(26-x(2)+rrind,26-x(1)+ccind).*segs ; +if ~isempty(x) + + if FLAGS.whichButton == FLAGS.EdgeToggleRadioButtonFlag; + %% in toggle mode + + % creates an image of 51 x 51 of gaussian like point + tmp = zeros([51,51]); + tmp(26,26) = 1; + tmp = 8000-double(bwdist(tmp)); + + rmin = max([1,x(2)-25]); + rmax = min([ss(1),x(2)+25]); + + cmin = max([1,x(1)-25]); + cmax = min([ss(2),x(1)+25]); + + rrind = rmin:rmax; + ccind = cmin:cmax; + + pointSize = [numel(rrind),numel(ccind)]; + + + if im_flag == 1 + + segs = data.segs.segs_good(rrind,ccind) + ... + data.segs.segs_bad(rrind,ccind); + segs = segs>0; + tmp = tmp(26-x(2)+rrind,26-x(1)+ccind).*segs ; + + [~,ind] = max( tmp(:) ); + + % indices in point image for max / closest segment + [sub1, sub2] = ind2sub( pointSize, ind ); + + % closest segments id + ii = data.segs.segs_label(rmin+sub1-1,cmin+sub2-1); + + if ii ~=0 + + % xx and yy are the segments coordinates + [xx,yy] = getBB( data.segs.props(ii).BoundingBox ); + + if data.segs.score(ii) % score is 1 + data.segs.score(ii) = 0; % set to 0 + data.segs.segs_good(yy,xx) ... + = double(~~(data.segs.segs_good(yy,xx)... + - double(data.segs.segs_label(yy,xx)==ii))); + data.segs.segs_bad(yy,xx) = ... + double(~~(data.segs.segs_bad(yy,xx)... + +double(data.segs.segs_label(yy,xx)==ii))); + else + data.segs.score(ii) = 1; + data.segs.segs_good(yy,xx) = ... + double(~~(data.segs.segs_good(yy,xx)+... + double(data.segs.segs_label(yy,xx)==ii))); + data.segs.segs_bad(yy,xx) = ... + double(~~(data.segs.segs_bad(yy,xx)-... + double(data.segs.segs_label(yy,xx)==ii))); + end + + % updates cell mask + data.mask_cell = double((data.mask_bg - data.segs.segs_good - data.segs.segs_3n)>0); + data.regs.regs_label = bwlabel(data.mask_cell); + touch_list = [touch_list, ii]; + end + elseif im_flag == 2 + tmp = tmp(26-x(2)+rrind,26-x(1)+ccind).*data.mask_cell(rrind,ccind); + try + [~,ind] = max( tmp(:) ); + catch ME + printError(ME); + end + + [sub1, sub2] = ind2sub( pointSize, ind ); + ii = data.regs.regs_label(sub1-1+rmin,sub2-1+cmin); + plot( sub2-1+cmin, sub1-1+rmin, 'g.' ); + + if ii + data.regs.score(ii) = ~data.regs.score(ii); + end + end + + + elseif FLAGS.whichButton == FLAGS.RemoveCellRadioButtonFlag + %% Remove cell option + + ii = data.regs.regs_label(x(2),x(1)); + + if ii + data.mask_bg(data.regs.regs_label==ii) = 0; + touch_list = [touch_list, ii]; + + end + intDoUpdate + + + elseif FLAGS.whichButton == FLAGS.BackgroundRadioButtonFlag + %% Background option + + data.mask_bg(x(2),x(1)) = false; + intDoUpdate + + elseif FLAGS.whichButton == FLAGS.CellMaskRadioButtonFlag + %% Cell Mask option + + data.mask_bg(x(2),x(1)) = true; + intDoUpdate + end + + +end + +% updates cell mask + function intDoUpdate + ws = data.segs.segs_good + data.segs.segs_3n + data.segs.segs_bad; + data_p = defineGoodSegs(data, ws, FLAGS.CONST, true ); + + data = intMapEdges( data_p, data ); + + data.mask_cell = double((data.mask_bg - data.segs.segs_good - data.segs.segs_3n)>0); + data.regs.regs_label = bwlabel(data.mask_cell); + + + end +end - [~,ind] = max( tmp(:) ); - % indices in point image for max / closest segment - [sub1, sub2] = ind2sub( pointSize, ind ); - % closest segments id - ii = data.segs.segs_label(rmin+sub1-1,cmin+sub2-1); - if ii ~=0 +function data = intMapEdges( data_p, data ) - % xx and yy are the segments coordinates - [xx,yy] = getBB( data.segs.props(ii).BoundingBox ); - if data.segs.score(ii) % score is 1 - data.segs.score(ii) = 0; % set to 0 - data.segs.segs_good(yy,xx) ... - = double(~~(data.segs.segs_good(yy,xx)... - - double(data.segs.segs_label(yy,xx)==ii))); - data.segs.segs_bad(yy,xx) = ... - double(~~(data.segs.segs_bad(yy,xx)... - +double(data.segs.segs_label(yy,xx)==ii))); - else - data.segs.score(ii) = 1; - data.segs.segs_good(yy,xx) = ... - double(~~(data.segs.segs_good(yy,xx)+... - double(data.segs.segs_label(yy,xx)==ii))); - data.segs.segs_bad(yy,xx) = ... - double(~~(data.segs.segs_bad(yy,xx)-... - double(data.segs.segs_label(yy,xx)==ii))); - end +ns = numel( data_p.segs.score ); - % updates cell mask - data.mask_cell = double((data.mask_bg - data.segs.segs_good - data.segs.segs_3n)>0); - data.regs.regs_label = bwlabel(data.mask_cell); - touch_list = [touch_list, ii]; - end - elseif im_flag == 2 - tmp = tmp(26-x(2)+rrind,26-x(1)+ccind).*data.mask_cell(rrind,ccind); - try - [~,ind] = max( tmp(:) ); - catch ME - printError(ME); - end +for ii = 1:ns + + ind = unique(data.segs.segs_label( data_p.segs.segs_label==ii )); + ind = ind(logical(ind)); + + if ~isempty( ind ) + data_p.segs.score(ii) = data.segs.score(ind(1)); + end +end - [sub1, sub2] = ind2sub( pointSize, ind ); - ii = data.regs.regs_label(sub1-1+rmin,sub2-1+cmin); - plot( sub2-1+cmin, sub1-1+rmin, 'g.' ); +data = data_p; - if ii - data.regs.score(ii) = ~data.regs.score(ii); - end - end end \ No newline at end of file diff --git a/viz/editSegmentsGui.fig b/viz/editSegmentsGui.fig index 2971dbaf5073e2d00307d210d6224f1310746876..bfa79f5f4166c5e5e52c02ada49e8032467fd7b2 100644 GIT binary patch literal 46607 zcma&NWmFu&)-@a~1W2&pE&+nOTL|vK-QC?Cg1bYI!6mr6yAJL?xD7t&@aEq8eE+{% zyL(lyT79Z*SJgTDw7iI_oXAfyP9_#Ic@b4cb1Pdj2C`qaMy}=#&USocl5z@~B3v8{ zWTMVyMy_V2WDfRxWbzL7WHN5HWNhqYtXzC7oP6vYWNa*~JY@er3yau?{}mW%d9;5u zbkPqVJhRX7%)}K?N%1| z?ctQZ*r!!A6ifXki$xVNj7|(tX#SDF-38a5XxV6F*B(r7_7diD$p>G|=-RqvcZ$KI zNg7>ciUc#2(y7SOEo6Wu7Qaz^^l4imNtGn6c>Gfcz+GZ%;=fD=>~s{-pif z+e~opAdg>6!j>I1gO4Wn4M$3}zc5ebeo1FqbZ?giHxnft8dpmHSPvpZlZB*FLW6VC-xnUU`W}AxE9xU}dY7 z+UO3e%~@28JCUd&KJ}o)y`r!or0dhW-#i5hk0lnX`F?<8{hY7lVSXRb@v*#9`BWe7 zUjBml7y8Nkuw^&EXt#PIAkc*XK`eJKBcY3}bpOx~1>)HF4orgB4jb)A$((VjKrk2G zY;?%@$cG+Zb(ps3uXpru#~NZgKX%qL@_^a-XoJ@WfTed&$0x8^1A-SyaZqO{me;@; z?6YuAmOU}!AP-O9&|DwmbVkf^@Z|1tnFY~V@%ZyPM zFr7r7^xZQ;b8g(-JSy6ix1KDoABeLpNRTOSkjsc(jI_IDCLv`!IqytEk6Q`CjR9fY z`zt03n)M?wq{yT?Z!IILYYR3%M@r(0V~xAI0fuO-ugI;(zO|ZdM%y-i;tXEVMCB(o z6>gr%jpeop)fJ9)Br}A|g|V;h^DD>I+cH;MrysGj8Sf9}Qyc^V?00ZPK9gr{3^P8E zBCmNC2AV11^ca5xDyt6n8kon9?-(ueE|`-%-G;~cF8OI_kEzFCus8<+&A%t$wJhEs zt!wb`2S+6mB*xXW)o^Ho>jP8dy91%QVkUeIOt(8sst=Is&^wKEZq!R53>v4P%T_hl zDRri_OpQMdsmCxO{fj=)#B?MvoFiH}KQ^R6uuD<^G|=x7%(7sWtzl{4SS6(IVy= zCO+My+Nt4YX3`5oP%Catnaa9m=puFeHlkzs>D*0dA{kh_tI=CJZ6S)d)Y&F?rjePq z{mu$Fd4Crd;)vJ?%9BZwZZtqwBrLvjvk|_(0v*5EM`Or||E;aSk9?CV83NwSK{*{E;_3YvMTaVyXEe#tjN-2&xp)QpkB7 zYW)b`D9IU_Pvv(mWvYG#?z~`WWl>=1yn5u2=VM!bi8_ILv7fMlO>OeGt+3jDg{4+y zD)Gb@{veaP%k@pkPL zJzY(={?%aJNC5(=ht9j13#+?~6kzy$#u>!xLGI;NJT}Wc?lJ%MXn@MS2@DB<`S9WW z{an*SQ{{*NEsrb@yP{w@C|X91h$l+?01<(4Iyz5E4}FYPOce9y3R6)W->(|Cd`;a? z5pb1Jdxn(k@aPCiT+*6-!6`az54pb$6Dg$YfPR;x{)*Es(=R#OVB&4BZ3sW_DHd`u zn%7-HW9*i*mbg$U1z?$+>Mwu%8@`udtiVFYZh6;;N?|RxebM&;mEqiWSf9T|MFj;n zG(LLQs@tIQ@!#>gQ|jn|VV~=!G2Q-4*Bz{Q@;90;AOU3DOUmqOcY z*;J!KM0~TaAy}sC9h4YOkDq|ooHg+1g&4s;wtJFj)&2+!f}#A0klvtls=cOT8^h<@5npBkFXH@rWVPZ<3pX17`X?Qx_eCo6y- z#z{oInlJI1rFF}jiCh2`4R6@xhJdtBH07bG1ngHSSbhC{ker~iQ%wl)<56tJD$iO>IDF8y6TqD-djjq-*9nsqQGKw z<8a5bzZ^YP6vrXD(lf4<29X!%MxQLIPWS95*m!2cU)AZ4PVkUW(5jdnl6{8_4vIqB z&whp)o-j6DwnjW974Bd&clVXTbYbANHqFHu6>tx)~bdLF=__8IBh}B|~(L z$ee*@CO)=OWbv%hgmUdr9|n-kWcSa``lEBaZl#D=?26@w4oWc{&IlGe_HVVm3*9e!nwi!!27S2F03j)BJAQ4C}nn>z4%3dvLaytESXqUsOg&4sh86wlCW zaf%1(ko)VLCEan!L=b_lQW*uvm6JZ&LB}N`b^zHx23^L%fzsEcGF5V44Z-o6o3DL= z-j?ctZFqHO>73hOl~_h`#*xO`irI60XY<}-0{8}5;eg?)AwwvELlv)E##-e8#&t7l zRkh2Ar(l`nl5iR>>NbVQ962R$%!F?DNY{`5$rziWQ-05mW6Ujqu@cW4EqD7>PoYnSMCw$%n2H?7zK;iMPq#mH%EsvKHn} z{)Obe?9Z+v`CU5Sid~nx&%gs8d=0ya!nsDcxmpDn&SBZOL46f0t7pB-%QYsTRDnbL zyS=L_;L9{vezja(HFgu1CLvWlmMWg}Fh`$u7;|8((F#gYDGcK1-rH z>2_J27bW9}FC?1{)eCZdA@_h!L6*|6P*uUd+`K2dX^_o-=xQpoGDOPWQ`Mwl?h-Tq zG5IAt9oV*+o-R9bA9>^6_r>Pdxf8&((#v0K$V;}?(VIl-js1pTnL^rofhWAwq9%~iS ze4DC}^IUCu?n^wY)p4DG{1FE)GhC^09O)%End-;_G`p18aFPa_oz_fKLFDx| zl4aSY$2oD^Ysh^rqjxP<%}rW3Wx#7z=|i{t{u!VJ5?#7@gy=)MH6`N z5Ovji_?Ynlg6rJD+&7;tp&etIp2>fik!pDO1c=qylXYYYC^3C_RlZy9#@@?Orh}Az z{xblq1|;ZHLn?^=CO;hGn5Kq+@NF#a=ITqMYST@(nQ?dTH~anG$p^3a&FcWPSQDV~VLoTv%8K%^GO}P> zdCuAwTW8gTqK}dLo9Wd}8B7(?+Fsdi32hLY9Dyxw%TWRgL1=3C=IN|@WG9fzSGSvX z$IahizmB&aQqYxhd8^u?lDqbvSd!AKGUtSAcceO*O-|hA-1dV+Bht5<=q`3niK>TL z!aU4%0m^tydil$NF30nNwGl{fQc9^G-ub8GTg@$>VwUlO=++&{jrm;ycSCrmmf*hM zqG+xYnpcC*=u5lgld+f*lYvkQ5O8{R4V?-rV}~lgU}_;L!lIQMfP;+Sv0IKN%62B|7TBtD?nW zp4Gcs&kLVELbkDn86uk?E8zq}SNKeqJa-8(m_j4j9Xca&(72zQHIN@C^^=qQVy+DR z)z#As{pida_Su&zy3eKXI}yqXLoVho+5X6>Vwsn41nE3B&5MIV^yU3x zS0+Qf>uu7do9U7tI{b1${h4EX%w{4lbcN79*kSkO@!w)u+l07POh-+bJxblCSxuYH zXfeT8$TsQqwkzAvT+k~ZySl-gtqnbK@a2oGc80k1*vpQNHy(J=dn1DlqnfIWXFR8) zn#K$_ZC=7o8#AZPIvOlDhu4uF$a7@Nb@@bB{T1HoOW5Lml)GGoFF`H{&sOQZxc^`lL|v)b5E_P#C@{lp_$m6JzV>HZ z2or&OEhzK`U71CzG2GkwA0+<^dBLWV+&{&o<|pM%hC9FZD@q)Ysa4iRgM7U$4F9fn zz|q2zw103O{OpIu8{u|^&l~!u zR!Ud~70R-Nbrc74DgFnzBXUzi^Wb2eHN`W z(69l~XcWKxx<19%-!#1HRDGWqUYAo-vcB$NdsxEm3`@)b6xfM^KeKgv?;WW*$=o2HLxE-iiZ7pk0jwW3g@9IaS)OhMvz{x8)P*q*4lWJ9RSmKrj6a7?{ z+CzncP+9u3^@hA2>_nJ1@c=gZc;|G&F-@F4=z0gk2s4&+y8Gd)(+SVV*5H=upO2|dQ&_}3INIZ+qlGV|lmz@tBQ-*mqi&VQo4H~PqV@e6LdArJWsM{! z%1GeNtI+E{6B?%kGtXjeq~V4m6jbiF9zH6VXz*EYpvajk|M=&m4)7)+Ivo9I{IK`N z6hekQV(nZ-q}d&v<%es{kcA|-<)GKi=CLBhiTpJ~+m7^pHBy@~cx;g?(B)JabFZ6Y zi&iu75GRjGnXw1HWRg=J?MbM=`scq(xobE4rpQK{!S_W1#Zl@LexyKWD<4rdgErGUs4nA+nfKk z1wZtBB`mRt`i2Y@y{{$+F+_eYloH+O#csc;_96_SC%zxKxRv<0{69GT4><1@2)wQT zQLVgm>35KPBJk01Yyp!cbBzgkCXqgt9wwO|wuNbTvitSH8)N+mgrRkh zOtHs_(Dc{dgySHvlx)R{z)o{f-?Tr6GH5{V~L%_}PGK zD^(0b{otLL;9%HCt*?Uc1fsIQc%1ul*h2BuH|>qT%D-KQZCd(}^>9q)TfzHK%@^^@ zoStpUe!T0$7ZT&(U4}O`<<6+I{pH!pk7v`)r3VDoZ@oM9+h2y!A57vu{a8D#p*ez`%9%Fk>{K324s4OQH4Ag&e>5 z8wYfs4g{g-tJuFv0?&Rs>xKUA3_60Q7F1HN<({bj>TYe=VZsg>FA!882XfpIV3jMN|r0b6==l0zi zj~J6|(aR3D1U)8>#1C1^AH~Ixt&g!kP{LL;gMy1ya}QG_pX;|(nYbwP2+|4{-?9^( zA%TMYdD-+Jv(f3w1DSJNrn23Kis=c1%V${x-LnZBx&Gm0Ew7FFyQAC$3ne$k4U>vOo)v^`Wevcp_O2wnQOh7XI#&(a78fm0Dx9*g-OeZl(3$Run5I6YU_^ z)zP3a-5Ql{an%v?F7N6PU6hb+EBa*Dlq;)a_NUO?&=u6r`zOa}a*GkD^@@X>`iQ?) zk#mBvZAzF6P!{bkE7-Y~{O%q8kFT5m_=@#!BK#tbKSMcDe5J z)#kHd2q2L(Ms5k1a>Yv_i6g&8F{tR8h~$c!<0)K&Q~eJN>8MuS$wfaD(&wd34qzoQ zkqL!GTK&cV;PqQ$LGZ|CBkHel%tXUJZQn=*5E<{2Z_(i1eJ1F~d=uJDzz9@pApi4K zhB~2Q29D@^olQZ{S3k8ongU@NKuwVezn^(25D=ZnEJg(`3~SNeksl$)o)zc5s7`y- zns}`G2o26q8FRsY_|}~RauW-neGV^rdsKzm?S<1_){|D5E-=^=*XZpuF`_c#n%B?? zt&fjbaK}054V-BXL4L*QMKF`$c6{^m&${g>^YUJs0eU^qV@OL=XTMl_sFQ?IcAxW% zj6%#-wav4CV|r#ioWlZ}x3r^u0$g8;Ob*UQYC;cA%zzcrLYCaw%UWl!#Ib3)h-r1g z+6ej+N!zXO?Ia9yz>eCui84xhst#vgk^xPBlkLM-rsucWp{G`?QX+$*fbu^pZ<(M~ z?9Nvo4n<;~>|_rP8t_Vjhr!KoNLPm)aPdkX%X7ZYC9)s~PqZ0^;?etq!p`0Ho8R9v z4?Dg0(nr3ktj-&cJlliz#GLenYxUn5)1X(=LqEIk^FmUw2I!kDu3jcyDhpg8Dw3VDD8pn_)My=LtTi{kKqK>arNH6rV#Sv5o_xzWX-1NEdLK*nx{DB1Rdb& z*gc-aT9E&pyasdgRIbk$RQ_*@^T1&t_-cUffTUj9_C+($b)7lH%0(WxkVWj)T5q+GK{6e0lV-R`G%Y`tHz_SHIzzhoEID6_Q$H8s z9&Qo)!P&vCx@94G#>SwZrjEwh~XAF}=fx2c78b89rnEb_`ZWH#Xc*f{l1;==+oY9yY`T0UxvmW1-zS2u9!sSc0<^I5{zW@ zgFllzom*|CdjSsL;K8AmzH~{kmXi^~N3EtVg+IYRqqbb-YUn#sfYac6{;HD+>U$T_ zK@>QN`Pay!Th@T5{I{wvJ2j&|kq}9t6`%eO9^*S;o1vcWhwc-ocd5W%FPf7B6K}8H znM+M4uE3}UR*vaZtS*X(8d35Z^3qs5V3MV8_G27!=_)yBGO6ZwauQj#^qxv#oZyL< zwv^-9{&khou%%7?Bc{v@&l^6gAe;b_M7WK1E>@7X@bE+yXt0S?XcR5-EYB@y>Fg^o z9;f+9$fomla_G)EFe#viB!+DobVVYmBsur0VC5hBsvihjH$pcQyPDjce(ViP{on?W*pqkA8h(oXkFc z*b(`AG;-kwO+VC_ygxm85uUyCCI?GjmU0ihmEWBF1{OZ#vpo#(AmB z%(KUfJUo%6{SZF}A0Q4GF(o-%b;}@i$kn#~LC$*CYh)4UE{`9o`jfJ_Z3I^)@5N#J zoRfW}F$5;fK)=!X#Qmp|K7P-?DyaZ4D7ooJfHo-_Seu*`SV{?Vf$TYpUNG`V`_3;;H zKm!^$e#91*#QB_eOKT*xZSHf;)<8|Qq+a(p%T3VYVB7_HqGNY71JP!ZgQ)olfMRNLaRR^|XbLK27U2_C%M6zmP333xpL;r{aLp!YbVuD6eQd7}|EGeb5zRa? z#scHM2AJ`3+jHeJ17oe6Cas@;KIFw(F&Z)i3(x~Q`ED7Wp=)Rd4S;}~3qUboTw@&= zaBX$jQGe0R;5iv1bdl<}CsuF|%v`DSk}3&5Q%M@gLG$vEjl1})! zhdt3(t50;V5L4$jp8Fo$a(N4=V}=i}D^Ba{R}}%v_5@B5tmW90r_PF9I@2ELqw|69 zt+E}VmMuop)7jSmFk?i!QtbFJJ&aJmG&Yiv%oD@eB36xNFY2g0sn?c}qvb@U1+S(yujK z@;Qprdfo6~Ogmxd6oa=QW4mUDmi!^@-uY zfyE579&7}&pBl0lp`vW~_J}_luZzuZcO6#!<~#aQ3sypnlV%4ae)j6!Ksn8j7TvgW zKWD%Dp#QDHtzVpuAC=%H5bj*rq3z_ZnK=3T+jGdAe`m(92_P}UTp{@Yc5 z%TnU4MKct?%T!I+t%Zcq->3~LT5OPA!!X0I+WFVxTOSGD`zGV+lJH|q9Kygv&{3p% zfRrzh;Vy!d5z}`X>yCod2>#mEbArR_4Wz4ANz6l|g$%^rgYTcmCtX%zmM$eh8`(o3|Mf)dUlEpYM)(L|KK3pG2P!Bg1NLgNQ`5j$+-IHBtP| z8^P5oN`)I?LCx{vUxwUs7viXQ#GbU!Qlzw~Y|GF)MHU;V}4n;+?V)M(r_*r;+eSVKP@2 z-WT4jN@Lx%yUjoR3qKYv-CLlfPP#CvrJr?;#U@&_{Asu43Oex^O24{0&2{n#O_RUJ z-uAl=lPuAvCZ2@*wwiqC!<%Ew?xf>))ALe$q6Ci@!MVYFLQZBv`dH3eHenN8*sXOd z{iW1!e6RFO$&2F7@^s=`nCfK2`Jpl6a9<1Q zJvbq$vWZE)bMwP!|J%Lt6lZG1A90zfG%Emy?H-}qCO36;@gtz^h}&$5S{vw~r-aVn z&`l}oY4ogM>DF$bCQxNr+>YY1hGqP$V9RZmto{15AY0OzM0$V{NZ^l<9VDqrofswM zOmZ?sX}!_3lUO8RH#&o;DG$DXBqblq?NZ_1Sga%z+Dc#k!Y#V#h&B%O6-KsMv&fv> z)_}fU6mti(zxh;nJDoH@{5PAo?4a9Mard+HHSbqTh=3zE_;HZ%&y&4(m49girE%{> z1#$pVjhXwG?impwpE2UC+oUV1|mpoFz}}mVHY?z~_gF zf0#g{N@5!mwsH$7@8A0bguhNb+uUuD_vX^^ISz615Hmnud@G1y>nVP&)~ydr$@en`OOHICGVFFddTAuC4?%~&6` zeiBR7&wsrwrHQk!h>zjU;0)@Z@mjUy+A;^c6bn@xh#nx;*4Kb7pdYD$Tp0kd z+F&ghpJvb52Xguk_{-cFpt{&jWMZan_B2A;Y^~M^qBM~S-)G(Kc*(@*Ribg+HdMv5 zt5FQ$9}^jAKXr0gB-wykW;av})#Ka8mgg=6-V5}&UIF!8$zU_?n+Spzg`>oDBiwsI ze3tXy>Ju%={yp#)7cbxa*QT91SBW^456bRIBriV2v9$#dgvnOj^(-G79DiufuqMM! zFRZQ+gzn9iN4XuJt|`8M*{qvp4sd*1-)Ee-k1rEHk1NOgj9+F6Qy}l<#-4MmEZ=20*`EOso1O5zcBXfTVwm&HGsMxr(3Frj> zLg@6iXX72)r$`QIkMt>cMOAe8KNFn~z>+V^dJcrPCl% z#Vvy_8#5uTj(gL6h18I+wf($sLDbWT5U%!=5IPJHxrBbGeP+nua7N8#v{qfCO;70> zVj&4G=MjZl$pt)9RMdN(5smBo0YWaI=3*z|A`UIk9uy;&%1+1n4p@cd2ft@>=g68X zB{CK6N{dNJ`eUUFApAFKsG(=6D~^>bKbO%MSpr>v_Z^Mq2r{fM7p~AWzZKP)nMo)T z5z{pHpvkhj+-lq6&vG@nR`Q)k%omE>kp=jo%i3Zikp2!vQ`1HcHl80G{DesmMIOOt z;b9KB+|1fC<^F>G!2h|y;&L*R-C}yum%cUf1KI=|oope4{NIm6zr3Z=KB~d}F*`{) zm;xa>_!~2VD4885U;FKMpGJfQy=TaloyV`D2odin zQ5*rz{XWibaDGV=OR)cAYMfm%r|h9%uDLwR`sc90HG*ImPnu0A1LNoADLQKmkMtzb z1ugq*@;FOb)AgnOg#|}1&^#WH_cb|dl>^B0SJ3jEW5fNf6-^I>>hm00RGgSU56bh% ztACC4;vUEXR*?u3C|L;wZsoo|x#XO!ldEZX3mLQiX%^#3+bPLA5|ewmh)srUT@Oni zxo}=@f}KRJz5CfwUAJAU=g>U#FZT5<)%X@ZIt_kf)pQOnx?FBgD2@BL0^twG|A=qy zGGIm%eEC-0w!C>BWnuwhpWWzMR9*FPl~4ORm&H!~^;zHX{bLMDRwivrE@PX%WZS?7 zq^^4g`I&<~iHp$}i0GOD%%s7b;W1UAu!M3OW)Lh?Ra`LaVE-X*DhC~tz@?eh!o%Q( z9hhn1DE9cxdLZY?pWs+fGx*ZHc+aqtxF)Y#W%}Q8WIEI=Oy|YujUVE>;JTxFod?>B zJ`B4(r~?7rKF51#+>h}H&;=EcA}6#F@LKN4V*Pp|bXAI@3Q~L-1NhFj$q19cLtSg! z$nOlVOPim&2?Cx;Z)tj7KOAoH{v;yqMGO@d^tnF+;ch*Z4FjxS%Z;I~OJ6l+JSG7< zhP`cNQG$z)^X{+GJ;ncefV`ft0(oZq=Gv@=djejv7FRyC!{D%fp^AnpS)g=NakGeREwY z>Nr@@c2o#++f*?32DjN2U}Q!!cPShYO@LUu1wuS8^hd{7d(~JD5N@M2!)D%S{bq(A zJ`yk8rl)=e-nvd*N*p^XehmW))H5Au2+)6!^*m!T#0TcURqi=-!@mZ##Jy6PAvkQn zFsPr8XmH~eRqi+n8)Edh87Yh-LtptuF}r<{YGb(hn~N%UZyn&Es<%}jdf}i-?AOhU zSH9dV-b&+Zm{CljG*Q;+3*x|v$8ob>aOjg;6{zJ3!O(5Q|MJoVK^gfo47k+yi*c43q{=Wn~tyRSo4XpP;YdaI{mZ+#Dj{9P(7#XU(jw#SXW_X^w&o{^!XZ zdLS|>9KQT$M0P_o?7M;0Wh#*g|Ry1Ck9|!&xIn7-hvMu<{8*E@Q ze)>no9L0@F!1%emKyF5=?)>xtEk~%=wpa~N!s55U+Lf%OSiBtiWqhm6<|y-C)k|bX ztepID@qMSq>SY36pNLvbwJ*)gx9bsP4D;&ZGo*hsS5u|d^o#r47 z7_GJ!X}BqbOxc^W-wR?smRl$=v;QzV2sS^>bqAajUm^y7Jk7oiT>Vjegg^u+^pd;1 zK(8_oOFqCw5K@EYQ;49bLDi;hOR|$}&57G?;VB^l+2?uP{vs8p!dE7W&3X0<*AY|| zm+I{6Co*=}?0bl7DE={S0y`rIbbXG(B!lk*os#rP2qxQ185&X3B&N+3*GY}Le&z#s z>+v!4cZe~#n~J0RSV4-h!jtUngFbozMVN1U;lk6bT`BEm2<&->9(N8>lcIR>lugmC zhER!~696P*^(WqPZM6GufAEHo`L7e5rg+a12c03?;=Q+EGBtfn_>?zLI6{xg?AY6+ z;lksWob<`{0L-6Rf0j|YnN2^c61l#36D9P7PqQChXoSyHj|X*W-WYzmxNB5IFWL$Z zmY8_Bj(H9DEqn>tu2DtSE<2SJA-w;+Gk=)6@&IW^&{xa7L|lV;U{?F|nvzRxnZNkW zQsc?d5*lwudPW>WnGy~;h8!b?BEnatH0NYoq}1!ql-<~Gd9=yhUWX69#=OS+NBF`D z&yb8l&@7M%7jO3z(^$K-bL)hd#j+q|Xhhp1F){3l-FaG7131*k))E(z43VuGuUUtlNW^>jz(vsskrJW#I&xSz(;TNt3Po z8|9#TUn8|Gz*=9W${P-dYVCc(Uf=Xtm89Quo@z^&S(r7qR=@8x>|SNfT7(cA8)a?5 zzq~<~CCZ5;*dR6h20;D5u9NzDb-Ospm0FsI_Kwb7@qhuWnZ{yYU+_k}SJb1jEcU?p z1XVwS@5&zMPtOz?7gp-!5PlyJI`m7`Xf9#(B3*gUm}Q&nCP6&M#ZatxP$Jp;;#2qS z2K@%^VL<%?gnvMWYKdmXyn&X8nD}17j1p|UZNDURXqOVbod~H#4fMMc9Yneab24m# zJ_;{kKewaai~7w@NANF+@{soOjaK?e-DRcH!^4=NoheH-qCFtudGO#mU0`oCbfQKr zF&9V+PSdmi%(jZJuY&={D^7j#6QI7o*}OVe(c|>&4xeh~&)DIG=QF2hGFnt$;!;U( z50U)~wVEO){}}my?(BK%f8}Yv;AluIna14s<~482sr*{> z9`))>g!x{*5;H;du}O+R(RcD+4|LASs@qtEN~=n)CLVJNccE{HHI3SAi$!3 z3Aaw_CdGZuOx+~xczqf2xSxzeKF3;KJ@8G$x#jYb9`_nVN}7YTktixVU!bBlgrnNdu7dx#XM8YjCC zd~bp&A{>{M)-y^2Ox&9^2{3neKn3SuGS?f>X?V14BM3eH8>$4H&`-iVxJxN>SYHl0 zbz4OQ&~MGZx#2kt?9wTZ3dd6}LzwY?>K1gXzh?tqbJ`*h|I$k{)p90e_rH&6&($R4 zh&%s1thr<>muz^S4eb2o(Lr(&dgDNkUOF0bZZIwSAo*K%&7uGT{xnLnhJT%$ZP>9M z(c1r}k=*&~YXaJEm=x2MFu9x61MuLKT`hv}m%ZSR0 z%mSB8Xw)-)0Rh*aY^WR6E8x=So^_7)kQ_imgcv^pO7Y)^5y%vEjl8Lsr%ymV$(|*N zU+W%O^1eaG)V4?qDYBQc34pT-8L}!$lODmSs(OFJy!o}y>IZTz(i_Zo)3a_mfpH7I zz@)_*;h&JcxVn#H9}OTK$wHB?`m=0R>2$?Ac55OnOXrMx%9PLuz}3De)bf++$Y|-* zU+@pOUNS3^%ogq3GMxZ|uxV;&x@)eW!;sQ!fh3Ld7d7l}Gy?uIe+K!`$}}2BF8=+% zL`Gt??3*3#ImA13&nq;Y^`Dml1gcT$J8kbmEe?|eu9hg~1f56|)^}ZQcFLWP66v6-`l5=r-Zk6Phi|X!~b&q{@P_m zxWDTjy7Qn}L!XHDZ?|Wq`d>*Y#D&p3w-2ADwr|@;yb|7Aay>UZi7hXL-@Eg37YN;J zKv1UuuWVkhuj1bhFN{d&7L`sew{MS8fG@Mz1ZV(^*m=o7RiwZ|Ot!h~i>91~Ypp(g zd!l!g$d&O&t{s*}A<5oKAFWPXNaJwhn|<#DZIL-o%LSIRPK-mrYbg`i8?1}Yd_r0+ z&oE&7X?c&Q`<7u2x#2L$K8gotJ2QR*=SZ$#FXNW)ga$)WyZ7C}@%8)3pF5J=R=K zaxb_&1_Wh20zco1EKX@?ODM$iy(LS3pHc~yZlxgIml#d3ha9wAo3Liag!S);7XPr| zxLmqeZOK0l!R#_#NY!jUy}HKP)Q2K0>XDL9W0eC`^*zc~EZNQ&KB~;JowB=YH9|rQ z7@_-ynYKZ*wHAQx1UQX7*0?8((;kY&Qs?qMz;g=P*HQlC@`DTNUNcai)&Kcdx!5}$986B zEXW(cP(AV#InpVG)||`=eu7%SpUqnQ#X^iNWQ#AHheCk!BT~yjc9j={ryiX|Yw;j# z$s+&qr*zN^f#Sc4RufO-p}37tWE|z1JEfLS2;8;EtqkIx3Nb*+Yl#5uJz&gQknH%~ zf`2dc5bNLW{7YK|js087h2;g_UI={@Tpy%IzAyr}(g5R;WGNw}6?ADZ?J<>TJ&0mc zeMCW0CR0yAa>Yz6vEelFzS~S7Cb$i-tEC{R#r|qPS~Vr1YXmj9fUKDWJ{oG`i!R*e zEGNab=FJ%d@z7lSGX%om$INwjQ6}8`c-Ag6h@ke2{B7Uhj7Myo8|W|%5soi?@Qb{y z;_9LC5h{O*Z3GOy2*lV64sHqc2t&6S-rvG5OxIrs{~ORz*OMbs!|I*@7;69KZj7X& zmX9v~N#1`s_i$qoUH8R?_IaUl;IfvVZPM1mLMu((#Q5*vV41@VM`BSd@K5t=WI3A9 zV_szU0$@-Ig`wjIMSWvG?5sXucIj57n=*X~#;MzH!2bu^HnX4x%BP)3VTTXqY(j|T zkJZr`AILjd8<0QkL8VE_-u%=-;;~@cBb8}cAZeH4_igW~1|4VT-;KSLG*hC~KR&&L zy#~&}0RYn#9z+ZA>H*`|Cu?U1ieR1vPxW!tH@6r04>J`nA4E1GG^v$-^YEW`r_j`4 zL^jUuVGe6m=l^v+ibfxZuhwIIra;AQUjrNLdH(R-5S6fI2^O}sWf3J~2;%=4u4G<6 z{g1Ct4=MVQPp2mqOL)z8J5t6FJx(xw=iM9IPPP4O>7Gx4IsCu&Hpb5x!*eZ1Fdl4M z2E`muxr9GpO5w#1B~Gnw_>Q>moZavlU|rV^-ZTJk-pnBJ34fP1uoOL4pmFiWq+Ntsnm+Ob z@!S>{bU3SVdUEAo~WL0BxH4LB5SFR>@KE8e~ZlcK*t z#hNo}p4;Ho;7-6YXR^Jp)TCjg=*mnJiHZosB(X7m&BIcj3P|h^P+I7b$NJVXI`KNX ztd-ZVqjb)11x~}}LVsaKW(WBp=YB<(5AT)E)$DoAX>=c(LPBl3JkrwY5x;Z%hE&$w z6{PCn+_^br58?KrlE%^&1330e2yu02Nf@_mN!u6&`D8N5E?WAe-s@~sj)+QfwCg7D z&I;HXeWPyAb*~QK7i08N4a9^*9y29={e+?Y@FX27IEyg52`5{q*}9!X{5pP{5c5vO-Ox!TaL0lPbZr+`T04c*GJUM3oQ*AGlFII#GYM<&437O4 zxj6R8ebkUGpaL0ShAb4Re{$bS?=?Gom0C&&%(b@tE1;t1HaKe82L6Hs{anU2EZXk= zg|(wE`|goG_Jo*C=)17gO~?KbfrO*)9wOlQ@}U)P{Xv72hL^Wb=A*V=%)VG%tB{fw zkQbpw4B|>$X3ev2d*&P6Bptr0zaqq+eT2L;Eqzg0i0BHGX7)JF%c45!lL2RjgeTjg z@^=y?F6f9OjK6l9!z*1uBJ{m!{$AkPISVh?|1#J3i)Zmcu{3LaEfUHhGp&2(ydjz*uO%-E7|4V&r(nZ_Kb0yvu$>*rci1!%$eREit{4Z9GLb+a3T zRhjMcL;05J0yoseae`l9x3WcM-m7Lr!R&k0f!riZ!TTwY_i18T=>jy%3(5cH7ytak zr8{xcB631Ct`G}jUy4%8)sJ7(TS!mAE0G%h5_g}tK zga3+e7wRH5|BtHoj%woh!p5ZrL_t(UdQ(uOiu3>i0wTRh4;`dPZy`WLK#<;h5osby z5Rl$Mkls5aAiX9KLLh`rP;dgGBK|uV(&D6t^4L{wi`F8KArkBo-b{5??La>L!Yje z_sP9DS=2@p>ftYN+)9x{!|HIZt|rUo2=gk-n}B=lufIQ7>~8IfM$k`ySpR)63C0Sx zgZmSmN8X>42%j}uiOtR%tuzNaADjBlQp{u3Wz#Gb?pUOhPfCWic;&Fumk&$#Vy%`K zqUN)+7X3c}rq11nP@4q@))wj)jYNYOFv#v5Q^F?C@H;yeN#a(}a!A0{;5T^QmXfyY zU|}6PNB3{F%W%H7T*$Q zvTj6gAf-c@3xOq?r-^eZZ+;?==b#-aO&Qn9$59Z0XxLqnw#6jh-`~BxwWM|Kf4H4XC#=BG4uxP3+|R&kD2BiN-FRU(-1_l8DJm$n zzZG;7mLDZT+?fmn(|EnJ8}O97t8~_9clRHa20d4JQ%PQy-B!D?T?b#&qXchF@~lmX zH%oLHu1!B>FP16;r{#95`VHDxnL|3t78ri7EM3Q;;mdIX1KmB2M=eDmRWr8+DHR%Z zfP1s4!eYiqKJm&3g`NPg(b z^W5Dc{TJtp2qg0%DYlgIU*>O8MqGT?Oii}9v3y3)^?=3tP@KDYdBhxl?g z<4K^Cx5wBSv1zU&XKc0b$MoULD`Kk#ttA$ZoW*4RJa{-Q9F9`k{*uSH(MA(t(f;Ny zP8kiCdy$)ZWt#CssHTm2MD^)Xi}1z@cR4kWtCDs_^K4m6O2HE;7r#Hz$xlZdUp$r+ ztGX$;^NedZOZqX|5vH6%o&G{k^MQTtAxvGy!3;s7yUUmI%Pp6IJ3swigwnWcQ<4A0 zYpuGsmK*y&#N-RUHK!zpWk^)1q^dip0bb>mU6Qcu(gtFZU$KO2o>a1k7^t!dLPtaH?_ z(G;i4;v#4Bm^!Q{t3IR668Y3NZg{=emHM5psf2l{qxTY}Gw*ZNL6Sr3+}how0TN^X zCv-ha1>^gNI`2l!c9h?h3tKRLFQkdIZBetMN~hL|@h)eU{894w(Y`u~SBca!<`7;? znZbN@ZhpoM3|Zvt-MOO7j{u!lGPciIuXx5J?p#o|^y^DLV|jlY;rN-mGR|pTLL-~> z4B-1CfW*Z_?p)}Jiz3}DfA~4IyUiD;sWiIZz!dq~9F z;lo5-y5&o%ks$I{b0}g}h{#y>el4fSMNvPUiP>q^L1+6;d`RpFB!wX|_C6iNozjPI z^?90;ri7WpP{8-uh;p9jCsalvu5PKU5~2c>Uq*{^j zl)Ps7nWlVD-}@r!$&g`B)#T%(nQVP-*I2x1_KioyG1B&|<3-BY00Z9&R`ic?`I_`n zAE!3>so8UHeBK(hwFxq9U}&k#v7j7SG_O*4S1@@@k5)~s?E5;29wM@*i1O>K#1Nsd-mjniy(rM1|M$L|^V=sk(zA6Ve{1Y-MOhx=S}Pu&ROqT{2pHq!?m~> z23$7Zx`J}P`W|>hp|3?smR+k>2nBAsxTp86rxm%paARnFs9(|FE%TL3hz1&NJy~ub z$TasT(8*?pKK;L7gXm>5)mL3NQfLhxw`LVLOm>hm4!JD-QdQmFf>Rxsck+VgaFXm%2A(+Go zX^_}SDs8Ni(6DAXZQ7tB%_pgPz-X7*=qdP6OgAE;obR`MhtMPFhwze-w8Yw{Q!DX9 zNo=jck1)nE@3-#Wt*eh^vyR?q^18e&@@K^o`*?9Y9Hqz%G2El6%jCPU@XYp+{mVyZ zSjLPb4S5QgqhFNEdtp!8?zez6|Kf7qHoZx&xP6k^$)7t8v3NbXRb59KWbOUz`xhxU z{YInDrtAuqbcb);GY@W4H14Ol(Wo3sEI&nPagme_2i^7F%NxOdS07+1GZNobR;}Z2 za?Y7qv=(ph8biM^Zkq*(WU-^ZChs&X+ThREB3k%G+cHwB2-e-V%s*J2>^gVvNE zL?X53USG04&($O6o4AFa_yp?MEuEA%WdIzpcrql!>=%np+1&mW9@a~1CiDF!3!fm{ z-XB@9n}#+AqmOD~D9(WaX38YC%?zK@r7Ev}an!wmQfepCrr&ZJzwODcV4hZDt2F~R zxb>ZsUX)NavsS4+>6$S))UW?$#PSN_Su~)3@QGfr9G((1BXsVsMk4*2-ETvGBu%kZUj=0i4^)-nyN|Z`f{I~p} zcdtL1j!-Wf(SSCD*4(Jhzai}-wXL$gHfw72z9vSK0&jk{s`)GUV+^kD%d%oiIVT$( z4dNd@p#4%*oZP~*@MVfwcgZAL)%$`;>nODMz?6msUOs!G zfI-2?;&2^k6kazJxu)>)qO%A3@kEV|NHJI#enDVfg_7flw@|-IW#rjcr`Y?BM}yA6 z@2rkRPS78tU`luux^<5vVeq`%8uF)xTH59f4jR;(4~c;DS06a2Jm%>8rB4G;2jn-9=+ zKrl)`Wl|QHr#`u%|*2PSPqidz^ zS`oW$T8MJ7B8b956Q(()@sHCq!dS5c#*%`TTth!i_8Ptc$KNmj2(9laC?UwVLtuBJ%=EHqj zU-1_P(0NBY4OYBNuxMjt0yN z`)Q>AwF|+5*G&j-t;bZ%5z)i3?bYnb#lpVaXPny}st1arlK+(u)Cb_%*_FSoJ2biU z(zwj2fVw{jel!Z(%uf|t(ANCy*Zg)j#xjrfSRXG2sOX4DX_A$0-qduQ$f<-hFnex_UK(4HNRKIgB-T1!8U zF6SGnPz1J_r~-~p9i`>ybzGYgsLu|2o=dDDRIAoWiR}XG;Zm_CyyRYIcG(YmO^3Z5 zt3#m~Vx;&R8R}i_WTw0TJgsf^-2>UIO*j605A&u1h64!q&~&GKgoD`~IuR+kXuv}t z-?hj~jV{l(a3aT(=8BQwUuT#q0y_^5IN7az+*j$`Mrkg?Mkws(XF00DvKnm>Y;wPn zO5M9@hYR}k`D_3ZW4F)PhH9ReaLfx(&jKVE0sCaR+kpLI;|%hBvf80=OxTD+7p`+_ z(mKQ%O`3tDmaT@;53y6ria@wD!Xwz`TeC`Sx@p}&-IGtQ%?Ud==T(#CX6m`O?|e2& z%M})BN%2NgNEqw7w|8!B3TWN)w?^}4@Lrn%t5~b)SPV=G*Z>?os4l}6D#`G{8Lm$x zg{{H2H@7HmRh2Ch=|mtQ)wCj^me&FzsDX}PduXB21SYAKq&&{7{y}rld4Rii)zj`e zBrRdyXwtq0^8FjNx#4~vMzqp$8LNZuU7H$qr#Yi=^q~Gv&|Zs%n!4BXVO{0}qc?D5 zjvmDp!KCX;WY;d0<5_|&jH+C3MxU*@hAmh2>96dH_rkJ!0c~xu)bc;`;ETKOdppP$ zAXI1m+8)C4kY5M82W-7?y`ze@;vI;Ag!^ygGeR|T`v4!y)((iKMUbgPAr-&&V09IZ>GR89($yK0~53ii2Wf?H$?mC6I|aRBEmPZ=l{*o`@U+VpFlt^7m| zaQ*A3=^Xuh&T_f$T7h(0Ev~OcZe0choXOP8nmiZi0qI=sr+Nj8U$C4}+OsCMF~_jY zseWBwH1V~_jZSbim`Hb;+L{15unV4SOgz_N|7pSg(~|wY1^atT_QPdnX8Z)$R-rL& zUbe+4k)Eh*lEA<=FQ@Hm-QZ%YKy1bNr2rv~a*#o}bBwqD7=7Cxfa{spS-Y*8rpi}4 znC-+bf9N)>Z7%i)HYgRtKFhv(36PQ7Q$MiUISB7f2>mSbBI_Thdj>lxf<5poPfWr~ z70+rN(9d84-$ZG7szqoG2gay*#{8piddA-M^nXP?SIgwUSpB{wVV%}LLU4i*oJ0s7 zCInX$f_K$`-p9B~J=Zx<9*STKnRl@(L=J4+uJ%VRHUC&SFgD(idrG?;4LU6DU{6Yv$ zQ3En#H!)E?pr^BL*JJP0ECyDa1k2G0aIKRJ^9_;>{SCa~6Mb^Sk#3V@m}QVGOEe82 zVtfz-{LoYeWbcf-cYMQ<>H3!N^(_M)_Rio6;0Go{@C_fAYn(vKorCLowJFq%t&SJh zU4C+hL}m+WS=nU7;%*|C>R_n%iujv|$91q%7E<3}$?!EXz} zc^I%->l&*y`?Vseycu?A5A*~u(OG90us6oW0giar z!yw| ze}QQ=NTJ_jcky;>83jxWC+n=wf`Q>8OE`Zs8``6c>J`V6-V7RK>+55r^R-WD9%(Rdl^cX73K zf?wIhMhzi#G7(ln9Uaf46@m>wkFbQI15*}-X{)it$7ynQl_3@9M2!V8iBlJ*9uG|1 zT7zmI%3SQ;dc#{@h&+))C;Q-nHE2k4w>DB?e-H9rE&XA+Y^CABkH*Q}%2)jt+G9!o zml!vk>ELOk_V6XrlC<>r4tIp^GWDw@sy{{4TwT-*%fAh<8O-`v|GlFlA%lPbNq&QV z=dhz^xeHUn?u}N2h~b0Les9E3_CkPm%5VO2l6hjLWhccG4ZTek%IH-z&in+2L%f z@$Y}P+PniBy#wb)WJn6djk0hI2HsPW^ss#gPVLOS1;39f`zWc^nJcvMes^u;h6it8 zZD;On_}kSH(bk_B<^(Le4MD-!gU73Va=7v|rsv`bI+&&HFdXge1Aptm;OJi7@J1|P zZs{Sg&}kI1BZwH5!@RZL0tHoeqi3>cL>aTU(WesR+jb*hB8rHeS{`0MW%fAYIuq{# zD!lZ#Hv&FDq@os|Zn;@MJcKXNAlt&X;j;hWvTJbJb$H7vyyYLfg<8J6EwVKP*m|)l zc*BD$Ft&4vvGwYfNAPNU12Y}OOYY!L;QPhWv%XZzVfxcDcKD9JwPOVBaO`~8 zgc6Kj4iq0|Y=rvG42q95USFLFR0Oz0v>M2@;y(r`ppNL^WSz3NTc=p&!%VMV22=rC zU&wse*s>C71zrLkd?kw=5BsyzdDqwasZ6z-_j} zWjzB{ZEXNT$G)rjzN^oDS8?ObP_pF?`Xhv4e@G@$GHUi15|Myl={k-ghg%4pZrx0j zH15u=TpgJ~Z7~P>2(~t9cS2&5uy5&*?^oN{S_3{{wNY>icnizUMTpWEGHRQy6AfT1 zP`EY55w@M!jqYE)SVvt_2NE6uq2H6`#%?bcCO%u z{k0IfR%AGq3>8WRPwd2dk+q<*t7!_0X{^4`SjjY_#G6sKn^A(zD7I#lTyymU%X1RT z^Iyp=t9aSfav4j{->XhKG@*(#p(->IL1xv|g7a|?-017AE6XXg(tc2Qy_x+eXY>LV zdM^mm(qE~tI#Y<+6At`M3;G#l%tFp~ZvGda7!|-0*bp872(YEjw;F zATzGHKzmT+2FS@pj?wl$TM8q0kWKpL21rRed|6Y&_FAu=tYXlgQ|qt*3aHan92MQOhgO&PeMp#}Q^Hvs&6%6INZJw2- z*T6TP>}$C?v<*Z`zF!>yk;1i=;G^ttq1D5iaQD?iS~&aa;lj%?2#p+)Yz(~y4(ma4 z2f`T(u;JTRYZo^HLAS;96Zkb--Sa>52j9b|6-?%RN%JPz`0K+lD@loiRgTF=Fx z%qUEB+i36*Dt-y0$0>+^B@#*h`^ny$<(Fn;^zaX|75&h2=jgeJUiTM6?;E?!C9+PR zj*c8XKe?B(IG1Xqy}d;q_xM+}`7ey@X#4&FxF8mJG6r#75m#srfP)dzPRI}>&!|`4 zlcq)TJgAlFMvS%!U%rKCFOz6}P29*U%&_-vVnhG-O3>Rl7`KOGaghIXF`d{0?V{L8(|99gP>8v*x^sE!^jQ!kq~ ziZ#Z1GM;|3vi#gaAHa7+GFymL#{~W(|M!X+5xa*g#kMma8vDiV^M||WhTILzu~7Wp zZyPMhWW};<*+|<6^Hld#Skqr6beDFKMGTGSIp}db!BDR1k+je<56(o-PCr~%(?9Ubx!BAs37*E{{_9H^4!?k@)IFP54C3<3x>v{M<%Rtzh5gBe{pOdz@(j zr+UUx{fLHzVaMtuEn`mVZM-wCMFpA!9WJ8qgDQ>n6#)|^)9SPu>ugUsW~;*a4EiC5 zV25iu(XUY_&<|`jqj~VTN4*Yl1OH-++&wZ~l=Oj6Fn0}I^f1`S4rq|x;6Hm!;ee!Q1P0gJK^8zFj(i*=jJ%R#%!w}mOY z(PN>71nJea!tjkk<&DCgjY6J{!s3lWJNe7dNvDo-AWlx}s-P%zOuu9M8v;Fz%njJV zHiY1=*iP^*8(6GBD75f0^z&tC_T}|*djiSDmGTK*Z3COga}dyhhsmzsk-;DP*ZmFf94&jF?H30;d_ z+b3-4jh>%rHu&eSehvh%b*~*-GkJU=m7bSV8I? zG=uf-3v6PMq7U)mgF1xRCk;8Zw2E2|H*7t<{_y8e)tlShPCi2j;J3t^Wo^)nKUu*i zk_sWlB%X>F=FxkRT`C(Mdc)FYTLP+fF~#z#dyw%ZleLehZMk|JjCBZfA7BcO_El}! zzN)>S8AiMdrzFT)pLHkutk5Rtt3p{e7Q=#G?#Xt&$wt%g`#A2VN!Pw}7!_zkxqDJN z%z`sfyqDGgO%DmBBrLUrdL=l%4 z!TUwjbLkv|Y}S!d?%ZM=xNF9N-ND!N6_e!yBh}155!kTUR8{2J_>Nr31Vp_Uo2;sl zq>AK=mw(9|lJo+1$NAJ|a)-y}U7dZjs%arOeZooJVQw4LUp00)xKsN92Mu{p(oO?D z9l;5>9cP68lIM6FBCm=QP{9dk;RKX%0vfpBywi(U5txd(?LG9<$?e*bvB8ot{=s)J zerFi7Gfc)AM(He^QD>Z5XB=B+oLh%w&9})HsWYDQ{)Cero3WCfv;sT42fg=Rd8jVQ_F9syM=DC2Yx~Y&$(7bB!TnvuF!Ima!An&) zt%7$v!K}+~OG9CV%cs-LuMc0~CdMS3qQ^dt4fwIIw@fxSPc%12{i%V^-NB|`z6t9) zp|T(;YJ}*JXtre7a}RC@_@lwrfi$qe6LgvWmR9j^t@7U^Ux3+6s#}jEe;5!IqH+Uz zo*+NrTM-Fg4p?@RLyEu6P1xiOJWM>85+3a^O@j*S5*`~6N_7b%WtX|i7m}GL9-s)c zPT>$kYlC6X1$nFfIe%a}N*v{~w!bRw`@l8Q!&>`F0O|6M&H0^N{t#uN&jsLr0IVPeO0;@>RAA-+TKGBuTPE(DYB+;4L zPUhGtV>!y0JyG0SA*?WS=+caR-=1JvP$&dU27f|5+S30lygorPtGyXKI{5j5S8XGg z^aAuDSU6}S*JZPE#ICqCb;K@pcx<(Cq`P$3JYp!T;bzC5R;@r@wEtQ|b^w*IEu80) z3k_OJ%)(N`tmQddQ!c)sjEAFME!nWE*@yCsb#S$QzQ{sty}GLe?`9=$9uvq$45C@= zN7R8^1L*grMwMd;^?JUdYO#T>UUl%%=ibi8eOk}Xu?4k4@X>hYyIcayds``FO(98l6U zP#mqfR+wc@15-Dgme$xB0*BV4%(kSv_p@jsp^okXtp!c5&l$Ixx;uF5_(H=A=5P3& zuN2cl^ENKq!+dZLMt8sYX$MNcG%f?i@d)$ZS-ch;qe#H`RdLjjQ39L_W>LKTi^ipn z#ib75eTez{dn~y!p<<^$opjS;ZBsQQNa6gH1hpH!Iu+GfP8Y7jK~gx%h1n(5FRW79 zn-W(KX?{?lGsoMYW2GJR);I}wnr=@x+pT=vcHy!GM7d?^NIw3F6)(ZKtM2ZH2<9)B zC#s&GilUsA_asSnu~M;<5Np!Ylqk4c6zFvK&BocT#dsEgS?74%gy}`WUXf_wS9~jT zg^n>mt313+?C%OuBMx_(odz!-BV7>(`W9+U$XljQm+KU7$m~pQUq3&xq+Pdgx?GsM zK}V7kvm1MjkgGz+>Kbfj3eNYxqUz$k_%D3S%4{*fz46}f$|QMKY*OXTB~G>Djcpee zJ6QCSHpxOdGhx)Y+1LbK#k0#6X+PQ#K@RnqU72rFm?S)9;;u$_c~^i(ENVsGlQyI)03U`t10V#$f+Bl1Tgbln zlNI@g16?HNz1(Nw&J1LC%7w;t0+bY1R2G#3l<8K;-OnX!8^y)OUP zuS2a0z}n;;7WrK6QE!(w;;kF14yCcC% zDIbnCzAXHkQPdt_nWK?B@Wwkzj*ZLX0;H*B!B#VpV2CQXgIfpT0`j`hk%{egP65%(C5YNwlpeR>%> zw}VqJLq^4M_#8p(Qz9*A`|aLs^JD3^!GTshpEu9U!hX!%pB<{1rTGz1bHU+huA>V5 z{~xSZ{r@jdf1A#I#ruW$)d;1C8*e^S-^{#&9se}H{N;0AO!9{Zy;&pP!|?c{%$C|b zCjqyLS2x3XnQ81C%0(9!78aR%IINv)ZQV4NZJcbb^QR!~K64#t@OmIxz#gGkc;Wf$dFC;tqS$M1^gQy$kxBZ^{bJ@u3pXfQ2zwP%K@=Ie$2)qPlQ0mGqP$7R6c`U~FxOk?!>D$81j7RKPG3L;J;*{LA_oG^jSh zRd}fDM5d%8PbEyT+Q15Mb%p1fVGflqLn9S;0F0;(6iLCCAXFi_$^>{>pKgahyuJ7QK z!kOUa?)}EOtm>XP;qFV9I~|S(oVB?c^$$8ic@Z1`=z9T4-y?76@Xxw1Fif@Yo4oNd zH}5KmyPd6_CK#DU(({}C1e$cmm|u3Uf|XU+%Bnd$#-8+N;I8@G=oFQqEP*d6M+2jA zvHksq7T)h)JhhtE1dJ3zguMTjeifC_bCT8b7TpY+bIVu@=Qo*zYwFux*}h1K z37qub6}i9O0hX(}7O_-eXR6w)^4)vl1y!@o#uxT)3eS42Kqxhb3b(!2HT;c+-Jf_a zmJG~11??fb&$u9zsUKS&{agj4TqlkKy~$k!ROI*>bQ;c-oq#nvH5^Ek)%LfW1BgPH zUtQ2l|C<|5@>`;b;9)yGi}IXnR0N7h1r2${`spOICV+ z9S?>f4liFY*anbK7a+b3SCLGd`LO>~Dui8ShQ7fQ*Pm5J)g^MoiO92>Lf56t6&48# z>YvcQ_EI_`xs7zS*dQ+sUQ|FJUL@u^b`8r>O)=knB)sz;1c{KyKm3T~Jhl0_xSS}j zIUgX(b6$MX${3VeM=a2$y9_x#+s(X$alkkV#^gsmfW@aziCg9r#P%y7M~5*M1e?O{ zDO?k<{@dna#C7`RedxkUeb77S)kq_qTgHlCuNBr$-)nD^k zGPXU4;pG1~{ZaCGL#1^(S5lZj#(uM)7Z&~{nu&#=oL zBzqUQdWkqCx;ybs?ykl;Ff*y#OHN^8$zf$<9*rwxl@g7PZYSXg$#xNNMbaYf3b}lu0(2B0|rM|8JmD4*$|T>#vP=xEEfQY+IoAg`15V;8Z|A z4S2U4f`{5+bxfaUSHOLn9XXJ82<^lWavmdtN{5l>`FR+m&6oh}{&!6p{7~ie4^->1HqvoiO zaF2T+xBC24ukOv6ruq5b*z@zxoM7B&pE$C9{_JnBaS}HpFFkn0BeB)WK-)tduF{d1 zj{D3_N4r>j`{Rn_*+*G-a;s_>)2Em;AANe$o1;uQ@}EvUw*~bpSLKX9Zt%oPLO2YW zR{%XHl*G>UFYM-nJSGh%F#@VR*jV$yKRR9HImz8y7uy=KQH~07=5ojf%y|K^aiG!S z%n^sZjwgGhUqa~+@8k)utHwfSi6DGi$6WK>qS8g_0*k`@Q`Rl6qn6wzWCk$wv6Lr5 zD@M|Hj_n`>aVsQ%ZhBwtsAWCWx@DOxyp^N)FR=$jJY8X1t+M*K(r<0yv{VEl{E?9* zHJ=M0Vy^xB*Ukb2d*1)oE_>86*YANwQL|?zJgbpmlR+R>j+n3BUSu7bhAO07fnjUJ z_z^f1x==!Z2px4OV-X$ycRpnfd9WDWkMcnO3xRDM+p#3^J!I5 z`r{{+gE>-mPJiv)7VP5IODKxIe!rWRb~{XnpX-?J!{lnScB%VI+Zi@0!v|gQR$irF zQ>5HSnvOMr>=2ptl<=U& z_yp0_&vxH}dz&G8xwks;@!;0h`CvlQoB|U{wCX4P4xhH?$5cYmRDblnIuA+t!c=cd zLGeAAqHnH=8-Qiu1D{jPR?#!|{k!;itf?Za)2p&fw(Z^qld=1_uwuok@};qpJds`C zFzWK*dd|U7Wy~&`T-s&Rt*uSpk~Y7Y-C#x~L=|;&?Wug?( z@K?nfRxx5^-zX5^CFhoz_A?hQBjw6Q08GBN{~+I|d?6TT4M(&#m}6&V&aAk-{62JI}(W;+D&BRFu{XgtHdPDeUBS6{nu0ayCI$`$?P4;0NUXoR1b zB8U|O34w{p`(U5(L{y%|Cx?7HB_4wR{+z`YE=Y-O_c5}rOJ|B7%U;RtkAH?(h(q@P z(i8iCh$5H58T<7({JG8C?|j3(HzD6E`+I5)SFZF|$k=`(d-zHkZbQX=*v>+Rju48BnPo?MKfK<)RdV1NE-);pi5Ra+CsgW)o5BCrlEf0{gAz7b$bR{%LX3PEax1Rnj|DYC)3a=ai{O;D{~~Bnq#s+ zZ*bbJ`E9q?%`U;UXnAk;B-Z<{=_h9Ks~!@MZYN*9NO1`a{teF@`;+X_wr(lI$K*7YVAWFx z12kf<9f#bp=Wl29Jmi1M4A0t06wdfP9I14I&D*`ET)oGV5^B9)Rj=G`Lw?1<^O{*` zC4u{zzF00uO*0hxH)gFhO6V3(-*y|^?B#P^U}IRx+R;09bwvV7CM6<%RJ`~6{8RsL z#-tkfg~yYp51XZ;A93N1xob$3k?b$s&B{8=kbe)IOU#gw^N%-p=SRA*L zeIbybdhH#t-4CGt^4$B*MeW+LLmRqW^4eBWtj%?o%tEBv-8&;8i2}Lu0J9*DzjWN{ zPXu6G&qUa0xG=EV0->NF^N_KjZJl-<`?dzW-2AtA!SRfFFaLL;chr^M$;Um~Payv9 zqd~9fzDKIVePPa5_rfZomEHUPGTKr7kXaJ-e=tEV|L}pzKMG+Ai5lIx_r5EXOH{|< z!D$gs9;VUZ01vI7g~vxm2=nGd>*+T69oB>D{p?ms4@e89FxWbX6Z-5h<}!4bb_`xH z*$%D+YiL#L@z2exP9=dhk(AORO9ttPAnNY``Ep#aMb^WSc`Mxt9h01j$5K_rbE#0 z!B!#-BKI!X7ujuaf5D|O3)#mwm(tB<5x;gxkhoaL{RNrc)5(=t#WJT+g2ATjqG)$s zK63CYza!t3iGL25Z(ZhP`%g8&;c0ve7;jo8yzf_@iEP4!PtS6kSSC5yj9vl3)83y4 z>}ya?^icNgF}pHnfw;u&$LfmO!L9Bd&e=cvj_zOGmch|D?g)#d&+}`34e$jic@UsG zBN~(De={MF5B7VT z48?SqI*g2+0}Pk)HWOkn{O+m08h!rRC7T~?Le4UeR65JtHmp2AvEsPrRZjzC&JJrc z->{DyU%Jiwss#W_E1hAGz~@e_r5VcdBkGN`m&BTd-54;nC&}8Osr^JO@Pj=h zn#Vw{?W+29G2i-N&Pr=-O>tpf#~H~iiS52I&8S3?l7HfR92aqYcR07bY#6icUT;VT zM6Nn5UbaUv=@Ph-6|i7M&O@nH1kQ#;?3I%(YI1dozARAyM(v32;85nKyA7b=Vu;cs z=E~nao1CvL9%fGm{0N_gF2%xiNSM!4~)-5iD`s&EUW7+ zMT}f;VLkD@U73)ia}aRw>?aY&tSGq&wRWI%PInSSCk!e#6V?Fe_cAk`2gMhzN3iw| znIBtGA<;Nb;>zHylzkJ1+Ei6;QmZ~cDH&c=rIaq>9+q6u2s+{(R@hg-Y#Ze4W-_jl z?DQ$S)oS!+up#kxY&JorWRdadn1WV5oAaGh`q5M}E2HOfhKG0U+0~l8ZQqQ;&glM~ zx9YEE`^cZ#!F-Ls_Z-1Z^$ph}U7Q|RH8W;tYjt^wXDTzs@Z=%q5lK=} zx{2916_Dq3f^N;9dG=@Yd(5G~62>{8p&u72PvdcF^05l=;e+xr<&Pkj7EY?CM7{*- zs>w1^#U~B~#{!LAyqZFP6Nq@I==ge5ao;KzaEi>{*2EEHZ6E6Tm-SI_&1^eeBqDlf z`$b;T@shV)XSAGF=-YwrNJgve6TNf4BrXb5ckdA-&=wO|D}+xPgkuvYI`0#4*;-GTp6A}6$MOR-3gJj>@fR`X1e0Q-?<|9vX&c1 zs%22O%miM^f;C}fV-FMgW|{yCfnO7{zlk~h?1UZJ2>-adoae*3J2>kqcs*RydTcc!W-&Gnasy#$j0pT}s*rZMU`EKTuU z5B-y( z3<(o}3F2`;#s9b8%#u!;+I_3iton*K&-kC1O-*N(iIS$@;EtM>sG!qQuPihBX-Yxu z<Pg{ zMF=&etwoIHq4TB1d>qTX3%_Iv$lux<>_Z4YZ+ZI6eEfRWEY1#}>K|6Plto=L1kO`w zjc9*%FM_|d-;WfQyovjUJ5b#E5Cp$$`%-u|N7ecQa*^tw zlYudqrM0CUH~A+urE*(xKil#X#>F9>E~HMvU{xPia6S&(=q>5gU@{lW7W&@d_jy4h z;khDUL4zFY{Ai7Ss*$74`_M@#z@!3$9$<6I#y;WIMv<|}3N@C(pXtlS4W|Fp$PRc) zC__=UwZ260Q03%xz8gX)ISzAFJBPFT#owGuJ4>p4NK&7=z1C~{Q9TO zjh2XyyBYM=QSH*UOJ^|QQ6XX9w@%wLUX|mf%yo)EtIb(aSn}1repxDi`%@>%zFi<8 zceGIY5}d3ctSMLBiyNx_Si(7K1d1VHzTxk#Zqqfe8mSqib{f ziv6W0q?%_kDCk&3%|K`H&!((&jbmA8HF3*juis4RO1LAo5Z7=!BocWnFE#% z54J|4Hoo`&cPE;YNI}}Q{~YwO`NKc z)kdWlkZa3${zzF+W^|{Lt@s5RFFl#sGgIX3Xb)D~(Lc+Xp@Sw|bY5)J+whg*?x1{> zzOHUpgXu2kJk`ft=V^D;*n>v_e7D;rdJn#wihtb2C95ezF`;1^3pQ^RPSz$Od4}Cf zb#&_MBt+%-b=08QGteF1+fy3*@>))3-?3_}FA+`q+u3Z>zIx+YO!B7{h_28c+?5xA z*i{%E(93XY2h}$c+R?{Hm7L9GV_)DILaxTcv47<0@nWqU|L&|8ule)TCi2r}iXf*@ zNngSzC4SoE6f!2M_0Yy4KdXI|7bonokjuTm?U9ukY<4Kqus@gG?FN(Jx8G4r1u8_u z##W;X9rJ7y;x9^mRAnt_moj|(dnm#Sm9AI- zyCRXTdO=gRbS!ctycII2dGA$+l?ZGVNWT8qZ(UXsy&q}%*()-TYDJjxAVO1v@$~y~ z6j=4yv4y#U{^!Q?qXr+%aUYM_uFLqwYzti0uHLr&c%|GNv(@u1 z-%6Y#rl(MPX->4w5b|=htZaxha}s)4y=wej9{gdKcE4jBJkS{WV>@fEvVCRD_o>1= zjO*10jI3{gXjR9bD3Tf4)7^n^`CH>t)M4hEv5uJHI1Jr>{49Gg^tbw|-geGkgwpnP zNFSGymb>V<0&pa_Way?nHE?hF!G6&K`pt&yL$!BwWAxZ)vb^$t%MUKNW-Sk!lJq`b zFzqY+yR%Py@Dgg>#&J!%syO+cXpp5nB6F`x+B*wOSF?34?`WMT%}*i6PiLO|=v|1T z?CGP+1T^$qR6Ibu)^fqd-y$b{9>yvBiOmD{pl&MpeR&qKoy|kwUR^eOdGcbI-`(Rd zH0Be{$DP6@TZQ<>KY`R($a1(f+sy!vux&91zP@`W48tCO3q4_xSCVHMjj$L);UlAQ z_Qn3ThZ`-0PGa~OnMhnUU8qV!WL17p+Z*2*iW>>Pa!%ImuPg z>Bah;ea=~Eo`#X?1^j{6xm8<(3cJ0b!UhprUv%>SHe)fda$9=!u%krFCSBsD>#p@Z ze!3a6`{GY;&A*%iKeM|(p?9Y9;loajRE2rJ(*e5PP59pA_^Ja#wCD>_E-tQu@ehDO zc3q0sB6U$*5=9v*m-P2+DLwDcl+a`_nRk5Hf1e^3dcIe5FuFn!I&!5hH%_o zT>c8D)f)WSJ{V6D0Q%%l-2kJwAT0!M3BnzZn{*UIVXneEjRfr^4^Lw+G7sYi7dB&K z;=_rlV;v*r^oU6c@1_H_v1PW_k$+Iem!amO3cc-A3KD5mL^gS83U7Mh%iAaWF_u0K7V|#jL=p2P%n%_u)rc8y4?9+1jC>qncdXX=9Ss5JG_V&?uXqdJ+|vnX$%$}hSQ+Fg!K z$&(_hPMkT$N+foCK}wZWPIGD&E#5dEwG>{GO~}}SMiuu+mGJMXOY^X**&IX}0y-AM z0W10sM>Y+a{z>nMX*WO)KFI$NT^NtXMIVlSQ^e4JT{=tgJNRw5;HvoQnLtcb;dwJg z6{Z}$RDj}nQpL`(2$UN4bBz;w#(MdU=Gt5UlEiy-{}=Ir4Xn4I56t0dJAU-T^`_u^ zD+&*r)2(_AcmrgXS_V~cGA%~=?AZOJeE=eiTyj}8w>&rcHVlanY87G=9!SnkAxw$x z$|ogSrMHI8)UX`S|Lm=B%|4eOpyMbu^7_pE{bKzX^O2^;!~B7xomD%QUfv7Kw+kb- zeu`~6N|;IFS8!esx3z-_I*7>0 zpmIxp9`=?aacYI`Xgcpc5qOLBn#M6=L=r}X@BdzqeM`PvkztL&07K8fJY2u;|Hbp>T<5&q`|Ne?wbs2pw~~U1n%clf{k-U`!1vRW_6|G)DAsj^ z?HlaOir8F=m6p3$=QZL^hz6bu3+ReR*OoVoNO=1IlU1y(vQ#a8t2U`;h7_NWZV;y< zVLi=Y{umXrn&07=*<8wB+iEB7YZ$TKd#jz%%aellCpi~`q@IFnc^QwxMbvpIb6h-h zf7h}Y60YTFnnu_^dVf&eQdG7X-PvF+{e4FEF;Hu0X(aJd0b^TCEmSA_9MW1(buA?; z^qur-UO;C^^EU+5YWImue+)(+s9C<-HH}j(v{0<9j%^WPAQBHdZafYv9nfvm$CTj6 zyuJfAj+Dakykt<_IB)V_g(L94Q5{ISa(|x&{&rf&n|Kz1*5cu*_UDST7IX0p6CeA~?Z|t~ zt}o29sI0se2}<~dqE)lL{iA(A%LJv3Z=GkStG}H)`{KmMCa%}cV2^hDL4wdXC?P4f zKfL6~uT8UWD2_Z|TZwhXU7bFO&AH@~37;i6m>Ym`>_Fr%L@TnwbUq7Ne|L0S+cW{T zw>Zmz6V$+8ctG-zC8yOYhnWSZprT-BoX%uS3!uDDM7?P^FBu-RzcXmD0&O_&6M_9Q zp*@AM^4Wc}K+?|I+dj#yC!S3<(WT^nspBKze0MIxzi2O7Km&ix08!+m91b}BOXbu8 zeCCTW9TEDjP*V2`1tj)8Ca}Xaui3~Jj}P?0lLj<47wYbn%WA9gt$YkX7GPEav*Pg5%88;rvIR0q*L+eDOZ7R zLbyV%Kst+J?0)u+0^fUzbHM-ni);+3OC_Bu<$LzpyooFY5)EaOoXyOux5Ov7QPfoR z*g4{9Lt+u`tAT=2512zXn<*x)>00W`?l`ZvPrZi5_;h1*c?jiN3tO9#AHTtv=RLPn zrQ%EUbsbD537{b>WhDjViQ6Z2#9Q>_bZ#?emo0%a%N8U=dUgR~ywv}?Su;Ta8g3Au z8{Y@ffKXu8w|7q;gZFxFU&x!?`RSltu;tL1QIFz}o=h0S*xu@uQ`r`S+i}*vjx`1} z{}Z&0e8ui5Sq)cl>Y^-|Qs>Qs$}ZTvD0$ZR_+UA(S!xUa7~1iW5>_nr^0I#nZQ==z zGAbi7$x>X|a$a!%)r5~X6UYln#jk-`a#hWQKXxGlU)FT~;I`|XL6K3!q$l2k_J<#D^{xuWg;2)xH=ENnM;INk1)8oxe3sQkW5v%~=9rXMkC(G!?x9;V* zJvcZns74xoucXbWAW;4lLpcBWM9Xybld}^cX+QG{vy({YnoWyyobu&v?e-9@1c`qY zD=+$`BOx05pYXrc+W3rEVOg|Y?dhlQnog|Wjp;hAV-D=D?FRU{?guqN`&kQX)r$ZV zpJ!UZ)c5&zo2~>Wwn<3R%9K*J)Y?(xs*7dTSpw_F>OVAON|3biT{E^H)O{`DmP!(M zs%%)}{a)#UOkab7zH3eK_7#*To4Oo}Z$7o7_hm1X}4S?_Yk> z%qUTAY_Xs%0N~Sq)836_FItH$z^Mqg z?}Yc3Y%kQ7TF9bl-XnXpluD^=FAQoerSgMz5D%*2EegJBg~!{U_4rE@xcVjH4&({5 zdS;r4#u>Qwr3X;<(Y_inl-V$Zis{7IrljaQ_Qv6f%K(+oF!us^M&q#uF-wDpnS!4B zehPk@v$ENfa6f{#(|>9N8TuxScb?U`JSBa=KB40+xIElgkK~xOWXSH zh$~t!pMVLFpn_#Do#@mqE7fIXjy+we8A%bmuLzgQ>qYifT}v{rQxFAgEz3pGjwPVIDY z)%xaLs*h(#-5~6Dl6ZZyYoOm6Ovl_fw%y!1&p*}y9}Lv(X!kCex7&BoR8frsg3nBz z@|G*+it-i*yxbl=DgjGS&a*tDkvmzEy-LSg=)w>L{~#)hX{3m^=V7Itu>FNSa8n&1 znU=xx(8KbMs)P>lubSui1MG6-1ypVXkZRL{U9ys1wL2Lbg>m2Qm?(5Dv~Ing3*L%o zoGy4?JHou3c$ygxm`!@53m-lL*L1hqoV2x)OwDGNa`G)Lh-P>-OFuM~&TK;8i~MZC zhqTa9OWkeV&i!A5)963J0Bp8dQlG>4Xg2=W(0CnPbhq>O5^iIz4#V1c(HFhIoLzc~ z`Ui3eeJxUwu4@kelfFE11nOmj68aFwraS>0cQ9vaupqI|rpci^4bwFm=ndj^-Ru&{ z$wCd`|1_bQ3opz58cR#>pK|zWmU>pE#KfNG6`%S6trb%yVU)cvSKb@lnF(Q=8sE+N zL@^uDTO8zD0rOjdkY9FrM!UWabQWi4j*KQKV=ImfuOf@vv)Aka<*zi+w-)x!e z`mUxtHKUQmt5Njg#cm*KBCm7B2O$RYNrYb7{plWp5DYA}`L#<^5H}=XInLtbY>cSf6>bbNh?p%iGq^DD zYnN&8nl)q@eywMr=eb5S!(dQL@8A`9jK4VFSo?dnSww8*Rt@XIX>^BtNO`W=F1#yQ z5^|8AP&!>NS2sL*RKlBj2r?yJkR}xv83D{|TjL zkw?7S1pQ5*!VS9%gf>mU#L(b93AbZK1pV_)Z|>VFLk(9z+h>bD{7GmzPDt#dtunCYIik}YfeSTHU_!VKAm)IW zmyPCKT)#_st2sqzRm_J>j2JzS9mAW*m4Mv`e&ezAr=y;meyU_ z6!`v3Q2rC%r|KgC6m83F&aU} z9EEOX%9@+RCm8x+mb8Sj!z{#~wlu0uWFk*SyU1r=({S97hze(LY$Y}_k2rnoVWQd- zqa{6hjO7vy(*)zv1TgxmFM33H+A)c)Sn zDLT9-Uy>1Ie5F^f(>o%G^C^>t)vU5GUS>DA@PS6ZXE^(oxZc>j%eq&4f$5)YA;DEd z3M+M2VW+HF^#+Dk0|E0V)!87z$n<_)6jOiGtDy0FDd zk3$^tn5`ikW!s4L^D8h!4e34rF#9vml@ahq=*td*c`M8;nu)x;__oN!P~^gA^L5DM zQ^{>Y(4@)x!KG9j&g_?c6T_Xl^<|i^3B9NRx8oV*N+u_r1oU}d=>2l3Zz+Np#Q|w0 zfh#Wn_}(>CUy;rnKltU`LG5XKE9dP&!GRz7W>a;<%$(+4))v&0GCx0{WjFMsWWYk~ohfmH&j5@F02>U{dk%`jC#CrRFE5xFtDwBv&4A^yS z{K-5!UoAk-^`)nMC6dUBzbSlay*-qUtvE15@Ubh+7dpO>C%9qKK||(aN~XP11b5jw zg#&`0;eaPFif9H)V1ir!K*sy!HaXMw^j(kKhTdUxx`%g~&nW*~>7oj|{9uwk&wF#t zzzyJ+?SuYR`8CBl%OotoUcGQPMADx)f0NmsyZ~^Xvo$tF-u6J^BMubtGsmuQT`uLN z{F^1T^44|6@VgkSDY&5ss8!`h`mTE2@w=FKCj}XH7U80Hk2S@zpDR1dclyuzy+iK} zy%atY#I^8zT=-p1^anS$aRA~hb>b7S2(cFZXquT|H>y0Lo;bZu-JRPWBqq+6;0w4v zQWH8ft^lGdt}rEjL|6|0${ z9--EI>QB~CBsN`7VmhQ|^0U>G6Cs`I4sKLVst@5i*2CfGDV@y1ZgE+5bWPrSnXLQs zOCpWj|Ir8QW@e2esN?wYk-Bpbsq?*PC!1o&H=~It=bx9w&@W>(Bbo7xGq0--{5UT; zRa9374OHHF{^0sJmKaVC`y+K*aJh_G=rkP|tH|_L2knhStvvB)}sFCE8UAYqj>r!{jymLSiS+hj|f?8hRNF>8f+wkvAk9+yR@j8PDM(P5o zwR#Z$oiTWxZMt3*+zSAI{d@6v8WitC7YF-{fC8i1W|Cm1ihji2$(*gM(BaI(z}le& z_uHgZK3U&{3uaLZ;xz*U$a$7ybRK#Nl5$e}4~}4s)b%5etDNIYz9|oBV1lO*^#wUs&fi z*V(MU2jn9lZB~J{5fah&S1>)yJcBgGnXXtywKo}h8C%Ma?BJ3u%V6Pf6)$`3!{K>n z60P@h^BY56l0!E)r*Cg?0PIAOKTSjCNc&WhLWmcfUiF#$Lin8U%a_2Tb_vKUVVI)W ze-KOFSR;^5|J7NCTUQKTM{p|Kz;omN`TdQNvm?KL>!+gzlCh@XoyzSis_#l8t}*Y^ zqdp9r2@?Ty5NX6o(Vv9rmfUl0KU~_h6?J}Idv{1D00z|eVfkMGzjXRtw-Z+r=yk{n zRtqSwCA%mKtpOuEScNL`de~$;7OA6!ZOFKK&L8_YBO(Q$B-oH^{@hG|7|&|g%fX!-;nae2q(w?jcWTyt7z)$Q=)s3QqffMixXR1tetM+%r9ih-X^`@nW&d*mB z^cwhQz8%b-gv8MSrJE}qCms^({r+U8ql0)W{nR(&ZxPrW`N}+?KYJAEqxNR8;|97G zILFP|C2K(gzgqEbl8^~~^xhQvUwLpRxf0JGS!^x|tr+vI=okPJ!*e@-CYQbX@VCDD zN*1BZSrSJ(MC!42(O+lP`>z|1WTc~zU1vu|Y$n^$U~HhT@UWP7Spp67ll*$X@PGm^ zab9l8@9^kVy`$hB!=2}L{$?Q_n({qczQ%d)FM;v{D|Z@83#rFaO)JdJR?pL;^xbc~ z^-Qd1dbC`+jCCNZ6pWi}l)Q8fN@dZE68B9}+;lX&l<=S5QZ+HVpl$|hhY`U*DMLs( zCg_tXT4cnZp-Nn1w$l$PfvUw9_t3c=MpYfD@LUP6KuWV6p0$mQ8rcqYHF+r_t)1vSDPruUs+u90DxIwM8SI z=x)7+0YvYsBf>RpiRYfH%|103JdI7K#b5WUP*Fd%$21DF&b;1{-7<--do!S5=jgG1 z`-#V!>r~9tD;HO-E@E>3%q*eR>&Lv=u)^%-PL_usbw&gU5jS2^?Q*&NyFKaFpfxK9 z@;lJxX+A%}gyK)l3RM8l8JazvOC^KnGKy-q)SA z`Fl4FsOX4QZT=u$d`i||KHRwrXn@ME_meeKZSAJKnOsWCGM2_X`m|9h=oQU>leFG{ zwA0``ri^r1rF1?7tUtl4f#O|HA3*AcXCb#&{Ja)XKGI_6#`+KvTK^)?_48YLxOy=; zKB2`zyIlm>4}wGb1Xk*iHU4#iinr76fTvZVT|scyITw=9*;(TiZ%7bRoq#61N%|lUrg2iD~$q ze;hRYVy|^F-B+^4Ch*EyvBk$mcq3s@M2#Wp|Xyp@BR9_?NvON5}2(K4e~V zm^w4)pVBpv&V9PcKywNN?O=;&3?NniDyoP|PK88fi!O_yWmF|U$nOiV$burfrspX2 zXRNgR{)dA4*AQtx*khe^6C`2>yXpXAh@(T2KuRlWs@*F+xmHDiz9`Y*y;Q*BO85SR z`n6IIn}usuVx(TU>R$er$hHyDBH#U8UkD0A50;9QpchS|3D&=8%5>{fcqF%8{43xxVDn0U6hWE6=I|D`dhajcEMKl+=sNz~M>4@e+=H4y zxvLzL&_aWLznVV%1E&w+>Ib$xcds0Oo?iL9@2+lc({D+rgqhF`a}GvAroR)9>*2Q_ zk+)9I)R2!aAdN*vXHMY0`RmA}_PI|{zepl=X@o)Y0TV@?q>A-t33G_ zhseEvcxySoT4mNk!_MY^a-qSk*f*b}rMrq&BOkq`4GECMFN(UJSX87Wth!F&8k<7! z9zHwc!hvAdKbB3ZgF$Fw*hQQ3PanYq;u6VeRKr^S6aW=#c{#bAy-!!X?pHlBZzknl zKigP{{i*SL2X@uGvHpGumOs5`*`+&^R9U}SW8Ho0V$q{7EiXZ1n9MShMZc(&ym(-p zz4j1?hzD=J36t1TJFZ^|C~2TmAi>2*Jdz<|=nEkn+KlC(=JUEN=68T^y^4Abe#8>7i?t*(JU7j)yF6As0_(UB_0Z5nhHG<8q5G#%9e}0 z=Z~JU{^xjZt!{;Wub)gZeTSfx*uG^sSL1hIENgAzDS<1d$sLi3VZfp+gzy_#3yz=Jhr++NBv~t! zgIj12N$|T31P$aFLNO&d8qKz&;u;K&eI@RIB2`%_FrxG5Bdyx(f-DT>CWlK>q67?HsXjp^cYYq?ToE8 z?QoP8+`i~II$CHux`Q;?m$?oS21_m`GtypVf1^iEo}auCsMPlLw;Ba zLH-A%WrR;Cev`sy4*G0-&ChhSgJz9QZJtx5_PzXMqsV zt4fCZ8kF*xOJ67N^D2wURfE1f#ee4If56R2w%EKXIkH!n!`Ed+vD%DWK}VTX-e-V? zqsIqir%VzfT}k_8Q3Or0J!Vs0&Hd?po4iDaXYQq7yD9;EZ?S1h>= zw4q&&Vu*&I=c9t1yS9U-W2&CD`}Z&{Yh6dY*?%#dJykgtKUX-T_VEd}1nZfb*?9R! z-U@U76slw{W&`(%{0xx@X5Kfz6ASJ|YV_mtNvWAZNtRNqqHdHT02d3fvkK zg(|LHmOkzF9yLl zdw-(w7q5MBiR#Q~@6b&0(W|?=ZwSWP!~t9rL6b_rf4HQk)}kprGw*t~Ezzc{-FD{7 z!9|XNzf>Jwrsu3Jk-{)*@#y2Ml(JCiQUs8!-_h?QS<_-*Sw>z_rt-<>qffFZ0a5ge z(9@*ep*)Iy+a{ntmd*jaj)R|smL-#G&{5?|5dcy8yCx!-m(T}MNTLTY17y#whPG)5 zneTd$1T!#l4nk~bamnu7m~vQ=_QVa#$T&q=_bbTW_D{*&k`t48G(_?yXw|x%qgl&f zOnSym0Vmm>t?fp&)Jm17A7f@hCt?XON+eXXvqWjL9M{Ru;ToZR5zzedfdpwvD zZ>7sN`#NeSz>*Fyp!93xBqfM$G&_XpwoXJU@G?%q4q?AHqSm9rdfNQ9!s6egDEflW zFlhhWf%v{=TIL4Wum$9FNo`!fpyEwk-$_T zvS;1)z!H?JqafJFc9z#`G_=ckT&vd4JHJt3kxS~ErfpKc4h}Xueq7zlRRz$lc&N_A z&q+LC9oLQAs;{0|i_A#2@W$8!SSjxZpEq}J7po?;PP?@l)~4}-9D{@0L%El3Dz)#V znzknO+A3hTf>oVGYxSwIsy}-W>lPdrUp+OpabbAH=aR|5<=_p!niJP!HP~?V^oH0B zQ1%HrE_GW3t#7Rdu7KOx_l?xgonU-Y8yX&4;1&Q%Mz_)Z@Me{nkN ziF+OlIbD&Ny*em(Dx15Zg*k1l$yor1{K#s4Q5PaEMIcI zo9sJ$Q&E-T$aFNWd^6p2Xgrac02G=Jg{l$>LUrRY)O>GbpI!^_h9dj;4ZiYX`r>EP zD~%P{pj3&;Xc0lFy@Ng&UAC1lnNQ-I(K|);>hcffV2OOTl7nyRNl&bH_u(0urV!Nl z_vFX0!Qa8EtK_?_RCLS4dYkS7#TDcP0OsZrd1QI|NG9QRfcB9S$~>1Rv>}qU5g__) zKX!5Iw>4T6>%f-iG%z6kmMNO|;j$FtyhxufolGiB`z-A)?C68T_oH$lHj zS{mfeQpFZk6N24Kie6q(PFBAEwz7j1nd+7RnNN_5pH&dOj8U|mO<0(htyvUMN%Hxt zhoZHPubrw2#-w&ih?1k7zan-n_cwHghhA^?N#Wh=k!7}drL+5r7C&UP$&WIETF7LF zuL|)jzcXOT7JUkvD}4&wexl;fMO-{)<;VtQd`-?crkeuNvHhr|e;m8vj9Z_9!n@b5%c1qt@lN4<6+UQ*JF=y zjj6nqf*;Om4%yXHe`ZDS@MG4WeAZQ?rf4cHzjVqx*g9 zGIdh85|0#=1VI?t|6gpbo&_G+ha`yW=vwHA2NS81H+U0rnMns$!g1X66#Llu#ny!1 z(in-`RNb&v@=5=B(vG8Jz?i>BzWjH&W0+B76c$tbjTWFsNpLBr89YVt3U94+POeWv zbtL}KydL_pooWPhX7vL^tOLKblG8(tsU0maQJ?Q+3VqOrw9s_hrgO1T#LpP6RRW0J zx?Z@#uCgNqbkaj~YyZW`Q)8{q`U(_98_u{jY?i7YiRJwHG&n%-XOu&aOtD+`Dz~SZ~;TH0+ z3EK>48ffe+Xhq`_A3F_%cE7+F^B_Uc{X81l{wopc_c42P_aBKSB=~C9qwI$ul_iF; z9T^|EGUxGQ9)+5X`%Ccn>X*9!ga~)zwTL~To0(Y&!Lp+8e~hON8K>2wR$9u9_K}Bg zqoXLc6;U3RW{ZC?F}{ZwCHqXC!>CVhP4E3~MnwEshN}@wH^HF~h1d*Fs*j}&pN}t; zC-g@CmOB^Gn0(4Ea}VzKkrns4XHEnt?9BAeMq=<^@%C%T&`F((;d;Q_di}QBk=P@W z)rq$hw(~+0n--fsdHGPwVS`Z5^Nwe%Md*yZ*b zsnV%k)7vas%f*;DMG|T=1J(||UJx0p%e%mn+VsX92L*eA00h@?T5b6GsfiMBvL|h% zoT~C)H@m(BCoeFWQA#tlF@!fZpb72j$CKi`&!>%7zLqlqOxa2lt5s6M; z-DXI7$K2^k{KTPuIY|TD&6>G2F>{P$=f4N4k@Tck<4Xl^+ESu6e+OZ629m}F$$YD> zuLswxrcM;i*gnjiw>nxa^>u7DqXj4wzZy4J>ZrB2#c1B7Nd!Q$| zFM_w>G${1xH0bi{Po|t>ky1$W$mD%7RH|tA>GCb~R;hYNLbsRK>g$>7sn6BDOCf)0 z)F2a#-Kd9cjg+O^+#(@kTq_#Obh^~WOf1O1nEM{gAkV&SA_5}w(VPxB_uH6J67;%fdbm_cLe!g_-_Pu6 z`O#QyH$As}etbP|m<6dbaOuNW>` zKFOe5eh6%3&-E${{2%*^3|gS{NmSB>E={1n;KtmNsn9ha1b% z*Qav?4`6otlQ{wVE~ODE7>pC5TpxqiR`ik|{ZFe0yp{cYV@sZY%UHO)*->b}bP>MT zz&vJhL6}BK zLEi!BmlE}o^hz*s&Vnj+Cj$)Go>PJ_wd^`hNSzrT0$kYvKR^vQ99@Rvp~3!hRR61>Aq@!?z~b zUk1?$e)BcyHNH2O7-~&RP@rR-7s(kYbVptM9h`HuNC5_Q^RLS^v5;P;`224}lHBSG zuSi>h1X$+l0A@Y?7GzWekBXIAZnq%hsZ#VGo!jiUyg~Qp2#V<1{Qk=dx2~FtJq%4Z z(vfbAR^PjIVI(QD5uxdiZ=~|wF?t^+w*#L;Sv0qNX%4(-TA=67i2ksxgBb{Hpm0kr zcWW=lVC&=FbfzOXU&Wbp`x?4@d+jK<{zh*7gWURixpl#)Hv8A^GnCt_FHfqW2}fO% zu84Ryt2CAL&Z}RA_FnmK?g(|IwDQ(X^?Qci0Oj-WAwZdV0W=FqPa}(X$H4es50N<) z<>h-VQuu&iDMkI@IB)yDX|YywP-L7JneM!)5%*SUQe$OxzZcvn-#}b*Rjz!eES6+M zMNXN)`sYuZ)3Nj>$xAXy!Bfq7h8tb7M~xH7?v(bIU)QWVBUR}qojGKP8M!*E@vj3$ za^=cGQ+!@cmcTS-#zULGcb~_N?pLRq;nyIZcUdb4R^`j~zh~PXmvJ}#ENk|xn}@2a z)#hISP7i_9Oq&n)VDL^!+45G`hK8Q&Y*#@82`zMsxG>IWLTez#yiKXPEiz#K$us#4 zLpe0=(R>=VWk0hw5Utq*pI*}B`PVo}Crc(4J|Uo0oXAN$iP>MVlDQW^=VxZpvxV+G z8nlGzS6?F+eagd6LcPSoNtbWQarI7ziK%^&sWr+%w*7*L|*-iURv4U-WXoTY$X>_asoHZFOoQ4 zqES(QZeLWF;z|R;n0xoe70NJdxmP#w>b1D?9|a;BpYxX z$!brWua1$?kaCRr)Ia!QGd}PO@ivuFtVlP6cvyc?ZuA?MunkC=nBpW zs{a0r&5bqYqrw&19+eLgpo)B~q5;mo!*2&hPe~Y4qQ0aXb!&6T>cVI;hr}9gxoMYJ zx;Jn6v{w;CUd8HQ429=Jim71VrwR3MQdc_$k^P>?vw&Q%;)saShzS2pVv;M~v-hcL z)a<23HpsD31QP>(gmQ3iH-AC7W!4uG6zCy6!c-bHJoRG6=i2BB@_22Qd=*wT0cJ9?tgva9}pgYr)6i*)8dL1NI`eC(=OS*-(%{1r_uZH1VaTOF0es@ zPKalUY4jyqz#84k_eDXkEvm5n7bx#b?c^*+<3&MFF%o@M7dA*y%EE#9!XMP%9>V>K z7I7<0uRlMCs@Xc{ZPU?oKFLUcPy2udLQhPqA}@{Q=bw!y2O#?-2O{B1&26yHm3wB9 zIV2S9j-3~6Y(WLY#hdgx2xKKK%|~6sElVxIt)O+#6V!A(pc#6l@~C$VU4q~PC7#p# zp_gZdh(Xvq-+DU62`Uv570&&p^c{v&Gtg_x0pTeg>TT-drvL0h@$4`AoKY0<&lQcN zHR!wwdRRABN_8pwt>5{LSqYx~{w!``G)isKD_lQ(!CY{B{QG26LceQ9L44qjFyrv- zCa8L(2>Vji{n_J#*MaJZZ2vi5wzW->-Y$tb4!5JDc0 zCF7By)1EYrKK?x`C6aQ&%1J>#qu4u@u)2b+d@*u}(g#<6A^qd}htLzL%DAa*gR~-@ z%?w@EcRa-AtzzeovR)^4(_6V~DnfS>5`3fc9$xNgKgJxHg$MK_m1sT_lUlH$6 z${o`xI}>(d(|V8+cBwnY6++nz{o@1+TE#X8Zla*HKhC1Z7VksJ9=u2BoIRei)~JKa z6hN#CDfnn=ebC_`KjKsad3k9NTOW9SVz7w z;q5@X&7wz4-rFHYcl&Dffc9OE4dw6bgwMt-EhJ5}G@K&|c{oEF%@jtpvhKsC!EAMZ zo;&z9A9_v$frbx?Fy5)$tt|Vexw8oOGm_<@;zFM&Ffl`LDH~jZ&_8K)OMlZy>wMpN z--s6?xgO6qaAcX|oKn(wS*@e+Qr?8|6iGe95)vexrDow z*>@{Tau;WQa%p!va`_+5>>T{;T>M;Y|Zkf65q7v_*C6Q#)Y- z@m!B!MoIbH%py2Nf<^j+iRj8ig3H0T*Y;iqtqMpaAZt(0{Jiajg$2KPzv>Bu!t+o} ze)t<2Z`?#Q7g%qGXTvZXURzJ?n_8$a@c8Lf5CDzzo2M+fdDIo@1BQ%iB!X15KggRk^O%63`0Y0i}d;uAAKR7!S)Y`@xu@ zB_l{_?N$v+FCW&Vb}<53TJ;%JU`nogrB#eS*BK4mdsxU?42ldK(eYUp_n}p`U%u->o zkG2KP2NkhNZY`L~`+9x8T7zB&T788^V8y{16RpW^fh^N)tcHlLPGK0@$X>7~|NFx?d@ zFjpfDsu%x=bO2a82Dsc` z3L=s3@xj9Rd4UuGAROgxAEmmEu$gK3fkeSVHzBMO2cSu8F$i2-e0ifk>Lc;MnDp+o zJjJ+nEA)?Jear7-Ehx!P;W)Hfvmu~4DZNvUj3xedtxJsBtFeUml;=f8YPPXd8GHQc z`Q@{4p#E;WH%zEwz65z*%B1uxszeuAkKY5B9Qb-E$FKElSKy%l)p8u%X*$nB3e0tiZRD4On~Og$K?;4dK#+Rm%98N zmh`;X!APK%sNFr*!K$!hclSms;+;%3nM7v#?~CU1iA3RGN_m8;_MKycKN4QWUcfGg z@Op2B;RF}v7h?|(56!Qyr4XMGc~ju4Csr~(<5kKroJC0M7CfyLec>#%k0XdrSkemE zGxjs&fT}-10?Gwz@b-B6p$`xb+8(R>6#sr8o2#zJ)aYGs%k)nliA#jHC1O zBK+j^5EmTIB#>Jt3&~FV7V`^zY=Vk`s{?@u3xQJ}9AU28g+^RE37ppgd%hj?pwGi> zBta_@yltxnchO-B4pY=pyNmNMZZjJ|!S zpHI#OHeUzK@w*;5fAq-e`VGy52cDB!9(TekXW{++d})pC2Hn2;HRpzs!My-y?V#^V za=PNX8PS9IbGD&uw!^9AqVw;BE5nC_Dini-|GqTeBtPdu%jU;br%*Fk)IiHC+w-f* zc__)cwTo^pn@Q+aW!-0IsfqQV1HkyJRgmp2i+jWti`=!qOwT6yJP=PA6B>|aOsYS^ll z{)eSY0$yV2ur5l^YHGq@0@}p4L*TMns<(vVYCSI;XBjn482-2#C+mOTC$TLGnOjQc?*pV#;t0m>7|j>bJftmN9NAOIj+RYb&Ph)NR$fjj zR(@6M=UIts8Z3~k;>sZ)czSkp_l+QgB0foM#QlNf81%Wr#GktqiQj*CO?f5=X|-+< z!kmaLXnflNF8M7zoy&N^LNqXTe`e?Pa_fmywL^^=f=k5w_?H$u9VwwV%y!eCQQb!pa1*{v{85Q#+&Vk!_-h=;B zXK)8D`{6CU3Y2>t1ptPg`t+|m8#exa_8IH|s4ksDx^%uKuxPdWq(bJ!iY;fiB#)>> z^pzp|gn|X1-oJ}&BfVJRjZmN?V|_c22KfPQ2XVj|fOA0SkEii#ow`*0_7kq|?uXv3kvxgaP+h}M*_mh~V_TBo zcny1ET%nmVpw|+yvF}zELTbL^`2O`kP`x;s0OM>b*pM4-=NuI%BV61f;(o(TWZZpH zd|1y-9gm0SFC8$%D=j9-hX17t8AiB?{W0j#ulyji_@Vps4GDd?4Y#Lnb-lg$LnI?b zz-+f3i^=%snPV`fGeoWox0UK7*;66}`>(U&@Z17a!my=E8IM=K20_5G{@=+mwPdz9 z(`45n{|IkD7#~~eF6Pl}KM&%<3oYrgLqqXdg7Bm$v+tvQP7w2fQnEDcWWgMvn^2q~ zSsCyO`;T+B!;*Q1dYu@-Huk}Cwa+RIiKM%ghpA6fwYhQQH+{Yaf4l@f77p2LVZ|+% zpJvu94|&%Nk7mBD8moIwJ^C;j)gRrh{B6qQ~Y&Ah`_Bx=O!QAiLW) zd(5&qgD{~d>g15K@&S5Cft35U`2l3dj;etn@)|kE`ilY@$v-Gdx29Ra?rUSgm07|g zrUltH;ts_5++w6xa6MVIxh2Jj`9A{UceG2DpdWCsE6R(VGFYN;+jvY@jgdH(zT^g@ ztO)i*3H*iD_?8t?`7U5l<~gG1H1(gT|fBX!$u!#?) zS82A36dIwu!th*m6NFM>vo5!j3vtN)fP{OaX8dvg2G}9nFu9~Xc|0uSJP1l$fW7Pb zx}IYTJg81t>&VBdMK>wMmhxj-&qN>PV+i=*1FpY)*Vm8D%S)r)d4So84RN6zNPiqG z(UCpFAx2Hekz3Ok&Q&-)Ixsm{HQ+eK(eUj7;Ot9`{X*J*TbR5lxqmcO6fq%qJm&C8 z3J}kPzujuQ5dTAweeK`Tuw4;Y`jDUsRc^a_|2g0s7$)y;v&}aI# z1&@=Vi-!O3yHw9*uZ(<~@-fbHl5g`L{mFgyt8fWFDV$jq|gsUJn zXfq|!2Y&XyMgE#I}qXB%_cJ7U!$y%Xu}aM*CJxGnEpsD;v@$~@g#mx6I8tRWUo zYFV_8X>YQm%^*0NuL^K?c$%fygf=)_(fDH{N=oB+povC)qw2zErkRjg*L=f?^(Xrk zAN)_1+a)m_6H81s4}w_S0vU##75^szk+D!{sWlq>M&`}OaAgMtlMgF50Z@ zwGEK~3ZDd8$O^Npum)=W4;x1u+rE*)D*6aBoa}7bq(O1b0Q#N-OQnynG|T=scUiOo z8m9e(G)_p}bQB6J6MJdDW}N&Z#U9GK+f?Px+4 zkkYhL{cQ2Eg7-P~zT(1x7B~&qiN2{&I{EZkya2_6@cs`;6_pJ(Y@YC@MmgJg7JdF~yz(g$IK`hC4ReafX`SY@P64g#F=HjHS1)EDjZT}Gn=mWm9 z0-SLu9t}+tK>AZRW!>W!hGPhvVarbsqwl!`^@kny1AtP?z7W@{u*Ns2RpumT(GE)Y zk4_tL1`MTgfjSbroJn<;O3U^z;et1Z6)jO0=Dfxs)~c?jhJFKu(4-U-*tP`6-C=at4uo^eH1qeOT)5*#TiIE-L#l5u*EjTD?_0L!sFFz zf7J7zoc|}w@74JGM^bt|WI`8sN%hIoZ=M>sW~k$E z#}rhVTvnP-f@W0sXf(%iGGn$nV{IjdS8&|~!?AFh-(E{Q$nzRvMY5-fIdvRP)qloW zwef6>d=W@YK13`m%X!>n!sTx}th;v2n`3SFnLqqkzxOjR)|eDfGJcRY$#1^5v3L=l z@VF}?OReGF@i#aL29}+8T#GpQX9sN&eoc_ja6$K!n?&Uf{G2^G5Wademlwf%%JI|g zJXmL+S9^%(EHbkd)=zi}?2&rydnEhk*!iCc{=aE(!c;=`|1no$m)y4DtU9jCm|6)1 z7dmlBTc*qFdCVJik1udV;2nL{1l;}RnN2dE1hbNFpnr;@OeP^go)(SP=b~Zjcx|oRAQ3I#HXr_UKo}FI7c2B^8 zsk|yHJn>``W2st z=a1Rvk{}Go;Ly1}{b`;(B;{rshm%s8 zgT#^!H42cOkjT$YXvx>VVAfd7v^(MO4iys&^ovU-#3y50;4-2;@sQ;FgC-z2yI$B& z%_INOwf2uL>*Kb||D(%~I#Gtr;7fCJEyZUCqxT;uhi;lxwrM5mPM9n}0Di~vB11Ig zpU(f3yKPmS=^Z;Xz2(SI?oagavHZ~hK{S2dz;-%sDXaw59j+HN{Ldt8d}=idS}PIx z()vHTd~ZSw750s%;PKAB58%mBFF4wF(Ek$PZDWc&3AVeQmNC zKQffK;G19DZ${c~Mm%@_6KyYx>aND6%~gA6#|z$P*ysYt^w70c&*p!05&WZTLl<50 zFF}*Wu^H|-oH^uhC0C*3GqITjz88%79R=PV9G;U{#^$XaXDt0)v||$%AeO|8A&@_p zpr~zGwG`KG;=4;*JarTK=wB=-DZcC9dP7={cR#k=|Iwx6Gyn3@nJ07dFm11&z3Bs0 zQvOhJa?URz5@>YCqTNllv;7WUcx}xR&b|H}$hV{Iv#Yt`qx&IHxBb<${S;@ku#SgK zXuuafd#mr_!7bfWzq2sk>&LWEl~LrvZri~lyMo5a#`2XbgO7LDmB8N{U)nDDfx7*k zC)$;|;v5+vf7aYukJZSV(reGp|HDvM$&vUQ_Omm$orGyvWZ$}Zf)JgMkuqa)Ub%L>_DlsErR?V%C9F*Z- zpH#>*U(OS<3i74skm1$DTB;MD5#b>luJNR5oReYiL!9bq&}NaX%9mdI1oGkQjD zOfM*AgU@^w^3^i={w%76pIT4b+y>{$U-|JJ%A`!Huj&48abJ&XkLT4@c021kSmvr{ z!$u_V1x(aBvkg8fzDNi#g6=B!c=zkSMYE)Q_ecpurAu!GZ%Bsb%CrJHe0lflW8!Sb zLtBVGu2N3)ygdRVj4}Kj*y<5|`$Rr>?o?L`MlHn0XJV$ig2z+2pR+lDA&Id2DQcJ$ z?Mgk?vgDA(K^@p*-=ZDerE%^ zQduhQ%Su8Kn@@|ESmtZcpElKw_98_N{nB$7pF&1#0dmrEbosO5Dqm!ra zeNXTXgBl{g=cw3zTsPuMv2Z1N5Q zb5QNp&EGkD+>o)%RcplBCe`GLxUb0-|84TdQ@5sp#idVk;fh|Uhg5~|CN-=y70YH> zR5+q7*I*R6S1%y}A3*P@@hp}n@8XiyYIB}lDjSf`u?*XEkf_|>g{sM@wn=j2WgNhB zP%?ePcGo(vCOWvrXxrdFexNW2vY1FnbgMmiX?%OP__{~NW*hnzShV*Vxti^bFWi)p zGH=zkSDrI;NH;M=C2*ITF6;G;TCHSzRpp)LqD$ZWndFEy^f>g-H==Ei=b!Ul`GAKD z+?zWz?-|G&HR!bNlMoD(M5G7OR}>-o2fkgQwQiZCcfhWYU#*P>8f7i%>U7u2yJO;y z&5ifV!mxbUu9r{W-A@U)Pf*|I=R4B>Yye#$M=W-1Pw}ia(dzGF;iWht_KaWGL&8Ln z3iDRygqUM>u#}pSmx&7IF}jk z=N{{w?Mz&Ky?*-sL&HLzUk|#@m71FrMu%C$Wn|bWFF&@3t53w67*)gw{L#K(lIx!z zuHu-=NN*aEVf7N(c@|hHe9+C+PAl>NwW}}9?X`8Js(HrGEsW2uYXf$nsuQy`#6DX- zYYV7pC#-P3ScacxX~*xx9!DoN${Y^Un2JvAMt~Cb>bDi6306R{HiBn8N|DM|TJy>Wf10#92l^oOC< z{PJ-~VeNkQtN20(BTcxd;R9vW;F8CC*}ZvpaP{^g9*rkFBrtOWTI=y*{{U|dX7A)N zrFv81>W#$t#D)S{o$uSXJ9Zut&)KX9;F#Mt#=>w*B4EQ5>1kyh(bx_WxlEAtQIn7j ze5%OKU+dvDXUNhcOTw+ta*2gJ%)cuN^aOezl5fH*Ev)#XLIz%t@10MDXFph^Gv=qh zQ@+F44x|8SE`p!V(V8QE40D@x-v7W|Af_d}smM$`hNw8Y@;#Wt{&ZiN9^@}b?3A=%u~p|Bjl4ha3GAF2ocP~K03e>>Hlh+mS(Lp)$- z{6G^EOZ9k6-NRC95=D_qoG-ZvW?cCz=dO81bcqK=^mbOZtTHi=-qj3Wj_?-P5b&;~SR$ zK2CcpgSR2>!o<@}=<#y9j__UAvty2+xeY@?h6~Dl)Ki8`#cMwUaJzrzQ)zU%lvqBz z9DIzU@v95$y>TLMjN$PRv;SP`;DX8o=Ocv<&qV@nsQNx}6mbCYMK+lw9R*VK-8Um~vdgzkNmK2OISUJEaVY45e;gp;4UH=_g=rOobtGH8x; zCE^5V6XUgGB;t$zw1hhvJieswV~X6d6J2Ue+Pc*qBp>$JB)AB9t9jfI4AF`CH_-y~ z%DUJ?{ARSGRfbl1eEsj~9^Y>}8SXlFK0o5#vQ7SHU`*;VU^&)o5 zOs+uo2u_3wPm4TpJlV|6-RcxDi249z=JarS-0*o^|31kfVMX{O*`dya`O7R`OX+KR zDo4PV_vr|S5TC%1*KO~KZtRJ7&6iYE_ZYr5`E;w?7W@mvrnTS$j_sV_7p@t{*yBgAW=9lVoUV))@!nh8F`_PLOM}Qzy$iQBV@e(8J4ar7BH=J2j_G z6pWCB^*8~&lye&6qclx3)pGBzSsa6^P!}mN{k~}1hShRK6mjp;HOc--Kf1MA=;6D+ zYB?`c8c;STzRuU6S(cJ<3Tq9y;b2 zFTga4$5F;J=f^zdvK$t7jISLfh^+N&w2{`=s+9iFu`aOr_QuV6DZ!1Kh{f}_a#fZ` z$d)kBZ0f0=C{w+AFA_;(ra78*#w7W5AOU%0N*1X;8^glL;eGFI!0qoaBWQq?P`FW6 z1KZ;8H%ny^Eny7pEU)PpWORIbLo?Ivz^-e06eO!;-4%A%ZAfYA>{M8*%xw zTdmNxwDYU)%hs1Q`d`q_{&Tf4($S{tKgg$nmkqCYqoC>EYjv+Q*)iL{1V_XxiQDFo zPJDt7Q{$j2SJ5oMsT@8Zf+ECUc&svgkczFDm{^k4=Jk50AdQ>8;rTTeu zJR2)NkMfx|y!KYF(%!4o&PJ+euediYy}J1wfLOyfy6Xq@rgFqBs-F&g0|XJ$x`!^42`mwC4mgj zz0_;MA%Ql^F9Nl%Phvv@p-m2cd#9dpKh5x-m|4GI9F5j2B4}x7%5hrC;R)_ZtLxAt zFo8O@y`RfBE>(E0SXm;BH3;m6N3li3&FBHN$|`lFeP}wtC4X00W2BDDH;7Iu5U`db zpeB5wDeE-vBMfe9Z`~qlBK%%ZC{}RCI}NGdEQ>k5Dq@WzX^Kd{XMQ!sV^8zHi79qz zLjN7e+jead|63WL?Fc?Q7VI8byX+4r`9qJ;ex2O?Fv)BxQ2kkox;pOu#XWdREh%r~ zgpTn6=^;pGt#uR>ET-*DuD?2qBFR|28fR-0SB_!iczPygN<`EVVJp8LAF*>D?8Ib) zSQLHrS^~8?5)Y1bG^4vfuf1Geq%ftct`mFA0)f^lMSkUO8kd9q=C_O6+Kf%+#V{WL}}6VcS6 z;Qvjc{M6S1y*3P&--*~g{xqB%hes5&b!olqWD38-S`GpR_TsG$YCF%sw>{jH^O6V1 z0QkQ+TBD3&=&UuN^S}662L1s}bx?i&5@Fb8sFUq0q{`B>A}C5d>gh#Z9Vmmhfn@a% zp{~k*oCPiu*TH!|bCdUN%&`13NIdWu zPMfIwJA>^QB=7G_OH}KtrpMn*v530kZOx!n4B^`vEMzct^Aje5qi+Un-Pr9vnsb}M zOHt0!uaY7KP@#&9GSn_I=1uu1J5rCgFBAgrUnzO51Ba4rSa_h`R@W44g3JVL`^MrU zuh5zf9tk8{NLDyM;Ec^C9?;POP3Y@21An8fj?O4tFXIJGUxaJOoy6=1PygIfPV#w; z@&tU)&#cl2wa=(%s~h@zd>}MLuTYKOVDC^fpw0OxYO}tE-}4MlZP|GRZN*N1J1Y$+ zd6k$!h3)=PY*#3Xq3~9=QGa`UD8h`md5giB1<0Q7peK$ zkOIHSEc3&_hZincdz3w0fSUIm=)09%w@YaS(Rj7D`4=nr1JndK{bI^`P{8WvkJ zmP9kyv+ft(CR5*H{;WXG==hXV2b6(S++?4^E(^c~zJUjFmW*Vq>rF7Lmerio4}WZZ z5)QZ5xB74SIKQGhb)#hqk+``{dJZKY0+ahl;f;>~lUq3`$nF9;c?#u8AN8sxik?i9 z(lBdPad!dVMjFnARk&`XuZtEPCnpYUp>ld*Mao& z$t`-dBzv8z1l*tanJhy1`SeNb^f}TLMGEm?-QnF}*?x%p-(0MBp`s~+-Dlp~))-SC z6SK_qq_BXWnifPEnZ`ZmQl_t7yUf(oN~D9E4hxH60V)MY#68V{UhoJRDZi*M&?>$C zZJP%{3?KFMi%UU@wVW^kd5}W0x4JsdZ_>Nynt{_foHoWb*2ogG5?VYgYy!5xMoMb| zg5%GXAuk`(0-=W$uA@9LmqE^E4B6cN+!^9Da*co-}u?5**ZU}kH_qYWNi_XfiO zU%&Ks0#bnVZW(K(kKxI72GMIu5`!Tu^4l5XEp=peDbON|i(2fVPbvy{FO}Z;1wX4; zzr1UDi1mN$P}%;}4LlOD$z-lFd=ISb&03Qx9aYE>1C#mZO+PY<6mI#x!7!&?B;3sC zd|9tNTm)D*7^#UY;$0#4p-mE5f+~vIa@G`~Atj9iWgoM(7-5A=Z_FS7G;_k0+1eZd znt&(b<~YIE5NY=-%+0diu(!!EFnX0qSW;(x;Hqzo&rjMBBtRLJ46F`w0(`amv*CbC zONle&1Kd;{j&Y%m4I-d0nJ9t1zVbOPl?3S+>7#(}DSEQg%`>*U?_=_kxBCdDIj?L6 zWAUp1u1WrA_rEZskmZbaq)S=k)6Z;Xv8LZdrue7n_Jkbhy)@3`#qX+JMBz(sTR13%7tvA}PbhF>&dbeEH z?}hZZ0X+k4Bqp-k-^?y^Dwj0o$*%r-bZ&Ad45oHzo=<9N9|bt+Hj8X4{+#^I-*(k- z((ig;*J2@^@m_EDN@KKp+tKFYwLY9bG385;g{*U}S-V-O|C`?CJD4`|ZiVsqGo&N7 z2KlcD&0JQWO@^Ia`IBdRXqRLo^M)Oof8uNDVCF$v_S9eeB|YiH*TN|aqKC+3>k+uR zoY7zH+XtS9a2)lGN5{NZdhz};ZG&gG*aSBxM{Z@JKmvva-ySx0==O0=;1i zn$i$cL7$J#+49TQDzXnr{}VoH$D$I55P)(9-Ak@^VAdaEGWb7%I43Yp7#on_s5fQ! z-O{|wo=ItW9~CxZk$ve?RtDUc6cX(xs*j8Og;7T}fT+MJsF8J07|M-deWL0En(mps zOY^lNP!?q|`O97ck_BLRfHvVTw2LC~)Z93d&w8TRXG zzUKJd_fBnFQZyJoIkrKe*@wXQX?Jib8eNdgmVcOj#7;D3L?5*sFH7_M&v8O(H99RQ zHi-2`l~dEJHF&B0=CB(49759g41d|7%8c(ay7lsz(QaqeM814AUwn*n`N?ja#N9p7 z(rc`nim!8uW&xBD6QD@efN`>aH_Mx&*}ix!PCdmF`S_7_rgedF?Dgm(J1K#mFn1nq z!WLM(gUssPe@PwdaJn?(26uwSE}#jh2JNZje5PLGd{T7&Z zKLj=ASs1f|dNa;60JBdQfPRpWXI`|S$TWl6^ld?Z`SPn9Xo}Y{5Mt}mR(7^;rooM<;r!*JZ{=2WBUt-5lP*#D zt_h(&WN$Q^Gm_PKKm>ZUqXSX|OrQh^One!-Q*$0E(#Nki{#fk||D~ zYPbA=-*}n-(Ex+hCyABg-1#>o^uDx36^2{>EaIm8k-qD?+t`m}?IiVrPUS|}BoFwo zX_RHZvkXONN8`UtisFiX(r(B9dTqxhi^wp^vY=za`Sz3W9k-iB8!#bC_>#SBV)ZVj zQpRyn>;h~Fy|BEp#_bZG&$D^vbn5txh#dCV=>IVyad9vtuoIO1_y}jMqXUxdyCd#U z_Bzgt8?H%sn&EgeD@{=P0QD_IYg>c4L`Ek`9|G?5^cYX+EDTWai#l1EO)Zc7IfOl2 zYX9gVjBpTb_jrK8Nkp-Ig3)<8i^Wv@$ z;>G?96gAwe>X5WlMvXNYGUFyh@weKg)+yn{|N7kzn6BBUR(*opsqgU{wcP8XDvVLr zu~9Lj%7G3?Je9w%n*n`@x_l zNMzvM+*mbUVB>2Ib37c~ZMaRX_D_r{X3k%0ljkm?`+<}D2`P9@-YQufJ^6^SYy4O9 zE4Qndah+d6w*$rI-nt8$q)ny}+w7Z}4CYXC^}KfQioP9qTDV(pw@erg>b!;i{IQe@ z7rqqjz1i=?nTdY5BRsKI^xH&xH2MikF$(KZ&BDYI?*7ox-xXXUN-TgW8PM?K zko(J)Pg)8n*=e#aahGZe%Wmt)?bfG8o6P+osfzVl!cOF0=3YI3eo4x%R~LxkY|OV~ zaRuvq?$?UfL9-&GY*Pw0B)o)mUN55y0*O2YF`O%0L28sR|AkMkn$ozuAu)k+?wovr z;$iLqped?N;Kj;)Z8?TaKYtqbB@^~UP@H>ad^JtVIxy&`_Gt$NDSQKq5DOxgJPE7M zL(%@VHt(SS?7-!fIG5qSA#sA)JUmDXYT1T`*556mb)m|L>g?6M`8nzP=v1SXzLtQZTJmKdDz{`he2(5r{fS&L0*YX#Gitk5PqOYIMnt$F>3&S> z55O?9uz9FP_8`SZ=6bzV3Zj2><6#E$ODVwq?3eSJ=r#@MmO|iEz#QexLBQ*YoI@R?yjgSOYbXUaZYwp%k!#+d8qncWU7hHeYPN!DPivnJO6oWm z5tjS_AXNO)h@ZG@m_Gu?vGvUyyfDWvd!D>yNGthoRz~GeaHDeUl#F=Zz zgGJkF`0*7zWjwx~CBQTiF#lE%*4nm;cfxw8E)76^eMd49!PPB z$dmu#TY6`Iq|t@Ompg2H?*D9!($9N9j;|9CP~yMr_wRoGGYcO&v!_s_$KaxX6ro={YWIn-C$sUUXg|?EEW! zkg>Cd1cS;8eUm{HOONUE8(C|RA-*#y(;;RYfq@X4G2Q{g!Y3*bE!*|)X^0VaZQgLm zbA4M2yZIFt3TIbmJt*Q&+&IJ#?WbJ<l#(_BAIy7x#YkQ8KHXX0peX_moE9FeoVW*#WG|8DRHrp#a zJKa9HOoZYzle5&~wt8)9Ya^CK(#%A14KxO{X9G=`ZV~2vR2P%13&S(>@6yx{mLV<^ zw7kHIY{ep|=k70_=Lu`hvWbxrcgPcGB!*gy{XF@YCr|Ob2HscwK<^;fBS*C>Ai@)# z7x%y{p5XanbTw4`D{0x#w+Q|ND8YjyA!47R^Z+INk07eA-mT{tvv+_Zw9W#R12UeM zQ42sMCx)xa!5ok;t7yafo`mV)LyPpiFCL}rtUhXUcL-|qjbUNXGpgrsj{aPbu3xwuIqdW(r=IX5hyac7zKR619mrdUFBsJRmn5MH z)bIA9rdvIfl|QT|9yrr(wwUSCZs~XD0V;X9)?xAQZ8Pfu=L&ovJTn7dOVmH_!5XOE z&4V`GYb@Qqq<=sQg#-7v-)&9z_T>A2+fGFejW!YAK`>0hSVQIb&USJ3|xu8_?rprWIFb>%nVMYbz-`6jd!P#wA=t`JQM1|4Db9ViC!E7N%E zEJ&S&NiMA1v>S@`OryOCRzwPWuA2ZWE7Yt9#WzNaB9c0UOD<1J3t4wvU99;;bT+EG zY2$UtT@Kkh?~P}$(qlL(xv5ckDEWDa&^z$js(6}_PW*AJFv5)+r)G)=F1W38z7Ywk zx3XV#r<@6n-{?MMb1ds6*)=z4!TCeyP8e)plf97I`C~~FSG6$!`WI^V5@NZ_?IZuL zDCOH(m;^axbNSD;?Cr!6BNz-jom(ywY0#zirOyEa-%##9=jC@Mz|MU)%un0F+x|!& z7Xc+b798&1QH#QG#+XTEE)=lojf%EEU8&MOfrWPE?E5n7xo&W`arP9g%n!f9LN@h z#=*hUNKMBs$4X)!Yiw;SXRl^#9&fB~?W=FCTt%7%Oa35~IC&!FAwrb&Mo{37i15II zl|;;gJ^{@RLE%Z3_n%&3M*r!RqGymy%!9LB$J!|8FXtFaLOf~+O&u#SnTswcaPWk> z)*6}nRJUTto#i|gyPu~mQ`=~x_-}b_H*SKJJmDSks}D43L4kKc3|-y}2DVmCu|m6k zv5}~j{u3X6K>TCw&&6gNM2bFuQ)*7w9rokGPzzR?aj(NW zyIztLw|@Hf@s@5XQOiWxk$WfY7)NaagiP`kx2k9FDq8)jzxP($_+%=Y8e_Mj@~m|d z$#OmMqz$}NFB)m*crAYt?XX`qo%>Fbo!_K+vLI1|N;&u)r@VijG{h1IHM?$QLmHX2 zO(+OYA`6rJLbS`{P-}8}-i}SR7y4__9l9O#-CDiLu=Qk;7Y6#KPGSS20Z7VZhOBF= zbMY4rp1Ms}*r0f%BLL2s#a;Sqxc1uC+V`U zLb&74Iec}iKgmtvRX;}E`Nf-hu@hxtnw!3vs)s5=HoW!3L)`uTvxEs07YRkki(<0k zSo{by*uWU3^_%3dNi79N+%!r4`Zn?}w!=y>80dAXTMR*UNotM<^Q{=oFIDU#jAAb9 zo^Qq=01866u(z2$!_Ow# z>|7#$Mo;@W^AeJUaJ7A{h*eLoQ}NE0b+X?RibBF?+Ok?h=v8bf^Oh+*HbgVrD$eQG zpbV3q{oZ|w^;#lr0%6#+46v7>Dp5pLUgE_SL*24gd4$4Cz+7K6?WoGi>+H+ex+23b zui@nGuMkOU!^BolvuZt6W8NEfcv2%+F@V{nZmJmA`@*4}r|&;dtNN!Qp}3SFl$AJjnwrKcS?^cPr&QI22T zv%?(|#DX6xM%v_q~YAt_LX@I8+X;U5fS;(85|}<`2xmJ$PQjV zH0!=b_{CuCJ-59ZMCl=VDiLF2$Xqk)ox_eDcbpayO_8dP7mq;@rSn20*)1$ih|@eU z@Dp}$SG9=z>FxkEZ&m(W_uL0@r=@Cva66sr$h;ysz9FTWe+!*K&@Kv<$Y~KqRVDJ> zIN+i}E`#U~JIpsG8-m3shLX5;jKS4H_eo8uZC1}cZ;U4MOZVrJ+=Qq5=L#lIn4B{L z^wT3xy`V>K>-M%DIXuN>74mRiq16(JG&_?6RM%k7HHDMC3`l-eu}9{ik-3P(cLvJz zR!-sRa>YL9O;OLg0>vziPE;JsugS)c*%qrf;fQ5Q{X0hM(wHl=k%>cW*BX^B@y7d* zRyWeW*kID|txWrbm*$eM8tZ6E`BZ~_=A6TOC~56nduwPsZT@wJVJ0h7b?agHw&O7Mh+}yMQgh z+JXCa>S^I;(br37&-65flWs>EUv2muh(2s|@xRiF+BwYN@Svrtu(5*$p?EETWqc-> zMmoLNgW9mk60wzSVhD>~P?08i!(;eX_Ds~UKQ-n!HTq>;9$kuwBch#%LVB!j@K2a}uJ!Tee{ak)Tp zM|o6{mE;~NIc`dT|3N-mfutw*zJ~y|of3M&Q*4>N^|A}i@XKXaWaKquAE9BTYsBBs zE4?zlZ2bJv+J?VWMz^!qxRDAd?%$Py)go;xpRA7CG*|b{(k_*$TRKM`7E_?i>gEj| zjf#~*H7+hzNiblo z*hSO@_Q3`2(IB|jn62+(4z2KCoFwYj8$sk`p~&57`79nJSR>&B=h4LX@ohHndae)A zHs!NcCJ+G(o$vwuxa0SjU+_6s{0Rk~3GV5Gd)$G34TO2@g97b92AG$YsqHW%^g_*~ z3lV}Jie&m=W^{xI0|mN{=jy`yuA^8<4ruw~uZp`8rS^RXm_~i|x~g1i#`Lk-a$K&ys%yHr;b4 z`S;TKf$Ky8A2Qu{R`ZVZK&;ahDBD@gY5szBx78mtT z#TY^zWeHM;7@-pwK0~|mlBDe3?34+9VDGR5zkujP{LTo!t0XIb^a%$HVe_Cyto?s= z*mnDY%ke8zzUZMUiB|6zp(@hL3Hbi}=6LKchNi$A5)rJ%pR4}d=6C@w@Dj>0AOe$9eRly^F^Ov zm01qe1u&cAHNMMBih$0mF~CuGD^wti37*g=lZFExN>7Xf7wJpNk)4=TDKdb-zbjqf zJz3Z9{(JI=07h37_`e*0nKEJ3i}L>TVPj~ha%Yy#dxjtH7UK;?{iMJl3QVHDBK>a! zyTIr=O*WPkG4CUoOIYnA`L_$?DIyE#!kJ4DK9hN*dInO0Fy6W_!0iQr35$IDgdp6{ zLSNzCVwE2)|;m|5$f99VC-{IZY-@I_81p9`eTiC6iD5uVBz??7nxFPNJ!s zbtvy&OU&vp6~PB2Nk0~-V46>(^cAYm{`yg*GGgh|7v%;C{(q}BnLoZS%Ak+-DHMo` zV^SI-qhYSkN4BMWQ7yO*C!~m9P_GHWMks}~U)*|H+A=cP`tJ~MvUQpLduPMs`nld= zo5?;XheZ~c+p-SrbS=~G7 z_|4x}?2FRIR?B_3e_XV4 zX9Q%~AiQzSs6N}(nb}Y75tqNpRJ_O@xlHqM&2V43SUbgz6I8#uJJ~iGd4o9zyq#Lo`eI|(Pr;;a0aZ~G_I`M9FC?uakO3Epk%~k_e2z* z%&Ak<#yY$^lrMEpE^|*Vch@R)*ZTd=@YtYt+L&0=C#YWifnMk$ad~TXRW{dX2KE+b zV)G{gmeiAdn%$X7xC)G?DMWYA1r??oicUf= zsrOHBV-X&HaxE<#OTPw&LrkKE-qpuB7F<1?Qxz8LM{g&F!bZb50%=VlS+x2vMpYi< zk)-CQJ|J-^Cytt?#XCy6ig|#_QBu_?fxSU8Pz5=a0(_c}R3-%%-7WkB7hLTA7D5xu zRe6*_3{N#onpcZDE-u+F)0a-;0y^d980zK91b51+sa%t^sFSp*QNKm5qRPJc+lH0i z_{L5x*at-NYzbwrkd@t-#U_p2iVipCEDn0R`74JYI^Nk2ipgd3OBds9E3u*LfXDM&DCN8HYqT~_KGihij)6{_#poViu~ zd?>13=_s8#CkH!LLN4gVw^HqQX8BF}hD1WP?rIaJQ}2}Gz46C)h3Dqdq;7BdbXj&GNd!MIB5yG8Irez?T-gJxAF%&` zHxI}dY+H4GawslXyb9N9-!1p%`Fv?ydeAOE~?wSrCbg`cm#!8-f(iIP26Qv8V3F`rAu9p};;P-pbqZ)r8_ChCZ;1LWUeRV2F zhq^9^N2A_-_qdO3H37!{L0u9Pgywwm4mA!0=cUoVYJXz7rycwbK{3gX5b1vHjg@f@ zC+WWNq5y$%0?y!^!QfrGJ2Ale?sIG)&xL2+UE750u>@!}_zX@K3~m(Gfy23j!Pj(m zZ4Y&xVgqTVZjjjB&;bIFgya+YzedKn^9Amm z-CZQ_2h4^pi?440uS7>MI1WPR>x;L(Nr_Dhle)RV?;f}oGiIahtXFT1i-Xbo-aTI5 zR2!S|y?dxbi%okkb(8B)Mca=}dmMe1@GUs*ilx&A<)GR!>e~b7U)f ze~FC#qhS}ELc~~+{7dW0tdp4O-E#69px`!3bS4eUo8jQhv4?=~Dsr zsoZnAO8>fPdPC5Iht8IE-Mo37{+L#pgjSlAwugka=bO-L!k(_dkNC1!PM?VfyXgA5 z{2w9}_xHW&?oC=Uulu1HMa^mWgmyB8(k-q3nJD)ioAJua{Mo-$fZ4vSjta4m^%`s>#qETT)7&Ne&i{#Z z{Y0996txo#j(e9E^Yqi*q|dZjCQ?tG9^>G3J!ckpLY_GO+IAYk(yJ1YNhpYQ2yM*8 zr1n;Z8%*7Nn1-0J7m^nHl6Ez96Gdv=)17^_?kV*b>L*Vi2)T_SBp*mOBU1bswREzp zuc&VwT}GGpDn=m;6G_Au$e}R!tco*_GloYlD?5hqqsqwQ)$<{Zp)b z%{Sh9c9OXf4_v^&nO~IJWXqjPf!zIR$pmq?)Zi2ba0&}Jg&v&33{GJLr}#^QwWD&O zzmuRg@lczVn~D#}3VdV*H?o2TSs{U}c#N!|M^>map_F%*MlEAZHfzuBrjzfcM}okM zOa0Q+gVNMP(%DbMwstbd8d`N)K820 zxR+E#h)@u`Q1G}=0FZ+b3}6Hc7(ow4FoO|{U<51p6&?6h^mp(lflg_LbQlj?r!;$K zkKu)A;Du=7g=pl3=&uXW&XC&5|??5rZGixyBil?xIKacM;y78Sz^!7kboa@qSLfv6qI3aOA`CrmL zCnu8t&@kO~3uCRPtp#=e!`~$CmN>&*XZyOudizw4&^Q7rd)W+(`UKAqp;)mzuzCgd zIgVyWzq6l$>hF4YP7eh|$Aw(>lEubALkD4>5n(rXw)Rxf5#@(;qolBjrmCQ6Fm{&i zoWy}zcXyZZ!XT)!@%1;?F&wSf>~^3OiH?qZHe7VyyH@ z!lHJ#%IyIwgrO9|u;jzA6v8^=@%@>pX&9(6WJ4m;(2`huwM6`TChDA;n10oy{;~M} zvBdtdgnkS|Og3wb5nYT?VQtHn0*qsrIAKzGLADCs3%N1yMRr#5jzSZYjmPl0`T z2hh_`Fbh5@-eqS6)th@gsu^QWlZ ziH#6yqD^`x9<;PVbFnIO_~%Z?<3DW=4@JCUm26|>=3-9QTX3FKl|v`W9EVae7(@83 zr#yn?Hd+ceH4j&{i)Y(Qlq-EqGW4$l`07uj&23iX>cZlz0bn*wIgJ+!aWW{Rz*pd{ z$BU9NW{u)8<}ZY;U>5b_9cJy5_orO?wtRqQ|0Nlov8Y4ix8?_{mj9;Pryn5jfVu~` zJpl25S8rVob0pHfdGeIEIls(Ox)Bg+JbU9rvtGN_=0=7LhOYm*%~+oJ44VA>SR^fw zW~?ZFxOvapnd;s$QBXDazR-MUNE!b9oEN&gK9a;WD7IjoLq)SQw9lu;XHEXMW!1RX zN9OxDvy=Mz@S0h-&fo1|$H4NJuqT2f9k>omzJO)j8;Konx?}oVANl)lPHG}k#@%Xv z+e5&CC~RPXpV$DbLsDQoPGB7D^5L)a*ozlioXKNFo`0JSW&CmWJ6~`s)E6h8xkq=J zB7sq&ha4)09Gj+o=1*tIr4Bi0|43M>kXosbidU2oRhHF+z1Mc0$N(AtIB>)>2LT}p z&A*FAt{WEX`b8vd>LfNrUu)_h=WHAOrVIS0um8lo;6{ySy}Z{+@^=U-FDO0ttF7mQ z;VzDg*HyaQ(=5iGWFGH#ECifnQa=gsH2A7NC0tUZ46MA< zQjH6fU0{M65{mQ!AC*o~h2fhjcVrJ^fu5QSlEHEm$EWQXUT}X`85iH^>H(7etG{zt z^;n)f7n*;u;&mR=elo`M4QC!UEtMO;e{mB>--**kfaF@+9CUmN{s_XlVY+DjEAi<0 zF(?{{d!UbK$BI#khhZ5<-aS6!JL;r5U`magiiQEYoFAxzk}JV?bV8k7=b3pYAMd5t zU=eq`XNFsPe_Q|DJ4}SOg%=^jr4XZ6xu@z1us5GzR0`k%YwigFXi)J$L@}$F)h`}v zBJ=3+$SVe`^q+0%6*EL@mxD?X{pNq+ykqKlkG-BwqvtJ!5gBoqoL63A3KzQT^l>TN zUf5MqK966c;>q6*T@jVmPBcFD<%kDAH;!miSD0&j`4HIge}4i0Ya4I!sDlJ4vnH~Y z_VX~o?)A>iN7Sb@Q;Ak}!{KNAQsv z&qT{=(5$85)c|{m^hzuSIwavs-%dXE%THnUh$DZ~79jGWd5`UTna>TOUSnJlYG(wA zlL6NRxPn+lh4Bx*Y>lohhu(2{MRhVdI-7(x-Vk_20g}+7QmY#UTU-*ds~el&?PZP! zZV+4&lCwziM7RP#`2N?rk@LyYhZ-m_3Dsbvuu@IE6?@F&VMpHlt#yccN%~~o*k#}< zLF_6?4BvBbGgpab<22G0+QGVO9+ik$ZC51_gSzG@^&+ zlzMTnAwz%9^r&sTobpEp?Smyqjp~%Pqw@>HjhGN`jz#8i5aosLTG^oGV>M|SEUJ$Z zls7-NTz|gbat&BYPzneVDq*7z7G5V<=bd;>56V7s>*klgXFDH8W~*IrFd~gUUQj+P zup+hN@3@(eMhKqWYZIQQyOK4~q$9o|8lHvi5+TQ;0nmFI)C|BG!%}> z<}OCB|Gl}j`LN6HC!gUjZg9R4DiM;+QpwzxwF#cl|mv$eR zfZ$2IC6`Bs82##%5KaYb8p&+1YlwjbEJ%iF3t3Bm|9|#pI&fs!#5L^SO~Pz=#Jx<- zD|MX?aNGiE&u){Y9k6}!uSrJtoYz0yJRH37O*`N3Kq)wAw z%0k^(nie(b6C`4|TZ`?!JEl`}2ZPR~O0a2Wh93Kp)=ncS_D>Si$g!62I`tDGM#tkLn|r8B3W>mqjM`WW$E(YP^(Mq zi8W{UxX40HC$9v1&D6z9BXm>m`$LCR@aCTBbC;KQN|n!;y;Iv=N+X*axZ^(DGtY|L z{FRbd`3+~${<~3@yV(zqXnuVuZ-JF}Q_;{rX8LD5r^+j_d$J$hUiAuycIzJ83;Cx3 z(q?t$zwB*@)W78`^AiCqzHh^AsFtp+w^_|wsuWwsX_!eLFMliTEkw9`8DLvb+-Gn@ zjpMK|hZXbhm*h9wZX6@u?9!Q;Qnk^1$mdB`yHVbl6IFiGJm6A?a7e#%Ki)t)FsbN7 zJZ3jlt*lUbKH$-5^ukI&uJ!z#s_0r47U5|J=ea}b2F?=9;=F0wai-wcwxhtPQ?ib7 zIGo$xz&5B;Pw5j!@!t9$2VGJX{npO+gqzOuv%GPQXKZtvC#RFA7fP8%xISps|Ld+C z>9spfeI)5*vbRdm*UHl*MIT^XkR1E&U^pkucZqTIz%LTK06xBVJ0@`w=4kd61Z4mnJGo z?kd_pSX{Sy%AVcCIcLGFV(a&S-9xethuljkikrhwDyJccWmkda ?lwbbAwIBQ$vShaj1(OMi-5z$}bA-x7a1<`RsQpeyfqy zAyC3og?zl}Ygi)e$BsW`>l4!$CgLJ`<+B;v2nO>Ue%fK_tF&yeELnnLUs-+3@2<(S z?)7qDpr(kodf{ZQOcJfd@?@c#NL_$)maeMQN=eLJgr`IdzMC#4UViwSLGt%-mT^|Q ztLs%wlUoO`E1{~S5x^Z^Q=*-nccm-N)agl2%H$G!lOXBT`)=bFC%!oLXWDm}OPKC# zbW54^K6J%AWSWF?l3a#5k>cx*N~{Vj7fewNJD44Nv)*7^PM#rYuev>kRDSK*oM2pB z^(W5NkE4kJ%J5&o11ybeEajj6pBvd^WvzFJOg(7*g}3K8qb#84b>sZWA5`5@Y~abfMQOX&nGfAcFAKozqWZ>m_+ zS=>%n{m)CWtvjXdaj)@@h_(ow+~28rT7b-_03{6Ni`KOJjXlR@5qG)E!x9~-D2Nzp zegkGKk zzoO+3RwjOaSAq`R)l;Mj+bwNk+m&tn_e1y%0F%2b`S5@z8vs+dLacrnJ*MEdZ{4gi!7niJ z{~up-Ma|$pd`)RG6)MIF8a3#?>Gw`Gd|*xv z#yIEH)fihXgbrJ6ldY$kaW_MIyT6LNq`h{^#(DAh3w3{r5Mn0qk2raw_%-?^6?A7~ zUOfkuwd)g#E*--Qp8lng$$LG>Mf7s)o70@My=Qo;Oz~cBc+}7Bn;(BPR=WEUtj5k1-V)?_f9kzDCryIZa z@Asz_=qj&SE2Y22`r^xGDO*OL;cg1sOd$RQYa;P5>M}=2 z9Ova_&hp_?X9^LaM`i+6`&h_Z#W_h;N06Uu`@O$-3NWo{Rb$Sh?3A^v#RW=S2@C66 z0UW?P5e&6Uh(hE#JczF2q_L&riyzx4>rB`pXnJR=CC&`~56Qto8&2$J`m9>Tz@r-C zA@C^LpW@NG3#N8DMULSS1_6rKPuKI|CqUSvNbt3b%!^*@dgtf8dy)nepV(L0UNO{N zxV$7W>D+56el>WQ-7y%hfqwopJpQ`&9YOIe;P9h7Kf2Ewz=V>_TP=_PU?-fH>k~{L zd2f1C*7jOejN-n$?C3lLU~9mFaYs@O!H3xx-{)JGKTP(XhIn^gDso{b3Oc`erUk>& z@SZEeqm#<`_%gT*w)^6Lgur^xL&q=&G7NhDLqW=SLSIt`1}+jZgce6?mn`YzMlGW)3;7ZVg^pw_l@+pYkW$ z={=i5T;Dut(sc1-Z`Z^ye=cn-I2USC0=oGEiXSf8(6NVIJient4&Uer|1X$_i?`#f zPw1hMNdZ<7P_1Fn@){6)hw0L^y?;G;LVMg%K@Ho?gIHji60 zm|t_LrfhFEpydn~LYrQGuNsLl>FK%xwk*1`hFH|jc=!4ubjy!}h{?KaB-X|3`uDF# zv+pQ58x)G6+5aI4cNvGxtlIzhv0x8@TywDuE^OW z4Am+nhs7A!t12~)+KK;}RW)c_IgeeaPF34?H*L5i-BXY5pd5(vp;`X0v*}kFlhjJn z5VbKszb+EUp_F+Ob9+qCr-L1L0PVQGTZH(Z*KdH~NUManQN3bR=#+DSvX3wwo@!VYFU5d7u{wvBVYZU-WFFi=%-a+%V@o(+_?Yt^?LP=)sl2b zAbg_@%I3tRq}h5qY3A?VQa+XeWEk)PIr*nD_T7r#QkWHCZ>tb~yD~?GM#0VD+a|hN zp9sEND5V}JWws!nL~`-ivxh`H3EUgAMztm{z4yzJ+P+p2UY2Oz&GI=JZoY0Ni~73O zER!@mTf%RYT<`UKN@@3rlLnNsU76gxgU701x;YSLJwu+MEGUlqS4~n}T&vn-t!O0X z&B%|*<4;L{Ixmz=Suddn-x`uOOaG*BFB3G#&Or+@6MvA~i+8K^`Q$#tXZ_*K z5!73J+2bDk#Rs8(;C{gnE||-+;V)!S$F=s?f-F{S8lPzC&JV6BX=b^rceLZ1#sR~B zjEt@>aYd48gKAM3)B=c4Yk2|9LCQSZbJ!xK_m^SHtd~HdI*rp2Ib|B2-RInIfnT}> zRsj?JG6H(83Tt0(0Xo>eTK8&rwLy`;U#4?u=`w`F00k~qy5mLtfV+7EI;%IXVrE03 zsF)Flmc`}2ROe68&w)hLfSZSgPq05wu;rftu#yR-n?O$%%%()vhNZ9AbQC&z#x49h za}MwdIsb{wN8w~7usf9_!`x-lJges7bj%Fz5Oc!Cn%j&Or>|l0x?#MuoApsmU(x+d zZ*uOF_ZdfQ=VgHTn6)-~i;~}tvl1H_weF;~QEvg*B4r(_YuZ<8RD^d596H!->YIYz zMtlymNUB3`Bmk9ROp3MAL4&n*I&m27jEZ^e#v$Gl^aSz`PI$%f93(>WQBa(g$Zc}% zn`EXnijDD}9`=`Z1vBFv5JypkeJ4Qh)4)K-Yzd~r=JeLDg?0~X1*F>WSFT)Pyz*jw z?~Zm!;)*z3Zai%F_4R8k6yRkGn-Ar?))@?e*IcQQk(r+?W_VX@>H2KiussazeG*t31HDEJj+)4b{2Y+Kng|3%>ga|D%UulLl-M zj7nV4UHEUBOO}WghYN<$t27{f~Uh-CjB^ix`Kl2~2co0r%2Ge%!dKjnE4m9Lge3**X z3(Wi%C*!g6P){t04XCk$4blV^K0h)k`KBFcyC^K?yt%RDu03M={k|%GzcBGMDuWU3 zCUQTz1=Yf|jeyev0i2pr+X|){@lo7#!0ki(le%wUAN|F175|N6Y} zQ70=6h7r3iLC(J__Y*D_edQcXJ7%s-$Fto-t^(C6o=f^EecMx_DB>A18|8@$4@@cQ!# zb)F8=_Te=UaSdvM^fuEv_qQ9>`2jXcV61QI9TBT!SHymfxIWceQ5}uq9%!+t_omkk zLSW_T_T&GK(jDoTC_j8ycs@Dnu4UiQ-EZPPgJ!?K6$7vxf*aMf=nLo zKJ7G-z;A5a&4Fk8jEOgfU^UVieFn7?ExbaaT;m(pB}MaSh;&AzKLl>{6j<79_uvQO zo~T;M%}Vbk;}_z#&=CJxpQuwUq*P5IHXJ`+6#q``w#+K<5!H(td?AFy&7*mVzr}cJ zbrrO|3?+)c98cqf&w~Sl&6B|3Dcxy%+y{oLC6r*C`=PV2H;uOSy)RA#QJnz z;&e-N)--wQh?ToZvBKM%+AVkn3b;#uO?(w}9fU#$DfG&|%R%p>21UxCRzUJwk!xKC zU>)h33jQUsKwP&m!T83H5XR}Nr8uX=O=IM>^%gbZKrljBzT`~W*2pFWM`Ah%EkM6F z(CUhnCw7W1^Q7jgZp1CJt^)^ApBbKUdq#>93FUw5f+4I=3wt3k~^&qogEj=6Kx zIqE{fbr~t~APpy}QC|+4UbGzYs&#tY#dUPvp3Hm-xR+RKsof?z=t`7sszlOE>lh=L zw}oi+{HeTfLk9@Py1Jx;ZGRm~mS-VE)&uuAlB$Rxf72s^VQcgMdIk^8{IQ1P=J$hP zrZv)G7026Q{+NDT_~zfm0(q=xuyWJeyKz{0XdCzK$X8?+svETDd&SceK-A5=?{Tws zdGEK+JgD>)*&kVP=nkX}^G`a9=(i-1V7w##H~806H=L>WS${2Gv z#^%*_vn3g%lRR(8rsKS0F@Ffq309_tU+?fGK1B5;rx2!Vkx?oaoEbAmHu!C~F|*G#{A#0RY-f#OKjqT(o^9^(1Z<-}uMT_B zqN&h?^tT113D=Pq1C3=8NbPfBu-nOboZPWe3fgKq>S!-f<3zU{F;rkoufx(zF8_{}?WP@hw!T1+ySS0N9ML^wKfrh44#^49 zMBj_#OYK-ZyNj(;;~5>S*>{b}$c(WtsNzd5;gRlW9~4_@JsNmZl^o@iKfbOvw;sBZ zqxN>=dit+gD}^FYhnK_O3%6pTk*V=Z%>M;z9`YNgO@AcG;r`S8_(}h3d1a=zH5`oRTT>iFtt|sCbC(7BKec&X?_~sMViBu7^EXV{qg|KeF$)`$ z7v*d{c6b_@{hiNGrE|`4btJRHv5{D)a`fcbjl_zT%i;RlLmczfQ5~7cj|IPE3AwY% zEMS1d@SXcoY64U+B(ow&^q@<)AyKp1jy)tX|C>_(KcXvW=gcOAR9VtCXKmI{D4?gW zN$8?Yw0U>)tH-iW_OQxo+DCLu>s_Ca|C2E5S}(XSsP5V3X)G}m>~FFhvBlC=`LMpA zVn1}k9R5E29bQmXS`nRn#7o$h+DaskFU4`%P$Bb- z*1-braU*zazrPjtVHBr_b?|zFUg1jz`yNwvZR$K?)ZW;`VpU)M&Z$e~Q|dQBN>0Z5 zlSBUTNvh8K(-@hatVV(nOml1LM*i>NEy*{MhR>4c6tj`bn;S}Y96;W;%#n?J*D0K; z?6_BaJ9ME6i6#63Dv*?!-mgQdACP?0b+1Oo0L4G(H9~3>Wp_9-o<*l=h3Q}oM9qH| zL?{li86ZIImu92KVe8$4*Zf~uVTaj1?Nk7>;TjF8CI(BqY$|WQC9KOEBpSch2=2c7 zrnPfUSkY_+nuREzylTq&(N8+{rbsvf_+X*#4nKNy;x0VF1k$}og1lRc^?4P~iAr;d zsmQ!>*YsOT=e94`k`_jnf z91o4S0qLA++U3PDdG+DRe&uQ&-njt`Rpdb~C^f~t`*(eUJ!YD6P}@=Lao5ym*)Jk>uP=!?Ly3u1M5=vFuO8 zyVpFc%LN|yI92_h#0kO$@y&$xXM(VlqvsbI#>cpS0ADifGp#I`w01T+uC`@hR(l^k z;_4@TYGGUBH0V4rYqKJ_BvZ9=L)GY64~Hb*1mT0~o&b;5JYLK9Ke|(E6OOz2lyQT2 zJ!glIF+95aWf*q6c<2F6q6Tt{99X1~T+VLHUgn^gG{;V{1RsMv#`_m zj`ZZfXQ7;(b5v~vJ-Ga0ofmVld9+@&lx3s-mRY*@3-?hO3CqQ8W`!SsqMRddbZCfh zinaAvc3kn;KZkt!5)ku_@LeJ&c8v&GINLV~EN59MbCh}!^7zHcU9M1q1_`4iU40R= zg$CS1L-3|m2P>?9jkJ`_eOo18imH6wnaokd(0~f6f78Lp{UhrUI~%r;!I$J^!Blg1 z1jHvf*IelNJ< z;?0sv`nhO%+e?|Wp22%&L4K1CGpwy(V{z2E#Z=?%_h(r-w@l->0mj&fz(!-w-rlqg z5kz1louuZIDn;HbvUc8=v8p_tGkRRn;*rPuxp!%~4Za8wOY3Rcd#HhI5S)yKcHpDa zDp6MBbibp;4T;)>`_j~5CjP5~)Fe%Rs@)C`KR&d1K~suW4%n-S7?T?94n$)by!esT zS_2iRFOAASr!*U#Xxcuk8AC`;hk1W9d~7~}Z=z4rOh6q#{}i{sPPtFhFP-q7iL5al z{`@Zu{z!M!_Cfg!R{1q=#!(rrMaUT`5HjBzSc&B>Xg~9k%(n8mq#^4Ni(c!3Q4O&z z_lEkjYPqfg*88V@(g0(bO2LFca&gatt{~&->=R|t47*n3{4B(eccf$JZWXgLnwjRc z^nxm4zH-GOa3#NRU{b}cHfwhJ)uYyKLmK4#m&=fAboKK`+?0k{un=X zOS#l{4)n{fp$_>3^Ojs6Ww~OZd$}p)OffVHt0;=koYKPepHA z{P~Btq@Y|8)jv7%8O79A1WPqUNo5(hW$IquY+iP+@uj9J&ciZ|^8QslBH{*BV6hS| ze=2{rR@|iSAID{^j2`^3WpeI_i=$=3?p}=-)o-w(a^RJ|}!{ zw(^f!L9x2K523;wwDFJ2hq9KS>oIdVgNtmXtNHs`N8w1Z7w@_7_+8QG6raURzBsFm z;=K}TV*(gcQ}I+tuZ(lZ6xby=L(uu%i+Mu8F%CUdF8$*P zE|fz8_-!{bhBwEiH;*l{s?x+Q9guY~)nR@saxsXqNgIE`Z3HfJNt#8`>;)o#>^w+A zeE0n`-OjK_66XHIRT+M*2t!XaVw?3GHQ6I-0_KeL25roQ`JMJ&@mEjepd4j7H|_=2 zk9FEY6-?qfyR|VdpE9P|;>?Zs^_iV;Tz~wA?2OuLn#&Eb$Sbz6{F+nMsV$)b_8>=| z6Azy`3Oj$gGw-+Rr*rWHZuosQ}i_b763uET=-UAaNOeOLdV;=4kC&>kzh-T zV@{2R@E)SpP|Yb-FOXrwKugJZ|G+!V7)$gn8RV#A-SgPUU{o&Q%7lnfDSIl+W}{Be zr_OPdCM8AYcG?boCUlPM3a{?0^6kDrKL5XOpw5cJ6fcQ{{i03w4f_*%?xsC$9zr5P zVj`Qb#EU;AXV8z*jCUvH^@y0urdQ6f!&x6W2lOia>}7Q7nt2xYhc$OT!bpsxuIB@r zv_xWN7O_7#?pR3N1eXdsOuFgOqr<}Y@&*jYVq0GB`>zr)0Vi%neiwG_M;_(2Y1|+^08P64!6tpIGw~1|um(+fqy?^~jHzTZ*)%e-UgATS z#hM~~#Q@sN|ELU~gJzDXqC;p{U7;57gsFVnjEZQro+8pN3LjIpULgU50kwo zRMennFB5p3kvQ?$RP(nzM{8jeTdUD*W5cAP+d3{z!mvL5^>EW@`kPm+Zw<;Ejg32o zzAS}-Z2dd^K=8X9;axw>uJEofR2b@I@}XxYpgLUz)}Q;CE%jB&Sm&%8d2vB{afQoQ z{?}EhuRKzR@c}HuDQ0`hmJm}BZz0V=SzhJWBco$9Og&lKV@$WWRVV3+Euo5{R8Apvk8uI?GmclJS!DQ%N0&l-U{d~{tgO{2 zOyY%cN!SI4x7);v9A%GTYVKE83@xJ4E71;6C$C+!XOhv={kgfy^2uTRK;wghuCJ|= zM$xZT5!Bo?J9eo{E-ePIquf?+^zqT2L*hlt`q$xy1$QwE(s_S*Kno8eh-PiBX9}9YTgFuETtG?<3|q zU_o4-=3CDuMC3B2&~0F>;*-NDqZqPkV*Hno^_pQs*fot&$W_qqXf9)^8-1-My?VF^ z+U*A1a#neTf6RK~hqUJ%I<|3)19z%XBj-9w@Os5fRrXtgUgXoz?6t(odifaNf0oK& zP@weWTb{w|6An;0O@K=r9(%0p&TLeD+BfkN);+La1n<$SdCl-VTiGXf1{FbE3PgEd z#F@;7qu4ZZ8W5RKV9dq9gNQTvu6pP9x@iV4$3@P5LE>|RnED>=x|;FPIGA7BPDR$^ zB`2)sU-rd&p{t9ZS(AcyNI@e_eF^fo6pe^~j$vy8cg@FXsyXssCLA;W0)hi!=a!RR zyLojgvd$A7N>)(|1t*0RA;FH6?a96c&S*IwmA;18S?Sr3JO>cU5;6uz(F z|2@9tHi+tD#7CqGj;va11zEvNO3nb&`J;V{tQQv48iB`S)a4aeg8C3YV=VG-r1>F- zK%2kG&=0s!zizoO&XDp-#-FwaR^@cR2~sJJ0!7+oee3;igJ(ljc(d~o^YdZR;!}*X zHmby?=Yel1*b#4 zJiEaxM*~RgSU61VWv60G41@(U3C%v-Qff-_GdM1ua!rs+p7a)>$&^k_k3-1HK24!` z4Q<@Yef`MD(7hGQCuu=Y+QwiVfgP#-aDK^S8=Ba9@^Ze!muoh}>wo+|5l%wk#7i|% z>weRlPHh(KKdQ2FYs|ggY=y`*Y*%r}{fge1dj5fQ9$BATG1Er03hO)*G%*aRmyKLs zKcMp6)n4I-JK`6=ZD2=1%ldy1mmDI!W^TNavnKVR6nj)Y+>@9lGFJ`As2g6nOjg6r zd76#;*X8iJ1^+_)`)Zde{Q=0+`W%}Qv(JFI;t>vV)#;wGx`TXockxL@d^Ax}pNyx~ zZ*P)JT*a^Bjb8+t-|Qlu6m0$S}?MgD9AoCjdXvW?ds=fGr z@f9_yuo!9}b~9j~f<}u0wlVsfnz3iO<~&&^P%?-h&}^N;;QSUUOQ~ku9TaiAH~_nk z!gA0JtxL(##oVExYW6#(eUD>OQAJ{<%rw>4XVxDp(`FTKwImMkv(U&3o(Ffal##_B zIDf1s-k&RwNZl8CP*f_*_d7F==zqv=Z)(J;CN@$jJF;NX&G|+0M>^R1Hl(|m0iTTZ z^AwlI934w2_K1iwze9)TrHlAONYr3a*^A9>cOW>NV*E|)z_Y=JpM_?>Py(t(+*;$$ zlBUaT_?!Ft}gEXZ`bN10`NlH#iPj|u$-bKrSP&W zr1)8%oM*~gwI`mHASv?p@c+WhO_s1oo5lpIPPdtu_& zrPS9XY(G8!`@5Z^aJs3xAdWdW{J~)%T<)FgZd;0y**n2W8HeBQuT*7*?K>~rKh1gk z&2xlgTD70zMMS+HGij0OVM5=Zb$t+O%u z^X8__0@)Qi#G^dJ2V#=)#o%2MKq>#Ok?m2Ej9ss^h6DXHo<4PrAW6bSRGzZh(41NF z$7IQ8-t2sq#1X~OhLEi2q?ax$ik?;ksbA>rmkePB0{A;1f1^h6jHe8drTsIXZ_Z?! zbiCh}so{Me0I%HWeZec!;R>~()?gnh3&~sw&#ESKFBNm%TWh%!2~TPO?HzcNgf#E_ zf7Vhv7?ydpUd+c`CJ4~cniJ+O-7w9P*}qwFJNF_l*tDfQW2>5m1a%E`(Dgu!Jbfo= z9)D=#^<88l$<5pPH+8ubyw}1VEPt$g7L(p?+g})AA5)mEvZr;bKy2;EFH7LywHm#t z=c96R6Yjn0gNbZW4!E!}k{vg?2i(YY=g}8qeZ$7K5g+6RGO)xG zJnQRRn^fKZw`kvBpy_BO=E<~-*ou$_fp5M6R}Z!7X-<8>k=gM%du~t}JbM+$um!Gb~;Bq#N8YRLMK_18au3v;nK| zRHDnw4;|gXRsxBbB5z>&8aD9WS!fy9y(U6XQZhB`iSuGknCSyg{!fyE0vB}YV!lq&2ajYzrP^riq6qd(T0kMm;T)sz?~ZZxxkdgn=Cg@ zrn{vgqp8_65L5Wr^at6Fd*#=Ciea{XuJ`5^r5c>+!3Qq=Te2C@(f!Rxh068KJu5u8 z{dokgcYDyR;AY-`E~r2itI_^FpBG5iBZmR=66e+{X07*HGVTZf+qLb$jX~?UcMyVw zI(G|9e82glue{V2JSUJR+Yh-N*PS~zKQzk>bTfDF!T)`;TK%bnwQ;t3nRNfmzVpa* zV4Y9Y4pfK@uNIz}{(20WkMpgXY+@Bgz4I5hm0~Qn+T^Vy5peAvcb!sHwWCqIQdk)c zBKtyHFHMqG8i@N?u(4QZWcQ`guV1fTJm_cq$!EU3zsXzdxY8d`{VV|(i93)vjEs$W zJCsshwtc?>xxC6jJeqfINy8j%+%5Fox^|D(79Wm#Uzc>>Xl}Kej=!a4#^?cV??8?7 zr#`iK$pg$g4|=>8tflv!hMz7;Ca#}onSdE{AN~SfcXoJ342uqdK&hb>?)Qo}j)^O_ znS-55!`6nN_$%;anu;MP0d&8U)_Q)ZKi?N3M3w#YP!8h!kliHw075vhGzSx;3m4@H zrzGjc!`a}*-r#<@!TtXN!Vo?03E~ohxXVKEG64MDpX@oo?{gl<#yx%CX3vR396rL~ zaXUFDP+67uD)PNM9*^&c<^dx`H9uR>pfRfCVQi#$(B4->&s~)A`p&Boq3Y|(zHi|6 zR?0Z*DQ~>F_SB-$`Fn-RG40ByhF$s8FqNZo+mU0M(ZlrLbmVAICXRsQ>gkqTJ>8BR zT@sEQ(~Lb5V~-<8mx&|Cv^#EjrE))U%zi(rv|c@+JdQD69>>$lL*1BDlPhBxRZG#h zs^@r40XLpyk9k!3e`ykGkD;k16~->{eDRDN)V$Kb{hzOqS2Xg9gP2#m1=a5XHgCu6 z&n@cpMsM#k=e&36sbNavbDinq&{(rG z6h$1L_S%zzKsA-vgy1Eb27DkzP|<|`uhvLSFe#;IHTbYxx4nhyUA;R@MHBlV#y1<| zi#`|)yy!!XiHVR9Q$gcL3Mp2+iWINk-z`4WSKOKX&E4E`-nF}@X$_O??aY7Y_xpd$ z%zx%~ix^`?xOgcuuXQY4Hkntod3hl(gS-^&5*xnQlvGt!-Lm8Evf*TZd6&;Qu0g?- zWWjA!aOG&%b{et96CpkNlor!{O-A7O0qv+BstX#SmTZ1xoQ}6Q3+|uSOOiO= zpGR*Q%bdTw-K2NMef$UVwLV{iEc<-T7EjfWGVtvdgIDM)o{)LZqa9uDZwM74I^ z5{T;aTF4OD>rf!7>)}Q{773jYTy;S$`hw9C4@y!lsMn3QVBDtVa7R<*X)P|TvCpf! zm*KD1C9crpRcOA3JbWcKKA#Lad(kg$e%yQCOWmEstH@!TyMc3_x3>D-;di?7xB1Tc z%jvJjCC>S{KIC#lW&oA zf1l27J2iXo>_=#yp$|XcMM@b^>w zFb7uw#(^;@y@8 zsYV!h4R&24L38SN_WAJwzc8$aDao9J3cuv6oNqSk>If*z-BF!R{&8Jq>%OVebs=oq@eG824GkZI-NX&mw+vm=ANXcOLf6!`^w=yFg;NS{D%4 z1ZpWfya|AE|l5zRvA9b>7SO8)}}ge`oU8@ccRQ1WFgB?_Ia8%a!bpsvX(< zzc<5wtDX735S!#O{v@oQ&|{3Qb7?>OwedzoGvDex-e*cCdyxAqAWBK#AkF-%c;Gww%C@WJ`!E1 z(bbU2Y@CG~-8c(oOePs7F%!o}GzJVlOBAq05ag)~-0C^!{PwVIMr6ego-5@{BAYa64rCH)^DL5M` zU9nOUw@MP{ki@N)#I2FUt(C;BlfUUz&8d83r8JRiMN1|Ie~~@xp~0 zgxG%~}Rs@0Ah-G2e( zvWjmz%X23%Ux*~n1uN#C?0AoFy~Kdyof-7zlhpak+ch*2w(}qCpX~EBNYc;Obn(>t zk&k>1k#2*rl;ulJe{Hmj@}1y|*v1#HdD#AgCW{f@hyo6izH}{+cLd;>GJS zxCUbOoL}rThhJgJ-@Q}oZ%lt}CUNrP`lHEtq2j03m%7iG#moBpCGP{d20WK5R;wMF zE}m>UzD)NT?H<8X5o__aYvw*=wf*M5Pj*swz+dYM9v2@e*~Voe-}jD@ni!jP0wyzLQzHhW(8&SjB7C@&CVJR`g2Urdj{M zvID=|8eMt={uOfn!By59y>b)f|A*Chk5qAY;P&WJhPaFPdr&PD+=s3cT;KsL7kteS zsyh(6)NK#@Cfxhf`(h1_%XC`+UOHFCGWVutUY#Js4!lC% z7}^~}{utUH$2iB)k2vb>LVvnYe;1q=`d_1euQ5*D=w~-P6!vtZzddMI5BlAM_PxP) zzCr(c;h?ay7vs>2aqdIA`_S$_w7U=Oev9_LMSJ_v-hQ;VAIE(F<2C?lxCbzPgE$`s z(cU4ncL?nrLVJfn43}pZ<2sDV-lg6v#_ulMz^U);!^q1Ioon-9& zQU4BCgzfSO4cYgJoj1WVnfF;A_FHw1j^{nanL%G6NsT{m^W)B^_^G`-;-lX|{Oeg> zkcQ9dca5*HUgnV0@#1ZDy=bF0`NxZYjx9>VC--g;!}I9#`?yv2(QN&yBG$gQTFrNy zOugSu=5-Sx6Z!o%nWo-vGyD7P-*1!2$oB~V0RR8&Szl-zMHrvvl1mP48&Pb~w%kJz zAEej3`J#KVu}L7sYcAJDErhwfxw~oicGj8QGZ$Zc5q$7L1O@x#lS(XRz$xK9 zMM-fQ1DlsaoN}C!9zNMY-e5ppx`}=@>prsH^V<)aPa*e|Pwt}~3MRH0@D;b>G}NoetH=?CZA{E&3suo< zG>6KFB2!0aD6An_;l7@S1}=#fd7UC;&LKt&$CY)u3h4!0va3p{sF+5$QndrU6s&nN z32miK6h9?m;-Zi1iI{OA@%#C;uJr;R)n0$UVe-q*3;eVXe=vX_3gAV%C*BKBS z+L(n!WQ6t0X7=sm_$E8}XUyjx_3ceghdp^&uyvgK$2aBqNS3>reEuFYUw(;CrkuSTr**HsAO1ZATKy|{>0dD^7}!L6 z-@nV8p6Vd4lO0C_{y3uiF;OdGWZJW0JC!F6)zPl8?=4PGgT1+~ZWcGah__C-A<#O$ zf`@#3$3gUS*V?%o$KQEyU0X4p`|0-I*R)eV-v9nm94hKzPtVU zN0)ADU);EMb@+wrZTq@z_CvcRe%=M$<-tLZ7f%B++dXE@!-~=)Zd`3Q?>rg63x3A5 z5jCMPiOSG1>>MT5S!hM`3p5)&pC5MG4psc}lpaxW+l^x~fD^ps6b-ER2EPC{&yN&n z&yN%G)y)r;%Z~%O4y1t`k7GXj#zvyWy;vWo3Nw>0zha3S0@juUp8TcZ?&Pce#aEo5 zZsR&ytje!8tYEWDytbr{D8(i3N`fK-@$Cmt9K*|s;Zk(O7%pN1+YL}FW25;A=+H2V zP`@m1Ul=wk2C}_t7S>=oF$gVVVNcN@`epuI;)JnzSVyHZLYm;jiz#nj+TtxZ&#K~| zXBBRJAli61oVcbARmRz9NnPW}nWf1%*n*}!v2kC)5++5*cCAJwyn(SCR#hK3#wLWj ziUNe*)iZ_sL?*|#9O(UcRL=1N{$<7YfJ<=~UGaQZ9+^jX*`efVM!CO(G)`UqaG zBjfw~(EWXA6Tj6tE$qF6xbHvi+4Jn-4S5Fw^3nl$Va6YTt;c^K-)DT6=YVmKA5D0_ zL(dYm+26jnfW?`x%{P9QhVDcGLU$7U`|9uMe*gdg|NrflQA@)x5XaNaj#Whb2!4X% z4RLQ0+tdcy1k&`yPvFP(BbaO{Tt;1#&WAw{j&MhQ_rGiIp$PTZCKH6P zHEDR&O3K-5+;_f71XoM-YkD#ESgnp--!ON-mbjEfq!JVZYQ+|0oR%5Q(%m9P8m z9MTWuu6j5RaK5QLL~r4kAL<1re~LMW>Mk9+r`nsTRcDHLQJfX`U;7Q;Z_-m2A$w2Z xdyf3bkNn7w{Q2^qfDd~3Ex121G4kT1<5v#-!~Y!L#QIF4r%hK!+c)h2;D4@}YJC6z diff --git a/viz/editSegmentsGui.m b/viz/editSegmentsGui.m index ccf2bf0..650ba90 100644 --- a/viz/editSegmentsGui.m +++ b/viz/editSegmentsGui.m @@ -26,6 +26,12 @@ 'gui_OutputFcn', @editSegmentsGui_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); + + + + + + if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end @@ -39,13 +45,39 @@ % Global functions -function clickOnImage(hObject, eventdata, handles) -global settings -FLAGS.im_flag = settings.handles.im_flag; -currentData = load([settings.handles.dirname, settings.handles.contents(str2double(settings.handles.frame_no.String)).name]); -[data, list] = updateTrainingImage(currentData, FLAGS, eventdata.IntersectionPoint(1:2)); -save([settings.handles.dirname, settings.handles.contents(str2double(settings.handles.frame_no.String)).name], '-STRUCT', 'data'); -updateUI(settings.hObject, settings.handles); +function clickOnImage(hObject, eventdata, handles, hObject2) +%global settings +disp( 'clickOnImage' ); +hObject +handles + +FLAGS.im_flag = handles.im_flag; +FLAGS.EdgeToggleRadioButtonFlag = 1; +FLAGS.RemoveCellRadioButtonFlag = 2; +FLAGS.BackgroundRadioButtonFlag = 3; +FLAGS.CellMaskRadioButtonFlag = 4; +FLAGS.CONST = handles.CONST; + + +%currentData = load([settings.handles.dirname, settings.handles.contents(str2double(settings.handles.frame_no.String)).name]); + +if handles.EdgeToggleRadioButton.Value + FLAGS.whichButton = FLAGS.EdgeToggleRadioButtonFlag; +elseif handles.RemoveCellRadioButton.Value + FLAGS.whichButton = FLAGS.RemoveCellRadioButtonFlag; +elseif handles.BackgroundRadioButton.Value + FLAGS.whichButton = FLAGS.BackgroundRadioButtonFlag; +elseif handles.CellMaskRadioButton.Value + FLAGS.whichButton = FLAGS.CellMaskRadioButtonFlag; +else + disp( 'Error in radio buttons for editSegments' ); +end + + + +[handles.data, list] = updateTrainingImage( handles.data, FLAGS, eventdata.IntersectionPoint(1:2)); + +updateUI(hObject2, handles); function data = loaderInternal(filename) data = load(filename); @@ -62,17 +94,32 @@ function editSegmentsGui_OpeningFcn(hObject, eventdata, handles, varargin) handles.num_im = length(handles.contents); handles.im_flag = 1; axis tight; + +handles.EdgeToggleRadioButton.Value = 1; +handles.RemoveCellRadioButton.Value = 0; +handles.BackgroundRadioButton.Value = 0; +handles.CellMaskRadioButton.Value = 0; + +handles.data = loaderInternal([handles.dirname, ... + handles.contents(str2double(handles.frame_no.String)).name]); + updateUI(hObject, handles); function updateUI(hObject, handles) -global settings +disp('updateUI'); +hObject +handles + +%global settings delete(get(handles.axes1, 'Children')); -data = loaderInternal([handles.dirname, handles.contents(str2double(handles.frame_no.String)).name]); -data.mask_cell = double((data.mask_bg - data.segs.segs_good - data.segs.segs_3n) > 0); + +data = handles.data; + +handles.data.mask_cell = double((data.mask_bg - data.segs.segs_good - data.segs.segs_3n) > 0); showSegData(data, handles.im_flag, handles.axes1); -settings.handles = handles; -settings.hObject = hObject; -set(handles.axes1.Children, 'ButtonDownFcn', @clickOnImage); +%settings.handles = handles; +%settings.hObject = hObject; +set(handles.axes1.Children, 'ButtonDownFcn', {@clickOnImage, handles, hObject}); guidata(hObject, handles); function figure1_CloseRequestFcn(hObject, eventdata, handles) @@ -91,7 +138,12 @@ function frame_no_Callback(hObject, eventdata, handles) else handles.frame_no.String = num2str(c); end + +handles.data = loaderInternal([handles.dirname, ... + handles.contents(str2double(handles.frame_no.String)).name]); + updateUI(hObject, handles) +guidata(hObject, handles); function frame_no_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) @@ -145,4 +197,96 @@ function relink_Callback(hObject, eventdata, handles) header = 'Relink: '; trackOpti(handles.dirname_xy,skip, handles.CONST, header, startEnd); -end \ No newline at end of file +end + + +% --- Executes on button press in EdgeToggleRadioButton. +function EdgeToggleRadioButton_Callback(hObject, eventdata, handles) +% hObject handle to EdgeToggleRadioButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hint: get(hObject,'Value') returns toggle state of EdgeToggleRadioButton + +handles.RemoveCellRadioButton.Value = 0; +handles.BackgroundRadioButton.Value = 0; +handles.CellMaskRadioButton.Value = 0; + +disp('EdgeToggleRadioButton_Callback'); +hObject +handles + +% --- Executes on button press in RemoveCellRadioButton. +function RemoveCellRadioButton_Callback(hObject, eventdata, handles) +% hObject handle to RemoveCellRadioButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hint: get(hObject,'Value') returns toggle state of RemoveCellRadioButton + +handles.EdgeToggleRadioButton.Value = 0; +handles.BackgroundRadioButton.Value = 0; +handles.CellMaskRadioButton.Value = 0; + +disp('RemoveCellRadioButton_Callback'); +hObject +handles + +% --- Executes on button press in BackgroundRadioButton. +function BackgroundRadioButton_Callback(hObject, eventdata, handles) +% hObject handle to BackgroundRadioButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hint: get(hObject,'Value') returns toggle state of BackgroundRadioButton + +handles.EdgeToggleRadioButton.Value = 0; +handles.RemoveCellRadioButton.Value = 0; +handles.CellMaskRadioButton.Value = 0; + +disp('BackgroundRadioButton_Callback'); +hObject +handles + +% --- Executes on button press in CellMaskRadioButton. +function CellMaskRadioButton_Callback(hObject, eventdata, handles) +% hObject handle to CellMaskRadioButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hint: get(hObject,'Value') returns toggle state of CellMaskRadioButton + + +handles.RemoveCellRadioButton.Value = 0; +handles.BackgroundRadioButton.Value = 0; +handles.EdgeToggleRadioButton.Value = 0; + +disp('CellMaskRadioButton_Callback'); +hObject +handles + +% --- Executes on button press in SavePushButton. +function SavePushButton_Callback(hObject, eventdata, handles) +% hObject handle to SavePushButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% --- Executes on button press in RevertPushButton. + + +data = handles.data; + +save([handles.dirname, handles.contents(... + str2double(handles.frame_no.String)).name], '-STRUCT', 'data'); + + +function RevertPushButton_Callback(hObject, eventdata, handles) +% hObject handle to RevertPushButton (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +handles.data = loaderInternal([handles.dirname, handles.contents(... + str2double(handles.frame_no.String)).name]); + +updateUI(hObject, handles); +guidata(hObject, handles); diff --git a/viz/showSegData.m b/viz/showSegData.m index baa353d..542374e 100644 --- a/viz/showSegData.m +++ b/viz/showSegData.m @@ -29,6 +29,8 @@ function showSegData( data, im_flag, gui_fig ) segs_good = data.segs.segs_good; segs_bad = data.segs.segs_bad; mask_bg = data.mask_bg; +ss = size(mask_bg); + if ~exist('im_flag','var') im_flag = 1; @@ -39,16 +41,30 @@ function showSegData( data, im_flag, gui_fig ) if ~exist('gui_fig','var') || isempty(gui_fig) figure(1); + tmp = [1 1 1 1]; else axes(gui_fig); % new, ie. used in the GUI version + tmp = axis; end if im_flag == 1 % displays good, 3n and bad segments phaseBackag = (ag((~data.mask_cell))); - imshow( cat(3, 0.2*(phaseBackag) + 0.3*ag(segs_3n) + ag(segs_good), ... - 0.2*(phaseBackag) + 0.3*ag(segs_3n) , ... - 0.2*(phaseBackag) + 0.3*ag(segs_3n) + ag(segs_bad) ), 'InitialMagnification', 'fit'); + imshow( cat(3, 0.2*(phaseBackag) + 0.3*ag(segs_3n) + ag(segs_good), ... + 0.2*(phaseBackag) + 0.3*ag(segs_3n) , ... + 0.2*(phaseBackag) + 0.3*ag(segs_3n) + ag(segs_bad) ), ... + 'InitialMagnification', 'fit',... + 'Parent', gui_fig); + +axes( gui_fig ); + +if all( tmp == [0 1 0 1] ); +axis( [1,ss(2),1,ss(1)] ); +else + axis(tmp ) +end + + % 'hi' elseif im_flag == 2 % displays cell mask cc = bwconncomp(cell_mask, 4); labeled = labelmatrix(cc);