home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume15 / olvwm-3.0 / part11 < prev    next >
Text File  |  1992-02-03  |  57KB  |  1,519 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!stanford.edu!ames!pasteur!nntp
  3. From: scott.oaks@East.Sun.COM (Scott Oaks)
  4. Subject: v15i157: OpenLook Virtual Window Mgr (3.0), Part11/21
  5. Message-ID: <1992Feb4.135752.7587@pasteur.Berkeley.EDU>
  6. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  7. Nntp-Posting-Host: postgres.berkeley.edu
  8. Organization: University of California, at Berkeley
  9. References: <csx-15i147-olvwm-3.0@uunet.UU.NET>
  10. Date: Tue, 4 Feb 1992 13:57:52 GMT
  11. Approved: dcmartin@msi.com
  12.  
  13. Submitted-by: scott.oaks@East.Sun.COM (Scott Oaks)
  14. Posting-number: Volume 15, Issue 157
  15. Archive-name: olvwm-3.0/part11
  16.  
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  21. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  22. # If this archive is complete, you will see the following message at the end:
  23. #        "End of archive 11 (of 21)."
  24. # Contents:  kbdfuncs.c mem.h winframe.c.Z.uu
  25. # Wrapped by dcmartin@fascet on Tue Jan 14 05:54:45 1992
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'kbdfuncs.c' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'kbdfuncs.c'\"
  29. else
  30. echo shar: Extracting \"'kbdfuncs.c'\" \(18793 characters\)
  31. sed "s/^X//" >'kbdfuncs.c' <<'END_OF_FILE'
  32. X/*
  33. X *      (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents
  34. X *      pending in the U.S. and foreign countries. See LEGAL_NOTICE
  35. X *      file for terms of the license.
  36. X */
  37. X
  38. X#ident    "@(#)kbdfuncs.c    1.1 olvwm version 1/3/92"
  39. X
  40. X/*
  41. X * Based on
  42. X#ident    "@(#)kbdfuncs.c    1.14    91/09/14 SMI"
  43. X *
  44. X */
  45. X
  46. X#include <stdio.h>
  47. X#ifdef SYSV
  48. X#include <string.h>
  49. X#else
  50. X#include <strings.h>
  51. X#endif
  52. X
  53. X#include <X11/Xlib.h>
  54. X#include <X11/Xutil.h>
  55. X
  56. X#include "i18n.h"
  57. X#include "ollocale.h"
  58. X#include "olwm.h"
  59. X#include "win.h"
  60. X#include "menu.h"
  61. X#include "globals.h"
  62. X#include "group.h"
  63. X#include "resources.h"
  64. X
  65. X/*
  66. X * Externals
  67. X */
  68. Xextern Client *CurrentClient;
  69. X
  70. Xextern void ClientActivate();
  71. Xextern Client *ClientGetLastCurrent();
  72. Xextern void ClientLowerTransients();
  73. Xextern Client *ClientRaiseTransients();
  74. Xextern void ClientSetCurrent();
  75. X
  76. X/* ===== private functions ================================================ */
  77. X
  78. X
  79. Xtypedef struct {
  80. X    Bool prev;
  81. X    Bool seencur;
  82. X    Client *cur;
  83. X    Client *next;
  84. X} FindClosure;
  85. X
  86. X
  87. X/*
  88. X * Given a keystroke event, find the window (and its client structure) that is
  89. X * under the >pointer<.  If the pointer is on the same screen as the event
  90. X * window, then this is simply the subwindow field of the event.  If the
  91. X * pointer is on another screen, we must do a TranslateCoordinates to find it.
  92. X * Returns True if a window with a client structure was found, otherwise
  93. X * returns False.
  94. X */
  95. Xstatic Bool
  96. XchildUnderPointer(dpy, ke, wid, info, cli)
  97. X    Display *dpy;
  98. X    XKeyEvent *ke;
  99. X    Window *wid;
  100. X    WinGeneric **info;
  101. X    Client **cli;
  102. X{
  103. X    int junk;
  104. X
  105. X    if (ke->same_screen) {
  106. X    *wid = ke->subwindow;
  107. X    } else {
  108. X        (void) XTranslateCoordinates(dpy, ke->root, ke->root,
  109. X        ke->x_root, ke->y_root, &junk, &junk, wid);
  110. X    }
  111. X    if (*wid == None)
  112. X    return False;
  113. X    *info = WIGetInfo(*wid);
  114. X    if (*info == NULL)
  115. X    return False;
  116. X    *cli = (*info)->core.client;
  117. X    if (*cli == NULL)
  118. X    return False;
  119. X    return True;
  120. X}
  121. X
  122. X
  123. X/*
  124. X * Derive a value related to an angle without using trigonometry or floating 
  125. X * point.  Derived from Sedgewick, Algorithms, p. 315.  Returns a value in the 
  126. X * range [0..360), scaled by 2^16.  Since Y is positive-downwards in the X 
  127. X * window system, angles increase in the clockwise direction.  This is what we 
  128. X * want.  However, we rotate by -90 to get zero at the top instead of at the 
  129. X * right.
  130. X */
  131. X
  132. X#define SCALE(i)    ((i)<<16)
  133. X#define UNSCALE(i)    ((i)>>16)
  134. X#define REMSCALE(i)    (((i)&0xffff)*10000/65536*10)
  135. X
  136. X
  137. Xlong
  138. Xitheta(p1x, p1y, p2x, p2y)
  139. X    int p1x, p1y, p2x, p2y;
  140. X{
  141. X    long ax, ay, dx, dy;
  142. X    long t;
  143. X
  144. X    /*
  145. X     * You might think that the code below should be:
  146. X     * 
  147. X     *        dx = p2x - p1x;
  148. X     *        dy = p2y - p1y;
  149. X     *
  150. X     * In the X window system, the x-axis is positive right and the y-axis is 
  151. X     * positive down.  This puts the zero angle at the right, increasing 
  152. X     * clockwise.  We want zero at the top, increasing clockwise.  To do this, 
  153. X     * we swap the x and y values and negate the x delta.  This is why the x's 
  154. X     * and y's and 1's and 2's are apparently jumbled.
  155. X     */
  156. X
  157. X    dx = p1y - p2y;
  158. X    dy = p2x - p1x;
  159. X
  160. X    ax = ABS(dx);
  161. X    ay = ABS(dy);
  162. X
  163. X    if (dx == 0 && dy == 0)
  164. X    t = 0;
  165. X    else
  166. X    t = SCALE(dy) / (ax+ay);
  167. X        
  168. X    if (dx < 0)
  169. X    t = SCALE(2)-t;
  170. X    else if (dy < 0)
  171. X    t = SCALE(4)+t;
  172. X    t *= 90;
  173. X
  174. X
  175. X#ifdef notdef
  176. X    /*
  177. X     * Rotate so that zero is at top.  We could do this by swapping and
  178. X     * negating the dx and dy values above, but this would reduce readability.
  179. X     */
  180. X    t += SCALE(90);
  181. X    if (t >= SCALE(360))
  182. X    t -= SCALE(360);
  183. X#endif /* notdef */
  184. X
  185. X    return t;
  186. X}
  187. X
  188. X
  189. X/*
  190. X * Compare two client structures for ordering within the global window order.
  191. X * Sort ordering is based first on screen number, then window state (open
  192. X * considered to be before closed), then window position.  Return value if -1
  193. X * if c1 is before c2, 1 if c1 is after c2, and 0 if they are tied.  The bool
  194. X * prev reverse the sense sort order.  The NoFocus client is considered to
  195. X * come before all other clients, regardless of whether the prev bool is set.
  196. X *
  197. X * A static boolean value AngularTraversal controls whether the tranversal 
  198. X * policy should be based on the angular position of the window.  If false, 
  199. X * the old policy of upper-left to lower-right is used.
  200. X */
  201. Xstatic int
  202. XcompareClients(c1, c2, prev)
  203. X    Client *c1;
  204. X    Client *c2;
  205. X    Bool prev;
  206. X{
  207. X    int pos1, pos2;
  208. X    int x1, x2, y1, y2;
  209. X    int LESS, GREATER;
  210. X    static Bool AngularTraversal = True;
  211. X
  212. X    /* First check if both or either are the NoFocus client. */
  213. X
  214. X    if (c1->framewin == NULL && c2->framewin == NULL)
  215. X    return 0;
  216. X    if (c1->framewin == NULL)
  217. X    return -1;
  218. X    if (c2->framewin == NULL)
  219. X    return 1;
  220. X
  221. X    if (prev) {
  222. X    LESS = 1;
  223. X    GREATER = -1;
  224. X    } else {
  225. X    LESS = -1;
  226. X    GREATER = 1;
  227. X    }
  228. X
  229. X    /* Compare screens. */
  230. X
  231. X    if (c1->screen < c2->screen)
  232. X    return LESS;
  233. X    if (c1->screen > c2->screen)
  234. X    return GREATER;
  235. X
  236. X    /*
  237. X     * Compare states.  Note: this depends on the state values defined in
  238. X     * Xutil.h.  Notably, NormalState < IconicState.  This will need to be 
  239. X     * changed if olwm adds any new state values.
  240. X     */
  241. X    if (c1->wmState < c2->wmState)
  242. X    return LESS;
  243. X    if (c1->wmState > c2->wmState)
  244. X    return GREATER;
  245. X
  246. X    /* They are both the same state. */
  247. X
  248. X    if (AngularTraversal) {
  249. X
  250. X    /* calculate angle to window center */
  251. X
  252. X    long theta1, theta2;
  253. X    WinRoot *root = c1->scrInfo->rootwin;
  254. X    int rootcx = root->core.width / 2;
  255. X    int rootcy = root->core.height / 2;
  256. X
  257. X    if (c1->wmState == NormalState) {
  258. X        x1 = c1->framewin->core.x + c1->framewin->core.width / 2;
  259. X        y1 = c1->framewin->core.y + c1->framewin->core.height / 2;
  260. X        x2 = c2->framewin->core.x + c2->framewin->core.width / 2;
  261. X        y2 = c2->framewin->core.y + c2->framewin->core.height / 2;
  262. X    } else {
  263. X        x1 = c1->iconwin->core.x + c1->iconwin->core.width / 2;
  264. X        y1 = c1->iconwin->core.y + c1->iconwin->core.height / 2;
  265. X        x2 = c2->iconwin->core.x + c2->iconwin->core.width / 2;
  266. X        y2 = c2->iconwin->core.y + c2->iconwin->core.height / 2;
  267. X    }
  268. X
  269. X    theta1 = itheta(rootcx, rootcy, x1, y1);
  270. X    theta2 = itheta(rootcx, rootcy, x2, y2);
  271. X
  272. X    if (theta1 < theta2)
  273. X        return LESS;
  274. X    else if (theta1 > theta2)
  275. X        return GREATER;
  276. X
  277. X    } else {
  278. X
  279. X    /* Sort from upper-left to lower-right. */
  280. X
  281. X    if (c1->wmState == NormalState) {
  282. X        x1 = c1->framewin->core.x;
  283. X        y1 = c1->framewin->core.y;
  284. X        x2 = c2->framewin->core.x;
  285. X        y2 = c2->framewin->core.y;
  286. X    } else {
  287. X        x1 = c1->iconwin->core.x;
  288. X        y1 = c1->iconwin->core.y;
  289. X        x2 = c2->iconwin->core.x;
  290. X        y2 = c2->iconwin->core.y;
  291. X    }
  292. X    pos1 = MAX(x1,y1);
  293. X    pos2 = MAX(x2,y2);
  294. X
  295. X    if (pos1 < pos2)
  296. X        return LESS;
  297. X    if (pos1 > pos2)
  298. X        return GREATER;
  299. X
  300. X    /* Positions are tied.  Compare scanline order. */
  301. X    if (y1 < y2)
  302. X        return LESS;
  303. X    if (y1 > y2)
  304. X        return GREATER;
  305. X    if (x1 < x2)
  306. X        return LESS;
  307. X    if (x1 > x2)
  308. X        return GREATER;
  309. X    }
  310. X    return 0;
  311. X}
  312. X
  313. X
  314. Xstatic void *
  315. XfindClient(cli, closure)
  316. X    Client *cli;
  317. X    FindClosure *closure;
  318. X{
  319. X    switch (compareClients(cli, closure->cur, closure->prev)) {
  320. X    case -1:
  321. X    /* this is earlier in the sort order; ignore */
  322. X    break;
  323. X    case 0:
  324. X    /*
  325. X     * equal: if we've just seen the current client, advance to next; 
  326. X     * otherwise, ignore.
  327. X     */
  328. X    if (closure->seencur) {
  329. X        closure->next = cli;
  330. X        closure->seencur = False;
  331. X    }
  332. X    closure->seencur = (cli == closure->cur);
  333. X    break;
  334. X    case 1:
  335. X    /*
  336. X     * later in sort order; advance if earlier than later ones
  337. X     * already seen.
  338. X     */
  339. X    if (closure->next == NULL)
  340. X        closure->next = cli;
  341. X    else if (compareClients(cli, closure->next, closure->prev) < 0)
  342. X        closure->next = cli;
  343. X    break;
  344. X    }
  345. X    return NULL;
  346. X}
  347. X
  348. X
  349. X/*
  350. X * Activate the next or previous popup window or pinned menu of the current 
  351. X * application.
  352. X */
  353. Xstatic void
  354. XselectNextPrevWindow(dpy, ke, prev)
  355. X    Display *dpy;
  356. X    XKeyEvent *ke;
  357. X    Bool prev;
  358. X{
  359. X    GroupID grpid;
  360. X    Group *group;
  361. X    FindClosure closure;
  362. X
  363. X    if (ke->type != KeyPress)
  364. X    return;
  365. X
  366. X    closure.prev = prev;
  367. X    closure.cur  = CurrentClient;
  368. X    closure.next = NULL;
  369. X    closure.seencur = False;
  370. X
  371. X    (void) GroupApply(CurrentClient->groupid, findClient, &closure,
  372. X              GROUP_LEADER | GROUP_DEPENDENT);
  373. X    if (closure.next == NULL) {
  374. X    /*
  375. X     * We didn't find a suitable client.  Wrap around by resetting the 
  376. X     * current client to the NoFocus client and searching again.
  377. X     */
  378. X    closure.cur = NoFocusWinInfo->core.client;
  379. X    closure.next = NULL;
  380. X    closure.seencur = False;
  381. X    (void) GroupApply(CurrentClient->groupid, findClient, &closure,
  382. X              GROUP_LEADER | GROUP_DEPENDENT);
  383. X    }
  384. X
  385. X    if (CurrentClient != closure.next)
  386. X    ClientActivate(dpy, closure.next, ke->time);
  387. X}
  388. X
  389. X
  390. X/*
  391. X * Activate the next or previous application's base window.
  392. X */
  393. Xstatic void
  394. XselectNextPrevApp(dpy, ke, prev)
  395. X    Display *dpy;
  396. X    XKeyEvent *ke;
  397. X    Bool prev;
  398. X{
  399. X    Client *cli;
  400. X    Client *next = NULL;
  401. X    Client *first = NULL;
  402. X    List *l = ActiveClientList;
  403. X    int cmp;
  404. X    Bool seencur = False;
  405. X
  406. X    if (ke->type != KeyPress)
  407. X    return;
  408. X
  409. X    if (CurrentClient == NULL) {
  410. X    /* Consider the current client to be the NoFocus client. */
  411. X    ClientSetCurrent(NoFocusWinInfo->core.client);
  412. X    }
  413. X
  414. X    l = ActiveClientList;
  415. X    for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) {
  416. X
  417. X    /* skip special screen clients (including NoFocus client) */
  418. X    if (cli->framewin == NULL)
  419. X        continue;
  420. X
  421. X    /* skip dependent followers */
  422. X    if (cli->groupmask == GROUP_DEPENDENT)
  423. X        continue;
  424. X
  425. X    switch (compareClients(cli, CurrentClient, prev)) {
  426. X    case -1:
  427. X        /* earlier in the sort order: see if it's the first client */
  428. X        if (first == NULL || compareClients(cli, first, prev) == -1)
  429. X        first = cli;
  430. X        break;
  431. X    case 0:
  432. X        /*
  433. X         * equal: if we've just seen the current client, advance to next; 
  434. X         * otherwise, ignore.
  435. X         */
  436. X        if (seencur) {
  437. X        next = cli;
  438. X        seencur = False;
  439. X        }
  440. X        seencur = (cli == CurrentClient);
  441. X        if (first == NULL)
  442. X        first = cli;
  443. X        break;
  444. X    case 1:
  445. X        /*
  446. X         * later in sort order; advance if earlier than later ones
  447. X         * already seen.
  448. X         */
  449. X        if (next == NULL)
  450. X        next = cli;
  451. X        else if (compareClients(cli, next, prev) < 0)
  452. X        next = cli;
  453. X        break;
  454. X    }
  455. X    }
  456. X
  457. X    if (next != NULL)
  458. X    ClientActivate(dpy, next, ke->time);
  459. X    else
  460. X    ClientActivate(dpy, first, ke->time);
  461. X}
  462. X
  463. X
  464. X/* ===== global functions ================================================= */
  465. X
  466. X
  467. X/*
  468. X * Beep on keystrokes, but only if the key isn't a modifier, and if beeping is 
  469. X * enabled.
  470. X */
  471. Xvoid
  472. XKeyBeep(dpy,ke)
  473. X    Display *dpy;
  474. X    XKeyEvent *ke;
  475. X{
  476. X    /*
  477. X     * REMIND: we should use xkeyevent->time to make sure that we don't send 
  478. X     * to many beep requests within a small period of time.
  479. X     */
  480. X    if ((FindModifierMask(ke->keycode) == 0) && (GRV.Beep == BeepAlways))
  481. X        XBell(dpy,100);
  482. X}
  483. X
  484. X
  485. X/*
  486. X * Lock the colormap of the window under the pointer into the hardware.
  487. X */
  488. Xvoid
  489. XKeyLockColormap(dpy, ke)
  490. X    Display *dpy;
  491. X    XKeyEvent *ke;
  492. X{
  493. X    if (ke->type != KeyPress)
  494. X    return;
  495. X    InstallPointerColormap(dpy, ke->root, ke->x_root, ke->y_root, True);
  496. X}
  497. X
  498. X
  499. X/*
  500. X * Unlock the colormap; revert to color-follows-mouse mode.
  501. X */
  502. Xvoid
  503. XKeyUnlockColormap(dpy, ke)
  504. X    Display *dpy;
  505. X    XKeyEvent *ke;
  506. X{
  507. X    if (ke->type != KeyPress)
  508. X    return;
  509. X    UnlockColormap(dpy, ke->root, ke->x_root, ke->y_root);
  510. X}
  511. X
  512. X
  513. X/*
  514. X * KeyRaiseLowerPointer - raise or lower the window under the pointer
  515. X *
  516. X * Restack the window under the pointer, similar to the SunView Front key.  If
  517. X * this window is at all occluded, raise it.  If other windows are occluded by
  518. X * this window, lower it.  (This is the behavior of the value Opposite for the
  519. X * stack-mode parameter of a ConfigureWindow request.)
  520. X *
  521. X * The behavior is different if this window is a transient window, or if this
  522. X * window has transient windows associated with it.  If this window is a
  523. X * transient window, the parent and all transients are pushed to the back,
  524. X * with the transients remaining above the parent.  If this window is a parent
  525. X * of any transient windows, all are raised to the front, with the parent
  526. X * remaining behind the transients.
  527. X *
  528. X * REMIND this is probably suboptimal behavior for transients and parents of 
  529. X * transients, as the occlusion rule is not used for them.  This may result in 
  530. X * apparent misbehavior.
  531. X */
  532. Xvoid
  533. XKeyRaiseLowerPointer(dpy, ke)
  534. X    Display *dpy;
  535. X    XKeyEvent *ke;
  536. X{
  537. X    Window child;
  538. X    WinGeneric *childinfo;
  539. X    Client *cli;
  540. X    XWindowChanges xwc;
  541. X    WinGeneric *owner;
  542. X    Client *transient;
  543. X
  544. X    if (ke->type != KeyPress)
  545. X    return;
  546. X
  547. X    /*
  548. X     * If childUnderPointer returns a valid window structure, we use it.  If 
  549. X     * childUnderPointer returns False, we go ahead and reconfigure any window 
  550. X     * found, even if we don't know about it.  This is useful for restacking
  551. X     * override-redirect windows.
  552. X     */
  553. X    if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) {
  554. X    if (cli->transientFor != 0 &&
  555. X        GRV.KeepTransientsAbove &&
  556. X        (owner = WIGetInfo(cli->transientFor)) != NULL &&
  557. X        owner->core.kind == WIN_PANE &&
  558. X        owner->core.client != NULL) {
  559. X        LowerWindow(owner->core.client->framewin);
  560. X        ClientLowerTransients(owner->core.client);
  561. X    } else {
  562. X        transient = ClientRaiseTransients(cli);
  563. X        if (transient != NULL) {
  564. X        xwc.stack_mode = Below;
  565. X        xwc.sibling = transient->framewin->core.self;
  566. X        owner = WIGetInfo(child);
  567. X        if (owner)
  568. X            ConfigureWindow(dpy, owner, CWStackMode | CWSibling, &xwc);
  569. X        else XConfigureWindow(dpy, child, CWStackMode | CWSibling, &xwc);
  570. X        } else {
  571. X        xwc.stack_mode = Opposite;
  572. X        owner = WIGetInfo(child);
  573. X        if (owner)
  574. X            ConfigureWindow(dpy, owner, CWStackMode, &xwc);
  575. X        else XConfigureWindow(dpy, child, CWStackMode, &xwc);
  576. X        }
  577. X    }
  578. X    } else {
  579. X    if (child != None) {
  580. X        xwc.stack_mode = Opposite;
  581. X        owner = WIGetInfo(child);
  582. X        if (owner)
  583. X        ConfigureWindow(dpy, owner, CWStackMode, &xwc);
  584. X        XConfigureWindow(dpy, child, CWStackMode, &xwc);
  585. X    }
  586. X    }
  587. X}
  588. X
  589. X
  590. X/*
  591. X * Toggle the open/closed state of the window under the pointer.
  592. X */
  593. Xvoid
  594. XKeyOpenClosePointer(dpy, ke)
  595. X    Display *dpy;
  596. X    XKeyEvent *ke;
  597. X{
  598. X    Window child;
  599. X    WinGeneric *childinfo;
  600. X    Client *cli;
  601. X
  602. X    if (ke->type != KeyPress)
  603. X    return;
  604. X
  605. X    if (childUnderPointer(dpy, ke, &child, &childinfo, &cli))
  606. X    ClientOpenCloseToggle(cli);
  607. X}
  608. X
  609. X
  610. X/*
  611. X * Set the focus to the window under the pointer.  If there is no window under 
  612. X * the pointer, set the focus to the no-focus window.
  613. X */
  614. Xvoid
  615. XKeyFocusToPointer(dpy, ke)
  616. X    Display *dpy;
  617. X    XKeyEvent *ke;
  618. X{
  619. X    Window child;
  620. X    WinGeneric *childinfo;
  621. X    Client *cli;
  622. X
  623. X    if (ke->type != KeyPress)
  624. X    return;
  625. X
  626. X    if (childUnderPointer(dpy, ke, &child, &childinfo, &cli))
  627. X    ClientSetFocus(cli, True, ke->time);
  628. X    else
  629. X    NoFocusTakeFocus(dpy, ke->time, GetScrInfoOfRoot(ke->root));
  630. X}
  631. X
  632. X
  633. X/*
  634. X * Activate the base window of the next application.
  635. X */
  636. Xvoid
  637. XKeyNextApp(dpy, ke)
  638. X    Display *dpy;
  639. X    XKeyEvent *ke;
  640. X{
  641. X    selectNextPrevApp(dpy, ke, False);
  642. X}
  643. X
  644. X
  645. X/*
  646. X * Activate the base window of the previous application.
  647. X */
  648. Xvoid
  649. XKeyPrevApp(dpy, ke)
  650. X    Display *dpy;
  651. X    XKeyEvent *ke;
  652. X{
  653. X    selectNextPrevApp(dpy, ke, True);
  654. X}
  655. X
  656. X
  657. X/*
  658. X * Activate the next popup window or pinned menu of the current application.
  659. X */
  660. Xvoid
  661. XKeyNextWindow(dpy, ke)
  662. X    Display *dpy;
  663. X    XKeyEvent *ke;
  664. X{
  665. X    selectNextPrevWindow(dpy, ke, False);
  666. X}
  667. X
  668. X
  669. X/*
  670. X * Activate the previous popup window or pinned menu of the current
  671. X * application.
  672. X */
  673. Xvoid
  674. XKeyPrevWindow(dpy, ke)
  675. X    Display *dpy;
  676. X    XKeyEvent *ke;
  677. X{
  678. X    selectNextPrevWindow(dpy, ke, True);
  679. X}
  680. X
  681. X
  682. X/*
  683. X * Toggle between this and the previous active window.
  684. X */
  685. Xvoid
  686. XKeyToggleInput(dpy, ke)
  687. X    Display *dpy;
  688. X    XKeyEvent *ke;
  689. X{
  690. X    Client *next;
  691. X
  692. X    if (ke->type != KeyPress)
  693. X    return;
  694. X
  695. X    next = ClientGetLastCurrent();
  696. X    ClientActivate(dpy, next, ke->time);
  697. X}
  698. X
  699. X
  700. X/*
  701. X * Toggle the pin if the active window, if any.
  702. X */
  703. Xvoid
  704. XKeyTogglePin(dpy, ke)
  705. X    Display *dpy;
  706. X    XKeyEvent *ke;
  707. X{
  708. X    if (ke->type != KeyPress)
  709. X    return;
  710. X
  711. X    if (!ClientTogglePin(CurrentClient))
  712. X    KeyBeep(dpy,ke);
  713. X}
  714. X
  715. X
  716. X/*
  717. X * Refresh the active window.
  718. X */
  719. Xvoid
  720. XKeyRefresh(dpy, ke)
  721. X    Display *dpy;
  722. X    XKeyEvent *ke;
  723. X{
  724. X    if (ke->type != KeyPress)
  725. X    return;
  726. X
  727. X    if (CurrentClient->framewin != NULL)
  728. X    ClientRefresh(CurrentClient);
  729. X}
  730. X
  731. X
  732. X/*
  733. X * Raise the active window to the front.
  734. X */
  735. Xvoid
  736. XKeyFrontFocus(dpy, ke)
  737. X    Display *dpy;
  738. X    XKeyEvent *ke;
  739. X{
  740. X    if (ke->type != KeyPress)
  741. X    return;
  742. X
  743. X    if (CurrentClient->framewin != NULL)
  744. X    ClientFront(CurrentClient);
  745. X}
  746. X
  747. X
  748. X/*
  749. X * Send the active window to the back.
  750. X */
  751. Xvoid
  752. XKeyBackFocus(dpy, ke)
  753. X    Display *dpy;
  754. X    XKeyEvent *ke;
  755. X{
  756. X    if (ke->type != KeyPress)
  757. X    return;
  758. X
  759. X    if (CurrentClient->framewin != NULL)
  760. X    ClientBack(CurrentClient);
  761. X}
  762. X
  763. X
  764. X/*
  765. X * Toggle the open/close state of the active window.
  766. X */
  767. Xvoid
  768. XKeyOpenCloseFocus(dpy, ke)
  769. X    Display *dpy;
  770. X    XKeyEvent *ke;
  771. X{
  772. X    if (ke->type != KeyPress)
  773. X    return;
  774. X
  775. X    if (CurrentClient->framewin != NULL)
  776. X    ClientOpenCloseToggle(CurrentClient);
  777. X}
  778. X
  779. X
  780. X/*
  781. X * Toggle the full/restored size of the active window.
  782. X */
  783. Xvoid
  784. XKeyFullRestore(dpy, ke)
  785. X    Display *dpy;
  786. X    XKeyEvent *ke;
  787. X{
  788. X    if (ke->type != KeyPress)
  789. X    return;
  790. X
  791. X    if (CurrentClient->framewin != NULL)
  792. X    ClientFullRestoreSizeToggle(CurrentClient);
  793. X}
  794. X
  795. X
  796. X/*
  797. X * Quit the active window.
  798. X */
  799. Xvoid
  800. XKeyQuit(dpy, ke)
  801. X    Display *dpy;
  802. X    XKeyEvent *ke;
  803. X{
  804. X    if (ke->type != KeyPress)
  805. X    return;
  806. X
  807. X    if (CurrentClient->framewin != NULL)
  808. X    ClientKill(CurrentClient, True);
  809. X}
  810. X
  811. X
  812. X/*
  813. X * Flash the owner window of the active window.
  814. X */
  815. Xvoid
  816. XKeyOwner(dpy, ke)
  817. X    Display *dpy;
  818. X    XKeyEvent *ke;
  819. X{
  820. X    if (ke->type != KeyPress)
  821. X    return;
  822. X
  823. X    if (CurrentClient->framewin != NULL)
  824. X    ClientFlashOwner(CurrentClient);
  825. X}
  826. X
  827. X
  828. X/*
  829. X * Move the active window.
  830. X */
  831. Xvoid
  832. XKeyMove(dpy, ke)
  833. X    Display *dpy;
  834. X    XKeyEvent *ke;
  835. X{
  836. X    if (ke->type != KeyPress)
  837. X    return;
  838. X
  839. X    if (CurrentClient->framewin != NULL)
  840. X    ClientMove(CurrentClient,ke);
  841. X}
  842. X
  843. X
  844. X/*
  845. X * Resize the active window.
  846. X */
  847. Xvoid
  848. XKeyResize(dpy, ke)
  849. X    Display *dpy;
  850. X    XKeyEvent *ke;
  851. X{
  852. X    if (ke->type != KeyPress)
  853. X    return;
  854. X
  855. X    if (CurrentClient->framewin != NULL)
  856. X    ClientResize(CurrentClient, ke, keyevent, NULL, NULL);
  857. X}
  858. X
  859. X
  860. X/*
  861. X * Bring up the Properties window for the active window.
  862. X */
  863. Xvoid
  864. XKeyProperties(dpy, ke)
  865. X    Display *dpy;
  866. X    XKeyEvent *ke;
  867. X{
  868. X    /* REMIND - fill in when window properties implemented */
  869. X}
  870. X
  871. X
  872. X/*
  873. X * Bring up the workspace menu.
  874. X */
  875. Xvoid
  876. XKeyWorkspaceMenu(dpy, ke)
  877. X    Display *dpy;
  878. X    XKeyEvent *ke;
  879. X{
  880. X    if (ke->type == KeyPress)
  881. X    RootMenuShow(dpy, WIGetInfo(ke->root), ke);
  882. X}
  883. X
  884. X
  885. X/*
  886. X * Bring up the window menu for the active menu.
  887. X */
  888. Xvoid
  889. XKeyWindowMenu(dpy, ke)
  890. X    Display *dpy;
  891. X    XKeyEvent *ke;
  892. X{
  893. X    WinGenericFrame *frameInfo = (WinGenericFrame *)CurrentClient->framewin;
  894. X
  895. X    if (ke->type != KeyPress)
  896. X    return;
  897. X
  898. X    if (frameInfo == NULL || (frameInfo->core.client->wmDecors->menu_type == MENU_NONE))
  899. X    KeyBeep(dpy, ke);
  900. X    else  {
  901. X    ShowStandardMenu(frameInfo, ke, False);
  902. X    }
  903. X}
  904. END_OF_FILE
  905. if test 18793 -ne `wc -c <'kbdfuncs.c'`; then
  906.     echo shar: \"'kbdfuncs.c'\" unpacked with wrong size!
  907. fi
  908. # end of 'kbdfuncs.c'
  909. fi
  910. if test -f 'mem.h' -a "${1}" != "-c" ; then 
  911.   echo shar: Will not clobber existing file \"'mem.h'\"
  912. else
  913. echo shar: Extracting \"'mem.h'\" \(1135 characters\)
  914. sed "s/^X//" >'mem.h' <<'END_OF_FILE'
  915. X/*
  916. X *      (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents
  917. X *      pending in the U.S. and foreign countries. See LEGAL_NOTICE
  918. X *      file for terms of the license.
  919. X */
  920. X
  921. X#ifndef _OLWM_MEM_H
  922. X#define _OLWM_MEM_H
  923. X
  924. X#ident    "@(#)mem.h    26.9    91/09/14 SMI"
  925. X
  926. Xextern void *MemAlloc();    /* malloc frontend */
  927. Xextern void *MemCalloc();    /* calloc frontend */
  928. Xextern void MemFree();        /* free frontend */
  929. Xextern void *MemRealloc();    /* realloc frontend */
  930. X
  931. X#ifdef MEMDEBUG
  932. Xextern void *d_MemAlloc();
  933. Xextern void d_MemFree();
  934. Xextern void *d_MemRealloc();
  935. Xextern void *d_MemCalloc();
  936. X
  937. X#define MemAlloc(s)    d_MemAlloc((s), __FILE__, __LINE__, NULL)
  938. X#define MemCalloc(n,s)    d_MemCalloc((n),(s), __FILE__, __LINE__)
  939. X#define MemFree(p)    d_MemFree(p)
  940. X#define MemRealloc(p,s)    d_MemRealloc((p),(s))
  941. X
  942. X#define MemNew(X)     d_MemAlloc(sizeof(X), __FILE__, __LINE__, #X)
  943. X#define MemNewString(s) (strcpy(d_MemAlloc(strlen(s)+1,__FILE__,__LINE__,"(string)"),s))
  944. X
  945. Xextern int MemAcct;
  946. Xextern int AcctTag;
  947. X#else
  948. X#define MemNew(t) ((t *)MemAlloc((unsigned int)sizeof(t)))
  949. X#define MemNewString(s) (strcpy(MemAlloc(strlen(s)+1),s))
  950. X#endif
  951. X
  952. X#endif /* _OLWM_MEM_H */
  953. END_OF_FILE
  954. if test 1135 -ne `wc -c <'mem.h'`; then
  955.     echo shar: \"'mem.h'\" unpacked with wrong size!
  956. fi
  957. # end of 'mem.h'
  958. fi
  959. if test -f 'winframe.c.Z.uu' -a "${1}" != "-c" ; then 
  960.   echo shar: Will not clobber existing file \"'winframe.c.Z.uu'\"
  961. else
  962. echo shar: Extracting \"'winframe.c.Z.uu'\" \(32539 characters\)
  963. sed "s/^X//" >'winframe.c.Z.uu' <<'END_OF_FILE'
  964. Xbegin 666 winframe.c.Z
  965. XM'YV0+U0H *$"A,&#*,:D #'D#9P\<M*<04,'1(P<.'*PL)@C!PP04^JX =$D
  966. XMS1@Y;^;DF4.G3)LY&Y.X&>,"I$@09,K,D3@23IB6;NC,&5CPH$$X9=R02>/F
  967. XM# BF(.B@*0.BBHLI-<,H!6'FC9PR/$&,>2.23D2=-:>4H<JDR)$@3+XX>4(E
  968. XMR9 B1(T:-).&#=6N<J*6D?,2Q!LS4:>"8&,RZ9PR+HB^4*!@1)J<01.( ()B
  969. XM1(H[3,W("=,&\I@$,5S$,,S&SITV(.P,WOEF9(P7,U[DD"&"<L"\0L(\)F/8
  970. XM3>7+2>EHYNP9M!O1I$TGD&'#!0T<"7+<AI'C10P:()LDZ4U0,F7+,]G4R0F"
  971. XMQV Y;MZX0./C>/KU5'FP7"J?OOTQZK&GGUE,G3%??>@!B%][6,1P&Q8I'?A?
  972. XM@/DU^"!C8DB8((4,.O@"%G70T9>&3"DHH(4?_O1&&R3>)^ ;;)R!QPLPRBCA
  973. XMA N*D$8,.+@Q7V\;Y@@C&V^,$89?/^+(G@BEL8@&D"5R* *,KR49Y)+.61EE
  974. XMCJ6Y48>6+E(EPADHU0$'F":*>0:18APY1Y(*!*3"G'36:>>=>.:IYYY\YJE 
  975. XM06N^T28;./T4QI]])JKHHHS6.9D"9>#1$GP@!$''BI5>V@8399A!AQ%OO#'I
  976. XM#I!*.MA(EF*::AM22$01J*(.1FJDDZ*J::8K4A'&&F6 .D8=<\QJ*J6KXMH&
  977. XM$6:P08<0=+A!:IP%25&$>$X0 4(+7$E4QU>&A0@"&F_<$=4;()Q11D41$7=8
  978. XM8FG,0=!DM)[Z5% @2*%3&GJ4\<54KM*QD;T[Y?L%:&1(]:R<C2:LL,)_@@!'
  979. XM1';\1!49AB*Z\,48[_GH"#GQY0951D@11!-%?%&$%44X0<47300QQ1)Z(21$
  980. XMB)>Z <57<\S1A'!K@, '"#/34;.]?@E7QLYS]/PS%P/%[/334!M4!!YPI+3M
  981. XMT3S[##3-M34A:AI=9[UTTU&7'74100UV!5-DA(NTTB!P&H9L:ROEMM@@,&WV
  982. XMWD^') 9+<M0Q!AU7V[O45X._K;7>?#=^D*_ #H&&5N8J_O/-#@U&1QZ24XYU
  983. XMTBE4UC%3((M,LLDHJRP7$2R[O$0"*( P==5S7&VY[&G+47?;=]S.= + )V"0
  984. XMW'2S?7?26OL-N."$?V5X&HC3X;L"P0L/ N1S=-[4YW!CCI0<FVM?>=:A0UOO
  985. XMM$E4"\)7=WC5LU3M@L!2'68@-@>Y:51DY$B3*^473FFHWV"2X[ W,*4B =/)
  986. XMNT37*=)=SW0E>T(5J,"$])7L"DD@ A60H!<9,-!CI1M9R:90A+8,@0I%8!T&
  987. XM-<C!@\S ()1AR4],PA V"&<.4-!*KT93&K'8,&<Y_)@1>%B&@V7LB$BD4\, 
  988. XM<X<PR($,+<@)@)Q8!N*8022# YL;AI+$+F+L43(4T1AB8T#B/(8.5,B?7ZA 
  989. XM*Q2D@%1AI*$=RBB_<\%J4FR4E!M)-<?+7(^(58 #Q5HRA<DA98^^\:(B$]:P
  990. XM@!4(!%HACA2],L/:%' G(JK-(Z\XDTQNT6*+#"6?'A40G)1A+*/QY"7SI\5'
  991. XMJF RI80#':: +ZI@*R>3:H,#I4*5JAU0?K4$P1W*< )NM4\.:W@D:*02&8*<
  992. XMCUK6@I^[.)E%2\8O#-\*PQAZ=@<TF 0-\@-7'=A '#%0Y2MPL.$8JBC,_('S
  993. XM4,Y<4Q[@ ,ZNT.MAF0-?'IKY2@7$<8P'5( L:9DO%)RA7:$[PFCH:9(Y?"$T
  994. XMY%+!08.E@#T<QPP= \$3A#"%)[0%A=2;PS+' $X4 *R6^P++1.@0N@18- %&
  995. XM>HQ%8* #ZB7@*\VS#0Q(!5.C620&-04>3K=E&QGP-*94B8$,@GK3<Q'5(C0X
  996. XMJD^_P]2A4NHB/.U8&,9)AZHZ]:HP6 $*4'# %*  !BZH@3-/*C!^K30%;Z1>
  997. XM'RJ3E*68@7I6'0D4#!B4!'[A"&R8)QH,BE!2S=6?=)@A0(.B *JE9 A$>DS0
  998. XM:D;8.21TH=X<@T,A2I")DNJE>778+&M9V12L(&0B_(($*6C!+ZQP@X:-86+%
  999. XM."\Z*&">CXUL&29;FX0PA@43#1UDTT! %0 H#:12:!@8JMF'/B>BGJTHV9Z"
  1000. XM&!0$00QB^(H=6):4.O#6#5] @DHI4MKV?*L,8<B)',3;+]^F ;@(;6E>37JO
  1001. XM? 6!,.$=+QU**]:II'<P[%VI>^%KV19<-[MEV&X3NOO=_+8WN"EX@0SB:I0R
  1002. XML.$Q>/WJ2-A:AONVP<$"#JY8!TK:X/K !S18P81CBUC%UK:QM(,"L-  !::4
  1003. XM5@'*9>YFG]O9=GTVPSD%@6.SI]OOEI;%_WPQ;G$XXQJ[8<#!5<!PBWO<Y&*V
  1004. XMH<[M2H\I:E&C!! $*)#Q'&C,E">$",3D#:YY_:O> )/WN 2&*Y")2M\$>AC-
  1005. XM^Q4Q"M@,8/U"&:$M$#.9W6!F.N"YM!%>\70MC.&F!IG#=W9SGA$ZXM$6U,0H
  1006. XMCNMADQS025+A#6FD@U]NG./,[EC+$O6Q="V#T4Z!8"Y4($(1C#!G2J% !BH8
  1007. XM,F13LENN/1G"N"'5".H:P%J/! 4DOC1"3ZSHPY926M 42__,Q:YI8E&5EP(!
  1008. XML*A2(SR H W:1(F[LDVKT0PN+_9$8##-PVG&\GF]?H9SE*=,+^,RQLK+-766
  1009. XMH:OJE_XRW10!00] < 0I6,$%H?8+J((BDZZTP ?"62>];*J7%1#<X A78Z]J
  1010. XM0X>&O^'A.9F#Q.G T]"V# O6Q:YVN>NE!DNZM"P .!U6, --)_*9Z8NF-ZW=
  1011. XM22V&DRSDA.2%R65.:7N..-G>-FMD].UPIV2![;9M5V(%[_;*&Z%29@R5[XWC
  1012. XM*S>7LZGFLK$O?O"$;YSASWUXQ EH\8*77>,+[WC:?1#RD5//*!:'-'Y?'EP6
  1013. XMF\^M%'D!P:3"E6MKT5W]C+H" (]&APPQ.BAP3NCJ%L0=1H<@SOEQ NA=$7NG
  1014. XM0>#M=,/#46D:K0>%IZ7&,D03$'8G> 7<A!IXW8Z0A,@SA05SD4++XD)[)QCA
  1015. XM"7&EWI?=^_#7$.&47IG#PY,5AC.XRP0@N$(3CH_*2KI!O/^50TL=_=0$O/OE
  1016. XM5Y^#ZPESI(6LP*;348'>/\SW=HT?]G%- *.I,OSC%O]8R)>#\GW ?.># /K2
  1017. XMYWK4YQ7;%UH[13WS9U.AM7Z'-E'O5WY(-ELT%%",)P2BHBF/5QJVYP:3QQ25
  1018. XMEX%4H0*9)UV;9WJ==UR@YQRCYQ6E1URG1SVI]W7/Q7H.^'I' GJS5WO.@7M/
  1019. XMH'MP\5?I\WO!EP#UQQCW-X#ZMWPVY'\ .'WY9WUW-!@%J&%<$2J3 GZ_58/D
  1020. XMQP;FAWX,V'[B9X-<R%/S1UU@9G\^8'SYMW_]]WS1UP0"F']3&&0'*'\75@8*
  1021. XM2(5?Z&=:"'\1Z&*_I "#AP:MLE(@N($=:#,Z!(*8QQ2:QWD$@8(#IX(^0'HN
  1022. XM<%S)\2Q$6%UHJ(:HQ(9+Z(8!^ 9(V%)&88 EIX?UU6'XM38%,U@YN($\Z(.\
  1023. XM%X3 9W,M1EN!.(B<XBF'*'D*0'F+2$2-Z"PD"(F>EX),L8)?<8DFJ(E%F 9'
  1024. XMN(9*V'RB"(>D*(=W=Q"H.'8,Z(I2@0*QN(.YMWM Z'NWR&(((TKLB"<-DV#)
  1025. XMT0+]0P:,T12%UW.UP47MN(]V0DH"X4SS^#_PV%=5&!B\Q!5$1!1Y006*\179
  1026. XM]W/C5$Y4$09-Q"WK<I!FH$T5(14_ 0)B("K@=) B(FIET"9RD!?.P3N0M!48
  1027. XM28PI&2Z0Q"UA($"#PT[=E!2)014O>0<G,!3.U!6_XBZ15$=^,3CR,UOTYRXD
  1028. XM=70U 0(,J9/&(R[@Y@;--QC")!QY84[*%!%"@Y/F!!A4<9!/@!1NP 2ATC-S
  1029. XM@!0T<95*N2+I="[L=#]/41'MDA?QL9&*T08I41&=PA=CX((5$7)A,93QDTI3
  1030. XM$1@4N08521Q0D4[:A!8*Z4Q/>95Y4(5!^4CQ$Y#L%'*#(1ON<C\]]!- X4E-
  1031. XM"2J(F1>X% 9]L9DZ<1)I($L^MR[@(BY "2R/-&9 )Y'9Y#]QN19Y<9 R,2DM
  1032. XM (D-T09M(!(F87T,41NR$12'1Q):40='TI1)< )L0"@')1MY@4UE,A&&(1MR
  1033. XM8 ?$)2[F1"1WP$]Y$00^!)ABH17:)E.UP6V(T17;,B]PX"UZF1,7I@,&X7H@
  1034. XM(!/WZ2\@D$,YDP:RP0)Y899&<IV5&019=* $QR9'$EB5\J"081!7,!4CX5'2
  1035. XM]Q3N A6UJ7Q=<9WAHGQYH9=*EY]EL!$AZJ&[28_L!!78E)'00Z& HYHKQ41.
  1036. XM1!Q3^3%RP$_1IZ$Y*1;;<C^!D1RS 4FAQSL;L1-G0)5^44Z5V9*79RY"4R#;
  1037. XM.1)H,RFN)R)F4)D#*: <V@1U)!1#VJ*,P2O55E/EX4QZX9\ ZBU.@RU$0"YW
  1038. XMZ4U- :1Z0: [(1M0@RUJ@9=_423 \IZ/A 6!&J>?0JAODA=ZH: 3VJ 6:A" 
  1039. XM>BYGRJB&:H^(>BZ*BCUZ:A2 )2B16J$BXJ>5*JB66:AB4)F/H12/A$VED3-5
  1040. XMZ:B.$S/9=I"8&!3HZ4P9BI-CZJ)0<5S;U *7T@(MJJ(LBJG7Y)'Y\VTL*!9N
  1041. XMR1A&TA)D *0,&3_Q0P9U$);D@I$:F1@=>9#;%AC[XS XXRZ\,Q)0<9"3E$I:
  1042. XMM)UEPI**D:L5L9,K*4FCX10'N9,;,92P5J:7&I1 F@2((:Z/$1AJ "SZ(ZUK
  1043. XM !/M)!5D41%Z*9Y-L1'KJACMJIR\-!+#E!=G%+# TI13\ 8;,4PX41LG4!%K
  1044. XM$!_B<I.\9)#D\K$8B:EET1>_J1ABX&OK8V'H)5-AVI1!8[$%JQCC:JXZ\1CH
  1045. XM&B[J.A*\E!?TNJ0P:;+'R1( .[-!^13&645I(#&!U937^J&?V:U$>[!.ZYYG
  1046. XMT*WDXI[# AO=]$TGJT!WF4U^:K7 LA$/<[0G>P=NL!&1EUEHX+'G,FZ*$:(I
  1047. XML!$3&Y;S6J1>T:];\15%(U,'F;-"8TG9]AA%:5O.!)IA22O)>J1X0!IO29U#
  1048. XM2Q5/&S]\:J#<%AB0RJ"DBKH(ZDPF.SE^BDT^4:!^2B9A( ;%,:0D9$)4X)&^
  1049. XMYK4[YZ*S*4Q4H9F >Z7V2+?N8B:6)+DU8[0Y<Z\[^[B#:I"#2Q:!P10!>J)O
  1050. XM$')L^H]%813?=3-'2ZME Z=N$*!/0Z?DTJ5X:B#H&S6GZZ?M^Y^C*[WNTD0?
  1051. XMRK3S:H*O.[ZU:C8RF[U!.;]0L[H4ZJ"E2A77@K]#>K?3R[_S,J3T&L #S#<%
  1052. XM/*@'[*9F$ZJ#LL"3ZKZO!I(%LJL";!#?130]BX<>G+[DHJCW6Z<E##]YBL!/
  1053. XM4[\./*<@8:G,VY17P&UN0*%6>EY?@<,9'#-?%KDZ*\'[*QRO1A?S@L1);!2X
  1054. XM:H*?6C8*+*D-3*D]C*HA"L1"3,26>I@NG,)5K,3Y"[V6Y,1L&<6_RQ14G,86
  1055. XMC,5S#*H2RKH,C+H/K!9; :M'6Y7C4L> R4_^F!=ANC-P8"]QL*U4VP+8<I ^
  1056. XM\3$N>K8(B2DFH4ECE&WQL85'*3$^F7@2N%BVE<C+Q<B.O%]D\! ;$:8L2D0>
  1057. XM%SI$T"Z.F0>LM\IY0"I84 3-J1PJ$*:D(HQ"1(PJ !VEX7&/:(*1R!B@9\QE
  1058. XMX'',V(*92!E/4TIFH168Y'.B@2E),!9N0$->$7WN1 :CH;<+]#31>']3@)0"
  1059. XM-W#=K,GK+#$@L!!=5C;QW!+O[ ;OYUX4YC1]  (7E5&R)@15< 0(>(<@4,]G
  1060. XM(P<HH3M.],U-@0(Z\J1>\4B*C,HZP9>]O+O.[ (BT,\Q,U?#YJJ(44H#7= +
  1061. XMY&SB"P)AVA#/H2W.4P:-G-'7$LF*,<E)&15RD >/E&U+N3W0^M)GL"W6QVZC
  1062. XM_&(M71M\,=0Q/=,L@0*XW,J]_,K1$<L*,,MI:4.VK *XK,N\G!RL!\S!Z('#
  1063. XM>'G%#,O/E<SLF8P#Y\S07(DLZ(R R5/"7 ; (X)D3<D#)XYY708JD )N/7=F
  1064. XM8(DX/8+4PWDNO=17,V#.47DL$*:X^!N9R[.#,US;Q(B0/*26>TH5P<;\ \7F
  1065. XMA)/"RBMD8-2 R%B;7=D,>XA1S=)3C9!5_5RR3,M:?<L/X=6]'-:]',Q]S8AG
  1066. XM'=M=H=8$Q'J2"-O'/'>62*_/@L[5%0)NYP+8 RHD>@<Z0Q:/$3I/\U(E")B!
  1067. XMBCT#1@6!LZ)A^G!XX-DN("*E =)Z\<\ K=* >[EU6@=BX!>6O0:8;=-4D=J=
  1068. XMK;.3XRZA/1)M(]]^T0*C746FK8NH3=ET$-_S70;US=JL[-K)0=7'W16SG=5A
  1069. XML-5=K0"[G-N_O-MCK8C#;-:!'=S2Y675]=QJ<;F?=@9K4@;QO$T%TE*<%QS;
  1070. XMA (E_G%PW8STJMX)N-W)803CQ 8 <RE?05!ET.(OCN-H[7 [+LU!$=DKK=]$
  1071. XMD*_WK=D*#KR3^]G^O18]<:[L-)2'2QQ)0183D1<)<*L1X>)6B4WDW'R&G(L3
  1072. XMF.#P;>5$!-41[LK&_<S/M1$_1 =.?.&U3! ;WN'%)=9U[=LYKLO?]=7U]N=.
  1073. XM+-Q!X36RP>3 K>/)#<"0?JY2?J+=9;XY<^4'V25UH.71V]\>Z>7Z:^!0=]0!
  1074. XM1>J@/@<0G@>//=4Y+NA:3>BWS>&.WGF(WMO$O.@G?A##E^/1+-?QF(;X]XD/
  1075. XM1^I?L#E( 0(A,' DXP15(!=/X 1%T%*%%"[QK!0[NF!>8ND53K(2'A0;801N
  1076. XM4@:=/MF7&^NBKACZ;1B(208)2[6>G4U=CI-.S.JB?-JVI=]!8.\*"^]WWMIZ
  1077. XM?NM73=L9;MNYS.L>_NLB;GD]]-OE+NDGR,QMW>28'M?*3<U.4TH$.Z3Y[L84
  1078. XM?+$N_#0%<<%5JQC<ZRUA/%UZT4] 'A3=S:@#INYW6.O)7M[!B][L[G>271#I
  1079. XM=>]T\.#$F-D'6?0*:^J6A.K_O>JEW>H KP!,SQ)(#WD(_]H*C]6U[/"X#=8?
  1080. XM/LV)'NP<C_'+_'D;?^G'_O$R?Q!*[A<KSME:-&#G3@?D;=Y K]XH#F;.C7'1
  1081. XM/20EZC7;AMU.H]V<=_-!^=WAS?-!D?<_GP;I32I/P]X*X-[.%*9;.AA=&D!Y
  1082. XM$)D%,?*2S%>3PM*Y,TTH 1N2K$,;$62'D;\5"0<MT";;Q!5+V)0T+$T [4PR
  1083. XM2@9+@6UI>YU#VLFPM^='23^(T3:4O*H$!X*]OOERT/E?&N>*I_FY(_UY@.>T
  1084. XM?O<4SN<6OO 8KN&[;NB9,?8O6/8D?O;#;A##-]X^@ <GD1([D:>IV1?M7,.>
  1085. XMWW"# 3;:1SW&[@.^)'<D@3EP!9P(4B . T?G/8;EAA#Z"!E8"$? ^?4RZ(?]
  1086. XMM)]4FW![+I:IHY46IHA'&<!^>2$OC#R3Y9!8EU_P%$.*7PVI^D<H0(/P*SJ:
  1087. XMRX8Y!9!DE3B2<7 FV$__102O(+J,5TRB/R,A1!DKP4?=6@"*DBG(JMI +7&A
  1088. XM6]S%S>)@(<L@!(&ALQ%$P@:[2G) ]M&^GM%_S-#H.R!6"=6=+4H6L78">WB"
  1089. XM>X[ZN3K&T@'1BVRH@%L/ W8]AB?^'A[Y\V42[P.9O4OW8XQ"*>$)SRI,*:6M
  1090. XM,AP\4F7"77_CG!&[ZN+^X)^XF7\&0D5)NX&#_1X0%S(V#)#],<)>1M[B7X&B
  1091. XM?^="-1&*:8?_OI0.Y'\MY?\%P$DQ  M@%F0G"7#=";V5]N;N /91+S-#)<P 
  1092. XM:W%+RMEY>4A0(6>IA$_6$L#,+G16.0&[_3O:X@ 50"V\A8,A%^:!76@!0\]&
  1093. XM@#-$R? 9!*^7Z[C:KC,*Z*_BC2"C@(RJS'2Q0#""*&F>W0&3+!=BF$3+Z,FY
  1094. XM '?(4WZ)N("'HD<>#J)Z2"^<2!M  _RP(OC#.X!ZAD ". -C /5XG5/S!FB0
  1095. XMJA$^G,@(^8!V@3WHV38R" @1!S&%(S $9-%_<@)08(+\GB%0!:; 7QD"\<<H
  1096. XM3!2-Z 9HCT=,'R&1"HS$DGB.A!!/F2MV2*:\%)4X1F3/1NR(.RCZY)PG< 5.
  1097. XM8DH\""O1)[9$'71[HA@MJHG YR92A@3@#\')P-E##Z:P4(^!"'J^T64(1WUG
  1098. XM*F(!(] 7B!QGHQRCIK6YPXV $/L58;@#;O$?;@2;<@=: *X9B!N!\7P:./"+
  1099. XMF$(*: %5,?Z,Q;)H+P8'6BP#U7 MBK.6"!1O#T&; EG *,9%N!B3Y")  QYU
  1100. XM\2Z^Q;RH7_9B7^1 @)$PH('XTVV^0"U\=FUDHC0I"V,&2E8\'&QQC2J5!M>8
  1101. XM#T>27\ #<Q$SQD/;6 :V'PS8"![E"& !;$>+<!&T0$WE#!K* 6DH W@A3O"%
  1102. XM[Z:""4-6Q<YNC;504<IP,B299O@,T0LN!!9YH#E6PZ"(#2V7-@0!W###Z;J'
  1103. XM!PZ!G5D;AP>A''(=\A4J"(7E6H=1B2B]P]!S[.BA\*$7]Y _ZL.O"!#_HT 4
  1104. XMC0&Q,A)$&&00$:)"S#>J9P:%'6@4$:711)1UC,HB6@^,V!,7(T=\B2!1)#X!
  1105. XMDF@2.>)1Q(CQ0RFZQ* ($T4DB82*\0<GEJ&=B!0[Y.QIC'M+*%8+HF@4>8I*
  1106. XM3)$>DBGFR'+T@WJ/390K4[$J=L55%&GXD%:DBF]Q2=J95D0@C\Q4+"5\0?B!
  1107. XM*")"X& $"R(.5 2;E">8Q!M-T@)) (/Q.A7&Q-(4TF*$4XQM44'&1320&Q- 
  1108. XM9E0!>/&\] O/>.<D3VC\AX*1+*K)L]@F$:-:9(T;X4;*HL<8&4WD9)R3=?).
  1109. XMYDF]Z'CZI%_\DZ-1$V')LEC![)5L!()10>.829J'!:H<15IG$2&B'4HVT!H]
  1110. XM)(YD ;]'6A0<"5(M)"-=W(T:!S<*2-Y(ZVYE/H2-S>A3TL:'\RDY15.0"L9Q
  1111. XMZ#U'BJ0<@X,<.(:]D"(-J7?C&@D/VT!25@13F4D4< RQXX&3(V7$&29'[Q@-
  1112. XMG0@U;&WD\;=D0_ WZ+SAPPN'(6@$R4?DH@#0H7VT,/C1;H@+=ZB,\J$E\H]$
  1113. XM"$#VRV.W#QGD04R(,&@A[AN'2%$"YH'\AQ3R#$E$BI@A$]I%+!<V\B>"R)@X
  1114. XM$TLD2O212!%(CJ.FV")EXHBDB48R*B+)G$@5:"2'9(D?,BABD!U9%$TDR$21
  1115. XM[D)%"LF-0"1K$3J*D5M1-$K)6M(DLZ)ET41ITBP:QD*9&!$EQD10NO$5]:)/
  1116. XM82DY$&?<DY42\OC)JA@I6P OZA144VM>RD%4B%Y%U2Q<E3%33L72>!H_$AZH
  1117. XM+*N15;I&J0DV/R/:Y)J7T4YZ30(Y->WFWGQ%93-L:B#)4R<I)5\\FRW@UN!)
  1118. XMT5BX;$IP'([IPPH\@2600C8">-M60XAMEC/4J$=4HWX<EOS'$@G+79DK(R6N
  1119. XM)$F^$3@R >'X!2+GY$PAR9(6CLOLPP1(QQR ELM27!PD:OFP0E+[2%7NHAXI
  1120. XM$&YY';\7N_N68X0[SD[U4CL_QNTD N.Q*99'"X/KU*.[Y&T3S[?)2V7F>4B%
  1121. XMO52')(@=[DO6.##E(<#\)1%+> XBT&.Y?@!J.1V]JPB<D!3B6C+(!M$![S."
  1122. XM3) *HNWJ)PM)D &2$EFB@NDP%P/I.($"2GCZ!6/T3Q+ ]R0I[8)GD0'LT3P5
  1123. XM2"R\0P7Q8#Y(';,P)Z2!3)L)<B!&3.)S(2NBQ=R0&!-FOLJ/R#%/IL<\D>5"
  1124. XM9&[$G<E"723*M$5 DV6>4)ZH0CWBS"0"/-)F7LRD&"0]8L^$D5(12O[#H6E?
  1125. XM]HZ3/)I!LPT$2*_XBJPD]4B::_(P-DVY^33E9-KLFII1BE[-E<(GQ29H#(R:
  1126. XM2'-2),XY:1R68J1$P!(RC$Y*Q!MUI:]\.+QR(_Q&C;(ZAV//'$+I3-DA(5!D
  1127. XMC?[/&T)"UH?#Y"Z_H"&-@@(%FTQ47ZQ/BQ,#;J8!_1@+- 4],,7)808&@5P(
  1128. XMV,*HR!66AM!<YB7E62@0'M)-7W0V+>DC'0F3Z(%]359J1D%I.P&<_<)N2L6I
  1129. XM6']VC@2EH+:SD1X$-7H'OH#;A)N?\Y0BT(V0/DG'(%H!,0!J @^#\$HW@@Q0
  1130. XMG:S3=5).(J!'AY!1(*;&] V\3<_Y1OEFW3R;TM1Z&$Z_20/2J4&HB[-4<")&
  1131. XM/TDV<RDZ13\&X9KRT6SJ!"3G-NVF-Y&4ZL2+"4Y;@J3X E'*7"!3Q?A(/04S
  1132. XM#1'JDT!"TW0J/%XI#"VHM *A5A&%2DZ=9CRUF]+4**Q3Q#D#ZJ11@*?FE)8.
  1133. XMSK%)( .GW02:A^4X.I/NF'U<#_; G;5P6I)+.5 MQ4E%:%'$$QD>3ZK'#,,E
  1134. XM354O-I51G<L(ER[?R[I,CY7I>H8X/?@>'5'666OF\'O>Q_"9'_DE/NR/K!& 
  1135. XMEL\!2B WJ+Y9/:U'#,',G7E$4V;\^25*\BHR22=J-"WA6^V'45*N3LD/ XX&
  1136. XM2Q^"0&)14"I--KGD5F6K5)0[Z(<&493X*+]HWI24FU%/DM&LN5+/*.-,HS$"
  1137. XM#YC&S6E0VZ@EC)NM$HZ*SN@ .NNHZ:R-&B=U[E,_VH-V3^S<?07AJ)9+.= <
  1138. XM'UA.W9T[M:?."_!$K8"G1W(B8*:V>DNB"BXO@[ADECO568I'="D]U:5Y9)?=
  1139. XM<,/!RV)$*N:E]ZR/X/.EB$_].%;CVOD4F%]U0+ZB#.H@$R:$E$%=@6&&4 3)
  1140. XM2RODPZ&804F8ODP5N4)+9L?LD4-4AB[%C6E#2R0.3:(S<HAF3,;H0X=BS?R8
  1141. XM^35G%M&@V%;_Z\J,J_5BKK*?)SJ$2DE.=69=DDA\!>(0/0YCJC-/H9(DF4FW
  1142. XM>2:Q**$LK&_2:;;%6[E*Y2DB&J,4H8Q6UK^(-^GBWY0*?1-QUE-#A$[39H6-
  1143. XMK;YPOFF3]R$J@6NV81O)J1C*@&QYM5" B5V:+^X]Z82[4Q# $ID@"UMA+&C8
  1144. XM@I0MKI,I(I6"-8LR3<.:*#7F#HJ5;D$*T$K6X2A9+(X]I[5T3K: :/I8;RP:
  1145. XMR+&UU,ZZU!YK4T9JGE6<@1&:_M@N2RB@@J<T:Y,!39K*.X J"\06;94K5C>B
  1146. XM5I*D*^EH:I6FHC4VDE8!62R3PAE EK,0.2)7VFD[:VNTU)V*@7<NDWJ"J82G
  1147. XMN[".0C4[RKGD:527YV"HH'-@N3+5YNI4GRM478_8DZJ*0ZMJ7>LE=MVJVK6K
  1148. XMDL_P^B_#Z@=MIA]C?0Z<]ID_OT#\G)\JQ'XB ?P)053+_FPMKP4)B%5F&]<(
  1149. XM*$?4H.:5@Z+5Z%) J^)ZE:(C% W!5V A7U,H?>6O)O-%"E$42D1'9HZTKRX4
  1150. XMB:[, ,MO!VS,;(IH=E96@5JY;W^D@O6W/+.U%DD'FP!P(H3%BB'F27)%O4HT
  1151. XMJ605#8O48U-JR2#();7LE_R!8M+"D,DBBY@<4HD-LR?636X_.#D&&FN-Q8QV
  1152. XM<7&*4<D:8RGK/+V4:/1*5EE.:6CSXZ<LL8NVT:K*%,M%$>OM2;AJ=N&R6<9*
  1153. XM<0Z"I:6TI?725MUW^AI'ZVSDM-'!6'Y:M1ER@:RTE $.(PW@ 0L3%2:41U(G
  1154. XM7%!9N:II%<Z$)R3Y2'.+Y:+<R^A,; _$\A9O #S= :[4TQK2*H)6\&$V?-E$
  1155. XM&T@]4?*I1DSHD#XA3Z)(&]SV>;*$5>:"UC)+8,]L#TJS:U8RYLT$T$F?*9V%
  1156. XMMF7 ]-9)O<E)5Y$G?45_49\J&I9I4S"O%B6SKE(60=W0ZRA'[T?ML:A7]?I>
  1157. XM.XMG9ZR>M:=Q%@0HFK*;.Y5OVEV[A"*QO$"XZUN1+-T-#'9W3.I.O1LF7RYA
  1158. XMC+F&DND>5C/[=#^OPF6XC/6QIE072SAY;N,YG'FVI-K8WYMG=ZS93+[-AC+(
  1159. XM5+-K"W=J4@U*IK;YXM;LTU,CEF^%M<-U&1;7TB9;H]\;P!ZZ=OLUU;A9/:.J
  1160. XM='6/P]88%5NMBB^YJK[DKN2V&7W7>M5=FQ$!A:M"D^,VT0G;7B!N@_V9=_5A
  1161. XM3E$)ZUJJI N6N#Y3" W:+%EH26YTR+ GM_MJWQ#K%T9EHK6]8U;\<MZ#N[<4
  1162. XMZX&]FY'UYNK-,$H9_:SQ#;K,EP=W2J-[>=:5WB6529= +-V9ZS2=[M[:O5)7
  1163. XM]-Y1'V!:22?JQ+1=5]-^74K4:8^EVHRI%K:<1:' <&HO%=5!GF3$N-;"/1P]
  1164. XM<^1QJ<# =JJ6M0Q<7;FG.4RV']BK"LAFRRK'[20NMV7U@UK%2]R,&$^"_%*@
  1165. XM!PW((_UB@297&]"E'[1-6"[2D2#!C1PX*,:H@$X=.B!MA<D#PS6N&!8GR#@P
  1166. XMBVMQ+R:0(. %@("H\D&'6E>2 PE2_R06\.'GP T>&$0;@?P\XTR< &(00U2O
  1167. XM!K.\MEOV"A$EIH6<MY9EA];('LHB0V2^19D(EM_JUQ5),LWQ?76K +:4"EAR
  1168. XMW!2=,'Y5QP]WAAI1'"QP*Z[0);05#,.:W V[=W-7X!U45.=,JF(+XT#:6F5J
  1169. XM.QC'[,2=M[9VZ$7>H<%@*/Y<7(Q,87F*,2Y] R?9(,:PF !R,51(@-UVM?#/
  1170. XM"Z)M08#%$<E6%$W"7"BK>9-II+63ZQ>D<H5>B1EE:4X^FSX9E_+8.&M39G&?
  1171. XML3KJ$L)HRFB!/M2'R5)^*<MAJ"9Z<9"8Q+-R(BCA#H@ +T@K7)19P"(2@SCT
  1172. XMDVX\5B@1 MW#+F"2"L@U]RJLT&!(R\#8XGQD*70Q>4!;LT*#J-Z6$I2 *0"#
  1173. XM1P))_"D^K"<X  =<2:)UI,ZX%IOENNF6?Q0!/46)&1B'5[:\J*@.7!ZOH[0,
  1174. XM#1]*1)G1\OKD 2" %^/E3RJ.#<)>[A=5*"$G%EX1//&6#;0(+P \7*3LE9!I
  1175. XM'F0. ]/X%97/SMR8+[/!N)AL(#+KYKLL*M8GMI#&QKE<T Q9D9D16K%!H64Y
  1176. XM'I[EWIR7S0N.&\VZ&5N(YN(,C+'%7-8^>KD@(-#47/I6LP+Q"]/K-><&V9R_
  1177. XMC')@L,T'(3CC9L4LG1FS97[,W$@X$Q[B3(N[\V+0S^#$.R]G9-R<!RH*+253
  1178. XM:R,%CID@SSX2X8'/!@$Y2^;0_(LQ,PJ5S[EY/Y/GY+R=^W-V5L['.(DJ8R=2
  1179. XM$6(IMC#)(^$X ^@1NIA]46\&'#..H&;6S;I&.^M"]:CUV45;9AA=L?"I04#1
  1180. XM&V$A"\]F/)\))#9EK<611<=#WKRCQ? 9,$7#=$:?1AO=4;DH9\ZE+]I)N],(
  1181. XM+4.8\6]=Q1\C&@/H(TT<7>LLS)W!X3$$X-NJ&"*65?I(3\0JS6:H]($1L/&4
  1182. XMM=NQUE*D-%T&(C!MO(;.E7I"5^MY@;,G,=N>6)7K<& VD"]5DB06H-[5V190
  1183. XM-E"++1<(^ $/)+5<6Q22;5D(".!/U58E@UMM:XDAM0FFQK]D$YMJR.")/^A&
  1184. XMWJN'Y@8_1;<:@Q5D)+TS?96O[5=RQ(]I=4&,&7!:O7!$>KRWA$ /DC52X!Z?
  1185. XMV_)*EN4MAHRO\_C>[B" JV_3<1G*B-+Z]MAC(9J%.>46O+(B@3BLVB4(K;;L
  1186. XM6);)WY<FAU\RS$7C)*4VTHL!&F_=DYHX<<V[AKUYL5ZK@'N-+ ?MA25&J)<_
  1187. XM70HX$*0OT(KP<V S&J/F<XV$42RM6XO!>C!P1!;P&W\C7.37:A-=#TIU;0$A
  1188. XMME<0UD. 8K, 48RQ6<#%SLL\I6%K7H\=I^7 Q/Z-);MDBV+%B;'A2LJ>R9EW
  1189. XM7;, E@VR378+B-G06&;KZYHMY="TT<"IOO @N>G $+$#PYPFUT$U 6O'HZ8\
  1190. XM]_31AI[,U1 'ZDOX:Z7J=,5K&M@1*^ICVX%?BC7NH.RV64_,9TUO$^Q:E474
  1191. XM^H;^3#*$T/JM/N;5L]K!4@]P>DP]YZJ>ATYSC^Y1]/.WH3$G9M7Z9?4^SC(-
  1192. XM%RQG>'NKU<4\EN:EHUG;ICA%IG];,=+9:.JC"S>!M(N@TQ(Q'M#MHQ=WSTQW
  1193. XMZPZFZE]EV8!M*W3<J9"$,*.$A[&U6D)@:7V[ C,%!7+AS<S@8-!8BJ$YX@9K
  1194. XMX;$VAU\(TN"1&*XHHL39XA)28EQ,ME"%$<@ B*MV_\T^A=CC .I>*ZB-0M?>
  1195. XM<.W14%=5-X#,IDNQI8_I$-E.%P<(9HH9%C$KP:?OD=!V(0TMHO_#(BR1&CJ'
  1196. XM6':I<V>S!(_'D#\U8.9(!#(A"/AGFMF]EM"*:5'*+I4%"2,%G"QD=3$2L$G$
  1197. XM4 \Z"5S(E!@P^YJ5]05EOG5;?ID'GB]0PD((9VC*=H*9+Q.?[N96Z":\1OEV
  1198. XM<+HT=T%X;24KB(&$#X8W<,(#PS'$X<6!W44&X4'S1$K^("E@9JP\M\ WW:J;
  1199. XMTL'4JX$_P8"%X 4H#@IX;C*!MV(/). J&,-*>210_%.#@"F^$/B 3='5^ILI
  1200. XM\&],C7:EN)QQ*1<3J8QQ'0 \J GH&>!.I#GN ."!8':%)97C0*6.X^^!TX!Q
  1201. XMK1Y/ 'U\#?QQG[)4!/E,N..V=CF:RP+.QQV2(H_C/F4&T/$$8,<)>23'M;MP
  1202. XMCR?R76H4$+@\YN2#?#&F<?(MV_IW _Z_P"* ^V__^X 9E1Z?+H?%**  ]ST3
  1203. XMS$K6UM[KB0*'VIFJAY->'Z92/60GF8> $ 2DP!&8 B4QA;R2!&!A'T),<@HN
  1204. XMD% 4G6TCKH74<5(6K^E_0-7/9":J!OA@)PJ8E!W7.S#K:*-5@ZI@3Q&/N Q<
  1205. XMOA5:#4G4:B_TO+5,-]= GB8$,W5CE?-O$P!]EO@,F*!$Q+*\/8-0"_GT4I7 
  1206. XM:KS/!?/U]%[GP-RK20^0\AV$!/0T&KK1\-/Z7*)C0V=]T:E5_%Z$WG@:,3O^
  1207. XM$XH,J?1!I)Y$.;:4!IR]1;JZ).D*KHJ<]'].0AUO$F+IA;0)P70MLH?/HU$8
  1208. XMQ(VYIG>%[?U&@G%!$,QVQ0P,D)E %<P)+59UM74H'<.QC/FJ+*/";.U)^ 6*
  1209. XM0>%;-1-B:EQ5Q!<Z,T <4$)4.]_??8YP#6I;%L_A)>N!ZR;.7M9Q1J5Y(B 1
  1210. XM\6Y1#:^3+,+%4W2UD)L)&TA[6Z):2$W@B@44[.VN(!P?P/$&\L"5"SEFH;*?
  1211. XM*9>4'W&&]EHG0FDKB(:UL)(JTX0J$F&9*"2 01(&UP^PHP;(?O%W+RK\?
  1212. XM//?:&#A>1G03]U*PY%?@-O6)M5,OJ9"5(4D3J4SVBN;53I8PV3-[]A/L;<^;
  1213. XMD).OP(%XRH(YQ;\]L0LVKQOTR#)T]P'3N4FGRB==>X?(6M#N3BZ\3XIYZ*0A
  1214. XM-YCY[DQZO?-H\@X\QF)VA^]86KS/N)1=!91" _D80T!QR0&EWO%$,&N,/\T]
  1215. XMMHM/],[#K;M+,.\_M[8W^,N72.Q2ZO5F2^W*C84V$* F$@B(MD%-L;DK2[(N
  1216. XMG-D29.N,)=IB>(GP&8$Y''"$Q_-K"W9=EMA@6AG :"RAUQ&$%W\2BL@Q$MOY
  1217. XM_+OS\VF6 +ZW-1\X:&C#)8"Z5HPJ#^C1U4[^KWWW..H""IM5+:#1=D%B^=1;
  1218. XM()?\1DP*^V^,@.T!9%8C9'I-JYY,9VX@Q_:"CR3UR/+]\JU1>2OO+S&Q;K8X
  1219. XM]+>R\F^+<S'M+_O=[1,^ 41;50WHEP]ATR%_F_&X9/<K8R/\GN>[!Z$"&6SL
  1220. XM;D8U8'L%,W">% IY.X\LJ8=VV_2G>CA_^-2KY7&RA#]VAV-SK'BGP <&SA"X
  1221. XM GV5IR2 ,V)V\H@J8V6"W63W-;#**N//K+<CC=G6/W9 K^LG'J\W T"3+ _Z
  1222. XM21C2G9SHUB\MY=,7>GFHZ ?.H)?UH!XRI/H\L.I]AJN_ I(FB7KW:;_8H8>J
  1223. XM5VH2(=J?\;IQV,? FF=]HC/UTH[&;E8:&^N[I6]6I3IZV;9ZK?"^MW"^WCD,
  1224. XMH#@_=P0^\K&D\KL3+;O'"]0C[TN?O%I$T#@9HVX0@(=VT^7L'HMLH '$ N+]
  1225. XM'9CW[[O>,P6.CWZ&C,2W,7^5"Z73)7/RGTSXL:M\[R#XXZ>QB5*Z(*5&#?\:
  1226. XM#?7:L&LDBZ^A^!7_XB.$C(_8#?Y8Z/BQ4=ZG!'J_\9%/.M4U1<;75!:[NO)I
  1227. XM1\_O-5ONSX2A+62S%SH(\,? (Y#2[^1-T)N]CG,.TI#96SLFP 2V#\9G"NV>
  1228. XMP1<?IB -D7ZP5/IS@.E_=[0/'E=OGO_W/!S&OM\6+]N2/?>A%-G>!6S[53_,
  1229. XM"\(96?57[F.!^%5/U%2)7S;QRIRXJO/'C^[/0#LW^^?1R+/'@R#C 7T?C(] 
  1230. XMGN [>X_WC/SY'XD.@620P#A#@ABQ(637Z ;!KT>'0%7C/;_&_^6RS>\H'OWV
  1231. XM^7,]\\;HH9\.HE"I&KZ%[0XK1N4;?;,!%*K?JLCI-P@@*/9+C$*R7 !_VP-@
  1232. XMH!_W-S\B4M()?-QLWAF=PM^<$[4K8)Q:VEH7IJ8U'36E%5C5^[]!KIB;1*57
  1233. XM>Y_&3&'6VC&<9X.G46WA$KC!*TP!]]^%,6 $=JT1G:?KD0$CFZL@7 !YI(+H
  1234. XM%VPM8O&2&8 ]J21T'JE@#UT&$>!$H'G\$NU*7P5ZU"%GV[KE?JA5:MX=T!JU
  1235. XM>2H3\[4SJ"DX0S !04UW. G-TW@M?#]=&^+2.2'5!^6UBBQ2QQ,<!SS,@#?>
  1236. XM*C(>M4IFPC(UQ@%4-@42R&$L@540[;92S$TM0.D%KTUQLIX4J 2B2ZV2>>($
  1237. XM[E'>Q$20!;I>C(>OYP4F$%3@8A N4&98H!;XBN1%KL(9Z%>D@:1<R%,0B!?&
  1238. XMQ%]@XW4+ @II4!O,0"\+N] 4."S%RW&"Q*4ECXG7YTRP*Q!?/M)."#_FF;8!
  1239. XM!U0P(HG&\5O]*%(0%62\.(*.GP^C&"!0>@G5L@I!$O6*WS*D\$9'R7C7GHP$
  1240. XMY@0HF#MQ+.Z$ 08&R0%2G2LXKD&"0: 6(;24=J^+RK.['"3CV3P"3+ '3QLK
  1241. XM:)(T)2< AL6&:1Q/0/UP H""#YQZ8J_L#W&+[%+5@21*"H 0 .HL0PGM,F/\
  1242. XM?R*+N?.</8)3@6F'//AE#AJ=E)-4)K4!&8.J]']H #EH$'PMWT:(()VP 0]<
  1243. XMI* @T 8<"Q1CGHT$1H)%@AA !4? N<"AC'QK2 4SO;T)8P H.!DP-S:?3T=(
  1244. XM.7Q ("7A2;1\0-\)92>9 7.?&S#P[36S!Y@7$8AYVT<"@ 2V?(]= XCHW1XF
  1245. XM7Y.!\JV 7!]%912P?#*ARY>%T(3P1\P7-92 $UI,.&8X&5.?&&)^C%XM7Z%1
  1246. XM@WU</"%@5?FX?@F?1&010EXZ7R3H!EQ]WT5'^.F!A&D(0S@6/'DEH8]"0_PU
  1247. XMZ <2:&0P@"P U,=K&!DI7^-4/1P$2P96*/6]?$:A3P@U (6BGEKH\V5];:%+
  1248. XMAGX<&"N'N.-=^!I+(5C4%'(A((#X5\I-12X@'@4-U@]W7/YA EH<G@:HH7$4
  1249. XMA5S?!I2\6 &U7E>&+90;W\I!<G0];?9*/%B9^&4&BWR2D^0%X@GXL ^>> O$
  1250. XMK!6(E39G!&>H<0A[Z)+=\A)R(-/%;0>^D7ZYW5TG_HE/"4 '2!E8%$N)',!Z
  1251. XMT $<G@&WF1EZ<E@1>-U!>)$'=!@L10?JS? Q%IT+)(43H/5$. [@_\$<P@$+
  1252. XM00\P<'P$?,#/,![>/VM?VT<]U$6A4W0(>EQW3D#JI72= 5<<QG%\9"1<1=W@
  1253. XM'4X^B\8I!Q]2>4<7M>,2U(>,EI.& HR'@5)VQR"*?W,%O>8#U&%C%_MD%BQ0
  1254. XMU6%\>!T"B!+BIV0"#AQ8@*V7JSTW$AG' <P-B-Q=R4(LA5V>%JBE_I42M-YM
  1255. XMZ!FR-)*"N8&JC(:P3WXTE'PL9L(JR'*A.6%2]18NQ8@D"6Z(Z[$ =!XBAMN)
  1256. XM;^+0!@B3&(?^1C\4,?0%!%1RN..9!2R "C >&G!^4$&0 #QP"6&]PH65!E36
  1257. XMHU#S98@$(G88!3YX]YUU*$=AAR-4". ]A(D!R'=(ZSB )@":R-W!%?46BB@?
  1258. XM&HAM ()X'^:'!\=^N%4H"_XAG(@DO8<K8FD@=FEH@ .&Z"=NB-V=WC0A1@<?
  1259. XM(@@0(M(*(V)$!G>8B!+=I/@FSF&-8AGP*))=K$9& 6O(&K0&530E8FPI",'D
  1260. XMG_U]D8<MY>?](K:4C?4,DB31H 9(5Y T6]&KJ)C)BA_:K=@GV8J.(:]8/_ 4
  1261. XM<X,H5(N='&<%"] L4HF?%)>(TJ$ TR*L")K!AQ[B)^7UV7-F0RG1!#0]7QF#
  1262. XM5@QE@B1),^$X% 1DD3+F ST&],?HPBTL*R97!<>2+&C32LK3.! ]E."\,CGH
  1263. XM'Y;@((.K>$D^@B.H\DR$C</P(4L$!M.664!2#'BBH@LP.IT .L )(&<X#N!B
  1264. XM!K,PK@ KP [@U$$2GH)50C&> (I0&L,MLHAVV+40DID%LI2;*#%&![)>FL/A
  1265. XMQ8H:XJCHX]$QPH3+6""2! >B?:@@+HR^GDK()IYW#Z+!R#><C*5!IK@I2@JY
  1266. XM&MF1<9 D$UFHJ#-N6NB'I4@ANHB.0X3HST"%5I=T1Q5@B\(B,+8MEHI]E59H
  1267. XM-.H%I<3E9"XB+F&))KC-J#X-2;]0$_03CD/$^"EM 9%B4J G1H>V5 S0!8 >
  1268. XM)P 7  .< (IAV8 TFHHMHBC6 A2.4</AJ#2*B%62TU@BHAU+7<Y8,[Z,7U?5
  1269. XMN"$=CJ>B71A353,%P1" I& OX8K&,3<BC#$#?%A'T8R\4:^XZ(&-SN*L2#9^
  1270. XM4A(&XV@Y\DJ@!XGX*5*..HXS%DZ%:V]"15816!QH%Y\'/&!<Y,4X,HN8([[:
  1271. XMB[C2+"ACP!Z&Y#PP(AY"5OHD$)<,;##?"8G&%?0H/9(6[EE+L8>Q'N[9"%A=
  1272. XMN&</QWS''E8!;)^&Q,DU9G.?J(<^@G>)XPD84!%<[R/5\7 L4!5BPR@'8(CS
  1273. XMXWSGZ\V/M=C22 =TBF\'U @J+G6:8_XHG/@ \UW, 3_2CW:8ZK9_E2E]4V/V
  1274. XMP)P1@@M5,)ZY9]GCD+(J9) )&3[Q/6P.W"-M>"Z0D)/"L"?A(8F[84L!S\5S
  1275. XM7AZ3:-> ;>5;#<D[  ]0XKAWZM&/.II\U]ZMB=C=>??=J7=OF0 9)\Z)"B';
  1276. XM9Y^UD%$-GBCW 9&5F1 YWO&)OM);@T3^*.HC)<0^,@&:B/?8F"$Y*$">>$0^
  1277. XMD5)(9%>FN%0:)+; 00XI'Z0&^3:*D)H"&UE"SFZ:P^>C^<V&_L2Y8$="D;@>
  1278. XML9<D4@\SI%150SI_=YWI1ST0A\7A;F@^OG?37GR71 Z11^#0Z/WY )(D%]G>
  1279. XM+9&S6YCH4?R1@X$%)$7B=X9(EG9%OG&FWEN32;)WKJ 7R?:%D4="]#A&DA9F
  1280. XM9"29WTT*79]* UN5*7N8K;=!6BKMX&( 20TEE!EY-ANDD'UD%3D8&(FT#EPT
  1281. XM2!9Y=-#79TA.5\+A(ID?\9".) ER1K"0H61@!T-&6WX13W%&@)(#GC>9)&J&
  1282. XM/\F0@S,8.13/&3.U53U7Q'6R3K(@ATB/<U6)/1\/)(9(6CS>#[F Y)D@RP<1
  1283. XM,8(<DCK$78/3>!Q@85]#$  V'(_+:!PZ3%&35#"RZ1<!$?"PHE$/9-G_0^7%
  1284. XMDQ=&+4'/4'.  E^AKY +\^17\ (0/S<(S0-2[BPLP;,R1\X!<P,[<<$Y,F<2
  1285. XM)]=0RD.5R=I3[CP<)649D 7(>O^/)>)MZ)3])$^9T; @6 !0>5.6>_I$M]?J
  1286. XM,0170!:@-;QZ2651=E/VE($*Z*$ ^7@1Y2;V__24L5Z?I5\T,U?E4?D5A'M3
  1287. XMD2FG$U4/I<39TM.0"QPE]JA2PH@Q)9'"T! 0V*-H$A%(+@J$2CE\A !?I5D)
  1288. XMXYP+[J--R?9@DH)EIGA0(C><7I=7QY65+>59.5:&9#K$/A?7M&K!0V 96?J4
  1289. XM9.5A:8D\/)DE9,E.8@&=Y4XI#^$!,:-FR4YFE0/'Y<15@GTV!8)VD F,BL' 
  1290. XM9ACD+R+';S<2J)1!95R34XYQ2J5G&=<L?IV?MP=5_I0VQ?"QQ TY2(X6$"JT
  1291. XM 5B ^V@4]);-R% )7,YKU*6V9^YQ>\7E4TE5RGI& 8 &>D!5N1J] G)$..8E
  1292. XM!-GC)06@5-5(*]XZUX)[V5(A7QK(K2/KX40ZE'A)5%J6H=YO%EL6!%\&JI.6
  1293. XMG!(!!'$!)C4=W@;VN+%(67-)33E\N!?)#O'#Q?45"P%!-Z]!F(_/A/AZ3)A"
  1294. XM 55H2$$!.P,>@.3 %1XA3B;JI9<2Y@&Q?_B.!!3P4.VM)Q'FAJEB-CNX64K1
  1295. XM+V@B*V4"I^_(#^\?7Q#FL)3!1(GP%70)@LI(H'0T*RJE6ADO)G$HIHQ)8?X?
  1296. XM)L"\YC1@F'B/ADD8<)@7H1L"!7 8,H%"4%@>$*ZB*(0$^ M")A+  I29_L)"
  1297. XM-F;&C&!FMG@%D)DS@>YP9L:9;R8+L)"]F3CFF=AD7IDS9L[W8?)I(V:)B<@9
  1298. XM#6,FZ+%GM@%8YL.QD-F8*T7,.&@^!F^FH0E06IF(9I^Y:+:88!_P@#_R<81F
  1299. XMB79=5@]WIJ=9AP /^&7 =!(4FO\D8$(L.9D=I@_ >#@7"%/P(&1&FJEFC,EG
  1300. XM]A7QHU0 :\:,V2*JB1[105B(JDEWL#+I96[IY;27U8._1^[TD[EBLDF*37J'
  1301. XM"'S9 E2-:B;)@7ZXF9XF>5DEI9=13;&Y7G(@\67U\%YR/,UF\& L0A[2)K5I
  1302. XM-."9Z$>9"7KTFA6!,(9FLIETYKOY*D::\B:=:6VVFRD.X,-<UA+.Y8H07?IH
  1303. XM7)>H%VJ^CK,F[Z-O!HUE2"VV6*Y^_:5CZ7U,EE]:&5!H6ARQ@[L)8,:98^80
  1304. XMDF,B- 8@_?%3#3GRP[?I?M642F:)68M=E,'#BPE5!9O)3K<Y:1J;[&6XV7)V
  1305. XM1C[7LLF_80M5HZ1GBD6;Y.9]N2BNE%FE:)AZ71(O@*)'\QAV&M_#2;+  <V6
  1306. XM4%!+,'U.YP,H4>*!UN15.*'T?E3F>7DG5I9]3GLXA&B4EDA<&4P,'(#E3;E1
  1307. XM#CD)Q+.@TO C<*=  "CD,?=(-?%)Q)UPYR'C3( @@8J9H%S\#:#/%Q,PUG\%
  1308. XMQ"U8+HP&B1!J.+RH0%#,<F%"1@3RC.()!;D+*DI><)U--T:0=9.ZK"?;Q$(P
  1309. XME$B>OI6*0BB$&3>$ZQ*AB"IZC(6"P7"'+L )-[3$#SN)\(*M?"@<GE? )OU4
  1310. XMX<R#@ZE(0GZ9#I.E$ =;3.OBI] K;X)!(/J,+5;):.,N'&382R^A0RQ!)<L9
  1311. XM4RZ(@E2!GG,%A2C0V\XRZ!PD>HY44*C4+I#0D!*FW"S="1J PC@E.(NO(91P
  1312. XM"XB0.2&NN1.&@=XR&+0 @I!3$M[(#V)+1T(EM $]2?PY$G@L\LU.\FI!!@8"
  1313. XMN>;9."PU8+Z >/DHX5@V-WVB*F'*O, 2>$>[Y-/6T81 :T539BV8+!\#.Y%M
  1314. XM#)FS9:203I@$S<I7D LF!>O$(/-=N NKP5 B \0YS1#?Z53  7_G'&#W!$4:
  1315. XMB8$B,9Q'YQMP^('!1RH,=I6#1@PMP?5GAJ  ?\_!P<29)T[<=7-"&7%T !)'
  1316. XM0H4H7D,R=$+)<3I,4"'';3%[C&P05,AO0^@.ZA%B 7^GD9'D13C?!9T5!+@!
  1317. XM>4 56F .!G^:_;FMA%0'0?ERKMP.*PS/8C3@H;Z&U^!)O UT:.Z'>%:A,$X>
  1318. XM,!-L!'\G(3H%&*(U5PD3ICFBE2*:5(;.A1)1:_-=Z%-K:!OZO;RA/)4U)(>N
  1319. XM*/.:'7JT\*%;#@NSA^(-WX4?JD4 HO-:(FH\+:*'*,$QB+ZBC"C/%)_8HA\#
  1320. XM#)5R:C=80'^'")FAE2@:ZFNHH6RH&^IC=J*2AZS7BS8%B"<P:B%9HKX&)EJ,
  1321. XM;J+'*&VDBUY,HQR2M!CB82L-"#(%F2>]3B@C N4,V\I*4BE,-^'HSN+4T"6(
  1322. XMP<< VL&4.TT/=,6P)Z9+Z>FGA#,)"FJ7>C8PV2?S(E2Y**,-L?)Q0#O+V\N2
  1323. XMT] N]NCRYK$PHF@ 2A ?%"J(T# XN'!V^E(/A$W4#F* O8(X@ 6>B3D:@4HN
  1324. XMNV0309 <613-O"B@-"L)6E@7?0TOU(0J 15\;#40N2 2C'9E@ )ZD* F"49C
  1325. XMT*@L$#$H$?&-A@OAJ-VS]YAO%.!TD4;T$$"/$?I7+G%?'1'4A+([3V@$9_-1
  1326. XMH7?:%>I39*'4PQ:JCP8676@9\(4>!%C 3WH'!*5GZ/83!*@$,T$IY@[N/994
  1327. XM-CKS'01S!3>:%R"!C(C\U^/),\@<G<8[U 3V0I"!34Q7R\/@<#7P$PE EX*X
  1328. XM="0B09I"%92"%0$26'=Z$@Z+,[-^4@5Q"[A!F+$3E)EJ1Y%D.''.UZ8 T*5W
  1329. XM#ISA .(T>J5"5VQM5QT@\,#AB$^6 H' 5R(>I*G0H']H'J*?I/F,[CH$Y3P7
  1330. XM+]$U^1$0JA=L*@=D5-*:[I4A@@*A5Z8!KZGM: 7Q!.P$D6"/& 0SI4O ,P!0
  1331. XM(."WX"HL96*!0W(N3J271W+'>"EP4Z&?V83$(:A$1V@4'*>OJ0L0IGP!X ;R
  1332. XM@)*E%B=#RK RU$HMP\M@.Y8AZ&EQ^B:LI^UIS_">G@[QJ>I0GRX!MF-^VA*\
  1333. XM"3"E;/ %A&M620]P,<6F9L'^D:#J"PQJ8) >7DPDU#6S10 FI@FS]Q&4?23B
  1334. XM:+"A)@<674S9WZD7&IELBISJIR[ MQ:OD %?0&&&!UBFH(?K\3$PBRIJ>OHK
  1335. XMZ!_AS,!!(CH15LI><0OBJ*XIB]JTQ:AJ%]MU'A*IQ.F!>HEX2>3')9AJIH\G
  1336. XM@66I85FFMF-TVI^"'J]>KW,[O'I3@(GJWUFH4*6-LP;4&#/J<C%57@$!'H]J
  1337. XMH5Y,KYX%TK*AJ6S7S_#J-017ZG)A+7)=L)2F. 1HIV7 @M?:H"&YI2IIA8" 
  1338. XM9^/>(+AM!)M;,$C'_$;X%*%:I<X=.8$L02<EJF:#HE)H!"B.:AHCJ<H!;XUX
  1339. XM4CL<"9UJ%:.E\@RE:A)C ABH.L&@=9=NIQ-)SE DU&[.6^ @F'(+-$^ 1!^F
  1340. XM7E >!AA_P(=3Q/0R<)@ P2H.@0'R%,!JI,8J]4O(ZK&33&P%LD?Z\ 7D3\VJ
  1341. XM/.034'>>9GM8K28WTATY@Y.XDF DHR@//2VI)D]12G@;0PFK8JG8$*7/N59*
  1342. XM;'@='C"A@)9XQ,@<B=.<200#Z &A_G1J&:UX!QR%Y^;@%'^4@9O8OKI_*'H6
  1343. XMA[+YKRYZ/B<&<BQJ(LEJQ*F,D %[G#4S%<@410Q?L'81!SUB1]+M 3WXZK'S
  1344. XM8A*LVZIWE5AL$^RI\01Z7!<'6<G:C!"70@V7>@60EG9J5+FF2AIKJ@E8L\8X
  1345. XM:P AZK*:!E JC4H)Q2<_JWHZ9%P-"I:V*JX^>VP '-!%@@!3 J76!N!/1(0(
  1346. XM@)U"&SF'$K2@$ J.)WH!,&8;1<>&%:YI!9U'HB6#T@%[A:R3^E0>D8=N^#&4
  1347. XMIN2-VXI>R*;[1QXPA* ASHQSD()@IU_!1%&>*0;>Z2*9!,@$,L1UXG'4BMCI
  1348. XM$F/&])^$YX#YE^!_3D3#8KBT?SD);$#SA)P((('I)BR 1Z(#2#"$@&372LDC
  1349. XM7H+H8A$&7.F X"D/F&7^@#O?];%3;1]$XAK11IB3,23=)E/4AIVA'I$;2F7@
  1350. XM9'7WCXVN?EB[^IU6A*JKARG4685%G4UQ1O22LVOG6KM.16>KWXEXVJ"V7U/D
  1351. XM6@Y:U^>0<U*J50IFMR*B9C.4"UQ)<F*/#YPEP1>XBV&H*I&KNHQFIP)Z02U 
  1352. XMU2I6::F\KS[>V+$@'18]:6R3/V@_2N*&\U(4J\[?D]J,/*L(D(XTK4(08>0/
  1353. XM8:SJI@(L9+!V]3)SP!9PT<@TJ<S?.'"8,HL,!9O1'!4*;  K5 I"6T#O5SAH
  1354. XML"R!!7OWB+!-32K#P=X0'FQ<\\"2J%O [,!KF+!UP_,S9'"5 "P&V,"Z "]L
  1355. XM7[$%Y*'6BPFK^Y4&O0X0V\*LL$"$#OO!0K 2[-=0&V _0JP$E!RHHD_LU_"E
  1356. XM(+$+;#NYP_:P0L$/ZVO$.E$L$5'$?K'G"A;;PE:7("P%9,7F 2:L]<.EK+%F
  1357. XMK!+KPH*P'A 4"WJT03$E]A/',K!++ R+/<@$86QTT.M@#WNL%MO'^K#80Z$1
  1358. XMR!*QO0PA.Q7EL'QL7!.B='+ $PA2R((@.RQCE\H-8D3$)4M$9+(936Q'R<)V
  1359. XME9TEFY5VL'*L@7>Y4++$7R=[RK*PJ:P<=>%U?I2LBM?YF;(P!2H;R=Y]']_2
  1360. XME\KYAZE7VMKN>;+1P0[+^0DUK"QW>,NZLKDL++O+F@: ZM:Z!=6H7R0Q6QKL
  1361. XML(P'):NT-K-)[#/KFZ$!VFPU^\IVLUHLE<=XV)8#A[]GS4(&YJQ^X:#="NGL
  1362. XML_ES,K.0;#E+5KTBXYDJ)17L63#C.)O%8K)4WB!23.JS=Q:<51JLLRX E0?K
  1363. XMG"N@QT)[M."R]2Q :XE</6@K0SMM*3@#C]%C\/2SW.P_^\E2>11M??-N$CQ8
  1364. XMSVI#S^JR]JRRRMG$.NP31DO25K0/[4GKS*:TJBQG(])>M)=+UG/0^K,!+)5'
  1365. XMY9 %#<Y->_PM.$ M?6/2<K01[4=+B7$VII)3@-,RM78.4HO22K22K#HI6,8]
  1366. XM5$%;8]5NEJ;L89$JNAJKXJQA/IRM/*O\=WT2$?VG#"'CV".T RM1&S0EZ-$;
  1367. XM +>("O,"*R$Q:*8A'DRCG/PTY@(,&BZ1M2?K&N 1]:>&B_'4I""GB8CS1UTI
  1368. XM +]$?^H!T@LJBI.X+R&G^5)"*!:*>=0-97OIC15;*O0!IB*G]<B3!F6"&9TM
  1369. XM5,FS$J)OW*>W$^@NT6J8>+BNMK[>9K;:JGU?Y/:AW9AZ_5%@^P7,MI/(:OO]
  1370. XM"9MY:SQ$B?F*YJ9P.UQNET[EMT=+S#<%@M )]@T?I2V8&MBBMI[>&O8OZ;:2
  1371. XMT, 1V5JWQVU3V5TJM].M\205B33$1DE3$(2U1D!L.-82$91.$LBNHBYSZ4$F
  1372. XME!@_S(^;8V$D%A4,NKH5Z)']!/NF ( @[2W1,$-4.CL(&8 ;D0%VJSS73BZV
  1373. XM)."!^_"\%$QGT7=[>'P@7R\G\NTM?QL>L (8N,7>L9,';+AV:^/W^I4&@4K:
  1374. XM>EW<#^I!2["0_"_T*.49>!5>SB<EDVVX)[D+BEN<NH'32FSBO^0WWV:30BZ8
  1375. XM+"=*TW.X;':7AS:!2BP%;=(^81[DKR3NN6#B_@TP0G'J$>E*"6[SAP$NMEX&
  1376. XMO4#E&J%9[D^E*UVQ6:=E&^9%>?=J>#7G99,%%$X3K#UY92ZXF@+\ &=%"J #
  1377. XM(!LZQ,,!=<8U, (9(*>J%V7CGLH56)?>!K;@K_I%*X":^['9CJ#8P%&98 L*
  1378. XM*Z%KZ#X1MF.$Z^[M(!2N+VOA>D1FP)<;XJI_Z^WNY^2F!$/$BN#D*3TL+@$A
  1379. XM8/:8!J:2TM9:?N',ZO,Q-"5H3A40?NXK^1'N(IYL#JT/=UH:])^KKL^!FT0D
  1380. XMJ0XD\=+Z.U^?7,*1S(.DCT3Z%Q CGY*4D@+5NJ/!K5N97!."BFJ'2N ,58.K
  1381. XMPM8FNRB/.IK*L!,X#6&*M3IE$PEU%Y49N5B6B&"/@)X[2?_9M.%[X(09 UM-
  1382. XM!DSN8(FV@KIKJPXAB^!&"6[I9XS\$OSN"$@O9*03:[[WYW$@*T# &N'5:F+ 
  1383. XM)M;H(KP-ZXJ BM608NY)2.8^GV;NH=>[)DB/;@%+Y^HU;BZ<.\7-N3B-G6N)
  1384. XMY+E[KMI0+4Y%4*@4^K<=FHEF5PA>V+KY0X)K!,IQXX=4$,2P!,J%M,M49*-9
  1385. XMJ4^1\Z(!/6_-RU0$N@-'1BIAM  =KZP']/84,L706P0(!W1 T;LY'+TJHT=R
  1386. XM)S6]-L73*\?MO%5OM&OTVA2+;M*+!BR]7&\EAUY<<D&O3"$ZY@Y6;Q[ 5)2]
  1387. XM'LG9*P,PO3I$L";K(;U:+]J;]QZZ7:\E!TO*%%,OSROV7KUD;];;\/J]'X/>
  1388. XM:U/PO1EISI7V(G*"[R/K4XPL(0(: /;&O7.OXBN*X1J3K]=[^48L1._A*_<F
  1389. XMOBV V2OY_KV0[N.K^-X!C&]) OBJO7Z<Y2M38+Y20>$;]LX-8R_P0/<VO*MO
  1390. XMXSO[)@"0[];+^E*L@>_:JXG@1)*N+%+IYGTAWY2[$6RZNF3VM[Y0$4%!Y1%X
  1391. XMV@O7*@'AZE9U0Q9M>4Y8(84MQ:*OW#0Z!*^;$KBU%=P8<.2^E6B0O4+S;@Y-
  1392. XMR11T/T1C&4WX^_WBG^ *75(1H#H'"4S90Q1O0]8C 9,B)AVD\3,Y5"OWX/""
  1393. XMK=2>X /9ZN/VOTO0\LFT. 2[Y) YE0V#&/!,4OI$"JS$\@*XYD=3257RHRRY
  1394. XM?RT@<?UBJVQK]>H&@""T4>4Q >)S%Z!N6HR8LDP>V%9Y"+P5@77I'( @QPYJ
  1395. XM^4']EC\PEX13)D@$+T%;?$5X((AIH?!N($TP$NSPXISP5V75!*\ $2^E9P43
  1396. XM$;5:Q]LO51XF+YY+3J2\N@,UA@6(3^*# O&,(4PAA50*!1O!0UZ&F6+BFC+O
  1397. XM%S#_VKS_J]!K>VJ^&0WGF_S6OFTO53#T^L' @[>Q B2]L._=&_I6OH%P"0,^
  1398. XMH &Z+R%,_+IDB'#P*_NVOK0OVPOU4@6;K^G;^1["=6_LZ_AFPH,O5?#V3@J2
  1399. XM\$-F]HK"PZ\AC BSPI@PY:O\VKY4023L"2>^H/#BJP@?OWLO):SU6L*CL"P,
  1400. XM"&_"( 'IVPGSOHBO[^L+ [^@+R_\!VO"<ASN6_HBPZ>O,IP+?[XJP.3K"O>]
  1401. XMN[#P&PN+OK<OZ6L+4\.?L.K;#'O#R&\AO P;O^BPTUOY^F-75* B/I'!Y64P
  1402. XMVDSN>N83HF3O?0QA<#."\A[ ?:[7MYGAPW>N/TQ.A*FRP8E*EV4W9R-PRIKF
  1403. XMJ/JID-%$V(Y&P3/6VDVH"^J8"GJXEA0Q6)H&/\1%ZH%*0@5V^/!PRP* J6*J
  1404. XM>L$"F  6L>>XV>[#98"SRC8P>S,3RY R5 'U%A; _6*_P:F^-!+3=F!P/LQ%
  1405. XMV12?JJ'Z-4" 0L;T"T/]E5-H2^?9,@%/@-3Z!,B?#Q"4%C-@ 6DP0FSO_L00
  1406. XMG;$G%+=*@0HA>GSX!2W!4MQO'AQ%SI#5J[@!:X-44 NYCVOP/ 3:/A+X$!#\
  1407. XM%>^]=P!-H-:N 2DK>S!PL*RR@:R'P@:J40E7' .S/@1GQ??9,K=- 1\@W0Y9
  1408. XMA.A&P!+GQ=>H/];587^ A" A,2A'\M\ IEX(!I+"CLG76G^6H.P'20@ELIM#
  1409. XM 'FJN M$*=',/7/1G+70WZ; L)]FW!(H1P,&9'/8*#-WC3F$)GD/>62OH]M,
  1410. XM,R]%[)KDM!%E:<<G$06W>PL4$ 1H.S/3$V $# $5A'S*S\0?.<0!8068>_O@
  1411. XM@H>W"I3A)/70_'['T0&E.UR6,TQ?<DS1\1_@L>^J2^8%V9]MO'$D9*2N]5@#
  1412. XM=66HSF@\]<S&QE5\+/L18G"&;ESS5 2],=?Q&^.1^H1P;/Y8F_[&)I3LJ BP
  1413. XM@7EH+'"3VH='N$VBD0-><DP>EP8[B',,':</TC%UG 18QX=8C"10+9DH@/L#
  1414. XM(=\_JP(YZ3Z.D[=D**DA+\?M,0O@(1<!T?%T7!VK#-?Q+@4[$'WNWH:<>DVX
  1415. XMYS%%DA[;P]M;0%D>A\?O\=[YU_T0:(#9X2S)?\S'F.$CDB2;X+RK -2[1@"4
  1416. XM+"4[$0Q>8GOEXI!IS8^'SZE^!1Z48VU"D^'/>F2;>IT)4AI +R4 [-LN]Q:[
  1417. XM$7R+"A"NE3/P6^+:CI(+O!-4%ICX0O6?#'0F/9@*WR!EO$I>O6!M(-/=/U/<
  1418. XMQ9178*? :RWT NS)TA(^H5G$AF=B0 <]07;U%J8<(+URM5Q0$LI=3#F5)S=J
  1419. XMX4*3W/UXRAD%HC(DMRIS/J4RL'#+H5"I\BR7?2A7!=S0N<N)RKX<;0?,C71K
  1420. XM6TFGTVDB?AE9D0;T #O%4Y &\ !+')3<$)0%'J.<S#&ZCW8RGVS^370XW>5R
  1421. XM+)=WZL&8P;_*>OOG@CH'^ 5E !PP5BRG3XI.1RA"-UZRY,/N^'J_LE*@+0-_
  1422. XME2.Q_(U9=#E=^E??=<DSQKAL4Y3+P *ZK"ZC .SRQ_  O<M=LG 0)<O+71\\
  1423. XMO%*R+#L+FW:\P&XT#TV'+YL[^G)%9RRG?]4O^7<NI'W8PFA,Y.ZZ_DWR-KT)
  1424. XM+Z2+"=)_,I]NEZ,2,"T%.>[3TWBR 0X)@IOJX"1GA,?XJGIXTQ&Y)N9H!:_)
  1425. XM.''7$@1IC@%3J !Q[F@@L].D 'YM?RPR+PO@D4<4;=5O"J[V9%5]3U<S>/1(
  1426. XMH@!=LTJ@[J%0E C?-PQ1.^V?-+2!_+8Q)VV70_TXIE3S6S;3?7W?8A?*5G9Z
  1427. XMGW'+XTR:65M(6+\E477#$#"A+%J("#K)+A(1KA <(*3F#K*4 33(W*L"*,FH
  1428. XM57 53D]/L/ZZI(@!/%$0F)!Y9"6#NC@+AL'+ AH\!K\@K?N!H3KBH/_7%,4^
  1429. XM#:9!:JVPI(:')5&NF(;![M;*3@0!1@ *(06<S%0!]'&O4A%-QV5:K9@'',-_
  1430. XMQPDW<U" +?(%M 5. /!@ VS)M''2:  MSBWD(79/9@;$#=>A3V* Y"/'\R:S
  1431. XMQTMR+%;7&)1@IY9!$BJ4?TT&M-W%-0\EF'G73<].!&F@G&ZH[3)QX)PZ!8)>
  1432. XM$M 2O 3X+[AQY3&2?)F <@,BQ9A=17E36"%?@*X40'\!77$"S5,DS#%*9L K
  1433. XMK 3&E/II0+\^9P06P$S5#V<$<EF-*4PJ8#ZV7^4X$5?>-K<A(,/"2 ")& 0J
  1434. XM0)N*K7(>R/)-N0H-!JV0 00+70^RT&:;A+H >\5] @<H 74 A]>F&BGUUJ0\
  1435. XM=,*(I-V78:_<JZ@S&XH%78)@1Z(5^^00/$3N>"Z(3\"Q/F$8\ZY%Y5<,-1D%
  1436. XMJP*RH"PP"SD2#, $)$K(L_+,/&\$86GKI#*X!46 %*!'2<;DV_[LL)@ &G!X
  1437. XM_"6>B5-T_ P;D$+MX6A;1[L$[@(I= 6DT>C(\IPRY,3484+P+RZ43S0531K 
  1438. XM4'UT%0VN^LB_ 1$7?3C.V<;_9X94TJ3!AU<;M "!=#B3.'\:3H:+<D8,<8=R
  1439. XM=0%*1\C@*I1Y,84 /5WQ*IXRRAJA%G%*OP$3W]A\BF@8/O)F!C];TFZNQ70Q
  1440. XMU0U2@!62MNJ<$IT)@$&?"QKT__%,TP%9@#=U$)02K/.M<M.,@U !A+8>QSX>
  1441. XMA^*7+'P7I.7 (10.&E82"M6)&$#A-!DP3OL:4J6B&V/DA'8/2684K--94#O]
  1442. XM3F\Y5P#HD12>&;F:/7T0X--P@#[-!GP7',3 \4\;&AF9)G)/2X7L]'.1EAE 
  1443. XMGT8Y311#U/FT1.U.']2^!FEI<2S4A:%?A5 $8\K7'X=1%]02=>SS:<33%[6%
  1444. XM!$YKU/MTS2!5?M0YH5*8D9'4HA2J3-/LEXRE*NLK%F@MTU04OB73HL(R775*
  1445. XMTQPT-"T93]/5M$-]33M^=27KC-DQ!<H)1$%^J*^'V4!]4H?3*O4;4$Y'TG[T
  1446. XM%@ #= $FM4L=47<%$W46M%*G(,,T:; %^(UE=?%Q5LL'&S4YS59G09)T&[ %
  1447. XMR !D=1RW5</4'/66$T^#U3S$%C #]-7J]%^-5M?5OD8_/8FTU7HU#8!8/]1F
  1448. XM=4:]6,?4CO)=K3B'U37 9 V6-M)6HI0'6<-0F)V^6CZGR8!;)79$%P0:ZKF,
  1449. XMEY*45@BT\K%1U0<JITQ0&]1V-2@\35>5N6QEC5)?UH&U3.T+,]64<E3M.(<6
  1450. XM5C6X@56392$ %A %;"L[#?4L(R/)I@1+(!D'T)+Q 'U=(]"Z$AZ-0/-DTY1!
  1451. XM8 (X!PFT9$Q>=]<3M$-Q@*:V%]->UBDH'=D&Z_SZ:#8FIS=M1$O,MW5*;0"9
  1452. XMJ9"(J[<MO-"M7V\M5UO6\D'L8Z9^U0NT$"Q@IR%S=5H-!YBI@_4"_? P7]GT
  1453. XM34/Z6"6D4N(L76?(2+*4::,N;YA=(&H0+*I/X!,H9>;7:'57K4&?V(IU@4U1
  1454. XMOP%-]52D"EW8H"H!9$,7L!SQ/^8Q1"JK$1BCK+2CIX33'%4-KTCH<Q,$A AO
  1455. XM0*>2(<&I)HCB RS8/:[E1N!")P=':7=W&5N_4S2-_<#8SMT<3H*04C+Q@TA@
  1456. XMF?Y_9T _:F'?@A9>%3%N$!WGA&")=. /9DI% XO=(+VN)0'$-2L43.QCDP@I
  1457. XM30OLTIM",4R!7<NZC-DZ7=1<VF#9TS.-S<]<S\I!]DPO;<^Z:?=\Z7S/S/$(
  1458. XM-6/?@C7T*_0 36YG<*)]"V[11?'<$4!7IZ&VDS-J0X"1:HLM3@?7M4$TC6+3
  1459. XMU9BU&Y %N%.O]JK]75P!23*#36#;VKZ&F9EJ^]9<]7X]9+G:JK:!/63%V!=3
  1460. XMX]5@&]O;!"0"2->V'F$FK4F/NT0 ?_*Q[*C8*HQ)+[RD+=OCK%TD!Q2'9'<W
  1461. XM<P[*S$MY+JB[3D&+TGQ,92*+.!%TF"Q*1[A]SR4'7:@\PQ1,H.G%#Q!N)UH#
  1462. XM,N9A !4WM3:SO0; T%,1'_UOT\CA,VW;/GJ$Y%"3?2Y,V4%!3[=L"]O-M@GB
  1463. XMZS7<W VPM_@$W!3WP W 5(UP3^/#$/S75#;$[-PNANWUQGG!709XZ9G-.+/.
  1464. XM4?3%=&D+0#:VIJU5YM"6\>JVTFA_L.J>X^YB64BN4S!F=']!FM% P1$RR<'/
  1465. XM':[=)K3?O6)Y*JYZ*4P2/U1_F_9!DH"2+EX! VIH_[>9L>S'_1T2+K!5@W%O
  1466. XM'?22E6L#D\F\74#C:DP!2$ 0  7@!5'AOOQUZW0G%*)"^Q4G8@#I,'=OT8F?
  1467. XM8C1W6R!+=X\6/%A=/UFEQ^\Q>CDG9+>EF7T.Y6YX["W>?S?072!L!'-WH.+>
  1468. XMS6_\LK=,'%B8T%FBC//Y@,=KH^P&5%Z,E"\-EHI945;T$,'B )ZU('I>,40]
  1469. XMQMMF_,& 2S%5-H/Y%?L0\&#-B HWR/H$?2B=637[0Y5M8IT49MGE&G>WFL=E
  1470. XM&+X1*Z4_!.\:4L!WLMT/$=\<659D39MF!<' PYB,!$,W4C!-M+J&%_:(2C"@
  1471. XMK<_OU&$52NX">D%2G(Y"]5-M"7X/PB0*=*[]TH-#!#M6\[#VHZ3,V=C?78 +
  1472. XM\%O6(?1W%WM_UV*TF"6E>HO5_?>+&0842/IW_?U6]]_6)0#.C>S?#[C__6YV
  1473. XM>0%X!.LW?K/OII:7@5?@+R;A@2TLX$XU]OU^6R7%Y/P]@3O@?#7^C0_QEY!!
  1474. XM<E: -^!=; O^?QO@%'@+3H![X"MX#9Z 4YPD>/L=H5'@A[4+SGB+5R*X<8>#
  1475. XM.^!%^&\9A*-0!W@17HM1)$MX%UN$A^ !&B3!@!]HXEFX8)6,9RKX$.Z 2]9&
  1476. XMN 0NAG>Q9#@13.Y=EF.E35.%1[!D^!3.@Y_A</@/CIH-'$EX$$Z#1["==1G^
  1477. XMAF\!?;@:_D,^>ZC9"(Z!]^!\>/^]@__A?;@"OH5WB6[@,!$8I.!FX@=N T#@
  1478. XM:#*QF(?/X3N+ WZ)6^ O>$^-N!7BB<$?_HG+X::X';Y2@!YY^"..B&\!-P F
  1479. XM'HI#G#&X?S:#0^$4>"P.BA_AA/@J;HC_X;KX(KZ'P^*J>, Q<.CA*)3=W?WA
  1480. XMW:0#ZHV>\=UKN$\M347>@7>976+O4:KW1H #4-ZT7W_G"U8%6X3M^2V_I08!
  1481. XM>0LLRJ5K!14RZ@3:QPG; HP-)8K>;!8_7* \:?1\-# %9*0S,S=)E.[7>31=
  1482. XM'03\I/CG/AL%>,UXI7LS951 %2 %. $E8VT17K/0GMA!?CXDY OY F'/#>0'
  1483. XM0;NB8#F#<7"5&9ZV(>)?"LACL- 'Q=NFCSM%S*.#U>4^Y()!<^CZO:NQI-%<
  1484. XM#.D2WTP[?G*.95:,2R"E*E_J1_6=<>UT1ZA&SKI:A:1W$;@_[^30XE%N3?7D
  1485. XM=R"TYQQ6%T)YZ)U+.\JO*_5PE,^'00#*H90CWE4P8N3,'(59,-")'0+E*D (
  1486. XMKI,;<# Y&_ KL*N+*3L>1#_?./E!<)4/'+@&%;5\/^5@1E2.2X]XH_<0:'E9
  1487. XMY3HY5JZ5Z^1+N1SH(DX7PX=>_O")WG+AEM-2S.4D05:^(!+F/+E>B/51%@?%
  1488. XM40@8)A@LQV"XY834A$77AYA#Y0VA5,Z7<X2 ^<Q([4CF6SFN<4X3A9GYH@=2
  1489. X-!]1I@&A.D!/@9SF%!T77
  1490. Xend
  1491. END_OF_FILE
  1492. if test 32539 -ne `wc -c <'winframe.c.Z.uu'`; then
  1493.     echo shar: \"'winframe.c.Z.uu'\" unpacked with wrong size!
  1494. fi
  1495. # end of 'winframe.c.Z.uu'
  1496. fi
  1497. echo shar: End of archive 11 \(of 21\).
  1498. cp /dev/null ark11isdone
  1499. MISSING=""
  1500. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ; do
  1501.     if test ! -f ark${I}isdone ; then
  1502.     MISSING="${MISSING} ${I}"
  1503.     fi
  1504. done
  1505. if test "${MISSING}" = "" ; then
  1506.     echo You have unpacked all 21 archives.
  1507.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1508. else
  1509.     echo You still need to unpack the following archives:
  1510.     echo "        " ${MISSING}
  1511. fi
  1512. ##  End of shell archive.
  1513. exit 0
  1514. --
  1515. Molecular Simulations, Inc.             mail: dcmartin@postgres.berkeley.edu
  1516. 796 N. Pastoria Avenue                  uucp: uwvax!ucbvax!dcmartin
  1517. Sunnyvale, California 94086             at&t: 408/522-9236
  1518.