{ NOTE : THE remainder of the units in this package are included in the XX3402 file listed below. Follow the instructions to extract. {************************************************} { } { UNIT XVIEWS A collection of new Views } { Copyright (c) 1994-97 by Tom Wellige } { Donated as FREEWARE } { } { Ortsmuehle 4, 44227 Dortmund, GERMANY } { EMail: wellige@itk.de } { } {************************************************} (* Some few words on this unit: ---------------------------- - This units works fine with Turbo Pascal 6 or higher. If you use TP/BP 7 you can use the "inherited" command as shown in the comment lines on each line where it is possible. - This unit defines first of all a basic object (TXView) for status views which are updateable via messages (send from the applications Idle methode). All inheritances only have to override the abstract methode UPDATE and place the information to display in a string. In this manner there are a ClockView, a DateView and an HeapView as examples implemented. The usage of these objects (TClock, TDate and THeap) will be demonstrated in the programs XTEST1 and XTEST2. - There is also a 7-segment view implemented in this unit (T7Segment) capable of displaying all numbers from 0 to 9 and the characters "A" "b" "c" "d" "E" "F" and "-". The usage of this object is also demonstrated in this unit by the object TBigClock which is a clock in "hh:mm:ss" format. How to use this clock is demonstrated in the XTEST3 program. *) unit xviews; interface uses dos, objects, drivers, views; const cmGetData = 5000; { Request data string from TXView object } cmChange7Segment = 5001; { Set new value to display in T7Segment } cmChangeBack = 5002; { Change Background of T7Segment } type PXView = ^TXView; (* Basic status view object *) TXView = object(TView) Data: string; procedure HandleEvent(var Event: TEvent); virtual; procedure Update; virtual; procedure Draw; virtual; function GetString: PString; virtual; end; PClock = ^TClock; (* Displays current time *) TClock = object(TXView) procedure Update; virtual; end; PDate = ^TDate; (* Displays current date *) TDate = object(TXView) procedure Update; virtual; end; PHeap = ^THeap; (* Displays free bytes on the heap *) THeap = object(TXView) procedure Update; virtual; end; PInfoView = ^TInfoView; (* Show all "actual" datas *) TInfoView = object(TView) procedure Draw; virtual; end; PInfoWindow = ^TInfoWindow; (* Window holding TInfoView *) TInfoWindow = object(TWindow) constructor Init(var Bounds: TRect); end; TSegment = array[1..13] of byte; (* Buffer for T7Sgement *) P7Segment = ^T7Segment; (* 7 Segment View (7x5) *) T7Segment = object(TView) Segment: TSegment; Number: word; { 16 -> segm_ = "-", >=17 -> segmBlank = " " } BackGround: boolean; { not active segment visible (gray) ? } constructor Init(Top: TPoint; ABackGround: boolean; ANumber: word); { Top: upper left corner of segment ABackGround: not active segments visible (gray) ? ANumber: default value to be displayed } procedure HandleEvent(var Event: TEvent); virtual; procedure Draw; virtual; procedure UpdateSegments; end; PBigClock = ^TBigClock; TBigClock = object(TGroup) Seg: Array[1..6] of P7Segment; constructor Init(Top: TPoint; BackGround: boolean); { Top: upper left corner of clock BackGround: will passed to each T7Segment: not active segments visible (gray) ? } procedure HandleEvent(var Event: TEvent); virtual; procedure Update; end; const Date : PDate = nil; Clock: PClock = nil; Heap : PHeap = nil; implementation {***********************************************************************} {** TXView **} {***********************************************************************} procedure TXView.HandleEvent(var Event: TEvent); begin { TP/BP7: inherited HandleEvent(Event); } TView.HandleEvent(Event); if Event.What = evBroadCast then if Event.Command = cmGetData then begin ClearEvent(Event); Event.InfoPtr:= GetString; end; end; procedure TXView.Update; begin Abstract; end; procedure TXView.Draw; var Buf: TDrawBuffer; C: word; begin C:= GetColor(2); (* Application -> "Menu normal" *) (* Window -> "Frame active" *) MoveChar(Buf, ' ', C, Size.X); MoveStr(Buf, Data, C); WriteLine(0, 0, Size.X, 1, Buf); end; function TXView.GetString: PString; begin GetString:= PString(@Data); end; {***********************************************************************} {** TClock **} {***********************************************************************} procedure TClock.Update; type Rec = record hh, mm, ss: longint; end; var DataRec: Rec; hh, mm, ss, hs: word; begin GetTime(hh, mm, ss, hs); DataRec.hh:= hh; DataRec.mm:= mm; DataRec.ss:= ss; FormatStr(Data, '%2d:%2d:%2d', DataRec); if hh < 10 then Data[1]:= '0'; if mm < 10 then Data[4]:= '0'; if ss < 10 then Data[7]:= '0'; DrawView; end; {***********************************************************************} {** TDate **} {***********************************************************************} procedure TDate.Update; type Rec = record dd, mm, yy: longint; end; var DataRec: Rec; dd, mm, yy, dw: word; begin GetDate(yy, mm, dd, dw); DataRec.dd:= dd; DataRec.mm:= mm; DataRec.yy:= yy; FormatStr(Data, '%2d.%2d.%4d', DataRec); if dd < 10 then Data[1]:= '0'; if mm < 10 then Data[4]:= '0'; DrawView; end; {***********************************************************************} {** THeap **} {***********************************************************************} procedure THeap.Update; var Mem: longint; begin Mem:= MemAvail; FormatStr(Data, '%d Bytes', Mem); DrawView; end; {***********************************************************************} {** TInfoView **} {***********************************************************************} procedure TInfoView.Draw; var Buf: TDrawBuffer; C: word; s: string; begin C:= GetColor(2); (* Application -> "Menu normal" *) (* Window -> "Frame active" *) s:= 'Date : '; if assigned(Date) then s:= s + PString(Message(Date, evBroadCast, cmGetData, nil))^ else s:= s + 'not accessable'; MoveChar(Buf, ' ', C, Size.X); MoveStr(Buf, s, C); WriteLine(0, 0, Size.X, 1, Buf); s:= 'Time : '; if assigned(Clock) then s:= s + PString(Message(Clock, evBroadCast, cmGetData, nil))^ else s:= s + 'not accessable'; MoveChar(Buf, ' ', C, Size.X); MoveStr(Buf, s, C); WriteLine(0, 1, Size.X, 1, Buf); s:= 'Memory : '; if assigned(Heap) then s:= s + PString(Message(Heap, evBroadCast, cmGetData, nil))^ else s:= s + 'not accessable'; MoveChar(Buf, ' ', C, Size.X); MoveStr(Buf, s, C); WriteLine(0, 2, Size.X, 1, Buf); end; {***********************************************************************} {** TInfoWindow **} {***********************************************************************} constructor TInfoWindow.Init(var Bounds: TRect); var R: TRect; begin { TP/BP7: inherited Init(Bounds, 'Systeminfo', 0); } TWindow.Init(Bounds, 'Systeminfo', 0); Palette:= wpCyanWindow; Flags:= Flags and not (wfClose + wfZoom + wfGrow); GetExtent(R); R.Grow(-2, -2); Insert(New(PInfoView, Init(R))); end; {***********************************************************************} {** T7Segment **} {***********************************************************************} const { 1 2 3 4 5 6 7 8 9 A B C D } segm0: TSegment = (1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1); segm1: TSegment = (0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1); segm2: TSegment = (1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1); segm3: TSegment = (1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1); segm4: TSegment = (1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1); segm5: TSegment = (1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); segm6: TSegment = (1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1); segm7: TSegment = (1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1); segm8: TSegment = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); segm9: TSegment = (1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1); segmA: TSegment = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1); segmB: TSegment = (1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1); segmC: TSegment = (1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1); segmD: TSegment = (0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1); segmE: TSegment = (1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1); segmF: TSegment = (1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0); segm_: TSegment = (0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0); segmBlank: TSegment = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); constructor T7Segment.Init(Top: TPoint; ABackGround: boolean; ANumber: word); var R: TRect; begin R.Assign(Top.X, Top.Y, Top.X+7, Top.Y+5); { TP/BP7: inherited Init(R); } TView.Init(R); BackGround:= ABackGround; Number:= ANumber; UpdateSegments; end; procedure T7Segment.HandleEvent(var Event: TEvent); begin { TP/BP7: inherited HandleEvent(Event); } TView.HandleEvent(Event); if Event.What = evBroadCast then case Event.Command of cmChange7Segment: begin Number:= Word(Event.InfoPtr^); UpdateSegments; DrawView; ClearEvent(Event); end; cmChangeBack : begin if BackGround then BackGround:= false else BackGround:= true; DrawView; end; end; end; procedure T7Segment.Draw; var Buf: TDrawBuffer; Front, Back: byte; function SetColor(w: word; c: byte): word; begin w:= w and $00FF; w:= swap(w); w:= w or c; w:= swap(w); SetColor:= w; end; procedure SetBufColor(var B: TDrawBuffer; C: word); var i: integer; begin for i:= 0 to Size.X do Buf[i]:= SetColor(Buf[i], C); end; begin if BackGround then Back:= $8 else Back:= $0; Front:= $F; { Segment 1,2,3 } SetBufColor(Buf, $0); MoveStr (Buf, ' þþþþþ', Back); if Segment[1] = 1 then Buf[1]:= SetColor(Buf[1], Front); if Segment[2] = 1 then begin Buf[2]:= SetColor(Buf[2], Front); Buf[3]:= SetColor(Buf[3], Front); Buf[4]:= SetColor(Buf[4], Front); end; if Segment[3] = 1 then Buf[5]:= SetColor(Buf[5], Front); WriteLine(0, 0, Size.X, 1, Buf); { Segment 4,5 } SetBufColor(Buf, $0); MoveStr (Buf, ' Û Û', Back); if Segment[4] = 1 then Buf[1]:= SetColor(Buf[1], Front); if Segment[5] = 1 then Buf[5]:= SetColor(Buf[5], Front); WriteLine(0, 1, Size.X, 1, Buf); { Segment 6,7,8 } SetBufColor(Buf, $0); MoveStr (Buf, ' þþþþþ', Back); if Segment[6] = 1 then Buf[1]:= SetColor(Buf[1], Front); if Segment[7] = 1 then begin Buf[2]:= SetColor(Buf[2], Front); Buf[3]:= SetColor(Buf[3], Front); Buf[4]:= SetColor(Buf[4], Front); end; if Segment[8] = 1 then Buf[5]:= SetColor(Buf[5], Front); WriteLine(0, 2, Size.X, 1, Buf); { Segment 9,10 } SetBufColor(Buf, $0); MoveStr (Buf, ' Û Û', Back); if Segment[9] = 1 then Buf[1]:= SetColor(Buf[1], Front); if Segment[10] = 1 then Buf[5]:= SetColor(Buf[5], Front); WriteLine(0, 3, Size.X, 1, Buf); { Segment 11,12,13 } SetBufColor(Buf, $0); MoveStr (Buf, ' þþþþþ', Back); if Segment[11] = 1 then Buf[1]:= SetColor(Buf[1], Front); if Segment[12] = 1 then begin Buf[2]:= SetColor(Buf[2], Front); Buf[3]:= SetColor(Buf[3], Front); Buf[4]:= SetColor(Buf[4], Front); end; if Segment[13] = 1 then Buf[5]:= SetColor(Buf[5], Front); WriteLine(0, 4, Size.X, 1, Buf); end; procedure T7Segment.UpdateSegments; begin case Number of 0: Segment:= segm0; 1: Segment:= segm1; 2: Segment:= segm2; 3: Segment:= segm3; 4: Segment:= segm4; 5: Segment:= segm5; 6: Segment:= segm6; 7: Segment:= segm7; 8: Segment:= segm8; 9: Segment:= segm9; 10: Segment:= segmA; 11: Segment:= segmB; 12: Segment:= segmC; 13: Segment:= segmD; 14: Segment:= segmE; 15: Segment:= segmF; 16: Segment:= segm_; else Segment:= segmBlank; end; end; {***********************************************************************} {** TBigClock **} {***********************************************************************} type PBlackView = ^TBlackView; (* black background for TBigClock *) TBlackView = object(TView) procedure Draw; virtual; end; procedure TBlackView.Draw; var Buf : TDrawBuffer; Color: word; i : integer; begin Color:= $0F; for i:= 0 to Size.Y do begin MoveChar(Buf, ' ', Color, Size.X); if (i = 2) or (i = 4) then begin Buf[16]:= $0FFE; Buf[33]:= $0FFE; end; WriteLine(0, i, Size.X, 1, Buf); end; end; constructor TBigClock.Init(Top: TPoint; BackGround: boolean); const XPos : Array [1..6] of word = (1, 8, 18, 25, 35, 42); var R: TRect; P: TPoint; i: integer; begin R.Assign(Top.X, Top.Y, Top.X+50, Top.Y+7); { TP/BP7: inherited Init(R); } TGroup.Init(R); R.Assign(0, 0, Size.X, Size.Y); Insert(new(PBlackView, Init(R))); for i:= 1 to 6 do begin P.X:= XPos[i]; P.Y:= 1; Seg[i]:= new(P7Segment, Init(P, BackGround, 0)); insert(Seg[i]); end; end; procedure TBigClock.HandleEvent(var Event: TEvent); var i: integer; begin { TP/BP7: inherited HandleEvent(Event); } TGroup.HandleEvent(Event); if Event.What = evBroadCast then if Event.Command = cmChangeBack then begin for i:= 1 to 6 do Message(Seg[i], evBroadCast, cmChangeBack, nil); end; end; procedure TBigClock.Update; var w, h, m, s, hs: word; begin GetTime(h, m, s, hs); w:= h div 10; Message(Seg[1], evBroadCast, cmChange7Segment, @w); (* Hours - 10^1 *) w:= h mod 10; Message(Seg[2], evBroadCast, cmChange7Segment, @w); (* Hours - 10^0 *) w:= m div 10; Message(Seg[3], evBroadCast, cmChange7Segment, @w); (* Minutes - 10^1 *) w:= m mod 10; Message(Seg[4], evBroadCast, cmChange7Segment, @w); (* Minutes - 10^0 *) w:= s div 10; Message(Seg[5], evBroadCast, cmChange7Segment, @w); (* Seconds - 10^1 *) w:= s mod 10; Message(Seg[6], evBroadCast, cmChange7Segment, @w); (* Seconds - 10^0 *) end; end. { the following contains additional files that should be included with this file. To extract, you need XX3402 available with the SWAG distribution. 1. Cut the text below out, and save to a file .. filename.xx 2. Use XX3402 : xx3402 d filename.xx 3. The decoded file should be created in the same directory. 4. If the file is a archive file, use the proper archive program to extract the members. { ------------------ CUT ----------------------} *XX3402-019818-110497--72--85-44774----TVSOURCE.ZIP--1-OF--5 I2g1--E++U+6+5qNPG7zQFtXnEA++5k7+++A++++Fp7-FYF3HIwiI23HfJJVPxgq2DoS6DzV oWyl2xh6L5R-v4JMdfW--rUCB8t-ULuFePDAFGM3YbOZ-Tjjsp4IsaE7VVMHEDbsS5n5iyQH 5oyywTbvwC+Fjj27SyvWlKpwDETrybUnbGwQlB1Md0VUdPG53vzw0bx6MRgxYGce9P8pVEvj kjbZtOVzSE590dXOk1raiQXkNNkP7FC98GE4DgPHuTppDDrDgrpDDUhhnKO9ullVp6DFO1Ww Q94prKlZqcDPOHmzzirnWnrHzXkFyFWypYTzKRW5EMfzwxayExD1Uo8fH0QPQ8xJWVgp6L-f o+1LhYRkgTMz8vLwomzuDFnHfIOLxmot04vQoWvFVkQ+NRG1mUriFVeJx8f468H31DL2SwHC kkriFVeHFznGUnYDBvUP8GADxg6X4UC9VCMtyabgdX3mawUg6AkVH6g4K46a7C4Dw1hO8qE4 Rcr+ZR8dc1yC+PLmo2dcMu3EFZWV70EmVFFLEW8h2UC+2LxVszvCK0nACqyv2fYnk0Nt61fd AQApcVmEEZGPwFLwQ1Nl-Ec47yBwC83GYHLltG91NnaMGK2vHIYzbBJZhLe9LGw43NCwWR6P bfC-L54RpGTqa2W5ROo0OJ0VX2wjngUwxTHl0rd4ywu6jvIsKSSX0IYHngm6jZwTaULyc457 yiy7brbyYdrinIXTzKUO0olgLSF5a7aacgO8D6TJBgwfq+YXZXZGTNjOnZMUZEKyRacXd28v DIuvaUR6eMrOCQa10U+wAIX3BHDtGS-Ltx5sxgz5EMcUULxOgDw2xcTXcBKyNkiqbWXHY3q6 4vwNpwgJJ4fXBVcyWyjZrDRgkRPnLr5Nar5NOzampz7ZfyL9rgnr2O6YtxgwgPtvE9fMnndf jjUo-InsCWUxU6J2RpmraVjJF94uUaVlxvbJnzRF4Q2dmF8ueOebpOEBDO-f71FDRx9gXENn hQAKPcveyuWAWGAiEnRJxTG7AUuIjbKS8CB+4S0KYjeYNAH-mh-+JHpxcaG-obT92mI9Z+3i 83DAYufncSirPuIJCHlUJKUo-hB7rI77uW-bBo6Q5b+ZXSyeiwGiaPfFMcQOfi0MXvwgWmz9 H-lDUduRYuOBlAf7lFplsedzR5E27prW0ZztHBQgMtXhTNInDJRofnp5dpd5-CyXSpzYZic8 Ph+WhrsHTIDwtR7dpbi-jjQgXSty02TVxwFchbbBsx7csjzsYqBMDB+zALkPvfKkaAjCQLCB +KehxDWsJzBAOHMrKGRER9i+iT4rE5hwS5s9yfxMfUlun+Cp2Csxc9nz+J-9+kEI++6+0+1n WKwWMjLCLvI6++0Z8E++0k+++2RGEINDEYciI23HrJVjQxfA2Lzj4Ly5bPkd77UaY4YaxiCq XYBgCfNVP76wSRCNEnfUbUURpIY4XOTTjPRv7yY+UQ0VGORYld5iRbyvhzxpHmzrzDrvyCU7 xjlNbgxrrE3QrJxwubrsVrvhxTckXhVg6XkKU-nykPpMfT7QmZYOWT2YVddLVnTjrvwxSTwC VWYAt-GywW+EMvv8wp449CMyA+KTvXiRflTrbIfRbbCSLVGfOQ6b+MSr1LXvhhJudqJ5wHE7 zENQRStj9yuyfT-oHauN02tVPZHzisWzBrpyMBqSsRDXcxf9smC+-nbZAC7naAj6Jm-1W0R0 EF88y-HrHvPw22JfQ+81X2IVn5Q36l3ma6hs+cAY4YfcAsIyzkj600POinleEbQ2eIkUINlE ++PxDrzcknhOxJW6CpcN1Wx2e-a2xj+9wCFomY7mhNf6SEU03QsEQ7S5AEFOD7q3Aqx0Pn1L 2-l213fHaJF81+DSn+xk2EHElKWRwbUWhFoav721ooWQeNWoa946HKASkNTiEzT1HOQ7LmQw p6dejsNXek-1VPGYK51T+76pWNQXgrvF15CK8jVoQTDE+GKpbY5e506z9TUgNheIDB+8nMJK QQUVaTYMukrGeG+pqIFI3WOIAR9vEgo0Zb9TudgcfOrFIwIgx1X62PtO+8ZBdKpjAR+1xfUk iDzQUJVaU0EzNu6rtIKQVoob8fWp7sS5uxtLw0AqJoj0WAx9cUWxdhoWMe2LoQ4CIyqq7kAN vG9fijil+nsDhA3ROOB6HVpSf0YFFtLE609CfIwoEyNx5oQmoNeEr577hvoj5NX8FptmeY98 FDV4F+Cw0Ej5FPVEL9abRVIe3rbNurzH8gr2YYnh3uMRDi3FUPRe8NBX2km7oMVfYqfT1rYw Fmo73FKU2kaZCJZgJbp7cOEDkFqbK9Z1Dd6FnsypR8+arAaM4mFfSwcx2O8B9+vayZm4Tu7M NQC+op2wXmhZQZw4zchAaV8cgp+aMlWO6QoHnmQpYGTWSLjNMADfWvifnaLjdbRjJCR4a6ok BlyoyodwFXY7-U+Zqm7+IJsiwecnuDQSh4dl2cJe8Skx8GBTV0lKw1iVTHAe93aOmaKV3dKb 8NdSanQoKNj-Q8XltfWdNLalpXnUxEl7Il4XBf5Kq2g03dg8Gt4XXG-4y8dB4p3No7v0tLXX YMk3mUypOgdmYCt1xyt9hzBJKtZvroa1sdHOouAYo8ty33GjPIXPsxU2ksv034KV1zdDFCTY zdVfawJ9mcpY22X89Yz9JeRK6zhv1STfsckEVynYXGOPAOJkrj+WOSAos0CAHtzgJeGRWpzC O4ORfNkbfJ9CN1PHVxoigtlH4q21dzIE1EKqiK0DIC1nYEXFQUerp6lvMWGwn6o8+j2xwsj7 fji9XxrD1yURwrvHiPgOL8C2ZrLwWzxkMc0fW6puknzCQ620PgEwHfh8sx8wqAW4lHD13uQn 6unTdqdm1jwQoBANfEumJQBJ4zHczrdia2I1ocM7oMNHuIwdsAQwCgj5WJ13IS93yVFRfKiB OIuaKFbl3jFNl7n0IAe+gv0SEQkWuL2zWHUwHCEQ0OAsMQ5NtbbiWReYfNDNV9S0ROpRhmAK hQ20PFrfJXtmSv1wEDIGw0R8gSpusT0y4lOKvUcg8gmLOCXOWfqL67xg0PQZdlHfWgRxeKeD 968hqXp-lDyJQ-LbZHX14WKVFpoJgGvLj3zWW+6fIqkReuiusFT-txJMpDGmYjSr16i5zdZB qjuZW9m+ImuMFtgAyLeK1NERFH72n-S7CeLtjnfk1TIVAe+WeDSlpMPMiGRROmkvMMb9wy+l B4JqjQ4j-vEeDZWPqfIB3Zqo4d0q8Wru-Yq8Tt0SdOqTNxGRYrzT-1y+oqtsC6sbhQkcqvoK 2547oyunqMQwZvxNxvavaEzFdTI1KBTJMV07EcbglSfUv7Kd+9-cBm-hvx8HGU67aJbOLUwd RnVkTzzrYNPttTV6H4Q-lqg0Vdna7iE+jnfVP9idgLD7pZy4Ql-xXczQO15WazgDAYAy3XFJ DdYfabSbngI1kdqN19Fn3YYUcmxCns2hu153ltESXQVn8tiKb-bgb7epKD0UVaCOWIAlmaTm 40wl8-GDXn8T3Z3XnqXrQwLvWEDNm3hsTFg4lTBaX29ZfGXZMSz+KX4PX3Jpoj6oQT0T0Phh y59EGrlN-Pph3bCE4Gdix4OcSCdUtZZTE3uiZfYQ8BwwVon7HHXfBQH-2GBMk4zklYFUHbeC LsEwm0slWSej8DGK9LtTcrJ7WHUhVqkhoJb81DPP4joeCPWPftoHzwleNkTDLpLhXDXaPiDf dfOscHBKJgGJ+hi+2RACeaS3QaAZnUaFnAuhttbOStN0Os1JKjVUwu5aJY2+Eqq9at3Lrsev KVxnrCL8K6ZQ745agQcgDAb4xRzUxEvdy0cXrmgjhkgdHR+pEHyEeSg4fzWc8SgddF4o2X2z fm1EJxCj4rxET5DbPuyB3S4txG+LKJoFBd-GCqxFDqyNVYsjOKjDkY04q92g68pBLTBNKxy0 iLB7q+hpXl584+RSEKrFUVBMp3onsL88mrOc9DCJ6qj3BIgvatKhbgRyK2R5l6eCGnhZ3ROY E2JxfR4MIwSfKpGFbei8PAoNSb7CNuKmrhPGEaWuGKV7oOotMp5CvOkQcjsOlpPQHam7lt7Y zIIpq9bty4Ypq13Y9brLudAnv36g0jGRup+pzYzoHLsXx6juMmOzSQ-fdQBon7IajRcvRqbg moqoHLbNBbZ79qZvnmOOKqizFdcqn+KlWP8JtLMXPPj9GBMcZfRdgKzfzKzdgOZNsySyftTx h9Hht0LHdwzyBXP4gwlDw2cjapqu0Q1Rx0ln5Cua1az9wfN8SJiKhvL0ik-nHo6-aw6iBmLt aHTpz6cnzuwThFUPWgfkXB4-bhi54GAgpcwC3jHQDhmEMT2CALPcztj5Fzw-I2g1--E++U+6 +7GNPW9fRcbPUEI++06K+++9++++GIt4Ho7-IWtEEJDJK43DsnUEzMv2TlVdHm8-I9IFoVsh LGpZMEw73UHRNOLHfSEaPijPp8sQhw0VyyxbCrPWh2ZPSYWbmtQa5gznn9mNgRqLzJQyTyzi jA+f5uDnxQhZ5muzLBnoHizYtmZACMgk3H-+j2vbX2qTCFaB-LWF1urXszQkS6Myaw+1HV6m kVIublV3+gS+IfWsCnxzC9ovLqjPBjvQQ73CNbWQM1U8sCUc1Bz9hPaMn4UQk4TA7sUy9yWQ 5psXYfHVAPDy6l2z4n3yMxiqs5FrNoO7+285H99FIEAjjrkz09sR-XQ5kQK-bY8ck5m66enb dnW3HtnAAIw1i-bwWGAVLvsFz7VeTT2wZFA-PWwZO+zlCll-3rt+jzXi85az7CQsMXlKsshD 5ny7Ji+Aj+-Z+UM7cHw75M4EQiJyhKPMVZFkCOyXBHTEiWRzsHNQAHeud88nD+DHKDhNS8XQ gxuIL7A0dUDYxJJwT+haL3eovmIHN2OamYgnlsvYxYvEIk+c2XCQ7AiqrczNcpmx1ED42cmc 2IGAmeJaYK+Q9WLfLczBO7mqcGwd2-osZHxhZnPT8CduXKRQtShjWAM7DdxX8fmtx30zGEXx urRUHfWMcQFc1aQo2cFFxTsNWpiIM03YR4zBqy7wRuJD51qiYbyRlYVUPmCfvr08FRpIGyXi XcuE4ccaHb80dD4cpKlqAcb48UWKYdOKbBalvCb0ixPliv0dcQZYai07X--GoQUKwzPTsD2p HYpDu7QhebwgndjMMw7c2grOoBUsskNsF8U8883Xn6beu6tiFdaiYrNL+zlcu8zCWgOE3Ncv DSnIR+AmB9BI4s0H1x+2AQPObhmkcg8u6Dr27i4ioNDuYMACVAokk2a8Op44G2c941bGR37H sdZGnwNhkVMNbYRtHLZKFhTJmSTdGCWjlgAM0SU0bjQsEr42Id45-2-yMXDjX2oa2UfMo1MW hsnOFQYuV4Q9BhH+fS0yrmZIrHdfakdSftb3dWXdj+DZ6OfgEovhrs7hmPxTMHcGMwxKhjy5 1ABNoSXnK-OEWbo9ubqwxJSndJjQvcsYGe5oNYD7Z-eHPoCQPGJb944wpMPSgw13ECUAY++i 02x3+DRMCV25Q6LIpqYYWJRPxwV+FKAS+-70FjCFwGmlobnvQRklOrOJLzfROzbiqcsUxApS e2pErbgeuljT6GNn05os-0z7ceWfx2+LbqyYOYzqxeI3W+inxw4yrWInJmFQVbg+9cXKerZ8 Q843Il5FZNbVZj503LUGHVKj+PBkeYZY3EYbiilJDSW+3zvjqmaNgpZnY51FX5Bpy7qmh45U ZVvJ8klQVaO09BRJ5QvoXOf4RAray4mAiBSP1EDMUvr+g-YM73gb1ufqfkX3LXC+ddI460R8 JHh99ZX-rcYpmyY1XUqN3TT0442CCtYNFM2L-dXgZIOIG3uodE6qh9+5fT1L8aVP2KLgQ+bP xhaOFWpdIrQJ3TgtGQYUkHZnAY6cIiqliGcM4p4m8GajcKL-ZgqcqMeQnSbNVe006jQ+bXAn k2Ca4ehi6Espdt8O2xB1LYZDe1hcDHRGK7337bh8lV4OYfXKCBCFLayRxefSDYBQFSecRExB ***** END OF BLOCK 1 ***** *XX3402-019818-110497--72--85-26886----TVSOURCE.ZIP--2-OF--5 I1uIwbMdKx7q3m6qTTNAdfGorsQ9GmxEbpcPBwmcR-rPOs6O9UTp0ap3y5MVfGqdwCquLIt0 a7CE7Mtjpxew-RNXyFhax+0DGPsfqi1zzsDgxenkrqsdunf9cQfFeUKmopina9FWgmcRRGgC a8jimAJBMCXScxGRNqzD8NueixOGKZWdhbXbKbD-oY7pI1dNP2hZdEztuQiSiwnZOC5OdMvG ubyLpMTk3TwBz2QV8WuG0kuJfs3psGdTHjDnHDJxgm74yerl1p-9+kEI++6+0++FaqsWAF01 MqE5++0r3k++1++++2ZCFYxIFJBI9Z--IvpMyqwPiF5yrM1zVs3PEB7V6xWCvx7MtnNym1aX RSn8OdCUO+3eRmHhSNQIG8tZpHXzvFoCiEwxP1St66g2qWItky5rnMhyyC29bxyqhlvU0twU QnqsSXwsjcG91yRLkzvBY6O4O8mMnK0gBDl1ddPbHcs5ZQmdaWpoCdZOOAQRq5jvxUqA3X-I CLn292gbi44TAmK3lEG2UTB-jzzlSB-zoPOjCQyJhWMjQ7cV52FkQ90zzsPqpXMjN-9-SxGt Y6gJaTufGt3aVn1rpfx9vKorkKxgqpRkifopoqeWFEud50h9hDHQM45EE87A-6ZCvp1HWlfx Wf4Z3y6hUfgItqsq3NaOo2iCge+TdqEYBCikWlZiPl5LZshXcjccO4UDuGh9Mq3H7HhiULha 3mF7jsRkvRtCG+RxDM0R6imEWH38ikCYqVrIWsXMdbQgAZ6eEm4R-6aYVhT3VRNcNPPk0l5y IchakZW1AMbCZItu+Q655USPtZUj7HJi7GrBZ7mYocNRN7414UDB8NYMA8aA2MkJqU91mcRm RWS3FjV3m0H1zVqRcbp5lj5P6EnthxAXC9IhFBNPZPiEePqlkVPaPub2pLIDA2yn12M6gQUm H4+yFSYU6oZ0EGcvHSI2A1A6JV4TtP2O4t-Nuqft56P-Po-SGxqsSFMh7REANGrUrK7RvZcv +BocmeHbMPfaEHW0zknfuK2tKDfA4KgAvY8E4ui9q0fB014Yv24pyrFujsS1oXnSmEr2CNyN LS66xbNrSwg236PU5moMUSPdsxmTd79PvHod7yes86Ifc9rkbVQC4lVobYQQ4wXF413VZZSo C1qti1QMJltAijP71DPV2Sea4lTGdVZHe352IzGIoXtSpTNKysRjw5FMnpCN9CG93txGnnSl VzBUQ-FjEDQ3TxbS4W4VuT-BtFFpuYdDIuNOtmUXbXLAVLFFdHVOBUN9CjPPR1xCVSA7votJ bdBGhpduXuvKZ3B5ZNStFMoU0xhCVM4NFiBQXTAdVzQCX+dfZGHfHNfUaiSiar8WZIVCCIIy PonhhKnEQfMsnJ1c3MH8QBj+kYc4rBtmJ+m6VU54hYb0SvHxSyjI1XncUytlxzDV2TqSR1z1 8xXXoEwsPxTu6dwz-d2z1IruiHAQhrQXyCAtDJ3N0efNjy8WrLcwnimfHszEjoxh8pflnRgF nLu8L+XzjIXhImfCLnxuihMIC-LbfrYoYDi2XUqG8qMsBL3yaWa1ZEuNNdpC7rnuXlRcwDEF y2taCcoUnmAk7c8d0JKIALRdNVVGA5pgXd8Un9icA7mLajvbOlR5GE9CeMnWuR-RV87+ms9x h1OJY4Cix88eSZAlstdICfAk7dp6qfrBZO7HCL3Z6CRZsJCSfyEVEgfUeHc6dsuvXncE4ZfM 3sRdXar0WK+WZ8OaomivUh0X86YivR9dAVnPo2-k+y8CKAkGMNRu3hfH4DXtnpLnIiyxgbjJ rlkSYIWj5eMhqfuTuHF4WE9WSSvCv6cG6QYRI4BfrXkoEXwTVL8mhDyO-Rl3c+K7QnvDbQU8 v3NYoywEvyoSgyjSxha6JghdLHHJ+AmJP3ZiQeN0HX-dqYKneNouhsB2BMTLn+4z6I5GOjLK 7zMrHRmYzoKU0LzodIYT8jLrdGz+rfSWNf7okJQ5F+Hj-gjkClxr5RenICtsn5QM7LK5qaq- Si3RTGHWKpRKjBDCZ2bf5e90mMJSykxjCYhaglTH0QS093WOuIglmX-YRRDyJwXezpuKzkfo CNUsldvYcFZwHr5W+TYRb+nEc+r2P4GZyefTmnTzyomuP7Mw9ZXDtAI5Y4fCU517tAvkpUw7 0uZh4FyEF5160gpQm0GLB3dRM8Xw4XbwpXcwrpWmEtD+9exSMP5-LgLOfsKlBCqwnOUQqSyu rKv7HYIRYSdqjvWwjVcAXnwA1m3rYWA2CYi49fqtl-RDVGOXmHEupJXd47RNrj0sEsTnor4s uyKYIfdtuFWv1MNw3b73V11ZpRlyCSlo-RuLVysnl7TBJmWIgwBkjqYGDWAf7QvPTWOo69sc SFTgrqBQKDFrbjMgsUfBAzuGQyE4Zins5aptTN5tbaptwuvbHSUyRyI9i1QOl6pBWTg1YvFO NGHxnlHbHLc4rKBi3Rdv-l5w4A3Dx5zjHlvzFUzXyoNchTnApQnZL2DQV1RE9itCIJfIbtcT bkBbpIKvx2nrln+Ci8UgWH9lPjrPzlaZuvbpqNmu6NTKxz68VVwNVMCT06ZZ7rGhx5KJEIh+ raaAUlxTG6CuRCpJhLhj6u-zfrQ7rPrC2WR-xEYPKqhiDRswiZCocj8C2Q3cT6NXIKFqSQiU eRno-XCAvET0cbri8hqHESkRv+hiTZxvLzBzHRXMUWOdQOKrP1t1SXjncowLt+REhp5nxhwm je0sP8qGI3UGroZfB9PILCOzldzZpf7UJQwOiKXnJOtCjGzQWajwjojuUYiFGjXiuQit1pS4 kp+VyAkJrzIRhpRz1UfNy1dHTCoZi9fPKzw1I2g1--E++U+6+0W9Pm7rLSr-ok6++B+5+++8 ++++K3F3IpEl9Z--IspJrpDOE--yNsPzMFwu6olX0jKVIlUT29-pKai8IT53aN+gSWLQNN69 mXXpPyzSLGsY-JFSvbMryyqDPzR6Ib4T-YiMydX7PfzNO1OS6Qy0SkEl-rwIG5H+5wMWL21+ 6z0zMt-+V5D4AE94sMcn0RDfgz5B7TlJvba44MlGhg6oQy-WxUR1GNR-YXVknT0FviT6Qnea KhElEw2nqKk+VAgPlWDl0ATEvLEuqWXL0GePRvsa399QyTfKJofT8cKCpD77WZYMG0NsKrp+ a+cwnIAdIXWXRDh4HOK54CIdkZYIMlxK97Jt24xNjpDRAMtLm4Jf3OGUPnrkxRbSvqQ8qEt4 4Jn8ECPNHydVrFpth4Z5YP2do0oGJkZA8DW2OWJlVjSA8wxbw9pD7xuL5b5mU0aHl6tqIOFE ZmdRgJ-8zkrZy2aemWNhbQ525PXHrX4R7ysI1e5P9RKrVTdKePJKHEQdTy3XmnCHce+7ma0R wElHqJ8KxbjXTGqo7oIs0UgTWr-u0aow9SkCe2rjW2VbWOrXJvGTCuwYcbP+te5iixBE3eKk d4t4k38elgtEKdidBrbJsve1JsBbS9Znft86nYrbOVeJL2KlBwQrVjyBH8jSRZqqwxvlZLs8 UUlBDDTa6N+UtaOJQ1IImmLtx6lQyv6kZFxfgrpHSjKRhDhanvpB89qc+zcVuc3LERepXmDA 3Z7EWvTanvCHMl1gv1VkQ6t9YOsDloF7Si-+dlUbvwuxG3GXAj9Q00-Geh7bAEtaZbQPh7V+ nk+AUmkAcZRdzixFqjzCv3mbvNR-3PX-8qgoTGSXgMpkricswC4ITcvZd9Hyk5Lfs4IEmwDd 0smTa8GSp5y94JabXa9sRwvYDcXHclSsG7+LvBRU3fDH6uQu75h+ha7jtO3kkiIk3VaK47n3 vLOv26pEMO4Q7wp-1wdzhIezOsyz3GQtfoUXkEhirKPX5p-9+kEI++6+0+--WqwWzXrEyxI- +++T-+++0U+++3VIFJBIAWtEEJC3Iw3iqn+AjET6Dz-c+oPOPVUqCCWVOkcoVuq4tvMt-J+h ChKKGMMY7mW8zTh6mJvQNABm2Tbsx2HmCOop4mhyked0txzBdtDdt-Iu7nM6dc3eeFjne9Eo St1M86oGZ6NvfHmg5dMrXxzU3pzd51dMK9J1un8sSzeChOTUeaonS30sdrUJnj0+TqZlCU2c jfkE+mtVLMJcna+pU0Oc7-JZKpI9fslCaQ+zPWi5sh1RD3NectqrLSqB7MvmDIl1pWUvWv0I Ktn1HZbTWKqccdOVeT5JqACgJxU70qICJIbhIDe24uLttWhIlRbbsaBC8rZ4enkh7pnVbR+U cwM58QP9qNJnOeCHwykwiwUioh14EbXA9y2fvdC0sml67KJu88xbhodWG7TOcTI7cqYjSvop xMx-6GF52U2vpEXk6589cVooC1uGMCVIUR5oS1UO95jz6TiIxYnmexQxa5OYncLpv8vZVHZW jwa-P15BBKeD3iLsSOOlk41YkSn-FjMwqbWn6k4mAdnzxH7w8rzlAic-e+N2a-NZh+9wAyfS ezhKobb0WyiClBuFTn11KWAlvbr2WugdIJel5spC6r6pX7r1bnzJOAsr5zOEZdoSNEiXAKfC ddDTI2g1--E++U+6+4G9Pm7OsPAfO+6++7M3+++8++++K3F3IpEn9Z--IsJIGqzOE-0y6z2T tZ+dFb7QYeee0i6E04ZFGyguHY6iYFNvA3jA9ZejGJ1IzDPCfVwMtPILnwvvyrP44mIHlRMk 0n5HbzfhJfjp05b42UGtU516Yp2eclL2iC+0My+0fUHLA9iSX4wisNw7m1DAs3nl9OfAVRzn jlVd2gsq4lSa858GfnbSoqRajvN872Kaqmq+O-r872YF-b1GvLOhISwqO4nyR2RNm56LKeZj Z44ZZ9OG2x6htF5HL6eCQH0bOfk5TWLq0tghfD76GkIHUZ8eWMU6spmVJJtedjDg7o5iktMf bPDoaRxr7i6IlpgIqhYm-JPeEKWzbRTX7VFpO2IFKxUZ8qJn-IujvB3Iw0av9vYkxnYaL7XU Fx7x5DdTSjEqGpFQomjN4DAsl3O15Oz4urin5j5xiIzG9IZTfPMaPE+0vtqOCRQaR5kLe1Tg R8nnF4Gch3Dt44K3MsypUO3-OM2a61E-DK+Hn1TIskRh4+q88c3rNVgAj83r0wRkMfKze9hx jf8xk0qM7aBVCwS3orLVkkIRhleAqjc1RwvFopaeXqRDA5vUygW3lZbBmHFn6JfzmPZy9TnW x+b8wFqmO7IcaMjM73fB9otBjaeuukG0dtpCSPDmawGxAqDjX22nidf8toDlUdTlsMiWabSn N-c4UBiFL8z73zEGFE4UxeZAUzouvvo+ddWNLsen5mXQ1dJYwMVZqb+wKX8Fc85EhOmwCIla TscFCe1XrOKkSzT0IVHt9-eKNHkF4Cz5qi8cByDCixf2H4CXDxi70PTRxO1yInLOCRXYuVfY cb2vZu9AufJPzk3EGkA23++0++U+j6dj6gxXChfi1E++oHo+++c+++-MJYZ3JpAiI23HnFhf Pxgswbi+z6S-oIDgJD3NhVAbxaJjbJQPsB692iwqjO7Ro-7hupMDbmX5nFLvGzSz56v1VoFN weB7o3Gh2sj14Qu9ky4EyPfvXQwTqphTsFgTVTD9iwg-rDpuSTvyZfzpkMZwbne73sIEXG0Y QzXJcrCKknaBdUylBtsYI5JeM-wRhTSCCX-wU22Ik5jeyxuM9ctn3cIYcGsE-VQrtyTjynTb OrZvX1nzX-AKnCX2dx0qcBpiBXhwv1U7Ne3fkNjnaujyikw9CCRLlDCvA7SQzykZjxRRyhmw DQ8aqpjJrSohUBgcc11WddV5gQi+amONS+lacNRo2PursY2eb6Ax44UIVaFyNn1mEUdn9tb+ M-MD6vUan02y52+IksFPZwNpi-n-EnG14OC00g1Uyewbpx+FfEs72Q8NcJ1lEcvUQEhLk6a0 U6H0p4kGnIDkY43B+O2oHA1bkkhN852asUrab+E39k5CuHFWn-juh3sI+3ku2gUX9qM7iWbl TG+k7Aln6-fyanc7J+Rru9Up453lK28G4MBvx4H3lbnWwK275qwqRIZ00Fy9Rm+EIAP6a3Cj ***** END OF BLOCK 2 ***** *XX3402-019818-110497--72--85-56493----TVSOURCE.ZIP--3-OF--5 Age34AJF60EYoubjCEFb-cB9pxTm-1GNF0uhpO5DiJ-e682XVDATM29iiMcWWCtd55iiJ-QN gWEab2q3fKXxQbrK5tk18aze2oTqxI6iEW+4FXeilnXg+NJ8i40l3sutbNF9Q9q5B3PI2e3C 375+eFwtjuB09DtmliL3vq6UPgGrZ2nZCkDuVEFHbqcpSTW0xe7ibJi+OkiJUnfbp9bhdPOt gUNW-+g4G3kE5W1N4gkxrpT2VdGP9i1usv7X97-y+RAs4gQYM5+rC9wRq+7NT4qOlVSikPWd KQF3uCklCVNyV2MpqNFIhOhI-tpPqP4azMxAVOqt02eJL6D0Uw7NA8ElYmNjc8uD-0z6cnAV O0wCJaEezEdIVjnXw6z9DyTwQp2F07KxGY3Nb05ZaIc6FOSc2Aruw24Af9+47xtMe3Vt9Z6- -liodI8cH0PR6CUmJU5dAbJs4wpF21ZBCMv+ECEGEmV0EjIhPFJiUhoOaY5kx2JAcFuySpnN wMUsJ++NtGEXNaa5gA0BjLii9Ugm3+R5l34Qs+pBnYV0R6+wVjp4cx5Xrvv01TrDX962L6F9 -tQaYHBO8yEDGSVoEg6lpIOKV4l7u7MaMU4v7zuA9YmRp0oUHyW2QDKY51IZ6EY0V6rXOAMh n2peIAWWzDNKwX+JWfmKn-v1NwZqfvUeJ5QtGElNFbXGog4iwBS-dW8PekAFotGVQ-uHfZ7F HnNmenbIbQIIrd9ExSbtDSSkSYxW2ByuA-0zOnoyKdnAW3z+yoK2kyLkgtXA3u4XKGVH-i-q jFLwRC3OTgbrdO5PYtDuKbcn8YVw8p2EOiVAqcm-AshXp5PW-SPOfDGYWKYxrFa8KWqPkN26 LQXEaSU34r82B6gQ8K7DMUUXe4+6julbO-FH0gC5V8cQUQ620GW4392bALENXe9IfzJ9Pt4V qoYo3l4pEVmYIV3naGpem0-KshufD4u-czRSu2MNHz8pNr8YSYkWrwJkYUpRt0UZdbaG1Mcf 2Q9WaNB2AJm4bdlO7lUHK-Q4BlmVhg1V6+hB76v7koSvLfRPbn02c8ZuCV9AFWAOWqlZo9YR oplYIFk8UMpExnaBEEIHR2-r2q7KCpzqOp-oIcBMOMFFs4seFIx1rcb3gWhGofEFUuJx+5gz +OvCjr4eZPq8-T1HgRrFfGQy0L4aJjWzDnEWVhMr6fFqMFV3DWJVXaUM7I0Ql9ibY8rv6Xy2 udUfhENzpwE83Vd2IwvzRSGVajdZ6o5TZ8OKXjkJ-CtgCiKKwSYcsQHXY5zbhZBgN2na8-Tt NEK41JExj2h5NCMbqMe34NCQrRHJ+Xsxl7S3wAIEcCnB3iRPacOUyyYLoKZUU9EncHuadXRp cOwbkM4M+uYzxnMlLsbpBXCLaGYhy-gae1+ZX52JQtK9vIUuAIdBaR2lbqICyKl9gaa7B7IG molLfJpQwu2bwMIZihYeexj38h-JGojOjfqJNh-Wcs2hXxWnfWVDvCuir04fF4TBcoYx3pTP KtaG7ETpBHPOrVfGgFSW7fz8nL0b0ybSBqRVPJLV-cA0wNEUU1SGkxHTHkW4Mbdz2YT2DGIg kJIwZDuExXdJyyhX6szCieLwsLDeIl6LlgB5Yg63vne7iwRNseNuG2THvZNEIyeGuL-xhOJR VGI0nzMKpmhWbAl4L95M7VQzuPTdYd7GDdLgbINy33SPL8CskDKnvHWi97If4gsUl3qDLx59 KqaqdBNrwG1WFIk0eaNsFG3SFTToR29W8aTAUVrMgS1IUZjjjvFy7pK6DPWyN+So+CwV6SzF 2zvVVPHOg80VgGmk9FGsNeUbnNeJRYdmNoA94TFMUugzswUamSwvNqJgSQYt8nX6b33jjauc +wQEImS8LSY6YsY3EK+-Mprkcr+gJVCdBSKBe2eCpoJYMQUAlM678vcZBwX+0qUprowuUG7K bomshGOHL3gEw9MUm9Jlhcst+R3q6PPiu3nGfrPyobGvufBXONEoQYkaw1Sk4m600C-5ylAb hhDMoHq0M935Su25MsgxCaMDb86WoLwdFnj9vv-SkB4EUorwn5KZAnkwPClb4Mc3vfnInr1o 8g8l5zNrtrYzQppi9hRRuqSQfKAyo36zeshDiwnDLDS7TjPWLWFHbdTo6iEUwm9Z23Qom5n3 g1iq5yDDzXpFmJjFN0uQs5uTqshrfDo6SWvgfJx+nte3Pogs+7VFHLj-x+ALUloJwveEnWz0 a1QCeMj4dnIXtFC9-vlCos6fSMEVyZZaBaZZ4OC3aLyhxVacfkxrB7YRiSJlYAfEdnixFuF2 v-jmcJHYUGnhZMYg3jdBN3P521yGoDN8cOxc2AIDdI99+tHpAaCz5ojYteewxnh46vCWxrqX YJb5A9Wc9mwOMiCBSZyrnlFI7+JidBg5Zh++nkathFfdZhAQQKZTIREVDYoGqXq4yTHoUMGe U0dK57yAoJz2Pr4sVItHbMxCzMVFS+rnoPyW8--TrgGFGYjSoCHwGs8vnVjNQ3B5M5KjOQ3S InNRVcn4GTIRbJTHgf6Z-PidpJteIpAwpTaSzd6Tt0jM+2q+3Y+PM-zU+8+1Q+VkV1Qps+HU 3C-AKVhfIsqiKKqiqa9maTwPVFNP4UClvHlqErRDTtOwNhXB7KArJX0FMPQqkquIQxsiM7Q6 idHnzSJOOukTyq+nv0IuvumIStrC1xTNSyLMFthV9lavzspXtv3DmWnKq3FfdmhprWUZZa4T fTHnRKCTPqnjgf2jjV4vYQNcQO-GlfYdPZ25-fMsS12d9AZF3wWKzuydm7lPtbHgf1zur4LN 4bVHvsiY06ZWIc4zDgVTRuwvujrpjVFquM7tYuz4uXOlBQXMCnON3I13tP5aJnEKXYZ8edud EbvQef7143qc8oQXvFa9pmiuySdmqNDeuXorOHJLNTtQuur091ZrKjMMKxnZbNPLjcgD1PB1 nAKf6-g6nJKRiMmgTyEQOYHGt5iH-pDpD62Ybh4bOWGHQKZhDzLL1TPB3r2I7dNUgmhDgiKa 7eperycxgutdUGAvpckRhu5OCSOT6gJwpKVQLDGmJXMboyewpXDvFH2sGvjccP5bkU3a7Wrj lAKF96e2D0yX9Ul6ahX-knaNo93GUA2ubhdvT1-lOIliTA0BogDhqSWXVtKkJ0Cm7RouOStG WYjwWNBsRNVt-vsqAZjUusKGwahuz4xPHOgZcsIdgBWwjKfYRbGUxrnzkqR5qXOB7MfUFzgH 56BhF-+IlWu6NrDl-3g3+gqAU8Z1F4cKm1HnN4GrJe3PeulPix0hbLJ9dsD-KOhAhDo0ZTrw M7gJC189h8rxPvH5btmJDtTNczpISykzLKdvjRE5JgQuT2szD5Wer7oTpUwDbquFtbe953Zq snYRwSWd-f2PHtSvhJtiqvPgdaIzPp-wQZGoTxmkO1x1L4mj8UWKNG03P11JWQVMNNeNdeeB PbNLvJXKEdH2RU3W8oWn+4YeG8g+OGZ6ik-d8wVy+P8j6+Q3m640R+eEXc6Q3W050b7IU-ld GPYGwd0yVhW9Y-ABOGt0HXKYhEUtot1q6iFQEzML6He9gkwK6Pz7n0TBWlTskvqeYFixG0Yk jQzqbIi-uFJmfULtFljmgdpyopR4VxU+kylKifUwab8hfbWOF-ttnROMbmapsVM-Roe3knKF VKTdjWQrJ3YObNqmeLnxJIDuH14Zze-GOWAsZVpK67rwUMI6NZKDmxygsPt-T4rLZhqN2b5u s7DYtS8wNvOrKcjhqOse3yywgbVLxCNQyIFPffvljQTo3i1RRQF+rOq2v56ZuZrJaEst6znH r9SUlHzhNWonbZ3l+PVCFlI48nLKmb9ATYDLMncPpqD2DJ4X67AP77xKGpz6bG42S6OESaPy 2A5o7FhxuO1cFhTpCkt35LvoDjLsukTgbCsZlr9r7YPFutAOtBcmH6BZgRHX74QGiQnqtdnG RZxP7GfgEVxNBd9eTjvPW2PVNAbY8XK3TDFddhFNsHkncmqDBBTJAZ8h9hura3i+BvP2qSL8 SppN7nYMpVYas5frMAjgkiHMLgNltX2znvY-efjkBdf3HDlJaxrsP8gs9MY5YJh4jDZ6sUq1 S90AwxPal8ywQ6NzLJ9UD3X4STiFl2rCqH9CxnQbTYiR85F9C4T9C1xs7557SFPWyPTuzk3E GkA23++0++U+o83k6WLjkCHB-E++y-g+++k+++-BHpN7FJFHJ0tEEJDhKSxiqnMEzlsUvr-1 DxVS3RKmbSMTUgqpbGv+YbGCymRT0h+GPPCaG24Yv-X3z37xU8p3La79U9l7AN8GzwFBMfRQ qmwJ16h5rhrjXYTmdBDPbnznybBxvGpwtdL7D4iSD4pKXy1ctAJVcrLO+bUiI-Q1vo1fVSa2 tsn64n6p5cpWoip7mDg3w5NqmVgvKx+SEMi5w-7HGdG0-NkuNoXW+70+UqOXwP9OP0mpvIjw CMaZ0-DQclUe1ZEedR8KkctZa91+UOSBtZ5py4l-df3lV+XRVK3eyex2xho+zwyqTI3ApxSW a5RX3A6F5l1Q2b7DRmM00kWsQ006mE15eg5PPv+jJEB3YEC8RuV50O8welcVNcaumI4cpFUR uqhm3C5pBM-KBMdUDxCEplEZDd82gs6S-Z+qy1V6MUnJBYyo0HRv1kC8xlFa9-B2DlpZF-sd z0QcjdjdBwGIYgM+AtYTc-VAOlROtZus8MRNM1nkCFBGRzWVgIjts-K9lQmvaKvhYHilL0bL 6Yo51dHudj9Mu8kfOrPVaNbZaNCpiRsOdpFlepZFEqrQ7ImX87vRTHX4kzkWZqAQnqwK5RUg 36mu6N2xe9pKYRBIdYDDEnI6TWQAtrCf9WT3KBXv6Th1xcTgfP9zLbmsK5dxiDXfBhZrw4st e48uJTPX8f6Trxq5SrY3JtRkSLqhzXE7VfWSsRu7SUbLVZorZ-71L3rBcRuBaE4ZjwYTf6E7 8MleL0j6Z9VO+TBvnOytlXSTJQOkafTKi3zWfvPF+RYX+hEDEFFX8ITEtHlMWVhFt4CE529I lm-seDsYYXX2H6cZiAUYpF3DMgWSEhljsiwV61d26k47k8bP7fJe9uGOWbhlNExfgHUnLdBh 9B548fUG0qaSdPGIX-2H32YS0y1lIbyJaOkfU78yBVZ73wts+YD2d1Nv0OsC1E98SFwsUr+2 fGFiQrV--35ozT3B+mDU3nXaaadHfA7Iuq4zzvLroLUs59dx6Rq+G7TUFl5a2QKDlejis95A 5fQTxG9VxaF6lpxxPRbsL4I-j2a2b4sbgnMvV6MeSYhk8N4GMaUHeS9AiXXSzHNbVqQHst9B D7RhpZP37fuPBaToMthphKKH4vNhpjCCHIseqikXnmMLZanqPxYa-pRgncpBaxnzqCOwqf7t thWqCGRrPAufcgrtvBaQYmKPj30qCNwfBjZcomMjD9P7UpgqyKXP7jziqCH-sZT7yrxTj3zy 5jbysdzjzisveMY-BBqe28H9wYKbu3GqbN8LQVlAyWhCmOZI54ynY3KyPVGkHD2fepop5QUN CUQCp-ksa8xXpKydMoqlBnJ4qT382wwCaQ0ln-iQIsYYwJjsT6OHAibfEHYr8LL0k5C9iMQD jD91iT4PJ1arGWZueN9tqbGAwF13mqHipxT8LhMMZw+N5E20EQ86Teepb2jTJBfw55v83QkA 9olaeS8+hyp+KRp9lRhax2YWtPHWe8AqDVbrQkvcoaUBAFxH-xeRCiuUVAdtX+1vSMLXjZ66 La2jctxAu3KE1gSgklKK5lueVgNgRstt506u1rG8RJboKAIwro3IsAJJGneESci1T9qUrw+M n-KWLviBQykb2hRBFHhTRs+FCZ3T7m9W+iRfXjv6M5FDB0xIUIqZSZeyJP0gVqCW6tyB42jE l-8n2XBfHDipKkq03j5vxo1AZPhbtSNNfLa8zFH9lfbI-SxaCVhusgxqxrLUrHBs07vdnLHB RaZ8no8USbJTDdpcFNoaPRCF4yQSZ0d3RLCUiAVbC+wZ1VJPRKkqiMfaOMxotAO-dxfxhW2C ***** END OF BLOCK 3 ***** *XX3402-019818-110497--72--85-17424----TVSOURCE.ZIP--4-OF--5 D4RGLxROtcHBGTK7ggPsT2mo9gVJeRlsNJOVIeO6JuPdVrwYFCaO8hC-J7SVgjPRgvjYCw4h cNqLaT8NE-j8TRZ1yhg-5hFs40dS2yzIhWbDN4Vzyf2VLO9Nds87hJasevj4KhApBOVeZgNS qaka94jd3NheQBTLzUBEGkA23++0++U+P8-h6bmIsGlT-E++NF6+++g+++-IJYpDJYZ39Z-- IwJLPKwOFl1y5WbzMKF3wZpw6CCagU6Z8UOGcgMq+VcrLm8RvkPMtfV3ikjIhT9TCzhmPvnM gaKpT1XiNaRbbbqSqPaxyvRDzDpszScSbjVnQzus4YlUwiKGflY0RC16r-o-LHP+Pzz0GCrA uT9ZbK0niE6jwe5lzjpDhTTbQ5g52vu+4okGBgDhCHqSVUdX00Jw5DLvBtpFzp3gnpbDhJ-m gQ7tUj+iU5TjngvC8PREWpIO-z0dDvfgL5rRahCjLMMgOQ94EjyJeSzp43wMqnAoTTpeZH8J eRDGVjgrpmT-ltBUS494LvxWeI6l1GAovV6ZfJM4o-BgXM7ifcq2RBBN9UDsEefeIFMaT0NB F5Krd9Y+xn1bGQnG4K+MnG3V8E8TUdcXqC9scPq4tfv9YsGWAdt04vtBhakhvHXNRPHJt2o8 cuwx+NO0FlWj-A75UHVEiD1odEZ1PdPbhq1BV3e3GKhvEWSCDlBGHnN-8Y5cTSC0ORmmzCW3 KTkploJt6ELw2iUGJAqL+kbkaIbJr44UZEoDBSwH3bob9-fq12IyRdr2so-T9tiksG7q+l3D 0TIeIZn+U8Hqpe4+0vt8Mscl4J403bHqdzJreCW7QDAUIFePgGw3KsQ8fQhoZJe-s-AekuKy t2jkAq6fj4dKCvRwdKeqZ4+nNx4QD2CV70kAWvRrg76cXWLZEmZpNFppDYxeUuCm+WN86MBt 94aF1KS0q5Gt7APb2JqATNHlyEHW7okZK3bybhw-SKVu7KwaJsltrVtDwP-SjsJdb4-zXOY3 NyscaDbTqV0N8aNJqV+h-iaItlXPQ5NuShem6lMKVj3RBh6k6vPoawL4G3ZWcf93Ag23NErp kfH3SzgmDpy5ChkpmlLkqAz4SX3MXYibJ+Z6zTbJwcF8iQINGrI6ZgtFADrSB5Zhng+ZgnJp jRFF71HPyGp-thAiuhO7QG4imRyqC+ffW8-derocZM8pqmf68elIjaJGH0aLMIyV6mKPdFVv lgrLvl2nZDg+x1--VQv-ARNXQgaZAkNaXqF1ldEXmeeyn741YM2hBZANumAPOmzttHatbyu- QgBIB5S2wREqBZexNxreBzBERmxQzstrDPt7TO-6s+P7piKlrafTPni74jUy8SQ8NmR+ZmwK B9QGkBZcr4tsTmzB-ATWyyK1tWtreHU-R-AAlQsG1yboc383JZSswMPCkpGkfP8U82Wza1F6 7EdJnIBO+WMGbkHs7PBLGWovGUXRDUDuGo8IOAz8iTFPkZo65gNFG9YCGJRot9ru5JfbWqmT se1o5nLpGazzzthuzFb59iox1q0F5yISPhRK+5gkP6Bx1EytBBrJjbdp8eVotYyc7am-bYtX nsraCjMTO4zpscV50+qQ+9-u3fLlN+-niMiyahEsKSlg0Z7r1sr1J8WSreM9b2115Gn6VtuB ntXADtwSO2I5+hLmE40DmKqElSDMC9ZbZYMSwNSLj1vqJhs5IoBjqx1ufRsZ2JGhIKdvZmVZ C2DjSdCW096hqUqZ0WevAR-vlOxgYVrCLLN5SCKImOfILumaB8fxuKveX3qSQ93LWTvTGizs YJzmOyg-Qygpf5r8-SJd+v5BMJGze5yZZQNwWrO0Whpt81n85A+l5+QqM+-XxUzKzmmp0CmC ZTD9DUS6n-Da-z1azCmwYPbSu16rkuS-fXAP86-4c-TevyokyNS4syvFvkr5eemQefO9ibnc o75UEoJtKqMi3H3pT3lublHasRVYwCnAXX8UTDxPNE4vyVSBcLvcovK8AAmCFRf9hjigOKjW XTK-DJv8hzT9BozZraNLiB3VdJwhMvefzkhEGkA23++0++U+3tZi6fakXO3m0E++D0c+++c+ ++-BIoRDEYciI23HvJZvPxgs2jyzE9z1+9isG-TNm8D+cjMuqBVtCQX1W9qL1McKM4HOtZKK -6aCYmjqilzT6aL7Rhdx55-pUIMWNsMnwljC18YjzrnZvzSrPvv+8ry8txSPzUWiVySrrIjq Rcrn52rlvSCzQIXnCdtSYftYN1eXs6Iyv9xzTxVszlAwjg+caQAxXW6mlKKSYmF436w-tL-q RrduTrlriZ4rfv5bBeDtT63b2MNr+PlvRr1k2pgvczB3D+vUzDHiyjXacQFnqfV474f-Iefy 0u4TaqDw-yjq3NWyTPC60MLfTAc+OTDr9nzSvUNbiw3jio4z2EkPUcX234QH349-YSAQ35s- b4HY0KTgsHVB+zULkIjqT6rX-NwX82eaz1qTRdBb6Nyyd2k8k-QMYnmBo+iUy+LaAWdm615E 4QYVdsUiQcV6X9Zh++AaMmU4fzVM-nuBb72q7leJWF8V7bWXMhHbVDn5O2TsaPPMKVa7dqox DdkZmkhaQEgSYmH083MnMF6nmYJ6Yknun4jS2weUan1IwlOAvhUuPHUykFDqBd19gFRTAORN 2i9l6gBkUS7lV2yTQ0kZW0QaEDnpqz-2Afd+YS8P9C8EYWE4CARoU07A8KPmpJCNiZXZ72D9 yhZTon2eQuQAG1NM7IXhqFIlNmESxmaStq64lqC-AAQqb83sWVaIKACAlo0NhzYSFVdi3pYG QXVgNCK6UukVYgV8MCKU+HOQ8sJPQ7xYMkAgLE3v8oVZY+kZ5lnrYjaQERW07NDxfT-i0xUE Iuu4Rql5P2aOvLylVsGzqRwscN12oMh0-Hp446WMEJ4SA0R2GQPUAK1ot60BVXJYs517pi-l H4Y49SWyIBny8n1GgYcz3vaqI6gw9WVKijbZ9LTCb1v1kYl4wjWmPfzxPw-iPHg7TdmHAEMI guRoEIIqLF6u+kEtaOQFLhq7TItcdpUnM60rGHHgNgnTnXCJXf3BSJHVmUkKxYmGQ858+sO6 tBF86ogGFT066Qmku+0AAJSAfdgwOpDIen4YaBNae-2Hiav6j06UPlPnLV9ZdSUiFyEkn76c ue8AZknxj1b5b53TwAHfwTxOH+i8dnVPsoqRV5DaBGg9C250W5Wt9fkbmvRqbbknjXCHqbJm k5UC8agf13Flh39vhZiQo+ULSy-PBe1qX3VLB1rZng5o6w6NsPmMIaa94PuzhvTL9YzTsNlN cOPrxPHe8+fYlTF-qpqPV+8DTulYJuI2TxP9Kq6C9H28ZFLpaE88IkVIbCxIT2U0BKC7DhVf +swSjKV1vkQELS5PBm85n7a12IyMIcq4wvCpOZHwTXQs8Dk9yiPqcT06dmHaZd-sVXD0Qs-U Zcm-sd--QthmLTBKFnw-BmWNx1-jQf5Qf07sCv0n6xs4v12aD5Not-FlNyav6EHTji41RxeA Geph2MOB2Il+jXPjNsVLKznInF6ove4QyY7zBOrluOm0vjDA8NMnukf-+zXtW3hbdVo0U-AQ MMexUKwqwEb7omFbEk2zQtau8Lr1bwslDLqar6MvDLbLDAyGdRQs08-lc+StLqzkofAmEW0- ikhsai1k8gDuwGENoAnzt4ha2iQscpcjiPW4dmMCfEqyJFkKxApLBTkPkt2nGPrp6QH2aXZx R400cVnL-dqZrAP+8lGOE-355FJ36QedVHtvlS04In7Fq3RYkdP7vIvMU4pP1NNqLSGB21wx qaCx08BgNHC+4qlJuLQPbNGzzsXZBKGpeler8xBLhpkZalABB3hUht4sk35OcwxgXXQNfbAz yGuhCj3NMwk2k34C5H8ae0ZK7SKep8gAJqRyRJr5SJiuKTzRY0W9vJyvJMkyHmWHeFo4-jQ9 oyTN4qP36NMTr-Bk8Mlg1pgwDCgRdqZ2EZ2pDnJ5GKe3LbJ8tgdpMD0dSMudkhp-XwzCkdiY ZwGoO8mM92rA73vIdLVBkqFQ4CSLHJjN6mss4tCI9QxmjYaQhhQ5L-KS7AI0mla7A5XO8ufU SQMmvdNf2jiEN4-4XwEcSjNx40T8wG-RS8AR73nRANs4cFv6MWywKskkBeqwhhGQ2oi4JZvI a4NHK0ovZkxLC7vGaRSn9eQyAbpuneqKQIcVJmWYbfpT-jsqvVQ5HHSkJGvYPhrNYFukPbie EfTMTofQpiWvpoU8zqs9FbmWitVAQ0P2xECsAUQOAG6OsFMI-mZyaPWMK2Q9cu+uebSsewGn xyDSzhuVefH72yvBICNp+xW-bI0QyHp-tUQk7Dz-nRxwOk2iFrZ6X3ulxvpqsHdCIbWit0V- dC0Jh1sQeIJK2qilM7WY9scVU5pL9I57XFVGNgG5exrxXk3cKggMroaNxlkj1c4r3w0SZWW2 Rzqp9NDRBOZfhxLy5KcP7wbGr5-ZYuyxgeaxjRaiuSRRfl+h8gEpmXxn5lQjH3if-J85BRrK RAmGgWynfq9KvnVZyGiugezhzwBpzPwmd99jByPIRRYOYRfWL8toqrWYtXf9wgF6h4P5NhCd ckODy+7BpQ1Rs8IMrl6CZP3IuZ3NlRl7mhAT4v0izDg-L+Nk3Q+UU+Qr8JJYfe3pzvUa6yp9 4wuJ8sPmxMfHe5mVVYGpYXQ61q-mXxGHjtyNRYjKlkTsKKvi-pLk99VLQdzEdNlSNCT-x8Xf 2rUnx45+GxEDVosK8rK4VN6Xhqbhlu3xY9EPkPscOiMpkmZ4hC0wR8Thdc+dfDO+IctNm6hy SPIpD1mDQmNbt6TxkmclWtWGW+gtsX7smw2SConzLSpCAOURhLxMg+c55paYdJ9+tWz3j8X3 6U+iNFwWbUgyKu7mha+FLj8Iv+PXqcIygs2wkM4IQpZ2Ycu9va9WRHxQTUkMhjqD7XE4X9xT eDtuRzCQJIIir9dJw7mJ1VEfSBMjgSSfXesis6cbdo+yf-N6jT91tci4si9i8qeaRS5Lz8Pj 58zyuD2r3p9xUOVH83SPnqobzRzKJyTUMLiYscCJwE6nwHVBxE4W+mWJR3dtVpR0kJNIFs1G d3jABWDppxRxSzKzjT-fprojzBw9ztxNyBquzvrgzrZZTuLc3tz2uwexatwATLDxtr5tnGWj iinMdeXJTHCmU1-ItIx5cbadmETt3bTuEolD22JSvbsTebKVzVVTxNKkiaBG5ApjykXzyczl 4zgZhKtUmTHJLNMItPF2pFJA4pTvfLyfo50tpTKKv3iwqqKAgw+CWo+f46VvJeTDZTzMSzCz I2g1--E++U+6+DCJPG7EZ8JZtEA+++oB+++6++++K23EI0tEEJChJZpD4nYITITWDxm5TNVN VGWkOJYaHJI8UO8K28KVuPsUHH6CwH8l6xiHP6HqjyypDFwS7qaVqba+kHvbyDfQXy5txpQy zlsSDAAfbtlnrvwNkTTnkE1TSzwckV8Gk4SmaT-M7B-P2OOYnvbUmsqUXrA3kHG2svCnhoRb dn1Nk6UjM2nGZ1sGbrD7KOlECdNkBSnpliT1rYxXytLvr+YZ3laNdkHO1KWrHotCwKmV3VZ9 4b1R4xuSxzzmC9qXqtWa2Olhu-ycSacat5yCvFRmSbWEAOckCwhZFzx3aG7W3Yy7qN72+iso s39E3F4m+LSHjwZIsQgrGhPGIBFaWKW+UFN7uHFKZ1DckgD6LSVcmAW1Q8AKX7nJICA+Zc7D GN67+hR2aF67Jf4klF9-mDkCCv0WEaJlOgE7GokwVkRHneHGGwzE7qijp9FH03txlyKDNhZt ij-Pexpe4FpBRwjpu66bu6SVDorCIrL7pumS-2pj5FxrGgXxogyHVNnYY+gZoWoN0zb1UKn7 K2UvVrkVAzJpHaSpW0nYXExldGnYPEsNubPnNGnYR+jWm3X6bvZbstWe8mvE9sF2AC2w7P5C xGlC7P2phZWaN64dA+aj7Sl7xfZMlCbqNIpGB808kEDYhgjmeft0PffIXivmgtLv8H3lCxDK ***** END OF BLOCK 4 ***** *XX3402-019818-110497--72--85-43119----TVSOURCE.ZIP--5-OF--5 8Wu7hzi8oNjylHhin3irXBv6r8J70RiBAIp1K29N6pUZKxS60gPnK2J+JbqitfUTtdJRhIKh ZNczOd91+vosl6IVaOfwr3b4deM79nXaUH7tmnB7UY22+xrNMEETPSMua1VV9XEVXtHNvemF 6A7s-kxBSxKM7G-bruWYYtH+izTE0jKOtS3x5te4RADoAM27gHaS2o50KVCv2q0E8LFmnzou CVYFf9Z6EXzAEXrKuQEcbOPji+VQp9qB05nP4kNuL0Ho-pvL+WXke6lgItGJGveUfj6su8me 8THAfFop7vaO6qkMX8huipJEzIlXn2odkqTJHfp9cdf-taT15mdVdwuiab+DintAT5fJM5jc yLHpSJLbvi2JwxEbJZAZQXRmYpmvunuxpejvNTrYJvipKy+ZTipajgWlPOehzppzpQNOhumj Qhwhm8WOyetAxO2i8tfCWYZcqzLRyqfqZKLhRnP8tuHw+3T0h5iiI7k8-6DlZ8u7AUD7gGKg ah8N6BoR2LYxOGT21eKLOLZeg1plDB4TmQ7BYZON8EnkIuF2FbMbmCXfsnDtVH6naFVBbMVl Cr1CppCBf31Lz+BVNnwLlTbPG4CwUrKy2w2J3J8B2-hwe5phEfmZyIE3JK-VK5ClqbVcTY9B p5Sj8Y1nrjkDI2g1--E++U+6+DGJPG74MkzIU+2++7w1+++7++++K3F3IpEiI23HfN9FOy7+ 2APT-Ty5UPv2EkBLt2F3i7naSgRVZHGWxvUlIvDLRHRg7WZ-yfxrRxBOwIIgZtRYNyPvtfRw CLmtwbZdhktktTCaKIO9imWMkmMC5q8+4+hWSEuDGgAaK0tV7HaROuMefnLTNEHShUBTVwBj jS2+YVdWhMQp0g3rS8uN8QY6Iq+3z6n0Q-p2sIKqnxlbcObMZtU7V5sLyjrPqs5NfKZTmfE9 Rq2o1yvzbab0rdllAM9b-jovdmQzlTzAxcZAqupQetpaStCCmKJg8qK--Qkofp+LLFBFbfgm pHaqKmMzIs+7eCETPga9PJzk9GCiNATq+MnZ3hBG6zlWAVIMJWX7etU4xnK0q9ovMuWsdd87 gRKVHBoSVzGahvjw0mPhJc6v9eo3ZlZePjy-IwplnUkwBadzbH2mZw-ewkTf5sfd30V1qT+T doljeYlA2rV8+Y4fr+r-gxrVrEmgtnip+PDWSKq6FsvPZMxcfi5zZdn45wScZ0SbaN9MCDej I2g-+VE+3++0++U+TNZh6bxl5aDB+k++T+Y+++k++++++++++E+U+++++++++2RGEIN2FIpD 9Z--Ip-9+E6I+-E++U+6+DC7Pm7WxQtThEU++8Id+++9++++++++++2+6++++DQ1++-5IY34 Ho789Z--Ip-9+E6I+-E++U+6+7GNPW9fRcbPUEI++06K+++9++++++++++2+6++++BIA++-7 HYNDEY3G9Z--Ip-9+E6I+-E++U+6+-4PPW6l26BXN+Q++9QL+++A++++++++++2+6++++5wG ++-7HYNDJ2JHJ0tEEJBEGk203++I++6+0++cWqwWRprhkRA0++1E-k++0U+++++++++-+0++ +++B4U++K3F3IpEl9Z--Ip-9+E6I+-E++U+6+249Pm9yDR1vpE2++-w2+++8++++++++++2+ 6+++++UR++-MJ2JHJ16iI23HI2g-+VE+3++0++U+N6hj6ZfVgmhc+U++ZUI+++c+++++++++ +E+U++++-Fw++3VIFJBIAmtEEJBEGk203++I++6+0+0wWawWnqAuqisB++1FDE++0U++++++ +++-+0++++0J6E++K3N7FJRH9Z--Ip-9+E6I+-E++U+6+B0VQ06Zvw1YnEI++DUP+++A++++ ++++++2+6++++8gj++-BHpN7FJFHJ0tEEJBEGk203++I++6+0+-gc4oWT7HV93w3++-Z2U++ 0k+++++++++-+0++++0WBE++J3NBHpN7FGtEEJBEGk203++I++6+0++LaKsWiP0BcL67+++w 8U++0U+++++++++-+0+++++eCk++HJB5Ho789Z--Ip-9+E6I+-E++U+6+DCJPG7EZ8JZtEA+ ++oB+++6++++++++++2+6++++AF2++-MEJ-E9Z--Ip-9+E6I+-E++U+6+DGJPG74MkzIU+2+ +7w1+++7++++++++++2+6++++Ax6++-MJ2JHJ0tEEJBEGkI4++++++o+1E1S+U++RYc+++++ ***** END OF BLOCK 5 *****