page%swap@Sun.COM (Bob Page) (11/13/89)
Submitted-by: giampal@auvm.bitnet Posting-number: Volume 89, Issue 197 Archive-name: intuition/msizer.1 Msizer allows you to resize a window from any corner when holding down the left mouse button and the left amiga key. [uuencoded executable included. This would make a good Commodities Exchange demo. ..bob] # This is a shell archive. # Remove anything above and including the cut line. # Then run the rest of the file through 'sh'. # Unpacked files will be owned by you and have default permissions. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: SHell ARchive # Run the following text through 'sh' to create: # MSizer.c # MSizer.doc # MSizer.uu # This is archive 1 of a 1-part kit. # This archive created: Sun Nov 12 17:19:14 1989 echo "extracting MSizer.c" sed 's/^X//' << \SHAR_EOF > MSizer.c X/* X Keeping to tradition, the Khaled Mardam-Bey philosophy, this program X is completely undocumented so as to give you prime experience in X learning how to debug source code. X X The program also contains many redundant bits and pieces so as to X make your learning experience that much more profoundly educational X and exceptional. X X This is how NOT to write a program. X X Got it ? Okay, great, now YOU can start teaching others by coding in X exactly the same way. X X There's something very deep in that last sentence, can't quite X pinpoint it though, hmmm... X X compile with cc Msizer.c X ln Msizer.o -lc X X Warning - It won't bite unless you try to compile it. X Linking is okay though... <grin> X X This source is totally PD. X X written by Khaled Mardam-Bey, 14th October 1989. X*/ X X#include <exec/lists.h> X#include <exec/interrupts.h> X#include <exec/ports.h> X#include <exec/libraries.h> X#include <exec/io.h> X#include <exec/execbase.h> X#include <exec/types.h> X#include <exec/devices.h> X#include <exec/memory.h> X#include <exec/exec.h> X#include <exec/ports.h> X#include <exec/tasks.h> X#include <libraries/dos.h> X#include <libraries/dosextens.h> X#include <devices/timer.h> X#include <devices/trackdisk.h> X#include <devices/input.h> X#include <devices/inputevent.h> X#include <intuition/intuition.h> X#include <intuition/intuitionbase.h> X#include <ctype.h> X#include <stdio.h> X#include <functions.h> X#include <graphics/gfxbase.h> X X /* Key Definitions */ X#define QKEY 0x45 X#define CONTROL 0x63 X#define THRESHX 16 X#define THRESHY 8 X#define MINX 40 X#define MINY 24 X X /* input events */ X#define QUIT 0x1 X#define FINISHUP 0x2 X#define MOVEIT 0x4 X#define DOWINDOW 0x8 X X#define DELAY 1000000L X Xchar PortName[] = "PePeTe"; Xchar WrittenBy[] = "Khaled Mardam-Bey 1989"; X XSHORT i,j,k,l; XSHORT nomore = 0, NoGo = 0; XSHORT corner = 0; XSHORT dx,dy,ff,xx,yy,oo; XSHORT DoIT = 0, there = 0; XSHORT LastX,LastY; XSHORT x,y,ox,oy,fx,fy; XSHORT event; XSHORT lastcode = 0; Xlong sec = 0,micro = 0; XSHORT rbuttonisdown = 0, lbuttonisdown = 0; XSHORT ww, wh, te, le, sw, sh; X Xstruct Library *OpenLibrary(); Xstruct ViewPort *ViewPortAddress(); X Xstruct MsgPort *inputPort = NULL; Xstruct IOStdReq *inputReq = NULL; Xstruct MsgPort *TimerPort = NULL; Xstruct Screen *s, *Screen = NULL; Xstruct IntuitionBase *IntuitionBase = NULL; Xstruct GfxBase *GfxBase = NULL; Xstruct Window *window; Xstruct RastPort *rp; Xstruct Layer_Info *li; Xstruct LayersBase *LayersBase = NULL; X Xvoid move(x,y) SHORT x,y; { Move(rp, (long) x, (long) y); } Xvoid draw(x,y) SHORT x,y; { Draw(rp, (long) x, (long) y); } Xvoid plot(x,y) SHORT x,y; { WritePixel(rp, (long) x, (long) y); } X Xstruct timerequest Timer_Req; Xlong TimerSig,tdevice = 1; X Xstruct InputEvent phoney; Xstruct HotInfo X { X struct Task *hotTask; X long hotSig; X } hotStuff; X Xlong signum = -1; X Xstruct Interrupt handlerStuff; Xstruct defPort X{ X struct MsgPort mp; X}; X Xstruct defPort *defPortPtr; Xchar defPortName[] = "WiNnYpO"; XSHORT updating = 0; X Xvoid HandlerInterface() X{ X#asm X movem.l a4,-(sp) X jsr _geta4# X movem.l A0/A1,-(sp) X jsr _myhandler X addq.l #8,A7 X movem.l (sp)+,a4 X#endasm X} X Xstruct InputEvent *myhandler(ev1, hotStuff) Xstruct InputEvent *ev1; Xstruct HotInfo *hotStuff; X{ X struct InputEvent *ev, *last; X SHORT removeit; X SHORT evcode,evqual; X X event = 0; X for (ev=ev1,last = NULL; ev; ev=ev->ie_NextEvent) X { X evcode = ev->ie_Code; X evqual = ev->ie_Qualifier; X removeit = 0; X X if ((ev->ie_Class != IECLASS_TIMER)) X { X if (ev->ie_Class == IECLASS_RAWKEY) X { X if ((evcode >= 0x80) && (evcode == (lastcode | 0x80))) { X DoIT = 0; X event |= FINISHUP; X removeit = 1; X lastcode = 0; } X else { X lastcode = 0; X removeit = 0; X } X X if (evcode == CONTROL) X { X lastcode = evcode; X removeit = 1; X DoIT = 1; X } X else X if (evcode == QKEY) { X if (DoIT) DoIT = 2; X lastcode = evcode; X removeit = 1; X } X else DoIT = 0; X } X } X X if (ev->ie_Class == IECLASS_RAWMOUSE) X { X if (evcode == (IECODE_LBUTTON | 0x80)) { X lbuttonisdown = 0; X if (DoIT) event |= DOWINDOW; X else event |= FINISHUP; X } X else { X if (evcode == IECODE_LBUTTON) { X if (DoIT == 2) event |= QUIT; X if ((lbuttonisdown == 0) && (DoIT == 1)) removeit = 1; X lbuttonisdown = 1; X } X X if ((lbuttonisdown) && (DoIT)) { X event |= MOVEIT; X } X } X } X X if (removeit) X if (last == NULL) X ev1 = ev->ie_NextEvent; X else X last->ie_NextEvent = ev->ie_NextEvent; X else X last = ev; X } X X if (event) X Signal(hotStuff->hotTask,hotStuff->hotSig); X return(ev1); X} X Xmain() X{ X struct IntuiMessage *Msg; X long class; X X IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",0L); X if (!IntuitionBase) exit(0L); X X GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",0L); X if (!GfxBase) exit(0L); X X LayersBase = (struct LayersBase *) OpenLibrary("layers.library",0L); X if (!LayersBase) exit(0L); X X defPortPtr = (struct defPort *) FindPort(defPortName); X if (defPortPtr == NULL) X { X if ((defPortPtr = (struct defPort *) AllocMem((long)sizeof(struct defPort),MEMF_PUBLIC | MEMF_CLEAR)) == NULL) X exit(10); X } X else X updating = 1; X X if (updating) X Uninstall(); X X defPortPtr->mp.mp_Node.ln_Pri = 0; X defPortPtr->mp.mp_Node.ln_Type = NT_MSGPORT; X NewList(&(defPortPtr->mp.mp_MsgList)); X defPortPtr->mp.mp_Node.ln_Name = (char *) &(defPortName); X X AddPort(defPortPtr); X X if((signum = AllocSignal((long)-1)) == -1) X Uninstall(); X X hotStuff.hotSig = 1 << signum; X hotStuff.hotTask = FindTask(NULL); X X if(!(inputPort = CreatePort(PortName,0))) X Uninstall(); X if(!(inputReq = CreateStdIO(inputPort))) X Uninstall(); X X handlerStuff.is_Data = (APTR)&hotStuff; X handlerStuff.is_Code = HandlerInterface; X handlerStuff.is_Node.ln_Pri = 55; X handlerStuff.is_Node.ln_Name = "PoOpHaNy"; X X if(OpenDevice("input.device",0L,inputReq,0L) != 0) X Uninstall(); X X inputReq->io_Command = IND_ADDHANDLER; X inputReq->io_Data = (APTR)&handlerStuff; X X DoIO(inputReq); X X if ((TimerPort = CreatePort("TimPodle", 0L)) == NULL) X Uninstall(); X X if ((tdevice = OpenDevice(TIMERNAME, UNIT_VBLANK, &Timer_Req, 0L)) != 0) X Uninstall(); X Timer_Req.tr_node.io_Message.mn_ReplyPort = TimerPort; X Timer_Req.tr_node.io_Command = TR_ADDREQUEST; X Timer_Req.tr_node.io_Flags = 0; X Timer_Req.tr_node.io_Error = 0; X X TimerSig = (1L << TimerPort->mp_SigBit); X X QueTimer(); X X (void)SetTaskPri(FindTask(NULL), 20L); X X for (;;) X { X Wait(hotStuff.hotSig | TimerSig); X X if (Msg = (struct IntuiMessage *)GetMsg(TimerPort)) X if (Msg) QueTimer(); X X if (breakcheck()) Uninstall(); X breakreset(); X X if (event & QUIT) Uninstall(); X X if (event & FINISHUP) { X FiniUpi(); X corner = 0; X nomore = 0; X } X X if (event & DOWINDOW) MoveThatWindow(); X X if (event & MOVEIT) { X if (nomore == 0) CheckPP(); X else if (corner != 0) ElBorders(); X } X event = 0; X } X} X XFiniUpi() X{ X if (there) { X xx = LastX + dx; yy = LastY + dy; X DoEm(); X UnlockLayers(li); X there = 0; X } X} X XQueTimer() X{ X Timer_Req.tr_time.tv_secs = 0; X Timer_Req.tr_time.tv_micro = DELAY; X SendIO(&Timer_Req.tr_node); X} X XElBorders() X{ X if ((LastX != s->MouseX) || (LastY != s->MouseY)) { X xx = LastX + dx; X yy = LastY + dy; X DoEm(); X xx = s->MouseX + dx; X yy = s->MouseY + dy; X DoEm(); X } X X there = 1; X LastX = s->MouseX; X LastY = s->MouseY; X} X XDoEm() X{ X if (corner == 1) do1(); X else if (corner == 2) do2(); X else if (corner == 3) do3(); X else if (corner == 4) do4(); X} X Xdo1() X{ X while (xx < 0) xx = xx + 1; X while (yy < 0) yy = yy + 1; X X while ((le+ww) > s->Width) ww = ww -1; X while ((te+wh) > s->Height) wh = wh - 1; X X if (xx > (le+ww-MINX)) xx = (le+ww-MINX); X if (yy > (te+wh-MINY)) yy = (te+wh-MINY); X X move( (SHORT) xx, (SHORT) yy); X draw( (SHORT) (le+ww-1), (SHORT) yy); X draw( (SHORT) (le+ww-1), (SHORT) (te+wh-1)); X draw( (SHORT) xx, (SHORT) (te+wh-1)); X draw( (SHORT) xx, (SHORT) yy); X} X Xdo2() X{ X while (xx > s->Width) xx = xx - 1; X while (xx < 0) xx = xx + 1; X while (yy < 0) yy = yy + 1; X while (yy > s->Height) yy = yy - 1; X X while ((te+wh) > s->Height) wh = wh - 1; X X if (xx < (le+MINX)) xx = le+MINX; X if (yy > (te+wh-MINY)) yy = (te+wh-MINY); X X move( (SHORT) xx-1, (SHORT) yy); X draw( (SHORT) le, (SHORT) yy); X draw( (SHORT) le, (SHORT) (te+wh-1)); X draw( (SHORT) xx-1, (SHORT) (te+wh-1)); X draw( (SHORT) xx-1, (SHORT) yy); X} X Xdo3() X{ X while (xx < 0) xx = xx + 1; X while (xx > s->Width) xx = xx - 1; X while (yy < 0) yy = yy + 1; X while (yy > s->Height) yy = yy - 1; X X while ((le+ww) > s->Width) ww = ww -1; X X if (xx > (le+ww-MINX)) xx = (le+ww-MINX); X if (yy < (te+MINY)) yy = (te+MINY); X X move( (SHORT) xx, (SHORT) yy-1); X draw( (SHORT) (le+ww-1), (SHORT) yy-1); X draw( (SHORT) (le+ww-1), (SHORT) te); X draw( (SHORT) xx, (SHORT) te); X draw( (SHORT) xx, (SHORT) yy-1); X} X Xdo4() X{ X while (xx < 0) xx = xx + 1; X while (xx > s->Width) xx = xx - 1; X while (yy < 0) yy = yy + 1; X while (yy > s->Height) yy = yy - 1; X X if (xx < (le+MINX)) xx = (le+MINX); X if (yy < (te+MINY)) yy = (te+MINY); X X move( (SHORT) xx-1, (SHORT) yy-1); X draw( (SHORT) xx-1, (SHORT) te); X draw( (SHORT) le, (SHORT) te); X draw( (SHORT) le, (SHORT) yy-1); X draw( (SHORT) xx-1, (SHORT) yy-1); X} X XCheckPP() X{ X window = IntuitionBase->ActiveWindow; X X if (window != NULL) { X le = window->LeftEdge; te = window->TopEdge; X ww = window->Width; wh = window->Height; X X s = window->WScreen; X sw = s->Width; X sh = s->Height; X X rp=&(s->RastPort); X X SetAPen(rp,1L); X SetBPen(rp,2L); X SetDrMd(rp, COMPLEMENT | JAM1); X X LastX = ox = x = s->MouseX; X LastY = oy = y = s->MouseY; X X corner = 0; X X if ((y >= te) && (y < (te + THRESHY))) { /* top edge */ X if ((x >= le) && (x < (le + THRESHX))) /* left */ X { corner = 1; X dx = le - x; X dy = te - y; X } X else X if ((x <= (le + ww)) && (x > (le + ww - THRESHX))) /* right */ X { corner = 2; X dx = (le+ww) - x; X dy = te - y; X } X } X else X if ((y <= (te + wh)) && (y > (te + wh - THRESHY))) { /* bottom edge */ X if ((x >= le) && (x < (le + THRESHX))) /* left */ X { corner = 3; X dx = le - x; X dy = (te+wh) - y; X } X else X if ((x <= (le + ww)) && (x > (le + ww - THRESHX))) /* right */ X { corner = 4; X dx = (le+ww) - x; X dy = (te+wh) - y; X } X } X X if (corner != 0) { X LastX = x = s->MouseX; X LastY = y = s->MouseY; X li = &(s->LayerInfo); X LockLayers(li); X ox = xx = LastX + dx; X oy = yy = LastY + dy; X DoEm(); X nomore = 1; X there = 1; X } X else nomore = 0; X } X} X XMoveThatWindow() X{ X Forbid(); X Disable(); X X FiniUpi(); X X fx = xx; X fy = yy; X X xx = fx - ox; if (xx < 0) xx = xx * -1; X yy = fy - oy; if (yy < 0) yy = yy * -1; X X if (corner == 1) { X if ((fx >= ox) && (fy >= oy)) { X while (xx > (le+ww-MINX)) xx = xx - 1; X while (yy > (te+wh-MINY)) yy = yy - 1; X SizeWindow(window, (-1L * xx), (-1L * yy)); X MoveWindow(window, (1L * xx), (1L * yy)); X } X else X if ((fx <= ox) && (fy <= oy)) { X while ((le-xx) < 0) xx = xx - 1; X while ((te-yy) < 0) yy = yy - 1; X MoveWindow(window, (-1L * xx), (-1L * yy)); X SizeWindow(window, (1L * xx), (1L * yy)); X } X else X if ((fx >= ox) && (fy <= oy)) { X while (xx > (le+ww-MINX)) xx = xx - 1; X while ((te-yy) < 0) yy = yy - 1; X SizeWindow(window, (-1L * xx), 0L); X MoveWindow(window, (1L * xx), (-1L * yy)); X SizeWindow(window, 0L, (1L * yy)); X } X else X if ((fx <= ox) && (fy >= oy)) { X while (yy > (te+wh-MINY)) yy = yy - 1; X while ((le-xx) < 0) xx = xx - 1; X SizeWindow(window, 0L, (-1L * yy)); X MoveWindow(window, (-1L * xx), (1L * yy)); X SizeWindow(window, (1L * xx), 0L); X } X } X else X if (corner == 2) { X if ((fx >= ox) && (fy >= oy)) { X while (yy > (te+wh-MINY)) yy = yy - 1; X while ((xx+le+ww) > s->Width) xx = xx - 1; X SizeWindow(window, (1L * xx), (-1L * yy)); X MoveWindow(window, 0L, (1L * yy)); X } X else X if ((fx <= ox) && (fy <= oy)) { X while ((te-yy) < 0) yy = yy - 1; X MoveWindow(window, 0L , (-1L * yy)); X SizeWindow(window, (-1L * xx), (1L * yy)); X } X else X if ((fx >= ox) && (fy <= oy)) { X while ((le+ww+xx) > s->Width) xx = xx - 1; X while ((te-yy) < 0) yy = yy - 1; X MoveWindow(window, 0L, (-1L * yy)); X SizeWindow(window, (1L * xx), (1L * yy)); X } X else X if ((fx <= ox) && (fy >= oy)) { X while (yy > (te+wh-MINY)) yy = yy - 1; X SizeWindow(window, (-1L * xx), (-1L * yy)); X MoveWindow(window, 0L, (1L * yy)); X } X } X else X if (corner == 3) { X if ((fx >= ox) && (fy >= oy)) { X while (xx > (le+ww-MINX)) xx = xx - 1; X while ((te+yy+wh) > s->Height) yy = yy - 1; X SizeWindow(window, (-1L * xx), (1L * yy)); X MoveWindow(window, (1L * xx), 0L); X } X else X if ((fx <= ox) && (fy <= oy)) { X while ((le-xx) < 0) xx = xx - 1; X while ((te+wh-yy) < MINY) yy = yy - 1; X MoveWindow(window, (-1L * xx), 0L); X SizeWindow(window, (1L * xx), (-1L * yy)); X } X else X if ((fx >= ox) && (fy <= oy)) { X while ((te+wh-yy) < MINY) yy = yy - 1; X while (xx > (le+ww-MINX)) xx = xx - 1; X SizeWindow(window, (-1L * xx), (-1L * yy)); X MoveWindow(window, (1L * xx), 0L); X } X else X if ((fx <= ox) && (fy >= oy)) { X while ((le-xx) < 0) xx = xx - 1; X while ((te+yy+wh) > s->Height) yy = yy - 1; X MoveWindow(window, (-1L * xx), 0L); X SizeWindow(window, (1L * xx), (1L * yy)); X } X } X else X if (corner == 4) { X if ((fx >= ox) && (fy >= oy)) { X while ((te+yy+wh) > s->Height) yy = yy - 1; X while ((xx+le+ww) > s->Width) xx = xx - 1; X SizeWindow(window, (1L * xx), (1L * yy)); X } X else X if ((fx <= ox) && (fy <= oy)) { X while (xx > (le+ww-MINX)) xx = xx - 1; X while ((te+wh-yy) < MINY) yy = yy - 1; X SizeWindow(window, (-1L * xx), (-1L * yy)); X } X else X if ((fx >= ox) && (fy <= oy)) { X while ((le+ww+xx) > s->Width) xx = xx - 1; X while ((te+wh-yy) < MINY) yy = yy - 1; X SizeWindow(window, (1L * xx), (-1L * yy)); X } X else X if ((fx <= ox) && (fy >= oy)) { X while (xx > (le+ww-MINX)) xx = xx - 1; X while ((te+yy+wh) > s->Height) yy = yy - 1; X SizeWindow(window, (-1L * xx), (1L * yy)); X } X } X Enable(); X Permit(); X nomore = corner = 0; X} X Xbreakcheck() X{ X if (SetSignal(0L,0L) & SIGBREAKF_CTRL_C) X return (1); X else X return (0); X} X Xbreakreset() X{ X SetSignal(0L, SIGBREAKF_CTRL_C); X} X XChk_Abort() X{ X return(0); X} X XUninstall() X{ X if (!updating) X { X if (inputReq) X { X inputReq->io_Command = IND_REMHANDLER; X inputReq->io_Data = (APTR)&handlerStuff; X DoIO(inputReq); X X CloseDevice(inputReq); X DeleteStdIO(inputReq); X } X X if (inputPort) DeletePort(inputPort); X if (signum > -1) FreeSignal(signum); X X if (tdevice == 0) X { X AbortIO(&Timer_Req.tr_node); X CloseDevice(&Timer_Req); X } X X if (TimerPort) X DeletePort(TimerPort); X X if (defPortPtr) X { X if (defPortPtr->mp.mp_Node.ln_Name) X RemPort(defPortPtr); X FreeMem(defPortPtr,(long)sizeof(struct defPort)); X } X } X X if (LayersBase) X CloseLibrary(LayersBase); X if (GfxBase) X CloseLibrary(GfxBase); X if (IntuitionBase) X CloseLibrary(IntuitionBase); X exit(0L); X} SHAR_EOF echo "extracting MSizer.doc" sed 's/^X//' << \SHAR_EOF > MSizer.doc X============================================================================ XSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZE X MADSIZER 14th October 1989 XMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADSIZERMADS X============================================================================ X X JUST WHEN YOU THOUGHT IT WAS SAFE... X X Howdy Folks, Yep.. I know it's hard to believe but I have actually X come up with YAUP (Yet Another Useless Program). I was playing around on X a sun machine and noticed you could resize windows from ANY corner of the X window. HEY!! I thought to myself... <grin> X X So here you are, simple hack, no big deal to it. X X You can resize ANY window from ANY corner. X X Use the CONTROL KEY and the LEFT MOUSE BUTTON, X point at a window corner and TADAAA!!! X X neat, huh ? <grin> thrilled me to bits... X X To exit the program, you can send it a CONTROL-C (using "break") or X press CONTROL-ESC-LEFTMOUSEBUTTON (in that order) simultaneously. X X That's about it really. Jeeze. Sounded more exciting, hmmm ? X Yeah well, that's why it's a YAUP, it's not exciting enough!! X X This program is totally PD, as is the source code. X X Enjoy... X X Khaled Mardam-Bey. X X============================================================================ SHAR_EOF echo "extracting MSizer.uu" sed 's/^X//' << \SHAR_EOF > MSizer.uu X Xbegin 644 MSizer XM```#\P`````````#``````````(```?T0```64````$```/I```']$[Z%:Q.. XM50``,"T`"DC`+P`P+0`(2,`O`"\L@*Q.NA[\3^\`#$Y=3G5.50``,"T`"DC`" XM+P`P+0`(2,`O`"\L@*Q.NA[&3^\`#$Y=3G5.50``,"T`"DC`+P`P+0`(2,`O3 XM`"\L@*Q.NA[V3^\`#$Y=3G5.50``+PQ.NA6H2.<`P&$(4(\H7TY=3G5.5?_R^ XM0FR`EBMM``C__$*M__A@``%*(&W__#MH``;_]"!M__P[:``(__)";?_V(&W_H XM_`PH``8`!&<``(0@;?_\#"@``0`$9G8,;0"`__1M)#`L@"H(P``'L&W_]&86@ XM0FR`)@CL``&`ESM\``'_]D)L@"I@"$)L@"I";?_V#&T`8__T9A0Y;?_T@"H[0 XM?``!__8Y?``!@"9@)@QM`$7_]&8:2FR`)F<&.7P``H`F.6W_](`J.WP``?_V; XM8`1";(`F(&W__`PH``(`!&9D#&T`Z/_T9AI";(`V2FR`)F<(".P``X"78`8(# XM[``!@)=@0@QM`&C_]&8H#&P``H`F9@8([```@)=*;(`V9@X,;``!@"9F!CM\! XM``'_]CE\``&`-DIL@#9G#$IL@"9G!@CL``*`ETIM__9G'$JM__AF"B!M__PK7 XM4``(8`H@;?_\(FW_^"*08`8K;?_\__@@;?_\*U#__$JM__QF`/ZR2FR`EF<4_ XM(&T`#"\H``0@;0`,+Q!.NAS<4$\@+0`(3EU.=4Y5__A"ITAZ`HQ.NAQB4$\I/ XM0(!(2JR`2&8(0J=.NA?Z6$]"ITAZ`H!.NAQ$4$\I0(!,2JR`3&8(0J=.NA?<: XM6$]"ITAZ`G-.NAPF4$\I0(!02JR`4&8(0J=.NA>^6$](;(!<3KH;BEA/*4"!8 XM%$JL@11F(DAY``$``4AX`").NALX4$\I0($49@H_/``*3KH7BE1/8`8Y?``!A XM@&1*;(!D9P1.NA($(&R!%$(H``D@;($4$7P`!``((&R!%$AH`!1.NAN&6$]!+ XM[(!<(FR!%"-(``HO+($43KH:(%A/2'C__TZZ&B)83RE`@%BPO/____]F!$ZZ] XM$;1P`2(L@%CCH"E`@/I"ITZZ&O983RE`@/9"9TAL@`).NAD07$\I0(`X9@1.= XMNA&&+RR`.$ZZ&>983RE`@#QF!$ZZ$7)![(#V*4B!#$'Z_2`I2($0&7P`-X$'[ XM0?H!>"E(@0A"IR\L@#Q"ITAZ`7%.NAKV3^\`$$J`9P1.NA$X(&R`/#%\``D`U XM'$'L@/XB;(`\(T@`*"\L@#Q.NAI$6$]"ITAZ`4A.NAB,4$\I0(!`9@1.NA$"U XM0J=(;("T2'@``4AZ`3-.NAJB3^\`$"E`@%1G!$ZZ$.(I;(!`@,(Y?``)@-!"C XM+(#20BR`TR!L@$!P`!`H``]R`>&A*4&`W$ZZ`3Q(>``40J=.NAH"6$\O`$ZZ! XM&L!03R`L@/J`K(#<+P!.NAK06$\O+(!`3KH:'%A/*T#__&<*2JW__&<$3KH`+ XM_DZZ$#I*0&<$3KH0;DZZ$$P(+```@)=G!$ZZ$%X(+``!@)=G#$ZZ`)Y";(`D2 XM0FR`(`@L``.`EV<$3KH(``@L``*`EV<62FR`(&8&3KH%9&`*2FR`)&<$3KH`+ XMPD)L@)9@`/]V3EU.=6EN='5I=&EO;BYL:6)R87)Y`&=R87!H:6-S+FQI8G)A8 XM<GD`;&%Y97)S+FQI8G)A<GD`4&]/<$AA3GD`:6YP=70N9&5V:6-E`%1I;5!O# XM9&QE`'1I;65R+F1E=FEC90!.50``2FR`*&<J,"R`AM!L@'HY0("`,"R`B-!LW XM@'PY0(""3KH`K"\L@+!.NAJ66$]";(`H3EU.=4Y5``!"K(#4*7P`#T)`@-A(4 XM;("T3KH98EA/3EU.=4Y5```@;("D,"@`$K!L@(9F#B!L@*0P*``0L&R`B&<\J XM,"R`AM!L@'HY0("`,"R`B-!L@'PY0(""84`@;("D,"@`$M!L@'HY0("`(&R`> XMI#`H`!#0;(!\.4"`@F$>.7P``8`H(&R`I#EH`!*`AB!L@*0Y:``0@(A.74YU< XM3E4```QL``&`)&8$82Y@*`QL``*`)&8&3KH!(&`:#&P``X`D9@9.N@(48`P,/ XM;``$@"1F!$ZZ`PA.74YU3E4``$IL@(!L!E)L@(!@]$IL@()L!E)L@()@]#`LV XM@)[0;("8(&R`I+!H``QO!E-L@)A@Z#`L@)S0;(":(&R`I+!H``YO!E-L@)I@L XMZ#`L@)[0;("8D'P`*#(L@("R0&\0,"R`GM!L@)B0?``H.4"`@#`L@)S0;(":" XMD'P`&#(L@(*R0&\0,"R`G-!L@)J0?``8.4"`@C\L@((_+("`3KKY6%A//RR`E XM@C`L@)[0;("84T`_`$ZZ^6983S`L@)S0;(":4T`_`#`L@)[0;("84T`_`$ZZX XM^4A83S`L@)S0;(":4T`_`#\L@(!.NODR6$\_+(""/RR`@$ZZ^2183TY=3G5.M XM50``(&R`I#`L@("P:``,;P93;("`8.Q*;("`;`92;("`8/1*;("";`92;(""I XM8/0@;("D,"R`@K!H``YO!E-L@()@[#`L@)S0;(":(&R`I+!H``YO!E-L@)I@< XMZ#`L@)[0?``H,BR`@+)`;`PP+(">T'P`*#E`@(`P+("<T&R`FI!\`!@R+(""7 XMLD!O$#`L@)S0;(":D'P`&#E`@((_+("","R`@%-`/P!.NOA.6$\_+(""/RR`& XMGDZZ^&183S`L@)S0;(":4T`_`#\L@)Y.NOA.6$\P+("<T&R`FE-`/P`P+("`# XM4T`_`$ZZ^#183S\L@((P+("`4T`_`$ZZ^")83TY=3G5.50``2FR`@&P&4FR`( XM@&#T(&R`I#`L@("P:``,;P93;("`8.Q*;("";`92;(""8/0@;("D,"R`@K!HH XM``YO!E-L@()@[#`L@)[0;("8(&R`I+!H``QO!E-L@)A@Z#`L@)[0;("8D'P`@ XM*#(L@("R0&\0,"R`GM!L@)B0?``H.4"`@#`L@)S0?``8,BR`@K)`;`PP+("<0 XMT'P`&#E`@((P+(""4T`_`#\L@(!.NO=,6$\P+(""4T`_`#`L@)[0;("84T`_\ XM`$ZZ]U983S\L@)PP+(">T&R`F%-`/P!.NO=`6$\_+("</RR`@$ZZ]S)83S`LO XM@()30#\`/RR`@$ZZ]R!83TY=3G5.50``2FR`@&P&4FR`@&#T(&R`I#`L@("P, XM:``,;P93;("`8.Q*;("";`92;(""8/0@;("D,"R`@K!H``YO!E-L@()@[#`L$ XM@)[0?``H,BR`@+)`;`PP+(">T'P`*#E`@(`P+("<T'P`&#(L@(*R0&P,,"R`# XMG-!\`!@Y0("","R`@E-`/P`P+("`4T`_`$ZZ]F983S\L@)PP+("`4T`_`$ZZA XM]GA83S\L@)P_+(">3KKV:EA/,"R`@E-`/P`_+(">3KKV6%A/,"R`@E-`/P`P* XM+("`4T`_`$ZZ]D)83TY=3G5.50``(&R`2"EH`#2`J$JL@*AG``)R(&R`J#EH% XM``2`GB!L@*@Y:``&@)P@;("H.6@`"("8(&R`J#EH``J`FB!L@*@I:``N@*0@^ XM;("D.6@`#("@(&R`I#EH``Z`HB!L@*31_````%0I2("L2'@``2\L@*Q.NA3*Z XM4$](>``"+RR`K$ZZ%,Q03TAX``(O+("L3KH4SE!/(&R`I#EH`!*`BCEH`!*`A XMCCEH`!*`AB!L@*0Y:``0@(PY:``0@)`Y:``0@(A";(`D,"R`C+!L@)QM``"6C XM,"R`G%!`,BR`C+)`;```AC`L@(JP;(">;3`P+(">T'P`$#(L@(JR0&P@.7P`$ XM`8`D,"R`GI!L@(HY0(!Z,"R`G)!L@(PY0(!\8$8P+(">T&R`F#(L@(JR0&XV_ XM,"R`GM!L@)B0?``0,BR`BK)`;R(Y?``"@"0P+(">T&R`F)!L@(HY0(!Z,"R`3 XMG)!L@(PY0(!\8```L#`L@)S0;(":,BR`C+)`;@``GC`L@)S0;(":44`R+(",H XMLD!O``"*,"R`BK!L@)YM-#`L@)[0?``0,BR`BK)`;"0Y?``#@"0P+(">D&R`^ XMBCE`@'HP+("<T&R`FI!L@(PY0(!\8$HP+(">T&R`F#(L@(JR0&XZ,"R`GM!LX XM@)B0?``0,BR`BK)`;R8Y?``$@"0P+(">T&R`F)!L@(HY0(!Z,"R`G-!L@)J0E XM;(",.4"`?$IL@"1G:B!L@*0Y:``2@(HY:``2@(8@;("D.6@`$(",.6@`$("(D XM(&R`I-'\````X"E(@+`O+("P3KH3?EA/,"R`AM!L@'HY0("`.4"`CC`L@(C05 XM;(!\.4"`@CE`@)!.NOER.7P``8`@.7P``8`H8`1";(`@3EU.=4Y5``!.NA&<+ XM3KH15DZZ^'PY;("`@)(Y;(""@)0P+("2D&R`CCE`@(!*;("`;`1$;("`,"R`` XME)!L@)`Y0(""2FR`@FP$1&R`@@QL``&`)&8``B8P+("2L&R`CFU^,"R`E+!LO XM@)!M=#`L@)[0;("8D'P`*#(L@("R0&\&4VR`@&#F,"R`G-!L@)J0?``8,BR`- XM@K)`;P93;(""8.8P+(""2,!$@"\`,"R`@$C`1(`O`"\L@*A.NA)Z3^\`##`L= XM@()(P"\`,"R`@$C`+P`O+("H3KH23$_O``Q@``&:,"R`DK!L@(YN;C`L@)2P. XM;("0;F0P+(">D&R`@$I`;`93;("`8.XP+("<D&R`@DI`;`93;(""8.XP+(""L XM2,!$@"\`,"R`@$C`1(`O`"\L@*A.NA'P3^\`##`L@()(P"\`,"R`@$C`+P`O_ XM+("H3KH1YD_O``Q@``$B,"R`DK!L@(YM``"(,"R`E+!L@)!N?#`L@)[0;("8! XMD'P`*#(L@("R0&\&4VR`@&#F,"R`G)!L@()*0&P&4VR`@F#N0J<P+("`2,!$0 XM@"\`+RR`J$ZZ$8A/[P`,,"R`@DC`1(`O`#`L@(!(P"\`+RR`J$ZZ$5A/[P`,' XM,"R`@DC`+P!"IR\L@*A.NA%43^\`#&```)`P+("2L&R`CFX``(0P+("4L&R`^ XMD&UX,"R`G-!L@)J0?``8,BR`@K)`;P93;(""8.8P+(">D&R`@$I`;`93;("`F XM8.XP+(""2,!$@"\`0J<O+("H3KH0]D_O``PP+(""2,`O`#`L@(!(P$2`+P`O& XM+("H3KH0QD_O``Q"IS`L@(!(P"\`+RR`J$ZZ$,)/[P`,8``%>@QL``*`)&8`" XM`<0P+("2L&R`CFUX,"R`E+!L@)!M;C`L@)S0;(":D'P`&#(L@(*R0&\&4VR`Q XM@F#F,"R`@-!L@)[0;("8(&R`I+!H``QO!E-L@(!@Y#`L@()(P$2`+P`P+("`3 XM2,`O`"\L@*A.NA!,3^\`##`L@()(P"\`0J<O+("H3KH0)$_O``Q@``$^,"R`J XMDK!L@(YN5C`L@)2P;("0;DPP+("<D&R`@DI`;`93;(""8.XP+(""2,!$@"\`P XM0J<O+("H3KH/XD_O``PP+(""2,`O`#`L@(!(P$2`+P`O+("H3KH/UD_O``Q@U XM``#>,"R`DK!L@(YM;C`L@)2P;("0;F0P+(">T&R`F-!L@(`@;("DL&@`#&\&2 XM4VR`@&#D,"R`G)!L@()*0&P&4VR`@F#N,"R`@DC`1(`O`$*G+RR`J$ZZ#V9/5 XM[P`,,"R`@DC`+P`P+("`2,`O`"\L@*A.N@]<3^\`#&!D,"R`DK!L@(YN6C`LC XM@)2P;("0;5`P+("<T&R`FI!\`!@R+(""LD!O!E-L@()@YC`L@()(P$2`+P`P& XM+("`2,!$@"\`+RR`J$ZZ#PQ/[P`,,"R`@DC`+P!"IR\L@*A.N@[D3^\`#&``\ XM`ZX,;``#@"1F``'T,"R`DK!L@(YM>#`L@)2P;("0;6XP+(">T&R`F)!\`"@R3 XM+("`LD!O!E-L@(!@YC`L@)S0;(""T&R`FB!L@*2P:``.;P93;(""8.0P+(""2 XM2,`O`#`L@(!(P$2`+P`O+("H3KH.@$_O``Q"IS`L@(!(P"\`+RR`J$ZZ#EA/M XM[P`,8``!;C`L@)*P;(".;FXP+("4L&R`D&YD,"R`GI!L@(!*0&P&4VR`@&#NK XM,"R`G-!L@)J0;(""L'P`&&P&4VR`@F#H0J<P+("`2,!$@"\`+RR`J$ZZ#?Y/P XM[P`,,"R`@DC`1(`O`#`L@(!(P"\`+RR`J$ZZ#?)/[P`,8```]C`L@)*P;(".I XM;70P+("4L&R`D&YJ,"R`G-!L@)J0;(""L'P`&&P&4VR`@F#H,"R`GM!L@)B0^ XM?``H,BR`@+)`;P93;("`8.8P+(""2,!$@"\`,"R`@$C`1(`O`"\L@*A.N@V(^ XM3^\`#$*G,"R`@$C`+P`O+("H3KH-8$_O``Q@=C`L@)*P;(".;FPP+("4L&R`< XMD&UB,"R`GI!L@(!*0&P&4VR`@&#N,"R`G-!L@(+0;(":(&R`I+!H``YO!E-LT XM@()@Y$*G,"R`@$C`1(`O`"\L@*A.N@T$3^\`##`L@()(P"\`,"R`@$C`+P`O# XM+("H3KH,^D_O``Q@``&R#&P`!(`D9@`!J#`L@)*P;(".;6(P+("4L&R`D&U8V XM,"R`G-!L@(+0;(":(&R`I+!H``YO!E-L@()@Y#`L@(#0;(">T&R`F"!L@*2P& XM:``,;P93;("`8.0P+(""2,`O`#`L@(!(P"\`+RR`J$ZZ#(1/[P`,8``!/#`LR XM@)*P;(".;F`P+("4L&R`D&Y6,"R`GM!L@)B0?``H,BR`@+)`;P93;("`8.8PF XM+("<T&R`FI!L@(*P?``8;`93;(""8.@P+(""2,!$@"\`,"R`@$C`1(`O`"\LF XM@*A.N@P:3^\`#&```-(P+("2L&R`CFU>,"R`E+!L@)!N5#`L@)[0;("8T&R`= XM@"!L@*2P:``,;P93;("`8.0P+("<T&R`FI!L@(*P?``8;`93;(""8.@P+(""U XM2,!$@"\`,"R`@$C`+P`O+("H3KH+L$_O``Q@:#`L@)*P;(".;EXP+("4L&R`6 XMD&U4,"R`GM!L@)B0?``H,BR`@+)`;P93;("`8.8P+("<T&R`@M!L@)H@;("D9 XML&@`#F\&4VR`@F#D,"R`@DC`+P`P+("`2,!$@"\`+RR`J$ZZ"T9/[P`,3KH)# XMCDZZ"B9";(`D0FR`($Y=3G5.50``0J="ITZZ"CI03P@```QG!G`!3EU.=7``$ XM8/A.50``2'@0`$*G3KH*&E!/3EU.=4Y5``!P`$Y=3G5.50``2FR`9&8``+)*- XMK(`\9S0@;(`\,7P`"@`<0>R`_B)L@#PC2``H+RR`/$ZZ"/Q83R\L@#Q.N@<J` XM6$\O+(`\3KH(/%A/2JR`.&<*+RR`.$ZZ![A83PRL_____X!8;PHO+(!83KH): XM'EA/2JR`5&842&R`M$ZZ!LA83TAL@+1.N@;B6$]*K(!`9PHO+(!`3KH'>EA/? XM2JR!%&<B(&R!%$JH``IG"B\L@11.N@DZ6$](>``B+RR!%$ZZ"+A03TJL@$AGB XM"B\L@$A.N@:F6$]*K(!,9PHO+(!,3KH&EEA/2JR`4&<*+RR`4$ZZ!H983T*GS XM3KH$@EA/3EU.=6%P0^R`<D7L@'*UR68.,CP`/&L(=``BPE')__PI3X$8+'@`I XM!"E.@1Q(YX"`""X`!`$I9Q!+^@`(3J[_XF`&0J?S7TYS0_H`($ZN_F@I0($@W XM9@PN/``#@`=.KO^48`1.N@`:4$].=61O<RYL:6)R87)Y`$GY``!__DYU3E4`K XM`"\*2'D``0``,"R`9L'\``8O`$ZZ!XHI0($D4$]F%$*G2'D``0``3KH%K%!/R XM+FR!&$YU(&R!)$)H``0@;($D,7P``0`0(&R!)#%\``$`"B!L@1@@+($8D*@`O XM!%"`*4"!*"!L@2@@O$U!3EA"ITZZ!W0D0$JJ`*Q83V<N+RT`#"\M``@O"DZZD XM`*XY?``!@2P@;($D`&B````$(&R!)`!H@```"D_O``Q@0DAJ`%Q.N@@B2&H`O XM7$ZZ!V@I0($N(&R!+DJH`"103V<0(&R!+B)H`"0O$4ZZ!+I83R\L@2XO"DZZS XM`F@I;($N@3)03TZZ!*X@;($D((!.N@2Z(&R!)"%```9G%DAX`^U(>@`J3KH$. XMEB!L@20A0``,4$\O+($R/RR!-DZZZL)"9TZZ`M103R1?3EU.=2H`3E4``$CG* XM##`D;0`0(&T`"$JH`*QG&"!M``@@*`"LY8`H`"!$("@`$.6`)D!@!"9L@&@0: XM$TB`2,#0K0`,5(`Y0($X0J<P+($X2,`O`$ZZ!API0($Z4$]F"$S?##!.74YU7 XM$!-(@#H`/P4@2U*(+P@O+($Z3KH!?C`%2,`@0-'L@3I#^@%$$-EF_#\M``XO- XM"B\L@3I.N@$Z(&R!.D(P4``Y?``!@38P!4C`T*R!.B9`4HLD2T_O`!00$TB`\ XM.@"P?``@9QBZ?``)9Q*Z?``,9PRZ?``-9P:Z?``*9@12BV#8#!,`(&UZ#!,`F XM(F8N4HL@2U*+$!!(@#H`9QX@2E**$(6Z?``B9A`,$P`B9@12BV`&0BK__V`"E XM8-9@."!+4HL0$$B`.@!G)KI\`"!G(+I\``EG&KI\``QG%+I\``UG#KI\``IG^ XM""!*4HH0A6#.($I2BD(02D5F`E.+4FR!-F``_UI"$D*G,"R!-E)`2,#E@"\`J XM3KH$^BE`@3)03V8(0FR!-F``_MAZ`"9L@3I@)#`%2,#E@"!L@3(ABP@`($L@U XM"$H89OR1P%.(,`A20$C`U\!21;IL@39MUC`%2,#E@"!L@3)"L`@`8`#^E"``% XM,#Q__V`$,"\`#"!O``1*&&;\4T@B;P`(4T`0V5?(__QG`D(0("\`!$YU3.\#I XM```$(`@R+P`,8`(0V5?)__QG!E)!8`)"&%')__Q.=4Y5``!(YPXP)&T`"$*GE XM2'H`CDZZ!/HI0($^4$]F"$S?#'!.74YU(&T`#")H`"0O*0`$3KH%X"@`6$]GF XM4DAZ`&T@1"\H`#9.N@6R)D!*@%!/9S1(>`/M+PM.N@(`+`!03V<D(`;E@"H`: XM($4E:``(`*0E1@"<2'@#[4AZ`#A.N@'<)4``H%!/+P1.N@5^6$\O+($^3KH"A XM'$*L@3Y83V"`:6-O;BYL:6)R87)Y`%=)3D1/5P`J`$Y5``!*K(%"9P8@;(%"V XM3I`_+0`(3KH`"%1/3EU.=4Y5__PO!#`M``A(P"M`__Q*K($D9RAX`&`*/P1.T XMN@#^5$]21+AL@&9M\#`L@&;!_``&+P`O+($D3KH#JE!/2JR!1F<&(&R!1DZ0[ XM2JR`;&<*+RR`;$ZZ`4A83TJL@4IG""!L@4H@K(%.2JR!4F<*+RR!4DZZ`6Y8K XM3TJL@59G"B\L@59.N@%>6$]*K(%:9PHO+(%:3KH!3EA/2JR!7F<*+RR!7DZZ+ XM`3Y83RQX``0(+@`$`2EG%"\-2_H`"DZN_^(J7V`&0J?S7TYS2JR!+F8P2JR!R XM.F<H,"R!.$C`+P`O+($Z3KH#`C`L@3920$C`Y8`O`"\L@3).N@+N3^\`$&`.[ XM3KH"V"\L@2Y.N@-86$\@+?_\+FR!&$YU*!].74YU3E4``$CG#B`X+0`(,`3!+ XM_``&)$#5[($D2D1M"KAL@&9L!$J29A`Y?``"@6)P_TS?!'!.74YU""H`!P`$P XM9@@O$DZZ``I83T*2<`!@XB(O``0L;($@3N[_W"(O``0L;($@3N[_@BQL@2!.E XM[O_*3.\`!@`$+&R!($[N_^(L;($@3N[_Q$[Z``(B+P`$+&R!($[N_Z8B;P`$8 XM+&R!'$[N_B!(YP$$3.\@@``,+&R!'$ZN_Y1,WR"`3G4B;P`$+&R!'$[N_CY., XM^@`"(F\`!"QL@1Q.[OYB3E4``$CG""!(>/__3KH`T"@`L+S_____6$]F"G``) XM3-\$$$Y=3G5(>0`!``%(>``B3KH!8"1`2H!03V8,+P1.N@'&<`!83V#6)6T`; XM"``*%6T`#P`)%7P`!``(0BH`#A5$``]"ITZZ`7`E0``02JT`"%A/9PHO"DZZ: XM`%I83V`*2&H`%$ZZ`9Y83R`*8)).50``+PHD;0`(2JH`"F<(+PI.N@'&6$\5! XM?`#_``@E?/____\`%'``$"H`#R\`3KH!2DAX`"(O"DZZ`2Q/[P`,)%].74YUZ XM(F\`!"QL@1Q.[OZ>("\`!"QL@1Q.[OZV3E4``$AX`#`O+0`(3KH`&E!/3EU.+ XM=4Y5```O+0`(3KH`3%A/3EU.=4Y5```O"DJM``AF"'``)%].74YU2'D``0`!2 XM+RT`#$ZZ`&`D0$J`4$]F!'``8.`5?``%``@U;0`.`!(E;0`(``X@"F#*3E4`V XM`"\*)&T`""`*9@8D7TY=3G45?`#_``@E?/____\`%"5\_____P`8<``P*@`2S XM+P`O"DZZ`&903V#23OH``DSO``,`!"QL@1Q.[O\Z+&R!'$[N_XA(YP,`(F\`8 XM#"QL@1Q.KOXX3-\`P$YU+&R!'$[N_X(B;P`$+&R!'$[N_GI.^@`"(F\`!"QL( XM@1Q.[O[:3OH``BQL@1Q.[O]\3OH``B)O``0@+P`(+&R!'$[N_RX@+P`$+&R!G XM'$[N_K!.^@`"(&\`!"QL@1Q.[OZ,(&\`!""(6)!"J``$(4@`"$YU(&\`!$SOQ XM`@$`""(O`!`L;($<3N[^1$[Z``(L;($<(F\`!"`O``A.[OW8+&R!'$[N_W8BC XM;P`$+&R!'$[N_I@B;P`$+&R!'$[N_H8B;P`$+&R!'$[N_C).^@`"3.\``P`$& XM+&R!'$[N_LXB;P`$("\`""QL@1Q.[O[4(F\`!"`O``@L;($<3N[^O"`O``0L" XM;($<3N[^PB!O``0L;($<3N[^@")O``1,[P`#``@L;(!,3N[_"B)O``1,[P`#> XM``@L;(!,3N[_$")O``0@+P`(+&R`3$[N_JHB;P`$("\`""QL@$Q.[OZD(F\`J XM!"`O``@L;(!,3N[^GB)O``1,[P`#``@L;(!,3N[^O$SO`P``!"QL@3Y.[O^@` XM(&\`!"QL@3Y.[O^F(&\`!"QL@3Y.[O^R(&\`!$SO``,`""QL@$A.[O]8(&\`] XM!$SO``,`""QL@$A.[O[@(&\`!"QL@%!.[O^4(&\`!"QL@%!.[O^.```#[```! XM``$````!```6(@````````/R```#Z@```!Q095!E5&4`2VAA;&5D($UA<F1AI XM;2U"97D@,3DX.0``````````````````````````````````````````````U XM`````````````````````````````?____]7:4YN67!/`````!0`````````E X3```````#\@```^L````!```#\@``9 X`` Xend Xsize 8344 SHAR_EOF echo "End of archive 1 (of 1)" # if you want to concatenate archives, remove anything after this line exit