grace-5.1.25/0000755000076500001440000000000012467751547012454 5ustar fnevgenyusersgrace-5.1.25/grconvert/0000755000076500001440000000000012467751541014457 5ustar fnevgenyusersgrace-5.1.25/grconvert/defaults.c0000644000076500001440000003155306626627165016445 0ustar fnevgenyusers#include #include #include #include #include #include "grconvert.h" static defaults d_d = {1, 1, 1, 1.0, 4, 0, 1.0}; /* defaults layout int color; int lines; int linew; double charsize; int font; int fontsrc; double symsize; */ static world d_w = {0.0, 1.0, 0.0, 1.0}; static view d_v = {0.15, 0.85, 0.15, 0.85}; void set_program_defaults(void) { int i; grdefaults = d_d; g = (graph *) calloc(maxgraph, sizeof(graph)); for (i = 0; i < maxgraph; i++) { g[i].p = (plotarr *) calloc(maxplot, sizeof(plotarr)); if (g[i].p == NULL) { fprintf(stderr, "Couldn't allocate memory for sets in graph %d, maxplot = %d, fatal error", i, maxplot); exit(1); } set_default_graph(i); setdefaultcolors(i); } for (i = 0; i < MAXREGION; i++) { set_region_defaults(i); } set_default_annotation(); set_default_string(×tamp); alloc_blockdata(maxplot); timestamp.x = 0.03; timestamp.y = 0.03; if (init_scratch_arrays(maxarr)) { errmsg("Couldn't allocate memory for scratch arrays, don't use them"); } } void set_region_defaults(int rno) { int j; rg[rno].active = OFF; rg[rno].type = 0; rg[rno].color = grdefaults.color; rg[rno].lines = grdefaults.lines; rg[rno].linew = grdefaults.linew; rg[rno].linkto = (int *) malloc(maxgraph * sizeof(int)); for (j = 0; j < maxgraph; j++) { rg[rno].linkto[j] = -1; } rg[rno].n = 0; rg[rno].x = rg[rno].y = (double *) NULL; rg[rno].x1 = rg[rno].y1 = rg[rno].x2 = rg[rno].y2 = 0.0; } void set_default_framep(framep * f) { f->active = ON; /* frame on or off */ f->type = 0; /* frame type */ f->lines = grdefaults.lines; f->linew = grdefaults.linew; f->color = grdefaults.color; f->fillbg = OFF; /* fill background */ f->bgcolor = 0; /* background color inside frame */ } void set_default_world(world * w) { memcpy(w, &d_w, sizeof(world)); } void set_default_view(view * v) { memcpy(v, &d_v, sizeof(view)); } void set_default_string(plotstr * s) { s->active = OFF; s->loctype = VIEW; s->gno = -1; s->x = s->y = 0.0; s->lines = grdefaults.lines; s->linew = grdefaults.linew; s->color = grdefaults.color; s->rot = 0; s->font = grdefaults.font; s->just = 0; s->charsize = grdefaults.charsize; s->s = (char *) malloc(sizeof(char)); s->s[0] = 0; } void set_default_line(linetype * l) { l->active = OFF; l->loctype = VIEW; l->gno = -1; l->x1 = l->y1 = l->x2 = l->y2 = 0.0; l->lines = grdefaults.lines; l->linew = grdefaults.linew; l->color = grdefaults.color; l->arrow = 0; l->atype = 0; l->asize = 1.0; } void set_default_box(boxtype * b) { b->active = OFF; b->loctype = VIEW; b->gno = -1; b->x1 = b->y1 = b->x2 = b->y2 = 0.0; b->lines = grdefaults.lines; b->linew = grdefaults.linew; b->color = grdefaults.color; b->fill = OFF; b->fillcolor = 1; b->fillpattern = 1; } void set_default_ellipse(ellipsetype * e) { e->active = OFF; e->loctype = VIEW; e->gno = -1; e->x1 = e->y1 = e->x2 = e->y2 = 0.0; e->lines = grdefaults.lines; e->linew = grdefaults.linew; e->color = grdefaults.color; e->fill = OFF; e->fillcolor = 1; e->fillpattern = 1; } void set_default_legend(int gno, legend * l) { l->active = OFF; l->loctype = VIEW; l->layout = 0; l->vgap = 2; l->hgap = 1; l->len = 4; l->legx = 0.8; l->legy = 0.8; l->font = grdefaults.font; l->charsize = 1.0; l->color = grdefaults.color; l->linew = grdefaults.linew; l->lines = grdefaults.lines; l->box = OFF; l->boxfill = OFF; l->boxfillusing = COLOR; l->boxfillcolor = 0; l->boxfillpat = 1; l->boxlcolor = grdefaults.color; /* color for symbol */ l->boxlinew = grdefaults.linew; /* set plot sym line width */ l->boxlines = grdefaults.lines; /* set plot sym line style */ } void set_default_plotarr(plotarr * p) { int i; p->active = OFF; /* active flag */ p->type = XY; /* dataset type */ p->deact = 0; /* deactivated set */ p->hotlink = 0; /* hot linked set */ p->hotfile[0] = 0; /* hot linked file name */ p->len = 0; /* set length */ p->missing = DATASET_MISSING; /* value for missing data */ p->s = (char **) NULL; /* pointer to strings */ p->xmin = p->xmax = p->ymin = p->ymax = 0.0; p->sym = 0; /* set plot symbol */ p->symchar = 0; /* character for symbol */ p->symskip = 0; /* How many symbols to skip */ p->symfill = 0; /* Symbol fill type */ p->symdot = 0; /* Symbol dot in center */ p->symlines = grdefaults.lines; /* set plot sym line style */ p->symlinew = grdefaults.linew; /* set plot sym line width */ p->symcolor = -1; /* color for symbol; -1 means same color as line */ p->symsize = 1.0; /* size of symbols */ p->font = grdefaults.font; /* font for strings */ p->format = DECIMAL; /* format for drawing values */ p->prec = 1; /* precision for drawing values */ p->just = LEFT; /* justification for drawing values */ p->where = RIGHT; /* where to draw values */ p->valsize = 1.0; /* char size for drawing values */ p->lines = grdefaults.lines; p->linew = grdefaults.linew; p->color = grdefaults.color; p->lineskip = 0; /* How many points to skip when drawing lines */ p->fill = 0; /* fill type */ p->fillusing = COLOR; /* fill using color or pattern */ p->fillcolor = 1; /* fill color */ p->fillpattern = 0; /* fill pattern */ p->errbar = -1; /* if type is _DX, _DY, _DXDY and errbar = * TRUE */ p->errbarxy = BOTH; /* type of error bar */ p->errbar_lines = grdefaults.lines; /* error bar line width */ p->errbar_linew = grdefaults.linew; /* error bar line style */ p->errbar_riser = ON; /* connecting line between error limits */ p->errbar_riser_linew = 1; /* connecting line between error limits line * width */ p->errbar_riser_lines = 1; /* connecting line between error limits line * style */ p->errbarper = 1.0; /* length of error bar */ p->hilowper = 1.0; /* length of hi-low */ p->density_plot = 0; /* if type is XYZ then density_plot = 1 */ p->zmin = p->zmax = 0.0; /* min max for density plots */ p->comments[0] = 0; /* how did this set originate */ p->lstr[0] = 0; /* legend */ for (i = 0; i < MAX_SET_COLS; i++) { p->ex[i] = NULL; p->emin[i] = 0.0; /* min for each column */ p->emax[i] = 0.0; /* max for each column */ p->imin[i] = 0; /* min loc for each column */ p->imax[i] = 0; /* max loc for each column */ } p->ep = NULL; /* EditPoints pointer */ } void set_default_velocityp(velocityp * vp) { vp->active = OFF; vp->type = 0; vp->loctype = VIEW; vp->velx = 0.8; vp->vely = 0.7; vp->lines = grdefaults.lines; vp->linew = grdefaults.linew; vp->color = grdefaults.color; set_default_string(&(vp->vstr)); vp->arrowtype = 0; vp->vscale = 1.0; vp->units = 0; vp->userlength = 1.0; } void set_default_graph(int gno) { int i; g[gno].active = OFF; g[gno].hidden = FALSE; g[gno].label = OFF; g[gno].type = XY; g[gno].auto_type = AUTO; g[gno].autoscale = 0; g[gno].noautoscale = 0; g[gno].revx = FALSE; g[gno].revy = FALSE; g[gno].ws_top = 1; g[gno].ws[0].w.xg1=g[gno].ws[0].w.xg2=g[gno].ws[0].w.yg1=g[gno].ws[0].w.yg2=0; g[gno].curw = 0; g[gno].maxplot = maxplot; g[gno].dsx = g[gno].dsy = 0.0; /* locator props */ g[gno].pointset = FALSE; g[gno].pt_type = 0; g[gno].fx = GENERAL; g[gno].fy = GENERAL; g[gno].px = 6; g[gno].py = 6; g[gno].barwid = 0.85; g[gno].sbarwid = 0.75; set_default_ticks(&g[gno].t[0], X_AXIS); set_default_ticks(&g[gno].t[1], Y_AXIS); set_default_ticks(&g[gno].t[2], ZX_AXIS); set_default_ticks(&g[gno].t[3], ZY_AXIS); set_default_framep(&g[gno].f); set_default_world(&g[gno].w); set_default_view(&g[gno].v); g[gno].rt.xg1 = 1.0; g[gno].rt.yg1 = 2.0 * M_PI; set_default_legend(gno, &g[gno].l); set_default_string(&g[gno].labs.title); g[gno].labs.title.charsize = 1.5; set_default_string(&g[gno].labs.stitle); g[gno].labs.stitle.charsize = 1.0; for (i = 0; i < maxplot; i++) { set_default_plotarr(&g[gno].p[i]); } set_default_velocityp(&g[gno].vp); } void realloc_plots(int maxplot) { int i, j; for (i = 0; i < maxgraph; i++) { g[i].p = (plotarr *) realloc(g[i].p, maxplot * sizeof(plotarr)); for (j = g[i].maxplot; j < maxplot; j++) { g[i].p[j].len = 0; set_default_plotarr(&g[i].p[j]); } g[i].maxplot = maxplot; } } void realloc_graph_plots(int gno, int maxplot) { int j; g[gno].p = (plotarr *) realloc(g[gno].p, maxplot * sizeof(plotarr)); for (j = g[gno].maxplot; j < maxplot; j++) { g[gno].p[j].len = 0; set_default_plotarr(&g[gno].p[j]); } g[gno].maxplot = maxplot; } void realloc_graphs(void) { int j; g = (graph *) realloc(g, maxgraph * sizeof(graph)); for (j = MAXGRAPH; j < maxgraph; j++) { g[j].p = (plotarr *) calloc(maxplot, sizeof(plotarr)); set_default_graph(j); } } void set_default_annotation(void) { int i; lines = (linetype *) malloc(maxlines * sizeof(linetype)); boxes = (boxtype *) malloc(maxboxes * sizeof(boxtype)); pstr = (plotstr *) malloc(maxstr * sizeof(plotstr)); ellip = (ellipsetype *) malloc(maxellipses * sizeof(ellipsetype)); for (i = 0; i < maxboxes; i++) { set_default_box(&boxes[i]); } for (i = 0; i < maxlines; i++) { set_default_line(&lines[i]); } for (i = 0; i < maxellipses; i++) { set_default_ellipse(&ellip[i]); } for (i = 0; i < maxstr; i++) { set_default_string(&pstr[i]); } } void set_default_ticks(tickmarks * t, int a) { int i; t->axis = a; switch (a) { case X_AXIS: case Y_AXIS: t->active = ON; t->alt = OFF; t->tl_flag = ON; t->t_flag = ON; break; case ZX_AXIS: case ZY_AXIS: t->active = ON; t->alt = OFF; t->tl_flag = OFF; t->t_flag = OFF; break; } set_default_string(&t->label); t->tmin = 0.0; t->tmax = 1.0; t->tmajor = 0.5; t->tminor = 0.25; t->offsx = 0.0; t->offsy = 0.0; t->label_layout = PARA; t->label_place = AUTO; t->tl_type = AUTO; t->tl_layout = HORIZONTAL; t->tl_loc = ON; t->tl_sign = NORMAL; t->tl_prec = 1; t->tl_format = DECIMAL; t->tl_angle = 0; t->tl_just = (a % 2) ? RIGHT : CENTER; t->tl_skip = 0; t->tl_staggered = 0; t->tl_starttype = AUTO; t->tl_stoptype = AUTO; t->tl_start = 0.0; t->tl_stop = 0.0; t->tl_op = (a % 2) ? LEFT : BOTTOM; t->tl_vgap = 1.0; t->tl_hgap = 1.0; t->tl_font = grdefaults.font; t->tl_charsize = 1.0; t->tl_linew = grdefaults.linew; t->tl_color = grdefaults.color; t->tl_appstr[0] = 0; t->tl_prestr[0] = 0; t->t_type = AUTO; t->t_mflag = ON; t->t_integer = OFF; t->t_num = 6; t->t_inout = IN; t->t_log = OFF; t->t_op = BOTH; t->t_size = 1.0; t->t_msize = 0.5; t->t_drawbar = OFF; t->t_drawbarcolor = grdefaults.color; t->t_drawbarlines = grdefaults.lines; t->t_drawbarlinew = grdefaults.linew; t->t_gridflag = OFF; t->t_mgridflag = OFF; t->t_color = grdefaults.color; t->t_lines = grdefaults.lines; t->t_linew = grdefaults.linew; t->t_mcolor = grdefaults.color; t->t_mlines = grdefaults.lines; t->t_mlinew = grdefaults.linew; t->t_spec = 0; for (i = 0; i < MAX_TICK_LABELS; i++) { t->t_specloc[i] = 0.0; t->t_speclab[i].s = NULL; } } static int default_color[MAXPLOT] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; void setdefaultcolors(int gno) { int i; for (i = 0; i < g[gno].maxplot; i++) { g[gno].p[i].color = default_color[i % MAXPLOT]; } } void kill_blockdata(void) { int j; if (blockdata != NULL) { for (j = 0; j < maxblock; j++) { cxfree(blockdata[j]); } } } void alloc_blockdata(int ncols) { int j; if (blockdata != NULL) { kill_blockdata(); } if (ncols < MAXPLOT) { ncols = MAXPLOT; } blockdata = (double **) malloc(ncols * sizeof(double *)); if (blockdata != NULL) { maxblock = ncols; for (j = 0; j < maxblock; j++) { blockdata[j] = NULL; } } else { errmsg("alloc_blockdata(): Error, unable to allocate memory for block data"); } } int init_array(double **a, int n) { if (*a != NULL) { *a = (double *) realloc(*a, n * sizeof(double)); } else { *a = (double *) calloc(n, sizeof(double)); } return *a == NULL ? 1 : 0; } int init_scratch_arrays(int n) { if (!init_array(&ax, n)) { if (!init_array(&bx, n)) { if (!init_array(&cx, n)) { if (!init_array(&dx, n)) { maxarr = n; return 0; } free(cx); } free(bx); } free(ax); } return 1; } grace-5.1.25/grconvert/util.c0000644000076500001440000001721406626627165015611 0ustar fnevgenyusers#include #include #include #include #include #include #include "grconvert.h" /* graph *g; plotstr *pstr; boxtype *boxes; linetype *lines; ellipsetype *ellip; polytype *polys; */ char *graph_types(int it, int which) { static char s[128]; strcpy(s, "UNKNOWN"); switch (it) { case XY: if (which) { strcpy(s, "xy"); } else { strcpy(s, "XY"); } break; case LOGX: if (which) { strcpy(s, "logx"); } else { strcpy(s, "LOG-LINEAR"); } break; case LOGY: if (which) { strcpy(s, "logy"); } else { strcpy(s, "LINEAR-LOG"); } break; case LOGXY: if (which) { strcpy(s, "logxy"); } else { strcpy(s, "LOG-LOG"); } break; case XYFIXED: strcpy(s, "FIXED XY"); break; case POLAR: strcpy(s, "polar"); break; case BAR: if (which) { strcpy(s, "bar"); } else { strcpy(s, "BAR"); } break; case HBAR: if (which) { strcpy(s, "hbar"); } else { strcpy(s, "HORIZONTAL BAR"); } break; case PIE: strcpy(s, "pie"); break; case STACKEDBAR: if (which) { strcpy(s, "stackedbar"); } else { strcpy(s, "STACKED BAR"); } break; case STACKEDHBAR: if (which) { strcpy(s, "stackedhbar"); } else { strcpy(s, "STACKED HORIZONTAL BAR"); } break; case STACKEDLINE: strcpy(s, "STACKED LINE"); break; } return s; } char *get_format_types(int f) { static char s[128]; strcpy(s, "decimal"); switch (f) { case DECIMAL: strcpy(s, "decimal"); break; case EXPONENTIAL: strcpy(s, "exponential"); break; case POWER: strcpy(s, "power"); break; case GENERAL: strcpy(s, "general"); break; case DDMMYY: strcpy(s, "ddmmyy"); break; case MMDDYY: strcpy(s, "mmddyy"); break; case MMYY: strcpy(s, "mmyy"); break; case MMDD: strcpy(s, "mmdd"); break; case MONTHDAY: strcpy(s, "monthday"); break; case DAYMONTH: strcpy(s, "daymonth"); break; case MONTHS: strcpy(s, "months"); break; case MONTHSY: strcpy(s, "monthsy"); break; case MONTHL: strcpy(s, "monthl"); break; case DAYOFWEEKS: strcpy(s, "dayofweeks"); break; case DAYOFWEEKL: strcpy(s, "dayofweekl"); break; case DAYOFYEAR: strcpy(s, "dayofyear"); break; case HMS: strcpy(s, "hms"); break; case MMDDHMS: strcpy(s, "mmddhms"); break; case MMDDYYHMS: strcpy(s, "mmddyyhms"); break; case DEGREESLON: strcpy(s, "degreeslon"); break; case DEGREESMMLON: strcpy(s, "degreesmmlon"); break; case DEGREESMMSSLON: strcpy(s, "degreesmmsslon"); break; case MMSSLON: strcpy(s, "mmsslon"); break; case DEGREESLAT: strcpy(s, "degreeslat"); break; case DEGREESMMLAT: strcpy(s, "degreesmmlat"); break; case DEGREESMMSSLAT: strcpy(s, "degreesmmsslat"); break; case MMSSLAT: strcpy(s, "mmsslat"); break; } return s; } void get_graph_box(int i, boxtype * b) { memcpy(b, &boxes[i], sizeof(boxtype)); } void get_graph_ellipse(int i, ellipsetype * b) { memcpy(b, &ellip[i], sizeof(ellipsetype)); } void get_graph_line(int i, linetype * l) { memcpy(l, &lines[i], sizeof(linetype)); } void get_graph_string(int i, plotstr * s) { memcpy(s, &pstr[i], sizeof(plotstr)); } void get_graph_framep(int gno, framep * f) { memcpy(f, &g[gno].f, sizeof(framep)); } void get_graph_world(int gno, world * w) { memcpy(w, &g[gno].w, sizeof(world)); } void get_graph_view(int gno, view * v) { memcpy(v, &g[gno].v, sizeof(view)); } void get_graph_labels(int gno, labels * labs) { memcpy(labs, &g[gno].labs, sizeof(labels)); } void get_graph_plotarr(int gno, int i, plotarr * p) { memcpy(p, &g[gno].p[i], sizeof(plotarr)); } void get_graph_tickmarks(int gno, tickmarks * t, int a) { memcpy(t, &g[gno].t[a], sizeof(tickmarks)); } void get_graph_legend(int gno, legend * leg) { memcpy(leg, &g[gno].l, sizeof(legend)); } void set_graph_tickmarks(int gno, tickmarks * t, int a) { memcpy(&g[gno].t[a], t, sizeof(tickmarks)); } /* * nicenum: find a "nice" number approximately equal to x * round if round=1, ceil if round=0 */ static double nicenum(double x, int round) { int exp; double f, y; exp = floor(log10(x)); f = x / pow(10., (double) exp); /* fraction between 1 and 10 */ if (round) if (f < 1.5) y = 1.; else if (f < 3.) y = 2.; else if (f < 7.) y = 5.; else y = 10.; else if (f <= 1.) y = 1.; else if (f <= 2.) y = 2.; else if (f <= 5.) y = 5.; else y = 10.; return y * pow(10., (double) exp); } void default_ticks(int gno, int axis, double *gmin, double *gmax) { tickmarks t; double range, d, tmpmax = *gmax, tmpmin = *gmin; get_graph_tickmarks(gno, &t, axis); if (axis % 2 && (g[gno].type == LOGY || g[gno].type == LOGXY)) { tmpmax = ceil(log10(tmpmax)); tmpmin = floor(log10(tmpmin)); } else if ((axis % 2 == 0) && (g[gno].type == LOGX || g[gno].type == LOGXY)) { tmpmax = ceil(log10(tmpmax)); tmpmin = floor(log10(tmpmin)); } range = nicenum(tmpmax - tmpmin, 0); d = nicenum(range / (t.t_num - 1), 1); tmpmin = floor(tmpmin / d) * d; tmpmax = ceil(tmpmax / d) * d; if (axis % 2 && (g[gno].type == LOGY || g[gno].type == LOGXY)) { *gmax = pow(10.0, tmpmax); *gmin = pow(10.0, tmpmin); t.tmajor = (int) d; if (t.tmajor == 0.0) { t.tmajor = 1.0; } if ((int) t.tmajor < 2) { t.tminor = 1.0; } else { t.tminor = 0.0; } if (fabs(tmpmax) > 6.0 || fabs(tmpmin) > 6.0) { t.tl_format = POWER; t.tl_prec = 0; } else { t.tl_format = DECIMAL; t.tl_prec = 0; } } else if ((axis % 2 == 0) && (g[gno].type == LOGX || g[gno].type == LOGXY)) { *gmax = pow(10.0, tmpmax); *gmin = pow(10.0, tmpmin); t.tmajor = (int) d; if (t.tmajor == 0.0) { t.tmajor = 1.0; } if (fabs(tmpmax) > 6.0 || fabs(tmpmin) > 6.0) { t.tl_format = POWER; t.tl_prec = 0; } else { t.tl_format = DECIMAL; t.tl_prec = 0; } if ((int) t.tmajor < 2) { t.tminor = 1.0; } else { t.tminor = 0.0; } } else { *gmax = tmpmax; *gmin = tmpmin; t.tmajor = d; t.tminor = d * 0.5; } set_graph_tickmarks(gno, &t, axis); } void errmsg(char *buf) { printf("%s\n", buf); } /* * escape quotes */ char *escapequotes (char *s) { char *es; int i, k, n, len, elen; if (s == NULL) return NULL; len = strlen(s); es = (char *) malloc ((len + 1)*sizeof(char)); strcpy(es, s); n = 0; while ((es = strchr(es, '\"'))) { es++; n++; } elen = len + n + 1; es = (char *) realloc (es, elen*sizeof(char)); i = k = 0; while (i < len) { if (s[i] == '\"') { es[k] = '\\'; k++; } es[k] = s[i]; i++; k++; } es[elen-1] = '\0'; return es; } /* * return the string version of the set type */ char *set_types(int it) { char *s = "XY"; switch (it) { case XY: s = "xy"; break; case XYDX: s = "xydx"; break; case XYDY: s = "xydy"; break; case XYDYDY: s = "xydydy"; break; case XYDXDX: s = "xydxdx"; break; case XYDXDY: s = "xydxdy"; break; case XYZ: s = "xyz"; break; case XYHILO: s = "xyhilo"; break; case XYBOX: s = "xybox"; break; case XYRT: s = "xyrt"; break; case XYUV: s = "xyuv"; break; case XYBOXPLOT: s = "xyboxplot"; break; case XYSTRING: s = "xystring"; break; case POLY: s = "poly"; break; } return s; } int is_hotlinked(int gno, int setno) { return (g[gno].p[setno].hotlink && strlen(g[gno].p[setno].hotfile) > 0); } /* * free and check for NULL pointer */ void cxfree(void *ptr) { if (ptr != NULL) { free(ptr); } } grace-5.1.25/grconvert/grconvert.h0000644000076500001440000005040706626627165016653 0ustar fnevgenyusers #ifndef TRUE # define TRUE 1 #endif #ifndef FALSE # define FALSE 0 #endif /* * types of tick displays */ #define X_AXIS 0 #define Y_AXIS 1 #define ZX_AXIS 2 #define ZY_AXIS 3 #ifndef MAXARR # define MAXARR 20000 /* max elements in an array */ #endif #define MAXGRAPH 10 /* max number of graphs */ #define MAXPLOT 30 /* max number of sets in a graph */ #define MAXAXES 4 /* max number of axes per graph */ #define MAX_SET_COLS 6 /* max number of data columns for a set */ #define MAX_TICK_LABELS 40 /* max number of user defined ticks/labels */ #define MAX_ZOOM_STACK 20 /* max stack depth for world stack */ #define MAXREGION 5 /* max number of regions */ #define MAXBOXES 50 /* max number of boxes */ #define MAXLINES 50 /* max number of lines */ #define MAXELLIPSES 50 /* max number of ellipses */ #define MAXSTR 100 /* max number of strings */ #define PAGE_FREE 0 #define GR_PS_L 1 /* PostScript landscape */ /* set HDEV to the default hardcopy device */ #ifndef HDEV # define HDEV GR_PS_L #endif #define DATASET_MISSING (1.23456789e+30) #define NONAME "Untitled" #define ABOVE 589 #define ABSOLUTE 309 #define AUTO 324 #define BAR 332 #define BELOW 590 #define BOTH 336 #define BOTTOM 337 #define CENTER 342 #define COLOR 348 #define DAYMONTH 600 #define DAYOFWEEKL 605 #define DAYOFWEEKS 604 #define DAYOFYEAR 606 #define DDMMYY 594 #define DECIMAL 352 #define DEGREESLAT 615 #define DEGREESLON 611 #define DEGREESMMLAT 616 #define DEGREESMMLON 612 #define DEGREESMMSSLAT 617 #define DEGREESMMSSLON 613 #define DISK 360 #define EXPONENTIAL 373 #define FIXED 634 #define FREE 633 #define GENERAL 593 #define HBAR 395 #define HMS 607 #define HORIZONTAL 399 #define IN 407 #define LANDSCAPE 631 #define LEFT 419 #define LOGX 432 #define LOGXY 434 #define LOGY 433 #define MMDD 598 #define MMDDHMS 608 #define MMDDYY 596 #define MMDDYYHMS 609 #define MMSSLAT 618 #define MMSSLON 614 #define MMYY 597 #define MONTHDAY 599 #define MONTHL 603 #define MONTHS 601 #define MONTHSY 602 #define NEGATE 443 #define NONE 445 #define NORMAL 446 #define OFF 448 #define ON 451 #define OUT 454 #define PARA 456 #define PATTERN 460 #define PERP 462 #define PIE 464 #define POLAR 468 #define POLY 469 #define POLYI 591 #define POLYO 592 #define PORTRAIT 632 #define POWER 470 #define RIGHT 490 #define SPEC 513 #define STACKEDBAR 517 #define STACKEDHBAR 518 #define STACKEDLINE 519 #define TOP 535 #define VERTICAL 540 #define VIEW 542 #define WORLD 544 #define XY 554 #define XYBOX 556 #define XYBOXPLOT 557 #define XYDX 563 #define XYDXDX 565 #define XYDXDY 567 #define XYDY 564 #define XYDYDY 566 #define XYFIXED 558 #define XYHILO 559 #define XYRT 560 #define XYSTRING 562 #define XYUV 573 #define XYZ 571 #define YYMMDD 595 /* * defaults */ typedef struct { int color; int lines; int linew; double charsize; int font; int fontsrc; double symsize; } defaults; typedef struct { double xg1, xg2, yg1, yg2; /* window into world coords */ } world; typedef struct { double xv1, xv2, yv1, yv2; /* device viewport */ } view; /* * world stack */ typedef struct { world w; /* current world */ world t[3]; /* current tick spacing */ int prec[MAXAXES]; /* precision of labels */ } world_stack; typedef struct { int active; int loctype; int gno; double x; double y; int lines; int linew; int color; int rot; int font; int just; double charsize; char *s; } plotstr; typedef struct { plotstr title; /* graph title */ plotstr stitle; /* graph subtitle */ } labels; typedef struct { int active; /* active flag */ int type; /* regression type */ double xmin; double xmax; double coef[15]; } Regression; typedef struct { int active; /* active flag */ int type; /* regression type */ int npts; /* number of points */ double xmin; double xmax; double *a; double *b; double *c; double *d; } Spline; typedef struct { int active; /* active flag */ int type; /* dataset type */ int deact; /* deactivated set */ int len; /* set length */ int nx, ny; /* number of pts in X and Y for grids */ int setno; /* set number */ int gno; /* graph number */ char comments[256]; /* how did this set originate */ char lstr[256]; /* legend for this set */ double missing; /* value for missing data */ double *ex[MAX_SET_COLS]; /* x, y, dx, z, r, hi depending on dataset type */ char **s; /* pointer to strings */ int nel; /* # of ? */ int **con; /* con */ double xmin, xmax; /* min max for x */ double ymin, ymax; /* min max for y */ int sym; /* set plot symbol */ char symchar; /* character for symbol */ int symskip; /* How many symbols to skip */ int symfill; /* Symbol fill type */ int symdot; /* Symbol dot in center */ int symlines; /* Symbol linestyle */ int symlinew; /* Symbol linewidth */ int symcolor; /* color for symbol line */ double symsize; /* size of symbols */ int avgflag; /* average */ int avgstdflag; /* average+- std */ int avg2stdflag; /* average+- 2std */ int avg3stdflag; /* average+- 3std */ int avgallflag; /* average+- 3std */ int avgvalflag; /* average+- val */ int harmonicflag; /* harmonic mean */ int geometricflag; /* geometric */ int font; /* font for strings */ int format; /* format for drawing values */ int prec; /* precision for drawing values */ int just; /* justification for drawing values */ int where; /* where to draw values */ double valsize; /* char size for drawing values */ int lines; /* set line style */ int linew; /* line width */ int color; /* color for linestyle */ int lineskip; /* How many points to skip when drawing lines */ int clipflag; /* turn clipping on or off for this set */ int fill; /* fill type */ int fillusing; /* fill using color or pattern */ int fillcolor; /* fill color */ int fillpattern; /* fill pattern */ int errbar; /* if type is _DX, _DY, _DXDY and errbar = TRUE */ int errbarxy; /* type of error bar */ int errbar_linew; /* error bar line width */ int errbar_lines; /* error bar line style */ int errbar_riser; /* connecting line between error limits */ int errbar_riser_linew; /* connecting line between error limits line width */ int errbar_riser_lines; /* connecting line between error limits line style */ double errbarper; /* length of error bar */ double hilowper; /* length of hi-low */ int density_plot; /* if type is XYZ then density_plot = 1 */ double zmin, zmax; /* min max for density plots */ int hotlink; /* hot linked set */ int hotsrc; /* source for hot linked file (DISK|PIPE) */ char hotfile[256]; /* hot linked filename */ double emin[MAX_SET_COLS]; /* min for each column */ double emax[MAX_SET_COLS]; /* max for each column */ int imin[MAX_SET_COLS]; /* min loc for each column */ int imax[MAX_SET_COLS]; /* max loc for each column */ Regression *r; /* coefs from any regression performed on this set */ Spline *spl; /* coefs from any spline performed on this set */ void *ep; /* pointer to EditPoints structure */ } plotarr; typedef struct { int axis; /* which axis */ int active; /* active or not */ int alt; /* alternate map if TRUE */ double tmin, tmax; /* mapping for alternate tickmarks */ double tmajor, tminor; /* major, minor tick divisions */ double offsx, offsy; /* offset of axes in viewport coords */ plotstr label; /* graph axis label */ int label_layout; /* axis label orientation (h or v) */ int label_place; /* axis label placement (specfied or auto) */ int tl_flag; /* toggle ticmark labels on or off */ int tl_type; /* either auto or specified (below) */ int tl_loc; /* Tick label location, at tick, between ticks */ int tl_layout; /* horizontal, vertical, or specified */ int tl_angle; /* angle to draw labels if layout is specified */ int tl_sign; /* tick labels normal, absolute value, or negate */ int tl_just; /* justification of ticklabel and type of anchor point */ int tl_prec; /* places to right of decimal point */ int tl_format; /* decimal or exponential ticmark labels .. */ int tl_skip; /* tick labels to skip */ int tl_staggered; /* tick labels staggered */ int tl_starttype; /* start at graphmin or use tl_start/stop */ int tl_stoptype; /* start at graphmax or use tl_start/stop */ double tl_start; /* value of x to begin tick labels and major ticks */ double tl_stop; /* value of x to begin tick labels and major ticks */ int tl_op; /* tick labels on opposite side or both */ double tl_vgap; /* tick label to tickmark distance vertically */ double tl_hgap; /* tick label to tickmark distance horizontally */ int tl_font; /* font to use for labels */ double tl_charsize; /* character size for labels */ int tl_color; /* color */ int tl_linew; /* line width for labels */ char tl_appstr[256]; /* append string to tick label */ char tl_prestr[256]; /* prepend string to tick label */ int t_type; /* type of tickmarks, usual, xticstart, or specified */ int t_flag; /* toggle tickmark display */ int t_mflag; /* toggle minor tickmark display */ int t_integer; /* major tic marks on integer divisions */ int t_num; /* approximate default number of X-axis ticks */ int t_inout; /* ticks inward, outward or both */ int t_log; /* logarithmic ticmarks */ int t_op; /* ticks on opposite side */ int t_color; /* colors and linestyles */ int t_lines; int t_linew; int t_mcolor; int t_mlines; int t_mlinew; /* minor grid colors and linestyles */ double t_size; /* length of tickmarks */ double t_msize; /* length of minor tickmarks */ int t_drawbar; /* draw a bar connecting tick marks */ int t_drawbarcolor; /* color of bar */ int t_drawbarlines; /* linestyle of bar */ int t_drawbarlinew; /* line width of bar */ int t_gridflag; /* grid lines at major tick marks */ int t_mgridflag; /* grid lines at minor tick marks */ int t_spec; /* number of ticks at specified locations */ double t_specloc[MAX_TICK_LABELS]; plotstr t_speclab[MAX_TICK_LABELS]; int spec_font; double spec_charsize; int spec_color; int spec_linew; } tickmarks; typedef struct { int active; /* legend on or off */ int loctype; /* locate in world or viewport coords */ int layout; /* verticle or horizontal */ int vgap; /* verticle gap between entries */ int hgap; /* horizontal gap between entries */ int len; /* length of line to draw */ int box; /* box around legend on or off */ double legx; /* location on graph */ double legy; int font; double charsize; int color; int linew; int lines; int boxfill; /* legend frame fill toggle */ int boxfillusing; /* legend frame fill type */ int boxfillcolor; /* legend frame fill color */ int boxfillpat; /* legend frame fill pattern */ int boxlcolor; /* legend frame line color */ int boxlinew; /* legend frame line width */ int boxlines; /* legend frame line style */ } legend; typedef struct { int active; /* region on or off */ int type; /* region type */ int color; /* region color */ int lines; /* region linestyle */ int linew; /* region line width */ int *linkto; /* associated with graphs in linkto */ int n; /* number of points if type is POLY */ double *x, *y; /* coordinates if type is POLY */ double x1, y1, x2, y2; /* starting and ending points if type is not POLY */ } region; typedef struct { int active; /* frame on or off */ int type; /* frame type */ int color; /* frame color */ int lines; /* frame linestyle */ int linew; /* frame line width */ int fillbg; /* fill background */ int bgcolor; /* background color inside frame */ } framep; typedef struct _BoxPlot { double il; /* inner lower limit */ double iu; /* inner upper limit */ double ol; /* outer lower limit */ double ou; /* outer uppper limit */ int nthresh; /* threshhold for number of points for * boxplot */ int outliers; /* plot outliers */ int wtype; /* 1 = width by std dev or 0 = symsize */ double boxwid; } BoxPlot; typedef struct { int active; /* velocity legend on or off */ int type; /* velocity type */ int color; /* velocity color */ int lines; /* velocity linestyle */ int linew; /* velocity line width */ int arrowtype; /* velocity arrow type, fixed or variable head */ int loctype; /* world or viewport coords for legend */ double velx, vely; /* location of velocity legend */ double vscale; /* velocity scale */ int units; /* units of flow field */ double userlength; /* length of the legend vector in user units */ plotstr vstr; /* legend string for velocity legend */ } velocityp; /* * a graph */ typedef struct { int active; /* alive or dead */ int hidden; /* display or not */ int label; /* label graph */ int type; /* type of graph */ int clipflag; /* turn clipping on or off */ int autoscale; /* */ int noautoscale; /* */ int noauto_world; /* only time this is used is at startup */ int noauto_tics; /* only time this is used is at startup */ int auto_type; /* */ int parmsread; /* was a paramter file read for this graph */ int revx, revy; /* reverse mapping for x and y if true */ int maxplot; /* max number of sets for this graph */ plotarr *p; /* sets go here */ legend l; /* legends */ world w; /* world */ view v; /* world/view */ world rt; /* world for polar plots */ labels labs; /* title, subtitle, axes labels */ tickmarks t[MAXAXES]; /* flags etc. for tickmarks for all axes */ framep f; /* type of box around plot */ int pointset; /* if (dsx, dsy) have been set */ int pt_type; /* type of locator display */ double dsx, dsy; /* locator fixed point */ int fx, fy; /* locator format type */ int px, py; /* locator precision */ double barwid; /* bar width for bar charts */ double sbarwid; /* bar width for stacked bar charts */ world_stack ws[MAX_ZOOM_STACK]; /* zoom stack */ int ws_top; /* stack pointer */ int curw; /* for cycling through the stack */ velocityp vp; BoxPlot bp; } graph; /* * typedefs for objects */ typedef struct { int active; int loctype; int gno; double x1; double y1; double x2; double y2; int lines; int linew; int color; int fill; int fillcolor; int fillpattern; } boxtype; typedef struct { int active; int loctype; int gno; double x1; double y1; double x2; double y2; int lines; int linew; int color; int fill; int fillcolor; int fillpattern; } ellipsetype; typedef struct { int active; int loctype; int gno; double x1; double y1; double x2; double y2; int lines; int linew; int color; int arrow; int atype; double asize; } linetype; #if defined(MAIN) graph *g; int cg = 0; /* the current graph */ int maxgraph = MAXGRAPH; char sformat[128] = "%16lg %16lg"; /* format for saving (ascii) projects */ defaults grdefaults; /* default properties */ int maxplot = MAXPLOT; int maxarr = MAXARR; plotstr timestamp; /* timestamp */ region rg[MAXREGION]; linetype *lines; /* lines */ int maxlines = MAXLINES; int maxboxes = MAXBOXES; boxtype *boxes; /* boxes */ plotstr *pstr; /* strings */ int maxstr = MAXSTR; int maxellipses = MAXELLIPSES; ellipsetype *ellip; /* ellipses */ double **blockdata; int maxblock = MAXPLOT; double *ax, *bx, *cx, *dx; /* scratch arrays used in scanner */ char docname[512] = NONAME; int blocklen; int blockncols; char description[2048]; int page_layout = PAGE_FREE; double scrollper = 0.05; /* scroll fraction */ double shexper = 0.05; /* expand/shrink fraction */ int scrolling_islinked = 0; /* linked scroll */ char buf[1024]; /* a string used here and there */ #else extern graph *g; extern int cg; extern int maxarr; extern char sformat[]; extern defaults grdefaults; /* default properties */ extern int maxgraph; extern int maxplot; extern plotstr timestamp; /* timestamp */ extern region rg[]; extern linetype *lines; /* lines */ extern int maxlines; extern int maxboxes; extern boxtype *boxes; /* boxes */ extern plotstr *pstr; /* strings */ extern int maxstr; extern int maxellipses; extern ellipsetype *ellip; /* ellipses */ extern double **blockdata; extern int maxblock; extern double *ax, *bx, *cx, *dx; extern char docname[]; extern int blocklen; extern int blockncols; extern char description[]; extern int page_layout; extern double scrollper; /* scroll fraction */ extern double shexper; /* expand/shrink fraction */ extern int scrolling_islinked; /* linked scroll */ extern char buf[]; #endif void set_program_defaults(void); void set_region_defaults(int rno); void set_default_framep(framep * f); void set_default_world(world * w); void set_default_view(view * v); void set_default_string(plotstr * s); void set_default_line(linetype * l); void set_default_box(boxtype * b); void set_default_ellipse(ellipsetype * e); void set_default_legend(int gno, legend * l); void set_default_plotarr(plotarr * p); void set_default_velocityp(velocityp * vp); void set_default_graph(int gno); void realloc_plots(int maxplot); void realloc_graph_plots(int gno, int maxplot); void realloc_graphs(void); void set_default_annotation(void); void set_default_ticks(tickmarks * t, int a); void setdefaultcolors(int gno); void kill_blockdata(void); void alloc_blockdata(int ncols); int init_array(double **a, int n); int init_scratch_arrays(int n); int read_boxtype(boxtype * d, FILE * fin); int read_ellipsetype(ellipsetype * d, FILE * fin); int read_linetype(linetype * d, FILE * fin); int read_plotstr(plotstr * d, FILE * fin); int read_graph(graph * d, FILE * fin); void close_xdr(void); int read_double(double *d, int n, FILE * fp); int read_int(int *d, int n, FILE * fp); int read_charstr(char *d, FILE * fp); int read_char(char *d, int n, FILE * fp); int read_short(short *d, int n, FILE * fp); int read_float(float *d, int n, FILE * fp); int replace_xdr_int( int *i ); int replace_xdr_short( short *i ); int is_state_save(char *fname); int getbinary(int gno, char *fname, int imbed); int do_writesets(int gno, int setno, int imbed, char *fn, char *format); void putparms(int gno, FILE * pp, int imbed); char *graph_types(int it, int which); char *get_format_types(int f); void get_graph_box(int i, boxtype * b); void get_graph_ellipse(int i, ellipsetype * b); void get_graph_line(int i, linetype * l); void get_graph_string(int i, plotstr * s); void get_graph_framep(int gno, framep * f); void get_graph_world(int gno, world * w); void get_graph_view(int gno, view * v); void get_graph_labels(int gno, labels * labs); void get_graph_plotarr(int gno, int i, plotarr * p); void get_graph_tickmarks(int gno, tickmarks * t, int a); void get_graph_legend(int gno, legend * leg); void set_graph_tickmarks(int gno, tickmarks * t, int a); void default_ticks(int gno, int axis, double *gmin, double *gmax); void errmsg(char *buf); char *escapequotes (char *s); char *set_types(int it); int is_hotlinked(int gno, int setno); void cxfree(void *ptr); #define isactive_set(gno, set) (g[gno].p[set].active == ON) #define isactive_graph(gno) (g[gno].active == ON) #define on_or_off(x) ((x == ON)?"on":"off") #define w_or_v(x) ((x == WORLD)?"world":"view") #define dataset_type(gno, set) (g[gno].p[set].type) #define getx(gno, set) ((double *) g[gno].p[set].ex[0]) #define gety(gno, set) ((double *) g[gno].p[set].ex[1]) #define getsetlength(gno, set) (g[gno].p[set].len) #define getcol(gno, set, col) ((double *) g[gno].p[set].ex[col]) grace-5.1.25/grconvert/grconvert.c0000644000076500001440000000121406626627165016636 0ustar fnevgenyusers/* * Utility to convert xmgr project files saved in old binary format */ #include #include #define MAIN #include "grconvert.h" static void usage(FILE *stream, char *progname); int main(int argc, char *argv[]) { /* initialize plots, strings, graphs */ set_program_defaults(); if (argc != 3) { usage(stderr, argv[0]); return (1); } if(!getbinary(cg, argv[1], 0)) { do_writesets(maxgraph, -1, 1, argv[2], sformat); return (0); } else { return (1); } } static void usage(FILE *stream, char *progname) { fprintf(stream, "Usage: %s \n", progname); } grace-5.1.25/grconvert/writeasc.c0000644000076500001440000006257206736256241016457 0ustar fnevgenyusers#include #include #include #include #include #include #include "grconvert.h" static void put_annotation(int gno, FILE * pp, int embed); static void put_region(FILE * pp, int embed); int realtime = 0; int change_gno; /* if the graph number changes on read in */ int change_type; /* current set type */ /* * write out a set */ int do_writesets(int gno, int setno, int embed, char *fn, char *format) { int i, j, k, n, which_graph = gno, save_cg = cg, start, stop, set_start, set_stop; FILE *cp; double *x, *y, *dx, *dy, *dz, *dw; if (!fn[0]) { errmsg("Define file name first"); return 1; } if (strcmp(fn, "-") == 0) { cp = stdout; } else { cp = fopen(fn, "w"); } if (cp == NULL) { char s[192]; sprintf(s, "Unable to open file %s", fn); errmsg(s); return 1; } if (which_graph == maxgraph) { start = 0; stop = maxgraph - 1; } else if (which_graph == -1) { start = cg; stop = cg; } else { start = which_graph; stop = which_graph; } if (embed) { if (start != stop) { putparms(-1, cp, embed); } else { putparms(start, cp, embed); } } for (k = start; k <= stop; k++) { if (isactive_graph(k)) { if (start != stop) { fprintf(cp, "@WITH G%1d\n", k); fprintf(cp, "@G%1d ON\n", k); } if (setno == -1) { set_start = 0; set_stop = g[cg].maxplot - 1; } else { set_start = setno; set_stop = setno; } for (j = set_start; j <= set_stop; j++) { if (isactive_set(k, j)) { fprintf(cp, "@TARGET S%d\n", j); fprintf(cp, "@TYPE %s\n", set_types(dataset_type(k, j))); x = getx(k, j); y = gety(k, j); n = getsetlength(k, j); switch (dataset_type(k, j)) { case XY: for (i = 0; i < n; i++) { fprintf(cp, format, x[i], y[i]); fputc('\n', cp); } break; case XYDX: case XYDY: case XYZ: case XYRT: dx = getcol(k, j, 2); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %g", x[i], y[i], dx[i]); fputc('\n', cp); } break; case POLY: dx = getcol(k, j, 2); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %d", x[i], y[i], (int) dx[i]); fputc('\n', cp); } break; case XYDXDX: case XYDYDY: case XYDXDY: case XYUV: dx = getcol(k, j, 2); dy = getcol(k, j, 3); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %g %g", x[i], y[i], dx[i], dy[i]); fputc('\n', cp); } break; case XYHILO: dx = getcol(k, j, 2); dy = getcol(k, j, 3); dz = getcol(k, j, 4); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %g %g %g", x[i], y[i], dx[i], dy[i], dz[i]); fputc('\n', cp); } break; case XYBOX: dx = getcol(k, j, 2); dy = getcol(k, j, 3); dz = getcol(k, j, 4); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %g %g %d", x[i], y[i], dx[i], dy[i], (int) dz[i]); fputc('\n', cp); } break; case XYBOXPLOT: dx = getcol(k, j, 2); dy = getcol(k, j, 3); dz = getcol(k, j, 4); dw = getcol(k, j, 5); for (i = 0; i < n; i++) { fprintf(cp, "%g %g %g %g %g %g", x[i], y[i], dx[i], dy[i], dz[i], dw[i]); fputc('\n', cp); } break; } fprintf(cp, "&\n"); } } } } fclose(cp); cg = save_cg; return 0; } void putparms(int gno, FILE * pp, int embed) { int i, j, k, ming, maxg; int ps, pt, gh, gl, gt, fx, fy, px, py; double dsx, dsy; char embedstr[2], tmpstr1[128], tmpstr2[128]; framep f; legend leg; labels lab; plotarr p; tickmarks t; world w; view v; char *p1, *p2, *tmpbuf; if (embed) { strcpy(embedstr, "@"); } else { embedstr[0] = 0; } fprintf(pp, "# ACE/gr parameter file\n"); fprintf(pp, "#\n"); fprintf(pp, "%sversion 40000\n", embedstr); /* Print some global variables. Added by Henrik Seidel Tue Jun 10 16:47:14 MET DST 1997 */ switch (page_layout) { case FREE: strcpy(tmpstr1, "free"); break; case LANDSCAPE: strcpy(tmpstr1, "landscape"); break; case PORTRAIT: strcpy(tmpstr1, "portrait"); break; case FIXED: strcpy(tmpstr1, "fixed"); break; default: strcpy(tmpstr1, "free"); break; } fprintf(pp, "%spage layout %s\n", embedstr, tmpstr1); if (*description) { tmpbuf = (char *) malloc ((size_t) (strlen (description) + 1)); if (tmpbuf == NULL) { errmsg("Error: Unable to malloc temporary in putparms()"); return; } strcpy (tmpbuf, description); p1 = tmpbuf; while ((p2 = strchr (p1, '\n')) != NULL) { *p2 = 0; fprintf (pp, "%sdescription \"%s\"\n", embedstr, escapequotes(p1)); *p2 = '\n'; p1 = p2; p1++; } if (*p1) fprintf (pp, "%sdescription \"%s\"\n", embedstr, escapequotes(p1)); free (tmpbuf); } /* End of added globals */ fprintf(pp, "%spage %d\n", embedstr, (int) (scrollper * 100)); fprintf(pp, "%spage inout %d\n", embedstr, (int) (shexper * 100)); fprintf(pp, "%slink page %s\n", embedstr, scrolling_islinked ? "on" : "off"); fprintf(pp, "%sdefault linestyle %d\n", embedstr, grdefaults.lines); fprintf(pp, "%sdefault linewidth %d\n", embedstr, grdefaults.linew); fprintf(pp, "%sdefault color %d\n", embedstr, grdefaults.color); fprintf(pp, "%sdefault char size %f\n", embedstr, grdefaults.charsize); fprintf(pp, "%sdefault font %d\n", embedstr, grdefaults.font); fprintf(pp, "%sdefault font source %d\n", embedstr, grdefaults.fontsrc); fprintf(pp, "%sdefault symbol size %f\n", embedstr, grdefaults.symsize); put_annotation(gno, pp, embed); put_region(pp, embed); if (gno == -1) { maxg = maxgraph - 1; ming = 0; } else { maxg = gno; ming = gno; } for (k = ming; k <= maxg; k++) { if (isactive_graph(k)) { gno = k; gh = g[gno].hidden; gl = g[gno].label; gt = g[gno].type; ps = g[gno].pointset; pt = g[gno].pt_type; dsx = g[gno].dsx; dsy = g[gno].dsy; fx = g[gno].fx; fy = g[gno].fy; px = g[gno].px; py = g[gno].py; fprintf(pp, "%swith g%1d\n", embedstr, gno); fprintf(pp, "%sg%1d %s\n", embedstr, gno, on_or_off(g[gno].active)); fprintf(pp, "%sg%1d label %s\n", embedstr, gno, on_or_off(gl)); fprintf(pp, "%sg%1d hidden %s\n", embedstr, gno, gh ? "true" : "false"); fprintf(pp, "%sg%1d type %s\n", embedstr, gno, graph_types(g[gno].type, 1)); fprintf(pp, "%sg%1d autoscale type %s\n", embedstr, gno, g[gno].auto_type == AUTO ? "AUTO" : "SPEC"); fprintf(pp, "%sg%1d fixedpoint %s\n", embedstr, gno, on_or_off(ps)); fprintf(pp, "%sg%1d fixedpoint type %d\n", embedstr, gno, pt); fprintf(pp, "%sg%1d fixedpoint xy %f, %f\n", embedstr, gno, dsx, dsy); strcpy(tmpstr1, get_format_types(fx)); strcpy(tmpstr2, get_format_types(fy)); fprintf(pp, "%sg%1d fixedpoint format %s %s\n", embedstr, gno, tmpstr1, tmpstr2); fprintf(pp, "%sg%1d fixedpoint prec %d, %d\n", embedstr, gno, px, py); get_graph_world(gno, &w); fprintf(pp, "%s world xmin %.12g\n", embedstr, w.xg1); fprintf(pp, "%s world xmax %.12g\n", embedstr, w.xg2); fprintf(pp, "%s world ymin %.12g\n", embedstr, w.yg1); fprintf(pp, "%s world ymax %.12g\n", embedstr, w.yg2); for (i = 0; i < g[gno].ws_top; i++) { fprintf(pp, "%s stack world %.9g, %.9g, %.9g, %.9g tick %g, %g, %g, %g\n", embedstr, g[gno].ws[i].w.xg1, g[gno].ws[i].w.xg2, g[gno].ws[i].w.yg1, g[gno].ws[i].w.yg2, g[gno].ws[i].t[0].xg1, g[gno].ws[i].t[0].xg2, g[gno].ws[i].t[0].yg1, g[gno].ws[i].t[0].yg2); } get_graph_view(gno, &v); fprintf(pp, "%s view xmin %f\n", embedstr, v.xv1); fprintf(pp, "%s view xmax %f\n", embedstr, v.xv2); fprintf(pp, "%s view ymin %f\n", embedstr, v.yv1); fprintf(pp, "%s view ymax %f\n", embedstr, v.yv2); get_graph_labels(gno, &lab); fprintf(pp, "%s title \"%s\"\n", embedstr, escapequotes(lab.title.s)); fprintf(pp, "%s title font %d\n", embedstr, lab.title.font); fprintf(pp, "%s title size %f\n", embedstr, lab.title.charsize); fprintf(pp, "%s title color %d\n", embedstr, lab.title.color); fprintf(pp, "%s title linewidth %d\n", embedstr, lab.title.linew); fprintf(pp, "%s subtitle \"%s\"\n", embedstr, escapequotes(lab.stitle.s)); fprintf(pp, "%s subtitle font %d\n", embedstr, lab.stitle.font); fprintf(pp, "%s subtitle size %f\n", embedstr, lab.stitle.charsize); fprintf(pp, "%s subtitle color %d\n", embedstr, lab.stitle.color); fprintf(pp, "%s subtitle linewidth %d\n", embedstr, lab.stitle.linew); for (i = 0; i < g[gno].maxplot; i++) { get_graph_plotarr(gno, i, &p); if (isactive_set(gno, i)) { /* setting the type here causes big problems fprintf(pp, "%s s%1d type %s\n", embedstr, i, (char *) set_types(p.type)); */ fprintf(pp, "%s s%1d symbol %d\n", embedstr, i, p.sym); fprintf(pp, "%s s%1d symbol size %f\n", embedstr, i, p.symsize); fprintf(pp, "%s s%1d symbol fill %d\n", embedstr, i, p.symfill); fprintf(pp, "%s s%1d symbol color %d\n", embedstr, i, p.symcolor); fprintf(pp, "%s s%1d symbol linewidth %d\n", embedstr, i, p.symlinew); fprintf(pp, "%s s%1d symbol linestyle %d\n", embedstr, i, p.symlines); fprintf(pp, "%s s%1d symbol center %s\n", embedstr, i, p.symdot ? "true" : "false"); fprintf(pp, "%s s%1d symbol char %d\n", embedstr, i, p.symchar); fprintf(pp, "%s s%1d skip %d\n", embedstr, i, p.symskip); fprintf(pp, "%s s%1d linestyle %d\n", embedstr, i, p.lines); fprintf(pp, "%s s%1d linewidth %d\n", embedstr, i, p.linew); fprintf(pp, "%s s%1d color %d\n", embedstr, i, p.color); fprintf(pp, "%s s%1d fill %d\n", embedstr, i, p.fill); fprintf(pp, "%s s%1d fill with %s\n", embedstr, i, p.fillusing == COLOR ? "color" : "pattern"); fprintf(pp, "%s s%1d fill color %d\n", embedstr, i, p.fillcolor); fprintf(pp, "%s s%1d fill pattern %d\n", embedstr, i, p.fillpattern); switch (p.errbarxy) { case TOP: fprintf(pp, "%s s%1d errorbar type TOP\n", embedstr, i); break; case BOTTOM: fprintf(pp, "%s s%1d errorbar type BOTTOM\n", embedstr, i); break; case LEFT: fprintf(pp, "%s s%1d errorbar type LEFT\n", embedstr, i); break; case RIGHT: fprintf(pp, "%s s%1d errorbar type RIGHT\n", embedstr, i); break; case BOTH: fprintf(pp, "%s s%1d errorbar type BOTH\n", embedstr, i); break; } fprintf(pp, "%s s%1d errorbar length %f\n", embedstr, i, p.errbarper); fprintf(pp, "%s s%1d errorbar linewidth %d\n", embedstr, i, p.errbar_linew); fprintf(pp, "%s s%1d errorbar linestyle %d\n", embedstr, i, p.errbar_lines); fprintf(pp, "%s s%1d errorbar riser %s\n", embedstr, i, p.errbar_riser == ON ? "on" : "off"); fprintf(pp, "%s s%1d errorbar riser linewidth %d\n", embedstr, i, p.errbar_riser_linew); fprintf(pp, "%s s%1d errorbar riser linestyle %d\n", embedstr, i, p.errbar_riser_lines); if (is_hotlinked(gno, i)) { fprintf(pp, "%s s%1d link %s \"%s\"\n", embedstr, i, p.hotsrc == DISK ? "disk" : "pipe", p.hotfile); } fprintf(pp, "%s s%1d comment \"%s\"\n", embedstr, i, p.comments); } } for (i = 0; i < MAXAXES; i++) { switch (i) { case 0: get_graph_tickmarks(gno, &t, X_AXIS); if (t.active == OFF) { fprintf(pp, "%s xaxis off\n", embedstr); continue; } sprintf(buf, "%s xaxis ", embedstr); break; case 1: get_graph_tickmarks(gno, &t, Y_AXIS); if (t.active == OFF) { fprintf(pp, "%s yaxis off\n", embedstr); continue; } sprintf(buf, "%s yaxis ", embedstr); break; case 2: get_graph_tickmarks(gno, &t, ZX_AXIS); if (t.active == OFF) { fprintf(pp, "%s zeroxaxis off\n", embedstr); continue; } sprintf(buf, "%s zeroxaxis ", embedstr); break; case 3: get_graph_tickmarks(gno, &t, ZY_AXIS); if (t.active == OFF) { fprintf(pp, "%s zeroyaxis off\n", embedstr); continue; } sprintf(buf, "%s zeroyaxis ", embedstr); break; } fprintf(pp, "%s tick %s\n", buf, on_or_off(t.active)); fprintf(pp, "%s tick major %.12g\n", buf, t.tmajor); fprintf(pp, "%s tick minor %.12g\n", buf, t.tminor); fprintf(pp, "%s tick offsetx %f\n", buf, t.offsx); fprintf(pp, "%s tick offsety %f\n", buf, t.offsy); /* DEFUNCT fprintf(pp, "%s tick alt %s\n", buf, on_or_off(t.alt)); fprintf(pp, "%s tick min %.12g\n", buf, t.tmin); fprintf(pp, "%s tick max %.12g\n", buf, t.tmax); */ fprintf(pp, "%s label \"%s\"\n", buf, t.label.s); if (t.label_layout == PERP) { fprintf(pp, "%s label layout perp\n", buf); } else { fprintf(pp, "%s label layout para\n", buf); } if (t.label_place == AUTO) { fprintf(pp, "%s label place auto\n", buf); } else { fprintf(pp, "%s label place spec\n", buf); fprintf(pp, "%s label place %f, %f\n", buf, t.label.x, t.label.y); } fprintf(pp, "%s label char size %f\n", buf, t.label.charsize); fprintf(pp, "%s label font %d\n", buf, t.label.font); fprintf(pp, "%s label color %d\n", buf, t.label.color); fprintf(pp, "%s label linewidth %d\n", buf, t.label.linew); fprintf(pp, "%s ticklabel %s\n", buf, on_or_off(t.tl_flag)); if (t.tl_type == AUTO) { fprintf(pp, "%s ticklabel type auto\n", buf); } else { fprintf(pp, "%s ticklabel type spec\n", buf); } fprintf(pp, "%s ticklabel prec %d\n", buf, t.tl_prec); fprintf(pp, "%s ticklabel format %s\n", buf, get_format_types(t.tl_format)); fprintf(pp, "%s ticklabel append \"%s\"\n", buf, t.tl_appstr); fprintf(pp, "%s ticklabel prepend \"%s\"\n", buf, t.tl_prestr); switch (t.tl_layout) { case HORIZONTAL: fprintf(pp, "%s ticklabel layout horizontal\n", buf); break; case VERTICAL: fprintf(pp, "%s ticklabel layout vertical\n", buf); break; case SPEC: fprintf(pp, "%s ticklabel layout spec\n", buf); fprintf(pp, "%s ticklabel angle %d\n", buf, t.tl_angle); break; } fprintf(pp, "%s ticklabel skip %d\n", buf, t.tl_skip); fprintf(pp, "%s ticklabel stagger %d\n", buf, t.tl_staggered); switch (t.tl_op) { case TOP: fprintf(pp, "%s ticklabel op top\n", buf); break; case BOTTOM: fprintf(pp, "%s ticklabel op bottom\n", buf); break; case LEFT: fprintf(pp, "%s ticklabel op left\n", buf); break; case RIGHT: fprintf(pp, "%s ticklabel op right\n", buf); break; case BOTH: fprintf(pp, "%s ticklabel op both\n", buf); break; } switch (t.tl_sign) { case NORMAL: fprintf(pp, "%s ticklabel sign normal\n", buf); break; case ABSOLUTE: fprintf(pp, "%s ticklabel sign absolute\n", buf); break; case NEGATE: fprintf(pp, "%s ticklabel sign negate\n", buf); break; } fprintf(pp, "%s ticklabel start type %s\n", buf, t.tl_starttype == AUTO ? "auto" : "spec"); fprintf(pp, "%s ticklabel start %f\n", buf, t.tl_start); fprintf(pp, "%s ticklabel stop type %s\n", buf, t.tl_stoptype == AUTO ? "auto" : "spec"); fprintf(pp, "%s ticklabel stop %f\n", buf, t.tl_stop); fprintf(pp, "%s ticklabel char size %f\n", buf, t.tl_charsize); fprintf(pp, "%s ticklabel font %d\n", buf, t.tl_font); fprintf(pp, "%s ticklabel color %d\n", buf, t.tl_color); fprintf(pp, "%s ticklabel linewidth %d\n", buf, t.tl_linew); fprintf(pp, "%s tick major %s\n", buf, on_or_off(t.t_flag)); fprintf(pp, "%s tick minor %s\n", buf, on_or_off(t.t_mflag)); fprintf(pp, "%s tick default %d\n", buf, t.t_num); switch (t.t_inout) { case IN: fprintf(pp, "%s tick in\n", buf); break; case OUT: fprintf(pp, "%s tick out\n", buf); break; case BOTH: fprintf(pp, "%s tick both\n", buf); break; } fprintf(pp, "%s tick major color %d\n", buf, t.t_color); fprintf(pp, "%s tick major linewidth %d\n", buf, t.t_linew); fprintf(pp, "%s tick major linestyle %d\n", buf, t.t_lines); fprintf(pp, "%s tick minor color %d\n", buf, t.t_mcolor); fprintf(pp, "%s tick minor linewidth %d\n", buf, t.t_mlinew); fprintf(pp, "%s tick minor linestyle %d\n", buf, t.t_mlines); fprintf(pp, "%s tick log %s\n", buf, on_or_off(t.t_log)); fprintf(pp, "%s tick size %f\n", buf, t.t_size); fprintf(pp, "%s tick minor size %f\n", buf, t.t_msize); fprintf(pp, "%s bar %s\n", buf, on_or_off(t.t_drawbar)); fprintf(pp, "%s bar color %d\n", buf, t.t_drawbarcolor); fprintf(pp, "%s bar linestyle %d\n", buf, t.t_drawbarlines); fprintf(pp, "%s bar linewidth %d\n", buf, t.t_drawbarlinew); fprintf(pp, "%s tick major grid %s\n", buf, on_or_off(t.t_gridflag)); fprintf(pp, "%s tick minor grid %s\n", buf, on_or_off(t.t_mgridflag)); switch (t.t_op) { case TOP: fprintf(pp, "%s tick op top\n", buf); break; case BOTTOM: fprintf(pp, "%s tick op bottom\n", buf); break; case LEFT: fprintf(pp, "%s tick op left\n", buf); break; case RIGHT: fprintf(pp, "%s tick op right\n", buf); break; case BOTH: fprintf(pp, "%s tick op both\n", buf); break; } if (t.t_type == AUTO) { fprintf(pp, "%s tick type auto\n", buf); } else { fprintf(pp, "%s tick type spec\n", buf); } fprintf(pp, "%s tick spec %d\n", buf, t.t_spec); for (j = 0; j < t.t_spec; j++) { fprintf(pp, "%s tick %d, %g\n", buf, j, t.t_specloc[j]); fprintf(pp, "%s ticklabel %d, \"%s\"\n", buf, j, t.t_speclab[j].s); } } get_graph_legend(gno, &leg); fprintf(pp, "%s legend %s\n", embedstr, on_or_off(leg.active)); fprintf(pp, "%s legend loctype %s\n", embedstr, w_or_v(leg.loctype)); fprintf(pp, "%s legend layout %d\n", embedstr, leg.layout); fprintf(pp, "%s legend vgap %d\n", embedstr, leg.vgap); fprintf(pp, "%s legend hgap %d\n", embedstr, leg.hgap); fprintf(pp, "%s legend length %d\n", embedstr, leg.len); fprintf(pp, "%s legend box %s\n", embedstr, on_or_off(leg.box)); fprintf(pp, "%s legend box fill %s\n", embedstr, on_or_off(leg.box)); fprintf(pp, "%s legend box fill with %s\n", embedstr, leg.boxfillusing == COLOR ? "color" : "pattern"); fprintf(pp, "%s legend box fill color %d\n", embedstr, leg.boxfillcolor); fprintf(pp, "%s legend box fill pattern %d\n", embedstr, leg.boxfillpat); fprintf(pp, "%s legend box color %d\n", embedstr, leg.boxlcolor); fprintf(pp, "%s legend box linewidth %d\n", embedstr, leg.boxlinew); fprintf(pp, "%s legend box linestyle %d\n", embedstr, leg.boxlines); fprintf(pp, "%s legend x1 %.12g\n", embedstr, leg.legx); fprintf(pp, "%s legend y1 %.12g\n", embedstr, leg.legy); fprintf(pp, "%s legend font %d\n", embedstr, leg.font); fprintf(pp, "%s legend char size %f\n", embedstr, leg.charsize); fprintf(pp, "%s legend linestyle %d\n", embedstr, leg.lines); fprintf(pp, "%s legend linewidth %d\n", embedstr, leg.linew); fprintf(pp, "%s legend color %d\n", embedstr, leg.color); for (i = 0; i < maxplot; i++) { if (isactive_set(gno, i)) { if (strlen(g[gno].p[i].lstr)) { fprintf(pp, "%s legend string %d \"%s\"\n", embedstr, i, escapequotes(g[gno].p[i].lstr)); } } } get_graph_framep(gno, &f); fprintf(pp, "%s frame %s\n", embedstr, on_or_off(f.active)); fprintf(pp, "%s frame type %d\n", embedstr, f.type); fprintf(pp, "%s frame linestyle %d\n", embedstr, f.lines); fprintf(pp, "%s frame linewidth %d\n", embedstr, f.linew); fprintf(pp, "%s frame color %d\n", embedstr, f.color); fprintf(pp, "%s frame fill %s\n", embedstr, on_or_off(f.fillbg)); fprintf(pp, "%s frame background color %d\n", embedstr, f.bgcolor); } } } static void put_annotation(int gno, FILE * pp, int embed) { int i; boxtype b; linetype l; ellipsetype e; plotstr s; char embedstr[2]; if (embed) { strcpy(embedstr, "@"); } else { embedstr[0] = 0; } for (i = 0; i < maxboxes; i++) { get_graph_box(i, &b); if (b.active == ON) { fprintf(pp, "%swith box\n", embedstr); fprintf(pp, "%s box on\n", embedstr); fprintf(pp, "%s box loctype %s\n", embedstr, w_or_v(b.loctype)); if (b.loctype == WORLD) { fprintf(pp, "%s box g%1d\n", embedstr, b.gno); } fprintf(pp, "%s box %.12g, %.12g, %.12g, %.12g\n", embedstr, b.x1, b.y1, b.x2, b.y2); fprintf(pp, "%s box linestyle %d\n", embedstr, b.lines); fprintf(pp, "%s box linewidth %d\n", embedstr, b.linew); fprintf(pp, "%s box color %d\n", embedstr, b.color); switch (b.fill) { case NONE: fprintf(pp, "%s box fill none\n", embedstr); break; case COLOR: fprintf(pp, "%s box fill color\n", embedstr); break; case PATTERN: fprintf(pp, "%s box fill pattern\n", embedstr); break; } fprintf(pp, "%s box fill color %d\n", embedstr, b.fillcolor); fprintf(pp, "%s box fill pattern %d\n", embedstr, b.fillpattern); fprintf(pp, "%sbox def\n", embedstr); } } for (i = 0; i < maxellipses; i++) { get_graph_ellipse(i, &e); if (e.active == ON) { fprintf(pp, "%swith ellipse\n", embedstr); fprintf(pp, "%s ellipse on\n", embedstr); fprintf(pp, "%s ellipse loctype %s\n", embedstr, w_or_v(e.loctype)); if (e.loctype == WORLD) { fprintf(pp, "%s ellipse g%1d\n", embedstr, e.gno); } fprintf(pp, "%s ellipse %.12g, %.12g, %.12g, %.12g\n", embedstr, e.x1, e.y1, e.x2, e.y2); fprintf(pp, "%s ellipse linestyle %d\n", embedstr, e.lines); fprintf(pp, "%s ellipse linewidth %d\n", embedstr, e.linew); fprintf(pp, "%s ellipse color %d\n", embedstr, e.color); switch (e.fill) { case NONE: fprintf(pp, "%s ellipse fill none\n", embedstr); break; case COLOR: fprintf(pp, "%s ellipse fill color\n", embedstr); break; case PATTERN: fprintf(pp, "%s ellipse fill pattern\n", embedstr); break; } fprintf(pp, "%s ellipse fill color %d\n", embedstr, e.fillcolor); fprintf(pp, "%s ellipse fill pattern %d\n", embedstr, e.fillpattern); fprintf(pp, "%sellipse def\n", embedstr); } } for (i = 0; i < maxlines; i++) { get_graph_line(i, &l); if (l.active == ON) { fprintf(pp, "%swith line\n", embedstr); fprintf(pp, "%s line on\n", embedstr); fprintf(pp, "%s line loctype %s\n", embedstr, w_or_v(l.loctype)); if (l.loctype == WORLD) { fprintf(pp, "%s line g%1d\n", embedstr, l.gno); } fprintf(pp, "%s line %.12g, %.12g, %.12g, %.12g\n", embedstr, l.x1, l.y1, l.x2, l.y2); fprintf(pp, "%s line linewidth %d\n", embedstr, l.linew); fprintf(pp, "%s line linestyle %d\n", embedstr, l.lines); fprintf(pp, "%s line color %d\n", embedstr, l.color); fprintf(pp, "%s line arrow %d\n", embedstr, l.arrow); fprintf(pp, "%s line arrow size %f\n", embedstr, l.asize); fprintf(pp, "%s line arrow type %d\n", embedstr, l.atype); fprintf(pp, "%sline def\n", embedstr); } } for (i = 0; i < maxstr; i++) { get_graph_string(i, &s); if (s.active == ON && s.s[0]) { fprintf(pp, "%swith string\n", embedstr); fprintf(pp, "%s string on\n", embedstr); fprintf(pp, "%s string loctype %s\n", embedstr, w_or_v(s.loctype)); if (s.loctype == WORLD) { fprintf(pp, "%s string g%1d\n", embedstr, s.gno); } fprintf(pp, "%s string %.12g, %.12g\n", embedstr, s.x, s.y); fprintf(pp, "%s string linewidth %d\n", embedstr, s.linew); fprintf(pp, "%s string color %d\n", embedstr, s.color); fprintf(pp, "%s string rot %d\n", embedstr, s.rot); fprintf(pp, "%s string font %d\n", embedstr, s.font); fprintf(pp, "%s string just %d\n", embedstr, s.just); fprintf(pp, "%s string char size %f\n", embedstr, s.charsize); fprintf(pp, "%sstring def \"%s\"\n", embedstr, escapequotes(s.s)); } } } static void put_region(FILE * pp, int embed) { int i, j; char embedstr[2]; if (embed) { strcpy(embedstr, "@"); } else { embedstr[0] = 0; } for (i = 0; i < MAXREGION; i++) { if (rg[i].active == ON) { fprintf(pp, "%sr%1d ON\n", embedstr, i); switch (rg[i].type) { case ABOVE: fprintf(pp, "%sr%1d type above\n", embedstr, i); break; case BELOW: fprintf(pp, "%sr%1d type below\n", embedstr, i); break; case LEFT: fprintf(pp, "%sr%1d type left\n", embedstr, i); break; case RIGHT: fprintf(pp, "%sr%1d type right\n", embedstr, i); break; case POLYI: fprintf(pp, "%sr%1d type polyi\n", embedstr, i); break; case POLYO: fprintf(pp, "%sr%1d type polyo\n", embedstr, i); break; } fprintf(pp, "%sr%1d linestyle %d\n", embedstr, i, rg[i].lines); fprintf(pp, "%sr%1d linewidth %d\n", embedstr, i, rg[i].linew); fprintf(pp, "%sr%1d color %d\n", embedstr, i, rg[i].color); if (rg[i].type != POLYI && rg[i].type != POLYO) { fprintf(pp, "%sr%1d line %.12g, %.12g, %.12g, %.12g\n", embedstr, i, rg[i].x1, rg[i].y1, rg[i].x2, rg[i].y2); } else { if (rg[i].x != NULL) { for (j = 0; j < rg[i].n; j++) { fprintf(pp, "%sr%1d xy %.12g, %.12g\n", embedstr, i, rg[i].x[j], rg[i].y[j]); } } } for (j = 0; j < maxgraph; j++) { if (rg[i].linkto[j] == TRUE) { fprintf(pp, "%slink r%1d to g%1d\n", embedstr, i, j); } } } } } grace-5.1.25/grconvert/Makefile0000644000076500001440000000163207505061045016107 0ustar fnevgenyusers##################################################### # Makefile for grconvert # ##################################################### # You should not change anything here. # ##################################################### TOP=.. include $(TOP)/Make.conf .SUFFIXES : .c $(O) PROG = grconvert$(EXE) SRCS = grconvert.c defaults.c readbin.c writeasc.c util.c OBJS = grconvert$(O) defaults$(O) readbin$(O) writeasc$(O) util$(O) CFLAGS = $(CFLAGS0) -I$(TOP) -I. $(CPPFLAGS) LIBS = $(XDR_LIB) $(NOGUI_LIBS) all : $(PROG) $(PROG) : $(OBJS) $(CC) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) $(OBJS) : grconvert.h tests : dummy links : dummy clean : $(RM) $(OBJS) distclean : $(RM) $(PROG) $(OBJS) devclean : $(RM) $(PROG) $(OBJS) install : $(PROG) $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/bin $(INSTALL_PROGRAM) -s $(PROG) $(DESTDIR)$(GRACE_HOME)/bin/$(PROG) dummy : grace-5.1.25/grconvert/readbin.c0000644000076500001440000007457206674026626016250 0ustar fnevgenyusers#include #include #include #include /* * for XDR */ #ifndef VMS # include #else # ifndef __ALPHA # define _XOPEN_SOURCE_EXTENDED 1 # endif # ifdef MULTINET # include # define DONT_DECLARE_MALLOC # include "multinet_root:[multinet.include.rpc]rpc.h" # else # include # endif #endif #include "grconvert.h" static XDR xdrs; #define BADMAGIC 999999 #define BADVERSION 999998 /* * Function prototypes */ int read_char(char *d, int n, FILE * fout); int read_int(int *d, int n, FILE * fout); int read_double(double *d, int n, FILE * fin); int read_charstr(char *d, FILE * fout); int read_float(float *d, int n, FILE * fout); int read_short(short *d, int n, FILE * fout); static int read_velocityp(velocityp * d, FILE * fin); static int read_world(world * d, FILE * fin); static int read_view(view * d, FILE * fin); static int read_world_stack(world_stack * d, FILE * fin); static int read_labels(labels * d, FILE * fin); static int read_plotarr(plotarr * d, FILE * fin); static int read_tickmarks(tickmarks * d, FILE * fin); static int read_legend(legend * d, FILE * fin); static int read_framep(framep * d, FILE * fin); static int read_BoxPlot(BoxPlot * d, FILE * fin); int replace_xdr_short( short *i ); /* * Read type boxtype */ int read_boxtype(boxtype * d, FILE * fin) { int err = 0; short magic, version, testmagic = 20, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->loctype), 1, fin))) return err; if ((err = read_int(&(d->gno), 1, fin))) return err; if ((err = read_double(&(d->x1), 1, fin))) return err; if ((err = read_double(&(d->y1), 1, fin))) return err; if ((err = read_double(&(d->x2), 1, fin))) return err; if ((err = read_double(&(d->y2), 1, fin))) return err; if ((err = read_int(&(d->lines), 1, fin))) return err; if ((err = read_int(&(d->linew), 1, fin))) return err; if ((err = read_int(&(d->color), 1, fin))) return err; if ((err = read_int(&(d->fill), 1, fin))) return err; if ((err = read_int(&(d->fillcolor), 1, fin))) return err; if ((err = read_int(&(d->fillpattern), 1, fin))) return err; return err; } /* * Read type ellipsetype */ int read_ellipsetype(ellipsetype * d, FILE * fin) { int err = 0; short magic, version, testmagic = 41, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) { /* try to recover so that older saves will be compatible */ replace_xdr_short( &magic ); return BADMAGIC; } if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->loctype), 1, fin))) return err; if ((err = read_int(&(d->gno), 1, fin))) return err; if ((err = read_double(&(d->x1), 1, fin))) return err; if ((err = read_double(&(d->y1), 1, fin))) return err; if ((err = read_double(&(d->x2), 1, fin))) return err; if ((err = read_double(&(d->y2), 1, fin))) return err; if ((err = read_int(&(d->lines), 1, fin))) return err; if ((err = read_int(&(d->linew), 1, fin))) return err; if ((err = read_int(&(d->color), 1, fin))) return err; if ((err = read_int(&(d->fill), 1, fin))) return err; if ((err = read_int(&(d->fillcolor), 1, fin))) return err; if ((err = read_int(&(d->fillpattern), 1, fin))) return err; return err; } /* * Read type linetype */ int read_linetype(linetype * d, FILE * fin) { int err = 0; short magic, version, testmagic = 21, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->loctype), 1, fin))) return err; if ((err = read_int(&(d->gno), 1, fin))) return err; if ((err = read_double(&(d->x1), 1, fin))) return err; if ((err = read_double(&(d->y1), 1, fin))) return err; if ((err = read_double(&(d->x2), 1, fin))) return err; if ((err = read_double(&(d->y2), 1, fin))) return err; if ((err = read_int(&(d->lines), 1, fin))) return err; if ((err = read_int(&(d->linew), 1, fin))) return err; if ((err = read_int(&(d->color), 1, fin))) return err; if ((err = read_int(&(d->arrow), 1, fin))) return err; if ((err = read_int(&(d->atype), 1, fin))) return err; if ((err = read_double(&(d->asize), 1, fin))) return err; return err; } /* * Read type plotstr */ int read_plotstr(plotstr * d, FILE * fin) { int i, err = 0; short magic, version, testmagic = 22, testversion = 0; if ((err = read_short(&magic, 1, fin))) return 1; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return 2; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return 3; if ((err = read_int(&(d->loctype), 1, fin))) return 4; if ((err = read_int(&(d->gno), 1, fin))) return 5; if ((err = read_double(&(d->x), 1, fin))) return 6; if ((err = read_double(&(d->y), 1, fin))) return 7; if ((err = read_int(&(d->lines), 1, fin))) return 8; if ((err = read_int(&(d->linew), 1, fin))) return 9; if ((err = read_int(&(d->color), 1, fin))) return 10; if ((err = read_int(&(d->rot), 1, fin))) return 11; if ((err = read_int(&(d->font), 1, fin))) return 12; if ((err = read_int(&(d->just), 1, fin))) return 13; if ((err = read_double(&(d->charsize), 1, fin))) return 14; if ((err = read_int(&i, 1, fin))) return 15; if (i <= 0) { err = -1; return 0; } /* if (d->s != NULL) { free(d->s); } else { d->s = (char *) malloc(i * sizeof(char)); } */ d->s = (char *) malloc(i * sizeof(char)); if ((err = read_char(d->s, i, fin))) return 16; return err; } /* * Read type velocityp */ static int read_velocityp(velocityp * d, FILE * fin) { int err = 0; short magic, version, testmagic = 25, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->type), 1, fin))) return err; if ((err = read_int(&(d->color), 1, fin))) return err; if ((err = read_int(&(d->lines), 1, fin))) return err; if ((err = read_int(&(d->linew), 1, fin))) return err; if ((err = read_int(&(d->arrowtype), 1, fin))) return err; if ((err = read_int(&(d->loctype), 1, fin))) return err; if ((err = read_double(&(d->velx), 1, fin))) return err; if ((err = read_double(&(d->vely), 1, fin))) return err; if ((err = read_double(&(d->vscale), 1, fin))) return err; if ((err = read_int(&(d->units), 1, fin))) return err; if ((err = read_double(&(d->userlength), 1, fin))) return err; if ((err = read_plotstr(&(d->vstr), fin))) return err; return err; } /* * Read type world */ static int read_world(world * d, FILE * fin) { int err = 0; short magic, version, testmagic = 26, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_double(&(d->xg1), 1, fin))) return err; if ((err = read_double(&(d->xg2), 1, fin))) return err; if ((err = read_double(&(d->yg1), 1, fin))) return err; if ((err = read_double(&(d->yg2), 1, fin))) return err; return err; } /* * Read type view */ static int read_view(view * d, FILE * fin) { int err = 0; short magic, version, testmagic = 27, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_double(&(d->xv1), 1, fin))) return err; if ((err = read_double(&(d->xv2), 1, fin))) return err; if ((err = read_double(&(d->yv1), 1, fin))) return err; if ((err = read_double(&(d->yv2), 1, fin))) return err; return err; } /* * Read type world_stack */ static int read_world_stack(world_stack * d, FILE * fin) { int i, err = 0; short magic, version, testmagic = 28, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_world(&(d->w), fin))) return err; for (i = 0; i < 3; i++) { if ((err = read_world(&(d->t[i]), fin))) return err; } return err; } /* * Read type labels */ static int read_labels(labels * d, FILE * fin) { int err = 0; short magic, version, testmagic = 29, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_plotstr(&(d->title), fin))) return err; if ((err = read_plotstr(&(d->stitle), fin))) return err; return err; } /* * Read type plotarr */ static int read_plotarr(plotarr * d, FILE * fin) { char buf[512]; int i, cnt, ind, err = 0; short magic, version, testmagic = 33, testversion = 0; if ((err = read_short(&magic, 1, fin))) return 1; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return 2; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return 3; if ((err = read_int(&(d->type), 1, fin))) return 4; if ((err = read_int(&(d->deact), 1, fin))) return 5; if ((err = read_int(&(d->len), 1, fin))) return 6; if ((err = read_double(&(d->missing), 1, fin))) return 7; if ((err = read_int(&cnt, 1, fin))) return 8; for (i = 0; i < cnt; i++) { if ((err = read_int(&ind, 1, fin))) return 9; d->ex[ind] = (double *) malloc(d->len * sizeof(double)); if ((err = read_double(d->ex[ind], d->len, fin))) return 10; } if (d->type == XYSTRING) { d->s = (char **) malloc(d->len * sizeof(char *)); if (d->s == NULL) { return 101; } for (i=0;ilen;i++) { if ((err = read_charstr(buf, fin))) return 102; d->s[i] = (char *) malloc((strlen(buf) + 1) * sizeof(char)); if (d->s[i] == NULL) { return 101; } strcpy(d->s[i], buf); } } if ((err = read_double(&(d->xmin), 1, fin))) return 11; if ((err = read_double(&(d->xmax), 1, fin))) return 12; if ((err = read_double(&(d->ymin), 1, fin))) return 13; if ((err = read_double(&(d->ymax), 1, fin))) return 14; if ((err = read_int(&(d->sym), 1, fin))) return 15; if ((err = read_char(&(d->symchar), 1, fin))) return 16; if ((err = read_int(&(d->symskip), 1, fin))) return 17; if ((err = read_int(&(d->symfill), 1, fin))) return 18; if ((err = read_int(&(d->symdot), 1, fin))) return 19; if ((err = read_int(&(d->symlines), 1, fin))) return 20; if ((err = read_int(&(d->symlinew), 1, fin))) return 21; if ((err = read_int(&(d->symcolor), 1, fin))) return 22; if ((err = read_double(&(d->symsize), 1, fin))) return 23; if ((err = read_int(&(d->avgflag), 1, fin))) return 24; if ((err = read_int(&(d->avgstdflag), 1, fin))) return 25; if ((err = read_int(&(d->avg2stdflag), 1, fin))) return 26; if ((err = read_int(&(d->avg3stdflag), 1, fin))) return 27; if ((err = read_int(&(d->avgallflag), 1, fin))) return 28; if ((err = read_int(&(d->avgvalflag), 1, fin))) return 29; if ((err = read_int(&(d->harmonicflag), 1, fin))) return 30; if ((err = read_int(&(d->geometricflag), 1, fin))) return 31; if ((err = read_int(&(d->font), 1, fin))) return 32; if ((err = read_int(&(d->format), 1, fin))) return 33; if ((err = read_int(&(d->prec), 1, fin))) return 34; if ((err = read_int(&(d->just), 1, fin))) return 35; if ((err = read_int(&(d->where), 1, fin))) return 36; if ((err = read_double(&(d->valsize), 1, fin))) return 37; if ((err = read_int(&(d->lines), 1, fin))) return 38; if ((err = read_int(&(d->linew), 1, fin))) return 39; if ((err = read_int(&(d->color), 1, fin))) return 40; if ((err = read_int(&(d->lineskip), 1, fin))) return 41; if ((err = read_int(&(d->fill), 1, fin))) return 42; if ((err = read_int(&(d->fillusing), 1, fin))) return 43; if ((err = read_int(&(d->fillcolor), 1, fin))) return 44; if ((err = read_int(&(d->fillpattern), 1, fin))) return 45; if ((err = read_int(&(d->errbar), 1, fin))) return 46; if ((err = read_int(&(d->errbarxy), 1, fin))) return 47; if ((err = read_int(&(d->errbar_linew), 1, fin))) return 48; if ((err = read_int(&(d->errbar_lines), 1, fin))) return 49; if ((err = read_int(&(d->errbar_riser), 1, fin))) return 50; if ((err = read_int(&(d->errbar_riser_linew), 1, fin))) return 51; if ((err = read_int(&(d->errbar_riser_lines), 1, fin))) return 52; if ((err = read_double(&(d->errbarper), 1, fin))) return 53; if ((err = read_double(&(d->hilowper), 1, fin))) return 54; if ((err = read_int(&(d->density_plot), 1, fin))) return 55; if ((err = read_double(&(d->zmin), 1, fin))) return 56; if ((err = read_double(&(d->zmax), 1, fin))) return 57; if ((err = read_charstr(d->comments, fin))) return 58; if ((err = read_charstr(d->lstr, fin))) return 58; if ((err = read_int(&(d->hotlink), 1, fin))) return 59; if ((err = read_int(&(d->hotsrc), 1, fin))) return 60; if ((err = read_charstr(d->hotfile, fin))) return 61; if ((err = read_double(d->emin, 6, fin))) return 62; if ((err = read_double(d->emax, 6, fin))) return 63; if ((err = read_int(d->imin, 6, fin))) return 64; if ((err = read_int(d->imax, 6, fin))) return 65; /* TODO for (i = 0; i < 0; i++) { if ((err = read_Regression(d->r, fin))) return err; } TODO for (i = 0; i < 0; i++) { if ((err = read_Spline(d->spl, fin))) return err; } */ return err; } /* * Read type tickmarks */ static int read_tickmarks(tickmarks * d, FILE * fin) { int i, cnt, err = 0; short magic, version, testmagic = 34, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->axis), 1, fin))) return err; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->alt), 1, fin))) return err; if ((err = read_double(&(d->tmin), 1, fin))) return err; if ((err = read_double(&(d->tmax), 1, fin))) return err; if ((err = read_double(&(d->tmajor), 1, fin))) return err; if ((err = read_double(&(d->tminor), 1, fin))) return err; if ((err = read_double(&(d->offsx), 1, fin))) return err; if ((err = read_double(&(d->offsy), 1, fin))) return err; if ((err = read_plotstr(&(d->label), fin))) return err; if ((err = read_int(&(d->label_layout), 1, fin))) return err; if ((err = read_int(&(d->label_place), 1, fin))) return err; if ((err = read_int(&(d->tl_flag), 1, fin))) return err; if ((err = read_int(&(d->tl_type), 1, fin))) return err; if ((err = read_int(&(d->tl_layout), 1, fin))) return err; if ((err = read_int(&(d->tl_angle), 1, fin))) return err; if ((err = read_int(&(d->tl_sign), 1, fin))) return err; if ((err = read_int(&(d->tl_just), 1, fin))) return err; if ((err = read_int(&(d->tl_prec), 1, fin))) return err; if ((err = read_int(&(d->tl_format), 1, fin))) return err; if ((err = read_int(&(d->tl_skip), 1, fin))) return err; if ((err = read_int(&(d->tl_staggered), 1, fin))) return err; if ((err = read_int(&(d->tl_starttype), 1, fin))) return err; if ((err = read_int(&(d->tl_stoptype), 1, fin))) return err; if ((err = read_double(&(d->tl_start), 1, fin))) return err; if ((err = read_double(&(d->tl_stop), 1, fin))) return err; if ((err = read_int(&(d->tl_op), 1, fin))) return err; if ((err = read_double(&(d->tl_vgap), 1, fin))) return err; if ((err = read_double(&(d->tl_hgap), 1, fin))) return err; if ((err = read_int(&(d->tl_font), 1, fin))) return err; if ((err = read_double(&(d->tl_charsize), 1, fin))) return err; if ((err = read_int(&(d->tl_color), 1, fin))) return err; if ((err = read_int(&(d->tl_linew), 1, fin))) return err; if ((err = read_charstr(d->tl_appstr, fin))) return err; if ((err = read_charstr(d->tl_prestr, fin))) return err; if ((err = read_int(&(d->t_type), 1, fin))) return err; if ((err = read_int(&(d->t_flag), 1, fin))) return err; if ((err = read_int(&(d->t_mflag), 1, fin))) return err; if ((err = read_int(&(d->t_integer), 1, fin))) return err; if ((err = read_int(&(d->t_num), 1, fin))) return err; if ((err = read_int(&(d->t_inout), 1, fin))) return err; if ((err = read_int(&(d->t_log), 1, fin))) return err; if ((err = read_int(&(d->t_op), 1, fin))) return err; if ((err = read_int(&(d->t_color), 1, fin))) return err; if ((err = read_int(&(d->t_lines), 1, fin))) return err; if ((err = read_int(&(d->t_linew), 1, fin))) return err; if ((err = read_int(&(d->t_mcolor), 1, fin))) return err; if ((err = read_int(&(d->t_mlines), 1, fin))) return err; if ((err = read_int(&(d->t_mlinew), 1, fin))) return err; if ((err = read_double(&(d->t_size), 1, fin))) return err; if ((err = read_double(&(d->t_msize), 1, fin))) return err; if ((err = read_int(&(d->t_drawbar), 1, fin))) return err; if ((err = read_int(&(d->t_drawbarcolor), 1, fin))) return err; if ((err = read_int(&(d->t_drawbarlines), 1, fin))) return err; if ((err = read_int(&(d->t_drawbarlinew), 1, fin))) return err; if ((err = read_int(&(d->t_gridflag), 1, fin))) return err; if ((err = read_int(&(d->t_mgridflag), 1, fin))) return err; if ((err = read_int(&(d->t_spec), 1, fin))) return err; if ((err = read_int(&cnt, 1, fin))) return err; if ((err = read_double(d->t_specloc, cnt, fin))) return err; for (i = 0; i < cnt; i++) { if ((err = read_plotstr(&(d->t_speclab[i]), fin))) return err; } if ((err = read_int(&(d->spec_font), 1, fin))) return err; if ((err = read_double(&(d->spec_charsize), 1, fin))) return err; if ((err = read_int(&(d->spec_color), 1, fin))) return err; if ((err = read_int(&(d->spec_linew), 1, fin))) return err; return err; } /* * Read type legend */ static int read_legend(legend * d, FILE * fin) { int err = 0; short magic, version, testmagic = 36, testversion = 0; if ((err = read_short(&magic, 1, fin))) return 1; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return 2; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return 3; if ((err = read_int(&(d->loctype), 1, fin))) return 4; if ((err = read_int(&(d->layout), 1, fin))) return 5; if ((err = read_int(&(d->vgap), 1, fin))) return 6; if ((err = read_int(&(d->hgap), 1, fin))) return err; if ((err = read_int(&(d->len), 1, fin))) return 7; if ((err = read_int(&(d->box), 1, fin))) return 8; if ((err = read_double(&(d->legx), 1, fin))) return 9; if ((err = read_double(&(d->legy), 1, fin))) return 10; if ((err = read_int(&(d->font), 1, fin))) return 11; if ((err = read_double(&(d->charsize), 1, fin))) return 12; if ((err = read_int(&(d->color), 1, fin))) return 13; if ((err = read_int(&(d->linew), 1, fin))) return 14; if ((err = read_int(&(d->lines), 1, fin))) return 15; if ((err = read_int(&(d->boxfill), 1, fin))) return 16; if ((err = read_int(&(d->boxfillusing), 1, fin))) return 17; if ((err = read_int(&(d->boxfillcolor), 1, fin))) return 18; if ((err = read_int(&(d->boxfillpat), 1, fin))) return 19; if ((err = read_int(&(d->boxlcolor), 1, fin))) return 20; if ((err = read_int(&(d->boxlinew), 1, fin))) return 21; if ((err = read_int(&(d->boxlines), 1, fin))) return 22; return err; } /* * Read type framep */ static int read_framep(framep * d, FILE * fin) { int err = 0; short magic, version, testmagic = 38, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->type), 1, fin))) return err; if ((err = read_int(&(d->color), 1, fin))) return err; if ((err = read_int(&(d->lines), 1, fin))) return err; if ((err = read_int(&(d->linew), 1, fin))) return err; if ((err = read_int(&(d->fillbg), 1, fin))) return err; if ((err = read_int(&(d->bgcolor), 1, fin))) return err; return err; } /* * Read type BoxPlot */ static int read_BoxPlot(BoxPlot * d, FILE * fin) { int err = 0; short magic, version, testmagic = 39, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_double(&(d->il), 1, fin))) return err; if ((err = read_double(&(d->iu), 1, fin))) return err; if ((err = read_double(&(d->ol), 1, fin))) return err; if ((err = read_double(&(d->ou), 1, fin))) return err; if ((err = read_int(&(d->nthresh), 1, fin))) return err; if ((err = read_int(&(d->outliers), 1, fin))) return err; if ((err = read_int(&(d->wtype), 1, fin))) return err; if ((err = read_double(&(d->boxwid), 1, fin))) return err; return err; } /* * Read type graph */ int read_graph(graph * d, FILE * fin) { int i, cnt, ind, err = 0; short magic, version, testmagic = 40, testversion = 0; if ((err = read_short(&magic, 1, fin))) return err; if (magic != testmagic) return BADMAGIC; if ((err = read_short(&version, 1, fin))) return err; if (version != testversion) return BADVERSION; if ((err = read_int(&(d->active), 1, fin))) return err; if ((err = read_int(&(d->hidden), 1, fin))) return err; if ((err = read_int(&(d->label), 1, fin))) return err; if ((err = read_int(&(d->type), 1, fin))) return err; if ((err = read_int(&(d->noauto_world), 1, fin))) return err; if ((err = read_int(&(d->noauto_tics), 1, fin))) return err; if ((err = read_int(&(d->auto_type), 1, fin))) return err; if ((err = read_int(&(d->parmsread), 1, fin))) return err; /* parmsread must be assumed to be true when read from a binary file */ /* (we don't erase the above 2 lines for the sake of compatibility) */ d->parmsread = TRUE; if ((err = read_int(&(d->revx), 1, fin))) return err; if ((err = read_int(&(d->revy), 1, fin))) return err; if ((err = read_int(&(d->maxplot), 1, fin))) return err; if ((err = read_int(&cnt, 1, fin))) return err; for (i = 0; i < cnt; i++) { if ((err = read_int(&ind, 1, fin))) return err; if ((err = read_plotarr(&(d->p[ind]), fin))) { return err; } } if ((err = read_legend(&(d->l), fin))) { return err; } if ((err = read_world(&(d->w), fin))) return err; if ((err = read_view(&(d->v), fin))) return err; if ((err = read_world(&(d->rt), fin))) return err; if ((err = read_labels(&(d->labs), fin))) return err; for (i = 0; i < 4; i++) { if ((err = read_tickmarks(&(d->t[i]), fin))) return err; } if ((err = read_framep(&(d->f), fin))) return err; if ((err = read_int(&(d->pointset), 1, fin))) return err; if ((err = read_int(&(d->pt_type), 1, fin))) return err; if ((err = read_double(&(d->dsx), 1, fin))) return err; if ((err = read_double(&(d->dsy), 1, fin))) return err; if ((err = read_int(&(d->fx), 1, fin))) return err; if ((err = read_int(&(d->fy), 1, fin))) return err; if ((err = read_int(&(d->px), 1, fin))) return err; if ((err = read_int(&(d->py), 1, fin))) return err; if ((err = read_int(&(d->ws_top), 1, fin))) return err; for (i = 0; i < d->ws_top; i++) { if ((err = read_world_stack(&(d->ws[i]), fin))) return err; } /* add this for compatability issues */ if( d->ws_top == 0 ) d->ws_top = 1; if ((err = read_int(&(d->curw), 1, fin))) return err; if ((err = read_velocityp(&(d->vp), fin))) return err; if ((err = read_BoxPlot(&(d->bp), fin))) return err; return err; } void open_xdr(FILE *fp, int rw) /* rw write = 0, read = 1 */ { if (rw == 0) { xdrstdio_create(&xdrs, fp, XDR_ENCODE); } else { xdrstdio_create(&xdrs, fp, XDR_DECODE); } } void close_xdr(void) { /* xdr_destroy(&xdrs); */ } int read_double(double *d, int n, FILE * fp) { int err; if (n <= 0) return 0; err = xdr_vector(&xdrs, (char *) d, n, sizeof(double), (xdrproc_t) xdr_double); return err ? 0 : err; } int read_int(int *d, int n, FILE * fp) { int err; if (n <= 0) return 0; err = xdr_vector(&xdrs, (char *) d, n, sizeof(int), (xdrproc_t) xdr_int); return err ? 0 : err; } int read_charstr(char *d, FILE * fp) { int err, n; n = strlen(d) + 1; xdr_int(&xdrs, &n); err = xdr_vector(&xdrs, (char *) d, n, sizeof(char), (xdrproc_t) xdr_char); return err ? 0 : err; } int read_char(char *d, int n, FILE * fp) { int err; if (n <= 0) return 0; err = xdr_vector(&xdrs, (char *) d, n, sizeof(char), (xdrproc_t) xdr_char); return err ? 0 : err; } int read_short(short *d, int n, FILE * fp) { int err; if (n <= 0) return 0; err = xdr_vector(&xdrs, (char *) d, n, sizeof(short), (xdrproc_t) xdr_short); return err ? 0 : err; } int read_float(float *d, int n, FILE * fp) { int err; if (n <= 0) return 0; err = xdr_vector(&xdrs, (char *) d, n, sizeof(float), (xdrproc_t) xdr_float); return err ? 0 : err; } int replace_xdr_int( int *i ) { int err; xdr_setpos( &xdrs, xdr_getpos( &xdrs )-4 ); err = xdr_vector(&xdrs, (char *) i, 1, sizeof(int), (xdrproc_t) xdr_int); xdr_setpos( &xdrs, xdr_getpos( &xdrs )-4 ); return err ? 0: err; } int replace_xdr_short( short *i ) { int err; xdr_setpos( &xdrs, xdr_getpos( &xdrs )-4 ); err = xdr_vector(&xdrs, (char *) i, 1, sizeof(short), (xdrproc_t) xdr_short); xdr_setpos( &xdrs, xdr_getpos( &xdrs )-4 ); return err ? 0: err; } /* * write state information */ #define PARMS_MAGIC 1002003 #define HEADERLENGTH 64 int is_state_save(char *fname) { int magic, clen, slen, ilen, flen, dlen; char buf[256]; char ver[64], ord[64], math[64], name[64]; FILE *fp; if ((fp = fopen(fname, "r")) == NULL) { return 0; } open_xdr(fp, 1); /* open XDR stream */ read_char(buf, HEADERLENGTH, fp); buf[HEADERLENGTH - 1] = 0; sscanf(buf, "%d %s %s %s %s %d %d %d %d %d", &magic, ver, ord, math, name, &clen, &slen, &ilen, &flen, &dlen); close_xdr(); fclose(fp); return (magic == PARMS_MAGIC) ? 1 : 0; } /* * getbinary - read in binary project file * * return: 0 - o.k. * 1 - nothing read in * 2 - partial read */ int getbinary(int gno, char *fname, int imbed) { int ind, i, k, cnt, ng, magic; int clen, slen, ilen, flen, dlen, nblocks; char buf[256]; char ver[64], ord[64], math[64], name[64]; FILE *pp; if ((pp = fopen(fname, "rb")) == NULL) { sprintf(buf, "Can't open project file %s", fname); errmsg(buf); return 1; } strcpy( docname, fname ); open_xdr(pp, 1); /* open XDR stream */ read_char(buf, HEADERLENGTH, pp); buf[HEADERLENGTH - 1] = 0; sscanf(buf, "%d %s %s %s %s %d %d %d %d %d", &magic, ver, ord, math, name, &clen, &slen, &ilen, &flen, &dlen); if (magic != PARMS_MAGIC) { errmsg("Bad magic in project file"); fclose(pp); return 1; } read_int(&cnt, 1, pp); for (k = 0; k < cnt; k++) { read_int(&ng, 1, pp); if (read_graph(&g[ng], pp)) { errmsg("Error reading project file (graphs), cancelled"); fclose(pp); return 2; } } read_int(&cnt, 1, pp); for (k = 0; k < cnt; k++) { read_int(&ind, 1, pp); if (read_linetype(&lines[ind], pp)) { errmsg("Error reading project file (lines), cancelled"); fclose(pp); return 2; } lines[ind].active = ON; } read_int(&cnt, 1, pp); for (k = 0; k < cnt; k++) { read_int(&ind, 1, pp); if (read_boxtype(&boxes[ind], pp)) { errmsg("Error reading project file (boxes), cancelled"); fclose(pp); return 2; } boxes[ind].active = ON; } read_int(&cnt, 1, pp); for (k = 0; k < cnt; k++) { read_int(&ind, 1, pp); switch(read_ellipsetype(&ellip[ind], pp)) { case 0: ellip[ind].active = ON; break; case BADMAGIC: /* assume error from reading pre-ellipse file so put things back onto stream */ if( replace_xdr_int( &ind ) || replace_xdr_int( &cnt ) ) { errmsg("Error reading project file (ellipses), cancelled"); fclose(pp); return 2; } else k = cnt; /* end loop */ break; default: errmsg("Error reading project file (plotstr), cancelled"); fclose(pp); return 2; } } read_int(&cnt, 1, pp); for (k = 0; k < cnt; k++) { read_int(&ind, 1, pp); if (read_plotstr(&pstr[ind], pp)) { errmsg("Error reading project file (plotstr), cancelled"); fclose(pp); return 2; } } /* read block data */ read_int(&nblocks, 1, pp); if (nblocks != 0) { read_int(&blocklen, 1, pp); read_int(&blockncols, 1, pp); for (i = 0; i < blockncols; i++) { read_int(&ind, 1, pp); /* TODO need to fix this malloc business */ blockdata[ind] = (double *) malloc(sizeof(double) * blocklen); read_double(blockdata[ind], blocklen, pp); } } /* read description */ if( read_charstr( description, pp ) ) strcpy( description, "Just a typical project I assume" ); if( read_int(&page_layout, 1, pp)) page_layout=FREE; close_xdr(); fclose(pp); return 0; } grace-5.1.25/cmath.h0000644000076500001440000000730310071615553013705 0ustar fnevgenyusers/* * Grace - GRaphing, Advanced Computation and Exploration of data * * Home page: http://plasma-gate.weizmann.ac.il/Grace/ * * Copyright (c) 1991-1995 Paul J Turner, Portland, OR * Copyright (c) 1996-2000 Grace Development Team * * Maintained by Evgeny Stambulchik * * * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* cmath.h - replacement for math.h or missing in libm functions */ #include #if defined(HAVE_MATH_H) # include #endif #if defined(HAVE_FLOAT_H) # include #endif #if defined(HAVE_IEEEFP_H) # include #endif #ifndef __GRACE_SOURCE_ #ifndef MACHEP extern double MACHEP; #endif #ifndef UFLOWTHRESH extern double UFLOWTHRESH; #endif #ifndef MAXNUM extern double MAXNUM; #endif #endif /* __GRACE_SOURCE_ */ #ifndef M_PI # define M_PI 3.14159265358979323846 #endif #ifndef M_SQRT2 # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ #endif #ifndef M_SQRT1_2 # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ #endif #ifndef M_SQRT1_3 # define M_SQRT1_3 0.57735026918962576451 /* 1/sqrt(3) */ #endif #ifndef HAVE_HYPOT # define hypot(x, y) sqrt((x)*(x) + (y)*(y)) #endif extern double round ( double x ); #ifndef HAVE_RINT # define rint round #else # ifndef HAVE_RINT_DECL extern double rint ( double x ); # endif #endif #ifndef HAVE_CBRT_DECL extern double cbrt ( double x ); #endif /* Cygnus gnuwin32 has the log2 macro */ #ifdef log2 # undef log2 #endif #ifndef HAVE_LOG2_DECL extern double log2 ( double x ); #endif #ifndef HAVE_LGAMMA extern int sgngam; # define lgamma lgam # define signgam sgngam extern double lgam ( double x ); #else # ifndef HAVE_LGAMMA_DECL extern double lgamma ( double x ); # endif # ifndef HAVE_SIGNGAM_DECL extern int signgam; # endif # define lgam lgamma # define sgngam signgam #endif #ifndef HAVE_ACOSH_DECL extern double acosh ( double x ); #endif #ifndef HAVE_ASINH_DECL extern double asinh ( double x ); #endif #ifndef HAVE_ATANH_DECL extern double atanh ( double x ); #endif #ifndef HAVE_ERF_DECL extern double erf ( double x ); #endif #ifndef HAVE_ERFC_DECL extern double erfc ( double x ); #endif #ifndef HAVE_Y0_DECL extern double y0 ( double x ); #endif #ifndef HAVE_Y1_DECL extern double y1 ( double x ); #endif #ifndef HAVE_YN_DECL extern double yn ( int n, double x ); #endif #ifndef HAVE_J0_DECL extern double j0 ( double x ); #endif #ifndef HAVE_J1_DECL extern double j1 ( double x ); #endif #ifndef HAVE_JN_DECL extern double jn ( int n, double x ); #endif /* isfinite is a macro */ #ifdef isfinite # define HAVE_ISFINITE_MACRO #endif #ifndef HAVE_FINITE # define finite isfinite # if !defined(HAVE_ISFINITE_DECL) && !defined(HAVE_ISFINITE_MACRO) extern int isfinite ( double x ); # endif #else # ifndef HAVE_FINITE_DECL extern int finite ( double x ); # endif #endif /* isnan is a macro */ #ifdef isnan # define HAVE_ISNAN_MACRO #endif #if !defined(HAVE_ISNAN_DECL) && !defined(HAVE_ISNAN_MACRO) extern int isnan ( double x ); #endif grace-5.1.25/COPYRIGHT0000644000076500001440000000157112467751370013745 0ustar fnevgenyusersCopyright (c) 1991-1995 Paul J Turner, Portland, OR Copyright (c) 1996-2015 Grace Development Team Maintained by Evgeny Stambulchik All Rights Reserved This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. grace-5.1.25/arch/0000755000076500001440000000000012467751541013363 5ustar fnevgenyusersgrace-5.1.25/arch/os2/0000755000076500001440000000000012467751541014066 5ustar fnevgenyusersgrace-5.1.25/arch/os2/Make.conf.os20000644000076500001440000000374507314217056016316 0ustar fnevgenyusers# No make rules by default .SUFFIXES: # Extension of object files O=.o # Extension of executables EXE=.exe # Extension of batch files BAT=.cmd # Bourn shell SHELL=sh # Path prefix for installation links PREFIX=$(X11ROOT)/XFree86 # List of subdirectories # I'll comment out if I have a DLL available of the library #SUBDIRS=cephes T1lib Xbae/Xbae src grace_np templates doc examples auxiliary SUBDIRS=cephes src grace_np templates doc examples auxiliary # Name of executable GRACE=xmgrace.exe # Location of the Grace home GRACE_HOME=$(X11ROOT)/XFree86/lib/grace # Relocatable that contains alloca() ALLOCA= # Type1 fonts library #T1_LIB=../../T1lib/t1lib.a T1_LIB=-lt1 # T1 include path #T1_INC=-I../../T1lib T1_INC= # T1lib defines (if the bundled version to be used) T1_AA_TYPE16=short T1_AA_TYPE32=int T1_AA_TYPE64= # Library containing XDR functions XDR_LIB=-lrpc -lsocket # Library containing dll-related functions DL_LIB= # FFTW library FFTW_LIB=-lfftw # netCDF libraries NETCDF_LIBS= # JPEG library JPEG_LIB=-ljpeg # libz library Z_LIB=-lz # PNG library PNG_LIB=-lpng # TIFF library TIFF_LIB=-ltiff # PDFlib library PDF_LIB=-lpdf # Xbae include path #XBAE_INC=-I../Xbae XBAE_INC= # Location of yacc (or its substitution) YACC=yacc # C compiler CC=gcc # F77 compiler FC=g77 # ar AR=ar # ranlib RANLIB=ar s # rm RM=rm -f # soft link LN_S=cp # BSD install INSTALL= INSTALL_PROGRAM= INSTALL_DATA= MKINSTALLDIRS= # CPP flags CPPFLAGS= -I$(X11ROOT)/XFree86/include # C flags CFLAGS0= -Wall -Wno-unused -O4 -mpentium -Zmt # GUI flags GUI_FLAGS= # LDFLAGS # -Zbin-files is removed. Not sure where this will hurt us (fftw, ?! ) ... LDFLAGS=-s -Zmt -Zcrtdll -Zbsd-signals -Zstack 0x3000 # Libraries (all but GUI) NOGUI_LIBS= # GUI libraries GUI_LIBS= -L. -ldlfcn -L$(X11ROOT)/XFree86/lib -lhlpclient -lXbae -lXm -lXpm -lXt -lXext -lXmu -lX11 -lsocket # Commamd used to print PRINT_CMD='lp' # Editor GRACE_EDITOR=nedit # HTML help viewer command HELPVIEWER=-DGRACE_HELPVIEWER=\"xmhelp\" grace-5.1.25/arch/os2/config.h.os20000644000076500001440000002400310071615561016173 0ustar fnevgenyusers/* * Grace - GRaphing, Advanced Computation and Exploration of data * * Home page: http://plasma-gate.weizmann.ac.il/Grace/ * * Copyright (c) 1991-1995 Paul J Turner, Portland, OR * Copyright (c) 1996-2000 Grace Development Team * * Maintained by Evgeny Stambulchik * * * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __CONFIG_H #define __CONFIG_H /* Define if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE #undef _ALL_SOURCE #endif /* Define if you need to in order for stat and other things to work. */ #undef _POSIX_SOURCE /* Define if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define if char is unsigned */ #undef __CHAR_UNSIGNED__ /* Define sizeof(char) */ #define SIZEOF_CHAR 1 /* Define sizeof(short) */ #define SIZEOF_SHORT 2 /* Define sizeof(int) */ #define SIZEOF_INT 4 /* Define sizeof(long) */ #define SIZEOF_LONG 4 /* Define sizeof(long long) */ #define SIZEOF_LONG_LONG 8 /* Define sizeof(float) */ #define SIZEOF_FLOAT 4 /* Define sizeof(double) */ #define SIZEOF_DOUBLE 8 /* Define sizeof(long double) */ #define SIZEOF_LONG_DOUBLE 12 /* Define sizeof(void *) */ #define SIZEOF_VOID_P 4 /* Define to empty if the keyword does not work. */ #undef const /* Define to `int' if doesn't define. */ #undef pid_t /* Define to `unsigned' if doesn't define. */ #undef size_t /* Define if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. This function is required for alloca.c support on those systems. */ #undef CRAY_STACKSEG_END /* Define if using alloca.c. */ #undef C_ALLOCA /* Define if you have alloca, as a function or macro. */ #define HAVE_ALLOCA 1 /* Define if you have and it should be used (not on Ultrix). */ #define HAVE_ALLOCA_H 1 /* Define as the return type of signal handlers (int or void). */ #define RETSIGTYPE void /* Define if you have that is POSIX.1 compatible. */ #define HAVE_SYS_WAIT_H 1 /* Define if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define if you have the header file. */ #define HAVE_SYS_PARAM_H 1 /* Define if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define if you have the header file. */ #define HAVE_SYS_SELECT_H 1 /* Define if your declares struct tm. */ #undef TM_IN_SYS_TIME /* Define if and can be both included. */ #define TIME_WITH_SYS_TIME 1 /* Define if you have the gettimeofday function. */ #define HAVE_GETTIMEOFDAY 1 /* Define if you have the getcwd function. */ #define HAVE_GETCWD 1 /* Define if you have the gethostname function. */ #define HAVE_GETHOSTNAME 1 /* Define if you have the memcpy function. */ #define HAVE_MEMCPY 1 /* Define if you have the memmove function. */ #define HAVE_MEMMOVE 1 /* Define if you have the unlink function. */ #define HAVE_UNLINK 1 /* Define if you have the fcntl function. */ #define HAVE_FCNTL 1 /* Define if you have the popen function. */ #define HAVE_POPEN 1 /* Define if you have the fnmatch function. */ #define HAVE_FNMATCH 1 /* Define if you have the on_exit function. */ #undef HAVE_ON_EXIT /* Define if you have the strstr function. */ #define HAVE_STRSTR 1 /* Define if you have the strerror function. */ #define HAVE_STRERROR 1 /* Define if stdio.h defines the sys_errlist table */ #undef HAVE_SYS_ERRLIST_DECL /* Define if you have the vsnprintf function. */ #define HAVE_VSNPRINTF 1 /* Define if you have the dlopen function. */ #define HAVE_DLOPEN 1 /* Define if dlfcn.h defines the RTLD_NOW constant */ #undef HAVE_RTLD_NOW /* Define if you have the shl_load function. */ #undef HAVE_SHL_LOAD /* If words are stored with the most significant byte first (like Motorola and SPARC, but not Intel and VAX, CPUs */ #undef WORDS_BIGENDIAN /* Define if your FPU arithmetics is of the DEC type. */ #undef HAVE_DEC_FPU /* Define if your FPU arithmetics is of the little endian IEEE type. */ #define HAVE_LIEEE_FPU 1 /* Define if your FPU arithmetics is of the big endian IEEE type. */ #undef HAVE_BIEEE_FPU /* Define if realloc() is buggy (SunOS4, for example) */ #undef REALLOC_IS_BUGGY /* Define if you have the drand48 function. */ #undef HAVE_DRAND48 /* Define if your system supports locale. */ #define HAVE_SETLOCALE 1 /* Define if stdlib.h defines the drand48 function. */ #undef HAVE_DRAND48_IN_STDLIB_H /* Define if you have the m library (-lm). */ #define HAVE_LIBM 1 /* Define if you have the header file. */ #define HAVE_MATH_H 1 /* Define if you have . */ #define HAVE_FLOAT_H 1 /* Define if you have . */ #undef HAVE_IEEEFP_H /* Define if you have the hypot function. */ #define HAVE_HYPOT 1 /* Define if the hypot function is declared in math.h. */ #define HAVE_HYPOT_DECL /* Define if you have the cbrt function. */ #define HAVE_CBRT 1 /* Define if the cbrt function is declared in math.h. */ #define HAVE_CBRT_DECL 1 /* Define if you have the log2 function. */ #undef HAVE_LOG2 /* Define if the log2 function is declared in math.h. */ #undef HAVE_LOG2_DECL /* Define if you have the rint function. */ #define HAVE_RINT 1 /* Define if the rint function is declared in math.h. */ #define HAVE_RINT_DECL 1 /* Define if you have the lgamma function. */ #undef HAVE_LGAMMA /* Define if the lgamma function is declared in math.h. */ #undef HAVE_LGAMMA_DECL /* Define if math.h defines the signgam variable. */ #undef HAVE_SIGNGAM_DECL /* Define if you have the asinh function. */ #undef HAVE_ASINH /* Define if the asinh function is declared in math.h. */ #undef HAVE_ASINH_DECL /* Define if you have the acosh function. */ #undef HAVE_ACOSH /* Define if the acosh function is declared in math.h. */ #undef HAVE_ACOSH_DECL /* Define if you have the atanh function. */ #undef HAVE_ATANH /* Define if the atanh function is declared in math.h. */ #undef HAVE_ATANH_DECL /* Define if you have the erf function. */ #undef HAVE_ERF /* Define if the erf function is declared in math.h. */ #undef HAVE_ERF_DECL /* Define if you have the erfc function. */ #undef HAVE_ERFC /* Define if the erfc function is declared in math.h. */ #undef HAVE_ERFC_DECL /* Define if you have the finite function. */ #undef HAVE_FINITE /* Define if the finite function is declared in math.h. */ #undef HAVE_FINITE_DECL /* Define if you have the isfinite function. */ #define HAVE_ISFINITE 1 /* Define if the isfinite function is declared in math.h. */ #define HAVE_ISFINITE_DECL 1 /* Define if you have the isnan function. */ #define HAVE_ISNAN 1 /* Define if the isnan function is declared in math.h. */ #define HAVE_ISNAN_DECL 1 /* Define if you have the Bessel j0 function. */ #undef HAVE_J0 /* Define if the j0 function is declared in math.h. */ #undef HAVE_J0_DECL /* Define if you have the Bessel j1 function. */ #undef HAVE_J1 /* Define if the j1 function is declared in math.h. */ #undef HAVE_J1_DECL /* Define if you have the Bessel jn function. */ #undef HAVE_JN /* Define if the jn function is declared in math.h. */ #undef HAVE_JN_DECL /* Define if you have the Bessel y0 function. */ #undef HAVE_Y0 /* Define if the y0 function is declared in math.h. */ #undef HAVE_Y0_DECL /* Define if you have the Bessel y1 function. */ #undef HAVE_Y1 /* Define if the y1 function is declared in math.h. */ #undef HAVE_Y1_DECL /* Define if you have the Bessel yn function. */ #undef HAVE_YN /* Define if the yn function is declared in math.h. */ #undef HAVE_YN_DECL /* Define if netCDF library is available */ #undef HAVE_NETCDF /* Define if FFTW Fourier transform library is available */ #define HAVE_FFTW 1 /* Define if PNG library is available */ #define HAVE_LIBPNG 1 /* Define if JPEG library is available */ #define HAVE_LIBJPEG 1 /* Define if PDFlib library is available */ #define HAVE_LIBPDF 1 /* Define if you want to compile a Fortran wrapper for grace_np lib. */ #define WITH_F77_WRAPPER 1 /* Define if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define if you have Motif. */ #define HAVE_MOTIF 1 /* Define if Motif library is actually Lesstif. */ #define HAVE_LESSTIF 1 /* Define if Motif library includes _XmVersionString[] string. */ #define HAVE__XMVERSIONSTRING 1 /* Define if you have the Xpm library (-lXpm). */ #define HAVE_XPM 1 /* Define if you have the xpm.h. */ #undef HAVE_XPM_H 1 /* Define if you have the xpm.h header among X11 includes. */ #define HAVE_X11_XPM_H 1 /* Define if you have (and want to use) libhelp */ #define WITH_LIBHELP 1 /* Define if you have (and want to use) XmHTML widget */ #undef WITH_XMHTML /* Define if you have (and want to use) editres */ #define WITH_EDITRES 1 #if (defined(HAVE_MOTIF) && !defined(X_DISPLAY_MISSING)) # define MOTIF_GUI #else # define NONE_GUI #endif /* Define if the print spooling command itself unlinks the temporary file */ #undef PRINT_CMD_UNLINKS /* Define if you want to compile in (a basic) support for debugging */ #undef WITH_DEBUG #if defined(WITH_DEBUG) # define DEBUG #else # define NDEBUG #endif #endif /* __CONFIG_H */ grace-5.1.25/arch/os2/dotest.cmd0000644000076500001440000001056607135707003016053 0ustar fnevgenyusers/* dotest.cmd, the REXX-based equivalent to shell-script 'dotest' */ /* demos for GRACE */ /* define the location */ curdir = Directory() curdir = Strip(curdir, 'T', '\') /* handle worst case: root */ /* find binary */ guess = Stream('..\src\xmgrace.exe', 'C', 'QUERY EXISTS') if guess = '' then do x11root = Value('X11ROOT', , 'OS2ENVIRONMENT') guess = Stream(x11root'/XFree86/bin/xmgrace.exe', 'C', 'QUERY EXISTS') if guess <> '' then do GRACE = guess end else do say 'No binary found' exit end end /* find examples */ gracehome = Value('GRACE_HOME', , 'OS2ENVIRONMENT') guess = Stream(gracehome'/examples/explain.agr', 'C', 'QUERY EXISTS') if guess = '' then do say 'No examples found' exit end else do exampledir = gracehome'/examples' end /* switch to example dir */ newdir=directory(exampledir) /* command line parameters */ call ExecuteCmd GRACE' -usage' /* call ExecuteCmd sleep 3 */ /* don't ask stupid questions */ GRACE = "xmgrace -noask" /* explain the row of single character buttons and a few other things */ GRACE" explain.agr" /* display the various axes available */ GRACE" axes.agr" /* display the symbols and line styles */ GRACE" symslines.agr" /* display various fill styles */ GRACE" fills.agr" /* some graph stuff and ticks */ GRACE" -p graphs.par" /* some graph stuff and ticks */ GRACE" props.agr" /* demonstration of many graphs */ GRACE" manygraphs.agr" /* some graph stuff and ticks */ GRACE" brw.dat -p regions.par" /* test of a graph inset */ GRACE" tinset.agr" /* some time and date formats */ GRACE" times.agr" /* some more tick label formats */ GRACE" -p tforms.par" /* Australia map */ GRACE" au.agr" /* log plots */ GRACE" -autoscale none -p logtest.par log.dat -graph 1 log.dat" /* more log plots */ GRACE" tlog.agr" /* a log2 example */ GRACE" log2.agr" /* a logit scale sample */ GRACE" logit.agr" /* display fonts and font mappings */ GRACE" tfonts.agr" /* text transforms */ GRACE" txttrans.agr" /* advaned typesetting */ GRACE" typeset.agr" /* example of world stack */ GRACE" tstack.agr" /* a graph with a parameter file */ GRACE" -p test1.par -autoscale xy test.dat" /* a graph with a parameter file in reverse video */ GRACE" -rvideo -p test1.par -autoscale xy test.dat" GRACE" test2.agr" /* explanation of arrow shape parameters */ GRACE" arrows.agr" /* multiple graphs with a parameter file */ GRACE" mlo.dat -graph 1 brw.dat -p co2.par" /* multiple graphs created with arrange feature */ GRACE" co2.agr" /* a nice sample */ GRACE" spectrum.agr" /* a graph with alternate axes */ GRACE" -p altaxis.par test.dat -autoscale xy" /* a graph with error bars */ GRACE" terr.agr" /* a fixed graph with XY RADIUS format */ GRACE" txyr.agr" /* string annotations */ GRACE" motif.agr" /* a graph with an XYZ set */ GRACE" xyz.agr" /* a graph with HILO data */ GRACE" hilo.agr" /* a graph with BOXPLOT data */ GRACE" boxplot.agr" /* polar plots */ GRACE" polar.agr" /* bar charts */ /* a bar graph demonstrating specified ticks and tick labels */ GRACE" bar.agr" /* a stacked bar chart */ GRACE" stackedb.agr" /* a bar chart with error bars */ GRACE" chartebar.agr" /* display all types of XY charts */ GRACE" charts.agr" /* pie charts */ GRACE" pie.agr" /* vector map */ GRACE" vmap.agr" /* a bubble plot */ GRACE" xysize.agr" /* non-linear curve fitting */ GRACE" logistic.agr" /* some interesting stuff */ GRACE" -b test.com" /* need a program */ /* modified from previous versions, a thank you goes to Bruce Barnett */ /* this modification allows others without write permission */ /* to run the demos. */ say rs = Stream('tmc.exe', 'C', 'QUERY EXISTS') if rs = '' then do say "Compiling a short program to test the -pipe option" say "Executing 'gcc tmc.c -o tmc.exe'" '@gcc tmc.c -o tmc.exe' say "Done compilation" say end /* a graph with the -pipe option */ say "Testing -pipe option, executing './tmc | $GRACE -pipe' " '.\tmc.exe | 'GRACE' -pipe' call ExecuteCmd 'rm -f tmc.exe' /* switch back */ newdir=directory(curdir) exit /* end of main program */ /* Procedures */ ExecuteCmd: PROCEDURE Parse Arg EC_param _silent_pre = "@" ADDRESS CMD _silent_pre""EC_param return rc grace-5.1.25/arch/os2/README0000644000076500001440000001127707314217056014747 0ustar fnevgenyusers Grace 5.1.xx for XFree86 OS/2 ============================= Contents of this document: 1) Introduction 2) How to build Grace 3) How to install 1) Introduction ------------ This is (xm)Grace compiled for OS/2. Since it's an X11 application (well, mostly) it requires XFree86 to be installed. Like every piece of software this port of Grace may have a few bugs. Some of them are just related to the general problems which un*x based applications have on non-un*x filesystems. So read the documentation and FAQs for XFree86 carefully to get some hints how to avoid running into these bugs&limitations, e.g. it might be a good idea to install TVFS, the Toronto Virtual File System. A pre-compiled version should always be available from http://www.tu-darmstadt.de/~st002279/os2/os2stuff.html This document describes only the OS/2 specifics. If you're going to use Grace you should read the general documentation files as well! 2) How to build Grace -------------------- Here I try to give a complete list what you need to build Grace. The first listed packages have be installed even if you're only going to use the prebuilt binaries. For your convenience I also point to locations where you can retrieve the packages. - EMX 0.9d (use Fixpack 4) Either development (lots of files) or runtime package (emxrt.zip) http://hobbes.nmsu.edu, http://www.leo.org - XFree86 for OS/2, including its development package(s) http://borneo.gmd.de/~veit/os2/xf86os2.html - LessTif for XFree/2 (version 0.92.26 or above) http://www.tu-darmstadt.de/~st002279/os2/lesstif.html - libXbae (for LessTif; see above for version information) http://www.tu-darmstadt.de/~st002279/os2/lesstif.html - t1lib for XFree/2 http://www.tu-darmstadt.de/~st002279/os2/tools.html - pdflib for XFree/2 (versions 3.0.x) http://www.tu-darmstadt.de/~st002279/os2/tools.html Additional useful utilities: - the "usual" GNU utilities (text, shell, file). - un*x shell (sh) To build Grace I use additional libraries which are not integral parts of Grace, in fact it can be built without using them. If you can't find them on my webpage, I'll provide them upon request. See the generic FAQ where to find the sources for these. - libhelp, xmhelp: Display the online help written in HTML) - libpng: Create PNG files - pdflib: Create PDF files - fftw library: Fast Fourier transformations By now the supplied configure script may not work under OS/2 (even using the existing Autoconf 2.13 port). As a small replacement I offer a small REXX-script 'configos2.cmd' which should - copy standard OS/2 configuration files (config.h and Make.conf) from .\arch\os2 to the toplevel source directory - build dlfcn.a in \arch\os2 (support for user-supplied mathematical functions in dynamic load libraries = DLLs) - build the complete package configos2.cmd is located in arch/os2 and has to be copied to the toplevel source directory before executing it. Please check arch/os2/config.h.os2 and arch/os2/Make.conf.os2 and modify them if necessary. Especially make changes to make use of pre-installed libraries like T1lib and fftw. Finally this script wil call 'x11make.exe'. Note that calling the 'make' script from XFree/2 won't work, because the generic Makefile is using shell commands which are disabled by "make.cmd". 3) How to install --------------- So far the OS/2 Makefiles don't offer an installation target. You have to do it manually ... The binary distribution archive can just be unpacked and will fit in the tree below $(X11ROOT). I supply a small REXX-script 'xmgrace1.cmd' which sets up the necessary environment variable(s) so that xmgrace runs fine within this setup. Check out the webpage or section 2) How to build Grace for other packages which are required to run Grace! A remaining problem is how to access installed printers without manual processing the Postscript files. But this is not only tied to Grace but an issue for every non-PM application on OS/2. I'm using the network printing tools 'lpr' and 'lpd' (part of OS/2 Warp 4) to access my local Postscript printer. Check out the printing utilitiess on LEO/Hobbes or just print to a file and do the further processing (e.g. running Ghostscript) manually. The document on http://www.tu-darmstadt.de/~st002279/os2/printing.html is however still work in progress. -- Alexander Mai st002279@hrzpub.tu-darmstadt.de amai@lesstif.org grace-5.1.25/arch/os2/dlfcn.c0000644000076500001440000000507007032753717015321 0ustar fnevgenyusers/* $Id: dlfcn.c,v 1.3 1999/12/30 22:08:15 fnevgeny Exp $ */ /* dlfcn.c */ /* Implementation of dlopen() interface for OS/2 */ /* This code is released into public domain */ #include #include #include /* We only need parts of the whole OS/2-specific stuff */ #define INCL_DOSMODULEMGR /* Module Manager values */ #define INCL_DOSERRORS /* Error values */ #include /* to get constants and check prototypes */ #include "dlfcn.h" #define LM_LENGTH 256 #define MAXDLLOPEN 256 static int LoadErrorFlag = FALSE; UCHAR LoadError[LM_LENGTH] = ""; /* this is being referenced from outside this module */ void *dlopen( const char *filename, int flag) { HMODULE DLLHandle; APIRET rc; rc = DosLoadModule( LoadError, LM_LENGTH-1, filename, &DLLHandle); if (rc != NO_ERROR) { sprintf(LoadError, "DosLoadModule(\"%s\") = %lu\n", filename, rc); LoadErrorFlag = TRUE; return NULL; } else { LoadErrorFlag = FALSE; return (void*)DLLHandle; } } char *dlerror(void) { if (!LoadErrorFlag) { return (char *)NULL; } else { LoadErrorFlag = FALSE; return LoadError; } } void *dlsym(void *handle, char *symbol) { APIRET rc; PFN FuncAddress; rc = DosQueryProcAddr( (HMODULE) handle, 0L, symbol, &FuncAddress); if (rc != NO_ERROR) { switch (rc) { case ERROR_INVALID_HANDLE: { sprintf(LoadError, "DosQueryProcAddr(\"%s\")=ERROR_INVALID_HANDLE (%lu)\n", symbol, rc); break; } case ERROR_ENTRY_IS_CALLGATE: { sprintf(LoadError, "DosQueryProcAddr(\"%s\")=ERROR_INVALID_HANDLE (%lu)\n", symbol, rc); break; } default: { sprintf(LoadError, "DosQueryProcAddr(\"%s\")=%lu\n", symbol, rc); break; } } /* end switch(rc) */ LoadErrorFlag = TRUE; return NULL; } else { LoadErrorFlag = FALSE; return (void*)FuncAddress; } } int dlclose( void *handle ) { APIRET rc; rc = DosFreeModule( (HMODULE)handle ); if (rc != NO_ERROR) { sprintf(LoadError, "DosFreeModule()=%lu\n", rc); LoadErrorFlag = TRUE; return 2; } else { LoadErrorFlag = FALSE; return 0; } } grace-5.1.25/arch/os2/dlfcn.mak0000644000076500001440000000044406626627166015655 0ustar fnevgenyusersCC= gcc CFLAGS= -Zmtd -O2 -Wall AR= ar rc .SUFFIXES: .c .o .a default: dlfcn.a all: default ../../src/dlfcn.h ../../src/dlfcn.a dlfcn.a: dlfcn.o $(AR) $@ $< dlfcn.o: dlfcn.c .c.o: $(CC) $(CFLAGS) -c $< -o $@ ../../src/dlfcn.h: dlfcn.h cp $< $@ ../../src/dlfcn.a: dlfcn.a cp $< $@ grace-5.1.25/arch/os2/dlfcn.h0000644000076500001440000000122607032753717015325 0ustar fnevgenyusers/* dlfcn.h */ /* Implementation of dlopen() interface for OS/2 */ /* This code is released into public domain */ #ifndef DLFCN_H #define DLFCN_H #if defined (__cplusplus) extern "C" { #endif extern void *dlopen (const char *filename, int flag); extern char *dlerror (void); extern void *dlsym (void *handle, char *symbol); extern int dlclose (void *handle); /* We do not actually use the definitions below but have to keep them for compatibility ... Values taken from linux */ #define RTLD_LAZY 1 #define RTLD_NOW 2 #define RTLD_GLOBAL 0x100 #if defined (__cplusplus) } #endif #endif /* not DLFCN_H */ grace-5.1.25/arch/os2/configos2.cmd0000644000076500001440000001070107113751314016431 0ustar fnevgenyusers/* REXX-Script to configure & build GRACE 5.x for XFree86 OS/2 (19991228) */ /* Todo: - forget about this mess and switch to configure ;-) - Ask/check for libhelp, g77, ... - distinguish between debug- & production builds */ trace n Parse Arg param True = 1 False = 0 options = '' do while param <> '' Parse Var param tp param tp = Translate(tp) tpr = Right(tp,1) if (Left(tp,1) = '-') & (Length(tp) = 2) then select when tpr = 'D' then do options = options'D' end when tpr = 'E' then do options = options'E' end when tpr = 'O' then do options = options'O' end when (tpr = '?') then do call ShowHelp SIGNAL FIN end otherwise do call ShowHelp SIGNAL FIN end end /* select */ end /* do while */ say "configos2.cmd" say "Options are: "options cf_make_conf = 'Make.conf' cf_config_h = 'config.h' curdir = Directory() x11root = Value('X11ROOT', , 'OS2ENVIRONMENT') if x11root <> '' then do x11path=x11root'\XFree86' newdir = Directory(x11path) call Directory(curdir) if Translate(newdir) <> Translate(x11path) then do say 'XFree/2 is not properly installed!' say 'The X11ROOT environment variable is not set correctly' end end else do say 'XFree/2 is not properly installed!' say 'The X11ROOT environment variable is missing' SIGNAL FIN end systemdir = Strip(curdir, 'T', '\')'\arch\os2' /* Install Make.conf */ if FileExists(cf_make_conf) = True then do if Pos('E', options) = 0 then do say cf_make_conf' is already installed!' call CharOut , 'Install default file instead ? (y/n) ' Parse Upper Pull answer if answer = 'Y' then do call FileCopy systemdir'\'cf_make_conf'.os2', curdir'\'cf_make_conf call Execute 'touch 'curdir'\'cf_make_conf end else do /* not a good idea perhaps ... */ call Execute 'touch 'curdir'\'cf_make_conf end end end else do call FileCopy systemdir'\'cf_make_conf'.os2', curdir'\'cf_make_conf /* call Execute 'touch 'curdir'\'cf_make_conf */ end /* Install config.h */ if FileExists(cf_config_h) = True then do if Pos('E', options) = 0 then do say cf_config_h' is already installed!' call CharOut , 'Install default file instead ? (y/n) ' Parse Upper Pull answer if answer = 'Y' then do call FileCopy systemdir'\'cf_config_h'.os2', curdir'\'cf_config_h call Execute 'touch 'curdir'\'cf_config_h end else do /* not a good idea perhaps ... */ call Execute 'touch 'curdir'\'cf_config_h end end end else do call FileCopy systemdir'\'cf_config_h'.os2', curdir'\'cf_config_h /* call Execute 'touch 'curdir'\'cf_config_h */ end /* Building dlfcn.a */ call Execute "cd .\arch\os2 && x11make.exe -f dlfcn.mak all & cd ..\.." /* Calling x11make.exe cause make.cmd won't work here due to the sh command embedded in the Makefiles*/ say 'Start compiling ...' call Execute 'x11make' call FileCopy systemdir'\dotest.cmd', curdir'\examples\dotest.cmd' say 'configos2.cmd has finished!' FIN: exit /* ######################################################################## */ Execute: procedure Parse Arg command Address CMD ''command return FileCopy: procedure Parse Arg par1, par2 call Execute '@copy 'par1' 'par2' >nul' return FileExists: procedure expose True False Parse Arg fe_file rs = Stream(fe_file, 'C', 'QUERY EXISTS') if rs = '' then return False else return True ShowHelp: say 'Valid options for configos2.cmd:' /* say " -d : create binaries for debugging" */ say " -e : use existing configuration files; don't prompt for using default ones" /* say " -o : optimize" */ return rtest: /* work in progress (hopefully ;-) */ _CR = D2C(13) _LF = D2C(10) _CRLF = _CR''_LF rc = LineIn (rfile,1,0) rlength = Chars(rfile) rcontent = CharIn(rfile, rlength) call LineOut rfile rcount = 0 do while rcontent <> '' Parse Var rcontent rline (_CRLF) rcontent rline = Strip(rline, 'T') if rline <> '' then do rcount = rcount+1 rnew.rcount = rline say rcount'. 'rline end end /* do while */ rnew.0 = rcount return grace-5.1.25/arch/win32/0000755000076500001440000000000012467751541014325 5ustar fnevgenyusersgrace-5.1.25/arch/win32/README0000644000076500001440000000054707415146206015204 0ustar fnevgenyusers In order to compile Grace, you'll need Cygnus's GNU-win32 development kit (http://www.cygwin.com/), version 1.3.6 or above, a respective port of the XWindows libs, and an X server. You'll find all at the aforementioned site. Evgeny PS. Please don't send me private e-mails related to Grace; use the grace@plasma-gate.weizmann.ac.il mailing list instead. grace-5.1.25/arch/vms/0000755000076500001440000000000012467751541014170 5ustar fnevgenyusersgrace-5.1.25/arch/vms/xbae.mms0000644000076500001440000000153306776762644015643 0ustar fnevgenyusers##################################################### # Makefile for Xbae matrix widget on VMS # ##################################################### TOP=[--] ECHO = WRITE SYS$OUTPUT include $(TOP)Make.conf CFLAGS=$(CFLAGS0)/INCLUDE=($(TOP)) $(GUI_FLAGS) \ /DEFINE=(DRAW_RESIZE_SHADOW)/WARNINGS=(DISABLE=LONGEXTERN) LIB=libXbae.OLB include Make.common all : msg $(LIB)($(OBJS)) @ ! msg : @ $(ECHO) "" @ $(ECHO) "Making $(LIB) ..." @ $(ECHO) "" install : $(LIB) tests : dummy links : dummy clean : IF F$SEARCH("*$(O)",).NES."" THEN $(RM) *$(O);* IF F$SEARCH("$(LIB)",).NES."" THEN $(RM) $(LIB);* distclean : clean @ ! devclean : clean @ ! dummy : .FIRST @ define/nolog xbae 'f$string(f$parse("[-]","","","device")+ \ f$parse("[-]","","","directory") - "]" + ".xbae]") grace-5.1.25/arch/vms/netscape.com0000644000076500001440000000042206636742760016474 0ustar fnevgenyusers$ lock = f$trnlnm ("sys$login") - "]" + ".NETSCAPE]LOCK.VMS" $ if (f$search(lock) .eqs. "") then goto not_running $ open/read/error=running lock 'lock' $ close lock $not_running: $ netscape 'p1' $ exit $running: $ netscape -noraise -remote "openURL(''p1',newwindow)" $ exit grace-5.1.25/arch/vms/t1lib_type1.mms0000644000076500001440000000111306662657540017043 0ustar fnevgenyusersTOP=[--] include $(TOP)Make.conf CFLAGS = $(CFLAGS0)/INCLUDE=[--]/DEFINE=(GLOBAL_CONFIG_DIR="""[]""",\ T1_AA_TYPE16="$(T1_AA_TYPE16)",T1_AA_TYPE32="$(T1_AA_TYPE32)") OBJS = \ arith$(O) \ curves$(O) \ fontfcn$(O) \ hints$(O) \ lines$(O) \ objects$(O) \ paths$(O) \ regions$(O) \ scanfont$(O) \ spaces$(O) \ t1io$(O) \ t1snap$(O) \ t1stub$(O) \ token$(O) \ type1$(O) \ util$(O) all : $(OBJS) @ ! clean : dummy $(RM) *$(O);* install : dummy dummy : # Dependencies of object files # (generated by "gcc -MM *.c > .dependencies"): #include .dependencies grace-5.1.25/arch/vms/t1lib_t1lib.mms0000644000076500001440000000151607064715101017004 0ustar fnevgenyusersTOP=[--] include $(TOP)Make.conf CFLAGS = $(CFLAGS0)/INCLUDE=[--]/DEFINE=(GLOBAL_CONFIG_DIR="""[]""",\ T1_AA_TYPE16="$(T1_AA_TYPE16)",T1_AA_TYPE32="$(T1_AA_TYPE32)")\ /WARNING=(DISABLE=DUPEXTERN)/UNDEFINE=("VMS") # The VMS specific code defines ] as the directory separator. Grace uses # unix format for all file specifications, so having the T1 library add # a ] instead of a / causes problems. I undefine VMS when compiling to # prevent this problem. OBJS = \ t1finfo$(O) \ t1base$(O) \ t1delete$(O) \ t1enc$(O) \ t1env$(O) \ t1load$(O) \ t1set$(O) \ t1trans$(O) \ t1aaset$(O) \ t1afmtool$(O) \ t1outline$(O) \ parseAFM$(O) all : $(OBJS) @ ! clean : dummy $(RM) *$(O);* install : dummy dummy : # Dependencies of object files # (generated by "gcc -MM *.c > .dependencies"): #include .dependencies grace-5.1.25/arch/vms/cephes.mms0000644000076500001440000000133206636742760016160 0ustar fnevgenyusers##################################################### # Makefile for Cephes math library (VMS) # ##################################################### # Rolf Niepraschk, 12/97, niepraschk@ptb.de TOP = [-] ECHO = WRITE SYS$OUTPUT INCLUDE $(TOP)Make.conf CFLAGS = $(CFLAGS0)/INCLUDE=$(TOP) LIB = libcephes.olb INCLUDE Make.common #INCLUDE Make.dep all : msg $(LIB)($(OBJS)) @ ! msg : @ $(ECHO) "" @ $(ECHO) "Making $(LIB) ..." @ $(ECHO) "" install : $(LIB) tests : dummy links : dummy clean : IF F$SEARCH("*$(O)",).NES."" THEN $(RM) *$(O);* IF F$SEARCH("$(LIB)",).NES."" THEN $(RM) $(LIB);* distclean : clean @ ! devclean : clean @ ! dummy : grace-5.1.25/arch/vms/grconvert.mms0000644000076500001440000000165506737414176016731 0ustar fnevgenyusers##################################################### # Makefile for grconvert -- VMS version (R.N.) 5/98 # ##################################################### # not tested (RN) TOP = [-] SRCDIR = [-.SRC] VMSDIR = [-.ARCH.VMS] #RM = DELETE/log include $(TOP)Make.conf PROG = grconvert$(EXE) SRCS = grconvert.c defaults.c readbin.c writeasc.c util.c OBJS = grconvert$(O) defaults$(O) readbin$(O) writeasc$(O) util$(O) .IFDEF FLOAT .ELSE FLOAT = D_FLOAT .ENDIF .IFDEF MULTINET CFLAGS = /INCLUDE=($(TOP),$(SRCDIR),$(VMSDIR))/DEFINE=(GRCONVERT=1,MULTINET=1) \ /FLOAT=$(FLOAT)/PREFIX=ALL LIBS = ,multinet_common_root:[multinet.library]rpc.olb/LIBRARY .ELSE CFLAGS = /INCLUDE=($(TOP),$(SRCDIR),$(VMSDIR))/DEFINE=(GRCONVERT=1) \ /FLOAT=$(FLOAT)/PREFIX=ALL LIBS = ,$(VMSDIR)xdr.opt/OPTION .ENDIF all : $(PROG) @ ! $(PROG) : $(OBJS) $(LINK) /EXECUTABLE=$@ $+ $(LIBS) clean : $(RM) $(OBJS) distclean : clean $(RM) $(PROG) grace-5.1.25/arch/vms/src.mms0000644000076500001440000000326306776762644015515 0ustar fnevgenyusers########################################## # Makefile for GRACE (VMS) # ########################################## # Rolf Niepraschk, 5/98, niepraschk@ptb.de TOP = [-] ECHO = WRITE SYS$OUTPUT INCLUDE $(TOP)Make.conf CEPHES_LIB = ,[-.CEPHES]libcephes.olb/LIBRARY CFLAGS = $(CFLAGS0)/INCLUDE=($(TOP)$(T1_INC)$(LIB_INC)) \ /DEFINE=("xfree=xfree_") LIBS = $(GUI_LIBS)$(CEPHES_LIB)$(T1_LIB)$(NETCDF_LIBS)$(FFTW_LIB) \ $(PDF_LIB)$(TIFF_LIB)$(JPEG_LIB)$(PNG_LIB)$(Z_LIB) \ $(NOGUI_LIBS)$(DL_LIB) PREFS = /DEFINE=(CCOMPILER="""$(CCOMPILER)""",\ GRACE_HOME="""$(GRACE_HOME)""",\ GRACE_EDITOR="""$(GRACE_EDITOR)""",\ GRACE_HELPVIEWER="""$(HELPVIEWER)""",\ GRACE_PRINT_CMD="""$(PRINT_CMD)""") ALL : msg logicals buildinfo.h $(GRACE) @ ! INCLUDE Make.common msg : @ $(ECHO) "" @ $(ECHO) "Making $(GRACE) ..." @ $(ECHO) "" logicals : @ define/nolog cephes \ 'f$string(f$parse("[-.cephes]",,,,"syntax_only")-".;")' @ define/nolog xbae \ 'f$string(f$parse("$(XBAE_INC)",,,,"syntax_only")-".;")' .IFDEF USE_DECC$CRTL @ define/nolog decc$crtlmap sys$library:decc$crtl.exe .ENDIF #INCLUDE Make.dep $(GRACE) : xmgrace.olb($(GROBJS) $(GUIOBJS)) LINK /EXECUTABLE=$@ $(LDFLAGS) xmgrace.olb/LIBRARY/INCLUDE=main $(LIBS) buildinfo$(EXE) : buildinfo$(O) LINK /EXECUTABLE=$@ $? $(LDFLAGS) $(GUI_LIBS) $(T1_LIB) $(NOGUI_LIBS) buildinfo$(O) : $(TOP)Make.conf $(CC) $(CFLAGS) $(PREFS)/OBJECT=$@ buildinfo.c buildinfo.h : buildinfo$(EXE) DEFINE/USER SYS$OUTPUT $@ RUN $? clean : IF F$SEARCH("*$(O)").NES."" THEN $(RM) *$(O);* distclean : clean IF F$SEARCH("$(GRACE)").NES."" THEN $(RM) $(GRACE);* grace-5.1.25/arch/vms/build.com0000644000076500001440000001467307050130610015756 0ustar fnevgenyusers$ V = 'F$VERIFY(0)' $ SAY = "WRITE SYS$OUTPUT" $ ! $ OPEN/READ IN MAKE.CONF $LOOP_CONF: $ READ/END=DONE_CONF IN REC $ IF (F$EXTRACT(0,1,REC) .NES. "#" .AND. F$ELEMENT(1,"=",REC) .NES. "=") $ THEN $ SYM = F$ELEMENT (0, "=", REC) $ VAL = REC - SYM - "=" $ 'SYM' = "''VAL'" $ ENDIF $ GOTO LOOP_CONF $DONE_CONF: $ CLOSE IN $ ! $ IF (P1 .EQS. "BUILDINFO") $ THEN $ SET DEFAULT [.SRC] $ CREATE BUILDINFO.OBJ $ CREATE BUILDINFO.EXE $ GOSUB BUILDINFO $ SET DEFAULT [-] $ V = F$VERIFY(V) $ EXIT $ ENDIF $ ! $ SAY "Building CEPHES" $ SET DEFAULT [.CEPHES] $ CFLAGS = CFLAGS0 + "/INCLUDE=[-]" $ LIB = "libcephes.olb" $ FILE = "MAKE.COMMON" $ NAME = "OBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ SET DEFAULT [-] $ ! $ SAY "Building T1LIB" $ SET DEFAULT [.T1LIB.TYPE1] $ CFLAGS = CFLAGS0 - + "/INCLUDE=[--]/DEFINE=(GLOBAL_CONFIG_DIR=""""""[]"""""", " - + "T1_AA_TYPE16=""''T1_AA_TYPE16'"",T1_AA_TYPE32=""''T1_AA_TYPE32'"")" $ LIB = "[-]libt1lib.olb" $ FILE = "DESCRIP.MMS" $ NAME = "OBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ SET DEFAULT [-.T1LIB] $ CFLAGS = CFLAGS0 - + "/INCLUDE=[--]/DEFINE=(GLOBAL_CONFIG_DIR=""""""[]"""""", " - + "T1_AA_TYPE16=""''T1_AA_TYPE16'"",T1_AA_TYPE32=""''T1_AA_TYPE32'"")" - + "/WARNING=(DISABLE=DUPEXTERN)" $ LIB = "[-]libt1lib.olb" $ FILE = "DESCRIP.MMS" $ NAME = "OBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ SET DEFAULT [--] $ ! $ SAY "Building XBAE" $ SET DEFAULT [.XBAE.XBAE] $ XBAE = F$PARSE("[]",,,,"SYNTAX_ONLY") - ".;" $ DEFINE/NOLOG XBAE 'XBAE' $ CFLAGS = CFLAGS0 + "/INCLUDE=[-]" + GUI_FLAGS - + "/DEFINE=(DRAW_RESIZE_SHADOW)/WARNINGS=(DISABLE=LONGEXTERN)" $ LIB = "libXbae.OLB" $ FILE = "MAKE.COMMON" $ NAME = "OBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ DEASSIGN XBAE $ SET DEFAULT [--] $ ! $ SAY "Building SRC" $ SET DEFAULT [.SRC] $ IF (F$TYPE(USE_DECC$CRTL) .EQS. "") THEN USE_DECC$CRTL = 0 $ IF (USE_DECC$CRTL) THEN DEFINE/NOLOG DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE $ VMS_MAJOR = F$ELEMENT (0, ".", F$GETSYI ("NODE_SWVERS")) - "V" $ IF (USE_DECC$CRTL .OR. VMS_MAJOR .GE. 7) $ THEN $ CFLAGS = CFLAGS0 + "/INCLUDE=([-],[-.T1LIB.T1LIB]''NETCDF_INC')" - + "/DEFINE=(CCOMPILER=""""""''CCOMPILER'""""""," - + "GRACE_HOME=""""""''GRACE_HOME'""""""," - + "GRACE_EDITOR=""""""''GRACE_EDITOR'""""""," - + "GRACE_HELPVIEWER=""""""''HELPVIEWER'""""""," - + "GRACE_PRINT_CMD=""""""''PRINT_CMD'"""""")" $ LIB = "" $ SRCS = "buildinfo" $ GOSUB COMPILE $ V = F$VERIFY(1) $ LINK/EXECUTABLE=BUILDINFO.EXE BUILDINFO.OBJ,[-.T1LIB]libt1lib.olb/LIBRARY - 'NOGUI_LIBS' $ DEFINE/USER SYS$OUTPUT BUILDINFO.H $ RUN BUILDINFO.EXE $ V = 'F$VERIFY(0)' $ ELSE $ GOSUB BUILDINFO $ ENDIF $ CEPHES = F$PARSE("[-.CEPHES]",,,,"SYNTAX_ONLY") - ".;" $ DEFINE/NOLOG CEPHES 'CEPHES' $ XBAE = F$PARSE(XBAE_INC,,,,"SYNTAX_ONLY") - ".;" $ DEFINE/NOLOG XBAE 'XBAE' $ CFLAGS = CFLAGS0 + "/INCLUDE=([-],[-.T1LIB.T1LIB]''LIB_INC')" - + "/DEFINE=(""xfree=xfree_"")" $ LIB = "xmgrace.olb" $ PARS_O = "pars$(O)" $ FILE = "MAKE.COMMON" $ NAME = "GROBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ FILE = "MAKE.COMMON" $ NAME = "GUIOBJS" $ GOSUB GETLIST $ GOSUB COMPILE $ CEPHES_LIB = ",[-.CEPHES]LIBCEPHES.OLB/LIB" $ V = F$VERIFY(1) $ LINK /EXECUTABLE=xmgrace.exe 'LDFLAGS' xmgrace.olb/lib/inc=main - 'GUI_LIBS''CEPHES_LIB''T1_LIB''NETCDF_LIBS''FFTW_LIB' - 'PDF_LIB''TIFF_LIB''JPEG_LIB''PNG_LIB''Z_LIB' - 'NOGUI_LIBS''DL_LIB' $ V = 'F$VERIFY(0)' $ DEASSIGN CEPHES $ DEASSIGN XBAE $ SET DEFAULT [-] $ ! $ SAY "Done" $ V = F$VERIFY(V) $ EXIT $ ! $GETLIST: $ SRCS = "" $ OPEN/READ IN 'FILE' $GETLISTLOOP1: $ READ/END=GETLISTDONE IN REC $ IF (F$ELEMENT(0," ",REC) .NES. NAME) THEN GOTO GETLISTLOOP1 $ REC = REC - NAME - "=" $ GOSUB MOVETOSRCS $ IF (REC .NES. "\") THEN GOTO GETLISTDONE $GETLISTLOOP2: $ READ/END=GETLISTDONE IN REC $ GOSUB MOVETOSRCS $ IF (REC .NES. "\") THEN GOTO GETLISTDONE $ GOTO GETLISTLOOP2 $GETLISTDONE: $ CLOSE IN $ RETURN $MOVETOSRCS: $ REC = F$EDIT (REC, "TRIM,COMPRESS") $ N = 0 $MOVETOSRCSLOOP: $ OBJ = F$ELEMENT (N, " ", REC) $ N = N + 1 $ IF (OBJ .EQS. " ") $ THEN $ REC = "" $ RETURN $ ENDIF $ IF (OBJ .EQS. "\") $ THEN $ REC = "\" $ RETURN $ ENDIF $ IF (F$EXTRACT (0, 2, OBJ) .EQS. "$(") $ THEN $ OBJ = OBJ - "$(" - ")" $ IF (F$TYPE('OBJ') .NES. "") $ THEN $ OBJ = 'OBJ' $ IF (OBJ .EQS. "") THEN GOTO MOVETOSRCSLOOP $ ELSE $ GOTO MOVETOSRCSLOOP $ ENDIF $ ENDIF $ OBJ = OBJ - "$(O)" $ SRCS = SRCS + " " + OBJ $ GOTO MOVETOSRCSLOOP $ ! $COMPILE: $ IF (LIB .NES. "" .AND. F$SEARCH(LIB) .EQS. "") THEN LIBRARY/CREATE/LOG 'LIB' $ N = 0 $LOOP_COMPILE: $ FILE = F$ELEMENT (N, " ", SRCS) $ N = N + 1 $ IF (FILE .EQS. " ") THEN RETURN $ IF (FILE .EQS. "") THEN GOTO LOOP_COMPILE $ V = F$VERIFY(1) $ 'CC''CFLAGS' 'FILE'.C $ V = 'F$VERIFY(0)' $ IF (LIB .NES. "") THEN LIBRARY/LOG 'LIB' 'FILE'.OBJ $ GOTO LOOP_COMPILE $ ! $BUILDINFO: $ OPEN/READ IN BUILDINFO.C $BUILDINFO_C_LOOP: $ READ/END=BUILDINFO_C_DONE IN REC $ IF (F$ELEMENT(0," ",REC) .NES. "#define") THEN GOTO BUILDINFO_C_LOOP $ VAL = F$ELEMENT(2," ",REC) $ IF (VAL .NES. " ") THEN 'F$ELEMENT(1," ",REC)' = 'VAL' $ GOTO BUILDINFO_C_LOOP $BUILDINFO_C_DONE: $ CLOSE IN $ @SYS$UPDATE:DECW$GET_IMAGE_VERSION SYS$SHARE:DECW$XLIBSHR.EXE DECWVERSION $ OPEN/READ IN [-.T1LIB.T1LIB]SYSCONF.H $SYSCONF_H_LOOP: $ READ/END=SYSCONF_H_DONE IN REC $ IF (F$ELEMENT(0," ",REC) .NES. "#define") THEN GOTO SYSCONF_H_LOOP $ VAL = F$ELEMENT(2," ",REC) $ IF (VAL .NES. " ") THEN 'F$ELEMENT(1," ",REC)' = 'VAL' $ GOTO SYSCONF_H_LOOP $SYSCONF_H_DONE: $ CLOSE IN $ OPEN/WRITE OUT BUILDINFO.H $ VERSION = MAJOR_REV*10000 + MINOR_REV*100 + PATCHLEVEL $ WRITE OUT "#define BI_VERSION_ID ", VERSION $ VERSION = "Grace-''MAJOR_REV'.''MINOR_REV'.''PATCHLEVEL' ''BETA_VER'" $ WRITE OUT "#define BI_VERSION """, VERSION, """" $ WRITE OUT "#define BI_GUI ""@(#)OSF/Motif Version ", DECWVERSION, """" $ WRITE OUT "#define BI_T1LIB """, T1LIB_IDENT, """" $ WRITE OUT "#define BI_CCOMPILER """, CCOMPILER, """" $ WRITE OUT "#define BI_SYSTEM ""OpenVMS 0 ", F$GETSYI("HW_NAME"), """" $ WRITE OUT "#define BI_DATE """, F$TIME(), """" $ WRITE OUT "" $ WRITE OUT "#define GRACE_HOME """, GRACE_HOME, """" $ WRITE OUT "#define GRACE_EDITOR """, GRACE_EDITOR, """" $QUOTELOOP: $ N = F$LOCATE ("\\", PRINT_CMD) $ IF (N .NE. F$LENGTH(PRINT_CMD)) $ THEN $ PRINT_CMD = F$EXTRACT (0, N, PRINT_CMD) + F$EXTRACT (N+1, 255, PRINT_CMD) $ GOTO QUOTELOOP $ ENDIF $ WRITE OUT "#define GRACE_PRINT_CMD """, PRINT_CMD, """" $ WRITE OUT "#define GRACE_HELPVIEWER """, HELPVIEWER, """" $ CLOSE OUT $ RETURN grace-5.1.25/arch/vms/dotest.com0000644000076500001440000000111506737414176016173 0ustar fnevgenyusers$ ! This command file reads DOTEST. and executes the GRACE commands. $ ! $ XMGRACE = XMGRACE + " -noask" $ ! $ ON CONTROL_Y THEN GOTO DONE $ ON ERROR THEN GOTO DONE $ OPEN IN DOTEST. $LOOP: $ READ/END=DONE IN REC $ IF (F$EXTRACT (0, 6, REC) .EQS. "$GRACE") $ THEN $ REDIR = F$ELEMENT (1, "<", REC) $ IF (REDIR .NES. "<") $ THEN $ WRITE SYS$OUTPUT "$ DEFINE/USER SYS$INPUT ''REDIR'" $ DEFINE/USER SYS$INPUT 'REDIR' $ REC = F$ELEMENT (0, "<", REC) $ ENDIF $ REC = "XM" + (REC - "$") $ WRITE SYS$OUTPUT "$ ", REC $ 'REC' $ ENDIF $ GOTO LOOP $DONE: $ CLOSE IN $ EXIT grace-5.1.25/arch/vms/t1lib.mms0000644000076500001440000000650706737414176015734 0ustar fnevgenyusers##################################################### # Makefile for T1lib (bundled with GRACE) # ##################################################### TOP = [-] ECHO = WRITE SYS$OUTPUT CD = SET DEFAULT include $(TOP)Make.conf TYPE1_OBJS = \ [.type1]arith$(O) \ [.type1]curves$(O) \ [.type1]fontfcn$(O) \ [.type1]hints$(O) \ [.type1]lines$(O) \ [.type1]objects$(O) \ [.type1]paths$(O) \ [.type1]regions$(O) \ [.type1]scanfont$(O) \ [.type1]spaces$(O) \ [.type1]t1io$(O) \ [.type1]t1snap$(O) \ [.type1]t1stub$(O) \ [.type1]token$(O) \ [.type1]type1$(O) \ [.type1]util$(O) T1LIB_OBJS = \ [.t1lib]t1finfo$(O) \ [.t1lib]t1base$(O) \ [.t1lib]t1delete$(O) \ [.t1lib]t1enc$(O) \ [.t1lib]t1env$(O) \ [.t1lib]t1load$(O) \ [.t1lib]t1set$(O) \ [.t1lib]t1trans$(O) \ [.t1lib]t1aaset$(O) \ [.t1lib]t1afmtool$(O) \ [.t1lib]t1outline$(O) \ [.t1lib]parseAFM$(O) TYPE1_SRCS = \ [.type1]arith.c \ [.type1]curves.c \ [.type1]fontfcn.c \ [.type1]hints.c \ [.type1]lines.c \ [.type1]objects.c \ [.type1]paths.c \ [.type1]regions.c \ [.type1]scanfont.c \ [.type1]spaces.c \ [.type1]t1io.c \ [.type1]t1snap.c \ [.type1]t1stub.c \ [.type1]token.c \ [.type1]type1.c \ [.type1]util.c T1LIB_SRCS = \ [.t1lib]t1finfo.c \ [.t1lib]t1base.c \ [.t1lib]t1delete.c \ [.t1lib]t1enc.c \ [.t1lib]t1env.c \ [.t1lib]t1load.c \ [.t1lib]t1set.c \ [.t1lib]t1trans.c \ [.t1lib]t1aaset.c \ [.t1lib]t1afmtool.c \ [.t1lib]t1outline.c \ [.t1lib]parseAFM.c TYPE1_HEADERS = \ [.type1]Xstuff.h \ [.type1]arith.h \ [.type1]blues.h \ [.type1]cluts.h \ [.type1]curves.h \ [.type1]digit.h \ [.type1]ffilest.h \ [.type1]font.h \ [.type1]fontfcn.h \ [.type1]fontfile.h \ [.type1]fontmisc.h \ [.type1]fonts.h \ [.type1]fontstruct.h \ [.type1]fontxlfd.h \ [.type1]fsmasks.h \ [.type1]hdigit.h \ [.type1]hints.h \ [.type1]lines.h \ [.type1]objects.h \ [.type1]paths.h \ [.type1]paths_rmz.h \ [.type1]pictures.h \ [.type1]regions.h \ [.type1]spaces.h \ [.type1]spaces_rmz.h \ [.type1]strokes.h \ [.type1]t1hdigit.h \ [.type1]t1imager.h \ [.type1]t1intf.h \ [.type1]t1stdio.h \ [.type1]token.h \ [.type1]tokst.h \ [.type1]trig.h \ [.type1]types.h \ [.type1]util.h T1LIB_HEADERS = \ [.t1lib]parseAFM.h \ [.t1lib]t1afmtool.h \ [.t1lib]t1aaset.h \ [.t1lib]t1base.h \ [.t1lib]t1delete.h \ [.t1lib]t1enc.h \ [.t1lib]t1env.h \ [.t1lib]t1extern.h \ [.t1lib]t1finfo.h \ [.t1lib]t1global.h \ [.t1lib]t1lib.h \ [.t1lib]t1load.h \ [.t1lib]t1misc.h \ [.t1lib]t1set.h \ [.t1lib]t1trans.h \ [.t1lib]t1types.h MAIN_TARGET = libt1lib.olb DUMMYSUBDIRS=XXXX all : msg $(DUMMYSUBDIRS) $(MAIN_TARGET)($(TYPE1_OBJS) $(T1LIB_OBJS)) @ ! msg : @ $(ECHO) "" @ $(ECHO) "Making $(MAIN_TARGET) ..." @ $(ECHO) "" $(DUMMYSUBDIRS) : dummy @ $(CD) [.TYPE1] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] @ $(CD) [.T1LIB] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] libt1lib.olb : $(TYPE1_OBJS) $(T1LIB_OBJS) clean : dummy @ $(CD) [.TYPE1] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] @ $(CD) [.T1LIB] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] distclean : dummy @ $(CD) [.TYPE1] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] @ $(CD) [.T1LIB] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [-] $(RM) libt1lib.olb install : dummy links : dummy tests : dummy dummy : @ ! grace-5.1.25/arch/vms/descrip.mms0000644000076500001440000000136006776762644016353 0ustar fnevgenyusers##################################################### # Top-level Makefile for GRACE (VMS) # ##################################################### # Rolf Niepraschk, 11/97, niepraschk@ptb.de INCLUDE Make.conf CD = SET DEFAULT TOP = [-] ECHO = WRITE SYS$OUTPUT ALL : $(SUBDIRS) @ ! .LAST @ $(ECHO) "" @ $(ECHO) "Done." CEPHES : @ $(CD) [.CEPHES] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) $(TOP) T1LIB : @ $(CD) [.T1LIB] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) $(TOP) XBAE : @ $(CD) [.XBAE.XBAE] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) [--] SRC : @ $(CD) [.SRC] @ $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @ $(CD) $(TOP) clean : $(SUBDIRS) @ ! distclean : $(SUBDIRS) @ ! grace-5.1.25/arch/vms/xdr.opt0000644000076500001440000000004306626627167015514 0ustar fnevgenyuserssys$share:UCX$RPCXDR_SHR.EXE/share grace-5.1.25/arch/vms/motif1_2.opt0000644000076500001440000000023706626627167016344 0ustar fnevgenyuserssys$share:decw$mrmlibshr12/share sys$share:decw$dxmlibshr12/share sys$share:decw$xmlibshr12/share sys$share:decw$xtlibshrr5/share sys$share:decw$xlibshr/share grace-5.1.25/arch/vms/configure.com0000644000076500001440000005316507623537175016666 0ustar fnevgenyusers$! configure for GRACE -- VMS version $! Rolf Niepraschk, 12/97, niepraschk@ptb.de $! John Hasstedt, 12/98, John.Hasstedt@sunysb.edu $! $ echo := WRITE SYS$OUTPUT $! $! get versions, hardware type, etc $! $ VMSVERSION = F$GETSYI ("NODE_SWVERS") $ VMS_MAJOR = F$ELEMENT (0, ".", VMSVERSION) - "V" $ VMS_MINOR = F$ELEMENT (0, "-", F$ELEMENT (1, ".", VMSVERSION)) $ HW = F$GETSYI("ARCH_NAME") $ @SYS$UPDATE:DECW$GET_IMAGE_VERSION SYS$SHARE:DECW$XLIBSHR.EXE DECWVERSION $ DECWVERSION = F$ELEMENT (1, " ", DECWVERSION) $ DECW_MAJOR = F$ELEMENT (0, "-", DECWVERSION) $ @SYS$UPDATE:DECW$GET_IMAGE_VERSION SYS$SYSTEM:DECC$COMPILER.EXE DECCVERSION $ DECCVERSION = F$ELEMENT (1, " ", DECCVERSION) $ DECC_MAJOR = F$ELEMENT (0, ".", DECCVERSION) - "V" $! $! set defaults for command line parameters $! $ IF (F$SEARCH("SYS$LIBRARY:DECC$CRTL.EXE") .NES. "") $ THEN DECC$CRTLSHR = "Yes" $ ELSE DECC$CRTLSHR = "No" $ ENDIF $ IF (VMS_MAJOR .LT. 7) $ THEN DECC$CRTL = DECC$CRTLSHR $ ELSE DECC$CRTL = "No" $ ENDIF $ IF (F$SEARCH("SYS$LIBRARY:DPML$SHR.EXE") .NES. "") $ THEN DPMLSHR = "Yes" $ ELSE DPMLSHR = "No" $ ENDIF $ DPML = DPMLSHR $ OPTIMIZE = "Yes" $ IF (HW .EQS. "Alpha") $ THEN FLOAT = "IEEE" $ ELSE FLOAT = "G_FLOAT" $ ENDIF $ HOME = "" $ PRINT = "" $ QUEUE = "decw$printer_format_ps" $ EDIT = "edit/tpu/display=motif" $ HELP = "mosaic" $ FFTWINC = "" $ FFTWLIB = "" $ NETCDFINC = "" $ NETCDFLIB = "" $ JPEGINC = "" $ JPEGLIB = "" $ ZINC = "" $ ZLIB = "" $ PNGINC = "" $ PNGLIB = "" $ TIFFINC = "" $ TIFFLIB = "" $ PDFINC = "" $ PDFLIB = "" $ FORCECOPY = 0 $ SAVE = 0 $! $! read saved information and add command line parameters $! $ N = 1 $ SAVEFILE = F$ELEMENT (0, "]", F$ENVIRONMENT ("PROCEDURE")) + "]SAVED.DAT" $ IF (F$SEARCH(SAVEFILE) .EQS. "") THEN GOTO NO_SAVEFILE $ echo "" $ echo "Using saved information" $ OPEN/READ IN 'SAVEFILE' $LOOP_SAVEFILE: $ READ/END=DONE_SAVEFILE IN PAR'N' $ N = N + 1 $ GOTO LOOP_SAVEFILE $DONE_SAVEFILE: $ CLOSE IN $NO_SAVEFILE: $ PAR'N' = P1 $ N = N + 1 $ PAR'N' = P2 $ N = N + 1 $ PAR'N' = P3 $ N = N + 1 $ PAR'N' = P4 $ N = N + 1 $ PAR'N' = P5 $ N = N + 1 $ PAR'N' = P6 $ N = N + 1 $ PAR'N' = P7 $ N = N + 1 $ PAR'N' = P8 $ N = N + 1 $ PAR'N' = "" $ N = 0 $LOOP_PARAM: $ N = N + 1 $ P = F$ELEMENT (0, "=", PAR'N') $ IF (P .EQS. "") THEN GOTO DONE_PARAM $ IF (P .EQS. "DPML") $ THEN $ DPML = DPMLSHR $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "NODPML") $ THEN $ DPML = "No" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "DECC$CRTL") $ THEN $ DECC$CRTL = DECC$CRTLSHR $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "NODECC$CRTL") $ THEN $ DECC$CRTL = "No" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "OPTIMIZE") $ THEN $ OPTIMIZE = "Yes" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "NOOPTIMIZE") $ THEN $ OPTIMIZE = "No" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "D_FLOAT") $ THEN $ FLOAT = "D_FLOAT" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "G_FLOAT") $ THEN $ FLOAT = "G_FLOAT" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "IEEE") $ THEN $ IF (HW .EQS. "VAX") $ THEN $ echo "" $ echo "Ignoring IEEE option on VAX" $ ELSE $ FLOAT = "IEEE" $ ENDIF $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "HOME") $ THEN $ HOME = PAR'N' - "HOME=" $ IF (F$EXTRACT(0,1,HOME) .EQS. """") THEN - HOME = F$EXTRACT(1,F$LENGTH(HOME)-1,HOME) $ IF (F$EXTRACT(F$LENGTH(HOME)-1,1,HOME) .EQS. """") THEN - HOME = F$EXTRACT(0,F$LENGTH(HOME)-1,HOME) $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "PRINT") $ THEN $ PRINT = PAR'N' - "PRINT=" $ IF (F$EXTRACT(0,1,PRINT) .EQS. """") THEN - PRINT = F$EXTRACT(1,F$LENGTH(PRINT)-1,PRINT) $ IF (F$EXTRACT(F$LENGTH(PRINT)-1,1,PRINT) .EQS. """") THEN - PRINT = F$EXTRACT(0,F$LENGTH(PRINT)-1,PRINT) $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "QUEUE") $ THEN $ QUEUE = PAR'N' - "QUEUE=" $ IF (F$EXTRACT(0,1,QUEUE) .EQS. """") THEN - QUEUE = F$EXTRACT(1,F$LENGTH(QUEUE)-1,QUEUE) $ IF (F$EXTRACT(F$LENGTH(QUEUE)-1,1,QUEUE) .EQS. """") THEN - QUEUE = F$EXTRACT(0,F$LENGTH(QUEUE)-1,QUEUE) $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "EDIT") $ THEN $ EDIT = PAR'N' - "EDIT=" $ IF (F$EXTRACT(0,1,EDIT) .EQS. """") THEN - EDIT = F$EXTRACT(1,F$LENGTH(EDIT)-1,EDIT) $ IF (F$EXTRACT(F$LENGTH(EDIT)-1,1,EDIT) .EQS. """") THEN - EDIT = F$EXTRACT(0,F$LENGTH(EDIT)-1,EDIT) $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "HELP") $ THEN $ HELP = PAR'N' - "HELP=" $ IF (F$EXTRACT(0,1,HELP) .EQS. """") THEN - HELP = F$EXTRACT(1,F$LENGTH(HELP)-1,HELP) $ IF (F$EXTRACT(F$LENGTH(HELP)-1,1,HELP) .EQS. """") THEN - HELP = F$EXTRACT(0,F$LENGTH(HELP)-1,HELP) $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "FFTW") $ THEN $ FFTWINC = F$ELEMENT (1, "=", PAR'N') $ FFTWLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "NETCDF") $ THEN $ NETCDFINC = F$ELEMENT (1, "=", PAR'N') $ NETCDFLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "JPEG") $ THEN $ JPEGINC = F$ELEMENT (1, "=", PAR'N') $ JPEGLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "ZLIB") $ THEN $ ZINC = F$ELEMENT (1, "=", PAR'N') $ ZLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "PNG") $ THEN $ PNGINC = F$ELEMENT (1, "=", PAR'N') $ PNGLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "TIFF") $ THEN $ TIFFINC = F$ELEMENT (1, "=", PAR'N') $ TIFFLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "PDF") $ THEN $ PDFINC = F$ELEMENT (1, "=", PAR'N') $ PDFLIB = F$ELEMENT (2, "=", PAR'N') - "=" $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "COPY") $ THEN $ FORCECOPY = 1 $ GOTO LOOP_PARAM $ ENDIF $ IF (P .EQS. "SAVE") $ THEN $ SAVE = 1 $ GOTO LOOP_PARAM $ ENDIF $ echo "Unrecognized option: ", P $ EXIT $DONE_PARAM: $ IF (FFTWINC .NES. "") $ THEN $ FFTWLIB = F$PARSE (FFTWLIB, "''FFTWINC'FFTW.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (NETCDFINC .NES. "" .AND. NETCDFLIB .EQS. "") $ THEN $ echo "You must specify both the include directory and the libraries" $ echo "with the NETCDF option." $ EXIT $ ENDIF $ IF (JPEGINC .NES. "") $ THEN $ JPEGLIB = F$PARSE (JPEGLIB, "''JPEGINC'LIBJPEG.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (ZINC .NES. "") $ THEN $ ZLIB = F$PARSE (ZLIB, "''ZINC'LIBZ.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (PNGINC .NES. "") $ THEN $ PNGLIB = F$PARSE (PNGLIB, "''PNGINC'LIBPNG.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (ZLIB .EQS. "" .AND. PNGLIB .NES. "") $ THEN $ echo "You must include ZLIB if you want PNG." $ EXIT $ ENDIF $ IF (TIFFINC .NES. "") $ THEN $ TIFFLIB = F$PARSE (TIFFLIB, "''TIFFINC'TIFF.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (PDFINC .NES. "") $ THEN $ PDFLIB = F$PARSE (PDFLIB, "''PDFINC'PDFLIB.OLB",,, "SYNTAX_ONLY") - ";" $ ENDIF $ IF (SAVE) $ THEN $ IF (F$SEARCH(SAVEFILE) .EQS. "") $ THEN $ OPEN/WRITE OUT 'SAVEFILE' $ ELSE $ OPEN/APPEND OUT 'SAVEFILE' $ ENDIF $ IF (P1 .NES. "" .AND. P1 .NES. "SAVE") THEN WRITE OUT P1 $ IF (P2 .NES. "" .AND. P2 .NES. "SAVE") THEN WRITE OUT P2 $ IF (P3 .NES. "" .AND. P3 .NES. "SAVE") THEN WRITE OUT P3 $ IF (P4 .NES. "" .AND. P4 .NES. "SAVE") THEN WRITE OUT P4 $ IF (P5 .NES. "" .AND. P5 .NES. "SAVE") THEN WRITE OUT P5 $ IF (P6 .NES. "" .AND. P6 .NES. "SAVE") THEN WRITE OUT P6 $ IF (P7 .NES. "" .AND. P7 .NES. "SAVE") THEN WRITE OUT P7 $ IF (P8 .NES. "" .AND. P8 .NES. "SAVE") THEN WRITE OUT P8 $ CLOSE OUT $ ENDIF $ IF (PRINT .EQS. "") THEN - PRINT = "print/name=""from Grace""/delete/queue=" + QUEUE $ IF (F$LOCATE("%s",HELP) .EQ. F$LENGTH(HELP)) THEN HELP = HELP + " %s" $! $! Define the __CRTL_VER symbol. $! $ IF (DECC$CRTL) THEN DEFINE/USER DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE $ CC/OBJECT=DEFINE_CRTL_VER.OBJ SYS$INPUT #include #include #include #include #ifndef __CRTL_VER # define __CRTL_VER __VMS_VER #endif main () { static $DESCRIPTOR(crtl,"__CRTL_VER"); struct dsc$descriptor_s val = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0}; static int tab = {1}; char str[10]; val.dsc$w_length = sprintf (str, "%d", __CRTL_VER); val.dsc$a_pointer = str; exit (lib$set_symbol (&crtl, &val, &tab)); } $ LINK/EXECUTABLE=DEFINE_CRTL_VER.EXE DEFINE_CRTL_VER.OBJ $ RUN DEFINE_CRTL_VER.EXE $ DELETE DEFINE_CRTL_VER.OBJ;*,DEFINE_CRTL_VER.EXE;* $ __CRTL_VER = F$INTEGER(__CRTL_VER) $! $! Write the configureation. $! $ OPEN/WRITE OUT CONFIGURE.LOG $ WRITE OUT "Configuration of GRACE for VMS on ", F$GETSYI("NODENAME"), - " at ", F$TIME() $ WRITE OUT "" $ WRITE OUT "VMS version: ", VMSVERSION $ WRITE OUT "Architecture: ", HW $ WRITE OUT "GUI: Motif ", DECWVERSION $ WRITE OUT "DECC version: ", DECCVERSION $ WRITE OUT "Use DECC$CRTL.OLB: ", DECC$CRTL $ WRITE OUT "CRTL version: ", __CRTL_VER $ WRITE OUT "Use DPML: ", DPML $ WRITE OUT "Optimize: ", OPTIMIZE $ WRITE OUT "Floating point: ", FLOAT $ WRITE OUT "Home directory: ", HOME $ WRITE OUT "Print command: ", PRINT $ WRITE OUT "Edit command: ", EDIT $ WRITE OUT "Help viewer: ", HELP $ IF (FFTWLIB .EQS. "") $ THEN $ WRITE OUT "FFTW: Not used" $ ELSE $ WRITE OUT "FFTW: Include dir: ", FFTWINC $ WRITE OUT " Library: ", FFTWLIB $ ENDIF $ IF (NETCDFLIB .EQS. "") $ THEN $ WRITE OUT "NetCDF: Not used" $ ELSE $ WRITE OUT "NetCDF: Include dir: ", NETCDFINC $ WRITE OUT " Libraries: ", NETCDFLIB $ ENDIF $ IF (JPEGLIB .EQS. "") $ THEN $ WRITE OUT "JPEG: Not used" $ ELSE $ WRITE OUT "JPEG: Include dir: ", JPEGINC $ WRITE OUT " Library: ", JPEGLIB $ ENDIF $ IF (ZLIB .EQS. "") $ THEN $ WRITE OUT "ZLIB: Not used" $ ELSE $ WRITE OUT "ZLIB: Include dir: ", ZINC $ WRITE OUT " Library: ", ZLIB $ ENDIF $ IF (PNGLIB .EQS. "") $ THEN $ WRITE OUT "PNG: Not used" $ ELSE $ WRITE OUT "PNG: Include dir: ", PNGINC $ WRITE OUT " Library: ", PNGLIB $ ENDIF $ IF (TIFFLIB .EQS. "") $ THEN $ WRITE OUT "TIFF: Not used" $ ELSE $ WRITE OUT "TIFF: Include dir: ", TIFFINC $ WRITE OUT " Library: ", TIFFLIB $ ENDIF $ IF (PDFLIB .EQS. "") $ THEN $ WRITE OUT "PDF: Not used" $ ELSE $ WRITE OUT "PDF: Include dir: ", PDFINC $ WRITE OUT " Library: ", PDFLIB $ ENDIF $ CLOSE OUT $ echo "" $ TYPE/NOPAGE CONFIGURE.LOG $ echo "" $! $! define symbols for the other directories $! $ MAIN_DIR := [--] $ CEPHES_DIR := [--.CEPHES] $ T1LIB_DIR := [--.T1LIB] $ T1LIB_T1LIB_DIR := [--.T1LIB.T1LIB] $ T1LIB_TYPE1_DIR := [--.T1LIB.TYPE1] $ XBAE_DIR := [--.XBAE.XBAE] $ SRC_DIR := [--.SRC] $ GRCONVERT_DIR := [--.GRCONVERT] $ EXAMPLES_DIR := [--.EXAMPLES] $ CONF_DIR := [--.AC-TOOLS] $! $! save the current directory and set default to the vms directory $! $ CURDIR = F$ENVIRONMENT ("DEFAULT") $ VMSDIR = F$ELEMENT (0, "]", F$ENVIRONMENT ("PROCEDURE")) + "]" $ SET DEFAULT 'VMSDIR' $! $! copy files to other directories $! $ IF (FORCECOPY .OR. F$SEARCH("''MAIN_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY DESCRIP.MMS 'MAIN_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''CEPHES_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY CEPHES.MMS 'CEPHES_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''T1LIB_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY T1LIB.MMS 'T1LIB_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''T1LIB_T1LIB_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY T1LIB_T1LIB.MMS 'T1LIB_T1LIB_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''T1LIB_TYPE1_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY T1LIB_TYPE1.MMS 'T1LIB_TYPE1_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''XBAE_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY XBAE.MMS 'XBAE_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''SRC_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY SRC.MMS 'SRC_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''GRCONVERT_DIR'DESCRIP.MMS") .EQS. "") THEN - COPY GRCONVERT.MMS 'GRCONVERT_DIR'DESCRIP.MMS $ IF (FORCECOPY .OR. F$SEARCH("''EXAMPLES_DIR'DOTEST.COM") .EQS. "") THEN - COPY DOTEST.COM 'EXAMPLES_DIR'DOTEST.COM $! $! Copy the default font encoding file. $! $ IF (F$SEARCH("[--.FONTS.ENC]DEFAULT.ENC") .EQS. "") THEN - COPY [--.FONTS.ENC]ISOLATIN1.ENC [--.FONTS.ENC]DEFAULT.ENC $! $! Rename files in [.DOC]. $! $RENAMEDOC: $ FILE = F$SEARCH ("[--.DOC]*.*_*") $ IF (FILE .NES. "") $ THEN $ NAME = F$PARSE (FILE,,, "NAME") $ TYPE = F$PARSE (FILE,,, "TYPE") - "." $ REAL = F$ELEMENT (3, "_", TYPE) $ IF (REAL .EQS. "_") $ THEN $ REAL = F$ELEMENT (2, "_", TYPE) $ IF (REAL .EQS. "_") $ THEN $ REAL = F$ELEMENT (1, "_", TYPE) $ ENDIF $ ENDIF $ N = F$LENGTH (TYPE) - F$LENGTH (REAL) - 1 $ NAME = NAME + "_" + F$EXTRACT (0, N, TYPE) $ RENAME 'FILE' [--.DOC]'NAME'.'REAL' $ GOTO RENAMEDOC $ ENDIF $! $! Define symbols for make.conf. These symbols are in make.conf_in; they $! are set to the value they should be in make.conf. $! $ O = ".obj" $ EXE = ".exe" $ BAT = ".com" $ SHELL = "" $ PREFIX = "" $ SUBDIRS = "cephes t1lib xbae src" $ GRACE = "xmgrace$(EXE)" $ GRACE_HOME = HOME $ IF (HW .EQS. "Alpha" .OR. DECC_MAJOR .GE. 6) $ THEN ALLOCA = "" $ ELSE ALLOCA = "alloca$(O)" $ ENDIF $ T1_LIB = ",[-.T1LIB]libt1lib.olb/LIBRARY" $ T1_INC = ",[-.T1LIB.T1LIB]" $ T1_AA_TYPE16 = "short" $ T1_AA_TYPE32 = "int" $ T1_AA_TYPE64 = "" $ XDR_LIB = "" $ DL_LIB = "" $ IF (FFTWLIB .NES. "") $ THEN FFTW_LIB = "," + FFTWLIB + "/LIBRARY" $ ELSE FFTW_LIB = "" $ ENDIF $ NETCDF_LIBS = "" $ IF (NETCDFLIB .EQS. "") THEN GOTO DONE_NETCDF_LIBS $ N = 0 $LOOP_NETCDF_LIBS: $ LIB = F$ELEMENT (N, ",", NETCDFLIB) $ IF (LIB .EQS. ",") THEN GOTO DONE_NETCDF_LIBS $ NETCDF_LIBS = NETCDF_LIBS + "," + LIB + "/LIBRARY" $ N = N + 1 $ GOTO LOOP_NETCDF_LIBS $DONE_NETCDF_LIBS: $ IF (JPEGLIB .NES. "") $ THEN JPEG_LIB = "," + JPEGLIB + "/LIBRARY" $ ELSE JPEG_LIB = "" $ ENDIF $ IF (ZLIB .NES. "") $ THEN Z_LIB = "," + ZLIB + "/LIBRARY" $ ELSE Z_LIB = "" $ ENDIF $ IF (PNGLIB .NES. "") $ THEN PNG_LIB = "," + PNGLIB + "/LIBRARY" $ ELSE PNG_LIB = "" $ ENDIF $ IF (TIFFLIB .NES. "") $ THEN TIFF_LIB = "," + TIFFLIB + "/LIBRARY" $ ELSE TIFF_LIB = "" $ ENDIF $ IF (PDFLIB .NES. "") $ THEN $ PDF_LIB = "," + PDFLIB + "/LIBRARY" $ PDFDRV_O = "pdfdrv$(O)" $ ELSE $ PDF_LIB = "" $ PDFDRV_O = "" $ ENDIF $ XBAE_INC = "[-.XBAE.XBAE]" $ YACC = "" $ CC = "cc" $ FC = "fortran" $ AR = "library" $ RANLIB = "" $ RM = "delete/log" $ LN_S = "" $ INSTALL = "" $ INSTALL_PROGRAM = "" $ INSTALL_DATA = "" $ MKINSTALLDIRS = "" $ CPPFLAGS = "" $ IF (DPMLSHR .AND. .NOT. DPML) $ THEN $ CFLAGS0 = "/PREFIX=(ALL,EXCEPT=(CBRT,LOG2,RINT,ASINH,ACOSH,ATANH," - + "ERF,ERFC,J0,J1,JN,Y0,Y1,YN))" $ ELSE $ CFLAGS0 = "/PREFIX=ALL" $ ENDIF $ CFLAGS0 = CFLAGS0 + "/FLOAT=" + FLOAT $ IF (.NOT. OPTIMIZE) THEN CFLAGS0 = CFLAGS0 + "/NOOPTIMIZE" $ GUI_FLAGS = "" $ LDFLAGS = "" $ IF (DECC$CRTL) $ THEN $ NOGUI_LIBS = ",sys$library:decc$crtl.olb/LIBRARY" $ IF (HW .EQS. "VAX") THEN - NOGUI_LIBS = NOGUI_LIBS + ",sys$library:vaxc$lcl.opt/OPTION" $ ELSE $ NOGUI_LIBS = "" $ ENDIF $ GUI_LIBS = ",[-.XBAE.XBAE]libxbae.olb/LIBRARY,[-.ARCH.VMS]motif1_2.opt/OPTION" $ PRINT_CMD = F$ELEMENT (0, """", PRINT) $ N = 1 $LOOP_PRINT_CMD: $ P = F$ELEMENT (N, """", PRINT) $ IF (P .NES. """") $ THEN $ PRINT_CMD = PRINT_CMD + "\\042" + P $ N = N + 1 $ GOTO LOOP_PRINT_CMD $ ENDIF $ GRACE_EDITOR = EDIT $ HELPVIEWER = HELP $! $! create make.conf $! $ echo "Creating make.conf" $ OPEN/READ IN 'CONF_DIR'MAKE.CONF_IN $ OPEN/WRITE OUT 'MAIN_DIR'MAKE.CONF $LOOP_MAKE_CONF: $ READ/END=DONE_MAKE_CONF IN REC $ IF (F$LOCATE("=",REC) .NE. F$LENGTH(REC)) $ THEN $ SYM = F$ELEMENT(0,"=",REC) $ IF (F$TYPE('SYM') .EQS. "") $ THEN $ WRITE SYS$OUTPUT "No DCL symbol for ", REC $ ELSE $ REC = SYM + "=" + 'SYM' $ ENDIF $ ELSE $ IF (REC .EQS. ".SUFFIXES:") THEN REC = "#.SUFFIXES:" ! allow make rules $ ENDIF $ WRITE OUT REC $ GOTO LOOP_MAKE_CONF $DONE_MAKE_CONF: $ CLOSE IN $ LIB_INC = "" $ IF (FFTWINC .NES. "") THEN LIB_INC = LIB_INC + "," + FFTWINC $ IF (NETCDFINC .NES. "") THEN LIB_INC = LIB_INC + "," + NETCDFINC $ IF (JPEGINC .NES. "") THEN LIB_INC = LIB_INC + "," + JPEGINC $ IF (ZINC .NES. "") THEN LIB_INC = LIB_INC + "," + ZINC $ IF (PNGINC .NES. "") THEN LIB_INC = LIB_INC + "," + PNGINC $ IF (TIFFINC .NES. "") THEN LIB_INC = LIB_INC + "," + TIFFINC $ IF (PDFINC .NES. "") THEN LIB_INC = LIB_INC + "," + PDFINC $ WRITE OUT "" $ WRITE OUT "# Library include directories" $ WRITE OUT "LIB_INC=", LIB_INC $ WRITE OUT "" $ WRITE OUT "# Use DECC$CRTL.OLB object library" $ IF (DECC$CRTL) $ THEN WRITE OUT "USE_DECC$CRTL=1" $ ELSE WRITE OUT "#USE_DECC$CRTL=1" $ ENDIF $ WRITE OUT "" $ WRITE OUT "# C compiler" $ CCOMPILER = "DECC " + DECCVERSION $ IF (DECC$CRTL) THEN CCOMPILER = CCOMPILER + "/DECC$CRTL.OLB" $ IF (DPML) $ THEN CCOMPILER = CCOMPILER + "/DPML" $ ELSE CCOMPILER = CCOMPILER + "/No DPML" $ ENDIF $ IF (.NOT. OPTIMIZE) THEN CCOMPILER = CCOMPILER + "/No Optimize" $ CCOMPILER = CCOMPILER + "/" + FLOAT $ IF (NETCDFINC .NES. "") THEN CCOMPILER = CCOMPILER + "/NETCDF" $ WRITE OUT "CCOMPILER=", CCOMPILER $ CLOSE OUT $! $! define symbols for config.h $! These symbols are in config.h_in; if the DCL symbol is equal to 0, $! the symbol should be undefined in config.h; otherwise, it should be $! defined to the value of the DCL symbol. I define all values in DCL $! (instead of just those that need to be defined in config.h) so I can $! check when symbols are added to config.h_in. $! $ _ALL_SOURCE = 0 $ _POSIX_SOURCE = 0 $ STDC_HEADERS = 1 $ __CHAR_UNSIGNED__ = 0 $ SIZEOF_CHAR = "sizeof(char)" $ SIZEOF_SHORT = "sizeof(short)" $ SIZEOF_INT = "sizeof(int)" $ SIZEOF_LONG = "sizeof(long)" $ IF (HW .EQS. "Alpha") $ THEN SIZEOF_LONG_LONG = "sizeof(long long)" $ ELSE SIZEOF_LONG_LONG = "0" $ ENDIF $ SIZEOF_FLOAT = "sizeof(float)" $ SIZEOF_DOUBLE = "sizeof(double)" $ IF (HW .EQS. "Alpha") $ THEN SIZEOF_LONG_DOUBLE = "sizeof(long double)" $ ELSE SIZEOF_LONG_DOUBLE = "0" $ ENDIF $ SIZEOF_VOID_P = "sizeof(void *)" $ const = 0 $ pid_t = 0 $ size_t = 0 $ HAVE_UNISTD_H = 1 $ CRAY_STACKSEG_END = 0 $ HAVE_ALLOCA = (HW .EQS. "Alpha") .OR. (DECC_MAJOR .GE. 6) $ C_ALLOCA = (.NOT. HAVE_ALLOCA) .AND. 1 $ HAVE_ALLOCA_H = 0 $ RETSIGTYPE = "void" $ HAVE_SYS_WAIT_H = 1 $ HAVE_FCNTL_H = 1 $ HAVE_SYS_PARAM_H = 0 $ HAVE_SYS_TIME_H = 1 $ HAVE_SYS_SELECT_H = 0 $ TM_IN_SYS_TIME = 1 $ TIME_WITH_SYS_TIME = 1 $ HAVE_GETTIMEOFDAY = __CRTL_VER .GE. 70000000 $ HAVE_GETCWD = 1 $ HAVE_GETHOSTNAME = __CRTL_VER .GE. 50500000 $ HAVE_MEMCPY = 1 $ HAVE_MEMMOVE = 1 $ HAVE_UNLINK = 0 $ HAVE_FCNTL = __CRTL_VER .GE. 70200000 $ HAVE_POPEN = __CRTL_VER .GE. 70000000 $ HAVE_FNMATCH = 0 $ HAVE_ON_EXIT = 0 $ HAVE_STRSTR = 1 $ HAVE_STRERROR = 1 $ HAVE_SYS_ERRLIST_DECL = 0 $ HAVE_VSNPRINTF = 0 $ HAVE_DLOPEN = 0 $ HAVE_RTLD_NOW = 0 $ HAVE_SHL_LOAD = 0 $ WORDS_BIGENDIAN = 0 $ HAVE_DEC_FPU = FLOAT .NES. "IEEE" $ HAVE_LIEEE_FPU = (.NOT. HAVE_DEC_FPU) .AND. 1 $ HAVE_BIEEE_FPU = 0 $ REALLOC_IS_BUGGY = 0 $ HAVE_DRAND48 = __CRTL_VER .GE. 70000000 $ HAVE_SETLOCALE = __CRTL_VER .GE. 60200000 $ HAVE_DRAND48_DECL = HAVE_DRAND48 $ HAVE_LIBM = 1 $ HAVE_MATH_H = 1 $ HAVE_FLOAT_H = 1 $ HAVE_IEEEFP_H = 0 $ HAVE_HYPOT = 1 $ HAVE_HYPOT_DECL = HAVE_HYPOT $ HAVE_CBRT = F$INTEGER(DPML) $ HAVE_CBRT_DECL = HAVE_CBRT $ HAVE_LOG2 = F$INTEGER(DPML) $ HAVE_LOG2_DECL = HAVE_LOG2 $ HAVE_RINT = F$INTEGER(DPML) $ HAVE_RINT_DECL = HAVE_RINT $ HAVE_LGAMMA = 0 $ HAVE_LGAMMA_DECL = HAVE_LGAMMA $ HAVE_SIGNGAM_DECL = (HW .EQS. "Alpha") $ HAVE_ASINH = F$INTEGER(DPML) $ HAVE_ASINH_DECL = HAVE_ASINH $ HAVE_ACOSH = F$INTEGER(DPML) $ HAVE_ACOSH_DECL = HAVE_ACOSH $ HAVE_ATANH = F$INTEGER(DPML) $ HAVE_ATANH_DECL = HAVE_ATANH $ HAVE_ERF = F$INTEGER(DPML) $ HAVE_ERF_DECL = HAVE_ERF $ HAVE_ERFC = F$INTEGER(DPML) $ HAVE_ERFC_DECL = HAVE_ERFC $ HAVE_FINITE = (HW .EQS. "Alpha") $ HAVE_FINITE_DECL = HAVE_FINITE $ HAVE_ISFINITE = 0 $ HAVE_ISFINITE_DECL = HAVE_ISFINITE $ HAVE_ISNAN = (HW .EQS. "Alpha") $ HAVE_ISNAN_DECL = HAVE_ISNAN $ HAVE_J0 = F$INTEGER(DPML) $ HAVE_J0_DECL = HAVE_J0 $ HAVE_J1 = F$INTEGER(DPML) $ HAVE_J1_DECL = HAVE_J1 $ HAVE_JN = F$INTEGER(DPML) $ HAVE_JN_DECL = HAVE_JN $ HAVE_Y0 = F$INTEGER(DPML) $ HAVE_Y0_DECL = HAVE_Y0 $ HAVE_Y1 = F$INTEGER(DPML) $ HAVE_Y1_DECL = HAVE_Y1 $ HAVE_YN = F$INTEGER(DPML) $ HAVE_YN_DECL = HAVE_YN $ HAVE_NETCDF = NETCDFLIB .NES. "" $ HAVE_FFTW = FFTWLIB .NES. "" $ HAVE_LIBPNG = PNGLIB .NES. "" $ HAVE_LIBJPEG = JPEGLIB .NES. "" $ HAVE_LIBPDF = PDFLIB .NES. "" $ WITH_F77_WRAPPER = 1 $ X_DISPLAY_MISSING = 0 $ HAVE_MOTIF = 1 $ HAVE_LESSTIF = 0 $ HAVE__XMVERSIONSTRING = 0 $ HAVE_XPM = 0 $ HAVE_XPM_H = 0 $ HAVE_X11_XPM_H = 0 $ WITH_LIBHELP = 0 $ WITH_XMHTML = 0 $ WITH_EDITRES = 0 $ PRINT_CMD_UNLINKS = 1 $ WITH_DEBUG = 0 $! $! create config.h $! Any lines beginning with #define SIZEOF or #undef are rewritten; all $! other lines are copied to the output. $! $ echo "Creating config.h" $ OPEN/READ IN 'CONF_DIR'CONFIG.H_IN $ OPEN/WRITE OUT 'MAIN_DIR'CONFIG.H $LOOP_CONFIG_H: $ READ/END=DONE_CONFIG_H IN REC $ IF (F$ELEMENT(0," ",REC) .EQS. "#define") ! check for #define SIZEOF* $ THEN $ SYM = F$ELEMENT(1," ",REC) $ IF (F$EXTRACT(0,6,SYM) .EQS. "SIZEOF") $ THEN $ IF (F$TYPE('SYM') .EQS. "") $ THEN $ WRITE SYS$OUTPUT "No DCL symbol for ", REC $ ELSE $ REC = "#define " + SYM + " " + 'SYM' $ ENDIF $ ENDIF $ ELSE $ IF (F$ELEMENT(0," ",REC) .EQS. "#undef") ! check for #undef * $ THEN $ SYM = F$ELEMENT(1," ",REC) $ IF (F$TYPE('SYM') .EQS. "") $ THEN $ WRITE SYS$OUTPUT "No DCL symbol for ", REC $ ELSE $ VAL = 'SYM' $ IF (F$TYPE(VAL) .EQS. "STRING" .OR. VAL .NE. 0) $ THEN $ REC = "#define " + SYM + " " + F$STRING(VAL) $ ENDIF $ ENDIF $ ENDIF $ ENDIF $ WRITE OUT REC $ GOTO LOOP_CONFIG_H $DONE_CONFIG_H: $ CLOSE IN $ CLOSE OUT $! $! restore directory and exit $! $ SET DEFAULT 'CURDIR' $ EXIT grace-5.1.25/arch/vms/readme0000644000076500001440000003170307064715101015341 0ustar fnevgenyusersREADME for GRACE on VMS -- 1-Oct-1999 People who have worked on Grace for VMS: Rolf Niepraschk (niepraschk@ptb.de) John Hasstedt (John.Hasstedt@sunysb.edu) Martin Zinser (zinser@decus.decus.de) 1. Introduction I have compiled this version of Grace on VMS version 7.2 with DECC version 5.7. I have allowed for other versions, but may have missed some things. Please send mail to John Hasstedt if you have any problems building; include CONFIGURE.LOG in your message. Grace calls library functions not included in VMS until version 7. Starting with version 5.6 of DECC, Compaq distributes an object library (sys$library:decc$crtl.olb) containing these new functions (see sys$libray:decc$crtl.readme for information on it). On VMS version 6 and older, you can build Grace using this library, or you can build it with versions of the needed routines that are [.src]missing.c. The default is to use the decc$crtl library if it exists on VMS version 6 and older, and to not use it on VMS version 7. The build procedure runs a program (buildinfo) to create a header file (buildinfo.h) contining information on when and where it is built. This program requires the new routines. Instead of modifying it to work with older versions, I wrote some DCL code to create buildinfo.h. This code is not executed automatically. If you do not use decc$crtl on version 6 and older of VMS, you must do @[.ARCH.VMS]BUILD BUILDINFO before building with MMK or MMS. Grace requires Motif 1.2; it uses the Tab widget and Xbae, which do not support with Motif 1.1. 2. Other software There are five libraries that can be included with Grace: FFTW does fast fourier transforms and allows you to do non-power-of-2 length FFT's along with the normal ones; NetCDF allows you to read files in the HDF format; PNG, JPEG, and PDF allow you to write PNG, JPEG, and PDF files. When you compile the libraries, you should use the same floating point format (IEEE, G_FLOAT, or D_FLOAT) as you use with Grace; note that the TIFF library (which may be included with PDF) supports IEEE and D_FLOAT only. The FFTW package is at http://www.fftw.org/. Compile all the C files in [.fftw] with the command CC /FLOAT=IEEE /PREFIX=ALL /INCLUDE=[] then create a library (fftw.olb) containing all the object files. Change the /FLOAT qualifier if you are using a different format. The NETCDF package is at ftp://ftp.ncsa.uiuc.edu/HDF/, including precompiled binaries for VAX and Alpha. The JPEG library, the PNG library, and the ZLIB library (required if you want PNG) are in the Ghostscript distribution at http://www.cs.wisc.edu/~ghost/index.html. You will need to modify the make file to use the floating point format you use with Grace. There is also a precompiled version of the JPEG library in the netcdf distribution. The TIFF library is at http://www.libtiff.org/. By default, it uses IEEE on Alpha and D_FLOAT on VAX; the code will not work with G_FLOAT, so you must use IEEE or D_FLOAT for Grace. Grace does not do TIFF output, but configure.in says it may be needed for pdflib; my experience was that it is not needed. The PDF library is at http://www.pdflib.com/. Get the Unix distribution and compile the C files in [.pdflib] with the command CC/FLOAT=IEEE/PREFIX=ALL - /DEFINE=(HAVE_SETLOCALE="",HAVE_LIBZ,HAVE_LIBTIFF) - /INCLUDE=(,) - /WARNING=(DISABLE=LONGEXTERN) then create an object library (pdflib.olb) from all the files. Change the /FLOAT qualifier if you are using a different format. If you don't have the TIFF library, omit HAVE_LIBTIFF and the libtiff include directory. 3. Compilation In the top directory, do @[.ARCH.VMS]CONFIGURE [OPTIONS] Then do one of the following: MMK MMS /IGNORE=WARNING @[.ARCH.VMS]BUILD MMK is MadGoat's make utility; you can get it from ftp://ftp.madgoat.com/madgoat/mmk.zip. MMS is Compaq's make utility; the /IGNORE=WARNING is necessary with MMS to get the T1 library to build. If you don't have either make utility, the BUILD.COM command file will compile and link Grace. Configure accepts options as parameters on the command line. Separate multiple options with spaces. Note that you CANNOT put spaces around the equal sign. Configure accepts the following options: DECC$CRTL -- Use the DECC$CRTL.OLB library if it exists (see section 1). The default is to use the library (if it exists) on systems running version 6 and older of VMS. If you do not use DECC$CRTL on version 6 or older of VMS, you must first do @[.ARCH.VMS]BUILD BUILDINFO if you are building with MMK or MMS. NODECC$CRTL -- Do not use the DECC$CRTL. DPML -- Use the DPML if it exists. This option allows you to override a NODPML specified in a save file. DPML is the Digital Portable Math Library; it contains hyperbolic trig and other functions. It does not exist on the VAX. Grace uses the routines in the cephes library if you don't have the DPML. NODPML -- Do not use the DPML even if the system has it. OPTIMIZE -- Use the optimizer when you compile code. This is the default. This option allows you to override a NOOPTIMIZE specified in a save file. NOOPTIMIZE -- Compile the code with /NOOPTIMIZE. D_FLOAT, G_FLOAT, IEEE -- Specify the type of floating point; the default is G on VAX and IEEE on Alpha. IEEE is not available on VAX. You will get errors about overflow and underflow of some constants in [.t1lib.type1]token.c from the T1 library if you use D_FLOAT. However, grace still works (you should use MMS/IGNORE=WARNING to compile if you select D_FLOAT). If you are including libraries (FFTW, NETCDF, JPEG, ZLIB, PNG, TIFF, and PDF options), you should compile the library using the same floating point you use here. HOME="/dev/dir" -- Specify the home directory for grace; it must be in Unix format. You can override this compiled in directory when running grace by defining the logical name GRACE_HOME. The default is "", and you have to define the logical name. PRINT="print cmd" -- Specify the default print command. If you don't specify a print command, configure will use print/name="from Grace"/delete/queue= where is specified with the QUEUE option. You should not double the quotes in the string: PRINT="print/name="from Grace"..." You can override this compiled in command when running by defining the logical name GRACE_PRINT_CMD. QUEUE="queue" -- This option is ignored if you include the PRINT option. The default is decw$printer_format_ps. Note that the string you specify is appended to the string given above, so you can add other print qualifiers. For example, QUEUE="psqueue/form=ps" EDIT="edit command" -- The command used to open a new window and start the text editor. The default is edit/tpu/interface=motif. You can override this compiled in command when running by defining the logical name GRACE_EDITOR. HELP="browser" -- Specify the command used to start the html browser for viewing help; you can override this compiled in command by defining the logical name GRACE_HELPVIEWER. The default is mosaic. A %s indicates where the URL should be added; if you omit it, " %s" will be added to the end. There is a command file, [.arch.vms]netscape.com, that you can use with netscape. When you select help, this command file will start netscape if it is not already running; otherwise, it will display the new help in a new window using the existing netscape process. To use it, you need to specify HELP="@dev:[dir]netscape.com %s"; you cannot use GRACE_HOME: instead of the device and directory because GRACE_HOME is defined in Unix format. FFTW=
= -- Include the FFTW library.
is the directory containing the header files and is the object library. The default library is fftw.olb in the
directory; you can omit the second equal sign if you use the default. NETCDF=
= -- Include the netcdf library.
is the directory containing the netcdf header files. is a list of the netcdf object libraries, separated by commas. JPEG=
= -- ZLIB=
= -- PNG=
= -- TIFF=
= -- PDF=
= -- Include the other graphics libraries.
is the directory containing the header files and is the object library. The default libraries are libjpeg.olb, libz.olb, libpng.olb, tiff.olb, and pdflib.olb, respectively, and in the
directory; you can omit the second equal sign if you use the default. You must include ZLIB if you include PNG. COPY -- Copy the build files from [.arch.vms] to the other directories even if the files already exist in the other directories. This option is used when debugging the build procedures to make sure the version in the other directories is the same as the version in [.arch.vms]. SAVE -- Save the command line parameters in [.arch.vms]saved.dat. If this file exists when you execute configure.com, configure.com reads the file and processes the parameters in it before processing the command line parameters. If you specify the SAVE option and saved.dat exists, the new command line parameters are appended to the file; if you specify a parameter that is already in the save file, the original parameter will remain in the file, but the new parameter will override it. For example, if you run configure with parameters QUEUE="psprinter" and SAVE, in future runs of configure.com, QUEUE will default to psprinter. However, any value for QUEUE on the command line will override this, and if you specify QUEUE and SAVE on a later run, the new value of QUEUE will override the old one. You can also edit saved.dat to add or delete parameters. The file is just the parameters you specify on the command line, one on each line of the file. Configure displays the versions and parameters it is using for the build and writes this information to configure.log. 4. Installation To run, you need the files in [.doc] and [.fonts...], and [.templates]default.agr. You probably want the files in [.examples]. These directories should be subdirectories of the home directory. Define a symbol for the executable: $ xmgrace :== $disk:[path]xmgrace Define the following logicals if necessary: $ define GRACE_HOME "/disk/dir1/dir2/grace" ! The path to the directory containing [.doc], [.fonts], and [.templates] ! in Unix format. See the description of the HOME= option above. $ define GRACE_PRINT_CMD ! See the description of the PRINT= option above. $ define GRACE_EDITOR ! See the description of the EDIT= option above. $ define GRACE_HELPVIEWER "www-browser %s" ! See the description of the HELP= option above. X-resources: The file [.SRC]XMGRACE.AD contains the x resources. You may want to copy this file to XMGRACE.DAT in either DECW$SYSTEM_DEFAULTS and/or DECW$USER_DEFAULTS to customize the program. 5. Testing $ set default [.examples] $ @dotest Click exit after each test to display the next test. 6. Other routines Grace_np is a library for interfacing with Grace using pipes. I have not yet gotten it to work on VMS. I have included my notes in case someone wants to work on it. I had to modify grace_np.c: I changed the call to execlp to execl; and I changed the first parameter of the call to execl to the complete file specification ("/dev/dir/xmgrace.exe"). I couldn't get it to work with logical names or symbols. I then compiled with $ CFLAGS = "/INCLUDE=[-]/PREFIX=ALL" $ DEFINE/NOLOG DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE $ CC'CFLAGS' TEST_NP $ CC'CFLAGS' GRACE_NP $ LINK TEST_NP,GRACE_NP,SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY $ RUN TEST_NP The DEFINE and including DECC$CRTL.OLB on the link are not necessary on VMS version 7. TEST_NP will run Grace as a subprocess, but is not able to pass any commands to it. GRCONVERT is a program to convert the binary projects from older versions of XMGR to ascii format. It needs RPC routines included with TCPIP software. If you need it, there is a descrip.mms file in the directory. The default is to compile with D floating point; use /MACRO=(FLOAT=) to compile with either G_FLOAT or IEEE format. The default is for systems running UCX. I have added code to descrip.mms so you can use /MACRO=(MULTINET=1) to compile with multinet; however, there are errors about undefined symbols when linking, so you will need to do some debugging if you need this. 7. Bugs Send questions about building on VMS to John.Hasstedt@sunysb.edu. Send questions about use or bug reports to the grace mailing list. grace-5.1.25/Xbae/0000755000076500001440000000000012467751541013325 5ustar fnevgenyusersgrace-5.1.25/Xbae/Xbae/0000755000076500001440000000000012467751541014204 5ustar fnevgenyusersgrace-5.1.25/Xbae/Xbae/ScrollMgr.c0000644000076500001440000013042506766327622016265 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: ScrollMgr.c,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * ScrollMgr.c created by Andrew Lister (7 August, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include /* * ScrollMgr implementation. * When we scroll using XCopyArea, occluding windows will cause GraphicsExpose * events to be generated, if there are no occluding windows then NoExpose * events will be generated. The removal of occluding windows will cause Expose * events. If a number of scrolls (XCopyAreas) occur in quick succession, * the events will contain obsolete x/y information since our internal * coordinates have been scrolled to a new location. The ScrollMgr * keeps track of scrolls and offsets required to relocate the events to the * current coordinate system. * * The Matrix widget has two ScrollMgrs, one for the Matrix's window * and one for the Clip widget's window. * * Each widgets compress_exposures field should be XtExposeCompressSeries * or XtExposeNoCompress. * * The idea behind this code is based on the PanHandler posted by Chuck Ocheret * (chuck@fid.morgan.com) */ /* * Create and initialize a ScrollMgr */ SmScrollMgr xbaeSmCreateScrollMgr() { SmScrollMgr scrollMgr = XtNew(SmScrollMgrRec); scrollMgr->offset_x = 0; scrollMgr->offset_y = 0; scrollMgr->scroll_count = 0; scrollMgr->scroll_queue = NULL; scrollMgr->scrolling = False; return scrollMgr; } /* * Destroy a ScrollMgr, including any queued scrolls */ void xbaeSmDestroyScrollMgr(scrollMgr) SmScrollMgr scrollMgr; { if (scrollMgr->scroll_queue) { SmScrollNode node = scrollMgr->scroll_queue->next; while (node != scrollMgr->scroll_queue) { SmScrollNode d = node; node = node->next; XtFree((XtPointer) d); } XtFree((XtPointer) node); } XtFree((XtPointer) scrollMgr); } /* * Record a new scroll request in the ScrollMgr */ void xbaeSmAddScroll(scrollMgr, delta_x, delta_y) SmScrollMgr scrollMgr; int delta_x; int delta_y; { SmScrollNode node = XtNew(SmScrollNodeRec); node->x = delta_x; node->y = delta_y; scrollMgr->offset_x += delta_x; scrollMgr->offset_y += delta_y; scrollMgr->scroll_count++; /* * Insert the node at the end of the queue */ if (!scrollMgr->scroll_queue) { scrollMgr->scroll_queue = node; node->next = node; node->prev = node; } else { SmScrollNode last = scrollMgr->scroll_queue->prev; last->next = node; node->next = scrollMgr->scroll_queue; node->prev = last; scrollMgr->scroll_queue->prev = node; } } /* * Remove a scroll from the ScrollMgr queue */ void xbaeSmRemoveScroll(scrollMgr) SmScrollMgr scrollMgr; { if (scrollMgr->scroll_count) { SmScrollNode node = scrollMgr->scroll_queue; scrollMgr->offset_x -= node->x; scrollMgr->offset_y -= node->y; /* * Remove node from head of queue */ if (node->next == node) scrollMgr->scroll_queue = NULL; else { scrollMgr->scroll_queue = node->next; node->next->prev = node->prev; node->prev->next = node->next; } XtFree((XtPointer) node); scrollMgr->scroll_count--; } } /* * Handle an expose event */ void xbaeSmScrollEvent(scrollMgr, event) SmScrollMgr scrollMgr; XEvent *event; { switch (event->type) { case Expose: /* * Normal Expose event, translate it into our scrolled * coordinate system. */ event->xexpose.x += scrollMgr->offset_x; event->xexpose.y += scrollMgr->offset_y; break; case GraphicsExpose: /* * If we are not scrolling, then this must be the first * GraphicsExpose event. Remove the corresponding scroll from the * queue, and if we have more GraphicsExposes to come, set scrolling * to True. */ if (scrollMgr->scrolling == False) { xbaeSmRemoveScroll(scrollMgr); if (event->xgraphicsexpose.count != 0) scrollMgr->scrolling = True; } /* * This is the last GraphicsExpose so set scrolling to False. */ else if (event->xgraphicsexpose.count == 0) scrollMgr->scrolling = False; /* * Translate the event into our scrolled coordinate system. */ event->xgraphicsexpose.x += scrollMgr->offset_x; event->xgraphicsexpose.y += scrollMgr->offset_y; break; case NoExpose: /* * A NoExpose event means we won't be getting any GraphicsExpose * events, so remove the scroll from the queue and set scrolling * to False. */ xbaeSmRemoveScroll(scrollMgr); scrollMgr->scrolling = False; break; default: break; } } /* * Callback for vertical scrollbar */ /* ARGSUSED */ void xbaeScrollVertCB(w, client_data, call_data) Widget w; XtPointer client_data; XmScrollBarCallbackStruct *call_data; { XbaeMatrixWidget mw = (XbaeMatrixWidget) XtParent(w); Rectangle fixed, nonfixed; int src_y, dest_y, height; int vert_sb_offset = VERT_SB_OFFSET(mw); int row_height = ROW_HEIGHT(mw); int trailing_fixed_row_label_offset = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_column_label_offset = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); int trailing_fixed_column_width = TRAILING_FIXED_COLUMN_WIDTH(mw); int row_label_width = ROW_LABEL_WIDTH(mw); int fixed_row_label_offset = FIXED_ROW_LABEL_OFFSET(mw); /* * Not managed yet */ if (!XtIsRealized((Widget)mw)) return; /* * Didn't scroll */ if (call_data->value == VERT_ORIGIN(mw)) return; /* * Scrolled forward. We want to copy a chunk starting at src_y up * to the top (dest_y=0) */ else if (call_data->value > VERT_ORIGIN(mw)) { dest_y = 0; src_y = (call_data->value - VERT_ORIGIN(mw)) * row_height; height = ClipChild(mw)->core.height - src_y; } /* * Scrolled backward. We want to copy a chunk starting at the top * (src_y=0) down to dest_y. */ else { dest_y = (VERT_ORIGIN(mw) - call_data->value) * row_height; src_y = 0; height = ClipChild(mw)->core.height - dest_y; } /* * The textField needs to scroll along with the cells. */ if (XtIsManaged(TextChild(mw)) && mw->matrix.current_row >= (int)mw->matrix.fixed_rows && mw->matrix.current_row < TRAILING_VERT_ORIGIN(mw)) XtMoveWidget(TextChild(mw), TextChild(mw)->core.x, TextChild(mw)->core.y + (VERT_ORIGIN(mw) - call_data->value) * row_height); /* * Now we can adjust our vertical origin */ VERT_ORIGIN(mw) = call_data->value; /* * If we scrolled more than a screenful, just clear and * redraw the whole thing */ if (height <= 0) { /* * Clear the whole clip window. */ XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, False); /* * Clear the whole Left and Right Clips */ if (XtIsManaged(LeftClip(mw))) XClearArea(XtDisplay(mw), XtWindow(LeftClip(mw)), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, False); if (XtIsManaged(RightClip(mw))) XClearArea(XtDisplay(mw), XtWindow(RightClip(mw)), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, False); /* * Redraw all the non-fixed cells in the clip window */ SETRECT(nonfixed, 0, 0, ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1); /* * Clear non-fixed row labels, if necessary. * If we don't have a row label width, then * it would clear the entire width. */ if (row_label_width) XClearArea(XtDisplay(mw), XtWindow(mw), vert_sb_offset, fixed_row_label_offset, row_label_width - 1, VISIBLE_HEIGHT(mw), False); /* * Clear the trailing filled rows, if necessary */ if (IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw)) XClearArea(XtDisplay(mw), XtWindow(mw), trailing_fixed_column_label_offset + trailing_fixed_column_width, fixed_row_label_offset, FILL_HORIZ_WIDTH(mw), ClipChild(mw)->core.height, False); /* * Redraw non-fixed row labels and cells in fixed columns */ SETRECT(fixed, vert_sb_offset, fixed_row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, trailing_fixed_row_label_offset - 1); } /* * If we scrolled less than a screenful, we want to copy as many * pixels as we can and then clear and redraw the newly scrolled data. */ else { int y_clear = src_y > dest_y ? height : 0; /* * Queue this scroll with the ScrollMgr */ xbaeSmAddScroll(mw->matrix.clip_scroll_mgr, 0, dest_y - src_y); /* * Copy the non-fixed cells in the clip widget */ XCopyArea(XtDisplay(mw), XtWindow(ClipChild(mw)), XtWindow(ClipChild(mw)), mw->matrix.draw_gc, 0, src_y, ClipChild(mw)->core.width, height, 0, dest_y); /* * Clear the newly scrolled chunk of the clip widget */ XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), 0, y_clear, 0 /*Full Width*/, ClipChild(mw)->core.height - height, False); /* * Redraw the non-fixed cells into the new chunk */ SETRECT(nonfixed, 0, y_clear, ClipChild(mw)->core.width - 1, (y_clear + (ClipChild(mw)->core.height - height)) - 1); /* * Queue this scroll with the ScrollMgr */ xbaeSmAddScroll(mw->matrix.matrix_scroll_mgr, 0, dest_y - src_y); /* * Copy cells in the fixed columns on LeftClip */ if (XtIsManaged(LeftClip(mw))) XCopyArea(XtDisplay(mw), XtWindow(LeftClip(mw)), XtWindow(LeftClip(mw)), mw->matrix.draw_gc, 0, src_y, FIXED_COLUMN_WIDTH(mw), height, 0, dest_y); /* * Copy cells in the trailing fixed columns on RightClip */ if (XtIsManaged(RightClip(mw))) XCopyArea(XtDisplay(mw), XtWindow(RightClip(mw)), XtWindow(RightClip(mw)), mw->matrix.draw_gc, 0, src_y, trailing_fixed_column_width, height, 0, dest_y); /* * Translate coordinates for row labels (on the parent matrix window). */ src_y += fixed_row_label_offset; dest_y += fixed_row_label_offset; /* * Copy the row labels */ if (row_label_width) XCopyArea(XtDisplay(mw), XtWindow(mw), XtWindow(mw), mw->matrix.draw_gc, vert_sb_offset, src_y, row_label_width, height, vert_sb_offset, dest_y); /* * Copy trailing filled portion of the rows if necessary */ if (IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw)) { XCopyArea(XtDisplay(mw), XtWindow(mw), XtWindow(mw), mw->matrix.draw_gc, trailing_fixed_column_label_offset + trailing_fixed_column_width, src_y, FILL_HORIZ_WIDTH(mw), height, trailing_fixed_column_label_offset + trailing_fixed_column_width, dest_y); } /* * Clear newly scrolled chunk of fixed columns on LeftClip */ if (XtIsManaged(LeftClip(mw))) XClearArea(XtDisplay(mw), XtWindow(LeftClip(mw)), 0, y_clear, 0 /* Full Width */, ClipChild(mw)->core.height - height, False); /* * Clear newly scrolled chunk of trailing fixed columns on RightClip */ if (XtIsManaged(RightClip(mw))) XClearArea(XtDisplay(mw), XtWindow(RightClip(mw)), 0, y_clear, 0 /* Full Width */, ClipChild(mw)->core.height - height, False); /* * Translate coordinates for row labels on Matrix */ y_clear += fixed_row_label_offset; /* * Clear the newly scrolled chunk of row labels */ if (row_label_width) XClearArea(XtDisplay(mw), XtWindow(mw), vert_sb_offset, y_clear, row_label_width, CLIP_VERT_VISIBLE_SPACE(mw) + mw->manager.shadow_thickness, False); /* * Clear the trailing filled rows, if necessary */ if ((src_y > dest_y) && IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw)) XClearArea(XtDisplay(mw), XtWindow(mw), trailing_fixed_column_label_offset + trailing_fixed_column_width, y_clear, FILL_HORIZ_WIDTH(mw), ClipChild(mw)->core.height - height, False); /* * Redraw the new chunk of fixed columns and row labels */ SETRECT(fixed, vert_sb_offset, y_clear, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, y_clear + CLIP_VERT_VISIBLE_SPACE(mw)); } /* * Perform the actual redraw. The call to draw the grid shadows * must be done after any XClearAreas() to ensure we don't redraw * more than we have to; that is, we could put the call in the * redraw cells routine, but we would end up occasionally redrawing * more than once. */ xbaeRedrawLabelsAndFixed(mw, &fixed); xbaeRedrawCells(mw, &nonfixed); } /* * Callback for horizontal scrollbar */ /* ARGSUSED */ void xbaeScrollHorizCB(w, client_data, call_data) Widget w; XtPointer client_data; XmScrollBarCallbackStruct *call_data; { XbaeMatrixWidget mw = (XbaeMatrixWidget) XtParent(w); Rectangle fixed, nonfixed; int src_x, dest_x, width; int horiz_sb_offset = HORIZ_SB_OFFSET(mw); int trailing_fixed_row_label_offset = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_row_height = TRAILING_FIXED_ROW_HEIGHT(mw); /* int trailing_fixed_column_label_offset = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw);*/ int column_label_height = COLUMN_LABEL_HEIGHT(mw); int fixed_column_label_offset = FIXED_COLUMN_LABEL_OFFSET(mw); int fixed_column_width = FIXED_COLUMN_WIDTH(mw); int vert_dead_space_height = VERT_DEAD_SPACE_HEIGHT(mw); Boolean need_vert_fill = NEED_VERT_FILL(mw); Boolean has_attached_trailing_rows = HAS_ATTACHED_TRAILING_ROWS(mw); Boolean need_vert_dead_space_fill = NEED_VERT_DEAD_SPACE_FILL(mw); /*printf("%d\n", HORIZ_ORIGIN(mw));*/ /* * Didn't scroll */ if (call_data->value == HORIZ_ORIGIN(mw)) return; /* * Scrolled right. We want to copy a chunk starting at src_x over to * the left (dest_x=0) */ else if (call_data->value > HORIZ_ORIGIN(mw)) { dest_x = 0; src_x = call_data->value - HORIZ_ORIGIN(mw); width = ClipChild(mw)->core.width - src_x; } /* * Scrolled left. We want to copy a chunk starting at the left (src_x=0) * over to the right to dest_x */ else { dest_x = HORIZ_ORIGIN(mw) - call_data->value; src_x = 0; width = ClipChild(mw)->core.width - dest_x; } /* * The textField needs to scroll along with the cells. */ if (XtIsManaged(TextChild(mw)) && mw->matrix.current_column >= (int)mw->matrix.fixed_columns && mw->matrix.current_column < TRAILING_HORIZ_ORIGIN(mw)) { XtMoveWidget(TextChild(mw), TextChild(mw)->core.x + (HORIZ_ORIGIN(mw) - call_data->value), TextChild(mw)->core.y); } /* * Now we can adjust our horizontal origin */ HORIZ_ORIGIN(mw) = call_data->value; mw->matrix.left_column = xbaeXtoCol(mw, fixed_column_width + HORIZ_ORIGIN(mw)) - mw->matrix.fixed_columns; if (!XtIsRealized((Widget)mw)) return; /* * If we scrolled more than a screenful, just clear and * redraw the whole thing */ if (width <= 0) { /* * Clear the whole clip window */ XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), 0, 0, 0 /* Full Width */, 0 /* Full Height */, False); /* * Clear the whole Top and Bottom Clips */ if (XtIsManaged(TopClip(mw))) XClearArea(XtDisplay(mw), XtWindow(TopClip(mw)), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, False); if (XtIsManaged(BottomClip(mw))) XClearArea(XtDisplay(mw), XtWindow(BottomClip(mw)), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, False); /* * Redraw all the non-fixed cells in the clip window */ SETRECT(nonfixed, 0, 0, ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1); /* * Clear the non-fixed column labels */ if (column_label_height) XClearArea(XtDisplay(mw), XtWindow(mw), fixed_column_label_offset, horiz_sb_offset, VISIBLE_WIDTH(mw), column_label_height - 1, False); /* * Clear the trailing fixed column */ if (IN_GRID_COLUMN_MODE(mw)) { if (need_vert_fill && (! has_attached_trailing_rows)) XClearArea(XtDisplay(mw), XtWindow(mw), fixed_column_label_offset, trailing_fixed_row_label_offset + trailing_fixed_row_height, MATRIX_HORIZ_VISIBLE_SPACE(mw), 0, False); if (need_vert_dead_space_fill) XClearArea(XtDisplay(mw), XtWindow(mw), fixed_column_label_offset, UNATTACHED_TRAILING_ROWS_OFFSET(mw), MATRIX_HORIZ_VISIBLE_SPACE(mw), 0, False); } /* * Redraw non-fixed column labels and cells in fixed rows */ SETRECT(fixed, fixed_column_label_offset, horiz_sb_offset, fixed_column_label_offset + CLIP_HORIZ_VISIBLE_SPACE(mw), trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); } /* * If we scrolled less than a screenful, we want to copy as many * pixels as we can and then clear and redraw the newly scrolled data. */ else { int x_clear = src_x > dest_x ? width : 0; int unattached_trailing_rows_offset = UNATTACHED_TRAILING_ROWS_OFFSET(mw); /* * Queue this scroll with the ScrollMgr */ xbaeSmAddScroll(mw->matrix.clip_scroll_mgr, dest_x - src_x, 0); /* * Copy the non-fixed cells in the clip widget */ XCopyArea(XtDisplay(mw), XtWindow(ClipChild(mw)), XtWindow(ClipChild(mw)), mw->matrix.draw_gc, src_x, 0, width, ClipChild(mw)->core.height, dest_x, 0); /* * Clear the newly scrolled chunk of the clip widget */ XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), x_clear, 0, ClipChild(mw)->core.width - width, 0 /*Full Height*/, False); /* * Redraw the non-fixed cells into the new chunk */ SETRECT(nonfixed, x_clear, horiz_sb_offset, (x_clear + (ClipChild(mw)->core.width - width)) - 1, ClipChild(mw)->core.height - 1); /* * Queue this scroll with the ScrollMgr */ xbaeSmAddScroll(mw->matrix.matrix_scroll_mgr, dest_x - src_x, 0); /* * Copy cells across in fixed rows on TopClip */ if (XtIsManaged(TopClip(mw))) XCopyArea(XtDisplay(mw), XtWindow(TopClip(mw)), XtWindow(TopClip(mw)), mw->matrix.draw_gc, src_x, 0, width, FIXED_ROW_HEIGHT(mw), dest_x, 0); /* * Copy cells across in trailing fixed rows on BottomClip */ if (XtIsManaged(BottomClip(mw))) XCopyArea(XtDisplay(mw), XtWindow(BottomClip(mw)), XtWindow(BottomClip(mw)), mw->matrix.draw_gc, src_x, horiz_sb_offset, width, trailing_fixed_row_height, dest_x, 0); /* * Translate coordinates for column labels on the Matrix. */ src_x += fixed_column_label_offset; dest_x += fixed_column_label_offset; /* * Copy the column labels */ if (column_label_height) XCopyArea(XtDisplay(mw), XtWindow(mw), XtWindow(mw), mw->matrix.draw_gc, src_x, horiz_sb_offset, width, column_label_height, dest_x, horiz_sb_offset); /* * Copy trailing filled portion of the columns if necessary */ if (IN_GRID_COLUMN_MODE(mw)) { if (need_vert_fill && (! has_attached_trailing_rows)) XCopyArea(XtDisplay(mw), XtWindow(mw), XtWindow(mw), mw->matrix.draw_gc, src_x, trailing_fixed_row_label_offset + trailing_fixed_row_height, width, FILL_VERT_HEIGHT(mw), dest_x, trailing_fixed_row_label_offset + trailing_fixed_row_height); if (need_vert_dead_space_fill) XCopyArea(XtDisplay(mw), XtWindow(mw), XtWindow(mw), mw->matrix.draw_gc, src_x, unattached_trailing_rows_offset, width, vert_dead_space_height, dest_x, unattached_trailing_rows_offset); } /* * Clear newly scrolled chunk of fixed rows on TopClip */ if (XtIsManaged(TopClip(mw))) XClearArea(XtDisplay(mw), XtWindow(TopClip(mw)), x_clear, 0, ClipChild(mw)->core.width - width, 0 /* Full Height */, False); /* * Clear newly scrolled chunk of trailing fixed rows on BottomClip */ if (XtIsManaged(BottomClip(mw))) XClearArea(XtDisplay(mw), XtWindow(BottomClip(mw)), x_clear, 0, ClipChild(mw)->core.width - width, 0 /* Full Height */, False); /* * Translate coordinates for row labels on Matrix */ x_clear += fixed_column_label_offset; /* * Clear the newly scrolled chunk of column labels */ if (column_label_height) XClearArea(XtDisplay(mw), XtWindow(mw), x_clear, horiz_sb_offset, ClipChild(mw)->core.width - width, column_label_height, False); /* * Clear the dead space if necessary */ if (IN_GRID_COLUMN_MODE(mw) && need_vert_dead_space_fill) XClearArea(XtDisplay(mw), XtWindow(mw), x_clear,unattached_trailing_rows_offset, ClipChild(mw)->core.width - width, vert_dead_space_height, False); /* * Redraw the new chunk of fixed rows and column labels */ SETRECT(fixed, x_clear, horiz_sb_offset, x_clear + CLIP_HORIZ_VISIBLE_SPACE(mw), trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); } /* * Perform the actual redraw. The call to draw the grid shadows * must be done after any XClearAreas() to ensure we don't redraw * more than we have to; that is, we could put the call in the * redraw cells routine, but we would end up occasionally redrawing * more than once. */ xbaeRedrawLabelsAndFixed(mw, &fixed); xbaeRedrawCells(mw, &nonfixed); } /* * Redraw all cells in the clip widget damaged by the passed Rectangle. * The Rectangle must be within the bounds of the cells. These are the * non-fixed cells. */ void xbaeRedrawCells(mw, expose) XbaeMatrixWidget mw; Rectangle *expose; { int startCol, endCol, startRow, endRow, i, j; Rectangle rect; Boolean set_mask = False; if ((mw->matrix.disable_redisplay) || (!mw->matrix.rows) || (!mw->matrix.columns)) return; /* * Translate the 'expose' Rectangle to take into account the * fixed rows or columns. */ SETRECT(rect, expose->x1 + FIXED_COLUMN_WIDTH(mw), expose->y1 + FIXED_ROW_HEIGHT(mw), expose->x2 + FIXED_COLUMN_WIDTH(mw), expose->y2 + FIXED_ROW_HEIGHT(mw)); /* * Calculate the starting and ending rows/columns of the cells * which must be redrawn. */ startCol = xbaeXtoCol(mw, rect.x1 + HORIZ_ORIGIN(mw)); endCol = xbaeXtoCol(mw, rect.x2 + HORIZ_ORIGIN(mw)); startRow = YtoRow(mw, rect.y1 + mw->matrix.first_row_offset) + VERT_ORIGIN(mw); endRow = YtoRow(mw, rect.y2 + mw->matrix.first_row_offset) + VERT_ORIGIN(mw); SANITY_CHECK_ROW(mw, startRow); SANITY_CHECK_ROW(mw, endRow); SANITY_CHECK_COLUMN(mw, startCol); SANITY_CHECK_COLUMN(mw, endCol); /* * Redraw all cells which were exposed. */ for (i = startRow; i <= endRow; i++) { /* * If we need to clip the vertical fill */ if ((!set_mask) && IN_GRID_COLUMN_MODE(mw) && ((mw->matrix.rows - 1) == i) && NEED_VERT_FILL(mw)) { set_mask = True; xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); } for (j = startCol; j <= endCol; j++) xbaeDrawCell(mw, i, j); } if (set_mask) xbaeSetClipMask(mw, CLIP_NONE); } /* * Redraw the row and column labels and the cells in fixed rows/columns * that are overlapped by the Rectangle argument. */ void xbaeRedrawLabelsAndFixed(mw, expose) XbaeMatrixWidget mw; Rectangle *expose; { /* * Set up some local variables to avoid calling too many macros :p */ int horiz_sb_offset = HORIZ_SB_OFFSET(mw); int vert_sb_offset = VERT_SB_OFFSET(mw); int column_label_height = COLUMN_LABEL_HEIGHT(mw); int row_label_offset = ROW_LABEL_OFFSET(mw); int row_label_width = ROW_LABEL_WIDTH(mw); int fixed_row_label_offset = FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_row_label_offset = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_row_height = TRAILING_FIXED_ROW_HEIGHT(mw); int fixed_column_label_offset = FIXED_COLUMN_LABEL_OFFSET(mw); int fixed_column_width = FIXED_COLUMN_WIDTH(mw); int trailing_fixed_column_label_offset = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); int trailing_fixed_column_width = TRAILING_FIXED_COLUMN_WIDTH(mw); int column_label_offset = COLUMN_LABEL_OFFSET(mw); Boolean need_vert_fill = NEED_VERT_FILL(mw); Boolean has_attached_trailing_rows = HAS_ATTACHED_TRAILING_ROWS(mw); if (mw->matrix.disable_redisplay) return; /* * Handle the row labels that are in fixed rows */ if (mw->matrix.rows && mw->matrix.fixed_rows && mw->matrix.row_labels) { Rectangle rect; /* * Get the Rectangle enclosing the fixed row labels */ SETRECT(rect, vert_sb_offset, row_label_offset, vert_sb_offset + row_label_width - 1, fixed_row_label_offset - 1); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endRow, i; /* * Intersect the fixed-row-labels Rectangle with the expose * Rectangle along the Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ Y_INTERSECT(rect, *expose, intersect); /* * Redraw each label that was intersected */ endRow = YtoRow(mw, intersect.y2 + mw->matrix.first_row_offset); SANITY_CHECK_ROW(mw, endRow); for (i = YtoRow(mw, intersect.y1 + mw->matrix.first_row_offset), SANITY_CHECK_ROW(mw, i); i <= endRow; i++) xbaeDrawRowLabel(mw, i, False); } } /* * Handle the row labels that are in trailing fixed rows */ if (mw->matrix.rows && mw->matrix.trailing_fixed_rows && mw->matrix.row_labels) { Rectangle rect; /* * Get the Rectangle enclosing the fixed row labels */ SETRECT(rect, vert_sb_offset, trailing_fixed_row_label_offset, vert_sb_offset + row_label_width - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endRow, i; /* * Intersect the fixed-row-labels Rectangle with the expose * Rectangle along the Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ Y_INTERSECT(rect, *expose, intersect); /* * Redraw each label that was intersected */ endRow = YtoRow(mw, intersect.y2) + TRAILING_VERT_ORIGIN(mw); SANITY_CHECK_ROW(mw, endRow); for (i = YtoRow(mw, intersect.y1) + TRAILING_VERT_ORIGIN(mw), SANITY_CHECK_ROW(mw, i); i <= endRow; i++) xbaeDrawRowLabel(mw, i, False); } } /* * Handle row labels that aren't in fixed rows */ if (mw->matrix.row_labels && mw->matrix.rows) { Rectangle rect; /* * Get the Rectangle enclosing the non-fixed row labels */ SETRECT(rect, vert_sb_offset, fixed_row_label_offset, vert_sb_offset + row_label_width - 1, fixed_row_label_offset + VISIBLE_HEIGHT(mw) - 1); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endRow, i; /* * Intersect the fixed-row-labels Rectangle with the expose * Rectangle along the Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ Y_INTERSECT(rect, *expose, intersect); /* * Translate 'intersect' to take into account any fixed rows. * This gets it back into the coord system expected by YtoRow(). */ intersect.y1 += FIXED_ROW_HEIGHT(mw); intersect.y2 += FIXED_ROW_HEIGHT(mw); /* * Redraw each label that was intersected */ endRow = YtoRow(mw, intersect.y2) + VERT_ORIGIN(mw); SANITY_CHECK_ROW(mw, endRow); for (i = YtoRow(mw, intersect.y1) + VERT_ORIGIN(mw), SANITY_CHECK_ROW(mw, i); i <= endRow; i++) xbaeDrawRowLabel(mw, i, False); } } /* * Handle the column labels that are in fixed columns */ if (mw->matrix.columns && mw->matrix.fixed_columns && mw->matrix.column_labels) { Rectangle rect; /* * Get the Rectangle enclosing the portion of the column labels * that are in fixed columns */ SETRECT(rect, column_label_offset, horiz_sb_offset, fixed_column_label_offset - 1, horiz_sb_offset + column_label_height - 1); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endCol, i; /* * Intersect the fixed-column-labels Rectangle with the expose * Rectangle along the X axis. The resulting Rectangle will * be in 'rect's coordinate system. */ X_INTERSECT(rect, *expose, intersect); /* * Redraw each label that was intersected */ endCol = xbaeXtoCol(mw, intersect.x2); SANITY_CHECK_COLUMN(mw, endCol); for (i = xbaeXtoCol(mw, intersect.x1), SANITY_CHECK_COLUMN(mw, i); i <= endCol; i++) xbaeDrawColumnLabel(mw, i, False); } } /* * Handle the column labels that are in trailing fixed columns */ if (mw->matrix.columns && mw->matrix.trailing_fixed_columns && mw->matrix.column_labels) { Rectangle rect; /* * Get the Rectangle enclosing the portion of the column labels * that are in fixed columns */ SETRECT(rect, trailing_fixed_column_label_offset, horiz_sb_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width, horiz_sb_offset + column_label_height); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endCol, i; /* * Intersect the fixed-column-labels Rectangle with the expose * Rectangle along the X axis. The resulting Rectangle will * be in 'rect's coordinate system. */ X_INTERSECT(rect, *expose, intersect); /* * Redraw each label that was intersected */ endCol = xbaeXtoTrailingCol(mw, intersect.x2); SANITY_CHECK_COLUMN(mw, endCol); for (i = xbaeXtoTrailingCol(mw, intersect.x1), SANITY_CHECK_COLUMN(mw, i); i <= endCol; i++) xbaeDrawColumnLabel(mw, i, False); } } /* * Handle column labels that aren't in fixed columns */ if (mw->matrix.column_labels && mw->matrix.columns) { Rectangle rect; /* * Get the Rectangle enclosing the non-fixed column labels */ SETRECT(rect, fixed_column_label_offset, horiz_sb_offset, fixed_column_label_offset + VISIBLE_WIDTH(mw) - 1, horiz_sb_offset + column_label_height - 1); /* * If the expose Rectangle overlaps, then some labels must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int endCol, i; /* * Intersect the non-fixed-column-labels Rectangle with the expose * Rectangle along the X axis. The resulting Rectangle will * be in 'rect's coordinate system. */ X_INTERSECT(rect, *expose, intersect); /* * Translate 'intersect' to take into account any fixed columns. * This gets it back into the coord system expected by XtoCol(). */ intersect.x1 += fixed_column_width; intersect.x2 += fixed_column_width; /* * Redraw each label that was intersected */ endCol = xbaeXtoCol(mw, intersect.x2 + HORIZ_ORIGIN(mw)); SANITY_CHECK_COLUMN(mw, endCol); for (i = xbaeXtoCol(mw, intersect.x1 + HORIZ_ORIGIN(mw)), SANITY_CHECK_COLUMN(mw, i); i <= endCol; i++) xbaeDrawColumnLabel(mw, i, False); } } /* * Handle cells in fixed rows except those also in fixed columns */ if (mw->matrix.rows && mw->matrix.columns && mw->matrix.fixed_rows) { Rectangle rect; /* * Get the Rectangle enclosing the cells in fixed rows */ SETRECT(rect, fixed_column_label_offset, row_label_offset, fixed_column_label_offset + VISIBLE_WIDTH(mw) - 1, fixed_row_label_offset - 1); /* * If the expose Rectangle overlaps, then some cells must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int startCol, endCol, startRow, endRow, i, j; /* * Intersect the fixed-cells Rectangle with the expose * Rectangle along the X and Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ INTERSECT(rect, *expose, intersect); intersect.x1 += fixed_column_width; intersect.x2 += fixed_column_width; /* * Get starting and ending rows/columns. Always take into * account the scrolling origins for the columns; for rows * only if we are fixed in that dimension. */ startCol = xbaeXtoCol(mw, intersect.x1 + HORIZ_ORIGIN(mw)); endCol = xbaeXtoCol(mw, intersect.x2 + HORIZ_ORIGIN(mw)); startRow = YtoRow(mw, intersect.y1) + (mw->matrix.fixed_rows ? 0 : VERT_ORIGIN(mw)); endRow = YtoRow(mw, intersect.y2) + (mw->matrix.fixed_rows ? 0 : VERT_ORIGIN(mw)); /* * Redraw each cell that was intersected */ SANITY_CHECK_ROW(mw, startRow); SANITY_CHECK_ROW(mw, endRow); SANITY_CHECK_COLUMN(mw, startCol); SANITY_CHECK_COLUMN(mw, endCol); for (i = startRow; i <= endRow; i++) for (j = startCol; j <= endCol; j++) xbaeDrawCell(mw, i, j); } } /* * Handle cells in trailing fixed rows except those also in fixed columns */ if (mw->matrix.rows && mw->matrix.columns && mw->matrix.trailing_fixed_rows) { Rectangle rect; /* * Get the Rectangle enclosing the cells in trailing fixed rows */ SETRECT(rect, fixed_column_label_offset, trailing_fixed_row_label_offset, fixed_column_label_offset + VISIBLE_WIDTH(mw) - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); /* * If the expose Rectangle overlaps, then some cells must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int startCol, endCol, startRow, endRow, i, j; /* * Intersect the fixed-cells Rectangle with the expose * Rectangle along the X and Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ INTERSECT(rect, *expose, intersect); intersect.x1 += fixed_column_width; intersect.x2 += fixed_column_width; /* * Get starting and ending rows/columns. Always take into * account the scrolling origins for the columns and never * for the rows. */ startCol = xbaeXtoCol(mw, intersect.x1 + HORIZ_ORIGIN(mw)); endCol = xbaeXtoCol(mw, intersect.x2 + HORIZ_ORIGIN(mw)); startRow = YtoRow(mw, intersect.y1) + TRAILING_VERT_ORIGIN(mw); endRow = YtoRow(mw, intersect.y2) + TRAILING_VERT_ORIGIN(mw); /* * Redraw each cell that was intersected */ SANITY_CHECK_ROW(mw, startRow); SANITY_CHECK_ROW(mw, endRow); SANITY_CHECK_COLUMN(mw, startCol); SANITY_CHECK_COLUMN(mw, endCol); xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); for (i = startRow; i <= endRow; i++) for (j = startCol; j <= endCol; j++) xbaeDrawCell(mw, i, j); xbaeSetClipMask(mw, CLIP_NONE); } } /* * Handle cells in fixed columns */ if (mw->matrix.rows && mw->matrix.columns && mw->matrix.fixed_columns) { Rectangle rect; /* * Get the Rectangle enclosing the cells in fixed columns */ SETRECT(rect, column_label_offset, row_label_offset, fixed_column_label_offset - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); /* * If the expose Rectangle overlaps, then some cells must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int startCol, endCol, startRow, endRow, skipRow = -1, i, j; Boolean redrawFixedRows, redrawTrailingFixedRows; unsigned int clip_reason = CLIP_NONE; /* * Intersect the fixed-cells Rectangle with the expose * Rectangle along the X and Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ INTERSECT(rect, *expose, intersect); /* * If we have any fixed rows, we might need to redraw the cells * located in the intersection of the fixed rows and columns. * These cells may force use to be different than our current * VERT_ORIGIN. */ redrawFixedRows = redrawTrailingFixedRows = False; if (mw->matrix.fixed_rows) { clip_reason = CLIP_FIXED_COLUMNS; SETRECT(rect, column_label_offset, row_label_offset, fixed_column_label_offset - 1, fixed_row_label_offset - 1); if (OVERLAP(*expose, rect)) redrawFixedRows = True; } if (mw->matrix.trailing_fixed_rows) { clip_reason = CLIP_FIXED_COLUMNS; SETRECT(rect, column_label_offset, trailing_fixed_row_label_offset, fixed_column_label_offset - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (OVERLAP(*expose, rect)) redrawTrailingFixedRows = True; } if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, clip_reason); /* * Get starting and ending rows/columns. Never take into * account the scrolling origins for the rows; for columns * only if we are fixed in that dimension. */ startCol = xbaeXtoCol(mw, intersect.x1 + (mw->matrix.fixed_columns ? 0 : HORIZ_ORIGIN(mw))); endCol = xbaeXtoCol(mw, intersect.x2 + (mw->matrix.fixed_columns ? 0 : HORIZ_ORIGIN(mw))); startRow = redrawFixedRows ? 0 : YtoRow(mw, intersect.y1) + VERT_ORIGIN(mw); if (redrawTrailingFixedRows) { skipRow = YtoRow(mw, intersect.y2) + VERT_ORIGIN(mw) - mw->matrix.trailing_fixed_rows + 1; endRow = mw->matrix.rows - 1; } else endRow = YtoRow(mw, intersect.y2) + VERT_ORIGIN(mw); /* * Redraw each cell that was intersected */ SANITY_CHECK_ROW(mw, startRow); SANITY_CHECK_ROW(mw, endRow); SANITY_CHECK_COLUMN(mw, startCol); SANITY_CHECK_COLUMN(mw, endCol); for (i = startRow; i <= endRow; i++) for (j = startCol; j <= endCol; j++) { /* * If we had to redraw cells located in both fixed rows * and columns, when we are done redrawing those cells, * we need to skip to the correct non-fixed row to draw, * or alternatively, jump to the trailing fixed row * to draw. */ if (redrawFixedRows && i == mw->matrix.fixed_rows) i += VERT_ORIGIN(mw); if (redrawTrailingFixedRows && i == skipRow && endRow > skipRow && i < TRAILING_VERT_ORIGIN(mw)) i = TRAILING_VERT_ORIGIN(mw); /* * If we need to clip the vertical fill */ if (!(clip_reason & CLIP_TRAILING_FIXED_ROWS) && IN_GRID_COLUMN_MODE(mw) && ((mw->matrix.rows - 1) == i) && (need_vert_fill && (! has_attached_trailing_rows))) { clip_reason |= CLIP_FIXED_COLUMNS | CLIP_TRAILING_FIXED_ROWS; xbaeSetClipMask(mw, clip_reason); } xbaeDrawCell(mw, i, j); } if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, CLIP_NONE); } } /* * Handle cells in trailing fixed columns */ if (mw->matrix.rows && mw->matrix.columns && mw->matrix.trailing_fixed_columns) { Rectangle rect; /* * Get the Rectangle enclosing the cells in trailing fixed columns */ SETRECT(rect, trailing_fixed_column_label_offset, row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); /* * If the expose Rectangle overlaps, then some cells must be redrawn */ if (OVERLAP(*expose, rect)) { Rectangle intersect; int startCol, endCol, startRow, endRow, skipRow = -1, i, j; Boolean redrawFixedRows, redrawTrailingFixedRows; unsigned int clip_reason = CLIP_NONE; /* * Intersect the fixed-cells Rectangle with the expose * Rectangle along the X and Y axis. The resulting Rectangle will * be in 'rect's coordinate system. */ INTERSECT(rect, *expose, intersect); /* * If we have any fixed rows, we might need to redraw the cells * located in the intersection of the fixed rows and columns. * These cells may force us to be different than our current * VERT_ORIGIN. */ redrawFixedRows = redrawTrailingFixedRows = False; if (mw->matrix.fixed_rows) { clip_reason = CLIP_FIXED_COLUMNS; SETRECT(rect, trailing_fixed_column_label_offset, row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, fixed_row_label_offset - 1); if (OVERLAP(*expose, rect)) redrawFixedRows = True; } if (mw->matrix.trailing_fixed_rows) { clip_reason = CLIP_FIXED_COLUMNS; SETRECT(rect, trailing_fixed_column_label_offset, trailing_fixed_row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (OVERLAP(*expose, rect)) redrawTrailingFixedRows = True; } if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, clip_reason); /* * Get starting and ending rows/columns. Never take into * account the scrolling origins for the rows; for columns * only if we are fixed in that dimension. */ startCol = xbaeXtoTrailingCol(mw, intersect.x1); endCol = xbaeXtoTrailingCol(mw, intersect.x2); startRow = redrawFixedRows ? 0 : YtoRow(mw, intersect.y1) + VERT_ORIGIN(mw); if (redrawTrailingFixedRows) { skipRow = YtoRow(mw, intersect.y2) + VERT_ORIGIN(mw) - mw->matrix.trailing_fixed_rows + 1; endRow = mw->matrix.rows - 1; } else endRow = YtoRow(mw, intersect.y2) + VERT_ORIGIN(mw); /* * Redraw each cell that was intersected */ SANITY_CHECK_ROW(mw, startRow); SANITY_CHECK_ROW(mw, endRow); SANITY_CHECK_COLUMN(mw, startCol); SANITY_CHECK_COLUMN(mw, endCol); for (i = startRow; i <= endRow; i++) for (j = startCol; j <= endCol; j++) { /* * If we had to redraw cells located in both fixed rows * and columns, when we are done redrawing those cells, * we need to skip to the correct non-fixed row to draw */ if (redrawFixedRows && (i == mw->matrix.fixed_rows)) i += VERT_ORIGIN(mw); if (redrawTrailingFixedRows && (i == skipRow) && (endRow > skipRow)) i = TRAILING_VERT_ORIGIN(mw); /* * If we need to clip the vertical fill */ if (!(clip_reason & CLIP_TRAILING_FIXED_ROWS) && IN_GRID_COLUMN_MODE(mw) && ((mw->matrix.rows - 1) == i) && (need_vert_fill && (! has_attached_trailing_rows))) { clip_reason |= CLIP_TRAILING_FIXED_COLUMNS | CLIP_TRAILING_FIXED_ROWS; xbaeSetClipMask(mw, clip_reason); } xbaeDrawCell(mw, i, j); } if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, CLIP_NONE); } } /* * Draw a shadow just inside row/column labels and around outer edge * of clip widget. We can't use height of clip widget because it is * truncated to nearest row. We use cell_visible_height instead. */ if (mw->manager.shadow_thickness) { Dimension width, height; if (! mw->matrix.fill) { width = ClipChild(mw)->core.width + fixed_column_width + trailing_fixed_column_width + 2 * mw->manager.shadow_thickness; height = mw->matrix.cell_visible_height + FIXED_ROW_HEIGHT(mw) + trailing_fixed_row_height + 2 * mw->manager.shadow_thickness; } else { width = mw->core.width - row_label_width - VERT_SB_SPACE(mw); height = mw->core.height - column_label_height - HORIZ_SB_SPACE(mw) ; } DRAW_SHADOW(XtDisplay(mw), XtWindow(mw), mw->manager.top_shadow_GC, mw->manager.bottom_shadow_GC, mw->manager.shadow_thickness, row_label_width + vert_sb_offset, column_label_height + horiz_sb_offset, width, height, mw->matrix.shadow_type); } } grace-5.1.25/Xbae/Xbae/Converters.c0000644000076500001440000005761706766327621016525 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Converters.c,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * Convert a comma separated list of strings to a NULL terminated array * of substrings. * A comma (,) terminates a string * Backslash is an escape character allowing leading and terminating * white space to be protected. A backslash-comma (\,) does not * terminate a string and is copied as a comma (,). */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include /* #include */ #include #include #include #include #include #ifndef tolower #define tolower(c) ((c) - 'A' + 'a') #endif static Boolean StringsAreEqual P((String, String, int)); /* ARGSUSED */ Boolean CvtStringToStringArray(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static String *array; String start = from->addr; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToStringArray", "wrongParameters", "XbaeMatrix", "String to StringArray conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(String *)) { to->size = sizeof(String *); return False; } if (start == NULL || *start == '\0') array = NULL; else { char *ch, *next, *a; int i, sub, len, count; /* * Count the substrings */ for (ch = start, count = 1; *ch != '\0'; ch++) { /* * We hit a backslash */ if (*ch == '\\') { ch++; } /* * We hit an unescaped comma */ else if (*ch == ',') count++; } /* * Malloc the array, make it one bigger for a terminating NULL entry */ array = (String *) XtMalloc((count + 1) * sizeof(String)); array[count] = NULL; for (sub = 0; sub < count; sub++) { /* * Skip leading white space */ while (isspace((unsigned char) *start)) start++; /* * Count the number of chars in this substring. * backslash-comma counts as one and does not terminate. * backslash-backslash-comma counts as two and does not terminate. */ for (ch = start, len = 0; *ch != '\0' && *ch != ','; ch++) { /* * We hit a backslash */ if (*ch == '\\') { ch++; if (*ch == '\0') { break; } } len++; } /* * Save the beginning of the next substring */ next = ch + 1; /* * Back up over unprotected trailing white space if we moved at all */ if (ch != start) while (*(ch-2) != '\\' && isspace((unsigned char) *(--ch))) len--; /* * Malloc a String of the correct size */ array[sub] = (String) XtMalloc(len + 1); /* * Copy the substring into our new string. */ for (i = 0, ch = start, a = array[sub]; i < len; i++, ch++) { /* * We hit a backslash */ if (*ch == '\\') { ch++; } *(a++) = *ch; } *a = '\0'; /* * Point to the beginning of the next string. */ start = next; } } if (to->addr == NULL) to->addr = (XtPointer) & array; else *(String **) to->addr = array; to->size = sizeof(String *); return True; } /* * Free the string array allocated by the String to StringArray converter */ /* ARGSUSED */ void StringArrayDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { String *array = *(String **) to->addr; String *entry; if (array == NULL) return; for (entry = array; *entry != NULL; entry++) XtFree((XtPointer) * entry); XtFree((XtPointer) array); } /* ARGSUSED */ Boolean CvtStringToCellTable(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static String **array; String start = from->addr; char *ch, c; int k, count; XrmValue lfrom, lto; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToCellTable", "wrongParameters", "XbaeMatrix", "String to CellTable conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(String **)) { to->size = sizeof(String *); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the nl separated rows */ for (ch = start, count = 1; *ch != '\0'; ch++) { if ((*ch == '\\' && *(ch+1) == 'n') || *ch == '\n') count++; } /* * Malloc the array */ array = (String **)XtMalloc((count + 1) * sizeof(String *)); array[count] = (String*)0; for (k = 0; k < count; k++) { for (ch = start; *ch != '\0' ; ch++) { if ((*ch == '\\' && *(ch+1) == 'n') || *ch == '\n') break; } c = *ch ; *ch = '\0'; lfrom.addr = start; lfrom.size = strlen(start)+1; lto.addr = (char *)(&array[k]); lto.size = sizeof(String *); if (!CvtStringToStringArray(dpy, args, num_args, &lfrom, <o, data)) { *ch = c; XtDisplayStringConversionWarning(dpy, from->addr, XmRCellTable); array[k] = (String *)0; lto.addr = (char *)&array; StringCellDestructor(0, <o, 0, 0, 0); return False; } *ch = c; if (c == '\\') start = ch+2 ; else if (c == '\n') start = ch+1; else start = ch; } } if (to->addr == NULL) to->addr = (XtPointer) &array; else *(String ***) to->addr = array; to->size = sizeof(String **); return True; } /* * Free the string array allocated by the String to StringCellTable converter */ /* ARGSUSED */ void StringCellDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { String **array = *(String ***) to->addr; String **entry, *row; if (array == NULL) return; for (entry = array; *entry != NULL; entry++) { for (row = *entry; *row != NULL; row++) XtFree((XtPointer) *row); XtFree((XtPointer) *entry); } XtFree((XtPointer) array); } /* * Convert a comma separated list of short ints to array of widths. * The array is terminated with BAD_WIDTH. */ /* ARGSUSED */ Boolean CvtStringToWidthArray(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static short *array; String start = from->addr; char *ch; int i, count; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToWidthArray", "wrongParameters", "XbaeMatrix", "String to WidthArray conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(short *)) { to->size = sizeof(short *); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the comma separated shorts */ for (ch = start, count = 1; *ch != '\0'; ch++) if (*ch == ',') count++; /* * Malloc the array */ array = (short *) XtMalloc((count + 1) * sizeof(short)); array[count] = BAD_WIDTH; for (i = 0; i < count; i++) { array[i] = (short) atoi(start); /* * Find the comma at the end of this short */ /* EMPTY */ for (; *start != '\0' && *start != ','; start++); start++; } } if (to->addr == NULL) to->addr = (XtPointer) & array; else *(short **) to->addr = array; to->size = sizeof(short *); return True; } /* * Free the width array allocated by the String to WidthArray converter */ /* ARGSUSED */ void WidthArrayDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { short *array = *(short **) to->addr; XtFree((XtPointer) array); } /* * Convert a comma separated list of ints to array of max lengths. * The array is terminated with BAD_MAXLENGTH. */ /* ARGSUSED */ Boolean CvtStringToMaxLengthArray(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static int *array; String start = from->addr; char *ch; int i, count; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToMaxLengthArray", "wrongParameters", "XbaeMatrix", "String to MaxLengthArray conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(int *)) { to->size = sizeof(int *); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the comma separated ints */ for (ch = start, count = 1; *ch != '\0'; ch++) if (*ch == ',') count++; /* * Malloc the array */ array = (int *) XtMalloc((count + 1) * sizeof(int)); array[count] = BAD_MAXLENGTH; for (i = 0; i < count; i++) { array[i] = (int) atoi(start); /* * Find the comma at the end of this int */ /* EMPTY */ for (; *start != '\0' && *start != ','; start++); start++; } } if (to->addr == NULL) to->addr = (XtPointer) & array; else *(int **) to->addr = array; to->size = sizeof(int *); return True; } /* * Free the max length array allocated by the String to * MaxLengthArray converter */ /* ARGSUSED */ void MaxLengthArrayDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { int *array = *(int **) to->addr; XtFree((XtPointer) array); } /* * Compare two strings up to length chars, and return True if they are equal. * Handles Xm prefix too. The string test must be lower case. * Used by StringToAlignmentArray converter. */ static Boolean StringsAreEqual(in, test, length) String in; String test; int length; { int i; if ((in[0] == 'X' || in[0] == 'x') && (in[1] == 'M' || in[1] == 'm')) in += 2; for (i = 0; i < length; i++) { char c = *in; if (isupper(c)) c = tolower(c); if (c != test[i]) return False; in++; } /* * String in may have trailing garbage, but as long as the first * length chars matched, we return True */ return True; } /* * Convert a comma separated list of alignments to array of Booleans. */ /* ARGSUSED */ Boolean CvtStringToBooleanArray(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static Boolean *array; String start = from->addr; char *ch; int i, count; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToBooleanArray", "wrongParameters", "XbaeMatrix", "String to BooleanArray conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(Boolean *)) { to->size = sizeof(Boolean *); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the comma separated alignments */ for (ch = start, count = 1; *ch != '\0'; ch++) if (*ch == ',') count++; /* * Malloc the array */ array = (Boolean*) XtMalloc((count + 1) * sizeof(Boolean)); /* array[count] = BAD_WIDTH; */ for (i = 0; i < count; i++) { /* * Skip leading white space */ while (isspace(*start)) start++; if (StringsAreEqual(start, "true", 4)) array[i] = True; else if (StringsAreEqual(start, "1", 1)) array[i] = True; else if (StringsAreEqual(start, "false", 5)) array[i] = False; else if (StringsAreEqual(start, "0", 1)) array[i] = False; else { XtDisplayStringConversionWarning(dpy, from->addr, XmRBooleanArray); XtFree((void*)array); return False; } /* * Find the comma at the end of this short */ /* EMPTY */ for (; *start != '\0' && *start != ','; start++); start++; } } if (to->addr == NULL) to->addr = (XtPointer) & array; else *(Boolean **) to->addr = array; to->size = sizeof(Boolean *); return True; } /* * Free the alignment array allocated by the String to BooleanArray converter */ /* ARGSUSED */ void BooleanArrayDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { Boolean *array = *(Boolean **) to->addr; XtFree((XtPointer) array); } /* * Convert a comma separated list of alignments to array of alignments * (unsigned chars). The array is terminated by BAD_ALIGNMENT. */ /* ARGSUSED */ Boolean CvtStringToAlignmentArray(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static unsigned char *array; String start = from->addr; char *ch; int i, count; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToAlignmentArray", "wrongParameters", "XbaeMatrix", "String to AlignmentArray conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(unsigned char *)) { to->size = sizeof(unsigned char *); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the comma separated alignments */ for (ch = start, count = 1; *ch != '\0'; ch++) if (*ch == ',') count++; /* * Malloc the array */ array = (unsigned char *) XtMalloc((count + 1) * sizeof(unsigned char)); array[count] = BAD_ALIGNMENT; /* * Compare each substring to the alignment strings. * If we find a bad one, display a warning and fail. * We should be able to use XtCallConverter on _XmCvtStringToAlignment, * but that function is static so we have to duplicate its * functionality. */ for (i = 0; i < count; i++) { /* * Skip leading white space */ while (isspace(*start)) start++; if (StringsAreEqual(start, "alignment_beginning", 19)) array[i] = XmALIGNMENT_BEGINNING; else if (StringsAreEqual(start, "alignment_center", 16)) array[i] = XmALIGNMENT_CENTER; else if (StringsAreEqual(start, "alignment_end", 13)) array[i] = XmALIGNMENT_END; else { XtDisplayStringConversionWarning(dpy, from->addr, XmRAlignmentArray); XtFree((void*)array); return False; } /* * Find the comma at the end of this alignment */ /* EMPTY */ for (; *start != '\0' && *start != ','; start++); start++; } } if (to->addr == NULL) to->addr = (XtPointer) & array; else *(unsigned char **) to->addr = array; to->size = sizeof(unsigned char *); return True; } /* * Free the alignment array allocated by the String to AlignmentArray converter */ /* ARGSUSED */ void AlignmentArrayDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { unsigned char *array = *(unsigned char **) to->addr; XtFree((XtPointer) array); } /* * Convert a comma separated list of pixels to array of pixels * . The array is terminated by BAD_PIXEL. */ /* ARGSUSED */ Boolean CvtStringToPixelTable(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static Pixel **array, *row; String start = from->addr; char *ch, c; int i, k, count_x , count_y; XrmValue lfrom, lto; Pixel last_pixel = 0; if (*num_args != 2) XtAppWarningMsg(XtDisplayToApplicationContext(dpy), "cvtStringToPixelTable", "wrongParameters", "XbaeMatrix", "String to PixelTable conversion needs screen and colormap arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(Pixel **)) { to->size = sizeof(Pixel **); return False; } if (start == NULL || *start == '\0') array = NULL; else { /* * Count the comma and nl separated alignments */ count_x = 1; for (ch = start, k = 1, count_y=1; *ch != '\0'; ch++) { if (*ch == ',') k++; if ((*ch == '\\' && *(ch+1) == 'n') || *ch == '\n') { count_y++; if (k > count_x) count_x = k; k = 1; } } /* * Malloc the arrays */ array = (Pixel **)XtMalloc((count_y + 1) * sizeof(Pixel *)); array[count_y] = (Pixel*)0; for (k = 0; k < count_y; k++) { row = (Pixel *)XtMalloc((count_x + 1) * sizeof(Pixel)); row[count_x] = BAD_PIXEL; row[0] = last_pixel; array[ k ] = row; /* * Convert each substring into Pixel */ for (i = 0; i < count_x; i++) { if (*start == '\0') break; /* * Skip leading white space */ while (isspace(*start)) start++; /* * Find the comma at the end of this color */ /* EMPTY */ for (ch = start; *ch != '\0' && *ch != ','; ch++) { if ((*ch == '\\' && *(ch+1) == 'n') || *ch == '\n') break; } c = *ch ; *ch = '\0'; lfrom.addr = start; lfrom.size = strlen(start)+1; lto.addr = (char *)(&row[i]); lto.size = sizeof(Pixel); if (! XtCvtStringToPixel(dpy, args, num_args, &lfrom, <o, data)) { row[i] = last_pixel; XtDisplayStringConversionWarning(dpy, from->addr, XmRPixelTable); } last_pixel = row[i]; *ch = c; if (c == '\0') { start = ch; break; } if (c == '\\') { ch++ ; start = ch+1; break; } start = ch+1; } for (; i < count_x-1 ; i++) { /* fill rest of row with same value */ row[i+1] = row[i]; } } } if (to->addr == NULL) to->addr = (XtPointer) &array; else *(Pixel ***) to->addr = array; to->size = sizeof(Pixel *); return True; } /* * Free the pixel array allocated by the String to PixelTable converter */ /* ARGSUSED */ void PixelTableDestructor(app, to, converter_data, args, num_args) XtAppContext app; XrmValuePtr to; XtPointer converter_data; XrmValuePtr args; Cardinal *num_args; { Pixel **array = *(Pixel ***) to->addr; Pixel **col; if (array) { for (col = array ; col ; col++) XtFree((XtPointer)*col); XtFree((XtPointer) array); } } /* ARGSUSED */ Boolean CvtStringToGridType(dpy, args, num_args, from, to, data) Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static unsigned char grid_type; String start = from->addr; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToGridType", "wrongParameters", "XbaeMatrix", "String to GridType conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(unsigned char)) { to->size = sizeof(unsigned char); return False; } /* * Skip leading white space */ while (isspace(*start)) start++; if (StringsAreEqual(start, "grid_none", 9)) grid_type = XmGRID_NONE; else if (StringsAreEqual(start, "grid_cell_line", 14)) grid_type = XmGRID_CELL_LINE; else if (StringsAreEqual(start, "grid_cell_shadow", 16)) grid_type = XmGRID_CELL_SHADOW; else if (StringsAreEqual(start, "grid_row_line", 13)) grid_type = XmGRID_ROW_LINE; else if (StringsAreEqual(start, "grid_row_shadow", 15)) grid_type = XmGRID_ROW_SHADOW; else if (StringsAreEqual(start, "grid_column_line", 16)) grid_type = XmGRID_COLUMN_LINE; else if (StringsAreEqual(start, "grid_column_shadow", 15)) grid_type = XmGRID_COLUMN_SHADOW; /* Deprecated types. To be removed in next version. */ else if (StringsAreEqual(start, "grid_line", 9)) grid_type = XmGRID_LINE; else if (StringsAreEqual(start, "grid_shadow_in", 14)) grid_type = XmGRID_SHADOW_IN; else if (StringsAreEqual(start, "grid_shadow_out", 15)) grid_type = XmGRID_SHADOW_OUT; else { XtDisplayStringConversionWarning(dpy, from->addr, XmRGridType); return False; } /* Deprecated types. To be removed in next version. */ if (grid_type >= XmGRID_LINE) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToGridType", "deprecatedType", "XbaeMatrix", "Value for GridType is deprecated and will be removed in next release", NULL, NULL); /* * Store our return value */ if (to->addr == NULL) to->addr = (XtPointer) &grid_type; else *(unsigned char *) to->addr = grid_type; to->size = sizeof(unsigned char); return True; } /* ARGSUSED */ Boolean #ifdef __VMS /* According to Barry Stone VMS only allows function names with a maximum length of 31 characters */ CvtStringToMatrixScrollBarDisp(dpy, args, num_args, from, to, data) #else CvtStringToMatrixScrollBarDisplayPolicy(dpy, args, num_args, from, to, data) #endif Display *dpy; XrmValuePtr args; Cardinal *num_args; XrmValuePtr from, to; XtPointer *data; { static unsigned char display_policy; String start = from->addr; if (*num_args != 0) XtAppWarningMsg( XtDisplayToApplicationContext(dpy), "cvtStringToMatrixScrollBarDisplayPolicy", "wrongParameters", "XbaeMatrix", "String to MatrixScrollBarDisplayPolicy conversion needs no extra arguments", NULL, NULL); /* * User didn't provide enough space */ if (to->addr != NULL && to->size < sizeof(unsigned char)) { to->size = sizeof(unsigned char); return False; } /* * Skip leading white space */ while (isspace(*start)) start++; if (StringsAreEqual(start, "display_none", 12)) display_policy = XmDISPLAY_NONE; else if (StringsAreEqual(start, "display_as_needed", 17)) display_policy = XmDISPLAY_AS_NEEDED; else if (StringsAreEqual(start, "display_static", 14)) display_policy = XmDISPLAY_STATIC; else { XtDisplayStringConversionWarning(dpy, from->addr, XmRMatrixScrollBarDisplayPolicy); return False; } /* * Store our return value */ if (to->addr == NULL) to->addr = (XtPointer) &display_policy; else *(unsigned char *) to->addr = display_policy; to->size = sizeof(unsigned char); return True; } grace-5.1.25/Xbae/Xbae/Utils.h0000644000076500001440000000562206766327622015466 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Utils.h,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Utils.h created by Andrew Lister (6 August, 1995) */ #ifndef _Xbae_Utils_h #define _Xbae_Utils_h #include void xbaeGetVisibleRows P((XbaeMatrixWidget, int *, int *)); void xbaeGetVisibleColumns P((XbaeMatrixWidget, int *, int *)); void xbaeGetVisibleCells P((XbaeMatrixWidget mw, int *, int *, int *, int *)); void xbaeClearCell P((XbaeMatrixWidget, int, int)); void xbaeMakeRowVisible P((XbaeMatrixWidget, int)); void xbaeMakeColumnVisible P((XbaeMatrixWidget, int)); void xbaeMakeCellVisible P((XbaeMatrixWidget, int, int)); void xbaeAdjustTopRow P((XbaeMatrixWidget)); void xbaeAdjustLeftColumn P((XbaeMatrixWidget)); Boolean xbaeIsRowVisible P((XbaeMatrixWidget, int)); Boolean xbaeIsColumnVisible P((XbaeMatrixWidget, int)); Boolean xbaeIsCellVisible P((XbaeMatrixWidget, int, int)); void xbaeSetClipMask P((XbaeMatrixWidget, unsigned int)); void xbaeGetCellTotalWidth P((XbaeMatrixWidget)); void xbaeGetColumnPositions P((XbaeMatrixWidget)); void xbaeComputeSize P((XbaeMatrixWidget, Boolean, Boolean)); short xbaeMaxRowLabel P((XbaeMatrixWidget)); void xbaeParseColumnLabel P((String, ColumnLabelLines)); Boolean xbaeEventToXY P((XbaeMatrixWidget, XEvent *, int *, int *, CellType *)); Boolean xbaeXYToRowCol P((XbaeMatrixWidget, int *, int *, int *, int *, CellType)); int xbaeXtoCol P((XbaeMatrixWidget, int)); int xbaeXtoTrailingCol P((XbaeMatrixWidget, int)); void xbaeRowColToXY P((XbaeMatrixWidget, int, int, int *, int *)); Window xbaeGetCellWindow P((XbaeMatrixWidget, Widget *, int, int)); void xbaeCalcVertFill P((XbaeMatrixWidget, Window, int, int, int, int, int *, int *, int *, int *)); void xbaeCalcHorizFill P((XbaeMatrixWidget, Window, int, int, int, int, int *, int *, int *, int *)); #endif grace-5.1.25/Xbae/Xbae/Converters.h0000644000076500001440000000633006766327621016514 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Converters.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ #ifndef _Xbae_Converters_h #define _Xbae_Converters_h /* * Converters.h created by Andrew Lister (6 August, 1995) */ #include #include /* * Type converters */ Boolean CvtStringToStringArray P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void StringArrayDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToCellTable P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void StringCellDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToWidthArray P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void WidthArrayDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToMaxLengthArray P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void MaxLengthArrayDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToBooleanArray P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void BooleanArrayDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToAlignmentArray P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void AlignmentArrayDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *num_args)); Boolean CvtStringToPixelTable P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); void PixelTableDestructor P((XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); Boolean CvtStringToGridType P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); Boolean #ifdef __VMS CvtStringToMatrixScrollBarDisp #else CvtStringToMatrixScrollBarDisplayPolicy #endif P((Display *, XrmValuePtr, Cardinal *, XrmValuePtr, XrmValuePtr, XtPointer *)); #endif grace-5.1.25/Xbae/Xbae/Macros.h0000644000076500001440000004741606766327621015620 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Macros.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * Macros.h created by Andrew Lister (6 August, 1995) */ #ifndef _Xbae_Macros_h #define _Xbae_Macros_h /* * Prototype wrapper */ #ifndef P #if defined(__STDC__) || defined (__cplusplus) #define P(x) x #else #define P(x) () #define const #define volatile #endif #endif #if XmVersion <= 1001 #include #else #include #endif #include #include #if XmVersion <= 1001 #define DRAW_SHADOW(dpy, draw, tgc, bgc, sz, x, y, w, h, type) \ _XmDrawShadow(dpy, draw, tgc, bgc, sz, x, y, w, h) #else #if XmVersion >= 2000 #define DRAW_SHADOW(dpy, draw, tgc, bgc, sz, x, y, w, h, type) \ XmeDrawShadows(dpy, draw, tgc, bgc, x, y, w, h, sz, type) #else #define DRAW_SHADOW(dpy, draw, tgc, bgc, sz, x, y, w, h, type) \ _XmDrawShadows(dpy, draw, tgc, bgc, x, y, w, h, sz, type) #endif #endif #if XmVersion <= 1001 #define DRAW_HIGHLIGHT(dpy, draw, tgc, x, y, w, h, sz, type) \ _XmDrawSimpleHighlight(dpy, draw, tgc, x, y, w, h, sz, type) #else #if XmVersion >= 2000 #define DRAW_HIGHLIGHT(dpy, draw, tgc, x, y, w, h, sz, type) \ XmeDrawHighlight(dpy, draw, tgc, x, y, w, h, sz) #else #define DRAW_HIGHLIGHT(dpy, draw, tgc, x, y, w, h, sz, type) \ _XmDrawHighlight(dpy, draw, tgc, x, y, w, h, sz, type) #endif #endif /* * Macros to retrieve our children. Children must be created in this order. */ #define XbaeNumChildren 8 #define HorizScrollChild(mw) (mw->composite.children[0]) #define VertScrollChild(mw) (mw->composite.children[1]) #define ClipChild(mw) (mw->composite.children[2]) #define TextChild(mw) (mw->composite.children[3]) #define LeftClip(mw) (mw->composite.children[4]) #define RightClip(mw) (mw->composite.children[5]) #define TopClip(mw) (mw->composite.children[6]) #define BottomClip(mw) (mw->composite.children[7]) #define VISIBLE_WIDTH(mw) ((int)ClipChild(mw)->core.width) #define VISIBLE_HEIGHT(mw) ((int)ClipChild(mw)->core.height) #define VERT_ORIGIN(mw) (mw->matrix.top_row) #define TRAILING_VERT_ORIGIN(mw) (mw->matrix.rows - \ (int)mw->matrix.trailing_fixed_rows) #define HORIZ_ORIGIN(mw) (mw->matrix.horiz_origin) #define TRAILING_HORIZ_ORIGIN(mw) (mw->matrix.columns - \ (int)mw->matrix.trailing_fixed_columns) /* * Macros */ /* * Max and Min are defined in Xm/XmP.h in 1.1, they are deprecated in 1.2 */ #if XmVersion >= 1002 #define Max(x, y) (((x) > (y)) ? (x) : (y)) #define Min(x, y) (((x) < (y)) ? (x) : (y)) #endif #define FONT_WIDTH(mw) (mw->matrix.font_width) #define LABEL_WIDTH(mw) (mw->matrix.label_font_width) #define TEXT_WIDTH_OFFSET(mw) (mw->matrix.cell_margin_width +\ mw->matrix.cell_shadow_thickness + \ mw->matrix.cell_highlight_thickness + \ mw->matrix.text_shadow_thickness) #define TEXT_HEIGHT_OFFSET(mw) (mw->matrix.cell_margin_height +\ mw->matrix.cell_shadow_thickness + \ mw->matrix.cell_highlight_thickness + \ mw->matrix.text_shadow_thickness) #define COLUMN_WIDTH(mw, col) ((mw->matrix.column_widths[col] * \ FONT_WIDTH(mw)) + \ ((int)TEXT_WIDTH_OFFSET(mw) * 2)) #define FONT_HEIGHT(mw) (mw->matrix.font_height) #define LABEL_HEIGHT(mw) (mw->matrix.label_font_height) #define HORIZ_SB_WIDTH(mw) (HorizScrollChild(mw)->core.width + \ 2 * HorizScrollChild(mw)->core.border_width) #define HORIZ_SB_HEIGHT(mw) (HorizScrollChild(mw)->core.height + \ 2 * HorizScrollChild(mw)->core.border_width +\ mw->matrix.space) #define HORIZ_SB_SPACE(mw) (! HorizScrollChild(mw)->core.managed ? \ 0 : HORIZ_SB_HEIGHT(mw)) #define HORIZ_SB_OFFSET(mw) (((mw->matrix.scrollbar_placement == \ XmTOP_LEFT) || \ (mw->matrix.scrollbar_placement == \ XmTOP_RIGHT)) ? HORIZ_SB_SPACE(mw) : 0) #define HORIZ_SB_POSITION(mw) (((mw->matrix.scrollbar_placement == \ XmTOP_LEFT) || \ (mw->matrix.scrollbar_placement == \ XmTOP_RIGHT)) ? 0 : \ TRAILING_FIXED_ROW_LABEL_OFFSET(mw)) #define VERT_SB_WIDTH(mw) (VertScrollChild(mw)->core.width + \ 2 * VertScrollChild(mw)->core.border_width + \ mw->matrix.space) #define VERT_SB_HEIGHT(mw) (VertScrollChild(mw)->core.height + \ 2 * VertScrollChild(mw)->core.border_width) #define VERT_SB_SPACE(mw) (! VertScrollChild(mw)->core.managed ? \ 0 : VERT_SB_WIDTH(mw)) #define VERT_SB_OFFSET(mw) (((mw->matrix.scrollbar_placement == \ XmTOP_LEFT) || \ (mw->matrix.scrollbar_placement == \ XmBOTTOM_LEFT)) ? VERT_SB_SPACE(mw) : 0) #define VERT_SB_POSITION(mw) (((mw->matrix.scrollbar_placement == \ XmTOP_LEFT) || \ (mw->matrix.scrollbar_placement == \ XmBOTTOM_LEFT)) ? 0 : \ VertScrollChild(mw)->core.x - \ mw->matrix.space) #define CLIP_HORIZ_VISIBLE_SPACE(mw) ((int)(VISIBLE_WIDTH(mw) +\ FIXED_COLUMN_WIDTH(mw) + \ TRAILING_FIXED_COLUMN_WIDTH(mw))) #define CLIP_VERT_VISIBLE_SPACE(mw) ((int)(mw->matrix.cell_visible_height +\ FIXED_ROW_HEIGHT(mw) + \ TRAILING_FIXED_ROW_HEIGHT(mw))) #define MATRIX_HORIZ_VISIBLE_SPACE(mw) ((int)(mw->core.width - \ mw->manager.shadow_thickness - \ COLUMN_LABEL_OFFSET(mw) -\ VERT_SB_SPACE(mw))) #define MATRIX_VERT_VISIBLE_SPACE(mw) ((int)(mw->core.height -\ mw->manager.shadow_thickness - \ ROW_LABEL_OFFSET(mw) -\ HORIZ_SB_SPACE(mw))) #define NEED_HORIZ_FILL(mw) (mw->matrix.fill && \ (MATRIX_HORIZ_VISIBLE_SPACE(mw) > \ CLIP_HORIZ_VISIBLE_SPACE(mw))) #define NEED_VERT_FILL(mw) (mw->matrix.fill && \ (MATRIX_VERT_VISIBLE_SPACE(mw) > \ CLIP_VERT_VISIBLE_SPACE(mw))) #define FILL_HORIZ_WIDTH(mw) (mw->core.width - VISIBLE_WIDTH(mw) - \ TRAILING_FIXED_COLUMN_WIDTH(mw) - \ VERT_SB_SPACE(mw) - \ FIXED_COLUMN_LABEL_OFFSET(mw) - \ mw->manager.shadow_thickness) #define FILL_VERT_HEIGHT(mw) (mw->core.height - VISIBLE_HEIGHT(mw) - \ TRAILING_FIXED_ROW_HEIGHT(mw) - \ FIXED_ROW_LABEL_OFFSET(mw) - \ mw->manager.shadow_thickness) #define SANITY_CHECK_ROW(mw, row) (row = (row >= mw->matrix.rows) ? \ ((mw->matrix.rows > 0) ? \ mw->matrix.rows - 1 : 0) : \ (row < 0) ? 0 : row) #define SANITY_CHECK_COLUMN(mw, column) (column = \ (column >= mw->matrix.columns) ? \ ((mw->matrix.columns > 0) ? \ mw->matrix.columns - 1 : 0) : \ (column < 0) ? 0 : column) /* * The text height defines the row height. It needs to be the biggest * we can expect from both font and label font */ #define TEXT_HEIGHT(mw) (Max(FONT_HEIGHT(mw), LABEL_HEIGHT(mw))) #define ROW_HEIGHT(mw) (int)((TEXT_HEIGHT_OFFSET(mw) * 2) + \ TEXT_HEIGHT(mw)) #define TEXT_X_OFFSET(mw) (int)(TEXT_WIDTH_OFFSET(mw)) #define TEXT_Y_OFFSET(mw) (int)(mw->matrix.text_baseline) #define LABEL_Y_OFFSET(mw) (int)(mw->matrix.label_baseline) #define ROW_LABEL_WIDTH(mw) ((mw->matrix.row_labels \ ? (mw->matrix.row_label_width * \ LABEL_WIDTH(mw)) + \ (int)TEXT_WIDTH_OFFSET(mw) * 2 : 0) + \ (mw->matrix.button_labels ? \ mw->matrix.cell_shadow_thickness * 2 : 0)) #define COLUMN_LABEL_HEIGHT(mw) (mw->matrix.column_labels \ ? (int)TEXT_HEIGHT_OFFSET(mw) * 2 + \ mw->matrix.column_label_maxlines * \ LABEL_HEIGHT(mw) : 0) #define COLUMN_POSITION(mw, column) mw->matrix.column_positions[column] #define FIXED_COLUMN_WIDTH(mw) COLUMN_POSITION(mw, mw->matrix.fixed_columns) #define TRAILING_FIXED_COLUMN_WIDTH(mw) \ (mw->matrix.trailing_fixed_columns ? \ (COLUMN_POSITION(mw, mw->matrix.columns-1) + \ COLUMN_WIDTH(mw, mw->matrix.columns-1) - \ COLUMN_POSITION(mw, TRAILING_HORIZ_ORIGIN(mw))) : 0) #define COLUMN_LABEL_OFFSET(mw) (ROW_LABEL_WIDTH(mw) + \ VERT_SB_OFFSET(mw) + \ (int)mw->manager.shadow_thickness) #define FIXED_COLUMN_LABEL_OFFSET(mw) (COLUMN_LABEL_OFFSET(mw) + \ FIXED_COLUMN_WIDTH(mw)) #define TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw) (FIXED_COLUMN_LABEL_OFFSET(mw)+\ VISIBLE_WIDTH(mw)) #define FIXED_ROW_HEIGHT(mw) ((int)mw->matrix.fixed_rows * ROW_HEIGHT(mw)) #define TRAILING_FIXED_ROW_HEIGHT(mw) ((int)mw->matrix.trailing_fixed_rows * \ ROW_HEIGHT(mw)) #define ROW_LABEL_OFFSET(mw) (COLUMN_LABEL_HEIGHT(mw) + \ HORIZ_SB_OFFSET(mw) + \ mw->manager.shadow_thickness) #define FIXED_ROW_LABEL_OFFSET(mw) (ROW_LABEL_OFFSET(mw) + \ FIXED_ROW_HEIGHT(mw)) #define UNATTACHED_TRAILING_ROWS_OFFSET(mw) (FIXED_ROW_LABEL_OFFSET(mw) + \ VISIBLE_HEIGHT(mw)) #define ATTACHED_TRAILING_ROWS_OFFSET(mw) (mw->core.height - \ mw->manager.shadow_thickness - \ HORIZ_SB_SPACE(mw) - \ TRAILING_FIXED_ROW_HEIGHT(mw)) #define VERT_DEAD_SPACE_HEIGHT(mw) ((int)(ATTACHED_TRAILING_ROWS_OFFSET(mw) - \ UNATTACHED_TRAILING_ROWS_OFFSET(mw))) #define HAS_ATTACHED_TRAILING_ROWS(mw) (mw->matrix.fill && \ mw->matrix.trailing_attached_bottom && \ mw->matrix.trailing_fixed_rows) #define TRAILING_FIXED_ROW_LABEL_OFFSET(mw) (HAS_ATTACHED_TRAILING_ROWS(mw) ? \ ATTACHED_TRAILING_ROWS_OFFSET(mw) : \ UNATTACHED_TRAILING_ROWS_OFFSET(mw)) #define NEED_VERT_DEAD_SPACE_FILL(mw) (HAS_ATTACHED_TRAILING_ROWS(mw) && \ (VERT_DEAD_SPACE_HEIGHT(mw) > 0)) #define NON_FIXED_TOTAL_WIDTH(mw) mw->matrix.non_fixed_total_width #define CELL_TOTAL_HEIGHT(mw) ((mw->matrix.rows - \ (int) mw->matrix.fixed_rows - \ (int) mw->matrix.trailing_fixed_rows) \ * ROW_HEIGHT(mw)) #define IS_LEADING_FIXED_COLUMN(mw, column) (column < (int)mw->matrix.fixed_columns) #define IS_TRAILING_FIXED_COLUMN(mw, column) (column >= TRAILING_HORIZ_ORIGIN(mw)) #define IS_FIXED_COLUMN(mw, column) (IS_LEADING_FIXED_COLUMN(mw, column) || \ IS_TRAILING_FIXED_COLUMN(mw, column)) #define IS_LEADING_FIXED_ROW(mw, row) (row < (int)mw->matrix.fixed_rows) #define IS_TRAILING_FIXED_ROW(mw, row) (row >= TRAILING_VERT_ORIGIN(mw)) #define IS_FIXED_ROW(mw, row) (IS_LEADING_FIXED_ROW(mw, row) || \ IS_TRAILING_FIXED_ROW(mw, row)) #define IS_FIXED(mw, row, column) (IS_FIXED_ROW(mw, row) || \ IS_FIXED_COLUMN(mw, column)) #define IS_CLIPPED(mw, row, column) ((row >= (int)mw->matrix.fixed_rows) && \ (column >= \ (int)mw->matrix.fixed_columns) && \ (row < TRAILING_VERT_ORIGIN(mw)) && \ (column < TRAILING_HORIZ_ORIGIN(mw))) /* * I hereby dub thee, Jay Schmidgall, as Sir Silly Macro - writer of * the most obsfucated macros I've ever seen - AL (26 Feb 1998) * * How do you come up with these??? The first couple are OK but * the last two??? */ /* Here are some handy dandy macros to make it look cleaner in the * actual code. I did the vertical scrollbar stuff first, then the * horizontal. For the horizontal, I just referenced the other * orientation, and it worked. */ /* If we have fixed rows, the y position of the vsb must * be offset starting from the fixed rows. Otherwise, we * want it to be even with the matrix area top. Perhaps * oddly, we can use this macro for both XtConfigure's. */ #define VSB_Y_POSITION(mw) (mw->matrix.fixed_rows ? \ FIXED_ROW_LABEL_OFFSET(mw) - \ HORIZ_SB_OFFSET(mw) + \ ((scrollbar_top && has_horiz) ? \ HORIZ_SB_HEIGHT(mw) : 0) : \ COLUMN_LABEL_HEIGHT(mw) + \ HORIZ_SB_OFFSET(mw)) #define HSB_X_POSITION(mw) (mw->matrix.fixed_columns ? \ FIXED_COLUMN_LABEL_OFFSET(mw) - \ VERT_SB_OFFSET(mw) + \ ((scrollbar_left && has_vert) ? \ VERT_SB_WIDTH(mw) : 0) : \ ROW_LABEL_WIDTH(mw) + VERT_SB_OFFSET(mw)) /* I started trying to write a comment that sort of explains this macro. * Then I quit. What the heck, it works. Feel free on your own to make * up something that reassures you. I myself have the feeling that there * has got to be a cleaner, better way to do this, sort of like the above * two seem somehow fairly clean. But this? This is some serious gaaack. * Same thing as above. Did VSB first, then just switched orientation * for HSB. */ #define VSB_HEIGHT(mw) ((!mw->matrix.fill) ? cell_height + \ mw->manager.shadow_thickness * \ (mw->matrix.fixed_rows || \ mw->matrix.trailing_fixed_rows ? \ (mw->matrix.fixed_rows && \ mw->matrix.trailing_fixed_rows ? 0 : 1) : 2) : \ ((TRAILING_FIXED_ROW_HEIGHT(mw) > 0) ? full_height - \ (mw->matrix.fixed_rows ? \ mw->manager.shadow_thickness : 0) - \ ROW_LABEL_OFFSET(mw) - FIXED_ROW_HEIGHT(mw) - \ TRAILING_FIXED_ROW_HEIGHT(mw) + \ HORIZ_SB_OFFSET(mw) : mw->core.height + \ (mw->matrix.fixed_rows ? 0 : \ mw->manager.shadow_thickness) - \ ROW_LABEL_OFFSET(mw) - FIXED_ROW_HEIGHT(mw) + \ HORIZ_SB_OFFSET(mw) - \ (has_horiz ? HORIZ_SB_HEIGHT(mw) : 0))) #define HSB_WIDTH(mw) ((!mw->matrix.fill) ? cell_width + \ mw->manager.shadow_thickness * \ (mw->matrix.fixed_columns || \ mw->matrix.trailing_fixed_columns ? \ (mw->matrix.fixed_columns && \ mw->matrix.trailing_fixed_columns ? 0 : 1) : 2) : \ ((TRAILING_FIXED_COLUMN_WIDTH(mw) > 0) ? \ full_width - (mw->matrix.fixed_columns ? \ mw->manager.shadow_thickness : 0) - \ COLUMN_LABEL_OFFSET(mw) - FIXED_COLUMN_WIDTH(mw) - \ TRAILING_FIXED_COLUMN_WIDTH(mw) + \ VERT_SB_OFFSET(mw) : \ mw->core.width + (mw->matrix.fixed_columns ? 0 :\ mw->manager.shadow_thickness) - \ COLUMN_LABEL_OFFSET(mw) - FIXED_COLUMN_WIDTH(mw) + \ VERT_SB_OFFSET(mw) - \ (has_vert ? VERT_SB_WIDTH(mw) : 0))) #define CELL_WINDOW(mw, row, column) \ (IS_FIXED(mw, row, column) ? XtWindow(mw) : XtWindow(ClipChild(mw))) /* Inline functions */ #define xbaeFreeColumnWidths(mw) { \ if (mw->matrix.column_widths) \ XtFree((XtPointer) \ mw->matrix.column_widths); \ } #define xbaeFreeColumnMaxLengths(mw) { \ if (mw->matrix.\ column_max_lengths) \ XtFree((XtPointer) \ mw->matrix. \ column_max_lengths); \ } #define xbaeFreeColumnPositions(mw) { \ if (mw->matrix. \ column_positions) \ XtFree((XtPointer) \ mw->matrix. \ column_positions); \ } #define xbaeFreeColumnAlignments(mw) { \ if (mw->matrix. \ column_alignments) \ XtFree((XtPointer) \ mw->matrix. \ column_alignments); \ } #define xbaeFreeColumnButtonLabels(mw) { \ if (mw->matrix. \ column_button_labels) \ XtFree((XtPointer) \ mw->matrix. \ column_button_labels); \ } #define xbaeFreeRowButtonLabels(mw) { \ if (mw->matrix. \ row_button_labels) \ XtFree((XtPointer) \ mw->matrix. \ row_button_labels); \ } #define xbaeFreeColumnLabelAlignments(mw) { \ if (mw->matrix. \ column_label_alignments) \ XtFree((XtPointer) \ mw->matrix. \ column_label_alignments); \ } #define xbaeFreeRowUserData(mw) { \ if (mw->matrix.\ row_user_data) \ XtFree((XtPointer) \ mw->matrix.\ row_user_data); \ } #define xbaeFreeColumnUserData(mw) { \ if (mw->matrix.\ column_user_data) \ XtFree((XtPointer) \ mw->matrix.\ column_user_data); \ } #define xbaeFreeRowShadowTypes(mw) { \ if (mw->matrix.\ row_shadow_types) \ XtFree((XtPointer) \ mw->matrix.\ row_shadow_types); \ } #define xbaeFreeColumnShadowTypes(mw) { \ if (mw->matrix.\ column_shadow_types) \ XtFree((XtPointer) \ mw->matrix.\ column_shadow_types); \ } #define CreateColumnPositions(mw) (int *)XtMalloc((mw->matrix.columns+1)* \ sizeof(int)) #define YtoRow(mw, y) ((y) / ROW_HEIGHT(mw)) /* * Evaluates to 1 if two Rectangles overlap, 0 if no overlap */ #define OVERLAP(r1, r2) ((r1).x2 >= (r2).x1 && \ (r1).x1 <= (r2).x2 && \ (r1).y2 >= (r2).y1 && \ (r1).y1 <= (r2).y2) /* * Intersect rectangles r1 and r2, place the result in res. * Result will be in r1's coord system. */ #define X_INTERSECT(r1, r2, res) { (res).x1 = Max((r1).x1, (r2).x1) - (r1).x1;\ (res).x2 = Min((r1).x2, (r2).x2) - (r1).x1;} #define Y_INTERSECT(r1, r2, res) { (res).y1 = Max((r1).y1, (r2).y1) - (r1).y1;\ (res).y2 = Min((r1).y2, (r2).y2) - (r1).y1;} #define INTERSECT(r1, r2, res) { X_INTERSECT(r1, r2, res); \ Y_INTERSECT(r1, r2, res); } /* * Evaluates to 1 if the point is in the Rectangle, 0 if not */ #define INBOX(r, x, y) ((((r).x2 >= x)) && \ (((r).x1 <= x)) && \ (((r).y2 >= y)) && \ (((r).y1 <= y))) /* * Macros used for Rectangle calculations. A Rectangle is defined by it's * upper left and lower right corners. */ /* * Set a Rectangle. (x1,y1) is upper left corner, (x2,y2) is lower right corner */ #define SETRECT(r, X1, Y1, X2, Y2) { (r).x1 = X1; (r).y1 = Y1; \ (r).x2 = X2; (r).y2 = Y2; } #ifdef NEED_WCHAR #define TWO_BYTE_FONT(mw) (mw->matrix.font->max_byte1 != 0) #endif #ifdef NEED_24BIT_VISUAL #define GC_PARENT_WINDOW(w) XtWindow(get_shell_ancestor((Widget)w)) #else #define GC_PARENT_WINDOW(w) RootWindowOfScreen(XtScreen(w)) #endif /* * End of array flags for the array type converters */ #define BAD_WIDTH -1 #define BAD_MAXLENGTH 0 #define BAD_ALIGNMENT 3 /* see Xm.h */ #define BAD_PIXEL 0x10000000 /* normally 256 indices */ /* * SetClipMask flags for indicating clip areas */ #define CLIP_NONE 0x0000 #define CLIP_FIXED_COLUMNS 0x0001 #define CLIP_FIXED_ROWS 0x0002 #define CLIP_TRAILING_FIXED_COLUMNS 0x0004 #define CLIP_TRAILING_FIXED_ROWS 0x0008 #define CLIP_BETWEEN_FIXED_ROWS 0x0010 #define CLIP_VISIBLE_HEIGHT 0x0020 #define CLIP_TRAILING_HORIZ_FILL 0x0040 #define CLIP_TRAILING_VERT_FILL 0x0080 #define CLIP_COLUMN_LABELS 0x0100 #define CLIP_ROW_LABELS 0x0200 #define CLIP_ALL 0x0400 /* * Row and Column grid shadow/line redraw reasons */ #define GRID_REDRAW_EXPOSE 0x0000 #define GRID_REDRAW_SCROLL_VERT 0x0001 #define GRID_REDRAW_SCROLL_HORIZ 0x0002 #define GRID_REDRAW_EDIT (GRID_REDRAW_SCROLL_VERT | \ GRID_REDRAW_SCROLL_HORIZ) /* * Un/Highlight indicators */ #if XmVersion >= 1002 #define GRID_REDRAW_HIGHLIGHT 0x0100 #define HIGHLIGHTING_SOMETHING 0x0F #define UNHIGHLIGHTING_SOMETHING 0xF0 #endif /* * Grid shadow/line detectors */ #define GRID_MODE_CELL (XmGRID_CELL_LINE & XmGRID_CELL_SHADOW) #define GRID_MODE_ROW (XmGRID_ROW_LINE & XmGRID_ROW_SHADOW) #define GRID_MODE_COLUMN (XmGRID_COLUMN_LINE & XmGRID_COLUMN_SHADOW) #define IN_GRID_CELL_MODE(mw) (mw->matrix.grid_type & GRID_MODE_CELL) #define IN_GRID_ROW_MODE(mw) (mw->matrix.grid_type & GRID_MODE_ROW) #define IN_GRID_COLUMN_MODE(mw) (mw->matrix.grid_type & GRID_MODE_COLUMN) #endif /* _Xbae_Macros_h */ grace-5.1.25/Xbae/Xbae/ScrollMgr.h0000644000076500001440000000361006766327622016265 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: ScrollMgr.h,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * ScrollMgr.h created by Andrew Lister (6 August, 1995) */ #ifndef _Xbae_ScrollMgr_h #define _Xbae_ScrollMgr_h #include /* * ScrollMgr implementation */ SmScrollMgr xbaeSmCreateScrollMgr P((void)); void xbaeSmDestroyScrollMgr P((SmScrollMgr)); void xbaeSmAddScroll P((SmScrollMgr, int, int)); void xbaeSmRemoveScroll P((SmScrollMgr)); void xbaeSmScrollEvent P((SmScrollMgr, XEvent *)); /* * Scrollbar callbacks */ void xbaeScrollVertCB P((Widget, XtPointer, XmScrollBarCallbackStruct *)); void xbaeScrollHorizCB P((Widget, XtPointer , XmScrollBarCallbackStruct *)); void xbaeRedrawCells P((XbaeMatrixWidget, Rectangle *)); void xbaeRedrawLabelsAndFixed P((XbaeMatrixWidget, Rectangle *)); #endif grace-5.1.25/Xbae/Xbae/Clip.h0000644000076500001440000000401606766327621015250 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * ClipWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Clip.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * Clip.h - Public definitions for Clip widget */ #ifndef _Xbae_Clip_h #define _Xbae_Clip_h #include #include /* Resources: * Name Class RepType Default Value * ---- ----- ------- ------------- * exposeProc Function Function NULL * focusCallback Callback Callback NULL */ #define XmNexposeProc "exposeProc" /* Class record constants */ extern WidgetClass xbaeClipWidgetClass; typedef struct _XbaeClipClassRec *XbaeClipWidgetClass; typedef struct _XbaeClipRec *XbaeClipWidget; /* * External interfaces to class methods */ #if defined (__cplusplus) || defined(c_plusplus) extern "C" { #endif extern void XbaeClipRedraw( #if NeedFunctionPrototypes Widget /* w */ #endif ); #if defined (__cplusplus) || defined(c_plusplus) } #endif #endif /* _Xbae_Clip_h */ grace-5.1.25/Xbae/Xbae/Shadow.h0000644000076500001440000000307506766327622015613 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Shadow.h,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Shadow.h created by Andrew Lister (30 October, 1995) */ #ifndef _Xbae_Shadow_h #define _Xbae_Shadow_h #include void xbaeDrawCellShadow P((XbaeMatrixWidget, Window, int, int, int, int, int, int, Boolean, Boolean, Boolean)); #if XmVersion >= 1002 void xbaeDrawCellHighlight P((XbaeMatrixWidget, Window, GC, int, int, int, int, int, int, int)); #endif #endif grace-5.1.25/Xbae/Xbae/Actions.h0000644000076500001440000000431406766327620015761 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Actions.h,v 1.1 1999/09/11 01:25:36 fnevgeny Exp $ */ /* * Actions.h created by Andrew Lister (6 August, 1995) */ #ifndef _Xbae_Actions_h #define _Xbae_Actions_h #include /* * Actions */ void xbaeEditCellACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeCancelEditACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeCommitEditACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeSelectCellACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeDefaultActionACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeResizeColumnsACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeTraverseNextACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeTraversePrevACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeProcessDragACT P((Widget, XEvent *, String *, Cardinal *)); void xbaeHandleClick P((Widget, XtPointer, XEvent *, Boolean *)); void xbaeHandleMotionACT P((Widget, XEvent *, String *, Cardinal *)); void xbaePageDownACT P((Widget, XEvent *, String *, Cardinal *)); void xbaePageUpACT P((Widget, XEvent *, String *, Cardinal *)); #endif grace-5.1.25/Xbae/Xbae/patchlevel.h0000644000076500001440000000255106766327622016513 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * */ #ifndef _Xbae_patchlevel_h #define _Xbae_patchlevel_h #define XbaeVERSION 4 #define XbaeREVISION 7 #define XbaeVersion (XbaeVERSION * 1000 + XbaeREVISION) #endif grace-5.1.25/Xbae/Xbae/Draw.h0000644000076500001440000000374506766327621015266 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Draw.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * Draw.h created by Andrew Lister (30 October, 1995) */ #ifndef _Xbae_Draw_h #define _Xbae_Draw_h #include void xbaeComputeCellColors P((XbaeMatrixWidget, int, int, Pixel *, Pixel *)); void xbaeDrawCell P((XbaeMatrixWidget, int, int)); XbaeCellType xbaeGetDrawCellValue P((XbaeMatrixWidget, int, int, String *, Pixmap *, Pixmap *, int *, int *, Pixel *, Pixel *, int *)); void xbaeDrawString P((XbaeMatrixWidget mw, Window win, GC gc, String string, int length, int x, int y, int maxlen, unsigned char alignment, Boolean highlight, Boolean bold, Boolean rowLabel, Boolean colLabel, Pixel color)); void xbaeDrawColumnLabel P((XbaeMatrixWidget mw, int column, Boolean pressed)); void xbaeDrawRowLabel P((XbaeMatrixWidget mw, int row, Boolean pressed)); #endif grace-5.1.25/Xbae/Xbae/Matrix.c0000644000076500001440000030243410071354476015615 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Matrix.c,v 1.1.2.2 2004/07/02 21:53:02 fnevgeny Exp $ */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include #include #if XmVersion > 1001 #include #include #include #endif #include #include #include #include #include #include #include #include #include #ifndef XlibSpecificationRelease #define XrmPermStringToQuark XrmStringToQuark #endif /* * Translations for Matrix (these will also be used by the Clip child). */ static char defaultTranslations[] = " : DefaultAction()\n\ : DefaultAction() EditCell(Pointer)\n\ Shift : ResizeColumns()\n\ : ProcessDrag()\n\ : HandleMotion()"; /* * Default translations for XmNtextTranslations resource */ static char default_text_translations[] = "#override\n\ Shift ~Ctrl ~Meta ~Alt Tab : EditCell(Left)\n\ ~Ctrl ~Meta ~Alt Tab : EditCell(Right)\n\ osfUp : EditCell(Up)\n\ osfDown : EditCell(Down)\n\ osfActivate : CommitEdit(False)\n\ ~Shift ~Meta ~Alt Return : CommitEdit(False)\n\ Ctrl osfCancel : CancelEdit(False)\n\ Shift Ctrl ~Meta ~Alt Tab : TraversePrev()\n\ Ctrl ~Meta ~Alt Tab : TraverseNext()\n\ osfPageDown : PageDown()\n\ osfPageUp : PageUp()"; #define offset(field) XtOffsetOf(XbaeMatrixRec, field) static XtResource resources[] = { #ifdef ALLOW_COLUMN_RESIZE {XmNallowColumnResize, XmCColumnResize, XmRBoolean, sizeof(Boolean), offset(matrix.allow_column_resize), XmRImmediate, (XtPointer) True}, #else {XmNallowColumnResize, XmCColumnResize, XmRBoolean, sizeof(Boolean), offset(matrix.allow_column_resize), XmRImmediate, (XtPointer) False}, #endif {XmNaltRowCount, XmCAltRowCount, XmRInt, sizeof(int), offset(matrix.alt_row_count), XmRImmediate, (XtPointer) 1}, {XmNboldLabels, XmCBoldLabels, XmRBoolean, sizeof(Boolean), offset(matrix.bold_labels), XmRImmediate, (XtPointer) False}, {XmNbuttonLabels, XmCButtonLabels, XmRBoolean, sizeof(Boolean), offset(matrix.button_labels), XmRImmediate, (XtPointer) False}, {XmNbuttonLabelBackground, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.button_label_background), XmRCallProc, (XtPointer)xbaeCopyBackground}, {XmNcalcCursorPosition, XmCCalcCursorPosition, XmRBoolean, sizeof(Boolean), offset(matrix.calc_cursor_position), XmRImmediate, (XtPointer) False}, {XmNcellBackgrounds, XmCColors, XmRPixelTable, sizeof(Pixel **), offset(matrix.cell_background), XmRImmediate, (XtPointer) NULL}, {XmNcellHighlightThickness, XmCHighlightThickness, XmRHorizontalDimension, sizeof(Dimension), offset(matrix.cell_highlight_thickness), XmRImmediate, (XtPointer) 2}, {XmNcellMarginHeight, XmCMarginHeight, XmRVerticalDimension, sizeof(Dimension), offset(matrix.cell_margin_height), XmRImmediate, (XtPointer) 3}, {XmNcellMarginWidth, XmCMarginWidth, XmRHorizontalDimension, sizeof(Dimension), offset(matrix.cell_margin_width), XmRImmediate, (XtPointer) 3}, {XmNcellShadowThickness, XmCShadowThickness, XmRDimension, sizeof(Dimension), offset(matrix.cell_shadow_thickness), XmRImmediate, (XtPointer) 1}, {XmNcellShadowType, XmCShadowType, XmRShadowType, sizeof(unsigned char), offset(matrix.cell_shadow_type), XmRImmediate, (XtPointer) XmSHADOW_OUT}, {XmNcellShadowTypes, XmCCellShadowTypes, XmRShadowTypeTable, sizeof(unsigned char**), offset(matrix.cell_shadow_types), XmRImmediate, (XtPointer) NULL}, {XmNcellUserData, XmCCellUserData, XmRUserDataTable, sizeof(XtPointer**), offset(matrix.cell_user_data), XmRImmediate, (XtPointer) NULL}, #if CELL_WIDGETS {XmNcellWidgets, XmCCellWidgets, XmRWidgetTable, sizeof(Widget **), offset(matrix.cell_widgets), XmRImmediate, (XtPointer) NULL}, #endif {XmNcells, XmCCells, XmRCellTable, sizeof(String **), offset(matrix.cells), XmRImmediate, NULL}, {XmNclipWindow, XmCClipWindow, XmRWidget, sizeof(Widget), offset(matrix.clip_window), XmRImmediate, NULL}, {XmNcolors, XmCColors, XmRPixelTable, sizeof(Pixel **), offset(matrix.colors), XmRImmediate, (XtPointer) NULL}, {XmNcolumnAlignments, XmCAlignments, XmRAlignmentArray, sizeof(unsigned char *), offset(matrix.column_alignments), XmRImmediate, (XtPointer) NULL}, {XmNcolumnButtonLabels, XmCButtonLabels, XmRBooleanArray, sizeof(Boolean*), offset(matrix.column_button_labels), XmRImmediate, (XtPointer) NULL}, {XmNcolumnLabelAlignments, XmCAlignments, XmRAlignmentArray, sizeof(unsigned char *), offset(matrix.column_label_alignments), XmRImmediate, (XtPointer) NULL}, {XmNcolumnLabelColor, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.column_label_color), XmRCallProc, (XtPointer)xbaeCopyForeground}, {XmNcolumnLabels, XmCLabels, XmRStringArray, sizeof(String *), offset(matrix.column_labels), XmRImmediate, NULL}, {XmNcolumnMaxLengths, XmCColumnMaxLengths, XmRMaxLengthArray, sizeof(int *), offset(matrix.column_max_lengths), XmRImmediate, NULL}, {XmNcolumnShadowTypes, XmCShadowTypes, XmRShadowTypeArray, sizeof(unsigned char*), offset(matrix.column_shadow_types), XmRImmediate, (XtPointer) NULL}, {XmNcolumnUserData, XmCUserDatas, XmRUserDataArray, sizeof(XtPointer*), offset(matrix.column_user_data), XmRImmediate, (XtPointer) NULL}, {XmNcolumnWidths, XmCColumnWidths, XmRWidthArray, sizeof(short *), offset(matrix.column_widths), XmRImmediate, NULL}, {XmNcolumns, XmCColumns, XmRInt, sizeof(int), offset(matrix.columns), XmRImmediate, (XtPointer) 1}, {XmNdefaultActionCallback,XmCCallback,XmRCallback,sizeof(XtCallbackList), offset(matrix.default_action_callback),XmRCallback,NULL }, {XmNdoubleClickInterval, XmCDoubleClickInterval, XmRInt, sizeof(int), offset(matrix.double_click_interval), XmRCallProc, (XtPointer)xbaeCopyDoubleClick }, {XmNdrawCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.draw_cell_callback), XmRCallback, NULL}, {XmNenterCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.enter_cell_callback), XmRCallback, NULL}, {XmNevenRowBackground, XmCBackground, XmRPixel, sizeof(Pixel), offset(matrix.even_row_background), XmRCallProc, (XtPointer)xbaeCopyBackground}, {XmNfill, XmCFill, XmRBoolean, sizeof(Boolean), offset(matrix.fill), XmRImmediate, (XtPointer) False}, {XmNfixedColumns, XmCFixedColumns, XmRDimension, sizeof(Dimension), offset(matrix.fixed_columns), XmRImmediate, (XtPointer) 0}, {XmNfixedRows, XmCFixedRows, XmRDimension, sizeof(Dimension), offset(matrix.fixed_rows), XmRImmediate, (XtPointer) 0}, {XmNfontList, XmCFontList, XmRFontList, sizeof(XmFontList), offset(matrix.font_list), XmRString, (XtPointer) "fixed"}, {XmNgridLineColor, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.grid_line_color), XmRCallProc, (XtPointer)xbaeCopyForeground}, {XmNgridType, XmCGridType, XmRGridType, sizeof(unsigned char), offset(matrix.grid_type), XmRImmediate, (XtPointer)XmGRID_CELL_LINE}, #if XmVersion >= 1002 {XmNhighlightedCells, XmCHighlightedCells, XmRHighlightTable, sizeof(unsigned char **), offset(matrix.highlighted_cells), XmRImmediate, (XtPointer) NULL}, #endif {XmNhorizontalScrollBar, XmCHorizontalScrollBar, XmRWidget, sizeof(Widget), offset(matrix.horizontal_sb), XmRImmediate, NULL}, {XmNhorizontalScrollBarDisplayPolicy, XmCMatrixScrollBarDisplayPolicy, XmRMatrixScrollBarDisplayPolicy, sizeof(unsigned char), offset(matrix.hsb_display_policy), XmRImmediate, (XtPointer) XmDISPLAY_AS_NEEDED}, {XmNlabelActivateCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.label_activate_callback), XmRCallback, NULL}, {XmNlabelFont, XmCFontList, XmRFontList, sizeof(XmFontList), offset(matrix.label_font_list), XmRString, (XtPointer)NULL }, {XmNleaveCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.leave_cell_callback), XmRCallback, NULL}, {XmNleftColumn, XmCLeftColumn, XmRInt, sizeof(int), offset(matrix.left_column), XmRImmediate, (XtPointer) 0 }, {XmNmodifyVerifyCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.modify_verify_callback), XmRCallback, NULL}, {XmNoddRowBackground, XmCBackground, XmRPixel, sizeof(Pixel), offset(matrix.odd_row_background), XmRCallProc, (XtPointer)xbaeCopyBackground}, #if XmVersion > 1001 {XmNprocessDragCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.process_drag_callback), XmRCallback, NULL}, #endif /* Resize callback resource. Added by mjs */ {XmNresizeCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.resize_callback), XmRCallback, NULL}, {XmNresizeColumnCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.resize_column_callback), XmRCallback, NULL}, {XmNreverseSelect, XmCReverseSelect, XmRBoolean, sizeof(Boolean), offset(matrix.reverse_select), XmRImmediate, (XtPointer) False}, {XmNrowButtonLabels, XmCButtonLabels, XmRBooleanArray, sizeof(Boolean*), offset(matrix.row_button_labels), XmRImmediate, (XtPointer) NULL}, {XmNrowLabelAlignment, XmCAlignment, XmRAlignment, sizeof(unsigned char), offset(matrix.row_label_alignment), XmRImmediate, (XtPointer) XmALIGNMENT_END}, {XmNrowLabelColor, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.row_label_color), XmRCallProc, (XtPointer)xbaeCopyForeground }, {XmNrowLabelWidth, XmCRowLabelWidth, XmRShort, sizeof(short), offset(matrix.row_label_width), XmRImmediate, (XtPointer) 0}, {XmNrowLabels, XmCLabels, XmRStringArray, sizeof(String *), offset(matrix.row_labels), XmRImmediate, NULL}, {XmNrowShadowTypes, XmCShadowTypes, XmRShadowTypeArray, sizeof(unsigned char*), offset(matrix.row_shadow_types), XmRImmediate, (XtPointer) NULL}, {XmNrowUserData, XmCUserDatas, XmRUserDataArray, sizeof(XtPointer*), offset(matrix.row_user_data), XmRImmediate, (XtPointer) NULL}, {XmNrows, XmCRows, XmRInt, sizeof(int), offset(matrix.rows), XmRImmediate, (XtPointer) 1}, {XmNscrollBarPlacement, XmCScrollBarPlacement, XmRScrollBarPlacement, sizeof(unsigned char), offset(matrix.scrollbar_placement), XmRImmediate, (XtPointer) XmBOTTOM_RIGHT }, {XmNselectCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.select_cell_callback), XmRCallback, NULL}, {XmNselectScrollVisible, XmCSelectScrollVisible, XmRBoolean, sizeof(Boolean), offset(matrix.scroll_select), XmRImmediate, (XtPointer) True}, {XmNselectedBackground, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.selected_background), XmRCallProc, (XtPointer)xbaeCopyForeground}, {XmNselectedCells, XmCSelectedCells, XmRBooleanTable, sizeof(Boolean **), offset(matrix.selected_cells), XmRImmediate, (XtPointer) NULL}, {XmNselectedForeground, XmCColor, XmRPixel, sizeof(Pixel), offset(matrix.selected_foreground), XmRCallProc, (XtPointer)xbaeCopyBackground}, {XmNselectionPolicy, XmCSelectionPolicy, XmRSelectionPolicy, sizeof(unsigned char), offset(matrix.selection_policy), XmRImmediate, XmSINGLE_SELECT}, /* Override Manager default */ {XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension, sizeof(Dimension), XtOffsetOf(XmManagerRec, manager.shadow_thickness), XmRImmediate, (XtPointer) 2}, {XmNshadowType, XmCShadowType, XmRShadowType, sizeof(unsigned char), offset(matrix.shadow_type), XmRImmediate, (XtPointer) XmSHADOW_IN}, {XmNshowArrows, XmCShowArrows, XmRBoolean, sizeof(Boolean), offset(matrix.show_arrows), XmRImmediate, (XtPointer) False}, {XmNspace, XmCSpace, XmRHorizontalDimension, sizeof(Dimension), offset(matrix.space), XmRImmediate, (XtPointer) 4}, {XmNtextBackground, XmCTextBackground, XmRPixel, sizeof(Pixel), offset(matrix.text_background), XmRCallProc, (XtPointer)xbaeCopyBackground}, {XmNtextField, XmCTextField, XmRWidget, sizeof(Widget), offset(matrix.text_field), XmRImmediate, NULL}, {XmNtextShadowThickness, XmCTextShadowThickness, XmRDimension, sizeof(Dimension), offset(matrix.text_shadow_thickness), XmRImmediate, (XtPointer) 0}, {XmNtextTranslations, XmCTranslations, XmRTranslationTable, sizeof(XtTranslations), offset(matrix.text_translations), XmRString, (XtPointer) default_text_translations}, {XmNtopRow, XmCTopRow, XmRInt, sizeof(int), offset(matrix.top_row), XmRImmediate, (XtPointer) 0}, {XmNtrailingAttachedBottom, XmCTrailingAttachedBottom, XmRBoolean, sizeof(Boolean), offset(matrix.trailing_attached_bottom), XmRImmediate, (XtPointer) False}, {XmNtrailingAttachedRight, XmCTrailingAttachedRight, XmRBoolean, sizeof(Boolean), offset(matrix.trailing_attached_right), XmRImmediate, (XtPointer) False}, {XmNtrailingFixedColumns, XmCTrailingFixedColumns, XmRDimension, sizeof(Dimension), offset(matrix.trailing_fixed_columns), XmRImmediate, (XtPointer) 0}, {XmNtrailingFixedRows, XmCTrailingFixedRows, XmRDimension, sizeof(Dimension), offset(matrix.trailing_fixed_rows), XmRImmediate, (XtPointer) 0}, {XmNtraverseCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.traverse_cell_callback), XmRCallback, NULL}, {XmNtraverseFixedCells, XmCTraverseFixedCells, XmRBoolean, sizeof(Boolean), offset(matrix.traverse_fixed), XmRImmediate, (XtPointer) False}, {XmNverticalScrollBar, XmCVerticalScrollBar, XmRWidget, sizeof(Widget), offset(matrix.vertical_sb), XmRImmediate, NULL}, {XmNverticalScrollBar, XmCVerticalScrollBar, XmRWidget, sizeof(Widget), offset(matrix.vertical_sb), XmRImmediate, NULL}, {XmNverticalScrollBarDisplayPolicy, XmCMatrixScrollBarDisplayPolicy, XmRMatrixScrollBarDisplayPolicy, sizeof(unsigned char), offset(matrix.vsb_display_policy), XmRImmediate, (XtPointer) XmDISPLAY_AS_NEEDED}, {XmNvisibleColumns, XmCVisibleColumns, XmRDimension, sizeof(Dimension), offset(matrix.visible_columns), XmRImmediate, (XtPointer) 0}, {XmNvisibleRows, XmCVisibleRows, XmRDimension, sizeof(Dimension), offset(matrix.visible_rows), XmRImmediate, (XtPointer) 0}, {XmNwriteCellCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), offset(matrix.write_cell_callback), XmRCallback, NULL}, }; static XmSyntheticResource syn_resources[] = { {XmNcellHighlightThickness, sizeof(Dimension), offset(matrix.cell_highlight_thickness), _XmFromHorizontalPixels, _XmToHorizontalPixels}, {XmNcellMarginHeight, sizeof(Dimension), offset(matrix.cell_margin_height), _XmFromVerticalPixels, _XmToVerticalPixels}, {XmNcellMarginWidth, sizeof(Dimension), offset(matrix.cell_margin_width), _XmFromHorizontalPixels, _XmToHorizontalPixels}, {XmNcellShadowThickness, sizeof(Dimension), offset(matrix.cell_shadow_thickness), _XmFromHorizontalPixels, _XmToHorizontalPixels}, {XmNspace, sizeof(Dimension), offset(matrix.space), _XmFromHorizontalPixels, _XmToHorizontalPixels}, }; #if XmVersion >= 1002 static XtIntervalId TraverseID = 0; #endif /* * Declaration of methods */ static void ClassInitialize P((void)); static void xbaeRegisterConverters P((void)); static void ClassPartInitialize P((XbaeMatrixWidgetClass)); static void Initialize P((XbaeMatrixWidget, XbaeMatrixWidget, ArgList, Cardinal *)); static void Realize P((XbaeMatrixWidget, XtValueMask *, XSetWindowAttributes *)); static void InsertChild P((Widget)); static void Redisplay P((Widget, XEvent *, Region)); static Boolean SetValues P((XbaeMatrixWidget, XbaeMatrixWidget, XbaeMatrixWidget, ArgList, Cardinal *)); static void SetValuesAlmost P((XbaeMatrixWidget, XbaeMatrixWidget, XtWidgetGeometry *, XtWidgetGeometry *)); static void Destroy P((XbaeMatrixWidget)); static XtGeometryResult GeometryManager P((Widget, XtWidgetGeometry *, XtWidgetGeometry *)); static XtGeometryResult QueryGeometry P((XbaeMatrixWidget, XtWidgetGeometry *, XtWidgetGeometry *)); /* * Redraw function for clip widget */ static void ClipRedisplay P((Widget, XEvent *, Region)); /* * Private functions unique to Matrix */ static void ResizeCells P((XbaeMatrixWidget, XbaeMatrixWidget)); static void ResizeSelectedCells P((XbaeMatrixWidget, XbaeMatrixWidget)); #if XmVersion >= 1002 static void ResizeHighlightedCells P((XbaeMatrixWidget, XbaeMatrixWidget)); #endif static void ResizeColors P((XbaeMatrixWidget, XbaeMatrixWidget, Boolean)); static void TraverseIn P((XbaeMatrixWidget)); #if XmVersion >= 1002 static void TraverseInTimeOut P((XtPointer, XtIntervalId *)); #endif /* XmVersion >= 1002 */ /* * Clip widget focusCallback */ static void TraverseInCB P((Widget, XbaeMatrixWidget, XtPointer)); /* * Matrix actions */ static XtActionsRec actions[] = { {"EditCell", xbaeEditCellACT}, {"CancelEdit", xbaeCancelEditACT}, {"DefaultAction", xbaeDefaultActionACT}, {"CommitEdit", xbaeCommitEditACT}, {"ResizeColumns", xbaeResizeColumnsACT}, {"SelectCell", xbaeSelectCellACT}, {"TraverseNext", xbaeTraverseNextACT}, {"TraversePrev", xbaeTraversePrevACT}, {"ProcessDrag", xbaeProcessDragACT}, {"HandleMotion", xbaeHandleMotionACT}, {"PageDown", xbaePageDownACT}, {"PageUp", xbaePageUpACT} }; static XmBaseClassExtRec BaseClassExtRec = { NULL, /* next_extension */ NULLQUARK, /* record_type */ XmBaseClassExtVersion, /* version */ sizeof(XmBaseClassExtRec), /* record_size */ NULL, /* InitializePrehook */ NULL, /* SetValuesPrehook */ NULL, /* InitializePosthook */ NULL, /* SetValuesPosthook */ NULL, /* secondaryObjectClass */ NULL, /* secondaryCreate */ NULL, /* getSecRes data */ { 0 }, /* fastSubclass flags */ NULL, /* get_values_prehook */ NULL, /* get_values_posthook */ NULL, /* classPartInitPrehook */ NULL, /* classPartInitPosthook*/ NULL, /* ext_resources */ NULL, /* compiled_ext_resources*/ 0, /* num_ext_resources */ FALSE, /* use_sub_resources */ XmInheritWidgetNavigable, /* widgetNavigable */ XmInheritFocusChange, /* focusChange */ }; externaldef(xbaematrixclassrec) XbaeMatrixClassRec xbaeMatrixClassRec = { { /* core_class fields */ (WidgetClass) & xmManagerClassRec, /* superclass */ "XbaeMatrix", /* class_name */ sizeof(XbaeMatrixRec), /* widget_size */ ClassInitialize, /* class_initialize */ (XtWidgetClassProc)ClassPartInitialize, /* class_part_initialize*/ False, /* class_inited */ (XtInitProc)Initialize, /* initialize */ NULL, /* initialize_hook */ (XtRealizeProc)Realize, /* realize */ actions, /* actions */ XtNumber(actions), /* num_actions */ resources, /* resources */ XtNumber(resources), /* num_resources */ NULLQUARK, /* xrm_class */ True, /* compress_motion */ XtExposeCompressMultiple | /* compress_exposure */ XtExposeGraphicsExpose | XtExposeNoExpose, True, /* compress_enterleave */ False, /* visible_interest */ (XtWidgetProc)Destroy, /* destroy */ (XtWidgetProc)xbaeResize, /* resize */ (XtExposeProc)Redisplay, /* expose */ (XtSetValuesFunc)SetValues, /* set_values */ NULL, /* set_values_hook */ (XtAlmostProc)SetValuesAlmost, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ XtVersionDontCheck, /* version */ NULL, /* callback_private */ defaultTranslations, /* tm_table */ (XtGeometryHandler)QueryGeometry, /* query_geometry */ NULL, /* display_accelerator */ (XtPointer) &BaseClassExtRec /* extension */ }, { /* composite_class fields */ GeometryManager, /* geometry_manager */ NULL, /* change_managed */ InsertChild, /* insert_child */ XtInheritDeleteChild, /* delete_child */ NULL, /* extension */ }, { /* constraint_class fields */ NULL, /* resources */ 0, /* num_resources */ 0, /* constraint_size */ NULL, /* initialize */ NULL, /* destroy */ NULL, /* set_values */ NULL /* extension */ }, { /* manager_class fields */ XtInheritTranslations, /* translations */ syn_resources, /* syn_resources */ XtNumber(syn_resources), /* num_syn_resources */ NULL, /* syn_constraint_resources */ 0, /* num_syn_constraint_resources */ XmInheritParentProcess, /* parent_process */ NULL /* extension */ }, { /* matrix_class fields */ xbaeSetCell, /* set_cell */ xbaeGetCell, /* get_cell */ xbaeEditCell, /* edit_cell */ xbaeSelectCell, /* select_cell */ xbaeSelectRow, /* select_row */ xbaeSelectColumn, /* select_column */ xbaeDeselectAll, /* deselect_all */ xbaeSelectAll, /* select_all */ xbaeDeselectCell, /* deselect_cell */ xbaeDeselectRow, /* deselect_row */ xbaeDeselectColumn, /* deselect_column */ xbaeCommitEdit, /* commit_edit */ xbaeCancelEdit, /* cancel_edit */ xbaeAddRows, /* add_rows */ xbaeDeleteRows, /* delete_rows */ xbaeAddColumns, /* add_columns */ xbaeDeleteColumns, /* delete_columns */ xbaeSetRowColors, /* set_row_colors */ xbaeSetColumnColors, /* set_column_colors */ xbaeSetCellColor, /* set_cell_color */ NULL, /* extension */ } }; externaldef(xbaematrixwidgetclass) WidgetClass xbaeMatrixWidgetClass = (WidgetClass) & xbaeMatrixClassRec; static XtConvertArgRec convertArg[] = { {XtWidgetBaseOffset, (XtPointer) XtOffsetOf(WidgetRec, core.screen), sizeof(Screen *)}, {XtWidgetBaseOffset, (XtPointer) XtOffsetOf(WidgetRec, core.colormap), sizeof(Colormap)} }; static void xbaeRegisterConverters() { /* * String to StringArray is used for XmNrowLabels and XmNcolumnLabels * We make a private copy of this table */ XtSetTypeConverter(XmRString, XmRStringArray, CvtStringToStringArray, NULL, 0, XtCacheAll | XtCacheRefCount, StringArrayDestructor); /* * String to String2DArray is used for XmNcells resource * We make a private copy of this table */ XtSetTypeConverter(XmRString, XmRCellTable, CvtStringToCellTable, NULL, 0, XtCacheNone, StringCellDestructor); /* * String to ShortArray is used for XmNcolumnWidths resource. * We make a private copy of this table */ XtSetTypeConverter(XmRString, XmRWidthArray, CvtStringToWidthArray, NULL, 0, XtCacheAll | XtCacheRefCount, WidthArrayDestructor); /* * String to IntArray is used for XmNcolumnMaxLengths resource. * We make a private copy of this table */ XtSetTypeConverter(XmRString, XmRMaxLengthArray, CvtStringToMaxLengthArray, NULL, 0, XtCacheAll | XtCacheRefCount, MaxLengthArrayDestructor); /* * String to PixelTable is used for XmNcolors * and XmNcellBackgrounds resources. */ XtSetTypeConverter(XmRString, XmRPixelTable, CvtStringToPixelTable,convertArg, XtNumber(convertArg), XtCacheNone, PixelTableDestructor); /* * String to BooleanArray is used for XmNcolumnButtonLabels and * XmNrowButtonLabels resources. */ XtSetTypeConverter(XmRString, XmRBooleanArray, CvtStringToBooleanArray, NULL, 0, XtCacheAll | XtCacheRefCount, BooleanArrayDestructor); /* * String to AlignmentArray is used for XmNcolumnAlignments * and XmNcolumnLabelAlignments resources. */ XtSetTypeConverter(XmRString, XmRAlignmentArray, CvtStringToAlignmentArray, NULL, 0, XtCacheAll | XtCacheRefCount, AlignmentArrayDestructor); /* * String to grid type is used for XmNgridType */ XtSetTypeConverter(XmRString, XmRGridType, CvtStringToGridType, NULL, 0, XtCacheAll, NULL); /* * String to matrix display policy is used for * XmN{vertical,horizontal}ScrollBarDisplayPolicy */ XtSetTypeConverter(XmRString, XmRMatrixScrollBarDisplayPolicy, #ifdef __VMS CvtStringToMatrixScrollBarDisp, #else CvtStringToMatrixScrollBarDisplayPolicy, #endif NULL, 0, XtCacheAll, NULL); } static void ClassInitialize() { xbaeRegisterConverters(); } static void ClassPartInitialize(mwc) XbaeMatrixWidgetClass mwc; { register XbaeMatrixWidgetClass super = (XbaeMatrixWidgetClass) mwc->core_class.superclass; /* * Allow subclasses to inherit new Matrix methods */ if (mwc->matrix_class.set_cell == XbaeInheritSetCell) mwc->matrix_class.set_cell = super->matrix_class.set_cell; if (mwc->matrix_class.get_cell == XbaeInheritGetCell) mwc->matrix_class.get_cell = super->matrix_class.get_cell; if (mwc->matrix_class.edit_cell == XbaeInheritEditCell) mwc->matrix_class.edit_cell = super->matrix_class.edit_cell; if (mwc->matrix_class.select_cell == XbaeInheritSelectCell) mwc->matrix_class.select_cell = super->matrix_class.select_cell; if (mwc->matrix_class.select_row == XbaeInheritSelectRow) mwc->matrix_class.select_row = super->matrix_class.select_row; if (mwc->matrix_class.select_column == XbaeInheritSelectColumn) mwc->matrix_class.select_column = super->matrix_class.select_column; if (mwc->matrix_class.deselect_all == XbaeInheritDeselectAll) mwc->matrix_class.deselect_all = super->matrix_class.deselect_all; if (mwc->matrix_class.select_all == XbaeInheritSelectAll) mwc->matrix_class.select_all = super->matrix_class.select_all; if (mwc->matrix_class.deselect_cell == XbaeInheritDeselectCell) mwc->matrix_class.deselect_cell = super->matrix_class.deselect_cell; if (mwc->matrix_class.deselect_row == XbaeInheritDeselectRow) mwc->matrix_class.deselect_row = super->matrix_class.deselect_row; if (mwc->matrix_class.deselect_column == XbaeInheritDeselectColumn) mwc->matrix_class.deselect_column = super->matrix_class.deselect_column; if (mwc->matrix_class.commit_edit == XbaeInheritCommitEdit) mwc->matrix_class.commit_edit = super->matrix_class.commit_edit; if (mwc->matrix_class.cancel_edit == XbaeInheritCancelEdit) mwc->matrix_class.cancel_edit = super->matrix_class.cancel_edit; if (mwc->matrix_class.add_rows == XbaeInheritAddRows) mwc->matrix_class.add_rows = super->matrix_class.add_rows; if (mwc->matrix_class.delete_rows == XbaeInheritDeleteRows) mwc->matrix_class.delete_rows = super->matrix_class.delete_rows; if (mwc->matrix_class.add_columns == XbaeInheritAddColumns) mwc->matrix_class.add_columns = super->matrix_class.add_columns; if (mwc->matrix_class.delete_columns == XbaeInheritDeleteColumns) mwc->matrix_class.delete_columns = super->matrix_class.delete_columns; if (mwc->matrix_class.set_row_colors == XbaeInheritSetRowColors) mwc->matrix_class.set_row_colors = super->matrix_class.set_row_colors; if (mwc->matrix_class.set_column_colors == XbaeInheritSetColumnColors) mwc->matrix_class.set_column_colors = super->matrix_class.set_column_colors; if (mwc->matrix_class.set_cell_color == XbaeInheritSetCellColor) mwc->matrix_class.set_cell_color = super->matrix_class.set_cell_color; } #ifdef NEED_24BIT_VISUAL static Widget get_shell_ancestor(w) Widget w; { Widget sh; for (sh=w ; !XtIsShell(sh) ; sh=XtParent(sh)) ; } #endif /* * Callbacks for our scrollbars. */ static XtCallbackRec VSCallback[] = { {(XtCallbackProc) xbaeScrollVertCB, (XtPointer) NULL}, {(XtCallbackProc) NULL, NULL} }; static XtCallbackRec HSCallback[] = { {(XtCallbackProc) xbaeScrollHorizCB, (XtPointer) NULL}, {(XtCallbackProc) NULL, NULL} }; /* ARGSUSED */ static void Initialize(request, new, args, num_args) XbaeMatrixWidget request, new; ArgList args; Cardinal *num_args; { Dimension marginHeight; /* * Initialize redisplay counters */ new->matrix.disable_redisplay = 0; new->matrix.first_row_offset = 0; #if XmVersion >= 1002 /* * Initialize highlight location */ new->matrix.highlight_location = HighlightNone; #endif /* * Check rows/cols set by resources for consistency/validity */ if (new->matrix.rows < 0 || new->matrix.columns < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "initialize", "badSize", "XbaeMatrix", "XbaeMatrix: Number of rows or columns is less than zero", (String *) NULL, (Cardinal *) NULL); if (new->matrix.rows < 0) new->matrix.rows = 0; if (new->matrix.columns < 0) new->matrix.columns = 0; } /* * Make sure column_widths were specified. If not, use a default value. * This should keep the XDesigner users happy.... */ if (new->matrix.columns && (new->matrix.column_widths == NULL)) { int i; new->matrix.column_widths = (short*)XtMalloc(new->matrix.columns * sizeof(short)); for (i = 0; i < new->matrix.columns; i++) new->matrix.column_widths[i] = 5; } /* If no label font is specified, copy the default fontList, but if we do then override the bold_labels resource */ if (!new->matrix.label_font_list) new->matrix.label_font_list = XmFontListCopy(new->matrix.font_list); else new->matrix.bold_labels = False; /* * We must have at least one non-fixed row/column. Only complain if there * are some to complain about, though. We may have none at all (yet). */ if ((int)(new->matrix.fixed_rows + new->matrix.trailing_fixed_rows) > 0 && (int)(new->matrix.fixed_rows + new->matrix.trailing_fixed_rows) >= new->matrix.rows) { XtAppWarningMsg(XtWidgetToApplicationContext((Widget) new), "initialize", "tooManyFixed", "XbaeMatrix", "XbaeMatrix: At least one row must not be fixed", NULL, 0); new->matrix.fixed_rows = 0; new->matrix.trailing_fixed_rows = 0; } if ((int)(new->matrix.fixed_columns + new->matrix.trailing_fixed_columns) > 0 && (int)(new->matrix.fixed_columns + new->matrix.trailing_fixed_columns) >= new->matrix.columns) { XtAppWarningMsg(XtWidgetToApplicationContext((Widget) new), "initialize", "tooManyFixed", "XbaeMatrix", "XbaeMatrix: At least one column must not be fixed", NULL, 0); new->matrix.fixed_columns = 0; new->matrix.trailing_fixed_columns = 0; } /* * We can't have too many visible columns */ if (new->matrix.columns && ((int)new->matrix.visible_columns > (new->matrix.columns - (int)new->matrix.fixed_columns - (int)new->matrix.trailing_fixed_columns))) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "initialize", "tooManyVisibleColumns", "XbaeMatrix", "XbaeMatrix: visibleColumns must not be greater than\n (columns - fixedColumns - trailingFixedColumns)", (String *) NULL, (Cardinal *) NULL); new->matrix.visible_columns = 0; } if (new->matrix.grid_type >= XmGRID_LINE) /* Deprecated types. To be removed in next version. */ XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "cvtStringToGridType", "deprecatedType", "XbaeMatrix", "Value for GridType is deprecated and will be removed in next release", NULL, NULL); /* * Copy the pointed to resources. * If cells is NULL, we create an array of "" strings. */ if (new->matrix.cells) xbaeCopyCells(new); if (new->matrix.row_labels) xbaeCopyRowLabels(new); if (new->matrix.column_labels) xbaeCopyColumnLabels(new); else { new->matrix.column_label_lines = NULL; new->matrix.column_label_maxlines = 0; } xbaeCopyColumnWidths(new); if (new->matrix.cell_shadow_types) xbaeCopyCellShadowTypes(new); if (new->matrix.row_shadow_types) xbaeCopyRowShadowTypes(new); if (new->matrix.column_shadow_types) xbaeCopyColumnShadowTypes(new); if (new->matrix.cell_user_data) xbaeCopyCellUserData(new); if (new->matrix.row_user_data) xbaeCopyRowUserData(new); if (new->matrix.column_user_data) xbaeCopyColumnUserData(new); #if CELL_WIDGETS if (new->matrix.cell_widgets) xbaeCopyCellWidgets(new); #endif if (new->matrix.column_max_lengths) xbaeCopyColumnMaxLengths(new); if (new->matrix.column_alignments) xbaeCopyColumnAlignments(new); if (new->matrix.column_button_labels) xbaeCopyColumnButtonLabels(new); if (new->matrix.column_label_alignments) xbaeCopyColumnLabelAlignments(new); if (new->matrix.colors) xbaeCopyColors(new); if (new->matrix.cell_background) xbaeCopyBackgrounds(new); if (new->matrix.selected_cells) xbaeCopySelectedCells(new); #if XmVersion >= 1002 if (new->matrix.highlighted_cells) xbaeCopyHighlightedCells(new); #endif if (new->matrix.row_button_labels) xbaeCopyRowButtonLabels(new); /* * If user didn't specify a rowLabelWidth, then calculate one based on * the widest label */ if (new->matrix.row_label_width == 0 && new->matrix.row_labels) new->matrix.row_label_width = xbaeMaxRowLabel(new); /* * Copy the fontList. Get fontStruct from fontList. */ xbaeNewFont(new); xbaeNewLabelFont(new); /* * Create our 4 children (SBs and textField are unmanaged for now) * they must be created in this order so our macros work * (horiz scroll, vert scroll and then clip and textField). * We scroll horizontally by pixels, vertically by rows. */ new->matrix.horizontal_sb = XtVaCreateWidget( "horizScroll", xmScrollBarWidgetClass, (Widget) new, XmNorientation, XmHORIZONTAL, XmNdragCallback, HSCallback, XmNvalueChangedCallback, HSCallback, XmNincrement, FONT_WIDTH(new), XmNsliderSize, 1, XmNminimum, 0, XmNmaximum, 1, XmNbackground, new->core.background_pixel, XmNforeground, new->manager.foreground, XmNbottomShadowColor, new->manager.bottom_shadow_color, XmNbottomShadowPixmap, new->manager.bottom_shadow_pixmap, XmNhighlightColor, new->manager.highlight_color, XmNhighlightPixmap, new->manager.highlight_pixmap, XmNtopShadowColor, new->manager.top_shadow_color, XmNtopShadowPixmap, new->manager.top_shadow_pixmap, NULL); HORIZ_ORIGIN(new) = 0; new->matrix.vertical_sb = XtVaCreateWidget( "vertScroll", xmScrollBarWidgetClass, (Widget) new, XmNorientation, XmVERTICAL, XmNdragCallback, VSCallback, XmNvalueChangedCallback, VSCallback, XmNincrement, 1, XmNminimum, 0, XmNmaximum, new->matrix.rows ? (new->matrix.rows - (int) new->matrix.fixed_rows - (int) new->matrix.trailing_fixed_rows) : 1, XmNsliderSize, 1, XmNbackground, new->core.background_pixel, XmNforeground, new->manager.foreground, XmNbottomShadowColor, new->manager.bottom_shadow_color, XmNbottomShadowPixmap, new->manager.bottom_shadow_pixmap, XmNhighlightColor, new->manager.highlight_color, XmNhighlightPixmap, new->manager.highlight_pixmap, XmNtopShadowColor, new->manager.top_shadow_color, XmNtopShadowPixmap, new->manager.top_shadow_pixmap, NULL); /* * Create the Clip widget managed so we can use it for traversal */ new->matrix.clip_window = XtVaCreateManagedWidget( "clip", xbaeClipWidgetClass, (Widget) new, XmNexposeProc, ClipRedisplay, XmNtraversalOn, new->manager.traversal_on, XmNbackground, new->core.background_pixel, NULL); /* * Add a callback to the Clip widget so we know when it gets the focus * and can use it in traversal. */ XtAddCallback(ClipChild(new), XmNfocusCallback, (XtCallbackProc)TraverseInCB, (XtPointer) new); /* * Calculate an imaginary cellMarginHeight based on the largest of * the label and cell font. If the font for the labels is bigger, * the cellMarginHeight needs to be increased to allow the cell font * to still appear centrally placed */ if (LABEL_HEIGHT(new) > FONT_HEIGHT(new)) marginHeight = (int)(LABEL_HEIGHT(new) + (new->matrix.cell_margin_height * 2) - FONT_HEIGHT(new)) / 2; else marginHeight = new->matrix.cell_margin_height; /* * Create text field (unmanaged for now) - its window will be reparented * in Realize to be a subwindow of Clip * * Set the shadow thickness to 0 to prevent a shadow drawn inside the * highlight region. The shadow thickness is used to draw the shadows * *around* the highlight */ new->matrix.text_field = XtVaCreateWidget( "textField", xmTextFieldWidgetClass, (Widget) new, XmNmarginWidth, new->matrix.cell_margin_width, XmNmarginHeight, marginHeight, XmNtranslations, new->matrix.text_translations, XmNfontList, new->matrix.font_list, XmNshadowThickness, new->matrix.text_shadow_thickness, XmNbackground, new->matrix.text_background, XmNforeground, new->manager.foreground, XmNbottomShadowColor, new->manager.bottom_shadow_color, XmNbottomShadowPixmap, new->manager.bottom_shadow_pixmap, XmNhighlightThickness, new->matrix.cell_highlight_thickness, XmNhighlightColor, new->manager.highlight_color, XmNhighlightPixmap, new->manager.highlight_pixmap, XmNeditMode, XmSINGLE_LINE_EDIT, NULL); XtAddCallback(TextChild(new), XmNmodifyVerifyCallback, xbaeModifyVerifyCB, (XtPointer) new); /* Add a handler on top of the text field to handle clicks on it */ XtAddEventHandler(TextChild(new), ButtonPressMask | ButtonReleaseMask, True, (XtEventHandler)xbaeHandleClick, (XtPointer)new); XtAddEventHandler((Widget)new, ButtonPressMask | ButtonReleaseMask, True, (XtEventHandler)xbaeHandleClick, (XtPointer)new); /* * Compute cell text baseline based on TextField widget */ new->matrix.text_baseline = XmTextGetBaseline(TextChild(new)) + new->matrix.cell_shadow_thickness; /* * Adjust the label_baseline according to the larger of the two fonts */ if (LABEL_HEIGHT(new) == FONT_HEIGHT(new)) new->matrix.label_baseline = new->matrix.text_baseline; else { if (LABEL_HEIGHT(new) < FONT_HEIGHT(new)) marginHeight = (int)(FONT_HEIGHT(new) + new->matrix.text_shadow_thickness * 2 + new->matrix.cell_margin_height * 2 - LABEL_HEIGHT(new)) / 2; else marginHeight = new->matrix.cell_margin_height + new->matrix.text_shadow_thickness; new->matrix.label_baseline = marginHeight + new->matrix.cell_shadow_thickness - new->matrix.label_font_y; } /* * Calculate total pixel width of cell area */ xbaeGetCellTotalWidth(new); /* * Make the clips for the fixed cells which are scrollable (i.e. the * fixed rows that can scroll horizontally, and the fixed columns which * can scroll vertically. This makes 4 scrollable fixed-cell areas. */ new->matrix.left_clip = XtVaCreateWidget( "leftclip", xbaeClipWidgetClass, (Widget) new, XmNexposeProc, Redisplay, XmNtraversalOn, new->manager.traversal_on, XmNbackground, new->core.background_pixel, NULL); new->matrix.right_clip = XtVaCreateWidget( "rightclip", xbaeClipWidgetClass, (Widget) new, XmNexposeProc, Redisplay, XmNtraversalOn, new->manager.traversal_on, XmNbackground, new->core.background_pixel, NULL); new->matrix.top_clip = XtVaCreateWidget( "topclip", xbaeClipWidgetClass, (Widget) new, XmNexposeProc, Redisplay, XmNtraversalOn, new->manager.traversal_on, XmNbackground, new->core.background_pixel, NULL); new->matrix.bottom_clip = XtVaCreateWidget( "bottomclip", xbaeClipWidgetClass, (Widget) new, XmNexposeProc, Redisplay, XmNtraversalOn, new->manager.traversal_on, XmNbackground, new->core.background_pixel, NULL); /* * Cache the pixel position of each column */ new->matrix.column_positions = CreateColumnPositions(new); xbaeGetColumnPositions(new); /* * Now we can set the VSB maximum (relies on data from * GetCellTotalWidth above) */ XtVaSetValues(HorizScrollChild(new), XmNmaximum, NON_FIXED_TOTAL_WIDTH(new) ? NON_FIXED_TOTAL_WIDTH(new) : 1, NULL); /* * Current position starts at the top left editable cell. */ new->matrix.current_row = new->matrix.fixed_rows; new->matrix.current_column = new->matrix.fixed_columns; new->matrix.current_clip = CLIP_NONE; /* * We aren't trying to traverse out */ new->matrix.traversing = NOT_TRAVERSING; #ifndef NEED_24BIT_VISUAL /* * Get/create our GCs */ xbaeCreateDrawGC(new); xbaeCreatePixmapGC(new); xbaeCreateLabelGC(new); xbaeCreateLabelClipGC(new); xbaeCreateGridLineGC(new); xbaeCreateTopShadowClipGC(new); xbaeCreateBottomShadowClipGC(new); #endif /* * Now we have created our GCs, check if the widget is sensitive */ if (!new->core.sensitive) { XGCValues values; unsigned long valuemask = GCFillStyle; Display *dpy = XtDisplay(new); if (!new->core.sensitive) { int i; values.fill_style = FillStippled; /* * Change our drawing GC's to the stipple effect to indicate * the widget is insensitive and redraw */ XChangeGC(dpy, new->matrix.draw_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_clip_gc, valuemask, &values); XChangeGC(dpy, new->matrix.pixmap_gc, valuemask, &values); /* * Propogate the insensitive feel to our children */ for (i = 0; i < XbaeNumChildren; i++) XtSetSensitive(new->composite.children[i], False); } } /* * Create ScrollMgrs to manage scrolling events */ new->matrix.matrix_scroll_mgr = xbaeSmCreateScrollMgr(); new->matrix.clip_scroll_mgr = xbaeSmCreateScrollMgr(); /* * Set the last row and column to an impossible value */ new->matrix.last_row = -1; new->matrix.last_column = -1; new->matrix.last_click_time = (Time)0; /* * Compute our size. If either dimension was explicitly set to 0, * then that dimension is computed. * Use request because superclasses modify width/height. */ if (request->core.width == 0 || request->core.height == 0) xbaeComputeSize(new, request->core.width == 0, request->core.height == 0); /* * Make sure top_row is sensible before we call Resize */ if (VERT_ORIGIN(new) < 0) VERT_ORIGIN(new) = 0; else if (VERT_ORIGIN(new) > new->matrix.rows) VERT_ORIGIN(new) = new->matrix.rows; /* * Tweak top_row to make sure it is valid before calling Resize */ if (VERT_ORIGIN(new)) xbaeAdjustTopRow(new); if (new->matrix.left_column) xbaeAdjustLeftColumn(new); /* * Layout the scrollbars and clip widget based on our size */ xbaeResize(new); } static void Realize(mw, valueMask, attributes) XbaeMatrixWidget mw; XtValueMask *valueMask; XSetWindowAttributes *attributes; { *valueMask |= CWDontPropagate; attributes->do_not_propagate_mask = ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask | PointerMotionMask; /* * Don't call our superclasses realize method, because Manager sets * bit_gravity */ XtCreateWindow((Widget) mw, InputOutput, CopyFromParent, *valueMask, attributes); #ifdef NEED_24BIT_VISUAL /* * Now that we have a window... * Get/create our GCs */ xbaeCreateDrawGC(mw); xbaeCreatePixmapGC(mw); xbaeCreateLabelGC(mw); xbaeCreateLabelClipGC(mw); xbaeCreateTopShadowClipGC(mw); xbaeCreateBottomShadowClipGC(mw); #endif /* * Reparent the textFields window to be a subwindow of Clip widget * (we need to realize them first) */ XtRealizeWidget(TextChild(mw)); XtRealizeWidget(ClipChild(mw)); XtRealizeWidget(LeftClip(mw)); XtRealizeWidget(RightClip(mw)); XtRealizeWidget(TopClip(mw)); XtRealizeWidget(BottomClip(mw)); XReparentWindow(XtDisplay(mw), XtWindow(TextChild(mw)), XtWindow(ClipChild(mw)), TextChild(mw)->core.x, TextChild(mw)->core.y); mw->matrix.current_parent = ClipChild(mw); /* * Set the clip_mask in our clipping GCs. */ xbaeSetClipMask(mw, CLIP_NONE); } static void InsertChild(w) Widget w; { #if 0 if (((CompositeWidget) XtParent(w))->composite.num_children > 7) { #if XmVersion > 1001 /* Hah! Cannot use XmIsDragIconObjectClass because it is defined * using XtIsSubclass() (at least in the 1.2 and 2.0 headers I have * available to me). Nothing like a little QA, huh. * * Anyways, since the drag icon & context are created as widget * children of the matrix, we need to allow just those extra types * to be created as our kids. */ if ((!XmIsDragContext(w)) && (!XtIsSubclass(w, xmDragIconObjectClass))) { #endif String params[1]; Cardinal num_params = 1; params[0] = XtClass(XtParent(w))->core_class.class_name; XtAppWarningMsg( XtWidgetToApplicationContext(w), "insertChild", "badChild", "XbaeMatrix", "XbaeMatrix: Applications cannot add children to %s widgets", params, &num_params); #if XmVersion > 1001 } #endif return; } #endif #if XmVersion > 1001 (*((XmManagerWidgetClass) (xbaeMatrixWidgetClass->core_class.superclass))->composite_class.insert_child) (w); #endif } /* * This is the expose method for the Matrix widget. * It redraws the row and column labels, the cells in fixed rows and columns * and the clip window shadow. */ /* ARGSUSED */ static void Redisplay(w, event, region) Widget w; XEvent *event; Region region; { Rectangle expose; XbaeMatrixWidget mw; if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget) w; else /* must be one of the clips */ { int *x = NULL, *y = NULL; mw = (XbaeMatrixWidget) XtParent(w); /* point at the correct x,y pair */ switch (event->type) { case Expose: x = &event->xexpose.x; y = &event->xexpose.y; break; case GraphicsExpose: x = &event->xgraphicsexpose.x; y = &event->xgraphicsexpose.y; break; case NoExpose: break; default: return; } /* NoExpose event can't be translated so make sure x is set */ if (x) { /* * Translate expose event coords into matrix coords if it occured * on a clip. xbaeRedrawLabelsAndFixed needs to check intersections * in matrix coords, even though the xbaeDraw* routines will * correctly retranslate these onto the correct windows for drawing. */ if (w == LeftClip(mw)) { *x += ROW_LABEL_WIDTH(mw) + mw->manager.shadow_thickness; *y += FIXED_ROW_LABEL_OFFSET(mw); } else if (w == RightClip(mw)) { *x += TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); *y += FIXED_ROW_LABEL_OFFSET(mw); } else if (w == TopClip(mw)) { *x += FIXED_COLUMN_LABEL_OFFSET(mw); *y += (COLUMN_LABEL_HEIGHT(mw) + mw->manager.shadow_thickness); } else if (w == BottomClip(mw)) { *x += FIXED_COLUMN_LABEL_OFFSET(mw); *y += TRAILING_FIXED_ROW_LABEL_OFFSET(mw); } else return; /* eek! Run away quickly */ } } if (mw->matrix.disable_redisplay) return; /* * Send our events to the mw ScrollMgr to be adjusted. */ switch (event->type) { case Expose: /* * The Expose event will be translated into our scrolled * coordinate system. Then it is put in a Rectangle. */ xbaeSmScrollEvent(mw->matrix.matrix_scroll_mgr, event); SETRECT(expose, event->xexpose.x, event->xexpose.y, event->xexpose.x + event->xexpose.width, event->xexpose.y + event->xexpose.height); break; case GraphicsExpose: /* * The GraphicsExpose event will cause a scroll to be removed * from the managers queue, then the event will be translated * into our scrolled coordinate system. Then it is put in a Rectangle. */ xbaeSmScrollEvent(mw->matrix.matrix_scroll_mgr, event); SETRECT(expose, event->xgraphicsexpose.x, event->xgraphicsexpose.y, event->xgraphicsexpose.x + event->xgraphicsexpose.width, event->xgraphicsexpose.y + event->xgraphicsexpose.height); break; case NoExpose: /* * The NoExpose event means we won't be getting any GraphicsExpose * events, so the scroll will be removed from the queue and * we are done. */ xbaeSmScrollEvent(mw->matrix.matrix_scroll_mgr, event); return; default: /* maybe handled above already */ return; } /* * Redraw the row/column labels and fixed rows/columns which are * overlapped by the expose Rectangle. */ if ((! mw->matrix.trailing_fixed_columns) && IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw)) { Rectangle nonfixed; /* * We need to ensure that the last column of cells gets * redrawn so that the fill is properly redrawn. */ SETRECT(nonfixed, COLUMN_POSITION(mw, mw->matrix.columns-1), 0, COLUMN_POSITION(mw, mw->matrix.columns-1)+1, ClipChild(mw)->core.height-1); xbaeRedrawCells(mw, &nonfixed); } else if ((! mw->matrix.trailing_fixed_rows) && IN_GRID_COLUMN_MODE(mw) && NEED_VERT_FILL(mw)) { Rectangle nonfixed; /* * We need to ensure that the last row of cells gets * redrawn so that the fill is properly redrawn. */ SETRECT(nonfixed, 0, ROW_HEIGHT(mw) * (mw->matrix.rows - 1), ClipChild(mw)->core.width-1, ROW_HEIGHT(mw) * mw->matrix.rows); xbaeRedrawCells(mw, &nonfixed); } xbaeRedrawLabelsAndFixed(mw, &expose); } /* * This is the exposeProc function for the Clip widget. * It handles expose events for the Clip widget by redrawing those * non-fixed cells which were damaged. * It receives Expose, GraphicsExpose and NoExpose events. */ /* ARGSUSED */ static void ClipRedisplay(w, event, region) Widget w; XEvent *event; Region region; { XbaeMatrixWidget mw = (XbaeMatrixWidget) XtParent(w); Rectangle expose, clip, intersect; if (mw->matrix.disable_redisplay) return; /* * Send our events to the clip ScrollMgr to be adjusted. */ switch (event->type) { case Expose: /* * The Expose event will be translated into our scrolled * coordinate system. Then it is put in a Rectangle. */ xbaeSmScrollEvent(mw->matrix.clip_scroll_mgr, event); SETRECT(expose, event->xexpose.x, event->xexpose.y, event->xexpose.x + event->xexpose.width - 1, event->xexpose.y + event->xexpose.height - 1); break; case GraphicsExpose: /* * The GraphicsExpose event will cause a scroll to be removed * from the managers queue, then the event will be translated * into our scrolled coordinate system. Then it is put in a Rectangle. */ xbaeSmScrollEvent(mw->matrix.clip_scroll_mgr, event); SETRECT(expose, event->xgraphicsexpose.x, event->xgraphicsexpose.y, event->xgraphicsexpose.x + event->xgraphicsexpose.width - 1, event->xgraphicsexpose.y + event->xgraphicsexpose.height - 1); break; case NoExpose: /* * The NoExpose event means we won't be getting any GraphicsExpose * events, so the scroll well be removed from the queue and * we are done. */ xbaeSmScrollEvent(mw->matrix.clip_scroll_mgr, event); return; default: return; } /* * We may get an expose event larger than the size of the Clip widget. * This is because in set_values we may clear the Clip widget * before it gets resized smaller (maybe in set_values_almost). * So here we intersect the expose event with the clip widget * to ensure the expose Rectangle is not larger than the Clip widget. */ SETRECT(clip, 0, 0, w->core.width - 1, w->core.height - 1); INTERSECT(clip, expose, intersect); /* * Redraw those cells which overlap the intersect Rectangle. */ xbaeRedrawCells(mw, &intersect); } /* ARGSUSED */ static Boolean SetValues(current, request, new, args, num_args) XbaeMatrixWidget current, request, new; ArgList args; Cardinal *num_args; { Boolean redisplay = False; /* need to redraw */ Boolean relayout = False; /* need to layout, but same size */ Boolean new_column_widths = False; /* column widths changed */ Boolean new_cells = False; /* cells changed */ Boolean do_top_row = False; /* reset top_row */ Boolean do_left_column = False; /* reset left_column */ int n; Arg wargs[9]; #define NE(field) (current->field != new->field) #define EQ(field) (current->field == new->field) /* * We cannot re-set either of the scrollbars, the textField or * clip window. */ if (NE(matrix.vertical_sb) || NE(matrix.horizontal_sb) || NE(matrix.clip_window) || NE(matrix.text_field)) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "set matrix children", "XbaeMatrix", "XbaeMatrix: Cannot set matrix widget children", NULL, 0); new->matrix.vertical_sb = current->matrix.vertical_sb; new->matrix.horizontal_sb = current->matrix.horizontal_sb; new->matrix.clip_window = current->matrix.clip_window; new->matrix.text_field = current->matrix.text_field; } /* * If rows changed, then: * row_labels must change or be NULL * row_button_labels must change or be NULL */ if ((NE(matrix.rows) && (new->matrix.row_labels && EQ(matrix.row_labels))) || (new->matrix.row_button_labels && EQ(matrix.row_button_labels))) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "rows", "XbaeMatrix", "XbaeMatrix: Number of rows changed but dependent resources did not", NULL, 0); new->matrix.rows = current->matrix.rows; new->matrix.row_labels = current->matrix.row_labels; new->matrix.row_button_labels = current->matrix.row_button_labels; } /* * If columns changed, then: * column_widths must change * column_max_lengths must change or be NULL * column_labels must change or be NULL * column_alignments must change or be NULL * column_button_labels must change or be NULL * column_label_alignments must change or be NULL */ if (NE(matrix.columns) && ((new->matrix.column_labels && EQ(matrix.column_labels)) || (new->matrix.column_max_lengths && EQ(matrix.column_max_lengths)) || (new->matrix.column_alignments && EQ(matrix.column_alignments)) || (new->matrix.column_button_labels && EQ(matrix.column_button_labels)) || (new->matrix.column_label_alignments && EQ(matrix.column_label_alignments)) || EQ(matrix.column_widths))) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "columns", "XbaeMatrix", "XbaeMatrix: Number of columns changed but dependent resources did not", NULL, 0); new->matrix.columns = current->matrix.columns; new->matrix.column_widths = current->matrix.column_widths; new->matrix.column_max_lengths = current->matrix.column_max_lengths; new->matrix.column_labels = current->matrix.column_labels; new->matrix.column_alignments = current->matrix.column_alignments; new->matrix.column_button_labels = current->matrix.column_button_labels; new->matrix.column_label_alignments = current->matrix.column_label_alignments; } /* * Make sure we have at least one row/column. */ if (new->matrix.columns < 0 || new->matrix.rows < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "size", "XbaeMatrix", "XbaeMatrix: Must have at least one row and column", NULL, 0); if (new->matrix.columns < 0) new->matrix.columns = current->matrix.columns; if (new->matrix.rows < 0) new->matrix.rows = current->matrix.rows; } /* * We must have at least one non-fixed row/column. * This could be caused by (trailing) fixed_rows/columns or * rows/columns changing. */ if ((int)(new->matrix.fixed_rows + new->matrix.trailing_fixed_rows) > 0 && (int)(new->matrix.fixed_rows + new->matrix.trailing_fixed_rows) >= new->matrix.rows) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "tooManyFixed", "XbaeMatrix", "XbaeMatrix: At least one row must not be fixed", NULL, 0); if (NE(matrix.fixed_rows)) new->matrix.fixed_rows = current->matrix.fixed_rows; if (NE(matrix.trailing_fixed_rows)) new->matrix.trailing_fixed_rows = current->matrix.trailing_fixed_rows; if (NE(matrix.rows)) new->matrix.rows = current->matrix.rows; } if ((int)(new->matrix.fixed_columns + new->matrix.trailing_fixed_columns) > 0 && (int)(new->matrix.fixed_columns + new->matrix.trailing_fixed_columns) >= new->matrix.columns) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "tooManyFixed", "XbaeMatrix", "XbaeMatrix: At least one column must not be fixed", NULL, 0); if (NE(matrix.fixed_columns)) new->matrix.fixed_columns = current->matrix.fixed_columns; if (NE(matrix.trailing_fixed_columns)) new->matrix.trailing_fixed_columns = current->matrix.trailing_fixed_columns; if (NE(matrix.columns)) new->matrix.columns = current->matrix.columns; } /* * We can't have too many visible columns. * This could be caused by visible_columns or columns or fixed_columns * changing. */ if (new->matrix.columns && ((int)new->matrix.visible_columns > (new->matrix.columns - (int)new->matrix.fixed_columns - (int)new->matrix.trailing_fixed_columns))) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "tooManyVisibleColumns", "XbaeMatrix", "XbaeMatrix: visibleColumns must not be greater than\n (columns - fixedColumns - trailingFixedColumns)", (String *) NULL, (Cardinal *) NULL); if (NE(matrix.visible_columns)) new->matrix.visible_columns = current->matrix.visible_columns; if (NE(matrix.columns)) new->matrix.columns = current->matrix.columns; if (NE(matrix.fixed_columns)) new->matrix.fixed_columns = current->matrix.fixed_columns; if (NE(matrix.trailing_fixed_columns)) new->matrix.trailing_fixed_columns = current->matrix.trailing_fixed_columns; } /* * Make sure we have column_widths */ if (new->matrix.columns && (new->matrix.column_widths == NULL)) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "setValues", "columnWidths", "XbaeMatrix", "XbaeMatrix: Must specify columnWidths", NULL, 0); new->matrix.column_widths = current->matrix.column_widths; } /* * If rows or columns or fixed rows/columns changed, * then we need to relayout. */ if (NE(matrix.rows) || NE(matrix.fixed_rows) || NE(matrix.trailing_fixed_rows)) { /* * Reset VSB maximum. sliderSize will be reset later in Resize. */ XtVaSetValues(VertScrollChild(new), XmNmaximum, (new->matrix.rows - (int) new->matrix.fixed_rows - (int) new->matrix.trailing_fixed_rows), XmNsliderSize, 1, NULL); do_top_row = True; relayout = True; } if (NE(matrix.columns) || NE(matrix.fixed_columns) || NE(matrix.trailing_fixed_columns)) relayout = True; /* * Copy any pointed to resources if they changed */ #if CELL_WIDGETS if (NE(matrix.cell_widgets)) { xbaeFreeCellWidgets(current); xbaeCopyCellWidgets(current); redisplay = True; } #endif if (NE(matrix.cells)) { xbaeFreeCells(current); xbaeCopyCells(new); redisplay = True; new_cells = True; } else if (NE(matrix.rows) || NE(matrix.columns)) ResizeCells(current, new); if (NE(matrix.cell_user_data)) { xbaeFreeCellUserData(current); if (new->matrix.cell_user_data) xbaeCopyCellUserData(new); } if (NE(matrix.row_user_data)) { xbaeFreeRowUserData(current); if (new->matrix.row_user_data) xbaeCopyRowUserData(new); } if (NE(matrix.column_user_data)) { xbaeFreeColumnUserData(current); if (new->matrix.column_user_data) xbaeCopyColumnUserData(new); } if (NE(matrix.cell_shadow_types)) { xbaeFreeCellShadowTypes(current); if (new->matrix.cell_shadow_types) xbaeCopyCellShadowTypes(new); } if (NE(matrix.row_shadow_types)) { xbaeFreeRowShadowTypes(current); if (new->matrix.row_shadow_types) xbaeCopyRowShadowTypes(new); } if (NE(matrix.column_shadow_types)) { xbaeFreeColumnShadowTypes(current); if (new->matrix.column_shadow_types) xbaeCopyColumnShadowTypes(new); } if (NE(matrix.row_labels)) { /* * If we added or deleted row_labels, we need to layout. */ if (!current->matrix.row_labels || !new->matrix.row_labels) relayout = True; else redisplay = True; xbaeFreeRowLabels(current); if (new->matrix.row_labels) xbaeCopyRowLabels(new); } if (NE(matrix.column_labels)) { xbaeFreeColumnLabels(current); if (new->matrix.column_labels) xbaeCopyColumnLabels(new); else { new->matrix.column_label_lines = NULL; new->matrix.column_label_maxlines = 0; } /* * If the number of lines in column labels changed, we need to relayout */ if (current->matrix.column_label_maxlines != new->matrix.column_label_maxlines) relayout = True; else redisplay = True; } if (NE(matrix.column_max_lengths)) { xbaeFreeColumnMaxLengths(current); if (new->matrix.column_max_lengths) xbaeCopyColumnMaxLengths(new); redisplay = True; } if (NE(matrix.column_alignments)) { xbaeFreeColumnAlignments(current); if (new->matrix.column_alignments) xbaeCopyColumnAlignments(new); redisplay = True; } if (NE(matrix.column_button_labels)) { xbaeFreeColumnButtonLabels(current); if (new->matrix.column_button_labels) xbaeCopyColumnButtonLabels(new); redisplay = True; } if (NE(matrix.row_button_labels)) { xbaeFreeRowButtonLabels(current); if (new->matrix.row_button_labels) xbaeCopyRowButtonLabels(new); redisplay = True; } if (NE(matrix.column_label_alignments)) { xbaeFreeColumnLabelAlignments(current); if (new->matrix.column_label_alignments) xbaeCopyColumnLabelAlignments(new); redisplay = True; } if (NE(matrix.row_label_alignment)) redisplay = True; if (NE(matrix.row_label_color) || NE(matrix.column_label_color) || NE(matrix.button_label_background)) redisplay = True; if (NE(matrix.colors)) { xbaeFreeColors(current); if (new->matrix.colors) xbaeCopyColors(new); redisplay = True; } if (NE(matrix.cell_background)) { xbaeFreeBackgrounds(current); if (new->matrix.cell_background) xbaeCopyBackgrounds(new); redisplay = True; } if (NE(matrix.grid_line_color)) { XtReleaseGC((Widget)new, new->matrix.grid_line_gc); XFreeGC(XtDisplay(new), new->matrix.cell_grid_line_gc); xbaeCreateGridLineGC(new); if ((new->matrix.grid_type == XmGRID_CELL_LINE) || (new->matrix.grid_type == XmGRID_ROW_LINE) || (new->matrix.grid_type == XmGRID_COLUMN_LINE)) redisplay = True; } if (NE(matrix.alt_row_count) && (new->matrix.even_row_background != current->core.background_pixel || new->matrix.odd_row_background != current->core.background_pixel)) redisplay = True; if (NE(matrix.even_row_background) || NE(matrix.odd_row_background) || NE(matrix.grid_type) || NE(matrix.selected_foreground) || NE(matrix.selected_background)) redisplay = True; if (NE(matrix.grid_type) && (new->matrix.grid_type >= XmGRID_LINE)) /* Deprecated types. To be removed in next version. */ XtAppWarningMsg( XtWidgetToApplicationContext((Widget) new), "cvtStringToGridType", "deprecatedType", "XbaeMatrix", "Value for GridType is deprecated and will be removed in next release", NULL, NULL); if (new->matrix.colors && EQ(matrix.colors) && (NE(matrix.rows) || NE(matrix.columns))) { ResizeColors(current, new, False); redisplay = True; } if (new->matrix.cell_background && EQ(matrix.cell_background) && (NE(matrix.rows) || NE(matrix.columns))) { ResizeColors(current, new, True); redisplay = True; } if (NE(matrix.cell_shadow_type) || NE(matrix.shadow_type) || NE(matrix.reverse_select)) redisplay = True; if (NE(matrix.column_widths)) { xbaeFreeColumnWidths(current); xbaeCopyColumnWidths(new); relayout = True; new_column_widths = True; } if (NE(matrix.selected_cells)) { xbaeFreeSelectedCells(current); xbaeCopySelectedCells(new); redisplay = True; } else if (NE(matrix.rows) || NE(matrix.columns)) ResizeSelectedCells(current, new); #if XmVersion >= 1002 if (NE(matrix.highlighted_cells)) { xbaeFreeHighlightedCells(current); xbaeCopyHighlightedCells(new); redisplay = True; } else if (NE(matrix.rows) || NE(matrix.columns)) ResizeHighlightedCells(current, new); #endif /* * If traversal changes, pass through to Clip and textField children. */ if (NE(manager.traversal_on)) { XtVaSetValues(ClipChild(new), XmNtraversalOn, new->manager.traversal_on, NULL); } if (NE(matrix.even_row_background) || NE(matrix.odd_row_background)) redisplay = True; /* * Pass through primitive/manager resources to our children */ n = 0; if (NE(core.background_pixel)) { /* * Set all clip widgets to the new background (thanks Daiji) */ XtVaSetValues(ClipChild(new), XmNbackground, new->core.background_pixel, NULL); XtVaSetValues(LeftClip(new), XmNbackground, new->core.background_pixel, NULL); XtVaSetValues(RightClip(new), XmNbackground, new->core.background_pixel, NULL); XtVaSetValues(TopClip(new), XmNbackground, new->core.background_pixel, NULL); XtVaSetValues(BottomClip(new), XmNbackground, new->core.background_pixel, NULL); XtSetArg(wargs[n], XmNbackground, new->core.background_pixel); n++; } if (NE(manager.foreground)) { XtSetArg(wargs[n], XmNforeground, new->manager.foreground); n++; } if (NE(manager.bottom_shadow_color)) { XtSetArg(wargs[n], XmNbottomShadowColor, new->manager.bottom_shadow_color); n++; } if (NE(manager.bottom_shadow_pixmap)) { XtSetArg(wargs[n], XmNbottomShadowPixmap, new->manager.bottom_shadow_pixmap); n++; } if (NE(manager.highlight_color)) { XtSetArg(wargs[n], XmNhighlightColor, new->manager.highlight_color); n++; } if (NE(manager.highlight_pixmap)) { XtSetArg(wargs[n], XmNhighlightPixmap, new->manager.highlight_pixmap); n++; } if (NE(manager.top_shadow_color)) { XtSetArg(wargs[n], XmNtopShadowColor, new->manager.top_shadow_color); n++; } if (NE(manager.top_shadow_pixmap)) { XtSetArg(wargs[n], XmNtopShadowPixmap, new->manager.top_shadow_pixmap); n++; } if (n) { XtSetValues(VertScrollChild(new), wargs, n); XtSetValues(HorizScrollChild(new), wargs, n); XtSetValues(TextChild(new), wargs, n); } /* * Would really like to do this in the above, * but we need to override background_pixel. */ if (EQ(matrix.text_background) && (current->matrix.text_background == current->core.background_pixel)) new->matrix.text_background = new->core.background_pixel; if (NE(matrix.text_background) || NE(core.background_pixel)) { XtVaSetValues(TextChild(new), XmNbackground, new->matrix.text_background, NULL); if (XtIsManaged(TextChild(new))) redisplay = True; } /* * Get a new XFontStruct and copy the fontList if it changed * and pass it to the textField. * Reset the HSB increment. * redisplay and relayout will be set below. */ if (NE(matrix.font_list)) { XmFontListFree(current->matrix.font_list); xbaeNewFont(new); XtVaSetValues(TextChild(new), XmNfontList, new->matrix.font_list, NULL); XtVaSetValues(HorizScrollChild(new), XmNincrement, FONT_WIDTH(new), NULL); } if (NE(matrix.label_font_list)) { XmFontListFree(current->matrix.label_font_list); xbaeNewLabelFont(new); XtVaSetValues(HorizScrollChild(new), XmNincrement, FONT_WIDTH(new), NULL); } /* * Pass the cell resources on to the textField. * Both redisplay and relayout will be set below. * * If anything changed to affect cell total width or column positions, * recalc them */ if (new_cells || NE(matrix.fid) || NE(matrix.label_fid) || NE(matrix.cell_margin_width) || NE(matrix.cell_margin_height) || NE(matrix.cell_shadow_thickness) || NE(matrix.fixed_columns) || NE(matrix.trailing_fixed_columns) || NE(matrix.cell_highlight_thickness) || new_column_widths || NE(matrix.text_shadow_thickness)) { /* * Recalculate the margin height, based on the larger of the * label and general fonts. */ int marginHeight = new->matrix.cell_margin_height; /* by default */ if (LABEL_HEIGHT(new) > FONT_HEIGHT(new)) marginHeight = (int)(LABEL_HEIGHT(new) + (new->matrix.cell_margin_height * 2) - FONT_HEIGHT(new)) / 2; /* * Cancel the edit -> If I think of a better way of doing this * I'll do it, AL. */ (*((XbaeMatrixWidgetClass) XtClass(new))->matrix_class.cancel_edit) (new, True); XtVaSetValues( TextChild(new), XmNmarginWidth, new->matrix.cell_margin_width, XmNhighlightThickness, new->matrix.cell_highlight_thickness, XmNshadowThickness, new->matrix.text_shadow_thickness, XmNmarginHeight, marginHeight, NULL); xbaeGetCellTotalWidth(new); /* * Reset the HSB maximum. sliderSize will be reset later in Resize. */ XtVaSetValues(HorizScrollChild(new), XmNmaximum, NON_FIXED_TOTAL_WIDTH(new) ? NON_FIXED_TOTAL_WIDTH(new) : 1, XmNsliderSize, 1, NULL); /* * If the number of columns changed, we need to allocate a new array. */ if (NE(matrix.columns)) { xbaeFreeColumnPositions(current); new->matrix.column_positions = CreateColumnPositions(new); } /* * If anything but (trailing_)fixed_columns or the highlight color * changed, we need to recalc column positions. */ if (new_cells || NE(matrix.fid) || NE(matrix.label_fid) || NE(matrix.cell_margin_width) || NE(matrix.cell_margin_height) || NE(matrix.cell_shadow_thickness) || NE(matrix.cell_highlight_thickness) || new_column_widths || NE(matrix.text_shadow_thickness)) xbaeGetColumnPositions(new); /* * Recalculate the baselines */ new->matrix.text_baseline = XmTextGetBaseline(TextChild(new)) + new->matrix.cell_shadow_thickness /*+ new->matrix.text_shadow_thickness*/; /* * Adjust the label_baseline according to the larger of the two fonts */ if (LABEL_HEIGHT(new) == FONT_HEIGHT(new)) new->matrix.label_baseline = new->matrix.text_baseline; else { if (LABEL_HEIGHT(new) < FONT_HEIGHT(new)) marginHeight = (FONT_HEIGHT(new) + new->matrix.text_shadow_thickness * 2 + new->matrix.cell_margin_height * 2 - (int)LABEL_HEIGHT(new)) / 2; else marginHeight = new->matrix.cell_margin_height + new->matrix.text_shadow_thickness; new->matrix.label_baseline = marginHeight + new->matrix.cell_shadow_thickness - new->matrix.label_font_y; } /* JDS: The comment above this section says both redisplay and * relayout get set, but only relayout was being set. I noticed * this because the resizeColumns action was setting the * columnWidths, but the clip widget wasn't properly redrawing * its cells when they were resized. This was in conjunction with * calling clipRedisplay only when the matrix redisplayed instead * of also when it relayedout :) (see the comment below). * * However, I'm not sure what else this might impact. But, I'm in * favor of the change I made to only redisplay when the matrix * redisplays since that's more efficient, I think, and it eliminated * some ugly redraws that I at least encountered. So there :). */ redisplay = relayout = True; } /* * Install text_translations on textField */ if (NE(matrix.text_translations)) XtVaSetValues(TextChild(new), XmNtranslations, new->matrix.text_translations, NULL); /* * If row_label_width was set to 0, calculate it. * Otherwise if it was changed, set flags. */ if (new->matrix.row_label_width == 0 && new->matrix.row_labels) { new->matrix.row_label_width = xbaeMaxRowLabel(new); relayout = True; } else if (NE(matrix.row_label_width)) relayout = True; /* * Check whether the widget is sensitive has changed and set our GC's * appropriately */ if (XtIsSensitive((Widget)current) != XtIsSensitive((Widget)new)) { XGCValues values; int i; unsigned long valuemask = GCFillStyle; Display *dpy = XtDisplay(new); if (!XtIsSensitive((Widget)new)) { values.fill_style = FillStippled; /* * Change our drawing GC's to the stipple effect to indicate * the widget is insensitive and redraw */ XChangeGC(dpy, new->matrix.draw_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_clip_gc, valuemask, &values); XChangeGC(dpy, new->matrix.pixmap_gc, valuemask, &values); /* * Propogate the insensitive feel to our children */ for (i = 0; i < XbaeNumChildren; i++) XtSetSensitive(new->composite.children[i], False); } else { values.fill_style = FillSolid; XChangeGC(dpy, new->matrix.draw_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_gc, valuemask, &values); XChangeGC(dpy, new->matrix.label_clip_gc, valuemask, &values); XChangeGC(dpy, new->matrix.pixmap_gc, valuemask, &values); for (i = 0; i < XbaeNumChildren; i++) XtSetSensitive(new->composite.children[i], True); } redisplay = True; } /* * If our fill policy changed or our bottom attachment, * we must redisplay and relayout. */ if (NE(matrix.fill) || NE(matrix.trailing_attached_bottom)) { redisplay = True; relayout = True; } /* * If either of the scrollbar display policies changed, * we need to redisplay and relayout. */ if (NE(matrix.vsb_display_policy) || NE(matrix.hsb_display_policy)) relayout = True; /* * If the place of the scrollbars changes, we must redisplay */ if (NE(matrix.scrollbar_placement)) relayout = True; /* * Change created GCs if needed */ if (NE(manager.foreground)) { /* * We don't need to put the new foreground in draw_gc or * draw_clip_gc because they get a new foreground when they are used. */ XSetForeground(XtDisplay(new), new->matrix.cell_top_shadow_clip_gc, new->manager.foreground); XSetBackground(XtDisplay(new), new->matrix.cell_bottom_shadow_clip_gc, new->manager.foreground); redisplay = True; } if (NE(manager.top_shadow_color)) { XSetForeground(XtDisplay(new), new->matrix.cell_top_shadow_clip_gc, new->manager.top_shadow_color); XSetForeground(XtDisplay(new), new->matrix.resize_top_shadow_gc, new->manager.top_shadow_color); redisplay = True; } if (NE(manager.top_shadow_pixmap)) { XSetTile(XtDisplay(new), new->matrix.cell_top_shadow_clip_gc, new->manager.top_shadow_pixmap); XSetTile(XtDisplay(new), new->matrix.resize_top_shadow_gc, new->manager.top_shadow_pixmap); redisplay = True; } if (NE(manager.bottom_shadow_color)) { XSetForeground(XtDisplay(new), new->matrix.cell_bottom_shadow_clip_gc, new->manager.bottom_shadow_color); XSetForeground(XtDisplay(new), new->matrix.resize_bottom_shadow_gc, new->manager.bottom_shadow_color); redisplay = True; } if (NE(manager.bottom_shadow_pixmap)) { XSetTile(XtDisplay(new), new->matrix.cell_bottom_shadow_clip_gc, new->manager.bottom_shadow_pixmap); XSetTile(XtDisplay(new), new->matrix.resize_bottom_shadow_gc, new->manager.bottom_shadow_pixmap); redisplay = True; } if (NE(matrix.fid)) { XSetFont(XtDisplay(new), new->matrix.draw_gc, new->matrix.fid); redisplay = True; } if (NE(matrix.label_fid)) { XSetFont(XtDisplay(new), new->matrix.label_gc, new->matrix.label_fid); XSetFont(XtDisplay(new), new->matrix.label_clip_gc, new->matrix.label_fid); redisplay = True; } /* * See if any other resources changed which will require a relayout */ if (NE(matrix.space) || NE(matrix.cell_shadow_thickness) || NE(manager.shadow_thickness)) relayout = True; /* * If bold_labels or button labels changed, and we have labels, * we must redisplay */ if ((NE(matrix.bold_labels) || NE(matrix.button_labels)) && (new->matrix.row_labels || new->matrix.column_labels)) redisplay = True; /* * If showArrows is changed, redisplay to get rid of existing arrows */ if (NE(matrix.show_arrows)) redisplay = True; /* * Compute a new size if: * visible_rows or visible_columns changed. * user set our width or height to zero. */ if (NE(matrix.visible_rows) || NE(matrix.visible_columns) || request->core.height == 0 || request->core.width == 0) xbaeComputeSize(new, request->core.width == 0, request->core.height == 0); /* * If our size didn't change, but we need to layout, call Resize. * If our size did change, then Xt will call our Resize method for us. * If our size did change, but the new size is later refused, * then SetValuesAlmost will call Resize to layout. */ if (EQ(core.width) && EQ(core.height) && relayout) xbaeResize(new); /* * The user forced a new top_row or something changed to force * us to recheck the current top_row. */ if (NE(matrix.top_row) || do_top_row) { XmScrollBarCallbackStruct call_data; xbaeAdjustTopRow(new); call_data.value = VERT_ORIGIN(new); /* * Trick xbaeScrollVertCB() into believing it needs to scroll */ VERT_ORIGIN(new) = VERT_ORIGIN(current); xbaeScrollVertCB((Widget)VertScrollChild(new), NULL, &call_data); VERT_ORIGIN(new) = call_data.value; /* and reset VERT_ORIGIN */ XtVaSetValues(VertScrollChild(new), XmNvalue, VERT_ORIGIN(new), NULL); } if (NE(matrix.left_column) || do_left_column) { XmScrollBarCallbackStruct call_data; xbaeAdjustLeftColumn(new); call_data.value = HORIZ_ORIGIN(new); HORIZ_ORIGIN(new) = HORIZ_ORIGIN(current); xbaeScrollHorizCB((Widget)HorizScrollChild(new), NULL, &call_data); HORIZ_ORIGIN(new) = call_data.value; XtVaSetValues(HorizScrollChild(new), XmNvalue, HORIZ_ORIGIN(new), NULL); } /* * Force the Clip widget to redisplay. Note: this may generate an * expose event for the current size of the Clip widget, and the Clip * widget may be sized smaller in set_values_almost. The ClipRedisplay * function can handle this case. * * JDS: Don't need to force a redisplay on a relayout, since the Clip * widget's resize method (now non-NULL) will be called and Xt will * automatically do an expose after that occurs. Seems to work, anyways :). */ if (redisplay) XbaeMatrixRefresh((Widget)new); /* * We want to return True when we need to redisplay or relayout. */ return redisplay || relayout; #undef NE #undef EQ } /* ARGSUSED */ static void SetValuesAlmost(old, new, request, reply) XbaeMatrixWidget old; XbaeMatrixWidget new; XtWidgetGeometry *request; XtWidgetGeometry *reply; { /* * If XtGeometryAlmost, accept compromize - Resize will take care of it */ if (reply->request_mode) { *request = *reply; #if XtSpecificationRelease > 4 /* * In R5, XtSetValues changed so that when a widgets parent * returns XtGeometryAlmost, Xt will only call the widgets resize * method if the widgets size actually changed. It turns out that * some manager widgets (old Wcl XmpTable and 1.1.x XmForm) return * XtGeometryAlmost with a compromise size which is the widgets * original size (not much of a compromise)! This means as of R5, * Matrix's resize method won't get called in that case. * * So, for R5 we explicitly call our resize method here for the * case of XtGeometryAlmost where our size did not change. */ if ((reply->request_mode & CWWidth || reply->request_mode & CWHeight) && (old->core.width == new->core.width && old->core.height == new->core.height)) xbaeResize(new); #endif } /* * If XtGeometryNo, call Resize to relayout if it was a size change * that was denied. * Accept the original geometry. * (we need to call Resize even though the size * didn't change to force a relayout - set_values relies on this) */ else { if ((request->request_mode & CWWidth || request->request_mode & CWHeight)) xbaeResize(new); request->request_mode = 0; } } static void Destroy(mw) XbaeMatrixWidget mw; { #if XmVersion >= 1002 if (TraverseID) XtRemoveTimeOut(TraverseID); #endif XtReleaseGC((Widget) mw, mw->matrix.grid_line_gc); XFreeGC(XtDisplay(mw), mw->matrix.cell_grid_line_gc); XFreeGC(XtDisplay(mw), mw->matrix.label_gc); XFreeGC(XtDisplay(mw), mw->matrix.label_clip_gc); XFreeGC(XtDisplay(mw), mw->matrix.draw_gc); XFreeGC(XtDisplay(mw), mw->matrix.pixmap_gc); XFreeGC(XtDisplay(mw), mw->matrix.cell_top_shadow_clip_gc); XFreeGC(XtDisplay(mw), mw->matrix.cell_bottom_shadow_clip_gc); XtReleaseGC((Widget) mw, mw->matrix.resize_top_shadow_gc); XtReleaseGC((Widget) mw, mw->matrix.resize_bottom_shadow_gc); xbaeFreeCells(mw); #if CELL_WIDGETS xbaeFreeCellWidgets(mw); #endif xbaeFreeRowLabels(mw); xbaeFreeColumnLabels(mw); xbaeFreeColumnWidths(mw); xbaeFreeColumnMaxLengths(mw); xbaeFreeColumnPositions(mw); xbaeFreeColumnAlignments(mw); xbaeFreeColumnButtonLabels(mw); xbaeFreeRowButtonLabels(mw); xbaeFreeColumnLabelAlignments(mw); xbaeFreeCellUserData(mw); xbaeFreeRowUserData(mw); xbaeFreeColumnUserData(mw); xbaeFreeCellShadowTypes(mw); xbaeFreeRowShadowTypes(mw); xbaeFreeColumnShadowTypes(mw); xbaeFreeColors(mw); xbaeFreeBackgrounds(mw); xbaeFreeSelectedCells(mw); #if XmVersion >= 1002 xbaeFreeHighlightedCells(mw); #endif XmFontListFree(mw->matrix.font_list); XmFontListFree(mw->matrix.label_font_list); xbaeSmDestroyScrollMgr(mw->matrix.matrix_scroll_mgr); xbaeSmDestroyScrollMgr(mw->matrix.clip_scroll_mgr); } /* * Since we totally control our childrens geometry, allow anything. */ /* ARGSUSED */ static XtGeometryResult GeometryManager(w, desired, allowed) Widget w; XtWidgetGeometry *desired, *allowed; { #define Wants(flag) (desired->request_mode & flag) if (Wants(XtCWQueryOnly)) return (XtGeometryYes); if (Wants(CWWidth)) w->core.width = desired->width; if (Wants(CWHeight)) w->core.height = desired->height; if (Wants(CWX)) w->core.x = desired->x; if (Wants(CWY)) w->core.y = desired->y; if (Wants(CWBorderWidth)) w->core.border_width = desired->border_width; return (XtGeometryYes); #undef Wants } /* * We would prefer to be the size calculated in ComputeSize and saved in * desired_width/height */ static XtGeometryResult QueryGeometry(mw, proposed, desired) XbaeMatrixWidget mw; XtWidgetGeometry *proposed, *desired; { #define Set(bit) (proposed->request_mode & bit) desired->width = mw->matrix.desired_width; desired->height = mw->matrix.desired_height; desired->request_mode = CWWidth | CWHeight; if (Set(CWWidth) && proposed->width == desired->width && Set(CWHeight) && proposed->height == desired->height) return (XtGeometryYes); if (desired->width == mw->core.width && desired->height == mw->core.height) return (XtGeometryNo); return (XtGeometryAlmost); #undef Set } /* * This function is called from either the Clip focus CB or a timeout proc. * It is called as a result of the Clip getting the focus. We want to give * the focus to the textField if a cell is being edited. If no cells are * being edited, force an edit on the top left most visible cell. */ static void TraverseIn(mw) XbaeMatrixWidget mw; { /* * If the traversing flag is set, then Clip got the focus because * textField was trying to traverse out of mw. We'll help it along. * Sickening. */ if (mw->matrix.traversing != NOT_TRAVERSING) { XmProcessTraversal(ClipChild(mw), mw->matrix.traversing); return; } /* * If the textField is managed and not visible, scroll it onto the screen * and traverse to it. */ if (XtIsManaged(TextChild(mw))) { if (mw->matrix.scroll_select) xbaeMakeCellVisible(mw, mw->matrix.current_row, mw->matrix.current_column); XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT); } /* * Otherwise, no cell is being edited. Force an edit on the top-left * most visible cell. */ else { int column = xbaeXtoCol(mw, FIXED_COLUMN_WIDTH(mw) + HORIZ_ORIGIN(mw)); int row = VERT_ORIGIN(mw) + mw->matrix.fixed_rows; /* * Call the traverseCellCallback to allow the application to * perform custom traversal. */ if (mw->matrix.traverse_cell_callback) { XbaeMatrixTraverseCellCallbackStruct call_data; call_data.reason = XbaeTraverseCellReason; call_data.event = (XEvent *)NULL; call_data.row = 0; call_data.column = 0; call_data.next_row = row; call_data.next_column = column; call_data.fixed_rows = mw->matrix.fixed_rows; call_data.fixed_columns = mw->matrix.fixed_columns; call_data.trailing_fixed_rows = mw->matrix.trailing_fixed_rows; call_data.trailing_fixed_columns = mw->matrix.trailing_fixed_columns; call_data.num_rows = mw->matrix.rows; call_data.num_columns = mw->matrix.columns; call_data.param = NULL; call_data.qparam = NULLQUARK; XtCallCallbackList((Widget) mw, mw->matrix.traverse_cell_callback, (XtPointer) & call_data); row = call_data.next_row; column = call_data.next_column; } (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.edit_cell) (mw, NULL, row, column, NULL, 0); XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT); } } #if XmVersion >= 1002 /* * Under Motif 1.2, TraverseInCB can't call TraverseIn directly, so it * adds a zero length timeout and we call it from here. */ /* ARGSUSED */ static void TraverseInTimeOut(mw, timer) XtPointer mw; XtIntervalId *timer; { TraverseIn((XbaeMatrixWidget)mw); } #endif /* XmVersion >= 1002 */ /* * This is the Clip widgets focusCallback. We want to give the focus to * the textField if a cell is being edited. If no cells are being edited, * force an edit on the top left most visible cell. */ /* ARGSUSED */ static void TraverseInCB(w, mw, call_data) Widget w; XbaeMatrixWidget mw; XtPointer call_data; { #if XmVersion < 1002 TraverseIn(mw); #else /* * Under Motif 1.2, we can't call TraverseIn directly because it * calls XmProcessTraversal and recursive calls to XmProcessTraversal * are disallowed in 1.2 (we may be in this CB as a result of someone * calling XmProcessTraversal). So we add a zero length timeout * and call TraverseIn from there. */ TraverseID = XtAppAddTimeOut(XtWidgetToApplicationContext((Widget) w), 0L, TraverseInTimeOut, (XtPointer) mw); #endif } /* * Add rows/columns of cells when set_values changes our rows/columns */ static void ResizeCells(current, new) XbaeMatrixWidget current; XbaeMatrixWidget new; { int i, j; int safe_rows = 0; /* * If there is a draw cell callback, we don't need to allocate any * memory for the cells so get outta here. If there is a draw cell * callback, no memory should have been allocated when this point is * reached. */ if (!new->matrix.cells) return; if (new->matrix.rows == current->matrix.rows) safe_rows = new->matrix.rows; /* * Adding rows */ if (new->matrix.rows > current->matrix.rows) { /* * Realloc a larger array of row pointers */ new->matrix.cells = (String **) XtRealloc((char *) new->matrix.cells, new->matrix.rows * sizeof(String *)); /* * Malloc a new row array for each row. Initialize it with * NULL Strings. Use the new column size. */ for (i = current->matrix.rows; i < new->matrix.rows; i++) { new->matrix.cells[i] = (String *) XtMalloc(new->matrix.columns * sizeof(String)); for (j = 0; j < new->matrix.columns; j++) new->matrix.cells[i][j] = XtNewString(""); } safe_rows = current->matrix.rows; } /* * Deleting rows */ if (new->matrix.rows < current->matrix.rows) { /* * Free the cells in the rows being deleted and the rows themselves */ for (i = new->matrix.rows; i < current->matrix.rows; i++) { for (j = 0; j < current->matrix.columns; j++) XtFree((XtPointer) new->matrix.cells[i][j]); XtFree((XtPointer) new->matrix.cells[i]); } safe_rows = new->matrix.rows; } /* * Adding columns */ if (new->matrix.columns > current->matrix.columns) { /* * Realloc each row array. Do not touch any rows added/deleted above * (use safe_rows) */ for (i = 0; i < safe_rows; i++) { new->matrix.cells[i] = (String *) XtRealloc((char *) new->matrix.cells[i], new->matrix.columns * sizeof(String)); for (j = current->matrix.columns; j < new->matrix.columns; j++) new->matrix.cells[i][j] = XtNewString(""); } } /* * Deleting columns */ if (new->matrix.columns < current->matrix.columns) { /* * Free all the cells in the deleted columns. Do not touch any * rows added/deleted above (use safe_rows). * We don't bother to realloc each row, just leave some wasted space. * XXX is this a problem? */ for (i = 0; i < safe_rows; i++) for (j = new->matrix.columns; j < current->matrix.columns; j++) XtFree((XtPointer) new->matrix.cells[i][j]); } } /* * Add rows/columns of selected flags when set_values changes our rows/columns */ static void ResizeSelectedCells(current, new) XbaeMatrixWidget current; XbaeMatrixWidget new; { int i; int safe_rows = 0; /* * selectedCells is allocated when the first cell is selected. If it * is still NULL, no cells have been selected up to this point. */ if (!new->matrix.selected_cells) return; if (new->matrix.rows == current->matrix.rows) safe_rows = new->matrix.rows; /* * Adding rows */ if (new->matrix.rows > current->matrix.rows) { /* * Realloc a larger array of row pointers */ new->matrix.selected_cells = (Boolean **) XtRealloc((char *) new->matrix.selected_cells, new->matrix.rows * sizeof(Boolean *)); /* * Calloc a new row array for each row. Use the new column size. */ for (i = current->matrix.rows; i < new->matrix.rows; i++) new->matrix.selected_cells[i] = (Boolean *) XtCalloc(new->matrix.columns, sizeof(Boolean)); safe_rows = current->matrix.rows; } /* * Deleting rows */ if (new->matrix.rows < current->matrix.rows) { for (i = new->matrix.rows; i < current->matrix.rows; i++) XtFree((XtPointer) new->matrix.selected_cells[i]); safe_rows = new->matrix.rows; } /* * Adding columns */ if (new->matrix.columns > current->matrix.columns) { /* * Realloc each row array. Do not touch any rows added/deleted above * (use safe_rows) */ for (i = 0; i < safe_rows; i++) { int j; new->matrix.selected_cells[i] = (Boolean *) XtRealloc((char *) new->matrix.selected_cells[i], new->matrix.columns * sizeof(Boolean)); for (j = current->matrix.columns; j < new->matrix.columns; j++) new->matrix.selected_cells[i][j] = False; } } /* * Deleting columns * if (new->matrix.columns < current->matrix.columns) * We don't bother to realloc, just leave some wasted space. * XXX is this a problem? */ } #if XmVersion >= 1002 /* * Add rows/columns of highlighted flags when set_values changes our rows/columns */ static void ResizeHighlightedCells(current, new) XbaeMatrixWidget current; XbaeMatrixWidget new; { int i; int safe_rows = 0; if (!new->matrix.highlighted_cells) return; if (new->matrix.rows == current->matrix.rows) safe_rows = new->matrix.rows; /* * Adding rows */ if (new->matrix.rows > current->matrix.rows) { /* * Realloc a larger array of row pointers */ new->matrix.highlighted_cells = (unsigned char **) XtRealloc( (char *) new->matrix.highlighted_cells, new->matrix.rows * sizeof(unsigned char *)); /* * Calloc a new row array for each row. Use the new column size. */ for (i = current->matrix.rows; i < new->matrix.rows; i++) new->matrix.highlighted_cells[i] = (unsigned char *) XtCalloc(new->matrix.columns, sizeof(unsigned char)); safe_rows = current->matrix.rows; } /* * Deleting rows */ if (new->matrix.rows < current->matrix.rows) { for (i = new->matrix.rows; i < current->matrix.rows; i++) XtFree((XtPointer) new->matrix.highlighted_cells[i]); safe_rows = new->matrix.rows; } /* * Adding columns */ if (new->matrix.columns > current->matrix.columns) { /* * Realloc each row array. Do not touch any rows added/deleted above * (use safe_rows) */ for (i = 0; i < safe_rows; i++) { int j; new->matrix.highlighted_cells[i] = (unsigned char *) XtRealloc( (char *) new->matrix.highlighted_cells[i], new->matrix.columns * sizeof(unsigned char)); for (j = current->matrix.columns; j < new->matrix.columns; j++) new->matrix.highlighted_cells[i][j] = HighlightNone; } } /* * Deleting columns * if (new->matrix.columns < current->matrix.columns) * We don't bother to realloc, just leave some wasted space. * XXX is this a problem? */ } #endif /* * Add rows/columns of colors when set_values changes our rows/columns */ static void #if NeedFunctionPrototypes ResizeColors(XbaeMatrixWidget current, XbaeMatrixWidget new, Boolean bg) #else ResizeColors(current, new, bg) XbaeMatrixWidget current; XbaeMatrixWidget new; Boolean bg; #endif { int i, j; int safe_rows = 0; if (! new->matrix.rows) return; if (new->matrix.rows == current->matrix.rows) safe_rows = new->matrix.rows; /* * Adding rows */ if (new->matrix.rows > current->matrix.rows) { /* * Realloc a larger array of row pointers */ if (bg) { new->matrix.cell_background = (Pixel **) XtRealloc((char *) new->matrix.cell_background, new->matrix.rows * sizeof(Pixel *)); for (i = current->matrix.rows; i < new->matrix.rows; i++) { new->matrix.cell_background[i] = (Pixel *) XtMalloc(new->matrix.columns * sizeof(Pixel)); for (j = 0; j < new->matrix.columns; j++) new->matrix.cell_background[i][j] = new->core.background_pixel; } } else { new->matrix.colors = (Pixel **) XtRealloc((char *) new->matrix.colors, new->matrix.rows * sizeof(Pixel *)); for (i = current->matrix.rows; i < new->matrix.rows; i++) { new->matrix.colors[i] = (Pixel *) XtMalloc(new->matrix.columns * sizeof(Pixel)); for (j = 0; j < new->matrix.columns; j++) new->matrix.colors[i][j] = new->manager.foreground; } } /* * Malloc a new row array for each row. Initialize it with foreground. * Use the new column size. */ safe_rows = current->matrix.rows; } /* * Deleting rows */ if (new->matrix.rows < current->matrix.rows) { if (bg) for (i = new->matrix.rows; i < current->matrix.rows; i++) XtFree((XtPointer) new->matrix.cell_background[i]); else for (i = new->matrix.rows; i < current->matrix.rows; i++) XtFree((XtPointer) new->matrix.colors[i]); safe_rows = new->matrix.rows; } /* * Adding columns */ if (new->matrix.columns > current->matrix.columns) { /* * Realloc each row array. Do not touch any rows added/deleted above * (use safe_rows) */ if (bg) { for (i = 0; i < safe_rows; i++) { int k; new->matrix.cell_background[i] = (Pixel *) XtRealloc( (char *) new->matrix.cell_background[i], new->matrix.columns * sizeof(Pixel)); for (k = current->matrix.columns; k < new->matrix.columns; k++) new->matrix.cell_background[i][k] = new->core.background_pixel; } } else { for (i = 0; i < safe_rows; i++) { int k; new->matrix.colors[i] = (Pixel *) XtRealloc( (char *) new->matrix.colors[i], new->matrix.columns * sizeof(Pixel)); for (k = current->matrix.columns; k < new->matrix.columns; k++) new->matrix.colors[i][k] = new->manager.foreground; } } } /* * Deleting columns * if (new->matrix.columns < current->matrix.columns) * We don't bother to realloc, just leave some wasted space. * XXX is this a problem? AL: Probably! If you are deleting enough * columns, it would be nice to make the memory available again. * I'll get to it later. */ } grace-5.1.25/Xbae/Xbae/Draw.c0000644000076500001440000010077006766327621015255 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Draw.c,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ #ifdef HAVE_CONFIG_H #include #endif #include #include #if XmVersion > 1001 #include #endif #include #include #include #include #include static void xbaeDrawCellString P((XbaeMatrixWidget, int, int, int, int, String, Pixel, Pixel)); #if CELL_WIDGETS static void xbaeDrawCellWidget P((XbaeMatrixWidget, int, int, int, int, Widget, Pixel, Pixel)); #endif static void xbaeDrawCellPixmap P((XbaeMatrixWidget, int, int, int, int, Pixmap, Pixmap, int, int, Pixel, Pixel, int)); /* * Draw a fixed or non-fixed cell. The coordinates are calculated relative * to the correct window and pixmap is copied to that window. */ static void xbaeDrawCellPixmap(mw, row, column, x, y, pixmap, mask, width, height, bg, fg, depth) XbaeMatrixWidget mw; int row; int column; int x; int y; Pixmap pixmap; Pixmap mask; int width; int height; Pixel bg; Pixel fg; int depth; { int src_x = 0, src_y, dest_x, dest_y; int copy_width, copy_height; int cell_height = ROW_HEIGHT(mw); int cell_width = COLUMN_WIDTH(mw, column); Widget w; unsigned char alignment = mw->matrix.column_alignments ? mw->matrix.column_alignments[column] : XmALIGNMENT_BEGINNING; Display *display = XtDisplay(mw); GC gc; Window win = xbaeGetCellWindow(mw, &w, row, column); if (!win) return; /* * Convert the row/column to the coordinates relative to the correct * window */ dest_x = x + TEXT_WIDTH_OFFSET(mw); gc = mw->matrix.pixmap_gc; XSetForeground(display, gc, bg); #if XmVersion >= 1002 /* * If we are only changing the highlighting of a cell, we don't need * to do anything other than draw (or undraw) the highlight */ if (mw->matrix.highlighted_cells && mw->matrix.highlight_location != HighlightNone) { xbaeDrawCellHighlight(mw, win, gc, row, column, x, y, cell_width, cell_height, mw->matrix.highlight_location); return; } #endif XFillRectangle(display, win, gc, x, y, COLUMN_WIDTH(mw, column), ROW_HEIGHT(mw)); XSetForeground(display, gc, fg); XSetBackground(display, gc, bg); /* * Adjust the x and y drawing destinations as appropriate. First the * y value.... */ dest_y = y; if (height > cell_height) { /* Adjust the starting location in the src image */ src_y = (height - cell_height) / 2; copy_height = cell_height; } else { /* Adjust the destination point */ src_y = 0; dest_y += ((cell_height - height) / 2); copy_height = height; } /* * Adjust the x value, paying attention to the columnAlignment */ if (width > cell_width) copy_width = cell_width; else copy_width = width; switch (alignment) { case XmALIGNMENT_BEGINNING: src_x = 0; break; case XmALIGNMENT_CENTER: if (width > cell_width) src_x = (width - cell_width) / 2; else { src_x = 0; dest_x += ((cell_width - width) / 2); } break; case XmALIGNMENT_END: if (width > cell_width) src_x = width - cell_width; else { src_x = 0; dest_x = x + COLUMN_WIDTH(mw, column) - TEXT_WIDTH_OFFSET(mw) - width; } break; } /* * Draw the pixmap. Clip it, if necessary */ if (pixmap) { if (depth > 1) /* A pixmap using xpm */ { if (mask) { XSetClipMask(display, gc, mask); XSetClipOrigin(display, gc, dest_x - src_x, dest_y - src_y); } XCopyArea(display, pixmap, win, gc, src_x, src_y, copy_width, copy_height, dest_x, dest_y); if (mask) XSetClipMask(display, gc, None); } else /* A plain old bitmap */ XCopyPlane(display, pixmap, win, gc, src_x, src_y, copy_width, copy_height, dest_x, dest_y, 1L); } /* * If we need to fill the rest of the space, do so */ if (IN_GRID_COLUMN_MODE(mw) && NEED_VERT_FILL(mw) && (row == (mw->matrix.rows - 1))) { int ax, ay; int fill_width, fill_height; /* * Need to check the actual window we are drawing on to ensure * the correct visual */ xbaeCalcVertFill(mw, win, x, y, row, column, &ax, &ay, &fill_width, &fill_height); XFillRectangle(XtDisplay(mw), XtWindow(mw), gc, ax, ay, fill_width, fill_height); } else if (IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw) && (column == (mw->matrix.columns - 1))) { int ax, ay; int fill_width, fill_height; xbaeCalcHorizFill(mw, win, x, y, row, column, &ax, &ay, &fill_width, &fill_height); XFillRectangle(XtDisplay(mw), XtWindow(mw), gc, ax, ay, fill_width, fill_height); } #if XmVersion >= 1002 if (mw->matrix.highlighted_cells && mw->matrix.highlighted_cells[row][column]) { xbaeDrawCellHighlight(mw, win, gc, row, column, x, y, cell_width, cell_height, HIGHLIGHTING_SOMETHING); } #endif xbaeDrawCellShadow(mw, win, row, column, x, y, cell_width, cell_height, False, False, False); } /* * Draw a fixed or non-fixed cell. The coordinates are calculated relative * to the correct window and the cell is drawn in that window. */ static void xbaeDrawCellString(mw, row, column, x, y, string, bg, fg) XbaeMatrixWidget mw; int row, column; String string; Pixel bg, fg; { GC gc; Widget w; Window win = xbaeGetCellWindow(mw, &w, row, column); Dimension column_width = COLUMN_WIDTH(mw, column); Dimension row_height = ROW_HEIGHT(mw); Dimension width = column_width; Dimension height = row_height; Boolean selected = mw->matrix.selected_cells ? mw->matrix.selected_cells[row][column] : False; String str = string; if (!win) return; #if 0 /* * Probably not needed - time will tell! If anybody gets a segv on * ignoring this code, be sure to let me know - AL 11/96 * * Make sure y coordinate is valid */ if ((win == XtWindow(mw)) && ((y > (CLIP_VERT_VISIBLE_SPACE(mw) + ROW_LABEL_OFFSET(mw) - 1)) || (y < ROW_LABEL_OFFSET(mw)))) return; #endif gc = mw->matrix.draw_gc; XSetForeground(XtDisplay(mw), gc, bg); /* * If we are only changing the highlighting of a cell, we don't need * to do anything other than draw (or undraw) the highlight */ if (mw->matrix.highlighted_cells && mw->matrix.highlight_location != HighlightNone) { xbaeDrawCellHighlight(mw, win, gc, row, column, x, y, width, height, mw->matrix.highlight_location); return; } /* * Fill the cell's background if it can be done * without duplicating work below */ if ((XtWindow(mw) != win) || (!(IN_GRID_COLUMN_MODE(mw) && NEED_VERT_FILL(mw) && ((mw->matrix.rows - 1) == row)) && !(IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw) && ((mw->matrix.columns - 1) == column)))) XFillRectangle(XtDisplay(mw), win, gc, x, y, column_width, row_height); /* * If we need to fill the rest of the space, do so */ if (IN_GRID_COLUMN_MODE(mw) && NEED_VERT_FILL(mw) && ((mw->matrix.rows - 1) == row)) { int ax, ay; int fill_width, fill_height; /* * Need to check the actual window we are drawing on to ensure * the correct visual */ xbaeCalcVertFill(mw, win, x, y, row, column, &ax, &ay, &fill_width, &fill_height); XFillRectangle(XtDisplay(mw), XtWindow(mw), gc, ax, ay, fill_width, fill_height); } else if (IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw) && (column == (mw->matrix.columns - 1))) { int ax, ay; int fill_width, fill_height; xbaeCalcHorizFill(mw, win, x, y, row, column, &ax, &ay, &fill_width, &fill_height); XFillRectangle(XtDisplay(mw), XtWindow(mw), gc, ax, ay, fill_width, fill_height); } /* * Draw the string in the cell. */ xbaeDrawString(mw, win, gc, str, strlen(str), x + TEXT_X_OFFSET(mw), y + TEXT_Y_OFFSET(mw), mw->matrix.column_widths[column], mw->matrix.column_alignments ? mw->matrix.column_alignments[column] : XmALIGNMENT_BEGINNING, selected, False, False, False, fg); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells && mw->matrix.highlighted_cells[row][column]) { xbaeDrawCellHighlight(mw, win, gc, row, column, x, y, width, height, HIGHLIGHTING_SOMETHING); } #endif xbaeDrawCellShadow(mw, win, row, column, x, y, COLUMN_WIDTH(mw, column), ROW_HEIGHT(mw), False, False, False); } #if CELL_WIDGETS /* * Draw a user defined widget in the cell */ static void xbaeDrawCellWidget(mw, row, column, x, y, widget, bg, fg) XbaeMatrixWidget mw; int row, column; int x, y; Widget widget; Pixel bg, fg; { GC gc; Widget w; Window win = xbaeGetCellWindow(mw, &w, row, column); if (!win) return; gc = mw->matrix.draw_gc; XSetForeground(XtDisplay(mw), gc, bg); XFillRectangle(XtDisplay(mw), win, gc, x, y, COLUMN_WIDTH(mw, column), ROW_HEIGHT(mw)); /* * Draw the widget in the cell. */ XtMoveWidget(widget, x + mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness, y + mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); xbaeDrawCellShadow(mw, win, row, column, x, y, COLUMN_WIDTH(mw, column), ROW_HEIGHT(mw), False, clipped, False); } #endif /* * Width in pixels of a character in a given font */ #define charWidth(fs,c) ((fs)->per_char ? \ (fs)->per_char[((c) < (fs)->min_char_or_byte2 ? \ (fs)->default_char : \ (c) - \ (fs)->min_char_or_byte2)].width : \ (fs)->min_bounds.width) /* * Draw a string with specified attributes. We want to avoid having to * use a GC clip_mask, so we clip by characters. This complicates the code. */ void #if NeedFunctionPrototypes xbaeDrawString(XbaeMatrixWidget mw, Window win, GC gc, String string, int length, int x, int y, int maxlen, unsigned char alignment, Boolean highlight, Boolean bold, Boolean rowLabel, Boolean colLabel, Pixel color) #else xbaeDrawString(mw, win, gc, string, length, x, y, maxlen, alignment, highlight, bold, rowLabel, colLabel, color) XbaeMatrixWidget mw; Window win; GC gc; String string; int length; int x; int y; int maxlen; unsigned char alignment; Boolean highlight; Boolean bold; Boolean rowLabel; Boolean colLabel; Pixel color; #endif { int start, width, maxwidth; XFontStruct *font_struct; XFontSet font_set; Boolean choppedStart = False; Boolean choppedEnd = False; XRectangle *ink_array = NULL; XRectangle *logical_array = NULL; int num_chars; XRectangle overall_logical; if (rowLabel || colLabel) { font_struct = mw->matrix.label_font_struct; font_set = mw->matrix.label_font_set; } else { font_struct = mw->matrix.font_struct; font_set = mw->matrix.font_set; } /* * Initialize starting character in string */ start = 0; if (!rowLabel) maxwidth = maxlen * FONT_WIDTH(mw); else maxwidth = maxlen * LABEL_WIDTH(mw); if (font_set) { ink_array = (XRectangle*)XtMalloc(length * sizeof(XRectangle)); logical_array = (XRectangle*)XtMalloc(length * sizeof(XRectangle)); XmbTextPerCharExtents(font_set, string, length, ink_array, logical_array, length, &num_chars, NULL, &overall_logical); /* * If the width of the string is greater than the width of this cell, * we need to clip. We don't want to use the server to clip because * it is slow, so we truncate characters if we exceed a cells pixel * width. */ if (overall_logical.width > maxwidth) { switch (alignment) { case XmALIGNMENT_CENTER: { int startx; int endx; int i; int end; /* * If we are going to draw arrows at both ends, allow for them. */ if (mw->matrix.show_arrows) { maxwidth -= 2 * mw->matrix.font_width; choppedStart = True; choppedEnd = True; } /* * Find limits of cell relative to the origin of the string. */ startx = overall_logical.x + overall_logical.width / 2 - maxwidth / 2; endx = startx + maxwidth - 1; /* * Find the first character which fits into the cell. */ for (i = 0; i < num_chars && logical_array[i].x < startx; ++i) { int cl = mblen(string + start, length); start += cl; length -= cl; } /* * Find the last character which fits into the cell. * At this point length represents the number of bytes * between the end of the cell and the end of the full * string. Note that the scan continues from above. */ for (end = start; i < num_chars && (logical_array[i].x + logical_array[i].width) < endx; ++i) { int cl = mblen(string + end, length); end += cl; length -= cl; } /* * Now reset length so that it represents the number of bytes * in the string. */ length = end - start; break; } case XmALIGNMENT_END: { int startx; int i; /* * We are going to an draw arrow at the end, allow for it. */ if (mw->matrix.show_arrows) { maxwidth -= mw->matrix.font_width; choppedEnd = True; } /* * Find limits of cell relative to the origin of the string. */ startx = overall_logical.x + overall_logical.width - maxwidth; /* * Find the first character which fits into the cell. */ for (i = 0; i < num_chars && logical_array[i].x < startx; ++i) { int cl = mblen(string + start, length); start += cl; length -= cl; } break; } case XmALIGNMENT_BEGINNING: default: { int endx; int i; int end; /* * We are going to an draw arrow at the start, allow for it. */ if (mw->matrix.show_arrows) { maxwidth -= mw->matrix.font_width; choppedStart = True; } /* * Find limits of cell relative to the origin of the string. */ endx = overall_logical.x + maxwidth - 1; /* * Find the last character which fits into the cell. * At this point length represents the number of bytes * between the end of the cell and the end of the full * string. */ for (i = 0, end = start; i < num_chars && (logical_array[i].x + logical_array[i].width) < endx; ++i) { int cl = mblen(string + end, length); end += cl; length -= cl; choppedEnd = True; } /* * Now reset length so that it represents the number of bytes * in the string. */ length = end - start; break; } } /* * Having truncated string recalculate extents to find origin */ XmbTextPerCharExtents(font_set, string, length, ink_array, logical_array, length, &num_chars, NULL, &overall_logical); } /* * We fit inside our cell, so just compute the x of the start of * our string */ else { switch (alignment) { case XmALIGNMENT_CENTER: x += maxwidth / 2 - overall_logical.width / 2; break; case XmALIGNMENT_END: x += maxwidth - overall_logical.width; break; case XmALIGNMENT_BEGINNING: default: /* * Leave x alone */ break; } } /* * Don't worry, XSetForeground is smart about avoiding unnecessary * protocol requests. */ XSetForeground(XtDisplay(mw), gc, color); if (mw->matrix.show_arrows && choppedStart) { XPoint points[ 3 ]; points[ 0 ].x = points[ 1 ].x = x + mw->matrix.font_width; points[ 0 ].y = y + mw->matrix.font_y; points[ 1 ].y = y + mw->matrix.font_y + mw->matrix.font_height; points[ 2 ].x = x; points[ 2 ].y = y + mw->matrix.font_y + mw->matrix.font_height / 2; XFillPolygon(XtDisplay(mw), win, gc, points, 3, Convex, CoordModeOrigin); /* Offset the start point so as to not draw on the triangle */ x += FONT_WIDTH(mw); } if (mw->matrix.show_arrows && choppedEnd) { XPoint points[ 3 ]; points[ 0 ].x = points[ 1 ].x = x + overall_logical.width; points[ 0 ].y = y + mw->matrix.font_y; points[ 1 ].y = y + mw->matrix.font_y + mw->matrix.font_height; points[ 2 ].x = x + overall_logical.width + mw->matrix.font_width; points[ 2 ].y = y + mw->matrix.font_y + mw->matrix.font_height / 2; XFillPolygon(XtDisplay(mw), win, gc, points, 3, Convex, CoordModeOrigin); } /* * Adjust x for origin of string. */ x -= overall_logical.x; /* * Now draw the string at x starting at char 'start' and of * length 'length' */ XmbDrawString(XtDisplay(mw), win, font_set, gc, x, y, &string[start], length); /* * If bold is on, draw the string again offset by 1 pixel (overstrike) */ if (bold) XmbDrawString(XtDisplay(mw), win, font_set, gc, x - 1, y, &string[start], length); if (ink_array) XtFree((char*)ink_array); if (logical_array) XtFree((char*)logical_array); } else { width = XTextWidth(font_struct, string, length); /* * If the width of the string is greater than the width of this cell, * we need to clip. We don't want to use the server to clip because * it is slow, so we truncate characters if we exceed a cells pixel * width. */ if (width > maxwidth) { switch (alignment) { case XmALIGNMENT_CENTER: { int startx = x; int endx = x + maxwidth - 1; int newendx; /* * Figure out our x for the centered string. Then loop * and chop characters off the front until we are within * the cell. * * Adjust x, the starting character and the length of the * string for each char. */ x += maxwidth / 2 - width / 2; while (x < startx) { int cw = charWidth(font_struct, (unsigned char)string[start]); x += cw; width -= cw; length--; start++; choppedStart = True; } /* * Now figure out the end x of the string. Then loop and chop * characters off the end until we are within the cell. */ newendx = x + width - 1; while (newendx > endx && *(string + start)) { int cw = charWidth(font_struct, (unsigned char)string[start]); newendx -= cw; width -= cw; length--; choppedEnd = True; } break; } case XmALIGNMENT_END: { /* * Figure out our x for the right justified string. * Then loop and chop characters off the front until we fit. * Adjust x for each char lopped off. Also adjust the starting * character and length of the string for each char. */ x += maxwidth - width; while (width > maxwidth) { int cw = charWidth(font_struct, (unsigned char)string[start]); width -= cw; x += cw; length--; start++; choppedStart = True; } break; } case XmALIGNMENT_BEGINNING: default: /* * Leave x alone, but chop characters off the end until we fit */ while (width > maxwidth) { width -= charWidth(font_struct, (unsigned char)string[length - 1]); length--; choppedEnd = True; } break; } } /* * We fit inside our cell, so just compute the x of the start of * our string */ else { switch (alignment) { case XmALIGNMENT_CENTER: x += maxwidth / 2 - width / 2; break; case XmALIGNMENT_END: x += maxwidth - width; break; case XmALIGNMENT_BEGINNING: default: /* * Leave x alone */ break; } } /* * Don't worry, XSetForeground is smart about avoiding unnecessary * protocol requests. */ XSetForeground(XtDisplay(mw), gc, color); if (mw->matrix.show_arrows && choppedEnd) { XPoint points[3]; points[0].x = points[1].x = x + width - mw->matrix.font_width; points[0].y = y + mw->matrix.font_y; points[1].y = y + mw->matrix.font_y + mw->matrix.font_height; points[2].x = x + width; points[2].y = y + mw->matrix.font_y + mw->matrix.font_height / 2; XFillPolygon(XtDisplay(mw), win, gc, points, 3, Convex, CoordModeOrigin); /* Reduce the length to allow for our foreign character */ length--; } if (mw->matrix.show_arrows && choppedStart) { XPoint points[3]; points[0].x = points[1].x = x + mw->matrix.font_width; points[0].y = y + mw->matrix.font_y; points[1].y = y + mw->matrix.font_y + mw->matrix.font_height; points[2].x = x; points[2].y = y + mw->matrix.font_y + mw->matrix.font_height / 2; XFillPolygon(XtDisplay(mw), win, gc, points, 3, Convex, CoordModeOrigin); /* Offset the start point so as to not draw on the triangle */ x += mw->matrix.font_width; start++; length--; } /* * Now draw the string at x starting at char 'start' and of length * 'length' */ #ifdef NEED_WCHAR if (TWO_BYTE_FONT(mw)) XDrawString16(XtDisplay(mw), win, gc, x, y, &string[start], length); else #endif XDrawString(XtDisplay(mw), win, gc, x, y, &string[start], length); /* * If bold is on, draw the string again offset by 1 pixel (overstrike) */ if (bold) #ifdef NEED_WCHAR if (TWO_BYTE_FONT(mw)) XDrawString16(XtDisplay(mw), win, gc, x - 1, y, &string[start], length); else #endif XDrawString(XtDisplay(mw), win, gc, x - 1, y, &string[start], length); } } void xbaeComputeCellColors(mw, row, column, fg, bg) XbaeMatrixWidget mw; int row, column; Pixel *fg, *bg; { Boolean alt = mw->matrix.alt_row_count ? (row / mw->matrix.alt_row_count) % 2 : False; /* * Compute the background and foreground colours of the cell */ if (mw->matrix.selected_cells && mw->matrix.selected_cells[row][column]) if (mw->matrix.reverse_select) if (mw->matrix.colors) *bg = mw->matrix.colors[row][column]; else *bg = mw->manager.foreground; else *bg = mw->matrix.selected_background; else if (mw->matrix.cell_background && mw->matrix.cell_background[row][column] != mw->core.background_pixel) *bg = mw->matrix.cell_background[row][column]; else { if (alt) *bg = mw->matrix.odd_row_background; else *bg = mw->matrix.even_row_background; } if (mw->matrix.selected_cells && mw->matrix.selected_cells[row][column]) if (mw->matrix.reverse_select) if (mw->matrix.cell_background) *fg = mw->matrix.cell_background[row][column]; else *fg = mw->core.background_pixel; else *fg = mw->matrix.selected_foreground; else if (mw->matrix.colors) *fg = mw->matrix.colors[row][column]; else *fg = mw->manager.foreground; } void xbaeDrawCell(mw, row, column) XbaeMatrixWidget mw; int row, column; { Pixel bg, fg; String string; int x, y; if (mw->matrix.disable_redisplay || mw->matrix.rows == 0 || mw->matrix.columns == 0) return; /* * Convert the row/column to the coordinates relative to the correct * window */ xbaeRowColToXY(mw, row, column, &x, &y); xbaeComputeCellColors(mw, row, column, &fg, &bg); #if CELL_WIDGETS if (mw->matrix.cell_widgets[row][column]) xbaeDrawCellWidget(mw, row, column, x, y, mw->matrix.cell_widgets[row][column], bg, fg); else #endif if (!mw->matrix.draw_cell_callback) { if (row < mw->matrix.rows && column < mw->matrix.columns) { string = mw->matrix.cells ? mw->matrix.cells[row][column] : ""; xbaeDrawCellString(mw, row, column, x, y, string, bg, fg); } } else { Pixmap pixmap; Pixmap mask; XbaeCellType type; int width, height; int depth; if (row < mw->matrix.rows && column < mw->matrix.columns) { type = xbaeGetDrawCellValue(mw, row, column, &string, &pixmap, &mask, &width, &height, &bg, &fg, &depth); if (type == XbaeString) xbaeDrawCellString(mw, row, column, x, y, string, bg, fg); else if (type == XbaePixmap) xbaeDrawCellPixmap(mw, row, column, x, y, pixmap, mask, width, height, bg, fg, depth); } } } XbaeCellType xbaeGetDrawCellValue(mw, row, column, string, pixmap, mask, width, height, bg, fg, depth) XbaeMatrixWidget mw; int row; int column; String *string; Pixmap *pixmap; Pixmap *mask; int *width, *height; Pixel *bg, *fg; int *depth; { XbaeMatrixDrawCellCallbackStruct call_data; call_data.reason = XbaeDrawCellReason; call_data.event = (XEvent *)NULL; call_data.row = row; call_data.column = column; call_data.width = COLUMN_WIDTH(mw, column) - TEXT_WIDTH_OFFSET(mw) * 2; call_data.height = ROW_HEIGHT(mw) - TEXT_HEIGHT_OFFSET(mw) * 2; call_data.type = XbaeString; call_data.string = ""; call_data.pixmap = (Pixmap)NULL; call_data.mask = (Pixmap)NULL; call_data.foreground = *fg; call_data.background = *bg; call_data.depth = 0; XtCallCallbackList((Widget)mw, mw->matrix.draw_cell_callback, (XtPointer) &call_data); *pixmap = call_data.pixmap; *mask = call_data.mask; *string = call_data.string ? call_data.string : ""; /* Handle NULLs */ if (mw->matrix.reverse_select && mw->matrix.selected_cells && mw->matrix.selected_cells[row][column]) { /* * if colours were set by the draw cell callback, handle reverse * selection */ if (*bg != call_data.background) { if (*fg != call_data.foreground) *bg = call_data.foreground; *fg = call_data.background; } else if (*fg != call_data.foreground) *bg = call_data.foreground; } else { *fg = call_data.foreground; *bg = call_data.background; } *width = call_data.width; *height = call_data.height; *depth = call_data.depth; if (call_data.type == XbaePixmap) { if (*mask == XmUNSPECIFIED_PIXMAP || *mask == BadPixmap) call_data.mask = 0; if (*pixmap == XmUNSPECIFIED_PIXMAP || *pixmap == BadPixmap) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget)mw), "drawCellCallback", "Pixmap", "XbaeMatrix", "XbaeMatrix: Bad pixmap passed from drawCellCallback", NULL, 0); call_data.type = XbaeString; *string = ""; } else if (!*depth) { /* * If we know the depth, width and height don't do a round * trip to find the * geometry */ Window root_return; int x_return, y_return; unsigned int width_return, height_return; unsigned int border_width_return; unsigned int depth_return; if (XGetGeometry(XtDisplay(mw), *pixmap, &root_return, &x_return, &y_return, &width_return, &height_return, &border_width_return, &depth_return)) { *width = width_return; *height = height_return; *depth = depth_return; } } } return (call_data.type); } /* * Draw the column label for the specified column. Handles labels in * fixed and non-fixed columns. */ void #if NeedFunctionPrototypes xbaeDrawColumnLabel(XbaeMatrixWidget mw, int column, Boolean pressed) #else xbaeDrawColumnLabel(mw, column, pressed) XbaeMatrixWidget mw; int column; Boolean pressed; #endif { String label; int labelX, labelY; int buttonX; int i; GC gc; Window win = XtWindow(mw); Boolean clipped = (column >= (int)mw->matrix.fixed_columns && column < TRAILING_HORIZ_ORIGIN(mw)); Boolean button = mw->matrix.button_labels || (mw->matrix.column_button_labels && mw->matrix.column_button_labels[column]); if (mw->matrix.column_labels[column][0] == '\0' && !button) return; /* * If the column label is in a fixed column, we don't need to account * for the horiz_origin */ if (column < (int)mw->matrix.fixed_columns) { labelX = COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column) + TEXT_X_OFFSET(mw); buttonX = COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column); } else if (column >= TRAILING_HORIZ_ORIGIN(mw)) { labelX = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, TRAILING_HORIZ_ORIGIN(mw)) + TEXT_X_OFFSET(mw); buttonX = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, TRAILING_HORIZ_ORIGIN(mw)); } else { labelX = COLUMN_LABEL_OFFSET(mw) + (COLUMN_POSITION(mw, column) - HORIZ_ORIGIN(mw)) + TEXT_X_OFFSET(mw); buttonX = COLUMN_LABEL_OFFSET(mw) + (COLUMN_POSITION(mw, column) - HORIZ_ORIGIN(mw)); } /* * Set our y to the baseline of the first line in this column */ labelY = -mw->matrix.label_font_y + mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness + mw->matrix.cell_margin_height + mw->matrix.text_shadow_thickness + (mw->matrix.column_label_maxlines - mw->matrix.column_label_lines[column].lines) * LABEL_HEIGHT(mw) + HORIZ_SB_OFFSET(mw); if (clipped) gc = mw->matrix.label_clip_gc; else gc = mw->matrix.label_gc; if (button) { XSetForeground(XtDisplay(mw), gc, mw->matrix.button_label_background); XFillRectangle(XtDisplay(mw), win, gc, buttonX, HORIZ_SB_OFFSET(mw), COLUMN_WIDTH(mw, column), COLUMN_LABEL_HEIGHT(mw)); } XSetForeground(XtDisplay(mw), gc, mw->matrix.column_label_color); XSetBackground(XtDisplay(mw), gc, mw->matrix.button_label_background); label = mw->matrix.column_labels[column]; if (label[0] != '\0') for (i = 0; i < mw->matrix.column_label_lines[column].lines; i++) { xbaeDrawString(mw, XtWindow(mw), gc, label, mw->matrix.column_label_lines[column].lengths[i], labelX, labelY, mw->matrix.column_widths[column], mw->matrix.column_label_alignments ? mw->matrix.column_label_alignments[column] : XmALIGNMENT_BEGINNING, False, mw->matrix.bold_labels, False, True, mw->matrix.column_label_color); labelY += LABEL_HEIGHT(mw); label += mw->matrix.column_label_lines[column].lengths[i] + 1; } if (button) xbaeDrawCellShadow(mw, XtWindow(mw), -1, column, buttonX, HORIZ_SB_OFFSET(mw), COLUMN_WIDTH(mw, column), COLUMN_LABEL_HEIGHT(mw), True, clipped, pressed); } /* * Draw the row label for the specified row. Handles labels in fixed and * non-fixed rows. */ void #if NeedFunctionPrototypes xbaeDrawRowLabel(XbaeMatrixWidget mw, int row, Boolean pressed) #else xbaeDrawRowLabel(mw, row, pressed) XbaeMatrixWidget mw; int row; Boolean pressed; #endif { int y; GC gc; Window win = XtWindow(mw); Boolean clipped = (row >= (int)mw->matrix.fixed_rows && row < TRAILING_VERT_ORIGIN(mw)); Boolean button = mw->matrix.button_labels || (mw->matrix.row_button_labels && mw->matrix.row_button_labels[row]); if (mw->matrix.row_labels[row][0] == '\0' && !button) return; /* * If the row label is in a fixed row we don't need to account * for the vert_origin */ if (row < (int)mw->matrix.fixed_rows) y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * row + TEXT_Y_OFFSET(mw); else if (row >= TRAILING_VERT_ORIGIN(mw)) y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * (row - TRAILING_VERT_ORIGIN(mw)) + TEXT_Y_OFFSET(mw); else y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * (row - VERT_ORIGIN(mw)) + LABEL_Y_OFFSET(mw) - mw->matrix.first_row_offset; if (clipped) gc = mw->matrix.label_clip_gc; else gc = mw->matrix.label_gc; if (button) { XSetForeground(XtDisplay(mw), gc, mw->matrix.button_label_background); XFillRectangle(XtDisplay(mw), win, gc, VERT_SB_OFFSET(mw), y - TEXT_Y_OFFSET(mw), ROW_LABEL_WIDTH(mw), ROW_HEIGHT(mw)); } XSetForeground(XtDisplay(mw), gc, mw->matrix.row_label_color); XSetBackground(XtDisplay(mw), gc, mw->matrix.button_label_background); if (mw->matrix.row_labels[row][0] != '\0') xbaeDrawString(mw, win, gc, mw->matrix.row_labels[row], strlen(mw->matrix.row_labels[row]), TEXT_X_OFFSET(mw) + VERT_SB_OFFSET(mw), y, mw->matrix.row_label_width, mw->matrix.row_label_alignment, False, mw->matrix.bold_labels, True, False, mw->matrix.row_label_color); if (button) xbaeDrawCellShadow(mw, win, row, -1, VERT_SB_OFFSET(mw), y - TEXT_Y_OFFSET(mw), ROW_LABEL_WIDTH(mw), ROW_HEIGHT(mw), True, clipped, pressed); } grace-5.1.25/Xbae/Xbae/Shadow.c0000644000076500001440000005132106766327622015603 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Shadow.c,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Shadow.c created by Andrew Lister (30 October, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #if XmVersion > 1001 #include #endif #include #include #include #include static void DrawRowShadow P((XbaeMatrixWidget, Window, int, int, int, int, int, int, GC, GC)); static void DrawColumnShadow P((XbaeMatrixWidget, Window, int, int, int, int, int, int, GC, GC)); static void DrawRowHighlight P((XbaeMatrixWidget, Window, GC, int, int, int, int, int, int, int)); static void DrawColumnHighlight P((XbaeMatrixWidget, Window, GC, int, int, int, int, int, int, int)); void #if NeedFunctionPrototypes xbaeDrawCellShadow(XbaeMatrixWidget mw, Window win, int row, int column, int x, int y, int width, int height, Boolean label, Boolean clipped, Boolean pressed) #else xbaeDrawCellShadow(mw, win, row, column, x, y, width, height, label, clipped, pressed) XbaeMatrixWidget mw; Window win; int row; int column; int x; int y; int width; int height; Boolean label; Boolean clipped; Boolean pressed; #endif { unsigned char grid_type; unsigned char shadow; if ((mw->matrix.cell_shadow_thickness == 0) && (!IN_GRID_ROW_MODE(mw)) && (!IN_GRID_COLUMN_MODE(mw))) return; /* * Surround the cell with a shadow. */ if(label) { shadow = pressed ? XmSHADOW_IN : XmSHADOW_OUT; grid_type = XmGRID_CELL_SHADOW; } else { shadow = mw->matrix.cell_shadow_types ? mw->matrix.cell_shadow_types[row][column] : mw->matrix.cell_shadow_type; grid_type = mw->matrix.grid_type; } if (clipped) { switch (grid_type) { case XmGRID_CELL_SHADOW: DRAW_SHADOW(XtDisplay(mw), win, mw->matrix.cell_top_shadow_clip_gc, mw->matrix.cell_bottom_shadow_clip_gc, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; /* Deprecated types. To be removed in next version. */ case XmGRID_SHADOW_OUT: DRAW_SHADOW(XtDisplay(mw), win, mw->matrix.cell_bottom_shadow_clip_gc, mw->matrix.cell_top_shadow_clip_gc, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; case XmGRID_SHADOW_IN: DRAW_SHADOW(XtDisplay(mw), win, mw->matrix.cell_top_shadow_clip_gc, mw->matrix.cell_bottom_shadow_clip_gc, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; } } else { switch (grid_type) { case XmGRID_NONE: break; case XmGRID_ROW_SHADOW: DrawRowShadow(mw, win, row, column, x, y, width, height, mw->manager.top_shadow_GC, mw->manager.bottom_shadow_GC); break; case XmGRID_ROW_LINE: DrawRowShadow(mw, win, row, column, x, y, width, height, mw->matrix.grid_line_gc, mw->matrix.grid_line_gc); break; case XmGRID_COLUMN_SHADOW: DrawColumnShadow(mw, win, row, column, x, y, width, height, mw->manager.top_shadow_GC, mw->manager.bottom_shadow_GC); break; case XmGRID_COLUMN_LINE: DrawColumnShadow(mw, win, row, column, x, y, width, height, mw->matrix.grid_line_gc, mw->matrix.grid_line_gc); break; case XmGRID_CELL_LINE: DRAW_SHADOW(XtDisplay(mw), win, mw->matrix.grid_line_gc, mw->matrix.grid_line_gc, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; case XmGRID_CELL_SHADOW: DRAW_SHADOW(XtDisplay(mw), win, mw->manager.top_shadow_GC, mw->manager.bottom_shadow_GC, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; /* Deprecated types. To be removed in next version. */ case XmGRID_LINE: DRAW_SHADOW(XtDisplay(mw), win, mw->matrix.grid_line_gc, mw->matrix.grid_line_gc, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; case XmGRID_SHADOW_OUT: DRAW_SHADOW(XtDisplay(mw), win, mw->manager.bottom_shadow_GC, mw->manager.top_shadow_GC, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; case XmGRID_SHADOW_IN: DRAW_SHADOW(XtDisplay(mw), win, mw->manager.top_shadow_GC, mw->manager.bottom_shadow_GC, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); break; } } } #if XmVersion >= 1002 void xbaeDrawCellHighlight(mw, win, gc, row, column, x, y, width, height, reason) XbaeMatrixWidget mw; Window win; GC gc; int row; int column; int x; int y; int width; int height; int reason; { int thick; if (!mw->matrix.highlighted_cells) /* Just a precaution */ return; if (!mw->matrix.highlighted_cells[row][column]) return; /* Nothing to do! */ if (reason & HIGHLIGHTING_SOMETHING) gc = mw->manager.highlight_GC; if (IN_GRID_ROW_MODE(mw) && (reason & HighlightRow || reason & UnhighlightRow) && mw->matrix.highlighted_cells[row][column] == HighlightRow) DrawRowHighlight(mw, win, gc, row, column, x, y, width, height, reason); else if (IN_GRID_COLUMN_MODE(mw) && (reason & HighlightColumn || reason & UnhighlightColumn) && mw->matrix.highlighted_cells[row][column] == HighlightColumn) DrawColumnHighlight(mw, win, gc, row, column, x, y, width, height, reason); else { thick = (2 * mw->matrix.cell_shadow_thickness); DRAW_HIGHLIGHT(XtDisplay(mw), win, gc, x + mw->matrix.cell_shadow_thickness, y + mw->matrix.cell_shadow_thickness, width - thick, height - thick, mw->matrix.cell_highlight_thickness, LineSolid); } } static void DrawRowHighlight(mw, win, gc, row, column, x, y, width, height, reason) XbaeMatrixWidget mw; Window win; GC gc; int row; int column; int x; int y; int width; int height; int reason; { XRectangle rect[1]; rect[0].x = 0; rect[0].y = 0; rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), gc, x, y, rect, 1, Unsorted); y += mw->matrix.cell_shadow_thickness; height -= 2 * mw->matrix.cell_shadow_thickness; if (column != mw->matrix.columns - 1) { if (column != 0) x -= (mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); else x += mw->matrix.cell_shadow_thickness; DRAW_HIGHLIGHT(XtDisplay(mw), win, gc, x, y, mw->core.width, height, mw->matrix.cell_highlight_thickness, LineSolid); } else { if (NEED_HORIZ_FILL(mw)) width = mw->core.width; x -= (mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); width += mw->matrix.cell_highlight_thickness; DRAW_HIGHLIGHT(XtDisplay(mw), win, gc, x, y, width, height, mw->matrix.cell_highlight_thickness, LineSolid); if (NEED_HORIZ_FILL(mw)) { int ax, ay; xbaeCalcHorizFill(mw, win, x, y, row, column, &ax, &ay, &width, &height); rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), gc, ax, ay, rect, 1, Unsorted); height -= mw->matrix.cell_shadow_thickness * 2; ax -= mw->matrix.cell_highlight_thickness; width += (mw->matrix.cell_highlight_thickness - mw->matrix.cell_shadow_thickness); DRAW_HIGHLIGHT(XtDisplay(mw), XtWindow(mw), gc, ax, ay, width, height, mw->matrix.cell_highlight_thickness, LineSolid); } } XSetClipMask(XtDisplay(mw), gc, None); } static void DrawColumnHighlight(mw, win, gc, row, column, x, y, width, height, reason) XbaeMatrixWidget mw; Window win; GC gc; int row; int column; int x; int y; int width; int height; int reason; { XRectangle rect[1]; int vert_dead_space_height = VERT_DEAD_SPACE_HEIGHT(mw); int clip_vert_visible_space = CLIP_VERT_VISIBLE_SPACE(mw); int vert_sb_height = VERT_SB_HEIGHT(mw); Boolean need_vert_dead_space_fill = NEED_VERT_DEAD_SPACE_FILL(mw); /* This adjustment takes care of that little open area * between the last nonfixed row and the first trailing * fixed row when the matrix is smaller than its max height */ if ((vert_dead_space_height == 0) && ((TRAILING_VERT_ORIGIN(mw) - 1) == row) && (vert_sb_height < clip_vert_visible_space)) height += (mw->matrix.cell_shadow_thickness + clip_vert_visible_space - vert_sb_height); rect[0].x = 0; rect[0].y = 0; rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), gc, x, y, rect, 1, Unsorted); x += mw->matrix.cell_shadow_thickness; width -= 2 * mw->matrix.cell_shadow_thickness; if (row != mw->matrix.rows - 1) { if (row != 0) y -= (mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); else y += mw->matrix.cell_shadow_thickness; DRAW_HIGHLIGHT(XtDisplay(mw), win, gc, x, y, width, mw->core.height, mw->matrix.cell_highlight_thickness, LineSolid); } else { if (NEED_VERT_FILL(mw) && (! HAS_ATTACHED_TRAILING_ROWS(mw))) height = mw->core.height; else height += mw->matrix.cell_highlight_thickness; y -= (mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); DRAW_HIGHLIGHT(XtDisplay(mw), win, gc, x, y, width, height, mw->matrix.cell_highlight_thickness, LineSolid); if (NEED_VERT_FILL(mw) || need_vert_dead_space_fill) { int ax, ay; xbaeCalcVertFill(mw, win, x, y, row, column, &ax, &ay, &width, &height); /* If we're filling the dead space, then we only use * the width and ax from above call. */ if (need_vert_dead_space_fill) { ay = UNATTACHED_TRAILING_ROWS_OFFSET(mw); height = mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness + vert_dead_space_height; } rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), gc, ax, ay, rect, 1, Unsorted); width -= mw->matrix.cell_shadow_thickness * 2; ay -= mw->matrix.cell_highlight_thickness; height += (mw->matrix.cell_highlight_thickness - mw->matrix.cell_shadow_thickness); /* Make sure height extends past bottom clip */ if (need_vert_dead_space_fill && IS_FIXED_COLUMN(mw, column)) height += (mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); DRAW_HIGHLIGHT(XtDisplay(mw), XtWindow(mw), gc, ax, ay, width, height, mw->matrix.cell_highlight_thickness, LineSolid); } } XSetClipMask(XtDisplay(mw), gc, None); } #endif static void DrawRowShadow(mw, win, row, column, x, y, width, height, topGC, bottomGC) XbaeMatrixWidget mw; Window win; int row; int column; int x; int y; int width; int height; GC topGC; GC bottomGC; { XRectangle rect[1]; unsigned char shadow = mw->matrix.row_shadow_types ? mw->matrix.row_shadow_types[row] : mw->matrix.cell_shadow_type; rect[0].x = 0; rect[0].y = 0; rect[0].width = width; rect[0].height = height; /* * Set up the clipping rectangle to be only over the current cell */ XSetClipRectangles(XtDisplay(mw), topGC, x, y, rect, 1, Unsorted); if (topGC != bottomGC) XSetClipRectangles(XtDisplay(mw), bottomGC, x, y, rect, 1, Unsorted); /* * Now, convert our coordinates to what we need to draw */ if (column != mw->matrix.columns - 1) { /* * If column is 0, then we need to show the left hand side of the * box, otherwise just draw the edges outside the clipping rectangle */ width = mw->core.width; if (column != 0) x -= mw->matrix.cell_shadow_thickness; DRAW_SHADOW(XtDisplay(mw), win, topGC, bottomGC, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); } else { if (NEED_HORIZ_FILL(mw)) /* * If we are going to fill, the right hand side of the shadow * shouldn't be drawn - we'll do it later! */ width = mw->core.width; else width += mw->matrix.cell_shadow_thickness; DRAW_SHADOW(XtDisplay(mw), win, topGC, bottomGC, mw->matrix.cell_shadow_thickness, x - mw->matrix.cell_shadow_thickness, y, width, height, shadow); if (NEED_HORIZ_FILL(mw)) { /* * The filled part is drawn on the matrix's window so we need to * do a bit of extra work. */ int ax, ay; xbaeCalcHorizFill(mw, win, x, y, row, column, &ax, &ay, &width, &height); rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), topGC, ax, ay, rect, 1, Unsorted); if (topGC != bottomGC) XSetClipRectangles(XtDisplay(mw), bottomGC, ax, ay, rect, 1, Unsorted); /* * Final tweaks. Note that these _cannot_ be part of the calc * horiz fill logic, since that is used to set the clipping * rectangle */ if ((win == XtWindow(ClipChild(mw))) && (height != ROW_HEIGHT(mw))) { if (height == (ClipChild(mw)->core.height + ClipChild(mw)->core.y - ay)) height += mw->matrix.cell_shadow_thickness; if (ay == ClipChild(mw)->core.y) { height += mw->matrix.cell_shadow_thickness; ay -= mw->matrix.cell_shadow_thickness; } } /* Do same check for RightClip. Now, why this is even * necessary when we're drawing on the Matrix's window, * I dunno. This one is only necessary when * we've got trailing fixed columns. */ if (mw->matrix.trailing_fixed_columns && (win == XtWindow(RightClip(mw))) && (height != ROW_HEIGHT(mw))) { if (height == (RightClip(mw)->core.height + RightClip(mw)->core.y - ay)) height += mw->matrix.cell_shadow_thickness; if (ay == RightClip(mw)->core.y) { height += mw->matrix.cell_shadow_thickness; ay -= mw->matrix.cell_shadow_thickness; } } /* * Draw the remaining shadow directly onto the matrix window */ DRAW_SHADOW(XtDisplay(mw), XtWindow(mw), topGC, bottomGC, mw->matrix.cell_shadow_thickness, ax - mw->matrix.cell_shadow_thickness, ay, width + mw->matrix.cell_shadow_thickness, height, shadow); } } /* * Reset our GC's clip mask */ XSetClipMask(XtDisplay(mw), topGC, None); if (topGC != bottomGC) XSetClipMask(XtDisplay(mw), bottomGC, None); } static void DrawColumnShadow(mw, win, row, column, x, y, width, height, topGC, bottomGC) XbaeMatrixWidget mw; Window win; int row; int column; int x; int y; int width; int height; GC topGC; GC bottomGC; { XRectangle rect[1]; unsigned char shadow = mw->matrix.column_shadow_types ? mw->matrix.column_shadow_types[column] : mw->matrix.cell_shadow_type; int vert_dead_space_height = VERT_DEAD_SPACE_HEIGHT(mw); int clip_vert_visible_space = CLIP_VERT_VISIBLE_SPACE(mw); int vert_sb_height = VERT_SB_HEIGHT(mw); Boolean need_vert_dead_space_fill = NEED_VERT_DEAD_SPACE_FILL(mw); /* This adjustment takes care of that little open area * between the last nonfixed row and the first trailing * fixed row when the matrix is smaller than its max height */ if ((vert_dead_space_height == 0) && ((TRAILING_VERT_ORIGIN(mw) - 1) == row) && (vert_sb_height < clip_vert_visible_space)) height += (mw->matrix.cell_shadow_thickness + clip_vert_visible_space - vert_sb_height); rect[0].x = 0; rect[0].y = 0; rect[0].width = width; rect[0].height = height; /* * Set up the clipping rectangle to be only over the current cell */ XSetClipRectangles(XtDisplay(mw), topGC, x, y, rect, 1, Unsorted); if (topGC != bottomGC) XSetClipRectangles(XtDisplay(mw), bottomGC, x, y, rect, 1, Unsorted); /* * Now, convert our coordinates to what we need to draw */ if (row != mw->matrix.rows - 1) { /* * If column is 0, then we need to show the left hand side of the * box, otherwise just draw the edges outside the clipping rectangle */ height = mw->core.height; if (row != 0) y -= mw->matrix.cell_shadow_thickness; DRAW_SHADOW(XtDisplay(mw), win, topGC, bottomGC, mw->matrix.cell_shadow_thickness, x, y, width, height, shadow); } else { if (NEED_VERT_FILL(mw) && (! HAS_ATTACHED_TRAILING_ROWS(mw))) /* * If we are going to fill, the bottom of the shadow * shouldn't be drawn */ height = mw->core.height; else height += mw->matrix.cell_shadow_thickness; DRAW_SHADOW(XtDisplay(mw), win, topGC, bottomGC, mw->matrix.cell_shadow_thickness, x, y - mw->matrix.cell_shadow_thickness, width, height, shadow); /* * The filled part is drawn on the matrix's window so we need to * do a bit of extra work. We may need to fill either the entire * bottom portion of the matrix, or the dead space, that is, the * space between the last nonfixed row and the first trailing * fixed row. We only need to do the latter case when we've got * bottom attached trailing fixed rows with vertical dead space * (vertical dead space only occurs when the matrix is bigger * than its maximum height, i.e., we're filling). */ if (NEED_VERT_FILL(mw) || need_vert_dead_space_fill) { int ax, ay; xbaeCalcVertFill(mw, win, x, y, row, column, &ax, &ay, &width, &height); /* If we're filling the dead space, then we only use * the width and ax from above call. */ if (need_vert_dead_space_fill) { ay = UNATTACHED_TRAILING_ROWS_OFFSET(mw); height = mw->matrix.cell_shadow_thickness + vert_dead_space_height; } rect[0].width = width; rect[0].height = height; XSetClipRectangles(XtDisplay(mw), topGC, ax, ay, rect, 1, Unsorted); if (topGC != bottomGC) XSetClipRectangles(XtDisplay(mw), bottomGC, ax, ay, rect, 1, Unsorted); /* * Final tweaks. Note that these _cannot_ be part of the * calc vert fill logic, since that is used to set the * clipping rectangle */ if ((win == XtWindow(ClipChild(mw))) && (width != COLUMN_WIDTH(mw, column))) { /* Make sure we don't draw a shadow along the matrix's * shadow by extending our width past the edge of the * clipping rectangle */ if (width == (ClipChild(mw)->core.width + ClipChild(mw)->core.x - ax)) width += mw->matrix.cell_shadow_thickness; /* * Make sure the shadow doesn't get drawn along the left * side by moving the x pos outside the clipping * rectangle. */ if (ax == ClipChild(mw)->core.x) { width += mw->matrix.cell_shadow_thickness; ax -= mw->matrix.cell_shadow_thickness; } } /* * Do same check for BottomClip. Now, why this is even * necessary when we're drawing on the Matrix's window, * I dunno. This one is only necessary when we've got * trailing fixed rows. */ if (mw->matrix.trailing_fixed_rows && (win == XtWindow(BottomClip(mw))) && (width != COLUMN_WIDTH(mw, column))) { if (width == (BottomClip(mw)->core.width + BottomClip(mw)->core.x - ax)) width += mw->matrix.cell_shadow_thickness; if (ax == BottomClip(mw)->core.x) { width += mw->matrix.cell_shadow_thickness; ax -= mw->matrix.cell_shadow_thickness; } } /* Make sure height extends past bottom clip */ if (need_vert_dead_space_fill && IS_FIXED_COLUMN(mw, column)) height += mw->matrix.cell_shadow_thickness; /* * Draw the remaining shadow directly onto the matrix window */ DRAW_SHADOW(XtDisplay(mw), XtWindow(mw), topGC, bottomGC, mw->matrix.cell_shadow_thickness, ax, ay - mw->matrix.cell_shadow_thickness, width, height + mw->matrix.cell_shadow_thickness, shadow); } } /* * Reset our GC's clip mask */ XSetClipMask(XtDisplay(mw), topGC, None); if (topGC != bottomGC) XSetClipMask(XtDisplay(mw), bottomGC, None); } grace-5.1.25/Xbae/Xbae/ClipP.h0000644000076500001440000000501306766327621015366 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * ClipWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: ClipP.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * ClipP.h - Private definitions for Clip widget */ #ifndef _Xbae_ClipP_h #define _Xbae_ClipP_h #if XmVersion == 1001 #include #else #include #endif #include /* * New type for class method */ #if defined (__cplusplus) || defined(c_plusplus) extern "C" { #endif typedef void (*XbaeClipRedrawProc) P((Widget)); #if defined (__cplusplus) || defined(c_plusplus) } #endif /* * New fields for the Clip widget class record */ typedef struct { XbaeClipRedrawProc redraw; XtPointer extension; } XbaeClipClassPart; /* * Full class record declaration */ typedef struct _XbaeClipClassRec { CoreClassPart core_class; XmPrimitiveClassPart primitive_class; XbaeClipClassPart clip_class; } XbaeClipClassRec; extern XbaeClipClassRec xbaeClipClassRec; /* * New inheritance constant */ #define XbaeInheritRedraw ((XbaeClipRedrawProc) _XtInherit) /* * New fields for the Clip widget record */ typedef struct { /* resources */ XtExposeProc expose_proc; /* function to call on expose */ XtCallbackList focus_callback; /* callbacks for when we get focus */ } XbaeClipPart; /* * Full instance record declaration */ typedef struct _XbaeClipRec { CorePart core; XmPrimitivePart primitive; XbaeClipPart clip; } XbaeClipRec; #endif /* _Xbae_ClipP_h */ grace-5.1.25/Xbae/Xbae/Makefile0000644000076500001440000000132006766327621015643 0ustar fnevgenyusers##################################################### # Makefile for Xbae widget (bundled with Grace) # ##################################################### # You should not change anything here. # ##################################################### TOP=../.. include $(TOP)/Make.conf .SUFFIXES : .c $(O) CFLAGS=$(CFLAGS0) -I$(TOP) -I. $(XBAE_INC) $(CPPFLAGS) $(GUI_FLAGS) \ -DHAVE_CONFIG_H -DDRAW_RESIZE_SHADOW LIB=libXbae.a all : $(LIB) include Make.common $(LIB) : $(OBJS) $(AR) cr $(LIB) $(OBJS) $(RANLIB) $(LIB) install : $(LIB) tests : dummy links : dummy clean : $(RM) $(LIB) $(OBJS) distclean : $(RM) $(LIB) $(OBJS) *.orig devclean : $(RM) $(LIB) $(OBJS) *.orig dummy : grace-5.1.25/Xbae/Xbae/Create.c0000644000076500001440000010013110103515733015531 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Create.c,v 1.1.2.3 2004/08/02 19:54:03 fnevgeny Exp $ */ /* * Create.c created by Andrew Lister (28 Jan, 1996) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include static Pixmap createInsensitivePixmap P((XbaeMatrixWidget mw)); void xbaeCopyBackground(widget, offset, value) Widget widget; int offset; XrmValue *value; { value->addr = (XtPointer)&(widget->core.background_pixel); } void xbaeCopyForeground(widget, offset, value) Widget widget; int offset; XrmValue *value; { value->addr = (XtPointer)&(((XmManagerWidget)widget)->manager.foreground); } void xbaeCopyDoubleClick(widget, offset, value) Widget widget; int offset; XrmValue *value; { static int interval; interval = XtGetMultiClickTime(XtDisplay(widget)); value->addr = (XtPointer)&interval; } void xbaeCopyCells(mw) XbaeMatrixWidget mw; { String **copy = NULL; int i, j; Boolean empty_row; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ copy = (String **) XtMalloc(mw->matrix.rows * sizeof(String *)); /* * Malloc an array of Strings for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) copy[i] = (String *) XtMalloc(mw->matrix.columns * sizeof(String)); /* * Create a bunch of "" cells if cells was NULL */ if (!mw->matrix.cells) { for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) copy[i][j] = XtNewString(""); } /* * Otherwise copy the table passed in */ else { for (i = 0, empty_row = False; i < mw->matrix.rows; i++) { if (!empty_row && !mw->matrix.cells[i]) empty_row = True; for (j = 0; j < mw->matrix.columns; j++) { if (empty_row || !mw->matrix.cells[i][j]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget)mw), "copyCells", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in cell table", NULL, 0); for (;j < mw->matrix.columns; j++) copy[i][j] = XtNewString(""); } else copy[i][j] = XtNewString(mw->matrix.cells[i][j]); } } } } mw->matrix.cells = copy; } #if CELL_WIDGETS void xbaeCopyCellWidgets(mw) XbaeMatrixWidget mw; { Widget **copy = NULL; int i, j; /* * Malloc an array of row pointers */ if (mw->matrix.rows && mw->matrix.columns) { copy = (Widget **) XtCalloc((Cardinal)mw->matrix.rows, sizeof(Widget *)); for (i = 0; i < mw->matrix.rows; i++) { copy[i] = (Widget *) XtCalloc((Cardinal)mw->matrix.columns, sizeof(Widget)); if (mw->matrix.cell_widgets) for (j = 0; j < mw->matrix.columns; j++) if (mw->matrix.cell_widgets[i][j]) copy[i][j] = mw->matrix.cell_widgets[i][j]; } } mw->matrix.cell_widgets = copy; } #endif void xbaeCopyCellShadowTypes(mw) XbaeMatrixWidget mw; { unsigned char **copy = NULL; int i, j; if (mw->matrix.rows && mw->matrix.columns) { copy = (unsigned char **) XtMalloc(mw->matrix.rows * sizeof(unsigned char*)); for (i = 0; i < mw->matrix.rows; i++) copy[i] = (unsigned char*) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) { if (!mw->matrix.cell_shadow_types[i][j]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "xbaeCopyCellShadowTypes", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in cellShadowTypes array", NULL, 0); copy[i][j] = XmSHADOW_OUT; } else copy[i][j] = mw->matrix.cell_shadow_types[i][j]; } } mw->matrix.cell_shadow_types = copy; } void xbaeCopyRowShadowTypes(mw) XbaeMatrixWidget mw; { unsigned char *copy = NULL; int i; if (mw->matrix.rows) { copy = (unsigned char *) XtMalloc(mw->matrix.rows * sizeof(unsigned char)); for (i = 0; i < mw->matrix.rows; i++) if (!mw->matrix.row_shadow_types[i]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "xbaeCopyRowShadowTypes", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in rowShadowTypes array", NULL, 0); copy[i] = XmSHADOW_OUT; } else copy[i] = mw->matrix.row_shadow_types[i]; } mw->matrix.row_shadow_types = copy; } void xbaeCopyColumnShadowTypes(mw) XbaeMatrixWidget mw; { unsigned char *copy = NULL; int i; if (mw->matrix.columns) { copy = (unsigned char *) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); for (i = 0; i < mw->matrix.columns; i++) if (!mw->matrix.column_shadow_types[i]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "xbaeCopyColumnShadowTypes", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in columnShadowTypes array", NULL, 0); copy[i] = XmSHADOW_OUT; } else copy[i] = mw->matrix.column_shadow_types[i]; } mw->matrix.column_shadow_types = copy; } void xbaeCopyCellUserData(mw) XbaeMatrixWidget mw; { XtPointer **copy = NULL; int i, j; if (mw->matrix.rows && mw->matrix.columns) { copy = (XtPointer **) XtMalloc(mw->matrix.rows * sizeof(XtPointer*)); for (i = 0; i < mw->matrix.rows; i++) copy[i] = (XtPointer*) XtMalloc(mw->matrix.columns * sizeof(XtPointer)); for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) copy[i][j] = mw->matrix.cell_user_data[i][j]; } mw->matrix.cell_user_data = copy; } void xbaeCopyRowUserData(mw) XbaeMatrixWidget mw; { XtPointer *copy = NULL; int i; if (mw->matrix.rows) { copy = (XtPointer *) XtMalloc(mw->matrix.rows * sizeof(XtPointer)); for (i = 0; i < mw->matrix.rows; i++) copy[i] = mw->matrix.row_user_data[i]; } mw->matrix.row_user_data = copy; } void xbaeCopyColumnUserData(mw) XbaeMatrixWidget mw; { XtPointer *copy = NULL; int i; if (mw->matrix.columns) { copy = (XtPointer *) XtMalloc(mw->matrix.columns * sizeof(XtPointer)); for (i = 0; i < mw->matrix.columns; i++) copy[i] = mw->matrix.column_user_data[i]; } mw->matrix.column_user_data = copy; } void xbaeCopyRowLabels(mw) XbaeMatrixWidget mw; { String *copy = NULL; int i; Boolean empty_label; if (mw->matrix.rows) { copy = (String *) XtMalloc(mw->matrix.rows * sizeof(String)); for (i = 0, empty_label = False; i < mw->matrix.rows; i++) if (empty_label || !mw->matrix.row_labels[i]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyRowLabels", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in rowLabels array", NULL, 0); copy[i] = XtNewString(""); empty_label = True; } else copy[i] = XtNewString(mw->matrix.row_labels[i]); } mw->matrix.row_labels = copy; } void xbaeCopyColumnLabels(mw) XbaeMatrixWidget mw; { String *copy = NULL; int i; Boolean empty_column; if (mw->matrix.columns) { copy = (String *) XtMalloc(mw->matrix.columns * sizeof(String)); mw->matrix.column_label_lines = (ColumnLabelLines) XtMalloc(mw->matrix.columns * sizeof(ColumnLabelLinesRec)); for (i = 0, empty_column = False; i < mw->matrix.columns; i++) if (empty_column || !mw->matrix.column_labels[i]) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyColumnLabels", "badValue", "XbaeMatrix", "XbaeMatrix: NULL entry found in columnLabels array", NULL, 0); copy[i] = XtNewString(""); empty_column = True; xbaeParseColumnLabel( copy[i], &mw->matrix.column_label_lines[i]); } else { copy[i] = XtNewString(mw->matrix.column_labels[i]); xbaeParseColumnLabel(mw->matrix.column_labels[i], &mw->matrix.column_label_lines[i]); } /* * Determine max number of lines in column labels */ mw->matrix.column_label_maxlines = mw->matrix.column_label_lines[0].lines; for (i = 1; i < mw->matrix.columns; i++) if (mw->matrix.column_label_lines[i].lines > mw->matrix.column_label_maxlines) mw->matrix.column_label_maxlines = mw->matrix.column_label_lines[i].lines; } mw->matrix.column_labels = copy; } void xbaeCopyColumnWidths(mw) XbaeMatrixWidget mw; { short *copy = NULL; int i; Boolean bad = False; if (mw->matrix.columns) { copy = (short *) XtMalloc(mw->matrix.columns * sizeof(short)); for (i = 0; i < mw->matrix.columns; i++) { if (!bad && mw->matrix.column_widths[i] == BAD_WIDTH) { bad = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyColumnWidths", "tooShort", "XbaeMatrix", "XbaeMatrix: Column widths array is too short", NULL, 0); copy[i] = 1; } else if (bad) copy[i] = 1; else copy[i] = mw->matrix.column_widths[i]; } } mw->matrix.column_widths = copy; } void xbaeCopyColumnMaxLengths(mw) XbaeMatrixWidget mw; { int *copy = NULL; int i; Boolean bad = False; if (mw->matrix.columns) { copy = (int *) XtMalloc(mw->matrix.columns * sizeof(int)); for (i = 0; i < mw->matrix.columns; i++) { if (!bad && mw->matrix.column_max_lengths[i] == BAD_MAXLENGTH) { bad = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyColumnMaxLengths", "tooShort", "XbaeMatrix", "XbaeMatrix: Column max lengths array is too short", NULL, 0); copy[i] = 1; } else if (bad) copy[i] = 1; else copy[i] = mw->matrix.column_max_lengths[i]; } } mw->matrix.column_max_lengths = copy; } void xbaeCopyColumnAlignments(mw) XbaeMatrixWidget mw; { unsigned char *copy = NULL; int i; Boolean bad = False; if (mw->matrix.columns) { copy = (unsigned char *) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); for (i = 0; i < mw->matrix.columns; i++) { if (!bad && mw->matrix.column_alignments[i] == BAD_ALIGNMENT) { bad = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyColumnAlignments", "tooShort", "XbaeMatrix", "XbaeMatrix: Column alignments array is too short", NULL, 0); copy[i] = XmALIGNMENT_BEGINNING; } else if (bad) copy[i] = XmALIGNMENT_BEGINNING; else copy[i] = mw->matrix.column_alignments[i]; } } mw->matrix.column_alignments = copy; } void xbaeCopyColumnButtonLabels(mw) XbaeMatrixWidget mw; { Boolean *copy = NULL; int i; if (mw->matrix.columns) { copy = (Boolean *) XtMalloc(mw->matrix.columns * sizeof(Boolean)); for (i = 0; i < mw->matrix.columns; i++) { copy[i] = mw->matrix.column_button_labels[i]; } } mw->matrix.column_button_labels = copy; } void xbaeCopyRowButtonLabels(mw) XbaeMatrixWidget mw; { Boolean *copy = NULL; int i; if (mw->matrix.rows) { copy = (Boolean *) XtMalloc(mw->matrix.rows * sizeof(Boolean)); for (i = 0; i < mw->matrix.rows; i++) { copy[i] = mw->matrix.row_button_labels[i]; } } mw->matrix.row_button_labels = copy; } void xbaeCopyColumnLabelAlignments(mw) XbaeMatrixWidget mw; { unsigned char *copy = NULL; int i; Boolean bad = False; if (mw->matrix.columns) { copy = (unsigned char *) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); for (i = 0; i < mw->matrix.columns; i++) { if (!bad && mw->matrix.column_label_alignments[i] == BAD_ALIGNMENT) { bad = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "copyColumnLabelAlignments", "tooShort", "XbaeMatrix", "XbaeMatrix: Column label alignments array is too short", NULL, 0); copy[i] = XmALIGNMENT_BEGINNING; } else if (bad) copy[i] = XmALIGNMENT_BEGINNING; else copy[i] = mw->matrix.column_label_alignments[i]; } } mw->matrix.column_label_alignments = copy; } void xbaeCopyColors(mw) XbaeMatrixWidget mw; { Pixel **copy = NULL; int i, j; Boolean badrow = False; Boolean badcol; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ copy = (Pixel **) XtMalloc(mw->matrix.rows * sizeof(Pixel *)); /* * Malloc an array of Pixels for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) copy[i] = (Pixel *) XtMalloc(mw->matrix.columns * sizeof(Pixel)); if (!mw->matrix.colors) { for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) copy[i][j] = mw->manager.foreground; } else for (i = 0; i < mw->matrix.rows; i++) { if (!badrow && !mw->matrix.colors[i]) { badrow = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget)mw), "copyCellColors", "tooShort", "XbaeMatrix", "XbaeMatrix: Cell ColorPixelTable is too short", NULL, 0); } badcol = badrow; for (j = 0; j < mw->matrix.columns; j++) { if (badcol || mw->matrix.colors[i][j] == BAD_PIXEL) { badcol = True; if (j > 0) copy[i][j] = copy[i][j-1] ; else if (i > 0) copy[i][j] = copy[i-1][j] ; else copy[i][j] = mw->manager.foreground; } else { copy[i][j] = mw->matrix.colors[i][j]; } } } } mw->matrix.colors = copy; } void xbaeCopyBackgrounds(mw) XbaeMatrixWidget mw; { Pixel **copy = NULL; int i, j; Boolean badrow = False; Boolean badcol; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ copy = (Pixel **) XtMalloc(mw->matrix.rows * sizeof(Pixel *)); /* * Malloc an array of Pixels for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) copy[i] = (Pixel *) XtMalloc(mw->matrix.columns * sizeof(Pixel)); if (!mw->matrix.cell_background) { for (i = 0; i < mw->matrix.rows; i++) { Boolean alt = (mw->matrix.alt_row_count && i >= (int)mw->matrix.fixed_rows) ? ( ((i - (int)mw->matrix.fixed_rows) / mw->matrix.alt_row_count) % 2) : False; /* * Assign the even and odd row colours appropriately. These * will be a copy of the core->background if they have not * been explicitly set but if they have, we want to * preserve the colours as they appear now */ for (j = 0; j < mw->matrix.columns; j++) copy[i][j] = (alt ? mw->matrix.odd_row_background : mw->matrix.even_row_background); } } else for (i = 0; i < mw->matrix.rows; i++) { if (!badrow && !mw->matrix.cell_background[i]) { badrow = True; XtAppWarningMsg( XtWidgetToApplicationContext((Widget)mw), "copyCellColors", "tooShort", "XbaeMatrix", "XbaeMatrix: Cell BackgroundPixelTable is too short", NULL, 0); } badcol = badrow; for (j = 0; j < mw->matrix.columns; j++) { if (badcol || mw->matrix.cell_background[i][j] == BAD_PIXEL) { badcol = True; if (j > 0) copy[i][j] = copy[i][j-1] ; else if (i > 0) copy[i][j] = copy[i-1][j] ; else copy[i][j] = mw->core.background_pixel; } else { copy[i][j] = mw->matrix.cell_background[i][j]; } } } } mw->matrix.cell_background = copy; } /* * Copy the selectedCells resource. Create a 2D array of Booleans to * represent selected cells if it is NULL. */ void xbaeCopySelectedCells(mw) XbaeMatrixWidget mw; { Boolean **copy = NULL; int i, j; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ mw->matrix.num_selected_cells = 0; copy = (Boolean **) XtMalloc(mw->matrix.rows * sizeof(Boolean *)); /* * Malloc an array of Booleans for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) copy[i] = (Boolean *) XtCalloc(mw->matrix.columns, sizeof(Boolean)); /* * If selected_cells is not NULL, copy the table passed in */ if (mw->matrix.selected_cells) for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) { copy[i][j] = mw->matrix.selected_cells[i][j]; if (mw->matrix.selected_cells[i][j]) mw->matrix.num_selected_cells++; } } mw->matrix.selected_cells = copy; } #if XmVersion >= 1002 /* * Copy the highlightedCells resource. Create a 2D array of Booleans to * represent highlighted cells if it is NULL. */ void xbaeCopyHighlightedCells(mw) XbaeMatrixWidget mw; { unsigned char **copy = NULL; int i, j; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ copy = (unsigned char **) XtMalloc(mw->matrix.rows * sizeof(Boolean *)); /* * Malloc an array of Booleans for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) copy[i] = (unsigned char *) XtCalloc(mw->matrix.columns, sizeof(Boolean)); /* * If highlighted_cells is not NULL, copy the table passed in */ if (mw->matrix.highlighted_cells) for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) copy[i][j] = mw->matrix.highlighted_cells[i][j]; } mw->matrix.highlighted_cells = copy; } #endif /* * Create a matrix of Pixels */ void xbaeCreateColors(mw) XbaeMatrixWidget mw; { int i; if (mw->matrix.rows && mw->matrix.columns) { /* * Malloc an array of row pointers */ mw->matrix.colors = (Pixel **) XtMalloc(mw->matrix.rows * sizeof(Pixel *)); /* * Malloc an array of Pixels for each row pointer */ for (i = 0; i < mw->matrix.rows; i++) mw->matrix.colors[i] = (Pixel *) XtMalloc(mw->matrix.columns * sizeof(Pixel)); } else mw->matrix.colors = NULL; } /* * Create a pixmap to be used for drawing the matrix contents when * XmNsensitive is set to False */ static Pixmap createInsensitivePixmap(mw) XbaeMatrixWidget mw; { static char stippleBits[] = { 0x01, 0x02 }; static Pixmap *stipple = NULL; Display *dpy = XtDisplay(mw); Screen *scr = XtScreen (mw); int i; int maxScreens = ScreenCount(dpy); if (!stipple) { stipple = (Pixmap *) XtMalloc(maxScreens*sizeof(Pixmap)); for (i = 0 ; i < maxScreens ; i++) stipple[i] = XCreatePixmapFromBitmapData( dpy, RootWindow(dpy,i), stippleBits, 2, 2, 0, 1, 1); } for (i = 0; i < maxScreens; i++) { if (ScreenOfDisplay(dpy, i) == scr) return stipple[i]; } return (Pixmap)NULL; } void xbaeCreateGridLineGC(mw) XbaeMatrixWidget mw; { XGCValues values; XtGCMask mask = GCForeground | GCBackground; values.foreground = mw->matrix.grid_line_color; values.background = mw->manager.foreground; /* * GC for drawing grid lines */ mw->matrix.grid_line_gc = XtGetGC((Widget) mw, mask, &values); /* * GC for drawing grid lines with clipping */ mw->matrix.cell_grid_line_gc = XCreateGC(XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); } void xbaeCreateDrawGC(mw) XbaeMatrixWidget mw; { XGCValues values; unsigned long mask = GCForeground | GCStipple; /* * GC for drawing cells. We create it instead of using a cached one, * since the foreground may change frequently. */ values.foreground = mw->manager.foreground; values.stipple = createInsensitivePixmap(mw); /* font id isn't used for fontsets */ if (mw->matrix.font_struct) { mask |= GCFont; values.font = mw->matrix.fid; } mw->matrix.draw_gc = XCreateGC(XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); } void xbaeCreatePixmapGC(mw) XbaeMatrixWidget mw; { XGCValues values; unsigned long mask = GCForeground | GCGraphicsExposures | GCStipple; values.foreground = mw->manager.foreground; values.graphics_exposures = False; values.stipple = createInsensitivePixmap(mw); mw->matrix.pixmap_gc = XCreateGC(XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); } void xbaeCreateLabelGC(mw) XbaeMatrixWidget mw; { XGCValues values; unsigned long mask = GCForeground | GCStipple; /* * GC for drawing labels */ values.foreground = mw->manager.foreground; values.stipple = createInsensitivePixmap(mw); /* font id isn't used for fontsets */ if (mw->matrix.label_font_struct) { mask |= GCFont; values.font = mw->matrix.label_fid; } mw->matrix.label_gc = XCreateGC(XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); } void xbaeCreateLabelClipGC(mw) XbaeMatrixWidget mw; { XGCValues values; unsigned long mask = GCForeground | GCStipple; /* * GC for drawing labels with clipping. */ values.foreground = mw->manager.foreground; values.stipple = createInsensitivePixmap(mw); /* font id isn't used for fontsets */ if (mw->matrix.label_font_struct) { mask |= GCFont; values.font = mw->matrix.label_fid; } mw->matrix.label_clip_gc = XCreateGC(XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); } void xbaeCreateTopShadowClipGC(mw) XbaeMatrixWidget mw; { XGCValues values; XtGCMask mask = GCForeground | GCBackground; /* * GC for drawing top shadow inside cells with clipping. */ values.foreground = mw->manager.top_shadow_color; values.background = mw->manager.foreground; if (mw->manager.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP) { mask |= GCFillStyle | GCTile; values.fill_style = FillTiled; values.tile = mw->manager.top_shadow_pixmap; } mw->matrix.cell_top_shadow_clip_gc = XCreateGC( XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); mask |= GCFunction; values.function = GXxor; mw->matrix.resize_top_shadow_gc = XtGetGC( (Widget) mw, mask, &values); } void xbaeCreateBottomShadowClipGC(mw) XbaeMatrixWidget mw; { XGCValues values; XtGCMask mask = GCForeground | GCBackground; /* * GC for drawing bottom shadow inside cells with clipping. */ values.foreground = mw->manager.bottom_shadow_color; values.background = mw->manager.foreground; if (mw->manager.bottom_shadow_pixmap != XmUNSPECIFIED_PIXMAP) { mask |= GCFillStyle | GCTile; values.fill_style = FillTiled; values.tile = mw->manager.bottom_shadow_pixmap; } mw->matrix.cell_bottom_shadow_clip_gc = XCreateGC( XtDisplay(mw), GC_PARENT_WINDOW(mw), mask, &values); mask |= GCFunction; values.function = GXxor; mw->matrix.resize_bottom_shadow_gc = XtGetGC( (Widget) mw, mask, &values); } static short xbaeGetFontWidth(font_struct) XFontStruct *font_struct; { short width; unsigned long fp; unsigned char char_idx; /* * From the XmText man page: If the em-space value is * available, it is used. If not, the width of the numeral "0" * is used. If this is not available, the maximum width is used. */ if (XGetFontProperty(font_struct, XA_QUAD_WIDTH, &fp) && fp != 0) { width = (short) fp; } else { if (font_struct->min_char_or_byte2 <= '0' && font_struct->max_char_or_byte2 >= '0' && font_struct->per_char) { char_idx = '0' - font_struct->min_char_or_byte2; width = font_struct->per_char[char_idx].width; } else { width = font_struct->max_bounds.width; } } /* last safety check */ if (width <= 0) { width = 1; } return width; } void xbaeNewFont(mw) XbaeMatrixWidget mw; { XmFontContext context; XmFontListEntry font_list_entry; XmFontType type; XtPointer fontp; /* * Make a private copy of the FontList */ mw->matrix.font_list = XmFontListCopy(mw->matrix.font_list); /* * Get XmFontListEntry from FontList */ if (!XmFontListInitFontContext(&context, mw->matrix.font_list)) XtAppErrorMsg( XtWidgetToApplicationContext((Widget) mw), "newFont", "badFont", "XbaeMatrix", "XbaeMatrix: XmFontListInitFontContext failed, bad fontList", NULL, 0); if ((font_list_entry = XmFontListNextEntry(context)) == NULL) XtAppErrorMsg( XtWidgetToApplicationContext((Widget) mw), "newFont", "badFont", "XbaeMatrix", "XbaeMatrix: XmFontListNextEntry failed, no next fontList", NULL, 0); fontp = XmFontListEntryGetFont(font_list_entry, &type); if (type == XmFONT_IS_FONTSET) { XFontSetExtents *extents; mw->matrix.font_set = (XFontSet)fontp; mw->matrix.font_struct = (XFontStruct*)NULL; extents = XExtentsOfFontSet(mw->matrix.font_set); mw->matrix.font_width = extents->max_logical_extent.width; mw->matrix.font_height = extents->max_logical_extent.height; mw->matrix.font_y = extents->max_logical_extent.y; mw->matrix.fid = 0; /* not used for fontsets */ } else { XFontStruct *font_struct = (XFontStruct *)fontp; mw->matrix.font_set = (XFontSet)NULL; mw->matrix.font_struct = font_struct; mw->matrix.font_width = xbaeGetFontWidth(font_struct); mw->matrix.font_height = (font_struct->max_bounds.descent + font_struct->max_bounds.ascent); mw->matrix.font_y = -font_struct->max_bounds.ascent; mw->matrix.fid = font_struct->fid; } XmFontListFreeFontContext(context); } void xbaeNewLabelFont(mw) XbaeMatrixWidget mw; { XmFontContext context; XmFontListEntry font_list_entry; XmFontType type; XtPointer fontp; /* * Make a private copy of the FontList */ mw->matrix.label_font_list = XmFontListCopy(mw->matrix.label_font_list); /* * Get XmFontListEntry from FontList */ if (!XmFontListInitFontContext(&context, mw->matrix.label_font_list)) XtAppErrorMsg( XtWidgetToApplicationContext((Widget) mw), "newFont", "badLabelFont", "XbaeMatrix", "XbaeMatrix: XmFontListInitFontContext failed, bad labelFontList", NULL, 0); if ((font_list_entry = XmFontListNextEntry(context)) == NULL) XtAppErrorMsg( XtWidgetToApplicationContext((Widget) mw), "newFont", "badLabelFont", "XbaeMatrix", "XbaeMatrix: XmFontListNextEntry failed, no next fontList", NULL, 0); fontp = XmFontListEntryGetFont(font_list_entry, &type); if (type == XmFONT_IS_FONTSET) { XFontSetExtents *extents; mw->matrix.label_font_set = (XFontSet)fontp; mw->matrix.label_font_struct = (XFontStruct*)NULL; extents = XExtentsOfFontSet(mw->matrix.label_font_set); mw->matrix.label_font_width = extents->max_logical_extent.width; mw->matrix.label_font_height = extents->max_logical_extent.height; mw->matrix.label_font_y = extents->max_logical_extent.y; mw->matrix.label_fid = 0; /* not used for fontsets */ } else { XFontStruct *font_struct = (XFontStruct *)fontp; mw->matrix.label_font_set = (XFontSet)NULL; mw->matrix.label_font_struct = font_struct; mw->matrix.label_font_width = xbaeGetFontWidth(font_struct); mw->matrix.label_font_height = (font_struct->max_bounds.descent + font_struct->max_bounds.ascent); mw->matrix.label_font_y = -font_struct->max_bounds.ascent; mw->matrix.label_fid = font_struct->fid; } XmFontListFreeFontContext(context); } void xbaeFreeCells(mw) XbaeMatrixWidget mw; { int i, j; if (!mw->matrix.cells) return; /* * Free each cell in a row, then free the row and go to the next one */ for (i = 0; i < mw->matrix.rows; i++) { for (j = 0; j < mw->matrix.columns; j++) XtFree((XtPointer) mw->matrix.cells[i][j]); XtFree((XtPointer) mw->matrix.cells[i]); } /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.cells); mw->matrix.cells = NULL; } #if CELL_WIDGETS void xbaeFreeCellWidgets(mw) XbaeMatrixWidget mw; { int i, j; if (!mw->matrix.cell_widgets) return; /* * Free each cell in a row, then free the row and go to the next one */ for (i = 0; i < mw->matrix.rows; i++) { for (j = 0; j < mw->matrix.columns; j++) XtFree((XtPointer) mw->matrix.cell_widgets[i][j]); XtFree((XtPointer) mw->matrix.cell_widgets[i]); } /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.cell_widgets); mw->matrix.cell_widgets = NULL; } #endif void xbaeFreeRowLabels(mw) XbaeMatrixWidget mw; { int i; if (!mw->matrix.row_labels) return; for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.row_labels[i]); XtFree((XtPointer) mw->matrix.row_labels); mw->matrix.row_labels = NULL; } void xbaeFreeColumnLabels(mw) XbaeMatrixWidget mw; { int i; if (!mw->matrix.column_labels) return; for (i = 0; i < mw->matrix.columns; i++) { XtFree((XtPointer) mw->matrix.column_labels[i]); XtFree((XtPointer) mw->matrix.column_label_lines[i].lengths); } XtFree((XtPointer) mw->matrix.column_label_lines); XtFree((XtPointer) mw->matrix.column_labels); mw->matrix.column_labels = NULL; } void xbaeFreeColors(mw) XbaeMatrixWidget mw; { int i; if (!mw->matrix.colors) return; /* * Free each row of Pixels */ for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.colors[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.colors); mw->matrix.colors = NULL; } void xbaeFreeBackgrounds(mw) XbaeMatrixWidget mw; { int i; if (!mw->matrix.cell_background) return; /* * Free each row of Pixels */ for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.cell_background[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.cell_background); mw->matrix.cell_background = NULL; } void xbaeFreeSelectedCells(mw) XbaeMatrixWidget mw; { int i; /* * Free each row of XtPointer pointers */ if (!mw->matrix.selected_cells) return; for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.selected_cells[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.selected_cells); mw->matrix.selected_cells = NULL; } #if XmVersion >= 1002 void xbaeFreeHighlightedCells(mw) XbaeMatrixWidget mw; { int i; if (!mw->matrix.highlighted_cells) return; /* * Free each row of XtPointer pointers */ for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.highlighted_cells[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.highlighted_cells); mw->matrix.highlighted_cells = NULL; } #endif void xbaeFreeCellUserData(mw) XbaeMatrixWidget mw; { if (mw->matrix.cell_user_data) { int i; /* * Free each row of Booleans */ for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.cell_user_data[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.cell_user_data); } mw->matrix.cell_user_data = NULL; } void xbaeFreeCellShadowTypes(mw) XbaeMatrixWidget mw; { if (mw->matrix.cell_shadow_types) { int i; /* * Free each row of unsigned char pointers */ for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.cell_shadow_types[i]); /* * Free the array of row pointers */ XtFree((XtPointer) mw->matrix.cell_shadow_types); } mw->matrix.cell_shadow_types = NULL; } grace-5.1.25/Xbae/Xbae/Actions.c0000644000076500001440000014730006766327620015757 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Actions.c,v 1.1 1999/09/11 01:25:36 fnevgeny Exp $ */ /* * Actions.c created by Andrew Lister (7 August, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #if XmVersion > 1001 #include #endif #include #include #include #include #include #include #include #include #include #ifndef XlibSpecificationRelease #define XrmPermStringToQuark XrmStringToQuark #endif #if !defined(DRAW_RESIZE_LINE) && !defined(DRAW_RESIZE_SHADOW) /* One of DRAW_RESIZE_LINE and DRAW_RESIZE_SHADOW must be defined. */ #define DRAW_RESIZE_SHADOW #endif #ifndef DEFAULT_SCROLL_SPEED #define DEFAULT_SCROLL_SPEED 500 #endif typedef struct { XbaeMatrixWidget mw; GC gc; int row; int column; int startx; int lastx; int currentx; int y, height; short *columnWidths; Boolean grabbed; Boolean haveVSB; } XbaeMatrixResizeColumnStruct; typedef struct { XbaeMatrixWidget mw; int row; int column; Boolean pressed; Boolean grabbed; } XbaeMatrixButtonPressedStruct; typedef struct { XbaeMatrixWidget mw; XbaeClipWidget cw; XEvent *event; XtIntervalId timerID; XtAppContext app_context; unsigned long interval; Boolean inClip; Boolean grabbed; Boolean above; Boolean below; Boolean left; Boolean right; } XbaeMatrixScrollStruct; static int DoubleClick P((XbaeMatrixWidget, XEvent *, int, int)); static void DrawSlideColumn P((XbaeMatrixWidget, int)); static void SlideColumn P((Widget, XtPointer, XEvent *, Boolean *)); static void PushButton P((Widget, XtPointer, XEvent *, Boolean *)); static void updateScroll P((XtPointer)); static void checkScrollValues P((Widget, XtPointer, XEvent *, Boolean *)); static void callSelectCellAction P((XbaeMatrixWidget, XEvent *)); static int last_row = 0; static int last_column = 0; static int last_selected_row = 0; static int last_selected_column = 0; static Boolean scrolling = False; /* ARGSUSED */ void xbaeDefaultActionACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; int x, y; int row, column; CellType cell; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "defaultActionACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to DefaultAction action", NULL, 0); return; } if (!mw->matrix.default_action_callback) return; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; if (!xbaeXYToRowCol(mw, &x, &y, &row, &column, cell)) return; if (DoubleClick(mw, event, row, column)) { XbaeMatrixDefaultActionCallbackStruct call_data; call_data.reason = XbaeDefaultActionReason; call_data.event = event; call_data.row = row; call_data.column = column; XtCallCallbackList((Widget)mw, mw->matrix.default_action_callback, (XtPointer)&call_data); } } static void DrawSlideColumn(mw, x) XbaeMatrixWidget mw; int x; { #ifdef DRAW_RESIZE_SHADOW /* These values derived through that age-old process * of what looks good to me */ #define SHADOW_WIDTH 2 #define RESIZE_COLUMN_LINE_WIDTH 4 Dimension width = RESIZE_COLUMN_LINE_WIDTH; Dimension shadow_width = SHADOW_WIDTH; #endif Dimension height; Window win; Display *display = XtDisplay(mw); int column = xbaeXtoCol(mw, x - COLUMN_LABEL_OFFSET(mw)); int top, bottom; int adjusted_x; int y; #ifdef DRAW_RESIZE_LINE GC gc = mw->matrix.draw_gc; #endif Boolean need_vert_dead_space_fill = NEED_VERT_DEAD_SPACE_FILL(mw); unsigned int clip_reason; /* * If the column being resized is a fixed one then we don't need to * bother with the clip region */ if (column < (int)mw->matrix.fixed_columns) { y = ROW_LABEL_OFFSET(mw); height = VISIBLE_HEIGHT(mw) + FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw); win = XtWindow (mw); if (need_vert_dead_space_fill) height += VERT_DEAD_SPACE_HEIGHT(mw); #ifdef DRAW_RESIZE_LINE XDrawLine(display, win, gc, x, y, x, y + height); if (XtIsManaged(LeftClip(mw))) XDrawLine(display, XtWindow(LeftClip(mw)), gc, x - COLUMN_LABEL_OFFSET(mw), 0, x - COLUMN_LABEL_OFFSET(mw), LeftClip(mw)->core.height); #endif #ifdef DRAW_RESIZE_SHADOW DRAW_SHADOW(display, win, mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, x, y, width, height, XmSHADOW_OUT); if (XtIsManaged(LeftClip(mw))) DRAW_SHADOW(display, XtWindow(LeftClip(mw)), mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, x - COLUMN_LABEL_OFFSET(mw), 0, width, LeftClip(mw)->core.height, XmSHADOW_OUT); #endif return; } /* * Similarly for trailingFixedColumns - beware going off the clip child * here also */ if (column >= TRAILING_HORIZ_ORIGIN(mw) || x >= (int)(ClipChild(mw)->core.x + ClipChild(mw)->core.width)) { y = ROW_LABEL_OFFSET(mw); height = VISIBLE_HEIGHT(mw) + FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw); win = XtWindow(mw); if (need_vert_dead_space_fill) height += VERT_DEAD_SPACE_HEIGHT(mw); #ifdef DRAW_RESIZE_LINE XDrawLine(display, win, gc, x, y, x, y + height); if (XtIsManaged(RightClip(mw))) XDrawLine(display, XtWindow(RightClip(mw)), gc, x - TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw), 0, x - TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw), RightClip(mw)->core.height); #endif #ifdef DRAW_RESIZE_SHADOW DRAW_SHADOW(display, win, mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, x, y, width, height, XmSHADOW_OUT); if (XtIsManaged(RightClip(mw))) DRAW_SHADOW(display, XtWindow(RightClip(mw)), mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, x - TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw), 0, width, RightClip(mw)->core.height, XmSHADOW_OUT); #endif return; } xbaeGetVisibleRows(mw, &top, &bottom); /* * we need all non-fixed rows, so add 1 to bottom * to include the last one as the return values * are inclusive */ bottom += 1; /* * The area between top and bottom rows are the non fixed rows. They * fall on the ClipChild */ y = -mw->matrix.cell_shadow_thickness; /* relative to clip */ height = ROW_HEIGHT(mw) * (bottom - top) + 2 * mw->matrix.cell_shadow_thickness; /* * If we are on the clip, the x location is offset by the * fixed column width, label offset and label width */ adjusted_x = x - FIXED_COLUMN_LABEL_OFFSET(mw); win = XtWindow(ClipChild(mw)); #ifdef DRAW_RESIZE_LINE XDrawLine(display, win, gc, adjusted_x, y, adjusted_x, y + height); #endif #ifdef DRAW_RESIZE_SHADOW DRAW_SHADOW(display, win, mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, adjusted_x, y, width, height, XmSHADOW_OUT); #endif /* * Now draw the line (or shadow) on the non clipped region - that is * the fixed and trailingFixed rows. First, do the leading rows. */ if (mw->matrix.fixed_rows) { y = ROW_LABEL_OFFSET(mw); height = FIXED_ROW_HEIGHT(mw) + 2 * mw->matrix.cell_shadow_thickness; win = XtWindow(mw); xbaeSetClipMask(mw, CLIP_FIXED_ROWS); #ifdef DRAW_RESIZE_LINE if (XtIsManaged(TopClip(mw))) XDrawLine(display, XtWindow(TopClip(mw)), gc, adjusted_x, -mw->matrix.cell_shadow_thickness, adjusted_x, height); #endif #ifdef DRAW_RESIZE_SHADOW if (XtIsManaged(TopClip(mw))) DRAW_SHADOW(display, XtWindow(TopClip(mw)), mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, adjusted_x, -mw->matrix.cell_shadow_thickness, width, height, XmSHADOW_OUT); #endif xbaeSetClipMask(mw, CLIP_NONE); } /* * The trailingFixedRows */ if (mw->matrix.trailing_fixed_rows) { y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); height = TRAILING_FIXED_ROW_HEIGHT(mw) + 2 * mw->matrix.cell_shadow_thickness; clip_reason = CLIP_TRAILING_FIXED_ROWS; if (IS_LEADING_FIXED_COLUMN(mw, column)) clip_reason |= CLIP_FIXED_COLUMNS; else if (IS_TRAILING_FIXED_COLUMN(mw, column)) clip_reason |= CLIP_TRAILING_FIXED_COLUMNS; xbaeSetClipMask(mw, clip_reason); #ifdef DRAW_RESIZE_LINE if (XtIsManaged(BottomClip(mw))) XDrawLine(display, XtWindow(BottomClip(mw)), gc, adjusted_x, -mw->matrix.cell_shadow_thickness, adjusted_x, height); #endif #ifdef DRAW_RESIZE_SHADOW if (XtIsManaged(BottomClip(mw))) DRAW_SHADOW(display, XtWindow(BottomClip(mw)), mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, adjusted_x, -mw->matrix.cell_shadow_thickness, width, height, XmSHADOW_OUT); #endif xbaeSetClipMask(mw, CLIP_NONE); } if ((NEED_VERT_FILL(mw) && (! HAS_ATTACHED_TRAILING_ROWS(mw))) || need_vert_dead_space_fill) { if (need_vert_dead_space_fill) { y = UNATTACHED_TRAILING_ROWS_OFFSET(mw) - mw->matrix.cell_shadow_thickness; height = 2 * mw->matrix.cell_shadow_thickness + VERT_DEAD_SPACE_HEIGHT(mw); } else { y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw) + TRAILING_FIXED_ROW_HEIGHT(mw); height = FILL_VERT_HEIGHT(mw) - HORIZ_SB_SPACE(mw); } #ifdef DRAW_RESIZE_LINE XDrawLine(display, XtWindow(mw), gc, adjusted_x, y, adjusted_x, height); #endif #ifdef DRAW_RESIZE_SHADOW DRAW_SHADOW(display, XtWindow(mw), mw->matrix.resize_top_shadow_gc, mw->matrix.resize_bottom_shadow_gc, shadow_width, x, y, width, height, XmSHADOW_OUT); #endif } } static void SlideColumn(w, data, event, cont) Widget w; XtPointer data; XEvent *event; Boolean *cont; { XbaeMatrixResizeColumnStruct *rd = (XbaeMatrixResizeColumnStruct *)data; XMotionEvent *motionEvent; Boolean relayout = False; int numCharacters; int i; if (event->type == ButtonRelease) { DrawSlideColumn(rd->mw, rd->lastx); XUngrabPointer(XtDisplay(w), CurrentTime); rd->grabbed = False; /* * Remanage the VSB if we unmapped it earlier */ if (rd->haveVSB) XtManageChild(VertScrollChild(rd->mw)); if (rd->mw->matrix.resize_column_callback) { XbaeMatrixResizeColumnCallbackStruct call_data; call_data.reason = XbaeResizeColumnReason; call_data.event = event; call_data.row = rd->row; call_data.column = rd->column - 1; call_data.which = rd->column - 1; call_data.columns = rd->mw->matrix.columns; call_data.column_widths = rd->columnWidths; XtCallCallbackList ((Widget)rd->mw, rd->mw->matrix.resize_column_callback, (XtPointer)&call_data); } for (i = 0; i < rd->mw->matrix.columns; i++) if (rd->columnWidths[i] != rd->mw->matrix.column_widths[i]) { /* Make sure everything is handled correctly with SetValues */ XtVaSetValues((Widget)rd->mw, XmNcolumnWidths, rd->columnWidths, NULL); break; } /* * If maxColumnLengths are set and we have resized the column to * larger, reset the corresponding maxColumnLength */ if (rd->mw->matrix.column_max_lengths && rd->columnWidths[rd->column - 1] > rd->mw->matrix.column_max_lengths[rd->column - 1]) rd->mw->matrix.column_max_lengths[rd->column - 1] = rd->columnWidths[rd->column - 1]; XtFree((char *)rd->columnWidths); return; } if (event->type != MotionNotify) /* Double check! */ return; motionEvent = (XMotionEvent *)event; if (rd->currentx - motionEvent->x > FONT_WIDTH(rd->mw)) { /* If we're only one character wide, we cannae get any smaller */ if (rd->columnWidths[rd->column - 1] == BAD_WIDTH + 1) return; /* * Moved left a full character - update the column widths and force * a redisplay */ numCharacters = (rd->currentx - motionEvent->x) / FONT_WIDTH(rd->mw); if (numCharacters >= rd->columnWidths[rd->column - 1]) /* Must keep a column at least one character wide */ numCharacters = rd->columnWidths[rd->column - 1] - 1; rd->columnWidths[rd->column - 1] -= numCharacters; rd->currentx -= numCharacters * FONT_WIDTH(rd->mw); relayout = True; } if (motionEvent->x - rd->currentx > FONT_WIDTH(rd->mw)) { /* * Moved right a full character - update the column widths and force * a redisplay */ numCharacters = (motionEvent->x - rd->currentx) / FONT_WIDTH(rd->mw); rd->columnWidths[rd->column - 1] += numCharacters; rd->currentx += numCharacters * FONT_WIDTH(rd->mw); relayout = True; } if (relayout) { /* Draw the marker line in the new location */ if (rd->lastx != rd->currentx) { DrawSlideColumn(rd->mw, rd->currentx); DrawSlideColumn(rd->mw, rd->lastx); rd->lastx = rd->currentx; } } } /* ARGSUSED */ void xbaeResizeColumnsACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; int x, y; int eventx; int i; int row, column; CellType cell; static Cursor cursor; XbaeMatrixResizeColumnStruct resizeData; XGCValues values; XtAppContext appcontext; #ifdef DRAW_RESIZE_LINE XGCValues save; #endif unsigned long gcmask, event_mask; Display *display = XtDisplay(w); #define FUZZ_FACTOR 3 int fuzzy = FUZZ_FACTOR; #undef FUZZ_FACTOR /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "resizeColumnsACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to ResizeColumns action", NULL, 0); return; } /* * If we won't allow dynamic column resize, leave. */ if (!mw->matrix.allow_column_resize) return; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; eventx = x; if (!xbaeXYToRowCol(mw, &x, &y, &row, &column, cell)) return; /* * Calculate if the x and y of the middle button event is on * a column border. Allow the width of the shadow to be the * allowed delta. x is modified in xbaeXYToRowCol() to be * the x distance from the cell's border */ if ((int)mw->matrix.cell_shadow_thickness > fuzzy) fuzzy = mw->matrix.cell_shadow_thickness; if (x > fuzzy && COLUMN_WIDTH(mw, column) - x > fuzzy) return; /* * Looks like we hit a column border, determine the column that is * intended to be resized */ if ((COLUMN_WIDTH(mw, column) - x) <= fuzzy) column++; /* Can't adjust the origin or should you be able to?? */ if (column == 0) return; /* * Make it here and it's time to start the fun stuff! */ /* Create the left / right cursor */ if (!cursor) cursor = XCreateFontCursor(display, XC_sb_h_double_arrow); /* Commit any edit in progress and unmap the text field - it's just bad luck */ (*((XbaeMatrixWidgetClass)XtClass(mw))->matrix_class.commit_edit) (mw, event, True); /* * Redraw the cell that had the text field in it or it might stay blank */ xbaeDrawCell(mw, mw->matrix.current_row, mw->matrix.current_column); /* * Say goodbye to the Vertical ScrollBar -> it only gets in the way! */ if ((resizeData.haveVSB = XtIsManaged(VertScrollChild(mw)) && ((mw->matrix.scrollbar_placement == XmTOP_RIGHT) || (mw->matrix.scrollbar_placement == XmBOTTOM_RIGHT)))) XtUnmanageChild(VertScrollChild(mw)); /* * Flush the commit events out to the server. Otherwise, our changes * to the GCs below have a bad effect. */ XSync(display, False); event_mask = PointerMotionMask | ButtonReleaseMask; XtAddEventHandler(w, event_mask, True, (XtEventHandler)SlideColumn, (XtPointer)&resizeData); XGrabPointer(display, XtWindow(w), True, event_mask, GrabModeAsync, GrabModeAsync, XtWindow((Widget)mw), cursor, CurrentTime); /* Copy the columnWidth array */ resizeData.columnWidths = (short *)XtMalloc(mw->matrix.columns * sizeof(short)); for (i = 0; i < mw->matrix.columns; i++) resizeData.columnWidths[i] = mw->matrix.column_widths[i]; resizeData.grabbed = True; resizeData.mw = mw; resizeData.column = column; resizeData.startx = resizeData.currentx = resizeData.lastx = event->xbutton.x; gcmask = GCForeground | GCBackground | GCFunction; values.function = GXxor; #ifdef DRAW_RESIZE_LINE XGetGCValues(display, mw->matrix.draw_gc, gcmask, &save); values.foreground = values.background = save.background; XChangeGC(display, mw->matrix.draw_gc, gcmask, &values); #endif DrawSlideColumn(mw, resizeData.currentx); appcontext = XtWidgetToApplicationContext(w); while (resizeData.grabbed) XtAppProcessEvent(appcontext, XtIMAll); XtRemoveEventHandler(w, event_mask, True, (XtEventHandler)SlideColumn, (XtPointer)&resizeData); #ifdef DRAW_RESIZE_LINE XSetFunction(display, mw->matrix.draw_gc, GXcopy); #endif } /* * Action to process a drag out */ /* ARGSUSED */ void xbaeProcessDragACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { #if XmVersion > 1001 XbaeMatrixWidget mw; int x, y; int row, column; CellType cell; XbaeMatrixProcessDragCallbackStruct call_data; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "processDragACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to ProcessDrag action", NULL, 0); return; } if (!mw->matrix.process_drag_callback) return; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; if (!xbaeXYToRowCol(mw, &x, &y, &row, &column, cell)) return; call_data.reason = XbaeProcessDragReason; call_data.event = event; call_data.row = row; call_data.column = column; if (mw->matrix.draw_cell_callback) { Pixel bgcolor, fgcolor; int width, height, depth; call_data.type = xbaeGetDrawCellValue( mw, row, column, &call_data.string, &call_data.pixmap, &call_data.mask, &width, &height, &bgcolor, &fgcolor, &depth); } else call_data.string = mw->matrix.cells ? mw->matrix.cells[row][column] : ""; call_data.num_params = *nparams; call_data.params = params; XtCallCallbackList((Widget)mw, mw->matrix.process_drag_callback, (XtPointer)&call_data); #endif } /* * Action to edit a non-fixed cell. */ /* ARGSUSED */ void xbaeEditCellACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; int row, column; XrmQuark q; static XrmQuark QPointer, QLeft, QRight, QUp, QDown; static Boolean haveQuarks = False; /* * Get static quarks for the parms we understand */ if (!haveQuarks) { QPointer = XrmPermStringToQuark("Pointer"); QLeft = XrmPermStringToQuark("Left"); QRight = XrmPermStringToQuark("Right"); QUp = XrmPermStringToQuark("Up"); QDown = XrmPermStringToQuark("Down"); haveQuarks = True; } /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "editCellACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to EditCell action", NULL, 0); return; } /* * Make sure we have a single parm */ if (*nparams != 1) { XtAppWarningMsg( XtWidgetToApplicationContext(w), "editCellACT", "badParms", "XbaeMatrix", "XbaeMatrix: Wrong params passed to EditCell action, needs 1", NULL, 0); return; } /* * Initialize row/column to the current position */ row = mw->matrix.current_row; column = mw->matrix.current_column; /* * Quarkify the string param */ q = XrmStringToQuark(params[0]); /* * If we aren't currently editing, then the only kind of traversal that * makes sense is pointer. */ if (!XtIsManaged(TextChild(mw)) && q != QPointer) return; if (q == QPointer) { CellType cellType = NonFixedCell; int x, y; /* * Get the x,y point coordinate relative to the Clip window. * Return if this event did not occur in the Clip subwindow * (since we can only edit non-fixed cells). */ switch(event->type) { case ButtonPress: case ButtonRelease: x = event->xbutton.x; y = event->xbutton.y; break; case KeyPress: case KeyRelease: x = event->xkey.x; y = event->xkey.y; break; case MotionNotify: x = event->xmotion.x; y = event->xmotion.y; break; default: return; } if (event->xbutton.subwindow == XtWindow(ClipChild(mw))) { x -= FIXED_COLUMN_LABEL_OFFSET(mw); y -= FIXED_ROW_LABEL_OFFSET(mw); cellType = NonFixedCell; } else if (event->xbutton.window != XtWindow(ClipChild(mw))) { if (!mw->matrix.traverse_fixed) return; cellType = FixedCell; } /* * Convert the point to a row,column. If it does not pick a valid * cell, then return. */ if (!xbaeXYToRowCol(mw, &x, &y, &row, &column, cellType)) return; } else if (q == QRight) { /* * If we are in the lower right corner, stay there. * Otherwise move over a column. If we move off to the right of the * final column to which traversing is allowed then move down a row * and back to the first column to which traversing is allowed. */ if (!mw->matrix.traverse_fixed) { /* check scrollable boundary */ if (mw->matrix.current_row != TRAILING_VERT_ORIGIN(mw) - 1 || mw->matrix.current_column != TRAILING_HORIZ_ORIGIN(mw) - 1) { column++; if (IS_TRAILING_FIXED_COLUMN(mw, column)) { column = mw->matrix.fixed_columns; row++; } } } else { /* check matrix boundary */ if (mw->matrix.current_row != mw->matrix.rows - 1 || mw->matrix.current_column != mw->matrix.columns - 1) { column++; if (column >= mw->matrix.columns) { column = 0; row++; } } } } else if (q == QLeft) { /* * If we are in the upper left corner, stay there. * Otherwise move back a column. If we move before the first column * to which traversing is allowed, move up a row and over to the last * column to which traversing is allowed. */ if (!mw->matrix.traverse_fixed) { /* check scrollable boundary */ if (mw->matrix.current_row != mw->matrix.fixed_rows || mw->matrix.current_column != mw->matrix.fixed_columns) { column--; if (IS_LEADING_FIXED_COLUMN(mw, column)) { column = TRAILING_HORIZ_ORIGIN(mw) - 1; row--; } } } else { if (mw->matrix.current_row != 0 || mw->matrix.current_column != 0) { column--; if (column < 0) { column = mw->matrix.columns - 1; row--; } } } } else if (q == QDown) { row++; /* adjust row for allowable traversable regions */ if (!mw->matrix.traverse_fixed) { if (IS_TRAILING_FIXED_ROW(mw, row)) row = mw->matrix.fixed_rows; } else { if (row >= mw->matrix.rows) row = 0; } } else if (q == QUp) { row--; if (!mw->matrix.traverse_fixed) { if (IS_LEADING_FIXED_ROW(mw, row)) row = TRAILING_VERT_ORIGIN(mw) - 1; } else { if (row < 0) row = mw->matrix.rows - 1; } } /* * Call the traverseCellCallback to allow the application to * perform custom traversal. */ if (mw->matrix.traverse_cell_callback) { XbaeMatrixTraverseCellCallbackStruct call_data; call_data.reason = XbaeTraverseCellReason; call_data.event = event; call_data.row = mw->matrix.current_row; call_data.column = mw->matrix.current_column; call_data.next_row = row; call_data.next_column = column; call_data.fixed_rows = mw->matrix.fixed_rows; call_data.fixed_columns = mw->matrix.fixed_columns; call_data.trailing_fixed_rows = mw->matrix.trailing_fixed_rows; call_data.trailing_fixed_columns = mw->matrix.trailing_fixed_columns; call_data.num_rows = mw->matrix.rows; call_data.num_columns = mw->matrix.columns; call_data.param = params[0]; call_data.qparam = q; XtCallCallbackList((Widget)mw, mw->matrix.traverse_cell_callback, (XtPointer)&call_data); row = call_data.next_row; column = call_data.next_column; } /* * Attempt to edit the new cell using the edit_cell method. * If we are editing a cell based on pointer position, we always * call edit_cell. Otherwise, we must be editing a new cell to * call edit_cell. */ if (q == QPointer || (row != mw->matrix.current_row || column != mw->matrix.current_column)) (*((XbaeMatrixWidgetClass)XtClass(mw))->matrix_class.edit_cell) (mw, event, row, column, params, *nparams); /* * Traverse to the textField */ (void)XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT); } /* * Action to unmap the textField and discard any edits made */ /* ARGSUSED */ void xbaeCancelEditACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; Boolean unmap; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "cancelEditACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to CancelEdit action", NULL, 0); return; } /* * Make sure we have a single param */ if (*nparams != 1) { XtAppWarningMsg( XtWidgetToApplicationContext(w), "cancelEditACT", "badParms", "XbaeMatrix", "XbaeMatrix: Wrong params passed to CancelEdit action, needs 1", NULL, 0); return; } /* * Validate our param */ if (!strcmp(params[0], "True")) unmap = True; else if (!strcmp(params[0], "False")) unmap = False; else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "cancelEditACT", "badParm", "XbaeMatrix", "XbaeMatrix: Bad parameter for CancelEdit action", NULL, 0); return; } /* * Call the cancel_edit method */ (*((XbaeMatrixWidgetClass)XtClass(mw))->matrix_class.cancel_edit) (mw, unmap); } /* * Action save any edits made and unmap the textField if params[0] is True */ /* ARGSUSED */ void xbaeCommitEditACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; Boolean unmap; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "commitEditACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to CommitEdit action", NULL, 0); return; } /* * Make sure we have a single param */ if (*nparams != 1) { XtAppWarningMsg( XtWidgetToApplicationContext(w), "commitEditACT", "badParms", "XbaeMatrix", "XbaeMatrix: Wrong params for CommitEdit action, needs 1", NULL, 0); return; } /* * Validate our param */ if (!strcmp(params[0], "True")) unmap = True; else if (!strcmp(params[0], "False")) unmap = False; else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "commitEditACT", "badParm", "XbaeMatrix", "XbaeMatrix: Bad parameter for CommitEdit action", NULL, 0); return; } (void)(*((XbaeMatrixWidgetClass)XtClass(mw))->matrix_class.commit_edit) (mw, event, unmap); } static int DoubleClick(mw, event, row, column) XbaeMatrixWidget mw; XEvent *event; int row; int column; { /* A double click in this instance is two clicks in the same cell in a time period < double_click_interval */ Time current_time; unsigned long delta; static int ret = 0; if (event->type == ButtonRelease) { /* If the button is released, store the current location and time - next time through, if it's a button press event, we check for double click */ mw->matrix.last_row = row; mw->matrix.last_column = column; if (ret) /* just had a double click */ mw->matrix.last_click_time = (Time)0; else mw->matrix.last_click_time = event->xbutton.time; ret = 0; return ret; } current_time = event->xbutton.time; delta = current_time - mw->matrix.last_click_time; if (row == mw->matrix.last_row && column == mw->matrix.last_column && delta < (unsigned long)mw->matrix.double_click_interval) ret = 1; else ret = 0; return ret; } /*ARGSUSED*/ static void PushButton(w, data, event, cont) Widget w; XtPointer data; XEvent *event; Boolean *cont; { XbaeMatrixButtonPressedStruct *button = (XbaeMatrixButtonPressedStruct *)data; XMotionEvent *motionEvent; int x, y; int row, column; Boolean pressed = button->pressed; CellType cell; if (event->type == ButtonRelease) { button->grabbed = False; XtRemoveGrab(w); scrolling = False; if (button->pressed) { /* If the button is still pressed, it has been released in the same button that was pressed. "Unpress" it and call the callbacks */ if (button->column == -1) xbaeDrawRowLabel(button->mw, button->row, False); else if (button->row == -1) xbaeDrawColumnLabel(button->mw, button->column, False); if (button->mw->matrix.label_activate_callback) { XbaeMatrixLabelActivateCallbackStruct call_data; call_data.reason = XbaeLabelActivateReason; call_data.event = event; call_data.row_label = (button->column == -1); call_data.row = button->row; call_data.column = button->column; if (button->column == -1) call_data.label = button->mw->matrix.row_labels[button->row]; else call_data.label = button->mw->matrix.column_labels[button->column]; XtCallCallbackList((Widget)button->mw, button->mw->matrix.label_activate_callback, (XtPointer)&call_data); } } return; } if (event->type != MotionNotify) /* We want to be sure about this! */ return; motionEvent = (XMotionEvent *)event; x = motionEvent->x; y = motionEvent->y; if (!xbaeEventToXY(button->mw, event, &x, &y, &cell)) return; if (xbaeXYToRowCol(button->mw, &x, &y, &row, &column, cell)) /* Moved off the labels */ pressed = False; else { if (button->column != column || button->row != row) /* Moved out of the button that was originally pressed */ pressed = False; else if (button->column == column || button->row == row) pressed = True; } /* If the status of whether or not the button should be pressed has changed, redraw the appropriate visual */ if (pressed != button->pressed) { if (button->column == -1) xbaeDrawRowLabel(button->mw, button->row, pressed); else if (button->row == -1) xbaeDrawColumnLabel(button->mw, button->column, pressed); /* And set our struct's pressed member to the current setting */ button->pressed = pressed; } } /*ARGSUSED*/ void xbaeHandleClick(w, data, event, cont) Widget w; XtPointer data; XEvent *event; Boolean *cont; { XbaeMatrixWidget mw = (XbaeMatrixWidget)data; int x, y; CellType cell; int row, column; Boolean translation; /* if we have a double click and a callback - break out! */ if (event->type != ButtonPress && event->type != ButtonRelease) return; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; translation = xbaeXYToRowCol(mw, &x, &y, &row, &column, cell); if (!translation && (mw->matrix.button_labels || (row == -1 && mw->matrix.column_button_labels && mw->matrix.column_button_labels[column]) || (column == -1 && mw->matrix.row_button_labels && mw->matrix.row_button_labels[row])) && ((row == -1) ^ (column == -1))) { unsigned long event_mask; XtAppContext appcontext; XbaeMatrixButtonPressedStruct button; /* If the row and column are invalid, return. If it is ButtonRelease event, also return - the ButtonRelease events are handled in the event handler loop below */ if (event->type != ButtonPress) return; if (column == -1 && event->type == ButtonPress) /* row label */ xbaeDrawRowLabel(mw, row, True); else if (row == -1 && event->type == ButtonPress) /* Column label */ xbaeDrawColumnLabel(mw, column, True); /* Action stations! */ event_mask = ButtonReleaseMask | PointerMotionMask; scrolling = True; XtAddGrab(w, True, False); /* Copy the data needed to be passed to the event handler */ button.mw = mw; button.row = row; button.column = column; button.pressed = True; button.grabbed = True; XtAddEventHandler(w, event_mask, True, (XtEventHandler)PushButton, (XtPointer)&button); XtAddEventHandler(TextChild(mw), event_mask, True, (XtEventHandler)PushButton, (XtPointer)&button); appcontext = XtWidgetToApplicationContext(w); while (button.grabbed) XtAppProcessEvent(appcontext, XtIMAll); XtRemoveEventHandler(w, event_mask, True, (XtEventHandler)PushButton, (XtPointer)&button); XtRemoveEventHandler(TextChild(mw), event_mask, True, (XtEventHandler)PushButton, (XtPointer)&button); } else if (translation && mw->matrix.default_action_callback && w != (Widget)mw && DoubleClick(mw, event, mw->matrix.current_row, mw->matrix.current_column)) { /* Put this as an else -> we don't want double clicks on labels to be recognised */ XbaeMatrixDefaultActionCallbackStruct call_data; if (row == -1 || column == -1) return; call_data.reason = XbaeDefaultActionReason; call_data.event = event; call_data.row = row; call_data.column = column; XtCallCallbackList((Widget)mw, mw->matrix.default_action_callback, (XtPointer)&call_data); } } /* ARGSUSED */ void xbaeSelectCellACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; int x, y; int row, column; CellType cell; XbaeMatrixSelectCellCallbackStruct call_data; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "xbaeSelectCellACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to SelectCell action", NULL, 0); return; } /* * If we don't have a selectCellCallback, then return now */ if (!mw->matrix.select_cell_callback) return; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; /* * Convert the point to a row,column. If it does not pick a valid * cell, then return. If button up then use the last selected cell * to make sure a valid button up event occurs when dragging out of * the matrix */ if (!xbaeXYToRowCol(mw, &x, &y, &row, &column, cell)) { if (event->type == ButtonRelease) { column = last_selected_column; row = last_selected_row; } else { return; } } /* * Call our select_cell callbacks */ call_data.reason = XbaeSelectCellReason; call_data.event = event; if (scrolling) { call_data.row = last_row; call_data.column = last_column; } else { call_data.row = row; call_data.column = column; } last_selected_column = call_data.column; last_selected_row = call_data.row; call_data.selected_cells = mw->matrix.selected_cells; call_data.cells = mw->matrix.cells; call_data.num_params = *nparams; call_data.params = params; XtCallCallbackList((Widget)mw, mw->matrix.select_cell_callback, (XtPointer)&call_data); } /* ARGSUSED */ void xbaeTraverseNextACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; /* * Get Matrix widget and make sure it is a Matrix subclass. * w should be the textField widget. */ if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "traverseNextACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to TraverseNext action", NULL, 0); return; } /* * Set the traversing direction flag. XmProcessTraversal may traverse * to the Clip widget. If it does, then we will see this flag in * the Clip focusCallback, TraverseInCB, and we will continue to traverse * on out of the mw. yuck! */ mw->matrix.traversing = XmTRAVERSE_NEXT_TAB_GROUP; (void)XmProcessTraversal(TextChild(mw), XmTRAVERSE_NEXT_TAB_GROUP); mw->matrix.traversing = NOT_TRAVERSING; } /* ARGSUSED */ void xbaeTraversePrevACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; /* * Get Matrix widget and make sure it is a Matrix subclass. * w should be the textField widget. */ if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "traversePrevACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to TraversePrev action", NULL, 0); return; } /* * Set the traversing direction flag. XmProcessTraversal may traverse * to the Clip widget. If it does, then we will see this flag in * the Clip focusCallback, TraverseInCB, and we will continue to traverse * on out of the mw. yuck! */ mw->matrix.traversing = (int)XmTRAVERSE_PREV_TAB_GROUP; (void)XmProcessTraversal(TextChild(mw), XmTRAVERSE_PREV_TAB_GROUP); mw->matrix.traversing = NOT_TRAVERSING; } static void callSelectCellAction(mw, event) XbaeMatrixWidget mw; XEvent *event; { XbaeMatrixSelectCellCallbackStruct call_data; Boolean old_scroll_select = mw->matrix.scroll_select; mw->matrix.scroll_select = False; call_data.reason = XbaeSelectCellReason; call_data.event = event; call_data.row = last_row; call_data.column = last_column; call_data.selected_cells = mw->matrix.selected_cells; call_data.cells = mw->matrix.cells; call_data.num_params = 1; call_data.params = (char **)XtMalloc(sizeof(char *)); call_data.params[0] = "extend"; XtCallCallbackList( (Widget)mw, mw->matrix.select_cell_callback, (XtPointer)&call_data); (void)XtFree((char *)call_data.params); mw->matrix.scroll_select = old_scroll_select; } /*ARGSUSED*/ static void checkScrollValues(w, data, event, cont) Widget w; XtPointer data; XEvent *event; Boolean *cont; { XbaeMatrixScrollStruct *ss = (XbaeMatrixScrollStruct *)data; XMotionEvent *motionEvent; int x, y; CellType cell; Boolean inMatrix; int distance = 0; int halfRows; int denom = 1; int row, column; int i; ss->event = event; if (event->type == ButtonRelease) { XtRemoveTimeOut(ss->timerID); ss->grabbed = False; if (ss->mw->matrix.selection_policy == XmMULTIPLE_SELECT || ss->mw->matrix.selection_policy == XmEXTENDED_SELECT) callSelectCellAction(ss->mw, ss->event); return; } if (!xbaeEventToXY(ss->mw, event, &x, &y, &cell)) return; motionEvent = (XMotionEvent *)event; /* * In this instance, we don't care if a valid row and column are * returned as we'll be the judge of the result */ inMatrix = xbaeXYToRowCol(ss->mw, &x, &y, &row, &column, cell); /* * Reset the flags, so the matrix stops scrolling when the * pointer is moved back into the fixed columns/rows after a drag * select in the fixed columns/rows which caused the matrix to * scroll vertically/horizontally. */ ss->below = False; ss->above = False; ss->left = False; ss->right = False; if (inMatrix && cell == NonFixedCell) { ss->inClip = True; return; } else { /* * Calculate our position relative to the clip and adjust. */ if (motionEvent->y >= (int)(ss->cw->core.y + ss->cw->core.height)) { /* Below the matrix */ distance = motionEvent->y - ss->cw->core.y - ss->cw->core.height; ss->below = True; ss->above = False; /* * If we are below the matrix, the current column may have * still changed from horizontal motion. */ i = 0; while (COLUMN_POSITION(ss->mw, i) < HORIZ_ORIGIN(ss->mw) + motionEvent->x) i++; if (i <= ss->mw->matrix.columns && i > 0) last_column = i - 1; } else if (motionEvent->y <= ss->cw->core.y) { /* * Above the matrix - can't be both above and below at the same * time unless we have two mouses! */ distance = ss->cw->core.y - motionEvent->y; ss->below = False; ss->above = True; i = 0; while (COLUMN_POSITION(ss->mw, i) < HORIZ_ORIGIN(ss->mw) + motionEvent->x) i++; if (i > 0 && i <= ss->mw->matrix.columns) last_column = i - 1; } if (motionEvent->x <= ss->cw->core.x) { /* To the left */ ss->left = True; ss->right = False; distance = Min(distance, ss->cw->core.x - motionEvent->x); /* * Check for any vertical motion */ if (!ss->below && !ss->above) { last_row = YtoRow(ss->mw, motionEvent->y - COLUMN_LABEL_HEIGHT(ss->mw)) + VERT_ORIGIN(ss->mw); SANITY_CHECK_ROW(ss->mw, last_row); } } else if (motionEvent->x >= (int)(ss->cw->core.x + ss->cw->core.width)) { /* To the right */ ss->left = False; ss->right = True; distance = Min(distance, (int)(motionEvent->x - ss->cw->core.x - ss->cw->core.width)); if (!ss->below && !ss->above) { last_row = YtoRow(ss->mw, motionEvent->y - COLUMN_LABEL_HEIGHT(ss->mw)) + VERT_ORIGIN(ss->mw); SANITY_CHECK_ROW(ss->mw, last_row); } } /* * Adjust the value of the update interval based on the distance we * are away from the matrix */ halfRows = distance / (ROW_HEIGHT(ss->mw) / 2); /* * Avoid use of the math library by doing a simple calculation */ for (i = 0; i < halfRows; i++) denom *= 2; ss->interval = DEFAULT_SCROLL_SPEED / (denom > 0 ? denom : 1); if (ss->interval <= 0) /* Just to be on the safe side */ ss->interval = 1; } } static void updateScroll(data) XtPointer data; { XbaeMatrixScrollStruct *ss = (XbaeMatrixScrollStruct *)data; Boolean callCallback = False; static int my_last_row = -1, my_last_column = -1; if (!scrolling) return; if (my_last_column != last_column || my_last_row != last_row) callCallback = True; my_last_row = last_row; my_last_column = last_column; /* * Off the clip widget - check there are cells that could * be scrolled into a visible position. If there are, * scroll them into view. If not, start setting the fixed * rows and columns as the current row and column. */ if (ss->below && last_row < TRAILING_VERT_ORIGIN(ss->mw) - 1) { xbaeMakeRowVisible(ss->mw, ++last_row); callCallback = True; } else if (ss->above && last_row > (int)ss->mw->matrix.fixed_rows) { xbaeMakeRowVisible(ss->mw, --last_row); callCallback = True; } if (ss->right && last_column < TRAILING_HORIZ_ORIGIN(ss->mw) - 1) { xbaeMakeColumnVisible(ss->mw, ++last_column); callCallback = True; } else if (ss->left && last_column > (int)ss->mw->matrix.fixed_columns) { xbaeMakeColumnVisible(ss->mw, --last_column); callCallback = True; } if (callCallback && (ss->mw->matrix.selection_policy == XmMULTIPLE_SELECT || ss->mw->matrix.selection_policy == XmEXTENDED_SELECT)) callSelectCellAction(ss->mw, ss->event); /* * Flush the updates out to the server so we don't end up lagging * behind too far and end up with a million redraw requests. * Particularly for higher update speeds */ XFlush(XtDisplay((Widget)ss->mw)); ss->timerID = XtAppAddTimeOut( ss->app_context, ss->interval, (XtTimerCallbackProc)updateScroll, (XtPointer)ss); } /* ARGSUSED */ void xbaeHandleMotionACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; XbaeClipWidget cw; XMotionEvent *motionEvent; XButtonEvent *buttonEvent; int x, y, row, column; CellType cell; Boolean inMatrix; if (scrolling) return; /* * Get Matrix widget and make sure it is a Matrix subclass. * w could be Matrix, or the Clip or textField children of Matrix */ if (XtIsSubclass(w, xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)w; else if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "handleMotionACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to HandleMotion action", NULL, 0); return; } motionEvent = (XMotionEvent *)event; buttonEvent = (XButtonEvent *)event; cw = (XbaeClipWidget)ClipChild(mw); if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return; /* * In this instance, we don't care if a valid row and column are * returned as we'll be the judge of the result */ inMatrix = xbaeXYToRowCol(mw, &x, &y, &row, &column, cell); if (inMatrix && cell == NonFixedCell) { /* * If we are in a NonFixedCell, then we're cruisin'. Just * update our position */ if (row != last_row || column != last_column) { if (row < mw->matrix.rows && column < mw->matrix.columns) { last_row = row; last_column = column; if (mw->matrix.selection_policy == XmMULTIPLE_SELECT || mw->matrix.selection_policy == XmEXTENDED_SELECT) callSelectCellAction(mw, event); } } } else { XbaeMatrixScrollStruct scrollData; Boolean cont; /* * Grab the pointer and add a timeout routine to start modifying * the current row and/or column in the matrix. Also add an * event handler to monitor the current distance outside the * matrix so we can adjust the timeout routine to go faster when * the pointer is further away from the matrix. */ scrolling = True; XtAddGrab(w, True, False); scrollData.mw = mw; scrollData.cw = cw; scrollData.event = event; scrollData.interval = DEFAULT_SCROLL_SPEED; scrollData.inClip = False; scrollData.grabbed = True; scrollData.app_context = XtWidgetToApplicationContext(w); scrollData.above = scrollData.below = False; scrollData.left = scrollData.right = False; XtAddEventHandler(w, PointerMotionMask | ButtonReleaseMask, True, (XtEventHandler)checkScrollValues, (XtPointer)&scrollData); /* * Call checkScrollValues() to find out where exactly we are in * relation to the clip widget */ checkScrollValues(w, (XtPointer)&scrollData, event, &cont); /* * The above / below / left / right members of the scrollData struct * should now be set so we know where we should be moving. Let's * get on with it, eh? */ updateScroll((XtPointer)&scrollData); while (scrollData.grabbed && !scrollData.inClip) XtAppProcessEvent(scrollData.app_context, XtIMAll); XtRemoveEventHandler(w, PointerMotionMask | ButtonReleaseMask, True, (XtEventHandler)checkScrollValues, (XtPointer)&scrollData); XtRemoveGrab(w); /* * We don't want the timeout getting called again as, in two lines, * we'll be way out of scope! */ XtRemoveTimeOut(scrollData.timerID); scrolling = False; } } /* ARGSUSED */ void xbaePageDownACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; char *down = "0"; int top; /* * Get Matrix widget and make sure it is a Matrix subclass. * w should be the textField widget. */ if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "pageDownACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to PageDown action", NULL, 0); return; } if (!XtIsManaged(VertScrollChild(mw))) return; /* * Save the top row - if scrolling occurs, the text widget needs * to be moved */ top = VERT_ORIGIN(mw); XtCallActionProc(VertScrollChild(mw), "PageDownOrRight", event, &down, 1); if (VERT_ORIGIN(mw) != top) /* * Position the cursor at the top most non fixed row if there was * a page down */ XbaeMatrixEditCell((Widget)mw, VERT_ORIGIN(mw) + mw->matrix.fixed_rows, mw->matrix.current_column); } /* ARGSUSED */ void xbaePageUpACT(w, event, params, nparams) Widget w; XEvent *event; String *params; Cardinal *nparams; { XbaeMatrixWidget mw; char *up = "0"; int top; /* * Get Matrix widget and make sure it is a Matrix subclass. * w should be the textField widget. */ if (XtIsSubclass(XtParent(w), xbaeMatrixWidgetClass)) mw = (XbaeMatrixWidget)XtParent(w); else { XtAppWarningMsg( XtWidgetToApplicationContext(w), "pageUpACT", "badWidget", "XbaeMatrix", "XbaeMatrix: Bad widget passed to PageUp action", NULL, 0); return; } if (!XtIsManaged(VertScrollChild(mw))) return; /* * Save the top row - if scrolling occurs, the text widget needs * to be moved */ top = VERT_ORIGIN(mw); XtCallActionProc(VertScrollChild(mw), "PageUpOrLeft", event, &up, 1); if (VERT_ORIGIN(mw) != top) /* * Position the cursor at the top most non fixed row if there was * a page down */ XbaeMatrixEditCell((Widget)mw, VERT_ORIGIN(mw) + mw->matrix.fixed_rows, mw->matrix.current_column); } grace-5.1.25/Xbae/Xbae/Utils.c0000644000076500001440000012456106766327622015465 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Utils.c,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Utils.c created by Andrew Lister (7 August, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include /* * Return the top and bottom-most visible non-fixed row */ void xbaeGetVisibleRows(mw, top_row, bottom_row) XbaeMatrixWidget mw; int *top_row, *bottom_row; { *top_row = VERT_ORIGIN(mw) + mw->matrix.fixed_rows; *bottom_row = *top_row + (VISIBLE_HEIGHT(mw) - 1) / ROW_HEIGHT(mw); SANITY_CHECK_ROW(mw, *bottom_row); } /* * Return the left and right-most visible non-fixed column */ void xbaeGetVisibleColumns(mw, left_column, right_column) XbaeMatrixWidget mw; int *left_column, *right_column; { *left_column = xbaeXtoCol(mw, FIXED_COLUMN_WIDTH(mw) + HORIZ_ORIGIN(mw)); *right_column = xbaeXtoCol(mw, FIXED_COLUMN_WIDTH(mw) + HORIZ_ORIGIN(mw) + VISIBLE_WIDTH(mw) - 1); } /* * Return the top and bottom row and left and right column of * the visible non-fixed cells */ void xbaeGetVisibleCells(mw, top_row, bottom_row, left_column, right_column) XbaeMatrixWidget mw; int *top_row, *bottom_row, *left_column, *right_column; { xbaeGetVisibleRows(mw, top_row, bottom_row); xbaeGetVisibleColumns(mw, left_column, right_column); } /* * Try to make the column specified by the leftColumn resource * be the left column. The column is relative to fixed_columns - so 0 would * be the first non-fixed column. * If we can't make leftColumn the left column, make it as close as possible. */ void xbaeAdjustLeftColumn(mw) XbaeMatrixWidget mw; { int y; int i; int required_width; int visible_width = VISIBLE_WIDTH(mw); int dynamic_columns; if (visible_width < 0) /* will happen on initialisation */ return; /* Adjust the column if it is out of bounds */ dynamic_columns = mw->matrix.columns - mw->matrix.fixed_columns - mw->matrix.trailing_fixed_columns; if (mw->matrix.left_column < 0) mw->matrix.left_column = 0; else if (mw->matrix.left_column > dynamic_columns-1) mw->matrix.left_column = dynamic_columns-1; /* Find out where the horiz_origin will be if we tried setting the given left column and adjust till it all fits */ do { required_width = 0; HORIZ_ORIGIN(mw) = 0; xbaeRowColToXY(mw, mw->matrix.fixed_rows, mw->matrix.left_column + mw->matrix.fixed_columns, &mw->matrix.horiz_origin, &y); /* Check how much space is remaining */ for (i = mw->matrix.left_column + mw->matrix.fixed_columns; i < mw->matrix.columns - (int)mw->matrix.trailing_fixed_columns; i++) { required_width += COLUMN_WIDTH(mw, i); if (required_width >= visible_width) break; } if (required_width < visible_width) mw->matrix.left_column--; } while (required_width < visible_width); } /* * Try to make the row specified by the topRow resource (VERT_ORIGIN) * be the top row. The row is relative to fixed_rows - so 0 would * be the first non-fixed row. * If we can't make topRow the top row, make it as close as possible. */ void xbaeAdjustTopRow(mw) XbaeMatrixWidget mw; { int rows_visible = VISIBLE_HEIGHT(mw) / ROW_HEIGHT(mw); /* * If we have less than one full row visible, then count it as a full row */ if (rows_visible <= 0) rows_visible = 1; /* * rows_visible might be inaccurate since Clip may not have been resized */ else if (rows_visible > mw->matrix.rows) rows_visible = mw->matrix.rows; if (VERT_ORIGIN(mw) > (int)(mw->matrix.rows - rows_visible - mw->matrix.fixed_rows - mw->matrix.trailing_fixed_rows)) mw->matrix.top_row = mw->matrix.rows - rows_visible - mw->matrix.fixed_rows - mw->matrix.trailing_fixed_rows; else if (VERT_ORIGIN(mw) < 0) mw->matrix.top_row = 0; } /* * Utility function to clear a cell so we can draw something new in it. * Does not generate expose events on the cell. * Does not check if the cell is actually visible before clearing it. */ void xbaeClearCell(mw, row, column) XbaeMatrixWidget mw; int row, column; { int x, y; Boolean fixed = IS_FIXED(mw, row, column); Window win = fixed ? XtWindow(mw) : XtWindow(ClipChild(mw)); if (!win || mw->matrix.disable_redisplay) return; xbaeRowColToXY(mw, row, column, &x, &y); /* * Make sure y coord is valid */ #if 0 if ((win == XtWindow(mw)) && ((y > (int)(CLIP_VERT_VISIBLE_SPACE(mw) + ROW_LABEL_OFFSET(mw) - 1)) || (y < (int)ROW_LABEL_OFFSET(mw)))) return; #endif XClearArea(XtDisplay(mw), win, x, y, COLUMN_WIDTH(mw, column), ROW_HEIGHT(mw), fixed); } /* * Return True if a row is visible on the screen (not scrolled totally off) */ Boolean xbaeIsRowVisible(mw, row) XbaeMatrixWidget mw; int row; { /* * If we are not in a fixed row or trailing fixed row, * see if we are on the screen vertically * (fixed rows are always on the screen) */ if (! IS_FIXED_ROW(mw, row)) { row -= mw->matrix.fixed_rows; if (row >= VERT_ORIGIN(mw)) { double height = ((double)ClipChild(mw)->core.height / ROW_HEIGHT(mw)) + VERT_ORIGIN(mw); if (row < height) return True; if ((int)ClipChild(mw)->core.height > (int)TEXT_HEIGHT_OFFSET(mw) && (int)ClipChild(mw)->core.height < ROW_HEIGHT(mw) && row == VERT_ORIGIN(mw)) return True; } } else return True; return False; } /* * Return True if a column is visible on the screen (not scrolled totally off) */ Boolean xbaeIsColumnVisible(mw, column) XbaeMatrixWidget mw; int column; { /* * If we are not in a fixed column, see if we are on the screen * horizontally (fixed columns are always on the screen) */ if (! IS_FIXED_COLUMN(mw, column)) { int x; /* * Calculate the x endpoints of this column */ x = COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, mw->matrix.fixed_columns); /* * Check if we are visible horizontally */ if (x + COLUMN_WIDTH(mw, column) > HORIZ_ORIGIN(mw) && x < (int)(ClipChild(mw)->core.width) + HORIZ_ORIGIN(mw)) return True; } else return True; return False; } /* * Return True if a cell is visible on the screen (not scrolled totally off) */ Boolean xbaeIsCellVisible(mw, row, column) XbaeMatrixWidget mw; int row, column; { return xbaeIsRowVisible(mw, row) && xbaeIsColumnVisible(mw, column); } /* * Scroll a row so it is visible on the screen. */ void xbaeMakeRowVisible(mw, row) XbaeMatrixWidget mw; int row; { int rows_visible; int value, slider_size, increment, page_increment, vert_value; /* * If we are in a fixed row, we are already visible. */ if (IS_FIXED_ROW(mw, row)) return; /* * Take into account fixed_rows. * Calculate the number of rows visible. If less than one full * row is visible, use one full row. */ row -= mw->matrix.fixed_rows; rows_visible = VISIBLE_HEIGHT(mw) / ROW_HEIGHT(mw); if (rows_visible == 0) rows_visible = 1; /* * Figure out the new value of the VSB to scroll this cell * onto the screen (the VSB uses row coordinates instead of pixels) */ if (row < VERT_ORIGIN(mw)) vert_value = row; else if (row >= rows_visible + VERT_ORIGIN(mw)) vert_value = row - rows_visible + 1; else vert_value = VERT_ORIGIN(mw); /* * Give the VSB the new value and pass a flag to make it call * our scroll callbacks */ if (vert_value != VERT_ORIGIN(mw)) { XmScrollBarGetValues(VertScrollChild(mw), &value, &slider_size, &increment, &page_increment); XmScrollBarSetValues(VertScrollChild(mw), vert_value, slider_size, increment, page_increment, True); } } /* * Scroll a column so it is visible on the screen. */ void xbaeMakeColumnVisible(mw, column) XbaeMatrixWidget mw; int column; { int value, slider_size, increment, page_increment, x, horiz_value; /* * If we are in a fixed column, we are already visible. */ if (IS_FIXED_COLUMN(mw, column)) return; /* * Calculate the x position of this column */ x = COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, mw->matrix.fixed_columns); /* * Figure out the new value of the HSB to scroll this cell * onto the screen. If the whole cell won't fit, scroll so its * left edge is visible. */ if (x < HORIZ_ORIGIN(mw)) horiz_value = x; else if (x + COLUMN_WIDTH(mw, column) > VISIBLE_WIDTH(mw) + HORIZ_ORIGIN(mw)) { int off = (x + COLUMN_WIDTH(mw, column)) - (VISIBLE_WIDTH(mw) + HORIZ_ORIGIN(mw)); if (x - off < HORIZ_ORIGIN(mw)) horiz_value = x; else horiz_value = HORIZ_ORIGIN(mw) + off; } else horiz_value = HORIZ_ORIGIN(mw); /* * Give the HSB the new value and pass a flag to make it * call our scroll callbacks */ if (horiz_value != HORIZ_ORIGIN(mw)) { XmScrollBarGetValues(HorizScrollChild(mw), &value, &slider_size, &increment, &page_increment); XmScrollBarSetValues(HorizScrollChild(mw), horiz_value, slider_size, increment, page_increment, True); } } /* * Scrolls a fixed or non-fixed cell so it is visible on the screen. */ void xbaeMakeCellVisible(mw, row, column) XbaeMatrixWidget mw; int row, column; { if (!xbaeIsRowVisible(mw, row)) xbaeMakeRowVisible(mw, row); if (!xbaeIsColumnVisible(mw, column)) xbaeMakeColumnVisible(mw, column); } /* * Set the clip_mask in our draw and shadow GCs. This is necessary for * drawing non-fixed column labels and fixed rows. */ void xbaeSetClipMask(mw, clip_reason) XbaeMatrixWidget mw; unsigned int clip_reason; { XRectangle r[2]; int n = 1; /* * Set new clip reason */ mw->matrix.current_clip = clip_reason; /* * XRectangle enclosing column labels and fixed rows */ if ((CLIP_FIXED_COLUMNS & clip_reason) && mw->matrix.fixed_columns) { r[0].x = COLUMN_LABEL_OFFSET(mw); r[0].width = FIXED_COLUMN_WIDTH(mw); } else if ((CLIP_TRAILING_FIXED_COLUMNS & clip_reason) && (mw->matrix.trailing_fixed_columns || mw->matrix.fill)) { r[0].x = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); r[0].width = TRAILING_FIXED_COLUMN_WIDTH(mw); if (NEED_HORIZ_FILL(mw)) r[0].width += FILL_HORIZ_WIDTH(mw); } else { r[0].x = FIXED_COLUMN_LABEL_OFFSET(mw); r[0].width = ClipChild(mw)->core.width; if (NEED_HORIZ_FILL(mw)) r[0].width += FILL_HORIZ_WIDTH(mw); } if (CLIP_VISIBLE_HEIGHT & clip_reason) { r[0].y = ROW_LABEL_OFFSET(mw); r[0].height = ClipChild(mw)->core.height + FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw); if (NEED_VERT_FILL(mw)) r[0].height += FILL_VERT_HEIGHT(mw); } else if ((CLIP_TRAILING_FIXED_ROWS & clip_reason) && (mw->matrix.trailing_fixed_rows || mw->matrix.fill)) { r[0].y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); r[0].height = TRAILING_FIXED_ROW_HEIGHT(mw); if (NEED_VERT_FILL(mw)) r[0].height += FILL_VERT_HEIGHT(mw); } else if (CLIP_BETWEEN_FIXED_ROWS & clip_reason) { r[0].y = FIXED_ROW_LABEL_OFFSET(mw); r[0].height = ClipChild(mw)->core.height; } else /* clip fixed rows & clip_reason */ { r[0].y = HORIZ_SB_OFFSET(mw); r[0].height = FIXED_ROW_LABEL_OFFSET(mw); } if (mw->matrix.row_labels) { r[1].x = VERT_SB_OFFSET(mw); r[1].y = FIXED_ROW_LABEL_OFFSET(mw); r[1].width = ROW_LABEL_WIDTH(mw); r[1].height = ClipChild(mw)->core.height; n = 2; } /* * Reset the clip_mask in our clipping GCs */ XSetClipRectangles(XtDisplay(mw), mw->matrix.cell_grid_line_gc, 0, 0, r, n, Unsorted); XSetClipRectangles(XtDisplay(mw), mw->matrix.cell_top_shadow_clip_gc, 0, 0, r, n, Unsorted); XSetClipRectangles(XtDisplay(mw), mw->matrix.cell_bottom_shadow_clip_gc, 0, 0, r, n, Unsorted); XSetClipRectangles(XtDisplay(mw), mw->matrix.label_clip_gc, 0, 0, r, n, Unsorted); } /* * Get the total pixel width of the non-fixed cell area */ void xbaeGetCellTotalWidth(mw) XbaeMatrixWidget mw; { int i, columns; /* * Calculate width of non-fixed cell area. */ columns = TRAILING_HORIZ_ORIGIN(mw); for (i = mw->matrix.fixed_columns, mw->matrix.non_fixed_total_width = 0; i < columns; i++) mw->matrix.non_fixed_total_width += COLUMN_WIDTH(mw, i); } /* * Cache the pixel position of each column */ void xbaeGetColumnPositions(mw) XbaeMatrixWidget mw; { int i, x; for (i = 0, x = 0; i < mw->matrix.columns; x += COLUMN_WIDTH(mw, i), i++) COLUMN_POSITION(mw, i) = x; } void #if NeedFunctionPrototypes xbaeComputeSize(XbaeMatrixWidget mw, Boolean compute_width, Boolean compute_height) #else xbaeComputeSize(mw, compute_width, compute_height) XbaeMatrixWidget mw; Boolean compute_width; Boolean compute_height; #endif { unsigned long full_width = NON_FIXED_TOTAL_WIDTH(mw) + FIXED_COLUMN_WIDTH(mw) + TRAILING_FIXED_COLUMN_WIDTH(mw) + ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness; unsigned long full_height = CELL_TOTAL_HEIGHT(mw) + FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw) + COLUMN_LABEL_HEIGHT(mw) + 2 * mw->manager.shadow_thickness; unsigned long width, height; /* * Calculate our width. * If visible_columns is set, then base it on that. * Otherwise, if the compute_width flag is set, then we are full width. * Otherwise we keep whatever width we are. */ if (mw->matrix.visible_columns) width = ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness + COLUMN_WIDTH(mw, (mw->matrix.visible_columns + mw->matrix.fixed_columns) - 1) + COLUMN_POSITION(mw, mw->matrix.fixed_columns + mw->matrix.visible_columns - 1) + TRAILING_FIXED_COLUMN_WIDTH(mw); else if (compute_width) width = full_width; else width = mw->core.width; /* * Calculate our height. * If visible_rows is set, then base it on that. * Otherwise, if the compute_height flag is set, then we are full height. * Otherwise we keep whatever height we are. */ if (mw->matrix.visible_rows) height = mw->matrix.visible_rows * ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw) + FIXED_ROW_HEIGHT(mw) + COLUMN_LABEL_HEIGHT(mw) + 2 * mw->manager.shadow_thickness; else if (compute_height) height = full_height; else height = mw->core.height; /* * Store our calculated size. */ mw->core.width = width; mw->core.height = height; /* * If we are less than full width or our horizontal display policy is * constant, then we need an HSB, so increment our height by the size * of the HSB (if we are allowed to modify our height and we are allowed * to have an HSB). */ if (((width < full_width) || (XmDISPLAY_STATIC == mw->matrix.hsb_display_policy)) && (compute_height || mw->matrix.visible_rows) && (XmDISPLAY_NONE != mw->matrix.hsb_display_policy)) mw->core.height += HORIZ_SB_HEIGHT(mw); /* * If we are less than full height or our vertical display policy is * constant, then we need a VSB, so increment our width by the size * of the VSB (if we are allowed to modify our width and we are allowed * to have a VSB). */ if (((height < full_height) || (XmDISPLAY_STATIC == mw->matrix.vsb_display_policy)) && (compute_width || mw->matrix.visible_columns) && (XmDISPLAY_NONE != mw->matrix.vsb_display_policy)) mw->core.width += VERT_SB_WIDTH(mw); /* * Save our calculated size for use in our query_geometry method. * This is the size we really want to be (not necessarily the size * we will end up being). */ mw->matrix.desired_width = mw->core.width; mw->matrix.desired_height = mw->core.height; } /* * Return the length of the longest row label */ short xbaeMaxRowLabel(mw) XbaeMatrixWidget mw; { int i; short max = 0, len; /* * Determine the length of the longest row label */ for (i = 0; i < mw->matrix.rows; i++) { len = strlen(mw->matrix.row_labels[i]); if (len > max) max = len; } return max; } void xbaeParseColumnLabel(label, lines) String label; ColumnLabelLines lines; { char *nl; /* * First count the number of lines in the label */ lines->lines = 1; nl = label; while ((nl = strchr(nl, '\n')) != NULL) { nl++; lines->lines++; } /* * Now malloc a lengths array of the correct size. */ lines->lengths = (int *) XtMalloc(lines->lines * sizeof(int)); /* * An entry in the lengths array is the length of that line (substring). */ /* * Handle the case of one line (no strchr() needed) */ if (lines->lines == 1) lines->lengths[0] = strlen(label); else { int i; nl = label; i = 0; while ((nl = strchr(nl, '\n')) != NULL) { lines->lengths[i] = nl - label; nl++; label = nl; i++; } lines->lengths[i] = strlen(label); } } /* * Convert an x/y pixel position to the row/column cell position it picks. * 'cell' specifies whether the x/y coord is relative to the fixed cells * window or the non-fixed cells window. * The coords x,y are adjusted so they are relative to the origin of the * picked cell. * If we are "out of bounds" on the ``low'' side, go ahead and return False * to show an error, but also set the row/column to -1 to indicate this could * be a row/column header. This is currently undocumented behaviour, but * may be useful nevertheless. */ Boolean xbaeXYToRowCol(mw, x, y, row, column, cell) XbaeMatrixWidget mw; int *x, *y; int *row, *column; CellType cell; { Rectangle rect; unsigned int inBox = CLIP_NONE; Boolean need_vert_dead_space_fill = NEED_VERT_DEAD_SPACE_FILL(mw); int horiz_sb_offset = HORIZ_SB_OFFSET(mw); int vert_sb_offset = VERT_SB_OFFSET(mw); int column_label_height = COLUMN_LABEL_HEIGHT(mw); int row_label_offset = ROW_LABEL_OFFSET(mw); int row_label_width = ROW_LABEL_WIDTH(mw); int fixed_row_label_offset = FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_row_label_offset = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); int trailing_fixed_row_height = TRAILING_FIXED_ROW_HEIGHT(mw); int fixed_column_label_offset = FIXED_COLUMN_LABEL_OFFSET(mw); int trailing_fixed_column_label_offset = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); int trailing_fixed_column_width = TRAILING_FIXED_COLUMN_WIDTH(mw); int column_label_offset = COLUMN_LABEL_OFFSET(mw); int row_height = ROW_HEIGHT(mw); int unattached_trailing_rows_offset = UNATTACHED_TRAILING_ROWS_OFFSET(mw); *row = -1; *column = -1; switch (cell) { case FixedCell: /* * Check the various rectangles enclosing the cells in fixed rows * or columns. * * If we don't have fixed rows or columns, then we didn't hit a cell. */ /* * Upper left */ if (!inBox && mw->matrix.fixed_columns && mw->matrix.fixed_rows) { SETRECT(rect, column_label_offset, row_label_offset, fixed_column_label_offset - 1, fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_FIXED_COLUMNS | CLIP_FIXED_ROWS; } /* * Lower left */ if (!inBox && mw->matrix.fixed_columns && mw->matrix.trailing_fixed_rows) { SETRECT(rect, column_label_offset, trailing_fixed_row_label_offset, fixed_column_label_offset - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_FIXED_COLUMNS | CLIP_TRAILING_FIXED_ROWS; } /* * Upper right */ if (!inBox && mw->matrix.trailing_fixed_columns && mw->matrix.fixed_rows) { SETRECT(rect, trailing_fixed_column_label_offset, row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_FIXED_COLUMNS | CLIP_FIXED_ROWS; } /* * Lower right */ if (!inBox && mw->matrix.trailing_fixed_columns && mw->matrix.trailing_fixed_rows) { SETRECT(rect, trailing_fixed_column_label_offset, trailing_fixed_row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_FIXED_COLUMNS | CLIP_TRAILING_FIXED_ROWS; } /* * Right (mid) */ if (!inBox && mw->matrix.fixed_columns) { SETRECT(rect, column_label_offset, fixed_row_label_offset, fixed_column_label_offset - 1, need_vert_dead_space_fill ? unattached_trailing_rows_offset : trailing_fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_FIXED_COLUMNS; } /* * Upper (mid) */ if (!inBox && mw->matrix.fixed_rows) { SETRECT(rect, fixed_column_label_offset, row_label_offset, trailing_fixed_column_label_offset - 1, fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_FIXED_ROWS; } /* * Left (mid) */ if (!inBox && mw->matrix.trailing_fixed_columns) { SETRECT(rect, trailing_fixed_column_label_offset, fixed_row_label_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, need_vert_dead_space_fill ? unattached_trailing_rows_offset : trailing_fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_FIXED_COLUMNS; } /* * Lower (mid) */ if (!inBox && mw->matrix.trailing_fixed_rows) { SETRECT(rect, fixed_column_label_offset, trailing_fixed_row_label_offset, trailing_fixed_column_label_offset - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_FIXED_ROWS; } /* * Trailing horizontal fill. This is trickier because * even though we're in the fixed cell section, this really * might not be a fixed cell. */ if (!inBox && IN_GRID_ROW_MODE(mw) && NEED_HORIZ_FILL(mw)) { int rx = trailing_fixed_column_label_offset + trailing_fixed_column_width; /* * Upper fill */ if (!inBox && mw->matrix.fixed_rows) { SETRECT(rect, rx, row_label_offset, rx + FILL_HORIZ_WIDTH(mw) - 1, fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_HORIZ_FILL | CLIP_FIXED_ROWS; } /* * Lower fill */ if (!inBox && mw->matrix.trailing_fixed_rows) { SETRECT(rect, rx, trailing_fixed_row_label_offset, rx + FILL_HORIZ_WIDTH(mw) - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_HORIZ_FILL | CLIP_TRAILING_FIXED_ROWS; } /* * Mid fill */ if (!inBox) { SETRECT(rect, rx, row_label_offset, rx + FILL_HORIZ_WIDTH(mw) - 1, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_HORIZ_FILL; } } /* * Trailing vertical fill */ if (!inBox && IN_GRID_COLUMN_MODE(mw) && NEED_VERT_FILL(mw)) { int ry = trailing_fixed_row_label_offset + trailing_fixed_row_height; /* * Left fill */ if (mw->matrix.fixed_columns) { SETRECT(rect, column_label_offset, ry, fixed_column_label_offset - 1, ry + FILL_VERT_HEIGHT(mw) - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_VERT_FILL | CLIP_FIXED_COLUMNS; } /* * Right fill */ if (!inBox && mw->matrix.trailing_fixed_columns) { SETRECT(rect, trailing_fixed_column_label_offset, ry, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, ry + FILL_VERT_HEIGHT(mw) - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_VERT_FILL | CLIP_TRAILING_FIXED_COLUMNS; } /* * Mid fill */ if (!inBox) { SETRECT(rect, column_label_offset, ry, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, ry + FILL_VERT_HEIGHT(mw) - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_TRAILING_VERT_FILL; } } /* * If the point is in this rectangle, calculate the row/column * it hits. Otherwise we didn't hit a cell. */ if (inBox) { /* * Translate the point to rect's coord system */ if (mw->matrix.fixed_columns && (CLIP_TRAILING_FIXED_ROWS == inBox || CLIP_FIXED_ROWS == inBox)) *x -= column_label_offset; else *x -= rect.x1; *y -= rect.y1; /* * Convert this point to a row/column. We need to take into * account the scrolling origins depending on which fixed * areas the point is located in. */ if (CLIP_TRAILING_VERT_FILL & inBox) { *row = mw->matrix.rows - 1; *y += row_height; } else *row = YtoRow(mw, *y) + ((((CLIP_FIXED_COLUMNS & inBox) || (CLIP_TRAILING_FIXED_COLUMNS & inBox))) && !((CLIP_FIXED_ROWS & inBox) || (CLIP_TRAILING_FIXED_ROWS & inBox)) ? mw->matrix.fixed_rows : 0) + ((CLIP_FIXED_ROWS & inBox) ? 0 : VERT_ORIGIN(mw)) + ((CLIP_TRAILING_FIXED_ROWS & inBox) ? TRAILING_VERT_ORIGIN(mw) - VERT_ORIGIN(mw) : 0); if ((CLIP_TRAILING_FIXED_COLUMNS & inBox) || (CLIP_TRAILING_HORIZ_FILL & inBox)) *column = xbaeXtoTrailingCol(mw, *x); else *column = xbaeXtoCol( mw, *x + ((CLIP_FIXED_COLUMNS & inBox) ? 0 : HORIZ_ORIGIN(mw))); /* * Sanity check the result, making sure it is in fixed location */ if (((*row < 0) || (*column < 0)) || (((mw->matrix.fixed_rows && (*row >= (int)mw->matrix.fixed_rows) && (!mw->matrix.trailing_fixed_rows || (mw->matrix.trailing_fixed_rows && (*row < TRAILING_VERT_ORIGIN(mw))))) || (!mw->matrix.fixed_rows && mw->matrix.trailing_fixed_rows && (*row < TRAILING_VERT_ORIGIN(mw)))) && ((mw->matrix.fixed_columns && (*column >= (int)mw->matrix.fixed_columns) && (!mw->matrix.trailing_fixed_columns || (mw->matrix.trailing_fixed_columns && (*column < TRAILING_HORIZ_ORIGIN(mw))))) || (!mw->matrix.fixed_columns && mw->matrix.trailing_fixed_columns && (*column < TRAILING_HORIZ_ORIGIN(mw)))))) return False; /* * Adjust x,y so they are relative to this cells origin. */ if (CLIP_TRAILING_HORIZ_FILL & inBox) *x += COLUMN_WIDTH(mw, *column); else *x -= COLUMN_POSITION(mw, *column) - (mw->matrix.fixed_columns || (CLIP_TRAILING_FIXED_COLUMNS & inBox) ? 0 : HORIZ_ORIGIN(mw)) - ((CLIP_TRAILING_FIXED_COLUMNS & inBox) ? COLUMN_POSITION(mw, TRAILING_HORIZ_ORIGIN(mw)) : 0); if (!(CLIP_TRAILING_VERT_FILL & inBox)) *y %= row_height; return True; } else return False; /* NOTREACHED */ break; case RowLabelCell: if (!inBox && mw->matrix.row_labels) { /* Check the various regions of the matrix to make sure we get the correct row label */ if (mw->matrix.fixed_rows) { SETRECT(rect, vert_sb_offset, row_label_offset, row_label_width + vert_sb_offset, fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_ROW_LABELS | CLIP_FIXED_ROWS; } if (!inBox && mw->matrix.trailing_fixed_rows) { SETRECT(rect, vert_sb_offset, trailing_fixed_row_label_offset, row_label_width + vert_sb_offset, trailing_fixed_row_label_offset + trailing_fixed_row_height - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_ROW_LABELS | CLIP_TRAILING_FIXED_ROWS; } /* check the rows in the non fixed regions */ if (!inBox) { SETRECT(rect, vert_sb_offset, fixed_row_label_offset, row_label_width + vert_sb_offset, trailing_fixed_row_label_offset - 1); if (INBOX(rect, *x, *y)) inBox = CLIP_ROW_LABELS; } } if (CLIP_ROW_LABELS & inBox) { *y -= row_label_offset; *row = YtoRow(mw, *y); *row += (CLIP_FIXED_ROWS & inBox ? 0 : mw->matrix.top_row); *row += ((CLIP_TRAILING_FIXED_ROWS & inBox) ? (CELL_TOTAL_HEIGHT(mw) - VISIBLE_HEIGHT(mw)) / row_height - mw->matrix.top_row: 0); *column = -1; } else { *row = -1; *column = -1; } /* Sanity check - make sure we don't over step the mark */ if (*row >= mw->matrix.rows || *column >= mw->matrix.columns) { *row = -1; *column = -1; } return False; /*NOTREACHED*/ break; case ColumnLabelCell: if (!inBox && mw->matrix.column_labels) { if (mw->matrix.fixed_columns) { SETRECT(rect, column_label_offset, horiz_sb_offset, fixed_column_label_offset - 1, column_label_height + horiz_sb_offset); if (INBOX(rect, *x, *y)) inBox = CLIP_FIXED_COLUMNS | CLIP_COLUMN_LABELS; } if (!inBox && mw->matrix.trailing_fixed_columns) { SETRECT(rect, trailing_fixed_column_label_offset, horiz_sb_offset, trailing_fixed_column_label_offset + trailing_fixed_column_width - 1, column_label_height + horiz_sb_offset); if (INBOX(rect, *x, *y)) inBox = CLIP_COLUMN_LABELS | CLIP_TRAILING_FIXED_COLUMNS; } /* check the columns in the non fixed regions */ if (!inBox) { SETRECT(rect, fixed_column_label_offset, horiz_sb_offset, trailing_fixed_column_label_offset, column_label_height + horiz_sb_offset); if (INBOX(rect, *x, *y)) inBox = CLIP_COLUMN_LABELS; } } if (CLIP_COLUMN_LABELS & inBox) { *x -= column_label_offset; if (CLIP_TRAILING_FIXED_COLUMNS & inBox) *column = xbaeXtoTrailingCol(mw, *x); else *column = xbaeXtoCol(mw, *x + ((CLIP_FIXED_COLUMNS & inBox) ? 0 : HORIZ_ORIGIN(mw))); *row = -1; } else { *row = -1; *column = -1; } /* Sanity check - make sure we don't overstep the mark */ if (*row >= mw->matrix.rows || *column >= mw->matrix.columns) { *row = -1; *column = -1; } return False; /* NOTREACHED */ break; case NonFixedCell: /* * Translate the point to take into account fixed rows or columns. */ *x += FIXED_COLUMN_WIDTH(mw); *y += FIXED_ROW_HEIGHT(mw); /* * Convert the new point to a row/column position */ *row = YtoRow(mw, *y + mw->matrix.first_row_offset) + VERT_ORIGIN(mw); *column = xbaeXtoCol(mw, *x + HORIZ_ORIGIN(mw)); /* * Sanity check the result */ if (*row >= TRAILING_VERT_ORIGIN(mw) || *column >= TRAILING_HORIZ_ORIGIN(mw) || *row < 0 || *column < 0) return False; /* * Adjust x,y so they are relative to this cell's origin. */ *x -= COLUMN_POSITION(mw, *column) - HORIZ_ORIGIN(mw); *y %= row_height; return True; /* NOTREACHED */ break; default: *row = -1; *column = -1; return False; } } /* * Convert the coordinates in an event to be relative to the Clip * window or the Matrix window. Set the cell to indicate which one. * Used by some actions. */ /* ARGSUSED */ Boolean xbaeEventToXY(mw, event, x, y, cell) XbaeMatrixWidget mw; XEvent *event; int *x, *y; CellType *cell; { switch (event->type) { case ButtonPress: case ButtonRelease: *x = event->xbutton.x; *y = event->xbutton.y; break; case KeyPress: case KeyRelease: *x = event->xkey.x; *y = event->xkey.y; break; case MotionNotify: *x = event->xmotion.x; *y = event->xmotion.y; break; default: return False; } if (event->xbutton.subwindow == XtWindow(ClipChild(mw))) { *cell = NonFixedCell; *x -= FIXED_COLUMN_LABEL_OFFSET(mw); *y -= FIXED_ROW_LABEL_OFFSET(mw); } else if (event->xbutton.window == XtWindow(mw)) if (*x < (int)COLUMN_LABEL_OFFSET(mw) && *x > (int)VERT_SB_OFFSET(mw)) *cell = RowLabelCell; else if (*y < (int)ROW_LABEL_OFFSET(mw) && *y > (int)HORIZ_SB_OFFSET(mw)) *cell = ColumnLabelCell; else *cell = FixedCell; else if (event->xbutton.window == XtWindow(ClipChild(mw))) *cell = NonFixedCell; else if (event->xbutton.window == XtWindow(TextChild(mw))) { Position tx, ty; if (mw->matrix.current_parent == ClipChild(mw)) *cell = NonFixedCell; else if (mw->matrix.current_parent == (Widget)mw) *cell = FixedCell; else /* We're on one of the extra clips */ { *cell = FixedCell; *x += mw->matrix.current_parent->core.x; *y += mw->matrix.current_parent->core.y; } XtVaGetValues(TextChild(mw), XmNx, &tx, XmNy, &ty, NULL); *x += tx; *y += ty; } else return False; return True; } /* * Convert a pixel position to the column it is contained in. */ int xbaeXtoCol(mw, x) XbaeMatrixWidget mw; int x; { int i; for (i = 0; i < mw->matrix.columns; i++) if (COLUMN_POSITION(mw, i) > x) return i - 1; /* * I have seen cases where this function returned mw->matrix.columns * causing a crash as array bounds are read - AL */ if (i > mw->matrix.columns) return mw->matrix.columns - 1; return i - 1; } /* * Convert a pixel position to the trailing * fixed column it is contained in */ int xbaeXtoTrailingCol(mw, x) XbaeMatrixWidget mw; int x; { int i; x += COLUMN_POSITION(mw, TRAILING_HORIZ_ORIGIN(mw)); for (i = TRAILING_HORIZ_ORIGIN(mw); i < mw->matrix.columns; i++) { if (COLUMN_POSITION(mw, i) > x) return i - 1; } return i - 1; } /* * Convert a row/column cell position to the x/y of its upper left corner * wrt the window it will be drawn in (either the matrix window for * fixed cells, or the clip window for non-fixed). */ void xbaeRowColToXY(mw, row, column, x, y) XbaeMatrixWidget mw; int row; int column; int *x; int *y; { /* * If we are in a fixed cell, calculate x/y relative to Matrixs * window (take into account labels etc) */ if (IS_FIXED(mw, row, column)) { /* * Ignore horiz_origin if we are in a fixed column */ if (IS_LEADING_FIXED_COLUMN(mw, column)) { if (IS_FIXED_ROW(mw, row)) *x = COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column); else *x = COLUMN_POSITION(mw, column); /* LeftClip */ } else if (IS_TRAILING_FIXED_COLUMN(mw, column)) { int m; if (IS_FIXED_ROW(mw, row)) *x = TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); else *x = 0; /* RightClip */ for (m = TRAILING_HORIZ_ORIGIN(mw); m < column; m++) *x += COLUMN_WIDTH(mw, m); } else if (IS_FIXED_ROW(mw, row)) *x = (COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, mw->matrix.fixed_columns)) - HORIZ_ORIGIN(mw); else *x = COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column) - HORIZ_ORIGIN(mw); /* * Ignore vert_origin if we are in a fixed row */ if (IS_LEADING_FIXED_ROW(mw, row)) { if (IS_FIXED_COLUMN(mw, column)) *y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * row; else *y = ROW_HEIGHT(mw) * row; /* TopClip */ } else if (IS_TRAILING_FIXED_ROW(mw, row)) { int m; if (IS_FIXED_COLUMN(mw, column)) *y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw); else *y = 0; /* BottomClip */ for (m = TRAILING_VERT_ORIGIN(mw); m < row; m++) *y += ROW_HEIGHT(mw); } else if (IS_FIXED_COLUMN(mw, column)) *y = ROW_HEIGHT(mw) * ((row - (int)mw->matrix.fixed_rows) - VERT_ORIGIN(mw)); else *y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * (row - VERT_ORIGIN(mw)); } /* * If we are not fixed we must account for fixed rows/columns * and scrolling origins. */ else { *x = (COLUMN_POSITION(mw, column) - COLUMN_POSITION(mw, mw->matrix.fixed_columns)) - HORIZ_ORIGIN(mw); *y = ROW_HEIGHT(mw) * ((row - (int) mw->matrix.fixed_rows) - VERT_ORIGIN(mw)); *y -= mw->matrix.first_row_offset; } } #define FIXED_NONE 0 #define FIXED_LEFT 1 #define FIXED_RIGHT 2 #define FIXED_TOP 4 #define FIXED_BOTTOM 8 #define FIXED_TOPLEFT 5 #define FIXED_TOPRIGHT 6 #define FIXED_BOTLEFT 9 #define FIXED_BOTRIGHT 10 /* Gotta love that numbering scheme! - AL */ /* * Returns the window on which a cell is displayed, i.e. the matrix, the clip, * or one of the extra clips which handle the fixed row/col cells. */ Window xbaeGetCellWindow(mw, w, row, column) XbaeMatrixWidget mw; Widget *w; int row, column; { int posn; Window win; if (IS_LEADING_FIXED_ROW(mw, row)) posn = FIXED_TOP; else if (IS_TRAILING_FIXED_ROW(mw, row)) posn = FIXED_BOTTOM; else posn = FIXED_NONE; if (IS_LEADING_FIXED_COLUMN(mw, column)) posn += FIXED_LEFT; else if (IS_TRAILING_FIXED_COLUMN(mw, column)) posn += FIXED_RIGHT; else posn += FIXED_NONE; /* add zero!? */ switch(posn) { case FIXED_TOPLEFT: case FIXED_TOPRIGHT: case FIXED_BOTLEFT: case FIXED_BOTRIGHT: /* total fixed cell - on parent matrix window */ *w = (Widget)mw; win = XtWindow(mw); break; case FIXED_NONE: /* not fixed at all - on clip child */ *w = ClipChild(mw); win = XtWindow(ClipChild(mw)); break; case FIXED_LEFT: /* fixed col only - on left clip */ *w = LeftClip(mw); win = XtWindow(LeftClip(mw)); break; case FIXED_RIGHT: /* fixed trailing col only - on right clip */ win = XtWindow(RightClip(mw)); *w = RightClip(mw); break; case FIXED_TOP: /* fixed row only - on top clip */ win = XtWindow(TopClip(mw)); *w = TopClip(mw); break; case FIXED_BOTTOM: /* fixed trailing row only - on bottom clip */ win = XtWindow(BottomClip(mw)); *w = BottomClip(mw); break; default: /* bogus */ win = (Window)NULL; *w = (Widget)NULL; } return win; } void xbaeCalcVertFill(mw, win, x, y, row, column, ax, ay, width, height) XbaeMatrixWidget mw; Window win; int x; int y; int row; int column; int *ax; int *ay; int *width; int *height; { *ax = x; *width = COLUMN_WIDTH(mw, column); if (win == XtWindow(LeftClip(mw))) { *ax += COLUMN_LABEL_OFFSET(mw); *ay = LeftClip(mw)->core.y + LeftClip(mw)->core.height; } else if (win == XtWindow(RightClip(mw))) { *ax += TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw); *ay = RightClip(mw)->core.y + RightClip(mw)->core.height; } else if (win == XtWindow(BottomClip(mw))) { *ax += BottomClip(mw)->core.x; *ay = BottomClip(mw)->core.y + BottomClip(mw)->core.height; } else if (win == XtWindow(ClipChild(mw))) { if (XtIsManaged(LeftClip(mw))) *ax += FIXED_COLUMN_LABEL_OFFSET(mw); else *ax += COLUMN_LABEL_OFFSET(mw); *ay = ClipChild(mw)->core.y + ClipChild(mw)->core.height; if (*ax < (int)COLUMN_LABEL_OFFSET(mw)) { *width += *ax - COLUMN_LABEL_OFFSET(mw); *ax = COLUMN_LABEL_OFFSET(mw); } } else /* must be in a corner */ *ay = y; *height = MATRIX_VERT_VISIBLE_SPACE(mw) + ROW_LABEL_OFFSET(mw) + HORIZ_SB_OFFSET(mw) - *ay; /* * Unfortunately, on the filled area, we don't have the luxury * of the clip widgets to help us out with the edges of the area. * Check our width isn't going to draw outside the left or right clip */ if (! IS_FIXED_COLUMN(mw, column)) { if (XtIsManaged(LeftClip(mw)) && *ax < (int)FIXED_COLUMN_LABEL_OFFSET(mw)) { *width -= (FIXED_COLUMN_LABEL_OFFSET(mw) - *ax); *ax = FIXED_COLUMN_LABEL_OFFSET(mw); } if (XtIsManaged(RightClip(mw)) && ((*ax + *width) > (int)RightClip(mw)->core.x)) *width = RightClip(mw)->core.x - *ax; if (win == XtWindow(BottomClip(mw))) { if ((*ax + *width) > (int)(BottomClip(mw)->core.x + BottomClip(mw)->core.width)) *width = BottomClip(mw)->core.width + BottomClip(mw)->core.x - *ax; if (*ax < (int)COLUMN_LABEL_OFFSET(mw)) { *width += *ax - COLUMN_LABEL_OFFSET(mw); *ax = COLUMN_LABEL_OFFSET(mw); } } if ((win == XtWindow(ClipChild(mw))) && ((*ax + *width) > (int)(ClipChild(mw)->core.x + ClipChild(mw)->core.width))) *width = ClipChild(mw)->core.width + ClipChild(mw)->core.x - *ax; } } void xbaeCalcHorizFill(mw, win, x, y, row, column, ax, ay, width, height) XbaeMatrixWidget mw; Window win; int x; int y; int row; int column; int *ax; int *ay; int *width; int *height; { *ay = y; *height = ROW_HEIGHT(mw); if (win == XtWindow(TopClip(mw))) { *ax = TopClip(mw)->core.x + TopClip(mw)->core.width; *ay += ROW_LABEL_OFFSET(mw); } else if (win == XtWindow(BottomClip(mw))) { *ax = BottomClip(mw)->core.x + BottomClip(mw)->core.width; *ay += TRAILING_FIXED_ROW_LABEL_OFFSET(mw); } else if (win == XtWindow(RightClip(mw))) { *ax = RightClip(mw)->core.x + RightClip(mw)->core.width; *ay += RightClip(mw)->core.y; } else if (win == XtWindow(ClipChild(mw))) { if (XtIsManaged(TopClip(mw))) *ay += FIXED_ROW_LABEL_OFFSET(mw); else *ay += ROW_LABEL_OFFSET(mw); *ax = ClipChild(mw)->core.x + ClipChild(mw)->core.width; if (*ay < (int)ROW_LABEL_OFFSET(mw)) *ay = ROW_LABEL_OFFSET(mw); } else /* must be in a corner */ *ax = x; *width = MATRIX_HORIZ_VISIBLE_SPACE(mw) + COLUMN_LABEL_OFFSET(mw) + VERT_SB_OFFSET(mw) - *ax; /* * Unfortunately, on the filled area, we don't have the luxury * of the clip widgets to help us out with the edges of the area. * Check our width isn't going to draw outside the left or right clip, * or out past our matrix region. */ if (! IS_FIXED_ROW(mw, row)) { if (XtIsManaged(LeftClip(mw)) && (*ay < (int)FIXED_ROW_LABEL_OFFSET(mw))) { *height -= (FIXED_ROW_LABEL_OFFSET(mw) - *ay); *ay = FIXED_ROW_LABEL_OFFSET(mw); } if (XtIsManaged(RightClip(mw)) && ((*ay + *height) > (int)(RightClip(mw)->core.y + RightClip(mw)->core.height))) *height = RightClip(mw)->core.height + RightClip(mw)->core.y - *ay; if ((win == XtWindow(ClipChild(mw))) && ((*ay + *height) > (int)(ClipChild(mw)->core.y + ClipChild(mw)->core.height))) *height = ClipChild(mw)->core.height + ClipChild(mw)->core.y - *ay; } } grace-5.1.25/Xbae/Xbae/Matrix.h0000644000076500001440000006465707412442103015624 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Matrix.h,v 1.1.2.1 2001/12/26 21:42:27 fnevgeny Exp $ */ #ifndef _Xbae_Matrix_h #define _Xbae_Matrix_h /* * Matrix Widget public include file */ #include #include #include /* * A few definitions we like to use, but those with R4 won't have. * From Xfuncproto.h in R5. */ #ifndef XlibSpecificationRelease # ifndef _XFUNCPROTOBEGIN # ifdef __cplusplus /* for C++ V2.0 */ # define _XFUNCPROTOBEGIN extern "C" { # define _XFUNCPROTOEND } # else # define _XFUNCPROTOBEGIN # define _XFUNCPROTOEND # endif # endif /* _XFUNCPROTOBEGIN */ #else #include #endif #ifdef __cplusplus extern "C" { #endif /* Resources: * Name Class RepType Default Value * ---- ----- ------- ------------- * allowColumnResize ColumnResize Boolean False * altRowCount AltRowCount int 1 * boldLabels BoldLabels Boolean False * buttonLabels ButtonLabels Boolean False * buttonLabelBackground Color Pixel dynamic * calcCursorPosition CalcCursorPosition Boolean False * cellBackgrounds Colors PixelTable NULL * cellHighlightThickness HighlightThickness HorizontalDimension 2 * cellMarginHeight MarginHeight VerticalDimension 5 * cellMarginWidth MarginWidth HorizontalDimension 5 * cells Cells StringTable NULL * cellShadowThickness ShadowThickness Dimension 2 * cellShadowType ShadowType unsigned char SHADOW_OUT * cellShadowTypes CellShadowTypes ShadowTypeTable NULL * cellUserData CellUserData UserDataTable NULL * clipWindow XmCClipWindow Widget NULL (get only) * colors Colors PixelTable NULL * columnAlignments Alignments AlignmentArray dynamic * columnButtonLabels ButtonLabels BooleanArray NULL * columnLabelAlignments Alignments AlignmentArray dynamic * columnLabelColor Color Pixel dynamic * columnLabels Labels StringArray NULL * columnMaxLengths ColumnMaxLengths MaxLengthArray NULL * columnShadowTypes ShadowTypes ShadowTypeArray NULL * columnUserData UserDatas UserDataArray NULL * columnWidths ColumnWidths WidthArray NULL * columns Columns int 0 * defaultActionCallback Callback Callback NULL * doubleClickInterval Interval int dynamic * drawCellCallback Callback Callback NULL * enterCellCallback Callback Callback NULL * evenRowBackground Background Pixel dynamic * fill Fill Boolean False * fixedColumns FixedColumns Dimension 0 * fixedRows FixedRows Dimension 0 * fontList FontList FontList fixed * labelFont FontList FontList fixed * gridLineColor Color Pixel dynamic * gridType GridType GridType XmGRID_CELL_LINE * highlightedCells HighlightedCells HighlightTable dynamic * horizonalScrollBar HorizonalScrollBar Widget NULL (get only) * horizontalScrollBarDisplayPolicy * XmCMatrixScrollBarDisplayPolicy * unsigned char AS_NEEDED * labelActivateCallback Callback Callback NULL * leaveCellCallback Callback Callback NULL * leftColumn LeftColumn int 0 * modifyVerifyCallback Callback Callback NULL * oddRowBackground Background Pixel NULL * processDragCallback Callback Callback NULL * resizeCallback Callback Callback NULL * resizeColumnCallback Callback Callback NULL * reverseSelect reverseSelect Boolean False * rowButtonLabels ButtonLabels BooleanArray NULL * rowLabelAlignment Alignment Alignment XmALIGNMENT_END * rowLabelColor Color Pixel dynamic * rowLabelWidth RowLabelWidth Short dynamic * rowLabels Labels StringArray NULL * rowShadowTypes ShadowTypes ShadowTypeArray NULL * rowUserData UserDatas UserDataArray NULL * rows Rows int 0 * selectCellCallback Callback Callback NULL * selectedBackground Color Pixel dynamic * selectedCells SelectedCells BooleanTable dynamic * selectedForeground Color Pixel dynamic * selectScrollVisible SelectScrollVisible Boolean True * space Space Dimension 6 * shadowType ShadowType unsigned char SHADOW_IN * textBackground Backgound Pixel dynamic * textField TextField Widget NULL (get only) * textShadowThickness TextShadowThickness Dimension 0 * textTranslations Translations TranslationTable dynamic * topRow TopRow int 0 * trailingFixedColumns TrailingFixedColumns Dimension 0 * trailingFixedRows TrailingFixedRows Dimension 0 * traverseCellCallback Callback Callback NULL * traverseFixedCells TraverseFixedCells Boolean False * verticalScrollBar VerticalScrollBar Widget NULL (get only) * verticalScrollBarDisplayPolicy * XmCMatrixScrollBarDisplayPolicy * unsigned char AS_NEEDED * visibleColumns VisibleColumns Dimension 0 * visibleRows VisibleRows Dimension 0 * writeCellCallback Callback Callback NULL */ #ifndef XmNallowColumnResize #define XmNallowColumnResize "allowColumnResize" #endif #ifndef XmNaltRowCount #define XmNaltRowCount "altRowCount" #endif #ifndef XmNboldLabels #define XmNboldLabels "boldLabels" #endif #ifndef XmNbuttonLabels #define XmNbuttonLabels "buttonLabels" #endif #ifndef XmNbuttonLabelBackground #define XmNbuttonLabelBackground "buttonLabelBackground" #endif #ifndef XmNcalcCursorPosition #define XmNcalcCursorPosition "calcCursorPosition" #endif #ifndef XmNcellBackgrounds #define XmNcellBackgrounds "cellBackgrounds" #endif #ifndef XmNcellHighlightThickness #define XmNcellHighlightThickness "cellHighlightThickness" #endif #ifndef XmNcellMarginHeight #define XmNcellMarginHeight "cellMarginHeight" #endif #ifndef XmNcellMarginWidth #define XmNcellMarginWidth "cellMarginWidth" #endif #ifndef XmNcellShadowType #define XmNcellShadowType "cellShadowType" #endif #ifndef XmNcellShadowTypes #define XmNcellShadowTypes "cellShadowTypes" #endif #ifndef XmNcellShadowThickness #define XmNcellShadowThickness "cellShadowThickness" #endif #ifndef XmNcellUserData #define XmNcellUserData "cellUserData" #endif #if CELL_WIDGETS #ifndef XmNcellWidgets #define XmNcellWidgets "cellWidgets" #endif #endif #ifndef XmNcells #define XmNcells "cells" #endif #ifndef XmNcolors #define XmNcolors "colors" #endif #ifndef XmNcolumnAlignments #define XmNcolumnAlignments "columnAlignments" #endif #ifndef XmNcolumnButtonLabels #define XmNcolumnButtonLabels "columnButtonLabels" #endif #ifndef XmNcolumnLabelAlignments #define XmNcolumnLabelAlignments "columnLabelAlignments" #endif #ifndef XmNcolumnLabelBackground #define XmNcolumnLabelBackground "columnLabelBackground" #endif #ifndef XmNcolumnLabelColor #define XmNcolumnLabelColor "columnLabelColor" #endif #ifndef XmNcolumnLabels #define XmNcolumnLabels "columnLabels" #endif #ifndef XmNcolumnMaxLengths #define XmNcolumnMaxLengths "columnMaxLengths" #endif #ifndef XmNcolumnShadowTypes #define XmNcolumnShadowTypes "columnShadowTypes" #endif #ifndef XmNcolumnUserData #define XmNcolumnUserData "columnUserData" #endif #ifndef XmNcolumnWidths #define XmNcolumnWidths "columnWidths" #endif #ifndef XmNdrawCellCallback #define XmNdrawCellCallback "drawCellCallback" #endif #ifndef XmNenterCellCallback #define XmNenterCellCallback "enterCellCallback" #endif #ifndef XmNevenRowBackground #define XmNevenRowBackground "evenRowBackground" #endif #ifndef XmNfill #define XmNfill "fill" #endif #ifndef XmNfixedColumns #define XmNfixedColumns "fixedColumns" #endif #ifndef XmNfixedRows #define XmNfixedRows "fixedRows" #endif #ifndef XmNgridLineColor #define XmNgridLineColor "gridLineColor" #endif #ifndef XmNgridType #define XmNgridType "gridType" #endif #if XmVersion >= 1002 #ifndef XmNhighlightedCells #define XmNhighlightedCells "highlightedCells" #endif #endif #ifndef XmNhorizontalScrollBarDisplayPolicy #define XmNhorizontalScrollBarDisplayPolicy "horizontalScrollBarDisplayPolicy" #endif #ifndef XmNlabelActivateCallback #define XmNlabelActivateCallback "labelActivateCallback" #endif #ifndef XmNlabelFont #define XmNlabelFont "labelFont" #endif #ifndef XmNleaveCellCallback #define XmNleaveCellCallback "leaveCellCallback" #endif #ifndef XmNleftColumn #define XmNleftColumn "leftColumn" #endif #ifndef XmNoddRowBackground #define XmNoddRowBackground "oddRowBackground" #endif #if XmVersion > 1001 #ifndef XmNprocessDragCallback #define XmNprocessDragCallback "processDragCallback" #endif #endif #ifndef XmNresizeCallback #define XmNresizeCallback "resizeCallback" #endif #ifndef XmNresizeColumnCallback #define XmNresizeColumnCallback "resizeColumnCallback" #endif #ifndef XmNreverseSelect #define XmNreverseSelect "reverseSelect" #endif #ifndef XmNrowButtonLabels #define XmNrowButtonLabels "rowButtonLabels" #endif #ifndef XmNrowLabelAlignment #define XmNrowLabelAlignment "rowLabelAlignment" #endif #ifndef XmNrowLabelWidth #define XmNrowLabelWidth "rowLabelWidth" #endif #ifndef XmNrowLabelBackground #define XmNrowLabelBackground "rowLabelBackground" #endif #ifndef XmNrowLabelColor #define XmNrowLabelColor "rowLabelColor" #endif #ifndef XmNrowLabels #define XmNrowLabels "rowLabels" #endif #ifndef XmNrowShadowTypes #define XmNrowShadowTypes "rowShadowTypes" #endif #ifndef XmNrowUserData #define XmNrowUserData "rowUserData" #endif #ifndef XmNselectedCells #define XmNselectedCells "selectedCells" #endif #ifndef XmNselectedBackground #define XmNselectedBackground "selectedBackground" #endif #ifndef XmNselectCellCallback #define XmNselectCellCallback "selectCellCallback" #endif #ifndef XmNselectedForeground #define XmNselectedForeground "selectedForeground" #endif #ifndef XmNselectScrollVisible #define XmNselectScrollVisible "selectScrollVisible" #endif #ifndef XmNtextBackground #define XmNtextBackground "textBackground" #endif #ifndef XmNtextField #define XmNtextField "textField" #endif #ifndef XmNtopRow #define XmNtopRow "topRow" #endif #ifndef XmNtrailingAttachedBottom #define XmNtrailingAttachedBottom "trailingAttachedBottom" #endif #ifndef XmNtrailingAttachedRight #define XmNtrailingAttachedRight "trailingAttachedRight" #endif #ifndef XmNtrailingFixedColumns #define XmNtrailingFixedColumns "trailingFixedColumns" #endif #ifndef XmNtrailingFixedRows #define XmNtrailingFixedRows "trailingFixedRows" #endif #ifndef XmNleftColumn #define XmNleftColumn "leftColumn" #endif #ifndef XmNtextShadowThickness #define XmNtextShadowThickness "textShadowThickness" #endif #ifndef XmNtraverseCellCallback #define XmNtraverseCellCallback "traverseCellCallback" #endif #ifndef XmNtraverseFixedCells #define XmNtraverseFixedCells "traverseFixedCells" #endif #ifndef XmNverticalScrollBarDisplayPolicy #define XmNverticalScrollBarDisplayPolicy "verticalScrollBarDisplayPolicy" #endif #ifndef XmNvisibleColumns #define XmNvisibleColumns "visibleColumns" #endif #ifndef XmNvisibleRows #define XmNvisibleRows "visibleRows" #endif #ifndef XmNwriteCellCallback #define XmNwriteCellCallback "writeCellCallback" #endif #ifndef XmCAlignments #define XmCAlignments "Alignments" #endif #ifndef XmCAltRowCount #define XmCAltRowCount "AltRowCount" #endif #ifndef XmCBoldLabels #define XmCBoldLabels "BoldLabels" #endif #ifndef XmCButtonLabels #define XmCButtonLabels "ButtonLabels" #endif #ifndef XmCCalcCursorPosition #define XmCCalcCursorPosition "CalcCursorPosition" #endif #ifndef XmCCells #define XmCCells "Cells" #endif #ifndef XmCCellShadowTypes #define XmCCellShadowTypes "CellShadowTypes" #endif #ifndef XmCCellUserData #define XmCCellUserData "CellUserData" #endif #if CELL_WIDGETS #ifndef XmCCellWidgets #define XmCCellWidgets "CellWidgets" #endif #endif #ifndef XmCColors #define XmCColors "Colors" #endif #ifndef XmCColumnMaxLengths #define XmCColumnMaxLengths "ColumnMaxLengths" #endif #ifndef XmCColumnResize #define XmCColumnResize "ColumnResize" #endif #ifndef XmCColumnWidths #define XmCColumnWidths "ColumnWidths" #endif #ifndef XmCFill #define XmCFill "Fill" #endif #ifndef XmCFixedColumns #define XmCFixedColumns "FixedColumns" #endif #ifndef XmCFixedRows #define XmCFixedRows "FixedRows" #endif #ifndef XmCGridType #define XmCGridType "GridType" #endif #if XmVersion >= 1002 #ifndef XmCHighlightedCells #define XmCHighlightedCells "HighlightedCells" #endif #endif #ifndef XmCLabels #define XmCLabels "Labels" #endif #ifndef XmCLeftColumn #define XmCLeftColumn "LeftColumn" #endif #ifndef XmCMatrixScrollBarDisplayPolicy #define XmCMatrixScrollBarDisplayPolicy "MatrixScrollBarDisplayPolicy" #endif #ifndef XmCReverseSelect #define XmCReverseSelect "ReverseSelect" #endif #ifndef XmCRowLabelWidth #define XmCRowLabelWidth "RowLabelWidth" #endif #ifndef XmCSelectedCells #define XmCSelectedCells "SelectedCells" #endif #ifndef XmCSelectScrollVisible #define XmCSelectScrollVisible "SelectScrollVisible" #endif #ifndef XmCShadowTypes #define XmCShadowTypes "ShadowTypes" #endif #ifndef XmCTextBackground #define XmCTextBackground "TextBackground" #endif #ifndef XmCTextField #define XmCTextField "TextField" #endif #ifndef XmCTextShadowThickness #define XmCTextShadowThickness "TextShadowThickness" #endif #ifndef XmCTraverseFixedCells #define XmCTraverseFixedCells "TraverseFixedCells" #endif #ifndef XmCTopRow #define XmCTopRow "TopRow" #endif #ifndef XmCTrailingAttachedBottom #define XmCTrailingAttachedBottom "TrailingAttachedBottom" #endif #ifndef XmCTrailingAttachedRight #define XmCTrailingAttachedRight "TrailingAttachedRight" #endif #ifndef XmCTrailingFixedColumns #define XmCTrailingFixedColumns "TrailingFixedColumns" #endif #ifndef XmCTrailingFixedRows #define XmCTrailingFixedRows "TrailingFixedRows" #endif #ifndef XmCUserDatas #define XmCUserDatas "UserDatas" #endif #ifndef XmCVisibleColumns #define XmCVisibleColumns "VisibleColumns" #endif #ifndef XmCVisibleRows #define XmCVisibleRows "VisibleRows" #endif #ifndef XmRStringArray #define XmRStringArray "StringArray" #endif #ifndef XmRBooleanArray #define XmRBooleanArray "BooleanArray" #endif #ifndef XmRAlignmentArray #define XmRAlignmentArray "AlignmentArray" #endif #ifndef XmRBooleanTable #define XmRBooleanTable "BooleanTable" #endif #ifndef XmRCellTable #define XmRCellTable "CellTable" #endif #ifndef XmRWidgetTable #define XmRWidgetTable "WidgetTable" #endif #ifndef XmRGridType #define XmRGridType "GridType" #endif #if XmVersion >= 1002 #ifndef XmRHighlightTable #define XmRHighlightTable "HighlightTable" #endif #endif #ifndef XmRMatrixScrollBarDisplayPolicy #define XmRMatrixScrollBarDisplayPolicy "MatrixScrollBarDisplayPolicy" #endif #ifndef XmRMaxLengthArray #define XmRMaxLengthArray "MaxLengthArray" #endif #ifndef XmRPixelTable #define XmRPixelTable "PixelTable" #endif #ifndef XmRShadowTypeTable #define XmRShadowTypeTable "ShadowTypeTable" #endif #ifndef XmRShadowTypeArray #define XmRShadowTypeArray "ShadowTypeArray" #endif #ifndef XmRUserDataTable #define XmRUserDataTable "UserDataTable" #endif #ifndef XmRUserDataArray #define XmRUserDataArray "UserDataArray" #endif #ifndef XmRWidthArray #define XmRWidthArray "WidthArray" #endif #ifndef XbaeIsXbaeMatrix #define XbaeIsXbaeMatrix( w) XtIsSubclass(w, xbaeMatrixWidgetClass) #endif /* XbaeIsXbaeMatrix */ /* Class record constants */ externalref WidgetClass xbaeMatrixWidgetClass; typedef struct _XbaeMatrixClassRec *XbaeMatrixWidgetClass; typedef struct _XbaeMatrixRec *XbaeMatrixWidget; /* * Prototype wrapper */ #ifndef P #if defined(__STDC__) || defined (__cplusplus) #define P(x) x #else #define P(x) () #define const #define volatile #endif #endif /* * External interfaces to class methods */ _XFUNCPROTOBEGIN extern void XbaeMatrixAddColumns P((Widget, int, String *, String *, short *, int *, unsigned char *, unsigned char *, Pixel *, int)); extern void XbaeMatrixAddRows P((Widget, int , String *, String *, Pixel *, int)); extern void XbaeMatrixCancelEdit P((Widget, Boolean)); extern Boolean XbaeMatrixCommitEdit P((Widget, Boolean)); extern void XbaeMatrixDeleteColumns P((Widget, int, int)); extern void XbaeMatrixDeleteRows P((Widget, int, int)); extern void XbaeMatrixDeselectAll P((Widget)); extern void XbaeMatrixDeselectCell P((Widget, int, int)); extern void XbaeMatrixDeselectColumn P((Widget, int)); extern void XbaeMatrixDeselectRow P((Widget, int)); extern void XbaeMatrixEditCell P((Widget, int, int)); extern void XbaeMatrixFirstSelectedCell P((Widget, int *, int *)); extern int XbaeMatrixFirstSelectedColumn P((Widget)); extern int XbaeMatrixFirstSelectedRow P((Widget)); extern String XbaeMatrixGetCell P((Widget, int, int)); extern XtPointer XbaeMatrixGetCellUserData P((Widget, int, int)); extern XtPointer XbaeMatrixGetColumnUserData P((Widget, int)); extern void XbaeMatrixGetCurrentCell P((Widget, int *, int *)); extern int XbaeMatrixGetEventRowColumn P((Widget, XEvent *, int *, int *)); extern Boolean XbaeMatrixEventToXY P((Widget, XEvent *, int *, int *)); extern Boolean XbaeMatrixRowColToXY P((Widget, int, int, int *, int *)); extern int XbaeMatrixGetNumSelected P((Widget)); extern XtPointer XbaeMatrixGetRowUserData P((Widget, int)); extern Boolean XbaeMatrixIsCellSelected P((Widget, int, int)); extern Boolean XbaeMatrixIsColumnSelected P((Widget, int)); extern Boolean XbaeMatrixIsRowSelected P((Widget, int)); extern void XbaeMatrixRefresh P((Widget)); extern void XbaeMatrixRefreshCell P((Widget, int, int)); extern void XbaeMatrixRefreshColumn P((Widget, int)); extern void XbaeMatrixRefreshRow P((Widget, int)); extern void XbaeMatrixSelectAll P((Widget)); extern void XbaeMatrixSelectCell P((Widget, int, int)); extern void XbaeMatrixSelectColumn P((Widget, int)); extern void XbaeMatrixSelectRow P((Widget, int)); #if XmVersion >= 1002 extern void XbaeMatrixHighlightCell P((Widget, int, int)); extern void XbaeMatrixHighlightRow P((Widget, int)); extern void XbaeMatrixHighlightColumn P((Widget, int)); extern void XbaeMatrixUnhighlightCell P((Widget, int, int)); extern void XbaeMatrixUnhighlightRow P((Widget, int)); extern void XbaeMatrixUnhighlightColumn P((Widget, int)); extern void XbaeMatrixUnhighlightAll P((Widget)); #endif extern void XbaeMatrixSetCell P((Widget, int, int, const String)); extern void XbaeMatrixSetCellBackground P((Widget, int, int, Pixel)); extern void XbaeMatrixSetCellColor P((Widget, int, int, Pixel)); extern void XbaeMatrixSetCellUserData P((Widget, int, int, XtPointer)); #if CELL_WIDGETS extern void XbaeMatrixSetCellWidget P((Widget, int, int, Widget)); #endif extern void XbaeMatrixSetColumnBackgrounds P((Widget, int, Pixel *, int)); extern void XbaeMatrixSetColumnColors P((Widget, int, Pixel *, int)); extern void XbaeMatrixSetColumnUserData P((Widget, int, XtPointer)); extern void XbaeMatrixSetRowBackgrounds P((Widget, int, Pixel *, int)); extern void XbaeMatrixSetRowColors P((Widget, int , Pixel *, int)); extern void XbaeMatrixSetRowUserData P((Widget, int, XtPointer)); extern int XbaeMatrixVisibleColumns P((Widget)); extern int XbaeMatrixVisibleRows P((Widget)); extern int XbaeMatrixNumColumns P((Widget)); extern int XbaeMatrixNumRows P((Widget)); extern void XbaeMatrixDisableRedisplay P((Widget)); extern void XbaeMatrixEnableRedisplay P((Widget, Boolean)); extern void XbaeMatrixMakeCellVisible P((Widget, int, int)); extern Boolean XbaeMatrixIsRowVisible P((Widget, int)); extern Boolean XbaeMatrixIsColumnVisible P((Widget, int)); extern Boolean XbaeMatrixIsCellVisible P((Widget, int, int)); extern void XbaeMatrixVisibleCells P((Widget, int *, int *, int *, int *)); extern String XbaeMatrixGetColumnLabel P((Widget, int)); extern String XbaeMatrixGetRowLabel P((Widget, int)); extern void XbaeMatrixSetColumnLabel P((Widget, int, String)); extern void XbaeMatrixSetRowLabel P((Widget, int, String)); extern Widget XbaeCreateMatrix P((Widget, String, ArgList, Cardinal)); _XFUNCPROTOEND typedef unsigned char Alignment; typedef Alignment * AlignmentArray; typedef String * StringTable; typedef short Width; typedef Width * WidthArray; typedef int MaxLength; typedef MaxLength * MaxLengthArray; /* * cell shadow types */ enum { XmGRID_NONE = 0x00, XmGRID_CELL_LINE = 0x02, XmGRID_CELL_SHADOW = 0x03, XmGRID_ROW_LINE = 0x04, XmGRID_ROW_SHADOW = 0x05, XmGRID_COLUMN_LINE = 0x08, XmGRID_COLUMN_SHADOW = 0x09, /* Deprecated types. Use will cause * a run-time warning to be issued. */ XmGRID_LINE = 0x20, XmGRID_SHADOW_IN = 0x40, XmGRID_SHADOW_OUT = 0x80 }; /* * Enumeration for Matrix ScrollBar Display Policy */ enum { XmDISPLAY_NONE, XmDISPLAY_AS_NEEDED, XmDISPLAY_STATIC }; /* * Enumeration for type of a cell */ typedef enum { FixedCell, NonFixedCell, RowLabelCell, ColumnLabelCell } CellType; #if XmVersion >= 1002 /* * Enumeration for highlight reason/location */ enum { HighlightNone = 0x0000, HighlightCell = 0x0001, HighlightRow = 0x0002, HighlightColumn = 0x0004, HighlightOther = 0x0008, UnhighlightCell = 0x0010, UnhighlightRow = 0x0020, UnhighlightColumn = 0x0040, UnhighlightAll = UnhighlightCell | UnhighlightRow | UnhighlightColumn }; #endif /* * Callback reasons. Try to stay out of range of the Motif XmCR_* reasons. */ typedef enum _XbaeReasonType { XbaeModifyVerifyReason = 102, XbaeEnterCellReason, XbaeLeaveCellReason, XbaeTraverseCellReason, XbaeSelectCellReason, XbaeDrawCellReason, XbaeWriteCellReason, XbaeResizeReason, XbaeResizeColumnReason, XbaeDefaultActionReason, XbaeProcessDragReason, XbaeLabelActivateReason } XbaeReasonType; /* * DrawCell types. */ typedef enum { XbaeString=1, XbaePixmap } XbaeCellType; /* * The 'Any' struct which can be used in callbacks used with different * Callback structs but only need to access its 4 members */ typedef struct _XbaeMatrixAnyCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; } XbaeMatrixAnyCallbackStruct; /* * Struct passed to modifyVerifyCallback */ typedef struct _XbaeMatrixModifyVerifyCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; XmTextVerifyCallbackStruct *verify; const char *prev_text; } XbaeMatrixModifyVerifyCallbackStruct; /* * Struct passed to enterCellCallback */ typedef struct _XbaeMatrixEnterCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; int position; Boolean select_text; Boolean map; Cardinal num_params; String *params; Boolean doit; } XbaeMatrixEnterCellCallbackStruct; /* * Struct passed to leaveCellCallback */ typedef struct _XbaeMatrixLeaveCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; String value; Boolean doit; } XbaeMatrixLeaveCellCallbackStruct; /* * Struct passed to traverseCellCallback */ typedef struct _XbaeMatrixTraverseCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; int next_row; int next_column; int fixed_rows; int fixed_columns; int trailing_fixed_rows; int trailing_fixed_columns; int num_rows; int num_columns; String param; XrmQuark qparam; } XbaeMatrixTraverseCellCallbackStruct; /* * Struct passed to selectCellCallback */ typedef struct _XbaeMatrixSelectCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; Boolean **selected_cells; String **cells; Cardinal num_params; String *params; } XbaeMatrixSelectCellCallbackStruct; /* * Struct passed to drawCellCallback */ typedef struct _XbaeMatrixDrawCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; int width; int height; XbaeCellType type; String string; Pixmap pixmap; Pixmap mask; Pixel foreground; Pixel background; int depth; } XbaeMatrixDrawCellCallbackStruct; /* * Struct passed to writeCellCallback */ typedef struct _XbaeMatrixWriteCellCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; XbaeCellType type; String string; Pixmap pixmap; Pixmap mask; } XbaeMatrixWriteCellCallbackStruct; /* * Struct passed to resizeCallback */ typedef struct _XbaeMatrixResizeCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; Dimension width; Dimension height; } XbaeMatrixResizeCallbackStruct; /* * Struct passed to resizeColumnCallback * */ typedef struct _XbaeMatrixResizeColumnCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; int which; int columns; short *column_widths; } XbaeMatrixResizeColumnCallbackStruct; #if XmVersion > 1001 /* * Struct passed to processDragCallback */ typedef struct _XbaeMatrixProcessDragCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; String string; XbaeCellType type; Pixmap pixmap; Pixmap mask; Cardinal num_params; String *params; } XbaeMatrixProcessDragCallbackStruct; #endif /* * Struct passed to defaultActionCallback */ typedef struct _XbaeMatrixDefaultActionCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; } XbaeMatrixDefaultActionCallbackStruct; /* * Struct passed to labelActivateCallback */ typedef struct _XbaeMatrixLabelActivateCallbackStruct { XbaeReasonType reason; XEvent *event; int row; int column; Boolean row_label; String label; } XbaeMatrixLabelActivateCallbackStruct; /* provide clean-up for those with R4 */ #ifndef XlibSpecificationRelease # undef _Xconst # undef _XFUNCPROTOBEGIN # undef _XFUNCPROTOEND #endif #ifdef __cplusplus } /* Close scope of 'extern "C"' declaration which encloses file. */ #endif #endif /* _Xbae_Matrix_h */ grace-5.1.25/Xbae/Xbae/Clip.c0000644000076500001440000001377006766327620015251 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * ClipWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Clip.c,v 1.1 1999/09/11 01:25:36 fnevgeny Exp $ */ /* * Clip.c - private child of Matrix - used to clip Matrix's textField child */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include static char defaultTranslations[] = ": FocusIn()"; static XtResource resources[] = { { XmNexposeProc, XmCFunction, XtRFunction, sizeof(XtExposeProc), XtOffsetOf(XbaeClipRec, clip.expose_proc), XtRFunction, (XtPointer) NULL }, { XmNfocusCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), XtOffsetOf(XbaeClipRec, clip.focus_callback), XtRImmediate, (XtPointer) NULL }, }; /* * Declaration of methods */ static void ClassPartInitialize P((XbaeClipWidgetClass)); static void Realize P((XbaeClipWidget, XtValueMask *, XSetWindowAttributes *)); static void Redisplay P((XbaeClipWidget, XEvent *, Region)); static void Resize P((Widget)); static void Redraw P((XbaeClipWidget)); /* * Public convenience function */ void XbaeClipRedraw P((Widget w)); /* * Clip actions */ static void FocusInACT P((XbaeClipWidget, XEvent *, String *, Cardinal *)); static XtActionsRec actions[] = { {"FocusIn", (XtActionProc)FocusInACT}, }; XbaeClipClassRec xbaeClipClassRec = { { /* core_class fields */ /* superclass */ (WidgetClass) &xmPrimitiveClassRec, /* class_name */ "XbaeClip", /* widget_size */ sizeof(XbaeClipRec), /* class_initialize */ NULL, /* class_part_initialize*/ (XtWidgetClassProc)ClassPartInitialize, /* class_inited */ False, /* initialize */ NULL, /* initialize_hook */ NULL, /* realize */ (XtRealizeProc)Realize, /* actions */ actions, /* num_actions */ XtNumber(actions), /* resources */ resources, /* num_resources */ XtNumber(resources), /* xrm_class */ NULLQUARK, /* compress_motion */ True, /* compress_exposure */ XtExposeCompressSeries | XtExposeGraphicsExpose | XtExposeNoExpose, /* compress_enterleave */ True, /* visible_interest */ False, /* destroy */ NULL, /* resize */ Resize, /* expose */ (XtExposeProc)Redisplay, /* set_values */ NULL, /* set_values_hook */ NULL, /* set_values_almost */ XtInheritSetValuesAlmost, /* get_values_hook */ NULL, /* accept_focus */ NULL, /* version */ XtVersion, /* callback_private */ NULL, /* tm_table */ defaultTranslations, /* query_geometry */ NULL, /* display_accelerator */ NULL, /* extension */ NULL }, /* primitive_class fields */ { /* border_highlight */ NULL, /* border_unhighlight */ NULL, /* translations */ NULL, /* arm_and_activate */ NULL, /* syn_resources */ NULL, /* num_syn_resources */ 0, /* extension */ NULL }, /* clip_class fields */ { /* redraw */ (XbaeClipRedrawProc)Redraw, /* extension */ NULL, } }; WidgetClass xbaeClipWidgetClass = (WidgetClass) & xbaeClipClassRec; static void ClassPartInitialize(cwc) XbaeClipWidgetClass cwc; { register XbaeClipWidgetClass super = (XbaeClipWidgetClass) cwc->core_class.superclass; /* * Allow subclasses to inherit our redraw method */ if (cwc->clip_class.redraw == XbaeInheritRedraw) cwc->clip_class.redraw = super->clip_class.redraw; } static void Realize(cw, valueMask, attributes) XbaeClipWidget cw; XtValueMask *valueMask; XSetWindowAttributes *attributes; { /* * Don't call our superclasses realize method, because Primitive sets * bit_gravity and do_not_propagate */ XtCreateWindow((Widget)cw, InputOutput, CopyFromParent, *valueMask, attributes); } /* ARGSUSED */ static void Redisplay(cw, event, region) XbaeClipWidget cw; XEvent *event; Region region; { if (cw->clip.expose_proc) cw->clip.expose_proc((Widget)cw, event, region); } /* ARGSUSED */ static void Resize(w) Widget w; { /* * Xt will call the expose method when this method returns. * So we won't have to do any exposure stuff here, which * means the Matrix's SetValues method only needs to force a * redraw when a redisplay is needed, not when a relayout is performed. */ } /* * Clip redraw method */ /* ARGSUSED */ static void Redraw(cw) XbaeClipWidget cw; { if (XtIsRealized((Widget)cw)) XClearArea(XtDisplay(cw), XtWindow(cw), 0, 0, 0, 0, True); } /* * Public interface to redraw method */ void XbaeClipRedraw(w) Widget w; { /* * Make sure w is a Clip or a subclass */ XtCheckSubclass(w, xbaeClipWidgetClass, NULL); /* * Call the redraw method */ if (XtIsRealized(w)) (*((XbaeClipWidgetClass) XtClass(w))->clip_class.redraw) ((Widget)w); } /* ARGSUSED */ static void FocusInACT(cw, event, params, nparams) XbaeClipWidget cw; XEvent *event; String *params; Cardinal *nparams; { if (event->xany.type != FocusIn || !event->xfocus.send_event) return; if (cw->clip.focus_callback) XtCallCallbackList((Widget)cw, cw->clip.focus_callback, NULL); } grace-5.1.25/Xbae/Xbae/Make.common0000644000076500001440000000072307412442103016256 0ustar fnevgenyusers##################################################### # System-independent Make.common file for # # Xbae matrix widget library # ##################################################### SRCS = Actions.c Clip.c Converters.c Create.c Draw.c \ Matrix.c Methods.c Public.c ScrollMgr.c Shadow.c Utils.c OBJS = Actions$(O) Clip$(O) Converters$(O) Create$(O) Draw$(O) \ Matrix$(O) Methods$(O) Public$(O) ScrollMgr$(O) Shadow$(O) Utils$(O) grace-5.1.25/Xbae/Xbae/Public.c0000644000076500001440000012470706766327622015605 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: Public.c,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Public.c created by Andrew Lister (7 August, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include #include #include /* * Public interface to set_cell method */ void XbaeMatrixSetCell(w, row, column, value) Widget w; int row; int column; const String value; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_cell method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_cell) ((XbaeMatrixWidget)w, row, column, value, True); } /* * Public interface to edit_cell method */ void XbaeMatrixEditCell(w, row, column) Widget w; int row, column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the edit_cell method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.edit_cell) ((XbaeMatrixWidget)w, NULL, row, column, NULL, 0); XmProcessTraversal(TextChild(((XbaeMatrixWidget) w)), XmTRAVERSE_CURRENT); } /* * Public interface to select_cell method */ void XbaeMatrixSelectCell(w, row, column) Widget w; int row, column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the select_cell method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.select_cell) ((XbaeMatrixWidget)w, row, column); } /* * Public interface to select_row method */ void XbaeMatrixSelectRow(w, row) Widget w; int row; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the select_row method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.select_row) ((XbaeMatrixWidget)w, row); } /* * Public interface to select_column method */ void XbaeMatrixSelectColumn(w, column) Widget w; int column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the select_column method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.select_column) ((XbaeMatrixWidget)w, column); } /* * Public interface to deselect_all method */ void XbaeMatrixDeselectAll(w) Widget w; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the deselect_all method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.deselect_all) ((XbaeMatrixWidget)w); } /* * Public interface to select_all method */ void XbaeMatrixSelectAll(w) Widget w; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the deselect_all method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.select_all) ((XbaeMatrixWidget)w); } /* * Public interface to deselect_cell method */ void XbaeMatrixDeselectCell(w, row, column) Widget w; int row; int column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the deselect_cell method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.deselect_cell) ((XbaeMatrixWidget)w, row, column); } /* * Public interface to deselect_row method */ void XbaeMatrixDeselectRow(w, row) Widget w; int row; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the deselect_row method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.deselect_row) ((XbaeMatrixWidget)w, row); } /* * Public interface to deselect_column method */ void XbaeMatrixDeselectColumn(w, column) Widget w; int column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the deselect_column method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.deselect_column) ((XbaeMatrixWidget)w, column); } /* * Public interface to get_cell method */ String XbaeMatrixGetCell(w, row, column) Widget w; int row, column; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the get_cell method */ return (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.get_cell) ((XbaeMatrixWidget)w, row, column); } /* * Public interface to commit_edit method */ Boolean #if NeedFunctionPrototypes XbaeMatrixCommitEdit(Widget w, Boolean unmap) #else XbaeMatrixCommitEdit(w, unmap) Widget w; Boolean unmap; #endif { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the commit_edit method */ return (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.commit_edit) ((XbaeMatrixWidget)w, NULL, unmap); } /* * Public interface to cancel_edit method */ void #if NeedFunctionPrototypes XbaeMatrixCancelEdit(Widget w, Boolean unmap) #else XbaeMatrixCancelEdit(w, unmap) Widget w; Boolean unmap; #endif { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the cancel_edit method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.cancel_edit) ((XbaeMatrixWidget)w, unmap); } /* * Public interface to add_rows method */ void XbaeMatrixAddRows(w, position, rows, labels, colors, num_rows) Widget w; int position; String *rows; String *labels; Pixel *colors; int num_rows; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the add_rows method */ (*((XbaeMatrixWidgetClass)XtClass(w))->matrix_class.add_rows) ((XbaeMatrixWidget)w, position, rows, labels, colors, NULL, num_rows); } /* * Public interface to delete_rows method */ void XbaeMatrixDeleteRows(w, position, num_rows) Widget w; int position; int num_rows; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the delete_rows method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.delete_rows) ((XbaeMatrixWidget)w, position, num_rows); } /* * Public interface to add_columns method */ void XbaeMatrixAddColumns(w, position, columns, labels, widths, max_lengths, alignments, label_alignments, colors, num_columns) Widget w; int position; String *columns; String *labels; short *widths; int *max_lengths; unsigned char *alignments; unsigned char *label_alignments; Pixel *colors; int num_columns; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the add_columns method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.add_columns) ((XbaeMatrixWidget)w, position, columns, labels, widths, max_lengths, alignments, label_alignments, colors, NULL, num_columns); } /* * Public interface to delete_columns method */ void XbaeMatrixDeleteColumns(w, position, num_columns) Widget w; int position; int num_columns; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the delete_columns method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.delete_columns) ((XbaeMatrixWidget)w, position, num_columns); } /* * Public interface to set_row_colors method */ void XbaeMatrixSetRowColors(w, position, colors, num_colors) Widget w; int position; Pixel *colors; int num_colors; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_row_colors method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_row_colors) ((XbaeMatrixWidget)w, position, colors, num_colors, False); } /* * Public interface to set_column_colors method */ void XbaeMatrixSetColumnColors(w, position, colors, num_colors) Widget w; int position; Pixel *colors; int num_colors; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_column_colors method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_column_colors) ((XbaeMatrixWidget)w, position, colors, num_colors, False); } /* * Public interface to set_cell_color method */ void XbaeMatrixSetCellColor(w, row, column, color) Widget w; int row; int column; Pixel color; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_cell_color method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_cell_color) ((XbaeMatrixWidget)w, row, column, color, False); } /* * Public interface to set_row_colors method */ void XbaeMatrixSetRowBackgrounds(w, position, colors, num_colors) Widget w; int position; Pixel *colors; int num_colors; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_row_colors method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_row_colors) ((XbaeMatrixWidget)w, position, colors, num_colors, True); } /* * Public interface to set_column_colors method */ void XbaeMatrixSetColumnBackgrounds(w, position, colors, num_colors) Widget w; int position; Pixel *colors; int num_colors; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_column_colors method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_column_colors) ((XbaeMatrixWidget)w, position, colors, num_colors, True); } /* * Public interface to set_cell_color method */ void XbaeMatrixSetCellBackground(w, row, column, color) Widget w; int row; int column; Pixel color; { /* * Make sure w is a Matrix or a subclass */ XtCheckSubclass(w, xbaeMatrixWidgetClass, NULL); /* * Call the set_cell_color method */ (*((XbaeMatrixWidgetClass) XtClass(w))->matrix_class.set_cell_color) ((XbaeMatrixWidget)w, row, column, color, True); } /* * Help the user know what row & column he is in given an x & y (via an event). * Return True on success, False on failure. */ int XbaeMatrixGetEventRowColumn(w, event, row, column) Widget w; XEvent * event; int *row; int *column; { XbaeMatrixWidget mw; int x, y; CellType cell; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; /* Convert the event to the correct XY for the matrix widget. */ mw = (XbaeMatrixWidget) w; if (!xbaeEventToXY(mw, event, &x, &y, &cell)) return False; /* Convert the point to a row,column. If it does not pick a valid cell, then return. */ if (!xbaeXYToRowCol(mw, &x, &y, row, column, cell)) return False; return True; } /* * Public interface for xbaeEventToXY() */ Boolean XbaeMatrixEventToXY(w, event, x, y) Widget w; XEvent *event; int *x; int *y; { XbaeMatrixWidget mw; CellType cell; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget)w; if (!xbaeEventToXY(mw, event, x, y, &cell)) return False; return True; } /* * Public interface for xbaeRowColToXY(). From Philip Aston * (philipa@parallax.co.uk) */ Boolean XbaeMatrixRowColToXY(w, row, column, x, y) Widget w; int row; int column; int *x; int *y; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget)w; xbaeRowColToXY(mw, row, column, x, y); return True; } /* * Help the programmer to know what row & column we are currently at. * Set the row & column to -1 if bad widget. Maybe the program will core. :) */ void XbaeMatrixGetCurrentCell(w, row, column) Widget w; int *row; int *column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) *row = *column = -1; else { mw = (XbaeMatrixWidget)w; *row = mw->matrix.current_row; *column = mw->matrix.current_column; } } /* * Allow the programmer to call the Expose method directly if he feels * that it is really needed. */ void XbaeMatrixRefresh(w) Widget w; { XbaeMatrixWidget mw = (XbaeMatrixWidget)w; int x, y; if (mw->matrix.disable_redisplay) return; if (!XtIsSubclass(w, xbaeMatrixWidgetClass) || !XtIsRealized((Widget)mw)) return; /* * We're about to flush scroll exposure events, so reset the * scroll managers. */ xbaeSmDestroyScrollMgr(mw->matrix.matrix_scroll_mgr); xbaeSmDestroyScrollMgr(mw->matrix.clip_scroll_mgr); mw->matrix.matrix_scroll_mgr = xbaeSmCreateScrollMgr(); mw->matrix.clip_scroll_mgr = xbaeSmCreateScrollMgr(); /* * Don't respond to exposures. */ mw->matrix.disable_redisplay = 1; /* * Flush pending expose events. */ XmUpdateDisplay(w); /* * Respond to exposures. */ mw->matrix.disable_redisplay = 0; /* * Generate expose events on the Matrix to force the redrawing. */ x = 0; y = 0; if (mw->matrix.column_labels) XClearArea(XtDisplay(mw), XtWindow(mw), x, y, mw->core.width, ROW_LABEL_OFFSET(mw), True); y += ROW_LABEL_OFFSET(mw); if (mw->matrix.row_labels) XClearArea(XtDisplay(mw), XtWindow(mw), x, y, COLUMN_LABEL_OFFSET(mw), mw->core.height - x, True); x += COLUMN_LABEL_OFFSET(mw); if (mw->matrix.fixed_rows) { /* Clear the top clip completely */ XClearArea(XtDisplay(mw), XtWindow(TopClip(mw)), 0, 0, 0, 0, True); /* Don't forget the corner areas! */ if (mw->matrix.fixed_columns) XClearArea(XtDisplay(mw), XtWindow(mw), x, y, LeftClip(mw)->core.width, TopClip(mw)->core.height, True); if (mw->matrix.trailing_fixed_columns) XClearArea(XtDisplay(mw), XtWindow(mw), RightClip(mw)->core.x, y, RightClip(mw)->core.width, TopClip(mw)->core.height, True); } if (mw->matrix.fixed_columns) XClearArea(XtDisplay(mw), XtWindow(LeftClip(mw)), 0, 0, 0, 0, True); if (mw->matrix.trailing_fixed_columns) XClearArea(XtDisplay(mw), XtWindow(RightClip(mw)), 0, 0, 0, 0, True); if (mw->matrix.trailing_fixed_rows) { XClearArea(XtDisplay(mw), XtWindow(BottomClip(mw)), 0, 0, 0, 0, True); if (mw->matrix.fixed_columns) XClearArea(XtDisplay(mw), XtWindow(mw), x, BottomClip(mw)->core.y, LeftClip(mw)->core.width, BottomClip(mw)->core.height, True); if (mw->matrix.trailing_fixed_columns) XClearArea(XtDisplay(mw), XtWindow(mw), RightClip(mw)->core.x, BottomClip(mw)->core.y, RightClip(mw)->core.width, BottomClip(mw)->core.height, True); } /* * The areas to the right and bottom of the matrix also need to be * exposed. First to do is the right hand side. */ x = COLUMN_POSITION(mw, mw->matrix.columns-1) + COLUMN_WIDTH(mw, mw->matrix.columns-1); XClearArea(XtDisplay(mw), XtWindow(mw), x, 0, mw->core.width - x, mw->core.height, True); y = ClipChild(mw)->core.y + ClipChild(mw)->core.height + TRAILING_FIXED_ROW_HEIGHT(mw); XClearArea(XtDisplay(mw), XtWindow(mw), 0, y, mw->core.width, mw->core.height - y, True); XbaeClipRedraw(ClipChild(mw)); } /* * Public interface for redrawing one cell */ void XbaeMatrixRefreshCell(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw = (XbaeMatrixWidget)w; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; if (xbaeIsCellVisible(mw, row, column)) { /* this doesn't seem to be necessary -cg 16/7/99 */ /*xbaeClearCell(mw, row, column);*/ xbaeDrawCell(mw, row, column); } } /* * Redraw an entire column */ void XbaeMatrixRefreshColumn(w, column) Widget w; int column; { XbaeMatrixWidget mw = (XbaeMatrixWidget)w; int row; int found = 0; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; /* we attempt to be mildly efficient about this */ if (xbaeIsColumnVisible(mw, column)) { /* fixed always visible */ for (row = 0; row < mw->matrix.fixed_rows; row++) xbaeDrawCell(mw, row, column); /* now the scrollable clip */ for (; row < mw->matrix.rows - mw->matrix.trailing_fixed_rows; row++) if (xbaeIsRowVisible(mw, row)) { found = 1; xbaeDrawCell(mw, row, column); } else if (found) break; /* came to the end of the clip */ /* and finally trailing fixed are always visible */ for (row = mw->matrix.rows - mw->matrix.trailing_fixed_rows; row < mw->matrix.rows; row++) xbaeDrawCell(mw, row, column); } } /* * Redraw an entire row */ void XbaeMatrixRefreshRow(w, row) Widget w; int row; { XbaeMatrixWidget mw = (XbaeMatrixWidget)w; int column; int found = 0; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; /* we attempt to be mildly efficient about this */ if (xbaeIsRowVisible(mw, row)) { /* fixed always visible */ for (column = 0; column < mw->matrix.fixed_columns; column++) xbaeDrawCell(mw, row, column); /* now the scrollable clip */ for (; column < mw->matrix.columns - mw->matrix.trailing_fixed_columns; column++) if (xbaeIsColumnVisible(mw, column)) { found = 1; xbaeDrawCell(mw, row, column); } else if (found) break; /* came to the end of the clip */ /* and finally trailing fixed are always visible */ for (column = mw->matrix.columns - mw->matrix.trailing_fixed_columns; column < mw->matrix.columns; column++) xbaeDrawCell(mw, row, column); } } /* * XbaeMatrixVisibleRows() * * This routine returns the number of rows that are visible in the matrix. * * D. Craig Wilson 5-MAY-1995 * - Cloned from the local "xbaeAdjustTopRow(mw)" routine. */ int XbaeMatrixVisibleRows(w) Widget w; { XbaeMatrixWidget matrix = (XbaeMatrixWidget) w; int rows_visible = VISIBLE_HEIGHT(matrix) / ROW_HEIGHT(matrix); /* * If we have less than one full row visible, then count it as a full row. */ if (rows_visible == 0) rows_visible = 1; /* * rows_visible might be inaccurate since Clip may not have been resized. * Test this routine and see if we need to call XbaeMatrixRefresh() to * ensure accuracy. */ else if (rows_visible > matrix->matrix.rows) rows_visible = matrix->matrix.rows; return rows_visible; } /* XbaeMatrixVisibleRows */ /* * XbaeMatrixVisibleColumns() * * This routine returns the number of columns that are visible in the matrix. * * D. Craig Wilson 5-MAY-1995 * - Cloned from the local "xbaeAdjustTopRow(mw)" routine. */ int XbaeMatrixVisibleColumns (w) Widget w; { XbaeMatrixWidget matrix = (XbaeMatrixWidget)w; int left_column; int right_column; xbaeGetVisibleColumns(matrix, &left_column, &right_column); return right_column - left_column + 1; } /* XbaeMatrixVisibleColumns */ /* * Get per-cell user data */ XtPointer XbaeMatrixGetCellUserData(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw; XtPointer data; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return NULL; mw = (XbaeMatrixWidget) w; if (mw->matrix.cell_user_data) data = mw->matrix.cell_user_data[row][column]; else return NULL; return data; } /* * Set per-cell user data */ void XbaeMatrixSetCellUserData(w, row, column, data) Widget w; int row; int column; XtPointer data; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (! mw->matrix.cell_user_data) { XtPointer **copy; register int i; copy = (XtPointer **) XtMalloc(mw->matrix.rows * sizeof(XtPointer*)); for (i = 0; i < mw->matrix.rows; i++) copy[i] = (XtPointer*) XtCalloc(mw->matrix.columns, sizeof(XtPointer)); mw->matrix.cell_user_data = copy; } mw->matrix.cell_user_data[row][column] = data; return; } /* * Get per-row user data */ XtPointer XbaeMatrixGetRowUserData(w, row) Widget w; int row; { XbaeMatrixWidget mw; XtPointer data; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return NULL; mw = (XbaeMatrixWidget) w; if (mw->matrix.row_user_data) data = mw->matrix.row_user_data[row]; else return NULL; return data; } /* * Set per-row user data */ void XbaeMatrixSetRowUserData(w, row, data) Widget w; int row; XtPointer data; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (! mw->matrix.row_user_data) { XtPointer *copy; copy = (XtPointer *) XtCalloc(mw->matrix.rows, sizeof(XtPointer)); mw->matrix.row_user_data = copy; } mw->matrix.row_user_data[row]= data; return; } /* * Get per-column user data */ XtPointer XbaeMatrixGetColumnUserData(w, column) Widget w; int column; { XbaeMatrixWidget mw; XtPointer data; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return NULL; mw = (XbaeMatrixWidget) w; if (mw->matrix.column_user_data) data = mw->matrix.column_user_data[column]; else return NULL; return data; } /* * Set per-column user data */ void XbaeMatrixSetColumnUserData(w, column, data) Widget w; int column; XtPointer data; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (! mw->matrix.column_user_data) { XtPointer *copy; copy = (XtPointer *) XtCalloc(mw->matrix.columns, sizeof(XtPointer)); mw->matrix.column_user_data = copy; } mw->matrix.column_user_data[column]= data; return; } #if CELL_WIDGETS /* * Set per-cell widget */ void XbaeMatrixSetCellWidget(w, row, column, widget) Widget w; int row; int column; Widget widget; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (! mw->matrix.cell_widgets) { Widget **copy; register int i; copy = (Widget **) XtMalloc(mw->matrix.rows * sizeof(Widget*)); for (i = 0; i < mw->matrix.rows; i++) copy[i] = (Widget*) XtCalloc(mw->matrix.columns, sizeof(Widget)); mw->matrix.cell_widgets = copy; } mw->matrix.cell_widgets[row][column] = widget; return; } #endif Boolean XbaeMatrixIsRowSelected(w, row) Widget w; int row; { int col; XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; if (row < 0 || row >= mw->matrix.rows) { XtAppContext appcontext = XtWidgetToApplicationContext(w); XtAppError(appcontext, "Invalid row passed to XbaeMatrixIsRowSelected()"); return False; } if (!mw->matrix.selected_cells) return False; /* * Check all the cells in the row */ for (col = 0 ; col < mw->matrix.columns ; col++) if (! mw->matrix.selected_cells[row][col]) return False; /* * Return success */ return True; } Boolean XbaeMatrixIsColumnSelected(w, col) Widget w; int col; { int row; XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; if (col < 0 || col >= mw->matrix.columns) { XtAppContext appcontext = XtWidgetToApplicationContext(w); XtAppError(appcontext, "Invalid column passed to XbaeMatrixIsColumnSelected()"); return False; } if (!mw->matrix.selected_cells) return False; /* * Check all the cells in the row */ for (row = 0 ; row < mw->matrix.rows ; row++) if (! mw->matrix.selected_cells[row][col]) return False; /* * Return success */ return True; } Boolean XbaeMatrixIsCellSelected(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; if (column < 0 || column >= mw->matrix.columns || row < 0 || row >= mw->matrix.rows) { XtAppContext appcontext = XtWidgetToApplicationContext(w); XtAppError( appcontext, "Invalid coordinates passed to XbaeMatrixIsCellSelected()"); return False; } if (!mw->matrix.selected_cells) return False; if (! mw->matrix.selected_cells[row][column]) return False; /* * Return success */ return True; } int XbaeMatrixFirstSelectedRow(w) Widget w; { int i; XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return -1; mw = (XbaeMatrixWidget) w; if (!mw->matrix.selected_cells) return -1; /* * Linear search for first selected */ for (i = 0 ; i < mw->matrix.rows ; i++) if (XbaeMatrixIsRowSelected(w, i)) return i; /* * No selection - return an invalid row id */ return -1; } int XbaeMatrixFirstSelectedColumn(w) Widget w; { int i; XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return -1; mw = (XbaeMatrixWidget) w; if (!mw->matrix.selected_cells) return -1; /* * Linear search for first selected */ for (i = 0 ; i < mw->matrix.columns ; i++) if (XbaeMatrixIsColumnSelected(w, i)) return i; /* * No selection - return an invalid row id */ return -1; } void XbaeMatrixFirstSelectedCell(w, row, column) Widget w; int *row; int *column; { int i, j; XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) { *row = *column = -1; return; } mw = (XbaeMatrixWidget) w; if (!mw->matrix.selected_cells) { *row = -1; *column = -1; return; } for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) if (mw->matrix.selected_cells[ i ][ j ]) { *row = i; *column = j; return; } *row = *column = -1; } int XbaeMatrixGetNumSelected(w) Widget w; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return 0; mw = (XbaeMatrixWidget) w; return mw->matrix.selected_cells ? mw->matrix.num_selected_cells : 0; } int XbaeMatrixNumColumns(w) Widget w; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return 0; mw = (XbaeMatrixWidget) w; return mw->matrix.columns; } int XbaeMatrixNumRows(w) Widget w; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return 0; mw = (XbaeMatrixWidget) w; return mw->matrix.rows; } #if XmVersion >= 1002 void XbaeMatrixUnhighlightAll(w) Widget w; { XbaeMatrixWidget mw; int row, column; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (!mw->matrix.highlighted_cells) return; mw->matrix.highlight_location = UnhighlightAll; for (row = 0; row < mw->matrix.rows; row++) { for (column = 0; column < mw->matrix.columns; column++) { /* * If the cell is visible and highlighted */ if (mw->matrix.highlighted_cells[row][column] && xbaeIsCellVisible(mw, row, column)) xbaeDrawCell(mw, row, column); mw->matrix.highlighted_cells[row][column] = HighlightNone; } } mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixHighlightCell(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "highlightCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for HighlightCell.", NULL, 0); return; } /* * Scroll the cell onto the screen */ if (mw->matrix.scroll_select) xbaeMakeCellVisible(mw, row, column); if (!mw->matrix.highlighted_cells) xbaeCopyHighlightedCells(mw); /* * Establish location -- must be after scroll, * otherwise may not redraw properly */ mw->matrix.highlight_location = HighlightCell; /* * If the cell is not already highlighted */ if (!(mw->matrix.highlighted_cells[row][column] & HighlightCell)) { mw->matrix.highlighted_cells[row][column] |= HighlightCell; /* * Only redraw if cell is visible */ if (xbaeIsCellVisible(mw, row, column)) { int x, y; Window win; /* * Get the correct window */ win = xbaeGetCellWindow(mw, &w, row, column); /* * Convert row,column coordinates to the * coordinates relative to the correct window */ xbaeRowColToXY(mw, row, column, &x, &y); DRAW_HIGHLIGHT(XtDisplay(mw), win, mw->manager.highlight_GC, x + mw->matrix.cell_shadow_thickness, y + mw->matrix.cell_shadow_thickness, COLUMN_WIDTH(mw, column) - (2 * mw->matrix.cell_shadow_thickness), ROW_HEIGHT(mw) - (2 * mw->matrix.cell_shadow_thickness), mw->matrix.cell_highlight_thickness, LineSolid); } } mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixUnhighlightCell(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "unhighlightCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for UnhighlightCell.", NULL, 0); return; } if (!mw->matrix.highlighted_cells) return; mw->matrix.highlight_location = UnhighlightCell; if (xbaeIsCellVisible(mw, row, column)) xbaeDrawCell(mw, row, column); mw->matrix.highlighted_cells[row][column] &= ~HighlightCell; mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixHighlightRow(w, row) Widget w; int row; { XbaeMatrixWidget mw; int j, lc, rc; Boolean visible; unsigned char highlight; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (row >= mw->matrix.rows || row < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "highlightRow", "badIndex", "XbaeMatrix", "XbaeMatrix: Row out of bounds for HighlightRow.", NULL, 0); return; } if (!mw->matrix.highlighted_cells) xbaeCopyHighlightedCells(mw); /* * Scroll the row onto the screen */ if (mw->matrix.scroll_select) xbaeMakeRowVisible(mw, row); /* * Establish location -- must be after scroll, * otherwise may not redraw properly */ mw->matrix.highlight_location = HighlightRow; /* * For each cell in the row, if the cell is not already highlighted, * highlight it and redraw it if it is visible */ visible = xbaeIsRowVisible(mw, row); xbaeGetVisibleColumns(mw, &lc, &rc); highlight = (IN_GRID_ROW_MODE(mw) ? HighlightRow : HighlightOther); for (j = 0; j < mw->matrix.columns; j++) { if (!(mw->matrix.highlighted_cells[row][j] & highlight)) { mw->matrix.highlighted_cells[row][j] |= highlight; if (visible) xbaeDrawCell(mw, row, j); } } mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixUnhighlightRow(w, row) Widget w; int row; { XbaeMatrixWidget mw; int column, lc, rc; Boolean visible; unsigned char highlight; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (row >= mw->matrix.rows || row < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "highlightRow", "badIndex", "XbaeMatrix", "XbaeMatrix: Row out of bounds for UnhighlightRow.", NULL, 0); return; } if (!mw->matrix.highlighted_cells) return; mw->matrix.highlight_location = UnhighlightRow; visible = xbaeIsRowVisible(mw, row); /* * For each cell in the row, if the cell is highlighted, * unhighlight it and redraw it if it is visible */ xbaeGetVisibleColumns(mw, &lc, &rc); highlight = (IN_GRID_ROW_MODE(mw) ? HighlightRow : HighlightOther); for (column = 0; column < mw->matrix.columns; column++) { if (mw->matrix.highlighted_cells[row][column] & highlight) { if (visible) xbaeDrawCell(mw, row, column); mw->matrix.highlighted_cells[row][column] &= ~highlight; } } mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixHighlightColumn(w, column) Widget w; int column; { XbaeMatrixWidget mw; int row, tr, br; Boolean visible; unsigned char highlight; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "highlightColumn", "badIndex", "XbaeMatrix", "XbaeMatrix: Column out of bounds for HighlightColumn.", NULL, 0); return; } if (!mw->matrix.highlighted_cells) xbaeCopyHighlightedCells(mw); /* * Scroll the row onto the screen */ if (mw->matrix.scroll_select) xbaeMakeColumnVisible(mw, column); mw->matrix.highlight_location = HighlightColumn; /* * For each cell in the column, if the cell is not already highlighted, * highlight it and redraw it if it is visible */ visible = xbaeIsColumnVisible(mw, column); xbaeGetVisibleRows(mw, &tr, &br); highlight = (IN_GRID_COLUMN_MODE(mw) ? HighlightColumn : HighlightOther); for (row = 0; row < mw->matrix.rows; row++) { if (!(mw->matrix.highlighted_cells[row][column] & highlight)) { mw->matrix.highlighted_cells[row][column] |= highlight; if (visible) xbaeDrawCell(mw, row, column); } } mw->matrix.highlight_location = HighlightNone; } void XbaeMatrixUnhighlightColumn(w, column) Widget w; int column; { XbaeMatrixWidget mw; int row, tr, br; Boolean visible; unsigned char highlight; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "highlightColumn", "badIndex", "XbaeMatrix", "XbaeMatrix: Column out of bounds for UnhighlightColumn.", NULL, 0); return; } if (!mw->matrix.highlighted_cells) return; mw->matrix.highlight_location = UnhighlightColumn; visible = xbaeIsColumnVisible(mw, column); /* * For each cell in the row, if the cell is highlighted, * unhighlight it and redraw it if it is visible. */ xbaeGetVisibleRows(mw, &tr, &br); highlight = (IN_GRID_COLUMN_MODE(mw) ? HighlightColumn : HighlightOther); for (row = 0; row < mw->matrix.rows; row++) { if (mw->matrix.highlighted_cells[row][column] & highlight) { if (visible) xbaeDrawCell(mw, row, column); mw->matrix.highlighted_cells[row][column] &= ~highlight; } } mw->matrix.highlight_location = HighlightNone; } #endif void XbaeMatrixDisableRedisplay(w) Widget w; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; mw->matrix.disable_redisplay++ ; } void #if NeedFunctionPrototypes XbaeMatrixEnableRedisplay(Widget w, Boolean redisplay) #else XbaeMatrixEnableRedisplay(w, redisplay) Widget w; Boolean redisplay; #endif { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (mw->matrix.disable_redisplay) mw->matrix.disable_redisplay--; #undef FORCE_REDISPLAY_IF_TRUE #ifndef FORCE_REDISPLAY_IF_TRUE if (redisplay && mw->matrix.disable_redisplay == 0) XbaeMatrixRefresh(w); #else if (redisplay) { mw->matrix.disable_redisplay = 0; XbaeMatrixRefresh(w); } #endif } /* * Public interface for xbaeMakeCellVisible() */ void XbaeMatrixMakeCellVisible(w, row, column) Widget w; int row; int column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; xbaeMakeCellVisible(mw, row, column); } /* * Public interface for xbaeIsRowVisible() */ Boolean XbaeMatrixIsRowVisible(w, row) Widget w; int row; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; return xbaeIsRowVisible(mw, row); } /* * Public interface for xbaeIsColumnVisible() */ Boolean XbaeMatrixIsColumnVisible(w, col) Widget w; int col; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; return xbaeIsColumnVisible(mw, col); } /* * Public interface for xbaeIsCellVisible() */ Boolean XbaeMatrixIsCellVisible(w, row, col) Widget w; int row; int col; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return False; mw = (XbaeMatrixWidget) w; return xbaeIsCellVisible(mw, row, col); } /* * XbaeMatrixVisibleCells() * * This routine returns the range of cells that are visible in the matrix. * */ void XbaeMatrixVisibleCells(w, top_row, bottom_row, left_column, right_column) Widget w; int *top_row; int *bottom_row; int *left_column; int *right_column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; xbaeGetVisibleRows(mw, top_row, bottom_row); xbaeGetVisibleColumns(mw, left_column, right_column); } /* * Get the label of the column passed here. */ String XbaeMatrixGetColumnLabel(w, column) Widget w; int column; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return NULL; mw = (XbaeMatrixWidget)w; if (!(mw->matrix.column_labels) || column > mw->matrix.columns) return NULL; else return mw->matrix.column_labels[column]; } /* * Get the label of the row passed here. */ String XbaeMatrixGetRowLabel(w, row) Widget w; int row; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return NULL; mw = (XbaeMatrixWidget)w; if (!(mw->matrix.row_labels) || row > mw->matrix.rows) return NULL; else return mw->matrix.row_labels[row]; } void XbaeMatrixSetColumnLabel(w, column, value) Widget w; int column; String value; { XbaeMatrixWidget mw; ColumnLabelLines lines; String copy; if (!XtIsSubclass(w, xbaeMatrixWidgetClass) || !value) return; mw = (XbaeMatrixWidget) w; /* * Setting a column label when none are defined or changing the number * of lines in a column label would cause the need for a redraw of the * widget so we won't allow it. */ if (!mw->matrix.column_labels) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "setColumnLabel", "noLabels", "XbaeMatrix", "XbaeMatrix: Cannot set column labels when none defined", NULL, 0); return; } lines = (ColumnLabelLines)XtMalloc(sizeof(ColumnLabelLinesRec)); copy = XtNewString(value); xbaeParseColumnLabel(copy, lines); if (lines->lines != mw->matrix.column_label_lines[column].lines) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "setColumnLabel", "changeLines", "XbaeMatrix", "XbaeMatrix: Cannot change number of lines when setting column labels", NULL, 0); XtFree((XtPointer)copy); XtFree((XtPointer)lines->lengths); XtFree((XtPointer)lines); return; } /* * OK to make the change */ XtFree((XtPointer) mw->matrix.column_labels[column]); XtFree((XtPointer) mw->matrix.column_label_lines[column].lengths); mw->matrix.column_labels[column] = copy; mw->matrix.column_label_lines[column] = *lines; /* * Redraw the column label if it is visible. No expose event is * generated by simply changing the label */ if (xbaeIsColumnVisible(mw, column)) { /* * Don't generate expose events and let xbaeRedrawLabelsAndFixed * work it out - we know where we need to draw */ XClearArea(XtDisplay(mw), XtWindow(mw), COLUMN_LABEL_OFFSET(mw) + COLUMN_POSITION(mw, column), 0, COLUMN_WIDTH(mw, column), COLUMN_LABEL_HEIGHT(mw), False); xbaeDrawColumnLabel(mw, column, False); } return; } void XbaeMatrixSetRowLabel(w, row, value) Widget w; int row; String value; { XbaeMatrixWidget mw; if (!XtIsSubclass(w, xbaeMatrixWidgetClass)) return; mw = (XbaeMatrixWidget) w; if (!mw->matrix.row_labels || !value) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "setRowLabel", "noLabels", "XbaeMatrix", "XbaeMatrix: Cannot set row labels when none defined", NULL, 0); return; } XtFree((XtPointer) mw->matrix.row_labels[row]); mw->matrix.row_labels[row] = XtNewString(value); if (xbaeIsRowVisible(mw, row)) { int y; if (IS_LEADING_FIXED_ROW(mw, row)) y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * row; else if (IS_TRAILING_FIXED_ROW(mw, row)) y = TRAILING_FIXED_ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * (row - TRAILING_VERT_ORIGIN(mw)); else y = ROW_LABEL_OFFSET(mw) + ROW_HEIGHT(mw) * (row - VERT_ORIGIN(mw)); XClearArea(XtDisplay(mw), XtWindow(mw), 0, y, ROW_LABEL_WIDTH(mw), ROW_HEIGHT(mw), False); xbaeDrawRowLabel(mw, row, False); } } Widget XbaeCreateMatrix(parent, name, args, ac) Widget parent; String name; ArgList args; Cardinal ac; { return XtCreateWidget(name, xbaeMatrixWidgetClass, parent, args, ac); } grace-5.1.25/Xbae/Xbae/Methods.c0000644000076500001440000031656107412442103015750 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Methods.c,v 1.1.2.1 2001/12/26 21:42:27 fnevgeny Exp $ */ /* * Methods.c created by Andrew Lister (7 August, 1995) */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* For memmove/bcopy */ #include #if !defined(HAVE_MEMMOVE) && !defined(XBAE_NEED_BCOPY) #define XBAE_NEED_BCOPY #endif /* Earl R. * Added another BCOPY macro for porting purposes. Porting to 15+ UNIX * platforms. Renamed bcopy to BCOPY and typecast to fix compiler warnings * on some platforms. */ #if !defined(XBAE_NEED_BCOPY) || defined(SVR4) || defined(VMS) || defined(__EMX__) #define BCOPY(src, dest, n) memmove((void *)(dest), (void *)(src), (n)) #else #define BCOPY(src, dest, n) bcopy((void *)(src), (void *)(dest), (n)) #endif static void AddRowsToTable P((XbaeMatrixWidget, int, String *, String *, Pixel *, Pixel *, int)); static void DeleteRowsFromTable P((XbaeMatrixWidget, int, int)); static void AddColumnsToTable P((XbaeMatrixWidget, int, String *, String *, short *, int *, unsigned char *, unsigned char *, Pixel *, Pixel *, int)); static void DeleteColumnsFromTable P((XbaeMatrixWidget, int, int)); static Boolean DoCommitEdit P((XbaeMatrixWidget, XEvent *)); /* * Add rows to the internal cells data structure. * If rows or labels is NULL, add empty rows. */ static void AddRowsToTable(mw, position, rows, labels, colors, backgrounds, num_rows) XbaeMatrixWidget mw; int position; String *rows; String *labels; Pixel *colors; Pixel *backgrounds; int num_rows; { int i, j; /* * Realloc a larger array of row pointers and a larger label arrays */ if (mw->matrix.cells || rows) mw->matrix.cells = (String **) XtRealloc((char *) mw->matrix.cells, (mw->matrix.rows + num_rows) * sizeof(String *)); if (mw->matrix.row_labels || labels) mw->matrix.row_labels = (String *) XtRealloc((char *) mw->matrix.row_labels, (mw->matrix.rows + num_rows) * sizeof(String)); if (mw->matrix.row_button_labels) mw->matrix.row_button_labels = (Boolean *) XtRealloc((char *) mw->matrix. row_button_labels, (mw->matrix.rows + num_rows) * sizeof(Boolean)); if (mw->matrix.colors || colors) mw->matrix.colors = (Pixel **) XtRealloc((char *) mw->matrix.colors, (mw->matrix.rows + num_rows) * sizeof(Pixel *)); if (mw->matrix.cell_background || backgrounds) mw->matrix.cell_background = (Pixel **) XtRealloc((char *) mw->matrix.cell_background, (mw->matrix.rows + num_rows) * sizeof(Pixel *)); if (mw->matrix.cell_user_data) mw->matrix.cell_user_data = (XtPointer **) XtRealloc((char*) mw->matrix.cell_user_data, (mw->matrix.rows + num_rows) * sizeof(XtPointer *)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets = (Widget **) XtRealloc((char*) mw->matrix.cell_widgets, (mw->matrix.rows + num_rows) * sizeof(Widget *)); #endif if (mw->matrix.row_user_data) mw->matrix.row_user_data = (XtPointer*) XtRealloc((char*) mw->matrix.row_user_data, (mw->matrix.rows + num_rows) * sizeof(XtPointer)); if (mw->matrix.cell_shadow_types) mw->matrix.cell_shadow_types = (unsigned char **) XtRealloc((char*) mw->matrix.cell_shadow_types, (mw->matrix.rows + num_rows) * sizeof(unsigned char *)); if (mw->matrix.row_shadow_types) mw->matrix.row_shadow_types = (unsigned char *) XtRealloc((char*) mw->matrix.row_shadow_types, (mw->matrix.rows + num_rows) * sizeof(unsigned char)); if (mw->matrix.selected_cells) mw->matrix.selected_cells = (Boolean **) XtRealloc((char *) mw->matrix.selected_cells, (mw->matrix.rows + num_rows) * sizeof(Boolean *)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) mw->matrix.highlighted_cells = (unsigned char **) XtRealloc((char *) mw->matrix.highlighted_cells, (mw->matrix.rows + num_rows) * sizeof(unsigned char *)); #endif /* * If we are inserting rows into the middle, we need to make room. */ if (position < mw->matrix.rows) { if (mw->matrix.cells) BCOPY(&mw->matrix.cells[position], &mw->matrix.cells[position + num_rows], (mw->matrix.rows - position) * sizeof(String *)); if (mw->matrix.row_labels) BCOPY(&mw->matrix.row_labels[position], &mw->matrix.row_labels[position + num_rows], (mw->matrix.rows - position) * sizeof(String)); if (mw->matrix.row_button_labels) BCOPY(&mw->matrix.row_button_labels[position], &mw->matrix.row_button_labels[position + num_rows], (mw->matrix.rows - position) * sizeof(Boolean)); if (mw->matrix.colors) BCOPY(&mw->matrix.colors[position], &mw->matrix.colors[position + num_rows], (mw->matrix.rows - position) * sizeof(Pixel *)); if (mw->matrix.cell_background) BCOPY(&mw->matrix.cell_background[position], &mw->matrix.cell_background[position + num_rows], (mw->matrix.rows - position) * sizeof(Pixel *)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) BCOPY(&mw->matrix.cell_widgets[position], &mw->matrix.cell_widgets[position + num_rows], (mw->matrix.rows - position) * sizeof(Widget *)); #endif if (mw->matrix.cell_user_data) BCOPY(&mw->matrix.cell_user_data[position], &mw->matrix.cell_user_data[position + num_rows], (mw->matrix.rows - position) * sizeof(XtPointer *)); if (mw->matrix.row_user_data) BCOPY(&mw->matrix.row_user_data[position], &mw->matrix.row_user_data[position + num_rows], (mw->matrix.rows - position) * sizeof(XtPointer)); if (mw->matrix.cell_shadow_types) BCOPY(&mw->matrix.cell_shadow_types[position], &mw->matrix.cell_shadow_types[position + num_rows], (mw->matrix.rows - position) * sizeof(unsigned char *)); if (mw->matrix.row_shadow_types) BCOPY(&mw->matrix.row_shadow_types[position], &mw->matrix.row_shadow_types[position + num_rows], (mw->matrix.rows - position) * sizeof(unsigned char)); if (mw->matrix.selected_cells) BCOPY(&mw->matrix.selected_cells[position], &mw->matrix.selected_cells[position + num_rows], (mw->matrix.rows - position) * sizeof(Boolean *)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) BCOPY(&mw->matrix.highlighted_cells[position], &mw->matrix.highlighted_cells[position + num_rows], (mw->matrix.rows - position) * sizeof(unsigned char *)); #endif } /* * Malloc a new row array for each new row. Copy the label for each row. * If no label was passed in, use a NULL String. Malloc a new Pixel * and Boolean row array for each new row. * Use False for new button label flags. */ for (i = 0; i < num_rows; i++) { if (mw->matrix.cells) mw->matrix.cells[i + position] = (String *) XtMalloc(mw->matrix.columns * sizeof(String)); if (mw->matrix.row_labels) mw->matrix.row_labels[i + position] = labels ? XtNewString(labels[i]) : XtNewString(""); if (mw->matrix.row_button_labels) mw->matrix.row_button_labels[i + position] = False; if (mw->matrix.colors) mw->matrix.colors[i + position] = (Pixel *) XtMalloc(mw->matrix.columns * sizeof(Pixel)); if (mw->matrix.cell_background) mw->matrix.cell_background[i + position] = (Pixel *) XtMalloc(mw->matrix.columns * sizeof(Pixel)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets[i + position] = (Widget *) XtMalloc(mw->matrix.columns * sizeof(Widget)); #endif if (mw->matrix.cell_user_data) mw->matrix.cell_user_data[i + position] = (XtPointer *) XtMalloc(mw->matrix.columns * sizeof(XtPointer)); if (mw->matrix.row_user_data) mw->matrix.row_user_data[i + position] = (XtPointer) NULL; if (mw->matrix.cell_shadow_types) mw->matrix.cell_shadow_types[i + position] = (unsigned char *) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); if (mw->matrix.row_shadow_types) mw->matrix.row_shadow_types[i + position] = mw->matrix.cell_shadow_type; if (mw->matrix.selected_cells) mw->matrix.selected_cells[i + position] = (Boolean *) XtMalloc(mw->matrix.columns * sizeof(Boolean)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) mw->matrix.highlighted_cells[i + position] = (unsigned char *) XtMalloc(mw->matrix.columns * sizeof(unsigned char)); #endif } /* * Copy the rows arrays passed in into each new row, or if NULL * was passed in initialize each row to NULL Strings. Copy the colors * arrays passed in into each new row, if NULL was passed use foreground. */ for (i = 0; i < num_rows; i++) for (j = 0; j < mw->matrix.columns; j++) { if (mw->matrix.cells) /* NULL row[j] is empty string. Earl R. */ mw->matrix.cells[i + position][j] = rows ? XtNewString((rows[i * mw->matrix.columns + j] ? rows[i * mw->matrix.columns + j] : "")) : XtNewString(""); if (mw->matrix.colors) mw->matrix.colors[i + position][j] = colors ? colors[i] : mw->manager.foreground; if (mw->matrix.cell_background) mw->matrix.cell_background[i + position][j] = backgrounds ? backgrounds[i] : mw->core.background_pixel; #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets[i + position][j] = NULL; #endif if (mw->matrix.cell_user_data) mw->matrix.cell_user_data[i + position][j] = (XtPointer) NULL; if (mw->matrix.cell_shadow_types) mw->matrix.cell_shadow_types[i + position][j] = mw->matrix.cell_shadow_type; if (mw->matrix.selected_cells) mw->matrix.selected_cells[i + position][j] = False; #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) mw->matrix.highlighted_cells[i + position][j] = HighlightNone; #endif } mw->matrix.rows += num_rows; } /* * Delete rows from the internal cells data structure. */ static void DeleteRowsFromTable(mw, position, num_rows) XbaeMatrixWidget mw; int position; int num_rows; { int i, j; /* * We don't bother to realloc, we will just have some wasted space. * XXX is this a problem? */ /* * Free all the cells in the rows being deleted and the rows themselves. * Also free the String row labels and label button flags. Free the color * arrays for the rows being deleted. */ for (i = position; i < position + num_rows; i++) { /* Fixed a crash I was getting, Since I allow NULL cells. Earl R. */ if (mw->matrix.cells && mw->matrix.cells[i]) { for (j = 0; j < mw->matrix.columns; j++) if (mw->matrix.cells[i][j]) XtFree((XtPointer) mw->matrix.cells[i][j]); XtFree((XtPointer) mw->matrix.cells[i]); } if (mw->matrix.row_labels) XtFree((XtPointer) mw->matrix.row_labels[i]); if (mw->matrix.colors) XtFree((XtPointer) mw->matrix.colors[i]); if (mw->matrix.cell_background) XtFree((XtPointer) mw->matrix.cell_background[i]); #if CELL_WIDGETS if (mw->matrix.cell_widgets) XtFree((XtPointer) mw->matrix.cell_widgets[i]); #endif if (mw->matrix.cell_user_data) XtFree((XtPointer) mw->matrix.cell_user_data[i]); if (mw->matrix.cell_shadow_types) XtFree((XtPointer) mw->matrix.cell_shadow_types[i]); if (mw->matrix.selected_cells) { /* * Deselect the row so num_selected_cells gets updated */ xbaeDeselectRow(mw, i); XtFree((XtPointer) mw->matrix.selected_cells[i]); } #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) XtFree((XtPointer) mw->matrix.highlighted_cells[i]); #endif } /* * Copy those rows which are below the ones deleted, up. * (unless we deleted rows from the bottom). */ if (position + num_rows < mw->matrix.rows) { if (mw->matrix.cells) BCOPY(&mw->matrix.cells[position + num_rows], &mw->matrix.cells[position], (mw->matrix.rows - position - num_rows) * sizeof(String *)); if (mw->matrix.row_labels) BCOPY(&mw->matrix.row_labels[position + num_rows], &mw->matrix.row_labels[position], (mw->matrix.rows - position - num_rows) * sizeof(String)); if (mw->matrix.row_button_labels) BCOPY(&mw->matrix.row_button_labels[position + num_rows], &mw->matrix.row_button_labels[position], (mw->matrix.rows - position - num_rows) * sizeof(Boolean)); if (mw->matrix.colors) BCOPY(&mw->matrix.colors[position + num_rows], &mw->matrix.colors[position], (mw->matrix.rows - position - num_rows) * sizeof(Pixel *)); if (mw->matrix.cell_background) BCOPY(&mw->matrix.cell_background[position + num_rows], &mw->matrix.cell_background[position], (mw->matrix.rows - position - num_rows) * sizeof(Pixel *)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) BCOPY(&mw->matrix.cell_widgets[position + num_rows], &mw->matrix.cell_widgets[position], (mw->matrix.rows - position - num_rows) * sizeof(Widget *)); #endif if (mw->matrix.cell_user_data) BCOPY(&mw->matrix.cell_user_data[position + num_rows], &mw->matrix.cell_user_data[position], (mw->matrix.rows - position - num_rows) * sizeof(XtPointer *)); if (mw->matrix.row_user_data) BCOPY(&mw->matrix.row_user_data[position + num_rows], &mw->matrix.row_user_data[position], (mw->matrix.rows - position - num_rows) * sizeof(XtPointer *)); if (mw->matrix.cell_shadow_types) BCOPY(&mw->matrix.cell_shadow_types[position + num_rows], &mw->matrix.cell_shadow_types[position], (mw->matrix.rows - position - num_rows) * sizeof(unsigned char *)); if (mw->matrix.row_shadow_types) BCOPY(&mw->matrix.row_shadow_types[position + num_rows], &mw->matrix.row_shadow_types[position], (mw->matrix.rows - position - num_rows) * sizeof(unsigned char *)); if (mw->matrix.selected_cells) BCOPY(&mw->matrix.selected_cells[position + num_rows], &mw->matrix.selected_cells[position], (mw->matrix.rows - position - num_rows) * sizeof(Boolean *)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) BCOPY(&mw->matrix.highlighted_cells[position + num_rows], &mw->matrix.highlighted_cells[position], (mw->matrix.rows - position - num_rows) * sizeof(unsigned char *)); #endif } mw->matrix.rows -= num_rows; } /* * Add columns to the internal cells data structure. * If columns or labels is NULL, add empty columns. * If max_lengths is NULL, widths will be used. * If alignments is NULL, use XmALIGNMENT_BEGINNING. * If label_alignments is NULL, use alignments, or if it is NULL * XmALIGNMENT_BEGINNING. * widths must not be NULL. */ static void AddColumnsToTable(mw, position, columns, labels, widths, max_lengths, alignments, label_alignments, colors, backgrounds, num_columns) XbaeMatrixWidget mw; int position; String *columns; String *labels; short *widths; int *max_lengths; unsigned char *alignments; unsigned char *label_alignments; Pixel *colors; Pixel *backgrounds; int num_columns; { int i, j; /* * Realloc larger cells, widths, max_lengths, alignments, colors, * highlighted_cells, selected_cells, labels and label lines arrays. */ if (mw->matrix.rows == 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "AddColumns", "noRows", "XbaeMatrix", "XbaeMatrix: Attempting to add columns with no rows.", NULL, 0); return; } for (i = 0; i < mw->matrix.rows; i++) { if (mw->matrix.cells || columns) { if (!mw->matrix.cells) { mw->matrix.columns += num_columns; xbaeCopyCells(mw); mw->matrix.columns -= num_columns; } else mw->matrix.cells[i] = (String *) XtRealloc((char *) mw->matrix.cells[i], (mw->matrix.columns + num_columns) * sizeof(String)); } if (mw->matrix.colors || colors) { if (!mw->matrix.colors) { mw->matrix.columns += num_columns; xbaeCopyColors(mw); mw->matrix.columns -= num_columns; } else mw->matrix.colors[i] = (Pixel *) XtRealloc((char *) mw->matrix.colors[i], (mw->matrix.columns + num_columns) * sizeof(Pixel)); } if (mw->matrix.cell_background || backgrounds) { if (!mw->matrix.cell_background) { mw->matrix.columns += num_columns; xbaeCopyBackgrounds(mw); mw->matrix.columns -= num_columns; } else mw->matrix.cell_background[i] = (Pixel *) XtRealloc((char *) mw->matrix.cell_background[i], (mw->matrix.columns + num_columns) * sizeof(Pixel)); } #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets[i] = (Widget *) XtRealloc((char *) mw->matrix.cell_widgets[i], (mw->matrix.columns + num_columns) * sizeof(Widget)); #endif if (mw->matrix.cell_user_data) mw->matrix.cell_user_data[i] = (XtPointer *) XtRealloc((char*) mw->matrix.cell_user_data[i], (mw->matrix.columns + num_columns) * sizeof(XtPointer)); if (mw->matrix.cell_shadow_types) mw->matrix.cell_shadow_types[i] = (unsigned char *) XtRealloc((char*) mw->matrix.cell_shadow_types[i], (mw->matrix.columns + num_columns) * sizeof(unsigned char)); if (mw->matrix.selected_cells) mw->matrix.selected_cells[i] = (Boolean *) XtRealloc((char *) mw->matrix.selected_cells[i], (mw->matrix.columns + num_columns) * sizeof(Boolean)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) mw->matrix.highlighted_cells[i] = (unsigned char *) XtRealloc( (char *) mw->matrix.highlighted_cells[i], (mw->matrix.columns + num_columns) * sizeof(unsigned char)); #endif } mw->matrix.column_widths = (short *) XtRealloc((char *) mw->matrix.column_widths, (mw->matrix.columns + num_columns) * sizeof(short)); if (mw->matrix.column_max_lengths) mw->matrix.column_max_lengths = (int *) XtRealloc((char *) mw->matrix.column_max_lengths, (mw->matrix.columns + num_columns) * sizeof(int)); if (mw->matrix.column_alignments) mw->matrix.column_alignments = (unsigned char *) XtRealloc((char *) mw->matrix.column_alignments, (mw->matrix.columns + num_columns) * sizeof(unsigned char)); if (mw->matrix.column_button_labels) mw->matrix.column_button_labels = (Boolean *) XtRealloc((char *) mw->matrix. column_button_labels, (mw->matrix.columns + num_columns) * sizeof(Boolean)); if (mw->matrix.column_label_alignments) mw->matrix.column_label_alignments = (unsigned char *) XtRealloc((char *) mw->matrix. column_label_alignments, (mw->matrix.columns + num_columns) * sizeof(unsigned char)); if (mw->matrix.column_user_data) mw->matrix.column_user_data = (XtPointer*) XtRealloc((char*) mw->matrix.column_user_data, (mw->matrix.columns + num_columns) * sizeof(XtPointer)); if (mw->matrix.column_shadow_types) mw->matrix.column_shadow_types = (unsigned char *) XtRealloc((char*) mw->matrix.column_shadow_types, (mw->matrix.columns + num_columns) * sizeof(unsigned char)); if (mw->matrix.column_labels) { mw->matrix.column_labels = (String *) XtRealloc((char *) mw->matrix.column_labels, (mw->matrix.columns + num_columns) * sizeof(String)); mw->matrix.column_label_lines = (ColumnLabelLines) XtRealloc( (char *) mw->matrix.column_label_lines, (mw->matrix.columns + num_columns) * sizeof(ColumnLabelLinesRec)); } /* * If we are inserting columns into the middle, we need to make room. */ if (position < mw->matrix.columns) { BCOPY(&mw->matrix.column_widths[position], &mw->matrix.column_widths[position + num_columns], (mw->matrix.columns - position) * sizeof(short)); if (mw->matrix.column_max_lengths) BCOPY(&mw->matrix.column_max_lengths[position], &mw->matrix.column_max_lengths[position + num_columns], (mw->matrix.columns - position) * sizeof(int)); if (mw->matrix.column_alignments) BCOPY(&mw->matrix.column_alignments[position], &mw->matrix.column_alignments[position + num_columns], (mw->matrix.columns - position) * sizeof(unsigned char)); if (mw->matrix.column_button_labels) BCOPY(&mw->matrix.column_button_labels[position], &mw->matrix.column_button_labels[position + num_columns], (mw->matrix.columns - position) * sizeof(Boolean)); if (mw->matrix.column_label_alignments) BCOPY(&mw->matrix.column_label_alignments[position], &mw->matrix.column_label_alignments[position + num_columns], (mw->matrix.columns - position) * sizeof(unsigned char)); if (mw->matrix.column_user_data) BCOPY(&mw->matrix.column_user_data[position], &mw->matrix.column_user_data[position + num_columns], (mw->matrix.columns - position) * sizeof(XtPointer)); if (mw->matrix.column_shadow_types) BCOPY(&mw->matrix.column_shadow_types[position], &mw->matrix.column_shadow_types[position + num_columns], (mw->matrix.columns - position) * sizeof(unsigned char)); if (mw->matrix.column_labels) { BCOPY(&mw->matrix.column_labels[position], &mw->matrix.column_labels[position + num_columns], (mw->matrix.columns - position) * sizeof(String)); BCOPY(&mw->matrix.column_label_lines[position], &mw->matrix.column_label_lines[position + num_columns], (mw->matrix.columns - position) * sizeof(ColumnLabelLinesRec)); } /* * Shift the columns in each row. */ for (i = 0; i < mw->matrix.rows; i++) { if (mw->matrix.cells) BCOPY(&mw->matrix.cells[i][position], &mw->matrix.cells[i][position + num_columns], (mw->matrix.columns - position) * sizeof(String)); if (mw->matrix.colors) BCOPY(&mw->matrix.colors[i][position], &mw->matrix.colors[i][position + num_columns], (mw->matrix.columns - position) * sizeof(Pixel)); if (mw->matrix.cell_background) BCOPY(&mw->matrix.cell_background[i][position], &mw->matrix.cell_background[i][position + num_columns], (mw->matrix.columns - position) * sizeof(Pixel)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) BCOPY(&mw->matrix.cell_widgets[i][position], &mw->matrix.cell_widgets[i][position + num_columns], (mw->matrix.columns - position) * sizeof(Widget)); #endif if (mw->matrix.cell_user_data) BCOPY(&mw->matrix.cell_user_data[i][position], &mw->matrix.cell_user_data[i][position + num_columns], (mw->matrix.columns - position) * sizeof(XtPointer)); if (mw->matrix.cell_shadow_types) BCOPY(&mw->matrix.cell_shadow_types[i][position], &mw->matrix.cell_shadow_types[i][position + num_columns], (mw->matrix.columns - position) * sizeof(unsigned char)); if (mw->matrix.selected_cells) BCOPY(&mw->matrix.selected_cells[i][position], &mw->matrix.selected_cells[i][position + num_columns], (mw->matrix.columns - position) * sizeof(Boolean)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) BCOPY(&mw->matrix.highlighted_cells[i][position], &mw->matrix.highlighted_cells[i][position + num_columns], (mw->matrix.columns - position) * sizeof(unsigned char)); #endif } } /* * Copy all of the passed in info into each new column * (except column_positions which will be recalculated below). * If columns or labels is NULL, add empty columns. * If max_lengths is NULL, widths will be used. * If alignments is NULL, use XmALIGNMENT_BEGINNING. * If label_alignments is NULL, use XmALIGNMENT_BEGINNING * If labels is NULL, use NULL strings. * If colors is NULL, use foreground. * Use False for new button label flags. */ for (j = 0; j < num_columns; j++) { mw->matrix.column_widths[j + position] = widths[j]; if (mw->matrix.column_max_lengths) mw->matrix.column_max_lengths[j + position] = max_lengths ? max_lengths[j] : (int) widths[j]; if (mw->matrix.column_alignments) mw->matrix.column_alignments[j + position] = alignments ? alignments[j] : XmALIGNMENT_BEGINNING; if (mw->matrix.column_button_labels) mw->matrix.column_button_labels[j + position] = False; if (mw->matrix.column_label_alignments) mw->matrix.column_label_alignments[j + position] = label_alignments ? label_alignments[j] : XmALIGNMENT_BEGINNING; if (mw->matrix.column_user_data) mw->matrix.column_user_data[j + position] = (XtPointer) NULL; #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets[j + position] = NULL; #endif if (mw->matrix.column_shadow_types) mw->matrix.column_shadow_types[j + position] = mw->matrix.cell_shadow_type; if (mw->matrix.column_labels) { mw->matrix.column_labels[j + position] = labels ? XtNewString(labels[j]) : XtNewString(""); xbaeParseColumnLabel(mw->matrix.column_labels[j + position], &mw->matrix.column_label_lines[j + position]); } /* * Add this new column to each row. */ for (i = 0; i < mw->matrix.rows; i++) { if (mw->matrix.cells) mw->matrix.cells[i][j + position] = columns ? XtNewString(columns[i * num_columns + j]) : XtNewString(""); if (mw->matrix.colors) mw->matrix.colors[i][j + position] = colors ? colors[j] : mw->manager.foreground; if (mw->matrix.cell_background) mw->matrix.cell_background[i][j + position] = backgrounds ? backgrounds[j] : mw->core.background_pixel; #if CELL_WIDGETS if (mw->matrix.cell_widgets) mw->matrix.cell_widgets[i][j + position] = (Widget) NULL; #endif if (mw->matrix.cell_user_data) mw->matrix.cell_user_data[i][j + position] = (XtPointer) NULL; if (mw->matrix.cell_shadow_types) mw->matrix.cell_shadow_types[i][j + position] = mw->matrix.cell_shadow_type; if (mw->matrix.selected_cells) mw->matrix.selected_cells[i][j + position] = False; #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) mw->matrix.highlighted_cells[i][j + position] = HighlightNone; #endif } } mw->matrix.columns += num_columns; xbaeGetCellTotalWidth(mw); /* * See if the max number of column label lines changed */ if (mw->matrix.column_labels) { int end; end = position + num_columns; for (i = position; i < end; i++) if (mw->matrix.column_label_lines[i].lines > mw->matrix.column_label_maxlines) mw->matrix.column_label_maxlines = mw->matrix.column_label_lines[i].lines; } /* * Recalculate the column positions */ xbaeFreeColumnPositions(mw); mw->matrix.column_positions = CreateColumnPositions(mw); xbaeGetColumnPositions(mw); } /* * Delete columns from the internal cells data structure. */ static void DeleteColumnsFromTable(mw, position, num_columns) XbaeMatrixWidget mw; int position; int num_columns; { int i, j; /* * Free all the cells in the columns being deleted. * Also free the String column labels and the associated ColumnLabelLines * lengths arrays, and the column button label flags. */ for (j = position; j < position + num_columns; j++) { if (mw->matrix.cells) for (i = 0; i < mw->matrix.rows; i++) XtFree((XtPointer) mw->matrix.cells[i][j]); if (mw->matrix.column_labels) { XtFree((XtPointer) mw->matrix.column_labels[j]); XtFree((XtPointer) mw->matrix.column_label_lines[j].lengths); } } /* * Shift those columns after the ones being deleted, left. * (unless we deleted columns from the right). */ if (position + num_columns < mw->matrix.columns) { BCOPY(&mw->matrix.column_widths[position + num_columns], &mw->matrix.column_widths[position], (mw->matrix.columns - position - num_columns) * sizeof(short)); if (mw->matrix.column_max_lengths) BCOPY(&mw->matrix.column_max_lengths[position + num_columns], &mw->matrix.column_max_lengths[position], (mw->matrix.columns - position - num_columns) * sizeof(int)); if (mw->matrix.column_alignments) BCOPY(&mw->matrix.column_alignments[position + num_columns], &mw->matrix.column_alignments[position], (mw->matrix.columns - position - num_columns) * sizeof(unsigned char)); if (mw->matrix.column_button_labels) BCOPY(&mw->matrix.column_button_labels[position + num_columns], &mw->matrix.column_button_labels[position], (mw->matrix.columns - position - num_columns) * sizeof(Boolean)); if (mw->matrix.column_label_alignments) BCOPY(&mw->matrix.column_label_alignments[position + num_columns], &mw->matrix.column_label_alignments[position], (mw->matrix.columns - position - num_columns) * sizeof(unsigned char)); if (mw->matrix.column_user_data) BCOPY(&mw->matrix.column_user_data[position + num_columns], &mw->matrix.column_user_data[position], (mw->matrix.columns - position - num_columns) * sizeof(XtPointer)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) BCOPY(&mw->matrix.cell_widgets[position + num_columns], &mw->matrix.cell_widgets[position], (mw->matrix.columns - position - num_columns) * sizeof(Widget)); #endif if (mw->matrix.column_shadow_types) BCOPY(&mw->matrix.column_shadow_types[position + num_columns], &mw->matrix.column_shadow_types[position], (mw->matrix.columns - position - num_columns) * sizeof(unsigned char)); if (mw->matrix.column_labels) { BCOPY(&mw->matrix.column_labels[position + num_columns], &mw->matrix.column_labels[position], (mw->matrix.columns - position - num_columns) * sizeof(String)); BCOPY(&mw->matrix.column_label_lines[position + num_columns], &mw->matrix.column_label_lines[position], (mw->matrix.columns - position - num_columns) * sizeof(ColumnLabelLinesRec)); } /* * Shift the columns in each row. */ for (i = 0; i < mw->matrix.rows; i++) { if (mw->matrix.cells) BCOPY(&mw->matrix.cells[i][position + num_columns], &mw->matrix.cells[i][position], (mw->matrix.columns - position - num_columns) * sizeof(String)); if (mw->matrix.colors) BCOPY(&mw->matrix.colors[i][position + num_columns], &mw->matrix.colors[i][position], (mw->matrix.columns - position - num_columns) * sizeof(Pixel)); if (mw->matrix.cell_background) BCOPY(&mw->matrix.cell_background[i][position + num_columns], &mw->matrix.cell_background[i][position], (mw->matrix.columns - position - num_columns) * sizeof(Pixel)); #if CELL_WIDGETS if (mw->matrix.cell_widgets) BCOPY(&mw->matrix.cell_widgets[i][position + num_columns], &mw->matrix.cell_widgets[i][position], (mw->matrix.columns - position - num_columns) * sizeof(Widget)); #endif if (mw->matrix.cell_user_data) BCOPY(&mw->matrix.cell_user_data[i][position + num_columns], &mw->matrix.cell_user_data[i][position], (mw->matrix.columns - position - num_columns) * sizeof(XtPointer)); if (mw->matrix.cell_shadow_types) BCOPY(&mw->matrix.cell_shadow_types[i][position + num_columns], &mw->matrix.cell_shadow_types[i][position], (mw->matrix.columns - position - num_columns) * sizeof(unsigned char)); if (mw->matrix.selected_cells) BCOPY(&mw->matrix.selected_cells[i][position + num_columns], &mw->matrix.selected_cells[i][position], (mw->matrix.columns - position - num_columns) * sizeof(Boolean)); #if XmVersion >= 1002 if (mw->matrix.highlighted_cells) BCOPY(&mw->matrix.highlighted_cells[i][position + num_columns], &mw->matrix.highlighted_cells[i][position], (mw->matrix.columns - position - num_columns) * sizeof(unsigned char)); #endif } } mw->matrix.columns -= num_columns; xbaeGetCellTotalWidth(mw); /* * See if the max number of column label lines changed */ if (mw->matrix.column_labels) { mw->matrix.column_label_maxlines = mw->matrix.column_label_lines[0].lines; for (i = 1; i < mw->matrix.columns; i++) if (mw->matrix.column_label_lines[i].lines > mw->matrix.column_label_maxlines) mw->matrix.column_label_maxlines = mw->matrix.column_label_lines[i].lines; } /* * Recalculate the column positions */ xbaeFreeColumnPositions(mw); mw->matrix.column_positions = CreateColumnPositions(mw); xbaeGetColumnPositions(mw); } /* * Matrix set_cell method */ void #if NeedFunctionPrototypes xbaeSetCell(XbaeMatrixWidget mw, int row, int column, const String value, Boolean update_text) #else xbaeSetCell(mw, row, column, value, update_text) XbaeMatrixWidget mw; int row; int column; const String value; Boolean update_text; #endif { if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "xbaeSetCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for xbaeSetCell.", NULL, 0); return; } /* * If we have a draw cell callback, we must have a write cell callback * also if we want to set the data. Use this callback to write the * new data back to the application. */ if (mw->matrix.draw_cell_callback) { XbaeMatrixWriteCellCallbackStruct call_data; if (mw->matrix.write_cell_callback) { call_data.reason = XbaeWriteCellReason; call_data.event = (XEvent *)NULL; call_data.row = row; call_data.column = column; call_data.string = value; call_data.type = XbaeString; call_data.pixmap = (Pixmap)NULL; call_data.mask = (Pixmap)NULL; XtCallCallbackList((Widget)mw, mw->matrix.write_cell_callback, (XtPointer) &call_data); } } else { /* * Store the new value in the cell. */ if (!mw->matrix.cells && value[0] != 0) /* * The user typed something, there is no drawCellCallback and * our cells have not been allocated :-( * The typed value must be stored, so allocate the cells array * now. */ xbaeCopyCells(mw); /* * Now we are free to store the value in the widget's cell array */ if (mw->matrix.cells && /* It's OK to store the value */ strcmp(mw->matrix.cells[row][column], value)) { /* * I'm not particularly keen on this code - ie. checking twice * for mw->matrix.cells but it seemed like the only way around * the problem AL (Nov 5, 1995). */ XtFree((XtPointer) mw->matrix.cells[row][column]); mw->matrix.cells[row][column] = XtNewString(value); } else return; } /* * Draw the cell. */ if (xbaeIsCellVisible(mw, row, column)) { xbaeClearCell(mw, row, column); xbaeDrawCell(mw, row, column); } /* * If we are editing this cell, load the textField too if update_text set. */ if (update_text && XtIsManaged(TextChild(mw)) && mw->matrix.current_row == row && mw->matrix.current_column == column) { String string; /* Remove the modify verify callback when the text field is set. It thinks we are modifying the value - Motif thinks that it knows best but we know better! */ XtRemoveCallback(TextChild(mw), XmNmodifyVerifyCallback, xbaeModifyVerifyCB, (XtPointer)mw); /* * We need to get the value to put back into the textField if the * application has a draw cell callback so that any reformatting will * be displayed. -cg May 13, 1999. */ if (mw->matrix.draw_cell_callback) { Pixmap pixmap, mask; Pixel bg, fg; int width, height, depth; xbaeGetDrawCellValue(mw, mw->matrix.current_row, mw->matrix.current_column, &string, &pixmap, &mask, &width, &height, &bg, &fg, &depth); } else string = value; if (string[0] == '\0') XtVaSetValues(TextChild(mw), XmNvalue, string, NULL); else XmTextSetString(TextChild(mw), string); XtAddCallback(TextChild(mw), XmNmodifyVerifyCallback, xbaeModifyVerifyCB, (XtPointer)mw); } } static Boolean DoCommitEdit(mw, event) XbaeMatrixWidget mw; XEvent *event; { String cell; if (!XtIsManaged(TextChild(mw))) return True; /* * Get the value the user entered in the textField (this is a copy) */ cell = XmTextGetString(TextChild(mw)); /* * Call the leaveCellCallback to see if we can leave the current cell. */ if (mw->matrix.leave_cell_callback) { XbaeMatrixLeaveCellCallbackStruct call_data; call_data.reason = XbaeLeaveCellReason; call_data.event = event; call_data.row = mw->matrix.current_row; call_data.column = mw->matrix.current_column; call_data.value = cell; call_data.doit = True; XtCallCallbackList((Widget) mw, mw->matrix.leave_cell_callback, (XtPointer)&call_data); /* * Application doesn't want to leave this cell. Make the cell visible * and traverse to it so the user can see where they screwed up. */ if (!call_data.doit) { xbaeMakeCellVisible( mw, mw->matrix.current_row, mw->matrix.current_column); XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT); XtFree((XtPointer) cell); return False; } /* * Use the applications value if it is different. * If the application modified the string inplace, we will pick that * up automatically. */ if (call_data.value != cell) { XtFree((XtPointer) cell); cell = call_data.value; } } /* * Call the set_cell method to store the new value in the cell and redraw. */ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.set_cell) (mw, mw->matrix.current_row, mw->matrix.current_column, cell, True); XtFree((XtPointer) cell); return True; } /* * Position and size the scrollbars and clip widget for our new size. */ void xbaeResize(mw) XbaeMatrixWidget mw; { int cell_width, cell_height, rows_visible; Boolean has_horiz, has_vert; Boolean scrollbar_top; Boolean scrollbar_left; int width = mw->core.width; int height = mw->core.height; /* * Full size of widget (no SBs needed) - may be very large */ long int full_width = NON_FIXED_TOTAL_WIDTH(mw) + FIXED_COLUMN_WIDTH(mw) + TRAILING_FIXED_COLUMN_WIDTH(mw) + ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness; long int full_height = CELL_TOTAL_HEIGHT(mw) + FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw) + COLUMN_LABEL_HEIGHT(mw) + 2 * mw->manager.shadow_thickness; /* * Portion of cells which are visible in clip widget */ int horiz_visible = NON_FIXED_TOTAL_WIDTH(mw) - HORIZ_ORIGIN(mw); int vert_visible = CELL_TOTAL_HEIGHT(mw) - VERT_ORIGIN(mw) * ROW_HEIGHT(mw); /* * Check the location of the scrollbars */ scrollbar_top = (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmTOP_RIGHT); scrollbar_left = (mw->matrix.scrollbar_placement == XmBOTTOM_LEFT || mw->matrix.scrollbar_placement == XmTOP_LEFT); /* * If our horizontal scrollbar display policy is constant, * then we always have the horizontal scrollbar. If it is * none, then we never have it. Otherwise, check if it * is needed: if we are wider than the matrix's width, * then we don't need it; if we are smaller, we do. */ if (mw->matrix.hsb_display_policy == XmDISPLAY_STATIC) has_horiz = TRUE; else if (mw->matrix.hsb_display_policy == XmDISPLAY_NONE) has_horiz = FALSE; else { if (width >= full_width) has_horiz = False; else has_horiz = True; } if (has_horiz) height -= HORIZ_SB_HEIGHT(mw); /* * Same reasoning for the vertical scrollbar. */ if (mw->matrix.vsb_display_policy == XmDISPLAY_STATIC) has_vert = TRUE; else if (mw->matrix.vsb_display_policy == XmDISPLAY_NONE) has_vert = FALSE; else { if (height >= full_height) has_vert = False; else has_vert = True; } /* * If we have a vertical scrollbar, adjust the width and * recheck if we need the horizontal scrollbar. */ if (has_vert) { width -= VERT_SB_WIDTH(mw); if ((XmDISPLAY_NONE != mw->matrix.hsb_display_policy) && (! has_horiz) && (width < full_width)) { has_horiz = True; height -= HORIZ_SB_HEIGHT(mw); } } /* * If widget is smaller than full size, move/resize the scrollbar and * set sliderSize, also if cell_width/cell_height is greater than * the amount of cell area visible, then we need to drag the cells * back into the visible part of the clip widget and set the * scrollbar value. * * Otherwise, the widget is larger than full size, so set * cell_width/cell_height to size of cells and set origin to 0 * to force full cell area to be displayed * * We also need to move the textField correspondingly */ /* * We were resized smaller than our max width. */ if (width < full_width) { int HSBwidth; /* * Calculate the width of the non-fixed visible cells. */ cell_width = mw->core.width - (FIXED_COLUMN_WIDTH(mw) + TRAILING_FIXED_COLUMN_WIDTH(mw) + ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness); /* * Subtract the VSB if we have one. */ if (has_vert) cell_width -= VERT_SB_WIDTH(mw); if (cell_width <= 0) cell_width = 1; /* * Adjust for shadow thickness. */ HSBwidth = cell_width + mw->manager.shadow_thickness * (mw->matrix.fixed_columns || mw->matrix.trailing_fixed_columns ? (mw->matrix.fixed_columns && mw->matrix.trailing_fixed_columns ? 0 : 1) : 2); /* * If the window is not full height, then place the HSB at the edge * of the window. Is the window is larger than full height, then * place the HSB immediately below the cell region. */ XtConfigureWidget( HorizScrollChild(mw), HSB_X_POSITION(mw), (scrollbar_top && has_horiz) ? (Position) 0 : ((height < full_height) || mw->matrix.fill ? (Position) (mw->core.height - (HorizScrollChild(mw)->core.height + 2 * HorizScrollChild(mw)->core.border_width)) : (Position) (full_height + mw->matrix.space)), HSBwidth, HorizScrollChild(mw)->core.height, HorizScrollChild(mw)->core.border_width); /* * If the cells are scrolled off to the left, then drag them * back onto the screen. */ if (cell_width > horiz_visible) { if ((HORIZ_ORIGIN(mw) -= (cell_width - horiz_visible)) < 0) { HORIZ_ORIGIN(mw) = 0; mw->matrix.left_column = 0; } if (XtIsManaged(TextChild(mw))) XtMoveWidget(TextChild(mw), TextChild(mw)->core.x + (cell_width - horiz_visible), TextChild(mw)->core.y); } /* * Setup the HSB to reflect our new size. */ XtVaSetValues(HorizScrollChild(mw), XmNpageIncrement, cell_width, XmNsliderSize, cell_width, XmNvalue, HORIZ_ORIGIN(mw), NULL); } /* * We were resized larger than the our max width. Drag the cells back * onto the screen if they were scrolled off to the left. */ else { if (XtIsManaged(TextChild(mw))) XtMoveWidget(TextChild(mw), TextChild(mw)->core.x + HORIZ_ORIGIN(mw), TextChild(mw)->core.y); cell_width = NON_FIXED_TOTAL_WIDTH(mw); if (cell_width <= 0) cell_width = 1; HORIZ_ORIGIN(mw) = 0; mw->matrix.left_column = 0; if (has_horiz) { XtConfigureWidget( HorizScrollChild(mw), HSB_X_POSITION(mw), (scrollbar_top && has_horiz) ? (Position) 0 : ((height < full_height) || mw->matrix.fill ? (Position) (mw->core.height - (HorizScrollChild(mw)->core.height + 2 * HorizScrollChild(mw)->core.border_width)) : (Position) (full_height + mw->matrix.space)), HSB_WIDTH(mw), HorizScrollChild(mw)->core.height, HorizScrollChild(mw)->core.border_width); XtVaSetValues(HorizScrollChild(mw), XmNpageIncrement, cell_width, XmNsliderSize, cell_width, XmNvalue, HORIZ_ORIGIN(mw), NULL); } } /* * We were resized smaller than our max height. */ if (height < full_height) { int VSBheight; /* * Calculate the height of the non-fixed visible cells. */ cell_height = mw->core.height - (FIXED_ROW_HEIGHT(mw) + TRAILING_FIXED_ROW_HEIGHT(mw) + COLUMN_LABEL_HEIGHT(mw) + 2 * mw->manager.shadow_thickness); /* * Subtract the HSB if we have one. */ if (has_horiz) cell_height -= HORIZ_SB_HEIGHT(mw); if (cell_height <= 0) cell_height = 1; /* * Adjust for shadow thickness. */ if (TRAILING_FIXED_ROW_HEIGHT(mw) > 0) VSBheight = (cell_height / ROW_HEIGHT(mw)) * ROW_HEIGHT(mw) + (mw->matrix.fixed_rows ? 0 : mw->manager.shadow_thickness); else VSBheight = cell_height + ((mw->matrix.fixed_rows ? 1 : 2) * mw->manager.shadow_thickness); /* * If the window is not full width, then place the VSB at the edge * of the window. Is the window is larger than full width, then * place the VSB immediately to the right of the cell region. */ XtConfigureWidget( VertScrollChild(mw), (scrollbar_left && has_vert) ? (Position) 0 : ((width < full_width) || mw->matrix.fill ? (Position) (mw->core.width - (VertScrollChild(mw)->core.width + 2 * VertScrollChild(mw)->core.border_width)) : (Position) full_width + mw->matrix.space), VSB_Y_POSITION(mw), VertScrollChild(mw)->core.width, VSBheight > 0 ? VSBheight : 1, VertScrollChild(mw)->core.border_width); /* * If the cells are scrolled off the top, then drag them * back onto the screen. */ if (cell_height > vert_visible) { int rows = (cell_height - vert_visible) / ROW_HEIGHT(mw); VERT_ORIGIN(mw) -= rows; if (XtIsManaged(TextChild(mw))) XtMoveWidget(TextChild(mw), TextChild(mw)->core.x, TextChild(mw)->core.y + rows * ROW_HEIGHT(mw)); } /* * Setup the VSB to reflect our new size. */ rows_visible = cell_height / ROW_HEIGHT(mw); XtVaSetValues(VertScrollChild(mw), XmNpageIncrement, rows_visible <= 0 ? 1 : rows_visible, XmNsliderSize, rows_visible <= 0 ? 1 : rows_visible, XmNvalue, VERT_ORIGIN(mw), NULL); } /* * We were resized larger than the our max height. Drag the cells back * onto the screen if they were scrolled off the top. */ else { if (XtIsManaged(TextChild(mw))) XtMoveWidget(TextChild(mw), TextChild(mw)->core.x, TextChild(mw)->core.y + VERT_ORIGIN(mw) * ROW_HEIGHT(mw)); cell_height = CELL_TOTAL_HEIGHT(mw); if (cell_height <= 0) cell_height = 1; rows_visible = mw->matrix.rows - mw->matrix.fixed_rows - mw->matrix.trailing_fixed_rows; VERT_ORIGIN(mw) = 0; if (has_vert) { XtConfigureWidget( VertScrollChild(mw), (scrollbar_left && has_vert) ? (Position) 0 : ((width < full_width) || mw->matrix.fill ? (Position)(mw->core.width - (VertScrollChild(mw)->core.width + 2 * VertScrollChild(mw)->core.border_width)) : (Position)full_width + mw->matrix.space), VSB_Y_POSITION(mw), VertScrollChild(mw)->core.width, VSB_HEIGHT(mw), VertScrollChild(mw)->core.border_width); XtVaSetValues( VertScrollChild(mw), XmNpageIncrement, rows_visible <= 0 ? 1 : rows_visible, XmNsliderSize, rows_visible <= 0 ? 1 : rows_visible, XmNvalue, VERT_ORIGIN(mw), NULL); } } /* * Map/unmap scrollbars based on flags set above */ if (has_horiz && !HorizScrollChild(mw)->core.managed) { XtManageChild(HorizScrollChild(mw)); /* * Generate an expose over the horizontal scrollbar to ensure it gets * drawn properly */ if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_POSITION(mw), mw->core.width, scrollbar_top ? HORIZ_SB_HEIGHT(mw) : mw->core.height - HORIZ_SB_POSITION(mw), True); /* * Take into account the little bit at the bottom of the screen * if the scrollbar is in the top location. */ if (scrollbar_top && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, TRAILING_FIXED_ROW_LABEL_OFFSET(mw), mw->core.width, mw->core.height - TRAILING_FIXED_ROW_LABEL_OFFSET(mw), True); } else if (!has_horiz && HorizScrollChild(mw)->core.managed) { /* * Generate an expose over the horizontal scrollbar to ensure it gets * drawn properly */ XtUnmanageChild(HorizScrollChild(mw)); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_POSITION(mw), mw->core.width, scrollbar_top ? HORIZ_SB_HEIGHT(mw) : mw->core.height - HORIZ_SB_POSITION(mw), True); /* * Take into account the little bit at the bottom of the screen * if the scrollbar is in the top location. */ if (scrollbar_top && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, TRAILING_FIXED_ROW_LABEL_OFFSET(mw), mw->core.width, mw->core.height - TRAILING_FIXED_ROW_LABEL_OFFSET(mw), True); } if (has_vert && !VertScrollChild(mw)->core.managed) { /* * Generate an expose over the vertical scrollbar region to ensure * it gets drawn properly */ XtManageChild(VertScrollChild(mw)); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_POSITION(mw), 0, VERT_SB_POSITION(mw) + VERT_SB_WIDTH(mw), mw->core.height, True); /* * This one's a bit trickier! If the scrollbar appears on the * left hand side then it's possible to have some area *under* the * matrix that isn't redrawn properly. This will be most * noticeable at the top and bottom of the matrix. As the matrix * will move to the right by it's width, this width is the area * that needs to be redrawn. */ if (scrollbar_left && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), FIXED_COLUMN_LABEL_OFFSET(mw) - TRAILING_FIXED_COLUMN_WIDTH(mw), 0, TRAILING_FIXED_COLUMN_WIDTH(mw) + VERT_SB_WIDTH(mw), mw->core.height, True); /* * Also clear the area below the matrix as it can get a little * confused too */ if(XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, TRAILING_FIXED_ROW_LABEL_OFFSET(mw), mw->core.width, mw->core.height - TRAILING_FIXED_ROW_LABEL_OFFSET(mw), True); } else if (!has_vert && VertScrollChild(mw)->core.managed) { /* * Generate an expose over the vertical scrollbar region to ensure * it gets drawn properly */ XtUnmanageChild(VertScrollChild(mw)); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_POSITION(mw), 0, VERT_SB_POSITION(mw) + VERT_SB_WIDTH(mw), mw->core.height, True); /* * Similar to the case above but we need to clear the are to the * right of the matrix and only the width of the scrollbar itself */ if (scrollbar_left && XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), TRAILING_FIXED_COLUMN_LABEL_OFFSET(mw) + TRAILING_FIXED_COLUMN_WIDTH(mw), 0, VERT_SB_WIDTH(mw) + mw->manager.shadow_thickness, mw->core.height, True); /* * And also clear the area below the matrix as it can get a little * confused too */ if (XtIsRealized((Widget)mw)) XClearArea(XtDisplay(mw), XtWindow(mw), 0, TRAILING_FIXED_ROW_LABEL_OFFSET(mw), mw->core.width, mw->core.height - TRAILING_FIXED_ROW_LABEL_OFFSET(mw), True); } /* * Now that we have cell_width & cell_height, * make the clip widget this size. Height is truncated to the * nearest row. */ XtConfigureWidget(ClipChild(mw), FIXED_COLUMN_LABEL_OFFSET(mw), FIXED_ROW_LABEL_OFFSET(mw), cell_width, cell_height, 0); /* Resize all the other clips */ if (mw->matrix.fixed_columns <= 0) { if (XtIsManaged(LeftClip(mw))) XtUnmanageChild(LeftClip(mw)); } else { XtConfigureWidget(LeftClip(mw), COLUMN_LABEL_OFFSET(mw), FIXED_ROW_LABEL_OFFSET(mw), FIXED_COLUMN_WIDTH(mw), cell_height, 0); if (!XtIsManaged(LeftClip(mw))) XtManageChild(LeftClip(mw)); } if (mw->matrix.trailing_fixed_columns <= 0) { if (XtIsManaged(RightClip(mw))) XtUnmanageChild(RightClip(mw)); } else { XtConfigureWidget(RightClip(mw), cell_width + FIXED_COLUMN_LABEL_OFFSET(mw), FIXED_ROW_LABEL_OFFSET(mw), TRAILING_FIXED_COLUMN_WIDTH(mw), cell_height, 0); if (!XtIsManaged(RightClip(mw))) XtManageChild(RightClip(mw)); } if (mw->matrix.fixed_rows <= 0) { if (XtIsManaged(TopClip(mw))) XtUnmanageChild(TopClip(mw)); } else { XtConfigureWidget(TopClip(mw), FIXED_COLUMN_LABEL_OFFSET(mw), ROW_LABEL_OFFSET(mw), cell_width, FIXED_ROW_HEIGHT(mw), 0); if (!XtIsManaged(TopClip(mw))) XtManageChild(TopClip(mw)); } if (mw->matrix.trailing_fixed_rows <= 0) { if (XtIsManaged(BottomClip(mw))) XtUnmanageChild(BottomClip(mw)); } else { XtConfigureWidget(BottomClip(mw), FIXED_COLUMN_LABEL_OFFSET(mw), TRAILING_FIXED_ROW_LABEL_OFFSET(mw), cell_width, TRAILING_FIXED_ROW_HEIGHT(mw), 0); if (!XtIsManaged(BottomClip(mw))) XtManageChild(BottomClip(mw)); } /* * The text field needs to be moved manually as we don't have * the convenience of a clip widget to do it for us. */ if (mw->matrix.current_column >= TRAILING_HORIZ_ORIGIN(mw) && mw->matrix.current_parent == (Widget)mw && XtIsManaged(TextChild(mw))) XtMoveWidget(TextChild(mw), RightClip(mw)->core.x + mw->matrix.cell_shadow_thickness, TextChild(mw)->core.y); /* * Save the non-truncated height. We need this so we can draw * the shadow correctly. */ mw->matrix.cell_visible_height = cell_height; /* * Set the clip_mask in our clipping GCs. This function relies on * the Clip widget being the correct size (above). */ if (XtIsRealized((Widget)mw)) xbaeSetClipMask(mw, CLIP_NONE); if (mw->matrix.resize_callback != NULL) { XbaeMatrixResizeCallbackStruct call_data; call_data.reason = XbaeResizeReason; call_data.event = (XEvent *)NULL; call_data.row = mw->matrix.rows; call_data.column = mw->matrix.columns; call_data.width = mw->core.width; call_data.height = mw->core.height; XtCallCallbackList ((Widget)mw, mw->matrix.resize_callback, (XtPointer) &call_data); } } /* * This is the modifyVerifyCallback we added to textField. We need to * call Matrix's modifyVerifyCallback list with the textField info * and the row/col that is changing. */ /* ARGSUSED */ void xbaeModifyVerifyCB(w, client, call) Widget w; XtPointer client; XtPointer call; { XbaeMatrixWidget mw = (XbaeMatrixWidget)client; XmTextVerifyCallbackStruct *verify = (XmTextVerifyCallbackStruct *)call; XbaeMatrixModifyVerifyCallbackStruct call_data; if (!mw->matrix.modify_verify_callback) return; call_data.reason = XbaeModifyVerifyReason; call_data.row = mw->matrix.current_row; call_data.column = mw->matrix.current_column; call_data.event = (XEvent *)NULL; call_data.verify = verify; call_data.prev_text = ((XmTextRec*)w)->text.value; XtCallCallbackList((Widget) mw, mw->matrix.modify_verify_callback, (XtPointer) & call_data); } /* * Matrix edit_cell method */ void xbaeEditCell(mw, event, row, column, params, nparams) XbaeMatrixWidget mw; XEvent *event; int row; int column; String *params; Cardinal nparams; { XbaeMatrixEnterCellCallbackStruct call_data; Window newWin, oldWin; int x, y; Pixel fgcolor, bgcolor; Boolean alt; String string; Widget oldWidget, newWidget; #if CELL_WIDGETS Widget userWidget; #endif if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { /* * If we have zero rows or columns, there are no cells * available on which to place the text field so just return */ if (mw->matrix.rows == 0 || mw->matrix.columns == 0) return; XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "editCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for EditCell.", NULL, 0); return; } /* * Attempt to commit the edit in the current cell. Return if we fail. */ if (!DoCommitEdit(mw, event)) return; /* * Scroll the cell onto the screen */ xbaeMakeCellVisible(mw, row, column); /* * Fixed cells may not be editable. */ if (IS_FIXED(mw, row, column) && !mw->matrix.traverse_fixed) return; /* get the window of the new cell position */ newWin = xbaeGetCellWindow(mw, &newWidget, row, column); /* * If we have an enterCellCallback, call it to see if the cell is * editable. */ call_data.map = True; call_data.doit = True; call_data.position = -1; call_data.select_text = False; if (mw->matrix.enter_cell_callback) { call_data.reason = XbaeEnterCellReason; call_data.event = event; call_data.row = row; call_data.column = column; call_data.map = True; call_data.num_params = nparams; call_data.params = params; XtCallCallbackList((Widget) mw, mw->matrix.enter_cell_callback, (XtPointer) & call_data); } /* Get the window of the current cell so we can see if we need to move. */ oldWin = xbaeGetCellWindow(mw, &oldWidget, mw->matrix.current_row, mw->matrix.current_column); mw->matrix.current_row = row; mw->matrix.current_column = column; /* * Unmap the textField to avoid flashing. */ if (XtIsManaged(TextChild(mw)) && XtIsRealized(TextChild(mw))) XtUnmapWidget(TextChild(mw)); /* * Convert the row/column to an xy position and move the textField * to this position. (the xy position will be relative to the Clip * widget if a non-fixed cells is being edited, relative to Matrix if * a totally fixed cell is being edited (one of the corners), or one of * the other clips otherwise. */ xbaeRowColToXY(mw, row, column, &x, &y); #if CELL_WIDGETS userWidget = mw->matrix.cell_widgets[row][column]; if (!userWidget) { #endif /* * We actually don't check for traverse_fixed here even though * it looks like it might be needed. The reason is that we may * need to reparent back onto the clip in case we were on the * fixed area and then traverse_fixed has been set to False * via SetValues. Doing this on the next traversal is probably * preferable to magically warping the textField off the * matrix on to the clip when traverseFixedCells changes. It * also allows the user to finish editing the existing cell, * but won't allow continued traversal on the fixed area. -CG */ /* * The old check (oldWin != newWin) as criteria to reparent * wasn't quite correct in the case of editable fixed columns; * In this case the first time the cell was edited 'oldWin' * and 'newWin' where both the left clip widget (which was correct) * but the 'current_parent' was still the initial parent set in the * 'Reslize' function (I think the clip widget). * The result was that the text field was moved relative to wrong * window and therefore appearing at a complete different position; * I check now as additional criteria if the 'current_parent' widget * is the same as 'newWidget'. * It should fix the my problem without breaking anything else. * The check (oldWin && newWin) for apps which call on startup * editCell() without a realized widget tree. Without this check * X errors would be the result. * * donato petrino, 1997/11/ */ if ((oldWin != newWin || mw->matrix.current_parent != newWidget) && (oldWin && newWin)) { XReparentWindow(XtDisplay(mw), XtWindow(TextChild(mw)), newWin, x + mw->matrix.cell_shadow_thickness, y + mw->matrix.cell_shadow_thickness); mw->matrix.current_parent = newWidget; /* * Widget still needs moving, because all we have done * above is redraw it's window. The widget itself doesn't * know where it is and must be repositioned relative to * it's (possibly new) window. */ } XtMoveWidget(TextChild(mw), x + mw->matrix.cell_shadow_thickness, y + mw->matrix.cell_shadow_thickness); #if CELL_WIDGETS } else { /* * A user defined widget does not take into account the * cell_highlight_thickness, so we must do it! */ XtMoveWidget(userWidget, x + mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness, y + mw->matrix.cell_shadow_thickness + mw->matrix.cell_highlight_thickness); /* Force editing to be disabled */ call_data.doit = False; } #endif /* * Compute the foreground and background of the text widget */ alt = mw->matrix.alt_row_count ? (row / mw->matrix.alt_row_count) % 2 : False; if (mw->matrix.colors) fgcolor = mw->matrix.colors[row][column]; else fgcolor = mw->manager.foreground; if (mw->matrix.text_background != mw->core.background_pixel) bgcolor = mw->matrix.text_background; else if (mw->matrix.cell_background && mw->matrix.cell_background[row][column] != mw->core.background_pixel) bgcolor = mw->matrix.cell_background[row][column]; else { if (alt) bgcolor = mw->matrix.odd_row_background; else bgcolor = mw->matrix.even_row_background; } /* * If we're doing a drawCell, go ask the app what to put there. */ if (mw->matrix.draw_cell_callback) { Pixmap pixmap; Pixmap mask; int width, height, depth; Pixel orig_bg, orig_fg; orig_bg = bgcolor; orig_fg = fgcolor; if (xbaeGetDrawCellValue( mw, row, column, &string, &pixmap, &mask, &width, &height, &bgcolor, &fgcolor, &depth) == XbaePixmap) { /* * If we're showing a pixmap, we don't want the TextField. */ return; } /* * If we reverse selected then we would have reversed things we * shouldn't have. We can detect this by checking bgcolor against * orig_fg and fgcolor against orig_bg and setting the colors back * to their non-selected values (as with an ordinary selected when * it is being edited). -cg 23/7/99 */ if (mw->matrix.reverse_select && mw->matrix.selected_cells && mw->matrix.selected_cells[row][column]) { int new_fg = fgcolor; int new_bg = bgcolor; /* callback changed bg */ if (orig_fg != fgcolor) new_bg = fgcolor; else /* reset it */ new_bg = orig_bg; /* callback changed fg */ if (orig_bg != bgcolor) new_fg = bgcolor; else /* reset it */ new_fg = orig_fg; bgcolor = new_bg; fgcolor = new_fg; } } else string = mw->matrix.cells ? mw->matrix.cells[row][column] : ""; /* * Setup the textField for the new cell. If the modifyVerify CB * rejects the new value, then it is the applications fault for * loading the cell with a bad value to begin with. */ #if CELL_WIDGETS if (!mw->matrix.cell_widgets[row][column]) { #endif /* * Remove the modify verify callback when the text field is set. * It thinks we are modifying the value but Motif thinks that * it knows best and we know better! */ XtRemoveCallback(TextChild(mw), XmNmodifyVerifyCallback, xbaeModifyVerifyCB, (XtPointer)mw); XtVaSetValues(TextChild(mw), XmNwidth, COLUMN_WIDTH(mw, column) - mw->matrix.cell_shadow_thickness * 2, XmNheight, (ROW_HEIGHT(mw) - mw->matrix.cell_shadow_thickness * 2), XmNmaxLength, (mw->matrix.column_max_lengths ? mw->matrix.column_max_lengths[column] : (int) mw->matrix.column_widths[column]), XmNeditable, call_data.doit, XmNcursorPositionVisible, call_data.doit, XmNbackground, bgcolor, XmNforeground, fgcolor, NULL); XtVaSetValues(TextChild(mw), XmNvalue, string, NULL); XtAddCallback(TextChild(mw), XmNmodifyVerifyCallback, xbaeModifyVerifyCB, (XtPointer)mw); #if CELL_WIDGETS } else XtVaSetValues(userWidget, XmNwidth, COLUMN_WIDTH(mw, column) - mw->matrix.cell_shadow_thickness * 2, XmNheight, ROW_HEIGHT(mw) - mw->matrix.cell_shadow_thickness * 2, XmNbackground, bgcolor, XmNforeground, fgcolor, NULL); #endif /* * No need to do anything else if the text field is not going to * be mapped */ if (!call_data.map) return; /* * Manage and map the textField */ #if CELL_WIDGETS if (userWidget) { XtUnmanageChild(TextChild(mw)); XtManageChild(userWidget); } else #endif XtManageChild(TextChild(mw)); if (XtIsRealized(TextChild(mw)) #if CELL_WIDGETS && !userWidget #endif ) XtMapWidget(TextChild(mw)); #if CELL_WIDGETS else if (XtIsRealized(userWidget) && userWidget) XtMapWidget(userWidget); if (call_data.doit && !userWidget) #endif /* * Set the insert position of the cursor */ if (call_data.doit) { int position = call_data.position; int length = strlen(string); if (event && (event->type == ButtonPress || event->type == ButtonRelease ) && position < 0 && mw->matrix.calc_cursor_position) { /* * The location of the pointer click needs to be calculated * so the cursor can be positioned. If position is >= 0, * it has been set in the enterCellCallback and must * be honoured elsewhere. */ CellType cell; int r, c; /* * The event must have occurred in a legal position * otherwise control wouldn't have made it here */ (void)xbaeEventToXY(mw, event, &x, &y, &cell); (void)xbaeXYToRowCol(mw, &x, &y, &r, &c, cell); x -= mw->matrix.cell_shadow_thickness; y = ROW_HEIGHT(mw) / 2; /* XXX should be real y! */ position = XmTextXYToPos(TextChild(mw), x, y); } if (call_data.select_text) XmTextSetSelection(TextChild(mw), 0, length, CurrentTime); if (position < 0) XmTextSetInsertionPosition(TextChild(mw), length); else XmTextSetInsertionPosition( TextChild(mw), position > length ? length : position); } } /* * Matrix select_cell method */ void xbaeSelectCell(mw, row, column) XbaeMatrixWidget mw; int row, column; { Boolean visible; if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "selectCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for SelectCell.", NULL, 0); return; } /* If no cells have been selected yet, allocate memory here */ if (!mw->matrix.selected_cells) xbaeCopySelectedCells(mw); /* * Scroll the cell onto the screen */ visible = xbaeIsCellVisible(mw, row, column); if (mw->matrix.scroll_select && !visible) xbaeMakeCellVisible(mw, row, column); /* * If the cell is not already selected, select it and redraw it */ if (!mw->matrix.selected_cells[row][column]) { mw->matrix.selected_cells[row][column] = True; mw->matrix.num_selected_cells++; if (mw->matrix.scroll_select || visible) { if (row >= TRAILING_VERT_ORIGIN(mw)) xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); xbaeDrawCell(mw, row, column); if (row >= TRAILING_VERT_ORIGIN(mw)) xbaeSetClipMask(mw, CLIP_NONE); } } } /* * Matrix select_row method */ void xbaeSelectRow(mw, row) XbaeMatrixWidget mw; int row; { int j, lc, rc; Boolean fixed = False, trailing_fixed = False; Boolean visible; unsigned int clip_reason = CLIP_NONE, save_clip = CLIP_NONE; if (row >= mw->matrix.rows || row < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "selectRow", "badIndex", "XbaeMatrix", "XbaeMatrix: Row out of bounds for SelectRow.", NULL, 0); return; } /* If no cells have been selected yet, allocate memory here */ if (!mw->matrix.selected_cells) xbaeCopySelectedCells(mw); visible = xbaeIsRowVisible(mw, row); /* * Scroll the row onto the screen */ if (mw->matrix.scroll_select) xbaeMakeRowVisible(mw, row); /* * If the row is not visible, there's no need to redraw - but, we do * need to update the selected cell resource */ if(!mw->matrix.scroll_select && !visible) { for (j = 0; j < mw->matrix.columns; j++) if (!mw->matrix.selected_cells[row][j]) { mw->matrix.num_selected_cells++; mw->matrix.selected_cells[row][j] = True; } return; } /* * Establish any necessary clipping for redrawing the cells */ save_clip = mw->matrix.current_clip; if (row >= TRAILING_VERT_ORIGIN(mw)) clip_reason = CLIP_TRAILING_FIXED_ROWS; if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); /* * For each cell in the row, if the cell is not already selected, * select it and redraw it */ xbaeGetVisibleColumns(mw, &lc, &rc); for (j = 0; j < mw->matrix.columns; j++) { if (!mw->matrix.selected_cells[row][j]) { mw->matrix.selected_cells[row][j] = True; mw->matrix.num_selected_cells++; if ((j >= lc && j <= rc) || (j < (int)mw->matrix.fixed_columns) || (j >= TRAILING_HORIZ_ORIGIN(mw))) { if ((! fixed) && (j < (int)mw->matrix.fixed_columns)) { fixed = True; xbaeSetClipMask(mw, clip_reason | CLIP_FIXED_COLUMNS); } else if (fixed && (j >= (int)mw->matrix.fixed_columns) && (j < TRAILING_HORIZ_ORIGIN(mw))) { fixed = False; xbaeSetClipMask(mw, clip_reason); } else if ((! trailing_fixed) && (j >= TRAILING_HORIZ_ORIGIN(mw))) { trailing_fixed = True; xbaeSetClipMask(mw, clip_reason | CLIP_TRAILING_FIXED_COLUMNS); } xbaeClearCell(mw, row, j); xbaeDrawCell(mw, row, j); } } } if (save_clip != mw->matrix.current_clip) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix select_column method */ void xbaeSelectColumn(mw, column) XbaeMatrixWidget mw; int column; { int i, tr, br; Boolean once = False; unsigned int clip_reason = CLIP_NONE; if (column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "selectColumn", "badIndex", "XbaeMatrix", "XbaeMatrix: Column out of bounds for SelectColumn.", NULL, 0); return; } /* If no cells have been selected yet, allocate memory here */ if (!mw->matrix.selected_cells) xbaeCopySelectedCells(mw); /* * Scroll the column onto the screen */ if (mw->matrix.scroll_select) xbaeMakeColumnVisible(mw, column); /* * No need to redraw unless the column is visible */ if (!mw->matrix.scroll_select && !xbaeIsColumnVisible(mw, column)) { for (i = 0; i < mw->matrix.rows; i++) if (!mw->matrix.selected_cells[i][column]) { mw->matrix.num_selected_cells++; mw->matrix.selected_cells[i][column] = True; } return; } /* * Establish any necessary clipping for redrawing the cells */ if (column < (int)mw->matrix.fixed_columns) clip_reason = CLIP_FIXED_COLUMNS; else if (column >= TRAILING_HORIZ_ORIGIN(mw)) clip_reason = CLIP_TRAILING_FIXED_COLUMNS; if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, clip_reason | CLIP_VISIBLE_HEIGHT); /* * For each cell in the column, if the cell is not already selected, * select it and redraw it */ xbaeGetVisibleRows(mw, &tr, &br); for (i = 0; i < mw->matrix.rows; i++) { if (!mw->matrix.selected_cells[i][column]) { mw->matrix.selected_cells[i][column] = True; mw->matrix.num_selected_cells++; if ((i >= tr && i <= br) || (i < (int)mw->matrix.fixed_rows) || (i >= TRAILING_VERT_ORIGIN(mw))) { if ((! once) && (i >= TRAILING_VERT_ORIGIN(mw))) { once = True; xbaeSetClipMask(mw, clip_reason | CLIP_TRAILING_FIXED_ROWS); } xbaeClearCell(mw, i, column); xbaeDrawCell(mw, i, column); } } } if (once || (CLIP_NONE != clip_reason)) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix deselect_all method */ void xbaeDeselectAll(mw) XbaeMatrixWidget mw; { int i, j; int tr, br, lc, rc; register Boolean do_row, once = False; mw->matrix.num_selected_cells = 0; /* If selected_cells is NULL, no cells have been selected yet */ if (!mw->matrix.selected_cells) return; xbaeGetVisibleCells(mw, &tr, &br, &lc, &rc); for (i = 0; i < mw->matrix.rows; i++) { do_row = False; if ((! once) && (i >= TRAILING_VERT_ORIGIN(mw))) { once = True; xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); } for (j = 0; j < mw->matrix.columns; j++) { if (mw->matrix.selected_cells[i][j]) { mw->matrix.selected_cells[i][j] = False; if (((i < (int)mw->matrix.fixed_rows) || (i >= TRAILING_VERT_ORIGIN(mw)) || (i >= tr && i <= br)) && ((j < (int)mw->matrix.fixed_columns) || (j >= TRAILING_HORIZ_ORIGIN(mw)) || (j >= lc && j <= rc))) { xbaeClearCell(mw, i, j); xbaeDrawCell(mw, i, j); do_row = True; } } } } if (once) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix select_all method */ void xbaeSelectAll(mw) XbaeMatrixWidget mw; { int i, j; int tr, br, lc, rc; register Boolean do_row, once = False; xbaeGetVisibleCells(mw, &tr, &br, &lc, &rc); if (!mw->matrix.selected_cells) xbaeCopySelectedCells(mw); for (i = 0; i < mw->matrix.rows; i++) { do_row = False; if ((! once) && (i >= TRAILING_VERT_ORIGIN(mw))) { once = True; xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); } for (j = 0; j < mw->matrix.columns; j++) { if (!mw->matrix.selected_cells[i][j]) { mw->matrix.num_selected_cells++; mw->matrix.selected_cells[i][j] = True; if (((i < (int)mw->matrix.fixed_rows) || (i >= TRAILING_VERT_ORIGIN(mw)) || (i >= tr && i <= br)) && ((j < (int)mw->matrix.fixed_columns) || (j >= TRAILING_HORIZ_ORIGIN(mw)) || (j >= lc && j <= rc))) { xbaeClearCell(mw, i, j); xbaeDrawCell(mw, i, j); do_row = True; } } } } if (once) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix deselect_cell method */ void xbaeDeselectCell(mw, row, column) XbaeMatrixWidget mw; int row; int column; { if (row >= mw->matrix.rows || row < 0 || column > mw->matrix.columns - 1 || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deselectCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for DeselectCell.", NULL, 0); return; } if (!mw->matrix.selected_cells) return; if (mw->matrix.selected_cells[row][column]) { mw->matrix.num_selected_cells--; mw->matrix.selected_cells[row][column] = False; if (xbaeIsCellVisible(mw, row, column)) { if (row >= TRAILING_VERT_ORIGIN(mw)) xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); xbaeClearCell(mw, row, column); xbaeDrawCell(mw, row, column); if (row >= TRAILING_VERT_ORIGIN(mw)) xbaeSetClipMask(mw, CLIP_NONE); } } } /* * Matrix deselect_row method */ void xbaeDeselectRow(mw, row) XbaeMatrixWidget mw; int row; { int j, lc, rc; Boolean fixed = False, trailing_fixed = False; unsigned int clip_reason = CLIP_NONE, save_clip; if (row >= mw->matrix.rows || row < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deselectRow", "badIndex", "XbaeMatrix", "XbaeMatrix: Row parameter out of bounds for DeselectRow.", NULL, 0); return; } if (!mw->matrix.selected_cells) return; /* * Establish any necessary clipping for redrawing the cells */ save_clip = mw->matrix.current_clip; if (row >= TRAILING_VERT_ORIGIN(mw)) clip_reason = CLIP_TRAILING_FIXED_ROWS; if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, CLIP_TRAILING_FIXED_ROWS); /* * For each cell in the row, if the cell is selected, * deselect it and redraw it */ xbaeGetVisibleColumns(mw, &lc, &rc); for (j = 0; j < mw->matrix.columns; j++) { if (mw->matrix.selected_cells[row][j]) { mw->matrix.num_selected_cells--; mw->matrix.selected_cells[row][j] = False; if ((j >= lc && j <= rc) || (j < (int)mw->matrix.fixed_columns) || (j >= TRAILING_HORIZ_ORIGIN(mw))) { if ((! fixed) && (j < (int)mw->matrix.fixed_columns)) { fixed = True; xbaeSetClipMask(mw, clip_reason | CLIP_FIXED_COLUMNS); } else if (fixed && (j >= (int)mw->matrix.fixed_columns) && (j < TRAILING_HORIZ_ORIGIN(mw))) { fixed = False; xbaeSetClipMask(mw, clip_reason); } else if ((! trailing_fixed) && (j >= TRAILING_HORIZ_ORIGIN(mw))) { trailing_fixed = True; xbaeSetClipMask(mw, clip_reason | CLIP_TRAILING_FIXED_COLUMNS); } xbaeClearCell(mw, row, j); xbaeDrawCell(mw, row, j); } } } if (save_clip != mw->matrix.current_clip) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix deselect_column method */ void xbaeDeselectColumn(mw, column) XbaeMatrixWidget mw; int column; { int i, tr, br; Boolean once = False; unsigned int clip_reason = CLIP_NONE; if (column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deselectColumn", "badIndex", "XbaeMatrix", "XbaeMatrix: Column parameter out of bounds for DeselectColumn.", NULL, 0); return; } if (!mw->matrix.selected_cells) return; /* * Establish any necessary clipping for redrawing the cells */ if (column < (int)mw->matrix.fixed_columns) clip_reason = CLIP_FIXED_COLUMNS; else if (column >= TRAILING_HORIZ_ORIGIN(mw)) clip_reason = CLIP_TRAILING_FIXED_COLUMNS; if (CLIP_NONE != clip_reason) xbaeSetClipMask(mw, clip_reason | CLIP_VISIBLE_HEIGHT); /* * For each cell in the column, if the cell is selected, * deselect it and redraw it */ xbaeGetVisibleRows(mw, &tr, &br); for (i = 0; i < mw->matrix.rows; i++) { if (mw->matrix.selected_cells[i][column]) { mw->matrix.num_selected_cells--; mw->matrix.selected_cells[i][column] = False; if ((i >= tr && i <= br) || (i < (int)mw->matrix.fixed_rows) || (i >= TRAILING_VERT_ORIGIN(mw))) { if ((! once) && (i >= TRAILING_VERT_ORIGIN(mw))) { once = True; xbaeSetClipMask(mw, clip_reason | CLIP_TRAILING_FIXED_ROWS); } xbaeClearCell(mw, i, column); xbaeDrawCell(mw, i, column); } } } if (once || (CLIP_NONE != clip_reason)) xbaeSetClipMask(mw, CLIP_NONE); } /* * Matrix get_cell method */ String xbaeGetCell(mw, row, column) XbaeMatrixWidget mw; int row, column; { String value; if (row >= mw->matrix.rows || row < 0 || column > mw->matrix.columns - 1 || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "getCell", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for GetCell.", NULL, 0); return (NULL); } if (mw->matrix.draw_cell_callback) { Pixel bgcolor, fgcolor; Pixmap pixmap, mask; int width, height, depth; if (xbaeGetDrawCellValue(mw, row, column, &value, &pixmap, &mask, &width, &height, &bgcolor, &fgcolor, &depth) == XbaePixmap) value = ""; } else if (!mw->matrix.cells) return ""; else value = mw->matrix.cells[row][column]; return value; } /* * Matrix commit_edit method */ Boolean #if NeedFunctionPrototypes xbaeCommitEdit(XbaeMatrixWidget mw, XEvent *event, Boolean unmap) #else xbaeCommitEdit(mw, event, unmap) XbaeMatrixWidget mw; XEvent *event; Boolean unmap; #endif { Boolean commit; if (!XtIsManaged(TextChild(mw))) return True; /* * Attempt to commit the edit */ commit = DoCommitEdit(mw, event); /* * If the commit succeeded and we are supposed to unmap the textField, * then hide the textField and traverse out */ if (commit && unmap) { XtUnmanageChild(TextChild(mw)); XmProcessTraversal(TextChild(mw), XmTRAVERSE_RIGHT); } return commit; } /* * Matrix cancel_edit method */ void #if NeedFunctionPrototypes xbaeCancelEdit(XbaeMatrixWidget mw, Boolean unmap) #else xbaeCancelEdit(mw, unmap) XbaeMatrixWidget mw; Boolean unmap; #endif { if (!XtIsManaged(TextChild(mw))) return; /* * If unmap is set, hide the textField and traverse out. */ if (unmap) { XtUnmanageChild(TextChild(mw)); XmProcessTraversal(TextChild(mw), XmTRAVERSE_RIGHT); } /* * Don't unmap, just restore original contents */ else if (!mw->matrix.draw_cell_callback) { XtVaSetValues(TextChild(mw), XmNvalue, (mw->matrix.cells ? mw->matrix.cells[mw->matrix.current_row] [mw->matrix.current_column] : ""), NULL); } else { /* Ask the application what should be in the cell */ String string; Pixmap pixmap, mask; Pixel bg, fg; int width, height, depth; if (xbaeGetDrawCellValue(mw, mw->matrix.current_row, mw->matrix.current_column, &string, &pixmap, &mask, &width, &height, &bg, &fg, &depth) == XbaeString) XtVaSetValues(TextChild(mw), XmNvalue, string, NULL); } } /* * Matrix add_rows method */ void xbaeAddRows(mw, position, rows, labels, colors, backgrounds, num_rows) XbaeMatrixWidget mw; int position; String *rows; String *labels; Pixel *colors; Pixel *backgrounds; int num_rows; { Boolean haveVSB, haveHSB; /* * Do some error checking. */ if (num_rows <= 0) return; if (position < 0 || position > mw->matrix.rows) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "addRows", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds in AddRows.", NULL, 0); return; } haveVSB = XtIsManaged(VertScrollChild(mw)); haveHSB = XtIsManaged(HorizScrollChild(mw)); /* * If we add rows, and there is no drawCellCallback, we must allocate * the cells array to prevent potential disaster */ if (!mw->matrix.cells && !mw->matrix.draw_cell_callback) xbaeCopyCells(mw); /* * Add the new rows into the internal cells/labels data structure. */ AddRowsToTable(mw, position, rows, labels, colors, backgrounds, num_rows); /* * Reconfig the VSB maximum. */ XtVaSetValues(VertScrollChild(mw), XmNmaximum, mw->matrix.rows ? (mw->matrix.rows - (int) mw->matrix.fixed_rows - (int) mw->matrix.trailing_fixed_rows) : 1, NULL); /* * Relayout. */ xbaeResize(mw); /* * Call our cancel_edit method since the rows shifted underneath us */ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) { Rectangle rect; int x, y; /* * Determine which part of the non clip region needs to be * redisplayed */ if (position >= (int)mw->matrix.fixed_rows) { xbaeRowColToXY(mw, position, mw->matrix.fixed_columns, &x, &y); if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmTOP_RIGHT) y += HORIZ_SB_SPACE(mw); y += ROW_HEIGHT(mw) * mw->matrix.fixed_rows + COLUMN_LABEL_HEIGHT(mw); } else { if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmTOP_RIGHT) y = HORIZ_SB_SPACE(mw); else y = 0; y += ROW_HEIGHT(mw) * position + COLUMN_LABEL_HEIGHT(mw); } SETRECT(rect, 0, y, mw->core.width, mw->core.height); xbaeRedrawLabelsAndFixed(mw, &rect); XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), rect.x1, rect.y1, rect.x2 - rect.x1, rect.y2 - rect.y1, True); /* * If the scrollbars have just been mapped and there are * labels then the labels shift around. The labels need * to be redrawn */ if (!haveVSB && XtIsManaged(VertScrollChild(mw)) && mw->matrix.column_labels) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_OFFSET(mw), 0, COLUMN_LABEL_HEIGHT(mw), True); if ((!haveHSB && XtIsManaged(VertScrollChild(mw)) && mw->matrix.row_labels) || ((mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmBOTTOM_LEFT) && !haveVSB && XtIsManaged(VertScrollChild(mw)))) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_OFFSET(mw), 0, ROW_LABEL_WIDTH(mw), 0, True); } } /* * Matrix delete_rows method */ void xbaeDeleteRows(mw, position, num_rows) XbaeMatrixWidget mw; int position; int num_rows; { int max, value; Boolean haveVSB; Boolean haveHSB; /* * Do some error checking. */ if (num_rows <= 0) return; if (position < 0 || position + num_rows > mw->matrix.rows) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deleteRows", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds in DeleteRows.", NULL, 0); return; } if (num_rows > (mw->matrix.rows - (int)mw->matrix.fixed_rows - (int)mw->matrix.trailing_fixed_rows)) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deleteRows", "tooMany", "XbaeMatrix", "XbaeMatrix: Attempting to delete too many rows in DeleteRows.", NULL, 0); return; } haveVSB = XtIsManaged(VertScrollChild(mw)); haveHSB = XtIsManaged(HorizScrollChild(mw)); /* * Delete the new rows from the internal cells/labels data structure. */ DeleteRowsFromTable(mw, position, num_rows); /* * Reconfig the VSB maximum. Reset the sliderSize to avoid warnings. * Also check the scrollbar value to see that it's not out of range. */ XtVaGetValues(VertScrollChild(mw), XmNvalue, &value, NULL); max = mw->matrix.rows ? (mw->matrix.rows - (int) mw->matrix.fixed_rows - (int) mw->matrix.trailing_fixed_rows) : 1; XtVaSetValues(VertScrollChild(mw), XmNvalue, (value >= max) ? max - 1 : value, XmNmaximum, mw->matrix.rows - (int) mw->matrix.fixed_rows - (int) mw->matrix.trailing_fixed_rows ? (mw->matrix.rows - (int) mw->matrix.fixed_rows - (int) mw->matrix.trailing_fixed_rows) : 1, XmNsliderSize, 1, NULL); /* * Relayout. */ xbaeResize(mw); /* * Call our cancel_edit method since the rows shifted underneath us */ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) { Rectangle rect; int y; /* * Determine which part of the non clip region needs to be * redisplayed */ #if 0 dest_y = (position - mw->matrix.fixed_rows) * ROW_HEIGHT(mw); src_y = dest_y + num_rows * ROW_HEIGHT(mw); if (XtIsManaged(LeftClip(mw))) { if (src_y < LeftClip(mw)->core.height) { /* Copy what we can up to replace the deleted rows */ XCopyArea(XtDisplay(mw), XtWindow(LeftClip(mw)), XtWindow(LeftClip(mw)), mw->matrix.draw_gc, 0, src_y, LeftClip(mw)->core.width, LeftClip(mw)->core.height - src_y, 0, dest_y); /* And clear the new area that needs to be redrawn */ XClearArea(XtDisplay(mw), XtWindow(LeftClip(mw)), 0, LeftClip(mw)->core.height - src_y, LeftClip(mw)->core.width, LeftClip(mw)->core.height - src_y, True); } } if (XtIsManaged(RightClip(mw))) { if (src_y < RightClip(mw)->core.height) { XCopyArea(XtDisplay(mw), XtWindow(RightClip(mw)), XtWindow(RightClip(mw)), mw->matrix.draw_gc, 0, src_y, RightClip(mw)->core.width, RightClip(mw)->core.height - src_y, 0, dest_y); XClearArea(XtDisplay(mw), XtWindow(RightClip(mw)), 0, RightClip(mw)->core.height - src_y, RightClip(mw)->core.width, RightClip(mw)->core.height - src_y, True); } } #endif y = ROW_LABEL_OFFSET(mw) + position * ROW_HEIGHT(mw); SETRECT(rect, 0, y, mw->core.width, mw->core.height - y); /* xxx could this use an XCopyArea() instead */ XClearArea(XtDisplay(mw), XtWindow(mw), 0, y, mw->core.width, mw->core.height - y, True); xbaeRedrawLabelsAndFixed(mw, &rect); y = (position - mw->matrix.fixed_rows) * ROW_HEIGHT(mw); XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), 0, y, rect.x2, mw->core.height - y, True); /* * If the scrollbars have just been unmapped and there are * labels then the labels shift around. The labels need * to be redrawn */ if (haveVSB && !XtIsManaged(VertScrollChild(mw)) && mw->matrix.column_labels) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_OFFSET(mw), 0, COLUMN_LABEL_HEIGHT(mw), True); if (haveHSB && !XtIsManaged(VertScrollChild(mw)) && mw->matrix.row_labels) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_OFFSET(mw), 0, ROW_LABEL_WIDTH(mw), 0, True); #if 0 /* * If we are deleting rows and there are different cell backgrounds * or foregrounds and the deleted row was on the visible clip, then * the colours can get confused. */ if (mw->matrix.colors || mw->matrix.even_row_background != mw->core.background_pixel || mw->matrix.odd_row_background != mw->core.background_pixel) XbaeClipRedraw(ClipChild(mw)); #endif } } /* * Matrix add_columns method. */ void xbaeAddColumns(mw, position, columns, labels, widths, max_lengths, alignments, label_alignments, colors, backgrounds, num_columns) XbaeMatrixWidget mw; int position; String *columns; String *labels; short *widths; int *max_lengths; unsigned char *alignments; unsigned char *label_alignments; Pixel *colors; Pixel *backgrounds; int num_columns; { Boolean haveVSB; Boolean haveHSB; /* * Do some error checking. */ if (num_columns <= 0) return; if (position < 0 || position > mw->matrix.columns) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "addColumns", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds in AddColumns.", NULL, 0); return; } if (!widths) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "addColumns", "noWidths", "XbaeMatrix", "XbaeMatrix: Must specify column widths in AddColumns.", NULL, 0); return; } /* * If we add columns, and there is no drawCellCallback, we must allocate * the cells array to prevent potential disaster */ if (!mw->matrix.cells && !mw->matrix.draw_cell_callback) xbaeCopyCells(mw); haveVSB = XtIsManaged(VertScrollChild(mw)); haveHSB = XtIsManaged(HorizScrollChild(mw)); /* * Add the new rows into the internal cells/labels data structure. */ AddColumnsToTable(mw, position, columns, labels, widths, max_lengths, alignments, label_alignments, colors, backgrounds, num_columns); /* * Reconfig the HSB maximum. */ XtVaSetValues(HorizScrollChild(mw), XmNmaximum, NON_FIXED_TOTAL_WIDTH(mw) ? NON_FIXED_TOTAL_WIDTH(mw) : 1, NULL); /* * Relayout. */ xbaeResize(mw); /* * Call our cancel_edit method since the columns shifted underneath us */ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) { Rectangle rect; int x, y; /* * Determine which part of the non clip region needs to be * redisplayed */ if (position >= (int)mw->matrix.fixed_columns) { xbaeRowColToXY(mw, mw->matrix.fixed_columns, position, &x, &y); if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmBOTTOM_LEFT) x += VERT_SB_SPACE(mw); x += COLUMN_POSITION(mw, mw->matrix.fixed_columns) + ROW_LABEL_WIDTH(mw); } else { if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmBOTTOM_LEFT) x = VERT_SB_SPACE(mw); else x = 0; x += COLUMN_POSITION(mw, position) + ROW_LABEL_WIDTH(mw); } SETRECT(rect, x, 0, mw->core.width, mw->core.height); xbaeRedrawLabelsAndFixed(mw, &rect); XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), rect.x1, rect.y1, rect.x2 - rect.x1, rect.y2 - rect.y1, True); /* * If the scrollbars have just been mapped and there are * labels then the labels shift around. The labels need * to be redrawn */ if ((!haveVSB && XtIsManaged(VertScrollChild(mw)) && mw->matrix.column_labels) || ((mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmTOP_RIGHT) && !haveHSB && XtIsManaged(HorizScrollChild(mw)))) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_OFFSET(mw), 0, COLUMN_LABEL_HEIGHT(mw), True); if ((!haveHSB && XtIsManaged(VertScrollChild(mw)) && mw->matrix.row_labels) || ((mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmTOP_RIGHT))) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_OFFSET(mw), 0, ROW_LABEL_WIDTH(mw), 0, True); } } /* * Matrix delete_columns method */ void xbaeDeleteColumns(mw, position, num_columns) XbaeMatrixWidget mw; int position; int num_columns; { int maxlines; Boolean haveVSB; Boolean haveHSB; /* * Do some error checking. */ if (num_columns <= 0) return; if (position < 0 || position + num_columns > mw->matrix.columns) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deleteColumns", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds in DeleteColumns.", NULL, 0); return; } if (num_columns > (mw->matrix.columns - (int)mw->matrix.fixed_columns - (int)mw->matrix.trailing_fixed_columns)) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "deleteColumns", "tooMany", "XbaeMatrix", "XbaeMatrix: Attempting to delete too many columns in DeleteColumns.", NULL, 0); return; } haveVSB = XtIsManaged(VertScrollChild(mw)); haveHSB = XtIsManaged(HorizScrollChild(mw)); maxlines = mw->matrix.column_label_maxlines; /* * Delete the new columns from the internal cells/labels data structure. */ DeleteColumnsFromTable(mw, position, num_columns); /* * Reconfig the HSB maximum. Reset the sliderSize to avoid warnings. */ XtVaSetValues(HorizScrollChild(mw), XmNvalue, 0, /* value to 0 to stop sb from whinging */ XmNmaximum, NON_FIXED_TOTAL_WIDTH(mw) ? NON_FIXED_TOTAL_WIDTH(mw) : 1, XmNsliderSize, 1, NULL); /* * Relayout. */ xbaeResize(mw); /* * Call our cancel_edit method since the columns shifted underneath us */ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); if (!mw->matrix.disable_redisplay && XtIsRealized((Widget)mw)) { Rectangle rect; int x, y; if (maxlines != mw->matrix.column_label_maxlines) { /* * If a column with a high label gets deleted, then the matrix * gets pulled up the screen and leaves dangly bits underneath. * Clear the whole area to ensure correct display and forget the * rest of the calculation */ XClearArea(XtDisplay(mw), XtWindow(mw), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, True); return; } /* * Determine which part of the non clip region needs to be * redisplayed */ if (position >= (int)mw->matrix.fixed_columns) { xbaeRowColToXY(mw, mw->matrix.fixed_columns, position, &x, &y); if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmBOTTOM_LEFT) x += VERT_SB_SPACE(mw); x += COLUMN_POSITION(mw, mw->matrix.fixed_columns) + ROW_LABEL_WIDTH(mw); } else { if (mw->matrix.scrollbar_placement == XmTOP_LEFT || mw->matrix.scrollbar_placement == XmBOTTOM_LEFT) x = VERT_SB_SPACE(mw); else x = 0; x += COLUMN_POSITION(mw, position) + ROW_LABEL_WIDTH(mw); } SETRECT(rect, x, 0, mw->core.width, mw->core.height); XClearArea(XtDisplay(mw), XtWindow(mw), VISIBLE_WIDTH(mw) + FIXED_COLUMN_WIDTH(mw) + TRAILING_FIXED_COLUMN_WIDTH(mw), 0, mw->core.width, mw->core.height, True); xbaeRedrawLabelsAndFixed(mw, &rect); XClearArea(XtDisplay(mw), XtWindow(ClipChild(mw)), rect.x1, rect.y1, rect.x2 - rect.x1, rect.y2 - rect.y1, True); /* * If the scrollbars have just been unmapped and there are * labels then the labels shift around. The labels need * to be redrawn */ if (haveVSB && !XtIsManaged(VertScrollChild(mw)) && mw->matrix.column_labels) XClearArea(XtDisplay(mw), XtWindow(mw), 0, HORIZ_SB_OFFSET(mw), 0, COLUMN_LABEL_HEIGHT(mw), True); if (haveHSB && !XtIsManaged(VertScrollChild(mw)) && mw->matrix.row_labels) XClearArea(XtDisplay(mw), XtWindow(mw), VERT_SB_OFFSET(mw), 0, ROW_LABEL_WIDTH(mw), 0, True); } } /* * Matrix set_row_colors method */ void #if NeedFunctionPrototypes xbaeSetRowColors(XbaeMatrixWidget mw, int position, Pixel *colors, int num_colors, Boolean bg) #else xbaeSetRowColors(mw, position, colors, num_colors, bg) XbaeMatrixWidget mw; int position; Pixel *colors; int num_colors; Boolean bg; #endif { Rectangle rect; int i, j; Pixel **set; Pixel pixel; /* * Do some error checking. */ if (num_colors <= 0) return; if (position < 0 || position + num_colors > mw->matrix.rows) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "setRowColors", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds or too many colors in SetRowColors.", NULL, 0); return; } /* * If we don't have any colors yet, malloc them, and initialize * unused entries to the appropriate color */ if ((!bg && !mw->matrix.colors) || (bg && !mw->matrix.cell_background)) { if (!bg) { xbaeCreateColors(mw); set = &mw->matrix.colors[0]; pixel = mw->manager.foreground; for (i = 0; i < position; i++) for (j = 0; j < mw->matrix.columns; j++) set[i][j] = pixel; for (i = position + num_colors; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) set[i][j] = pixel; } else xbaeCopyBackgrounds(mw); } if (!bg) set = &mw->matrix.colors[0]; else set = &mw->matrix.cell_background[0]; /* * Set each row to the appropriate color */ for (i = 0; i < num_colors; i++) for (j = 0; j < mw->matrix.columns; j++) set[i + position][j] = colors[i]; if (XtIsRealized((Widget)mw)) { /* * Redraw all the visible non-fixed cells. We don't need to clear first * since only the color changed. */ SETRECT(rect, 0, 0, ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1); xbaeRedrawCells(mw, &rect); /* * Redraw all the visible fixed cells (but not the labels). * We don't need to clear first since only the color changed. */ SETRECT(rect, ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw), mw->core.width - 1, mw->core.height - 1); xbaeRedrawLabelsAndFixed(mw, &rect); } if (position <= mw->matrix.current_row && position + num_colors > mw->matrix.current_row && XtIsRealized(TextChild(mw))) { if (bg) XtVaSetValues(TextChild(mw), XmNbackground, mw->matrix.cell_background[mw->matrix.current_row] [mw->matrix.current_column], NULL); else XtVaSetValues(TextChild(mw), XmNforeground, mw->matrix.colors[mw->matrix.current_row] [mw->matrix.current_column], NULL); } } /* * Matrix set_column_colors method */ void #if NeedFunctionPrototypes xbaeSetColumnColors(XbaeMatrixWidget mw, int position, Pixel *colors, int num_colors, Boolean bg) #else xbaeSetColumnColors(mw, position, colors, num_colors, bg) XbaeMatrixWidget mw; int position; Pixel *colors; int num_colors; Boolean bg; #endif { Rectangle rect; int i, j; Pixel **set; Pixel pixel; /* * Do some error checking. */ if (num_colors <= 0) return; if (position < 0 || position + num_colors > mw->matrix.columns) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "setColumnColors", "badPosition", "XbaeMatrix", "XbaeMatrix: Position out of bounds or too many colors in SetColumnColors.", NULL, 0); return; } /* * If we don't have any colors yet, malloc them, and initialize * unused entries to foreground */ if ((!bg && !mw->matrix.colors) || (bg && !mw->matrix.cell_background)) { if (!bg) { xbaeCreateColors(mw); set = &mw->matrix.colors[0]; pixel = mw->manager.foreground; for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < position; j++) set[i][j] = pixel; for (i = 0; i < mw->matrix.rows; i++) for (j = position + num_colors; j < mw->matrix.columns; j++) set[i][j] = pixel; } else xbaeCopyBackgrounds(mw); } if (!bg) set = &mw->matrix.colors[0]; else set = &mw->matrix.cell_background[0]; /* * Set each column to the appropriate color */ for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < num_colors; j++) set[i][j + position] = colors[j]; if (XtIsRealized((Widget)mw)) { /* * Redraw all the visible non-fixed cells. We don't need to clear first * since only the color changed. */ SETRECT(rect, 0, 0, ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1); xbaeRedrawCells(mw, &rect); /* * Redraw all the visible fixed cells (but not the labels). * We don't need to clear first since only the color changed. */ SETRECT(rect, ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw), mw->core.width - 1, mw->core.height - 1); xbaeRedrawLabelsAndFixed(mw, &rect); } if (position <= mw->matrix.current_column && position + num_colors > mw->matrix.current_column && XtIsRealized(TextChild(mw))) { if (bg) XtVaSetValues(TextChild(mw), XmNbackground, mw->matrix.cell_background[mw->matrix.current_row] [mw->matrix.current_column], NULL); else XtVaSetValues(TextChild(mw), XmNforeground, mw->matrix.colors[mw->matrix.current_row] [mw->matrix.current_column], NULL); } } /* * Matrix set_cell_color method */ void #if NeedFunctionPrototypes xbaeSetCellColor(XbaeMatrixWidget mw, int row, int column, Pixel color, Boolean bg) #else xbaeSetCellColor(mw, row, column, color, bg) XbaeMatrixWidget mw; int row; int column; Pixel color; Boolean bg; #endif { int i, j; Pixel **set; Pixel pixel; /* * Do some error checking. */ if (row >= mw->matrix.rows || row < 0 || column >= mw->matrix.columns || column < 0) { XtAppWarningMsg( XtWidgetToApplicationContext((Widget) mw), "xbaeSetCellColor", "badIndex", "XbaeMatrix", "XbaeMatrix: Row or column out of bounds for xbaeSetCellColor.", NULL, 0); return; } /* * If we don't have any colors yet, malloc them and initialize them */ if ((!bg && !mw->matrix.colors) || (bg && !mw->matrix.cell_background)) { if (!bg) { xbaeCreateColors(mw); set = &mw->matrix.colors[0]; pixel = mw->manager.foreground; for (i = 0; i < mw->matrix.rows; i++) for (j = 0; j < mw->matrix.columns; j++) set[i][j] = pixel; } else xbaeCopyBackgrounds(mw); } if (!bg) set = &mw->matrix.colors[0]; else set = &mw->matrix.cell_background[0]; /* * Set the cell's color */ set[row][column] = color; if (XtIsRealized((Widget)mw)) { /* * Redraw the cell if it is visible */ if (xbaeIsCellVisible(mw, row, column)) xbaeDrawCell(mw, row, column); } if (row == mw->matrix.current_row && column == mw->matrix.current_column && XtIsRealized(TextChild(mw))) { if (bg) XtVaSetValues(TextChild(mw), XmNbackground, mw->matrix.cell_background[mw->matrix.current_row] [mw->matrix.current_column], NULL); else XtVaSetValues(TextChild(mw), XmNforeground, mw->matrix.colors[mw->matrix.current_row] [mw->matrix.current_column], NULL); } } grace-5.1.25/Xbae/Xbae/Methods.h0000644000076500001440000000532406766327622015770 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Methods.h,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * Methods.h created by Andrew Lister (7 August, 1995) */ #ifndef _Xbae_Methods_h #define _Xbae_Methods_h #include void xbaeResize P((XbaeMatrixWidget)); /* * New Matrix methods */ void xbaeSetCell P((XbaeMatrixWidget, int, int, const String, Boolean)); void xbaeModifyVerifyCB P((Widget, XtPointer, XtPointer)); void xbaeEditCell P((XbaeMatrixWidget, XEvent *, int, int, String *, Cardinal)); void xbaeSelectCell P((XbaeMatrixWidget, int, int)); void xbaeSelectRow P((XbaeMatrixWidget, int)); void xbaeSelectColumn P((XbaeMatrixWidget, int)); void xbaeDeselectAll P((XbaeMatrixWidget)); void xbaeSelectAll P((XbaeMatrixWidget)); void xbaeDeselectCell P((XbaeMatrixWidget, int, int)); void xbaeDeselectRow P((XbaeMatrixWidget, int)); void xbaeDeselectColumn P((XbaeMatrixWidget, int)); String xbaeGetCell P((XbaeMatrixWidget, int, int)); Boolean xbaeCommitEdit P((XbaeMatrixWidget, XEvent *, Boolean)); void xbaeCancelEdit P((XbaeMatrixWidget, Boolean)); void xbaeAddRows P((XbaeMatrixWidget, int, String *, String *, Pixel *, Pixel *, int)); void xbaeDeleteRows P((XbaeMatrixWidget, int, int)); void xbaeAddColumns P((XbaeMatrixWidget, int, String *, String *, short *, int *, unsigned char *, unsigned char *, Pixel *, Pixel *, int)); void xbaeDeleteColumns P((XbaeMatrixWidget, int, int)); void xbaeSetRowColors P((XbaeMatrixWidget, int, Pixel *, int, Boolean)); void xbaeSetColumnColors P((XbaeMatrixWidget, int, Pixel *, int, Boolean)); void xbaeSetCellColor P((XbaeMatrixWidget, int, int, Pixel, Boolean)); #endif grace-5.1.25/Xbae/Xbae/MatrixP.h0000644000076500001440000004171306766327622015753 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * MatrixWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com * * $Id: MatrixP.h,v 1.1 1999/09/11 01:25:38 fnevgeny Exp $ */ /* * MatrixP.h - Private definitions for Matrix widget */ #ifndef _Xbae_MatrixP_h #define _Xbae_MatrixP_h #if XmVersion <= 1001 # include #else # include #endif #include #ifndef P #if defined(__STDC__) || defined (__cplusplus) #define P(x) x #else #define P(x) () #define const #define volatile #endif #endif /* * A few definitions we like to use, but those with R4 won't have. * From Xfuncproto.h in R5. */ #ifndef XlibSpecificationRelease # ifndef _XFUNCPROTOBEGIN # ifdef __cplusplus /* for C++ V2.0 */ # define _XFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */ # define _XFUNCPROTOEND } # else # define _XFUNCPROTOBEGIN # define _XFUNCPROTOEND # endif # endif /* _XFUNCPROTOBEGIN */ #else #include #endif /* * New types for the class methods */ _XFUNCPROTOBEGIN typedef void (*XbaeMatrixSetCellProc) P((XbaeMatrixWidget, int, int, const String, Boolean)); typedef String (*XbaeMatrixGetCellProc) P((XbaeMatrixWidget, int, int)); typedef void (*XbaeMatrixEditCellProc) P((XbaeMatrixWidget, XEvent *, int, int, String *, Cardinal)); typedef void (*XbaeMatrixSelectCellProc) P((XbaeMatrixWidget, int, int)); typedef void (*XbaeMatrixSelectRowProc) P((XbaeMatrixWidget, int)); typedef void (*XbaeMatrixSelectColumnProc) P((XbaeMatrixWidget, int)); typedef void (*XbaeMatrixDeselectAllProc) P((XbaeMatrixWidget)); typedef void (*XbaeMatrixSelectAllProc) P((XbaeMatrixWidget)); typedef void (*XbaeMatrixDeselectCellProc) P((XbaeMatrixWidget, int, int)); typedef void (*XbaeMatrixDeselectRowProc) P((XbaeMatrixWidget, int)); typedef void (*XbaeMatrixDeselectColumnProc) P((XbaeMatrixWidget, int)); typedef Boolean (*XbaeMatrixCommitEditProc) P((XbaeMatrixWidget, XEvent *, Boolean)); typedef void (*XbaeMatrixCancelEditProc) P((XbaeMatrixWidget, Boolean)); typedef void (*XbaeMatrixAddRowsProc) P((XbaeMatrixWidget, int, String *, String *, Pixel *, Pixel *, int)); typedef void (*XbaeMatrixDeleteRowsProc) P((XbaeMatrixWidget, int, int)); typedef void (*XbaeMatrixAddColumnsProc) P((XbaeMatrixWidget, int, String *, String *, short *, int *, unsigned char*, unsigned char *, Pixel *, Pixel *, int)); typedef void (*XbaeMatrixDeleteColumnsProc) P((XbaeMatrixWidget, int, int)); typedef void (*XbaeMatrixSetRowColorsProc) P((XbaeMatrixWidget, int, Pixel *, int, Boolean)); typedef void (*XbaeMatrixSetColumnColorsProc) P((XbaeMatrixWidget, int, Pixel *, int, Boolean)); typedef void (*XbaeMatrixSetCellColorProc) P((XbaeMatrixWidget, int, int, Pixel, Boolean)); _XFUNCPROTOEND /* * Different than the traversal directions in Xm.h */ #define NOT_TRAVERSING -1 /* * New fields for the Matrix widget class record */ typedef struct { XbaeMatrixSetCellProc set_cell; XbaeMatrixGetCellProc get_cell; XbaeMatrixEditCellProc edit_cell; XbaeMatrixSelectCellProc select_cell; XbaeMatrixSelectRowProc select_row; XbaeMatrixSelectColumnProc select_column; XbaeMatrixDeselectAllProc deselect_all; XbaeMatrixSelectAllProc select_all; XbaeMatrixDeselectCellProc deselect_cell; XbaeMatrixDeselectRowProc deselect_row; XbaeMatrixDeselectColumnProc deselect_column; XbaeMatrixCommitEditProc commit_edit; XbaeMatrixCancelEditProc cancel_edit; XbaeMatrixAddRowsProc add_rows; XbaeMatrixDeleteRowsProc delete_rows; XbaeMatrixAddColumnsProc add_columns; XbaeMatrixDeleteColumnsProc delete_columns; XbaeMatrixSetRowColorsProc set_row_colors; XbaeMatrixSetColumnColorsProc set_column_colors; XbaeMatrixSetCellColorProc set_cell_color; XtPointer extension; } XbaeMatrixClassPart; /* * Full class record declaration */ typedef struct _XbaeMatrixClassRec { CoreClassPart core_class; CompositeClassPart composite_class; ConstraintClassPart constraint_class; XmManagerClassPart manager_class; XbaeMatrixClassPart matrix_class; } XbaeMatrixClassRec; externalref XbaeMatrixClassRec xbaeMatrixClassRec; /* * Inheritance constants for set/get/edit methods */ #define XbaeInheritGetCell ((XbaeMatrixGetCellProc) _XtInherit) #define XbaeInheritSetCell ((XbaeMatrixSetCellProc) _XtInherit) #define XbaeInheritEditCell ((XbaeMatrixEditCellProc) _XtInherit) #define XbaeInheritSelectCell ((XbaeMatrixSelectCellProc) _XtInherit) #define XbaeInheritSelectRow ((XbaeMatrixSelectRowProc) _XtInherit) #define XbaeInheritSelectColumn ((XbaeMatrixSelectColumnProc) _XtInherit) #if XmVersion >= 1002 #define XbaeInheritHighlightCell ((XbaeMatrixHighlightCellProc) _XtInherit) #define XbaeInheritHighlightRow ((XbaeMatrixHighlightRowProc) _XtInherit) #define XbaeInheritHighlightColumn ((XbaeMatrixHighlightColumnProc) _XtInherit) #endif #define XbaeInheritDeselectAll ((XbaeMatrixDeselectAllProc) _XtInherit) #define XbaeInheritSelectAll ((XbaeMatrixSelectAllProc) _XtInherit) #define XbaeInheritDeselectCell ((XbaeMatrixDeselectCellProc) _XtInherit) #define XbaeInheritDeselectRow ((XbaeMatrixDeselectRowProc) _XtInherit) #define XbaeInheritDeselectColumn ((XbaeMatrixDeselectColumnProc) _XtInherit) #define XbaeInheritCommitEdit ((XbaeMatrixCommitEditProc) _XtInherit) #define XbaeInheritCancelEdit ((XbaeMatrixCancelEditProc) _XtInherit) #define XbaeInheritAddRows ((XbaeMatrixAddRowsProc) _XtInherit) #define XbaeInheritDeleteRows ((XbaeMatrixDeleteRowsProc) _XtInherit) #define XbaeInheritAddColumns ((XbaeMatrixAddColumnsProc) _XtInherit) #define XbaeInheritDeleteColumns ((XbaeMatrixDeleteColumnsProc)_XtInherit) #define XbaeInheritSetRowColors ((XbaeMatrixSetRowColorsProc)_XtInherit) #define XbaeInheritSetColumnColors ((XbaeMatrixSetColumnColorsProc)_XtInherit) #define XbaeInheritSetCellColor ((XbaeMatrixSetCellColorProc)_XtInherit) /* * New data structures for the ScrollMgr code */ typedef struct _SmScrollNode { int x; int y; struct _SmScrollNode *next; struct _SmScrollNode *prev; } SmScrollNodeRec, *SmScrollNode; typedef struct _SmScrollMgr { int offset_x; int offset_y; int scroll_count; SmScrollNode scroll_queue; Boolean scrolling; } SmScrollMgrRec, *SmScrollMgr; /* * Rectangle struct used for internal calculations. (x1,y1) are the upper * left corner, (x2,y2) are the lower right. */ typedef struct _Rectangle { int x1, y1; int x2, y2; } Rectangle; /* * Data structure for column labels */ typedef struct _ColumnLabelLines { int lines; int *lengths; } ColumnLabelLinesRec, *ColumnLabelLines; /* * New fields for the Matrix widget record */ typedef struct { /* * resources */ Boolean allow_column_resize; /* can columns dynamically resize? */ Boolean bold_labels; /* draw bold row/column labels? */ Boolean button_labels; /* draw labels as buttons? */ Boolean fill; /* fill available space? */ Boolean trailing_attached_right; /* trailing columns fixed to right */ Boolean trailing_attached_bottom; /* trailing rows fixed to bottom */ Boolean reverse_select; /* reverse colours - selected cells? */ Boolean scroll_select; /* flag to scroll a selected cell */ Boolean **selected_cells; /* 2D array of selected cells */ Boolean show_arrows; /* sow arrows when text obscured? */ Boolean *column_button_labels; /* which column labels are butons */ Boolean *row_button_labels; /* which row labels are butons */ Boolean traverse_fixed; /* allow traversal to fixed cells? */ Boolean calc_cursor_position; /* calculate insert pos from click */ unsigned char cell_shadow_type; /* cell shadow type */ unsigned char **cell_shadow_types; /* 2D array of per cell shadow type */ unsigned char *column_alignments; /* alignment of each column */ unsigned char *column_label_alignments;/* alignment of each column label */ unsigned char *column_shadow_types; /* 1D array of per col shadow types */ unsigned char grid_type; /* shadowed in/shadowed out/plain */ unsigned char hsb_display_policy; /* horiz scroll bar display policy */ unsigned char row_label_alignment; /* alignment of row labels */ unsigned char *row_shadow_types; /* 1D array of per row shadow types */ unsigned char scrollbar_placement; /* placement of the scrollbars */ unsigned char selection_policy; /* as for XmList */ unsigned char shadow_type; /* matrix window shadow type */ #if XmVersion >= 1002 unsigned char **highlighted_cells; /* 2D array of highlighted cells */ #endif unsigned char vsb_display_policy; /* vert scroll bar display policy */ String **cells; /* 2D array of strings */ String *column_labels; /* array of labels above each column */ String *row_labels; /* array of labels next to each row */ XtPointer **cell_user_data; /* 2D array of per cell user data */ XtPointer *column_user_data; /* 1D array of per column user data */ XtPointer *row_user_data; /* 1D array of per row user data */ short *column_widths; /* width of each column in chars */ short row_label_width; /* max width of row labels in chars */ int alt_row_count; /* # of rows for e/o background */ int columns; /* number of cells per row */ int *column_max_lengths; /* max length of each col in chars */ int double_click_interval; /* interval between clicks */ int left_column; /* horizontal origin (in col space) */ int rows; /* number of rows per column */ int top_row; /* vertical origin (in row space) */ Dimension cell_highlight_thickness; /* hilite thickness for textField */ Dimension cell_margin_height; /* margin height for textField */ Dimension cell_margin_width; /* margin width for textField */ Dimension cell_shadow_thickness; /* shadow thickness for each cell */ Dimension fixed_columns; /* number of leading fixed columns */ Dimension fixed_rows; /* number of leading fixed rows */ Dimension space; /* spacing for scrollbars */ Dimension text_shadow_thickness; /* shadow thickness for text field */ Dimension trailing_fixed_columns; /* number of trailing fixed columns */ Dimension trailing_fixed_rows; /* number of trailing fixed rows */ Dimension visible_columns; /* number of columns to make visible */ Dimension visible_rows; /* number of rows to make visible */ Pixel button_label_background; /* color of button label background */ Pixel **cell_background; /* 2D array of Pixels */ Pixel **colors; /* 2D array of Pixels */ Pixel column_label_color; /* color of column label */ Pixel even_row_background; /* even row background color */ Pixel grid_line_color; /* color of grid, for XmGrid_LINE */ Pixel odd_row_background; /* odd row background color */ Pixel row_label_color; /* color of row label */ Pixel selected_background; /* background for selected cells */ Pixel selected_foreground; /* foreground for selected cells */ Pixel text_background; /* background for the "text" field */ XtTranslations text_translations; /* translations for textField widget */ XtCallbackList default_action_callback; /* called for a double click */ XtCallbackList draw_cell_callback; /* called when a cell is drawn */ XtCallbackList enter_cell_callback; /* called when a cell is entered */ XtCallbackList label_activate_callback; /* called when label pressed */ XtCallbackList leave_cell_callback; /* called when a cell is left */ XtCallbackList modify_verify_callback; /* verify change to textField */ /* and a draw_cell_callback is set */ #if XmVersion > 1001 XtCallbackList process_drag_callback; /* called when a drag is initiated */ #endif XtCallbackList resize_callback; /* called when Matrix is resized */ XtCallbackList resize_column_callback; /* called when column is resized */ XtCallbackList select_cell_callback; /* called when cells are selected */ XtCallbackList traverse_cell_callback; /* next cell to traverse to */ XtCallbackList write_cell_callback; /*called when a cell needs to be set*/ XmFontList font_list; /* fontList of widget and textField */ XmFontList label_font_list; /* fontList of labels */ /* * private state */ #if XmVersion >= 1002 unsigned char highlight_location; /* What is being highlighted */ #endif short first_row_offset; /* hidden first row */ int cell_visible_height; /* height of visible cells in pixels */ int column_label_maxlines; /* max # lines in column labels */ int *column_positions; /* pixel position of each column */ int current_column; /* column of the text field */ int current_row; /* row of the text field */ int horiz_origin; /* horiz origin (in pixel space) */ int label_baseline; /* baseline of label */ int last_column; /* The last selected column */ int last_row; /* The last selected row */ int num_selected_cells; /* The number selected cells */ int text_baseline; /* baseline of text in each cell */ int traversing; /* direction we are traversing */ unsigned int non_fixed_total_width; /* width of cell area in pixels */ unsigned int current_clip; /* current clip mask setting */ unsigned int disable_redisplay; /* disable redisplay counter */ Dimension desired_height; /* height widget wants to be */ Dimension desired_width; /* width widget wants to be */ Time last_click_time; /* when last ButtonPress occurred */ Widget text_field; /* the text field */ Widget horizontal_sb; /* the horizontal scrollbar */ Widget vertical_sb; /* the vertical scrollbar */ Widget clip_window; /* the clip child */ Widget left_clip; /* clips for scrolling fixed cells */ Widget right_clip; Widget top_clip; Widget bottom_clip; Widget current_parent; /* Current textField parent window */ #if CELL_WIDGETS Widget **cell_widgets; /* array of widgets for cells */ #endif GC cell_bottom_shadow_clip_gc; /* GC for clipped bottom shadow */ GC cell_grid_line_gc; GC cell_top_shadow_clip_gc; /* GC for clipped top shadow */ GC draw_gc; /* GC for drawing cells */ GC grid_line_gc; /* GC for grid line */ GC label_clip_gc; /* GC for clipped labels */ GC label_gc; /* GC for drawing labels */ GC pixmap_gc; /* GC for drawing pixmap cells */ GC resize_bottom_shadow_gc; GC resize_top_shadow_gc; ColumnLabelLines column_label_lines; /* structs for multi line labels */ XFontStruct *font_struct; /* fontStruct from fontList */ XFontStruct *label_font_struct; /* fontStruct from fontList */ SmScrollMgr clip_scroll_mgr; /* ScrollMgr for Clip */ SmScrollMgr matrix_scroll_mgr; /* ScrollMgr for Matrix */ XFontSet font_set; /* fontSet from fontList */ short font_y; short font_width; short font_height; Font fid; XFontSet label_font_set; /* fontSet from fontList */ short label_font_y; short label_font_width; short label_font_height; Font label_fid; } XbaeMatrixPart; /* * Full instance record declaration */ typedef struct _XbaeMatrixRec { CorePart core; CompositePart composite; ConstraintPart constraint; XmManagerPart manager; XbaeMatrixPart matrix; } XbaeMatrixRec; /* provide clean-up for those with R4 */ #ifndef XlibSpecificationRelease # undef _Xconst # undef _XFUNCPROTOBEGIN # undef _XFUNCPROTOEND #endif #undef P #endif /* _Xbae_MatrixP_h */ grace-5.1.25/Xbae/Xbae/Create.h0000644000076500001440000000676606766327621015602 0ustar fnevgenyusers/* * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore) * Copyright(c) 1995-99 Andrew Lister * All rights reserved * Permission to use, copy, modify and distribute this material for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Bellcore not be used in advertising * or publicity pertaining to this material without the specific, * prior written permission of an authorized representative of * Bellcore. * * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX- * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN- * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT- * ING TO THE SOFTWARE. * * $Id: Create.h,v 1.1 1999/09/11 01:25:37 fnevgeny Exp $ */ /* * Create.h created by Andrew Lister (28 January, 1996) */ #ifndef _Xbae_Create_h #define _Xbae_Create_h #include void xbaeCopyBackground P((Widget, int, XrmValue *)); void xbaeCopyForeground P((Widget, int, XrmValue *)); void xbaeCopyDoubleClick P((Widget, int, XrmValue *)); void xbaeCopyCellShadowTypes P((XbaeMatrixWidget)); void xbaeCopyRowShadowTypes P((XbaeMatrixWidget)); void xbaeCopyColumnShadowTypes P((XbaeMatrixWidget)); void xbaeCopyCellUserData P((XbaeMatrixWidget)); void xbaeCopyRowUserData P((XbaeMatrixWidget)); void xbaeCopyColumnUserData P((XbaeMatrixWidget)); void xbaeCopySelectedCells P((XbaeMatrixWidget)); void xbaeCopyRowLabels P((XbaeMatrixWidget)); void xbaeCopyColumnLabels P((XbaeMatrixWidget)); void xbaeCopyCells P((XbaeMatrixWidget)); #if CELL_WIDGETS void xbaeCopyCellWidgets P((XbaeMatrixWidget)); #endif void xbaeCopyColumnWidths P((XbaeMatrixWidget)); void xbaeCopyColumnMaxLengths P((XbaeMatrixWidget)); void xbaeCopyBackgrounds P((XbaeMatrixWidget)); void xbaeCopyColumnAlignments P((XbaeMatrixWidget)); void xbaeCopyColumnLabelAlignments P((XbaeMatrixWidget)); void xbaeCopyColumnButtonLabels P((XbaeMatrixWidget)); void xbaeCopyRowButtonLabels P((XbaeMatrixWidget)); void xbaeCopyColors P((XbaeMatrixWidget)); #if XmVersion >= 1002 void xbaeCopyHighlightedCells P((XbaeMatrixWidget)); #endif void xbaeCreateDrawGC P((XbaeMatrixWidget)); void xbaeCreatePixmapGC P((XbaeMatrixWidget)); void xbaeCreateLabelGC P((XbaeMatrixWidget)); void xbaeCreateLabelClipGC P((XbaeMatrixWidget)); void xbaeCreateGridLineGC P((XbaeMatrixWidget)); void xbaeCreateTopShadowClipGC P((XbaeMatrixWidget)); void xbaeCreateBottomShadowClipGC P((XbaeMatrixWidget)); void xbaeNewFont P((XbaeMatrixWidget)); void xbaeNewLabelFont P((XbaeMatrixWidget)); void xbaeFreeCells P((XbaeMatrixWidget)); #if CELL_WIDGETS void xbaeFreeCellWidgets P((XbaeMatrixWidget)); #endif void xbaeFreeRowLabels P((XbaeMatrixWidget)); void xbaeFreeColumnLabels P((XbaeMatrixWidget)); void xbaeFreeColors P((XbaeMatrixWidget)); void xbaeFreeBackgrounds P((XbaeMatrixWidget)); void xbaeFreeSelectedCells P((XbaeMatrixWidget)); void xbaeFreeCellUserData P((XbaeMatrixWidget)); void xbaeFreeCellShadowTypes P((XbaeMatrixWidget)); #if XmVersion >= 1002 void xbaeFreeHighlightedCells P((XbaeMatrixWidget)); #endif void xbaeCreateColors P((XbaeMatrixWidget)); #endif grace-5.1.25/Xbae/LICENSE0000644000076500001440000000236307412442102014316 0ustar fnevgenyusers# # $Date: 2001/12/26 21:42:26 $ # $Source: /home/fnevgeny/cvsroot/grace/Xbae/LICENSE,v $ Copyright (c) 1991, 1992 Bell Communications Research, Inc. (Bellcore) Copyright (c) 1995-97 Andrew Lister All Rights Reserved. Permission to use, copy, modify and distribute this material for any purpose and without fee is hereby granted, provided that the above copyright notices and this permission notice appear in all copies, and that the name of any author not be used in advertising or publicity pertaining to this material without the specific, prior written permission of an authorized representative of Bellcore and current maintainer. BELLCORE AND OTHER CONTRIBUTORS MAKE NO REPRESENTATIONS AND EXTEND NO WARRANTIES, EXPRESS OR IMPLIED, WITH RESPECT TO THE INFORMATION, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST INFRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS. THE SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL ANY AUTHOR OR ANY OF THEIR AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELATING TO THE INFORMATION. grace-5.1.25/Xbae/README0000644000076500001440000000040607412442102014165 0ustar fnevgenyusers The code in this directory is the Xbae widget library specially modified and packaged for use with Grace. For the original package, see http://www.lesstif.org/Xbae.html. Note, though, that it's NOT recommended to use the original library due to several bugs. grace-5.1.25/templates/0000755000076500001440000000000012467751541014444 5ustar fnevgenyusersgrace-5.1.25/templates/Default.agr0000644000076500001440000001512410565431623016517 0ustar fnevgenyusers# Grace project file # @version 50121 @page size 792, 612 @page scroll 5% @page inout 5% @link page off @map font 0 to "Times-Roman", "Times-Roman" @map font 1 to "Times-Italic", "Times-Italic" @map font 2 to "Times-Bold", "Times-Bold" @map font 3 to "Times-BoldItalic", "Times-BoldItalic" @map font 4 to "Helvetica", "Helvetica" @map font 5 to "Helvetica-Oblique", "Helvetica-Oblique" @map font 6 to "Helvetica-Bold", "Helvetica-Bold" @map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique" @map font 8 to "Courier", "Courier" @map font 9 to "Courier-Oblique", "Courier-Oblique" @map font 10 to "Courier-Bold", "Courier-Bold" @map font 11 to "Courier-BoldOblique", "Courier-BoldOblique" @map font 12 to "Symbol", "Symbol" @map font 13 to "ZapfDingbats", "ZapfDingbats" @map color 0 to (255, 255, 255), "white" @map color 1 to (0, 0, 0), "black" @map color 2 to (255, 0, 0), "red" @map color 3 to (0, 255, 0), "green" @map color 4 to (0, 0, 255), "blue" @map color 5 to (255, 255, 0), "yellow" @map color 6 to (188, 143, 143), "brown" @map color 7 to (220, 220, 220), "grey" @map color 8 to (148, 0, 211), "violet" @map color 9 to (0, 255, 255), "cyan" @map color 10 to (255, 0, 255), "magenta" @map color 11 to (255, 165, 0), "orange" @map color 12 to (114, 33, 188), "indigo" @map color 13 to (103, 7, 72), "maroon" @map color 14 to (64, 224, 208), "turquoise" @map color 15 to (0, 139, 0), "green4" @reference date 0 @date wrap off @date wrap year 1950 @default linewidth 1.0 @default linestyle 1 @default color 1 @default pattern 1 @default font 0 @default char size 1.000000 @default symbol size 1.000000 @default sformat "%.8g" @background color 0 @page background fill on @timestamp off @timestamp 0.03, 0.03 @timestamp color 1 @timestamp rot 0 @timestamp font 0 @timestamp char size 1.000000 @timestamp def "*** *** -- --:--:-- ----" @r0 off @link r0 to g0 @r0 type above @r0 linestyle 1 @r0 linewidth 1.0 @r0 color 1 @r0 line 0, 0, 0, 0 @r1 off @link r1 to g0 @r1 type above @r1 linestyle 1 @r1 linewidth 1.0 @r1 color 1 @r1 line 0, 0, 0, 0 @r2 off @link r2 to g0 @r2 type above @r2 linestyle 1 @r2 linewidth 1.0 @r2 color 1 @r2 line 0, 0, 0, 0 @r3 off @link r3 to g0 @r3 type above @r3 linestyle 1 @r3 linewidth 1.0 @r3 color 1 @r3 line 0, 0, 0, 0 @r4 off @link r4 to g0 @r4 type above @r4 linestyle 1 @r4 linewidth 1.0 @r4 color 1 @r4 line 0, 0, 0, 0 @g0 on @g0 hidden false @g0 type XY @g0 stacked false @g0 bar hgap 0.000000 @g0 fixedpoint off @g0 fixedpoint type 0 @g0 fixedpoint xy 0.000000, 0.000000 @g0 fixedpoint format general general @g0 fixedpoint prec 6, 6 @with g0 @ world 0, 0, 1, 1 @ stack world 0, 0, 0, 0 @ znorm 1 @ view 0.150000, 0.150000, 1.150000, 0.850000 @ title "" @ title font 0 @ title size 1.500000 @ title color 1 @ subtitle "" @ subtitle font 0 @ subtitle size 1.000000 @ subtitle color 1 @ xaxes scale Normal @ yaxes scale Normal @ xaxes invert off @ yaxes invert off @ xaxis on @ xaxis type zero false @ xaxis offset 0.000000 , 0.000000 @ xaxis bar on @ xaxis bar color 1 @ xaxis bar linestyle 1 @ xaxis bar linewidth 1.0 @ xaxis label "" @ xaxis label layout para @ xaxis label place auto @ xaxis label char size 1.000000 @ xaxis label font 0 @ xaxis label color 1 @ xaxis label place normal @ xaxis tick on @ xaxis tick major 0.2 @ xaxis tick minor ticks 1 @ xaxis tick default 6 @ xaxis tick place rounded true @ xaxis tick in @ xaxis tick major size 1.000000 @ xaxis tick major color 1 @ xaxis tick major linewidth 1.0 @ xaxis tick major linestyle 1 @ xaxis tick major grid off @ xaxis tick minor color 1 @ xaxis tick minor linewidth 1.0 @ xaxis tick minor linestyle 1 @ xaxis tick minor grid off @ xaxis tick minor size 0.500000 @ xaxis ticklabel on @ xaxis ticklabel format general @ xaxis ticklabel prec 5 @ xaxis ticklabel formula "" @ xaxis ticklabel append "" @ xaxis ticklabel prepend "" @ xaxis ticklabel angle 0 @ xaxis ticklabel skip 0 @ xaxis ticklabel stagger 0 @ xaxis ticklabel place normal @ xaxis ticklabel offset auto @ xaxis ticklabel offset 0.000000 , 0.010000 @ xaxis ticklabel start type auto @ xaxis ticklabel start 0.000000 @ xaxis ticklabel stop type auto @ xaxis ticklabel stop 0.000000 @ xaxis ticklabel char size 1.000000 @ xaxis ticklabel font 0 @ xaxis ticklabel color 1 @ xaxis tick place both @ xaxis tick spec type none @ yaxis on @ yaxis type zero false @ yaxis offset 0.000000 , 0.000000 @ yaxis bar on @ yaxis bar color 1 @ yaxis bar linestyle 1 @ yaxis bar linewidth 1.0 @ yaxis label "" @ yaxis label layout para @ yaxis label place auto @ yaxis label char size 1.000000 @ yaxis label font 0 @ yaxis label color 1 @ yaxis label place normal @ yaxis tick on @ yaxis tick major 0.2 @ yaxis tick minor ticks 1 @ yaxis tick default 6 @ yaxis tick place rounded true @ yaxis tick in @ yaxis tick major size 1.000000 @ yaxis tick major color 1 @ yaxis tick major linewidth 1.0 @ yaxis tick major linestyle 1 @ yaxis tick major grid off @ yaxis tick minor color 1 @ yaxis tick minor linewidth 1.0 @ yaxis tick minor linestyle 1 @ yaxis tick minor grid off @ yaxis tick minor size 0.500000 @ yaxis ticklabel on @ yaxis ticklabel format general @ yaxis ticklabel prec 5 @ yaxis ticklabel formula "" @ yaxis ticklabel append "" @ yaxis ticklabel prepend "" @ yaxis ticklabel angle 0 @ yaxis ticklabel skip 0 @ yaxis ticklabel stagger 0 @ yaxis ticklabel place normal @ yaxis ticklabel offset auto @ yaxis ticklabel offset 0.000000 , 0.010000 @ yaxis ticklabel start type auto @ yaxis ticklabel start 0.000000 @ yaxis ticklabel stop type auto @ yaxis ticklabel stop 0.000000 @ yaxis ticklabel char size 1.000000 @ yaxis ticklabel font 0 @ yaxis ticklabel color 1 @ yaxis tick place both @ yaxis tick spec type none @ altxaxis off @ altyaxis off @ legend on @ legend loctype view @ legend 0.85, 0.8 @ legend box color 1 @ legend box pattern 1 @ legend box linewidth 1.0 @ legend box linestyle 1 @ legend box fill color 0 @ legend box fill pattern 1 @ legend font 0 @ legend char size 1.000000 @ legend color 1 @ legend length 4 @ legend vgap 1 @ legend hgap 1 @ legend invert false @ frame type 0 @ frame linestyle 1 @ frame linewidth 1.0 @ frame color 1 @ frame pattern 1 @ frame background color 0 @ frame background pattern 0 grace-5.1.25/templates/Makefile0000644000076500001440000000166007505061045016075 0ustar fnevgenyusers##################################################### # Makefile for templates of Grace # ##################################################### # You should not change anything here. # ##################################################### TOP=.. include $(TOP)/Make.conf DEFAULT_AGR = Default.agr all : $(DEFAULT_AGR) clean : dummy distclean : $(RM) *.orig devclean : dummy install : $(DEFAULT_AGR) $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/templates @if test -f $(DESTDIR)$(GRACE_HOME)/templates/$(DEFAULT_AGR); then \ echo " $(DESTDIR)$(GRACE_HOME)/templates/$(DEFAULT_AGR) exists"; \ echo " Installing only $(DESTDIR)$(GRACE_HOME)/templates/$(DEFAULT_AGR).sample"; \ $(INSTALL_DATA) $(DEFAULT_AGR) $(DESTDIR)$(GRACE_HOME)/templates/$(DEFAULT_AGR).sample; \ else \ $(INSTALL_DATA) $(DEFAULT_AGR) $(DESTDIR)$(GRACE_HOME)/templates/$(DEFAULT_AGR); \ fi links : dummy tests : dummy dummy : grace-5.1.25/gracerc0000644000076500001440000000114306661401170013763 0ustar fnevgenyusers# +------------------------------------+ # | An example of Grace resource file | # | You may need to edit paths | # +------------------------------------+ # # Convert old binary projects on-the-fly DEFINE IFILTER "bin/grconvert %s -" MAGIC "00000031" # # This one is for automatic import of Origin-4 fit description files DEFINE IFILTER "auxiliary/fdf2fit %s -" PATTERN "*.fdf" # # Save disk space by keeping files gzip'ed DEFINE IFILTER "gzip -dc %s" PATTERN "*.gz" DEFINE OFILTER "gzip - > %s" PATTERN "*.gz" # # Allow user to add his/her own startup settings GETP "gracerc.user" # grace-5.1.25/ac-tools/0000755000076500001440000000000012467751541014167 5ustar fnevgenyusersgrace-5.1.25/ac-tools/config.sub0000755000076500001440000010535412373752416016160 0ustar fnevgenyusers#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-08-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: grace-5.1.25/ac-tools/config.h.in0000644000076500001440000002353710071615561016212 0ustar fnevgenyusers/* * Grace - GRaphing, Advanced Computation and Exploration of data * * Home page: http://plasma-gate.weizmann.ac.il/Grace/ * * Copyright (c) 1991-1995 Paul J Turner, Portland, OR * Copyright (c) 1996-2000 Grace Development Team * * Maintained by Evgeny Stambulchik * * * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __CONFIG_H #define __CONFIG_H /* Define if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE #undef _ALL_SOURCE #endif /* Define if you need to in order for stat and other things to work. */ #undef _POSIX_SOURCE /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if char is unsigned */ #undef __CHAR_UNSIGNED__ /* Define sizeof(char) */ #define SIZEOF_CHAR 0 /* Define sizeof(short) */ #define SIZEOF_SHORT 0 /* Define sizeof(int) */ #define SIZEOF_INT 0 /* Define sizeof(long) */ #define SIZEOF_LONG 0 /* Define sizeof(long long) */ #define SIZEOF_LONG_LONG 0 /* Define sizeof(float) */ #define SIZEOF_FLOAT 0 /* Define sizeof(double) */ #define SIZEOF_DOUBLE 0 /* Define sizeof(long double) */ #define SIZEOF_LONG_DOUBLE 0 /* Define sizeof(void *) */ #define SIZEOF_VOID_P 0 /* Define to empty if the keyword does not work. */ #undef const /* Define to `int' if doesn't define. */ #undef pid_t /* Define to `unsigned' if doesn't define. */ #undef size_t /* Define if you have the header file. */ #undef HAVE_UNISTD_H /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. This function is required for alloca.c support on those systems. */ #undef CRAY_STACKSEG_END /* Define if using alloca.c. */ #undef C_ALLOCA /* Define if you have alloca, as a function or macro. */ #undef HAVE_ALLOCA /* Define if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define as the return type of signal handlers (int or void). */ #undef RETSIGTYPE /* Define if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define if you have the header file. */ #undef HAVE_FCNTL_H /* Define if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define if your declares struct tm. */ #undef TM_IN_SYS_TIME /* Define if and can be both included. */ #undef TIME_WITH_SYS_TIME /* Define if you have the gettimeofday function. */ #undef HAVE_GETTIMEOFDAY /* Define if you have the getcwd function. */ #undef HAVE_GETCWD /* Define if you have the gethostname function. */ #undef HAVE_GETHOSTNAME /* Define if you have the memcpy function. */ #undef HAVE_MEMCPY /* Define if you have the memmove function. */ #undef HAVE_MEMMOVE /* Define if you have the unlink function. */ #undef HAVE_UNLINK /* Define if you have the fcntl function. */ #undef HAVE_FCNTL /* Define if you have the popen function. */ #undef HAVE_POPEN /* Define if you have the fnmatch function. */ #undef HAVE_FNMATCH /* Define if you have the on_exit function. */ #undef HAVE_ON_EXIT /* Define if you have the strstr function. */ #undef HAVE_STRSTR /* Define if you have the strerror function. */ #undef HAVE_STRERROR /* Define if stdio.h defines the sys_errlist table */ #undef HAVE_SYS_ERRLIST_DECL /* Define if you have the vsnprintf function. */ #undef HAVE_VSNPRINTF /* Define if you have the dlopen function. */ #undef HAVE_DLOPEN /* Define if dlfcn.h defines the RTLD_NOW constant */ #undef HAVE_RTLD_NOW /* Define if you have the shl_load function. */ #undef HAVE_SHL_LOAD /* If words are stored with the most significant byte first (like Motorola and SPARC, but not Intel and VAX, CPUs */ #undef WORDS_BIGENDIAN /* Define if your FPU arithmetics is of the DEC type. */ #undef HAVE_DEC_FPU /* Define if your FPU arithmetics is of the little endian IEEE type. */ #undef HAVE_LIEEE_FPU /* Define if your FPU arithmetics is of the big endian IEEE type. */ #undef HAVE_BIEEE_FPU /* Define if realloc() is buggy (SunOS4, for example) */ #undef REALLOC_IS_BUGGY /* Define if you have the drand48 function. */ #undef HAVE_DRAND48 /* Define if your system supports locale. */ #undef HAVE_SETLOCALE /* Define if stdlib.h defines the drand48 function. */ #undef HAVE_DRAND48_DECL /* Define if you have the m library (-lm). */ #undef HAVE_LIBM /* Define if you have the header file. */ #undef HAVE_MATH_H /* Define if you have . */ #undef HAVE_FLOAT_H /* Define if you have . */ #undef HAVE_IEEEFP_H /* Define if you have the hypot function. */ #undef HAVE_HYPOT /* Define if the hypot function is declared in math.h. */ #undef HAVE_HYPOT_DECL /* Define if you have the cbrt function. */ #undef HAVE_CBRT /* Define if the cbrt function is declared in math.h. */ #undef HAVE_CBRT_DECL /* Define if you have the log2 function. */ #undef HAVE_LOG2 /* Define if the log2 function is declared in math.h. */ #undef HAVE_LOG2_DECL /* Define if you have the rint function. */ #undef HAVE_RINT /* Define if the rint function is declared in math.h. */ #undef HAVE_RINT_DECL /* Define if you have the lgamma function. */ #undef HAVE_LGAMMA /* Define if the lgamma function is declared in math.h. */ #undef HAVE_LGAMMA_DECL /* Define if math.h defines the signgam variable. */ #undef HAVE_SIGNGAM_DECL /* Define if you have the asinh function. */ #undef HAVE_ASINH /* Define if the asinh function is declared in math.h. */ #undef HAVE_ASINH_DECL /* Define if you have the acosh function. */ #undef HAVE_ACOSH /* Define if the acosh function is declared in math.h. */ #undef HAVE_ACOSH_DECL /* Define if you have the atanh function. */ #undef HAVE_ATANH /* Define if the atanh function is declared in math.h. */ #undef HAVE_ATANH_DECL /* Define if you have the erf function. */ #undef HAVE_ERF /* Define if the erf function is declared in math.h. */ #undef HAVE_ERF_DECL /* Define if you have the erfc function. */ #undef HAVE_ERFC /* Define if the erfc function is declared in math.h. */ #undef HAVE_ERFC_DECL /* Define if you have the finite function. */ #undef HAVE_FINITE /* Define if the finite function is declared in math.h. */ #undef HAVE_FINITE_DECL /* Define if you have the isfinite function. */ #undef HAVE_ISFINITE /* Define if the isfinite function is declared in math.h. */ #undef HAVE_ISFINITE_DECL /* Define if you have the isnan function. */ #undef HAVE_ISNAN /* Define if the isnan function is declared in math.h. */ #undef HAVE_ISNAN_DECL /* Define if you have the Bessel j0 function. */ #undef HAVE_J0 /* Define if the j0 function is declared in math.h. */ #undef HAVE_J0_DECL /* Define if you have the Bessel j1 function. */ #undef HAVE_J1 /* Define if the j1 function is declared in math.h. */ #undef HAVE_J1_DECL /* Define if you have the Bessel jn function. */ #undef HAVE_JN /* Define if the jn function is declared in math.h. */ #undef HAVE_JN_DECL /* Define if you have the Bessel y0 function. */ #undef HAVE_Y0 /* Define if the y0 function is declared in math.h. */ #undef HAVE_Y0_DECL /* Define if you have the Bessel y1 function. */ #undef HAVE_Y1 /* Define if the y1 function is declared in math.h. */ #undef HAVE_Y1_DECL /* Define if you have the Bessel yn function. */ #undef HAVE_YN /* Define if the yn function is declared in math.h. */ #undef HAVE_YN_DECL /* Define if netCDF library is available */ #undef HAVE_NETCDF /* Define if FFTW Fourier transform library is available */ #undef HAVE_FFTW /* Define if PNG library is available */ #undef HAVE_LIBPNG /* Define if JPEG library is available */ #undef HAVE_LIBJPEG /* Define if PDFlib library is available */ #undef HAVE_LIBPDF /* Define if you want to compile a Fortran wrapper for grace_np lib. */ #undef WITH_F77_WRAPPER /* Define if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define if you have Motif. */ #undef HAVE_MOTIF /* Define if Motif library is actually Lesstif. */ #undef HAVE_LESSTIF /* Define if Motif library includes _XmVersionString[] string. */ #undef HAVE__XMVERSIONSTRING /* Define if you have the Xpm library (-lXpm). */ #undef HAVE_XPM /* Define if you have the xpm.h. */ #undef HAVE_XPM_H /* Define if you have the xpm.h header among X11 includes. */ #undef HAVE_X11_XPM_H /* Define if you have (and want to use) libhelp */ #undef WITH_LIBHELP /* Define if you have (and want to use) XmHTML widget */ #undef WITH_XMHTML /* Define if you have (and want to use) editres */ #undef WITH_EDITRES #if (defined(HAVE_MOTIF) && !defined(X_DISPLAY_MISSING)) # define MOTIF_GUI #else # define NONE_GUI #endif /* Define if the print spooling command itself unlinks the temporary file */ #undef PRINT_CMD_UNLINKS /* Define if you want to compile in (a basic) support for debugging */ #undef WITH_DEBUG #if defined(WITH_DEBUG) # define DEBUG #else # define NDEBUG #endif #endif /* __CONFIG_H */ grace-5.1.25/ac-tools/aclocal.m40000644000076500001440000003707112373751453016035 0ustar fnevgenyusersdnl ACX_SAVE_STATE/ACX_RESTORE_STATE dnl Save/restore flags dnl dnl ACX_SAVE_STATE AC_DEFUN(ACX_SAVE_STATE, [ save_CFLAGS=$CFLAGS save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS ]) dnl ACX_RESTORE_STATE AC_DEFUN(ACX_RESTORE_STATE, [ CFLAGS=$save_CFLAGS CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ]) AC_DEFUN(ACX_CHECK_CC_FLAGS, [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK(whether ${CC-cc} accepts $1, ac_$2, [echo 'void f(){}' > conftest.c if test -z "`${CC-cc} $1 -c conftest.c 2>&1`"; then ac_$2=yes else ac_$2=no fi rm -f conftest* ]) if test "$ac_$2" = yes; then : $3 else : $4 fi ]) dnl **** Check for gcc strength-reduce bug **** AC_DEFUN(ACX_GCC_STRENGTH_REDUCE, [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug, AC_TRY_RUN([ int main(void) { static int Array[[3]]; unsigned int B = 3; int i; for(i=0; i #include #define LOG2EA 0.44269504088896340735992 #define ACCURACY "%1.4f" typedef union {unsigned short s[[4]]; double d;} XTYPE; XTYPE X[[]] = { {{0,0,0,0}}, /* Unknown */ {{0x3fdc,0x551d,0x94ae,0x0bf8}}, /* Big endian IEEE */ {{0x0bf8,0x94ae,0x551d,0x3fdc}}, /* Littile endian IEEE */ {{0037742,0124354,0122560,0057703}} /* DEC */ }; int main (void) { int i; char TMPSTR[[1024]]; char LOG2EA_STR[[80]]; i = 0; sprintf(LOG2EA_STR, ACCURACY, LOG2EA); for (i=3; i >= 0; i--) { sprintf(TMPSTR, ACCURACY, X[[i]].d); if (strcmp(TMPSTR, LOG2EA_STR) == 0) { break; } } exit(i); }], ac_cv_c_fpu_arithmetics_type="Unknown", [case "$?" in "1"[)] ac_cv_c_fpu_arithmetics_type="Big endian IEEE" ;; "2"[)] ac_cv_c_fpu_arithmetics_type="Little endian IEEE" ;; "3"[)] ac_cv_c_fpu_arithmetics_type="DEC" ;; esac], ac_cv_c_fpu_arithmetics_type="Unknown") ) case "$ac_cv_c_fpu_arithmetics_type" in "DEC") AC_DEFINE(HAVE_DEC_FPU) ;; "Little endian IEEE") AC_DEFINE(HAVE_LIEEE_FPU) ;; "Big endian IEEE") AC_DEFINE(HAVE_BIEEE_FPU) ;; esac ]) AC_DEFUN(ACX_ANSI_TYPES, [ dnl **** Check which ANSI integer type is 16 bit AC_CACHE_CHECK( "which ANSI integer type is 16 bit", ac_cv_16bit_type, AC_TRY_RUN([ int main(void) { if (sizeof(short)==2) return(0); else if (sizeof(int)==2) return(1); else return(2); }], ac_cv_16bit_type="short", ac_cv_16bit_type="int", ac_cv_16bit_type=)) if test "$ac_cv_16bit_type" = "short" then T1_AA_TYPE16="short" else T1_AA_TYPE16="int" fi dnl **** Check which ANSI integer type is 32 bit AC_CACHE_CHECK( "which ANSI integer type is 32 bit", ac_cv_32bit_type, AC_TRY_RUN([ int main(void) { if (sizeof(int)==4) return(0); else if (sizeof(long)==4) return(1); else return(2); }], ac_cv_32bit_type="int", ac_cv_32bit_type="long", ac_cv_32bit_type=)) if test "$ac_cv_32bit_type" = "int" then T1_AA_TYPE32="int" else T1_AA_TYPE32="long" fi dnl **** Check which ANSI integer type is 64 bit AC_CACHE_CHECK( "which ANSI integer type is 64 bit", ac_cv_64bit_type, AC_TRY_RUN([ int main(void) { if (sizeof(long)==8) return(0); else return(1); }], ac_cv_64bit_type="long", ac_cv_64bit_type="", ac_cv_64bit_type=)) if test "$ac_cv_64bit_type" = "long" then T1_AA_TYPE64="long" else T1_AA_TYPE64= fi ]) dnl **** Check for buggy realloc() AC_DEFUN(ACX_CHECK_REALLOC, [ AC_CACHE_CHECK([whether realloc is buggy], ac_cv_c_realloc_bug, AC_TRY_RUN([ #include #include int main(void) { void *ptr; ptr = NULL; ptr = realloc(ptr, 1); exit(ptr == NULL); }], ac_cv_c_realloc_bug="no", ac_cv_c_realloc_bug="yes", ac_cv_c_realloc_bug="yes") ) if test "$ac_cv_c_realloc_bug" = "yes" then : $1 else : $2 fi ]) dnl ICE_CHECK_DECL (FUNCTION, HEADER-FILE...) dnl ----------------------------------------- dnl dnl If FUNCTION is available, define `HAVE_FUNCTION'. If it is declared dnl in one of the headers named in the whitespace-separated list dnl HEADER_FILE, define `HAVE_FUNCTION_DECL` (in all capitals). dnl AC_DEFUN(ICE_CHECK_DECL, [ changequote(,)dnl ice_tr=`echo $1 | tr '[a-z]' '[A-Z]'` changequote([,])dnl ice_have_tr=HAVE_$ice_tr ice_have_decl_tr=${ice_have_tr}_DECL ice_have_$1=no AC_CHECK_FUNCS($1, ice_have_$1=yes) if test "${ice_have_$1}" = yes; then AC_MSG_CHECKING(for $1 declaration in $2) AC_CACHE_VAL(ice_cv_have_$1_decl, [ ice_cv_have_$1_decl=no changequote(,)dnl ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*' ice_re_word='(^|[^a-zA-Z_0-9_])' changequote([,])dnl for header in $2; do # Check for ordinary declaration AC_EGREP_HEADER([${ice_re_word}$1 *\(], $header, ice_cv_have_$1_decl=yes) if test "$ice_cv_have_$1_decl" = yes; then break fi # Check for "fixed" declaration like "getpid _PARAMS((int))" AC_EGREP_HEADER([${ice_re_word}$1 *$ice_re_params\(\(], $header, ice_cv_have_$1_decl=yes) if test "$ice_cv_have_$1_decl" = yes; then break fi done ]) AC_MSG_RESULT($ice_cv_have_$1_decl) if test "$ice_cv_have_$1_decl" = yes; then AC_DEFINE_UNQUOTED(${ice_have_decl_tr}) fi fi ])dnl dnl ACX_CHECK_MOTIF dnl -------------- AC_DEFUN(ACX_CHECK_MOTIF, [ AC_REQUIRE([AC_PATH_XTRA]) AC_ARG_WITH(motif_library, [ --with-motif-library=OBJ use OBJ as Motif library [[-lXm]]], motif_library="$withval") if test "x$motif_library" = "x" then motif_library=-lXm fi ACX_SAVE_STATE AC_CACHE_CHECK([for a Motif >= $1 compatible API], acx_cv_motif, AC_CACHE_VAL(acx_cv_motif_library, acx_cv_motif_library=$motif_library) LIBS="$acx_cv_motif_library $GUI_LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" AC_TRY_RUN([ #include int main(void) { int vlibn, vincn; vincn = XmVersion; XmRegisterConverters(); vlibn = xmUseVersion; if (vincn < [$1]) { exit(1); } if (vincn != vlibn) { exit(2); } exit(0); } ], acx_cv_motif="yes", acx_cv_motif="no", acx_cv_motif="no" ) ) if test "$acx_cv_motif" = "yes" then AC_DEFINE(HAVE_MOTIF) MOTIF_LIB="$acx_cv_motif_library" $2 dnl **** Check whether Motif is actually Lesstif ICE_CHECK_LESSTIF dnl **** Check whether _XmVersionString[] can be referred to ACX_CHECK_XMVERSIONSTRING else MOTIF_LIB= $3 fi ACX_RESTORE_STATE ])dnl dnl ICE_CHECK_LESSTIF dnl ----------------- dnl dnl Define `HAVE_LESSTIF' if the Motif library is actually a LessTif library dnl AC_DEFUN(ICE_CHECK_LESSTIF, [ AC_MSG_CHECKING(whether the Motif library is actually a LessTif library) AC_CACHE_VAL(ice_cv_have_lesstif, AC_EGREP_CPP(yes, [#include #ifdef LesstifVersion yes #endif ], ice_cv_have_lesstif=yes, ice_cv_have_lesstif=no)) AC_MSG_RESULT($ice_cv_have_lesstif) if test "$ice_cv_have_lesstif" = yes; then AC_DEFINE(HAVE_LESSTIF) fi ])dnl dnl ACX_CHECK_XMVERSIONSTRING dnl -------------- AC_DEFUN(ACX_CHECK_XMVERSIONSTRING, [ AC_CACHE_CHECK([whether _XmVersionString[] can be referred to], acx_cv__xmversionstring, AC_TRY_LINK([#include ], [extern char _XmVersionString[[]]; printf("%s\n", _XmVersionString);], [acx_cv__xmversionstring="yes"], [acx_cv__xmversionstring="no"] ) ) if test "$acx_cv__xmversionstring" = "yes" then AC_DEFINE(HAVE__XMVERSIONSTRING) $1 else : $2 fi ])dnl dnl ACX_CHECK_T1LIB dnl -------------- AC_DEFUN(ACX_CHECK_T1LIB, [ AC_CACHE_CHECK([for T1lib >= $1], acx_cv_t1lib, ACX_SAVE_STATE LIBS="-lt1 -lm $LIBS" AC_TRY_RUN([ #include #include int main(void) { char *vlib; vlib = T1_GetLibIdent(); if (strcmp(vlib, "[$1]") < 0) { exit(1); } exit(0); } ], acx_cv_t1lib="yes", acx_cv_t1lib="no", acx_cv_t1lib="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_t1lib" = "yes" then T1_LIB="-lt1" $2 else T1_LIB= $3 fi ])dnl dnl ACX_CHECK_ZLIB dnl -------------- AC_DEFUN(ACX_CHECK_ZLIB, [ AC_ARG_WITH(zlib_library, [ --with-zlib-library=OBJ use OBJ as ZLIB library [[-lz]]], zlib_library="$withval") if test "x$zlib_library" = "x" then zlib_library=-lz fi AC_CACHE_CHECK([for zlib >= $1], acx_cv_zlib, AC_CACHE_VAL(acx_cv_zlib_library, acx_cv_zlib_library=$zlib_library) ACX_SAVE_STATE LIBS="$acx_cv_zlib_library $LIBS" AC_TRY_RUN([ #include #include int main(void) { char *vlib, *vinc; vlib = zlibVersion(); vinc = ZLIB_VERSION; if (strcmp(vinc, "[$1]") < 0) { exit(1); } if (strcmp(vinc, vlib) != 0) { exit(2); } exit(0); } ], acx_cv_zlib="yes", acx_cv_zlib="no", acx_cv_zlib="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_zlib" = "yes" then Z_LIB="$acx_cv_zlib_library" $2 else Z_LIB= $3 fi ])dnl dnl ACX_CHECK_JPEG dnl -------------- AC_DEFUN(ACX_CHECK_JPEG, [ AC_ARG_WITH(jpeg_library, [ --with-jpeg-library=OBJ use OBJ as JPEG library [[-ljpeg]]], jpeg_library="$withval") if test "x$jpeg_library" = "x" then jpeg_library=-ljpeg fi AC_CACHE_CHECK([for IJG JPEG software >= $1], acx_cv_jpeg, AC_CACHE_VAL(acx_cv_jpeg_library, acx_cv_jpeg_library=$jpeg_library) ACX_SAVE_STATE LIBS="$acx_cv_jpeg_library $LIBS" AC_TRY_RUN([ #include #include int main(void) { int vinc; struct jpeg_compress_struct cinfo; jpeg_create_compress(&cinfo); vinc = JPEG_LIB_VERSION; if (vinc < [$1]) { exit(1); } exit(0); } ], acx_cv_jpeg="yes", acx_cv_jpeg="no", acx_cv_jpeg="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_jpeg" = "yes" then JPEG_LIB=$acx_cv_jpeg_library $2 else JPEG_LIB= $3 fi ])dnl dnl ACX_CHECK_PNG dnl -------------- AC_DEFUN(ACX_CHECK_PNG, [ AC_ARG_WITH(png_library, [ --with-png-library=OBJ use OBJ as PNG library [[-lpng]]], png_library="$withval") if test "x$png_library" = "x" then png_library=-lpng fi AC_CACHE_CHECK([for libpng >= $1], acx_cv_png, AC_CACHE_VAL(acx_cv_png_library, acx_cv_png_library=$png_library) ACX_SAVE_STATE LIBS="$acx_cv_png_library $Z_LIB $LIBS" AC_TRY_RUN([ #include #include int main(void) { char *vlib, *vinc; vlib = png_libpng_ver; vinc = PNG_LIBPNG_VER_STRING; if (strcmp(vinc, "[$1]") < 0) { exit(1); } if (strcmp(vinc, vlib) != 0) { exit(2); } exit(0); } ], acx_cv_png="yes", acx_cv_png="no", acx_cv_png="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_png" = "yes" then PNG_LIB="$acx_cv_png_library" $2 else PNG_LIB= $3 fi ])dnl dnl ACX_CHECK_PDFLIB dnl -------------- AC_DEFUN(ACX_CHECK_PDFLIB, [ AC_ARG_WITH(pdf_library, [ --with-pdf-library=OBJ use OBJ as PDFlib library [[-lpdf]]], pdf_library="$withval") if test "x$pdf_library" = "x" then pdf_library=-lpdf fi AC_CACHE_CHECK([for PDFlib >= $1], acx_cv_pdflib, AC_CACHE_VAL(acx_cv_pdf_library, acx_cv_pdf_library=$pdf_library) ACX_SAVE_STATE LIBS="$acx_cv_pdf_library $JPEG_LIB $PNG_LIB $Z_LIB $LIBS" AC_TRY_RUN([ #include int main(void) { char *vinc; int vlibn, vincn; vlibn = 100*PDF_get_majorversion() + PDF_get_minorversion(); vincn = 100*PDFLIB_MAJORVERSION + PDFLIB_MINORVERSION; vinc = PDFLIB_VERSIONSTRING; if (strcmp(vinc, "[$1]") < 0) { exit(1); } if (vincn != vlibn) { exit(2); } exit(0); } ], acx_cv_pdflib="yes", acx_cv_pdflib="no", acx_cv_pdflib="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_pdflib" = "yes" then PDF_LIB="$acx_cv_pdf_library" $2 else PDF_LIB= $3 fi ])dnl dnl ACX_CHECK_NETCDF dnl -------------- AC_DEFUN(ACX_CHECK_NETCDF, [ AC_ARG_WITH(netcdf_libraries, [ --with-netcdf-libraries=OBJ use OBJ as netCDF libraries [[-lnetcdf]]], netcdf_libraries="$withval") if test "x$netcdf_libraries" = "x" then netcdf_libraries=-lnetcdf fi AC_CACHE_CHECK([for netCDF API version >= $1], acx_cv_netcdf, AC_CACHE_VAL(acx_cv_netcdf_libraries, acx_cv_netcdf_libraries=$netcdf_libraries) ACX_SAVE_STATE LIBS="$acx_cv_netcdf_libraries $LIBS" AC_TRY_RUN([ #include #include int main(void) { char *vlib; vlib = nc_inq_libvers(); if (strcmp(vlib, "[$1]") < 0) { exit(1); } exit(0); } ], acx_cv_netcdf="yes", acx_cv_netcdf="no", acx_cv_netcdf="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_netcdf" = "yes" then NETCDF_LIBS="$acx_cv_netcdf_libraries" $2 else NETCDF_LIBS= $3 fi ])dnl dnl ACX_CHECK_FFTW dnl -------------- AC_DEFUN(ACX_CHECK_FFTW, [ AC_ARG_WITH(fftw_library, [ --with-fftw-library=OBJ use OBJ as FFTW library [[-lfftw]]], fftw_library="$withval") if test "x$fftw_library" = "x" then fftw_library=-lfftw fi AC_CACHE_CHECK([for FFTW library >= $1], acx_cv_fftw, AC_CACHE_VAL(acx_cv_fftw_library, acx_cv_fftw_library=$fftw_library) ACX_SAVE_STATE LIBS="$acx_cv_fftw_library $LIBS" AC_TRY_RUN([ #include #include int main(void) { char *vlib = (char *) fftw_version; if (strcmp(vlib, "[$1]") < 0) { exit(1); } exit(0); } ], acx_cv_fftw="yes", acx_cv_fftw="no", acx_cv_fftw="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_fftw" = "yes" then FFTW_LIB="$acx_cv_fftw_library" $2 else FFTW_LIB= $3 fi ])dnl dnl ACX_CHECK_XMHTML dnl -------------- AC_DEFUN(ACX_CHECK_XMHTML, [ AC_ARG_WITH(xmhtml_library, [ --with-xmhtml-library=OBJ use OBJ as XmHTML library [[-lXmHTML]]], xmhtml_library="$withval") if test "x$xmhtml_library" = "x" then xmhtml_library=-lXmHTML fi AC_CACHE_CHECK([for XmHTML widget >= $1], acx_cv_xmhtml, AC_CACHE_VAL(acx_cv_xmhtml_library, acx_cv_xmhtml_library=$xmhtml_library) ACX_SAVE_STATE LIBS="$acx_cv_xmhtml_library $JPEG_LIB $PNG_LIB $Z_LIB $LIBS" AC_TRY_RUN([ #include int main(void) { int vlib, vinc; vlib = XmHTMLGetVersion(); vinc = XmHTMLVersion; if (vinc < [$1]) { exit(1); } if (vinc != vlib) { exit(2); } exit(0); } ], acx_cv_xmhtml="yes", acx_cv_xmhtml="no", acx_cv_xmhtml="no" ) ACX_RESTORE_STATE ) if test "$acx_cv_xmhtml" = "yes" then XMHTML_LIB="$acx_cv_xmhtml_library" $2 else XMHTML_LIB= $3 fi ])dnl grace-5.1.25/ac-tools/Make.conf.in0000644000076500001440000000317010340161602016276 0ustar fnevgenyusers# No make rules by default .SUFFIXES: # Extension of object files O=@OBJEXT@ # Extension of executables EXE=@EXEEXT@ # Bourn shell SHELL=/bin/sh # Path prefix for installation links PREFIX=@prefix@ # List of subdirectories SUBDIRS=@SUBDIRS@ # Name of executable GRACE=@GRACE@$(EXE) # Location of the Grace home GRACE_HOME=@GRACE_HOME@ # Relocatable that contains alloca() ALLOCA=@ALLOCA@ # Type1 fonts library T1_LIB=@T1_LIB@ # T1 include path T1_INC=@T1_INC@ # T1lib defines (if the bundled version to be used) T1_AA_TYPE16=@T1_AA_TYPE16@ T1_AA_TYPE32=@T1_AA_TYPE32@ T1_AA_TYPE64=@T1_AA_TYPE64@ # Library containing XDR functions XDR_LIB=@XDR_LIB@ # Library containing dll-related functions DL_LIB=@DL_LIB@ # FFTW library FFTW_LIB=@FFTW_LIB@ # netCDF libraries NETCDF_LIBS=@NETCDF_LIBS@ # JPEG library JPEG_LIB=@JPEG_LIB@ # libz library Z_LIB=@Z_LIB@ # PNG library PNG_LIB=@PNG_LIB@ # PDFlib library PDF_LIB=@PDF_LIB@ # Xbae include path XBAE_INC=@XBAE_INC@ # Location of yacc (or its substitution) YACC=@YACC@ # C compiler CC=@CC@ # F77 compiler FC=@FC@ # ar AR=@AR@ # ranlib RANLIB=@RANLIB@ # rm RM=rm -f # soft link LN_S=@LN_S@ # BSD install INSTALL=@INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA=@INSTALL_DATA@ MKINSTALLDIRS=@MKINSTALLDIRS@ # CPP flags CPPFLAGS=@CPPFLAGS@ # C flags CFLAGS0=@CFLAGS@ # GUI flags GUI_FLAGS=@GUI_FLAGS@ # LDFLAGS LDFLAGS=@LDFLAGS@ # Libraries (all but GUI) NOGUI_LIBS=@NOGUI_LIBS@ # GUI libraries GUI_LIBS=@X_LIBS@ @GUI_LIBS@ # Command used to print PRINT_CMD=@PRINT_CMD@ # Editor GRACE_EDITOR=@GRACE_EDITOR@ # HTML help viewer command GRACE_HELPVIEWER=@GRACE_HELPVIEWER@ grace-5.1.25/ac-tools/shtool0000755000076500001440000004750707261364672015443 0ustar fnevgenyusers#!/bin/sh ## ## GNU shtool -- The GNU Portable Shell Tool ## Copyright (c) 1994-2001 Ralf S. Engelschall ## ## See http://www.gnu.org/software/shtool/ for more information. ## See ftp://ftp.gnu.org/gnu/shtool/ for latest version. ## ## Version: 1.5.2 (27-Feb-2001) ## Contents: 3/17 available modules ## ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA, or contact Ralf S. Engelschall . ## ## Notice: Given that you include this file verbatim into your own ## source tree, you are justified in saying that it remains separate ## from your package, and that this way you are simply just using GNU ## shtool. So, in this situation, there is no requirement that your ## package itself is licensed under the GNU General Public License in ## order to take advantage of GNU shtool. ## ## ## Usage: shtool [] [ [] []] ## ## Available commands: ## install Install a program, script or datafile ## mkdir Make one or more directories ## mkshadow Make a shadow tree through symbolic links ## ## Not available commands (because module was not built-in): ## echo Print string with optional construct expansion ## mdate Pretty-print modification time of a file or dir ## table Pretty-print a field-separated list as a table ## prop Display progress with a running propeller ## move Move files with simultaneous substitution ## mkln Make link with calculation of relative paths ## fixperm Fix file permissions inside a source tree ## tarball Roll distribution tarballs ## guessos Simple operating system guesser ## arx Extended archive command ## slo Separate linker options by library class ## scpp Sharing C Pre-Processor ## version Maintain a version information file ## path Deal with program paths ## if [ $# -eq 0 ]; then echo "$0:Error: invalid command line" 1>&2 echo "$0:Hint: run \`$0 -h' for usage" 1>&2 exit 1 fi if [ ".$1" = ".-h" -o ".$1" = ".--help" ]; then echo "This is GNU shtool, version 1.5.2 (27-Feb-2001)" echo "Copyright (c) 1994-2001 Ralf S. Engelschall " echo "Report bugs to " echo '' echo "Usage: shtool [] [ [] []]" echo '' echo 'Available global :' echo ' -v, --version display shtool version information' echo ' -h, --help display shtool usage help page (this one)' echo ' -d, --debug display shell trace information' echo ' -r, --recreate recreate this shtool script via shtoolize' echo '' echo 'Available [] []:' echo ' install [-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g]' echo ' [-e] [ ...] ' echo ' mkdir [-t] [-f] [-p] [-m] [ ...]' echo ' mkshadow [-v] [-t] [-a] ' echo '' echo 'Not available (because module was not built-in):' echo ' echo [-n] [-e] [ ...]' echo ' mdate [-n] [-z] [-s] [-d] [-f] [-o] ' echo ' table [-F] [-w] [-c] [-s] ...' echo ' prop [-p]' echo ' move [-v] [-t] [-e] [-p] ' echo ' mkln [-t] [-f] [-s] [ ...] ' echo ' fixperm [-v] [-t] [ ...]' echo ' tarball [-t] [-v] [-o ] [-c ] [-d ] [-u' echo ' ] [-g ] [-e ] [ ...]' echo ' guessos ' echo ' arx [-t] [-C] [ ...]' echo ' slo [-p] -- -L -l [-L -l ...]' echo ' scpp [-v] [-p] [-f] [-o] [-t] [-M]' echo ' [-D] [-C] [ ...]' echo ' version [-l] [-n] [-p] [-s] [-e]' echo ' [-i] [-d] ' echo ' path [-s] [-r] [-d] [-b] [-m] [-p] [ ...]' echo '' exit 0 fi if [ ".$1" = ".-v" -o ".$1" = ."--version" ]; then echo "GNU shtool 1.5.2 (27-Feb-2001)" exit 0 fi if [ ".$1" = ".-r" -o ".$1" = ."--recreate" ]; then shtoolize -oshtool install mkdir mkshadow exit 0 fi if [ ".$1" = ".-d" -o ".$1" = ."--debug" ]; then shift set -x fi name=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'` case "$name" in install|mkdir|mkshadow ) # implicit tool command selection tool="$name" ;; * ) # explicit tool command selection tool="$1" shift ;; esac arg_spec="" opt_spec="" gen_tmpfile=no ## ## DISPATCH INTO SCRIPT PROLOG ## case $tool in install ) str_tool="install" str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] [ ...] " arg_spec="2+" opt_spec="v.t.c.C.s.m:o:g:e+" opt_v=no opt_t=no opt_c=no opt_C=no opt_s=no opt_m="0755" opt_o="" opt_g="" opt_e="" ;; mkdir ) str_tool="mkdir" str_usage="[-t] [-f] [-p] [-m] [ ...]" arg_spec="1+" opt_spec="t.f.p.m:" opt_t=no opt_f=no opt_p=no opt_m="" ;; mkshadow ) str_tool="mkshadow" str_usage="[-v] [-t] [-a] " arg_spec="2=" opt_spec="v.t.a." opt_v=no opt_t=no opt_a=no ;; -* ) echo "$0:Error: unknown option \`$tool'" 2>&1 echo "$0:Hint: run \`$0 -h' for usage" 2>&1 exit 1 ;; * ) echo "$0:Error: unknown command \`$tool'" 2>&1 echo "$0:Hint: run \`$0 -h' for usage" 2>&1 exit 1 ;; esac ## ## COMMON UTILITY CODE ## # determine name of tool if [ ".$tool" != . ]; then # used inside shtool script toolcmd="$0 $tool" toolcmdhelp="shtool $tool" msgprefix="shtool:$tool" else # used as standalone script toolcmd="$0" toolcmdhelp="sh $0" msgprefix="$str_tool" fi # parse argument specification string eval `echo $arg_spec |\ sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'` # parse option specification string eval `echo h.$opt_spec |\ sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'` # interate over argument line opt_PREV='' while [ $# -gt 0 ]; do # special option stops processing if [ ".$1" = ".--" ]; then shift break fi # determine option and argument opt_ARG_OK=no if [ ".$opt_PREV" != . ]; then # merge previous seen option with argument opt_OPT="$opt_PREV" opt_ARG="$1" opt_ARG_OK=yes opt_PREV='' else # split argument into option and argument case "$1" in -[a-zA-Z0-9]*) eval `echo "x$1" |\ sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \ -e 's/";\(.*\)$/"; opt_ARG="\1"/'` ;; -[a-zA-Z0-9]) opt_OPT=`echo "x$1" | cut -c3-` opt_ARG='' ;; *) break ;; esac fi # eat up option shift # determine whether option needs an argument eval "opt_MODE=\$opt_MODE_${opt_OPT}" if [ ".$opt_ARG" = . -a ".$opt_ARG_OK" != .yes ]; then if [ ".$opt_MODE" = ".:" -o ".$opt_MODE" = ".+" ]; then opt_PREV="$opt_OPT" continue fi fi # process option case $opt_MODE in '.' ) # boolean option eval "opt_${opt_OPT}=yes" ;; ':' ) # option with argument (multiple occurances override) eval "opt_${opt_OPT}=\"\$opt_ARG\"" ;; '+' ) # option with argument (multiple occurances append) eval "opt_${opt_OPT}=\"\$opt_${opt_OPT} \$opt_ARG\"" ;; * ) echo "$msgprefix:Error: unknown option: \`-$opt_OPT'" 1>&2 echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 exit 1 ;; esac done if [ ".$opt_PREV" != . ]; then echo "$msgprefix:Error: missing argument to option \`-$opt_PREV'" 1>&2 echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 exit 1 fi # process help option if [ ".$opt_h" = .yes ]; then echo "Usage: $toolcmdhelp $str_usage" exit 0 fi # complain about incorrect number of arguments case $arg_MODE in '=' ) if [ $# -ne $arg_NUMS ]; then echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 exit 1 fi ;; '+' ) if [ $# -lt $arg_NUMS ]; then echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 exit 1 fi ;; esac # establish a temporary file on request if [ ".$gen_tmpfile" = .yes ]; then if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" elif [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" else tmpdir="/tmp" fi tmpfile="$tmpdir/.shtool.$$" rm -f $tmpfile >/dev/null 2>&1 touch $tmpfile chmod 600 $tmpfile fi ## ## DISPATCH INTO SCRIPT BODY ## case $tool in install ) ## ## install -- Install a program, script or datafile ## Copyright (c) 1997-2001 Ralf S. Engelschall ## Originally written for shtool ## # determine source(s) and destination argc=$# srcs="" while [ $# -gt 1 ]; do srcs="$srcs $1" shift done dstpath="$1" # type check for destination dstisdir=0 if [ -d $dstpath ]; then dstpath=`echo "$dstpath" | sed -e 's:/$::'` dstisdir=1 fi # consistency check for destination if [ $argc -gt 2 -a $dstisdir = 0 ]; then echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2 exit 1 fi # iterate over all source(s) for src in $srcs; do dst=$dstpath # if destination is a directory, append the input filename if [ $dstisdir = 1 ]; then dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'` dst="$dst/$dstfile" fi # check for correct arguments if [ ".$src" = ".$dst" ]; then echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2 continue fi if [ -d "$src" ]; then echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2 continue fi # make a temp file name in the destination directory dsttmp=`echo $dst |\ sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \ -e "s;\$;/#INST@$$#;"` # verbosity if [ ".$opt_v" = .yes ]; then echo "$src -> $dst" 1>&2 fi # copy or move the file name to the temp name # (because we might be not allowed to change the source) if [ ".$opt_C" = .yes ]; then opt_c=yes fi if [ ".$opt_c" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "cp $src $dsttmp" 1>&2 fi cp $src $dsttmp || exit $? else if [ ".$opt_t" = .yes ]; then echo "mv $src $dsttmp" 1>&2 fi mv $src $dsttmp || exit $? fi # adjust the target file if [ ".$opt_e" != . ]; then sed='sed' for e in $opt_e; do sed="$sed -e '$e'" done cp $dsttmp $dsttmp.old eval "$sed <$dsttmp.old >$dsttmp" || exit $? rm -f $dsttmp.old fi if [ ".$opt_s" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "strip $dsttmp" 1>&2 fi strip $dsttmp || exit $? fi if [ ".$opt_o" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chown $opt_o $dsttmp" 1>&2 fi chown $opt_o $dsttmp || exit $? fi if [ ".$opt_g" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chgrp $opt_g $dsttmp" 1>&2 fi chgrp $opt_g $dsttmp || exit $? fi if [ ".$opt_m" != ".-" ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $dsttmp" 1>&2 fi chmod $opt_m $dsttmp || exit $? fi # determine whether to do a quick install # (has to be done _after_ the strip was already done) quick=no if [ ".$opt_C" = .yes ]; then if [ -r $dst ]; then if cmp -s $src $dst; then quick=yes fi fi fi # finally, install the file to the real destination if [ $quick = yes ]; then if [ ".$opt_t" = .yes ]; then echo "rm -f $dsttmp" 1>&2 fi rm -f $dsttmp else if [ ".$opt_t" = .yes ]; then echo "rm -f $dst && mv $dsttmp $dst" 1>&2 fi rm -f $dst && mv $dsttmp $dst fi done ;; mkdir ) ## ## mkdir -- Make one or more directories ## Copyright (c) 1996-2001 Ralf S. Engelschall ## Originally written for public domain by Noah Friedman ## Cleaned up and enhanced for shtool ## errstatus=0 for p in ${1+"$@"}; do # if the directory already exists... if [ -d "$p" ]; then if [ ".$opt_f" = .no -a ".$opt_p" = .no ]; then echo "$msgprefix:Error: directory already exists: $p" 1>&2 errstatus=1 break else continue fi fi # if the directory has to be created... if [ ".$opt_p" = .no ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $p" 1>&2 fi mkdir $p || errstatus=$? else # the smart situation set fnord `echo ":$p" |\ sed -e 's/^:\//%/' \ -e 's/^://' \ -e 's/\// /g' \ -e 's/^%/\//'` shift pathcomp='' for d in ${1+"$@"}; do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp="./$pathcomp" ;; esac if [ ! -d "$pathcomp" ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $pathcomp" 1>&2 fi mkdir $pathcomp || errstatus=$? if [ ".$opt_m" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $pathcomp" 1>&2 fi chmod $opt_m $pathcomp || errstatus=$? fi fi pathcomp="$pathcomp/" done fi done exit $errstatus ;; mkshadow ) ## ## mkshadow -- Make a shadow tree through symbolic links ## Copyright (c) 1998-2001 Ralf S. Engelschall ## Originally written for Apache ## # source and destination directory src=`echo "$1" | sed -e 's:/$::' -e 's:^\./\(.\):\1:'` dst=`echo "$2" | sed -e 's:/$::' -e 's:^\./\(.\):\1:'` # check whether source exists if [ ! -d $src ]; then echo "$msgprefix:Error: source directory not found: \`$src'" 1>&2 exit 1 fi # determine if one of the paths is an absolute path, # because then we have to use an absolute symlink oneisabs=0 case $src in /* ) oneisabs=1 ;; esac case $dst in /* ) oneisabs=1 ;; esac # determine reverse directory for destination directory dstrevdir='' if [ $oneisabs = 0 ]; then # derive reverse path from forward path pwd=`pwd` OIFS="$IFS"; IFS='/' for pe in $dst; do if [ "x$pe" = "x.." ]; then OIFS2="$IFS"; IFS="$DIFS" eval `echo "$pwd" |\ sed -e 's:\([^/]*\)$:; dir="\1":' \ -e 's:^\(.*\)/[^/]*;:pwd="\1";:'\ -e 's:^;:pwd="";:'` dstrevdir="$dir/$dstrevdir" IFS="$OIFS2" else dstrevdir="../$dstrevdir" fi done IFS="$OIFS" else src="`cd $src; pwd`"; fi # create directory tree at destination if [ ! -d $dst ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $dst" 1>&2 fi mkdir $dst fi if [ ".$opt_a" = .yes ]; then DIRS=`cd $src; find . -type d -print |\ sed -e '/^\.$/d' -e 's:^\./::'` else DIRS=`cd $src; find . -type d -print |\ sed -e '/\/CVS/d' -e '/^\.$/d' -e 's:^\./::'` fi for dir in $DIRS; do if [ ".$opt_t" = .yes ]; then echo "mkdir $dst/$dir" 1>&2 fi mkdir $dst/$dir done # fill directory tree with symlinks to files if [ ".$opt_a" = .yes ]; then FILES="`cd $src; find . -depth -print |\ sed -e 's/^\.\///'`" else FILES="`cd $src; find . -depth -print |\ sed -e '/\.o$/d' -e '/\.a$/d' -e '/\.so$/d' \ -e '/\.cvsignore$/d' -e '/\/CVS/d' \ -e '/\/\.#/d' -e '/\.orig$/d' \ -e 's/^\.\///'`" fi for file in $FILES; do # don't use `-type f' above for find because of symlinks if [ -d "$src/$file" ]; then continue fi basename=`echo $file | sed -e 's:^.*/::'` dir=`echo $file | sed -e 's:[^/]*$::' -e 's:/$::' -e 's:$:/:' -e 's:^/$::'` from=`echo "$src/$file" | sed -e 's/^\.\///'` to="$dst/$dir$basename" if [ $oneisabs = 0 ]; then if [ ".$dir" != . ]; then subdir=`echo $dir | sed -e 's:/$::'` # derive reverse path from forward path revdir='' OIFS="$IFS"; IFS='/' for pe in $subdir; do revdir="../$revdir" done IFS="$OIFS" # finalize from from="$revdir$from" fi from="$dstrevdir$from" fi if [ ".$opt_v" = .yes ]; then echo " $to" 1>&2 fi if [ ".$opt_t" = .yes ]; then echo "ln -s $from $to" 1>&2 fi ln -s $from $to done ;; esac exit 0 ##EOF## grace-5.1.25/ac-tools/config.guess0000755000076500001440000013036112373752416016511 0ustar fnevgenyusers#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: grace-5.1.25/ac-tools/install-sh0000644000076500001440000000007606777226426016201 0ustar fnevgenyusers#This dummy file here because AC_CONFIG_AUX_DIR looks for it. grace-5.1.25/ac-tools/configure.in0000644000076500001440000004260612373751570016506 0ustar fnevgenyusersdnl **** Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) AC_INIT(src/main.c) AC_CONFIG_AUX_DIR(ac-tools) AC_CONFIG_HEADER(config.h:ac-tools/config.h.in) AC_PREFIX_DEFAULT("/usr/local") builtin(include, ac-tools/aclocal.m4) AC_SUBST(EXEEXT) AC_SUBST(OBJEXT) AC_SUBST(BATEXT) AC_SUBST(MKINSTALLDIRS) AC_SUBST(GRACE) AC_SUBST(GRACE_HOME) AC_SUBST(GUI_FLAGS) AC_SUBST(FC) AC_SUBST(GUI_LIBS) AC_SUBST(NOGUI_LIBS) AC_SUBST(NETCDF_LIBS) AC_SUBST(XDR_LIB) AC_SUBST(DL_LIB) AC_SUBST(T1_LIB) AC_SUBST(T1_INC) AC_SUBST(FFTW_LIB) AC_SUBST(Z_LIB) AC_SUBST(JPEG_LIB) AC_SUBST(PNG_LIB) AC_SUBST(PDF_LIB) AC_SUBST(XBAE_INC) AC_SUBST(SUBDIRS) AC_SUBST(GRACE_EDITOR) AC_SUBST(GRACE_HELPVIEWER) AC_SUBST(PRINT_CMD) dnl **** Those are for T1lib AC_SUBST(T1_AA_TYPE16) AC_SUBST(T1_AA_TYPE32) AC_SUBST(T1_AA_TYPE64) dnl **** define home dir of Grace if test "x${prefix}" = "xNONE" then GRACE_HOME=${ac_default_prefix}/grace else GRACE_HOME=${prefix}/grace fi AC_ARG_ENABLE(grace-home, [ --enable-grace-home=DIR define Grace home dir [[PREFIX/grace]]], [GRACE_HOME="${enableval}"]) dnl **** option to define config file overriding autodetect AC_ARG_ENABLE(config, [ --enable-config=FILE define configuration FILE to override autodetection (not recommended!)], [CONF_FILE="${enableval}"]) dnl **** define C compiler CC=${CC-gcc} AC_ARG_WITH(cc, [ --with-cc=PROG use PROG as C compiler [[${CC-gcc}]]], [CC="${withval}"]) dnl **** define Fortran compiler FC=${FC-f77} AC_ARG_WITH(f77, [ --with-f77=PROG use PROG as Fortran compiler [[${FC-f77}]]], [FC="${withval}"]) dnl Chance to add include path AC_ARG_WITH(extra-incpath, [ --with-extra-incpath=PATH define extra include path (dir1:dir2:...) [[none]]], [CPPFLAGS="${CPPFLAGS} -I`echo ${withval}|sed 's/:/\ -I/g'`"]) dnl ... and ld path AC_ARG_WITH(extra-ldpath, [ --with-extra-ldpath=PATH define extra ld path (dir1:dir2:...) [[none]]], [LDFLAGS="-L`echo ${withval}|sed 's/:/\ -L/g'` ${LDFLAGS}"; case "${host}" in sparc-sun-solaris*) LDFLAGS="-R:${withval} ${LDFLAGS}";; esac ]) dnl **** use bundled T1lib AC_ARG_WITH(bundled_t1lib, [ --with-bundled-t1lib use bundled T1lib [[no]]], [case "${withval}" in yes) bundled_t1lib=true ;; no) bundled_t1lib=false;; *) AC_MSG_ERROR(bad value ${withval} for --with-bundled-t1lib) ;; esac],[bundled_t1lib=false]) dnl **** use bundled Xbae AC_ARG_WITH(bundled_xbae, [ --with-bundled-xbae use bundled Xbae [[yes]]], [case "${withval}" in yes) bundled_xbae=true ;; no) bundled_xbae=false;; *) AC_MSG_ERROR(bad value ${withval} for --with-bundled-xbae) ;; esac],[bundled_xbae=true]) dnl **** use netcdf AC_ARG_ENABLE(netcdf, [ --enable-netcdf enable support for netCDF [[yes]]], [case "${enableval}" in yes) netcdf=true ;; no) netcdf=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-netcdf) ;; esac],[netcdf=true]) dnl **** use FFTW AC_ARG_WITH(fftw, [ --with-fftw use FFTW library for Fourier transforms [[yes]]], [case "${withval}" in yes) fftw=true ;; no) fftw=false;; *) AC_MSG_ERROR(bad value ${withval} for --with-fftw) ;; esac],[fftw=true]) dnl **** whether to build JPEG driver AC_ARG_ENABLE(jpegdrv, [ --enable-jpegdrv build JPEG driver [[yes]]], [case "${enableval}" in yes) jpegdrv=true ;; no) jpegdrv=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-jpegdrv) ;; esac],[jpegdrv=true]) dnl **** whether to build PNG driver AC_ARG_ENABLE(pngdrv, [ --enable-pngdrv build PNG driver [[yes]]], [case "${enableval}" in yes) pngdrv=true ;; no) pngdrv=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-pngdrv) ;; esac],[pngdrv=true]) dnl **** whether to build PDF driver AC_ARG_ENABLE(pdfdrv, [ --enable-pdfdrv build PDF driver [[yes]]], [case "${enableval}" in yes) pdfdrv=true ;; no) pdfdrv=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-pdfdrv) ;; esac],[pdfdrv=true]) dnl **** check if user wants to compile grace_np lib with support for Fortran AC_ARG_ENABLE(f77_wrapper, [ --enable-f77-wrapper include Fortran wrapper for libgrace_np [[yes]]], [case "${enableval}" in yes) f77_wrapper=true ;; no) f77_wrapper=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-f77-wrapper) ;; esac],[f77_wrapper=true]) dnl **** use editres AC_ARG_ENABLE(editres, [ --enable-editres enable editres support [[yes]]], [case "${enableval}" in yes) editres=true ;; no) editres=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-editres) ;; esac],[editres=true]) dnl **** use libhelp AC_ARG_ENABLE(libhelp, [ --enable-libhelp use libhelp [[no]]], [case "${enableval}" in yes) libhelp=true ;; no) libhelp=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-libhelp) ;; esac],[libhelp=false]) dnl **** use XmHTML AC_ARG_ENABLE(xmhtml, [ --enable-xmhtml use XmHTML widget for on-line help [[yes]]], [case "${enableval}" in yes) xmhtml=true ;; no) xmhtml=false;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-xmhtml) ;; esac],[xmhtml=true]) if test $xmhtml = true && test $libhelp = true then AC_MSG_ERROR(can't use both libhelp and XmHTML) fi dnl **** define editor GRACE_EDITOR="'xterm -e vi'" AC_ARG_WITH(editor, [ --with-editor=COMMAND define editor [["xterm -e vi"]]], [GRACE_EDITOR="'${withval}'"]) dnl **** define help viewer GRACE_HELPVIEWER="'mozilla %s'" AC_ARG_WITH(helpviewer, [ --with-helpviewer=COMMAND define help viewer command [["mozilla %s"]]], [GRACE_HELPVIEWER="'${withval}'"]) dnl **** define print command AC_ARG_WITH(printcmd, [ --with-printcmd=PROG use PROG for printing], [if test "x${withval}" != "x"; then PRINT_CMD="'${withval}'" else PRINT_CMD=NONE fi], [PRINT_CMD=NONE] ) dnl **** check if user wants to compile with debugging support AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [[no]]], [case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac],[debug=false]) dnl **** maintainer mode AC_ARG_ENABLE(maintainer, [ --enable-maintainer enable maintainer's mode [[no]]], [case "${enableval}" in yes) maintainer=true; debug=true ;; no) maintainer=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-maintainer) ;; esac],[maintainer=false]) if test $maintainer = true then AC_DEFINE(WITH_DEBUG) fi dnl Support for Fortran wrapper if test $f77_wrapper = true; then AC_DEFINE(WITH_F77_WRAPPER) fi dnl **** Possibility to override defaults if test "x$CONF_FILE" != "x" then if test -r $CONF_FILE then AC_MSG_RESULT(--> using \`$CONF_FILE' as config file) . $CONF_FILE else AC_MSG_ERROR(--> Can't open file \`$CONF_FILE' for reading!) exit 1 fi else dnl **** Define CFLAGS etc empty to prevent configure from setting them CFLAGS=${CFLAGS-""} FFLAGS=${FFLAGS-""} LDFLAGS=${LDFLAGS-""} OPTIMIZE=${OPTIMIZE-""} DEBUG=${DEBUG-""} fi dnl **** Check for host type AC_CANONICAL_HOST dnl Checks for C compiler AC_PROG_CC AC_ISC_POSIX AC_AIX AC_MINIX if test "x${CFLAGS}" = "x" then if test "x${GCC}" = "xyes" then dnl **** default settings for gcc DEBUG="-g -O2" OPTIMIZE="-O2" CFLAGS="-fno-common -Wall -Wpointer-arith -Wnested-externs" dnl **** check for strength-reduce bug ACX_GCC_STRENGTH_REDUCE(CFLAGS="$CFLAGS -fno-strength-reduce") CFLAGS="$CPU_FLAGS $CFLAGS" else case "${host}" in alpha*-dec-osf4.*) CFLAGS="-std1 -w0" OPTIMIZE="-O2" DEBUG="-g3 -O2" ;; hppa*-hp-hpux*) CFLAGS="-Aa -D_HPUX_SOURCE" OPTIMIZE="-O" DEBUG="-g -O" ;; mips-sgi-irix6.[[4-9]]*) CFLAGS="-w" OPTIMIZE="-O2 -OPT:Olimit=0" DEBUG="-g3 -O2 -OPT:Olimit=0" ;; mips-sgi-irix*) CFLAGS="-fullwarn -woff 835" OPTIMIZE="-O2 -Olimit 3500" ;; rs6000-ibm-aix*) CFLAGS="-D_ALL_SOURCE" OPTIMIZE="-O2" DEBUG="-g -O2" ;; *) CFLAGS="" OPTIMIZE="-O" DEBUG="-g" ;; esac fi fi case $debug in true) CFLAGS="$DEBUG $CFLAGS";; *) CFLAGS="$OPTIMIZE $CFLAGS";; esac case $FC in /*|../*|./*) if test ! -x $FC; then FC=no fi ;; *) AC_CHECK_PROG(fc, $FC, $FC, no) FC=$ac_cv_prog_fc ;; esac if test "${FC}" = "no" then AC_MSG_RESULT(--> Fortran tests won't be compiled) FC=: fi dnl **** Check for some compiler/system characteristics AC_C_CHAR_UNSIGNED AC_CHECK_SIZEOF(char,0) AC_CHECK_SIZEOF(short,0) AC_CHECK_SIZEOF(int,0) AC_CHECK_SIZEOF(long,0) AC_CHECK_SIZEOF(long long,0) AC_CHECK_SIZEOF(float,0) AC_CHECK_SIZEOF(double,0) AC_CHECK_SIZEOF(long double,0) AC_CHECK_SIZEOF(void *,0) dnl **** Check for endianess AC_C_BIGENDIAN dnl **** Checks for FPU arithmetics ACX_CHECK_FPU dnl **** .exe/.obj file extensions AC_EXEEXT AC_OBJEXT OBJEXT=".$OBJEXT" AC_PROG_MAKE_SET dnl **** Checks for programs. AC_CHECK_PROG(AR, ar, ar, NONE) if test "$AR" = "NONE"; then AC_MSG_ERROR(--> Can't find \`ar'!) AC_CACHE_SAVE exit 1 fi AC_PROG_RANLIB AC_PROG_LN_S AC_PROG_YACC AC_PROG_INSTALL case "x$INSTALL" in x/*) ;; *) INSTALL=`pwd`/ac-tools/"shtool install -c" ; esac MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f" if test "x$PRINT_CMD" = "xNONE"; then AC_CHECK_PROG(LP_CMD, lp, 'lp -c', "NONE") if test "${ac_cv_prog_LP_CMD}" = "NONE"; then AC_CHECK_PROG(LPR_CMD, lpr, 'lpr', "NONE") if test "${ac_cv_prog_LPR_CMD}" = "NONE"; then PRINT_CMD= else PRINT_CMD="${ac_cv_prog_LPR_CMD}" fi else PRINT_CMD="${ac_cv_prog_LP_CMD}" fi fi AC_MSG_RESULT(--> Using \"$PRINT_CMD\" to print) dnl **** Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(unistd.h fcntl.h) AC_CHECK_HEADERS(sys/param.h sys/time.h sys/select.h) AC_HEADER_TIME dnl **** math.h and related AC_CHECK_HEADERS(math.h float.h ieeefp.h) dnl **** Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_STRUCT_TM dnl **** Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_ALLOCA AC_CHECK_FUNCS(getcwd gethostname) AC_CHECK_FUNCS(strstr) AC_CHECK_FUNCS(memcpy memmove) AC_CHECK_FUNCS(unlink fcntl) AC_CHECK_FUNCS(popen) AC_CHECK_FUNCS(gettimeofday) AC_CHECK_FUNCS(fnmatch) AC_CHECK_FUNCS(vsnprintf) AC_CHECK_FUNCS(on_exit) AC_CHECK_FUNCS(strerror) if test "$ac_cv_func_strerror" = no; then AC_CACHE_CHECK([for sys_errlist declaration in stdio.h], ac_cv_sys_errlist_decl, AC_EGREP_HEADER(sys_errlist, stdio.h, ac_cv_sys_errlist_decl="yes", ac_cv_sys_errlist_decl="no")) if test "$ac_cv_sys_errlist_decl" = yes; then AC_DEFINE(HAVE_SYS_ERRLIST_DECL) fi fi ICE_CHECK_DECL(drand48, stdlib.h) dnl **** Check for locale AC_CHECK_FUNCS(setlocale) dnl **** Check for buggy realloc() ACX_CHECK_REALLOC(AC_DEFINE(REALLOC_IS_BUGGY)) dnl **** Checks for libm AC_CHECK_LIB(m, sin) dnl **** Those functions are usually found in libm but... ICE_CHECK_DECL(hypot, math.h) ICE_CHECK_DECL(rint, math.h) ICE_CHECK_DECL(cbrt, math.h) ICE_CHECK_DECL(log2, math.h) ICE_CHECK_DECL(asinh, math.h) ICE_CHECK_DECL(acosh, math.h) ICE_CHECK_DECL(atanh, math.h) ICE_CHECK_DECL(lgamma, math.h) dnl **** The machten4 (unix for mac) system does have signgam in libm dnl **** but it is not declared in if test "$ac_cv_func_lgamma" = yes; then AC_CACHE_CHECK([for signgam declaration in math.h], ac_cv_signgam_decl, AC_EGREP_HEADER(signgam, math.h, ac_cv_signgam_decl="yes", ac_cv_signgam_decl="no")) if test "$ac_cv_signgam_decl" = yes; then AC_DEFINE(HAVE_SIGNGAM_DECL) fi fi ICE_CHECK_DECL(erf, math.h) ICE_CHECK_DECL(erfc, math.h) ICE_CHECK_DECL(j0, math.h) ICE_CHECK_DECL(j1, math.h) ICE_CHECK_DECL(jn, math.h) ICE_CHECK_DECL(y0, math.h) ICE_CHECK_DECL(y1, math.h) ICE_CHECK_DECL(yn, math.h) ICE_CHECK_DECL(finite, math.h) dnl **** C9X-compatible isfinite() may be a good replacement for finite() if test "$ac_cv_lib_m_finite" != yes; then ICE_CHECK_DECL(isfinite, math.h) fi ICE_CHECK_DECL(isnan, math.h) dnl **** Check for T1lib installed if test $bundled_t1lib = false then ACX_CHECK_T1LIB(1.3.1, AC_DEFINE(HAVE_LIBT1), bundled_t1lib=true) fi if test $bundled_t1lib = true then dnl **** Use the bundled T1lib AC_MSG_RESULT(--> Bundled version of T1lib will be used) T1_LIB='$(TOP)/T1lib/libt1.a' T1_INC='-I$(TOP)/T1lib/t1lib' t1lib_dir="T1lib" dnl **** Check ANSI types ACX_ANSI_TYPES else AC_MSG_RESULT(--> Good. Seems you have compatible version of T1lib installed) fi dnl **** Check for XDR AC_SEARCH_LIBS(xdrstdio_create, nsl rpc xdr rpclib, XDR_LIB=$mdw_cv_lib_xdrstdio_create, XDR_LIB="NONE") if test "${XDR_LIB}" = "NONE"; then XDR_LIB= AC_MSG_RESULT(--> No XDR library found; grconvert will not be built) else grconvert_dir="grconvert" fi dnl **** Check for dlopen() interface dnl (Linux, SunOS-[4,5], OSF, IRIX, AIX-4, UnixWare, ...) AC_SEARCH_LIBS(dlopen, dl, [DL_LIB=$mdw_cv_lib_dlopen; AC_DEFINE(HAVE_DLOPEN)], DL_LIB="NONE") if test "${DL_LIB}" != "NONE"; then dnl **** Old implementations of dlopen() don't have RTLD_NOW AC_CACHE_CHECK([whether RTLD_NOW is defined in dlfcn.h], ac_cv_rtld_now_in_dlfcn_h, AC_EGREP_CPP(yes, [#include #ifdef RTLD_NOW yes #endif ], ac_cv_rtld_now_in_dlfcn_h="yes"; AC_DEFINE(HAVE_RTLD_NOW), ac_cv_rtld_now_in_dlfcn_h="no") ) fi if test "${DL_LIB}" = "NONE"; then AC_MSG_RESULT(--> Support for dll modules will not be compiled) DL_LIB="" fi if test $netcdf = true then ACX_CHECK_NETCDF(3.0, AC_DEFINE(HAVE_NETCDF), AC_MSG_RESULT(--> support for netCDF is disabled)) fi if test $fftw = true then ACX_CHECK_FFTW(2.1.3, AC_DEFINE(HAVE_FFTW), AC_MSG_RESULT(--> using legacy unoptimized FFT code)) fi dnl **** check for libz - needed for PDF and PNG drivers and XmHTML if test $pngdrv = true || test $pdfdrv = true || test $xmhtml = true then ACX_CHECK_ZLIB(1.0.3) fi dnl **** check for IJG's libjpeg - also, for PDF driver and XmHTML if test $jpegdrv = true || test $pdfdrv = true || test $xmhtml = true then ACX_CHECK_JPEG(61, AC_DEFINE(HAVE_LIBJPEG), AC_MSG_RESULT(--> JPEG backend is disabled)) fi dnl **** check for libpng - needed for PDF and PNG drivers and XmHTML if test $pngdrv = true || test $pdfdrv = true || test $xmhtml = true then ACX_CHECK_PNG(0.9.6, AC_DEFINE(HAVE_LIBPNG), AC_MSG_RESULT(--> PNG backend is disabled)) fi dnl **** check for PDFlib if test $pdfdrv = true then ACX_CHECK_PDFLIB(5.0.0, AC_DEFINE(HAVE_LIBPDF), pdfdrv=false) fi if test $pdfdrv != true; then AC_MSG_RESULT(--> PDF driver is disabled) fi dnl **** TODO: undefine unneeded libraries NOGUI_LIBS="$LIBS" dnl **** Choose a GUI ***** dnl **** default is gui-less GRACE=grace AC_PATH_XTRA if test "$no_x" = yes; then GUI="NONE_GUI" else dnl **** Check for Motif GUI_LIBS="-lXt -lXext -lX11 $X_PRE_LIBS $X_EXTRA_LIBS" ACX_SAVE_STATE LIBS="$GUI_LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" dnl **** use editres case $editres in true) AC_CHECK_LIB(Xmu,_XEditResCheckMessages,GUI_LIBS="-lXmu $GUI_LIBS"; AC_DEFINE(WITH_EDITRES));; *) ;; esac if test "$ac_cv_lib_Xmu__XEditResCheckMessages" != yes; then AC_MSG_RESULT(--> support for EditRes protocol is disabled) fi dnl **** some Motif-2.1 variants need the -lXp library AC_CHECK_LIB(Xp,main,GUI_LIBS="-lXp $GUI_LIBS") dnl **** and some - Xpm lib AC_CHECK_LIB(Xpm,XpmCreatePixmapFromData,GUI_LIBS="-lXpm $GUI_LIBS"; AC_DEFINE(HAVE_XPM)) if test "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = yes; then AC_CHECK_HEADERS(xpm.h X11/xpm.h) fi ACX_RESTORE_STATE ACX_CHECK_MOTIF(1002) if test "$acx_cv_motif" = "no"; then dnl **** only Motif GUI is supported by now: GUI="NONE_GUI" GUI_FLAGS="" GUI_LIBS="" AC_MSG_ERROR(M*tif has not been found) else GUI_LIBS="$MOTIF_LIB $GUI_LIBS" GUI="MOTIF_GUI" GUI_FLAGS="$X_CFLAGS" GRACE=xmgrace dnl **** Special Motif checks xsave_CPPFLAGS="$CPPFLAGS" xsave_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $GUI_FLAGS" LIBS="$X_LIBS $GUI_LIBS $LIBS" dnl **** Check for Xbae widget if test $bundled_xbae = false then AC_CHECK_LIB(Xbae, XbaeCreateMatrix, XBAE_LIB="-lXbae";AC_DEFINE(HAVE_LIBXBAE)) fi if test -z "$XBAE_LIB" then dnl **** Use the bundled Xbae library AC_MSG_RESULT(--> Bundled version of Xbae library will be used) XBAE_LIB='$(TOP)/Xbae/Xbae/libXbae.a' XBAE_INC='-I$(TOP)/Xbae' xbae_dir="Xbae/Xbae" else AC_MSG_RESULT(--> Good. Seems you have compatible version of Xbae installed) fi dnl **** Check for libhelp case $libhelp in true) AC_CHECK_LIB(hlpclient,get_help,LIBHELP_LIB="-lhlpclient"; AC_DEFINE(WITH_LIBHELP));; *) ;; esac dnl **** Check for XmHTML widget if test $xmhtml = true then ACX_CHECK_XMHTML(1105, AC_DEFINE(WITH_XMHTML), xmhtml=false) fi GUI_LIBS="$LIBHELP_LIB $XMHTML_LIB $XBAE_LIB $GUI_LIBS" CPPFLAGS="$xsave_CPPFLAGS" LIBS="$xsave_LIBS" fi fi dnl **** Final list of subdirs SUBDIRS="cephes ${t1lib_dir} ${xbae_dir} src ${grconvert_dir} grace_np fonts templates doc examples auxiliary" dnl **** Create Make.conf AC_OUTPUT(Make.conf:ac-tools/Make.conf.in) grace-5.1.25/auxiliary/0000755000076500001440000000000012467751541014455 5ustar fnevgenyusersgrace-5.1.25/auxiliary/convcal.c0000644000076500001440000007734307050622311016244 0ustar fnevgenyusers/* * convcal : dates conversion utility * * Copyright (c) 1999 Luc Maisonobe * * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * This programs allows you to convert dates between calendar format * and numerical format. * The following command will compile the program : * cc -o convcal convcal.c -lm */ #include #include #include #include #include #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #define EXIT_FAILURE 1 #endif #define REFDATE "-4713-01-01T12:00:00" typedef enum { FMT_iso, FMT_european, FMT_us, FMT_days, FMT_seconds, FMT_nohint } Dates_format; typedef struct { int value; int digits; } Int_token; /* * set of functions to convert julian calendar elements * with negative years to julian day */ static int neg_julian_non_leap (int year) { /* one leap year every four years, leap years : -4713, -4709, ..., -5, -1 */ return (3 - year) & 3; } static long neg_julian_cal_to_jul(int y, int m, int d) { /* day 0 : -4713-01-01 * day 1721423 : -1-12-31 */ return (1461L*(y + 1L))/4L + (m*489)/16 - ((m > 2) ? (neg_julian_non_leap(y) ? 32L : 31L) : 30L) + d + 1721057L; } static int neg_julian_year_estimate(long n) { /* year bounds : 4n - 6887153 <= 1461y <= 4n - 6885693 * lower bound reached 31st December of leap years * upper bound reached 1st January of leap years * the lower bound gives a low estimate of the year */ return (int) ((4L*n - 6887153L)/1461L); } /* * set of functions to convert julian calendar elements * with positive years to julian day */ static int pos_julian_non_leap(int year) { /* one leap year every four years, leap years : 4, 8, ..., 1576, 1580 */ return year & 3; } static long pos_julian_cal_to_jul(int y, int m, int d) { /* day 1721424 : 1-01-01 * day 2299160 : 1582-10-04 */ return (1461L*(y -1L))/4L + (m*489)/16 - ((m > 2) ? (pos_julian_non_leap(y) ? 32L : 31L) : 30L) + d + 1721423L; } static int pos_julian_year_estimate(long n) { /* year bounds : 4n - 6885692 <= 1461y <= 4n - 6884232 * lower bound reached 31st December of leap years * upper bound reached 1st January of leap years * the lower bound gives a low estimate of the year */ int y = (int) ((4L*n - 6885692L)/1461L); /* make sure we stay in the positive model even with our underestimate */ return (y < 1) ? 1 : y; } /* * set of functions to convert gregorian calendar elements to julian day */ static int gregorian_non_leap(int year) { /* one leap year every four years, except for multiple of 100 that * are not also multiple of 400 (so 1600, 1896, 1904, and 2000 are * leap years, but 1700, 1800 and 1900 are non leap years */ return (year & 3) || ((year % 100) == 0 && ((year/100 & 3))); } static long gregorian_cal_to_jul(int y, int m, int d) { long c; /* day 2299161 : 1582-10-15 */ c = (long) ((y - 1)/100); return (1461L*(y - 1))/4 + c/4 - c + (m*489)/16 - ((m > 2) ? (gregorian_non_leap(y) ? 32L : 31L) : 30L) + d + 1721425L; } static int gregorian_year_estimate(long n) { /* * year bounds : 400n - 688570288 <= 146097y <= 400n - 688423712 * lower bound reached on : 1696-12-31, 2096-12-31, 2496-12-31 ... * upper bound reached on : 1904-01-01, 2304-01-01, 2704-01-01 ... * the lower bound gives a low estimate of the year */ return (int) ((400L*n - 688570288L)/146097L); } /* * convert calendar elements to Julian day */ long cal_to_jul(int y, int m, int d) { long n; n = gregorian_cal_to_jul(y, m, d); if (n < 2299161L) { /* the date belongs to julian calendar */ n = (y < 0) ? neg_julian_cal_to_jul(y, m, d) : pos_julian_cal_to_jul(y, m, d); } return n; } /* * convert julian day to calendar elements */ static void jul_to_some_cal(long n, int (*some_non_leap) (int), long (*some_cal_to_jul) (int, int, int), int (*some_year_estimate) (long), int *y, int *m, int *d) { int non_leap, day_of_year, days_until_end_of_year; /* lower estimation of year */ *y = some_year_estimate(n); non_leap = some_non_leap(*y); days_until_end_of_year = (int) (some_cal_to_jul(*y, 12, 31) - n); while (days_until_end_of_year < 0) { /* correction of the estimate */ (*y)++; non_leap = some_non_leap(*y); days_until_end_of_year += non_leap ? 365 : 366; } day_of_year = (non_leap ? 365 : 366) - days_until_end_of_year; /* estimate of the month : one too high only on last days of January */ *m = (16*(day_of_year + (non_leap ? 32 : 31))) / 489; /* day of month */ *d = day_of_year - (*m*489)/16 + ((*m > 2) ? (non_leap ? 32 : 31) : 30); if (*d < 1) { /* no luck, our estimate is false near end of January */ *m = 1; *d += 31; } } /* * convert julian day to calendar elements */ void jul_to_cal(long n, int *y, int *m, int *d) { if (n < 1721424L) { jul_to_some_cal(n, neg_julian_non_leap, neg_julian_cal_to_jul, neg_julian_year_estimate, y, m, d); } else if (n < 2299161L) { jul_to_some_cal(n, pos_julian_non_leap, pos_julian_cal_to_jul, pos_julian_year_estimate, y, m, d); } else { jul_to_some_cal(n, gregorian_non_leap, gregorian_cal_to_jul, gregorian_year_estimate, y, m, d); } } /* * convert julian day and hourly elements to julian day */ double jul_and_time_to_jul(long jul, int hour, int min, double sec) { return ((double) jul) + (((double) (((hour - 12)*60 + min)*60)) + sec)/86400.0; } /* * convert calendar and hourly elements to julian day */ double cal_and_time_to_jul(int y, int m, int d, int hour, int min, double sec) { return jul_and_time_to_jul (cal_to_jul(y, m, d), hour, min, sec); } /* * convert julian day to calendar and hourly elements * rounding_tol allows to say 1999-12-31T23:59:59.501 * should be rounded to 2000-01-01T00:00:00.000 assuming * it is set to 0.5 second. It is wise to set it according * to the display accuracy of seconds. */ void jul_to_cal_and_time(double jday, double rounding_tol, int *y, int *m, int *d, int *hour, int *min, double *sec) { long n; /* find the time of the day */ n = (long) floor(jday + 0.5); *sec = 24.0*(jday + 0.5 - n); *hour = (int) floor(*sec); *sec = 60.0*(*sec - *hour); *min = (int) floor(*sec); *sec = 60.0*(*sec - *min); if (*sec + rounding_tol >= 60.0) { /* we should round to next minute */ *sec = 0.0; *min += 1; if (*min == 60) { *min = 0; *hour += 1; if (*hour == 24) { *hour = 0; n++; } } } /* now find the date */ jul_to_cal(n, y, m, d); } /* * check the existence of given calendar elements * this includes either number of day in the month * and calendars pecularities (year 0 and October 1582) */ static int check_date(int century, int wy, Int_token y, Int_token m, Int_token d, long *jul) { int y_expand, y_check, m_check, d_check; /* expands years written with two digits only */ if (y.value >= 0 && y.value < wy && y.digits <= 2) { y_expand = century + y.value; } else if (y.value >= wy && y.value < 100 && y.digits <= 2) { y_expand = century - 100 + y.value; } else { y_expand = y.value; } if (m.digits > 2 || d.digits > 2) { /* this should be the year instead of either the month or the day */ return EXIT_FAILURE; } *jul = cal_to_jul(y_expand, m.value, d.value); jul_to_cal(*jul, &y_check, &m_check, &d_check); if (y_expand != y_check || m.value != m_check || d.value != d_check) { return EXIT_FAILURE; } else { return EXIT_SUCCESS; } } /* * lexical analyser for float data (knows about fortran exponent * markers, return address of following data) */ int parse_float(const char* s, double *value, const char **after) { int neg_mant, neg_exp, digits, dot_exp, raw_exp; const char *after_dot; /* we skip leading whitespace */ while (isspace(*s)) { s++; } /* sign */ if (*s == '-') { neg_mant = 1; s++; } else { neg_mant = 0; } /* mantissa */ digits = 0; *value = 0.0; while (isdigit(*s)) { *value = *value*10.0 + (*s++ - '0'); digits++; } if (*s == '.') { after_dot = ++s; while (isdigit(*s)) { *value = *value*10.0 + (*s++ - '0'); digits++; } dot_exp = after_dot - s; } else { dot_exp = 0; } if (digits == 0) { /* there should be at least one digit (either before or after dot) */ return EXIT_FAILURE; } /* exponent (d and D are fortran exponent markers) */ raw_exp = 0; if (*s == 'e' || *s == 'E' || *s == 'd' || *s == 'D') { s++; if (*s == '-') { neg_exp = 1; s++; } else { neg_exp = 0; if (*s == '+') { s++; } } while (isdigit(*s)) { raw_exp = raw_exp*10 + (*s++ - '0'); } if (neg_exp) { raw_exp = -raw_exp; } } /* read float */ *value = (neg_mant ? -(*value) : (*value)) * pow (10.0, dot_exp + raw_exp); if (after != NULL) { /* the caller wants to know what follows the float number */ *after = s; } return EXIT_SUCCESS; } /* * lexical analyser for calendar dates * return the number of read elements, or -1 on failure */ static int parse_calendar_date(const char* s, Int_token tab [5], double *sec) { int i, waiting_separator, negative; negative = 0; waiting_separator = 0; i = 0; while (i < 5) { /* loop from year to minute elements : all integers */ switch (*s) { case '\0': /* end of string */ return i; case ' ' : /* repeatable separator */ s++; negative = 0; break; case '/' : case ':' : case '.' : case 'T' : /* non-repeatable separator */ if (waiting_separator) { if ((*s == 'T') && (i != 3)) { /* the T separator is only allowed between date and time (mainly for iso8601) */ return -1; } s++; negative = 0; waiting_separator = 0; } else { return -1; } break; case '-' : /* either separator or minus sign */ s++; if (waiting_separator) { negative = 0; waiting_separator = 0; } else if ((*s >= '0') && (*s <= '9')) { negative = 1; } else { return -1; } break; case '0' : case '1' : case '2' : case '3' : case '4' : case '5' : case '6' : case '7' : case '8' : case '9' : /* digit */ tab[i].value = ((int) *s) - '0'; tab[i].digits = 1; while (isdigit(*++s)) { tab[i].value = tab[i].value*10 + (((int) *s) - '0'); tab[i].digits++; } if (negative) { tab[i].value = -tab[i].value; } i++; negative = 0; waiting_separator = 1; break; default : return -1; } } while (isspace(*s)) { s++; } if (*s == '\0') { return 5; } if ((*s == '/') || (*s == ':') || (*s == '.') || (*s == '-')) { /* this was the seconds separator */ s++; /* seconds are read in float format */ if (parse_float(s, sec, &s) == EXIT_SUCCESS) { while (isspace(*s)) { s++; } if (*s == '\0') { return 6; } } } /* something is wrong */ return -1; } /* * parse a date given either in calendar or numerical format */ int parse_date(const char* s, int century, int wy, Dates_format preferred, double *jul, Dates_format *recognized) { int i, n; int ky, km, kd; static Dates_format trials [] = {FMT_nohint, FMT_iso, FMT_european, FMT_us}; Int_token tab [5]; long j; double sec; const char *after; /* first guess : is it a date in calendar format ? */ n = parse_calendar_date(s, tab, &sec); switch (n) { /* we consider hours, minutes and seconds as optional items */ case -1 : /* parse error */ break; case 3 : tab[3].value = 0; /* adding hours */ tab[3].digits = 1; case 4 : tab[4].value = 0; /* adding minutes */ tab[4].digits = 1; case 5 : sec = 0.0; /* adding seconds */ case 6 : /* we now have a complete date */ /* try the user's choice first */ trials[0] = preferred; for (i = 0; i < 4; i++) { if (trials[i] == FMT_iso) { /* YYYY-MM-DD */ ky = 0; km = 1; kd = 2; } else if (trials[i] == FMT_european) { /* DD/MM/(YY)YY */ ky = 2; km = 1; kd = 0; } else if (trials[i] == FMT_us) { /* MM/DD/(YY)YY */ ky = 2; km = 0; kd = 1; } else { /* the user didn't choose a calendar format */ continue; } if (check_date(century, wy, tab[ky], tab[km], tab[kd], &j) == EXIT_SUCCESS) { *jul = jul_and_time_to_jul(j, tab[3].value, tab[4].value, sec); *recognized = trials[i]; return EXIT_SUCCESS; } } break; default : /* probably a julian date (integer if n == 1, real otherwise) */ break; } /* second guess : is it a date in numerical format ? */ if (parse_float(s, jul, &after) == EXIT_SUCCESS) { while (isspace(*after)) { after++; } if (*after == '\0') { if (preferred == FMT_seconds) { *recognized = FMT_seconds; *jul /= 86400.0; } else { *recognized = FMT_days; } return EXIT_SUCCESS; } } return EXIT_FAILURE; } int convert_and_write(const char *s, int century, int wy, double reference_date, Dates_format input_format, Dates_format output_format) { Dates_format recognized; int y, m, d, hour, min; double jul; double sec; if (parse_date(s, century, wy, input_format, &jul, &recognized) != EXIT_SUCCESS) { return EXIT_FAILURE; } if (recognized == FMT_days || recognized == FMT_seconds) { /* the parsed value is relative to the reference date */ jul += reference_date; } if (output_format == FMT_nohint) { /* choose a format that really convert calendar and numerical */ if ((recognized == FMT_days) || (recognized == FMT_seconds)) { output_format = FMT_iso; } else { output_format = FMT_days; } } switch (output_format) { case FMT_iso : jul_to_cal_and_time(jul, 0.0005, &y, &m, &d, &hour, &min, &sec); fprintf(stdout, "%04d-%02d-%02dT%02d:%02d:%06.3f\n", y, m, d, hour, min, sec); break; case FMT_european : jul_to_cal_and_time(jul, 0.0005, &y, &m, &d, &hour, &min, &sec); fprintf(stdout, "%02d/%02d/%04d %02d:%02d:%06.3f\n", d, m, y, hour, min, sec); break; case FMT_us : jul_to_cal_and_time(jul, 0.0005, &y, &m, &d, &hour, &min, &sec); fprintf(stdout, "%02d/%02d/%04d %02d:%02d:%06.3f\n", m, d, y, hour, min, sec); break; case FMT_days : fprintf(stdout, "%17.8f\n", jul - reference_date); break; case FMT_seconds : fprintf(stdout, "%17.3f\n", 86400.0 * (jul - reference_date)); break; default : fprintf(stderr, "%s:%d: internal error\n", __FILE__, __LINE__); break; } return EXIT_SUCCESS; } int string_equal(const char *c1, const char *c2) { return (strlen(c1) == strlen(c2)) && (strcmp(c1, c2) == 0); } int parse_format(const char *s, Dates_format *f) { if (string_equal(s, "iso")) { *f = FMT_iso; } else if (string_equal(s, "european")) { *f = FMT_european; } else if (string_equal(s, "us")) { *f = FMT_us; } else if (string_equal(s, "days")) { *f = FMT_days; } else if (string_equal(s, "seconds")) { *f = FMT_seconds; } else if (string_equal(s, "nohint")) { *f = FMT_nohint; } else { return EXIT_FAILURE; } return EXIT_SUCCESS; } /* * expand a line buffer */ static void expand_line_buffer(char **adrBuf, int *ptrSize, char **adrPtr) { char *newbuf; int newsize; newsize = *ptrSize + 512; newbuf = (char *) malloc(newsize); if (newbuf == 0) { fprintf(stderr, "Insufficient memory for line"); exit (EXIT_FAILURE); } if (*ptrSize == 0) { /* this is the first time through */ if (adrPtr) { *adrPtr = newbuf; } } else { /* we are expanding an existing line */ strncpy(newbuf, *adrBuf, *ptrSize); if (adrPtr) { *adrPtr += newbuf - *adrBuf; } free(*adrBuf); } *adrBuf = newbuf; *ptrSize = newsize; } /* * help message */ static void usage (FILE *stream, const char *progname) { fprintf (stream, "%s reads the dates either on the command line or in the\n", progname); fprintf (stream, "standard input if the command line contains no date. The following\n"); fprintf (stream, "date formats are supported (hour, minutes and seconds are always optional):\n"); fprintf (stream, "\n"); fprintf (stream, "iso : 1999-12-31T23:59:59.999\n"); fprintf (stream, "european : 31/12/1999 23:59:59.999 or 31/12/99 23:59:59.999\n"); fprintf (stream, "us : 12/31/1999 23:59:59.999 or 12/31/99 23:59:59.999\n"); fprintf (stream, "days : 123456.789\n"); fprintf (stream, "seconds : 123456.789\n"); fprintf (stream, "\n"); fprintf (stream, "The formats are tried in the following order : users's choice,\n"); fprintf (stream, "iso, european and us (there is no ambiguity between calendar\n"); fprintf (stream, "formats and numerical formats and therefore no order is specified\n"); fprintf (stream, "for them). The default user's choice (nohint) does nothing so the\n"); fprintf (stream, "following formats of the list are used ; the main use of user's\n"); fprintf (stream, "choice is to put another format before the other ones. The\n"); fprintf (stream, "separators between various fields can be any characters in the set:\n"); fprintf (stream, "\" :/.-T\". One or more spaces act as one separator, other characters\n"); fprintf (stream, "can not be repeated, the T separator is allowed only between date and\n"); fprintf (stream, "time, mainly for iso8601. So the string \"1999-12 31:23-59\" is allowed\n"); fprintf (stream, "(but not recommended). The '-' character is used both as a\n"); fprintf (stream, "separator (it is traditionally used in iso8601 format) and as the\n"); fprintf (stream, "unary minus (for dates in the far past or for numerical\n"); fprintf (stream, "dates). When the year is between 0 and 99 and is written with two\n"); fprintf (stream, "or less digits, it is mapped to the era beginning at wrap year and\n"); fprintf (stream, "ending at wrap year + 99 as follows :\n"); fprintf (stream, " [wy ; 99] -> [ wrap_year ; 100*(1 + wrap_year/100) - 1 ]\n"); fprintf (stream, " [00 ; wy-1] -> [ 100*(1 + wrap_year/100) ; wrap_year + 99]\n"); fprintf (stream, "so for example if the wrap year is set to 1950 (which is the default\n"); fprintf (stream, "value), then the mapping is :\n"); fprintf (stream, " range [00 ; 49] is mapped to [2000 ; 2049]\n"); fprintf (stream, " range [50 ; 99] is mapped to [1950 ; 1999]\n"); fprintf (stream, "this is reasonably Y2K compliant and is consistent with current use.\n"); fprintf (stream, "Specifying year 1 is still possible using more than two digits as\n"); fprintf (stream, "follows : \"0001-03-04\" is unambiguously March the 4th, year 1, even\n"); fprintf (stream, "if the user's choice is us format. However using two digits only is\n"); fprintf (stream, "not recommended (we introduce a 2050 bug here so this feature\n"); fprintf (stream, "should be removed at some point in the future ;-)\n"); fprintf (stream, "\n"); fprintf (stream, "Numerical dates (days and seconds formats) can be specified using\n"); fprintf (stream, "integral, real or exponential formats (the 'd' and 'D' exponant\n"); fprintf (stream, "markers from fortran are supported in addition to 'e' and 'E').\n"); fprintf (stream, "They are computed according to a customizable reference date.\n"); fprintf (stream, "The default value is given by the REFDATE constant in the source file.\n"); fprintf (stream, "You can change this value as you want before compiling, and you can\n"); fprintf (stream, "change it at will using the -r command line option. The default\n"); fprintf (stream, "value in the distributed file is \"-4713-01-01T12:00:00\", it is a\n"); fprintf (stream, "classical reference for astronomical events (note that the '-' is\n"); fprintf (stream, "used here both as a unary minus and as a separator).\n"); fprintf (stream, "\n"); fprintf (stream, "The program can be used either for Denys's and gregorian\n"); fprintf (stream, "calendars. It does not take into account leap seconds : you can\n"); fprintf (stream, "think it works only in International Atomic Time (TAI) and not in\n"); fprintf (stream, "Coordinated Unified Time (UTC) ... Inexistant dates are detected,\n"); fprintf (stream, "they include year 0, dates between 1582-10-05 and 1582-10-14,\n"); fprintf (stream, "February 29th of non leap years, months below 1 or above 12, ...\n"); fprintf (stream, "\n"); fprintf (stream, "The following command line options are supported. Apart from the -h\n"); fprintf (stream, "flag, all of these options can be used several times, each new\n"); fprintf (stream, "value overriding the preceding one.\n"); fprintf (stream, "\n"); fprintf (stream, "-i format : set user's choice for input format, supported formats are\n"); fprintf (stream, " iso, european, us, days, seconds and nohint.\n"); fprintf (stream, " At the beginning the input format is nohint, which means\n"); fprintf (stream, " the program try to guess the format by itself, if the\n"); fprintf (stream, " user's choice does not allow to parse the date, other\n"); fprintf (stream, " formats are tried\n"); fprintf (stream, "-o format : force output format, supported formats are\n"); fprintf (stream, " iso, european, us, days, seconds and nohint.\n"); fprintf (stream, " At the beginning, the output format is nohint, which means\n"); fprintf (stream, " the program uses days format for dates read in any\n"); fprintf (stream, " calendar format and uses iso8601 for dates read in\n"); fprintf (stream, " numerical format\n"); fprintf (stream, "-r date : set reference date (the date is read using the current\n"); fprintf (stream, " input format) at the beginning the reference is set\n"); fprintf (stream, " according to the REFDATE constant below.\n"); fprintf (stream, "-w year : set the wrap year to year\n"); fprintf (stream, "-h : prints this help message on stderr and exits successfully\n"); exit(0); } /* * driver program */ int main(int argc, char *argv[]) { double reference_date; Dates_format input_format; Dates_format output_format; Dates_format recognized; int century, wy; int i, j, converted; int retval = EXIT_SUCCESS; /* initial values */ century = 2000; wy = 50; if (parse_date(REFDATE, century, wy, FMT_iso, &reference_date, &recognized) != EXIT_SUCCESS) { fprintf(stderr, "%s: unable to parse compiled in reference date (%s) !\n", argv[0], REFDATE); return EXIT_FAILURE; } input_format = FMT_nohint; output_format = FMT_nohint; /* command line parsing */ converted = 0; for (i = 1; i < argc; i = j) { j = i + 1; if (string_equal(argv[i], "-i")) { /* input format */ if (argc < j + 1) { fprintf(stderr, "%s: missing argument for %s flag\n", argv[0], argv[i]); return EXIT_FAILURE; } if (parse_format(argv[j], &input_format) != EXIT_SUCCESS) { fprintf(stderr, "%s: unknown date format \"%s\"\n", argv[0], argv[j]); return EXIT_FAILURE; } ++j; } else if (string_equal(argv[i], "-o")) { /* output format */ if (argc < j + 1) { fprintf(stderr, "%s: missing argument for %s flag\n", argv[0], argv[i]); return EXIT_FAILURE; } if (parse_format(argv[j], &output_format) != EXIT_SUCCESS) { fprintf(stderr, "%s: unknown date format \"%s\"\n", argv[0], argv[j]); return EXIT_FAILURE; } ++j; } else if (string_equal(argv[i], "-r")) { /* reference date */ if (argc < j + 1) { fprintf(stderr, "%s: missing argument for %s flag\n", argv[0], argv[i]); return EXIT_FAILURE; } if (parse_date(argv[j], century, wy, input_format, &reference_date, &recognized) != EXIT_SUCCESS) { fprintf(stderr, "%s: unable to parse reference date (%s)\n", argv[0], REFDATE); return EXIT_FAILURE; } ++j; } else if (string_equal(argv[i], "-w")) { /* wrap year */ if (argc < j + 1) { fprintf(stderr, "%s: missing argument for %s flag\n", argv[0], argv[i]); return EXIT_FAILURE; } century = 100*(1 + atoi(argv[j])/100); wy = atoi(argv[j]) - (century - 100); ++j; } else if (string_equal(argv[i], "-h")) { /* help */ usage(stderr, argv[0]); } else { /* date */ converted = 1; if (convert_and_write (argv[i], century, wy, reference_date, input_format, output_format) != EXIT_SUCCESS) { fprintf(stderr, "%s: unable to parse date (%s)\n", argv[0], argv[i]); retval = EXIT_FAILURE; } } } if (converted == 0) { /* there was no date in the command line : use standard input */ int reading = 1; int num_line = 0; int size = 0; char *line = 0; expand_line_buffer (&line, &size, NULL); while (reading) { /* input lines reading loop */ char *cursor = line + 1; ++num_line; line[0] = ' '; line[1] = '\0'; while (reading != 0 && *(cursor - 1) != '\n') { /* trying to read until end of line */ if (size - (cursor - line) < 2) { /* there is not enough room left */ expand_line_buffer(&line, &size, &cursor); } if (fgets(cursor, size - (cursor - line), stdin) == NULL) { if (cursor == line + 1) { /* we are at end */ reading = 0; } else { /* something went wrong */ fprintf(stderr, "%s: read error on line %d: %s\n", argv[0], num_line, line + 1); retval = EXIT_FAILURE; } } else { /* something has been successfully read */ cursor += strlen(cursor); } } *(cursor - 1) = '\0'; if (reading) { /* converting the date */ if (convert_and_write (line + 1, century, wy, reference_date, input_format, output_format) != EXIT_SUCCESS) { fprintf(stderr, "%s: unable to parse date (%s)\n", argv[0], line + 1); retval = EXIT_FAILURE; } } } } return retval; } grace-5.1.25/auxiliary/Makefile0000644000076500001440000000171507505061045016107 0ustar fnevgenyusers##################################################### # Makefile for auxiliary stuff of Grace # ##################################################### # You should not change anything here. # ##################################################### TOP=.. include $(TOP)/Make.conf AUXILIARIES = README convcal.c magic.grace PROGRAMS = convcal$(EXE) SCRIPTS = fdf2fit all : convcal$(EXE) clean : dummy distclean : clean $(RM) convcal$(EXE) devclean : distclean convcal$(EXE) : convcal.c $(CC) $(CFLAGS0) $(CPPFLAGS) -o $@ convcal.c $(NOGUI_LIBS) install : $(AUXILIARIES) $(PROGRAMS) $(SCRIPTS) $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/auxiliary for i in $(AUXILIARIES); do $(INSTALL_DATA) $$i $(DESTDIR)$(GRACE_HOME)/auxiliary; done for i in $(PROGRAMS); do $(INSTALL_PROGRAM) -s $$i $(DESTDIR)$(GRACE_HOME)/bin; done for i in $(SCRIPTS); do $(INSTALL_PROGRAM) $$i $(DESTDIR)$(GRACE_HOME)/bin; done tests : dummy links : dummy dummy : grace-5.1.25/auxiliary/magic.grace0000644000076500001440000000136306661400534016533 0ustar fnevgenyusers# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE # # ACE/gr binary 0 string \000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003 old ACE/gr binary file >39 byte >0 - version %c # ACE/gr ascii 0 string #\ xvgr\ parameter\ file ACE/gr ascii file 0 string #\ xmgr\ parameter\ file ACE/gr ascii file 0 string #\ ACE/gr\ parameter\ file ACE/gr ascii file # Grace projects 0 string #\ Grace\ project\ file Grace project file >23 string @version\ (version >>32 byte >0 %c >>33 string >\0 \b.%.2s >>35 string >\0 \b.%.2s) # ACE/gr fit description files 0 string #\ ACE/gr\ fit\ description\ ACE/gr fit description file # end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE grace-5.1.25/auxiliary/README0000644000076500001440000000075507120011371015320 0ustar fnevgenyusers Contents of auxiliary: convcal.c - Source for a utility to convert between different date/time formats magic.grace - Section for magic(4) so file(1) would recognize ACE/gr and Grace file types. If it isn't already in your magic number file (probably /etc/magic) you may add it simply by this command: cat magic.grace >> /etc/magic fdf2fit - Script to convert Origin-4 .fdf fit parameter files to Grace format grace-5.1.25/auxiliary/fdf2fit0000755000076500001440000000570607120011263015713 0ustar fnevgenyusers#!/bin/sh exec perl -x $0 ${1+"$@"} #!perl # fdf2fit - script to convert Origin-4 .fdf fit parameter files to ACE/gr's # Version 0.3a # Author Yu. V. Ralchenko ($input_file,$output_file) = @ARGV; # read from STDIN if input file name is '-' $input_file = 'STDIN' if $input_file eq '-'; open (INP,$input_file) or die "Can't open file $input_file: $!\n"; while () { /^Function Name=([^;]+)/i && (($function_name = $1) =~ s/\s+$//) && next; /^Brief Description=([^;]+)/i && (($description = $1) =~ s/\s+$//) && next; /^Number Of Parameters=([^;]+)/i && (($numb_of_pars = $1) =~ s/\s+$//) && next; /^Number Of Independent Variables=(\d+)/i && ($1 > 1) && (print STDERR "\nMore than 1 independent variable!\n\n") && exit; if (s/^Names=(.+)/\1/i) { s/\s+//g; @a=split(/,/); foreach $ind (0..$numb_of_pars-1) { my $cin = 'orig2acegr'.$ind; $var_new{$a[$ind]} = $cin; } next; } elsif (s/^Initial Values=(.+)/\1/i) { s/\(.+?\)|\cM//g; chomp; @a=split(/,/); foreach $ind (0..$numb_of_pars-1) { my $cin = 'orig2acegr'.$ind; $ini_new{$cin} = $a[$ind] if $a[$ind] ne '--'; } next; } elsif (s/^Meanings=(.+)/\1/i) { s/\(.+?\)|\cM//g; chomp; @a=split(/,/); foreach $ind (0..$numb_of_pars-1) { my $cin = 'orig2acegr'.$ind; $mea_new{$cin} = $a[$ind]; } next; } elsif (s/^Lower Bounds=(.+)/\1/i) { s/\(.+?\)|\cM//g; chomp; @a=split(/,/); foreach $ind (0..$numb_of_pars-1) { my $cin = 'orig2acegr'.$ind; $low_new{$cin} = (($a[$ind] =~ /--/) ? '' : $a[$ind]); } next; } elsif (s/^Upper Bounds=(.+)/\1/i) { s/\(.+?\)|\cM//g; chomp; @a=split(/,/); foreach $ind (0..$numb_of_pars-1) { my $cin = 'orig2acegr'.$ind; $upp_new{$cin} = (($a[$ind] =~ /--/) ? '' : $a[$ind]); } next; } elsif (/Formula/i) { while () {last unless /^\s*$/}; tr/\r//; #chomp; s/^y\s*=\s*//i; foreach $key (sort keys %var_new) { s/\b$key\b/$var_new{$key}/ig; } s/orig2acegr/a/g; s/\s+$//; $formula = 'y = '.$_; last; } } if (!defined $output_file) { ($output_file = $input_file) =~ s/\.fdf$/\.fit/i; open (OUT,">$output_file") or die "Can't open file $output_file: $!\n"; $OUT='OUT'; } elsif ($output_file ne '-') { open (OUT,">$output_file") or die "Can't open file $output_file: $!\n"; $OUT='OUT'; } else { $OUT='STDOUT'; } print $OUT "#fit name \"$function_name\"\n"; print $OUT "fit title \"$description\"\n"; print $OUT "fit with $numb_of_pars parameters\n"; print $OUT "fit formula \"$formula\"\n"; foreach $ind (0..$numb_of_pars-1) { $var='a'.$ind; $old='orig2acegr'.$ind; print $OUT "#$var description \"",$mea_new{$old},"\"\n"; print $OUT ($ini_new{$old}?'':'#'),$var," = $ini_new{$old}\n"; print $OUT (($low_new{$old} ? '' : '#'),$var,"min = $low_new{$old}\n"); print $OUT (($upp_new{$old} ? '' : '#'),$var,"max = $upp_new{$old}\n"); print $OUT $var," constraints "; print $OUT (($low_new{$old}=~/^\s*$/ and $upp_new{$old}=~/^\s*$/) ? "off\n" : "on\n"); } exit 0; grace-5.1.25/fonts/0000755000076500001440000000000012467751541013577 5ustar fnevgenyusersgrace-5.1.25/fonts/FontDataBase0000644000076500001440000000153106626627166016022 0ustar fnevgenyusers14 Times-Roman Times-Roman n021003l.pfb Times-Italic Times-Italic n021023l.pfb Times-Bold Times-Bold n021004l.pfb Times-BoldItalic Times-BoldItalic n021024l.pfb Helvetica Helvetica n019003l.pfb Helvetica-Oblique Helvetica-Oblique n019023l.pfb Helvetica-Bold Helvetica-Bold n019004l.pfb Helvetica-BoldOblique Helvetica-BoldOblique n019024l.pfb Courier Courier n022003l.pfb Courier-Oblique Courier-Oblique n022023l.pfb Courier-Bold Courier-Bold n022004l.pfb Courier-BoldOblique Courier-BoldOblique n022024l.pfb Symbol Symbol s050000l.pfb ZapfDingbats ZapfDingbats d050000l.pfb grace-5.1.25/fonts/Makefile0000644000076500001440000000344111716541776015244 0ustar fnevgenyusers##################################################### # Makefile for the fonts directory of Grace # ##################################################### # You should not change anything here. # ##################################################### TOP=.. include $(TOP)/Make.conf FONTDATABASE = FontDataBase FONTS = type1/n021003l.pfb \ type1/n021023l.pfb \ type1/n021004l.pfb \ type1/n021024l.pfb \ type1/n019003l.pfb \ type1/n019023l.pfb \ type1/n019004l.pfb \ type1/n019024l.pfb \ type1/n022003l.pfb \ type1/n022023l.pfb \ type1/n022004l.pfb \ type1/n022024l.pfb \ type1/d050000l.pfb \ type1/s050000l.pfb AFMS = type1/d050000l.afm \ type1/n019003l.afm \ type1/n019004l.afm \ type1/n019023l.afm \ type1/n019024l.afm \ type1/n021003l.afm \ type1/n021004l.afm \ type1/n021023l.afm \ type1/n022003l.afm \ type1/n022023l.afm \ type1/n022004l.afm \ type1/n022024l.afm \ type1/n021024l.afm \ type1/s050000l.afm ENCODINGS = enc/IsoLatin1.enc \ enc/IsoLatin2.enc \ enc/IsoLatin5.enc \ enc/IsoLatin7.enc \ enc/IsoLatin9.enc \ enc/PSLatin1.enc \ enc/PDFDoc.enc \ enc/WinAnsi.enc \ enc/MacRoman.enc \ enc/CP1251.enc \ enc/KOI8-R.enc \ enc/KOI8-U.enc all : dummy tests : dummy clean : dummy distclean : dummy devclean : dummy install : $(FONTS) $(AFMS) $(ENCODINGS) $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/fonts $(INSTALL_DATA) $(FONTDATABASE) $(DESTDIR)$(GRACE_HOME)/fonts $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/fonts/type1 for i in $(FONTS); do $(INSTALL_DATA) $$i $(DESTDIR)$(GRACE_HOME)/fonts/type1; done for i in $(AFMS); do $(INSTALL_DATA) $$i $(DESTDIR)$(GRACE_HOME)/fonts/type1; done $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/fonts/enc for i in $(ENCODINGS); do $(INSTALL_DATA) $$i $(DESTDIR)$(GRACE_HOME)/fonts/enc; done links : dummy dummy : grace-5.1.25/fonts/type1/0000755000076500001440000000000012467751541014641 5ustar fnevgenyusersgrace-5.1.25/fonts/type1/n022023l.pfb0000644000076500001440000012656407056046554016431 0ustar fnevgenyusers€m%!PS-AdobeFont-1.0: NimbusMonL-ReguObli 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Regular Oblique) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Regular) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-ReguObli def /PaintType 0 def /WMode 0 def /FontBBox {-61 -237 774 811} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020947 def currentdict end currentfile eexec €ߤé ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>j …ÆÐÂU¹¥»/ÞÛM9œlñ”ÿ¬#hƒv|hôï„îikg}çì; s„òæs¡õ’·²`i78Ÿ}ÿÛ!ëq_Õ¸OÈ}º2åL,ìjMk³PU^¯òìO„6\ÌÛ³½? Ÿ…†GÝcw%ÂÊùUß„* ¦ ÊD.øîl¿+…„h¤f¬XƒË½8²ƒ4;9 XÀ,‘}‚\ â»`Ÿ£,(× ÀáJKÔñ%ÿbÿ2M£:VüI˜zÇÓª e@ørsÿé£ÚÏþ+&=¹¨WŠÇÕ2ÂïÁƒvôsû²³.öB±œÞÁÖÞƒd7#ãÆßÈ—§{`‰K¼EÉU·³b²j×£ÐtYϳ?œT¤ 6 ¸ý ,Ž“ÔÛˆ‹2\âFÐ- «õ\æFß´_Ë„„äp6/€ÎLÙØE˜ws'DÌÇõfŸwï n¥Zÿ˜ª>êï¹qs¿7‚æ«r]Nž5²–†‰è|Œò[jæ”Q¤sy¬"½&V”*#>R×sè>¡‡NÓ².rû-q¯Æ˜SɵJ%ss®¿MâÚM¥âʈ”êàã-˜ dȯÝzš` V×6¹F»÷«V‡Ãáæy.@ù*zFmãR)@dSuîóùÃÉë”Pm°,úâ‰ñ¦ä--ÎCszãhVK)ƒ­i‡öpb9[Àü¯(z+ q÷2_¡é©€‰y²þñ–¹‹Š r޹+£Ó;Iã 钂,zÌ¥´äÑ Em}ƒÅ~Ë ÿ!B€$÷W*p1|¸ËÈgš—NØŒh8ÆŒšÉU—xONŒ.aò`#¬ôb2˽óÀ¼ÅX;“_éú ¥bš‰'®s˜°÷ç3ÆV§ÉqmÊ›ˆ ŠqQfòúæÕïò‰©²íÎ4¤òCñµ~íçØÂÚ@e£+É*8²EshîÉÃÁr–Ë žžd-seù¦ïCÇÝa¥ý½íúrcJµ™ëfj]Áx° ½«'’^ó¶",AÜãl³‹sh±³ËHŸížS1USóÅûÎ@EG·êSý=:ºlà­"]®ç4½ú;ñØBÆØV ] $à?v'Åë$×ûê;ØW –V€=¾ní_Ü7œ¥,ý…DÊ|S’¾àd‡ëÜ0ÿ;(è&NÇý]§à€e°©sDÎ(ÚQ‚3Xuéø²4zDã=ú¡g#*\>ièŵ‹|rSx'É6õt‡ühu>°Ô¤f–PÛYß1•½3yõdŒþÓ]©R×Ï-íEëD-¿é’q"ë"‹Ýók}º'-`Ò'¨èA/Bµ[âoðoY‡/äÞªº^«IºPŸmQ|n‰sÝÕq×i¼GOÓx¯C`è±ñªuô‡!¹àºX“á]t¬ ×0ÃïpŒ|PG‡H?N¦)p—´m&€ÿŠ¥ z%UcÈYK‘/UtVJqF6ty>H4¯ÑLy‘çý³¦«øRžOÊçœ`Ót)W“ÛÐA쯂MùÀéoEYZRK'ï‡t¨:î½:q4«D5È DÞÿ\º’ A¹ehX¤ƒK<mMá<y/Îí&§*ÜMž9fˆÝµŽ²¹)Î1üŸP¦”k¬Ÿ>ïSÿÛÊ3”¿8ó™°"9Lu ÔgÖK‰¤NUÞ×ÙÆ¸ºk ˜ñ@ÉÀ ´‚ƒV¢Ö¾žÁÕRK ÀmœoË^( 3›^_ÔÝl 5¤égE Ü­g¬ŒŽPŽ`x×~Ò%óa¼†©‹a ?swÛrà-Ã0õI%´Ýà…X×][Š¢Õj1ÜÍ%~én4FïvðÈ‘lLâaB^ÙÑ[XÎÑ(Ú¦Á0fç±R¼û^oª²Q›Š˜òk)ù3¯ˆj §å† ½¡Üa Ûµd…Æ ¨½­îþ]àÚ[u¨¢ž’Q^†çæk²•坸ËeQØÑ=ö UŽy‡æõa&¡=²É H†ÆUNh ¢ }âM­"»þá·ÃÂÔýjXÞxÖ ¦nýî;—Þé@i©ð¢³’¢ó‘ÄÇS'€;SòRÌžð2?„’›¤qlP8Vÿ[NÕI)‚”ùk|—”Œ?ŠpLà—`S=¼lô±ŠûË­žË.½ÇƒŠ”ç²'’Kíq#”Fu¥ÛÊ8‹qŠö‹ß·øê;\Ù‰ê —YȪÞ@8U]y€Îbˆô~ª7Á }3ñ7vð‡yØ-×Àò5½®[²Q¸¢Ô±Ü—â&MÎ^5û­Þ„÷7êjYÂ=dÙcæ5v’3bOv‚ê4ckY\ÍJ¯óˆ}‘hgGW1¿Ë÷ùm^^¾j«ôTÂõêN޳‚‘`R•Èw“Õ÷sš×ìqvá&A<ÔÑ޽}n¾áK¹JÏ(¶†A‘àssè‘÷ŒL ÒèÙ ŠâaOÂc§bÐô4…G:TÃ&øTwÔ£ V^ÑpxG®ÙÈx+„~fŽV\º§+ ©ŸûWÒo¢oõyÃí «oì]¾¨¨ðɾ†•¾ÁËye}‘Öpn*? é’U¹>»®+M ]ö¾b,•,úB®Û÷®dž!Pþ‡Í¿\&…ï6€¿9ØdW:E®&H­—f+ixp1¹¼CQ¸AUìÜ=‘âG]+ÞjR¬ê .˨¡¼KîÃ5¥Ç)cèK—¾tDX¬Ã×*~S±ðŒ•_3íàÜ>s' ø±E™…sÌDu1TÚ÷ôVÿEø—) ©Kó²Ö^±¡Ö¿‰ÔÌCzÚß?n©Ð]‡kÓªVåî„ÛªM­˜$Þ™„½E¯–ûŠVÀ³Ã£ÆXéÖ‘ ÛVUêÖE$—„ šé tœ[c)qoR§­RÛи¢[™•áAfóÛߤC‡›\L%ª)àÜÀ}è»6×nò†ìˆÕ|t¿DÛËOï÷qÓ½‚Èôâ35|HåïãÛž`ïŽ,EµFQßšZË_÷’›ËÎ^ŸjC‘šÒ‡ÛÈá-Ÿž—åÛªY(yZÓ%Ÿ<âs¨pjd<Á†â?]*5Þi&=Œ„¹@³bçÛB¹PÙ»¢ñ[^YçU˜úä=\ñTerw ºšcsñÍÆ´åë¾ “àå†^3?i ŽI/+òRÊÝ[sçÓëµ>u“Sñï<›‹9Â0Ñ:·Š]’îLE/ößÁˆ(  #ƒ/ÐÜ´‚ÎZöÉR¼?~XöA}iw_ÇÀÕ´ªÆ2…w6¬ó+.àò¢Àó³ÊÔƒÆP[éG2/*(0üZµ’}‘ís7~zaX ,Û'îÉÊPa ’0€E̵¡i¶ Tgx¸Ò€ssg`IE¢*¹á^:]³µ£°¯ßßo4$·SmG?—VÊ6”Þä0±«äq(øÒ´aÀQÁ¹™Û°çÑ:ü»¦÷Õ"mT'ñx¡U>ïv§â‹O݇“¢!~òÿŸ™‚éêp­ ¸b×ÃmWÅÿŸ¾ªµ`@þésïóMƒ`ºiL·cZà<ÁÍ| R*zy £@"£õ† Sm•Q½ý¿V ö:¤æ‡@~^HXNh•‘ñµ&q!>C pŒ£M.QϦ³(¡"|µë&;–wF–ÏÈw/…Ý•‰‡$«ói°‡3¡gó÷<"œWWÔÔoÍ›JþÍ =ʾR·2Κ¶"\š4LKøÙo,PÄ',¹ª `o;&BøÈ€àŽ¢‚,Œõ },Ûd“/á•«Õýóm;á#®Ý‹¢ø*Šb¾>ÖÀýľPÕWJäþÌe.pôp;þË5êÞb”þ>¥y8gºmDôL ; $9Ú“À°æhø’ª‰ô5äMdõH3¾³8g Ø ÙAßK1õ‰[íø3ùÄ<·am¸˜Œç/ÓÁ,}I÷@Ï…´vlÓ˜ëƒv•ÑÞÁn$·GZ]ÞˆûòÖ¹OdÈè6+œÌR؉Á 7ªÌ"bGËຶÞ*—é)+àNBæÓBU”ßV“aáùarjöæ‰c²@æçž[ó  ‘Öº@˜tÏØíÃî+ã1gn1¬ø‘Ñ›·‰ÊOYô‚;*óXHÃR»gØßüÑžï`R30ª,VbÞµ^i¬/†6Ÿ«ÌÒHyTæ© ’i¦]ûß)~½)ÃÝbu_(œB¥4õ–Ph_…vê/ÅÒk™¸ãÜÓñþìsùš©†Ž©ºÀµm®,ôm¦ÌÀ«w¾Ï÷¸™’\º."wœÛõ?õ±Èþ•ád™}” ,7^V,†"˜›\ÜÞ4RÀd'CTÕÛ}ZxÔŠÔ¡¹äuÐŽÜ|QÁóϧô<6†£ÂJ~µ‹A™aVO‡âÎ A¬hÖ‚,z¹ýh…õв¬$œ·õ#SÌK j$V/VO»Ç ?ß„«Æà³ûá2ópȦ\O“‘ ¤»€ÕËpÒáÑi#Žo-b¢ó: Äï ç÷S߀¨­””ˆZšÚæÃŠÉÚo°¦–­:P&0%*×µtÈA}4½ ½e!}—{5õÐN¹3áèO\ f¯HMc&](Q{§Kêˆvý£2¨JêæÍ‚¹Já wŒÓ¢«À„•ï1Ÿ­oø­Ò7ÙøF¥ý¿ªŠÈટ€ñæQšKO=ñ¡}=!t"*_ú‹9ò—ÿl¯% jÛÛõRPpÈÓ‚ ûP"?I=€ô˜bëÌÖïéñk*C]`À¡¤S∥=áíÊ}U¢j.äznÖÃüß5î£ß°m+Ìä4X¦sT¤í¶åÅr3ÞO¾Aíî^Çz]úÜ@2©á·D(ÊÐ*‘>@/€c§tÔýÔKŠlŸš÷Å)Âwé]·`ØÆUßý²ƒóŪ‹µ$v¼y{(’éD«¾–ÔÛ“â€Ï}â>¸RçÊ•Mf‚¦ñ¤¾ˆL*¬†=+§?;Tfƒ—¶ÅMÂô10«AHuóÃØy+÷åüM"øwH¿ ·ãÿ·‰p • ×x°•Ú€ä€SD-\>Þ·¥Û„fÿçç«©Ãd£qiõ…ȃ¨7¦œ;Ù3jf~¤ãÛ_Mö¼jU+èÓï 69ìgåÿq‰Yù$wõª‰NÒÑÍ1.Ø.äÙ\IÉfq²?°ásމ*ßþbì=L¾¶Íœ˜Þ$}÷íߢ•6bñè8mu­0„€SiYøæÏ,i7°Ÿ.7È2}kZ¾FÅ4©UþƒÑ3øÂ£Fgñ:‹¨1Ìõ,z!Á=¹/>wµ\â‘ö ±Ñ”£?×1QÃö½-Š ›Þç–½™m-”Û+é†WçQ½îþŠCîE¹ ÆØ”8‡*`zŒª9‰50£åö½u»Fk%W7É9¯óêY¿ô§Û Â¥³kŠ l^XpÇÉA%‰‡~ôO„(KŠSµ·CÎrÒêücÄÌ.[qÜ•‹ZcPË_a\:Eésb.>;iW-ï0:7^Ö ºÈ¡yú ò!¤xþ®85…ûEÿM_;³ÐöØ¿bé½k«<š}8È¥« åzÍ­ËÐ+Ç•-s®÷Ôö'’+ê–¸ýɸypŽyH‘Ç ¤/,ÍhÃôÛ Qxã¦'Ãçv!ÓÎN¾\Ó‡rúÙ'a¥9kgè5"& ø#r‹˜xWÏê®!ò­^©ØA!)“P€‘¤¢Âh¿¡ÆPö«“™^|£øMµWHÆ&ý ÀÚ3%̰¿ ™bE¿QëHf€+®c¶QkŸx¯7ïSoÏ–\9zñ·ùŠød³óô@·¬÷µ•@E6xýlQ”‰8>/G²eìO\ò-9ECØLÔ(eËë4›1Z…Þ²Ñi•°ÈÁÇ&bê)YÄ–/ð“ª^æò‰³Ì°œïïU¹¤(»64À¡ôêuÃØ€alXÈ%6oFJ޾æÉp)ñ_ABu£›‚‹Œ…BéH5PÂÓ‹°ì7Wq( ž¾‡è'ï“å.÷F‰ü³Iiý}êLçRMžïò´k팲à.ü$d.®¡ÊÁëHAà S.ˆåšÈæÃôG4¹—"édÑÐýø\TìQƒn¿´ŽŸ¼9!C,˜Sɺ8¡“cí Úð/ßN|É€ƒ!Í¡´Rp¿üà×Â~xÕÞ΂Ç.Ó†°-WZdGT~̪Á½ÿ3,’˜GXâB%lFVÍÒÄ]FæzìoƒŸ•×N"*n®覆#§ÈÔä-NÒrZyGCöu—óÛŒÍÞEº«ÂW&¸Qà.V4¾iäÙ*#5ƒìo¡ÞËÚJ¶“ õ^s6ϸ¬-+svu´)ŒKÃpËL"¿ì_ïé«)‚÷±S𤱮VŸR7CF§HÝà“6ÊÑõ3Ã×Ïw YH ±P!à#ãV°áºÆÆGÕ6%ÇÃ8SoM @s:²â)†µ“q|aE‹l“¡`'̈jŒýÀñœ4ɦ¹Z„¶¢ãT¼Á¥\Ü·±ë}ÁjÁé9¤mì×çð8ܬV‡Di¢Ù´\¼9‡'äí=µÛ1–_5yËù4î,Me,œÂ€ €ã¨"+L1ÿìûžàz”ÉsF"T¼>æù­‘RJxq)¦?΋E»æ…X&u Xkk#¸þÃ窬•v”šô"ü,‚kÛx®–^ž, ²ïöa .¸cZÊ·ÅÅ휟ü&ÍTÒýL¹ä)NŒì¡álÈãüQ‹ÑoMc®+CWSSˆ4ÍÙØ®}æ$l戓€13cQ¦WŒ0L.T€£ü´:‹îISÚ¼0U‹wÆç¦ðùÿ¥WÅ@zÆ Ý¡ç6÷ È”Uü)4S=°ªpsLŒ& s0ä! " «™ø§t‰/d­¹êc;u”€Pæg'jU¾°ASÜk½¾ ¹)ŠÇ™©C×*ûv›úˆÓ¾¸j~É8Z®Owƒ]ÿä8ž=šÞѰ‹¼+ÖK=t£&Ì¿8àkÐ&‘‘½½œ0G ·yPþ È-ÿÒÞ×Ièrë~¹Ýõ Õ1˜e ×hFÃNNCiô)ª@ÛKòÍÕ 'U‰˜}€÷Å F¥ÑEZfx©J  Ü¶œ<ëõî&ÖSOo‘—•­jE*ó´Ë.¥M`ú€‘2BüQN":¶¡5–A—#’1°PÎÚçeœñhÚêœiÂÍ7ÒT’Îà–íÖ=Çd;fßÞ[Y]ÅO rÂeF™„ÇŠ\ï›ü<_ˆÏ°ÄœÖÊݺgQwÖ’}uÆ+Uªíž<µ*W|ˆ}X<æ wÉTlîZ¹)c3+ùõÅèk„"Xc‡FªPôÞ…]åg¿*·9DíCÛ×ô»Àáb1€|CÜ´{.¶”æþÜûâa”ÒÙ”:þ2ªSõãAê‘S!b—ѸÅ)Z^uQâÞämÂ4|k2zô0¯;¶v¥;Ê›ÑêˆgƒwÜ š†â«mâž>&ýUsÆoµh{©ÀTM‰Ju˜f°fáÛ\fæ àqÌ:Jä—Íäìr?{€vÞÜ™¯W¥I}nÁÉærçOHö£Ϭòiœ®r4ZQÇi4å¼_D>ÀêÞv¨£0f’,ó†ž<&£³NT ÀޤÚ-Þ>ëÁgÚNñ£§mqÓKxЇƒ‹ò¥£ÛvùÀ—Ò2P§ž¦Ä©I&Ú«ÍÍ&Û ŸÓ?0®í—~‹ZÙ(ó–`v(…”)Ü´ìì}£AãZ…µ5˜V2c7ŒÜÑ;þSzIýž¶ß:¯\AëãW!úh3Âþª<ÿÃG~οžùôÚæ/÷1”Ãñç)™È¤“ìnâ•1kX¥Íbÿ«bÈ–å!¶x4/¼áa<÷öwŒ¿R'º PE×C'q•:ËÕÆXd2óúl ‡ºÓ;ˆ¼lÒœK<ÅJ×*#Wª[®²Ë|Üç-È ÉŒb±jÅ LjvA7›vlÝùÛ²üœÛºu[n=êCÖiœ0©š‹1xæÖª“ ƒ^Qt1Ò¼¡«t\þnR­¸+=S£;ÌIt “}•1ìô815œ\“Ë’m´@±9ã\Âài±Ïm–ïh@2ÛQrBî Ær>V Eü‡¥äNQÈ·ùöiÂJÕÏøO°;¡!¸k”#M,œ”ri¯–ü Šx÷6äàJΤL[ªýã`üغjYrL¨a`¥RÕdF#ÓÛE<!kÜ[m4±?½»ÓT“7K3Wï±1Ê¿åz¡ÒÇG+wk62È sƨF(\ÉS¨òŽõ‡³RîIšµ{<àhÚõ]ŒÁw 0™œ¤ýÅÖ{äçæ”ö3KÆ‚‰§C|Íù¦ íp-YhñàO~OéþÉÑ锈\¶$[¼T&ËŽßV‚Žîu¾IEúÁ’¤ë¢\ªOLfÀÜ#M{Av(ÚRvÀ‚`¾Q+$2%l@f㵃æ#éý'ŒÕò…DÐT¹´öˆ¤rŠòÎíÀŽ 1ÖDèãºN/Ž0“kËœjëTã}´kÖO.Ì!3mdß妶ºG3ØÔÝypn¦…¶Ø§@W ûxã˜K±UÃ\i¼Ì´µuî¡Á´)LµFϰ=Ãønü±—~”§qʰá*‚ñÖÇ‘úx墸œÍ§†"«ç[T®êtz¤òmV2™.3r1¤0|r ÔO:ÖÏþc²ÞÓKÓáQùUxkÜ̲Ä'ó¢Yßv7/ÁwTJlB\«ª«1bŠœù×RW¯ðÕ˜C˜œð×G7Z&ÜžÒ›f¬!GÚh0lHÂHLpÊ’ó< ’òvõêõê0‚¨¡ËÛf3Â÷;i‘P`¬”ŸÍRÃd˜¢«·}ñë3ã¸F§Á»Üï]îÊNð­% êœ'Qá>÷h®‘ϦÁDÛ¬Ã9çn±->éÊš§}'”ðÄ34[[¦2õD+½ÉGŸ£®Ó§Ôe«qX謗ö‹¼6Ž#PEÁŽüÊÞé‡xØ”Ùcù(»ò¹R5wŠr‘N³p~§‚”³£¼JËþ‡Ç*¡Ù‚ä¸"ð{\­ôÓçî=§e;ìo 5* 3%.Ðcrt––Ôaî‹õ#Õ‘¬ŠÇcåûýÒN–u–œTvǥ኿šíŸ#6Õ0;Ó!tí\“>Œ…Ö'.¢R¦÷⪱tà–_sàï‰éºû¼ø±õª Ñ,bru<jþÂ쟕A¸uxtÖòàa«¾‹)(w$c³ÄA„&Åuº¢ÎãÅì)²ýîwÁOß”’ôŠV®€ª3ãp°7Ë(§7?ˆ "¯7&¶jŸÓ³Pt¨eÉ}3R¬ÁV™,Þ&­!É‚ÇÜþ¶“»@ú_,ëòåbìŸeoóèò}ªœuÛ©Fý˜+µŽ ü I¤­ŒÖhI?ËW<„žÅG@I¦“ËëÔךÇQPGÌ4zšupÉaóìûW¹õ:¹ÀÖ°\ŒW <Õ…U¤U$Éð‘¸ø¤"òàéå§·ÿiñÎüä/¢v¼Õ„Qm&k¦ƒ^œ©é…OPÇÙ,®Ö¬¯uŠ|{åœ;ª‚¿2¶‘¬£èë­"ß¾XjTæäÞ,Øk1…F»¥ƒK,nH8TzgæQ–NC˜Œ€6“ˆK»Xœ©çë¼ L ¨ Ùäh(­…–ýÊ9ÿ¦Âz5“7ùs€ž²éãÔ;1FòQfgæÿëšÈÉZ{}MíUî5aÇ ²Öšº–g>9ã9?åô‹«ŠÖàí‰ùlÿ$è µÜ¬I…ÄÐ3ä—Á$A;"'£&M¦‹Ãù5x¢ÐG\ŸC˧ӠÕi{E2­,9K q6áákAyIuè>ò²áÃ?‡ÏrÃ%ÁÀ¹/Ó‰ Íö R£%–v;ßÍʃzÜo&ñ)²<£/œÓ›3æEv— óÀ[ÊKþ/æÅg‹„Ö””ñÛ©þF®jþªòEÀyÇ·VžbgÄ+E”5¡ÑÎÆe³ätÀ¬ÈÝék ‘gÈÌ}™Ä$Y-t\D(uUëG4 /Ƽ![g‚?iú”œµì˜]z¨|šÁù¼È™Ll¼æ{} "¨:]æºÔ¯h„É_Fº%> #7ã‘n<¯²ìVÅBYþsîSä+;Ì¡Ïd/°Å«Õ)µhé­ÿ†[Á$ ׊Ò&íˆKí<([L°ã’ž€\gñ1eÙ …vKpÞjµ«iñ½¥Ãb4˜ÇfÏl%àe¬-Ž¥Ïž-Dâ· }Ü{’ GÄqߊ ‡Ñk[ب0ìS"<ãÉnõnUAg†êXÖ–ì5~ÅW™CŒk¿+ ÕÉî“"wFeN×>¥¹Ê¶¬[Æøœ‡þÊù­½9ä8ô;ÓžàB/”è°–«8È‹Âá CAÁ£]Ó¦Ûä è<ŽÓ£yÍ€Ôù¼0A»D¹3ÚÊ|]D'®”¡v‚Ÿ$µ–‹q41Ë‹Ùõ0€ƒ,kxLê›QV‡ñ!˜>¹ÙÉ΋Ôú;ìH¯æNd;{ØmƒƒÐu!þ] ’¾LÌ‘68$¶†˜Ž|ƒ®¿@m-¨ÙRÐú“'ô­Å_í¿¿§nÊè¡vÅGšáFq%·ë<ž|[;ÀÄp”cFß'Žá÷ãÿtxÃ^àY)Kò\{•™;æ .‰wv•*~Ða:\¬¯§1ÿÆ3ʶ)c†í¬y`&Îë#[ŸzTà°Å(gŠa+¯ä ¨ÂÚŽ¬^ß:5®PsZM* ƒNÆÁ) Xÿ4‚ðàyñdzVo#6ê¤[÷+ψV™ˆÛ_eÔÁå›PóAäZ‰–V µ"„~Õg´œÕ(Oå_†Rͬhò²_jQíÝIA.e ÒÛÈD·^-÷—vÙùzLoxnÿ뇣ûk‘+¶YÜ+ÌmPšŸ½è}è× …Q¶ÌûwC—ŠÙ’ÑM+…Ê.‡2a8Ûl$Y?~ÍoHo…Ñfk⬦ÇDî6"5$fJ'·sùê&à¤Íýp™B¤B˜¸$•ë›w¼ˆ}Àï”}ÝÇË<ükHð`Ûð2¡„æÂ&ÙÔG¥¤XË£%Õ~Lm•&'cç»ö ÊG>·fàèâ>£~г8{žTho>Wv]@gå!¼úå#”"w“Ç7Á’€?/-© µSâªùN¹’«ãXÁ\ĪŠDMõ³çÍ“|ð>¬c4'1´XŸ“èä—§LÞV†õ)éI^×Hu(Œõ2qÛ“¤QO€±yüòU‰p éE(ó®QæhÝmÙèQRtV, ·]ÞÈþŸã°õž€(ˆ§¤ñ›)•J1/gÞ½j¡ÊØV½ÑB~žþ‰•oâP Üj ¸ v*мgX2CñÝ€ t›%~ßH¼ªe?ÖØ¹™[¥ê>é/Í6|`kŠÜíÎg±lYl] “¬_¡]LÆÎ÷§Š’^™õSÖ­%Á»ªÒJ¶bÖ90©v1š9ÎäMÉED«G€BT@øÄ™¸`µÓâh—AE~ØC±q»ª„à„§Øà{™y&uÕÎe4ÜmÛ`Ýéj6tötbïx_ÿtûX‚°yÞãé(ñlá§ u.¢_¯P­÷›¾}ëÒù¿lÛ¶ðxÊùy†D&€¨üA!†oœèl8]ãN0عvŠ6Ùî÷šK8î™Ë¹¤Ó#VLV™n%•u>§ïhH4ý 8»#2°&°F1jS' –Ú².™N‘&/°=ÿºÖ#ñh’(@˜„ùº00‡ {ë,~âÞÅu±73·’AøÒ:”KÕMÔ¼›C-ÐÇØ9ômhoúÓš¯½l7âHÎHò>FMSy´®ÐÕ ZAW~nËu'šÓê}À«'±‹QÜüiñ]rTnlQŸ4%­_ˆý-«éð—ùÖ v³ Œ×w±ì½?ÚºYrê¦<‡é¬z+?þ×Ô1ÎÅ{ŠX‘‚üe¤pFa©ãQüËÇ1Z‡æ/eÒNëœî—œnÛÏ\*Û’nÈÌ›ÿãö¸£¬ Ñcê)8sü™è꣛Ç]Û:9ÐØð¼8ôÖt¹¾éö÷¾Mœ‹Ù~ÿ3 ·f¡ÿÒ[;ážJ Ì…’nÕ1Œ–ZÒðåo”3±$|m[ríóÔ£àgJP›ó è¥æi×+—‡”h<¨¸^4iêË|0÷fmµà¸éžÏ¼¹dk)ä¤ÎVTÊ„ ­ÖEßÅB%½¸H^9̘ËÃóЧ—åß ”R¢AŒf6½-_k$4ZϦ_N}½-  ÁwjI ´FlP›µ¼}f'”lMË8¢p˜·µ¾í³ºù'qã†DYwe 7b³P»SiÜÌ9Tnd8ýƒ“ݳc DsðmŸ¹ä"ä5Vl9kýÍVßê#!qÍŽò˜xh雄Yœ&ÔÇØÃ»FeÍÐrâ17*¨²&‹?ìˆx¶B ¨)¼ù•Ü àgîkŽDÒ†Qº:íÑv?,ûŽÄnž)ÞSCW– ÅTk¸¶Î¡Â·ŸºDùx=V¡lUå‰ÜØïkÆb2ôzG9s£V y¸2X·6\–‘ÝþG±n번(¹Fû]oáÌjüN¡÷bé 3 @3‚ä*ôˆ[:¤µäßÉ¥N Oû÷Ân±zO´»“#D4ÿðUIçX{ 7:Ë>1A‹úôØ“ÆFk”'=50j¹ª±>1Ú5AÁs>*~M¥¸'gÓ0„ªz|HŒÜ§«ïwÑžB´DŠ»ÓFé¼(мE@À¡ÏпFżtT²^'éj>l¿g‹þÊѱ›NB9Š! Õgì5û]\ ðîì哘 V°áÑL)/p³àI˜OˆÈ´w•jÓ J¢"VÚ¬ Ähµ¹ù"¼ÅòJwÿ5.,b9A¬¢U iÄ›‡Ñîo/— ðñ¥jÄB?Âäì€9¬œ!-†OAŒ»’”½X‚(¬уppQ#Áðü?¯æáRœ+ÐÝèh©ëå}ýü\£Ð€¿â{€ªÖ¶õÅÀñ±îÓÅR‘œš.— J'ù{f`~Ï´{©^òµ|);/jcœ ÙÏÍSW".[ßÇ<ùLùµËêðsé¿%>0à›P4W¿$Ztn£ÿаÃLðˆ½¼›§Ô ¤ŽShkY‹í³D™$ë¥]±±°âº(WXÉžþ8­Î÷±‚ûÐÐb*n¤—¤çÀ })š'eïØÞ7l!M¢EÀJwì„¡Qÿ“=aÇŠ·ˆiãnRnØU«Cö(œ"&¸ï¿x+7JÁ倶éc@=m QÛ…Xòæ ”vÆÞ]HaX\õΕ2ò 2–Ÿ9/¿ÒB¬Ô~ SÔgÐþFV¹Rl…#H°Cw7Ë)ìùµJ^R6Ý 4œ4–ó«¥iê ãCö×q! 9Ü“-Æ^ÎùEuÆçiÍöÈÈ6œuz%wÚSQ‡ýRf™‘|þ Ô8§Xr{0kÇ—•Gæ‹”è~Ø aKÛÆIÔiïkNN=Òêë_€²/åvÎÒVITgÇjuõ‰Faà?:Q!¥«ãâÅH³ÝÉö$Éx‰ª÷û„±XÀí¥gFÆ5'°Â½eO+ˆ¦C1m©W+ã˜à©’B³îùQ#ª¿Ã¬‚·´ö‘!šУíÕÀNc¬½çB5"S%aô·p(A\47ãF¾rŠAU–«tÁÕ›Ø2Ž9¨P˘[4µµ-ÑÑTùìI³®¿Ërv.M*ÏxYß¿&%Ãcí„›)Œm"käæê*¶j(}+©*lœa*_„›<³Â_Kâ†öäõçäÉë¼hª^ð dijWBáٽѣv’RN0ä´Ãß„HÎÆásæ]éÙ™óú»?Ovk¸lÉ…”m â‡vs†Í„aa[W Ú_^ú#ÑŽƒÃ%îDNÁf¡£-˜¦Z -DlÓý›’E ŠI»5)ݬ}•¯èêó7wû²eþ¸¤¹¯òÎÎÿôšûÜöÄt—Ó´H†mpï(Øä±~|é_CöK´ŒJs넲fPö->Q™ÖM°µ¸weиPý]ÈHЖäÇæÆ;*>ÏÀ™Íq>Éew¨oUÓHa|zI‰ †êâWµíR±(ɱžá)åþd˜Ì—kÞ–|Μ¯udnZ[2¿êÙ6*R"=tiC¢ÐœSlú÷Ž`ÂÒð·c­r.:zçeùò½írxQ õêA¦ŸŒ*-r ;$´¾aÈ?ûïúâ`¦ýDå>BàÑ“ô!¨§ág»eð×ñÝ‟£Íý“Ìi±È28ÁÀÁØç«°.Þ—<ŠX`72¾9±Ã—¶“‡oëCŒ(ŽòãÜÑ‚¥Ï»©”©Jø1,Ø#BüÍ|$ ¬¨…áž]}cÜ/SKª%êj_5d†åú ãÆ˜ Ÿ^Ž™ç®[•¬B—u—EOÉQä1šä±Ýɰ} ˜7, •«¦˜ZM¾mÆ3Oª0¬æ‰ÓjòœíÅŠf’¨³°¥t.lì/i²U¼í§bÞç/^º˜‰ÿMˆªÁAˆ¡BIyÉžD‰ ”î ML­ÜzÅöy«ˆIÌ@¥y«ØïãªNâ÷£Â€l±ñy@¾s˜I‚ÑÀT3©½eŽ£ÈÚš¸tu»V\”¶óþ?wRí›–Ì*{¸Ï¿$‡ º8ÒÌ÷†ž“cÜ ÙO¬®Õ’+2Möþƒç³Oâš¼­b´ŸûËÛµZÂt>:ƒ†o­«oðq¼;€#ù¶ÿHÛ ±ÉÆt‡ÃRÔ •á‰,‹f­lœböøµ±± ¨rZ´[D7µ¨Š–¯1xØVÖnb†ŠƒÚdäýÞ½ÖYêe 2Ï/ˆ³ýlyÈøšÆÐðίÙZÑFæ® 9ç Åäÿ¦Ö©q'ÊZÏçÑùF¨×¶v!ÖSAó,¦ï°:å¬Ss£‚ÀD¢vö´= ª® äÃÌqì&7"\ËûÔ^«’¿95|W[At(5…±+’d8¬r¯­ªÒÐú,ÊrŒŽ†½?ç]G¸¾¹j±;T€÷£Õtµ>@Âòí}’!Ù‡|}Œìó”ä?ÏŒNý³‹ƒ”™ÿ\ÙjF«OÛFó];H¹WÀ“(“Ï'9é6â‰ûG:×öñ­+Ñì6I†¤ÌT} ¡ûÁ §¶8¦uHUtEaÛ4]ÚhAQFªÆ2ߣGi¶í}}F”é,¿ôï±kUIY.…è'üb<ñ»æ¡<¿dèxᢡY”‹U)·^D¥ðå ñŒ ñÎ3øÉYÔÉŒíZI*æõm¥{I]¬±0f ÎûOØ0–Z¾+éh˜Á·£œ»ãç] ÿïlÔ\çm£¾‘UFþŠS ପš·<~S;KÇrFWªd›“ˆ·‘ªÅê¿ÍÝê,ÆzЮ›ã}ù­@ce8îU¨?`éà&ÆO½‹" ëFætJRά¢RèTHøMŽ ƒÇ“­ ¹ >è;sþü3eÇ)ãÇ8‰KŒÂø®àÌ‹Nuï´LÄÆÎõÈuKÇέ‹ñt·[ÊNˆ¾•ž2!jÓ?gOI« £TÏ9iña•Ó“Nˆ1®|§ëãÅ$Ot>f¨.ÑlÀŸ”êzYkŘƒ3«O}¿*¼åCä¶IÑoHaYh=ö?ˆ›!ëú·~Œlüyø›¥õð¿|<ÎÇ¿;|1•Ϻiã ñ ö‘cÉÚ{«ÀšX§ú‘½G›¿vû€hc ÂÒ’m5†žÂÏ<ðMOÆÚïîíÿU“æ4’ð)â®KJ,P•Nú'’ó+I4§hø’E¡âð4â¹ó˜3ñ³1¡š8kªÏ쌒›¦¶|Ø’+¼Àì9vW][Ðq|kñ#ê6Øý7úw¦ñõª„Ô­%²Áw¦âù·O;X)úïÔ÷ œéxZ¦ýæ†rUJo)Ø¿þŽÙ Xi¬9šŠÓ¢h™+ƒ(tݶ)XQ³2\ÙíýIèê‰YÛ“}«ƒÇwò¤&¹g¯XˆÃ:65·dzÖºD",•Ž¥a”_x~ô w‰²B­}ÂïY,¿A<_ÈžÃÉëîKÆ7 ®3¶^ã ì¾a „~ÅV¢yȱÃä`‚-30­ýr½iõL¨HÂ*2ló°›I 5®å‘yá`NÎu»è§®Š÷êœ72-(íôÈ“ýê`~pá¶öaIG2aêïâ›àU}*’ÏÁP^‹CKÃhÎ̪¼tø¦>sû¼ë?@RF*©ŠSñˆÉêã9úºt¯ÖÖG(,Ùÿrd½Qx<µ¦Å¥÷†qõàG mrRúF_J#ÇÏ™ Lîñ;ßÃ[ta¦SÓ¬&ÜP¥•l‘•¤õ"cˆà•=Ý¯Š˜ð;ß `,»ª «žÌßrU–*3.Ô8bä˜ý¤ˆ\dÿ_›H ¤‡ÅŽx”=ö&æâÆžìˆ6ßÏ©ëõ‰8¨xóç’轌]mõW¥Ø Û®©ÆK¥¯Ž!¾f€ü]²$"" wn› ¿Ò·!/‹ñ쌌w²#À^µåñÏ«ÒÐ7ôº•â̓ôQvcðž0ˆƒõÚR(ø0EÿA!M"s²þ ÕàU{¡˜Ã]~÷–TDW`Ë¡Óð^¤¹Xå?ß#½±PÕ§\G9Psؘ 5ãö}³%žNç:‡ÏÙo„â!yes•6JQæ5üUGŒœ¿šê·ØÂ_!Ïä·õ˜TâIhƒ; ÖM3*fmú*?×¢k«}£‚{Þ €‡ñ„Ób+b=~ ¼2¤öê.m¤P©êÓmSýìƒáþó/O®Å°hm† Ó†gñŠLFGõ—„„Ùã 7¾ ®„À…F¿’œfž“fY &'¬˜7º§WWõ°¨.ŠéÏ!“8¿ÉGDâýãøqB¬aR†ä¬çòit: Tc¯S}”#̨YØÉ›|np¾á¶˜X›éáÈéX*Nõꔵö( É ¼*bÅ6àl¸¾u&§‰™mt­˜€£8¦þ’(lÍÉË@~³¹]œŸJÿ8³p‡¬X,{d§ÃÒ +Ýb鮳Ê…ÄÏ2?Ú1‹‘÷Ü &f0÷DNÐhµ\F—U#f¨,.t<ì5=QÜõ@;;tÓy¸.¶œC€í@#ž¨k.\†‘âg̵p^;|zñ”`Tµú_ÅOкCfn{«ÒÉ…Ÿ9>ÔŸq#íûdŠ=aRòÁ~CŒ c‰h¬´û?wöO5Šàc‚ Ó?È\@äÙ~Ñì-¡Âáê%‹ñ¯gZ™_`¿£r"¹Â³%À+¸S}+'ÝC¡)ÇèÿBu{:É´Gp=8!ÚR ‹;³èÇ)[wkDí(øc¸áø ÑÚîŠ%Ð& ÀMÓ!ˆ .Ìy(-×±w*œ»Êpi ®‹ÇyŽnÇ7Q‰¶ÏΊ‡XInY¸Zûz3ÊK[@X`<ñúy¥hV´=SŽžÎ}™¯§;Wã6OU6DÞí´b4ï¬kn~Ìc”/ z׬ð¤\©RcÞ”9¨€ÖµÅ!M) T×þ›.b~ôž›YüLJEèxä[FÀ¦H•]>¨É5=”ù.ÉcölóÏ:Rk§ß<ÔÊiï«·8ž3qh’¤‡+ÒÁàˆšB×ÿ´šØN¹Åtæ°'¼uào_”½7x¾˜^† 'ä@ˆÃË*ëÄ Üã¨ôz•HH^al@šÄÝAä¶¢)Б²SëhðnCQŪnÊMnHÖª hÚïÊ7v¿¨µ!Q‚C-Vƒ)Mg§ÁývÅ"3|¤ICìr€^“_^zåÁƒdá³gAéd|MÁöŠXìD Y ýÏS/`7€÷„ ~õÂMcâ`@ÍßøßÖ]‡¹Cõ Þ„ rï3ýйˆœ‚ùOa æ„" óžÇ²2ËøħDó1YC.‚pÇÊw䀤Лj‡aXŠ1ãùŠw»Ö*:#Ñ@Ó”s¿|»¢3ó{ž¶@UŠ#è‚NŽb1VŠ›vô‰q˜§ ù1?JÄ'ØÃ§*¿ð+ýWÓ /µÃ›…¯T Ú Ü'¨[1iN{aùÙ´vW"Ù-v‚FU ‡r“óÿnÙ¤˜Ö¦">a‰ I¬û`&XgΔdùÃ,YéOvAÇ?´ún²7øí”W™W' oÖ@½•Cæƒò7,Í{`ªÒià:rÅÍ·2±(A¦ÝÒ¼Ÿ}9ôŽ&=Ô®ŽLᦆó  ,¿H—†1Í$5fâ.hø×9q4£S£t^O¬´Ö¥ý„Ôóus÷ù# S’gÔx k %{÷­”È?A ,}Ò£æä±NÚ/Û³k:>D•ö&°î¡FÒ*Ã4WôOAgYgm*fì+rm/@«ò%3ŸôÔç¦.R3Ýò çÈl ÍÕaóÞÐ5/ÆlowA¥B_Jœ×x¾V¹I,ÙQÁ a‰¢ÏÒærYe¡=ésvZMšZKàaZø¿j^¯øDh¸I•M¾®ÝWÄ5x‹3À!µ ±„Pj ïtc0¼˜éÈšª/€C¾¶¦‚š‹Œö{/=zôØ»à†%LÞSv^2&º/•®€cdŸŸ”½•A¯Š‡0s5fcˆ┄¤ÿ¼F±€±bÂ;À´ÀÝLůã@$1²ÈÚ†ÃKÉܤâÕ††ˆ§x|Ñ »šÊ·iÞ‰‘<ØúµÈEê*¡NT·¨ÎGO!>Ï-âèˆ =îÉ7Rh·–íuúž.Üžn„Vœ»Ž9ªí¿Tf0tUSÖOùROìjrdøŒë~Ã5Ž’;9$t㤈eVD1f)ˆþ§hÎUZ°ÚH½Rj„°Ë´X@fÁd #Ùxiï Mpá!¦ãÈ2'IX®×¢³ `(ò!Z¤N†ØRýÆ}¥Ìºyî¨cºÉíÂS[f«TìMD9Þ¸ÑûÁt?öÉ*†Y稒Õå8rêQïQ>‡Âš'éǹÏ7D…Ò÷:å…PM›Ì¾¿.9Í;“Ü£úÃíÝ‚0Wfà Œò–utlZw¿ãÍuÒ\ñ“Þšð*ø÷¦èøKT€XÍÓÆ™ŽÑ4cúÞs‘&Ø=<âÇ •S‚ƒ.2Á ËÌ£X5˜[š“øã° ‹æé$(x|GÓ€Šw¸ñ×nkö¡øÛQ€à8 Ð680{׿\í¿dN‘ȬSy’‹d€öã½îG,º˜S á±¥ò>¯2½V…æCn«9]¤wǦ׈#w³üAi6ƒWØ€Î|‡^•fÛ}›5Ñîf¾GnØLÀ"0'h)ÂÀ ˜ðQP.‚РŝØÃß)=¡PŠÄÒXf¾îk½Z#œ-ÍÔðhƒ“côvÝ͆ÌþÂÎ<2CáHËæ¸Q:|禑 f© p‰åÌÔ6‹ïÿ+ÏŽ‘‹þ š²©Ê{¹ óÀ°`úö^‰åI1X—ÈFD–Ìmê~:ô?úL2`gX,¢U±Ò虚:À@+½‚L;µ$[‚¤Ru€{Âó e^¢ùh²—ùŒ6‘’Ȭ¢kë§ÜEûÑ0^.úM¾Su(ˆî-oÈÀ§Uç)4´µmÓ½¯qq¤£ÇvWg5$’¿©§u…u ·ó‡Th;péâ“Ëײ;¦+×9z»„×í².öÃõ‹>êöVãat~Ð@ 2SÑÏ?[^…ø?ÿ0«'xÊä7f|eÈý@Mk’©ž§jù®6cP¶k8G mʃ.¨ÜJný¶tµ¢eR§ÇÕL'™ÇÔà<$öa©mã© wJiˆ4vV4Lû `e«"Gk°Ÿ¶™(À_'d¯d<þðQm‡ýæÛù;®()±vËP{¹˜5à­^UÂøyŒ“ú5ë?ïÏ£=!°0T†Ò{”HÖŽ+ZeÇB½)™Ú Ã®ÖDG¹Ìg÷¯3¶:úò_<÷ï†eèùR(Œ¤¶‘Óièñ“\ÚD¡€¦vu`Âí?/Ì8¶½y‘Ô |Vmi Š%¾!*€‡ÑŒÎÿ$f#æSv1ò’'ÖGT² øNTw™æ‘ÊG7€ÝÕjæ Í•=Q3Ñ5ãÕ#pxþë·7Tîc<þ#Šêcù™ž2…lv‡ ìNYÒ¡ŒSIb~3jµã[!‚(`:KRŸ^èIÕq¸8}ÎŽŸéO­ï‹¨;Ý$_Œ'Á.Ѩ«-m`&„,îtNçªÆ¶ú̪9Ûõ³±Ôs9óúV&q©Ï}Þiþùñ›>ŠFMÓP£­m$sµ*J‡hùvr>nGÀ`EÄe‘¾òl@x›s31¨@Õš¾Ó˜hø ìª!Ä ½ Ã&цÿùë7hÜ2¬xù’€Ð{_òãTþÕEŸ¥ú=Cÿ!à'`/Û%"ðI»T_ôÚ`$0øN4ƒs/1HÞÐ8¯º&Õ´ŸÀ-é€ ‰N’9ÈŽàíä1ø6—Ë ã´—G4såqGÉ¡©&s $”þ¢a^÷+Û “3‡¨’7wî¿bÒlÕƒîd;ã#‚yÀÜ–dÓjãÍöF¹]íÇ×ý(éPxñ-ü d³'·CÅH £QzZ~Ùcíukzç~$Fºp,Ôân-ÍÁ¨¶—‹[^éð1ò Ç-JëÅveˆ|ŒydŸ¾”$ý±MvîøÆ÷£ á®Ë“ÒáKÞGô¡Ð^Õ±2ª9‘’ÒL“—jηïYzu#§;,ÇaxT“Ðîܵ¯é_<kACŠ…Éb°pÞ+ЖËc¸GÈu9ˆ £Óü\4^ ’×¾wÆÏô”†ýÚxLÅVR+×uœN¤$ZA¼ó‡[ãÚâÚþúé Í+ll v/ˆÀÅÀPS\IÛC`üá]:Ž0íZtúùÇ{Š«Ýo½Z¯%]² ×ò¹")kVû^,É\¼_z`D‹€D­Îs¬ý‰awñ÷­/e4Ü:×U«+¨q&Ö<¢éÄAß e½Ýkä”åkPW¥aÑãÓŽ’ËsÁFZö¹À÷"Y¼¤HGÑcžN/sdµeH¿ÐëF1k$IŸjGm6Ö·ÀÁlòé¡$j;[!çÈúÆâ;‚ã:wƒäó@éniÉDN}z’†6ÏІG]ñࢄd8{²U¹øD™´Z®ÜÈKÅÕ«6t`»¶QíçµßȤcÚ´ypm(\Oc™zÈÎó\­Qûåõ»?¦Ú,:¿+>’U4—(ÖÚ YÁïdDS—Bîš#¥r Ï“wôøMêBZ0ûc-J-Ñ»ü:„üI›1V¶u¹Ê<ʽ‡ý²I|gúpë¤:ݶϖ0èö«Ÿ„áÝm³1K4·÷ª;¾Õ½Ç^Êߨêáž³‡¡üXo0ÛiY&vKT ‰ñØT°ÿ†RŠÙR<¯V7)IŒ¯²ôÕ &pÈ4é0?4ˆ$¤›ù;„ý<ñ žï}I”È0$6ÀyD—Fõ¸º+¬¼ÀŠø¡_JMóïûr'Ê—ü!ÒÐ5l“9 tœ¾—P¸!ñ§¼úâȼmš'øDØ­ƒ y«ðêØìÔêr„mþíWó<ÎL¾É˜¶)LI3¾³u¹¥= ù&þn‰ç"Ç,²Ý¿±kïzOPßx3XLj½})I3;")¿t¢(†Š³¥Ãè|xÃð–!™H ¼­¾õ;ÝäXIÚ…zOØ[–h/Þ¸S„’îJúøLQ Ÿ]W'g=ˆPp0?ÛG܉‡N:ž|‰AßÝ­TœsuÔ®ÜÎ.RÁ>Q0´ o|ZúñùîƒÚˆ× G2iÊ( jÞ…0 “ؤö´û]õ'G áÆ>Îòïª9jf€¦tj 8-•)µŽ|愳šÀp†¼´|"0ßC¾Ù¹*aÉ‚jïž¡E-‘0\ðTÔ¼ ­ÉÆü¿©?­Rè¡•hIuWÀ‡>½ÏaÌÝ"5JOV!«3±2\™ ›h…ƒ1îxuÊÈUù…c±Nùá êñ•¯ÿ”rŠé5E48Ú³Q#Ðâi”uˆMÚüs¥Ì’54(ØYeõº†òaÏü±â›BŸ—ipÔ-æ¯lKy+C„*ï$Hâ*XÓªwCÇ$êÐhþÑJÁò*O äx{ÈsŽï$wWe€NÓçH×.‰ÉKo1 çHúê1î$hYÊ÷¡ê̵²FÈ~«w*ÅÓxe‘ÝÂÆhxãvl² ÄŸc'C§úì¾¾žZ<µ}­ò¿õï/Î#¥b˜£ ./êï½iùÛ™&pf“Ëúöö ‹µçÐ¥ 3’¹ƒó£¨FÍJô1éðüÓ¥±c‡U-UÚêh=6%tª ç¿Ší{«M|žlqÁ”k×<BáéTaQ¸S¿®1næ§Þä˜÷qè ÙCYiÁdr^ô àƒóìnÂ{ŽÓþ2ê^jÃlK¹¬^Ñ¡x3—ñ¹)“E®±òQüę}Èb´F=U#¹²\[i÷ ¶²œüñì«‚'ë>Ñø‚é àqM@>Ä;{TIF¶£Ýn¶Aï¿ï Eèsç9€%±ËpeDSoŒI©hÀÕ˜à˜êÜ–¢ø¶ýniGd/“â$% kY*Õ 1{iÀù@G8jEåëÉPOåTQ ²ßšAÔºØ_ÈL‗ƒOÎôœŒ í,êȉñX˨Àpx€Lÿ7̈ ª(}ƒ‚ƒúAÿ<òò,²DÁqä] l"ÑšRNx ìׯcBw‚è^F=Ë37‰ô–4ŒÿˆZšBP‹CœqƾQ©3‹â’QªyNÜgÞìc7úcÊ›ÁÉ÷^s:J‘†Fç¼—’Hlµ¤¼ÅøOº½þ3Œ7’%J>ê=ˆ<,G¹bYÜÌ‹ÓÜ©ÌÈ2ÀœEbBkþ0)¥bÃîÌÜÔ\òeíœ=傈N¹‹:÷4±³'jÄC8N¾s=Î9ÿÌ•ƒ9GCDù…Pá8ùlEd´”åHGÈS½Ò7âsõ^B£¾Ñ­¡RW+{FZX¿çÛ&6\ñmq¿ b¹üðKøÐ…švôn{Wòu~Üã2Ó!;Š0¬,ç×y~ïo0I°€]ú|£m2¢ ˜˜XIzfÎrI“Ýy3 Õ\ ZZµßvKåÀAú„&=`NS {kIbEÛ¾éjcñ—™æW1(h“fþ‹ ­¤‹P[†­ã`"ºÔ'O%B¶5öÇ”KïütÞñÖYŒ´ï.­çëí·ÙºýÏ&5S1PZ8m×9Ÿ¹™S]`aê¼aÝvï>´WDo)лnÂü «¬ ²z<<'¼'§c6Р¦ÔVÚgM•šJþBŽ"¥¿È9ìÕnuö—†Ú €„ØfdMÙ‹`hp­à›Ù¿=ÖÕР:âmÏRTžEŸá³¨wk,„hÁL¨±¹§¯)VPz;pZ×Z î§þ’s5<ìÐ{¸V4eìì ëBô?ãfNµó$U9²P‹Í^ÕvØNÓýc}Woy'#D¯°%Z‘ÿÆ”ŽN5ˆgéüv©¯úÊëÿဌ2¢»°Ûï?EÿÇ?"(ñ.˜G‹'9}EgížqòéîËÃþa÷I?ßYFh©å/“ܤ»Ò-î£9æí£Öëîß•áÊIÈ9,YÚgdˆ.ãf?b¥Zå ~‘´þ­þ P¬Ì]uñ¥ðÅ6¥ñIßÐâG~@*°ÏŸgÕ¤Bbœ…“í]%§.Û—F°/+YÌœÜ´ÉØ´QœŒa~V›C/ ö‰rª‡œ§ÞFáÙ^# ORÏeT6]ô£ä ž/Óy´}£#= ïûέ‹ª8ˆOjiþ\7>8®Ð$€ò¾|ͯ…‘m' IwŸç9Ä}4„TÏò.³þÌF•x˜µd4d„TEÂ\ }h\°B¯]X‚Ct¬éƆx›Ê–¬`.´1{ÖR)>æ(•udaì†¢Ä Bèð:†A õŽUCe é‘PF-µîð æÕ[ ×ì[®¢NÓé }j‰v"¹j‘:íÝ;h%M‰ì÷gÎŽ'ùfBj‹O±´S„ý Ö>(„·ŠdoDÈ~î"ÈYk€…GŸuö==—¢œƒý }¿Óíðÿë}Ø *2’߿֭ñ³>…°0ž>ÀXüÙ"±2_îqïòÛ¼.hÛRÕà$ÀGÏe{¶—4dšJ¶< ôrÃïÍ‚Ý<¦è ¶;Ïè ÆÅÆ;vþhÀ²††{áBOÃI7‹o2=–XoÂ1]”ž}€*C øÒðΙò¢7l)SïÄCUäÑ/B,ž%Äß8Þ£4ÛÈ›TÆwi×qΉhûv²}c΢IgƒL$ÔÌm¨„ÙSÚ?›:ø“‹Æ¿& q•l ~jU ê/]€åË똬v vîu´pÜ ª;£ö<(vë(õ;´ÖVQz¡±ú1@<Ê>,¤ì̓‡MœüмLÀùšúV„‹ò"4 ÅVÁK4‚H-Î] nñ«R*¡+ÝÓ9~2~Á'HüHB›— .$áÞ | ',k§;7Ó 0ÅÞZGÙiUË]í:Ù)¨´-(9Xõ‘ “ayíÛ'‰Cßá|qmeùe‰v“Ió¶j·¸ÀÌÅžöˆt^ǘe§oœ-F`ÌûM_A+£7*'Ë^e÷YW\ñJX™¨Óð9¬ÛØ93—BŠÀÕq|Ry…5HÈ…›é‘Ol¹Ætñé©d†WµN^RulO˜-÷NsöäÔÇ$ ûtbþÉäWÀAJ–äuƾ,Cp–ü ÉBé•©­§‰«c{d‡Ó-ûhæ.‘ÂÎ~h1ìøÈ$ˆ_§a‰Íû3Z¡´ Åžã7ßN_Ì’ _ÀÖ Üò ­côÿ^å¢ó¯2+§x!)å¥ãí—¼<ÝÝEnsœ§‚í¿KR6ŽœsK x°¸ãø²Ýx(b·C‡±ïx(Ì={˜üõ˜¸ïÞM›ÅDHHÉ€)ÈTó®FFÝ­ŒæzR<£–Ë€óÈØìˆ0S/·ùbO|®Œmøu33Þ²Šªªô†«Œ“%SÎi{ˆ^qìŽ@ǃ\ÕÕš,i]¹åÿ›w¡[ ¦7ÿ%°[“žEϾIQé4B³.\-áMvßÕ„PˆÞd[u*aØ/±uZ kh;ÅŸó.ºÿ÷쨵@ð“~ïóƒ®WF,{ó±þ$Òºþ„QRpàcÎ<€ßI5ä ö.´õJñjmC)—+›ßûFhŽÔ™(B’&ÊÙö|cmuË·°ŠV1•kâœÉï¨×\žIÈÂÅO@. {û¤ PÊâÒÆóêX3ŸcüL•xvóì,€läLøâŸv`lÕƒonZ.B<ב¾Í?/%e}þÙ6oÄ­ù h\ÎJV˜åþ×T+‘?¼²ˆÝô=²±íŒË€½É 2]øßT|HQÊ`oMdwA&„[Ey7xx'¨ž7Í k±‘fšÈK†êá2Ñwóü8I€ó¦ä9°H£ kœï óò×2ªq½iÖÐøÉÑFÙÚgtuY¨³„?a´B~xGjØðøŠk €`ÿ}Ö†P?—-lBýlœ:Ã×.7Qò.D¥rîÈîDɪzú¼Óìë˜ý@höäÞÐæÎÅ#É M¨ÖJ&ù¼% 0$’J².r"—ˆ‹…¹Á/ý*tL½?›%ÁËéˆÙËNwÙ .ý\*RƒU£_|Jð9ÇÑ×V0Yg¸GÔ¬»&=I’Àâ¢b¹þâÑõ+å±^g¼R"sDî‘,Œ·>_GÎÕOÒbww»wªÏ>æ²'û/©+î‡â,Ò€.w2&HÚ Æ$êˆT0_tnSošŽa Jv$„&ÛcÉ1šˆ£úDœ?¸¬”ÆÝÖûëSJñ_tönøÑN÷}Š](L‚ÝZ`SΪ`kù%™#‚^ôïú¨Øxe*L¯.ä>ÒkóYhl‡o†Á®•nRvÍÓÄ)½LÃùeM,vÝAG÷FúŸ£y±mùkþ86Ô?Ì Ž• '7I¬¤¬1>P×-òVk‹)úœœ ÐH‡Cr*vd6wgƒ¹9ÿ €Z‹X!MOO{œ<Ît†®¢¼È•ìÞ€•½åy1Š“ò0ðV¤!·3ÄY4«»4¤¤¶¾ú¡ÝÒ¤šlDCƒ3ÍÔŒ…ÍiŠÚóý†vsžD@ ˜µu¾5vùlúTÔK¤uU¸Ñ#t¸m_¥ô¾/õ˜™›H²úó!.ÕK.7ZtÏhѰåÍ'›¼‹ºïiJ‰¦Ä?Q»N„ªß4én›?Ì«L¾¢t?Ù­÷¯28wq„Zù™e¦M£5ï¤6¾6>3§CÁÀ&s òfÝDú™Œš—丫•.ìþ*Àœ‚Ùô—SqÌÂ}£xì„1“1MŠzp|!ü•T~å¶Ñ·Èí…¾½?K› jxå÷߈É1ãó–—9tENY4 ¥¿êÞKdc&ÆÖ£Y;‚ˆâ}°kò¨~ï&Š¡±5¬ µ,þS¼ÈŒìVW½GöÈá¦$‘ahOÙJÂyõzO›½ Tj‡áG¶*È`‘i¢›Š¢:ªÐdæ¿,èðÅL ~@3X%¶,júØ ×­)òÎÊØ+Þ8—SvŒ}:¹xí³ÄZŒkw%ê…–¨íP¸5_¸Rû‰fGáb#±æR:eû¨Ñþ%Os q‡h«Ÿ÷qJŒ6; ݧ<ÓøùÀÍ; €ló·»ú·>FúÊÒHë©zæŽÉM=yªì g…Žÿ©×·ù—«ÒÎZª‡åIž…€ÄhÆ>êS»Gå^Ì[¢§£ÅG-ð4°"ôUÆÿ—X:)â¨qc{ ƒÖ–µ†éCغ¤Q¥íÍ嫚XUÚÈßÛå‚«ÙEæ™­ÄE)ˆ©…ž9É÷”ÅÄæ)—[z ÙІºZÖcw4VbÚ}¤ØþøGî]Wã¬T¹( •|ÁÉDçÿeä¦AÍ&ÆÀñ6§YPvKiÊPž<5Ek"È|UèÜĬÓáPÙ63?ód™­k¶@=àñ)0Ë.º2K§+X j¸ó{ ë] ‡œŽ¨¢ëpè\•CEdº=ÿH‰rX~ÿt±O³+Š„¸üBëì¦]%èÃ,ÊYbƒ+ô]ý¤èqPŠì1„• m¾‰œê)ä„Ãn3×kubUSݲL²¦JG½º?ܱõ¹oŽì¶ X4«pt˜r ûnÀ4EÌ5µy‡–ÆÇŒ¾0A¾Üi¶ûBÎÅÈh;UŠþ0$ï÷¡-ïY§.mñ3« ŠŽë%ÙRœÐ­Nô{oñeB6G=û“õ—3^&ÇyoReÉOà{;OMÔ4ú Á‰ßÍÿpÂñÆÓß0®>*ÅÏòd«“LåÁ–“) qÉ;Õ8> 1àMݯ¶(õ×G.E{ø`díúëÿ‘pP8Ë0†]a"j3g2ÛͰ¦%T‡sÐ6H§o»Üœ(MŽÇ¡®7¦"yAœ:/6 ztÖýÐãmÊ*‹Õ™E¤e˜ö‡„È”…,¯êKã¹ö¥!žf(ÆfiÛØúš ü-Þw£VüO²qØ¢ÍÜF„ÞDsU¼z(}ÅhR¦8Åwx&ën·/¬Ì†ø íÝ dšˆ<þïMtur© ]Ø%%’üþÿªØhé•bÚêçõÞ)n÷µ~o77«¶ª1yVXD#~fJg8‘—­Ÿw¥•Q˜Éî@ v9æ8Ή ôhd&p#_sÓ¬kCµwÀ©–à•蛹ýbaMäVÎzýk…Q6usýŸË½JOœgng-bÝÓJ›þƒ¶Z<ÑCÀßäÀ´ŒsTnH®íko¢Ùô „!]ÿ(wN-ßÚwJ@ßĖU>•¡Æ]ñÖ{ÀÆ ºM \ £Ú€"ŸÝq…Ÿe­Pk0Œ+x89óþD%&2$ðŒ\~˜¢ÉÓÜŽ¥¬ ôã•A2bàƒkÀ ’ ÞÊN²ßkc9*èâcy åü˜°¶˜`þŽ1ÚµÅßxÑ›ê4¬à«ÆöQœQ${MçÙÅ¿nñHümøEéõþ»H÷/ñ·"½Ã».ƒ[.|Æ2K9–¸Ü-MÂy:OiÁŽcÚðJ{µÀ©n-Z4>LÃÈœGVÿÂᘅ&Ø Ù(亊µÐ%æ:„k{ì³F!,½þz˜¾:$‘óÄiqŠXçƒí‘ù'O´—‡é*™¡èñBê~,F¯ð¢ûPôÑ èê0›H Èø Par¶ êK´â»®˜Øˆ(û'>i ©¶ œÚ ¢A‚F½®gØF úZÂXXZÝ¡¦wЇåš*¾0 }¹»«1Ë[– ~NùFˆm‡•Ü6½ÝÞëÕKAô&÷úƒ™' /Tɘ¾’ÑF"rp¨èšù HºüNÌÊæ2*üWCG^u/9½®Ä’—)ÿ¢d4* þ)…ø]îÆl6ëJFh>çÅ‘¨›Vš…f¯¼¢hݰ—w§nÈ fb&°ƒÛ.lg2YÇ67×sÑ¡€ªÖjÚÚ*e•µôåõžQ˨vúÒgLú´jÒgâ42M‘ç„|Æ›üUòê÷SrkΰÞìô*Ú–Kùäu•3Âü¨· w”‚Ü“´àœ–F áÁš-É¡8ÏwX÷çu™tMd{ ±n¿7:‡XÄB“6wD5UHQéQ›o ÃòklÙ—ÚúÚ‘ú—Yñ{pyL[G¹œËz‡oº±ÐÕÑá¢h<Ö‘Nk;uY9ÎñÉ0²sŒCIe ølÒT/ɹ6¤”À5¡Èm×J¡nkžÇª±eT¾Ä6QÓ «ÐÍIí«–÷NÒdütŒ½žáî®âM£ ¶øsKR‹:^Q ¥ÁNB˜>~6Ë©¦@BÏ”§NKRãzÀ'ÀÜiºÄ”LÎç­®ÜæBì4Ê#ãÿ¸Í5ßñŸ3ÈÔÛµjRSOŠ‚{äzԮܭƒ²s8@ŸÑMÿ?Óßy­Îe²ôEÐYÈ‹ðfA>#Þ'Ób¬-ÌŸ6 ÚÐô±¦èÉæè­µRáë,K*;s˜jÕ>Ùí‰ø/u ð\Òë£á°ß Їû^ÔL2–¸ˆ—vÑ3PÍ)Ã÷𵨸UxK§i¾e‰ªWž­±öWq-òWC×Åÿ@ ÔÒ2ÓT}ȹ.ÕÄÛw·bUæaÿ‹,a‘K×–ïŠs÷Ÿ–OÞ(·’º™¢ ?^ÑýŸ±†|„ÜÖ¯CÔ” ȱóÜçÛ®qÞ±äVDÛ$OD±|vŽ»rTôÚÊd麇ª|ÐðIJ"ûž½Ï=ÞMÎÓ“™ÿë4ˆT}S ¨‹H C£9âÍ/£`Zªèy9±×e¡‡›ËL[á¡yçãqñº.DøŠû®›xÜÊG®Šíõ½=EŒ}Jz¬Ëø€ÑñÜiÆ6bñëÜ\Bÿˆÿ‹f5?r×å/<éNu—S¥™ýØcxŽ™…„˜¶k“å;ÃP9©º’‹ v<(‚oÒ7éIï ¨\Êš¢ @]¶Õa-·÷´­1ÒS®0nM|¶ÅšæhÓG¤æÿ{?‹ÐçËÛ*v;芴ïkÂEr‰0­”þR¬¿WÄ|Ç”'«ؽšœïkÊ}¹*§±°«µªè·x“ #ùîîÔ¢¼0ù"(*zâñ¬ÿdÖ¸¬.ªåq¡€¼ûµÞ"ëæ;ø0@b#×LË«?#Ϥ¦s^úŠ&¿9~&óºœ&)ÏڄߣÑ~»ݧâ×n0Ü.¸‚R‘Úýs”U`¨¦Ü‘¾uã힌¬…¬ v†ŒÒÜEÞ­Ì‹Yª¾nå²ø‘à×Ë®‚ƒG“2¿—Hf˜þlrïrµ/T1C)üIqx+ñ`á ¸ Å‘ï §öW´:|ÆI¨H‹uŸ{iKOÏyÚëÁÎRÌ€ó$ÉÔc ôNQí¦Øa9ßÑÛLóŠ"¨Ÿ«´÷_¸–°v˜ ÷cHn†f‚SÌFl)¥©$Ì3|HDˆQ£Üïc £¶RÖWÑûÀýjïH‘Ip3œëZHþD"I”Å@–ñÐòCmž`I] Ïùg§A³gÒJư"fk•ýE2I‡± ïJªñßh‡7zpõUß¹ÿÆt8¡g  ÒÃpeeQs§íšãBß¡I±òþÖ ‰$š]1¶m»jÂ^ñlk oóGÍöd4Ü?Ú­è ”-R,ÕšôÃ!W³Ð¹Ë†âª{J[óŠ ZŽª,g—ª fäÃENßÂIŠ×n8šö],šm†u)ŒF¬ë}¾iÃsÀn_q9›.Ú @«–è¾™Ü9ù/$yžÉòúâVi´7TâIŽŽ¥ÄKl?³è÷§¡Hu¤aòTšüLÇ>(A{ØÅ!,^«–}ªgšè"¹·[7*™Çè-kØ:¢º1M¤¬Q¹Ê£ €Pu¾$ºÐ¨|]]s6íö ÊLì‚ÒCÓ/tÑqâ@xš­ §»"ûmë’®3ÿê‰|HMt9óŒ1~£– û¹ñZ'ØËàU‡™º·2¶åúò  trN¬‡ØfÛÁFLõÔ™BˆQÿ™$iDQô,?’HQ>žQY?%=‰Æ8Š×-jžØˆà ¬‹¦òáë¹ywåØÄSe=9qÌŸœT "¡æ[¥x®rbü„_Ì÷{3ó>ï&d‰¯‹¦Ö¡4d¼¥‹ìÂ?1ÖxñJ“‹ì1'-¬<Ë-®Wz&¾ØRüY„1v¥üüú ·ûÒ0å\‚ËIôO¦12§cÄÏRšDV—$–ôjœ×• ‹\@a…0@<1žh³ˆØdÆ•}ø³Оj±&òï\rÇz«ºsá+ZæAj±ŸecÎkq[ÔË+M1_BÑtÍíè+ÍÕ$¡¥F !„ÏÚ¿ç,È7Tx´¼©5–Öü/6åøu8_NËP÷1'N½ë¥ÛÙ¦$`Bãy›³¬d|ÚrD·™Šäó¿¾\vÒ.HQŠBYžÂÏ^†ÈÂpÿ‹ùIîjC›ËKÇ×÷È|:à§å–‡û‹öó{ê¡dTޝÙ..?ÐôÉœÌ4üتEZ UÞÈF¥‡K”ü•Ïñ»8k*"Í9&Km[Ñtir…|’5-w¦ÀÝ0ø£ûîc£ï°9²$‚vÿ¨@!ñ¬[t\Ti ?õ‡´±q ÃS:g¼ïÅ­ñô¶+)³eãdîÉÌC|ħ2 Õ+éÅF¸ñÜ‚C!l/Ø#.+¸ÔâãTÀ—r£‡ùR3VÂiõŽj½Ÿ¶¦‹ý_Ur°»Ò"{‰YËѽJî« MÑŽ‰aû“< vMœ dEÓLÜžØ^°†Á;â}÷4ë¹ÏŠÿeC…IËé* %ïä¥'Øo‹NˆpǬ]l–C£)€yÌ 9ƒ$ʇ';†í€W×—ÙÃÏ/–ÆPîfÍ<øelÅwÓ‹ƒ¾qɤ”&w¥•Fîí¿–¾Y61eKcŒu¦º¦HÍz©¬¦LÖ‰ÜÏø³ä0¥~ÖÞŃ~x•nÙ‘6F!›êéNM“£=HÊ›ñ+T§?øiÐîí~ €"•ælÝ€‘sÅ}_Ί7 ÔÄGSEé´6;cC|7LYT]=(BSÏ6©Í÷%!ñÀ†Îî±…~©ƒö·\âEØu¾­ˈåFEàG·‹Öã5ð­w¸2¯V‚**Ç|ÕíÕÜ7.äVÉm8¿‹óHÚ´ë»$@òΗ´³7òâ2GãèB;ú’7Êlëo¹?– ­‰J–ð7h£2"-é³¾°"«•ÀÂCHn5w!üU1Å_‡¼rЛl” £nf@®¶l9JYI¦çñ]Î:‹´ï(@£WóHD;MÎKLåìRäHÉ…ú¡ÃÖRbp±Ìi •šv ɦ &¡›äÿ{Õ5¨²d ªEýË+³Qbd—裗ÔùàGˆ2*sÈ|¶CÏcÉX é ï÷*°J¦à.Ì÷éŸùóï"X§VVŠªÉó¢lA†-RlÁN’¨Ö5ùYn Íeœ¹µ¤V=×p9¸ÅÕ±5e𠕤7Ï—Ÿ98ã–Y¦MÃÖmžöeDÊø¢c]ô™&£îóý¼Ìê(†ì…_!ĹΡš»¾ô:}MSgTŠb€/d¯0»ËêŒ~U­VÈØ¥iÈ6§ŒÓ“ÊBÁñU”„WÃ5ô¬üx +’©ƒí$»…ñU`èò|)u+ÜÛ'@rw’SÖ×ÜÜbjWJ‚¨£Ow²üŒ÷Á§2/"ßËEYëE R· óXJ|TÈÛAãÝ%:°+ÂR4jð5W—¶ø! E=×áçVÿÇæ¥ôøváßóZ yŠW·­ÙJŸãðUÏ—Nº ¢±=îÊ.êŠX¸‡CFFÇta¼a¸jß-]ŒE¦¥F³D—üÍ çô{út,sø{%{Só ¶$ÜŠÆ|$•¨#n¢×˜Z^êÆ™×·æÓŽî.“±‘º¥¨¢ÉÒÆ?æ4'ª¯í+W„'oÂïò×GÈT ÌÃà4d+p7•Í7câ©:!‹a帛¼ÿøOV~7£›4—¨Í¹É7rºƒ÷F›Ä†¶Nò¶Ù%À¿&ãe)ô@‰õtøoãÞŽ!âßSeØñšÍºHHM0êÓ¸NЇîGŠK$3FÓÝS@ÏnG±…æJ½ôOŒ¼Û‚”I+‘’›þ¹Ú+<:ÎåTðñ§ø¥m÷Àj5ƒÁéÅÊE@åPýóâò羃Õþé…C8ŽÜŠÊ)ñ¸+z´­«º?,3ÿ5!²¹/™Ä7z¸'©‰´#u 6­Ý.(n;iN)¸¼@6“Æ÷ʵþ4ñäŒA´x1èÃõ¾^Õ.KDÙ›¥Í3T4 5ÝÔf«êNråü›ªå#3¨Î}— äÁû[ j=œd÷}ɘ†ƒÝÄònŽ8»Ý¥ô0Œ•œ{¿6¤--¦†)7ë Ôú.Y'tXÚ\¿ý•S¾ÿ½’æÖHqز]Iôçp¨ÿUWÑÞƒÝ$(ml>Gpîù¡ °<™™JìuèMoœH„4ÑóÜý ‹îžØ%|©~uè±(WGMm"(ï•Ô ¸Ú%#«Ó\ƒ˜üeh²”Ù ³§g_Ÿ@𠌈­ ¡Ê,ø^Mú;‡c_˜ë}¼fj%ŸÛgAÑ>²0]ÖÝdÄ8@šñ XMûŒœÖY5ÄÌ<ÆÞp‰n#ãfÁ¸"‹&¥Yé—øíØ†? tîOò;å…º÷ ŸŒýëBûŽ·L¶×u~—>MŒÝ'Â?†Ž5ìÙP»C5•‹Á/ÚuîµkáDÁ÷jˆÀ!&÷QË¿ë=É™ú6r¡ïuL\·‰bº«vìHFI/¨˜— èW̃tȺäÔÇŠVp$sJE_“¢|«aJ÷G»ÂŽh€ÔÐ ló¡Þ[µ­úK_¿àÅu˜ÇŸ%®W»yzHQøZ›œø¾¦B“øüÄ; T„ß™Ûá‘Ri,çVöûèÎX1ÏKŠZôu$ârÄ\b¬¿½þ~`°[±¡¦¯’ i³Û´žÇ²:6?¦„·ΧJÊ.6øŒmÞûp ]ó«|tÏeÏÐø_¯™ñrh—73Llÿz)—rô‡ûö%ñ{ÚØ›JÀv”‚w´íhx@0·­LmøˆÇ[z×$â4ãŠ8&“QX"Eãa¤,u¸%jýV$µX­¢– ‰kºç¨Å~vÚÜ)替:¨bÀ¢{9ÁÑ|T¥`†¥ÏS籉kðªé8zº›.±é-ÓuJ7>IòÆîÏGë¬,üáÀÅË6rÓ'3V?>‰`ss›Å:ªCüEéA=ûÔTÓ ¶íp§D:#=yãð8ÒiuXn\Ý!ªaG'±öÝ@$¸\ÌüyÑ {júx³{ÐèÄ#Á¤¨h_ó©úa¤nFıƒm¤‰&JK%žKìß7[ÒjA/à½À3hü¯Hª‹Ö¦ ÐÚÞfÑL›r…V’0ú·h5¾Cä·Hú™ú1ò9‘`ýÒ }¢’U6òUŸ~ï?·Çý´æQÃÐ:L£Wµ‡$R6ôÿ2RV?kàŽø£ì ¾+ò{‘ ÷Óxö™žûŠÑ †˜ÌYή,üÛö½”ÞÉO~¿3¯õ,…v c• EUÆ«“˜ÐšÂˆï žcY°?»Ç[½¯Öuÿ¬Ìø­÷ZJIñK÷BÛ sGµ(N#L$!wÛ½WdŽ9¦µEq£{¨É‰P5”ÐxÑäÇ4öNâñ,ÉV,½ócï¯R¶s­X?ñ¯ö¶€U¥ò™E-nªû’ÈOLŒ" ^­ed£7 êždcÞ—Ôácð‡ü$œ¼ ->ˆJEbÌ'7 —8Žý#~dJsp¸³ŽÑÃwõ"Ç_˜‡Š^‡bùØ\r»å¨|Ë`“¢å/fÈ:zlæÐ´¶*øÚGÏ—Ô» úŽÿ©Àö2Z—­¦”Eò:±þ'¦l'9ø9 0@ÔKìÆèûèˆC³LOÕ-]¡°¯Â7t±œžõ’õØ„™ a” ‚“¨mµ*á~ˆÚ‚ š¡kÒ›‹/ý`ª%üú—Eõ|‚(<n¡ÁË›WÀRÿ½V9Z>ÂÓ ŽÓ8žü$ýUê3›8’V‚)ØÓâ¨!è!ŸËwüóE‹ï—l ¾ÊG7jŒ§=ø[4 gïäSME–™e&µåÓÑžÌTIåï+‚²ÄÂø¡ŸÏ框©„ ‡-…Äe§ Ngî&¸¼’Ã[DÈø¡¯Ã†}–ÜmH½E;â[ˆ.›ÀДŒ܇i%Žá}3bñtëDõÀí7£¾¯¯MFøWg(¾Äa®dhØzserôÿ•µ‹VJ<"uE‡ßIZ1‚+ƒ„avKsH<|¹0îÌot$„á@‡éQ /èŠ9uÉkìD€2ŠTt÷A[£Ÿ€8#P{ˆ]FŒa²¨«®t€ã›¥#¡‰,~ÅqkN€vü:Ú"&•ß7#…Ú{z)àLÒ¸ 2maÉcûÚþ’$å7|Iè.@Q–ª¶!µþ@áx*t~ù5틱Ú9¡AÌ ¤-®3ƒ¼•¡Ð:…©Dùa0dÿì§a—á ºPóX7í›Í}åæÙhªËoÉx ¤gïoÞ·(ár“܉Ýå¥&ª•¢°ÇPç9ÔØ‚GÚFF­Â³:a2ÙjÀáÅd8_ûö$êv¾¢©‘`c-Òü+™>Ÿ/Gr´]o´P ö°lÙK£€]¶¹Åæ©Ç‰¬çjéÇœÓD4é^PÉhc:ù?ôˆB§% 4YË6î4 ”šõüô‡Óßæ?­ ¿ û`Þí¢¬Ê5écVê½%?ùÑcý¼ÏÚ=¢å Î<`\™21%Šqt#öKþëÃF„ï¦v5‹›T< B¾ùT‚Ÿã$j‡˜E³ºËCØÝz üþßv:ÒÅÒ y‹ià‡"Üæ¥v.$šÎ0U¶PÙáYž£ åÄþrÕ¨ÚžâhcPÐß3HwйöRLU- mÿ®^ÄÁuG½QÁBˆä«·ø¡ XYl9 îæú0ŠÁ÷ˆúã ‰(¯ÉMæ5- ±Š±"·7Œ³yž~<â’/ægê{]{? QÇ¿ …øzÂó`Ø,8–OM«Ì‘³/¸€"5èèÙ¥™}9"YL¯,áÒ¿{Žââ¬4\h ;«‹&wx)+"rE×ÿ†pxn?to†¹ÔÑqÛ…šK*a欒TÞ]ºï âéÛ /öT¹–ébõ^F]Ò8½CÎYÜ+ZX±æä®-Ü-tךÿ<4äå“àQý¢6·œÀÛ&*‰±‡€Q";¸ó?ù›¨zHÀ³¼ÀqЧ1ës.͇IÒyRÂx†²RùÃÑAŸÒ ‡ ¢U¹u?·ªpÃtbLFz,Ky ¾Ùùèo˜¹m¯‹¤½_ Ù©¨A`ÕTýõË]õçf#XRÚ§LšÖÚ¡ßÃWâv®UH±ÅÍŠPèM윰„ ×§ù§Â(Í ìvI¹‘óŒÞ)\Û`…òOÏ“~ŸMЄûÓ%%2m.¡GìÕ¶ÉÙô§fc­¿#Nœ¹/÷!8¨¤žså'é¦HŠL¨®Ê¼”Ö“Í, 5}(_eo¢ùaûÊnð{>+Uе1Òý' î¨ägú¸…é X„„: Ž+¿ê ¥ud7'º¬Ä™ÿ4ãC†E¾*§¤‘åF‡Í0^»ÉO®ÈH1èI[;ÅZ-*åJz×É[d5lµÂÂŽ:ƒ¹ØETÛì›êšf ÷ẉæÔß³îÆ£Þ?Íí›-aAVí®Œý­_ðïî1Ú>jTÙLéE:ªÙum‘¾…1_eºûÈ!î µØá¸ð_dó÷,K5Ô$÷äÜ:µ·JÞ¶Ö)|Þz¨'‰ òiþ×›}ý9±À3ŽÕVÄÛœ£¨WŠÎ>Ã×CíKœEäR^Œ1_z˜XK—\pðÔpŒŒÌøH±ÓjÈ$›sc•Þ Ò|~ûR¾Ô3ž½¤%d×§tÝô̈ϵ-¢RØ“SÆ‚l¡ƒ*2B—›lîx:½æ\‹@ÏN§´+¼Àà$#Ýi1ojJëðS¶fÃËcц†ê¬Ô;¹»o,:)<“1ÒS´Gu~çËôQ‹«·:D‡M%æ Æé‘´­©­³g@Ò^>5´Y´"÷7 Lßÿ?;ÌL2´éëö¢G€öi3¡ú”¢ñÆ2ñðNß•í3ÚÙf]TݲVNQÚ{e—Œ«PÖÜh—nƒ°Vë:gXQ‹néëþI·.±H´rºKÜ*ÉWDÉ¿Xð¢ätp«ÿᤑJ¸ÁíkàhxRpè ¯*ür<­‡­¶-99Ó¼ŒÁؤà~sOTì£=“m,9ÕÈW9Ã>S5›ÔWlé;KL+Ûɱ»ôBC¯O ͽúÞhÅ&µÍtâœã÷ bºƒÄ‰AþŽM®¢ð“Š»S-î¬2ŸBE?õÁ]ì*ꌃ#Éèþ¥[?]Äu..¶N*ÝF†œ§ÁÉ€çê«Qé%ÞíÖxîb‚¯óŽ<ÐæYTœ— ™U£õá«ä…åd£Û ›Šýİ·ùÆÐîжšÖñ‚±Ð(­ÒòDcƒKõÁ0‘Óc‰$èå|ýRødÓék;èœId¤mÃÎàÞf¯§ÿŸM¯ìÝmôÙ7„̉›Rw„Ûàq€Püá…½ãóëÍÖ`²H#«ÿ‡°Tm´Ž{w$Éè{q¿4µÖdnÎG±‚Ô‰Fq(IÆÏÛ~?^¼ÍÑ-e¤"º6*ÖʬQÌÅ«_ÀJFä0šÊÈ=eÝ¢VÌÝÑ¿ù«6"E O¼‰È"ð Bû¼±·"¦‘태¯$ûqñŽF9Ém„qŒf:CAÞÀ7\k½(‹¿Zx)Œ§&Vz›tÃ*Rs9Æf¢”¡h!ËòCÑ>¤±`<))S0‹VfSB>s 2åÕâ¹?4‰63ÝPÑ'(µ¡ÙÓf5µ‰ú.@µC×Åäi¯®Ž€Äüœ¶Ã‚<Á»~ä 쵌¼ey"&±žç’5_j:þùŒ]¶=7-×ÀAÍ”OyòGMœî 3O J—Ü—sH•ÏÏsñF„ðnHôFŸjë,»Å)”ß«3Üã ÈÂï©bt–øÌ„Óß;ÜOü¶rx)OE2x®¹&.fHhVÓ{vG‚àI6NÓÐ?’R„£ñú=ßL H³þ"çßšº#3Í0úÔ¹a’½V±2\ªŽÔ²u'A{HAýIä§!pb<Ȳ!m€6±_© $ö°¨'MùßÍŽ—ÈUhçm4­]±w›ð4¦œÏNº¡ˆë0îõ²* U&–¥tiP˜½ŠHIÕÈ1”GÍz<ø‹‘®À¯ó 8©«5`Šx) z}$/n§Ý¡Ÿ^L(V BÛDwÌ _Xîè—>Ê ÙDã ¬&U;îxRê§3½ßvV²õ½C¾Ú¼< S×KGá€`MmøIý2#EEåµáÑç8SAÓš‰U€Ü-êí]]¢¤¾PÒ—2N’¾dÆ„(.nÆTÝKÜÆd hƒ_ø ^ –¸ÍCÓ¯+/á ŠþÞŧ øPöb3Œ¿m”RÍ63X¬OL½~ÝRšÒ}Å%i‡ç ò—DLO1‰EÈ«ÞËóÄc¤ìO¹p<‚Àûæ\ÍEC«ýNe¿‹(Ì‚Réóç—ê W¸r”ËÂê`-òÅ~‡“Œˆz8-&Y"dc¼}j¨J4Y¾¤X}?Ñ!59Ü0nþüö’h¾Ì»t(~ œ,ZÛ*?—ðΫwÿ<zŽÃîvÏ\˜n´|¶aÇs³¢ÚGµ£S”â“sÛÕÃÿL’¨šíwÌO?ÏÄžöìuWÅ!—šTiƒÁ³b{_Ò×ÅðŠ2¿I3*‰ÅÚq¯¿¹L”š‘" ±ø…ÉB:ù?s¼¤Ù-ºãïæ§n-ãÐ÷OÓ%X cn?k|S#Á*ù ÜÒÀ§(R›cž¶4]èÿü;Ç.z“‚=þ1é绾²Œ·=±!®Ø’ GØÌê.G.9¤ÊÕˆ\Bò·2¯Q‰ÒZ¿A<LJ˱ØÊUeš‘ÄöÒæI ëÅÌb¨ö,2>»Uí5ª\o‹—“ \'ÏH½©”ü{FžÌ_^ß V@Âåq„•qËÒd±ë€?ÏB3E{›R±>;NŒ³˜K’^¿þqžÔóŸ=3C1joÜ&½¾¨ŒCfÓ²øQÒ²DÌD%âÇsHÌéÝ‹¹È˜µrÓŒ]ÃLt î»]Û ‹²Qe_¹‰„ # ]1ŸÌ÷È_mÿê—I*Nzl Ü)tZ¬*¿®º°ç®þ¹+¦:°ß„N°P\=üXÎBÍØ;v9„áÛ†/ù÷lè¼b`¤D<ô”¼U‘=Qt[ôZß/Œz•F×ïO±”äS–2£–ÐD€îE”×¢¨i€zLˆ²)j@+^n =ƒ<=ÿ_MÔ&뇱¸ÞÁFÞyõ/YCS1î¸R€œ»Žd`¬Moéoö̲*»º¢|D—ÙÃϵ»‘;1NCÒìj¶‰{§ÃLòʦÛKÖžµßÎઑ}iPãjh¤Â*`ÜÆ“yÔuD¥d± þÊ„;XŒ¨¹Oxiùv ¦þ¬†ì|êÒ쎗}”nEüþþe§¿ö~fõ÷ŠEØße¯Fßtà$ü#(ˆlÁÝwyôœÛ·P4\ø<Öx¦¨‰uw)ë8­f]Äòá‰*ÂVó}Óé$\Ó¼“Î÷·¿~3ìš?•2Q&£Ñ¨4raç F÷w:„óÔÑ ßmÒ*–B“IÞ áyU±¿S"öH=ÆP¨ÕÁmcÚö\!­Íl- ]JÞ²õRj¬÷ÏBù¨¿H2û-OsóÕÿÙ„µr#/‡½>Y>ÓÒú÷…jØQ\t÷ØQW@Å2Â_Ž>Y_ÉÈ>>‚ <¿i ¦%x©€üëm¹±é2V½FPj¾^¨læ\.´ЭÚ_> NªŒE6ÌGÂ6ænÊ6ñaß串8l0ë¸jzÙ0ý ­òÚiܯ&Àöw n 0ã±[6bÀ­ÛÁcn¿­/,7õú˜V°Œ[€¶œ^ÿÙLàqQ5ÆIÂk›¡&k [' ЊpafÀ³ ‘\‡²}âë]~Höç· jN)¶)Ë@vƒéÊŽ4èi«ÐMÚ þZnè²-~Q„êXJ„!'¯‰ÜZø¡ÿ-6 kãÊŽfºLÒÎj%çè”hM¨?ûÌ̿ЄOã¾Í}æwdÅœ-±X_âPsþãÑßáÊÆ¯Ëò ‚ï‘x‹kЖ„Þ£ J‘«—fù{P þûñï ÙAe@±èð²êIPi¡ÝñÅhWÒ•3Ü…yX´ys(ý"ä7KÙóÄòͤÑ,¡D1“z¶:ùÀ@¯€6z½ÊsáŠPÖoºZZ­Dã“<ß'|×7ÑÎõŸéhBR¼ ݨ;ˆ"$”ÁÈÀˆB0«Ñ2%¯ÜÛÁâMJÕú³–ÒãpäJuq²0f Q PvØã_}·,fßÁîŠÃÀ@iP£Ä¤Ú6½â— '÷S¨~lÕ“Üké–"a©šå”“@ÅÔ\”©ª=Ö6΋I{»#E|‚OD:S³îY\8˜?ãà}½Æ¬Õ\®‹áýHW¥õ*<’QCPz<7ñ™,÷.ÐÔÄ”®l­Ü;Èzãï^xDžK;5è'd@QUâ굇_(üw¾ºi#BU!ƘƷñ3°ö‰ñýºÃ ŽÒòŸUÝø 7¸íðËæ9ÈÛ”ÐÅÛ’ÓMfÂþÖlø¸•¯ÄæYЃˆêDêè<äYå¾0gP¦‚¶'€)qW3›ñB¼¹À¯Ü ÌOÇÊ!âÃöÅFÍxÞãHñ¤ÈËTŽò –x‘gqØ:Ì›{"xJØX4Geä£3 ©Ã~ž´™ßZ4-‹¤À 3Ã4|²Z1¾>Ëù„ò82>Ó¨*1—Á‰2®,†¹Ð°²‰„§éé¢ifàÞõMà¸]ð„¸ÅDK¯`g¡*¹qY1†$ò¯^Ç݃Á:™9!C¥-¡< ³V¼žÆ;°¼-LB¯J‹œŒMX¡³.—Æ;?‹>‰;Ó¾Œ`#8ñ¼xç:lŒÝ^)ø—üŽé›ÿÚs8¼ïµ®ùPåTšßÒ®±XFµ üW˜˜ƒd$˜£Ž\ÞiÀY$ï®Â2úLï0.ã%fì®õ}%Ï£´©æ9}™oB ëÏs°8þ{ý r¬/@Ñœà°/θ¼GÚSDË“<ì•„÷ŠË2ÓåâèKçS¹ç§¿ÄAlÏ)Ð#v ÍÞòPX¦^™)$PY¯ÓÛfA½r¿z€©ßf¸v³U?ßMÓ(š÷¡¯¼SÿÿZcHÝxJ´*l j£0°i`~-óËïÎyÖö>'Lžs£>¸RFÕ빆¿©#ßh²¸Ï‚¯l3ç…ó[%±ÑÖÞ…¤ôQ ßä-uµúT¥š¾S…ž(³Ðëœj}/gÉÑL‰[¨{œµ{…Q“ü¤C¯…þ(ßo9S# X¼øØÀL²ÂP@0LU—^…mËN!âµHÜÀV”/²[¸¦¶ù>,*3ÍG‹DeVWÅWë°€žåÙŒ\ëà²[ýÙRÿë%€×¥¼KÊO#»§öÎnwv:#ªÇ}¨ŒŽú{»)‘ärÿ uû%§Zϧ ‡dô®L%± ÊÒãM£\”]½i± áG2»ÜL陂¬vÎ=30ä³ûSôœ¸Ç¼E!­×Ø–9]&ÍýЄë:§8l—éb’–QA5À”Ù»›”^ëÓ»ð,˜ÈÌ¿²<,&!Š/Lcš‹ÿ,)@`7ù8¥á"sr„(µoHŒÞ³;ÓʉùG'ƒÛwk+È—£ìò`㲦ðá59v"ªÁòßR<ææ¼rËS ïJ¹È';ÓØc¬ŠŽlD¡•-¯‚Kǧ/ÍÄá)¤€q{ë]îeîCDдÀ¼ß„%f±Ùõ5;j?úlÛïcL‹Õ§¦?™VêÊe=Öv…ÎIéŒuTtZJÅ3!vbÒ>i7]¼"ëPV +ªÃß®G‹k¤Ê^Ú "/›Û2Ñf[T£GÞ Bé÷xBÞMŽ~‚N²ð×­?H ©œZ`;¼]¼„7tÊf艹EL᤻2Nù°#ÂË•ßÎ’„‰x–ÌEº¹{äIøâõª’vÀWéxŒFç÷‰U[üÜ?©í¨­›¤‹:à”fC‘æ:˜žñâK´d: ™äò×–ãRë'qØØ¯/…bïF¼ýG茽—0!Ü‚ð?? ŠbëÏ+öŰüúD­%ý¸4ùCÝG¥¤.³é¥´–A÷—ˆ·™¦H—ñ4`pFmS^ NЙœ8z1v®Ü}§çÙáåUe *6÷ÇJ¿( ÀNO7Ô”6FlaÿvN0CئÐ'ç7OyBô¬¤+²Ëawïq—çoI«@?tùþ¼GÖÆ'BC ¨Ã¡ðL1 Q?‘Ó}šÏE™™ÁŠ3òÈRì8Ê€e™Ç(ÅCq@Æ^,_Cbp¯R­qí8;`DyE_•)¤¡b<¹õB+’ùͺ‘;šÙ]¢%âTèP f Ð:K]~2ãÛ^Yb©¢wÔÃâœØ@W÷Ð×è G¯è–øR2S9.ÿþR3f°\S-V)©Aê³Ô§1ÓöÔð?ù23Ýø‹±‘:º"뚦11D8®)¼Èc™XîåšÌúó]ÌÆ> õBóî]û÷Ê?2„Uroeâ:Í—@I"Y˜7cãZéÅMƒ)¸Û ú¦1)íâ‡v˜M @À–éÍÑ#À=뢗䵄´¼ ò_]ÎSÂÜ>aù›ì«@y”x¾Zýhâ>õ Öd\–~á¶ç‘v”(¬Ü7 däò³—.OD"—“Pf=nw/Æwz›â'=,ÎN†xþ™HÜ[EœÐ/E¬V óW@´Õ¡}õÏô‹l„=Þ«^¿Xþ×Úèªy’H³±QÚX1Ï€…;Pþ½í¿µ °öW(É;ôŒè¯ñúÂ\Xá­0'JëTÏ/žÀ ‘œUGKši6®àût½_ç× ¸G†™}4¤&§CV¤¯®æ{k&ÑÁ§¼ÿ†—µ\lÍw1,3*U1]ÅO›À ñ%à§k96)*=¢ÝõªŒ»›]Ã.ÚÌH'Ö„Òtæ[‹vû,+÷Õ`u#ú•>4»9,±Á$C`lUf <¨`~vN¥°=·ü«\÷xŒn`ìŒD›Êý¼«¤+l¼Ïñg„ûY³kwÏ ž¥räÊ Ç%¦Ï.EÍß[¬Ë”Ô‰%COAÏÜ&–¯_ÀʳˆAí¹½àÀK’¡øÉ›üJc`²D€½Y߈d™°ô+µ‚q{§ìþáACeKSqȹ²Ø…­8Ø—­d‡\(Ç „û³£»îa}Ë›È"·ÅœZÀÏ~€:ß·ª·ÍèI|—Ù.Ù0•ŹWü)NðãAÛ3’í† ²àª )=™®žµLv¢ÛQáή«'l{ÙÆ…×-šgF‹ ³Ãšxb±&Íý^ÿYÌ„ÀÓZ[Y`ø$½T•Ý>±*N–Œ±;ŒWE0>fφÿ'Äpœ…N·–å/ìQ§L^Þ®¥UÁ˜ü{»¸ƒ^CPw®KÍ¿r#TöÅr¾±7m>4!•ú€¬—"ë/FäMà_Z"{sJKnÞðJòÅÞÂîøÿHű‡­ãÛú •e¶ÚœË|»ƒM¶ÌuIH…]ƒ6pÿ Ä*Gsþ¨2+ìîÊt¬-f…Q2ÑQRDˆÅGqµ·¥ym}zàùÁûÉËÛ ƒtôÒ4 ¤7¹$–i'fð ¬C¬Û‹*¢ï©Ò2¾:1_lª@+²æ@ÝëÞ'mÂÆ©5Áh¾`dv­í}T¡LhîË»µ’|Ò‘É(S4Ë €í½9+ÞMS^¶ŽvAõŠÁß[Z]‘ãâ~Ê÷ì—ìðÈ[d%z¨VR×宸*R¨½}É}[?µÉš]øM¯ør’% ×kÆí±\åùëAT¾áè $ƒ½È:ŽIªš&I·•]\(¦;пçêÎÔ¤cĉ¦&'zá$or™&⢶ÃEûÍ#_<Å‹ÄÝlWþ™Ž½Ÿ¥FR¾:…¼Ò漢2“÷B¦G8"ú¶'’~¬Ía³éœ0w=-8+ÇîºÐýä‰`-ZÛ¼ùVitUG| ”ˆpSœ?Y•[äÞ‚¶XÌšáV©?ŸkC)àæ*˜-³/R)qNú‘§²JïáëÂÉ=þP³öAµÝ3Ú8‡õ$<P-®¢ÙésN€©gˆÔÏ[Á*B¼8abüˆ§C^á2ÁÂÆÌÅÒ”´Ä)ÛqFί'»$WÕí êZ\â}Jƒu¿À]uñ §Jmã}}á\Ú:Ã]¦ÍH2=NqkD^^ oË7“SípÏKo¬,v'žúñ?·L›G¯uóö½¢¤d}*´~ʶM¦ÌGŸaŽ- 6ED^‡Dh<»Å`Ô|˜‹„ n냛Ó|…+Ž(DcÔäØ <=[ 5!N­k×ôV¸áÛ1©Ô™å.˜SØg(±¢åôŒ¡ärJ ìÖ@µ/öÆn(i=‰v_Ña.X‰çt#ì…ËР8¶º˜¶pÀĶk;(Çy ¸ÐQܘ'mÙÏï«?eÁÉ(äŠ ™+9*Cånªmí‰mëÎqø$[äh/Àô>ΰ½ °\ç<¾3`# Öah³J•´°§P³¿~<,yúsx1¯yŽ”)W»—~bX$N„p_ù`˜ü=h¤î[Õÿ8¶Á„ö‹‡_+LâÜ{7áE-ýÅ‘£å®‚Çç¿ð =½aj™?¿‡°;lŸ U¢°•Ò“aø%<&#e6‡þ ¹€xö®åü,+Þê¾Û:3ëËh7bEñÆ»¼ÖE"±/çùÍÏ ¨¡š{¼JÀd´•DªÚ#ƒZÒŠÐê]âó•8]Ìûâ&Ũš#¯`j9…凱þ @¿%;Þ:ØÇ5I]IŸù’uxý!'¿|íÖµ½P_¾›Ð[JpÉÒ|Õ³l:Ó>1ëmDãu;Q¹ ÚP½!„³Í"´2x±D¾x@n¯Çßklb8J«ssk8áhDÁoš\ö“¡†3¼C׆tÑ-8Ì—Ÿ|ªÚnþ€|êIœ¹þad–h*fàK½¬áÜ+!V¹°² X¨ËCÿí¹˜#KšW‰v*ÇÖ_Z1œ3ô÷CŒÑ^»€§©~—nŒì#ôÆF¥‚€¨+/Âwgð™~‘H‹úKp/†OÎeÖÎø}* µ[¡‰¯&˜㸸PÈ@9À€Ó&ÙiŠvg2¤ ŸÅ©N[Ý£Ð(Ø#Ö¶¶Ñ}ÐFÞىꀴÊb÷—>Mõà2£æ¼\ÚgJrx~¸%>¥ˆ,3|ßš£áçÙSmЛ|Ø–.w?röAŠ:ïZ(›4ÁR¥ ç½KI?ÿÂj¥/yêgãbý’Uš¤ùJ/xls]úÜòðŠ¯˜¸ SÊV©O%ðJ¦Zp§Y7„s[=eûLcâäŽhHŒ“¡>éIà>Fr<Ìu",¿­.‡Ê×y²=8÷âö`ÞˆêñÏM™MuÆÌcñ‡ý¹I” µ7 ¯±*Åö{ƒÊ^þ.vLCiK;I DÄ`…È_.ÉÛ„Xb0QÈ$ÒÍóÚûôušwV(‡™t)kĬƒR¦Æ˜†‘ü¸1Ï•Á ®iÛ;¢‘‹5’KÕì­‹s—± ø+G˜þÔrÍ ÛÚ«Oˆ*IÏV¸Ë|£.Á)Ф¾l¹¢¶_Dè ˆ¡'èQ§üù'骢Ö&·zÇ.7ðX£¸‚üIUÜŒ¶1$4½;Î×W€±5¿OèÖJÏqùû6XRª¹í¡ É—Ï¥€RÄTýElOM61ãöÜ5»¯5z2Í =ÙeAUBYˆ}gzÌDøš¤Ê'(-÷Ü?/¡Ëï%XÜÎ(ºÂØ{[qê’a—wdø‚bmJ³8Ù\”wÅNœ6*<ÿ¾žÈ ™Ò× !ùÙ 5NN¬yG™Šnyj¯oçXʼ«ß½‚¨çH£åþºW 6â¿GLƒ"šcùa#!²ëá¼vÝ7$ÄXŒ9Ñ„Ã2úêôÆ)ò³²ô™–äj¦Éô—B‹êRÕˆv°Ü´`$‹È\Ágs¥ÚÃlÞ‹-–Nú¯‹Á"…w6€Wi›:7ŠŸllÆ ®‚ zÝ‘Ò:mÍ­¯£$sI¨ þò§~$Î(&ÿw±‹†œ3ú)/àdwvPDÇÑJT‹(±6%Æ“?Å‹‰97ÍÑoŽ–~ 8W”IßÁàs‰·š¨YLQF]PAÌ’’hÞ†?­¶’[5 ©J'Ô!ûÌÆ³_o$kzQ@Q—!©½h1¥écþ‹éa3/UxHê×^†Ö ãú$%®„9ì¹+Ãä×7GÁÈèzd™‚pIƒ-°¿m¨È\š%’¬(  ì­R¥oýEjþe iN¬WˆEk Ý|-2Ÿ¶ªÜ®ðW"ÍJS"ûΩ®¶”•Bbp»CÁ¦}ˆU*ss9Šì]§ÉÊ©ó³EÆéhÚª²uÀØ—´H˜lÿºäÔ¿žËôgBqZ•i“%%;:T1Íp(ä/ÇQÄ4â·Ç +ð,¯›Š uÞ’#"ê|ú`\ƒvú•‹¾C&ûæj7uöCêgë½—ò9ûÇ«‰ãM`Æ›'/­Â.Ž{ÜbÛ ýÙâ ôŸÒއ¸P‰bPtl£²nÚæ ("õž‘.bk“àÒ¿³# ýTéº%¦ ¶MA«Ø—¥ÒdÃQè_ž‡¾«ždQI­2®ë³±2ÇdqùŒ*®Î‡bÙ2¹>’;Þà ’‰z©#se6âàp=~lX›ö`)×”ˆ>®L‚(”éeeµ Hˆ{S¢åSyYc‚"¦ÊTÇ|º½F ¬°cQšäõ “ÞAv;§Ï¿Lw$6uxëb‰!Ú e…ƒA•ŽO>µ–lm×|îìßK_lñšµX›B7yY½%ŽÉ!ÃOáÛ?}ê>/Öõݰ¢Ö,¥¢Íne’壷ŸhÉm‚Í6Ï5tL=7By#mê®cwWó¤{ͪ‡°õÆ´Ë‘ÔîGð8nq.!˜^1&Ù:K4!}ÕU°¶qR–…[Ѿú'n„¦Ï×_šó½ó’§øÏ£âœçA™{ûÎz /¦ Á•¼æÛQΨÅ6yâkÈwbàÿõQ\e@¬Líoù÷ê"ÃÇ€å*¢ÆƒWœ0KËD†T™§Z~†ƒC25Ï<°+cvÐnÒH%›×ƒ¤‘^׋¾½ò (´¯ö·6Sàc|>T Ð+Æ„¬çªO#^-Q:°ä¢N0ºr&ìÅÏÙÈfôש .4k wÈ¢2ó¢ÉšfSLjï-@?¾ ËgOí b¬˜›¶¸œÈFPæê–ôÏÒ'xº­„ÀÜx÷”ºïåŒÑ…Ï–˜ûhçƒIæL¼"VøÝ$½€ÕGMÚ¡G|h¬¨òzÅg!6 ádÕTk-ÞïÆè– MƒdËò^C“66(ý’¿ÅÅÿŽ@Îî`—{9Ø E,íå|Zsùo¥áàDˆeŸp©rÍ™£{ÇžýªúÀ7[ÆÉ'—d˜H§‹´0=$‰€ý>‘zF÷û}Hf )„, ›ѹÿy^z¦¢‘ ½³x¾ó€‹‡ÓÈëÄXÞÇ,¥v5‰Zº`°ªõÎzÓJΤL[´®^ÛŒ Ü áWtª|R»ƒköûßãôá»éé¾m^â,Ò\½CËýûŸ¢Ñ;Ñ•×Q ²ÒuÁ{Oùxgû¡jÆw¨œ °îN™S ‰ îޤw zTdkSluŸ&ðD÷JªRW"¡¡Ì®HGâAsÒO «=hd•¥ ¼â;Ê;“§4f¸H¼OÿIŸ$8±iù漜Xº ÖÆygf ÄÒÔÏnÖ<ôm¬»¦]ÿÉf¶ƒö夵<š¼=BRêB)¬Ú¯,ùJmþ‡×âš9ÅrйË`õ¥„g2.¶Z/‹ÆkØ:3Âqe3ÆÃŠ=vkHÒ„¥’äYÜw‹1ùI°~ñ½FmijmñeêÝ1Ê ê¾!9Úï=Ò{x xUžÆúiŽ·÷üœ•“M­»gï—ÍÝMbHþª"hãe°ÀåUʤœO©)ýÚ±f€€Ô/b›Þ‚¥¢7ülU…Ÿ=¯«¥iiùš€Ê¤âã jä8×S²g­ÙÓEe íÿ ñã²u˜k¸1m&¯ë˜>qWWÅ”ü^ì¾€ôð0z6‘”Ø^²?d[Ž“':ÁHí¶.†äàkÏ÷¶ÜÕÄ}uUHð •Æ„&Y-c}ÉŠ˜£p9ÿ“‚w®„ÔŠX€=‡H®A]ÿâ-2K =;Èt”U´€”Ò’fÇËIýŸý&V?ƒRþÍ=à›¯("N XŒÆþ&ˆ@@ †…ƒüPbär?ųG/ÄŠ•ÃîÈ¡¸ItäáT¦É\waW²dL$©Å\ìë_*Û¡xO|Q¨ Ç3%2C µ‡@Üĺ˜LÂv<# ‘áGÌZ”ÎìzlœgÉZQŠN£D¦`ËÞÜI$ôƒ;6 ö{˜–8£x—ªv~yYnÊÃt¤ùT€d- Œ-’jqNZénì8¤×LxöU_ˆ©ZäŒ]°­÷GÞDV Ë}c­Gkî{ˆ^ºaž¿ø™¡F/††aÃVÆ©ˆx l ¸yÔ\åL’ÖÜkãý˜Åï_ÿ± Ók ùŸ&3$éF§óªjP!õ­ŒôP\E£[8ËÈ]«’£±¨voP¶ŒÐØÊì]Übƒ1;jÜÌB±iL9þº¬`툻¤Ðñû°Çö¶‰EÐCÌX¾µâƒf ƒÀ,×Q`óRp9S <› "\®„¦@ôîP°/=?bÑÔÅ'D4Þ,-N(6«{€Ü€8BÀwÏ ‰±=ƒËÆjmýÁ¨¼Paó6ò÷‘9¡-9ñ”로œÖݱ xl_—¢å…PG~Ý™ØmÈý_¡ÕÏ<®‚@wñ>}ßvc0¶XLÏEdÐ:â‡y’öm.uä8˜üëq•ö '†å„} „rú:ç"I̲læ;Ί“cÒú{ó‡Õ)«c…™d'zšý#9½P¹=®¹š;¿7¡]¶,·"þ*\Û»CTy­0ˆ7r¬k©®Ï”$›­€CàòØ)g³ƒ5^îƆ&á‰?Y"Ás,Æyºß¯m0ÉIž5A(í~è÷ÿmŠãžjýoG»ÊŽŒš³qL:»€ˆem>ÊË·åpçF­û¹oÈD§q »'vû´;èÊšåD¼ôÒ´{—¯€Ni±­ L ¹#©  ¸»?ae3\.ß$BýúåíŒÄ¾FJ5-K?ϲÉ|Þ(vxˆÒ;*Ô&“8ü|˜l„ñ5¡k…@lı±åîSÃ:^i¿âR†Ù©T;zùHÏt§#ÛѪ./Ú`FCôÓ›m_Åá»Ðë®+³®)cî†ÛŸ^ø“·Lƒò/÷o‘¤_þ·nê¯ÞXCFÛ–‹SVVã—'ˆöþˆÝ¬È ZKåJÔSVûZûñ ˆ˜ƒ ±ºÊ2ï/D`Hwh?(_™Faj5az¡Ù5 ã„;_Á³1¬ú×UªV7€ c‹NRXXUJF¢7:µMË·I’³OûbsïO}xÛ¸€-¶mO‘¬ÙÊ:ž5œd%¥ƒ©Ó9ÁßID—HbÏÓ.kçÄ?_R1 U™e•[÷?86àëFl›=“Ÿo:*úÑ\$çžËó30mM€ïĆ6–þP}¦AlçÕ‰øçñøÁ‡?¢«ñ­42L÷©D?5‡½ÔÍ–îê¨ú9'æ1±óJÔDÅún#¢ë‰4ãÞËÆà¡›ƒ°ýtùUKoª+¶y¨<Å»ÿ_ÔEîãµÎÖ!vü Tõp)ÿÄÏ »'~ÁØu™&c8èn‹9øFG1œ?¸mIÔôÙ/}¢;Ï´ûZRy>hÿ¹ÞÛq¥Eµœ'ýÂø3ÇÖG/BŒ…'Ò ƒa¤êÑ‘—”›iîtN²˜¹¹j>¯*òrj±n'ÂÞ•uòè{]¡s‚À;ý”?mxSjØçÚ«G1Œ7iÔW7u,¯¹¨:œÉª²#0ÉÕg8MVvù;¾ÆD&¢ÞÈJ¯½’r÷! öôÏ€1©¤ë+Ü [’Cì·9Eè)tн@'™\‰ë>D·ŒP1lábW‘87~þ9ñÌÖYº©ÜeOš#E¼¡Ç"1ðÄèXu)ŒûŠÐÛc5üJk'ÃÓX&TÂuIÀ8°ËeþTò‰M‚F·`FâVðÎqžÄxí ‡p\(ËÈË9áàA²Ÿ9½´#ý¤SŸÄÕD¤]˜YÒ†)ÞÇ]*‹!J;ãä1© …\Ód«!úbÍT‚e&©«»IA;\ÄìîÂJ„©ìƒœ&² ¶Ìz_˜KuN˹žB—ˆ|X5d|Føqã~j Zþc!q.˜‹,IsqdtR ÏêLê‚ZMÛµhôE¬žId( JÏÊ“m‹ N›ÚܱR~p’ãÜx¥1aËÖ®0OinU°‹g*˜žÃ¹c¼4I«É:u#–€½¢„£H. "ó~ëÔ2rªrô{Ä4ºêLMëü@2}‹.:Žÿ\x c›‘,.!²Ää^…þŽ Í´ŸW‡7r‰¥?n…CÌ t…ž´“¸èתm @TV>FÕ¿¯²‘Ø~û‡~ÿò #4éÌSUù`£#7±_ÍûØNz&96t[§ŸËwbuÚ4Û˜‘úÆ£•sæÎh–ìH=MÍÝÈŽáÛÅ=Ĉ2f ª_í¾d2uO#ëw) žt •¯|DÆ9ã!Ÿ-yœ3Ì•@S < ™Þ·Ÿý¡Sír8ö‚w‡»Â•ñf æÿe^uîˆJ‚HUÒqývþYמ$ïÖYmþ—UWŒ4xÝ_‡)ó¨-HÊ‚šíÞÎÃÛ Û90½½úbŸ~T9÷±¥VsH~ù@iÝóô¬¨vV~ÎÃØÝWÜ% 2°Pšb–£§fTÝzÖ’s¸9ø=£É=Ó­²Æ½N&F¥É ª¸‰é@ŠU2 \Æ„ärßT]!RŸM7}M·G4úÑPO2Ü)Õ"+wµ”Ù´§“xXÐòL²µE†:2MŒŽHªÃ€_ßÎŨ¼Ô)Ç!¿›_:~~ÏXÏ;Hå[¶W<¿sòûÊ$Ê‹hŒd8ÆÚ,ŒŠÐÕo3$éh Ò=Ç f’ð*ÎQžÛ¸¬!)ß`ga€Â™'â.3ÌæQÎ$U}£Fý_+‘EA\!È­¾;~¹gÕÃfLYò娟qEÖ-Ø´ d?-ˆ•wŒÆÊÑB!…ò^*éˆ[!àôþ&à1C¦»¾7,TîzÄûxœu1ÿ_pßßfK¦ÛuS!Ó MLGpg¾3îïüùFÆÚÛÁ¦— ÊÛY·|·¨Y+€¦G5ºÆQ‰º Óf•­™ ÚUhmY¾µ1 vwUIlÍÞÒâox]ú~–ˆ~øçðÆ‘ f§‘ jù…G"ý‰“ÅØ%Æï˜ß•X%¤Í¢ |J»Vé·´å·hêKΗ†Xò)¨YÌ7“»ò¾æ­q¨ÅlÅ"M¶¼W•à¤8GI§ØŽÖ EZî³ Ýnaú¸WÿåñÇÃvi͇@œr}à«V`æ‡Ã¿‰Ï±÷8#âÜÁÆË]1 ºÕ‡3)²J&FI_œc,¿Ž%À=7 l»†Y·&ÄÄ©Ljü‘Lêü‘¾ÌVql nwõϰ€¦Ø/ì“)ú3•†'qfèÞ¡bâ0•â]u~「~V!†Œ*0ÕPBʵc¿ˆ¬ÒnÁ›y@±†Â¡6ÅÇU*õA[0±Ê»n é§„‡ËÅ`³%w}R¡@Ä“ç,ÆyÏ´Ýô9-ؽ·Ð2Äéiqæ5E{ • ËÕ©ED~û¡öbÑ$4U}#î—£eM–wj<×¾xl¤m4±GMê´ l‘¶e~.F-àGsš ’ïnǾwyHäG¨Î>Nóù7JwRq#¸s"Ü-}íµƒ² MuH½ Oë=Íø5Ôšn3~5Pm¿oB›k”:,q(B¹S`&(úêBÄ ‹>ÓÞ.úÙ;»/)½&4JaÛ®©ŠæO­/QÒ!€4â_×å…¤ƒÖày÷=o¶éà+ ÈçýŸ«¢"­Ñî-t~QRA>ñþ¤ÎÏTÊ ¹ƒé[„ˆ=̯>¯%v/‘Uý.†!¢EFLo½AIÆVgì«V`æ‡Ã¿‡XQ>¹g+”ÙôÊ9¸ÞÄÅHÊ÷Ï›­akl°Ý+…ŸÏbzÛ÷9»/}{–IÔÜ‘"·ËV±è©ÿ(4¤©ÿè´\%þ6²†~ ˆšªRË} «RÈ7ë@N&J{ÏÚ0e¼<ÁûúØ54’¶´ÕIèÁ³x©‰·Î^§äxs¾­¤‘Þ}ö8-øwPøltºJr¼‰þO_”rLBKÞˆeà¬#^dñ’{}ä&çÂçîæÑN¿¹Ál‹Ý^—c¤¯yž±¥fX€tÿÛq#h…eebQ~,y%•¥,›?º»æéÒ° °Žßk7`€C·¢#wCýñR]ÌÏØ¨~ÇÑËANÙf±/#76y¬Ž{g)Ú¸>ŒˆO¾åçÒBÞ~ÍÒ.'{¦Î W:„‹R1}vûë¡Ý Ñßö¹¯ú>™P‘L°Ks66·Üás€ø¯/å# ¿ J,2kDÄð»Ád–ôÔÆµ6sãóŒ5{¿=D¯T¾jQÃýqÌþ ±‡Jó'ÌgÁ0¢ÄJ(싌%ꀭ§Žx¦TÛz/Æ~ºt³ À÷•8ZV²¥{U¼¡ ¨×ßžŽ>΄¾&SÉÇi¦~„(Ì…ã4'²%¸v§Yâ­;“Ô›GÛ°º­y±ªˆï‡µ°Œ„³¤gJõ}€€ûx¼Øîòb{¯¾P®#ÍÖ¼e¿kSÃÈÙçaÌ»ihaïdN€å}Ié\¹…)õoµ'£S·‚Ñ¥<Ïž¹›L âžmÒÉÏŒFÛ#z¹ŠúgEØ##ýÆ@BŒs8öå Õà/“{°ä­e>Ÿ¢ð„¼z»Š¤=‰¬Øí꣔]ÃÞ0­åöÉßžâ–?“mÚ»Â|;üqYÌæhˆd­;æûvñyÇtNT•·=ut’Ü'¢ì߉yÂÇr‘¤¥A)ß*4ÊœûÛ©ÏâÞgþ¾L°Q|ÎÒbÓ&‹ÿê¸È&ØrŒ±H-VuѬ®BCèæë§¥†ÌH üÿÌlÏEÏcÖ¼[ë)ñôìÒÀY˜½«¥ž{FÊÈ,`7b6ÂðÓ@eÄBÆ}iÐàÆØ ‰àêç»&‚Lͽæ¬SçÙ…^€:.ºc)sÍ(å½²šš¤×¡Ùt´ïgcµÆ$ؽãoE™¼¥†ÊÍí„kŠí™@¨+VàqÁý€Â/ ïNõû1aQ Qä…‰†a€DDŒ\‚‡¾Òá¢òÕ}ÀÜ—nÁe¨äÓW渥Øx§½l«^¦*.³Ñf5"¹„•²d϶®9îÊ7µ£·(#Þ|fÿxMÃúÝÕ#þqöv , ½À_ÏÄ~»]?’þÒ;aðƒ*FY¶ âòN5&a”Má¹*>ðÁÉ’®we{‡0Zg§­f0y!Eܵ^‘=18ì/y–{í¿®¼ˆÐŽo¯Èð’Å;€Émõ´ê›+à‚É„üØõŒÜüD¯šÔ-鯶’këÍ®.æê¿—Êä‡NL!º;/Ùݹ8úŠúhL%*¢çÍÀúK8QR„JUR¥0‚Óô°µETbþR½ÿÁØÏ*¸V¢1.CS±"Èáõ¢.8ljC‹¥©Éï¨ËÄÐ#L2D—I˜h€&Çiµ6ýúOú5¾§ÁãØ d$›ÙoZM u{`;У",=غ‰…í½°w|1e)µÁOLûvÈY ›³æóìö ƒ¯1Í-Ưeä!†’ì4$>ÈH-è½½õÉ—}‚pË`5vþ1_øbZÜh‘©º€i¤ksx×QTd˜ZZ8©ù>JJ*]@žÎfHH$ÆÌߢQe"?°3¾øå‚{¶Ž¦ã\P®<±¼ÝA ã*ƒˆw×Ùœ¿–7±«Ò1iAãÓסäù4&œ­›yoòþ˜$-¢[UÐXÐQ“N·¡¶ƒ…±Ä¿ßè‚…ùeV&‰«B7ÜUBK§mĤüÌ)8bTÞ&`aD°_ó œ)ë»ó+åöpöH8³3ï¯Á„üMp¨S„I4ØCúÀe@+fï¡àí]Fuc§{Ò£q-³;ävw®r$°Êˆ¹Ž@i› =}P-qœó óo;¿J“oXt®‰¼Ú|+{Fè l·Å*:ÍÈú ÿz…›‚¤ØiWmD3%äÊW¬eIˆ9Ï׳ª÷) 3Å0ñLDæd8Üæ Êi}Ý(zKŽ¿óh¨] Ö Þg ¿û|Q±EfÛ„EºÚ@ º@­ÿ—œŒ»¤_ƒ.4…¤Â8ŸA½ dáçOç×É2„ÖÞÌ vyKþßH–Gúÿ6M'1»H"^@¨´ïN©S—Wg}“­áEÎ`ƒÅeÜÉà"ŠÔp€²à.uå!Tp\„³¨,Jˆ·f#ðz5Ú:¢±5»çìÝÚn0æpý¦EW’û_:Hß^ {Ç ‘ü’`9bÕ>È1vúîŸ Jé–ŒO‘¡ ÕWФ]ýÆŸ§YEé5U% F/Ç@E»‡÷DÙeI±©«H–‘žû`KÜ=y$Jh16Že9dæ^-žÇ¸a“™ŒšöFáœã©ìL”?WDWCç)²{2ÏÂr½~‰‹£¢5ç•¢Ó!“Ü®¯Le=.BÅs¹wz]aù[•سQä×à'b¦VÀáæ-ÉÚÄëj¢%6P?¡çÿÎ2ßÿbÚÕ`Ñ CšæL†¹ÂûË_Ð"¨G,(®.ùŠc-¢ã¼'ùÇ,î?ç„–’l˲©;=|Röp-eÇ¥ÖÈBJ«‡wQá¿áÜÕº'dSßBHm|Ç,üËÇ&¿9•†š±fÉa¿F%¨(beø\F¶×°ûÞ¹A|½o±¥‘ßd˜ªØ[§¯n7[*¯ŠK¿¾îº¸ö?+5³Lu†J¨¿Ñœ9±ŸV-µoCÁ£§xÂfçá¢ÂUÀŠÉ£)øä]Z êÓÍ-…›U¹#±o™šËâ+Üw»× •ß;wìs%ƒ3í^rSeð挳S±‹\=/•-¿wø”Ð/W‡·láÞ,yfX)7%ÓjåXw®Çhnr9®˜+Πdgÿœsü—ÌûðK¹`‡ò6°Ĩl—X–;Ò–Ø!­^°‘ÖZ^MsƒÔ´‰›LXæGÀJ AS¹J/æÃ’4ß[Ö#+ sK×¥\Ì*íÞ÷û¢Tj²×éÞcÐVÍÁúž¿`+>.{¶ÿ²"”UFÐG*þ“êÈ’F2†â£‹ 9AÕÙÌë½}ó/aü—⟦˜´…]ËóB¥;>\° Bäi×xÍXÎÝ[mæ7ŸNËv%…õó(OšöWôX‚Φ½ céú;ÓûZS3¡‘½E1‹kÇEù*Bñ23Èu>} ø*»‹qê­=žóĆ™3»=7:íÇŠÀΙgÙç&_„¼h³Ò;A~hæÍöñ`[ò—‡wï!ô{¨}UÅ$1}ë«,ž›ÖPg?á«Ü ¿T†jLÓÔÓ¦‹x"ÓÝÛ.Õ‚±a()‚É`óÌëúA¡>óäTl¨@iÖhé ¹˜_±Õg°1ÂÈŠ•Z`TÜS„ÊMYjè]Þ¦CUÈ]‡€•@Ä ½ ¾Û ê:ø&30 Çí–²×*<¥âw±ÜV‹ªâl爿®ÿ XOkÌ ›²önÛgFy£ž¿â'{‘iÓólb–šgË}™$z¨[¼äÈÝô"2P–&yÄ”Ô$×du[--Ön²AÙ&·lWrÖ^ŽQC »xmX ¦Fú­(¨Ÿ¹ ˆ ™Ùµ+ÛŒßúàN†‰èËÌû­q-g²¾#sÈP{y²05šfiùéÝ8Uñ¥‰²A…XÂÂ)·CŽ(û|ǃ õÂN+6^SA·VyâÃQdÜÉà"ŠÔp…%¶%`øÀ²_r¸ô2]G8i^íBà,é¢~‹¾r‰äð›Ï0°Þ@Î)ûº¸ÖZÙ/Öb A_5E)Lc— 8+йH‡1¸ËG·G9ÙåiðLTÕw¸‚zòeÈÛr—ņ$ô”^D¡íY)’Êê{8TþM£O'pÀR¸³Î¯\ê|EÿP ^“©íþ‚î3ñ6Ú»OŒ¿¥tX©3Å»ó{)#~Ʊ³A†UhvahÆW,UÇê°>#i‚T;©ö ê(Tå1ÚÍ%ª­‚y»4á}QU{eøßÞ¸K%:R'…÷;Nì&QÅ$ ¡±€9ÒÕi#É-Ûò,×…r…ciî®)²n—ÕÊ=={ùÜ2Ž¡¯€õð‹ƒ ÉI6~d Qç' ìÆWt:m† Ty§»äÈ ¨·ùþ+•6,[yv±ªô´Í¡Ž÷Ä~q¸èBDÊËΚÁÿiøï”)Y-ÀÐ7öçü¶îÝÛѧ^DêŒ)+È”/ð‰ë’}ÚÞ/ZóÚ"~Ç0’Õ¼EüÐvV‚b²(›§á)í‡ú1–ÀO{Z¿‚·-~6÷èÒMä‘„DDIÛv£!íå•l ±x<¥û…tó^)Ôêù¤^TT†I”‘3TÇdoñ×XÚ€*^‘!†©#Ë鯉Tƒ:7\a5JÅ÷Lç“躹µ¥©p+ä%øb$ÐãZ¸ , ‹{T’Â]³mFïÐÎ&=jå¡„ôdÐ}nowíŸ^“©·Jï?]8 *P¨‘-êuÍì¶¿¤ÈpyΚ0„[QÂ] fJaj6PŽ«ã}¤ÖJ»Y¸TS$-o5{O†0lN^Œ+€áËõ¬wg²vž£³Â ©¬ÞÝ©[ª3¸•hz? ê‹Ñ±‚@©  !þ<óø¹]h/±4‹T!26ùxÓp‹t€ýî>FÝXOª±½¶ŽE¯ã¤ŸsÄPsS²ûd’×¹f™ô‹mT á™YÊIÂöÐfaì¶Æ&ò6¸îò§©7*’Ï»1ÙC).#1Ï8\²èf ÅR(Ù=úX7Én~+£¯úW5Z²Õ²K¿5¡šÏ1«{ÕåZG|]ã€!b$W-?l'ùÊ‚s¬ÿòó· ‚ó,· ¬>[›ÂÕZs*¼Æ‹Ø×_3hA€ß³©N­jáÛe“5ö"g|XÈÉËÓÙÔÿÚ‹ °AE$Yú{oŠÞœEJ úæCfã2õÕÿ}ïÕ™œ{Du©Ì È+×QPϨ”ʃPjZÈ÷ê/BýoÈŠ øÚ§ˆ=dzÿßëq±z¶lºÅI ~«Œc¤pˆ¯eZ¨ ‰¦˜®ã0Ãê¡–sÚŒe­VßôM6µæ_ (NÓqX[}™þ¾ºþæ#‹•w"´g mv ÒæF¬~·É¿´G½›q`A_mló!ÂH¹Ëá:ìE£B¿|c|pì¶T ðÌì]ÌúŽÑÄàªpk²ÂÇÐ]ëp:$@Éçï“v@.TÉò£r$. ðýwˆ^Fp ÞU‡"­õKýÌ“mc]t–Iµ‚ÀcínœŠÿŸjxÖ Í)<{l__øC½þ_²K(ø½?Á˜¡12(báÎPQ5çX¯'¶FƒŒ¿2Ø9Φ·ÐÜ š^r_’ ¥±±›þºRªc&º04ž £16ž$öñï¯%ü„Ìb»õÙ÷°]Ÿ ï •.ŽÁÜÅB«?¸OHùÁâ€8=¯ÃÄvóXŒU(M¥—W¨ ¨ôV/2ÛšÒ·zó6àÅù £FxåDx·´/+Ûj9²p$NjM;8UŒbV|þ7S ‚üflèi¥±käd:¾¸~Ò˜íH‘Ú².2a¦¢Ùà€ž‡ñêS™[á§üæ(&eœz‡Ò6Êv_‚åqÛ0óØZÿQNT /»ª‚ÅKÒ ðÇÜ,¨ù}dzÔˆ|W ²cÐu«’%L´^„È×LÎÎã•k!Òáæ¾i º(1 \³’™F9( FqMï7œBÍÂÉPå ?w5M-(Ҍ˷* í°óª¾(e_%Èže›Ú‡^KZ`•Ãñ6,Ú>Ú`(ÐÜî‰s¨gf®-’?dX®=åÍ“HNßãbË&Öåå9­h%ÜaœpòRÑkÀÞ«¾6 v°/¹>/èÛ>‘Ë…'ÓùòO›`š GtKÍe³|}ÐÙ]Žÿº•%M˜;†YÝ\èÆÂh½W ½Z<Åš˜0ªÙý”‰ÔÅHždSßÐ)’^]ˆÊv.ÊÎõºAÙ/ç2"ØŸºÖ[bE°º54Î/÷•å)0nwð;z°…W­HšZ9~ÎËyà%ÃÕGC£q’ž,}XàVüÑ·:ƒ‡ƒÀgˆ {~³{Þð§æsÄ8޽胬¡Ir\ãQ×Ðæ¨>¼ÈQŠ$ž<‰ðä@”# Ì¿ð.¾Ï_wöŒÏC¹gˈÁA0fŒ A¶ ÙÉ| øû단¨×àBF:3Ð…ßj4£ Ç¿E§$tjs¯8ŽÅØ?Ô˜E#ï”á~lQ˺q=ã3;ªw Ûë‹‘yÙ…\_ I.qÝ­‘Ä3¡öo“ëk»¦jÖ³²Ú™@§9A±ÐJó_]¤biZÄø`[Y’ŠåòWŒM ˆ25V¼Œñ‡aÍm^"•™QCÆ$7ûFÏŸÐݳÁš{šIH2‚F2ö»92ɧ8\œJ/C.u8™9]jÛ‚:ÓûMÝ à’zšý«FÒº={x ü%xÞÆÊ˜…˜Q‘öªÀï=x,»Zš­idžˆ}K¦‡ÁBÐÆãQù’_¹cIïÜæÚv9E*d¢‡Üýñ³dËB:.ê¢h^¤ƒ}ÑAè£ðPMÆ .Sù'ƒXF5Bée¤ø¾_[S§®W¢æhóezM‰ÁŠJ’&˜½®ÝûšÕ+"½ò\ûV p£—$uteî`ô Ó¡!½›c½Y„?àˆøÄÁTò1ŽBR?}˜,‚5ŽÕqº fø¿Ü™im¾s–ƒQU€åv뱪yÅóó°WßzÔ"u~ÎGÃüÆÐÀ.áÅx©s–©ÐvrõÑ…ƒðã®ÁÃÌF\ bº±-$v¦Æ4BZcÍfåœÅm.ïŽ}iEµÝ—)¹¤p88¬I~ž¯¯Í<‚xb†mc÷#^äPÅ*CÈ+Α_”óQÞ¯Sõ(gÕ_཭а¯Î¾Ê1nµ~iOpI4'Ý:*kc}¿âª4£žì>/8ÿ,˜Ïnè¯Oo줳 ½¤[üuº†6„<àÇà .y£ƒôçWJ¡T-{#ÓlËhB—(ãVÍÚšvK+ëªÏ;Cqƒ0@"Q-¶"Ý!»í—Ùw[v]ëD4)$hþŠ<„³w6ûEnnÖ§pg†zZªñó¹çV?ŸЍAènïè4Ic½”.ˆ©Àí™3ZeݶMòË~¨ÓGl Þì§ò/½Z‡Ÿ^Üó¨ÜÍnµÂÁŽ •o”A%›ˆærÏÍ­tK®u‹GŽ"›´DPéb$d5¼CH|^VÑEÇ]-Þ^š‚ ¾»EíEMðlÙj&ˆ™Ž]­¾Œ„É8Q†ê´V³ ï‚%<8W K¬¦æ’.óí¸`ο*j $ýŠ!CE•d°Æ¼«³õŒêEþÐ.!û"œ"&F(ôÀÏì,Tt)*²wÔ…!ÑT°â™–í‘4‹!÷x^rËì>²l›5Q¤fãˆÇÁ“ÈŠLó?¶ì¬ÔèKêa©ðrJr¸¾‰yf=ß*!ãPÖ:ï –pÑÒsël^tȱ,ÕJ˜V|ܬM<ͧêAÐ:XÃ’Ç×£™½¯Û—p¹nbÂüZº‰‡™—†Hl(ñ¾ª‡M _¦ýsÃ…vþ5Á‚°SëØç{Ô·úíÙ ä—k tßœcá'»¹9¸Xó3ñÀƒ‘Mæ—­ä¶NÓØá¯sšáUèã\½Ú”^8¸\·&²œ¦_ä?ª “±ïÂîñâ*å8¹¤K` óW Ðocól5*©E¶òhøïÌæeÒýú; Ïk 6ó†`q» fï§?{­–HÔGÉÄûˆ¾,ª Hú“™Öo tcѧÓêJb5yêð3Ë•E7Ÿ+‚®Q.•¯Ýhù)¦Yuj"„"Û˪‡‹èò·Ñ,HÜé4GÅvºfãÍñ‡a° p&–™ZBªA´Gæ¿ô`‚Åý»wSµX?“sŒûõIˆÖ¦ªh¿`ÀÈøÏþV©aœ!̈Qr£ûÕÄ;Ø¿WÁ“^ú‰ƒÊ»°oHœôii…9Óš*°Oºûê`èôEBü©¨W±Óml<±+* Ѐͬ({³îåÞæô mr¯˜‚‘±äÖ©iò¶Í«†ÌM1»ÃÅÆã¿ ¹}_æ ÷«UÅ›zÏsî\I[ŽìÓÿ ß‘g^O€*Þ·xŒÝÚüv{óƸז, _ñÄU¿g+£gCO²dNQQ*Ãá=4vìZùHºš‘®1¥Âëk¾Ø(Üv•Ë/ñ ‘S~Î&GïææòwèW=‰qש|y’Kã&i6:Òθ›à59$§L |q,goÞ æ½Ö…j\BI“à=ÓkîÀQ Xݦ «ÑU×lÉPÞ*Â]Á´º·þöÈÈ2à£0±>VoDKPÊó=m<º»öñ•9.8°b •3¹Úbv1?Ù:;冑%í–~(Ò„ÒUÚ«­r TÖ0–"ÇV̵»†r¯D‘V‡Ò6—ìcÔ|[ :8¸wL»’¸sT`Õú“DgpÃÝt1)ëGïq ŠÏ®(OJšr¼`/ûààÌj­qjLoÝVdÛ–h™ 4ShRF0hÅÆüÊ׎)ÝØPNVIm r×Ð<­E“ÓO¢ÿÅú`ÿRòÜ]ÑèKçw¾&¢ùoÒ¤“^Ù.) bªåjM*ÖË2]œC¿WAYq`ùë{¿‡¿­NŸÝG“keÙB8æaÜÁ@>©L›–Ì$Oµ¬EO¶¯iØÀ¡3Ÿì¢œ÷ŒeàfàLñ1k,Œ($è[bÁÊf¢ö˜AkWO’.¿Û’)%HÓY*eêøq7\­5gĽWÄxAªÓ’ßó«ÏÌlÈÍ/n«è%›Ž*¦OŒÐrQsƺ®5iªé1ïú¶ÁùÊÛrZ–àã#E… ‹œÚRîë5‡œ8؇ʂ¬Ÿwþ¡mnô„üÏɾÄþýô;ŽÈiQRee7m» ¿˜1³¥Ù*Ñ{cåCDø X88…^X¡]È©æ‘íQ[Gh½‚ôîÃq¾%ÈÁœÍ‘ÚoX>1íISçXŠ ‘d6ZC g¿³ ±¶“°¤É™}•£8àñÈü(眊0ùæG'µÀ‹™ÎÿíÊ& ËKMC ë96yNTò5BB·1ó²™yíeøM– …ßL “ê?6òó¹¤òõ,®×ShF^>Cí=à„dˆx•6GëÜâßK4š]ÂÖò-\øÁ];;㉀’²#Í{QCÚ5Z$j•ª@Ü©#ý'Ù ¨A?âs ‚|&Þ¬ñ¥>³%=“È{:’ù»ÆÍyʲ’¥ÅäO‚6õY8ÃbµþJâ+…=¸¥Åìrì²÷ò%üß2¶U~Zà&WÐÞ[¹ë‡rßÅBäq çxÈU†;x{ùU>æ}7…`o0'ß;ýÕ—GŠZüžGx Á¹"!ÿŒU¯âÇ5ë/¶ý¶µ”ΟѪŠMh{˪æJsx´ôÀé N|C åѯ•yx¹2ç vó˜»&ìl–@ɬŠ:§qb¦J0ô ' Îô>Sžómš[Æ£ÀöUˆ5A ºw·«fÎJúq›‚³€¯£yój´ê“~Ý ü>lõÉ,ho-óµýai¹Á·:£ÂTÀ뺾ô£šX{¥dþW€q^*³§I´6BãÛ®08³NÈV˜;Ç­‡iÃãÓç@d ½[‰þøÚ¨r¦¼D¢¨eHxaM7+7Ëò: /ÝWfae8hº¹rówÀŠàB÷Ý?,³›õ'ˆ!°*L)ÿ_Ù‡ ÿßa-4\þÆã.,Û)ØßUé–ååm7œe~ç#¹´$’d —1ô¥5ÀíC6kë­ÊÄYg¡^ÎC¶=Žýž~¾ Ç 0ÝߺÚG­þm7Ô¾ìu#NJ½‚òaÊPPÁ&/ÊîIžSVwz.®í¢-t:cÒ¦Ø.Ÿþ|vÛu¬e(­è3ó—$ÅîÒ)Ç#ûÅC§ áü™ÇéÔf&Ôͯï³ÑÖ·£ æôdXS1Ñоi:PÖÙè:l@Ù£ÖŠ`|óÌbÄËZ(‚¨ÜþÇ"Ì™}]b£ŒöØP'Y‘œï--Ãi ÒÍÝ»Ð>¿rwéÕrw¨ÜÒòaÕ´[jHî0eä4ÉhE!Ó!4¾Q·Ù$l’6å£Ú—ïånI{J0©¶d¬î¸I­‡2 “†‰Fmµ²{[M¸Uf`et#=ëC@c åÚŒ è!qšXí¹Ì%„ÞJ2G*c‘ ‘æß@5TðCWÿµPäK1²'MËX拉òǺ’M£Í¶ñ5uXÖW9¢ÚÕpýßwÎã3YeÕ&6Ò'8W ïË+÷’fô¾j¹¹]É®}xŽ; ŒÎSßfj'ZeÔIÚzuÂ&ôR¥QPkìj© fýAKüÛî¨W`Ê$ñ]sž=iWô æCýÎ@¨«—€ ‡ÊV(‚Å`*•‚œ‘Ä1N8ìÀß©` =œWØáÂ_ÇEÍ9q¾Ô³ÉÍNý…L€‚uL±ÅÁ‡áM^yšÏÝV){lAP‰Bäsù7¼\ÑýN‚28‚ûwáõócäòï!uͦ†ùYBB+XSÀ¬`\*©ß†¿Ot±5:µœ¤Ç¢3‚amÑÇÙ—‰Œ.Ïêàn‚Ý)y«naËþ­ù>ËGI@îC£œ[ןA‘I:5ÉÖFß,´ËÏÃ8Ixhù†8ñS6`þÅó{ñ›=P³d"îÂ(M¥÷V{çöÜ^¢nÙÕ"rbóçCL·ó>ªMŽ»&â /<´ÈÍ`¶¬L]>õ–»¼‘­·˜äš]dŒ„§ç°hÂ_H>i#en’J±™¢‹ykÔl9ú7.Z¢Èõ†1üæòàPP(ÂkMÓ2No:õ~Ðõ¶®>uNëÅJN_:|ŸªÇF¨N”^Â$šºùÆ·=°Ào´•›(9WœÁÙJÕ›dïƒñOœ`M³½6]SÖˆñ)ãB›Ž’ŸKXHp÷ýfÌ‘Êuà€{ܺ8÷.|î3Ï(dv"«ûJšÔã¤%HŠëÄoÑ Å1÷ýÙ—’2p £qηM*[Ŧ]”Å`Kñ*­–$z9Mu/ÎXˆ)ÀdÑ—¦5É,—ãïe(rñm5.LôLèäÞQîˆÙϦîêãc?Ò¹Žƒýt ç•Wþù;I/îõiþµ³ŒË·.¤g?áJ9‰É¸MŽ7€õOÚ’í÷×ÒÍä ÚyzõÀ…ú‘š,Möª'g#ŠÈ ‹_¯i©•ùÓvd› Úg2n“nÖÒj[ÐwO Û?—Šix†µ}XqšCï{„\…ÏfI¤ Âu˜}UÚ89|~›wÚ†+.ò U”í) T"ŒÔ iá¡Y« %µÄ=·‹Ü»¯ú>™P‘L°µýÚ~bLiÀßv¿äKWýþæÑŒ¶×!—2"µŸ‚4kç7V”Üäža5 û¹GPÊOðŠ%¶²BãmoÉÑE.ž<\A £ör飛 ÅiªH!•îIäçX‡1À€ºWþÍmP·Þs½¹w㘤ŽWaÙ Ðó³ÂVu íœÎª2NzÅ5YÉ—{’ÉÔMƒp©Ï.É´´oä½Ñ¾ËOXàÙ¶@ÖÑ\òð/î[ºz_Öñÿ–§-ˆçNhõƒpoôI‚às[LžQY"FÓŠs[ø Àì_CÜ’³›±HÀZ2âì»ÑgýRáû ¬af3ý©ú¢váD¬OnEv ñ-iE¯µQr3ê˜sZíˆu2ÌÌAÍ,mrî4Ÿžœêé•3e°»#U’zÞ39h}©ûñîô§# ¡ç‹u2ø ÛLpÚ„¼s¼Ø@`—^a·ø¿è°pl)²!I* ?õˆg1HðL ê² IÎ{@CœŠŸöº5Ï@½¬µ™«ÖÜc³Ñ%À€k"{F¦H¡QJ¼Ä¦ËÔ«Š&Ý. !•L{ò¹X\øa>1¯eE[¿üzã:êƒ\kCÊÙjTÄ.l½6SVI½ ÀM ûm05Y–RèÅqp•8ã²áêpƒ¦#8ߦs}þ=‘q½.M£¢³6¬ÁcATþ¸a+E°*•bu2ö£ÈË‹cÒ.è>Áóî|Àò‹GdC¿ìÂшÍK4ê:é" E1«:œèÃd’é:ÿ'»Ú†¦´!œiã>ÃXp òzÕ²¬ãv˜+2©lzSMFoµïÉ‹FæÝ@¤œA·®ÃžœùÉZ"eÅò‚ذ¼rÌIÜ$|޼KØ4-…åÚЋ%ß­þÓ&T½ ¥ßÝÂ¥Uáé„‘ð‹˜ÉW=Æ$ÈŸùË0m…~Ñ ð®ã³\m$;ë)a¾ÕkÜ ß<\×' «—_9f jÅŽå˜ÑDíQÌ>9>`Ùá<Š˜‚Oå[x‚Ö£·$Ùq¬g'/’SwÊQ¡BÜæ`«~;+E¡ý„i‚ý™¦ÂüO2ò`êÿ_Lã >5J‘ßD# “|‚òQ¥–=xbü$ëËA¾q¬mfº qCÑGÌÓï}ÚF&[éIcÝÚœCßAGNWò‚¡Þ Ioâ¹7KàP=¯Õ£Ænôô|îÖÃ,·v}·Ôß{?YëµyŽºˆjI†Q˜Í\æ(2ž%âÀ'”Z,,–ý\ØÊ®6:݇ô±ÝÚïxôOeÛ¦Ý!ÒÒaòæVöYÆ”ŒÜ›'º›Ë—¸ÈÞøÆf!uJÅzİfŸÉBtãøn2t©¹­‹Ýv˜xÿ^nõ’Õ#kxî.¬4(Í1# ®æó0&™ëB(¡ bã¾ø©B¸¤¸ÀvâÎFT(]"sDŸçÒºÓA™$®ëQýNöC¾žÀ}g„]ÅíeCLÜ©À¸tk¯†>¤’ð…lÜï„ÌGâÅŽ}õ¼–é ÖÃjÂ,7ÄÂ_ÿõ\öé|¨{ºÈ·qŒ4L»W™Ë_A’!IKM¢ããúI¼„Xk@-±¶,u^âì âd÷iì—BÔŠŒ„€Ùåÿ÷3h¦0Šªœ£ #*\Ço7C—LŠà«4yìÄôT'Ã;ŒYhðEY°­vJ½‘€× Å}ÙÈ.H])Ùêp#H­G#AÆ1œP kÿ¥ÖIGÛ9ÃEšú9m6oÊ®¡©åñè«yÃåóÍŠ\êƒ?´n8²=·_OÌŽ7~˜Å“ ®J–¡žñu!N³’ªÒ!Ö¨ å e¦–±7JÞxʹ9VÞ)ŸáeÚ¬‰ÄVóØIXÑMqjåÈAê·n¼aÍÔËß×3,•FS-„âðCyQ cÛ*YGÿR¹çúÙàù@ãœÓÔÛ¶7L£÷ñE}åwAåô¸RóNHb+mS^q€{E¨ñø§j6{²êƒ,¬¦/¢þ½¨Ø¾bź×n©xÛm]ZQên%³Ž?fã=  vð¼tİB«¨*záF4løuN³Æ''´}Ðð¨v…äøó4êh©©ôÊfø9FÛ¯:åoåuF§N84Ζ `91T×M¨îë“¼ß ­•ô}Òq¥ïvÇÝÒëºÞlTê“m‹1æŸQ§šsÖ®$ÁQ®è`çí¹6.S²£‡fB‚ŽªUÇꎟenCÛà%6ävº{—Ϫ–¯u°‡µ}ã[ÁËûÎð(DÕ o4Þ#5bòn¥…O-¤³Z½'šV³[Ü2ëœ{NÚŸ>LÀw6¥¬Ô¸ó)õ_|Ã")KçÕçSúƒZ.·÷Ì|É¿£Ü-Š›Ó!Ô0š»0TB*n8~’[‡ $¸;€æã,™Å8 "Ì'“’ÛÒÉkN.å¶NÓØá¯s«yd[bñ]9òE±w0øÃo,iÎ^‡3ù íÚ#÷P&:’ȈŠé7”CLcQ. %tÙ­éêöK®mã¨'u‹"ÛIòHÑzÅètÉq#|ñóÃ.[n 5HŠÃ»HÜÐaA‘B¿¬pã&>Bei/å*– –B…CÐd¥|>Ó˜Lùgí'©‘!÷A/*‘{—© *·é7‰Š.Üš•ù6¼çµ€ X ‚z²atñÄcË{*A®ô:ο¼È Rø”€l¢ ê‹«ìßüþàZc3]ááW«ÈQ$fÂ˹÷#fÀL¯ 5­Š|øõäOýݹbbÇïË6 d߉BjMë‡î˜î M‚1 ð¯šo‘Ú|+T£ÓžÈ{®Mæ J®ýÄ‚µN¥#•Þx´¢Ic„˜©¤y|Ætz'…ë+[÷~7;.X"ñ(ASU`%ò×ë ØhNLXɨf Ç\*!¸¾gM ªÿQÔ€ÍT{:!§íäg²ÿЇÖK‹Ð™¹'˜/§oÜsNS³ e>Ö&<Ñx.Xa ç›ê·Ë»~ÛŠ«ésBªÿ@yZNBHBY<6®öJSÜfE^F%>¸¬7ìcÞ)]^‚ú_õ!t~t–ÅhjªæZînB…sT?}K}ÃqƒgÅŠSx7׃Î6( гÒÎÃÙ •HÏRÏ0E‰Ì9È:ÀtEGŸ€„S¼TÐÇ OEÿ ·Y>.úª:ÈÙÆTŸ­<¢ùĒȧnqêF>±.M<3t6ÛXø´”#ÌžúçU‹¥?Û< cýÄì•N™Þ$v d‰š-jï@%…ó“(Gw„õ׋ºB" Ü7[ðÅg¾®{÷Ò|ÝÉÊsM_õvF` ú‘\÷©7¾±H.«-¦_‘7J+rwn#<#ý';ûWMMåAþMgÅìcä=û;Ú£8£àÁ“w±Ul¨nÐáFÉhÇãŒÉ¥UûðŽÝÉ4•ÐÇ67~|Ëõ›çÍZdö¡ŒÑÖ>\6 N¼’ì$ÖU™GuS¹g+Þƒð#*«sÙm+ÓZkÃ}8Ýâ±½ˆMÚ• =KiŠ¿BF/RMË©ªß™°;x¸¹è>7D=É,•qt1(ѧÝu¹§ÆsƒÊãh¢ÎÂ}Í5â7X Lš‰D«°U‰v`,xÔöî¢:U·§Á¯J»IÓyf-§&‘J»˜}#NPÓ?wU{Èraî˜@¨ßÅÄÅàå‰ZJ.Œ!ÞûùŸ½¤­¶•g•€–¨J184éãIÓ:Y>çÚtb(ŽÚ`„ TœjöšÒþuA9Õ5Á‡z‚y´ÀW> tµC¿ W$¯Ù˜R”gÜûïbl¸´Yî{-šC•OÜ뤟 Ûí¼ìU™Æ‘7þN³Öz%žï:ZÞ¦@Øß‚Xô2{w£œ Ž’l¯3F7è ‹ú®wiìª!ox¶ ßt²€^3óák±ÒÿVц”¦K1Jm6F—)ûì[ ¾·ç÷ Òç”~OaçìgÏԼ鶚YVr1}‡Œ ,žº'‰ã>ÕŸ`°m¸BÞaj’ÀÇeS‡Íô™!¼ÜΫíBw+3*«Î$þ7k¦d*ÿ‰ç¢5ú^aáXs"vŸíäBÖøîDs‚¨üÜ,»[MóÛ󶳘ºÔíŠÅ4eÒ~@Î_…B:åqÄÒêŠ}T¶¶póõïÚ| GhМÀÖ$mHÏ7oGó꜎Ä(O¡aGXš-=­}M¬¸‰^\Ö +ýhbuܨ{NÊ垃©´V°´§Ðâµ1Õûæ(Ñ™çqzW‰BÂ&x™rneƘb4–QN UÐ6€ ð{Ï»Á&ÁBâsŽpÁ÷ˆ÷ò‹JªjÏ\Ÿ 7ŠêÒû^ü¼Íš)tzÉ×VsCÿ?Ó‘^” q9´cV ¬ØÉžx¨ÛQæ@rV ׌¶ÑÍÊ´îÏ}ìýx#§#”ÿ±“?ªÁñ¢9¼»¼ Ç@Š9^÷h…ùßJX‰9û@6$P¾f)>]M! áõi¤ÀèžYUõ¯ø ¨8Ôð>M ‡6é?+e?×%‘ž+`:éÏf¾K½Fè\_púyà˜¿Kä¥{Û9ð/hÈÏ=iûy…BÓT\;±6^FÜ`ÁÓBÉC"î–üÏ’…WoOGΡxj,ž{ëCßXf8µÄŸVAéþòB2B}[B=Ë—×vÍèD¶‰F>â\-4ϯ¨ Á¦Ëôn[Šß|Q.ã锩-VM­¿¨3#¬ò ±™O9¡ g´³-´«ØÎ÷ ¹Ñ¼”‘m^ò©—ãu_Î%~… ðØý‰·Û8ÑeRÂ3;Ä¡§2a•_<„,ߟéÈ¿K«/äò¶ëe ¸Œ’ÿý3§{ỡÛkÎ3jýaJ˜oSJ¹ y¥˜¬Ü4ËÛ/­tHîÓ¿´Kð?ÔW ]»˜™û=ñ‹7\€%ƒÜê¬8>D‡ƒ[Û}ª“pÎÓý⧺gC—cøÐôš"ÄŸ•‡_4b+±ÛÂTAž6Æ6¼2<v]Þt)Þ¡P rWôµ<e¿UÙXÐ,æß‹ç.àt{¸…ˆ„õ8C· ÄI»•,wÿK¶yO7ð­ÅêÝ÷h‹œÑ1·ðKˆ‹k@‘oAmù%;CíïÙ°/쎠 ²)^à_!¨O‰`]ñ´Ú×w†Çþ´P(U@è üÊøà½ýÚ³ÄN]%âkæ.A)ácÙ,–‘…¡âÚ@ö՜޿V¡¥`ç(šúbÌóﲎ”¤VjöT©ÇÃK|4ׯ1ÖkªHëåFüÉcÓÓ궛Яs±â¾?ùµm>èǼNN)r0‚8Hú«åPcNWQ(Y¸LG`Ùà ™øbqïMÅñ$ý÷AÍ¿7,Æ@Ï©÷¿-~Õ|1dv;°Ùõp3Ÿ¸“?'ðöOö‚¬ŽÞÃó°CQS`S¬ÅÀÿbŒžëq=¼µµßÙO™óPþlCF9ø”Ì\¿‡nNßi5³²â»W%ñQ#ÕŠ +M]<&¡(ã®[gÌ݈LPzZ7ýoØöuŸ’zýŠ‚°ªxIŒà™øç ±°ˆ½é ìpOŽ„èáVé`¾Õ³¡VÊùbÖ ð0iö &†=dÇ&Ƀ³7ÿ Gö9‰Ž =ÊøM oâ›Ú«ü±¶5dv›ìöÕÝ’¢ˆL-´c•-%áSœÛ&dkŒ\¯D\Ó†ÈW÷aÝîÓ|*£p-Bíϛ¯±K Å 4êTŸ{…‹U­M`…í³e.æ)òþë2Õã¦n1y’d¼œV_n/&²7d3ú4|:ç‘®5®Ä͉$Y65âªZzÄ„kÎXxãNìþ쉥IªM³ÀLTd`"d%ûs»!ëƒ**â_Ôùñ£g%óõ.å·1¯mW°Pœ¥\@úøÅ˜RR8¹‡!åï2`…òÙ¦O’¸ Í/ø…¶5·‚ÛÅ™îÖÔVí˜{ úLƒ¹g®Él“ø¥äí>k½a£Á1ÂÑåg‘bej^£ExW|ÎÑŒÕî ³÷ݲÁäqÁq9aÓɶd©¸Š ‡f–$ ûíw°Íé¤îkzss¯¨,>²Ýoÿïÿ’le2](—@ñ™n:!BGÌ(JTZÆÃÓbƒ3¬ý­RÒ4Œ¨8³dBÖ›)k€æºæ2ãðXÛCäq”L¬©fÝÌ}¸Ë1¿¬G0†êëhIÝë– îM²­ÇºÈlªªÀŒ†-áøqÁ#÷W:þi3­ó0õÒµÜr')håË|ºÔ\ØD›×­œµî€©LA­8žg˜ÕS§A¦)ósÛ’âI›G9_6B’'âtÙz4…=,ÏÓ|­¢ Ñ~ü ."¿ÕH¥Y| ‰Õs¯…H-öÙÁd»Hå]«ý³‹ÕEóáÊÓ"¯¨DˆkJ?”|±QAš¹0&ýïToš¾VpJÄgèVÿ¡h! X\W{í':ËkC âK9ç;m«ý¡’öÆ4aQ´¬HƒWo½?ⲯšßs aÔlà:)‰v¬öUÿILx7û…±¹4mtÇV¡«ÎÍGf1Pë¬e‰ÈIAóeW[ì žgïÀ ½+…,KϤ+ J¹ß™ãÞV#èªÖ—¾%¼¢ºž† œ—Ž€Ý¤ˆf?¯‹!P×h8¬ó˜‡<Ù´lÙ<›ê-Wl«Ý‘¿<ø6›ÔÃéßàap‡ë= d€a V±QÁ_‰[lšÆ?ÚÉAñmv ÎÔÑ~„KÆ¢XsÄÿƒñµ¥[Óëöåešú#p a1¹›š’¯1æ€N]ˆRJTedg¢zkÓÀý¶P¼wáÖ‡Òé±w¥mA@ ãŒš´iö©Y}/Ùq…ÈbkìƒñdÁ6ݹO¸n 4,HÙsÕÑÜû›$QÛD¼cÅå _gð]_hiP_К&³%¸@Èþ—áÊõB†e»ì¾Çhš­E|`_¥±D)™gdŽ¡oYË(¼Ñ¢ÀwÓÅÇ&{ïáôc7ý#KÈ+ƒ kWË÷Au®ðÓ­œ0§Ÿ2‡ùÿg?C¥¶ Ÿ!ëì.=y»ÉJÐ[Wb4â8ß“QýHöiz¤SÁ,I¢mϪ \÷i«¹9”Ã2xý"J§o> P†•Ìzü ö”šCd,‘¬Î ,füµ8>ÑõÐ|1mØÎ8¤îä)Õz˜©íp5{¾­ûÐøäÓâÌúÌ :÷µK¥¿¹Û0T£ŸÖ‘=ØÙúD3¶%i¼5cýŽ)óêÙ ØzöäKKÒÝÂT'×Vó*¿yÍÏ37a&À¹'Fè&§‹W–] #}äVèK2NØ]õë eœ#¥BÕ?#Ž2ÀÊ]ýÛBïEþd-üƈyªH¡ÔÅ·dX:™Ö¡ÿÛ}õiçË#ññç“åaˆ-ç4Úw—±-W'kmøYÑé"×òj8•åç‹Ê­TnÆLê–‰+ï‡ñ³%#vnÖÀûœˆu¸ œø'µˆîÚËKºïã`1‰Ö;¥O°2Ϥ.R4ÍÑÚ |ÂjГå sÁØ<”sÝö%ïx^…®ÎÕ–²Áê‘€º¥L Œ£ì9c^ØÌÅAáÇ÷ÃCËþ¢‹ ¥àn>x㬣ӹsubó$5l鱤úŸOj—ÞÒuu»× ÓS©›Ô*ÌkžâfûE” •÷»^DY¤`+Ý.¾2£6@}°n…ì:ù€’1Hf2d¾6ANòünþý­7—•Þ\n¡ƒ©¶Ð¯c,(ÂêÇZP¶ªaC¼ÖoÛÞdËë Pʯ|õ9•Lç>U¶0Ù¶ñ"Η‚¡]°{òÇ’ ôGt‹?áJL^o“ye^±C{ò†ä}Œ‰˜ÊA¥µøÐeÏ]÷„nÜî…â.–„Sœ¢D¾³ÞöGÔy¤Ô „È­¾¤1¤»TkÀþ ûSÊta[à|,‡­g ¡š´ lºÉ»ðb„šbà9‚°ç)ì…H}/",ß…–ËO‡ö±&?© O" eú…RÚ3.÷™¥²šçKS`{ T âÌ­§17*×ónð“lÛ',ŒÈö♓__ÿWÙ.xú޲ÐMCpùíCÀÏîḆE¦õjÄøúݳ@ã ;>P¹WNëUçˆL<'´Ž&>l˜žÆ£H””‡¾OJˆèXYï@”ÀÛm'LÀUª”dx·‰sàdŒuú Ft FÏØ¯¼û³ÌQ­­I;OoP±SýHa²ÇBõÎÄî{TÍßÓû0Tßôo ˵¯,]î}öxd·{Èè.³þf]ÜÄŽÈ+ÐÞZ½ ©3cª-òDM®;æT£¯d¢g¸ÑFß±a|ùÊÈ?ïyaW?ëæ×Ïà–V´Èz»â1xú_*kE™ñLï"ç›å¹ëÐÂð^üH¬).jJ÷nÑL´êoÜðs?L%žõ-r¼É£äÂß'˜?jÿ¬¯WïV¥I/tÊߚ؅[ªë•± LcÉ-H+³#Ý)#fcljÛœÉË ¢™íñÏ&ša®ÄRÛ=Ô W®¼²ŒäwH9u|S¾Ò‡êÚµ¨³$®éîøŒÁŠ˜èÙ†H°zbP‹êúLgÉ)Þ²Ìîï=ì?{‘oÁk0mµ9‘v¦èxqߤ‘„/x>(u…ƒþ$u’.V×n nª­¹e¾ƒ’cmò˜8Ï2ý:üTY]Ë*m§XônÌÚÛÎòÛ‹§ ”¨ÐþŸ~«à&*ô•‰žï˜i@¨AN^ã8+¾ÑEM h±ÇÛòhëÑ‚‚ÅØÇg 1ºœ—%!V˜D+«ž»uõí&Sײ¹õ%NN2¾¹Õ·W’à‘ÎÍŠÁ—2ƒBÛ¯>Ê¢ÿy¹“öµÒ©ê<{¼âhö¦é"dNJŒ…9öÀ½}®‘՛ɩm“K*[mû{ÐÅ‘ìÒ!£®¢K“i80ÀÇúþ®OÀ‡¹x€dð;øÆ;UŒ»M/ÕCk ¼ßÖ<7&gqz[ÞÔo¼2‘2¢áå0R=hv@üÇæ|”eöÁ+å&xOíŽkU:_hº&–[>ì™ÿ`ˆN_êq‹€¹“ãçë׉#UÔ¸%šñt¸ o$3¼ày,§>ô\q5à ,U£¯œ:ÚŒs•_~áÖ!µÄu ¶¦œ·–÷Ñí5ß!‰KPZW³ÚÿöÌ kÇ3×G`E ÓÆ¥8J@`7 Ô ´1Å 3@)€ÈïÂ/@ŽÉxÀâ ê¾2¾pF6auŽÒânªÄËClT_¡4пðM­lTÄ4o+4n@å.×0黚iݳ¼ßìë©!hœÝêÁÝÐÍ|ÝbSç‘‘ óB_zÔ­]‘EöS˜ ‘¸,àÞŠµˆö‘sTMž ޡė¬FpÅu&ªƒíJ`hfÏ+­ —Ù¿´0ÏËã–·`ÂTôÕbñ¹Ó5ÛèCÞuÆŒY"ËGcñšØŠgr´ÙMݰô‚çéÍÈñúÀ[ÆÞ=]χ'Cã,EtŠž …~Ъ99•/'ðD­6w³jœ‘ÍBþÝêª3]†fó×HúNÓ\ÚÎ&¡-‰ÌÌ Ü m^ˆ+%À‰ãTšé)ƒ»¢hI”„‘àô8?w–•É©iDÁE“‚åB§ížC*…h÷󸵵𛞢Æô>:€%ž&‰ù¼_Z¦#T¹·yL@!æU錷¸“à Ÿú¦@­MÞ e¤ÅÒ„)°×Ì&ŽÙ˜ysS‚(N«Ð¾Qðµ_Ÿ>Î&ƒŽÖíNVÖd0 4󔇺Ð*¯’Ž"ªöóÔ-O­P¥bõs„MÒ!Ȱ왋DÞ®<õ’É=ø7ÈP!wîç¹{m”û&“G^žä—.•¿¤´uõÍ™²»ÝjøðÙ賦™¥Â,ˆ§ nQÌï]1žá& ðg mâápn_1hóò%j×K_ZŠùv+‰Œü (E5…+ŒÙÅ”ly†•KñÓУÊgÜ®Z%ûšvœ9afŸü´ôoΜ+…hË7ÿ|Øgn‚ÖrHøØ‡4:vXÒå)™Ì5s·ŠÍ—O$÷5UÓJÅZ­é©]ž˜¯ÕPmws->ý(¤Ÿ)˜‚8 f·ïÃV\XÜlßs­'%8šzãƒ-<2¹Ñ§›MãšÔ–Áåâ«¿n†Ûl­ëÞÝbE¸:†ˆ–ç1~qôÏëR\lÀÚ×ii±ïž-¦§ˆ.ä™{‘Ätßá¤çïÆ³ËMk[þäTÿÅAì.+†žÎÍцzãI®¯æ5Þž¨-¾_É=HÖq¢åÖÐÆ/ @ å=zkfÈ0óXuLTð"öÿAÛ•†XÉO|ô f±gÛ"‰O“Õ^ÇþUÁ?Ú\jv£»£ÔæíÈ–×¹ §øI8)©ï[%=›]tŸÐÁÇŽð)ÓH}÷Œ)ýÅI$½Œã¬¸'?b‘'ÚÚXEü M¥'+±9ƒL”ˆ²aªñ›ëu–GX~4º¶Ùl¨›èMŽð„õÔÁýæKæÎàÛ;»YöZ‡G³ªj¸£pѹ2âf8Pl¬7˜/ufÐKÉÌ ˜Ñ`]̬v§U#OŠZY=´‰tâŒIòVŽ'¨HK.hf…zkß.ükí=èûþã”D–®ý ñ¿É¼Ç–‰lnû¦… |n ö+ÑDÕš¢:&]Ûã•°dC¼g h1­3ëvZàœœÿ{»·œë‘+Ù·B@DÀÚè6Ÿ.NSPuÈnCøà QHbý5•8L5èðDêÿÎT®.¦¤Yƒj’NKÉ×,N$¿èCÌ!,i}‘úcÖ ,ý)޹PyC‡)ç^“+Qmù Ûœý{eQm#ö×ýï$?9w¶To7duÌÐÕøTØ=e¸ã mÎeBi³Lº–•v„øm“ä9Ni+ŽÚ±<õs”•`Ñ¡ yV6'`£ã!?›·ð›«<—Û«ÄÑh|_ ¼Ê‹¦_]D×鋈ÅaLUC·þL–ŸÏéÍ],ÓL1L¶Þ±“ÕwƒµÒ ø’® f\sfNäˆ8æN3¦Ë7k1a«DlðÕL§þONxâúÀÝ^VÔ%×L0~¼Ý»&[ÌåúÕ¢ÔÊ—õÊ,éåYÎÿ´÷ÍU[ä8赫r5”ú3GI6ËOÝ[½ípy¶½Ï|õKºòÏ*;™ŸËYVåyÍq«&10‚³íiž€Hð»¾á'øÇò ¢±±ZAX) i(‰‚n4öDZ’„¾bþLô9ȹc–椋æ¿åX}w×”n‘c憡æ©7`5˜Eñd’ô;ÄXŸÕv£%°™*™¾×˜YkŸêÅÆÐO#5'½9ÅaëyµET[¯VÞuF²ÆÅ›õ·P¼‡ €×ujÚnИ/O'¡Úú+·?c”@'ŸZ^i½ótˆUÆãh–³y×þ’"µ C¥‚$«úÇ›ò –† î0o›ÏåbÇ­{}È!uröçëC{/UËJ¶Ç›bÉð·yøðjÞ6Uèì¡ö|¯'†(Sû·ÐÜù*®:µ¦åÞd:§ 4‹x‚'öž;Ø ü©uMOŠ÷åqžbü6 0ù¼ ‘F Šm·/{ˉD]ÏÄ,<€K›¥·˜’Å3¢Ÿi´e¿dhG‚äÖØó7n²ôŰÓfÏ ÿ$¾ Ã]Wœc‰Ç”µdj¢mžgV• ˜àßu8Mç‹èrl-§Q·’kC“ D¤ö䕯úB¡º__®æë`óç”;ߎ­ŒË«™ª³#މO–.#6†Ë»“n†iê¢!=.7Z7EK‹Žõ°@[Ÿ ¹@äRŸeê oO?7¯½oAŽ0f£Ð=ÔØw" 3s?”Uн.Ú‘©âCº2~ÍËV97ÿ0VZœ2ýˆOÝ}&N”’TGƒ®ÌmŸ/ÐW1¹ã %#ýX({dÐ{].Ö2ž¶^ÐìVoA×ô” ñî˜!á›À®£û‡Š`Š÷yäÈÄŸ'F”‡$wÞyØÁ9µÑÐ2+ÆøÎ’5p`(øêóRn€¢°!Ç茷øJ <ø· ¢¦õuö³hÃßC-!z †÷¹|OùÜ¿˜y] þŠ‹¢:æ!ÊwÈZ´°Q…~ŽAìeÔsô‡ÔÁeñÊÓé6M-:Už©ç¨Ýš…ù¥{ð)B— \óaÑØô]a…Uà-Có%zˆ±ÌÔ¬¼óŒÄ¡s©­†OܳJ ÔPð!d¬„¦ÈT¡;Ÿóçl6JÝX†iÀY~”éÈð¸âñå àðõ (üˆ:U ]¤aøå;K¤’§ÈT}e—ˆÓFîâø=ð¦¢J¯ªL&[ŽXJL¥°°^žA]n(AäMɇ=fûº)g[€Î…ÀÕTæŽ}†scäáoòÒƒtÏ­V(oUïðV^ˆÜfKþœÛúVÃñ¿<œYdÂcÌB@ƒÂº›kBÕw'Ó‹žâSó”yž°¶›3¶M3^Gø@¬Ž ñ.åRxh§ÂïÞ\E?g’ƒ6ŠŽ}e4<øÞî–ÊöŸºêW¹Ž¯ Ö|XÎ]¦™¤>†Ä`ÒOj0ÔZ&ÿ³ ©¨/¢?ÎL¶>;©”Ïi‰3[¯l½ã¾½Y²ëjVE¢å~ˆ‹¢_Ž’D½SÊj_’À­ÇÖ´éÝÏ—~ƒI!m~Óψ)ZÑqxf $½RKŒ2M9HÈmuês`Qºµ•Sw,¡É²<Ô4LßûΪx©d,é/™ØGfë’YæI17C)‚a „Ñ&lÁk ‰™/ÞŠòøpLBÖŽ?©Å) é‘j7ÿî3p˜oCÉ»)Ûõ« –÷a²¹g™ä˜¾†mÔÝ.ó¢”þÇÚUÎYÜ®]§„­ÿUýÞ~#ÑýÄsSF~t2À2E‰½ÊžT!(F wêTZ ì-,ÅTÐ w¢œÂ~‹v¾KtvJ·=‚Ÿ9ðSà2u;y=lWåèäy*L}CO„ú)Óš" h‘6kö@pÓ@!+_ÿ¡œ?¸ÎÂihÌ+3J$Èÿ$À9³a˜›LÈêJ:zt›ñšã0=7?UlMöºm®P­î(§ÅúJ¹9"øu‰ÄéT¼'Cjç£Øø€ PøL ãG:×ÈaBãD} £ð·ú‰Ž*5 ¨:t.ªmâ3ÊvÙŽ]ê*Ešm±êØÒ “˜F‹Pý£]%ë|®üÎ):û‹âÚ?ëÅöú޳”ħiþC Owöá-«!¡‘#àÒf5CYžkÛ3”Õ‹Ð`ˆyOv¡>œêWÏüÎÄB™×Q*{|RC “Z'Ió隥í+«ö±ÏÙƒ6b2Öçèiïñ+}ƒû*? hFÐ^¿ùÀ‰F·CÿÛRcÝ’d3Ü¬Ãøš©«ŒÐuÑ\ŽáÇÉ7í‚7…qPý÷%ˇņïÿë±aK8Ò“–Xm¤Å ·m È~ Ô Zß_5ÃáÚv¸äèå×l†\ 6È5Æ”Ž–B`ÿxb3{´¢u3 éÆEÅ_Hr—„/¢ž‹nRjнÈG! žL®«CQi3¿ â@û¹rƒÝX¼Qâ_ÞÞ`Fõ7ÕRìñzÒ‹ô„ `ü:îÅîû,üö'£{b–3GÅUa© "Pk:zº½Üà¢v%vÿŠ(*X"®iXÓK%C;‚¨l±²ÇÆ·(Ö:Ü‚ç,«‡‡qÁÓˆGWºök€0¦Ã;‘ÁW™sž´OÁC*dzڔÿÑ!àòÖ”ÍÛÑ€g);èʼÎ6ÿÏšw=ci¨ ”4•#"9¤Ц+ðêÔ4†°1P‘ó"þ,o ^òɱ.×w¾›ƒ:‘ªHlQIÆþ±dGšn<ù[Ž ÝÌ7ô¦Íªky”ÿ‹Ü’0êá‡?¸<µY&¢5ÿ[.eÌ£¬Ä*ÍÒÚ~]žÞC“®âÊ~p¢&Nrs±ŸÁ5eoîõ„{²¹mŠÄNÉí\<làŒÁä™lâ¼£w?ržÉûwÆS®¶dýŸmÀú!! ÈK;–§ôÏY,B<eÁ ¡oÊkK3;_¸Õ+ioχ¢1OrTÍWuÄLÃé9a@ýX¶%÷HèêÜ31ùœÜ+Vÿ‘ õ@ÊPûÉD W;°wP0Ñò¬ÕÁ®&Ô53 á Ë%O¯¼ t¨-–Õ275EéL4C£Î~£ü;àsþ.ëà,5‚©úîb7@Æfñ ¡•µ ¼á$‹òÞYÌ)kØÖšãRŠþ»ö¬pGjöiн¨¨|Z(n}±¤ãÄ‚.Tb|Qƒz«e—ìÌo(G|fsåÏ6=¢€Sû·å¸ƒä÷XJÎG0Š8¦ª%:®åiè‡w¸Ló:ºçÄ‘’³R“ÀäÁÈ]}ã~øA˜ö›¤Äi¯HåÝ^Sï®GÀ>˜U¡ÂT;î^GQü° #kqü ÷Ë!!b'‘hB3˜äƒui%§[¯£Ù2Ðö·»˜Q½Ó=waaöëÃbò?Œ7M„îé^ý W®,BÝsýxé¾i}+ »¨7Ð#¸»”ö¿‹‰îÈ‘K‚">÷MéIÕãàRY§ÿ#îtuÎ&–Ç'¶fX—¤AÑàÛ“½j-‡ìÝLâúå+ÿ{bû+†;ÕÛ:›9:¬~Ö•™±Ö6ÔG袺ñvœÁØ~Ó¼TÓB/;É®šVš‘¼I™‚²ÎÒÖ„çÌycäÈtûo#n _!LED±%ºUC0MO÷³ú/¼0Äè0üÙ«VäóǸarÆÿ.{ž¡Œc¹‚ºŒoã‘ W3õ˜(Ù8&]ˆØ«stä…é‚q,å܈c5 }ôgÒ»(ÕúÏò¨§`ñ|ûbLH»÷q;ÄŠY ðDnå(û‚|œgõFñâþ!áÙ€ƒ‰z®÷ºë®Î©õÇXð† K;mÄD?˜-ÔWc4—ÚËÕ²£@¯%`—ÍDû6݌ߣ¬††DK€ßv†F›ö·½¬vª^§6à³Â¾v&éÁxúï¢SÒ]•/œ-#l#N\WNñ› *Š´¥@ŒY­g|HÖÈ´× ÔeñO¦¯%»,Â… Ÿ^»ÏÎÿ´£>K81?€p N-WâÁ“ò í{l¸e#””2V’kå ‡Èà(1 ¡gx«j ÷{s (˜\C1aÑä½eŽžm…~±ƒ=Ò—;>}DO"ì‰2€€T[·¯ÝJâœO Þ‘ " ˜>yé á.=h–0ˆÒ¹ÊÖÜ*"Ø5Ø€Arº_¤Ó­øü€á¸€D=¬‹¬ÕeϪ-ÁÊNA€De;q4ð~Ò“ÇÊ!6ÇQòcüyfýŽeÉOà{;OM‰Æw-=rýØ‹ž+©µÊÛJ嵄ÃK¾²ÐE3åå³}×ÀèRÏä•0óР9K6’k“”º[y7E2NQN/ièy”7û”£tÙ‹‰­“añ€ <).·^3“§¹Xûñü2zŠXâ¨Í0 iƒÎ¥ÎñhÊïuÒ䥠kWlÃâÀøNÃb~§ñíà*µ¤ÕùL˜p®šæRIm¦‹Gøós-ßè ã|ÿÛ˜>@j™tùÖf]õ±&TÌìáÛ¥NЊ½ûì-‚#àu`s iº(œïÅ6‰zBh°Œ¶âT ©«Bñ¿îØ€ÐÞõ‰Æ€÷‡ ¥…š»P^ÔYY|Ò»Nü¦…a›«ó*D¾lœêYß)N9ŒkX7˜Ÿ¬µ´4!‡«f Š ÿÇV¿¢¿@`8$…µã#»–ý"Å¥¢GŒFñÕ«ø­v³ê´œjcJ(ëbã ¾)#b+½ÃÞÝ;¾B-]„í¢Ö冷ϖDÆ…#LšàŽ.åÇç¾z†£ÄÍkÒß®ŽR­CR_Y†´©¥ÉßȆ޵Óá¿ó*š•4Ç¿þ­é’›VXÿ¾ëöoz=gZõZ«n¾‰$#Bûº'„Ç€¼Û²úÛè\Ù/ô'éfïüŠÑfÛï?7#˜Ì£BNùîªB¢šõ5½PB‰"•záƒM´° å÷¸C‹éÆ\¹û ‰?yó›ûçÆw öLiˆl¹Í§Œ[C€LŸÌçÀÈ®¶Àדè7=~¸øéXÿ´$âGá|³©fwýì”\èã÷“Y3cñÉÊVõÇ GPö…°ÜA'×R³= =1î’£}«ÛDLé8½Þx?bð2ÓÁŽ„Þú^$G (ÍZÒ¤rHºª*mÛ#ßêŒ)4Õ÷F÷,+÷ÒÅÑÉÐó¨_*ßøÖVD¸¨?ANCÒù¬³­u¡V¦‡BŒE‹S¢$ n¡$ý¥X½¥AÔ«´;1§¢½’J@•ÊÏia΂æ|ð–£:ŸúÙb_òÝÐR”öýõ›Ïï„…¯é'Và 1ï*Á°é˜sŽ9˜…[Ê¥ ’eZ( á[vr7?™LTÔìÑùF¨×¶v!‡­7ÔŒc^432˜‚Èœu³Ù?5yD³ ï-fþþë`Ò¤˜rT¦ƒÁ?ÍYìð1¤\n^¸ïQ¢FXŸgµüï )pÕ„ERö úBοÌÀ»°( "¢å8üŒCGÓšú¹à:픑£™4-Z­âr‘s9x¿G ¹|E?õLªs÷›B3,HH.ô“Êaпµ>üœÕrÖoXïlÄÊ>b΢‹nÚ¤¼~•8Xõèå°²+tM…”%|‡MP³Ä†< {»‘e&§Ëš‚çQ(P8O+Güƒ¤(»+Iåγ„lKÜÛàwKy ¶".ú|·. ø³&ø¶É_zjÏ„2©‰©Ð´“uЬ”„;‚É ”fˆwœ1 °¥Ê¢ŠnéY7ÅÄ‚I;Ó¿#Ô‡q>ÄRjhÐ<ˆ¡-&÷ÑVøQÁ£Ö$.©vc=¸|§æÿXé¹íõæ˜4tåâ‡éò>iG܇©÷ ë¡ßª¡Ö˜ùb¦2ÑO5>Íæ>ÂZNE圷bMl<ì±ýn7éQ41à¡Ö¶3Ï*б'ŠÍ‡Åu¨¥-ÔõŠ»¡l_ëáœQ|d[¿å¶ÁÃÔ!W}7vÀ·Z6¹|$Æ$d•j†QØSV´j8´Kx ÅO2¾Uâ„Ç,|UÒ f%0C×n± 8¬ “Ñ9^.eߦeê×U Ôm“Ð<_ ½ï òt-s°5×Û{Xâ˜XlÛoSMYÑ)ƒ–y%?eÓdV‘wJÈèþ®f€ž4Æ)fo Ì™qWÅÈ…ãa“ÍÚBñ}ìâœBÃÑžÐcÄHÍND ŠPÝI3޽VÝi?È>ª˜­U¦““‰çò¬¨Ú6%'ðµ7åÎîfòž}×þ#¯|à±&¿4ÁLþbøì œÍJÈhxÉÔ¡ÆÍ]‘³®µ3c˜Î‰>aèÔÙ£C“ X'!ƒwEÒ"ݵżo˜¿ÕÞnÚcº‹tO„ÅK,õK>±—lc³´ f븒~„ éHpºGOd‰@.gÍ_ý4%EwáÕËPÜ,š-*[WrƒÏ©2ëaì;7çÎÏ'Õz´-åslR_B¤ÌVÙ´l}øÁë„à(9r<Ùͤ€Ÿ<ïjo5yëü2NŠ9s:’–l™E—­áçA°,¬ï®ûttؤPW¤m«²æf?ð;€¯ì4_TÜ}‰¸&mRvVòfð/;g£/e=CqÀm¨ø]naAÞ¶Ä{Ne?§+.|[úíiI~Û’SmžÉó¿4’çsœ±¬§£*ZÇ©› ?˪`Y+Ȳ= ³§LÎÇdÉå<ƒI5­'=ÿŒCN?òM¸I2a™ªÍbrKWÙf(­Bc¨X¤o „.x£~‘CûÚÌd4„j€cºí)¾_ öþ jåH~#þèµêŸ©±‰ ÊÊEÉhoÔ¯^fŒ]'4Î×Å‹ yf>;TüÙ«++#)>¢ßMu=}‡¾,ujžëýÙ¥,.ÀYkÔ™=ˇwqm £÷Ѧçg—zŽXä»Á¬°4Lu÷‹h›ñ•ÎÖÔ߉Dõ;6AÞŠvt£uÐJ*ËG·ŠÕ&VÈž…ýÞaDœç¬¨è Ql•”·ÁÀë}gk°õð!h@/ŠRVèÀßÞ a½B œ¹ªug«¡ómË•k¸™ [Ûs6ð1}¸þ«Aþ«‹Û5¿¶’ˆñŸK ±¢þ-s²’ŽÉÁÅ0ÜíË(€ß.ÎËuìËIðí¹¦Uî£éŠ_¢´7Uˆûð^š„Š:ýDr±{ÝÄÀ³9žQ0ã™ 䌊Õᮥ»$䯗@Tw^®RØY付^;íGUÐ1/ŸFä©‘x_NŸ+Ç8L˜þç@XùÕÚMy ¥ýÏ ˜‡­¢ ’I[ÌïjÇ7i©Ô+¯Ú(½+qÆÐáJRsSoc¯q2‡|%ÄéT~¡6Å ]RDÑF®Ó¥ŒA/=šT ÛéAAF½V«¨j-í0~áf@{Ã:u ڎ঱£u­y—CIša¤˜âæåš‹·³ræCüÒ€ñÕsZYIDzs×#Œo¾°B„4qêv´¢\támÜÖò’“MÌt»îʱû’ût‘Ìdˆ¹—uÈæI|v8w†ºs¿-bm!ÕxŽ0åK›Ÿ–?©hæ“šÔ (²gA|S°Ãâ{³,u@“]±ÃdtkUù¬÷ÊkžÃZÃ$B¨ÏQ¡Øù3i‹’ÿq~ðàr`P’ÛG««~ô‰¿Ã^ÆŠÖ=•ú¶¢ð>\;[ݺ1æ‚&z[òÞ$DRý×ÙœBžvÕÄÖÈRøíwŠÆ¿&ð˜lf¹?Ö ¨PX­c©Ž†OÂJ%ªÿ8“F¾8dBxô»Û N!!_Q­ @Øñ[`ë/Áˆ>$äQžïºœÑm®~ExD·Æœ`ÇIMÀ#ªV'±rŽ•ËÞ4øý! ‘df]Ê¥|‚vgqžÐ|#@î¾!õ˜€Ë‚×q@÷T’§ÞÍ€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n022004l.pfb0000644000076500001440000014247507056046553016426 0ustar fnevgenyusers€U%!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Bold) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Bold def /PaintType 0 def /WMode 0 def /FontBBox {-43 -278 681 871} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020946 def currentdict end currentfile eexec €À¼é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>j!SÚ®ZÃDšE2V1²h„ÃÛ¤ÌO:î ­)u|8tl”~"yÏ5¿wË(½¨*Ô·¨vb¶’-D]p.+Át|sJŒcU}ÐB÷ßßqEi„:l«}Ažþº­zoÀ¥×‹öÌ¥-è;kŸ)|ª­ò1ƒê»O´N 7†+èîõ‡#ËZ‚-2! lt#ÙÄ\Z¹ÆÖA¿;ì<Ó÷»Ó1Ê©2By”&¬1ÉèXŸ¤À:J˜ä-Sò Ÿ)ø·/YýdqÂÏà;a‚RÚì\²ràÛ˜Vl4¦ésŽÊg¿¿Kÿ“†NXŸs¼$s|KºUAÉNÓœï?’’Ý‹ž_«{9/€&·*ªj ñÛ³T‚e Þúzé;KÖ! ‹Bžš^SÑÁÁä0oƒÊ6`«ûq‹ÓšÔ‚ˆo´In1ÚÁÞáZÚŸ¨thÄ¤é„ O^æÎôÊ"8E%FÛ Žü<âsVßô{"É.«[mi‡Â!MMl=nE•y[/ïì24«öÚlå•Ç;@ðHz¼%²ÙÆø*BÐ|õ#f0ƒÞj¢*™á!{œa‚@ò¯ŽOR—ïû9/ªfáãW‰ü7ß'’ÓÇÞZô9@q»LT¯¡Å³û6ç¨ Æ¶^ññÖÛžH^ Å© `”%©…û 71 ú’—´ÝSYøçÊqF¦î­ç"°%Ñ ŸÌ[.Šú™ £¡!Ÿ†hVÙÎ ?eœåëf6ÞZ`ƒa¥Åb½fÇAÕ)ÅÁo>#SLoeÞ‹xJj„‰9­u€ÿ~ºçé$P¢Tà¡­êÅ"^ô_šiÚSMÖIÊ¿9 ÏØ±ß¬OÁÚoØìp‚É{0¬ÜvËU5 WÖ‰0é¾XÃ=«eÆž¯ ¢ ?@h2¦°©oˆ‡鯸™´‘Üt‰jD¹ögÞ ÌÇ‚¿a;ÙãbÞŸ…Å¿]Žßd¹÷}Î%3öNÅßþæ²~QqGÉ„tÈŸ]ÊâÌ+“0‰x99!|*ç„^çå- W˜×9ˆÒÇ~äq×/± ï—á5<ï&3á…Z.òœ8HÑpYCy2H¸¸Nãj3ÃþçèäÀ(—Upbã-§œPò.œžŠÊûEׯÿPlô3Wª…¦‰Ö)B·Í9ôSš\R¹aF9îMr8–0 0ø^']Oó•ˆ|ælͶ〩;âq3›™;tç`Býi{‹¯ƒ®˜¯:à¸UW®ÿQx×>%è·(éNÚÇ9±ls—Ž­Ä¥Ó 87ü1°?»–×íJãÀ”‹'À,¤ÖÈ R–Ã.Ýê'©™~u#v‘UZŠW^T.-@Ü ökòŒ; ¼F¹sc Ã&ØÇ.þëìÂOÞ°¸ÕÉ”S…¤uCæÄ– ªÏ õ°ŠfÇÊþô¸î\y§k ”œ‘âÈp³:YÎÅ/•öë~ZîÂCÀPÑY¡¸ݧöÞUžÖ1–èu2d.4ù±=Ñ  j‘”;6¯Ûפ¢aßíœÇ7R˜.Ïż¡Q<î—™ à(EòâtW¢º÷ç³!ˆ_Õ‘ÏB™%3®MOÜ»Îe9¤òoNðÕx„ÇzÂÀ¶\Ú6ÖŒÅiíÀuêßpyà÷H_2àåF'Û9ÔI:_»¾Èîiì…("Å„¢õ,w»ºgRÎïh÷Ia䢪ã>Zc t»mÄÃXá-?•Í3ƒÔ›{¬ç¡6”øÿjµ§¦ƒ©N˜ þpt`,Zð«ƒ\s¥_hB’å|öa˜ñó¯‚Ï3l3 …yjr”: 4f´"H×öCš22¯Ðü¾e=Ê;ÿÛPžÏA\V¬:õ'v;“ Òèn Ò6„ïLx™î\ò6]=Þp‘ÿ«"R†žÞ“üÎ2 Gýú²1…Õ²c‰©³‚ó<¦Ň¥}l]¹zgX˜î$®ÞS²‹ºÁàÇmø±,b£“Á®¨ü0Ö—“´k¿2áð_T*ò×ÕJwﺞQ3Âê1׋§\-jzá¢5+a4xQC`ñEµãéêSP\À"|Q¤6¬‹é¤è4ÍÞ[ Fª¤i=ð7 ˜®vCÑÞ<ýuËxX„Ö†‡è„”"PNJOLäÚle†ÛåÌï™§ãc¡…»u÷ #‘|*câä>•BÏ.K5§´.%Ör^q9ÁÏ£Ϥk™†6½Õ¼Ó¨éH€U^üH…ÖÜdÇ}í ¨&I šäÑîøkØ?žeC:HÛñ$ñZÃÚ _ªlmªÁÄþ·Û‹„C"ÿz-+Æ­Ô;5DTÓI£4K)Snˆò‰åDŽ[&<àt2c+RS9?fyh3#‡¡¼Ë˜P?C«LÉ á|d5ªÍbüŽó/³}ú ñŠâ o//Ö9MU¨úÿ ÿ‘«Â&A+Q‚´´œUаÒImº¶ŽfSÛ·M!§„Wë&ì¯Ëì‰o¥H8}`z#Â"´Óó.Ò›h=ìy'ý“¨Ë  k.” _|¯ÆåíË1¨à‡î›±lê#>-C·Æ«½äMÚÓ¡òËÍsµ¾6‘ª¯.þ”¤snlLu:ûáÀ™¤åDk1ÎZ™ÖA%É`°¥M2A«!îµÄñÏöƒf³ËÀËÊ'rÛ}[:v]ÆÛ‹qŸ]ò¨ ®®AcgE4MÏšá«¥d¦©ÅîØ€é>Ë-ùî…‡ØúËÜN'1]ó¨l•_A{õ®$ͬS¯aœÙ8I^LÂki ‘òù^OŽ;•¦ú¦×rKˆ9.k^ÛŽœ3>&.Ö‚òIéß9[”çÛ™CiëõY?›ÞQê«Þ8T­^g»§êäÕ–‚S‡2Ö@sž ÕÀÓÖk9™ îCÏé‡.ðé‹Ëé7t%_ðWŸsÍeQú¬Š®=Jj¤­ÅHy˜Ë¤Ðñû°Çö³w2`æv¶g_^ĈJm´9ë%õÕõšq$ð²í™>wœ¶:â§ñé  EЗ¿Ü É[Çü{2&k/â/v‡P-m¤ãQ§wŒ¼Í1³È2PÃÒQ·zy*µ _c[-“,1.«K½ÿÌ`háA°>èØcŽWÕœ¡Ø¸Ì­êÀWÎÿ÷ý'e°…vwL?õˆZ¨iNÜ[ÿy$0Ù)‹GNÛ½K #AûÚHÑ-¿Ù‹Â7á¯ñúy5&@n s‹ýʵ„.*².IH¼K“ ä¾Å€(ÙØn~¦Lþ:”ø ˆÿÜßS&½†ƒ³îE Aº@de…=†=×ÔÏ tæüùivßï]&Wv6¤hê¡ô®=‚÷`Ð+(³ª©»tVt`¨ÍCfw†ö–9½¹òµ¨Ž{ná”°ÿÉI.Äïéf%ýG9¥•Q²‚„LV&…šö³ó¦þšïRÔ*&P»dÚØ”§ÖÐCg)3bXVdèçŽLûø ‘›®>NÇ aDOŽh¯¤ë·µªöhf§ÛàjQéæ?o°Az¿2«"°+Ï '¯‰…3_®hn¯Ê–(ºÒcòTÝTèvslë΂}áoÓO-ö¯Ç©óŸZÅdµòmÚƒ- à÷rÙ1^¿X•eŒ×üò)‰q,1ìÁ‚ Ó+ê+)½ˆ *»ÍÊ #Ǹ†¶u°Ï‚PÖYš÷Áò:Á«&Mœb5*,òÛh…«w¢òÐ7ƒ4TÐÆæ«žx„ºÑ)YùÖ“X42Q^œNŽ…)+XYv-À“úÆÑÄ×_ƒæÄ|÷;_ã¡aï )Bd†ƒÃ<¾â’ªèËΉâÁèÜ™ÝKÌšQES…ÃêÌ•–æqÌâÂèjM°tb9f Án9R»5‚@{GüV“¸˜ß~±÷§ß¾hd¸$˜ç¤¥.]xâ´ãyÌäïí߀“gxí´j°ñª{yú GÊæûâµjtãim)i¸:ìù›«6ú“ýš.Y ÄGÍ$Ä)•×°DT¨ýâå‰% '9#C¡…x Þ >닲 cѽa¾"™òd¨Ú©>ÑEñ¶Q*u£îIÐë÷?ëkÇ^Ìte¯“0‰?Tåà¥á4p9;ƒ3T´ÉD±m¨H%é­ ¾]ŠO>ìb9÷±A ;BE¶ãÉÃî2 eòÑbâ[k·žF჊¥ߌqóÞæ7©|E< &êŠöŽ<Lé—¦õ âq:ò}˜3Æ¿^õÁå¯bÎn©Õ˜«½5 Ùê„sueÏÏì—CµÞ~åIUU9 ØœàZÖÅ:#Z£Øœó)²ô5 ˜ÚMIsËYTÆÖ9Î6~hwm[¨ßžy[ÙQ¢^±?ó½$FÈí2g ÷Ñpi”úÙ»ŸôHf‰QÊí½• ‚3[¯ñvФM¨à^czkËQ»d¯"j?|~¾Nú9YeÔ›¸ª_AúâM‚ ,l%ˆ³‚‰9×/²P‚ycÖÎ]È“³««¹šksì tÙÞðÝ™/áÞ86wÐ'’§ ¸>¢³Æ1É÷Žit“¤ ^¯½‚¸ß!žS$?|òï³Æ~Ÿvc¢Mj¶ÚËݦ|£iª -"bÀ:Cv=bÒ¾2bѯº‚<ý©’ìø Ý6VP\S™Œ¡5Ð;, ¢»¿€ªfBw:bU_·ÎåÞ»®a²ÔCòíÂK±SÜcL¶Ö³rIrD[£­ùz°u¯*•Òñ»tϲÛCQ0)l~¸Ûp¿\üy51Ó®3UJNß sÈ·ÇJ„»;àò¿EV Út´Á-ׯ(ûOJº_èo|º¯Ïä»Q€1ÚÍê*æÈÐÀ;ö › λHXäÏá'1k÷¯°WÂlú‘½–Ðb-£Ö%S;%Nì#%{G…ôð/?D°Â¸;¶B݈Rî7w•n˜G5õÑauÄ¢~’‚¤äÿ «y8Ù!Ó=Çè¶*âJ±&F³¥þˆý”Mƒ An³»gü›²ˆšìE‚ V$7s´HÖ[½­ÁZ^[6Œ½—·V¨•+BŠ5Œ9†0´nŠý®#…“ÃýXžÄkw¸Ø.ÇáìZPËÇ~ÕKÁâBlaÒ:XÁ× ÷u©$vé÷V¿¸`#Úù§Ê Nÿ Eª•ÏÞZ¬w‘Ʋ»GT~;[ó2~•÷ᤆ>[Jô³zR~4(,¶Y¢/…º@k̾0pêSöZ‡kš–A/t1SÔܬ¤ ,&Zr‘!òÓüžþ \àbo0#¥êp[GÎ\Sq"çÃZ÷¿1ömáª3bæŒ%ŸÊÍyü§ïPTtN)NhÊ;­Ë®¸D1ŸºBâZ‚PYšŽí^ ½Ÿs›}³;vPç,— 0ø2^\ È^Sx}¸Û Ê&×@<*dŸ™‚Fòd"7HYÞCT v´Y·ú‚'#$&%2™ý8†¬HºrlÊ´zóÍÆ¶ÚeÈ> w«ˆMEÿ9vSj­ø 9ϰ¦4šOv¬&t­I¤nñÔ~äúq|I11à¥!,=K¡4§¦Ì¯ù˜*¾Ÿy*‘y‡åÍ„µ™LŒ‰³ùð‡ŒÃt‰£¹´Dg;²SìÞ²?B“í$"<¿ï&ÌådI‘XH)‡‚€m©™«<²¥Â}`'F‹ŠÿKUû1ŸÞÔî-0ŒŒ–ûì +qˆºÀÝÔ¾à:W~‘ÒXêºØ‡¾%çL)oc¿Ú ¦pš¦kA‰D<‹”+åWò``n,\"­J[3úÍ+¬‚jvŒÌ7ÒYÒ`2ºå‡±(IÒùå`ãøÀ|Å%oò Éϳlù!q>yÏ(>å,Ü:ÚØ-*Ûúo,,¨ù¶aøÅŒ-pÅš” ¼1¡À@A¹Áåno-DFÚ–Ój LÈ—~fZ®\CW9²"k¥˜¤åOéž=úõ1ï+)9-ÂOÒRœGDiÊÁ|,öp4…E‚aè4eKì™ È#ÄyÊð¹ÿqùƒE{䈣jTÙÜä ƒ(‚îô¶˜»XZ²Éµ´-™¥F©Å V"~vxm¼Æ¥r€ §¥Èße¼mGB–©83þ㉒ÞÚLîb:³ærs{èé„ ç)©|ÿ¡¡"Ù« úX}¦{§_Q'Ž:§RømZ‹/ z‡¢š,;r`ûbz¤JimYÆî‘¡05[’4Ì`03ÝtWr—’ûŒwEßEÑ%O²hKÔÔdvä7ecpá57K#W]©«œWÍ|C†PIÃûê›*ÓX}¤µ°!8A†tflÁ¼~4ZñÝJ%“·c5EWü!âq/¢1Äìü¯<ÜXqÓ’ü+? íµ¸q¶ÞKòeH’\¿E•»$)³GXkúClÒTäÍB­Á÷, î³âã>Ô/¼éÑoºä\{ѺZ[ôôV¤ "Ð2o?¥õå3_{Ò×LFÂ2M @¦ßÐf}Äă¾‚«øåíÛÞõ±¡Äò ©ý©z¥¾*c{ªè:àÐzÊF/å?«2HLMy)ø0¶ï׉²#¶¢’–˜ÀÀÉh8'‡L€¹~l¯Æ#øâwo45j2Àça>¿IϪ­Ävì.¹Å.:eÖÏM;ªöØ¢ß;k™X­`m¼e;ð;¬Žä™4’‡““ÞÁù“ܺUBÂ*ñªMuOe=Èä÷j’˜à®…œlø«$³4œ ¾Îž‰U…^'lsü8Ñ”ìLª³€8 ÆÖiØl·Z ¢_Ô$¾‰ÌÒG™aúM°Ö&ã/þŸ÷“%L,(Ì2äÁ;óþï]èC<Ö0É~Ò H.ú8&~ ¨§•Æ óM2tÞßÃ’‰IñmÑ[aÖ‚ÿ0< ãɱBä4‰~,%Ék›1;FBæ)X¥¢f ®&r@èý㤵ú¡ ª]ã§0Hg'¤´G ”bEH\îÍ¡œž»h‚R—¬£z£å¾ÄÄ—³]Á†»¹2Õæ ?• ô\±šŸ\÷#O‰~4‘×3µQëU´-‚Ò3ÞFVäÌÁ\pÓÁš6|~ŒÙwR1ÿ0.YÆkÖ`’›ñ%‡jMø@Lt_6¸zº¯´ …KŠqAzE¾šmÿq¬I5ç0æe~w{ÿ6=lXˆ)¯VK'xKùŘí!ƒ°ËÔ¾rW]Ô„¿mÈ©#OT¿YÕ¸'–ÎãŽý¼0ÙóP‚òZrš†ÜàtØBÐ_!ÄÖõÐw|™ý™õ½zëJ‰—¶®¥J<3lŽhXZµöTdŽó`ó[Ô³"‰ww€`& Ôðê«“aØÖuOfî •ó›¥öû¡Õ[38VtGkÞé‰++÷U5?‰<ÙÙ»ŒÏ 0Ì¡ÆòÓÿU/V¬uÃÆè’()Ú-öPr?7ZhÜž¶L§JQ'AĦR²#Û-%Ê)Òrí$”L/3v™&ÖŸ)*F-\SÞä9‘rÁ v=H@R콜‹«æ´Ú&çùb3Uä0v‚„ú›Sfz¶{!lîTX’ÕÌD5 åþ=±i ŒpC&ÞùéãešâøÆ ýf?‘h… œ›{«—á¿_$ý¦í3”3¯²9E¾ÕIéû‹Í3aÍÏÝö}vzBFÚÏq7[õü“u31á ‘ýöÊ´lHáçWà~± 0ÆóP¡FÎÀÓÑÐéD¦ž… ’Ÿ¥OCw­GhûëßS4Èñã&ì±Tî…ƒB¢o;X©àW øÄvkã <ík$ú*˜¼£‘¸[W-I¬8äH'3roVÕïBÓÉRÛ¸-‘)Üà K/ÍÒÊp6IpÑ(b*:írVœØ0~#äŽjðM¢KÀF ø‹uÞä7š|:lº$8\CŠF‰c«V6åœgôbRŠ!=œ ý9u£¶A˜žþ:háeú æÝœaàboQ~ŽÙüL×f)=øå.³¸é'G˜ó.-ú=Z«¶aÔÊô\È70—Gß› V[4ÐÀJ/žÍdðßB,sí'§µûŠ^]qÃ9d=%ˆ• âñ6À._Æeîlx"ÚÉ?Ž ¤µ¥/ Âô{šq’¢/èïÈõ-7‘ÓáˆúŒšü/ÅhßÄ š¹NYÍF{› Ùù@²R,µÈ±‘£rïUƒæoR¦]<{ªuÕ›½TÝš÷•·J+§K‡Û)¬xñ¯¢+XÊÂß2ŸZ>ÝlBƒ±pËûüW^ñr³œY‡%} mœ•þÓ¸À„k€À~ÕJß6­z÷)ÞÀR²æÆ !åvEJ† ÂæÊ lñÚº´‘C‹2`ˆÑn¡ÿ2æ˜qÍ?Z\ï8H·4î âQ —Åu;&)¹ë0,Hƒã„lY%~°EJö–‡§Vš\‚áÙñ¼ØCy¥´´f¦~ÏôHÁÑo;È™¶RþPE˜:Çö·Ö;S9ú™Îõˆø"QnZ´Ï®éw½‡’ì;Û_åÿ®x9 Ü?}ƒauû9–ª]ý3›£o)Æ_^Jl•©@ c­t^h ørŸ#¿à±Œt¶ 6ÂþÒëqì_¯M®–!3Á¸wmW»ôoº0¡_34O&Ý…ATnÙcñ³4lÛ «—=¦8GÓ×5uÓà9ð½ðõïѾ²èWø „·Cá‘Ó7E“º”Mî—¿ ×V‹E©Z$ôŸ ¢Ù7…veêšÄW© cWr“üÀÕ½Ìßa ¨#÷ÛC’cýY óöÒa$¿µx=³À†^ìÑçÂÊPÙÞ ºŠP¤¦žæx™¿¦±Å‹1ÉŠkŒÖ63Ýk¦äÿ}æDIiB·èÃ3 Â? ª˜ÕUß›ökJöË£§Éý°¡”—êߤs¿ô­k­¼m—WΘþ<¢¥qù6ê ô `iÑ[["O2÷IeÙÔô:×M°²¾ï¼³ÓÚ¾p}¢(èÂ'4%NΘ­sÀ€Úú ß¹4 „J-¦™/í6tªšž,M@5;߇í·>a1Š ®{8éøeoßW^ r}ƒ…å ‡ÍüÔý€ýýs‡H!3~˜¨Æ@ƒ¤¹YMì8¬œnýÒoÌY¢«Óˆÿ8Å‚Ó*2Œ:¬ÊYásÕm;;òyvƼ•Er‰ €’é>5ñˆâ%]L"=]ŸÊE½ô3_‹ÛÄñÀëΡ†Ô×ûÞz(î壥zûc[öc_Ë )ëÑœâœÙ2J< "Ç "ˆò£¡=¾8Pjtmˬ÷Øš x_óØ…‡™P®4튘µ74¼"ÑòѨÜ‚KBƒÂ3ÈtOÕl²Ö¿ ßvþñÐ쥨uZ/ß)И2ƒfJïàÅžÚ’»%äh‚â ŒsùÇ6qß<\¤Ìpó ” 2å½ ô‚éHH6È5Bñ+ì2üëZ;ý»81Ëu9üñú¹[¦7˜!© '‘Û£²ñTÑ7ˆ½$;”iß»ŸýiÁ4wsÇU›§PÁrã-×zÞd .¨›"Ìÿ†ñò!tLçîqœ"8`De9HŽnÏ~ìŒqø+*;TÚÑ‘ÜyrîÀ¥qè9Ç3®¾,U{›ÿ¢dÖ?mùúåæÚUùµåN)Éx¦†Œù6¸œ‹ʇme•†)?é¢Pç# — À@£ÿ«7²6ͳiÚþ–~r¦›‡ö¶é2ÉvùD…uFLô6fÎDv„ ‰È€¬ÁYçê–#ÉÄœL®‘­Úñ(äã6ä\vÔß”d÷¦jÀxr€ò{.¢Ìc}jž*ÆÒ‹ÊÚ,]ËB_™ ··g{+yÄõ”xÁà¿ÒJï–!²!ƒÌÁ´ÜVÚ$³™Ï¼F¨ ÑÑrÂZvµ]  ¡}ž"ðlî(m5‚úñKl׊å+–gÖÕ3No)Å´qHtÐßàû$Òdé÷+Æ{cJÕXì#G5VbÕXþR—ÏõÍT’É0VÅà§&Há>[º(±”üí!1îEï³~ðcƒRêhŒÆˆт٠LˆU!¿‡øŽ»¥®–y5LÚlˆˆ±rÔf5"¹„•²di,°WZc`Ķ–r¬÷ňß{ê^Èž†^Wz ï€K­¸Ô.õÆÖûpëý?I¥²¾ÚËz¶%5;ÕNh|Fü¥ÕXÆN ÖXO=OÌ·¹ ©È…°(ÒŸƒŠR­R3¨=a§>r©±.éAÃyã{^?Z*«2ôV6‚¨Ï•žÆ=–¸Ÿß–§Š°K#nPºÌyt÷Æ.ê¢E¬A•Œ¨þ¦­?ÎS9ásšSyd,ë¤&îMÚù"'RLLÐŽÞõÛú9ä—(Dû¦‚‡ß˜x7t÷ §eZŸ‰ÖK«­;UE´«vcâ­]üx¾ä.ˆz.vµ¡Y.H‘Y¬Ê/ $šA+ä© FÜŸø2RZ› $JÃÎY“ávtÑfcÆÕMfµÝæ¶J§o?óS:FîV»‘;nþ¦úNS¶Õ>}–6€\øÃ³”{ñ•ê%ÍåG´E ž¸¬„nõMv“!0a‰{ÉnØ!úWÀ½£$Oä¡î£Þöyô^ùö~µÞÍÓä¾È—õS»KÌmM¸É –a`Y±¿¿àMkt¥ÌWä qˆIôRÃ;XËòÆþ>q¿\±>u7Ùúmeê“^Õén÷#c¿x2*‡¿zŠëq·òFªglÚR$ tæéÚDÖ"äò¤=u¸:&²¹- ñ°(vå#ÙФ’µ¦=–±ô~–.符û?šìG­Å"Úèªq‹Å@Ï]p1§ÓÑooó:—h) ¥ü^h•ÏùÛ«B§p½·‡µ³Þ‘’<.¶êça6¨¾ãn·„xŽ£â¹×¾•æÔ$;lILKuLmÑ` mºó™®IÓܧBOm|E]V #F] ©ÞF f×¥+Z÷N’=/»IÄG žI{Ó2óeˆíÆl]ÀмÌ@ÝÒ Óf'Õ9O8œ„u5ZŽHuLmÑ` mºó™®F›œÇ½Ž=y§*_÷-Q¤Hýÿ9׋æÿÀFåÏdL~С¸\Â9:ÕBÑ=-áó³A¾ÇÒ†t–k}1;…ùòOM ²ÄlaòU| ý¦vuR ~´É~9ÝQ0 TÏ0ó®“Ý•B*Xæhé±O²•Ö’?ýe¢Úšˆú?çù­ã×3ùîµJzðǑП±/Ð&àš‚2ʾȚó„þ•QŽÈ¾«Ëž)IÓÅ„VÿÝ{ÉíÞmj*cžÖk \¨æšÞ·Å\„­X&²‘ž ½ÙšS\’Cz©­~Î-$])© ÕOöìxA»æÓ¶Î;ꘂ> 1¡‹ÅdÝâ¹$㋯u)’ ²Ê¾ ” @M¼õMìÖò.™éì¿ÍŠ^"])ÔS[ äûi¶f*:ñ>ÃLX¸hJ Ç΄öçSHa2Š^FsÔ½lÐY¡j¿ØáW; j:ªê2tGO³©}ûx7£}ò»iôÕÃɰEŽöÈ^QÏac¤ ÐgQ©µ*q¡¹¤ýÑ‘Rí~%É^¿ðçÂΒř჆í>ãšH²Ú’P‰ËÁöPAègø¹£4 «·©++ã¯Þ7ˤ‚?“,'yð¯¶^À>Üì„~A*÷xpÇšÈLXNAdF³jPÉæW&FŸ9šaC‹Óÿgr:£_»e 6cº1¿õX7_tF!kÿÔr˜oó{îJ£gVE¨>«á…: aû6·ŒÇ€¤qÃÀõÚ7Œ© æ!${Á£½NJÿô9ü‹š©ÐèP±PƒU¿R"Z,"¯ž]íð8òŠ¢¥SŒ”P†èKJf飡oªH]jWI§zì=-ï ­§Co±á…¼fÐã {³:ôXæì—¶~ëâwQ¦õúÁ”ö`\¾cš˜«l?l1%¥}ÅQXÛ¢½M6þ¾ …è ü»@ÅU:fŽòÖõ´0Z8¯½WY Ÿž¹Íî¾Îmç­*¯ m¾G/ƒ8t? z­Æt?vF÷¿:Ÿs¢:Có}G=mÞ„è=,õ´„ñ¬ÀËÄÍRÐÎÇ84êÔ{Ei*I³eëŸn=’#©_ìãÓí~ÈR'ø!r¾Â“?tæRºé)žpŸÒ[›Ë‚è`ÀÅkÎxq)bŽ$™æïvAŽÚ|ÆH×iÆõI„Þ©*ôwnºÛáaÑ€Úž_=eÊħ¤ã§ÂSX—¶žu&óá ažaO -Äöþº7Á•%þÁ9ûÑ=Ü!ýìʯ•ʸ×֞ϛWMåÂZ‚ ¶‹ñ@¹4ëXZ÷¼øÈœÝt[§á´@w8¤í’Œƒq€¤·zVb+lË;&Ë_ì_º…°¦¨ ŽuˆóW×­U’Ó|~ê½r ¯qíògvqÍ>9¯2 ¿ÉÝØ>ôÈB[2Û\ÆfIZáÆ¼F‹ÜÖÖ<ã4зŒEx]ûpŸù§zF¨Æ`ö„Ö6C²¼ƒ‹n˜=IP® Casé=³r!ToΧ¢C$q71;$$áb~52½¹ÊîQž#íg -^ógO"]QáíŽ,_Éõù¹4À#Œö[=Ód´f²®®£Ó$YÉËÓëùêš}ú.ê›~èo~%lí™7Q(aPæcX »TGƒ[Ÿ²R‰™ I-žt°UÚ²Ââd?_ °ôìNŠ:-ôz8ú6×U/û4ÁÔÈ.)·#UàyÔ-º€~Lô¥ü‡®õ˜ìô2,ÛË#t‹º†¢¬Úæ¹0†¢âmR°¡ƒÿAÍ)ÐG æ*y»uáŽh æm¦ó²¥jaÍÁßœ­ÐCpÝ‚d±aØ_‹*šQÞº)zPÞÊö”M‰·û¢óï=au}û|(w9;#ƒ˜Ÿnîi_–~þ~îyí“j¡!«G¯Àð€™¢ ü¯Ò°ûlüžÑ·÷¤”#$Áܶ¦hÌ7bï"MÍ×µÖ!Â(eF6}O±YY¸mìPa£Ê{Û-×-ûVunÎyúa§ÈE3jĽ¤4|X*o^%ÉÎËf¶Ð(Rað·ÆÒ ÁÉF/Íë) [ùc?梒µ ˜øP;íTŒØ6T?s)ÜݵÊ×ø›òmÞþ´‘-,;Ô’ª²æèÃu¹`ùžIšáL¹*]Ú¸~ôÔDP¦€ÄTŸ3ò¶PÚ»ôûb»#L(wê|Vn0°Œ´ÃÊù„§ß¤éxJ´T< ¡ƒ.cÐóbDŒÒîrù¤Z ×Hß³,mò‹ƒÂ=Óz!þU5NB Ó4åãl¡¡ÿ½='Qµ "Tã»Üäÿ(…ÒÅäÖ¥z7³J%“õjØœÂ%ßk„eõ{lÐ4Îfåèoþˆ P}r“<çÉ9d¾ÏHï~džJùmx5}úºÃ³5å땾_'ªQ¾Ð»GÕVAÐdºTÿ•1ɰëdV¨å%DÁ¿„¨A‡gl÷&‘b½#…Ý`ܽçÅþiÃMK*(Ed©Íäãˆ~§V˜ºyq¾’ǘ‹63ReÇÂðKª8Uy?âyŽåóÁ¯qryí†d™k& U½™È§*çë´Z×JôMk¤Z$Á•äOîvt4¡.Ö»€ph¢êðÝö2 Yì¢Å8ñÎkÚÞmšt\!š1dj;œDÜÒ&ôìÌ$Ÿe:­í(Mßȸøë37R(#þ+’uâìG!R*vè¹$ï-ðžCã˜ZÄÓÔ–ñœ¼v§zv«GäéÌÐ2íp<-Jö‘lQñ|[µwÿÑÍœ?X>‹ÀR‹‡‡F8b…ßUM‹ÄÑ>q¢,w,6-½'˜ ,<Žä…Ñš o ®uM8GX^úÍâ¡õÍŸC^ÛÀm¶?ÌB¶¸óÒ!‘ûtãOs±¾9¶#ç#1]çA3±äR 1ì Ol8>«Í"«!évCÅÿ2–a;ÃÌØ`@ex¶yz"ŠÏfcy{zu’¶eý²ƒ(˜É[[O³ä_gŽ7· ¢:]ˆÉ™¸îG4`ãX÷ÏŽç i¥#ÖÇN|’ÝíÄSZBcoSO+åò±YB™z›Ýü(ÔO!]¹.1ñ˜Åæ°Ò_²êw¼œŒ¤-oö|´3è9nÑh¹ :å€'”FežTò‘dgnžþ^Qéë ä“Þ>éEa¹*°>Ôðßaä‰ïÔ±°á†ÿâÍUðàQ ¯ÈGo–ÙE+¸á‡…ØÇƒè«£…,¨ÜÏÈȦBüž³f)nùó;BX+ëœÆÉÒ|ÑšÓØŽè¸0xi¸'/Ë'±Êýι@Ø%ù·¾·ê¥pÛÌ8ޞ㲇’ã !1ÈòôyÛl¤±µâó>hjma&p~ÿ `¨·Ê… Ÿ‘A@i5OðÊ(WC³û>pª?>XÎÉк¸bÑ…m,ÆYѸP*d³ù‰-p =’ KRâ…ÿfÛÁýÅ`4\m3£Ä©”ãkBzÌs2f%–òÓo$®ÁX ÐüSáe’op™£‘&3xã]ÓÝß‹ PJnM½ÔSc êÌç%Þ…î -×YDJ^uÆQˆ­ ìq×ÊSú]m?öHc@Ø7ØÍÐ@Túª5 ¼#.bÇ•:5IW0Û¦(i¢| >…ìZ¹H¥­Ì•uû`ÃÒjÞ-rˆlë5a¯+;±/.ÿ“XÓÍÎ"ŠF¥fùZa˜pr b«Ö·¹Í,µÕ÷Kèà‘Ë`¥6K5Ó³ýµŸœ"ðb/ó‘)L /í;Í\“/ {Ë,ko+Ta?0î™Ïà³·ÏÝeºßn{ AÏn;:Ñ¥À;ã1`3Ú  ¡ts’^yçŠ?Hî#H²¥îkÛâ¢"D³ÿØâñöë!£¯è•N€Y‰7ìªÐþ 0&ŸšëCPƒm¤-ø"¿5TM¯=bÿ‡M=bêXhn^-“ -ÃúÂX‹I¶`¢,:U¿Œ™ÞÄ6g‚ÛS\³FðËšŒ5²–Rçc0v(~ѽŽä@Xo,'óÁ|®ž±;Õ!©$Å.Øùåá"±YúrG¯Aš#xê ¥rs–7*}m}S= 9ÎÉ¢|k¬ÉKøë¦ ¡ƒ°œ£ÊA¦Â`n )óìa*üÙå0&€ÑüŽ¢mƒU1ñWéÔS É|¬)ÐÞ;¸y—³×¢"°°úé~b3üG×±”ærÌQcÄ.눣³£ù¥Ÿ‚Ìrž']µ6¸Í•ÏÙ‚h„®kž—ttz ð9§|zÈ4¹Ò:÷–A%PRMô‹¬Š$ãÇœFJ%?ã2£Áƒ™û¬ôâ Æo,Ÿ‰•zb‹5pÇsë|{tP(‚Zú°[ ‰¥˜Îë4¡ô ÌaàRp¾'žPí‘ó ê¸ ðSµ6i3nïE ]ƒUòÅ,¤fÍ BOÀN=­n¦kóóª¼Æ<Õ¤yzv˜¤†êõ"E –Ö-' W²;«óz€‚¿›¸¼‚±ŸÙ„Ù¬#¬sŠðæ$€†S4ðçu­³aã0Û—W¶rá"ªg.¤‰éóu>•cÖuºçy |§F€B ¾ór3š^5Jîþ v܉bßû´C5¥¿ÄKè¨ë}  ø[1q¦›-Bÿ\ø¨‰¨1àÿRÚôO%÷àFưk±°ww†RÜö…RSšAˆO†Û‘.W×Äàm}È¡Îe¶(9œ²õÝ”¥¡TŒVS£>A+SØ2Nm³ñ]ø>…ËL_-߈åtŸ>ú(ù">1Œ ƒ‹/’÷ò%Nd›{xu~”mö]ðLGç;×õÌWrÁ%?gïT5‡­Ùò{a5Æ4Éwaäƒ@wæY¶àùÓzøU`ÏNª@ ‚ ‡·/3~²ú;Œ?o!ÂË” ©úX’CÓ'•Z®ÚÙ×κ9›¡Qø¯c»8 ¼õåœ+¬^¸¤SÈë¨jæÈFÒù(‡Š”¼œuÙQËI´¤ÈÔq»s&˜L~ ­ÏDªËõ˜:TÙy› )Œ$!fÄG¸.uRJa]! 3–[L÷g `Îæ¯äÑ(¤áU `|ª€ “Åf‹áÕýT¹Ì].¦ÂÙ(5ä¾>ÕÄ„¹Hª³Ê9oLºµ¶Ò”=zQ­ß}ɾÇîO•+Ë ›- ±­Vº™™K­&ëÚš¢bklØÆ·Ê}Ény…פœ~éÐ5»Ý?ø›Û-YÙŸÔEÉg¯11•£Ï›½âB#8w?\´»÷û7#;Ó˜£ŸÍûˈ¬°€ÍáêÛ€ñQã±úçhGɘzûMôe4Eô} ä~Ä(\[ø(ú;¢ã£>¾´„ôþ¦ªÙ'Ac¦¯ñy& i™ÛrR"±¼Ñî0öÒâU™µ6ܱ ç°ÂƒòT<·iW&tG~ ±Ñì_Xæ¨ê‘à^Ú0ðönÖó§¾qCÍަd›ÏÙÛ" ^Œ&LͰÞжæ)¬L@C(ið¾C jßp¸õnÕ(Wú Œ¢¿ž ˜œJTÇI‹ï[b{ð´-]Ì?Ž®Í92•gi6|r @CÖKhª™b‚îâ–ÇôA¢&íY±f᪙m$¬¦^΀¶té}o~9*Ö¿Y:´óŠ; l Ì1(ØG„Xs½´)0C¢)RÚ·˜5-rÎþøÿà,¨ö Ó¨«#Ša‚ùøìŒÊú× |ä~ósÀÅ]{®›!‡÷¨ÀçÌ‚Þ_&×6=•=ᇥp˜ ã{¾­n€$aRõ̆[)Q+–zD}˜ùqôÄÂŒ)yÐ|°æì@)ÜdªãÛW6!&ΠΣêDNA SéåñÙÕ"ªæú4ƒËÕECÍÒ?9Ôáæhe¬¦$$9Í›M>ÑýµÀu+^dâäƶM#ÈäZñ´X–ì‡|-‡øOJ…Ф±ÑSe Fid˜ˆl.°Ií×ó¶võ#Eúnù«JA€fàŠSóªû_»uÑ,úÇÙÝ«ºÆD”JDioiÑ0ã'šäWÜ™eâ}ΊG–m«]èáÒf·üÖîòØ À)ú`Ý2€„úø®;kÐõp…[üU~L}I1ºm.J«¥'àИ3L£ŒšxíÝÀ†Í»¸å¬t a@ö}t–T¯éMÚžÓ¥\MY4ìÂrwûÖ!««|–™ÁˆÉ{ÄmѪÖO ô,%`{U¸…DEZ¨r’27%QoqÏË\r´ïß(¾â˜"Í»êL¯†':‚ÓðPáBáึ(ãO(ô=W÷IFÛ³âÏþÑ;u„WTh¡M s¹ÚC:اÿãƒHÎm•ö%ÈÈr‡ŒFØ| éÍ=,B"Ô[µM>¿ë0å<úgµ*%’\ïÑy_xß;«Ú+êæ²Á™WQÃ4úÞË¥˜U¾½×`4‡Eqö‚æxPYË@F­ ¬˜Õ¡åfŠ/ÇüÊ;‘XuüÐÕ)¦5ÖL³C‡Í”}<Ÿ=2Äë@¦0Ãáø½Š¢ 5ÛÃݲiÂbp$L"L:“ºCP1lfK,ç; ê×Ó›ÄnðLƒp>‹tæ #,A *}àZþ”ÚÚ‹æ ¸~ïŒeÕ‹Foö—ÖFf ?4(NcB² %¦¥V«LŒB¡ÿg]•Zu/$yÎ>פøDˆÓŸb.å:Tà -N`ƒ'ÔS8¨ÖpvBÇn²\kcsôö{ÖûÁ¨m8ûÑD…ǘJw÷ ø\õÑÒ;òSREay¤½X‰AàçÓfPüài‹°¼ø1Ó`o>s í ‡¨Ó(,Ì_õøðÜqÄà÷Ü[ŠŽ·%à›i*Úæy? ÖÜÙ/^ÃqŸ a·át—wf‘ ] ¯@&NU5è÷·{‰»Ýì^MÇýT¸; ô_§å–F“SA½8r±ÆK‚G,ÉVÕ­k]ù@ˆOetÐ0N[Ì(‡ZŠé~óþ4Ž.6úFª\½=Ø’î‹V9”¡OPúÔ`NFÂq ¼ÿ%ãÑzœ v—ã±D§ 9±ûéÌ©¨Øc,òÂ…Õ«M -Î{‰¯IÑ¢(uËz¦ØÀ;TN‡+¨­äaÉëÿ‡FA»{žhÑ:ÜAâàŽy°Ü0Õ—eJG¦Kj3;™”Ô+v~D¡§~RAÜZ”d‡+“ß1‡Æ'E ´lM,ÐB„µç7G4DNí9‡GÚé(¸±ó š³hLçØ'¦£ßIçaôÅž>w¡¸¦ 5›ðvèŠmØ:YlTŸ¯Òâ]ÄNÄX¯^&¤Å;~¯œÇ_‡­‹Ž^˜H<®~†…8×EˆÈpxÅ‚7ì—ÛþŠ«„ˆ„ËÚ\‡kC€ï³W4!x!xyþöZ!—œ¯ø0gYØ´uÃß×PtÁ…ä"-ëxÊ.{eã×¼xŽ«Ò§EQżÒÐv•vsȳŒSËB^ä&áÙˆÄrno»˜Ž¢‹ÚÊQV92©Ë&ê®{•4âÒPƒ7ò¿¥tPJOzyF~—QàRXbˆ²à•Ä ÎwMRêßÛóð”×Ñ_=½¯?ÝñÔJQÔpìg#ø+Àèt½\_0ö^kg_ú³Íñã¿j"n>ÏÒµ…9_¿»åˆbß.RáH7”ÄLeH `yñ¹˜¿1w-µË¸Êö“"SsØ‘ášOæ,ø¤0•a'J2š;ë¨õ‰¿öËÅ¥Ö-,à8Ó¶Kï– A…yoPlšÛôw8Çl0ìÊa BMjÕíF¾Ñ2 f\H@µi/škÐù£e¯%¥Áë&±; ®¾# ÈÛuìÖˆ!›}³¬ôå]PBäsDe¦ø»f÷0ò‚Aó™Sê<¤¯“9[¾ŸZ2!~ÔÌáÅ õ"»'IuîØ1 ö¦v(m°sŸ]žú¨=8ÍìmöìQ3²¼n\ˆ`_«Ïë„-áÒ|È‘8wJE³Â±t¤$™Y«9Ö7*ÝÒ) ÿp¥ü<Ê¿¡f8G÷>>ø55aà7lÔóŽRZîœü¨bÈÌ ÅH¨F’‹Pä¡¥¯§Ê·ÝT Yê©0¿ÿiÍg)MG Û }ÿ(zìL•õNλïE®hà{ æÉfo²5Z—ê¯]wG‡ÕysN9Â" Vuo} yçÇ(Ø®ÓN(´úíµäK(ÓÞöóQÔ«ä +‡ŠGG±­K´:”Œbã½m<£,Ž%R«AhŽØ8ÉiÛèC_3I©n/ kœ}±٣ÕyjfN¿ aUå —j•ÆÚJ€Ê|®nFo´ÎNËÉÏÌŸFó‰FK¢QH†þðU1tÚy a/óÛA…W”Už§3Ìðùdbm£)²Ie$­7Y_Ò§†šÓRBÐó9V ¸+2äÛy(U­ð(¥|`Ìç2>p$?éËÄV9%Áæ“’’Ÿ¯l;QnÁõ_ÖTE•Ñê•)ZÌp’Aã[iXlU_Ýútj&vOÑþÏcÄòZu²d’ü\w=…%:û£Ò¥¹ D….æ¶‚~oqD½ïìzh²2½H5eÓ£èav²Ýð¤/Ép d<¦i8{„+¥ ™¾ØwÒ¢¿!¶žšÊþi¦„ôú)I¹²Ždý³xàænçVqB–œ\¹/é¡[ \5Jí÷¶. i$‹m>~ï{&Òeua¤Ú\³Ò|©¾Œ(># S¼™’êX:9¦)©MÏÚ{úGÈR£­¢Ö1¢÷MÑš–¢=a§>r©±.¾EóÀQ÷¡Q}_Ô< Å–ËÀ˜‘‘úŠËý—@•.hê̽×9kkk9•—oØ¥qå%>èÏÃõ#Ý"=Ô®bé2&Ø4yÖCR×¥s¼:X¢OÁ :Ì^½-4¤@±ÝwZ´ÝAY&ìÕ©mæ 7Ïg*©B ÿO“Žåq¹ šCa;'Xo@ ¿”Qa6:õ%¢C>í0„#Ò{Ö$`w®dÓ†%D?Ñ>x‘_ˆâ„ V‹ž* Ù÷P¹.µ´Š`ÑÙ®"{¤|¶þI±ÅÿZy}æÈE„eÍ3X»ÛµOÖ&<ºÆ—¬8tßâSfð§o¬tÂI.RO·CûaLÄŸ‚¿YþåB¦Þ4Ã>½ShÁKw½r°¥y/ PQ˜8„ãFÓÓ¨ÚG¥ãA5c¬u m-c:\«kðôÄáÚUUpymׯoO¼ÞïçuDÕ‰ÌLÂWüCwÌN4(¨tûÍŒ-Þ5Y¥ëY¦q’¼©íIÿÄ›`Z¬¡”ê\QÅì¼³§ ?¿M+—@úvwíuõŒ{“¥5¿Cú{ikl;øü‰ôåîØ #›Ñœ•4’,'†ÂùÿÒáà‰na‘ŠLJØø·ž)|ò¾®Èzû¬©Q]ɇâÝÜ@òZpÒ©= bnna„¢Ïè_†c Ò7ÑR•ÃÅo{Õ¢OY¨¼®€›–ëïßlâÅ‚;Rõ§j߸jf“Ì,¶T­ Ï«¦Ž#8õÎvü\u…~C¬ °$ÌQF)N ÇS^¥ÂñjüuöbÔGZ/ÃA£È.ãD9Ãå)¹k-å•JBÿ0ìwê£×Â>M¥Ð¥;í«ÖädWªb’X]:Š1ðUž…Ud¿.ž b ²Jå8*m%ÂJ]T²g,V‰Ãÿt5Šm!MDá…ÆKž•*ÂÖmœm^ÖbÖï³€“[,Ì£fýxù´ÓÃ}JlØ•77íüõéIñ¼Ã¥1 Æ¢zÒAºõМqÞYCœ{‹j—l3ÃC¸s—ÜZ“„˜&üLó¬ÜÊ:,°‚تE9Ø$=¿6<ûÞã8‡¢d).ß~ßwv¨Ñ+ô•?ãv kbuÛNѲq5 bëKzϲ½¨²Ý+©RM‘Ä>üùàŠñ¬¼ðîàXì[ì°J­éÂ=^Pß÷¨û,?O’â©d‚é\¹vÆãKêÂrê6)Ð 1ëHT7_h†m¥ì.Çþa+¹ø0Œ. óHÛO—øÕ&ëÜWÙ¨D)gQk}k¨”X>tÅÉ¢F#ΤMñw.*Ê»\ÞÅ‚±C sXÕñkxF‚ÀÐ*€. Dÿ®«5€óä %t™H2Er¾vQ¸ï×+H_•ÔÆQ^ÌíÄ[›¼v²v¥ö©XPhùl°¾eÞöbͱž¨îûÏ@5;pYGj¯£;¢jù;`•jêmxŸóØÓ&j-‡sî¬ïÓwm¦^ÐÏ›CVÂjS‹ða»;RO*jäÝ.›¢ˆ²Ó_îÑ¢ó%Â"WÛh@MÕ¹®¶=DA­8_ ÝJ¥Y)jÏBfÇã»Ê[“n`(«ºJDÇ›G²Ÿ¢íeØ'KTÁ}éôñQíÅwLÅ6Dwæu5]«^T±1ÖK»ª¬y%àö+½©xÆìé·Å"W7»½!†ò§ÉÈ««&+’M6­¿Ï6e–õãOYùêÓŽLÂNødW˜c™Ó Î,·þ,©!ñŠ‘vnäS€õGwpx=¬éÞÅ™"aK؉ˆ|jßÌîá8ïÂ4cüˆÑ­øa~NVÿ§ ’‘<&5„›N!BõjôGgŠEs >Ü;d8À9Ðk±zº˜õç¹ËÌ­ÿh³jÙA™bþ“\gÿžJ¤¶²…ZÒˆA²–„Ÿ;øož;Y×ç{KnÚ1¯„Áõ~P ÏŒ[5/ÔN4VÑê?ÿ¾$¨iq·RUODâ`U=ÖYx¥ë÷îfǬf羕ҹèi1º‰i‡ù|®¥·ëáÅ@iÞ§KaWñ›ü¾¢åšÕu2‘ë6’?14ÄÎÜ>Ð8?æÝók¥&RÞè"V‘  Iª?¢];pf3E&?µ›ð×g¢x9Mqacáø²3r·/¢–i­=B©8׿ùéòc D:m—|da5ƒ ‡Ò‚Ù'sŒÑd8Kôžß¾XYpRH:8_=l#Èì1îžÅv…Öp+ä#•þ5{örqEM‹¥A)õ ’‚=X×ÔPÉ’îÜ+Y§ ÇWDÚáG·`ºœƒön'tÃcRÊ$-KÆß°}‰nß]b¡¹IÄô¢ìâ ÄN¸ó¤â¾‡ÈWóúçÁ³)×U:/[Œîn3ž\2ÇZ‘NÙ3ÆgmÎuñŸv—7VPüq ë|ˆÏ“°‡‰ß–-”šÀÆrÊZcû›nŸs\º¹)~Ò1€™½ÃÒë&‚ù /8ŠibÁ!›óMãÎQ ™/0¹øèµ *Ð=Ðà…ÌFGÙ³(Fì#ûÈÉkºzI<³¥‹±=Õפ;¶b*ÖŒ„6ø•±Ô”–ˆzÇ­Ä”D€:J ®Â™Ú¹dûu1K¹×Ôªÿ³WVA÷{Ý~x·ÍÁzˆ!Œçàø)jÞ!ûß5ºè ¦¾ÈŸ*lm¯?º„Z[ˆÒÀ3[h{@0@–ˆ–?m¬TE MfÓ=x§c¶õýL›È€M@õ,ôºëÆÓ]©Íîz0·ÞÐñ…‡¡~@p°£à5‰ôKlÖfبhDù ˆË%zJùÆP6è3ÕõÐüxÉ‹Á·LB‚.tvSÐfgÚ§ªvTq’žÔãœÖ›Ý´p±Ñ7³¥LøÁÆ(â=éîþÌKÞB—µ)u*:„¹Fuiê?o@—ˆ–¸dÁ$Í£4GõÂßfÂ\UêBN:mÜÒ0æIÿÈ+;À‹¹™¼Q6¿æw®«lÇDÙ”{Ũ“bÇš&ŽiEÄ-ý‡·}œyAÌbST}©0†0ë{ÓáÀòŠÂŒÌè  ª`òkº·W«`/ûÙÉœ8ØRñðx–s›$n¶N Œ^Ñ—«ö&žá´­üöŒ{>R1xM«=C¡Š‰ŠãÓþ@SRHÄÎr¡Sp)‡âËûÏîøjí_Ðfÿ“ñôxFÌ¿!mBC’«¼•äVÀt‘§Áäo -€fIüÒ4ß/‰³¶ÀØd:Çha§@Ë'™äeR¤”¾QÆFÕÝ‘Ýèsj—ˆZC/%D¬ªì£tÅ vwªB kM¼G{Ff‰ÿ þ¸)«ìÖÀo¡­·o'þS»›Ð[«4j-e-$x°¨Çj¦É˜Érn‡ËÚfù¼büDºÇ4p²n„óV¸rKê¿vÓBcøäZêV„»`RÀ‚mW§0‹á'k“Ákÿ„oµów4Äg¿¦N“X—·‰Õ˜\ãÚšŽ¸ —6]ò^^‡^Ñe„Vjú9)Øi£úœ×ªô{x“˜ûá)!³“׈÷[ððÆ*[ÒQ$̘„NNÞÌ%Ù7ßVp exÄÑ‘£=¸ÂOû/õPJNaåû_fÛV»×Òô3þá¸ð×€ìOv@´ÿÀ5.³˜·Äoô?“¡àVÖØ ¿;A§Àž­ÄÿRBiÅkE™8~°u ji7°lÊCR£ô–ë9ïY-r÷§€•¡î>—‚¼•êh2ñ²q^ñ® ôr.…ý­ô\Òa!ç‰*qøl鉔ᴵhYÖzQ23Øm6¬M¤ÌäÊ×xãf' ÝÅ0Le·P¸½¹5Ο µ3}.PqZ!ÑÝ’ ýºÛjAi2½Æ—ªåÌó.™pÿ¡ŽÇf„Ñ%`~&Óqïni+ðf÷ëoRqx ›@w®þ¨¿ Ÿ-H6‰·\ýWSCR ì™^l,xŒ³h}cןwÏô!Móæ<ºYÁg‚3ubnÚl£ùÖL#ÞzŸ.#½2¿>eƒ Ø£düS<쨶{Far× ‰K?ãZÜö>wq£’K{¾€C¹_—w¤ðy-mo™BÐ$E°Ü´Q £5#Yª1b2 4pÐ{h¸©àߌ.ZvÒ½}XÈÂ×@>u_è–ªu";L¸F½ ¤éµk—©Ð‰ãçAnkÐ"›ý1šEþ0’æ¾$[QóçdÿûÒíž´‹ÑCBÊÁã c?½k‡Ò…)ú)¥Eg™¾ÈX<è'üÚ!A›šJö€”\1O€ô׫óosãçRyS6þ 4N˜Ãh$ žCfÙæjatëîo1̃àTJÓ!Ï/bøÅ0¾Ìú‘ÅóÅd]bË5Þo£Ú×idÛ:ƒè’Œš¼·-‘Ÿîpñ¹uˆÛ\ákÇE5—¡ò z‘1°¥mL6köž‹­N D\vûà¯*÷ÇM·š¸÷gýìïú° b ÞƒA­h‡T‰HhA)):?'åüÎu)»J'råAW,"S+õ ¢ü}KM¹¦³Ž&hÎØý_³K&÷í_)ßC¥±Ÿáù3ã.ÌØòU`ñ`t±Ü¢\à†6=>½a9Ó%”ÍY¢Ø¶¬žçÀ Ò+JÎvb³I‚L’m)ª_ÜœÄü°zÿqûÍa?û¤9(Xb—:•XjC(¶éJ±…ÓþéÈÊïßü•žçíQR{!Ü¥ºBº.:ŠwÛ¨ndÎ ²~›]°ÝÈÛaàY‚|pcÛenŠðZhÒod!ú†ä®be'—³…ÈX\r“.GÒ=„­÷æøÏB ¤çŠÑq¬RôCÇi‰ïQ wLqCëìTJ+t!r‹yP.‹ú*9LÐ̯q;\à»x牢»æÅò[fæMÿe 1?5($`äÉLÏ…V›å„Ö8ïQOÚè±±èwWœÔ{‡…¹‘dH ïFX ŽÛ”N'ôé)5î~*Uû¯ù’÷ž÷²Bh¿“²K¦Æ5-~©³7ÐŽÛÇ_ìP­HA®eQvASæàŒ„¢&O* "%ú9¬3ƒ»QìÐvíÆz€Ù®U—[`vâEðŽÃdEØð]Ñ7H™Zö_ÿçU—醃戢@SÇišáaÜÚƒZ*­ÍôÙ¨'P•Š9®hPXÎtø‘bn™I{È-bÒ5IMØ?‡äj7V‚>#CMG®O5¢Þè1F€_µâŠùâßxI~ö¤[­fß{)ä•€1Í–VC#ÇZˆ¹Žs3öøÞŽu&û_Œÿ®KÌþ2å2ñ"z Og³QŽ q‰NÛh‹ù—Q#ËáÞ•ê ˆ'zi¥×iLD±Zäµ’Ï:j¶éi=€Ù±¸›Ó\؈·d’†^~šÐè&oNÖRQ‡ÿîÃdB/Wbþ© Œy]D¦Î "b:¨¯ZË#ó5ç6Npml5}ýð‚Óëã°P?H·J­ÝSX±íXÖå}~nc‰È2k£.¢·.$š²Ü1ç:#ºå–6ñc}Áù÷wÇUç%ßN†À¬¸ûÚ?¨p„ýqSlí% 1… ›AI¤ÿPnàÖµpeW¸1àœh{«ÎxMʰĦ,óò¿‹%è)øáµ¡ôóëV¿ŽG1–wè0de}Â"ô¸Ÿ^Íoù,“ÑbGÎq®çÈ´dw"ÿ§¸ìÉ´ü Ã-ë`^h_nçÕJÐdBNyâ¡ì-B±Ò“ã–î „2¥ Ü2å)š§‘ ¥Ò zô+K.a}€¥ªK(º„Ðårìÿ4ý¶rc²[Š Jò'/³ˆÀÁÁÂ:Š‚o³5;öl\©Šþp}Á¸„a¯t@¨›æÙîH³b–ƒb¯ZÕùø{³y!A.N1{ O¡ø¡—1R2Ü]MÒ££±l‡gú3âò'Ì·ç_¾˜Qâ2$&ºãZéL¨sVÅÏ!}Þ­ðbS†èOÊ!x!xyþ¯u3´¥ÛX#zåNioÎPIŸ»OA_2ÆË¬¡àìàŽo56¤ËÓj·çÖ\ž~h(Ç ^óGì*C?Mî×àiV8øÃëƒCm]GÝeXÂ_¡¬®upqÌ–‰idrPË*ëþv?SHP­{ìÆœˆÃjåÞMÀ1ÇK#¿À¾ bÜ ô 6¹†ÐoujjÓîQs¹J!e2¨# fÞ¯ÅÝðÇ»ÊnÚN #–ѷ×X9Uw¥Ø4΀Œu×AØ4±„ÈeÃØ¦\xs©û`—wQRjs„ÁSÙKj’²eŽàë}©Î±_y3„yÈzJ+çeQŽ’ÅÍ%}4ïÕñVE0¯yç dzïÐáûÏ !6™Hžgªë9Y‹q‹ªØf0;VêVÁx,%µËX^Á*3k÷K³æU•žo…žcìrêÅéIfû,há`´oçÚ`~¶ãqâ¢=.¤7T;Ým£àÚµòÌÝè]åög§F'ÛÈÉ2J2\ÌRÂÎÓ f½p¿Y†œÉ¢Õu{j¼%–¹I¾uÃæ£8íñ±<ï?â -ç)ßV̵Ï%véqXJ—'¸N®nÙÓSõB L;üšQɆó ÓZZÝž1Ќݤ”$G¢]–Ç‹÷cÕÔM⫌•»8tŠ“ná¸Å¶º·É•þß¹¶7_êgÉ(=lj%/>‡ ™T¸ßfd#å&² ¯Â‰ŽÎ²r î’ªbwñ‚rgï=þàªJ»2ÄWDvaºxRatO|Ufý«]ßO¶ÀŠ ·€ŒY»BÞIÈ­Ô÷Y5 Î׸óµö„Šç¦– ´²¼´w—bdâ¨JCÏhT¸(DÕ nB*9¯ó¦ö'Ľ½µcgóEМÎKO éÂùÏ6§ÿ±/,Ž£iEÀ‡ù½é~Z§àxLç¿^úúqP×P[÷A+¹2 ’³qSœäDr>¬™ªPƒ™ÓíÞ¿OL©d»¤J¾s¥bì&‹*îfroüâ2ÝHhÍ…`d¶1n®Òôý»ÔËu_Ú‡9kªnXxLÚ m‹Ç™®Ò*…ô³êÝFÆœÂjhs‹² Ë&˜ù|«I9iüðqN7bœƒQ2h;O^MÏ+x¶Èòò Äï_ƒîwÕ2Öªp˜È“æñK wz¿|éˆLîUi7ƒV½ùœXáa”ü;+"¼ä„.ÏÞhGÛæ•ß%ºp ×\.ÂÌ—ßâ¤ç\UŽ^Rp×0^Sy½°õ¬0ð‘§|d·»ÙOÍH†]†oM$!ïR‘Ä®s‚FÙ–\¡…Ã[%ƒ„b¹7ÉÙæIÕ,ÛÍ ÏjŠ02\— ø3ðÄ#eðãtƒFï‰_é$S˜‡nD‘@¼Mv' ‹ äf*¤[—–¬¢^?øbOî|j†7y–¤ú޽Kå2/ìÒñÿ…dZšD]Ç2Šzi¿õ&:÷–i^J£¸Xóøú¢ÎFY‡±òV‰Ø´ÿoyÓv£êãªÇÈÌd6åq:a­ÆÕŽŠžž—‰“‹óÞ5ó­]/a¶»]5'}'Ð ¼4«Dîë™5ô×qƒG2ü2zc¸v—Ûùê5º —a#[ÐûÉìíÀ*Vò2€¾öÅ|¬Ïþ.dymA…íÄi§–ˆždFÄ p9›‰_ñå¼ôjÂ0y¿~‰_¿d‡ 7îfr_,Vq-¤Ô€¸¦8,1~ï &‚fH7À®Hæh†àI øe mêá6(ú;4~ÑzîHãø2@–»äîN0ùדµN÷.ðo½é×®hý®_nzÜD¸™d<ÂÅ>Çf\êA2«È‘jÒ÷còhˆa6«&Q]¢“H¶»M! >`øPI5Θ·xìàe¶¢F™n ü0ï(­¤Rø —í]¤‡OÕ@ŸpV .P•Àõav‚­•§@Ù_ÏÇ¿ ;_ïè­í'u Ò$¸6;ç´ïöìrÄä„Uj]}bÞÆO,·ÑZÝ-|õ¹eSq8Lì§6®‡„—TÆEü çÞÔãȺKŠ™qnvz/BB‹aú*ÂèýÊ!­¢Ž¥«¥2Ía]G’lDçÔýkô`c®rTw»éÿÐÊl].5Ë‘Ck ×énáˆ!|¼`<:ÄSø>•€c®ÆÕ&ÑŸ eGçÄËZ q¼]ß 6:æHÔL·qfRYåsÿ”[R)‚%"ÀÝ%ZÓ­BGeŠÁ½÷,‹¶/CÂó™D¸˜„‚¿–<¯¤XšAŽa1Ëù¸~ò6rL… Bù¯/6¨Pr»‘xÎ5µŠk:—Œnî³y¾DQö&#¥ksþTÛ¼O4ý_³t¢ô²íx8Â$wøëLÑÅ;L¥­txšDhϧÏÝÝÒ=²+¤1\p7cÖ³ÚWŽÜNÀ@ÔðHBxïö²ô±ã¥uÜS½­²KèŨHü—ÉcZWò¼‹‡’+?\«å·Ÿo¬;¸ZOö Q'ä]›8×f æíÒîU©šì‡™_T€Ÿ"a{(Ÿ0:Çh—ÎùÕEozHZ¾LÛ\þ,Ç”•¸±‡µ?t¸.ªÜ©kعÅŽÑ»^އ» £TËíƒu:ïÞõN2Fª…÷–þ;éÍ]¶™,&GäÓ+¡Ký^ðË_±÷]×T¾+àêll§P$ÝL€’Äe‘0̸ÙIâÝ\Øzf@½ö@$ÌóÊ·ð"¦ˆ¹Æpæ´ûû z¥O5-ö[0¤]_ïær)óO¸e` 1ÑÇQ«ØÜ¨ÌnÃÇç5£¬Ëk@~(º”v¼Òâ!ðj¢á€ ÈŠuà,‡QPX¡ØèݤÄįײ…øw‰ÐèO‰­Ê–_û7ÇOcàžZËZfÈ[„­Œ>…5MàT”¿¯’ÝN‘ï¦üSþ’·ÂËÙ<æ›5ÏDºÊ£:YÞ€ÕF¡$ âañû5^Iù±[VÊP2z,bÀ¹Dï}D‹bûu€Ve¥ Û0œßÇËsh*uBú·ë8`ˆt“ B7QØ\"ŠÆl¡Ÿ?{_+¹3²Ý2¿'æ†9v+œµ%ùÐGާínés^v)²Ó,®AYÌþw=šÌ—&rð”>+̸̿÷ÿÓ‰ÜðO‰ä!¢èØ r¾ž(l>‚N `O‰W‰†lÛ&êÚÔ´o¯8ô¬—ÿ*bkÀðYÒ:°Z­”E‰¬µáT,“’Ø#Àrª‡™” \˜8jִе6R^0V™ôs$!»X§Uh­NÛS&Œhù¾…,†êÓi1]Õ’69ÜF—)ðñ¿úô¥Òžç ¦2¹æ=ÓƒîÍN£!d,¶È—·•Ò“aø%<&}Ëe/`Z–ÖI-ܬ+¿NˆÉ×^Çsd»u® a6&J”Çà3»†ÔE—í9±­;{ÎŽeœ­¿ž³ûñ¨­Ä·L90j…Õ66í‡)œG̨G ©÷q‚`o†·$y)6rUg}VI_"ªu²ÿ¯ïÚ:‰„ÆÔ8Í|·iI{šö!”‰\ly“W&L} Lç¢YÝ–çsÍ"âŠ[êþ&ÇÐJØgˆjÅÙÑø=þ—öp Î…ž eF%ç|½ å‘”pųœ0˜$‹9æP7k/½—P»'E´Êáa]{jÞDÕÔ¹°„’çÒ*ñiº ƒ3v›ù†*ÔnÌX¸÷+XþÆÝiÁJï]z4?› ê¤û¿Õ0·<ðþïLE§ÈǶŽSà“fr‚G]¥ÛgeÿV`i![ÀШålÂÁ5wµn±:ê`5ÒÜ:Ýzá_𩵠dÇ·ÁßÕ[Ûÿ¬Ç[„%H¸¾I³/E®;wL¶:›£E¤C/òRv†ãͧð5G´½ßNNÙ0žp‹àCS)ËLnx&{V‚!ÏdXõ¢îÎ˨!Ù¸rµ¹…¤]°Ë³ ”2½¬-·<)™ÚÞJÁa¥ßDÁ¼`ßÌáu¹ü¥þÜ4Ïzœ‰{7…}Œ±ç¯ôXj#¿É† ˆ¢‹\Ý¢[t´»%Sèíyk#åÆô»nîMž_>‹KxÕ€š+ä¦ ãš ¬»«–aš4ß–ªô.Å»É.K•% ⪜*@š–oEKÅð', ôrª;ÿ-UsOž>“Éïƒ×ÃS³4Ì áè°ÊÔÇOY“Ê·'OÜßèkÛ»óêv.V“yÝô ZT$3rwøäñ¿ÛeD¼`Žý¤Qw¾´± ž;a!Û_ %Þø¡h‰°ÒÚÇΞç31µÝH²â"LÎfj[!úí«k¹Û£kkXŽÐí8…øg.¡zk& öSÙŽe‡dRʬëÔøÓ™èXꉜYåõ2ܺ ¦ ôpGó:¢ U1×Ür*&"°;~‚ÏLü‡E÷·ð@¿ ò Û ùóR#:ËPÑBº[è©Wñ²¯O>e³? ºÌ“HcÒ„^Pqúá㘞ò( V¨/yîàZ¤ëßkaÂY××÷m }¼ˆ?aO5Dà%Iœ–{ÆmÕŸÇþý›­>ÂIE¼oᵈI¨¼TL`Ôß +ä·eLD»Â¼1¸gÆè#zñ&(Sl}B‡çË;ü`ýÈDo1 j­EB ¦Út’mÉi×RзÏo6­ØŠÆg¿I¢7K 8ü¢å ùi—ûBu›!A Ðm]õf4Dì@µ‚‡"ðúu(T¤ú'òáz=[fv–¨‡òüî%…R3¶pçŽ@¨e¦Í·óI.мM#õñšå±[±Cª¼Þ 9‹ÍÈË3žãúH»/ű¦6³„³BÄÑeº )ê¨Ôøz¸³kP¥¢0^hhz[KÈUPR5J©¦ý¦¢³{²H#~t!l8Š*jòxˆ½-W²dc³½)$£˜h|ÝGäêqëÈ×\rE;rˆÈÅxb³+ «¹ÎkÖíåc'Ó7º<™2)-wê µÓëá;[·ÆfXc¬OëƒLUØÍƒ‡÷ѧ‚¤#¹öp¥œÛ0ìÉM*OO³”c¢[Ë–{]Z¡¨—£¨<ÖK±\É¿1Í}M§Œ•uz`zm<äÞN„þy ¹@R £ªuàÅV} 'ç°ÂÊÂÞ ”í®‘]ZvÊj¿_óRñ=ì&ÛJÆ·(k¤]MåíÝ8b­çö¼tÿV#ü'IìK_ØèÞÄ‚QIÿˆªg§izA·Ux¦`T«?øß`ïƒJà¨j›PPãÝ2$µy~ø+°Ìr£w)ŠqM€ì$¦dcèÑ Êf½Ä¿ôq‹‰‰ Lâ£J­™IÛf”®çÖ;2y$åLÜ5ªNøý·HÒÆ…ä"-üð°=<XC‰V)$Pç¼`à 6óºZ%XÁS³§³å¶x™AøÈ?e°æ¿zbh$°é0É›mlróHÇ%„¦~†-„4„²µµ†H⃪bæ âg;Þ$¬±váíœùÔd9ÝÏ[ è8M¢ºîÄ<ûcÿ7ƒ ¹¤çì ójñu_û,iðèô€z)‡×£Œåÿ=ißⱚԸ¤ÃX/ô¤£ƒ±^±_åóa4¹±k#¬ôz½R«W Éd—ØN‡T¬µå¼'spï. áDhÒÅæÂ2]%áy°Ý Øˆa§ÐC‘ eðnr’M–KÊTƒ•ŸoÔ7×ïàFügMÛó¹ô­Ò±L å"® i°±Þ‰³§”µþ´ÖFKÑ8Ýazµ:¨ñ»–$RY4V1lö©­jÈ“0½¥Œâ­[0Ë6ÜŽ+b„^|–[ðRîÒœÄ:ˆ°D`D_;-I5ÎMFù,™I‰Fa©,$&§D@ ïõ\¢Àìh ÅA.u:Vn|²Ò0=µ_3qÖº|ô¬Ë:N¬©#Õ¡#ò•Ã}ùJ†p0TdVtiÕG"û‚£áŠel­C¨r–=ç´PÛ æ—‹„娘‡ºÐØó‹º¥röf |Å&TÇð¸á˜)lÂÆîea{8:?IV'Fü½M·&¥ ODæNÖÕäõˆtÞÚÒÀ;œ©•ôž&Bç0}|Í6êËÕ`fªë#&`¢¹_n|YE?]lèE ŠÛ:7+@·e ~°˜ R èÚ±”L)e‘D¯ï,ß_À_1Ç9D×nžâý’k%¶(W´’²:fÌÿ U•_¡g·ª~¿_¨sf•QƒA§ ¤DïÄ£odr\†ž(%™`8GŦÛK/Ù¾Ó›“Ñœûä¹]dƒ»øÓ|·ˆãµÓë."ì{H6z‘m÷rdY»FL`–/x0P(‰¬,“D¸úEìûP™UXK'Àä‰þ~Åêm üãP€`sr¾Öjã=±®f¢ïW;RÝ)´îÕ6îK X{‘ Ì=Qr´¬H˜¦ì½ËïòÉhÒnÜ3šÍû|0ä±>›Sb@&KÌ*4¢ê½džšípo&lIjÆÀ"²?ß å€Ÿ\¯˜‡k©+W{Ø ÿĶª›Œ§G·ƒ.Q@L¾¶99µØ§=}§ò?²vÕP Y£”¢¨TÚ6Ž@Ñ ôÆ}Q4 h|+ëÍ¥»¤iLÃ’0(ãÂÂ>®ªôIpàÛ.DæŸ7*ÿg÷5±ß"‹äßÓëÀ’-õ¾Î,±¼ŽxC1ª-@_G+¹í´€Ç„õ§§ó»Ú…h·²êË¡ úW(õ¦`šÂ¥·Hƒ ±ñ-Ón TÎ8Œ\04ø…¢™yYŸæÕž“sŸù‹.¬yx_ùVB$Ö´TüÂC ÒŒ7”u¹ßÙ•^O&†£zCzï>@ßq5>“%Fÿ’¹û·ÄM±Sp`éJBdèÞ2ÑóÔÔ4V&¸¾ãˆ–ÿ3PFª)1…IÌÇ‹~Ë-Öü%[iÉ'ù¥aÝØ½àŸÄ7L%|˜âN.ät¸`"ÙÜÄI·0–Ï›e¯ž¯Žß{Óñͪ^¶3@‰Ü†.?Þf3úÙ@¿ˆ\—a…­Vg™u¢Y08üŒ^ÚÈ/°ڙ p"D›vza›¾éžeÙÊSΖm Ô ªŠ§Æ Î&^ý’Ý«¶À«¾Tñ‰ @EH]O ‡KR|ÒiU+f4`“^÷‚Lì·×¸_fd§¿ìDŠ~Y¯h‘øø°ÅøÈ$Õ,žöƒ¼…¾N$ä ±â=NoŠ1ôdñ¥Ñ9‰Edÿ:PÍáIVÛ;$àj÷½µRz*…>•5‘MF$Í9ê¤ïܬ®x7 0žó` yöV¿Ô,îøò§¬ofGH$Dõ‡‡pkéÇ«„D(ª»fy丘'¯ŒùU“°÷êx¥<¢KŒ‰g ®"0… ,[\>I3 +lZ-NøŒÒF—)L×Jz0W2wpTLî}ØT ÁnÅôÞÔÔ=Î_#+`}w(£zLч“%õƒÁ³pÑn¿º•€j¶+ðþ“¥ŽhüWÌá¾d‹©jöôòˆ¨>uÂ&=Ã*«“Ôí,Ùù-Ù}Ó/‰Z~v l¼¨ì(l1ÕˆP¬·ƒä"~æ¥^µk¹ª¢_äd!šˆÃ¦ ?ƒ‘¬‚,W¤Ø?ŽÓ9Õ§ù*GÉQî© sh“&AƒqÅÍL¶Îÿßz˜5…_SØ¿áåJ˜TØ÷XNÔéw0cT—`JñVB»{¾…L‡uUo û<Ï<Š~ñ®¯óq‡ZÒ0àåÏ¡ÑìÎZÄ+·/ôc3<ï²7{äÍqÌT}Ît‚z`»=,’ ‘e°ôíCl:9˜ye 4™r ¤£Þb³Š!h‘K'œ”U•œQòÜI1-&ó‘ä,üx|Ӟ؄†u)Œ™pÎk¤9®ÓFñ¡ÄÅAÓ¢…õ›¾#€r`Ž!Ýnµ(%5$lxÀj¾âމh#om©öÑU.ºÒ¢†3¬óòk†ÞeZ54’;õGXó”FýŒ– Áÿ Ȋп”òOŒDIa¿BÞß4ƒšN†–Q)LŒšƒƒ)[F¦ÃȲmttM;™¼}}ù¯æÂ—.ÖÙ¾Bá¨RrÙj=ƒFÒ³ýló¿ëušvŸ<ƒ£r±j¡}'SQU¾óG}ÑDØPšV\þ K]ƒ%:s‚¹ê[®Ø0;zµ!ZLÓ¬»ÒŠ?ÂOØæëY>€ƒGêÉIΨöžnÞn·•ùÛü]…Éõb[~©‚«¿Yçà¶eiSUHmF£"-Ì÷žú%B N«°{Åâ»6–®°â¦$qfÒ~VC¿Àjı8À»Ý íÑ\FŽ®÷C$eÊgÀ÷¾B&Û¿²ºí¯/æu/Ùß^0nS”QÞmpŽX2¸$èï00DøU+[¥³±úíÜš™ðÔnQ0µæ=wÆ=@}'t‘û¢g$åÍÁZ8²g#"?ûE_}ø»!ùeCŒ7G·ÁðOŒZŸ}«áêCs38#%gÄ¡#J¨¯˜äEâgÓš÷ž¸Â¦`¢<Î3«äu³¨”â<1ûÀð«™Lh›_Ü+m§š÷ûOø³ãL_â–‰iñ½ƒK«Z&&ñò[i'Æ€¹Cy^O1Ä«ñíæ.¼FºRFІ¬Ñ 2I*ží‘¤³ßy*M¿ÈäO¼kq×ÜÖÞ‘Vò (Ç×ÁXOôõ4ò!7}‹.t߀Ë*½ÌhW4«„fï¹£aßÝ…œ¦s„vI!Æ=ÕVÔ{Q:¦¿VÜB|¦ÊÂ( gù ø|'H¾äǬMº@#”0o+@âͿϲ.|Õò|T< ÅI–>”Ù\ ðúmJýþêR‰ç£:±£î®Ó+¼WmñÕ‡ªœ$¯5å4Ÿù­üÝë—¨¯UV´Z‹|qB ΉúÞ˜—’W>&#, þ 8~ÔÔÑ" ¿z&Pq[ œ¬S mnß%‘þÍž»ê©1õLnƒÖ>6Ì6R`ûþiv…Ucvf5MþÏÑSü‡¶ºÍ±Ê…7ÌxŒF'¤sZº$¦úY–~ G±#¥¦U. ýtާ?"þ[]âïÀ%§Ò‘|`ÍíÊìcãM-¼zž;.›çòVcÞp‹t’몜zzŒQFq£ø©×ýühH•o`3é€ÐûS1E>Ü8T<¥I@Ý&ÛVɃšñβ—¤Ñit<Œ†à¢³µîªN«YEw·lóZÚ”ië1œ&hº|W´ì{€Ä£„{¤¹)&ÔZcÙ‡ež¨pÇcÌ#Ëtÿ0 P»»0šõ°ÓïÓØÏdk£`„ú|ï?M]O-‹&…L7wGp¦ÃOý†¥ kaÎÆâ^Ø\6wjÑÕ"ðœoo± óJÀºPšBƒÇØv#>#Áï¥W`ÊFIi£ Žc‚y¤8[3Yε¼Jaj>ξâ«ByÅ̲ª[uvÐwr!|¬?Ûsû&ÄÉ[Ûf$HÏòKH "H4ø²³äžBç¶hÙT(be;@kÿ½|Õþ®¾ÚÞ L†¿Ó£À «y YÙä~w˜å€qÝ»µƒâÉl'‡mý@ö­Ž!&~O WMŽ^hLšE§™ž>Þ‹ÁPk^ð(3JïÑö0œòïXûSyÚŸÆ Ãн3ß®]ä§à(†£ý¢,T½âÇeˆbºßêqµLK-Þaµ†¹T×~\E×®öT£J4Á˜ÎV¾?™Óƣ͡*oH‹ªÈÿ‚·Î+*4¶Ó!üà¡þï´Á¡$©?b€Û~þðCOÝœW =p…\kvüß7#~Àmðº(—±¡FqB£"ÊÉkA¾°;öB?©*D`%›­£p,!â»yžp>¬>xuös¯È§R“ê¡o‡FZ „äE~–{§ÅÒeòÙ—îüQ~'f8!Dg1bÖù7¼mZyèõG#›Ø¤.€¤e| ’}>zq͸ԕ4Î%L oI‡fÑ~@»GìŽÆö(%5ÇŠÎ?ÞSŸ÷m…D ¬þ&QcÞíóÌÑÕý]T),Q7ó‰ÚN·QÃ!—Ümþ\ËM€ݦÉ$]m€ý¿ÐNW’*é1):’Uža"àù¡«I:O‚¬bô Á$(ìLÔ"lÀoþŽN3óéÕ=7àüxÎ…Ÿ)câ¾¼Äzï;‡}ø:Òç¡ã¾ÇTž×ó0ö„ÜSÍ#‰þ§%Ñ%0õ\Mr®8[nƒj8ÓçdêÄl  Ä©½Ô\×nEÜo|ÌÎáXêãp»íëÕû ÂåøUå1CÇ&o8JÿïŒì~­=á”Üÿ¯wX9 !®c»ü±ŒM³‘8CT’xGâŸâšòÆÌ™úÒ¯ ðÁôµ”NÌ@/™×éêîõ©mA˜½ÓÜQ@³«Ðµ0 ·´ 9†×«ßµ™4×ÝêTɆxºj)öý˜s×­õ#™ÚôSÆÝ½)c³Ûå­à& ùüê:ˆ´L±¸¼ð^iý•ûÅ9Ú¬²†gYèÈ!-g§ëJ­Ö¼]”øégs <Ò»ÓÖÁqL{¦Aêږ݉ËoáÖUô¶sT¡pñ[ƤREÕv•ÍR7~Ó㔩ÄÚ z’:h|^èн+r\•èܵ‚÷ž¥Õ§(Æi¤yPaLxÄÃwÞûÆå ­eñí ̯Ñ#eç HÔKùù ýè"–À!ª#d6”WV{õ„—ìé£o@XÈë–’tÒ˜h#pMN¯ RàIuUkXÃêcåD|t$q9ˆÅfc!Õ5¾ _àa¢¢÷Ãl²ÀMvu8¦äÊâ(T¸:wøeÖÝD/‰ÏÊÎŒ½£“!ï¼+yÚEû³Ÿ-D‹us(;ûs¹~ë] ÀÑxë8h¢“¾wä¶<L ¿ßñ‘<ÕH –Ѐ"Qƒ8ñŠçև˥¶¤%M"Z,œ¯]—od¡Bvê°ÿGhŠY@Ã…$ê“LÕ"iG2Xz[kjÞ0¾(‡¸ím-ôÅ9Ñ 0‹ w æÛ û ’o9šæÉÉ7@ u¨ž‡ Þ<ô–Y}"¨¬gCPxA®$º, øüüŸ»QïkP³@† užát´¼Ê‡õÄc„ôô­¿½××7YÌA©¤P;ê&Ñí¾ÓÿE šÒÀOOiöq~ØžùgbÛ…›°×í+¥äÕº QÙ‡°P,¤²nþÅÒôqhO®q0êãäíî\±Nk˜ƒb(r±¾Uà›áäŸ;¶¿c XŘVò=`ÔE‰çÉY!÷é úzÓC?ÝI(ÉŒÙúJ¤=N0Xz NäÿDÏÂÿJ™u¹jø¾þƒ¯N-rúeºª–îWšµHì"ؤË,.úµ)„Çs Søf¿ü1¨@B}ÎÅ)£¾"÷w.&ì¼&ëÄ£µaïué,wv„ê{8Ó=™Ø÷ÎN»áï6ÎÇ`Y!àÌB!s‹r¸°n,ijxcy¢þΠy‘uVŸçvý?¦aõ騿&õœ3ÏSâúýhüåD/Ã¥[„®çò»•0ª;høÎ%Ï/Š ÓsZ žüGRª?è"":r''cÖIjN‚cK]fl"Èóm?¢\´œØËW¦¬{HÖ—W€]éPÝ_­™™™{c†;s»–”Y¿âW±ÝFh‘ U¥æ‡iD5ÜÒ´ÀÑ ÜÕÒK8lAâÐo><^ÚÞý¦¥ÿn¾9º^õy>–¥ªìÔá¿K…¡DáGíìÃmýì‚ T¼Zá{‹ÿô£ ]³cÍ”I5¿}>À®ƒ–ñ½ðhµQÒ§Þ¬ªÞ= ®Å Ò}2mUbƆ*‚–`®–~ÊëKþÛ£à?¶Û« ìÀf¤Kút3 H·AÙŠ÷ê^}1äÖ±´,ó_H!ëg2ÆÞ÷â°gÉî,´¬<¤Ã)Ó¡§QÌ3´»KÓ&s‘º^JˆØH)ÅA8-NÄîã¤h?| ­?!š:µÐõ§Ü;ãÝÔ4%]™ v)Ç¥[s.Çe_¦¼l5ãò·âö+rÈ}ð¦:¬ã¢Ç? @-ƒZñ4{™ ÐŒ T{fCFmŸB– OLï ²<½Ü|öè¿#c BÆM‚4¾´»Ý2b ™¦\V'w€ÃCµ„)ïf±%¶S‡ˆ[ÁRµfÚœ‹qÎ6}rH!Å o˜³Õ@Œ!~H=-@;Ò¾|D¾³˜àPæÒÛüŠè·QmV¨W…¦¦;¡ÕY—nŒi™8cµãI:Fí×ßBšu)2Å»¥»n˜Q ÞÎFݶ&ýJ[‰DD ´#4çÖ¥‡ƒm°À–); Ïì‡×=Äéù Ü,1*ð[•ó+ÜK–ûm±D×j*)èÍâw§6 ˆ§m¶A<„a³ªä^åb1Xl!øÿè|0Âð k•Sp”—?T¥ÁSuæTŸä^. oÅö$èé³ sУ—å£-á’ ™{"vº;p%ZˆEU·{Â|A¯ ôÖlŠNÍ»†âíãÌk( q¬\”^Ylš…F«_еûÉÌ÷ZŠ3J«×pZ-ñ\—Á~Öx¡ª@ýäô¦+P0™rïZü2€|fÊo'¬G)¬‘íð©„n …&ì is(Qèu0Y‹lÖ›D¤Pˆî,í]Sà^¥c5™""ò:X¢kâÜìCÎâ÷‘„ý¡ÉäA' W(×Ô iàõ(á-‚¦±u㛺´Z–S²´»äh¤“³Áj ådv†¾[çôI¢dKïâŠOõî4_sn!oãè}*¸­‚;Õ7ͽžäqȳ¯Òʪ6Y_ãS¯3ÓÛ™/MÌŒtáÁµê´r/l ·ªNDædêœÃïcz®T - ÇÙË-«±£¾4c6¥- m³_tñHTÍîòÿc»1ƒaÍ{-R|þ•{“y&ïµÄ{í†O]ØçåX:Ök4îQ3ß׸Œ–Uñ–ÔÕÂÐoGŒ‰\F¢øõdwú@€ÔÒËU›ŒØr'/ èŽÅêFž7Ëzùi؈hQBjãæí[ÄH_ÌX(/²8g%c©o ÂÓknC÷ïå”Og\ÑižÌFDE‰°´«AÅ8{èD9œË¯äÍwrÙtHê¤Ëߟ}õPªµMGâö}uòÃd1­ä}8ǯÖðé)XIø æê¡ˆ;^+§ë?š kUžgÀÀ…þ|éÍîHŸ¼ f-/ñ¦Õ_Šè} ¬;F»Oµû,ðFõ0s*ñË ë½¨ Û¹]ÿ~‹W5_ýÔ+ª{³k'~lvñ±Ú9 7ˆä/ÝÓ“…bmµ.”؇­Ìî¬nç6¼óEJ‹QýBš>Ü>ÉÞ{Ùæ†e{Rd|¿7%v{?ù½À§µŠÚ”t^u°L¼Ýu^,&°Öø§# NºÄ”³e‘®¥ÈǨ8¸>$o˜?Pš‘Ú ÒxÿòEµäx¢·3O<½ÞðÒ ‡ÂÉÝ Y8 óö•m{eÜ¢Õ†Ú„q:å[tXSª ³óµ=ã“À=LÝØ)Ø@œAég¶Zi•(˳û”µYÈj‚’勼E®Üë¿ „ Žr˜̦˜‹{ë“ècKXaޱÏòkMÛR¥jÄÃdãü !o&"¥7Œÿ• 8¸…$#ë®Q¦HuQäΙHM÷bw‘{î3¡"o¡kmtW½6’€yÅü+Ì(®É–gÑ¥ ÇèB[ߺ‰Ž5*ª L8dzì`§r^•Œ t£  û„ ‰éʺ=›#%­Ï%.¦·<ŽbXëjE )¾Œöön!Õ0Ÿ u´Ÿæ««J°~HÝ÷xäûá—HFÖ€éf|}Ñä %}·bßþxvöøãÖhÏDV¹ ¸ìÆàùsOU'¡æ]/g—ü:̸Ž^RÝâ!FO×x#Î÷ Y*@ŒÀë7r[³9î ÷’Wˆ²ÿ˜„Ö”ºQïãêÆÄ¶¬ám_–îu2Ji§|øÜC&zVËß¡V=#’9:ó>ó?›š§©ÙZß#h£M,GºÌ“²£© `ü:3B¿ìÍíA‚̪˜yöàòûp áÑ‘]O±,ò•RvÒ~Î(eúöÛÑ[´4àq—¤¡Bêeœ$ €ˆ¾w~¯»å)Á/o¨ýµ|ä…$B¿áj%£®šó$†ÌHS/Sø!yëÏÜ×ë6ê‹z¼½•¦æzî8‚=Æ28b)Ds˜.îóû>µ:~ãø{,H^¸ë‡`{½êìlÚµ2Îªï¾ ÈzúævO»®ç !ªšêF¤€@êHæj†t}Äcohªò›ÌQ”?°›€\¯4¦[âg¹O‰­n¹íºÊ‡ÉYÎ(¢øN¨„qîµÓ±üÙ˜Ê>C‘ÁˆöÒÇÌn‚GZ¥ÃuÒÑX/˜û¢ŒKò]Èâ«i¥/¥KQ™üßR´ŠÍÉadÏ?äËw·žÇKb>]Tláüü8< ­ÏÐ ^l5ŸÜ*A‰Ö•NÇÓUë ÕÓÉnH$1P\‘sK–]w>ž7yyQΆÔâÛvWt¼”Ú5@ÕfGgŽ’ËÉV|Ž=¢žr €}’G^¤µ¨°Š{N¤.w©y°8¹ÑhsTy\áG ³é”ZüèZ'0G™CKu¶mq+›’Ø*³û‰ÅÊÛuëYs0ú~íÑdRp¨ `**î c ¯0TÒŒ«4^%Æ¡ð` K{±ý@ä®ê¬‰A` 鑹ÅIÎ=ž(úX3ò5«|ÙMF±îK(XÏ——¢ƒ©ð²É³i_¯„]}¤õÍUsJ×M—C-=˜xísauDˆ¥ÌN?zá£sü+³ ®¸ºô(díË@"¯©* @{§Ó^O~w üÿ@‘îšOï.Œt_25‰ð'‚²å &\hE\q(+˜ QþÄú~…­a˜b)\Ù §ïÀƒ=žp6i¨:S%Êà,nûAoÚ&EóGùâŸ~; €Ü2¾¼oý\E›Œ­ÐîS@ø4}¶'Ç nh G¨L6MJ3©£ ;Èø©lÉÅ 6¿u¸³ß¶üþPOû7B*]+¯ÎR—Ë Á§ì>5pÁÞÀŠìy‘º,‰Ò r'.Û.@ïÿ•8Ϫü¦¥ "Íæ¢œ:Ýt:r¤Ø™v$á÷s,5Fô¿ùðZ”èj+÷¶u›(xªOŠõ[6¤q¾ÕˆJ ¿‹‡fYÌó^ŒÍΆ\NOUÊ&Î/¶gßÕ`cé‘Mƒ@ÙS;ÀÌÈëÎ9ô]>D.êJ™§>[Tè‰iÙ×ï)Œ@ö»¢t©ÏS,ÐGð]BLæTE†aÙLÜtr$é`œ?¯D»)ËÝš—[G^%ïFDC€›§"’T øæÌu©e'%$b‘„OœjE+Ú|âžöç!}ý¨ÌË@0Äé«J{Åd/‰…güÉ_5Ø…+åø|ªòGb>¶ªS4-#PGØ-Í3Ék‘—µ¤‚¬õSóo«^Ÿ²hÈtÒ6É8/þg-Þå3 µ¤jžÿkBn!ÝÓ—„¬£ø¹ˆ¬›¹“S4ƒ¬¶ãZ]Ž•e …MÐ8ˆ²op|ÁT]Ä£Íò—0ÓæÒ›`f1I¾Poº¼°(y›t÷ñ\G¯¾0áKÄ5$P³ü‡A„Åá()„[›òß⛨z/%¦kïdòÐd±ÍÜ£Ó…D=öÖmÛËù­—t«ýÿÀ_'›ŠÌ¯|Çq>v:È™°fh:?ÑNÙÇŽþˆ§’j;ãD¹ë´Â¯Vž‡ ¨ùd§‹F*RÉ©qÏôV šF/•ÔŸu—rïuÌiüÆÝlæ‚sá°$“¿8ÿœMuç¸I%$˜a'^%…j†ßŽ#õòå¡ÒûÛsÿ£]Ý¿»,“{©nÿË‚Œ{­nºf®“7¬R7Œ4GÙ³X¦ÄIʨ'Ä"8“¹`Z?ª’”nÚ²¸ÝŽÕôåÆüß8©'9álá‚ÿww)QK52eÎ!û´‡3ƒ1îrB „¦}ê.ï—ÝùU’QïùTŒŸ•c%¡ïÇ]pô*ÑO}½ ²Wƒ2¼p°îŠg]ŒâEuvª*(Ø&†w<Ì|‰B<ªdúYÿàðK—³"½ª~ ÿ…ùçÏ3umJ~%B• â®:ʦ,[OrF#pgl%ı8ˆËöLÉâXDã‘éÏ…M¿mÈ•/jbžÀŒì•ÜŸ¡ëjPÑ5Ì”´Ù¾¡ù Œ‘Oƒþrh¾T’ƒz½!ø.äíù…á-øsÙ PÔoÞ.º#´ŽŒgøãE&Fk㜛 µêU©¶Õ°%á™Î³ÓîÙ÷±-HÁ7a€õãR{2lñÑ8¼’\g´˜2Ün,Sà?rú¶ðœ’¸è¬Ï.×j_RAÂñhdIIMæmÐ&›DVp<.‚Ø9 ÇÔk‡Âð.e®JGH¿Íã(½ ï½1ÿ0Ê û<RKÇöòé|ì…[øê– ódNç~ðõóØÜðpÄÐüÐn{ ¡xNœ^L“2Lôþ^íx–*ЊïÒ™7þÍ  QS`‘Î`VtÐG CsóÝaó°Ÿq¢‘ó,ôcà ㌠ÒôÍR¿/Þ×LYñ|Û— ÛüÑ8w®@#ÏñÛvUýäo:«ù_\J0PÃùÃV5’_è ãX™ƒCúAkO„ì>mÏØ³fk“ râcÐұ݅Y:gB›šª˜›s¯½þî¶áÂB–hÁwª ª/N'I[Ž·{“ósHåéñÃÞ–± 0]„±5všô«’Œ/õw?§½ìt5‡Ú\L¼½<¼O|FÉ;÷á¼ý8™B/ƒFzŒ dfUô½º(x4 öÏ]TøÆ!Ž— 4p hB:Küо3m™Dð„Fj+-A˜GnìÑ0ž,0ã>¶ /Ó„õ1hÍ%¸ KnÙ±ÿÞ`Ý„Eªô]<ªù8äÝóíé$¢,€¢c1UÙâ:ÍÌÓ™€‘ž³0>ÆÆ…h]ëâígïÒF½p$¤'Ðcù[‡/Øw;æÒc+#—cäc#³ xY²»£¼'cÑ'3žô®"éÛœ°¶Æ|î y–¯ªúà¿ßßž°¬C÷=€¯rEØ [~N`ü¸2îŽð-@Tç(y£ýdþëü­u ¼euXZÕz!hä'*¹\˃Ò÷P½ÏÊñæniÉk«Æžþ\—af¸ÄÀá”̰£Æ€)ŒffBó¯vn}ÆÖ™§x“¥8†3Iß÷( U0ù\³ßÄÈñ.*”Éãó$¾˜+o0x;XªQéÊ# ÖIˆ;o|*ºã™³K`¦{sP¿ŠçpaŸ4ùÆdžȮä&ÎZ’ú’'ûRº‚ûÏ­'î²µïÐÇñF-$G®?h71ƒ×«Ãèfüh•}<´øauÉ$!Š©_u“Ä'z} 8†œ.ñFòÔ^©¢„—!ÞTV°†˜½Vÿrè\M­ÛªÁ°Sù¤}Ú"ÝÆðÉô tt?YÑIë5·UçK[«ÓlJ$ïZý·Ý8#×%┘jf½T\ÎÌPø¦ï.¶ztæŒòb;lèNj 7“?ÒI™‹ b—P2p ªàr/]‘VTË™‘È ab[7Bçli**ä/·ôí5_l?Ïý*ÌyMéàŽ»Ó•Yb (¢>…÷Iv¶# “Þ™&D(­ãÿ2rºÏÓµ/ý’(7—rCïø„ƒÞÂ̳”1\5ÚDo Œç.Š?‰*qQD&«¾k®ùìívÿ¿³†GðæÊg©‡5<_ˆHà6µI™± lx™€Ÿüfv‰-ý=Á°—ŠÒæoÌ^ÞþQ¶ ñ6JiØ€{N–4Ž˜Bî\$Wâf1Sb׌³ÔÍ¢øÜ‘q_ Þ[vÆ6`ZѾ•Ùò?úµä€ÞÓþÒYJSøR*ÿL²´K»l(li7^ž ç0gf‡ÿ`ÖòõoŠu9^ÎTZ _¶Ì-ÛdéÛai¯˜H)…›Ä"s£Jh¸|¤ÞÓ’,³é œiWi-„Æž÷“ {É Y¡$šÄŸêi0åÛu±ÖãnÞs‘¼mƒ-´ì¯^hç‹þšjeI¿·Õ8úZÈ'6€ÙQ¤Š¥B 5×f$K½ô²e†—aÇ®Ð(B˜#õ0Œñ~…Ó>ïÏ·ã¥W˜ñIY_”m®3?7«ŒêˆF«€°ý5DµåêÄÏçæÃç¦cª‹”èÅš çãI[oŽèíÁà3þÞDøk0¸ Ö vÞ@‹kI¶œq\HJ¦­ÔÜ1Gìcã+ü#€S^&9Ô7°S¨€éåŽØÉg*,8N¨`DT¶d’̆l/âñùUi0íÿœm·ðp­ßP·6É'ü¾C—¥rÙ®¥zÄÝj~ $ûòrýìѪlÅeúpËÖ‚ƒB'ä\ÿÑT™ªywL™Àªš1A¢"äÛ™üJ‘åI€ìœ+º=ÞG<@-×Èyx*)À÷\•LìÕÁÏÌ[¬³íËq¬tð˜ú )zÉ žOýÞ” #PÌ„n¬ap{‡…^U]9^ûŠ@Éi®ù Èz8åDŸÓöP¯ /ZÓ¦,qËö6Ø,'Ã\´÷çw<£4µÇ¼j•ÊÚܵ^œæqk×pƒ…] *g*)$—@—{}„Š4­ƒ:ÝKØ{Šbã §p½‹.ì3­”¥È6ìù’C©«#;ž*b7—` ‚Íi¢ÚAJ¶QÈÖô| •˜†UZF MtËäò}àŠB­vKš3[oìÉH,9à†çTN¿Vk¤özj´Rmߤ˘s<Ê X™âµ×¸#dµqM{pãÙNîkÂxfSÏe‘ùþ¶¦Ò›8’ó0ò°"wk1ìh¬lÖU`#ÈMc2ßóŒí-°´a@ËY’¢âQ¿kÛ<ެ‰,ãT÷N®Œáb®Ü*>©uQFyÑäßXGÿÑné”*LB[©øpL¦TËé;ÐLh´ ÷‘ Ý+³r#ŸZv›c³—%/Ƭ`oÜ´¿º1ÌÒ ÓæFz þx‘à€Y8Ÿâhœ¼¡çÑ ÓxE@yeòP¯Þr29!üË{Û–ØÔŸ>™¨uã惣zš•v&VAº[|d6*PŠrGëÍc¶W}%,´B€7ŸóF#oMA¨:Ü'Oú¤²ùSDnq Ÿ føMÉ|``ùJÖç,K‚mx¢J²ë”Û%äÍãµ<ù ¡bežÿÍÓHoŽE½Ä3ä‹êUAµË5ÕÛP{i9{»ûÍH!ѹ] ¿0B©G\œÙ ŒN·ƒPÉmÒ‘íú³´eǧic®Ü†+¦(Uj™;3W9ÎCæÞ¤ýõØgX{u@Ñpüºß”й/Y$ûÊØeŸ¸ØÏD [=>˸Kw6Å8ld’3E(Ûù†ïÈ_ŸŽ—ÒuàǪðºüâôp­”ìò³„iIÉ24jE,¡lãnó(fì¶PUÁÚÊ[ñB¿3•m0 ƒˆÈQ}ù]^Q+ò¯?ª: ÄcrPXñëiCÖСxÖë©ï‡û…°úÛ‹k' ®Ü»ËXÿzæÅƒp š¦ /îà§G¶ BR%&Ç‚1×’ø;Î~ÌNƒ"YuÇúýZº‹:°õ*Þí‰À扞¯~Pš=«³™¦ôÅ×ÿšhµ ûÛg¸žL9ÖWOÊ dÄü°åL‰Îù'ùƒ”röâ;{õ¨_à™’g~³,ŸÔbwÅÙ’ÄxÂ’¯~£TŸq,f½(¸'»ýâÄ¿H—7§ˆo7*üZŒ ·¿§ü‰MˆI˜wX¤û¬G¦)i×$cSŒÄÍ1îÇÞÚZ ˹~<š, AJb z⺩œ°pü¼¿±$?ý¤ÉêjMMô/‡8þR§%,ÞW r–®µí5Ô²öCˆÍa‘ MU×r¨Ëm:7CÌ+'0kß`ëMu^>ÿŽÂÊ$1¥OK;Ï`¥*ùÕ°ÂÁD®éé'…ˆ&â"i‡²’Á×øþå3µz›P„ÊÆ‘ZÃ¥¨'îÙ©éâgã®DïI' q)!ž›N y/íBÕʉÄÄ—S¯px¶ënzVÿ÷Îʳ–¸9Šý×3­(„÷¼ÿ[BöKKjpek ^´ v¥öe¦›Û%à#Ь5ÅÀÊÿƒ+˜æH)1šï°¹tn ©‚a)ÛzÅ"’w¬¯½jû¨†!R¿GbB^»²-{oÒ™(¥;ª5Qn®©ÒIPcÅ9¬þ9TáùeÒqK†%~ŸÎ2Ìë Pf‡Y&­~WêUª /bøQ¡>k‘9S˜zW×Í–PlÒ¼šTžknÇÚ $Þ—„ÿu8Üó,§6uLÎ- ¤¡Ç™œ*rÚ,Q~ððw½ˆ¢ÿ‰ °Xb(„* ïãéD’´wûÚÿ¯sÒKuºr¾\5ŒE]S……uNŸh¢&ömÆl”Ql¦À"Á§¨‡L°Ó÷¬ûo×v­mÚa179½†'Žp%ʃgÈUÞåã´IÆÅK•ÊôÂë Q•dÄŠ÷ûÌIðÞÞl²¾‡ÅÀVTŸÕåH17 v% â*¼Þᵄ0 ^4~c¸„åq²Ãrý–4éñkH#ùMû€{| „’@žØÛò!‡E>;BszaJ”-ì•<ûù‡]6£cã¢ÕÙko·ê%«/÷ØÍ²‡–Ñý6KÚ›êd¬4e#h_¸Õ²u\å#³/…2„^L0XobË×·ÔÜ ÷Ò–@µzx¯m“ªU…¿€Ú‰ýÜá7ïªêQÅ…m|Š(Z™}tžõýÛ>±Eõq„:ÿHlzÞ9CÊ,å8rú­Ú-´3abûÃøÒarÏ#Udp?ƒ.…|´Dí®gVTþ”V”ùæ>?Âö¦On6ÀºwJ‹ ºÖZÅDPã-5uUHÌ)ßY™QçX¦T(-Ç^bBáA£j\˜Å3"Ž‹QÇf]ú#þŪ óû¦º7üˆ%ìd|;L…¶cÈ0×cªõh½£…Xä1KkQ —MŸ!ǃÄIŽíbÈÛ)¼¢"òy³Ñ–ÀèP+#Js£*d¿ÅäÉÌy‰Hù–ñ³ eü™uëˆ2µ÷ù}õ”·csi“´%í8 ?þ+AZ~–U»·«CnkŒÖj¦f,øòl8¾¬K+kÃÀuqfÒZ ë’pÛŽBÆÄO(Y'»é,=“q Ì xˆ× ì8T7m1Ú•Y8²!–®Vwh&ǦX‚%‚¥8ªGR¹iJ^Nóœô·]ËiÍG¸¿8ù.õ¡¹¬ -‡˜Á߃œ$0èÐ(Nïr³cgõÐÐjþ2o7êÒàœxyÂï¢hdU„ÿJÔxSd“­¼³äžBç¶hÙðçzÅ£!ý3œªýÉ2gO”g¶ÈiÃѸkÀáp{GäÁ¿™£VûÃ.cV#ôBvÌsXÚTAC‹_ËJg[Ö ÑÍÛLƒWY_zð‚¯ $>g:t!N~A˜ýä®ñè^›jx¡éu—ŽòE c#%ˆm¤e!¹7HA>^àadŒßÿÊRIÑŸª×†x?Á ·uT»P*d[$<žÿš…[eÒ%´Ó äå:žŠ œÛyciì@t·ÜKZM=ÔcÆkäè míoÄ[¯!ñ—¶IjîV_GÂzJ¼Sy¼+4­·ÆåG#yNïªÄÜqE§Ã®Æ»cZpNü²¹»evT$ZåÔf´6#*GÙ¢$|:ZNé§æò›ƒü¹×/®ÅÊö´‰v°­’öWBÍä¯AFßôN‘ŽòB>GÚç7 ÷ E ”5ñ‡¯ê7ã ¢ÅßÙÄnÁØ hŠÊîŠÇôöõµ¢ê³—§ÇyXqœimšT[âÔKˆN¹N‡9BÎðÿItPû ²9.¦L¾À«(2ƒêKsž6òü_¥~ÿC>6ûß!}³OŽý÷¡[w1PgIG…QñðÉ„ëÒ~ì!—º¼•$/|B[À»5¡Ó2Ã×D$3º€š¥ d‡¡Îé©¶t|h!Q+“Ex¾»í}5Ù,5¾<¡(ÞÎ ØæÖrµl`§Z# 2öÈñ: ‚G]A˜IÀF¾¶ÿÒº›N5Y>Îëº*’6H®’U'{nRƒ}tx+3ÿZÖ }ŒlY->^ΆO­ycµ|~»=)ò¯e°Ýs"Ýn”èðí'pFjAÌ@¦ËWE>àÞ2¦3¨gÕú[¢¸g6¢ÒÇÍ”¯=¼’]ü-ßëôPz(~í¿5ëû©D)ÎTæ¶6Ã=ˆ!pŒþäPá\9;][÷Ì„ŒœW€Ý–m³Mµùà chò®ˆƒæ,Ûüa2÷hÑéaGy'Ok’¡*mJŒA_YQ ÍÞöv…ËO—þ{ŒéÊ騱R±ü"3`úT€â=b¿¦ñ—ï‹OsõÛ~ãKO9–¦â&¸¹2¡•ÌŽÍûë4Ï+Âv𲿾ÑVÓÁ°¸gÎJÄårX_˜­ŠÔ¡Â͘#ö ¯‹éf÷̉ç‡C_1+|gÂùï¢/š^ÈóÞt¯ÔVu´w®ñ˜=âGG)ì€ýVF€QØð›%>W¾U@º ~œ*XˆyÔ]¬.””G"•º) ¹·1;¥ÓÇ€>ç6ïWשªˆæó.Ó«,¹z—Š»'¸"ÄB‚ïQhÃ.É‘÷(ŒŒýlƒŠ7ÚN*]º]!W9_ìšÀ Th„ø`Û üÁñÌ_‘?x›þa™Íå„ÕÛ±VfVÑ5aIïöy®Ù6ªçÂÍãUðî9í¸Q+ÞPª›ÿjKkV能(N!6ß´F]1h-N+>3Ÿ»UUrxŠkUꥈb­¼eÐëªÔ¥`™¹2 ÉŽŒ¢ç–|l,ä‰Ñ€½Ï/anu6÷'—㱿}OÝÐyõóB›ÃˆS›ŸM¯²þªÜŠvkAù׿Îu ]þ™¥]Â9“;Ê$ªxî$ˆ wK)?“b0ýR”B†SëE?¿—²u¿ê8›¬^ŽÊá#‰±_d3ŠYjºþ?c,!^8ùz¾€Óü“5-'p+ø3 ?®Øø‘`Ao>õõ8(17 d¿|·7¯\©Z€#Z"+è´¸\õ+ëo E‡d?ÀÚw i¿¬L JqßÐÀ«-V5 &IXŠŠÔè%G†Q• ƒÕðò½ŒÃ‚Pt@MÀSTч0üÔ,ÌÕ7¢ò© jž)M0¥õå?å>Ô¶aYOêo.Ðȯ^÷ÊéF³:ÙâÐȸ­?ðá0ÿÍ«X¢ŽYûÑòŽx>ÕŽ4N‘Ù½ºŽÏ·°ßaËCy$ÿq`V;ç LvŸ6ú¸Üt {ljîÀãNø7GŒÄÉÕ¡ŠÀ¦…ÒQ6÷╸LO¶:äÌŠñ¹jÚK;M÷ ïɰÍ#E·(¦"âBJàªWŒ^XèÃN½+möH©x ê)9w”jš<ØìGyóŠKQ UÛï³(âÕ ¼?˜YÔšF?ÒLØÂŽÄ&‚E°€Ç›¤?ÄmÕ_+¢ÁøÁ; ˆ?¶s{Àù¬µð¬;úNŒ4nõЩ¦¿¹âýŸ¼hã”Õ—ƒþRy†uèçhô. ¸Á3Û‹çà¥SívíH‹ƒ£1#?zC5·´î ]2IW JQ ³rA“â¥MŠìJI3„Y2Õ¯­Ã¨KNwè&H¬ùûÇw¥S £O§¨¨¡Ë9 ¸ðŸ½ü5 B1q„”Û¡+ÝÆÿþ Ôó·/îÉx yx‰²ñBy6;rpnÚïqª¤•íÛ9åÌê0Ï ÂÀÖn¹ìM¯?T´FYVïÍúF®z·š."‹(ÁÅʆFk50>Ëç=I#ŒÁ;»ÉC¿·ÕG,MëÁ’=ôè 2&Ë™ëŽñbTh«reÖºÌÊ;ôÍû/’¶(°3òk˜^„‚  ÍKSQdeòœ‰Jl­‰BÞá8$!¦À`vÝE價ç«àâs6RGú$Íhé² ò¿£ZÛÖYõ ÞKf A„/ôX\e†ƒÝžmÈG #‚%™ Áúîôç9x›žD«w0ÜOl`Ûç„s`äK åšôxÏT©g £]Nããø¿Å€CG™ª5Út´îÀxäB5.î/W¦Qûå:Ì—8HÝy±¿[ißÂfbÉ¥HÃ<±¦µ‰ëd¥ˆZèí^üéËÉñÐOªýtÕp," ïžR³Wâ/E‹Ó¾²DþˆÃmÚ"žP'ʪrÅŠ}Z•û~8Ú«¥.ëÜ_|¼ÀBç?òß±žõºpÐt¾Ð­srmÌÍ{>ÍmÀ[ÃJ¬g"’~ÄÏÈÔ [ˆÍ_ò îr·¹Ô“Ü—,Y³L£^w6g>C“Þ‹“¹³Æ³x`3QLÓô*(ù·È1¬‰­Êé‚iÖ¦O‚"ÛÅäöfÄvþ5˜i¤»ÛìöI¢ã]ž¡Ò€¡þU¼õ(ûúÏFÙöëfžÔÙ°pÊŒ^CL·¥U·M¦—„‰n/%iükoÄ&wKé€dàþW¸ÉÕÊ«©—¯æûbS ȃ26Õ¬ÍeÜáà-‘yîÃ<üo]½ ”/B 5—Sÿ,žÛálÂ:—ÌkfÓ+à´ ˘:¡Ë¶SJèöè²B*•¸€ÆQ§nSå¿©ªÆy¶ ›-ý쇎» Ó›oëÓ?˜e&ð>CÝέRdR‰qu,Êç8ì;ÔåVÜkîv¨…÷8˜tDŠØh‡£Ükûè8%ó°JâRìi‡Ð¢B8žïáêüL›Àèì#Àc0{!²©€4öçÄu‹å ÓTtê¿+|K®n¡ÍPˆ=b£Š"œÖf¬m/9±úÖú@4AlÙy^L¯Y!Vrò®ˆaŸ,1+{00Ì1%0v*¤#aÛÛv@4)(˜•[ÿ8ü,öÇ«RQ¿ rW1|é%:êl‡‹Æ7}d(èÎ_·…D“ FÐ+KïÇ„ÊDLt, =Ñú=¼5ñݧx±åØKΞ~«ÜHÝÄiÇï5Cøá•3¬2£ö¸±!X#ËFm~¶™¹â/’°yK€õ³£.DØ.fÉäÉÖ4n ™«f»êU¾J–VÓØ\Ù¸Ö2¡5KvÞ¡Øv›ümqªlÝ£‘?¢cû”'J*¤Î‡¡"×'póЯí¬Ê¡!¿Âô/z Ñx{ÈXÃö«ŒÚçm†Š£»«Ñáf§ê`Ž^±Lò×rd!¡º3äñÌ=$†‡htÀŒÜ¯WÆ{$˜$möó:Ë/ƒ©p¶¶zî /À·l+KÝ»›˜lZ ##AmÙT÷b7±Œ¬ŠêþNo¡Ò9kHz¹³0©·•boí³);6OË⛎`o5†2„2-‚» us~€bEH‘âEàñìwCñ™{;6ÒM”ö›äº!Š”6FkyØæ§,sãÂqIé©A˜<ʼnâñžÑß÷Q6âSí®¿W¶tF„Ñú¢KTu®_V¶«bù®21ZHÝÔôªGDM2@ßO‚ùü]Èp‘“ŠÏ›²^zKï ÒQ[ß´ @Hí*=„ÐæÈ!à|^•œÖòºey,—g¹$S®œAZj¨ó™‘gy!ßv•ûêvì û`µøMY¿Ý ¢ü¡½^³ìã>Qí"Z0ÃIýä3ac×›¢3CíìÍøE;3ù¿>­[õ’%…mziWÍþ)FôLÉÈÔ® -(z“ÁmÈ_s9 )¾õ2®ï‡p¹¯n§ú^n–! šEG­`ŸbÜk[§ š)ݳú¡Q¥j{ŸÚ˨•_h~-NºÅq“w@ñÆ£åÙXNÉ×uÒzF{'>\]+I¡L“_v qƒG®Yùõâž&•fLï &6HÔ†åîœ1;‹/Öéɦ¥®N¹Qdý¡!þ¬xaÈZvY)¦ž~Ò^^;Õ}‘2“–䳬Hýè T¶eÖ};ë{8´þ~ÌÇAXÔëä_ ø¡?öìÿ›vï1.¿Hw^fè&W܉ŽÛìç/˜¬Zšµ…3!3¯`ÿ*Ãn—Ò‹Ò2¥ (#•Ò²Â%:'§Ô0§xÿ ÔF»ù<7Á¤û· ÑÆa[Q]rF-SQEÿ'c ë´„9à“Éì~½­†cïùÔÔªG¸ÚŸ÷õº::lÆc™ôÅŒ†ýDÀ_ç•ìø‚N_õy³9áŒò˜xhé›É†”ËE£Ã5o&ÄÖßÄÌ$ÑM·ÑõiÝPDXÖBA©F v È‘‚£¾M^'Oº°Æjs£DùN%¨šCIþ»{+vÕÏâ:¸©FT•þ;XÁŸÕ(‚yK«ÔØK'‚èž“8ÇsËpÀ bì¸ÐÃz»t¦U2ºIôyߢv¹ý•ÔhŸuSÞt2'ª–¶tÜì†Uk¨¯bšyÆ$Þ)|ê¨n'KLË:lï€ti§—êæ7œ#/(µ¿­ŠkÜee¿ÀÂHTÜeL}˜ix1¦%³î|âO_°ªjà|˜Â!‚ Z#¢u3ÞÓTÄÊ­:­&»\SrÙëkÕS€“@}à8ÒÆ¦¬×ïtϵÙaܾª-¦¸Þì¦NJݧ6rVÁ6~©šk•P?éÐV&n6ÛxÑe·DƒWn6«¡žh£>ž ®*ŽV”?L/¿”g¯í˜IcUyêýçàz›Ñ,rë/ü"P íøØT/üKŽÕ&‰%ÅkÿE³> °ùNîiMÏÓJWrLó¹ÓGרE Å¨¹™ÚSËÁã•^­lèobY…ÉÙüý«²Òls×gNºp:®AÿÛ*˜> ð¶~Õ ¯ô´kÜòÿW[CMüæz ä h%sYвÿVލZ§O´CÚ¥oLÃzÆõÍ9QY˸Mapjf@ ‚窮¦6÷&`™‚Ì9ÏŸ B†Ši£¥M²”Ä>bO¼· ‡µLÂ꓇@‚‹kmr¬"7ƒcßsû™ôÅà>WŒ÷{ˤðŠ|Và(N•Ì€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/d050000l.pfb0000644000076500001440000013160307056046552016377 0ustar fnevgenyusers€¶%!PS-AdobeFont-1.0: Dingbats 001.005 %%CreationDate: Tue Oct 19 1999 % Copyright URW Software, Copyright 1997 by URW % URW Software, Copyright 1997 by URW % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (001.005) readonly def /Notice (URW Software, Copyright 1997 by URW. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright URW Software, Copyright 1997 by URW) readonly def /FullName (Dingbats ) readonly def /FamilyName (Dingbats) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -72 def /UnderlineThickness 36 def end readonly def /FontName /Dingbats def /PaintType 0 def /WMode 0 def /FontBBox {-1 -143 981 819} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 33 /a1 put dup 34 /a2 put dup 35 /a202 put dup 36 /a3 put dup 37 /a4 put dup 38 /a5 put dup 39 /a119 put dup 40 /a118 put dup 41 /a117 put dup 42 /a11 put dup 43 /a12 put dup 44 /a13 put dup 45 /a14 put dup 46 /a15 put dup 47 /a16 put dup 48 /a105 put dup 49 /a17 put dup 50 /a18 put dup 51 /a19 put dup 52 /a20 put dup 53 /a21 put dup 54 /a22 put dup 55 /a23 put dup 56 /a24 put dup 57 /a25 put dup 58 /a26 put dup 59 /a27 put dup 60 /a28 put dup 61 /a6 put dup 62 /a7 put dup 63 /a8 put dup 64 /a9 put dup 65 /a10 put dup 66 /a29 put dup 67 /a30 put dup 68 /a31 put dup 69 /a32 put dup 70 /a33 put dup 71 /a34 put dup 72 /a35 put dup 73 /a36 put dup 74 /a37 put dup 75 /a38 put dup 76 /a39 put dup 77 /a40 put dup 78 /a41 put dup 79 /a42 put dup 80 /a43 put dup 81 /a44 put dup 82 /a45 put dup 83 /a46 put dup 84 /a47 put dup 85 /a48 put dup 86 /a49 put dup 87 /a50 put dup 88 /a51 put dup 89 /a52 put dup 90 /a53 put dup 91 /a54 put dup 92 /a55 put dup 93 /a56 put dup 94 /a57 put dup 95 /a58 put dup 96 /a59 put dup 97 /a60 put dup 98 /a61 put dup 99 /a62 put dup 100 /a63 put dup 101 /a64 put dup 102 /a65 put dup 103 /a66 put dup 104 /a67 put dup 105 /a68 put dup 106 /a69 put dup 107 /a70 put dup 108 /a71 put dup 109 /a72 put dup 110 /a73 put dup 111 /a74 put dup 112 /a203 put dup 113 /a75 put dup 114 /a204 put dup 115 /a76 put dup 116 /a77 put dup 117 /a78 put dup 118 /a79 put dup 119 /a81 put dup 120 /a82 put dup 121 /a83 put dup 122 /a84 put dup 123 /a97 put dup 124 /a98 put dup 125 /a99 put dup 126 /a100 put dup 161 /a101 put dup 162 /a102 put dup 163 /a103 put dup 164 /a104 put dup 165 /a106 put dup 166 /a107 put dup 167 /a108 put dup 168 /a112 put dup 169 /a111 put dup 170 /a110 put dup 171 /a109 put dup 172 /a120 put dup 173 /a121 put dup 174 /a122 put dup 175 /a123 put dup 176 /a124 put dup 177 /a125 put dup 178 /a126 put dup 179 /a127 put dup 180 /a128 put dup 181 /a129 put dup 182 /a130 put dup 183 /a131 put dup 184 /a132 put dup 185 /a133 put dup 186 /a134 put dup 187 /a135 put dup 188 /a136 put dup 189 /a137 put dup 190 /a138 put dup 191 /a139 put dup 192 /a140 put dup 193 /a141 put dup 194 /a142 put dup 195 /a143 put dup 196 /a144 put dup 197 /a145 put dup 198 /a146 put dup 199 /a147 put dup 200 /a148 put dup 201 /a149 put dup 202 /a150 put dup 203 /a151 put dup 204 /a152 put dup 205 /a153 put dup 206 /a154 put dup 207 /a155 put dup 208 /a156 put dup 209 /a157 put dup 210 /a158 put dup 211 /a159 put dup 212 /a160 put dup 213 /a161 put dup 214 /a163 put dup 215 /a164 put dup 216 /a196 put dup 217 /a165 put dup 218 /a192 put dup 219 /a166 put dup 220 /a167 put dup 221 /a168 put dup 222 /a169 put dup 223 /a170 put dup 224 /a171 put dup 225 /a172 put dup 226 /a173 put dup 227 /a162 put dup 228 /a174 put dup 229 /a175 put dup 230 /a176 put dup 231 /a177 put dup 232 /a178 put dup 233 /a179 put dup 234 /a193 put dup 235 /a180 put dup 236 /a199 put dup 237 /a181 put dup 238 /a200 put dup 239 /a182 put dup 241 /a201 put dup 242 /a183 put dup 243 /a184 put dup 244 /a197 put dup 245 /a185 put dup 246 /a194 put dup 247 /a198 put dup 248 /a186 put dup 249 /a195 put dup 250 /a187 put dup 251 /a188 put dup 252 /a189 put dup 253 /a190 put dup 254 /a191 put readonly def /UniqueID 5020164 def currentdict end currentfile eexec €¥žé ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ6ÜÎø,µð¿5«‹çüÿr¬m`o!VUt…õ0-¯øïáY3y8ñÖ1Ö\VØ Ÿ#ðžÑÀu“ÆÝÓLùø&~D:g©¼•Y·ÏÜnð1çÄßò®DÐÆ ¾½²æ†ãØ"Oéôöæ2­UCµ •±’Iµ'üKøàÍAª¾D  m ãuË¢ÿp‹êiÑ⊛­Á4Ü‚aÛžDö/‹§Ë1Ky 0ïs=µãÄŸúÉgR|’ZbëìÀ¦ÂDù\pã™t!ïˆ ÍœñÑ+³Ð–3²ÿ®]¶oýu¢•5eŒ•ÂgÆS:ýʱ喿êF, 1ÑÜïR´«Zxv„•qίv—MÈeõd€Ë>ÄCÄÿßñW¼Ü‡íønKY8Û’üÉ‘ßò±×~|Ÿ¤¿m¯¯×>ÂûôÃÑßEHŒbÐòX6àtb3žœÀ é Ë %yÚW0U&3ÞŒåÞyãtN¬ÂM`ó¸òhJ3a¥hKÆŽ„wå0¸‹¥ŒnÅÔu¡ø²Â /øÎ¦IA#V¹éxºÜ5OGhw¦y½³; ùûÚl¾Œ³œë4hœÆï G“Ç@Ò¨*·'¾aûñZ36 ê6Ý=‡ó2ûAèÆ©¶.ЮÁ ­A\\‰oÕ!£ÿÂmºÌ:3_¦ €‰?ÉÙY ñ¡Õž]öî‡'-]O]iÙ 5'¦xzBW¨Ò™Ê1ºu±ÛxìB5½ƒ‡7G€Æ^K ºŒ#IÌô·i©g%n‹„g2.¶Z/‹5« ɤÉ_‘øõ—o˶”Åì§©s”ÎaD ÎãëØÕP"|¾% ý¼!(+0&AÓ5ªãÐ8‘-lyßÖ˜N•‰/в$` K÷ä\N6ªYóMp3†D)2‚•Ö_"Ó¾âç„ô ¼µÚK™”·L?Âuþ·7À ¢@ ¡|æ|:Uì<ãÏbe¡éníŸCéaÝptQW'á5Ç(‹q´ÿ Ï Ñ–šÓn'4Ië­ò¹‚X«TŸ¾®õ/”Lµn“H;5(‚!«S¡ëÜéx‚Ã1þè‹9Üèl Z_b,8[`e唲-»ÁqP­\ʵæä;»` ù;ýeºâjä¢9qçg•a™˜b¶å(!t:Dº˜)‰Hi}þ[ú/ Æ\çF~6šÆW$àâéD[Z a¢åÏÇíK3³¼·ÀM±ú{y„OV÷ÕTŽ|*² õ´07Ƚ)Q•çÙA{åB[ëü„u‘`R›o—»&0ss“Vô+ômhÅÓ qzŠvIØÑCp¹ þ²u )û‘%†=iÏ C=,v¢:3ªƒé™j;´4Ðÿ°Þ´I=+îÚíš.Ih‚RZ¯·û Qñ£ã½3ÒÝVº ÎN¡X('*(tÂç6l&VÑóâÌP«³ñê½ÎÚ5_Oß·{‰«ËÓbWüŠ’ŒHTQxÍX> ‹àñhÔÑ)Pú~Ü2÷«féˆ×K5Ìü@ŠXÄ6¹8¬9öö$~Š.éßðï­B‹óýÍçM;¡é(ò0‰Ouø2–Ø.Æ&É6 šRóqò.¦¹÷,ŸûðIôP«Z¨Ê0ìȰA^Ë[—÷(1=+® 8ò…›Çh" S•©\›îñl*¥È¼ÝßËj‡Å2n¥§‘‚wöî`|‘…ÄÑe̯1v"x ‰¬Mþd šÈAWœÒ†öσfRÖ'µ×pgµ§îZ>ý8Ä ÃMuõ¼ÍG¢~Uòа™Aüª‘›Ó.Í wÀ¬u•e¦`ƒð 3…=,Tåî:¶¬—9#ée>0Þ¯×el¤œmrVëàß"Ù ‚ŠÈzÀß9±û’-õðÎø;ZµÕÎ$Ô…öi/ ‰®X“#£â‡kï€À*[±È>Æ_ÛÌDE ŸÑÙçÞ—5»øyš‡Ö*Q /|[\üúA‰“õd< ™üjþ…>6Úq]xª°9’âº&Iñ媠W"æ w5¦äøEH34cŒG×<“MkVSÒ7Õ D7 LÜ/]õY—vî‘ò¥£ÛvùÂqQ¨³%ïä뤩¢òù0+cйSm¼p|šÚ‰ñKÖÔãƒÿÔ”ÊzD"*âŠqEZpI—ó`kFã åR‘ב²’åvÅŒ›Ê­ñÁ ²çZžœßáMd‰6itǹc˜Y2é„RÛ%bk²ËcUݨ‡£×ÚA|lºõ¬µø22æ*̱4™~ÑŠÝd §¯N2=Ü ‘ç:*ý_ Iksˆm†ýª€S8äC$ùG²FÔnV…†¯hÀ?qXÄè ò¥F¾mÑÕ<þ€°n…øá¤³",ÃæŽ,áòSýAL./±ù†¥æ-Mµ¤X +LŸ‹æ¶l哲AZ‘Ák’–C-,Ã…+9½¯, "—`lºeÙ;M1Rq+„ol„Å 9 OÇÞ#’X¸É?*¢Î—iíyÔì¨HkÐ¥fHõœÒüˆN2„ká¤]޽ù¥^‰ºö†aܺêÆfú™“" ³ôÈb‡UnÒüÿ<åê¿‚÷€Îã·É¨[¤üϳ¢0ç²êeYÇs+Õ½ÁÆi8yË9v\­$±Â/JÒ³Ûúõ¥BÔß»¡ n«<ý÷G ÏËÅlTL¸}(C„Ö­âˆÓ}oÏê[Ë¢»‚úÐ10¯[¤æ­>=[G­Fr€n,FºxPŒSõà;ÒC”íñÓoÿ¡,ý’GO€yjRÐ-Ç¿®¥(ªðŠ”5“bòG 6¶Ü*§„ðdãÃa\§Úp—'d!]P—ü/Ù¬²>9ޤŸÍÔ˸ZÝ!Õ¥01øXž ¥œÌû3Ûóò”ëVmÚµ?kÁûÁʬ˜¼Ýu˜DÅ G~+–ü„‡î«Î £v“™Þä«ÆÃ¸8ØÁkq H°+B5È_†j,§OÈ—ªhÛÙÖÓsÂðúEßq+–XÐÁžã„”`¨w8œ–ÎTÔMµû€5 »µ[ĸö`–9ØŽMbÏ+êD–<ÔÉH,Ò<ñ5€úbáëá™8EÁ²:µãò—«¹ÌfcÇSjÌA*Æ:”Ö­Êá“o'nm3oÌìð½öÙBÄY#©^$Ez<ŠË×þ9ó»ú³à„¹gÎ1Åñn\JRÏËãæÇö:ïñ5§–™ó’ûõ»ô¥½mÔPDzÄíFQÜ£ ÷ãZy‰'Âúf CÏõzŽNêq¨ ?â3€2¤(P Qí$½Á³ Šj “ýy˜•!TÔÓ™Au~[Ñ8ë95øÃ±¢ö›#ä²Ë¢/%­¥'Ïc)§… |Ñ?O2ÈÏPq ixâô—n×”cx›ÓeYFÚ}70·«#ñãá¤&ž^D¸(aälÁå}Ô²¨÷¼)³@íÙstüq[Dœ7«ör`Ȇ%ä”pYš=$‡€h©"M¾`Ô£´~”Ý•VŠ~¬DKî•›¦fÊ:Ðicg…TØ&ûÆîf…€Þóà0¿Ñ¡‰} yãp„-ü"¯«Oû—0Vö/ÁE“ûAñQBK|ö«vMRkàn•ÉÕššýf¨j’Ó5iYÛaâdØÐäFP8–ÙG~¤Ä¢©ÙÞŠÒ]Kÿpw¥à~^ÇÔS¬2¶‚d™îTL–ØsJM¡ƒÛ'5c“â<³¿çŸv•qeÚÃË/â¦étÙ[" Î1wHjnΗÑ?Ìï⃫vŸàõÈ´0'¼²¢ xΉ½Þ¤ÜraJdgÍí¦‘-nS3þ5à¦|.—(«¬9¸¸é*ð¹?% ÅÌ-"dn¯‚9 âßÁ=[mŸ÷,ók»Ŧö™PÂ$\Omü)"Ìy` ¹s­sò:Ú ®³V˜Ká³ÉÐ(æð«âkÐhX \õ×·þ >0ý ~ í’9©ÉG³:R†‡ïBlº/ú–?0qE6Úù€Û¦päë@H-ÓÙéó ínºs¦ùGcHÅMÓ>óZ‚!ýQ¡Èüù擟,W±—i´Ñ&Xš{¨A¡ zKPŠLÎx¶I¦ 6X#€³ï00~f^W¥ílg/¡Gnw²'ï˜:Ã!9éø âä¢3ésëNìºáåRo7•®ªO·N(”&"Ôj›LYºåóÙ5¼—G¶¿§ê}ýbJ²>íóîÀß+s9IÅ#îãüïò'¥¢ì³žëµwÔ- ¬J¾†8[ùÇØlX8ÄEµQ3ÈN3X†€?Ïnÿ§†T¥+¨ÃE@ÇìSéÏM!fì‚å¾·Â9ì•Úñ‹Í Ã=èñ}Œ9ƒ]==f „ •¾É}49…ÞO0TÌ =®Ñ¶k\³®ÿØ÷"ƒ4ØãL˜Sþ:Ž —š9*£ÃüLðוYp&0Ï÷²0‘-¼Rƺû`Ør¼NT´JS‰S¦&¯VR9*©ýsõ{ªWý Ma1ÓfÒ¸`…‘õ-ÛmgàÞÔP¯ÉU˜i3’Ò–4w3Ï\PêlÌÙÒ´Ü í6IŠ@y™™¬ñ8 Ÿ=ðŠ“c©ÝÕµ‹È“¢2øúã“'p"1M’¦­1ÁkCIÂM!uxù}nSîõ²x¯O><)·bÖÐI§:ÉK;àáKõ骠gnu¸dÏŠÏX©ží‘Ä ³&HvÍFÍÛS`é]e&¨/„ÿðóy[5? ïÅQ‹KdùÎÀ/x[*]›ÇÀЇLO.5’ŠÊ"œ°N’ã)&T@Îoºnhþ¹ÑlU²¿Ûàþ¨N“ À½ÌYZSþ—¹G„E”rLrC´ͱۭ¢E¹óv $؆Í,««ØbWì-¦rA¬þ$"©]æ§Ý”z`p›£\u¸U¡Ÿ"!²³ºC9–Ž•—îdw„Þ ×g3ÎlIÏ¡Û#€ø¼î¡ÇÀzÛé6ò_úƒto!§»1M.¨£{Â]žð"”òý×1]'®)agd¬Â WÝswÄÔ‰­è>×ÿÍ}£µÓ_ßý$|¯…t”qQÕE»Øgæ>Éx\j”Y8ÉŠ“ÜØÜƒö¾ŽŠ¤øæã‚R&dv•¤¼LæÎÓŽÙNFh±H±&ƒ–[—çåݲÀ™¤¸¬ˆ.1š¬HÍzñE˜vNIž·ñ!K“( —'ø©Go¯&®ãÍÒQÎÿiSý"ê‹ö¾Mל¡,5„meMG3âœdÌÅÎ º]°£÷U}2±‡icÅ:àŽR?råãâD ܵº# ¯{´x%Ýš‡®aóK˜•¬"1€bs1$±¬´@‡fC7!0ð—Ž=¼º¢6Bá¤}àôñ,¿!=½öCÓW.V;JïÉeæ2ø»Z6ti2šj Q¥‚.áŒÃêÕ~ÖGr܉úM!ÛŒö?Ì~˽ÅiºÅ¸éð: ,˜J°ëImPr‡HEò®˜ØlHš¤_ß…ÿbg.<›ü€a'ï¥[5üd.©•ØžAî}gÛ¡êòž6”Ö¤0UE=g)ֈȇ*qôKL ®}¦ä~4±c ùŸ£3ÜÖ–R§Ãý2˜ÂûrÝzè •ÖY'øNNaEGÓš‡}ßèuDuÀÀ, Dvr#l>“¢µID#X^']†x±lOîU.ýÆމŜ.ÉÊpšGÍœ¦@ƒ«Ñ/x{ƒöO„V~OµFÖgKF*_ÿBªz²o˯DÁ¦m”Q%‹Þs`ň°b!ÀØ´ªTh}Ÿ‹H²e4PB‚® é·ÈÌäÑl†lB0I<Áö̳>]•È;$±î$Γ w#§±—qQãO.›y4ô½*&—Àdæw ñ£W7âqÇå–ISÀA9ìÏÉÝÎ0@AšC´²:¡×›ø^ ÌNßßIœ_7 Ñ&çÚÛœ&Û˜M*ö„BóèE4\Zò7+7ŽG·´ðœš’ ƒ—ø¬Šz¢5àÆ˜çñV¸êw~æ9Ò^ÍwŒ;x_²pQ*Hø¼²›J÷w‡M l•Pí¸ÆÊ^q6\À—éî09UòG“åZŠEm€+¨A&ÿ<Æqâé`ÇIBõcj!ob¬€ÉRB7‡ƒÒÉÎ=Í7 ›´\Ošt<j6«™XG^"]ÄdOÒ»® Ï"¹1ƒqiµïõöÉ•R0ÀP6Š;¯Óàl(¸ïq]ýU¯ ÖPa硼_|ǸÉ>I(V¤`/¡éŒþ+Öy˜]ïõ¸r¸Ýà7_ù þjæìn-ÞùÃÅÿ2ŒçuD¡Í×êä¶< _tñ™¨&gîäØ0®¢¢Ù<”íП²:–r™=¨L¿a ‰o4 ë­i1…¦Ìü—8:h¡<¥ Ù3™R9`|?Hªß´"]×䯆§^»‹ÉP^‚ç"•‹,'úó’ö†ÀÓuc0¢jc %®Ö@6P%1ž¢ür­Ÿ]_u=„€A>¢'^ð¡ï9DãCˆÑη°Q¬ysÞ%R˸{®­¸N³  ÓBƒÙCyÂ'&€=ñMe"X_€Ï¶œê*G’üŽ¶ë Œ&€&¥Ãßa;ñ£;A‡dxûqÈ Ì2Ç zƒ%OúŸ5Õ¡+Ã"¦Ä»TI¼ô-£é"¡ÚÈ%«a|­uwxàn˜6g”(÷%=e-Øô—t7Î qeè ¿Ek™éšœžâ{B'K®9숺ɎêÉøóHÿï,^):çIð%ËòØW]Vì_r7¬XĬJr‰zð~ªã{ôðW€ ÎIJGløt¶êPcSžØ½RAr;Fô‡Îø„Œ *КPJèàeÈZÁ˜(ŽÆÔ¸bg„>¹¬/ñþâ_-U7¬üûꇟ‹¦™¡&Þ÷£û¸`³«$3ãfuÀ¶ p£Çjrêu€D²ÞWÙ9\ryO³Þ¾¾žA ±V€ã¡bG8»fýF«x×|zLûWpvCÉ·ÝÕL‹Áå®sîªÒ\ý{Ê&éR„sï²»qº›VzŸ)—c÷7ªÏ©zÎüg]¾ÀìDºòmÍrŸ“Yr)Ž ”ßõ_“bß ?Oç›l³ CEå1ÐQ©'¹F1¢`,Þm˜œáÃz‚áè¿ÄªÐC?3—¤+¾<Ù»ó6ñ1éAò#µ«4ì7Q/º*wQ­ÉÂó x¢#ÔÌwoh«Y_~˜@âñ'}¿ðà Eë0 x•Pt…ÁRÕQ؃+ˆüUŠ[n~þ†€ë#{ÙDåA²  M¤¦€8ù‹1¢Ÿw¤TïsàqZšDN¶£’3 ÿ²Nôñà8+¸ÁQư· óð«0.m–VBlÛ´Ó:ùïD4þ½cÏ(®d€ÐÐ>š^¥|VóÅÇH]•9•¼“2£ð¼»2lž ïYJ07*ø-eÑ‘åc¨ÇœWŠòQ¾¾‘‚?.Äí>U¶SU¡*rÚJµÊDÿO%|Ä æâ™[Ä?™_6;•A 4´÷K>jÔ“y‹ÄQôº¯ÍI†Øu7=JW‚=Që‘[2¤a²¸ü%n!)_ ¬±s˜L,ˆžLvª`çGÑQÓz”í¿ð ¨8·=ît\ÂðwŒWÑE(_²Ð1j‹éûº §íÄ Yç>•‰¶Ðˆ³™aJI)®K~‘/8i‰Î)PôÌZqð.æT Eµq§LYüÂÝBŽãÞ0÷ÿçÄ–g{ÍVüœ‘Òµ"ôÜ-‚®þ¶×«‡6åë@~~þôÀ äW{PŸT×ÞEqQi¬oÇõR’TŠbÞn‡ ào+ÃèMœ?sgKÉÛTo·«ºR@Äm9¦»k>Ûˆ˜Ïk¨¥[#À3ñ4ÅmKN¡¿$Ús{'פÚ|º/¤¡9FK=l}®Ö0úµâ ÜÄ uˆ´_•^¦¶3Æ,¿6Í“ 8Úð›CcË¥u’°Ý ÂÁìt(^žœò Àö #Tî…ër0Piš(ÃãQú)Þ°Æ„ÓãKWRm& ”1¼€áÙÞRìYí5[Õþ `†l8/Î"à¶ØÁGîQ%¯°qÖ•Ž`êEF–ƒF|§vbœ J=”┋°Eˆ·~™Ýàuúêqüñ·STÜàTsBk¾!Ž'ãŽ3ƒ:1š„B•ˆHK/›H€óÂ’¤pFÏxs&ˆºd­J:g•4Šl2Õ Pº™\TÚøVWÁé»<K\mž!ßKÚ3f /1—̧³e©\ßö—{©e⦆x ôŠýc{ÔUZßÎ2,Îénâ.wØö2-Ø+b~Â'?(ß ¢*êý¸Ê¾˜Q%}Ëq´±¦r7†ä¬¼Á*nÖaúÜW¸p–xmlHdYù#GN27ùW¹B–} Ê­Ø2ÔŸ+‚ÑÚ£¤î( ªøcÌ:ê®<¸TI„},²Lí«ža|÷"5Æ*œÏ>[7Uvè>Kž #Òèÿ6 y‹#0Š2©BäX ñ®M¸Ï1)Ì3ȪJ¸ó3af®kcM~)ñ’M·ûÙdu3/÷ Íæœ5QWTÒ$Ñ‘uϧ‘d#HΛ‹£Þâc*i׎´Uõ‡ø–JŸLëáÆ›ï}÷±—ì¿KšÚxñxÀÎ'׬Ζ2Àøu-ˆRþ,ZáGÑ@õ´¹ÿKðÅľPÙÒýáwzl0ˆ*CrÊ>k‚¶ˆã /DüÁj~U}Ý45¹µžšÚ¯ã¸}áO=Ç%Ô<”ƒø¤Æ@í¬ˆP‡ÝßÍ_ÌýÞ”c&ñL¿ç1bþfPh“ë..ž [7†›Uò*ËO³Dcv™y”r+Ã+·´öäÑK¤’E&„ÊÝ3åp¬³ªÝ–‰#ÿ/:)äG )£¹.%ü ¡Å½OªŒ«$éõ«YúP³9 Õ¨9‰wA£‘©#ÕÉV>[ênãnJ6$ 5ưÛ8Η/•Æ/=eapL¥pÊA˜_݆¢’›¡s™1ª& >dëM”˜ÖÌ€fž(.–õ] í¦”™Q~ÜLR \tÒ“ú÷`_&÷™ß&zX ¹û0zƒk÷à±XËÓi•vÞgqÝ8ÃÍYdèÅx2^² À²ê/Èyç¤|žØúŽÞ0ûñ|üÓå% GÅ £ÄïZà]¸Ú64“NH:¯~ {ßãˆÌÆX[\’ú´Çv¨µ§Ÿ:§&‰ÞGðÚ~ú„Øê™6Â2×ð@˜ßÊñàGdW3…ÔKçÞ"+€áHm,é+n¿ÑKI$×írfKóEc™j–åcïbì­øD@õA4 Óñ+t'¯¯17—ÌŸÚ9´DTq“RDŠX†Ò—93…»X|pAÊäÙ~74}OߣÌB0¬$u岿„N§©±M_Š´í* éâ‘€ZúfHA]ë†5sgÃt™ÈË‘ñËë¿<Ž Ï¡ŠS¼vñÓ¦/ø*ä&¤r‰ÑèÁ5ø²Üž¥"™óC™z^u!fP>®Ÿ›Ÿ×”ï‰Ìÿ"B‡|Á€ù« ŒÀd%Æ“EW£Lª«'¦‚´Œ®^ ù¶öht5m1´ÜYÄzÁæÝûˤ&FlM߉ÔóÒ#ý†p%6XFQNžþ&‹Ldb¨ôï—v8ï1[ÿب Ö/»¾cLú2 ³fWsâW' Æl OL×äÀ.« LšNÜšY¯¤³°°'°‹>üºæè¥ÙæÙjT)$}|‚ÛžÊèH®ÃTyÙî†a,e`³\ºé—G×øk:!Ú]?.D„Ø)Ïx§ç«iËœ}AMá í‘PAhÿêVe1tMA^’Ú%ƶzú˜OëÓ*È,<ÂS‡“Yì­óMa ×$&ý—í•´â*UФg9Âîò3>üˆ¨2qëXŒá'âÉo¬×Pl1<Ÿ˜ÃpÞU~cæ>DûOýœ…9ðj#RZ˼‘éf”@ëUÅÿ4·¹áRó‘²ø¾÷cŒÂôÊ·”ê>Œ?Âyì6ýœ£ éJjYæøÒ”ËV}±÷:µôî¬[ë1è7ä¯Gè|˜ÐHÃÕ×Sò0»=µ'C/NÛ¦6¡E²Ë+5dîœ/ (ÇÓ£¯Ñ©7Nµ, Èû/Ý,¾}ˆ‚(.ÝœG†Vݵœ{²ÿ¤Ä@{SVžÂ*¯ºžxI@õÆtÎ`s¾ÓuÏÀ̈«É! ºìƒtddýrmœ {¹XŸÌ4ª?F?»à(+<¿zþÎÂÇ*IÃ$n”K)#ß+L|XífHµ)VJë"‡Õb˜°Î£sNÛîM³I8ÚŽ#ÀÔ9®¤¾#‡–BçUHÜT|þ¦”ü]Dð¶% 5|ä…Üüw…6Ÿ%Žîr=~/Êq-°•[Y¼”ˆôëž«‹è)/‘ήІ€’ºžt=RƒLԪ𠕑:úOºïh°cÐN ÒX‹LÂîçs­.W’¾³Ëi­ÞŸ™Z{6ñ”?Ä“f¯_î–j?¯96)•¢žxtž‰os”†²/Τ:hUFŽV%ÕèĉëX°ü^`”[õ¦ê ø>¿¬Tsú&B5Ž/‹0L]ÀY‰K…ñûõÇË MmÏð ‘zÄ’>€æQ|`><¤øX½·t Æ/W\1_{g¦ú;ܲ’2ýµ”^ò,E¢¤‹˜%Bys ‡–O EG$¿ÙâžF£c]*bŽ<)χ±4àl—xÌܲz=Õå&W%ØB-·…«Ç¤M­¤™Y!`j#¦6ýh£/®1Ýfë13ņ텔&©‚×;ýØ$^æ6Ìwy…F9Oñj´pßh¢ŠýwH:2boÿ0Hö|ÿqÍ¿d;d;ô¸S‹"< )Ó$¿€¼Î¢œcž’‰# ¶z˜»Ó^  0kªY¼@?¾š<ø¤EÌ·o®Œ‘· ?ÿ¬Óµ¡b`xä`³ìåX?*—ù=ÊßaW[p‹Û¥ˆ`#–ûëªÅ±ÀéçtMnjòÝ—ÐWßçù] ®&9ùܹœ|ð´¶JÖá~O‹[häëJê–óÒv’›/Ò¤ÿl²ÞÒú35bý×$Zu†tƒ°àV½Ÿìw‚Ö}ß%:«¬-yÒO,\Ð sÍ<‡Û‹q²}M-G¬‚CD"*u¤þ­Ô€v<‘•s§Ð¸pcÇÎò\U-Á0´vPþ}òÏÃØh¢!a}Ö]©­NL‘Èñ£²ž6æŒ:Û˜¸çÏ0o_Z¼Tãýƒ>†B*ŸÏ+Oï0EwÚCMž«»ï˘ް¤´@ç_&~§ë’ZqÊ”xÇÖ~Y/ßêh¶´5Yôž^ނ탲 ‹±º–†»îï3EϤFÅA|;Ÿ§ÆË(”%e ”5^ä¿ ÒBà"ð£j.{ÌÒ’Å«ÀpMâm“¯‚Ôáa*4³égOÌŒÑhüÅ7½¾-9У޺ ”} QÆmj±WP60Mgt)²×x `%ÿ4Èôg.ädâBR1L ²åt&ZÍÐê<ÕÃãëŶYsWóñon)Íçl‡¦˺úÚîÎs(ÞGôL4òßÇ_KUKO ŒK”!<£Û Ò«jÙ'†º8M¨ÀÑ —µU}ºëé|O?ˆò¾ˆ¿‹.'lm`÷â·mú3(©ÓÖ%!TÙÐ0…Ï XÀY$m/ ¼ÑÈ`eöA3\Züf½ÉÒ?n‚¸ ±€nq¯OÂD3ŠK {ål©cÁqâ™ Qªõ1Äþ²¸¡ÿ(b›Ž»U…iÖÂÈø3F!ƒœ_2ÀëÅäPF`Þ1HèIñ2GÜs~½,atÀùÿx»ö-ÕÒ¶OIhTŠZeÍl)äïÞ]¸÷vì“×vÙ6ÜÅaK1;þ/R‚²ÂlÊ“™bœs¢V¸Å"”Ãcô§@JÛmËòxê•ßÇì|½ÎF]Lxç/:.úfðÞ #OÁläPKë:—-ìãì庥‚D©*u¹®è èÅ®¸D´P›ulçq³ÿÐ’»íˆÁ1åN0‘ZóšBo7kM[…^™Z°¾²½ä#h &‡»úfGÖpA/yR7:FÁñ­ùÂÜÊ7³`#C" 8ÊÍP™Ã€–ÂðÖa„$ºýžô n ¿±®ø|+dÚ®÷­Õ8†ñ&28«•TЬ£Ñ [”m‘ƒL¾Î°’zpªbÂ’ì\'E¨œ‹š *átªRÜŸ('ºÁ‹ë%{8¸DõÿBAY+‘h""³Ì+?nár ù¢Ž\›‘E«[ÿteá5\ÖWÎa°ò&¥ÍÚÙOÝúÉP>‡²»÷wmŽìŽÅ£7}ÜÇ'X¦ âl΋ÍdË­FE]ùßFÞþ-‹?÷3ݱ–Rš­î‹ ¹ùØr¾û›»(˜X[ôNþ"}©ìö40!6`T‰ì-$dj|^‚|Çæµ'{Hœ‘è,€àdÌRM¾Uß«2é¢982ñÇ|ÛtÜ)ã¸rêøÀ±O¼´ÇjRò²ýKÝÖ%±Â××ÿ¶ø1mÁ‰ Ž€ÂåÎéý웦;©vÛ&ë¹`ÓR&Zú]`)wé è)"¦žæ¯û×RÇõ: n›RήJÙ”ÛÛeði™à`EÚV†àóÒ½!½Óùμ›¶UðÒ•§¤˜qc9ÑwÉÈi4Ps‰$ÙTG¹)´cX5éÍÙ °÷âÃ*õ…4âä8–þôüÃl÷?I™Œ—·NÒÔ7GÇX² ‹ŽÊO‰6‹J³ÚSoˆÔøZP%€fvyò°eãè ¢­‡¯ZoÇ¡ýÒò«‘v’·²’‰vY¢Ï•ˆÅ‡‘Ô² $à 7…SH— ÿóö5â wÿª$W£\ñ«÷Æ$‚ñj¥­™<Œü§œõoâ‚Ó‹€Zíª3.iI ¸Ä^µuÃô›ƒ9.ë7–ßl¶ô.,Û9HЫŠÒñqxLÁ ¯Jõ8ÎgÿCóÅ XíiÉê_éÊy”©‡ E|€Úk1ûcOôzZ¢KàË9ùͱ¸‚ªØ)Ÿ?¤ˆ ÅÁ®áîHÄí7çÔ AÆŽøîßy·ÄJv>”ÍO gÝZMpβÜUÀ 2í™8®'nˆô9(áÝü•ÙSî0FY¢.¸(ž*BJ•ñ•hp»8WY ÄÊÛ9¨­ž>8ì7W„]¥eSƈ™l_áP‡Õ½þD›·…s|–|LT ¢pÛ|,¶]?Ð5(ŽZàýòä Rj|€Y4]Ú0E¤¥ý Ï A)€ÿ /ûnN)xSë>$( Jþ(~]}2â˜bY†üo‹ìߕĺ!+‡}e®_a’õЙš5v?—y>a§ñŸ¥é[ÛlœŠQ¡~_§âÛGíX½ô|d5É´ÙL«›oéªØ†n´ òÑÑò,ª–q&߇¤5ÃJ ´;1F$Ö C_xÀðb9þ OANg›ßÕ•Šø‘ÅX+nd‘òÔ‰M¡¡ûÞ:É\Þ{7kõÂc˜¹›ùÝ•#…Iî‹¡ûx½üIЙcdP%vµƒ F6¬Ýݵ­hÏ›ª%vzh[°SÙ(×,B­áa·úÀËMÓ¹&2Гâí•¢¸Aå3ÂL:g¸ ¶¦I9=ƒÀ(±¢Ú×›zÀ¿ñÏ1SjîdÈ",÷v †„•)ôÙC½µHë(ñ{uù±ÍtÜ“ïLû¹2¢[_"çpÒpÇÞ*Ùv’{uÃúlȺìö´„¨`ǤçþP))7DA1ë“~êè‰ü]2DòÜKCÕM5`¾ž‹œ–<ªä¤¡P  £+jmÛÌŸâÃ1±÷ÌÞ«¡x øþacÅ?[¨sÞƒ—î‹ÞFâÙé©:ȃÆxbÁÍš”jàÕÍu ÍY"¹íR¯6w¯#ênC\PUíF­Ù-+ƈÀÇ«ánÒ„˜nä¤åÚ¢ÅÀcÿÓNGOÒƒKC3þ?§†Úù%Îð-³òeGWGz¥…¤ ReLOc™ye‰vÙÑ!.ëJ°ž•ÿ„É#=¶uB­£|çœ} à~]=KD`ä˜Á31Ú)ûÿ&ÞŒ§Å>0jïî»Å_¡Z”íÀÚvîÁ¹.0fÃ9ÿµ#$_q;“ÛÚ¶¤8þ¾û£ Ð†nÿò•5é§]±4èÉH&:¬—”ò¥L:Ã)†µãù’(NSòØm¶9Ñ÷ ˾Û;ÙÂ^Vxo‚HÝ;× o´ÐÝoNXÞf–…(oÏE÷.©Ññ~|\É¿u/TÀM½…§-ò(í±?°Ô™ ‚§/r-›¬V^ßÛÛ«Zl ’zW,ºðÑæZR¬|§ê‘ÁrŒÓ ‚>£M(SŒuNkaÛo2A¼7Ý9øyi³•PDï’né²ðxßžK÷6ቪûRÁ¹i cÄ!ðÂfÜ©ÜÕÅê®ñ¶c=ÁüðCŸQ)­á7íù¯XìÛFÙMât®Ž¿‘¯µRaVí5dûU·iu’œX7òÐö"IPa]¢8Êæ6"lÏå¿îLÁ“UJÁcä“\ê›Ñ§pNb.þ:eD'òF1˜Bkø9êiĪù0A*zÐH8òÞ­˜áylËäðäìïïkP¬ôÍ.·vÖ2÷˜’Ý(ýM?øJ;ÿ7s§ Ž÷ƒ¨µ¿<ºÉˆÝã>#©„`®‹“qÝN1Íî6 …ÞwO´·¢¿îÉÕ™ó™¨YŸ†_à³}ŽT]ˆ=?È3Ùæ—é+gþJóﯓ‚‚JK™#·Zo3/ÖRçF¯gåÛ#²:gä³°@§Ú$ìQè¿Äòùãb&pdOáÿG¨ þÅ·!¹D»1àÔÁTÞzàå‹@834§|Ju_xæÂ\¢ÁjäðÆÛP ßã$ƒ8 ­Ž˜ CU!N\?òôP\÷š9ë‡üšG1Bì÷Ì ò㎙;œ³;ªn5Qµ;¦ó9D'`8JEbÀÔ&a¿b[¨MY1˸—”…£;Xoxs0«ZåJ¡1ˆU˜`šì-LE {Ƭ ‘Ä…›ƒè"YOYyÚ»:Ñšd8õõÜÒo#®×tÍ_};9ÕëŸuEcÚ/Û¬Lä?¿m{šKî¦sóŽ®ù8òéŠ!L%m]ÍÛï‹á})~7P$ ¨kÙœ 夾¦qÄQ>‚íÙB–óõ‘ŽáˆäÉÂÝÐõyü£&ºV´„¿õ£êõ·nçõ¿±¸áÌ|I•s¹aF.VDT·²h“ðù’šŸÞúý¡BÅ.Û¹_x]³†GØvgÈà•¬wÙÚ4„jKS쌙+šÌ,FˆG÷Õ˜á¾ÅI¶dB×¶H–Ðpj­3w>‘h; šz¢h„H‰Ý&à†Ÿ® $¤â‰?b 4.ìý\.ì1\’—ç3›ëmP‘p3äkqqQ¡Ý?kÀjN{0ä$Ú0§Ôש0„ÚYýä˜ðU„&·¾0r:Êú¡TŸ£AZjj£m6ÏLgxë½ÇqÅ35~Ê]R¨ç‡2Ü4:¹ÖAðKð78¤¿£lÑ%sËcU-?‹ïC[H‹úì ûgF¸¯"¿c¨¸°våàâ0 É>=ò ¼iÅ»€„›…üc]ÍGûý(v9,ѶœÂ8?Fï.Å/D†à\ÒÆgˆÓáh Ÿë”OH§Ph®Ì)¬#|4Kz×fðE±Ü4±h6@NeÇÞPó09ƒð±YÛ胼Ùñ]Ô°óOáN?Ee’<ªz×pQ³†øg³HÅœŸâîóJþ3°?åmöeS¼ 0Û;–¡èâÌ6uéù)ê+’ö Z’ÁRŸ9¼¨a¼7Å`)¿¼pÓžf4±­Êmx÷¸ÇÎûø2wp=û; n-?ïÆ¥WáKþÐ*8ÖC=½"ý¥¨çž˜‚b>¸imrŸ’"ðÞE —Õå½ôÂ=Õ¼b#”¬oe>™]ÆØ ÅU©G–ÒüBVi‹Óuùÿîû-ŠR¥=Z’pË -Ìk8­RtKLÛWÍ}˜èiÿ\ƒé«TøI]zï–ið’ÀÁä@Ã];æW终Ía1 Jwuçå_ØÂ(ªeCz¾Æq7#®@ÙäíljÞ#¼nk=,°g=yø³å‰…œ,#‰ÛíÒpæJ(·­CäZêå¬êåSžÀ»`’ºªïÕÁmà-”zïZ£Õ2¿W·Á"RèðÚ‘¿qh µ ÿÍa9u'òÌíïËGóí/´`Âù)yv*}˜ÈQ%iŸì&Cöæå”|'ÊãnÆGá‚™†h v|•ø+°.é%TH·¢_o€Õµ 19‚~ÅÁ«æ_ÚúS]<òLé ‹K£Ê8$« ~‡ó\Û5u…¿§¯üMvìúnß„âgN,@£?¼úéɹÒÂo¼ÐOpL.­§pû`Åâ’L¢\‹QfõnéãL¶çG‰Ø ìAÃáÑ¿8ÇQº§ý¹Ì 8ÍOФ¡ŸóGehè&Ëö¿–œêSNm -—}õf2CÕºè'ø îk7á ýþ %S+9GFYº BÄlDã[±4óæÏô ,Ëlgƒai (晃¬ûi¾Úhgõ-%<c'5ÉœÑqoFè¹µ–ü>lÚè¾4¬â˜|eFëNßÀ«HžO¯žNÿžPû‰–g9®”ýPãúzŠkàT¸²U ¼ÅBøx0Æ8Õ˜“¯µ–ÅW}î`ñæÉÈ,`7b6Âı6h(¸¬¨ŸNñ|8ذþ´e|•×c(QqWÛ¿cy£8Rø…LHŠç­l0B\O+ñ`þH&›—…µGX3dá2Ò<1¢vr·uµ\‰;¬BÐX-tc!¬{a$r¨±¦7ÌÐh¨gsuëѶò7eTÝÛ} t#ø³TÔÝzª¨×ù}SØÎâ67t׿²=¦!Z‹>aÏñhrviTÂÅ¿#N˜MØ›û•}~‰•LEñÿŠT>„úÆ1qÆšÚTLn×L\¢„»|–‚вÃsÙ#rw²sWUMÀ¹Ë–N[8xWéárO?ö,Õár£bñTâòN¨£Ô™KïÃ7K×&XǦ)Ý]#i ߨÍ&˜YªY¢u^ì‚ùÒ)³.ÕªƒUÄÖ—ï úTaiÑô^„$Jy›­‘1#[Æ÷±£¶Ì …+Õ™ØTi»š¦aØ øÔnÁ´‘Z&Q,ÄÊ8.¶ÍRa|“]í Ítþr*ü*[’j#õW…–+;wI•äã‹d!}ËPý8²W_ L{<Àµ|×èþ‰³^So´óÛÌ1[ÝÈš ¼k\*+Mî×tÝÀòXÊš §•å2æb×hRÇÂ[ë›qUñ*«×V³îãªi?–"ŠÊbï;rP…³œ 5¨PDÔϲdÁN6…ÂÍÿN:vöÖýÛý³”Æîæ¨4ºf>Y^ÕÝì´ô¦zæ¹ ê˜qbp¾ØNNO9„qý¾œ°•Aª–ܺžæ4S$6`[hFþ”®(DfHoãX£×v$Õ~ß”èDwk"«ÓN–w,A“êNâsM tQbµ3iÅÍg­:}…¬:è¿bpu±AÓòóHð28X²={¨‹š¢ª/%<JÒ«-+›ù‹„};ûØ»eˆ›P}…\¬3 Ë>Ò µ¾/¹óó[jÊožô&x£Ôs¾tTiO¿g8þed~$ÀN¢è¸QõïGå<Á­íš;”L&!3‡‰Ð8¡ì•]“kºaw•ýOåß_Š.9ô5öLJ¾ß®Ô7Ðë‘Í_?,çãŸ0j’±PÒ9tçmDÜá¬Î–ü‹X>V35vpe.K"£×²æ¢/NÝ/àKá\>šŽŸDÔþó÷PšbŠô´ÞCh> M_Hɼ–>¾nÌ’§ã)s̵ºq]pjÈ^Úû¾*‘d銋pa‡³¾| ÷G‚…¾ ‰ìëlbkÍ|\LbŽš“ôâ)rz¨¦¬Ê冫³À®ö°±^ú–úPaj°¢YÝ{J°šÈ}\$Þ7H’¦ŽjyEï0ÿÌR_øµõF]ëÍÐÆw/3vWWª¶aW™RË}\JIF¿å\µü‚ '®ÃôÊúSm˜-Ùm¾Gˆ¸&.j_êa¿½j€”|ûå8ÇÔpu€1¹ëøYÊq—\q„³*GW`};æú2>‰ÃÕùÖÁ'QÀdAýØ3ãë ¢)¢¦v0Záž¶#“ݻ۽8¥V¼Ô‚>G°yáŒnƒø]U}öÎ?Ícñ‚¼Eжã«ñ²°xIÅ¥Q¬J}3rÓoÐ"óë{Í•Xi¸‡Ñp=çvA½ÒtÕ­ Úf¤k–ǀˆÿâR§8rÞú;å;ÐÔ7á/®Vâ"El™|å. óeHŽ/h+}ÎÞ¤ÿÔv±üÿL¬VS EŸ¿m*€VíÜ!Ôk1Q½¡Ú: £Z8CðvLœè6iqãv"Ú.ŽÒ~œfï\" Â1²‹/V6#=v•Øú¼K×ßáKuGÂ,>ÿ í4¡dú5È:Aˆû¢´¯7 ”->þrF¡qHÝ—¿ NáW8·î3(3‚ D-„|iÖ¯Fè]~0ÇéÅÙ-æÞÅe1R€ó·ô°p}7›Þ•UŒPú$šèš!ŠÉ_¹‚ü-NèwŸ°¹iÙN—ÄΔ“p”ÒÖʹ;5ÜºÄØàã¦ë¦=ªžwñ܈0†"W¡°~ ¿$Æóxù!hjâÆ|dÆÃ|d1 Єå”]~$p îßx"[FpÑñ]ç'JJĘ“¨Ö #§1–9ßèÎŒåÞ\IÛ©Õ„ÅÅÕ>ëD 6‹CD¡È™8” f=Í)+xd¹ÀRä]M§+ÒD™gp@ÓÎ5ÁúY²¡¥È¢½³hx·øó›J¨¡Ù#GBI…‡7òTãÍutZ=ó(Kóã½±X®DŽsh>h:u¶ZÊ]æ!P5,GØa\e—ØGT¿ò·eÌxó Oà§—D/²öÚ—Åü£ÀÛP¸ë;‚î¼PO°ÌB &~.å‚ï¼0Ô8 À]Šß )íßBm•èÄoëc,û^ý–€8QÒÞê8]À(U!¹…%ØCÅúK~íÜ–HÝœÑ4Ð U…„Œ•(=HÅ;î†GÔðU1ûDvþW×W|:%„8Cp8#Rìây`¢T6ÝÄ ”jº-ðnÙèðvèç"`eEùÄJ6Y±½á¢ŒÌ«fP†:¶½Ë•ŠBå–ÉxÀ¦¶/þÙkL÷_T‚>šµ{! ¾»]äÀñN H¥KУéÊëdµhü*9ƒæa×]­€ej¹Û/ ® #§þj$™ "iXûjd—¡5*V·ŒÍ^`®Ê ùÌÌYv ‚\Y]ß_8‘a èë5ÞGRmkˆîŽÿÓ\*çÐü/kµýêOÛy×y_³º£øB¥Ð}üAêóR!‘¸ZdæuÖÌöy¶]õæYÃ˾ûçMÀ¸XSÕc’¾^LŽ›ûæG|Ù£gP‰D™Õ·íÔôìßy¡R©#;ü±!=Ë«©½!kƒ$œÕ ªŠ4=R7¥°‘M:„Ó¹lW$¾=råõ/\ ‚dÁ*É3•ùgDSÜvÙ{ŒËsÕ‘Ú/©ÊÜ®ì,Á¤PÀõÑtNÃË»²ã6éŽz¢Ù±'zyÙB9ÉæÆµ/Õ’D#ÜÕKÄã•-B&Ji…kä¿ÒfˆT“« ®{W-)5Êø;ûˆ.xÐiØji`ÓÃ#á‡äA—rj=kÃ:•å%͵Z‘ æäR#­Œ‚ÅBÃÃÖ…!<ÚÞ\Ìë%’˜vŒt-˜_íÁBIZ#t’75Ú™áùÇ>î3Í6Ÿ¬C¢ ²yʪ‘7ˆËẆ“ƒÏ€ô#üý^‡1ƒ/AǤz„ªñô êÕ Ä5[¨£Q Œžœ¦€Úš)9Ñ(æjá&¹Õb¿}ßËqC4õ ù çP7›©¯h˜äSG³8W£vƳ=àø|-Íåªæ őݠ‡SA5v°ÅV[où¦NÃ}\¤˜¤Ä營R%aËZ:é&2m?r¦tÃÖavÌ=Ôßì´D|2¨ŒœÇW‘]")r)TA§e«R0¶s{Û,ÎBg š·Ö×NTq¯.d¤¸õ[ã_È ÖBó[7ia™Løë³A!¢¹ |2üzÕ¤ÁÅU‰ƺ ÂæÉc£áKÉ+¶ÇûaÀß`áñ¿åã¢ð‡^,ô.iÙOÔ|¦Áæ¶ãuW4@Ùq=¬ïiíÒåÁ¾È[I“í´tY+¿“ÞOäéÉÿ÷ kïo£ÏM²•‰g© Òd…”¡’¸ƒ¢UØOÅʨÅß5Y¨ŠÉÍ#ŸÑmÉþ´Kî"Éœ¢®ô©Ü©Í|1¨Ø»hÀ1GÁ‰ó“!ýýáJ—{5rsU„³‚<ÃetC1ðhz‰ÂÏn¥š"?Rêq•· œÛ1›…%¹é%8_ÿtQQ·s¼YFXÜôM÷lò]Dr&3q`ü³¿ Æ£{¼jð™þ§år)Ž*ñêþÊ…çx êpÄ@ò-Øoà°– 𪪛ÚNÒ²;ØYMSJ·v¦6B“K ¦Û·…$rãÅ‚·äÊþ„ë¹{‰”˜™§íÏîP -è „ûU^Ë*O½ÚL$ a”Õª|A,É!9øöx±­ÉN;Ö*µ¹’¹5÷;œtp+ÖÐ6¶³YHI'ïV)f®&¹Î7Ÿ—WÌ#P7W ¢(é`9…PÂ_ŸFe콺š'°o›Êa†DEäuÅ‘fú{ü"ĽÚuó"w©=-Ó÷Rpqúæ#,ØÔ°¬éþköI€ãå‚§¡Ýg’ž(šçtw?’·AÍM5ê>Z`v um^/QΙˆszû²ÏÐ%—t³2¬K磮b‹ù|.š†xu䲨XþûZˆþZÎþ=[¢Å:ùƒk|½ÏÙ:Lhˆ2^^rs‘tðÛ¡ÿfûhò¢ûÒ:ö¸¯Œvk&”»Î29¹t‚X1™±6äLTì4ŠV™“sNúJŒŠ9"yWXÙ›°^zÇÉàGA¹6–w¼ù)ç4ïxšf‡îq{Ê19á±®ûž#鸾uPóHîJ÷"¼×€Ž!@+Áßc"ˆénøØÁZÞ‡òâ îžjWÔ ÄÚ!V$ÇeN/F‰ö¶Aðë2À =M“b˜éû “ 2ò\Oý£–ØÓ†_:Q=LúžÓšª 5…!‰Ò`ë G ;*|£kýÁ%M•Þ§#8Ç]½‹jð*ioæo…È =ZUQ6Ì´S(‘Vj;´Óc”¢h yBK/·…6 ªHÚÔßE娆æ­Éœ+9Phäߣó(ÍâäL5Å#±½ÜØÍä‚·º‘8Gõ‰ºZ¨ÖоFY¢Ý_ý¡™ ϲÝÉípaõ[B¯núa£–wþÃvMä” Æb?`Z˜½ -Ë,têœÑIiËc"ÓËÓœ·2»{ó èR0 ³½9wBÞ¦þPW.ûÛä«£Vê’ŸÚ°¶³¢ee¶í/ç¤ýn*Ҥ¹À9M/'Å.|üÎ9ÅÎ?¾#ò¬ƺxD¡òÜMŠ“ƒC>ÕI]-ÌL\3\úÔqêÔI@¿×ˆò•NÉ"¬2ã Æòì#ÕMÒ8ÒoòŸN[ö:»Þ¸&Ÿ6ÃEâlÓBrcäC}Ì`×ÉTK„Õœƒë<éëV¦Òlõ `w¢ßÛ$7¬0Ô3|ñÐ֦؊+,q^ÌÝŽ€‹ùζˆ%óÔ"“™X–÷uÃÑÔÚ°)jŸmCljºNHØháßÍay$3™¯PL aÝ2ú™KÆ9\5-Fn|"Ó‡àNo¦ÜŒ „í¸” ²ª®»º¢6©+^îNæûvñv¸ú kÛ;ŽìfAÙ·w'þqÑ&àœÉФXêÒð|/f9¨sšé±Æ‰#©%‘+»éŸ¯kPÖq)Òsñk ~«è~=®O "øcØì–J¬,'½™š…¥‘§&»tŒé˜U€èµ;=½™#;}TŒžÜàkWhÖȱÿÒ—‚Õ£n±C2³Ö×–òŒæ›±zZQŠÕÞÚzGân£Ré$Œ!‘(ü^—Oä·„ü¬šŒÃ$Qå;”VðNûY®º3Ý[z.øÔN¸bƽ?•oa0˜Ùèí¼ :Òf¥¸N #+Œ\Iãމd–ãå?Kÿ‹Ê^rzÐK*ûSËYO昼_7ÃÚ‚K“&ûSÇÅøp}gÊÒ½·;ñVí¨Æ< qšB+Úä) qîã%½ÄÏ¡ÛGñçYÆE'¢b†­tŠy/õÎ}Ü›iaVïû~÷47î%Õ7¸K!Šâz{ÇB´Ã ƒ6k1é™Ê[€MlÊï„÷ˆyS;õ ?ˆA_ŠÀoÙ5Åð öEx=„ÌGx-•õÈŽ»ç\ÚD ÅD­:â¹#粎Y‰,ïHˆAl0s´*N­ëá›â–û̾úY, \ üñ#<« Æß81Ôâ#–ƒ-#jWØ:çjJ÷ÑÕͳɜÀ}xrÏÆ¡+,¡Èõ¡0¡|h€Näµ½!8— ç±6CbQÖD°ÚüÎ?‹¹KŽAÇã¿>êÃIÇlÌ,ƒ\ PÆäeÝRÕcºY:©îa©£?£’uª.x™ºZ `¬ÙÑ›feid >‚e¿±ÎìÈà^!s¶¦Nèì‰G‡‚ðñ}2?¶Ò¼Ó)lwËRÀÀèz#\F=`øÞ›€:{ý0—#ÒÞ+µO„µÑ?R{Íé®têü•Tˆí,Z.ˆšŽ”¬_½ò˜’¶ØeÞRüg=Ä` Át¶gñ„Rëqâ$~Nå[õ…zaÑg\y;¶Ý;9A˜m?FÇ¢Ú%å ʉzáÞø·)ä㔎—£b• òŠaðƒ@(Û6ìNYÝ&ªÄÿõƒð;ô¿´†E¥â”¼f.ÉiwÊÄl~'ׇÖ¬¿C¹WÀ`àìm;m`‹xR™AAŸîn¥×ûi<š|{üy ð!ý¢Y .˜õ=yOY×ò©¤_à¶/²¬]ÐÓIé[°;ë €^ÅÃÌbìÁ¾)–I$kÐåþcrO1 2ôG©T÷’H¿|ºŽß%ÏCyDSíõãLï»SZ\?ö 4 Ü^‘b¬Ûƒû#ú“Ëî·Š/ŽT7?—‡}§üèŠs=Wæð¤u£=¹SbÜr^Ï=ÜK€‘Ïœ'y¨ÉnŒ½¤ç«ªÎõ Êa3òå7î J’jMKƒº‡109QÅŸ> "MàÔI€>*É[ΓNç13{êS %ž@´­1æÈ)‘¾Õç~ÃniGI‹4dF!£`ÂYeÁŸ ªl˜Î}Âq¢u}µqöóŽ€À‡q<Œ!ÙÌᇾöú?)w°uö‚Œ‹OØ[Zo£|·N. b»ö|xŸyK¢xG 1æü`øÇ–¾Ï»™| _p0Á•ÝØÖ«Ý‘Ý°yqõ †Ôcª§ûpBf1\{‘åF I¿ BB \–Iv°;ý…×È~ÎŽ]»³.Ä£Û$°ZKäÉèÈ@Ã]8hâ4Í€¬øè¶È£WØšG]:ógIn4ü–†ofŽÇææŽ][¸Rº²ßCò¾¸Ë´f×E:7xµ²§,Ì&w "À?@Ö€÷g‚´à¦£ý,< üp¾s%®`¾ó­‰*Ýam7Y²™Ù Ô¾l€ÍQ€€ùVw{Qú2ûµÀ!åÙ.ú½Ò¸‘¨Cat´Zî“€Œf O!#‹Â×õzó&L¶Ê­Œô…¥«µX íÀ‰Åí Î~ÐY+»îºâ÷˜)µkeÄéP€èÝYôD¹ I1ËX×bªýqY3PÚ›¿4`ü‡ˆp¶´~ÈñAZcƒ0~:èŽG¸]€ Á|0Ÿ6gº S™>S–ÝŒ5t,Ÿöò³ÚD²žÓ;fêR—¯÷'3y7õZ˜ªÐx6xË·‚ÛîúJâü9t* <…ÞYñÄ n: OâYÿ®Xé<–@—rñâ‘&»á˜k²Vm.§ÕÓMÊ. ™úδp"6ݼnÓº’¢ªí¿EÚëEÞ¤f9§Zg Ö–èJâëh˜ÓǵE3\¢ÄÛe—O„ëî®rl<§/ˆdU½Ø>²®/ƒ74-âD¥³º JwŒzJSÅÓŽíý½R…ÿ©FŽà¡P»û;“•æjäYõꯧÅìƒÙ`™ëω%K¶&Çûð”Ðön£å²BŽ;ìŒ*{Á|׿ô?ÞG.Qôú ´?ý k)ùânϹIe$yI¬ØM»‰ëv--ƒ¤ÎéÌ»Ë /¥Ø–îY¾ðd{ûU„ĸG(ï@Q–¶u$îÍpŽ·Fž¬ ƧbÃnìñ<¹ö(‚Ó+ϰ’”õ.÷B”ûwpxº}8J.k»U$™üHëßËEÀ¾£:»B6~l†8ܳ¾¿s~˜ñm)¨(7õùË0šn_\¨+i[”YË#m´­:–,¬Ä÷®i`Av¶=¤ºÇhŠm μ+e@MzdI×QˆV hçÔíSƒ!œ3/…ðØ£l݇¾°‡îý÷‘Ù,³"Uµ?Þ @€ÏNñùBÛC.´¡ÌÕ·…Õ_œ™‘€‡¾hIÿq $ªXÿ‰Ëð½•*Pºkü‘ÆCÑuuCì°Å?âUï3·FiºÑÖ,•7J™¯2ì.šýéTkš÷SuLjsåä…z[gj[[ÑöñEOHE{…uKýbVmî`ÔB\&¦x¸èø¹9;¼Içh²÷E,–늞z–÷;òÊ­ƒl˜4m?í B*(ûøš©šð4Ï ]XÒAîOIY›+=iÙÛÚ¶¤8ôGÿœÃäæšýð½2 ’Pfü(YëæC­ÔHö¤æÒŸ$Šõ,ÐÏúþ¿δìFyÔòØ géÙâ4$)ÏºÑø£Ú]•íîÖR!^4l­oFµˆØäŸ$r'H‘òÛ~׉MŸúÜK×ìY‡ çŸ^$¯°µ>àòyJà äríµ_J€4†xt™$øHß~Ú&»êsÈi$,Ò)Rš5ô <_o­>J?%·SÄ…RŸÀﱟ5ëD7Ft8Üaʤ4¯¢ZDœî‹ŽÇÏJ!éVpõ¬ ÕMúàÔc›aj²áƒìc<;W`¢Vìå‡ÃV‘©é\”6ŠŒÿöfF÷qCfbër«´ 7Bˆ³ÔY¼P†ÏæÑ\éAÛ–Uh@ûÉm¤wÅšHÕÑì{¿Úh;w*Ÿ´m׺ðÉXô0 zê6û ¥VbÑw/×mµ³Š*-„–é¸0-xþ5³4´t›;¢nÅ‹/5Et®¨ô×e;Ι/›»¤÷V¸å‰ÊÅ}r0¢ÁY‡µžåM'ªAk¶îQú¨Üqˤڵò¤d ‚aÛ­sƒN“,fäyªêç™C$6Ü"…} `ÑÙ[ç‰å/Ríøx;i8—ך——YZ`+jH;I¢‡Yù"âU(Þ›]¤¼ñØÌ$3À`*z§¨ÒŽˆÿŸò¬µÇvåT|›ï DþéÇ5)F1ÇÏdãàX*–ýÚ,Ó¨ »7†%¥ÂvBM ¼¥Äéñ:b+•¥ñ-/9{÷ÏùàrãëÓ/Òxˆ[õ{ž)ŸéîVÃÌ­c›±¦ ·1ºKt°˜þ§jÏhØm# oû ³‹,椢p|Ç“Ã; ;ì¸Ç“Kà†º:õ—½ EälµÙ¹4ýã̶&PLJ…±¹÷6|×»×1)¿þÍûXºP—ð‰!èšÎàù˜ò¥ó÷Í!—¹^ÍPÕ½'·Ž^$óüÊ=éa¾¤9÷%èÅæ¹n™8­!Ìž K,ü‘ †âƒ›2·—áo{Eqˆ*¸;”†–ýu}òÀtfá¡Úmƒ}~ÅÝ)Œô:4‘õàÙ¯¼ðò6Âq\ŤŠ7±œ¯7®ÿkÔg;æ¯ÆjÉ={ËËl9ÇJvzâw¨îö¸ŒÓ›¶ûÜ…a$1h‘ñuí@/ÇOhÝÇŠñ1ÉÑ“PÑþÛT]9lã=äÇæƒ¼­<Ö? u&Pò±G¾ÅÏš?êO,Û_¯ŠÚ›¢Ö»°ŒÁb«opðÞÏEŸX”ç`!a‘BB1¾ÕUóS3ø=ùoà:÷®AÚŽJä s âa ­©`‚Ê0žn™ 厵å^wòi9 Ywýß1 ñŸ”ø½«Í÷£ƒfaFW¥{°ª„)·¼hkD¶»LêO.´@®è½Ùú¦+ó´‰ÕF˜ñ…ñ]aK8S"NÒMãª~@rü­› ˆ§”øðÛ*âCabÚcW‰ã;˜¶µ¢meÈpŽŸ™¬›F)áiO`¾W¸iðH–pµúþhtN8Ô|–¢tU&ú^41GŠßi«0µup©@€°=so†s˜ÆÆY$%æ‰ûz çÐ?N·.†Ä5<úDÒD‰Ô!]’ |79 ëCDħ)-̳g2’š6¹g{& ?¨å±6nq\yb\¯­Î1¼-–Ijhï2@Ê‘¬>+;þ1qËÉzuñZ¹Ó±‘ú$Ü•>èÈ5øv‘ð3òŠÚ¾6µÝðT9ö.[Ø©4Ò>N,ª…b¤®[¸)bù[µ ¼XéÊ•¬W§èq—©(¨Ž/ìBþ*6Ê97uü9*@b±ö@ž6ÍE¥ûÙ$JSXø#V ³‡BhZá„~BS7‰§{!¤µ¸û[îw LÝëˆóAñZ «ßZÈ8PÄdúY`NÀ4+-ê'@‡R[ë ƒ°æö‹ˆÇa¶¿*,±®Ç‘´ÉY?LÚ-3URŠÒqï“ödü€dZ°xJ\€ÒÕ¬ž€¤Æbî_éî ˜òÖâq`ß),Gàf®°íÐ:>ƒXEÀáÍ(ÝΕ¦7Ö4ûÛ£z)#œÍ¸¢TOZs=­Aq³ZiÓØs\ÙÚ%~U[¬ö;mŸÜ›¶í©×žçf@?|Ñ×R}ŠÊ‘k x˜KO>FÝŠØ=75þ•c˜ÿ'ÆXé–\нN>>VÆË$³ ód,Èi«º^Ékãÿ¹g’¬™kR¸Ï+ dƒk NÄÊv뉽ƒ,×"›bRØÑÏ;¼_KúRd†LÔ ÏÜ/Ë IÅÊÆ¥LT¦aˆÕRÇU¤´ø¤T?÷r@‹“þ(ú®—OZ®`k";²ßƒk. ç4Oed›ŒB™“¨­zë:´þi+ï©-–D„æOò;Öa`ÓAàÈîFÞŒLúS õ"u=AlÏÜ%‰5ÅcµÉcrfÕõ ­&¾"³tÇ;N ab/Þ¶i3ȼ/ww-Àň›öŠõ£çokkNuS{9‡ƒh¿A‹|Ù_ê|ˆ„®età逰7¹Ïh6 òL"Ô›_f󃔶ŠP•E¬%!úiñ›Ivø'K¦ žHüòøíÊ®ÿyÿ±wž­«Ê»7>ri¿°ûŠŠY Å6†Ú)î ë`pYÞ°”h {bÌ$¿¦peä$±uKJÂ>YôV!ßû«»ƒ”uÔ&qÜö¶µÓÀ¶±“Gû}A8ª¹p²Ê£*Š £:|k¯Ò“¯üô>—WpÊÛa2)…Šåo I l ‚ÉùˆŠƒ1:ÖÆoªóSݽöŒv,ó®L3¯â^ÝóA'Õ<§ËEÌ<©ÍäÅ YÂ9sý;C¡xÈoš2ÆZõÄ:#ø{LÑ­;ïþ¢C[ݨu#4Hh$[¶Å' S²îÔõNô€®¦QlIzs‚!ØY²xSIx)ESøuT-må¡bæbk‚10ÂŽMlf¾ ã:ðPKËÆ>IVN&§Á]è…°)…g¸ƒ´yqè¥ñÊÛÑzÜ:~Ê/K÷›\Í£ºØÞA³¨ݵ”ka;ödí ÿ3ûµ†‡ÝË*qg7G72FœœçO·£\ rϱ%ÎÏóž÷¿”‡3×sxXÅòÁÀ4&B?b>ü/ÊL3Ôåf& ‘A››k¥­ä­ûª LP·T?ž3 ß3·@j€ ã÷=\Ù°…MÈD\Úéˆi¾À¨¼LÞ[D¢&ùxbhÐPJ[X¬Z ùTB^lÍÑCÚý0ˆ•m›¶uÝÕî&ù—3¢Ýp +i¡°ÈnR_šz4¡Š öÏ3òë.‘u™ô@¯úw6î4aÊíƒïfþ2p9ÊïùÏDßÑ L“òŠúØ *dV˜xÞõ†WNêgÈðMÐ8îSxÿ_ÕQLÐhI¨@¶Èéc¥ ÆÏ’YóôsNô“ò žò™ÿ˜8Œ'Lž{8_µðE"\”»óÌIvuÄ\ußJ{Xܯ¬,HYr—+/`}¾í ײiÝi+´ûîx- Ö1ïtb9¿Ì|aÜѸXkÎÑ*Nwe²1F‡e|æVW³7H‚o"a Ù)C®¯)Bf›X=';> <”ñÅ¡(¸y ·“àUkœÿÛ„Ï+Å#°w=|YT£×´ä9ìfÉÚ„Yü}Zžjçö[„¨Ãl¾œG]?*–æ¤Ó®¼…‰=(䃆p˜I7z²²‡ǬyÅêñ,«í^Í“i«2oå£FC°‹  ’ÿçùR(#‚žxõ×WÈ >?Ž,)ýÕ9\]¬“{‰,iÄ" ã‘a¦JÙúOu'ªþvWPHƒR8'ÿ»²ïÔ¼Ò »{Ó”X¢¡xq7ÆtQ‡AšÉ9Ž6㚎å­Vïutw\>,• ¹.\Çu¼ÐXÓ ô14™\|¦ý€«?c)žªÃDÑb©Ó†óém˜¢çΦ ¨žÒi;}§‹’¯½œ*pb—s©d»@ªo$üðD$\Ü ‰QÓh@.î¿nÄÄöØRR¡ê(ü<ÃÆ{¶WwëÄÇG~‰šZõ‚GJÚÜ™ŽÊÊ}âhÆãËf6Eþ£[o6‰ëû\¢¡ÄMzÝM Ò(Ÿ3­ßâ H™.ibº&6¶ÃÈ$½ck 7Ÿ±åªÄ<#à¨Õ–íöNñf §í£~Ô(ÃàŸh}LJ1ØÌ:Í}ôAÀ¯3†2fú Ê4ótm9èÄ^á Û¹UãχG¯|6&ËVîÄ>¼ÝÑR{Üâ>^ßE˜ñ`)PËKæâë t”Á4÷‚ònãZ3P­P3 }AZ€H†éïn„®ß&%¢zÂCÇá¿<¦—5ˆ‰á k_II^ ávS½¢ŽÊº~·Ø 5»˜Bw÷;4ßÑŽ2"½Év¡Ž5×3±§ë!éjA„GþÝ'7 ,~ãM£ò÷@‡¹™#ÈÀî^Þ 6A:©J¿Ñá‰f–ÿ2{¾°Ø~ùgÆZÇÇíµ¿Ä¥±¢ Š­Ìõs I§Ü?%ÔÔ<ïÂþþDÉA¬×]µ¤'ý »8ÖöÖPø`žä̈́ͦÒ\eza«'F3ô)”LS¹X¿Þñ´¢¦+ª3^’*pÍŽ8\™´1«¶|ÍÁÓ#ÌF0¨¼Ý-×2‘,žÐß({]kædFË  Âb¤ ?§gͧOÓZ\û¥P<ŽøkÕËÙ ªÅ,QI«%Ó/«LO—ÇOVViIœ/ÝòÏÝq½Ë®VÏ v…¶ku¸¾šÆ:±æG%ᕸ*<«Æáólþe¢³Wövôx¢u–>ŸfQOѯ3§$¥Ôeˆ;Ž0KO =• QR¬5V8–}“4‰üþš=Lýk U믾]äµ?„v”hnQ½¸èÑùˆN­/'"Õ ºÛk–?^Õ5åâ¿Y£„ºo'¬tep&f7´NÝž‹Ú¸ËJ›žçTˆXÆDìcGYÈV´éÚã°xëev<}µ“}hèR3`i]C…k5E6СÏ¡½ŸÖœê!,]Ãg±~ >Ü2úþXÑÃo7ü¼}û^­<®ÈÑÐj—ž± ù1óz˜ÃÎü{ŒÉM%ÐmË–!ù:þó¬q&ÍøbÛ‰V÷;;acuÚ[¦kp߬àÈ»æå›™îGiÙæý`þ/¹0“÷ñpå̶°¡©±ÈU!–ÿ PµçGhÇeÎo΢¦$yyí»eÑsZ{è&‚Üʱiøµ\ìßùGSiø°ÁÌ;üE­ŠmÖeî"Ç¢O Œª—&o“éðÝ)^µù}ÞtMRŠ÷™X^í!oÓ ª9+ÿ3ËkþÀ¬-AAü¨ ë+-0J·Í?R&6(¹ÔsÚ“A_b‹Mwzp»A ¥ÑmFš Î=¤ÁÒÞ„ÇãÞÔà¢I2 Ï{v»œ<Äm¤ÖÇc%Pâbi<ÔQ·Üȉaš<|7¶)íñ/Ä´*#ÅŠ È:ä}Ý©yJ¡éÁ—JøïZÄ÷?‰ˆFOÖ|Šð˲¾ÕœÊ0‘ÐWåé?Ux‡Œ˜Q€+äÿžEn_2Ó<ÒÆ†\iïĵ÷âjUlbÔuId<^>Qö aäˆ9JÁ´ Ì0‘¨Á+"Dì' ²¦Å¦C )X)hÒö\û›jÒ’ý}^½¼3,ýVŠÞÅOajÝ d|Sÿ;Ó ÅH˜HÅüîÀ¼h•Üj:ŒýdÉQc«µø¬8¨€æ(úxúâ&´8ýÄ»8Å&]§s$¾s¿†›¥ã`ä qšŒm=ª.ìrËiF~ê³rB‰-ŒÕµí³ò÷°ÙÀè¼Æß™êÿ¶µÆA€jÊI$`‡À8­&E:òª9Rò+΃j·õsŽÁµcÄÕzÂŽêÄä"r¾¶ ¾Ðm:€¯E©Öì'âeÂd²’æ.âCÔÛ±b:ÿ]ÐöÄÿrm„V͈ں^úß.YgéÜ´ýMEuy\"~éÒ˜¿M.¶áõØÃµj©êªOxlØ#imý„Jöbûb¯nÓŸ|[®ÕI_f\¾ÿ‚O¾JÐÒ£7ÒM‘u5×!j¬º« ×_X¨®L-Dñ!$#«Ð)P«¬4ïf“¤ÄÎŽ\¥§%ÜgØç¢»{sêÞdä× ØË§¶éº)-Ä÷H¾º#²‘äK™  He÷T4ð”…ª4O.†Ó(ž”*ÊøJæhnë¡}HÞHøˆ¥ Wù±¨§ò‚ôh©á,µ o·N`˜HtéóCcÒèÅåc~B4J»¿ 5jÈõ­.’¿ì©>yz(ªl;ðÒôŠ—Ð#48Û¥U ³Ž~%qT¡ðI?È–5Ÿ<3l`©¤ÿ×»QŽ\Q‘°/„°`‘m-‰3¹d.}¨ÖÁ¯áýÕÐ?—ßÉÖ”òèË‘¤R‰ÀFô”E*o[9ƒ}æ—Ò'ÎTx`õkeœ&gŸÌÐo©‹œ¦Üºvnƒõ”ªRº˜ÈßüÍï#¢«Ú©õ)Ú•-Ñ “²C46¼ …ŒŒ>.ÓKŸ –‡|BÎsHCÑ¢M}MÍ53êÓÑgÓ=Wë:¹âƒX6:Ÿ=ñTWÙ½NÊô*L!Š}°–Gp£p|L“'¡‰»‹³ò‰M ÍÕ´D¯ä ¥ïGý(ƒû/µ”°F¾úä€=gBœõs®ÑŒ¬ûÀù@³–o´àm?B¸¨«M'J¦§Ñ-5¿$éúÄŒp5S[àÔ¼š {w9ads8‚söH%œ¥œum áV1ö›ô1½#ýå–-««Çõn2ŸSjqÒ‰QëR‹r!^£WwZ*Æ“˜‹k"Ãü£!U*Ü “´ÛIqÙì$ÒtFFbz¡Á &%ÿ–!œÌá¡*iïÑç4!‘H4èMmíémõŒIb§·/±YçÊg~ G4=6܆†±þÞäĵ³Pò ¾ŽÕL9†¾2ï!½][¥»ß¶¯ùNk\ªQãܬ•Mu/ó³QÍ—ly‹ýËk[úJDê¤/÷ų—ÛÛd«ššx÷U ÊD£¢‚@Ç=§ç©GPŒKpG Ò›e7 à1_ªÏÚn§"—ìz¤,0^˜.^­oÏZe s\±ÐwÈÅÕd:°†‚žjò]¥{7G™ a‹˜¢‹£•|•?ùšÛQ¹«ÒM·‡Ú…°0íd$ãk‡8K©õD[^25µó89†ÄËòƒE_Ñ(-ÆöÀ&¾èÂÓ[»†ZgXÔøG„ùR¢BD"9sŽê%Ï©›ÁŽÄÑ5Å5r‰S=Ë"_Õ«3M·½É9dFœJ7eÁn™8˜æ9¶óÇ#Ï»—§:ù”/M<ë¡{)KV Î>.9· õM…’Ö5 å(õYWŽn•~öæ¾;ß|G séX4.ʹ/®B´Sï´ëOYŽÈÊq­&êFQA#qæËºÕ‚–Ç:cÁ¼$x|ùLtsF¶pC's¹š‡ÄŸ( ±¡ÿ­d£Y)‚é.‘Ḍ2SxöÝmϨç·:B6%^é!´y ö"›Îö[ òÊ|L±^Åøý¤Ñ§×B÷¹hªaøz†I“Ž‹©*KuÉ? ³wŽâ#’_\¾«&@·PØÂ0ò< –5¸σ0ýAŽ%á„Í ±„³°99ëVkz¸ÂR`N·’º6"æ0K_çY³"HßÚ„* m6ŒÈGˆ+•µ¶ªÝÁ¨ ´†¯4ˆrI²Qç>Ò…etDz¸ªoÌqÛ4¢Ìü&¯±½gò­±BœM“KËý8"¡ÝÅŠç_±L6Žõ®á»™ägtºæåü¹æô-Ãôoubj¹HàÖ–‹á¨«ß(sœNh9¯óH2ó²Ýܪözûñ»oú¥*…(çõ—ÁºiH{ ›jý×àÌ%+W…ìÁþ «Ï¹m¹2©§f‰ÑbÖ•? 7HÚîÍo÷¥å…«4bÛ|fOñvôM6!6Óo ð¡Yc]?ãívŹjòÄí%ößÄ?î9%C.kŠ¡ïr°-FÇÄ„2{U©_êƒyÙ+³ÐÙ×v·ì¦ë›E µdJzmÏÝLö\‚`}|ît,LñøåêÁ îQðAÇ«ŸçѸ¦›H³ Eó6߸óS¬/Ö:­fçm$u·Ê´˜mà•ðú A³Òx©Ïcvª‰•À°90ýë‹Ëªz­4š1ßRY“Th•Ë6äà@Aùzrm'HŽÖÛã’gÉF`ŠçH(ÈïK£@#èN¨"»Ì«c MY‘š‚™Êéˆ/Bp„é¶2›(:]»Jliš” ZÖ^»¯D,ê Ëœ™fú¦9~™jߪü*¯[+“¶A-%M@$.ÇÈ/Æ”vˆ4.‚[¬n: `„PÖ1*ÅŒŒ^À- 4»*’2ÙäVƒl¾ÅkWå®§ì ÐJ1PŒm "·þãMw’"e…£ ÈÜÏOMïÜù¨j‹ÔNhî§I†‚,¹oÇЂçMEÝLhídŽÝÑ!·'è›UÛÎ5ÃîMh˜Ÿ»¾«oͧ… ëþv¡Æ³›=0°´åÒLj2JõÊ÷—QâÚ¢2Ër‘–:®O&ÆjuÊY§ ‘ù TÇEØ`HбóvÖæÇ=êÑ(4 ¬¾Îëd|ÕÓ¬ÔÑýçw¶)dæÚežŸ.|BØž,å;¦€Ñ xÔÔDªqÊ¿iåR,™°jS}£ç1RKO@;Ë>“XÃf”ã›ì ® eV£áÔ»3ÙÛ¬fE«Xb½ŸÒ¾béx›RÍ •ælÝ€‘sœß ²‚¢?éV夌û=Çcç¶gå(’³•Ó­ë‚ÃxÝ=\¿ŸÌê ÈiÜm!gmjþé‹OÂÒZ(•IÇŸvp¼ ³ÏUœ0p©)±ƒ”‡MÙ"ªÁ“ΗÇE¬¹*]e/§odÑ©bã˜U³–ÜÆîøVaðáÞå &s8Y¥x6(Èq¨g €ÐЇ“9]†fRAø<5èд–ìsåóÉf’wüœE”†‘ù«`i1BбĪ!£¾é+¸ :|Ö é$[ÛacÉ÷cåCðÚQM̆f £È[o,)>£ØÀø„×Ì_Uý?¥±(Ðw}@c\†Òˆfihï#Þ1ÑÊ×Õ½ÿáW›ÊBîKª’áz€SÂÕi?•,¢ùÈFÓ)ß*ªìãv,'ï žä?»8örú²jKà ĵÂöÉ¥Â!g›‡³é¥aÁ­bIdPJÎ^7ù+aº¢Q!ÈΆ´˜'ÉúoôÖȺ{$JŒŽö¿v„<¨Þychú÷ûC×.¤Þ[\ƒØs|fPå~Æ" v›Ló¨ßÂì·®eq»3|ÿ°³‹:LPoOJZ7Àº··¬¹]+Àµ Û_ÅÐlXÃûü—ΰ1ˆªë/te· $o8fÛBí÷5À9ƒ>-ɸ‡)Ü)ÐÑï6?~ Z æ=ùà›rÁ§{Íß ¯ªÉÍgç ­™å%êªGWø,h€œäÚ–ßP·Ø@u$ˆnc<%´N¯©òœ+Z8èëh†ßŸ¹ÈøëBdÁGªÙ~¿!6ÞDÆ3J‰Ÿ ³Ø¯¥ðœ‰Æ ÖÈ~¢;Ñ:1æ~“¯gzHÇixÌøü½V% /àÉÉÓKÿ…ÁŸ¥³€ 6²žYY4âRйëíTÌç©™&kÁ¼°ñ4DžÑ†¸yEõýü¨¾8Tš@$dÍŽ@wæ Ín Õ°âw:âÓ鵓¸}¬Ì y-ü½œØ¦‹×A<‹žæzyïø½ŒpòŠ$Šþ:ŠŒn‚›.ÈxµóYÂG/‡ÇЬÑòxÞTäz|.¦©ŠŽ&¿‚t¢34ꔿ𹺞~ŽqµÙ³Y¤o CòUµ½Ø¦(CÍòÞÊ¥ç¥?¨Ig^¥Õ¦DF6¸°«ž 6`›Oømbb³–WVÎdÛ9,*ãtií쓠ʆßs}Ÿ÷ÕXLPä3N€Þ“ý}€§umæY•}›9g'Õ€’>÷|’ÍXɹ†M.@„7+Ǭ]ê <'`qŒ®}ä'ùùVÙŽe‡hšDݽ°ˆ‚I²_{®ï¨êæö| §ËÁç5lÖF#³5‘ÃÂ%,)鿆;¤#[¡‰‡¾HšÛÃ|ð*VMд{åÚ 7¢Àùs‹ZP”j4ÍÊ;•³Ñ¿¡£ÇaÀœLÐMáD€ÎXÃön4o~Rž {Ra…¦FC¢øœ=x|&Uú1èCQ’•@«&…< ü ë¼U´˜º¬þ –åÖœ'ؽ&!ARž]q"/‚}G›^¬½î/ïÉIKÈ׳Œ]XÕíÎVgDU°âgeŽ666+k¢fS=ˆû-%H¿°× <à€ª¤p³ì”\Û«Jñt¯ÕÀM ›ïÃs„óÒ©ôÒ"^`/”ж3e€a9Zà€NX¿®…8d]ý¾Ù7+=ôõÑ#®º4²BÏA ­L? Ûvÿ¼w®I ,ùVe%cŸH„»çûgÀ”×|zå/’Æ0è…,Y½Û"®$/‘ŸGÅŒ5 MUzñ53ýÊ,þœ”ÖH’«¥¦hékJÅÈÚî—Â"ZMG®™@ U&— næ©Ø$G21ühö›5׋éŒ9ƒH Í'•-–õà´Bì.[,ϪR² þáÄ›êAi–Ù/ÅÌØH.Ç ¦ %JdÆ=ðt‘%Ìf…HÍÊÔ¤à8`ùáoü¤ôvÇWõŽ™%›üË(6Ÿy…Šˆ‡V(yOGÆ ±¹\.tÑ0ÚPj’²P¤?‚Î#b9 /ïIËÚN¼¤?©)³­PΑ]Ãex]ÿ;+»Ñé'|€Ž¶ñ‚Y-óLˆã¦ fÐx×cúg椮 ²Õ ÎÒÚèÝñ•–¯$1µnOµwª³ID¡9ê)ó¤JGäáØw)˜ò¿tª)ÁÄG*üÑ4¯raáž x³N;ò:Š^–­ÃAg¿ÐNžÌ @²°A\læÐÉáŽ!s=£'o­8êß–îú¹ z™ë\Ú—. ƒ<ŒEô`g$9çN¸úÐÜ“ žY¹&{J#Â]æÍœ8û3¥µëJÒ7œ·pàƒ§Í:“îæsDåg-¥îB«ûNjô˜µCQŠj]1;…E#0°gÙLn ò/>œš×Ý© ØF˜‡K¸3—,F£Ú¹C<4îÒ©&w]âUñá?ø’ŒJ¢Ä»YC€t †½Lš_ý5¾šK*¤Æjá}è|ô›×¤¢xæˆÚy=*±ë(÷UMý|MؾՓ^(P>-ÄçYqp¿`®Èhçlü=ÙNYaàÝ ’Ä8[)?g9åñ%(w/õo|H*xy V‰Xh;)ž¾­Îùä™61ñ§ËóV#ר`!ŒQòøßØ’#‘Âv¥V÷k¯‘ZIIä—ñœ÷ûGì8ˆÀ:u¶$ZÛ‡‹}}ëˆTýü¯¬Ðm4é}ÌCÒûóÏPJ –„d@JFÇ!îØmv<1ìkƒŽ¦£”'ôî–ö«tÝîkNKf|–ñÍÜï,Õ06]*—ˆ^&iÚRÄ×.K§Q,aY·O“ë!½ObV./H¿Ú³žq;ÖN±zöIï}ø@¤9ß .úñfbÅ´Pð¤÷Z— l „yp0Öî”}—x{ba]hZ'Ó®….ø.QzvS„Êiƒ3Ä…û6bâ)ý@w~>Ù–M>™D_ Ý>¾{å.Ò˃yAdð²ìºÄ>ÈK@úK|´P©Ä_̶,ŸÈ ê\ÙgÍh¤è 5W†(ŽOŽÜ¨m\"áÝôÞ(kA|÷ót¤°™jöGD•!ËÃzìbT«m«Ü.ÉôqÚT5ê(šýò4ïI¢C§þ¤8í¡ØDÓPðÞI ´6çµeÝÿ©šjw:\’B­¸¨e›ýkÙHŠ"¸VCñY>¹8OƒÄmKךÏ~c™ëð²…O›ñðzØÂÎÑ¿ 5®kD¼"þÚ{ÿe¯^C¶Rî!1IG&Úm7ËJÎCáËîš ¹T¤÷Œ7ÐHgí¸[•ÝÜê<ò3Ǹ;ë* þCÇ?¹Þ[m3ˆkøI  Â=¢S ÂC Pj—èÍÏ)#Dв«N&ÃÅ¿ºreŒ€œð¨JbÁ·#d~K`&`kŽCê¯Ó…w“U#©~ÑÒ˜l6²P–—T`È‘èIfÔ9}ØÌ/ÕHîEUœÌt‘$Š®û¿WƒVX„³8—TÅã1â”/L”í¼Ó:ѹWò˜Äùò$Þi†vR~°wmo/4é·,Üøv~¡ \xÅ+—»ègQnÔÍ2#³–³!‹áøŽ—oîw¢Û„/±¯^Ne»Ë¥tŠüow–ÎÚªg×t É U¬ºI~É~Ûog?܉óX»í`Î_GS©†zæafÆ$Ï%ã<ÑÁ­wé&P .çæF”D*­Û´Þ Ä»f½"¥Ârn÷1…T¢–ÉÉD»ëÖy+_™g[?I¸pó%k†ü>ÚRLÚž>ô`;eª [Õ?TöÄFŠhfpPȾëc /(˜@m£šÁy ¥» ämFôëÁLíØ×á?_!³–7Þðh‰ÍÝÒRc艙Ã×_ë7ߘÅ|OÔm£kêÀغœ9²¹û‘Ȩcf7Ž íÚ™©‚´aÓwC˜ñ1à¬ð§îÕ¦}ˆä5“ÜÔM eð\S×V¯ÕL V$ òq;ç4Y W­FmÞðR.%ðø^ .N7LmX޼2Éë¶ÕD°y@6Š93ȰÅ6Ë£œ$`5ºVÙË5¢Öuý3˜œC¡¯Ñžö÷u¸z>³šnÓ…¤†„ Ð-¡¦NFÏGØ'†>·!2—>¦ú2e™é?HÚzÒwOcúíñSñv ÉêWÀ4zDöøîD©J Д4â3ó|«% Ùo§`’èx`µ¸Qj$£âzIÎŒé6Õ‘S_0”` éëq­+Ž\•–—wôcõÎ׳ºµ–e”?쨸Õ~ã9h%#tÝ^@}Iò,:„^s˜ª¢sï€x×,”ò‘Ú'½Š(èƒárø&€|´}£#= ïûùñ ãUoüRfš¸EVXe}¨1SÖ:Ðí´C $"‘‘[£Ö’¾¬ÔF®ø Uú±6Vº›3IÑ)>¼½ÛbHJ™’ߘn‰,X“ÕX>Àuøoë%Á¬³”½½-{8ũ؂KÐîsW÷Í'­§ê@2î;îe‘"{‡fûÇ¡å %ÿP³NΦñï¡ ^eB¯Dm¡¹Ëoš2IMëïA2x¾*ËLppÙV1hðÉiº&·ú 4†*¤  òkÝ;˜•ÅŸý(•ÞØÅ¡3ÜÒÛ0þØi#š ÄO5ÆNòØB…gvÖP“êl‚¨W}z²È–l( ÕðfMlkdƒ3õÏ/'jK2³I}N”ÂtøžM‘‘4…ǧyqŠÕÜåã DHÓ}%ÇÄÁwžN›ŠlšäTJ1'Æ&‘Ç›)1ÄÄ} ýhhqðßì ú'Dy[XÒ_¿±Ü˜…ÂWÉŒMnYk›ÂFýš–:²Óô×7 ’“Qîód ¬“_ù‹_#ÿ†:ïM¹$ (­ ¾,7§ç4 ‘²,çGU–¡2‡yÙ%ùé0ô¨¸¢÷_ ’YMùžzØ…FY<”IrˆOllI_ÿà #ÍõÑã¹¢ÌÎèsà¶ø/Y©)òò\&iÄÆ.Üé5eV±¯Çu~Œ¾±ßåÑ8Ž3«GHøBµ¸%%Ð9sº^½£ñ7y¦ÁÚËÈ-_AVJü*®Þ…(tøò†è`jž Ý¿[šÿN!L´"í Œ]§eÏpWtbQM >zûÅ >Å5ÕBÓ~žæ gªÓŽÏ”D`_7w¬¼¾Îö}o_0W‹Õ‰~ò*|V/T@z±S}³rìy¾æ¼‰&> Š\– )5‡¬»Ù Ô•þ¨‹çCqÁ9ëñ*¡Í¹¶û’¶trxô¯]ôâ/Ÿqî³¥IrgÄùxB¤‘åfŽ_0y­Kí8Êú¤Lr]#›òƃìÞä«jí×G¤™t®FÆ7ÕCf® ‡ @{Yñž¢ò5´.m˜·¡6ÛŠÙóOrí  EûÑN3”TýþɪïéUϪBØ.Ævt2ÁQ^ºPç0ÿXÁ:ýÙû›I•®|­:ó~]à fJ4šár²ÓĘ«¼‚}­‘úŒGãÒº³,&I01!„ =ðîð|ˆåÉY‹Ê ˜‘«6ZùÊ삜¦ÒjäM„ǶHz#/ `"ÁhFÝ\PêO”oÐ ®! Mê^× ýêzç.ªýð‹¾_ª.ÂeõÿZ K/ Hé_ÿjXÐ{-ÄUjøø N–£»´$ë7ÑÉÊÄüs½!ßžôkÂÐÊt'bûïVY(ç ‹h†Îw\œ‡×˜S Yÿ²²rî«9‹ Äฒ‰«òA)AŒ¯ŸíEÖ(øt×I¾ÐŸ]yñíÈT̶{1ûÒÄ?Ðfò ‘µéí†éã!àŠÑÿƒGª ë1€ùQj¾ õX¥hVDôT_s‰(Ž?41Њþ½„°µ›çCí;¤Cˆ¹½)œ =£väèâÑýHÚ *_)…‘©@F 'ãÖÓûú@=ÕÒØ˜×Ð*¡Ec-8 3s]-õE !z›.Öì2ÖñŸdù¶- ­Æç…‰PÓéÏXµÜ4á GâP¨¬•…b¾3DÛΪŘ3å1MÄÔE, ¼%ÆeŒ5KIÌqÓâ¬w@níÒ‘Ò\*e±²gº,¤:ìCó\Lc®Ã—‘#h&»¹«†úßœžtÊí§‚°—•íòm­ßWHÃ’¾Qt½gäl`è;ì^øT%K6XâT[b¥ÚÀŽ ªŠãÄÁ˱‰dº÷ ?“ëëŠajÜåÅÏû^¨¡Lá»C÷¸˜Ú²t1qä™Nð,¨ïÝÿH]Ñý«?Ÿ8‡3:?î·™ÄÿwȞĴºE¢˜¼øvIŒŸ;:”'ÜסZòS}¦lE}æ!SøÐ‘¨”eMnã#‚¸ð^ °™q Ó­_—šJ¸Mï^ñêñRK#»I+¼‰Å ßEæÑví²ÈÇ›MN „ƒ˜Í`ݨóFá"1¿•îݾפ½‘¬Es$ý²†f†û@Uçõ‡ÝÊOÈE{‡½wâ\:xæV~ZÃUÙ¤ÒY„²p&·ÊÔ0 ˆ=îÈÔ @^;µ AÕUîV7O°¥5æºÿ¹†.@šCq®n‹iäŠ*Ý·£&f†£" h©:AÄ;2YtÔ+U-ýå ·g̨ž£(ÚpG¾L-.vbµº0(ÇŠ•ãd‰°5R%ßìƟ Ê9x–Ï|§0›ÝVn)þrº;L«Á7TŽ}KÉäøììµáÎU1¤g€yŸ)íÐ=oV|wÁ“âJÀØÌ)ø¼¶Nq}÷õò-’»Czláë,ò>0éH%Ò;ÀbÏÓ_WÀ¯ÐäÝJƒ"S6už@¤Qh æå֞Σ ¸¶¿¡*”¸å?ûÂå˜:ã²³Ñé×®ì'îó˜fMNBŸP[ ¨Lêd¹GÚß4”a—3=ô9t¬d  |º/bpÁ'·¼ôNvÍÏõåóíN¼W=1þ≱¼ap8p%+ÚºdÕ JíhúL k ¬ya™Î*Ä.¢èÏç®±Þ{<É{µ³@sá¤y¯Ä ’&í´Çþ¤î\ƒ&¶4»“ü•Qº%Ï<ˆ¦Š¨JYòS$W„F/äJ³"R»8Q¹]A<µ¿Xý##y2ÇeÀ£yÑ„œ;íKfáN iÓêÑÕÁ•Y ?<6çÞ]=áǦMI:Þé*³ãM8ÿ¼vä«b<§·þɼqëæcšaLÌ5|ÌaM¼õqrèõRØC ZDTu<2':>Ä=f+PÎAç05Nì\,Â!Ÿ}X¬Þ¦«§Hu--v…t•õ)båøÁeÍ %M]„7µÕ¿æÉ[Ȉ*OÒë†_šµLÃñJ@uÐÔ³¯˜·>Â×dz$n˜t tCqóflz}ö×ÑVm%B$U‚DÈ ñúÅ–L—baÛ…ö÷St‹Z&ŠV¥ÅŽ!B©„ÚÚƒŒÝØl r ä°¹ôž<ÅÁ’¹ oÄ0 Œ2 •ü7ÕŒ‚b¼A›-‡ô5ňîxçB[9‘øOx€/±¿g”ë!AÍMiQáE³…¼Ú„÷ÖÞŒWb‡+ ÏìhäçÁ{¡ÓÀÇÏ~¬•éÂ,X÷«' Ž…Ý´‚ïìÖ…n Ve€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/d050000l.afm0000644000076500001440000002224507056046552016374 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright URW Software, Copyright 1997 by URW Comment Creation Date: 10/19/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName Dingbats FullName Dingbats FamilyName Dingbats Weight Regular ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -72 UnderlineThickness 36 Version 001.005 Notice URW Software, Copyright 1997 by URW EncodingScheme FontSpecific FontBBox -1 -143 981 819 CapHeight 691 XHeight 567 Descender -143 Ascender 691 StartCharMetrics 203 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 974 ; N a1 ; B 35 71 939 617 ; C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ; C 35 ; WX 974 ; N a202 ; B 35 69 939 615 ; C 36 ; WX 980 ; N a3 ; B 35 0 945 691 ; C 37 ; WX 719 ; N a4 ; B 34 138 685 566 ; C 38 ; WX 789 ; N a5 ; B 35 -13 755 707 ; C 39 ; WX 790 ; N a119 ; B 35 -14 755 706 ; C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ; C 41 ; WX 690 ; N a117 ; B 35 137 655 556 ; C 42 ; WX 960 ; N a11 ; B 35 122 925 568 ; C 43 ; WX 939 ; N a12 ; B 35 133 904 559 ; C 44 ; WX 549 ; N a13 ; B 29 -10 516 706 ; C 45 ; WX 855 ; N a14 ; B 33 59 820 632 ; C 46 ; WX 911 ; N a15 ; B 35 51 876 641 ; C 47 ; WX 933 ; N a16 ; B 35 141 899 550 ; C 48 ; WX 911 ; N a105 ; B 35 49 876 636 ; C 49 ; WX 945 ; N a17 ; B 35 139 909 550 ; C 50 ; WX 974 ; N a18 ; B 35 103 938 588 ; C 51 ; WX 755 ; N a19 ; B 34 -14 721 706 ; C 52 ; WX 846 ; N a20 ; B 36 -14 811 706 ; C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ; C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ; C 55 ; WX 571 ; N a23 ; B -1 -69 572 660 ; C 56 ; WX 677 ; N a24 ; B 36 -14 642 705 ; C 57 ; WX 763 ; N a25 ; B 35 0 728 694 ; C 58 ; WX 760 ; N a26 ; B 35 0 726 691 ; C 59 ; WX 759 ; N a27 ; B 35 0 725 690 ; C 60 ; WX 754 ; N a28 ; B 35 0 720 685 ; C 61 ; WX 494 ; N a6 ; B 35 0 460 691 ; C 62 ; WX 552 ; N a7 ; B 35 0 517 691 ; C 63 ; WX 537 ; N a8 ; B 35 0 503 691 ; C 64 ; WX 577 ; N a9 ; B 35 96 542 595 ; C 65 ; WX 692 ; N a10 ; B 35 -14 657 702 ; C 66 ; WX 786 ; N a29 ; B 35 -13 751 705 ; C 67 ; WX 788 ; N a30 ; B 35 -14 752 703 ; C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ; C 69 ; WX 790 ; N a32 ; B 35 -14 756 707 ; C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ; C 71 ; WX 794 ; N a34 ; B 35 -14 759 705 ; C 72 ; WX 816 ; N a35 ; B 35 -13 782 707 ; C 73 ; WX 823 ; N a36 ; B 35 2 787 719 ; C 74 ; WX 789 ; N a37 ; B 35 -13 754 706 ; C 75 ; WX 841 ; N a38 ; B 35 -14 807 706 ; C 76 ; WX 823 ; N a39 ; B 35 -12 789 706 ; C 77 ; WX 833 ; N a40 ; B 35 -14 798 706 ; C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ; C 79 ; WX 831 ; N a42 ; B 35 -13 796 707 ; C 80 ; WX 923 ; N a43 ; B 35 -13 888 706 ; C 81 ; WX 744 ; N a44 ; B 35 0 710 691 ; C 82 ; WX 723 ; N a45 ; B 35 0 688 691 ; C 83 ; WX 749 ; N a46 ; B 35 0 714 691 ; C 84 ; WX 790 ; N a47 ; B 34 -15 756 706 ; C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ; C 86 ; WX 695 ; N a49 ; B 35 -16 661 706 ; C 87 ; WX 776 ; N a50 ; B 35 -7 741 698 ; C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ; C 89 ; WX 792 ; N a52 ; B 35 -1 757 720 ; C 90 ; WX 759 ; N a53 ; B 35 0 725 693 ; C 91 ; WX 707 ; N a54 ; B 35 -11 672 704 ; C 92 ; WX 708 ; N a55 ; B 35 -14 672 704 ; C 93 ; WX 682 ; N a56 ; B 35 -3 647 694 ; C 94 ; WX 701 ; N a57 ; B 35 -13 666 708 ; C 95 ; WX 826 ; N a58 ; B 35 -18 791 716 ; C 96 ; WX 815 ; N a59 ; B 35 -16 780 705 ; C 97 ; WX 789 ; N a60 ; B 35 -14 754 704 ; C 98 ; WX 789 ; N a61 ; B 35 -14 754 704 ; C 99 ; WX 707 ; N a62 ; B 33 0 674 717 ; C 100 ; WX 687 ; N a63 ; B 36 0 651 688 ; C 101 ; WX 696 ; N a64 ; B 35 0 661 693 ; C 102 ; WX 689 ; N a65 ; B 35 0 655 681 ; C 103 ; WX 786 ; N a66 ; B 34 -14 751 703 ; C 104 ; WX 787 ; N a67 ; B 35 -15 752 704 ; C 105 ; WX 713 ; N a68 ; B 35 -13 678 709 ; C 106 ; WX 791 ; N a69 ; B 35 -14 756 707 ; C 107 ; WX 785 ; N a70 ; B 36 -14 751 701 ; C 108 ; WX 791 ; N a71 ; B 35 -14 757 708 ; C 109 ; WX 873 ; N a72 ; B 35 -13 838 705 ; C 110 ; WX 761 ; N a73 ; B 35 0 726 691 ; C 111 ; WX 762 ; N a74 ; B 35 0 727 691 ; C 112 ; WX 762 ; N a203 ; B 35 0 727 691 ; C 113 ; WX 759 ; N a75 ; B 35 0 725 691 ; C 114 ; WX 759 ; N a204 ; B 35 0 725 691 ; C 115 ; WX 892 ; N a76 ; B 35 0 858 706 ; C 116 ; WX 892 ; N a77 ; B 35 -14 858 691 ; C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ; C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ; C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ; C 120 ; WX 138 ; N a82 ; B 35 0 104 691 ; C 121 ; WX 277 ; N a83 ; B 35 0 242 691 ; C 122 ; WX 415 ; N a84 ; B 35 0 380 691 ; C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ; C 124 ; WX 392 ; N a98 ; B 34 262 357 705 ; C 125 ; WX 668 ; N a99 ; B 35 263 633 707 ; C 126 ; WX 668 ; N a100 ; B 36 261 634 705 ; C 161 ; WX 732 ; N a101 ; B 35 -143 697 805 ; C 162 ; WX 544 ; N a102 ; B 56 -14 488 705 ; C 163 ; WX 544 ; N a103 ; B 34 -14 508 704 ; C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ; C 165 ; WX 667 ; N a106 ; B 35 -13 633 706 ; C 166 ; WX 760 ; N a107 ; B 35 -13 726 705 ; C 167 ; WX 760 ; N a108 ; B 0 121 758 570 ; C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ; C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ; C 170 ; WX 694 ; N a110 ; B 35 -14 659 704 ; C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ; C 172 ; WX 788 ; N a120 ; B 35 -13 754 706 ; C 173 ; WX 788 ; N a121 ; B 35 -13 754 706 ; C 174 ; WX 788 ; N a122 ; B 35 -13 754 706 ; C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ; C 176 ; WX 788 ; N a124 ; B 35 -13 754 706 ; C 177 ; WX 788 ; N a125 ; B 35 -13 754 706 ; C 178 ; WX 788 ; N a126 ; B 35 -13 754 706 ; C 179 ; WX 788 ; N a127 ; B 35 -13 754 706 ; C 180 ; WX 788 ; N a128 ; B 35 -13 754 706 ; C 181 ; WX 788 ; N a129 ; B 35 -13 754 706 ; C 182 ; WX 788 ; N a130 ; B 35 -13 754 706 ; C 183 ; WX 788 ; N a131 ; B 35 -13 754 706 ; C 184 ; WX 788 ; N a132 ; B 35 -13 754 706 ; C 185 ; WX 788 ; N a133 ; B 35 -13 754 706 ; C 186 ; WX 788 ; N a134 ; B 35 -13 754 706 ; C 187 ; WX 788 ; N a135 ; B 35 -13 754 706 ; C 188 ; WX 788 ; N a136 ; B 35 -13 754 706 ; C 189 ; WX 788 ; N a137 ; B 35 -13 754 706 ; C 190 ; WX 788 ; N a138 ; B 35 -13 754 706 ; C 191 ; WX 788 ; N a139 ; B 35 -13 754 706 ; C 192 ; WX 788 ; N a140 ; B 35 -13 754 706 ; C 193 ; WX 788 ; N a141 ; B 35 -13 754 706 ; C 194 ; WX 788 ; N a142 ; B 35 -13 754 706 ; C 195 ; WX 788 ; N a143 ; B 35 -13 754 706 ; C 196 ; WX 788 ; N a144 ; B 35 -13 754 706 ; C 197 ; WX 788 ; N a145 ; B 35 -13 754 706 ; C 198 ; WX 788 ; N a146 ; B 35 -13 754 706 ; C 199 ; WX 788 ; N a147 ; B 35 -13 754 706 ; C 200 ; WX 788 ; N a148 ; B 35 -13 754 706 ; C 201 ; WX 788 ; N a149 ; B 35 -13 754 706 ; C 202 ; WX 788 ; N a150 ; B 35 -13 755 706 ; C 203 ; WX 788 ; N a151 ; B 34 -13 754 706 ; C 204 ; WX 788 ; N a152 ; B 34 -13 754 706 ; C 205 ; WX 788 ; N a153 ; B 35 -13 754 706 ; C 206 ; WX 788 ; N a154 ; B 35 -13 754 706 ; C 207 ; WX 788 ; N a155 ; B 35 -13 754 706 ; C 208 ; WX 788 ; N a156 ; B 35 -13 754 706 ; C 209 ; WX 788 ; N a157 ; B 35 -13 754 706 ; C 210 ; WX 788 ; N a158 ; B 35 -13 754 706 ; C 211 ; WX 788 ; N a159 ; B 35 -13 754 706 ; C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ; C 213 ; WX 838 ; N a161 ; B 35 151 803 537 ; C 214 ; WX 1016 ; N a163 ; B 34 151 981 537 ; C 215 ; WX 458 ; N a164 ; B 35 -128 422 819 ; C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ; C 217 ; WX 924 ; N a165 ; B 35 140 890 551 ; C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ; C 219 ; WX 918 ; N a166 ; B 35 167 884 526 ; C 220 ; WX 927 ; N a167 ; B 35 28 892 664 ; C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ; C 222 ; WX 928 ; N a169 ; B 35 129 893 561 ; C 223 ; WX 834 ; N a170 ; B 35 154 799 537 ; C 224 ; WX 873 ; N a171 ; B 35 97 838 594 ; C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ; C 226 ; WX 924 ; N a173 ; B 35 82 889 610 ; C 227 ; WX 924 ; N a162 ; B 35 82 889 610 ; C 228 ; WX 917 ; N a174 ; B 35 4 882 688 ; C 229 ; WX 930 ; N a175 ; B 35 83 896 608 ; C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ; C 231 ; WX 463 ; N a177 ; B 35 -100 429 790 ; C 232 ; WX 883 ; N a178 ; B 35 70 848 621 ; C 233 ; WX 836 ; N a179 ; B 35 43 802 648 ; C 234 ; WX 836 ; N a193 ; B 35 43 802 648 ; C 235 ; WX 867 ; N a180 ; B 35 101 832 589 ; C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ; C 237 ; WX 696 ; N a181 ; B 35 44 661 651 ; C 238 ; WX 696 ; N a200 ; B 35 44 661 646 ; C 239 ; WX 874 ; N a182 ; B 35 75 840 613 ; C 241 ; WX 874 ; N a201 ; B 35 75 840 613 ; C 242 ; WX 760 ; N a183 ; B 35 1 725 690 ; C 243 ; WX 946 ; N a184 ; B 35 159 911 532 ; C 244 ; WX 771 ; N a197 ; B 34 36 736 655 ; C 245 ; WX 865 ; N a185 ; B 35 209 830 483 ; C 246 ; WX 771 ; N a194 ; B 34 36 736 655 ; C 247 ; WX 888 ; N a198 ; B 34 -18 853 711 ; C 248 ; WX 967 ; N a186 ; B 35 123 932 568 ; C 249 ; WX 888 ; N a195 ; B 34 -20 853 710 ; C 250 ; WX 831 ; N a187 ; B 35 113 796 578 ; C 251 ; WX 873 ; N a188 ; B 36 116 838 576 ; C 252 ; WX 927 ; N a189 ; B 35 149 891 542 ; C 253 ; WX 970 ; N a190 ; B 35 75 931 615 ; C 254 ; WX 918 ; N a191 ; B 34 99 884 592 ; C -1 ; WX 334 ; N a95 ; B 35 0 299 691 ; C -1 ; WX 234 ; N a88 ; B 35 -14 199 705 ; C -1 ; WX 234 ; N a87 ; B 35 -14 199 705 ; C -1 ; WX 410 ; N a86 ; B 35 0 375 691 ; C -1 ; WX 410 ; N a206 ; B 35 0 375 691 ; C -1 ; WX 509 ; N a85 ; B 35 0 475 691 ; C -1 ; WX 334 ; N a96 ; B 35 0 299 691 ; C -1 ; WX 276 ; N a91 ; B 35 0 242 691 ; C -1 ; WX 317 ; N a94 ; B 35 0 283 691 ; C -1 ; WX 317 ; N a93 ; B 35 0 283 691 ; C -1 ; WX 390 ; N a90 ; B 35 -14 355 705 ; C -1 ; WX 390 ; N a89 ; B 35 -14 356 705 ; C -1 ; WX 276 ; N a92 ; B 35 0 242 691 ; C -1 ; WX 509 ; N a205 ; B 35 0 475 691 ; C -1 ; WX 278 ; N .notdef ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics grace-5.1.25/fonts/type1/n022003l.pfb0000644000076500001440000013127607056046553016422 0ustar fnevgenyusers€[%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Regular) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Regu def /PaintType 0 def /WMode 0 def /FontBBox {-12 -237 650 811} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020945 def currentdict end currentfile eexec €;ªé ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>j"aÆôæË…\uãÑÐ6³‡Ó•#D©PôØÇx0z Mñì®äÒÂýt{Æ÷ùƽÁ’”ùlŒ\þˆû4ÄwWJ0¸ÌY)å› yM£.aÞͨ«½éVÏt* Bîèa°ªh—ÈdxŠåïCÄ“$oÛÊULYKdz6W©ìÉãÑG.ø&?c+å@Ã_öû@Vgsó»"Ó¥y ŒËÈDÁKÃPð¹Ú#¥pÃbÖ8“Ê2øoY¸)ÇŽã‹n?¨b(%Æ9cûx·¯P[E¥M¿¥Ë¢wÇ”ìé2u£Þ E/ÜÜ)“º¤/(¦6ŒÜ°>¿q½ÊóPw‰“D?ˆA*Ò­ qU£”FF2f2-¼D°}¡éÂz'µ–dèVmzTÌ镪а¡~,>ör ç÷x…™ÄäLpœÕíp±{šþ.ŒÙ"§B¬'ÿ¯Qsú°­µ0çý"Ú"ÄÍ0d{ÔöœK,‡“}Ô&äéÒö`‚ˆºÉeTÐIGæ’aãyÏ^¿Ó/Ó~úÁöëîUQQdq§G,`߉کëŦ~G—E>i¹â+¯N<ÊA’Ö)[ŒJ¶ÞRßßékU) KŒ[zl¬¨#Q¹zßÃi•«¤8¦å¬£É4•öÓ¸±DDœÑ5‚ùner6<ûÞWkýùŸ£)ÝFè?yàlö‚PÊW¦‰1¼4*Ò•ÐË¡z©[¸îµ>¦èæ`¸éøWÎËôJC(‹i©çU¿èD5˜yÒŒ®ñÊ6B…Ò û2Âà (èï=gÅÕ‘–WÊ•‹SS}P4D†S1×›ü@1 h×#dP;ÐÌ„µó tص¶¢jòÛvEdûe¦ºQ®+N¤XÔjEió nwÜ sVwbæÏ?aGxë´O÷Ñã¶O÷^wáå%»eFÏÑ3ÊÕq¸*X%æ"mýÏ'ðm‡E*‹l]Êe…5Îâ§•å7ÔŽVkiÕ: ;vn„Ū"F™œÈZÛ/[c«ÀÃ;Zêû¶é”Ø Aµ0y¯–Ù ’O›1›í˜6¸ù?†ƒcÓÊUL»c0Œ¹@‡.Õú{ь㒵­ŠÅ}u-”v±ÆM™¾ ¸mzm–Q w.²LXw›Òþ[Þ)Áï"²¸¼×ùSÈEg"Gx)ÄØH<ö-èÛ§ý†Í#nefÊöüF‚¼H˜êvrøÉ—þCààÈ·}JôŒ¿éŒ±\ÑI¿õа' ð±£¥]Èóû’îÈËgxÝ·ÎJ«ÄdįöT"0¥PëRHZ#Ò´ªq˜ÓÍTAñé¤ûÞ7¸Aåo\,S–m¹¶kEˆ(.?¸ ,Q“9ð-/ƒÉyíÅ‚z;<Žø ¬¶¹™ŽšöUV1=ÄË—š¢Ó+¨¼$Aä¹sMŸ·˜*Vq-‚yʹ:¾ttbïÉ]C‰ ±í4Ϩ¢ Ü=‡Nvy£–ŽR.Ы–šN>ÇäGN%PMTÞ·²`·“\NVTŠ}Á÷AøÍòYêXZw¡ÒÓ ¢oeëvZÀžÕiôQ­ó™æª/À—ˆ{êIñ{ޏ8òrܵ_ÖV—ÿ …}=âf¿÷ì© ‡kßçgÓ©°’üxÇuùEÏ–èYÀ=¿c š” 9eL5IØ÷’¹Nâ=Z5Þó ù7ø`´ò ©šÝü4=|÷¿ ¸Á,&@? Ïüާ†ÐبÙÃgAœ¨®A é:€†X:lp¶ÈM‡Òîªqì-Á/LÞj‚Õö©»Û~íÍ(ž€ú;uôHPqÏJ i95“¹¯œÎêìV£[‡‡=|ˆ>ž" ;žøŸa¾ÄsQÌ€ÌZѶr{2&ÍDÄ—ÚpRÝh•Ûì3—ùYŒ‘wps¿”Γò=Pì[î/¹ÚÉfß‹'²ŽãÈ•&Ýf%∟ v||`žãbkÁM'O¾¥e(Ü¢{-GmFéç‘e±V¥ß¦ËãbE×p!v{n[ßÌg–p&?Ø‘Dl3q±¶áß`ù`ª´wSæ¥Ã8Ä,‹ÿN“P8…ø'‹×Ëg/.Zæ„Ü ¹MÝbýþñBwïèæYºÊ?âò‹-JÂuÑŸ Æ—¾‚|J#-‡e &ˆ4[ÊxøyqðF<_¶iVoqäâ„Òx@U€ðKÿÉ'„!n šª›)5æn§ƒ÷#¾C‰·éÖ*£hÿ.¤ÃÁ©ÒóCo>çÛ‹èjúªjK„aPØÒvP–µáj¨CM]ãj+ž÷L_j Y KUiq#'ô±³•‡Í37c™gËÜeZ¤n€ÒÏÒKëP[S8å"³§¯è6*´ð]‹Å+ºœP‰­¨È•)°'Zô"ëT 1©8¸t`uc%¹f³hRú¯’ÞcöºáàKûÅX€˜¶¸D­Ç“½(üÕïlÃóšÅ/q“› ïb Æž1ãm¹i1°É.òÛe=—ópV¥)…k&†Rú&HÇ’x ­c|Muû-bWâ“q”‡Ï-<ú¥2áÂÓ‘xÕr¦¯@¼¡tµÌ+×9 }6•l´½w‘ùûmˆç§ ï,—†Ÿ]¼[Ø#ÅÇ·ÃbMö'Ü–SêSG¿Ú€·#ð_m»Lž¥Øb¬à[½òpVûÍŒmK…‡=Îæl‹ZÜÊÙcŸ6¤/áÖ.ÛÊ—/ ôWX¾Ë1Û81o<ßá´HÉ>Õ‹géµz»íY$¦Õ>™ûÉ©”¦Hš‹ßëhUH´ÜmbÚt&Â"'ÔÔ;oü{^©‰g0%>‰A¯îXƒY¾ÏoüA[ž¶ÓËl……>dIúmbz—£ÎƒñH9:ÜÌߢþ\i¾\<¯¦ð(@ l2S¥Y¬\›Ýý­›„¸M¡ ãÄpËšš-{s/Yõþmí¦ çPõQªÉ4bDpá¼2LCcâ_ÐÜ1ˆ¾ oìTÂL±‰Rá,¶B=÷F'¬ÞU×z—¨¿ÙËPÑú âÎ+%¤tŸ»°’ÃG7Z›c5:ùçþà[µL˜Ci÷˜ˆ©1w80ÂÉgµˆÓ¬Ò(ƒÕÎ9bÕ„üe>®,_²ÚAÚÎû\v-.Û[–w(œÑ™E±:¬g)[¼š ¤&°j6óÅÝ<± (UòÆ5íáWîüîÅP4G8-ÇHÁã_hu9’åÉ åMøá³UÑjß±óY5úÑ£oŽDôŠ»›€ÊšTaMFqË1 ¼zÇa -¸Å¿Óž Ƽ,l¼:ŒÿŠtË!`ŽÄ¤Ïä˪-mº aMìõŸ•~ø©ÊÞL›ØÓ Ôýæ©TŽPÛQ¬§30!Sü6¶œ[&ÐÆ‰·¬,†O×À—É›å•8CárÉzµhO5û§%¨¿7Ýô 1ügm°áT:ìn—ÓÒäª=X1سÉR«¿¡5(ûo«a Ö€ædjì„& ö†÷B,²÷Œaëª6Ô~Ám¯‹Jó ߢUÙׯFϲ*}nXçÕgà ½ŽFß´wð‘¢ùb"ÿG¸vTKÁð;k»˜8_œ »¢§§†ti+ެ.<€i·žg“8ÚW÷)v„[ëkšÝ2¹]xåæÝhœý‚Ój1¾ŽÔ”§MÒÕŠ,ߘ?ËœÜ)¿)˜¢5`íõ¼?;*"ÀŸ±y´~­ïHßó)‡]{@wd¤)/äNtQ¨ã¾µðÙr¶2pödA|„øOûð¯ÿ‹…È"Ù0«A@Ä*Qª‹¾C˜N¨V`@ë‹4Î#ý?iÝ#Z ¥Æšì¹¼s+Â×Ôݦ·Ÿ¶î@ÃUl}ù²=­‰é@T±4]¸@*æyüFU¤§vÀcøÛ+üêN"Úæk^]z~J k; ó¢fžgÅäðQ–j{Ä/Kj‡ç@Ø ^c÷|z&µ/"™Þ[Š/b ¼óÓ°#_™x\È1ÜBNFì )QåhH Y.¤}lxŠ H{ê.ÈòæÁ×óx¶-´<¤äŽ%ÿIÕ‡ÓæR)ãèÔ`ž#. ÜyLy¬ï‰èA²íÊPÕQö^Œðñ‡Xð¿WCqŒ>†èþ l¡n $¿ÂTwÕ6qÊ£«dAU}Í®4aGµé™ÄT´¯ËÁ‡¯ÖSÕµø8mö­æž!½gßIOsljO¤ÞHÜŸ4w‡Ê–âà )l- \*Ù¼B>œ¤(×ñúÜ“S£ûŒRšøhŒ»T;E²q~¿lIy5ôó¿ý(^«uD³ÊFC®Z‹RPí˜z•ü'[—¬ÐdÐî*éu„”øØ¥Î@Š8¬ êð…-rØM kés2g“®¹UêÆþ (£UÜÒ/o,åeˆÑÀUÍß©ˆx¼ëj²)"Ò¶¢„.f]ôÊ GÄ#|+Ö uâý?¸ÈúHW0¸ta­FjËߌ¢@‘O°³Ò´¶¸ÿᥟÖh¯pº[·'x•;¥_Åùö&4PáЛÈ=† оø„cš7€š2V\¾û?óžå=lÅŒ'+¹(äA6Y¥$-itz&Å-ë¿b6Jµ©núöBÙØ+¦y±×¬¤ëbú\ü0ކ6Šª×çYHô5˜ÍTJ @‘7M~ˆÔR,¾#‘d'èˆçt¨‰ÜæzÞaiž}wv6Êƒ{/~ùÁŒ¼Å8ÄeÈâÝ4aiS̶ ",r‹ƒIÁ¡yâÇp(”«(³ç$Ùt}a4´%!jdÆà¶c>+…0GäÉ9Î ®1è0È«¥«3†£¶’g5{ýÖcV®^Wû)”E)“é çÄâ`««“Ãx1…je VäArþÊÖÇÀòP¸$s– **_¶´ÚfFæ$¬÷úÔIH]d :ßÉøe.z8ÎW™÷pÃ`m´¸¹Gù9g÷yã£ÀW/¥¡‡Ó{Ñ*\{â<¶ía’bA·l[¦˜=¹É>K p}7`ð<Ö'.ó¤Î‰¸å.jŇ=ë—WY«Kâ9åìxB˳3æ’Ì`|r.]<9MÓ Æ”V)ÇöjR7À©R ­n¹`i5°ñ5Ù À˜+}"”®J8¥'î@¾œÞ%ªëµá48‹±qЕj|EfÖZšæÄøƒk>ÃÒíHµf§ƒ)+¶y ÒGÔ”ðp» ¾ÿ`d ²vÝîä—è²²´ ªüYLI,%ܧtภ‚é'DâçJ Ǭ’` n¯{lÖ®ªmÄ [D'Q¥²&ˆ@N§Å†07úÁZýG' ä«^§W`ku놠^wMnC ?â£~»pt#Ÿ±Ï ^äK‘¸"DÅuµ.¯“Kî°Ù3þµ~¾2mu‚‹#ê¨[X:íC ·ðKŸ-Å‘ ýå.Kª©ÂÉÙqK•¤UŒ!óξbKT³ñxXö†0ƒív/.4¤\ý×`Ö&ÿ†HõÖÅå€ÔvZgûaYì€w©ð¨€8ÈÓ×Çð’n!#¾‡O{Êñ)ÕZ[Y`ø$½(«ÏÌQÒ96Þš%Ä׆äL:+¯¤B1w­ !ÓŽâ>¶ÿÀ´F•Ô#îü'D¡ü´ß‰×o hرNuSŒªÐ:rQ{†QOiRöýaž‘ ˜–M³%1Œ[ßydE=J\ôæÕ5—‚‚r)1ûÏaíÞù©£9ÕÕ¦ë.x8 ¤2!½bËßs-°¦8¥ û5ºwa®ÈF #Ó¿-±ƒT>ë|¬YpÍÆðhÅêŒz®R–æÜ“‘ÚD`ÈêÕÀÜC[·4!‹¦' Ý ÁwØ«ƒj0+JD°~Üe•lžlô‡]õ!óÎ[B/qmi½'s•Éèw“J‹Æ9 B NLÝœ÷ã%DƈN¬£¼ÀÈÁ2Øûu,×\RˆWâêFoÊÙ V„5÷Dañqd¼Yz(®K§Ènáp55©¹íP&'qüñèàá¯{´f½+¶Ω{*ª5#]çl<’hŽÈwÕŒ4wŽÁÌñÍš|ýª¹šÎ;üx)ñ¨w‰©-É!æt "¸MƺͫÌvæLy㥈ØM7nBou÷9/ úý‹"ßÞµH®µó s="J9Àæç¶… Ð1ª¿ ·Æ!‡À(H’Õê­ñ!º(&>¸cÕãn©ÀjwÌüõ“–‘øM‚¯‚>þAL`oïƒÌǰéaç™Mø£Ì6² ÙSâP­«"×ò´âÉÊ9ï¢Ù>V\`ã QÌ[úïÏ% ÷ŸkbJK‘~Ã2"/ÌþÄö¤{Ùç]©…OÃ÷®UN‘íÞMzï8 ãíµå¥bctÛ”ð"ÈÏT“à ri·ÎTNt„9º(pqŒå´§}“ëÀKyWÒr®ÔøZ+­ª ÷; 8AÔƒœ…g²á_lå’fŸô»Éƺ3MÃwòö¾ƒÕ†>ŒÖ£ d ¬L#6„ækOæ¶-J‹éÕ1ä{ïV@ÙµÂ}™’¾—ö™\Šw¾œªæÁÏuݬAÓD8üzØàBËVËò”I2ë§ÐSé7oó˜6tPãZEþ#à\’–¡TTrýBš>Ü>Óo çœf™nø3zÿ…¹ ]:J”EZéú2âzcåðRÕö"1%¿¯¤ é‰`­÷»ˆg)ܨ/øÌR³òQr™á×iTû•X/Ë ìÈs©Ç–­½>‘2Oª”òÄõ|0µ‰}ÒVÉ à€ç ý2æžöp1Œ-ÜѨä¶^H\#ÃäP«Ý˜Q-o4¨K·Û,z“¿´$1n¤C—tœ°ˆBš;C$s~Ù•Óˆ$„b¬&×+õÀsì¥gç8\ÉYã|¬~G`ÿ¥©ö;Ž›)7éXn¡e7I8ô’íòŒæ S¥µÌìw7ùÙÌ…8Ä3•gªí7”«£¹ôêæTfèã&öÙ³cU“_½Ë™rñ IMÂP—üìZc˜òuÈÁQUŽtÅ_{¯AUãks?uÏ\Yy°vOØ0nº$¿yAäÆŸ?ÌÙœXÂÆqªçÔùåÖANFíc:_xª[ðNe"F fêÙ傱Ìn¢ÓϪ8;]L¬“6áÀŒÆ¬UËû®|b;@S»ôGémà6üV$8CYî×ÇÕ÷…ÀRwÏdzÃñˆÞ^ï MºUýãLW {çjµß (¿EݪÛê~îÛ“c2ßé0à¯ÓýÔkíÖ‘K.üýÄb£;°=vÓOHÓÆ»»`æ¬rCýð&v*D´Öäì¾ôŒ{ijòžî>U}Ï àoEÑ~`£nYò®Ï„“øÖ%6›_~Tßãöè×É¢ÆõWÑ‹Jù,Ÿn uõÅO›_N9Ö¶ú,ÖÞ :@(˲¢¯mÂ)»‚ÏÐíåâxè–àcÆUz>a§ñŸ¥é~¡‡/Eò"‚ÝÃáy&shËRÚ”DöZÓ•F¦¯R¿Ï¢›è,GÉž€P䈞Eu·_9æbòÛt g7—âí=gͧ®,Р§”Õ}޾!N‰à š²Àëw„éIï£À- ó®Se üJà#ʵ(,z6dúݬ¨Ú_¡‹}d‰ä"žž$ÓŠbd§D¥Æo3K‡·8®Ñ†iŠ‹'ƒAúMe ¨†€ºHF”’÷Þ“3ÁÀ+¾nd¯-­`2yØs)M9ÁÝm‰Ée$Höñ\¥[ˆâBV^Yó»ññǸˆré®aÔL®Tcíú÷ßcÞM"Ó¯¶‰)e )E„oÏYs¡ÔX`PÁ^å¾ÇàÁV%šªlsU“åVOeôC·ŒÇQ.ÃZVñ&ß0—J@‡.Beá®_ÔƒÏË»¢mîBlÜG!ñœ?Ú†ízÔú ö6i¾þp±(Î¯ØÆ>ŠÀ™C¶Ëß³ÒGjl¨ÿ±öQ¹1 ‚«¥óˆÌµ¯Ïõ™mRR¦¤/¤Ùräå`ˆ÷Œ¹fùqÄrÇt‡šìÿð‹ýœê@ט’*ÎdòŒà¸MÊÞ×ã˜=‡Ù.ñ<îq²Óÿˆ®Æqì1‰ߘ£ÉN7-"£ÎÈ/Ì!G1š@öã+Skžz ƒ~Æ\͵û ACqYl³“‚&-ææSyÓ©p›,û«õü][5$%ðoˆÍ1**AG±ðÁÀ¬Ì€ŒÖ%à"Žïffp¯–ÓÜþÍ@'äöR*ɨVÚFmUÈOe¾(¡VQc‡-bë3:iŽ×¶ƒRÊÌ¢×­8«UÁžOU‚÷X0/_ÚßÎД‡/-HûclŽ8ÇVìë ñ”]Uô› ÊÈIgYüÇ).F“‰CÂb×2ÓùÐ÷±B=q±íT²¦ôÂi™ò8ìh(ÿÎÆ` ÛœžYSN«±ƒózÔÅ{ß ÒÎZB‚¼ÌÎj—+Xk²!V|ÊH9‰Ý ìBLðBÜ·ƒD#Ï$NÚ(ÒÙi±t@Êêð$¦°Î6h!¯¤$Ѹ)– ÀAH'Zæå%zz˜ɀ³X>z‹Äeã¼ë¥eÂê”ðWÙd§ŠêŸR«ýpøNDä4½¤.˜Ç”W$4~5ÓË%qaàp„ã mÎÖ]§º‡Û²ê3Ó›Ùšû“ÓTƒXЃ0èøU,ìö<„ø T‘º:b.pÂ2úß;òÜýo93Po 7¢^¹ac×>žîÔ.܄ֈ¼wÙÜ£Hú´ßb倛Д„- 1Û·Ä´”ÙF ^Á iª¼,‘¥•²åÓGUÝûzä«÷Wôż÷|•æ¦ddVþ@p€¼«¿¥w(zÒb"ß‘«&•-g”rø­ðn¢¢ì—"™§‹¬RC4G _XÂøF´Æ-s”Q'òã‘ÊLסnþKK㊪§h,86¨Êƒý8Ip‹Fû ë°Ý"A™g/ú%¼úNdž3T(üqõEä˜AžÛ—F‰JHöU€ˆœBPüïeɲ†™@޲oæÛ½·gVNsËYTÆÖ9Î3" ‰O6çqÉùª?â®  ãòãìZ¼fuÍâçä" âoºËÐQië„GPu>líSãgÜЊ¹>~œdó‹@·m™¶Í’½ôZ¥Ì‚I˜µš­àž_ë²(fêq²–ag4þòyoÿ ‹pt¡h¹œ+püVçJQ°bô™ŠÌ…±”<”wä6åÍz±¼‰!»“GZb;ݧ{‰[¢ÔÁK¿3Q&ôýW×:úPk<6I"åQÔ5Úuú‰bú#@9&.’Ç€|to»5ÎùÛòçnf§/ïð•ÚH*Mè¤ ‘peslôÞOµ.dš2%^ 0§³hcSI/1Àd£Ä°DŒKýD¸áS„ý€›‡aî&§ß¡uWÎO Ãvë+83SK¨46ºU9U¬µ§¦g–¬[’ÛSˆ¼Sï¢u°Ž‚‚\öi¼å+¸`xt›O8¬ß_ñ'&¿>Ât?LÞ–þkL@ 4éêü¢£\Ìwl&iæ­€p¤Híymõ~™> ¸T?ºÝ5õµ÷¤oˆãâØ#82Ñ‹l2>àëÁß\ƒƒ!ÍȨL«Ê² `¡£ª6ên‡ÈP¯Š÷ÍPªcY‹úˆ‚Îèõ«Œ÷®——M—óÛŒÍÞE²»Îâ’ú¥4¥ó³Wô =£W2[‹Ÿ^ÛE†T—<>^[ªH?¿-ÍÔ$fuìX¸Ljæ\§Cð"’Cw%a1§òº&©Zý–Á‚ÏßA·"ÐË?Ì&Ãc€{8*®®Bˆ‡Ü‹åýÖ0¬Wî=ÁVǸ²žh$D.5κ@‡)Zdq9È1÷ÌÚlεÚþS|Á©|Z3}>•ø^jÀùT8¬LnÏ3nÓÊ~²Òy‡q#ýŸÍµå+X|ÿÄB„VÝÊh¨¤¢Øñbž]BºL\5nX Š"ƘuRú©x“m§=B6†äëÔCuÂWð11ˆe¢"^r¿¹ù:ªœ 3 l5½E&£‹çœô Ñï¡èó0 Š‹—«æsNîlŽäCÖ˜ÓAY—dœoò Í€#d"âáF×D¢bÚ?ÈÀØoöeô?•}<\ÿëBH#PŸ3ñUzLo7µ/Fgv{©Ok‹b…kU?0~]# DËýÉ©zE±9ÿ²òV^°â &—/­·¹Wo¶óh¶y”:9‡s`~áßï¿&Ô]@½¦n»–¥néÊà²B ]Ø>$Û©ÿˆ[¸D¿=+ù;2]ÿ`ÀË_ÜÊ ÈûZ.ZònS«Ž;B„‡Ú&ï bØW+‘/šO/ÀB~ÐpY/q;ý²Ä9;§VX"y&5þÔó63º§*¢ÜkYŽI¹`!݆­5.W"ûqOf|ÆIÀ=‚-‚g~ßèoéfŽS}¢„Œ› íƒL’¥¹9)mP[ƒ~jÚ±®«tU ŠL""³9(Ft·KôÊžàÀ ¿*‹CœqƾQ©L¶O¾J~²•ZEPGÏ\³H°bíOdqËÃé­Ù¾›–‡šÇ¼q¼à/Ð/Æ9…¥è˜= Z¡H¡<@‰«¡ÅO/P¡rõ0H xœ„À§Nù_`z{¯ö ˆzƦIš 8ùp_2Š­Kû¶4÷98aw°"Õw‚DN^ás5´Ðì†|i~y¥ôö_ÜäM®Ú²gêâDÔ0IäVÐ…ó’ÝzßuÌý·#âJœ —mk„Ýï’°á_²FÃìÂп1Lû•wW³£èå€RDä`) ÷P|ó¹»6üpê¤DáNVÀÏðl…=óm©Ø¶¯%D¸SßÿSZ~\oÁE% Ý¢)•`e %:§µNS‹Ü÷Mw™IÂÉ|~Æ9,.aÌÀ™+fÚñ«Ucå1€Ò¦}ä–ql˪EF-Ÿ‘¶j"TYbÝ«ÿbq1¹^]ݖC粯eÀýÎõñèÝF¡AÈÄð§86ô÷ÅÃìm5ŒX¤&m¥‚¢ÇÉ”çˆ.fU³REv…Š&_ûÄ%iÎí¬Ð`´NX§ªèã9›’š¨/Q\F" €Õ‘z² ¶³Oܨä¯díf 1sxo±¡ÐÕuÂ¥}?|ýÉLÌD£Œ\Õ#éÚrmŽúm§¶ÿ45þè8²ÇÖ¹y4)_ -0÷f™Ëœ[»ÑÔÞ¥ý¥¿°”ç`pƒ¶FÓ]¡üzÒ?DØÁ¯ê¶fUª¡—¾¢ç}ó¿5ÇK4G¤R#YE+QuW lv€¬è• bá~:Ê5£—Ñá–0Д¨hY<—ôÄ„äàkÏ÷¶Ü©rã ž¬¤0õÁ¸®õá¹3óݼKâ+tþ4m?_ìøæeVŠ*ÀGè(ùŒDšÎRÑ aÝ‹ýL šuØêdÕ§Ìh½[“ÙySÚÚ—cƒõYaŠìV×ÍU¸—69\`›1Z?UC/ÛÓ8ÌCÃTûK|Dñ§1‹ ~™ÃÀŒ3¹Sr{jc(ƒ £><Ùä˜4j<¦§{Qp–íÕ*äC¸vC¦Fç»—÷Bˆ3ù³~a”/AÁÛÜØêÈùâYw0fsl¦SÎWè‚&Q&„|!»f&¡¬PÐGÀºG´ß*™UE½hì‡Ì›1ÕÝʇUëë¬Ë9«ÕxŽ˜B D;„YçÀxÚB‰ñ5 ˆÖßÞÄs°¬°Ô¯Œ®Ð+Kpß<øþÁðü-=Þ>ILÑ`ævã¼FKÔ@ µä;1N{ùq¬×Í2|²H“¸ AhÝÅõÞÉfLjLõýþtr1wò íÀ9Øylª´¿PbÓOa\\þšÇ£U™É@$´¹¯Ô¨ ʤƒy)õÉ1v€¡=zµšUˆßyÒáõõ!Ööù‹»¢ÂRýeè ¯ÕœS£6{£Â¶ë«ñê™ô{P?b~Üóýd_Å,]]/ÛL%ÀÑáÀFáÄÙsæÌÛÓùE Àõ4=yð^”’èj¸‰­ô½>uCChYJ[ ½Š/5 „kup€9­ªHÔ¹Z+LKûï\à9(U—5½ÔBÿƒáú ¥ÚWؽ²ÿT'À4Ï(¯ns žn $€§={ç+‡ƒNE‰GU!Ê3pv1õÆa™óTc-_¡ÇÄs†‹bå4Ñ_T„2>cÐWA–¡žñu!N³Z‡>üû’ÖÏhvEã~ªaá¡—š‚•Ê>D³j€d†f\í¼ó‡:Ϋ—›Ó]0—Çeš»èDôì«31ŽÎ€wz_¥©Ý‘³ÐhÄ´é´ïÏ뉆m ØÊ9 ý˜eMxwk6´ºtmkçü=G>ñïí;ÁÕUùShiý[ 5ùÈ?e°æ¿zb{’ׇ×,` ÛkÌæØ„’á< ª«nŠI’ŒbΤÿâÐ ŽÚ3JÏGò דM,UFÀ?J6Ci§j%&/‘¯Tã}2ã:²]Õ3¤õûñºôά-7ŒÜÑ;ý¤2Ù/b=¤û€i›U8¢T°³ê¾ÉèïÏBþóꟑviÍ k‡Á‡Õ7 `­mÍ-âÞÍÀ´qšy|^&º¦vem ÙgúFùXŠí¡tÊ1!6þê!ŽÂ5—yÙyâf1fHœ™20°Ðys¡Äãô¤É<øB‚HÝS‰AMgœidABgÇþ¡~5°ÎäVfz›uÈ#½Þ¢`ü"¨ Qö„«ÉÍ‘†v0]À?ûÌdýÚÈØªœâêÖÉ{Æ<Ša}íü@wVICŽŸa¯Ñy^; V ¾^ ƒñ6ÏH« iTäî Ý•=ýÊëV‘QÖ¼ þòpúãá˜çíØ’, Ë‹ÌñÀ,‹3zúz©×SKKó¿‚7›Ñšq$Nʧ=HLÒúÕM²ðîûÕKSn¼µ NkÂõ²ªä´³XvíBÃOŽd;S7.?cPÛŠ8DX"êš3â°ÌBÎÜÑþ/ßr?Ä|™nãVÄ/$Я‰›-¾¡ÏÔ'™‹Ò+* mg7DH¬ûÓ‡T}p û8JðV,…iL„#m=?Í û8·|ˆaæhºz³z¦X£–}âo“›yËñ ÌB…%aØÖuOf !j«?º£!Ån%„¾\›® Ìð¾mœ/ξºÙEÃÀAÒ8sQñ2b‡†öÙÔʸ4(1ù¼` –dæªE|æÊÒjLq {˜Â8LÝ‹š2"Ôô»Úp‰\>Ü&f'y®ç@Ù×âA…û‚p°£©@A¦žHìˆîå!˜6ò„O¸õïd_gÔ,åŽ-ÞC­Zï Û:,xfÉ„X©&fåùàp‹Ì9öZ‰1¡d¯NŒª¥]/Œ×ú°@¯)ž£Q\É0ftNµ¯|ðíg[ðI¦ã¨žÞ[ðDZ|ÊnèëGEIPH]ˆFeX‡þ‹$2>*¡mâ/ÁüŒO¨*ÞWX—`$—áôPnM=ŠÔa¤Xc8³t¥’Ü`3D÷cˆ­jE}ÃõNaiÏzã•–véf¤V bUì:ø&30 DãJfÝúkVžZÉ[_Óìëåº$`€:¨9vðScBÜ=˜Ä›*ÇÓpä:•Q–x'vp‘FœTð×ãTHÏ1+Çöz^zVÏ/Gó¯óÝPÿÂüÚ·r…²œÊCŸb¬oºRÑI>×Ä'Rdp¬È8›®‚wYIXQ{(c¸2’ëZ³õÿ°ƒ“Êa±þ]ˆ ¡jÕ⢦Ý=j h™/ƒ .•þ5{örqnˆÿ¹/ü=b”]­"¼hÅàá C¹LDhZ\EvöïDËûEò¤¿ e}µÔ™v~x™³ý`?4O†(Ÿ“x#[’8^6P´þ±Ü‘Ž«„tËöŸÜ–¤ÐxÒÃQÈdQ$zÏå¶77Ž"âHÆM™Ãý#é• Žà’/½Ó׿÷f¿éçÎ á/1ò§µ©ÆÐ T@ 0NÒÅ_\¬=K85[½…Ömaco¦ã .‚‚“v¾Éy¦þîE#YvŽÏÌSšTo®lvñO†ÿiw—2+³§Yþ& î]¬óƒj¯”Ïú{øzM›Å•î,/†þî­•†ò/ÚôÎÀ˜”*Wåx ú™#ž™Oÿ5<xfk‰(ÏÆHüð†ŸÆ„h½½§Ò€ß«‹ :L£[KhmèÓrƳ#š™öT¡lÖ1jn¤QRGW¾\öè ã…Ÿ¸¸WŒð)hðà¿Ó?á”`È^¥äÀï(â”È®kàú P"¿Ÿ°ÿ÷"§„ßÈüã0ì•sz…DqÓ4ýÅ«B†z{bƒj‹VFnšlGÔnºÿ¹ÍC!—Yûoö_ÝÓKù­2.hE\_òÒ<^®h%›É‚¶£„ÓT@÷Æ“ÏP¹ì¬ UxÊî‡X‹V.¶·ô 4ÉòåEì†cU#Të7(ÇÒe'íuN¯c^‹Ü]#è‰ Õde/#D•nœôÁne*™ô¦DÑx}m6St‰ÚMtæ/ÄßßXùÂl^¶2RjýŠÅ}V­äÔ£‚ü(»`ùçÖ&¦ÆzûÌÑ<^<òï! õϧ»ú8‡½ÔÍ–îê¨ù!š¢ñ ¼ – ;WÀì®ÌÿR!$ÏÈÒÔ›û°Á“êÿÅ´³ÿ0²·o LwÉ"1E»h¥×›ÂXsêáÆ4Wg8\еpÓÿÆÇÿ æ,í9T꜄aX`1Ói蹞S@ŠyÖL4ëZVÞŠgÞ‘ƒy`éŠfüß ëÞ!Û24»xf[ Fš!½T÷š*eœ02ÁEïvoÿ¾Ë¨µŠ^³ùTFÞôšøc¨=²çæìޯÃMMùãGU–èo»N)tÀÛJÖs}a’´SZ‘ÅjرÀ1Òùµ»wQ{s}p«7#ÛR®*ÌÕÝ/at#í<ܨ‚ïAu{÷©¸°ó€ˆcãg?µMé9³\ÞʼMýõ¥ô}5ãE‘l96l‹OCœáÆñƒ\2 Ñæsu°;]ጓ%o%a¤ÈÎÀÀhãDG¼Å¹Wè'¦³ÚÕ…L¼ -iå¨ôkÇj{"3NÇ©Š¾þ›ƒàÏ·V¡7o.Ü·xÍ=l¥†U7îÃØ`^ý† b”riˆÐ%uÆ÷§[š9w2˜2Ï>Ä< ñUœÕbÄ©P•Í; y ÓüÔhJ|zĚɿÿ6³šŸ±H¼(ÓyC9CË¿ ½«FÓê†ÜÈYÅ-0+”©µ›qÞìvœ&4ÎÏ‹p éÀARÌYÉ2kÚËìCÞí’ÝzH@†Ÿ—ÊÀFXv/uèÒMdE7 ? çJdxÙÚÃ~¥¾¾À¡à¯‰Á»÷õ>."ÈÄèg¨_ðßy¤eÚÇì÷1à2àÑ©ƒâ~\.c×Ú»¢;.ˆ3LcrŤËÅÔ_LrYóL.­à ¯eëÆØÝCm†ª”ÉŸ<À¢øq4ç;ò/‹‚Z‰c´œlhTt¯ä¥BÈdÀ7]~þšÁ—E›å- £™>iò\ ¬FhSKfGì…EKéEè&²mæãÄXK—£Ž+@ Ò4¼§€„þ€à q§¿1ßFŠC^̈æ W† ¼£ÖY0n™ËÒ Â0èø%Zz¼}?:ä×­cÙ˜ íðb·Õ˜Ä%¶Ð?) 3žÊŽRo¹ïGõ稊„lýâ¿Þ½$õ§:fÀyf*쀴2F(O¤âî š«+Y¦ÌF¸Œ öÞÉ¥]Žý0/öYDÌËh1Ó6±{0И…åÊ¥ñüÈÖ`=¡kêQmBʱªM{›My™?+þSêÉþ· -3 ‰x¬Ñ,ÀÃ[ƒ™ò¬)våz&ºÒ âú*â6=?Ò¨©qtuVò•§J‰c PG®°ÐÀ$Wÿ.›ö–±Y¯Õ_!ÀõT›q£Å܉¶uμ²>)2+•š¼(:p.‡èï%êv<\{{IÓ˜(=âíƒÕŸ|"Ö,XþDH±ŸÞ¿Èx~g×Úþ—t—›³€"TÚY¼À!Ÿ˜ÂøM™\§h¸µÙÔ£%%ßìàg^ä½]ÿÁ%¯+F’µ²´#I¹‚2ºÀu—XÁô¢ƒ@X½qEÉ? >Ò‚fU:<%Y=ŠÍê,[¥ö¢ä…H´7Ç4“ºá—]ÊwD8°vhgœTÑ•Ÿæàcà«‘ü.+Ò@ü†R¢ÔV¡Þ4ï7*SyMLN óÊ[{Òñ¸Þ“´È$…Ë!šÒÐ)sŸÓÈÆçŽß8r5vW>íå̈(/ìÒaö¢] ~NÍõÜ8ä&èjªE…wåàÅð÷Z¯©Ä]ÉÙÍyµøÍ÷¥ñ¡‰G 5ýôù¸xˆy̽‘´'‚.ÖX8ž˜å÷û‡i*>>“ø¡ÑW>;f B@·‰ ž÷H|šî-f_Z‚ùL‡µ°ÜSëñçe’΢@KQ"å ð= =ùy¹¦ïºâö´"ýñ]I¬ ÓrÒ‡æ\¾Í_Ô£äqKœÊ\hú9Û°ꊈ¾yP.V.[ ‡¿ÈW-ÉßI­ciCï4DKß L£$RqÁ÷¤×úñp>: áê\n‚(p~àÉ´ò/#yoèsVÅŠâÊÜLXáûXÚ´Z%¬•Û®¢“GB½²t+jó_pþÒ‰BêÎ>b^Uÿ¸ T?»% -=9[Àòìþ vhjÁH¼AGjˆ{Ĕݽ9kâý>Ï¡.ɯk“J(´×)õúú‹ìËlõXÚ­™9lßÖZ¼œËewsÆœ&‡>ˆyцiähA†ü×–Zßb9º4³¢zÖ20 i¶ò„Q“fí…çÍ–d‚?ŒYµ‘rТ·+`:aãoRòVÿÍ÷´V Mú]‘¼S ƒ¤³ÀÝ<´W.$$-ùçu6i:ÐàœÚ[[ñÌô0®˜$Ày( Pд`òpKèùæG¤ˆLEg êÏ|À8d>°ÿ£vÿo2¶þOrs2»ÞÆD:)œ­K&÷wŠ™öZ½àG>v@9í²Q“j¤=îPÝýø…ej¯ÄÅ®o Q¯y©¬Ôw]}¾p,ÂcÜ¥à¢[œ|O\A…‡fk/âH±àì’ùO»ƒ¯ÃñÕ,§œ8{Þød6n4É å/z ™57:äà&"Nvùì<¹çíå ïÚH$aóÎÈ€£¸„37]—å†Eób[ÛŽ‡-¦—”ïJøÛ ÏàwâiÜeÈ8ÄÞ+Z]ÀÛÓE”Jl2"`‰Öµš­B¨:´C-´be.)7@ôh ]KÔ{2®kßBϤÎ7s€›Eèˆ|›.B6˜ŸlHÖOY†õcÙ§SЇ/“jëÐFoKÔpCm‹vVðýø‘æÝ«ÞùsEi Æêœí ëndÀy z#x é—ÿà1vyîNéùWD“#å;JÚ€–Íb‹Xa¿yEC©/¢«Tÿ%¡=­CÚù9C)¹Z¥<£'IþË +À5ݽSÿŸµ­‹Î͉åV€‘ÁÌ1Lû˜!×ù¬|Uõ^ 㚇Ô1H ’P¿€™˜•y6Ó¿j¼$°£—%ž´Üei,°#Ù ±€Æ”˜Í »ë­ÈJ~èø¾£%Ù$ë ø.uÒÌ,Ëð9±46=C2ÅûÅìUkè^äçÌ'SÌÄ=.ÕXåB!É2<ܰ›{ƒEMãýÈÐóbÀ)Ÿ]Ù³Ž=Ú(OïÈùÈÞ0eCzèÃr­Ö.…'­7®9ª°²%÷j%öÆPRAísºILù#éöˆÝëñ“áˆøÄÁTò1c´Ð‘è­/Ödž Ù6g¥µúügT|£•¥êNµÖ‹Ÿme2Û›TXG5•XT**åŒ ó½)ï¾™éÈò¡¤Ò$Ç&ҬԨث®ÜeˆÏ*åfR‹”õ[‚:*{áóçW NpußÈÈhv•S;&ë>Ù5±)ÁzÊgœ>ˆ°i˜ÎZz%D·"ŸZjPKÓä['dq•œŠ?‘zSB‡9µïž=F;;§1„Hâ£ç• ÒÒE¢§/1ÿpp¶äbN:^!kÑd ó‡äs%)Æø¹q?ëÒöëù·Jgá™y&ßLžÞÔ5¹h/'œ»Ÿ`ÚþXE¢ÿ;—žTÇŠEÄy¾ûŸï<⺛Älwµ ä¦Ñ{vðo:Ñ7ÜiáxÅ+_´²aÉ1tíÝm[2& ýצÕ8H ç?lÞ¤&5è5Ò×L»j©³ŒªMœ&éQþ º´Ń,‘·¨{×4ÆÔôø4DÁé ©¿É¢ºÄ³Þùzü¥$-£¨{Óc¬%éçtK,nðI‡¦ô0éŒïÄ¡rÝgZí‹9!dADå·8ó! f±zË–1Ã=DHNy*|-Ð¥8/4ÅcvS&¶Ò[´Ù©«w ¯@¡b•÷´?'C×åƒC=ìûÂÔý üÂ*Aç|‡¿æþP‹"G¾ZŸ¾«M7A.*EàËÍ{³Ÿît~–0oyüO.‰Bß] åZ¬Í¥GÚÓ „ú˜´LœÎŒpŒi¨Ö¿Y\PÓü[æ–zº6m®•z70ÚJ[OZ’tg^ã»ðÊŒéØ4ŸPÊ»>¤”оoŸ5’ñê•@Ni © Ž2y©W®$$\5c1§^p¾é+꣺@·ÃôtÙ‹2GßPë×ÎT¤ŽÌ±°¾Q¤UÃÁ<'M†vŒ>¾CtRɰAÓç$Lt[/t- ž`i_>ÄýÁ À‚¹Ö¥~@z;G/s¥y‰e·±£âRþÈ÷œîÝën_”×ÿñÛßyGéé9«Òþwq²-ç(¹T8Rp9¬t^¯òAµm" •‹]œ‡ÀÀJÕ*ýG[T-9ÅOó=¯ö‡;îÓ-ÚK7µ#¶Î"´ AkdÉ7ß,TLËéá.!ÃlÃêRÚ#-϶_f²+^.ÀHRQ ^&Né9»g®ÄvK‡*ëh @¼î­EÇQž³¶œž3&aF6Gòû~ß0>þøH‘μðúÅ÷#©ÐGl?Œ &ÈÆœzôÖJäZGŽèº-õ¹?U£Ta#ð°âÁÄ ˜ê®Ÿ&¸øþnk”·â}(„Õ‹Š–b-ö¾`ŒUi׆K·Vß.ÝK+DíJ2Ðä îét6Q÷•FÄŽ@-¼ÈÔwêÀ4w•Ë'’éÁÔ .Ní‘E˜þÀ¶Ù¨ ¼}E`G¡ÀW”Sü|²ÑXÔf“š#×§¸«í~'wìt‡—>sò&mœ% ã)ãÅ":Ù;šèD;5qDj=Æ`>Ô\á”**ÐagàÎ,‹’¦È/ µÒBž™ñ¦&€rƵªªn¶(:‡,TÓiLØ%ë)&å}»ÇÁf0u懡DäÖ"WØÊáI{D#B´£ñÍkÛPã‘Ì9(Ã5þøE¶¾^-~?/_Z£úëEÊÐ×k˱텚œë¹÷Ep6ð¼?\±©Œœ†HöX<Û²8”¼qhÂÛØ;ÐŒŒª@¼ç„׿´îÉêSY¬nW¸°òëËLä ‡üxa3àËlâüOæum2z+Zàcã Ô ÐVð¹Aæ³`ˆ¥[¡ 5ý2ÕôŽ]–sW#GC(Ô€{—(1À×Lÿ¥cŒ[‰É‰æì”!H }m¸"WXYXMŸB!ÇÉ÷7ÛÑ0òw༈»О'#yíò^ꋳ<5†4wn8ÒéåÁ"|Åi«6Ë-òç·´GXùÜOú×¢JÇéôz¨PÂ!Œ<³Z7ÎŽ§V2®eþ2QFþÍc4®=<_I/y^󆺌·O ´ÜÚ8;ÄÌ? áw!CˆÖœ‹ZýÌÈ<"áj‡àm>yÜzú=°7f︶ø‰G*þñĨx$¹¹ÆY¥Táüä*^ÆZÑïKfÞ¯oÀVš ž•ô/po¾¤Ó.·ï¦H‘Yjeωœ/2/VyÆÑ#F‘’©¿,ÅT­¹{ÑšÛtjO¤ÕUž`«”ă۫öÎ/(Í´Õóüú;=ª¬Æ¨<þÙ̳¸ÒÁ•¯ô×SJlçôh–¡8àßêÅGæ<ˆf‘rŽJ5¬Õu´ rÌS…¢ë(×ÅR•(õË ›§ãÈ„hãwhû ƒ‰ZµM²ÝT&V*ùد0Köí¥Nœ’d=ù&õÃW‚iu 0*7Ë ºVºJÊÎêæ@¦Æ•ŽñVµˆ­°ê_;7»¡+{Ë"8{KpvúD£­n»]œ&ïëÛzÞ|`´D«ŸêI;e‹wg®+æI½»?è_FÑ7ÆÙ_|ÓØ°ÎE…8“ ¶* åKLá¥ì_ì +(³E¶p‰¤ä®Òáõ©È„¦ˆÊ)“†Iì:¯ï>‚ †˜ŒŽ>ZMK¹7y'™J£è ³î^Ãm_¹£’Оy¯QMdz <Ÿœ5\çžšýÊ4pM8ЉvÑîZ -þ±ADõèRD­ÅÀ§e¥"îóapK±Ÿî;_{DM¹gÚàºÂÄÆ¨6àïZiðs¾áiŸUéÇWëÖý‹QN+IÖ38·ÛÑàiF•ü£Ò  Ä¸RÙpm­Ø6š•ýÙ2‹é=Ó8•M½,!-,¨`í[„ëz_8ž$ä?O¨Éìôe‰úsAeUÏU±Â(àÁ˰ ¸¶ötrò{ÀÑHô‚KYµK·8o½¿¯4r{Ë\Ë|@ܶ¡(Nxƒž/ê½·ó'y¯Ž+P”¦é·§"_$Ä:Ž]+—~æ3Âgqâ0í#=»ÆOŒð9’ÆHE(ÐÈFKFòOžƒ€ó…ÕЈ“ÆÁI‰ƒÏ“”2ª8 ¥vÐ0ÍRý™½Ã¾Ç LÜ3e¿v)Jƒ¡ü¢6õþS!Nw›#*vøþRBUbg„65œ$a¾¥«' •AõW®*¦ ÉÊ ŸÇ‰Œ0lãZP{­ïÞË¿”î)"Ü€d ï‡Ûsê°iŠÒÛrÍͲ“çûÉMŸÈ~tP.i'¢ð×ÒòÑ”d÷¦jÀxrጱÝèñ5ܼ\Nð93?ÿÀüVÚ­çÚãì.àÓA[ «¶ŸÅoM¤î\©šÔÕæ)ÀÝ {[“Þ-ШÄ#LœEèÁ=àN”fÚ¸Ïˈ¤àYÁ¦F-«¹ §œ|yéM²ih±¦2øÅ}žV_ùioúÀfV¹ûéÈab!±üœþñu~@?_,ã%)ÝT’ü¡*=Í|PÓŽê­½­¿]Š‚D*©ÎaPëzF9ÝŸ¶ã…²ý 4“ÜͲ>±r⨖C¦ÊÑ 3CØ]&rÞ Ë¤Æµð¾L—‹úÓÊðOž¤Ÿn–‡ÈùšEgEê%/ ©–Œ•†ãÝ„©-Çp[Ýh-®AQŠ ß Ÿ2£Arôºv©„Ú:ݼXh…6/ð¢N¼C›=»ÚÏý„˜ëÒŸˆð±þ«Á…Cެ† UE%ó&`—¦u)š –{Ó· îî?ÅxѾ™ÓS;Ùq®Ù¿ÉÚQýÅ@nÖàÇûÇ3V<ÖÎlÃ’7Ê?Ca×1ckϘUZ¿„ŠÑ 7B¶6u¤ é|*.â»]®&@`¯UÙÕßò<ŠïáOñAI£n\”ÍÞÂwÂÃHpÐPùH°‡Z_õBðg÷éˆ õ†¼òµ"¡ò>ÎD4žSžpøN }ɾÇÍøV Fñ 2&ªAõAqšÑ¯ˆÿ!WÝ uÝ {GD  ‰¹Œné*}”p ƒÎ¾êíØ¦öXu‡º‹º<ãª^ޝ±ûHkã`›žûŠB’ôÀ7Šþ]$îÑÊ«QMÜfÆ–Øã)JeyßTˆéCf ¬×PÃÛ ” „þ+"­Âgobé‰%ø‘û¥7g›$T{»ó_‘] ±9ö Ñ‹[!i!Ò"ñPD6…iª0)€¹"[¸9ô”X„¹K rCR²ß` "°bV†ËQO½ªOŠ:eù’ú·ÉJE¸G^óßkmã\ó)w}Eðƒ%èP^ÀÙyõB€zç~WäSR_#¼Y¥@7ú˜gŠîlBSt®·E¹Û]ÛU¼ ±X2{¾ÌN¡¨ÞÆ“X¥t¢íFÌ1ÕdTžÿ#-’¿Ü»+¹…÷6>4õœºú;Ýq3‡6FLïÛ©˜3™^ÚB¿Ô©†}2ègûë}æ (ï“G˽‘1T„ïep‰"—Ý‹}–a3•5âŠË줩w_`©õü›Ø°mxþŽcâèGãùÊX|°⺠.½ã1Dôò0§XNÖ OqöÎÂ*“ lTàDš8`ü¨•J4{uˆ2š€—NËìÚpûÀUfcu"ŸÝ™^™&]øp¼‹ŒÆ4­¼jöE™'G[‘#I=F¾Ä‰¾ëgë—¨ÞשÉs 7ÆQdϽÂ.\¥‰Òç•Lq6ïNLC¦Çóa£éi‰#›Ý¹¥“Ì*€ºÞžé•Í99 nœ]<·$´Ê»2ƒ¾Rƒ±Œ´Wå{ ,0.åWýOÛœVælŸßNÉÿª¸_`Ð+§–”úºGjš1à x©.A{¢6â3dtÈ&3Áº¸|_•xF j+@'“¿š—º8oÅ0&HâY€!/jX,Þ'xÆw ¿³ÅѸ£t­¯jÛ÷Ü”_%ífÔ@³’,_%_²?Øöâ¦[“»"V„µ1$+uu—3E²)ºbÁâÃ[ÚìÑHõ²ó¼÷9›ßß?y—®¦—$[ÆG1n¡WHNË•ãg#OÐ.‹ ¬=)¿(-ÿ@¼ ºŽU#M”=³|ǧfr ¼)²Ð—©VÀñqwðÔ*Ü´sÍèѺ5´Wú‚˜ó½"Î]P!ï‡û4IßG؆PŸ÷µ›vÀÛ®D?3oî-a]~í(O3[È¢kôbÞ–û/½Rä·V]ŒeµN£mP‹Ï WŠI¢fR'ÍáùvŽþ„”ñ»·Ûƒp#!˜\rƒÔ{.@²z&„(ªïç_k/‡d¨INX'W7XËœ¤o©2ƒkÌȵVJiõ­ˆ R¯ÃúXiR†‚Çp€óh‹eçü$Ò£®¶t´£!Y'(DÝצî >“ˆøö1ÎrQrM÷&å‘-ÜÌŒe-ÖÉ`„b0=†Xàò÷³QBînù;dÖ2lM×܃'Žqîw ‚æº6ŽÙUSìþ"“¤ä/ƒ¼‘HǬé{}œ¸§$½³¯föާ3¡z¾°;ñHb‘2–•‰ó0ê¿©júÇ&Pµ¦ÿ95g˜¡ê3 ›ã0ë‹E$ù5D&46öi«Z¥;Ìî¬6±DUtï§èÞsR+ç%懂,·Ó‘'33g‰[¿¾–j\ÆSªµé³Ygkð…¹q2©ZÏÊMÄZuN£4éë„ÖüŽ?Äø—Ekíd»“µ“TŸðÕ5"uØä*fdÅàìíIJ~Ôš°¹e¾Á¨.Xsvk³}…`IÌâü¦Z¯aéa¶4⦞ðYuLcØ’Œ"'rÐpØ?ìo¥¬sJö^@¿ÞR}œ±eßduKÿ!ê?ð¯v©=R^ɲŒQ¯ì°NÈ2=ÖɰØSš4ü<ØÎ·•ŽŽ»þÔ1¸ùOR’÷ø ´»ýÕovÔ.zŒ½ÎF@/n}X-9™ æî'¢Äay‹7ܵyŽé÷Q!h·m&‹䤚ùl‰Ò5ò¶©n]¤tᛈסóž¨dt™Ä혔¡­ó=A¶ü.aM€‡ôÈNC{o<³-¸9 ãÇF=¢-pV¾v¸wc&F䋸2·îøÜ7ìŽé½þ­Œ'ëßד>ýO#n»¾…·ñ²Ö'A;2IÒG`OVì‰ ‡?ì8W‹ïv£ICd§-MHb6à Hâ·]…4êPºþ´á‘‰ŠâhÁWÀÊÆ(¢2yo¼rqÒG<ØŽS•ݽ±ü:¨ß=X†7ñš‹ƒ:ýë_eZˆ8îÍhN#·,uÎï¼ï”4JÎjÛãUŽÇ/çÎê°c¨•ôç?†v9¾ æs3„ˆ°[A’!¾fÃbÂ?è[9)0¿äÁ+•&ÿ/ÞÃ#¡Yía qŽqÂE—ØIúv6‘ST¤ –]Mrì”Úa 7f«9ª¶„á4ý¥±±›þºRª ¥Ùœ¾\‚Ûªf7æÞºJ9à QjCPÒ–¼¿àT…š‰Çérz1vþb°È7äìå1©PÀ=1ž2Up2 ·[ÒåÛ¦søš²ïÏ6î9L~ëvbKÈ@ú†å‹/XGTËkýýv0AëäTNZÁt­ë!Æ/fÊO\28–ºp—‚Þ4¦u·¢ÇöØË’OÞ]÷u´ð¶Ž.\/x‹½êðmŽÂ\˽X'À°?ÖÍdðÐsó-_”ƒ–DåìlQ…ºÜðA¦_I¨È1t©®•Žv¢õ¯Fž‹vÈ3x,_û‹×±»»> Ë|—†Ã¾*Þ^zúŒ ‰&Y¥›Ä!âˆE¡ãNáxd.õ‡¦Ö}ìß³õë@Ò"•…4z5gÌvƒzNMh0OáÅ9³\4µ›Ž2“EF˜)xÅäß•ZEN¢cÃÊ]qó1‚£ùüµ¨¯×¦R f;ÉÚ@ &ò…ïFÐáêø¬±ñË€^9†ÐKÅ…?ÆH•äÚáÌ·I»Cœ³.©vÕÜ6PÑ ûœ˜„Õû4$Îæ~ò]ÒGgQÉõOˆv<&—°m”‹íI$–îãÐj´W^Ž‹,¸&;[ÏO¡`‡ õ+gS ƒ0q‡õ,>‡ ó˜µÊÈø¤ÔGXMÙ Í®¤¡Ï K;ñª¸µÎ¶Ë4ˆg*¦½“‚ÛÁؼþ’ûõÚSXD<¶àrTé8Îg‡²» íÒÓY8sz—{^¤(’R Xøûµ<™KW8#yéI ip¹€á½øÏŸL<^ ön†î“ÿçþTmåA6KË7!¶7%qúyñÖrúÒ`ÁmËß>CvçÿVÒ§¬ZÃ_ËÛÎ,œå#»æ!†±<¦g›0‰y®|aÚnh6“$ÆËÇÝì6NZ†prfÀ´Yî{,þXNR›ÿÜ錢óÙ0Z§M>ØC ¿:Iþ.ÏÙļŸïÒ&þœŠ—:Ðr«oq>Mð-ͧ¬SY²ÖR>v³íluýSºXØb„bdbkžpØ€m›2$+tzg»+EgX@ÓO…*¨/¦°1í$Úà/l÷ˆ¡{“hQ•Ûr%œÎû,5ÁÒnwÌ£Õj‚|2BžvÖÝi¶Sv†¹¬ÿVêaPQEKÀ/l`÷U®ö¯®56»ú#øá¥Qø­Ñ{d(âtCq^ºNœÖò87”˜®ðçîOæ…f"ÌŽnÑAî_ž4<¶i\KáàöfÂyu˜;õWÀJÏÁ’'¡­~lDÀ)ü~݈m$·à)¹Ã•&ˆ»û–—!™§³'–ÒrWÞƒ§@"‘ÁOìßy˜ÅÉkÚÞ€øVŠP….í09i 3)‘ysÂÓ, —e¶º°g;Çìý»ûê˜ &8C9·ñ%‘ÙgÔþä¯Â=âÔ¹Út/BiÆÉ9õü2£€@s U­s?#M[À:XêçµõÌúò^Ü…RÏÈÙ\`ë®7ש|¡7éÔ¤½,ÓJïÖd³ôö#&¬B™!×û<#Q„þ™i w_VnÂX0Ó#re&÷çõ¯Ýq·~a=ÜOÆ>ßIëYæ3zÀ¤¶Ý‡.wlœÐ̸a0S"Øs!$õ—ІÁ†¿ ˆç3Î8ä×ÁºSxÅb›ü—€`Y™Ô,\уº×é@pä…iÚ.Qƒþ ®«CPº)®Å‚Çݒ寴BN¨b›ÉræOòHœ$U“ðuUÊj+%–G”Ï1ËÓ®\"š¹¸Â˜Àn½ðñYí-=}üsê´‘ ÿ[ X|ÙênoÄ]cÀ—f"MƒFˆ %‹)÷ ®yb›TH3’˜Œò0¯@w>S39MÙ›¡5mG0«"Ʀ`¿®VH“Ý­{}­ÑjÝ!ӖϦÃÜ€Râ÷IýYJÞ /ýÓfÉ›HlU¦é‘äÒ,Ë„? 3cgjòõ²Ñ·ïfÌòñ-Å cwkÿ°X× œvÜéluHr×,‚ Ã?Ôœ“TÍÒkmt;C¾Õص9BHIÁI]®sNˆZ}0ßbD¦òÙ{ýN “ö›¯9ê!æãG¤|î¿€?s¹x­¿Ïg‰»Žn%cއݚŒ‡qW¹4-ÎÚÅMHz²iO4 < .>€Ÿ&×áó¹ø1%äh2d ~-‰8ö—Ž%Ý P³Ø¡'—˨–2¾Ò`‘c8¨®u{e~j }ÜÓ¿Ýÿ>H¸GQ’W6Ñ1 IüC‡óíácù•ëõ_ËB\ïW)Ù›ØòÀrãl1#ç\ØåÞIÀ1Ä&4VéFÈÈèŸÙ   3ÐÞÅ%—µÆ“2‘§½ÅÎÚ•ÜÚVù®‚PTçîgEŒËfaÅŽJOÀË_É3Ð2*qk,Ô0£­HÚ³ÔËéÒ?- #hÏÄáõI\:’”.Æ!Ô\r6Fæ”´¨Íý*³ÿÀ™¢)th')ª:AOå†XÜ‘pÂG¶â?5ļ_ø0 ôbòîôÛ¬_ÑX¦XWù¶ÜQ’ß±iܶV!ʲñ°{Ò/AU¨éâ¶8CÞ^ÁÈ4Ò. 5Å.4H.­ÃkL®*®‰§(Nb³ÈK`kÐ_u¼11 -Ó²ÀŠàsO¤‰Õö¹¢Ã‹"ñÑ€>åפØÞDä«Ô–¡Þ ļ–Ð(F?©Î• þ釟=ÓùÐßCõU¾…C7öÐ_|A©ÙǨ°Òt–‚ÔŸXÝ_f±*e Ùò&ÑßeÍú&˜ ¢Z’d[†¶F)?‹ýãdÄ}*òÇ »çzp¥q/,Âo=fõ¾,0zHæø‡öÓ!ã+½‡']Äa](à ñZÒcû7BNVݦá{™‹E¾lÆÂŽ3”¨vLž²ß\be“µÆeÕPÔ`ryÒ®Ÿ7¼+ $+ PKuô×IQr¶—î!x4¨¤û|Ámož‹´¾ŠëP–ƒÜç%$ŸÌMé}˜†tZ¶l>/dÝŠ·š¡gñˆ×–]Á·`·râ‚Ûñ2Ió†¬h˜þ¿â>>‹,3à¦üI8Pì²æØ1ÑïÊ<.Èî.9E™ Õ‹íé}zC¶÷9ë„^¬ö±ëþ‡` Ì]€KíKVv<á¯YÀ{IÜyŠDS"—­sÕÔ6£g‚—Ì'öª¢ªÌɪ›oTY‘ŒVÏIž9 æóyP²¹É¾nÚ q[\ H4ϰYtxç`+ ,OxðnÞ.pœíp{p¤!³„ò §©©Ò$Ý8?(²ÓÇ©Å?]Lk|7&ßÏU#‹á²O§ Ì­=5gä‘…ëÙ—v£hýüùÒð¢79…:m.Ö]TÞæžÕØÓê^5o”ï%mÒgýžÜœÖ>t?)›ÌJE#;×e, g÷A`?“% }6žœÄÌmíVt‡À[ª™+V§c rŽ9F©Û$þV©VeÉÞ¦Â%‘‰DG—AʇH’‚Àá2¨¡2ØcÁþpÊW;TW}·1¯Ž ˆ ŠDû’¬£®Xypa€xŒ» ¶¹ZNž¦o›9¿á$D¦Df‘§½°>Ùðz§Y!fñRŸ4Íæÿí4y«ÏËÞ4ŽHÆ•° Yê‡B?fl=6(ˆD~ƒáOkR„,t+‰ñ:ÍkŸÅ ¾,§×íQ=C¶¬AîÚAkÿüÅÈD«-#ÔÜ ²ÕPLéç Ùæiݪ4Lc¡·V2ù¡ÀÚ8…ÚJ÷âC䤯I=e•»mV°5‘•rYåž3kªó[ÑÎÅÍç5'.¼ÊèÔJëÒ³&Æþ¢¶™AÖT.ËD×’£Ïw£Ð‡®™ÿ)g·Ý‡Xu›—®­x' /¾ãz¢Ü±×/l{ … Špа¾,h0ïŽ $±ÎAï‡:M}ÌP€‹ý”äÜ)ª0v¼Èd¤6…ê%ªüsëÞá–Z¥£˜˜])ðŽQ'µks4ØŽ¶8¤ÝæJý ItÓ•6±¶jT´ÛS‘W÷ð–Ì¢^6;I&L*ÑqX¤HŸ‘E?¾ÛÞ×·M˜èò2Qx]X)[¢—ò•ªbH©ÍÔñkbŽì»Q9pžvêJ·CÎÈ&bæ¼diÉ <<x“(ÓÕ±â–ÆC1füH|›`LCF?¤S;Ê6(noZnë/œ4½ÞE•IZ6_ˆ]’hTñeJÏG8JT–¨w.¡@'Q “X*f% ¤Hµý¾h5Õ˜dB–$›’̪?ÖD\š¿'õœ°als3ÇßNæJÈÅ»/úÁï+0å '^`Ïd»âÆqÜü:¤­Ö3G†/úfR‚[ÈHBsnG®ieÇ['P^í̧Ä>å`ðgñª*ýd/vÎŽ*ªóˆPð×WÍ€Œ’qn–ûÀ}§† úpή(ˆÀí<¿•†D52¶®Ù©&e\zAl8:SØòƒ*NgF šÜƒ~Øì•÷R’PÔAr9üBî6$Ê—ö‚t\ÅçlÇÆ{ÙŸ!€øÀ·ûISœŒÄtÂ\ ÞIqÿ2žQ¼úw“FÔhh5£­f3üµàö~ ©ÎØò¾ôÒ@E>²íÖ­²"xª[˜_¡@ɃM8u=òOŒæÚÑžÅLÁöË…‰†i™Y%bÊÙ_ ¥²«ä¨µKE}BèÃ:-QÀAšrû”ý§ŽÍ’½*Ežì©FŸ5äÄ}µ1rmî =pBí³/]óÕ‚T{±Ô_z[pÓßN»ãk yŽ 2ý*…°OÖqC䲇¥,Z|ÍxˆÅGc…¯há-—ÔK0bY<0µ±Æ×‹~ïÃÌ_TâK,<§´¬ý%åTˆ ¯@n¤ÃÆâ;U ±•%˜§èæHよ²®¶Äqƒ8YŠ+þM+ÆW2Ú0Lÿ>nð•¶_Ö Ú‡ì$¦’x¿æ\\Ð2ŸjHk…%·î¤÷®VÂc<Ø5C&žŠÍmqõØ/ß½ç÷÷±®æs(T’2âl¥P…¶èMž.t“© FTòó–å|_v÷æ»å#Ûû¦çf8»£M %§ž:)OçñÌ(£´Å}ÖýÄŽT…SK%á¼´÷€Er9êïÔ¾ÒñÙ…ó‰Û"@ 'œ”…Q¦´¡½ ÿÉB‹´=Çnûü!‚!o`´ãD :ÖÀùŸ‰òLœ>2‡z’}„ÂД9Ê‹qå•sê›ýI’2Þ8’žÊ©ÎC°lú}¡»íý¥laÿl$ôY±8pÕýë‚ÙO®]mQRÞi3“YFA©q;k¾GèhÉ3ÍtÇ]·ºäÞÈ^ú¡N­l %;Ç•e{æŒÏùîj£…ÏùâÅ=šä…Ç“äèÿP²·BO昼_7Ããæ³ÃT2F¢ç T5½øঘâ6¶IgÐa$‡·¸Ñ åßvÚ Ø–g§«7_Òg-Ë«$åP-ÛЋ M”ñνÌ÷íH@\¼Ã7t¦ŒRüo&AÿA<˜O‹C½ý{*45ñZð~ô— >J ¹GÁéÊ'Ì£[ѽ hu´XsŒ¢DøŒ(r‹tâ\¸Äü•¥l§^Ei­0‚ïJÝ5 ³·K–vE8Yo÷$;rG¡Dn BdDýG)˜F 髽´*ù8šÄR½»£¡:–‰%xŸ¹Ù"Qý;;ë,aíÛ7 En;þ_@9âU|ERO€‡[¯?ð_Q†Ÿ¹u–‹Û+IXœzñà…% Geteô€·>$Çg1¬«g=w—}:,LV¶‘4n¾XœaœQ]4øÆ¡u'ÕØ1ÅÔÿ'Ì9%âL™#Çûž¯ ºH-;u€zÈ]Í Þ]šà°{z?Ixe è§à€0 ¸Ã™~ݺ'=Òá² Üï­;3.mJÁÿ­„agß×FÚøJò’Ôô$%nÕ¬NO€ipPÕD§êÉç÷xOÐFó½ Y\¥æ½`}%Nx­Ü^ö¬I@ì†Z\#[kàž Ÿ,Ö×i`¨C¸ä3—ªÃËÚ…ÍÒôÛ|():w‚V5™*øó³‹D€Ù¡9±f#E¨«ácJwIl?WY})…éåG«.™Ê5x”A¼Ýíé©âk@–„­¾þ@ÖðuÁyéÌåžeC · DCßòªoðo"KnE[ÆO¸žì‘ä„S©t›M`(Çä¨0‘Ø^ªö5ÐÕ)ÃÍѸGšÀô Œ(K¶x¥Gò½w»ÈmE`COzÑ“w`¦ªU¶Ï©ÿŒœ–VæÈòN #t(¼Qß ™¶Äž>úæÔ9ææ˜tn»Äa%Ž ø œGÌ¢{-˜+rÉ |ò<Öânn(n4‹‰DŽ$€Ÿœ_=KLºS?V!¿ºÛwlcGFp<Ÿsº‰±– Id ÆT幦×3׬ǟ'_ÿ²Só‰ªH„F‹³M¡ç—ä;nŒ¯^Œ“š:'0å~Ûg{·>?ÂU™÷.S³z_™}.Ø÷¨,•û®¸ˆ;ßÖ{£¦LÜVËLõ°kFám˜‹ìÎúËžp#׿\Ï]eªf¡z³a¾yñ2¥xó«û—– `4ðRÙÕ¯Üyx.É$”:_š=–ž×9’TÿgØöh÷ÅoΡÿÜòGJÈI]:ô¶×î >6œ p…‚ i;9ŠÏŽCU2ä9ã s“|S@.EŸJ£Sœ÷©š?QÀ0}]ø·wWé.¢õð»OwÓMÓUfXpµŸ×øOÇÝ l]1‚Ûw‚|¦¢ +ŒƒÄêJC.ô:M •,ÆË¾R©ðÍfS‰sÞAÿéÅÏUòPkžþåºåæ;ÜõR„™¤|cÈ0"`g„Þ/F©É#Zî=OqÔ•› ýŷ猌 É”@Â&=ºË4<\d…wõa Pê±ÏÐ$ï9AÇÊ dë­K,°Z“ÛÃFÔGg½(^—yÆÊ ª¡ç9=¾ƒÈÓE\ßëÀæKT·7â˜Ý¦"| Kº‡ª>Çúnºì9æï%7Õ—C‘Ó9ÙüB˜=®äGÈ#ó_Ž#!¬t”8qs-¾—HþhY"cçq?'àÔ››\·¤å]åNk€ …dPÿÓ®_({®OC‹ ®ž'æÊ >®­¾C&„ýù“’UD¦€&£Á™}åÐc Õ S^fáÁ#=#–k5EÇC9¹r•¿¤ FÄ,… ^êË›GÅ“¼m¸cS:†ºà•ÞŽÊC-MÝIª` '~uÜ?\f1â S‚Ëx%úÛwCϧŽ%-y¶¡–ÕL/ë…×^Ê%ÿ€±Ùᇖ  üGÄ:!;ñA´‹Ãª©?¨bEFh9Fe¿Õ-þLãžýuC˜©DÃýú˜ì3{ª¯‰5èÏAj×þEÿñ?Æ5@PCùèBè9ºj(q,¨Z' ±5·/P&è!u†)éO/x élYéö'û_%=üsG銚3³¦¥5¼a†oQ=ë˜,J­¿ºÃÿp§3_@ÕHžHåííïsÙ2Gœb;%îŒOvÔñ®EÚêJ®Ýžø$ŽøÈ¥¾ÍÑê˜x>·£IQ±”,–Å=àm;üå9ìgÁI·‚h…>\rô…ø¢{v…iåBAöXuâ—2’ÏHÿ‘Ô^¾Ö'®ŸfÒ"² ýÔ[Ï3)™à½¸nFë<ü·Ü­ÏÕ l~?7樒Û?WâP r¤ŸrwÝj,€Bi‚3ÓZi›ì¥ÛÚm%Ô¡ỏ;ðÜ.3û½}íê<9`<‹~Zƒ:ÍÕW Јt›²2aSfhybÇånЉÍ{ %ÊúZ€õÄÏ3­ðÑ“~%g9Ô‘÷¿÷¥#Û`c(Áa켿œ@D'¡aŠåÔ퀟ŒÊ÷"QL”ì[î!ù1Û§œîåìö˜ë„«-bOX³b*x„L嘲ÎóޝâYÒ,{¦e† ¼Ý¥ŒÄ_f>²d(Ú¨^w…6:iÒy –ï]–!Õ0Bô/yIbþ¤nFó{ŠÑûvü\òhCøÌbQ9Ç_´-Úq§RºÄ)NL ‚‰üFÚ^ýœ‘½¦Ð'Q‹~è²uZ–b}X¬¦tÑRz…îÔãÆ(n}Y±Êæ¹·ééYše#äiÍ3¹½œLDãÁ«–l–x½ פàòÐz 8ÎÞp6ÐSMhJb¡zÖJòy q±Ë¦Gg*!Óùdl¢ö¸$©o¡wÆ'‚wPKº“c%õúJ°¡]Á,^“Íî¥+îÛx¥x(Ø>l8¹úóÜN·'>Î>¤H*bB£5†,,7ùÉí•÷{ Ni²/ÇÜ÷мšPBŽÄø½ ¯ˆkM—“ Óä)mˆ÷Çm– Á.pòËzŸN>6fe«?Kd@õ^ê&Üžà k·v71t SwfI ŒG#¿´ Sp­²CjÜâ"Á:Äéñz戌KNo:rNcfºb‚!£‡Ø«àJÖ“‡ÃÓR‹Òú¥²+ÿ?¤”õûúÄ÷qÉÇ@+•X ZÄ»:ö’§ ²ÈQú\ñ>ì>›Z ·(»»QÓ·­‹ ñzcè/¯Ù?‹q·¯ãR‡ONÆÓ4«gGQš¸èG·¼í3ëTX¨(àtçK¦!½Íþ¦{j½ ÇQK¡¯ðÔÐÀËNBÕ¨~9]šÍÐ,Ì" qSB rXFš:ÍŒŒÝ¶kƃk@&ýŸRj¢uÐl1yå’O&¢P”罨½&¯Äδ‰dÔüJñß°Y[ÅÖqL2ñ]ÇNš:sàü•ç­Òµô,Æ0$bKª ´ÝDx2´áÛ§{ß­Ò#˜ŸŽ•Œušª7“dÆïìp$Š*zóÖVÝêý›S3…Fæ~^XŠ…qg­ù"\öÆAõáœ>gŠ(™íÚÈ1µr#±¾êßܼo%Ó/Ê#6È.8VèGûl±9iW$%ª¬ƒ 3Þn†£¨]*f§ÖE«E#—¿Û‹&án%gFÍ x©Y6OÞmíÜÐôA¦º2Ǽ+°•ºÉç‘·ÕqÊÒÜ›ƒ²ù›7&`}œ¾X´™¡7S·üÜâ ÐRŽÐï¹²É'õ|xÆ&$Š¢¸5 yDʼnf†¦as쟀,Lc:B°†3M*HxSÐ ${æNRŸ–­/‹9"¦ }AMÞÇo•Rù¸Õ‹Ž4óY­y++å &Û^t—.|IÃ<Ù¹b ¦t’¾Zü£¨p€\ Q"?§xP*.Œ_î¢v™…„©XBÅòûhhmYþ$ ÍÞ›dc¼l{Ò ƒeð …y{¹õ>ÎÁg\~æ6ÐÙç}½‰g…^äÔ€óö•ÿ »ø Úö¸$(@Ï¥ºs¾¹Qô§‹ÌØ^ÌàÀòïo2ŠÑÝlÀIZ3´¤Ö¥ ¤mzÌïöîVEÒkY¯51ù_e‰Î­o A¯0gøŠ /ìÑ5Åf‚Û+E§§7ÀdîšO@K·*p³¯05““$~ÇQ$‚W˜e$ #Í„yò,D¡ëÄè0ت†æ =Ø­¥ þƒë ÞÏÚ@Zï´~l§Ý³vܲ7÷¬ÄÓéòk¨Þ‰@Ê:žu–:8ø,H`rö êõuZ¦~f8‚m±4VM¹“ÎënzfYÇÅÀ\1gÕø¢Nì-\ÃãóÈæÖWdk7ú½˜ì·ºùž}šÄAJIsÊ4Å/9CRöµ¡_ÄØ†"ÚÆ”iœ$d„­¬;6jþÞ*,Ò,Qjfj©€$‹"Kíß2#9çUИ¶¦sS_L|úgízPV5?ÈY¿(c™oÿ´x¢$‹ñ*½ç@"$£î_F=ÓÒC‡\„à-¹hì¡ÌRÇQqêPÖ¨Œ©'§ªW•Ÿ6À¡œ :7#ÇVAòäÿ·ýGø—p=zb Xk“l„ªíaØC2³¾¼O•·–¹>÷¡õeÄ”ø¦^Û!âîÜU"ïŽY˜‡Ê(6œÝ؉ˆå†)w·G%„01˜Ìé~ùùáDm^ÑÏÆf¨ Ã >’ï¶ ›@eIàÞßjÌÛÙ‡BV‹G5§GØåÞ!æ0ZàÆ‘ÐTä!™Á[€Êún{²_7Jš_™«·@œÍPï̫æ¨V÷Ç먛Ã)á4=©ÚÒÆí\ŽÊ#´>XzìgæRrK?<(V9ùâÖáH -ÂËÀàTÖ)\Ð]ºÁ•©“ð&[†§2Óžèí#7hò7Æ&˪ÿ: ^ûlÇÊ;’ÙeÊ|^>dìò9þ%üyÛåL²M¤L`« ٔźxÖc¢Y4Ì+Ç ÑÜ£2\fɢ. 9õÛpÈHÓÜïe[,ÐÎȆ_èáÀ¢g¾Op~ÎoZ=ü£Ìß’Ç`CŸQªi¤Á€–ÊMn¤­˜XóÑ\‰9«Î „Æ‘Ö>I©|¸/ºp}®ŠñÕyýiÈH··ËÍÛM({é•ã,³™`*¹Ý„9µg?0¾Ç¿6n°‚ÒÊ]²8\ŒÄ[ãü1‚‘¨ë§Äò;8æÄØs'‡Í,¹v-ü…Ô·˜€›_"TØ&ÊB³&•B˜´Ló„”åb@·]ñäF僕ʭÐmm 3èÞ]ø=¯÷CÆéä‡=5ö<×ý>/r}- )–/vÕÉ^ÔKoÐRZfW…òd£ÕõY6w¶0æ(µêû7Ïýz0·úÒ&¶ýÈ+x¯LÄô$:€{˜9êb¼½÷Âé³ b8væ2à„ëô¢Úüˆ¡Àp!ÐÇ.ÃéiÔIþ°ŽX&ì å[!êqêYöã°q Ú³&J )ì«hÁšÝQtå]^˜JN_8õ’£þæìç2ÝèA¢†rÆ Ì]htU¥Ào©þhƒ” O–1.Ð%·ªo¼â’_:åY̆¾ìÛp‚..\£÷2¨t±Sj¬F™‰éa úD ÎC‡ZpÊQól¶ö)ÙBL5¨’ÕÚ<ØË®n„%£ihâO04—Ià [ÿU(7Öü9S%%7 ºÈ3÷_TÉ?Å3¤ªS­÷s§ ”¤ëõ8êžb¼Ú| à s¾âï¬4ÒﺽQGežPµW[.¸³t›ÓõKCþÖüƂ৯é0ÙÁ/t£,~Û]AÜ:]QH×Èúàî&?¼í|}‘:0<ƒZõúßÒöm腫ʈ G°”Dwg¹z$èÆY¢@{«‹VÇîò5]Ù|úüÁ’¼üàcÓÙѦ)ªÜuã¿ r4ÂçãcíÖ‘0eÉËÄsÙ|mMÓßõjš¼ÝDÃ`1`ªØønzMÊó_:™´ê£Cu´w¿„e!§ê½M(Ž“@E*?ZÌ=·ã‰9ÿn7 Æ£ý˜‰CšJãá aŒÉ.¶„)£­,€” yE.ÂfòTe{çך*$J÷?m÷¼Ó+ö‘:?«%ùwx{°Ã£èº³z-°´‚iPd=Ñà;×ݱI£8b¨’&·ËEM¯a1(ÂTpä.p©DJŽnÊRcE«Hæõ ¢;[Ýý¦žÄNÑF~ Õ±n/²…÷ 9Þ€Ò&á|ŒðÒkŸ£¦éH7ëž“6ˆ—g¨×ê<逨ê•R‹IW¾`gÍ›Øà*#Ìb̦VÓ4ÿEéýJënŒCý°¨–Z3´ý&¼$¢ 0L¨è„•º›6>“7ÿ°'pÅÓË¡èmQ¿:ºM¯2Ã\yf'Ð {"q¬âF>7é{<‚lóÛ`$”RËà~¼Åý±¼»<2zŸE žVq‘aÖãåäXÊ1ðMõ’ø;­¢Ãh=8†ª;@9c«]¾"ìztX9öz65ßÓ¿ð6t‚–-íˆìö2(RÖC¥M]0>°KýÞ黡ë̺|e;:a:ŽqšÞ¾<á½~uN_IwècãÂÓˆ¦R'´QÔó¤ùNQ<ºJÁòõa?ð5a„ÌÄaYåFäÙrÊi`à•¥&äsZ#BL›Y~ί¢u5’½ÞÙ2U¡ã=îÎ<^·{”g7ò¤¤¹ŠÁ“%Ž}ê]¸@Š€aˆòÑÝÄ@Ìðé¦âðÇÛ×¶Ô“$XÁ–[ø¾ÔVK2F/ÿ>È’À;Óê?«LûèÓc)Å·ãßí(MDª z/kÉn¤P>Žõ*dÂ+íkE%®ø‘}S—dq”‘¢Øxû%Aµavz½N1ÌØ¥ÊILb¯ýdê Çy=­„™œz„N±%ç»[%Í57¤t¥$ëäf "V‰Iæ$Øþ ­7ôÎÇYUîúIÆ¿¾‡éɆ_óö¸R[Œþˆ5Ê='æÀÿ ¥)§©]%ðñM†üy}Ì™î—âKœ*.ý¾¸ÞöÍÓh¿#¨XÙøÁÞýίJåêü`LìÏ ([à ©ê¶nÿM7­.þ4…;¿Ø|à›t›H™CîÊçˆ{o¸'Ñ‘ÚÑ„f͆PXy1 ‹. Âj8޵žA{5ÑÈQù :‰—R)òØI–“ §~ºø.à*W¼wÇ’Ùò )KEôލý”àÒVEÓm‰#V/?Ü“ËyÝG`Ú <&ur-zyü´$^Ñ/ ÛRI,œÎX³3Ïî‚(÷ܦހ,E\úë¬`‹•†¶Å‚9ÑÆ-bMÕÑW‚üU""Ì mß8{7>2ÆLcÇh5 7(7`óQZ[ ýfÄŠµ"ë>€Œ\Ö½–ÍɃ0PŽ}NÛˆèñ1á ±kyqðmxw Xؤ”L„ül®ß3A´‹n <{…×àÃ_[PSÏKG˜³wŒÂ‹-Ç® 󤟟;ÍŽ•×FÃ\?GÖ‹Š£]—ªçµûç b<‚T½Å‚} iæÀIzÒo%n·WXÌÿ¼Ë¥©] =”dÉ£é[Ʊ…9c²Þ°µzÑ$o%áî¹Q WrªäãÈfe}°³¿ ÃEáøÔ—kwvÿãtŒ6U"™F£o=Ñ¡ÉGg<~LX#‘¶6Ç-éLæ%Ctù›b>V†Á=Šƒ"è>» ‰ljŒ,OulS…Ípòm#÷Ãî—7,†ŒŒ‘Ur;¶·kL<虎O¦Ê@¶3ßÚ¥›©¤•-©Äü<ðògjϧ÷ox#o¢Þý5E5r$k·å'òw‹5<Æ×ÎòÌw`<ÝX¢Ìݾ:˜ùAÎØà518u1•HÄ’¢¾“šÌ”&ã8%®Y¼Ñ|±ŸPÙrÿËçÙ´°» SÙÜ@f–ÂPléžÏöFGétIí_HmH †Ó§¬ì·é©E˜G$ïÂPy±ýí€<-êüã2}-x'q_Ö]•!lˆ°ú&“^•ÆA¥Ô‹~œ‚Ÿ¿µ2u 7R߉—óË÷qœÖËšm-%6Ê€LK5&bÌGiÒ·…ÆÈ~ZNÌãåŸq&;|<®È¬´ÇBnÂ_ ##îl>ë(MºâÇp¼AÎy½E`®¤qõ•õ%`Ǩûö=A:w ^QtA±l+P¢ùéœÃ&yòˆýñ‰EBã¦i‰  …ë.uKú=‘GÃÛŠb5ãw†…7yáW´qbmk>c0‘YÁu–Á¸â´ÿGíxúL!`rvȵŒï]À0´¥Ø<òW læMãظŽrÕõ}õÃiædá7Þ)4ž/ÍŒŸNºnv[c'×¢ ü²'?Ø º`\LIBHo~ße¦¥d˜ »·t[öno™mÀÿ@Œ[Ž«ÎÃé(s"Œ€]D@¦G>ã˜7XÝ!œìÛú¤É0 º`ŠK$£Ç¯z;~góŸ Q¬ùPÓç\Ǽ+4€ /©Xèî $R2î &L| ,ÊEË<-ã"ÓëùE]¶Å±ôåœ>•RÃm}<»b]pµKöø%^A&»²ŸîlÆ`W‘Û´¦îï² ÷®<ØVZÈ8AkµÞOúUPѵ»ëâñÕ`8†>é1¹ ì.!Ô+©.ÂDÔÎ,NÅʇ &™'rÜ*÷Tü˜+”ón§·¿uàìé »*j¡ 艋ÖyÂ<³‚|5ÕÐ/iǪ‚a]J¦uìöhÓµ}nñ¨4$¬"hº štÕˆyíÏc‚¨9xd”êìE£ƒº‹±˜–zâ>¸T¾t±i ¤è§yœî<'â¦ÜP½sp¶²Èý¹¨}ˆÕÔHÓ˜N9Æ“¶ôHm™Gx`z€£(rÝeä’|qÃÏpŠ—éîúûÝÂ9Å:©d[q8國†7A²›íùÏÐÙÅ×aTBõÝ9‡ŒìÅ׿³ñð5q…À˜Çyè… P™-ýÏ‘2¼U˜YC°v¬ÑQð„L ÄnëPÈhžÇ&@ Zoë<Ǽà_ "‹|²Å96dØÝšK–±ò]pª-‘Êé:û_+ðªÊ\YŸ¡§ï5¿þɯÁòB‡ ‹+Y;I9C—ƒáBåÏM£“Õó‰)6çÖÏ$p¥!Ó—C‡3ÐS”LÿÖÿ®‚FòhO&7ª˜á]r¥&8>Â2·ƒ8å´vð˜nn] ¶kò)ŽY{*¾~¾°Væ^ÛB44-–G  É!Ø4ä1¸/X`Œ‡¬6ÐñþKG =qàÒ¸~#Ô(â=Yl¹á¢D¡n6æD¼Ï›½ârHPWæ('(>s€¯xkó•³–¥êFœ1WcúYàñvï˜_8¸‚ÞV§MŽ%m‰“—(åZ’«¢kxDúÁº{½Ø³JJ)„°8éörè>ý¿'oç—£%[%Ì•Éz¬õmX4†0]|žQ§ã7ÑN;3ë8ý“©•‡Ú#A± œqÎçS<Ÿ¤V ùĤKæûE„oø÷eá JÔ&KÏU–¡èêK:\iš±V8CgžË%©ˆ˜õB•dœ·='w`ØÐJºÌ{Ìnwz0â|ËÀ†sùÈÁxùÖr¬Šå6 VQµ>uàÏ¥|“F®gœ$m|”ñ͉ÝÛÑQƒ6~{ RÜKÂv|LbG±Ö>R¼{~¦)EL]—¬W_Á ÍÿNÇÓu\ú´ ¬TRiÿ°ÖÇ­Gô ß%z´çÐuw<ä”`ÃÝ{tݬ諯Sà<¾öÕ{DòLø!LBxýQ³Bu“Ñv”´«Îôœ»˜LXxÍðÃ×ý™°¹£½ö!•ˆ³¸úYÐÍÑÙ²öQ"«EäWF{’’a@ãÃPÅ©'¢ç0Sì5ÓñÚ-rXqL—ú¨Wð‰‰½”b\m-wŽüª¯Q{þz"ÂJˆ,jd}ïcv퀮AuÅ•´NIðÓ=ÙZÏ3»g Ì4­W„­ßí:m›¡³ÝÁÌ-çM»WjwqRu!ŒÑœ¨‰’ RfØ¿†øÜÂÃtvg@™÷Þ•žßèRX1ƒÉ(¥j$ªð êEÍ_9f ëÎ0¬{Œü`8{ >6æýúŸ·ä´¡ˆ9¢Çàã“ëÅ­šŠN¼1jt )]žõôßúgùX, ¸7±BÄÏÆ±yŽ”vÐc;‹§ZýÈâ«‚–2øiÏäs{éâ€Yî1Ü}•êøUwÝmÆ`hÙ,¸ï†D_lobm&\gå*cžãIÔŽIßæ©évÄ¡ã!zࢡ~TªINÍÅB¬Çâ2/c»/ò~sTã*>Ñ€1k›)“‘ž/ì( ,‰$äž{·Wh¢î¨­¾ÔãX™ß’:ï„Á½2t8·1.i» C¡„,¸‹µN¤Qdw÷Ïë(n>¤ƒDZÔ×E†üó.–Óf„6_i:SÅûS/¿ç¼ ­ÄĘPBÖ»¦ÜÚ51î2MUŠ!O“\Ùüɠξ›_°2?K8 R•™ïHî‹ZÎ…Oê)„ð¨oZÉÕac»þB·t°¤Ü‰Ã4RS:}æg)Û$A¸/s`¬ö’“ɲ SO>ž’$§\I¨2ò‹.IrbGU¶ÝúŸÊ f–ãõ¬~¦…•ë ÂëŠG?ù6ØJÁ²>Êz¢†+y<˰ߟÝI1¾óTÎÁ/¿G…YþŸ­ôE.ƒ–>VT1ói“¥ º^•RÄò¢:nS)…J=×Ä0‹‘•}±žfª¡¦pU©PñÂÏ÷мXŒö$i`h‡¯±Eî!ˆ-R²5]@ØÍ$Ðg¹žakÚZ Z“6üI–2·Ÿòý ï°–ïF·^-NHÚê#—þÄÙ¢˜õ‡_ÅžÛÒl¯ ÎÌ€ºI»¥ž‘޳ØñåAªe…¢÷-÷Ø5Amäiû>ý 0äXÏ­Ç”!«|I%â:êùðCyYm&½–cµiõ>H‚ËÃNÞˆëU[ˆ›`bã_Ñà¼ç…{…ì;œ¦È]K#‚u8[‚…Û-·Éõ¹F¤z¸xÿrÖƒMŠ|ÿcCt-_Æ0›ÀÈ7k’ìëà`^Œ:J@®‰—Ñ´_îŽ$|d|ø,mûåèÕÿ¦‡·®·…F¿Ð}_~ÂBÜïI0ت­ŒaR¶d*¬2Ycý#k¸P©–esͽ|§šR}ÏF3ò+ÉÅÛÚ+ÓÝÝŒ™Ù—“¼˜(*¨‡/ùl9B…Ø-”ëx¶®7¥õ9w÷]bJ ½%[Wn•Z2>xNÃ1ð°ãJOXþò¦ÀCybüBT‚á^"-Cï{ "2+"ï\šà&¡ÃÓuí¯ù•—áåGyR¤èÒ¬õмÜ*'/¦+iƒâ}"ˆâï+‹•¦Ëé _Þ3…"/â¡o <0¦>.!fl ŸŠøšT=7—pi¥¬ñUc$ðRÎŒ­PÿO¶0ÙË¿Ã$ÞÚXJ¥j™Ó§oõ[Ü,.£ !6ÍJƒÇ¥âv!¦ÞˆŸÔŠ9ÖyÉNÃÉš3ÿ7}§öñ·*³ìÞ•O&w?9¬ˆBðЖœ9•ÃQšŽ÷ B ØkðîÌdb…^{hnÿ©¸ý‹Jiáà­”­ÔDIPo›nô6Aònÿn`\g`·Gû”š§èÌj- bäWçý‡ì’Üh¹9GÌŽÑJýܿݢ(§hGùhåaö|îýäZå‡g9ƒüÉgDÛªƒò܃c9CÇ]ËždGN²{4&å𫇉@èFÅéóÅþŒ5XÃ#kˆÄqiI¸PhAʾGK·Ã ¹Þã;„Hv/®Å5½Ï„ÁÇGÎù±úaÒ¯µ¨5¼BÀj”×Õ›~ÞU¼öù†zîuUÍЄ·hL,‡tu£š¦4{âÎV5¤Ðxeº˜Î&ÁF[°4?Iÿ7´ÐÊŸ;¶“×ò%Ë™jÌ%'þWÀt`ï9À}C–çú— Ÿ"«ÒœyKd­–v,t(õš‡WÃmlOû#!a• L*,.{ïq““Dׂþ乜US»Æ%"p¨ØÅmÖ-DZØÜiÌ´^ðªDQ)Ýð[#Óé:;åZLGókNE6ãÐSù.F·CˆµÕ8lHÇÕøL+͹Å÷Œ~æ¢5yÏM²x¯hŠ.`¥f’­’„—H~ßä½_ ƒúTA8² i@‡ã]Fà“·z¦t`Ü´Ôƒ–%×ÊiYÖƒÙ?¬N¢p6Ýsƒdýç¿"ëñ=þBådpoþuíð?äH²Œdû}T¹L¥väúV²±Šñ qö™¶¿ÔtYÍá†Ó¿HšoBå²ð\ÏU»k•&—=ËL§ñ?³qoŒÂs¨2VŒ% \Ûß$¿ÔŸ[7‹Ó&.§†Š°!lìƒÎü«Ÿ,fZ1X\ MÀyʧšªZ²µ÷+±kîV ƒ“°åÙùåãôë ö<•Žymôòˆ9õÆ*1d‡E׃{QŸ:£kÆÀŽð@Ìõ=›mŒ }„×ìW£Æ¬šb«7%¥í@ýìo[æãLj‘ÐX1”9wŠ.åÐ6>.3F<32}ÿÀËð[ÄWÇ#H—/¹´Ðׂº}¿Óÿï‹õ#nÁmMÖÐØpÙÕë\dɤjOX=Oƒît°å³: «ýDD’›Øö8Ír깜òéUô'h9d¥’äo(RXÅÕö!–©…2BsãI_‚i_îÆá•,V-Tk(aúî¾ÿ¥M…P!ø[ {ÃÌm©®Ê ›dk™Ô– Óÿ-VB/Œ7év@)>ÇÉ3€ˆx6ô“¿I\¬û¥d‰(-IÙ÷>Óe‹Ô%Qâcè0êö³> ˜ÂÃ*Þ¢«*¬‹ ?@ •SvÕòï„ÌЙ·ä&›ÛÛjYÈo}.?¼Ï‡sÐúév@¼Ô<´¹’¿­û ÛÐÊ®¸Í¢d|O—0šlîÕRTyæÆZã6˽ôå×÷šÐ˜ùw(^Uy·Hþª—ò§Sáùbü«h×+ªŽäÿf‘Â>1¼>˜–ûD…já«2§ [ÔØòŒ“·Ð~Å”B*¼6ŒÚ+Îj—?Dtá+xµ2fg—õu]&—rÉõ@ ;ülX9]8R~,Ìò›V?}Îó½åÜü[“»P…±ÒÙ)¼>èOO­WI‘ÃÞà?-³£ ~R±§ÕÇ<ËaHêÆ.Ž6ÞšqÅv8ÆäÕÙÞÑtèÃå J[‘<Nêëã²³¦†+š)m´´ v–IåsŒ»ß·p.Ç<*ükÃ|áQqôè"Ï ïå]Ÿ¤>d‰‰b÷že“#˱]Žb3±‹ýùo„t4àÕþ©d§[$Š5Íù£~H¡å œbK“ÎDð/  žè›Ÿz·…éÇÏnr(÷C',›ºå ‹’DçeÙ†e´T°úª'SªÓ¢B9éÅüGî±TzÉÒ71¸ÜH¹px0Úì`ÈÓy º ÷vNúÅBÏûÍ\ùQ '²SKpNÍ6ȰAýI©h0/ÿ[c¢Ý ÇQÖÖ¯ê‘p¤ôÄ«Fæ/v?á½¥ÑÎJ'çr󢆑U÷bÿ&·ªoϤñ).Vð:«c"¿†~wÃMCµØ[EªhJׇží3ä‘In>&Ùª‹€ {ò¹OwèJ—&ð™ˆ}fÞz0{ó<0ÝœóÚ€ˆÀ;+­ ¢k ²Èhµ=©¦l…s{¦l“ÅŠ%˜`â”­‘ã§,sô Ù†™ªÚð5‡·9:CÅŸ)µt›ÝËø£ý ®ý•+±…EaúÓ¬=5³öb“7^P#_ f“!ÓwíÓ*_úN"µ ËO4=š~J4. ßöÆ—c Ó—Âw¥Y Œ©KÞk8DlyM+¼ËrM[Âîñ°×97;¹Öhˆ,ªwœ-h`Þj&A{T×Âr&HØ“äíºèð jm£q/‘®† um'Ñ3«‚Ž€;P±bÅ¡ÅÍ÷ Ë?Ý~ `í ƒ‹áå @”É瞇Í÷€ÊôZrYdð%>L[äk¿‰ÙF1ñ£;ª5¸O¢©Ð„ÆgA&Í–íÜä‹Ú-h6ÕߺpÀùІ>dðã]À·%´:ìršC´[Ê"Öª*Å­ÌŽÿ„¤Ê?%AvÂÌqæÂsƒ]ÓRŽÊ*—kˆåãGý¶27 fÓ8“ecÕ†óIÆ8– 1®Bè•!©næ–¹Þ²ª·£°"Ðo4ýü¸ N`¤þ¾(L/> éíøw’Ï¡“½É·Gá5pb#¤Ÿn*ðÔÖ] L¨vÿzF/üœ ¢ÌT\;Óm¾v/2²Ö¾XgÅŸG‘•É$@ÜP˜·N¥Ã­“ÍòÔ°L¼xç•oNQE‡ªY$“6(æ¸ôO„)ë˜ÜRï_‡¼p“÷©ŸµÒ×Ý‹»9;öåoô÷ú4?" Z®qhÇMA¾Á¨;Ö[r¹‚ô÷³O$ùžÉ©@1úÏò¡I!£ $8_NÐ}.tùqVÙQ£BH§õï“LÊÑ>'S «zV\/k4ð;¼%»Ùr©­ø »\PH¨Ìï’—²í3$шgò“Ìfè‹:9Ѷßçš;Nƒ©m=R¡è¦,ŸÝ'0ƒf”,œåuXÐ#Ú_u1ž¿£=éæÑçm| ÛŠ ¶Wƒ©Ÿ=CñîbS£)\–QúCfTx“ÂÜz¼¿K·`åÐà£mŸûà} ³ ŠèT~._ìôÂS\¨ôê7ãóÎ,zƒ™[Â>nF¼«nu[øhÔI»¢ª‡ÄLœÀõq­Ç%GÎì¾K²t¸¬Ü·]_E5df¹!¬Þêã„âëöï9;A¹t O®´¯(Ù­o·àoÜbLoÉŒûCø…„½UÙ¹|ÉT“í冑!a“b±±Õ-C& « *ò´C!ÕPeF=§W?¨6…ÌyŒå–“Þ×ÿÌøœ¢¹cŒ) dŒÜÁ˜J‹«S‘(À&ìÇ’^8ËæÌ¨—Žâ+ç³äº—Ž*}nV<„ª#‹`äržè}g± ;isgl¿æS·sÆ.,$—J°è·N†£xª&Y¾ãÏ=dÉHHX.Tá`[dW‚?,^d Ó€)F».~ŽYNŒ´0Â8]ÔFÎ…4õBçMqóÛ rÑÉÆÆW; Jës·§˜vÏü>/ŒŸêªÓ¿Î¶wI¨y;é Ìì¢×%è™Ó3áa§èl„$•Õ„Æä ˆ )QØ¡;ˆÄg € ±¾6¿Gìç(ŒþA¨Áº¦ðJ”½k:§+ls¨ÅxÊQÌÉo#R1lF{¹`éò¶H[ûDµwçý¡nt•KÇÉðuŸZŸ¼ÒúœÉdX1¦ˆ‡ô L$´¹’¢1Þùæ˜Ôâ[oTtõ¾j`-3zX ÒóÙ¸msˆ“ :iðÍt?aßþiÛ,nÐäaVø» ÀnèZ089a'd{éúøÖ„,©åË‹Þ)6Óôÿ%M1Ru8»ÔÓU9HŸžsòB¹–¼ÜñŽtšqψEª*Xªb¤ŽºEdb] ª"ç`…!××§ü ½‰¤˜ÓqóõFÁ5N_Á¦å÷› ÏJÊ+ðòÞsÚ:ošËþ G1ļëæÙoè"–]ée#"‚£¡06‹:«Ú•¨¢y ’@¾‹jmä»ü­ [g†¹»Ž ú 0:;íF'~¹€„"Èíu‹œ9oN©)×ix[,•håp¨;˜›%Î 'Ô+p.ˆñxOLƒú`§N²k-©Q&åíQša̶€Oa‚l_†Øú‰ÐnRoí— Ûˆí´2ÿ2Á¬É¶"îß`¯{–<œüä©ÇOê Ž=†SÍ’©DÔÊk 0f¯ÕPmws-eö¾FÂV 1½à´ 9¼k—÷*á´©%!#µOz'àϤB[EFRo×AÊw•+Ñ> Âã ©€ðÍ?“b8ÇLÇ_Ù$LV¨A/7ðH@4v™Po=2¢[|pX,ÕˆYãK:±>%[a:m8jÌ^ÒÆF𚈈7QeVFÅ"z<€èÚ 3!Ý$)ñôw]0VMÿGо,lrÎMÙ¢|Ò°'K‰ö©Ñ¤¦–JSOGÏ$ZŽ4²?…¾šÏü/ê–'u9òørgˆö{êôUƒ›Ï#Øv<9I5/Åy©¤ü@ŽÆ%ãÚæßæ„N‚Ój/pž³ŠéÂ"íbÉaîcY<íz¯sÎ.Ófw@Ç{0›“îþK¦]HWZf¾†t=ÉåÓÂÿA÷ò¸n‚~áßÃa>t˜$SmŠ”Ý¶i‹ç¹cÅ\³÷Kglا³ßK¢¾ šÿ¿Õ±úIfŠîb“¯Cj! î÷³HG“J™öØ[hôÝø…šuN”(¯‰© R ¦ÿè&íÉMi!KE!ÁGÄ':ëÝ»Ji~ñdHÍ›/ÉR“0XXÞÏÔ¸›Ÿ?Úâ¬Wž€Ï2ºåp²÷ÊØí´¦1ˆmEÖi®ñ¢€­<-5Ò‰Ÿ$+–Í4ž ªÚ@÷¡‚¶µ+Ý—pŽXÜ^-"Ñ>_£ó³¼ß¯˜ÞÂôãÈ*…ù…s_9‡OUuyô"fNËᦀï°ü‚Ã#ì\FDÅ ¬gF¨<‘æÇ˜CºláüÀ`OÍr8•% ì6Ì5³úþ* $ ]Ì0² ?"˜õð©vv ¾fÃÜšÚÏâür éE¯Á jauÕé¢dÇ–ìlïî¨Ü›DÿÁ='Ë#p RÔAlSód9>Fí×íà™– æàÕ~I èŠÝd½Ò°ëâ×?¦¬ø´€Ú c~p\eª½R;ˆò/#éÿ炜~KÉ€É:ëá MÀÒS9k»rh½Zî£V¶ÕÜî^®48‚Qó¡Ä&RÄŒÚ"¢,¶ð$æšDÎË—TÅ;5.õÕúà½~¡Í¦G¦st¶BDâžÉðÑ8Ò-[b²l?š¥ö_%ÝŸ^´Hž£›E3ÇÅu%WÞ!ЦÏÁ멨g·m¦ä$”iõ‘ýM9è“d¤=°ª z‘úæÎ+Uy—ûÄOU¢b+׸±ÉõÑ&I¦Fý–Já±³[F¢RÄÞäNt&ëW9òNŠ9”Y}³¡þxÉ~YUƒ"ðäš Î*ÙK-&¯§qr>?R9õ^ØfÉûJ/u–QÆ¢ÏóbŒß8ð]L|`$Å3é0¶K Ÿ±¯°_¹ÊhgæïõZw,S‘ƒY˜~Ëù‡ãóxà)÷=TÜ„}<<ös—•_ñÊNø­·U%]c}n¹+ýº ÿ(²¬çèÖfê›:Zk£µßãPDúK=ŽÙVœ`éŒÁ2òèIgô©Šg³6Õî|¯}Ñ÷M †”aúsÏ"]‰Îù~†Lƒiêú¹M—ðVUØ%—+uOg)Ynê‘! uÝdS‚¬ãmæ +;HÝõH_’dùú’ms.,&{ èʘRoO—ïÛ†,^ñk9/Å(oþEÿ%5à?ñ‚ºSjž²ß-²WÙÈlFá°û2¬pÊ”bæëH™GRμ㟫Ôô°ˆ’ƒåUp!…¨Aã(€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n019024l.pfb0000644000076500001440000011414507056046552016426 0ustar fnevgenyusers€h%!PS-AdobeFont-1.0: NimbusSanL-BoldItal 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans L Bold Italic) readonly def /FamilyName (Nimbus Sans L) readonly def /Weight (Bold) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -111 def /UnderlineThickness 69 def end readonly def /FontName /NimbusSanL-BoldItal def /PaintType 0 def /WMode 0 def /FontBBox {-177 -309 1107 953} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020910 def currentdict end currentfile eexec €Õé ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>o/ᄃ_©¸ºw[éB[{'ƒÅtš€ËG†2˜Ì•Ã>á¶Y¬x•ñòÖO©¸¿e½;i§ÒŒ÷Î毊TE¯{j¸vmÐ/@ɇ a9:ûr¨¸uK©Ù´¶\fFJk¯Š“ÚûD@À%öQ{𴪣 ê¶Ë­Š:ª´J4iNøa“¦úí$Ž­S±nz3‘=‘D²ü©>œu¬ËpÜUÚ»[„ðºy;äT)SêÐè·{®@âHeQ²å,TæiŸVó#kbš²VÆÂð?ß÷äÅŒ­%ðY×–÷Šgnqj"cßã”ØYùs=„‹óiXncƒê áઢsŸh”Š?òæö:H¶O1R–û>á‚“•ià3Œ«=¿ô6v´V7½Ù©T½p ûËaDÅUˆn5’ÚÀ€ø‚—%#2Ž:30Éë<袓ŠÂ5’€ÜÇRZª( öŠT”Ûœ,„Sþ5a­ÜÆ·<6àäúHŽ-3âÌùÈi ÒŽ˜ hA=Šuf6ÚúH ؘxŸbÌL-6ÅnH©‚®Äo VYv¸i‰z>¦RÝkŽ£GÍKú4@FN—JK¼Gsi0ŠÆ{\ T°%eh·´åÔ ¡7þ™§ÊÖè¨t‘™ ¦›àÃôòQ¢cBiÙœüQ,îQjÓNZ©›1:¬RdðåƒdnB‰ôAú º7ðJ….ý øçþERVÕso±Ùµbé%©vRâø{}Î8óáÊß§‰vNHPÖéÖ‰ck`ù îñgmÈ­Ô Î+ìOç'3¿üe¯Jx0ÌüÖdt½Eßèr½ä7ŸŒvû@Ã$œ¨aÒñ›R!è¦@OúíÀ„ÕáÏ>öþÞÒ\§7@?´€;Ö5À\¨Õϛ̜õ22EK‘½)9‡nÕK!*6•1ÄóŠVõœ´„¢ù*iÊÓî¹r IVnß7î8Š™ÂXÜÞY˜åØQáÁ#׳"àjvcAc¬A[˃=#Y”ZÀ³!ÌNÐ` 4ÿ/;`PÔh’Ž·/µ^ ¾ !ªÒ@©'*ST‡ckŠÓ˜¡œºš+g[{ÕûVüük®°¬Ææƒ@.)³wõÌlÖx:û+Û#DYCšáó7ÜAн´F$;vÔ(çÅô€Èó}ŠWYvµkŸÎÉòÞt$Ý…Ï"ÚkÕbêÃÀ¿Mü½ø_ŸQãnMO¤¶qíy8ÐKDŽ䬼:J7L‚8\=¯;A¿IuIý$š‡"njÚÊ9‚ 3P‚cëÛ¬qx¯žøA°Ñ’0دy˜=Qv›‚׺ÇϽƒ9©™šª5z!êæ6Š5þް=¢³ žò.O% "ÖÏ7§†@`‰F““}Ô ƒÃ]vÂ÷µ¼-Èi×óyÉ¿1[ËÁ´ÀsŒ3µMðŒx?êsŠñê;.»?>¤.øÛÃ#˜?ãybÈѼ¿ôÞÜ•jŽKÂxW¥Q`x‡îWŸhä(ø·±Ø\ÕþpWn¤#’®¬x•ûY+pÙnÍGî[1'œÒ}ÚRä{”1C!ÀJènùªÎ#´¬°a›˜ö^çJkÙcKu™6/Ü›âb0-+B{…ƒ¹nz{b­æ¥R„­vŽ{nJ­÷y•–mù †j\'* ħ³Aß?Yj¿ëQþ™ºÓ«=œ#­ ¨Ë¡,·'@hž¶f±q‚¨yŸ»Ø$¿ÌPþd¹Û'GdÅÁðÀ©º‹<åS‘âir9ϵÙpG— ~'·yÚz!]‘‚|±aˆ“·Šì‡CßüÅ´ [‹Ž{Ô ówŸžÄŲd\f˜¿o<=øMºqc˜”—?†ÝŽ3O°Ü#­(RñÏt+¿*˜iô[mKvÒåžo§ŠOðëÐov_ö€¡«ñtVDQ ¨]²ü1XkELÏÞ5ŸþÖ®Æ1áðkŽqüì×Ðx³”¢\:¥ˆ„—ô ¥d6juMo©9~1{DÙªA”^™K¢ÝC}ä^D%³7ÚÚ‚©*ûÔ¾#üåÐ/ĉëàÁSÁ°¼uƒœ&×Çû-§JSÒ7^/7i/Æw ½ 2&é+zälú‘ß*šlHÕ!G½S³Ùm ¨ø¡š¥P¡úŸÑo€íP– ¨,fôž Sˆèe€Z\ë % ^x4Šéø^5Íî ŠS ûÎÉÝá•£©l£­Zâæ >vfA•åWO]¦ŸªÕ%|ÞíшŸÅ»öL¦¿@ðê7# êÛú­xÏïõÝ«Òëþ¤u‡Ü}@0ã E9v**#.½]™ƒÉ'9nxáä†/ø|%­gÙ)΋çíd… ¤¡B~÷êиÐÃÖ‡ § SHTdŸ¤~q/¼‰óIM¶"š‡SάÄa³e´™¿Ûnh„ЃMó7;Ž?òï÷Û71ÕŽÚ¶ šÛ]>2KØ L‚>Àl=B‚êÒt ÆØ”=þ#‘³9élžÓÔœª,ë$F~~a³Mäþu¸º'j²Ô*ÝPrœü›â|×ß7©µtf͵£Ë½˜­¾œa?‚¿î#~馒J@‰ ‹¹aõph‡.„øÐC©>(ÚE:P˜’-õs»R=¸bJ8Öù­éž=‰®"_•Oƒë_åÇ>Û UZæÛþ ŸOZ­Æí…õíàgYŽĈnHÿCʼÎâþûBÄEE›Ú9Oó_B SZ…k U"32ŽÑ~­zÞ6=¢†Ü=| ›´½ñ]§B‹ÂO@t¹l4ðºñ©-ó‘1iZÌköúܬ9sP•£¿<í–ôàÚ@¡ótxÙøFIi5ÑãÒûƒu”Œh;Ïät¥3µZdî¶ F}Û<õVúÖŒcIg3E"•fZà!õQË¿ë=É™œøað0˜,AdˆÞÿdQaR‘àådå.ˆ-P© ¡èS¬ŽåVjy2-ða “ù‰Œ*]ŒÕ§3fžŸEž¡sáJsÃñûüØÆª‚6h÷1…íGarø­ ð¼ £öP}Õ¸¬Ú,:¿+>’U’&ú{ºè8:àŠ}„Ž^´ª_CG.…*ª¬A¨B$eÇßò“˜Ê¹É±¹±A¨û™ÀaáyT" ™èžõW¿¾ äÞg²Õ,õM~ü`ÇÈœ p÷eM¹’#T‚pý‹x[:zÌE½ tÎr-¯:äÖ¯­ýÂÑ0ŽŽ.øºóKÍ}4­¸,ü?{üDû飋Š÷gcŸ]žG{ ïî±3JCø¯H?›¼B’^Ô6Dÿí}«ÇJ¤TùÒxsJXVc˜ Žæò΀8 #“”ì7 Å>X{Èpü3þ|VYa qÜûCV«_/8×WçdJ0°æÑU™1¯²ØjödÀ¹ß†„Q“ëä®C-¸Ç—aUàÛêAvIùùØù >“ri®Y²yIjðÂÍIÛÊØ¾Þ—¶_Ö Ú‡ì$ÚŸ’»2aöhM™w/{à™%¨uÎJgš%à.¦Åÿ? Þ´^Ò_ô™•á=üœN$ ça®M­—ëYê^î¾jLks`„¸6“åe#i~4ãñûŒì¸.ÕzFÖ‘TxUoFhp(íkpr1%DF›6>g¤Ìý#T¯>Ü7•F×'-](·Ç|†ò½•n°£]ö¸>H·ØÏ ›ñ Öyý½­ÀáÎ[mj ’þ,í^Ò¦*©AOâæZ9Á¢Uj TûkëÚ¥Õ¶Uïæ üà^dYˆG†³Ÿ¥9Ù-tnÉÀY/™\cápý?s´ç4÷7siúº#×—jÂWºVoÏ9öu¡ø»öZS¢â:Þm ’s_Jå]«ý³‹ÕEþ/üÕÊ?ëÁrXNáiϘ}N 7ô¤E?p­2ô—Ã}À ˆ¼ÁùÞó7×MÛça{r‚¸91t™ÏQ½Q°™\ÒíÙ%}иMêÚùZ-Ç÷mõ•?ÔTï®^¸ˆêü{M­§pˆ7‘´#d8!¥“¤E¿t§1 £ø[1F£•Ïa`ÅT¸ Z|lÓhBŸÜÜ¢.ö­WÜB¶yò3,ƒZÀ­ZYaß/¦ð^w|ò8Nüe¸fÇ|Ì­_¢Íž5˜žº»t>“?ù¢ÝB“ˆ ²éÊZ7M§iÄžÙÓöI§/ù{éy'›Áæ g$‚£R!}}âàÆ»y–Íßû¸ªr2–àF?~âo.ŠÄêšÔYI¯˜úÀáÁð¯d~h­´Ë7-ÐÌ"Þi}YêÈmrø…¶M¢7wßv-ÏoE”ð™¸ú6g ö¾ÐOX·rþ7Ri½_³Y&ê­ÙÂå¨ÄvAl©ó¤$ÕáAÇ óC@Þûð|ù1iÔ;ÞvDà ¨è«J+¬q[—® Å{²F0BË4±U N@„b’¨DAZXP–+Vp$´+Ér¸å'è3i4ƒy.M' a`O~™DÓ„RXÿ ‘» FÒ·>Lî%¢IK#ôs~Lˆûš#¸»JFA=LØA„7n° &5ïK÷¡t&63qC>ù¡ùǧÏMeÛ"Üû_í^›Ò'^Ý^BÓÒ‰v×õˆ2)³ß 0L+`VäÉ¡’®¦1Óñõ\ä³þ¯Zm‰ˆÑÚÉ Ï o /o /Í øµ;$¹°<ô³±ÆX[ïr!2ö,¾; åÝ¿uçp"Æmç×`É0!/re‰ÐðBÜ·ƒBDDnQ³t²úŠqÅÓ~³ÆÎ7I’î7<~ÙBbVˆÊolX ¸aì|tŠ@AŒ§§€·œIß­†‘CZ$Ïõ/â~'Aiܬ` +ž|³ÑÀöýöý™[Uƒ2ëÆüm>ùª=)å„Õ|'Îrkð(p§bSº _ç¿ký,ËïCž~μølÝ……‰hûë`ɱ(Kòn@Gž¾NݲR*ÔDg&â ~[rœÑR`qƒ «;OÀîF‡Å|jfl&þAƒ3ôqE#üä–¬ÅÓkºIöeF '’î"{Æw´ÏTͼÁ•š µD¼ÐÓYe”ô&J:»êô‡²¡UŽ;Ùÿd¾ËfÙÔç%4¼b¬?Å¥“´s-9†¾î›¯2*ò%n •õ©–ý¢M‡eö®N²ÐJã?¢ øÒ„Žš±˜˜«% |GaÊm]2¸†‡ŸÙõ@'ÁX)crعö úçW•BüËÁ).Ǻ?K7KþA1O¥/ó Ög¨¿ûyDE3#¬¾®zS ^šõ0õ$,Š›îÍIh’”d«°Ý£G6×8=#Tj$ÆüšvŒìõã¦cŠPá+žˆUãe?)§~'\¯˜VY0µlžÌgï+ £N…ƒªa³ÃŸKzÔ§Oª"Ô¥öMßÑŸ|T\]nYÔ}åIõzä£ÂЈu• l.«€R÷ 4C ¿KZhõßqü`ŸâDž&X·AC™&ð+Q­þuáÆ°êVP|=ÉÝ—ÒÅ“I²¦#÷W¡/XaóWãâl§Þ¾6¨Jƒ¶­÷Ü1’ÆPü×Ñøt³¢ ç.º1‡¬±P ´3ñÇi‰ÞŽT5`š#Uë|Åu«v;fÃp¶ï#“-¹Ú‡ËªÏ…ÑÈA&l+¿„Õ³o°¢ˆÄðO4þÔ.Í{Řç5UbÁÜ—Ö8ïjÜa2æ¹/άO ¯f¤V¢Ñ8Y61âMô€€Þ°H„O°âé7B¿õ\èÔ‚LFÀ?á,I4\ÊɢʢƒD?n—Úy–8c¿zɻå‚×¢bY¼ÿ—j*Ü÷ƒ©¿É¢ºÄ³öv]‘Åd° øW«úÊã$p[àu~’Ø-ß§1ð´Ph/÷&Ø"àÑŸ ù®ÙWéhêlÄý_À%­3Kùm"P^ÇÁÞ¸|•Ü#™ÿƒ]c$5E°vgß66ÄõÂ!£f0GÏ“³««¹–[‡÷>‹Ä‚ÃåEØÑF‰×ºÏŒj^ÁñöýóÙ #+V Ñ&ÀÒðWdæ ¡(/G«É‰Õ+–ÏÙõ*¾ 7ZÄsÀE+rûÚdy©÷°?>å()_=A¿Ù6Ï Ä1–Ò˜ì䬘K7 Á",@3F¨¼ýFÎÊù²‚ÓH\§X"¸i6ÓݺE¾ÚŠ’6«i;‹°2Ñ ÇvÞÜÀÁIv €/Ï”.{¹Ž½)UNÓ¿ÇaIQǼöDáf]ŒD2¯ü¿·¢(¥„Ž…ˆ~ y\7óË !¯ñ¨«òÈáȃö1ƒë‹à¶íšp¬Šˆy†¨KßXÆAÖGëçà—"<²5ùÆ7æ€õ=¿‘@~C(½M'WY°v~28¾ôT!3áeb qÛ«é.÷q»øáßUÄ-$M¼ªàÙ ÖO;ð,bÛFý­6i [gýŸ…˜­Ou柗çÙw]ÝX}ÜŒòW#Öh½Ø>$Ï…\ŽŠ«Lª,í³Jæ'ûCä8,›ZÛZRnþïÔN¯(pŽö)êjl²=´”SÎ7 -–†ýq6SØ9^’¡Ü;X¤Øð¹¤¬Î¸ˆÔRrQAÿzæ}¿Ô^™1kX éÉÔ ›ÝæRM‘€Ö·åA85÷2®P87Âà!ùx½d’÷ºa øjBRÌdaRfø‚`˜éPà Ù,ŠëBmR"E« è<ÑfòD^ ¨±”ÙÀª •PÇȬ÷D‘k‘7E€`Q®.ÙçµGi³Ãޭܨl?#›?Ý´mcCûêôA5÷ï^¢-;æä;ª+ýŽ er›¤býeøå¼YaFÃCÌJ=1\ ø £xœ5÷Ö¾÷êíÈú’íéÃßOž“g9Øó¾ÍD^I ½z;dÁꂽDE§Ò)ÂÛa½oPÖÃãð(\Õ¤€¡É²1v.sþåt¨³Å»ì6²½8È:)\E±#¾W†2€‚âÉŒ‡Ülo‘)cɲXLáIÒ‡'‘ô ä»(X.’{ ¸wì¤ƒŠ£^î’W¬cÎë0ý®Ik]|³VÂCø²JÀ¸æ+t¤f†de­ý-Ö1° wÀ}Ìc¸¨Ïv”uP.¢«Ä d¤0ÀªuÁ‹Q…,Ž¢t)ÎçZH·N7; ø‘68¨mHêåbÏYqáªsy_­ê „qú6bc2…óóŠWýèA<´²À96^~ÿ>•Qì>`•]Õa3Ô}\ õÊSl³)'£oõ»’©kjß¾¨õj+ÊH¤À‹"™žÕ³ság˜r„ÿ÷•ea*QõP¶VÓša¶yí'€t”}]Áï'V°De›¯MyÇù>…tŸš-’F6€ÁÎŽay#‹NÜf›ã˜„•~Zã49Æ„ êËõ"ä…J'Lt{k¶>¡Çz$Õüé¹G)m¡[`dà€W뼄µÿÜ“Íáyæ8ÙZ¹Þ;¨I¹«+Ý.‚»j'*‹¤ØãÓùmt°üÑõAv·ó&VµÃõãd…µß>Ü‘Ï6TeÂsB½Í½½â¼®kæA²I©~¡ ~á©ia1êõi»«ñ6r„- ~ÙXáÈ,r2ìš‚é_ôã6û½-S¦Ó5[½…Öma`òD‚¾øûëò{a˜‡-ˆ /6‘Ùù¨"?{ª¿ÉY ²_ëÎA§‡Š8 ?ÌåÓ)¬V+ˆ™‡ÂŠòЖü.äîë¦059[w1JûÀ’§Ú³>z¯}Ô”j,0Ö4ð(r,ñš;9TéÄVø4œ$”dÓâ.ÏÏ/© Ø´·²’¸º ½¡µæe-já^MJ¢L¾ŒžÞÏ*P^?Pˆ2—ØMˆÛÂRs“ä×õ¯Rk+ôiO-Ñöà]´â]p¡eÄ•l×=ƒÀSòøZœ¥§†¨ÍžT ¸{»~Êk™/ƒ ƒÚÛÂÙà¶F$ÆÇu$Ê:æ;vWÅŒTð»—±ÚyxƒvNÅÆ’ðD~^ÞøU:}ÈÝ•¸úuœü5 š¬FßMé‚yí}ìžCðÀ˜¿ä¦ó¸ŒÙK½ý ›BBsóqÆõ…¶!ü9ö«B±÷MYjô4ŠmCÆv®ÕÈɳ³õè¤ò†¨¶jå|ÔJ¢ñ·z»B\T-ü‹ÔëH³55à>N\¥ð%Ab_KπϫÛ{‡šYÈØªœâêÕòUJÅ©‡â+Œ¤‚²æ¾x-ÅîùF‰v‚³Éì€M6Ôkn& d¨”ªiW¥×…uÀ¬à8+(º”ª ™ˆ>RÞ‹vçíªŠSc‰‚ƒeõ—!»f‰Å+ŽFëæÄ|Úã@$tF°HóH¡ è;Ad¡Pf÷sd;— ,¸Fü“–U”à6OCÿe¥\¢Î5qŒë¹£µ¶ÊndDÏÔ–3Öh×öŽÁVSp8HS™+ê6hX»©ïœöäfE//‚z8ê1%èNÌ%„ÿôg®‡K|BNLûŠÛÑãù®Jâ#U‰-¹>¼åØèëŒRu Ï’”øê‘¡nšP¯86 ËÚKÓ¿Ø_>èËk²õ0׃» / 7ûE º©;ð.fUyʙЄ!<0üâÙ°øþÅUmwrX§¼!Cž Ü)oYühœºsijÐìuÚ'ózA¾h @Ï9Û‘ÝÂñg¿í.Ebìá&f™ÙE¦âRCX•Žøã¤E…xÛW5˜ÂLyO ݤšôKôÀáÀÒl@–›VámD 2aC•;åv‚Õ¤ÝYvDÎVth7\ñTerw ºÌ%·Brˆ ‘¬ÇÉ´¹…Át>¥Øöã6>(È«ÜÇ/WøÁdm£H …{~/âj>Ëß¼]€è/·°N_ûÌ­§Ÿn;òé°¨a9¬w¥¢-7F½Ü9ñ®RMyÆùcØCŸEŠÇ^Ö$)rIíÙ^ ßñƒÅñĨ?º,Ê1òŠ®Ú¨Wx_t¤eå¯-]RtQY}RãïYÜ^ï3¡b½½Mñ¼%žö¾qÝœ©‘‚å Ìq›öR˜¨ëAñdaHQ øâù‰ Ä¿¯š}eaêüÛé Áÿiyîp $Ö˜ÕiîÂvã¥sPèr-˜}÷ÅÇñÌíÅwíÖ0( †ÛÊ‹Sóà¶q „“=g¦à×p¡¸ÚIMÌ¿ßÁɎ憴¬><¿ñjVœÂ5M{r\QkOõîp\¸èå_¿Œ¹J €K©Ž7óŽkŽõ#käôE²/<ï›V–ñ Ëwwíú0δû0)­ÏåÂÅË-KÚNüuËi¸—I<5 ‡§4£XîqS3–¬Þçh/¬¶C ¾4„êÌÛÃʲ,‘«Î*wˆôOâ`SPÍ•   Ø ÎÐÆâˆéÆmxz±ÖϘÙv€3Äßd¿™î….8`\‘1'~ƒ=0>ؽÙBÕ#$å|AqÁËÏV}ã»äϯVd¼µ§c¸0¢°¢#LG†DØÄŠZ½†ËŒÞí€xŽ#YÛÑûq>æ3§4ç …5VDL#ð{Š=Óû^,—.Ž è¬no*ÜñØg2EÓ·“‡òe+*Žó4Ã"/˜Ý+"Ïû×Þx\áu¹!iàa'ó(_\£[GnÅWyuàEŸÊüHý6ÓÎSNä7èÌp8¬úF+ [AǤ" Эf®û¢ f‰l»<äáÜ>")§à0’& à9z°Ã¹„«ºKi-ÎmJþ<ŽçëcÁ ª€ úh1yZË``8pX7#Ó–&ñÞcViò<1$°X¬lÄоé|á]÷ðÙq§ò®zSÿ÷å ºæãÿ Ï'ŠOshEã!‘aS¤É±€”f¿"@â§Å>–à¯è5z~çç[;ä8œ1ò½M7Ÿ›}qº| ê4çåÑ#¿e?&kb\rab¹ ŠC¡ë¡e,* ïèÃèæd,Ÿ ›Ö—œô|‰SÍTàB¥÷»¨«JQ Ve5½7?»kØÜ%,6ñÌ+Ì5A"}øöôŽM7ÔÀçaŒ-¤´‘Slïaž9Ët_µÇ経ŸÉ$΀Wì%|¾3f f„ÓÜ${δ1š_œÛr]í.æb øR.|†Ÿì¯®L^>Í•^Gû-XÕmWèms.Œ¦Í‹?·|²œ½(g*Udvù'«:L¥#âÀœãOVñ´^»?ËÈýCZÕ±L€8(õ¨ºÈ'Ƈ"î…åKÚצߔ#ýøŒRì„ÈŒNËGÑ(]÷F™CA£~Åû0Æú£ÔË^2tôÁwd¬=UåÍCEঀ{P=Á¯ÿ0.ÎCê‡lÅ Ãq~aŸhû渄Ɗþ0¦ÃòXɔĹm@CæNLe:¼O&î‰äó<¶b93ižœlÀ‚y)ôå¾"@©<¨;Zºál§¸îQû’„~'³ÉðËš&©:F\#=|#qŽ:‰C‘ƒÇ–ì¿ærun?˜Ïé¡w0˜„yËÆG׺‘Ý``|ÃY†¾¸œQÊ]\$Ó²^<ƒOtb‹ö®ZÁsZ#¿w£û­ÔƒË‚‚%Ö!fY¨ª=œÍi,¯ñSÇ ª9JÒâü}~ºT%«Ç¡F‘’ü-ÿlA¿¢_¶Õzt”~%ÉŽ’—“AXŸjNd饱ÏçÏþI³`½Åý‡B ÏîE:Žs]3‹:Ã?bÞŽ‘ˆi-á5îÂQh)¾Õ Gh9˜pwÇ8\:wÞàæXÄ+aÚdNÚŽ¶µˆ>2….š 7üF4Æœ ö²¥ý¨³ú œ€-J{|’á°^}«DAa4ç+ÝãûOœÖ à´dìÅ|TJ¤ëªÉv`\MT˜­¸ƒâs°x3úph6Wã*^¶ #+<Íœ¹ê횆A‡€®MK$5rµ¥yìˆè¸³PYû|Q©F’ÞqÔOXg(*²õÌöÕŽU©t66‹0Ú<@WárÛ|³.ÔV÷:rÓS·®ÉR›˜:ÖÍãªx÷ÇK^Ôc·Èmhœ,´ê§5•åïŒq½Y7ô IHÏ8¤^¢CFÐÍÚRÄmÐ lR-:3Pu`þÃé1#l_;/¢q¾¨‰í¢‡‘žë+:žÓ“Ï0~@"¿ûªGÅî#<˜|+·qc¾C™Ó‹—Æ­—¹ú¸K“ «¹–›úeŠÙO÷.ß3¸oÄÐtoùáxS0š{?•l#Z×+Ô‰}7¼œ´Ñ|koˆÊwhBÂeÙ? ’k> „ßè©>Þc¹ Ð'D6ƒ yŒ§M^näâ|O<^O]ÒÎ C€`#• Ïí’@+7ˆ—¥ogxôËæ2Òqü šUŠF–åpa\å¦bš8ö6ÌcêYLÛµšN8Rf‘@áöv•¯+<à{„W§„t|[“xöá#?Ù”å(ð¸ýX²?®PÕîô@ÏEu™™„A/ýìñ.¢¸äQ<ò,€‡êd©‹Ê¹­g»e>q»W†cÕáL\‹'K’x&«OYì&ãh’!ºŸ7IÜdÌ€Ù”I›N[½xØÓƒ¶©ÛßÒæÝ°ŠDû±§YÒME9³¯su¹ôGG¹ãZ“yÚ ï4ü=Å|KøÍ½ à†ï‹"=£Ð=%ؘ٠U¾ä\ž¦W@×ÎÝþùáCJÔ~¶|krV“43ÞUy"lë-{ø…£C£zâ|ݦT´ÎwèÅ»O”F2÷V5SÍÏ{‰³'&ç!àÛX®€4vݶrÀÖê¬>Ɉš4­a°_Kf6øÕfõÞ<µ'p*«›{È÷CÇýþfû¿LÉåOhì=3ë7…D¨8–ÿ(‰:輄f‹ \1Õ"ÓOʈ lóÀ«5fuâ-àìâɇÉ-[ÝÛÓ÷ús ¢)¤~T“®»ù6æxùÂu›l%uÛ"ãcÍ$9—• ©鬌òÃÇ^" ˜SŽ?XhöJj‰ß|ƒ2‚܃É%æÛÁ0ˆÇ¦’Ù©œ‘VÅõ.ðHSøxÅS×àN·Á¥p¤6eIA;öÑhë^³Ñ˜ÃíG8æÍÞÛ¸³¬LÚ¬M{“eÏo¢z¨|ñ·J Mû«{¡[Ñ‹&R;ÅŠÿxïo6" úZ2V£š±çÌg"À6Qð*aÕN€ž£ò%C>.Ìtk1ûÉõÞd:§‹¤mšè K0óëIZÝ•ƒæµ¸l{+QlhAÙñݶ±ï`¤ÐB»túO Ð ‡Èf/êÄzM‰ü&.s·(ž&î¯þZˆ€0æyf×\ÒQp$/SÅ2~ OBävI¯¨-~¤¼QùÑ{J²Ð,=$MÆj¡¤ßQ¿ûWGýzri,àc¹]¸«9±$oTœ–†÷#ÇOlšÄ¹pEB<]°ãÕ# o°æ„³¶Ãt°aŽMt({<‘ñW)?ê¿þÊ«"]U.MK«71e„Ÿb]€ãÞ #2ÿÀ»ôöØ} C+v#læõ6NåÇ{,É/0ºÌçƒÄ }¸~ILàµd¾¾/ó^Hl^j¬Zá“?÷5-H6ìzÜ~'Å6ç"Ìš+]h_Ý&ÏËapLñæê x[øçðÆ”0çQ‚àq*Žƒëk7ø]9‰ÜsõÚBYn‰DòŠ4ŽlYlèÅò®{ö½þ5’«§ш€¿Eæ1 G’SŠŠë2¡[ÕzÆŒ·¬Ãe㢰ϾÌöÆc¼ð °»9¨QgrÌÊ›û:cÓ0Rmf5GwÕݬ-!yü±WÝc¡Oç B³,£8‘ä[¤!†f¬ŸÖÌ‚?¹æ$ï›ÿ yÀbÛ‚€¬$&‹;þù1XkELÏÞq5ƒÖz1um¶•…gýÐ$"w„Z˜æ‹Äš™LëÀa‡Ä¢öv€ùÎVëK4KÙ ¸_ø*HÇø}ÿfBΔþÜCú˜mýâ–fõy“üÂu*utÏØçÕýN°f…ñ¨â\5bŸ¾¥‚ts >v< ³QüBIÂ.(qJé)‰Ã‚èú•ä3PÜ1š¨?¤œ–ö[ðÓùœ²À5‚%@” ¤‡†IFǺÃI(~ÅïN›˜¸µúÑCk¾ºXÔ6ƒI½ƒ À—pêE¸vn¼\àö8hfJµîü{‚uë—àá8l”iY•Œ_½J´7+$J²¥î:,(6uôºÀ{þŸêüMÑö9ŽÓM°g¡ÙeyÉx²Ë0¤fôñĄ́ÙêpEŸ©;/½ÿò&õ‚ & }ë§ëW£Z Ž}pCîµéÚÄÕÚ>+e­ÎíÎÔ—0I;Ï­b p;Â"ÄiЄCéÌÑZÑý!ÆŽ9‚ÅXöûäö‚eÀÝÿ¦‚ßX{Õ4ðí]ùˆ¿Ê@Ç¿s…É“eê.@AšÊo—ØÿÕ¼¡î€×oî°Ë8s¶˜óH}I#OzǬ—Ð+ªñA-RZæîìÞ‰K¼¨±zpì•»Éb`Ã&“±e:àònG’GYË™]°Þµ9 ˆÒƒ>nSSï~‘AñøÐÔR jÖ‡¬0°kÖ•çÍš¢Çô7Thz,Ü…5ï¬kíN ™DkU1µ;w¶‘ЉËûî1ž«2¡îÕVs~K°=D`õ¸þw0›X–âyö¯î&1yqHüÉN¨mÜ䆟–{$m”±&«®-•­Ñ‰43®}äÝ x¶¦náƒ.]6¸0“@ŽoËŠéôƵ%X1y[»ê9ß?© ºÃ¤îU,~×áõ§ÜA©µ'¢IV2j†ÃoÚ²Úk=e^þ«¶ ‰ý+PïÖˆ·a’_ÙOf(ŸÜ­ ­êEÃ(›}EËy«ýHûõ˸ê¿-p;ã‚o_ÕƒÉ*‰LÉÝ…4 =cᆚq“ã`F:Ü }ä¹0Î1ò·9t€Ÿ1CæÛÿqìêúqÛ÷UŸeöOa­}™11âµÄã&ì3‰µÛát(ï—èFyM½ƒ t—íY‹ZðOÏO†\‰ruøØ¡þ×[ÌñÒ!é%i5û«:°i>÷÷ØËá”Bâô‚‰q‘öwA«b’P9s[àJ 1”tF~j¥uëMñ¸³·ÞWNW~fHcåBÀ"¤E£()>Nx‹­fP¿¹¶È§u?ˆ`dz:£fH½ï£“$tDcó‡1oq\Û1’Ü_í.õZ2ç§7º¹30:}b)>9ö3à$Éß‚u›ëC~NÞÅf€9ë§#Žô÷™‹hj†¥ÝÙ‡.M»„gDŒ¬>Bß„ì¹*`0¡=2†gï—ßv^ó¹£ò¦Gí îõšî{ȃž2ÃîSÚBWHn:Íâút§ÎƒëåOý8z“ù³ÒXeìÁ¢P¢Ê®‡åJF[e´`ˆJ§Ë…|ε1É7í)“:¯Á}§x  :úÕ7RËa•ÿêgD–Èœ„é)òï;¢gÝñY ô}Рi¹küf¹üÛ ï™1Mx™³ÀP]Ñu¨6Àµ™&ffLîÅ ´é…wÉ‚—L¬à‡/ÁXÎìâ2'ˆŽd…tõvWx½k¨Ã!Ž–;ZÙúg¡ˆ#¯\}盡 ¡æˆåœ:Jšl^­k·¿Z²¾§RlQ…Sr PKë¾)?Œz¢ÄT˜Z¦bþÿoªîþ¾|m}EˆáF;«è;ÙÍ4ù\œ—v3ʶ³d™²_@~b±ø©}Q‰£¨*º,¢‹Œ—LòÂÞÑhΊ:—ÈUÁ,QørÈ®3ê—¼•ÌŸé<—š2°^2n' DîÅeÃò船‰Ã%U¥bºóŰB‰›¯“TñðÚİœ2Ë,f&yÖ¶’\a[ö4ê\êIV¢Àß 8ð¨]ê·¶ÁV‘øq˜×¼íEÍ"öŸÈ^gViJ@ÛL›òÜ9#D+›œ= SPØßæFò0^Në¥a¿…êêåM{Ó­%n•ëj©*¤)×âYZl‡©”RYP&ÃÛYÓëŒÁëŠkñ‚F†1f žzŒ/T;½µ¥…’(XØ~‡–#ç/ò‚?°&(e«+^ºŠ‚@£Ó†N¡§ªt:˜àžjm×áÑPGd¨ >úHxA™jü!O¦FJY1Õrcÿ«ó2Ýp*Äÿ°¢‚u­9¤h€Z@)ú;òî?üg«înWÆzM•Õj‹&à8á-åK¤Âù+ÿ|P,ZÎÿXJ=¤öÇÔ=àòöÄ®°—ÿB:òKž$á0ÙÁ7·vêYQ®•Ê0€ÝSwÎ ý®ø1)'µÇ7|I€“Ré5y¹C-·šøŠù-;®¯ŒR*Ô 8´Œ àêDçT|´IõQ;­GK#8½‘•Îä*žU\8ú{•ü<0-RÌO²AÖÄ'1_Û.GÜ{ý¨“š¨ÚÍ3ÖÄäõôÉîw¢ú».nÑ2JwøÂ ¶!>\¥ì_ì?`—©œh:î'kó~¾Tôñý°N#ݑ̵-cl¦EœýaMÊZ0eYÆä§‘Tº}(û¥s#UO½TîÁ· XÞ¶i›;÷s(½ûe¼M-íèˆöPiuçØ1C|PV6‰{ÔÖiƒµE7xQádš¨ÛO0ÁÚE?~×…éÌWÙ°Ê Ú0ÉSá–Þפf$– 55²ùìñË^`HãÅÖúÿFÇìÇ»Õ0ùþ/;“üØémã/Nû$4éH#K.ç>ö‡Æòö+;)›)~óÒˆåséÜ‘!«™]?ýÊsgÀòÝáŸe¢'«H&Ùœî! PÉq‚+zU­n=êæ¼·|g^½tþçæÏ7”šï$åõ%ÏÍ…Ù…Ö{LíSúèa³G&ùÙ̃WðÍðOiíæúDl!nPEðR\ÃbY.Ö}£SÙ(K—_ÓÁÕôØ~¥¤ÀæÈÈ™îpM÷…qá·övÉ–Äéo⪦šŸÏݲ*ò£“zóéŠOçÒ5di¤'D²FÕ“o mèÒÝ Õž½MŽ7ªÛv§—óLNx#Ÿ5ıˆÍ`1D>ÇÞ*ã$Ý÷4ßÀE‰§ü'%yÉ:Qo+";Sl¬Â§ŒFå J;$JÅ&ý¥š Cx4Þëð‡eoóo®°xj=,ý—@3ÈÛfÃðR´žuÝi.›Ð$Sžà6©—ƒ—› „,ö¥ÃÝCÒøñ#v‰I?|½¶Ÿ… $Iì¹F&Œ,óP³ýKfNá c6C'±jÙ)^ü|’¥}~’¿xk|4púnÎd…œ$"X¸]aFðJ[áøvÉÞóoÈiÛz4G^QSJ;íÖŸ*xÀs¯Í~þX€ÿMŒŽEÍ^-ø¡ê'¸rzlEnkŸ…Ïœ¹nƒø|Œ¿¿e¤Þnx…a®,¥P™‘»ôïË“¡Õ÷m,7:äÇâ~7ÍJ‹?´‹Æ(îÕIß› (îO¬ƒÞGm°½xè²Ôߎ`Ús°1ËŽí—Ù—l÷³’‹½Ûÿñ´q©çß[2e¢âQ8šüæ"fزÿÍ{»ô=€?z(uY€™R¼§] ´5f:ÖÒZLÅWqíB2ðk7ÄWCqÒh™«Í|uîÚNÕXH9Î9¿kÅÌB¥ÄÛÌY´8dǬ…ûób(F7Ä9Ÿþ·ÏÜX¼&›¬Œ\ìºHš{ßÊB%Åfþñx KÎz8-Ï…™…ʺҷJñèrDF¬«×^O”$ó¯d¦ð ¹¶z '$ÿõ n¸>³ùÓT~A˜sF+Ó8=¨5:ï>³Û4ÁLÏ»Sƒ¿¦¿–ŸeŒd!bû“†f›Ñ›Èîêwö0XqšZ-ø‚ ¹è¾"Pð}áÐUŽ¢6`Y>-Oá;ðÝeÎ<~yBìRÜKBOÖW&ßvjiA’ÔÖ?¥7ÁŒgÿvŸðmHÇ:>9 ªm+C×Õ‚ÓŒ`9±_Ê®ö-CùJfWEâì N ˆ;BÄ º•‰#ë¹áñwÉeòŒI[¼¢ÕW96< ìa¦îH§u–º Ö4i'jHĉñòetz/$x§D#C:§zvŠ=«Î-ñîä:ßq îDøé>P^¶•£ÌŸk’ˆM’sQ^0ÊaŠd¡'¦•BZ… ½ÛÀá²ÂhɘRœA7Q%ÒëdtMdØëv†twœÛtÈæYQ·E±æ\Y'GR–ЭžTè`þêÿîe¾)Ή¥Ó•·©= Mü½%’¨'m)aÞØé9²T^ªÂx Ô˜·’ªo&¶0ÛIŒÜ¡ø/Ú™þµõ³ºn@ûHÂÎâ¡#»§pÆã´*iþ±²º){ÝZiöã£}_¶Ý µ©|" u¨š4L¦ÿ+±‡­F*cû“í1S¡#‡¹#̽s¬"-eÅ’ µ]~¾¹³îŃSbE n[&:釬ÕK2·¡­v(×Z™(Á¯4)õcT¢É¿â±x¯XŽRµYEÈEaÓÚPL×EN™Îy :®ô™;¯uuš˜ðçC‚vôøìbHãHL„'u­®«T‰ð˜°KHtñò2ù1­Þ áBe¨²˜aDI±§TˆƒÀNý‰àÈèƒ,Cȹˆœª½‡¾š` ~—έ0¦øç¥Ö«: 8mΉÿ¿×1;Ú©³KC2½ë…¡² ¥3ã–Øñ‹O3$}”ä™Bl¤ ¦H·ð0={fWÕ®ý€Ë!%8—¥˜ßî¿_zê ê´VöÐä³HG¶ÎÄÜ"êUùD©s‚ÏRAíŠhàÖÕØœ"±úܬ9sP•£¿<Ý’6ßí)_5¸M7wZQ ?š¨y²²ŽJ;ý•]î‹‹’­é£GóÖt¹¾éö÷¾+̈»µ!@Läcü›Þê ¢|ê &A€’JÿÚåÒ ^ž½Eî¤h6ç‡)•‰é¢†×!OTÉ‚Ú2H S쿽NèÊñ‚ï†[äôˆö±„K£F=Ó¿¹ƒ·#Åž$ý;ŠÖ˜¾£¹âµ¨S3ï“<%,3]ê%s<Ðqæ×ìp„@VHé՘ƛ{ë@úÔRo¾ÈÁÊôè KRHùF •}KRK®šÓƒú…=€(èá¿ ˜,Ñ‚ýžŸkö¹C<ŸÊuœSÞbIâ´á7ó¦)zK~o$M—.Io´*n0”o kP~"ViŸMʰ5»ÌѸ¿Ëm–OÃ^é¢îLNÑóp·)Ö»­;‚:ÏÒúÔíúªÚþçŽî ÖŒ2iá:èœÑǰÁˆÝo³†Õ7Ïä³!¯&Ì’ù@,/8Ta™J}GÌ­ÛBgSå$4†FŽç´œUÀ£æáüéB‡ÇÇp#‹ü÷¯<ÚÜâþmà³ÖQúþ æ|ˆ)CªXùhÁy+ŠtÅTèr|èþi½RµY[3:c W¢¯¨(<80‡õnY ލ¥§zKUW"6ÈÉÇ›ãº7 óÁ¯ì‹ ø¥§á™MÆàÙ¢W!Êlÿ܈‰ߨËQÑüÐy_ÀWHgçÐW²F»$Œ·Yåø»˜å¢“BÔÈv]=Ùg·s½0®š]>èRWc\r…TãOä ÐX×·¦$¢NšfA'ÜU¬º(1p‚寖,ý<´ð×®Î&HFfÈœùŸï"ŠPŸ®'†sÍÓ­®•´7)v³àµFiIÔ1ß)ŠvÁÈì C[…¨«¼WN=??—ÚSÚ@]˜2âRn6¥=Ô"Ñ~æôfñ‹4?ýŠ©a°5øÖ²™'Ux˜«@¹ÆK:‰Ëê¤OÂYïü‘°T ½ÏW`H _`«£¼tEÞ†äÔ’ ­ÊŽ‹ýtCеÚuÒ W€çW+¤Áø(I˜1Ȉ ¬}áËKœáö"îWj_Mþ§àѰ]Æ­9‰³¸0Š8éÌ“¹®c‚\0 Ùø6ÍãØO ]¦pá3>h¿â¡l3¢XðrD­œõjOFð&Dý*û‘"D; ¸™Dù×7ý¯/mêU~¶¾ %áçBÐõܨe¥q¦12ŸÑÈGPE‰|…U¥¡H›„ZhY&„ñ“–Ŷ¾üWtg‹OÇLV•÷ç<„&鈼¨¹ŽQC=×n ”¾Õ×È‹UßÜ£ŒÿˆZ EÚ’°æªúµ¬(¿ñ§…>¸5ÍéÂYsÈè)Y×Afl¶1…È9ZÆ—2¤žs‡K={qSOÝÛq»-¥äab¡ÖRˆ ÷@«´ä»3·ÚØóÝÜ«ç0'ô¸¶lytZAU/•÷„Ýôb3¥¦ç;›o²àŸ R_ÔI®É;Éâ‰Xn€)£˜ÚYGóµì=qXŠ jX:jì41R¼5çð3um€=ߦz>A½TøÌ¢Rƒ~jîµ>ú@ÎoÀS\ðscOà ~×q|ž·ŒKB³ÚØU“‰6ÑV¬ yÛ4ÉZ„ÍúÌ]~J¸¿VÖ<|»f¨¢N“°-Y{懽0ñÃB\A\s2v7ÿëLË ]õØõ°ý…«G–D ·§Òfsv‘,ÔŒÃ;xè;ÿ¼zÚ}ÏüLîñ%ÉŽS&Ä”Þ÷±ˆOg)2º;¬Ujàe•ûÖîBqm׺/<ÞÅ’b„rþÀKÐCMlèÑòWVN§úNqðdªïéÎAG©ÍO^G Ë6–±Áûü‡T– Ɉ㽴îRÙ¸v–P3i7?š›3º´Ét{V ³Vé; ´2¾\nG62ÍÜÒÂÇÄO‡ëJF¾ œSp_‡h¡5ëÒœSœ;œ-˵3(³JÉr)ï”~ªpé\Héd}{eþWû-óYä Ô+O»3·Ú í~øÞ·áÎÿ×U‰‘â†>ôCiiñîú¬dvb¬Ú¼Š§Ïîk!³Îq"ÈÆ˜ýù ¹C(üÈ–Ä»æà§¤AXBÀ Ýo¬»K œjµH‘‹=—_Xu½51²µðîö!¸dÒúQ¶þtŒºradaÀŠÕni†ž–[@ä/Qb›‰ ™Ô‡ÙøáXz"ëNCs!ØåÉ›¨“OÁ‰† šÑ­kÞųր^“Ü¢ƒo˜¯è¡7„•ʶx¢Ý=h‰ò©fÕ€¹$Wº¢í1•GÓ6„<ðOz¸ççÊŸ°×ð‡«ªÅ…í²NK›5ÀbÂ%&,,|-pâ±´Å'mµ›fdÆ|£ ÆÚw| ˆ ­l…G)/BU©ÒÝTUäªCvÊ 3O(ÚúG®Pn}ü›ß‘GPFê—/emÇõqÆØžÎZõx¡ùeÚØ|ŽºOì­o2YXôfjþ0¼ß~dV|€Ñ‚ÿ;£—;³ë}`­¿°?G5[âµLä•ã¾C„T¡¦¿Á¿‹+Kšöû3c ]é¡K¡é)-1œV'zv …]e¦z„¸¥ý1lçyt~¹Kütžê=îÀ"Ž„.Ë™ôçHZfk6ÎÂ/Ï›éÞR›´XXe|ªRV¶žÿTÚÂÄP>"Î[êt'I—Ø´(m!”óÿxG}ް€3Œq«‰Õûœ’pÚjþ‚{í) )ˆç†”ôÐË>­‚C]2Çt5ÉßSÞá_^Dϲ& €æÎS2ç§„ZòÛ)ЍøÑ79G $ˆÊ²ƒqKJ°³óÏ8N<ÞVéx¯O>÷G j¨óæxÞƒiñªÀk×}Îä£%¶ìº"ñ?iZ̼4õ~í¦•µË^_2§Ñ͵áÿ÷Ê6Inã·C˜ÑC¤2›Jgÿ”V}Óù³Ôô-†dõf2LÓøŠŽÅ‡W'Ããc‡bæXü™QQ*Ãè#¬îÄB¬hGò³)æÈWhò,ÌJþž|M>V[𣠒”~ÓΞ”¯î•áÛ×·¨0,d˜ì­Œ‡œ·E¤;ÿWþê&Azì@ÏŠéä¥OºPe»I&l”÷¢M¦ˆÜLKi²ððâSº®a‘T°Ÿ©;CYÙR~üÓ‹zcúü4Æå¸£>Zú`yC©¼-E(Åní%<Œy•sjH•ÏÓëU"Îù£ÑiyÕÍ8Fz©É·”‚n~õ ÎÅ¢†h;O^Zûà—[EÄP=àKøôÜî‹)\¥öl|±yWâ#>oãÁa1ÿ*:Û|x|s´^Ú<÷èØSͧΤÕçZbgj¿Q~0üRù}®Mõ­ö“ÖÔÃé¾ xM|¬rÆÞ_ä]ëÛ‰òQ]áÒù‘Öþ‡$ð÷ÿFûXMoá¾]@#IþÆ…5mhð?.åæ^›Z€Ð%·§eiµ´£Äg2Ù®<8Ú?6CÝÆ5%TðvåÁ~e©-#O¨¥ŸÀ ~GVuQì«×8€–¾ÚZë¿5ÚŸÒΜH;f)üv½Ç‰ ¶%ï8 ô4¬ÁÅõ·þjØ­;«8ÇMîs$C9:=b–ÖŒø   Úí(Ê8CV#_…mh¡ÝñËAo©Â}õÚà“«k(ÆÀA²žå!‡žO08[Ÿjç?ðj ®Ôó©„ý<¿‰ßüº­þø5·»cj,áå˜û ßÉ£@êÆ‚Ð~›€wFÁèkµ¦9 ȤLniÈõ†:T;)|ýWM4 ò]ïæã†`Ô¨/¢Ý…ÜÁø;ý DÉ£Ä#Ô7oD Â6ON¯a$òM*Ö5‡î¾1À)‰Je¾Èœ6&7~%Ó?Ì$ªqøÁ”$cÕeCŽ.ãáìZ=‡»§púçq´YÿKoò;תåârÝÄ4§!nûëæïk²Þè…=ÿÄd¹yiïƒ>CTYNë°®B•ªŸ,>”k;ÕyˆWòñµ¨~&.×í!Zg{A-€‰»9”­cÖ(kißIÂÕÅCÈ3¿È÷¿·´ÛÁ8 NÄT®?>¬°v6™Øü°àoýëN»Âœ°\øœ\l¼¡¹Hc„\6cyG𻿗˜>OF>ä+ jç·®°÷œü‘½v7mŠp⣛ÌWdÜë£ÐH·ê €óîòòß—<ޱþ'bè4¼–V¿™ Dí˜IO€,NK‹@Ñ5q­«é/ žü¼›å°½HˆV>>=}ÉóA_÷A Àn%ëkX]òšâØÙ©œiÉqÝ Àª1òÐìBÙÇdšéJIqÄÌf¦“ÁËÈÊa\1+pÕßÜxŠ‘¹®–_aêΙ‚±ª+÷,B?ûaÿGëXHi¡¼BŠ)÷+?/Õ‹º âWg_c«ÿ7®Íi Ô64aVzGo28´-1KuM•g`ÿ[ªfþD«»µý—±#jDGÐâ EhLc“u¡Ì7^w=‹?φìŠw&J4î¦ E…9%^EÄ'p^$.ÀD[VuZ(YŒÕÏÚ%ÞHôvxí2ï¢ã¾#è‡yÝ3sâ ÿV.x¨zñÙqK’ီ K™©y Ù‘Õe™¡C² Ä8l{šïâ3ì{Ô‹ Ü=&Égh&û5*ˆéX ~p-2rj F*tЛ7‚œÜ¡ä™UÝ«0EMê²ö\~<´µni`¾SÖ“~c €ßÞþÞΠ؎ÖÊŠ¸fãôeU½bühÅ^aéÖ׉f0´ê@ŠªcñÊAIyÜ2¡™³C®™g²³—ÜÄ}ã¾ü ¸…ÁøJ¬ú^gù$írîªb¤ƒm+yƒ ¤n¬þýI ¡È‰6ü|¹ò8g÷äWY¿´!âÐ#®@á.IÇØî•OãÆ5qÝžt ³¥N8µp5ׯVŠ?½ÅÉgbì\£x9K釻kP)lJR‰‡-þŠ´Ó„`h¬ÇW¶Ÿß¸Öª#‘rUûÌÄmjÖÅÎhj¡O£ kœÆãã÷èqòÄbF1æPnÌ‹yï¾²Üñ‡õûhS^ÀßêJô{(ËÄ>+ļ̅éÀˀęiòw›LödïÇøa¿sÂs Âë d¬$/;†mãml½Ë—Ó3à@DµOØUD¥Š )Ž»}£9Ô^Fl9N(¤³ñ­n^þ‘òJ¶|Ÿí+p1¤ðÐ/¨Ø´ã- Ãw<’;GèÑoNÅv'îôvXj¤«‘$EýZ]ñ„ü0@%cƒ-|§Ihàõ}s˜ƒÁ‘Èèecn\úuz¬c?Ø·Ýof>q16÷…­×!ÂT„¹"œ¢E| à sëçù¹yjõ èïºæ˜»‹}²éÆU5GNë¢W*õ­UòJ™eú w]Z"—듃^Àl©÷¨Bôœ?ßí7mvòŒ pm c¨u¤–”pgìÊ)θµbßO(Ÿg¶¡F²ÏX˜ZŸË-#pO q!¹Çæ’ƒÝ`;¦o¬‚ÒSØ%RgÈðhê]É äÉtùÀIjéuÌ3Ö}ŒŒ#å¦ ôý‡ý%<|&@›­­ÖÔÞçûôÀ –a¦.FOæSRõnx.ÎðökîÂÔD5 Æ’ƒ½(r>cEY7؆D—ÏÙ SôØ–Ç}A:ç n.áŽZ›áûrmHÅ/LIvUIxKÕYÖñ;©ÿóBPÚ¥Ë5þv\ˆ[­'HTt?Çœ#<ñMë äá.‹öÍÇëIu!lm󞂦SÝG5´b.ãîm€DÂ<€K ”Ìl7êι%e, …)˜ŠJk6wâ\ ê¥s_ÂaHo°ë¥-• w ¢ 1ãpɵrû–û²`Æ+ø(|'Ö+LÏÙ®ÏÉû JÛjÊÐR Ô¶/fYÇ/>¬C·ü¥w^YêÐ/$!ùª+ÊÌî©åþ2p°,…Ž|-ì9ÝÂõ)1¶× ã}­®oK«l$8#" Ìý.(̶Y/2V‘òÒô„œÖsÚ ´§;êM7;Ê–Õ%¥ÑA%é =¸X¼=Æt·ðWñ*ò™ þM5Ðο‚};ckA%_HÆ3XZi\寲6ÓT”óÿï°ÂQ+H7ßÎUìe9û0m"Uˆ˜AþûM5iø[’܈xÈÍ ‡K=3œ²§{DHAœ|”`ZwÇÁh¨ŠeÝ~´L#û²tþÙZnDgÑ~tK’–-½{ÇŠTµÞ= ›R¬¡ ùV”Ýû€Í™·ÿ¿%ÙžÞ!‚]ß:- È¡æ¼É“a>ý¢|Âü¦– ø!Ò੆›Ê,s“±‘F ÚnZÞ×‹ð‡Ø¸Öà{T%öW¹…­Ít“]ÿ-¡__ùߦªVåÛw‰¨‡š¾^}é;z?+ÎäÖQx› ÁÞ ¸©Ø²_Õ8ñKIä]¸g Åû]”?â³æMšnþBUçõ=ôׂ:|¦öµÎ¬µ’à]çŠÄÒ&1ÝKUÓ0ŒWsK9àÓ» æ9)\‡;MGðÌòìKi/‰¤‡kp ùþ|ÏÁöþ›]œ¯èì5‹wËÈ'Æö `–,€¹É¿( úkÛÖZõÞ;;«úl^ÈÍ„o®s°nT*ô–×±…¬;|ÉU?üü¨7å±~óâ&âÓÃŒ@Œ™tg‘ÅxRV¸£Z+e§%Ý”·«¸ç^L„ÝcÇœÀVš+æzï9RR×J”ôG©quáFÔ=km4á¤í”E©™i›:Ý9¿™‚7e÷ƒð.q 1$JžØò#h‘”qàË!5çX½<ÁW¿òÀZfúêKëË ž'®•x¾(‘%äùaÿq@ÿ¼^«9 œDÑ®%íHtËÆØ}÷2 o®MÇÂM]玪«ýój©¦Æ 89{ïÓ¡ #rV‰ÛFáÊx»{j )8ŠÐtæ¯òVè•űGúŽ.¾ÛoºïËïŸ}𬨖.-NZúÀ6+[‹+¢™oÍoD%¦í·¹Xe'ˆõ«2|‘âeÍQÁÜÏzµ‚‹N˜vnªëAè-2jíâB{ÞËþüu¤ 5C“ñä°ç[õ×|e %¯“ÿs}à ÷OWÃ7fºs‹Ä(=é­"~¸Ž'™ÃHøQwÆ™‹§Ö‡×§åá¸'0t”³4Ñ åÙ±Ç9\ÀЧçYr ŽU:›~ºN:,žOÓ5fq VŸßûsó¼V.éƒÑ= ³êÛá5ÛÝÎYÑy°^cŸÝÛ ]Ã[¶Œ<›]mò¢¡·ƒó;¥š“úQpîúú)DY³@45mô¯'”2—3/Û” Ùn[͈ääóÃS(çˆ×h%À€›$m©H%ÒÈþñ©•7¡bØ!Sš}Zt±G!Œ˜}fNÔ¶áXh{Ä»äˆÌ­l<“^VÀq/ïc þFé²9èñ{©âè€Ï9¶öÉ=f0ÏåxvÇíŸ0ÍL±nûŽÅ_àøQ[÷D*­uT\Kàö{V{*.íÒÓ(®RŽ!âSÁ™{©ê›b“ñ»ßþ™A[Ä#­hî,Ü:ÚØ-* ÷‡ë}F Ÿ†hÀ$î…11ÓrBÎ}-I×±e¶ú$@C˜¸„d'ªB2]”²cÕN“Âò ðáQÈb°Á­‹·Þ`P}m"Ø>‘j³„¤ ©ç™Ã9Pr9P‚EÎ EcÎ¥ŽxlÜx ê±ApRÛã»h†ïê„9ŸçI«Ÿ¢‘ Ððn~}¬oU–+>sÚíc¬0ãÛ€Ö4¥{Õ³¤D¹›ö931A(v\Êf”h€Î¦L°²Àíb€?ef\S]ÆS"l#E‹šÚ'GL €}ÂgK°„| é!"0×­.åâoé÷š"Rò,7•óÄ·ç5¬#tûÔAV :×`D0 Úa„1'¯#1Lì€ãÁ¯ª@¢Ðr!÷Ÿ#Îþƒ^]>/W ]½ö&”¹|í}-¢Íﺃ ɪwýMí\`‚?P„úÇ9¡+HÖ3À-êºB~š@ Ä_[€ ÃcüHM‡ÅôSWÐVìFX-°•s&âW-ŽŒ±xYiwƒ€®¶i§ûñêÉ9ÑwD£Š(ׂ†ç甕«ºS£/V»{z1 Ï ÍÈ’gƉøI ³xì#qéñïÉåvÇV½•£*ØU{?l¶…pí8Îr.x=0Á¸s3ÚɃ#sJºS °Êë&Ê¥øµµ9Rn¾±-x"Ý4äÃg_ÎÙb‹ìoGÈÃî ¡¹wA<´Ä$¡wqôž0D>ÛÙ-2òåŒÑç%+¨ž.Ÿ/ äûT a<‡l ÕÛ†’Ÿ²ùÌZU¼ó2·[Ý÷p° ¨ù8¤dg1vðþù5‹ë÷¥®Œ!C.™·ù›Xù_ÆãÏ·5p™žÂÈïöÜÿ¿0«¾Bá|´>¶@6»×RÈ'MÎ=¶;ïðT½&+Ų3Eg–ò«-ë)/¶´Ió!D§†åÏÔibº.^ 9^)+Š m^Ô·¤gz“»wà‹9ºw¤mFShÞN¾øž—\ü¾ÿØ Áç¤åfV*܉ÏiŒa¸­ºz:°|’åxžK'ÍÇÒè¥ð¾÷˜išE1&_Ü%ç’¥[¢·.À –´o;vlk‰–ÄÃÙç÷ó§}Ûê6åßWoì‹G/¿»J½‘Ôfª‰üRNaÍ®p: 3Ì1›·64$;¤8У°Z‚ Uúy€¿ÝE ü²Ö‹™›’SJ¯ (Tôk]ÐyÝ®Éwò†«x™¡JFUsפ´}ü‚(»¨†ã1ÛÆ4ÁK«šÿË%ÌÈ'M8×9!ó¨Õ§ó¯8“ezg¥:*<0_‰º™*:?¨Z°uëȸÏ4%ÎHõBgþ[Twš’ŒŠÆs=´Zñ;¤Wb± èѳ6¯Ô»0•)iRLfo°Ñ¸ý¥ª¼'Œ8Ùôab&¬FtyïVgú¿`D™j Xôê½Ü‹©Pw Üœ¶% Ù !n>Qø¿Åʰ Ž\F1VsðÑÀgœ‡a­Û…6Ý//e®_ÃÚò>Óh`qC²žXɸfV5=Y»RïߥP‹ÂmìËÕ®øg¦Eù€µš˜ú¼É`HŽ[$ù„+ !ái|Ä>ÛS‘W¡÷pµóå?;¹Šßc{”î´Å–Mñº2¥·šý¨ ŒSÀH{8‘üjvHËŽ`è‡q-©à¹Vê"Òõ™4ILàT4CˆT †—â/ÔP†õým/þ‡6.÷§å ÁzÄ8ɃJ…Éô‚â_ÀHêiÓqv hœÏR¡³”~J–ÛCÖªðr‹ë³¹he'YrÂä^ ê3"QGWøs¡±Šõ±Ëœ¯§EÝbÞ(V! Ì› âÙ%Ì5&ï¥_È~G˜h&Öî`†1Õ&™®HU[¨V¸NSp=œÒG:þÍ?weÚøŠ=Ö¸¢Û¸ÑÆÛuØkX‹gÂL‰k*#ea9¿ÂšOÿŠ#twwU§{G±š±M­%3GÔæšû#Æüg~><£©ô }Q‰^:LÊWg›GŒçŽn¢ø$Ù+‹˜~LWøÄ"a{âœÍÐíœÆóOÖÔÌúÞ>;¿´ ç-®°´K¢îu¡J F%´ñÛèa½E}OËsú2'F¡œ¿HÌrB~DÕÑPCo‘:d¯íG6#™Œn°UÂX«I•ú¥€ŠñtÕž¿’;}²z:LímÏNX…“mk&aæßúÏar‘<Ž–’ bñà€ÀU‡#„ÁódV3cøM%í¼M¹ˆŸ¿<µYïâÄÛÍk4åÑ µ‘ª˜¿U›ó‡¸ª9«Ø: Э¬åX§J»÷üh±qDÁ¥g–ùÆ;$Èw¨|¡”;Ùùp-‡ê<údÎQð] Æ_¹ »Lƒ†¬èc®ÉFQ©§ÅVób u l’FS®¹u{”2¹›NŸ^x—ñ…rivÕÎ4ÿµú¶Á~,Ó0lÚÔS1¨yóRW«Î©øuNà$0u1jÏêìp¶œÕFÓ< n”Y–zWGFÁ"tèž­0ƒô?bˆ>é±—ÝYÅ ¨ƒ(´xƒŸH¾52f ô©×ò]'ä{äàÞšþt_Ý—Õ"ÙBzà**rñx%>>9´Ê9k%R½Áˆšä²újS¸3+™Ro ªˆ®Ó(н9óQ´"ý(iæfìSo#9¥Õ ß‚…˹w[oeïYj|WÙjì;wPû[æWˆ,ÐDZÅ`þrJ¾›òòn«ñP£»ŒñéÆ3‚—ûV·jÓîQÐ9íHEâź´toùâÅüÜú³7gîr¿{Ñ•iey[g_ÈÄÎV_Üo€Gÿƒ*-ÜBPõÈÃFfÉùæ"3Á›!%§0wtEÉžpXt"Fz±ôºê¢=ßô ””\oËg¨bß•æfùEkWOÂŒ«ýßÎmKy. {æRn5PþLÒ F\4ZY›“¶J=ïö‹nÿœ¬è|ÐŒ- ‹=•Œc²>4šïaÄçN«I¯ âÔÚZè©ä6¿›ŒêZ£qcL¹Ý×2ýާõEØøø+öÊ7Lé꣓ÁŽô­]8r1ð‰þÔÃGG{â1/D‚[¡¶ï¶JšN²4ð³´w…{`0ߊ›êÃLq¡‰Féªß¯J³W†ŒI΃xÈXç·~Q«,Hð1µq|EœÃ¤ÛÆã_~‘`x¾LHÚ¾,°|;„cµk<æfï‰K ш=äv«2AIÂv QFà;G{mr#ЦCCÎ×Sêûí.eSx tÛ¨*E¦Ì÷ îÛ”­ÆDuãâÕçã—>,‘v*’ÿž­ƒôcÕìÉÛÕæáù“vAÂ#cKÔàOœ:|eC{¹ï~ëó@ʵãN»ª ãï¤ïÌ£ 5 [G]!wu€ü©$´H²hÈz/l.ÊžÃþøÛ/°»Æk®}ŸFŒ2ž»P?töt¯äƒwÈ4U — ÜlßTô4¼£_‘|`•óñVº7 ™X»·»‡t&”åEWð´ªEšû»©÷B{µ{ýPë…ÝTJð.WM6)gX£-ËÆÐnßZ¼ï…‡ÉïD8ú˾–ã&ï»vS¯yS¼gDäÜ­>@Ì…P`w)rèTûÂåÝÑõe^‡Èaëíy†ÇÜ­0bu Žv–ŠÓÈÔ ¬‚¬ž²æö¸ŠÕヹ”¯<«˜ï‰˜ð3¡à"ôƒ|%Ô£Ãú-.8iée¬Å‘€²‡H[*Œ‘áùjJŽ€AcF‡€‚Ã’Ú¡cƒì2u}ËÇ›â‚P¬Í8?ΩÈbŸ9r+Œs:”¤Ö¡Û>…éÇ+Ev·<È…6hŽ,u×F áɇ>cç2‡ÂœÑä½vªysœM¼Ü£©ÎzKïmžÆapÌ!ÛÄÙãÁ2­,ûS}ö`ájy¾TÄ,"0)ƒ¾¥9åàÕ#S pFŒU×fŠ6‡5VõF“Vs›ÓáOÉÙ'À¸]Âx[B)tô‘W àÉ"“ÿìX+Ï“>~S1Mß!ye%ˆÑ¢³9÷〠å=Ìoñ x£•uøì{{õ0'S•¾\ݚ̌ð±þ«Á…òUUºe³R„G ¤ ?á÷Ķ z©Ôå±ö_F:$ ÏB !„ø”›,é¸}FUº‹.âÉ•ÔUFèÃv|]nw{X>HÄ’ÑZ†Ê6T\S”P䉒 M…Ž–‰€ùÇ›Ý7=7ùÔÿ« Ðó/æIJOÀ¢–Ô`ƒæ‹~ãɧKÐ]ƒÏÂÿíV•,M2|ÔÉ"tlê\ÃnFÚw¿Ý‡4Bå‘JþJ‘²h-ôlŠ Ã3m}]=pM諸NÚ¬èë5û!ÓèÌR’óÔK°Ú¸n5€Eˆõó íŽm7"ÞÕNè¶Å,aùù‹4!ù€ÔkÆŠ£$ŠD`aº”¥W„­„pQŠé˜V#dƒx-pÅŠO‚W¥ÛZ«=kçÊÄ ÌEdcÔó^<橚»"¦v:¿4¯[¨êb†´ –òìŸÆä«k:Òšœû3*s°ŸQ²E_‹››g“BcÑeƒ«Ó'RÊ'6„ËlFô²zÏšŒvd¸ÓÛŒx KfÒ_ÆÍGú„/Mù®$P1–¢Î[ú§“m tH ;X…–2—“sÄ0ò·ù™<ërªþQW‘%(‚ô±C<à¦Ñtz£ȳ[y.ä(ÐbZ9Ç æoyÖ¹vàÅÓ†xŠ:ÊÙ©4J¥fç–ËdANV±…ä¹o×—E‹±ÕZô'r©Ø÷šÈ7³8j¿H¶ YTÊz­P¹)Ÿ8XXJó‘U»°ðŒ»VgäáEV4g¬ hñŽøfÝ£Ô—ýÑ3=8U~{£““ ó^É'ÔLŽ_$O±R »TÔMr~”—ëå9ð}…Ð=…Пhôx»¿e%v‘5Ua5.øQˆNa<,Æ\Acz ýíînœ,ºÔ+zÆÄ(ø¤öšÑ‚ɶG±aî9rÖ_¼[l¶tw{85±FÃOº?]¿$‘Ç;ô¡ï†ìŸážy0²›iü½ —ñÞÀ¦ØŸ­Œú›ðãÇ79#bGYïR— UÈ<±Y |X¥Aía¿A–çý29ýœ{mBÐÅqvm,Ø#B7 lRîvȱ‹’S–Â!C'¶"8úµ)àÎÒ¼A¤²p,\)i<),ñÚùYLñ‘6¶ûï›)R]œ>ÊS‚{¿Ú¶QóëN^Ï¢ÙÙaßùYPûJöý.öá’EJ±78ìŠam%äBw ,€hH‹:±HÅ3Øv¤oB4¼üE×dŽpÍ­5ƒ|üßj XÉ‹&I%†–^F¿Ù0BqÒ’ñZWÞ‘ œn¸FXiè–Qªhµ3+¢!wTŒ]¼¢gß é|ƒŠ£–¬oyî˰ðG:k@ ˜„Ú®jq¨²õWz¿XŠ18œ¶wÖÿ)Opê(x‘0¼«Ã‰æÍ·RüÁœËŒ-à;™M‹U0ƒÊEí·¶ÔcfO¸(µHè3´­;䇾ýî]ºp÷¤öC0aŒ¿‰På~Ðgé@J Qõ!1=h ä~\¦&Y¼Qî¡Û–@è JðÒ¹uPéåðdù,] öªó®é ¼¹A4D6ЪõÄ~£¤„¿¶xSâÀ_+e&/£¨±‹¹YQ³v^ŠŸÓJ2 n6éµ=0ùn¤kºu«†xÔ ;XØ¿ì |Ð)û 0Êœ‘ró0÷c”ÅÓA uY#œ ¥–-9EPeF `,u#Í®i|û~`l˜ut]ƒ{>×Ì yunÁ;V¦,Óî2sü/;G'üs-vo‚ó¤Š~ù ¨"“¹µíˆâ>þr0Ø÷¾©Ý+Þw »­• ´¡Ov8Ý‘ç…kjW߈"®Ç¡™PíÛ§ÏÎÔ¡Õ ‰WdðnÅT »¿ý—Ôû†C¥TÿµtaAä6™å+k¦ 'òщ î÷ƒW$)ãý¦†D¼£'ïéË»èù^û6ˆ”ô—AÚ ³¯ÿsQI²¢¥ÿ ËP––Må†÷FxŠ9àVt0ûô¤NBUðµ=šãt ¤•;' Pe)°“TÕÿ)“²qÊ‚ëß=Ë¡˜×/Qœââ ®cÂ"k(à¢7V/Ï\6UkÙ9G3–r¤Rýù`û("®M…C bW«`ßEÑ b+Ö7 ¼Š“ šQ/.·nºîæ›M¤?Žê2t° ` Ÿ&yŸzíVwƒ¿l´΀õWÚn=þäáê x[øçðÆ–B§ ÙÍ#P°ÿ$ýŒ#¬iK¾ë‡«¿áA%gKü"±Z{ePéΑûGÞ1&D2O„¿`û›üÛeE¹GŠ„%‘s2CͤiVpK†æN6½/¥\9ŽI’h¤s§W{¡üÒ•²u‰¬‘¦8£öäö¿))?-Ô´GÊõ[Œ¬Çx°‘d`B?8³0Ó¡»Z_wxiOÝCÚ<MwÑ~ª5½}Û µcw}ÔJž¾ é24‹Ù[p –|ŽòZ"Í‹`VtÉ'SYXH"€í£-˜CºÃÌapfn—­jBª N'âaÔV&»)6m7T-Ý%Cç,™äöèâŒVçß`Ì!»á¬î~?ÇP­&ìuY‚çëh€aA{—>›ÙmBÓ"µVêº&ŠF!¾‹ä‹1|Òzþdª§˜6$z¹a­ã­€7£.d”È9vMxq°”OÊ?Œî§ ƒz ÑêÑ ÌZˆï)öÚ²›zr¢O5ȤAd{ôLJé¶S¨ƒ‰Ó½ÐBÓFBÚ{›$õKÝõQÕõ¸À¶cßñÛÊ‘]5h‰ô8üWÝ~šK…Ùq‹2è| jr!†ùbÁà1®ŸšsϤ{Æ3ÔwÙÿÞŠÿ'¶9„Vû„ÇÂܲrÀ\ôà]ƒ‡`7ò±B{ WžðJ ¶¦—‰w­`ÙÒŠEêh=ñS6Ðzx:µzô_¿“þí£œ)M1ØM&éBü´-¢èõÉYÏ>”É«¢ýžƒ’}´os&|ê@­‹Í$`ˆ@sUKЋÁEg—›Ê©.&Ð "íu ¦â R…ý¬RÁ€<£ú+ßÉšžÊæ…ŸJb³]mb<€qiPù1NR¾UÕ*ém*®; } ø?¨RX¥ÓÃ8IŽnØê§!ó6ÐzIÙ›¡üèa¸¯âYŸî“r/µeç«-áȇÙX9``9Bß7w5Ä"× mºãÕ0Ò#RøYq¬H¢ ²Ï7Qh¾\^˜¤O)—¥’Å»¿ó ?¡½RŸoÐ*ÁYü° í>TÐ4l‹ŒUK訬µý„/É›|Ž8£;zITÅP*¹y{pœjn q™Æ¨i-&¨^Ò=E´—!¾ºõë¼×à&ìî±>òW»Å@ ¥é<ûþÙ`¦ÏíõpAC΃—9¼ TÖ‚\1ÇP;P±ü¼ƒÙ™lЕˆµþ¤U¾dfÆõ PppEÒ@çöcØJðåð3ÃÞ‚'±õZ ÇàA¯=úàW“œöŒwÀ沟Q…yý~dbo%~®ç n.3;ÚØø¹J9QU[+x;ÄÁVð1Âðìeߩʳ\f%5¦Ëãt¦&°w¦8;œx®U‰K¥7Yª]Ö WqtŽËÇ:tÕ0ÕSþ8fm ™À¢„QÛ§z-<4q¦'Ë šÅý£ g «Ay'–YsÌ€lC“.mÃ}w ®” ;øŠúŽêË tÍ[Ušó ÂrÁÍL¼Ðx`ÿÕ‡åÝ <7–‡Îí2Ã,¸à¬ÍŸ“âÊ•t^ç±ÈAMòèM-ÄØ"ÕÜE‘…ð\›`š§qMäînê÷=;I¶¸=Ž`ØÉD„ßê(Åp'}䋳.;VMf©Óû•Ìm7 ¡N¶ŒB“‚ ¶/‹V'‘;tö—’„`ÉÔÖòT“ûê_±Òg¿ðC»Ó‘û%VH$Z!Ú8´ª¼"pØ Ø~åÈ-‹%ï- Þ`tRÊ«•o£òãHK•6?÷ø{‹V&UÜÕÝK‘3Ít"¾© èŽ;qÌ[£€ãqS9Ÿx4þûoKÌzâ¢Æ+$#P+pYÐÐñL0 ç~¯ºÖZ¸|!¬ËÉÊãðÁ:£$ãƒ6|ZEã}P…;—¶l‰å+g|f-3/áTbJŠÐíA†f•ŽÌRÖ?)ý´Ñ~c0˜gTGú–÷5.ô›jˆÐ²Ê+²j‡ÉÚCÊfš,|šîèÃûfíÌ’Üöx“ˆ/ ÁŸCöûÁšî %F³v“Êߣ­õ®ìÒà÷J§q¾ºƒÔÁŒ$á¦È1wé¤8ÏÈ,Àð]PùÄ–3nèî<@ü*z€IÛI[›áѶüÄwdrl…lŒ.ðÅNéoZóG@Üý·¡› ö÷@‡)ZŽ;Îî]¼kZ <œ˜¦l`þ[†ZR»ÂÜL»3(†Q^{Mž1|ÓnáÉ=èù–B Sÿáá/¦Uä΋9ÙÃ~—x9&z²ëв³”$é÷^‚mª¿üÞ%jhOÁ‘à¿üçØ<Û͞Ю… Z1ÃÝÅY8N莶Ø5i=©¥Fö´aJ2ާ˜ÆH<õv‹v¯çq>RòŒH@6MœŽŠ~*Wj,wIø$N¯Z“MF·<—ŠÖ~«EüÕApÑJo¸Óñd0:!ë#Nèžü¥îAP¨ÐCpÝ‚di¾'˜ =áC%G„-ûC&lk~ Ü_>¹”Oí?ŽûãÇR±š#í›Ø:¸Nßš„3EQp> Ng$oÞ8ªzHyŸÓuûøäSEØ §Xû£7!9˜‹ÚÙlvõ 2¦V¿¹6ÂÀÎ3ÿÞ—xñvP‰Êyá©ôÚwsªÉ½Øþ8l€ E|l&£Ý@äï•\Hø_-ºÕŒü27 ×cItɯÜσœ&Çž…: Ф ¡]F»™¥½ÍÉ9Æbðíˆ_/Ä×ûÝ’Áó©mÀAÅP ×MþX„0󃻚õ¢±€5]Sõû`!_Š¢?Ÿp0þ×4Dû80ÉúÍp~Á6ûÚ•äØ|÷ÖTKÒ*— _Aö4Màð\t-bïMPL³Iw_M YºË$Û)¬KC àÍasþJi{$áhÐ))(ªÜx—ÄÔ i„;0)bñ~€ mfÒJ[“A÷b¯¤}?Çî.9¾“Q«ÄŠ|£A¤í]—Ë˾b  ä²ŒÝE¡j]ƒmqÍrH™ùøÖ϶³1èï^;X‡ SNXÖ51Ó–(±èœònóz_Ée[!a>’ÒÑË3ú²»:˜‰ÀÓ»t¤^YUÍnâ=K@õÌU[´ˆ÷µocnc=‚ᑘӨÜùàÐg ¢ñ`'¸4é°9â’uða5µu³_ÜcÌpÙHøÆ>RY[ö‹,C áRBꙊBÓcÞd:¡/볫»ZüËâ‡c$eËÏ2l¢:itA§Äþ‰Pu¢›}srØÐû|„™('Îا‰ë-Y†µ½Ho ½1Y ÛóH†"…\Í þã VÂdãäšqoªFÖŽ29Îë ¶Žîk(®ÜT_^•)†Ó?ìl¨tÄhN—Ã×Ò+Gd’®½ªòW’ ìüŸ¨T³€•Â_£Ä–Í¡.ë t¥lcу©@Ök5g©tw{jfÉ Rå6P¤2áçì¨+fØ«º¸N-ÔN¢ãÀ׳}†ásÖ^Iô¡öŸñu mcް³„zìcvyËðL!Q ™/4{$›n±IK¶èæ»Û:*%ÿ•µò´O‹¶UñL€3ͱWwÐôønO/ úïl6ì;løŸfVTi}›ËÔæ¦ÂzÌ>ç¹²uºœ½¥èå@–%¸Çºh¯.«cÌ)ÄΪ“ £d_IE\%Á,Úkb¯G.ÄŸEÏàÍó&Ç“a·ƒÀ0sz?ÓdD@QÓ‰WUê ’V›pHøÅ¸ íye2ãf0Ƙߪ`r× öƒ¶@gqÓKÿݬíÕ_½1 ¯ .Ú $É)†¯ º'h)µ$ÑAöüÏÿ|¬ª-üÏ,»”f+ÏW!úÿÊ£¯xnÂ<á6åÉóRý0“ÁŠ€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n022004l.afm0000644000076500001440000007604307056046553016417 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusMonL-Bold FullName Nimbus Mono L Bold FamilyName Nimbus Mono L Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -43 -278 681 871 CapHeight 583 XHeight 437 Descender -205 Ascender 624 StartCharMetrics 316 C 32 ; WX 600 ; N space ; B 375 0 375 0 ; C 33 ; WX 600 ; N exclam ; B 220 -15 381 638 ; C 34 ; WX 600 ; N quotedbl ; B 136 312 464 602 ; C 35 ; WX 600 ; N numbersign ; B 62 -92 538 675 ; C 36 ; WX 600 ; N dollar ; B 83 -123 517 684 ; C 37 ; WX 600 ; N percent ; B 80 -15 521 617 ; C 38 ; WX 600 ; N ampersand ; B 75 -14 508 550 ; C 39 ; WX 600 ; N quoteright ; B 147 331 351 623 ; C 40 ; WX 600 ; N parenleft ; B 264 -153 488 632 ; C 41 ; WX 600 ; N parenright ; B 117 -153 341 632 ; C 42 ; WX 600 ; N asterisk ; B 83 208 517 622 ; C 43 ; WX 600 ; N plus ; B 42 0 558 560 ; C 44 ; WX 600 ; N comma ; B 147 -158 351 134 ; C 45 ; WX 600 ; N hyphen ; B 42 229 558 329 ; C 46 ; WX 600 ; N period ; B 225 -15 375 117 ; C 47 ; WX 600 ; N slash ; B 83 -113 517 695 ; C 48 ; WX 600 ; N zero ; B 83 -15 517 638 ; C 49 ; WX 600 ; N one ; B 83 0 517 638 ; C 50 ; WX 600 ; N two ; B 54 0 508 638 ; C 51 ; WX 600 ; N three ; B 66 -15 529 638 ; C 52 ; WX 600 ; N four ; B 75 0 508 622 ; C 53 ; WX 600 ; N five ; B 66 -15 529 622 ; C 54 ; WX 600 ; N six ; B 105 -15 540 638 ; C 55 ; WX 600 ; N seven ; B 75 -1 508 622 ; C 56 ; WX 600 ; N eight ; B 83 -15 517 638 ; C 57 ; WX 600 ; N nine ; B 106 -15 541 638 ; C 58 ; WX 600 ; N colon ; B 225 -15 375 437 ; C 59 ; WX 600 ; N semicolon ; B 147 -158 351 437 ; C 60 ; WX 600 ; N less ; B 42 54 544 501 ; C 61 ; WX 600 ; N equal ; B 42 138 558 422 ; C 62 ; WX 600 ; N greater ; B 56 53 558 500 ; C 63 ; WX 600 ; N question ; B 104 -15 517 598 ; C 64 ; WX 600 ; N at ; B 76 -152 509 620 ; C 65 ; WX 600 ; N A ; B -21 0 621 583 ; C 66 ; WX 600 ; N B ; B 13 0 571 583 ; C 67 ; WX 600 ; N C ; B 33 -14 564 597 ; C 68 ; WX 600 ; N D ; B 13 0 550 583 ; C 69 ; WX 600 ; N E ; B 13 0 550 583 ; C 70 ; WX 600 ; N F ; B 13 0 550 583 ; C 71 ; WX 600 ; N G ; B 33 -14 592 597 ; C 72 ; WX 600 ; N H ; B 23 0 581 583 ; C 73 ; WX 600 ; N I ; B 83 0 517 583 ; C 74 ; WX 600 ; N J ; B 54 -14 613 583 ; C 75 ; WX 600 ; N K ; B 13 0 602 583 ; C 76 ; WX 600 ; N L ; B 33 0 571 583 ; C 77 ; WX 600 ; N M ; B -19 0 623 584 ; C 78 ; WX 600 ; N N ; B -8 0 592 583 ; C 79 ; WX 600 ; N O ; B 21 -14 579 597 ; C 80 ; WX 600 ; N P ; B 13 0 529 583 ; C 81 ; WX 600 ; N Q ; B 21 -145 579 597 ; C 82 ; WX 600 ; N R ; B 13 0 619 583 ; C 83 ; WX 600 ; N S ; B 62 -14 538 597 ; C 84 ; WX 600 ; N T ; B 42 0 558 583 ; C 85 ; WX 600 ; N U ; B 10 -14 590 583 ; C 86 ; WX 600 ; N V ; B -21 0 621 583 ; C 87 ; WX 600 ; N W ; B -10 0 610 583 ; C 88 ; WX 600 ; N X ; B 10 0 590 583 ; C 89 ; WX 600 ; N Y ; B 21 0 579 583 ; C 90 ; WX 600 ; N Z ; B 73 0 527 583 ; C 91 ; WX 600 ; N bracketleft ; B 250 -148 475 627 ; C 92 ; WX 600 ; N backslash ; B 83 -113 517 695 ; C 93 ; WX 600 ; N bracketright ; B 125 -148 350 627 ; C 94 ; WX 600 ; N asciicircum ; B 83 325 517 652 ; C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ; C 96 ; WX 600 ; N quoteleft ; B 249 348 453 602 ; C 97 ; WX 600 ; N a ; B 42 -16 571 450 ; C 98 ; WX 600 ; N b ; B -8 -14 571 624 ; C 99 ; WX 600 ; N c ; B 54 -16 565 450 ; C 100 ; WX 600 ; N d ; B 33 -14 613 624 ; C 101 ; WX 600 ; N e ; B 33 -16 550 450 ; C 102 ; WX 600 ; N f ; B 75 0 571 623 ; C 103 ; WX 600 ; N g ; B 33 -205 592 451 ; C 104 ; WX 600 ; N h ; B 13 0 581 624 ; C 105 ; WX 600 ; N i ; B 62 0 538 623 ; C 106 ; WX 600 ; N j ; B 117 -205 488 623 ; C 107 ; WX 600 ; N k ; B 33 0 571 624 ; C 108 ; WX 600 ; N l ; B 62 0 538 624 ; C 109 ; WX 600 ; N m ; B -19 0 623 450 ; C 110 ; WX 600 ; N n ; B 23 0 571 450 ; C 111 ; WX 600 ; N o ; B 42 -16 558 450 ; C 112 ; WX 600 ; N p ; B -8 -205 571 450 ; C 113 ; WX 600 ; N q ; B 33 -205 613 450 ; C 114 ; WX 600 ; N r ; B 54 0 571 449 ; C 115 ; WX 600 ; N s ; B 73 -16 527 450 ; C 116 ; WX 600 ; N t ; B 13 -16 529 591 ; C 117 ; WX 600 ; N u ; B 13 -13 571 437 ; C 118 ; WX 600 ; N v ; B 0 0 600 437 ; C 119 ; WX 600 ; N w ; B 0 0 600 437 ; C 120 ; WX 600 ; N x ; B 21 0 579 437 ; C 121 ; WX 600 ; N y ; B 21 -205 579 437 ; C 122 ; WX 600 ; N z ; B 85 0 519 437 ; C 123 ; WX 600 ; N braceleft ; B 167 -153 433 623 ; C 124 ; WX 600 ; N bar ; B 250 -153 350 622 ; C 125 ; WX 600 ; N braceright ; B 167 -153 433 623 ; C 126 ; WX 600 ; N asciitilde ; B 62 179 538 385 ; C 161 ; WX 600 ; N exclamdown ; B 220 -227 381 426 ; C 162 ; WX 600 ; N cent ; B 83 -44 499 661 ; C 163 ; WX 600 ; N sterling ; B 33 0 550 598 ; C 164 ; WX 600 ; N fraction ; B 21 102 580 500 ; C 165 ; WX 600 ; N yen ; B 21 0 579 580 ; C 166 ; WX 600 ; N florin ; B 57 -123 548 638 ; C 167 ; WX 600 ; N section ; B 36 -170 564 583 ; C 168 ; WX 600 ; N currency ; B 73 64 527 519 ; C 169 ; WX 600 ; N quotesingle ; B 236 312 364 602 ; C 170 ; WX 600 ; N quotedblleft ; B 98 348 502 602 ; C 171 ; WX 600 ; N guillemotleft ; B 33 20 571 415 ; C 172 ; WX 600 ; N guilsinglleft ; B 33 20 342 415 ; C 173 ; WX 600 ; N guilsinglright ; B 263 20 571 415 ; C 174 ; WX 600 ; N fi ; B -14 0 619 624 ; C 175 ; WX 600 ; N fl ; B -17 0 617 623 ; C 177 ; WX 600 ; N endash ; B 42 229 558 329 ; C 178 ; WX 600 ; N dagger ; B 94 -92 506 622 ; C 179 ; WX 600 ; N daggerdbl ; B 94 -92 506 622 ; C 180 ; WX 600 ; N periodcentered ; B 225 214 375 346 ; C 182 ; WX 600 ; N paragraph ; B 49 -174 558 583 ; C 183 ; WX 600 ; N bullet ; B 150 154 449 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 147 -158 351 134 ; C 185 ; WX 600 ; N quotedblbase ; B 87 -120 491 134 ; C 186 ; WX 600 ; N quotedblright ; B 87 348 491 602 ; C 187 ; WX 600 ; N guillemotright ; B 33 20 571 415 ; C 188 ; WX 600 ; N ellipsis ; B 25 -15 575 117 ; C 189 ; WX 600 ; N perthousand ; B 0 0 600 618 ; C 191 ; WX 600 ; N questiondown ; B 83 -227 496 386 ; C 193 ; WX 600 ; N grave ; B 125 496 350 696 ; C 194 ; WX 600 ; N acute ; B 250 496 475 696 ; C 195 ; WX 600 ; N circumflex ; B 125 497 476 696 ; C 196 ; WX 600 ; N tilde ; B 115 523 485 656 ; C 197 ; WX 600 ; N macron ; B 125 546 475 626 ; C 198 ; WX 600 ; N breve ; B 125 503 475 687 ; C 199 ; WX 600 ; N dotaccent ; B 240 534 360 654 ; C 200 ; WX 600 ; N dieresis ; B 136 534 464 654 ; C 202 ; WX 600 ; N ring ; B 177 486 423 727 ; C 203 ; WX 600 ; N cedilla ; B 180 -229 407 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 125 496 475 694 ; C 206 ; WX 600 ; N ogonek ; B 250 -208 463 0 ; C 207 ; WX 600 ; N caron ; B 125 497 476 696 ; C 208 ; WX 600 ; N emdash ; B -29 229 629 329 ; C 225 ; WX 600 ; N AE ; B -20 0 614 583 ; C 227 ; WX 600 ; N ordfeminine ; B 118 182 489 595 ; C 232 ; WX 600 ; N Lslash ; B 12 0 571 583 ; C 233 ; WX 600 ; N Oslash ; B 9 -70 590 638 ; C 234 ; WX 600 ; N OE ; B -20 0 612 583 ; C 235 ; WX 600 ; N ordmasculine ; B 122 182 480 595 ; C 241 ; WX 600 ; N ae ; B -13 -16 612 450 ; C 245 ; WX 600 ; N dotlessi ; B 62 0 538 437 ; C 248 ; WX 600 ; N lslash ; B 62 0 538 624 ; C 249 ; WX 600 ; N oslash ; B 23 -70 573 494 ; C 250 ; WX 600 ; N oe ; B -11 -16 613 450 ; C 251 ; WX 600 ; N germandbls ; B 13 -16 529 623 ; C -1 ; WX 600 ; N Udieresis ; B 10 -14 590 798 ; C -1 ; WX 600 ; N Uacute ; B 10 -14 590 839 ; C -1 ; WX 600 ; N Scedilla ; B 62 -229 538 597 ; C -1 ; WX 600 ; N Tcaron ; B 42 0 558 839 ; C -1 ; WX 600 ; N Scaron ; B 62 -14 538 839 ; C -1 ; WX 600 ; N Rcaron ; B 13 0 619 839 ; C -1 ; WX 600 ; N Racute ; B 13 0 619 839 ; C -1 ; WX 600 ; N Sacute ; B 62 -14 538 839 ; C -1 ; WX 600 ; N Otilde ; B 21 -14 579 799 ; C -1 ; WX 600 ; N ucircumflex ; B 13 -13 571 696 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 21 -14 579 838 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 10 -14 590 838 ; C -1 ; WX 600 ; N Yacute ; B 21 0 579 839 ; C -1 ; WX 600 ; N Eth ; B 0 0 550 583 ; C -1 ; WX 600 ; N Dcroat ; B 0 0 550 583 ; C -1 ; WX 600 ; N Zacute ; B 73 0 527 839 ; C -1 ; WX 600 ; N Uring ; B 10 -14 590 871 ; C -1 ; WX 600 ; N gbreve ; B 33 -205 592 687 ; C -1 ; WX 600 ; N eogonek ; B 33 -208 550 450 ; C -1 ; WX 600 ; N edotaccent ; B 33 -16 550 654 ; C -1 ; WX 600 ; N ecaron ; B 33 -16 550 696 ; C -1 ; WX 600 ; N Ugrave ; B 10 -14 590 839 ; C -1 ; WX 600 ; N Thorn ; B 14 0 523 583 ; C -1 ; WX 600 ; N eacute ; B 33 -16 550 696 ; C -1 ; WX 600 ; N edieresis ; B 33 -16 550 654 ; C -1 ; WX 600 ; N dcaron ; B 33 -14 681 637 ; C -1 ; WX 600 ; N ccedilla ; B 54 -229 565 450 ; C -1 ; WX 600 ; N ccaron ; B 54 -16 565 696 ; C -1 ; WX 600 ; N cacute ; B 54 -16 565 696 ; C -1 ; WX 600 ; N aogonek ; B 42 -208 580 450 ; C -1 ; WX 600 ; N aring ; B 42 -16 571 727 ; C -1 ; WX 600 ; N atilde ; B 42 -16 571 656 ; C -1 ; WX 600 ; N abreve ; B 42 -16 571 687 ; C -1 ; WX 600 ; N egrave ; B 33 -16 550 696 ; C -1 ; WX 600 ; N agrave ; B 42 -16 571 696 ; C -1 ; WX 600 ; N aacute ; B 42 -16 571 696 ; C -1 ; WX 600 ; N adieresis ; B 42 -16 571 654 ; C -1 ; WX 600 ; N Uogonek ; B 10 -208 590 583 ; C -1 ; WX 600 ; N ugrave ; B 13 -13 571 696 ; C -1 ; WX 600 ; N uacute ; B 13 -13 571 696 ; C -1 ; WX 600 ; N udieresis ; B 13 -13 571 654 ; C -1 ; WX 600 ; N tcaron ; B 13 -16 530 637 ; C -1 ; WX 600 ; N scommaaccent ; B 73 -278 527 450 ; C -1 ; WX 600 ; N Zcaron ; B 73 0 527 839 ; C -1 ; WX 600 ; N ecircumflex ; B 33 -16 550 696 ; C -1 ; WX 600 ; N Ucircumflex ; B 10 -14 590 839 ; C -1 ; WX 600 ; N acircumflex ; B 42 -16 571 696 ; C -1 ; WX 600 ; N Zdotaccent ; B 73 0 527 798 ; C -1 ; WX 600 ; N scaron ; B 73 -16 527 696 ; C -1 ; WX 600 ; N Amacron ; B -21 0 621 769 ; C -1 ; WX 600 ; N sacute ; B 73 -16 527 696 ; C -1 ; WX 600 ; N Tcommaaccent ; B 42 -278 558 583 ; C -1 ; WX 600 ; N Ydieresis ; B 21 0 579 798 ; C -1 ; WX 600 ; N thorn ; B -8 -205 571 624 ; C -1 ; WX 600 ; N Emacron ; B 13 0 550 769 ; C -1 ; WX 600 ; N Ograve ; B 21 -14 579 839 ; C -1 ; WX 600 ; N Oacute ; B 21 -14 579 839 ; C -1 ; WX 600 ; N Odieresis ; B 21 -14 579 798 ; C -1 ; WX 600 ; N Ntilde ; B -8 0 592 799 ; C -1 ; WX 600 ; N Ncaron ; B -8 0 592 839 ; C -1 ; WX 600 ; N Nacute ; B -8 0 592 839 ; C -1 ; WX 600 ; N Lcaron ; B 33 0 571 598 ; C -1 ; WX 600 ; N Lacute ; B 33 0 571 839 ; C -1 ; WX 600 ; N Idotaccent ; B 83 0 517 798 ; C -1 ; WX 600 ; N racute ; B 54 0 571 696 ; C -1 ; WX 600 ; N Icircumflex ; B 83 0 517 839 ; C -1 ; WX 600 ; N ohungarumlaut ; B 42 -16 558 694 ; C -1 ; WX 600 ; N otilde ; B 42 -16 558 656 ; C -1 ; WX 600 ; N Euro ; B 4 -14 538 597 ; C -1 ; WX 600 ; N ocircumflex ; B 42 -16 558 696 ; C -1 ; WX 600 ; N onesuperior ; B 166 247 434 638 ; C -1 ; WX 600 ; N twosuperior ; B 149 247 429 637 ; C -1 ; WX 600 ; N threesuperior ; B 157 238 442 637 ; C -1 ; WX 600 ; N Igrave ; B 83 0 517 839 ; C -1 ; WX 600 ; N Iacute ; B 83 0 517 839 ; C -1 ; WX 600 ; N Imacron ; B 83 0 517 769 ; C -1 ; WX 600 ; N Iogonek ; B 83 -208 517 583 ; C -1 ; WX 600 ; N Idieresis ; B 83 0 517 798 ; C -1 ; WX 600 ; N Gbreve ; B 33 -14 592 831 ; C -1 ; WX 600 ; N Umacron ; B 10 -14 590 769 ; C -1 ; WX 600 ; N Kcommaaccent ; B 13 -278 602 583 ; C -1 ; WX 600 ; N ograve ; B 42 -16 558 696 ; C -1 ; WX 600 ; N Scommaaccent ; B 62 -278 538 597 ; C -1 ; WX 600 ; N Eogonek ; B 13 -208 587 583 ; C -1 ; WX 600 ; N oacute ; B 42 -16 558 696 ; C -1 ; WX 600 ; N Edotaccent ; B 13 0 550 798 ; C -1 ; WX 600 ; N iogonek ; B 62 -208 540 623 ; C -1 ; WX 600 ; N gcommaaccent ; B 33 -205 592 721 ; C -1 ; WX 600 ; N odieresis ; B 42 -16 558 654 ; C -1 ; WX 600 ; N ntilde ; B 23 0 571 656 ; C -1 ; WX 600 ; N ncaron ; B 23 0 571 696 ; C -1 ; WX 600 ; N Ecaron ; B 13 0 550 839 ; C -1 ; WX 600 ; N Ecircumflex ; B 13 0 550 839 ; C -1 ; WX 600 ; N scedilla ; B 73 -229 527 450 ; C -1 ; WX 600 ; N rcaron ; B 54 0 571 696 ; C -1 ; WX 600 ; N Egrave ; B 13 0 550 839 ; C -1 ; WX 600 ; N Eacute ; B 13 0 550 839 ; C -1 ; WX 600 ; N Gcommaaccent ; B 33 -278 592 597 ; C -1 ; WX 600 ; N Rcommaaccent ; B 13 -278 619 583 ; C -1 ; WX 600 ; N Edieresis ; B 13 0 550 798 ; C -1 ; WX 600 ; N nacute ; B 23 0 571 696 ; C -1 ; WX 600 ; N uogonek ; B 13 -208 571 437 ; C -1 ; WX 600 ; N umacron ; B 13 -13 571 626 ; C -1 ; WX 600 ; N Dcaron ; B 13 0 550 839 ; C -1 ; WX 600 ; N lcaron ; B 62 0 538 637 ; C -1 ; WX 600 ; N Ccaron ; B 33 -14 564 839 ; C -1 ; WX 600 ; N Cacute ; B 33 -14 564 839 ; C -1 ; WX 600 ; N Ccedilla ; B 33 -229 564 597 ; C -1 ; WX 600 ; N degree ; B 125 243 475 596 ; C -1 ; WX 600 ; N Aogonek ; B -21 -208 621 583 ; C -1 ; WX 600 ; N minus ; B 42 230 558 330 ; C -1 ; WX 600 ; N multiply ; B 100 80 500 480 ; C -1 ; WX 600 ; N divide ; B 42 28 558 532 ; C -1 ; WX 600 ; N Aring ; B -21 0 621 871 ; C -1 ; WX 600 ; N trademark ; B -33 220 620 583 ; C -1 ; WX 600 ; N rcommaaccent ; B 54 -278 571 449 ; C -1 ; WX 600 ; N lacute ; B 62 0 538 840 ; C -1 ; WX 600 ; N omacron ; B 42 -16 558 626 ; C -1 ; WX 600 ; N Atilde ; B -21 0 621 799 ; C -1 ; WX 600 ; N icircumflex ; B 62 0 538 696 ; C -1 ; WX 600 ; N igrave ; B 62 0 538 696 ; C -1 ; WX 600 ; N ncommaaccent ; B 23 -278 571 450 ; C -1 ; WX 600 ; N lcommaaccent ; B 62 -278 538 624 ; C -1 ; WX 600 ; N plusminus ; B 42 0 558 624 ; C -1 ; WX 600 ; N onehalf ; B -34 0 629 638 ; C -1 ; WX 600 ; N onequarter ; B -34 0 629 638 ; C -1 ; WX 600 ; N threequarters ; B -43 0 630 637 ; C -1 ; WX 600 ; N iacute ; B 62 0 538 696 ; C -1 ; WX 600 ; N Abreve ; B -21 0 621 831 ; C -1 ; WX 600 ; N kcommaaccent ; B 33 -278 571 624 ; C -1 ; WX 600 ; N Omacron ; B 21 -14 579 769 ; C -1 ; WX 600 ; N imacron ; B 62 0 538 626 ; C -1 ; WX 600 ; N emacron ; B 33 -16 550 626 ; C -1 ; WX 600 ; N amacron ; B 42 -16 571 626 ; C -1 ; WX 600 ; N tcommaaccent ; B 13 -278 529 591 ; C -1 ; WX 600 ; N ydieresis ; B 21 -205 579 654 ; C -1 ; WX 600 ; N zdotaccent ; B 85 0 519 654 ; C -1 ; WX 600 ; N zcaron ; B 85 0 519 696 ; C -1 ; WX 600 ; N zacute ; B 85 0 519 696 ; C -1 ; WX 600 ; N yacute ; B 21 -205 579 696 ; C -1 ; WX 600 ; N uhungarumlaut ; B 13 -13 571 694 ; C -1 ; WX 600 ; N eth ; B 42 -16 558 646 ; C -1 ; WX 600 ; N uring ; B 13 -13 571 727 ; C -1 ; WX 600 ; N Ocircumflex ; B 21 -14 579 839 ; C -1 ; WX 600 ; N commaaccent ; B 183 -278 351 -59 ; C -1 ; WX 600 ; N copyright ; B -7 -15 606 598 ; C -1 ; WX 600 ; N registered ; B -7 -15 606 598 ; C -1 ; WX 600 ; N Acircumflex ; B -21 0 621 839 ; C -1 ; WX 600 ; N idieresis ; B 62 0 538 654 ; C -1 ; WX 600 ; N lozenge ; B 72 -19 529 593 ; C -1 ; WX 600 ; N Delta ; B 15 0 585 583 ; C -1 ; WX 600 ; N notequal ; B 42 22 558 525 ; C -1 ; WX 600 ; N radical ; B 12 -60 642 697 ; C -1 ; WX 600 ; N Agrave ; B -21 0 621 839 ; C -1 ; WX 600 ; N Aacute ; B -21 0 621 839 ; C -1 ; WX 600 ; N lessequal ; B 3 0 549 591 ; C -1 ; WX 600 ; N greaterequal ; B 35 0 582 591 ; C -1 ; WX 600 ; N logicalnot ; B 42 115 465 445 ; C -1 ; WX 600 ; N summation ; B 45 -97 538 671 ; C -1 ; WX 600 ; N partialdiff ; B 102 -16 524 590 ; C -1 ; WX 600 ; N Ncommaaccent ; B -8 -278 592 583 ; C -1 ; WX 600 ; N dcroat ; B 33 -16 613 624 ; C -1 ; WX 600 ; N brokenbar ; B 250 -153 350 622 ; C -1 ; WX 600 ; N Lcommaaccent ; B 33 -278 571 583 ; C -1 ; WX 600 ; N Adieresis ; B -21 0 621 798 ; C -1 ; WX 600 ; N mu ; B 13 -153 571 437 ; C -1 ; WX 600 ; N .notdef ; B 375 0 375 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -14 KPX A Ccedilla -22 KPX A G -10 KPX A O -15 KPX A Odieresis -15 KPX A Q -16 KPX A T -27 KPX A U -23 KPX A Uacute -23 KPX A Ucircumflex -23 KPX A Udieresis -23 KPX A Ugrave -23 KPX A V -59 KPX A W -13 KPX A Y -27 KPX A a 15 KPX A b 45 KPX A c -4 KPX A ccedilla -8 KPX A comma -47 KPX A d 4 KPX A e 2 KPX A g 0 KPX A guillemotleft -40 KPX A guilsinglleft -40 KPX A hyphen -19 KPX A o -3 KPX A period -62 KPX A q -4 KPX A quotedblright -84 KPX A quoteright -113 KPX A t -20 KPX A u -12 KPX A v -39 KPX A w -13 KPX A y -39 KPX Aacute C -14 KPX Aacute G -10 KPX Aacute O -15 KPX Aacute Q -16 KPX Aacute T -27 KPX Aacute U -23 KPX Aacute V -59 KPX Aacute W -13 KPX Aacute Y -27 KPX Aacute a 15 KPX Aacute b 45 KPX Aacute c -4 KPX Aacute comma -47 KPX Aacute d 4 KPX Aacute e 2 KPX Aacute g 0 KPX Aacute guillemotleft -40 KPX Aacute guilsinglleft -40 KPX Aacute hyphen -19 KPX Aacute o -3 KPX Aacute period -62 KPX Aacute q -4 KPX Aacute quoteright -113 KPX Aacute t -20 KPX Aacute u -12 KPX Aacute v -39 KPX Aacute w -13 KPX Aacute y -39 KPX Acircumflex C -14 KPX Acircumflex G -10 KPX Acircumflex O -15 KPX Acircumflex Q -16 KPX Acircumflex T -27 KPX Acircumflex U -23 KPX Acircumflex V -59 KPX Acircumflex W -13 KPX Acircumflex Y -27 KPX Acircumflex comma -47 KPX Acircumflex period -62 KPX Adieresis C -14 KPX Adieresis G -10 KPX Adieresis O -15 KPX Adieresis Q -16 KPX Adieresis T -27 KPX Adieresis U -23 KPX Adieresis V -59 KPX Adieresis W -13 KPX Adieresis Y -27 KPX Adieresis a 15 KPX Adieresis b 45 KPX Adieresis c -4 KPX Adieresis comma -47 KPX Adieresis d 4 KPX Adieresis g 0 KPX Adieresis guillemotleft -40 KPX Adieresis guilsinglleft -40 KPX Adieresis hyphen -19 KPX Adieresis o -3 KPX Adieresis period -62 KPX Adieresis q -4 KPX Adieresis quotedblright -84 KPX Adieresis quoteright -113 KPX Adieresis t -20 KPX Adieresis u -12 KPX Adieresis v -39 KPX Adieresis w -13 KPX Adieresis y -39 KPX Agrave C -14 KPX Agrave G -10 KPX Agrave O -15 KPX Agrave Q -16 KPX Agrave T -27 KPX Agrave U -23 KPX Agrave V -59 KPX Agrave W -13 KPX Agrave Y -27 KPX Agrave comma -47 KPX Agrave period -62 KPX Aring C -14 KPX Aring G -10 KPX Aring O -15 KPX Aring Q -16 KPX Aring T -27 KPX Aring U -23 KPX Aring V -59 KPX Aring W -13 KPX Aring Y -27 KPX Aring a 15 KPX Aring b 45 KPX Aring c -4 KPX Aring comma -47 KPX Aring d 4 KPX Aring e 2 KPX Aring g 0 KPX Aring guillemotleft -40 KPX Aring guilsinglleft -40 KPX Aring hyphen -19 KPX Aring o -3 KPX Aring period -62 KPX Aring q -4 KPX Aring quotedblright -84 KPX Aring quoteright -113 KPX Aring t -20 KPX Aring u -12 KPX Aring v -39 KPX Aring w -13 KPX Aring y -39 KPX Atilde C -14 KPX Atilde G -10 KPX Atilde O -15 KPX Atilde Q -16 KPX Atilde T -27 KPX Atilde U -23 KPX Atilde V -59 KPX Atilde W -13 KPX Atilde Y -27 KPX Atilde comma -47 KPX Atilde period -62 KPX B A 4 KPX B AE 3 KPX B Aacute 4 KPX B Acircumflex 4 KPX B Adieresis 4 KPX B Aring 4 KPX B Atilde 4 KPX B O -9 KPX B OE 11 KPX B Oacute -9 KPX B Ocircumflex -9 KPX B Odieresis -9 KPX B Ograve -9 KPX B Oslash -5 KPX B V -18 KPX B W -6 KPX B Y -39 KPX C A 8 KPX C AE 7 KPX C Aacute 8 KPX C Adieresis 8 KPX C Aring 8 KPX C H -13 KPX C K -8 KPX C O -14 KPX C Oacute -14 KPX C Odieresis -14 KPX Ccedilla A 3 KPX D A -25 KPX D Aacute -25 KPX D Acircumflex -25 KPX D Adieresis -25 KPX D Agrave -25 KPX D Aring -25 KPX D Atilde -25 KPX D J -32 KPX D T -27 KPX D V -30 KPX D W -13 KPX D X -37 KPX D Y -51 KPX F A -39 KPX F Aacute -39 KPX F Acircumflex -39 KPX F Adieresis -39 KPX F Agrave -39 KPX F Aring -39 KPX F Atilde -39 KPX F J -78 KPX F O -24 KPX F Odieresis -24 KPX F a -40 KPX F aacute -40 KPX F adieresis -40 KPX F ae -18 KPX F aring -40 KPX F comma -168 KPX F e -47 KPX F eacute -47 KPX F hyphen -55 KPX F i -46 KPX F j -54 KPX F o -51 KPX F oacute -51 KPX F odieresis -51 KPX F oe -16 KPX F oslash -51 KPX F period -187 KPX F r -32 KPX F u -1 KPX G A 6 KPX G AE 5 KPX G Aacute 6 KPX G Acircumflex 6 KPX G Adieresis 6 KPX G Agrave 6 KPX G Aring 6 KPX G Atilde 6 KPX G T -25 KPX G V 6 KPX G W 6 KPX G Y -14 KPX J A -8 KPX J AE -16 KPX J Adieresis -8 KPX J Aring -8 KPX K C -24 KPX K G -19 KPX K O -25 KPX K OE -4 KPX K Oacute -25 KPX K Odieresis -25 KPX K S -9 KPX K T -13 KPX K a 6 KPX K adieresis 6 KPX K ae 31 KPX K aring 6 KPX K e -6 KPX K hyphen -44 KPX K o -12 KPX K oacute -12 KPX K odieresis -12 KPX K u -22 KPX K udieresis -22 KPX K y -50 KPX L A 16 KPX L AE 16 KPX L Aacute 16 KPX L Adieresis 16 KPX L Aring 16 KPX L C -10 KPX L Ccedilla -11 KPX L G -10 KPX L O -7 KPX L Oacute -7 KPX L Ocircumflex -7 KPX L Odieresis -7 KPX L Ograve -7 KPX L Otilde -7 KPX L S -24 KPX L T -52 KPX L U -29 KPX L Udieresis -29 KPX L V -57 KPX L W -22 KPX L Y -52 KPX L hyphen 9 KPX L quotedblright -72 KPX L quoteright -99 KPX L u -10 KPX L udieresis -11 KPX L y -33 KPX N A -3 KPX N AE -3 KPX N Aacute -3 KPX N Adieresis -3 KPX N Aring -3 KPX N C -7 KPX N Ccedilla -6 KPX N G -6 KPX N O -5 KPX N Oacute -5 KPX N Odieresis -5 KPX N a -11 KPX N aacute -11 KPX N adieresis -11 KPX N ae 18 KPX N aring -11 KPX N comma -75 KPX N e -3 KPX N eacute -3 KPX N o -8 KPX N oacute -8 KPX N odieresis -8 KPX N oslash -3 KPX N period -93 KPX N u -8 KPX N udieresis -8 KPX O A -14 KPX O AE -14 KPX O Aacute -14 KPX O Adieresis -14 KPX O Aring -14 KPX O T -15 KPX O V -23 KPX O W -2 KPX O X -26 KPX O Y -43 KPX Oacute A -14 KPX Oacute T -15 KPX Oacute V -23 KPX Oacute W -2 KPX Oacute Y -43 KPX Ocircumflex T -15 KPX Ocircumflex V -23 KPX Ocircumflex Y -43 KPX Odieresis A -14 KPX Odieresis T -15 KPX Odieresis V -23 KPX Odieresis W -2 KPX Odieresis X -26 KPX Odieresis Y -43 KPX Ograve T -15 KPX Ograve V -23 KPX Ograve Y -43 KPX Oslash A -10 KPX Otilde T -15 KPX Otilde V -23 KPX Otilde Y -43 KPX P A -61 KPX P AE -59 KPX P Aacute -61 KPX P Adieresis -61 KPX P Aring -61 KPX P J -73 KPX P a -49 KPX P aacute -49 KPX P adieresis -49 KPX P ae -27 KPX P aring -49 KPX P comma -160 KPX P e -38 KPX P eacute -38 KPX P hyphen -33 KPX P o -42 KPX P oacute -42 KPX P odieresis -42 KPX P oe -13 KPX P oslash -42 KPX P period -178 KPX R C -14 KPX R Ccedilla -17 KPX R G -10 KPX R O -14 KPX R OE 5 KPX R Oacute -14 KPX R Odieresis -14 KPX R T -28 KPX R U -16 KPX R Udieresis -17 KPX R V -24 KPX R W -8 KPX R Y -28 KPX R a 14 KPX R aacute 14 KPX R adieresis 14 KPX R ae 40 KPX R aring 14 KPX R e 2 KPX R eacute 2 KPX R hyphen -25 KPX R o -3 KPX R oacute -3 KPX R odieresis -3 KPX R oe 29 KPX R u -7 KPX R uacute -8 KPX R udieresis -8 KPX R y -18 KPX S A -10 KPX S AE -10 KPX S Aacute -10 KPX S Adieresis -10 KPX S Aring -10 KPX S T -41 KPX S V -10 KPX S W -12 KPX S Y -31 KPX S t -17 KPX T A -28 KPX T AE -28 KPX T Aacute -28 KPX T Acircumflex -28 KPX T Adieresis -28 KPX T Agrave -28 KPX T Aring -28 KPX T Atilde -28 KPX T C -19 KPX T G -19 KPX T J -65 KPX T O -14 KPX T OE 6 KPX T Oacute -14 KPX T Ocircumflex -14 KPX T Odieresis -14 KPX T Ograve -14 KPX T Oslash -14 KPX T Otilde -14 KPX T S -41 KPX T V 10 KPX T W 4 KPX T Y -10 KPX T a -34 KPX T ae -12 KPX T c -37 KPX T colon -112 KPX T comma -130 KPX T e -26 KPX T g -24 KPX T guillemotleft -73 KPX T guilsinglleft -73 KPX T hyphen -91 KPX T i -42 KPX T j -49 KPX T o -31 KPX T oslash -31 KPX T period -148 KPX T r -28 KPX T s -39 KPX T semicolon -100 KPX T u 4 KPX T v 10 KPX T w 10 KPX T y 0 KPX U A -19 KPX U AE -18 KPX U Aacute -19 KPX U Acircumflex -19 KPX U Adieresis -19 KPX U Aring -19 KPX U Atilde -19 KPX U comma -95 KPX U m 16 KPX U n -8 KPX U p 0 KPX U period -114 KPX U r -34 KPX Uacute A -19 KPX Uacute comma -95 KPX Uacute m 16 KPX Uacute n -8 KPX Uacute p 0 KPX Uacute period -114 KPX Uacute r -34 KPX Ucircumflex A -19 KPX Udieresis A -19 KPX Udieresis b 27 KPX Udieresis comma -95 KPX Udieresis m 16 KPX Udieresis n -8 KPX Udieresis p 0 KPX Udieresis period -114 KPX Udieresis r -34 KPX Ugrave A -19 KPX V A -4 KPX V AE -12 KPX V Aacute -4 KPX V Acircumflex -4 KPX V Adieresis -4 KPX V Agrave -4 KPX V Aring -4 KPX V Atilde -4 KPX V C -24 KPX V G -24 KPX V O -23 KPX V Oacute -23 KPX V Ocircumflex -23 KPX V Odieresis -23 KPX V Ograve -23 KPX V Oslash -23 KPX V Otilde -23 KPX V S -27 KPX V T 10 KPX V a -54 KPX V ae -27 KPX V colon -132 KPX V comma -146 KPX V e -47 KPX V g -46 KPX V guillemotleft -75 KPX V guilsinglleft -75 KPX V hyphen -39 KPX V i -59 KPX V o -52 KPX V oslash -48 KPX V period -164 KPX V r -45 KPX V semicolon -120 KPX V u -15 KPX V y -17 KPX W A -9 KPX W AE -9 KPX W Aacute -9 KPX W Acircumflex -9 KPX W Adieresis -9 KPX W Agrave -9 KPX W Aring -9 KPX W Atilde -9 KPX W C -4 KPX W G -3 KPX W O -2 KPX W Oacute -2 KPX W Ocircumflex -2 KPX W Odieresis -2 KPX W Ograve -2 KPX W Oslash 2 KPX W Otilde -2 KPX W S -17 KPX W T 4 KPX W a -11 KPX W ae 17 KPX W colon -99 KPX W comma -83 KPX W e -3 KPX W g -3 KPX W guillemotleft -31 KPX W guilsinglleft -31 KPX W hyphen 1 KPX W i -38 KPX W o -8 KPX W oslash -4 KPX W period -101 KPX W r -25 KPX W semicolon -82 KPX W u 1 KPX W y -2 KPX X C -28 KPX X O -26 KPX X Odieresis -26 KPX X Q -26 KPX X a 0 KPX X e -12 KPX X hyphen -50 KPX X o -18 KPX X u -28 KPX X y -43 KPX Y A -25 KPX Y AE -28 KPX Y Aacute -25 KPX Y Acircumflex -25 KPX Y Adieresis -25 KPX Y Agrave -25 KPX Y Aring -25 KPX Y Atilde -25 KPX Y C -45 KPX Y G -45 KPX Y O -44 KPX Y Oacute -44 KPX Y Ocircumflex -44 KPX Y Odieresis -44 KPX Y Ograve -44 KPX Y Oslash -43 KPX Y Otilde -44 KPX Y S -48 KPX Y T -10 KPX Y a -53 KPX Y ae -28 KPX Y colon -150 KPX Y comma -118 KPX Y e -59 KPX Y g -59 KPX Y guillemotleft -94 KPX Y guilsinglleft -94 KPX Y hyphen -81 KPX Y i -58 KPX Y o -64 KPX Y oslash -51 KPX Y p -30 KPX Y period -136 KPX Y semicolon -133 KPX Y u -43 KPX Y v -33 KPX Z v -41 KPX Z y -52 KPX a j -81 KPX a quoteright -78 KPX a v -21 KPX a w -12 KPX a y -31 KPX aacute v -21 KPX aacute w -12 KPX aacute y -31 KPX adieresis v -21 KPX adieresis w -12 KPX adieresis y -31 KPX ae v 28 KPX ae w 32 KPX ae y 18 KPX agrave v -21 KPX agrave w -12 KPX agrave y -31 KPX aring v -21 KPX aring w -12 KPX aring y -31 KPX b v 0 KPX b w 4 KPX b y -10 KPX c h 11 KPX c k 6 KPX comma one -128 KPX comma quotedblright -137 KPX comma quoteright -166 KPX e quoteright -65 KPX e t -16 KPX e v -9 KPX e w -3 KPX e x 6 KPX e y -20 KPX eacute v -9 KPX eacute w -3 KPX eacute y -20 KPX ecircumflex v -9 KPX ecircumflex w -3 KPX ecircumflex y -20 KPX eight four -58 KPX eight one -72 KPX eight seven -65 KPX f a -32 KPX f aacute -32 KPX f adieresis -32 KPX f ae -7 KPX f aring -32 KPX f e -43 KPX f eacute -43 KPX f f -43 KPX f i -37 KPX f j -60 KPX f l -25 KPX f o -47 KPX f oacute -47 KPX f odieresis -42 KPX f oe -15 KPX f oslash -29 KPX f quoteright -73 KPX f s -42 KPX f t -6 KPX five four -52 KPX five one -73 KPX five seven -73 KPX four four -62 KPX four one -66 KPX four seven -93 KPX g a -4 KPX g adieresis -4 KPX g ae 23 KPX g aring -4 KPX g e 1 KPX g eacute 1 KPX g l -34 KPX g oacute -3 KPX g odieresis -3 KPX g r 0 KPX guillemotright A -37 KPX guillemotright AE -34 KPX guillemotright Aacute -37 KPX guillemotright Adieresis -37 KPX guillemotright Aring -37 KPX guillemotright T -71 KPX guillemotright V -72 KPX guillemotright W -29 KPX guillemotright Y -92 KPX guilsinglright A -37 KPX guilsinglright AE -34 KPX guilsinglright Aacute -37 KPX guilsinglright Adieresis -37 KPX guilsinglright Aring -37 KPX guilsinglright T -71 KPX guilsinglright V -72 KPX guilsinglright W -29 KPX guilsinglright Y -92 KPX h quoteright -69 KPX h y -23 KPX hyphen A -18 KPX hyphen AE -14 KPX hyphen Aacute -18 KPX hyphen Adieresis -18 KPX hyphen Aring -18 KPX hyphen T -90 KPX hyphen V -38 KPX hyphen W 1 KPX hyphen Y -81 KPX i T -58 KPX i j -143 KPX k a 1 KPX k aacute 1 KPX k adieresis 1 KPX k ae 26 KPX k aring 1 KPX k comma -63 KPX k e -11 KPX k eacute -11 KPX k g -14 KPX k hyphen -50 KPX k o -17 KPX k oacute -17 KPX k odieresis -17 KPX k period -75 KPX k s -9 KPX k u -3 KPX k udieresis -3 KPX l v -77 KPX l y -77 KPX m p 32 KPX m v 18 KPX m w 22 KPX m y 8 KPX n T -40 KPX n p 4 KPX n quoteright -68 KPX n v -12 KPX n w -5 KPX n y -22 KPX nine four -53 KPX nine one -66 KPX nine seven -57 KPX o T -31 KPX o quoteright -62 KPX o t -13 KPX o v -6 KPX o w -3 KPX o x -10 KPX o y -17 KPX oacute v -6 KPX oacute w -3 KPX oacute y -17 KPX ocircumflex t -13 KPX odieresis t -13 KPX odieresis v -6 KPX odieresis w -3 KPX odieresis x -10 KPX odieresis y -17 KPX ograve v -6 KPX ograve w -3 KPX ograve y -17 KPX one comma -99 KPX one eight -74 KPX one five -55 KPX one four -87 KPX one nine -73 KPX one one -62 KPX one period -114 KPX one seven -141 KPX one six -98 KPX one three -53 KPX one two -47 KPX one zero -86 KPX p t -3 KPX p y -6 KPX period one -113 KPX period quotedblright -131 KPX period quoteright -161 KPX q c 2 KPX q u 41 KPX quotedblbase A -6 KPX quotedblbase AE -7 KPX quotedblbase T -90 KPX quotedblbase V -104 KPX quotedblbase W -43 KPX quotedblbase Y -78 KPX quotedblleft A -62 KPX quotedblleft AE -60 KPX quotedblleft Aacute -62 KPX quotedblleft Adieresis -62 KPX quotedblleft Aring -62 KPX quotedblleft T -24 KPX quotedblleft V -22 KPX quotedblleft W -13 KPX quotedblleft Y -49 KPX quotedblright A -76 KPX quotedblright AE -75 KPX quotedblright Aacute -76 KPX quotedblright Adieresis -76 KPX quotedblright Aring -76 KPX quotedblright T -39 KPX quotedblright V -30 KPX quotedblright W -26 KPX quotedblright Y -51 KPX quoteleft A -87 KPX quoteleft AE -85 KPX quoteleft Aacute -87 KPX quoteleft Adieresis -87 KPX quoteleft Aring -87 KPX quoteleft T -49 KPX quoteleft V -46 KPX quoteleft W -38 KPX quoteleft Y -73 KPX quoteright A -154 KPX quoteright AE -153 KPX quoteright Aacute -154 KPX quoteright Adieresis -154 KPX quoteright Aring -154 KPX quoteright comma -227 KPX quoteright d -140 KPX quoteright o -143 KPX quoteright period -244 KPX quoteright r -149 KPX quoteright s -150 KPX quoteright t -117 KPX quoteright v -110 KPX quoteright w -105 KPX quoteright y -116 KPX r a -17 KPX r aacute -17 KPX r acircumflex -17 KPX r adieresis -17 KPX r ae 4 KPX r agrave -17 KPX r aring -17 KPX r c -18 KPX r ccedilla -15 KPX r colon -95 KPX r comma -108 KPX r d -8 KPX r e -7 KPX r eacute -7 KPX r ecircumflex -7 KPX r egrave -7 KPX r f -16 KPX r g -5 KPX r h -20 KPX r hyphen -41 KPX r i -25 KPX r j -33 KPX r k -30 KPX r l -47 KPX r m 36 KPX r n 10 KPX r o -12 KPX r oacute -12 KPX r ocircumflex -12 KPX r odieresis -12 KPX r oe 18 KPX r ograve -12 KPX r oslash -12 KPX r p 30 KPX r period -122 KPX r q -4 KPX r quoteright -41 KPX r r -11 KPX r s -21 KPX r semicolon -83 KPX r t 20 KPX r u 20 KPX r v 26 KPX r w 26 KPX r x 7 KPX r y 16 KPX r z -21 KPX s quoteright -60 KPX s t -11 KPX seven colon -156 KPX seven comma -157 KPX seven eight -74 KPX seven five -82 KPX seven four -101 KPX seven one -67 KPX seven period -176 KPX seven seven -62 KPX seven six -93 KPX seven three -72 KPX seven two -64 KPX six four -49 KPX six one -54 KPX six seven -46 KPX t S -35 KPX t a -16 KPX t aacute -16 KPX t adieresis -16 KPX t ae 9 KPX t aring -16 KPX t colon -117 KPX t e -24 KPX t eacute -24 KPX t h -5 KPX t o -30 KPX t oacute -30 KPX t odieresis -30 KPX t quoteright -102 KPX t semicolon -103 KPX three four -52 KPX three one -71 KPX three seven -64 KPX two four -67 KPX two one -66 KPX two seven -68 KPX u quoteright -56 KPX v a -3 KPX v aacute -3 KPX v acircumflex -3 KPX v adieresis -3 KPX v ae 18 KPX v agrave -3 KPX v aring -3 KPX v atilde -3 KPX v c -11 KPX v colon -81 KPX v comma -136 KPX v e 0 KPX v eacute 0 KPX v ecircumflex 0 KPX v egrave 0 KPX v g 1 KPX v hyphen -23 KPX v l -77 KPX v o -5 KPX v oacute -5 KPX v odieresis -5 KPX v ograve -5 KPX v oslash -5 KPX v period -156 KPX v s -11 KPX v semicolon -69 KPX w a -3 KPX w aacute -3 KPX w acircumflex -3 KPX w adieresis -3 KPX w ae 23 KPX w agrave -3 KPX w aring -3 KPX w atilde -3 KPX w c -6 KPX w colon -81 KPX w comma -90 KPX w e 2 KPX w eacute 2 KPX w ecircumflex 2 KPX w egrave 2 KPX w g 3 KPX w hyphen 3 KPX w l -48 KPX w o -2 KPX w oacute -2 KPX w odieresis -2 KPX w ograve -2 KPX w oslash 2 KPX w period -109 KPX w s -11 KPX w semicolon -69 KPX x a 5 KPX x c -14 KPX x e -5 KPX x eacute -5 KPX x o -10 KPX x q -8 KPX y a -13 KPX y aacute -13 KPX y acircumflex -13 KPX y adieresis -13 KPX y ae 8 KPX y agrave -13 KPX y aring -13 KPX y atilde -13 KPX y c -21 KPX y colon -91 KPX y comma -134 KPX y e -11 KPX y eacute -11 KPX y ecircumflex -11 KPX y egrave -11 KPX y g -9 KPX y hyphen -19 KPX y l -78 KPX y o -15 KPX y oacute -15 KPX y odieresis -15 KPX y ograve -15 KPX y oslash -15 KPX y period -155 KPX y s -21 KPX y semicolon -79 KPX zero four -59 KPX zero one -76 KPX zero seven -68 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n022024l.pfb0000644000076500001440000014450707056046554016427 0ustar fnevgenyusers€g%!PS-AdobeFont-1.0: NimbusMonL-BoldObli 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Bold Oblique) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Bold) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-BoldObli def /PaintType 0 def /WMode 0 def /FontBBox {-61 -278 840 871} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020948 def currentdict end currentfile eexec €¸Àé ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>j/¿Ÿ?4 …ô/æ:Í“ØFµ}0ÛâÖ´´+§³„ÏZ®êy{ ß` ëè?½Ô“ñ‚{D›ï.«ˆyëïåY ïûx;à`/§nSîN é¥Q‰¾äË„-88ÜÅO¿t#"šÖ‹˜à3;>FJ›®¡‡`Ð]…˜K > ’«¡ôt³òw—Ò„B+¿?[ÿ+-á&m äOš]Žl€ ïÓ¥9Dÿñufª¶œ^XÍ~&Á»,¨¬¶ÿCu©Ž#äï_7îªTœÞÁ¨#µ©>P¦À2cÒð˜$÷®¶³…ÉÑ©¾çÛØÇ‡÷Š”ùl×VùÆ1QÊt+Šå ~¨`\ᔃ2é&¿N|äÎ˹A×eŸm¤½™ùýNol°X<‹¡Š}&Éèͧ÷—„ðS$6„i7¤‚¨ò,‘BO%S<¿›¢´=ƒ: üz•î†Í±™!´â{H~.5<‹”+ýÍ—Kú )%qúcUQ¹ýŽá¼”gëÜÔ[7,Ê×éù4`DŸ$3`0)L+ɱ&bqèÞR… ƒÒ§Òcm>¹'ruñD˜$_ß&-T«"ɇm:´ðìŽ#ÒŠË-=A7WíOºòÐ=º®çEö&r¢8X𲋣¡«k;— (Ò÷Gú˾÷èËÀ¨G‰æ¢s ÏQÛ.95ñn,m©ÑëTöçXRü|½»Þµ²z)ž@°‰ej–Þ&ûTÓýä ÖMã0Ú)Hku(¢à€/Èqʆˎ´zrþsPè¨{Ü®¯#3¦»’›} +ÕäѬžÖøãE½žÒ4ö9Im`ÃÈ@…ÃM—‘üð@ñ(Xt6~[傌Ü÷swP9#}¥3æyþ}û›r!°O-i­ÑžÏÚ ”¿SÜ8ŸÐfnÂ’89•Q·s$žçðþyʉ­JÚ&zî<ç[ÈŒLÀ=~ Ê*ñ[q£Á;)ß Á¦Ûk/—à=‚ŸmèûQÔãD‡0ü”¯]b¶ž*û„:⨱-PFç¿éûü$¼b2ãR²ZŽŠPoìð%qž׉ @ÿÿ°ÜÔ*e@-ó}‹+‘Ìÿí0¸á’µòõ=&:Þ˜òü”Ñ–“sK«E® îf+ ¹%­T¯Ãµ?%¤»±.§ì×±¤—B˜Z-W"7bÖØ6ˆEuÙ £ÿâ™—žN¼y¿¬p ­Ä Æv­Yq(Н+¬Jtq\üv±æÕ%à÷v¶PeEŽcámÂÆÖέȺ” *x |›=‡Ž”&ΖŽeä¿Ùôu‚ï,7ÃaÁ·þ$ZmÖÅ¿Š„ÌÊÍ–ÍêàrÀ˜V³6V>fA[r}XÖ.Ës‚ÂÇäP<04lâ¼ôº¢È{pñ§ê&ýw“±ã·qÕñÅîŒ(+ÀY‰søSÅxÐÏS®!<p«Ûóûø >w÷ÛYù0.¥[»é÷uÐO2BÊØŽ*ìèÛYÚì|÷èœÌ÷6ÆÞÌýPCgû〄:²ŒÀãéá7L$ÁUgE>Ž’Žsþžê´ãȱ½’ °ÔÔ€¼çcÂ[¹5¦éužWL~4*,x±·‹hÍ“^j¦X:NR‹ðf¼„7R©sÝ`¦“´^ÿlQÿ‰ F­3À^ø º`„$¥‚–…HÑÅd ¸(W†ýàøûŸ!ÅWz¾–ƒÁdºšipšÄmfKƒ:§þZ?­¶zÓ½‚®C|ç´iΠâ‹üÎÖøÓìÊ6l©%º? ¾œ4Ø- rž‚ŸM {N–0‡¦Œ Qaä1³e€M—«Á‰·l¢Kûz‰x5æ,*×З»ÖN¶T/~O£ü— X@`˜Å5dï¿F‰ÜD¶€ ŠTÃ`+U¦ Ó­?¸>í¦Ýí¦ÝêN¤$U>Â/½ÞöRTH‘­NÓŽñ•ÄBŽêèPÆ-ºÂùãÉÏÈeB= \¯”lj îÀ ÐÎh•zá¶f䫾‚¡Æ£éXY5.„áóâN€º³~>´" ââqsŠÃ3?ÐDA¤Ç~\°þÝ/= “Ð&vDõk!±ïÚÓ¶^ŒÀÒÌRdYÏ#‘ðÚýØz/Á]èeŒêÀ§ø~`(¨ò\çòphB˜Þ¨Ægù‹.Dc˜î¯1©íß‘“»XaM÷¿Yc/ÁLÝÍoý¥Ü×0 ܆a¯AÏûpºp-úÝpt«Ð~€ù1L>¦¬§WOMÝëK5ÇŒ»7fwÛH0CX”¦ȳǟÛª~Zã¥ÛIY±Bf„&.=Iê몆7Îs\ý[ò˜¼"t£Uw¹[Öů ŸdóÁdÖE}­ò-RñJP×ÐØ{-¶±á’$÷ 0ˆŽ$AÈš­~ôUtîòn>žy/cƸ»Š‘^Zö*·¼}¹´Ú( ½¾%åuèшá˜h½*à*ö îÚ5ˆ)hŸaØ]Êã‹ÍŽøa]V*ƒÏþ^—âðà·‰WV˜iῈW†åTÝFMœž˜DÍ5zû…‹ü(W[£ãP苺*[à.Ü $¼?ò˜ãØLò;§)1ª'ŽâG“uàÕ“ØøªßâTaœý‚ZUŸ–9ñ˜Î´‘ºÕR™3. Ïª+˪}ùÜk¢áÓ©gjðäQù-.ÕGâß [‹½@»Z¢ßfÿ¾hS~‚=¦|)6œ‰Áý›«‘0žÿ^ WXÙê ›—Ì}³x‹ÙÿŽáÏ 2ìÝYR…‡&ß3϶  %I|ÕNÚôI&È £ÒéèO#³ðÿ#þâM­¼6I.ß«ì O¥|LGÒ謵éÿ^ĆÚ*ÃíQ£³i3ÕKÎÇÊî½8WӃݗc"ª&1^?×wšP1«Aïû²•¯àfçÁè6qå(ìyšT›ÞH¥øyñ6øÁw±"þެ8fˆ‚¤n} X{Õa³D†ÚÓl)ÂOÄFÒ»Ä%jôê~Ý(‘J‘îA–3›¸[Ý8ÁAvi³EÔokn¢ã ˜¬aЀs È–#É¢…f§&¦fZÇ {ÒáçWÀ ;ø›è>@Ö¶I'œôüÎe\ÆË*-•ÈFÖˆSÖT(m\,-Žê”þûgbüÍ“îºÂßþøwÇKÚÎqc¶T˜-†Kh9Ûô|zÔóŒÚ´+ÊSî¡MBbÚƒ(·\È£BW sÀS´Åì.<Í,¨ÞõQëÌÄöû’[¢¬|¯¾Ð°¿® ¢~ìÎÚ÷ëRü¶¢T£íQ7L’UËDHùžA‡p˜z(vdÛö’Ÿí“{³@VŽ‚bwèÜ8ôÜídN#¸ò˜·P[³{ÿˆd§‚Q}ǯ-›ªf^{ë*ló ËzrÁ;•9gë=X“Ò-ÅÐXÌ*F"/dW®ˆNY0é çïfì~VÕ9¤s´Á;)ÍT´>ïvÔB«Ô­‘ö½+R6fž_ ƒ7Z6=·¬Õ(€>D[ 2ô¦ª›üÁÇÙ¹6MÇퟳL<¼)iHËç+и`ô;Ô?ü«l ”U˜0xjXëëKˆgs¢LïT;¹Þóèhß¶Ÿ€Ý°w`nú¢ˆó¥üÅ­=ÑÑ£Ž"è«îP§¦ÅËDËÃ9üÿÚÖä…»âã–þ9†”+Å ¤ÌÛåùaøD®T51iÏ †t©ž®÷l™Ä¬Šl tPŒ~Gp.ÁäGI:ÉòˆÞ«`ö¥æï¢`àHRçÛÇœ­Ášè¿3½â{ÝÆè6ž  ;‡|´ q‘ÓÃòõŠ´°£¯Â©¿j¥êt¬Ï0P<õ¡¾×Õ”¿ì¿o¥ÌCa'Ÿ`|¼zÎ"$®OÛ‰ƒ—Åco+üSE†>Ž¥4­¬×¡êôMŠè‚í¤°%«íTüR„?ïâþǼ,üÉ^­¥'c½ƒ—/e)ì>­Ö¢Ì–Úɤg‡ˆÀcUÆ#”…"_!S<ýKOלG’mdXŒ*½À4wÐ,|BÅáLv"ϲ4Î>¿çž6ç/Þ½N`Ng NV”—¢)Òñ´<vËí@ž!ñ¤÷aà $¯Às£¥¸"ë!}´aˆvã:ÑŽ›YEm´Ó:Ü›¤†IèMl ›¾ÇŒ$ô‡Æ©4ݱ©nXfó‰ð;65uŠÿoc›ÆEa¥«ª?Kß°À3àIFé¥ÚMãýU©©qݱM¨óurèRµTÛjˆ€oFa°®#B4á[™¦Ä«!Óhß-¦^š?·6ÚtˆC" ‘cW×°Ï_$l©+¸8•›¯Pp‡"m©µ0bw¾RÜaîVG§,Ýhlt×. wÄëX‰LWÉÕŒs¤H,0*ãƒÚ»DÞ~uŠÙö’Dê¿å.‹ááBœå›1ü$¥@£‘«¶uŒC no£ç÷¤#¦qÝBÕjS"h#Õºbá­ì‹Ä8–œ.ÕÁÂ[ž+Ziøœ›þ‹¿PÄük·Öó´…Å,ZŠå±}û«ú8êõ?Qq¬n)¯šdÁ=gnÛèUVa¿Bkqû€ù„£w–^q˜=dº>´e˜Žqõ‘Á =¶çìºÉ½™‘æ¾ÑÃÇZŠ ˜vÝY+Úgš7ÏîMMòú„à˜PqÍïÓå×ÈþT5ãVÀ2åô™LŽñõyœ§ ;3g›-®³:û‰%$hg÷§íx¯ó)‹ßÕ»õô0ÉÁYÅmÆ^ô@OLRU½|æH­*D¶¾öÑŽ¿ëU– ÚàF(t=úÿËG>¸q¶ûNÙLŒ»°=Ö›[´ ´ð’ˆ¬ž­KÅ2Ú¶˜õÀJ•œ¦0½°c¾¼ 5s*¥€#z^ºé  ¡ ²ƒöá“™Ùû›Öl†%;ÐÓÜs _Ș¿¥Pˆ\N<½krô;ž* 6-cgÕ&•ðwR*7¶U*¢Ñç0#»f¤®£É ÜौêV#hc"¨þnˆò%%r„ñRÌî’14(ëe3UCtYáZÓt憬¦ns߷‡¾¤ ›i¶£ e¶Ô°`Нš´Våd¨Ê-¾í~溜J±l ˜5—N)†°ÙöˆŠCî¬`KÏš <¦ º_JVZÉùüÅa¿—D1Ó}—©.Q~ðö¬0ǯÊI LvèÈ@6òJ'»ùR¤ïwgQ‹ð¶—7¶[{jê-h¬±ø,^–kæ«‹³Š±‚7u»5Ö À•nu­ö>×à—˜ËÀá#WBuy…~r~“O±7‚çÀbƒ$¨¼8ÅvµÙl?ñ%û’]qò׿uÀÆ6`7·µ×»5¶®ñtZ{BÝ?=ÁYš+‰v ò4ÐÊU}õó¾ÙçÎÝ,>˜'òŸFgä¥^‹¬…ºÏ3qosTêk–wl&¿tøÆÜAÏAl‚²"g…Û†ænÝä]¨åªs‰4Єí?‹«EŤi@íÓ&náªl‹$ ˜ñì‚„¼¬/ï¾—8…¢ÅþZDŽòìdÅzÀi˜ªòOp+pêØbô2tgÜUXµ!µ¤uúèYSM-ïókò‰ÉÀUm¾G/ƒ8t0j¦5§Ós _§;Ù©?©ZÚHZdJ[ít§ü þ¼â*ÇÎ ØæAC0g˜ Ã5©§5-˜Cö^L&IiudøBÎ4Ú¬8k1r" e!Æì®'kc¾²Á’}ˆaxì>Ùx=ßANá4رN’?þZO&~uSã°!î'å6½IcÆ”U1Ž\í »O¯LÔ™ŠjJp4ï ¨ÆO0ïÆ«Nb##>aƒAŸS¨’!©dhÝ9XŠ~š8ü*–,ŒQ~êÕo6XF†Î‘%ÕúÌé\{œ–ÁÇ>§ip²ÃCʆS}ìVð¼CƤªÓ&­2–—w¦)H ú›`*h òe ¼œÞü§Ä·œ¯öÏÌ+Ÿ ÊiÔ%Go-7.‹kI«”>0§dmÑnºâ¾­uxKPò×®0¤Ë«ÍPÐÚšúLó8Xåu·iÆ"‹8tC ¶Š AbqÓWâ[ÙGâW<Æ‹üS,Ï&ƒ‘ÜQi(øç2ÒåH*ÓÇ>%]è©7–*VÀø:¾cŸ,œlB')×Mþ„¿rÔ-‚Ò-ò8,Ó=ļÀ0©)!ÄùCÌBóZÁÝÒ¦ÿ7¹,æÉS©xŽèÄÊ`2Œvü7ß;\¿·¾èÑ õ“N5;2žÆ›‘ÄR >€¿?®Q¯c{Ìî«+D]ÿ ú7 ÈŸþ!fæË3ƒY+¤<28n«„ÕšF20¡ã½´(ó bL°.Ú/ÛÏkkrÙ£? ò÷äeD‰L•!¥¾ª•Üœ¨³¯Ó˜†AèÑðR>Ïö ÙZß„¤dÚFÆôVO“Ɖ«rÍ8É!Wz r\[‹½Ûp-ÊåS5Obƶ®”~øˆß„@ ‘ñ]-"¯Ÿ6†Žý1ÍP|*“HR.2ø?öŽÎ˜\5ì°Ø|Í¢¿ÚI§Eø?OûEÛc¶q]NaN ZÝ?yh«³9E¥6yÄ£uÆJ'çr󢆑ÅK5ª— 8üG& ;¿j90ãim¹ ꊀï7Y.ˆ`¾ ùoÁÚ8k§`õß@ú!ž¡¦¥¼}lT«õžqóèë^°/”¬:Þk‰¿Õv‚kâ%4%cøŸL Z¶Ç(tŠßýæ²!—è~ ÏeSƒÎéZGâmØøHÂB%um›%åüô‚võáþ¸uIùj8·—€htÖv1³AÜÏZ„èexƒ~Ã)hÅ~+p8{O¢—¬ñÊÆ^ð¦ôheȬ»ë«ûƒÓOKR^¬Á-'3ÂóÌJ(§à0’& à9…eÿ¥[©¤ËíZõ…É8¨ áW?cØ)Ϫ»ìVJ”Ó"6—2;©ÕŠÇM(ãp2¯o$öläé·¸Vyâ(ÇC"0¨]5ÖöY¾3´i~L knâ Q*Ü:vÀiäk‹hèH“üùd¸Nc’¥+©}®ÌôÃR§x"YeòšÊhŸtÁWZPÃþn¾±jnG=gžZÕô"¿°¤ºð)°¡@£P!Ò©‘vÓG6>§h·¤ ÇhÕS^`a+„ŽÿÐ §¼ ózqk$ÝàM0·?Éûx5Æ-‘È,ø³¿ y–-°»¶™)_2Oi _C=?t6¥ô–Pºû†ÒÖ­î,—S߾ŽÅòTžÏ7nÀ_k:£ ÙÇ›â 5Üàñ¿OwÞ…d¢ $âˆ"ç4w qpÇ+Ùúõض€\:|k­éñm7Õçí¤×WjE©­¡é™j™@"·w¾ mœµ‹ ‡1îvàÓp—”À]­Jï$ ͺ=Õ­8®[Ëœ ò4+rw âAª]Ä·ÀµÖÆjãÈÇXÙwŸqO2‹ïÿ>¾ ~~lNëÂu…¨²-g‘³MN.¹È Ù%F›pm™–)Ž“ëš0õjb8Ÿ´›Ñùjòú†Ø_«O›‰ÛÐv 6@Sç‘<ˆun0TPĨ Ès#ä a[qXØ“øG&sÎ#rŠ®ÒMºî!Yîw%ŽW?v\C-Ô"|å#9·ºY¡¬+¬ñRûìXç‡mA v•¨¾­µŠc¥í•›œ¨ŸHž"o{`šY›0¦¤iKÁfîÿùTá‡Õ9‡†ŽMŸ8ޱ+žPãVhû' '„ dû¶NÆÑçÃT¡ºô%ŃüGÛÛ•‹^¶Sµ Eþù’y¤§m HM7À41 1è#_qyH3}w| 0w«‰‡³ÖM¯pþ(éW¡é*þ“‚¥p#{=;ÓyÚ.Q¼ðKVl­Ê"jà¸Æ!s&¿WíOnðôþAEÛY†Ñk,£k?w ´ÒCGŒYË4IK ž¡MOà$ós‡zø‡“í¢“Wý•¡•%·&Ž7{W&Ò„GV-õŽf;†Ëýòt 4 Ï±ÅR>¡·²—Η”?ønyí=»Y¦ý–hdæ“ðkéPä¢Ãí#Mµ ¢¦U”È\gJ›ïß®ŠˆP¯f,Ð)¯OA¨©]¼»¡½~+T!¡ú#|óÅ/sjíÛõ¢)¡èÆ÷ rC­Ä?„)­‡Mžú ’y—]Á[ÁAÝ?¢Åiljd/ÞNênTvM¥ åtPm_}F¬aôµFzéD‘’Óósg@pM(ß% ¦ÂMÊbωñœ€í÷ê—ëH·%¢õùA Ó;g¯J›„·ÆL‘H¤V@ZkÞKïž Ó;‘¹!c%ٷпäÑay鯾™ßqX/¼Áªë¡7Ï7w}µ“ië6니ýl q¸Ÿ4ýð ÏXLÍ™‹1yùZãÁÚH5C½w؃·fÕVTk0ÅsdcÓóÉèØÊmŒb5„öµw¨Êã$p[àuvœOz€ÿèðvÐàM+¸¡Ý Ƨš-±ÿQ'h€5+ ¢ª*s™‘‹ÙP‘(’žQ×:G5¥õ•"GKIëÆì}jàï\Þ64¸xT@™ÅŒ1%IlÞ¹ˆt3[ñÇV¸öÌ{ ¤“ÀHEnH7zîòï.Ý?ý^þ„â:ª8„Öók=_©PÃsqÍ€¿8<¯Fé0ä$#³Kƒ0zË £‚ý'“ɦœÜL0öEÔûˆy90Rôî\"^lïÓñ!P7…âzåÍ|%Mó›Må:{KKê>t}äW#3²bÖ«‘/Çç"×úÂn’É×y¶Ö»IãÈIÚPHÔÈV¥è4uEy†¨ª%†žƒ)ů¾xPïÄUSûô$ìUhÿé.Ñê#–QV]KùŒrš¾o IF‘Û“Åâ‘à}5Ä\êú<1UÄÂÉ©{ª› — ”h'âRÜhÖ¡•’ˆÿ¶>¶rÜ >rÀÓ|§Ü=ê¾ôèË·õe ;ßõèmãoŸ‚lOÀ]VgêJß]£ÔðÒü•õì͇J@À„{ÏOœK|'åÇ #âôPJ¡·¤QJ÷–¼Ý…”!E‚`TÚˆùkÙ½ Dö¡RóãˆaîÀ=^ô4œbgq¼»%ljϦPêvqjÙŸžô£aF}KÝ0[VÈâ&¼a™>˜þ1Ü“löœ¯‰àªÓ¢hZ‚'SWüç%‡{R~ìV§NJ£R ÎǶmZ× Ç`ì]ÍFË zì2¿iÓ¼÷„GMÈÃŒÔC–K'(T¦³¨xꓹ•º Ët¤éa²]®/g«âî^X .ëŠ s xér'x#A¾Ê|+¥ˆc±pp‹§.°É×dré\s9—RˆÀl$Iíê‚°Ïe<ñÜZýdÁ ½í1¢Ã¢Ç  ÷¶ˆÇxˆÖæ]Œ ™C‚ê®ÁMóx=K;ÉÃîaÕ »Âû‚Úü|FmY Û:|,[1¡}Õˆñ[‹Rß1O³4ÄõA/²8»{³øWb ˆe°Õ¸ÌŠl¨")çç;Iksèù]Ä¥ =(ÀP3lV¡.•Àµ;9Èuøjdo’Aªí}jÔ.ÿ?ì~œ6£z£å¾ÄÄ—±õ{ôé½r …#¦°^å™=[a#O”VþvtŠÊØmÂþHë[MÇòö˜svLH§JPb«ÃØRЊ­MKUª³ NúŽiÃõžù.:Ⱦ#¾6uŒÃWBl5XëözÉguQÚScŠ•ñe2,1Þ=­z¯ÉšãÔ Öº˜}¡aè•g©§IHÃPMÕÇiLLtÐW“pÓ‡¾íŸËZ} ¦ÅŠï;tãU`Ò“ìüQ¹= ÚCÊæH jf9‡O5[(%¤Èa5ÓuèƒGˆañ¹ªø?9âኣî÷”L˜MåJßB$Öû¸_Ü|Ël7ø‡¥g5fPÔ‡g¢8OHéäYÌnúWŸŠ»Š ÿήž—fæªúüBEœ\Å— ÏÓÇÇ·#[Ÿ&¥ !ÁÛ@¡é”hå¿Bß”oïjo&ªu×rbž0ëU)¹\Œ¥(¯xÞ†¤ÕÛ®6bZ`B+éæ÷}VrV^¼€ã™{ÝÕ=…ó\¿v³ˆ„ú¡Á}?ÜÜ_e{Ä«8géÉŒæÃP vYÓ"Éã²à`+FbÒn& d¨”ªÓŽhd0zø¡œŽÒb]óéx¡â_Õ¨•_ ë\ŽÇœà# fì+ŠÆ–ßJ |Y&ѵUbVýëÞP¤uj¡c· æ—­›y:Þ᥿.ØŸµe ¶¢±\€¢vN»ÖU‡ãhúQ?% 0ù%o¦ÂD5²Çáðà¶H-ã½V´F0±¦È6¢ã˜ì6Û’©£mU *~è˜6ŒDG¡raœOœžtzÒ†ÐÒ#µQÁàg,—/cºt½ÐÕy•¶B›pɤ’Tö4}½]ÈiÚWüvU.ÛQ¹‘‡ »ì7eƒ’¢‡õJŒÌûIÌ}ƒ:EÌï´é©‚í‰ Ë({ÛŽ~/CòýýÑ´KE¬K Êü$â_‡`¼A’²æCÒKúŠ?­¨”лh¸eóä;‰{¤ù/³Ú,2("¼€¥^ÿ¤˜ñ’ ¸$¡mgÑš3ØÍ©†È\È9âù@wÑ‘ö-Ô¨¯‚ÂôéZdᯈ-­2ÿ†5(Ûrï ¡½øÙ˜ª…1tÀï ÊcxÔˆÞ0–@ùß… 6½1 Lô{p×fT£,]PÊV»É¡fuH*°%ÿú&Lû„›{¶¦ ÔÝüC•í©÷Û¬›Ñgü³â¥Ç^X‚†+erÅ«_ûÉ !eaÅ:vk®ïBk'Ïç4%¨sÆò3Θ¡U¦zõ”Q¸Zø¯QO»œ‹Uû¿OªÆ¡@åZç0Fƒƒ€ã„²4§oítÚâß±oè€a꨾õ #ÃÁbñ ~pŒ%/ €ëÀ/¡…Ö7ol£“á·^Yég†äCÌú|ÿ¥Õ¥2ê0;Ü£éRH‰»G1úsãÇmã ;" ?ù1ø³„š,–øk9ïÀ£Ãð6û;êdškj[”ÃÒüC%¾‹`ÕpvæÆ³ÉÐ鬚5.bÅ¡‹Átô@ V~Z¸]£ZJ¹²Ð C•µ2¥‰ƒ·áÙÊnÁ³XàÕ/û‚ࢶ8eɪT¬ ¼{Ü“ƒE›œ§Kæ'ë3À8[ µßœÞ>è ¯ ]àÙÈÑ –ÀT¡ÔuhÌ:i¾H0^Z^²}g¤é“(˜Ä‚ÀQž3«Â°ÔN±Õh‘‚5í4˜„Þ.ÚD繋À-êÐê÷o_¨]*l8KitȱìÞÞ)9u2ÚQOã 4IÊ3ú¢ $¤}=ÝÄN¹D´AI^ò®8;Ò¹¶V»ר>3ˆoºÛàËìï4Vìž.œàû{Ž·4ÖìV[ PË ’Ji€ö9 OªÏFj®*UeA¢ Z™–ÅÿaE‡µÚrªÎBƒ@Ùˆkì½}‹!&˜ƒ ú(Ñ¡º2¯w˜®¼LÏ "üŸ-E Ÿ &þ0™©W‘Ç1yº¯„nŸ©0ÅbÕäŸ'Ôiö}”…€‡~…ƒÄÍÔŽÙ…ãöДªP‘Ï3s·­lPP¹b©!„=ó“帥òS‘!;Óøïxñí‘¥,Pœ4@ç…_1\<ãÅÐ-¢U\¾­¨ÔàöD¿Âdœkšàž£Î?ßU>¶)Žihðl>x£ÚÛø}þ²½{‡bƒ•¶$à̼«nÀ'›•‘¶n§àmÓ§êÁ<“«Ùޤ',™Þe4[dTžÐÈ­ôë»FðRbâõÄúæ*'[æ9x]&¨Šw`vÏ\ù¶Ë59Í%]›”'¯e­cÁèߌÉ<ÿ²:Å=ömÂqH‹ˆå'M?>ÈøòŒ…#ƒET+¤Õ8ÿ*K¯)d _§ÌŒØšG ƒÛ“ n¨Ô¹’: š à Ü)oX7'ž¶ô-£81?´ÛPUðµöÝKÍnjä¾eôˎƱ÷ ÞIp$V 1/ìV Ò»‡ÖÝòâx¡4RsowN'{:öýOÙžšÜe&šžùÍÞ©‰S‰$Dáô:j3uíšËÙ©ñp5žŽ—RÈt›^£°¨/×Ù&]ç>ÿA²Ž9wgéГ"aø9ݧ³Y°=Mß(!¨9ç"@à5äž7U”¶ÚÏ¥Þè8½ NãI*åÅïCÍŒÉÈwwÙ¿oï&PˆÌÄÔ~1Û_Eîîzö_f\ärÚ‡¼Ó"Àý‡.½fÉê 3ÕÙb/uI6/Õ‰«£{rSe¼ÃÜñ0«A‡7Ààܲ³¼n‰Ñdb-«¢m1ïÆ¶)Q±ÒnýH×ÜgP1¹ ¡5ä%p°©HãN×àãcmG`ûU5 uþ–ÊÆ¹°¥-·ðLA@ê¨&°ö„–ˆÄ£S­v×€ÐºŠªªÖÔz?×vGÉšù›tËý8îˆÏ7Ýlœ·!©v0d“ZÎ*”eÕ±¢ìÍp@Ý©}SsÅÔÓ©kÚÂÏ¢5žÇüÿê(Nt;ˆçËhüÃæÄ÷¤Ÿ”]…˜‰D'H`zωèÒ²vÞÿß|µ·ð8_2eÒ8«ŠÜöÖ¸í£²"ÚT"À&Ûq7_x2>„ú†o.QÅrfl¤‰¢à ŭЮläÔOÞýeßC\IE~ÁA‘5D?4žA¶¶ëFuÀo‚»U„R+øó…H"¬zÕ†$:—Ü\'Ç+œZ€zj§Ão?ôLFI!l±;]ÀèM,É[ݦFØéàò¹Ñ³¥è©ªÔëA‡#žVkVöúX*Kfœíí}ºÖÂÜì91_sZÒà ûv©ä+s‘-?òÇ~·ù<âC3 ר”žÔúöÍç5wɲ°eê8œ!W˜˜g›=¦ÄÚ…ÍÔF.$š£pH2 ÝHºËoÈ)oª1`)zÙãl¬x¶™çÖFØ­eWc¢Ö…®V¯™ìwJÈmò¼Œ#ÔÚ>'zÒ‘Æ=VBr±Æ%¿ìçõÜýz±N„—Ž>?&Y 2ˆwCü¤%+ ð-¶xë„bHâ[ü2éBÉ‹zJß:ö5յƴr™ný&·ðUK—QBG33 aë÷˜g4Ðj[vYP‡òIîêhEÈw…ç‘é]G®SG—ÌG3ö©<(ƒô˜x{攜ŽóãÉ}XæÝ]ëÈŒGã‘(:šP½oå¡ :ÐA Cs“è \ÊY[Îzà^…Ü?¬šŽ]†,#%¥hô"*òûQF?æC³ÃëÙ†NÓMç©´›¶ÏiÛ Õ†8;<ò·0Õ˜y Jògf”ìúï=nE”¬Z+0K]åÀ¹Þ#ë)7t±wS”¢l‰c½~ Ku·òÅ2'¡mÊtä»$ÊcÈo¦^mQ!§) X¡ {˜Ê~¶_Ö6²õaV¾ŠBÕ‡=R¦V±¥}‹ÛÞC=Ð–ßøì"+Þewl,F ÖM’}ú´êžñw§¨ÆfÓ h–ñ”äÕÅ3Ä©2q‹™o%Âîcý ‘c¿‹g— mÔ²®»ÉmëÒ~ ƒÞ<‡xÚÆª¥ Ñýxw"(—”ÓkÇO\‰Ÿd˜Š%ÜgÃñM¨‡iü]Œö°ç¼pã˜iBvÆ›w¤€˜›“uS@àÌÄú˜ÏʪñY0U¥o‰‡uŒ—›_¼‡”ÊÞ‡mäìðI_2š>Â’~•šì-&Á­2£ÑÐ “&$¹ÚB=DB„¼q0zÑ=A0«æùÞtdª|j™§#©¹ýsðÏ. A’2òCì¨g'wh½ùÑ8u+¹'¶H\E¹Amx§K¢¹ûœµW4ø}N|Jfµ$²Bzºº^‘Á1‰#išã‚WèšÈÇS"ð@Cœ~Å>‘(ˆ.vc“‹ªd@á¶—Û&ÞO²óáu-X—‚’ÚÇýÝñ+_`g˜¤kubpÁê _Êï6±§*¢} M-ÉóCx4¤³9~¸v1»«ŽrO ‘µX5zS½Ø…˜‡{JP`x)!†¨Rón8æ±.­/sŒYM†ÐBy($'íÔŸÃ2]|ÞvéåÃêÔ µ³@ñç·ÞjÉÍH¹àæú¸ß˜x/ßHÜDC1HBCi’BÎÏ›´Ö™J• SÇØ`°Šµ$mƒj3Zlßs@«sž«‰(ÿ|æHuh+Å&Â!Î{l8c[w&[uÔáU‘3Ĺ›öœ@W2¶Æiºko»êÉ)ŒîÎòkA‰I†Òۖȯµ4ëÏ÷IAw%*ìà±¹h›(I9#¦mÏ îP%ø¿Äê*)):|[ƒBôDÛ!ZžvRpšg±Ÿ ½¦¢‰£”9}T:DLäwåCAC_NcùÑXØ´4ùõ쟎SB¢Œ›ä”´•Æùï4œòÀÒJbD£e+y¡(›§M—Þ"]öìB¨Üñ>Ó£uqÖ™Õßgv›î'¡²Š6e“.þ·þ!{CӤיïj¥ÿ‹€¥ó `Ÿ'™€E¢¹f è'Õ¬ÊéLIàìWªäÀæ\Ì»¨Rˆg¡†6‰qe}W–ÁË =,SØâà ­S(#‰—§ª®sÂüÅ·ëÝ‹žèóì·y£”tü‹Ì™ZOÂn¹Ùi ø? T,…·´‚{r °qÈ”Ð351›cŠfí×¾0èj¡¿ñÒ›¼¯¹hÆjÅf·€ñ[Kà0ÆŸÈEœ9¿Ý@\¯±;mÂ:t÷ˆ5$¹qêêtÆ|׿¼¾Ô¹”sà}AH)ýUµw‘ˆkbo ]Í>†' •±êÀ–¾ÇòÝS±ä‰ÞõA cÎ[÷H]þ€û–”¨3Ȩ¥æWwVp0|›yÊ—ÿ8¼¿)•½­¾]ÛM ¥Þ5GØÏ©ì$…«©MY}‡¹79_n>“KsdĽX|xPH7;I6ç7rJ¯l@Å{Šã÷#úOJhQù÷·kpeÁ<ýÿtivGÛ)ÜݰvX'IY赩³^DeAÓœÿá!2š²ÙL' àŒ‰ÿzúÒucP¿,Ë5óB(ÄîÄîåeiAâèg­(Tu“œiP’›3Ëû0Å Ô³+ßk²Vó.ʾq“-Ýo£¶)=:$0ƒ–$L…ärö9U˦“ún±Æ€Õþy &h1EŠ7ä9 D'd”ÜÎ÷ÞD“?¹K±•ŒwËe·V¯K‡±­ÆCžO˜½²dÖ_Δ‰ }N³ÔL"MRÛ•ØÑÏ+U|ò)úÿ~zC·‹!‚®Ò[X%°7””‰FÓ 0ÊÈ'C€­3]íJ à3Ààr…ïîA\¬Îcè ýT¿˜²\ÝÔa 9ˆL†%Ë®BÚpo`hî…åô}ÀVXkiiB. ø¢¦lĦöú½:;ïÖ£iñA‹„=qÓ m–_«OÀ‰‡H/ƒŒÝo´"jIü "œbe µ#(`€w“ ³ KÖx`>Ì‘a­Œµ¥ƒ2‡º|—`€ÉÉ;ÌÖp#ÇÚÂV×dþoW°ÅŽ€n´_¤-¬Ÿg§ò´éãï.w§y#Øf p%:?Xí¾KÖ¹è`nžé Êr]¸R!b‡IÀ-ÝÁ²›dî ~,FIÙrõ›7nI‹zŠÆÙ 4H<$ñtca¶vñ oÃ[GâþñC¿•¹¸2F9§®x²ßˆ$WÄÓ™åþ`Z–ÉöÛ]âË"Çšì9¾=ÆÂíæúäáØUpì©|CŠÍ^·Aý‹5UdãiqIe¦.†ùønDEÔÙY§¹ -Ìß=öŸ ÿǽèÄßPPT$+°˜°WÆKö`3Jzß²ñC`l/Ñ´jLžbVv|MŠ“ða­ÊýE H{Øæ kUõˆÈßï‹MÌkÜüTÚUáãÛ ÍØ<”sÝö%°NøÊ¿çÿy×­ìϸ6Z¸tðÚ7¹Ç“)Í{+Ÿ5A±…ËzÞ! v"j°½ëÄî"¼Ýœþl¯äµ;¢~º<…aj€†^zý_ˇõ¦!gŠUƒÖštÅaæLJ¨y$VÌ(¤®ì©þGdù‚å&rJpw8$ùÜ»‘=‡«\EØXO<ìMh?±¡ó×"tô=´°©û2áãíŲ«MìãIÌ–ð«½6Ö¸ót/n«º.-‹Â¦N’nZTѽ†µšT Õ‰G»u—wè’E®îa»ãnº¼{ÎÔ&“R½éÚɰURòzð!ŽšþÇÆ„ø¨kÔãáé„ut‡¿Õ–S©|W à‘O©E~%šû©MAW'œ&&[Ç›“T=5Èfÿ[ÃÀ!$ „˳ˆZùÒ𢠷[ÅjíR-N2(j®üÈ@-lÆ !)º>§\r&½Ôkí²µYbµ†7‹©úJ æ©£_Wþp€å2SzƒP@P×yÖÖ§Fèòð®ÚÌ;.°4WYÎíç;; aWÊM.­êâ´ùap–šEC³G1i΋"Òþb²AöaàvqØÂÙ]TD¹a[¥´ÂÌyH‰*,j w'¶ò„êºÐ .%Ø@nãòAõ¾HìGuF—e;z#o‡k.݈Ô3Ô¸í/G÷=–J›«Œ>A@ÇPì¾?½9øÒOÖÊRÔG"pSãTœÍÄŸêFì~5xìrG÷}ú&Zzˆ6å÷¿«;hçm›ÀTÚ½)±³ÙtŒ¡4ðg# oŠœª²½!§«™ZDnî5æØÅÌÏg›lϬèîÂÊQ/Z÷¬}¢Œ9¡q:9ÊnG §,;„.üÚ¶2ó£]'ŽHxjß0Æq¥ß™;L'׿g|'¥‰º{RЉ®<¦”AÐÏ2Q=bæSŒþ%¢J Mαÿ˜°¤·¢õ ,­Â·;Ô™ÆUFˆi…88ÉË ®Z•iÌ—‰Û}R‘ò ?oªþºþk`'®?~šåàÇJéÁy/ˆwgñݽÄÓ2¸obXöðÙvÕjs{!žVyiÒ §Ê¦v¨ñ{i%±6½í#L+–é“4ÀÜkWœZ¤ˆ ¨4bßœ…ì™n5Ä©ùô›ÕÈ|"F¢ÙÕ.ø]ë*š/Ÿ–Ô]SŠüﮬrâ6º\JÁa®ñe-ØBV¯%–äË"}[åtPñ7ª§…_ñ‘æÂäRVP€oTEFV¯€O¬ç§¡I‰UjIY5íô*¿^xõ Ã¦·¹0Õ€G0Zj ˜|Ö²Ù;~ËúWQñULû¼›QÍ7/m» ~÷ŽeF°çðš»ðÌFd)t¯Åí…åè{ɰ"Á¡MrûY;ž·äð™…¸«¿ìŠi­>Ž‹(¼+ ùº:‹¦ÄûUÑü¡¸7äÂež†9xœÃXYáN2ÛÙۈû •­)°û§ì=¢SåHrm–¬( ˜·ô]ú£Å=/Ü»­c­F,D겪|È2ì\­pâ@û:H}Ýý;6PL…­Ñ´>»’£øȯ·hWU²ft.rªú?‡|GÅr¼–š§û€KC ^­‹/ߟ&¬’(„lÁë†Ü·’²t²L÷Y‡°îz9‰§!ëÊ0ª…Ó¹Cyp#\_dF¨‘}¢væì´Všž¾]o±)gÚ{GÛÃ.9ƒ=6ÌÈR”Ì8´}&›k°O Ø¿ûcÍ %\–ÉŠ FeÉ ˆQûÆb42EÁ/¤~\eYÅÁ*:<5Κxä͆=Æ“îro·ˆL{}å¦viBKù"CwŸö©åf®Sr­ZJMŒí©¡-"W›_lnTEûU[E¿( õ=³h!qŠ}Õç¢ÁÍâ³|€OPþÝ®ª+Š›ô{N‘}Y4¢ç!8@çŸÒÑaØ+v•i"û“ï\·¡jþÌÊkÈœ+d³¡Îм'hØ’0<²Á>92,¤äh,áó뜥Ýd(¹º W;›¬¯ßŠ¡)Íÿ2ßÕ²Yj~ç6qØÏßú`ßq¡KÏ|$oÊÁTÄi¥[ËXeE^xDø¤:êt˜-ÅàkÈ‹VªmÎoñ”‘Ð3žÓHb/‰t>—L(Ù"C!<@E] a~àVW. r«%Jô3›Éuù^f°“ûãÎ]kÕÆ§ìA¾¥#IùX_Å.WÛŸíAÆnrL%é©*—`GáLƒ˜Õ2 V LGy…åÿ ÝW†£Ö²7êä Ý í¦çAoC›¸âg©p¥O½FŽ ,‹høÕ¢7# ò6šÏ~éÎÃâNƒ¥b äpGÇ%ûoW¡&ÕW@lg  ÝäÎÛ·²Œ=©(¶¸(ïÚò܇cŠkµ›ŸPªyÿïÍÛçókY—ˆÙ¸€W7ƒÛÞÝЋWª` Œø¢”ýÚ•-m`˜êݰQõP!˜nŠWé~Ó6œ)Òú,®}”¨*ÍÜŠ2¼þ¿Û}U.¨@¹è²h›rI¾—ºNÐàý˜%y_ÜTd¤]6wü{oo\fØzWß5Ñ^­Œ­LÏé†Y¶Åè,õdNCKË‹ÜÚÇÏÅÍÄ.‹u„”¶“›ìÂÖBfñvþ¹§6± Y€^Ä0ûnüIPËš±•>löoÍäÒR¦ƒÏºÈô "5ý©}ìªqÚC“€3’E ôâ„[#?d­`Ým@F±¢WÛ#æ‚Ðf\U/Ó¬n•e§?‘=„ØbsÅ%²‰¿QR‡˜ïL9 ²'¥gÁ°ç¿{ð®‰Iå=LJä•X#¥œõ”ÄiFH¸u;"ö:¹6Èbìå«úüà«ÛLñc&y"œ6ÝðB¬ù2ñŇ;‘ÂoWl­ÌjS­c~±Œ.æÌ„á @%©(zYn5LñõƒISªëÏNøœN²Ãð@žþóuÏØí“-nÃJÉ«k •„"c%Ÿ!ßfÞ]Zçqˆ]…t4›‰Yt@}äiŒ”Ì]^Ï”™Tð€[èÞÛ¬º~‰?šââ^¹¨Ô&ÝÖ’fŸxDºøÜ(*«×ï±HÞ”µcFåZÃå)msžƒv—1ÄŠ•1•ëI=T¹Õˆ|5Ï.L8Pá¾fÅöéçŒÚm Š˜=Cî$dV[øÁûVa·X8ÑÁ‚>®ËÒí'!üÃSQn”õÊ@›Œiöš¿HŸÓà×lZr,õÊv0s®?éÿ¬&uE{¥ÐõFîÅtwX²è·iX«å¢|ÞԨѭ|\Sµ2Áôw=¯%žm%é]Œ°€R;Q€u:çú¬|GþœJ§ê!núÚìR-ù2åOŒÊf–:]·„RßBiEy‹‘Q©)W%™^î&8ÇKÚuèa¤Hé6Ô„ [䘤Lߘg?c&‚Á™ÞPëH*&‡ð.Ùá¯{,@ïŠä>„÷™#¾ØÜ¦-v»¢;F–(ÆÂc¬ºû/šå=ÉìÜdó¹Õa^®T-ÔÆhÓ‹Ï) ‚#ªI%ÒRð6Pîb(ÔáiÊ.ݲMqä±fôGƼ}±‡ ›éG$a6¾Fî8¤Ï‘Ïõôj<•ÁÓþx~àHöJêæ¯#éWo´Ê,îÔ]‘•e¸N{Æ-ÚHwv¢¢ieÑo1Ñê[ÁW8‰€+„SPÖÎç•2¼&ÃÚ¥¢à]ŠôO§ýLf^ÑK“ž‹…;08"¼>Å-»Œˆ…êíéf;·QàW¶IhÊ[†…Å„Áœ˜í ÇÏ¥1£@ŸÀÇfL•K-{|íß›´¼ß£A¨ÿI‚Ù¤:Û@1MVYýÂÇQÀ…WãPï“‚Åp×€ÀãSû…Ïœ¶¢¤æµ‚ e¬„‘*10¡¨b˜j•Gø¤~Š¡-'Né^QܾmÎb.¿óXæ=Aí¯ÿ×vaV{h[2áÁ)=y^Ñß3Ñ‚ãQÍ‹È\~}ºº¦AÓà« ¾Â‡?ÓÑ[ºã{K¡ý2Ð #¾j¦Í…&̲ú`à"„Báá†ô/IçHfkgÝa#iÁšþËYFEÔ¬õ¶ûÐ@Äoã[ùù`û("®M¡¬ˆæÙ¥¤#L’„1„w»R°•:šŽ»"»tì7¹ãK&qÏ…ëV²ŸÈN£Ø¸J’ÍÆ1 ÏžVCô´ìUÖ«O®áªV8qÈ,ýŸ{^6j¯½6[)Rõ§|Ñ?O2Èe¾”’£M1p .ðáÑvìW?3à4?fVynzÍ7Œ¼ñ†™µ5ÿc[€¼Ä´I8 ¨0`ûwÙN”Ïì*éÝ«ø]¤™ó¡çmW)‘ª‰ ‹l·ùOEÅ’jFffúŽ*º®]zß.‘Üð~.K1Ö›„:¤Ò§ÜœCQó÷Ö¸ r»¼Mï—+LÂþæv™âQg*øþ¾{§mµÂWi¶Ê¶VRúnW| ãD&ÂÉÅ9„ò:kVô0 9 oÖUg7è Kªd‹r&ˆÿªß°Œó0Ж˜?nC@…3µê:R‰D> ˆ·Ág‰¶YZšèõ»(ò}mîþcü¾ o?í.üOI=¾âgB«–º]ßènI9 p”ŠÅ!M1Äþª$j¿(Seí>e*Ù(J¸T†C4¹­òEz;b¶ý™? :kã»jVŽÂ{««ZZ7Ñ¡_—éàuáÿ¡©¾8¿öN6kVSÐò8Üú›z•©¦a¾ôßî‘æÖ§GÇ–40Ÿ•§_̶Ž+S´ÿåªÄšCFÚá“ïéRSF7ÓY "qÄi®µÜ;¦faˆåá)¨Cù{„£ØÌü„ÁWw¸×ÛÕã÷_~ˆW?y[dJjOðá'F  ð"S"ÝÀÞ/ 7>d™F9MÒ~Ö‹‚ý~˜…ÌkzŠì™·D1€ü¤¡t·ª±Ùêå`n¿µoõ5‚½ (Ù[8¤Ø{Ø®æßž•ÖK»¬5„G†”SC' mÀFmV¶4 çz¯®ÑUE!qeˆðöï5}› ÞÉ´£ë%g˜ËkõÕr ¯>¶7Ëí§d÷PC"j©«{ñÑY=CÁÔÚe+dP¯30üIŽÄ J¡Ø;_EA!®ñc ž9!3&Ó_8$¸€AÒé‹l~cg¤:õêöŽÚ8}ŽóB£{º_ÅÈaØ¿pH nß‚ùÉsº Œ£§c–E+9i°xƒ#C –äÚ;…–ŽÆqQ:¼s:û”s$/L ~A‘Çpüè3ʳ›1ä¶p—=ª2j°ÝÇ}&…÷»›5êêø3¼×BKÊØÆ²aq÷F8¬+üÛ?НÜ_P¸À®õ€‰°¸ª0"rŒ{q4=¬Ä^¬OÄCŠ‚Tõª“.A[InÉ˺`ÞƒA*ßUoèÖ`lë$¥(ŒE bì÷wUûú˜o °Þ4{/¨Í·â5ÜYzêžâ‡e Hi«XÉ~¥Y{êþBSZŒj4[—¯¶œæ6‘%QŒ¶÷¨–‚‘Ʀ±a`=Z!‡·R:ÓWïÏL\Žš*0Ù•Üëêç:#´ª®õ…t¢f0^§¬Z®€,Z%]´¨_çŒøBú~9¢„-/t`0YCÃmEóý‚ÑäÖ݈¡QE©ÝèŠ-¿'+¥Ú(äÖ^š>P/a #!éqJÐlB^–Ñ=PëOñTÁz…NþËœÇ)'¥B¸|€Ä…bëµ0D>šì¢?âÿŸë£*MŒ–¿ç—‘;kìÄêÝt‹OÊCô1¿¶ˆñüÚåeªk}9 ’0{ó_µ»87è…÷eñÄï1HwhWñÁ„bjœ¡˜’±Ç·,ù´¦˜¨;ªû¢Wxt‚/Kd{>ùm¥ŽE‰É VacôÊCáÅâ¨b§aÚ1ø—ÅåÐï@m«rGQ<¬Á¾¿„ ÐÊ#óE‚•! €êû.”Æ|ˆïÚY~K_Ç—D) ;ZëÌ¡¹ò7ò¹#5ÈܰŽ)®×B)«ºõu«Zí¹DÅÑø7žaªšV'mHc=ÍëZŸÿ2É•qhj™¤kàÖÀ'ÁúQ°Ìô…·Ÿðe£¥t«BSÞ9äÖmCxÃD–{Áqœß ~_êç}j _eÍWÈ`ÚØ|¸}U¹sýw¦n(eôp¤†`T1‡Í¬ãFQTxû傹βn” ¼)JC´.ê.3©Üè=®Ä°¯«gr7°ÔBà~çœ%Üë¸ú©X퉎ù‘Ñf4½€Ût<ðpœ2Ià™™H:­_×àj¿¥œÞØõ®jöNÅöæÂ^vX ħvÝ^œé,\Â2AûrºÏ^É5P¶º0UL©ŒÎÔZŒÆ)ó§ìÅ;åêûY«KsPh` ÁEÉ*cɽMÉ©¼ÙR Û–5Z/àše÷ü4JRâ Q‘0_ÿLÌ—2^/ÿV3Jò£O$týãg@28|üîÅ/Ä÷2FÝ0:ù—¨Â{oÞ<Ò¶Ó&~È-Ói¾ªÀ‹ë.<Çé>9ˆËÖe{! oç–ð2^Ì1ôm6C…æ G[–~RÛNCHãQœêÂW`“š×5œŽEL.Æ—D°{‡þSŸq¤t¦k¦[h‹M¢ea¬mJ-<…Y ›Ž&Íd¯ºös¸:‰È~Ýôb&®As¯ dµÜ=‘~²Eb•7‚ް²¦­ÅÒhÛ›BÍ6æ£$‰Jä3o?ëЋ®24ãu!k"Å#LLÜÕ¥ðŸ\z °.jÓÐ.ä_cùžç µõÒ˜\á8à:Ý^äo *³ÝÊ¡ø\‰E…AÎ~ 8ª#ŒÆô…eÚÉóåžñnKwÎÀk£‰4÷f´OE ˜Ã23ç›J¼î÷…+ńϣ!Á“Ò” шûG‡{År ä‰ÕÖ·§ ùõiOYñ¶»Ÿ³W¹Å7—ΰÜjv>€ºñâG…™¾ïižŸ+|¸g¥žaZÔ=Ý«ÅÊ<Ôœû‰]8îy¢’ULÔk°ÉbæN®ìŒ8iSrÅgþæóVÍF$¿Jð`Êl'€Qêâµë)zÞVs®®Ç¿¤#‹IH²½¸§­,‰™‚[M»~^óK3eÜÇlDËzlÀe¨ ÜJJv°Wšº3Ä8ϰžTk¢óû)Ë8{ÈéÇö#˜¿µpRîÕÇ­uíQiå‘M6|Τ&•\'ñðöMO›Û†!‘†C<ø-p€Ïè äòÅË/œ¶ç‰’„ݯÄ' }^4äÀËÓá‚+I†‘o¬Ÿ¶Õß#¿ï“Û-z.‰Ä#šñœö8’ðEÐe¼õÈ@=3ZÀþAÔ(oÃØšÜ$át ÷—îEtœrq‹êÂC©·l!YÝ…»¶§©#:ÕÛí|÷§ÒËa¤ ¶Wˆm¢”pP›Æ}Zü3‰GFï½\hä‘xƒ¹¡v«›H5€;›Q˜ÔÊRÞ±Œ ›º…øbTªŒ^Bëšl4I$õ¼Ö*ä]2R=­­ÛÀ 9uûõ‰:ÐhZ¤¼û {†Õµ#qsyA}0Óqz#ÊÞß™Ç78«òé 2æ9çZÁB]ý Úlþ<‘D—Nó’=Râû–о;=âxeòÙ)Ï„OœÖ àá{Þq3P¨YÎêCv)ú1!üÁ† @Kê¬^f©é³üúmOà |µù5Æg<Óþ¯¡Ën¨`=4tÙ-gº @ 3£Ü8#@GdÕ¤€QŽûcY¼2¥9àŒÁÈHݹèü#áÒ‡¨ˆ/Ø3¸„Ÿ!üΧd¼ìÀYÒ+q0å.e1SµÓñ+‚ìÕ¢ ¦'adäCêÌ4!õ}ßµ}EÛí¿)=ò–ˆ&!Ÿ' Fަ•‘Õî_®’©â_Í Ç·”Ì‹nñä ógŽžSÉ6É‚^0ãíbæ‰Æl1¿(*qOAÙˆ óZ ¸ÇУ޺ ”} |¥£!ãyƒ{+uülÔm-Ò°Æd-Ý–y,Kúæñe™z|Ñå«ORëªÉƾù&ùUÉØÚ^¯F˜§Àüp•06_ZU‡Gá@Á!¡0 öhS#†ÐÉ¥v“|…G´ÝO3ÂRËþoÉ@Ånê¢BÀŠ^ôO}B³ÙOµ;ZJŒœ±k´k?¶ÕŒ¦ 1L±nKeÕ·sœ BY½0¢E«µ×…s¨û ”^_Sm0h–c³d0˜C(çc ì mÿf–ÓJVOiK.‹ Ö-Tü—ÒМ©Eyu½†I?0kè®bVõý±ÙjK:ÒdnICý¦ñ1cʼÿX‹’Õó>ßQ+È ¼,„5R×ÇÜ#d½îúßî_„, S¿ +1‘î«¢ ‘6&PRÊ’÷“¨[áÁ¬ÖÖµ«{œ¼e»¨¨Ô}õİz—ÊlîpÓ:»^Xª$f›$@ýægðg£üÂÚ93ý‡æ}4ý$$¤³Z‰=è—ivúj(óxf_ Q#[ƒ)Kž‰…#¾[Ð’WĀ܈¹%Z®ÀМj­‘]æ²Õ¸ðïhÓ"¿B˜ Tƒ²/{by~6Þ¾–¾B;4ÚlÄÝ䙵º{à{Þ"Zexˆ>Kô$Å9ê&f³Á2µ]ÞMdL¥n ƒÐBs#L¼«s tÌÚà.•ä-Ô@9‰ú´E{KUQ`yÒ!8V±ìÛ‘ôš–>Ÿô¨FhòÚ^ézì]ªþÕÑ·nÉò¶cÓÿ³Pû¤KÄ ƒˆÏ0„¢m*r ùå“0¸så‚aNÙb_3±\2åO&ÈIJra,ís·ðC‚¹ëæ©4¤C¸fw&ýĬ*>% %|o·õ%µw…"b¾æ\™°eúIßXâ$leyÂÃÔ@†xo]õP÷\—ÜÔ"™ÓÿOãiÚü†Æÿ¸´»ÒUð‰B´¥¢4HûWƪEªµR¤ª¾OÌÒ„xp›o·‚z hº @š9m«Ó°·þù­ë¿!¾„\~§ê¦ ŠDJ<´^ʈ¿\ïòßuI•ˈ7räjjˆþßB¨ß?7ž‰Ú˜]¯•]œ!€ÆèÓ‰Ò÷ƒÆìGB¹~Ï†ÛØß5¡¸³+ú½XoÇ EŠ’6Ý8Ïï_Ù6ÆLg²&!LÒN#m!…¨=ÇÁ}áú{^ô¨)sš©ž,Mò/z—%ÉñïIzÙßN# l!|â»Î£«îwÑ@7·®ÿZŒÒ¡O–' %u ßøTOãý·²‘”8ú.‚Æ ÎOS¶¼Ÿ53Ü÷WΊãÈ~/RƒîHJ®›€ãÂv ·áEB—t4çÔëøGè›䀤NVqìØ"€õ«G0àgïÒEŽgåÕ¦ˆËY7nFÛêm¤÷š½tdyÎcמ !®?—‡4Ó+Jð€<=XK@z5ÿ1¡Š¾”¶9¶°—]¿%úc7wáÔªï8¤}/äS²=ûì Bz'FQ—,Ó-jìh#4°Ì þZÎ/õ¸BŠ€20tT[»fé j zc_ǘÁ³£o߶뵘Á"ؤfJSIlpZÑÿŒîžLÒB¬n_êðVe`_¦ôöiÇñ{ÄÎÛslFèè±)ÃX¨²¼Ø|S}zrê\Í2/q36 ˆ®ñwËþÞ$×I ›œ Z¥ ‹.±{à )2Ñ[å{À3+œýÞáì˜ýY-ŸôR¨Åþ8“Ù!ãex`a«>?>ì«Xî¥Úÿu·¬½¾Û^~ÒZÍ.€0¸¶pù°ï wÔ&ü"‰DFZŒÁGåþh@Å–#P«8à1³wˆ­ÐuÉšM…9K_}“¿}On&ÐÊŽÐÉQÎêDJø6óåNZq}BbâéL¬$fpÆæ¢ÌõWJ»u*põL6Ü“ŠÑ“­‰‹Û¿û†z v¹nà*¤^ÓãñרreÕÜ–íª6´6¹@MòîßËbãÉó©q;H_'njÜ(?³ Ž0±,Ÿ°„+‡çj“JÕX?̰¾ w¿hç¿¢³"cuÂÁÅ~Xø<…Ì9@h§y†ÜGüB¦ µ)ÈÇñÎrZœ-c³ô†kôA¾eX sW³’AJÒáíÅÞ?‹Èž5Ô ¿CCÝyOqÂ;±õDÜ=÷'¡ I6HÛ¥Ž £´Çe1ošR]ÚpüÓjP•’¢ÐšrOX±½ËŸkî"ÅÃKÔÚ´ý£q²cÆ8 ª…ˆp%±³ø.à,¹ß 5F‘1Ìj|}I˜\ÀR4Í1=¥p“°S9êJ3ïË®|oênƒ¶uæ(ªéîÙ: PÛ߬>Ä9GAÓµƒ.Å›.ÕLÜ ³ò÷uÏúF§ñ­‹…,í€ÇÚ6 ÖFÞOϦš-rS¢¢“[ê9ý‹‹#3{;£Ò·²Œ—KܺãÎ#t!C¿tNm;ú k ã£)®I—,Ü*ZTÏíÔÃv":æûVm4kçM”.Ġ»ýõÔÛÒÀÛD±@J£e-,IËwü³¹r:lÔ`H±ÅÖýbdÙÁÎŽU·õ1L*ÔvMi logÈ ‡ãº1‡nFÂìÍú?Áõã†01lô±§ŒŒ*|BùUs`tuŠP”Ÿåoò uï‰y$kcjIg¾V Õ8˜, C-Î% œõ>+7nB‹ìUÔ-4ýØÍÏ2û§|®¯;µ¿Šìª+éü"¿Y«¹¸rup:1Ç–ø%‘©rëðX²|Ú$ÜM>¾–µ9o?«g`·¤z»(Æ9Üvu≄»­7 æ1îæÆ¿ùòvF¥±+,ŸÂDnÖÒšûãMR µª Ò\æT¹,ù¨BܶÜwVB=ý}bNãü³ì£½ždÌÕ):NÖ*²^ðÓôe=”ÝJ‘>ÏX±™-" öH”&¿Ku.p«B@ÍÄ£©¨§¸Žº¾4?Úë¤ÐUL%‚ÐKêÍÌÜûow›ˆ’oíqžiÓ³¤€xZ!1KðkÒ"Vºª¶j,ä» MX[-Rø¬7D]xû¡†å”»ÚÇ,÷£}¥ê›•'—q¯œt½suåQr­öØ«ÌR_±™ø%YaÐu Æ«ô¾ æ^!#úñɾ³82àò‹%éÜmȸie™Œ%œ>ÐY–À0½ 6€XÝh ãü}ÍkÝ2žÆyY~DÒHÖw‹Â†Žš£ÿ±´ 8‘Íç&±ê~nY}ð½ØZg³\\æq¬Y]•ûZ™×>$åàLnЉtqcX\z‰Yj7ïªÊj~ïÇ”üe€ çŸ^$¯°Ä00³½³B©´ðTcfÙ?+6™í¸ZŒá†§‹³/´„ʾ†tÚúÚ½¡€ûÃŽª„Ôã{Mçqz)#:)n•ï&°KÍàÀo–½Þ®oëÆžðo¡/ªÚàR|Yl5«1\ñ{#®¶„ ¡FRä‚ú¡sˆö=ÈöVº”¡¨èÇK¨°»ÈºEM;Bè[¼¿"û‹ènÒ,•Ñ<ð¤q²%¤"beÖŒŠªFäîêf_jêhý̑ފ½ˆ3†Ò¡¨Þ{yS]²¯ø<¯@äo®’)é {PK:Ñ£ÏÙ$À·°ø YÙÏͱ ø[¶!EÕa³Þ(úZ˜ œZ¡ßÛ|™!×!Eýdúb<÷ø!"ž/VB¦nõ!ó×>aîàF8ëÙ3ó±¯ÏšÍøãš•l­S<ɽ°Á]þªá@2ƒy«U*ÖGhX&¬Q•WlOÍ®DüRMtÓK[C»˜…¸ãðí p‡`é&Pøhh!@Dy¨Š±lÀú.Õ»,Ó¼À³»ÃvDì„k_ S:K:s Ô¶éAqRk)·ø¬Ío÷ Ewý\ Ö‘Q¾ uÛc„)él³Íð ¢äÔ|vW~áê~™ˆ¡‘ʘz,í;èÇ Åù²c·Vr>*… F‚¡j{Fx +ÞÙÚ'<·D<µšmzYÂT,Kb1ÿò8ÎNïù!A6nŒ%Ϩȯ €¨ ­µb3í ]è° #:fl BDÀðÒ%㌅4O’Gá¬YÔe·A ºýI1Z:µŒ€|"£âð}ÝLxÅNhñ¨Z´} ãs”1nåã/‹:”¿–HÕUg‘åÔýãÑùñä \dãç0‰3Ûº¸@õ笨/–&h’üðµäah›=èSi§3íí<KÕcóN/í5y|ÆEEoÕÒOfËÀ×:\¢’Qÿ £] i(:gÐí ©½[àÞ]FçQRÄZf;A__ùï2„à\f†(mÑA1n¾ô‹»±Ù{þªä(&>ÂÈRòH“\Ii°Cgv£éþùÔwÌxS=lníRIEN]pÎ;(„ÝÔžpy¬„ YºÒw §F%ãü_`ž?ë¦UM¤$;³‰5U’:q2°F_ä½ò“G°‘ãÝyIù«"ïÄE‚™HyòÖË\Ë|]JÓ\¡\P͵P(û± ”nG~çßº¬õŒl&u†Y)'»B÷˜!\˸pYÐ l·qൔ0Züik®|ë'X%ÏKÒrÍÈ>L’Á§K¤äŸ6¶eò%Xå òPGÐ =±vÐt©zÄ¿‘/¡y¡Ø4v_K¦xÀ Í›©òþÓº ‚Jv¹”üWQvg¢Š¶ì³p©Éžy¦ÁâjÀQ/¤U¡ˆÞ§b¬Û;L#…EÍf„TD¹8›3†ÍJ™(Á™¼8•´zGp{¨‰”Ó°½¨)¬LezEbkϳÂ-£…]7t÷PQ³×C¯ïÙ×Y • ×ʶ„— Ÿ*Ç…oú ïÑ>t¼ÅãÝŽ×ðµóÔPh(Kà‰DeÜ¿ä­iâ¸äì&pá„«±éfcÎß•3%|¾Ë)ëòp‰öGÑ*¹>RŠ1Ãö1ÑÓPjž†a¦#Ÿå»Úñ^ˆÁþÈw¨½(š{üÙ;„©Ñ¨VŒD¬%¬ãÛéA Ã@ñ2àX’½#ï׈‹ ø¡Ÿq°%Ë _RØNzù<ÿzîæi,®ÄJ:äFâpH´ßñg¤Ñ'“¢Œ„ç/Œ‘[Ù\¶}^¬…^ðgP"PqvN…¤jb°w Ñnß;·Å âY®Çm›ø5kÎr¬æ¼‡Pe‰Õ‹§}x|A0á.þÝN­ÉÜöXÊOmÓn>ÌäQR%5¾ b1²‹`Êr…ÙW<ñ%™á¹·G°ÂmýÓ‘ÄFµŽW[A^r.K)ƒÐ[Rèx¤¬fÉía=äoÏ‹ÞÀ±€aóÞ8¹ ‡ŠPLÚ8g³þ‚ ¸Ô‹ŒrX¯Ý&f®B¹0yéû¦ƒ©W jž!›íç¿Õ_Lå®éGèþâð4­²[„Íúcêï^H•ƒÄ.”uÌ]úí;ªÄø ÏŸå*h¥/WÃ)·Õ±‘»Muˆ9€êøÏ‚*ó É*E#øÒÎþ×ÄÁãjð0(Ü{Ïa)è.¾2Œbè¸Qw[´Û¹“¼K KJhÖè‘ôµÊþã̧ µûÜc¦äð¶EÂA)V~J©vþß(Z¾Á²”á«á@õO \=C*1oé/t.™ 9bˆ¨©•ØËhŽéK|Iwã˜âO £gFÞkƒJß; Ó$£•…ka2QÚråWàµVk@¦º/Ã>2}çînÆ0cpþ‰Ñ‹n!ÓýÆCç^®ùâLMÕë Y¤ìHqªöûæI¹§ÉŒ±÷W½|Ä•éÈôÀ/vC"oǼQ›jÑ<Ï`Rb(qIœ³£e¾«ÙV˜‹t'¦Éž18ÏÊ” Ù¡ÌB)¤ã“”ñ1pà ð >ý‡3Û ÖB“—/¨ öQ÷2“ü÷ÀqLDXÒʽ}ñÕ êŽæWº#¹Ï Kwés^¨¢†0ôµœl ˆTØ1c'm¤LT•N °¹HåÔ=ÃÙÃQˆµ˜_Óƒn˜9±Xàwß©jÆ2|ÿ ‹ Ð%?kR£ ò~ççïGmð©OmrÛFY¥7F)]—$SÓRY®XéÈJº\çŽÜ㻿š„vþÓܰÊî¤O‘3ßoßÊü )¸Éªäq0n]jJÏúùÊÐTº•H œ9¬X}w*B¥ëhá”4»'—Òm¯Ñxi¿Ën÷ëÈe4ÏÄr… 8~c ßDï00AJ=G BCßO!g­AüFOö¢ÝéF¤\@²-ûÐÖ•ä¤â<3ß5¦11Õ,êIËl*÷ÿ†a­Á¹¶ нŒXeJli WD¶µê­ë¹»„óê‰i™-U _) ˜Ð‘-s;IS¸LŒ ãj„£×>ÖšÚGâ¡ Õ’ÇŽÙÛ¹žRÛ¯NZ²€+}’”— ØðÅT Û:|’¾LÒ¬¶q§`ÊÔrç^áˆÏ½jR–²µºþ¢Kâ=ó,76™ó–@ÎÝ„o <œ°.Ûî‡ü d„ÓS?{sÉ\lÒ\ômSÜun*ŽT»Ø*õ2ÅÃå=ÕÆTN—70!þ cÔ7<ÉDýº”76¡ÆWÀ¿èL˜RAᾬ¬pÁ7г ¥Ó¥É?°boZ^üØr æÔ¤‘L}0éíkùŠrë“£Ù>rt/¶[®(…"r¾ì¾{$w_D½É£pŽ„»i2¯9÷$=` ÷î›%Å¢¥+¾j˜EÇä0Ìü…$ú É.á wcЖµ·’ÔlÒºþ¡ZÑš·TÀŠ/Í3Ã=Gê„yOÄz/ƒCšÄ¦^®u%Þ‡E²—î†>U±‡”^EÖ•ÞÚ«Võª¢›FW_™[öüE®]ÀC•,ÌÞ<™âúhpOÄs­Òü?ƒËc²¸sÂë.#Tå+9Í1G2ÉëdUኳÂñ4Mó<4SlØjôœuPNY.ÛQSÓèndž7)@é"=2•ÌÞÉYV[T&Ê©YÝ:d¶5z‰ÞTsºuÖzSÙÛ––‚þ½L*Ï(æ½~Zôˆù¼Wà!=˜è1£Öñå®Ì›R{ïÕ¨Cå‹©ôЬGמ‘ÅlÄŒZÐYß,tÂo§Ü«ofô’:ä8Äèð¢H$H*JL¹o¤1ÒQ¥RX¹ Œãe³ÉÙU·6²ÎøËÝ“ñòëqò@5ó3óѦ zëqF œ›«î(ëD œÒÑ’QÊ€D·ŒómŠÎƒÅX¿\;A¦T¾v®' ²)1^ Òé3¾™Eä~l¦·Gz”Ì•‚'N\‰JìѵD…khÇ,WNP`Q•E2½žÀ ®k±ü ÿè¢òÀ¢€ziT´U¾Œ(›Zòß-îh¶¸…íøWÃÌNãR<nÜã9:ZÊÚüVÜeeïUKŒËÞö•C…[†G¯Œ|òg„]Ô.*ô“õoSEÇØ!IÊ!Æ¢”NÉ0Æ=C)å¾BPÞ°!u:»d«u,Eà Ö—Ùœ ß𞯪¹ŸZçýLüXù gìĉqJ}v„è[À¥¸Õ˜ï2§‘7áÈÁLüÀ½ ïú/,#˜°ÍÕêü f±Ìl°ªQò%ý%Ä™IþŸx±‰þiŽOÓu[šÑ-€~Ëýg7IMÜ@v0ÛwðqV;[Gð¤y›–IŒVu j|‰ÇÃÌ /­ ¬±Ž°º1¼é°c¼–¥„ôÔ÷Œ p‚÷Cè™±Àìì1ä™–>»½û—Ù,™åcÈé]7äíi‰ÌFÑUÂ…½½ü{(<)°åÈ4]Ô ÌÀz½ÿ>–4£Ù‰% àŠ”Á'âÅÞRWx²ýÀ„&ø%ÀÞtsúbt'ïj ã‘$ŒÙÏ1 ›±sÕm¯ŒE*80ØÙaRväv ¬Á”1g@J®²þil6Hž!‡‡ß´Zˆ4^aJIF✢mw‰¸äl$7uO±|½ZŠ\±¶ïâ¶`ÜÉ{CÇ+Æ3ùh»T™nèE+ŠÙ;.s¨íFáásæ÷ÄQ»ÌÝVè<§®è4Ðú¤YÔrÁZS¡]×Sù<%se8 û>ê™Wzª†v¹¼´°@ §øÿC9Äð¾8€^/F…1š­ˆ%2·ß–$ƒÖìšG¸®Eô˜ʯMìªpF1çÿŸ»Á?º<¶:ì2…·F¼9œæX §½8óý±ù°ÒŠ^ðCå²z¤³çCOÄ ’<[#Þ¾éa: ÄŽ»¸l›_Îÿz©8qûk×*èÅ›Í_^Ž‘/¯”oü¼Àþ4¦+ Åg@…ÔŽ¥õâíâœYjË…¦ Zl…/©°RËmæÙ]˜ÀËÍÓyQÞ¡gPÛ2>´¹a¤Ûù;®22GeJN;z ŸÈv†ü"È›óí]®]³4§þ[•ËÇH²ð-ËÝ%<”BCX‚1ŽKtÚ\LZÆc½Î•€?gAÏPC+Ud}Ð^à¶·­ €üeÄ€%=8²¥ËkÈú.6.5“ÔðpËî ýãÅ 9Õh,õÍVW€FAØR^Ü6럫ŸõI'§On»Ø©y"®¹™‚ßð]2#"-üšœ8]²FôIS*édkÍrôÓ¢æ‚ ƒ),}GHAÌbñN\ÍB¯ƒ÷¼-d •n½pºz£¼ìÍX…0Šõ ®Ôñ9lz%ä~²Y Ïè•·ÿfÖÕ žïÂÖo=’ÌË¢cxðZS¤Ä}D¸lj£1½D, ÂHņŠ'Z>„­_'¢ÉÿánØê}+7%âü1°}ûé¿ }È"†xPwÙ‘7´÷Íåz§I ÂX²ÑÄÉ ó?ÑU¦ýÇœ&T‹æŽ/På/CvÕ"ü`Z³V á¸‹Ò¦ÚÔý˜Y=ÇkêV’f%Î9P¡¨®"¨#¼ T*”5(w:U´Û $«4ûE—™¿)ek-p‰‚Çhµ”%”ÙçÙĸü}ó§Ú ŸK2Ç[.ôÑËH[ø39´ÝJ;µax «Û•$ MÂõµ<ÏWj[íIASÆü‰kæ–` îxf  2 ¾îÚ±ŽC-Ç…úȰGÐŬ eSõb޵`(Ô+ºn "0`êEÔ7@&О#çž”‚™l: <ÏŠ–æõ·}uI êdv’ÌB)_ð;ÓÙ/í³¥%n4`‰äû59rÕ`„›ðMµ}CâEùrj;ñnÜ6É”WrœÂ°Ö6³“‰ QÆ–¶#LÔ§ ½ØHL&Þ:) çãàà Ö,GÀ—F]OŸ·*âÍxØvÌO­MÓ$‡HX²r¹Ev!h g ßÞp[’ÞL'¢œó•ÑQŒ¹púVl>¬Ëå¾»Æ~ê&°Œ>v<£@ TN³ï¶á„(}[õØ?PY´QIP¼3r\Óƒ’&:øöŠå(ð¸ýX²?ôã3wÿLÔ+{¸bÄòLó[xÁ jY‘ +ç ûçcÙˆXL¨âzEòêvÅ»­uë¨JŽhwÒÿ¦ëÛ‹‰/à·Òö»"©æ=Û–ôŠúSlÛ6=2”ƹ¼ƒ“¯æÍ 3Âûiû›G¦œœé,˸j1œºþ‡†ëïðWß@Õ׉C·íû]¾©Éµõ²VB„ƒ½ûtDoá—»cÿF¸šÁ­©æ¸w@Ù($· æ+ù_]<[4Èž»vÝ :èƒæ+0ú‰¼‘P]ÝâºIˆ²ËOáÿéiúcœsß‹Äôl•‡vƒßúL¨EÏ>È&$‚»@'»~[ÂÅaSRŸbüTÒµl•Ú®;Óɱh¼“ËuÉ[À¹h‘f eWW.ÞÎ ²_‘Æbæj‰£œ p€]ͧx>K²’á“FG7×%KÇ “¥É´Ä›þï=õú-3>ï"Ðgßc^bdÑQyHäL¿üè·¢ø^Ï€Ž?O®<ÃßÚ>’‘é+_öAQ€¾Lwõì Ï Òç9_«¦¸H³ˆ=-W?½Dk_—ê Ñ‘‹«D‡¸[T6ÈgcU%ºu<§B:—ƒÿêX^™2ü»öïªíÑùñä \dè΃‡fxÍVu¡¬œuu(bQv£¨¼‹c·¹èÍ©¶ ÅÂj«fÇ€!s{>è«¥Ñ@a¶ÁÏmÊqŒYBY½tTrPÀÔ{0ã)}»ÅA(¸?Xú–2lãMR–áûLÅPÍ€¡!M‚¾’·®î>ôä·bv5a}T–Ü2ûGGåIs›Ü¼3B> "'y_óI#w,SæÍÚ},#GT]j$9²1?~Ï_×1ÐÞ¸½E°Ž±)îÀÔê¸ìc-Qv­gêÆ¹ :IˆÒ-¶¶Ÿ?؇‰fNˆ‚eí;1bß¾$§Ô%LÂô˜ä+׌s2`Åí£¤ÓýpÝP…ˆ<c|x¸+_ÇŽ'‡‹S ŒU“¥!Ø<7`AøÙP¦›ùËÉ·[>­Ö•æ\ƒ%K%ÑtúMYõÅrø¬£†É¶<¶bõ ,ß7N\½’åônOï-Šž=£gçÓóº@ TEF9’tûÈÁ…èÑP¬ êzF©´ÙY).@»Á%0ä.e5g¨\vïÌn©£`)A¡"[DÁmQ VìÊYŽÍÃíí+fóèrò> ŒmëžZû%cY@[üÌš’uPä™Lî¯ÿ¯- _Óìäù{Æþ‡a÷M~ï+O¾ÓŒößvYuÓÌQ1 ?u|92LšpG-xNIæÌ·ZóóùÊ‘âì fJKM݃%n"u?¿+[sw“ÈÅ‚á:ÏÛ!,š§S}Û|<6ÆBez\rB¶ÒYv½á¬`}±†¼/ûH •±÷¯Èdà6Ý´*h#Ü!+ã¨ýxºiÚö9¾)š]WÕ–âKs|RžHר®)Ø—íÝ\ý— uïéß÷¨ÞõHÐ}ü­|÷FNхʧød}‚órgù4 K8G™¼™Gÿèƒj_Ê]$b˜új¢ Ä•}Àž}¸¤ˆ½ž#é°j”F2ztó…dõª´vǽ$1ܺÕóê8 ÑÚ*WÕƒ:(ó8WAÑ/¾Çòܹ)öqç= Þw-?PPÔìâ1PBìgUR£'åÒCU¶XrüpC×–äU,6 ÞìÕüæëÁBm6>‡6ÖXµ-³açÚ$Î`ƒIN;8BXtY„Ù\Û€¥³e –žˆ¶¡’Øûh3ÈíÁrFQ.0ÝV8Ô¿¤Ìmjå•FÓ"aû ©$ÈHjñ"/µ¸¨¾ÿšu3¾˜®æ|uèæØ ΂1n‡.À8󺲈Dæ"k÷o´ÝS>2ݘ¯­hn׬_"Ò:ÃïÄÊ<ˆ–3)ÔÅåD^H;1þ±¶eèúåÏjÒÉ+» ÁœÀ˜|‰eáý¦ïD œX‡â5Ÿòñe`,!Fž†©:i"û>Ü0‡Ùg˜aµ¬K‹ðš€£šq›»ïX3¥5·•]1ÒÅïw¶?¯ê >eý=m4›D-±KXà£Ð^³Æ<µœ™!FWf«h?Òhä„Ï^ÀüW«‡4¶úÌlSwj'áê«ß"¼†/ﮚZØd¯Ë.%¹.B¸÷ü6Ü„8J[…åÓܸ»ZŒ q®ôCú¾pö%H]Î;] _ƒF=þÙÑæðvêAöE„Ö_¥ñü~çÅS€P´â}?Å*ÿ¾¤!©cˉµ<Éâéõö¡ + þ¾Šý|Ž8Æ1Ž£¼ç"|n/UO¶Ø-³UÕtì„ý½NXžÀ“ç©òhz0 p©&ªƒf¬3);“¶·aM|‹”5&‹ø}ªA<ú¤¼ÚÞ;य¶>fÍ¿Î?ÿ]¦fŒ|KŒ ódp1_Ÿ½lA‘{Kïþ…Âþ‡‰Âlð~®µõìAˆ¤)j~ʽ³S4îrz9>w“’mé”#¿§Ž®ÚÿBçïCÜJífÛÇ"ÑÎP"íìa`¹Æ¡àYjcLñÈ8ªs[Šß;Sð8’>±g—Ù5© qÚÐI2@˜Ï¾öÔ“±Â…K¿ÕŸ×†ÈÓÃ’ur èxµI'ëS¼upÙNÇ*A||“¹~dÿ¤‰þªŽD`½q˜ë‡p U¯ Âk0·A”:,ŽcõQß¡Y~QýkEÓeÜëbz‚v®kcÍýÉ¿îÏ«IâLüÈŽ3o(r ­|ífsU%8%‚ÓJBÊÄ.ê.+²¼£¸‰òùLˆšñ{…'úŒ˜Û‰¦/ûÐç×Jøg.ð¬OŠ·0ߪ~9'¾ ·ë”3 ÚÏšè×êU0¿B>‹ ºõ‘·ü°¿2¾Iüé|öRx³ xæ“«@ è™Ýfß_eÑˉl#ÉX&h·¡CtLƒ6}LXÒ£±Gøj©a¶Š*hû„u Í€~ü+CçZ¯?i@ðÚÙ¾dÅt©võŸ{¢N!;žnÙ[qIíè'È•§É5Юªe}މ€‹”5ªá;˜·ú%», +óÒª”Ð6`‡¼3ß(°܇¨4¯÷Ò3Ó)¶0z½ä{3e‘¯ŸÜ&£²Àtp“ýN-#è %E*F„OgQ±Ž8<~e{b-ðµ\ý’Æ–mµLÇΘrÓÙó3qaë>öYM-·³À®\»\o2XsÃFœBêxIݵJ¸m¤™ã‡™£Iº*ˆ+½ì*-ïëØ ‘âX 5_™ÒÁÁvW²!¦kXëYF‹ºÀk¬Ñ„ >žJ/í½=¹³Új¥“XWÂóZŠø™4ð?Ä›ß-êÊÍ7Ý`YhÕjÅÞ5ÓFð\Ëë¯wolkxÇÿêw=Ÿ°&8¢zrè…b{ß)FN©u}=Ä´ˆ#¯Úá³æêxåy¬›áKþP1¥çuŸà§z,C<_J½-mÒLEZaºK½¿¸y•L0‡Ëƒ¦Uq«´í ³‚G¡"æí%)£éóÌP3Oöf3‘4tï[9Dô1rxÃ?™–®JŸ­o΢Ê=Íö0áÝ+.wÔ[.;˜oŠÀ*ç3}ˆ®;^Õÿe‰˜,v÷àN&woIõvJž‡À Ä‚h„·3§É@P/ÖBùÐòðÑ;Œ2°ÆPÜRÆ»‰j-]jn·e•9\aû£ºxS:ÝãÌ5ËÆ^0I#Xr!…†ÇÙÜTFhž/ÜKÁ‹® Æšk•8‰šrë—-§Ï K⡽O;AÿNˆ GNx³Í—‡%^Ñ)ÿ_Ûq½á¦(óМr”e:€Pi°s|Vñ<­šwŨœ6N¢§ìGEŸëy±ë®ße·M/)Cé%ÇsS¸[ô(MDùà5ù޳Þ†,ÛgX‹ÜzíFã´6\>¸ò¢‰êŒ¸l&+h˜XÍ€×ÐbÇwÌU ,§5¡K7(Ùó¾yÂ`»DKñ/"žmsOE_GwÓDÄ­ôã¾§K?«¾ôÿoP ›¢ÌLëd EÅuàQÊo€Ûª„»=R™;|dí¥Óú–#7‚·FüG›ÌfñúEÚPnhAsLzýò.IHûäc!ò@ª™ÉV{b>Þôd)B¡£íMíKR·}A2— Úßj7åé™ëƒs× LM<¥áò¢Ì!ç£3[ê?)˜Y‡vÊ<« IZY_±Mmpˆ'BÞ Ø”ú.ô!æUú”“MVÞ§Ÿ° á€æO q+…<›ñ$I-Ö·ml´ñˆ¤H×XÈÖìÆd¡W|ºîòpá÷–ì4ºu‰hÀaôÓ ôÆò–3æ­,)b“¾îëx$L7¾I$øˆ€mØ¢b>zþ®+?;²\,¥ùÛ©ö„!¥Ò5 êŸÏ:{4qÇ º/Léjþ(†p؇aˆ®áÀ¹Gd[=Mžø«3¯?lÑ ¾yI¥ü±‰ø×½ýËóR•ö½!B,޾šãHYr‹øâ&Vÿlòf¾53 ò:F°òà+æsR`ýŽ2™KÉë¶m¨!xÀ¥Ò¤n¿Õ3Ü…ùÚœëà平´Íx™ƒPÈzúO‹ù±ÔÈFó½(·÷æ¡#SetnÍå6 n¬yŒkŽÿ²‚©0€nUž\aG÷[:›ûo€Ýg vùŽ»HmÁ<ƒâPmR?Ûæ‡óÍ(oU7C²Â–Vøb+õý™M,¿ bR¡gh䬅ÈÀ_;›×õe¯&5¼eO-NÅ„vß[¾’ÉOmþ°S{ј)<‚Ô&ÿv·×G|ôJU ^bgÇ€(„—S‡sÄ^|Te¾7Ïí¡§hãKR‘0·›\¢a1Ü™€Vû Ýûw*øöÀXÒ‘»`Ñ¿$ñ þ-¼üß>¾œ+éX0¼t%O³<^éa=,wéóÏV jÏ®!e7ŽÂ”¼/è›åý,ÄË{ÆK1mlzŠìÍ;¤‰êÇ) D? Û\ŸVÓÀ`ªÃaß»!9F1áÎ}ʯ‹qGBM.(U.¸ÒŽ¢š.:èÔ—‰› š°ur‰Cã¶ñ÷ôt_¿vyü¯ì¤´‰²É‰•rÙî¤êJ&ŠÕ\ åù5åû<;ßzËÊN1Âñ” ô¯®³B—ÐÔCêôPGÔ(áp¾ƒéI§Gò°ë­þXäÆÜâá_¥ÀL¿Ã^ï²ÿ1çè$šhÜ+ê\8ÙLÁMOº“{÷Ým ~—è†Ú¹Ê¼e/êcI óüíí|f¹KC!dúÎìÕ7èÝ}vOœr3öwËùbõདྷjíÎÎÒ!›DÆ£>¸h¨ti/ ¤uáQs\ó|‚{|¥@<`²k u˜¢4yìy‡ÜñС•´‘zéºAO»  Õaÿ÷ãfš„ V7¦p¹Ç`?• á”Ú™(ƒm1exb~ÔŠ­—QB¼“ûµS!dÒ£îž5ÒVÏl'O—BkãýŠjé ·¶·Ö`ä½¾‹¯^¨ØBIð?¥:JØÄŸ§š\4oms8JóMk¥s6PyK„ ¼ÂÑæ“æ¢ÞŸõ³FƒD½¬~ËW„&Á€{î¢)§ï2’ßW|O¨ßq%É_¾¹Óɦz•êùu©<ÏöhJ@v6}mñ?@6sÁ0˜ïUáÅ•sITŒâuÇBÓ9ÿĪâIËeÀ\*Æþd?·Z/J¢y9 Q:jŽÖ¼+µÅj8¦šZZ  ~„®X•¢ Ý¢Ê)!EÑ.Ô&H /~yîlì—Ž5H^ó".>ÔùÂM§Q‰0ŠÐ8´%(@¯ÔN‡äôWü{Žö|­(Á$+ëãv Zãu.Ò£´GåwÖ²Äëvõ³WÀ¦¨ù•I¢€›|Oþ7â)ãà^{Ö|o‚O©Cjy¿ =o¸''’g k"ÑL_!“ÙíöñÇó6õ—Òñ YAcSPîkF#SÂòÐIVÚáhSPé”!µ ZnU Ïž(C`[•¨œ“«$¹Ù·í:™e¶ü¢¹\V çc /|UF˜NÛM»ïd6ª£Æ‰Y°†›Xå¼¼TCl#ŠÉ:¯ˆ.[Àà?^®¶q¬<ÀëËû*¬ilógFõ5sj,‹×ª»z¸Éßc×1‘¹Žä'”sÜ¢˜Äog˜>ù.VïY¹3YÔ´/Z0¬Ï{å/!7DúT›ÊÛ.û­LÍ“¦*„$¨nÔ¤Œ!3&s{Ùhæ'öø¨ègküÖ¦Q~b;„ J]úFêæ«è˜pÿ;±œdRÿ£¥«ÐàÍAý/ò!‚{Ó×S¦44êù‚*©×òè9é Þ»ê­Ó¤êGFܲK˜¥/  ´ÁÇ×hpIµúêõd•Â05ñ³¦ô÷Þx;ÌøZêb‹ýG0véQ•Ñè¯d ]¦aâ²÷wyI¢Å`ðîðÈ+šQeH“–¬åMqRP£¬ÎÿVY±õ×§#š‹Çc5ß$Nœñ£Ð€Þß -¯²¹èÚ[²@Nú±N]5wóiÓÜéeM2»¥¼›Ï®ŠÙx1¿ÐÀh¾øÊÈ©½ëB¢dY2T­rú—ñ‰…x0ÏRÏËmF¹¹4¹ŽR¢Q°)B-Úîâjª‰¥~;ÀÄ•¼Üš£j4€U ¦G¡Ý]áH×Õ Éê× ’<œxÛøºÖŒ<ìŸ_×qÃ1@¹;‚ì<§ÙdD¾´ý”8À t}ˆ3Ý þ 6¿8´®¨øp‹Óãâ‰BZ»ç¦Î ›:N¶ÖϤ 2¦û'÷«(±¨Ð§¾8ãX\ûßF¬ °ee™™ƒ1ºë$éNÿÃÕk7¦ó6•ÈG´^®J¾q(˜~{Æœ,¼5¸í¶ÄÐÓmÐ_àþ% D»2QÿÍ:ãh@)žÐÎÚsM–…ÚLÚyÅSîû~&Óãª^1Ðq‹ æ‘«ÿ–ÃÈšÓ«†i¦‘!IåžëVnÉQ‰_Õ®â…ÐÄžAS”Ncàû»cÚÎ4SÍ[—o{aí/d#ܶ1IM.mF…¼êyõÜÔÛžN2[8Ç9ØÉE°YÃn&!VævY¼¬ 迼)zŒL‰…û_´"r7R…n9Õq5Wäë?Åá_‚-"ï©j¸llËù¾«r ª¬Wu¤­'6)†ëxÙ•·ëp‘5ð°Ò•‘bO’…ˆ ¡‹2@A ½š)?" Æÿ‰fŒ¨ Ìn?Œn$Ä7(sy¾»}Í{þç:€MàHfÁHŠrÅÁŸdÁ{¦õCýJ+Ýò´='[sUìâú{Ÿ6}]VÏ@èÈa›p&´eÔ Âd½ôÔ;µžE/€ßr¬‰ÊSÿøÝ*xI‡{ØÿÖT%Léy%ÓÀt}#ÞÞó?•¦s •7P:FÇk6iŽK±)z?÷,ª˜{ý¸TO¥°GSx®êu¥gê *èO"b ßFB§ oWw-{¡ñ;ï|éÙÁó%O7; üüDÀ?ÏóÂ×´‹Ýíx¡ì|i\è‰g i!ù˜eGûuÿ?¯¾ -3Ä_ìÝ,!åï€|Ô§[wve!Àõ$ç]UHúÚ¶ÂFѶlÞÄ¿ Ô HÕ¢[ R?ºÁîÄŸ@M×"G²À|ï´úª'9sèqK®^v=bÐwñ_» {@b'S5˜{Åí›Î$sº¬Éþ9êeÕ§ÿ7g9¯;Jj6•i¹ØuÐTÌ kbî)Ílòü¼jW¢ùÆ¥º´ßR’Úúìe¢†C-Ä66{teSw ÷²ãúòS ¿@Ó’´àFÏiz¿M‹2häòd„9­éÒäU$óÀàRkóTËÝçˆ#êtÍ'c2uÌíäœk|#·½ =ú›w”UYaAM€ý\2*3¶³-F¦çD“Oh _ýó1™™~³äÎ$M¨¿µ°ÿ‘ŒaWjoÍô½Ù ›Rs3[ð~X—éð*£)lÀ\ô~HµX†¸‚o(" ÈOT¸¹ÖG}˜“îtþsã’—¿ANy½²QfèƒmI²­Ö'Jÿ3È#ayhýṳ́›…w-é¡Hà¨ÿÆ*8£ å…'óº4ÝdLà‹óý*U s \5‘Ö ;>ÒN¯W}L„¤fÅð7”殳á„j²é:]Ì>ø5fJàFI7E€«¹TÌ–|ø^æ¹×\§s¦´ífʺ‚ÞÖe;fIÏå{FrÄN þZÖ0ÄŒÏT›|ÒÞ®œU'ÐGƒìS»ž÷×PØ{£Æ¹¸T\¢BÔvüÓß/ˆBúW¯ùå›ÒŠ=\bc¢»ä\Q‡ÛÍ|KWÌ:öMºªÅÞ!¼«ŠX2%ïæ{çù¦pžî%ÓYüëÉi0PÀë¶Ø·HY­T†_@c×ié¹íëC…%§Çʦ‹ „u¤Iõø{^»I^»ÐÜè{¿5@†y0+MÆm‰?KAXáµ0T«›|nËy+©ÈŹɯŠ\ÉÃPxBz}tD›ž¸a{?˜ïóņtM½'Z} ¡J,Q·Pa0ÞYiM¹ä]Hóš1Aee£-<Ùf†€jsÊFÜù¤‡,4ÈŸü)H¢½˜»/:…ƒL˜w¤rŸ<ð±8X¡{¯  ïupßKemA"ã yM HØ; %,’ÈÉ( Ì0' Ö^Ì”ËiÅÛV–ZB³gÊ'[Ë#hkÃE¢™ö}à­½çó8!5eϪ·¥­¤Bý<·¦Ô·ŠbÃ_òÙáK“Wè»Ñ?ª¾ž¤< 9¿IvÿÑW;qã<þÙ¿ª B~Ï%×Á-pAz yã}]P]Ú––ⱞ5ZÿIgÅn¨mCb¨›BÌó«ðÞ¥ð)ï /Óó;ýXãe @¬ayX_›°> øñéM©2@õc¦!h{´·íâõøŸÑCD3:©¹{ÐÁÓb(Z¶Cô&÷]ØTñ Ø»ÜÛ€ÎQ<ÄVP”[TorÊiÝ'ë{[Ý•þºÃÄGhR¡Òlìš%äÑgÍ»¶{o°*xÚ«µ_ì~¹uáõϼ*¨ØÓþ™GB›Ås¶RÐÚg9 ókñXR§ÿÙ‘Ù'éšl•o3@Š^Üm{ ö=βϸڔuÓE(#MZz¬¹æ§if*1Ý­Nuy_ó3+î›ê~¹©)Z“èðZ xØsÂôŠz@=ªô|D¬IãTJ*£mQ‘IÚ O>œ3„ù=Dž­Þ`IÒ,;µÀºÃÅd»uÏuY|—{Ù«ù™;ÞÆ†r‹;Î]c³à4åVä?¾Q²Ñ7ÏsŠ'ÄÎ?(œjÊ‚ùtêÈ©§h,ÜšXбÈD‹`¬ 6ð:µRU6ÃCQÜ}i>qú‰.çšžAU/]îà^›qE‡(ˆRÞyMÅq¤Ö*Aß±ÅàÀæâéÜNÇ’·kRì Õö˜)iÈÝ$7t(üup­œÃÉB~ ÒaKŸ†Æ—#é‚:&HÖH‡žºª˜¼YäQ€ìÙ€L2±OZpXi¨Ã°k`086@)ó€÷Lyq+ë*ëU©äáYá`p ùµ)(’ P‚¸ÌZQªË4â'ú‹8œ$[Ú?WÁ dbL‰)“Ž–k͘÷ ¼e¾}=%©§<œ4yÍ“$Ì`N 8½×{ë€-OàÆÇ]ÁIOhÝR)\#Ð ŽÁnEÙÓªž[l‹vi¾4ö+rPû`4ü=EŸ¬I´P™ÿiñ{ XÑŸä‚`ÆÙêÏèM´Í¬o\¸ø¨Áq¨µ€?ìª^xÐq~m°ñmµãývk"3ÖLF•s™ÊžUY7K¾q|w'Fÿ¾ œÚ¢Hš¥‡- œ–§ o7 &L@G„z`cSü>« •ËäÜ’ ÍSÒøièûI•-%—ŠDHHÏ}@ V¡ÝÊ=Ò͆¸ží.¨¤´WQJ Œld³ÿÞ¯Ùú?¿’Ü-Ĭ±Ý.ÕïáÈ[Ô`>ò¦µ=íUõÙÒÅuÐ먗´€m¼ÆåÒ¢­&Ç,µP.¯’ÎëiµR÷³ríÁÑN¼TUEÕ^àÊΆ©PÈ‘ôzn3OÚ:ú_ÌåËX¡!Ç dnÏ;k=+ݽ;±7«K0V449C-ôª›p´uÏìö¼>—³ ø¾æûI˜Õ´ ~çô¼ª]é®0ûyʈ| ÈL±DQ7âCÔ/Ëþ©obYÝÐ]3[9ÒX È- ºî^fS~vn~ÁlQ*‹Gªæ8 ‰”È}ßíŸ]…#*„ãÓË>¥³Ál»/–.ÿ¡l®¢¶ø±ï àK†Xóh·ÙM”šê'¬¦­B6<èpÍçW=ʸé=Û1cE%tA"¤ÁrIÎzã©­Í㉔Ÿd—kJž‡·XŠªôîP¡Çé(ô@¾²ë^Ŷ]ÖƒPå‘$îÚüIÊú*ä¯Rm”£–媑ç™ôÀ\°ÿ4ކ”,plüØyµ'Èåð Í6 òáƒ,ôÍ rúù•ÐØÛ ƒ\Éß!úB¼Òa=8±I©ÿÄQNr{E<|íìô^l·òÕèA²Žsæ)ŽÖEª‘3zyÉÃÈ7"BðÆÔ nWü¶Bm¬Éëè1œÍæ«}K…ûú©K!5y è/³¤‰;DòAN?Ÿ=¨ZƒA{’ -l€²ûrZi¥ßn|Ø*w߬}‚í:Iè'æ%jrhX¦ô~ïü¬ƒ®Ñpâ YÄ®Aœ—Cw±ãMêsÕ›ƒmÁ 2õÿ<_Ë7±QÊ3Þoí¹¶s$p–^Á•GáÏ*qz…Š oðZtüɵäõéÞ+Ú’*%NØ°Ê 5,>m³àŽÀ¯Ø#‘i8½P©ÌªÖ*Ûä/Z·ô¼ÁN^ôj#u‹ •œ Jýן{ý› Ýé*æ1¬R gdTepGí r2DéªÏc”ÇÑßâ RïÞØ2±ªäÝ'Änõ¹ âQO±9jz`i»I¹[²@amA›ç+_³}O 7ÚAcyåéܘp°¡ÍglËŒöäOR<;tÕCÕ^³ÌFTcD ¾î?…¦ “˜g=~IÄX9yˆ|n"Óò| °5šsµFRtП{Ë;{‰;,œµvèåp´žü@œåEHÿ±±Ó €)•ƒ`°Ù6·±ÎfHºC{奄ö{Œ½Þ˂͜KÍÇüjò`uóË)$߬õñÄ –ò×Y+Wí±ÊÒù9SqÖªÁy˜¿KÈKý¹*\+@ÛþãÕé&ö2¦ŒŸn÷]i“žvJOR~I“ zòŒnV«ž2Ç;)Ð'^ùU›§ùk÷ÇiLá13æû¢'l[ƒô:„Ï>ŠºJ†±€öhB&~põÇ”06‰–*àg),ø~?ÝwNÑsù¡û°öë£ï4è&`IaÒËG´ & y¹²ýå„êy2ÈìuèM¼Ù ˆŒYè÷åéN,÷­ŒÅÖ¬jB» º'#näÖŽ™J¥åì¥\°0b—¦7Öin3ØÀéÄèF%ô'ªG·èU;X EÁh^`&~V>š7…©Án2ߦjUÿÌÈëÎ9VÁéw‹d%Ž i_®kI>=/ÌLöN*²+K¦1Å'¥hs{üØ¿™vwf/ Æp›˜mÙß© Óg. ¿&I<= ƺêóú,õlÜ^Ì$b‰6½Å£ Î篹~ÝO8ú·ú:\­1»¸!ê;gù t×ÁW£QKu[6âPý©mhkôÖ{oÖ¿X÷ü9=á[†¦ä±èx­ƒ^í STü¼4 $`|Â)­5w0×}ÑdÈâU>—Eí@Ù¼åBu6y:ðfZ9LùfòSWí,J?øõ +ÉÉÜ¿å2#Ðj’hÚYkø”Ε€ï#ôîçÛˆwppŸ~¨ž÷Dº¨Rgæ%sÛ¥%÷u(‡ Óñíc²€/ÅMÑI¢bÜÊv^¥ç¬2¡Ô‘Ö<¿›xß§»+"7©Õ/qHYõêl’ÔL¶NýP~,˜ W\©ºFo¼Â^ûÊ„š¼Jœ8U å×ÖJx}ý#"›úÊ…ª!Ÿ1 oäªý_u>Õ`ñ#–Dv—+Û*€‡ßaÐÿGþõrš€œp!Ö-ºSö¶¢k—mS”ïñ ³¯XŒøÞ´K°cRd#Øx6Õã¼áxΕÏØs,ʶ‘ÝÑ?šÒ…òÖ?¨ç±a6±¨íûD¤b%MæÓ¥ìq ‘„¿‹#ë­ÂÔ ËS‚-ÒŸN\°E>†<ªsá»ü(ã6½µœãè€eê‹y™a¼: \—þº°`y÷¡Þû‚¼¡/(2œ:·&«|j-¬ÚÆáÚFå‚…V•¤²Ùà¤ßp“:žBÝ |jÀ­‡ýô+E96sHÝÓ‡ I ÔΔ+®jˆÌ…%xŽ""9£„v”``¨þ¶•–²Š “©õ‰_{P™…ãd>äwRë­6MTC~òÎl?èjM+á(W{mñ2Ì}`-ÅìlîÓò¶›~˜Ì­H²æÙš¶»³:ê ÙAk1áEÓ“žé´¯¼ÂPL‚ØyÞåDUÀõÐFH½=;œÒe7vA}ð5©í–`?®Ú%Zs…­«_ãýÄP=›cSDG¤ýOãñ˲BpT1©…Š `úŠƒl0t—i€SÍŒbò­«¬© ¼­‡öŠüE9ógY·ÀNí囼ÀORŠ'z’qRì‰@‘’òå&÷™!¤çoìâ7?3uÃÀ£jáÖó½pXj¹FeßÁÅeK[Zì_’Ö8z»(¸#fþF:^ øŠØßàˆš(×!ˆ=éÀ$Gd䀸ø36 ÿz5 V ¦æt°'L+r“PŸœNNì),SŒ­¸wȲbÀpõŒê‹´6Ó³GÞjoèÚé1ʯºcJÊHÚDÂÎôؾkMµ µâG¯FóèP}ët«r£+Ðýnd9þæéJI¨V~hÓl³Bꆶé(fM­¬õ>dÇÓ’7ÐtK1_«{k…¦¢•ZEëÿ½‡›Ú_|³(\rAPxíEtäd­³ÓðZcVs«¦çùóõ¯Å€Ðoà%KΤڊôß­“¹"]ck ­zDfÓl7‹].åJ &†ùq¸£ KÔêMYxK÷;{‚~9€V¤Ó‘gt Ý\…îÑG ‡£µgx‰.;ž'-î]ùª`L˜0|Wn)+½ƒkï‹ãA6SާzÔ ‰OØ%™PüÄp¾“hV¼Ô­¹‰M¢ùY›ò$Å¥p(ÈÝUŒxŠ$øþ±¢7ü¤“© ãã{® Z‚œŸ} yiöÏ[Tôïã‘xQéöz)Ý&M+ ±½°]鯉K0Ï[-7©`²K¬Ré4!Ú]?.D„Øpó3ΕD©õxíîFÞ“[Ö^„=G\d²üližìÙ¡µK\¨Ã|6]þzþ‘‚öä ÒNù.Šò-%øKÓ­Ð S#ÓM¡w±Ý7{w¥ Øo9ºNí«mÛsºxCâ/Iù<€»}~ ¡,œ*ðPú9¨>χær%zb¯o6†ª°òFüñ¡ Ì/z*tìÖ(IÇAÔ]’¾³†KcwöHXZr’ò˜ÌÌiŠ–ôÈ9íÇI_P³$LYí*15 âa2ì)p’Á%xqQßôÌ0ì¦Á9a¹ø¶Šˆeü«(\ºMˆ‘ªì{Õ|´<ïU­|½§ÒÏ 8xÅ*wáâ,ü´¿õãàƒ?MÞYòè¦Ü^¹¶%ðZeuD\ù‚gäB*Ù›RÌxiˆC<\ KOQŒsö»¨é)6.¿8Òl›è®Êì3òhâr]?QÍ2|HÒ«Å.&[æ:*/ÈtT®B>µ¢l¥Ú-~Š»¹èC›h>Žc.m¡ô¸\Ø»±s,ª ï1à¤ßš›ž¸ÆBÕ¼ÀöÞÖÑ–!:€Ñ€$«yô÷ÏãhDƒœ… aÅ;OèSã‚£§w¤q¡–òNK6)’j$b7å÷>â“•âìôìÕ4aµ·ÅªFÀ`Tf?FìíŠ>˜3Kœ*´0ô5÷’ht߉òñg\]5¢$ Òñšk$øo… ö“M¸@Ïÿ%‹¡Y5¢a-O mÅW•4Ç3$²‚¨õ¦zŒwîã^Ï/ÇZ=]nÔ¤á8XH¨¹Z¦EEs]‚ôÉ:?¬ç-|,3Îá”™Ñ#*ß·Bæ!*l“fkÁÚä'\(«˜¹w˜Pê)ݧ»ñK^,hª&ñ¸w’ ÿœ£ˆ4‡˜´B;9O­“[5ãÕçwì2±B£†©oìáO¹m;1û6³d@§-ƒÅÚ8Éþß8|Õ‡H»&¾KH•°.ްš[uHÍæÉ9Έ€ë‰±›>&óTË!­*1øÛkIh?ÇýxP¨K€¹ñh„5¢¸ÿavÅpÞüéÄXj½]§Í*É<žSÃìÇc{ãÐÙø°°‚¯)·Å%ÆA[‰àuœ\c‰¿ÐˆMŸøkÓ[¥Öyè“ÒYè…ˆÅï^Øš)´Nô¥L³wP/Pf-¸ûÂzÿ³Ð¼ë¥Ì¦Õ|,$k "+%’mShæ'(¬±¹õ±þjŽfaÊøóMá+q7ÛH¼¢³” clø6ŒÌFTQŽ~roÉÜ€>SúÞ&ÌY²K]†Í¡«~§0:øË²­|ãV,Ôð†Dmµ½†w¦ÈýÁ;üx$#éiLz`PÞ“£Èg¥”ÀLÀû&ýℵfêOo{yôò/éņÒ]‹@À¤{z+âJƒ¯¦_*ßøÖV-É̇¾sr3ª ¹ÌAsn¤cMÀ†z®Ÿ"ì¼8híÑLÉ}ÄEÅ.õ¥‡¤5b¼rÀ^šgŸ •^oW¶çŒ”¼œuÙQšxhÔt³-Š,b×è&0“%©Í3ÒÊ5Ð6›Ô\Öñ}ƒÂÃrÓÉÃLh°ç ßå BŠO†«d÷ÝNMŠ^W"Õ¶Ž^•ÅL×ÀFÏÄ÷Yð ÿúß…ÈIœ±@s–°ÙK ]þ„é¦Å^‡$ ¯î‰9„þ3õ—Í<”S?›SV>GŒjžBŠ€m3ôaoý­"„UG {Ùñ²4ÁþÜÜú þÃVÅÅþ\[¨Ò_öchtÄfY,Ù in–Lü Þ^ ºÚ¸qØîÙKĤ,ºjðRj5ØóûLüòI­ùg.s¤¯ZãR±‘]ã1Ûÿ*ˆ˜9ĤÓ6ôOoQMûiûÅÔÖM”†·(]u3§FP9 !/â‹a¹´Oyá]ÌQûþܹž«¿”%%ßævD½M)þD31uíœÖì5(ñ5KÜûP’•ÿ1#â¥1yvnzõ°ÖýDÁO‚ÊL¨ŸÄqt^¬†Í‰J6 œT™9R,~T«’ÑÏ [ÜLøéȹýIµòF¶»Qû¸ëj„²8:Ï©È}×<‹é¢åUötÇ=ç œ³¢?ÈŒD­ø±C¬´;9M.퟾§°Ì;é`à8NñÜô J"à³´·;ˆìQƒ²™oÙ¹¿=¨È±jû™¿| á‘îø®íúÒ«„Ü'ä—“^Á¾GÕ²U^˜ÑX‡ÿ‚Ëð¹·oàsb ã:$P \èY¨žh©M–ýœŠà{¹Ð`ŠgÁ}Á\¢sÀÈíƒÐ?P.}¿ ‹wHzÕ›$|`ä¤O¬\SÊ¢õBm.P7''Åv&GH_?§yÁ9޹@ÇM…fT‡B©vÍTøóçq¬5"j‹Ý¸x„¡×:ˆ€áEI]o5N$¯#©Í¯îº}Q|¯Øœz7–îü vF~[.ô¢DÒiú×A²KMÞ¤Õ#t®VUE£K‹" h»õ^ßõGƒ‚ÏÃÿÃå*7kâ•ÓTy |–$|œ-ž©ñ AÒä["‰ØìGòaTLKÑ—F’ìQ•ƒšcä‘)Пƒ˜îŒ#7±‹¤~)Ó¢(Ì<ñD}òÞ1`²òêëÓC DÑvÁ:Z‡lkñ7eû/J©çà­1:ƒ.}NÃÐJLÅ Ý~Ã)ÀÆ‚ÅfiýpM§´Ä¥jPõ`­Æ£1T'ø /ß@`5{Úþùã=‹á?~DV,1Èĭʺ·÷&[rg•,QdæŠD4·hAx¡®Fç¿ãD«™y”a«®ž=NBMཙ¦lÓ°úÏ)ï‚H‘ƒ1nÄX¨_˜Ë°ü xc™Ûz°ñxÆ)»rlQ%Ër%Ê6}ÍÐg§1Èír2N\÷¡&ö¤Ÿ’2_a^“»"V„µ9²me ž¤_«Qv?·…å”+K âVÕŒ]‡ïiE}ÔyD³NK))<Õ5÷ÂZv+òB3/•]ª ¯›ä»Ë-J¿7@8VmAžqعÙ¯‹(8ÃöxÙƒ~êi¾Gõ•ødîþ"pàUVh qš3âIS÷»ã ÈZˆŠŸÄtWŒyÝišžs®Áy—7NÉNŸGx@}òíùúäWó–ä’‘Â> TæÐ|(e#t£g@L:ŒP§NªLŠì"¨5e­ 9|‰ÞÞb›©¯gÍñ`‹ºöSD½DµØ¦UáûÒR¬ ûF()loq-˜ïïÒŒ¾&1ÜMS½‘TƒXl–Ǧeê$8w´ÓLU G:6ùÁÝ«¨š|rz&%÷lÃØsNþ‘?¿jšºCZ³,âo!$™ËLN—Ú`+KQÃ[#“>õ êËŽ Âu±C9á2™7Cxÿ³ òV‘Ý+î¥í¹½*܆Уé¬îòîÄ[ÐâUÜXß*œ\ÖJ´¼A 7¡7! Ï!L0'чg&V}œP’oôU‘šÇ´|Å ØVßÎzÅ—ˆê¤/Æ”ˆ*†œbTaˆCy˜qC¦º`‚—9Ëâã”ò-ÎÓGGí +YÕpëAáS„0Ø?.ïÓÒv Ý W9»ù ýÐ Õ„¾»ËBPMuØa ì ®•ªº4£ »~ÎöŽvjÚÈ(OHDxÆk94„6hvp_øM bÔàw,˜gîÉûZòßÚ½vªË‰‚a÷op¼4É7voðX˜ê1è´´ÿeꉨê·:ž ^yeSJÉ‘ùuêR#´8ˆAã€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n021023l.pfb0000644000076500001440000013062207056046553016415 0ustar fnevgenyusers€~%!PS-AdobeFont-1.0: NimbusRomNo9L-ReguItal 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman No9 L Regular Italic) readonly def /FamilyName (Nimbus Roman No9 L) readonly def /Weight (Regular) readonly def /ItalicAngle -15.5 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusRomNo9L-ReguItal def /PaintType 0 def /WMode 0 def /FontBBox {-169 -270 1010 924} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020937 def currentdict end currentfile eexec €ì¨é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>mµ¹œ_«¶må™’Íîcbk¯$uصÄýÏCÀ4€uÖlºi"•ªbcª»B|œÂ*/?¸;ÂfÛ÷Ò-²©ß£I4ÞŽ‚ßBkG3ÓÿÓï°Ãö +_¢v=­Ø`dÃÞ¸ú3à‚òxþæ‹Fö²VT®– }HàõNù»x)cþël½6dB[KB9rraåJPö)i‡Þf_X#8ˆ¯û=½W|—pS;¬ ãˑ߶à1ñÚÛ\2[ºa$³˜ã’ÍìE¤WÑâ·/M­ÎMHÄ9UÔÁ”ÞðÁÕó´ Å<Ïfw¬Êì%Íæ;3ÃŒôç'ØLT»ír¯Qê¡S{ËiƒE°ìQ(a®ÞÎ~Hòä‹R#àT]ºÉaöFÍ ”Ôux‡ŽQÀj+CÉíï)¦x!Íé£Ýä;v3ˆ/ýsËÒ¦DëéÁêöý\îH²+A}}·ó ùç×±Š!­…šî û;P‡)¥þ-c‚ò°øàx€:$SUÚÓj²È²X;MwÓ¬ûÃJU5»Ð7éÅp\ç'Âd” w{ CÜ•ã&„åž0•EÎŽX‘‰0å› …Áj²Ô7K™èG Æx» ¥„? h…GœÎ|ÛS?ª€Ö%ñY†A½Çe÷ 5½¼œ-£f‡)§ÏaH‰5å5¶rìW(Æ}èΩ!´“ÐÓ;$¦¢W¬¼ÿ=š b'ߌŒñ²šž¯¡bñ‹ZèIÇ©imLq¯›F,| ¥G»™ò®vUú¹‡V·ßv Äйø…+¼g†–ÿœ•|d²“žÍmÜ…]àgG²õõÄüQöŸ¦ìh¿’=Ï6µ}2’ò‘ôM3Ŧµ¾Peäl¯°e|,øìøÆB£±áš D¶Zg‹àë¢1®^–mŽ„Æn òß™÷܃…˜ èöÐ×úŠ$.½ÿ i×pÆÊ5Žn5àc Kž“¶I«ÙâžF£c]*c^(l·2äà2GÚEuN—ªüÏJóÀh(úzïdø •U+O+•Rȯ†€Î¬A¡¥YåÐâ{R0ý¹‘ŒmHF¶ç” ­à¹–¡ô­Nofð2~ZF‡î_ÜW¼soØÊPÏûn.‹‡–ýN<ßY¬ˆ&¨˜Ž#z9ï>Í-+V½/ÂÔùg]ë t<Ö*ƒ–G­ùÝP¯(g®l(}ù`¯¦ZôûdêIÔ…6iÕP $Jã[E#x]§¯øTD¢ÆÚÝ» òZ[–?HX(–7tÒ&ɳû¿éß=Ó}YýMº@¬S¨ïH¸M\—¶X»ã_ÃXwŸî N?d©•ÆÐwà߀®»\©´Ä—­îšÞÈË|JÕ&`:åôBf2òöû¶€»°‡àYÁrx´0ÚÿAì–QÄp`Ç¥Š á,ò/¾­ÌœV#çÚSE>áærŒÃúetâÊ5’•ÇÒ– t3J„@ˆ_,…(ȃvÆù=W‹Gú»õðSÿTqc)š!ä,—Ì¢Ì×±)ä'ýzºþZt¥¡ßH»ÑrÌæÍ+`ì!&_¯P졆«¦Îo¶=pC#03¾aŠÑo©¢õ$ñ?Ãgäa«õe½Þ«¯8[°ÿ¶4[x6•0Iaä?>t5·•WžãQÙ—ÚXÍEjÄU¨2sèâC wΗ¬w³Šå»ã¦~ﲬ°áÝGGbb:d-f¤ý¬ûš¿ÚÝb[düåÔ²L% ˆ ~Ρ;gÂ'r¶xçýR#¹VÙE€›—Ç5£«ˆÛ1¨±L*Æ} ÅOÄŸäa/Ì-Áv«CÛâ>9ây±çk`;óJ!þCª z‘úæÎ5)E¯¾ÙÍ N~°4;eGüΜ>sÜäܺѠ?·2ÞT@ÿ˜5l4¡%ÆHÜIâš‚È.´¯™˜oýQ_¾WÓ†w'S#Ÿ’6¢¶ª»ÛÄï⽪ +Þ„Ä3ô×SöÌçŸZY!‚˽m„¬Lª"ê0óßMk´ |¼gä †ÍO!5°Ì2þ„-‰e©ãµò8¿âúOXrƒîu°ÆñìÁÎ74‡,Û¥0éy\¾ÒÇʨâ’!«W¡ÙzŠÙíL„[GzRð¾}"éߘlöý~NøºJõu<êæö뎚ÒË0Ô¤à¯Ü:§ª²I÷Þ!hˆ¤Üõ"¸`’åɘ4^²7hœ‘LÚÍŽR¨A}CA_ÀkÁi(oÊyA×Ì8°þ^<Ùî„,¸D1ŸºGéÃF~QÙîGOÈ®\Éü{J)ÿ¹å&D,”y€fZ5‚3Æ[Ú]oTÙ¸ué\¨©q€hþ³[¡¾´V£˜àXcuGªI¡0Xyâ0åªZÁt#§Á{¾ƒ¯V(#Í8ýõÇd”79#ÕjÒ]Ô¨Ž‘äPi¼°£7åLÕlíZ÷}µ?€Z‡?ý`õ£ƒÓÞÅ‹ OÙ:¬ûÛü¹%/ÌÚ<Ò©Á“Ë,º,n² 6ü<Ùâýã„ ¤-—TÚëLˆÆ×QéTÈäéa9QªÏfÈ ; ‘jµDöÒéo†Ùá#t%CöYÒpDpò?Ä^å·)îP*†$ül ” +¤`2¨‰ì~+±9t\!ñ+ø;T­¥sÿ=@œ†ü¯_«ªêé˜äyô·Ã×2 nkSuCÆãž‚Tíû¬ÅãéIr1Üä÷ "ìÔ%ÿœÙ•Þ¯éà ú×p]úá¤lU ® —œ´Á?ÝwíÞв`ÒW0øyÏg§ô«FÜ­ ˆàX«2âqË8ÈI¸'ŠðT¼Œ?i“ eÏ·»“[{ÿPXCcí²t[&Í/©×ÄN¤¾½†þLÐ9»E€9MÛ°d»^o¢Å–Ž ØÜ CÛ@¼"eOù¿ùÅ£fÔ*†”»‘yh û{¶'àû=èÊ7o¤EÜÈÀÙHûZ)bòÙø_Ûî˜&ÚÝá°\Ž­Ÿž©Ü/'”Xäõ mŽ^~ùÁ¬85Ë}N8.*HÝOMü¼r¸+ÄäíÝÓ\ÄÝ8w†€š¼¢Ÿ^ÂH”ÿìÚ²Ô"ªÚPaÀò[q=_‡yOBV ò+•”bsg…,ŒšK[Cß\èÓaOvas’!…=ýúþ” ‡e)¡uóü”T79²`ÌêÒªºqNêö ³Á¼{:EÖÿ j 2q¹Xb1Ðñ߆¶/Fã„‹sgßhÃÞ e§rs³bmMêݺi#ýŒn&ÏŸ°¥ö"ù1JþB…Ç15:„6×yUá¤>ôyŽÃ ì½|—“É¥hÄå¶NÓØá¯s¸¸)…–9þôëÿÿ»td:äæx¯hÿÛAi5¿Ò³·Löú¦È‘ÄØ—3yÑDšÝcÿÌé­ñœ(Ïĉ2™œfÏÀ{YO‘98àh«¦„¬^…1Hòp8hNF /¾ïxO7¤~‡:‰´ü—ÌEê¼m,ø÷!ñ§A-!EïM³ù³~˜ƒÒZš|ÏÄà¬3³iëú«Á:Kíò[êé¯0:ߥUñ æÅãA“jf¯)k‹äÄÛ\˜l­ÐÐoçJp>>>ý»•m-tx *“-¢tèFÖ&Õ¹þ0´þ¶×¤ª²r:@qXÇh÷•ƉûÁf/eÉNc#"¸~a…"w@‰1Üt…猀GèP~øÖW$pE1%;úÓ O$-÷QçéÚã-<=~­ù»æõq_ÜÃw±A–G¡w’Ý¿OËF×'¦cÊ^û\ŒÊ2IÓà)„ ÑQDZÓÕ„„å^3á†Á¿'ÒXÕ¢?xM/á >: ÿ"–¤,;’»–É–ƒÀ¾q€²ãßäÚ#˜/ºÃru…ù·úúq‰Rx®ô}áiK@† 4ý=å]— ÷›Äѯcª Ö…ÞpÀ‡a+4ˆ –t!¥Ñ} Gcñԑ؈iER¦§Ä?U-®4KÊ`2B‡¯^;–zÅcrñyt¦ T*ÛÖ1®CKMÎD‚éºÑÎL¶­(ÿ¸áfÌLM©Œ»cY .+>;g öý£ŸïSìI\¹¹1(˜s‚ FLC:­½Döòà/‹ð%ìªh¹¥mJ cå‘ -™Qz5¼EÐC:õÞ‰š¤>‘˜ Fk> Ç¶:—@¬1Î`Ò¨™nÍÜë˜ÂIf¨âз˘•µI=~5<—½*9¨üH‘´žü£J¾~‘:ÏÇ—ë¨wÈ$.îßtÁ¸¥(ÕŒ×QÍÕ³8ú]—7QOþÁªãA‰xûû D«Võ4˜-ïašro[#+¥\gP%E» ¯MôARæ¯~¡\£$Prš´Éºþ껡2Þ þ]T¦k~`ŽcÒ4*æ\GqM°‘›fÅù&•ú£5ÝÎߪ'®k¼bmÙí,m&Ú:Âuî9ô'¿÷º]†Ô+í³¹±!2>#ˆâb+fêÎ_‘åA xVÕ@¶sÕ!&±×hŽ õ)ã¶›‰*¤?Vþ_…¼XÛ.`Û©µ åm׉.é¶å ëÏ=@°å‚ P®°Øž{ ˆî!_yO¼DÔ×€Jy¼Ùèssü±SZÅ?œ1$˜¬þöú¬méAÉ­a%¥b‘Oy%[9t,ê™íG$ÂÈmlìWÿèL˜6>¤¸1Ò—Ça+*üï„à<`¾pvÈ{*™¹x‚èñ:³H5ÌO9>S9¾ÛËçëžO¥Õô‚pi‘,XÕœ7ŸytMñÖÕBq‰“¹7¨PÇ"¯SÔ.ì'æè[¸“ª‡¥ “{P†•ñFjè±b"‹`¸Ã£¥ŽâɹVôeÑ­K /ª°CÌ'/¦ĉÖUTy_8þ/صÇԛɉ6Û©:„Þ÷Gžp‹.ôýaWwH‹^D‡>ý¢“8 Z¤“ö7ÿ»h-ôlŠ Ã@SÔÊj-hÔgo;`Üò~‡²m“‘ ‘!U­OýdjN ä$,cˆm§nµÀµO6n´–¬w`CO—€¶}’J¯V^°ç“ªÙyÙSgtÖ‚ÆÍ#Ë¥>’Ëßt†¬ŠÓ„´{Ì西1+¤4Y»Oeˆü3¤htVyjCBQ×U ÎgöRH«¯’v¦v\fžy, þ\¹Zz· n‚¹ÑFZ#à Ôª¼|VÂx¬ø83G%ó…æ6ø,kI~n0‚Óžq-Œ¯TÔÕ@_ðîDZ%ÀlWjtÔÖÝîómk,ºËLlbc!’_{™Ñ•¡^­lßI܆6 y'j‚÷â%BÝ´j¾’°¸ÕK?ƒ¢0Ä Û˜%9½ô5¤ÐØ 4´åƒ¸ƦÉámÅ«!bΗ"‘½n›ßÎ$dÖCh(‚tžZ[XSª{›tª½~Yìg0¡Òå±[%ÒÔªŽØÖ‹¦a„ HX%,D-¸Át§pØÓÃffïagÛ6ShTÁÓD [VA3Ôðõ!…£ü·g¾üe²CôÕ(ñw,œ–2¥Œh­§M ó O‚J[r—%;Z[žõ+z³ áS‘Jùlí–¿Ìd{ záqK1=á™Rô'€¦‡Q9Û½ ‘1ïÓ®—›yœÙ6y%±ý/Œ4÷QSsÿk@ÛæjðgYߪäN®JêR Y¸(š„‘ì¦~Xí‘’^×z;eeßzéYLh€%ºOn«´he¤®Ah¬ŸÇêUä |‚:ùýù ;”ÈôÒîʶˆß8d¿Š«nU°¸¡öý”/²_œ³e¯¸:Zx挰ަVh]~×å·Ô˜,%Í ò™b¼65™6ð®Úìl+>ÉxkáöÌ¡ìÈ2¾Séyx6Ê R¤¢†ô¼62NéHÆ\61ÔN nI×<…à…ß=5–cïâŒ#O¢àu¹þêU^¬¤×¬Œ¡ÿ”ðˆ‹’ï”®©ÚÚòÿpŠÿh¨<ü÷H¾G¦ÄÐÕ{ ïôÆ®n Ë2g²¾[xæò ©}5is䫉3ùºˆ›¿~)ßW‚Þ"YÁO âëü﬊µË$Hë™zîo‚œÎ˜{*´N”"aŒŒ¶MÏ9msõ üù ½)æ!“X9X|ïì¶ïÌQµ<Þ‚?BIsf;nnöûd¿¾å3Íñ£í‚a=­&Æ…+™“òÙ’D¥ï\¾bõnS!#£§¨Ð5z[ÕC™TLp›šÓ·vû†âηKFjýÄ }I!Ä ž¯¶ ú¯Q¾<îÚçÎb~ûã¾ý<ëÆoÍs¯ú2dj°£Q$–Gx)mÍAª}îÀÌÏn'áµlE ªñCÊÆÑo„ q»6ÙNRŸ¦“è"£ž|wÛÛþäú"ÄPvÊ’‡ÊˆØ{á°ªÑ cé/ XÜQ©&FqèHNL–îp+cƒOËÿ¥fËÑO{ “Ø6‡gùMü›|'¾LÖl£Çfò®6ë¶›¢DÛÑ&ÈT½o¤iŽ£Êé¶‚S0š ¾Ša2ˆIXòowvˆŸ'êZ2{ÞXÙ42 ÇiË”Ñi3(¹R\¤õWvD ˜dçEÈË.CÓìn¬‚ƒr(B:A®ý*#ˆúþúB$‹¾Ã5Ú4á iž»ÏÚÝóó7 :`ÔÊm§%r„(ºEþµçÄ¡&NæIàðó¼p…\ ýÐ#é!kajãzßæe½Õ W¼ã€cyzmK€ŽôN­\¿?^=‰:Þ \©d(qûÔ×l^ØJø­ÄÞÑ3ŠÏÕØùÙ($ŸáP1Nʤâ‘ëç»_Û*%‘xåñ7瀃‚­‘øiXÛ*Á×%ùO·#`ç »;gÎsö2¼é#¡×VVÑ 3–á"M¹[Çøb¢;(Ü·G¾_ã}kBfv®šô‡G(>ðšýä¢iÖ2•ÇÁ_:Eõk'çÒÍc¯°¬Š%c¤¶Ìäÿ3¢‹0z KÕ±Æ[”õÞ2¥…œË‚oŒ‰G7¿æ£2ÄÂn×£¯ËÎâ7†Œ•)cOj©+‹;îzv³‹ÄïÍ6äóÂr^33úmR%áÞ¯ûŸÏFÑ$¾†du&³°6oÞº—&÷^x³v]B‘]tß;FKåktb3è1½h©ÐL´ºFŠÂñÇí³_]ïTçÁ狃'9ˆõ …´ÀÔ,iRÏ«BÆòDö°›-ólzÔÜ?SìPƱÉ,—éÓ(¦€!'a¢{Ó¾—mIc¿ÖÓO5Ž~lì”¶ÁÄœ– ôêÆšÞ£Ó­™{’ÝOø/ü/UWØW_pÌ4§ù‘gÀ4‘™š©r„]³w=˜ÒT,žŒ5MlY†æú³éHU},¶ÅÀ¸=d’f¾¹dG1½¥€½G)Qe Ç!R€H¢d2Ö]áuZ£)(§^Ôˆ!Ì};ÀQ»¿Deç¦b§i«(’ÎÂPr·‰X_òJ°˜g!D@óÊÛ"€‹%H)¯9YižÔCØgÓ“–Î^Ô·1Ÿ€Ã ZBP½z2´9¨ûVÊëâí?"|ûaµüðÑ^#:yãawqÓWA, kýÈ?e°æ¿zbŽuÞ-í¦d ÂËë÷ÁàØC@»¸^”’ýj‘‚¦‡´=ÒáÝü!Y¸°sK Ü6îìæÙZ+zD¼ÁLÀoö¼§Ò³øËþ¤¥Ôô¬gÄ㎠ÑÏ¥È&|Ýn¿¾œo²¸H|$fÂõÛÔ˜=ˆ›]¹h?¯)Èm‡e6µWõÐ%nÂÝWEÆ):œ:â©«+Ê 9¸Ù“b  ;ˆR+ƒ•éR¤˜¢-ÄfÿiSxLŽ—¼µIï§Ä*Gz¥Y¦¸‹ÜÛ`j¸³åªiU£=§šu*<Åú²áôCDÄúßx5)»Á<ŽupÚ˜Ì6Èɿŭªñ‚š>T€<«¶CQ´kì`Â}"ü¢îX0Þ¯·~[ý+SlSÁãQÎŽzµ„z±?MÍ>Ö;6tvŸFuƒ_ýz’Õgx-WU(ˆà”*çY_”4k©7ÍOþ&Ò¥¯óNq‰£µw½vs4Ó«¤°ÞOa£åŒÈÞæd·ÏB1ÓíßÉ—ge@Å.Påí½9„´uÀD+MeÝ>ª¨zÓ|O{ü §»BȪtN˜xÍZ¹2xG£`Y,ncT{äªîwû¸M޼fôÄ ÄÛÒ1ï7¯|ÁT w?Wtý>jDN_µC$â¤Lp»)ß/±‚'a”±7w(XѨš[xлW…Èc¬¿àp@“Ãgî W-†z-d`ƒ‚‹Žßkmχƒ¸×ù~h›1Ðqì÷ Ä;±ÔuÞQט‘/Ý]ˆjÈXêDúô‡Ñv)·NªéOìFWÖŸˆkqÕÈBoˆŒ !×ÑÂL TÔ^wÎ$µT¦uÓ÷•\’Þn!b&ØNÒ Ž“ùë2CìÿS”ÀKó„õ5õŽÚ3bsG÷³¦0ô¯‹„ìçñÜ„éªqâ4SQN¾]S¥–qŒãêgæ_“ò†ù0Ú Êø1É?`v:Ñ‚©8ÝûRx⣶ȣzÐvé¤ðŠƒH80R4InC )WÓÿ¢U¡m?ö3K³±¥Æ¼z¬é®•Ÿ~Q»Q3NJurñp+Â~:f˜êZå@]aw"ù™ªF_hmñk(Ô—1^¸Ú!´:ïLó;?>à}:t†o£‹È³<Á;ˆžþÖ¦Í.¼«BÑ·”MÁJeHÆìñ¤Íù°ÄÍ06H=ì;D7JÂ÷%”ö¥S,Ú:>5¹I´a§ôg¿‚25ù²BÌ+W_@û“›B‹/»Ü¶ ÊÀm¤®[˜7¥ï±ñ‰Þôø X»ŠöððÛÕ‘¦ìts<‰ÒpíÊhÿû½ÖƒÚfèê¡-/¸¢Æ·Àš½­‡‰(g?WÓV„_œsÜäÇ,¬^Œ—Ð/ƒ-y‹À@?……‚§Tw.«lÈHd…ì¶.­‰s®w³+.³ô ͼ(±Wš…j.ºÀP@™~ÒYù-¿IPOÎÝî„áÍܪ"+KÆwû‘ žÄ)“ïV›–§O–oÓS\LMþh¶srÛ™j××ÿýjʹ¿ÔÏÒ~h=±SΩoÄ+–@Ô]?›9_jqrŸ º8 Ã Ÿò"B‚ºéµ/)Ĥ©øïëË‚f ~†"­S•sÌ9覬¼IÝH+&Ç+Ï·'ðҙϜ´ÁÅ <\nXÓèL÷b’|üÌØÈIÏ•ÄeÊn™ Qmë;rµ2GŽ lÝ(ºWDÕ[kKFiüÏ,F»pý¾q¢­; h¡øäNK7ÇŠ·ÝÇñOXò!P{<ÚWÔ.¼V!Üö ²Ó¸_åëá&ØÀˤ]Ô¿fƒ{Ý V£z09ë}ùõëý|µ…Zþ¶Š½r•ôRúNóûòKÓžt8``%³ ì nM&•<¬e‹Òxæv–oÚ[;¡Ì?ZÃyzsÒ÷«ê­CyÌšÊÒ’'üá_R1W8ÈïfÊ‹>áAÍ®Óö2ãC5/mlÛ¯ËU¿˜1g0öϹê®y܈FÙ2’ò/e†©ó8ºú*õqüI|5+z(&Ψ¨U^Pã³üÇRNåS“žÝC\ø óÌztd?í£X®HÑýx2Šv%ªú9ÆáS ‹ÎÛIÁ&¾títdÎÏ•\%Ë ^ÁuC±¶r˜¨–OÞ˜á?¡'8Ÿ‡mãÐlÂÎåÏt æØ_ov÷7Ø—Š«m@¶¥{Y’ûÁ},I—¬ôŠD;̳ŒpOº"ŸŽÿD×¥’è¥"¶à~¨‰ànOzÝ®Tkž|ÈÀA‚õE ÑNÁ¬[a^øw–ŒCv.û­C‚ …‚SNWß™_‡3¼D0Ñ¡»Û‘‘.ÅÍwŒ(ctv>2Ú CÒTþd¾UŸÊwF@ö ¨Â£`BÛͽ½¶fž¬\QX†úl¤"X!D×ÌèI‡(ºš„7§ÔÍTÒ°¹É®[lë+*<*ØYÏ4ø\Z®qâÊÙOGõà4H63ÆQ¶¶®¼AÌü_(ú\âX¼Ž\Jí¦bEÅiSiFá ÿ‡jî¹ÁÞ!IrLŠæð ‘«£<*Þ'pÇAi÷ÑàèqDIÞ+ {yãm?Ê ÿZ±I‰Qnˆ aþ÷î½RWfå ó;"@ÒW ¶?þâ0ùêiº*Rò§$RI‹ûjàÒqó$ÀH%Àk˜ó^onâJ?7^|T½áŠ­„b&©¾×KšÑ\R=@~˜­/$bfò Pø´N3‰)´o¥)…ÚÓ"ùK>R‰ ¼ÑˆÐŸäÑüÀ·¥âc»åîSÃ:^î0Rƒk桮̀HÞÔHð½zçÒµ+l.Ï~®Ö#g© HƒlÉïªõ&©’¢Œùz_„®l Õ^FÚzG;Ëäƒ µÒâj‚®L^S½ÚɹVE}{d€\Ý"¾¶„ãÍYP å,ÎP^3‘5˜pÀ+3®Ú–ÀÚŒ2‚‹”ç†]¥“›úC_åéÈÎßɰ‘N&‡Ãå_|žÄ糧A:íè_SÝY”QLŒ‡ÑóEnãªîš¦w†;—Õ'cëúz¥¾ê]üžG ¿Ìûå` ¢·X ‚÷[¾ 2@† QÇ?˹ ä»¸‰çƒ¦¤osÌåé_x+ëèf«q´cþÑ xͳlúRNªI¥ˆžÜÝ2N-¨n—ýOÊ47èÕa\@BÍΈöädf:÷¡MPBYüµêÆûJxž¸Á’?¿ÀÚó|ó›„\ös==¥ÊZ.÷h½wn´N]°ƒáz¥ò%±âÐ8.Ü‘ “›î´QáÐÕ©2²R;¯Äf”Ñ6ð\Òhbªh…èRú~b‡ÐûÓ¼eÌ™*ãLF§cÚÿfB"¸×„e"RÚt8IU%'€Ì\p±,¹òˆ{«ãò¶w±µI CíídÈPî£f–àÞ[à¡]©ŠÚ7Øò8ƒgI¸Bìínvû­\W±÷Å'/vcmv¬±ïŽuºp˜D— Bº´Nísz¤žß€\Ð=ÔT¬L©(@ÙeåŸ'b“ëûï þ=XÇ®ë(¸…³#›¤&Ü/þ0{ä£Û–Iïu!ÒõŽj{3ñÙ£ç’|Tâì”Øö ³\,B— ¦Gl¿ÉóTEªOÈ6n˜²Vâ)2›fÒ<íã_Ûq½á¦(ü‘þÞ0úvaÃÀ7:|¬ œE±H&’èÄH~uvã¡5Ö‚i1Ñ.rn'ˆ{hœ)]·&ÒG ÆÌ´Õò„+Ž{ÕRɯ*íï»In@+©¨jêá8Çúƒ ¬^òýL>s:;7ì^—àð´M‡Ñ„e5““XÖyˆÇðuçz¢ì q³$MëZs„Œ„9Gvùÿ÷0s]Šð¥äîE›¦ÿ}ôyp•D6Ù±$F„Þ÷§÷<[åA6Á×KÞ§y0ôÒ C…uéñ]:ICÔ†àDg|ÇaiâSàdhcÊï“Fûrk‡mshÔÉ|¼–ƒà톦yÕDï'…÷Ä(ˆ/cŽ |¼bóik ùòP8‘!Ì*ÓGŽÂyæÿƒÓAzu}k3Kk³¿ã½Ìæ‰wÄ$½|—æÍxª(™Þ•ZÄ1È“`}øåÔƒ‡Îö¦b0·¹ø И‚W°Ç î;ø8–‰.¶Ÿzžèî·dé?­Ð£5­yûÌlž-ؾ8™Äj¢ÕÄ@¦/u€tSÊxäeƲ,‡Ó•‘¦&É$™Ÿ·g=Ë£î+äMzJEÐ;î³Ýê•èÌIUˆHš€£¶#) ²nòÎÌI±Ö›–Ð-aŽ nj»¸¹ÀzŽ·°’¡d^Mßàè?®ÚB7þŒ6=ž¬AM´4ë]aa{UÃûWE9 AmjãZ–8E|Vr|¹ <Ð)1“+â|M JXܧ÷:Wþ–5ÌÙY1]çÎVDh¼l~kL:îA@I&›â÷k» ðß%4¯Ö‘+ƒg~ ÎRÑûÈç£Eõ«jD|…qjbó'¡ŠÆ‘x.·¨$uñ£Âdßd„w"óÎu~f ’ótcßç~ó×s(ËTïÚ¼¢3üÂíòÒËÿ§}ˆ‚ºþæMxQJ<@¡ÁujÒ2ÅV »ƒ8èÐnØäKÇ°Ž¸([>ê¬X+;ý°N “”Î?)ÿ.»iM·äþÛ§ø!¶Ø ÙÐ$Öû¸_ܰu4ç§K:í.R©‰WÄü»âöJ£81“Ž“’Þ}óé¨Rioþ»¶ºÓ¯Kʵù «F®X7ÓišÒ}lïûk(êýˆ™Á2Þ3èJÙC-úÿ²GǦ÷ä3¡*Œ:×®áT¶µï"äd·±§=ºríÀªi§Ø¿ûdùf¿ÄëhÆËÔóäÿŽÐßBsÂA·öƒ gqñ¹oÒÈ’Ÿ’9Tú¨pl‚$í4Œ¹Áä]¦²:©¼+·x>‡ó -U;×H¼µîƒ ©Óp»’ÒùêZ|it[j‚NÿéL--n,5ù¥c[SøLè[x•e6Š©órôOÚĺÄð«CÚCï›Ô¨1>pYNµÃ@Ÿš³PWµ°Õ”ýaB¿Ä<Ô–e§"Ë5 ##ÝÙŸ¾îBd˜˜¿&-u4ÅHdHüÕÑZ¾É¶Ã>#bÕ¨àЍ…ðð×Rqj!fYµ/Thº 5« ¾/£°3¬¤¼åÕûOñ©»kÚbl©×C>ò»ša…dOiÈI\á“‘3ŒQ {¾{Ûy{`…(u0^°Ï T“bñTÀyßãÀ]ÎùÈ>þ#Çá&vI ¤ø©R8¬eN®wÿb’G€§Œ~¸Rœï;»{ì â¯Å÷'BÛq¦)7‰L¤‘xX³;ê|üˆîÞê·Ï Û™†è&¶ÙY â¬ÖN܇3ꌾ&µÿ”€‘_ñüɱ‹ßËZK½à.¥.ÒùýýQiè;žÑ°I‘J9î˻ɖïl8ægÞ¦¥ÐÐ#üÖ™~êQ³ýu‹S–°Í홆ôÝM­bÇ—Ze ÔðñJÖb´¦vÀÖ©•{ý¿9P‚B–È·ÑP‹2 >ÕyǬò_É‘÷(#1ŽE6ØÄ}ìÄÕ€bÈÈýŽ:IíXÐONê‡ç¸Ðo§ÃöÏ!äBÏð‰y.µª~z © 1מàxé4jÂT„æ,»VT´b‹›ÛÙ«Z®ct5½˼ƒ"ÌÖ.D¤ Ìt]{$Wî$ɢǽ£WuèéǽÌ#ŠlLÉ‹Èl4á=° ®R®œJ!)þ[)8\9xN§tÊÒì¤XÝñSðÆ\úãûT.i4& 3{qíÏÃrßý]Hìeª0ïP_$o![ŽíË]„/£VŒ¢Ò–¯…RÛ|QÑðû×ÅÈ^œ©ce­¸âFÁËÛönïP33ÃJè9˜ûˆ?Ê/3E/§-#iÍÊ_âöõÅì8w[Ä¨ŠŽËðøfX/¡˜4 н_ùÐ&xh-“Â…£ZÛÔZKC£¾;¼J¦‡±ìYH‚:mƒ‡ÊB ŧ@&*×xXO°²x0;H¿—f¿õïŽ4Ê2çJDüU’F&h+&ýÈüvÙñä;Zh/Mÿ±G°Ð×Èçkå ™U[Û>p[S! \×"ä2(TŽ€ ` ÕÒê£ JÚû*"U½’M넟ö@¬—¶ª™„?ZŽ®Í¤ke&-ÄÂÊÃxQÚ@ÿ9«8k5%‡-W{ºá¢DÛŠ²JÝ5\Ä÷ W%b!“1x÷ä§ü8¹PwûD뜮LtéGû”z„š P;šÛÅÛI=Šî¡ÂEr ƒàJoþz$w×ñÊ´þ÷m}„,8kRPšCÚwsW¾§@„ĪçEîJó„üìñ©ÇT0¹I‰G®¸É –ý¤ÿeýþ-ʶ=¾–3MzÎs”+ÎFÂ]ÈJœ+Äï×£D¶‚ÞR~@º0c¦[š9w2˜;ÊU&ôô~)6T!IœZ›ôâÞ¸®un_^VÑY¤nÆ›n¥•òz”qvwȸÞNiP4(†ó1쮨*ðA7¯9ZµÃX‚½íñý ¾f%Ø( õŒOk“\†¥Gù(Ü·üÙäšù®2ü¤Q£7‘· l—`JâvúuÃêMÌÑtŒ_±7\\¤Ã˜mâBŒª»–æbõÔ¶·ÉFqð²{âc૵ҕðÈWÀÃîÕJÙâ+==œFÝ$jÐ%@R‹g6«õb§?ó Ì Í]ðeaéínÃyà|,ù­¡Fĺ­ ¡OEÍ@lpý*Ôëë8o 4R¬£uê§V·½ØÛ¥žVÇGË$Jš›ûÜ6%‰`+¤v¨©ø![h*Ê66 É›(YÀ]?ºü€ÀE³ £7Ê„?ä£Õh0mÃéËò×0µ°bÚ5 6ª-B”-XLÒìJÍ<Û¾ð§ÿc©ðu2ÜÚaîP,fŽ–Yö·þ^ àýmßxô,¬`u‹>@Gf`eµÖ]|åúGY8²¡Á=ËÜi£"ˆJuÚ­A·6ÂIhŸì`¤ ‚¡ä»Ú°ƒ‰ß^è¯ï6¹¶ÔïD ̷õʀ?- NÄ|þbSOWÃmßsÿ ZÄozQ™ÚçÀ³BG\Ûbl\ÏÛÄC}^±÷ôÚ[tE7häNk,b³˜ 77omª}E8]ë}g–mžuÕuœƒ±'Ïp#ý¿^È¢@Ùl š-Æfïoí©s¡6p9½ )Ð*†ÓITø€üÔšóë‘`ÒÍô{ÈofäŽnå.e !/xãØA%òs5¦äøEH3r*^Bl)LMÀ,™GCb¬kœÙ.œmî:ßÇñ¨'?*&[æ:*/ÈtdÍÃ]1¿'Q+кød£cQ_ïƒÆÎ#àPéÄY‰Ðü¬ÔC$ ®‚5dò 0Ù¨QI¦, Bø‡TáÔ˜pfö«!ÆRòD†›Êí§¥![!rë&c»èZð*ÜPÇ`CáÇ$‚;|<öÔ5ƒ3Á²¹A{¸¨/œ~›ÂÉt{õÒ5,Zÿ5”¯è<`Qµ·@´Kk8NéI%IWùÇr®vÒ ¬o0n(v~¥K¾öxb©‡ÑS®h-™0çŽó¿øÁb*оW4„»'ÜÖCüz„ ðaã‰oòõãÛ=g¢F³Ù×dñJ"VÀE?é–b[' sðÖ ýQU= ©Éâj1ó£Ï[X´ÂPòßzø>Æj&ø økžårT[èôÆÙ7‡¡énfÙJÒ&l*zž}¸,q#Ñ="ì.(-…Á”ž¦çn¿ó5:ª'Ô‡ÌÀtõüŒ½ã#‘ÐRŒ·i ’É€|w¤‚—rjÂ*JRõÜÛª¬ÆaÙu\"…ð^c!yçÍ5„/:tG'OÅŒzt,“ÆJ{ê*…Ûz±º" Ùe>k¦¿ …ž¯¸wÛŽ¨ï÷sq 83Ü5£‰Í‹À»ç¬Hñ¾N9—š^Ì“^ˆþ5q2ÄsJðKñ3®±:zàOmhOJ#*H„ó×¶!­c?›•ÉM2X©¤O Ë‚›õcizKz²-xùßÈûµãåZW—á娴gö Z^S°øíYij1ù¢Ð u*ûœ—Ÿ”gvA8á¸÷)Ù§«gÐÃÎzKènJgéôSñ¥&Iœ‚ý·®4ëç®-Á­ᠸ6D…hÚX䜧˜醇‹^!!Kt±ÞcƒPVÑéB•ü4!ÆÜQ ¬¶Ï=¼¦Ï"ÂhôñÁóíýâÌÉÌ)ÉÜ;¸aÛfë»ÍÃ/ñK¶&*è©Jb&7ë ß=Šž²æ‡Q™~–ùí€T@?i}cÉÈ&&_º&P«-ÚÔsÊŸ¼p_A’e”­žð…ïƒì[ÆU„Ö¤ÓÉ jÊ€yüøX;>¶Q^p·Ó4TX7-tZµsLô0o—³²7Æ’^ µ½–Æ-”ôI’¿0Çy=¢…z¬d(Ãj÷"å¬jUnž' ucÓæŸ¼Ì‹æŠM¯,k ÿ‹zÓnH DܧKúŸS4Oò;õ°½‘8õ@×»AÓߎ|Ÿì[,¥!b§æÈIsfØ«¾~1¾ï³´C‰2ÆpÿdcL/Eµû¼ùÇo2'a𨯇~¯¨e.%/èFN>ìãxx fnsŒN±€><ô-“ßE w ›KGºÕ»_ ã¦ôbõi°»âô›³œó™Mh´Ãã{]ˆst4ŵÚÊV ³Ñ°Áý† v :ƒÕYAÎÀù—¸Ö–”]®Ö\8|ŽkeÀ™a9Á§d9é̦TútVúã)§±gK¥…0‡bÖžÞ¡I/--èG2Öñìß)ôB`®€¤ë ÞaÅ7@ u*-ÚidÌ©îøtÂ\aDòãÇso8@:"Û»wÆžˆˆJR­¥uz°àÒšIª‚8†Êîä=©‹´ƒþÂZü&FÔ9a,кzU3«5è‡Î¡Þ—é`¬’S5ó[‘‚EMmo Q11‘ÉY0_-±¦½w¬ç ³1ý«¼K`›ÀQ£ ›Â #WÔ.:S®zÙôYÅ@‚U#l—¬7ô±æ^Æê©ÿÂ(ÑŸ8`‰·;×Q–o‹ÅýˆR†õ<³å'”7i#,wzbÄßë×mslIÀµj)ä,˜±àûn&ämÌãÝúÛ©þF®jþË. ìm÷ ,ˆ<^I¶£zÖÊ7£½~ÌÏcÅê°¬íƒ/åè.Úäº(꾫”º²cú&€¥¡çþ¤2 ?Z.s½ ÿ¿˜M‹Ê-yÄo.?„Ãݲ®u<ÍNRÖxI.ðc=sÀqδïR^Ó‚Fd‚#’¸3*€H‹ßÌ[+¼uaâQMG;&ý|U,_µ¬ÿîƒõ ±!°äS½{êÎZ¶¼Cò·Ï­±«cÿrŠ¶Ò *þýkàÓC˜ÊvøÃŒ¨FŽag‹NäF«žõ±Ä‘ªhy0QK›ƒa Gâ‘æˆá hŠÐ Ss,hå5ÉžAgn^«/³ æW™HC»}P}eŠâ‰5hØ?Äå‚n¾êPÑgð~¥VZ»qî‹_åýgÌ3iõ¥–~Az5"Т±òlSi©Iõƒ½›_ì[šBöŽh]û×Úú\°ÄldzØyÇ$LmÝ?’u,ZC. R¸ž\OC;›r`NÉÏç¦+] ù%ìÞûö›Äù Dò{÷¬gh*‹šc'‚X©)-8H‰¨o¶xob÷Biº*Ïéí¸€¦W~´<dº™ò­RZÆÍ9oýÞ WÏì×Ð 8°·]j ÆXÖNÁ¿þÐu19 anm«#ßm1”(ïÄE/ ‹ ` `–4ðgQ²I^ßn ªÿu·ìõ[¿‰âÉv§t1ºi]«€C%Ì$3•$ãpµ¶0`ûEò2‰ä"±”çu!§ÉÁa§L<Œí¥²IKtÔ_p-ñ˜ôí+ÚËûÍ­ö®9ˆTüÊF ÇM í¿ËÅSˆ¨„Ö­šqôÎ_Z§t¸P5~s4x9DXS”Ôèpµz6Ö?+Sí,.•9Œ é+Øø\ãrÝ¥ñ=À1…Ùy`ýq¦áϘÁÛ#DšS+ªEòÛY^…0R—vûZ¼6`Ç8qâýá[Êô4䩺_8¡ºId¾õwuH¸ßæ)vŽû=)ô=W÷IO¬ú ´õh£³È»s°RÛ“@“Ò”ëV¤ØûÎ ¯r?Øög\OdÎþŠ„Œ'°ÅN0;çвÜ~ÝWßVèÄ?ᯫ¼³™—-x¾qÑnŒ×¡ƒBŸ¥(Ë̱ßTZ"%×‡à’”¸FI¬È¶]UzA³Žú³wxƒ2ô·Y·?¯Þ¹˜OÊ îÈytÉPœK Ò!ø‰ÍU‘ñÌ#kï9”Ä+e}Œ¬f1‡·ŒRîò…!lúc×÷.¤Y/;Ä+ÌO¡z|ÄqãeûÓ¡‹ü·×øÚ.» À5'A×öV­yÀTr'ÞŸùaG÷ò¡iÔƒèpX2²£A+›Ù¦ÿƒ˜AATâ~ò\`B™+=[BÚaí„NÙ»Ž[&<Â}•]ë{EÐà‰$­™!å€ìàsã+á¹¹ëô»›®<˜šê=£Î툅RežÈTw§þðÖL™Óš÷Ÿ—퉨ÑcíרWgjâü²( £/¤;7¦Â|î è¨~:fé«T¸ä~įœ ê®=šÊë“¢$§!òrq\òNjT !ÉÓ~§ß…AH ŠR#s¹0ÌÕŒ Ûú"<öápvTgÕdóhG‚ŸtX‡5¸3ÃÅãä“C^ìw½9‚³DáFZtÛ4²‘Îý‡ñ “½nð¼{ƒSG6/etÔŸç=¬Œeï¶V<Õ¼sqô £–ÆÞ»ã߆™fÂ…lÞ%‚ê’õÿ#` {¯ ÙúY?çÆõÍsaDà$Æ“.áæ°¹"WŽ^Üø4q°­ÀW™ŽoŒÎ£Ur …=A¦«¬ãIŠÄ—µäŒX£ï!ÈÔ©îY¡/k¸"900Õ9@Pü%O|6ip@¢Æç à9DÊçÛ)”µwßæS³Æ]íǽ¸âƒ9ó65i°krËn\fV´•×è;¦mšÏ é*rìðœÜ¦‚)Ó2Ÿ*× G.‹µÞZA2&®¾ÒW sÅ+G6N$PrÏ,K §²Áe3ÝÇ!û|ÔAO“ØÝ¼rŠ~³ŽÉ‘³Ð÷€vë\‘çxÒ8ù½wiIUnüú ð×éÖ¶Zjü´cuòÒÏ— ëg¢³Lz³ áS‘Jù…aW;/L_1›7-D}ª“\jª¶•9s·|ª1‡s–NûÄœ6§p u›l[E~M½¸Ï´´Ë¸vã-ƒJeÓ Íʰö¨oÒa›ŸKNOÂ/ “ü·¶Ÿ‡cÀkä˜ÌZq¢‡"bÄæŒ —¡âº«"ƒSy•Ý;^aq ²Wœ3÷:>/ÜoC[鶇½HnþÖÞ[TÙË_ôÅZ(4ºŒ¶òm™Ön±6LËù)BwQäÜû 4Å@Z5[\8§ðÅ߉÷Ù= ъ׾f£ïmO;i8\.ÌПZ¯±_¦@ëæåsqn•­zâøî$ÆU³æÅÖC=Fiìz(È4ööÄ¥`DË6qÕúöÍæ–SH–÷©vÃ-“%J«Ÿ¯$¶ ©$ܧZ/ÛçÙtHuüË þ£‚{gUܹ%L`mê%€@ÇÙIíîÌ:ÆbˆÏ¼ýSŒÝŠzyš!kô?„âžiÜï5ýP™¶€ÜéZ•å÷QŠ”¿‘Þ…ÐíÛIèw/ðæ~á”;ùT€(™ï<¢S®R* ùÐ0ÂÓ°ÉÕÊbp¶™*·aV “âB?#8‡÷"ƒu ëÙ¼ÌéÐÝY‰˜‹fY‹–‡vÀÝL¥ûÅÞ$)ì >z÷î“¢æp&všO K1;I:¡Ž®¼†ž.´4Û÷,ËôE­”o5¨ƒ¿ßQ“¤K³CV埛¸Ž„GC X™7ÇpÖGœ{B_ýÇîµýsÄ]‘ Íe><æ<_qÚ?BcMrÞõT•{i«}Æ鄪Þ6Qwľi~ÛZƒ\q±ØÇiŒÀòœ`.×GÊY0(ºúR!Åo ySïŸÞHÙR´²ó9Y.n¨å›jæì¥œwåÈ´|c+Ʊ¡´’&1*¿ò»žÉÇ!í]ÕÁ¤”vÆœ®Pݾ ^¹(øÔÙRè¥p©ÇãEü†ÙL¨³“2²/,CÃÖÌÖÁ¬öÙp`a–[6E®2B[ï,µ®gNæ²±½_&¡ç'ü¿¼ƒ„ ){Í)â•É¾ë© IU'KóI«pÊÀ…ÀvÁžÐtARP)¦%ôWe8C ]Î#éD9jIùÙp§¶¬÷š ˜M”›µRNðú)Þ©ÄoVë½éf éòãå€Íøé¹êÏ<0æ–½Óäbü\Ÿyž5ÂÿäZiBÏßpŒ°¤eÐEçYnûA9ËlçÔ\kƒ!$Ø•HŒ#Ö4ÃãáîP\¨¤´:ާlÌ®¸—Ñ`ñ&ײ ’IßÖb ƒï©" rö@K¦6Û¦ˆ‡Öi’ Xn%Y³kÏ+ÒýªöuÛ]zÆõ›€Ü'%{Àzi¿¸i–S±’¼þ«ÂÓH툈'Ü/çà1éMN`ç.‘Ø-¾súm–¦V×úÇl²B¤4ɾÌ)«.©ùüÆð ÝÛÀãÖê™/ø«s^eÚùÙ‰_\LÊ?X¯fÖ 8„gßÌzM0Èðü^)¼AKðkQ!’„íE\šSW*ÙÙѦâùS¼õYÁ)‚‡VmKÐv묶4Z *Þï–åS(d*“ž\ºbÍ"!Öî(ÑPƒä­ùI+ÇÅëî¶í*^(ðýŠ;T5õ`áÛï¯DóÚ÷sa!ÞÝ^œJëç7UbZÑiËBþа€à ÔJžeŒÖ7ÑafØqiKV¯Y(·ÒlÃ`#8ÇOñ;kà-ü»ÛoÙmÃÛ½‚ŸÚreè¬ð® Ç ŽRú£Qg¤ÇÀÇá‘òV 4ÿZr‘Úq6’šµ6ôÖ(PÅ×"á<õº(n$ì½P„7ÚÚ símoBñ-h–±ÈÙ9k$pR*йÀfáR|½“…_Æœòk¨â¦¯ÓdÌÌVäñz;[Íÿ ×`ûBMÞga××"Û‚þ4Û¢NJ®Ÿ¯À$–iÛjD™¤;´ž ÇøÑÇ=“‡kÆWX¦‰ho?&;ÀÈ6we¢‡³ðiIÐ%ZƒÂså‹ÇSº©MÚ„óÀ´â™0°Yk„mqâ-|2Ýj%¯îvèË=PM-%Q.òÏ¡};äꎧåºÅŸ§;H ¦}NÃ+ ‡êÌ ¤NŒ:¿LÁƒ$_s<mº yÈDEM”=Ê»¥nò†Ãbí-l4õÈimÇ`™ÅT}ÀÏ¥€oøÈfž²Þ„·ΕE /ÕÚ5–>Ÿ!”Á´†Bòó• E!Á Ý ü ‘UKiúùïz€úN«£»Tl5wèzÞ“Ôãû´‹ëç¨æhÀµLjçqw>†‡\¤üÆG]7x0¸#JŠUÔDÒ;_!(9Q¶ÆôwuËÕž~½r4ØäYmÚŸ67ç6./ƒä zßëŒß§lêÀj*ÛrçË’ªÇ&¼¨õ7Ú~w?ÇüºÀ5'3}ÈÖ$€Õaê«Wp¾×c³DÆ QòVh·ˆbQUòœ¦Ö«ãOtÞv¶­² ¬æá¾1[`ªÉ3"kÌå2$¼P@»wÒˆÕkÑTókM©G)Œârîhë Ø!ø¹•‚c[Ã!ÂÅÜ/:ò‰fKÍ.ŸßçB;¦'‰ŠNT⿦¼ô"ɤ¤kËBx†pH¥Ä‰¶²(“îBœßHª‹c›Oõh}Ô5àîéW70ÛçømDúeaòÓ+­¦]¿ ë©ÞóÆ?¡×‡i ÊZ^ü%蟔)d¯r‡…ª:¿Z ¨ß/pó[ÜîÚëQMDPÚ x7ÿ7huc‡ÅÕßå¢63‰ª´âÙ¿O'ájþJÃX5ëF›HWQ—. ”p'¼ªCAJÆÔBÉïr³¨êIV ZÃðÏŒjc¿8§cò aYÑUó&{V1äËp8KZ»e…( ®~ïÆ\}(½Ê-2O^žMÍàì;º›võx˶XQ&õ0+r­Uw<|¯ci —NqG_×Çi ¤Hd ¤À¢ä cá9*‰Ù£jü, `²†É~‰O©aTô¶ÜO"phfg˜—(&ô‡b¹[‡`F)³âÌšMLç?PïÐ$‘zðzÉî‰H™¼.=Eòµ[ Z²©oèl™Ñs59Áð:­Ó‡Úu@úðpùGìdçIC}ÿÌÈÖxM‹Ív”䵤ÖåòÖïÛ&D¹ž~T,»nP”I{Á•6^€¥”é J‹OÈ{VWðÿ"w|mΣ{8îSä)ðLïhYÎðÍXv7ª¾—8i–ˆ¡á²»¼žñʰ#òöú°îi?8T–C§aJ½3‚º«Î ¤ä·“X_ôÏg íŽö2õŒŸÉ©Žä¢t?z5ÇL…K<7`c"ûÿñJró¶ØÁ ä딡/R Ç$Ë€\ž(1ÓM&ÅüN¤Gfk‚èNÆEM?#3•G¾¼«2ï>5—ƒ³RT­Ð  áKwÊDJ}qSï¥e)p¥Éö$añãB-x2c×ix¹!ªñH˨±HÑçÓJõº¥Ý.cLˆ%ŒƒÐØ{„ŒbÝw8 IW ¦[­*ÍrÍé7U`¨¢^ÜR)!T¬ú[Âã‡¥ß %Ý“Ònâ µUâE Ú|ˆº´ {#SLâüÑë;ý—ä4›ç}˜u¦á-–$”¼«Xª¥mø*¨'­¶L\ÿèi^4×/ˆ¢¿n‹ƒ±6´ÿð%k¡ŽAf7[Ðá‹·'n‘žœÀr3´ŸüqÜfòú‘í0Ÿ­õÍ•néî5¸®’yùÇÅ.pã‡!Fb¢üõw.¨Ýƒ"l%Ã&CC«—Ù¨ˆÌ€´/ÌÃVÀªó'}Þð3æµaùñ €xASö÷/€ñ×™‚«h ûYjð \}cˆø[“<Ý댒Ùs„õŸ7¼ìŒ†žÖ>ÀO¢«àF£®—U~€T±É;L,ãKûãÂ.+›2£üäBQ›OCÊÂL#¯£!ÊîÒ¢<¶lÓÉËM˜È‘¹§òŠÜRGöy&Ã>°5J}[1]Ÿ¯ÛO Gl ¦ó#‘°zèZ£í¢¯¾9ˆ`%WªŠ¶IÈ“Q‘rÚjÌÀ¦ðð4qa§‚uu ¹—›æ€´³ÕÖ6àà]J°¿õ§ˆ±¾ŠBF©ŽØ* §#ÏÝøvÐÍ/º ÂÖ!jû-¨Ÿ+˜b¡$E6ç‘FUcUSíéÌÒ}èΨaMQ…Ð-êØÿ7—AGjXƒÄ†„:ÛÈCŒüu—ûq—ƒñ¼ÆqÅÝÆl 7ä×G¾Áp”!ðÉÚê‹!Ç¡Ýè¼íúeü®ñºpºû,•ÄdOtŽ÷ªSI‹ì19*‡¥—!›v…þ$`¥ß¯¸èLtdÝZï jƒÖiÉCÇ8÷÷…C~Ôù.®¯>¤ê¼œ,eœ8®œd5ÇÓàíQÀ ?É::öÇοO©çØAÃÚn)rÑ”sØ8ƒ-(Wþ/ò‹G¾HBùg»q¢¥©eèxr`\¶ Ñ)À«‘ÛIÞâ—ÑÙЭ÷l~œKÃPµª-® é¼I”¬¢lâѱ٧—«éÅŽsÁKœ=kó =CZ?÷JZéÒžÀ©ƒwºt;úô›hC7WñÉ<µ{JvWˆºýù-YWS¤ƒ´…L[¾6‹‡?øùp6›vÜÁJã©ÞŽWœöeþ@tâò| ¡´n¸Ÿñäíº“žBù=¹uí›ðNˆî¹ÉT¦¶0-,¯ãp›3|'ñ“R\ c]º})iVCª5W*»]z$Ú±oÙДTÅ6¬0)žÒ«—’N4»[”_ÒXó&¦½?p²€ç[8×IOö>ýO|=©‹%¸ÙÓU¾,e{“ìÁ\Ì‚„œ\ê–ô$q¬[CE¸Kàï¶óN‰¼’'Éf :%?ÀnëÑã­mì0=»]äi·“:ûð¿jT»qk•#\’…CnXhçVx'ºpwFã[¶"¹>:¿¸aétDVÆì^°Î ‹{žÅ’ð—i)­lapžö¨‰™þ±TlÒÉ¾Ì JÐE¡W,F‰C®]ØÔŒZß°’—¯XÒ%Y¿¦ìJÝÔ[àê,³U¥ ó í4™½€p²ƒÎpnüZ²)UTúìÿ85eܲ¥–¶`ñÅ"Ïm7çLRL÷ÈIü#Új]µ’ÙÈAÇ…”ï|Œhü»r-bQÃØ°Õ3Lõ‹%IÍu51}Z3Ñ–÷Äšl+ØW±ö‡†M¦W, ™˜ +´îRj.®$fÆ@ËI '°½´E¥Ùµéïö“Ò>ìG½%{`¨Cªj05Óº`I£¹¨(Z,DÜ6Â6'/ísKDí>Yçi ùí¯ÐÓàR0^[‰FEÞ¯r)¥NHkY†Ð©nöÖœ;wä‹.1ìò5Y5¬¶£nkkLšÛ`XA³ò¬p^ÏïÆ+Ñ"Œr\¦Á7Iö:ð–©ÓòºËÐf ŠðNŒà1YZQi×·ýÈ øÄ¯UœƆ,†%úŒ©ƒñ*û0 ’F2¡WEÙ&¡Í³¶f£‚ )ÕÃZ¨¥ƒƒ ™mÜt©{—½ŒÎ;Rc§Œy¸¡•Œ®áYŽ Jå …‡*® 0¹euPDÝXÍš…8Ìä¤ÏªLÊÕCÛçðig¬WÒ^M-„²p”žOU• ˆt©ÎëaÔnJ.ÈuÉõÝÆôYjH_«ÝµaÑDAÇ]w¤´ÏKäÄxÙbåo¥à³‡6®Ðʲ`ƒË®¹8ò†ê‘Ní8ÒèeöÕzœYcF6²h{@±r™&z c‰°¨Î0åî6ŒõA†ž:éÌ{` ;f¶Ëq¤¥$ý˜³Ù¥~¹-¡jË{qü„-h ¼4‡ÈŒfï1×-½6hÂ…±lÜm…5ÈŸÞÝÿxÿ»0‚TrËpœxk ï?¿xû(wcnEÒ$³…ª_éîÇYO9ÊÁ2âÚ‰æÓ°1ÈìûZÖT(m\,-Žóƒ $:µ·´’jU–Öà¤g^éËBšr¨Æ~ÀšÑŸ+“R®v èÚÁIŒº¦BѶÇP¨m7,ÀèKʆ'‘O½‹OŒg[²´û†×·È®F¸ Y~ Fû±í)•ï½À³T<رÙFýç,hh¤VÖøiˆª$ÑÓª¨†¨JÖ’ ‘.¯4¹/<4 WÁ’žš¹k!þB–‰ì0¡ÿç¦Û®&íGmH­Ê³ãâÛÈ{¶dcx¨ à–é‡õ{’Éô¨Í>;a€§çé¥z6Ô^êȹ¶ëâ†üŠ}Ó9¡ò«jüB·Ò4x Qn%Th’¸Ô§õ=£¼„¤° {è°”Ï⮚þxQð*-UIÝÜö#»åÒ!`Kà¥[5?a5h–cÌ@@½¥¶`0 m¶ð½rö'þ±^hñ°KÜ@µLL&ĉû“G„y³ŠY‘Šåbî2Ù1* µ®¯kô²°¯áµ£ZnŸ¢D‰]³Úx˜ñ>•1þœ»´°æeíÄÆµgüê(¥ï ¢H™S/PÉÍoç,Gú 2òSöt˜÷×nd]Á¯Ñ"®k‚xáF‹?†s%±¶ûdѹKì–~döì:c¯sO9ÖM~²ÄÉþ1dsnk³Õ²ÒF_KyL …Çbˆ-‡¤ÑHýÕ7!¸Q&þX#W»I‘ýó3&ß;$€àŽS!]ëQ6Î «Æ@ª*gi¬7‰Œ‡V®!{YÆèû ÜlÜù ¸å„þ¬‘ë§K>á¾ì ?¤O£@»Æiöbìð±k¼ôŸ8þ“>ê½Ù'pôÞýüØDYmÀ•ù'Y]p¸£éu”³:3hŸH|ûzls¾Äb5hÝÏ£˜Eaë(UQ¯Þ58ë‚V½;¥lÓ¤©È=AKÚ[y&(þZ ‰M3ëyv¯êjº›ËLòî©ê3vO•Î#]ìI(å`õ)µ "aéZÄô(ÅñÈczj‡âM*l»"ªȪ°F¯3‰¾?û]lÙ˜C[Z÷Ú™¿;{ O Oâcé×(t®! ŠJç²Þêî6Ï5‰›uÝbsÜPŒw–‚<¬‚×o3YøÏiÜ$ÿvE98¦¬‹¼*Ýò'ɺú*ú«C™z“3ö¤–b†ç˜A/¿¼Ä8éeí!:¥ÊdÜžaÔQÑC°Rß>Íîý&B½Ó~㟊#Õô¸÷ßm5¢úûÒˆåU$rICLtóJB&gêôR¶+Ú`éÀŽšr9]|Jiý*Õ¸ f°H› yb±1þ¾vA‡tÔª=¼G´¾š¡ØôÆ#´LþØf0qM¶_^ãƒûXß" B<ˆ>÷nÝ`Å OÊÆÀ°NMt fzòtÍÍVÏOꧨr×Éw¡D,}-­ñMxë5çs™|SÿtÛ0ñ”>!æäxr4KÕÙµ r¼ßbwøžå÷T™uêr9²V¢ó쎮¨´ÒÝYíEcCë§þîÐÖG „OÃôbZÏÛ­o½:7{ô ¯ðˆq«;\¤è8_û1v© ~ÎÒƒ‘:ÔÅpåp¢ÍŽ ^M°°‰™vê$Ì\ç?–¨ÍÓŽš¹tßîø„(š±é÷,ÑAz¸cÂa_ÿèÕõSv@öA[Yä ·= Ýu¹¸x¬­È«á"e:ôÜdÅѵͅE)Õ \´69•äLÔÜY"FD»V5á[)Ó‘“-ytŒ© ~ì*ãäq£&LóÐé&ž¥~Z8z®…­ \ºýƒ„C†•=y°¬ó‡˜ ¨‘ d÷dÈŸ¼E²q*ÅÞøcóÈkÐN?Õ†8¼ïƒ-Œ0ÉßÈ0sÂ8›m()¥.’y¾˜f¨Ö#xг|àœé,¿Ð¤`’¿Ë«þÒ×Hª©ú MD޶Îc«FkØÿPÎwv$1+ä3n~ÁTóôüÖ¾áAº°]·q! ¡`æ³*€¼•¸hkS%¸áªAø§â&n¬Ùµ‘$ªÝ{–;—ß)à—Ü+ÜG@e`ò¸ÚÍN9 ±O¹a&ë—‘äfK$Îäê ëÅÿª_8·o5NI—ªB €51EF ÉJ*\ ÇrTò:ÇÚÏ‹HÁJ…'­Ø6i-<ðˆ’ÇžcÌ ì¢›˜ÃW7LÿÊ vû3—m| ŽìK$,`³ÖÀfDÜ0(ÀIš<¿A›JÕ ¦h©ÖwÚ GÐBD]ÃIšxíÚÔ=Ôa,¤Ôqå¤N ¾ @®âµÆuÛu<¹"&86ûVyO 8;LRŠ€èœ±‰¼Igþk„5êÏx²$å¾çPnlP±#Á‚QWQƒ‹p…þó=1“á¥v2Yü¶:ä%Ií¡í s640 .ER¶UãŽæD—DDÚšB?é¶D 't||žX\;È»‘ˬ3P%KfBv+7ÇÄèÊ”93Zf ^»Ê\{+F:&°‡;}ÊyO¢š*}FJ‰¼ˆ‹–›qÚ«’¬I·iö®¾ç¸€èòG0zåYƕܯ_»\£j{©+Ÿ0þÖkÙ)‘2ëè$zS×ÀqÓå1c@ƒáäJwíG¯{•4âÒPƒ7¤â7>k„ê4™X ½1Ï™ÞGÌ4>ç¬]yV†ÿm9Fö§¢´á8Žj6a;Р錯VCO°øÖAÜXôu£‚²Oᄹ°bØÚXuÒ’„y™œÀÊû ëÕ¯ÄËôÑÒóxy¡wÑëQk ‡Nª¥¥?´ ã7Sâé“a‡äÞQHhrG ¿TÆt[C†Õh[§¦%û[¢Î›)u‹m¥#¸•Ö|Ó˜ßMîi)d8ç ¾8t&ÇÖVÒv.ZË©„m.úŽI@t¡Gs¼Ê¯ü² ‚×÷(©Íî¹ÄÇ1çtO”Wõµuë‹ ÒYÀ [6\ª5I Q[´¢áíµÚ²ÖA§_6B7VÊô£¶ÔµR^¡L|f›ÛbU?šµÑà7ÖÚÙš=pmä›#N ¬cÛöí׊}âÜhþÓÞ¹²u†àF·ë);ÀKfŒ\d¼¾þœýýHiÖ$»ˆEª¸ªÚÙ±‚^ƒÆ¿'–Õ›}  §Õ@|:\Þâ«tTáWöA›{iûÑUkþpRµJ+‚êðÈ¡¡a´šäËq«>ü÷¾5™YMÚkÇ 6E9úoú-stÜ$½†ºù¾®[¥¤®Mî2üfHRos&,ç)7ØÛ 4ª‘²0t_Jg‘N€°HdŽÍŠŽ@¹ êër¯ CB/f㥑–*t›•Gà•wB1…îTNsÑT”ѱŕóbët%§s#ØIÛΉã•õÎÿ?$‰d `å)«€[“aH¤îËgëó›“x¼ø¢-é`„×¢ÐD{~UÁ ŽmªeM–Îö½ÐEä Ø…4=mïSWñ¯……ÏÍm#Ùý X‚Tša ya€¬„.:6ÚŒµåù^CØ•@qß º¬£–#,YàØÈ†›ØrA±$TVÉö÷Dg(¡¬!Ô¨8ß…–à ˜­ÈˆzTÏÈa~¯/ëf¼1Ð*“­¤ÌX(ÌÖêU<1WøÇ$Ìoc—2·Œö¶?Ñî‚;œuð2àY<ÊwuÿçÁae6ô[š^)…9ãC6ü§²±Óö(]ìõU*y¸‚N+{ Ÿó›=AðS>©×ê× en bPaè(#_-cc*Ý€Œ&‘Û¡ÇQ³xùÓ(èAÓ”( äÙ!ò,ôUk› ]jô>,bæº4õ°@&‰a¾Ví‰ؼçx›ä <Ÿ!FûÙŒmj‡ÎaöP|´oôPGm¨®dSˆNîGÍ…f³êUË­r% ¡ž–k¿Â=Ÿ§=Ô5~=Sù'c#©9Ég²°Ì³ÄZè=Èà(¼ÂýC)*¿qZªPpÓJ”X·Åú17ïäœÅ¾Í*a]dÆý¾ÆÜaõÖã©fðþ™ìbUa#ƒô|üʺ:eÒû0’ÂÑÑoéŽtY4 †ÚVìƒöoY£~­Õ#%µAá¹]‘¥‘à8Ò ¸/j­öÌÊ#fžeP´<‘`sõ<þéÜ]Ȇ&$·=[Ã15ËrVj~døÞÃí¶ñ.#òZ¯l; x×¥3¼ñýžOí ¸î•<7¨#ŒæÿCÙ·àð¤¤d¥òþ½CûoÖüÊA•Öù³Vö·]˸êj ÿPåvߦÛÍ×dtɲ;ê¥Ðþqc­ma-T&¦]ó^¿¶ÛQ¯Ó§¯'Ê<ªÜF¾Fu~¡YØ@eSx¦(‘>‹ž Kv×/v>Œó„õÏeØ©ï­tïÊüÂ`R4$WEýËü¦ Õ‹É<9—2YúÖŽ˜V¢ëd’[^ÿ̺ÉÜ5 AÊgtt‡l Na`T¿ò=sþë†y³²ÒûѪѫ°àZ„c ­d¿ÿL¹³Š''uëÒÓHbÈO,Ž>¤a’‘u¹Í†ƒ²ƒÌüž€qF³› Bš€ÂÆOßpQn~w:áõOHÆ}i·ê`˜®Øûƒ—zÆ¢ ê!)}²ΑIКî) àŒcú»éÁîÆñ${÷Ä»àÅ.0êsc¤v–£1ŠoØã/#Ús, ÁyÈ-ùçbØ`¾LK¬4ýX e–œ!þcïmbss½•'“ Þâfß6Kš‹óôÆ…ùK?Âáæ{\.êÚ»÷ éݹ±¯¤¡=ŸÀA,+åš»gQM- 0«G}(=áÐg}Æ“<<õ*ˆ–zåìÒ.´Ÿ Y*3—°¶­gÒl.¶ŽôGäLÈ¿<ìú6S¤µÿÇ}kÍ€ê¥Ä€lgîÏib5‚Í~´>I@Tšt&¾ÝÖ mÛW@%)©ºdp‡¥o–Z“QkÏ.'«#~+ŸaÌ‰ÕÆËogÑB¾èšøšVÿMÂie{ð¿Wñý{êÂzóûè[óÿñUf¬)N#õ`BWK·­88îæÌ  ÁÝÏqz’a¤íV¥ºy¯(6ÓÂ*Gq³ð…ƒ,ݰ–T ¦>¹P3Ðö Fâ\˜yß÷bÒÿc—øuù¦)ƒ„T;u[JÜ=ݹ1݈¢È·K™”!cÈÙ<aBÄ1Vö¤èâ­;Ò‘4›«Sš¨ü<ð+¸÷+ÇË•:¿'ÎqÊchCNÕßZMû'²¨Pb¹ 1¿²Ü»%êjP’$Ï#¢Œ\ô¬•HàCBa žŸ7Ò……¶Õ‘cí^?j¿)â ‹•/-*Œu+x¬ˆ(Fb%z^!ƒ€Ó]5flé,7Ê7ÁÚgv€¾cöyîMñUξlÝɳç¶sH‹Ë’*×ñ$-ÙO—‘Bmf¢ºAÅcÉžWeGÍ%â Å«ì"›C6…Ût–j³¸-ÏI¨Ù…ÈŽ 1À'o¹ž_³I¾%œÕé´[GÞ¼‡Œ|[Lˆëàqíÿ.$éÝZ´Ià èE’OÔTög“k2Pç1[‡”OròVfà'Ë–Y™Šµ„ˆ¶%+Õï]Ãa—Ë ¿ˆþS>úШ=t#¹Š%5ªG·é¥C­]Ç¡Àà;qÝÊÅ[–v ÿ/ÔÜŽù»n\D„¦^òRŒÓL«¿ßh°ÝéOï:IOòâ̱È-9i§Êòî_e5*E[h))*ÀªdV‘°¥¦]ð|ˆB&ŠñÍá&XסٗVëõxUÿä"]­>wZü÷ê’¿Í7ƒÂ_e…A®”Ò_^x¿S¶Ó ÁÕ@åE©¥ä˜Iú^®£ ñùZLM˜D9•¶ÿ„×t†e@ÃdrøÞb®JX£š:ËBņ9'ëX(ç_V´¢‡ö:™ˆJamwà_KÐêÕö‘¦'wãºK(@†»ÎêÞƒ93ä ¡4#Ã`ž†Æ‚Êíünç*M—ñ,lý‰©8lñ¦}Àm_”ƒÜD wrv®ÞŽð‰^—¶¹ &`™¢§’70±³©AC/™ùšÄQ§es8‘&à/EdU&ç­8uüu]½éܹ‹çÆNguÂñ3êg=ŒOzb!ïðؑϓ”‹ù_ˆß1Q°àILô!d®^óæ5³'àâ§üŽõ~º1µt>ëè©àßRUNâ-Iä ¹kS[ú±ÒwD¾èÉw/¹˜‘ÐÆ’"þY·’Æ•à‚ßWøh‹ÔõdxX­CDïкbô8à#PFÔð"±Û«gGòûe'`¥à‹ô[,w.©¡^vtqîÂÕû2;ÐyY»¥Û¦»"ðz;Ñr.0ö†'€öêicíBKõPóʶ4ì¤UœG%‘ÃÉÕNÄF.n¹$`J]%æüÌ^hžùÏxê²aeº+Ûé¹Â!OwãQu7œ#s¯˜.AYÿ/æUoÃeÅ`Êáñ£K[¾ Hz škkFØ~äÍþqHïu ýZG|Äã k ÒiÝífjE[Ó(©m‹>¤8P>é|m°#¶õ¶Ö£»fˆ6Ùó_o]4 s!¤ÍZ/ùB½R‡Ó·eq½ÙÀOÿ¾ãêkï'á¶ëVaâúE"ÔI ÒiîåÛ}q…Ê2òQ„ݮƌ©éèÁñ6Ù8Û.èåÿráþ¶lµ®qCë¦A’¼&ÛžEeìv¡†¨¬ïsw­m’yü‘”â„fÎf|8gìWd÷íÜU즊ÁŒÅ1Zp¹ŽqÏ'Q˜ôÛbvë½.7Øk ÆjÅ¥~Æ ÷€]®¥„,-€Ç2ÁîŽ8ÙYòÇw¡‰$®‚:ð亊cÝG¯Õ{6ÝB†"ï$òyÍi´ôá̈ç=ŠýçdþÈAFÎ’SßO‰é¢}æH¯`5CF¨TZˆ3|‰Ú*,¿Ø2“˜ á ˆ5+æcÎ×Å*š/ÌÕçÄý:?ø¿ÜÝ–g¼‰s .öËéx¬›ÔË”²368àbYý¿yQéí¹3>PQɲe§œx0 ïBîBó¾_´­ˆ³¢¶rû+Óá߸ëÇ£Ò´Y£»T­LU´£Âý²˜tc`ë~ò­\™{y¸›ÙD¡éÉCç6_ˆwBMÀ(ߨ‘‚ø›/æ:AX[æà™DˆQ¹½Nn%#ç$»Mp;ÆÌÜ CÏÉL²USv©Qd_ŠØ–-QZÏgÐ6Í…Ôÿ*Ý–¼RüYJ«o[2Œ ãa†­q¢ ÂE`öv¤ÙW=ˆ‚¼[ÆËöÚF‡ µ)l/¹S)rÒ’-–GÎÔ}£# ÁFÏTL¤Š9"#÷_©?…ÆVcRw¸?û0Äœ ‹ódï\tçíÜCæ…Þžn–§§Cè©0_„u—¥°ÅCx•Ùs©ÀŒ+çR» 'îž”^ë"®4D¦ð0´êGdLSl§fN¾ðh ¦÷w^s À–Ú»+վʣ]k€Õò(í¬ñ6pÅDúŠJ{ƒ !žÓà©î¾/²>³ raþj@-Ÿ/·›í#qï~/dðQ4or†kÉÉåÊP„›A}b&‚¯©zÂç¹N2÷åþãS#ïÍ! )þöýjïSAeÓûæ«*Ü›P­†û€ ;ÆÑ2P¤eo¼|HôRÙdñ×nk 'xÖÞV¨ã‰ï»Ç«¢BZÎ+nÀB¿þVYÈQoš0Ü¥ß åÅÄâ1Áª¡g–ô‰º½E·ˆÓx0›Ž'‡"ZóM(uÔæè>Ú~Äh…^¯c;¬=ÊpèkGâ&%þÈó*;¥¹Üã¹á%Ô•fw“—Nhdžˆ7m”RšW92ìshUÇxë¾vÅUí{ ÞsáÓÔa¯BÛ·!äÿ)SO}&¸ñ”4Í™~;ãYœ „ ‘ñ·¾²ÞX}eL“¸¸S4³z¶fôF`n²N8g/á/ Òé8>£Þ@÷^»WlØ)Üþž¹6qØîi ÔE#ªM•râƒðu¡U•Õ¼–!úK&ŸX,jІó‡ÄS¹= ÚCÊ3¯Å»UæG¦~ͲðOÉgF£?ÃRûíA¯Ê ®´çÍí×–%C¢Aš7¤!¸Â‹l#ub¸ksZ§¢¨á^µ€¸È9QµP´O•!Åfwýg[›üP”ÛêBÌ8÷‡=)ÌÝãú}·a~F—ä¼6Þ¯×,ì‚dœêOÒýóR±(,ãZÏÂJ?æ!†¬‚΋þ«›P`ˆÛœØ×(¸Î*z)<°,Éæ¦kîîm€dì`Ef9Ôœ[7eAí§¬É ?yŸB3 S“H¯¤Ö)~Û´â,„\g‹&¢§Ú)œY ”Ÿ8O$z+[òiˆ·gÀÁÿŽâ/•¯f»7{Û0ù~kA½­áz?ÚyŸ@õAañ·G¹E€u%ÿ^Kßù£H|Ê:KQ²…´Ï݈t}¼Q¡Ô·¤ÙñvÁ‘Fjd Ç t½3é¹&äÈ@½üÍ ²«Ù¤Œ÷…ÁÛ:üIVZ­‘_¬"‹›sV(ÎaOP"·¼Ž›ýô¥VgÚžD‘˾1{N1ÐÞ[쇕pªõ”!-Ô {ëÁ•Yh,§Õºf'yU¯=Ò^X.#r˜{m¿Éøj5¢ÿ§¨Žé‡ûL]ÑÀòµÓ·5|mã½ð¡µžaMfL)Ý·ÏÅÕ\6doâÀ-ŽÕ3Ü…ùÚ]%óº­"tÉqs–hÕšh€²ÇWw±î †4u@©sĽ¤0jlth¾‚A€Õ8¶s묋@bÅo>wKìæ}ß­)~Ãþ¯债)¿ÔµÈí^};‡!ÄÓŽ† EWäqãÍ‚¿»Ñ=’eÕýE>Ø÷]MàC2oq |øTÂÖþsb!`-„•|KÖ¾î}Û—T…÷­“ —¯–;>À%6qA·@Õî3c=|6 ªmrh7ô>¬gìýo¬®3aõLÐ7¿‚ÿ Õôà’ÌLËpz`PwÌ(® b[4èê]* àñ_¡qÌÍê:T…‡Â©|;ïz=òï<¤u½ÀÉD¸MºÆš`ˆÇÑÚÅñ÷Nï…/{¨­U¸hà€Gê=ݠаìº8“.aÇ6ا5ÕÀó dÈriŽæŒbD¼o„/ý”@¤ `ZL1È ¡uÐï[¿ï#yöIÉ-œ¯”£§j߀”c.îcÁt²þU=ƒË"±è^Âð”«ÔˆÂ{'Èç´cãΟfŠÓ~Œ¢}œæò’ ‰îÁ¶1tb[ª×Úsìën€}be{³tíÂþTl7ý5›hÞF%©j· ”:B¡ŸºÝ©j ‚ž€Ãýs°õ!?KÁýN¡Ó¦#cCºyåØóéŸrŸàÝ–½Ò¡ ×(ÑQO!ŠpGTpy+ÞóýF÷9§hv† ™Ýé3wù…+CȯGDGE’qì¤*£râÉ)Kt¸¨°Q⃠?Ÿ›ð鳓`MA‘Ú žò§†Ófd—›{ƒ‰œ3[ÿag¥L0ñ"K%oÜiK-ÙŸt™`ðVÿ)D8m˜§Œìá÷(pOõÒgÔÆÝhîWòÉãÛÎ;jx¥vìbtf¤¥<ìté K扜aŠ;ºoËÊ䉋“:¤ÁA þM¾~DÕ „3vÎ!$ªHJæÒåFŒ1HÍZšë§ˆZ¯2æ\§ÁbÂ[¸æÃ£—,m´º¨'VPþ(Móë1¼øOÌGG¨Gmç° " Æ>Ž “¦±‡7ÜE°û4GŒ@xýå@º¦rć3pà ¶Ë¡ú”Ÿ!.qìÞqyd ðØÔ»t‘S»X ­ ¦7•ÄÆ®€¾ïPvÙ±-íîS$ryêmu[¶Gj+m{ÎÒ±$0KìBÍobaè˜ûáèªáÈüËdüÇõ|à"ËÜæŽ'?|®aa¥@[S²­‚7!íк”µÓ)ÕKǰ\÷ûïh¥X !vAU¼Níñ€ xëÕ‹8•é]fñ‡]CüHGþ†Ö…¿’ k1Ûn¸À“ßxˆ@ ã¦ËmÞ QÞWl^X{²'7ó ³¦°¢i!¤žrÃû€q:ž–n<©1`“d´‘ðÂúÕÖÓÖ“ ínbÝ·I‰% ©9FϨY…Œp(ÁÒµéZÉîãQ%ê4Bj¾ ÿÜø©¡‰„¨YðSã|NO /Â91Ø­¦ÚÆnâ˜)Š ˆ\¸À{¡<ägrîJ´‰˜´74`¶:Œ!?6å³=Û'uf—ˆÁk¿>ŽxJ'1àüi[˜¨0Ö1é¨Óz­8Z'B;qÊIp \DÚÏ tM½Ï<Ö "½þÏŠ¥Â ÿ줎#xœ àþéÝS>¦·{æ0§ð”`”íq»«zú®|¢ÆÊßiX4ÔÌÓ¯u”ØOßuNÕ¾[÷ÒàAùÇz”Xœ“ÅÄw« m‰˜¶/`’‹ºUw‘±ï X°eùÚ&~ƒDG§ÎE¯É[ƼâN.¢PyÞõÌñÀñÎ6,ɧõˆ\P!<ߦß΀½^[]¨ëŒýÙŽZŠð2´,N÷´„á¾Õ’T™¢S2quíŽ,ÖÐÙŠ¿¨Ą̀„ÜcìwošcCašú};PP±gºÏ^ÓqM¼@I2ß~5]zÂ>#zj…Íz`Èã³µb1ãl@uJ“œ©*üÆòÉ—/Næ1{©hÏ%© õ“<Û`Ð\Âu>"Ã1/F©bÌ»¯…þQ9ÿ› ñ‰­À'ºac))åM°±2¯$ÍÔk>ôK,é‘_d­–=ëI©`¿eù,TÌ.†½™ŒgoV3Ôç”dû̉•áNìmZ€’â3ÛŽyŠBDa«­¦õÈO2'•žr7JœŸš—ù‘ Åì ˆ2’œ¸a©mx¶TA~ÜVÙ²ˆ¤?z —ЃÓ[ÆY±°Ô®Á£³ï³pžÖFqlòöXíJ;Â8M¾øJüáÓ-ZqyÐ%˜ŸˆWT²Ås€\bO,P[°}é€R ’mnB0c+û—/V_y‰pf•t;‘ø3j…[Òð¢øF- äŃ$þYÙW=Ñ¡ù²F¥}ðÅMª 'µ;iº[ȉ[«§_.cDö\S^É òªoqƒIX¹ûàÌr¹ª¿>Ç ß¾né¯1OŸ6ú.5×>ëü0tO¤]HT|ca4ªI¥Î©ä0ê­c8ìÌ,׆S.†qz ´³¯­FjCÆ<æ)`5ï…ÍœLBgXVp,ž®ÖÎâMÃzóFneø´ÿ7<¸›E%ËMRE# –q4ûfïèèJD˜}.êi&W6H"%‡@ìØ± ™ÄÈïíkœÃLváÀÒàñ‚zÖeäÆlÎɳHF¿7¤ŸyèQãÌ'´ g“`µ3Ytӄ̘oÍbUS®Û¾\£ÝçïUSlF­ Kk±Á` U?›ý¥’rwÎUÀmã0¦ñyž¢¤G(ù¾*o÷3E0—qEÏZ5ëˆ\à~±@íF}–Q.„6ퟲVÙ´»Üb;ݦ47A!Cíç$ûjáH¾é^õ$YM*ÈÄž£Å‚‚[¾Úe*[bêzÚ?/ƒF&.šÍŒÚ~žÔQyÝNZ¡BMÈ;¡ØËÄh›¸$}Ù3eÊMÞð>åñiZ.cb‰T¿vWøÊiùX„¯ÌÀãF‘{@å¢é2½ÙfÍÞ…}é=UÇé§À:r^ð‡¡í´xE ûu*Ähñ8Á5#;œZêojÄS¸±ÒÍ3›#ÌA-`§ûÞf/MC¥ý-îù&熚x¼a2ß´ P<ð…ù®…p [Ïê¡J¸ Ð¾´(¨Á ]F“µ.P¾TþÍG“[1y¼ø5HmXbÙ†jICD~qÝÄ3F·EøhÞÚz†åõF]ƒëÑe‚W|.°¾b l)È”@ ÿU6ؽs€dÕ$- Ó»/YÉÊ,ò+°h×¢W²Lõˆ?£}ijXÃÚ4ñ²–É\,Ÿ˜€¸ž+ˆôs䕳 †Fý>:m¿´ýWšo“H‹¬‹lo\zûä0-³íæ©d0àX6¦Ñžì/(J•€ ±¯ð®vv÷¬wTØäG´æjý{@ uBÜMø“~¡5醂J{¦ø÷w³u°ç‚÷¤Gº¯r ¶þé̶àÈÆ1ëa®åPHzáQvyu£'’%Õ\¤׸“99/ Øèsãó’÷UP„^H‘#Àoê›°2;`ˆ+ ô=7£$ãÆt·äM:±öÝ2ÏžqWf¶ HZœe©ÉŸÝZ.³l€]Õ¶ÎH¼wо Fqù»¢üΣÏüw>5(ˆ4…?‚xþu=0/üÀ¹­÷°c¨p`¥ø›ûˆ|ëÏ…ƒç¢PdËÑßЃsLªÀñ|A®§§/Ž &pÇãèHÌÑ¥+QEÛ¥ÆtHwô•ujD t>p7ÍP@0p=å41'sÝÄu—NÌöGhœjúEEÜb:Úº\øUt°aŒm¢FNs¤¥]/Œ×ú°Aå-<ã—`Q‰|C0(4¹qK¶V4Ï ë6'B=ý‚N‰ë¹mÓ½¯qq¤ÕϪ¿¾^Y¢3×îAžüÅ!¬dÐ}66H£^PØ'Ì=±\"5^NýÞ{»?®6ƒHjZ=¦8~µXãºHaJÔ3“Î‰Õø/ €¯ÇùW¤jËÕ>&Äðö¢GåïÔZU¢âÝŒ¤ÈšŠÙ~cÊ¿¡…Òå3w¨îÖó¶ùÔ.M=J¤mÇ_Š0Ç5žî¡wBÎ]]½FkqÜ?w'»=F&>–ˆãùÅþ-À*jj´6Ä7_üÚ(ê<“¸Â\icÎ'£|¢ÊIj(§×(Ú§hß>Ʋã‹öÁQºLVPx<]©)Ò!Õp½Îm6Pb—‰ÇƒØúÚ¶¯ñJÇ4q6S‹²Ïb0¤]Ÿ~*F¡5ù?•àŽãÄÁm‘Ã×°‰A XË×ôL=ýSbîXLñúÏt(GþeàÏý”¢áG†þ×4Oέ¬–'"’{†éoäæ“y.G·ËÉ ›u·Öw‘ªð3¡ÕÒ¿…¬3f0‘ƒv¡‡ÌRá†én†/ 9Zqurèøþ“›™o½~¸úÇúó©P¥)™¥Ý=ØZŒW¢”Ö4¥N_#eYÇ] 껑° ‰©Ätc’èbè#Áþy6þ×ýD$ÒW=Û1fç÷MCot嬖 §×`ÕÿC˜÷Ê kw—™o 4&LY“>\ëÝSe‡&G%›"¨È¬uOãõ Fef=èIm ›XV·SŠ«2¡q&út7ÆR|胯àšižK)üÔû³É?J/òÐa©d¶<¿š¹}›s·;¹Y!·¥åúëÊî/¢†<\q¡×ÜÁ0  ¨ØÔFÖ$L…鎕wÞ’(ïYÒD¤÷Íd7x“I-v l; 3 ÿK8hzR:Ð'Uiç­—ö‘¯Xò ‡ˆh‚§§ÏøÉŸ\¨¬ġòúðn?)ž½ÿÁŸ½/I£€œÏc<‚ß9„vÈ—*ÿÿ@É:¹Šˆ©lJ4ú2D†CMÔRª´:Ž Î\#–ëg qëˆ{ž²•m'P‰´ß™àø7P³úïVåää#äߨöpæ;‚ªmć•¥°éí©S¶.}÷¼Z˜@Z>£Å±÷W’nïW륩¼w«NMƒò@ºµà•=éà~ úÇ`GÄÏ!Õ©"=Vt?#7b¬Q½v?8 ³%WŒ¾úYâÎå×Pìt à{³ ¤ƒ³ ¹ÙÈ?üVÈFãÖˆ÷eK"Mý™rÜ2WGÖKþ!h(Ý·ËŒÅG”É_0?oM„çWÒ ñý£³ÂΟo»,ážÙvÜ«ëÉyÝ.·f$8—Ñ@6VèÐÈT¿$ !ÃW©ßÓtŸ?&ªè}—¸’Ø:ÏžŒxâš²6WFìÒsv”]fYNÁÈCï†~ìïÑ^Ö¸Ïà; Ü܈bÉú‡"r>K=‡³ß²zdìÇÀ‡pH…V.ÐAÏÇÒ{jŒ®ù»v𭃤iPÊ4µd%ÀA8øØQCòQ]ìߘ5žëÈ 0Â¥s…6^#ßÈ«•ÆÅrÒloƒ_ϱþqÆ1 û­ÕÈd*‰™ýØz[=ºÌj5î§bŠŽ~½8×4ófª˜‹s%9£ŒcH›µý%©*š«Xûx© çìÇÿ[’EÛ,¸¼%´]nÓ·Ö¨‡¾<‹ÆÀ>mJx1[WÔÒ|‘·­H½-&½_x¢ñ:3Ö z%³^Å`.×¶V{DL♠雙ߎJ ýFº:gÏ1I°$×Wëäi^åg*!Q¿&ïùQ*µ/e`Xr&7Ôÿg Bwî~òÐɞΤcUi•§´¬$4wóìBUliÍ]õM^JýÒ±åð|‹ !Œ9*øSþ³–K¹Ž¥3«2dµ¢{]ß÷|)&™§Sgo¹/Ü®áfOÌ7$ái°´?î‰:§;^øEœŒÛÿ͵ÇÕˆOGrؤ´k…2bý <˳äÚ@ÐÊn;Ú\‘Œ8—«¥»y¬¡Æõgè™]FkòaaÛúûþ —§Â³fÊQC‹ðÿw¥¼1(=ßçÒìJ<°ßOO[ñÈ'DÓu„ È*d¾€}ö[å—Ž'é!äÊVœØI0RvÍšéõK ÝJÕí°ÿŸ„ä½*…ì† Qt»Sœ5lê°þÿ}ÉcôKÌ÷Þ›ØÀ—|³]‡¹§_3úöø*t“À’GPïš[k˜ù½ÎŒ@Ðå¦bœ97­{³²vK³ç~d„SQq12ÅV}Ö.Ü$.Qé &Eƒl_”°ÿÙf£h¨ŸkHSKõ6î)“]iòŽ -ÿ(b»ˆ‰âFp{#]>w£ü1¡_„ŸÄ°V¨ë&a*™tO‚ÁD†$oäâì½Á.$ÈU&ü=!£ó^7À—†ZtÇ5âï²_,ˆæTi¿f¨L€\ Ì?ÒÌ}á…åTˆÀNÖóîú4ør“Ê-äø>\€ûÜCšÎCÄ`é vjÆ_p¾(v׈tU†5áH$¼ëE=.‡9Ù½W¤Ö… mÕÏ8ÞÎÁ 9‚¡+ã"þ´&‹€ÅÄt¶ÀpÆ4CµQ<á¡ÐÏ 7IÍÊxÏ…÷Øè ¯=ú Ã*ÉÕõÇÖ:¬Á$Ç›=j÷É6·™¤Ç— _éÁ¤ÛmŒÙËvtóNv ‰IªðÇ@ñ9)Î-6Cƒw{ã·¸4}Ù7EV‚’7=`tP+‡LûoÁϦռÌv~4á¨}¤é!àdêXü­^Tpó’öǷ÷ZW&åâ¼kϳw…6â|“©ÜÐoÞˆÅ÷Ïtî‰éÓæœrÃã Þq²#Øóö¯df½=ìûü eÉÑÈ!ÀѶºŽ58:ëF¥ÃŽóÅ@1Þo0OµÑ6¹ødÙ,F#êÆ0ØáîµH0¥àÎãÓÍ©3鸣t€<7ùá8<ŠŽíX—†å Ÿ^²_UÜJAóXR[/0L⹦U‰§ Jfùb^#pÎe[Kõ?c¤Œ•$a”ãæ–ƒ˜d¨¿'Š¥ì ºgûc ®)¾ \o+‚ÐgoÑüZ1öã½<Ãôà+|û2¯g21*LUÇï~³€‘d3 Ä¢ºª³ìEåOÙ=Æ®®åó¿ oð z»U”c‘Óô–!à¶ æ;dÜ‹Œ"Ód53cveñ7•kk¶¼[¿gý¾ë£‹ÒG`σq€¨Xé-¸µ,„vRu±`‹óܵã„ß‚ŒÍšVÚìÆjÁ²’8ðóKí×ìŠ,%¶/BïDDÌv#´‡ÉÉYC%0B&KÕÄ8i´ã·&Æ¥ŸoVM•f*}fJw l¢ÝŹª,‡ñаNŠ9Œ[Ú«–í²PidD‡·†¦¤T>MüÌ:‡Á(&÷:Ü4.¾^\H_ok¥h!ÈÄŽÚФÍô¹Ì»ß¶ÊhÀVlF7Ä9ǪN·,c¿´vè.9¨üH‘´ž‹úqÂVÏKO.¥O“2N^WV Ô%h+yñÛMŸ[œ (Éb@0ãýO5gùdܪ¸ ‰Œoa•å><ÉÎH‹c×’)œÉê`D×÷QQ9‹¦R¡”ÈŸÑÔÃ}öDqÛòL3ãÔ–]ê|Võl|‘TÂ?8Ò¢Â!ŸQ…£ƒ2–ÂTÔãÃ,콟µÑÎÝ{pn··íž³ë\E,BQã´IÓÁ"¬¸#L>ë¶§ÛTVg¸º=Fk}ÄT™*â^ÃÄ™¿ ñþ]®èøëjä1.Ó0«Œyã ±Aê¡jÄ«”Á(yp$q™†¢<+•ò8ùy?–õÊ* Éy$Q_–~ᥘe‘CÔ"ù9eüv¬ñĽ‡R_`/ú½çSݺ٥¯^’éN”¤Pà!-,:7ÂÝCAPTIEt‘!(nþªV.ÔÂ-E€yþ’i…½W¥˜9àÃGk2ƒŒÍÖ…b®ç¥G¥Â’ˆÆ(^ô¤–·¨&~Èö]Mz7Í·$˜éà Oãkq¤ÈϺô’ŠŸbq¹:dd#¹ioŽ-,QøðÓ§`©Mƒ¤8;)ÀAûÀÍgSu&Ij,Éý/r´ýè?]¨,T\Snïïˆó`]2…5»ƒ)"ÞÒˆoS’åJóë$²6m– Tm {}iU„¯ÈÂHÆ@Eæúv(ë;—Ô)õ¯¥I,°œÊïð挘¦T xúßCŸþ÷ÃÎ%¡S÷;šãÑKV’ò.wd ZxRê7P“Ô—þô0âmmG÷9®.uíÂÂwa2ÈDùCNØ—C£´kCmØÒB"E/í.Ž>W ¢Ç{ðõß/Ík{h³OÕÁ÷ä«ÉjÆ}Y ¡¯¼2Ž{m­=îg±Ï!1SUz"õä{{±Ÿ%‰ŸO¿(6ýØœ“ì5®Q{]Èþ gY]zÁ£bð©ä¾+ iÛ.t% rTd?˜îÉQØvSËMêê±}aZêð¨ƒ/)öüêùW#“ômÖ6«Ð°ÒÏô±Ri7ã£ÈT’úen”×NPÉêG·• 0³F/í»qÈSÙÃ= k…mB‘µÑ<àØL%]C)þ’ÈRô\¿f^¼gÓÉÒ¼nOä'cUO7˜x~Gz¬e*5'_žª#ðù_³qçX¬sÒÖÁ¬ŒFÆÎ`ZfWþ‘D¨ÜŠ=üºü'[©„„TÕÒ:d'Ö§ãëY¼×Ê®Šd¼×°K¯VþÿØÎè­Š~ЩE8:È—€ð.w‡éP°Àô”˜‹M)‡ZÖ*V†´K<ß2’Jmê[E53=Õ˜ì7ú‹c8]ˆ˜gJål,RŠ>c Fü”R„ã/7±›’¬Ç»ƒ_Ëo)æ·”Uj€Bý_)dö€w#L˜h˜&«U&'ªß~Të‘ ©ï\Ìß”ÓÒˆV¨ýlêÃQ•oV€›5¶Ø‹_w™Êæ¾{<‰KKj¦¶‚˜à6­+=-•×w!mœ=Y]ø%õ#og¼6¾W.ƒ×/Ô~@:YÍñsZ‘A¿$”Í{.¨>X÷(’ œÂoÃZ'P$‰šÎý°ð‰p¸—‡ùÜŲ́öß×\ÌåÆ4ª7rø.ªŒø3F+ä§?ä @ A¶ªÜÍx·§z×ãvŸõd ¨™O—ƒJvBN_Lôe¸ J€ #VÒ<áÌÝH[~ÌSŽTÝWèBe:êJÀ ^½5r~F®gð£+Fm¸g {+£“œl~’‡_€ÍíæG» ž|ç6F‹¼óÎ}œ -úH;€«OÃz(Oöð ÙŠ¼?xÓ“±ó¤W¬Ó¬Lí;¼àçþ…YÚËܰ™Ãæ¾Ù£R®’:º`Cn IŸH.!ååÕî”À¤j6‡WÛlSšd“ÝrÑj¨ž6&ÅBô@èYšJúë—{Dêê@¤ïÑ ‡UÍR½„ts¶PÆtç¼Ô5«¼S2«ê¡Øa 6sK´}| °Tþ„âOÞ*+ĘÒt­ÁÙzýx–x˜2ßZåáýØ7å·Ó·øðåÈ—²?DzÚÿžÝÕ[~ÿk1:À¬ŠÍºÝw#xjðƒäEÂ/ÊÓĘ­}t½[~A³·<Á§! çfÌUˆú<ֿͤIÅG¸¥ÏRÙ×P›eµ¯+ÜsdÂþñw± ˜Ð‚ »,¶ûjý‹b„)ÓÍD†—íh³:l>Àû̵<ç5N­¶:&»K »ï¼ Q3eö4¨–.ðÛaŽîßVßå…ßtÌk¾Þ­uÞ;ÌQ? 9’ÉÃÚÙM”'ýÜûH$¾¹Ì*8{Ò#žÛñ¯›°n·„>¸ðªp·$Ânæ³bùù¡jF›¿Ku.T¹ JgÇyÓ {:Ü«`­ š‰ °=”tëx»E&µzJjÖ½'W–Ü‚¡—LsÍ3ñâ+ r¨FÈ8FÓÔâù2·@”Åz_†z#O ñ-ö?¥ÕÞ8äsà|Íp¾ þX€@ë‹ÌϬnW¾Æ‚–܎ЛD}©ïâÿ¤ˆEÀ§ÿ·T ÓÚuê÷WÛCãɱ¡G“Þ©Õª“ï*u)Œ½ÈRM‰Ã›î$¾ƒÂ iÅÒ»õÖö²KMF~´ë³Æ+&oä°ÄÆd–@º>A"{ˆ;ì!$™vhD^´5w9µ‘ñ!Dü8Ükа…rh‡&¿u‘íU“ÑW´h§îRcâ¾´f÷d¡¦®P_»D_9,ðUœ6š¾â°ˆo“û MŸ„‹ÁÚÃh. 7¹ Ê—{`å–ûÊß[ŒÍÀ‰Õ†ÍÈ;Ä ìó/ñ&½OØBíô-ÒNú+•j+I%U!`ز5Þä®D3ç(uÐ8h¿‡c×ÄèŸ~ÀszÊ>…í¹Ï"i%uCÕü<×GwŸÑÉÅLXÏÊÝý“‰øùtu-ofµ>jÃŒªS‰v¥_ox *§õýp¸úõdæ¯8& IÙ·ìWûãÚh(º³7¨ÁEÖ”¢É:žxnèúøÅ}*Èùœá5FR¦Ð¦›ÃDÖ`Îýpg«Š¥à‹Å…/s O[Ì F¨áÝÐìb¢§°ƒMæ\UƒäãîÁÝBn8­‰!˜œZÛÞ^=0R€5ÇG'gš& l¬h¨ð¦Š»¡•¶?¾m=Ûøü'S§ »&LóÜGçþ¯ Öƒ¢k½bí+žÓ¥¶ŠJ£@ Ñi²¿i²‰³¼{áTgÜæ+¥Q\Bt˜Ǫ@òÒU ™ñN@ í¹X5àÏ÷ò³¬ wÊP§L ÒÿÙ†Ç"ïzf\K^P‹¦ZH›þ¿ÁÃÀqUT2ϽfZh­^Ú±>I¶ë.'¹‰‰d°\Âd—ª×‰ÊŽà¸´w6Ò˜>~2lëï*n£'Ó«ÕÍ-~šb¢)®>K ÇÏ ’B°.•W¶~©GíwQ-fØ‹‚ìæ'(r Û2‚æ8mŽ”ý_²„ñÏQÖþ{¥4$x«uA·y—»õL´yïRþ×áÎ䨉y´/K  |g|½ÍÁÐ7è@8}îÙ!ÇŠRÏp"oìÂHî¥I—w† áLë;r^©8Ö>uª÷2Püt³){þ4«Ì–$®·‚M[ k[^š7DcÇ}œ»¯¹ KØf³­¬Ìëù•¤ –¦½þÔW‡þjT•ðnBW»ÜS¤'ñÖÅ¥—`ýJoxO½‡î“"¸–£ì.}AWœ,êP}UH;/"Š/gs,ó<:1ÚœÍzø„\÷Ÿ”ݸJAQî¡­;q7;ñkŒlçÆï3ì¹TDT'-br¿AÚÁ³º[Á4‚}áÛ ¼Sjü|úgY8¨g»Uêg›‡ã0„”SmK D~tGFçÆæ²›:&Ý””ÑÉ K¢pŽV Ö/u--ò¼ŠTäIÿrÆÏˆ‘ÑøƒwzÑd†EÄû¬3E² ¹ÄL:þÞæ§¶ÅšøÊ©£œ»æÊà2寈šÑ`ν|ŒÀÙó2EQ%E8v[°¼ÀQÙg†k Åê?Z_ȱÅMÙ8VÅ‘?ûÒ¨œœÇXL»“Ô8+›âŰÒ„'ìtéàK¦»ä9!—&Êç*A¤ 2Õ­¦#äzDXzReª‡ÕDƒû–Ô¥Ò½|LrÿsèÖ`XHQJN*däOÍNûXëjÖàÁcͲð¯Zð¾KÚi¼x|;?!ñl³aboÁžšC®±¼Ûg|ïkÇE5—¡ò sTÄ18ìÊûÃÝØ%…ÁH.Ç.^%/¡¨#¯'X:'ökL]7ÕŒSõ)ì•1E©cCåÇkãËJ=‚Ô1žó¶‹–}ùýqa—¦®'‚9Ê*ø@LÐ&Ê…ÍÎ× ÕÁñiÚ̉áѼ ð¼0ä ;¹¢eó6Íe¨ol3¡i"ø8pù.í.ï2Ë¿ÂÒ½¦/ªoDg\Ýà]ÉCÆß†h @TV>1¬¹`²—N˜ø(«zù|“†v†êÐlÆ<\Ì@@v=ÖªÓË}\4 6"^S$¢§ß‚Áp–ÍÂ$moƒ4{CÿÎzI_´ b‡ÈGv&ú5õaËPP^æ‘D®6pš¸ÉN¿•Ó;ƒiǦ¿Id§ú¶ò$Ÿ»¥ðò!ÀÁÈ€˜¡´°àtò¨PãÂßmWí6©ÁXxc' »®ï7•ÆåwDªma‘ßÅ&×®äQ-Ð<|&h€5V–²õû»xCj]lF*¡–§Ü3"Õw„ÚD÷Å”£õ†S­ƒa?¿q3è/ª-™+Ê?.&»äÛê’Ut:‚]ê6{z¦uõ6ºÂËà1RcV}ɹíO–w›;ÊqsÀsÿ]¡5ªTû5åLþyu÷Nƒ „†çy¡/À4 l[Í€ý¥µ$­ûp·;iµè!OX‡pmÙ.ÔŽm*0LèÝ-/Cïɽœse71uîb*…›¼L­ôî£Ajð`oþÉR¨‚g¦Q„6"G.a™Y[d<©n§=b)nøòš[xV÷¯+ÛX2.óª‹Ï9Ù˜8È€¾˜0…! „Ír q¾Ó/²ÙOùA9ÕâN ”} $®Jx”Mýt±w$V Zñ-hÏPì%‚ñn¼Ï¶ ø˜g¾­æ:ð^9Øãrp©˜>Æ"RË¿¦R!Z¦ƒŽŽ"ÐA·€ðû˜ù•/ ­€„šßîžË<‡ræ:Zƒ»–/ç$ö3Q´·¡dt:ÑJ8AˆwvŠô#ã4Híw<.‡bLþ÷w¡[hrõDˆä,HI®mTË…}À—.WÈ@¸™(êCÁ¼s/iµ/ Ökq3ˆvaj¶ir2@ñ}^ª¢|Ž)Xb(à ÐÉY*Qóž0ÝÄbö(vTìÌû•%öêÅpž•/²7èËpÊÅÝÁ=¥½ 1“ü’æÄÎó¼ýÎk6y¿Å…W–ÍúŠ&Ö:eš/÷¡§ã§÷oø„j-d}8è'ÿ¯T½Z’!î´¤uê¿Nð@›<ÁPwàt,FíCÊr’L2äŠxb$c9f€ÊÃc@lRJ›;vŒÕ¦‰&C÷‹|Ö\a¿ëÑþêgØ©¹¯Ù¿9:V…e7Àouº°¤pyßöL÷4<Öçþ{±ûÎã'IÉ5ˆ÷U P\Þÿ¾:cÝÍ „+3]În³W$ÕHÃum°Dâþ¿Sé•ûBZ¬–üï8L“4µó„Sl³«Ù„G„K«ðL§gí·†,ylÂöSR'Z´ß ‹M.®8ÒNbõ¨]È4]Ulgðb-2Ýfþ!‘iÚÊ7D¨ϬÃü©G å“n';-NÙÚâny oVÂ΋áu%n‹ø[ŽRÛ}¨ÄOå.W¯HÞ›wX›k³`’ìâ¶)ÀöM1Ö-ÇÔ"¢¼Ìoxôéu¿'¡|ó[1í1;Rtô‡©.»3°*ôrëØLK@åÅ"Šor"Ú´%â"?L¼ÝjeIð€…êêåM{¬È°Ž˜Û÷žÔ"2§UÀ6fü'àºÝsÈuKo! _ñEG0óÝþ–Ól¡/‚IËçL‚©@ñÖÍ–$®·‚M[ xë?Ô_ý¹~f¿ª'¼%æ1ÂtçÖÛ^LDZ:ws£¥:~RÚ9òé|6ão‡Äcn´"ÊÙ6”©à6œÌe‡ù¤ËÎ\ýâfVÝŠ6f<¨.ü“ÌX†>:)b ’?TNŒ ^\ƒw$¯Ætæ‚xüÆ–F,טj£¸„í\ùÐ5¹¡¡iÙøòˆu÷å׺³Fh¶owãrwÕ>žg/jÇ«V®’ñQws.­{*7™†'r²AÖXÀÒÖÅ?Д\ªÛDo|åÃò‹±ôð#óÞò蕸tdŽþsÜ{Œ«ª«ió¿uõdÃ@µ[Ä0ôU²f‡uiÚ½°‚úQ4#’rùÖ/[ä“)%U¥Z ½ó §ݤÍXu¿, Ïâ6òÉpV±èàÂÁ§l÷œþ)!Ó "¸ùdC¿¡³A‰åÅ«ÏìQ­ ÌE¬Svi ÏàÈù$ú o•Á\tÝ­^œ@G­Ev…Š&_üྞwçcé»f#YߘÝvsgÚᶆîÞÊáðÉËÅKÄÍFåq%kÓ@³8ÃËÖÓ'þm#H´ë*•¿/.JÚÛãIû3éê,` —tbeEZ\`§À»ÒôȧåþŸ¾¤½ŽÉ–%Bâã ¤;?ý·Y!g¯²»¹ì©-oætŸóÆ;ãn U©¡@mŒÌ Yu‡/蕸Ä:*DZú^Ç$‰ÔôÄ©¬‚‘!å2Æ`Lœ5VRüœ/¥SÕ6‹ u-ýÊL›”KÑÂÑÂ^D!ëä±q) °Ðå°²Ä+¾X¤ë9êaÇImؤðÞvuŸ]UõW"JK•I΢âwüXHÃiÙÀñ£ÜR¸T!%»BVYKß3¾C®ù?î\`'JÿÀT„°ŒF_V»þ¸‹måOÂKÜ^ÈÍAŸY~_MßÀ»°é bŸßI+ìxÉpÁæe=K¿’ÓñʽÄû®8 "ñÛnŠ©°Pã:8M\­•C£­¿‘¤©@Yp] Ùü|ë%wÊP3žËÒ£gŸ)ëCÈ’Gú5 ­5ëÉ8»×E÷tr}é.·‹ü½± Å@"­ Â…` ËpËQ®ê¹Ìå{‹ÅNë•jŒ9atrX"Å1¾¤(:<ñö6 M>×…ìvÅž¤uÁ[éá“¿Æ¡(’IÙ×Ë:ý ½(¶…žùâÁQÅ•™ñèá>êµtlΊãi(ÒcÇwåôùí®ð…·*†©Ï]ýVsž;ü«I)gžñÒ3x¤CD ùR=;ò?›ÜÜ×òÄ u Ÿ7wæon?äÞóÕ°bÿ»/½¤¹8øt¶¾02»§™PxVH¦N°Ÿ„ð•ø´ä§Œ–H%«Ûqú­´*«|AáFÿÒÇBW@IÜ¢WéóÔÎFÒ÷víyî¡‘^2w–=í²¢L‡× &XVŒñ1?ÜAfæêY¤½0 0‘·¿Nr/ÉœÌÚ;Œmþ¿À¡\² ¦ß»€Îís+å%å·³[­›grÆg<¡õ€ÿño<–¹¹·ðA®Õ ßÏrFÛ xt6Éâ¸pm8YrºÚ¸=Û;úøSª:}¤½õä,‚wÂÌsÁÉöh“f­U#Ô5Ûæ€qÐVËáÞœRDÌQ@»¨1—j! ¦Än…¹9)`9L‘0¢­¿åŠé/Æ{þ¸(Ž&6PÒ{EXãërð@ÊLð)¶ñÁ„1“û#ro’/‚(ìÔ4én³‹xŒXœ¸[·°Äl7ŽŒêÌrÌùÊ ž½°´jõÅËŽ}b”;·m‚%XIJQª•aÔ*Üð¥ùI;jˆÍôàÈÔ–WÆãûÍkÆÑ9¦‡0>á*k1»ò:ñ•Th»¼FÃæŸK«}ZçÛ@˜ õ¦°Šw¤y/iÂ4‰õCy´§fŒÁÉ6š6ø•èÈ^#Òä}íóqŒ *ßjËûÚF®†)4H«Ç2Û™Áznt}þ L±”0­£x{Û’EV#Ož,úçW•BüÇ·Ìö0Ô<¤TÂÛѲ5I1غÎþ­ŽIgõ­ƒG)WË/×fÑ‚¯Af fž‡Œrá¸ö’ÄI•Œ¹‹ÊÇÃyVå6žoAñ`>Ô–ôvoÓQ~ˆh 7OTUÐ wiª°I}e¹Å9R´ÎÊ`­ÑVÙ†Æ nh=âÖÙà ÿU€¦n©Á¹K.¬abÈ–”>eÞRüc¨ÿÆà¸ ¿å>ùFGÅê@ìÄ*kÛ¾˜ÂíòiÃp|çt·xfì³ð¡Ýerr‹Žr‹È*×"%ÉL†²E‰øC}8ì”#¢iÚª=që ·õ˜+×<ÏÆÎ³–öVØnLb¿ð0UfËÈ9±„0FÊäµy“ølµÕîŠSÃ?n·yI.= †xyCc$ˆ~´é'0vxòÈȯÕ¯xu„%N™ºñã4]‰îÊ„lÌÖ+ð‹l97÷£ØÊnÓ q™š9-4ðNP.“O-ðGArµ Sñy5uà1Kݪ–@ˆвÒH·>ލ ØÏib 4Zsy%{µ›; v$;°kбü£DŽð/çÖ– Y)#±:ib°ëïöîKl³iÊÒ9š;>9­ ÙÃ/Ç꫞ìɳý—1¨3Ð ÏxÎ"I3ÄÓ±‰“.Õ`FØ{ëë ß«¨ E¤ú%ÍÇô‚ö¢ž2ÕÏÍPüâ:Ì‘M/¢Ö!à“âçN%éœâÛ–Þx¶{ËG®y7!敌m¤shSj\ŸŸ¼MÝM¿\ -;´øcë,ˆèi–E¤Þœå¿Èw×ÃǼ«#oµåÈûj3–pâ”§ h•–\ý‹!ôc ˆ¼–“Ñ1’FèÉäVKÆ»·#iŽÝ”V 3÷pû쾨Â;íÝWàŒ‘eB ¯5HR°{j÷Rÿ¼Ç‘rÖ-…Æ{ÍË×3IÏt|ÊubPþP“©¸E«o³óeÍ@ãsÖóYo‰nUÑÀc•s(Kâ¾  °6ÔÐU'NbÈuÅÑo&‰²eºàñKSÏþü¬Yþv¾ˆÑm_¯"‘IvyîåÓ~K+ :75ü½‡üãç•D5hÆ·KØô q&a êR€ƒ4œ+¶ ÙÁ^ÜÒXŒ ÇS™Àß~èåKöx‘îe%3VM~ZòØ‘ ˜yÜ£‚îb7Ž*<~ßt7µö9¶3ÿÕ¯ÓEZ{©ÄÇþ Ê’{É3Ø‚/›yb¸çuqv)âKÉ€¾Q~«îg· =#èVñJ[p•/i(¡Ó ¬%c «×´»¾>ÉYÖCÿM÷E^¤[_å¦ãüÇ~¡y²¢±ÞÚpZýS$1¾š×S ìø&¯}cí¦ÁCK¼^šËCî ž{kÂgŒ§…Ó“ºwœç¡t¨˜Œ/v#ÌòΚÃȘ,†Q t ×ILÊã(»7ªHsÿÙœFÒYÁż¹¬¥àúžÑ%E߇lXÍ‚•§à9ržù9!NpQ·ï?å›ÿòU|q8ÔÆ0h“óÅ‡ÍØÒ.¸›:¿ý£nðQµdëŠÁ÷r“ÓúZ¾ô›S¨‡úÛ Í[> "ÙˆÂÖÝ,ŸQø:RuV„«ò` ù0fÕsß:ß•÷Èéø"˽^í4ÐUDú¿sj^c8«™Í 휊' …´˜œ>µgòé%gþ‡²™£¶„=qÔ;(±Â àYÁÀXTd/$ïÑȬ(Ý«ñ­KÙ¯é,ÀänHe¹€²ŒÕC߬#ïÉÆL¾éÙ!œioG½Žp m|.u÷Y|]Q¿.kœ—ñ_ ¸o €°yhWb&ëÈÕóŽÙÃ!R-o¨Oüu/joGü,Ñ“­N@l  šwÞ“qø2Ó¬§¨L¨Ã÷Ù}ÅéH\O*wï̾á6¤©½s‡ –Œ¸º$h‡ô…ÁXrˆ‚ ç:¦b6A÷k4eVcÅJ®þè'·ÅS«È%CúŽÞ#ƸòO¡ˆñ”šG·<d­–W§ST@0x—سä¶ÚÊv„ù*Kt&-w)iÞçäížáû‘½=@2_[.sP£kCÏZL­êh¬£hù’xú^Íÿ íHœ>YVŒõg`Ðm)nz&=‚°¾í r©½øè×¼ÁF3‡\Ï\Ê )eÀ«Ï% 3™s&Ê@°ã´ZŸ‚æ°ö6,É5-ﯰ÷gø)ÞéôºßÏU ƒ†‹Q¬‰5¨N ØÊ, ¿5n zS0€í9ÞiÑ£ /ÄØ ðžu¨$¹â•5q˜ŒÆŠæ ˜nv1¸"ÿD€˜ð©%ú•‰ÔÚO GA2¦ÄT-E®2ƒëgiDÙÍ&<äñ¾ÈG †FÞfÓQdbµ£èǧi@TLÿÍoܘ$'[¤ ^ð[CÏ$Û}‹ n%[Ö ¼?˜YÔšœi"„µ.ÞÖ20d‡É—@ÞâRî²ÎjSGž¯Í`W4kjƒ­5xæRî;úRùýpRÛ³³øAˆ|«9_dwŸdÓù´£þ9G¶¥¶‹ÂˆÆï‰/4øâ ”`[lBß„ÖÜÐÛ«&ô¡ç»- ©&ºv+!¼’8~ ² â}GðÛ<|Æ)äïëoŸKƒ®”“÷$«Xž”¿ûÜÚ†þ+³>aX¿G2Ông¢/Ì|VÓÆ ¢U\ì‹è‹úf•$èyÖÛ,OýmóZ³ìÈÕÚi‘g„ât½?à wÖcn×4Uþ†Ç9=m¥Àô:ˆGïÔm)™Â¦b²Êî­ä‡õ4¶f½8‚Õ­‘ÞÕ#„ 17^῵@ÉSÃÈlfžWìPªØþ› ¡T%sÀá+…´+Rôk}È^Àa ÍÐŒ/?zS_Ö ‰~G+ä¤"ŽE“’Ñöý›ý«c¡Q#óU-Ⱦ0ȧn…õžÙ[Zä1qøÃª­ Ãtž Ƨ•Õ64 N›Yhª± ¡&èO#Èò<Ç?aÝÆa™åbx Þ½.5G ŠYürhŠóÅÕ›õ¼P}£²úâr‡FËÄìÚßb®³ÿR×Ùñ*ÅDŠwó`³M¡ç‚óñ”³Ô46´v”W_vÑãBxÙJ÷õÁþ&Šý‚Âçéãöีý‚}´ç´~“Æâ›3ɰ…t5äÕQ^¼)#¤8átÈ”®õ %¬Z¯‡ UúóÁíD¦ÁŽ%,:òP¡¾Èsƒ ‡„^·tÙÖO¸ç;7p´uä¥ÿ5^?u‚ó)p%T^QDUEÙÄWßHVY%“‚ŽàÃ’ž›¹¯¢.Ã~(õ_-?U-Ô>šp²6RéD–{=  E=„À× =`66S&dé.·Ìx ªê~È>Ø55Q¶×íEqäfå\Ú )d[™Œò–v¢}Vî”Ùþì[•z ¦7 J? á¾õ}ŠƒÑ¡Y?àM¢–H"‘@‘…ðâ® þL$9âôWŸTDŽť=8—¶¯‹ [š˜KøŸë¯ÄóVu<‹¸•½$DZ€*® DîÆ0y–ø8-—Myeãóé"–¾‘ÞlT†0ç&#le˜aʹ‹%ryC/¤t…O’ì{m'¡2{g ÞreÁ j¥ ¿Ó­úDÌ:3Ü‚ÜL•Ý×¢1kú&Æ´ 6º›ù/D»È:] F'Åhö]\7(AbzŽ0YØsu“\"¾iÔÅö Mÿ# ç$1Á𬘅’twZ$ÃÅY°ó@SÐzÔbD;;°eËn‰ƒúøzð«aU¤’ím••QÀí ϼÿk‡—”‰yÈ;ˆçGpÀ}óNx+½7{™[}¹,¢Û} šhã•éò‚ø×žA8Üâ‚N>çom赂–º8°ÙÒsã¤ao`ò‘Ûô4hHçÜ ó¶:vØ?«Ï!uU U¶ËJ1hðÓ?®8ž„îg{Ýálo9¿û7ù ‰«ft¦1£á.û.‘¼ä*°˜ÛÐû °»N½ nÊJ~§àîfø Än_­·…×ðÈ÷רdòAêPÜ߸û$–ÙjÂ37l¶?™!¿„°jä$í°pОüüÓ*paÉ¿ ˆNÄZJ8XÆdÂ.«qÌ•Ÿ<øü²~ké×á6H,0ÞT%8/¹d£½‚çBjŒ ¬¨À›l Ao3ÅJEÄõ{¿&¡,[ªU@çÛ^•NáÃjp6#§) ãu>ÁX¶_|FÅ\Ÿz£”_⣠¦ªI21%È^J‚ŒU—ƒ~Ý~9g»\ac¹¡[Œ+èDýœ6‹ÞF+{î Jñ^®ãäõþ9¢it+¥9‹ÆÜÛ¬ý4f™¢‹pŽ‹ ïÄÿæü‹á!Η®m’°B‰SDI*Ù¦i2‘5c\ ëeÊ4?¼ÝlIi-R«KËq_RÛ€h U¢ "ÂòcÓŠ‰Ì‰ÅkͲE€SG§—Ðס‚8ûÂBEbPìhϱ “™7ª¸/ö5ÞRä}b˳L‰R5V]vûîV‘o.ÓQ¨È¾Þ³u´¥Iž÷Ì}°Ù×öGÃAláÕ)>Á(œÀy²Šq¬ÌÓ]Ib„Cý3)H÷¯¡Ö¦u®+ªÉûÄ¡‰ü¤B ‘ãÕѺB¬¦|Ý«AcŒ‚#of¨òÎòÆj3ÕBSµ`™‰Žµé.šF%j‡O¨9 »ûH×ù¹cJ>g°÷a¿õô -²(ФÕXtî©ðÙRËø:þƒOÁêâs¹ÀŽEãâªWäÀ’a‹P³Áõ!Ð>›§C‰«F°3},tx_(îåtñxÁg棵¥öa?¾Xµ„£S"$X¶åJȪó°vg&_ÿ@Ë>u cøI\"b„SgѬ]\¦©þ%_05=õN–áöÅÉ8á¾ JæN33yO É]šé»Q~ <þˆàH;Ê•x¶C|Ó¼:ùe¼kÅ„]0FÎ]ì’…ÁýÞ1F`©`¯~Jù•Ç{éòo©úÈÝN®yÒçÌ"ÿG_F.F¼Úq©Ö]ÞÜô“³ˆogIƒÜý××`ûÞ{ªÍx¬ñïUˆi8ø‹™­OȤ ËÖ6Ôãò”+5÷,±<+"bRs÷åØšMþCâub÷~œŽ\))½ÇgN龪Œ|è(I-\TvŒ*6j†+º™9 ä‡äx¸ {Í]GÜ#TšU¹E\Sé2] wûÍ~Î.N4XJµ$¦©Ó½¹àySDqÇäô)©ŸöÄÁí™å'à ½óí×&1ªH3¬r_U—³Á H’ÃÌÇeð!)D-I'¤l’ɸ=AêÛÇ€7¡Èc™i_½|‹)„@:ìc7C/~ou8QË5ˆâ)¬Šãuج %a ½øà´–ÞÝ*©Ïª(jFbâVw‹\´ÛÒRªfÚÚ]ö¥—žØ\‘=ï§Øbª·ákÉ^•d`áõZ§YH` _ 3î äÎÄÏíÊRsFE‚n¶–ðÄáßúiñ“h9–µ‹Ã†þ1òfõá ¾MOF¢›©TçʼÜÀ<'5 Ù¨½ínaÚ÷ûÃcÇç„ø0oŽëwIÌm…^ÒŸ™Çê‹C7Œs¸û‚\Þ­ŠfN­ñz¸O§ä%{ÑïËÃ-¨¨X/C¾jàü¦g`HLQ"Ë8iQD™4ž¶“íÎê4ø:'Œ7©ÿ8 +'¤÷\oäC¢A¶0œXWPâØö'¡%BvÛêè"pòišÁçŒj v~)jdn^ÞÔ„=.¸¦†s¬[àeÛd‡%G©*KÈQçhô= S¦»;蜾ñfè£Ažíá¹}øŠiŒ_†MµÄ÷­—ë÷‹Nè,Íq£L9Ó÷F ÅU·e<â~x¾ çÊ¡çÊÀà)1¢¨ÅTYA)VÔ•ÍeãlÌWÈÉÜÌ@zõÉË!Oõ¥öÿ$ð¶Mg‡êÊ—)a¸°vó·âŠñÛ™Œ6ïQ|8Ùm¼¯3Þ¸™£D¦ÀGÍÒf*¹O9¬RŠ!ÿªþ6Gp¼û™_bë mo$rä²„ð…£Æþ’cøy¯Œ™yõ¿I1MÐ3“_”ò¥ŠyÂ&^;ÖÖDêuÉ(î&Ž}°Ò¶uËÜüçCïéxLJ›-N°Õ¼&Qןƒr&p9*äSdgÀ èoô¤ô¥vír£¡Ç,î5LTö-´˜*VcÏÓ Ö$[ÊOD³ôöÞ,„«AmED0¶FŒWØlRÆð_®â*}¤aé`ÂìnD½êy|ƶ?_“ç[öÎBÝUž±ézŒÐªÔé¯*TH–öå—íÖ„~HSàÁß™)†0ì+F]Ð7ÊvêÓ™9rK³Ô(é}Úg Ýâç.È É`Ë…ñr{óEúQü¨Õ+`™¦Z ÝDMª5SG‚®4|ú}„šÓ©7IÛAå—öÝVà2_Y÷·$ÑÉG5€™ÿ;3nmh‹r½[†ÖÐÅMÔW·¼äCRL°qŠ‚Öf»g;†£ïfјˆš&Y/lQÐU±Þ2]9²DɳïÒ<=Kx[–)jˌ₴L¤Ò^ØŠ;g)‰ ʈCÁâ÷F(›N;õn&Œ\å&pèu®íNœïoE§ o”J©QŒ.È`ÑcfæãDªúÍKZòH0Ú.˜ÄL¸¯)ÎV¥wfk¸¦®bÝx>Ð(5-î›jïtƒIðqñQ¹³:\p}i ¬¬Ü¼Žª¹ ÑN¿@h'2“2§T,.Ðäï-<Ŧ¤……ü—Bo—ÖÞ§ü¦[=9Èu6š‘ÀE®sÒÞ(µHö½ vète^z¶ï[ù¤àŽ¡­†ñ· °ò¬=_pâQ‚‘×õ7æjõl‡Á9 w‚ÆXÒ¤Ïl¬yuÙ¦ã4ï#_’:Ä ©3PX­v ÍßCª›QfRûýéÒœÃÒê™Ä/¸Ë± \üÅÛrVÇÓ­“M?ÍËÞ{‡áfý3a! ÅEœØ+aÊEâ©.Ü Õ‹((úÖR«8FÀA_»ÅÉ%¦aûŽ_Ñgý>ø»¥-#—K4 Çä1'+H‰_ƒv‡ËAîu•¨&1S8Ù—û¤:ŸŠ g"•7È\ª«Âfpæ–\¡`ÓË— žtFñ´!f)-–«®ƒ¡…Ýî«¿ðÙÚTÎÕËç‚¢kq(ðÚf뼺E¶ÔR*;ªú9×d·È>ý§wÝ7 Ô III7/›æáuºä­ ø×ˆ³Õ+Än•‚ËlfQ"" Ílÿ%D³­Ýî< e1«âjf¤è˜ëHcj`‡ûyGzªT·…ÚÕOIʨÃB)s¤š[Gg¯Ã°(úSÊ–@‘*qQJ¾Ûhæ¤-Æá·˜ÁÖÐdG‹¡| sñÑXÇ/ï 0¸ žèK¨†iò$i&szþ)ED£“û£Ž… ڮ®;ûwl‚Ë4`ÛLîÿ¬úºbœzÜf-Ä‹YÛèÅIY©ÁÚ¾´ix’LÐ9™sA­á BÐ]jM´…Ëüôß !äæ)«ƒJi\1{yªùìY#…n>dhhÎûÕÌA¶ýóäÙ .ú¢ «}RjíË.³ˆ¢Ì¼îÛ ñ4>1F¦L+» ’¯¼E,vá,ùLŠPñ&>“ŪÒFÊdW  2”‹¼þR“|,2·d÷‹ÂHJr§üçH~æÆÔޝÂ)É `w£ðþh­_í«š›§×Ùsýª¸‘PšŒŒ<¹†+¿àLÐÃP]óêŠKQ˜³õ«ÁØ‚0¿$/×71K{a9‰CžqÕËìwñÙ:Q}ŸàŽ ¡8ÓªUÂ2ô“ÌÁñ>Ä_.[³©_ J2ÕÝ!v kËÌúòâ ÖòË‘Ó%îH@®J'Èpžìíåh,ÕÙMWã¹´ûÿ…-˜•÷ú FOb^}QóûT$î%è£96Þ_1=ó¥Åeã>Þ‡²,­!µ‹pöqõ¨Äs¡X˜ï=5ÀÔ–Æ+Ý¡–9™Ó´uÛ誈ŠMfÏᯜ†p}†&z±¿íæˆH»¹ÝZö¥{U”ƧM®¸>¾Ö÷½ä¤æ-C­—°ÌXÔe{ÂzïvrÏåÉ÷¨}ùÔ9ÎÏa$ºònaž}z ÿ¶xßn³Öc¼ŸwªÍuúºÐ´"ÃÕ¬šx¤2YW_6ÉÛâÑߨðá—‹ÈçM0·?Éûx59¡Á2‰;Oùxp„R€–{--÷&3™”V;н7û¸2[ñgˆÚ™bb»&ï•‘¼Í´Ô€v†EXB×§^_QRŒ‰Ž(jA¹ìÝ6Ì;óT¢”0'Þî5Ж7œ—ÿ`3aUt´f›<¤n­%})ê;L“%ö—îÚ"¹ Õßpðቱã…)SÂú/²ÅᛃCþCRŸrþϨ´§»>ütë-ÁH”3-Sô÷"lx±XÊß‚×V²–q·{§¬£Õ'±Ï@i ó÷£bFº´§°îw´ã ›¼IЦù¶÷6?s"jÑ›’•‚L#¨Êý‡Œßèßdm_‡0ë0J¾á4JŸ6m@éØ÷ž¨Méf¦9yoæ%iÇŠÕå-§…;\ÒQsÎÑá~usµ4æ’~ó‹µz„7 Ê¥¿–VêÇÖZüj|bSBói½“'EýNÂZZûWɼ Œ‚ÞŽžs±`dïÿ½žŸB»õìõ,ø‚‰ê‚š)¥a°<˼j Æ'|Õ5$éL ¡sÔ·->Òý}}Ç¢[|¹·h1 ˆZ™H7Î,þ=ŵ“vÉ=l%¹è¢ÎȵÙq÷)¶6ÙÄj_ê}Iÿà2 ;ƒõ§Ý¤Žä¥áW!÷xÅöxFpÉ-r6Í$ÈÉl Èv¡Ùãµ8Wý>çyHn~ÄÝ=©D–}b÷èשöëÿ†³ŠSßoTD‰xE3Q¿#ÓRW»T§ïë´ºõ<Ñ4i 2ž’àdqYÿŠ3ñ©Ì¥®[ýêb‡e9Àªy²ÛÙ_ €¬Q„.߬‹¦Çš©ð‘AÊ)VS„WˆZíŸñâß;Ýfu§ŽâkYùba¶&‹zû$]æî“ CÃÕ,#Ž»mïgwܘ@Р®u\t,<ô/lóÃ:,jO«ÊêÃ{,Ø™ÎxCE’ò<éo‡Š¥ñ–Ù§ ³ÕD$z_)PB„!×ÕŠð™Ò_FG¿ïYá3Ô%z¦‰½Ï$…2UnjLýõX¿Á¯ ‘ˆšÖ‹¡ ¥vÑ6käö° 8™ù /«4é!é§°œ-øÆ` Ÿü±‡Ù\¬÷=Ͳ‹Ôõ;¬®^=ÀÑ–áj²äÓŠv$Þ˜Ž%ådñ+hFÆm~àwq¾x⫦76M÷tùÔ>f5›…@½ò.(ÃK®®[þP×TU<¶…ŠŒ/·ßè@Bp+™ò+"UÒŠÅ_+‹åÆí‰}BþE£m9o+&?åcø˜ýtv0Þ¡4×X•MR¤N6ÇCÜÕƒs*#ÔªôšÏk˳ˆJ!<ð âQkúqh>4³aÔEoSSç,·Æ“ÉÐ5zèšdO/7=\v?^lŒ‹Hrˆûƒw'„üP³9Ý]iÑJ¨“µU47Lìö©‹GîøŒÒ Ó±ƒ†Tóü¯”POÕýŽ“ðzG`Á‚eEw‰.*ú{V#Ãô×Ùðaò·§ š<ÍÃ<±` “6šÏñëmýsßÖzJ©xº¤–¼ïßç¨õ3Hl;iß¼Z #5EO9÷¬hÊU¤ šâã…ƒ\ˆ‚ˆÂLÙüQ­"PI1"à0&UÄcÍ~ˆµ‡ÄgKñnÝ,I²h™Û^L±¿jþÝ$@wøÈe{¤Ó"|v|q½3ïpG,%B¶HüJã5$ õxãºLè¤yþ´«-Êcø¸ °µ’²æ—}°+ÒÙø5ñ?€?\\®B6èÅÁÄÖ|! òiKGç×Gœ(a¹Ê.OØ£º®øP;g•_b¿Í{*.¤ãy™‡½­]‹)ë‘¿‰JŒÇôuÑ€Ä ª8¯Zœö‰B¢Rãe|6WÙ+@˜^Ü¿¨Å(ZtÄ}ýÿyĪ"‚nÀ:NbIfO{RÔc ¤ÏÝmhþ+KzMd×,ÍM®f“-xÖûbóî¬U.eL-彯eŽúÁÙÚßC˜ #Õõӊ9UH·K‹ÅüEá_2õï }ÏEÉ=)%‚‘3§2¨XÍo&£Tja;ÁJ1'nR“"Ø[üž—”–ï›áª<—üÀŠng—hTôÏßkC¨Ùüå<Þª¬o—£T_‘ˆYmx¶£4v߸8ýlO§…tr=E®à JàýõÛ…&­ŸÜÛ$K´öY¶n33OYê ˆä•tw¥Þü¢Ô¥ú>7ûþÑ8ExNÿ¢õªAw•¡ÒþT‚.Ë(E¶ó”çhÙQ ÖŽú"•y0`†%wZd¤ $’¾³ëþ/…»n¾J^@ŸÇñJ˜ù#“Åë>m×A¿=üG‹Ð<ÏÿøHàíä{ì¶Å\9¤f"ƒóÄâß·l®ñlO«‰DÁÿbCâ'¯ MâýjD.¥j\ˆ¦¹<6ëå"µÄ`¼èagHY›Ãþîd ä5q°Ûà–H-i¢PbmË–hñEù¶&ù§Jxè¬jõ¹îQr‘w&ÌôK ~|”ã·ß…Ç‹röýWÊ íAŸ,]Ñÿ$ôt8ÀàG>ß›_Ï'|„Õ¤ÿUfî~ËõprbýÍ‚_¯}¡ef'QàìÁ§Ç?ø8 ¬]aaˆó}z’Ý¡Å5£6Z‚"™ž?=Þ‹½r¥#+32àË'SÍ(ôÈ@É]æ6np(x,æî|V ÖÞJ'†Ëkm¯ÝÇCÂöðE†8,è>aé 85Âö»¡¤vdc[è™÷[Ò;öö67Ò#‹r3 oÚð¥Ù2ÒH)êKky§8À<#¼œ¯eÔ 15 ¢u—i$ø<´~a‰µoÙ¸»%¨×øt@z‰«&q²WÙæ¶ <%‡ŒX– Mÿň‘ü|£êêjä‡lãk=2‚ÄÑÚ³sSL&Ò5Ê”ÀŠª•@e»—ºaÕÙ$Kà¶®âÃüzýI`’.]TÈRŽŠæe›6×&jÉŠé~à¯['´ÀE®ÄÒ¾×Ä,«‘NhÌ…8†ìîbC³Ó`® Íe] Z+Ëù¤¸ÑásÄ«øÒ_?)´\KÍÍËÿ>$­×çjê†g_ØèwIH¡b]½^åþÀÕÞŸ,§é—¯ßJKòBI›mvk Žu"ψH¤¼¾8,9˳¿9>ñGñŠ.mú¦„.1ËžîäÇbÞ¿Êôœ×¿Xtù’§‡éÚ™°ÙÍÅ8ë±+ˆÉkn“³P³'ê]sx‡z¬q)ÁPÅqìÝHð$y»ü‡ñ߀߆íkW39¶›Íì$ûù<‡j«¢6³Óšº¡@C!Ù)qI’8™ß´G•BA¹ýŠèž&gDvp´9ÏØv}0ÒÒ˜êÁ«-ײ_¥º¹÷lŠå¢»|Û3[*5ö½·ýp1μ~ $òOÅAq™Ï!èæ¥^ JûV73NB ÛÍ£²S6pYˆÉ)ïæŠVÿÛn¬1 Î }ƵdcJqÖËÖùÊŸ†Ò®ˆw*Å*çÛ·úœ“º‰}=Íà¬öàMYe=ò+ËpùûüþÁîp>’;àÔpÄäÏpÿcøÇœ\d8øg%¥Iãîᆇê2Ne«­.ŠxïWÆ0ñ.›*ÿ9†q$ ¢œ^Á}Dà_ÞvÞ’En–œ€U¸Z<eì5ן,«ÐuñN²nîGïóÑ/Ï™7Ý9Õ ¶•øÁúY —}xÛ„²„•bÄ`e˜B§¹‹!ÂÌ'ÖBXhrÄ›SM)›?·áMp¨hƒqUžtÒ¦àö}Õ>ÄP,@ØÜQ꫾†ûõW**꙾ EÒÅÑ ›ë>ô@‚ZwÔÞÞ,‹IĬ[qÁ½ÄÍs¦.G÷ë!/ðW"´'–3/pr’Î8W –½‰³ò£íô˜Êƒ£zË@'µaÞ(º7¹¥nqlëJF3v7²¹öº*NÊŠ-àÍcÿ DÜc›ïï ûS¤Žö/Tñ[À5SVxy#íršx-–+Mx#]èܳ’cQ‰¸kûØS²‰)ø– S rðuÌ úÇ™c.Qôt¬/˜æâú¸œ+8y»˜A–›DívÔèˆÙ³Ù„úÅÔYÛç#7E»Nyü"ý~Ff>þ<×p ¨jÊÐ{’Ϊk² vŒ^`R‰LY`~œ¼IøþOo<3_´ðì £ÉH¯(è¶7œÌг9S!‘͸Ê–v—~ÙÊ»•SH_Œª• qC'Õ›‚DMò*ÄîPIÉsò&Ôò|ä»êo@lòr±[¯l Ûy€i”ì©f7±9ïúÜ[¶<§¤È,^4ÓˆÍÕ(|0Dº•ò÷_km¹ñÖ Aú4ÙÙËìü|ç×o@H o_« ÷ÍÖ9íŒÈ+á|5öÛ¸ØY•¦?öžR¼ &b>Ã@ý@'ê­[­žf9än˜;£­—îTW‹öYžy© 5¾,ŸÞA¿ð^§a ÇÕ+*bÖs‹JŸ îk:|AµP-R¢•ÝÚÈë–¢4V_°¹Ø,»&4Pù)É]=)®*uëè“Ñët¶ðb[ÊL§Ý”=°é›Š ƒRH³a euYƒèOYô›ñ-ˆ î".‘;[¥ÅS*úr/Žù%LI÷ö/tMX ûÞá}@ÿš¬+ö@Ôg:E8¦nR#‹OL7¬”ñö\{í¢Fаߣ!±Œ„ãxÍÒU\E=bÉ,B“º íg3ªü­ûHûåEÞ‘äÈ¡­ÙYÇRbé*7ÄÑ»HÜܤÈöÙû© oœVï©­š¹þHíaÕœZK„5Cž~P>’5£c@¥©šªi<¸®»¦ë„v’4¾‘Lâ5¼ m 2ÓY7CêéÛ@ö9ê±oÓ§ÐI_¿“†–”‚¼%gLiÑ×íжÕ8<0vœ£N³x¸+Ë^`]Záx’à£.°©tÓÆ÷ es„®ƒŸtÆ"enûÓ‡Šzÿ¢“>Góf•;Ò‡s‡Œl™Ÿ9«²pHå9p¥ÈŠ|u䜑¥3ÅùDdä ë>º5v*I ?þȆҙéìüþU=¿3I³忽=àb¿GͪêLüG»úMb•½F¯h­)‹\ûi¶ÊRaB|UÔVÿm€ƒA;³îˆ:•}ÐäS¨‰Ó‰½õtQkáGIœ°-v bÝäîëp§ýÁ#8«ÐpœÍ%oú_b§ôªm<#]®'eSÚd™1Gµ¸obÄsÐÓíˆ>ÐÞtñÆ#óæ$jñWÁwÒ~, ÿ~ÙÜÎËÓ{ê…®¦Æ×²YB ߸㿤ã9pü§HØí„9ºZ¤€/ÜF¹Z™•ž•ñ„«â9poº}n ”dP¦oåVtz!°×>>~{¤‚•îæƒÐûÛýRC~õ°òÝX&a¤©›öh\±ƒ¬€Ž27ë"ùPŒT³N¡ªý´üjݬQÒVI!ï‹CÆÎ6>d)Qºß­µm&,°ynkÃP·`¬áçÉþDÖl„;zÿ M‘Á“üºÓ»Žz‡ ¶Š€~ŸòþKøöÞH´Èc®j\Éü¤aO´‡ ×ä,Á~Ä)á LqŠLÅ2ÍP>í5¾ò¨<†èZŽtË“d z¥ù§­Yé;xãÑäíFÆÇ3úÍ)ä$6&µ5§ì‡Ï,Ñ–ãx˜g2È”ØüùP}ÍPƒAÀq¶ˆ` Œµ%êõÂÌ}9Õ‡åo³:Æ»#ë!}½ùÉë4Α Gp1ÔíÈ"nqBjé üCÇ9‰(Ü/ßb¥H2L™ç@µ\ºÉ/[Q¤jöì¶ 7SçýIËJåè«Ĭ/µ½ŸúóB%R:jùù²>ù‚ƒ_FF•ൗ 8;ø­Þ°EÅNœY?^ªï}Å‹Ú( Ÿ®¬Oò4ã¿Gì_Ilu2$©mã· P–“-Ðc„ÃÑR`Db’ºz Åp¢šk1·£u–Û^À„ký fLÚ)è¤R$¼tC´ÏËìH¹J²ºÑ2h¯Ó#²ÃvÛõe7€!^AâÔ÷KçH$9ssÄHˆg5s±ò&=»ÍÀ|êÛ-"¡ŠÐ6Rð5_«ðßÃxIb0o“¾~BöcµO~IÓ)#pÉ+E»·fHÍ­d-$½Ã=Ý’rȼlL€ý±ÖGj¦¡}5´>÷ÓûÇ‚ Öø;¯óPΣ¯„…[¹ /ÞÆymZ îá³#íýãÖ™PΉA„$mÎ)Iœ>‡ïýV0ª¾Bâ9Ÿ“òë–p‹lð¶²ärs»ã£P$ÏI‰“(Èq‘¿¿ÿï•aëîÛ'“;SÖ¼€^×Ã'éMÌúŸ/S ÓЉIÕ« J¬S;£îr¼â¾\Ø€4Æ0<}2?ï$2íÉGÊÔ¯k8¾›ÑHÊÊ2?fëWà lrø&ŽtlÿÔï€ß^ËÏR-…ªAoÝíþ„<²[™u‹]çÄÚ¸ÿ÷¹‹Œ$ì„wpê‡{*^ÜáU9hY‘—"õ±K¿æbdý‚Ï |Ó‡Æ+xª¬+–1_Jyc§ŸŽrO^ú%çyj\+}¨WCŽ„©¿öy@íõ¤ öp®E6ðP#©áñ¤¢õe‹áqKÁ—¡QfÞ2Bšµ;¥.ðr£ÑD‡UÎÜp‚ß}™5WLš[fÚ­ E`Y×1yàíž&0ô8aâ#TêAŒìßÜ Râ÷Z¶÷³êã6Äë÷ã…À—â[êí!DMéƒÆ¸/³/Ýaê´S1÷ëÁù<ï1ò#üæ£IØ––Q«bzHû¢£ª•'%Pæž ”8ïA"Zá·hůˆ—lKNt´:Xö:'ê‰X£õØuDŒµz»ëHYfŠQ—haT*0¬1ðvÅíf&ìÙîÐJÓçbé1Œ{«­2ƒW´ñ îí•âFhªÜ¾º’WñìA‘ç%Ê <¨ší M#¼Ü¯¬fÀŠpt—HèÄõ¹¸{„èpBWZ[ Pe#UßlÆÒÇ…±Æ²é¹·´rf´¡Káó÷шûÙILìQúb|€i•÷ 6ñ ã×á· üV¶âEïrx† d23¨§z ¢>_7 Ô…Häutx°W ®YéΤíó¬=!5L°©†#p]êúØœàŵgvË]Cy »\r¨§®b›%âSÇUUT b€¯¢¹un–|$ãTbÍ–ûXóJB©ÕšÖÖ‹³Ä%fY߻˥i ‰ÙÁÛ®½æQ²']Yß 3Ü!Щò_P7)œn¹T‘íÀãjZõ{‹³`è½Ò§{$‹ˆ¥ª)8oö°˜2l+C…8ꤣ"2^Íû²»ðžÞézèrŒÁS÷ê¼J|÷ašt´•ü‚µ¨šžFùƒ"Â&kø8½ïµÇ£qÙõsÞ–ðPìHýËžE«Éö¹4JÛIÃŽ·P#n#˜„fâþz© ¨cvü]‹íV¸—xïn´)‚äµQîÃαþåqÀÈ#,ÍS?‚1p'¨|0¹ÁM‘áJÓ¬’x0C\'ú‹¼uÀL«E^«=—JoO¹œ‡íC_8 ‡C‹K7a½e¯¿Ù$O„Úá…ZêdW@TT^4”œçVÏ«O¥ƒù†¨´ÕYè4ï3h3—‰ùlXÍ_³¾\°oeâbu ÈÍú‘íëCž³†ã¿›ÄÜNr¢ÿêÂ\ œ…«Ì‚ï¤BÈ|í°¦Â4,“=ÔaÊxmú>ä::êÊIäó¡Ôåž³VÏÆŽ¿µ2äØq²¬†’“ ‰-×Ídz®©¤9ÿûÅùÓË£çV8ÜmËŒd÷câTÃ'÷sR){×ó©´ìðE±ñ2ïx–~91¾W®¤¶¥¨ÍQ¶‹Á­‘áä5¸˜4FNJ’1΃˜%ÎÍ@qÞ¡´Ú ØŸ?¨Po&ˆ%VOo Xdvо=>…{Âeûk™éTd•ä¾?{;Öí¦ü¡Ÿ¸Mùj+qtÍ1P).À=té±oÞUæÅ†°æÀ¡‡RuûÈòNïòk¢? –?z@ÃYß3¢sþ,_o`¬´=MÌcr\…¤€‰Ã=‚áª|ϾºVCvÂÂXÚy”Í5s—"Pœc Oˆ•¿6‡»Šºç;^B‘Y”Æé‡kzÅqÀnð×ìYÞµ(®$Qj¯K¹E1ùÄjöSC…?‰fhÜîGX™ÐKÄï½ÉÔUÒ´ŒÒ=Ôä ‰Hûø4+ƒ¿{•/ƒ ‘\ÂwÔ•›øÉ×ÂÒ"ʉ窷æM(°Ù ßœG É ú9Zc–Fe96¦Û¾ã<ªDtíR*Îåa}ÁcDŽո¢n%kùlcîº;cÝŒ°VƒM÷øFú2ã/üðtð8‘mè`ò€`Ã;9é…Œò–"ÕTÖ^nlqÂæ-¯ÔÏyë•¡mœ?ìÍíòaùôø¸Ã››ÿ²ÀèÖ^äùË®Rµ_³»áÀŒ:½fŽ‘`„šòà4¹æ‰$¥a·Dšì= äu™R!h1ªzÉ^xùÓ2Kl‚Žž•,Ñ^WÔuCê÷S|ödž€ã]ñoÀ:qê*·Ò–½ZóAçìÝÃ8`oàPvI¿vÊorÜÒ²—2ºëQÖWyžgŒÈFñ„º®•UÄ0ÖÄãÁ¦a“.ZŒM=¬´Eâ°¸w*­„e„¿Þýr Ñ ¿§úòÃgŒp¡È¦ø.´HhŒŽšl–ŸL¿¨…™urÎj¢(ÊÀ¨I–IW~¾ãlVlç›ëíÂÞšyu%ò´¥"Nø-¿­Üéùh/8C¥ëµ\êJŽ¡â÷ÈKc”àN¤¶¼šÓDÄwrJosÙ+œCX÷:?ˆ/DR\"UQ'¿œªõ'wÂÖy†"|±”¡ºf4(«?Ý©\5š5;J®1ùKØJœ i”ʯ²r®Xï2Žeµ|3¼›×[5ä÷Ò¦šÿ²z GW=R—+J(ñGðü*𯷣À8¤û_Âî/ÆQ%–´-;r¦¸bc†+Ó²ÝC3u†ttúÀ§"áÙfQ †øª ç’ [×2ˆt¿+€ÆÐv8òa¬$Ü÷HSÅÕÏ ‹bÖFˆÕ{ž¸5£ù–n¿s"<µšâ¨[É.âkHJ@È©˜­£! ú•Ù œa×è {_GYà þyÖ;˶"~AX¬ýA‡ AýwOe%·ŠgûPQšÙ$Çó…ªÔ‡Eê.X¿œ\Å‘H®Õ)òiOì‹,0•*MÙ"Sº„l»ª-gÖNÂ]¹ï‰sÕ“åXLÞ(¢sFŽ×q<òè†]ì(^ ôšÓæÊNCБ߮A¿ÛrK;òËý%^¶•`³)·î¡K¼ßÐ9Œf:¹Á<üx˜Æt¿¢ŒÑÈRļ™[îÇwõ )SS,L>Žq¬ÆÚò4qpM?¹-ä”蟻÷»p ämš!ùÌkòQ®1ô4ÆkÔ€ícµ,>Æ¡0=ežÞ3 Õ=èP(™ëÆÝ¦UÞ=X1à0¼¦û;¥ÿÔñåÏ~ÕŸãù‘€‹"r±råê!;;÷Ö¢|Ê;ƒD{ÛD­,€àLõãhR_k›¦±¤\,Ši1!ÈÕÎh/.îG àVŽý„ˆúõw`©7"ßÚ„‰ïIcòæYx­ú¸¹ÉÈÙa€¹+<„Ç%áõ¡5Kdy|¦Æ¨|••.]h•‹dBvÑãpjñSÊ'ŸoŠ×o ŸKä“WOõI­j¹ Ô.WB@تV}þÆj> ÚùŒ‰åjF’ðÕ…±>ŒŽÔ¥€î‹:3;cÔNe¢Å FaZüUÁfŽ j°öù¡uä±V‹´p÷:›«Çø'•­”põâh‡AGpÿ¾œ†¾Ëï1Úo)O®ØäùÊJa‘]/q”­WÕ¹àL#w­Ô2o× HÐËù´-ò†„…ÙËÇ 9Ñ’ ád¦qÕà&…Eß¹ÒUZ{‚ È|T´á¦ùU>lÕ,dnxŽaëéR Wª]xÁ攸 Y”÷‹Ý–‡ryÊ´\ž÷ä}ÒK[>i·iÓ ûÜÚyî:R4Ÿ?è’¯å¹tUêo‡Í„bY<·vØ“!¯=½ÀÁˆÚ%¹iœÞn (Ë@`ð›Ojl+hp ÁN¹þ(þË^8žvmDõõ¦º½ô<Rôþ´:™iŽÊsÇ×ë“ÿ]8ëþm,ý ˜jó‘„´à¿ej-«ÑY0 âýºUž“¯lºÎ!vHE«†¤ Y0ÍwœgÔ·-ð?èÏH$—&!Þ_/CêõÜF;0+áô½sÍl[ÇMw@ÈÏz³ô¶—¼At>²¾Uâ8ÜÜjS§.cG¿V>j5÷[Å7-Ñù*áv>à´yg€Bp“$êÞÎÍ…Ú«ÄVÙéà=:tÕÍ-ó ñÛw¦§U¥#Yô”,3›ÛnÛªÞ>aML|6ú+&¬Ëõ Wøšr9ìbxi®Æ(çô¬ ê/~-Ü‘òYl•Jœo­ÌAoHCr!µ ŠKs\‘ÖèÒ“~DT°èÑõS¸J5Ä>ô—õä)Öà…/çSäÜiooùc}:Åí(°øµ[ªº¿è骦rE Ñ{a[‰Ïî‚•Rz¼0a\›W%p³žfu@L‚0º'9ZȵDO1†ÝáÓœÞôeh©ñ( ¨J¨Ï‡ÆR®´\ίѢ“8ZMJZX0p“ÍÙMa7OôëV>êa#Ö¾úWMà®l4RX:¥7h#Š%õpïð¯_^¿Þê˜ÈZý¥3&ãæ(VYì™ÒzqŠÅ¡Í|Ø,—¿é»íö‘*A¡qìX:ªJÅq´•¬x²u¾Ôž³* ¼°¨ŸÒÑËnÄ61èâhiªj½w_1áÊåJ ¤ïrÕ P?÷Lqz›(®‰zD‰r]¤äö×—…8 ZÝ^‚€ÞŸ&ÎC×}Kùu÷t†E|y<(‘[Ï¿|cˆ²é"['!Ï_»Rº-¦¿¼Õ>ÑB?«ÀV$µJ`#^âncÅ(&1_ØOÇâ>דÌuexGY空Š.Ò¹rVH?ÎìÛƒ Jo.¸r[ùA¥“L–Hä¨ÀÑg8f P*ë øî+§  5ºô¦n娨Îïx­$$!×9|Ê÷bö´»T»;„„ó˜qóÉ–JøB zªÒ¶µnÃ] Ð+F§àâNÝ1ÓC…m©¤¶nóea„Kæ¾¶ð‹ ÈÞ°Cd3]fWÿ‘d•Ãùª]‡¢äUBŠ-HŸpªà;d9 n0”é%÷_.¢šDÇn»PÖ-‘ýxÃ\ô»á==rÚ¢Ž»²XEn(8ÆA«Qáe%”É/Y/øÓÆñyàgt~Iš^ÌõÁgS¿· 2ýîdŸEÌÿ­‡žGycÈØ‘bTtï˜OÓÖ“iZ=UÊgˆ’ýŒý{š;è­ª¿bg_oeß_[Æ5ëÿÙÖÅs°Ö!tHȤÒRbÎýôƒçuXš@nÐ?‹8Ü|Gá´„ÝÿY”ô¦ #È^Ü‚6ÒF°Ó樰&ÏppÎÑK3@æÜ4þð ©¾p.ô¼¼s‡pçoGÿØIaN$ }ú^o*ª²QÔA%F䌿VÚ6Nî1 áËo¥kÎÞŸÁ˜¶m9Õ{#ìÍ4AF“ôNÂ,´3[ñž ÝØ‘„Ü ö‚Ü¡‡cêrÛlŽ2úª-Iù='µ9Z·Q¾[µÛ0É¥@çuR¾äŽ7Ÿäx¿3~ïÍ™*ü/q*[dnð+Y=ŽŸ½žµî4N_„g!åµÐ; ÀT„© r’÷›÷LAw.aÏì˜ì£ó€î?Vé½³ž(±W“g ¦Ñëî`0qî<¥ý¦øÅv<œ—Ñö,Ñ•BA+UÕPXt”?!}ô/òÞRžS= ÝFëúˆmܹ-)œ&m|¢ÎŸ[v­ÛDîe$M}MU¾­˜‚1(3H‰q‹`³å‰)¡·}Kà7Sâ*[ê!fšN犰p¤.°0òaŸÍ·\ÿ‰RðÄK/¢UË4faôþxF’RJâ‰Øê¸R^j#Í.Ùos†¢*Ã`%|]PkZ(0Þ+ïVº5ˆ:á ÇkåJ †ë Äd ]½$,­}Ÿ• iëªéøGù%>‘­LµjÅ ¸bÑá°FaåÈke¼ÿ¶;=îð<]ýý·Ï,s-w Õ_÷}/jz⨖¼„ÉÞ ã$à‡à‚†(B~aõduÀfÌfÛ‰ A}õ‡Ÿ[õÕ+›Ê»H-¢97/JòÜ’¬÷'*5Ïb,ö%ß9Ù³ÐDM6È·ï}³÷ëWß6\í†ô©-Hx,!”±: –«2àžKŠ …¼PŒDâ™·Õh½|à˜!'Ö…;À™ä7Ê’¯hæÿq¢Ý$€y—(Šú@v4-ði_D"AÈ—P2ýsRžêU”Œ§~†ÃöÔèu®ÔÜÅ7}ZÎÇWä2@Æ;¢Œ©#¾µèŸO?ÊV#šÐÅz©ÌmN¼~ÿ´'IoÃmÕÍêûZ!ÝC ˜ý€”>Ä{A¦A¢ÂW’F’¥’Á®¤—ß§º¤oŒUbj0ý]/ŸF ßúƒBÌ­'{¥Ñ[E­­[å÷;×>µâåüÌ ˆ;µ¡µÕÕiÉ“[ ç¸/²Ñ´Â¨ÜâB6ö]+¿õo£ög¤Ò¶ñP©±ÂÆå kod/¯Û… m~ý•_…‚8O“zš2Ý5ttº“Þ|÷íä7í¸>„éÛ¯üEùQü>e4½XðüRÂl¬5.·¬äíaôøÎ¿¾ dä„ÒÊŒ¥ñûÈ9¹øÂµ¤ Ì e‚†ˆ'éSú¢»CN[ÉÌx!õ©š08¬ñ:ø~¥Eä¡éÝÐéSóœçþ¢°g+D3… :09žO-ërÚF“÷3£Kú‡)xeÜNB‰O4sîí`Cèþ,ü>WFÁêÙn"ŒÍ ºgKÓïÃÛ{ÇoV·X£‘ÔKÖé:KeÁ± Ú˜ÿJ˜ $þ°ý¢ø7»;)Ãû-Þ¼5“ímðè‹…2"0¬¦ùË‚ÖA¦~`,: @¦•¬reSŠS°MÒ+T9TnŒNù`p¶Di† ‚ºO·;BOhËXqPj‰gô…„ë0ʤÓßá@åb/‡7¸oMœÿØpq2â±[湇Ý0£¾„3çßýäÖ*üŽmßÏÖ²ýéNBS·UÒÈéõVBȉ“2*$Ãn7Ô[¡¢à4³÷IÓp^CÎõEÔzøiHDи†Ì:˜¡Á¸9›î¨k¡ó¦ŸÕ¤ï,í¶põ¹$žh—äšàÆ=¤šÊû¿÷¹wÜ]Jg6n“Ç·ÒÏäaèú¤Ñiœ>lÝdå” ;Ïd!«hOƒŠ²[ÏnÆÓ©=â½)løe‡…¢÷LÏ(j»'f¤^—%ðÞVMqÏQJ ˆ¢úËœ`wÙW嬓T9´  Žž_ÙfayôZ!ïĸ. l,µ×$Ãü2Ý[$dL¤‘L´ß =ŽÍܲá;ª–}vÔ«Ì$9 ^É;$ ®\EmåÚ%4¥$¯Ø~N`Ö.±«}Tâ>b؇TÀVç~ölI}™:ö›fTJ<¦™ß²íîr"IbËrÓNo{_ļEïÑ$ ô¨z+ˆ5\ª?¼ûßaY¼rÛD‰¼¢yP~¾g±hÛžk>áà$ä.Ëj·æ øŠ›ð÷_ÉSÔ‘QñøOÑ_™ñÓ£ÆfÄÀ!‡_„©²UFfsß{þý:° #”—Õ®úoxpY4ñª­›jQQ;®sIÌORLCà6¼ÜÚª½ÎÖv¼hüj Íœ/nþ€|ö«]‚ÒºuÜ¡Â×à%¿ýdŒÓ[‚tª×ÏÂqÿïë¥ vÖÒ)'´×“»ÃÏJìCLغ¢z4O+K'U¦÷F¦chÌÚx Ä ñÁ®ñ2¼½§s-û‹Yx¾ÈBf£Ú£Hqf¹—±x÷™À]1  Ù}>Òô³3äñ4±y‹oªè Ü™ÐMÈý’©^»Žqœûˆ^ý¿«–¾×2c~u¤#{ ¬÷ d¼?°•i ‹TÑbp¹Ec~P”{[lÄ8<ôzõŠwq"{“‘.“Ódçe?’)_½yÆ5¡Hƒ»xDãïôÈf|Š«½mtö7†ú¡°‘uº˜ïüùÎ'Öl} äè§m§Í¸™& r¯yøR”‰Û)“ÝÎÖ /p¹¦Êìz‚ÈNî6;ÒÖ É»é6‰úþ íåuÔ‰ 1Q˜®PŒYš{;_â®J‚c{wËä6×Í]@ñ¾ÃäÖú¾³Þê»W Þ'p±A~,r?…>¡ÑÑ*.ÆÊ#ªxá6±|ç¶š) aºTWƒ£†K ‰Bþ@Í" ÀŠüoiñ‹ÈâvtØsŒÔéDüP[%ç„á]¼ì ™ÈáõWIÈ2ÖMþñåÝJ2^Ìf+Ïjpßo+a1º=•ðÓV?C¦xëœD÷õªP¨lÐN ¸¬‚x ¾ìEñâÂSI*,¯\ó€ò¦†ÂLjé ‹,Iù’Ó*ĨðitK$!‘^Î83LA‚xž2Ô _t„À3Õ—À‘ G¼7dmK_ŠF½'´n[¹»„ƒµF3Üži> ÂgºëP v>ÞûP6ø ÐÇ12ÞwO¤d¹ßâ¾IK;0âš Š­&65~Ñfbr»±¡äCƒ‹áš&Ž©jdnÜY€8Y…$yk‰¨W°%“SÐÂV+9¶ÞƒƒË¶ÊMû#Z+v£÷”ÐgñoÐæQq&ÈÈ(ƒ½’18á'šÇæŽã“ï®L ïOPõ@E’ðhSÔñpj?aîðÎn¼ÿIØwc°äû…—ùÅ$°ÆzïWÀ”Qïû_ºu©Âx ‡¨et] èÑõ5Ýþ Õt»WµÑîÅÜAìAŠ£2Z¼ +g]F?w×'Sx|ë´f-Úò$¡?ßFé‹´ÌRˆñˆoW w 4kà˜ù’ ëÅòÌ^Ô¯ˆ©mlc$Än–I²ü7µk +­²Çø¯KáÊYxÙÛšEÉAiÏŒ0-=OÔi_4EˆŽ‘§kÕrÌL>Øê¿ò–þŠŽÓ2'î ˜‚íôœn¸9¡ªúË‚¬Û‡Ô¡@— j`<ßè¾ç-ŠuQCÑiÛ),ƶ-“RÄÏùnØ"l6*0¦(Ž8QY7üT^ʸ£)˜Ó<úø“9Ä8DøNãÅ5OÒ«ï¡ >ô1¶gGéî,“_gÒUkëKA‹<¨ȸ_ƒµ’Ê™ÓAÅ*fvM°»t@ˆÙ1YÈÏ1Uƒ4à¿ÔÀ.Z°o5·Q÷þ¦O?áCO85p3³M‚çùž”½Dð\›:°ÝÐÉ[%ó¼}mÁ7u‡­)ÚÙFPõ´þTòç£äɤ¢×æÄ2‘÷ÙA‡rõuV`a¤›T]YM ùÈ’y9œë)3Ñì»Ý±…¸Ara[ çÚ~2O“8º|VdDIƒ)2ý³?О9{àj Àn”oðgs£8íä㾟Ȭù‹ÉᯠA/À½sX“$6½ÜC°| Ù)h.}é‡*ûm›WémïùݾJdï!ÑA‰÷ZdÒ`z¾HÆp"˜ ³hAÖ3ÜÁ]_ÓHL¬êõk¯Ý†>>®d¶‚n××Ht«¬¯(Ζ"±¸Ô4*-ƒ6w_—Ð¥YÎB3ŒA/°~räS°™ÆG$²©ÅeíTGI®]˜Ìš›uï˹ð—™ú‡OÓɾ«Y|æëB_“ô¸5`Û‡÷Q‚§UÌ£Ýݸpve¨¾ @ìal‘å3·Ê7~Éo;¥áù{þqq`lÓs…6&ýF  ° °_N¡ÓdK*¡Ý,l*Q'€˜c ÇÜàeÅ…„‚O¤-ðêµB|@˜Û 'Éf´l‰§`îÛ“¥ vu¼ì̼Qê¡ýè,ÀdñÖÜà+Çoüd† ùúÚ†x£0O¤–åÏì.¿© ÝàyIe1?÷ø@+ÛêLàcã¾Àª3ö¸ijÈÛÃ8ª/Ì>Ä[vêAïk6E¿Ãî_+ïïv"q–ùØ'—‘š"T1æh;³Ê»qßøØ¥yÑt²?HÖ;ájœƒßñÿ®¿Ó>œ¢“¨ÃæùPs ?\i†ë.zt0{m†¸H'Ü-!\O•ºí#× Ýçk“‡Õõ  ÛÐèÖ˜Š˜.}*p³·õø¸ô6&Ý\·8]õS«ÛLæ¾K_—}¸r(™ÎFÃЪƒ1C"áiyƒ¸*:k*åPŸÆmŠVô÷IUqmOÏÚ4@üÊF7—%ƒx4?‡^sKõÝΙl•2™˜ÍKBc^ó¸Î*>ǵì8æaŒÀØÚµÄYvô‘ÏÁõB¶ }dø"»bj ?4HÚDMáMâU…2wÝx¯ªø*³…¯ÒÈÿ¶·¢^µ¡Y6¬¥?Ê[j$ŰɈMµH•ÍÆæLO0aÒêv§´÷°O¯¬Í?¾›ÎzÒ£zóôL.†O¾„"Ôa«U<ž!¥ ½Ëmß9N/€ùJ,rýºvˆðɾÈÜ»iÊ‘°H#Ê¢ýª q!2QÒGSüzŽ&(â?[¿Ë®ËaÊÈÜÆ¨ÿÊH='˜E JòW˜v?[NÅN™Ì%Ìðž•Ǹ™gïðàõvX;øÿ¦hPnŸëF«;ò¨ÍeÏévN™˜±ÙrÊÏ'8×€LM/TU)0o_»ét95uLŠUÌÎ5þø »c¤ $„Ú•ÇwÙ«0ÞVðqì2˜ã3XÅò×и–Œ¤ßr{Œ|~W6·ü0lší‚J~£RÌòbnêÕ E߀·\ÙXËB ùsJæ©Øp¤9-bI–/»]b?_8]N:I Cœ¥ÉUy8abªÔW@€ª¯Ú ¢ÌhetŸÕÜê©ô{Ø8ñj!ᣖéæ÷XÔõ ?÷ئRW®òÎÞl« Ú›Ù­Ü0Ëz‹5Ž$zµÁ "§#ÖË]µå™|²Ñ«Ý5ÈØÖNÁº ¨oÄ ±¤VÀ=y¾c¨p騂Â5• ë«s;ZP­°|5½Œˆöý4´–ᧃå©›Â,èô)¹¡ÚŽä:Ï"¾ß™²ë±æÑ«’ Âã FŠ ò}”ƒQÕ ruRdÜjÝRyÊ*¿'º“¦#òäyd Y,èLä.K’!ƨÈFcæ¿à‰uhÝX÷L³ßž £ÂkuD¨IseP{5øU†¶U¸fGÿ÷9¬ÝÂþ6Æ·æÊ#0J‚·‰E«ŒõÑQ)¹uªf+‰½èš‘·©]àJ;´ð€%qˆl\8ÐZК;ã»)`‹ò+p¨*, cƒL–œðP¥¯< 3G5Žý°9Ãà¾ý±å!x$: Þ]È?ǨT롘,çÿeçP¹Ä݆ݷÿJç·'ÓËÇ ³i-$|®g}™{UÚy¨#òNôMØ%2m]ö©À»•Fë(áÖÛÛ,Á‹£Ôc«Ø8²AœŠ-æ%(%úô%þ9…/¿´Óyins¸Kš‡dXõ&¦#¥ #Š! Õ»q\3Ó¨´ƒR,-ƒÑ‰RÅ_§IˆQ2«k~m·”±Yˆ¹ÕC$ØÝãgŠteO’Sиµp;ÐÓ[?~¢”ýÙ´F¨ç<Ë?ÛÙ€Â9Ly(´Fé­8†¬Â¶Œ\L*‘³nÌTK}ˆluÚËR0Žàïê^?¡(¥9)÷´•8–½Ê† ¹Ø¾]håÎ8'šJ~-°ëú ÍlXp˜òd£Ð⟄ȤèÿP:hè+CjKÉVë<òË:ºs‹9€Î²ˆ”$–‹Á ²FjÎÛßUêb<*:ycÖWÎщ‹#×Ë™a‹[=Y†ZÃâ‰ïõk¤ÅØZ’ŠJ¥3%Ù[ÑÇtðÑÕb‹¡ToFCàôTÌjʘÐ2¬ðXrÚ•©"K‡\|/É“ÖU!§pæ–$¢,*¸d»ÇOIla´BUÄ Q½ö ¿§w)mY«ö–OﶯóõÜÍרû^à mÈ;Ø(ö­êÒBÜ nr±¦”¬$ ‡)ÞZ2*×}„çô¦%p¡xð©ì Ó*{‘xÙ¥DC ÿ0âåpÛ»džUK9Tg~à†Š –i ..$ñRöð©?k±ë$w¤ûóÁR–ݱ:= ÷qØaŠ…ÞÂ6/ˆÑñ»N‚Ÿ–ù¾–[S!£»F7k•& ‚Ï4M)ºd%Ù¸nvG‘Ö™xAQ¿&ÔÜ[̈&øŽ<«³qÓ4á¢õö Rìp8@? E÷ %騴žÌ3 ÙV=8”±\æ)æ†ãºå”åÂQ/y‚ê¹_Ô<Õ•Øì_ß–/^Rwä©'‘x½˜Ð‚ÎÕePÉô%ÀH®Á5õ¿A& êtü˜L=¸Þª eÁBkz^‘¬_gâ"^üÝ)|ªüú=äbÓ ‘Ô&÷™G]®ÓÖã±þ’=<¬PX#¡ç|æ°| .þÂ4zŽDÓÅÑ–7l{~ÜçɾÐQ¡‘¦?«Bz¹0ÁoQÈÕ¬[ÙÐbàà@‰5]ña”PÄ P¾Ï7½É¶-}L·b™!Z7³‘ÏØ2Ö©Viݹ ¶Üðdªp£Éåäp“$o¹VE‚Šuƒ_QÜÇ«;6 »<-ü“â8'=ÄÉȸÿ’2¿‚?ý×£= ~ pò@ÐxýõÚýˆ¸–)°'Zô"ëT¼…ê匭¼+ՠ¿åM‚ª#ê¯3BqÀR>1“ÖªKj0¼Êbí¶bÓ “õõS¢a,Âê}¡Ñ‘˘'íôA6ï5ŽÚDFIŠŽ°˜ZÎ4¥kÌÔ“78¯?2͈RY𗣋TCã´@ŠªÀ•)@5EÜv‹áöä´è^Âð”«Ôíxb‰Þí=Jv¯§\=eÇ<ø³®Ú™>—(›ºAgXÕaÖÜ#ó¥§@¦O䪨¯.ÿð£ýŒ ¬Å¶©ðêèƒ3Y¿kïÐ;Ù1ð[ê\Áâ¤ã¤†„SW¢V¯‚–qit[ÎE’´PôäZŠÄ{÷/€,é>V)H°Hsó?‡#@´“ T©zâ^œtgqëºÌåÏ¢‰aæD,T_~á ‰ÊÖ{^~š¼ºÙ4g.:b+ÍåA¢ºêbùWÁ™ü>ë¸ جŸZûaÓX“¯º¥ˆ* )Pù¬Û¸H¹×d€‘[ Ù…L)éôì5lmA€–êÑŒ·fÎvè²k ñºñçž,p¡ˆü®vEÃUÃ÷3¶ÐQÙ7yiÀ›¡ËŸãÇánE)‘!&µ%>ÿjÎÍ£ÃÌÇaù×ðÇ^·\hT•Ž&náÀ²žà,#‚ùšÇäîJb–¤ÿìU/=¶G¤-;8…r#þQ £Z„±Á Z0K- ü•ÿûÖèæô.`z(º¾Âpκo“¸;¹Äw‡™'4¤ð´oÆð)È,̘[|<„êeTxÿyè«æÌå‘쳜5:€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/s050000l.afm0000644000076500001440000002272607056046554016421 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright URW Software, Copyright 1997 by URW Comment Creation Date: 10/21/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName StandardSymL FullName Standard Symbols L FamilyName Standard Symbols L Weight Regular ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -229 UnderlineThickness 46 Version 001.005 Notice URW Software, Copyright 1997 by URW EncodingScheme FontSpecific FontBBox -180 -293 1090 1010 CapHeight 673 XHeight 500 Descender -222 Ascender 673 StartCharMetrics 190 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 128 -13 240 686 ; C 34 ; WX 713 ; N universal ; B 31 0 681 673 ; C 35 ; WX 500 ; N numbersign ; B 20 0 481 631 ; C 36 ; WX 549 ; N existential ; B 25 0 478 673 ; C 37 ; WX 833 ; N percent ; B 63 -7 771 673 ; C 38 ; WX 778 ; N ampersand ; B 41 -13 750 675 ; C 39 ; WX 439 ; N suchthat ; B 48 -13 414 503 ; C 40 ; WX 333 ; N parenleft ; B 53 -172 300 680 ; C 41 ; WX 333 ; N parenright ; B 30 -172 277 680 ; C 42 ; WX 500 ; N asteriskmath ; B 65 127 427 546 ; C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; C 44 ; WX 250 ; N comma ; B 56 -120 194 102 ; C 45 ; WX 549 ; N minus ; B 11 239 535 294 ; C 46 ; WX 250 ; N period ; B 69 -13 181 100 ; C 47 ; WX 278 ; N slash ; B 0 0 254 673 ; C 48 ; WX 500 ; N zero ; B 23 -13 471 686 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 686 ; C 51 ; WX 500 ; N three ; B 39 -13 435 686 ; C 52 ; WX 500 ; N four ; B 16 0 469 680 ; C 53 ; WX 500 ; N five ; B 29 -13 443 699 ; C 54 ; WX 500 ; N six ; B 36 -13 468 685 ; C 55 ; WX 500 ; N seven ; B 24 -7 448 673 ; C 56 ; WX 500 ; N eight ; B 54 -13 440 686 ; C 57 ; WX 500 ; N nine ; B 31 -13 460 686 ; C 58 ; WX 278 ; N colon ; B 81 -13 193 463 ; C 59 ; WX 278 ; N semicolon ; B 83 -120 221 463 ; C 60 ; WX 549 ; N less ; B 26 0 523 522 ; C 61 ; WX 549 ; N equal ; B 11 142 537 391 ; C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; C 63 ; WX 444 ; N question ; B 70 -13 412 686 ; C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; C 74 ; WX 631 ; N theta1 ; B 18 -13 623 686 ; C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; C 78 ; WX 722 ; N Nu ; B 29 0 720 673 ; C 79 ; WX 722 ; N Omicron ; B 41 -13 715 686 ; C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; C 81 ; WX 741 ; N Theta ; B 41 -13 715 686 ; C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; C 86 ; WX 439 ; N sigma1 ; B 40 -222 436 513 ; C 87 ; WX 768 ; N Omega ; B 34 0 736 686 ; C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; C 89 ; WX 795 ; N Psi ; B 15 0 781 686 ; C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; C 91 ; WX 333 ; N bracketleft ; B 86 -165 299 673 ; C 92 ; WX 863 ; N therefore ; B 163 -13 701 433 ; C 93 ; WX 333 ; N bracketright ; B 33 -165 246 673 ; C 94 ; WX 658 ; N perpendicular ; B 15 0 652 673 ; C 95 ; WX 500 ; N underscore ; B -2 -252 502 -206 ; C 96 ; WX 500 ; N radicalex ; B 480 857 1090 913 ; C 97 ; WX 631 ; N alpha ; B 41 -13 622 513 ; C 98 ; WX 549 ; N beta ; B 61 -222 515 740 ; C 99 ; WX 549 ; N chi ; B 12 -210 522 513 ; C 100 ; WX 494 ; N delta ; B 40 -13 481 740 ; C 101 ; WX 439 ; N epsilon ; B 22 -13 427 513 ; C 102 ; WX 521 ; N phi ; B 27 -222 490 686 ; C 103 ; WX 411 ; N gamma ; B 5 -219 484 513 ; C 104 ; WX 603 ; N eta ; B 0 -222 527 513 ; C 105 ; WX 329 ; N iota ; B 0 -13 301 513 ; C 106 ; WX 603 ; N phi1 ; B 36 -222 587 513 ; C 107 ; WX 549 ; N kappa ; B 33 0 558 513 ; C 108 ; WX 549 ; N lambda ; B 24 -13 548 740 ; C 109 ; WX 576 ; N mu ; B 33 -219 567 500 ; C 110 ; WX 521 ; N nu ; B -9 -13 475 513 ; C 111 ; WX 549 ; N omicron ; B 35 -13 501 513 ; C 112 ; WX 549 ; N pi ; B 10 -13 530 500 ; C 113 ; WX 521 ; N theta ; B 43 -13 485 686 ; C 114 ; WX 549 ; N rho ; B 50 -220 490 513 ; C 115 ; WX 603 ; N sigma ; B 30 -13 588 500 ; C 116 ; WX 439 ; N tau ; B 10 -13 418 500 ; C 117 ; WX 576 ; N upsilon ; B 7 -13 535 513 ; C 118 ; WX 713 ; N omega1 ; B 12 -13 671 583 ; C 119 ; WX 686 ; N omega ; B 42 -13 684 513 ; C 120 ; WX 493 ; N xi ; B 27 -222 469 766 ; C 121 ; WX 686 ; N psi ; B 12 -222 701 513 ; C 122 ; WX 494 ; N zeta ; B 60 -222 467 756 ; C 123 ; WX 480 ; N braceleft ; B 58 -165 397 673 ; C 124 ; WX 200 ; N bar ; B 65 -177 135 673 ; C 125 ; WX 480 ; N braceright ; B 79 -165 418 673 ; C 126 ; WX 549 ; N similar ; B 17 196 529 325 ; C 160 ; WX 762 ; N Euro ; B 53 -4 722 671 ; C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 687 ; C 162 ; WX 247 ; N minute ; B 27 476 228 735 ; C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; C 164 ; WX 167 ; N fraction ; B -180 0 340 673 ; C 165 ; WX 713 ; N infinity ; B 26 115 688 414 ; C 166 ; WX 500 ; N florin ; B 2 -174 494 687 ; C 167 ; WX 753 ; N club ; B 86 -26 660 544 ; C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; C 169 ; WX 753 ; N heart ; B 117 -33 631 528 ; C 170 ; WX 753 ; N spade ; B 113 -36 629 591 ; C 171 ; WX 1042 ; N arrowboth ; B 24 -16 1024 512 ; C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; C 176 ; WX 400 ; N degree ; B 50 380 350 686 ; C 177 ; WX 549 ; N plusminus ; B 10 0 539 662 ; C 178 ; WX 411 ; N second ; B 20 476 413 735 ; C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; C 180 ; WX 549 ; N multiply ; B 17 9 533 525 ; C 181 ; WX 713 ; N proportional ; B 27 114 639 416 ; C 182 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ; C 183 ; WX 460 ; N bullet ; B 50 155 410 518 ; C 184 ; WX 549 ; N divide ; B 10 2 536 525 ; C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; C 186 ; WX 549 ; N equivalence ; B 14 87 538 446 ; C 187 ; WX 549 ; N approxequal ; B 14 121 527 408 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -13 889 100 ; C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; C 192 ; WX 823 ; N aleph ; B 175 0 662 689 ; C 193 ; WX 686 ; N Ifraktur ; B 10 -54 578 736 ; C 194 ; WX 795 ; N Rfraktur ; B 26 -16 759 730 ; C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 574 ; C 196 ; WX 768 ; N circlemultiply ; B 43 0 733 691 ; C 197 ; WX 768 ; N circleplus ; B 43 0 733 689 ; C 198 ; WX 823 ; N emptyset ; B 39 -24 781 718 ; C 199 ; WX 768 ; N intersection ; B 40 0 732 507 ; C 200 ; WX 768 ; N union ; B 40 -18 732 489 ; C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; C 206 ; WX 713 ; N element ; B 45 0 505 470 ; C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; C 208 ; WX 768 ; N angle ; B 26 -1 738 672 ; C 209 ; WX 713 ; N gradient ; B 36 0 681 687 ; C 210 ; WX 790 ; N registerserif ; B 50 -13 740 690 ; C 211 ; WX 790 ; N copyrightserif ; B 51 -13 741 690 ; C 212 ; WX 890 ; N trademarkserif ; B 18 269 855 673 ; C 213 ; WX 823 ; N product ; B 25 -124 803 751 ; C 214 ; WX 549 ; N radical ; B 10 -35 515 913 ; C 215 ; WX 250 ; N dotmath ; B 69 209 169 311 ; C 216 ; WX 713 ; N logicalnot ; B 15 40 680 367 ; C 217 ; WX 603 ; N logicaland ; B 23 -1 583 476 ; C 218 ; WX 603 ; N logicalor ; B 30 -1 578 476 ; C 219 ; WX 1042 ; N arrowdblboth ; B 27 -19 1023 506 ; C 220 ; WX 987 ; N arrowdblleft ; B 30 -19 939 506 ; C 221 ; WX 603 ; N arrowdblup ; B 39 0 567 909 ; C 222 ; WX 987 ; N arrowdblright ; B 45 -19 954 506 ; C 223 ; WX 603 ; N arrowdbldown ; B 44 0 572 909 ; C 224 ; WX 494 ; N lozenge ; B 18 -1 466 740 ; C 225 ; WX 329 ; N angleleft ; B 25 -152 306 757 ; C 226 ; WX 790 ; N registersans ; B 50 -12 740 679 ; C 227 ; WX 790 ; N copyrightsans ; B 49 -12 739 679 ; C 228 ; WX 786 ; N trademarksans ; B 5 277 725 673 ; C 229 ; WX 713 ; N summation ; B 14 -123 695 752 ; C 230 ; WX 384 ; N parenlefttp ; B 40 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 40 -79 92 925 ; C 232 ; WX 384 ; N parenleftbt ; B 40 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 341 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -85 55 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 340 926 ; C 236 ; WX 494 ; N bracelefttp ; B 201 -75 439 926 ; C 237 ; WX 494 ; N braceleftmid ; B 14 -85 255 935 ; C 238 ; WX 494 ; N braceleftbt ; B 201 -70 439 926 ; C 239 ; WX 494 ; N braceex ; B 201 -79 255 925 ; C 241 ; WX 329 ; N angleright ; B 21 -152 302 757 ; C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; C 243 ; WX 686 ; N integraltp ; B 332 -83 715 922 ; C 244 ; WX 686 ; N integralex ; B 332 -88 415 975 ; C 245 ; WX 686 ; N integralbt ; B 39 -81 415 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 450 926 ; C 247 ; WX 384 ; N parenrightex ; B 398 -70 450 935 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 450 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 360 926 ; C 250 ; WX 384 ; N bracketrightex ; B 305 -85 360 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 20 -80 360 926 ; C 252 ; WX 494 ; N bracerighttp ; B 17 -75 255 926 ; C 253 ; WX 494 ; N bracerightmid ; B 201 -85 442 935 ; C 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ; C -1 ; WX 250 ; N .notdef ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics grace-5.1.25/fonts/type1/n019024l.afm0000644000076500001440000007623507056046552016431 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusSanL-BoldItal FullName Nimbus Sans L Bold Italic FamilyName Nimbus Sans L Weight Bold ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -111 UnderlineThickness 69 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -177 -309 1107 953 CapHeight 729 XHeight 540 Descender -217 Ascender 729 StartCharMetrics 316 C 32 ; WX 278 ; N space ; B 245 0 245 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 417 726 ; C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ; C 35 ; WX 556 ; N numbersign ; B 33 -32 660 697 ; C 36 ; WX 556 ; N dollar ; B 59 -126 628 763 ; C 37 ; WX 889 ; N percent ; B 129 -20 903 709 ; C 38 ; WX 722 ; N ampersand ; B 89 -23 720 723 ; C 39 ; WX 278 ; N quoteright ; B 165 469 356 729 ; C 40 ; WX 333 ; N parenleft ; B 84 -200 458 729 ; C 41 ; WX 333 ; N parenright ; B -21 -200 356 729 ; C 42 ; WX 389 ; N asterisk ; B 145 407 478 729 ; C 43 ; WX 584 ; N plus ; B 87 -10 596 473 ; C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ; C 45 ; WX 333 ; N hyphen ; B 70 207 371 342 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -1 -14 427 714 ; C 48 ; WX 556 ; N zero ; B 81 -23 614 724 ; C 49 ; WX 556 ; N one ; B 172 0 529 709 ; C 50 ; WX 556 ; N two ; B 30 0 628 724 ; C 51 ; WX 556 ; N three ; B 67 -23 613 724 ; C 52 ; WX 556 ; N four ; B 57 0 599 709 ; C 53 ; WX 556 ; N five ; B 59 -23 641 709 ; C 54 ; WX 556 ; N six ; B 85 -23 625 724 ; C 55 ; WX 556 ; N seven ; B 131 0 679 709 ; C 56 ; WX 556 ; N eight ; B 60 -23 620 724 ; C 57 ; WX 556 ; N nine ; B 68 -23 611 724 ; C 58 ; WX 333 ; N colon ; B 113 0 374 520 ; C 59 ; WX 333 ; N semicolon ; B 76 -174 374 520 ; C 60 ; WX 584 ; N less ; B 77 -10 630 474 ; C 61 ; WX 584 ; N equal ; B 61 52 622 412 ; C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ; C 63 ; WX 611 ; N question ; B 168 0 672 744 ; C 64 ; WX 975 ; N at ; B 73 -137 1032 745 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 762 729 ; C 67 ; WX 722 ; N C ; B 107 -23 793 741 ; C 68 ; WX 722 ; N D ; B 77 0 776 729 ; C 69 ; WX 667 ; N E ; B 79 0 762 729 ; C 70 ; WX 611 ; N F ; B 74 0 741 729 ; C 71 ; WX 778 ; N G ; B 107 -23 819 741 ; C 72 ; WX 722 ; N H ; B 68 0 812 729 ; C 73 ; WX 278 ; N I ; B 63 0 368 729 ; C 74 ; WX 556 ; N J ; B 59 -23 641 729 ; C 75 ; WX 722 ; N K ; B 74 0 843 729 ; C 76 ; WX 611 ; N L ; B 80 0 606 729 ; C 77 ; WX 833 ; N M ; B 66 0 931 729 ; C 78 ; WX 722 ; N N ; B 68 0 816 729 ; C 79 ; WX 778 ; N O ; B 106 -23 828 741 ; C 80 ; WX 667 ; N P ; B 76 0 747 729 ; C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ; C 82 ; WX 722 ; N R ; B 80 0 785 729 ; C 83 ; WX 667 ; N S ; B 76 -23 725 741 ; C 84 ; WX 611 ; N T ; B 142 0 753 729 ; C 85 ; WX 722 ; N U ; B 119 -23 809 729 ; C 86 ; WX 667 ; N V ; B 179 0 802 729 ; C 87 ; WX 944 ; N W ; B 168 0 1087 729 ; C 88 ; WX 667 ; N X ; B 22 0 802 729 ; C 89 ; WX 667 ; N Y ; B 182 0 805 729 ; C 90 ; WX 611 ; N Z ; B 30 0 733 729 ; C 91 ; WX 333 ; N bracketleft ; B 23 -200 463 729 ; C 92 ; WX 278 ; N backslash ; B 138 -23 285 709 ; C 93 ; WX 333 ; N bracketright ; B -25 -200 415 729 ; C 94 ; WX 584 ; N asciicircum ; B 119 270 580 695 ; C 95 ; WX 556 ; N underscore ; B -65 -145 550 -76 ; C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ; C 97 ; WX 556 ; N a ; B 50 -23 578 549 ; C 98 ; WX 611 ; N b ; B 59 -23 640 729 ; C 99 ; WX 556 ; N c ; B 77 -23 597 549 ; C 100 ; WX 611 ; N d ; B 79 -23 700 729 ; C 101 ; WX 556 ; N e ; B 64 -23 591 549 ; C 102 ; WX 333 ; N f ; B 90 0 464 729 ; C 103 ; WX 611 ; N g ; B 26 -218 656 549 ; C 104 ; WX 611 ; N h ; B 67 0 629 729 ; C 105 ; WX 278 ; N i ; B 67 0 362 729 ; C 106 ; WX 278 ; N j ; B -43 -218 365 729 ; C 107 ; WX 556 ; N k ; B 59 0 651 729 ; C 108 ; WX 278 ; N l ; B 67 0 362 729 ; C 109 ; WX 889 ; N m ; B 60 0 911 549 ; C 110 ; WX 611 ; N n ; B 63 0 629 549 ; C 111 ; WX 611 ; N o ; B 82 -23 634 549 ; C 112 ; WX 611 ; N p ; B 11 -218 637 549 ; C 113 ; WX 611 ; N q ; B 72 -218 659 549 ; C 114 ; WX 389 ; N r ; B 63 0 487 549 ; C 115 ; WX 556 ; N s ; B 60 -23 589 549 ; C 116 ; WX 333 ; N t ; B 101 -23 414 674 ; C 117 ; WX 611 ; N u ; B 88 -23 656 540 ; C 118 ; WX 556 ; N v ; B 129 0 651 540 ; C 119 ; WX 778 ; N w ; B 120 0 881 540 ; C 120 ; WX 556 ; N x ; B 16 0 648 540 ; C 121 ; WX 556 ; N y ; B 37 -219 653 540 ; C 122 ; WX 500 ; N z ; B 21 0 575 540 ; C 123 ; WX 389 ; N braceleft ; B 84 -200 472 729 ; C 124 ; WX 280 ; N bar ; B 57 -200 335 729 ; C 125 ; WX 389 ; N braceright ; B 29 -200 419 729 ; C 126 ; WX 584 ; N asciitilde ; B 97 142 581 314 ; C 161 ; WX 333 ; N exclamdown ; B 26 -186 331 540 ; C 162 ; WX 556 ; N cent ; B 79 -124 598 634 ; C 163 ; WX 556 ; N sterling ; B 49 -23 629 715 ; C 164 ; WX 167 ; N fraction ; B -177 -20 489 715 ; C 165 ; WX 556 ; N yen ; B 107 0 702 704 ; C 166 ; WX 556 ; N florin ; B -21 -220 690 744 ; C 167 ; WX 556 ; N section ; B 56 -201 596 723 ; C 168 ; WX 556 ; N currency ; B 66 100 644 604 ; C 169 ; WX 238 ; N quotesingle ; B 177 470 343 729 ; C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ; C 171 ; WX 556 ; N guillemotleft ; B 135 72 571 481 ; C 172 ; WX 333 ; N guilsinglleft ; B 128 72 351 481 ; C 173 ; WX 333 ; N guilsinglright ; B 96 72 319 481 ; C 174 ; WX 611 ; N fi ; B 85 0 703 729 ; C 175 ; WX 611 ; N fl ; B 88 0 701 729 ; C 177 ; WX 556 ; N endash ; B 35 207 624 311 ; C 178 ; WX 556 ; N dagger ; B 109 -194 626 709 ; C 179 ; WX 556 ; N daggerdbl ; B 35 -194 623 709 ; C 180 ; WX 278 ; N periodcentered ; B 143 182 270 282 ; C 182 ; WX 556 ; N paragraph ; B 121 -191 684 729 ; C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ; C 185 ; WX 500 ; N quotedblbase ; B 37 -135 462 125 ; C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ; C 187 ; WX 556 ; N guillemotright ; B 103 72 533 481 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 72 -21 1021 739 ; C 191 ; WX 611 ; N questiondown ; B 52 -204 556 540 ; C 193 ; WX 333 ; N grave ; B 175 607 339 757 ; C 194 ; WX 333 ; N acute ; B 247 607 475 757 ; C 195 ; WX 333 ; N circumflex ; B 135 610 453 757 ; C 196 ; WX 333 ; N tilde ; B 117 622 500 744 ; C 197 ; WX 333 ; N macron ; B 150 642 467 722 ; C 198 ; WX 333 ; N breve ; B 188 611 455 754 ; C 199 ; WX 333 ; N dotaccent ; B 241 621 377 741 ; C 200 ; WX 333 ; N dieresis ; B 147 621 469 741 ; C 202 ; WX 333 ; N ring ; B 214 593 398 773 ; C 203 ; WX 333 ; N cedilla ; B -13 -220 270 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 82 610 498 757 ; C 206 ; WX 333 ; N ogonek ; B 23 -233 248 0 ; C 207 ; WX 333 ; N caron ; B 167 610 485 757 ; C 208 ; WX 1000 ; N emdash ; B 37 207 1070 311 ; C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ; C 227 ; WX 370 ; N ordfeminine ; B 96 262 451 729 ; C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ; C 233 ; WX 778 ; N Oslash ; B 34 -39 906 749 ; C 234 ; WX 1000 ; N OE ; B 90 -23 1107 741 ; C 235 ; WX 365 ; N ordmasculine ; B 92 262 471 729 ; C 241 ; WX 889 ; N ae ; B 54 -23 927 549 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 322 540 ; C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ; C 249 ; WX 611 ; N oslash ; B 12 -38 709 557 ; C 250 ; WX 944 ; N oe ; B 71 -23 986 549 ; C 251 ; WX 611 ; N germandbls ; B 67 -23 654 729 ; C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 920 ; C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ; C -1 ; WX 667 ; N Scedilla ; B 76 -220 725 741 ; C -1 ; WX 611 ; N Tcaron ; B 142 0 753 936 ; C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 785 936 ; C -1 ; WX 722 ; N Racute ; B 80 0 785 936 ; C -1 ; WX 667 ; N Sacute ; B 76 -23 725 936 ; C -1 ; WX 778 ; N Otilde ; B 106 -23 828 923 ; C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 757 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 106 -23 841 936 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 119 -23 809 936 ; C -1 ; WX 667 ; N Yacute ; B 182 0 805 936 ; C -1 ; WX 722 ; N Eth ; B 73 0 776 729 ; C -1 ; WX 722 ; N Dcroat ; B 73 0 776 729 ; C -1 ; WX 611 ; N Zacute ; B 30 0 733 936 ; C -1 ; WX 722 ; N Uring ; B 119 -23 809 953 ; C -1 ; WX 611 ; N gbreve ; B 26 -218 656 754 ; C -1 ; WX 556 ; N eogonek ; B 64 -233 591 549 ; C -1 ; WX 556 ; N edotaccent ; B 64 -23 591 741 ; C -1 ; WX 556 ; N ecaron ; B 64 -23 593 757 ; C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 721 729 ; C -1 ; WX 556 ; N eacute ; B 64 -23 591 757 ; C -1 ; WX 556 ; N edieresis ; B 64 -23 591 741 ; C -1 ; WX 722 ; N dcaron ; B 79 -23 882 729 ; C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 549 ; C -1 ; WX 556 ; N ccaron ; B 77 -23 607 757 ; C -1 ; WX 556 ; N cacute ; B 77 -23 597 757 ; C -1 ; WX 556 ; N aogonek ; B 50 -233 578 549 ; C -1 ; WX 556 ; N aring ; B 50 -23 578 773 ; C -1 ; WX 556 ; N atilde ; B 50 -23 612 744 ; C -1 ; WX 556 ; N abreve ; B 50 -23 578 754 ; C -1 ; WX 556 ; N egrave ; B 64 -23 591 757 ; C -1 ; WX 556 ; N agrave ; B 50 -23 578 757 ; C -1 ; WX 556 ; N aacute ; B 50 -23 587 757 ; C -1 ; WX 556 ; N adieresis ; B 50 -23 581 741 ; C -1 ; WX 722 ; N Uogonek ; B 119 -233 809 729 ; C -1 ; WX 611 ; N ugrave ; B 88 -23 656 757 ; C -1 ; WX 611 ; N uacute ; B 88 -23 656 757 ; C -1 ; WX 611 ; N udieresis ; B 88 -23 656 741 ; C -1 ; WX 404 ; N tcaron ; B 101 -23 578 829 ; C -1 ; WX 556 ; N scommaaccent ; B 60 -307 589 549 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ; C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 757 ; C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 936 ; C -1 ; WX 556 ; N acircumflex ; B 50 -23 578 757 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 733 918 ; C -1 ; WX 556 ; N scaron ; B 60 -23 597 757 ; C -1 ; WX 722 ; N Amacron ; B 26 0 706 901 ; C -1 ; WX 556 ; N sacute ; B 60 -23 589 757 ; C -1 ; WX 611 ; N Tcommaaccent ; B 142 -307 753 729 ; C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 920 ; C -1 ; WX 611 ; N thorn ; B 11 -218 637 729 ; C -1 ; WX 667 ; N Emacron ; B 79 0 762 901 ; C -1 ; WX 778 ; N Ograve ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 920 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 816 923 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 816 936 ; C -1 ; WX 722 ; N Nacute ; B 68 0 816 936 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 607 729 ; C -1 ; WX 611 ; N Lacute ; B 80 0 606 936 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 388 918 ; C -1 ; WX 389 ; N racute ; B 63 0 500 757 ; C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ; C -1 ; WX 611 ; N ohungarumlaut ; B 82 -23 710 757 ; C -1 ; WX 611 ; N otilde ; B 82 -23 639 744 ; C -1 ; WX 556 ; N Euro ; B 21 -23 648 724 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 757 ; C -1 ; WX 444 ; N onesuperior ; B 210 284 438 709 ; C -1 ; WX 444 ; N twosuperior ; B 124 284 499 718 ; C -1 ; WX 444 ; N threesuperior ; B 147 271 490 718 ; C -1 ; WX 278 ; N Igrave ; B 63 0 368 936 ; C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ; C -1 ; WX 278 ; N Imacron ; B 63 0 466 901 ; C -1 ; WX 278 ; N Iogonek ; B 7 -233 368 729 ; C -1 ; WX 278 ; N Idieresis ; B 63 0 483 920 ; C -1 ; WX 778 ; N Gbreve ; B 107 -23 819 934 ; C -1 ; WX 722 ; N Umacron ; B 119 -23 809 901 ; C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 843 729 ; C -1 ; WX 611 ; N ograve ; B 82 -23 634 757 ; C -1 ; WX 667 ; N Scommaaccent ; B 76 -307 725 741 ; C -1 ; WX 667 ; N Eogonek ; B 79 -233 762 729 ; C -1 ; WX 611 ; N oacute ; B 82 -23 634 757 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 762 918 ; C -1 ; WX 268 ; N iogonek ; B 0 -233 351 729 ; C -1 ; WX 611 ; N gcommaaccent ; B 26 -218 656 854 ; C -1 ; WX 611 ; N odieresis ; B 82 -23 634 741 ; C -1 ; WX 611 ; N ntilde ; B 63 0 646 744 ; C -1 ; WX 611 ; N ncaron ; B 63 0 629 757 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 762 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 936 ; C -1 ; WX 556 ; N scedilla ; B 60 -220 589 549 ; C -1 ; WX 389 ; N rcaron ; B 63 0 533 757 ; C -1 ; WX 667 ; N Egrave ; B 79 0 762 936 ; C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 107 -307 819 741 ; C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 785 729 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 762 920 ; C -1 ; WX 611 ; N nacute ; B 63 0 629 757 ; C -1 ; WX 611 ; N uogonek ; B 88 -233 656 540 ; C -1 ; WX 611 ; N umacron ; B 88 -23 656 722 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 776 936 ; C -1 ; WX 384 ; N lcaron ; B 67 0 544 729 ; C -1 ; WX 722 ; N Ccaron ; B 107 -23 793 936 ; C -1 ; WX 722 ; N Cacute ; B 107 -23 793 936 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ; C -1 ; WX 606 ; N degree ; B 240 383 543 686 ; C -1 ; WX 722 ; N Aogonek ; B 26 -233 703 729 ; C -1 ; WX 584 ; N minus ; B 77 172 606 292 ; C -1 ; WX 584 ; N multiply ; B 102 18 582 444 ; C -1 ; WX 584 ; N divide ; B 77 0 606 462 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 953 ; C -1 ; WX 1000 ; N trademark ; B 213 273 1087 729 ; C -1 ; WX 389 ; N rcommaaccent ; B 8 -307 487 549 ; C -1 ; WX 278 ; N lacute ; B 67 0 474 936 ; C -1 ; WX 611 ; N omacron ; B 82 -23 634 722 ; C -1 ; WX 722 ; N Atilde ; B 26 0 739 923 ; C -1 ; WX 278 ; N icircumflex ; B 67 0 426 757 ; C -1 ; WX 278 ; N igrave ; B 67 0 322 757 ; C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 629 549 ; C -1 ; WX 278 ; N lcommaaccent ; B 11 -307 362 729 ; C -1 ; WX 584 ; N plusminus ; B 50 0 630 633 ; C -1 ; WX 1055 ; N onehalf ; B 210 -20 1050 715 ; C -1 ; WX 1055 ; N onequarter ; B 210 -20 1032 715 ; C -1 ; WX 1055 ; N threequarters ; B 147 -20 1032 718 ; C -1 ; WX 278 ; N iacute ; B 67 0 448 757 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 934 ; C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 651 729 ; C -1 ; WX 778 ; N Omacron ; B 106 -23 828 901 ; C -1 ; WX 278 ; N imacron ; B 67 0 424 722 ; C -1 ; WX 556 ; N emacron ; B 64 -23 591 722 ; C -1 ; WX 556 ; N amacron ; B 50 -23 579 722 ; C -1 ; WX 333 ; N tcommaaccent ; B 62 -307 414 674 ; C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 741 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 575 741 ; C -1 ; WX 500 ; N zcaron ; B 21 0 575 757 ; C -1 ; WX 500 ; N zacute ; B 21 0 575 757 ; C -1 ; WX 556 ; N yacute ; B 37 -219 653 757 ; C -1 ; WX 611 ; N uhungarumlaut ; B 88 -23 697 757 ; C -1 ; WX 611 ; N eth ; B 83 -23 633 744 ; C -1 ; WX 611 ; N uring ; B 88 -23 656 773 ; C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ; C -1 ; WX 333 ; N commaaccent ; B 43 -307 217 -60 ; C -1 ; WX 737 ; N copyright ; B 54 -22 837 743 ; C -1 ; WX 737 ; N registered ; B 55 -22 837 743 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 278 ; N idieresis ; B 67 0 442 741 ; C -1 ; WX 489 ; N lozenge ; B 95 0 541 744 ; C -1 ; WX 729 ; N Delta ; B 8 0 721 729 ; C -1 ; WX 584 ; N notequal ; B 61 -74 622 544 ; C -1 ; WX 542 ; N radical ; B 102 -36 705 913 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ; C -1 ; WX 584 ; N lessequal ; B 35 0 657 624 ; C -1 ; WX 584 ; N greaterequal ; B 44 0 627 624 ; C -1 ; WX 584 ; N logicalnot ; B 103 86 632 376 ; C -1 ; WX 711 ; N summation ; B -18 -97 760 760 ; C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ; C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 816 729 ; C -1 ; WX 611 ; N dcroat ; B 79 -23 746 729 ; C -1 ; WX 280 ; N brokenbar ; B 57 -200 335 729 ; C -1 ; WX 611 ; N Lcommaaccent ; B 80 -309 606 729 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 708 920 ; C -1 ; WX 611 ; N mu ; B 11 -220 655 540 ; C -1 ; WX 278 ; N .notdef ; B 245 0 245 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -36 KPX A Ccedilla -36 KPX A G -38 KPX A O -37 KPX A Odieresis -37 KPX A Q -39 KPX A T -91 KPX A U -37 KPX A Uacute -37 KPX A Ucircumflex -37 KPX A Udieresis -37 KPX A Ugrave -37 KPX A V -74 KPX A W -57 KPX A Y -96 KPX A a -11 KPX A b -10 KPX A c -17 KPX A ccedilla -17 KPX A comma 9 KPX A d -17 KPX A e -10 KPX A g -20 KPX A guillemotleft -48 KPX A guilsinglleft -44 KPX A hyphen 2 KPX A o -19 KPX A period 13 KPX A q -13 KPX A quotedblright -71 KPX A quoteright -67 KPX A t -21 KPX A u -17 KPX A v -42 KPX A w -28 KPX A y -41 KPX Aacute C -37 KPX Aacute G -38 KPX Aacute O -38 KPX Aacute Q -40 KPX Aacute T -91 KPX Aacute U -38 KPX Aacute V -74 KPX Aacute W -57 KPX Aacute Y -96 KPX Aacute a -11 KPX Aacute b -10 KPX Aacute c -17 KPX Aacute comma 9 KPX Aacute d -17 KPX Aacute e -11 KPX Aacute g -20 KPX Aacute guillemotleft -48 KPX Aacute guilsinglleft -45 KPX Aacute hyphen 2 KPX Aacute o -20 KPX Aacute period 12 KPX Aacute q -14 KPX Aacute quoteright -67 KPX Aacute t -22 KPX Aacute u -18 KPX Aacute v -42 KPX Aacute w -29 KPX Aacute y -41 KPX Acircumflex C -36 KPX Acircumflex G -38 KPX Acircumflex O -37 KPX Acircumflex Q -39 KPX Acircumflex T -91 KPX Acircumflex U -37 KPX Acircumflex V -74 KPX Acircumflex W -57 KPX Acircumflex Y -96 KPX Acircumflex comma 9 KPX Acircumflex period 13 KPX Adieresis C -37 KPX Adieresis G -38 KPX Adieresis O -38 KPX Adieresis Q -39 KPX Adieresis T -91 KPX Adieresis U -38 KPX Adieresis V -74 KPX Adieresis W -57 KPX Adieresis Y -96 KPX Adieresis a -11 KPX Adieresis b -10 KPX Adieresis c -17 KPX Adieresis comma 9 KPX Adieresis d -17 KPX Adieresis g -20 KPX Adieresis guillemotleft -48 KPX Adieresis guilsinglleft -44 KPX Adieresis hyphen 2 KPX Adieresis o -20 KPX Adieresis period 12 KPX Adieresis q -13 KPX Adieresis quotedblright -71 KPX Adieresis quoteright -67 KPX Adieresis t -22 KPX Adieresis u -17 KPX Adieresis v -42 KPX Adieresis w -28 KPX Adieresis y -41 KPX Agrave C -36 KPX Agrave G -38 KPX Agrave O -37 KPX Agrave Q -39 KPX Agrave T -91 KPX Agrave U -37 KPX Agrave V -74 KPX Agrave W -57 KPX Agrave Y -96 KPX Agrave comma 9 KPX Agrave period 13 KPX Aring C -36 KPX Aring G -38 KPX Aring O -37 KPX Aring Q -39 KPX Aring T -91 KPX Aring U -37 KPX Aring V -74 KPX Aring W -57 KPX Aring Y -96 KPX Aring a -11 KPX Aring b -10 KPX Aring c -17 KPX Aring comma 9 KPX Aring d -17 KPX Aring e -10 KPX Aring g -20 KPX Aring guillemotleft -48 KPX Aring guilsinglleft -44 KPX Aring hyphen 2 KPX Aring o -19 KPX Aring period 13 KPX Aring q -13 KPX Aring quotedblright -71 KPX Aring quoteright -67 KPX Aring t -21 KPX Aring u -17 KPX Aring v -42 KPX Aring w -28 KPX Aring y -41 KPX Atilde C -38 KPX Atilde G -40 KPX Atilde O -39 KPX Atilde Q -41 KPX Atilde T -92 KPX Atilde U -39 KPX Atilde V -74 KPX Atilde W -57 KPX Atilde Y -96 KPX Atilde comma 9 KPX Atilde period 11 KPX B A -41 KPX B AE -30 KPX B Aacute -41 KPX B Acircumflex -41 KPX B Adieresis -41 KPX B Aring -41 KPX B Atilde -41 KPX B O -18 KPX B OE -9 KPX B Oacute -18 KPX B Ocircumflex -18 KPX B Odieresis -18 KPX B Ograve -18 KPX B Oslash -17 KPX B V -46 KPX B W -30 KPX B Y -63 KPX C A -34 KPX C AE -23 KPX C Aacute -34 KPX C Adieresis -34 KPX C Aring -34 KPX C H -1 KPX C K -4 KPX C O -12 KPX C Oacute -12 KPX C Odieresis -12 KPX Ccedilla A -34 KPX D A -40 KPX D Aacute -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Aring -40 KPX D Atilde -40 KPX D J -4 KPX D T -24 KPX D V -37 KPX D W -20 KPX D X -40 KPX D Y -62 KPX F A -68 KPX F Aacute -68 KPX F Acircumflex -68 KPX F Adieresis -68 KPX F Agrave -68 KPX F Aring -68 KPX F Atilde -68 KPX F J -33 KPX F O -24 KPX F Odieresis -24 KPX F a -23 KPX F aacute -23 KPX F adieresis -23 KPX F ae -26 KPX F aring -23 KPX F comma -84 KPX F e -12 KPX F eacute -12 KPX F hyphen 4 KPX F i -15 KPX F j -17 KPX F o -21 KPX F oacute -21 KPX F odieresis -21 KPX F oe -16 KPX F oslash -24 KPX F period -82 KPX F r -35 KPX F u -32 KPX G A -17 KPX G AE -5 KPX G Aacute -17 KPX G Acircumflex -17 KPX G Adieresis -17 KPX G Agrave -17 KPX G Aring -17 KPX G Atilde -17 KPX G T -28 KPX G V -41 KPX G W -25 KPX G Y -65 KPX J A -38 KPX J AE -29 KPX J Adieresis -38 KPX J Aring -38 KPX K C -59 KPX K G -61 KPX K O -60 KPX K OE -51 KPX K Oacute -60 KPX K Odieresis -60 KPX K S -45 KPX K T 5 KPX K a -17 KPX K adieresis -17 KPX K ae -17 KPX K aring -17 KPX K e -38 KPX K hyphen -52 KPX K o -45 KPX K oacute -45 KPX K odieresis -45 KPX K u -35 KPX K udieresis -35 KPX K y -74 KPX L A 0 KPX L AE 12 KPX L Aacute 0 KPX L Adieresis 0 KPX L Aring 0 KPX L C -35 KPX L Ccedilla -36 KPX L G -40 KPX L O -39 KPX L Oacute -39 KPX L Ocircumflex -39 KPX L Odieresis -39 KPX L Ograve -39 KPX L Otilde -39 KPX L S -14 KPX L T -104 KPX L U -35 KPX L Udieresis -35 KPX L V -102 KPX L W -79 KPX L Y -121 KPX L hyphen -20 KPX L quotedblright -147 KPX L quoteright -143 KPX L u -17 KPX L udieresis -17 KPX L y -64 KPX N A -15 KPX N AE -2 KPX N Aacute -15 KPX N Adieresis -15 KPX N Aring -15 KPX N C -1 KPX N Ccedilla -1 KPX N G -2 KPX N O -2 KPX N Oacute -2 KPX N Odieresis -2 KPX N a 5 KPX N aacute 5 KPX N adieresis 5 KPX N ae 4 KPX N aring 5 KPX N comma 7 KPX N e 10 KPX N eacute 10 KPX N o 1 KPX N oacute 1 KPX N odieresis 1 KPX N oslash 2 KPX N period 8 KPX N u 4 KPX N udieresis 4 KPX O A -42 KPX O AE -33 KPX O Aacute -42 KPX O Adieresis -42 KPX O Aring -42 KPX O T -32 KPX O V -40 KPX O W -24 KPX O X -43 KPX O Y -65 KPX Oacute A -42 KPX Oacute T -32 KPX Oacute V -40 KPX Oacute W -24 KPX Oacute Y -65 KPX Ocircumflex T -32 KPX Ocircumflex V -40 KPX Ocircumflex Y -65 KPX Odieresis A -42 KPX Odieresis T -32 KPX Odieresis V -40 KPX Odieresis W -24 KPX Odieresis X -43 KPX Odieresis Y -65 KPX Ograve T -32 KPX Ograve V -40 KPX Ograve Y -65 KPX Oslash A -34 KPX Otilde T -32 KPX Otilde V -40 KPX Otilde Y -65 KPX P A -71 KPX P AE -62 KPX P Aacute -71 KPX P Adieresis -71 KPX P Aring -71 KPX P J -52 KPX P a -14 KPX P aacute -14 KPX P adieresis -14 KPX P ae -15 KPX P aring -14 KPX P comma -103 KPX P e -13 KPX P eacute -13 KPX P hyphen -7 KPX P o -22 KPX P oacute -22 KPX P odieresis -22 KPX P oe -17 KPX P oslash -26 KPX P period -101 KPX R C -12 KPX R Ccedilla -12 KPX R G -13 KPX R O -13 KPX R OE -3 KPX R Oacute -13 KPX R Odieresis -13 KPX R T -12 KPX R U -12 KPX R Udieresis -12 KPX R V -38 KPX R W -22 KPX R Y -50 KPX R a -4 KPX R aacute -4 KPX R adieresis -4 KPX R ae -5 KPX R aring -4 KPX R e 0 KPX R eacute 0 KPX R hyphen 10 KPX R o -9 KPX R oacute -9 KPX R odieresis -9 KPX R oe -4 KPX R u -6 KPX R uacute -6 KPX R udieresis -6 KPX R y -4 KPX S A -26 KPX S AE -14 KPX S Aacute -26 KPX S Adieresis -26 KPX S Aring -26 KPX S T -15 KPX S V -36 KPX S W -20 KPX S Y -54 KPX S t -4 KPX T A -93 KPX T AE -85 KPX T Aacute -93 KPX T Acircumflex -93 KPX T Adieresis -93 KPX T Agrave -93 KPX T Aring -93 KPX T Atilde -93 KPX T C -29 KPX T G -30 KPX T J -95 KPX T O -30 KPX T OE -20 KPX T Oacute -30 KPX T Ocircumflex -30 KPX T Odieresis -30 KPX T Ograve -30 KPX T Oslash -36 KPX T Otilde -30 KPX T S -7 KPX T V 9 KPX T W 15 KPX T Y 7 KPX T a -77 KPX T ae -78 KPX T c -79 KPX T colon -104 KPX T comma -75 KPX T e -72 KPX T g -79 KPX T guillemotleft -107 KPX T guilsinglleft -103 KPX T hyphen -53 KPX T i -9 KPX T j -11 KPX T o -81 KPX T oslash -80 KPX T period -73 KPX T r -76 KPX T s -81 KPX T semicolon -105 KPX T u -78 KPX T v -91 KPX T w -85 KPX T y -89 KPX U A -40 KPX U AE -30 KPX U Aacute -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -17 KPX U m -3 KPX U n -5 KPX U p -3 KPX U period -12 KPX U r -5 KPX Uacute A -40 KPX Uacute comma -17 KPX Uacute m -3 KPX Uacute n -5 KPX Uacute p -3 KPX Uacute period -12 KPX Uacute r -5 KPX Ucircumflex A -40 KPX Udieresis A -40 KPX Udieresis b -4 KPX Udieresis comma -17 KPX Udieresis m -3 KPX Udieresis n -5 KPX Udieresis p -3 KPX Udieresis period -12 KPX Udieresis r -5 KPX Ugrave A -40 KPX V A -75 KPX V AE -65 KPX V Aacute -75 KPX V Acircumflex -75 KPX V Adieresis -75 KPX V Agrave -75 KPX V Aring -75 KPX V Atilde -75 KPX V C -43 KPX V G -44 KPX V O -44 KPX V Oacute -44 KPX V Ocircumflex -44 KPX V Odieresis -44 KPX V Ograve -44 KPX V Oslash -42 KPX V Otilde -44 KPX V S -31 KPX V T 12 KPX V a -51 KPX V ae -52 KPX V colon -74 KPX V comma -76 KPX V e -46 KPX V g -54 KPX V guillemotleft -81 KPX V guilsinglleft -77 KPX V hyphen -26 KPX V i -13 KPX V o -56 KPX V oslash -55 KPX V period -74 KPX V r -43 KPX V semicolon -77 KPX V u -42 KPX V y -19 KPX W A -59 KPX W AE -50 KPX W Aacute -59 KPX W Acircumflex -59 KPX W Adieresis -59 KPX W Agrave -59 KPX W Aring -59 KPX W Atilde -59 KPX W C -28 KPX W G -29 KPX W O -29 KPX W Oacute -29 KPX W Ocircumflex -29 KPX W Odieresis -29 KPX W Ograve -29 KPX W Oslash -27 KPX W Otilde -29 KPX W S -22 KPX W T 16 KPX W a -34 KPX W ae -34 KPX W colon -61 KPX W comma -53 KPX W e -28 KPX W g -36 KPX W guillemotleft -63 KPX W guilsinglleft -59 KPX W hyphen -9 KPX W i -9 KPX W o -38 KPX W oslash -37 KPX W period -51 KPX W r -33 KPX W semicolon -63 KPX W u -32 KPX W y -9 KPX X C -39 KPX X O -40 KPX X Odieresis -40 KPX X Q -43 KPX X a -17 KPX X e -33 KPX X hyphen -33 KPX X o -43 KPX X u -35 KPX X y -48 KPX Y A -91 KPX Y AE -81 KPX Y Aacute -91 KPX Y Acircumflex -91 KPX Y Adieresis -91 KPX Y Agrave -91 KPX Y Aring -91 KPX Y Atilde -91 KPX Y C -60 KPX Y G -61 KPX Y O -61 KPX Y Oacute -61 KPX Y Ocircumflex -61 KPX Y Odieresis -61 KPX Y Ograve -61 KPX Y Oslash -58 KPX Y Otilde -61 KPX Y S -39 KPX Y T 14 KPX Y a -71 KPX Y ae -71 KPX Y colon -90 KPX Y comma -85 KPX Y e -66 KPX Y g -73 KPX Y guillemotleft -105 KPX Y guilsinglleft -101 KPX Y hyphen -55 KPX Y i -11 KPX Y o -76 KPX Y oslash -74 KPX Y p -53 KPX Y period -84 KPX Y semicolon -93 KPX Y u -57 KPX Y v -36 KPX Z v -21 KPX Z y -19 KPX a j -7 KPX a quoteright -14 KPX a v -23 KPX a w -10 KPX a y -24 KPX aacute v -23 KPX aacute w -10 KPX aacute y -24 KPX adieresis v -23 KPX adieresis w -10 KPX adieresis y -24 KPX ae v -21 KPX ae w -7 KPX ae y -23 KPX agrave v -23 KPX agrave w -10 KPX agrave y -24 KPX aring v -23 KPX aring w -10 KPX aring y -24 KPX b v -23 KPX b w -9 KPX b y -25 KPX c h -9 KPX c k -5 KPX comma one -79 KPX comma quotedblright -39 KPX comma quoteright -35 KPX e quoteright -13 KPX e t -9 KPX e v -22 KPX e w -9 KPX e x -25 KPX e y -25 KPX eacute v -22 KPX eacute w -9 KPX eacute y -25 KPX ecircumflex v -22 KPX ecircumflex w -9 KPX ecircumflex y -25 KPX eight four 2 KPX eight one -32 KPX eight seven -15 KPX f a -6 KPX f aacute -6 KPX f adieresis -6 KPX f ae -6 KPX f aring -6 KPX f e -6 KPX f eacute -6 KPX f f 14 KPX f i -13 KPX f j -15 KPX f l -13 KPX f o -16 KPX f oacute -16 KPX f odieresis -16 KPX f oe -11 KPX f oslash -16 KPX f quoteright 0 KPX f s -10 KPX f t 14 KPX five four -3 KPX five one -37 KPX five seven -17 KPX four four 0 KPX four one -55 KPX four seven -33 KPX g a -3 KPX g adieresis -3 KPX g ae -4 KPX g aring -3 KPX g e 1 KPX g eacute 1 KPX g l -5 KPX g oacute -8 KPX g odieresis -8 KPX g r -3 KPX guillemotright A -56 KPX guillemotright AE -46 KPX guillemotright Aacute -56 KPX guillemotright Adieresis -56 KPX guillemotright Aring -56 KPX guillemotright T -115 KPX guillemotright V -84 KPX guillemotright W -65 KPX guillemotright Y -117 KPX guilsinglright A -52 KPX guilsinglright AE -42 KPX guilsinglright Aacute -52 KPX guilsinglright Adieresis -52 KPX guilsinglright Aring -52 KPX guilsinglright T -110 KPX guilsinglright V -79 KPX guilsinglright W -60 KPX guilsinglright Y -113 KPX h quoteright -15 KPX h y -25 KPX hyphen A -7 KPX hyphen AE 2 KPX hyphen Aacute -7 KPX hyphen Adieresis -7 KPX hyphen Aring -7 KPX hyphen T -64 KPX hyphen V -34 KPX hyphen W -15 KPX hyphen Y -71 KPX i T -12 KPX i j -7 KPX k a -13 KPX k aacute -13 KPX k adieresis -13 KPX k ae -15 KPX k aring -13 KPX k comma -3 KPX k e -19 KPX k eacute -19 KPX k g -26 KPX k hyphen -31 KPX k o -28 KPX k oacute -28 KPX k odieresis -28 KPX k period -3 KPX k s -23 KPX k u -8 KPX k udieresis -8 KPX l v -14 KPX l y -11 KPX m p -1 KPX m v -23 KPX m w -9 KPX m y -23 KPX n T -87 KPX n p -2 KPX n quoteright -15 KPX n v -24 KPX n w -11 KPX n y -25 KPX nine four -6 KPX nine one -30 KPX nine seven -23 KPX o T -90 KPX o quoteright -19 KPX o t -13 KPX o v -27 KPX o w -13 KPX o x -30 KPX o y -29 KPX oacute v -27 KPX oacute w -13 KPX oacute y -29 KPX ocircumflex t -13 KPX odieresis t -13 KPX odieresis v -27 KPX odieresis w -13 KPX odieresis x -30 KPX odieresis y -29 KPX ograve v -27 KPX ograve w -13 KPX ograve y -29 KPX one comma -51 KPX one eight -47 KPX one five -50 KPX one four -70 KPX one nine -47 KPX one one -92 KPX one period -49 KPX one seven -72 KPX one six -48 KPX one three -53 KPX one two -56 KPX one zero -44 KPX p t -10 KPX p y -25 KPX period one -80 KPX period quotedblright -39 KPX period quoteright -35 KPX q c -3 KPX q u -3 KPX quotedblbase A 7 KPX quotedblbase AE 19 KPX quotedblbase T -79 KPX quotedblbase V -77 KPX quotedblbase W -54 KPX quotedblbase Y -96 KPX quotedblleft A -72 KPX quotedblleft AE -64 KPX quotedblleft Aacute -72 KPX quotedblleft Adieresis -72 KPX quotedblleft Aring -72 KPX quotedblleft T -11 KPX quotedblleft V 0 KPX quotedblleft W 9 KPX quotedblleft Y -15 KPX quotedblright A -72 KPX quotedblright AE -64 KPX quotedblright Aacute -72 KPX quotedblright Adieresis -72 KPX quotedblright Aring -72 KPX quotedblright T -7 KPX quotedblright V 1 KPX quotedblright W 11 KPX quotedblright Y -14 KPX quoteleft A -76 KPX quoteleft AE -69 KPX quoteleft Aacute -76 KPX quoteleft Adieresis -76 KPX quoteleft Aring -76 KPX quoteleft T -15 KPX quoteleft V -4 KPX quoteleft W 5 KPX quoteleft Y -20 KPX quoteright A -80 KPX quoteright AE -72 KPX quoteright Aacute -80 KPX quoteright Adieresis -80 KPX quoteright Aring -80 KPX quoteright comma -53 KPX quoteright d -30 KPX quoteright o -34 KPX quoteright period -51 KPX quoteright r -20 KPX quoteright s -27 KPX quoteright t -11 KPX quoteright v -11 KPX quoteright w -4 KPX quoteright y -9 KPX r a -1 KPX r aacute -1 KPX r acircumflex -1 KPX r adieresis -1 KPX r ae -2 KPX r agrave -1 KPX r aring -1 KPX r c -6 KPX r ccedilla -6 KPX r colon -36 KPX r comma -64 KPX r d -5 KPX r e 2 KPX r eacute 2 KPX r ecircumflex 2 KPX r egrave 2 KPX r f 15 KPX r g -7 KPX r h -12 KPX r hyphen -40 KPX r i -12 KPX r j -13 KPX r k -8 KPX r l -12 KPX r m -8 KPX r n -10 KPX r o -7 KPX r oacute -7 KPX r ocircumflex -7 KPX r odieresis -7 KPX r oe -2 KPX r ograve -7 KPX r oslash -12 KPX r p -7 KPX r period -63 KPX r q -2 KPX r quoteright 4 KPX r r -10 KPX r s -4 KPX r semicolon -37 KPX r t 15 KPX r u -8 KPX r v 12 KPX r w 17 KPX r x 7 KPX r y 14 KPX r z 2 KPX s quoteright -12 KPX s t -9 KPX seven colon -71 KPX seven comma -95 KPX seven eight -10 KPX seven five -28 KPX seven four -70 KPX seven one -21 KPX seven period -94 KPX seven seven 2 KPX seven six -21 KPX seven three -7 KPX seven two -11 KPX six four -1 KPX six one -29 KPX six seven -13 KPX t S -9 KPX t a -3 KPX t aacute -3 KPX t adieresis -3 KPX t ae -5 KPX t aring -3 KPX t colon -41 KPX t e -5 KPX t eacute -5 KPX t h -9 KPX t o -15 KPX t oacute -15 KPX t odieresis -15 KPX t quoteright -3 KPX t semicolon -42 KPX three four -2 KPX three one -34 KPX three seven -19 KPX two four -16 KPX two one -24 KPX two seven -12 KPX u quoteright -8 KPX v a -21 KPX v aacute -21 KPX v acircumflex -21 KPX v adieresis -21 KPX v ae -21 KPX v agrave -21 KPX v aring -21 KPX v atilde -21 KPX v c -25 KPX v colon -41 KPX v comma -57 KPX v e -18 KPX v eacute -18 KPX v ecircumflex -18 KPX v egrave -18 KPX v g -26 KPX v hyphen -5 KPX v l -12 KPX v o -28 KPX v oacute -28 KPX v odieresis -28 KPX v ograve -28 KPX v oslash -28 KPX v period -55 KPX v s -25 KPX v semicolon -43 KPX w a -11 KPX w aacute -11 KPX w acircumflex -11 KPX w adieresis -11 KPX w ae -12 KPX w agrave -11 KPX w aring -11 KPX w atilde -11 KPX w c -12 KPX w colon -36 KPX w comma -38 KPX w e -5 KPX w eacute -5 KPX w ecircumflex -5 KPX w egrave -5 KPX w g -13 KPX w hyphen 7 KPX w l -8 KPX w o -15 KPX w oacute -15 KPX w odieresis -15 KPX w ograve -15 KPX w oslash -14 KPX w period -36 KPX w s -15 KPX w semicolon -38 KPX x a -22 KPX x c -27 KPX x e -20 KPX x eacute -20 KPX x o -30 KPX x q -23 KPX y a -20 KPX y aacute -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y ae -20 KPX y agrave -20 KPX y aring -20 KPX y atilde -20 KPX y c -26 KPX y colon -40 KPX y comma -58 KPX y e -19 KPX y eacute -19 KPX y ecircumflex -19 KPX y egrave -19 KPX y g -27 KPX y hyphen -4 KPX y l -11 KPX y o -28 KPX y oacute -28 KPX y odieresis -28 KPX y ograve -28 KPX y oslash -27 KPX y period -55 KPX y s -24 KPX y semicolon -43 KPX zero four -3 KPX zero one -29 KPX zero seven -21 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n022003l.afm0000644000076500001440000007626607056046553016425 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusMonL-Regu FullName Nimbus Mono L Regular FamilyName Nimbus Mono L Weight Regular ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -12 -237 650 811 CapHeight 563 XHeight 417 Descender -186 Ascender 604 StartCharMetrics 316 C 32 ; WX 600 ; N space ; B 295 0 295 0 ; C 33 ; WX 600 ; N exclam ; B 240 -15 360 618 ; C 34 ; WX 600 ; N quotedbl ; B 146 315 454 604 ; C 35 ; WX 600 ; N numbersign ; B 92 -62 508 647 ; C 36 ; WX 600 ; N dollar ; B 113 -92 487 655 ; C 37 ; WX 600 ; N percent ; B 87 -12 513 611 ; C 38 ; WX 600 ; N ampersand ; B 105 -16 478 519 ; C 39 ; WX 600 ; N quoteright ; B 135 314 340 604 ; C 40 ; WX 600 ; N parenleft ; B 294 -124 458 604 ; C 41 ; WX 600 ; N parenright ; B 147 -124 311 604 ; C 42 ; WX 600 ; N asterisk ; B 113 250 487 604 ; C 43 ; WX 600 ; N plus ; B 72 32 528 530 ; C 44 ; WX 600 ; N comma ; B 135 -145 340 145 ; C 45 ; WX 600 ; N hyphen ; B 72 258 528 299 ; C 46 ; WX 600 ; N period ; B 226 -15 374 116 ; C 47 ; WX 600 ; N slash ; B 113 -81 487 668 ; C 48 ; WX 600 ; N zero ; B 113 -15 487 618 ; C 49 ; WX 600 ; N one ; B 113 0 487 612 ; C 50 ; WX 600 ; N two ; B 84 0 478 618 ; C 51 ; WX 600 ; N three ; B 96 -15 499 618 ; C 52 ; WX 600 ; N four ; B 105 0 478 604 ; C 53 ; WX 600 ; N five ; B 96 -15 499 604 ; C 54 ; WX 600 ; N six ; B 136 -15 510 618 ; C 55 ; WX 600 ; N seven ; B 105 -1 478 604 ; C 56 ; WX 600 ; N eight ; B 113 -15 487 618 ; C 57 ; WX 600 ; N nine ; B 136 -15 510 618 ; C 58 ; WX 600 ; N colon ; B 226 -15 374 417 ; C 59 ; WX 600 ; N semicolon ; B 139 -145 350 417 ; C 60 ; WX 600 ; N less ; B 72 44 522 518 ; C 61 ; WX 600 ; N equal ; B 51 190 549 375 ; C 62 ; WX 600 ; N greater ; B 78 44 528 518 ; C 63 ; WX 600 ; N question ; B 134 -15 487 577 ; C 64 ; WX 600 ; N at ; B 105 -62 478 624 ; C 65 ; WX 600 ; N A ; B 9 0 591 563 ; C 66 ; WX 600 ; N B ; B 43 0 541 563 ; C 67 ; WX 600 ; N C ; B 63 -16 534 576 ; C 68 ; WX 600 ; N D ; B 43 0 520 563 ; C 69 ; WX 600 ; N E ; B 43 0 520 563 ; C 70 ; WX 600 ; N F ; B 43 0 520 563 ; C 71 ; WX 600 ; N G ; B 63 -16 562 576 ; C 72 ; WX 600 ; N H ; B 53 0 551 563 ; C 73 ; WX 600 ; N I ; B 113 0 487 563 ; C 74 ; WX 600 ; N J ; B 84 -16 583 563 ; C 75 ; WX 600 ; N K ; B 43 0 572 563 ; C 76 ; WX 600 ; N L ; B 63 0 541 563 ; C 77 ; WX 600 ; N M ; B 11 0 593 563 ; C 78 ; WX 600 ; N N ; B 22 0 562 563 ; C 79 ; WX 600 ; N O ; B 51 -16 549 576 ; C 80 ; WX 600 ; N P ; B 43 0 499 563 ; C 81 ; WX 600 ; N Q ; B 51 -115 549 576 ; C 82 ; WX 600 ; N R ; B 43 0 589 563 ; C 83 ; WX 600 ; N S ; B 92 -16 508 576 ; C 84 ; WX 600 ; N T ; B 72 0 528 563 ; C 85 ; WX 600 ; N U ; B 40 -16 560 563 ; C 86 ; WX 600 ; N V ; B 9 0 591 563 ; C 87 ; WX 600 ; N W ; B 20 0 580 563 ; C 88 ; WX 600 ; N X ; B 40 0 560 563 ; C 89 ; WX 600 ; N Y ; B 51 0 549 563 ; C 90 ; WX 600 ; N Z ; B 103 0 497 563 ; C 91 ; WX 600 ; N bracketleft ; B 280 -124 445 604 ; C 92 ; WX 600 ; N backslash ; B 113 -81 487 668 ; C 93 ; WX 600 ; N bracketright ; B 155 -124 320 604 ; C 94 ; WX 600 ; N asciicircum ; B 113 354 487 615 ; C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ; C 96 ; WX 600 ; N quoteleft ; B 260 343 465 604 ; C 97 ; WX 600 ; N a ; B 72 -16 541 431 ; C 98 ; WX 600 ; N b ; B 22 -16 541 604 ; C 99 ; WX 600 ; N c ; B 84 -16 535 431 ; C 100 ; WX 600 ; N d ; B 63 -16 583 604 ; C 101 ; WX 600 ; N e ; B 63 -16 520 431 ; C 102 ; WX 600 ; N f ; B 105 0 541 604 ; C 103 ; WX 600 ; N g ; B 63 -186 562 431 ; C 104 ; WX 600 ; N h ; B 43 0 551 604 ; C 105 ; WX 600 ; N i ; B 92 0 508 624 ; C 106 ; WX 600 ; N j ; B 147 -186 458 624 ; C 107 ; WX 600 ; N k ; B 63 0 541 604 ; C 108 ; WX 600 ; N l ; B 92 0 508 604 ; C 109 ; WX 600 ; N m ; B 11 0 593 431 ; C 110 ; WX 600 ; N n ; B 53 0 541 431 ; C 111 ; WX 600 ; N o ; B 72 -16 528 431 ; C 112 ; WX 600 ; N p ; B 22 -186 541 431 ; C 113 ; WX 600 ; N q ; B 63 -186 583 431 ; C 114 ; WX 600 ; N r ; B 84 0 541 427 ; C 115 ; WX 600 ; N s ; B 103 -16 497 431 ; C 116 ; WX 600 ; N t ; B 43 -16 499 563 ; C 117 ; WX 600 ; N u ; B 43 -16 541 417 ; C 118 ; WX 600 ; N v ; B 30 0 570 417 ; C 119 ; WX 600 ; N w ; B 30 0 570 417 ; C 120 ; WX 600 ; N x ; B 51 0 549 417 ; C 121 ; WX 600 ; N y ; B 51 -186 549 417 ; C 122 ; WX 600 ; N z ; B 115 0 489 417 ; C 123 ; WX 600 ; N braceleft ; B 197 -124 403 604 ; C 124 ; WX 600 ; N bar ; B 280 -124 320 604 ; C 125 ; WX 600 ; N braceright ; B 197 -124 403 604 ; C 126 ; WX 600 ; N asciitilde ; B 92 212 508 348 ; C 161 ; WX 600 ; N exclamdown ; B 240 -216 360 417 ; C 162 ; WX 600 ; N cent ; B 113 -13 469 630 ; C 163 ; WX 600 ; N sterling ; B 63 0 520 578 ; C 164 ; WX 600 ; N fraction ; B 50 138 549 470 ; C 165 ; WX 600 ; N yen ; B 51 0 549 563 ; C 166 ; WX 600 ; N florin ; B 87 -93 518 618 ; C 167 ; WX 600 ; N section ; B 66 -62 534 603 ; C 168 ; WX 600 ; N currency ; B 103 95 497 489 ; C 169 ; WX 600 ; N quotesingle ; B 236 315 364 604 ; C 170 ; WX 600 ; N quotedblleft ; B 93 343 507 604 ; C 171 ; WX 600 ; N guillemotleft ; B 63 0 541 417 ; C 172 ; WX 600 ; N guilsinglleft ; B 63 0 312 417 ; C 173 ; WX 600 ; N guilsinglright ; B 293 0 541 417 ; C 174 ; WX 600 ; N fi ; B 10 0 585 624 ; C 175 ; WX 600 ; N fl ; B 10 0 587 604 ; C 177 ; WX 600 ; N endash ; B 72 261 528 302 ; C 178 ; WX 600 ; N dagger ; B 124 -63 476 604 ; C 179 ; WX 600 ; N daggerdbl ; B 124 -62 476 604 ; C 180 ; WX 600 ; N periodcentered ; B 226 217 374 348 ; C 182 ; WX 600 ; N paragraph ; B 79 -62 525 604 ; C 183 ; WX 600 ; N bullet ; B 202 141 398 337 ; C 184 ; WX 600 ; N quotesinglbase ; B 135 -145 340 145 ; C 185 ; WX 600 ; N quotedblbase ; B 93 -116 507 145 ; C 186 ; WX 600 ; N quotedblright ; B 93 343 507 604 ; C 187 ; WX 600 ; N guillemotright ; B 63 0 541 417 ; C 188 ; WX 600 ; N ellipsis ; B 51 -15 549 84 ; C 189 ; WX 600 ; N perthousand ; B 34 -9 564 614 ; C 191 ; WX 600 ; N questiondown ; B 113 -175 466 417 ; C 193 ; WX 600 ; N grave ; B 155 490 320 639 ; C 194 ; WX 600 ; N acute ; B 280 490 445 639 ; C 195 ; WX 600 ; N circumflex ; B 155 490 445 639 ; C 196 ; WX 600 ; N tilde ; B 145 516 455 605 ; C 197 ; WX 600 ; N macron ; B 155 536 445 576 ; C 198 ; WX 600 ; N breve ; B 155 490 445 620 ; C 199 ; WX 600 ; N dotaccent ; B 250 511 350 611 ; C 200 ; WX 600 ; N dieresis ; B 140 511 461 611 ; C 202 ; WX 600 ; N ring ; B 207 480 393 661 ; C 203 ; WX 600 ; N cedilla ; B 210 -173 377 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 155 490 445 633 ; C 206 ; WX 600 ; N ogonek ; B 280 -155 433 0 ; C 207 ; WX 600 ; N caron ; B 155 490 445 639 ; C 208 ; WX 600 ; N emdash ; B 1 261 599 302 ; C 225 ; WX 600 ; N AE ; B 10 0 590 563 ; C 227 ; WX 600 ; N ordfeminine ; B 155 279 447 574 ; C 232 ; WX 600 ; N Lslash ; B 43 0 541 563 ; C 233 ; WX 600 ; N Oslash ; B 40 -43 560 605 ; C 234 ; WX 600 ; N OE ; B 10 0 590 563 ; C 235 ; WX 600 ; N ordmasculine ; B 154 284 448 577 ; C 241 ; WX 600 ; N ae ; B 12 -16 578 431 ; C 245 ; WX 600 ; N dotlessi ; B 92 0 508 417 ; C 248 ; WX 600 ; N lslash ; B 92 0 508 604 ; C 249 ; WX 600 ; N oslash ; B 53 -43 543 458 ; C 250 ; WX 600 ; N oe ; B 12 -16 578 431 ; C 251 ; WX 600 ; N germandbls ; B 43 -16 499 604 ; C -1 ; WX 600 ; N Udieresis ; B 40 -16 560 761 ; C -1 ; WX 600 ; N Uacute ; B 40 -16 560 789 ; C -1 ; WX 600 ; N Scedilla ; B 92 -173 508 576 ; C -1 ; WX 600 ; N Tcaron ; B 72 0 528 789 ; C -1 ; WX 600 ; N Scaron ; B 92 -16 508 789 ; C -1 ; WX 600 ; N Rcaron ; B 43 0 589 789 ; C -1 ; WX 600 ; N Racute ; B 43 0 589 789 ; C -1 ; WX 600 ; N Sacute ; B 92 -16 508 789 ; C -1 ; WX 600 ; N Otilde ; B 51 -16 549 755 ; C -1 ; WX 600 ; N ucircumflex ; B 43 -16 541 639 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 51 -16 549 783 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 40 -16 560 783 ; C -1 ; WX 600 ; N Yacute ; B 51 0 549 789 ; C -1 ; WX 600 ; N Eth ; B 0 0 520 563 ; C -1 ; WX 600 ; N Dcroat ; B 0 0 520 563 ; C -1 ; WX 600 ; N Zacute ; B 103 0 497 789 ; C -1 ; WX 600 ; N Uring ; B 40 -16 560 811 ; C -1 ; WX 600 ; N gbreve ; B 63 -186 562 620 ; C -1 ; WX 600 ; N eogonek ; B 63 -155 520 431 ; C -1 ; WX 600 ; N edotaccent ; B 63 -16 520 611 ; C -1 ; WX 600 ; N ecaron ; B 63 -16 520 639 ; C -1 ; WX 600 ; N Ugrave ; B 40 -16 560 789 ; C -1 ; WX 600 ; N Thorn ; B 43 0 499 563 ; C -1 ; WX 600 ; N eacute ; B 63 -16 520 639 ; C -1 ; WX 600 ; N edieresis ; B 63 -16 520 611 ; C -1 ; WX 600 ; N dcaron ; B 63 -16 650 616 ; C -1 ; WX 600 ; N ccedilla ; B 84 -173 535 431 ; C -1 ; WX 600 ; N ccaron ; B 84 -16 535 639 ; C -1 ; WX 600 ; N cacute ; B 84 -16 535 639 ; C -1 ; WX 600 ; N aogonek ; B 72 -155 556 431 ; C -1 ; WX 600 ; N aring ; B 72 -16 541 661 ; C -1 ; WX 600 ; N atilde ; B 72 -16 541 605 ; C -1 ; WX 600 ; N abreve ; B 72 -16 541 620 ; C -1 ; WX 600 ; N egrave ; B 63 -16 520 639 ; C -1 ; WX 600 ; N agrave ; B 72 -16 541 639 ; C -1 ; WX 600 ; N aacute ; B 72 -16 541 639 ; C -1 ; WX 600 ; N adieresis ; B 72 -16 541 611 ; C -1 ; WX 600 ; N Uogonek ; B 40 -155 560 563 ; C -1 ; WX 600 ; N ugrave ; B 43 -16 541 639 ; C -1 ; WX 600 ; N uacute ; B 43 -16 541 639 ; C -1 ; WX 600 ; N udieresis ; B 43 -16 541 611 ; C -1 ; WX 600 ; N tcaron ; B 43 -16 508 616 ; C -1 ; WX 600 ; N scommaaccent ; B 103 -237 497 431 ; C -1 ; WX 600 ; N Zcaron ; B 103 0 497 789 ; C -1 ; WX 600 ; N ecircumflex ; B 63 -16 520 639 ; C -1 ; WX 600 ; N Ucircumflex ; B 40 -16 560 789 ; C -1 ; WX 600 ; N acircumflex ; B 72 -16 541 639 ; C -1 ; WX 600 ; N Zdotaccent ; B 103 0 497 761 ; C -1 ; WX 600 ; N scaron ; B 103 -16 497 639 ; C -1 ; WX 600 ; N Amacron ; B 9 0 591 726 ; C -1 ; WX 600 ; N sacute ; B 103 -16 497 639 ; C -1 ; WX 600 ; N Tcommaaccent ; B 72 -237 528 563 ; C -1 ; WX 600 ; N Ydieresis ; B 51 0 549 761 ; C -1 ; WX 600 ; N thorn ; B 22 -186 541 590 ; C -1 ; WX 600 ; N Emacron ; B 43 0 520 726 ; C -1 ; WX 600 ; N Ograve ; B 51 -16 549 789 ; C -1 ; WX 600 ; N Oacute ; B 51 -16 549 789 ; C -1 ; WX 600 ; N Odieresis ; B 51 -16 549 761 ; C -1 ; WX 600 ; N Ntilde ; B 22 0 562 755 ; C -1 ; WX 600 ; N Ncaron ; B 22 0 562 789 ; C -1 ; WX 600 ; N Nacute ; B 22 0 562 789 ; C -1 ; WX 600 ; N Lcaron ; B 63 0 541 566 ; C -1 ; WX 600 ; N Lacute ; B 63 0 541 789 ; C -1 ; WX 600 ; N Idotaccent ; B 113 0 487 761 ; C -1 ; WX 600 ; N racute ; B 84 0 541 639 ; C -1 ; WX 600 ; N Icircumflex ; B 113 0 487 789 ; C -1 ; WX 600 ; N ohungarumlaut ; B 72 -16 528 633 ; C -1 ; WX 600 ; N otilde ; B 72 -16 528 605 ; C -1 ; WX 600 ; N Euro ; B 11 -16 534 576 ; C -1 ; WX 600 ; N ocircumflex ; B 72 -16 528 639 ; C -1 ; WX 600 ; N onesuperior ; B 191 259 410 612 ; C -1 ; WX 600 ; N twosuperior ; B 175 259 405 612 ; C -1 ; WX 600 ; N threesuperior ; B 181 251 416 612 ; C -1 ; WX 600 ; N Igrave ; B 113 0 487 789 ; C -1 ; WX 600 ; N Iacute ; B 113 0 487 789 ; C -1 ; WX 600 ; N Imacron ; B 113 0 487 726 ; C -1 ; WX 600 ; N Iogonek ; B 113 -155 500 563 ; C -1 ; WX 600 ; N Idieresis ; B 113 0 487 761 ; C -1 ; WX 600 ; N Gbreve ; B 63 -16 562 770 ; C -1 ; WX 600 ; N Umacron ; B 40 -16 560 726 ; C -1 ; WX 600 ; N Kcommaaccent ; B 43 -237 572 563 ; C -1 ; WX 600 ; N ograve ; B 72 -16 528 639 ; C -1 ; WX 600 ; N Scommaaccent ; B 92 -237 508 576 ; C -1 ; WX 600 ; N Eogonek ; B 43 -155 549 563 ; C -1 ; WX 600 ; N oacute ; B 72 -16 528 639 ; C -1 ; WX 600 ; N Edotaccent ; B 43 0 520 761 ; C -1 ; WX 600 ; N iogonek ; B 92 -155 520 624 ; C -1 ; WX 600 ; N gcommaaccent ; B 63 -186 562 666 ; C -1 ; WX 600 ; N odieresis ; B 72 -16 528 611 ; C -1 ; WX 600 ; N ntilde ; B 53 0 541 605 ; C -1 ; WX 600 ; N ncaron ; B 53 0 541 639 ; C -1 ; WX 600 ; N Ecaron ; B 43 0 520 789 ; C -1 ; WX 600 ; N Ecircumflex ; B 43 0 520 789 ; C -1 ; WX 600 ; N scedilla ; B 103 -173 497 431 ; C -1 ; WX 600 ; N rcaron ; B 84 0 541 639 ; C -1 ; WX 600 ; N Egrave ; B 43 0 520 789 ; C -1 ; WX 600 ; N Eacute ; B 43 0 520 789 ; C -1 ; WX 600 ; N Gcommaaccent ; B 63 -237 562 576 ; C -1 ; WX 600 ; N Rcommaaccent ; B 43 -237 589 563 ; C -1 ; WX 600 ; N Edieresis ; B 43 0 520 761 ; C -1 ; WX 600 ; N nacute ; B 53 0 541 639 ; C -1 ; WX 600 ; N uogonek ; B 43 -155 556 417 ; C -1 ; WX 600 ; N umacron ; B 43 -16 541 576 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 520 789 ; C -1 ; WX 600 ; N lcaron ; B 92 0 508 616 ; C -1 ; WX 600 ; N Ccaron ; B 63 -16 534 789 ; C -1 ; WX 600 ; N Cacute ; B 63 -16 534 789 ; C -1 ; WX 600 ; N Ccedilla ; B 63 -173 534 576 ; C -1 ; WX 600 ; N degree ; B 155 346 445 636 ; C -1 ; WX 600 ; N Aogonek ; B 9 -155 600 563 ; C -1 ; WX 600 ; N minus ; B 72 261 528 302 ; C -1 ; WX 600 ; N multiply ; B 118 100 482 464 ; C -1 ; WX 600 ; N divide ; B 72 25 528 540 ; C -1 ; WX 600 ; N Aring ; B 9 0 591 811 ; C -1 ; WX 600 ; N trademark ; B 4 243 598 563 ; C -1 ; WX 600 ; N rcommaaccent ; B 84 -237 541 427 ; C -1 ; WX 600 ; N lacute ; B 92 0 508 789 ; C -1 ; WX 600 ; N omacron ; B 72 -16 528 576 ; C -1 ; WX 600 ; N Atilde ; B 9 0 591 755 ; C -1 ; WX 600 ; N icircumflex ; B 92 0 508 639 ; C -1 ; WX 600 ; N igrave ; B 92 0 508 639 ; C -1 ; WX 600 ; N ncommaaccent ; B 53 -237 541 431 ; C -1 ; WX 600 ; N lcommaaccent ; B 92 -237 508 604 ; C -1 ; WX 600 ; N plusminus ; B 72 0 528 529 ; C -1 ; WX 600 ; N onehalf ; B 23 0 573 612 ; C -1 ; WX 600 ; N onequarter ; B 16 0 580 612 ; C -1 ; WX 600 ; N threequarters ; B 6 0 580 612 ; C -1 ; WX 600 ; N iacute ; B 92 0 508 639 ; C -1 ; WX 600 ; N Abreve ; B 9 0 591 770 ; C -1 ; WX 600 ; N kcommaaccent ; B 63 -237 541 604 ; C -1 ; WX 600 ; N Omacron ; B 51 -16 549 726 ; C -1 ; WX 600 ; N imacron ; B 92 0 508 576 ; C -1 ; WX 600 ; N emacron ; B 63 -16 520 576 ; C -1 ; WX 600 ; N amacron ; B 72 -16 541 576 ; C -1 ; WX 600 ; N tcommaaccent ; B 43 -237 499 563 ; C -1 ; WX 600 ; N ydieresis ; B 51 -186 549 611 ; C -1 ; WX 600 ; N zdotaccent ; B 115 0 489 611 ; C -1 ; WX 600 ; N zcaron ; B 115 0 489 639 ; C -1 ; WX 600 ; N zacute ; B 115 0 489 639 ; C -1 ; WX 600 ; N yacute ; B 51 -186 549 639 ; C -1 ; WX 600 ; N uhungarumlaut ; B 43 -16 541 633 ; C -1 ; WX 600 ; N eth ; B 72 -17 528 620 ; C -1 ; WX 600 ; N uring ; B 43 -16 541 661 ; C -1 ; WX 600 ; N Ocircumflex ; B 51 -16 549 789 ; C -1 ; WX 600 ; N commaaccent ; B 234 -237 367 -60 ; C -1 ; WX 600 ; N copyright ; B 3 -15 596 578 ; C -1 ; WX 600 ; N registered ; B 3 -15 596 578 ; C -1 ; WX 600 ; N Acircumflex ; B 9 0 591 789 ; C -1 ; WX 600 ; N idieresis ; B 92 0 508 611 ; C -1 ; WX 600 ; N lozenge ; B 89 -11 511 575 ; C -1 ; WX 600 ; N Delta ; B 43 0 557 563 ; C -1 ; WX 600 ; N notequal ; B 51 94 549 464 ; C -1 ; WX 600 ; N radical ; B 27 0 628 699 ; C -1 ; WX 600 ; N Agrave ; B 9 0 591 789 ; C -1 ; WX 600 ; N Aacute ; B 9 0 591 789 ; C -1 ; WX 600 ; N lessequal ; B 53 0 525 535 ; C -1 ; WX 600 ; N greaterequal ; B 59 0 531 535 ; C -1 ; WX 600 ; N logicalnot ; B 72 168 528 438 ; C -1 ; WX 600 ; N summation ; B 113 -127 507 563 ; C -1 ; WX 600 ; N partialdiff ; B 71 -17 529 582 ; C -1 ; WX 600 ; N Ncommaaccent ; B 22 -237 562 563 ; C -1 ; WX 600 ; N dcroat ; B 63 -16 583 604 ; C -1 ; WX 600 ; N brokenbar ; B 280 -124 320 604 ; C -1 ; WX 600 ; N Lcommaaccent ; B 63 -237 541 563 ; C -1 ; WX 600 ; N Adieresis ; B 9 0 591 761 ; C -1 ; WX 600 ; N mu ; B 43 -200 541 417 ; C -1 ; WX 600 ; N .notdef ; B 295 0 295 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -33 KPX A Ccedilla -30 KPX A G -27 KPX A O -27 KPX A Odieresis -27 KPX A Q -28 KPX A T -27 KPX A U -32 KPX A Uacute -32 KPX A Ucircumflex -32 KPX A Udieresis -32 KPX A Ugrave -32 KPX A V -74 KPX A W -12 KPX A Y -28 KPX A a 8 KPX A b 46 KPX A c -19 KPX A ccedilla -15 KPX A comma -39 KPX A d -10 KPX A e -14 KPX A g -23 KPX A guillemotleft -49 KPX A guilsinglleft -49 KPX A hyphen -30 KPX A o -16 KPX A period -67 KPX A q -24 KPX A quotedblright -78 KPX A quoteright -98 KPX A t -26 KPX A u -15 KPX A v -55 KPX A w -19 KPX A y -60 KPX Aacute C -33 KPX Aacute G -27 KPX Aacute O -27 KPX Aacute Q -28 KPX Aacute T -27 KPX Aacute U -32 KPX Aacute V -74 KPX Aacute W -12 KPX Aacute Y -28 KPX Aacute a 8 KPX Aacute b 46 KPX Aacute c -19 KPX Aacute comma -39 KPX Aacute d -10 KPX Aacute e -14 KPX Aacute g -23 KPX Aacute guillemotleft -49 KPX Aacute guilsinglleft -49 KPX Aacute hyphen -30 KPX Aacute o -16 KPX Aacute period -67 KPX Aacute q -24 KPX Aacute quoteright -98 KPX Aacute t -26 KPX Aacute u -15 KPX Aacute v -55 KPX Aacute w -19 KPX Aacute y -60 KPX Acircumflex C -33 KPX Acircumflex G -27 KPX Acircumflex O -27 KPX Acircumflex Q -28 KPX Acircumflex T -27 KPX Acircumflex U -32 KPX Acircumflex V -74 KPX Acircumflex W -12 KPX Acircumflex Y -28 KPX Acircumflex comma -39 KPX Acircumflex period -67 KPX Adieresis C -33 KPX Adieresis G -27 KPX Adieresis O -27 KPX Adieresis Q -28 KPX Adieresis T -27 KPX Adieresis U -32 KPX Adieresis V -74 KPX Adieresis W -12 KPX Adieresis Y -28 KPX Adieresis a 8 KPX Adieresis b 46 KPX Adieresis c -19 KPX Adieresis comma -39 KPX Adieresis d -10 KPX Adieresis g -23 KPX Adieresis guillemotleft -49 KPX Adieresis guilsinglleft -49 KPX Adieresis hyphen -30 KPX Adieresis o -16 KPX Adieresis period -67 KPX Adieresis q -24 KPX Adieresis quotedblright -78 KPX Adieresis quoteright -98 KPX Adieresis t -26 KPX Adieresis u -15 KPX Adieresis v -55 KPX Adieresis w -19 KPX Adieresis y -60 KPX Agrave C -33 KPX Agrave G -27 KPX Agrave O -27 KPX Agrave Q -28 KPX Agrave T -27 KPX Agrave U -32 KPX Agrave V -74 KPX Agrave W -12 KPX Agrave Y -28 KPX Agrave comma -39 KPX Agrave period -67 KPX Aring C -33 KPX Aring G -27 KPX Aring O -27 KPX Aring Q -28 KPX Aring T -27 KPX Aring U -32 KPX Aring V -74 KPX Aring W -12 KPX Aring Y -28 KPX Aring a 8 KPX Aring b 46 KPX Aring c -19 KPX Aring comma -39 KPX Aring d -10 KPX Aring e -14 KPX Aring g -23 KPX Aring guillemotleft -49 KPX Aring guilsinglleft -49 KPX Aring hyphen -30 KPX Aring o -16 KPX Aring period -67 KPX Aring q -24 KPX Aring quotedblright -78 KPX Aring quoteright -98 KPX Aring t -26 KPX Aring u -15 KPX Aring v -55 KPX Aring w -19 KPX Aring y -60 KPX Atilde C -33 KPX Atilde G -27 KPX Atilde O -27 KPX Atilde Q -28 KPX Atilde T -27 KPX Atilde U -32 KPX Atilde V -74 KPX Atilde W -12 KPX Atilde Y -28 KPX Atilde comma -39 KPX Atilde period -67 KPX B A -9 KPX B AE -9 KPX B Aacute -9 KPX B Acircumflex -9 KPX B Adieresis -9 KPX B Aring -9 KPX B Atilde -9 KPX B O -10 KPX B OE 10 KPX B Oacute -10 KPX B Ocircumflex -10 KPX B Odieresis -10 KPX B Ograve -10 KPX B Oslash -8 KPX B V -29 KPX B W -12 KPX B Y -50 KPX C A -9 KPX C AE -9 KPX C Aacute -9 KPX C Adieresis -9 KPX C Aring -9 KPX C H -26 KPX C K -11 KPX C O -21 KPX C Oacute -21 KPX C Odieresis -21 KPX Ccedilla A -5 KPX D A -42 KPX D Aacute -42 KPX D Acircumflex -42 KPX D Adieresis -42 KPX D Agrave -42 KPX D Aring -42 KPX D Atilde -42 KPX D J -31 KPX D T -40 KPX D V -42 KPX D W -17 KPX D X -55 KPX D Y -63 KPX F A -38 KPX F Aacute -38 KPX F Acircumflex -38 KPX F Adieresis -38 KPX F Agrave -38 KPX F Aring -38 KPX F Atilde -38 KPX F J -95 KPX F O -27 KPX F Odieresis -27 KPX F a -47 KPX F aacute -47 KPX F adieresis -43 KPX F ae -20 KPX F aring -47 KPX F comma -168 KPX F e -56 KPX F eacute -56 KPX F hyphen -67 KPX F i -47 KPX F j -54 KPX F o -63 KPX F oacute -63 KPX F odieresis -48 KPX F oe -21 KPX F oslash -63 KPX F period -193 KPX F r -32 KPX F u -1 KPX G A 6 KPX G AE 5 KPX G Aacute 6 KPX G Acircumflex 6 KPX G Adieresis 6 KPX G Agrave 6 KPX G Aring 6 KPX G Atilde 6 KPX G T -25 KPX G V 6 KPX G W 1 KPX G Y -14 KPX J A -7 KPX J AE -16 KPX J Adieresis -7 KPX J Aring -7 KPX K C -42 KPX K G -36 KPX K O -37 KPX K OE -19 KPX K Oacute -37 KPX K Odieresis -37 KPX K S -9 KPX K T -12 KPX K a -1 KPX K adieresis -1 KPX K ae 26 KPX K aring -1 KPX K e -24 KPX K hyphen -61 KPX K o -25 KPX K oacute -25 KPX K odieresis -25 KPX K u -25 KPX K udieresis -25 KPX K y -67 KPX L A 17 KPX L AE 16 KPX L Aacute 17 KPX L Adieresis 17 KPX L Aring 17 KPX L C -11 KPX L Ccedilla -10 KPX L G -10 KPX L O -6 KPX L Oacute -6 KPX L Ocircumflex -6 KPX L Odieresis -6 KPX L Ograve -6 KPX L Otilde -6 KPX L S -24 KPX L T -52 KPX L U -29 KPX L Udieresis -29 KPX L V -66 KPX L W -27 KPX L Y -53 KPX L hyphen 3 KPX L quotedblright -66 KPX L quoteright -73 KPX L u -16 KPX L udieresis -16 KPX L y -45 KPX N A -3 KPX N AE -3 KPX N Aacute -3 KPX N Adieresis -3 KPX N Aring -3 KPX N C -12 KPX N Ccedilla -12 KPX N G -11 KPX N O -9 KPX N Oacute -9 KPX N Odieresis -9 KPX N a -19 KPX N aacute -19 KPX N adieresis -19 KPX N ae 11 KPX N aring -19 KPX N comma -58 KPX N e -6 KPX N eacute -6 KPX N o -10 KPX N oacute -10 KPX N odieresis -10 KPX N oslash -7 KPX N period -83 KPX N u -9 KPX N udieresis -9 KPX O A -27 KPX O AE -26 KPX O Aacute -27 KPX O Adieresis -27 KPX O Aring -27 KPX O T -30 KPX O V -31 KPX O W -5 KPX O X -43 KPX O Y -52 KPX Oacute A -27 KPX Oacute T -30 KPX Oacute V -31 KPX Oacute W -5 KPX Oacute Y -52 KPX Ocircumflex T -30 KPX Ocircumflex V -31 KPX Ocircumflex Y -52 KPX Odieresis A -27 KPX Odieresis T -30 KPX Odieresis V -31 KPX Odieresis W -5 KPX Odieresis X -43 KPX Odieresis Y -52 KPX Ograve T -30 KPX Ograve V -31 KPX Ograve Y -52 KPX Oslash A -26 KPX Otilde T -30 KPX Otilde V -31 KPX Otilde Y -52 KPX P A -79 KPX P AE -76 KPX P Aacute -79 KPX P Adieresis -79 KPX P Aring -79 KPX P J -82 KPX P a -52 KPX P aacute -52 KPX P adieresis -52 KPX P ae -25 KPX P aring -52 KPX P comma -156 KPX P e -42 KPX P eacute -42 KPX P hyphen -46 KPX P o -48 KPX P oacute -48 KPX P odieresis -48 KPX P oe -13 KPX P oslash -48 KPX P period -181 KPX R C -27 KPX R Ccedilla -28 KPX R G -26 KPX R O -25 KPX R OE -4 KPX R Oacute -25 KPX R Odieresis -25 KPX R T -28 KPX R U -32 KPX R Udieresis -32 KPX R V -33 KPX R W -13 KPX R Y -29 KPX R a 7 KPX R aacute 7 KPX R adieresis 7 KPX R ae 35 KPX R aring 7 KPX R e -15 KPX R eacute -15 KPX R hyphen -48 KPX R o -17 KPX R oacute -17 KPX R odieresis -17 KPX R oe 22 KPX R u -11 KPX R uacute -11 KPX R udieresis -11 KPX R y -15 KPX S A -22 KPX S AE -22 KPX S Aacute -22 KPX S Adieresis -22 KPX S Aring -22 KPX S T -42 KPX S V -10 KPX S W -16 KPX S Y -31 KPX S t -18 KPX T A -27 KPX T AE -27 KPX T Aacute -27 KPX T Acircumflex -27 KPX T Adieresis -27 KPX T Agrave -27 KPX T Aring -27 KPX T Atilde -27 KPX T C -29 KPX T G -30 KPX T J -79 KPX T O -29 KPX T OE -7 KPX T Oacute -29 KPX T Ocircumflex -29 KPX T Odieresis -29 KPX T Ograve -29 KPX T Oslash -29 KPX T Otilde -29 KPX T S -43 KPX T V 10 KPX T W 5 KPX T Y -10 KPX T a -60 KPX T ae -33 KPX T c -88 KPX T colon -136 KPX T comma -108 KPX T e -83 KPX T g -92 KPX T guillemotleft -122 KPX T guilsinglleft -122 KPX T hyphen -94 KPX T i -58 KPX T j -80 KPX T o -85 KPX T oslash -54 KPX T period -136 KPX T r -54 KPX T s -63 KPX T semicolon -111 KPX T u -84 KPX T v -93 KPX T w -88 KPX T y -103 KPX U A -18 KPX U AE -27 KPX U Aacute -18 KPX U Acircumflex -18 KPX U Adieresis -18 KPX U Aring -18 KPX U Atilde -18 KPX U comma -76 KPX U m 6 KPX U n -19 KPX U p 0 KPX U period -101 KPX U r -41 KPX Uacute A -18 KPX Uacute comma -76 KPX Uacute m 6 KPX Uacute n -19 KPX Uacute p 0 KPX Uacute period -101 KPX Uacute r -41 KPX Ucircumflex A -18 KPX Udieresis A -18 KPX Udieresis b 25 KPX Udieresis comma -76 KPX Udieresis m 6 KPX Udieresis n -19 KPX Udieresis p 0 KPX Udieresis period -101 KPX Udieresis r -41 KPX Ugrave A -18 KPX V A -3 KPX V AE -12 KPX V Aacute -3 KPX V Acircumflex -3 KPX V Adieresis -3 KPX V Agrave -3 KPX V Aring -3 KPX V Atilde -3 KPX V C -29 KPX V G -31 KPX V O -31 KPX V Oacute -31 KPX V Ocircumflex -31 KPX V Odieresis -31 KPX V Ograve -31 KPX V Oslash -31 KPX V Otilde -31 KPX V S -34 KPX V T 10 KPX V a -60 KPX V ae -33 KPX V colon -124 KPX V comma -129 KPX V e -52 KPX V g -53 KPX V guillemotleft -75 KPX V guilsinglleft -75 KPX V hyphen -43 KPX V i -60 KPX V o -56 KPX V oslash -53 KPX V period -154 KPX V r -46 KPX V semicolon -114 KPX V u -15 KPX V y -19 KPX W A -8 KPX W AE -14 KPX W Aacute -8 KPX W Acircumflex -8 KPX W Adieresis -8 KPX W Agrave -8 KPX W Aring -8 KPX W Atilde -8 KPX W C -8 KPX W G -7 KPX W O -5 KPX W Oacute -5 KPX W Ocircumflex -5 KPX W Odieresis -5 KPX W Ograve -5 KPX W Oslash -2 KPX W Otilde -5 KPX W S -24 KPX W T 5 KPX W a -20 KPX W ae 10 KPX W colon -88 KPX W comma -66 KPX W e -6 KPX W g -7 KPX W guillemotleft -31 KPX W guilsinglleft -31 KPX W hyphen -2 KPX W i -43 KPX W o -10 KPX W oslash -7 KPX W period -90 KPX W r -29 KPX W semicolon -69 KPX W u 2 KPX W y -2 KPX X C -46 KPX X O -43 KPX X Odieresis -43 KPX X Q -44 KPX X a -7 KPX X e -30 KPX X hyphen -75 KPX X o -31 KPX X u -31 KPX X y -53 KPX Y A -24 KPX Y AE -27 KPX Y Aacute -24 KPX Y Acircumflex -24 KPX Y Adieresis -24 KPX Y Agrave -24 KPX Y Aring -24 KPX Y Atilde -24 KPX Y C -51 KPX Y G -52 KPX Y O -53 KPX Y Oacute -53 KPX Y Ocircumflex -53 KPX Y Odieresis -53 KPX Y Ograve -53 KPX Y Oslash -53 KPX Y Otilde -53 KPX Y S -55 KPX Y T -10 KPX Y a -60 KPX Y ae -32 KPX Y colon -135 KPX Y comma -107 KPX Y e -78 KPX Y g -81 KPX Y guillemotleft -115 KPX Y guilsinglleft -115 KPX Y hyphen -91 KPX Y i -57 KPX Y o -83 KPX Y oslash -54 KPX Y p -35 KPX Y period -135 KPX Y semicolon -110 KPX Y u -46 KPX Y v -39 KPX Z v -50 KPX Z y -61 KPX a j -87 KPX a quoteright -56 KPX a v -28 KPX a w -21 KPX a y -38 KPX aacute v -28 KPX aacute w -21 KPX aacute y -38 KPX adieresis v -28 KPX adieresis w -21 KPX adieresis y -38 KPX ae v 21 KPX ae w 21 KPX ae y 10 KPX agrave v -28 KPX agrave w -21 KPX agrave y -38 KPX aring v -28 KPX aring w -21 KPX aring y -38 KPX b v -12 KPX b w 1 KPX b y -22 KPX c h -3 KPX c k -9 KPX comma one -144 KPX comma quotedblright -119 KPX comma quoteright -136 KPX e quoteright -41 KPX e t -29 KPX e v -22 KPX e w -19 KPX e x -2 KPX e y -33 KPX eacute v -22 KPX eacute w -19 KPX eacute y -33 KPX ecircumflex v -22 KPX ecircumflex w -19 KPX ecircumflex y -33 KPX eight four -58 KPX eight one -75 KPX eight seven -68 KPX f a -38 KPX f aacute -38 KPX f adieresis -22 KPX f ae -11 KPX f aring -38 KPX f e -55 KPX f eacute -55 KPX f f -42 KPX f i -36 KPX f j -59 KPX f l -25 KPX f o -62 KPX f oacute -62 KPX f odieresis -27 KPX f oe -20 KPX f oslash -32 KPX f quoteright -56 KPX f s -41 KPX f t -6 KPX five four -52 KPX five one -86 KPX five seven -72 KPX four four -62 KPX four one -66 KPX four seven -93 KPX g a -10 KPX g adieresis -10 KPX g ae 16 KPX g aring -10 KPX g e -4 KPX g eacute -4 KPX g l -33 KPX g oacute -8 KPX g odieresis -8 KPX g r 0 KPX guillemotright A -43 KPX guillemotright AE -39 KPX guillemotright Aacute -43 KPX guillemotright Adieresis -43 KPX guillemotright Aring -43 KPX guillemotright T -121 KPX guillemotright V -71 KPX guillemotright W -29 KPX guillemotright Y -114 KPX guilsinglright A -43 KPX guilsinglright AE -39 KPX guilsinglright Aacute -43 KPX guilsinglright Adieresis -43 KPX guilsinglright Aring -43 KPX guilsinglright T -121 KPX guilsinglright V -71 KPX guilsinglright W -29 KPX guilsinglright Y -114 KPX h quoteright -49 KPX h y -32 KPX hyphen A -26 KPX hyphen AE -20 KPX hyphen Aacute -26 KPX hyphen Adieresis -26 KPX hyphen Aring -26 KPX hyphen T -95 KPX hyphen V -41 KPX hyphen W -1 KPX hyphen Y -92 KPX i T -58 KPX i j -142 KPX k a -6 KPX k aacute -6 KPX k adieresis -6 KPX k ae 21 KPX k aring -6 KPX k comma -53 KPX k e -29 KPX k eacute -29 KPX k g -38 KPX k hyphen -99 KPX k o -30 KPX k oacute -30 KPX k odieresis -30 KPX k period -81 KPX k s -9 KPX k u -3 KPX k udieresis -3 KPX l v -83 KPX l y -93 KPX m p 22 KPX m v 14 KPX m w 15 KPX m y 3 KPX n T -42 KPX n p -5 KPX n quoteright -47 KPX n v -21 KPX n w -12 KPX n y -31 KPX nine four -51 KPX nine one -75 KPX nine seven -66 KPX o T -85 KPX o quoteright -39 KPX o t -22 KPX o v -21 KPX o w -6 KPX o x -26 KPX o y -31 KPX oacute v -21 KPX oacute w -6 KPX oacute y -31 KPX ocircumflex t -22 KPX odieresis t -22 KPX odieresis v -21 KPX odieresis w -6 KPX odieresis x -26 KPX odieresis y -31 KPX ograve v -21 KPX ograve w -6 KPX ograve y -31 KPX one comma -91 KPX one eight -86 KPX one five -67 KPX one four -119 KPX one nine -75 KPX one one -62 KPX one period -119 KPX one seven -141 KPX one six -111 KPX one three -61 KPX one two -47 KPX one zero -94 KPX p t -15 KPX p y -19 KPX period one -119 KPX period quotedblright -108 KPX period quoteright -125 KPX q c -2 KPX q u 42 KPX quotedblbase A -3 KPX quotedblbase AE -3 KPX quotedblbase T -78 KPX quotedblbase V -83 KPX quotedblbase W -23 KPX quotedblbase Y -79 KPX quotedblleft A -59 KPX quotedblleft AE -52 KPX quotedblleft Aacute -59 KPX quotedblleft Adieresis -59 KPX quotedblleft Aring -59 KPX quotedblleft T -37 KPX quotedblleft V -14 KPX quotedblleft W -3 KPX quotedblleft Y -35 KPX quotedblright A -59 KPX quotedblright AE -68 KPX quotedblright Aacute -59 KPX quotedblright Adieresis -59 KPX quotedblright Aring -59 KPX quotedblright T -45 KPX quotedblright V -14 KPX quotedblright W -20 KPX quotedblright Y -35 KPX quoteleft A -80 KPX quoteleft AE -73 KPX quoteleft Aacute -80 KPX quoteleft Adieresis -80 KPX quoteleft Aring -80 KPX quoteleft T -59 KPX quoteleft V -36 KPX quoteleft W -24 KPX quoteleft Y -56 KPX quoteright A -140 KPX quoteright AE -149 KPX quoteright Aacute -140 KPX quoteright Adieresis -140 KPX quoteright Aring -140 KPX quoteright comma -196 KPX quoteright d -126 KPX quoteright o -131 KPX quoteright period -220 KPX quoteright r -145 KPX quoteright s -140 KPX quoteright t -114 KPX quoteright v -108 KPX quoteright w -105 KPX quoteright y -118 KPX r a -20 KPX r aacute -20 KPX r acircumflex -20 KPX r adieresis -20 KPX r ae 7 KPX r agrave -20 KPX r aring -20 KPX r c -24 KPX r ccedilla -28 KPX r colon -81 KPX r comma -97 KPX r d -14 KPX r e -12 KPX r eacute -12 KPX r ecircumflex -12 KPX r egrave -12 KPX r f -18 KPX r g -11 KPX r h -19 KPX r hyphen -120 KPX r i -28 KPX r j -35 KPX r k -29 KPX r l -47 KPX r m 33 KPX r n 6 KPX r o -19 KPX r oacute -19 KPX r ocircumflex -19 KPX r odieresis -19 KPX r oe 18 KPX r ograve -19 KPX r oslash -19 KPX r p 28 KPX r period -125 KPX r q -11 KPX r quoteright -37 KPX r r -13 KPX r s -24 KPX r semicolon -69 KPX r t 17 KPX r u 17 KPX r v 24 KPX r w 24 KPX r x 2 KPX r y 13 KPX r z -19 KPX s quoteright -48 KPX s t -13 KPX seven colon -148 KPX seven comma -140 KPX seven eight -79 KPX seven five -84 KPX seven four -111 KPX seven one -67 KPX seven period -165 KPX seven seven -62 KPX seven six -99 KPX seven three -72 KPX seven two -69 KPX six four -46 KPX six one -61 KPX six seven -48 KPX t S -35 KPX t a -20 KPX t aacute -20 KPX t adieresis -20 KPX t ae 8 KPX t aring -20 KPX t colon -102 KPX t e -37 KPX t eacute -37 KPX t h -7 KPX t o -39 KPX t oacute -39 KPX t odieresis -39 KPX t quoteright -94 KPX t semicolon -80 KPX three four -52 KPX three one -74 KPX three seven -67 KPX two four -92 KPX two one -66 KPX two seven -71 KPX u quoteright -38 KPX v a -6 KPX v aacute -6 KPX v acircumflex -6 KPX v adieresis -6 KPX v ae 20 KPX v agrave -6 KPX v aring -6 KPX v atilde -6 KPX v c -25 KPX v colon -71 KPX v comma -113 KPX v e -13 KPX v eacute -13 KPX v ecircumflex -13 KPX v egrave -13 KPX v g -11 KPX v hyphen -24 KPX v l -82 KPX v o -21 KPX v oacute -21 KPX v odieresis -21 KPX v ograve -21 KPX v oslash -21 KPX v period -139 KPX v s -19 KPX v semicolon -62 KPX w a -6 KPX w aacute -6 KPX w acircumflex -6 KPX w adieresis -6 KPX w ae 20 KPX w agrave -6 KPX w aring -6 KPX w atilde -6 KPX w c -10 KPX w colon -71 KPX w comma -70 KPX w e -1 KPX w eacute -1 KPX w ecircumflex -1 KPX w egrave -1 KPX w g -3 KPX w hyphen 1 KPX w l -50 KPX w o -6 KPX w oacute -6 KPX w odieresis -6 KPX w ograve -6 KPX w oslash -3 KPX w period -95 KPX w s -18 KPX w semicolon -62 KPX x a -2 KPX x c -29 KPX x e -25 KPX x eacute -25 KPX x o -26 KPX x q -30 KPX y a -17 KPX y aacute -17 KPX y acircumflex -17 KPX y adieresis -17 KPX y ae 10 KPX y agrave -17 KPX y aring -17 KPX y atilde -17 KPX y c -35 KPX y colon -81 KPX y comma -117 KPX y e -24 KPX y eacute -24 KPX y ecircumflex -24 KPX y egrave -24 KPX y g -21 KPX y hyphen -24 KPX y l -93 KPX y o -31 KPX y oacute -31 KPX y odieresis -31 KPX y ograve -31 KPX y oslash -31 KPX y period -144 KPX y s -30 KPX y semicolon -72 KPX zero four -58 KPX zero one -81 KPX zero seven -73 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n022023l.afm0000644000076500001440000007661007056046554016421 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusMonL-ReguObli FullName Nimbus Mono L Regular Oblique FamilyName Nimbus Mono L Weight Regular ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -61 -237 774 811 CapHeight 563 XHeight 417 Descender -186 Ascender 604 StartCharMetrics 316 C 32 ; WX 600 ; N space ; B 319 0 319 0 ; C 33 ; WX 600 ; N exclam ; B 246 -15 463 618 ; C 34 ; WX 600 ; N quotedbl ; B 254 315 582 604 ; C 35 ; WX 600 ; N numbersign ; B 137 -62 589 647 ; C 36 ; WX 600 ; N dollar ; B 131 -92 582 655 ; C 37 ; WX 600 ; N percent ; B 137 -12 591 611 ; C 38 ; WX 600 ; N ampersand ; B 132 -16 527 519 ; C 39 ; WX 600 ; N quoteright ; B 207 314 468 604 ; C 40 ; WX 600 ; N parenleft ; B 335 -124 583 604 ; C 41 ; WX 600 ; N parenright ; B 124 -124 372 604 ; C 42 ; WX 600 ; N asterisk ; B 211 250 586 604 ; C 43 ; WX 600 ; N plus ; B 131 32 588 530 ; C 44 ; WX 600 ; N comma ; B 110 -145 371 145 ; C 45 ; WX 600 ; N hyphen ; B 131 258 588 299 ; C 46 ; WX 600 ; N period ; B 235 -15 386 116 ; C 47 ; WX 600 ; N slash ; B 99 -81 625 668 ; C 48 ; WX 600 ; N zero ; B 156 -15 571 618 ; C 49 ; WX 600 ; N one ; B 117 0 492 612 ; C 50 ; WX 600 ; N two ; B 84 0 572 618 ; C 51 ; WX 600 ; N three ; B 110 -15 579 618 ; C 52 ; WX 600 ; N four ; B 141 0 545 604 ; C 53 ; WX 600 ; N five ; B 113 -15 584 604 ; C 54 ; WX 600 ; N six ; B 184 -15 631 618 ; C 55 ; WX 600 ; N seven ; B 215 -1 606 604 ; C 56 ; WX 600 ; N eight ; B 143 -15 576 618 ; C 57 ; WX 600 ; N nine ; B 142 -15 589 618 ; C 58 ; WX 600 ; N colon ; B 235 -15 450 417 ; C 59 ; WX 600 ; N semicolon ; B 114 -145 426 417 ; C 60 ; WX 600 ; N less ; B 131 44 627 518 ; C 61 ; WX 600 ; N equal ; B 95 190 625 375 ; C 62 ; WX 600 ; N greater ; B 92 44 588 518 ; C 63 ; WX 600 ; N question ; B 231 -15 581 577 ; C 64 ; WX 600 ; N at ; B 139 -62 561 624 ; C 65 ; WX 600 ; N A ; B 13 0 596 563 ; C 66 ; WX 600 ; N B ; B 47 0 591 563 ; C 67 ; WX 600 ; N C ; B 110 -16 635 576 ; C 68 ; WX 600 ; N D ; B 47 0 592 563 ; C 69 ; WX 600 ; N E ; B 47 0 619 563 ; C 70 ; WX 600 ; N F ; B 47 0 640 563 ; C 71 ; WX 600 ; N G ; B 108 -16 636 576 ; C 72 ; WX 600 ; N H ; B 57 0 646 563 ; C 73 ; WX 600 ; N I ; B 117 0 603 563 ; C 74 ; WX 600 ; N J ; B 100 -16 699 563 ; C 75 ; WX 600 ; N K ; B 47 0 662 563 ; C 76 ; WX 600 ; N L ; B 67 0 585 563 ; C 77 ; WX 600 ; N M ; B 15 0 700 563 ; C 78 ; WX 600 ; N N ; B 46 0 678 563 ; C 79 ; WX 600 ; N O ; B 102 -16 616 576 ; C 80 ; WX 600 ; N P ; B 47 0 587 563 ; C 81 ; WX 600 ; N Q ; B 102 -115 616 576 ; C 82 ; WX 600 ; N R ; B 47 0 594 563 ; C 83 ; WX 600 ; N S ; B 96 -17 602 577 ; C 84 ; WX 600 ; N T ; B 152 0 648 563 ; C 85 ; WX 600 ; N U ; B 136 -16 676 563 ; C 86 ; WX 600 ; N V ; B 124 0 707 563 ; C 87 ; WX 600 ; N W ; B 122 0 696 563 ; C 88 ; WX 600 ; N X ; B 44 0 662 563 ; C 89 ; WX 600 ; N Y ; B 153 0 665 563 ; C 90 ; WX 600 ; N Z ; B 103 0 590 563 ; C 91 ; WX 600 ; N bracketleft ; B 254 -124 570 604 ; C 92 ; WX 600 ; N backslash ; B 250 -81 474 668 ; C 93 ; WX 600 ; N bracketright ; B 132 -124 448 604 ; C 94 ; WX 600 ; N asciicircum ; B 192 354 567 615 ; C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ; C 96 ; WX 600 ; N quoteleft ; B 388 343 544 604 ; C 97 ; WX 600 ; N a ; B 93 -16 546 431 ; C 98 ; WX 600 ; N b ; B 26 -16 591 604 ; C 99 ; WX 600 ; N c ; B 121 -17 596 432 ; C 100 ; WX 600 ; N d ; B 102 -16 630 604 ; C 101 ; WX 600 ; N e ; B 104 -16 570 431 ; C 102 ; WX 600 ; N f ; B 109 0 663 604 ; C 103 ; WX 600 ; N g ; B 105 -186 647 431 ; C 104 ; WX 600 ; N h ; B 55 0 556 604 ; C 105 ; WX 600 ; N i ; B 96 0 513 624 ; C 106 ; WX 600 ; N j ; B 112 -186 547 624 ; C 107 ; WX 600 ; N k ; B 67 0 578 604 ; C 108 ; WX 600 ; N l ; B 96 0 513 604 ; C 109 ; WX 600 ; N m ; B 15 0 603 431 ; C 110 ; WX 600 ; N n ; B 57 0 546 431 ; C 111 ; WX 600 ; N o ; B 111 -16 577 431 ; C 112 ; WX 600 ; N p ; B -13 -186 593 431 ; C 113 ; WX 600 ; N q ; B 105 -186 668 431 ; C 114 ; WX 600 ; N r ; B 88 0 619 427 ; C 115 ; WX 600 ; N s ; B 108 -17 558 431 ; C 116 ; WX 600 ; N t ; B 127 -16 518 563 ; C 117 ; WX 600 ; N u ; B 127 -16 569 417 ; C 118 ; WX 600 ; N v ; B 114 0 655 417 ; C 119 ; WX 600 ; N w ; B 114 0 655 417 ; C 120 ; WX 600 ; N x ; B 55 0 611 417 ; C 121 ; WX 600 ; N y ; B 22 -186 634 417 ; C 122 ; WX 600 ; N z ; B 115 0 563 417 ; C 123 ; WX 600 ; N braceleft ; B 248 -124 528 604 ; C 124 ; WX 600 ; N bar ; B 257 -124 444 604 ; C 125 ; WX 600 ; N braceright ; B 175 -124 455 604 ; C 126 ; WX 600 ; N asciitilde ; B 145 212 575 348 ; C 161 ; WX 600 ; N exclamdown ; B 222 -216 439 417 ; C 162 ; WX 600 ; N cent ; B 175 -13 563 630 ; C 163 ; WX 600 ; N sterling ; B 90 0 541 578 ; C 164 ; WX 600 ; N fraction ; B 84 138 645 470 ; C 165 ; WX 600 ; N yen ; B 161 0 665 563 ; C 166 ; WX 600 ; N florin ; B 74 -93 643 618 ; C 167 ; WX 600 ; N section ; B 91 -62 624 603 ; C 168 ; WX 600 ; N currency ; B 127 95 597 489 ; C 169 ; WX 600 ; N quotesingle ; B 344 315 492 604 ; C 170 ; WX 600 ; N quotedblleft ; B 221 343 586 604 ; C 171 ; WX 600 ; N guillemotleft ; B 108 0 626 417 ; C 172 ; WX 600 ; N guilsinglleft ; B 108 0 397 417 ; C 173 ; WX 600 ; N guilsinglright ; B 297 0 585 417 ; C 174 ; WX 600 ; N fi ; B 14 0 615 624 ; C 175 ; WX 600 ; N fl ; B 14 0 611 604 ; C 177 ; WX 600 ; N endash ; B 131 261 588 302 ; C 178 ; WX 600 ; N dagger ; B 208 -63 561 604 ; C 179 ; WX 600 ; N daggerdbl ; B 154 -62 561 604 ; C 180 ; WX 600 ; N periodcentered ; B 285 217 436 348 ; C 182 ; WX 600 ; N paragraph ; B 152 -62 648 604 ; C 183 ; WX 600 ; N bullet ; B 253 141 449 337 ; C 184 ; WX 600 ; N quotesinglbase ; B 110 -145 371 145 ; C 185 ; WX 600 ; N quotedblbase ; B 73 -116 538 145 ; C 186 ; WX 600 ; N quotedblright ; B 170 343 635 604 ; C 187 ; WX 600 ; N guillemotright ; B 67 0 585 417 ; C 188 ; WX 600 ; N ellipsis ; B 57 -15 557 84 ; C 189 ; WX 600 ; N perthousand ; B 91 -9 598 614 ; C 191 ; WX 600 ; N questiondown ; B 105 -175 455 417 ; C 193 ; WX 600 ; N grave ; B 286 490 429 639 ; C 194 ; WX 600 ; N acute ; B 388 490 577 639 ; C 195 ; WX 600 ; N circumflex ; B 263 490 554 639 ; C 196 ; WX 600 ; N tilde ; B 258 516 579 605 ; C 197 ; WX 600 ; N macron ; B 273 536 564 576 ; C 198 ; WX 600 ; N breve ; B 280 489 574 621 ; C 199 ; WX 600 ; N dotaccent ; B 368 511 470 611 ; C 200 ; WX 600 ; N dieresis ; B 258 511 581 611 ; C 202 ; WX 600 ; N ring ; B 326 480 516 661 ; C 203 ; WX 600 ; N cedilla ; B 181 -173 356 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 263 490 576 633 ; C 206 ; WX 600 ; N ogonek ; B 258 -155 408 0 ; C 207 ; WX 600 ; N caron ; B 286 490 577 639 ; C 208 ; WX 600 ; N emdash ; B 60 261 659 302 ; C 225 ; WX 600 ; N AE ; B 14 0 690 563 ; C 227 ; WX 600 ; N ordfeminine ; B 229 279 511 574 ; C 232 ; WX 600 ; N Lslash ; B 66 0 586 563 ; C 233 ; WX 600 ; N Oslash ; B 34 -43 685 605 ; C 234 ; WX 600 ; N OE ; B 62 0 690 563 ; C 235 ; WX 600 ; N ordmasculine ; B 243 284 543 577 ; C 241 ; WX 600 ; N ae ; B 36 -16 630 431 ; C 245 ; WX 600 ; N dotlessi ; B 96 0 513 417 ; C 248 ; WX 600 ; N lslash ; B 96 0 524 604 ; C 249 ; WX 600 ; N oslash ; B 47 -43 637 458 ; C 250 ; WX 600 ; N oe ; B 50 -16 630 431 ; C 251 ; WX 600 ; N germandbls ; B 47 -16 539 604 ; C -1 ; WX 600 ; N Udieresis ; B 136 -16 676 762 ; C -1 ; WX 600 ; N Uacute ; B 136 -16 676 789 ; C -1 ; WX 600 ; N Scedilla ; B 96 -179 602 577 ; C -1 ; WX 600 ; N Tcaron ; B 152 0 648 789 ; C -1 ; WX 600 ; N Scaron ; B 96 -17 618 789 ; C -1 ; WX 600 ; N Rcaron ; B 47 0 594 789 ; C -1 ; WX 600 ; N Racute ; B 47 0 594 789 ; C -1 ; WX 600 ; N Sacute ; B 96 -17 602 789 ; C -1 ; WX 600 ; N Otilde ; B 103 -16 618 755 ; C -1 ; WX 600 ; N ucircumflex ; B 127 -16 569 639 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 102 -16 672 787 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 136 -16 676 787 ; C -1 ; WX 600 ; N Yacute ; B 153 0 665 789 ; C -1 ; WX 600 ; N Eth ; B 47 0 592 563 ; C -1 ; WX 600 ; N Dcroat ; B 47 0 592 563 ; C -1 ; WX 600 ; N Zacute ; B 103 0 590 789 ; C -1 ; WX 600 ; N Uring ; B 136 -16 676 807 ; C -1 ; WX 600 ; N gbreve ; B 105 -186 647 621 ; C -1 ; WX 600 ; N eogonek ; B 104 -155 570 431 ; C -1 ; WX 600 ; N edotaccent ; B 104 -16 570 611 ; C -1 ; WX 600 ; N ecaron ; B 104 -16 577 639 ; C -1 ; WX 600 ; N Ugrave ; B 136 -16 676 789 ; C -1 ; WX 600 ; N Thorn ; B 47 0 566 563 ; C -1 ; WX 600 ; N eacute ; B 104 -16 570 639 ; C -1 ; WX 600 ; N edieresis ; B 104 -16 586 611 ; C -1 ; WX 600 ; N dcaron ; B 102 -16 774 618 ; C -1 ; WX 600 ; N ccedilla ; B 122 -173 596 431 ; C -1 ; WX 600 ; N ccaron ; B 121 -17 596 639 ; C -1 ; WX 600 ; N cacute ; B 121 -17 596 639 ; C -1 ; WX 600 ; N aogonek ; B 93 -155 546 431 ; C -1 ; WX 600 ; N aring ; B 93 -16 546 661 ; C -1 ; WX 600 ; N atilde ; B 93 -16 570 605 ; C -1 ; WX 600 ; N abreve ; B 93 -16 574 621 ; C -1 ; WX 600 ; N egrave ; B 104 -16 570 639 ; C -1 ; WX 600 ; N agrave ; B 93 -16 546 639 ; C -1 ; WX 600 ; N aacute ; B 93 -16 546 639 ; C -1 ; WX 600 ; N adieresis ; B 93 -16 571 611 ; C -1 ; WX 600 ; N Uogonek ; B 136 -155 676 563 ; C -1 ; WX 600 ; N ugrave ; B 127 -16 569 639 ; C -1 ; WX 600 ; N uacute ; B 127 -16 569 639 ; C -1 ; WX 600 ; N udieresis ; B 127 -16 573 611 ; C -1 ; WX 600 ; N tcaron ; B 127 -16 593 618 ; C -1 ; WX 600 ; N scommaaccent ; B 108 -237 558 431 ; C -1 ; WX 600 ; N Zcaron ; B 103 0 604 789 ; C -1 ; WX 600 ; N ecircumflex ; B 104 -16 570 639 ; C -1 ; WX 600 ; N Ucircumflex ; B 136 -16 676 789 ; C -1 ; WX 600 ; N acircumflex ; B 93 -16 546 639 ; C -1 ; WX 600 ; N Zdotaccent ; B 103 0 590 762 ; C -1 ; WX 600 ; N scaron ; B 107 -17 584 639 ; C -1 ; WX 600 ; N Amacron ; B 13 0 596 723 ; C -1 ; WX 600 ; N sacute ; B 108 -17 577 639 ; C -1 ; WX 600 ; N Tcommaaccent ; B 152 -237 648 563 ; C -1 ; WX 600 ; N Ydieresis ; B 153 0 665 762 ; C -1 ; WX 600 ; N thorn ; B -13 -186 593 590 ; C -1 ; WX 600 ; N Emacron ; B 47 0 619 723 ; C -1 ; WX 600 ; N Ograve ; B 102 -16 616 789 ; C -1 ; WX 600 ; N Oacute ; B 102 -16 616 789 ; C -1 ; WX 600 ; N Odieresis ; B 102 -16 616 762 ; C -1 ; WX 600 ; N Ntilde ; B 46 0 678 755 ; C -1 ; WX 600 ; N Ncaron ; B 46 0 678 789 ; C -1 ; WX 600 ; N Nacute ; B 46 0 678 789 ; C -1 ; WX 600 ; N Lcaron ; B 67 0 638 576 ; C -1 ; WX 600 ; N Lacute ; B 67 0 585 789 ; C -1 ; WX 600 ; N Idotaccent ; B 117 0 603 762 ; C -1 ; WX 600 ; N racute ; B 88 0 619 639 ; C -1 ; WX 600 ; N Icircumflex ; B 117 0 603 789 ; C -1 ; WX 600 ; N ohungarumlaut ; B 111 -16 616 633 ; C -1 ; WX 600 ; N otilde ; B 111 -16 586 605 ; C -1 ; WX 600 ; N Euro ; B 60 -16 634 576 ; C -1 ; WX 600 ; N ocircumflex ; B 111 -16 577 639 ; C -1 ; WX 600 ; N onesuperior ; B 249 259 469 612 ; C -1 ; WX 600 ; N twosuperior ; B 230 259 514 612 ; C -1 ; WX 600 ; N threesuperior ; B 245 251 516 612 ; C -1 ; WX 600 ; N Igrave ; B 117 0 603 789 ; C -1 ; WX 600 ; N Iacute ; B 117 0 603 789 ; C -1 ; WX 600 ; N Imacron ; B 117 0 603 723 ; C -1 ; WX 600 ; N Iogonek ; B 117 -155 603 563 ; C -1 ; WX 600 ; N Idieresis ; B 117 0 611 762 ; C -1 ; WX 600 ; N Gbreve ; B 108 -16 656 777 ; C -1 ; WX 600 ; N Umacron ; B 136 -16 676 723 ; C -1 ; WX 600 ; N Kcommaaccent ; B 47 -237 662 563 ; C -1 ; WX 600 ; N ograve ; B 111 -16 577 639 ; C -1 ; WX 600 ; N Scommaaccent ; B 96 -237 602 577 ; C -1 ; WX 600 ; N Eogonek ; B 47 -155 619 563 ; C -1 ; WX 600 ; N oacute ; B 111 -16 577 639 ; C -1 ; WX 600 ; N Edotaccent ; B 47 0 619 762 ; C -1 ; WX 600 ; N iogonek ; B 96 -155 513 624 ; C -1 ; WX 600 ; N gcommaaccent ; B 105 -186 647 668 ; C -1 ; WX 600 ; N odieresis ; B 111 -16 581 611 ; C -1 ; WX 600 ; N ntilde ; B 57 0 570 605 ; C -1 ; WX 600 ; N ncaron ; B 57 0 577 639 ; C -1 ; WX 600 ; N Ecaron ; B 47 0 619 789 ; C -1 ; WX 600 ; N Ecircumflex ; B 47 0 619 789 ; C -1 ; WX 600 ; N scedilla ; B 108 -173 558 431 ; C -1 ; WX 600 ; N rcaron ; B 88 0 619 639 ; C -1 ; WX 600 ; N Egrave ; B 47 0 619 789 ; C -1 ; WX 600 ; N Eacute ; B 47 0 619 789 ; C -1 ; WX 600 ; N Gcommaaccent ; B 108 -237 636 576 ; C -1 ; WX 600 ; N Rcommaaccent ; B 47 -237 594 563 ; C -1 ; WX 600 ; N Edieresis ; B 47 0 619 762 ; C -1 ; WX 600 ; N nacute ; B 57 0 577 639 ; C -1 ; WX 600 ; N uogonek ; B 127 -155 569 417 ; C -1 ; WX 600 ; N umacron ; B 127 -16 569 576 ; C -1 ; WX 600 ; N Dcaron ; B 47 0 592 789 ; C -1 ; WX 600 ; N lcaron ; B 96 0 593 618 ; C -1 ; WX 600 ; N Ccaron ; B 110 -16 635 789 ; C -1 ; WX 600 ; N Cacute ; B 110 -16 635 789 ; C -1 ; WX 600 ; N Ccedilla ; B 110 -173 635 576 ; C -1 ; WX 600 ; N degree ; B 257 346 553 636 ; C -1 ; WX 600 ; N Aogonek ; B 13 -155 596 563 ; C -1 ; WX 600 ; N minus ; B 131 261 588 302 ; C -1 ; WX 600 ; N multiply ; B 143 100 577 464 ; C -1 ; WX 600 ; N divide ; B 131 25 588 540 ; C -1 ; WX 600 ; N Aring ; B 13 0 596 811 ; C -1 ; WX 600 ; N trademark ; B 90 243 710 563 ; C -1 ; WX 600 ; N rcommaaccent ; B 88 -237 619 427 ; C -1 ; WX 600 ; N lacute ; B 96 0 572 789 ; C -1 ; WX 600 ; N omacron ; B 111 -16 577 576 ; C -1 ; WX 600 ; N Atilde ; B 13 0 596 755 ; C -1 ; WX 600 ; N icircumflex ; B 95 0 536 639 ; C -1 ; WX 600 ; N igrave ; B 96 0 513 639 ; C -1 ; WX 600 ; N ncommaaccent ; B 57 -237 546 431 ; C -1 ; WX 600 ; N lcommaaccent ; B 96 -237 513 604 ; C -1 ; WX 600 ; N plusminus ; B 76 0 597 529 ; C -1 ; WX 600 ; N onehalf ; B 82 0 627 612 ; C -1 ; WX 600 ; N onequarter ; B 74 0 619 612 ; C -1 ; WX 600 ; N threequarters ; B 70 0 619 612 ; C -1 ; WX 600 ; N iacute ; B 96 0 535 639 ; C -1 ; WX 600 ; N Abreve ; B 13 0 596 777 ; C -1 ; WX 600 ; N kcommaaccent ; B 67 -237 578 604 ; C -1 ; WX 600 ; N Omacron ; B 102 -16 616 723 ; C -1 ; WX 600 ; N imacron ; B 96 0 564 576 ; C -1 ; WX 600 ; N emacron ; B 104 -16 570 576 ; C -1 ; WX 600 ; N amacron ; B 93 -16 564 576 ; C -1 ; WX 600 ; N tcommaaccent ; B 127 -237 518 563 ; C -1 ; WX 600 ; N ydieresis ; B 22 -186 634 611 ; C -1 ; WX 600 ; N zdotaccent ; B 115 0 563 611 ; C -1 ; WX 600 ; N zcaron ; B 115 0 576 639 ; C -1 ; WX 600 ; N zacute ; B 115 0 577 639 ; C -1 ; WX 600 ; N yacute ; B 22 -186 634 639 ; C -1 ; WX 600 ; N uhungarumlaut ; B 127 -16 576 633 ; C -1 ; WX 600 ; N eth ; B 111 -17 582 620 ; C -1 ; WX 600 ; N uring ; B 127 -16 569 661 ; C -1 ; WX 600 ; N Ocircumflex ; B 102 -16 616 789 ; C -1 ; WX 600 ; N commaaccent ; B 159 -237 322 -60 ; C -1 ; WX 600 ; N copyright ; B 57 -15 663 578 ; C -1 ; WX 600 ; N registered ; B 57 -15 663 578 ; C -1 ; WX 600 ; N Acircumflex ; B 13 0 596 789 ; C -1 ; WX 600 ; N idieresis ; B 96 0 568 611 ; C -1 ; WX 600 ; N lozenge ; B 149 -11 571 575 ; C -1 ; WX 600 ; N Delta ; B 43 0 557 563 ; C -1 ; WX 600 ; N notequal ; B 96 94 625 464 ; C -1 ; WX 600 ; N radical ; B 88 0 773 699 ; C -1 ; WX 600 ; N Agrave ; B 13 0 596 789 ; C -1 ; WX 600 ; N Aacute ; B 13 0 596 789 ; C -1 ; WX 600 ; N lessequal ; B 56 0 635 535 ; C -1 ; WX 600 ; N greaterequal ; B 71 0 600 535 ; C -1 ; WX 600 ; N logicalnot ; B 160 168 621 438 ; C -1 ; WX 600 ; N summation ; B 90 -127 616 563 ; C -1 ; WX 600 ; N partialdiff ; B 111 -16 580 581 ; C -1 ; WX 600 ; N Ncommaaccent ; B 46 -237 678 563 ; C -1 ; WX 600 ; N dcroat ; B 102 -16 690 604 ; C -1 ; WX 600 ; N brokenbar ; B 257 -124 444 604 ; C -1 ; WX 600 ; N Lcommaaccent ; B 67 -237 585 563 ; C -1 ; WX 600 ; N Adieresis ; B 13 0 596 762 ; C -1 ; WX 600 ; N mu ; B 86 -200 569 417 ; C -1 ; WX 600 ; N .notdef ; B 319 0 319 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -41 KPX A Ccedilla -39 KPX A G -36 KPX A O -35 KPX A Odieresis -35 KPX A Q -37 KPX A T -34 KPX A U -41 KPX A Uacute -41 KPX A Ucircumflex -41 KPX A Udieresis -41 KPX A Ugrave -41 KPX A V -78 KPX A W -20 KPX A Y -35 KPX A a 1 KPX A b 40 KPX A c -26 KPX A ccedilla -23 KPX A comma -47 KPX A d -17 KPX A e -21 KPX A g -27 KPX A guillemotleft -57 KPX A guilsinglleft -57 KPX A hyphen -35 KPX A o -22 KPX A period -70 KPX A q -27 KPX A quotedblright -82 KPX A quoteright -102 KPX A t -33 KPX A u -23 KPX A v -59 KPX A w -27 KPX A y -63 KPX Aacute C -41 KPX Aacute G -36 KPX Aacute O -35 KPX Aacute Q -37 KPX Aacute T -34 KPX Aacute U -41 KPX Aacute V -78 KPX Aacute W -20 KPX Aacute Y -35 KPX Aacute a 1 KPX Aacute b 40 KPX Aacute c -26 KPX Aacute comma -47 KPX Aacute d -17 KPX Aacute e -21 KPX Aacute g -27 KPX Aacute guillemotleft -57 KPX Aacute guilsinglleft -57 KPX Aacute hyphen -35 KPX Aacute o -22 KPX Aacute period -70 KPX Aacute q -27 KPX Aacute quoteright -102 KPX Aacute t -33 KPX Aacute u -23 KPX Aacute v -59 KPX Aacute w -27 KPX Aacute y -63 KPX Acircumflex C -41 KPX Acircumflex G -36 KPX Acircumflex O -35 KPX Acircumflex Q -37 KPX Acircumflex T -34 KPX Acircumflex U -41 KPX Acircumflex V -78 KPX Acircumflex W -20 KPX Acircumflex Y -35 KPX Acircumflex comma -47 KPX Acircumflex period -70 KPX Adieresis C -41 KPX Adieresis G -36 KPX Adieresis O -35 KPX Adieresis Q -37 KPX Adieresis T -34 KPX Adieresis U -41 KPX Adieresis V -78 KPX Adieresis W -20 KPX Adieresis Y -35 KPX Adieresis a 1 KPX Adieresis b 40 KPX Adieresis c -26 KPX Adieresis comma -47 KPX Adieresis d -17 KPX Adieresis g -27 KPX Adieresis guillemotleft -57 KPX Adieresis guilsinglleft -57 KPX Adieresis hyphen -35 KPX Adieresis o -22 KPX Adieresis period -70 KPX Adieresis q -27 KPX Adieresis quotedblright -82 KPX Adieresis quoteright -102 KPX Adieresis t -33 KPX Adieresis u -23 KPX Adieresis v -59 KPX Adieresis w -27 KPX Adieresis y -63 KPX Agrave C -41 KPX Agrave G -36 KPX Agrave O -35 KPX Agrave Q -37 KPX Agrave T -34 KPX Agrave U -41 KPX Agrave V -78 KPX Agrave W -20 KPX Agrave Y -35 KPX Agrave comma -47 KPX Agrave period -70 KPX Aring C -41 KPX Aring G -36 KPX Aring O -35 KPX Aring Q -37 KPX Aring T -34 KPX Aring U -41 KPX Aring V -78 KPX Aring W -20 KPX Aring Y -35 KPX Aring a 1 KPX Aring b 40 KPX Aring c -26 KPX Aring comma -47 KPX Aring d -17 KPX Aring e -21 KPX Aring g -27 KPX Aring guillemotleft -57 KPX Aring guilsinglleft -57 KPX Aring hyphen -35 KPX Aring o -22 KPX Aring period -70 KPX Aring q -27 KPX Aring quotedblright -82 KPX Aring quoteright -102 KPX Aring t -33 KPX Aring u -23 KPX Aring v -59 KPX Aring w -27 KPX Aring y -63 KPX Atilde C -41 KPX Atilde G -36 KPX Atilde O -35 KPX Atilde Q -37 KPX Atilde T -34 KPX Atilde U -41 KPX Atilde V -78 KPX Atilde W -20 KPX Atilde Y -35 KPX Atilde comma -47 KPX Atilde period -70 KPX B A -15 KPX B AE -16 KPX B Aacute -15 KPX B Acircumflex -15 KPX B Adieresis -15 KPX B Aring -15 KPX B Atilde -15 KPX B O -15 KPX B OE 5 KPX B Oacute -15 KPX B Ocircumflex -15 KPX B Odieresis -15 KPX B Ograve -15 KPX B Oslash -14 KPX B V -37 KPX B W -15 KPX B Y -58 KPX C A -14 KPX C AE -14 KPX C Aacute -14 KPX C Adieresis -14 KPX C Aring -14 KPX C H -34 KPX C K -19 KPX C O -24 KPX C Oacute -24 KPX C Odieresis -24 KPX Ccedilla A -8 KPX D A -47 KPX D Aacute -47 KPX D Acircumflex -47 KPX D Adieresis -47 KPX D Agrave -47 KPX D Aring -47 KPX D Atilde -47 KPX D J -38 KPX D T -47 KPX D V -50 KPX D W -20 KPX D X -60 KPX D Y -71 KPX F A -45 KPX F Aacute -45 KPX F Acircumflex -45 KPX F Adieresis -45 KPX F Agrave -45 KPX F Aring -45 KPX F Atilde -45 KPX F J -100 KPX F O -34 KPX F Odieresis -34 KPX F a -52 KPX F aacute -52 KPX F adieresis -49 KPX F ae -25 KPX F aring -52 KPX F comma -172 KPX F e -61 KPX F eacute -61 KPX F hyphen -72 KPX F i -51 KPX F j -59 KPX F o -68 KPX F oacute -68 KPX F odieresis -54 KPX F oe -26 KPX F oslash -68 KPX F period -196 KPX F r -37 KPX F u -6 KPX G A 0 KPX G AE 0 KPX G Aacute 0 KPX G Acircumflex 0 KPX G Adieresis 0 KPX G Agrave 0 KPX G Aring 0 KPX G Atilde 0 KPX G T -31 KPX G V -1 KPX G W -4 KPX G Y -22 KPX J A -14 KPX J AE -23 KPX J Adieresis -14 KPX J Aring -14 KPX K C -50 KPX K G -46 KPX K O -45 KPX K OE -28 KPX K Oacute -45 KPX K Odieresis -45 KPX K S -16 KPX K T -18 KPX K a -8 KPX K adieresis -8 KPX K ae 19 KPX K aring -8 KPX K e -30 KPX K hyphen -66 KPX K o -32 KPX K oacute -32 KPX K odieresis -32 KPX K u -33 KPX K udieresis -33 KPX K y -72 KPX L A 9 KPX L AE 9 KPX L Aacute 9 KPX L Adieresis 9 KPX L Aring 9 KPX L C -19 KPX L Ccedilla -19 KPX L G -18 KPX L O -15 KPX L Oacute -15 KPX L Ocircumflex -15 KPX L Odieresis -15 KPX L Ograve -15 KPX L Otilde -15 KPX L S -31 KPX L T -59 KPX L U -36 KPX L Udieresis -36 KPX L V -71 KPX L W -31 KPX L Y -60 KPX L hyphen -1 KPX L quotedblright -76 KPX L quoteright -84 KPX L u -20 KPX L udieresis -20 KPX L y -50 KPX N A -10 KPX N AE -10 KPX N Aacute -10 KPX N Adieresis -10 KPX N Aring -10 KPX N C -18 KPX N Ccedilla -18 KPX N G -16 KPX N O -14 KPX N Oacute -14 KPX N Odieresis -14 KPX N a -23 KPX N aacute -23 KPX N adieresis -23 KPX N ae 7 KPX N aring -23 KPX N comma -64 KPX N e -10 KPX N eacute -10 KPX N o -14 KPX N oacute -14 KPX N odieresis -14 KPX N oslash -11 KPX N period -87 KPX N u -14 KPX N udieresis -14 KPX O A -33 KPX O AE -30 KPX O Aacute -33 KPX O Adieresis -33 KPX O Aring -33 KPX O T -37 KPX O V -40 KPX O W -8 KPX O X -47 KPX O Y -61 KPX Oacute A -33 KPX Oacute T -37 KPX Oacute V -40 KPX Oacute W -8 KPX Oacute Y -61 KPX Ocircumflex T -37 KPX Ocircumflex V -40 KPX Ocircumflex Y -61 KPX Odieresis A -33 KPX Odieresis T -37 KPX Odieresis V -40 KPX Odieresis W -8 KPX Odieresis X -47 KPX Odieresis Y -61 KPX Ograve T -37 KPX Ograve V -40 KPX Ograve Y -61 KPX Oslash A -31 KPX Otilde T -36 KPX Otilde V -39 KPX Otilde Y -60 KPX P A -87 KPX P AE -81 KPX P Aacute -87 KPX P Adieresis -87 KPX P Aring -87 KPX P J -90 KPX P a -57 KPX P aacute -57 KPX P adieresis -57 KPX P ae -29 KPX P aring -57 KPX P comma -161 KPX P e -47 KPX P eacute -47 KPX P hyphen -52 KPX P o -53 KPX P oacute -53 KPX P odieresis -53 KPX P oe -18 KPX P oslash -53 KPX P period -185 KPX R C -32 KPX R Ccedilla -33 KPX R G -31 KPX R O -29 KPX R OE -8 KPX R Oacute -29 KPX R Odieresis -29 KPX R T -35 KPX R U -36 KPX R Udieresis -36 KPX R V -42 KPX R W -21 KPX R Y -36 KPX R a 0 KPX R aacute 0 KPX R adieresis 0 KPX R ae 27 KPX R aring 0 KPX R e -22 KPX R eacute -22 KPX R hyphen -53 KPX R o -23 KPX R oacute -23 KPX R odieresis -23 KPX R oe 15 KPX R u -16 KPX R uacute -16 KPX R udieresis -16 KPX R y -20 KPX S A -28 KPX S AE -28 KPX S Aacute -28 KPX S Adieresis -28 KPX S Aring -28 KPX S T -48 KPX S V -18 KPX S W -23 KPX S Y -39 KPX S t -25 KPX T A -34 KPX T AE -35 KPX T Aacute -34 KPX T Acircumflex -34 KPX T Adieresis -34 KPX T Agrave -34 KPX T Aring -34 KPX T Atilde -34 KPX T C -36 KPX T G -35 KPX T J -88 KPX T O -34 KPX T OE -12 KPX T Oacute -34 KPX T Ocircumflex -34 KPX T Odieresis -34 KPX T Ograve -34 KPX T Oslash -34 KPX T Otilde -34 KPX T S -50 KPX T V 4 KPX T W -1 KPX T Y -17 KPX T a -68 KPX T ae -38 KPX T c -83 KPX T colon -145 KPX T comma -116 KPX T e -83 KPX T g -76 KPX T guillemotleft -129 KPX T guilsinglleft -129 KPX T hyphen -99 KPX T i -51 KPX T j -59 KPX T o -87 KPX T oslash -60 KPX T period -145 KPX T r -37 KPX T s -70 KPX T semicolon -119 KPX T u -92 KPX T v -98 KPX T w -96 KPX T y -108 KPX U A -26 KPX U AE -35 KPX U Aacute -26 KPX U Acircumflex -26 KPX U Adieresis -26 KPX U Aring -26 KPX U Atilde -26 KPX U comma -80 KPX U m 3 KPX U n -22 KPX U p -5 KPX U period -105 KPX U r -47 KPX Uacute A -26 KPX Uacute comma -80 KPX Uacute m 3 KPX Uacute n -22 KPX Uacute p -5 KPX Uacute period -105 KPX Uacute r -47 KPX Ucircumflex A -26 KPX Udieresis A -26 KPX Udieresis b 17 KPX Udieresis comma -80 KPX Udieresis m 3 KPX Udieresis n -22 KPX Udieresis p -5 KPX Udieresis period -105 KPX Udieresis r -47 KPX Ugrave A -26 KPX V A -10 KPX V AE -19 KPX V Aacute -10 KPX V Acircumflex -10 KPX V Adieresis -10 KPX V Agrave -10 KPX V Aring -10 KPX V Atilde -10 KPX V C -39 KPX V G -38 KPX V O -37 KPX V Oacute -37 KPX V Ocircumflex -37 KPX V Odieresis -37 KPX V Ograve -37 KPX V Oslash -38 KPX V Otilde -38 KPX V S -41 KPX V T 4 KPX V a -65 KPX V ae -37 KPX V colon -130 KPX V comma -134 KPX V e -56 KPX V g -57 KPX V guillemotleft -83 KPX V guilsinglleft -83 KPX V hyphen -49 KPX V i -65 KPX V o -60 KPX V oslash -57 KPX V period -158 KPX V r -51 KPX V semicolon -121 KPX V u -20 KPX V y -24 KPX W A -16 KPX W AE -21 KPX W Aacute -16 KPX W Acircumflex -16 KPX W Adieresis -16 KPX W Agrave -16 KPX W Aring -16 KPX W Atilde -16 KPX W C -14 KPX W G -12 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Oslash -7 KPX W Otilde -10 KPX W S -29 KPX W T -2 KPX W a -24 KPX W ae 6 KPX W colon -93 KPX W comma -71 KPX W e -10 KPX W g -11 KPX W guillemotleft -38 KPX W guilsinglleft -38 KPX W hyphen -7 KPX W i -48 KPX W o -14 KPX W oslash -11 KPX W period -95 KPX W r -34 KPX W semicolon -74 KPX W u -2 KPX W y -6 KPX X C -52 KPX X O -48 KPX X Odieresis -48 KPX X Q -48 KPX X a -14 KPX X e -36 KPX X hyphen -81 KPX X o -38 KPX X u -39 KPX X y -57 KPX Y A -31 KPX Y AE -34 KPX Y Aacute -31 KPX Y Acircumflex -31 KPX Y Adieresis -31 KPX Y Agrave -31 KPX Y Aring -31 KPX Y Atilde -31 KPX Y C -60 KPX Y G -60 KPX Y O -59 KPX Y Oacute -59 KPX Y Ocircumflex -59 KPX Y Odieresis -59 KPX Y Ograve -59 KPX Y Oslash -59 KPX Y Otilde -59 KPX Y S -62 KPX Y T -17 KPX Y a -67 KPX Y ae -40 KPX Y colon -145 KPX Y comma -116 KPX Y e -81 KPX Y g -84 KPX Y guillemotleft -119 KPX Y guilsinglleft -119 KPX Y hyphen -96 KPX Y i -63 KPX Y o -86 KPX Y oslash -59 KPX Y p -39 KPX Y period -144 KPX Y semicolon -119 KPX Y u -50 KPX Y v -44 KPX Z v -54 KPX Z y -64 KPX a j -93 KPX a quoteright -60 KPX a v -33 KPX a w -23 KPX a y -44 KPX aacute v -33 KPX aacute w -23 KPX aacute y -44 KPX adieresis v -33 KPX adieresis w -23 KPX adieresis y -44 KPX ae v 16 KPX ae w 16 KPX ae y 5 KPX agrave v -33 KPX agrave w -23 KPX agrave y -44 KPX aring v -33 KPX aring w -23 KPX aring y -44 KPX b v -17 KPX b w 0 KPX b y -28 KPX c h -6 KPX c k -12 KPX comma one -148 KPX comma quotedblright -123 KPX comma quoteright -142 KPX e quoteright -43 KPX e t -34 KPX e v -28 KPX e w -20 KPX e x -5 KPX e y -39 KPX eacute v -28 KPX eacute w -20 KPX eacute y -39 KPX ecircumflex v -28 KPX ecircumflex w -20 KPX ecircumflex y -39 KPX eight four -65 KPX eight one -85 KPX eight seven -77 KPX f a -44 KPX f aacute -44 KPX f adieresis -26 KPX f ae -17 KPX f aring -44 KPX f e -58 KPX f eacute -58 KPX f f -46 KPX f i -40 KPX f j -63 KPX f l -31 KPX f o -65 KPX f oacute -65 KPX f odieresis -31 KPX f oe -23 KPX f oslash -36 KPX f quoteright -62 KPX f s -46 KPX f t -10 KPX five four -56 KPX five one -90 KPX five seven -78 KPX four four -68 KPX four one -73 KPX four seven -99 KPX g a -14 KPX g adieresis -14 KPX g ae 13 KPX g aring -14 KPX g e -7 KPX g eacute -7 KPX g l -37 KPX g oacute -12 KPX g odieresis -12 KPX g r -4 KPX guillemotright A -50 KPX guillemotright AE -46 KPX guillemotright Aacute -50 KPX guillemotright Adieresis -50 KPX guillemotright Aring -50 KPX guillemotright T -128 KPX guillemotright V -80 KPX guillemotright W -37 KPX guillemotright Y -119 KPX guilsinglright A -50 KPX guilsinglright AE -46 KPX guilsinglright Aacute -50 KPX guilsinglright Adieresis -50 KPX guilsinglright Aring -50 KPX guilsinglright T -128 KPX guilsinglright V -80 KPX guilsinglright W -37 KPX guilsinglright Y -119 KPX h quoteright -52 KPX h y -37 KPX hyphen A -29 KPX hyphen AE -23 KPX hyphen Aacute -29 KPX hyphen Adieresis -29 KPX hyphen Aring -29 KPX hyphen T -98 KPX hyphen V -44 KPX hyphen W -4 KPX hyphen Y -95 KPX i T -64 KPX i j -146 KPX k a -12 KPX k aacute -12 KPX k adieresis -12 KPX k ae 15 KPX k aring -12 KPX k comma -60 KPX k e -34 KPX k eacute -34 KPX k g -43 KPX k hyphen -104 KPX k o -35 KPX k oacute -35 KPX k odieresis -35 KPX k period -89 KPX k s -14 KPX k u -7 KPX k udieresis -7 KPX l v -86 KPX l y -96 KPX m p 19 KPX m v 7 KPX m w 13 KPX m y -3 KPX n T -48 KPX n p -8 KPX n quoteright -50 KPX n v -25 KPX n w -14 KPX n y -36 KPX nine four -58 KPX nine one -84 KPX nine seven -75 KPX o T -89 KPX o quoteright -41 KPX o t -24 KPX o v -25 KPX o w -7 KPX o x -28 KPX o y -36 KPX oacute v -25 KPX oacute w -7 KPX oacute y -36 KPX ocircumflex t -24 KPX odieresis t -24 KPX odieresis v -25 KPX odieresis w -7 KPX odieresis x -28 KPX odieresis y -36 KPX ograve v -25 KPX ograve w -7 KPX ograve y -36 KPX one comma -99 KPX one eight -94 KPX one five -76 KPX one four -127 KPX one nine -81 KPX one one -69 KPX one period -128 KPX one seven -147 KPX one six -119 KPX one three -69 KPX one two -54 KPX one zero -102 KPX p t -20 KPX p y -25 KPX period one -125 KPX period quotedblright -114 KPX period quoteright -133 KPX q c -4 KPX q u 37 KPX quotedblbase A -6 KPX quotedblbase AE -6 KPX quotedblbase T -82 KPX quotedblbase V -85 KPX quotedblbase W -24 KPX quotedblbase Y -83 KPX quotedblleft A -66 KPX quotedblleft AE -57 KPX quotedblleft Aacute -66 KPX quotedblleft Adieresis -66 KPX quotedblleft Aring -66 KPX quotedblleft T -46 KPX quotedblleft V -18 KPX quotedblleft W -8 KPX quotedblleft Y -46 KPX quotedblright A -67 KPX quotedblright AE -76 KPX quotedblright Aacute -66 KPX quotedblright Adieresis -66 KPX quotedblright Aring -66 KPX quotedblright T -53 KPX quotedblright V -22 KPX quotedblright W -26 KPX quotedblright Y -43 KPX quoteleft A -87 KPX quoteleft AE -78 KPX quoteleft Aacute -87 KPX quoteleft Adieresis -87 KPX quoteleft Aring -87 KPX quoteleft T -67 KPX quoteleft V -39 KPX quoteleft W -29 KPX quoteleft Y -67 KPX quoteright A -145 KPX quoteright AE -154 KPX quoteright Aacute -145 KPX quoteright Adieresis -145 KPX quoteright Aring -145 KPX quoteright comma -201 KPX quoteright d -129 KPX quoteright o -135 KPX quoteright period -224 KPX quoteright r -150 KPX quoteright s -144 KPX quoteright t -118 KPX quoteright v -112 KPX quoteright w -108 KPX quoteright y -122 KPX r a -26 KPX r aacute -26 KPX r acircumflex -26 KPX r adieresis -26 KPX r ae 1 KPX r agrave -26 KPX r aring -26 KPX r c -26 KPX r ccedilla -34 KPX r colon -86 KPX r comma -104 KPX r d -18 KPX r e -17 KPX r eacute -17 KPX r ecircumflex -17 KPX r egrave -17 KPX r f -24 KPX r g -15 KPX r h -24 KPX r hyphen -125 KPX r i -34 KPX r j -42 KPX r k -34 KPX r l -51 KPX r m 27 KPX r n 0 KPX r o -24 KPX r oacute -24 KPX r ocircumflex -24 KPX r odieresis -24 KPX r oe 13 KPX r ograve -24 KPX r oslash -24 KPX r p 21 KPX r period -133 KPX r q -16 KPX r quoteright -44 KPX r r -20 KPX r s -29 KPX r semicolon -75 KPX r t 11 KPX r u 11 KPX r v 17 KPX r w 17 KPX r x -4 KPX r y 6 KPX r z -23 KPX s quoteright -51 KPX s t -17 KPX seven colon -154 KPX seven comma -146 KPX seven eight -86 KPX seven five -91 KPX seven four -116 KPX seven one -74 KPX seven period -169 KPX seven seven -69 KPX seven six -104 KPX seven three -79 KPX seven two -76 KPX six four -52 KPX six one -68 KPX six seven -55 KPX t S -40 KPX t a -25 KPX t aacute -25 KPX t adieresis -25 KPX t ae 2 KPX t aring -25 KPX t colon -107 KPX t e -43 KPX t eacute -43 KPX t h -8 KPX t o -45 KPX t oacute -45 KPX t odieresis -45 KPX t quoteright -100 KPX t semicolon -86 KPX three four -58 KPX three one -82 KPX three seven -75 KPX two four -97 KPX two one -73 KPX two seven -79 KPX u quoteright -43 KPX v a -9 KPX v aacute -9 KPX v acircumflex -9 KPX v adieresis -9 KPX v ae 17 KPX v agrave -9 KPX v aring -9 KPX v atilde -9 KPX v c -22 KPX v colon -75 KPX v comma -118 KPX v e -17 KPX v eacute -17 KPX v ecircumflex -17 KPX v egrave -17 KPX v g -14 KPX v hyphen -30 KPX v l -87 KPX v o -23 KPX v oacute -23 KPX v odieresis -23 KPX v ograve -23 KPX v oslash -23 KPX v period -143 KPX v s -22 KPX v semicolon -66 KPX w a -9 KPX w aacute -9 KPX w acircumflex -9 KPX w adieresis -9 KPX w ae 17 KPX w agrave -9 KPX w aring -9 KPX w atilde -9 KPX w c -12 KPX w colon -75 KPX w comma -75 KPX w e -4 KPX w eacute -4 KPX w ecircumflex -4 KPX w egrave -4 KPX w g -6 KPX w hyphen -4 KPX w l -53 KPX w o -9 KPX w oacute -9 KPX w odieresis -9 KPX w ograve -9 KPX w oslash -6 KPX w period -99 KPX w s -22 KPX w semicolon -66 KPX x a -8 KPX x c -35 KPX x e -30 KPX x eacute -30 KPX x o -31 KPX x q -33 KPX y a -20 KPX y aacute -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y ae 6 KPX y agrave -20 KPX y aring -20 KPX y atilde -20 KPX y c -33 KPX y colon -86 KPX y comma -122 KPX y e -28 KPX y eacute -28 KPX y ecircumflex -28 KPX y egrave -28 KPX y g -25 KPX y hyphen -29 KPX y l -98 KPX y o -34 KPX y oacute -34 KPX y odieresis -34 KPX y ograve -34 KPX y oslash -34 KPX y period -148 KPX y s -33 KPX y semicolon -77 KPX zero four -64 KPX zero one -91 KPX zero seven -82 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n021024l.pfb0000644000076500001440000012716007056046553016421 0ustar fnevgenyusers€y%!PS-AdobeFont-1.0: NimbusRomNo9L-MediItal 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman No9 L Medium Italic) readonly def /FamilyName (Nimbus Roman No9 L) readonly def /Weight (Bold) readonly def /ItalicAngle -15.3 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusRomNo9L-MediItal def /PaintType 0 def /WMode 0 def /FontBBox {-200 -324 996 964} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020939 def currentdict end currentfile eexec €Ï¥é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>m»Pˆºàªh«¡ÉŠžP£)cÖJõöÅ&/¯©ößFF¹ZÎä¹ >o^ÙAëŠ9¾v„Xô f9&7G¼~2‘z Ÿ <ªÉnþ 1þ×Ò¡Ë¡ŽXZÿÜ(¯¿ àa“Õß$ª: ó;:3DéÝØ¼Ô¯‘ÒîïIÀ/ÐÜCj¯ÛÞ3¹nòOzªçÙ-ŠG9k°á0EýS`ÛÙ¼•"m* &%¾{´È±c2n4¢zyh§¾>8u)E"+­û-ÁËîvž¨Ò/èÌO¤‚5:äSçšaÒÞ–¢æóis&FÓ0кxHžŽ¢øÂÉâÒý¦Ø D’ æõ'iøÅó@cÌwÝŠS˜â€zÚ¶5Ak8þ¹P{Ž&}5@ñÎé´•ûûÙGº¯“ÝÒT?–T[ŸN;óÅ}xc‹Ä=÷WמÎl•Brègû Ü…+LÀ6ã³à™y(‘£Ö…ßKGg(â¤WÓÇ6)Ú™àÕyêc’$0`Æ”¸d1¹è}`}Çx¾%á%µGk–°Û0Þ·N=Ò4y£XÁ¹0Ûšj9Ûeåè5teÞ <™^{O–¿™º™¢ ?^ч~ùuF—¾‚|J#, &"èU6™Çúoö=ò©B³ýÍQGœê@¿%÷1-I€Gn𯲠þøô‡aò”5ÇB[v„ÔPÕ¥Œ_bÌ)DWè€T›~¢•BïQMúómmR &ia™a…¼ò7`ÉÃý¥Orp· iD‚¼ Uv‹J.÷É/„˜ k£mݪÀ!0’¹ûñÙ@>Ì,ò„Ý$–$kQK*Û™ò ÍßÖPªýIØr2ÀºÎ›¥…J4Äg [{ØóaèG¡Ï‹ùÏùfÒ€°žžjý÷²ì?·dïABå˹!oO: žIÓ× Øó ?«ìL²?mÖš³îøçíÃvαWv[¯2N !¡ ¯ÏQc³§jî¼ÕIjw¢&šâ ùç2ŸæµAõÄ;ì(ocœ—œ%à 2!Ç…7gºâMAÙAf­gOßaî‹õ#Õ‘©˜ïOH”ö¿í ªÒ‹Î?ƒaRIåRDŸ)Rè~ØU©»”rl:AI©‡ù¼˜£Pj¬*X/ é¨ÿÆnæYñž¿pW?I[4Ðhœ¼íhH.R8Û‰)òã‰J°8ÎÓ«âb~þ,›N (õô¨}-$%¿z’ÉÚDMð6^iòÞó?”i`\CAÿÞa„ò§G˾MZŒ3w´óá±ÒX‹¾´é1œø¼§U‹Ã•ýœÍ>ÇS&Ž-=ŒDh ^íTIÆ1ŸÝ +ç ï]³„ƒo¶ÆúEùÁ…ãs³&²[¦–1IŸ°[³pf°´pd.?W_LÑÅÆCÍDÊȆ`‡EëÁ9•ìMTBot²Ð[æu±Ò/hpf^ÿ2jca1=ÄFûã  Â-J®³±ÿ“±´Í  PÑ”y¸+(x9µºáf"´7Ú/Iw•£¹!*S¿Ei«.­ñÔ’ÛEUÑMö~CTãñ×-n† ”Ï Pq¤8,=ÎL¥{¡"ÉŠÓ3 ó—ŽS£xôݪ´œ= êÈGFxX‰ŠÕp&"LE ΟÑï²ÏJ°¼Ä<¦‡¸Ÿ1¿i€c­‡¥ë[ C‘ЇLÔ‚£Å}/HÆW¸{F-y&GÉÛŽHÈæ©/äãͼ™ J¦­›9os¤HÿK*ðLeÌnŸã Egÿ@‹;& ŠåÆföàÄâ«È¹“z¬ûÔpQô”‰=†pB‡F¨r4‰3Ö†$O3àªhY 2˜dÏÔœtüQEö¯äÑÔîÒ˜™Ý=ƒîDèS+,Ôéf»o·LëÏýZaœ³SnÎ_ßu AP®Îc˜öê›$QÛD¼cÅå äKÀ©?æÐº$õÛš®Tà´?à XI ;Q"IMxXá3¦õ"ññ 毗º™’P|qÑÖrë;¹PhKN‡Ná+?>¨¿üص“4›O´» •TF´´(¦}Q,çÔ%Éß)tùþELHÜ«5¸¹žHzwÞªsÁ4 ¿yeM§»’î„Z’êδµº%„b²úêèí.'g"إݫécÞvnv\‚¦ V ‚L‹ÊÉÙ-¹X9<;Ü{ e“Y$®â\…Cí‚‘…Эaq E‘vh²ýŠŽ0áîúNç²w3™Àñen‡'ç÷ˆÉOj‰¸”—‹àá…ëéÁ ™¹‡4‡ºk.8$»q£øÁñ5²í›vÃÙ¼ÚÁ¸XNB8 ­|Œ»}üòm¨ý&Ù¿=A¸¸Ýè F.ñÅÏ_¯±ñ(Žã³Yí…y²PÜzÏÍF ¡Ww¿çœÚfnŸh¤>‰Ž aæ}pNÓñ&=¬ˆF³êmèq *¨¹@W:׿NÌžZ1+µ—v¸¸‡µþnbŒDÅ íˆÊ&W¨û(ŽU@uöIéYñATðCYß ×<¶xÚ1z£)h¾Rò2)£¡¡‘¢Ág›Ýçøì,|.t¯)Öú«˜Zn°Ò.ȇºÇ¢ƒ7"âw`/„LMÈ™“êÙϵGœî>ÊwêA‘½4Î÷rÄv§ŽÁ¨„èz•Ò]Ó'QgÎÑ〓yúÓ™S—–Ò3ÞFVäÌÁ^DÒèg£ùRÕ¾“œ ö¨¨ÁÌ|‡èt~Ì•¿sê¿@)IïËPÓulmBÆïeè_™¼ïü¸¸ÌùPL.ó]ÒÞÙüm—P¿nü;à/’ow¹‡ «b¯=¨˜1ðO°¦åÞd:§=º³_ÚrîTîyS·öÿ‹e,¸k3Ðbj)ñn1*»Õ—:Pãlc @•n£fk’BÍ뺤> !:‘†Ô PI¼Úp–Yr<þñþZ1LY'¿\¡Â³ì„ÍZןjÂã#–ö{““lß´ó_}d—wKPJš¡}©: žýi¼\Ø*tØÙi$1¢ÒÒ$@¤×Ú4Zï‘`òÝéà]™ÊhêFåŸk¤¼Lú>ù-# -öôWÄ-¥ùþ"›ìtû*;©âÄ”4@#w41!qù‡úz¿|ìƒkë¦YëGP/OÀî8Ò¨»F´3ôÙ>÷®evlÜÃâ4?A¤×ß½[™—…½+:¬ÆÔ!$äd0}›4”½ì æÞøh¹¾wbÞœÞÑ^Ÿ/Š: YoN“àpé«,<ö¹E/ÓdÏ(c±Kîöšn™ow©>Àa{Ïõ?Œöòg³WΆŸ€p?†ÙZÀÈÒUˆñh’$Þ5H èàÊ.R ë+<;æ‡c_ Ñ»ºÿAÎb#°U‘èvì—Ê$ÊÙ^¸‹¬p×ÄÓõ1Ðtgsmö+~Ö Á[PQJ*¯6g~;õsC ¹&8”Ôy¯ ¥\å!MϨt݈(@rC2Ó$yŒ…æÇFÄP³Ýjâë3?o7›: á 'ÿÅNª%HÆ!×úòuϱû×ÿ˜Á#ÊbG÷/¼”¼¯ŽQ¶¿´*nÚœoçöÑéB¿ŸqD~ôútòTNä\¬{‚ô¡¼&ÃZùÒÃÊ™\·6Ì2Gj4Ü*e— ¾9xY×éà'‡Ýãšù›gÆ`%~FÍæ(Ð[õöȺ´å¢â泡ã&žØƒ4!µÓç—I?eçnDuYž2ÛTJëY³8dÃNÚu¯õrF™_gÍYÅ–½ÞðѰAlf²"­¤¼ QYh;¸9¡^l}_X†0u¬ˆÙØ‘_¼¢í´µû)ÁoèÔ“Cj± /QL"&ÈðþQùyÝòúXïlã-"z•2 RNI¤ÖÆ“ë4õs/Š¢Ó±­•Æ:ìNš;©BŶ÷KOp©´ò; 0XtÔ®Ég½F}wRhUút—]Õç …¦Ÿ•”éõ–ÆSpðÚÄÇÚL…É©q­þ.¦âýrìëÀ~WµÖ˜51a²Ñ/ÏGó+UóÌ?"ZVŠvlP·÷ÂÊ}€BÁW2lºhðiм¶°\EžšÇjŽ¡$e‹ˆ¤;\ôª<ô(£<ùfðRñOªç1‚[k^‚š`q(˜Þ’L£ÖR·ÂëÑï”,là±æ| ܯZML^’Êx¦õUe€íx^øÖ¼K‹‡Cº¸éC‰º8öu”ÇîR/§+®[;®õàÎ×O`^®dJ™+‹é¯DÙ‰¼®Ì¸£C¾ð`¹iÔCŠ˜Þà©öBfkËv<òr1 Êœ}{¡A"úÏ+5xËgÆî2%5T4ó'¼1h/š]îzÿi ÁÐ$iÚlëÐy¶0»m5à¶åC„£×F ¿,=« ði© s]˸fóŠâ*1ƒ©*±­"9u½[aQ bø¶(ï~Ú¾êdÓž=‰%‰i&ü͈‡Š­àiÎÕi:xƒfz.H¬†ÍjÆO`ÿë;ë“·É ÿKŠÐ¡€ðXO¿ E¬Å”í•à±ÐO1˜6ù>Û™B¶Ñ›¼;¦¨ ˜V¯ËÛ¬zÃú=I±hÏÍ ð ÿÉl™•Vv1ÏËMγ F¸3tkãù*~büàÎÑsÉ0õå ïÊý}©gÞ1•z\N¿K„üöuºäfOR ~+qN:˾¦ "­–ïp(kyåÓcî{ÆéÜRWÌLL­Š! '-&ÂmLþ-§M|p9YØ»‚Ëo>àã(@é•ËÅ¡Qï’Zk¯íÙȳü:CÅŸ)µµ¾À‹…Åj'K E ‰Ij~Ó몙†fÈ(‚îô¶˜»ÝÎ_‚%³i ¿¡Îh]}= `mkû cÃH´E±;lŠ –w ”ò:€—lãÓï­i:Æ.üå;hVråµÝCšôÅ·ÜY×¥uÿ¯Toðêi5k£¬µQL\×hfö0™,@o Ñ)1™—uÿgU¨xKÆÅol–¹PÚƒÈÊ33b®°Ð@4]z8ûi™–9óó“ä3e¬Ã„F‹,®ñ² —OüaF1»B|\–ç­"4êZ›´R»ª6•®Ü dæG9çMå]õ»ØÖ°ýéîòSŸuÇÃ-W1up/Nª~ •³ŽªÞøóãÚ% ‹ƒ^t…—ÍR—œÓmv$‘+¹øMܳŠwYŒ}Ö$”Ÿ£„eÏõÕýë&¬ãÇbü"÷Ì'™ã›hªaoJU*«ÚUÎU¨@M¡ÍéÄü<©¹SÊ7f›>¶tYÁ™°ÎðÙy,Y}ýHÎöŸ,ÄÛ2oÁ QQo?›º[Öaƒ„ÞZÒÐr©@ªù&äCIÒ_F±R.Ú}sPSmƒ™¶ì˜Ê¯·™;§y]4ÏÅ(¦ã¡O‹Zt@\~Ãì=çÀº†edŠ¥êª§ŽbºFv† ßÇVµx^ŽN®À¨¬$%“F²ÓFehÆç1œGòEÑrDŠ}/"¬h`\½™˜$ öÏIæ¹–Û+ºï—Y“m4ìÏî/ðD;eˈ4™B'ý{Áý;7€Ö›Jß1k™/§<ûXÕ³‘¥Òß|R{a]w´ã˜ÊÈ»a‘@FüÎ"ä•yœáÎ2åÆÀCÄ|ëaœûäŠÑ„-K/¯é`Òø‰ФÉSWeY¿í/¸,<52½\¬á®Š)gI ŽÚsú0âñÜgÿäàDZŸåTÓQ ®ém=Ã-å÷z¾5²ÖuH;ÆŠ±Æy ©¦Ej%,Jh8j<jM?½¯Ñõo1´7Ÿ=‹AvЍ9l1ªGøM®~JÉÄP¨n ú¯°!A²½L©ÞYðƒ>‘ÐøÏ‰ôRÏÓ1$1wWÊ!“Ôê~“¢QÓ ¯xwù²t &ž„Oÿ…ò‡Å›¤~\x_ kS󞉫!n7VP“FŽº¯“’¼¾¹‚›4‹YÌ*² Gx"mplT«aG˜¼üÔî»ðrÀ ¢ú}:!&&A)@86;Àh–•žÛš­ØFá:ûõ+1±Î7õ tXÂãxÀòÒÙ£žY¿*e£TÀÜ$'ï5þ»³€±v` ”þÏ@P—%îè; ¡ßè|Ï_ ÉH¹;êÐLò ô‘ÎÅe?Wf<ìgš—(¥Ç®ÃÑ Â…` Ë{ã8ñ«øƒ"*…–µ²•ÏÛHÞ‹ÈÛ…“ŸÀÔÔe[»!ÊêDêˆ(û}Ê r“Ýa<æ›Ê(øKὂü 6Þ}`7êÜß}µOg „.Ÿ”‰ƒo‚9•(ïvõ+(¢‘HöÒþ'çRã¹lâˆÅ²Hma¾Ó\*•¶M ºYC.¡÷Ecúø1±Pénë«‚ÀûNðë¸hÚô벎, ‰‚ψ¥þoœT™Øe'•áæ„ÍœsvÿG*qùBÜѪ£-õs`/¶®¯½êþ¾Ø'¢ ‹Åß L²µJNÅìþ½_ü•û´jKµs€xee9É'òfÿà¬j3pìó:ÑÔö´WÉe2Ϭ®»”pñ°¯y:õ¦¾‘}¦ £±EŽ© hB¢}£Õ»?e8'„ 5ËÁzm¯˜ãÔüC¨ûTZÀµM¦ 2I›oqÆ/ÉÚŸ8oÏέæiиѯàÝV·rMÊ{± \cØ{=ÄͦxÖ$äÑ]Æž`PËÚßê»=–B²‡ŠS“vÅFö)`Š8¹€fÔ‚ù:ùðŸÙ!Ä]¾FwαËÒÈ]4j:,‡hÌ:ù ÁÖ½k&}¿°&u ûŠÑ–«ÓŸò•ºnG°&’† ‹ºqáÍlò[ÞžDåž :¶“NšNa.ÿÀsÂpN2krTº;6뿉m›À«ˆÔ©§Í{yžÆ;ÙOõP“\ïáÞdµ‡óÜ4S&³fÁ'/½êò|Føz¾ nRкCCñŒâä„*!:¿?ÑDÃ…_û"”_+ *þQÔ¿_ä þÖ,þ7¢ß^í¢ r0€Yw1”Î | ^PcJK÷³ÙÒéËaM 麽[X5À¨à¥¿}lí¸µÓ@PÀÉ”ÒúNȺ`µ<®Î¥Ë"Èf[¤el‡ºÁ-œ’¢uŽ=ƒjôÍ}"nÀÁã’iìŠHFœÉnä€ ÀÔÆ4Ö¸ù D à5zÞ嘌ïWɹEɃ5«=.ã±Ùéëööh>1–¡°hû-¦dÏ^æ“DW*ÜéiX[y Óxÿ!åsY­r¥·ƒ]ZX)8_å±ßþT¯£øh8‚<³[L£(b5 ¼Q[br}™ÁfÑò;á¨a}´aÁ¢F˜$ßùEvØÑÜãžÁ½~:‡'SÌÛ<.þ'é@’~²NÈÉœ ±ÚCkÞ€2=åäVTÈ',”D01w«„Ñ&aºkŸÏÉ–Ê ¾ÐÙmª‡€e"š7FŠói…Ù†ˆâÏ¡÷cM~Öñæ…ñ“‘qhÂcä—ªXìðפVÂ8>z«OC—/ùWFf³þì.]K,ºýCí»u­v?ùxIà RûÔñ\£8Oø•Ïšè/ceª÷SÑ]½Z1ßÙ ¹hé;#ŒÖIy?ªmu·ZÐ-õÄóš'̃RZß98Z"Nsc3uœJ9iÐüžA=ÿí>áç!m˜ßngÀB ™@ø·†þ ©"vÙÎÒÆ\>9§ý·1›¨`îŽ4÷Q5“À_?‹ Äî¤þk'ñ…íeVDÿ¢ª‘´6§F|2Ñc+ + ±Z‡/h£øy-¨ªT,÷Yaȳ֚mÚ á°€ ±Òr$žX„Ao׋R[%b‘É î(àm;e²j•Ãødç)œQº„ëJ¯Ñ(ä‡zTJjÞ¤¢0CGΜïl’{ee¬Êßx±HÓ' Ödà"¦Š±qZðÏÕCA;vqOxåšd×™Qr ³LœØQ1ñd©O„kMFÆ ã(½Ûv„ù*Kt&-w)ÑfÉ™ò ÇlMüC4c+i)ÐoY[ûEþ`uÅÞãó1xSaG;.P—æy&Ù^|·Õfí‰$žýËË·!š6¹‡™É*á–‹g¹¾¸m‚N*Ö·ÒÁ]J>àËüZÃ~¦É·œŸé‚FîO‡™Ó]SY¿’V ûÄx3Ö_@|£ÀżVt«yÂz½ô\›FK¡Ù‘“Ù•ê”´• f¾\Gá›S_~ÄñJ%P”¹Ò€Äñÿ²ûÊlÑ9²HÂ.(õ>«³ :rtyŒZŽÆ¬ñz îšLá…Í0 Dá›Â\7–ë̃VNfåW£¿¬MÙª×%ßëc%W‹;…|p˜oÔâp,ÃCNiÓÌωNûÎ+º!Ǭtx™†ˆƒOà©QU{YÞnÏnIhDI<>z É4pœd¶&B5ñö³Ãò/[¢¹Ê“Ðõ¤Ó!õŸ{Ï- &§ÞÚoà3éúy™µ×V¦bsp…%6ɹßÌú,E²œG¡»¨/ %ô*¹ëŠõ…ãýoŽâ¥_6ÿ^m¤Ýƒ`0öâCÎcx¢ éÚâÞ-cfì}½A'îá”<ŠvEÚá1¯¸Ïn¶qŸÂ×ÈÒUˆñh’!³ªÁÎ=}žÄ·e½Œ½Mèfì}’]<\á:ÿžRkäìT"‚ûà¬ÑÅÊîÏêÂ2W¾«›"+ùk£˜g+Ùœ‘@_‡èÖ t¾õÈt3QÜf˜»ìÙÎQ²Çš)õyÈY„å˜ÉÃNtÝ÷¦§(fˆÚ“åv¡WyÕà y4Ö° x‘ŒfVsÁÎOÐOË’XkN“õâ¶×—ról!5W^X-²~lUŠ ¡pbª%*`;>•ë…š×PgÜÙq)b|Ü»>*¿Eñ—Óí«ízêL·'ó§Ý”0i¹ÖöB Ú MpƒS2Fß^ùÈC…ìpN·ä}™®Îv‹J‚F¥¡æP4ÐÌ·aݬ_F}6 Cض3µÙ¨»‡z Ü|­7¯˜tŠb´š¾?|ŸJ9•Îa7+cœ„‘Dîìd9×­àìª#øó‹`ž 0hz"ªÀ©•B¸nŸ?GÆ]V¼(`9çPBÕ¥á9“Õev¦Ñv8îpñ…ØV™@(Usªó@ªº©=h?7è&CtËl|G¼@ÎQâm”‹ ºàG¿K¾¯LºQxd!jÀ˜]#I…‚ßÒ8NÆ#ndawÍÌ«—Qû+©ª 0xê5JôÃJÃgh)š2ÙµWôˆÝv£òôÎb>Ö±Í& a´ªåóÖt­¬Ÿn±ÿV?ôzëUàtà.yÖð >4°¬µ’Æ; ZWCF’š È­£=—Л³@ÚÚ°wrO ³©B¤\”½Û¢¯ˆ˜L/%hiüº~@RYæ¯`ÖÕKwR1›œª…話fåo&vj¼+¯ç{âmN:]›Œ(ÙPo×§•†›¹ òpŸÆYáq°¼bøê"ª¤‰¸zµ­cÜ9ôåÄ”÷€îK‹Ùä.Ó˜„¶'Œ¬:“Åa/=¿„t=†q¢ ÂãTü+7ì2&‹LÓífƒ¹Z/wì>'çµ–¨ nªØakÅ—ÚÌv–ùÊ}C“_!Îð‘~ÀÔ$Ã8vBP+Øaþ§v6˜rû$Ó®2Oª”òÄõ|³V¨lìÒtrÎSN ¹QQuš½u…ÛG{—Fû`”˜.çQÚ5Ȉ(ñÞ=ÛLŠrâ}<®vâ?Èyqæ-è}¡O–€°z¸!YÃò½úCÓ³¼Ù62íµÇÈ“—,M¡°˜þ`Ã*cÌ,Cª']¾³»‡jú…0Ë·/(¡â–AÅ:”ÄQt˨‹õzL–Ò· Ø©ßè¤G„>&ëíoÈ âÊÖÔEÅ5oñÔ1«Œ%H·%oµÏpƒ€ßv…æ?qJT<Øÿ¤‡…ÌM°ÇkJÏÝ?U®E6xiÂúïù´þëYÊý´]kÄDèËŽ×,MFhËý³÷{+>èÅ‹ñw]aX×ËÛC0~vÁ>ÓvUôXš0Í6E3^¦î‡`Jà]¬ãÈ%9×o­x(åâó£¨O#¢G‚¤2®ä'±ºj/-_™Û)’7¹¤Ä’É^!LGuXìH7«NJ: )¦ÄÛ÷÷˜3w©Ú{k‘56Õ Û¼Çbò¼“•+ÕgÕi)¥Q¸€yêzñ^’ª@BXÅÅuМâÓ©pk§óB­¨PˆþœpM\Z §pø%ài½u={¾Í¾Ô-‚ž+N§KUYôñUf¬)N#-ÎS4Þ>zQ¾£“L¥T£,]PÊV¹j’±Ò¶S¹:÷hfh¢ÖŸ'V»ùH¯ÁP*à½:ÿ« O¾]µò½frjT¿­7Ïs³§È\]ƒ4Šª¯Rg96 ïÁœ(Dªò|Õrl–Œ3w)»‘¨e§4±0Uâ¤`b ŽÐ7§¿·Í$d\Эøš™Bºª¡šÂ墥¯®¤–€~HVÛx6ÑÕ‚è€cw°Ñ»#Luw Oƒ ŸÍá½¹ xhFNðKœd—Å_VL¶žÙïù2IY´faú‰„¢?^¢“ CNEÒY_ªžÇÈĘÁÍÜA®ýDš”xÇÁ¡Ñ[R7Å3aj‰wAT17­`Î÷HçÀðY[ 9B†œã¬ÁÀ£û‹;´%²}&(æ}î^÷R+JÖä´6½$BâC{OèÅ(­ìÞ$ÒB ,~§ ›ZdtÓ„thšœnE±6y£:&ׯ«1ØéI¶ ¤¢qh“Ùƒ·„W§,&§|š‚©µ,«=[ÊOZhKow†„5ø­ Ý$öù%QIŠMD8êPü8YÀÌ×Câ-¾ì ]Ü¿20Â<`W÷R|ûù±X`‚`ÌŒ ’æç†iÎ2¨ ð´ë’C?:È#Q:Ú¯hHî¬Ò¶ê›ùrŸ/¶ý… Ӣõíx6=={ùÜ<ý+ø‚åœßn×ô‚ösp¿3Nª9Ö]†ãCšxJ²ò´¼†„Â-WëÇûO<Ÿü€#¬öO.ÎèV1!ïF’É.7IBäwjV¿¤>]FŒJÚ|¦ìì¾hQÙÑPUSñ·‹?èª}|\ýò‡r oð!@®©?Ïh²à /ḇSŒ]fˆ Æ`†`­±X]uºÎwYÜri/ðn š¸;­²ÝUGöånr†P:¸ÔT†üø‡©„¯ãÌÕ~á¥È--F0è™U¾:GÍnŠH’.’”´oØßÕÆfŒ`ä~Ø„|Ñ ÆSlŽIp±bí!@}3\D$]Ïï·jšcJ‡B—"`Ù©ï*•·ÙÄ+5V`ÊÿçeÌÞzC*½²" 1ð,-~Ìû1ÌM”êœÿm«³c¼ÏÈjVÅl{µÃõ!•F“×ç>E û§öííâ‹ùh›+¨ŸÌÆëVœ=ô@f”Äð:µƒoĨŒG4­_SÈZlœPä¬<™»{h0J2VwÄÉl\YRdî¶c]<‚ôâ^ÚUmÂŒÆ)PiH-U`¨^þŸñt<5zJ *41èMa­=ú©uwtLS¸Ú`²ßÞA…MÌÄM5ñxmîål”¼7ž" L•ÏšÕM6~_&ÙÿøJ¾E…Þ©AT«d `.û¢¹hz雂ºí4íK£ôµJ‹Á„~ ÂõÓQ#dÒL ȵ±Ð*¿ê·{apvGP˜ý‰ô4!îžqvæwVuZ©s"(ȬR+;Õß~¿oENJéè™d`Ï“ˆt.©òŽL}Rü¤Áõ%ð P!uÚþ|¿ Óó6‹ø9ÄöOÕhWþ } ˆ=Aݽ¦Œ‘ú_ð“®ì¤÷“I}Ââû-sN¢R|ŸØI42ªšàEiÓþÈF5tÿ43Ë2vü·Ï`ÞÆ¾b½Ë¨Nñç§BM—.•²ùê7Õå± p!ˆó•RˆrŒÇ@»Crí‡Ý‹ä§šÝ/h§_òªò‹ô¦@Qܹh ü40­#=&_)0LâªHÆ­#—`9ËŒ}Sˆ”hgÃwÀr“œðõ"OǢ̵ª¡¯ó¿7ë*±f§œ©Í>ØêŠª‘v’ͪµ¢4êB—|Ý"èèØYé’æáÎIG_à8œÑC Ä#ãýrŽ3MÕJœLF…c.ê̺™ù'ƒ%×Î5›o¸m\dóZʸ†bzPoÕÍ ªÊÚâ}©Õ\!FqI—s°xcØ üAŸ†mÙµ‹Ò$óÛ¦jôRظh› ´‹÷éYéÉß>0jeu úïC´ÔffÌúåŒà…HÓ׎ޭ¿â_‘<Nêëãic–g—®óÅÈUè°‹VÉW¢®3o{Óš(| Ì~é³4–Œ+ ¾œì¹49eðöˆ#íÿ9u?6öIgOt´n€S†ÍÌg›á×BØX–Ü „GP‰¦9*Цçðœ QE¤Ø?ó_{êÅiBð#Lq0é“¶ê:Š,ÞÅe=œ&Îÿj•Vd»áÄ&öžcºB_‚ÉÒ&kLÕJJƽ²vÅê‰XINåö™@ª.ÐV7ñWú¤»ÈèzìláÖ@t;ÍŸq·W“iÇ  ç6iíîy¥üàˆ¸j.‡ÁzqåÉR(ºâz´œá 3ó’ÕòþfÚYŠÉèmR`gý·(â˜Ú#zE˜&ÙÌ×cõºv2úˆI0OˆOŠZ1È1ÖÆE—åEí wÅzæÚÂö•+8¦:ÜD†œµ˜Ïز4]yÂJúÒh»v2%†®—šãô¾æ`±¾ðÕŸ™Ý:gÄ¿ËqXë°x[͹¯D l6ï“–ú0 oÒkï\¢>2⊭ïHv‰>â9|Zr›ò}¤Ì ÷Þ4½^ÊS£´Zë}—¤1㟎IЍ|Õ?ãœU~‰ ÝÇhÏìD¾mêÆ„×f¬ÌØ×‹oTe×W){øòE-økeéyžE hxÆÑÎã`tWjØK󔥢x—AÄuµk’ëKI·©Ùx‘u#*ðÿj~Æzˆ¼¡%ì&¡û…wРƕ_ì„¿šL8¦gý42£©¥J KUPnÜ?B“oc³"f¹íìw[.)ìsξ2Ø:ŸÍêË7wÆêë |ª,íÿ¿OÉ& Ì×X)Ás•ÀÕAñrQ6*©ñüŽöæ ±õɉӿ`,ªðÕšHȱõnüȬ wY¥jHÃéÈΘIÏê=h#¨ŽŒ"‰Vyþ˜½l¬­ìŸ¶²Ï'¯³D:øš9-ZSW—“âάGB‹H$íÒ*¡GP‡aùm"sý« \›‘•¹Îà7æÌPô×¾ 9¦‚oV²[43Ûi!ª÷ÇÊ„JDl ÈÿwÄ}þÛ€ë?ê YñPËœrÖ$ÈûTÖXK·™{i:þ²Äü ŠON&Ñ)µ=ªÇìm~…Í®i¿>ìs¹ÒM!ˆh‚’ƒ§^^1ÃJc¯Bû™z¯0`g½;Ûz4Ô«ƒ†G1ÁaãNœ™1žòiš+( Dµ^KA„0‘¼JÛ*Dtä­çÜgxv çÙð{ 2¿óÍžù×ñá›9”¦ì˜ŸžéÂW°7ù¤ã»‚»Iœ…>×üÀ@…cóŒÇŸ^=Þd¦™Ö­21ëaŠZOóM†˜‚³qÀ‘¸ÞJð~,WÏÆLl¨Q>>P~Ò1*EÕ¼!H‘A‡‘¯æˆ”®/ù“ûŠBNx^®¹@o-ð EÛ)º”ì:—|Öc{]–ñÈÅD}'*Eñ³Ø<<–zœ6 1ÜÐ*¤Ž@ñýÞ/úįÛú·þáo\]aÚv¢¾2A³biÎxeî—ÀR0„žíuÄ°ÄæÐ‚1“Rmlaγ©á2†çNuÖ6 íÏëjlïV¢û·ÿ×]V‰H÷ ý¶““ ûq^oþ®¯û1U+„PM;j\Ò £ìôŽÌ¼‹Z£ªõÂ2­8™iB *÷êf±G;%É#ZÔòk7ÆüÚŸÄâ–†ElÿÝ|‡¯Ð·BØ1»Â/ާÔ=ÙF->ˆÙ¢"™ Mt»éš¨,ËuèŽá$%k4 ?š:k¿RzX$•<#Bò£<3u»&t¼)-ïZJóÄ(ÔÊ „hGÊ–$Èèsµï…‚˜PÊþ0`ÎúÉXÜÞY˜åØQTìks&ú¥q‰Ä‘¾HÑ»s³—fr4·ÕC‘ .^:¨æ øš*–|Œ?irN[›‹ÑwǾ®¸Ž 9ç’Ëu´µIº¿Ò·Ähéçý”mNse*JÒ+Ü`'ž›„܉Et–‰ï+ɹ¥ƒ¿ ­%§tœÕ«ø$>ý;Ãù(Þ>[›:•иßdÃÚŽ€Œ´´ÿôqØs‡7+÷ò£\€s*ŽJω‘ø÷-ŽNêîâGOåwŽ’!¼ÑàÂ=dǯ_/¨”i÷™ ùŸ¨Éµ6‚”õå÷ì*J°ÚÏp[‡ôÏŸ«‹G}6GU:¦Õz¸6kÕ cIŒ…T`ú޳By~ @ÁY !Ÿ~£ûLjt­È=Êis ï0qpzð7ϸˆµ)Â6ÏCÑn x ¨%7áü!^Ü!ðs¤žÓæ÷«Hr-ݪt›mB…7÷=“Þƒbá3>4Øl7ïKô”B¿L»ƒ¡çù 2 ÿûÙÃK 7ºWy¥&H”Bâ…陣;=îãË¿(RgÆæÊ.nP…^sfk¯·È0nç|Á®°7ýi†0IAð{¾‡»»m4æt¥K\\(Ä9õÙ`1ÉÒ׈5tú[.$ã'ë‚–›Qϰwj±)güâÄÖfF&[ØF_Å>Pñ™§`÷o¯)°¾è6-Ñ—&B…ËG¾ŸœR‘PBYûŒs‡’CÓSâ X5žŸÏÍS/—ÎRzÔôK8ñ­+l!!÷ûªróÛ”Ó(¨¾re-¨UM>MãHÈžV¼OA…ŒäqÍèY³¹1÷iκë)­o:¾„E(ÂÃãÞn€ÿ€¼à èß4_w»eè5M©*úó»N«Ýb. ”] AY‹ÄÆÔðaëܦ£üC#ê1L@<Ô_†¸+,M+ÅõÁ[Œqý/±‹ßü¢)+&ùä`L•€‘gB*}tMKÎ qa6C0§¨š]Uä”8‡]’<±Ùd;õXg^êøO3Uk/ŸnÛbÐ_¬?“#jï¼]©¶}AåmQHõö ðøÿiôôªÓ$$ð»P–‡°DÛ>b¹¥Ç¯×î9fBêR)Ë¿iã—ª}8ŒëƲ}#!;Æö¶$ÏcP(P×Ðfü•©ë’í^iMEWÒÈ m,ˆ³]ØÝ0EmóüD™*oëΣä9M¤W:ëpYNµÃ×Âjrf\§õ‰0ã•àÎ[QO]Ãе &×À‡ÇÑG5ÕTÅ&+pƒV”2UÖ/ „þ 8ŠÅ¢…ÑtX&¬ùh©•XÆ ÕÓ‹Å‹‘¿÷8€ÞÖHÕ<Øq ͳx4ê±lmŠá·7!ÞêîJÉþ–×>tˆ2…îª@YQàO¨ÚÁ@>©L›–Ì" #hB’ãK‰©¬•Rde¿!Cn™|VB{—¼D&ñr—ùL»Uü§aT³ž50…ªÕ’UU•Ù±îpã6 ÃÂ9øÞºÒ±°¸ÎƒF”‰Ïà ÉÞÏqÇË!Ïî¼Åëaa,‹2ç f—¨ÉêøcZ„{#„ʄʵT±ŽÁ „äMW;ô „"¬Â%ü¨é£Êæúû·Ã¿C ¬¼6Ž@a¶‘ua!JýÑtg=Æ»)Æ›ëiC5ØÛ¥{[¾3[\Þ& EÕ½eáMo õ¿æo„“A{.{ÎHx^:Û4&-mþjµ±òĽ.Uõº’ðª¿`·_‘Ì8J“ò{,}îè~å@ÉgÝd?𨸺ÒO·ÐpL\#ÇÚs‘÷yî·ÓÃs Fsð l:µ«;#c0T_çëh¹nÄ¢:´z LA öú1ýN‰6Ñ×ZE®|)iϾ55p¢]T1–d™¬ô1ÀÂÜàw¾œ±“’1Ñ›¿‹=–PÀŽà·(Ž÷\•1:õ™‘^}jÃØMsȰ #ê¿;PZ%$buŠÏL>¦ 5V+ð?ˆ´rÞßÕzf%öï|(”ÞêP³¢[!ÊX9(qO?£AÝ„#ã6é…v¢Aîu}\(òCáí_”ðF¬¡bا5 ÃÎ]†!¨²Ÿ£]KâcߨÿìôÄžx5„—Þîö¸GX¨yïÚ£n{+¸”P3’âÓ÷Ãi«‹%hÚPQð,Ç-¡‹Y;¯ëÙùa#õaV à.Ì÷ï$UtÔË`>sŸ8ZoÖ0¿Ÿ¤–<Œ šmÎ(_ž·dâàHhlVѱL…KоüDJë ¦ Ï3Ŕե"8‘X9™SáT/LJKN‡$|ê~o9¬îÅÍÇ’Ý~ ý½Gê»/ŒR†÷ª\÷O÷W¶Êfe`B¶üµšñe,}¸CŠ?ÿ Sr#9ä3köó‚ð{Ï€ì ˆo++½Î°†äלּÿ{Nß´é5ÉÏ…Hòl{&pyÕ='×±å¿k§Ó‚CšñrôÐ>¼r  ýeȬÌ3—ÞPhC–x«MÈÁÔÀ=|Kœ5¿µâ›j[ö¶g÷!hÚÈʤê"úÏIÛ~›lß:ê<¦N±Û¹`ÏRŸ[{ËâVG*­¦j Üøiôÿ/d»¶º²ƒ TÅÜö;_Ó$™Ê†Lõç#¦;Š?Ö & €&ü]÷ßQ w'i\ ø)àòmu¯|‚vÌ‘Ë6þ¾Ú Ò‹ñÚcy’ü`™<À]Ýe÷x\y¥Œ«ãPbîhîç2¤g“DQ9É+I¬ÂØÞtüª¢Xñ€Æe³Æ“kOS盧¶*³úñ©Àä28í…#ˆÇ˜ŠxxîÁû0iŒÚIƒ°È[m›ãb]$i¨I…K ¾ŠX¬auVÛsø¼%Yï˜EsCü9 ˜ [Ip(ý 0obÞåš´4hÀR–¿¡‚4 ÏÙA~¨Ö•ÂR”…ËÌ‘”§Øû¯ð€ª›—]·ò±ÜUädR2ª>pú¿wô’¦nÈâ!ÝÒHeL/‡2vÙÖvŒ" „‰3ñ½±sÃOjµ~Âѯx%Ð)Ãø'‚œ%ê*hÈäS}ÏÎàtƽD¸6j\-ø3Nÿcr8«í9ãš1P¶l½÷ž(?E¤öÝ9òq#•Øâh2qß\Ô¯ DœÛE<•@JsÆ,ÑHUßC8—Nƒš­b&‰Y}=ž4qk[©ùo‘Gl$åaЭɢ_Åo_7X!¡ š•¡{{cE…óR_ óE·gþ' màòû½\þÖ0#ºöâBæ„ “C¦b~BA¹è Z〰xU^:!KVe2¿²dl«¿[xõMM2ăfØŠ¥”Nr0.xÝØÔìRƒ\°ªa<›tQ¢ÓW—¨UƘ‚É,:uªš|×vì´ú؇¶Ìa+™Ý!¦B\ŠˆÅ$¢ ¾?ü>@AÞmpzÍB¦0Û(Òó£ÉÂÇ$x—ZC^?â}}Á\ ¬mSXúX0³9‡AýÙº…Ø^ÁÑåé?¤ÌYQ:¸´Hˆ|–3§ã‚Y BD!¾¿Æ°žÍ¯jÿn\g[SO:-çoûh—ýúBGû9—1Éþ•B\ç‰0=Ï3;\¬¤âXbA4æöô#ªˆÉÂCÛï‰và3T4ÎÜ=Ýmƒ !h'¥|ÓlŒ’ƒ 0ؤ·B=Ôzœü­s½'U”_"…™'Þ:Py°d±‰p2è[)©ç÷”3?{$C©=³ÙáÓhä–¾¦M±¨fïëYJ`›’ë—ºÍDïò5 Õ¿!ÒPÍ\¾äÍî¦X/àF=„T7ôZ{ƒ+¥ŸAC“@&fli!&˜ƒs3@ˆæe»«’i}u”íáŸö™ÞqœÝc$eUWÿ¿ˆŒ˜£Ùw^ÉÜ=¾ÖeëW†—¢OWfáçÌrgôê«;`bZ˜ I1"´gy)•t{m©¼äBq;zÿbѦnjÓ4½X´R‰êª H\pWùÄ}Z$H/q/’ˆq°!{0‰œN¹Ò:µÅSçð, R´5—¸å­§:Jß{%ÚPâ‚*ÿjŸ8¯P1B_yîö&¡&€1+±˜ µ ÷]9N!¨ºácpE¿Ð¥Îå½m°JÌÑ[âÒÍÈ,’v¸Æ~BѰÕü옠VS~eˆçMW!NºÑÉ’q›5"'8„gÄ;V½j[åô¸¦’H-¸ÀÃÑt7×£ ¬`š êœ{öýFµ‹¨À†!µ,(OÕª³&¤…Ç$ßc_ŒP¥ ¬üQ?}$ÐAJ·š · …{(bùÐ\.MBm Ê¹>i'é®éÜÊY{³'|,Õ”fÒ’ëœk€’PáFüí-ºÎe"§6ê\OåòÚcŽ]@ˆ(0O²w‘éÇž!_¼ÍHc6]µ`û±G¶Bz£ÄŸösgÆS7?.9RÎÇM”Ÿe@H9¾¬Yß‚)ë:à,!bÓÚ øFÊAxCÎ×"¾Ù7úÎ(jIÁ …g0髚D^¥Lt*TÎr£g9™ºs“*ÚFë}(–áÕ­ç\çºÅ×åêØ1ïu!JÛ7ÉA ~Tò²¸Ý}…,@„DûOG#¥Îoãèf 犜]1‚æ,ŒÉä{Ë4ó³AæVkÏ_S ùÆ\ìeò?]´„L=¬¬Š¼bdU¢aÈ™€<üKŠž7¹†\±s´ ><* Mƒqºvi×_NïÔÉД¡âçE…R—œØn£p˜kÂÚî‚ÊGEÈ‘ÿž˜EY(ˆ—Ør®âˆI'£DHôÞÊÁ]*[¶Ú¥DF„í•´Å‚Ú&¬ï~™kþ¡Q©® JÝ—D¨Â©­q\S¸ƒ ŸØ¹ßGd¨]„ríܽ™Œ÷-6¬$ÙeíßDYPDàa)œ7¥“6)JF˜r]¹‡Õ^ü*àþ+êÊ4/õþ3¢ŠÙxƒóÍ_d•fé7-¿ãÌ\•ýH̃¿®£czJK¨Aj‚É¥Jþ˜& y\y2õm!êøûdVi‘1Õk2ç™Ó5OgÊhÀÕNóË´Ö¹ÿ•lóHz Òù&DMÁUtå ¡/=Óïù œ2a?¤o»«lC±ñáÝÿñx…!=D,¤&ேºË²"]ò/{dôï _=é"´5´×Ù±)$µÞ@oÕÕÙMè=ž‹ÊÕn'Nؤ¸´[-¯cÜô‡ÍE×ú¿xÖËJeÊ—4 ½ ½ Ú??paÁT2±1JésúŸOâ™ä—ÌY±AªAù  ²ý¨V,ì÷*|çâ«F0-»gû&ö­c´»¢ê}ƒïG.¥M£ÃPHó>•è‰âÔ€¦4æ>…Kö²ò’ÂgAõÝ`SÜ£õEØAÛIGiõu2† Ò#îö;<ÖF¹–fjnJá~`΂£}¬Ù š3hgGJ‘E@¤­ýµÁ¤AO·•ìMWs ˜ß•壨JM'áb¥ñ;ûh^³‹ RùäMCÛÆ¡*/ ÁEÊ7òªúñZÙ×öÔmaZƒƒ¦`Øþª·g †vimÈÅ•…ŠD¾Ÿ¦_îä;™ÂÞáÄÙî>Ÿw—´M°¶¹›&N'§È,Ó©–HÖÿ´Ø„¿H®¢à;¸dûþÈaTÒsìÆK8”ç|VSëá$ GÃw¬Âpób™²=Üf ÇR oúެ)ú# Oö’jÌIï:$Ÿa—R3?„øÓ“Y½mY‰ $”4“f}S{Þ]9|¦@ÿ§phâJ¡o“п¢XáûXßOÖµ+]ÉЩÅ\pH bOT…äfƨ_VqaRƒ”ô6 Èë-¤w™o¶þÉ«_fê»vAÿ.d—«3ûñ 1ä̳×ìÜI¨ÞS¿¦{hYžñÇC¨±”,uºGè0GGU7зD°ÅÙ³éñ¸‚€áúpíÛcf±H"‰‰Ït„—¨\¯ š¨Ñ'M/¡¨ÎGOÊGܳ‹KV [ÏMp,3 ç%‡LÊüŒÛRçCGÍ̧þÊÁîSV lj<žÔ-i"éni`CcÕŽøÀ5äì·³¬Ù•÷û!V¯y\<À•wCø”–Å&gô?‰Š“_iƒcH¾^ÍNÓ'´mß凜¬+¹X!KuãõbÖlIò®3U&îÄ«»„«e¶"4fÿež¿M«û‚ÀÆ¿y…Ò˜­!Å6Ð6Çí¢U´à±øu½ï ¹•¸;/¿‘€•R×’>¼vtæ† îä*jlŒÓ]³)ù7GëÕÜaOêÈKúD34òŠò\”£íÏœð¥*wY›Ë+.I_:WåLQHZÖ;Ãà呹wyaoc¨wœ Ò¥ÍíhCa;Ðw}š><6»•F6‹ê Ñlga¸Œ(óš<¯ p P%K±ü?r_+Ï9XŸbßO"½û¬z×Ê«CJ'%{ïÊ+÷£xÙàX¿xâã _V°°„¨eìËš3ÓÆ®ß9%I<(­Ñá…: œ39IËm+‰:îä€I ÎÇ2—c§ñôàÌ«VB_§æÈqɆZ$ê¶±ò&Ü^µÏÔ†¬wð„Þ>àA2½ÊZ¶â¹ÎÁÎÆ’Sµ3ÒuHB9”›ØÆÚÆãøèÚV#áóWÍê.¥‚FÐB­-³²…Ë#P'ß»˜&ŸÊºõ66â=¾eØ‹¬tþÃä¯nÓ¹0_‰™qßÂÿ¨ùÒÍÞÙ%s›`gî©çºÍ„žÏjŒ ̤ÃÁâç\?S7ö\‚É¡ý<î¥O%ÕÇ5l ·£S¼Ý—Î@AããŽ[‡Úáº#Ä—O ”’b¢)®>K ëá,Áÿr°Ó·Ê)I‰ÿΡ_Ã˱槬Íg’T—YTHl'Э[<É]q=…n€TwÆ*ûÇ Ð” ©ê’èù>ˆWòšUu8å·Ò ¦ç"Zë@È_^!<áÐC&~ЧäŒUåF·,H9\Ù&#{¸Êá x3ñfgÊiÂ:Äûò– Hô¶O÷î «|qÆÏ5¦OlÝ©¤WšÆ¶ñÝOU¶ð¿#t+•G}àÙí¨¼–ò;¥b„ ó±Ü\@ûŠ·h*£|j›a‘6?ˆ°<;–Üd\:WuBûZOZù¤³ åÈW‡4Ä>XD‘/_vÄ&±6ëYÐGë]R½h*BH„as'lOÀ0º ´|¶8¿M €S Ž;ëžÙÇåî3|ñÄl‘Ñ Ì—a=y¬¤ô]ÀLî%MÖìh¦ÄÚ…WcjGuÏ’ø¼Qæ slJöåùóçqìKt[[x÷D>ØŠ3ü žÍÊÝaKæ™ÖõyD츟#…¼øä!Ì0ý=Äc%h Òã»ÌÄåDø°¡|ËÄ ìF “„¾#}°¨T­(mî¾ÀzÙrdIxU0j¸‰LEfŸVÿ%¡,-eü ~ÈÁgÙÓ>˜.Á„{T*­=[c¤ßH¸xŸÄ›†aIþÏÁãŸ!»À ÛèÚú±°È2Y”+F qá?"XÕ KÜ èÅrã釋ÌA½F?º§Ç™}¯ õOÔç;¨á\(!¢cVŽÍo2 ŠºÀ0ëÎ,dáÏ­œ$+ŸMS†hÊŒø¡ŽÌÈWæÉq?»x3*Žfê‰:JjlÃõ¹>îE0ûì]­ÑF¤G ,DšFªág¯ ‡ÚÍÍýÎ3÷*C%I½lšj æVèñ7…£/›v½Úþùz[ qßrÔ-|Y„Çy~OŽöZç¾ê-"$ß×/B]‹ýŽD@\d‡.>ïØ«¸‡ÓÿRÝRGêWšä]3Ìh~ÓñOh_}ã5tü†ߨÞë£uºJ¿ ‹Qdê éèɱiŒŠa†éÐü Œ¶§ýæë­é¬(»,Ølz’#&éGZ>ô¦ªˆúîO$«^€ôZçuX•ãQ®,L˜žeû[iÉåùvÁ<{AôZl Y "\2ë­ðÓwü¨[¯¤—Ép‡ÉuR(f/e/ø£H\Ò”6Å v`têð,ƒM¾%9co›õª ù• â,TG©Wûb]Hö‡[ò‡Á9˜ Óôˆ¬–¶mHàtyešòç3h+VÜE½Ró!Xå%"ìg±[âBÔê @NÅÚÃGsf$œe%ÃU‹d7ü¦(!ãÃÂ~“JoO+ÿ PUc}šshLw ©ó}åÀ íÐ[šž¿B;‚°!P#½¤;AœbÏ¥¡%Y sÖßÕ½›<¯”½‡<1Ñ&m‡+,‰›gv91–zšµŸëGr†ëy·¿çn:êœÑhÀ<<åØŠaI¸ðañ×j3—J4~Òs—?K²'ˆ€Ó2‰P–ˆÕòÉÒãò+`Ö©žÇ&=•vά]lj¤§ƒù‰Îý#X©ï}2VÆz¯ç×äûÜ\}Çå|ý…Zjo‚î²õ× !A–½:- eY½}«kg~{9ØáµEÈW§Kå‡+Ç8TÉ\÷tÆ2;–FŒÂÀñBKHÕÁ?çª#›÷­BFb'~KÙ:§Yçh 3´7eu3Õe“1ˆ4S8·_Î~Y'ãeŠí h¢Ÿ’w§Ù"åã­õ ,$¶ z[F·ï‡e€ËÝ ìx±\Ê/ÞÜmf»C…Ç ½u …øÒ¡z ñïÛ:uˆz½VŒ–À42“+ÝØW5ÝGÿºˆéCiX8¬•ö–¥ý(©Mò®eHÏ•†'¯u]&tî½&]ÿTeñƒHûøM¾±khšˆAeI¡Ñ1aé*~M,b4²S£m‚‡3úâ¹ÿõã+.l¯˜îêðÌQö0< `·IùfTcÁMA*Õ¢kH^)qèþý‚Ð+ál±­*– ÂjóàÅM ÛÆ»³ÛpØÊH$á§Sbë¬MÃnK’µƒaù ÈÛ×#=~ã«th…¡Âç»–âmþ¶d‚ã–ò¿ žKáÞì8Â¥›_f†•aÚÊ@(z'nKl û*ËöåSæ›fË .]‹Ë§dÛb= 'ÊlýÎt'5õ^¼N èL6ÓS·ÐТb(ã%t…~$ò^;CÌð©†×n—¥ïÑÀxj“‹dÂØËmád89+KˆVYÍ â)zRÕ_¢ØS”žØ­ ÜWhÚϬè,@æm©­dQ KÐzØSM–Þ6ýoÀÊjJhakö¾ç¹…‡z›Ïüû‹ŽÁ ,Ášîj´¨ wQ3c+³ru7ãV…Ùˆš_H÷E³Ëü•U“ws—±,;LN[}#gv"PÐùŽY,…[’ò÷Û•/ n™ø|B%xd nE½3£øÏüÉ«ºGžËX?8 ¡Êòøy—®»ç@²¿5ÀvTÈ!–fK°Ô£jÅOð„௺¿Å$^Ñ•ÑÃæÖmC?ô#kÙý«Ì,üŸ)÷·ÃõêvÉö fÈ]ÇhAN*¡"É1UÇ~ŠÉ•:5x‘ÊðçÉÏ;î³<×õ$ˆÿpþigù€õuHŠtÅMÄàd¸xÑ.M©áÿâ;a@§v#…ìaYpQÛT¦Ž}õ¹B&QB ³18ˆ5péÒ†ä%1òô‘®‹íž=~쟧³ºŸ¡@ –-‡(*„õÇkXÉò¹X%eE¢°#Þá¿•u¡9ƒQ ¢9*)Oy=qM†³»µZÈiwÝfÕ óî`ìÝ>Aú –Á0þ´Ü^y9ê ñp£„É”+¯ñ-õ³¥Hú¸8ÐB¢9QÂiÁؼé9ÛÙâCù~àOMšbÎPvGiã¦!v•„·››Xg9°’u«sBbè’¯¥ðÅ÷Óú1%½’z”˜< ”,Ñ/Ùyd+Ô õ$S Òq-ExЗFÄÛXU‰ÿbvS"SZ) fnæÅ&é,¾Ø¢ÆŠMR>Ú¬(¼–²Ê1)¤•Ò»W4\³k, CTjÕw×.ÊüXà€%ŒMÅúŸ wÉß.…Ž®RãT‹@C¦|ù¶AXÌ˽J´4¨ã]°`úÓdúÞ×tòÀ馊PèçL¶¶ƒgþ.œÎ·‚|_oý¨«{Øk&ï5@»ETε]ÙˆµéçGþ´TŽ'§cÔfK?àøl2 ed]l^ E4°éç|°+„þKúŸÏVËÅ×7‡`‡äצUk®â0óS<6W,â`ù-6ÂFªnðÌIT­iywJ¨!}(4JjõÕ?ô£õŠ#·a0Âר‘Ð mwäo,m‹m¸§2½F,ºpÁ9ÃÏGeò׍ÂÍ¡3j0Ýx*V=Áˆ^åË„9¤çŽË+û©êê-¢9ÎÓ¦ Æü¦°—è@þrb0@Ò7q1@ñ;)PÛIäw[`Ÿžå° Üw2艮*ß4³ä!ò¨¤xÔå"rÌMh8Bå7†ËW²VÚ>ù¶ƒdüÎÙÚi ûvªÏ¤Ëü–¨Iµö&ÅmÝÑÄ3ç¼!P¸•yDMä\†¡%ñ·\z!áŽÌs1>ëN9^S¡ày¿ÜÄO|ÃßHæ#©Ÿ„ÝV­ó¸Ár®(ìÞÀ„ÝájVN˜p—ôG¨¡£·&¥‘†Ü¨ë# $º6•· oßE½Ã׿ê²â‡ÆŠ`„iÎ p³l›ÕßãÕe<·Q @ã8 Ì/å¤ ðW[§j‡ËµœE09Î*osìÆÄt9lÄQ6.»g ë\ßÊï<å ïYΙv|+ʸŸg¨GZƒSýŒ]»²­Üç{ܓҫÕ&k í¬£ÑÃT¯%€kŽàÁã‹¹Ì õK¼£‡j¸|PÁË)Žž;‡SCJ‚ÄÂkÂŽÀ¶.A ÔT”a¬˜4‹{ZÂåIH} _¿gçß~lÞÄ•ãLVñK‡ß+—«¸¦C½ï›:bò+ý!£ˆö7ÖƒP``ïJå’焃Ôûó»M²¼ýN„†¯ÛW¶‰ÄeaiÑfW­j!=Iל“92šèä;»` ù;ýk”±¥LDHoY*£ht$–/:(­ÙçŽTÒfzÞã종ë¾OõTÊÌöÅÃåà½ma›WŒ£3…ýUÿÑ{CW‚ÌéFߺAé *têÂV ¯N6¤ièºq&x¨_ %Àé´æózœ D® ÿ—¿)3•ˆ;4Ó<^ë:^ìkw¸‚ú__x‹,w¥ø´ŸÉƒUÙ(M§hh®‰„-™Êÿ´(û®!üÁ¯÷œm¶‘gms OW#>î”é*Õ®ÙÙÓ¦’!vCÄ=9³îÁȦýá •Ãf¯Ó*Zã^ XÐüddâút~é¨‘æØ¾3I~âÜ8åîRÞqý˜erŸÑ­©÷®8ÈûÚkfx^‘ùl¶?Ÿ$@…XR‘6ºžÑ² ݕǢ»Îh¡»âL   ;®G°;Ú@H³T¤öèOrLG›päÞgt½½ÈøÂ>'…Þ¾á9Çz9MJ±äü»¹àÞ_~ÈŸ‡Ò޵@Ô)H–ù¶¾šÏYÌôeÕ“!ím /Eˆõ=⦩]v›ŒmŒLKŒÕ„i£¹\~.1ÊW‚xóÄ Éóe‚Ý\Dú9“ÓÎïé¯_§zi…ø¦“C˜r>Æ£ÙøN"Y“ÏC° sÅ.nêy,+ãs‘Åßc„{‘>&@Â-b™›ñìç†K–ߎêªè’Ì#”ÈYng'ίÔAã'75ÇãoZ•ˆ0~‡¢>3ÅS³„||–¶MC?ff?/H œ[ŒÆL$L!÷¡±{Ù+×ãå«fKx¢mèeDº }@ÐÇ"Ëpó¡õÐ{œ3£žaæ‰,×¾"‚V 8üU~„¾±ôÿK¼+‚Ò/Äh{J-úA­™„åGê…鱺^@ü‘‹ÀQ¤ýVóÌâaæW 2 Þ¹”T£F9Ç s½Ò{Žó"ðRóå#CÁÍwqu$rW+ëDý™V!“ʘŽRºmÔw¤ O«Š¬È1º{÷‹4VŽù®FaT“9µ•’•r‘I‘V4•7-JQeìêçŸx¯sŒñ¥+¤Ãw$D/]gzœæ!…ê9 Ѭ11ë‹£‹ªþ—c×R­«/ˆ=Äõãùè7h¶$$oB…$b«póR“Ùì|’˜k 3ƒuüRj¨«? æ¼y»Ÿ¶k¥ôWΔøßL¬$^ºì…Ê0Ñ[–wŽƒ#[®°+í6ÃB!¨ a‘eŒFWaFå§a-S'#ÿÃÿbc¢1 GÊxÛ´,H˜• F<à±!îÎÞóñ¥Aã1]U+ò9tÿ¢ãIä\ê°óÿúqä½,µÏŸ ñ»>gèbößœìz*‰Œl4uŸP$ ›2býàÁk«£PHH#lê¹»MJÝž¾{Š#`²3V£’u¦¹öÄ[ßÍX™$PNC¢Ñã²cÂõ$ðõI,ikÑg½Ð~²v\æ7Š.Ù×áí©É§µ.ÐÝÜ7e9e6ª@;´¬‹ÂQµ›}þ⯤­¤»j>nàc¨Ž…?ÚÀÆc ý8 èÚE§p³ûëe‹ÜOìò ó‚X¿ _»wϹɥO,6/!lF Hìµ<,ºIµ;UÑOã·•>zÊ’Ž#°ÖÛWûí>—8œ™žÏݳôîMåð.Sý*ä¡1õÊ‘­ˆ¤•q³Ã„Ð]ë8D‘ƒ [€Ã?nŠL¤ w÷Á²(Yмè#ãjæ,œç8å²&[™/hd-¹éç vQd 'åSÇL2…à×€úQÜ¿h·4NAÌ<'˜¯=²eŸ{·»@ž¯×'×’wôÒÑ.ü#a#u`š¡¥%뺶ð ð ¢ü… Íy ‹aI­J~;ÒÊ0»±µ?5xþî™öNVbÒðVÜ+ÄòäÕÊP*É?z¼+0`3•ô„ÔŽ÷C {â ý£&nÎó L¤Þ©ã¹´Žô¹UÏ…8¨ ¯«ª-ÇÇXï­poçÄŒ€ ¿\¥®åGV2Z‰/õò¬WјI’z ·¨Ó¤ÐJz$º{A p˜j]×}‰>6Å!qB3;4÷Aþè²Ýº»%›bG²•ÁÌýy½ÉRÙ@HQdŒ”wÚŸ³D_’2š’)~â´0M)¡Ä+l(“ƒŒš•J«eŠàH¼Ü[S¾‘ZÕŸê³êo÷¶ÙØ7ü¼:=÷[{¶´W׸_¨ó>ãÊmó~ <ìV¶7ÅžÀÌÜ_È#Š]ÇÚ«S‡å•~¦@¯ýåÄ.@aS~(6ÔØj¡7¿o£ ¢»êG^ .ICMÌ*2‘½£ü½è¬ÒFJn ï•ÕŸuæPÖ*Úúo¿Ã­ÿÎ|C£+é8Ó²ÎÀ`uV†®TfwE²Ú€ÝŸÉÒ?Ê’KLå 3`á4ɧœ«…Këè<´:`‘ô€¡$Ÿ1uæYdø7Øb 0žWQ‚¡¼3—‡‘œFva[ÕTéå¯×ÒyÜ’xŠŽIöŒõ»•¶¨I–&1ôÞâNa ¸P—¾·`ؤpy»µ<ìUsƒ/H!r 1R©h·É}†˜À$½vÊ&ÜcNÝ N⬠À%ùO© ´·wwävfYÜ5ðw¢Îÿ`~VN`Ž%Èg-HEÔ¼ªÒâ°@Ì»£2FXC _p¦f'GÔ°UÛçŸjí(Þè·À¢myLr*ŸOé?Ícœ³_áz\ ocóp­IV»ç[qKÊVŸ;n¹’ØZgÕ}bÕ (á„Ãmâ1<=Ö©ï6 Ð8ÖÉÑ’´ÜðÌêÞ1HþrjP-ÿ-S-Ü6ÄØ7—`ùì¾x~zh0ã =n’êŽ&‹J‚Ëy€0&¦OÚâ ¢´\÷ÃT“³TÎÞGs¨z@oW¤nA6h[cÉóÁ&¾§8Ôs»3mpí0Þ]Ä™«œüá b©},)FÿMøô[vPç;šJÃFÖ»lD¥è!KvÈ¿©—]ktˆ"¥†¨|°¨´7w…‡”É)ùÜa×ð"´d¨ÕFÀOQ3óZ¾ÓñlÕ7@'BP8‹éõÈ×=Ï×BO²ÇÁž&õE³Š t‰ážt7*µ|¡\=ÃlúfÌ´?ØÙV¿¹mAÓ·ÿW¹n|¼æ±·±‚;5/.¢ÞÈJ¯½’#Žx箸 »åð`òn2ÔyžHòe@[Gc=½Tr6¦S¿åhÈú½¸4GÆ –ÃŒ‘´À‚t ¶¬f(ò„wRa€1ÎÑž0bZÙˆ#\œƒ%¾§f¢¬ß×Ŭ—'=WT²h<à¦:ã…m‚€š@`°b“n²ÒÌŸƒ^)cÆgÒ:°{TüÉDàØx>ÕÇ56Gº+8Y^¢„EµwSZµ±NP}NÑ 說Éåóí] Dåãô‡Sa8zñ§øÝDð!'€d|–³ˆ…𨵗Ý{ 3 ‚*j<¼êëñ7@¬½‡ ôÁtŰ,;\úì=£àÎÀüîµÇ5ôÅ£â  r '¸"…ìß÷ 𬘿×rȶe@È`¤î%€T˜#·}ýBÀ}m鋯™TzäìÆãC+»yq]6[PIÅO:É%x?Ê@’>ºßȸ²ûßÑ:Ô[aÈM¡ýˆ®K€¶T„Dj4æÞ 0_¤î—!¤'³ÖÅ;ûg ©Y½ïNÔÈuMïœD² >‡œµ£„a³LŒ›GmpøÞæÞï]ì°|ü]^$×n×=&÷uýœ˜_p"¦¦¼²ŠHÓñ¥•ïoÎ}¦%ñ=œPŶáaç/¤Í;Jñþ|‹!W jÂÝ[F¬*Т¿{(›iøn2¹±ãcê5[vRR3m«D1¼çGÆfÛøR¶FÏ:#§ï×k(×`‡2 ®µ:ðØ®øYÈlOâi¬• F_0ïð1ža×mQƒ'ùPÌ?hòLµ[vŽ ]¤ËsÜiãÙ¿!›>Y¾EIZ¤1Q˜§F„?ßécHÔp×44'Z"+è´¸PzL¡7·S@ g"¦•ÚàFÍ&%»m4ɦI§3aV¨/ë@ U¸ü»¨07ñÙ=TI×™aO(ùÙÂw^ FÒFì<\pï˜$H€‚¥SfÂÊoZÕ»ˆÞÍí¤’mN wß‘QaË:žcßý¥9z­oÓµ‘ GJL3|ÔtA/þ‚Ê„íÈS¡êo÷¶Ð´˜Á\åU¥ÃŒ^„OSsÃÎ oˆ#tRr½F0QsUö)ýBGi²ˆAò™úe9äx Å žîö«!~¡÷Å{Žþ§©®ØYxÓuJx6$ò©'ÁŽÓ!Ös¾" =â¯~232WTúª aµqÞ'Ë`…¢MZ!¶27">lšJ_u.š|é" ÿ£êlšZ7k ô](àoTiEÜÄóÈZbUâá“×9!ÀÎw_†«àìJÐx%C<„_»ja}bÍ;%_r‚²hpÁ¥I½²åÏ-š»Ëðê  b=°×¿YUùK(4»‰0r'D=–í¾-š˜×VDP|©¿¬Í«„g_%íôÚºËCÚ › L·¢#Æ:‰_ænÐ×­LüìŸ~hdI„× ]ãá¯NG¤”ÛÆ»Þ·Áð¼æ97vô¡^[J‰Õç¼Û] hÅ‘ŒdzÙ° 3Ñך—øR7ÞiíOФBÌG¡¦ŽìM¦!™©ÙŠy›‘.T ÅëÇŸKO3ž¼ˆœ¹ë¿t̨(· ¹¹ˆ«•oàN¬þ¢³ ܲΊˆ±‡e ,S~Ô?…°Ùé<wø>¦O'wã"œþ{ns”Õõw–RºS¬_mÄÂÚo´µ§ÀPoÔ”7«M¼-“¦ò\Aií¼»ósG°P  píOè%/­jмÒ=ÕÌT~™_l £PBÞiW÷ÿx×&“èØQÖo´±M9{¤ØÔ|ý|RçñËB_ ýÉà¹Õæ2ÚLíBq½?Û‚mC]T(f`¼/h$3’ErJýroB=îÃ7lÛu€ˆ¥¿8x@’E€6¸•|}íóÆRhwÊÊyY3þÁa-Êb•P¾­™ŸÏ‹ÂãÆ(/¨TÐr§îZwhFˆÔ«ÃÚ+2d„w´óúáÁ"‰„ï:£ÿm÷T"¥Ýí%ÖŒƒ*ù9c{&|lܸD…­rEˆ<¦„b¦û¸-.¢;ù zX¤Ì€ð—`ªÞGÌÈØâ>LqÓã ù“ñ\[épÙ¨Žrùñ_¢ÊLÛŒwîoìË.²lÖªJbÜr_=ÌæºÖ‘Aª2ùãÔ9TètøÃ7)mÞÆ”?´SÏÚ˜) lÀ–åLÈîr¸žnK·°sîJ N©5ýš?¯~ kø’ƒår­´ˆ)iro&¦æ×ßh0&¦ˆ4ùÏѾ¹qúVff8ZV¼{Š'‹ƒÄ‡#Êü“d\¾ÀèGæ»úo;å$ñÒΚê¬òœ 5©˜’)rM,óœ]Z.NÒ­Ê3ËÁtó?IñÐG8B\þ³™Fºéþ~ dE­ºsD©ÊsÒÔçÿ8µ¢–Õw‘JI `›«ùûp›ý‡N˜#Í"óšÓ\ÇJÝÈñ°2¡ñ$ 6vã4Ö|Ó=˜ ¡g•ð öiŽý¥.Òú¨Æß½²;gyh°V9c5NðRtàÓ(›U”)ýd  ÇöïR7( 9,>@?ŸYÊR¤öΠµ­ìvXá:éÉF»ze°±!u±Êˆ¼º~g2ÚáO=>ÕÞXmÉÎl™X±KY‡çâï6¹ýǶ‹Aœã:N[ÐAcäe1©k{õÆVù ÛºLìšË-lÄ'åÿðE¹®—Gsº*¸Å}S£>ðÔlÇÒ§ÚÓL÷c/ã=u«*Ù»I ª"²/™Þ¸¹ S²?üÙ^ò‚R'VTMªä®ð[¾¥”ÆS0£±=*2Î-»ÈTsÂØ#)y€ÈDñ«õV!h¨µô1±åR½dE3˜q·ŸÉÁ ‘nìˆuÍ>Á›‰CúÿBô'U”x&eV¼ËTádD"ßæ·FôérŒáØ*Tàž£n…4hzŠ0+7õâ¹HªËv¶+ETÆ>ésçËì¬ïadÐÃ÷ÔXàÆ™>Y·=€ëûö@Ù>”3!Ú6ƒÊ_Ccbðú·BeA]F*cÇð=á{ ³ËÍçãZÕKo-[¤žÕ:‰H¦[I“<Ôr®å5¹êKn9D1·¦3§=‚ˆ‡õct Å`êæÿµMH2!üöÎÜ?é&zßÜb¨¡¡lœP/ݶyn”씕ÊÇ|0ö¾vå³Ï%¾yüŠ&åÖÍ{ÂBð§…14WsÂû^òâÀä^ß,üe(àzTLÑÅ€_30 .']Š ¦ßT©â¥ûtõ*¬u[ªV]Ç3ãÁãáìù;ržàØdnOÈ/™k¦—û(å(ùTS#¢¤uI{ËÓf}_`nˆ¼†Såx@èÄR2ÞMåý¯ÿU48¿è´ÁAèâú–Býݺe`— yÛëN¥´í^E,vσÀNÝIÇÖiÒºÅS½BD8â=S$J"OXÿWäÈÌ,žSªL´JŽÃBabhS…ép^/6œn¼ñÏžH .PÔ&¾¬‡¢È†^ÉqØ„²K0B¨ãa.}H!¥ß8x…í æa„‰/AÚË8б‘Gú(tÖ:2…lÂc¢”f$ç=Õ8B&XB¹Zï¬Öíä€EÝîKG¡ïdÐh˜¿¾Ý¥µî¯ *B%åi”Ç®ª2îÉÒ‚“7rÞ÷÷Éj¢izž¥:¦â©9Jb!¶m`1ôO¾†›4ÙÙo B*; hcØ=™Ög+Kgý:¨ÖÉ_W¦â—g'¹  e{ÙNIÇÏ2»ñe'Ë#Ú®ç¯dˆqÎØÉ‡t‘Èy¶Å³MèuÜ5¨ÈCL²jªå!Áv6};%Â}Kñ÷óH¶3³–¾pŽÔæ ²Ý§]æ}¦h/è7—K¤¨U@‹ ¬Ï¨/ ò#Kç-FÊóÌÊöY÷Ébèäìä9ÊäÁB9BføÔaïHx4sO汸 jK$9G}ʈ*ò'`žÓ;®»fÉw÷”¸H’[›ËÿìÚR.Æèèçù½»"íètŠo@§;ÒÛ˜éz¹I~÷¦âs0s—žÎyÍÕ|~€ÓÜÖeÌ6«ˆ:™ÇWŒ»…l“­¡Œìz/$˜DLpÁ6ôq?G?µj¢H0÷‹–3S/;±óœxŽ#ô s5ƒ®¤ ÝÒ‘>AuTvêR$I¤«ŒÞwÔv*1®.È¡—zi˜îp{H)+'Nx¾rà è¦Í®Ÿ~¸­qáÏbÓŸ|XÂ.}Ç¥t“ChíVU¿+Ê)í#ió) 5Åöë2CÏÉ—$^7ÙÎùíì~œN• dJ%x©Yȹ)¹ÈØëC sÙ^Ùþ+Ú׳9ìº|!á:¨Ë¢¢ ]T»î9x'Ý=ÚýJíú;à ýë;(7uïÉí¹7¸g>Õá6;ìè·ñvGX§£”ƒƒ¢þ݆/“°:$ÉA„¶Ö¬>oGèæ'=ÏÊ¥|ÀðD¦ïn=§üÃ,-nÿ¬!ìøÈ?5dã '˃HV¢¤mƒtHã\ÓÙýl´ýaø{Q³ £òäSË™™ß;BÄö€F>kPR¼Ðã"Ï |¡9ÞHRþø³4­$æ[ÅËfO¦ê˜gõWÈ£Ýæ¦°ü×*yW¢â þ¥Ž -ÿ§+½™rê²@ö–¼ÝÑ©´÷œE‡VÞΊ;d,}<Œr~­Ì qËMG¥±û= êϲz¤ã½|wcìÝ eÎN÷Ï Ì˯7ä SWÍLO¸s¼2‡ÈÑh!ä2L:½ð\Äb/òY£2~ö߯C›o@E=±tËàŠòì„©+§$0kû÷ÜËš¼ fèÂly+(ƒõ‰'Ï–ÂìT6Mh]<x'àÃpzX·”yÍ5rV6AóH7z`*- 3Û8'yÞà‰ÈŠ6…£ãàÚ §¦üÞOñœ.OðН/ôŸhÜ\ÀDë'ÑkÆ“PÅÿÉp£ÜéZŽh^@5áTfèÅOMϤmØØœiÄšÐï×Û›· £†Ôðß—>ˆƒ‡ºÂM~ÕØ5­[÷¼ìÔô©'|é4wߎ2IX¹~\ôA`bзV¸Í.šê²Cí7fÉAÂ,™Í5)^W;ÚS;W‰ªoj7:t¯NùÈÅÌAì3|Óú\i¢uŸ^}’‘v°ûàþìD;Hì35šhz¹âM÷á0`áó“Ȳ¨ÜWÏΫ˜B»qùù’&0’߸5ð6¾µŸ¦¼6ÊvFÑÏ«‡"¾gѵrº¼âf2"œãg¯K 6µÅïÿ¹QéÊH¢Á Lñ.š·T¢ý£˜ˆ*$JD¨¿RÚUzëJ푦†ýstê¿ïöÛ_›'"Ôaï.ä<µ0çFkÎ/«ðû=`ïtY›ØˆðT$T’tÚ3ÙlƒYó–¿4~aì± À¾3Ò'%‚zÉœŒÎnj+ñ£*O+¦²rÏŸ—e±z›I† ûºØL|®ÌÀ¬;ÙÙ`yLùa:_¡MÇ/R lÛ3úá“cåw †FÂ"òl{¹Õ‡†—¿%žÔôÆôê-̤o RªÂÓâ­xÁÕÑ¥’&Œâ¤ËÈäBs„† v…tç¡CáÃ8†  .Ûó~y) ‰2´)2÷–ã§UHÏÁøÌ^‡Ñže³¹‹Ý:|ÈO9t$üÆ:^ây‚/²§`쉪GÂY¹y)~MV>x¸!¥4¦[{æÄ,‚Íf(t= ¤ÿ`>Úsn%ƒøSjjZIÞ^$ܨ·üòØâ²uB$¾eËz2-Îàª+Zq‡ J¯D‘Ÿ“ÔÝP/<ØB4t'£ÌF,êÓC\bŒ¹þXiF¡ÆÎDFÙ ø7«a¨V– Ón†écò¦«è!ƒ`±¡#~˜ŸÏÝ×KØq{ôT\}¤³çÕ)¾=â 0T]’É‚U¸æFlÉ y÷Žf) –Ÿ™QIв¯åøŸ© °\WhSþÐc}ïk5hƳÎT¬??vt0Äœ•gfǽ;ül£ˆPã/OŽe=ã£%¥S;0ÅŠ`Ç™‰ØÛ3:%èÁI¦0z£±„w™Ë7ƒñÞ9ÉÀ°½ŽÖÓ÷÷<‡ÁÛúÁ¡Çv•‰¸[l!Rå €äjã®cP›“ Á[ÒƒQaxôγÄ]MP»p®{Y ÒíóáÂÀz"©0Glw|X¤N䤒€!:êÏÈúá@ÜÇñCp&“^—‚”¡_‹1S¯÷/†ü×H9?,ú$úðøA•Gß/_Õ}E!š÷·íh¨ÔTåΙ<0àÿÔt’k¥Ä´ïáÖ˽ÒLUß--:ÛLÖ%¥dqŸDb°–8iô ñËWŽ_î 9 Þ¹£ø~,c¬Â §0mÑ7o ´ZÈÀIéÙ¿`:†.:q¸';Y"ì 4Î¥ø|Òòi'l16;\ÆD¡ »|¼:ëÒòdÅKK;h™³qû€eT§µƒ?>]õEtWá_DñK™@=Tºtæ?îí[ÿ¿]/ô€áœaŸa«’G8Ÿí,úc…öT#‹4™øãqçHr ž“UÕ™q›Æ=DZ†õJÈ5¿¤VNéѧ`Y¾àŒøîÅÿé†x‹Ãfß÷“ÅHæÈ 4íØLÁfßW•ó{æš.eëºnL8à­ÏÔg㣗ÂÚQÅ5Íaq®Ž]`¯ÑÚÁÙíëùý,@¤é¾þ eËÜŽ°-b™a´¡¬vöOƒ.ÖÿÜ¥¼}W{¸ ®ÅØ‘Y€ßðpÝ™´ûGŽ´è³©¹äì3[®|ÞÑ\h$?~5ÂëCŽòáѳ²ÈðŠèí.[kÚrØr?~WH€•Ou¨áoaCïîk‡ŸñMV%Ù~ØæÙ¶@‚ ‘×esÈå) Ú1&çk6ÌÖqÛÜÉ_¥êgvöçB‚<¥´zÌ0¶›Ì¸(»¨áx§$^hh¥S0X ý=QãÔ¿rï”F‘äŽNVC³¡_ËŸ‘x؈g4ì™"fÖb7šÄZàIøêþ¼*Û¶Jºôb±¶—ÉÞ zºäQ¡%NÖÏÈU³ Íöpçþ%þ±”EEŠþ|«Ÿ†b[:Ÿ`Â*ÁG’’OÐÔQÍÁAû‘‘J¦IjFý¯ÝŠÚTè½kÕF¿)A çwnÒ=p¢*¦9›XžîÉá£ÏŠ0ÿÕWf7¨$g3¹è6¢œ‰;LÊqÅáõ áì!Ü |2ErYŸŠ„$,š¶²ikë?/ çOcáI½cÓuýo¶Çà^ÉZô,¢èz–65í䆵<‚ô^ ÅÂ…kñ×ÍÆNz„ïHbMÎV 7Žª}“°Ck9`®¯‡NÀ;Ž.2ƒAšp;þIžcMwãÇÛTè–j,Y¯rÒmf6I"; ªåêÊ` JeiþZA"~ƒåê'Þ†îòü`ÝÈ\âYÅxQPÕºq¨&WnlŸDb5CenºÂ,oô/œéèéÖ-­ PØÛ®=­¸]!‹èè…k!ÐQ\ŒÕµ ‡?ÅG%âà1Ù­ Üè›â”ô °ü¨'îÔW sf®´Ÿô—r’ s1sk›“~(Oxeó4HÍ¿~˜†ì«:`oŸ`ÝËqæo†‡gE’*9Ð%ªÅå„?™¼wd¸Þ¥òûÃÿ4‡ŒbP†n1Ó÷—.…ªd£¤ÉhÃßÃ㦨?*Ë•—;nïç’ æ‚mm;P¤·vµŸú}G5 ª)ë“gDõåv2TOŤ6cî}±¡–Š(Âd­#í0u_i˜ñÔ¥ü>îÊF‚‚M^§ƒH”9³É±’7±â:Àÿ-Œ7—qk¶a´Þ}J€ð’¤¸mݪe5ä–éPÄÝãŒ#+>ÖhR:‚"èD]‚Ywùä±¢ë:¹3ÓˆÖ—`'ö”~Ã7þÇÂf}•üæU÷‘–Æõ›Žt­ƒž ûÛ^P]aÚv¢¾2 ½v牄fO! ?N†7]PÛØþéÎSñDšÍ´…»E¡#Ù5åtåÄ’6ÌùȲîçvÀÛEg0·UÜRöŒ¹Æ>šðÜ6)Ù´Ë»ÿÞ¤‚ €ƒäã‘Å·’…Rµÿ†‚W§n|f2ªp›Xf?p\Š7iâ)`ÚÛ£pOå6ð†×ŸbJS »0<Š>£^gã—FéfiwH’BY]IL>Ìaù;K”J#ÃbéQÒÞ†9@Ñ–¸W›ª#÷bêGâH3䯡¶Ò.z»ŒÑ¤ªƒ[šöߦÁo™Ùÿ =¸”áÐX*ìŒC>å¯ öâ/ôÊ+zEáJ‘ÿŽfÆÃ ÷£‚ Ú*!{ƒ{ñ¬é†„&t1åˆ;&6: Šóa¹–f¿)·áö¿Oòg«óêô³A]P”ºÓ»ë5µàú-ñ`ÄMQìtƒzL±DæßôÖkF~œea3zD¬¬Ë™ˆWŸ•›øÊC‡ëÒ¶féÚ–BÃp—ÿöÐpî š <´«'n·¦Ùpy=²Qã}Éí‚/ãå‚ÜSG.é—‘ï–tH\骒R,·Ô£hc—‘ûßM§Îž¤Õä|JQ²Bþ”ºI7¯~ºü;#'é9íñøÃœéÆ"a¼[ü¯Fa6F нtÝÓE:ÛhlaäÙ!™£ ”—Aªý ¨’ ®,—/<7DRŠUÙ·H{¼®±ÅuvŽÚçdÕæ†,GýÌ ¾° ì¼ÿ[4ªÈû8«5º$ƒñBö«sý4U¸æÜͨåy`ßÔœÊÔ‘Ži±×W:ÿ€n<}*1Ƹ=4U‡ðô¢:,,nÍž£„ÈG'¡¡<`j aÝ¿ôP;ùR­ÒÆ ñùàxðS‡·ÉÉûN!™õö<®Ãã¨×0Ê3º:‰e8ÀLÕítœ‡Ÿ3ÞXoiØÆæë“¬€´±±LpŸZ„VWÒ€py8ýú¿3ûÌ…þ¹™s 7D®!³!*>¾‡Áÿÿ{¤½tŽ”°ì;›hV²ÙȲÓ"\õª.t _¡˜‡Ò÷ TKä÷N…6Õ´ÞsÎK3#zô&˜Ô;}¥(¶¡õ¹šú­øµ…„÷( Çq"9,´g£¥1d²RP¬B÷zµƒ­q²òTݶÄ3¸]ˆ°Ç—á›tÒ5\¦ áËŠ¶Ú"3g"õ‡8Ön»¦zJXû©/º–ì”8øï`Æl.‹Q|Åþ ýïr«+ࢾbv:lyÜ^8¡©Žü1 @A# W#XïmÚÅy× 4ÈK:“„ž8g\c޹xZZNonbõ™¼#Sâl±GÎZ:t©oB›.”lø¡&É•ŠÛZ!&ö‹3\ÓJgn(®ª©ä«WŒ`E¤vë1'3³}ä :d£›å03ƒ¨ö³%ÊÙC½DÛögL\¾q úïÊvð}¼Ì¹ûÖ¹ÕâUŠåJý‚l¦»ÆL­¬Ê¾=ZÂøäD»Èæee136/«ß‘x]/ç]5NSü.±ïv¬¯m¡{›ËßÛ.»Þ# k%m,kÌ?AZ‡+(ß±xTÓRGKIcØå>Õn×®Û”_Qø—¥é;Òt1½aD*ˆºìS>H¼ ŒùŽj²± 8&}½IáºÞýHâX$6[«ÍH½¤d܈#€5ymD˜vA&c¢šâ×Ád |™|ýë¬1âm;¼TSç¥ì©(Ó›/¾*Á¤ü€g„ìùí·»a£ìä‚BÆÄ x”0|T+£FôÛÂî»ªŽ«þ#NFH¬R6£x°Q~²}€Û2zzC±t žEz,ÄNßkÅ=w«c8y¸×Ã_Ò”éÔY#ˆ­ E•€à¤2rw2š ñ•ÅÓ÷®9ô×Ó \1&þÄäÖ…áÐåŽÕô綪?è¹/¤dE Ë 0wpÏIÍ"u5aK¬yŸ×G8~²"Û(´;HWŒKÖϥꌑ1!4c“-òè Ä-ôVƒôGtôió­gå6EéB6ªÓI¢CÙϹ Gׯ¢ rMwíM,©òz(‚t|RGü”ž¾Ý³wNé_·ñ)]É=ziÍû½8]¾Ä ÐØ‚ÿ=ÒçG²î®il¡^4UìÑô4 ,=£ÚØm.{žO RšwŠó7<Ÿ,¹ÁY¢5°Ü›¨& ³²E2¼'\€µÖŒ %ÙCÅXÀè¾›t cXåÚX/áø¢ç/%›`|a¾3'‹L`3ØÝ|9ÄÔõ\Pò^Jk¦{´}ç‹ûË o¯óœ)þu ت\êÈ€Å`cÉ‘dЊ‚e³¥Pö@ÿ(ŒãTHÃ÷âñËz'’wÍm°‘C§BOŸˆÊù¾šm}+G ñ|L™yʨߕöbD¢z N LÀ艘i²¦5[3!{ß"^}:$é€.(å*ú¼¶Ð›Ù‚·Z¼—rë[ Ì’¦‘þ¯SL¥(å(Ã"ÕÝH5:™îý³ÌÄ£„R÷‹Úò¾Oö¨ÍãƒÖ ÒJ:\ùoÐ}å¬ìúéóÍŠ+8k­³Oü+¹m¶öÖT‘}3cØU Iïd¡‹‰ÅÆŸö˜É×ýQùFÍÑK絞&¡}QM±çÞeæMæŸ=àÀüþ}–{dœY¾É¬ ÏÁ´JÝécd¶E‡±ðv%e'R”˜—>¾›ŒÇGÎu-*£&6&Ìj6ÃõàÇX®·ÃûTÖëѽUõ!nuÿ›ÍÚÕõÎNP+…d¿-‹…Ë4GM,ý|Û†)¥>£Û:±ÔŽd«ç5î¦øñbxÿNÿdåhÔ+_Ê$ͼݪÄ^I´ ½³$u´ÅnK 3Y0úú³*˜jhÓŸ¥=BÎYÛú ‚¶Œ”©qê„°c4`‚LK rÆY‰É¯À…D3GýOo\ñ?õ²‘µXp}1¸¬ÌŽ8€I¹¿m`´ÊÓ¯Ù™W¡Ø “KCÐøÎTN£eS?nØÃZ¥Ážñþ¢“ÚúÀçÔ‚~{§ðggÛR1CsÞ iÎ3}ÃFuKoêÌé±Û1ÙqOñ”u½•3ó°²p€8æ'1f’íª˜TzË©™Ó¾^…²šÓȘ1ª¶Þ01Jb'îÈNÿ2åîØp¿–¿LCëæxÐg&Tâj:üÆ 21í;æ4W˜oV­2{âeÔq–g`Ö"ràFfs QˆÌ º~¶FyÁaâs^Eä  ”ž]÷o öZÈÐ>ã5:ÏóòSè IÌ£ÇQ"8ÖReù"ä8ùdDgë§Ò¬š£R“ª Oªå|2ñ^ñq]·}4·“.†–/(Œ-Øä¯ôûÜ5Ž’8”¶\0G“¸.½âÚË ý/ Õ7ZÏ»¹‡d½–¸7à†ß ÿl4îÚeÕ~ñüçÎ*͈÷(ÎøkÑeÈÙá)st×H¹Í{ÈŽ1Múน‚È@BnÍëoß½Ù?bá´ã{Hæj¥Æ|ÞB†Tw<«Þ¾ÏW=Xiz–:k7NÕvÆýV|,M®½Ö Ɉö‰Ã8±,áÊéÊF¨J7Pü1“ç-“¯ÑÈâcâØ¯9‚Z"‹Š»”-ñ ì¬tgynR¼ÆÂ1켢ܶ[S^û»íø°È^í–®š~%SoPf6j/Õ÷¡¢-nJ»Ø9îçl¸ýt²²Ö4<ô:µj“œêïêÒÝî.GZ´þRÇ€¦.ˆ¯CLøpyg'°³¹f‡$çm“œþçI¶‘tºR~äV_Þ!}È:¸«c9-C1¹\l}j´¢Ì3ÔiJ çÞôŸLÂuy¿õ¥½<1  ]ö B=!ìeˆ¤ëà[£}L]OÀãçÁPæ½üBgrÇ&›v9—%ׂÔ7v†õ´µÌ6*ÎèIHð”–såV‹N~Â71ÝÛú ýíx"+¯gMÀ²NÁe妪ºž+Z=3ž¹(FkàœÍÁx'‹Ñ*™nxhÃ\3‹Ò6˜Åc7š%ºŒ9ºkÝ‹lK‡± ×0.ëTµŠª:²Ê]–þW–}ÒmE¾ç{@ÎS(ÍQ@wÜ£ý8–Ú¸r'»1>ßÅUô -ý‡[°ÊY¥“`Žf¦EæTWÚ7/C0dMÈ'álÛªi3ækTCµêRÁ_ZïÍï5I÷ ˜7¹ð<˜ƒêã)WYNb‡è‡"èx£`¡Ä‚,öŠ[°Oz¯e+ß) Ü7ÆŠ »Ê½Ï; u»™EÕw|õúU]`Aï{ÔŒnd[—Wç[s\™ÛnOA„•š5®ëlþe¤YY‡äTŒ“.¾ÁOÍwlâšúWŽ ‚¸käÖoLe›ä$œÄ7lùAyš­:jïr'õì“nàmæ ÕDRÕ\¸É6ð›2¦ ƪïÞD·W0âóƒìÜ o«l’œ;‰DG©ÍO^ ÁdI¢Åbô’ yÄ ,óãÆ$XyòœŒÖ¡·;+þª`•0»|,P—6^.6ò¬yd XkÇnP¸9=â!@º'/!3¹Ùäh¼;lN;·ŸznMÏåÀpTJÎbqˆ9Š«i|Ãë¾y¥ÍÉðÖšƒ¾\T3r·UEËíVR¯yƒú2’'½Á8hA² •»½ Ü¿žú«Z¯ܦדþ˺<TûR‰R™3í ŽUãïW[Qá.ùJU mŒ‘?€U<òª;»™²‚Ùónþ%ïõèK0íø…{$amÜ+œ÷lpqkurØÓàVûë„^6 ÎYRA¼¹ 5ôà2´ ÔjíÄ%r¥³RøM^>kZ‘.¸¯1ÝѾ÷\­ô¾èä¹ïâk–|Ì ­Ô>Uƒj!K{B>ÕÂPEÁöOŠÙø+3•Ýâ†m Q¾W¿Ömµ×„#SÄQ3ÏÇ£×~Eœj\‡¬þT¥ËiC6s%4ó;°[B–Úa`6èm™èn@=媅Åënøð B<[€Ë:r«@¿k㮃ø¨'‚­«Á+/³bŠ®o–Ž^G’ßå9ƒ¹úÕÈÚ÷m97!¡Š{缇YŸ!šÅî“k^ðµªÔ'U«‰×ñº=žÊ¸Q–òÓL‚»| Üú¡Zâ„òûGº„Œ¥ÄÌôßH¶ey,j­ ].Éu¿9‚N§s¦÷Nø”#ñLqÐæ«&ƒ ¹0­2IO¤ÕdKÀž‹Ê#úŽ£B羇ìƒï$wWeÅ6‰a['ï…aÞ^e•no æ.eZrž'J‡ʼïTž¶€5íwÄÆ>cb¨Ø¯,ŒÕ'*Æ6<1H†;4½Á1v,žŸÎ–«JìÐìŒÊ»hö-#\ö ÝÍúJFB_c§c9)¨óbxWöà¦6¾¶ùǸƊ¾xæâk=½mº"•U¾»&¥Edúô…c²óJ&™-Šž·hSß9ë0'[t0s{ ç£ö»ÙXbòˆOÿ¡ÝRŠcÏJ­ˆ‰p’s¬Žòóèi¢½ª´Ä ˆ¼C(=‰ÙßD ùË–o}º·=®‰±MmÞŠ)ô*½2G?SvìÔ‚L:/Ðø_Éf9ýU²Lm:ìÇ›ØB»m'RH†ï‘Ãhùl°¾sebÿŠ8. ú•Ù œDX4¡Þ]çR"ŽÏ2!a+Ñ…Ã~Ó\.E´Y°»»³î IÛÓ;¨œmàÐe]ŒéøM^¥.!;HÔ*õô:ȯ-Ï £:kö —wÖª‹åòS²ÿœ´;A©ž^ z‰r”ÆÌpD´õµª³­CÇV<‹ËG…±*Ž[–kœv"†'>M3ƒÆ¾ÔŒí­' [0R9û{x8cvâm˜…ót9î¤#YåÈöqâ`*† —žâ´ò/µ1͸žã–Eß S–„ÀëRh•h`'ÙÌ §Ýl„©•IýHÂ}oõñ}(c‡yuÇjIa%Ë<YÓÉ8Ê4áñrQR™¶ZM<;ÄçG3®øT,˜Ûi±»˜±«U;Åຯºh´÷G† zÒQï¢Ò4ÄëÎËL{hÇÈ㊥´}7Zåë‘Çÿ3ô¤³¡å½º þuyAf¤°“|ª;þåek xÃîÞõõöвî>söôV°Œþa2§çÏ7zeDæÔi±Úâ^íFŠÊ;Ž©“|6f…<Ðߌ~œ˜Õß5¿»O“>e옌RÞc kvÕOks6ÖÌ]Wz]@ª˜΂|ÒÓ½Ÿ)UÛÔQRô¶]B¢Q2Š½ë’¡n¶]R_¹~°óΫ.ÍÖN´\ùƒM•„âzî¥?Ø>"f|C-ÉÊ^æ:s ¾É$mÞUÜ kTu@&OœÐí„Ô `Vóû1J’-)*äTÙÆ]G™ÛîqlW6j~ÂVui¬’ÑR™&@v²B}¹M!I­‘´Ïƒ8 c‡<Üÿa÷$õ¡£N#ï½ã@_¶h¾ °³¸Wvã  Œ ®¤dROzy‚”¿Ÿv„ÒØƒuܪ¿=LŒWš-ÅrÛŒaÝ33à»`kAV º>×öAO¾Cƒ7“¦F&†Ûý¢)©„aûý•5Q¶ÌQzƒ '¶ØÑ^¿üVs‡= BÂ,yOc )yw¤z–XNè—b÷ÎýæZ?ña^ ÅÐzêÄÿ!&ã‹:{ìŒÊUCßý¤…>H›·d9¼³†Cóv–jDvl:¸¯‡í¼f9Yw÷$Õ` µä‰±ÓžV€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n019023l.afm0000644000076500001440000007656207056046552016433 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusSanL-ReguItal FullName Nimbus Sans L Regular Italic FamilyName Nimbus Sans L Weight Regular ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -151 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -178 -284 1108 953 CapHeight 729 XHeight 524 Descender -213 Ascender 729 StartCharMetrics 316 C 32 ; WX 278 ; N space ; B 213 0 213 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ; C 34 ; WX 355 ; N quotedbl ; B 177 464 455 709 ; C 35 ; WX 556 ; N numbersign ; B 54 -20 649 697 ; C 36 ; WX 556 ; N dollar ; B 69 -126 613 770 ; C 37 ; WX 889 ; N percent ; B 134 -20 895 709 ; C 38 ; WX 667 ; N ampersand ; B 83 -23 644 709 ; C 39 ; WX 222 ; N quoteright ; B 166 477 309 708 ; C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ; C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ; C 42 ; WX 389 ; N asterisk ; B 169 438 471 729 ; C 43 ; WX 584 ; N plus ; B 92 -11 591 473 ; C 44 ; WX 278 ; N comma ; B 55 -150 214 103 ; C 45 ; WX 333 ; N hyphen ; B 97 240 351 312 ; C 46 ; WX 278 ; N period ; B 87 0 213 103 ; C 47 ; WX 278 ; N slash ; B -12 -20 434 729 ; C 48 ; WX 556 ; N zero ; B 98 -23 598 709 ; C 49 ; WX 556 ; N one ; B 208 0 498 709 ; C 50 ; WX 556 ; N two ; B 34 0 620 709 ; C 51 ; WX 556 ; N three ; B 71 -23 599 709 ; C 52 ; WX 556 ; N four ; B 63 0 573 709 ; C 53 ; WX 556 ; N five ; B 70 -23 629 709 ; C 54 ; WX 556 ; N six ; B 93 -23 611 709 ; C 55 ; WX 556 ; N seven ; B 137 0 671 709 ; C 56 ; WX 556 ; N eight ; B 74 -23 604 709 ; C 57 ; WX 556 ; N nine ; B 83 -23 599 709 ; C 58 ; WX 278 ; N colon ; B 110 0 326 524 ; C 59 ; WX 278 ; N semicolon ; B 78 -150 325 524 ; C 60 ; WX 584 ; N less ; B 87 -9 635 474 ; C 61 ; WX 584 ; N equal ; B 74 111 609 355 ; C 62 ; WX 584 ; N greater ; B 48 -9 596 474 ; C 63 ; WX 556 ; N question ; B 184 0 630 741 ; C 64 ; WX 1015 ; N at ; B 80 -142 1036 741 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 711 729 ; C 67 ; WX 722 ; N C ; B 112 -23 770 741 ; C 68 ; WX 722 ; N D ; B 89 0 759 729 ; C 69 ; WX 667 ; N E ; B 90 0 751 729 ; C 70 ; WX 611 ; N F ; B 90 0 734 729 ; C 71 ; WX 778 ; N G ; B 109 -23 809 741 ; C 72 ; WX 722 ; N H ; B 83 0 799 729 ; C 73 ; WX 278 ; N I ; B 100 0 349 729 ; C 74 ; WX 500 ; N J ; B 47 -23 581 729 ; C 75 ; WX 667 ; N K ; B 79 0 813 729 ; C 76 ; WX 556 ; N L ; B 80 0 551 729 ; C 77 ; WX 833 ; N M ; B 75 0 916 729 ; C 78 ; WX 722 ; N N ; B 76 0 801 729 ; C 79 ; WX 778 ; N O ; B 104 -23 828 741 ; C 80 ; WX 667 ; N P ; B 91 0 733 729 ; C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ; C 82 ; WX 722 ; N R ; B 93 0 770 729 ; C 83 ; WX 667 ; N S ; B 89 -23 714 741 ; C 84 ; WX 611 ; N T ; B 158 0 748 729 ; C 85 ; WX 722 ; N U ; B 124 -23 800 729 ; C 86 ; WX 667 ; N V ; B 185 0 800 729 ; C 87 ; WX 944 ; N W ; B 177 0 1084 729 ; C 88 ; WX 667 ; N X ; B 22 0 794 729 ; C 89 ; WX 667 ; N Y ; B 168 0 816 729 ; C 90 ; WX 611 ; N Z ; B 28 0 737 729 ; C 91 ; WX 278 ; N bracketleft ; B 19 -213 405 729 ; C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ; C 93 ; WX 278 ; N bracketright ; B -23 -213 364 729 ; C 94 ; WX 469 ; N asciicircum ; B 115 329 496 709 ; C 95 ; WX 556 ; N underscore ; B -59 -176 551 -126 ; C 96 ; WX 222 ; N quoteleft ; B 163 477 308 709 ; C 97 ; WX 556 ; N a ; B 65 -23 568 539 ; C 98 ; WX 556 ; N b ; B 54 -23 588 729 ; C 99 ; WX 500 ; N c ; B 76 -23 554 539 ; C 100 ; WX 556 ; N d ; B 73 -23 650 729 ; C 101 ; WX 556 ; N e ; B 84 -23 580 539 ; C 102 ; WX 278 ; N f ; B 89 0 413 732 ; C 103 ; WX 556 ; N g ; B 32 -218 601 539 ; C 104 ; WX 556 ; N h ; B 70 0 574 729 ; C 105 ; WX 222 ; N i ; B 66 0 305 729 ; C 106 ; WX 222 ; N j ; B -65 -218 308 729 ; C 107 ; WX 500 ; N k ; B 58 0 584 729 ; C 108 ; WX 222 ; N l ; B 68 0 307 729 ; C 109 ; WX 833 ; N m ; B 71 0 852 539 ; C 110 ; WX 556 ; N n ; B 70 0 574 539 ; C 111 ; WX 556 ; N o ; B 80 -23 576 539 ; C 112 ; WX 556 ; N p ; B 7 -213 586 539 ; C 113 ; WX 556 ; N q ; B 71 -213 607 539 ; C 114 ; WX 333 ; N r ; B 69 0 436 539 ; C 115 ; WX 500 ; N s ; B 61 -23 520 539 ; C 116 ; WX 278 ; N t ; B 97 -23 366 668 ; C 117 ; WX 556 ; N u ; B 88 -23 594 524 ; C 118 ; WX 500 ; N v ; B 122 0 598 524 ; C 119 ; WX 722 ; N w ; B 118 0 820 524 ; C 120 ; WX 500 ; N x ; B 17 0 583 524 ; C 121 ; WX 500 ; N y ; B 8 -218 590 524 ; C 122 ; WX 500 ; N z ; B 31 0 557 524 ; C 123 ; WX 334 ; N braceleft ; B 91 -213 431 729 ; C 124 ; WX 260 ; N bar ; B 54 -212 315 729 ; C 125 ; WX 334 ; N braceright ; B -16 -213 324 729 ; C 126 ; WX 584 ; N asciitilde ; B 137 268 594 438 ; C 161 ; WX 333 ; N exclamdown ; B 76 -205 317 524 ; C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ; C 163 ; WX 556 ; N sterling ; B 44 -23 628 729 ; C 164 ; WX 167 ; N fraction ; B -178 -20 486 709 ; C 165 ; WX 556 ; N yen ; B 100 0 696 709 ; C 166 ; WX 556 ; N florin ; B -32 -212 696 738 ; C 167 ; WX 556 ; N section ; B 63 -213 589 729 ; C 168 ; WX 556 ; N currency ; B 110 133 593 556 ; C 169 ; WX 191 ; N quotesingle ; B 173 464 292 709 ; C 170 ; WX 333 ; N quotedblleft ; B 146 477 449 709 ; C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 140 106 336 438 ; C 173 ; WX 333 ; N guilsinglright ; B 109 106 307 438 ; C 174 ; WX 500 ; N fi ; B 83 0 591 732 ; C 175 ; WX 500 ; N fl ; B 88 0 585 732 ; C 177 ; WX 556 ; N endash ; B 46 240 628 312 ; C 178 ; WX 556 ; N dagger ; B 127 -177 620 709 ; C 179 ; WX 556 ; N daggerdbl ; B 51 -177 620 709 ; C 180 ; WX 278 ; N periodcentered ; B 166 192 293 295 ; C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ; C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 37 -128 180 103 ; C 185 ; WX 333 ; N quotedblbase ; B 20 -128 322 103 ; C 186 ; WX 333 ; N quotedblright ; B 150 477 452 708 ; C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 103 ; C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 738 ; C 191 ; WX 611 ; N questiondown ; B 86 -217 531 524 ; C 193 ; WX 333 ; N grave ; B 179 592 357 740 ; C 194 ; WX 333 ; N acute ; B 218 592 458 740 ; C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ; C 196 ; WX 333 ; N tilde ; B 130 611 471 719 ; C 197 ; WX 333 ; N macron ; B 160 627 450 696 ; C 198 ; WX 333 ; N breve ; B 165 594 471 729 ; C 199 ; WX 333 ; N dotaccent ; B 244 612 370 715 ; C 200 ; WX 333 ; N dieresis ; B 159 612 446 715 ; C 202 ; WX 333 ; N ring ; B 216 579 396 754 ; C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 91 590 505 740 ; C 206 ; WX 333 ; N ogonek ; B 35 -205 246 0 ; C 207 ; WX 333 ; N caron ; B 176 592 463 740 ; C 208 ; WX 1000 ; N emdash ; B 42 240 1068 312 ; C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ; C 227 ; WX 370 ; N ordfeminine ; B 107 303 441 742 ; C 232 ; WX 556 ; N Lslash ; B 75 0 570 729 ; C 233 ; WX 778 ; N Oslash ; B 32 -24 867 741 ; C 234 ; WX 1000 ; N OE ; B 101 -23 1108 741 ; C 235 ; WX 365 ; N ordmasculine ; B 114 303 452 742 ; C 241 ; WX 889 ; N ae ; B 59 -23 915 539 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 290 527 ; C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ; C 249 ; WX 611 ; N oslash ; B 19 -30 639 541 ; C 250 ; WX 944 ; N oe ; B 85 -23 966 539 ; C 251 ; WX 611 ; N germandbls ; B 126 -23 655 729 ; C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 914 ; C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ; C -1 ; WX 667 ; N Scedilla ; B 89 -214 714 741 ; C -1 ; WX 611 ; N Tcaron ; B 158 0 748 939 ; C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ; C -1 ; WX 722 ; N Rcaron ; B 93 0 770 939 ; C -1 ; WX 722 ; N Racute ; B 93 0 770 939 ; C -1 ; WX 667 ; N Sacute ; B 89 -23 714 939 ; C -1 ; WX 778 ; N Otilde ; B 104 -23 828 918 ; C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 104 -23 841 939 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 124 -23 806 939 ; C -1 ; WX 667 ; N Yacute ; B 168 0 816 939 ; C -1 ; WX 722 ; N Eth ; B 89 0 759 729 ; C -1 ; WX 722 ; N Dcroat ; B 89 0 759 729 ; C -1 ; WX 611 ; N Zacute ; B 28 0 737 939 ; C -1 ; WX 722 ; N Uring ; B 124 -23 800 953 ; C -1 ; WX 556 ; N gbreve ; B 32 -218 601 729 ; C -1 ; WX 556 ; N eogonek ; B 84 -205 580 539 ; C -1 ; WX 556 ; N edotaccent ; B 84 -23 580 715 ; C -1 ; WX 556 ; N ecaron ; B 84 -23 580 740 ; C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 939 ; C -1 ; WX 667 ; N Thorn ; B 91 0 708 729 ; C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ; C -1 ; WX 556 ; N edieresis ; B 84 -23 580 715 ; C -1 ; WX 650 ; N dcaron ; B 73 -23 810 729 ; C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 539 ; C -1 ; WX 500 ; N ccaron ; B 76 -23 563 740 ; C -1 ; WX 500 ; N cacute ; B 76 -23 575 740 ; C -1 ; WX 556 ; N aogonek ; B 65 -205 571 539 ; C -1 ; WX 556 ; N aring ; B 65 -23 568 754 ; C -1 ; WX 556 ; N atilde ; B 65 -23 583 719 ; C -1 ; WX 556 ; N abreve ; B 65 -23 582 729 ; C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ; C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ; C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ; C -1 ; WX 556 ; N adieresis ; B 65 -23 568 715 ; C -1 ; WX 722 ; N Uogonek ; B 124 -205 800 729 ; C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ; C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ; C -1 ; WX 556 ; N udieresis ; B 88 -23 594 715 ; C -1 ; WX 319 ; N tcaron ; B 97 -23 492 801 ; C -1 ; WX 500 ; N scommaaccent ; B 61 -284 520 539 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ; C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 940 ; C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ; C -1 ; WX 611 ; N Zdotaccent ; B 28 0 737 914 ; C -1 ; WX 500 ; N scaron ; B 61 -23 547 740 ; C -1 ; WX 667 ; N Amacron ; B 17 0 663 895 ; C -1 ; WX 500 ; N sacute ; B 61 -23 545 740 ; C -1 ; WX 611 ; N Tcommaaccent ; B 158 -284 748 729 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 914 ; C -1 ; WX 556 ; N thorn ; B 7 -213 586 729 ; C -1 ; WX 667 ; N Emacron ; B 90 0 751 895 ; C -1 ; WX 778 ; N Ograve ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 914 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 801 918 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 801 939 ; C -1 ; WX 722 ; N Nacute ; B 76 0 801 939 ; C -1 ; WX 556 ; N Lcaron ; B 80 0 551 729 ; C -1 ; WX 556 ; N Lacute ; B 80 0 551 939 ; C -1 ; WX 278 ; N Idotaccent ; B 100 0 389 914 ; C -1 ; WX 333 ; N racute ; B 69 0 498 740 ; C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ; C -1 ; WX 556 ; N ohungarumlaut ; B 80 -23 683 740 ; C -1 ; WX 556 ; N otilde ; B 80 -23 583 719 ; C -1 ; WX 556 ; N Euro ; B 12 -22 636 709 ; C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ; C -1 ; WX 390 ; N onesuperior ; B 205 284 393 709 ; C -1 ; WX 390 ; N twosuperior ; B 100 284 468 709 ; C -1 ; WX 390 ; N threesuperior ; B 123 270 455 709 ; C -1 ; WX 278 ; N Igrave ; B 100 0 378 939 ; C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ; C -1 ; WX 278 ; N Imacron ; B 100 0 458 895 ; C -1 ; WX 278 ; N Iogonek ; B 28 -205 349 729 ; C -1 ; WX 278 ; N Idieresis ; B 100 0 467 907 ; C -1 ; WX 778 ; N Gbreve ; B 109 -23 809 928 ; C -1 ; WX 722 ; N Umacron ; B 124 -23 800 895 ; C -1 ; WX 667 ; N Kcommaaccent ; B 79 -284 813 729 ; C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ; C -1 ; WX 667 ; N Scommaaccent ; B 89 -284 714 741 ; C -1 ; WX 667 ; N Eogonek ; B 90 -205 751 729 ; C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ; C -1 ; WX 667 ; N Edotaccent ; B 90 0 751 914 ; C -1 ; WX 222 ; N iogonek ; B 0 -205 305 729 ; C -1 ; WX 527 ; N gcommaaccent ; B 3 -218 572 813 ; C -1 ; WX 556 ; N odieresis ; B 80 -23 576 715 ; C -1 ; WX 556 ; N ntilde ; B 70 0 589 719 ; C -1 ; WX 556 ; N ncaron ; B 70 0 578 740 ; C -1 ; WX 667 ; N Ecaron ; B 90 0 751 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 940 ; C -1 ; WX 500 ; N scedilla ; B 61 -214 521 539 ; C -1 ; WX 333 ; N rcaron ; B 69 0 486 740 ; C -1 ; WX 667 ; N Egrave ; B 90 0 751 939 ; C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ; C -1 ; WX 778 ; N Gcommaaccent ; B 109 -284 809 741 ; C -1 ; WX 722 ; N Rcommaaccent ; B 93 -284 770 729 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 751 914 ; C -1 ; WX 556 ; N nacute ; B 70 0 580 740 ; C -1 ; WX 556 ; N uogonek ; B 88 -205 594 524 ; C -1 ; WX 556 ; N umacron ; B 88 -23 594 696 ; C -1 ; WX 722 ; N Dcaron ; B 89 0 759 939 ; C -1 ; WX 307 ; N lcaron ; B 68 0 467 729 ; C -1 ; WX 722 ; N Ccaron ; B 112 -23 770 939 ; C -1 ; WX 722 ; N Cacute ; B 112 -23 770 939 ; C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ; C -1 ; WX 606 ; N degree ; B 291 383 594 686 ; C -1 ; WX 667 ; N Aogonek ; B 17 -205 663 729 ; C -1 ; WX 584 ; N minus ; B 81 197 601 269 ; C -1 ; WX 584 ; N multiply ; B 113 34 568 427 ; C -1 ; WX 584 ; N divide ; B 92 0 591 462 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 953 ; C -1 ; WX 1000 ; N trademark ; B 208 292 1096 729 ; C -1 ; WX 333 ; N rcommaaccent ; B 5 -284 436 539 ; C -1 ; WX 222 ; N lacute ; B 68 0 463 939 ; C -1 ; WX 556 ; N omacron ; B 80 -23 576 696 ; C -1 ; WX 667 ; N Atilde ; B 17 0 680 918 ; C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ; C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ; C -1 ; WX 556 ; N ncommaaccent ; B 70 -284 574 539 ; C -1 ; WX 222 ; N lcommaaccent ; B -1 -284 307 729 ; C -1 ; WX 584 ; N plusminus ; B 50 0 625 633 ; C -1 ; WX 947 ; N onehalf ; B 202 -20 965 709 ; C -1 ; WX 947 ; N onequarter ; B 205 -20 938 709 ; C -1 ; WX 947 ; N threequarters ; B 123 -20 938 709 ; C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ; C -1 ; WX 667 ; N Abreve ; B 17 0 683 928 ; C -1 ; WX 500 ; N kcommaaccent ; B 58 -284 584 729 ; C -1 ; WX 778 ; N Omacron ; B 104 -23 828 895 ; C -1 ; WX 222 ; N imacron ; B 66 0 373 696 ; C -1 ; WX 556 ; N emacron ; B 84 -23 580 696 ; C -1 ; WX 556 ; N amacron ; B 65 -23 568 696 ; C -1 ; WX 278 ; N tcommaaccent ; B 55 -284 366 668 ; C -1 ; WX 500 ; N ydieresis ; B 8 -218 590 715 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 557 715 ; C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ; C -1 ; WX 500 ; N zacute ; B 31 0 557 740 ; C -1 ; WX 500 ; N yacute ; B 8 -218 590 740 ; C -1 ; WX 556 ; N uhungarumlaut ; B 88 -23 683 740 ; C -1 ; WX 556 ; N eth ; B 80 -23 576 743 ; C -1 ; WX 556 ; N uring ; B 88 -23 594 754 ; C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ; C -1 ; WX 333 ; N commaaccent ; B 57 -284 205 -60 ; C -1 ; WX 737 ; N copyright ; B 55 -22 836 742 ; C -1 ; WX 737 ; N registered ; B 55 -22 836 742 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ; C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ; C -1 ; WX 712 ; N Delta ; B 10 0 701 729 ; C -1 ; WX 584 ; N notequal ; B 74 2 609 480 ; C -1 ; WX 542 ; N radical ; B 102 -36 705 913 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ; C -1 ; WX 584 ; N lessequal ; B 45 0 659 584 ; C -1 ; WX 584 ; N greaterequal ; B 56 0 626 584 ; C -1 ; WX 584 ; N logicalnot ; B 99 86 619 377 ; C -1 ; WX 711 ; N summation ; B -18 -97 760 762 ; C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -284 801 729 ; C -1 ; WX 556 ; N dcroat ; B 73 -23 695 729 ; C -1 ; WX 260 ; N brokenbar ; B 54 -212 315 729 ; C -1 ; WX 556 ; N Lcommaaccent ; B 80 -284 551 729 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 662 914 ; C -1 ; WX 556 ; N mu ; B 18 -220 593 524 ; C -1 ; WX 278 ; N .notdef ; B 213 0 213 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -41 KPX A Ccedilla -41 KPX A G -41 KPX A O -37 KPX A Odieresis -37 KPX A Q -38 KPX A T -103 KPX A U -42 KPX A Uacute -42 KPX A Ucircumflex -42 KPX A Udieresis -42 KPX A Ugrave -42 KPX A V -81 KPX A W -57 KPX A Y -104 KPX A a -16 KPX A b -5 KPX A c -16 KPX A ccedilla -16 KPX A comma -4 KPX A d -14 KPX A e -22 KPX A g -17 KPX A guillemotleft -51 KPX A guilsinglleft -47 KPX A hyphen -8 KPX A o -19 KPX A period -2 KPX A q -15 KPX A quotedblright -60 KPX A quoteright -68 KPX A t -22 KPX A u -18 KPX A v -40 KPX A w -29 KPX A y -44 KPX Aacute C -42 KPX Aacute G -42 KPX Aacute O -38 KPX Aacute Q -39 KPX Aacute T -103 KPX Aacute U -43 KPX Aacute V -81 KPX Aacute W -57 KPX Aacute Y -104 KPX Aacute a -16 KPX Aacute b -6 KPX Aacute c -17 KPX Aacute comma -4 KPX Aacute d -15 KPX Aacute e -23 KPX Aacute g -17 KPX Aacute guillemotleft -51 KPX Aacute guilsinglleft -48 KPX Aacute hyphen -9 KPX Aacute o -20 KPX Aacute period -3 KPX Aacute q -16 KPX Aacute quoteright -68 KPX Aacute t -23 KPX Aacute u -20 KPX Aacute v -40 KPX Aacute w -29 KPX Aacute y -44 KPX Acircumflex C -41 KPX Acircumflex G -41 KPX Acircumflex O -37 KPX Acircumflex Q -38 KPX Acircumflex T -103 KPX Acircumflex U -42 KPX Acircumflex V -81 KPX Acircumflex W -57 KPX Acircumflex Y -104 KPX Acircumflex comma -4 KPX Acircumflex period -2 KPX Adieresis C -42 KPX Adieresis G -41 KPX Adieresis O -38 KPX Adieresis Q -39 KPX Adieresis T -103 KPX Adieresis U -43 KPX Adieresis V -81 KPX Adieresis W -57 KPX Adieresis Y -104 KPX Adieresis a -16 KPX Adieresis b -5 KPX Adieresis c -17 KPX Adieresis comma -4 KPX Adieresis d -14 KPX Adieresis g -17 KPX Adieresis guillemotleft -51 KPX Adieresis guilsinglleft -48 KPX Adieresis hyphen -8 KPX Adieresis o -19 KPX Adieresis period -3 KPX Adieresis q -15 KPX Adieresis quotedblright -60 KPX Adieresis quoteright -68 KPX Adieresis t -22 KPX Adieresis u -19 KPX Adieresis v -40 KPX Adieresis w -29 KPX Adieresis y -44 KPX Agrave C -41 KPX Agrave G -41 KPX Agrave O -37 KPX Agrave Q -38 KPX Agrave T -103 KPX Agrave U -42 KPX Agrave V -81 KPX Agrave W -57 KPX Agrave Y -104 KPX Agrave comma -4 KPX Agrave period -2 KPX Aring C -41 KPX Aring G -41 KPX Aring O -37 KPX Aring Q -38 KPX Aring T -103 KPX Aring U -42 KPX Aring V -81 KPX Aring W -57 KPX Aring Y -104 KPX Aring a -16 KPX Aring b -5 KPX Aring c -16 KPX Aring comma -4 KPX Aring d -14 KPX Aring e -22 KPX Aring g -17 KPX Aring guillemotleft -51 KPX Aring guilsinglleft -47 KPX Aring hyphen -8 KPX Aring o -19 KPX Aring period -2 KPX Aring q -15 KPX Aring quotedblright -60 KPX Aring quoteright -68 KPX Aring t -22 KPX Aring u -18 KPX Aring v -40 KPX Aring w -29 KPX Aring y -44 KPX Atilde C -43 KPX Atilde G -42 KPX Atilde O -39 KPX Atilde Q -40 KPX Atilde T -103 KPX Atilde U -44 KPX Atilde V -81 KPX Atilde W -57 KPX Atilde Y -104 KPX Atilde comma -4 KPX Atilde period -4 KPX B A -28 KPX B AE -29 KPX B Aacute -28 KPX B Acircumflex -28 KPX B Adieresis -28 KPX B Aring -28 KPX B Atilde -28 KPX B O -14 KPX B OE -11 KPX B Oacute -14 KPX B Ocircumflex -14 KPX B Odieresis -14 KPX B Ograve -14 KPX B Oslash -2 KPX B V -49 KPX B W -27 KPX B Y -56 KPX C A -43 KPX C AE -44 KPX C Aacute -43 KPX C Adieresis -43 KPX C Aring -43 KPX C H -22 KPX C K -20 KPX C O -18 KPX C Oacute -18 KPX C Odieresis -18 KPX Ccedilla A -44 KPX D A -50 KPX D Aacute -50 KPX D Acircumflex -50 KPX D Adieresis -50 KPX D Agrave -50 KPX D Aring -50 KPX D Atilde -50 KPX D J -13 KPX D T -56 KPX D V -54 KPX D W -31 KPX D X -58 KPX D Y -74 KPX F A -78 KPX F Aacute -78 KPX F Acircumflex -78 KPX F Adieresis -78 KPX F Agrave -78 KPX F Aring -78 KPX F Atilde -78 KPX F J -59 KPX F O -30 KPX F Odieresis -30 KPX F a -45 KPX F aacute -45 KPX F adieresis -45 KPX F ae -41 KPX F aring -45 KPX F comma -113 KPX F e -33 KPX F eacute -33 KPX F hyphen -20 KPX F i -19 KPX F j -19 KPX F o -30 KPX F oacute -30 KPX F odieresis -30 KPX F oe -33 KPX F oslash -30 KPX F period -113 KPX F r -44 KPX F u -42 KPX G A -14 KPX G AE -11 KPX G Aacute -14 KPX G Acircumflex -14 KPX G Adieresis -14 KPX G Agrave -14 KPX G Aring -14 KPX G Atilde -14 KPX G T -53 KPX G V -53 KPX G W -31 KPX G Y -72 KPX J A -39 KPX J AE -39 KPX J Adieresis -39 KPX J Aring -39 KPX K C -56 KPX K G -57 KPX K O -53 KPX K OE -49 KPX K Oacute -53 KPX K Odieresis -53 KPX K S -48 KPX K T 14 KPX K a -23 KPX K adieresis -23 KPX K ae -20 KPX K aring -23 KPX K e -46 KPX K hyphen -53 KPX K o -42 KPX K oacute -42 KPX K odieresis -42 KPX K u -32 KPX K udieresis -32 KPX K y -76 KPX L A 8 KPX L AE 11 KPX L Aacute 8 KPX L Adieresis 8 KPX L Aring 8 KPX L C -52 KPX L Ccedilla -51 KPX L G -53 KPX L O -51 KPX L Oacute -51 KPX L Ocircumflex -51 KPX L Odieresis -51 KPX L Ograve -51 KPX L Otilde -51 KPX L S -28 KPX L T -112 KPX L U -46 KPX L Udieresis -46 KPX L V -115 KPX L W -77 KPX L Y -128 KPX L hyphen -140 KPX L quotedblright -145 KPX L quoteright -153 KPX L u -17 KPX L udieresis -17 KPX L y -68 KPX N A -19 KPX N AE -16 KPX N Aacute -19 KPX N Adieresis -19 KPX N Aring -19 KPX N C -15 KPX N Ccedilla -14 KPX N G -14 KPX N O -11 KPX N Oacute -11 KPX N Odieresis -11 KPX N a -17 KPX N aacute -17 KPX N adieresis -17 KPX N ae -13 KPX N aring -17 KPX N comma -15 KPX N e -11 KPX N eacute -11 KPX N o -8 KPX N oacute -8 KPX N odieresis -8 KPX N oslash -4 KPX N period -15 KPX N u -8 KPX N udieresis -9 KPX O A -43 KPX O AE -47 KPX O Aacute -43 KPX O Adieresis -43 KPX O Aring -43 KPX O T -54 KPX O V -48 KPX O W -25 KPX O X -52 KPX O Y -71 KPX Oacute A -43 KPX Oacute T -54 KPX Oacute V -48 KPX Oacute W -25 KPX Oacute Y -71 KPX Ocircumflex T -54 KPX Ocircumflex V -48 KPX Ocircumflex Y -71 KPX Odieresis A -43 KPX Odieresis T -54 KPX Odieresis V -48 KPX Odieresis W -25 KPX Odieresis X -52 KPX Odieresis Y -71 KPX Ograve T -54 KPX Ograve V -48 KPX Ograve Y -71 KPX Oslash A -47 KPX Otilde T -54 KPX Otilde V -48 KPX Otilde Y -71 KPX P A -86 KPX P AE -93 KPX P Aacute -86 KPX P Adieresis -86 KPX P Aring -86 KPX P J -85 KPX P a -39 KPX P aacute -39 KPX P adieresis -39 KPX P ae -35 KPX P aring -39 KPX P comma -138 KPX P e -38 KPX P eacute -38 KPX P hyphen -45 KPX P o -34 KPX P oacute -34 KPX P odieresis -34 KPX P oe -38 KPX P oslash -35 KPX P period -138 KPX R C -21 KPX R Ccedilla -21 KPX R G -21 KPX R O -17 KPX R OE -14 KPX R Oacute -17 KPX R Odieresis -17 KPX R T -33 KPX R U -21 KPX R Udieresis -21 KPX R V -49 KPX R W -27 KPX R Y -54 KPX R a -21 KPX R aacute -21 KPX R adieresis -21 KPX R ae -17 KPX R aring -21 KPX R e -16 KPX R eacute -16 KPX R hyphen -4 KPX R o -13 KPX R oacute -13 KPX R odieresis -13 KPX R oe -16 KPX R u -13 KPX R uacute -14 KPX R udieresis -14 KPX R y -16 KPX S A -31 KPX S AE -31 KPX S Aacute -31 KPX S Adieresis -31 KPX S Aring -31 KPX S T -38 KPX S V -52 KPX S W -31 KPX S Y -58 KPX S t -11 KPX T A -104 KPX T AE -106 KPX T Aacute -104 KPX T Acircumflex -104 KPX T Adieresis -104 KPX T Agrave -104 KPX T Aring -104 KPX T Atilde -104 KPX T C -53 KPX T G -55 KPX T J -108 KPX T O -50 KPX T OE -44 KPX T Oacute -50 KPX T Ocircumflex -50 KPX T Odieresis -50 KPX T Ograve -50 KPX T Oslash -42 KPX T Otilde -50 KPX T S -32 KPX T V 2 KPX T W 7 KPX T Y 10 KPX T a -107 KPX T ae -104 KPX T c -96 KPX T colon -152 KPX T comma -105 KPX T e -102 KPX T g -94 KPX T guillemotleft -126 KPX T guilsinglleft -123 KPX T hyphen -82 KPX T i -12 KPX T j -12 KPX T o -99 KPX T oslash -94 KPX T period -105 KPX T r -98 KPX T s -98 KPX T semicolon -140 KPX T u -98 KPX T v -106 KPX T w -103 KPX T y -110 KPX U A -45 KPX U AE -48 KPX U Aacute -45 KPX U Acircumflex -45 KPX U Adieresis -45 KPX U Aring -45 KPX U Atilde -45 KPX U comma -35 KPX U m -17 KPX U n -16 KPX U p -8 KPX U period -32 KPX U r -16 KPX Uacute A -45 KPX Uacute comma -35 KPX Uacute m -17 KPX Uacute n -16 KPX Uacute p -8 KPX Uacute period -32 KPX Uacute r -16 KPX Ucircumflex A -45 KPX Udieresis A -44 KPX Udieresis b -8 KPX Udieresis comma -35 KPX Udieresis m -17 KPX Udieresis n -16 KPX Udieresis p -8 KPX Udieresis period -32 KPX Udieresis r -16 KPX Ugrave A -45 KPX V A -77 KPX V AE -84 KPX V Aacute -77 KPX V Acircumflex -77 KPX V Adieresis -77 KPX V Agrave -77 KPX V Aring -77 KPX V Atilde -77 KPX V C -50 KPX V G -50 KPX V O -46 KPX V Oacute -46 KPX V Ocircumflex -46 KPX V Odieresis -46 KPX V Ograve -46 KPX V Oslash -34 KPX V Otilde -46 KPX V S -44 KPX V T 7 KPX V a -71 KPX V ae -66 KPX V colon -76 KPX V comma -94 KPX V e -64 KPX V g -57 KPX V guillemotleft -88 KPX V guilsinglleft -84 KPX V hyphen -44 KPX V i -14 KPX V o -61 KPX V oslash -57 KPX V period -94 KPX V r -51 KPX V semicolon -75 KPX V u -52 KPX V y -28 KPX W A -56 KPX W AE -62 KPX W Aacute -56 KPX W Acircumflex -56 KPX W Adieresis -56 KPX W Agrave -56 KPX W Aring -56 KPX W Atilde -56 KPX W C -30 KPX W G -30 KPX W O -26 KPX W Oacute -26 KPX W Ocircumflex -26 KPX W Odieresis -26 KPX W Ograve -26 KPX W Oslash -14 KPX W Otilde -26 KPX W S -31 KPX W T 11 KPX W a -46 KPX W ae -42 KPX W colon -62 KPX W comma -62 KPX W e -39 KPX W g -32 KPX W guillemotleft -63 KPX W guilsinglleft -60 KPX W hyphen -19 KPX W i -10 KPX W o -36 KPX W oslash -32 KPX W period -62 KPX W r -36 KPX W semicolon -62 KPX W u -36 KPX W y -15 KPX X C -53 KPX X O -50 KPX X Odieresis -50 KPX X Q -51 KPX X a -27 KPX X e -51 KPX X hyphen -57 KPX X o -46 KPX X u -36 KPX X y -67 KPX Y A -102 KPX Y AE -108 KPX Y Aacute -102 KPX Y Acircumflex -102 KPX Y Adieresis -102 KPX Y Agrave -102 KPX Y Aring -102 KPX Y Atilde -102 KPX Y C -68 KPX Y G -69 KPX Y O -64 KPX Y Oacute -64 KPX Y Ocircumflex -64 KPX Y Odieresis -64 KPX Y Ograve -64 KPX Y Oslash -55 KPX Y Otilde -64 KPX Y S -49 KPX Y T 15 KPX Y a -100 KPX Y ae -95 KPX Y colon -97 KPX Y comma -117 KPX Y e -97 KPX Y g -89 KPX Y guillemotleft -128 KPX Y guilsinglleft -124 KPX Y hyphen -89 KPX Y i -6 KPX Y o -93 KPX Y oslash -89 KPX Y p -63 KPX Y period -117 KPX Y semicolon -97 KPX Y u -73 KPX Y v -48 KPX Z v -44 KPX Z y -44 KPX a j -10 KPX a quoteright -23 KPX a v -26 KPX a w -16 KPX a y -33 KPX aacute v -26 KPX aacute w -16 KPX aacute y -33 KPX adieresis v -26 KPX adieresis w -16 KPX adieresis y -33 KPX ae v -26 KPX ae w -15 KPX ae y -32 KPX agrave v -26 KPX agrave w -16 KPX agrave y -33 KPX aring v -26 KPX aring w -16 KPX aring y -33 KPX b v -21 KPX b w -10 KPX b y -28 KPX c h -7 KPX c k -1 KPX comma one -105 KPX comma quotedblright -47 KPX comma quoteright -55 KPX e quoteright -20 KPX e t -16 KPX e v -26 KPX e w -16 KPX e x -35 KPX e y -33 KPX eacute v -26 KPX eacute w -16 KPX eacute y -33 KPX ecircumflex v -26 KPX ecircumflex w -16 KPX ecircumflex y -33 KPX eight four -6 KPX eight one -55 KPX eight seven -43 KPX f a -20 KPX f aacute -20 KPX f adieresis -20 KPX f ae -15 KPX f aring -20 KPX f e -21 KPX f eacute -21 KPX f f 12 KPX f i -10 KPX f j -11 KPX f l -12 KPX f o -18 KPX f oacute -18 KPX f odieresis -18 KPX f oe -20 KPX f oslash -16 KPX f quoteright -8 KPX f s -8 KPX f t 16 KPX five four -7 KPX five one -83 KPX five seven -32 KPX four four -3 KPX four one -88 KPX four seven -65 KPX g a -17 KPX g adieresis -17 KPX g ae -13 KPX g aring -17 KPX g e -11 KPX g eacute -11 KPX g l -8 KPX g oacute -8 KPX g odieresis -8 KPX g r -9 KPX guillemotright A -58 KPX guillemotright AE -62 KPX guillemotright Aacute -58 KPX guillemotright Adieresis -58 KPX guillemotright Aring -58 KPX guillemotright T -132 KPX guillemotright V -96 KPX guillemotright W -68 KPX guillemotright Y -137 KPX guilsinglright A -52 KPX guilsinglright AE -56 KPX guilsinglright Aacute -52 KPX guilsinglright Adieresis -52 KPX guilsinglright Aring -52 KPX guilsinglright T -126 KPX guilsinglright V -90 KPX guilsinglright W -62 KPX guilsinglright Y -131 KPX h quoteright -19 KPX h y -31 KPX hyphen A -12 KPX hyphen AE -17 KPX hyphen Aacute -12 KPX hyphen Adieresis -12 KPX hyphen Aring -12 KPX hyphen T -86 KPX hyphen V -51 KPX hyphen W -24 KPX hyphen Y -97 KPX i T -16 KPX i j -10 KPX k a -14 KPX k aacute -14 KPX k adieresis -14 KPX k ae -12 KPX k aring -14 KPX k comma -13 KPX k e -33 KPX k eacute -33 KPX k g -26 KPX k hyphen -49 KPX k o -30 KPX k oacute -30 KPX k odieresis -30 KPX k period -13 KPX k s -14 KPX k u -22 KPX k udieresis -16 KPX l v -11 KPX l y -15 KPX m p -3 KPX m v -24 KPX m w -14 KPX m y -30 KPX n T -103 KPX n p -3 KPX n quoteright -19 KPX n v -24 KPX n w -14 KPX n y -31 KPX nine four -12 KPX nine one -55 KPX nine seven -50 KPX o T -106 KPX o quoteright -23 KPX o t -17 KPX o v -27 KPX o w -16 KPX o x -35 KPX o y -34 KPX oacute v -27 KPX oacute w -16 KPX oacute y -34 KPX ocircumflex t -17 KPX odieresis t -17 KPX odieresis v -27 KPX odieresis w -16 KPX odieresis x -35 KPX odieresis y -34 KPX ograve v -27 KPX ograve w -16 KPX ograve y -34 KPX one comma -82 KPX one eight -73 KPX one five -72 KPX one four -88 KPX one nine -71 KPX one one -125 KPX one period -82 KPX one seven -98 KPX one six -71 KPX one three -75 KPX one two -78 KPX one zero -71 KPX p t -10 KPX p y -28 KPX period one -106 KPX period quotedblright -48 KPX period quoteright -56 KPX q c -2 KPX q u -5 KPX quotedblbase A 21 KPX quotedblbase AE 21 KPX quotedblbase T -80 KPX quotedblbase V -74 KPX quotedblbase W -39 KPX quotedblbase Y -96 KPX quotedblleft A -58 KPX quotedblleft AE -70 KPX quotedblleft Aacute -58 KPX quotedblleft Adieresis -58 KPX quotedblleft Aring -58 KPX quotedblleft T 1 KPX quotedblleft V 10 KPX quotedblleft W 22 KPX quotedblleft Y -1 KPX quotedblright A -60 KPX quotedblright AE -72 KPX quotedblright Aacute -60 KPX quotedblright Adieresis -60 KPX quotedblright Aring -60 KPX quotedblright T 2 KPX quotedblright V 9 KPX quotedblright W 21 KPX quotedblright Y -2 KPX quoteleft A -74 KPX quoteleft AE -86 KPX quoteleft Aacute -74 KPX quoteleft Adieresis -74 KPX quoteleft Aring -74 KPX quoteleft T -14 KPX quoteleft V -5 KPX quoteleft W 6 KPX quoteleft Y -17 KPX quoteright A -76 KPX quoteright AE -88 KPX quoteright Aacute -76 KPX quoteright Adieresis -76 KPX quoteright Aring -76 KPX quoteright comma -68 KPX quoteright d -25 KPX quoteright o -31 KPX quoteright period -68 KPX quoteright r -24 KPX quoteright s -23 KPX quoteright t -14 KPX quoteright v -10 KPX quoteright w -5 KPX quoteright y -14 KPX r a -16 KPX r aacute -16 KPX r acircumflex -16 KPX r adieresis -16 KPX r ae -11 KPX r agrave -16 KPX r aring -16 KPX r c -11 KPX r ccedilla -11 KPX r colon -31 KPX r comma -77 KPX r d -8 KPX r e -17 KPX r eacute -17 KPX r ecircumflex -17 KPX r egrave -17 KPX r f 17 KPX r g -8 KPX r h -8 KPX r hyphen -54 KPX r i -6 KPX r j -6 KPX r k -2 KPX r l -7 KPX r m -9 KPX r n -8 KPX r o -14 KPX r oacute -14 KPX r ocircumflex -14 KPX r odieresis -14 KPX r oe -16 KPX r ograve -14 KPX r oslash -14 KPX r p 0 KPX r period -77 KPX r q -10 KPX r quoteright -6 KPX r r -8 KPX r s -4 KPX r semicolon -30 KPX r t 21 KPX r u -7 KPX r v 18 KPX r w 21 KPX r x 9 KPX r y 15 KPX r z 0 KPX s quoteright -24 KPX s t -15 KPX seven colon -84 KPX seven comma -123 KPX seven eight -34 KPX seven five -37 KPX seven four -95 KPX seven one -58 KPX seven period -123 KPX seven seven -11 KPX seven six -44 KPX seven three -29 KPX seven two -31 KPX six four -7 KPX six one -52 KPX six seven -40 KPX t S -17 KPX t a -10 KPX t aacute -10 KPX t adieresis -10 KPX t ae -7 KPX t aring -10 KPX t colon -37 KPX t e -22 KPX t eacute -22 KPX t h -14 KPX t o -19 KPX t oacute -19 KPX t odieresis -19 KPX t quoteright -7 KPX t semicolon -36 KPX three four -9 KPX three one -57 KPX three seven -45 KPX two four -43 KPX two one -45 KPX two seven -38 KPX u quoteright -14 KPX v a -30 KPX v aacute -30 KPX v acircumflex -30 KPX v adieresis -30 KPX v ae -25 KPX v agrave -30 KPX v aring -30 KPX v atilde -30 KPX v c -22 KPX v colon -32 KPX v comma -76 KPX v e -29 KPX v eacute -29 KPX v ecircumflex -29 KPX v egrave -29 KPX v g -20 KPX v hyphen -19 KPX v l -8 KPX v o -25 KPX v oacute -25 KPX v odieresis -25 KPX v ograve -25 KPX v oslash -25 KPX v period -76 KPX v s -17 KPX v semicolon -31 KPX w a -26 KPX w aacute -26 KPX w acircumflex -26 KPX w adieresis -26 KPX w ae -22 KPX w agrave -26 KPX w aring -26 KPX w atilde -26 KPX w c -14 KPX w colon -32 KPX w comma -57 KPX w e -20 KPX w eacute -20 KPX w ecircumflex -20 KPX w egrave -20 KPX w g -13 KPX w hyphen -8 KPX w l -8 KPX w o -17 KPX w oacute -17 KPX w odieresis -17 KPX w ograve -17 KPX w oslash -14 KPX w period -57 KPX w s -14 KPX w semicolon -31 KPX x a -30 KPX x c -30 KPX x e -36 KPX x eacute -36 KPX x o -33 KPX x q -28 KPX y a -36 KPX y aacute -36 KPX y acircumflex -36 KPX y adieresis -36 KPX y ae -31 KPX y agrave -36 KPX y aring -36 KPX y atilde -36 KPX y c -28 KPX y colon -40 KPX y comma -80 KPX y e -35 KPX y eacute -35 KPX y ecircumflex -35 KPX y egrave -35 KPX y g -26 KPX y hyphen -24 KPX y l -14 KPX y o -31 KPX y oacute -31 KPX y odieresis -31 KPX y ograve -31 KPX y oslash -30 KPX y period -80 KPX y s -23 KPX y semicolon -40 KPX zero four -11 KPX zero one -56 KPX zero seven -50 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n019023l.pfb0000644000076500001440000011265207056046552016426 0ustar fnevgenyusers€n%!PS-AdobeFont-1.0: NimbusSanL-ReguItal 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans L Regular Italic) readonly def /FamilyName (Nimbus Sans L) readonly def /Weight (Regular) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -151 def /UnderlineThickness 50 def end readonly def /FontName /NimbusSanL-ReguItal def /PaintType 0 def /WMode 0 def /FontBBox {-178 -284 1108 953} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020908 def currentdict end currentfile eexec €é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>niË…Ô‹Z'pÈAáÏ•ôœ^‡ õs¨INÉÏŒdwuNP¦˜t¢¿ÝÈÝØtÔxÜœÚàêÚv.µMƒË<*\Ì’ïz¢Ux?Ôyu¸˜Ä6‘ÇÔêÚy…ÑFÿ¡É .ä;Zýê"(ÐЊ;¬ S{˜* ïãR-A¿\Êî3-€ˆO8”4s©[ë=YM|âÔŒËG‰‘ÀÏxõƒR–ú)3g£ÂwˆO<’p9ÛSBÕ¨þ"A¿ûiͤ5Õ4èÌÄIô`2êZÙi#8^” "ÅÑ7lò Qªÿ¿IëÍŒ'.¯gæÄ­“Juº"Bf_ÕòY¾í»^—ÖãÊçnËóÛ¬e>©"}\äž~´ä8͘ž±dW; cmè›AÎ׫-׬L÷t’‚ÝH+å™8`|c&ÒÙ¸RÊo˜ãþCâ¯ßÖ ç]vtõ©ófcQšJº}XÈ€H=)†@ÆCμîÿ¢_›’vM©rIÌŽìïu’ÓóÿcðÈCt ©IÕN…Är0€™-aJN‰UÜÜn½» X8Û|\†Ãú5cJþÝ÷[Iô—Î\ø@ÆÛVð ºÚ°£Nœ®¦&åt€ëPŠup|‰hÉز36 B?Ì“w Óz‹RüÜC××…ùR¨@ò|Ú™àŸŽï¾d|ò7˜a Òæ œ¤%óÀ.WmCÎ X8í¾ëÓþšy oC‹ÄZÍC×.€æŽæ˜ïÞÕ€ê`£^Ÿ7U'C‰p‡G~÷ùh31êËáÓð&R|"UÖFðã0Ó·ÝéÈ=ÔȬLvÕï_Zš^kÎe?¼*ÊîI¦+Æxvä@Bn¨™Óš=§^°“Gk(ø´¹hëÊ»Š±Œ™Q+ÚnaæF½–פ…¯‘Å9xÐCànÈòàžnÄcuðБPÈ…åwé¤ù~—·i‘ûph|Ö—÷àq¸¹¿ÔwÅ*òÀUW•.Zxþÿ_:TºyØ€’àYñ„©U?áH9£d‰ÌeCªËs‚X(!uÀ…¨ÍýeÝÇ/è7\¹?Å)¦ßs§X®Ä1HAʈ‚iÂ`ÆpÕë[è»w€œÝt[§‘óŸŠ’‡ ?Θà|.¬z€¾äÇ&ï2$SKóÂ.oºŽ›"rÝ)˜õÛ:Ñ¢¬×¯Ó‘O–ÓkÔñGh*§Zލ¥½1X_n‘´@ Ê6"P—~ :”^ˆf"™OÚ$®ê»²>Éx½w®mø‚a‡¦¬mA(Ìn×™Š:GkFyab^~¦½¸$ìa5CG öí§|±±ÖòΩˮW66¨¯±<¾s \?s<–¤êâd9WDðmg»(Ë>Zè1³çŸókµfÓŸñ~â$\˜5¹þvõÌ|1Øû+‘öäzÍ#ƒV̉`ß8þ¢B†·Š<¥©Jˆj¾ íp½_íݪRz-ÑDp<MØ[úOèjiä‡ãܪŽDXW<ýŽ G%ëûÏÇ6iö¸e}»¹4<]›&£æ2Ë-Ž¡“hõ¾ìÃÝ*=U©Ø¿bÌ;×Yè\ ªPjÑXuZúUˆ¿IÌùyy+ 3í]n1T•âÖ†âBø=“gºÒ7ž(QñÐeèlª·–×?¡y5±RTÚ–g7ýZHÇÙW¾¯+ýÁ)Ljmo+³F/Î4±é°3Âw/öoFÛi×l;»BšÕ5ã\T¢LÅ—³•ß ¬¦Èççš™êDèîFoÁ¡ƒ”t\À&D0To™;unÎçZöÚnã8ÿkšÜ ‹Îé„ít°Sûƨ-Ðê Ù©ýõâi°hùuh*ã]F#y‰–ÜÓ6ØÆL^fˆ?íϳv˜C9gºEªÞêÇA½hþ˜£i«ò®v‹bºÎ®Ìpsìó*S*ô:…Sð“p•ˆ„î# Á[°ÊY¥“`Žf¦›\VoÉ®âf|þûÖ¯¯.|Øì’Áòµµ¬>MxáÇTp‡h¥…óø¬'t6ò–q6'q¼ïþ¯žé!ì3!}Ã~Ž\:Ó%°Pö• ‹ùl•æj«öÈ ÷‰í¯Vv4—¬âH'–÷üõÚO–â§þWÀ*½¥ôÚ¶'ý¨ìàë°Û€£’~)_¤‡º™#V•¥4…{£f ¬ØwB¶CœÜ6çÛ™Òœ7Ý*z®=éµ*Ê’ú ö ¤Ù°K—o^œ‚$l™/NÜq^;’I;¶óá.Ó‘Íí!DNãrºW¥¨Ç3÷õíV“õÛo /eú.ì<T§®C"¿;dÑ-©vqO&>¯Ίüìúï |¹â§`*¿VK{ËȃÖ)jçkìK´øàmŸG]¸Š\ºH×,’TŸ½ñ\3¶k»Ÿƒä°eå®& %çÆž/÷|'=a@œ›’/æœÉaDeŸ´0üu¡ µØ„¹6 -ÁíÅxò=iÓsâB˜‚!:§î"‡({‡ÐŸt #$©Æš œ éùN¨Ô–™µv÷ŒR!ä¿ÀÙ¨UòüeVÁÌjˆê„…f.£.¸F2hÜÄšÆ Š2òRÒýt_ZÀ}|ÓSÙ¦» Õ–ø†K8 7ˆ m]Â?_~ÄjîšécqyÈ$ïwÀÊR·k¾‚WJsÞøœã/Âd•"°õ˜¿% ëâëüV~o´jŠÜ7æÓÌ0i¾h‰›¬lY[3]0 GZ©õ÷ƽj¼†*F©¬µø6D·2G‚¤ª‡ÒÒK³Mtö4𷘱nV9§Îf €Ž 1¥‰Ðp”'’ßà©üEùbÂäèÑ0‚´üTŸªÀO¿¾µ'Aˆ« éÊgpgÕ íqP³Iuõz*Çuõí¿§höß4šnšÒØØ£…¨˜›„܉Et–‰ôÐDt¬—e2Ç7~½%åÐ÷2Äñš ™¹@îiÔ$LK-øŽëøßà )þ5¹qr%5¢UÆeüá¨PTÒ:4°ŸD²o³`ŽD•Yô`&'Êv†dÈðIΊA†5ç ¼´w¹O¬ýa[»9°ÈSa*3G¥ww©)L—#’™ÿŸoU“!n•o&… ߊˆ¨ ÈÞÐÃýŸ9ñÅ¿*‚Mxéx)ͺ0_›¶~ÿʆÔýBy¹É5‘¹‚1\]N9•rÊQê\”_3º½ÖûJ“ y¤¦fI*FƒYù~Ê26q‡QLââþ¢Ä$xV#h{&æ÷ÊE呚;6f­àf41`35XŽ£I¨iÇcèzJ±d"Æå |÷×ÿЪKœ’h÷¢ÃV3ÊN²ÁsWÔáOSc§Ä¥]³†¶—^+`ú¹´lòDCœ‡Q¡Üñ­¹cUA]‹lBe*—HÄáÖIœsМÈ5y•(F°­ž b^b¨`Ç|ßÃûÃ:Ò@"Œ(Úâ¿ ?&$æÍÖ.µ¼„ ‡ùýPQ³×C¯ïÙN«jŠøÛ\ù¯ðñÒ–@)ôYÚ¤ ~™ë°4©|BŠ9M)]-— $}Úaåð+⸎Lš${ÃB漣Èká™"µ~³PÞÀi‹ŸHWYƒ0íÆÝé98p»7@!ù‚hÜxÁû¦/ãF…’ª4|Óò¹«Ý(Ý‘ë `ZêLgÃd›éX-ìAM"# õwµíÂÈþîtCUþ±Ÿ×Ðw·Â …Æ‹wÐB÷œzlCÜ«;+}#>Y9zÓÇš‰-½J¬4_ ²σàLÖ‘¶m du¹ñ• ñÄé½Ä¢ïÛ ¢‘†¼ÀxVÉžtÝ2ùâßn~-½ñ?´-œžF•bW9üé›dÕo¥Ø¶§ÖwŸ¸# B÷Äž=êÌf‚ÎÔûrzÚJïBgtŸ½õ_JeFGxå€óɇ?P„tÏÍï*‹à*Jkú[ ºI>?"W™vžíèT¾ t–)ø]"S7§%õœÓÿ߉LªJ×»°òt¸Œßѹ#+#Ù_‚P -ÊX¤ìaZ÷ QL ÖŽ€ÑTà•]ñ6!¶÷ÏJØ!E½ûj5#cuðS%79-ü_ÁãRçölt=ë¹`äùSW¸Jëi6Ÿs®lÓkgá+U3ex¹†K@"bj2¶äIà1ŽÄqnûÕ½¯áåÉeßÈè»òlã¼Åè3Ë—Þ––D 4××»©tò½óyq(Íñ%ŽX'ÌkÞjÎ!Ðrô¯~ \›|=k‘ƒñÛØCæè0'}m6Ñ9XÖŸÇ?lÊ9?òË9P §ó'n£s–3Û\»¦æGÕtAºê¾„±NË\Ä÷ì*ÊC4│p!HR|ÑËîš}ʤñ ) ]r>]¤6•¥ë -$¶*èphÈ—\ظ®\G¦êºÚœÊOšPW$6ì4×Óðµ'ìyO7;“í¯+ÒÓ/Ù< ;•–—fr_ˆ¿$ù™I*M¹1~ç%×3Ñ—ÕÔYGH×-1È>»úÏOTVFøA˜½×Y¡  ,67ÔŒ¯Š!ñÅ)' õáå­ció-zGv†ºôÅÈß#­¾»kŸWãµ4B¾T8îLK2Iϰròåf¯NÍ44a ;±3€3¯>ÊðÔnÃáç#PÝÏpðó,€³à `(`_ý|¿'§ŽÀÿž 1ø4@ÊXj¼ž6²ˆSÞë°ÄfáC°A»¿Ï›øÅ~Ñ"xc‰èœ®ê–á JÄ{zRÀ¬w Õ‰Q„3„xîmÅ\GëÊÕÆ¤“.<*ëásò»ÀΪ¼cÍXçH@3­ÙçŽÔxYA»Š×ý¶7ù’U$ ¼éCv$³Î 9ß°÷âøJƒ±s¾°Ÿ3ð_žEqÄf¯ýÚ½„¥KX2Ì9•|öüöl(á¢`JrÿƘ@äFa(ø™+_î’0õvYL‹"ÛiË Œ²M«©¼ 5Ìa‰KíPú[ä4J¼g{›Ài¨¾‚r'/>>À—6No4Aóý÷÷Ñ{Úlun0•€Õ3JR>8ÉÃ4Î;Pð›1£Ã˜Á×õB NÕå¶ð5Å[$U(n+uý›ê³ý"gäZ»Ÿûì+Ø’§™Ð¢wGݵ¾ÂuNÔøâîXâñÙÆ ìI u>p2D@ŸÉS{Àù­ÒÀBfî8È"·ÍÍg ²)ѸzÔ6¿›‡ ÏJà<0³Ök¾4ß׃oçBx[`¤?“¥ÌÊñ=Ôa|”œ=€î2ë’ªsH¸“ŠŒÑ%ž½ÆPÕ5§×Tæò¡Ça<ÄOrÄL…ÊÇ%£T*"§‹ˆX}ô•¦ÚOT¾ÚŽ0ÒÓà¨H„çÝ þhâ~y ëÄ'4 7àŒ&76wÑ)ƒ~n|=ÛWàÈIø¿¹ûy!A(t$âkfòŸ´l_¥±&M¸r˜“7wUf‰÷뀂«Šv(ERöÜTýwÝz&¹èÂR„–ίÿaˆÌNfXÐ'T\QSýp¤aØÖuOfBYMÜ‘‰€ÖLâø»*œ0Žƒ¿‡,N µ]ÕäéüA<¯Ò6ýØ$çÇ5%ppBç6ÿâhO}–l"–Î@nM’íX½¥“HE%o< t7 &ýp#…7¼™ž¥Ýnzp®—­šGüœ“Ã…¡/òÐo¼ÉÀ±ì¡öÿ\š”)w~JMVhpÖ^_È2-ldÐÚ²Ñ*æ®;‰ø~S÷•¦òBd!ð <`Énîû¸É°ú¯o*sÞ!ß::é~úxTǤ%5õÁ“V‰ÜõY/— ôØf’E£Ç³Ç*3˜õ~ï@æo•Î’'Ó®ÀæÅXÖ¨J{‡w3—h@¤×¦É ny½…¿I1‚Ô~ŸóOx \ëck‚I¨¦¨Ó‰¸>ÃÚlfS˜zøëíòvÚ@Œñ#tð†xIÄñÅl°/(SYR%«…SlBÄDK¾Ë½`â!R§xAË53ðjbGsÃê™×ÊÆsW¯ ¸—œ`eòùVà{C œê«t¢8@G=û©iâ)Ü]ßjn«ãÃ÷ ÊhMb(fß/­4¡ Ïu¼»&˜ÿã÷,}AÈÌPâ SEœÐT×M—÷º,¿€tuþîî†ì”Ua oükÍ·E«¡bºÛƒDÃè]ÅE)»Ãòµ‡‡3Gϼ=æª~äG.è® 4*­žt¯¬G÷è…1dz¨O…Y€Ôò Üʯ[™åUfi߯V™ë&ÂM˜Ë€HýûÂ}ÄdhúpâGÏ »‚‘B—íL%¼îú%‰G>òÖ"AlãAµ•iãÐÕMŽ ¨8DœržÒfË£’Å:ÝØZõ<1È7R­Â¦yÓ¸æ”ܲƴz”|?òs- —·úv?þF;ó-{»[Ûî/ÈùšÀo91–Kš*é0\e×Á—¦gwºKüÄáÔvêø[¦¦E±`>ï‰l~35©è>(º(ÜŽ–W˜úÐýƒ;'"ÌÙ¿u˜hlQ–g;¤v9.@ké¼»¹þQyª±2È,„âÎgZqÑñ¨i‰bà~lÇh¼˜È¥*ròhÄxe ܈xdˆÿþÒyW7Z$J.«{3I³>M ŒÜ ÁÕõYÓ‘w"¢cAªZÂÜâf†fq.™|Šu–›€5½·B×…áÐåŽÕô²X®ª¢m -Ø’x:ÿÎ<ìyÇeZ°&Fåº2Ž_jkµóŒ™4ÿ®˜þµ0lA!oƼoQÂv žZÔà ¤± ŸÃülŠ¥b6ÿ©°$Ç@°®¢‰i—ΩT(„JÔäÐ6Ä P«”°:Ô€!p U$}Žðrã'èù”±ÀÄãd+ü¥è$ò~Ž×’ÈÖËigWÌ7Byì¾Oèfw§ó&KqÝÞLæµw²T—!2å~n^“ÃÏê_äÀÏv’ûaë€m´¦%+psޱ-¡÷· zßésÖÝ ’ÃÉ7~…AHœ+ì7Ëø¸ä/gX4® ˜’(ôtÄNN{-O¹;‡/øiÎüF¨Ñ•ä=pÜÚÃg—8sÔbÚ ÑaÇP°Ù¢_ÂØ˜ß_ 5#:Ý^vÃÕ@XÂò<¥i :aÐörzúè–Éú/0DÒ>[§ð9¯³¼¹*Tüøg—-À­7 YÃÈZ@Xév{v¥Ò$#IÕß [ÿ5ø¡ðmê‚yÿäb’èñtW­˜÷OÐ7C¿ð 9 g¶ƒ_Jþà=FkSŸSÖ 9€[CJš VôŽØžAt=éQ]A¬ò8‹y#•zÑò KÌ ÕjÔt™í_]b*æ3Z>_f! ývšœæ©­øUÁ!J®fÜ76¿¿è6<8Á®9FE;¡£G0³Hÿä‡7 f­&”> :/ƒ› ˜"Úa „»õ.{F¸³Ïz°QH wlfŧ˜¨¸bß1K ;C=Ò³õ~—ôA·3WÊTð=² ”6Ú"GY…eG–ÁõsWôõ®Í?Ûóˆªý9±íŒÞ¸ðPÞ(|)ýCø.÷!Jb¥»±û Ùã4©U×MU’#áÒÉ$*¤yaOrg–N—ªüÏJŒðDˆ±Z"$ûXæí¬nBØ,FU"ýø rÊžoãû«o¹vº]'˜se} *—Ó„ó~ð‡s#¡g{Ì͈^” ±yÉ5¯ÏÂ2ðpgE·=|*±|Z Œ«ãPbîh YÂË%GO܇ˣÔë'M«ïÓ]+Ñ rN͉\M nHm9Ý8þ¾å¨Ç–Á@<£›¹Ëÿž|m ‚ôb“ÊóßX'Œ,ñ‘•yÀêÁ‹´±^G´ó¯m‰ ]é$¬cÿ4ܧ‹êzÙÎ w…™€>›‘笲MâÇiæî !Þ6¡Ó-Á>÷Ó^(޵Œ÷þø=´¡M¶kÔ“I¾3D/bØŸ¯#¡nd˜Y¬¼%1 ½!&iR–·2fü?;v^Ѹ¦:ÌüË«~î äN <Ëü'^sqæÐ¡/”}dºÞRpãлÃåÒFð÷<ý†ÄH ½†=;uaƒ•Ýe&Vªé3AïW‡:`M°‹´×©³E;k°ÈÊM¤*On!¥÷izinÀË­å;WÆ4-sòžf¸dRêLtÔˆVhBÁ½g {k¤‚ªaæÜ+¿í°òÄ0FJG&žˆ’$mà%z 2ïÏtÇÄ2h¥gÄ¡¼Í:'‹Áè0œB_rÙÙÏŒ_eòÀn+˜Þ‘bà AëÐÌmq¢›Ìb@ÿèZÕØ¼ ë…™;)„ç:²Ä†²×“Q'îúÇû±_C[è£è2{ÒÓ–ÃËòáwÌ)RãTðºxŠÁ#™8ƒœÝ.uú«qs)!,ÄkáUò×#¾‘j*ÄjÏáÔ’°qÒÁ‰ËÁΚÑûÏ.^PI±ïd©„Wô¤+é¨M=kcYÕ„—ìq7»ÿcj=6Øg‚ìˆëÃ˳,ØCq+GQw]ú3h¹GóØ«ÞJ±VûBQ›M"!&²ö•ñ§Ü)á[Êí µÑA­×ÌÞN;³°7²£‡PŽ0M×%Ó¯^î°ÙRRôô+f–êQŸ"¤èlQk{Û ±XažÚ\¹ÞøZàŽVWm!H$öA*¶*!—ĸ1ײ‹!~“mH?²Mt¶¤âw©Ìï %ùºüŽÐ[ú€2\< ¦3Ä$Ös÷@ܾëÔšlMgêP£N—™}Öw&j9³OK?Bʾ:+a9͸¸˜©K\(s-`c;YÂÛ™â¥Pùˆ!{^Æäzy ”Œ#G7¨Îͨ HϺúJïkó9˜Ñìêéâ|`짺ˆ¾{µVü„-iMø²m¡ Ð Ïë÷È™;¹/ÒWEN%üõú6sB™Õ%Á®Æq ç!‰€†íÕ³iÑžó‹ýƒKÝ[dßjoª+ÔUÛšæŽÊ]RV“¦­¥;“Ç¥sn“¯¯Îí&§*ÜMž7³-×;£¾‡øzÎ&¤w$Iê‰xîwŸ^â׃îý´=íZõ…É8¨V¹w‚˜´gж`”#AY'½aŒ'¼n÷áîhó_þë*Ö¡Ÿ¼K)f÷/Ú P*ëï’åÃ÷È´wÿ‰eO÷¾ZM!²M †v"—îá ËX­¯Æº'Ó%ß ö¿ºð?‚—ÉäïNÿœ‚ìÛ/¡~ƒºxãyÞ«óäyèuOzGõ~Å‚bå*0Ì“CÏ›’ÏËOn{[k;a«tê"ŽÿFØ y…lBxkÖógý!q˜jäÝW«Ø®ƒÍh6¢ØåPá¦ç*×¼êÝrŒ¢¥a‰@”áÀ¬géh@ÔÌžXH³*Û`?³ºuÐ#Ñ6 ¯»s^Qqƒ9ŽNpSÙPΜ)Å™ðáG¢áƒ:^›@ýìÖh;jÒôØÃJø’ÍZ¡žèIÒº²Ô‘êÑ‚ç|« AoéÒ:Ÿ3Øú‚Osã|x.=Bal¥‰K´—z¸O`e #–ˆ¶ð·J| à Cvè×SSZâèá·ÆˆDÂqâ2uáhO7[Eò´øIHϬþ 5=€,² supKF6?ůíãPit„¬`^2(£å'¦G(ìïêŒÉFF5 š¸W‹Úµ>L§ò6ÙÜ/ß§ÊÂ_ÊÜá¤Ø9Õ‚…¾†tŽéœè½OW6ÆÉ9÷mÄÜ&ª…íï´”ËdŸ1/ÜÉ÷gÆ—Ô}L® ãÈþ“{fÖ õ­ŒZz‡^Ù®êÊíðiLÝþœmÑÊ5§Á™›KÔSZ{€Yx}å×BȪJG 2†ÆyŽDìFmU=Ž–¶f-8o°B¨­I¿S½DÈXÇôÂ(èsó<öÅ£ÃúÖéè³±kå౬N–ôø XÖÿhÌz‹ Ùæl\´ºRð¹h±qŒ\ _ÙÓϫۖÇ!BQQ¿= çû^uØá¹¥R@VÒÂs°Ò7Ö+2§°^ÌÚÞis.Wéí‹r;/‹ã­ +1r\ êÿ…mqâ-|2Ýj%ídR­õ8Òhïк÷Sa’jée'ÈäøÇLñ{› ü1Â/µr,gÿn yÖÊ0Ñ/÷¨Ó{·´bpÄOèVЂî={<­FdŒŠ8H°ßÜäGÏòî%è'›+É¥mëzy§ŠP …¿šlj‚Ú…*ROÄÈc®€þ\võ˜T7ã½gÅó/õ~½"ÿâMë*RX˜©8fa¨ãb,°C "¥J?íR“ÊK_ÌÚƒ~m¤ m~'QjرÅz·WˆçN(©·…zŠîÁŸ§g¥}þÌw§?%4‹`誩2Üžþ;À*¥&¿n¿…(áŒT@v¿,O›é½w§³.ëÿÞ©Ðþ±ª¢½[bÆW¸y¨•™øNͳQ¬TS¸Î¢;¥_M΂¶ Bû‰ÒG‘+÷èîö¸ÎC„ع³&×#†ƒ[=¾Çi—öÚÛU± ö[ñÛ,4/Heñ;.Ofd¨5BpXl÷¼ÅìêåìrQ°W1Te:|ñØ)%cß©èE Ëö ç}Áî&Õê'°«†P:Ó#ß’äJN5›æ§o4Ðtææ¨ÚÆI±›ØTóÑ×q¦‡ÁÚÌ4å¤ÅŽ–¬¯×ì~ßã±ÄDÛ¦i)w=Ð'8Ó·€W{c§û6Ö9ÉíèNuüiW'Ë’„dŠÄôšÊ”§Éþ›5ÒvÆvY÷ZŸˆæ?Ù dè;?HÖˆPÖª‘¤_Å\üpQò?UzV<ØÄó¼CÁü„ÈBÃåVPŠ‚Ô:}_:vqŠÙ– T¬î8Q´õÑî2À»÷o“­8.öþñ‰&§•V‚äOc=k¡ª­î.¸ìEåó&£þ£Ž@ÁñÐ Íæ!9$ùzR 'ÙBr|ü¢È”ÉÒQ†[Gq$›À’¢ÈSY]PÚ < äuô:ð´®ÔØ1o’Zj¼Y¾Y*µ÷€fðÂuæôU´‹´¶mFL$–cÿÞ¾;ñ$錾<Œ§îå´çðHY²m§abŒÇAÕ)ÅÁo»±(-Ï@C+ïÕþ ½<¢ÔxÁû‚ýçè^$ë6N„=+¾? ¹$ûáxfBJOwß·“5xmJ܉~ÜÁ¯‘ò!ÜQã20£k7€¡Ù™ÏsñÖϱ¶Òjrø‚§C«¸8¢õvÿ»|z›Ñº>3 D·È,`™]A@ðÀéW¡îÈtHÅ®Á= WÇ¥J¦z2(8×-Ô^¦ÈOÃ…~‘ì‡&\ÜÀMdx§—äòz©’‘–°˜âš~ßýΗzI~xkSú)¨=JE?ÐV‘½;Þ3!¾å!r`ìèé%ðÑñVqÓî°•küJËt’Äl¬†oétÃçñà™4sÝ ‡ÿøŠœÕª#æ‘™€ 5ô™š©ÝÁ#‹'ÓhÈX0X<øY0ƒ«àEEµžó]¡±už–ÕxM6©oSW®¢ÉvòH$N³ýkÈ^䇕b[j˜ëI9ðš‰Òt€HÉ€ÏÁUQ•éæ !"(GÌå1!¤•PáþyˆêÃ_aœÒG åÌ{Ž”QK8þ¨ƒ*U ^ì¥iÁ+ŠíÞfÃFcéÿMÓÏZe ÎÑMÖÂÝ?^%ƒþ¯sÎ3R7y¶(÷ªyv†FÕn$]>ÌœÇÕªvcTËb¡bç\„ªsö‚ÖS° Xo~´C<Jø¢ô¶è5qq¥öÞ|Û÷ôžÀðCëª3Y*¶èŠ¡n­Ëu å;¯£ræÑ×p`®$ùæNH*9wúÆ¡5öùÅX€Û%ÆÑ(ƒÜl­7,¿û%‡£gkCا_åÀgkÓ1fK»™ ã«ÕùÒbÈêí€KW™h«%I—à‹‹Ü*"ýñ‹½w*+ zÁNÊüTõH•½‡B€ÑÞÜ=׉¥vO нdÊÎËÎðñžYkÉ6ÆEÈo€ºW \/³v\N_AñêƒßyGÿ#È`Â3…¥>M¨WÿPû3Ñ„€±dÐîU%ÊÞøb&Eòf`º)Ø ¥:Îò8e“ò§®Emqp´Q>ñ‰ÈFË2êV‰6(üªÈf¿,mÖr‹5ÈLÃý'5¦lœÕ<_«9€V¿&ï<‡|Âñq°RÇ_(íÚŽáªK­vì…fü·¤T$™©îog Ö]É­[F<Ð;dó+hm/müökk;ôÝ'Õ×ÿ g¦UùQìwd{lëNhO<ÈñIZ)Àƒv`Ò¤¤f-×wžÆ™@´.-/0I&í•ïYRÆOѸ}µR}¦ÿ¯}>^uErËé…í^fìÀx ñ‰>éÚªà¨ÁŠ÷8XK&ÀË4+Þñ¥Z`€©êÊ4“ è0»èn Pû‰“Ì)Däq/e8›€€«ZýÃX!¾çÓrÅŠ‚8Í~;뇒¬‚¥§Q»'vVáìµÈÓ§T%6;,¡TpJX|¦ÈxÛ¶ÌpšOD²j$½Å6ãN¶p¥¥FaT“9µ•þŒÝ’«p½R\çä·§Ú÷ 8b¶îÄô“§ט’ŠÎ Ò7T‡-c´¶\Ÿ‹íô"Ë (Ã9ŽÕx Ä"°Xœž¢_«×*â£@‹JÕ?(¬™¿Ø13KKÿ½ï_G8×2””c ®Ú~›&uodVK¬|ÙÒL;íæ(õŠi¨d:êМÛ~)î³Ü uGÍ$œJá…ümFóËåb(Tc Ò¬ô™-‹ÄÏuÈÊlæäKÜ¢¡ÖDàþ­áÎñ´ˆáU"ÄžjU)›îÊ¿G\H ÜòFõ¶sÐ6Œ„°D G”}÷=Ð…¥qsÇì×R‡ŒgtŠcLäø3“€‚îÂ:¢¼rö¨B\²ÏEÍÕ j£pêw 4¬xt©ï®¼ËÓÛ?&ý—è£i>ÌpqþëþcÌQxåäÍ«GèRó+º-íâ•ÕŽ¾÷r4¡¢V¯£D¥¨õèþêq] Ì3K¯+ô!a‰-Þ9âºÿg¦*VVCî„h½Ú›ü3L’‹æc¸+_:ÃzÏŠºíÜN«Ae¤M}‹]^IÜìeráqÐÓ¿ %m:ù匚ìz½ªjVž`²¸©a-Óœv{sŽY½$tÀòèç¦ÿ²ï×  ƒûi›NW}ÓësëXEŠå•íZéÔÆv(÷ʰ/•MœáÖ3WÚ;ÍC ¤Î‚óôÐ:,ADÛQ’F‰ÿEäFuShò6mMœ·œ\¹IÐ h†ÑÕu“ýSi0]o½… ›kô3_¡ì!,ª|aÛ}ô½áßd ¢ûT?\ðx#„ÏÄq¿va ·÷ 6Ž5l˜Íæh#ã°ðn¹yiïƒUú¥‘Û™ª<ÑÚØÈú¾¨†ÂYd{Ìk«æö¼Î?ȹœÅ’–q‚Jeö‰”‡ô^ιOa~’XY·²D0XFŸ' ~®5ñn°²)¥ƒhDò-bÑcÇZ£Ï+tÃ]}Çhȱ\€¢vN»ÖòF7{GRSÉk÷9/8úŽv–žžËCPØÒî¼'RÞknnA×|½_éýW R‰!X^å¥UêèÊ{iöÒ&%hAZ鯄LÔG9ž1reöÒ³q7°ø öÛ/”I{ŠHw¨§)§" 8sOøhÆ”:Ô¢ø••ÅøØ£œá XYtC_2Å\geGï Î~Ž€ÃÈ竪ËM`Nþ¬îûXaiÜÓ~Ål=O[kZ?5El—Þ¶fzJ¹¶^™—ˆîZQ·IÊK• /þçÄݲàn#ôC8¬A‘á(vÓ2È œù,é>V1Â_‚Vâ2:Ü^:s ø˜…‘yN‹ŒÝ ÄC¾ê4ͶgÆ·ÛÈ*³«@F<µžšÜûmž'»¸dÇòtgB×Lë‚ÆL[=ÎÚCðȃ‡­ù©vª$Û›ý´Yä,ö°›+ß[àaÊ<è¢ò=cCKò{7‰û˜kÓ?¤­íx˜vÉ!KUüm¡Ý4›«LŠÜKt—tzÓwëàæûâdƒ3§ó:>ñ2Ƴ©ç©³©ä×…9Ãޛ˄ƿl÷>aä>Z"%åÞHzTï™Äî­HØK[Uýû†Ÿý±«O›;Øÿ嘃È;QN›€uÅ‚µŸi)e-‡™†çîù§vÏàã  Æ”Á²b«ýX/2ù™c¥œ¯.ôîÃq½à½Õ‹TÓâ_¥û«ì/»ô_ðçqÖkÚ^Ä+‹è¢ä¤[B*_T¸{.òúdÀQÍíW·Ž0dn©aÇtå$IGÁ¤wŽÿæ_º¡{\e`’§5z†aÎaõÉ}ž8†ÓÓ(y¥õH+R]e4.Ì‹dÇ8íå¿c.ÖØ"G$Ý•ùùL“Óv¥Ñ£G“äÛ: P†  A¹ehXã±R¨÷.cžo$¥zØ 3±Kû´7‹×Csjm¥üJÖ›hŒi™8cµØÞdRˆºH颾3÷—aÄ£i^f°¶Êù݇¸£ñØ“S;6ÃÆ…SÉèóqq4ÚñРeF&ûÖ£ÆS|~3–#´Äb-‘G@·éa5±hõÑÁô]x¿.Ãâñy±i¢G|(l¦ž9³IÁ“Šy¦Í\Ü ÒÖyw¿ä&ý–-ïÎHV8\Þt\„ïŽÄè¤äMÀôØIa b™õÕ„ý®üg{wh„<áÛ·?ñbš“·#&Ï;¯V#J–ýÇXðþ@ЀcØWÊoAœïÈð§]¡Ú ”Y-XÖnßıZ2Þp3‡>|}°Q:¦f§E+#Îè&òÆ’÷ úΖÃÇ {Ö­N*5†~R÷Ø|WöÊ£F¥¾ Öi ìp{h`×øõé`á#¸N#‡ÉoæÊ¬BímkŒÏÖKItÁëcHŸ«|(Ü¥)uŸ„ÂÄ áÞ89–"œ« Q úÁ¿D\$A´V µ‚ç“è¸SŠ2cœÑrWÉh“M6g[!¨ h®Q+¨:̾¤èMÝ¡Q÷—ߣÜ-~¡yy,ž9ø˜ß±§w íä’Ã;~Õ&Õà<¥(!†©*|¡s(”_5­I @µ‡9û;þòžêø‘»BŽN°ÜŸå~™#_n×; „_[Uj²Ù‘>Á™—<é%ëqÉXÔè¾ý˜J…Ú|)‡’Y/Å·Â ßX4W[0Žh³kt1ê39B« †K­òFÃ_×èäžÐÜ”jÌÄÿìâ;J›ÁúŽc´föió”ú —1?ž®}xŽ"D}9®N=ôU®r‘ÂIJ»/Ra_Oà¼JúEÆöBøõfÏêA¾~ԴꞬ5„XóBêÛ|òáµãæÊΨvQºq¸ a“C)Ù`QÆ¿í.–"åmäÑŒÜ5#ËÀ¥tÚÊ`àiPã2't²ä'éÉa{wõ”ˬd½G;ì¿Ò(ËŽ¦ÓDcŒ;´W hŽÒ|Ù¬ý$°»¸ec »R+2™[2‹±Íº-‰‡µ»[ÙX/0 ÍBž÷HŽ~\¬êí À§+Ã¥æJVm¯æezUXÐÞ©˜H"£¬Œìøxú{üÆ„«4hÂíSZŽ FÓ¾ rpäý¡/p«hŒõÈ‚dò²gæ~‚d°·üë2Ó7ÂïvN_˜–©ESC'œ“…,¥$''ÍVJhá1±dⱉ«0Y~£=mîðC&¬T pèǸÀÜOéL÷b’|üÌØ¢#œBO‚t×,b?¥KÄã¯8[Ò ñ;Q‚äÙl  ”̧œ$-ã×~4­è_õ =qXŠ jZó1íë%øÖ±Z"g±©Ê9à×ÚȘy*Zv9Õm¸ªúnNþ~drk-d ŸÒNžT.êPµï}ú[¬ŒÂ«A>Nþ^ 62ò9!°ÇM•ã·˜Ú} Bo®ðõd×ÍN¹'Ë¿ÙëÈi–»vã`€`.&>.è,Mí;ykÆ­&_½ÔŠÌLîÄÜ™d戕he—"$†€ÜIon^-“ -Ë3lÜ ÑÕÎì=48§U oñF¾ñ  I÷ÚRZ¿ÀÌ1½±‡éw‚zÒl×tWMV¹DДˆ\yÆ( ˜Ä߈(«øiY1í[8™ž!éH cÃþn' -úàRâ–•öæmPÀïtHUb\õebÂÒú¥™}%9Æê7/YLõÚ4dÃ"í 7Ó¿k Y‚ýUˆÄíà‚`Î’£ØÕ‡ùeü{g¾™mùÌæi6cV5itŸzÊý ±:¸³¨†Bùñæeÿ „ÅGÏ80H“Žt>SœvÞBÈ•ÑÅå‘fÂ-g‘§*1 ˆlÉU™wh‰ýÆ&K®üÙR9wÙÈ‘Xió˜ã®P³Š±`}Uå—¾a_ë-¦W˜™åÕ®œG¤vrYTî"+Zàlœ‰@·¸9ÚÔÉ…ÊÔ´ç Ï^Àˆ>T›íÐ9L*¶äù%ZH—ï|c¿†mf‚\QehA@ÌÙ(ûËèsR¤ z!vAU½šiî´MR"õ|ú\Ë„…“õ4Û«]ŠOÕÈ—¤RFÐ%z½"Ôrµ1V!sª:Ì“,ëý‹EßéÑÞžvÉ\/<>ôôÖ„¬`a˜;Dz©JzÞ¾•\_ÅJ~TC¸‘úl±!ŶÖ}yˆDÞˆûòÖ¹O4‰®~P‰cÓÿœóIo §ª¸«9^FC=ƒogcÙ‰ V|‚¤iÁ@ÔG$É|M:Oâ“/žv¨„h–[Ó_jÇs#aTf´"ÂUÔŽ`™dI »$Ý Hl7¥•œoXXI9±Ó!ÙÙ W)£ÍÒJ¦œ\ÿÔ/€«æÃ¯ˆÌºf‹9(œí Ú§ ÐÂx»…ƒiÖÓ|XÖ8oÇe3qå‚#S¨kÇ4‚]¾WäæÏ=¤ÑøÖ ­aí”Å K™«LˆsíºKnºã¯Oýn-¦çÃ?'yÌ®£i4e¥1“»hRóåZ½áhG©cZ´|¾ˆ+7¢Ã¥&˜T»?'-ر3Ê‹`.È¿1U<{šöÆu’BŽøÔ+ ÄÔe×HÝ?‡¤bªÄ°¡LM$—¾–‹[#¼šç:6“Þð.êÎÖè}’u¦Týÿ# ÆP(ÏNµsmÍ]ß`üyVnû’újb[¡BlhT:`v¹ñÅÉÔG^(6¼ƒ»Å™ú„e»+^E‰¤Â 4÷°À$V˜éÙ„B-B‚A(Ó›ë·Jk›˜Z2<ô§”zjVéþ$›\‡âpå–(`‚§#§úÈÐûr¬pØÙÐ%£'ÊoÙ(e¬,MQWñ2ÒK:¤­ô£•A¿L ¯#ârjŸ3_Ç×åø!X úMæ™°ÈL5¥¿~dDi¯2¢adÈ "Ÿ‘’Õ:ª™‚Œ:œ‚ŽYl.;°R6Li]æŒÊ“u¿ù‚á h¹9][º:ØêËf1‹?¼±qQí@ÅI)“C·—ùFì·[Ól{¸ÃÔØÙž±"y”WyöÒ±eD}ªcúÜøÖ4"—°¬pe½àìÜoË¿¼sŒˆæè¢ ÙSÉÀ´¸Ž@+ÖKßÃ$¡É=X¼Ø Çø†)L½è{öÐô u«c®>|á®_ÂìÁމ3Å»›sæPÿ·ê> c7giC©yŽÕÊ@÷’0Ýž3Cƒ=/)ŽKÓÕû,QVlÁyo,>µb#[‘oê}8ro*‘Üç16ƒ=‘| ZßAÜ?ìÁÝf úÅ|â̺ÑlÚIÂ…N·—kÛ ©T¥S.<ïµøw{˜ŸŸ‚^‚Å–4<Ÿ"û™–D$$¤›ºÆ=pŠ8¦n‰|ÎøFՃ܎j7°1å:”‹V ÊîÃg£²X¦–šH˶ݘ†ì†Ÿåø÷¨¯©7òw Àbaǰ#ðù±?ô% ²Üáþn·rK¤Á‡“HßÊÑÅÉ5SD¦ž˜ÖqíÄ!MtTÕ6p¡ö—8 ýzío8g’"CMt¥“ü™Hó€–!žiä¤ðd)¬—¡”í¬ÏåX0§lk$¬D³+LË #ø@I¸Y9Çn¡z¬à…žÿ^ás-6BË5A‘—÷Ü÷IÔiøèŠë¾«¹_W9z1Éú#Nøú¬_î¢w·Š|ñ„E‹ç#_zþÖØ‚L„ãÑÚšíÆâ'+÷¦3Ö£çw4¶ƒr´Ul±W/ j­ù}N=·ÈHõ(µƒºYÙ÷Ã$b“ëûï þ[åAÙsL¬E†mkÃ&X?ôR «§Ñ{ÐÙ• y÷«Ùн\út”eÏbpûK%©ãCñ3´×‡•j!ô7**¶Á¦±Å¶J}”öÀGÔÕpeCRœUbŠfF¢šŸ uêè_8Â˯˜õÕ–ý2pÎ>°aHÞ‰¨GßYuÚþéLú3û` Å2~вÔ"ßv+¿ÜfÑ£&à0ÏÇqÇDíê$éŒEk‚ÿxhsÈÙëÑy³KÐϹr›“ ‹v…òY^Éq=pDóˆŠøöã°û¾ð q9mfY„@ªƒ¡aŽ'€ ™;vJr‰ÉtuÏPûŽ{žÅ’ð—i¹ŸT|æñ+fQíÇÃ)^»ƒßœ âNqóéÓÃhù-{ˆ¬ÚºayL‡}²=§é>Smƒ–ÃûþùCEçè¹€s¶½ß"¦ •p²ú2œº€øœkÛ·"ÉP”põ£Êæ?xe¼/á®!0™…jaC2û[CÊ:ÈÎï´šF=G¾–Á@BÁð´‰l’{ç}칋WñF¥’T6(È<`Iöª)Ä¥î¸üB,(f®Â2¯Dò6ÔµÇð^ÑxYÚ:£EpLIãp†Ž£÷œK˜ÕÆC–hÌk[û ]„­á´Ä;ÿ ^exR}‰ÙÌõ&ŽÌâð–¶W6>çÃçCÇÅ¡Á»ZÆlý£ÓÜßVh¢‚H³£”¶œ<‰o Y:ÎEʶ—dA×'j gxQß] a^"TÉ lЮ6ÓMáª÷1PeÏN÷Äš9 :ƒ—߇ê›­¼Ij)p´g`4¶9s`™Ì.pߌdËW3 9LÌñÄ…Ò5³ûäN°ä¡½›X=üÅT ÀIün#8øûÁ%þóoâ=šÓˆ^Ã1ÒA(Sf´¤.ݲ—ÁŒže×#^¬º—×ù[º7z A,?‘‘,H\];ínP~;|fx8UíãkU zÚa,ê“<%,3]û;‰BIŽ«”QÄÁ"˜«/Ylª¿Žºô'µ>5Öº>¦0€f>-·[gÊ’]zKÑqr,8ŠªNVÁœ6Tä5m{wïÙæVD˜Dýd|Ñ–ùñY µ¯ØŸfLjö¯Ö·N ö‰“R‡¬–ƒ2ûäÁ¿â³ßßNÔuÆ wÃ@Æw‡a„|?U}-‡ÕèLüŽ온På±bù‰ÔÃÜþâñ-V{ ;¤˜Õü ƒøV8»#2°&£Í%U¬ŽBa½›º¿v p@9glu 4JŒhÿF ¼#­²Þ‰™Ìf £¨aGfgã,–JöJ!m5¸ªãs0ŒuHWÁº¥WÙxBrÉ’»åÿ[7¿“º“lj]¬±þv±®w3€ ŸÝò‹†ï8õ¿÷= u¯Êm®Ô´pÕÔNRxí몎ÀrL’³OûbsïOT_WS¥oò£´ˆ@PQm9k[ØkKNXÉÅíßg òÎ8.gµ¾ØAÀæ”å4ž@磵4ÙÖYpï;Ù…À«/ZÎyË´›E÷Çmÿu¨;(7O¤d¹òPyºÐ§Ïê©iE6e\\-Hœv÷l€iìGå3;XŠJo¦Ñ>ŸR •!§Òg©Ò:ÖØÜNìüf‡ð¾ ¢­ãçð§ò<ž6¬á&âM§ò’6ŠŽ‡Ãl¹ j5ãHQñ^0.ã. M3@¡z~%3ÿ•pºq’5“yc»M.4Å(bä<òÂ"ÝË…ÑNã«{¹fS¿!!Üe3Jââ9Ú*[JUü,æ4Ư2f3R~ƒ—³£é'—ðTpWjãÅQ%»´7(ÍdœøY9c"OÄR®Š„¬¾æ°F+K¥æº²ý]›¾ÇTqküÅtß4r0ÞÞrLÐT|$·ÚÅ„¿Òˆ½´Ne:`bÁt¿m䵌ŸG{5Ce—Òà÷U™«Áƒ˜&ªìî'%«-&­½ü‰fÙ^F„Gʰû%ïÿÞ·0¶³Î3­#ŒV\+E~dˆóêÀH!ÔÇqP-P{éªKW—*4ËVúB ÍS½ª%»² ækjÔüþÐõ V>wùô\ʽ‡>ÓP ¶šÒZbaás~½åÝךU%Ü\ô¤> a&¯‹¬Ð·™{n‰¡ïN” öªËràO ”0k·1´ŸÆ‹‰´[,—Z„,rŒf]ômEáþ3åñégˆÉ•É5m1gý€\ɯ%]o-вš{@j ë,=Ú²Yê$[tÈi‡­ã¥¯UzQc6ûï὞‘‘U™y'‘H‡ teç=ápÓà…[4£PG5â踟G‚$;|þ×YÎIUÉ„ÌËš*w°Ìƒ´ƒã±JsÎxÿW0æD«Lú¼TóM>±Ë@Ê 4‹›Íã• ¥@ñ9güÝšV{#lÎQ2ö#Ýx7êáÈ-Îî§)8Þ2éÊçsí¤…Ý·ÇNÛË-j¯ßì°Q²²¨f4Hº»®ÝT„ïeJfà@C„ËppOóë¼Ì…hº4B|ÿÁva•ˆ”§Þ‰A m…ö܃aVÁ墢çê<Ç®gëó›°›sÝ¥?D¶WÏɬÔàÃoÿ;*49ÒÆWúvÒ¬J6H‹]o c"öLšÅä<Ô³Ábkªqoº:xˆ*3¬[AZÍ,í$¸%KS[Ò'j]¤êqè@ƒâφŒ¢ÈÙ?i¹b­ÔÑ£ë'(â¹ðhqü‚;Æ) áˆÄHµé²h Ý2Ùm\q_¶ÿóû3~6Y¾˜îd4;GœÝ—tðtäy>¥$ì̼>$¶ô¿á®…Ys5gv´RjæOzq­‡¾€ÀÔ=P`·;g D±Ð½uˆ«{2Ý3Î&Îï°Ø¶0’@f ›²bT{ÆtýsO–g,j“l] à@—~Ôa8šÿÙü42D‘ñÓo„Ž±ì ²úÌÒU/×ÜEŽ+$øœß°¡î (­´®Iä¨ ß±»›¨P –+~=â÷ÚˆX ‡íâôêç^\W’Uâ"ª~&²(öP{@Þ0¨áæ¥Ózs\e#þÈd¦W=?•œÊbX?é;}bxe?®rm³?*XH†Òñ8 •*]•›€¦a!–î‰Rè#)›÷¤þ* Áyí¬­´Æ¤¹ø~úWÆÔ [þ*¾h&,¼Ò–he¶ÿV°µ;ÿ·OdÈb£Îýkœ*¹)@Â7ÍÄ{íy‰ÜîG* ý2ó±e#écXš E[¼ëUm\YˆÐàΜíV5Z™} È3ò—ZU‰Ä9°\LÊd-Yø*‰4~qv4©½ŸUnU±µÞ«›b…‰Œ²¦-:†`‹:ûƒÑÐkê;œ?<‚7&4ÿÌ»#@@ÖÏÇåˆé°¾(VûÁ¦¨‘Q0aÓÎ÷´*’¶´œ(ÿ=OΊ´ôuÐùÀR=»_±0Kß¾çqY¬ÙIHcn³‘%Mö_Ó{åOû²:Ž‹Û>­€í·òï[õ@“јY™×&¼÷óÎèÕ&&ŠJÜpU W™ ½[öÆÆ€C^Ƨjyì/ÅîýeøcçD§ÚÁîç…Qô;%òdeq ÔŽh¯Ç^ÕäSÔI4È™½®eˆÙú¢¤ôl¿³]Iú%nÿÓ£zO‰Ãhj¡ª–Þ Ž€ Ò­pá`æOÇëê¦;‡À´,€ #1¼ ]‚U_WÞ+M`Ë4Õ´Äš2Â<-)›Ú¹WiçÑâƒÎZŸ8b ¡ÿãçûgs}b5W|ßœ}f} (7È[6x‹]_£½¹RjûÕ‡šx îENžé®V`1ܯ%ºÄïZ¶iŠD~éºaFf0üxŸn Gê …C4˜i®(É$à.°ÏÙ„ ì‚Û®u äQSåwQùûÜnùTŸt2Èë|©“Q–gÅŒ¥`P(ÅÅØ7…%OŸ(Z©< ÆíéÈl‚ -”ûy­™mæôȶ[tͦ ¤ c rékA}þ3´D, ˆ—r ^OùF­€›¼T%+˜ÛËoÆÕÚЉÈè4AhFz"®Ã†D_P^/Èø$b‚[b%ó[ÛM¬å®(¾koèéB„€m„ׇEsœÖ2ÞŠT]ÌwT²+?9Ñýr¹Š/s…úû³dÁ}¡~‹j#ÌYçX¦þäå†{(ZŒqK8ãIð&IlÈÃG Þ=}Ǥ›¼Ð¿â7ƒ!«.l½:¬YÑ%¶­³)‹xƒàÚ%U“1±Å¡›#AªÒÞÀÿERé~Ô?_q#)ÏÇó¾Œk7V9³‡ô-…Tã32ÌA[,}‚¡€7ÒÖ É»é6‰@ç Ê@|fÈ]–8 ¤¤>ø7¤Df¼ì˜œ½‹poÍ)H_W˜¥%~ÇãÌ•·,.úÛ÷ãŒê f›ì¾vÐÙ¦DêÑX5ÒE[×G@VƼg rb…)«òüw ›Y°9òµ4€àžð0VùÎ{¿ÙÀR•vÉjžo›ÞXŽc,£8û‘ˆ#—dÕ ð²ã;kß~pŸÈçŸbÿ3tµƒÚNE(=Œ8võZäüg¯àÊLÛ¾X‰qíÉ ±'q.€é||s,½z|:ÓR7ÑóH(xc‰ÖÍYAY`ôÆÿwQ%uâÄ÷\¥NX2¦1/ê KM7,¡qoûÈ3!Övèýíᮥ'Î o«"Í}[¼®Í0Ï4$…C<4Þ+nI P‡йbltÉúLK§¹  ååRn ¯µv¤t~k¢ –Ã¥ƒâùº°HùVãt<ÀÒ_¦T‚íÏPÝ*ªgؼV)?ëI5NSJPƒÇÃz‹ q÷Ûkì§u.w̱§ë>"wš/òÚ³ÝãüßÓº¿ü*À<[Žïþ£h20TÖM¹äÙÒPûÇ5qÜ–%´x É÷ ¤3rŠ© jÖ^°ÝykypöyŒÊ˜ ™Æh ´%±Ü¬Ô.sŸžx¯½NJäløä“r(Rzá½T}¥¶ =¢Ô覡 |þ Ò3EWTz-[¡yI¸AѾõÖY.â!NÍyªŒ¥rá] ñª&ŒÎb­Sé~¸¼ tb)¾ f ÓŤWÃú¢{1ÕpñDTbWµ~röšs[”I1ÙüAçJRŸŠCm=n¸HtàY_÷™_ÔêfjÄ Ý]o²Âàš6~j‘ï÷Æä»‰J(+Và|tµìܸ8@§¼2†x/JÈÆŽGO111Ø%}®hÚ÷ˆ€ÉV“zbкìˆ7J–‹ð´J×racn…ép_}s‹/@\—¯p"³ÏY©-’&üY©K¯BŸçŒ`RÝÈžÊPÄû4¿4HJTß fñhèÁò í v˜<®l ¡îFÕÂ÷qY*߯œNÔëdL² 3jæè¼Çñ ¿œÊ™ƒ‘FÄÕLýPéVæsŸ­ðÙÚê{3ýÇì ȼJiéø|º<—®Èc¶ ½&rÛ •n²ÉÕ®bO°ÆîàvrfÇÐ¡Š™9±YãíJàTpHȳ¥ÌqƒìîZ ¨bËñ}àU*Ú>¼÷FûÒ´ÌП½|Â]1|ç«CŸœfÌ©Jë.ÚMâÛV-‡…Çñ±Ñ±Xœ\t /®8bÎoÄÅfKûXŸ¯0ŠVrÃ|Øì 4ÿŠðã꬙`sp…„&ù8ãÏÅJFônC%Cµ4ÿAîtkÃÕë¿Ôš®W2‰nÉUo?ˆ¸  Ao\ðÜ[˜IÔÆ8ƒ]ؔ͡„’šG‹˜ЩÜý^ÍmÕH(ÄLN¬"v´¯ O4•ôG—©OÚdžS tyÜv¬Û²>˦ÎeO“8kh-êG˜0ÅIÕúH¤‹€º¿a÷€Ò”*ÿ.®y¨Ëø:ó.?+AÛmœPfÁ²U5©Ù0¢Oº\£ZùB+Qëz£€þÈôS8I´S „Eèœïáßµ&¼.÷(S8Z™1‹ÆÂñ»s©/‰-·¨ˆÂó!<Ô/ýÔ¢u3ðz¯ ›9«&p¤ä¹´rÇ!êÀ {Y] «=ÀFHo€¯Öͱ 7w&?á$sD·U¯¯Cq½ºÅÙ ÕÇ*t¬íø…bŽý¹g(üÃãǦ~ïz)…ê]øy¨~åX5¤ß‘Kéø‹~DŒƒ+}½Q `¬‰ÑU²ˆN¨Ûp¡„·è'/·‰cÁ_÷ ;Üïi]–øù7oÀѾ0ʰ¼®ýtÖ~£ËqñKU†ðr%Í^ZSe4•W®¨g¿å7"Ä›ðŽö\¼pÕ@¯É2-tªÕâõ‘8¬>™_=Á[4êûQ8 á|DW,ÆÆú•¢ËTM i xß8¢u¨(\›QRøà ÅÅv<šMï¸y­8Þ»‹ƒ …™¬p^Vô‚EƬÂc0ÞJÐg(ÞèÀ´@Ì2á t ~šÙJ¥å’ë¾0_Ð}î3f9§yR9¦ˆ ”SG—Ñ ·..2‰K.:a[Q™pWǧ¤ÜF^m¢(=`©BøÊ“™Ù &Š,¹vXáxekàlqÀ+‚®¿ÎÛQ €¡…Ì,\´S“µ˜¨2 ,ÄʹH!_:Ž÷µ†__5!Á,<³x†”dÍ´å¹"ó-‡íÇ) hè+YŠ.°šUÛ)8ˆy¶]#}‚óBp¾GŠtUoö›€CI'mN~É<,“7 êjþÙžù²H U±8H|Íÿ>˜^¿|ÌÒ[çÒ(LDª)“uÛH‚L“‹t: l$ŽWgÖˆd¾“ZJˆùõV&ª …ìoŒÓË´‘Òf7àn¯Ä» FÖ 5 IGS®àvdŽ:]á u²eÞâà0Ù4”6/)]U³’Z,IW‘ðúȯ…\d3¼½ÛS¿øÈÀyBƒ½P›ûAþ³ºŒ'äÆtçÿ^¹¸‹JXʼn8¤úÎ]€hxýÈQÌ]T–È{UÝ…@ЇMjxÌqé,³kÎ3Æù§óµIRFd“­ÂØËËV*'þÍÛzT½ë.³^‡¦v› /`!ŠæÖÕä›­o©…Â\ 3þQÃ(4öœÅük¨©%i¬*v]Æœ ,Ég³qfX²ÈX”9¡=xÙrq›ºG6‘Ïê,Œ‚q¥/$HJ0w_Á}²)F›p|Eþ+üMS¼&,v¸„ÅL3î,1ú›'ô,©ŽùL!mæV™éúmêž í6$yL•c}–Šã˜Q Ç'3´:šž¾Cî•ò¾äÛwÑ⃠7ª;¡ã Ò‚àHÿ°/.q8 }ÅXðü=8 °w/ÚÆUS›`/Èkáñ*ãø,ÙNÎmÛB}Z÷<¬|«ÓO«6ö™Ò4ÍùµUDÔ1Æ~#%ûp~ÙRnÐT8­¹¼³ kw¤¦0«°‘_Lþ-÷à¡™õû¯ðcó6;2nX(—ÈüxúEše™–£™Ë×’þ8UUB¬Eº@kŠÙ­n­slØßH’ßÄßáiøQ²-§ºÌj;tI/ŽÑÇ™õQ¡‰'ŽãJ@AsÔÇE/ÓòiÄ6äñmt{CXLAF´‚Aó;Eršgâ˜[ëÈ'Bçíýè¥8g Ö³Åd ¨‹ØäœU¼h[«Ÿ žÐ¹|éVc³ätæÐ[ýsI ‚Ï"(¸oÈj-$ïf<ä¶RIÌEÀQÒÅÞí–fç¥çüÃ5€²¢Ö†Pù{î@\cœ‚dÚÖÏÛÅ,’G· Äç bmÍ/ üª 1ð¨\ét›£¦g¢gãµF“/**ˆ"C³JÞÜ!ÍQ ìåÏu2°·Á¯²c úÆ•$Œ€J`)pŒš€ÎaÉšT o5yâROFË©(æ›H‚]پ˛šÍÕˆá1M†ƒ¶!R'þÀ;Áû²Í9ëàÚr¥î:Ù!çQéeªuýhš%¹ú1ÆåÂ䥈m9¹W¤I׺(¹‹.fžöè]Ì»·,•ØÛ†ÞD‰ŠàƒúJ…õ­.Ðìœ^*TYB.³DWik˜â3Œ–»Y Ð;8c¨­ï_F;Xq‘¸[•V?~}»›:ʾ?sô» sŒ=P6—@³ìë%sËøÚ“B*¾(°™Xåó݇´¸5ÇÞG.›;0I™žáYQ"Ú@¡'[ˆ—JíCÞù a$>bBìwä~ƶv5T¸E†) ¾³ùk™(E¡ùÛùh€y"æ•{çÔ‰7¤F÷yp Y›üÌÕ÷·¨ÚwÌãƒ"ge6àäâòŸÐÑ…Kø_ªeŸ✠£;v_ åølc4|pm;}^Ñ`¦3}Óè®d××5a&è[è)º¢5EÔ 'ËÜái!åÖòþ.Nµ¶å,h@Êu¼|¥¦~ö»,>áóÂíF•·LÿÉp8`9vÁ»¸ÜÖåNý =OHú&¡gµö*Ä™ÄH¹2ÓŒŒJò“KAëPšïaìézÿ{îD‡'&˜†(IŸîÎÇ©+U{6}*áÎl´FÛ›JÞ ÄÄÒÇçþòŸ±˜}»¤Ï 3)/à9Üõsµ e]^†ä§½£ª¨ìÄVmv%_ޤf7Ô}ûD@v›2c†@WrJÖѬaQT ‡½æ2cè4I»µGèÚAÔºjýYìcÃ¥y®W eÞ­„ÒÉâ&Ì+qE¥(§·õm­P%§•ÏqtôD¼Ù,¢L¹žl‚³‘Ʊ‘;¥8ðŸøæï¥ž_pQð·²tú8¡È{æp¿ðw´Yã‘= ªDãJI5mvãG°…ƒÒ?ï‚ϰ7ø/¯ó?t&:Ó{Ìo×´]:(ëLGÈYÏ©].X+íGþÿ²¯·ýýÌ ¥Ñúï›Éyõ®é'”0¾‹°ã+±hí‡Õ01-¡`ŒÆ¥Ë¶WÅkôù%ë†J*Þv¸۽ë̀ä;ÖY- Ù#_bâƒqTòZ1òº›¢‰q½?+¼áûBL—R”z|Ôy 9h·nÅ´ùrÓh;Ê@(2å)Þ%·råÖåa@k*M ÇU~ECeÚŽaB1q)]YŠ…g4Eñ—ˆ±H¡KVèÔ?ëùÇ=µ×æü„¼¨†´§¯Mõèº@Uo)­ƒ¢>í½ºx憀“)´xnÒ4‹‚ŠÇY5Jôz ß}§ZðU]qVwÍ ï‚/Môpé/Ì()S©£FÓ'±L~ràY•ÐòO’l?øY^îÀát% ÃŒ¹X¼BN#¹ååÜÃõr®U•þ¦ã${É_Mo¡$°~ÖL¡é¢Úª&{ÔÀ ×:XÔä.—’Z:Éæ§|Ò@ƒ"¼!¤y ¤”­û?ò³æFK¹›%uB\ç%ËÞÊ϶o &.áè®}a›:sÌÊþòßnlƒ nÅ>© £ŸMèçtûËžŒFÌÁÙ(½NYÝê)M:Í‚Â7@4ŸLpèeð£ÅÁã1™x1átÙÄòrQ‘¤¾²ó3AÚc´²_ÆR!¶YC^üÔð%ì¤%gÞššÄ÷Uór#TÒF‚ö”·Ê%[õpÒ¨<©!ï èÇWÃçs(3¬×t70å÷JqŽt›ÁWgKïÌäÕE:~ÒÂòæh½®;}jA…Í̪7ðzØ¿”áMÅ&ý¥š žâ¼{UÅ¥‰ªw¿®× Þþ7q>Q*»Dµ of wÓÙ™,Ì„™Ï¤µWÅÇ®ÖAvÖæq?ì0§~éK1<õEòì¨æëls†€uÆoí×,„ãS9§µçdOÑ”B7ië[FRƒ¥äÜòPR:áÉÔ§˜¬þÎv”š+ 3gØ[ø«l4pɵ‹”hø@Ì„>Û½¿±c%+ëñ½?θ3=HKÁÒÝ´P=Îm{4ŽÓ‘Úþv$~èË”X¼… HT©>X!T=‚¬Š¯A¡›GqP"mvæ™ø=ŠBÝ-¡iÉÿ–Ø›3¦ùíÙBõ 5hËl,ôP|}üe*vŠì­·L þÜÞa®¬m»Ÿ£¤ûÂCKnl©ž37o»9«Î󨕖´•ÕfÌ{ò³îB/Gõäçfä¤yÀ±  Ü8ŒlZN@‚ :½ȳܱ‡:»éb—m”m3éV~£Ê Š3ÏÈ’ý"œ ßú’„©›š=TtgÆÞÞ¡O§G|!|ÄÚoøcغU.²¸'—ÜÀ rýY¹›ZPßñºâ]U0Omý{ iÙœØêq=ÕÓßÐ3’÷ÿ6®¨¼æx“X|×Lìœ.*ljRXÊŽ/,I5¨ÑøÒ}bå„V¢·äâ+2×üt|Ùb t˜ñK³¦|å%?å²ä 5·KäY³zhf e_ÌT„­#¼NMÍä±l`aŠ®yöQæõ6Õæx(£7öePŠPðlÔ½è™'òe›’úëd6òV”ÉcVå—¹¼?‰g¹<¿©:©“˜<ÇÕ(Rm1¡³·ruûwü)ÝMgÑæåê}‹gCG,¤8é0"©ž„ÔþÊáá.m4  ¥µ¬V¶¦YïQ#XMZ5j;Œi‡×§X)Zý©}î`=¨žlP~8“\ ‡…#5$ ¨¢RË;;½l¾zš¿ÊàÃÆÒ}‡DWæ7³»½9®ÿ4½.[õ ÐôÂ]åu>ÁX¶_]C& MûB…™QÅö5.y€ÓßëEûÎ%¬p·áÝÅ‘¥§÷æ¹½)±î×WE0>`¬hË¿öVžÉ>‘(¼++=nÔìfÕ€»ŒÐp~ùd³ºÒüÛá?‚Ñm£ÂÂ(%sçlzX1i'A q³Èî°W%&Eå gHü¥MP¢%LY…`è³Pèäóá"e-ÆÛ?¼sˆ>ø@qYˆ«ö¥¤Ù 3l/ØõsqÖuîOr SÞõ22 ?bÂŽ7[ÿŠË#‰‡R;oŒCKûpEÉÙ»=ãÙÇ"ºÇäXX°¯¡/mð(èîNýþâû`ÊeK§ø2 ƒÊâºP&¡ž´”õÒ‚ã~‰’b”3†• Ó†ù¨]¿¬W®z''_ ˆ3ô$þG~‰Çˆ ”‰b~ª€‘ ç”” ¸Ò ¤s®rB)ê )Ouд ÚÛ»g²&ŸUþ<³n¿×ÏND@Çw¶@E´^ÒŽ–ÒRÇŸ6¹²ƒ>XjñhŸç||‹‡±SM‘®lËÞªJTЦ©Žâ(@m„œå¥s[¾À®&óß¹Á$'KH~¥ðŸôŸŒ+¬u}²ÆïeÍqU›O™K™± Sä€Ð„U½ôûzr6pÆ ô¶¨{‡žšd¼å¥7’ ®°èUuÉOM¡ü3ýè&ÔàöJ·ÉëB¹¡5Cë GK³<ÄÞ€³U·êÍÔZ™ìÊ\ÏŠ§æÞq5•Ž~f¨‚í!M®ô#4!ÿ™¼¬-TÿŒ;©¼Lå{áÚÛÀÍ‹R Ø"ܘŸ7Uw²M°g©”TpÒ¡*(¦îÎÓ$i@÷ÈKûR N Šü›jɸ G8ï¶x£xÐööHÎS½Û4ÅÒæOGªÀ VáycCï>%õ·BK.äۈ짜¯î#=ŸN8iü5މ“žâ‰A‡\3ÝŽ·ø@ãW|RRlï, ξ»¯S@Stbæ¼æFÁpy9¶‘`æ¼f¶Øt5£Ï6[hî+´ý &†ìÓ‡ª³7pä>ÊùÛZ?6ùeô%G£> X~â]óuNp éȇCê s(×(˵økL”˜aÄcY£8QtSa%³uñø›[ÔñÕ°i›b¾ÑËÍRÎ0ˆ—î¼½±°máXh°Ó0ÿ&‚÷ë0ˆÙe j¸UÓ“•®iäwÈ è¶ÕžQ‰¥j!Âì•ád÷˜øúG×.ljœy–Æ’ÒñŸ÷°üeI?bfò¯•¶ÀV~Q@)4yV¼Z~‰ãí»Üù×)(xØý—‚3CÀ2E%ÑéDÂ*<Þƒã4°µÁ%p¥èBHÚADÌŽf$àþy™ =ç+pVRhwKÏxwÀ݇‰/Õ £ìÿ±öË»Ø{ßqV' 0EÆÁ›F7Š"hö{¨ñÑVìŒ".! Á2ȽêZÃHG ïU?)©Ÿ4¾…ßö~4§€ÒR¸;|šmUrkÊ=Û¼ˆeË!õ¢AøïOÍûNTcÂñÐöØÈ-k—Á0øƒ1Ç¥ qNr~*ºæú@áçêIªºu®îc Gí ƒËw«8‚Ûhß:¯éö. Æ—Œ¬ò]ñt»RpÔR˜_%H­€¹ÿg4J-øœ›º?î³bvi…únͰÚ% ûo0j)F¥dޤL¤\m‘õé'óƒÖèþè9â³udâª÷H’ùYó°mÞ ßp1-ÕÚžDPJ£ w&L†óœä&z}ø3#º]³ ëÒë×s&üÞ9&ÞÄ%ðWvû@-òé't!v(¨Wƒ£KÛUlÈÝP/WnÐÉ![·Ü oØafMsôoŽ–2.+‘eMô5’Ó|¦¿ÑÇÏÎ å‰îkk]Cuò× @®&Êý{‰À‚¿‚[X°ãáAd&ÕéÑœÙ媟闎Q•tuµq†: Á £Z¨Å]¦V`ÎåD'rðaOÔ©k(d¡Èéýö½{ª›¬‡Íãdy*Ka $å}Y¬Y]”læo4ÊwßLBú9BDÍÖ29AUgénÔÝwu gHå?±Ô4ý«YþYòžJ6½y37½5CÒÕÀ¢&ÔRøf½…7åu^ªÓÂÙ컥+¤Ž%€fæÒ~’*­tMhSßKV%»ùï®õ¸Û©»’ÞH,µS{yÏѪߊÔ&r0­·ýÂM½ŸX·J2:Ƥ¡€ò–HûB~<,ëà{*ùŽ„æËw¯Â„»ƒ¡tò:Å–Õ Wë”}c „ÁÔFm/냅¨ÌG»è'–8 ß`­M+üE{Ùê‰l½%NPaÈ7jäØß}è -[n96CÀyªÑݱÂùNÊE¿`›j—Ç´ ´ Þ BàhËç7V<ЗU_+²)×°}‰Oë°{3NñþÉÓ×ÁF/’ñ°‚ØòÓª´tÔôw"„|ˆÉÀ¢.û}p³i·î4J,{9¼ç¿\ÇrbÖó†‹óàO7¨PR.šÖû´ö:q’_Ë÷ !‰9ÂtE=9XwZ¦ÁœÞwRkûs•s0g \ÌâÁŠüyfŸã­5éÈ5/ιZ)KfìT“eöÂ"O)ì1â0ûù)8S¶ÚiC óø]vGTÃzœ$NmlÎÏ£ˆ *“P~’Ípëvý'Åd ±q9J7Áê÷~m?Ћ•UÞ@mf´Ï­ÝWí…3ùðD"¤Bu$[ý!þÓäX/T-5;(m”/rÑ·¥ˆ]…¨Æž+ˆ.Öx‰2P€óüqlF­liñûsYæâ]¦…áQ³ÒeD–J #°Ü¤HàAæuôoâ Äkñ<<ÉbJuÀ§Ê:sª¿K±%…Q€m¦¦ât…2ö­cMJüfÒužý†ÃþRBäA¼åü?%_Ïû[ý@Oh"u¤º×§sˆ(ÝhNkNYQ)ëÓ².Íá\e'FViå*j¾àiÅÓ36§')§èmÕÚ¬h) êh˜:h¿.À‘)Kk#t3rÕi=*P9O¿0-|ä l štå¢èÔþ^Ü@?m¤cèuÛžº n8¼ÿÌù‡Œrôøe)ß:žFðàü'j–Ô߻ӂڒn„>ÏZ½O´‘Ü.J«sì=ÞáC2"d80&7uìݦp~ÙV 2FP¥1øCu-Ðlóà©-i1¤§íšÿ X—nv•j¢ôY®E@bPƒ­…î‘/³h),¨8ô Ùw Ù =-yÃ… Œ °»ŒÉÀúfƒo“qf÷˜z2´R[¬L²æ4œÅ‰¬£‰qŒ—M¨eŒìábò@ Ùd=F vÑ’C…z„R¦Wݱ£QÂèªj­fV.’  ´ù¬3÷^ÇÉ¿~x˜^ÜôåTþÖû̺« óñ“¿çó™]çЉÚΛ»£F¬ht¦-üD¸ÍõW€f}rJ_xMLdv¼Ø°qç¼4Ð;\NÆ–Ç•aº¹‡áhÇWF-]#êo˜ï½RI¶ÞŠàŒƒ 7ükbû Ôj!,õà87ç&\3œNØÊ=zËEI ñ‹êÆu†o°’ŽùÉdR7.,ÒÀ¹‘V¦ªÞpVø]¿ÁDÄšNH¬›]E´NªÅ%i´§PÇ"¯SÔ.ì)©Qh³‚W¾õ›Ø¼éd9ŒîÖ|q?蛌=ª¶®\¹j7ÅîäžñC)kÁ†@+; ÝmÙñ¦^è¿O?B'§ŒÃ3],ôuKÆO?pYŽ‘û‹fð?y¾m3!·†Y7Vìt¯¢Qœ{M!¶8:Ön{\ŠˆÑ°,V’úmÅÛº…zš$sa…-/{Ì"óxPG |¡Ü‡GLI¨+o쉛hÍS°­Y¿ÈPêI€í©=ÿýž¨*ñ¨öž¹n3£´•ò Ÿ¨›šÐå§—Orp$pÐúäð ¼2;µ<Â,¶ê¢iv;Ó‚6³}9 €ÏËbùàª[”_Ó­ÀÁpûæùm]Ps½Ê™ßY8âý6&Ÿùb „!y€ÄáPxûÛò)ÇÃŒâ%¾ºv¯#™¹K¼ ±åÞiiu2zdóvÒkZvÜ ü¥ùíi4œ‰©n¢h1ÀsDÏÛoßwvÏJïN`rŒ¾Pvr„ûÈ¡VÛôŒ¢c]×+ùh\Vm“çMùÛHŒ¤r8Y{åQÔ¸ë¾åOšXŽ«wî§@ÍL ¶zÍ\e­Ú²éB(5)2ÍÎíG¦“ƒã©ð÷û„ê´»€WÌO’ÌùÊ¢ŒŠCñAKÑXX®¨ ÚY­ßCp6'ÉÚE-Mò!l‚ø}v¨ER5Oñ“Êš7ñFÞÙ> ÂZ«+¡¿'iéÄ'Ák&º/•¾µþ“g ¤t›|xÏð4{¤'0TÈíò/}~[ùëõ“¶Uφ£Ñ ½L]˜œ·2[Ö `x§zίp`!<µ¡‰„Ø) „uPèµ~ùJ&C®y\POü¤¯ÖØ#äñ¨§iðr6‡Ç \6JÕ;‰µÐb›W’=wÁoía5`Ú0g¶o2™ß,ŽlꞸ<ìL>r*]ÐgZWŠíWsH‹lÞ}VCæ]&U(„³@OÛ‡Ãÿl(Ï™ŸjÓTùn®4m©í¸tSÙãùþPßónGÖE/ãN–,Y ž4„¿q×ãô$w„'hò·^Qü“´k3 ŠÆ#!ñ¯gï3vøÕ‰”BÉ™ŽL‚¹Ruáš™þwè3â·ÀCs[‚ƒ³ øTó®O ¤ ¡ºñï'@*/¡[öOL$ío::Å;ùþ†Šùä}Ÿ}UPHˆ•?Bn-; ÍE1*€uô¨}ª÷q[“¿Cñ2@TS„ãmp!óvmxo*©›RxÅ‚¿çí긙á²L'À9ãOü|óŠç!j—Ûüí‹IV·£â¨Ÿj”\U@X·ß4KY+[µ½Sý§²9gÔÒuc B»Ob1ÉÖÚ'âgúgGÙ ¬ö¨¬u8#º 9p{_ÝMÞ]šB%#6 F)±lÓE˜Ü¡Åt ÕìÀÀŠ9BÆÌ¯ÔyÜôFÆûŠŒØÛÚt»¦>ÕÀY@’[£Ü`Ö›BZp2ÚuÎ,dhLˆu÷5ÜŸ‡{féx˜ßÉ.¡5~ƒfO5]ñ¡ÈÐ¿Š =+¶ûÀá¹,¾¾ˆ‘2µô:È&>¼ ªûð§ÞÇVà 9ÛYE_\°Xr¦œ$×üœó›O~d’4yù ½ˆ¬ñ@ÿ>^‚¸]öËM®Ûtäæ?éÛ/Lß÷/ßuºõs¬°zþ¼ŒW¨H’æûHó½žÏŠ.7½Ãøý‚üÒÝ¿Œ:éo@YÇYªó’LÞ0n!ãðø«ÀÇåäM/kН ÞQ‘“LR<¦/á¨u¥5ô•Cé{DoÈÍ»ý ðG‹«B­¦k!þ›0AHr°|Cˆ:´LóK¢‹80ë5=çŽ{àúƒã7¿ŽË™ š¢Ÿh§h!ÐŲ —â £%,GEÙi¤”Lûžü©ÿ}ãè-¥þGë)Tœâë;…†bj²>@â¹')_Ød¼ÖÊm…Óeì‘Êð­ÃµÕO‡¤m´ÎŸ¸­ÏÑ´"@÷.²/>.{ÿS»LvàÆs è2Ü’”;¬”µN9hèþööºgˆÒ+Ú’‘›ìsñº£Íßÿ„C$ÌI© Qp"%Øx³¼tØÂAC‹T·):mØê£sàƒEvØ‹“M"—ÉߺqÚÃSJg€_ܼ†^rjgñ6ðé0DÓ) I\H`š…±ÙkÊ €ÇVç7Má;ªà%‰p®ÌÉ$q§à ðÔkMèB,‚x¶†é‚`ÆŽÞóŸµÅ30"«ne¡9Æ+³q CÂdág÷ï .Ü×@*ÓR`R…˾èKá5e½Ö‘E§š¹ëô ãä¨ç‚ðÀfüæà.ÝëEÉ·Ë )”ŒŠ hš+XxX³¶!Êï+PaŸ¢üÙ™©øc:,k}"’=m(ø6ýâsU¾Î82å g¥Ü­ˆ1QbTø¨ï&oKÎú>„ÁÆÛq-ö|ŽýœÍô(ÿbÐù¶‘àPºdâ\\3Ô±n»‘6U¨(pŒÝ.Þ½Të®ëãjé3ïEÇ\Ø'/µ¨Ô¾ÌÙ˜ËX;œÆLÂÙû\ö‡5Ç_TA•~Ü¥zœYá¹ò¯ÖPÍEAF}C¨£Eø"u'„8‘ ON¾‘醑X¯ì¨ž3qê—‚3P p+ýÓ·ÒÝû`]"q\牢89mÍ[Ò]Q(=={lß`=.[jbSô€v¶’ìï¬eáÃû ":ÉŠfMJÞß{t=»@%‰Ýbú˜<šY}"ÿrõÚ£ï2IT1úYz˘hsvë´é²ØÕ¯Eðf'Dì¶Ì½œãhó"ú6uñ8o? Œwˆ(Qö¢uP•0G@ðÓu?ÅÞîÙ8†`–êšK¨…â;l  #õ±*v k£çwÈ6I×î–âêi—=J e¢ß$MÕj 3P]îÑd–PHµ‡ÆMÅMêݾ˜Ä•}ú.ê›~èoƒìSŸ‚³%û_0xe ‰®TŽþõÛ‡éÅ¿‰©°ˆ½žÃ¶¤æ¾+&Îzòø&T^oæO(Ð/È$>SfÀf1‘‘ر ÌÅçÞÕÉ4É[½Íœ`~í>ºÙ~êµ.5):ü6ª%•èG:À]lD£\²|£vP0íã¨@é¢TU è+|zõâ¹üFD¯¢J’™»üLe¾U—¢úyJšÔ#ä?'ÖÌmtxg“uM E0…R{Y4`´Mp4 :ãÛº6'oÌZSŒ´YÎàs.ǤŠÛKRíAJÔ4p)%ùài&¬–øªá¹ yÞ¨æ š8ìUo‚´öHr_»´S3Š÷íè=)\Véó3 }•*7›fã`À¼á[Ù`&ÎÏþ¦× ¢¤pY•%J¥Ëþ‹tAÂ_ÊLqXú(‰|¤_”âþ0±ÙïNþ1š6AH(´}„£Px-6-nd¬îІ#>²I2û— "$ŠÝ €«}—ñ!,°‘ÖÎÅ7¹O(Ìf—HdQì(Þc£@·-õ·3÷´Ãæ"”E_òµÐ"˜MKïdY,<â¾OhYYRA¡«8p.ÜpVáAz q5y¤0ª¦|³,"]ï|èŒeÅÌp*û¶º†LѯlcG?pÊC»5ã>¥lÉUÏÞ·Þr¶}Ã9Tz3µ\Š-0[GFÍŒ8n$4xÚ*A».Jµ‡oT]¬+AÂT!l'~ŽT±KÚÝr&›rI‡sD­Dý—éŒGgê>`û‡_…í Üj5zg¹ÖýUÝq"ÒøQ F%r™„ðñxŸžÎ%Ú‰µLZ£˜Ôycj•9:!æbxâjnªé¤Öð Ô‚õ`î94ÏtÄG±5¨¯Þæ*Žg)Û3M×6Än$ó×Ξd[™>=ýEåˆ÷ðΧFF =U2…RÓ{í|¦ÒûWtú£zD‹RKfUßlÆ%‹›¤šI3K7[û”)RÅòÒ·2IÄ0i"*T½-U3H9l`×ÏX§¼Ì}f ¤:ß×ÏZ®ÿðs½½ a)—³†Šª¢·Ëî­ñNÁë¾I;,p˜ì@õˆ”‹æn<Øópßn`ÇÉÀî´•¾ÆÙ ©ËÖ$ÂL„Å+…ÎÉRém/ãK6*@£ÐÎÃ'…Muz%ÔPY“ðsbñÅ=,àÀð(îР½*ƪª¢Ÿ©iØ.Ã*¼hap$ÜéD¹ªÕ˜1 2tÛ™M¼à‘ÙŠü‰wJ°ín¥ Vˆów×Nô .f<7—›°ºÅwŽ]…]m†µ"u(”Ãgði-•`E Û(ÆkµÆ©þfúf_².t}kñîÒ ,6¾>Ùþy¨‘‡±Ê]d8L/R–…ùŒ8š<áÔQ] t-ËÝí<#’js—k0†Õ–ÓÕæ @|Hœìr'?b‘%ke ~"5vCCm;m¶í!.+•å‡QzvøÿfFËôºÔGQóMCëí³’ŒÉìÜL§ÜÁG‹Ôƒõ¥¡å´IFXÛY®y@StàÍ_}Vì`k[Èf½êá{$i¹u»%“¯$ 'ºKüzƉª8òQ›HX„Ö|~ŒYsøi«}8-¹°Á…EÞ×”¿aõåñs«(ÃØ¨å‰Ä¤ uˤ)щœ×€AÑ»Òü¤x—ri¼|¨ß¼óš·'R÷©£Î¼ÌÍß(ðù<^!ݼ÷ç„;tâ‡aÙÏÙ,çvâ"h×ðͤ$¢ÌJ¼ÔLxõäüÂ~ÞÜ?$‹6Wr›¤wLùE©y„”OoSyôÙ5‘ÖÚ d|{R ¢kËþX4¯é¿Þ¸]™gâC:©x1hµçÜ‚«!-ÿ‡ÉVUP%ÅÑ6é˜ 'IJ#-v«É¿GÁfû'ík²ü‹ëùš" Ane"c§’Q Ä|ZêV)XÏAx“ªÁíp:Û‚pY,ž§,cƒÐî|“†ÂÊRº2‹ÍÈ=ñÛJ—ÀÌ’¤¯ôh(KÝÉX´öb!¼,0^IHçbL8Êoz¤ñU/7SÇNâQq÷OÈðÐÝ:­æ¾®A@…ôc0¿™×e%Ãi›BðÄJÑ"óÔúËúM f:d‘mL§ïh˜ ·ÊˆŽb˜Á1z X|¹¿°oãä‹YšÌ‡ÏºIÕ.RA&g^4f.FXÏè"2åBÚÂ?^m|Ág/À£€!]Àœ•ÉRœEq¤ €ÊÄŸ ‘òlùŠÛBv_EÌ:aʶw"BËÞD@/"P:€ÈwÅÿ‹R2Q`œK9$76XÒäs´óîE•âPæ¸$øÇÎaPü¢È#$í4ÑÂ+$›&)vdçSðÆß3¾D `{ËݵŸž#kœS$ªYÚ\Oú:oDÓ‰ˆÍÓOþ~{Ô_•›ŠÄçÝ„V9aÎG]ü–Æ«í&ÆŸùÁ¸ÌNmiðw£C_Y-²“¶ö9è–väZÖÇÅåMX<1 ¹+:Ý𰀺= CK\0üìhã'ÔC5¹në²AXì„ùù4HwäƒÜOÜ…à»XñãƒòIÀÅ e=†õúÃ÷ЌԥaÕx;ãòBÖÚ¢sÕáúÕ’»½´ ¶¨¹Yfäaªly˜KÁôXY0«±­Ò˜-Ϙñº_ápr‡Ë…Ö†êlÕy)2„Z$ÛäVôdŹ0ŒE¬^ñÀ0ÒÙSŸm^ø#ŒuhE¼\âo\…n]@iØG€üŠ:«‚çEÑ›–DT:‚<Õ´YxóBUÍ[^| Ö ÅR?VoˆTÇœÀVUî±TØWÛб W…5€œI¬(®1¸ Vîø ¿¿‚×ÑS‚E=Ÿh ±$0ŠóXz(+`±+å…õfL•[²çtipL‚f÷{ŠæjÈÚ Ø3“±?­HÁzj xk¼pÔ†Ž”ø©'—ê˜u†€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n019003l.afm0000644000076500001440000007602307056046552016421 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusSanL-Regu FullName Nimbus Sans L Regular FamilyName Nimbus Sans L Weight Regular ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -151 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -174 -285 1001 953 CapHeight 729 XHeight 524 Descender -218 Ascender 729 StartCharMetrics 316 C 32 ; WX 278 ; N space ; B 191 0 191 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 208 729 ; C 34 ; WX 355 ; N quotedbl ; B 52 464 305 709 ; C 35 ; WX 556 ; N numbersign ; B 14 -20 542 697 ; C 36 ; WX 556 ; N dollar ; B 26 -126 518 770 ; C 37 ; WX 889 ; N percent ; B 29 -20 859 709 ; C 38 ; WX 667 ; N ampersand ; B 52 -23 637 709 ; C 39 ; WX 221 ; N quoteright ; B 64 497 157 729 ; C 40 ; WX 333 ; N parenleft ; B 73 -212 291 729 ; C 41 ; WX 333 ; N parenright ; B 38 -212 256 729 ; C 42 ; WX 389 ; N asterisk ; B 40 441 343 729 ; C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; C 44 ; WX 278 ; N comma ; B 87 -147 192 104 ; C 45 ; WX 333 ; N hyphen ; B 46 240 284 312 ; C 46 ; WX 278 ; N period ; B 87 0 191 104 ; C 47 ; WX 278 ; N slash ; B -8 -20 284 729 ; C 48 ; WX 556 ; N zero ; B 43 -23 507 709 ; C 49 ; WX 556 ; N one ; B 102 0 347 709 ; C 50 ; WX 556 ; N two ; B 34 0 511 709 ; C 51 ; WX 556 ; N three ; B 32 -23 506 709 ; C 52 ; WX 556 ; N four ; B 28 0 520 709 ; C 53 ; WX 556 ; N five ; B 35 -23 513 709 ; C 54 ; WX 556 ; N six ; B 43 -23 513 709 ; C 55 ; WX 556 ; N seven ; B 46 0 520 709 ; C 56 ; WX 556 ; N eight ; B 37 -23 513 709 ; C 57 ; WX 556 ; N nine ; B 38 -23 509 709 ; C 58 ; WX 278 ; N colon ; B 110 0 214 524 ; C 59 ; WX 278 ; N semicolon ; B 110 -147 215 524 ; C 60 ; WX 584 ; N less ; B 45 -9 534 474 ; C 61 ; WX 584 ; N equal ; B 50 111 534 353 ; C 62 ; WX 584 ; N greater ; B 50 -9 539 474 ; C 63 ; WX 556 ; N question ; B 77 0 509 741 ; C 64 ; WX 1015 ; N at ; B 34 -142 951 741 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 623 729 ; C 67 ; WX 722 ; N C ; B 48 -23 677 741 ; C 68 ; WX 722 ; N D ; B 89 0 667 729 ; C 69 ; WX 667 ; N E ; B 90 0 613 729 ; C 70 ; WX 611 ; N F ; B 90 0 579 729 ; C 71 ; WX 778 ; N G ; B 44 -23 709 741 ; C 72 ; WX 722 ; N H ; B 83 0 644 729 ; C 73 ; WX 278 ; N I ; B 100 0 194 729 ; C 74 ; WX 500 ; N J ; B 17 -23 426 729 ; C 75 ; WX 667 ; N K ; B 79 0 658 729 ; C 76 ; WX 556 ; N L ; B 80 0 533 729 ; C 77 ; WX 833 ; N M ; B 75 0 761 729 ; C 78 ; WX 722 ; N N ; B 76 0 646 729 ; C 79 ; WX 778 ; N O ; B 38 -23 742 741 ; C 80 ; WX 667 ; N P ; B 91 0 617 729 ; C 81 ; WX 778 ; N Q ; B 38 -59 742 741 ; C 82 ; WX 722 ; N R ; B 93 0 679 729 ; C 83 ; WX 667 ; N S ; B 48 -23 621 741 ; C 84 ; WX 611 ; N T ; B 21 0 593 729 ; C 85 ; WX 722 ; N U ; B 85 -23 645 729 ; C 86 ; WX 667 ; N V ; B 30 0 645 729 ; C 87 ; WX 944 ; N W ; B 22 0 929 729 ; C 88 ; WX 667 ; N X ; B 22 0 649 729 ; C 89 ; WX 667 ; N Y ; B 13 0 661 729 ; C 90 ; WX 611 ; N Z ; B 28 0 583 729 ; C 91 ; WX 278 ; N bracketleft ; B 64 -212 250 729 ; C 92 ; WX 278 ; N backslash ; B -8 -20 284 729 ; C 93 ; WX 278 ; N bracketright ; B 23 -212 209 729 ; C 94 ; WX 469 ; N asciicircum ; B 44 329 425 709 ; C 95 ; WX 556 ; N underscore ; B -22 -176 578 -126 ; C 96 ; WX 222 ; N quoteleft ; B 65 477 158 709 ; C 97 ; WX 556 ; N a ; B 42 -23 535 539 ; C 98 ; WX 556 ; N b ; B 54 -23 523 729 ; C 99 ; WX 500 ; N c ; B 31 -23 477 539 ; C 100 ; WX 556 ; N d ; B 26 -23 495 729 ; C 101 ; WX 556 ; N e ; B 40 -23 513 539 ; C 102 ; WX 278 ; N f ; B 18 0 258 732 ; C 103 ; WX 556 ; N g ; B 29 -218 489 539 ; C 104 ; WX 556 ; N h ; B 70 0 486 729 ; C 105 ; WX 222 ; N i ; B 66 0 150 729 ; C 106 ; WX 222 ; N j ; B -18 -218 153 729 ; C 107 ; WX 500 ; N k ; B 58 0 502 729 ; C 108 ; WX 222 ; N l ; B 68 0 152 729 ; C 109 ; WX 833 ; N m ; B 70 0 762 539 ; C 110 ; WX 556 ; N n ; B 70 0 487 539 ; C 111 ; WX 556 ; N o ; B 36 -23 510 539 ; C 112 ; WX 556 ; N p ; B 54 -218 523 539 ; C 113 ; WX 556 ; N q ; B 26 -218 495 539 ; C 114 ; WX 333 ; N r ; B 69 0 321 539 ; C 115 ; WX 500 ; N s ; B 34 -23 459 539 ; C 116 ; WX 278 ; N t ; B 14 -23 254 668 ; C 117 ; WX 556 ; N u ; B 65 -23 482 524 ; C 118 ; WX 500 ; N v ; B 10 0 486 524 ; C 119 ; WX 722 ; N w ; B 6 0 708 524 ; C 120 ; WX 500 ; N x ; B 17 0 473 524 ; C 121 ; WX 500 ; N y ; B 20 -218 478 524 ; C 122 ; WX 500 ; N z ; B 31 0 457 524 ; C 123 ; WX 334 ; N braceleft ; B 43 -212 276 729 ; C 124 ; WX 260 ; N bar ; B 100 -212 160 729 ; C 125 ; WX 334 ; N braceright ; B 29 -212 262 729 ; C 126 ; WX 584 ; N asciitilde ; B 75 268 508 438 ; C 161 ; WX 333 ; N exclamdown ; B 121 -205 205 524 ; C 162 ; WX 556 ; N cent ; B 52 -120 510 628 ; C 163 ; WX 556 ; N sterling ; B 26 -23 535 729 ; C 164 ; WX 167 ; N fraction ; B -174 -20 336 709 ; C 165 ; WX 556 ; N yen ; B 11 0 545 709 ; C 166 ; WX 556 ; N florin ; B 11 -212 542 738 ; C 167 ; WX 556 ; N section ; B 43 -213 506 729 ; C 168 ; WX 556 ; N currency ; B 67 133 489 551 ; C 169 ; WX 191 ; N quotesingle ; B 48 464 142 709 ; C 170 ; WX 333 ; N quotedblleft ; B 48 477 299 709 ; C 171 ; WX 556 ; N guillemotleft ; B 98 106 455 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 91 106 243 438 ; C 173 ; WX 333 ; N guilsinglright ; B 85 106 239 438 ; C 174 ; WX 500 ; N fi ; B 12 0 436 732 ; C 175 ; WX 500 ; N fl ; B 17 0 430 732 ; C 177 ; WX 556 ; N endash ; B -5 240 561 312 ; C 178 ; WX 556 ; N dagger ; B 38 -177 513 709 ; C 179 ; WX 556 ; N daggerdbl ; B 38 -177 513 709 ; C 180 ; WX 278 ; N periodcentered ; B 87 302 211 427 ; C 182 ; WX 537 ; N paragraph ; B 48 -177 522 729 ; C 183 ; WX 350 ; N bullet ; B 50 220 300 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 64 -128 158 104 ; C 185 ; WX 333 ; N quotedblbase ; B 47 -128 300 104 ; C 186 ; WX 333 ; N quotedblright ; B 49 477 302 709 ; C 187 ; WX 556 ; N guillemotright ; B 98 106 451 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 104 ; C 189 ; WX 1000 ; N perthousand ; B 9 -22 993 738 ; C 191 ; WX 611 ; N questiondown ; B 95 -217 528 524 ; C 193 ; WX 333 ; N grave ; B 22 592 231 740 ; C 194 ; WX 333 ; N acute ; B 92 592 301 740 ; C 195 ; WX 333 ; N circumflex ; B 20 591 307 741 ; C 196 ; WX 333 ; N tilde ; B 5 613 319 717 ; C 197 ; WX 333 ; N macron ; B 28 631 302 701 ; C 198 ; WX 333 ; N breve ; B 15 597 316 732 ; C 199 ; WX 333 ; N dotaccent ; B 115 612 219 716 ; C 200 ; WX 333 ; N dieresis ; B 30 612 296 715 ; C 202 ; WX 333 ; N ring ; B 79 579 255 754 ; C 203 ; WX 333 ; N cedilla ; B 39 -214 287 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -35 590 348 740 ; C 206 ; WX 333 ; N ogonek ; B 57 -205 265 0 ; C 207 ; WX 333 ; N caron ; B 19 591 306 741 ; C 208 ; WX 1000 ; N emdash ; B -9 240 1001 312 ; C 225 ; WX 1000 ; N AE ; B 11 0 950 729 ; C 227 ; WX 370 ; N ordfeminine ; B 37 303 333 742 ; C 232 ; WX 556 ; N Lslash ; B 0 0 552 729 ; C 233 ; WX 778 ; N Oslash ; B 30 -23 744 755 ; C 234 ; WX 1000 ; N OE ; B 43 -20 959 741 ; C 235 ; WX 365 ; N ordmasculine ; B 40 303 324 742 ; C 241 ; WX 889 ; N ae ; B 34 -23 845 539 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 178 524 ; C 248 ; WX 222 ; N lslash ; B 0 0 212 729 ; C 249 ; WX 611 ; N oslash ; B 18 -30 529 539 ; C 250 ; WX 944 ; N oe ; B 40 -23 899 539 ; C 251 ; WX 611 ; N germandbls ; B 126 -20 566 729 ; C -1 ; WX 722 ; N Udieresis ; B 85 -23 645 914 ; C -1 ; WX 722 ; N Uacute ; B 85 -23 645 939 ; C -1 ; WX 667 ; N Scedilla ; B 45 -214 621 741 ; C -1 ; WX 611 ; N Tcaron ; B 21 0 593 940 ; C -1 ; WX 667 ; N Scaron ; B 48 -23 621 940 ; C -1 ; WX 722 ; N Rcaron ; B 93 0 679 940 ; C -1 ; WX 722 ; N Racute ; B 93 0 679 939 ; C -1 ; WX 667 ; N Sacute ; B 48 -23 621 939 ; C -1 ; WX 778 ; N Otilde ; B 38 -23 742 916 ; C -1 ; WX 556 ; N ucircumflex ; B 65 -23 482 741 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 38 -23 742 939 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 85 -23 645 939 ; C -1 ; WX 666 ; N Yacute ; B 13 0 661 939 ; C -1 ; WX 722 ; N Eth ; B 20 0 667 729 ; C -1 ; WX 722 ; N Dcroat ; B 20 0 667 729 ; C -1 ; WX 611 ; N Zacute ; B 28 0 583 939 ; C -1 ; WX 722 ; N Uring ; B 85 -23 645 953 ; C -1 ; WX 556 ; N gbreve ; B 29 -218 489 732 ; C -1 ; WX 556 ; N eogonek ; B 40 -204 514 539 ; C -1 ; WX 556 ; N edotaccent ; B 40 -23 513 716 ; C -1 ; WX 556 ; N ecaron ; B 40 -23 513 741 ; C -1 ; WX 722 ; N Ugrave ; B 85 -23 645 939 ; C -1 ; WX 666 ; N Thorn ; B 91 0 616 729 ; C -1 ; WX 556 ; N eacute ; B 40 -23 513 740 ; C -1 ; WX 556 ; N edieresis ; B 40 -23 513 715 ; C -1 ; WX 635 ; N dcaron ; B 26 -23 648 729 ; C -1 ; WX 500 ; N ccedilla ; B 31 -214 477 539 ; C -1 ; WX 500 ; N ccaron ; B 31 -23 477 741 ; C -1 ; WX 500 ; N cacute ; B 31 -23 477 740 ; C -1 ; WX 556 ; N aogonek ; B 43 -205 596 539 ; C -1 ; WX 556 ; N aring ; B 42 -23 535 754 ; C -1 ; WX 556 ; N atilde ; B 42 -23 535 717 ; C -1 ; WX 556 ; N abreve ; B 42 -23 535 732 ; C -1 ; WX 556 ; N egrave ; B 40 -23 513 740 ; C -1 ; WX 556 ; N agrave ; B 42 -23 535 740 ; C -1 ; WX 556 ; N aacute ; B 42 -23 535 740 ; C -1 ; WX 556 ; N adieresis ; B 42 -23 535 715 ; C -1 ; WX 722 ; N Uogonek ; B 85 -205 645 729 ; C -1 ; WX 556 ; N ugrave ; B 65 -23 482 740 ; C -1 ; WX 556 ; N uacute ; B 65 -23 482 740 ; C -1 ; WX 556 ; N udieresis ; B 65 -23 482 715 ; C -1 ; WX 308 ; N tcaron ; B 14 -23 321 800 ; C -1 ; WX 500 ; N scommaaccent ; B 34 -285 459 539 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 583 940 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -23 513 741 ; C -1 ; WX 722 ; N Ucircumflex ; B 85 -23 645 940 ; C -1 ; WX 556 ; N acircumflex ; B 42 -23 535 741 ; C -1 ; WX 611 ; N Zdotaccent ; B 28 0 583 915 ; C -1 ; WX 500 ; N scaron ; B 34 -23 459 741 ; C -1 ; WX 667 ; N Amacron ; B 17 0 653 900 ; C -1 ; WX 500 ; N sacute ; B 34 -23 459 740 ; C -1 ; WX 611 ; N Tcommaaccent ; B 21 -285 593 729 ; C -1 ; WX 667 ; N Ydieresis ; B 13 0 661 914 ; C -1 ; WX 555 ; N thorn ; B 54 -218 522 714 ; C -1 ; WX 667 ; N Emacron ; B 90 0 613 900 ; C -1 ; WX 778 ; N Ograve ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Oacute ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Odieresis ; B 38 -23 742 914 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 916 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 646 940 ; C -1 ; WX 722 ; N Nacute ; B 76 0 646 939 ; C -1 ; WX 556 ; N Lcaron ; B 80 0 533 729 ; C -1 ; WX 556 ; N Lacute ; B 70 0 533 939 ; C -1 ; WX 278 ; N Idotaccent ; B 92 0 196 915 ; C -1 ; WX 333 ; N racute ; B 69 0 331 740 ; C -1 ; WX 278 ; N Icircumflex ; B -1 0 286 940 ; C -1 ; WX 556 ; N ohungarumlaut ; B 36 -23 526 740 ; C -1 ; WX 556 ; N otilde ; B 36 -23 510 717 ; C -1 ; WX 556 ; N Euro ; B 2 -23 543 709 ; C -1 ; WX 556 ; N ocircumflex ; B 36 -23 510 741 ; C -1 ; WX 351 ; N onesuperior ; B 61 284 222 709 ; C -1 ; WX 351 ; N twosuperior ; B 19 284 326 709 ; C -1 ; WX 351 ; N threesuperior ; B 16 270 322 709 ; C -1 ; WX 278 ; N Igrave ; B 1 0 210 939 ; C -1 ; WX 278 ; N Iacute ; B 71 0 280 939 ; C -1 ; WX 278 ; N Imacron ; B 20 0 274 900 ; C -1 ; WX 278 ; N Iogonek ; B 66 -204 234 729 ; C -1 ; WX 278 ; N Idieresis ; B 9 0 275 907 ; C -1 ; WX 778 ; N Gbreve ; B 44 -23 709 931 ; C -1 ; WX 722 ; N Umacron ; B 85 -23 645 900 ; C -1 ; WX 667 ; N Kcommaaccent ; B 79 -285 658 729 ; C -1 ; WX 556 ; N ograve ; B 36 -23 510 740 ; C -1 ; WX 667 ; N Scommaaccent ; B 48 -285 621 741 ; C -1 ; WX 667 ; N Eogonek ; B 90 -205 652 729 ; C -1 ; WX 556 ; N oacute ; B 36 -23 510 740 ; C -1 ; WX 667 ; N Edotaccent ; B 90 0 613 915 ; C -1 ; WX 222 ; N iogonek ; B 25 -204 190 729 ; C -1 ; WX 556 ; N gcommaaccent ; B 29 -218 489 817 ; C -1 ; WX 556 ; N odieresis ; B 36 -23 510 715 ; C -1 ; WX 556 ; N ntilde ; B 70 0 487 717 ; C -1 ; WX 556 ; N ncaron ; B 70 0 487 741 ; C -1 ; WX 667 ; N Ecaron ; B 90 0 613 940 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 613 940 ; C -1 ; WX 500 ; N scedilla ; B 34 -214 459 539 ; C -1 ; WX 333 ; N rcaron ; B 48 0 335 741 ; C -1 ; WX 667 ; N Egrave ; B 90 0 613 939 ; C -1 ; WX 667 ; N Eacute ; B 90 0 613 939 ; C -1 ; WX 778 ; N Gcommaaccent ; B 44 -285 709 741 ; C -1 ; WX 722 ; N Rcommaaccent ; B 93 -285 679 729 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 613 914 ; C -1 ; WX 556 ; N nacute ; B 70 0 487 740 ; C -1 ; WX 556 ; N uogonek ; B 65 -204 521 524 ; C -1 ; WX 556 ; N umacron ; B 65 -23 482 701 ; C -1 ; WX 722 ; N Dcaron ; B 89 0 667 940 ; C -1 ; WX 292 ; N lcaron ; B 68 0 305 729 ; C -1 ; WX 722 ; N Ccaron ; B 48 -23 677 940 ; C -1 ; WX 722 ; N Cacute ; B 48 -23 677 939 ; C -1 ; WX 722 ; N Ccedilla ; B 48 -214 677 741 ; C -1 ; WX 606 ; N degree ; B 151 383 454 686 ; C -1 ; WX 667 ; N Aogonek ; B 17 -205 692 729 ; C -1 ; WX 584 ; N minus ; B 40 197 544 267 ; C -1 ; WX 584 ; N multiply ; B 95 34 488 427 ; C -1 ; WX 584 ; N divide ; B 50 0 534 472 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 953 ; C -1 ; WX 1000 ; N trademark ; B 63 292 938 729 ; C -1 ; WX 333 ; N rcommaaccent ; B 65 -285 321 539 ; C -1 ; WX 222 ; N lacute ; B 63 0 272 939 ; C -1 ; WX 556 ; N omacron ; B 36 -23 510 701 ; C -1 ; WX 667 ; N Atilde ; B 17 0 653 916 ; C -1 ; WX 278 ; N icircumflex ; B -7 0 280 741 ; C -1 ; WX 278 ; N igrave ; B -5 0 204 740 ; C -1 ; WX 556 ; N ncommaaccent ; B 70 -285 487 539 ; C -1 ; WX 222 ; N lcommaaccent ; B 63 -285 163 729 ; C -1 ; WX 584 ; N plusminus ; B 50 -11 534 623 ; C -1 ; WX 869 ; N onehalf ; B 61 -20 844 709 ; C -1 ; WX 869 ; N onequarter ; B 61 -20 849 709 ; C -1 ; WX 869 ; N threequarters ; B 16 -20 849 709 ; C -1 ; WX 278 ; N iacute ; B 65 0 274 740 ; C -1 ; WX 667 ; N Abreve ; B 17 0 653 931 ; C -1 ; WX 500 ; N kcommaaccent ; B 58 -285 502 729 ; C -1 ; WX 778 ; N Omacron ; B 38 -23 742 900 ; C -1 ; WX 222 ; N imacron ; B -16 0 231 701 ; C -1 ; WX 556 ; N emacron ; B 40 -23 513 701 ; C -1 ; WX 556 ; N amacron ; B 42 -23 535 701 ; C -1 ; WX 278 ; N tcommaaccent ; B 14 -285 254 668 ; C -1 ; WX 500 ; N ydieresis ; B 20 -218 478 715 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 457 716 ; C -1 ; WX 500 ; N zcaron ; B 31 0 457 741 ; C -1 ; WX 500 ; N zacute ; B 31 0 457 740 ; C -1 ; WX 500 ; N yacute ; B 20 -218 478 740 ; C -1 ; WX 556 ; N uhungarumlaut ; B 65 -23 530 740 ; C -1 ; WX 556 ; N eth ; B 36 -23 510 743 ; C -1 ; WX 556 ; N uring ; B 65 -23 482 754 ; C -1 ; WX 778 ; N Ocircumflex ; B 38 -23 742 940 ; C -1 ; WX 333 ; N commaaccent ; B 116 -285 216 -60 ; C -1 ; WX 737 ; N copyright ; B -13 -22 751 742 ; C -1 ; WX 737 ; N registered ; B -13 -22 751 742 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 278 ; N idieresis ; B 3 0 269 708 ; C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ; C -1 ; WX 711 ; N Delta ; B 10 0 701 729 ; C -1 ; WX 548 ; N notequal ; B 32 -25 516 486 ; C -1 ; WX 542 ; N radical ; B 7 -36 512 913 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Aacute ; B 17 0 653 939 ; C -1 ; WX 584 ; N lessequal ; B 45 -11 534 639 ; C -1 ; WX 584 ; N greaterequal ; B 45 -11 534 639 ; C -1 ; WX 584 ; N logicalnot ; B 40 86 544 375 ; C -1 ; WX 711 ; N summation ; B 17 -97 694 760 ; C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -285 646 729 ; C -1 ; WX 556 ; N dcroat ; B 26 -23 557 729 ; C -1 ; WX 260 ; N brokenbar ; B 100 -212 160 729 ; C -1 ; WX 556 ; N Lcommaaccent ; B 80 -285 533 729 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 653 914 ; C -1 ; WX 556 ; N mu ; B 65 -220 544 524 ; C -1 ; WX 278 ; N .notdef ; B 191 0 191 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -36 KPX A Ccedilla -36 KPX A G -35 KPX A O -33 KPX A Odieresis -33 KPX A Q -32 KPX A T -93 KPX A U -37 KPX A Uacute -37 KPX A Ucircumflex -37 KPX A Udieresis -37 KPX A Ugrave -37 KPX A V -75 KPX A W -51 KPX A Y -99 KPX A a -4 KPX A b 4 KPX A c -11 KPX A ccedilla -10 KPX A comma 5 KPX A d -8 KPX A e -16 KPX A g -10 KPX A guillemotleft -44 KPX A guilsinglleft -40 KPX A hyphen -3 KPX A o -13 KPX A period 5 KPX A q -8 KPX A quotedblright -56 KPX A quoteright -65 KPX A t -16 KPX A u -12 KPX A v -31 KPX A w -21 KPX A y -34 KPX Aacute C -36 KPX Aacute G -35 KPX Aacute O -33 KPX Aacute Q -32 KPX Aacute T -93 KPX Aacute U -37 KPX Aacute V -75 KPX Aacute W -51 KPX Aacute Y -99 KPX Aacute a -4 KPX Aacute b 4 KPX Aacute c -11 KPX Aacute comma 5 KPX Aacute d -8 KPX Aacute e -16 KPX Aacute g -10 KPX Aacute guillemotleft -44 KPX Aacute guilsinglleft -40 KPX Aacute hyphen -3 KPX Aacute o -13 KPX Aacute period 5 KPX Aacute q -8 KPX Aacute quoteright -65 KPX Aacute t -16 KPX Aacute u -12 KPX Aacute v -31 KPX Aacute w -21 KPX Aacute y -34 KPX Acircumflex C -36 KPX Acircumflex G -35 KPX Acircumflex O -33 KPX Acircumflex Q -32 KPX Acircumflex T -93 KPX Acircumflex U -37 KPX Acircumflex V -75 KPX Acircumflex W -51 KPX Acircumflex Y -99 KPX Acircumflex comma 5 KPX Acircumflex period 5 KPX Adieresis C -36 KPX Adieresis G -35 KPX Adieresis O -33 KPX Adieresis Q -32 KPX Adieresis T -93 KPX Adieresis U -37 KPX Adieresis V -75 KPX Adieresis W -51 KPX Adieresis Y -99 KPX Adieresis a -4 KPX Adieresis b 4 KPX Adieresis c -11 KPX Adieresis comma 5 KPX Adieresis d -8 KPX Adieresis g -10 KPX Adieresis guillemotleft -44 KPX Adieresis guilsinglleft -40 KPX Adieresis hyphen -3 KPX Adieresis o -13 KPX Adieresis period 5 KPX Adieresis q -8 KPX Adieresis quotedblright -56 KPX Adieresis quoteright -65 KPX Adieresis t -16 KPX Adieresis u -12 KPX Adieresis v -31 KPX Adieresis w -21 KPX Adieresis y -34 KPX Agrave C -36 KPX Agrave G -35 KPX Agrave O -33 KPX Agrave Q -32 KPX Agrave T -93 KPX Agrave U -37 KPX Agrave V -75 KPX Agrave W -51 KPX Agrave Y -99 KPX Agrave comma 5 KPX Agrave period 5 KPX Aring C -36 KPX Aring G -35 KPX Aring O -33 KPX Aring Q -32 KPX Aring T -93 KPX Aring U -37 KPX Aring V -75 KPX Aring W -51 KPX Aring Y -99 KPX Aring a -4 KPX Aring b 4 KPX Aring c -11 KPX Aring comma 5 KPX Aring d -8 KPX Aring e -16 KPX Aring g -10 KPX Aring guillemotleft -44 KPX Aring guilsinglleft -40 KPX Aring hyphen -3 KPX Aring o -13 KPX Aring period 5 KPX Aring q -8 KPX Aring quotedblright -56 KPX Aring quoteright -65 KPX Aring t -16 KPX Aring u -12 KPX Aring v -31 KPX Aring w -21 KPX Aring y -34 KPX Atilde C -36 KPX Atilde G -35 KPX Atilde O -33 KPX Atilde Q -32 KPX Atilde T -93 KPX Atilde U -37 KPX Atilde V -75 KPX Atilde W -51 KPX Atilde Y -99 KPX Atilde comma 5 KPX Atilde period 5 KPX B A -21 KPX B AE -21 KPX B Aacute -21 KPX B Acircumflex -21 KPX B Adieresis -21 KPX B Aring -21 KPX B Atilde -21 KPX B O -7 KPX B OE -5 KPX B Oacute -7 KPX B Ocircumflex -7 KPX B Odieresis -7 KPX B Ograve -7 KPX B Oslash -1 KPX B V -41 KPX B W -25 KPX B Y -44 KPX C A -32 KPX C AE -33 KPX C Aacute -32 KPX C Adieresis -32 KPX C Aring -32 KPX C H -12 KPX C K -10 KPX C O -8 KPX C Oacute -8 KPX C Odieresis -8 KPX Ccedilla A -31 KPX D A -42 KPX D Aacute -42 KPX D Acircumflex -42 KPX D Adieresis -42 KPX D Agrave -42 KPX D Aring -42 KPX D Atilde -42 KPX D J -5 KPX D T -45 KPX D V -51 KPX D W -29 KPX D X -53 KPX D Y -63 KPX F A -69 KPX F Aacute -69 KPX F Acircumflex -69 KPX F Adieresis -69 KPX F Agrave -69 KPX F Aring -69 KPX F Atilde -69 KPX F J -51 KPX F O -22 KPX F Odieresis -22 KPX F a -33 KPX F aacute -33 KPX F adieresis -33 KPX F ae -29 KPX F aring -33 KPX F comma -108 KPX F e -24 KPX F eacute -24 KPX F hyphen -14 KPX F i -10 KPX F j -12 KPX F o -21 KPX F oacute -21 KPX F odieresis -21 KPX F oe -23 KPX F oslash -21 KPX F period -108 KPX F r -35 KPX F u -33 KPX G A -6 KPX G AE -3 KPX G Aacute -6 KPX G Acircumflex -6 KPX G Adieresis -6 KPX G Agrave -6 KPX G Aring -6 KPX G Atilde -6 KPX G T -44 KPX G V -50 KPX G W -28 KPX G Y -62 KPX J A -32 KPX J AE -31 KPX J Adieresis -32 KPX J Aring -32 KPX K C -51 KPX K G -51 KPX K O -48 KPX K OE -45 KPX K Oacute -48 KPX K Odieresis -48 KPX K S -38 KPX K T 20 KPX K a -11 KPX K adieresis -11 KPX K ae -7 KPX K aring -11 KPX K e -32 KPX K hyphen -47 KPX K o -29 KPX K oacute -29 KPX K odieresis -29 KPX K u -19 KPX K udieresis -19 KPX K y -62 KPX L A 17 KPX L AE 20 KPX L Aacute 17 KPX L Adieresis 17 KPX L Aring 17 KPX L C -41 KPX L Ccedilla -37 KPX L G -42 KPX L O -41 KPX L Oacute -41 KPX L Ocircumflex -41 KPX L Odieresis -41 KPX L Ograve -41 KPX L Otilde -41 KPX L S -19 KPX L T -105 KPX L U -35 KPX L Udieresis -35 KPX L V -105 KPX L W -68 KPX L Y -121 KPX L hyphen -125 KPX L quotedblright -141 KPX L quoteright -149 KPX L u -7 KPX L udieresis -7 KPX L y -56 KPX N A -9 KPX N AE -6 KPX N Aacute -9 KPX N Adieresis -9 KPX N Aring -9 KPX N C -3 KPX N Ccedilla -3 KPX N G -2 KPX N O 0 KPX N Oacute 0 KPX N Odieresis 0 KPX N a -5 KPX N aacute -5 KPX N adieresis -5 KPX N ae -2 KPX N aring -5 KPX N comma -7 KPX N e 0 KPX N eacute 0 KPX N o 2 KPX N oacute 2 KPX N odieresis 2 KPX N oslash 4 KPX N period -7 KPX N u 0 KPX N udieresis 0 KPX O A -35 KPX O AE -39 KPX O Aacute -35 KPX O Adieresis -35 KPX O Aring -35 KPX O T -42 KPX O V -45 KPX O W -23 KPX O X -46 KPX O Y -59 KPX Oacute A -35 KPX Oacute T -42 KPX Oacute V -45 KPX Oacute W -23 KPX Oacute Y -59 KPX Ocircumflex T -42 KPX Ocircumflex V -45 KPX Ocircumflex Y -59 KPX Odieresis A -35 KPX Odieresis T -42 KPX Odieresis V -45 KPX Odieresis W -23 KPX Odieresis X -46 KPX Odieresis Y -59 KPX Ograve T -42 KPX Ograve V -45 KPX Ograve Y -59 KPX Oslash A -33 KPX Otilde T -42 KPX Otilde V -45 KPX Otilde Y -59 KPX P A -78 KPX P AE -86 KPX P Aacute -78 KPX P Adieresis -78 KPX P Aring -78 KPX P J -78 KPX P a -28 KPX P aacute -28 KPX P adieresis -28 KPX P ae -24 KPX P aring -28 KPX P comma -135 KPX P e -31 KPX P eacute -31 KPX P hyphen -40 KPX P o -27 KPX P oacute -27 KPX P odieresis -27 KPX P oe -28 KPX P oslash -27 KPX P period -135 KPX R C -16 KPX R Ccedilla -16 KPX R G -15 KPX R O -13 KPX R OE -11 KPX R Oacute -13 KPX R Odieresis -13 KPX R T -23 KPX R U -17 KPX R Udieresis -17 KPX R V -39 KPX R W -27 KPX R Y -43 KPX R a -15 KPX R aacute -15 KPX R adieresis -15 KPX R ae -12 KPX R aring -15 KPX R e -12 KPX R eacute -12 KPX R hyphen -2 KPX R o -9 KPX R oacute -9 KPX R odieresis -9 KPX R oe -11 KPX R u -9 KPX R uacute -9 KPX R udieresis -9 KPX R y -8 KPX S A -22 KPX S AE -22 KPX S Aacute -22 KPX S Adieresis -22 KPX S Aring -22 KPX S T -28 KPX S V -42 KPX S W -28 KPX S Y -48 KPX S t -3 KPX T A -95 KPX T AE -97 KPX T Aacute -95 KPX T Acircumflex -95 KPX T Adieresis -95 KPX T Agrave -95 KPX T Aring -95 KPX T Atilde -95 KPX T C -44 KPX T G -45 KPX T J -100 KPX T O -42 KPX T OE -35 KPX T Oacute -42 KPX T Ocircumflex -42 KPX T Odieresis -42 KPX T Ograve -42 KPX T Oslash -41 KPX T Otilde -42 KPX T S -24 KPX T V 12 KPX T W 16 KPX T Y 20 KPX T a -100 KPX T ae -97 KPX T c -90 KPX T colon -133 KPX T comma -100 KPX T e -95 KPX T g -89 KPX T guillemotleft -121 KPX T guilsinglleft -117 KPX T hyphen -77 KPX T i -3 KPX T j -5 KPX T o -92 KPX T oslash -87 KPX T period -100 KPX T r -92 KPX T s -92 KPX T semicolon -129 KPX T u -91 KPX T v -95 KPX T w -93 KPX T y -100 KPX U A -36 KPX U AE -39 KPX U Aacute -36 KPX U Acircumflex -36 KPX U Adieresis -36 KPX U Aring -36 KPX U Atilde -36 KPX U comma -27 KPX U m -4 KPX U n -4 KPX U p 3 KPX U period -25 KPX U r -4 KPX Uacute A -36 KPX Uacute comma -27 KPX Uacute m -4 KPX Uacute n -4 KPX Uacute p 3 KPX Uacute period -25 KPX Uacute r -4 KPX Ucircumflex A -36 KPX Udieresis A -36 KPX Udieresis b 3 KPX Udieresis comma -27 KPX Udieresis m -4 KPX Udieresis n -4 KPX Udieresis p 3 KPX Udieresis period -25 KPX Udieresis r -4 KPX Ugrave A -36 KPX V A -71 KPX V AE -78 KPX V Aacute -71 KPX V Acircumflex -71 KPX V Adieresis -71 KPX V Agrave -71 KPX V Aring -71 KPX V Atilde -71 KPX V C -43 KPX V G -42 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Oslash -33 KPX V Otilde -40 KPX V S -35 KPX V T 15 KPX V a -59 KPX V ae -55 KPX V colon -66 KPX V comma -89 KPX V e -57 KPX V g -50 KPX V guillemotleft -83 KPX V guilsinglleft -80 KPX V hyphen -38 KPX V i -5 KPX V o -54 KPX V oslash -50 KPX V period -89 KPX V r -42 KPX V semicolon -66 KPX V u -41 KPX V y -20 KPX W A -50 KPX W AE -56 KPX W Aacute -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Aring -50 KPX W Atilde -50 KPX W C -23 KPX W G -22 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Oslash -13 KPX W Otilde -20 KPX W S -24 KPX W T 19 KPX W a -38 KPX W ae -34 KPX W colon -52 KPX W comma -56 KPX W e -32 KPX W g -25 KPX W guillemotleft -58 KPX W guilsinglleft -54 KPX W hyphen -13 KPX W i -1 KPX W o -29 KPX W oslash -25 KPX W period -56 KPX W r -28 KPX W semicolon -53 KPX W u -28 KPX W y -6 KPX X C -48 KPX X O -45 KPX X Odieresis -45 KPX X Q -44 KPX X a -15 KPX X e -36 KPX X hyphen -51 KPX X o -33 KPX X u -24 KPX X y -61 KPX Y A -96 KPX Y AE -103 KPX Y Aacute -96 KPX Y Acircumflex -96 KPX Y Adieresis -96 KPX Y Agrave -96 KPX Y Aring -96 KPX Y Atilde -96 KPX Y C -58 KPX Y G -58 KPX Y O -56 KPX Y Oacute -56 KPX Y Ocircumflex -56 KPX Y Odieresis -56 KPX Y Ograve -56 KPX Y Oslash -54 KPX Y Otilde -56 KPX Y S -41 KPX Y T 23 KPX Y a -88 KPX Y ae -84 KPX Y colon -87 KPX Y comma -111 KPX Y e -89 KPX Y g -83 KPX Y guillemotleft -123 KPX Y guilsinglleft -119 KPX Y hyphen -84 KPX Y i 3 KPX Y o -86 KPX Y oslash -82 KPX Y p -54 KPX Y period -111 KPX Y semicolon -88 KPX Y u -63 KPX Y v -36 KPX Z v -33 KPX Z y -38 KPX a j -4 KPX a quoteright -23 KPX a v -21 KPX a w -13 KPX a y -26 KPX aacute v -21 KPX aacute w -13 KPX aacute y -26 KPX adieresis v -21 KPX adieresis w -13 KPX adieresis y -26 KPX ae v -16 KPX ae w -10 KPX ae y -20 KPX agrave v -21 KPX agrave w -13 KPX agrave y -26 KPX aring v -21 KPX aring w -13 KPX aring y -26 KPX b v -11 KPX b w -3 KPX b y -15 KPX c h 1 KPX c k 7 KPX comma one -100 KPX comma quotedblright -41 KPX comma quoteright -50 KPX e quoteright -18 KPX e t -10 KPX e v -15 KPX e w -9 KPX e x -27 KPX e y -19 KPX eacute v -15 KPX eacute w -9 KPX eacute y -19 KPX ecircumflex v -15 KPX ecircumflex w -9 KPX ecircumflex y -19 KPX eight four 1 KPX eight one -48 KPX eight seven -33 KPX f a -9 KPX f aacute -9 KPX f adieresis -9 KPX f ae -5 KPX f aring -9 KPX f e -15 KPX f eacute -15 KPX f f 22 KPX f i -2 KPX f j -4 KPX f l -3 KPX f o -10 KPX f oacute -10 KPX f odieresis -10 KPX f oe -12 KPX f oslash -9 KPX f quoteright 0 KPX f s 0 KPX f t 24 KPX five four 1 KPX five one -76 KPX five seven -26 KPX four four 5 KPX four one -84 KPX four seven -56 KPX g a -5 KPX g adieresis -5 KPX g ae -1 KPX g aring -5 KPX g e 0 KPX g eacute 0 KPX g l 0 KPX g oacute 3 KPX g odieresis 3 KPX g r 0 KPX guillemotright A -50 KPX guillemotright AE -54 KPX guillemotright Aacute -50 KPX guillemotright Adieresis -50 KPX guillemotright Aring -50 KPX guillemotright T -126 KPX guillemotright V -93 KPX guillemotright W -66 KPX guillemotright Y -133 KPX guilsinglright A -44 KPX guilsinglright AE -48 KPX guilsinglright Aacute -44 KPX guilsinglright Adieresis -44 KPX guilsinglright Aring -44 KPX guilsinglright T -121 KPX guilsinglright V -88 KPX guilsinglright W -60 KPX guilsinglright Y -128 KPX h quoteright -15 KPX h y -18 KPX hyphen A -7 KPX hyphen AE -11 KPX hyphen Aacute -7 KPX hyphen Adieresis -7 KPX hyphen Aring -7 KPX hyphen T -80 KPX hyphen V -46 KPX hyphen W -19 KPX hyphen Y -92 KPX i T -7 KPX i j -3 KPX k a -2 KPX k aacute -2 KPX k adieresis -2 KPX k ae 2 KPX k aring -2 KPX k comma 0 KPX k e -21 KPX k eacute -21 KPX k g -16 KPX k hyphen -41 KPX k o -19 KPX k oacute -19 KPX k odieresis -19 KPX k period 0 KPX k s -3 KPX k u -11 KPX k udieresis -6 KPX l v 0 KPX l y -5 KPX m p 5 KPX m v -13 KPX m w -7 KPX m y -18 KPX n T -96 KPX n p 5 KPX n quoteright -14 KPX n v -13 KPX n w -7 KPX n y -18 KPX nine four -3 KPX nine one -43 KPX nine seven -37 KPX o T -99 KPX o quoteright -21 KPX o t -10 KPX o v -18 KPX o w -10 KPX o x -27 KPX o y -22 KPX oacute v -18 KPX oacute w -10 KPX oacute y -22 KPX ocircumflex t -10 KPX odieresis t -10 KPX odieresis v -18 KPX odieresis w -10 KPX odieresis x -27 KPX odieresis y -22 KPX ograve v -18 KPX ograve w -10 KPX ograve y -22 KPX one comma -74 KPX one eight -65 KPX one five -67 KPX one four -81 KPX one nine -65 KPX one one -118 KPX one period -74 KPX one seven -90 KPX one six -62 KPX one three -67 KPX one two -69 KPX one zero -62 KPX p t -4 KPX p y -16 KPX period one -101 KPX period quotedblright -41 KPX period quoteright -51 KPX q c 8 KPX q u 4 KPX quotedblbase A 30 KPX quotedblbase AE 30 KPX quotedblbase T -75 KPX quotedblbase V -69 KPX quotedblbase W -34 KPX quotedblbase Y -91 KPX quotedblleft A -52 KPX quotedblleft AE -64 KPX quotedblleft Aacute -52 KPX quotedblleft Adieresis -52 KPX quotedblleft Aring -52 KPX quotedblleft T 9 KPX quotedblleft V 15 KPX quotedblleft W 27 KPX quotedblleft Y 5 KPX quotedblright A -53 KPX quotedblright AE -66 KPX quotedblright Aacute -53 KPX quotedblright Adieresis -53 KPX quotedblright Aring -53 KPX quotedblright T 11 KPX quotedblright V 15 KPX quotedblright W 26 KPX quotedblright Y 7 KPX quoteleft A -67 KPX quoteleft AE -79 KPX quoteleft Aacute -67 KPX quoteleft Adieresis -67 KPX quoteleft Aring -67 KPX quoteleft T -5 KPX quoteleft V 0 KPX quoteleft W 12 KPX quoteleft Y -9 KPX quoteright A -72 KPX quoteright AE -85 KPX quoteright Aacute -72 KPX quoteright Adieresis -72 KPX quoteright Aring -72 KPX quoteright comma -60 KPX quoteright d -20 KPX quoteright o -26 KPX quoteright period -60 KPX quoteright r -18 KPX quoteright s -18 KPX quoteright t -7 KPX quoteright v -2 KPX quoteright w 2 KPX quoteright y -6 KPX r a -5 KPX r aacute -5 KPX r acircumflex -5 KPX r adieresis -5 KPX r ae -1 KPX r agrave -5 KPX r aring -5 KPX r c -6 KPX r ccedilla -9 KPX r colon -22 KPX r comma -69 KPX r d -1 KPX r e -11 KPX r eacute -11 KPX r ecircumflex -11 KPX r egrave -11 KPX r f 26 KPX r g -4 KPX r h 0 KPX r hyphen -47 KPX r i 1 KPX r j 0 KPX r k 6 KPX r l 1 KPX r m 0 KPX r n 0 KPX r o -6 KPX r oacute -6 KPX r ocircumflex -6 KPX r odieresis -6 KPX r oe -8 KPX r ograve -6 KPX r oslash -6 KPX r p 8 KPX r period -69 KPX r q -3 KPX r quoteright 1 KPX r r 0 KPX r s 4 KPX r semicolon -22 KPX r t 28 KPX r u 2 KPX r v 29 KPX r w 31 KPX r x 20 KPX r y 24 KPX r z 9 KPX s quoteright -22 KPX s t -3 KPX seven colon -77 KPX seven comma -119 KPX seven eight -28 KPX seven five -30 KPX seven four -93 KPX seven one -53 KPX seven period -119 KPX seven seven -4 KPX seven six -40 KPX seven three -23 KPX seven two -28 KPX six four 1 KPX six one -43 KPX six seven -30 KPX t S -8 KPX t a -1 KPX t aacute -1 KPX t adieresis -1 KPX t ae 2 KPX t aring -1 KPX t colon -28 KPX t e -14 KPX t eacute -14 KPX t h -3 KPX t o -12 KPX t oacute -12 KPX t odieresis -12 KPX t quoteright -1 KPX t semicolon -28 KPX three four -2 KPX three one -49 KPX three seven -33 KPX two four -37 KPX two one -36 KPX two seven -25 KPX u quoteright -8 KPX v a -18 KPX v aacute -18 KPX v acircumflex -18 KPX v adieresis -18 KPX v ae -14 KPX v agrave -18 KPX v aring -18 KPX v atilde -18 KPX v c -16 KPX v colon -23 KPX v comma -69 KPX v e -21 KPX v eacute -21 KPX v ecircumflex -21 KPX v egrave -21 KPX v g -14 KPX v hyphen -12 KPX v l 0 KPX v o -17 KPX v oacute -17 KPX v odieresis -17 KPX v ograve -17 KPX v oslash -17 KPX v period -69 KPX v s -9 KPX v semicolon -23 KPX w a -15 KPX w aacute -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w ae -11 KPX w agrave -15 KPX w aring -15 KPX w atilde -15 KPX w c -7 KPX w colon -23 KPX w comma -50 KPX w e -12 KPX w eacute -12 KPX w ecircumflex -12 KPX w egrave -12 KPX w g -6 KPX w hyphen -1 KPX w l 0 KPX w o -9 KPX w oacute -9 KPX w odieresis -9 KPX w ograve -9 KPX w oslash -6 KPX w period -50 KPX w s -5 KPX w semicolon -23 KPX x a -17 KPX x c -23 KPX x e -28 KPX x eacute -28 KPX x o -25 KPX x q -20 KPX y a -22 KPX y aacute -22 KPX y acircumflex -22 KPX y adieresis -22 KPX y ae -18 KPX y agrave -22 KPX y aring -22 KPX y atilde -22 KPX y c -19 KPX y colon -27 KPX y comma -70 KPX y e -24 KPX y eacute -24 KPX y ecircumflex -24 KPX y egrave -24 KPX y g -17 KPX y hyphen -14 KPX y l -4 KPX y o -20 KPX y oacute -20 KPX y odieresis -20 KPX y ograve -20 KPX y oslash -19 KPX y period -70 KPX y s -12 KPX y semicolon -27 KPX zero four -2 KPX zero one -46 KPX zero seven -39 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n022024l.afm0000644000076500001440000007633107056046554016422 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusMonL-BoldObli FullName Nimbus Mono L Bold Oblique FamilyName Nimbus Mono L Weight Bold ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -61 -278 840 871 CapHeight 583 XHeight 437 Descender -205 Ascender 624 StartCharMetrics 316 C 32 ; WX 600 ; N space ; B 386 0 386 0 ; C 33 ; WX 600 ; N exclam ; B 234 -15 501 638 ; C 34 ; WX 600 ; N quotedbl ; B 243 312 592 602 ; C 35 ; WX 600 ; N numbersign ; B 101 -92 623 675 ; C 36 ; WX 600 ; N dollar ; B 100 -123 610 684 ; C 37 ; WX 600 ; N percent ; B 131 -15 599 617 ; C 38 ; WX 600 ; N ampersand ; B 102 -14 557 550 ; C 39 ; WX 600 ; N quoteright ; B 222 331 483 623 ; C 40 ; WX 600 ; N parenleft ; B 304 -153 613 632 ; C 41 ; WX 600 ; N parenright ; B 94 -153 403 632 ; C 42 ; WX 600 ; N asterisk ; B 178 208 614 622 ; C 43 ; WX 600 ; N plus ; B 101 0 619 560 ; C 44 ; WX 600 ; N comma ; B 118 -158 379 134 ; C 45 ; WX 600 ; N hyphen ; B 101 229 619 329 ; C 46 ; WX 600 ; N period ; B 234 -15 387 117 ; C 47 ; WX 600 ; N slash ; B 69 -113 656 695 ; C 48 ; WX 600 ; N zero ; B 130 -15 602 638 ; C 49 ; WX 600 ; N one ; B 93 0 529 638 ; C 50 ; WX 600 ; N two ; B 54 0 602 638 ; C 51 ; WX 600 ; N three ; B 80 -15 609 638 ; C 52 ; WX 600 ; N four ; B 104 0 579 622 ; C 53 ; WX 600 ; N five ; B 83 -15 610 622 ; C 54 ; WX 600 ; N six ; B 154 -15 663 638 ; C 55 ; WX 600 ; N seven ; B 184 -1 640 622 ; C 56 ; WX 600 ; N eight ; B 114 -15 608 638 ; C 57 ; WX 600 ; N nine ; B 115 -15 624 638 ; C 58 ; WX 600 ; N colon ; B 234 -15 455 437 ; C 59 ; WX 600 ; N semicolon ; B 118 -158 431 437 ; C 60 ; WX 600 ; N less ; B 102 54 642 501 ; C 61 ; WX 600 ; N equal ; B 81 138 638 422 ; C 62 ; WX 600 ; N greater ; B 76 53 616 500 ; C 63 ; WX 600 ; N question ; B 197 -15 608 598 ; C 64 ; WX 600 ; N at ; B 98 -152 582 620 ; C 65 ; WX 600 ; N A ; B -11 0 633 583 ; C 66 ; WX 600 ; N B ; B 22 0 620 583 ; C 67 ; WX 600 ; N C ; B 80 -14 663 597 ; C 68 ; WX 600 ; N D ; B 23 0 622 583 ; C 69 ; WX 600 ; N E ; B 23 0 652 583 ; C 70 ; WX 600 ; N F ; B 23 0 674 583 ; C 71 ; WX 600 ; N G ; B 79 -14 667 597 ; C 72 ; WX 600 ; N H ; B 32 0 675 583 ; C 73 ; WX 600 ; N I ; B 93 0 632 583 ; C 74 ; WX 600 ; N J ; B 64 -14 727 583 ; C 75 ; WX 600 ; N K ; B 22 0 687 583 ; C 76 ; WX 600 ; N L ; B 42 0 616 583 ; C 77 ; WX 600 ; N M ; B -10 0 728 583 ; C 78 ; WX 600 ; N N ; B 21 0 706 583 ; C 79 ; WX 600 ; N O ; B 75 -14 649 597 ; C 80 ; WX 600 ; N P ; B 23 0 617 583 ; C 81 ; WX 600 ; N Q ; B 75 -145 649 597 ; C 82 ; WX 600 ; N R ; B 23 0 631 583 ; C 83 ; WX 600 ; N S ; B 72 -14 634 597 ; C 84 ; WX 600 ; N T ; B 121 0 682 583 ; C 85 ; WX 600 ; N U ; B 110 -14 705 583 ; C 86 ; WX 600 ; N V ; B 91 0 735 583 ; C 87 ; WX 600 ; N W ; B 98 0 725 583 ; C 88 ; WX 600 ; N X ; B 19 0 692 583 ; C 89 ; WX 600 ; N Y ; B 128 0 694 583 ; C 90 ; WX 600 ; N Z ; B 73 0 628 583 ; C 91 ; WX 600 ; N bracketleft ; B 219 -148 598 627 ; C 92 ; WX 600 ; N backslash ; B 219 -113 504 695 ; C 93 ; WX 600 ; N bracketright ; B 104 -148 483 627 ; C 94 ; WX 600 ; N asciicircum ; B 161 325 598 652 ; C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ; C 96 ; WX 600 ; N quoteleft ; B 377 348 534 602 ; C 97 ; WX 600 ; N a ; B 65 -16 583 450 ; C 98 ; WX 600 ; N b ; B 2 -14 623 624 ; C 99 ; WX 600 ; N c ; B 93 -16 626 450 ; C 100 ; WX 600 ; N d ; B 74 -14 664 624 ; C 101 ; WX 600 ; N e ; B 74 -16 600 450 ; C 102 ; WX 600 ; N f ; B 84 0 691 623 ; C 103 ; WX 600 ; N g ; B 73 -205 675 451 ; C 104 ; WX 600 ; N h ; B 33 0 593 624 ; C 105 ; WX 600 ; N i ; B 72 0 550 623 ; C 106 ; WX 600 ; N j ; B 83 -205 581 623 ; C 107 ; WX 600 ; N k ; B 42 0 606 624 ; C 108 ; WX 600 ; N l ; B 72 0 550 624 ; C 109 ; WX 600 ; N m ; B -9 0 635 450 ; C 110 ; WX 600 ; N n ; B 33 0 583 450 ; C 111 ; WX 600 ; N o ; B 84 -16 609 450 ; C 112 ; WX 600 ; N p ; B -42 -205 623 450 ; C 113 ; WX 600 ; N q ; B 75 -205 696 450 ; C 114 ; WX 600 ; N r ; B 64 0 650 449 ; C 115 ; WX 600 ; N s ; B 83 -16 592 450 ; C 116 ; WX 600 ; N t ; B 94 -16 547 591 ; C 117 ; WX 600 ; N u ; B 94 -13 603 437 ; C 118 ; WX 600 ; N v ; B 81 0 683 437 ; C 119 ; WX 600 ; N w ; B 82 0 684 437 ; C 120 ; WX 600 ; N x ; B 30 0 641 437 ; C 121 ; WX 600 ; N y ; B -13 -205 662 437 ; C 122 ; WX 600 ; N z ; B 85 0 599 437 ; C 123 ; WX 600 ; N braceleft ; B 217 -153 556 623 ; C 124 ; WX 600 ; N bar ; B 227 -153 472 622 ; C 125 ; WX 600 ; N braceright ; B 144 -153 483 623 ; C 126 ; WX 600 ; N asciitilde ; B 114 179 606 385 ; C 161 ; WX 600 ; N exclamdown ; B 186 -227 453 426 ; C 162 ; WX 600 ; N cent ; B 144 -44 593 661 ; C 163 ; WX 600 ; N sterling ; B 64 0 571 598 ; C 164 ; WX 600 ; N fraction ; B 52 102 676 500 ; C 165 ; WX 600 ; N yen ; B 133 0 693 580 ; C 166 ; WX 600 ; N florin ; B 43 -123 672 638 ; C 167 ; WX 600 ; N section ; B 45 -170 643 583 ; C 168 ; WX 600 ; N currency ; B 96 64 626 519 ; C 169 ; WX 600 ; N quotesingle ; B 343 312 492 602 ; C 170 ; WX 600 ; N quotedblleft ; B 226 348 583 602 ; C 171 ; WX 600 ; N guillemotleft ; B 80 20 654 415 ; C 172 ; WX 600 ; N guilsinglleft ; B 80 20 425 415 ; C 173 ; WX 600 ; N guilsinglright ; B 273 20 617 415 ; C 174 ; WX 600 ; N fi ; B -4 0 633 624 ; C 175 ; WX 600 ; N fl ; B -8 0 645 623 ; C 177 ; WX 600 ; N endash ; B 101 229 619 329 ; C 178 ; WX 600 ; N dagger ; B 175 -92 589 622 ; C 179 ; WX 600 ; N daggerdbl ; B 123 -92 589 622 ; C 180 ; WX 600 ; N periodcentered ; B 283 214 436 346 ; C 182 ; WX 600 ; N paragraph ; B 108 -174 672 583 ; C 183 ; WX 600 ; N bullet ; B 211 154 517 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 118 -158 379 134 ; C 185 ; WX 600 ; N quotedblbase ; B 66 -120 519 134 ; C 186 ; WX 600 ; N quotedblright ; B 166 348 619 602 ; C 187 ; WX 600 ; N guillemotright ; B 43 20 617 415 ; C 188 ; WX 600 ; N ellipsis ; B 34 -15 587 117 ; C 189 ; WX 600 ; N perthousand ; B 104 0 627 618 ; C 191 ; WX 600 ; N questiondown ; B 70 -227 481 386 ; C 193 ; WX 600 ; N grave ; B 264 496 464 696 ; C 194 ; WX 600 ; N acute ; B 362 496 616 696 ; C 195 ; WX 600 ; N circumflex ; B 237 497 590 696 ; C 196 ; WX 600 ; N tilde ; B 233 523 619 656 ; C 197 ; WX 600 ; N macron ; B 249 546 600 626 ; C 198 ; WX 600 ; N breve ; B 261 503 614 687 ; C 199 ; WX 600 ; N dotaccent ; B 365 534 488 654 ; C 200 ; WX 600 ; N dieresis ; B 261 534 592 654 ; C 202 ; WX 600 ; N ring ; B 303 486 554 727 ; C 203 ; WX 600 ; N cedilla ; B 143 -229 381 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 237 496 616 694 ; C 206 ; WX 600 ; N ogonek ; B 222 -208 433 0 ; C 207 ; WX 600 ; N caron ; B 264 497 617 696 ; C 208 ; WX 600 ; N emdash ; B 30 229 690 329 ; C 225 ; WX 600 ; N AE ; B -10 0 717 583 ; C 227 ; WX 600 ; N ordfeminine ; B 170 182 559 595 ; C 232 ; WX 600 ; N Lslash ; B 43 0 616 583 ; C 233 ; WX 600 ; N Oslash ; B 4 -70 717 638 ; C 234 ; WX 600 ; N OE ; B 34 0 717 583 ; C 235 ; WX 600 ; N ordmasculine ; B 168 182 566 595 ; C 241 ; WX 600 ; N ae ; B 14 -16 665 450 ; C 245 ; WX 600 ; N dotlessi ; B 72 0 550 437 ; C 248 ; WX 600 ; N lslash ; B 72 0 557 624 ; C 249 ; WX 600 ; N oslash ; B 17 -70 669 494 ; C 250 ; WX 600 ; N oe ; B 28 -16 666 450 ; C 251 ; WX 600 ; N germandbls ; B 22 -16 569 623 ; C -1 ; WX 600 ; N Udieresis ; B 110 -14 705 800 ; C -1 ; WX 600 ; N Uacute ; B 110 -14 705 839 ; C -1 ; WX 600 ; N Scedilla ; B 72 -229 634 597 ; C -1 ; WX 600 ; N Tcaron ; B 121 0 682 839 ; C -1 ; WX 600 ; N Scaron ; B 72 -14 657 839 ; C -1 ; WX 600 ; N Rcaron ; B 23 0 631 839 ; C -1 ; WX 600 ; N Racute ; B 23 0 631 839 ; C -1 ; WX 600 ; N Sacute ; B 72 -14 634 839 ; C -1 ; WX 600 ; N Otilde ; B 75 -14 656 799 ; C -1 ; WX 600 ; N ucircumflex ; B 94 -13 603 696 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 75 -14 680 837 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 110 -14 705 837 ; C -1 ; WX 600 ; N Yacute ; B 128 0 694 839 ; C -1 ; WX 600 ; N Eth ; B 23 0 622 583 ; C -1 ; WX 600 ; N Dcroat ; B 23 0 622 583 ; C -1 ; WX 600 ; N Zacute ; B 73 0 628 839 ; C -1 ; WX 600 ; N Uring ; B 110 -14 705 871 ; C -1 ; WX 600 ; N gbreve ; B 73 -205 675 687 ; C -1 ; WX 600 ; N eogonek ; B 74 -208 600 450 ; C -1 ; WX 600 ; N edotaccent ; B 74 -16 600 654 ; C -1 ; WX 600 ; N ecaron ; B 74 -16 617 696 ; C -1 ; WX 600 ; N Ugrave ; B 110 -14 705 839 ; C -1 ; WX 600 ; N Thorn ; B 23 0 588 583 ; C -1 ; WX 600 ; N eacute ; B 74 -16 600 696 ; C -1 ; WX 600 ; N edieresis ; B 74 -16 600 654 ; C -1 ; WX 740 ; N dcaron ; B 74 -14 840 639 ; C -1 ; WX 600 ; N ccedilla ; B 92 -229 626 450 ; C -1 ; WX 600 ; N ccaron ; B 93 -16 627 696 ; C -1 ; WX 600 ; N cacute ; B 93 -16 626 696 ; C -1 ; WX 600 ; N aogonek ; B 65 -208 583 450 ; C -1 ; WX 600 ; N aring ; B 65 -16 583 727 ; C -1 ; WX 600 ; N atilde ; B 65 -16 612 656 ; C -1 ; WX 600 ; N abreve ; B 65 -16 614 687 ; C -1 ; WX 600 ; N egrave ; B 74 -16 600 696 ; C -1 ; WX 600 ; N agrave ; B 65 -16 583 696 ; C -1 ; WX 600 ; N aacute ; B 66 -16 584 696 ; C -1 ; WX 600 ; N adieresis ; B 65 -16 583 654 ; C -1 ; WX 600 ; N Uogonek ; B 110 -208 705 583 ; C -1 ; WX 600 ; N ugrave ; B 94 -13 603 696 ; C -1 ; WX 600 ; N uacute ; B 94 -13 603 696 ; C -1 ; WX 600 ; N udieresis ; B 94 -13 603 654 ; C -1 ; WX 600 ; N tcaron ; B 94 -16 700 639 ; C -1 ; WX 600 ; N scommaaccent ; B 83 -278 592 450 ; C -1 ; WX 600 ; N Zcaron ; B 73 0 644 839 ; C -1 ; WX 600 ; N ecircumflex ; B 74 -16 600 696 ; C -1 ; WX 600 ; N Ucircumflex ; B 110 -14 705 839 ; C -1 ; WX 600 ; N acircumflex ; B 65 -16 583 696 ; C -1 ; WX 600 ; N Zdotaccent ; B 73 0 628 793 ; C -1 ; WX 600 ; N scaron ; B 83 -16 627 696 ; C -1 ; WX 600 ; N Amacron ; B -11 0 633 776 ; C -1 ; WX 600 ; N sacute ; B 83 -16 616 696 ; C -1 ; WX 600 ; N Tcommaaccent ; B 121 -278 682 583 ; C -1 ; WX 600 ; N Ydieresis ; B 128 0 694 800 ; C -1 ; WX 600 ; N thorn ; B -42 -205 623 624 ; C -1 ; WX 600 ; N Emacron ; B 23 0 652 776 ; C -1 ; WX 600 ; N Ograve ; B 75 -14 649 839 ; C -1 ; WX 600 ; N Oacute ; B 75 -14 649 839 ; C -1 ; WX 600 ; N Odieresis ; B 75 -14 649 800 ; C -1 ; WX 600 ; N Ntilde ; B 21 0 706 799 ; C -1 ; WX 600 ; N Ncaron ; B 21 0 706 839 ; C -1 ; WX 600 ; N Nacute ; B 21 0 706 839 ; C -1 ; WX 600 ; N Lcaron ; B 42 0 680 598 ; C -1 ; WX 600 ; N Lacute ; B 42 0 616 839 ; C -1 ; WX 600 ; N Idotaccent ; B 93 0 632 793 ; C -1 ; WX 600 ; N racute ; B 64 0 650 696 ; C -1 ; WX 600 ; N Icircumflex ; B 93 0 632 839 ; C -1 ; WX 600 ; N ohungarumlaut ; B 84 -16 616 694 ; C -1 ; WX 600 ; N otilde ; B 84 -16 626 656 ; C -1 ; WX 600 ; N Euro ; B 54 -14 639 597 ; C -1 ; WX 600 ; N ocircumflex ; B 84 -16 609 696 ; C -1 ; WX 600 ; N onesuperior ; B 224 247 494 638 ; C -1 ; WX 600 ; N twosuperior ; B 202 247 538 637 ; C -1 ; WX 600 ; N threesuperior ; B 218 238 543 637 ; C -1 ; WX 600 ; N Igrave ; B 93 0 632 839 ; C -1 ; WX 600 ; N Iacute ; B 93 0 632 839 ; C -1 ; WX 600 ; N Imacron ; B 93 0 632 776 ; C -1 ; WX 600 ; N Iogonek ; B 93 -208 632 583 ; C -1 ; WX 600 ; N Idieresis ; B 93 0 632 800 ; C -1 ; WX 600 ; N Gbreve ; B 79 -14 667 831 ; C -1 ; WX 600 ; N Umacron ; B 110 -14 705 776 ; C -1 ; WX 600 ; N Kcommaaccent ; B 22 -278 687 583 ; C -1 ; WX 600 ; N ograve ; B 84 -16 609 696 ; C -1 ; WX 600 ; N Scommaaccent ; B 72 -278 634 597 ; C -1 ; WX 600 ; N Eogonek ; B 23 -208 652 583 ; C -1 ; WX 600 ; N oacute ; B 84 -16 609 696 ; C -1 ; WX 600 ; N Edotaccent ; B 23 0 652 793 ; C -1 ; WX 600 ; N iogonek ; B 72 -208 550 623 ; C -1 ; WX 600 ; N gcommaaccent ; B 73 -205 675 722 ; C -1 ; WX 600 ; N odieresis ; B 84 -16 609 654 ; C -1 ; WX 600 ; N ntilde ; B 33 0 613 656 ; C -1 ; WX 600 ; N ncaron ; B 33 0 617 696 ; C -1 ; WX 600 ; N Ecaron ; B 23 0 652 839 ; C -1 ; WX 600 ; N Ecircumflex ; B 23 0 652 839 ; C -1 ; WX 600 ; N scedilla ; B 83 -229 592 450 ; C -1 ; WX 600 ; N rcaron ; B 64 0 650 696 ; C -1 ; WX 600 ; N Egrave ; B 23 0 652 839 ; C -1 ; WX 600 ; N Eacute ; B 23 0 652 839 ; C -1 ; WX 600 ; N Gcommaaccent ; B 79 -278 667 597 ; C -1 ; WX 600 ; N Rcommaaccent ; B 23 -278 631 583 ; C -1 ; WX 600 ; N Edieresis ; B 23 0 652 800 ; C -1 ; WX 600 ; N nacute ; B 33 0 616 696 ; C -1 ; WX 600 ; N uogonek ; B 94 -208 603 437 ; C -1 ; WX 600 ; N umacron ; B 94 -13 603 626 ; C -1 ; WX 600 ; N Dcaron ; B 23 0 622 839 ; C -1 ; WX 600 ; N lcaron ; B 72 0 700 639 ; C -1 ; WX 600 ; N Ccaron ; B 80 -14 663 839 ; C -1 ; WX 600 ; N Cacute ; B 80 -14 663 839 ; C -1 ; WX 600 ; N Ccedilla ; B 80 -229 663 597 ; C -1 ; WX 600 ; N degree ; B 210 243 568 596 ; C -1 ; WX 600 ; N Aogonek ; B -11 -208 633 583 ; C -1 ; WX 600 ; N minus ; B 101 230 619 330 ; C -1 ; WX 600 ; N multiply ; B 126 80 592 480 ; C -1 ; WX 600 ; N divide ; B 101 28 619 532 ; C -1 ; WX 600 ; N Aring ; B -11 0 633 871 ; C -1 ; WX 600 ; N trademark ; B 60 220 732 583 ; C -1 ; WX 600 ; N rcommaaccent ; B 64 -278 650 449 ; C -1 ; WX 600 ; N lacute ; B 72 0 600 839 ; C -1 ; WX 600 ; N omacron ; B 84 -16 609 626 ; C -1 ; WX 600 ; N Atilde ; B -11 0 633 799 ; C -1 ; WX 600 ; N icircumflex ; B 72 0 573 696 ; C -1 ; WX 600 ; N igrave ; B 72 0 550 696 ; C -1 ; WX 600 ; N ncommaaccent ; B 33 -278 583 450 ; C -1 ; WX 600 ; N lcommaaccent ; B 72 -278 550 624 ; C -1 ; WX 600 ; N plusminus ; B 52 0 640 624 ; C -1 ; WX 600 ; N onehalf ; B 25 0 685 638 ; C -1 ; WX 600 ; N onequarter ; B 25 0 673 638 ; C -1 ; WX 600 ; N threequarters ; B 18 0 673 637 ; C -1 ; WX 600 ; N iacute ; B 71 0 574 696 ; C -1 ; WX 600 ; N Abreve ; B -11 0 633 831 ; C -1 ; WX 600 ; N kcommaaccent ; B 42 -278 606 624 ; C -1 ; WX 600 ; N Omacron ; B 75 -14 649 776 ; C -1 ; WX 600 ; N imacron ; B 72 0 600 626 ; C -1 ; WX 600 ; N emacron ; B 74 -16 600 626 ; C -1 ; WX 600 ; N amacron ; B 65 -16 600 626 ; C -1 ; WX 600 ; N tcommaaccent ; B 94 -278 547 591 ; C -1 ; WX 600 ; N ydieresis ; B -13 -205 662 654 ; C -1 ; WX 600 ; N zdotaccent ; B 85 0 599 654 ; C -1 ; WX 600 ; N zcaron ; B 85 0 619 696 ; C -1 ; WX 600 ; N zacute ; B 85 0 616 696 ; C -1 ; WX 600 ; N yacute ; B -13 -205 662 696 ; C -1 ; WX 600 ; N uhungarumlaut ; B 94 -13 616 694 ; C -1 ; WX 600 ; N eth ; B 83 -16 617 646 ; C -1 ; WX 600 ; N uring ; B 94 -13 603 727 ; C -1 ; WX 600 ; N Ocircumflex ; B 75 -14 649 839 ; C -1 ; WX 600 ; N commaaccent ; B 147 -278 342 -59 ; C -1 ; WX 600 ; N copyright ; B 48 -15 675 598 ; C -1 ; WX 600 ; N registered ; B 48 -15 675 598 ; C -1 ; WX 600 ; N Acircumflex ; B -11 0 633 839 ; C -1 ; WX 600 ; N idieresis ; B 72 0 575 656 ; C -1 ; WX 600 ; N lozenge ; B 133 -19 590 593 ; C -1 ; WX 600 ; N Delta ; B 15 0 585 583 ; C -1 ; WX 600 ; N notequal ; B 81 22 638 525 ; C -1 ; WX 600 ; N radical ; B 74 -60 782 697 ; C -1 ; WX 600 ; N Agrave ; B -11 0 633 839 ; C -1 ; WX 600 ; N Aacute ; B -11 0 633 839 ; C -1 ; WX 600 ; N lessequal ; B 50 0 666 591 ; C -1 ; WX 600 ; N greaterequal ; B 52 0 660 591 ; C -1 ; WX 600 ; N logicalnot ; B 125 115 560 445 ; C -1 ; WX 600 ; N summation ; B 32 -97 668 671 ; C -1 ; WX 600 ; N partialdiff ; B 138 -16 579 590 ; C -1 ; WX 600 ; N Ncommaaccent ; B 21 -278 706 583 ; C -1 ; WX 600 ; N dcroat ; B 74 -14 712 624 ; C -1 ; WX 600 ; N brokenbar ; B 227 -153 472 622 ; C -1 ; WX 600 ; N Lcommaaccent ; B 42 -278 616 583 ; C -1 ; WX 600 ; N Adieresis ; B -11 0 633 800 ; C -1 ; WX 600 ; N mu ; B 72 -153 603 440 ; C -1 ; WX 600 ; N .notdef ; B 386 0 386 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -24 KPX A Ccedilla -30 KPX A G -20 KPX A O -26 KPX A Odieresis -26 KPX A Q -25 KPX A T -35 KPX A U -33 KPX A Uacute -33 KPX A Ucircumflex -33 KPX A Udieresis -33 KPX A Ugrave -33 KPX A V -63 KPX A W -21 KPX A Y -34 KPX A a 8 KPX A b 39 KPX A c -12 KPX A ccedilla -15 KPX A comma -52 KPX A d -4 KPX A e -5 KPX A g -5 KPX A guillemotleft -44 KPX A guilsinglleft -44 KPX A hyphen -23 KPX A o -11 KPX A period -67 KPX A q -10 KPX A quotedblright -89 KPX A quoteright -116 KPX A t -25 KPX A u -18 KPX A v -41 KPX A w -15 KPX A y -41 KPX Aacute C -24 KPX Aacute G -20 KPX Aacute O -26 KPX Aacute Q -25 KPX Aacute T -35 KPX Aacute U -33 KPX Aacute V -63 KPX Aacute W -21 KPX Aacute Y -34 KPX Aacute a 8 KPX Aacute b 39 KPX Aacute c -12 KPX Aacute comma -52 KPX Aacute d -4 KPX Aacute e -5 KPX Aacute g -5 KPX Aacute guillemotleft -44 KPX Aacute guilsinglleft -44 KPX Aacute hyphen -23 KPX Aacute o -11 KPX Aacute period -67 KPX Aacute q -10 KPX Aacute quoteright -116 KPX Aacute t -25 KPX Aacute u -18 KPX Aacute v -41 KPX Aacute w -15 KPX Aacute y -41 KPX Acircumflex C -24 KPX Acircumflex G -20 KPX Acircumflex O -26 KPX Acircumflex Q -25 KPX Acircumflex T -35 KPX Acircumflex U -33 KPX Acircumflex V -63 KPX Acircumflex W -21 KPX Acircumflex Y -34 KPX Acircumflex comma -52 KPX Acircumflex period -67 KPX Adieresis C -24 KPX Adieresis G -20 KPX Adieresis O -26 KPX Adieresis Q -25 KPX Adieresis T -35 KPX Adieresis U -33 KPX Adieresis V -63 KPX Adieresis W -21 KPX Adieresis Y -34 KPX Adieresis a 8 KPX Adieresis b 39 KPX Adieresis c -12 KPX Adieresis comma -52 KPX Adieresis d -4 KPX Adieresis g -5 KPX Adieresis guillemotleft -44 KPX Adieresis guilsinglleft -44 KPX Adieresis hyphen -23 KPX Adieresis o -11 KPX Adieresis period -67 KPX Adieresis q -10 KPX Adieresis quotedblright -89 KPX Adieresis quoteright -116 KPX Adieresis t -25 KPX Adieresis u -18 KPX Adieresis v -41 KPX Adieresis w -15 KPX Adieresis y -41 KPX Agrave C -24 KPX Agrave G -20 KPX Agrave O -26 KPX Agrave Q -25 KPX Agrave T -35 KPX Agrave U -33 KPX Agrave V -63 KPX Agrave W -21 KPX Agrave Y -34 KPX Agrave comma -52 KPX Agrave period -67 KPX Aring C -24 KPX Aring G -20 KPX Aring O -26 KPX Aring Q -25 KPX Aring T -35 KPX Aring U -33 KPX Aring V -63 KPX Aring W -21 KPX Aring Y -34 KPX Aring a 8 KPX Aring b 39 KPX Aring c -12 KPX Aring comma -52 KPX Aring d -4 KPX Aring e -5 KPX Aring g -5 KPX Aring guillemotleft -44 KPX Aring guilsinglleft -44 KPX Aring hyphen -23 KPX Aring o -11 KPX Aring period -67 KPX Aring q -10 KPX Aring quotedblright -89 KPX Aring quoteright -116 KPX Aring t -25 KPX Aring u -18 KPX Aring v -41 KPX Aring w -15 KPX Aring y -41 KPX Atilde C -24 KPX Atilde G -20 KPX Atilde O -26 KPX Atilde Q -25 KPX Atilde T -35 KPX Atilde U -33 KPX Atilde V -63 KPX Atilde W -21 KPX Atilde Y -34 KPX Atilde comma -52 KPX Atilde period -67 KPX B A -2 KPX B AE -3 KPX B Aacute -2 KPX B Acircumflex -2 KPX B Adieresis -2 KPX B Aring -2 KPX B Atilde -2 KPX B O -14 KPX B OE 7 KPX B Oacute -14 KPX B Ocircumflex -14 KPX B Odieresis -14 KPX B Ograve -14 KPX B Oslash -12 KPX B V -29 KPX B W -10 KPX B Y -50 KPX C A 2 KPX C AE 2 KPX C Aacute 2 KPX C Adieresis 2 KPX C Aring 2 KPX C H -18 KPX C K -13 KPX C O -19 KPX C Oacute -19 KPX C Odieresis -19 KPX Ccedilla A -5 KPX D A -32 KPX D Aacute -32 KPX D Acircumflex -32 KPX D Adieresis -32 KPX D Agrave -32 KPX D Aring -32 KPX D Atilde -32 KPX D J -38 KPX D T -36 KPX D V -40 KPX D W -16 KPX D X -40 KPX D Y -61 KPX F A -47 KPX F Aacute -47 KPX F Acircumflex -47 KPX F Adieresis -47 KPX F Agrave -47 KPX F Aring -47 KPX F Atilde -47 KPX F J -83 KPX F O -32 KPX F Odieresis -32 KPX F a -44 KPX F aacute -45 KPX F adieresis -44 KPX F ae -22 KPX F aring -44 KPX F comma -172 KPX F e -51 KPX F eacute -51 KPX F hyphen -61 KPX F i -50 KPX F j -58 KPX F o -55 KPX F oacute -55 KPX F odieresis -55 KPX F oe -20 KPX F oslash -55 KPX F period -191 KPX F r -37 KPX F u -6 KPX G A 0 KPX G AE 0 KPX G Aacute 0 KPX G Acircumflex 0 KPX G Adieresis 0 KPX G Agrave 0 KPX G Aring 0 KPX G Atilde 0 KPX G T -30 KPX G V 1 KPX G W 5 KPX G Y -20 KPX J A -15 KPX J AE -24 KPX J Adieresis -15 KPX J Aring -15 KPX K C -32 KPX K G -30 KPX K O -31 KPX K OE -9 KPX K Oacute -31 KPX K Odieresis -31 KPX K S -17 KPX K T -20 KPX K a -1 KPX K adieresis -1 KPX K ae 23 KPX K aring -1 KPX K e -14 KPX K hyphen -50 KPX K o -20 KPX K oacute -20 KPX K odieresis -20 KPX K u -30 KPX K udieresis -30 KPX K y -56 KPX L A 9 KPX L AE 9 KPX L Aacute 9 KPX L Adieresis 9 KPX L Aring 9 KPX L C -19 KPX L Ccedilla -19 KPX L G -19 KPX L O -16 KPX L Oacute -16 KPX L Ocircumflex -16 KPX L Odieresis -16 KPX L Ograve -16 KPX L Otilde -16 KPX L S -32 KPX L T -60 KPX L U -31 KPX L Udieresis -31 KPX L V -61 KPX L W -23 KPX L Y -59 KPX L hyphen 5 KPX L quotedblright -82 KPX L quoteright -107 KPX L u -13 KPX L udieresis -14 KPX L y -36 KPX N A -10 KPX N AE -11 KPX N Aacute -10 KPX N Adieresis -10 KPX N Aring -10 KPX N C -13 KPX N Ccedilla -10 KPX N G -12 KPX N O -10 KPX N Oacute -10 KPX N Odieresis -10 KPX N a -14 KPX N aacute -15 KPX N adieresis -14 KPX N ae 14 KPX N aring -14 KPX N comma -79 KPX N e -7 KPX N eacute -7 KPX N o -12 KPX N oacute -12 KPX N odieresis -12 KPX N oslash -6 KPX N period -98 KPX N u -12 KPX N udieresis -12 KPX O A -21 KPX O AE -20 KPX O Aacute -21 KPX O Adieresis -21 KPX O Aring -21 KPX O T -23 KPX O V -32 KPX O W -4 KPX O X -28 KPX O Y -51 KPX Oacute A -21 KPX Oacute T -23 KPX Oacute V -32 KPX Oacute W -4 KPX Oacute Y -51 KPX Ocircumflex T -23 KPX Ocircumflex V -32 KPX Ocircumflex Y -51 KPX Odieresis A -21 KPX Odieresis T -23 KPX Odieresis V -32 KPX Odieresis W -4 KPX Odieresis X -28 KPX Odieresis Y -51 KPX Ograve T -23 KPX Ograve V -32 KPX Ograve Y -51 KPX Oslash A -13 KPX Otilde T -23 KPX Otilde V -32 KPX Otilde Y -51 KPX P A -65 KPX P AE -63 KPX P Aacute -65 KPX P Adieresis -65 KPX P Aring -65 KPX P J -80 KPX P a -54 KPX P aacute -54 KPX P adieresis -54 KPX P ae -31 KPX P aring -54 KPX P comma -164 KPX P e -43 KPX P eacute -43 KPX P hyphen -39 KPX P o -47 KPX P oacute -47 KPX P odieresis -47 KPX P oe -18 KPX P oslash -46 KPX P period -183 KPX R C -19 KPX R Ccedilla -18 KPX R G -18 KPX R O -18 KPX R OE 3 KPX R Oacute -18 KPX R Odieresis -18 KPX R T -36 KPX R U -20 KPX R Udieresis -21 KPX R V -34 KPX R W -10 KPX R Y -35 KPX R a 7 KPX R aacute 6 KPX R adieresis 7 KPX R ae 32 KPX R aring 7 KPX R e -4 KPX R eacute -4 KPX R hyphen -30 KPX R o -9 KPX R oacute -9 KPX R odieresis -9 KPX R oe 24 KPX R u -9 KPX R uacute -9 KPX R udieresis -9 KPX R y -22 KPX S A -16 KPX S AE -16 KPX S Aacute -16 KPX S Adieresis -16 KPX S Aring -16 KPX S T -47 KPX S V -16 KPX S W -15 KPX S Y -37 KPX S t -20 KPX T A -35 KPX T AE -35 KPX T Aacute -35 KPX T Acircumflex -35 KPX T Adieresis -35 KPX T Agrave -35 KPX T Aring -35 KPX T Atilde -35 KPX T C -27 KPX T G -27 KPX T J -72 KPX T O -22 KPX T OE 0 KPX T Oacute -22 KPX T Ocircumflex -22 KPX T Odieresis -22 KPX T Ograve -22 KPX T Oslash -23 KPX T Otilde -22 KPX T S -49 KPX T V 4 KPX T W -2 KPX T Y -17 KPX T a -39 KPX T ae -17 KPX T c -42 KPX T colon -119 KPX T comma -136 KPX T e -31 KPX T g -28 KPX T guillemotleft -81 KPX T guilsinglleft -81 KPX T hyphen -96 KPX T i -46 KPX T j -53 KPX T o -36 KPX T oslash -36 KPX T period -154 KPX T r -33 KPX T s -43 KPX T semicolon -106 KPX T u -1 KPX T v 6 KPX T w 5 KPX T y -4 KPX U A -23 KPX U AE -22 KPX U Aacute -23 KPX U Acircumflex -23 KPX U Adieresis -23 KPX U Aring -23 KPX U Atilde -23 KPX U comma -98 KPX U m 14 KPX U n -10 KPX U p -3 KPX U period -118 KPX U r -36 KPX Uacute A -23 KPX Uacute comma -98 KPX Uacute m 14 KPX Uacute n -10 KPX Uacute p -3 KPX Uacute period -118 KPX Uacute r -36 KPX Ucircumflex A -23 KPX Udieresis A -23 KPX Udieresis b 20 KPX Udieresis comma -98 KPX Udieresis m 14 KPX Udieresis n -10 KPX Udieresis p -3 KPX Udieresis period -118 KPX Udieresis r -36 KPX Ugrave A -23 KPX V A -12 KPX V AE -21 KPX V Aacute -12 KPX V Acircumflex -12 KPX V Adieresis -12 KPX V Agrave -12 KPX V Aring -12 KPX V Atilde -12 KPX V C -34 KPX V G -34 KPX V O -32 KPX V Oacute -32 KPX V Ocircumflex -32 KPX V Odieresis -32 KPX V Ograve -32 KPX V Oslash -32 KPX V Otilde -32 KPX V S -35 KPX V T 3 KPX V a -59 KPX V ae -30 KPX V colon -139 KPX V comma -150 KPX V e -51 KPX V g -50 KPX V guillemotleft -83 KPX V guilsinglleft -83 KPX V hyphen -45 KPX V i -64 KPX V o -56 KPX V oslash -51 KPX V period -169 KPX V r -51 KPX V semicolon -127 KPX V u -21 KPX V y -22 KPX W A -15 KPX W AE -14 KPX W Aacute -15 KPX W Acircumflex -15 KPX W Adieresis -15 KPX W Agrave -15 KPX W Aring -15 KPX W Atilde -15 KPX W C -9 KPX W G -8 KPX W O -7 KPX W Oacute -7 KPX W Ocircumflex -7 KPX W Odieresis -7 KPX W Ograve -7 KPX W Oslash -3 KPX W Otilde -7 KPX W S -21 KPX W T -1 KPX W a -14 KPX W ae 15 KPX W colon -103 KPX W comma -86 KPX W e -6 KPX W g -5 KPX W guillemotleft -38 KPX W guilsinglleft -38 KPX W hyphen -3 KPX W i -40 KPX W o -11 KPX W oslash -6 KPX W period -105 KPX W r -28 KPX W semicolon -86 KPX W u -3 KPX W y -6 KPX X C -33 KPX X O -31 KPX X Odieresis -31 KPX X Q -30 KPX X a -7 KPX X e -20 KPX X hyphen -55 KPX X o -26 KPX X u -36 KPX X y -49 KPX Y A -32 KPX Y AE -35 KPX Y Aacute -32 KPX Y Acircumflex -32 KPX Y Adieresis -32 KPX Y Agrave -32 KPX Y Aring -32 KPX Y Atilde -32 KPX Y C -54 KPX Y G -54 KPX Y O -52 KPX Y Oacute -52 KPX Y Ocircumflex -52 KPX Y Odieresis -52 KPX Y Ograve -52 KPX Y Oslash -50 KPX Y Otilde -52 KPX Y S -55 KPX Y T -17 KPX Y a -61 KPX Y ae -36 KPX Y colon -157 KPX Y comma -123 KPX Y e -63 KPX Y g -62 KPX Y guillemotleft -99 KPX Y guilsinglleft -99 KPX Y hyphen -87 KPX Y i -63 KPX Y o -68 KPX Y oslash -56 KPX Y p -34 KPX Y period -141 KPX Y semicolon -139 KPX Y u -48 KPX Y v -38 KPX Z v -47 KPX Z y -55 KPX a j -85 KPX a quoteright -79 KPX a v -25 KPX a w -13 KPX a y -36 KPX aacute v -25 KPX aacute w -13 KPX aacute y -36 KPX adieresis v -25 KPX adieresis w -13 KPX adieresis y -36 KPX ae v 24 KPX ae w 31 KPX ae y 13 KPX agrave v -25 KPX agrave w -13 KPX agrave y -36 KPX aring v -25 KPX aring w -13 KPX aring y -36 KPX b v -4 KPX b w 3 KPX b y -15 KPX c h 8 KPX c k 3 KPX comma one -133 KPX comma quotedblright -142 KPX comma quoteright -170 KPX e quoteright -64 KPX e t -16 KPX e v -14 KPX e w -4 KPX e x 3 KPX e y -25 KPX eacute v -14 KPX eacute w -4 KPX eacute y -25 KPX ecircumflex v -14 KPX ecircumflex w -4 KPX ecircumflex y -25 KPX eight four -63 KPX eight one -80 KPX eight seven -75 KPX f a -38 KPX f aacute -38 KPX f adieresis -38 KPX f ae -13 KPX f aring -38 KPX f e -46 KPX f eacute -46 KPX f f -46 KPX f i -40 KPX f j -63 KPX f l -30 KPX f o -51 KPX f oacute -51 KPX f odieresis -48 KPX f oe -17 KPX f oslash -34 KPX f quoteright -78 KPX f s -46 KPX f t -10 KPX five four -58 KPX five one -80 KPX five seven -80 KPX four four -68 KPX four one -72 KPX four seven -100 KPX g a -7 KPX g adieresis -7 KPX g ae 21 KPX g aring -7 KPX g e -1 KPX g eacute -1 KPX g l -38 KPX g oacute -6 KPX g odieresis -6 KPX g r -5 KPX guillemotright A -42 KPX guillemotright AE -39 KPX guillemotright Aacute -42 KPX guillemotright Adieresis -42 KPX guillemotright Aring -42 KPX guillemotright T -81 KPX guillemotright V -80 KPX guillemotright W -35 KPX guillemotright Y -96 KPX guilsinglright A -42 KPX guilsinglright AE -39 KPX guilsinglright Aacute -42 KPX guilsinglright Adieresis -42 KPX guilsinglright Aring -42 KPX guilsinglright T -81 KPX guilsinglright V -80 KPX guilsinglright W -35 KPX guilsinglright Y -96 KPX h quoteright -71 KPX h y -29 KPX hyphen A -21 KPX hyphen AE -17 KPX hyphen Aacute -21 KPX hyphen Adieresis -21 KPX hyphen Aring -21 KPX hyphen T -93 KPX hyphen V -41 KPX hyphen W -1 KPX hyphen Y -84 KPX i T -64 KPX i j -145 KPX k a -5 KPX k aacute -5 KPX k adieresis -5 KPX k ae 20 KPX k aring -5 KPX k comma -67 KPX k e -17 KPX k eacute -17 KPX k g -16 KPX k hyphen -53 KPX k o -22 KPX k oacute -22 KPX k odieresis -22 KPX k period -80 KPX k s -13 KPX k u -7 KPX k udieresis -7 KPX l v -77 KPX l y -78 KPX m p 31 KPX m v 13 KPX m w 22 KPX m y 2 KPX n T -47 KPX n p 2 KPX n quoteright -69 KPX n v -17 KPX n w -6 KPX n y -28 KPX nine four -59 KPX nine one -76 KPX nine seven -68 KPX o T -39 KPX o quoteright -61 KPX o t -16 KPX o v -10 KPX o w -3 KPX o x -10 KPX o y -21 KPX oacute v -10 KPX oacute w -3 KPX oacute y -21 KPX ocircumflex t -16 KPX odieresis t -16 KPX odieresis v -10 KPX odieresis w -3 KPX odieresis x -10 KPX odieresis y -21 KPX ograve v -10 KPX ograve w -3 KPX ograve y -21 KPX one comma -104 KPX one eight -83 KPX one five -63 KPX one four -95 KPX one nine -80 KPX one one -68 KPX one period -119 KPX one seven -146 KPX one six -107 KPX one three -62 KPX one two -53 KPX one zero -95 KPX p t -7 KPX p y -12 KPX period one -118 KPX period quotedblright -137 KPX period quoteright -165 KPX q c 0 KPX q u 37 KPX quotedblbase A -10 KPX quotedblbase AE -11 KPX quotedblbase T -92 KPX quotedblbase V -108 KPX quotedblbase W -46 KPX quotedblbase Y -80 KPX quotedblleft A -66 KPX quotedblleft AE -64 KPX quotedblleft Aacute -66 KPX quotedblleft Adieresis -66 KPX quotedblleft Aring -66 KPX quotedblleft T -28 KPX quotedblleft V -20 KPX quotedblleft W -15 KPX quotedblleft Y -50 KPX quotedblright A -81 KPX quotedblright AE -79 KPX quotedblright Aacute -81 KPX quotedblright Adieresis -81 KPX quotedblright Aring -81 KPX quotedblright T -45 KPX quotedblright V -35 KPX quotedblright W -30 KPX quotedblright Y -57 KPX quoteleft A -90 KPX quoteleft AE -88 KPX quoteleft Aacute -90 KPX quoteleft Adieresis -90 KPX quoteleft Aring -90 KPX quoteleft T -52 KPX quoteleft V -45 KPX quoteleft W -40 KPX quoteleft Y -74 KPX quoteright A -160 KPX quoteright AE -158 KPX quoteright Aacute -160 KPX quoteright Adieresis -160 KPX quoteright Aring -160 KPX quoteright comma -234 KPX quoteright d -146 KPX quoteright o -148 KPX quoteright period -251 KPX quoteright r -155 KPX quoteright s -154 KPX quoteright t -121 KPX quoteright v -114 KPX quoteright w -109 KPX quoteright y -120 KPX r a -22 KPX r aacute -22 KPX r acircumflex -22 KPX r adieresis -22 KPX r ae 0 KPX r agrave -22 KPX r aring -22 KPX r c -23 KPX r ccedilla -18 KPX r colon -100 KPX r comma -112 KPX r d -13 KPX r e -11 KPX r eacute -11 KPX r ecircumflex -11 KPX r egrave -11 KPX r f -20 KPX r g -9 KPX r h -23 KPX r hyphen -48 KPX r i -30 KPX r j -38 KPX r k -33 KPX r l -50 KPX r m 31 KPX r n 5 KPX r o -16 KPX r oacute -16 KPX r ocircumflex -16 KPX r odieresis -16 KPX r oe 15 KPX r ograve -16 KPX r oslash -16 KPX r p 25 KPX r period -126 KPX r q -8 KPX r quoteright -45 KPX r r -17 KPX r s -25 KPX r semicolon -88 KPX r t 15 KPX r u 15 KPX r v 22 KPX r w 21 KPX r x 2 KPX r y 10 KPX r z -24 KPX s quoteright -62 KPX s t -14 KPX seven colon -162 KPX seven comma -160 KPX seven eight -79 KPX seven five -87 KPX seven four -105 KPX seven one -72 KPX seven period -179 KPX seven seven -69 KPX seven six -98 KPX seven three -78 KPX seven two -70 KPX six four -54 KPX six one -60 KPX six seven -55 KPX t S -40 KPX t a -21 KPX t aacute -21 KPX t adieresis -21 KPX t ae 4 KPX t aring -21 KPX t colon -121 KPX t e -30 KPX t eacute -30 KPX t h -8 KPX t o -36 KPX t oacute -36 KPX t odieresis -36 KPX t quoteright -102 KPX t semicolon -107 KPX three four -58 KPX three one -79 KPX three seven -74 KPX two four -75 KPX two one -73 KPX two seven -78 KPX u quoteright -58 KPX v a -7 KPX v aacute -7 KPX v acircumflex -7 KPX v adieresis -7 KPX v ae 15 KPX v agrave -7 KPX v aring -7 KPX v atilde -7 KPX v c -17 KPX v colon -86 KPX v comma -139 KPX v e -6 KPX v eacute -6 KPX v ecircumflex -6 KPX v egrave -6 KPX v g -2 KPX v hyphen -28 KPX v l -79 KPX v o -11 KPX v oacute -11 KPX v odieresis -11 KPX v ograve -11 KPX v oslash -10 KPX v period -159 KPX v s -15 KPX v semicolon -74 KPX w a -6 KPX w aacute -7 KPX w acircumflex -6 KPX w adieresis -6 KPX w ae 22 KPX w agrave -6 KPX w aring -6 KPX w atilde -6 KPX w c -8 KPX w colon -86 KPX w comma -93 KPX w e 0 KPX w eacute 0 KPX w ecircumflex 0 KPX w egrave 0 KPX w g 2 KPX w hyphen -1 KPX w l -51 KPX w o -4 KPX w oacute -4 KPX w odieresis -4 KPX w ograve -4 KPX w oslash 0 KPX w period -112 KPX w s -13 KPX w semicolon -74 KPX x a -1 KPX x c -16 KPX x e -7 KPX x eacute -7 KPX x o -12 KPX x q -9 KPX y a -17 KPX y aacute -18 KPX y acircumflex -17 KPX y adieresis -17 KPX y ae 4 KPX y agrave -17 KPX y aring -17 KPX y atilde -17 KPX y c -25 KPX y colon -96 KPX y comma -137 KPX y e -14 KPX y eacute -14 KPX y ecircumflex -14 KPX y egrave -14 KPX y g -11 KPX y hyphen -23 KPX y l -79 KPX y o -20 KPX y oacute -20 KPX y odieresis -20 KPX y ograve -20 KPX y oslash -19 KPX y period -158 KPX y s -24 KPX y semicolon -84 KPX zero four -65 KPX zero one -81 KPX zero seven -79 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n021023l.afm0000644000076500001440000007626007056046553016420 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusRomNo9L-ReguItal FullName Nimbus Roman No9 L Regular Italic FamilyName Nimbus Roman No9 L Weight Regular ItalicAngle -15.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -169 -270 1010 924 CapHeight 653 XHeight 432 Descender -205 Ascender 683 StartCharMetrics 316 C 32 ; WX 250 ; N space ; B 125 0 125 0 ; C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; C 49 ; WX 500 ; N one ; B 49 0 409 676 ; C 50 ; WX 500 ; N two ; B 12 0 452 676 ; C 51 ; WX 500 ; N three ; B 15 -7 466 676 ; C 52 ; WX 500 ; N four ; B 1 0 479 676 ; C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; C 60 ; WX 675 ; N less ; B 84 -10 592 516 ; C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; C 62 ; WX 675 ; N greater ; B 84 -10 592 516 ; C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; C 65 ; WX 611 ; N A ; B -51 0 564 668 ; C 66 ; WX 611 ; N B ; B -8 0 588 653 ; C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; C 68 ; WX 722 ; N D ; B -8 0 700 653 ; C 69 ; WX 611 ; N E ; B -1 0 634 653 ; C 70 ; WX 611 ; N F ; B 8 0 645 653 ; C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; C 72 ; WX 722 ; N H ; B -8 0 767 653 ; C 73 ; WX 333 ; N I ; B -8 0 384 653 ; C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; C 75 ; WX 667 ; N K ; B 7 0 722 653 ; C 76 ; WX 556 ; N L ; B -8 0 559 653 ; C 77 ; WX 833 ; N M ; B -18 0 873 653 ; C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; C 79 ; WX 722 ; N O ; B 60 -18 706 666 ; C 80 ; WX 611 ; N P ; B 0 0 605 653 ; C 81 ; WX 722 ; N Q ; B 59 -183 699 666 ; C 82 ; WX 611 ; N R ; B -13 0 588 653 ; C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; C 84 ; WX 556 ; N T ; B 59 0 633 653 ; C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; C 88 ; WX 611 ; N X ; B -29 0 655 653 ; C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; C 108 ; WX 278 ; N l ; B 40 -11 279 683 ; C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; C 112 ; WX 500 ; N p ; B -75 -205 469 442 ; C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; C 114 ; WX 389 ; N r ; B 45 0 412 441 ; C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; C 126 ; WX 541 ; N asciitilde ; B 40 186 502 320 ; C 161 ; WX 389 ; N exclamdown ; B 59 -205 321 474 ; C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; C 191 ; WX 500 ; N questiondown ; B 28 -205 367 473 ; C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; C 202 ; WX 333 ; N ring ; B 155 508 355 707 ; C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ; C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ; C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ; C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ; C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ; C -1 ; WX 722 ; N Otilde ; B 60 -18 706 836 ; C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 706 876 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ; C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ; C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ; C -1 ; WX 722 ; N Uring ; B 102 -18 765 919 ; C -1 ; WX 500 ; N gbreve ; B 8 -206 502 650 ; C -1 ; WX 444 ; N eogonek ; B 31 -169 444 441 ; C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ; C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ; C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; C -1 ; WX 521 ; N dcaron ; B 15 -13 641 683 ; C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; C -1 ; WX 444 ; N ccaron ; B 30 -11 484 661 ; C -1 ; WX 444 ; N cacute ; B 30 -11 458 664 ; C -1 ; WX 500 ; N aogonek ; B 17 -169 500 441 ; C -1 ; WX 500 ; N aring ; B 17 -11 476 707 ; C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ; C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; C -1 ; WX 722 ; N Uogonek ; B 102 -169 765 653 ; C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; C -1 ; WX 278 ; N tcaron ; B 37 -11 378 666 ; C -1 ; WX 389 ; N scommaaccent ; B 16 -270 366 442 ; C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ; C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ; C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ; C -1 ; WX 556 ; N Tcommaaccent ; B 59 -270 633 653 ; C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ; C -1 ; WX 722 ; N Ograve ; B 60 -18 706 876 ; C -1 ; WX 722 ; N Oacute ; B 60 -18 706 876 ; C -1 ; WX 722 ; N Odieresis ; B 60 -18 706 818 ; C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ; C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ; C -1 ; WX 556 ; N Lcaron ; B -8 0 596 666 ; C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ; C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ; C -1 ; WX 389 ; N racute ; B 45 0 431 664 ; C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 570 664 ; C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; C -1 ; WX 500 ; N Euro ; B 57 0 668 693 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; C -1 ; WX 333 ; N Iacute ; B -8 0 403 876 ; C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ; C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ; C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ; C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ; C -1 ; WX 667 ; N Kcommaaccent ; B 7 -270 722 653 ; C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; C -1 ; WX 500 ; N Scommaaccent ; B 17 -270 508 667 ; C -1 ; WX 611 ; N Eogonek ; B -1 -169 651 653 ; C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ; C -1 ; WX 278 ; N iogonek ; B 49 -169 278 654 ; C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ; C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ; C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ; C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; C -1 ; WX 389 ; N scedilla ; B -2 -217 366 442 ; C -1 ; WX 389 ; N rcaron ; B 45 0 454 661 ; C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; C -1 ; WX 722 ; N Gcommaaccent ; B 52 -270 722 666 ; C -1 ; WX 611 ; N Rcommaaccent ; B -13 -270 588 653 ; C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; C -1 ; WX 500 ; N nacute ; B 14 -9 487 664 ; C -1 ; WX 500 ; N uogonek ; B 42 -169 500 441 ; C -1 ; WX 500 ; N umacron ; B 42 -11 495 583 ; C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ; C -1 ; WX 278 ; N lcaron ; B 40 -11 395 683 ; C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ; C -1 ; WX 667 ; N Cacute ; B 66 -18 689 876 ; C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; C -1 ; WX 611 ; N Aogonek ; B -51 -169 707 668 ; C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; C -1 ; WX 611 ; N Aring ; B -51 0 564 904 ; C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; C -1 ; WX 389 ; N rcommaaccent ; B 35 -270 412 441 ; C -1 ; WX 278 ; N lacute ; B 40 -11 376 876 ; C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ; C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; C -1 ; WX 500 ; N ncommaaccent ; B 14 -270 474 441 ; C -1 ; WX 278 ; N lcommaaccent ; B -21 -270 279 683 ; C -1 ; WX 675 ; N plusminus ; B 86 0 590 568 ; C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ; C -1 ; WX 444 ; N kcommaaccent ; B 14 -270 461 683 ; C -1 ; WX 722 ; N Omacron ; B 60 -18 706 795 ; C -1 ; WX 278 ; N imacron ; B 49 -11 384 583 ; C -1 ; WX 444 ; N emacron ; B 31 -11 467 583 ; C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ; C -1 ; WX 278 ; N tcommaaccent ; B -21 -270 296 546 ; C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ; C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ; C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 570 664 ; C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; C -1 ; WX 500 ; N uring ; B 42 -11 475 707 ; C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 706 873 ; C -1 ; WX 333 ; N commaaccent ; B 7 -270 146 -40 ; C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 564 ; N notequal ; B 30 -3 534 509 ; C -1 ; WX 549 ; N radical ; B -2 -65 526 924 ; C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; C -1 ; WX 675 ; N lessequal ; B 84 0 592 628 ; C -1 ; WX 675 ; N greaterequal ; B 84 0 592 628 ; C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ; C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ; C -1 ; WX 667 ; N Ncommaaccent ; B -20 -270 727 653 ; C -1 ; WX 500 ; N dcroat ; B 15 -13 558 683 ; C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; C -1 ; WX 556 ; N Lcommaaccent ; B -8 -270 559 653 ; C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -50 KPX A Ccedilla -50 KPX A G -44 KPX A O -45 KPX A Odieresis -45 KPX A Q -44 KPX A T -14 KPX A U -57 KPX A Uacute -57 KPX A Ucircumflex -57 KPX A Udieresis -57 KPX A Ugrave -57 KPX A V -81 KPX A W -75 KPX A Y -21 KPX A a -4 KPX A b 0 KPX A c -18 KPX A ccedilla -28 KPX A comma 8 KPX A d -4 KPX A e -17 KPX A g -25 KPX A guillemotleft -44 KPX A guilsinglleft -43 KPX A hyphen -13 KPX A o -17 KPX A period 8 KPX A q -12 KPX A quotedblright -92 KPX A quoteright -92 KPX A t -6 KPX A u -9 KPX A v -50 KPX A w -44 KPX A y -57 KPX Aacute C -50 KPX Aacute G -44 KPX Aacute O -45 KPX Aacute Q -44 KPX Aacute T -14 KPX Aacute U -57 KPX Aacute V -81 KPX Aacute W -75 KPX Aacute Y -21 KPX Aacute a -4 KPX Aacute b 0 KPX Aacute c -18 KPX Aacute comma 8 KPX Aacute d -4 KPX Aacute e -17 KPX Aacute g -25 KPX Aacute guillemotleft -44 KPX Aacute guilsinglleft -43 KPX Aacute hyphen -13 KPX Aacute o -17 KPX Aacute period 8 KPX Aacute q -12 KPX Aacute quoteright -92 KPX Aacute t -6 KPX Aacute u -9 KPX Aacute v -50 KPX Aacute w -44 KPX Aacute y -57 KPX Acircumflex C -50 KPX Acircumflex G -44 KPX Acircumflex O -45 KPX Acircumflex Q -44 KPX Acircumflex T -14 KPX Acircumflex U -57 KPX Acircumflex V -81 KPX Acircumflex W -75 KPX Acircumflex Y -21 KPX Acircumflex comma 8 KPX Acircumflex period 8 KPX Adieresis C -50 KPX Adieresis G -44 KPX Adieresis O -45 KPX Adieresis Q -44 KPX Adieresis T -14 KPX Adieresis U -57 KPX Adieresis V -81 KPX Adieresis W -75 KPX Adieresis Y -21 KPX Adieresis a -4 KPX Adieresis b 0 KPX Adieresis c -18 KPX Adieresis comma 8 KPX Adieresis d -4 KPX Adieresis g -25 KPX Adieresis guillemotleft -44 KPX Adieresis guilsinglleft -43 KPX Adieresis hyphen -13 KPX Adieresis o -17 KPX Adieresis period 8 KPX Adieresis q -12 KPX Adieresis quotedblright -92 KPX Adieresis quoteright -92 KPX Adieresis t -6 KPX Adieresis u -9 KPX Adieresis v -50 KPX Adieresis w -44 KPX Adieresis y -57 KPX Agrave C -50 KPX Agrave G -44 KPX Agrave O -45 KPX Agrave Q -44 KPX Agrave T -14 KPX Agrave U -57 KPX Agrave V -81 KPX Agrave W -75 KPX Agrave Y -21 KPX Agrave comma 8 KPX Agrave period 8 KPX Aring C -50 KPX Aring G -44 KPX Aring O -45 KPX Aring Q -44 KPX Aring T -14 KPX Aring U -57 KPX Aring V -81 KPX Aring W -75 KPX Aring Y -21 KPX Aring a -4 KPX Aring b 0 KPX Aring c -18 KPX Aring comma 8 KPX Aring d -4 KPX Aring e -17 KPX Aring g -25 KPX Aring guillemotleft -44 KPX Aring guilsinglleft -43 KPX Aring hyphen -13 KPX Aring o -17 KPX Aring period 8 KPX Aring q -12 KPX Aring quotedblright -92 KPX Aring quoteright -92 KPX Aring t -6 KPX Aring u -9 KPX Aring v -50 KPX Aring w -44 KPX Aring y -57 KPX Atilde C -50 KPX Atilde G -44 KPX Atilde O -45 KPX Atilde Q -44 KPX Atilde T -14 KPX Atilde U -57 KPX Atilde V -81 KPX Atilde W -75 KPX Atilde Y -21 KPX Atilde comma 7 KPX Atilde period 7 KPX B A -23 KPX B AE -35 KPX B Aacute -23 KPX B Acircumflex -23 KPX B Adieresis -23 KPX B Aring -23 KPX B Atilde -23 KPX B O -14 KPX B OE -6 KPX B Oacute -14 KPX B Ocircumflex -14 KPX B Odieresis -14 KPX B Ograve -14 KPX B Oslash -14 KPX B V -32 KPX B W -29 KPX B Y -39 KPX C A -14 KPX C AE -30 KPX C Aacute -14 KPX C Adieresis -14 KPX C Aring -14 KPX C H -13 KPX C K -21 KPX C O -19 KPX C Oacute -19 KPX C Odieresis -19 KPX Ccedilla A -18 KPX D A -36 KPX D Aacute -36 KPX D Acircumflex -36 KPX D Adieresis -36 KPX D Agrave -36 KPX D Aring -36 KPX D Atilde -36 KPX D J -32 KPX D T -9 KPX D V -42 KPX D W -36 KPX D X -40 KPX D Y -50 KPX F A -72 KPX F Aacute -72 KPX F Acircumflex -72 KPX F Adieresis -72 KPX F Agrave -72 KPX F Aring -72 KPX F Atilde -72 KPX F J -60 KPX F O -40 KPX F Odieresis -40 KPX F a -77 KPX F aacute -78 KPX F adieresis -52 KPX F ae -82 KPX F aring -70 KPX F comma -95 KPX F e -83 KPX F eacute -83 KPX F hyphen -45 KPX F i -36 KPX F j -41 KPX F o -79 KPX F oacute -79 KPX F odieresis -52 KPX F oe -75 KPX F oslash -80 KPX F period -99 KPX F r -52 KPX F u -50 KPX G A -17 KPX G AE -29 KPX G Aacute -17 KPX G Acircumflex -17 KPX G Adieresis -17 KPX G Agrave -17 KPX G Aring -17 KPX G Atilde -17 KPX G T -13 KPX G V -5 KPX G W -2 KPX G Y -12 KPX J A -40 KPX J AE -52 KPX J Adieresis -40 KPX J Aring -40 KPX K C -55 KPX K G -53 KPX K O -46 KPX K OE -45 KPX K Oacute -46 KPX K Odieresis -46 KPX K S 6 KPX K T 21 KPX K a -5 KPX K adieresis -5 KPX K ae -5 KPX K aring -5 KPX K e -18 KPX K hyphen -57 KPX K o -18 KPX K oacute -18 KPX K odieresis -18 KPX K u -10 KPX K udieresis -10 KPX K y -89 KPX L A 44 KPX L AE 32 KPX L Aacute 44 KPX L Adieresis 44 KPX L Aring 44 KPX L C 6 KPX L Ccedilla 4 KPX L G 11 KPX L O 10 KPX L Oacute 10 KPX L Ocircumflex 10 KPX L Odieresis 10 KPX L Ograve 10 KPX L Otilde 10 KPX L S 20 KPX L T -13 KPX L U -8 KPX L Udieresis -8 KPX L V -55 KPX L W -48 KPX L Y -20 KPX L hyphen 47 KPX L quotedblright -92 KPX L quoteright -92 KPX L u 12 KPX L udieresis 10 KPX L y -26 KPX N A -20 KPX N AE -32 KPX N Aacute -20 KPX N Adieresis -20 KPX N Aring -20 KPX N C -21 KPX N Ccedilla -20 KPX N G -14 KPX N O -20 KPX N Oacute -20 KPX N Odieresis -20 KPX N a -22 KPX N aacute -23 KPX N adieresis -23 KPX N ae -27 KPX N aring -23 KPX N comma -13 KPX N e -28 KPX N eacute -30 KPX N o -25 KPX N oacute -27 KPX N odieresis -27 KPX N oslash -27 KPX N period -16 KPX N u -24 KPX N udieresis -25 KPX O A -38 KPX O AE -70 KPX O Aacute -38 KPX O Adieresis -38 KPX O Aring -38 KPX O T -3 KPX O V -45 KPX O W -39 KPX O X -41 KPX O Y -51 KPX Oacute A -38 KPX Oacute T -3 KPX Oacute V -45 KPX Oacute W -39 KPX Oacute Y -51 KPX Ocircumflex T -3 KPX Ocircumflex V -45 KPX Ocircumflex Y -51 KPX Odieresis A -38 KPX Odieresis T -3 KPX Odieresis V -45 KPX Odieresis W -39 KPX Odieresis X -41 KPX Odieresis Y -51 KPX Ograve T -3 KPX Ograve V -45 KPX Ograve Y -51 KPX Oslash A -38 KPX Otilde T -3 KPX Otilde V -45 KPX Otilde Y -51 KPX P A -79 KPX P AE -116 KPX P Aacute -79 KPX P Adieresis -79 KPX P Aring -79 KPX P J -89 KPX P a -74 KPX P aacute -74 KPX P adieresis -64 KPX P ae -80 KPX P aring -74 KPX P comma -118 KPX P e -79 KPX P eacute -79 KPX P hyphen -64 KPX P o -73 KPX P oacute -73 KPX P odieresis -64 KPX P oe -67 KPX P oslash -74 KPX P period -121 KPX R C -26 KPX R Ccedilla -25 KPX R G -20 KPX R O -26 KPX R OE -18 KPX R Oacute -26 KPX R Odieresis -26 KPX R T 0 KPX R U -36 KPX R Udieresis -36 KPX R V -31 KPX R W -28 KPX R Y -19 KPX R a -3 KPX R aacute -3 KPX R adieresis -3 KPX R ae -3 KPX R aring -3 KPX R e -15 KPX R eacute -15 KPX R hyphen -29 KPX R o -15 KPX R oacute -15 KPX R odieresis -15 KPX R oe -15 KPX R u -7 KPX R uacute -7 KPX R udieresis -7 KPX R y 0 KPX S A -2 KPX S AE -14 KPX S Aacute -2 KPX S Adieresis -2 KPX S Aring -2 KPX S T 1 KPX S V 5 KPX S W 8 KPX S Y -1 KPX S t -13 KPX T A -33 KPX T AE -45 KPX T Aacute -33 KPX T Acircumflex -33 KPX T Adieresis -33 KPX T Agrave -33 KPX T Aring -33 KPX T Atilde -33 KPX T C -15 KPX T G -7 KPX T J -39 KPX T O -20 KPX T OE -8 KPX T Oacute -20 KPX T Ocircumflex -20 KPX T Odieresis -20 KPX T Ograve -20 KPX T Oslash -20 KPX T Otilde -20 KPX T S -2 KPX T V 41 KPX T W 43 KPX T Y 33 KPX T a -81 KPX T ae -81 KPX T c -86 KPX T colon -84 KPX T comma -70 KPX T e -90 KPX T g -102 KPX T guillemotleft -102 KPX T guilsinglleft -101 KPX T hyphen -68 KPX T i -16 KPX T j -20 KPX T o -87 KPX T oslash -89 KPX T period -71 KPX T r -87 KPX T s -74 KPX T semicolon -92 KPX T u -86 KPX T v -72 KPX T w -69 KPX T y -70 KPX U A -50 KPX U AE -69 KPX U Aacute -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -35 KPX U m -28 KPX U n -29 KPX U p -32 KPX U period -39 KPX U r -41 KPX Uacute A -50 KPX Uacute comma -35 KPX Uacute m -28 KPX Uacute n -29 KPX Uacute p -32 KPX Uacute period -39 KPX Uacute r -41 KPX Ucircumflex A -50 KPX Udieresis A -50 KPX Udieresis b 1 KPX Udieresis comma -35 KPX Udieresis m -28 KPX Udieresis n -29 KPX Udieresis p -32 KPX Udieresis period -39 KPX Udieresis r -41 KPX Ugrave A -50 KPX V A -66 KPX V AE -102 KPX V Aacute -66 KPX V Acircumflex -66 KPX V Adieresis -66 KPX V Agrave -66 KPX V Aring -66 KPX V Atilde -66 KPX V C -48 KPX V G -42 KPX V O -48 KPX V Oacute -48 KPX V Ocircumflex -48 KPX V Odieresis -48 KPX V Ograve -48 KPX V Oslash -48 KPX V Otilde -48 KPX V S -15 KPX V T 32 KPX V a -67 KPX V ae -72 KPX V colon -82 KPX V comma -76 KPX V e -74 KPX V g -84 KPX V guillemotleft -82 KPX V guilsinglleft -81 KPX V hyphen -45 KPX V i -16 KPX V o -70 KPX V oslash -72 KPX V period -80 KPX V r -45 KPX V semicolon -79 KPX V u -40 KPX V y -16 KPX W A -57 KPX W AE -85 KPX W Aacute -57 KPX W Acircumflex -57 KPX W Adieresis -57 KPX W Agrave -57 KPX W Aring -57 KPX W Atilde -57 KPX W C -39 KPX W G -33 KPX W O -39 KPX W Oacute -39 KPX W Ocircumflex -39 KPX W Odieresis -39 KPX W Ograve -39 KPX W Oslash -39 KPX W Otilde -39 KPX W S -17 KPX W T 30 KPX W a -53 KPX W ae -58 KPX W colon -77 KPX W comma -58 KPX W e -60 KPX W g -75 KPX W guillemotleft -68 KPX W guilsinglleft -67 KPX W hyphen -32 KPX W i -18 KPX W o -56 KPX W oslash -58 KPX W period -62 KPX W r -40 KPX W semicolon -74 KPX W u -35 KPX W y -11 KPX X C -50 KPX X O -44 KPX X Odieresis -44 KPX X Q -42 KPX X a -3 KPX X e -15 KPX X hyphen -41 KPX X o -15 KPX X u -7 KPX X y -67 KPX Y A -27 KPX Y AE -39 KPX Y Aacute -27 KPX Y Acircumflex -27 KPX Y Adieresis -27 KPX Y Agrave -27 KPX Y Aring -27 KPX Y Atilde -27 KPX Y C -52 KPX Y G -45 KPX Y O -52 KPX Y Oacute -52 KPX Y Ocircumflex -52 KPX Y Odieresis -52 KPX Y Ograve -52 KPX Y Oslash -52 KPX Y Otilde -52 KPX Y S -15 KPX Y T 32 KPX Y a -72 KPX Y ae -75 KPX Y colon -78 KPX Y comma -64 KPX Y e -78 KPX Y g -94 KPX Y guillemotleft -93 KPX Y guilsinglleft -92 KPX Y hyphen -60 KPX Y i -16 KPX Y o -75 KPX Y oslash -77 KPX Y p -52 KPX Y period -65 KPX Y semicolon -86 KPX Y u -58 KPX Y v -32 KPX Z v -12 KPX Z y -28 KPX a j -22 KPX a quoteright -28 KPX a v 1 KPX a w 4 KPX a y 2 KPX aacute v 1 KPX aacute w 4 KPX aacute y 2 KPX adieresis v 1 KPX adieresis w 4 KPX adieresis y 2 KPX ae v 2 KPX ae w 5 KPX ae y 6 KPX agrave v 1 KPX agrave w 4 KPX agrave y 2 KPX aring v 1 KPX aring w 4 KPX aring y 2 KPX b v -10 KPX b w -7 KPX b y -3 KPX c h -30 KPX c k -29 KPX comma one -40 KPX comma quotedblright -39 KPX comma quoteright -39 KPX e quoteright -21 KPX e t -16 KPX e v 0 KPX e w 2 KPX e x -10 KPX e y 4 KPX eacute v 0 KPX eacute w 2 KPX eacute y 4 KPX ecircumflex v 0 KPX ecircumflex w 2 KPX ecircumflex y 4 KPX eight four 13 KPX eight one -50 KPX eight seven -1 KPX f a -26 KPX f aacute -27 KPX f adieresis -2 KPX f ae -30 KPX f aring -17 KPX f e -32 KPX f eacute -34 KPX f f 30 KPX f i 17 KPX f j 13 KPX f l 42 KPX f o -29 KPX f oacute -30 KPX f odieresis -2 KPX f oe -24 KPX f oslash -31 KPX f quoteright 18 KPX f s -20 KPX f t 18 KPX five four -5 KPX five one -71 KPX five seven -28 KPX four four 12 KPX four one -69 KPX four seven -27 KPX g a -41 KPX g adieresis -42 KPX g ae -46 KPX g aring -42 KPX g e -45 KPX g eacute -45 KPX g l -46 KPX g oacute -41 KPX g odieresis -41 KPX g r -21 KPX guillemotright A -25 KPX guillemotright AE -51 KPX guillemotright Aacute -25 KPX guillemotright Adieresis -25 KPX guillemotright Aring -25 KPX guillemotright T -77 KPX guillemotright V -76 KPX guillemotright W -67 KPX guillemotright Y -81 KPX guilsinglright A -24 KPX guilsinglright AE -50 KPX guilsinglright Aacute -24 KPX guilsinglright Adieresis -24 KPX guilsinglright Aring -24 KPX guilsinglright T -76 KPX guilsinglright V -75 KPX guilsinglright W -66 KPX guilsinglright Y -80 KPX h quoteright -31 KPX h y -4 KPX hyphen A 3 KPX hyphen AE -23 KPX hyphen Aacute 3 KPX hyphen Adieresis 3 KPX hyphen Aring 3 KPX hyphen T -46 KPX hyphen V -43 KPX hyphen W -34 KPX hyphen Y -53 KPX i T -10 KPX i j -31 KPX k a 12 KPX k aacute 12 KPX k adieresis 12 KPX k ae 9 KPX k aring 12 KPX k comma 27 KPX k e 5 KPX k eacute 5 KPX k g -27 KPX k hyphen -27 KPX k o 6 KPX k oacute 6 KPX k odieresis 6 KPX k period 26 KPX k s 7 KPX k u 8 KPX k udieresis 8 KPX l v -12 KPX l y -11 KPX m p -4 KPX m v -6 KPX m w -4 KPX m y -3 KPX n T -41 KPX n p -7 KPX n quoteright -34 KPX n v -10 KPX n w -7 KPX n y -6 KPX nine four 2 KPX nine one -64 KPX nine seven -5 KPX o T -63 KPX o quoteright -24 KPX o t -15 KPX o v -18 KPX o w -15 KPX o x -33 KPX o y -10 KPX oacute v -18 KPX oacute w -15 KPX oacute y -10 KPX ocircumflex t -16 KPX odieresis t -16 KPX odieresis v -18 KPX odieresis w -15 KPX odieresis x -33 KPX odieresis y -10 KPX ograve v -18 KPX ograve w -15 KPX ograve y -10 KPX one comma -52 KPX one eight -57 KPX one five -55 KPX one four -69 KPX one nine -61 KPX one one -69 KPX one period -56 KPX one seven -60 KPX one six -50 KPX one three -55 KPX one two -50 KPX one zero -41 KPX p t -14 KPX p y -4 KPX period one -39 KPX period quotedblright -38 KPX period quoteright -38 KPX q c -13 KPX q u -11 KPX quotedblbase A 1 KPX quotedblbase AE -13 KPX quotedblbase T -64 KPX quotedblbase V -96 KPX quotedblbase W -84 KPX quotedblbase Y -69 KPX quotedblleft A -88 KPX quotedblleft AE -141 KPX quotedblleft Aacute -88 KPX quotedblleft Adieresis -88 KPX quotedblleft Aring -88 KPX quotedblleft T -19 KPX quotedblleft V -17 KPX quotedblleft W -15 KPX quotedblleft Y -25 KPX quotedblright A -94 KPX quotedblright AE -147 KPX quotedblright Aacute -94 KPX quotedblright Adieresis -94 KPX quotedblright Aring -94 KPX quotedblright T -21 KPX quotedblright V -22 KPX quotedblright W -19 KPX quotedblright Y -30 KPX quoteleft A -78 KPX quoteleft AE -131 KPX quoteleft Aacute -78 KPX quoteleft Adieresis -78 KPX quoteleft Aring -78 KPX quoteleft T -9 KPX quoteleft V -8 KPX quoteleft W -5 KPX quoteleft Y -15 KPX quoteright A -87 KPX quoteright AE -140 KPX quoteright Aacute -87 KPX quoteright Adieresis -87 KPX quoteright Aring -87 KPX quoteright comma -73 KPX quoteright d -79 KPX quoteright o -78 KPX quoteright period -78 KPX quoteright r -57 KPX quoteright s -63 KPX quoteright t -49 KPX quoteright v -28 KPX quoteright w -26 KPX quoteright y -28 KPX r a -29 KPX r aacute -29 KPX r acircumflex -29 KPX r adieresis -29 KPX r ae -36 KPX r agrave -29 KPX r aring -29 KPX r c -26 KPX r ccedilla -17 KPX r colon -28 KPX r comma -68 KPX r d -31 KPX r e -35 KPX r eacute -35 KPX r ecircumflex -35 KPX r egrave -35 KPX r f 23 KPX r g -21 KPX r h -17 KPX r hyphen -52 KPX r i 8 KPX r j 4 KPX r k -15 KPX r l -21 KPX r m 17 KPX r n 16 KPX r o -28 KPX r oacute -28 KPX r ocircumflex -28 KPX r odieresis -28 KPX r oe -23 KPX r ograve -28 KPX r oslash -29 KPX r p 13 KPX r period -72 KPX r q -31 KPX r quoteright -4 KPX r r 4 KPX r s -17 KPX r semicolon -28 KPX r t 12 KPX r u 11 KPX r v 30 KPX r w 32 KPX r x 7 KPX r y 33 KPX r z 0 KPX s quoteright -20 KPX s t -12 KPX seven colon -88 KPX seven comma -79 KPX seven eight -32 KPX seven five -53 KPX seven four -65 KPX seven one -47 KPX seven period -83 KPX seven seven -11 KPX seven six -37 KPX seven three -42 KPX seven two -13 KPX six four 17 KPX six one -64 KPX six seven -37 KPX t S -9 KPX t a -6 KPX t aacute -6 KPX t adieresis -6 KPX t ae -10 KPX t aring -6 KPX t colon -29 KPX t e -13 KPX t eacute -13 KPX t h -11 KPX t o -11 KPX t oacute -11 KPX t odieresis -11 KPX t quoteright -19 KPX t semicolon -26 KPX three four -9 KPX three one -76 KPX three seven -15 KPX two four -12 KPX two one -45 KPX two seven -22 KPX u quoteright -31 KPX v a -24 KPX v aacute -26 KPX v acircumflex -26 KPX v adieresis -26 KPX v ae -29 KPX v agrave -26 KPX v aring -26 KPX v atilde -26 KPX v c -26 KPX v colon -48 KPX v comma -46 KPX v e -30 KPX v eacute -32 KPX v ecircumflex -32 KPX v egrave -32 KPX v g -36 KPX v hyphen 0 KPX v l -29 KPX v o -26 KPX v oacute -28 KPX v odieresis -28 KPX v ograve -28 KPX v oslash -29 KPX v period -51 KPX v s -30 KPX v semicolon -48 KPX w a -26 KPX w aacute -28 KPX w acircumflex -28 KPX w adieresis -28 KPX w ae -31 KPX w agrave -28 KPX w aring -28 KPX w atilde -28 KPX w c -28 KPX w colon -49 KPX w comma -47 KPX w e -32 KPX w eacute -34 KPX w ecircumflex -34 KPX w egrave -34 KPX w g -38 KPX w hyphen -4 KPX w l -30 KPX w o -28 KPX w oacute -30 KPX w odieresis -30 KPX w ograve -30 KPX w oslash -31 KPX w period -51 KPX w s -32 KPX w semicolon -49 KPX x a 6 KPX x c 0 KPX x e 0 KPX x eacute 0 KPX x o 1 KPX x q 2 KPX y a -12 KPX y aacute -12 KPX y acircumflex -12 KPX y adieresis -12 KPX y ae -17 KPX y agrave -12 KPX y aring -12 KPX y atilde -12 KPX y c -15 KPX y colon -48 KPX y comma -21 KPX y e -19 KPX y eacute -19 KPX y ecircumflex -19 KPX y egrave -19 KPX y g -34 KPX y hyphen 7 KPX y l -18 KPX y o -15 KPX y oacute -15 KPX y odieresis -15 KPX y ograve -15 KPX y oslash -16 KPX y period -25 KPX y s -19 KPX y semicolon -45 KPX zero four 14 KPX zero one -50 KPX zero seven -3 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n021004l.afm0000644000076500001440000007622107056046553016414 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusRomNo9L-Medi FullName Nimbus Roman No9 L Medium FamilyName Nimbus Roman No9 L Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -100 UnderlineThickness 50 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -168 -341 1000 960 CapHeight 676 XHeight 461 Descender -205 Ascender 676 StartCharMetrics 316 C 32 ; WX 250 ; N space ; B 125 0 125 0 ; C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; C 49 ; WX 500 ; N one ; B 65 0 442 688 ; C 50 ; WX 500 ; N two ; B 17 0 478 688 ; C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; C 52 ; WX 500 ; N four ; B 19 0 475 688 ; C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; C 60 ; WX 570 ; N less ; B 31 -12 539 518 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -12 539 518 ; C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; C 65 ; WX 722 ; N A ; B 9 0 689 690 ; C 66 ; WX 667 ; N B ; B 16 0 619 676 ; C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; C 68 ; WX 722 ; N D ; B 14 0 690 676 ; C 69 ; WX 667 ; N E ; B 16 0 641 676 ; C 70 ; WX 611 ; N F ; B 16 0 583 676 ; C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; C 72 ; WX 778 ; N H ; B 21 0 759 676 ; C 73 ; WX 389 ; N I ; B 20 0 370 676 ; C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; C 75 ; WX 778 ; N K ; B 30 0 769 676 ; C 76 ; WX 667 ; N L ; B 19 0 638 676 ; C 77 ; WX 944 ; N M ; B 14 0 921 676 ; C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; C 80 ; WX 611 ; N P ; B 16 0 600 676 ; C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; C 82 ; WX 722 ; N R ; B 26 0 715 676 ; C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; C 84 ; WX 667 ; N T ; B 31 0 636 676 ; C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; C 88 ; WX 722 ; N X ; B 16 0 699 676 ; C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; C 102 ; WX 333 ; N f ; B 14 0 389 691 ; C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; C 104 ; WX 556 ; N h ; B 16 0 534 676 ; C 105 ; WX 278 ; N i ; B 16 0 255 691 ; C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; C 107 ; WX 556 ; N k ; B 22 0 543 676 ; C 108 ; WX 278 ; N l ; B 16 0 255 676 ; C 109 ; WX 833 ; N m ; B 16 0 814 473 ; C 110 ; WX 556 ; N n ; B 21 0 539 473 ; C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; C 114 ; WX 444 ; N r ; B 29 0 434 473 ; C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; C 120 ; WX 500 ; N x ; B 12 0 484 461 ; C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; C 122 ; WX 444 ; N z ; B 21 0 420 461 ; C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; C 124 ; WX 220 ; N bar ; B 66 -19 154 691 ; C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; C 126 ; WX 520 ; N asciitilde ; B 29 175 491 331 ; C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; C 199 ; WX 333 ; N dotaccent ; B 103 537 232 666 ; C 200 ; WX 333 ; N dieresis ; B -2 537 337 666 ; C 202 ; WX 333 ; N ring ; B 60 537 273 750 ; C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ; C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 876 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; C -1 ; WX 722 ; N Uring ; B 16 -19 701 960 ; C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; C -1 ; WX 444 ; N eogonek ; B 25 -173 444 473 ; C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 666 ; C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 666 ; C -1 ; WX 665 ; N dcaron ; B 25 -14 665 691 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; C -1 ; WX 500 ; N aogonek ; B 25 -173 500 473 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 750 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 666 ; C -1 ; WX 722 ; N Uogonek ; B 16 -173 701 676 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 666 ; C -1 ; WX 400 ; N tcaron ; B 20 -12 400 691 ; C -1 ; WX 389 ; N scommaaccent ; B 25 -341 361 473 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 876 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; C -1 ; WX 667 ; N Tcommaaccent ; B 31 -341 636 676 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 876 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 876 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; C -1 ; WX 667 ; N Lcaron ; B 19 0 638 691 ; C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 876 ; C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 509 713 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 500 ; N Euro ; B -36 -24 478 671 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; C -1 ; WX 389 ; N Iogonek ; B 20 -173 505 676 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 876 ; C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; C -1 ; WX 778 ; N Kcommaaccent ; B 30 -341 769 676 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 556 ; N Scommaaccent ; B 35 -341 513 692 ; C -1 ; WX 667 ; N Eogonek ; B 16 -173 737 676 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 876 ; C -1 ; WX 278 ; N iogonek ; B 16 -173 388 691 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 811 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 666 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 778 ; N Gcommaaccent ; B 37 -341 755 691 ; C -1 ; WX 722 ; N Rcommaaccent ; B 26 -341 715 676 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 876 ; C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; C -1 ; WX 556 ; N uogonek ; B 16 -173 556 461 ; C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; C -1 ; WX 396 ; N lcaron ; B 16 0 396 691 ; C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 722 ; N Aogonek ; B 9 -173 822 690 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 948 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 444 ; N rcommaaccent ; B 29 -341 434 473 ; C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ; C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ; C -1 ; WX 556 ; N ncommaaccent ; B 21 -341 539 473 ; C -1 ; WX 278 ; N lcommaaccent ; B 16 -341 255 676 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ; C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; C -1 ; WX 556 ; N kcommaaccent ; B 22 -341 543 676 ; C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; C -1 ; WX 278 ; N imacron ; B -27 0 303 637 ; C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; C -1 ; WX 333 ; N tcommaaccent ; B 20 -341 332 630 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 666 ; C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 666 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 537 713 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 556 ; N uring ; B 16 -14 537 750 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 333 ; N commaaccent ; B 84 -341 249 -40 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 278 ; N idieresis ; B -36 0 303 666 ; C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 570 ; N notequal ; B 33 -13 537 519 ; C -1 ; WX 549 ; N radical ; B -17 -35 535 916 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 570 ; N lessequal ; B 31 0 539 642 ; C -1 ; WX 570 ; N greaterequal ; B 31 0 539 642 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ; C -1 ; WX 494 ; N partialdiff ; B 16 -20 472 743 ; C -1 ; WX 722 ; N Ncommaaccent ; B 16 -341 701 676 ; C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; C -1 ; WX 667 ; N Lcommaaccent ; B 19 -341 638 676 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 876 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -73 KPX A Ccedilla -77 KPX A G -68 KPX A O -68 KPX A Odieresis -68 KPX A Q -68 KPX A T -59 KPX A U -66 KPX A Uacute -66 KPX A Ucircumflex -66 KPX A Udieresis -66 KPX A Ugrave -66 KPX A V -130 KPX A W -116 KPX A Y -74 KPX A a -5 KPX A b -22 KPX A c -35 KPX A ccedilla -43 KPX A comma 1 KPX A d -28 KPX A e -32 KPX A g -7 KPX A guillemotleft -53 KPX A guilsinglleft -67 KPX A hyphen -30 KPX A o -37 KPX A period 0 KPX A q -38 KPX A quotedblright -76 KPX A quoteright -108 KPX A t -27 KPX A u -30 KPX A v -84 KPX A w -79 KPX A y -83 KPX Aacute C -73 KPX Aacute G -68 KPX Aacute O -68 KPX Aacute Q -68 KPX Aacute T -59 KPX Aacute U -66 KPX Aacute V -130 KPX Aacute W -116 KPX Aacute Y -74 KPX Aacute a -5 KPX Aacute b -22 KPX Aacute c -35 KPX Aacute comma 1 KPX Aacute d -28 KPX Aacute e -32 KPX Aacute g -7 KPX Aacute guillemotleft -53 KPX Aacute guilsinglleft -67 KPX Aacute hyphen -30 KPX Aacute o -37 KPX Aacute period 0 KPX Aacute q -38 KPX Aacute quoteright -108 KPX Aacute t -27 KPX Aacute u -30 KPX Aacute v -84 KPX Aacute w -79 KPX Aacute y -83 KPX Acircumflex C -73 KPX Acircumflex G -68 KPX Acircumflex O -68 KPX Acircumflex Q -68 KPX Acircumflex T -59 KPX Acircumflex U -66 KPX Acircumflex V -130 KPX Acircumflex W -116 KPX Acircumflex Y -74 KPX Acircumflex comma 1 KPX Acircumflex period 0 KPX Adieresis C -73 KPX Adieresis G -68 KPX Adieresis O -68 KPX Adieresis Q -68 KPX Adieresis T -59 KPX Adieresis U -66 KPX Adieresis V -130 KPX Adieresis W -116 KPX Adieresis Y -74 KPX Adieresis a -5 KPX Adieresis b -22 KPX Adieresis c -35 KPX Adieresis comma 1 KPX Adieresis d -28 KPX Adieresis g -7 KPX Adieresis guillemotleft -53 KPX Adieresis guilsinglleft -67 KPX Adieresis hyphen -30 KPX Adieresis o -37 KPX Adieresis period 0 KPX Adieresis q -38 KPX Adieresis quotedblright -76 KPX Adieresis quoteright -108 KPX Adieresis t -27 KPX Adieresis u -30 KPX Adieresis v -84 KPX Adieresis w -79 KPX Adieresis y -83 KPX Agrave C -73 KPX Agrave G -68 KPX Agrave O -68 KPX Agrave Q -68 KPX Agrave T -59 KPX Agrave U -66 KPX Agrave V -130 KPX Agrave W -116 KPX Agrave Y -74 KPX Agrave comma 1 KPX Agrave period 0 KPX Aring C -73 KPX Aring G -68 KPX Aring O -68 KPX Aring Q -68 KPX Aring T -59 KPX Aring U -66 KPX Aring V -130 KPX Aring W -116 KPX Aring Y -74 KPX Aring a -5 KPX Aring b -22 KPX Aring c -35 KPX Aring comma 1 KPX Aring d -28 KPX Aring e -32 KPX Aring g -7 KPX Aring guillemotleft -53 KPX Aring guilsinglleft -67 KPX Aring hyphen -30 KPX Aring o -37 KPX Aring period 0 KPX Aring q -38 KPX Aring quotedblright -76 KPX Aring quoteright -108 KPX Aring t -27 KPX Aring u -30 KPX Aring v -84 KPX Aring w -79 KPX Aring y -83 KPX Atilde C -73 KPX Atilde G -68 KPX Atilde O -68 KPX Atilde Q -68 KPX Atilde T -59 KPX Atilde U -66 KPX Atilde V -130 KPX Atilde W -116 KPX Atilde Y -74 KPX Atilde comma 1 KPX Atilde period 0 KPX B A -34 KPX B AE -32 KPX B Aacute -34 KPX B Acircumflex -34 KPX B Adieresis -34 KPX B Aring -34 KPX B Atilde -34 KPX B O -12 KPX B OE -4 KPX B Oacute -12 KPX B Ocircumflex -12 KPX B Odieresis -12 KPX B Ograve -12 KPX B Oslash -11 KPX B V -45 KPX B W -46 KPX B Y -44 KPX C A -25 KPX C AE -22 KPX C Aacute -25 KPX C Adieresis -25 KPX C Aring -25 KPX C H -2 KPX C K -6 KPX C O -14 KPX C Oacute -14 KPX C Odieresis -14 KPX Ccedilla A -33 KPX D A -55 KPX D Aacute -55 KPX D Acircumflex -55 KPX D Adieresis -55 KPX D Agrave -55 KPX D Aring -55 KPX D Atilde -55 KPX D J -40 KPX D T -7 KPX D V -60 KPX D W -50 KPX D X -51 KPX D Y -59 KPX F A -79 KPX F Aacute -79 KPX F Acircumflex -79 KPX F Adieresis -79 KPX F Agrave -79 KPX F Aring -79 KPX F Atilde -79 KPX F J -42 KPX F O -7 KPX F Odieresis -7 KPX F a -50 KPX F aacute -50 KPX F adieresis -22 KPX F ae -53 KPX F aring -50 KPX F comma -59 KPX F e -51 KPX F eacute -51 KPX F hyphen -34 KPX F i -1 KPX F j -26 KPX F o -54 KPX F oacute -54 KPX F odieresis -24 KPX F oe -51 KPX F oslash -53 KPX F period -60 KPX F r -7 KPX F u -10 KPX G A -27 KPX G AE -24 KPX G Aacute -27 KPX G Acircumflex -27 KPX G Adieresis -27 KPX G Agrave -27 KPX G Aring -27 KPX G Atilde -27 KPX G T -41 KPX G V -33 KPX G W -35 KPX G Y -33 KPX J A -30 KPX J AE -27 KPX J Adieresis -30 KPX J Aring -30 KPX K C -61 KPX K G -56 KPX K O -56 KPX K OE -46 KPX K Oacute -56 KPX K Odieresis -56 KPX K S 13 KPX K T -2 KPX K a 6 KPX K adieresis 6 KPX K ae 3 KPX K aring 6 KPX K e -20 KPX K hyphen -47 KPX K o -25 KPX K oacute -25 KPX K odieresis -25 KPX K u -18 KPX K udieresis -18 KPX K y -83 KPX L A -1 KPX L AE 1 KPX L Aacute -1 KPX L Adieresis -1 KPX L Aring -1 KPX L C -11 KPX L Ccedilla -14 KPX L G -5 KPX L O -5 KPX L Oacute -5 KPX L Ocircumflex -5 KPX L Odieresis -5 KPX L Ograve -5 KPX L Otilde -5 KPX L S 2 KPX L T -74 KPX L U -29 KPX L Udieresis -29 KPX L V -106 KPX L W -87 KPX L Y -89 KPX L hyphen 24 KPX L quotedblright -37 KPX L quoteright -69 KPX L u -11 KPX L udieresis -12 KPX L y -49 KPX N A -19 KPX N AE -16 KPX N Aacute -19 KPX N Adieresis -19 KPX N Aring -19 KPX N C -22 KPX N Ccedilla -22 KPX N G -16 KPX N O -15 KPX N Oacute -15 KPX N Odieresis -15 KPX N a -16 KPX N aacute -16 KPX N adieresis -16 KPX N ae -18 KPX N aring -16 KPX N comma 1 KPX N e -13 KPX N eacute -13 KPX N o -16 KPX N oacute -16 KPX N odieresis -16 KPX N oslash -15 KPX N period 0 KPX N u -17 KPX N udieresis -17 KPX O A -55 KPX O AE -54 KPX O Aacute -55 KPX O Adieresis -55 KPX O Aring -55 KPX O T -9 KPX O V -60 KPX O W -54 KPX O X -51 KPX O Y -59 KPX Oacute A -55 KPX Oacute T -9 KPX Oacute V -60 KPX Oacute W -54 KPX Oacute Y -59 KPX Ocircumflex T -9 KPX Ocircumflex V -60 KPX Ocircumflex Y -59 KPX Odieresis A -55 KPX Odieresis T -9 KPX Odieresis V -60 KPX Odieresis W -54 KPX Odieresis X -51 KPX Odieresis Y -59 KPX Ograve T -9 KPX Ograve V -60 KPX Ograve Y -59 KPX Oslash A -52 KPX Otilde T -9 KPX Otilde V -60 KPX Otilde Y -59 KPX P A -81 KPX P AE -94 KPX P Aacute -81 KPX P Adieresis -81 KPX P Aring -81 KPX P J -68 KPX P a -19 KPX P aacute -19 KPX P adieresis -19 KPX P ae -22 KPX P aring -19 KPX P comma -85 KPX P e -29 KPX P eacute -29 KPX P hyphen -39 KPX P o -33 KPX P oacute -33 KPX P odieresis -22 KPX P oe -30 KPX P oslash -33 KPX P period -86 KPX R C -36 KPX R Ccedilla -37 KPX R G -30 KPX R O -29 KPX R OE -22 KPX R Oacute -29 KPX R Odieresis -29 KPX R T -26 KPX R U -37 KPX R Udieresis -37 KPX R V -53 KPX R W -55 KPX R Y -53 KPX R a 7 KPX R aacute 7 KPX R adieresis 7 KPX R ae 4 KPX R aring 7 KPX R e -19 KPX R eacute -19 KPX R hyphen -30 KPX R o -24 KPX R oacute -24 KPX R odieresis -24 KPX R oe -21 KPX R u -17 KPX R uacute -17 KPX R udieresis -17 KPX R y -27 KPX S A -24 KPX S AE -21 KPX S Aacute -24 KPX S Adieresis -24 KPX S Aring -24 KPX S T -16 KPX S V -9 KPX S W -10 KPX S Y -8 KPX S t -10 KPX T A -46 KPX T AE -44 KPX T Aacute -46 KPX T Acircumflex -46 KPX T Adieresis -46 KPX T Agrave -46 KPX T Aring -46 KPX T Atilde -46 KPX T C -17 KPX T G -11 KPX T J -43 KPX T O -9 KPX T OE -3 KPX T Oacute -9 KPX T Ocircumflex -9 KPX T Odieresis -9 KPX T Ograve -9 KPX T Oslash -11 KPX T Otilde -9 KPX T S -2 KPX T V 11 KPX T W 9 KPX T Y 11 KPX T a -65 KPX T ae -69 KPX T c -88 KPX T colon -85 KPX T comma -63 KPX T e -85 KPX T g -68 KPX T guillemotleft -99 KPX T guilsinglleft -113 KPX T hyphen -73 KPX T i -16 KPX T j -40 KPX T o -88 KPX T oslash -87 KPX T period -64 KPX T r -61 KPX T s -59 KPX T semicolon -85 KPX T u -89 KPX T v -106 KPX T w -107 KPX T y -104 KPX U A -54 KPX U AE -52 KPX U Aacute -54 KPX U Acircumflex -54 KPX U Adieresis -54 KPX U Aring -54 KPX U Atilde -54 KPX U comma -17 KPX U m -23 KPX U n -25 KPX U p -28 KPX U period -18 KPX U r -29 KPX Uacute A -54 KPX Uacute comma -17 KPX Uacute m -23 KPX Uacute n -25 KPX Uacute p -28 KPX Uacute period -18 KPX Uacute r -29 KPX Ucircumflex A -54 KPX Udieresis A -54 KPX Udieresis b 10 KPX Udieresis comma -17 KPX Udieresis m -23 KPX Udieresis n -25 KPX Udieresis p -28 KPX Udieresis period -18 KPX Udieresis r -29 KPX Ugrave A -54 KPX V A -113 KPX V AE -113 KPX V Aacute -113 KPX V Acircumflex -113 KPX V Adieresis -113 KPX V Agrave -113 KPX V Aring -113 KPX V Atilde -113 KPX V C -70 KPX V G -64 KPX V O -63 KPX V Oacute -63 KPX V Ocircumflex -63 KPX V Odieresis -63 KPX V Ograve -63 KPX V Oslash -65 KPX V Otilde -63 KPX V S -25 KPX V T 8 KPX V a -87 KPX V ae -90 KPX V colon -94 KPX V comma -94 KPX V e -86 KPX V g -86 KPX V guillemotleft -98 KPX V guilsinglleft -112 KPX V hyphen -68 KPX V i -13 KPX V o -89 KPX V oslash -87 KPX V period -95 KPX V r -60 KPX V semicolon -94 KPX V u -58 KPX V y -56 KPX W A -98 KPX W AE -102 KPX W Aacute -98 KPX W Acircumflex -98 KPX W Adieresis -98 KPX W Agrave -98 KPX W Aring -98 KPX W Atilde -98 KPX W C -58 KPX W G -52 KPX W O -51 KPX W Oacute -51 KPX W Ocircumflex -51 KPX W Odieresis -51 KPX W Ograve -51 KPX W Oslash -50 KPX W Otilde -51 KPX W S -24 KPX W T 9 KPX W a -70 KPX W ae -73 KPX W colon -81 KPX W comma -72 KPX W e -67 KPX W g -70 KPX W guillemotleft -79 KPX W guilsinglleft -93 KPX W hyphen -49 KPX W i -12 KPX W o -70 KPX W oslash -69 KPX W period -73 KPX W r -49 KPX W semicolon -80 KPX W u -45 KPX W y -44 KPX X C -63 KPX X O -56 KPX X Odieresis -56 KPX X Q -57 KPX X a 0 KPX X e -27 KPX X hyphen -43 KPX X o -32 KPX X u -25 KPX X y -90 KPX Y A -64 KPX Y AE -62 KPX Y Aacute -64 KPX Y Acircumflex -64 KPX Y Adieresis -64 KPX Y Agrave -64 KPX Y Aring -64 KPX Y Atilde -64 KPX Y C -71 KPX Y G -65 KPX Y O -64 KPX Y Oacute -64 KPX Y Ocircumflex -64 KPX Y Odieresis -64 KPX Y Ograve -64 KPX Y Oslash -68 KPX Y Otilde -64 KPX Y S -26 KPX Y T 7 KPX Y a -83 KPX Y ae -87 KPX Y colon -103 KPX Y comma -80 KPX Y e -93 KPX Y g -86 KPX Y guillemotleft -111 KPX Y guilsinglleft -125 KPX Y hyphen -87 KPX Y i -14 KPX Y o -96 KPX Y oslash -95 KPX Y p -72 KPX Y period -81 KPX Y semicolon -103 KPX Y u -76 KPX Y v -78 KPX Z v -45 KPX Z y -44 KPX a j -39 KPX a quoteright -34 KPX a v -39 KPX a w -40 KPX a y -44 KPX aacute v -39 KPX aacute w -40 KPX aacute y -44 KPX adieresis v -39 KPX adieresis w -40 KPX adieresis y -44 KPX ae v -34 KPX ae w -35 KPX ae y -37 KPX agrave v -39 KPX agrave w -40 KPX agrave y -44 KPX aring v -39 KPX aring w -40 KPX aring y -44 KPX b v -39 KPX b w -40 KPX b y -42 KPX c h -17 KPX c k -18 KPX comma one -12 KPX comma quotedblright 9 KPX comma quoteright -23 KPX e quoteright -19 KPX e t -10 KPX e v -29 KPX e w -30 KPX e x -19 KPX e y -31 KPX eacute v -29 KPX eacute w -30 KPX eacute y -31 KPX ecircumflex v -29 KPX ecircumflex w -30 KPX ecircumflex y -31 KPX eight four 11 KPX eight one -19 KPX eight seven 0 KPX f a -17 KPX f aacute -17 KPX f adieresis 14 KPX f ae -21 KPX f aring -15 KPX f e -29 KPX f eacute -29 KPX f f 12 KPX f i 22 KPX f j -1 KPX f l 33 KPX f o -32 KPX f oacute -32 KPX f odieresis 11 KPX f oe -29 KPX f oslash -31 KPX f quoteright 18 KPX f s -8 KPX f t -3 KPX five four 1 KPX five one -28 KPX five seven -9 KPX four four 13 KPX four one -35 KPX four seven -16 KPX g a -15 KPX g adieresis -15 KPX g ae -18 KPX g aring -15 KPX g e -20 KPX g eacute -20 KPX g l 0 KPX g oacute -20 KPX g odieresis -20 KPX g r 1 KPX guillemotright A -40 KPX guillemotright AE -46 KPX guillemotright Aacute -40 KPX guillemotright Adieresis -40 KPX guillemotright Aring -40 KPX guillemotright T -100 KPX guillemotright V -102 KPX guillemotright W -84 KPX guillemotright Y -106 KPX guilsinglright A -54 KPX guilsinglright AE -60 KPX guilsinglright Aacute -54 KPX guilsinglright Adieresis -54 KPX guilsinglright Aring -54 KPX guilsinglright T -114 KPX guilsinglright V -116 KPX guilsinglright W -98 KPX guilsinglright Y -120 KPX h quoteright -30 KPX h y -34 KPX hyphen A -18 KPX hyphen AE -24 KPX hyphen Aacute -18 KPX hyphen Adieresis -18 KPX hyphen Aring -18 KPX hyphen T -74 KPX hyphen V -72 KPX hyphen W -54 KPX hyphen Y -83 KPX i T -18 KPX i j -36 KPX k a -3 KPX k aacute -3 KPX k adieresis -3 KPX k ae -7 KPX k aring -3 KPX k comma 0 KPX k e -33 KPX k eacute -33 KPX k g -4 KPX k hyphen -47 KPX k o -38 KPX k oacute -38 KPX k odieresis -38 KPX k period 0 KPX k s 5 KPX k u -5 KPX k udieresis -5 KPX l v -22 KPX l y -19 KPX m p -16 KPX m v -32 KPX m w -33 KPX m y -33 KPX n T -56 KPX n p -14 KPX n quoteright -28 KPX n v -31 KPX n w -32 KPX n y -32 KPX nine four 2 KPX nine one -26 KPX nine seven 10 KPX o T -88 KPX o quoteright -27 KPX o t -10 KPX o v -42 KPX o w -38 KPX o x -29 KPX o y -42 KPX oacute v -42 KPX oacute w -38 KPX oacute y -42 KPX ocircumflex t -10 KPX odieresis t -10 KPX odieresis v -42 KPX odieresis w -38 KPX odieresis x -29 KPX odieresis y -42 KPX ograve v -42 KPX ograve w -38 KPX ograve y -42 KPX one comma -16 KPX one eight -34 KPX one five -16 KPX one four -56 KPX one nine -9 KPX one one -27 KPX one period -17 KPX one seven -56 KPX one six -47 KPX one three -10 KPX one two -2 KPX one zero -35 KPX p t -11 KPX p y -34 KPX period one -21 KPX period quotedblright 5 KPX period quoteright -27 KPX q c -13 KPX q u -15 KPX quotedblbase A 19 KPX quotedblbase AE 20 KPX quotedblbase T -59 KPX quotedblbase V -98 KPX quotedblbase W -75 KPX quotedblbase Y -73 KPX quotedblleft A -59 KPX quotedblleft AE -78 KPX quotedblleft Aacute -59 KPX quotedblleft Adieresis -59 KPX quotedblleft Aring -59 KPX quotedblleft T 9 KPX quotedblleft V 15 KPX quotedblleft W 13 KPX quotedblleft Y 15 KPX quotedblright A -72 KPX quotedblright AE -91 KPX quotedblright Aacute -72 KPX quotedblright Adieresis -72 KPX quotedblright Aring -72 KPX quotedblright T 4 KPX quotedblright V 5 KPX quotedblright W 4 KPX quotedblright Y 6 KPX quoteleft A -92 KPX quoteleft AE -111 KPX quoteleft Aacute -92 KPX quoteleft Adieresis -92 KPX quoteleft Aring -92 KPX quoteleft T -22 KPX quoteleft V -17 KPX quoteleft W -19 KPX quoteleft Y -17 KPX quoteright A -91 KPX quoteright AE -110 KPX quoteright Aacute -91 KPX quoteright Adieresis -91 KPX quoteright Aring -91 KPX quoteright comma -34 KPX quoteright d -31 KPX quoteright o -34 KPX quoteright period -35 KPX quoteright r -26 KPX quoteright s -17 KPX quoteright t -19 KPX quoteright v -25 KPX quoteright w -23 KPX quoteright y -22 KPX r a -6 KPX r aacute -6 KPX r acircumflex -6 KPX r adieresis -6 KPX r ae -8 KPX r agrave -6 KPX r aring -6 KPX r c -15 KPX r ccedilla -10 KPX r colon -16 KPX r comma -67 KPX r d -13 KPX r e -11 KPX r eacute -11 KPX r ecircumflex -11 KPX r egrave -11 KPX r f 11 KPX r g -5 KPX r h -15 KPX r hyphen -18 KPX r i 6 KPX r j -12 KPX r k -15 KPX r l -14 KPX r m 6 KPX r n 4 KPX r o -14 KPX r oacute -14 KPX r ocircumflex -14 KPX r odieresis -14 KPX r oe -12 KPX r ograve -14 KPX r oslash -14 KPX r p 4 KPX r period -68 KPX r q -15 KPX r quoteright -8 KPX r r 0 KPX r s 0 KPX r semicolon -16 KPX r t 9 KPX r u 9 KPX r v 8 KPX r w 7 KPX r x 11 KPX r y 9 KPX r z -1 KPX s quoteright -17 KPX s t -7 KPX seven colon -64 KPX seven comma -57 KPX seven eight -18 KPX seven five -34 KPX seven four -54 KPX seven one -25 KPX seven period -58 KPX seven seven -6 KPX seven six -37 KPX seven three -20 KPX seven two -21 KPX six four 13 KPX six one -43 KPX six seven -7 KPX t S 11 KPX t a 11 KPX t aacute 11 KPX t adieresis 11 KPX t ae 7 KPX t aring 11 KPX t colon -12 KPX t e -1 KPX t eacute -1 KPX t h -4 KPX t o -4 KPX t oacute -4 KPX t odieresis -4 KPX t quoteright -31 KPX t semicolon -12 KPX three four 9 KPX three one -33 KPX three seven -15 KPX two four 14 KPX two one -29 KPX two seven -7 KPX u quoteright -25 KPX v a -23 KPX v aacute -23 KPX v acircumflex -23 KPX v adieresis -23 KPX v ae -25 KPX v agrave -23 KPX v aring -23 KPX v atilde -23 KPX v c -40 KPX v colon -23 KPX v comma -56 KPX v e -35 KPX v eacute -35 KPX v ecircumflex -35 KPX v egrave -35 KPX v g -22 KPX v hyphen -27 KPX v l -16 KPX v o -40 KPX v oacute -40 KPX v odieresis -40 KPX v ograve -40 KPX v oslash -39 KPX v period -57 KPX v s -16 KPX v semicolon -23 KPX w a -23 KPX w aacute -23 KPX w acircumflex -23 KPX w adieresis -23 KPX w ae -25 KPX w agrave -23 KPX w aring -23 KPX w atilde -23 KPX w c -36 KPX w colon -23 KPX w comma -50 KPX w e -33 KPX w eacute -33 KPX w ecircumflex -33 KPX w egrave -33 KPX w g -22 KPX w hyphen -23 KPX w l -16 KPX w o -36 KPX w oacute -36 KPX w odieresis -36 KPX w ograve -36 KPX w oslash -35 KPX w period -51 KPX w s -16 KPX w semicolon -23 KPX x a -2 KPX x c -30 KPX x e -27 KPX x eacute -27 KPX x o -30 KPX x q -32 KPX y a -32 KPX y aacute -32 KPX y acircumflex -32 KPX y adieresis -32 KPX y ae -34 KPX y agrave -32 KPX y aring -32 KPX y atilde -32 KPX y c -42 KPX y colon -28 KPX y comma -56 KPX y e -40 KPX y eacute -40 KPX y ecircumflex -40 KPX y egrave -40 KPX y g -31 KPX y hyphen -29 KPX y l -19 KPX y o -42 KPX y oacute -42 KPX y odieresis -42 KPX y ograve -42 KPX y oslash -41 KPX y period -57 KPX y s -24 KPX y semicolon -28 KPX zero four 11 KPX zero one -31 KPX zero seven 7 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n019004l.afm0000644000076500001440000007555307056046552016431 0ustar fnevgenyusersStartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development Comment Creation Date: 12/22/1999 Comment See the file COPYING (GNU General Public License) for license conditions. FontName NimbusSanL-Bold FullName Nimbus Sans L Bold FamilyName Nimbus Sans L Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -155 UnderlineThickness 69 Version 1.05 Notice (URW)++,Copyright 1999 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -173 -307 1003 949 CapHeight 729 XHeight 540 Descender -217 Ascender 729 StartCharMetrics 316 C 32 ; WX 278 ; N space ; B 214 0 214 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 262 726 ; C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ; C 35 ; WX 556 ; N numbersign ; B 3 -32 553 697 ; C 36 ; WX 556 ; N dollar ; B 22 -126 527 763 ; C 37 ; WX 889 ; N percent ; B 22 -20 863 709 ; C 38 ; WX 722 ; N ampersand ; B 55 -23 694 723 ; C 39 ; WX 278 ; N quoteright ; B 66 469 201 729 ; C 40 ; WX 333 ; N parenleft ; B 40 -200 303 729 ; C 41 ; WX 333 ; N parenright ; B 22 -200 285 729 ; C 42 ; WX 389 ; N asterisk ; B 23 407 357 729 ; C 43 ; WX 584 ; N plus ; B 50 -10 533 473 ; C 44 ; WX 278 ; N comma ; B 64 -174 214 146 ; C 45 ; WX 333 ; N hyphen ; B 26 207 298 342 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B 2 -14 275 714 ; C 48 ; WX 556 ; N zero ; B 29 -23 517 724 ; C 49 ; WX 556 ; N one ; B 68 0 378 709 ; C 50 ; WX 556 ; N two ; B 30 0 515 724 ; C 51 ; WX 556 ; N three ; B 29 -23 516 724 ; C 52 ; WX 556 ; N four ; B 24 0 522 709 ; C 53 ; WX 556 ; N five ; B 27 -23 517 709 ; C 54 ; WX 556 ; N six ; B 32 -23 519 724 ; C 55 ; WX 556 ; N seven ; B 29 0 528 709 ; C 56 ; WX 556 ; N eight ; B 22 -23 525 724 ; C 57 ; WX 556 ; N nine ; B 28 -24 516 724 ; C 58 ; WX 333 ; N colon ; B 113 0 263 520 ; C 59 ; WX 333 ; N semicolon ; B 113 -174 263 520 ; C 60 ; WX 584 ; N less ; B 40 -10 529 474 ; C 61 ; WX 584 ; N equal ; B 50 52 534 411 ; C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ; C 63 ; WX 611 ; N question ; B 64 0 556 744 ; C 64 ; WX 975 ; N at ; B 27 -138 947 745 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 666 729 ; C 67 ; WX 722 ; N C ; B 44 -23 685 741 ; C 68 ; WX 722 ; N D ; B 77 0 681 729 ; C 69 ; WX 667 ; N E ; B 79 0 624 729 ; C 70 ; WX 611 ; N F ; B 74 0 586 729 ; C 71 ; WX 778 ; N G ; B 42 -23 711 741 ; C 72 ; WX 722 ; N H ; B 68 0 657 729 ; C 73 ; WX 278 ; N I ; B 63 0 213 729 ; C 74 ; WX 556 ; N J ; B 24 -23 486 729 ; C 75 ; WX 722 ; N K ; B 74 0 717 729 ; C 76 ; WX 611 ; N L ; B 80 0 579 729 ; C 77 ; WX 833 ; N M ; B 66 0 776 729 ; C 78 ; WX 722 ; N N ; B 68 0 661 729 ; C 79 ; WX 778 ; N O ; B 40 -23 742 741 ; C 80 ; WX 667 ; N P ; B 76 0 633 729 ; C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ; C 82 ; WX 722 ; N R ; B 80 0 677 729 ; C 83 ; WX 667 ; N S ; B 32 -23 633 741 ; C 84 ; WX 611 ; N T ; B 14 0 598 729 ; C 85 ; WX 722 ; N U ; B 76 -23 654 729 ; C 86 ; WX 667 ; N V ; B 24 0 647 729 ; C 87 ; WX 944 ; N W ; B 13 0 932 729 ; C 88 ; WX 667 ; N X ; B 22 0 653 729 ; C 89 ; WX 667 ; N Y ; B 27 0 650 729 ; C 90 ; WX 611 ; N Z ; B 30 0 578 729 ; C 91 ; WX 333 ; N bracketleft ; B 66 -200 308 729 ; C 92 ; WX 278 ; N backslash ; B -12 -14 289 714 ; C 93 ; WX 333 ; N bracketright ; B 18 -200 260 729 ; C 94 ; WX 584 ; N asciicircum ; B 61 270 522 695 ; C 95 ; WX 556 ; N underscore ; B -22 -189 578 -120 ; C 96 ; WX 278 ; N quoteleft ; B 67 469 202 729 ; C 97 ; WX 556 ; N a ; B 28 -23 524 549 ; C 98 ; WX 611 ; N b ; B 59 -23 575 729 ; C 99 ; WX 556 ; N c ; B 34 -23 522 549 ; C 100 ; WX 611 ; N d ; B 29 -23 545 729 ; C 101 ; WX 556 ; N e ; B 22 -23 525 549 ; C 102 ; WX 333 ; N f ; B 14 0 313 729 ; C 103 ; WX 611 ; N g ; B 34 -218 541 549 ; C 104 ; WX 611 ; N h ; B 67 0 541 729 ; C 105 ; WX 278 ; N i ; B 67 0 207 729 ; C 106 ; WX 278 ; N j ; B 4 -218 210 729 ; C 107 ; WX 556 ; N k ; B 59 0 548 729 ; C 108 ; WX 278 ; N l ; B 67 0 207 729 ; C 109 ; WX 889 ; N m ; B 60 0 824 549 ; C 110 ; WX 611 ; N n ; B 63 0 546 549 ; C 111 ; WX 611 ; N o ; B 35 -23 569 549 ; C 112 ; WX 611 ; N p ; B 58 -218 574 549 ; C 113 ; WX 611 ; N q ; B 28 -218 544 549 ; C 114 ; WX 389 ; N r ; B 63 0 370 549 ; C 115 ; WX 556 ; N s ; B 29 -23 520 549 ; C 116 ; WX 333 ; N t ; B 14 -23 301 674 ; C 117 ; WX 611 ; N u ; B 58 -23 541 540 ; C 118 ; WX 556 ; N v ; B 14 0 536 540 ; C 119 ; WX 778 ; N w ; B 5 0 766 540 ; C 120 ; WX 556 ; N x ; B 16 0 535 540 ; C 121 ; WX 556 ; N y ; B 9 -219 538 540 ; C 122 ; WX 500 ; N z ; B 21 0 468 540 ; C 123 ; WX 389 ; N braceleft ; B 37 -200 317 729 ; C 124 ; WX 280 ; N bar ; B 100 -200 180 729 ; C 125 ; WX 389 ; N braceright ; B 72 -200 352 729 ; C 126 ; WX 584 ; N asciitilde ; B 60 142 519 314 ; C 161 ; WX 333 ; N exclamdown ; B 66 -186 216 540 ; C 162 ; WX 556 ; N cent ; B 36 -124 522 634 ; C 163 ; WX 556 ; N sterling ; B 31 -23 537 715 ; C 164 ; WX 167 ; N fraction ; B -173 -20 337 715 ; C 165 ; WX 556 ; N yen ; B 5 0 552 704 ; C 166 ; WX 556 ; N florin ; B 21 -220 535 744 ; C 167 ; WX 556 ; N section ; B 33 -201 518 723 ; C 168 ; WX 556 ; N currency ; B 26 100 530 604 ; C 169 ; WX 238 ; N quotesingle ; B 50 470 188 729 ; C 170 ; WX 500 ; N quotedblleft ; B 71 469 433 729 ; C 171 ; WX 556 ; N guillemotleft ; B 88 72 468 481 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 72 250 481 ; C 173 ; WX 333 ; N guilsinglright ; B 80 72 247 481 ; C 174 ; WX 611 ; N fi ; B 9 0 548 729 ; C 175 ; WX 611 ; N fl ; B 12 0 546 729 ; C 177 ; WX 556 ; N endash ; B -9 207 557 311 ; C 178 ; WX 556 ; N dagger ; B 31 -194 523 709 ; C 179 ; WX 556 ; N daggerdbl ; B 28 -194 520 709 ; C 180 ; WX 278 ; N periodcentered ; B 64 169 188 292 ; C 182 ; WX 556 ; N paragraph ; B 19 -191 529 729 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 201 125 ; C 185 ; WX 500 ; N quotedblbase ; B 72 -135 432 125 ; C 186 ; WX 500 ; N quotedblright ; B 73 469 440 729 ; C 187 ; WX 556 ; N guillemotright ; B 88 72 462 481 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B 11 -22 990 739 ; C 191 ; WX 611 ; N questiondown ; B 51 -204 544 540 ; C 193 ; WX 333 ; N grave ; B 17 607 213 757 ; C 194 ; WX 333 ; N acute ; B 121 607 317 757 ; C 195 ; WX 333 ; N circumflex ; B 8 607 326 757 ; C 196 ; WX 333 ; N tilde ; B -9 621 345 749 ; C 197 ; WX 333 ; N macron ; B 16 640 315 719 ; C 198 ; WX 333 ; N breve ; B 35 605 299 748 ; C 199 ; WX 333 ; N dotaccent ; B 112 621 222 743 ; C 200 ; WX 333 ; N dieresis ; B 18 621 314 743 ; C 202 ; WX 333 ; N ring ; B 77 590 257 770 ; C 203 ; WX 333 ; N cedilla ; B 27 -220 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -44 610 340 757 ; C 206 ; WX 333 ; N ogonek ; B 45 -234 268 0 ; C 207 ; WX 333 ; N caron ; B 9 607 327 757 ; C 208 ; WX 1000 ; N emdash ; B -7 207 1003 311 ; C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ; C 227 ; WX 370 ; N ordfeminine ; B 31 262 329 729 ; C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ; C 233 ; WX 778 ; N Oslash ; B 31 -39 755 749 ; C 234 ; WX 1000 ; N OE ; B 28 -23 970 741 ; C 235 ; WX 365 ; N ordmasculine ; B 23 262 343 729 ; C 241 ; WX 889 ; N ae ; B 27 -24 857 549 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 207 540 ; C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ; C 249 ; WX 611 ; N oslash ; B 11 -38 598 557 ; C 250 ; WX 944 ; N oe ; B 23 -23 920 549 ; C 251 ; WX 611 ; N germandbls ; B 67 -17 575 729 ; C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ; C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ; C -1 ; WX 667 ; N Scedilla ; B 32 -220 633 741 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 677 936 ; C -1 ; WX 722 ; N Racute ; B 80 0 677 936 ; C -1 ; WX 667 ; N Sacute ; B 32 -23 633 936 ; C -1 ; WX 778 ; N Otilde ; B 40 -23 742 928 ; C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 757 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -23 742 936 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 76 -23 654 936 ; C -1 ; WX 667 ; N Yacute ; B 27 0 650 936 ; C -1 ; WX 722 ; N Eth ; B 0 0 681 729 ; C -1 ; WX 722 ; N Dcroat ; B 0 0 681 729 ; C -1 ; WX 611 ; N Zacute ; B 30 0 578 936 ; C -1 ; WX 722 ; N Uring ; B 76 -23 654 949 ; C -1 ; WX 611 ; N gbreve ; B 34 -218 541 748 ; C -1 ; WX 556 ; N eogonek ; B 21 -234 525 549 ; C -1 ; WX 556 ; N edotaccent ; B 22 -23 525 743 ; C -1 ; WX 556 ; N ecaron ; B 22 -23 525 757 ; C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ; C -1 ; WX 556 ; N eacute ; B 22 -23 525 757 ; C -1 ; WX 556 ; N edieresis ; B 22 -23 525 743 ; C -1 ; WX 707 ; N dcaron ; B 29 -23 720 729 ; C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 549 ; C -1 ; WX 556 ; N ccaron ; B 34 -23 522 757 ; C -1 ; WX 556 ; N cacute ; B 34 -23 522 757 ; C -1 ; WX 556 ; N aogonek ; B 28 -233 548 549 ; C -1 ; WX 556 ; N aring ; B 28 -23 524 770 ; C -1 ; WX 556 ; N atilde ; B 28 -23 524 749 ; C -1 ; WX 556 ; N abreve ; B 28 -23 524 748 ; C -1 ; WX 556 ; N egrave ; B 22 -23 525 757 ; C -1 ; WX 556 ; N agrave ; B 28 -23 524 757 ; C -1 ; WX 556 ; N aacute ; B 28 -23 524 757 ; C -1 ; WX 556 ; N adieresis ; B 28 -23 524 743 ; C -1 ; WX 722 ; N Uogonek ; B 76 -234 654 729 ; C -1 ; WX 611 ; N ugrave ; B 58 -23 541 757 ; C -1 ; WX 611 ; N uacute ; B 58 -23 541 757 ; C -1 ; WX 611 ; N udieresis ; B 58 -23 541 743 ; C -1 ; WX 385 ; N tcaron ; B 14 -23 398 829 ; C -1 ; WX 556 ; N scommaaccent ; B 29 -307 520 549 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ; C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 757 ; C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ; C -1 ; WX 556 ; N acircumflex ; B 28 -23 524 757 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 578 922 ; C -1 ; WX 556 ; N scaron ; B 29 -23 520 757 ; C -1 ; WX 722 ; N Amacron ; B 26 0 703 898 ; C -1 ; WX 556 ; N sacute ; B 29 -23 520 757 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -307 598 729 ; C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ; C -1 ; WX 611 ; N thorn ; B 58 -218 574 729 ; C -1 ; WX 667 ; N Emacron ; B 79 0 624 898 ; C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 661 928 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 661 936 ; C -1 ; WX 722 ; N Nacute ; B 68 0 661 936 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 579 729 ; C -1 ; WX 611 ; N Lacute ; B 80 0 579 936 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 213 922 ; C -1 ; WX 389 ; N racute ; B 63 0 370 757 ; C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ; C -1 ; WX 611 ; N ohungarumlaut ; B 35 -23 569 757 ; C -1 ; WX 611 ; N otilde ; B 35 -23 569 749 ; C -1 ; WX 556 ; N Euro ; B 6 -23 546 724 ; C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 757 ; C -1 ; WX 351 ; N onesuperior ; B 40 284 242 709 ; C -1 ; WX 351 ; N twosuperior ; B 16 284 328 718 ; C -1 ; WX 351 ; N threesuperior ; B 15 271 329 718 ; C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ; C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ; C -1 ; WX 278 ; N Imacron ; B 2 0 274 898 ; C -1 ; WX 278 ; N Iogonek ; B 34 -233 237 729 ; C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ; C -1 ; WX 778 ; N Gbreve ; B 42 -23 711 927 ; C -1 ; WX 722 ; N Umacron ; B 76 -23 654 898 ; C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 717 729 ; C -1 ; WX 611 ; N ograve ; B 35 -23 569 757 ; C -1 ; WX 667 ; N Scommaaccent ; B 32 -307 633 741 ; C -1 ; WX 667 ; N Eogonek ; B 79 -233 648 729 ; C -1 ; WX 611 ; N oacute ; B 35 -23 569 757 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 624 922 ; C -1 ; WX 278 ; N iogonek ; B 34 -233 231 729 ; C -1 ; WX 611 ; N gcommaaccent ; B 34 -218 541 853 ; C -1 ; WX 611 ; N odieresis ; B 35 -23 569 743 ; C -1 ; WX 611 ; N ntilde ; B 63 0 546 749 ; C -1 ; WX 611 ; N ncaron ; B 63 0 546 757 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 624 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ; C -1 ; WX 556 ; N scedilla ; B 29 -220 520 549 ; C -1 ; WX 389 ; N rcaron ; B 54 0 372 757 ; C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ; C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 42 -307 711 741 ; C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 677 729 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ; C -1 ; WX 611 ; N nacute ; B 63 0 546 757 ; C -1 ; WX 611 ; N uogonek ; B 58 -233 564 540 ; C -1 ; WX 611 ; N umacron ; B 58 -23 541 719 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 681 936 ; C -1 ; WX 369 ; N lcaron ; B 67 0 382 729 ; C -1 ; WX 722 ; N Ccaron ; B 44 -23 685 936 ; C -1 ; WX 722 ; N Cacute ; B 44 -23 685 936 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ; C -1 ; WX 606 ; N degree ; B 151 383 454 686 ; C -1 ; WX 722 ; N Aogonek ; B 26 -233 723 729 ; C -1 ; WX 584 ; N minus ; B 40 172 544 291 ; C -1 ; WX 584 ; N multiply ; B 79 18 505 444 ; C -1 ; WX 584 ; N divide ; B 50 -11 534 474 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 949 ; C -1 ; WX 1000 ; N trademark ; B 71 273 929 729 ; C -1 ; WX 389 ; N rcommaaccent ; B 63 -307 370 549 ; C -1 ; WX 278 ; N lacute ; B 67 0 278 936 ; C -1 ; WX 611 ; N omacron ; B 35 -23 569 719 ; C -1 ; WX 722 ; N Atilde ; B 26 0 703 928 ; C -1 ; WX 278 ; N icircumflex ; B -19 0 299 757 ; C -1 ; WX 278 ; N igrave ; B -10 0 207 757 ; C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 546 549 ; C -1 ; WX 278 ; N lcommaaccent ; B 67 -307 207 729 ; C -1 ; WX 584 ; N plusminus ; B 56 -16 527 608 ; C -1 ; WX 869 ; N onehalf ; B 40 -20 846 715 ; C -1 ; WX 869 ; N onequarter ; B 40 -20 850 715 ; C -1 ; WX 869 ; N threequarters ; B 15 -20 850 718 ; C -1 ; WX 278 ; N iacute ; B 67 0 290 757 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 927 ; C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 548 729 ; C -1 ; WX 778 ; N Omacron ; B 40 -23 742 898 ; C -1 ; WX 278 ; N imacron ; B 7 0 266 719 ; C -1 ; WX 556 ; N emacron ; B 22 -23 525 719 ; C -1 ; WX 556 ; N amacron ; B 28 -23 524 719 ; C -1 ; WX 333 ; N tcommaaccent ; B 14 -307 301 674 ; C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 743 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 468 743 ; C -1 ; WX 500 ; N zcaron ; B 21 0 468 757 ; C -1 ; WX 500 ; N zacute ; B 21 0 468 757 ; C -1 ; WX 556 ; N yacute ; B 9 -219 538 757 ; C -1 ; WX 611 ; N uhungarumlaut ; B 58 -23 559 757 ; C -1 ; WX 611 ; N eth ; B 35 -23 569 744 ; C -1 ; WX 611 ; N uring ; B 58 -23 541 770 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ; C -1 ; WX 333 ; N commaaccent ; B 112 -307 234 -60 ; C -1 ; WX 737 ; N copyright ; B -14 -22 751 743 ; C -1 ; WX 737 ; N registered ; B -14 -22 751 743 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 278 ; N idieresis ; B -9 0 287 743 ; C -1 ; WX 489 ; N lozenge ; B 16 0 462 744 ; C -1 ; WX 729 ; N Delta ; B 8 0 721 729 ; C -1 ; WX 548 ; N notequal ; B 50 -69 534 528 ; C -1 ; WX 542 ; N radical ; B 7 -36 512 913 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ; C -1 ; WX 584 ; N lessequal ; B 45 -10 534 639 ; C -1 ; WX 584 ; N greaterequal ; B 45 -10 534 639 ; C -1 ; WX 584 ; N logicalnot ; B 40 86 544 375 ; C -1 ; WX 711 ; N summation ; B 17 -96 694 760 ; C -1 ; WX 490 ; N partialdiff ; B 22 -15 458 750 ; C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 661 729 ; C -1 ; WX 611 ; N dcroat ; B 29 -23 605 729 ; C -1 ; WX 280 ; N brokenbar ; B 100 -200 180 729 ; C -1 ; WX 611 ; N Lcommaaccent ; B 80 -307 579 729 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ; C -1 ; WX 611 ; N mu ; B 58 -220 573 540 ; C -1 ; WX 278 ; N .notdef ; B 214 0 214 0 ; EndCharMetrics StartKernData StartKernPairs 998 KPX A C -33 KPX A Ccedilla -33 KPX A G -35 KPX A O -34 KPX A Odieresis -34 KPX A Q -35 KPX A T -81 KPX A U -32 KPX A Uacute -32 KPX A Ucircumflex -32 KPX A Udieresis -32 KPX A Ugrave -32 KPX A V -66 KPX A W -51 KPX A Y -90 KPX A a -1 KPX A b -1 KPX A c -14 KPX A ccedilla -14 KPX A comma 19 KPX A d -13 KPX A e -9 KPX A g -14 KPX A guillemotleft -43 KPX A guilsinglleft -40 KPX A hyphen 7 KPX A o -16 KPX A period 19 KPX A q -12 KPX A quotedblright -65 KPX A quoteright -61 KPX A t -18 KPX A u -12 KPX A v -37 KPX A w -23 KPX A y -35 KPX Aacute C -33 KPX Aacute G -35 KPX Aacute O -34 KPX Aacute Q -35 KPX Aacute T -81 KPX Aacute U -32 KPX Aacute V -66 KPX Aacute W -51 KPX Aacute Y -90 KPX Aacute a -1 KPX Aacute b -1 KPX Aacute c -14 KPX Aacute comma 19 KPX Aacute d -13 KPX Aacute e -9 KPX Aacute g -14 KPX Aacute guillemotleft -43 KPX Aacute guilsinglleft -40 KPX Aacute hyphen 7 KPX Aacute o -16 KPX Aacute period 19 KPX Aacute q -12 KPX Aacute quoteright -61 KPX Aacute t -18 KPX Aacute u -12 KPX Aacute v -37 KPX Aacute w -23 KPX Aacute y -35 KPX Acircumflex C -33 KPX Acircumflex G -35 KPX Acircumflex O -34 KPX Acircumflex Q -35 KPX Acircumflex T -81 KPX Acircumflex U -32 KPX Acircumflex V -66 KPX Acircumflex W -51 KPX Acircumflex Y -90 KPX Acircumflex comma 19 KPX Acircumflex period 19 KPX Adieresis C -33 KPX Adieresis G -35 KPX Adieresis O -34 KPX Adieresis Q -35 KPX Adieresis T -81 KPX Adieresis U -32 KPX Adieresis V -66 KPX Adieresis W -51 KPX Adieresis Y -90 KPX Adieresis a -1 KPX Adieresis b -1 KPX Adieresis c -14 KPX Adieresis comma 19 KPX Adieresis d -13 KPX Adieresis g -14 KPX Adieresis guillemotleft -43 KPX Adieresis guilsinglleft -40 KPX Adieresis hyphen 7 KPX Adieresis o -16 KPX Adieresis period 19 KPX Adieresis q -12 KPX Adieresis quotedblright -65 KPX Adieresis quoteright -61 KPX Adieresis t -18 KPX Adieresis u -12 KPX Adieresis v -37 KPX Adieresis w -23 KPX Adieresis y -35 KPX Agrave C -33 KPX Agrave G -35 KPX Agrave O -34 KPX Agrave Q -35 KPX Agrave T -81 KPX Agrave U -32 KPX Agrave V -66 KPX Agrave W -51 KPX Agrave Y -90 KPX Agrave comma 19 KPX Agrave period 19 KPX Aring C -33 KPX Aring G -35 KPX Aring O -34 KPX Aring Q -35 KPX Aring T -81 KPX Aring U -32 KPX Aring V -66 KPX Aring W -51 KPX Aring Y -90 KPX Aring a -1 KPX Aring b -1 KPX Aring c -14 KPX Aring comma 19 KPX Aring d -13 KPX Aring e -9 KPX Aring g -14 KPX Aring guillemotleft -43 KPX Aring guilsinglleft -40 KPX Aring hyphen 7 KPX Aring o -16 KPX Aring period 19 KPX Aring q -12 KPX Aring quotedblright -65 KPX Aring quoteright -61 KPX Aring t -18 KPX Aring u -12 KPX Aring v -37 KPX Aring w -23 KPX Aring y -35 KPX Atilde C -33 KPX Atilde G -35 KPX Atilde O -34 KPX Atilde Q -35 KPX Atilde T -81 KPX Atilde U -32 KPX Atilde V -66 KPX Atilde W -51 KPX Atilde Y -90 KPX Atilde comma 19 KPX Atilde period 19 KPX B A -32 KPX B AE -20 KPX B Aacute -32 KPX B Acircumflex -32 KPX B Adieresis -32 KPX B Aring -32 KPX B Atilde -32 KPX B O -11 KPX B OE -2 KPX B Oacute -11 KPX B Ocircumflex -11 KPX B Odieresis -11 KPX B Ograve -11 KPX B Oslash -5 KPX B V -39 KPX B W -27 KPX B Y -51 KPX C A -29 KPX C AE -17 KPX C Aacute -29 KPX C Adieresis -29 KPX C Aring -29 KPX C H 5 KPX C K 2 KPX C O -6 KPX C Oacute -6 KPX C Odieresis -6 KPX Ccedilla A -28 KPX D A -37 KPX D Aacute -37 KPX D Acircumflex -37 KPX D Adieresis -37 KPX D Agrave -37 KPX D Aring -37 KPX D Atilde -37 KPX D J 2 KPX D T -17 KPX D V -35 KPX D W -20 KPX D X -35 KPX D Y -56 KPX F A -63 KPX F Aacute -63 KPX F Acircumflex -63 KPX F Adieresis -63 KPX F Agrave -63 KPX F Aring -63 KPX F Atilde -63 KPX F J -25 KPX F O -16 KPX F Odieresis -16 KPX F a -15 KPX F aacute -15 KPX F adieresis -15 KPX F ae -17 KPX F aring -15 KPX F comma -76 KPX F e -7 KPX F eacute -7 KPX F hyphen 11 KPX F i -7 KPX F j -9 KPX F o -14 KPX F oacute -14 KPX F odieresis -14 KPX F oe -8 KPX F oslash -15 KPX F period -75 KPX F r -27 KPX F u -24 KPX G A -8 KPX G AE 4 KPX G Aacute -8 KPX G Acircumflex -8 KPX G Adieresis -8 KPX G Agrave -8 KPX G Aring -8 KPX G Atilde -8 KPX G T -17 KPX G V -36 KPX G W -20 KPX G Y -56 KPX J A -32 KPX J AE -20 KPX J Adieresis -32 KPX J Aring -32 KPX K C -53 KPX K G -55 KPX K O -54 KPX K OE -44 KPX K Oacute -54 KPX K Odieresis -54 KPX K S -30 KPX K T 13 KPX K a -3 KPX K adieresis -3 KPX K ae 0 KPX K aring -3 KPX K e -25 KPX K hyphen -44 KPX K o -33 KPX K oacute -33 KPX K odieresis -33 KPX K u -23 KPX K udieresis -23 KPX K y -65 KPX L A 9 KPX L AE 21 KPX L Aacute 9 KPX L Adieresis 9 KPX L Aring 9 KPX L C -26 KPX L Ccedilla -26 KPX L G -30 KPX L O -29 KPX L Oacute -29 KPX L Ocircumflex -29 KPX L Odieresis -29 KPX L Ograve -29 KPX L Otilde -29 KPX L S -2 KPX L T -95 KPX L U -24 KPX L Udieresis -24 KPX L V -90 KPX L W -68 KPX L Y -112 KPX L hyphen -12 KPX L quotedblright -141 KPX L quoteright -138 KPX L u -7 KPX L udieresis -7 KPX L y -55 KPX N A -5 KPX N AE 7 KPX N Aacute -5 KPX N Adieresis -5 KPX N Aring -5 KPX N C 9 KPX N Ccedilla 9 KPX N G 8 KPX N O 8 KPX N Oacute 8 KPX N Odieresis 8 KPX N a 13 KPX N aacute 13 KPX N adieresis 13 KPX N ae 13 KPX N aring 13 KPX N comma 15 KPX N e 18 KPX N eacute 18 KPX N o 11 KPX N oacute 11 KPX N odieresis 11 KPX N oslash 11 KPX N period 16 KPX N u 12 KPX N udieresis 12 KPX O A -37 KPX O AE -26 KPX O Aacute -37 KPX O Adieresis -37 KPX O Aring -37 KPX O T -20 KPX O V -36 KPX O W -21 KPX O X -36 KPX O Y -59 KPX Oacute A -37 KPX Oacute T -20 KPX Oacute V -36 KPX Oacute W -21 KPX Oacute Y -59 KPX Ocircumflex T -20 KPX Ocircumflex V -36 KPX Ocircumflex Y -59 KPX Odieresis A -37 KPX Odieresis T -20 KPX Odieresis V -36 KPX Odieresis W -21 KPX Odieresis X -36 KPX Odieresis Y -59 KPX Ograve T -20 KPX Ograve V -36 KPX Ograve Y -59 KPX Oslash A -32 KPX Otilde T -20 KPX Otilde V -36 KPX Otilde Y -59 KPX P A -65 KPX P AE -54 KPX P Aacute -65 KPX P Adieresis -65 KPX P Aring -65 KPX P J -44 KPX P a -7 KPX P aacute -7 KPX P adieresis -7 KPX P ae -8 KPX P aring -7 KPX P comma -94 KPX P e -8 KPX P eacute -8 KPX P hyphen 0 KPX P o -14 KPX P oacute -14 KPX P odieresis -14 KPX P oe -8 KPX P oslash -17 KPX P period -94 KPX R C -5 KPX R Ccedilla -5 KPX R G -6 KPX R O -6 KPX R OE 3 KPX R Oacute -6 KPX R Odieresis -6 KPX R T 0 KPX R U -4 KPX R Udieresis -4 KPX R V -26 KPX R W -17 KPX R Y -37 KPX R a 0 KPX R aacute 0 KPX R adieresis 0 KPX R ae 0 KPX R aring 0 KPX R e 2 KPX R eacute 2 KPX R hyphen 15 KPX R o -4 KPX R oacute -4 KPX R odieresis -4 KPX R oe 1 KPX R u 0 KPX R uacute 0 KPX R udieresis 0 KPX R y 5 KPX S A -20 KPX S AE -8 KPX S Aacute -20 KPX S Adieresis -20 KPX S Aring -20 KPX S T -5 KPX S V -31 KPX S W -17 KPX S Y -43 KPX S t 1 KPX T A -87 KPX T AE -75 KPX T Aacute -87 KPX T Acircumflex -87 KPX T Adieresis -87 KPX T Agrave -87 KPX T Aring -87 KPX T Atilde -87 KPX T C -20 KPX T G -22 KPX T J -87 KPX T O -22 KPX T OE -11 KPX T Oacute -22 KPX T Ocircumflex -22 KPX T Odieresis -22 KPX T Ograve -22 KPX T Oslash -23 KPX T Otilde -22 KPX T S 3 KPX T V 18 KPX T W 24 KPX T Y 16 KPX T a -73 KPX T ae -73 KPX T c -74 KPX T colon -97 KPX T comma -67 KPX T e -69 KPX T g -75 KPX T guillemotleft -101 KPX T guilsinglleft -98 KPX T hyphen -48 KPX T i -1 KPX T j -3 KPX T o -76 KPX T oslash -73 KPX T period -67 KPX T r -71 KPX T s -74 KPX T semicolon -98 KPX T u -72 KPX T v -82 KPX T w -77 KPX T y -80 KPX U A -34 KPX U AE -22 KPX U Aacute -34 KPX U Acircumflex -34 KPX U Adieresis -34 KPX U Aring -34 KPX U Atilde -34 KPX U comma -7 KPX U m 6 KPX U n 5 KPX U p 7 KPX U period -4 KPX U r 5 KPX Uacute A -34 KPX Uacute comma -7 KPX Uacute m 6 KPX Uacute n 5 KPX Uacute p 7 KPX Uacute period -4 KPX Uacute r 5 KPX Ucircumflex A -34 KPX Udieresis A -34 KPX Udieresis b 6 KPX Udieresis comma -7 KPX Udieresis m 6 KPX Udieresis n 5 KPX Udieresis p 7 KPX Udieresis period -4 KPX Udieresis r 5 KPX Ugrave A -34 KPX V A -71 KPX V AE -59 KPX V Aacute -71 KPX V Acircumflex -71 KPX V Adieresis -71 KPX V Agrave -71 KPX V Aring -71 KPX V Atilde -71 KPX V C -36 KPX V G -38 KPX V O -37 KPX V Oacute -37 KPX V Ocircumflex -37 KPX V Odieresis -37 KPX V Ograve -37 KPX V Oslash -31 KPX V Otilde -37 KPX V S -21 KPX V T 21 KPX V a -47 KPX V ae -48 KPX V colon -65 KPX V comma -69 KPX V e -43 KPX V g -49 KPX V guillemotleft -74 KPX V guilsinglleft -72 KPX V hyphen -21 KPX V i -5 KPX V o -50 KPX V oslash -48 KPX V period -69 KPX V r -34 KPX V semicolon -67 KPX V u -34 KPX V y -10 KPX W A -54 KPX W AE -43 KPX W Aacute -54 KPX W Acircumflex -54 KPX W Adieresis -54 KPX W Agrave -54 KPX W Aring -54 KPX W Atilde -54 KPX W C -20 KPX W G -22 KPX W O -21 KPX W Oacute -21 KPX W Ocircumflex -21 KPX W Odieresis -21 KPX W Ograve -21 KPX W Oslash -15 KPX W Otilde -21 KPX W S -12 KPX W T 25 KPX W a -29 KPX W ae -29 KPX W colon -53 KPX W comma -45 KPX W e -24 KPX W g -30 KPX W guillemotleft -55 KPX W guilsinglleft -53 KPX W hyphen -3 KPX W i -1 KPX W o -31 KPX W oslash -29 KPX W period -45 KPX W r -24 KPX W semicolon -54 KPX W u -23 KPX W y 0 KPX X C -34 KPX X O -35 KPX X Odieresis -35 KPX X Q -37 KPX X a -5 KPX X e -25 KPX X hyphen -27 KPX X o -32 KPX X u -25 KPX X y -40 KPX Y A -86 KPX Y AE -74 KPX Y Aacute -86 KPX Y Acircumflex -86 KPX Y Adieresis -86 KPX Y Agrave -86 KPX Y Aring -86 KPX Y Atilde -86 KPX Y C -52 KPX Y G -54 KPX Y O -54 KPX Y Oacute -54 KPX Y Ocircumflex -54 KPX Y Odieresis -54 KPX Y Ograve -54 KPX Y Oslash -47 KPX Y Otilde -54 KPX Y S -29 KPX Y T 22 KPX Y a -66 KPX Y ae -67 KPX Y colon -81 KPX Y comma -78 KPX Y e -63 KPX Y g -68 KPX Y guillemotleft -98 KPX Y guilsinglleft -96 KPX Y hyphen -50 KPX Y i -3 KPX Y o -70 KPX Y oslash -67 KPX Y p -45 KPX Y period -78 KPX Y semicolon -83 KPX Y u -48 KPX Y v -27 KPX Z v -11 KPX Z y -9 KPX a j -1 KPX a quoteright -11 KPX a v -19 KPX a w -5 KPX a y -17 KPX aacute v -19 KPX aacute w -5 KPX aacute y -17 KPX adieresis v -19 KPX adieresis w -5 KPX adieresis y -17 KPX ae v -21 KPX ae w -7 KPX ae y -19 KPX agrave v -19 KPX agrave w -5 KPX agrave y -17 KPX aring v -19 KPX aring w -5 KPX aring y -17 KPX b v -20 KPX b w -7 KPX b y -20 KPX c h 0 KPX c k 3 KPX comma one -73 KPX comma quotedblright -33 KPX comma quoteright -30 KPX e quoteright -12 KPX e t -4 KPX e v -19 KPX e w -6 KPX e x -21 KPX e y -17 KPX eacute v -19 KPX eacute w -6 KPX eacute y -17 KPX ecircumflex v -19 KPX ecircumflex w -6 KPX ecircumflex y -17 KPX eight four 10 KPX eight one -23 KPX eight seven -6 KPX f a 1 KPX f aacute 1 KPX f adieresis 1 KPX f ae 0 KPX f aring 1 KPX f e -3 KPX f eacute -3 KPX f f 21 KPX f i -3 KPX f j -6 KPX f l -3 KPX f o -9 KPX f oacute -9 KPX f odieresis -9 KPX f oe -3 KPX f oslash -9 KPX f quoteright 10 KPX f s -1 KPX f t 21 KPX five four 6 KPX five one -29 KPX five seven -10 KPX four four 9 KPX four one -50 KPX four seven -28 KPX g a 3 KPX g adieresis 3 KPX g ae 3 KPX g aring 3 KPX g e 8 KPX g eacute 8 KPX g l 0 KPX g oacute 1 KPX g odieresis 1 KPX g r 1 KPX guillemotright A -51 KPX guillemotright AE -39 KPX guillemotright Aacute -51 KPX guillemotright Adieresis -51 KPX guillemotright Aring -51 KPX guillemotright T -108 KPX guillemotright V -78 KPX guillemotright W -60 KPX guillemotright Y -111 KPX guilsinglright A -46 KPX guilsinglright AE -35 KPX guilsinglright Aacute -46 KPX guilsinglright Adieresis -46 KPX guilsinglright Aring -46 KPX guilsinglright T -104 KPX guilsinglright V -74 KPX guilsinglright W -56 KPX guilsinglright Y -107 KPX h quoteright -14 KPX h y -21 KPX hyphen A -1 KPX hyphen AE 10 KPX hyphen Aacute -1 KPX hyphen Adieresis -1 KPX hyphen Aring -1 KPX hyphen T -57 KPX hyphen V -27 KPX hyphen W -9 KPX hyphen Y -64 KPX i T -4 KPX i j -2 KPX k a -2 KPX k aacute -2 KPX k adieresis -2 KPX k ae 1 KPX k aring -2 KPX k comma 7 KPX k e -15 KPX k eacute -15 KPX k g -21 KPX k hyphen -25 KPX k o -22 KPX k oacute -22 KPX k odieresis -22 KPX k period 6 KPX k s -10 KPX k u -1 KPX k udieresis -1 KPX l v -5 KPX l y -2 KPX m p 6 KPX m v -19 KPX m w -6 KPX m y -18 KPX n T -80 KPX n p 5 KPX n quoteright -12 KPX n v -20 KPX n w -7 KPX n y -19 KPX nine four 4 KPX nine one -21 KPX nine seven -17 KPX o T -84 KPX o quoteright -17 KPX o t -8 KPX o v -23 KPX o w -10 KPX o x -25 KPX o y -22 KPX oacute v -23 KPX oacute w -10 KPX oacute y -22 KPX ocircumflex t -8 KPX odieresis t -8 KPX odieresis v -23 KPX odieresis w -10 KPX odieresis x -25 KPX odieresis y -22 KPX ograve v -23 KPX ograve w -10 KPX ograve y -22 KPX one comma -42 KPX one eight -37 KPX one five -43 KPX one four -56 KPX one nine -39 KPX one one -85 KPX one period -42 KPX one seven -65 KPX one six -37 KPX one three -44 KPX one two -47 KPX one zero -34 KPX p t -5 KPX p y -20 KPX period one -73 KPX period quotedblright -32 KPX period quoteright -29 KPX q c 4 KPX q u 4 KPX quotedblbase A 12 KPX quotedblbase AE 24 KPX quotedblbase T -75 KPX quotedblbase V -73 KPX quotedblbase W -51 KPX quotedblbase Y -92 KPX quotedblleft A -68 KPX quotedblleft AE -57 KPX quotedblleft Aacute -68 KPX quotedblleft Adieresis -68 KPX quotedblleft Aring -68 KPX quotedblleft T -2 KPX quotedblleft V 6 KPX quotedblleft W 16 KPX quotedblleft Y -9 KPX quotedblright A -69 KPX quotedblright AE -57 KPX quotedblright Aacute -69 KPX quotedblright Adieresis -69 KPX quotedblright Aring -69 KPX quotedblright T 1 KPX quotedblright V 7 KPX quotedblright W 17 KPX quotedblright Y -7 KPX quoteleft A -73 KPX quoteleft AE -62 KPX quoteleft Aacute -73 KPX quoteleft Adieresis -73 KPX quoteleft Aring -73 KPX quoteleft T -7 KPX quoteleft V 2 KPX quoteleft W 11 KPX quoteleft Y -13 KPX quoteright A -77 KPX quoteright AE -66 KPX quoteright Aacute -77 KPX quoteright Adieresis -77 KPX quoteright Aring -77 KPX quoteright comma -46 KPX quoteright d -27 KPX quoteright o -30 KPX quoteright period -45 KPX quoteright r -15 KPX quoteright s -22 KPX quoteright t -4 KPX quoteright v -5 KPX quoteright w 1 KPX quoteright y -3 KPX r a 6 KPX r aacute 6 KPX r acircumflex 6 KPX r adieresis 6 KPX r ae 4 KPX r agrave 6 KPX r aring 6 KPX r c 0 KPX r ccedilla 0 KPX r colon -27 KPX r comma -57 KPX r d 0 KPX r e 4 KPX r eacute 4 KPX r ecircumflex 4 KPX r egrave 4 KPX r f 22 KPX r g -2 KPX r h -4 KPX r hyphen -35 KPX r i -4 KPX r j -6 KPX r k 0 KPX r l -4 KPX r m -1 KPX r n -2 KPX r o -1 KPX r oacute -1 KPX r ocircumflex -1 KPX r odieresis -1 KPX r oe 5 KPX r ograve -1 KPX r oslash -4 KPX r p 0 KPX r period -57 KPX r q 1 KPX r quoteright 14 KPX r r -2 KPX r s 3 KPX r semicolon -27 KPX r t 22 KPX r u 0 KPX r v 21 KPX r w 26 KPX r x 17 KPX r y 23 KPX r z 9 KPX s quoteright -12 KPX s t -1 KPX seven colon -63 KPX seven comma -88 KPX seven eight -3 KPX seven five -21 KPX seven four -62 KPX seven one -14 KPX seven period -87 KPX seven seven 9 KPX seven six -13 KPX seven three 0 KPX seven two -4 KPX six four 7 KPX six one -21 KPX six seven -3 KPX t S 0 KPX t a 6 KPX t aacute 6 KPX t adieresis 6 KPX t ae 7 KPX t aring 6 KPX t colon -25 KPX t e -3 KPX t eacute -3 KPX t h 2 KPX t o -10 KPX t oacute -10 KPX t odieresis -10 KPX t quoteright 4 KPX t semicolon -25 KPX three four 6 KPX three one -27 KPX three seven -10 KPX two four -9 KPX two one -16 KPX two seven -3 KPX u quoteright -2 KPX v a -15 KPX v aacute -15 KPX v acircumflex -15 KPX v adieresis -15 KPX v ae -16 KPX v agrave -15 KPX v aring -15 KPX v atilde -15 KPX v c -20 KPX v colon -32 KPX v comma -51 KPX v e -15 KPX v eacute -15 KPX v ecircumflex -15 KPX v egrave -15 KPX v g -21 KPX v hyphen 0 KPX v l -5 KPX v o -22 KPX v oacute -22 KPX v odieresis -22 KPX v ograve -22 KPX v oslash -20 KPX v period -50 KPX v s -17 KPX v semicolon -34 KPX w a -7 KPX w aacute -7 KPX w acircumflex -7 KPX w adieresis -7 KPX w ae -8 KPX w agrave -7 KPX w aring -7 KPX w atilde -7 KPX w c -8 KPX w colon -27 KPX w comma -33 KPX w e -3 KPX w eacute -3 KPX w ecircumflex -3 KPX w egrave -3 KPX w g -9 KPX w hyphen 11 KPX w l -1 KPX w o -10 KPX w oacute -10 KPX w odieresis -10 KPX w ograve -10 KPX w oslash -8 KPX w period -32 KPX w s -9 KPX w semicolon -29 KPX x a -9 KPX x c -22 KPX x e -17 KPX x eacute -17 KPX x o -24 KPX x q -20 KPX y a -14 KPX y aacute -14 KPX y acircumflex -14 KPX y adieresis -14 KPX y ae -15 KPX y agrave -14 KPX y aring -14 KPX y atilde -14 KPX y c -21 KPX y colon -31 KPX y comma -51 KPX y e -16 KPX y eacute -16 KPX y ecircumflex -16 KPX y egrave -16 KPX y g -21 KPX y hyphen 0 KPX y l -4 KPX y o -22 KPX y oacute -22 KPX y odieresis -22 KPX y ograve -22 KPX y oslash -20 KPX y period -50 KPX y s -16 KPX y semicolon -33 KPX zero four 5 KPX zero one -19 KPX zero seven -10 EndKernPairs EndKernData EndFontMetrics grace-5.1.25/fonts/type1/n019003l.pfb0000644000076500001440000010627207056046552016425 0ustar fnevgenyusers€]%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans L Regular) readonly def /FamilyName (Nimbus Sans L) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -151 def /UnderlineThickness 50 def end readonly def /FontName /NimbusSanL-Regu def /PaintType 0 def /WMode 0 def /FontBBox {-174 -285 1001 953} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020902 def currentdict end currentfile eexec €5„é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>nc5+\3v,ŽIÔ5L™:v L$l¤Û¬˜º:Ñs"ÎñÞ a“æ”SÙüÇ㘧Ĝ;“@QcIzL¨ýâê6kGyå§½ò± § 裳Zfc…YíºµÀ 0@\d›ØÏà"ƒØò¬üíÌCKç#€æ Ù’¼:Ë£ónþts‰gA´hàÐx/R ÒÈõe½ä'R>{q•¹ñ'Óñ‰øXùìéã’J<2¦u—ì_l1HÚ5G‡‚ƒ­o¥q²­AðjèéLüÝà.¦=ùÍ1@눒ðu:l›N¼:ØÇݶ¯§oWˆ»oÅO„)ÃÅz‹üX&“wf\¼RsRìó¸þÕ7NŒÒpŠÂ¢_[‡æ d+¥îm)ßfŸ‹®4 dIÃm4b‹Ã}çŠ)òåÆy­òìV¦šEõê[ ø‚C1¹ +‘‚íNäéy¬™<»:“Pa æ¤4cÝfϤ¡l4c»Ã„œc§h·hU¸¬è¸Åéˆn»˜÷…ß”DJ,³û–kMõjÄÈr6q±t¸LÜù«A”c–$¢Â3TQ2ÎÛË‘é2xøgt7÷QÜl¢÷Föx 3ôô‹A4IFüÜÛ;æ€Á@4i]Æ=‘ƒUW£2}_Sì•Eµ øÌþÓïiÿŠ™m¯÷Šgáµ@äH ÜK,ªþ|zúÒl˜ˆmƒr+ˆEäiPú·~îW439˜ á>P*UþŒzñûlÆØÌW?gˆÊf¥^ëbüüþ’UŠ·:8ïÿáÖÓËbnès‰ÌB¥ýγÝ;LÖðàƒ ñdáÄÆb‰;àìxÅóš+[D*@dÄ?Ùùê¹™iÈ~žÚÓ½Zä–†Éc¨ &ãCš–Ù›äpÖàú3Ú€©©¹DÛO´É®…h²ra£.‰j3%°*Q˜Î©”¸=æÍ½px£ ·àP)xñªî;\: “ØCeþâv»T– ??G¸HBo*éßùº1ã8ŽÍôÒîË<¨á÷d¨×ü…ù/w[ýJr bÿí³r`è­‰î.Å+Ù&HŠ~ñY÷l;äýIxÑù¥6@½ºU»€I?Öl¡T¦Oú‡Ê“v¼ùcëW®ŒjK÷Wž¬Ž¿l€œõJçw,›ˆ°nX†Qû{Ñ‚oFh‹‡¼G{Á?³#_Q"P|p%BÜÄö-TAJ`ÀSMé´èÈ5°WÕ•;¥Éªv± ,^EåÐÍ2úlO?²Šó-ü×›å×®ÐTîêÈôÌâÁ¹›øU5 eKñcäq¬ô®Á ÷·Ôg. p`µa§<),Ûã¦u éû?hN…,´š½e6„ðJ´i½£m€t%Úᅳý€·myGïø5 ­·veîÒt† ; u£Çª•ÕïZ¥*ÌpɇjH° ôس¯Ð ›å Ý6S”üVÝóAyÖ艚<¥W(\…uJ[UäÁÄžÔ=pRð¨$'ûƒƒp‰S]PóÇ;Xô¼’=ÞŸ;œà'üîSŒî€²€h€pC¦‡ù±ÐBR$¨Š=ôÑTfs€7 ÆPÃ8ò^—»J@Œœˆ0¡S½(·×1R5Íœ$0gHAè"aÑeëF{°8s ê9÷ïâC6á›ÉΧ•(y,tùU.ZèªJ(Ür=†ó/[H[\öƒb^g4Š(ÌŠeoL¥Éè²N6#gÛ¸`•wK†…$qv‚©Í“¦èV8s âADÎ:H¸ðpt,ÕäN€õÔØ™&2x(”Š!ŽÚ†¿ŸUÒqè÷ˆ˜ç"¹®³oc¦÷:…ÕYQT>ˆ) ж80ü.#œ`ÌüÖlïþY!¨ÂÆd«;0ÚÁuT·“ªe“Aír9Xh:»¿m@ó”O—¹Š”Ÿ èœÕ'¹ÆÌ‚Ëy¶tn…nß ²hý £¡Û˜@ûꡦÖèmb³Ã…øF- ÚLRPÐÓͨ±2˜6Ìafò!ó.Šû;ˆB*§ðÏ; —÷ñÿG±ÑP'ú³”¡ËKÅ(ÿwÊžó?ô›£€Y h ^™Ñf(Â9Ä–^}ØO¥Ã§øzǦ€_FÝ2¤5ˆ‰öìfú rÆ®vÞm,G¡y%MÍä ‰¥q¿>ÊÊf¡ï‘]À7^“ôpCQçz4¸ö÷¾c# Pñ¦¸¶îWÆMN—«ý›æ§ð¬aà·›Ïteÿ·Øjœ«;†ÉÉh쌞€ªÑ]ÒXQý_¤@õì’“Û·D[“¨m9…ÀøÌ). Ó)C¥:»<:(À£¿*þaŒo ”…¦Ôx3pÕ1¤ÐrÔP¢òaÊ|0Í‰ŽšRàT^󀕰I¿í’‚ èè( n¡+¤ á®à¥!ÂÊc€@YSs«UÒÛ#Ò;„Ÿdw |•m‹7ì&žtôaÿßËfÑVï/Ú»aÅ—Æ›ñ‚ WEÐUqZ©Ñ^¶¤Y¡²+žu­ ].#i}Å, }­Q$H`DÕ¯\,. ªŒúœißôîô»Ù+*àN;SàDÇ„;HvFκ’Ö’ý¹F*-o£|íö‰ÈÝÇð§‹ÅAÇÝÆŠ&ázžÉ]ŽÖmÙÿ!¸M ¿ƒ·§™™šôtG™¤o’ªkÿ.5î[NÉ—cŸÚwª 5`‹²õ߬{ò|Êê}IÏÀ¦Í©*⤟Τ:‰Õ s¦«½åéåÚŘ˜2}‰`š Ã:å¡ç&È{Zó;uòÚUb KÛûw+¢V7Sš íÛ>\͈E¶º ¢ì×^OßšiÿG-x @fÉa¿F%ªˆÕSU€áÓFX,.q2Szí³b ‡£åco#íäO¬Kˆ3ŠS{d}²™…§º•q@o9½/±uÕkãp#ŸÕ"í­Šè‚¥Ÿ¼g) 5jhÁùÏ9ò•œ§Æú¶ù5¬ªª½"øSv³Ü'\•î_ŠF7ïE ÜyÑý[ §€;ÕN`=ˆ!1…QK_9&ÍGøÍÍÑww·â 87eSxZÛíQÀÌ’¸ˆÕDý‡§¸´Ÿœ"óÙsq4¼'¹Ù¯«iAoQ‹ ÂQ«¥£Š*{í|ÝõJ;©ìÄvµ!hôTÒ˜®?·› Wc$Ìè´ÓDƒ8 ËìÔå®ÇE_}ÐÚcºjÃÝù¯¨ÒÙ£ u º> ÍΗsÊíkXµqÉ0÷mÔ\ˆ¾È'\œ9 Â@Ú½#[ç_âü@P(ùcqß UÉB¬¥uÛ†Ö3) v¯“VÞ¶ò _TSZ±áýs¯´Ù5°Ÿ6¢Y=þ]Ù ¬|ìŽíªò£ûc B(§ >s2å¹:‡|õA¼°Ó´p¦ˆdƒÅ/'·"ÆíK7Ì$Çü͈֑¯ËQDÕA“‡g`RŽ'“mcó`aM1UmI›ôŸŒÂ0åÁÒîeg± à<¯–/¦Ö7ÂÇ•´ÛHÀk¹(@¢  Ö&*{$굯ž–¬öxÖõêoJ‡)ì|;NÉ»7U:5§.ÇKgˆ#*C!ŸÑ³Š0Þï^нÔ7ñå·Ú H¦ÄAVŽz‡éU˾÷Ën•ýžÔO›ß¯i´ìù&YSâ"Á«ØSG·šaU‹÷œ;Oí­¡è“¾j)X¨Ÿ?Y?2^¨C}õð*¥nkÊñÏA’*ŒøFæ~]ÏND ¾ –½£t(`Ge&²oÊ'ÌmˆÌ=¡ª’`ÎõKÜÝ¡¦PX§ï ߺöSçÛ:úç{yʺ±Ó‚ÎÂr &è ~½Hþ€g ‚YwR®Þˆ••€Î©£ ØXPØ ¦¨.óʇbÕûKìOâ;”j…[_ôì@ïáH,Á´,«'¸Cʉ‹ª,úØg`O8}†n0H„y%òž«´èa…²Žx5"P ò~ '“ò8ØÌ­^»iÛfjlþÙ¾†ó@êñÖ ¤v›4Ñ!wƒ ;[D %©i>ÃJu˜[Ê(€…Qþ³Æü*ÉİÀ¸¦àg Âi4>Ç”¢„ŠB´v•/ÒðQZbÛ ÐeÊ`Ð5æ¬pá±µ ™qX'qX«¾nŸU4G¶ ‰Mxµëê´æ;{´®Ø†ÉMø9cBº=Òö—GL¾Q_Þëª9<æioäÏ.tsÐ$0Ž !ý|#¡©9­=K¬t^\"ð¶  M¤¦¼U¤Ô§/´¤2n NdŽ0¸gõsC½¨ b4_ÔïøTXÃ.H5æ›¶UÎa³pØ”þho±WFŒ_‚Á&œO+1 ÿôÞ a¬É(?xÙ‚ÚÿʉžÝd“@¤áå¢taÛùÔl:8ýtÊn¾T[ìÁEìzΊK×Ý£³7Ààô~º(nOSpc¨R)<“À  Ñ›U3»Ó^¯uõÊWþ€~f&Á%0Wã^K¬Ê¼{\3)ü¿Ø”ÑÚ§¨ãÚU° ë·ÛŸh %îQ…æ<µ¯f[­k„Û_ ²~Ž^}•Žêã-Ôg/{>&Þäí¯— 0^8ŠþjK»¤|}s¼ªü~¡ :hk8¼¶æÞ‘W’ÄXÄ'Kl‡‰L4a{6¸ê¿-p;ã‚OÞk5ñþi)Ö̃"QÍ×l1² >Ù¿ŸÚs•CGƒ^¤^Ú.ÜÖÎv÷$Óê È;!… c÷é鵿9`‡â“Œ,9p¡Àå»@jÇùþht\0 ¢û¦g°å¶oœ³FôGÉ 68âäuÀ—rR+Þ£ š1AàhÓÝ2Ýþ“Èl?mSM14²y7Ã@¤zsÀÂ5NFKÕ‹ÿbœþИ¾4ñÿ6·Þh[ ¿—é,=j[ÑÍ¿-„úÁgQË^ÿ>ÇÌýw’yõuûäÒ._!¿#µ¤~&Ü è÷UÁ¼€ýäÈI ­ÞhÌ®€°ÿøöûƒß=ö…Â?A™8ŒI7-Úï‹ÿpÇ¡ŽÆ•‹z‡ªAÝܹ¹Qß@¦í†ZB[°¿“ÝÏv.&\Îݘ…bÃÄU½ã1§Þtí;Ë:œ>‡ß«=ʯ ÌâãáüË%’ ¸ÙÒ‡^Ÿl˜õÄâß}s¤îPäÄF«>dŒ¼_v߃DàÒ¾æA«S¤õÀ@\E° —„¬û†Ü Ø÷`莟5·¨NßyÝýÆ·Âê ³IHŽûwøe¥Z Ð:FØüÍ,Í\í¥ìêà>«úë)™…òb^ µ¶+ 0®¡ðÓ÷Äs/ÝB'n] dk¶{^^¼H/ícù ö  |¨—‚swìü¬è!aÓ³,¦L[ÝW’ ønØ?=9»’Œ¶¤µ-ˆÏ¥›zDŒÈ‹ÙŠôÝ0b͘¨pÁ=¼å Ní‚Wx¢1Ž«(Ñ$¨‰o‘çÞ²ó¥¨yºÅSóá˜(½`QÈ9°”X}R+Lüšxpßd°n¥PÖ'êï¥-š™¤}pŠÃ-ÔsŸ>Ü _®zÙôYÅ@‚/Úy%Ò­®"]Q%£Îò¶I9>S9¾ÛŠ< @§ qY Õø—ÓsÂà ÁðõôXõ ‡'ƒWØe›Ì  ¯&¬|ëB¿1”i®Ö|›¼/å7™g+ܲŠâ¿ŽŸ&}QU%PqõN‚¾¤ûâu)å¹EDî;òiN/néd˜!0þxöæÊ4¹>ÉïU;ŠÉ_¥½-½^A|p-ކÜÌÃ`Ž„iÎéðy.ÑÅTÍÞª‹†|ôšÓq2¿+wY)±$bdSOÎÄ4‘ Šê¢‡{XÏù>’ØlÃ)‡ñÖÉБöz›ƒD'ž(&"úlvðDÑX]oÍ“ÚV×2] ±¨txšæÇÙ€ű„´.¥nÁ‘ ‚/%ÒS‚àz:šÿ(:‚ã¸oo%M*ö÷tgÂ"ÀÂ6­…a´à D&;$õºU?V—ïože H !>Ù ú·¼U4·9»UØNôÖ%¨ Hd™ˆÎ!$—¡)c ,7´_GR+Ù:ÙǬ›~”Aœu+’ÙIç ‹.»Ù|¨4™Õ¶PÞ£¡£÷xÎ0Î6Ç«£iù| »‡ï™Ûãl,i‰M.l[õÁúøÙN¬çÄzÝÃÓ¼^Ïf$º¦2‚UCÐöÚÒ€$F³ãåfVœ"íóɶé[¡HPâUükÏ;˜Î"µ›¼ïÿ=(³åqV&ׯ`Ù/枺£Ò‹=T´è Jr°nÉ7XU{°ö¡¨ˆK•”FƒÚ‰·;d’L2/"Ä»ÊâñLêá f\ê={ˆšê:WÉ®³d8¹Mõa”Ë·®—Hz}(Î9ïÍ@v âá_¤‘‹‹–Ð[Dl•FŠ;‚Z¸AÚÄg”£ÊœõÎs?ÐŽrüÅ;â|îåiïЖÑcþ³e¿í ~E ;¡à±t’ )÷ϮƔÊ}´Æã[ó*CRš‰Hï4–O¢t]`k¾t-Í5è*ÏñgŸÒõi bï\³}Å_mÑã‡.ý(­ïÔ?åTÏ š¡é5¦€püõŠ’åë#î jhòÀ`ªçîÈ}æKúÁìÅpSE;SâNüœ&ÈqÙY*þdˆûf<™@)Ÿ’µÇoh-Ÿ~æ0æ¤~›‰(“•ÙÒƒu柔'.1ÚÐßß5;ÙÑ"óÿ¶\Ç»Fõe¬è>X$¤KA9è›þ¥êA:?ؤ'Í·f ÂݬUNòZn%Ž']`¼‰é^½†³¹ð©b.V1jù\p’ÖJŠ›I‘B’m¾Ä(·¡†Y4]6ÝVî÷|èÎoÝ»,ðÝ©×3HI'‰9jD‰ÐFÄÔ§YëHºëÈ(¶† L;7CªŠµ•}¦ÆË±Hº!ãbé`¸Ùi²hÚ—j]Ÿé‚Ô²ôÂ7<üªcæC@ÓE˜m–·¥"øfUK"<ƨf¯ ýÅÕ»KjÍ.Ø[°«á`ÜÝ9ftÂ_b³½ûYõÿÚiúžj^§±Cu@F€ô@Ù“…|pnBYù”.;3&-•ã@ 2› ‡ëúp—e¶SCøxò-§°©9è+ý´NUŠ€ ?£èºf£/xFG°<¡X” Y| ë æÏRe€ÝK§Ä{hg¬a,J{£Ÿ^Íš»T_…5–\5Â8YCô >9ƒ)ïÛR|çbz?,É/†¾ÝѼž 1š^·$ŠÚè¡qkÈÙ ÛúsSsÌóÅÃÕ™fsQÙçÓë´GýÊÆ_ÕêW*¸‰C86ì`S•Óô48wq–mo×öíl³~T&Û·ë WÀ"-ÌíJA–µÝsŽa ´•m`ìí5›“;ŸFøç(§˜¡þ@ž7ƒ:ý´»ª°|Oóô®ßùõÛwÔa6ËFº©BÖûÜ®a6æÎ]}ªä~k°ã§nÿš–>âÅJ`½1O1Ú«Õ#”³†M?…í™ý)¹â_fã¼0ƽñj4½ôlûÀ :¹áeZ»¥„œ´ˆŠ50pæ¾æïŸ•éØÆ;×LéPE1¤È‚xYpöúô´“ÂåÔ³,$Üh/½ƒòÓÛö7Oq™ºáô6áçèÞÁÛ ¶´õ“3yæ1ú*O/ï»Ó—óˆwr$ú/-ºšGGJ`sˆŽî½§È+Ñz­Nâj%‚Ÿ+þWJÁÀtÕ¬n3™îêÄ0’E“—J<Ê\ˉºI%•2]-ï˜QêÒÙ¤ÉÆ´n¹¿ 6VûØò’вu|3gB_ƒ)o…H?ãCÕ¾]b»nw)ÀÈå‰[õü“u31ãÂxSIʃ¦ˆ7ˆŒ‹Gh;¶w?%¸•á°BšÈW°5ÖÒpÕEmÕ C^ºY­ŠïÉT²P\u`p&Ò³v ú¹¥.F[¨üÜ…F5”ºé¦‰ýö$'SP•ùöóo» úx¡Œ!àDíµ­…,½‚Ç…-zß½›QK~IÎfE‡×HRc¢ÉTÍØˆ¦BÏâû{ÃeQ&à…š!¯­îÛ«l.®Œû ¡ÀŸë8„x„Z…{ àZ£:?„Îî×ö)ÒY­åÄðÀú–1+7l÷iSZsð£:ؘ0Ln®ðC¥ŠóÛ1‘ßÐÁËoErÅê¾øU͆ ?Ƭ6pæÙ¤­œ²†È¶ÀuÞ ÝÏÄÝ5%sÉwÈKW&ʦ[õÒÃYÉZãK¨›–ÙÜâ¶òfñ `¬Ò‘µ€>N2ÒO^[ÿÿb¤U·QåA¦«^×î”Ë)ä ûÏjÍÓ-Pmµ'úbòG¼eØ™q»U­“4 ÒdG—M]ïÓxq‘™ò!ò9¢'¢;]d3u2íSO¥|Pê¸*ï7O¹¿«C²ÏÚ¡¾rƒ9Ú: ûûïG$Á/œêÝ6T­ ×ϹVOf蹓ap•èàà 9p†‹êd&!Âîne@Õ¢`,‚l—ck©(<&.;É ÆM³z>îšXÉž‹™L¶ÎdÍÙ—c3fíEüÈï›s+LòµÜÒ2ëèzI¶A¿c~¨Í¼‡è<÷!A8]€Õ²Ôé£õµÜ®²Ê¸Ëw‚ûš¦œscç—˜Šz¿=}-ÌŸˆØ…m§hŸú2òÈãƒÖæª×¨ ò&Úd•÷‚_¯+ª`î§h4Àh zi–<x×+b{õ[\‡ çŸ^$¯°oîc·d8ðÎyÅF¥‘¸Ÿ¼¨ÎÉé«ËjßÛQб†AI› Íf£òORòÌëy„Ò¬LÏ– :TÚÇM€¥WÁéU‚ì#G©ÙÕ4gAdV:+…8ý7­ù6*Íd°}á22›#X–ÀªeÝÂRƒØêJ^ñº”W.Sã½DU¬ý˜‚ƒƒ߉yÂÇr‘¬$g•_pQð·²t¯ðzBŽÈ6,¤_©Ä˜wG[ÑQ½S¤1±†«ë˜qó'ÇÇ\®Ò’¼­X?liªÁ‰¾»©ÈœKÉãŸV4ÕŸ-xÉŒýóaÖPC¬ÔÆ RÍGR+òý¦³ ÷Eáщ}3Oª~·0':!”*gšJà°üì}Þlj]uf )ìÉE‚ºQ!Ìf„'Êîg˜-`,sQ¬ù”©w뚌…°Ñ]‡23Óq²+€Jø“ö°Ê‰%‰¦NÀê¥zÃ:”®´§‹×e¨ü€iÔÑö _é+:=ã‹ ­çkFh€|#‹ò4¨Þ(-•ã@ 2› ô÷é—â/<OÜ[· PÏP™‹±4ˈGn2* Sv·Zš—ZUª•”†"§¥Ñš-^ÃB!ÆUÉZò.Ôm ¾ðÜ«{XZaR«Qs1&pŸðƒ¸kÓy)¯xÞ†¤ÕÛ.I;Ó³z¹ƒÖ‡­ÅîÆüÝKN =ç,;âˆ!aoy=³à1<¼Ñ/KXvò$VD¡v÷wÕº(,­QHÏTÈà©‚ÄWν'SíüÃ+!-Ù”R+'Ð\\x~ÞÈÞ}íˆfÄ`㱊EÖõŒrW÷óäõJ;!†Êw?>ß®Ë Ô¶êm Qê˜Êüt‘«0 aùéš²YÕyäk•÷J‚ RpH¸]ñ¤uAê»zDXdI7Zª`‡p^©n§˜¸ªf´“õ©Ë]¨¶RFÙ>6§'g“Ñ©O Œ™… ^”à hžºÃQÑK"€hƒ‚?CÒ L"œb挧Ì*ñ$ò·ýÒæ5xt¤Iø}Q¬vªTˆ%®uvùUÛÞ€¦œé2kÿc§^ã59u]§ªQÌk!x žŒžÊ¾EŽ®û­Îf6‡lJñüµûó?.ù×íã¦ò,§í¶eïî/X— V»*D¶Æ¥9e07˜öOä+nú2î¶Fyá_þ©OVü¶9 ü¯là¹ÞY±W5=­šä`i¸++€ýn†èæ<ƒº‡Z1ÚÞ˜úDX.ypxùdœó†…­zü6®/þ]­ ´Y¢´æãdžÎŸyHÍy|“åÃì2Œ"}ñ˜ª¹=ó²ÃÂH¢î÷Vg’˜=v-õ—á) ¸JúbZ™éÛ‰Ä1Qû/ÐS³W:lRu‹ºpŠª,-síÁâÂmC k‚ :ãqwPË]x› Lá%áC£…ØN2ö¢ p§Ah4Ÿê$Wƒ’©#ÇTi»V‘Fض ñgÕß+„ÞÞ7e% ÚlÐHQŒ¾Ã”×q;áK®˜aõEB w¢#GÎ9d@éc‡ÐÈdêV[²D¬Ègì¢2ÂÀ½²¶tB½lwòíãW*O°!*JžBxý`Ð9—®€«ó%¡W­ÆXÔ"ョZŒ¬½^Š5:’ñc⊻ªì¬ÿum9G£ûºp¸ø+ãÓJPL.¸Ùæ÷ìo›1ñvLÜñËÙL’WáûM£oÃ\dc¡T˜ U¥9¡“GÓrýÂ)nqÕfeñçÀ½·\<˜±»ˆ`?¡_ e-OÏÔ¶˜:í¦`,ÂC¦QŽfüX¢ ‰:´£ÔS·§¹ÕÈ«f(üߥ6røµ ‚²)ÈD yR¯ÓG‰7Â1 òÐæè¼MZAUŸ_fI‡N<}ð` PÍ2}¼¿f[‰gv|N@ñ錄Æî&²V”bŠÄŽ´þ …¸öé— Ý¢&)Ø*¥3F¥¤ù})⦵–).±#ºˆô¼n‹è 3² .Õ§ãa)Æ3Ñ«B¼Ë¡(û䮤Rªµ‡ÿöÁü#»µ/oš{ˆÂÁSõNe% Ùñ½åÁBb£-™y¾$¦¤DÐ÷1%gÉüÛÆå—Cû ïVpåvè!ìsLÐÒ«*aomÛªr NDZ(õ̳¥¨>ô:ôâšIÒÎAûßÖTí?…c{ïD¼§¯þƒv~Š]ž³1x§ÌÆõ3WFªO-Ú*M{튡Ðd¯‘>Mñ/7• ‰Å>Ií0Ààõêš5•4Ö%ë²á²-Í0EYüâ¼XПï6%7UÜ•º!ö>!2mü*EQW±Q§•~ Ô±ógxgÔ^X´“NÇ`V;Á«·h¢c0%×kFªsîÛçˆC0ï²»fY¡u=41“Ÿþ“P‘{šLüD…Y`ÆàáØ¯Ði[H8Nþ )×ËKñ˜W¿6vÖ;¶4¥­†¶oLp…zÅ\wÇ{ÒsÄù°ðoG¡UVqÆ]0QrËɤU*ñy“pAÜåÒ[è÷¸ž4cm*–ÉFÃx†šéÙ¸hó ·ñRG5–Ýø]%5áþïß)¶ŒXZ›Ç<€‡* PQŽLç|¡ÇÈ äþ³‰‘¦¼`M}ÕÆ«%}·d}ûˆÇá"c»_³é ØŽ  B1é$ù5§9ðùÎnÉmÁ¢#Q¤ßNr¹¤oËAºz_Ê%ÚNã ¡µ)Ï”aq\ûåa v§·¯LAÝ1WL£å«ÃUƼUìspÜnÕ1 Tï»ã6ÞÁ­$ô‘#NŽw§Ê¬¶‹Ãd"Y8yüÜÑë÷GzóQV¤uŠÓõ]7€˜ÏÀêË´ƒ/ê8W% ?Åò´Æw.j Ð HR»®Á‚r ä¨WÙñdr׫”fßIÀ#ç3p[—Óïw¢ERz^Óÿ·3Þéµi ®Â5âIYF½æE…¥]ß1~nCRY.¶Z;l¾KI‰ðîD¯f­(çÙž$å#Š—êMdE7 ? çsq0Ã@%ª y@ä?®Z„^ZAלÍlʈS m6hD¯Pù.ÆO¾d·,áí Š4%ox§Ô”r¼Hg5ÿ.µ¿R–%&TËï4C~Z"ÃBƒ÷þ^#ô–“»„dûU©I¦ÔB»*ØÅOÉ7.ž•¬]}#íù l·G3/áãü‘†LZ@•†»…,yÂÞ ¼ƒk·ü|Û¬_ìXþ¶ÆÝ¶5Ï+åF ò•ÉÍ9Ù}÷ŠEóÚM;ÌÂà,×ÖÒs!ÜT`ˆT~A·„êmÌUõÕ!7½nå0?YyŠàº<Û“Ç÷¿ù)º—€Ÿ…†^Nv˜¤bÁÈù÷¯<ÚÜâþm‡UÀëžL†Ò’±T Ž9Œ7¡cBØø<“G‹÷¾…”p$ŠT”g’_‚EqJœ¡|»8ç{ ç´n¹{Ê..A¯KY¾y_p"@mðãÃUp›‰ŠÆ¿ïàÈbJSŽïºgˆ¨Z ³wÕ-ãáΔ²ñmp䉩Ì6;Y|‹ƒ®»œd ''‹K<Ò%QîŒ'#Þ+nïÊz7^3½"ÈŸ¯l0î70ñ¼5ä¼€\Ž€Dq븕L:îxÅ\—\^t©›?@nEÿ^äû¹pkôÁ˜Yyxþ-¤µ¾\ÿWǤe^ìpƒ/1ÑËÏr§WîLtMˆÄjöSØdO¨íiã´¶×ÉEÀÎ'†—ÐíÎæÎjj‰AlÌÅB‰Kú_«{žm½i_š”Oê¹\‚DQ‚ &“¶¦~ ê·"~ ýÎóJÛZÎæ¯Äâ‚ÒºRí˜~Èç±ë,Î-p¨*`bµö³â|šþFïX¡ùMüõwÄnÊQD:íB'—¿€lBî`Êø`3QA¸9ó5ø†Ûal¾w¦¹%¹®èûYûð[Ž£äþ³‰‘¦“¿ySlþÃ0L‰{ŠPŽÓƒ\|hÑ0KZ’èš+rv«  a ȉu å½eC¾ t½A5?¬‡°Í†©ãLÅìœÔu«zê[µ>1M{úÓ`ÍÊů)KbNzR¶8Û±#ÌÿiW¥º)9UŸ–žœ8Û¨ü>ÕfîÐ,$Ç}¿ÏŠYÃQˆb~gßc±X,âçÁËŒ5닪 Oá-qéd•@ÈÓÄAƙۭ‡zÕ¥æÕK3¥ç>ÛG¤–Q¶¢1œáóý#°h¬èÞ^DÒ>¦Fæi2*Ô_HÍ@šéôÚô¹˜NjŸIlŸJ¦¢cž°±—:ÉSá÷«•Ýóp7Ô$\› é>[èÍξ3‚¥×xá ¼`«±^‹]l4ß¹çcÅÖ:îåIËÈv&!ÏJ§.˜±¡m&Û5V•®˜ƒöþÙö¼ZK¹5&y¿ÒÒqéæ)걄 ¾"´êÊ¿õiÜ@ŽpbPv?œ÷o?±-1„ôpŵ×s6]òn‘# ¨±&‰…3oŒ;ý,ª3_´Áò@Žî0kOô¯{Ž™ŒígKªšÍçž@ÅØîÕtVÊÖŸÍQ»>ÐÎ+A¥´Ø+fGo¹|$hý¢Ò­Ï+X@(Må—ýj8d‰¶lÞí$ÉÌq´JR#~¼: 8PDhf9¤E²¿°­ê¯PL©øo éCÞ|{é×Fr+wE­óžò@zÅú“ÊãÀ‰èÜ5”¨ÓÜ5Bœz«,ƒ1)Ê n[pjuruî³HèÚ¸ú}“ZO×mz&ö¸UžÏ¨«d(‹ëûoé vn'˜yAÞÉWšK çK4Ý ‘Ý÷Åøä0´Ä+#Ñ3“_”ò¥ŠJDζáþv¥WFwäé[„’+ 8ð~AU:§Fü¨[  ¯¬£½H¿âG°ªŽ´‚q#ï‹×ä¾å—U$@Ò]³+Ñ GÇ»À2ÛÈ`ômÛ_Ot¿7‡ÆÅ-“¾Ú¼|GS+Kk3À)5 BFC“J­„©`’G~¤žØÊ¡.¤!ꆨ.aÕUpOeÈçù"€¼U.Íâ(ÄŒ±¾v…cn»0 ”“ÃeéU¤ÛýzOæ< 8ÁŠKåXн,…ËÖl–l@ˆ;gL/9¹:ªÇçyÖµ€;m$ç$òaJ€+/l¯: ÀÌ<Ï‚<¥édÈ÷'ð( dr™™¾x´Âæ~Xû›ãô׎»YªS™Øb —e‡w'"® Õ¢3€mœÑ6ïed„d!Rê{nq8ƒ{vN\…ØÂ}Á;ŽBäPd¶ Uy8 C+x ع@¤5¡R›M`„éLÉô¦ÙëkÏ÷@e‰Ôöµ3@=s2Yk {JdY:=yØZLžÂå¿›aÙÝþÞ1®Éwñ§o²Æ^?]€2üൠ· ñØÕ1ŠÀÆÕuw‹Œk¦«¶ú›+5‡ºáÛ›Kï ŠÀ‘ô“ov(ÞàæçŸ†ßºHFž¿Õ„ <Î)@ó7Ý| =ŠÝÒ­fub%PNvÄ0Í[‰‘_óNBn†]ȺdJ‹‹ÌÌü‹jëôn>!.*E<6sƒ;›PîÄÏð‰>e§ HNìï&na(9¸úU1]už‡Š¥=XÁÐÏV<ä_wI´§6gäû+Ü›5Â6RÁ39âµAEŸ|Œ -Èò½6ñ3èmpfZ»6S¤Y6 kOn”·Ø?yÁKð$ëS =JÁ°W·m°ÀaË'–%þNIŸ ÂÎÍŹô&áSg×!):–œáêÃ+ºàœì©Ù“9Œ³A' µê úÔnnj´©% bõ©Hv¸Ü§&šÜÞQyã÷ÔT/¬ðÌw¨¥?ç¡ú·ñ$Ü@ Ì"k…Ó¦0pî⧤lBw¹adO%´z#‡XÃȽÑ9ÕÀò©Æ²ËÚ›vHŠ'"$ÛÿY¢h9 Tg&ZOYT*±HˆçÇXÖ)ÿ+±}/'ñ-º‚:9ù%(œ^½O4wÚI%ÏI÷Qƒ>ƒ0ªL˜$̬¬%ÿæê’ž¤nÿ±,pÿí°öŒËb#Rioänp;*æã¯ÛâñxPOy¯0Úϼ×[òÁj$áô›vL«â‚ðÓ¬„ ÿ1hÔSD•Òk©ž! y)â/z©¤2õîŸìjÀoæ(ÂÞ Cõ$Œ×ʆVVÝsb)O•Q>T»›ýO×ÊdG©Dîï­üÃqºG5里†è}~+f¹T¢ ½­¤å`ŽX^šH}ŠR¥þûµÑPÜuÞ Ðœ.ÜÂ’êö¥L Õ¤j·#SÄšÈe÷äÕó¼5Kà=ú'z>\.QòoÂK’,Â-@,˜à¾ããÞàiCBd΂¹£“ü‰QWûæ*¯¶Îgñ=û‚¼¶¿¸&4¬‰N”ê,²Å aD¯ &ÔR+õ‰ŒìKá_°ÙƒôdŽ5‡|Ï~Ì Äž ®qOÛµVðÇpå¤ìú—íªHCÇü0Ü·kFÔò>a‹öÃצT:˜-x[¥F¤HÖ üe–%W´¸v·…Rë?(Ùûši÷mK~0èª1’ÕÜœžÅÞãTZ%cuF3ÂÖà´lwZ£Â‹õëž¼ˆ~îµ]>¶¼èÑônåÅ|ê‚$Øõa˜1pj³2˜„ ߟ¸œRŸ-¥&ÇèäàìBÕ±ô†x¶ äÞÅá^ŒºŽG‰a0$þòtrò{ÀÑH”«ÚU‘óº‚Ùìà%ºfIñZO5ÄSz#C}ÞµôôùÏ Aµ_Œ“—¹`ç¢õÜ›ñ„uå’Î!Ñ.>08/l5ï—nœ°k@Âo—_é…­JGíå©€·Xë {K~l0oQ¹Nvgû(E*¹öZ³Ù±¥S¾d¡LÙbU¯7¢Ý?hæ{4˜¨iÄ”¶(4Y8M,A˜4#g©dÀmñåÏ_Î멾ÌN¶zNŠW€.½BÓ»ßy›BiA2ê\ù#‰üðJ"¾Ö¸êÚ´,t.`dó(ùãØäôô¯Þü~µÑ‚Eë)Tx ÌåV)`œÛû¢ß!ü|‹2ª\ù3DHXÛÖ˜ k©!u˜~4ðÔf{JCVY«) -~Ê“­jV¨9ƒ]˜Z¬ÑÅÑâ¼àyGAŒA ¤ˆþ8¢¿Ï\  +ô­ó±m™ŒïOåyz]Ú°®¼v¹@{Fé ï Á…¤‘ù”–ÚÞWˆ ?Ê¢½TÉY7]àÒ ¢7ç¢#k?Õšøây{µ, VÄ"Ö'‘…³u:ÙíÛë×Háèq)?a4Ój:ƒ`ËcYüº÷éø•ßdŸå™ ò’Õ³Yþ4IóV†ÝuƒþKÀ££‹wÓƒkÂÖÄüÍoí7°¥ ­¹g|ÙEÃh¿‰xL ÚÛ]h Og Ö-ÝWŽ^\¯°î©Oa®îØ$|ÿ¬%¥$Öv›ýÍÝVFCkÌ]ºÁ„Ü^¹®ª:µ¥ô‹“ßJÏ¡ºÅ‚‚³Š’F##cSôŽ“MŸp ò•™ÿÝ7Ö|9Ž †ggƒ©”¸È}ÜD¿øfèE!þ-˜MížoHËÖ£üK߬a¢O1Õα>Îyv‹ùIA|ï[V¢&ÀKž™l¿Y{üPZ› ¬ÝÀq,™‡ï›åËÑ2¿_{©Ï(&ˆTóø³Ž (ÇSß ›4à›ªUžú™ÕsED%»ÃqÛé&¬ÑÂŽ˜Â­²™†Õî uÄ…Χñ‹ÓN…鎕wÞ’  ©õØ@#•^hÃt¡é_®ÅáÏsòâVT䇰qì4P%”)¢fWÇow¶—Äô¹pà;‹ºS^ÊvzÀ 5›Ž“™9ç?iý+z§hûÀ‹ßo‚Ö¬û"2€ÆÁO.à.ó2¥(¶š©~.2·qù çà”qST(~(,"l#v(𔣦•%ëà%£!n¢öüx+/Èܧ5õÂ@ªr\­¢W.nT^Ãû¶Ü33˜ñÏš‰R­BóIެñ¾T”Ü_=@¦øTfîZéBã™Þ9š½:XåëºÚê‘Ô»å.§½w60e\¢â”amô5ß…± z¢*¬˜'+â¶Á™V~N Ç9Âß.ë`q`z‡=º7È \A÷mY¹÷ Ûª3Ð jîwÊNî$©ÖDR´3ü2Mƒm üœ¿MrSìUs·Éz?§ÖT›stõ% õa–-î)áhy!wÑÃ`€:þ˜õ²î›¦/k`_°²äµxÛ¹TÆeÏU’2¯ 3=1Æl ºñÒvöaaت²¡®«˜LêÏ]`TÀ~~Î%ªp¯‹5IX^”$]žØ~å°¨ýMC8%w 16ŠhùLáÂÈ›Å+ý£0ø¢ßî17Í‹5žSm†-0¬Š~NxÞ@Ab†R?¥S¡ñJ?‡&·jú޼!`Ït F.1eçVwn‰½nÍDÈœ«S˳°r0aÍtìÎ+'ŽÁ€ßoQªn03mÒàhâÊ¥Úò1Y–ÈšæHb\IÍ÷–²Kdi}ÀÅÔ–@&'iíæš¥ÛÄû»yzUTH….‡x7³oÏ«lùç“'É´³¡öUBׇ 1ˆ]¸Ð·* k¦(äðEÕ‰Äáyúi€X˜÷J?ŠõlûGÍï¤Éå:Î[ Iå=¼¼ÕbuœÕ´rœ ¿E¨ò/Î^ù)õ>VœzËÂàõ¤oŒ]°†‹ zÚƒŠ¥(Êbç ¾ámzpbk2÷>–UC•24ÏÈŸZŽƒÏßêwAP–!àåÁal® 'é—‹7’ª×ˆ… ïÑ4Ø»ï@g®Ìv£ MÏû'½lUƒ³dEÇ!XØN©·)ù sc•!{¼†Xx˜ÒBêeÕCw=Tæ¡;I+p²ÚÐ I±´Ã šê ÚôYØX5“p`vÖ/L@ï0Wm"怒öªz€‘B.™;Wx•šµu)TTŒ{G}êc~ ï8ž”Ë%ûù)ôÉ“¨þ,KY]™ïkçèô‰Ì´èq8Ó6}÷–¤i þÒǰSªSË)Ä%\‰?wIÄF¯nÑü»À¬¾§íuŒzöÅc£X®.ˆS×®•Á˜‹‡¨#9>IÒ1pŽï$wWeÅ6Ïö[_e̼Åô.§$23M}™ìLžòÃ$SþÓ®©ð"ùÉô6Ëb >èɦóYw±7ÜH᥎|—QdNSã.´r¦·`ØJ”w\×ÀÚEi‹xÉÕ !ÒÛ²‚ZfÑA).L3Daˆ¬—Pc±:­ä)Q kÜm+®Á»ž«.Ê®˜é˜‰&gZ—b.Ò~3=§˜…^Di ´ZÿÊ„‚¦Óß"0ð¬t¨r¯o++S}„ÿÄwc¬ c¡W÷lv¬¤Ü»¡Ï¤ÚÉëV/eÃÛ‰Ò AÉÌ=KnÒò7+@Ÿ!!RB¿'€ûF‰m:Ç!CßBã¬=”ÈælZŠ®óZƒt0:f ‰@cƒ,ÕÙ÷9ë½0-ò«]ƒî;~Òô¢‘„<Ýñ“*&¶™£Ï îH? UÏç¨I'¸OÌSÉÉÔávµ ¹ƒAÈfêíŒfïß`2Uµ¨*jߨÀ]î¤Fx(FÃ#÷'ÕF³Õ8¢®ŽÁ¬ ¶“A;·£š 0ùÙS3ȱÞ@×'Ÿ7?sË|&TN«\ÀRfU mȯà<ˆþAÅÈØ¹ÎQ«r É@û[ øØÈææŠò›þÊÿ1’ðñ#Ë— ‚ä}Á€×ÚVb˜¼}ϹƅBvÿt±uÖœQY úÏ ÊËŸ[š&ÜB²R âà·T;-¢¦+ê,,œì UÚT [¦]š¡a,ÜÔD¡vˆæ£ºþ¥²<ƈÂ3åM¶(ºU¾f¸‚‹C߸ÓÀJ–l„ IkѨ²Xë㇛]½óýµùRapïêíÕ|¶ñÕŠ-íÛ 3ñyùœÀË;rC³\:ö@«ôµW´Í”ûlÿ´ÿpWN¬¹¯M#M#[_÷âK#ø¿+F‘%iÄ{¨/Ä&ÙƒEþæÀUAÀÛB>åÄT^yöv4ç Á‚ûñ„eyÛBÊO~¼&MÞr:E¼I„Ø[ôýQŒ-È¥3YÞ,ؾО––o§ Ž/óûÁpÝN¼Ý ünhÅ ÷?À˜ëŠºTž?oj9}‡!¾öjà,áQÉ2·Ú9ÀƒØñkæ^'â‡vs†„ŽQ²åç^ÃÊÞ[Ó‹Ï.dÎJÀz£–o–”Uıè>Z ÑÇlŽš:ŒÎ€eƒ¼‹TŒ=è˜ðŸâ~nû…y.xèœàL\6 Ð(ž .ìy«®¬?ç?¼='Aìš¾²½áö…¢Ž…Š«. Äâ†ßõ4Œ”3òS]C¹ÝxÛ™.{ï¨{ž)¨ow¼<öt¨8–æ)<ú'ÄÝ ìVÓò·8º¸²+‚£SØ÷B‡W|û±BŠÝŠš\Û}èc£”€]8~ì­oÒ^fì‚=Ó1ÛY¸‹")#FX:Š¿5Õ¡zÿä*`]rø€3üŸ*Ó™»HjB‡vÀ’iЂ‘ÞAýH{–O0snùü»ßjÄ ½gMwÙVP¸ŸýrËdÉÅvÈ* ?Y|ry•X#ò¸Sð»åf±óA;ði#c~è´ÑÐ>*}îeSºG›Ä=vkd›Ú/•Æ®ƒ¾{•Ȇ±Ó”‚D}zÔ¿(šÞòWÝ{æ×[é\q*Ê?Ň’4­aø†6œ¿ðÚ+B¡øªô>SLJizpÆQ²<à T9ä¯)v<Ф¾gÏÊ*X’6T Nnüµ°/CGûJ)<Ž5OÊuiíÌtHÈ]г MÖÅ{ÿÃ6bOºÒ˜a©±¾ÂÁÝ/!& l—³Q t¹]Úˬ ¼æÖê|›­Ê4?AäxÖ“pŽ^ cßím«ôgal ¥ãÇš‹À­†`òÁÔâ´äûn îBÂÑ‚î ,}òÅŠ'BðßÁ<üYa3${ØBܶS³"ã©äXSEõ*A¤Sæ$ÆÊíøŽªÚ˜E÷ÔÈ}‹,´4ÄV/ꋃºÈ募O¸ê>Ár-#è’©û ©$M‘ZÊåH´£ìøÈ%•;zÚa”að%yñ˜ðj?+]„4®÷(Ýôëî.ðß&<岯 (~D–Íq>Hd¼Âu‰•i¬jù|%×ÓTôÞôËß+ÔàQG­ÞvLäæeòw¸í[°mö‘ÂQÚ:Âõuô©yÿñ][]§@aþŰ€ÅÝ n áÆi(þ%Áš .€3( Ò-1ZGäm¢.’ÀþÌ+X²…P3m¡KžÁg?«»zR-z"à…íV‡|_f§\v‘·*ÔB½fÓ69 ;¥ˆ{´Ïk覊Ù1v+p',m4ߺœÚ`¥Óü¢M ö‹íf)Œ§o0×þƒ^<õŽM,î€^$;Ó î2éorÎ$gãî š‡K¢3€ÖÒÚ@„‡®^Ï>Ã0‘®A'´ ²÷zÃU¹°-å²™àËÓ{‘IÓ®bþ”(Ô…\£Àú‡šÇm†‹¯R9¸ù²Tz(ïÐ{œ\eÞ¯>õÞéW¡§3†ÁýXsV~ޏgÕó*[ÍE‘¢ÿʈz„ÝP}™üÅ©NH>Ÿ*ñx4Ìš\2ºtuÓÎRXþ›:¹\à-¤šœb5¹  %øè×¼÷ŽÓ"ø°ÁОze}që—6gË3n˜E©Dq²’IM ¡{àyPB¥Ü=º–l‘¿ƒ¯F2Æ‘_œ~GŽICšV£ÏõnŽ8Yéê[·Á;è"“”zDÒÂÄïdo›aAqÚ¸ø¥Ë­Š³$ÈÚg‹ö¢—“Š<˜nч"ž-È.‘)Òòød‡Ð­¸ÎɺÁO3¿—‡±ûŒB‡,B$^#üg^h —Ù@·«”Ì4¤èã$¾DÄqù]Í땹^>”~à”`ã=°f¸è„º¨ ¡üZ®"HøH;4ðœk…ºú¸4cL —ñ®Ét8Lúòäf„û³óY©cœÀ˜@GÛã/”t;w&ÓÊå¼ib).ºgUãXðíJû¸¹1‡¡!~šž2œµšQ˜`^y EˆZdã=…àœˆ­ë­µÞcQm¨j(ž“òÛ,W™ 3w––}Qp·ùÒTÃmL¼YºÛŸ2eÂ-µù05tòó,”bmö¶+{…ó‘è€S•Ç(RA9¶—Àt^1Î&ØóNŒgð°¶.ˆ`Gcη7M±Ó½ä,²j"•ég46}?¶É¸x~¶_§CP±¤tN’ýÕKÝŒ„H뱄¾KÏ]mXž¹n½»7{»À™2Nn‘ñµÿüäiô–ÁÞåУý¤—HòUc%ӥРr‹†¢yìœä0(?Ü=˜¬X¡ØRÙéß5ª©nN9Û« _$Lî¤xqSíš’ÁA€íÚ-I×Í84¢K6NÚ[rÞýÌÜ^X»µ!Õ9öQ|赚¥ÊƒÑRŽõ´3ó@ã ȇˆTßÃÑ2³V˜œa”'(+ã?ÞLþòuö.r«7»/(îíÿCPÔ=o_[ºÊ]dÉOS3>o m“¤åAØ …ùKÐR#9T€Pf7]°-^‚óùTMš¤ß™¿Ãî_*âvÚ;ûu™°.Z0ô3•E ­M¹Æ§4üßÞ}Ú§)’Á˜¬´~>ø»§ùËv<Ø—ÇüF3Ðä¤]AÅîòZ*m\ùò‘É6ÏL1ä]]⮾„éät¶˜T7aÕ"x4劌‚7‡ÜÉð3èÄb„ÅÛÕ.dú¤7ΪéU“/͵à…ÁÎtÕØ˜l ¥8ÈW'ÆOVDgdнÍÂVÍÝõ9@B^C´!Ðyót)×ÕÖ:ìVØc-®Õ&~°dÿ˺²Iz¹P\vî¼ß14Ù(ª¹»ýöƒ—ƒD8°`=¾u2’YÇi“ª0Ñ«2·ï¦jX#á=ƒÌ„šq½¦ ¸A¦†q³%²“çyE•ë9@\­„6’餋Ù犅ÂÒÌ TÈ«{_›¬è¦d´™ÐŒõõðPm˜×û§ž çá bfÕtÙß2-Mà­÷aó!SKH7Å6 I¹Ì†ÒÿäÄœ-4,§T×K& 2Zèê_§Úîÿ΋ ðçCDL?°°?‚ù‘MÛÎèíº!7ï;oš\o0LdÇd N´yîî fˆ )M¼8È_™Ò2Š[‹È»¤ì§«ï •34°´¬À­¿L1o†!¼ Pg{GD4ÐL2ô>öèØOlêÓéŠ1ÃOÑ€³?dTiüGk2%£SL­Xèœ7P€-ö£¶hc¼h§B=F:¨ÁbÆ“°ó¤CehÒ8|à‘ÐcPwôáíQç–D7 WCé±^Þ»x¡@`¢TQt¬Í}ЄœKúÄàYÜ!®ì;j‡Á« ˆÖÕ¾îrKo…Ðd0üRÂ.À`ì4|ŽöJK5ˆOù©e¼ikm¿Ü{ý,à¶;B•UÃ, ”Yl€ ôj|i¶¼° òÀ¡Çhüò:Žÿó…Ùxln8´O3Ó_ÛßÉîQ ÷Uýý²ŽäÉÊ‹ð®‚þvéè "è^Ú>OØ Åï:îÆ7]â=]íSÆ\Ëí5ç¹À× Ðþùp`,;vÜy[TZbUí'‰½Ó,+#„1ŸŠ&¨6òåÙ;Š-¶ VÆTv^¡4Hš½aQBå1jzF¯Ë©r×D { Êb”M+‘T¢©O|?A†•ÑÝ—p­ÓZL±¦JE*É ÜÓGÂ&á6‰t¬4âU¸nšbf¼jµ–tYOïu»ãã‰ÝQ6Ù¹€p';\2ik¥m¼ªµ(C¹³?Ïí7dÑü`TäÊÞ&è – éNf÷9ºÑ÷e¨Û{>€ø±ÁºX4ö¢xÔpxÖt-V¨HH`§îÕŒ°Ilö­8 ûä QÇJúf'vâŽc¸9¸Yd‡pUEÉ@ÓôYØÖGaá/®,úâm²Ë:€W%¥ Ú(ÂÜ5O|rëkxÙb6Eõ1OdŠ¯Ð¬—‘ùa(ÛLÇ£Ì4øR¦¦–Ê›Ö<Û͞Ю…s«¥Š1c;äàZ$3½iŽûò¦[Aï¶Þ¢ ò˜ —7*οìMÆÚÏ‚?ÅÑkÑ'§0ÊÈ:Ò_Àm"†0ë@ÀÚ§M]N(Ì£J”¡¯«ÑŸ„ÂÒÛÍ[ð\7îË–T|:µðC|çn ˆÀ+Ü—uFgC"6sw•›ÁW0.ϹµñùrRÜÝ  qó w¯ÏBd½;ê¹b­*ö~‘ì+‘‚D ü›7*ÃÛèZßÏ/ÒC,„ã'ñ^ù' +[Žx¯ñçña§QÊn;¬|*Ïõ©Ž¹SÈý(3 édW¤VZ½B+Ç TÖ2»ÄMÎ=g»"uت³å€èœÝ1NXééÆ˜ÅVkÆ©¢N/ź\1Hî°„»ÅYÒ¦B0¬mƒAcTÁzšþˆM “ãD|’n KìÎò…âÆÉH¯!ЍEƒ_¥â‘à‰<_£"!‚RßTe×3Ãìxb³»t•ݸ“öÉ VÛ=éÍx¯.ê”)•A6˜OwÉïNjܨ(ÞÛâ?/<&™$ dç/È®ƒ[ãY;Õ÷ÄÃËoqy`KïØé 1²÷&=`NS {MC~ï€1´ùËKFÐ*°^!¯“¤\»P^î½AkæA á´,7ª{© ´¨vLjRN*WéݾV ŒVUßùÅ“+ }Çn¹þpj1ts>­º3§‡|ïv_å6F™¾t‹Œ‡-¸9ˆ¢V\{R#z7Rs5?@€sTì¡UI€á;7þ&¸WPäs*û€¿E$7syèvˆsÒéÀ…»°ƒ0òo}<­äâöîªäÄg¬–HmÌúI¬ê3G³%ʼBì óã£tƒ5|¹;þáÐ#)*¡!á{Åï®››•ô Sø·¶ê±n¤¶±ÁSXz Ñ< KÞ\~_úçhœÉ*2xd¬…d¦†š`†2Ù.Ù„Ä*W¥‰Šà—GÓwì ìÕ:"”Í Ê¾:§€™ÂÏJBb`?{°ÂšÈuùÌv™÷ZqSõ&\`Ó»Àùì€ÝkfÃXÀ±ú°bKƒó,XÙr×-R¢§Y~Z}-ÖÕhGëõýÜdŽŸúµ*–S4^ë‡;7ÝðapûÊË|ªCÛ“f.šd‚ô;êdškj÷Ôk‡E}`aù½:á®ãæã I3P„CÆê±meçÀûUÓ*ƒO°¦ªvÙjŠÛ_ ~ËÍŠº;îu0)cnøKrÞë9w¥ŠxW¨úOx°(ÊÃî<~}aÿ Ö€ÏRÔÞìEã“ÉÇÁ”è´†.{ñ•T b1s%„½±OÖR¾ä¦#J7~0·Àçî{5m?îÈþÄ">˜¯O#à ÚU«×|0ûR¥#¦¤8kr”‡w+‘¾”‹z›öô žqfP¼RÞ÷ÿ!i6îËÔ-‚B!nÄÞ|Ó)×»z»€¸¸yG)Öák­m3 {뼞ªqr¨a^8©—h¾â¹¿@ÀnKWopþU•úEU'»©Påj2öÔ:°„–vûB ÕÝ{ÒêÙU{µ«£XfÿYqªÃs&UšÄ©ÍfÊ{v(ä/‡‡cŸ‚M‚Ý’t ðwŽë*MQõþ–Û»bܶ¹YØÄCÖ4œíûÏ”‹­º6@L‡윰ÍÞù·î)ôDئPÍÔUYýÿc“Í…mg~ȧÑxƒþsy¢gBü÷…È”.î‹ ÒðQ„í̵<žnÉ0¿Ùæþjó{¿Y•ï0éÑÊÖa?:ðÆ•'ëÒJ9™‹ˆíÎ .½K³TxuºO “q[tØþYÕ£­'Gê2þ´aöŽHØKlÿâ¸"Ù$æ{ñyzF†²‚_þî·Û¸]~DdˆsÖWOÉJŽˆ³Ðn+øgª EŽô‚A§ËÃ7{yßUæ#š,ç©ç‡ >ìÆÃìõÏ+œ©'ü&­ÁÎÅÕ…„Åœ«Â£‰î¢pß¹áï}oðU…lÁïâMhw´U¢}ªáC*Ñsv’R8°>ˆåÑðªÿæ¢MY6ª Î¶ßþpo8gŽ6qx 6ôfÄú€‡£ôÞãšeÒ»L§€m¬™™ƒ÷zË'\_ñz1$ŒÇXÄB,<—`NÓ­?©â¸£1ö:òVO:ÌÕÍüM;ʼnæÇ¼~ü=É—úž÷[<6É™oõF%ÐSc>£å€¨Vßç „g/0¦"†l¬wx>Ö {B•wCç£k÷Ô£å>SÙ$é¹V‚hü0)¥õ[Çr 6ò¢)Iío©üÜ;'£wŽûz6ä%ž` P­•šÁ}V`mûÖ¹ZuMÕÛÈÆöÇÛÇjòšººÿ/U%ôFœÙWšF™=>ÊÕ?eÈ}PÕÏ3I•nƒ9æÛ€ ÙÁ÷ZG ®‡s.¤ˆ]1)§M„\Ñ«ìö%>þâìÁ£+TEíwû/˜gFûë%»¾ÑcêDåÍ£ÇÑTLô ¿Dj>_S£¬qÖÀWé!%Ç-óthsN£`|FÄ¿ðrëÜ{‘ »«¨ðTÇgÒ|U!ÚØÒ`5º=ÓmQùÐΚæÿk™oó¾î;^ðD3¢êV'^¨70Ÿí<ðöûû×ùWø^G‹ÏâfF‰½VG¨Ú‘žpå5ÙÑÖG±Ïs$R:£Èô1Ý*´tÏ%¤ÊVÙ÷íu‘.qúC§Žè|%‘+E|ÄqL¥U :ùó¹dÔ,ÈþƒÄO­[KofÌ£•=CPí,!ù#FXüqàxÔìÇz\<—3ÆÔB/¡Í‰ö‘3­vqßRÙ¶-Dñ¡àœ£@w0ïT¥Rí miÊB·žRúW0äx6ž/Èå™#Øý©öYX! þ×Ö%yrçRœÄ/Â-Ö´‚îÇØŠƒ‘h`¤T-D³ªÐòB¨",ØG±ò‹6V»Â~„´{äÂ­ÎÆ0ݺä¢ÅµÔ^ýˆÌ%(,Á}W§;•ì§~›ÈW*GjY €[4Q&MÒÍSƒ¦’ÿHÁBú d)mœ±îªéßʸò»âÅÕ4€_‚Á‘>…¹V§g…˜s` )Í:ºqâ|xè©®Dž“[‡»¸ÎL×~ ê}˜¬•AÄ==â|k¸eòlХߎ‡É/fؼ½©;hmø¾Ë'D?Rü.hï«P¦„ˆ/ZúçJ-+ C1.¼jœ™ad/S•Í¡V)ÅpëQ€³\V&Á¯Ã@¹Ÿí@c—íÿîÞ2÷«ì$—ÂØãáš ×Vc¯\7Èó^…غߦMjød]‘Ú±§ÉVµ(àÖÙ,‰¼Uîk³ug# à×X1f?´w}F˜¡—3¡ÓÈNÁÉÇþÐ<Àkï ŠôEЦ~Ñ—È$¡yÒÑA4œdíBÿ31»T£µœ“0c Ü)d£Q*ÀÑe˜šKt%ÃÂç±5¡ˆBâë´öLöcÈãv*¾™¸ëÆíï´”ËdB6¿7;=K7]ÚV>)Ó7Jý2ð´ü€Q0$ ¶VöV¾²7Þ͵ªÇCñ1V'Pµ@ÌKz¦EEË…8rU BÊõ ú%мw‰Æï „ _¯ÒQHw/Yµ!šß<_Ü¡‹Ú‘ö/¬/.)ïÒZxXÃ]Ÿ›‡}ئ7cÎ €9Ê´Ç?'¦hD/] lV[R¡\EQˆ÷3½ÞðÒ Ç>¯¹­ý‚õÏ…ø<¾öË—¡çݤ¼ú.’a£%Ÿ,ònf K1ä®Bu=u*ÝÍë:>ˆˆ$w8¦÷Š.Ô,¡›þgôˆØ“Ç2ò¬.íDå´ãÎ^a?ËŽx–^œÓÅ8&G½Ã[­¶ß~žž87Ü1hHv@"¸\6A«=r|UIˆƒp/^k)y8S- Èœo{$ÞCî> ]µl }i3N¢çYãJ§»«Þú×|01µ¹b²:Æõ=×ÂÃ?„{¶íæ´¯ÑÂ8áÈ_Wú§‰¾>$ê.¿ßleGq’…lEÄ-³À]§_ƒÔ(+#”Ä£ ²FC mpíža[×Y~œ†I2F;¿Ã8)§tKöÞŒù9cœ 4:_Êø ZfÙY¾9:Âêï?ògëã›ë\"¨ ^ž¶8ýâ<7ØYJfë*l…|ZùûyGa“S/d­ZîU_4»÷^ÒG3?öðµÐÌ G’Ò¦Iæ-ù±ÂÖœÙ:E‡ Û~<—,æ]ZUçnM¼˜}’ÌI*·‘ð«e2ÇñEù0fÂg¡[MíuoösS40bê (Ð,÷iÈ0-C¿Š&þÔé(¿°@÷ò q‚` ØFæ–UÀ\ýj÷t‹ïƒNMüæøŽšÄ¦r½cÇQ]2 °z0àS‚:/߆ª0¸Á÷áUˆó¬ÁõX”äÏi‹Bè<7ø(Ô×ÄðZëô¶÷=vŒÄŽÐÊY›Ñûäm¦‡P R(Þ–ì øÞV=²ó`¢ù GQ³’Dv.Kfþ×Ôq=þA 0ºí?×…¸Vþ¦±µ«…õV”¸‹O×1Τ5E9‹ž®uŒ5.‡õ2±tûu¡®\¥Õù3LÄpM1có+Ìÿ°õË©¢‘:'o4ƒ«l«Éä=áö.ìú³Þ@˜ƒdŸ¡º5`Æ]Úð„ZZéc7­–½dmŒúäùÔ·¸7nbùJøiÊøÂ,¬+Ý{ÙµÉLÄqëÊ+©ú×ò~°Ÿ¾†ûãÏ«ôkZÍYß´6KN-ÊžùW¦~ɆCŠÍ~ ¡ æj½2Ɉi)ºE!ßé ŠwÔ ŽCiVÃȺ?s´r_uw·½$ç‹n3L¸;@VÁ™ÕE `r~§…žþjIn|w: `– iK{™å%JƒÛøÂ›€Ï0½Eë}÷È1ý:Ò5^ïÜÝ{»bT£Uv:Cîúà}ÆVÀå RY†ÕJé¾l³yÍ„sJQ O›Eºj¦z{Z—·¿x"lj58PE—9ó·3vÄZh°i:ªl=˜B¥2ceÍÇ»ðO2P0%¨MÏ^ænÁ‡ì¡ÌäR˜c!&np]h\Evg Âu¯w/ÝF±#ø#C®[e®EŸ¹Å$dP³V„‰RJØ4ÔUD &K¿¹ñƒTtÍÙ3³Ïÿ‡ØË²°I°RŸÀ˜«jÕÑí­ÿ!‡uÛÍ踯 = dù?ói’Œ@¸b­DïšB'óñ8?*æêUͰ¢NP¯ðòÐËv¦üYX8€ÐjÇåç—ùÑý™Mþ„bû¥ÁÉ•µÓ÷Ÿ.PºÜ†&wJÛL£è)å, LKϙ݅¸µíêÒP¹yº5y¾°QEržù׆ŸÄ³Ø±) ÕŸ¢ŠCT)n×±äÏó®”zYüÛµ754Ÿ…fЂçú˜?l¿âD±©ÀƒÐÞÒBÌàìÃÅ7°z4§ñ¥)é¾»êBâö‚‹pˆžF<Åìµ»ê[èr ”Fr ùjÖ# ÇC¡¿75&ÏU Úóê|=z4 õÔ)Üý³NŒäKCM/æc<~QÐ8øåeZS`¸[8 BWjœ”¦`hÎfKÌ^žÄµ£zñ¡a› Ø D³ÄèLouä ÜJPŠA-ŸÑÄUJ`‰+¹«±a‰äŒñÓÉEȵÊKlnç@3Ö¸ â,òk©H¨Â`’ [Ô fáÌÐ"A’oâ®Íe‰ÛÃ¥§ytEšxxFzé_<ªF;¬3ö:W‹b¡(¡ÅzO²ÂÊN‰ö´{‡+úx¥`®«…󃤫rQ9X ÈÇ äÐú}M§ç¶e¬|Ô¾”›7Ý‹8s¨J*|a<´M,„i‹SÌ_éÖz37œ™ kS‰¹Ú$LN ·vþa'—ŠºfR»ÛÆ´ÈÄëß¹Ø2©pX†¼·éz>ž˜°GêÎÃ{ÈxQrù¨?ž/žb1âl˜loJÍwf¦ã« þâihkYÚiCOG̾˭«p’Ån‹Ì#6ÀQ! Z/~jú,Ķ…B`Ww¤“õÞzåM>×k̰@ëµEdp¹VÊå´™®XkÏ*€Z¹Þw6õûD¸»××ñ°H0¾C‚w A©ž^ z‰d$/‘¿®_ô9ïSL]9€ð!›iâfPÙ(/ƉŠ\±ˆîŸ(ƺbfç@ÅqO6‡ßTízÒVXï¯ì©X:ÉÞÿ‰÷Ê´PµÏNªPñ¤Æm Ø}×Õ(íÊ¢ŒÛ¾QÅ,aŸ­ïó÷ŸIûX^µPÚ9 Îúâ„êäÉÙ¢6²À»3n$P½wzç­“’>°#½B$£¡nþd3*Ÿ]|¯Ý‚rB64ÑŠ(‹å²A¨¤=i>õ`Dºz¥¸™ÜvW¢øc<,AÌ©õc™˜É°µÆ×²wùOi ¸÷¿gK²³p“7”›çþ0ÑP÷}6% ´ ,k_‘Ûûçcà`ÝÚ½ö¥wÂÖˆ«ÿxØc4ÀìÀmm¶iÅHó(VP…ªLú ^8gÆý¼mú“»y]ÿJ5tîròÿØýÅ ³q‹±i$Ï}2áuŒÄ‡÷zŒœZó— csÏ­Z^XÔ¦’¤;ºÖT¼at˜|ûº“Dd¼x§þæ/Œ5c‡A#zÛw5 #‡É®st”íyõÈtsvmLf5}|xáÌűݪfǹ.\$ˆ †Õ7ו:œ ³)°"ñÎuuÄg³xpËfb(ä˜È:k”N Ð/IXhL5Gf1-zó9Ôø§Yí ü‘Vs m¬p«CUOlz®˜äÄÈg{â‡Qކ9ÄSN«8;u”|YöÆ­/*·øú@ÏŒg¸ÄJ!3‘ÍvÚø-¶#cÕ ãE²õÛÐÊ–i:ÑÖeò—ï–%åX­ê9 Âdm?%#(18¼xñÑÜtÅòêWm&ª)‰‚Ú¿Sqá{èUe{¡ZF冰Lz`߉mØÜw¶Í½¢"[«Tµ>¤°{! ŠÀ/úMZ[•º.à$îr€ÂoS½5I\›µdžHíË>'îôï‹/c{æNUt?ÂÄ%Ýë8&!ݼޓrŸMcÃÚÔܼY(®h@:ÇÒëýÞ|¿ß's韉ZáT-ùºåšêxëáªCüÞŸò)ež¾¯«qoÿz’B£i´Ø.Çc©yn–u:¨¹Ôc1–º¢Wn_²ÿ¯ý¶  ä;² hö¯äûï‹mD,„TÀÖ[é:SÜþö$†;âŠöì³VKýç2J<€ÉqͱÑíûŠ8[7‰çÏ·AP•¶Ú$iþíS¿ÅT¢ïoáÿðÞ¾f‚@þf¼.§8ç·/úÙc}A”ÌK]ï2Žeµ|3Ûh‡ü("" ÔiŽŒÜ&†œIï4q´ØQà§ç%V»ÿ̫Ė`¼âžËñ.Äã£QB»²œlmX²ÆDÚ°&*þÙ⼓,cœšÜ|¿³Ý*8—Fv¤dÔÊP5üE môWKõH=rË·»ÎMF¢}8{@³ j¼rÇ'ë6›®©™ò @QJ#³üþ†9’ﻈ(fíÓ eÙ',lðÑ} »>Í«Èû0®1ˆ‚áóØA©­e„wtŒþ6|¸MAàSH®¼²¡¡—ÏHèn[À¾€eLËhµÔðÅ~Á½;¦6LpýDO60%'„õþ@ <`G/eÅIŠÖg¹^%N½°¿dmF™Á=¼.´HŽÔà‹w,¿®yQ¨8+q/³;ü4±Pþ)¯ABt¼Â„]Úª®hh€ÁA€ÃD˜h][ã`·b±-ˆüVóϳë^ÝLd Ô¹ÏHÜä¶P€÷Ö Ë)P‰°° õ›¶Œ§®ìâk^r{ÞÂ_·óÁ¶ÖFÇQ"†nœyS•tÂÄž_¤`¢™ ˆFhÁnWA†îDôü3ž¢ðˆóí1¤ÔS ½ÙÏXÇ£ÔGQw½n#]R5hqT–m‹B‡¡(‘Ú‘«‡v|§Q@à9Í‹ä³D9Ñ\:yùúÅVÀ[§-,„Kª .÷2úÓÒäaȱÓèU€ºÐÂPOU$Üó8úê|aæñ®”‰*/P:!³ðn•ˆ˜I0C‘xÌÊY3ƒº¤J!•ë¨^m(Â7‚ñÆQ¨è´×€· ËNªÞ&Ö=ãÁ Á‹“#îL†æöX"%´qUi ž”¯ø™Mct¸øiRé{'üªNuQ&ÃÂŽyV)§õ†ÚôxgÆe/nnÆwеÐMŽI``¸rú+Á"íöl 7nëKÍ…Ñi…JõSžÖÿ®#Qéþ:Ej,¡.}ѧò*5HL¾ ¤¨2¯{›jýM»€–gúsùirøÏH—»»v °aq€‡[y!ˆ·nþnkòslLtV6„¥¨49Á”4œÍû¨Z—ÄZ¡Ù‰FK¢àR+‹rúÄ¥fÚ.“eòÅÁ:šRà|‰>”ÓíK½^³ñhã^ëà>Ñ«=€9pv²Ùùòøº#Ñ5ÔŸq=Kå‹g}%HWbb)мû'þ*!ùr ò‘ÂÉèWÃ×çœ1ç+JŒaõ]•Séa"¬È¼ø!ùCçÞ ¿Žô~нÜÙ 7+äa ãp´Ö;xݴȈ#ºþÿ/ê€#]ì³ò^ÆéAxÌ݇¾Œ“We‰Õ*¡J!O´èG;B› @s¥cħÙsÿ6><| uiÔg%‘/¨­˜d¸«ÜŠÉ{1óókÝ¡ ( a#ýØÁâ½K^ÒœF%jëºx(lßG•¸Á•ß+CÂH#ˆÄÃÉ‘À%7.νÑÜw&~wã+  ƒ)w"¨Ww:'Ð5cÐþc c'ñ_G&5$E‹ü „ßà# Æ$íq;5=ψ¿Ð?gç;Ár»½{še˜Lɹvã_r vD,Ûg ÃKx­Žyq®[¨Ç+Tâÿ½`~E°F˜Ž?8³=é¤jÉqÐã.o¥fh¦@í„w–ëKx¹¯•ˆßè ¢7¡ŽUIŒ-÷þ12-} “!CŠÄÈëçÍÿiSÑŠÑÂW3ÔQžâ"_Í"Z±ü×îÌ:æîÐDÆ#~ˆzÜ”—Žª:¬ËFfOÑ(ÕHÏIÓ>¿Êǽ0Ä­md42÷š­Tª¶)`…˜ˆ ÑUv,hœSZF``]8¦M€»ôŒQ¦õõÝÒŸýÕ V,¦reoãp¹l`}Ä—Ysù,5ƒ‚¹L*‹c6¨! huW\â ?ó¥Á'N«ã'ÏÏèÎò?ŽLV±‘™X¢ßšR­W øðã…tQ4n8¬enÏ¡a˜“fÍÓ8A‚cPÿ•â îAYÊÁ†5<0ˆONШ6cÒ õ…>]šY8  ˜×⎠4Ô Äê8°ƒªBÙ Uðm,çô0˜ÞÙÉf•þP1•Úß —ôa‰½Yüi;:Ãàˆ¥A_2 Ù®F›ˆÓ•ÂÐX€¿›mZ6i“RØ… pê²?A€O­_Ýì2Ö×ÅœLƒàfl°ڀëúbI>AE˜,S•Ìå0€¢©ñ)¼ÑŽ€²Âs'ßøZÅ×Dµ°az×肹ëÉygͽ®®Ÿ!ó dÙrˆ*¹Z<¶Ý¥¹ û!Á™Õ‹<ïk•þZ$›YúPc÷Z2l@ÄÞg¡Æ;µD‰6Ù9ˆ!@ÿpnu.ã©Þ\v¡xòÇï4B’œÅJ”ä±O3‹Eô:ìú¢ñß‘å‰5Þöjd›ÜŤ9͘•?gÁä8K›Žø)Ét§vª(RÅ» L–¾H%‘IÈöwUë¢ñ —Ê× 3oÆ«`Š\ÓJŸïôßÛMß.n|{5†;;“aòl‡:hHíï4ÙºÜka%aƒ3! ‹íJ9@w¯ÌÍ‚ÏÂ3Æ—i9QbÐ99óQlâ¸ÑòvÏO™’j‡+sê¿öɳ÷•›èšCÓðÖÙ¬¤ûIÞfð§ÃI° Ýv„6÷Ž›ÁÒ"Ô?¹(ùnED¼ì{º´Ð\iŠ¡Ûè¶¢}/‡‡aÆŠ«²j!sÇ.N‰4Û£bdckp9¾×HfJüft;A“ €»?>`ÂqWì nZ€ B5Ïí\óÜôì|l5ø†$Í9)Ü2Ëß\øî †ý 6èÝd™¯9J?õ÷ê$i^ÊÖé(êè:UnPÄ‘;l-L92’Âã  =¾Êíî£&â¤=¿Èaþ™OËeÐD”¬ §°a\6R}‡Ó N¢’"›báöut¼4ž—¼ñV˜û¥îPúËIÐ\w'"ñDV—­Æ6Ô½ÃõOaW©Y*sµb³"ùÃjVP¸Ç}$dŽ„Q³©3$Œ§Î×QÅëa-ïEŸØøÃ†±f¡#Jß9‚ÿ<¸}T4†|e ?·g‰êÕÔxkN.¯ rqÊ©˜îK£ôûa±Â2K?JëЯv*1hÒóS.…·»:é³ý¾^wìAÜ‘‹Ñ"Ÿ[ØT”¦¼‘X¯™Æ˜ËÇ#„dUyȈŽnõ9^sAµ#lk,Qáµä·û\¦iŠRb7^†ùž/†h‘à36€Æ´ãX‹î}“²áýû­6CÉcÇi{«(±0"¾¬¬Çõ^žÈÉ„‹fÉŠ`µ¾í×–fÉ"4Õõ/!öŸFÏÔ°D1#fÙO;-À^yö”üF5Þþk‹)Å«ëéfçÞëÛÃæÃWÍ;s– Ô—a™œ¼§¥%ãõó+P†#·çÜ@$yáÕåÑÿðݤ=Qs:j„UÝë— `BÀ8v³Ý­Ä U;(Uõ0%1¡ÅÉ€ÍA«½Àè2D7Òæ4Rx ZA"#¯­â'¯ðHA îkBÓîy¥e“ãñYV 41- ûÀ½ë¡TI®G‘ý -¦s·<qýå‡'狼yÅgWj“µAãÐ9+ðþñx©¬ZÇ ‰ƒf‰«ªW2kßêÜÂõŠHJç ™{\¾Bb\qéŸý…HÂOδS¸ËÃÌ%¬aÝ—[!•ÏøfÆD˜”-"ò¬9€3=sø¸(ÙÜZy %“ ÿ"´ðNÎn$›DI}FOi§Ý´'o˜pGÃfÐã±;¢ú‹›«~M­UDÓùºte5ö&(p²ó_Ì+œì®í®aY˜‚°]%v$³îZ0½ÕyÞˆð%Ü>çBRÊ2²TpÑÓeâS0j'gè2 oðû\³4-èþ•sX£^¸M·Rƒ¸[D̬yÓós\ß8­gËÅF¿ÜÒ”o_†uÐ=SÿòÁ}cù F²fIºÖ6w§¬êô¸¹¡‰ZéiÅøX­L£M×z)>øY9–KÁö&{ŸN ÜOª"sï¬Ý¹Û® žáуJÅ0áì+À×`Úp«/øÖPÎ<äß"Ï@Îu·Ö7Ç›¶¯¹ùê¯b[ñ ™‹’dÛ¦-åF1×—Mh¤ó¼/°8ü¹–í5HWbÔPõÎðc#ÿc&MÂöÆuÁŠŸþM)ƒ¦£6 ®LÅ©C\iH)·Hqå+³©Ö§YcUçT1M5…è¾>À; ”vh/5i1 b¶{³KE×ÓÞ<\c{«‘Ã>šzWcQ<} ¨Íþ– ¶¡Ýdãpª½&¦à9PigØÒùŸ=ëÜ­-EŸ¸‚Nºðì=ì§JS:¬|Š!€X:p¾öàÇ¨Š¯Çñ—ë¿Àœ^s‘uôÚ^èbu}Ѹ1–Ì«6ªBªÛv˜-í!2IÑ:F…zÅ?µâ¤){@)º§‰Æ‹<ãbb|ôš…E§bÏx>DZ[Cð7UeÅs`Ì£¬b[z© Ç`s6ô½únª£fºr/y9·RÙ,&%Á3â¹=£pÅhd¢ßyÙA÷Õ%¢è—þ<¯±w¼©_œ¨ý:n¢nÌ6ñÇ‹Ðþ2²bxý¾\÷-Kð¯xîMYÐíȵ¸f¿GÅÿVøâX}Ô|ÞÄE—døÖ°ÓáXÈ/pã ©ôƒè’'»i&Ѩš-í6‘W)ÎíH9+{òá}!”6ËÚÖ®âÍ™AäU’ª±M~ÉVåC±âÃä½ÍôüZí¾ŒuuÐõ°á—f®OG<Žû×"ŠŽ[¢ú\?¦Ã5éÆã/¼UÉ¡é æë?$¶ =§–Æ]?¶ézĉQõHöh:#™+®•Unò¾®!Â+–VçcM¯ù¹O|¹ é—L)›[¸ôÙÑ*&iÖ)æ{Cä Cš°ØCÁŠÖðy$oYqåë¦ìGQ0ÁL2\jÕ$#ðʘ°"©m1£ŽäèœÑ˜9ó©A†• êbw"`p­eƒ!Ÿh=pœà²Õar™;ò©95O»î3EÞ<ÊŸµOrQÝÃSo ‰–§ «ï¶s§ÄHŒãÉ}f6ìOgŒ'±JýDøL¹>%}DkGÌ}½ÜÍfù´Mù?Sf„ÈDœ.á /¥"K§‰ø=ŽýbP,%.Vº;+.Äã8§Zoz!®Úñ‹'Ýí]ñœ=ÊÓKîDÔ£Rñé(Î' }\|^~±å¹ûZ9u€t*pè\ƒÔÅ'=<ì™Þû,»àÙî…Þç*{x{¯ I(ÞÊ#!QŸÈfZ -=•qÐóxàšs͡ѡG,‡?° gk<úBè^w/LÄ<(ÛI ¸ú.K‹zç?Cé`;µ Ë;eˆ:o¿ÑñR9˜Ý¢ë¦+£Þñg¡‹<³!Ï }(È‚ç7gFÉÏŸwšï‘ôÿ4ES¨SŸ]ˆoc–È‹< [–·„/{íêlK?¶ö8©€ç¬3ÅP½bqíDûRµÓ ØI£âe¾_æEj£—ÇÐß-çû-ôCÀPd“Äd²DV­§"œãaÏ12³bSâ¥W¼E‹8ŸÎB#EwoU=íœçÜ–]`gE.#åfb ›Ä†Å·KêôRGAXoæk¦.5ªÖ|Q­l›³ÃVó.èµý£øúþ1Ý¿Ad¼‡ú •ÇlÝΩÿ²#›;¼Ja¨ ÊE—&Ç:èÀÏ@Ø´u ˜¤G0Üä§–e©ÌÍÖkÙä¶÷]ì±²’;fŽ£ü&±t#Ëä6B š T·I÷ûñÒAi®ušš)žç`¼¯•Å–‰\œ¯]¸*ÃÍhúVYÑOB\W“³8•õ<š„àÃ<ÝÅFEš£§œDL7ÂF§¶‘Cs½$äbBu‹Q±ß¿nJ¹1·AÝ>¡Â· EÄ„ï8è&:î^b0øuüü8ÓÔÖ¸¾óÀJÆ€O8ü0ÀMŸtºâ£yuMg}&‰ 8#éôǾ+Xžù+ X¶¹IýѽõüHBÑÈ€Íküxˆ x!èY¸ðJ­u ¹ÐÞËš!ÿ‚sFmp>L8¹8À%n±W ö¬D¿»¬±×êÒ“Àã,@—˜XUÓLâQbͪ4·ö->)®OY©úŸƒ³1°™gmá?éè4ÔŽôd‡¬Èÿ­]‚\[óÙAÀ{šâã §º©+b†d0Õ(àm_Â~®ŸEgib³„¼K†%¬ºÍý´9ÒAº¯Š‰ÓgÊ@iæÉðà[RS1h¨©¼ŸTJYH©›¶§ånxž4ª¢­O]Åä’ßšîá,m´ûp†¡I_DŸ¡c=¸µˆõMËŸ¥8Qð/&#N5H’ß¿QsT6²ªUéŒWYV<ç;çSb]ÖUEâOL,gÀ(È‹‰8³¦ ¯~)Œ…ÆÆ(ƒÄÏHmÕ¶êpâ&)eøãÕ5 j²Hìû©‘Þ¹dV%â$â–sÁßëôciDËçmî@R2Vlî˾>Ü Ë™"´£ïšGaùÆžeÞZÐBmI´iPÔc7aŸ†¯Î¥¡7b?Vi AÛRbÄ$ñŽ£úcQrÓÿ6Ñšµi­äÑ䥑¼qÎ ‘Θ;æ0u€‰%½x‚Ñö¤Û½À&`[0ô¯1¹> p ¦r[Yyë‰ãK?•¤ŸßXjšñ1‹7½–É8ߑ泦ÝB²ï£õ¥ß–ÁíÕÌz˜‹ÌLwAL5ªjÈf±°ø5"æˆêmÌC:ì!Í)ô> æÿù6!­F§®îJ'ò©–¶q@ÁØËMòù¦°Ï˜oÙ$÷Y¤$) £v4ø#%Ïeqñ"Õu»08Î[HÍë\Áâ¤ã¤O¬g»eÉÊRe_œýÃ}´Ox—ãf5Mÿ¡©„«~ÚñL¶úlu“./)Œ]ÿŠE«îk‚—Êã\îÿhðè¯)Voô uOLOýÉ”ÀBTVv·÷ÐJÔí$'ëHOÕ:…Ä3Qám¾ "ìm=ó7ýî+ñÃð.±ÊÄQáûå=S¢‡0‚°çýŠ8È“°ü{w†Ë’幨Õq‘º}·.ÌØž,o;F̾4eN&TéÏëÕ–í!iƒ¼fv;€ _‰pN‰6©î@"d‚Éreòœø­íè ³…7‘->_+‚hnŠZz¹€22WJB 0Á†‹_=l­5»)6‘jµ&3]Ò+ €€À«Ãm÷É ³§soÕßEHŒbÐò-°Rœ9}¸Ø2‰lÑL±tÚð~ës²s´R~RYy"<ˆP^­nïRp[ûƒd:Á3zåÿÅôbT¾ˆm¨ {=ì’eša]÷ÅÊ%ãÊì$þEDeØ>hÎ^ýio^®Q«Õ’üžXLkÈ‚ˆv”|ùn×ué»N€v|ìs%ôˆÐt"ijU¤â®Ê=Ü`3®:<þ ¸‘Ñ™Jh¡÷Žn<1Z=8A¼dt!gbA#_Jp€áݰåôõ–¾ìÝÙ8ŽE«¿¦b[¡AÃÚæø·DW Ø€Y7MϪ¡úYŠ:.û1°¬dRn §‚àmª¦|YF IöLôK|׎ÄV_JenÛÙJØ­IÔ/Y‘Pgð œ&+&GªÜâŸÁ° ><ÜWãÃþîŒ0>¬»ØÅ›l?°2Dk¼ÂlŠÖáºÃ1­:÷ å}¢bbS\5†BH5k´³H[À«¸§»ÅVC}7Í`A@—oûà%ÂÑ—€À¤,0 »?¾P¨£e‚£¢3Ô?\¡bºßváT‹\TPt0¡¤Œà¹ø |áåK7´Œm¯¹/ÁDImõIVNÈc-o"@Ï[žž`Çå~AsתªØD´¥Äî,ªy”µŠ$#9óü×q‘I£‹ºZn,gïUÊ<ïô–Eøî•=°|„ƒ Âø·²ú²ÓÚ¸10Óñ˜ìîÚJÂA~1ˆ‰¥v-ꪄÒ5 qfJôŸ‰ýýf“êé%±¾ˆÄÓµkhþÖ»Ö*ÉP3[&œ²O-3 W "wî÷ÖiŤØÎ×­,Þwtd,»¡Í⸷Ùó¿òLÙ5nÇ@AØ/TZñÉÎîÂZÔI5¹kÖìƒÙÅÿâFc—ŒÎПœ'éq1-Ýâ·å…-Lçyw4•ЏÐ;ÿW‰w¦lÒ'{5‹º‚mæû•sðëç0n×ûűv¥íÐ( -ò&F‚×^Þ6 8ÄÇñÂùF’²¡™>›g¶nZf¼¶Â¯hð ¢|ju«!K3™D!*â«×¤+)ʯd$¶ú¥•IXðNÿ‚Ÿ³ªÓçÒÖtSÁÿ…,…™hsÉyûr¯QFÎceÚ»‡QðÔÜX ks-§×1« Š$§dvì‹û¢¦?}ZK¼âLS'„Ö1sÑÊïÁ]]{¥DN ÷0æ žŽ@ù”¨Z1úež”6š§ù • ‰A8HBdü:X@Í€úšjwS”£Îx –Éêg97Ì:•TÎ84Ïaì0’Ç«4ÆmLì§9`œ:j3'|×G®',šÔî@-æàÉå…çþ˜óªî“Pm“[IÀLa¶›© h`Ü“žÇ‡7b;“KÂD‡Ï,O¶ÇÂ@ï«Ö|¬^nQUé~´:º„”Î…: k 9’:RK¹ð3ãAª“/Ã_›!Ñ\q–ãAWxäfó­[Ÿ Ì{f5%yI׿1Û1zjýR½TžÞ´—0zÆZ<Ü[AùµCëB*‰kü5 hØáÁs|Süq_q|Ø–ùXbG|ÝŽF™Ç¿0˜Ix˜o—@¦b•3«GÔ¿…ÿ¦#Zµ1µSyj5a듽Ò'g—¦P,ï_Lô(oIêjwô•\GÈd…é3ØúÄBW—Bšv¿v¸wB %'oCõ±[¨ªº•Û’kAŒ»’¿æ‰œ—Ê4zÝ~¾Tôñý¨Æ—ø_™LKTü€J<‰«Tc@šS¿ÙÆD"#Dˆ-I’ú2û¥E'ÅSûš€-¼~×(]ÇAéKfµÎ®¡F60û?Ëë:‚ )o–8Ηªf.}‰Ý_>0¨#dÉ×\èrú{1Açôx^Wœ¾•*¸¯{{j¨ <™móóˆvÃÉg•ýÌÏåSìK¨pn'€ïíÉùSìÔààcUÙ²ø‹ÐU§ƒ®N饷¯ëdðêýÆK­Hr Ö¥³zŽ(þº)Òû]¼?kç rIáD-Ð6Y¾Ñ_Á~ƒÎ>i¢û‹ø 3U k“$0žàP¬czÉQŠm™È.ߥԭ%&°z*#R 3ð¤n"Ô+Û[ËѦ}ÀØçÕÏ`(Á(Ñõn€-C|3üÚÛÄ;=Q7§ |G¸+GÚ|´«Ù´B-ö#¸ÙQÔö_Bcˆƒ-??Ugxºî²„+…ã_ò=Gÿ5½0Ђ¬¨Ü"}>ËÕ˜“ä•Ä—Ã(l=CH›ã™*†i<a´\ËPÆYU9ÒeÖ»p4Çã4ur‡š™ÖéßÓTYk`€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n021004l.pfb0000644000076500001440000012727107056046553016422 0ustar fnevgenyusers€i%!PS-AdobeFont-1.0: NimbusRomNo9L-Medi 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman No9 L Medium) readonly def /FamilyName (Nimbus Roman No9 L) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusRomNo9L-Medi def /PaintType 0 def /WMode 0 def /FontBBox {-168 -341 1000 960} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020933 def currentdict end currentfile eexec €(¦é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>m±®™$Jinò`¨ãh§‘f$:Yº<œ ×±Œ¸ïkx\M§ y’~þ±r0ÕègZb ùÌ%f%;ÛkÖÆ¹ GTN}fRñ´ÜÚázš‡½ë‚‡—›O lÓ¼¸2í_¶Éñ‘†ºÍŸœòÛ½¬ûºQ)@dSX%Pd©@®Ëe‹YÛ~ÍÕ9Ì+¿2ã˜ÆÖwA-›"ˆ¤Í¡™Îú½nL³Zø Å’Ñhí¡A«ºIíòfW”#^Ëg·0wÃ4‰”ö·ø=ôlÓ]IýÆ"Óm¦‹Á^8Ú&›ˆ“œ1yì´)"ünsãmuÃ4/ˆ©³½¶„¸2—ïÿa˜Å Ö´¸%‹rOÈlܱGÆêÂ@Íö³ÜaýÒäo§ <]»0dÄQ´¼êÊоÞ(zOhY y“·úÜóýËx]˜?Cå~æ~N—=9Äø/wcÓñðçg" IŹWƒgµÃ’Ä™Aevãsj1µ²é8-ì…’Þkvúp¸‰U¹XgtË—dW„Î;3ÿ%_ÂåQÌqC6CW1‘‘ò1Å ùï4/hVv´ø;ˆÛr €,ㄬŸI‚K÷¦Sg K€§øÒ!Û¢JÌV;q#رzlÖ¼¿ÒÝ­7Ø©'N5^¼¿ÎáüůcŽ9Äú­à˜7S»W°.³©äø:d×a䛨S³áÒs§–_)Ó}`YîY[ƒÆ쥅þί±ì>jf7ýÒŽ—yð»08)å¯!HTó$ȵÌP}ådoÏûç4¥¿ÃbŒ®¥ŠO:)éu¬BŒ3û.Àuvóbåÿf3Ç$K5Tˆ/…ªŽ#Ëÿ¹«°£Ñ‰¶áRnÂÖômóbÊwÆ’É7V´‚•?-²†ú-å ½4O°ÈôœDN¦^åeÑtŠ0.Ä׺tm”‡›݉ÔO›¹FDÃá§TØò£)ÔG;,•G`æžj¡©Œ:¸¶z¤:³eÈû©`͵ía+1ÖS–:Hí¿±›ËŽøïñ…÷l’ÃÈIN‹a æL0–ÇTçV*ž¦þÊñÌ¡”ÍCmÞ-õLOÃVŽIGLw½…?qv'Їgò ;kSÕg¢ ô$Ñiy³Î‡À : ´ØË)HÕ«VòJHê ²3$)Éfš¢(BWHØâã0b,Ò¬WÆ.ÎöŠ*:QÆAÖGëç’» ÷Ÿ­ a=Ú @VäéÏý’8`}£tøjãV‰í>‡%¨s×½ÏZã:ÈÁ²×AÜÃ÷oEzå7Üø5Z»¢!ÑWAZ˸fóŠâ*M¾Æáè§’´!g³ãã¢"§r£jGXˆ5K má¹þ‘û¨ìÐ^Ò" ~YauÊ”²[ˆ¶¨Ylñõ@ýð5š—ŽìP­ÂÇjœ‰ïØ«<ö<•q­oJ{ØÊ’b)ŸÆRǃLT CH)Ô aÉcDüÄ@…ßN÷oýGÄ}ðù¡!ù>þ&/‰Œó+¯$àòñµm ÷ÏáÆ %Å~K‚U¹ <ÒQÍËŠüãõ&Øó(¨3¼CûQ{.ÍÁo¸d¡±Ê6°V¢|Ö§öU@dì’,µxpÙŽ’¾Æ|Ÿ»¦]⼄K!sfàߦùÚbq3ìgÎícw£/m]øÔ__ }¯üú;àT§Ù˜Àö‘ÿÀîEa(-z|D¶ÜU]'ƒfkµŠÄaaoiœáÕDl\{q½ÿÐ9’dt3å…Î1vd›Ly_6•0Á™EF­ëïÒQ‘:Ž/Rõs@¤a§è¨@NEÉ2#xecK]¢á¼`©§#ñ9F»Ö @5?³„ÆueGU‹Ñ¦}îÉÆö>C´>âw(æGŒí¤Ç¹çªl£Z`¹èÐÔxB¶Ãdn&¥ˆfÙºõ-2¹qÈg¶Vxcù?Xiв¤ç1›mGõ ±Õ'k¿¶^wõÊeëÏÊh×UÊҖ's¬¬ŒTÆ'õçvÏZ¦­=Þô. Po¬¡:­fïmkÜQÊ«JÝx–,ü< Y§Œ4ÉjÈX':?”©%ûPþ¬ ]F°*}£–.„r‘8ò4œ‘ï='Ýqûáp:ÜÜV@«áh0ˆ™l­ˆ‡÷â7à@–íD”!å2Æ`LœàŒÛí1ü ×5ˆÝÆcâ­.k·²”7jž¬{ˆqš³Ž>LRD‚ßá å­†F‘Ÿ+ó¯fcØ(3‚ ݧ‚y–Ç€µ¹ò¼”(­±…ŽÍÛzìf¦cí~ü¶V-¯€È`{¬¿OÕSä· ®lŒv <_ÛçƒÛµÓÉ÷èö¬e&fÃqöH8åò‡Pû®9à{Pb§¤þ–üÍM¤§#£ÿìeÔ˜¹ŠÌ.“±Uu ëüc="÷KMÅÑÀ]{‘8^õ‚v»Zxs`RÎΈ Tàëé÷ÈFãj²ëj*¢Þo9ÍY‘0I- ¦„-g¨(2º"RlG0f#`%YÅ–¹ÿ®rùBI‚ÂS%çl%YfãÆ‚¥7[µöËV'¿qI9BB9ÆñÚÞ5OpnÔïÓsR’^Þ]?,>lKløôö?–Žê{jm3ö µ7Ôä y–Æ<7‘&fBz›}¯º8mæDkX_2îèÃ.“²°©õÃ7»Å²SƒY[(IƒÅô¼…BjL$‡ÊYÀ®«›÷~J»ìƒç„„Á®œ*íB‰Ù˜ “ÛÐ 2¹Šï?_f‘ŠCÒù0_ܤ!Ic=ô°‰ö²Ç›½¬«páÿ ‡¯¾ŒÊCòm¿¯N@aúêOkEæ:åI„Û`c]|î¿D§7fb@òß ·¬$é¨M=kcY¦»ë“’î@¾xáºØïĵœ;½Qäq‘Ûa–P~ewj½/Ž›«ïW÷~ôløÀþ¼…œ±º²BÞåªjZÐ8—ì¿êJgzC(Còë*^Ø™»ß{8oõÚ›ÛOj˜Yt•…&7/"÷/s7qu4–û ù˜(ÓÏ7R­åÏü[¹•9|ÂQ !WYz(ÛÌ:Mhbð˜Š"îѼŒ vÜÙÜ(Ú•<jzb[¾Ì¼©½úîYä&å¾ËuF°;=yη«éb@PÔßÚ%Io|˜‹’n_À€¹ýž….ÊOy§R!Ò£w*Ý­¡ÑʨºIasÄÔƒS‘UX„ïªx¡¢­ÿ¦„W„(¯^Ýçf+úSž[ÙWx˜zÑlh±UªÔr¤ãt\»ËÞ0ýÏ€sÝšž@0bÁŽß«Ç©žãýç†Ñm8sèÙ¦,YÊS9O?²ÃXKˆ9ëÉl¯bdð[”Í‚SØéÈ?„XmºE{íòèV7s˜»yûäW‘’˜½ñ1æ\‘€fQ®™¨‹ÌPÁºFÐÂëge%ŸU£@éõz[°ùO½Sì˜AÂIzùkïDi}E·ãv«ñ{·°4Rvyˆ…™nJm„UýÁ?/-ÛRþ¢m½rÁµ;ä'½ùÔ+k.ãhžHNªÚ¯ô „eÒæ`¦˜EÁüÄkù*0m}ÕŽð*|O]«yZ%¢»F-!N 죥$””Dî{Iø¯¹ÙÑ`¹ÛÛò²ç¶ôwì ¥Í›’l<šø„S“ysaº@ÿêqçÏ!·G™/¼2m‘+í«'$“ˆ 2«0'Apfž‡f‰®á…EgYÍ6Īb͆~qeêp´‰bÚŸ3Jû¼ª™”éîiÂT3ÌJBöG"_m•Ie *{ FϬïÀá…èdV¹“ÿI “¢fr¡$§ Í)R"ÊÈîq‚ì*·‹™*m÷%[F`FŽ ±b õv&Û_+Ĩ=úÒt—5ݨú,ÉqB—³$hùܳn\î÷¬»©šÚ XçI‡xÝXæG‘IðK³ º`Ä3›']ãGN ‰'š‹å^"Cê lµ¾2äÙ.ÒBò¡6B¿Gu¡«í3µ—ñÕ+ä)™ïfÕ;8¨[ «¢‰å¯?LºyJbm2™þˆütš!‹K§·Ê“ž™µb‚Tµþm°3ÛB÷>›Õ+÷—âHÆoµ;J!¹U}Aš0<¥H«<ÊL®¶ù5¬ª¬t 3qjG<ïª4̤ê¶Nß-2yš¬î¤ûûA•yQ*Õ ÉZT—0 Y4Fâ ­¿nyEÉ‹„pJ\xä!1-ï^²j¡ÌÙ§cÕuª.»‘Ÿ¥€\á×£˜OŸ¿,ÊON„)¦bï3¨!3PR´>B¨ªíÞÔüPpȉTuT—T¥œ[¬•à0fT¢–Ø›¸ª_Aú⹨[/fþ&´ˆ'[«– rxñD[÷=dc"êõÜÙ¼b~}X¥ý‰ñ ˆ=ªï¡²vª·*º.çÔCv/Èâ­^¦Æ|´EZôà d=é Z³Ï×Y®ì’«ÓõgØ¢Í[îÆüÝKN :W ß³8¬Wy®ö8£DË`4£;4æ(òg;­mo*á¯ÅÐÇȶy( àôƒ¦{Pãl¶ÍŸ /²1ºÓÁ‰™9ãàî6/6Žœhh\ÙüZÈ)€<'u¥¹6"šAòQÖ@±b&¹¡9ÍŸ•S ®Þ¬à°·í½›,°d½Ç:ѨkÎ’<ÃêP¸”“’â €ZÆ=m¡åãÜzhn$Ú)Ä0X]÷LjqšaÐ6$X'Ê[Ôó»9îô½xxʰߟ¨DZ|Y¸¦ô[4ÅÙã£î©}Ct¦10ôìLÖNgÕl/¯^Ÿïr½\ôc†Ö—«ì?Ù7 AÃjáä—ßnE~-Zuàæ¬ü5üBÚD Y9 28{¸&x1•Ao¾êÇòÆuì2b3ŒÑÇv?q¸§¬ì ~6Ϥž¦Nj0&á³éO/žqZâÀ˜ Áf·ÛH…ÿ ]56¨BÔÜl郯ðïü¶PidD‡·†¦*¥”{¦‡éT–¹ÏI3"c•¹ze¿j6ôfJ=éC) µh,|5*HÈL|¹V…?DýõY#e¤Q0\ŸBÓ'^W÷“I¡ç–“s®Ä5SJÜr–#åªe=ï 8 oßÿ¹n<ˆ “ÐDµG—'”ýC±keUQeµøEL :†ÑHà¾ü±ßVÒévÌâ×üצ‰óÍè2õÁC„O2PkAõö\\ÈìÊíÏaú_êÜ<ÙÃæ—êÄ'Î×I¸ýýÞ$5Œr½-9‹ãÃãÏg¼_èVKùŽ.Ô¤ØðÐÏ3µUVûÖÑ:!‘;µñxËŒjbC»ç|½3.µv@Ê>:èk‚p>*ÝlÒ ¸.C–õáŸ:9î"KwÁEÔˆW…ÔÑð}WÒqß#4… ÇCv(ñð‘û7p÷]h·| 4ÃBÑÙ…gù¦± EòQr.lë¦èô³‹Äu*ºè1oàzD?Ñr¼Û³é(wqÓP¾÷ ì¶z©þ äxš!3C½õ‡áÃrcÀt[¦ÚÔà-ªòkœ"(eŒi$TÞó} »GZÍÚ‡ˆPK ,&á äS”i_“ši¦Òãì8–Û˺SÑ/·<ÂlÜ£ÀÝ.E.ø,LFè74‚¬½æ$<Ì`Iëõ“A»ÏÈ;0£i¾Ú² èÀbB²@[˜¦ù˜ú¸·pjº—@2£>‚Ÿ›K[›¶pô ¿Ì´¬õç‹‚ÕL×EëK=‰…"𸉄â0V5ÊîËYd©Û—[ÙÇ­]–nóWB¹^h™ûi¥Θ„Dvz¦‰!í¤‚BÎóÛð€1‘¬gßšß®yîé ’G:×ñ,—XqÒÔG>+Ñf}æx¡A‚ý[2Q—ð‹.ÖÚ;à}oÖõÝq2 Sâ³€msQ¤§Â¿wÞ †y®ÕŒ+&4êLãjI#ÑïâíÉwºVT³+Äù2aËéK‡ #]Äï'+þ¸C»²…~cÏL©õyO«ºÔe`ŠÅÙ Š¿|ì.)b+íTdt°{ÍZQжTåêäjõõñ™š&—eÀ< <¾æ$üo4;笅^œ~Ö+È.q'#ßóO•,VZ®‘?üæpUÀWËë ë©û;5´ ‰}Ù`7ˆÎ¬›—M>d¨T²³· nò†Ô× ’!Î1½uõˤ´.Ã{bÊÁÆBY´-ºÉXfSŠ«9’åïæx§QêÚÐ_ÚŠzk°Ë¥ÖCFÈ„1Cʵ:‰Ô +÷bL%àõmŠê¨90¾MBa‘Icã¹|‹°ŒÜúg}‰€ªÕþG:?×™}ñ`ë‡Ëïåj.Ú ø÷ ˜ûÙ§fâZ8ö/ÞI° ¹R¨)ÉÌdîlv¢á¥$çcÈ4¡ô—«èP°¯c¥*‹µ úàÔðPfQn€[ ê=˱ß_‹'Û”G@ÛR.Nø¥ð"ƒ}r ´ÃÜšwVl¼Ö8µh[ÄO÷•Ÿ&ŒñüÚ’ÁJ“@·žÁä÷Zâ÷™ßÿ*Aù¤…¼Ü`]vGq‡ß޹"o,·É`*ÁêG`ã’LþÕœk¨À}õ4òxLŽéÅPœNB3i(r,z>v[7Æ òã¹q" A·RIÌŠR-oæšÜ.EÝ;ðþ­jw‘Z…‡%P8TjŠ«u¡Áåþ“?ªò;7L76E©Î…àÚ÷¥Dý  frÜ{2SýqØMîj“/oº®›ªQ{ þf] ¬ý¤(?YšKi©¼LD¼Z»Lì ^„™Ø¤ÈGì⨔ßrâ—ô7¤Âi†Igž¡Êœ€ØQ†Õ6ˆ—Ó­¨µµ’U¥ÝèÉlQØiŸ–Úåe[ÏßòÙa •l§v ˆ»E®ëΊÑ©cpÓ¸\A¦[ÙF’¢(7Éû~Ý­Õ·Æ+Ç%/ „|m X“âÑÆ­DKûÛ+°ú5*ˆéX ~Î!?GM:h 2 xÖÀ€^]‡¼*7ÏzÐKóÊ›ßþ–Tz¸ƒªx›c[¬)Yßm’¢®ìlã-"z•7®ôž²ƒj—\Q–—bPE%¸Úm›¬R˜¡t·Nd¸ƒŠèoÿ7ÆhysŸ~„9öÛ±J›ÈÔ44FCøOѧ¯€¹¯Ïˆ×.#?-î×Ö§ÞÛtâð#Ï&Tw‘Éiñ#åmäÑŒÜ5#ä!عÕ„çhåL²ÊþúÑÍç×á:Üõ¡¾R%ûá,::œ:BkÇX´Ðá¬ê O%_—E‚ŠÆ ¥™ÕÓ¥¯!üºM«dÒüÿ<ås`xVÂÒjj¡~9L­0y¨ó[ û:-0ûï´üW)IÝ;ùñOaÀÒ Xeâë‘O)`±½lû[H‘ÚÑ/P»!Ÿ´Ãa j ‹ÐgÈnâÎK( jLIm¸,;a……›!/~*ç¿>EÙLDÍ—`6Ár‹Æ[Í»£}D+ÏpË’öh¥ê¢C¯'„!>a>röÌ¥ëe†.vÛZ/y e®ËÈåiJ]û˜—”ÁÌìntY>lx*}G!£+ðyboN·ËÊ Øú?ŵ)ϬÏíÏè7ÊHö’Ê ÄÍ–(ï±:pK[T€{ÚÁhtÑN꟠‰÷2 ›¢”hLù§0êìÜ0:ì úA7¤—ãùµ~Äq³¸í΄ó2ûP]³£Ý“âÕ[wÐb4”‹c‹n`ÖÒ€]­©"w‚0âÕëdg¥Ýzfï[ÐÌgú×ð=«³ÉE¸/¼Mg‘ÿª#V?”¿‘}dù“¸‚¶iÖ$òCÙàµB^j¶Àr³¬—ÒŸ_‚‹Ý6à;³2nånºúÔñ âŽú v,M8c–Éo휰Ö|¦ÿ„â/P¤ÃÜ‚:ªÊ¹<¸Œ±ß ‹ë,úÉßm ›¥ Uø4)0§Q“hþc¦Œuª¨óS]ƒS‚|ÍÛ3¼UZ˦pB ãTî¥.r­; âs‹·½-aŽë•[¨Ãè\‰8ãØA©ØùýrîîôÝ]–û[¯Ù°jo}!æ>`¢Çö œj#}-ì¨x`µˆçCSO^@•nÂ÷Vy0ìýíè˜<ËûvTÌ~øÖªÇ¬1›„O/“‰ë[T¿Öqž¼5‡RO0Gukü- _«dºR{J2pã@nÿB¤ßÓwBý /:oýW—‡ÑШl¹yi«°7ÇP«GüˬÍ(’ðϱcˆ=%‚’ø_šóêxá¼a+SávTGD@K©ô4)Šî휄DGQWXkÞ.èÅåÆ!š¶Ë:캣2ÂC±¤QÅ Hs¶¯sñGþñÖª‘” @¶Õ¨¿¼¤6x®ÁC¯ÈQ†€Ü\Öÿ³°m#Ô¬½ŒÉô$?l¾L‘²-£ŠÅî!4±RË¥Û:Ȳ]€4Ï,›` ¯>,ïTÜh>)ÚáJÓ¤·Ñ%æ’TN'ùR@7ð'U¯¬†ÜÏÆVÍÁé—©·Eö&²  ‚(ùôñ۔˦ì²𠈻Kz¬¡à„&IoheíJÈ|ƒ„)Ç ïzdRxüÝ*·©B·@'_Ïû[ý@CJ[[½Rõªž@8އÌCšÕ ]ÒD%ñw,œ–2¥ÿ½—Ꜧ{ë´/d-ÙŠÇ“œ`ï:ïÃÀ>cq£DXÙ”ÓRk/Tç4YO èpÙÏhÇr!HDÃsgÓR&4‡NÝ6ûíû»!çÉs²ŠlÔ1„Ð+{È®¥jÓQ]ážçÈ»«¢¸–9–¬ŠÛp'n§ò4HÑ#Ý¡¢$²“J›—o,é@í"©è;|…\œµ5!ÇË\b' t¿êÄð§e¿ÇÓÒÝhÎæ4 FÒÎJVc]á/å#ÐB¾ÎV“¿A´M‰C0#yYšy;.`zK÷v/U .ËFÛ¹âqqx´ôü×* n†ºÓÂ\&){‚çýDøGMŠû n?G­÷›“7©šÐØA„·^×ywÛ o,¢MW[®B4<µ®ÿ ¶Òâs‰'P¿s&·®‘¥ÝháHCµuĪǓ)ò炇 õÀè Áy8ß0žÎÙæ/é ê[æw¡L1pxÓ¬qN#·VÓƒ y®a@кPexDˆZ–kx€¬üõÝF¥›D÷r±í˜¼ ˆRÿ¯ØÎ(¤û–´Ì˜ZqæzRÆ&÷“ à »Á†e¯ ^Ý@²²Yä2Ã$êÚ±ê-éôÜ¢=rÝ ¡h°<衹CZ¯GÇešÊX µˆÓèÜÉÄ<¥ ìdtÑiV<&ÔçÔg²‡ïbñaË`Ž=Dš¬¤É\aÁîtÿo®•\WW'fVeÈyX,†þ1™ò7³:Á  %™‰c(û‘4`heOºèäÓôLE¥yɵê£.kë#{ÿ6=lXˆ)¾]&Ò¡Îõ™Kr3üBÿ”BÓ¸‡FËQÃ&÷Ô†Ÿ[ü*ÇÛ ÙGÇqN“r¶¬ÇyDÇy§JóµÌ¯BÐ8ж£Ÿ^Ÿ«tÌbt‚!@˜ƒ0³óÙœca øŽË6uÇó‚zó´hy.Í"І÷èpa0ê¡w£ C‘ÀúZü¼“Î6-©›|tŽŒ"Æ4®l^† ®þ”ÇîR/§/ã“=¼8÷ä³ÿŤ!î\ W¹óbøN¶J{ŒsÇX|‘ˆ*Ñ‚–¢ÙgÊ’~÷ØSÔéÄGÇš2Ø©û-Ò ÌÁÁ–ñ/Š|e‡åFÆä3¥Å‘ïõT²~ôÛ`gjÒiú+Gcfûé£]®>Ñiþòºëü;d°‘eþ¨z„=b-2´•K¼dŽS24jÛ,9¤%7ˆ˜Tô§‘;S¢[Hø„P®[ÚÓ¸ˉ#‚*ì6 …trZÀÍY¿¦C}¢·$mNîÿ×±ý"3ž{ÖO7µNW;[»îsî ­¦‹”ÊÀ£¼µYœÓ+2s5¹™Ðå]¤l3ñ§®²w¾ŸI.MCIô”øsLäüÝßR¢ Âì¶&IÄL“ýéÐòà»™Ì/ê¯èµj861F7¸àJC©ŸûWÒo ˆðû‹)Ôäë]‹spÒȧ<¼Ú=“ ¾µ4>ˆ Å› äO‹(üÊÙº¯FœA:6èunFqHæš3¸:„tŽ=&‘ÿæ¦àƒ½ÛJ˜ŒƒL]—÷ŸL¿ÞGêd©|Õ`uœÊ²#²ŽH«ËÊÈ™4=a™{6Œ:•0^î_Ñ÷ì„üC²aᲩËíR×; âÜsAµzÿýû_ÝÊÅbÙ|PÑõ¨A Tü*ÅÁ„ Úpã(G³Î[o¦²Û¹¾Ÿ ½6þ™ÙøÆ½¤?ϯ±†^VõGA/" - [œ5iN«øÖ|…uÒ>ßñ‚玠ŠDGn¢Þ~zE{•Gò=µÄf•köÂûu„aØGt/rn…§†IZªÉ+ÀatsÊH¦½s”¿ÇÐm?Íßøz93km/Ÿ ·¯ç98x㨠3LõE¼ñD©ÛY/æA¸6›© h`Ü“žàŸèENº{©´šÅ™,%(™ýÅ‹×8¡åN)ö›¢oµçîéšá#› “/׊5ƒ:»=¦•÷ˆ*óœ(@¢ó0wæ1 Z#µµƒ«£ó¿ÜIˆ)"Ý¥{652ßá¹e•O†Ï¸”TÙÏ †M?N”ƒuý\LÞ¡lUôÁÊýŽˆ/Î@yQ¤HPm˜ÚüQxòtó¥¯&fÌñS1K¨–ªœ&³ó½˜œ?Øt«O -¶@$léƒÄÿý KŽÄ ‹5è®ü‹o<õu˜Éç"· Åœ]5jfa¬Õ¯.|hŠñô< G:NAJÈee°[ê>‰£kÕÒ…ÿs±÷®LjN¤©lim,õöÞ†‹GC—ýCèDpʬ)1ÂÓY…ÿÂ.ÿ W²¡<Ì‹“ÿû…ƒ¹›†ït‡Æx‡§NA¾°rbGÍz´m¢™2'‚ðc¢¸A(}ŽÝå’ö#Â-ßðÁ£þ€{9!ìzV=æ õb¥³šîÆ<ÓSáÑ‘Ž†Ú¬¸`Pºrô@çØÏxIa*jÌ¥øS(…\ýÅ[ÙF~])ÁôDÎMâlv¶g vi?¼’†7?‘œ¼! Uaêä Þ^^“ù—J 7à ²ì_Qæ§d9ª'¿3äeÊÝmÏg 8øtד{ð¤5ÌÁ¼všÚ§\UK4»¡mÐZî²]=†:nº€Í×D>üîÖj ;Ïí’@+7Ö $²–>ÜùÐFh«°òõ1\¯Â>ÔùË͵€ºÔôy8bý·W_o\ìôÞ*âyc…rÞ­¥|\$jäçØçÙ#M l‚i¡WcÚeÕm°t™B®·IëR+°Kõ£Ÿï-|ƒ§T¦i0`IÚfÁ©o¤œ1Þîz¶¾'<ïÆß+È÷ªùøÃ}1!—$µ!,Éã%ãÈNý&þd¡±Ê6°V«¦M‡)z#*6`³ª='zC…³ñ›eÝ•¦ª…ѧ›©…³ñá…d+*— nç)7j[·n_át0Ý@f~¨œK)f÷/Ú _E8½ñ$‰Rî·=}~r§ušØC=]ü$ AR)jŠõæË[A<ÐBð©øÝ|¾¾•$Ý/äŠH`—À²õÌ‚è¸Úx3 Ïˆ®£ì®gGÁ æ SSî[Z—š“ò@Á‘/´dšVÞ;§GÆÙÿ'H…c"èQßßÀ—ñëƒ^q¸%‘ðÆöªü硟šÍÈg¨¸ZÛzr’ªØ[A†èe bÝܱ»%ÆÙ#øª•3Þêç@¤Á2ñðP|Š2$+o/Xu0Ñ"£¼{„ÙCó& „ åNÌ`Gˆ_AÝh‘0¼V“£¤Cœ;ð¼jÉqÃ@FX€Ò&o!'6×€×bŸã'XÇ…Rå±·ôÁdرt° iµ ´½õ–|‹Hßß.yÔk0ˆˆ’†6g:N°KAñ¿4GK\2ëîØ&ÀºÒíàyØûý±uñnåÂ+¾á§©|ªnäÚ öŒÉß±'èlÈsíÎfI÷° ]üæÁ2ïÃ_"\Ä‚ºSÍxz:¤dáDyÞž¿¹Œ<àñYÓ)›>zŽ'1lq\ûåa Ù \ÿìŽGM4HÐÖ¡!H1ÀDZý~¢Ó4,Àdçceó=SGTƒU‹ÌÝ9“Wêž•ñE},ýÝïšÂ¶gáJd)è¶_ô´ß4#=¦T­óÁhpñØ`\Lòm×¼OMÈçh;<XC‰V)ÁjF"R’8e]/9:ÎP©Žå<&],ó`[ñÝŠ#­ÐN;¾!lJ×…ùi¶$HÔ ß+#¥d,ƒaÓ3aÕÖË'ùúWîÀàäiuDõMÒ 5Ñ\'Ù"Çù§„lî€ eâCËM>o°üÿxlb4û˜Û’ÛzõÁ–Kê6/U¤oIZÕDþ¼ÑPhÊ˃̾møX™ ˆB“½ëçÊ6ù¿“Ö.ÞêØ<³·¼z=qXŠ jì>ZÍjUí(ú{´†^žZ5ÕC©s’]o´o°Q¾*Ðlˆp]YçÁQ‰IⵦÙ×»I qÅ9ÖÖ§@’§©¨¤;sõ<͘l¸0›GUy¤ÉKç;eŸJŠŠŠërÑ‘ell=… žÌZ ¬Ì,?9Ò’KJ£ø‚Š;…KßÄIíËvâí€Z›9>‚QõšÅ‘àæMÖ%ïÊ>‰§ú… Á¦nb{û}Q0üš‹Q»E½&ðAàîMŒÁŒ1\Ò9<ÂNÔ‹ Úyx0µÜuðÆ4ÄÞƒþÿ…”[5•es¶~Þ@*UéÍ€À–OÃÊ5+¹xœ±.ý)6Áµ«Ö!í@*F}ÞÀÌÀv „õ§Y¢ÿ¾PýÄ}u^£¤Ÿ §ÍS{ò¦{Z¼ÙèssyúÃVoÝ'aGwÙ‰«nÐ<O7—º§ò!(\ðTNçä,"|׬žÖøã𻥗²ŽRÕ:äqGMÙ²ÚetV7©Í¢Ì'€Í¢)âš®DãéðµO o÷/üæXO€ò ¡’Ý`Peíà¬6$Æ}É9Ç´®½¥ÑÏŒ‰ÍÇI-Š˜ÞÞS̹nÍ£µDuþEJ¦¡?£_þA6È]ëŒlªR{×j{Kê¥#_}åbâ Ù¸–Õ;Öïb6]+õEOèqÏCðæP=g;g' ) ÇuhÉ]šþË|¼J›$1…QVã Ï6Ö,iö,þÅ»£úPÉ—=ZVlͶ;¢µ†kòßGyør~¨ŒD@bsœˆó£O=kOjòà”í=íÚâ”Ú-«—U¬ñ/¥¾š…P]ïæ‰äöU6$ ¦&gJ×ô¯4SR²öaou³l¸e|iY±Ó£—fUÔB9)Ôž~šü©öænuúc|à۴ëæ4Ð{F£LIðéÊÏŠ\ëð(ßnTc.#«Æl“ åËd³x©‹¥ôJZÂqÙNèpLí55ê&Ë.–\c½ýKÌ„øÝ5‚Û•Îýwíwü";>yEc&ÚÄ,òp’dþ¦z¯”HehÛÆ“ªÀl4ÂYç1ª¤Êš¹ðÌ™oæÃÿfk8РÓÁ_tüÀ˜è&VÖ‚¿.¯Á+¿Årc¯Út5Èlwq<â†ð_OýD™í‘žU%~¥ÓL’Òq^;’I;¶uGñè›ÒÖDì^P¯¬˜Çó•Çûe4Že˜¸5 ¹=ŒQN2!ÖøNc¥AsïÙ²0ubg’ÎX?ðèYNÈ•|ø5au3é­üÌ…þ¹™sôo+)QÛ…‡ò–‹„ÆØ\Øû%¥ôž|[þ¾†få›ÛøŸ}†ÚÓ®l zäú>*XòrÜ-¨ð¿ô«H2½:NìÓ·xíL{ª3›×t`ü¥Â8ÄíÉ·5/ 27q,WV7©Í¢Ì'€khø±:}áXq†Ì6{…[§82¦‹ØURÎSdØJt­0Uˆyé®h%ãc²ˆ‡R»èÖ¼V$¹ó§Û‡>†!Ä¿œSnºÈ‹[À©ù¡àsSœ´ªÅ±ã˜fÀÌáàIÚoµ2_ç}UN¨¶ƒNE;D- õ…?ººJ¤ü@¯–vWAQ‡–ŸÚë'Ðüxõ„)E¥¥Ø]y\õÞ³ç„1âõÒ',ÌxVÿ©‡ØC-Ä^3ÏÓÅÿµÑo£à2pX1O¯' uðSkWçšÉù$&Ù=6…/cÆ£”T4;Îì»’ÜNÚ\rÆøŒ¡F4Cð\ß§\Iâ0a™”¥®ÉúƒW©p?€&*ZŠšD•Ò-¡Øi±í…bJëБÕÇÝ7‚›ÖX Ò®öë1:da j]?Þ¨N2n«ü¼=½Ëz#lõ5ØX*½”}N&ë˜ÁEÝê§= Õë㎷h§ÕúÕ¿?c&¬È#W#95GFÿô7‚?Ñ)xÞslÂÞÅeѱˆˆ¦rþæeñ];(¹’@Gb&°x®î>]Ô¥ug‹ºµ*¾09ž´j䥫ê¦á! xVkX3‚b<µÖ¥/»†³/Ý›yV¼D84q>µÔÍë¤%&½S.,:ÙTC;é'Ó2sâ)Ò•“óà 뢬?ä¶ßÑ“@­D[i÷'ÒÕ Ecôú©—bf%ß~Sv§4½>£¨Æ^}L`tß?îÓÜüè=ԡƈێ'n (öÓ8j¤¯Òª˜ÈðM@»h/ç“$±®Á¹j^LKG“XeÞxÈýñüŠÃµŒ)Ifãxàƒ"ûŸ‰‹qŠ[`ËšŽ…Åój?eñR÷¨#¸Dª†4ûk¬Ö­v+JÑz†.Í\œY:hš¼µv™.ÔEÜb´Ý6.S$ñ¼Âú&äÌú¯ú€t÷Ë(-ª ‘f2¨ÒR‚3»á° ¯d™7Üå´]dzؙe[•FoÎÏÊÔ£=²ù¼qKOKÁ¼cW#6/ü`F-:9C¾¦+cºËšáI·Õ­ö«ÏŰªò lÇ€dŒ+`˜2³{ª2eÍd¸1ŽEà÷lëÊ·‚c÷)GN.eÏ]«±èöûôMT¢Ê¹nƒÿ´ðD,~ïðã•-Ö—¸3!‹’xÈ,0•5f幺 ÛÇ`‹°?ÙvZg ƒNÉ%M×F~u£ï8\z“Å’ì˜9ùT€–¿``8‡Íi qDRÙ¦Ûí cYSõDÙó"õ›es¹Ù0ðw ¿YUû}[h„8©ÝTÌ$'ÈÑfà0e’ú¹+lYK&O?nlÕäE µóqÏ-Gþ“2wñÊe©´Æõ»BNDTí¥îÓ4Õw&{kÛEÔ$XØ®8Ê#|‡'«DfWxò”ûòL/‘L~¿B!ôåöõ±çûMÒ£BžU\±)T2†õœ¯C±2Æc•·5ÆI,óúò°‰q|è‚j2å–ç›ï0ýbVlZ—-IBÊËÇ>H$á <¤³iy×h‘“•|/°÷ =~½å#w.‘°—:'Œ„Ö¤±YG‘·ÄDÛj>ÄH·÷3›W&³„ÆTW Wï>:6!·0ÇŸp@ Ò& =ÖaäÅþÖè­83RjHdé{9xK5o –€ 0L„¶Öõ^ó*Y¬ˆ& ¤¦"­-»á¿¯Òxr–*ž£õ¢¸¡,»ID¥ÿúZ­¡¦Ô)Èwér!±BÚŽ$ÙåICÖ%%åúw\aöÌåþ!%øŸñäÎY"Õ~ŸÞôå)/¸Rü £îí‚Q(Uê¤õHðÃ(Nâë}Ìm¨ˆÐ/5Ú' á\SFªoûéŒK,7é½39Î)´6˜3~– ZT‹¢)È«öì&[õž-cªéx¿>™O6ßÊ­m¥d$ »IÒOÂEº%IK@OÆ©ÿ EPr´—^U×ç£ÊÅ¡_Ã˱æör[Ýxƒe’CQ”† m ¡Zä9á—+«w*†*׋ê³!Ì^žqʯZÕÍLƳ9ÛY£R/Ì®Ösí5i¦þ‡m –¿÷ù_KÚ~Ø3«=EeMTÈ£˜Ò|>çš·|¯>:2L Ösœ8–tJ ëè{Þ܈ÈÈ)•2Å”VæYI`Šà'ȵڳšU›™•!N³I.6°ôÚä¯Ä]'¹G“–l"<øÙõ…ù5ír§ÜC€>¬ƒ0<ªM8óUqp§Ž¢ÊBm´¼Þ«€â\n1‹ÏßRæ°»wzÑŒ‡É‚¿­Í1h~ qSL¥b j˜­lÁ¼’ƒäœÞ€Ÿ½ì馸mLˆ|—v9³“v–ª‹&D$¢(/<]G7ïy’Ìëâ€p <ñ#(sO£",Ún#ªÂmµ'œª+˜zÃÂŇðc¢x˜VØ}zK#ú³§ô%ë…ÞŽ÷(7íï–­AÚ®t X¦rÃý1p'Ò†ø;d–äx^V’ÿNõ—0é[’Ô 8UjfÔðwùÿŒi>öÇÉß-IÜcEt'ÙÖÖìì@<¦ó®CMsëøq¯þReïë“'Œ0Ì–›gYÌ ½ü6tHëéÑ‘ŒÑ¥uþ>ÌɆI)±â¬Y-¥§Hu-Ê(s½¼<Ý[ƒ*9G¢sbäOR|í~ñˆr;ìvŒ—SœÃqç7/Þ°Ðz™Ó,stûO®«nÅÓ®øTñç¹zP‹ìNg÷5Þ¸ÔÕ`¸¾bj¨Ñ†ü×Ìs…¦ê„ãi%Ô)Æ%…wЇ}£…,‚ãÏÚûbºgšMMn}ÊÂON˳_@J9ý²s¶àQçÓ…ñêh¨ÎpJáÃמ¾:úóŒe“Po‹MM2ò÷À1fiP‹ņ‹_“#Ù“î~+ü·Osç1;oõ·£q8 ÖºŠäÈxsÜšWDþk²ò#òõ:Õþܱ–ƒÐ“=Í;²òàz´AÛÁÙ¿­¢s0q=÷Hg X‘™WËßÀÄMƒ–Ök2ÒîåEÌó*º]õzÉ=]äöëÄgýµþÁ¿r›¯ðõ΃ôö\HìTŸéBr9¡µ"㜡²-zŽÁæ¨ê¡¸O¨é}:Œ Ÿ´3¯ËûðœgÔ«~ÊJHCÈ\8Þ;ÜŠ”WO„~ã/rg.õ“bºëÜËãKÉÏíb)w°í¬M!'{ÇÁDÍ? Nçjd»‰ë¡÷È,C yßípsv–ÐóñHë’ã-cA–øžc& •^1[r}*â8­ûñ¬f|ç™g§Ÿeì¦ç-Š6Tu1‹v–JQšRwlSYÖ–^cLqøJ›éHTWà€&Ñz€mH‡–ÁÕh! Ì–ç}ÁZ©Wt }/‡ÆfcéS1nÃy § ¤ö½‹7ßÈ®nSk¢˜àHï£Ö/ ñlÖÀ³ˆí¢8hŒZÝ'}ë_~ gœ _à.œG÷K½²<±-€íÜ'÷%HAò )9ehÿ`ßhı]e¨· LT­K¥ÔjˆoÇbÿA©ýV3WÛøÎ1/Âa+nc«m¿,A£?Eßf„ÓÜ-}é˜(œžŒ¶âô¹YdÏIk•fA𝾠'½½9í_ÕÅ~À‡[êíÙHªï 2âÏ”|Æôð,gÞ¿0aç—o–nóL, ˜5ùn3;®À}¢UNÑ’û‡3k=\1TÊt­ K”¥ncª£A&^Ž‹’Á_Éáw1[vŒ´ˆ hødrNº„“!âTeç°«³‡¯–y]ÇP8Äà;œ=cœ`èÇýÅ¢?–¾™&ÿãN+Íé÷”äØÐ}ºìóy®å‘yÝLÍO9ÅÖàu“p3š®¸w³üò·3"ÏóàS¾†åY³}"å‡f»5Wˆ'µfúÍÈž±å‡ŒóyZûË(E³ŽiÖLá8V'[ñœ} ºÉÜÑQv+óœ~KývR’lMÛzŽ3¬]Èžo!ÓïLçÞ暴«9BÐW”ê®8¼Ž~¨\ Œå¡ªžTDׂx°›ÿŸït¦=ºßd‰ÁúȽ|4¶˜HOîíi9Š»"KàB°,ŸŸ?üꬼ–Vªûúó©$K¨¦‡l%+¥ý™‘9¢ÎNùÍ’2„7¸òbåª\‹ì‚VðPÛ:ƒ=•—ZÎ*”eÕ±R>CJg­[=ÂÍ å\U7°Ã[,7aëÆ:9¬,´ŒÑVl/Üò.·ljolHë•Ò08íbЦ/˜åÞ:™ÃÛ*€C@QFÈà S€O“‘ÿúŠ}öÉßF˜ø÷°[Á¢8È?.2Ð<àœ÷âˆdÁérf¨ËMÿ û-–Èù–ú¶ðÿE} T}.¡n© "öÛ\žŸ ß2 ¯¡•á4Îb>k\àL#‰Ñª2£Œy×àÊ?4‡ÄäôÏ_ QJUNB–‹™‰0×d{äÒìx°Û´Ô’ºü6å×TOúþBêE¦‘4ùlÔ#†Â4©æúTîv5Ðñ~’²ŽpÖÚQp–uX()7Kï….–dˆRýp{@íïÚ0Ú•µ¢NIt + „€àê{`žoÃ38å9æž•¶²¼“EÀ”QX$U¬üÁÛ5ÆáNñâúõ:”8ొôK”]5õMÁÑœ©è;™IÐUYÐjâÉ™ÁµÈ½ ×EÄÉðA/›ú‡Â9žaö©g!séHhÍ#ýÝÿ²,­)€9´Ç'nË"€¯è>Âû\uè‡ò‡§ÅÁ0«¦6(ΟµµQϾO2{a†º¹¬xµ ú\ºüÉýý÷üe¡1`¸K!ð§sð ƒè´Ì©`Ñ)•ƒŒû:á;†çvÑqÅ ?A„pUR¶öÀ‹±â®KÁsí ö‚l•ñFŠ8,Šik?Ô4ýá2›ÅRi9â?*b !ft~7¤ËL¿ç¿1WsœoWÎcI0??j[(¨Ãaa:…rÖú¸²²Š:/†Õ½­Œ-g5ŸöàX¾T¥†wªU–Žºè®’½ÁèÚ{-~ÿµ¢ÒYÆ' *äaAék3Ö1Å`ÑïŒoËÝó2a_*—Óö`î#0ÇžKúMw uá ³sAä}4á–_’¥¯7;°åù ¼÷°.Ö,¾W\iš"¯£ ]#q~Ì^E±u_·xÅ@ͬ3 «ä|-t©¦ iĬµ…äSxCÞ}»ѤmEð¸êb¨Jŵ±qœ|(ÓiE›eÍ"GŽ c÷4`B{-϶¬IáÄ;ß©í+…º€Ö,‡ÿ,uJw˜é|ó+Û®¯ütóS]«I «ëBÊvǿˎ{Ë#X/#Ô¤_œ¿èTGJß„W‹Ë¥šl1müqʳ÷ÍOÓÓ:5t> œ&¹zíˆ×·U™,4ÿ–ëŠðù9gµ§A²R÷Ë¢f§ôþJõ;à"°Šièd8«nZÃÊ’Àe Æê\Ƨ”÷ýQX ]@&^€.—ó¡ƒ"é œ¡ F,£á÷J¦ì.–Ð$©!9H#7密gÀÝ¥u^n_&;@ðüŠ’ä{³Œä{¯#¿^õ-œv Pg9²RËiMkDRn$`’í»ïdý°K<`±Ðž_w­] rú6ëµ1cì8L”³Çln¤öù6°Ĩl—Xß/¦üb·Gb$ãÕZâÔÊoífq‚³œl":…›b(‘]?Q’>îWötŽãwÙNT@ƒMQDŸÒ¼­ë›q¶ý` z•zŒ_—¶éŠœÚþ?©òc¬³€ /ßmá¨tÍ2OÑÈoý‘ÞC“©àV}Ò’Åó¯€HˆÕ% HMº Ú°‚¼‚Ô*uŸ·óÅvŽ¥ø4;Ì$³´-„•±“˜83o[_õq]›\‰|ëXâÐàFôQ·Rfß-–¸ôL­ö³*Ìi/~}Ñ#ÕŠäMõ¶ª\ÏèïƒKäÕì^öM'æìó¿0•[ãŸ?í¶Áx¹ÏÇõ—9ònsȯá¡ 4,©¥øA˜i@Rµµ•Ä<ˆÒì2´fÒ›/±¶ò€»h¹NØ8Vb x• ¿šü¦Ôa÷ÛzÂ"¿OuCP^E ðX<ÎPü¯E¡Ë™Þ›4 dñ*bý§T‚2¼vYñ¸ÖsÉëXÕ0(^hÇIaþvu]§¡1ß0_Åûõ\ $™‘±3~÷æü[f™€÷³á‚*ù£l'ËCÙTN¨tj S)l"o5©Hc­[$Ñ=€ªÚÃK{œ˜Öɾ½.zªc¦ÿ>“HÖê¦xþÏ :55 c}E»Èç!Á^ù^·O»Qe!¬×¼bÒ¾¾±÷±ÿ‡J§ÌÍšdq´e™F2ñ©Q#$»Ñã¹³¶x®§-Ñ øl©1SÞû¼tÕV­år"hý5[J˜™“<ÚØ¦gzåÜ£›Iališ0Vñ›¬¤ciάNÙJwfNS*ݬHƒõµÃþ‰ ©Á”¯rÙV²¢f-`•·ÕÞ)ö-\ µ0¬û>[ï{”$D8î:Î4 ~R!dL$û‡ éw»¬Á±ä,OrsO‚ŠÈzÀß9â2ù’\¡¢íC/ü ·Çn:>y€›í0/5WÐPbÄÙ{ÃÑñÉ:n-ÃðåêÛ¼³1åzṪQâÞ Vp  Ýž¸6è ^­6 ÐùÛ”sp±”µ] ¿¸í®ò!YÚDzw}å\ Èw¶õ}„«ù,áW=MÂü§®Lxµ —åõ–ÜÿñéÉ‘¹ÈÚ§+6hÊ 4Â9ÄþéÀ€þ/±ŠQ€D€I’¡ƒª‰ÄJýr²9êµ±Lj2é£Ff ¨Ž¨vN•íG‚´¯ˆAž)x=‰ÕnN•ÓÜØAì&Ÿé†ÈÔ‚4õŠ{¨ßé9Ó`³“܈’j±Æ©çIf]ÜÂ&Upsò„hÎUòXwáDwqâËrk2[ûr‚'=«Od‚øÕ]ùÃ\ßiï›åe*`Í¿àÈõœÉ>Û Ð§¤"°dí¶¿¦¸êÄýhn-Z[F}ú¹KCs<­hFևт³N ¤y4ëen‡à6·fi@$«ñluŒîI§Tƒ…è0ev$òÅ5DÇGhʼwÌð£gž÷K|³‚H„¡U°©îÔI$ñCQuÉ(ÎéG­/ãØ·&;ùÚ' `G˜É'Òĉ ®û<߯d÷‡(Ö%ðšÊÅm5³)aºMÏ:õÚæFñçD~ y6¿2þœ'¯›-nÀ¸ô·€lÊóØp¼7δ¹|È&ÕΜ¨ D oÜèžÒä[‹“<¸$ÿòTÖró ŠõϘ£$Cü»6„æÀá?wf0C¹PÆ¿`/O ‰{Ö¹ 6al“¿v:‹[Ð_:)á “>‡6LðNÓ,1JÆsk²‰±gU[ºS˜ËxzžK Eý~Xl¿-ú3çÏ$ôÝUwúD³QÏ›_nSŽSÇ=PÔƒ{'K›¬ÔÉ1‘Ç}ºÆªÏÄ‘¾ÿÀe™Þ\pÇlïãÓ.[|@5pºAÒm¿šФ…¨-ß|Ö 6s±ÁìÆ4’–+h_è²} ™]%f©+°¬'+€ææóÞ¼¬2aMÿÀñ0þúÎÕ¯µ„D—l5×"äýp·;q/Äur~±[k©$€úr¡ÑÖ£±Ö¶ZJXï3«*Îç–Ýfê5›Û† ±Ó¢]±çØŠRgïpˆ÷j!£pD&ô°8~2€&ÉËñxÒß±¼l,8GÇ$”óÏ_Þ‰ ÆŠé£tä¦Gk^»þWJ_ u,úÕÒ‰kªÝoÇ<|^=ä•N_~›Ö6øÿqÓ;rÈ>¢Å«{‰ýزÔ9•åïŒq½Yˆ뮼iäÇPMP›Á‡qúvµ9NZ¿“ÚöTo<ÃÛG*.M‚Y­Ž¯%Û;mg–S§ÑdÀ4w_`ÚÏ`àÎð²¶á*ªÅ±ÎBèÛ Ú3¤cÐ:³6SLâL/‰Œø) 2[¼½uC¿ô~•šXhÖm¾™‹÷ê„LðÜ$ ˆ“HCÿ¯a,¸¢ÊΤª2O¢}²üÄ7Ýî9§9JàHû-Ï›_‰djˆ™cר‹J¢¼è†[‹7¬0T“*'ÍT?ã/ýs’óÙ<õµž ZêqŒ‡}„F4 …²š2_žhØè@?¯€8À}úŶÀ™äØk5€å"Ïspˆ{<;e.Úß7k<¸VØ›EWÇ,n¯Œ >;èC É~òÑŠZè>H)a(iÜ~‹S9ÇG+iŸèÿÒÜ#Ëâà¯'„|B”‰±×j[ ‡¾ï^M¡ÚÍðÄ3*ºkÕ°óÕ"ä Šcm3P&‡YƾúýåŒi[²>ÏNø–Òº¾|¼¸åø“ìsY¬@Æ(\ú21tE¸±r÷ÛYð½ðج+“M¸ù$ŠÜÀ ˽oËh²””˭_,@8ãµüèü®åŸêdLM½–‰Kq÷„©‰Æè\î¥a]QøÀs¾N¸±ÃîÛK`¯f¡)ë)ÙE¢KSå:E {óiüd$†¤þA·×IâÛ2Mùv 3YרZ³=ǘá'k&­•„.µV?hV".¯L VAA&<þ7K¼´¯ø$5ƒ ³°2†% ¡VBKéËŠpˆyPŸ¨C†XÓ´( "¢å8üŒ,ÐL—Áem¤.ž†ñÀ0NïÊ?IÊP8¶8”Ó¹û1a¿zÖ¦H#•KJm¦a~ªwvÝðÁPç Ù{ZZ»‡úóWx¼•¨ì¬š›SS,¼Þ³D6M¥a„¾–wCæ¤)Á <ò&ârþšðæ}–A…¸Ty\˜q÷ºe1Úk:ð(üÚÀ¢VÞsüÇEjmå}9PúmÎäÌɧÛÚeu"¬‘$r⋲™¡¤(…)F‹vI´Ø`JN7¯ß³ò«YãmãÙíä0X˜K°±€ìÍ€¥ÝKÁè>‡šf[ .þ,c±p‹xö«ïO¿¢ØÁ-3KåeÁóB<,êà‚ºQzeØ]}ÑjGÃeÇSY)8åS5QyŸûgNã}~ ã8Þö‘Þ XîŠoY¾8WpϹª{ŸNlí±•U½øÕ>XÚràñgœ Ž™œX¢ °é8¿ÖX•Z>相0¢öš­ä±"o)» ‡Í?´‹ås&á­ÚgNÌ{Ó&ÐQ‚É>Ï“DÆäHiQfçdô6>ú¹R½—ºy/m`Ý; yf!~É Š}ÒË`]i88Ï’?8Iᕞ¿ܧ L:°·×5ï#¹åÈ”ÎUëÇ©òáò䲿¦O°¯ÄÀƪEÁûéï­þpžZ[XSª{›+QqòuÛÏVœ@&ò¾Ýdê]]dÊNù[lñŠ c•‘ȃDÑÈ/°¯ÃÙ3ÚÓƒþâËéV``âÖ©—e±-³‚\° iÛ=s–„Ü©›:Çi(ã)è+@üßék„ýxßÝxªÿ#ø¤˜N\l…ˆòàË8c¢L–ÙM#ÊÌÖs±X¤â «á𬲟Hé個$|µ‘…T'ñÑW®QËân,àí…6[7k /“ú²ÝI£§ÕVWw=H®¾Õó–t’ž'Ü&ÁGaN°JKâ…‚%Û&¾åïmÝé…rÙkeP–¹,©>'} ‘ê5‹€Ëáô.s›d…íaÄ;>^d"‰OµM‘ùü4Çõ·ö%·ü3ŸŠÞÖîÅnUÞ¯6¶uYŽÆÅ7Å\T݈!'=I¢ð2&"’© ) 5›ì8Ñ3•’©8ÙG3Yî6$Ÿy¿^ëI´ lh© nNëÜo‹ £ÕìÌSz…»?7§CÃ4ùV÷5HãySýˆùxäÉ<0}ÜLg®Ix¤Àg¡Áìk TÎ*vNŲ“ŒÈ7« Ìâ«£/˯jw?ö4€ñ$/ó!ˆ¶]:=š¦yÙÎ{L2š}õPªµMGâ©/FL䯷pä 0¶€…W>C:L¸Æó¬þGu›A<ÖŒ=ÉÈ w.ŠÏК*O,°Lt²] hà)u¾"Ôí—3`MjYÒ0øH‹ý ÕŒ<6fa Œ€¤ŠOÿÙLôM(([óƒ=gПÄP¡Ç^- ÙÀÁ{«>±”^7½WÇšÒ¥Â+˜Eò“\HØ¿ˆ±¸X÷x)Ü/RR 1;*ê!¿%)ˆ†”bnB±7Q0é䥟)Ie&G®ÐI‚~ß÷ͺ¬ä¢>ÄÚÓLÎ= _8@°é­îŠÖoa© ï³ ywzd‰b“¥h™.åŸIðÁÁ_ß›?}È"†…83Æ­Û ¹Ý/þøÆ³sátËúB¾sBœKõ½ú}ÌÛ°¶`}db¸û†„ƒì®î£A;6ÃÆ…SÉè›ÿe_9J=j%mÞ‹˜ý¯À˜Å ¿’ Ï•Ì>4¾›Ô|”ü '±,6A :Þàúav;Î!É}¯ý2  ša‡ÚIg7ðîÑW±WO_|çõäÙ+Š¿ëÐΙñ^þ\\_7æÖÈEµ›(2pn¹¹ÏÅþÖŽËã!•½òƒÈûð{ƒ3rªì#ù‚ÀÆÁd PNg™¹ºA¿`x…²i $ýæeÙç߸ôÂS'øp£æŸÉ»Ò½:}È<Èd“:ç¯,ȳVgñë֌9qT}k×uÇk†‚"ãR¯yâOsZ^]ö÷U/‚¦ÃÏ*áBÏç–oΟó›fI |È «¹@ûLrFæ­[‘æ‰ί“VÝ™ö3QR8ÁÆËعVUüDr•da?ŠkÀÒ^°ëœy¾$ËdÆòñ“0Ò²@ê®î2á÷ªk¾Æï´ÙÔ NŽÄ™ô6™œÅ¸ —lN 8ׄgÏ—­û—Æ&ìøåç%„Í‘×Sœ«KFOظöä¨ä÷\,O#:·Ý.Êögâôá •Î8c¤>з!|Ð5뼎ēæcØ€«êxãô%4§3X®åÂ\Z%cÂt%« o©ü˜Äl’«ûW‡ªœ°6»‰ÝâHˆæ}t6±'ÆÐ;uSWýŵ 7™†'r²AÖ²™º,Þd µ[Û™¿êØ7ç×»è²álÌ^ý‡‚mBj_‹»7æÞßas¾öÓ|Dæ©e¹ e¨S1.r±±Ø¤ vš5í#å¿qž &Xh1ó's=r»yÊŒ—7Ù Úæ­Ç"ðÒþËv‹¸SåYçê&㎃{÷¶=ÂêQ±jæ‘éÛEpc±l'´X¾]î¯}ÝÑšàÂ(×÷„ ö––¦hNžw ]Žm§-¨fˆ)n[T¦½Àk ÒY±×SoþV­íDì˜'q]Âí–é9©·NäV{_NØ´ä6±h…““¯š¥æ €ïjz­XœWƒáïÞU ?|‚ÐŒ V"ÍîÆáJ’lâuÉU\œ{`Šæ3;ÓÄlRí/ÓŠW« ت¯§ß^ \í峡ó#Ú¬C™»­©£Bî ÕKð³·ªe×ïŠÌú‹dsˆ1w.¢xaï=·]ã¼î†Cô2S¯¬# ìi­ŒæÐ0Š-LüŒ‹IÄôCʼ…t×ûY±Œ+³;Ÿœ2Y¸üï1^ÀWÌtÅô±{ ‹>{P‘ ‡K©ßIwóJŽÓ€ºÖ?p…ú?]&8Z"0´g6’£‰Gn»*¸fÍûÍúbÏ“‰-ü­-%¾å>Þÿe]Å뻄°`rÚì(pŒÍÏ\ŒÊQk…&÷6ÑjdÔÜwŽø¢°ÛDÓŽK d–×—S¨àbÚ7¨Ó¼ŽZ ARÕd¾Û'1—ùñ›ÛÇ>bM•O‹ðƒù¼ŒÕDPÛѩ؆ŸqÌÿ@îRÿÉf¶—6ø"Ñõk_Ä*\§bô¸^)ô˜o½æƒ ˆÙ곓 |FF¬‹@\:1#É.>RAJ›á ”Šå\Yk·¯G¿Î.u^š×-‘ýâRÑ@†*0 wÞŒAd¼cVT«%ÏWó5¤æ"ÑeI)ËN7# ¬9”;ï\œ~4z1Ô.̬ ­µyÓ'ÌÚ¢™ •&˱l•>WÆu½Ð„q%²#ÔÖ"Ö~Ñ-Q°4*—F:ÅMeÃÕö-f­úÂn<Ú,©¹ …un»–µ†’Ü÷«¡ž¢«±<âù´Þ´!¾åQ-ps$Ë 8ZA³7b˜X‹ö¬È;¢¾{@½Sa±)hFa^©” ¶´ÅˆxœÊ³TãäätB÷¥.0<)0âÆw H¼\gAq9Á! H‹)ŽÁ*âTßË+Á¿¬îCh¶i,ÖÖe]—¯ ´Xÿ½§Y"Rÿ  …Ï}½Aðïr5v”nöBTQïè¶Ñ÷GLÈ<ëì€MÀþõ»<û©ó Sëþµ•¹›HŽK~èì+­#&òƒÀté_ü`ý{LBø‹,°Ô{xpK[‡D —Œÿxö?—tczVî…áþëbímjœKÔ«4”hÑÈ:SuÙ-d]%j~±TdDÀQ¤qò¸Ç:éÒYl™Eq°•æ$Ë\ÆÆ*—’ó+oÌ]œ7Aü‘†<Ο5wÑw…Që™ÛËàï}oðU…l׎Ç Äýv¶Uê¬Ru€z"_£_;I:ÿ|@üàTCÃï)LÏ¿·CÅ·,Cu¢€œÅ탥xH¼¸÷hþÃpe)Qò£+ù{@Ö~}ê¬åðÅ:ëMÝ՛˿歸?®â6™b’‡°%˜™rIeftÒ /Žf-žêÕ7q÷€P¢À1°ÈÃH/]ÿ™¼…{´×*˜Ç-j…ß;g%ã+Ɖd× Âþ§E"gPÈQ‹ÿž°9€³†—ϱ¦€-ì…u÷ìðu®õéÂ>RfÕÔÙ³U¨±„&˜Yž¦MöVÅ$á\~]Ј¢^÷…Ô4MX¹xØV[\), üž®â~§Í£Ÿš:f¯?û‚0;Ù=-¼°nFU;ÑÐiç!Çž|´3!BíØ[N“ £çG¯/ÊPt±îìý^FÄ–óÀ Ý8íéŠ/M+qq&8p–{UûçoÊãolkÊDÃ÷§&D‡À-Òw·™Hœ¾'¤z°5cBäHt&™r5=&]¿o[RpZ±™ÍtáÀã6PâO¥ÝÀ2¨qûÈÐÓg+¶íM.V”·Hnðò-‹Ø¼ª„ƒçúr+B°Ã íŽ °‘£Ü;dtJǾ4ê8tćú „f¬%Ó†,|ÛÍqW&¾êÌÞ’Àêíuäx囿1›óØ^$%v!`6 ×Ó‰ã+Q·£NK†žrv¥ËÃÉæ\zNý'f(óâÆOͧ˜ay©58›F ‡ ìd„ëá]ïqJ(U’—(”œô£ã”ÏŠD€H̘NJÞ„Ú~cƒˆažº(x•³ƒ)‹×x8JÎ4½lt9­4g»ð6Èv¡ ?eßloU5;JI½ÌÐçR ò\l;%H£…‹Ú~üÌÝ·øo¡ˆÕ²„Ò‹)•Ðß5ª%›ê}¡’Ò!DÖ#tËD/%£ùô&ãù°'®Ý:ÓÌóMJT|,î~ºAÂ,÷¹‰Ä°’ú0L.˜ï`¶Ö7Q¸Í‰)Y¥´ >CÊ—T?E®® b1˜‡7Ȧ®<wåw ¶Z<à2a«²XCü‚ò]1̇”·wÇäøt2‡¡3¿&ûÙ·^Ç)…€ê½ä Ú"ø åÃt&£kç†Áï7Þ¢<Ë÷A-ll8×'£xžÚ-œ½øEÈP“‚><¢Ô‡;1ѶÉ@bqU*êºG¶@€Chá,ípZòFì3_‘OÊ-¿ÇMÝ]“es·rVëÙêµ›€v‹EbUèÍ<é%ßNNaýÏ+¾ ƒ)Cò¬•õ¾H‘ÍXKï=ö‘›¯¤×úYâε.&|>óé<Z¹þ#axO×3)¾ygÌGÒ4p³–Ÿ€ž‘Ù§µ|Ýç/ÉXÂ¥%á@]nô‡v‘Ò¬ó ÿi]Üá¥` Ó˜"g-°L0¶.W6S۪„èö>9þ>­†%¨)FÍý‘’Ì+"F}Ê„[®ÙIu1wþ˜ M_Yós¹ zç&ÜÍTòæ°<ñ&Aµ€X<„k*;%÷›EdؼñÁ`a7«ˆãQ´Ïl ™Êl'„ÍÉÀ÷(((é1xa8ÙìÕZåÿˆ )#»Ã„Á9ËPç›aŽK9 B®›.f¥äE?é.^gÏz=džJ}|¡;emì`Ê6Å<ð­  Õì͸µ_ìÖcP ›öÙ›Hw3‘»D“L^ÔCONšÇ±NRuéål9hN#׌«€»/ËlÝbœƒúTÖÅ2¼U?ÖI.3iy¬Š)yœÞúª(bo¼ìÉ-77€Ž©À§T¦%#Vú–è?7ç·¿Ϲx4à¡èŽ953ªKk™zÉØofSÃÇû% –ê@-œCÔhaj$¢tåð$›ˆx~I™“8_iïÎñ*Á¼6ø{°XÐì¾ÖðÎn­Âd.iB–ò"à0Xü-éu}¶„–óŒ!*„è ¨ùzœ¿ú„žË5\m~_{î‚ðytb,¡:e‚×<3#O‡ºPiŠZ§Û—Ž“~0Oz¾t Qnæƒ2,RWu‰|ÇiíÏ2t~¡Jw¥6**Š£Ê ×0vcüéR}°Žñw¾®;Ÿü ªÆÿe\ÂìQ-!ÓÁ‹C“;»Ø0«tãa½WB†¹ðoò6è9躮t¡ `Vûv-xϵ÷+) 4Ø€{o3цá$è(›d®_Atí¡–RâlGû½Ú¢€LT¥køËñE“Ú~øÞEmí<-Æ>ïìc+&ÊZ ü8yRQxA©ÿªû®ê<bìô¿”žã²Ö‰Îð»r(uýO_:b„f‡)ôŸ¨ÖaýÔl̪ÖQæöW…?' )¥^Ió Æ¥—ׯi `²<{aˆÍ®;âÐ1otϹq Õl+—{W¾ªyDHÙN>ËÿN4÷R†hÚqeÁpmÓ.•²Vû ñ¾iüØ=r!ºRÿeÒ}–Ÿµl‚A¯è>Ë@ÿý🹹åTÉqØÔ*±C¦ží¯ w¢QP­h\°|µÉ¡§ŽÓÌ•c´î%ãߌ–©x’1Cwè`>ÆkD{¦7nJ§Yù÷u9DU@RFÆxý_)KYœÇ«§o#"‚%Á}*ÚÕ_¥ñµð}óaSB£”Mà=(sRy°)Ð9”;“»^ FQÔGëñœ¤æMΉð¡SjjžéØ µëyRd,ÅÊw‚ûš¦œsKHJÝÕÃ<´wóNÕùö+ݽ&¾TÁÒ ÁÊïbh8®Iå,´÷N6ì¬Âžª)–&À‡)Cl¡E°©bÔ)U[ý¯4CÈ£úš»×±.¨ž],è¥=Þ=MñyÆ -rUT¡V­ Ǽr^½[1Áçt(‘W8¤ 0ZP`@=£—ø3yî!¤+ö£åoO23ÚŽÌØˆB#”ÝÖB×b pá.5 û ɯ’˜ÏïZL$•5e•s¼À‹Ü:ÿ ÎfK«NÒwß“©íëZœ<°U{êKGƒƒ’Ç™k¥#ˆ3 ™°oI×±‰z²ŽÉ*Áï@€n‘_"z­³ÇSœuéUiiÞM|Í „ÿÍBÓ«ª°V ’ŸYØÚEÝš¨öG¨šDb/@_ê§øyýíjÌïÝkáÆv¦ylé—¶÷¾ðÅ-)÷êÇ`Xe'Ì01¦K½S£7Aëï#_—3ò³#Eó½ßá°Ä ’Òc*ä5q•ÚÔKR¤!=èòÑ¢~¦°4çí¶i¤>b}â­¾J£­íEHïG}Ê=c´ {ó˜æ;9 æý«ÆÕŠ«’8yÙéþ³ÖÖø=ŠÆ…J¸äÜPž¬‡à'€yý=&~vÜúƒ*™Q¨–n< Œ`y§%{RŸp´šØ}ÑÆLƄƜöw+Ølú»©Q#bü0‡F´&…(†â?&©³=E ÎLM QÇ~X¨b u2pЋ­¢Žøõ’ï¶ý‚É$¨s¤¬»ä¾3’·–±˜*«îËá ÉãðÜú—P ZÜ ŒÊÈ¿¬üðy *O6¢tämöü®Ù„€(àYÆ{™Ó¶ðé·”XjœÑ„ò vv$)?36ÕvÔµDk„Ì:÷” ÄþPÞþ¯sôVHŒÞÏiÔ³ÖC̱!‡­ëDõ³¯Y¶¯g+k³k¶C‰©eu•î/« ÂxœÐ*{PI^´â•m*ºÌa$I3«X°Só^£ëÁåpŠÛæ©=ALlÆÕ0ŠŒ‘Wh¦d¾(ßq…#%ÄáË“ìóŒCrK˜Â ¤‚º"°‰Tµ’äŸÎRyNPå8œG.`E{B½§ÑCpÉÿ|Ú'õ6Égʘ¿„ÿA}éΦCøG×Lz ¬Ïè¹ãÊbâ³´Ò™–û;’4çJå¸Î~抚ŵΠr6l”ªú´ B5•íÑÌbýêCBŒoìÒâ::`= _Ýí"É}7U™P«C¯¼A²;3Vµ:ô5Á „oe"Ú MÈíLE¸rõæ,­9NŠ€öWÞ;›,(Ö—Í$€)px³Qá.žĺ4åh»MâìÅáí;0Íæ3™UéÔV²Nάö#uϨN•³¿[|.JÏ#Ô½œtÓ^¤³¼©‡$¦mœWjÎÒ2&xôì@•ÉOøÐà›7T÷u%ÞѺo["ëÛ³¼¶ÂCš?M‘(O©Èd…}B ì×iÛÔüÂê¨Ã>#(=»H^B1gŠÕ3¡ã^J’ri‡]¿.}ªiÛ¦Á#f5çR[=²ìß:ÎñnN8ÁÕn \óS‘³% ½µQa}q-<gô±ƒ×BŒO”4a2Pø=Ÿ£RXµè­ØE˜½8©¹P{z+§WS®ý`÷CIãìZârîS©_>€"6U`·¸6âÙ µ äÓÛb)89Ûµ*Š´ ïþù¨«“’ÞŽÌ(FÒBÛµQÜ~EK¹|JRN[‰¬‡9¨¶Ô(]§ )é•¿ î:" ZÃaú§¥hcîùõX®­%lÖøþÏ7Y. OžˆsÆŠdQ¹>VIœñýð߀˵Æä:Áα *!¹ük¯·‡Ô¶†h æ˜Ï&²§T ðíB/O)8H·÷^;Ù¾n|‹Ü¯#ÛFãéI§k°oXñü¶;°h!y$ÔqN^'XhÌnfã`¦×W!÷‹ui˜yZuƒÔCÙ[óN”º¦z›œ::9Ò‡ŠÎ‚ѼÓQE=¶  °·ƒ…ç²&'Y¤“@'ÁZeŒÖ×s0ÒÄXm¨I|`Ub0 Wø°š´°M)¾‹TYS£ &qŸÆ¯#ó:]ù^Zìþçå¦Zwk•9Ò*ÙàÍwq¥ïës¹Î«˜¥å"ÿb®„˜D'gZòE.fzˆFbi_=¦á;æ³A˜EQÁ&oHññ ç7V|JõÔîíàœÀŽ2~ЀÏMò#¦$Ž¥:ÙúÀËECå°ãj"thŠ8†wTA-År8ËÀ¬.ʾ/þŠ ƒóî¯Ó{§0G×qÉŠ;«Ä¤O‰^]CÂXåm,§¦˜Ók&Éöý€L+Ùu§Æ„«Ü³‘gñ¹-5©“PV>iêÎ\lAÓë?NÎ&,UÁ4w-vïÊ$Ùúªá3ê„&èhZê„2–-ž¼{£æLù…Åí·”l“½9k?ðw•@+Eâ!ÀMf. 1¦)2üxÒ.jÆöy¨öh—ñ½²gr´ EmËchpÎ~NÞû€TTЬ¦^%ÖÈûzH7x;fÆ`§CuClùt'qg‚(ØÌ/CP…q= 4#é1šS1<þ`Á…5Wœ•ÏÓnèú¿ò©îaí!‹µ¼(ØãzìãI¼g]ÇÍ?l´J¢B>ÄJ±`‘…Ö1T6^oº!{N†xË;i׳ŸGˆáÿ y·°ušuÎ'A$èZlsr¿†@$ ^“7ͲìX­D,þnµ¨6äΤ¥²š‚çúàÍ´Tw­¬RCtvèM‚»»·êm@R¬sÝÇuÈý8²®í <ñ:Ù¢, oVk{¨Æ”¶ U0ñ¼îè1U4’ÅÑŠ}»&â;í„Ç>»÷âÞ.´i%mk e¥Ñyj³ÞÚM go””q£Äpâv€Ò¾ŠM‚Òo$ =k<Ð>p »õ+ù º1Î%">JV.¿¶Ô÷š£,˜R,WAR/æ¿ö¤^6úq‘´/þ@™ –aVÞ¦â÷ªqÄqŒÆOâùÌsµ ÿ /™™z¹œøµ½-÷s:èz1>IŸ,‰Oõ:˜O”‹„W«1£úŒg?â¦xr€ê îHþæN(ОR++4]^m’ÿUj«ü3J»Ô–ÅÔ‚Ÿ +šÒ]M'™XÏX+oßRDè’6.¦³À@ÑÚíÝzÌuCó>J3o´Úÿ“Աάøf;¡5ö´XÊ­æ¤ñ)üŸý~Š)®æÇ©&9u¹˜KÇ ¼õÇ„‰º§®z§ ½˜km•¶#—/7ë9î!uA¤Áï Ê¢9±ÑÎË›Ê` ü­uÅÈj#Ïw¬î.v¬‹Æ·Èñ±L`‹ø|r *@ ƒÚŽ=y®”•§&V C]']ù˜?þA<žÉS(å4Ø;÷™! ½æ¥Ù®ˆ{ &ZbÛ&ø KZ†ª‡n_FÈW³ fÅ2¨"’ª¥1Öà’;Ÿþ«C;žéѧì‹eSBŒã;Tó|.ƺ@Ë´}…Sµ·çťЏïj&nN5añ)˜Ÿ|Ž ŒZð ¦e¦#Ô3Êâ« T—ÇÝþ'ãÁðÑó'ñKÆ^ó4–Óâ£äOF ìål;ÎM@)š[÷F%lQù©¬Ö£Œi½KÓ&Ü ‹Üµ€.žžÀï Z‡Ù&IíµÂ¢0™~æ =}c§LTNe/[žŽÐMȽóÛ}‰+[“lÌ8€›Î0b‹YNÉAÊÏÞdSèäµ<á0°j# ö*¥\^AÙÆëN‘ÕÝ8U¨™¾g>|vW~›–FØ~¡Û#Ÿ” u y‹ù„u»Ž2þ](qÅ"]OìÝ. [Ýφɻe·9q~®¤Zïÿ‚|ïÏi´¶÷Ø'vGÁ3Cœ¬;¨Ì wR¼´Ù&÷TeZ<†(°l8í!Ë ¶L·ªØ Í~%}±ƒ¢ 2„ôA$ìqøŽ ’QÝLh"¨˜50W¦Úë.ŽËLã*3KÊ•;6wˆ>µð±PV=Õ㎵Î4ÈšœC ˜g¤yœg}âAàdhlÊl7^ÌòO¡]`˜~|¶ÓãˆÇŽ-}šãø»6ᵫdóVþñ¾§ˆ¤5ZÕúE%žQYŒp®GéÚƒ¦½É€K¥í1q’åË“gú€ûå±ÐB=i7'dí¶øH¡Ë=žKŒY“´€‡Áô"MËjq¿hrÌ¿€½ï3õ.ÊIä?gU¯Ÿª8Þª$¹µÛ\ž§e3—ðIbrâH„ñ‚x‚ŒHÒ„—4åùÝÌTµÆ)ÔèJY '‘ŽÍLSþÜÁžjúSmvsƒ¥ùð~c½Ëþõ³”Ím£ÕY Ðíæwošûös´ƒmâ+˜’·´šÁ (íŽ7‘ý¿VÏ?-® ´‘SÂÈN[ãg°C>S²ò%Ð9¥·Éš£c—RP"¹Šì“ÅÜ?ˆBw5‘1Ÿÿ~'·­ÀÍÕk ¿—sOD86%”£iC¥:3û™Œs$¾îÝ`@kãÜ™ ?¦d3ËB [}¨ÍÜJ»r…ýSs ÒKc$ßõ~Å4ùšÙÛÔôjÝZõr1Ö@•'n–ý¸ÅŸ­u9Ô[—ÏÞs<»¥ÛO«+@ä]±BHQÌY„è– “¼ª†¸æjßšýý|Oô6µçA1dhv|®d Ôî½,:EÀŒÏ?XdáⳌ(„¢ÒL¼Š!d~¬üüc^ÉŠ¢ø™*HVuõsóZvèwÚ{Iev‘Ƥ¥ %ðkæs“oax˲L~Ðà3ÄâÙ©´ÕfÒ‚ya‰ÎD'íhÞ–XÎ3syŽY¦F Nˆç—ͨ‚nc¨ñ6P‹¯ÂB’@¥®qï>*ˆjØÃic»á.ø—úê…Ê¢'3‚½sÇ8Èç÷znÛs?‚¹Iíy° êõ 9…•µú9ÜÊ;Ôj~ýB»0|N¹Óå½°Ö› 4õÂbE°2Éç6 ¥ÖlvVÄ ÕADI–.Pƒ¤È®m¬Û ÑX! áÓl4ͬOÆ|}<Sw[ŒrüÕ–²4Å{,_ô—úÁýæú$…¬S…~¹‚:¤ô¾6*FÛÂßši¯žoÍ£×cýËÇùÖ& ÖþRK–`¥zG.Yö9®µÌˆ£Ï”¯:¶”dbR/`ו“ãâÍÍPˆvb! ]=¿Eq`o:±}Ê |QöMÂד &&fBóÄI$ ”çT¸ôÀn£HðåѱNáÇõ‚yJÿªøèC|º%Š¡BìÙ57“/ Fœ¼3\S9x0†ÌÆÑ\7I S¤K³/F[áõ=žî–1%ÛÐZXÇÜ?NÁœ{ãgÁ›<»¡§‹èN¥uH¼zK§ ¿~OdÑY eµ©<‡%”MÐáëíÔÛ™(‘ª×µ%— ÆH“ý@ CÚ·§–tN†<é-j@²¯S?îÉ®~-’«CÐ~…VüKÞžú}Ûâ\t\Õ@ÕôV¸ì8á·ôʼnWEêÿ–*Õ­ÜüB²hà0¼1þ&÷¾,–5#ÓëL¢Ü͹ ÂÌZˆ'¬OQ—“ÁGžj ´2œ  ©B9X«<Ù ŒSR±UÀž—%BŸÝõÏWÍ„]'“©Z¥ÄÚ!þ pª4+CÊø,D¥&Ƕx–ðÉvWŠ×fÚ¸?å>ü¦¥ "Íæ¢¹=Й»z"!ù䂚Æd`Y6;˜·Ò™7|6[ÎÖØRsz3Æ„Î3#T‚þž?þœ—Ô L+®w<ܱr(ͦà½urXÊÓzÊÖ—h¢ì"p9â}sÈŪt“Ÿ9aîÐÛ_ÐæT!£‡m_’7”Jáµ%•aßq¥¾ø×ÜbjÅ9 ¯ógK²t^¡Ç2rJfyfa.:bš‰U' ¤ª2lðîš–Lm"¸Sã–q¸‚EXãërð@胷出ËWo<ŸuK²¦‡™4zÈmu& ŠB& ŠcœŒW0b¼È±‡Éhï0Ÿ;@‹ âU9Ö„,V%æø¾ ~àêð{‚SYE-~_}±áýñ/µ4w´Q.ìã›p[ªh¼ „³î¤Ü ë@NqÌ­ð'Z½KÒ³+_I=O“–Hõ±{]Ì8[çg|B±§òçÖÜLØïá²ûêr¼2Õ&Ù9§.Zxo%7,ëΔ1§o‹Šý"ùؼ ð¤Ý,°8¸Z+C?ÕÍé“ÒðÃT!Œdd ¬5šáG×þ`$•Ó %áú2ãO+ Ä4seí¯ðs®6úÞíçqÍxmùHèÕëå^  gÐõáUa¿oa©köM¼åˆ§º­Ì,`½ô’NÏ|³4yånW‰b{àœÕmgNÑ9”‚Q‚ºO·"f\;`ºÍ¯©È Éד>™{P`¿Õ÷=6À;ÂMÓ-Îýy¶*ÖºT޼ó«Ã?B×g"öëh›£¥ZO”$ó¯d¦ðcÞœKí>möŠúŒYUî8å[#cüÜåË™ÚæO¥}@1\*ÃÍ#2UÍÂ(YvrÏUÆwÖw9dÒ¸&c1ÌGÉ‚0ïØô%±$Øå úKP(êï$î=.”=KÄ–\›§»Tý“>®¶Ptp/yJy2ѼÄ2æÛ@^' Äü¶„÷Ž-Ug¼Ÿsè¹Çl:<'ï²O¡âü—á§L0ûˆÔàrmÐäˆJepõèòçu€¬´A½õ͉Óøw/nP˜ ~ob”­ö‘ª1T™àÇ îè:Š9¦Ö†Ð4W'3±Y#.F­¨?Ç^ŸÛÀõÓw§óÕ%WvÅi¾€ÎR©J¼ÎÇ$°m'Ê éxeÛDÒò8N­ªý"ðU‰$OXù`»e H¿ÏæXaYL[›Ã‹BÔhè»8n…qÅÖtãE–‘_/ý QÝûˆö$x_º`Hš °¯í‘|IÇÔµ´²•Ûx¸FðóP„úØ'Tþ|”Žº5ù$ï“û¸±+ñöÊ tªyi ¬±Ë™vC@ΕyRƒ™èkÐû”m'Ðë,ã–›†}5¤f÷©óx±œ3ç!Ã, „u$ü\hõr†?ÿ—ÌEËÜEå"6ºø蘄û²¯3>Ú:|-óß~.륣†=Ô÷)d-½kĤ¯c÷N–¾ÅT·ëâsß0u´:vîGÒh½(Ö¢þ*AS%d …¡oý„llô[¶fð×[†‘5ƒ´ŸJ'ÜŽ-[3qÞÀ¢uÿãÏ›&Má­÷ØŽa¢]roKžn?æ˜p'”ÅÕdfTÅèè¦7ÍfSçSHúX rÚ µâ\¨_G½¼dèêoV 3OûŽÝ&Ñ¥¶2;µ"ó÷\‚’ç‘›‰íƒ®¾º¯M²Îì„zžWlá" Y‚líá%»Ú‹`J%)\¢·´ñÊ!‡áÃ}/T‚™°b-FŽ‚Ò> Zš@­þ8~eO€/ƒô[QCëmõWøŽ,¾®ªúRSÐ,$¯ZXÊ™ ¾í%ç@h•:H¯ôôA–ajåQØ5ÎG^¤c,,›ï™Á~¿ëŒˆïQRÔ+Ûâ;`5ËÙL"â)˜¢ª¦lô6ŸUͶ_CŒâ±~õ÷ã"¨°eHjÌ>cˆ®ÞŸÍ… y .isÆeKWg#Öе׆¨Õ›í0FI+é‰ïÈ]ÂÛ˜7(d<%«Š€Rvº>-ºvÞ.¥_£¡ÍWI\nл¤éøI'Ù@)Ž¦Ý¤Îº\–Ž\ºkñ§0Ö½¢MŠë÷F…äWÝï=}<¡:"Õéœñ^iæög7º~}Ë Ç£uOíäôőˀLNÓ,Ü¥ƒ¿y^O‘™KkͳÆgP³+)ÞJéÛ…äZ¹ÊsóŠv˜ÊíbÄ­<_ZM>=ìÌŒá ¡Ðïú¡Òûúd¯z6“Ïæ÷‹8<ŸŒ÷’€LŒ2¯¿Û+o˜·.m¼ôáZ.CE>¾eÓ ¯èe²0ÏCÞa#ˆ#™oD¿ oEÆ()&]ÌØÊKÆEEk|Jy"ÃŒ¢¨0—¡d0b5@y/ÅŽ+t½ÒG4K9`<”©4MÕš5;ƒ`NzKjQû†±%Þr95c?©^ ÕF[…w¸w©*­þ¹ýü–UŒïR¡æyÏzí|Á©Ø¡ç¥…ô¦ìÅë÷Í9ì©Â.á¥ó‡c/šâ^Úï ¯búc&êM§zŸ¸|ÂÚ˜º]¹›| GH«u‹1ƒWªXì@]c§ûH¿·f9ÈÇuf©2Å“ðSˆ°î{ìÿ™‚ôîièQie†¥Twš-ÀD›VÑÎ6ÎUa-5-íó(~ìñp-]w—ÀŠ ÔJÉӼϾÁZŸ¼”Ÿ‚´ßPÙumç›Ýµ ²³0Uܵý]íN ô ðŽ‘´‡ƒ&£Ê(ól/¿Åš®âµ¾\­þ67pš ²5 ±Åk´J¥¯‹P€-©þœxCø3GÎ$ˆ¢îû¼Â´-j:ÌžÏ}Bp>áðïÕe˜ôvµAaÌRú­ýAºÔÔÚ‘S³‰ŽszÙ…ògÈÿÏ’PœÈI `` ?£èºf£/x¹2“~¿¥£{Ò6!¹£1ÆÅóçÀoþd­‰£mû†4ã¹"šbïvÔB®ôcQثäךDˆ(÷Å‘#¦Ndh©IA¤f¥^|“èD‚Ä·N»€éô.Ü,ë_þ”G«ó8kf5Ÿ ³èj Ӌ㮟Ê?¼V³£5%Ô°œOÊ”`¡RA!(«î«áLÎXÑMÅÿœŒýÙ3lÈÔX/[0pV¢œÃŸuÝÿõåÐ?¥Œ¿=xõéÎ m{ádƒ tEkA–QÙïžà/@t¹&áp’Cœ‚5ÞÖî£ü"ÿùޱô/Þ7<ò;²p®.<Ÿ3Øú‚Osã|'ïâõ¦M§2yí·ø<'˜i}ç»ÀðñçÉìâ×ü'M\ä/Ûa…ZS^ JJZúìÁIÑàÇ• g@d½Vx%jÛ1Ë«ò3]-£7®·¸­‚ÍM»ðq© ª?œeÍ-; …ª¨cût­ B8³0ÉT/òÛ‡nz[³•fÝ2Z)€v²I¡_¹#Î¥g/dQT¬\R‰Þ…BmoBò¾Õ©y\«ל µÙ…yó0àX‹cø1ÉY†èßg¤ÑïE-`Ur—§ÝäËc¼e5T›ßÿt^ !<„çÞåÍä×â$DùÕJ^ÿ™©‹%Ng¤¤>ʧ‡#¨[ª ïÞþÁ {&ó Ú!«ŒŠ×,¬¯®@¿–[^ÆôoI ãÿãÕÞK*ö-üfþÞñòéÍè;†UNÓî<7éJ*VÚ<‰Ê’šmëxq‚”öI ˆ×£’¿iE*ýBÂXàúL8«Èú´ h™ÂT=Yá¿hŦ,Ó êÒŠ8b¿ìT‡i𓡤Փp’y“#K ¢ÇŠ÷k†øzag¡À’׆ü5–éŠìÞ¹Kì–~döÝ‘Šmù=Ryêê)ý[¸Ê$|±¡Ø…‹©„4›@·fEäLÛÆŸBèë|ÏÊéè*IªÅ_÷¸u ÀEøÌt7´rå%”ÛHútØ’w·@›†ž²æ{-¡YáÎìâÛþüˆ±~X·tQ$Ý´;8³Â æ`‘.¬<&b‹ e'—#®ÒùæŒ?~xC:s}e0ò(­MÆHlð©I<ÝÁï6EïÄoÉP‡ßº[5Æ™žú›»ÏQÉÍX \åQé}™Þ³­€+;Ñ7²ì ~[$/PÛ¤OÿE“š‚tà/ù=Ã42}¡hÉÃ2?pì2ŽßÃ!Ð3­yž¹ñ¾ñV"mÑ쨲Á? ŠqÀŽ.8¿ö$¯%>ð.€-bÁ7KûÒ°åå·EH‡âh¬]¡ªf™oUX]ÿ>‹«…y±ã*¼nþ ƒ‰¿žÓAª¹ü{Òý8¥ Œ;K€PAØÛçè)µ„Ç©FACR³Ò*äµC¾ä~jÏå²`ûöªÝK}ÚE\®R¢rþ¨)û1í¸¹°k¾•dØ7•¢eüÔyxÎþ¥ó&Œ¯CÈUY\È"a¸Žbñy¹M†9Õ#¿ ƒ©ìf‹  §-ž>­1I†âj¨9min×C‘6ĉ"¦AbQ3sósy²’ó(þ@MÈ£›À¸A‹Î2î~vF/ AZ§KÃAAã£ê+j}€ë Ïn§= @/<¯ÇzíÒ‰ù* ÁEU"½Æ:Ì"$8–÷}]³X2°'Á„+7þµÝý¤ð§ò}*'û¬²›”‡0r®!LW±Ä&¥ÜÏá ’0IÖIôöÐ2u½ô¼Ç0\¥f¡¼EEé²…= ¶ôîä±M£ä |âõ(/gž¿Ì[ˆÒW‘0„VáÝÃöó ’mH¶=ªK•³Äâ.@¦ËÞ˜(.!fð÷þæq„©.Q8«€?#y¢W3$ÇõhXô@Í@øúkL”çÃ2Ø- KåÝÛÝ×Ïöˆ:GO~­Ñ«¤úÜ*+¶X*{JGqÌácÊÕr‰Ýç È›wꔄLΘ©‘63N½òc²ÐWûñ˜! Œõ…¢A_Æ¿é&ëÅÓ±ö4-Ì5¾²C;]QŸR‚{ ˆXPÀÊ9òƒü3¡Äl[¼m5TÞ_I3PÞ‡:3i ™]‘âjTüœžy>8š¹>"XÈ9aO7²wÕ[ÃN¦0i*BýÄ• A \Ƹlf-i1gªoà3<ü`&Ú7Í­ J=ç(w~½×xf9C?½¢üI";ú|Ïæ½“C˜iÑÇ+·$m°†~ŒÇóÂ|ê¸êF±ö3˜Ì5qBdŒá®(›hëýÝÿI6ÓkŠ–Œ¡Áív•ÀÖ u€V4nÎÕM¶æza–CóNs“û¢Ú3ÅQl•æÙF‰+µ |ÉœºcÂà±Âž5îZQ°:v®,¿àÓä°C³W¥ªÚ†šÚK£LA"±5ôˆ†Úk`Ë ‰ñ<%òw¤Y«vä<¯ÍLÃ)\SôtÀ8Æe9áíyN€šVþ*9¼›#VSu÷Ä™ÁÎ[”!ÈjJ} ;°§aPÏêtR7]Y¶uÃ>±Fwv´[q!"š‡>îG€Žñÿø?ÛJ•Ö`´¦¦¹uctú —M¡x Q.á­—†âV5›ªAG˜„zí\߿Эò§%JO¦,°çxz%uvÅ'&$ ‚Ä¡t–c irD+ÂêOUFØ1Ô¾DZCÉléf[9$†á™÷ *nä[«š~R#ŠÎ¡¾EaŠã2u Vf¼Ÿ3þ¦1bù7?§ß_7oÓÍjF²eA‹™6ÎÑ–•ÁUsÜmÔ¯Ð(ÿÁ›)}/oG[áƒ4DTRmb´rÛCRs›°ùYeÇ.PÀoV LøB_РÙA›æ68YÉú|ð˜Dl /Þ¨Ä9n $q"hŽzc °xDÅÜN?BòX†ˆ#’”¯â>2Ò{ž² Ž@o4¸”}U~vÇ·'p¸Ë9´öZܯF¼L…âêÜi@Ú~°ïíºª(A°(jkwsýgSI#lì[ä½ãê‹_uä#–<ñ‚ÓàU> é?ˆJ½=2Óù¤bÎq^M‰ÜlZ¢~½÷ë~þ -#Æ·ІòSaèl»Ì?*¾õÐÌáy*´Êø%ėƇ0¾ì…ìešægÓÒ…îw+Åp•þ;«HƒˆŸ¹˜ˆã²´v‚ éw»«¡…2½l °,Ê’Sõô`ZfÙ*”"ëŒÃã嵋ú±‚AB…q1gŸF¤_\¼ÓÄø#Oæ#yû=*:{9ïb6?N%#Ásr7Ïñ¦íp îoØj¹¨fÏÚ3 ñ<÷=&gçJöÎF™=‡ÖP´%L¢7wc9%ºÁ¸È³¾Ó1p^‚Ý(3Çÿ<õ±êÂG½Z$izÖ¤ñºÅÍç‡6'Û(äúB<8¸2®¶4ÖƒI14îÙÕ@žÜ9´+—Š_§ ŽlêFõžÔn•,ÃTl¾L¾vÚÝQç1lµôG§y¾’ù#×JPh%ÜZs¨?T;cdS戙×T´2‘ãHïQ%r×Å_âe¹0Gߨq{ Ú–iË¿›•E¾ƒ’‰«3ÌKV@í×’=ÔcÚüþ9Ú ´ ¿íµ°HúlåF¨JÖ—…@ðOÉ·v„š¦C€¯QV’›¹4IüU…¥&’STípÙÐ ‚ ,ï!Îè<|™-J9ï½µ"ƒæZ$gèS¨žNk³0söéîœFé1ÓËŸàƒÐ?P.}¿ Œ.¾Þðt²†Œ_'oŸDW™A²'¹2œ¸R52Ä·¹ßm(‰ÙÄÊæ?Ä™cûÀV¾0±D`ÆRöx¡‘Äú‡ŽçNÀô£YÛ¦õOÑ‘ß\²!ùا<§=¼ŠÞÜÛéSInܰ »šL§êJ®öƒR¥A­C!ò3À’Ê[°Aœ¡Uƒ®Ùýôb é\#»Ø‰Ý¸ìe­ã¼.:î8G·»Ú8wï€ mlP”k‚,PsL’àü}¿Ìw–š­ux9Z™3Ád©¿®Öô[\AF¾OˆS‹‹¾–„ïà½PǘkKfÅ@ØE7~EþëQLß¼«q?ht·už Ü‹‘Õ bŒ\‰G•Hvk…ï âˆR,[§¥§ØÖX:L«>éAÑ\š0z×ᨊJvß6t<ågúOÄ™3¯ß=†+‰F=Ç¥¼=aÃçº0OóWS¢rÁGÛB;Eàã©·@\2Ò‘Ù“DPËKŸëÞF´¢ª¿êlDTCOn²0ÅxÀ´m}r]o!oáàñ i³¾Ò¹CVþ¾ËX©a΂ÙgÜÌd§h^ˆCö _ŽBŠ!û})ú;þ¹•~üá÷ Ä;±ÔuþÂÕ\KLCêFÆxBüi¶Ç—PßZHÞjnµ4 |©]1|®$¯Ðƒ:Y1náÏV,Tu¯ÝFºpøÌì±áºâ¨dá´ß‹aý퉇XíN[³ñ œI^óZ6"¹—3†Ï˜ží¤Éh5—K^+™òŽ ¼ˆ:Zu¡½¶f²"ôea øâô›>–a|I˜+¶QøÞS'úU æ‘!•B]èaÀS‡3Ô)âÜ 4ëÓt)E"ZQ ÛZ;$»`(zUfzòuPjï ãFXF\ó»±½ù•dwú.ü.¿ÃvKWØÁŒÞåEæAžÔ×X‚îz2N²{®2VíE²%ëUØïT¬\&D¦7é+‘HM…fh†5·)UÔúéY7yB)Ûµ\$ò+÷Z¼a»ÏïL†¡;3¼óPМ„Ló«ƒ b£ÅZŸ£Qï|¸ä1ô3Z—Õ?ÊI‚âZ³¼¬¤«œ*3RJ(â¹ฒ.4_Zé–§í÷ù€»9s3#âDþ˜ÆŠ‹òjz©è¥Ã<>%«G=‘ºÕõ`,—~õ3ÇI4ûS ¬½»¢ð0k86ý~õWëÞïQu K†K3^¾þSZ5Ö»…)îú_ç3+]0]rø´¢V áva:½=vÎy1\üÐrò6s‹9ú jjØQ0d+ù[áß/ìk’B6N‡¶&ÔòVwUá§ðNÕä.ä»âk½³¹iuò¾»^Þ±ÄK©«B2¨«Ê’nºqf°º )ãO%Œ.¨JØ+Ófjªž×L¼íKÏî½µ»—¤ —èB¡6c;ô]ƒì¦ žëeÚ£X™Šâˆ,«˜Ïž¼[Ä©Ƹvü¢Œ˜8¾Æ á“uø6¡,q‚b¢RCÃØI2AòïÁ}ýô €äQJ ‹R+Nn•n+ÿv[qûwÎî,£{%óÓH´ﬔIå(Âõ2ÅGïeék ).匃ÆÑÖ¥SDQ8çAõúcŒçX'ãÊðJÂ,@ðPõdÔL¢lNE†Ã%ö²¾·T¡3;?f(Žef©|Y¡ë1œ°¥4‰Ô†–œIš¤p TÖå™Ì¦I„¬º”¿µdÜïpnr¼ím”¥Ž]”N™ÒýÅ—§—RU5UØËùÇœwÙ “â nÄa`ÞísËídxíû]¿’' Ñö³Ô¡¹¿;²M@çÌ†Š»,å²ÁE0¨ø3€ŽàK°ZL“ó¨ìŸAPùŽý±.§ÚãcÀŸXB85Ðv‹T´FQø¯aµ&ÕžP|~ßšääÚSU"Í›ðÙ£x\EÜÁten½o_¡ÛªÜV”]Av­˜{0 õ75«öFà 闠ÃMõz>DeÛTE•Ñê•)l…eÎ2Uï Ê$“=ÿ^6j¯®RÝÀþËË=CŽÓ =p6kÆ^Í{û‚sÞéÙ‘Ø@ܺàݥ׎wØ8Õ‘˜ˆVäÏ¿ÊJÌ Ü>¥`µ+UÄ!\­dÒiNüBPPVâ¥çýc¹,,ªÞOznlÝÌy…ƒÊœÇz“ ÿÌB˜Öö×ÝY…?åç»5Ôó”ÔçM Àxü¥Þs³©•ÚÌ¢:Þß)MÄ\nä¬àˆ£…}µ4ÁŒ·V7¿ÿj09ÙÈ€‘Œ|P¬“Ïûa༄“Z³Å¼Gj"£˜™ d(§!Â~ýìkø³Uö>®úu-„+ÞaÂÂX¹»×Þ|VF7›Å+^Ú™.Œ_’k¸:ç RæcOŽº¦ˆAËŽv3_a©«þpf—Ôûú™=ÿmKØsý¤MVHvðz\ô!E´GÍ£Qý¥KI¤U%`?[¢¶‡]¥:öÑÐ{_Øg?Í5à±8BŠ•ÒE¥“¼?™ðùƒ€æ ô:ÆÐ´%ê¾}m¿ØÛ‹áRóQC?ã±&Ìyߎ«#6M®?Ç—‰'é'4à:½¬SñÃèšØùèáªÅ½ Þ¢çvQZ¶Û*⻚K'¥ú؅Τć5˜p‰Á€äÓLšIý–P”¶D:6™&Ö|‡Í¦?àËJâ3ˆQ³¥X.üûòb÷&YBpÊ–4Q.Ȧó‡9ìnB»îFêK5ÅT #e÷ÙâÀ'ý¹‚vþ'—ÍÀQI…SüYÇV’áUèó¿¬Èñ˜Ù‹ø1Ãçïou!·¦¦M¨BÕwœÕ,v§ý¢'­Üñ¡-¸‚ë:Ea0%#eôB\v 1£ D!†¶9?ÎflÞ|ÁäA1 “fò“âWêä‘F„³tqÊ–³ÞH¦S<ÚBN×5ý[ƒ£*ÀaÏ=lhE<æ8ÿ¬iŽš·o¶x`â·0š’H÷þÁOèêgDÌ~ò¨bé¦?!'ÂÿS)8ÏìR˜çx£RùÇß/”ö`\¾cšû)lR ¯ÓUã”㑚`::­¤È“ köëª ‘è8ßSJ‡2^•:ONÂàÝq7å 8Ï—À,ˆË÷.ÌT±­îú¿—Ð2D´¶VvË $ÆA ~t|ùÎë.³'€¿ñ&»Š}[;DÊùç[d‚Åkî,hùøg^žkÜÙ“Y§@¦hý;Ñ©Ôïëœ%ç +3õ%=èy¤‚ÿw™,ÈwðxÑðpµAG?‚RãO©Î%RQCMÎÀF³N/Ó½P@ÐŽñ‰­Ì1D•áΗ»<§ÚÙÿ„áa‰»‘ù=êS¦° Äã“Ì}Çþ¸åÓQ-e/1›9ß}í~ˆ¥:ªãá(e_á—Ö—Û-× "¨Ÿ ƒV”ü*14Ü%§>dRÈM¡a9×) ¸c팪ŽÂ”êÂã‡ñlŽ8ðBן¹¬j„½2qPæ.I÷=¡š8˜æ$Òê°ÒáÒ~Xa®¾Ä@›Kíü³ï‰ä¥(NžÍÝ÷Ûv[¹á6—å&ð÷ë’@d8®Ì¿ÚÉSýú¶h9ç—ž˜ÎSâ}Ú*m“©@'ÆÉ_ʸœ@f° Ó°ú´íVzafhð[y (†ì7,÷¡ü4Î30ÿ^¯ŒxÂßš.s|0õ™×ÅÓR€VïÞ‡W½@r¨—<ÌøEU‘š^›ãråyx‰´Êjí` „[@ft÷ƒÛ±P/j¼«*A2ù}èÚƒ&¾IPñhÁÕšYL‡i@2\ËìNN*Îæ.;ÖÑQ·ºo½˜9`hc™TLS‹1 } ¶ûn†žQ1y9Æl÷o4`R°N¡ñ¢\?p±¨©)ˆnP«ÁYS]Ö¾†*? ?½1úÉ¢ë4cÎLê!@N³”V¤ÉuI„“H¿+c‚4 ê<µœûi¬PôÄEww¦îŽäñ$(e‡ÙÔó7•eàݵYåOL%#h1szˆL ;Íp5“Ÿ-r+ÎA6&Á€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/type1/n021003l.pfb0000644000076500001440000013171207056046552016413 0ustar fnevgenyusers€m%!PS-AdobeFont-1.0: NimbusRomNo9L-Regu 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman No9 L Regular) readonly def /FamilyName (Nimbus Roman No9 L) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusRomNo9L-Regu def /PaintType 0 def /WMode 0 def /FontBBox {-168 -281 1000 924} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def /UniqueID 5020931 def currentdict end currentfile eexec €5«é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠ>m³Ü˜4<œÒЛ¤1"%ö}Æ›ž¿gˆöë)n—+f]›r§iZ±O ÊuDößnH1I­“ QžDÆ23ön‹ÕaÎVÀhÀß×Rõ®Ì=D“»ÕRôÄG®‚1¿âþßaž]Lƽ$6¬¥ú§ì½—ªÂT|D¤ÿ²ŽŶãÕñ'{9¶Å?; 44Y;UFŸ‚78Ê„‘Ãð5ËtQqw,F¾Î†EÅy|"˜ÇŽx7Öù±‹¨mp(¨pš¡­äoÔÉØjÏÄ1µœ'öcíÌKKð¬ß‘¶÷húùóg³ˆB¯ŸÍ5lŶ÷Ý·@]/'E;˜žéºhìç2 ¥)L—wš´bq U§C*=I¾a¯›mè©È Àç Cå ¸7 ÉÒÞá7„Í ²÷àAŠq—^[i¥Z—UVvè#é@õ¥ææ{@A™¥ø®—AÒÕRqSùÍÀ޹Ù\MÝû HSóœm-?ýÂ_xn+*ŠH0ùåV׊.\ q8à|Õ©Âȧ¦!Ù(¦æÕÔÑë:äMJIpžÅc&$a3'ZQé;Pw~Ù5»> <>3ÔáM­ˆRAÈ”Ódù$ÿÁ¸áJ_G‡ÖkDAíƒbÀDm J‰¼|Jl8Eå0«Ú®Œ)Ó—8ÞK®ZÆb4#¥sz×VQlóa¼BÛÂ*íyõŸ%Ь·‰„a÷G•k¸eîµ]Ôô‹®uÿwˆQß¿÷›;å‘~Ûtç®l3BRèÝ^‡¾ÓûÜ ù[x‘%( ð¸Èg³W›œÛH׃|iÓa&¸¼Ž0ìi+ËbêÁ‚±ÿÅqxÝ;‰ßÕ~öE^L½LîÐb™ž?ïã”l¨7°‡¸@ÃæREêÄz‡  D°èNè…Ðý§H=¢ûÐ͹,»¤i1Zo2^mËeœßœøÙ£æò.=:;϶]±¡FЊ¢`«ÎgVÊØìëa;=^v 9H6»© S±@»³$ù>d©ýŠú˜ž¸º CRV3ç›É›uyø}T~¬Äô¶œŠü$ #³‚% ÛäaþÄÂæ}9²NÀx¹|Cç©ê€È{eãPNï„•Š(/¢F÷Ö !à]&$° Ÿbq+ŠYÌÓø™Ú^n1Œ£Ûë#<ð?Û øƒ¹ |ŽÑ§¢­x×áºóýòÕþƒñBnâìóýÜœUaÏy= ÔXë4ÑT}’C£®³1ÌØÅ©Iûµ)ñWS6ïfüò@)ã½Ò–B°a%\“ìÙJžOo šæœ–¨¾¥ôŒ`ãpuFf²øew†¹ågû7è÷ îô>Ì%» Nç «|,(X Ö9 Ëù|lÅáÉgáá€Êú] ±ÆRóý³Ñ¨Ç¸)ç·&<àtk–ïæýFÌ FI›cW”ŸU G•è´é¤F8ÉÑà“Yš°5£ÙãUÞ8n*rû•(ónyÓ²·hvƒ!ôõ—cpæR3·hÖxC.©a1èÖÕèòßi0;)Ð'^ùU9 ²ê¿'nÌày€“Suùc°òØ GHç(Fº$È—$ŸÆ•vÍ+8‘ëiîÞ% ÅŒŸí+Þ­Ä U;(Y8Íe/ÛYô~£¯¿ Øó‘Ë’Ýa J¢¡²Î£dü*EQW±ÉÐ5Üù¹A¥ÏºŸeçmh(ì„ÒuÀþg^Æãp¹O¥ÅµÕ9KÇÙ^ù&äc`ÝŰbvhL-eIPz½áÃz¤ì‘s©ËQ‡î×á:T„/zæîJûP¸OüƒmZ[‰>ª¹ŠéútQ%õZË~ꪃŽ®ièU¶êª ˜ÜSÝs³ 0~‹ú3‚)Éó»VÐ<Útk¥®¥òTb´rÒÃÆ~qؾ+r~v¸µ~L(¤¡wÜ×ÓuÍtžÊè)ùŸ‡iUÆ¢ÅjÕÛÓ1ÉôY%¿RpjÒ`S&!ñÁ±šÇËsdti¶å_.»£õëoôAf€¬«µ м–ö ³1j”SpÏ¢;9´…¡vB£Ÿ_d4ÉÇ ¤ê£f"Ò1h“ a(R„þ¼ygKO̶b’o4ÿalžHµ@€„wDÁNÚ<ðšB¤@À<îöDíǨ—â**2”ÿ0TštËym£• »nËzüÕªãO‰„nZßwFZ_›Òäû-H(ðejKåbñ^c Ëû‹TÿÚÊÀû´´‹Üë)Ñ„ªš_ Ëá! …iįœ÷ØUÍú§›eÛD$§5=š6júv̦=ÜùŒ†î]!ÛÓMà º¨¿ÊcC—r<`Mù¢È+˜•~xx”ÛAþ7‰›ÍœiDË 4!¤ù¥©Y¡O^Éã%Ù4˜¯°•߬½ñÒù}¼ÝK„U@3‚öG£ÍLÜÍutªã°3ákÎÌœ¹övPÎzq}±_|pþ†Üæ°RXÚî·It{?@‚(W­O°:’ݸö1G C‘µ UôšmhmíQ£Ç<Û[¼¨ÈH–0 ¥±)EsM¹¹rpÍèˆø‰gÏ‚ÅGÎêÿ+5¤X³BkˆÓK^ÙðÒä„­öHDø âW}!€köfðšÚÇ>þ×Ax檔ª;ü{îsÒ.¯ÔÓ'ÇWÛì€×º-›è`YÃÃqÐ)ñÕãü2B-sÖ{e„v¶“wS”Õžï€kÕ?B»ê¬´oªov8j ·7½7&ósKÓ[›M–2¹{¬q²š®Oüƒ©3ߥ«ª>žV OîGr;]8 îQøñ¶× ÿ æ»ßÉ´þ½ &Ú;œi>2ÊTCÙ†T÷ ŠÛýÑ¥›ô§áպؙõL6²5)øì¥û˜ÇW‡§Ù92åÑÝõŒš™•بìâ·7H'®–kÕ‡/íÚxE$à»^À&€Ø4±€ëU—)ºûPøç¹òa³”­mxåÙ¢ÀµËEp¸Ïc9’Ý»EêÉœeœÊÛ6lÐ(:k»›ýñlä˜Lâ\+¶j(}+©*læ½D†2~{æ¢;AñiîK‡¤p ÕÔ¤cÎõ‹ßhó-gžïpè…q¬}éúÆÔeR8`IÕšã©#æ,Û;˜L=Èx’SVðöï?io»¦æí‰½PÀž| µ}¶Í>®B”ï‹B‹Ä­Ë°0júÀKÍ,íô`xgY‰t”Ì 3(`Mæ‡o,+Ø’nƒ)»^ÕB 8œ—å»\ÏÄDS{ã"ì³ÇÕ‰±Ïvø ½ÏX>ûáÿ8V,+­Sz[V=6ñü©SR4j–ÒâæÏ7”šï?†1@»¦Ê•’òÒ?ë—Mo#¹6×èúrÀÜ÷NgÅœScć{f˜ð!Ü 'Í™¬}tŒð†•£ª?:ˆßVøß©ôvŸœhlUd?亞¡5O>¢«=š7tMîx‡Tà ðuœJéZ0⪚˜ Ñg"vÏÜì‘IB±å³‹Ó†à¨³ä¤ Âʼîâzmk’:ãK‚¼ü×s;Mh`Át!n§>ð6&Ìú6›V@Â=v¦Îè8e“,«ó&,‹pkš·å…–ÊtÉ·é£  &Ÿ³…†°Fè”__ãô–§ 1ÕVkhõ*R©æ)z´s¢ƒ¤KÇÉájMÅñ°<Ú>áM½‹r°…y! ²_ØìýkÒsç}üîRâÀ« ]ܧ–"ù&6c¸“_HîgGðiQes$« N†ô›ËA`¬êš¦6Z+z.òÅÔt}rwv9º$lª(ª<(§kù™æ¨;þJÆøHë*Xp‰®nÔtfp¬bê, ž!;¤{m(êÙŠñgi/­[?ŽD$’ç¨-ð  :zð†õ^Cµ¥jP/)2žÊärÛ–=¼‰¢81!H+w'‹òJQë,®õºAÑt¸Z<‰Ü¸ ][Ë…q—¯†7A0à空B^±Ïm¿‡0ò¤« ®ùd.í¼WÜO…Øi1%sAî€C!ŽwÛ”&´ƒÙ?ñÂȱ§­â’ñžý[¶tA6Ë­#unÁétY½Åkt™'€pºËt·«’§¨g™Çå³.pã ê8ög©Áz³ãܬ¾Bž¿!i¨ .{ ɸ$zz>á¢= bnna„}ÙgŸ”VÍ~ËqXžª*ìRã¤øÇÔr >¡6ø%k}Ì ª.$5ð3.æâ·S‚Æ@ýš¢d†|3í¶êFÎ%†)­¯“$µ&«·WŒ)Àóÿƒ³å%tò¼”–Ö5ÀZÒ­¤Ð¨K ƒ2À«‘à CÜBúÿ ç${çÎ~rÁkv´c&»ãÙz¼P™ç:º„sà:Êz+®!#fŠdxÒµOU>Ü$ñ<›’¨‹öwã`%¸AC^Áý"ãÝ/’óÖz4÷§œ+}S,Æ;Æd›2ï0sw«ÂÛ0±²AÞP0^jœ¹ÒOÝ…Ÿ¸H½zQ2)y…vûsê–þò‚Å\­¶úÉža¢ öD‡›f78é±~øp.”rZQ¿Ù™ŽvBèÆüö ʇ-_Iú Ëþ…4ù¦Òš¶18ã: ¼„ë¦é„]ÔAT]Ñ욦)x¯ÓLMÓ™ÊQv+Qú¶˜Bö‹ì¶š­Ô½< z”¿’Màø´Ç_ë}Îät y«)5 /êv[håž¿ê“xG¢ˆî%°›I³¨»&‡ Öì®Öó±8'2ú®ÐBu´žá|gMýíN‚˜³ý!ÑþG×ÐVÃ(sdU¼Ñ2IpI;Û_POi|¬Æð÷Á*8†æ%ýX‚>¹Ióm?“U{Ýû{°'õÊØås•»Š%|•Û¹”ሎýàÇ¡,À0DÅHFF2zü¦ÓÖˆ+õèróô”9‹ˆPøùž¤uèÍ &î˜ß×H–Ž€¥k(Î_}ï6 $…å—Ë©Â5•ÝáÃË•ùl¤G£IÏæªÓ™@Wó9©ÿIÌÑm‘<+e?FëjÔ:íŽHGdjˆB{Ưaê€7‰x›®#‰‹vH$žre|ˆPn—æcý†êpe „—˜u|«Cýl—3­} Þ6¹Æ¤wpEU^B™~…ߦî&Ï €$â•—IæÐ,­!i0*‹JÓöˆ UHä.µP^º° ì¢#=t0ÖR§<÷‰x~ݪjd¯Q1LåÌÔúåzoYÜŠòYYGRú.9¥Ž¦4v@£Oí ½…¼Rüv%ž%† >ŒE彩Ãùû•Æ6áB÷„XWXlãP¼L„ɰçÃfÊoQʺ¯o–tu:j—1Ô¤“úµ¿TJÆðéý=cÎÍ7Y‘JÏœY =Aú¢GÊÅ÷\d xc.)“cxúÖŸSÅG{¾z>À”϶´Ñ‹ç/F'Å“'>©¬GDúðó#"rשÁ1#j"›¨/Á§ÂU¨' 9\™B]Z>Y¦—>ˆ¿z×C:S©;PŒ™ÕÝØ«û`õt×Ú:¯†0‘†êµºÃ—Xzm©í.¦cJ¯Ê4vgQ¾ƒØa9Ë*-½¼å~ÿÅ$8žˆö·žº³ÑÔôK+¨du#/ø/D…YWb$ÒD,ÕÚhù’´t¤„EÄnT}ÿ¯¥ùŒÝµ~qñê›–1"¡«9(¿pk-…Õ¸,ÿn¼Ô6Kv‡ÂrSÐ]^tÔˆÎaŸÁ ¿½ÏNí£?Vù–~C•„¿²tÄÒ)štòA wW¤¼|gK„ÊEêNßdKø‰ËÂÏ\‚²[yzÞàŸô‡JœŒ,n ¾=åNÄž¨Ûn Çi9é“€n±ŽM¥õ­¯¼„¾HI­9yÒôªÆ×9Ê~.4'©/œàËí{ÕÁþÿ8/§J_Ý+ç¨âô ™Ð{ØæÈIø¿¹ûyž«ƒ9ö…EDpü±9ÉØc¯‚Fƒ‹h°i IÊökñC?FDžä³%ž'‰ítËñcda;I;t_—3“kKVŽaV³kOï &Q‹àõ¬†í,¶àv×W$©dŸÐ ÀŸé3e³HÀfä’Çñ "_^–“ŽhüŽ£=¯¨Ÿë³|)öÿ6ùÅ)ï2”;ñÃÌÒ.$H‚‰æ¸k®ýwªaÊâÅt‡¿ úbüàž¸Zø°0_¾²ýˆÆšÅá¿Ëç/ÍZ:ø*Èq¹K¬ŽO1¸øŸßrU±Ö“T÷M¶˜D*N¡ØVõ¾h!“æ +_+ÕÃ?Ñ„œýÇÈ®üÒÊCrŒ#€×Ýc¹3†UR¶¹ù˜uÕ§7Ö‚Çã/R§•±Žý O(—’aï5¡êµ~=”–%aõ†„©ã¹Éæ®—ZÃj¹„¼*(Œ¶'ÈÎÐAü•ŽznëL).ƒŸÏ—‘cËmµ °nØ6ZWµ0Áqðp,ÍŠ”|§gŒ 䟮üE®áçQnŠŽ–5=ø¿C¯º·2­!謤o’pŒé +§L}Ër†-‡®å9ÁõP)¹Å÷ ™\aÑcƒ¦çÇK?|Áߟ1Ê€ÑNØ0¶ôzu'i? Ì í„$âØËý—ýÇ•îk|:TKA;§J-Ú€6ZthCr7gy²íF]MK7æå"6upÌ·žM:»§ 2ñ‹)¸˜ ŸXµ‘³ÑÿÙ콜;`•ë4ÑYÕÛ a„&gí^Á.8Î?b\W¼/Èå!2W‹jÇ&oï‚9ÌÝMFª§®–§hÐóÙ°eÎɤfT8á¢íp“ Ä=+˜iËÁwN£­Ê}ɶ"JÙœkR˜ ›kÊYý®_â_—Ç…÷€Ö£˜ ùé-ï¦aÞÿrhXÑ7èí! L4ÑŽ“ÿe㣿77u|°õ-‘Eñ¡“Æå!j5bT¶\r^<û8ϲ “Á¥;ıi#=Q½!KÓ±£/æåÐtJs¤Ø<Ó嚘ÑÚNȘk Óù•RRRÔDùÐÔ}‚æRYÊXq‹ÓX™÷¦äÕrÉ–øö&ß*œ›¸û+–…W;Ú2Mk·"AOaÑ1´Ò¥æ ˜ Âÿð@PÌñf¯…é )@·ýæŒPXV3øžw?PºÎê:eg°É ½Ëeã¼ô_rE‹Q¦tÄÓr>í™ãg»ó!-ƒíµŽ¤\ì*û²Ýµœx/½¶ËØEJüªÙÔ³•ÅÛf§+SH4˜«ÖPsý‚,²6MÅR,|ªÐÛ8Y›~«xú‡ŽÝ‡I2Ü¿rµ<):ùÑ\²1z< ëм¤÷¯.ùíZà »…“'mR¨ºó˜ƒ®&a)îcî)©ý‡l˜ªx›_gBæ _°$ʤ¿îÒ¾ÆÑ˜“)–%OuZC¾³iØ ÒcÐÄ3c¦@üÖÙ³!…Ûš¿áTóWº<C¸tÏ·ÞqKèñF™“~Åæa™ö« ¸ÇJ'£sK²«Z.À“F߇‘HE`Zcô,†}-ÉÒæ£â“š°P}$ %wBwb­›Hìœ,ït;á×$²®&bJøë0Ï9•2íw‹©ê7Aí[k^7†ÐkDéÔG7…ÊuªßyÍÇG›Ö«ÆÑ 1†<;5o+ÔY¿w¢.—Ðç³(Ü-û& 9Z#–è+Õ¤£8ž<¢¢ðS=דGŠ›wÐ@G&bÕ-t„ÏBIíÊ´¹#ÒÙR…„o©Žû›¿†¶ )‡T’¬ Aí¹ìQ"YU­*1)BÁ’ø-ÙHLÚ ²oÈ–j)^i¤­÷nÐl…ŸÝ­ØÛTAZȳjP¢ÿuÕád´Qz“éws÷¤V ,ZÓKz6CK$µ˜-e7e1DM­§tÆF4w:"@üϦCKåî¡$ü/€&‹ƒ]<—ndÂN‹+±Æõñ ]…u™}kŠáb"‡-ÞâúžEˇ#ÔÖplÌ@5²ó×3Ór–Îá£kÑ,ŽëÆwÖÃüß5î¥àSö‰?m¤J÷ä?C¯½ÃÆÚr.Ï}±LÔMÜ*ú7»Tį°†+὜¾©`\¹µvô |–7Ó¤š^6¸O·ÌûycàL»uá"GNt_pìŸÔB½`,ø+OW)SŸJa–°œ·þJÑnyý›£t…°œ¦ž§ß¯OEý,1É)Ï­ë7 7 sAd‘‚Ë9Øø„Éxä,½Ï1–¹ˆ3ßÂRTQ¼ Þ¥nPåë‡Iü€¶cÑctuY¨³„?Eré×±TÒ…=.U÷t…T}W¹î³«Ë8ÀpDÈ:2§4:¥wÛ\Dh"NÄ5—È'ÑÎdƒÅ”ý~?ªh‹²XÏFwZ#÷9Àï“h{RJ9h)ñý[\¢š~s*ì´-ù™¡/S䡈›TÜÉ«*J$'j,š+Áiù*‰xu³YLìÏq¸¤LË·þGÔ¢!uñ £4_~nµ} Œ:,Ì¢d?Ð}n7'ÜG à¼bÙ¢°Ôóõ”ãc,w½Ç’XG3H¼ Žÿ¨D=–ƒ!¨Â Û{Ó|ª®ÛU+\ü©D¢-BGQáQ[gPLÙ]ÕÆM!¿Cj†@èí$ŽÏËCv² }ç•rw¯Æ7[ÁS®©ìÑ0xÐ*©¯Žëc^»’éÃLF¾o+˜w×H Ü ºr–¼„³éê`]Æ®Á:ó‡Ðò¹×±·àözUíM"6fû»«éAÄòÄmˆcú/mgx\±ÒßøÂ2ÑS•È]ÆŒú'ýT%‰9ÐÃJÌF'Cô x¼ð_ºñG¿›‡!kÏÖDVŒP!¯€WxiLÒïúLÍ}/±_£yÂÃBebϦ¬q°Û™å@Æ7§è/û®0èÀ­L°_Ź!å_®œ%%#§²§š¾š(ŽÌoð¯=Oêêz “¸<ƒÌ­½r£Œtp…D•YXÄðù)’¢“Ϭü<‡eÃD.¸Ê°ørÝïrb3(ÑVï9o6¯.tcHÙÛ"D" ?'­'l~¾›Îæ~hgãœV¶ÌˆÀ}®ª9¢\`¯ïeƨVu|_ŽJè¢ò;ÐnË8¯y©Þ;_°Îý±*¹YéÉFQâϬ+è†ÙÙ'Pã…G`Iv´*D&ô³Žó¡Ý#ª”Ôlší—y#ü£é„˜-r¸ûùœSI¨hÄÿÄXEÖFkô$#/ò˜ÊPÿSÊþ,‘$l"6´ò´¿¼aˆv$Ü#xØMÅÓysâü„L‡Å‹åYÐ`¶ðMÍ<וñi;µÍÉ_?¸kŒea’Y/ÐE»ý ·ªÖ‘9á­ 7¥u.ZÐRz•\X@çÏ HÆPùç !4¯÷Vÿ&Eu”Æo.¹ä°,gî¶Êu¶©7܆Co¡$NcÖ¦(¼ÙÕƒ>-öÝê¦ðm^&,PïÓLNð[A±HF”’÷Þ“3Á·v#ÐG/7€Üšóø9H‚@Ñ`¹ýÕ8öXƒÕq~æ'G6 ÀÆb`E‚wò²…S_ŒgåßR+É|´‰ø;<­Y–,H$$Pá ëñÄP6Û‡†pM/t“€íoØÒÿéÙw]ÝX}ÜŒò·¡ zÂf+›ø³ÿrŠ+ü7šH¢Ê±à¤Ç…MØÿŒø'þ,Ïý³›ž³W lÖ~%óN®Î툅Resºâ-•ÑÅÜ=PI1á½rþ?ù=µ÷©H×c—Š)0¦ãÍ*Î_êV)X9•-÷!YØkî„›ãÕ–C*1í~ж6D„'HäFw3týNQbÂϲ|Û²C ·”\ªÛŽb£l‡Ÿàµ-;a~ åaÌΟûã{d•r;É<8€ ¦ËQo‚Ï#©«—Ë©t=„~CÅZS|6uÎÆêášaY‰ã®+t%]ìîožŸÍe›‚þÃÃb‡Dó”K»N $T›ÎÜå°ˆC®ß—5wÿrmLý*›dåk±s ž;˜¯Ù ÙÁê([Ãîù`-Öfó??ÑXàéÛæq1ȹxLû³Ÿ+;½Žž:?„Îî×ö"tT ^ Œh‘ï*~=ëSVaëßšz˜ó]k™ò=(ª8yÊ[šN P¥—M-/ðãYêdÙ슲ÊR³)‚ÎX.|jkL·´)­W¯Ï”ã;o'Ë àcMižl§ôêth›.ÃßA‘bwdŒNˆÜð(8¬$B4䯰êVP|=C zí¿ÍjÕà¹P¢ åMøá³Pá<¯ã2:†§/X{©¡MLWeÄ­¼´Ã‹—ûó+xÅLq‹+7÷@*hw††çÊ Í€[­%BÐí”Ûî¦NùzwCio‚5 b"òÁúZàS©+•´€<@¾u+Y_T:¹Ãˆµ!£QÇúÖFìÐ΃Ù.®êÈ<øEiñ† +} 1ã…ò“—ªˆ lÅ¬Ø å_æþ‰òK"F•Þý_ã¢Ìd ò²ú®Pé¤6 }©’×øÒ¹S ‚2N7žkD¥AÕ³ßÄÓ]‡t‰aJþK¾øÜáºAåñ±ÁQÌîîh}~#ëÒB—õ„¢Á%¨íüñ73ãQÚäqglwk&¦Ø<™÷,F–Þ:WIL« c#4»T7÷Vq‘)ÜÕ`ǤçþP|šß*Zeœ‘Žª\tT÷|˜×ôŠíÛë¬EGÎÖ- "{énÍY(²ó"ß?í{¨Z 0"¨a´¬ Ç›4´‰0hàwÑcZx£õåƒÆèY²¦FY¸9xi›ˆú“õ?õY p è]g`Q`wƒ0ïω“2­Í·Ã“–Ôà·…·€múÑ0~!‹'Ýü Œ2Zª[bï\l¤ÞNû“l~Ï*çq_¾ò8a\Y{ÞÇ&hüòm»šÍVYùí"#€8s{UV ±Òa#jdÍ;`Ï´xÛ¡ª$çJTÞÏ8µö‡EHè"ÔO4êlŒi-äÑ’.H­4« HyüHë; €ŒˆO8f««¿Â[3LúôïC÷ÇÜÎÄÙ‡NF0Z¦_NÏÊñÃ![67EV5”yD&6Ý:cj¿ Ù¸…FÎ*ëx±&/öJ§¼ >ëÂÔc¤až=r‘%Þ¿ )t SÏ”þp|7rD® hpÎqý•Àì§;Ñ9ºqœØŠ^Š+ÊÎŒ–®v:'eÃ^iw3,Ìik0%–7oûËáÆË.ï“1™Z÷€ÌàW°Ù x@Ö݃<`×Ðݶ#`L–æÝ\¾wÎÖ8ƒQ4Ýß¹y¬%ózNMßîª'­‘ÄL(ñÕö˜`cdýø; ³gØ¢ ŸèZƒ]F¦M%¤]¨»–Úµ8iÔ=­FGæ1&òÈ8Çp—Y®¾£?¿îD÷¡˜-¦ÈÇÁå3^©waäâÐB£æ€2·,4í;Vj›kS‹O\¶ÚŸ£vLû]¥Bí#Üí/Ë!°4Z3ñ/è­L_"˜nR¨³¬Dew¶hûÎΆ؎ŒÎwÇ#T5!õ,œgØ=Ÿ¤öšWì ‘ò0¦¡t¾´@h½×º)é®±Þ{<É"€õ§KÖC¥aÜ~¬² *»8•qkÑF—Y“æ£áìa#nË»mš[ã~ê¼a)ˆ¼géòÓ¼%!èY¯U.²¼û[ÜãßìdÅ©çmö3¥Œ‰Í¼ùi7I>U»¤ŽZ#Ë£Å:ÜÀª •PÇ5QÊТqEž'³U¡UŠÌKàLßÀÈ/XÑxjÓšáãÛí¹zÎGÄê|ÐÿÈßœ-RÉzÜ©Á¬B·[üv~bvu|KÇ1Ó*÷Ëjó]*©n+U‚׳%ë†íH6v{¤¿_úøC¨žÄ¤b,ñÆBž{›µ²d9ó(ˆ"î£ç-ª ožŸŸ{š.McÔ8×Ka{HYwÀ•’2I%,¥MÕ¿è°k=¾e·¦ Ü¶ìNù}x€Ù>Š{^笭–´ýnBØ,FU!Éq˜%£¦(Ói{AÕHLè6"ø ¿nD&ËpªàÁdµÃ ¨ü¦îÊ €ŸŽð¬ÌÆt‚¦YVÅNb6+…i…vIÀØÆRêiØŠ4 ƒe¯NL‰]ÁTvŸÞ¹c=3öôÁ—iu­zÉç~ @·ÞÒì°•Y!öÝ癫…u'1Q ¬æÆÀCÄ|ëaÉi X=Å“9Wú5Ê_ÐèP±PƒU¼ýü@U Õj™GܔކÙÒ’!ÿ $Û$¢±˜eK ¸µêÝb“«²º&2¥&Ê8ºòÈéÒ—{s²!?G±Z´_ÿ™DTH -ìËžÇãP0ñá逜é¾öCL\µ‚9Ñää̪‘þ¤ï¾‹q.¤FÄ­ÃgEö¶ö¡1Œ¾M´¯‡q¯A\Êpàþ1¥ïÊv¸Î¹ªM š ©çþÂNžþ#ýe4Z?æ[¡62Ön°þš< /üTc EÒ¾â“ðÄzÝ7I*ºË¨svå»IqJ~@g¿0\ Dá;‚æ°“ÕŒ„máÖp[tŽ]¢jÇЫÒ÷™ž‹æò”³òož}Qî–áa·ÆÍ¤¸Õv …b.®^ÄØéT[ÁÞ®¢¾×´;Qu LÅ€6° oÝþ½Ù;ìˆÑŽ0Πõµ{bXâ½+*!ºIŠH¾Y=9Þv±iûÿj}Ú„gRþ1]:øÝ4/kÑôÚb“¥ðÅ×ûžQàïÑK‰Õq:Y’›.ÚÿöóÁ°qHáï;>¿Úe8î¢[·ÀÕõ.p>¶óòw# 47o5·uÒ—”1 atWcüﵓâÞ­ÇJ{ AJò-=ÀC#ùºâx@L^ÞOÕÌGÍ V¡Tòõ×¼b$A1Ì”h®N)ç\[úë Öá닾ì9ÜmOL£Uì úÕø‘"­æŠ˜@¦¬ !µ(üI«aŸfðî5ý|ÿJç¿»4êºOq­±Ø¢S½¬-§*^tâWä6ò\KÇ2Ï!#ÄcF'Õêw8üPäý£“3ÿ¿§Ó‡®©åÀ$ÛŽ2Ÿ@v ,îÐ7+?Õ% ‹9ø#Ž€¥hõ’æ½wb¨k:œP5¬m¬x3®]kJ(×ó¦v·@ ÑäÖ">/Ã*—/’·aR¡86Äs‹jRÿSnHýùÞžUë„Ç. iùÅŠÖ6Qâ®àËa€ÕÔâª럠ñvÍ#–„~íÑ sLRþÀXr|¢½nÚ«!ÒD‚A]”Œÿ`$æ\#µ²úfÌñÿI™_W“]å@M/ä”°«†° §Ï¥„D“£( ñ°“wÃ(ÆRç2l@ ΗÓ8Jjï2*Š”‡—S!ÝEŒÛť̗½ÚëõÛÃF šJg÷ŠXÂãVVÌŸ¼f¾W”Z]ñ?R2u´öß'Ñev¤Œ¦kQ æ57d‡ •oçÈ ÖÏC¾¦D‡¾DF­EnE[,Ä Ï@ûPë:žOs+ ó³Ænn€Ì®«•‹ÙwM”Kç¸Q_ ÆuF¬HqÄÙçïÿM ‘Ðjï~Í@­k>ÜC9%Ë © $]åü“ˆ²BÏ›[“Ìò–¢ðÕ²29jEÉl…ÏÝ Lþ’ËÒHäÏO©sCr— ©“X,&áÌ™Ä0ïñI®>f®mä„„Ú«¨6ôaƒ¦q!Q“þ#øhÅ +à‰t]”G÷l+£L¶³¹‘ÚCžŸŒÈðÜýDœšýF?n»œ}ë†7<8¦j iïõ˜NO+þàétoxÝ“Mlö\¡°9£„ì•„pcû™+—®àQ‰Ñˆ\iúï­xj.|O-wkÀk]¶ǽ<ü/}S–ÿPgs(°†õú"AКA~TÖmQ-Ì45š[Ð"Hh½V¨‰ÊÿR6Ç킎ùÞµaLmqŽL‡I2ðð½À)ìúÅáÊ7ÏÖÈ‚ %U•ž[ªæó ¶¬R‚“—ŠwڌϋÂó²@h5u£üž€OÎà]?˼Á]ß駯³˜aCr›ÚÛBÒª9Dg zpNR¨Ë11@Õ~ ‚á73Öžü@·qV9 âŽÌWª5>‘¿ü{!dZì Ó³Ïc}ž©c. +€@k%3=0bÍð?ƤÂþŒ‡Ö­ø u[¸ð9þøûΜYèWñ=‰:úÃ#9;p ³6ZY']ŒÏ›Âªýp[u +0H€iõˆóòÂÛÆ<‰“Ñ®†TθýÈ-:¦Ò æöMB³\ø®HÂ3!>¹$[8Ûš§Kdžô2Þ…ÙzeŒBCàN tÅ ôT.N4¯SÂ8À°=Âɯ¡Šõnz÷—Øa_ßKšªK…öÀ"°B…UÌ~Y÷±ÔŸÁ}²c1ëfÍè°¨9 „Õý*á¸í?„èn§á<}V·p+ÏuëcÆ/W%†s%¬ï߇0Ä¡&'$õ›”µméžšQu¡ù2/†¢ó‡ùˆl”Ëa,bž{¸¸ý^+ÙFéœ(A‹,)«h™¹<·ÃϘ4–‘Ïàl@±}@Ý–zç± m ¦~ߦC4ãí¢#´û{‚°þîÂ0ÎL‚+AñˆàÏs‚ƒÎ,bjJnYò«MUY­‡ÏM5OŸo@Œ®Ý<ø'sí$~Ÿ¾Ÿ EgΜڢ³ìœØ F[ÓOÝ0kf¹5^ÅaèŸôSIð0ž¨¥ð§®ƒË|‰Hø#Ã$cSyc þ‹Ù"ÂÙ«ßÍθå+';{Ðh @ï£ëû肬¢_¶ög$G75&; ûêYÙQA[Â9œAßLù—¹ÒüQå’Ô#·Kwçm8`ÎßÜœËÓó©'6‚ [¼¦ècþMûÅ…gسbONëÅ|FÜ|j»µù _³ú4¯0êjÃÙ‚ñÁ×aëR<;3d6_-~Ä'æÅoë!îÕÄÉ™FÑÁB; ³åé¦Á;;iÕѤÜÕ…2V0ŒlÆ4žm ›¡Ž$¹Ý‡'ŸóÉ3'2·Lè¾Þ—¡Á„áöaMç+¤5éWTÊyœÂñE—²Ó[uy¨•©Ðz»Þ·eq ָ⎋ÜÇ&ËM;¶”£Úd¤¤º³_£íW¾Ëó±°-zkAu!'ÃõŽó3Êg fJn¶b~Ó­zŒå½{oIOjÍiUv ½–“á°à‘MWÞ„2<+±‰Ë|¸×nã£<”£¹Ûm×è#SN¶¸jq*Q˜Ø­E¢¡ääb¾MB“ÍŽ <8Ï[Î D¾H%|Q€û9©žìL~AÒÀ0Þ­(ïÕ)hÁ8ÈYWt‰\Ä DèØ [Ù=øŽ`ìã§+jèÅÑulœd毬¯›éštz¼u°GW&¬ ¹.Ê¢ÎZø lSö‰©Yžë êgIíMU¯ ·â(j°÷Žf„…¯]Ô„²÷ª2)üo1:Τ?kk¢"Á–_Wô ThÕ3W\˸âBBÅŸ2(#k½Ë¤m>AýÊÊb‚á€OÛÛk}$fçü8ÙJÈLÙÈßgšåº¥i&-U7ý–YÄ=X&sÊšhozX×'»ìÊ2( µ'ÙÇé/ç’„òZ~\Ú!ç×……ÂVN¥ÕØÛ¾ê‚cœsjñ|é8ð ª5áâ"ú¤Ò(#ÇÜÙ© ¼éjœéÍ QB9]4O X¼j6놈×èNC‘û¹ £°‚9]åëïxÔ_B7¸‚)§VøÀ½Wô÷q3m˜\žÏ=é¶ô?¦¢·Þy(Þkzx4YGO…2Ók2š9M’Xþ^Ní‡ø¤?å? ã)ò ‘@Œš^n)a…Öq(¸3äÿµL1œ÷˜áˆ¹ýxA·Jʆª½áŠZøûíëJ~âªC²ÛÏÜ&"\r"Çs±G )IVk§ÈZÓ-þ<çƒÑpŒ{›Œ›Cs,|ÐÞùÏBò8䵑~KcØÃÆáÜ¡$Ÿ1uæYdš òÓ߆ý¤-€£½F—Ú[ÓF³úîÒÈÒǪGº>*íÞUœ”†HéÑ·»æ¨{NÊ垃‘yïA€ä×3ÐàTê¯ßµQO3„ŠëЗ ö÷GlCÚöÆ-ƒ›µ.$rs¢ó"3ÂÆúè—>ɇ·ã)©ëg6­æã÷Ó„U¿öŸ½òÍüAÉB¼)z½?7ºËSc‰GÒ¹ws¶ý Ó±F£Š!Û@n•‡t[š+éëÌñJP\«'ˆ Õ8/o™d;žbGµû±ùàÈÑ]Gå…L« 5Íò²¶¬%z!Lj‘ö@&í³×<“uîx_DKþÎ닊W³ ßÀé¼cÎ|û›ï&9¢ÓÂ×Öfhׯ‹¥#ãà²Q¼–ÊÝHx¢UÑA·exí7Z¥ZºæuÙoÄÞa̱˜ÎãzÄÑùÞpÕ; I1=Îïd©µ-n|tçZo(ø/¢Y®´Ÿ¸NM09Rë}½X7îÊ!‚4yçkãtŒæÎäK©”Ê9ݦÖÉ´š[=¯åEFIÙÔ9ÔU­!ýÕ£å?u;³_>Í +<êO¦ OŒtû^U±·Û~"ÌƆ;WÜÛÊ¢qjrxÚ“?yxP†˜.°'VÛG% ‰CoÒ鈈&(ì)ær<ç¾/k åàÝЄ¬­·w¸{óƒ•[§ÖÜgÖè Ñ8 vçÅ2J§s!»³ çÔ|xQƒÅálœ’Føßú P ›X¯¨‘ÙÝux9IuÉ(ø´ô²Â°±]øË²Ì ±}Œ?.õ7íàÈí^„ )RFŪ!Á»—ê°èúÞFˆS s-ÈÃ\°†qC ”¥«‚Æ_Œ§ÀäðAU-ÿ³ÏaÛû¦¼Ümÿ!»°¤2Áf{e\–÷|mjˆË²È™7!5(ªȪ°FóUÕ%íÄ8q·nwµ¾;ë§dgm¿ýÆÖú![å3Öþ‘ŠÐÆ¿/ÛÒŠ´åÅ>?ƒgc”af³ n¬¹|óëlŸL* ^#ª(à{DMx¢';ö³¤z[м7Úº‘:^W€äÂc&gU°|–ÄX‡ñ«ˆ4‚¨’¬\^~¶¯qݶ¢V#‰yÅøÑÕú—áKÃ…3J§|‘4]Iùgd»òg\!"/ƒˆ¦Û¢gRô!®ëûÖÄs›o!Y¢GíA®is_8Tø«ÞºU"70ãmœÔÊ@ž*}»x¿Ø\W$ 0 †!ºþ+P%â9IyýÌñd+’¢CcL“Bk-íýjÈ^›  w{ï«$ý•TðÈ D…¤}Mæ=U“©¨7X ŸÙ#±@õUO˽N.8¬Ç¡³×T}vþÞï±tÓ0ôý.Ÿì#Ñ®ÂÝÌÂMìÔ•IOÁø Ͻßtõ'™i‘¬²ok%hIÄ.3a<¿žJ_F{DÛ(©AøÚðÈÑ,CèÆùf]~iþÙr Õ¦vÞF!`îB£¾!Ag°±š£jšŒ´; éÞomƒpkazŠZ(Îþ®Ï(/ô#@®"¾l™û+‚€Zý7ƒxçyÈJu¿éSpWhÈ(:ÉÇbøC’î¶Õ{™X‚n£ã}qBû?g}Ä\ùÇ LN6hJÇ…˜IíYª@r èÖL™éÊN¸ÍÑÚ mð@r?çuI~àUœ>—Sú@WîX|ƺ¿øÏ; Ô»ÿ@£¸ F¡V¹öáë£éÞæûebA¸GÿP_é3¥jK³³h˜ö¤ÿCÓŠÊW®%Lï2¤që!0SY(„À–ÚK¡_ìñU¯Ÿ/¿Kks`„¸6“Ê ¼tש½Y6ó{”CÈbFo†2þ™†¾ëƒöF­t…ŠÒÈXN÷§è}í OÅ‚çБŠt𞬠1Iø,Ç¢Þà¼|ûbÇKP•]²gÓª^qŒÅ¡ð­¶Œ|i²à0ÐèÑ¡i¬ —Kt’ö,ÍVµËÙhy%ä+Ï«e¿ñ'øïWc1[ÛèÐÀ÷ØAg0¯ä,“åÖ™‰a %H%ú6¼74bÑ…†ìM‡/‚Y(í )(îõšp@Ë‘ª~ìVnœArÐáß}4.¤ºï"¡—Tt¡²—f"Ѹ̱¾¨ß.+@·[Âlè»Ëm)"’"mX/jvLÐÚÏ©©ü˜‰’¹ŽÛ¤ÚiñV\PS9ïb¨ ðÁ£}äÞ¶D¡_[ÞÃMiýÅ· OWóÉ®¨÷#ÂE¿Þ¼}á3T¸jý*ë>|BÀtè†5¶ÀÌ׼ȫ“=(÷»º÷zw×(öŒED]«€j›¹8³q*¶[>¦±qF—Ó¹mËgÂ,‰yV8¹Ó«æŸô¹²uSUfŠã)0BûÁ’·ÔŸ\å*r©b‰Jº+»¹µgêÔ[¬.$Æ– ÷î´…zŠîÁŸÜ3ˆõ¯…F[gØ4 /–áSï[íèZì}¯vi«5´¬ê|˳ùÚÛ¹¨å¦Îו]®)dš:ŒwÌÔʲé(—W@k²Eœó£57ƒ[{|78m89Ö‹;  ÄW•3}ŠEjõ„ç†aäd@Röf¶R·<ŽßÞÊiù‡ý(7Aç#po Tã¦p¹Â°Î¨Àžd3„uèál¸YÇ¢Ço='E—û6eM¸%uÕzø'_°E;iTï-KšE·0‹”_ëg¨Ž©žf¾ÙB Lsë㣚èIâß/÷á?ø’ŒJ¢Â&:zŽ‘W!ŸzÐÐZ‰m~‚“ Þ€ÿ-*~ä÷®Ø¢\Øböƒ{‹g_‹>x'fjåUœŸIF`í!JÄŒ¸“X‘äì mŠ}qÖk <È’þ*V€ã€M­E¹ÀÚ'%YŽêU²TG’q¹ñ=Шžùe¨ÿ¦ÌKwêÙüú¦[u§t«©…\ÖûŸ¯F`¢ÈçøÊQéÛâ–IS‰°Ùä\í¶^ãLžÀŸõÜ%Ž!DtÇìç3OsÑg»O¤øªÂ5¼†6ˆ´>ü*ÞŽ˜ð•üK3„$mcr9FŒQ‹Ku*Ó(¬á›–Áº¹÷Ü™aÅ*ÖšjÒäçF–@þ±³3s f ¢DäÄsŒý8dšqw¦ÅfÊíÛ5æ¹Aîz·6ñ«.*H`·`þê^úæ9ÃΧ؃÷!Å-jc(R‚ €| ê·æÖË™qíǹ…3Q³VvHHœ­ýÝì~Ìc[œ@ÀÒ#ÿþ"\ˆ¦Ùì{ú¿²·_›Q½m~l§~6k+ÖyFÊËéPˆ°È!‡“ Éÿ+CïeâD/ú0Zì•r°4è í×ñTm¯‘§Nõú©4¢= ¿dj¬N²ø©õü£›íÔ1D†ÌŒR¦>àä\êj(ÎìÕQÕiTí´{ì3Ù-×táºùî*d UáHCêfËdC4†€Ãw ÿöL¥\„n³êÖ Ôãü øß*^¦î» 6YAX™ªï~S¯ÕÎ0¾“òÜò5V¦êòŸ°Ò—O N5'%[òí±ÝáVï*oO~=ù"¹FkíÊš5y*!±!÷·õ œm*ÿZ(=œ`سša‹ôMÈ@ì¸I¿Ì¹§ƒvG¥·¶ìJØ0€X#·§ƒxbÂØ†P£Ó‹ùÁ.77o>@`òЕáò”’ï€râXÜÑibAÚ5_,‘¨RPy¹}v K²4ù^Qu Q‚Tl¥öke³ý•ß0uˆÐ¥a,a¤­^)Jo=˜ë½‹*/«ÿH§ž—ü~z« ñúŸœrJwßÅ>RQ<ñÙÜ•Ê{ÂXñP§ð”çÛ‘é‘Eñq^µ·…Ò«hcª‰—+øRO€Â=ƒšu¼Æ­›¬W&êšKÔNŸÍÐÿ‚ BD òò)i€MZˆÓŒ #ÑE8]‰cƒ´•úWµê¥€d®#ågük<ýv—>À'ßHv…së¾ÑtÍ_LY#3ÆÞ gà0»Ò67 –®£º¹$Ñ–eŠv:ŽÄ(Îà¹GÒåšÔü¢Àu99Íæ*–)0ÓÐê¼u¬bÀ]ÀY"MžU—{܈öv2?ÌÀþÍv! ,~P„ÅØªlÓÂQÄ9»×º8Õ: 2)›¾;Ÿøfg}_ísïúý&fç…án‡„ð™ÝQpíïbªC‘ëáQ<†Jb*RÆDôÜ3Õ^PP¢ÏV=f1§rÐáTÇ=ypµè'! 1´WǧdÛb= ô7¸@YvöDÖ<#ÝÚƒúMÖგYå¡EÜØý­5½oqÏ’h°CwéÚØé¾Ãß’ÂñçïѬê%¬¹!™Ù± ‘QƒchÑ¢!Zrë Ù‹lªÀ(pciXüŠ®|¬©Z;Ψ¢$=ËgÓ»Cß’ȲSÖE!è.ýx QÆ)¨…"T$¨º\´N(`åö@ËóÇ.@xSÑgÔ]ö?dB¡Ð¤ö‰Ýn§ÑÞ—ø\WÞv\Ö²ó@0/]¢ZåCÜ‚mÑ´Õ¡Ùÿ;±R9ØÒÛÈm$Vo* ¦ë¦<™ý>‚¦lùàèÄ3Æ/¿øi°„ â3ÀãC»D™aƒ;¢’=ªâXäk"Ï€yuiªô#Ãã©þRîjÂDËhö”U–o‹X¯~JÄsÖSXòà<Þ¸À6öR¦« ˜0ý.(âónèÈöì1p€à`ÄÉO[TÍâN4Mß÷/»ˆŽí\]I*„8ïÀ 7Ôz&Â3£] 0`x’í’\Uä°ßÎÊ`‘À/Üij…©0HÁ ¬×òT…Àw›>aýyM¢™E_,Ää‡BÁn]æÿÛØ× Y0 ´h+µ¤_˜¨ÿpŸA=ñ0ÍMS´‘5ÿ§£ü~ùÃWNµÉ¤ƒdôÏ´›ûÌùB¿q¥ZÙ,®e¿þW<Öfž&iÒ6ªÿõfjж÷0šüÀ2õ–-Ip±„›O5 Â7aþƒÌ…ÉR%“í|ž*´°ƒà¤ áþ5¾À—M"Ýy®ÛS{jÄÓ˜.À^ªḧËrY^5—á{ üP Jý•¸á~ƒiù1„-M^®¯¨"­D0@2vV°ÒÜjM$…˜—ÄuoQ‡œ±“z[#:·l dɯ³Ü]‘:ݱ¼4˜€9‘áyð›J®ÿÛ Af»Ã¨wQy¤§ š|Ëñ߯•$K }¾á*>¼8 öމDlý?¨ïs¥5ǹ‚Qä·¾ú_j…÷N G̉GìAKŸ(p²õÍ÷3ºÕ ÅeòTôˆ/0³W>a=]äÏH;Ïy•u €Ýϗ悸qËî Ÿ/—5lóüè9: ™€ææYÕó£CÊà_êÃQ€·§3"‹þ*úµéð=Ï a>Ü÷;›úNäø¦ô¶ž¯ŸFz‚òÅÒZ-1daPª›ø†c¹~ýJÝ—D¨ÂÑù×_e XÍÔµ75:˜oã¾Zwåzyd†2À+H.6PÙ oµLí[Ø"Ò'º_üY÷iÐg1Á¾g“°{~xŸçÃ[X…Šðœ¶Å„;‡IX7O.:~‡*èŠv<š¹Îfú¿QTEr™AmtíÖ*wÓ pꀞ³·—²\øóãzÇG™òÚèÙ%˜^·Í·§ŽÓîîªòš®u|9pÖ÷]G¾îP]M ‡ yj> õÒÓ‘pÎ~S<ú§øHnó’~  “þ™¸)|+˜Æ!]KP’S8ºYWŒ™e^’.´ïÄ´&Û(Å3<äö ø‰gv͆†¹Tð<áÿ™hï:m–›(3ÿoH¾A_³E¶?üìØl†¼³¤ßÓdOIÿUg ^ûÞbÀÓéŽYMºz´Öþ¯zÈî ß²· nò†Ô× tareCÿ Ó­ÊF"™ÙÊÎhJZÂ`4N­¨™ÏAL¨„çX´vƒšëäA-ßïŸð°¡¸ÂM))‹"Ë(Ç K¼8J…6¾>âõe{…M–¢¦†l Zöî"lœ Í]…»nᣠ2àêàµo£V(¶Ô¶„¶Çk4ú­¤‚rS=ä§3­¬ÔÅê­Ç2¢WBŒ\zánø[UŸ° épèñi‘ .^Bü®ÝqÊ6¿=IÀÜð¨ÀÊ[i®1O°´‘¢²)I;5ö:â]»fY'ù{(RMfnÃ>K¨¿¬ÚpPÒ=”TÚØZ×±j ÁL/5í®Ž”s?çë$"BO>k؃‹•hp\aÞÅÞ7HÙè‚ð3EʆªÄRÈWW%ª%ߊʦÀÉŒÚmÕõ#²oÛ¨*ä7jPM†÷ò™Ëcèíbɤ%ØÛŽÀÈ”@d!•îîÍÿsxæé‰o9j[¯¸ˆ †!ºþ+1¶ `‡` J‘•¥0é|졦Z~=¥5•.ø•%’gŠÎiýg*gËzˆ3_µWÒ)ÿÐ8Æ—¡®æöbfæ¿Óäš3¿ åè'[tûZœn³’=Ø'4ÔG¥ßsüà6—ŽŽÑCâ\büÎÃð@·ÁßšÛÈ?%]…'n^G÷„xí”9dsÂT6«²Œ}ÖORÑ»Lv3îþ}ãÛšƒ'èütÉml nåBÝl‰ë£”І¤*ŠÊì›è$Ñ"y‚Ãá'MËVq>ÞMí|™á òw0Êc¬uX‡·æ¢%9«ph€Ï8ój,R˜9õ¥ÚƵçü¨tŽ…ÍOç+’x+Ú÷·áÙQ™n¦£ICÍŸJþÇ å*I‘“LQ¦‰6M-ÿn[î7[~¨ Ū6ޤü¤4Ñî£Cž¦9Šr` 'ôÊÁϸG1¡ _¡\·\O®ç„?a«>h„wØÏ#D£°^bŸº=¼“Œnµáðkí®ì—èü”°%|jÅÍSàdÁ‘<Ýßëx°ãÀ$Ï5 n›_{qát(ïjY/ƒ> ó¯àNGJ6v¬­Þ0ÚäæG ë3Xþ #°«ødÊÇ^KÜ8Û÷dX¤Y¿8®ûÃÄÇÂȸ$I»v¯ÊÎ@‰¹¦ƒ¾Äbb1&DÃ6Dõ°]õ›°YÜ1¾oÕ!u„í›e£)À4 ù¶ [äê_%R¨ìœû˜cIN ‡§%õ ‡'¥]Å8KáhEGJ_Äà˜Õ§¨uÚ…ƒoäÖ:ö†ŽþÚ߈­,ûY™c0|q†ÈÍÉø¶&–pÂ2ÕvBe_íFÔ•*OÖŠ Ã/æ9Åf4È=çädë¤XtUßlÆôµ™“ÌcG[»ŒFÔvÝ]½ÓÙc85±áMµ-Ä£yý©÷¿¨`UÛj HQ¦ÕZ†Bõæ9Wyç2-ç‘—gÉ%œSS~—¡Cß„Wª „§ñï³rÙÎâÏÞY€ge/@EWÛ‰Pù™¶ÜƒËßÿ ú`†¡ õKëá ÍHÉAN@Bßµ “ïT:áN*´ýý@ÃÑ´ 4hìÈá”ò(NôšsQÔØ§ü°vMÇÓç€åD°ÒÁ6%¹8ö:¢¨~©"ú–ÊÂöGcäffìo‹ÛÌoÁ#Ë|‘;u@bý„*"8‰äW¡÷ ×’’¶ ‹’—ø¶ [ä¬BxtcµSòëYÛ¾åãs^;¿¥[sÆÅáe†oÜ„+ÒU5цô÷Wú5†æ¦øp³#ôߟ«[©ß~Œíë¼4Pë—-ß)=˸ßÞ3ðœ0S¦ÐútxSúmB. Âu4I.9¸ñE iŽa3ÌãÒc»Â¨{Xä/@‡Õˆºú5ÿõm´­Gï }”bpodšn›ezÊÁéšµ–íºmøG„^ÿMëfœÛz·$iŒQ©ïô½ÃÄ#HémV‰Ü]êö8À²@Mfj‚ ì.°Õ¨¥l0QNyVh2Ÿ+8?·ä.„›£ÚhŽG[æÎúC©¼ÒÿµóãªÝlGzÞþñÒÛÃ9I÷ûÉò‹¾î·d…Rô8ÇÌcä=T© 9ë[xe»rÀ¹éÏâáÂÌ–t¥Ã9øŒìîªx܃‚*‘pƒ,šÎ |€7›ù’ÞXˆ¶ åÚŠóéçš°¬Cxôý¤m}3›|e!³¼N¾Aï_“g?‡îC¼[]én=`šÓ4rz€¿QITÑñ“ñ»•#ã¦zôø†œ­‹“Xñ›þ6æçôL½cËF`q¿ya4›$§<ÒI)©u£2Œë%JÕc¨0™Cà€l\‘>^Í·jKަ(A„Ü{>RÍ{iW‡-*¦|UMcÊ€‰IŒƒO `U¡ƒ8|ü¬SMªßÐXn“°³“~Ñɦ–ÏWj¤,2‰e¸Î<£õÐvj ÓÙÞ¯öu¦žÇqeÖ ‡Uo`û‘)'7|Li­ ·ÂÒ*>1‡¿Hû}ºT&–mê„)(aÒä\p<=8Ò oˆæL»ávJ¦ŸÄ1YìÒÞŒìä˜ìøŸý2Çoçê?Ø45 VLËn£–û× azˆ/%ÁµôxI£t‰Uàè%®Ú`_;‹@6 l&”Ûºø‚øÞ°@”O4íÖïÞ˜•8§× b Ò ÷œë ¾QBLг‹žêÿ,IbÝjóûèÇôo—}zzÒ|Ð=våj#@rq!Ý_¬o­+q­4ðîDÀˆõá×ì?b/RQz‹">?—¦È o÷BDs»þ¥TŽ/&B^ßÛ^³'¡n`Hü¤?¦£µb²¡.þß¾N”ôÈØ±{ðÃzkûá2P& È«ú€°tš òîfà]zÏii}ŒŸS°ta”’IïɆÕVÅãHç£JR‡-üfÕ…®1€5©^j &.Ê”Ìa¥&O¥½©Q¨ªZ·DŽ6<7 þܘ?3’¸6P»õ Øéo~Æã›‘äã\Â:ú¥ù¸Ò+\w™M’ùJ„©+j¡Ö:¿@ûbÜkÂ%BS†u¹]Œò¶Éœ¸†8 II9;ðn€›kŠWì‹"mLî óLº£\㔃=½>{‰2ÜË(ÚHjYë›yæVBVà°ˆ{u—"§´€Ž/¸Y¾nÛ|»Ó\­]˜ÿåÐ_j%¹&aoÏlܘŽQH¤64Ó²±ƒ_F_¾.8²l(ÓØÅø(Iêmã¶ä22±c°FV0z~ݳU¤n?ÂÒ\˜1F”Jj~äÓXóã†Fþ‹:d ·7Ð$ŒVLÇ\M~ÁÇ#³0d>éË)rš©³6”•IAÉþ¯Kï—ø‚¼k}ØÅ8–湊éÏZ³,›ÚÚ¾p^ÁÔQ_ H| &DyšºQY“Ç>ÓJMër7÷ŒÍ>>W$D9NÙ®˜ô±ã‘ß6”V=]I$•øÇ$š$ÂBŸ}±Ä¤1´¢±èܾ(E|ç´$^:z ‡®­Ï–ôu}[Ë׈ÇzŸ³hkÛÉ'Fxø>ùdhŨʃ¤l{æ&c»­½Å[ ¾mÁÞW5 Ð&0”ºWÁUž;†¢`ü{? ­­¥¹ûVš(#WõÏÔÎà+1¬`W7dÝþ´4Çò¹^È϶:£[eQBçq;ïGÒFRî5™ç?Ó’8øæˆ5DÑȧ—;CÜ" R¢®×ó0x‰¢"¨0…uÅ¢¢)°i+i²ö±x\¼¢«ˆø–`ÁÄf«£ìvöâà•ÆDNé]ôEà–W™ÑÑ2[$Ž ,ô òYî6$Ÿ:2¸d–Dy¢ª'’µ[·B.„~Pcfõ±[Ážd'IgPе5;d(«ºÇþâÓ!ÉÆÞ?è£GIŽ_Wñ•ÍÑàåN} £Èøþ#_G>48(í3QOñmn_ØL®ˆáhÐÁm­d À˜­Kb‰Ë^9hõÓÚK([t›*W$¤37¹öÍü}˜þpÜÛ˱ÍíAª$Šœ7>,"¿WnÕX¿é…Õ3ô^Xí„óGôòMœIÏŠISªèùNÈ™òÆ9Rƒ„µ&ÿߢ02ý±ÌÝ¢*õ(ŽñÏ’•»wÿTðÌÊÂxºÍÔ©„ì¹o0Å3üHt½;ŠP¶)šþÏ$*tz’®Üì>³„xœ¡ ÿº™4¶ø~O[A¦®£¦E˜DzÇÝö0†SöIz±3㪅UÍ›µ­\\Ô¢ô„7[`0:Ÿ(JC7Âïªv`µò½a¥« È+µ‚Î*ü4W~¸‚»‘ÛúÖý¼åuªcV•&µ;Òÿ»þÓ8çHHöJjG‘T*iôpû˜ÃíƒBðêîWüêldl­ˆãârEʃª’­¥¹ÞMO;‡“™}[€A©™] Š*c`a‹Ÿõ~€•m?°@.òiY¬Ëý±~¥„ºWÅP÷‹œ07‡mF6VœÕ”þ2°äá"’ ¯yd¼1£âNT7sî3s´svzJì15Å;L±5¿äº2´¨T®¿„Èzë¨È!£o£ãùiù­ Cz¸OSZígJð\GtuªÍC¬·êÄŠ;${âøØ,¢—á?cA¨¹ú«ûÜhÆë]¢-r8|ëàaeÆ:¾ÙÌ’·jË·x£ìvA¸x½vëÒx,“ë«RQHØ>é;sK¹KQ7ëY^jN¥žQšIT1& B¬¼bQà[ÝúšÕß³`c®mË+W+ŽV~$oÿeмáÂ…œålB$ûS_±ulqɵïwé‚_Ì~ƒõÏ!ñ8¥  "@ùº,5I~VõS¨vr¾ò‘BÇÇÄÇ_•ï£xºÊûAÀ›AîÚËÜ@ë¹B³®+ÓÙ&Û«‘ncÑ↠S³Äc¤äYU$GE’à˜y7©@ ÝÝÓ©ˆòàŒÁA(5ÓÔb§ÞõJOÚ zYh—…6–(Lù §”¶VäÅþ•E nÕ»~p®lMí9<ñtN+ÁIÍ®½œK:Özf¯ ÐSdeðgupLs­Éû-;ˆÞ¿D䋆õ]S*ß3ÝWg´î¶‰ĪGi¢¡Ëü¹EnšP~W`˜(’äRÔ¦#®|‹ÜFèÆfí€sð¬‚yh¢]Z¶®Káâ¸ýˆ¾%@e!Ôæ <â@îñ’úêž8R)fiùwÐ’×Nn¿!“!É Ä´—¾E/šº•sóraßLžèüÙºG¢©ÎÚæst¾ù]”Ž+Ñ¿gXv÷Šk™2é$î#o bÖ"Ú ´çÛÙjm º¡åe?Æ•¬3VW?<ÇÔJþ+¶ÃȤƒKyäC‘A?Bÿ9¿ 󒙵݀ >O…“Kêoüö^{x(0=>Ù5Sd7wR j þõŽ¿åDÐa1ÓK±Ð¸^·Yeηû‹ñOÍGÙ#Šá݈›èB3ÌSÿH¸'Õ Ò­3ƒÁÍR ÙqÄ~€&tGí$Ë4nŠHFm`®¸b03SÓ Ö<éeu=]Íñj"Oe€U€ôëÿ‡¹ˆüìâ A#·ºzçJçFbp»TO†ñ7ÍEý0¢p1ÎBWZŽXÿ{é]oD× ·oIoÚ :YÏÄÅÎ Æ—^×VYm‹&ÞØ:>¤¡2§Z%XÆ/0"jzdÉ¿0­~rX}ä=\nf@ÅÇ–<«05ðóU€gºµaf|èÍ( „·ÖÿPjûþ˜Fë¦Á—,ÃÁ¹-Pö±ðÑè[®¶7b=ØÝ…æ\jEmîoHð…ï)'¨³Ä0N:è¾-2Â2ŸšPص‰éWYg_»¨„G‚ ÷; Ï…Ôàù L›³7«ì4Mî¬ÈíQÙ:…[c óÐðw‰¬ Ä9A‹Žó X6J™÷dB ~1~Œ'Ë0KM’%ÐpNÑ?ôªiIøER0ž²#÷&öê-(Áv` Öï$Ä)–ã mž³=wKg>ØÅ–™Ž—’úlSZœ²Ëø¥ü; ´ß'bþŒÎÀ¡Õ± ± =!µÉ“Y/((­ŠKžÆØ‘kûkµµ“®Â÷_Ôó×l ›†§•ò{ Ø(^ø†3üÏ:ðõý!7swÙããa>oK-jÏÝ@\AÙ½ÂkEô¤þyêÆ3’SkGLØI(‚6±þ¶ïM—s­iÉÈ-—h°ì9@ö–¬eÏø¨¥ŸÛ΂ôÔi{ç+{ÕfŸ¨¿ìŸu&Tiå{ФT¥N{7tâ‹«Y]Ã,ŽftJ[ÛômÛ ëvx\Ã_6”fÞÀÏÆŽX5з·û^äßåÖ-=J“‘馷SÃÙ çJ~þfʶÿýÊ’÷Ä"®8ÚâÉ1/âüt:©ä/×”J«©Ñ_ú£†$?;š"ÿ†ùŒœã´¨9”<’¦1ËÅô“ž2 hçòè¶+h*æðˆ)€ ;"¡ù\$%ßB¨œv¯×Y-~uG¼[mw²³ÊœÑguû3gu@Ýv{Í4;0.E-õV#dçÌÇÈ›py¢°Ú¯>fíÍ-[+he™°²ªúž[Š·£<+ ÔÒr½~Ï_ðÉøÈ‡§œÜÝÚ ±¢_SÕˆKÏô§“¦¢ø9²,WTŽª–}<)„£zßR¿ÛIk*˜½8h$ æ(H ÓEºˆ¬Æ—wwÐršV©§ù¨)—GrÃK$lbâÓa²()Ü«„ujW% Wy?³k¼#V8ànêÉ%Œ5Yôà ,0dCt¼.ñ ¶¨–)ǯm[´Õ÷;/WŠbœ[•…M{”-wœ%g(s›Š‚BK NÎ#S“ŽŽêEžèÌTž^2D£E0©ˆ %š 5mH5|5ŽÚÁ£lÐW¥–¦q,Ô[ YUý7®R¦ø¼†ª•Ù0ˆ¸£ÓM"=öè‚ô/ž+cY±MÞŠmõ¬æ€-ßM„j[Ë–c÷×ÖÁóxÑ=\P u·ä´iÊ–°4ºâ-úÄzý(­Šóþi$æ¤H„ÚÈ™à02M X.“‹·ê[†›W“ç¢gz°Aà°ðö°Ø‹÷©˜î<ãX¯?ºóOn&Œäá"§V#MKÇþ¬(~G¸R6„šXh²*†“¹Ï'`Sá(å·*{Ý75ýRʤ‚a `EØø$r‰&53ÆV [½&ÔÏ[¹d€…"/…iõªàSûG8ßÀ<&än<š‹§ŽÐã øKUÎP·^É}bª,ïmF¸ÈÅn±JËN«4¼‹¬_|–<üN·Æ€ÏQÓ¥ûð á°¿\r0'-~£¿Ÿ‘¢ïkæ"vR²÷Éé2¼ÖmYÔ1ƒcÙЇ “Ë}h[oG &¾éÎÎ/ä˜iF!7^•óHާ$«/=‰]!#Œ\æèÓ¹û\f¯ï{Ì¿8Ó=N£ï%®ŒJ â͙ڊˆºÜUû›J£ßrÁ“cÙ*ÒÀžÓìÅK½%îø„ÿµYn«ñ¹KP^*Ïã¾JJG<Ó¾Møœ0:ǃæÓê\³‚{ÀÜ೸N!¶Êc'±8Ø¿¬}-C<%\æÑ-mñ_nõï‹¡­ô=Ml§Ü˜’ wpÙ;g*ç/2‘¤ø:VÓ‹ºÆ®iä:?@£bÕ…ãÕãv’BÁqƆHMPã‰Ê»ØŒ¾MÿׇÑ'±gMÔ FÌrQºzv4K¾þè ¹ ÒŠè6Ÿ¿³§€$#öyQïMµ²ŒN¾Aæ—ÖÖ±ƒñu,’1¸EËšÕb3F¢Dï¾ÓŽK‰g ²Z)É^P{Ò{ûZæ-šDoÌ”ù&7‰¤©•¾eÃXâl"wnæÃ,|º ðŽµ¼„¯i nšZo:Q_ç$'gÑíƒUß´fðÿD‰/ÒÑ ØÚ¿ôoÕ—ž4ëÁlc&í|áÍŽ€( O“^U¹xâfÐ¥y~åó<†6!Ëf¢ÞßvHÁ¥’`è.çvÃøU”úµÃ–ˆr ?5ñ.'¹Nf½ âV’› !¬|/«+‚ô)a;ÐÌÄ€ñoþŠøÊïT¢Gç܆¦Ws®ú ãPç­®~!”ú5‹¾Ý5.dèÞÉ ÛAð„¥K@´^=å©Ä³ðfoµð.ð¥9ÂM !Weê'ó´?˔̫Ÿ™² ž Üì}úª×ÆZ¦j.N'6*`Ø<ïð_îú¼ ý÷·„*u+‡a¿óΑMTL¸&ÚÞûýª&5¼àÒG$š5þ0úÎ å_à•Mé-VT~mEÈ?)õ\‰@åÔ€]3Ëå‘YÃ~iÔ3hö‹‡¸ ë›Ï ³ÊÍ–¾SìmB`}©$ÿº0yü| îºÅm8®Œ^{Ÿ“êyUÕö“~ƒtVIŒ£³ï˜ŒZº×4w9€@Šnç©è(wdrÑs•Ôýu¦(6÷ûüG©’È ¢Ç„/Êí.7ãU?í» ¾†n¢zËc<šP!ŠØ¡&x–¤ƒi³þÌÇhXžøÒC†öýóU…4†Éœàk"Ï|èPwgâù¬]PˆeA:´œ;±#3sOkïë}PhpµÐTHîÂz<ßË;˜—Òúˆ¥5_0W!áÃó§rEot_æåW‡.‡¼³™Qæƒ\w5.õ1Ç_Yƒ¾{|ì¦Z†€»¢C© ·-‘K›D<¡Àe˜Í+úêó7'¿Øm=EáâõâxÁ¸ÍÁ©HVæ fß8Ž!ŸK]±cÙò»q^n^rÈÍæÕq´=ÜE«îšNàå¥,ÀpÒj„êY­E²§=¿?>íË«Àá qÿÿêfÆ^·¢ró+vßDEšà˜žœ6üosKÈZCƒó€Çp­¢nÝuTÐF—ÓM…‘å÷…Åà☤äLþÐÁðÖ5Ù%í.ÜNo®«‡™ü O…¸\Ðm'Ãl¹9¡DU‡“Ù}g£@gtyjò‰ÛlÙ šZ£Íhpí=ˆ’+Äc³ÉX µo3浉 uɃº®öè’<%†gýAÉØfA¸"#o“ KÕÌ;2ã`ezX„á_Ë›&Œ–tw€8#ùgf‰<,*[¸{ñ´vfXÔ\Û¢™Ô¦›¿~l°£HšÓGERå¢ý Ú-ÚýåY'ݰ‡«Ñ×'åxL˜6–*â- ²40Q–ò+~J^Ž8'wÕ¼BéwÂOÊŽ_ÍKÇGR_£‘ÞS²”7nÓÒmÇÔJ»ÝpàIù•öÂ@Èðæq´z…9_@)2‰ŽÏ‹ãŒÒ°š N#á15¿l ¢Vÿ‰ÈÂpV]æ_ç ;瘞S,( ÂuPvfR|8z[íP§iÍDD>5PUÉ£À/¯O£ôϺWØäŸø#ï:ºÔÙwuÙ´ŒïQÁL£ÙFÙlJ>ª9ÅÇ£üБM›;\u½rO£,Â]²º{1-o¢ó=pÓ1–½”uÅ‹JsÛßâFT¡ñdz^µáã£pF—œ Õbv«.Tpðeˆ9þ ì3f•néàµrl¶²9œán-WøßÛJo^Iëâ‹Óc¹zc ´–JP3¶×‚5p Äû‹!dszlêMXÔË¢‡ëeÛ8÷ŒZÚëª5´’ü¨%îÕcRÍré$`hsЮHì hFŠìÖG¦ÚáÐ| ˜,ÓO¤F‡¥®6†N+þ#ãVÊ=—VC¸EF°­Ø@ÛO’Æfõ3)ýU½š§j ½²ôÖÒp@nÛVINF2ºMp !ßY6ɇ ý|}ËÀ6S›Ž¢F6À1'd°U}ÍKV‘1¢Ý5-6d¤í4n ÄÏÀÿÛòŒ ØÂF;ìZJ!y¸œàÆœE€Ã¿·c~$Þ|«×‚KfŒv†7”ÄJ·Ì"M+'xz4QÐLÑ×a¢ç%Xóñ3aný?…CÇ1Íg1ØŒ?s /î:)ÝwM€¼K¨…Ó`÷¢ ùqÚ #÷âóŒ¢ÛŸ®¤ˆZ9t³Æ]Ùühåkƒþ‹Û»È‹ývÊ8/A‚S½·ðb5%@áØ8Š,×'EX8%ý=pñÚ0/ÐÂOð$-(Ÿ\ˆƒmÔM_"‡”}€Þ SObYró@µ¥:ôà÷çÔf øÐPÕ§Ðv™^dt¹„œ³ªÂ@еJ%h»XËÈàxCÓU@ó‡ø‹H6êø(°4tÞ¬JÛö·Ãñ§¥:„5HTåÀ šþ _ß\Íù1d[:œð“r:wÀ+ÌÒ‰{uÐÃ"©’KoŠ!þÇtµñ”ªÐ}Æóh¨«Á,Κ°`ÆVµ'ª—™³cð2R»ãÚ0R2§ï"Еn0@–¶¶xÜ$Ýhh"oä­—qhš¹xQç¬Å¢Ï=A#'Øõ+iSœàâVXÒû†¤[éë+­…àh’”¦…n"ú/”–rÝÇ.¸Ta{Ri1LãÀó¡ŽT{ ´¶%;ûªJqi<" oòì¿ü\KŒÍô•uAd24¨mVdŒ¹¿+d8#…¿CЉ«ñ®ª\ý›ÙFÃáaœWÞAeŸˆ!/³ [”òÖÖźÅ`Qö•UÉ·loô\aºF|)ÍóΦéª^Júö 9%Ðéjð–”ýYp7X‘ÓZ¿d)›i;péŒZéÍýF{Þ¦¼ Üâ!aí—k=¢¨ ðJƒÅ`Ö¢ "Àm™˜šÚ.'¾Å¦Î2âÒ& í®P.òríۈϳò‘ÅYîø@^wdUE…'EÓÔ‹×ÃMëõñý¼¬yl+ã€ri `K„ì³ D(y¡@ò™«ÉÞOýý?¦ºÌEXÎcá‰Í¸w[òLoå¶,Þ¼ìÆNYØTÚ}àûçOç&s¼’TùáØ±9n‚˜‰#ãÔuÏJ«—íyEXxœTN„›£¡tç!ó~ÌâA­2{[ÍÊÁê™[ŸÞx¢‚ÌË,¿Ê|˜&^ÝÏVZÀdnw8¹S¥ïÜ ,h:“a¼«¬‡g`ˆŽ`¿ìŽœcºvRtÔõj‹ =­h½ù[¨»"ÐHþ‹ª`é†÷|&,’) èäfø±šPKZî³{(äÒwá()¼FFIu‚bˆPE² ±þçJ¯áCð,åóOºoæ±4#'è¼À´“´á£&Tœ”‹o¸Ä>€½Œ`P›õpyœÖ šL³B€{'b☪±½cèR ¹äýåÃe–¡< µá<Ûx,Ý^2 Ýó H,x'b—îy|n¥Ž>PàŸJI¿ îêéd‹°`|K}¡)7êäœ"™ß9»’ÆÝÜÞ¤¥…%k¥s›Áw´ë#jóël0ƒ}Éï-ƒí'ö¾Ðf—Pí֤n—Fÿu’fm‘0JJR_ ”§ƒ$¨{!±)bðc©*lŒþ]z"«h ü¯:nL"ÏâqýS,PÒ$yÅðäqsìŒrÚŽª–>kY°ë´œMW,oCe¹â!zÁÂLÒ¿Ø á}ébc¦y m‹",n»“Ñ«5CÅÅÑ6w#Áà>a[Pfµ‚v[†¿Ã"á×Î9z@[PãGËBÑ8æ\Õ©9tÐ>Ãu_zÀ’ÅŸ2Ê>kÏM,©Ú!œ[oÒÒÑè›È@«]PQ.ϰé8"¤›8À‚¯Å4 pº —ÿŽ¥²]giñbí¨®€¤("ª[jÓmc¹RîÚÐúSmº±v¸·ÔÜÐθ}¤idãsµÂK²"çéÊâ»ÄÒ1ë^}Øzc,[oŽÐ17,RÒ/úòÅþÊíàe,† $ì…aDï¨Ñ”íÒ.Ð/!ãbßÚðPŸ¼–gäS Ÿh¥çKà¶ÄÀÈc–oŸ-u4tKk•X¾vriCqKøm‹LùJ¦øñ£f(mb•ñë~Å2óªálš/ŽªÃ(²Åäø©RŠ$Çw&¸Â {.MªMÀ¦ÍU‹ Wa„íê­6tƒ7;ø—ÃF KÚMˆ@Åbs‡6«ùò˵‰"ðPöZ í–ÓBœ¬æ_L“%vµQ¾ÞóúSÛÞ¿]µáð²q Fu&ÜhŽÍÚˆ!4H‹%#¦BísÖ©jwP¾ëá J¼!‹â0Ž`‰°Z'øÃ–#6ó‹¡søèHÉ@snú‚¬ i¬7ü âM9®ÔÛùǰ¹BÙkŒË9aô&vAÞ,¤èëà9ìd,Çsšñ£O*ÁX€ˆjæZô‚ÞX È0[;Û¸4ñºm6D\÷gàiãÚݦu³ –/ƒEÒ%Б™Öýð|0·n~:~ìeƒ2(>ŒÊƒÌtâ¯lѵ[³ëˆœ;ì0í ˜š)’JR"¹± ž«uÚõÆ©¼TÍb\ऱn–(—I}$À XO&:~—HíM?'•¤ê:ó·Ó§Õ|¨û½ £ð5I­¸ 5Y-AŸK£;¢/‡=ê"t.sY*ÁBÇŽÞez¥ŒŽvÎêZŠãƒ¸êù\õã!Ú*ùeòò 4Ê™Äüße u²õ¤Lòi‹UåÐÇ’8iΛhÈ¢dµ­Á8Þ¯E¢|sêLÃ-³Ÿ9äN´·ï·kÄIÌᕚ»òVÂeG XaŠíóC9=q2Þ’pSo DhÀ:„K.ØO…ö9J5¢Æ]vK5,®á&€ã/ †Þe$PÅ»JªI­Ö’Ë ¡ÔöKhaøèŠáNš{ÎÝLˆ>2Ó[mDvÛY¼Øæsþs}¦áÎþ+žogÁQA!:£ØüLCw é¡, µ*²LÓ¼5ñpõ,4ùË}.ÝwðôÏPÏû„c*sbzûÏÝÁtI/)ÊaA†oœtXž ,U~âÆïе J…?©VßѾfw'Cáí`" H‚k,ûe¿5þºÓ•O0xïóiÅa„¾ú)Ró"ÌEWÀÍ\?«~.â!pOsœ¡¤J·úƒ`oC̶Êr¡…‹‘kNi¹I eJŒ1;<à0ÿ¿«ÎІ¼7˜2Ê£j Éa6Ïa¥–7\&J‹7ðiÀŠPú‡šÒþG*¿ÉÌå~›ãp:ó Ið½vº*´F”ät©'Óý›¿[.¢4ë³f¥1é(ZÃÚÉ{ {@½;QU‰øâò³„QöZ-&ªN¢Kæ3»–Øú¢|ìw‹¦Žò³€hœ%½DÍ=¦ýÕŒz‹"7›¥„«j~× µ^ìÏ¥ÝJr]žìµzñ!äi^ŽöµÆñׇ­Úýd<šþÖt{ï¼Köë—Tré ˆÚÙœaô¢žŸ»>1þQr*¬Aµ«òÜ2"±´t"2; Z[K ¥dû—0}mÜ_‰[ó ¼îÀï¡§•™(³/üËÝr–Â|Ìr%Åçª߸; 4–ô$óûH5™Ø¨ v{ç ê7þ„«8õ†Kjâ—m{ÿ5ð‡»êf³*‚x«h³FzPÀQ£ý8ähD1ó%ðâ®@Ö÷­‘5­ìÎT8;Í)—ÿ•£GbAr\ D5Œ©ºû/3„¾ykquuV¤MtKµ:&_}QVÚaÕBŠS™dS¸Íó9*~‰£ÑÀ78—UçØš€âš×  ƒÔ¢Ký"†[•ë÷S‡8 •GD˜ËªhCAî©]wöaN(ÆL°@ kÊ«­ýš›d¡pò­Ï ûËõƒÂŽ âôèyww£ßT¾ ü”v.Ž1“¸„£í•ÎÚ¢-€2¹Š€âu–†ƒ\ï(å%M§çÐ…l¶“Bn@69*q@À¤t\X×å ²Åa%62ðWQ¥ëÞ|‹šfŽJÒ³@9¸GË%“ÅÈfÇ¡Kó—ž1~bûKÖæó5òò|KýéŸLï‹uâž@RÛÍ\ǶL˜TÉ$c@µÞoÙ¶×Í‹.îè <ßÔ\G ÷‡ZtR²_m†¨ïE=`l´o¦=”Vùš«m˜¤Ã+³¹oþ¯É—¡'T«IC Úµ‡¬sOEÓÌ¥RBžS“JvóÄ ÚœFm‰5¨ø¶xmcuã Ú)—ÖÉQŠp!Ûm‘â¼ ^W,g ñŸˆÏ$.Ò%ãe;*N‚ {ðN!—¥ì´b ô8“Æÿ’ìÚ´|ÙÛN m¶ÒòÈš > )J‰»ƒUàN¶ØÈs°IÒ왌# Û¦*Gj¤#¨7îGuqªC` Íä‰Tü¸—åe¥ß(µs0Ýë—§S¢Šúñliª²·åùTåÄ]./óLÀìÍ”í •Àò&'%aÓI­ò¡õëãì#ûmCC. Ë8Ô…–´¼þf\4à¡—ž‰'4d¼y?¤¤ §)¯™õJÛt-$¡¿¦Ö)†Ühñò)ööÑ¿´RšT[ ¨æT¿A´¶¸oŠ^é?!!^æž»˜Ëx:‡„î;ïK3„9£^Üþ˜šG'kw#@‡ÄLDMÐÔ¤bÁàÙ^­£ ¨Øš†óƒäzTJ©Æ·Æ1¼#³äÞkÐR1H’oüè§„s´vúÁö}#”ôeáß%¢ì]ÿ¸1•0%ñS¯üQ׳ÍM« ´—w›B¸+ô¬¿LÒLžö ÈE®Ø íð°²(Ή5w@oÕòj1µl6ˆRª4У`èDPÔ’™& pÉxhœì«o3Ò '‘Bÿ9=0¬•¢(öLý@*h¯W1rÌ\k¬ÅMþ%ô&Ìo÷âÝBçÊŸïä Yéþ™ -ÞPt<  Vø"¼m2ÆÉó•™¶iyoôïŒ ),ÿ‡'Dê.ÒKÅøO*9ä]/ÊÑÙóªí*:";™LUÛØ|èÇnˆ¡ñtG4³:p}÷¬ð_t×EEZÈØ3“‡ .ü!?ôãK‰¶urY¥Ó*v0RsTŸÉ—Jò^Ã3f­ê ¶¢uiëÐg8û‰çŒEªF× zär…]ƒpûilHãØÑ÷ý­N½Ð—¼<š-ul4K(ak£Iûžyر¡(Åéøˆ_»oúy¿]Ñ€›ÈVFæo 4o×Ôf¸>e¤‡Ü>K¿Òµs©ñÆÉIÓsH: ëÇ þà¡ãƒðaÙGQªÛyñ®ò÷ÞýÆô3Hp5XñlEý C’´ÏÁ²\NÑ|Gp–Îώ熈×N0›éµÊh˜Ž\ÜTu›ª‚ÇÃbìªå‘lû¬üG,ãL2]u›+òm~—¯ u$w²› ì1•ÿæøFü¢&Vf×W›~Î †ŒýÇ­’ç›'>›|'dô+IÇȺ:Ä×Þƒè\¢wó_šÊo¿8Ø_®2N.³uä> ‘ ¶Í:yFÄþ_«¦òòô/¨Óá÷¦¼l¹){£;v7a‚·‹\õˆýÃutËoæ`¦ÐÅO´†ûT†JÀ¤g&3)]`ÎÒÿšvøª¼ÄÄ}\éGN|毎\šÏ0ÊøÒlý¡j^š·ë´ ž©4ªëÌÑ^_ê óÛ࣠¦»8s–%6'VÅùÑ™ŽÍœš¸¶èŒ~2YláƒÃæÈq›Ì”¥r0çú^ù·…"`"öÓN(®Qê±À™íä«msªÕ¤ÿ»ˆÖ’°ãKUËAlq>:’§yÏ,Ð0‚îd=%8à“ì’­qÌ™ Æ²zå=— Á©™%åëL¨ÕØ>±=.ø}fÄM`ÒŸŒ.¦°À²Nxn êÖ¶E˶á–âÔlsÞ8xb5Õm¶¼+xmØáÜ<‹,.‚Žà¡øÚçŒçüÍî!W©†è^U±¨¸íkÙŠ䌘°ïñÒML‚¿ŠG²L|«ÁÓ}&ìSz«k7Qݬ ±þ':Áá›PŒeÔ¹ÆaÔnd¥sÇ­é¦öH]UÚ'‡çŸàŒ?ÙÒ§FO¤'<êÿ@é¶È Qô‚ˆ[¸ÎFäÒ:눱f/£m¿Aþp–‚r9ô'¾ïÄÄNåFïR½MhZ´æñ¥*^q¢Uõ¢3ú_fÒeM°:Æ„ÿ©{¼­Fw^ ëê¹ðˆFÅ›•á[ŒI¹SæCôQÒK»“ÖrãØ\]~Ë9ŒñwŠl%ÆLG 2ÈQwBw¤^½´8T8Lû·•¨àU„9Ùp”†NðŒ‚š”Ä—ƒ—© Ì©Ô*)ä;wŠì”„‘¼¹Ôv2­þ‚:ô‰JwêëXC#¿%0ûµ  0w/¿—‚ÁZ1(Rw «}›Áš·JMkvSzïjÈh&μçªô#û /(ŠcÄó\NLÐÿ5 ï¬é+á•‘ŽÃ2Èi©Í ;s¢!Ιª×ZÛñ•Ÿ|oݘ%ßœÀª<<-¦yï4PÄj·OU7™æŽd‘^OSpRÀ rA²amGrïÄì#{_[pn'1ŒÛW–Üßþðsû›ÊË#Ôºî•9˜ã˜aßG¥Ë!¬Â'ÕÒ«Œþ¥Þ ¡rá즚=ýó†ð¦?~j‰$‡MæÔÒàT¥HÇTìÕ•BÓ]E­üÒ–øÌR ž¹çt?ˆësf¬ÝOÒòîaBå~“L_oͦ}'?¡ØŽ·”I!oÍ=-ç1.Üÿÿœ`E 6Ÿ÷3‡?õ~0m™¬Ý¶Ü0ù¥³Š½‹mœz€+n Ã’®ØØ¼¯¦1\ýèÊ6Þ£7«V‘· …Á?Õ˜³Ò'Ø$ÍKÚ›4øñ ÉÞßMŠÛ0î¯ V×Gõ‹6%òw¬»åÔ64˜:Z^S‚q®5#ÂK_uŠÝ¥cÿûz°báÎ{³öxø#¬èâ±Ð»o_@@€gkáÚÃjÆ{¹ð¤\f8!m0ƒLo¿csù<`¡F’¿ÃïŽ÷^í<¬Ü†?aš{½ÎDË_LÈ0¯&ŸÓ—|7ÚÞ'&·ñŒví‰Rß)4 Ò q¹ÌË@ lvT"5Í@ùé5»ªÚÀBC»B40ãÌ%—”ÖPÜxÒ4’€)xji‚(­,yql²°¢ t³ijxé–Voøè¼Ô|× ¬›€¶õ­Êþ<òšA§·ad¬AÛf òæ&}3!«Sœ´4\ÅE¼6Ü4äv©„SÛÎʘ÷ukXŸûWS~Ø7ï§µ7éE¯A`åi2¢ Zž÷Q±cX¶Hg`*ß$í0öa±Š/pQÀÑ¢àNZ¼yÀ™X°‹1Lj—ŠËˆW}ÙOwS·¡ò!Çã󲥪–ÕñŽ¿òwUí:)-…al5ð¸ /{IˆòßD²Úrç™]1þ8¬"@îÚÔ”7.e›ÊuÄÌÿ}Šù/‰Bñoù³<Üö÷TÞûÅ‹t5×"l{ù½äÆG½Ó±ñBa7›C(ýú¯/z€4¿¿E\_uE Á£™$Nÿ±Tq …o{4z]Gê—Ðk€¸áGœÂ¹ocØÃôeNY(2¸DÆ®»Ä‡%«ÂÏvÓ_|w·î{ 5ˆÈ¡q! ¢´lÂed.?t#½üâ—Ѓª?2}—ñO¦Iøv“4LèÈ@Ôãíó¸4ˆ‡ý`|Csчë†,Ô½ d‰£qŒ ËÛ<]Ìé)£ÈÐs·L‚Üý׬1<]àø?޼ë¤4ãyUŽèŒùΑÊYLÚ¢”?çmš®9†v—2°*ìÏZr‰bI­Õ-<”ÓêÁ!Ñ#]Ö`öBv|‹@¼-‹WÓ£»eM#Çd`ɧ‚>gÌXÙ¥OÔþ1ð7Óu­L_"˜n\¶=61¸=ø’F¥ˆ>âµbÿâê,'”m/GŸ¾Üê—á©€g:+üŽ(uU+>·qêvßOÊ!âÙ‚»>…ÇzãlsoN Ýù ·ÐБ–Õ÷&‹ƒ´öWm%Æ)£tæé5ˆptwÚ-¸­‚¤Hz\ÏZÁ†*»É…5t¥°h½¼‡‚37ŠÔíÀ!Ážã¡;» $Ž´1^íЋ•îÕ°ÿÅ‹ÿœ§|ÒcÄÐ?@€ž†€¼Ù õ‚3!Ö­w=Áðcó{‚ü'¾P]Kuå’Aí ÿ^¡ØEéà4\.m™¶3±3¬z7‹mÓqÕ·"Ì2Ì-£à‹²±GaÊèk»õeð&•^ë=4$9Çô,èkqÅ$Ï€"íæH–ÿ “L»Yûó,‰Ì²ßó+RZ²±ÓÈ„¼Ã~2Nþ^õ€ßéûMb‘wÇ‚ãúð@Ö£ µ -ˆ y ¶-U_5dôÇ]þjöNÅ‹ÉBSðËÁ{æl=-[PYu1½h²‚ŽvaL » û)’‹‘ 1‘tr1Ĩ‡ìÓ¹’ E=î&P4nQ~éÂhþpßn¸ô¡àtxwö#[Qmz¶‹ŸCiìèjw‰é‹¾ò´<ö™EÀö.4 /Åû+mŒºƒ¸r»Ú•„-¬Ç UŽ•QΠÚø¿2’xZ›ÿ`ls\ô:½dÏu’žþE«fR¦1Ew ÷9L¹k‘úd~’Åc®Z‚¡rüN¹6ë¦$ÐX ÉŒ@©§º©Þä”g«ý×™“V¸Ì9êÜô*­À±nŒ.f=¢ôdÁ€–D«–ë‚÷„¦kæ‰ ¦”g¦?tÜh~ Ðù§¡„…Ѧ… |2„"Ç¢ÂÚr„RÁ¾cý òÜŠµÈ€pM3—]Ìü PðÔZ­˜·úbœÂ}þìáõRêåFÊ‹.ä}ž4£. Sæ<ïç"4™?‚ãn_®ÙW&3){Ï©ÏvÑCæSÆOè˜'†GDZ”@.ËH§2ç@$÷J¬3Ïö윗߫ª÷5­VEµ"0(hŒ[øºßœöQ›ocüĪ«Jb•áç÷:¦Û?Ò†ìc9(¢½Ó1x9Ú¹Š…ß-Œ^s\ÿb:œ²g›\øF.íû©ÃröJù¤È;f¨ñO×Ìÿ­œÝѯ€Å Ýà¨í ¤JªÛ‚ìR´Û1Ã×±%-.€F©GžòÝ7ñʰ#”T¼ÑÕËK`²v!çt!›^TØcU·Ý& »¶CӇ؀MTø÷¯<ÚÜâþm«<í¦tÓ¯5Ò—–Ф_ œËæAKœÕãl®>¼7έ\ªœhÊk&åÍ*’Ãô/A¬Ki þ°Èi›®‘ŸŽSZÐ~¶ ȧ¬Æ@ç,rsÏ+ÿjYs];®nƒÛê' kꃠF¦°Ùrvç­w(ýN™ë9;vI`‹Šü€m½l˜’ôn}©aVòY JMD±é)_G !߯c-pŒ1‡Xøöû—3¨ZÃPi>4úêÌK¼] 8ú´FéŸb|8R-«‘dS?¯Îƒø_&Ž0ìCÿFåkC•RñDV´IÇ€Ûyl&•¾ýþ¾’†Ìá¶¥0°B{N3‰ Èa¥ž¿q´ ;ì¾Ì3ï<ƒîyf8|d‚™¬Þ²ñ Ÿ7žùî53¯ˆ3â,ˆÔW]Tãþ9,£¡ˆÏo!EMíÆò/µ€Ÿ‹}ó8HZKÈsq?L1k"¾Œ´¢9ŽòÝ)è zùø4¨ÉK(_%ì¶Vúį?¿ºöò$ç$bèBÙÏ`ÒwºyEA0œ&¤Gé_éÄ©åJløÝ HF3ݘˠ(»ljãVë­Æûxs.¨á+jÏFâ*®/ˆÉÉÃ\ödºÿp”MX{:„¨ŸÈÖ¯k`Ü–'ѯ$åmSq¼ãSÓÛÒnTsÖ ¥%K2u`¯,– ›·ïŽƒ]èñ¢Öy¤ì]Øc¥£µÐ ÝÛ d¥ˆUp13©”°q‘|ºÞ’n‘ß4°\î<Å…SÏÏÍ ãƒƒJ|â{ã7Añÿk©Åç`öEï3–=”ÜÉß®2p\û÷¡³•5Lë°uçv|óOˆRçÁ™@zŽ–îõ"Ó=ÌqUM¨ªG.ÓiØh\õxuß@ôTDJyëNu‡„©­S»OéUšz‰w:œ¡‚WþhΑÏ˸+NÕvl´e+³ÆE|ö«vMR™aKÀ@D ÕŽ¥Î>œJ¥jNÇëæ§†z feSXÍÍ6fú–TúžE5µÏ`nUè±J¹²¨:W¬ÝéŽò²Ï Âu¬¿ÏDu ¼Ì£Cþ2w¢@Ó=¤S²2Ç—<¢A‘ Ó†ºr4ŸJdDá!ì½Ò¾cqÏTy°!Xe‘k®«\ä˜ðp1nڽѭgÝ‚ Ï2+'ÑHõ®1nÖÎ!ªPʨðŸàÓé«Ù­L{#¢ ¼—Ç ­Ëì…Q÷épR ÜL=ç‘KÕ¾¼§Â„ %¹}6Y y3¤C%±h™ž1ëßá˜9L†RsŸšnTÄâ c¹g#v7U_)3æ²£A,Á– åKGˆiÈ_î5×]X»(ÛòÓÙ“á6ªŽ9ýái"’ºaX#âÛ·´‰—G«Ë±ðÄmbÆÎ‚ ÆBr Eé³nØÆ/Â5~ãô|•=½­µ£Hý±ÈDE”‰a“X–NwnXàyu¥Êm‚+hÔ4 ¡õrúyây­Ï¸ì›Ïª¥`*›ûÞݽ­Ýí]%Û»(˜±Nê¡Êì» ü GCwË5Ù b2º?CqûcáÔHèaÅ5«µ†‚Cúéw;_ÀÃæknw|âL ;¶F±*Ü¿Æ)SIž8ý”ß,Ál@²Ùçö1˜Õg^°Ê¶~é+ûŸj‡3—ŒöŒkÃéÔùh‘‹ä,­¡Úç®Xí¬R¡÷B¼¾f¬!¢{Ì×ÒKEGË¢'Í ™ˆ8Ñbí¹±%Ì*ª³ñsG2®Mg¬ üg"kÐì#°Â{«2uØê'ú¤æÙY¦‹>ˆµÇ¨ÑUˆnmFŽòºË ¦šÒÖÑN•ZäµÔÃ/ßnJ9µ< W&é†Ôa±Èû’¼PV‰tNÓ^ºgèÙèlê}ÀÝöfü»ðlßÉ1’Iù¥ìÃ…L¼£@2L\CFM™L;-vE¾LAH¼MPñ…K1‹u¦¦ê.øL/ñxIÏ€ÆÁO.¸¿®Ï’™MaôÉ ¶D8Ãz$(¾³úæðw2÷5‚yþ ÷ä€Ïä „%É#g&EY¥„‡`¼¸ÌöÊq/jÊMw$ºä=kâË”À#æjB`wˆ¥¯Ž±Ylà(ÄþVUxk¶ïÛpZÿ/Š5V1ë„gõ`ö(ßÖW¶ŒZ9‚4{öåˆPÏ–Z!çäF¸ZhÊsi•Yòبž <™ö™xØYüížaB˜ÉönAVnÅÖ[Ÿ 8ö0[½ŒD£š{™_l u˜&ÝïשÇ*oEg_€ ÖlQ…ýw´ÏŸ’eŒp4kd$šb5ŽìêDðüNüQƒbÉÒÒ“}ê~à±^„øü!÷$;Z¯Öûm–›™~T#\$6VböD|&ëmé { RþOE±#ðQ±Ê§J╚䗨?ûµÈÇ^D+o§Àù‰ó?ǡꛤƒAl Ò;‚à‹ÿ¾=Óþ0™_£ ÜŠi«¼ƒ[Åúky¹mË€W7þ;îM2îù »)š4?¬Aý$ Rrd‰=Á—Ö¶É{F¹sOî[Ž*!@nņ‰’N*eÆ×Uœ‡/ª·B"3b§qý+‰?`t 5ÑYhÓ,§êtjz¢—Ö–Aúé*Zóo&£§;ÄHüz³ ÓSˆÖuìaø¸Ÿ-“_OfU´'…üì#J)î/À%‘—ÂBx›)-Höì–õ+F3´(§nrƒ–NÔ“¸vûÙÈ;7«ÅøÄ4Ê*“`]î=a7í +Ö©­Ñe ÁâÅn¥Èø"Å3’Ú¦_ …ÝpkFpnÅg‹C–(´®\µ £ò•¹èöâŽÌgiÙˆ‰EW¯4…ïg„Û_ ²~î°k˜¡¹•ºµÄÁCžþÆã§qwì4V„3õOWšØ1Iš„"Ë‘v†½XÇCÖUÖñ`(úz—_ºŸfå½è!›A ¢s4Šå¯ ãè K„7s˵,½”×tw¶¼<4JòÛ²o ƒ˜ÿ{0º¦*ï™ü÷ý“Ú²ü¢#Væ/(ঞ=à„(Ëù° `s¨ö’ÿû[zˆ˜÷¶ àŒµ‚ lãf‹gÀ•åÒÞ³q}Ì»¸:N§åIéáŠö¤òo9rõõ·x¥f÷ÐwO´¶<æþŸÙlX˜ç±êÓ*RKpÕ£A5,wâ`Y}ÅŸÛ±¿ü\yÕèøG­¥á†—€ç>‘<ÄÏ» ›t4†à£ëy„Ú‘I˜>Î༣êÐiæC >®Í©œ Ú%âÚLÊ^kJ² ÕAÎH´ˆÙâÜ!X¼˜»c§"ãf­7Ÿr[–íÛ+àðöÓ´BÜVzŸ:£GDÓk“߉&{¨|ìávàÊÍ÷]0]´ Éåehü¨E¥GËPekPˆ,óûW1~’î pŽiõ¯¯6[›±cw¡T¶£¹•ŽRð¶Ùàÿ,~†X?xÞLfÈ`¥]Ó“òLÈi]¸Î;¿JºÊao›Ç×ÿÞ·{¤cbÒúkG€¯nS®Z¶Wý3aq­ž³¯Ä—¬?ÂÔdöÁ÷ÿãÈTYy­^EUL,^FŠ3'ÛU7>W«9-*Mõ¦fãQyÁ6l£Àâ×UÖT(m\,-ŽÎÃ-ØŽ2²E’ÓL½¸}5—Y‘–³Ô8ù£O½Ó)»["åßtE7#â}+‡€%‘/ÔüZz.?œÊùóyªB<ìn•#×Mì]½•†Yµª’¸2Êòø¸™Oùý±]:¥Á´ZÉ€z¼Íü0Œ$*’ÚEÞhüà;›£ö1VlóRk`Nõó#ÌGJ^6g3¡Y$±%õ¬F7Y3;'ßö™$RÈ»1VL’Î:*üüÅ,3¾ôŸ’ÂÐoH®â3¥;¶PG›yõöï[^ÏoŽÅ˜l(0(­mC}mí{¶†÷¡ÅÀÞX·°¨oŠkŠì¨‡]¦ásüK*J-!#îL÷2€0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark €grace-5.1.25/fonts/enc/0000755000076500001440000000000012467751541014344 5ustar fnevgenyusersgrace-5.1.25/fonts/enc/KOI8-R.enc0000644000076500001440000000361607574376420015754 0ustar fnevgenyusersEncoding=KOI8-R .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef SF100000 SF110000 SF010000 SF030000 SF020000 SF040000 SF080000 SF090000 SF060000 SF070000 SF050000 upblock dnblock block lfblock rtblock ltshade shade dkshade integraltp filledbox uni2219 radical approxequal lessequal greaterequal uni00A0 integralbt degree twosuperior periodcentered divide SF430000 SF240000 SF510000 afii10071 SF520000 SF390000 SF220000 SF210000 SF250000 SF500000 SF490000 SF380000 SF280000 SF270000 SF260000 SF360000 SF370000 SF420000 SF190000 afii10023 SF200000 SF230000 SF470000 SF480000 SF410000 SF450000 SF460000 SF400000 SF540000 SF530000 SF440000 copyright afii10096 afii10065 afii10066 afii10088 afii10069 afii10070 afii10086 afii10068 afii10087 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10097 afii10082 afii10083 afii10084 afii10085 afii10072 afii10067 afii10094 afii10093 afii10073 afii10090 afii10095 afii10091 afii10089 afii10092 afii10048 afii10017 afii10018 afii10040 afii10021 afii10022 afii10038 afii10020 afii10039 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10049 afii10034 afii10035 afii10036 afii10037 afii10024 afii10019 afii10046 afii10045 afii10025 afii10042 afii10047 afii10043 afii10041 afii10044 grace-5.1.25/fonts/enc/IsoLatin1.enc0000644000076500001440000003051107624515157016636 0ustar fnevgenyusersThis describes the ISOLatin1Encoding. It differs slightly from what the PostScript interpreter defines. Please note that there is no unique definition for the charactername appearing at 45 (dec) in ISO 8859-1. -------------------------------------------------------------------------- Encoding=ISOLatin1Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quoteright /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ .notdef /* '220 144 "90 */ .notdef /* '221 145 "91 */ .notdef /* '222 146 "92 */ .notdef /* '223 147 "93 */ .notdef /* '224 148 "94 */ .notdef /* '225 149 "95 */ .notdef /* '226 150 "96 */ .notdef /* '227 151 "97 */ .notdef /* '230 152 "98 */ .notdef /* '231 153 "99 */ .notdef /* '232 154 "9A */ .notdef /* '233 155 "9B */ .notdef /* '234 156 "9C */ .notdef /* '235 157 "9D */ .notdef /* '236 158 "9E */ .notdef /* '237 159 "9F */ space /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ yen /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ hyphen /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ acute /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Eth /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Thorn /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ eth /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ thorn /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/PSLatin1.enc0000644000076500001440000003022407027252273016421 0ustar fnevgenyusersThis file contains ISOLatin1Encoding as defined in the PostScript language (Level 2 and above). It differs slightly from what is specified in ISO 8859-1. -------------------------------------------------------------------------- Encoding=PSLatin1Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quoteright /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ minus /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ quoteleft /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ dotlessi /* '220 144 "90 */ grave /* '221 145 "91 */ acute /* '222 146 "92 */ circumflex /* '223 147 "93 */ tilde /* '224 148 "94 */ macron /* '225 149 "95 */ breve /* '226 150 "96 */ dotaccent /* '227 151 "97 */ dieresis /* '230 152 "98 */ .notdef /* '231 153 "99 */ ring /* '232 154 "9A */ cedilla /* '233 155 "9B */ .notdef /* '234 156 "9C */ hungarumlaut /* '235 157 "9D */ ogonek /* '236 158 "9E */ caron /* '237 159 "9F */ space /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ yen /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ hyphen /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ acute /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Eth /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Thorn /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ eth /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ thorn /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/IsoLatin2.enc0000644000076500001440000003426707624515157016653 0ustar fnevgenyusers-------------------------------------------------------------- I hope this is correct representation of ISO-8859-2 encoding, which is used in most Center European languages. Drop me a mail at , if you find a bug here. Modified by ES: cleared 0x9? slots and replaced 0xB7 circumflex->caron ---------------------------------------------------------- Encoding=ISOLatin2Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quoteright /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ minus /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ quoteleft /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ .notdef /* '220 144 "90 */ .notdef /* '221 145 "91 */ .notdef /* '222 146 "92 */ .notdef /* '223 147 "93 */ .notdef /* '224 148 "94 */ .notdef /* '225 149 "95 */ .notdef /* '226 150 "96 */ .notdef /* '227 151 "97 */ .notdef /* '230 152 "98 */ .notdef /* '231 153 "99 */ .notdef /* '232 154 "9A */ .notdef /* '233 155 "9B */ .notdef /* '234 156 "9C */ .notdef /* '235 157 "9D */ .notdef /* '236 158 "9E */ .notdef /* '237 159 "9F */ space /* '240 160 "A0 */ Aogonek /* '241 161 "A1 */ breve /* '242 162 "A2 */ Lslash /* '243 163 "A3 */ currency /* '244 164 "A4 */ Lcaron /* '245 165 "A5 */ Sacute /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ Scaron /* '251 169 "A9 */ Scedilla /* '252 170 "AA */ Tcaron /* '253 171 "AB */ Zacute /* '254 172 "AC */ hyphen /* '255 173 "AD */ Zcaron /* '256 174 "AE */ Zdotaccent /* '257 175 "AF */ degree /* '260 176 "B0 */ aogonek /* '261 177 "B1 */ ogonek /* '262 178 "B2 */ lslash /* '263 179 "B3 */ acute /* '264 180 "B4 */ lcaron /* '265 181 "B5 */ sacute /* '266 182 "B6 */ caron /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ scaron /* '271 185 "B9 */ scedilla /* '272 186 "BA */ tcaron /* '273 187 "BB */ zacute /* '274 188 "BC */ hungarumlaut /* '275 189 "BD */ zcaron /* '276 190 "BE */ zdotaccent /* '277 191 "BF */ Racute /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Abreve /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Lacute /* '305 197 "C5 */ Cacute /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Ccaron /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Eogonek /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Ecaron /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Dcaron /* '317 207 "CF */ Eth /* '320 208 "D0 */ Nacute /* '321 209 "D1 */ Ncaron /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Ohungarumlaut /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Rcaron /* '330 216 "D8 */ Uring /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Uhungarumlaut /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Tcedilla /* '336 222 "DE */ germandbls /* '337 223 "DF */ racute /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ abreve /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ lacute /* '345 229 "E5 */ cacute /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ ccaron /* '350 232 "E8 */ eacute /* '351 233 "E9 */ eogonek /* '352 234 "EA */ edieresis /* '353 235 "EB */ ecaron /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ dcaron /* '357 239 "EF */ eth /* '360 240 "F0 */ nacute /* '361 241 "F1 */ ncaron /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ ohungarumlaut /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ rcaron /* '370 248 "F8 */ uring /* '371 249 "F9 */ uacute /* '372 250 "FA */ uhungarumlaut /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ tcedilla /* '376 254 "FE */ dotaccent /* '377 255 "FF */ grace-5.1.25/fonts/enc/IsoLatin7.enc0000644000076500001440000002767707530521363016657 0ustar fnevgenyusersThis describes the ISOLatin7Encoding. ISO 8859-13 (Latin-7) ------------------------------------------------------------------------ Encoding=ISOLatin7Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ .notdef /* '220 144 "90 */ .notdef /* '221 145 "91 */ .notdef /* '222 146 "92 */ .notdef /* '223 147 "93 */ .notdef /* '224 148 "94 */ .notdef /* '225 149 "95 */ .notdef /* '226 150 "96 */ .notdef /* '227 151 "97 */ .notdef /* '230 152 "98 */ .notdef /* '231 153 "99 */ .notdef /* '232 154 "9A */ .notdef /* '233 155 "9B */ .notdef /* '234 156 "9C */ .notdef /* '235 157 "9D */ .notdef /* '236 158 "9E */ .notdef /* '237 159 "9F */ space /* '240 160 "A0 */ quotedblright /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ quotedblbase /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ Oslash /* '250 168 "A8 */ copyright /* '251 169 "A9 */ Rcommaaccent /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ hyphen /* '255 173 "AD */ registered /* '256 174 "AE */ AE /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ quotedblleft /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ oslash /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ rcommaaccent /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ ae /* '277 191 "BF */ Aogonek /* '300 192 "C0 */ Iogonek /* '301 193 "C1 */ Amacron /* '302 194 "C2 */ Cacute /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ Eogonek /* '306 198 "C6 */ Emacron /* '307 199 "C7 */ Ccaron /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Zacute /* '312 202 "CA */ Edotaccent /* '313 203 "CB */ Gcommaaccent /* '314 204 "CC */ Kcommaaccent /* '315 205 "CD */ Imacron /* '316 206 "CE */ Lcommaaccent /* '317 207 "CF */ Scaron /* '320 208 "D0 */ Nacute /* '321 209 "D1 */ Ncommaaccent /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Omacron /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Uogonek /* '330 216 "D8 */ Lslash /* '331 217 "D9 */ Sacute /* '332 218 "DA */ Umacron /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Zdotaccent /* '335 221 "DD */ Zcaron /* '336 222 "DE */ germandbls /* '337 223 "DF */ aogonek /* '340 224 "E0 */ iogonek /* '341 225 "E1 */ amacron /* '342 226 "E2 */ cacute /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ eogonek /* '346 230 "E6 */ emacron /* '347 231 "E7 */ ccaron /* '350 232 "E8 */ eacute /* '351 233 "E9 */ zacute /* '352 234 "EA */ edotaccent /* '353 235 "EB */ gcommaaccent /* '354 236 "EC */ kcommaaccent /* '355 237 "ED */ imacron /* '356 238 "EE */ lcommaaccent /* '357 239 "EF */ scaron /* '360 240 "F0 */ nacute /* '361 241 "F1 */ ncommaaccent /* '362 242 "F2 */ oacute /* '363 243 "F3 */ omacron /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ uogonek /* '370 248 "F8 */ lslash /* '371 249 "F9 */ sacute /* '372 250 "FA */ umacron /* '373 251 "FB */ udieresis /* '374 252 "FC */ zdotaccent /* '375 253 "FD */ zcaron /* '376 254 "FE */ quoteright /* '377 255 "FF */ grace-5.1.25/fonts/enc/WinAnsi.enc0000644000076500001440000003010507007421044016364 0ustar fnevgenyusers WinAnsi encoding vector Encoding=WinAnsiEncoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ bullet /* '177 127 "7F */ Euro /* '200 128 "80 */ bullet /* '201 129 "81 */ quotesinglbase /* '202 130 "82 */ florin /* '203 131 "83 */ quotedblbase /* '204 132 "84 */ ellipsis /* '205 133 "85 */ dagger /* '206 134 "86 */ daggerdbl /* '207 135 "87 */ circumflex /* '210 136 "88 */ perthousand /* '211 137 "89 */ Scaron /* '212 138 "8A */ guilsinglleft /* '213 139 "8B */ OE /* '214 140 "8C */ bullet /* '215 141 "8D */ Zcaron /* '216 142 "8E */ bullet /* '217 143 "8F */ bullet /* '220 144 "90 */ quoteleft /* '221 145 "91 */ quoteright /* '222 146 "92 */ quotedblleft /* '223 147 "93 */ quotedblright /* '224 148 "94 */ bullet /* '225 149 "95 */ endash /* '226 150 "96 */ emdash /* '227 151 "97 */ tilde /* '230 152 "98 */ trademark /* '231 153 "99 */ scaron /* '232 154 "9A */ guilsinglright /* '233 155 "9B */ oe /* '234 156 "9C */ bullet /* '235 157 "9D */ zcaron /* '236 158 "9E */ Ydieresis /* '237 159 "9F */ space /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ yen /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ hyphen /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ acute /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Eth /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Thorn /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ eth /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ thorn /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/IsoLatin9.enc0000644000076500001440000003023407070265677016654 0ustar fnevgenyusersISO 8859-15 (Latin-9) Latin-9 is a variation of Latin-1 which adds the Euro character as well as some missing French and Finnish characters. Latin-9 is sometimes also dubbed Latin-0. -------------------------------------------------------------------------- Encoding=ISOLatin9Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ .notdef /* '220 144 "90 */ .notdef /* '221 145 "91 */ .notdef /* '222 146 "92 */ .notdef /* '223 147 "93 */ .notdef /* '224 148 "94 */ .notdef /* '225 149 "95 */ .notdef /* '226 150 "96 */ .notdef /* '227 151 "97 */ .notdef /* '230 152 "98 */ .notdef /* '231 153 "99 */ .notdef /* '232 154 "9A */ .notdef /* '233 155 "9B */ .notdef /* '234 156 "9C */ .notdef /* '235 157 "9D */ .notdef /* '236 158 "9E */ .notdef /* '237 159 "9F */ space /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ Euro /* '244 164 "A4 */ yen /* '245 165 "A5 */ Scaron /* '246 166 "A6 */ section /* '247 167 "A7 */ scaron /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ hyphen /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ Zcaron /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ bullet /* '267 183 "B7 */ zcaron /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ OE /* '274 188 "BC */ oe /* '275 189 "BD */ Ydieresis /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Eth /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Thorn /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ eth /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ thorn /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/IsoLatin5.enc0000644000076500001440000003325110505254503016631 0ustar fnevgenyusersISO 8859-9 (Latin-5) -------------------------------------------------------------------------- Encoding=ISOLatin5Encoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ .notdef /* '200 128 "80 */ .notdef /* '201 129 "81 */ .notdef /* '202 130 "82 */ .notdef /* '203 131 "83 */ .notdef /* '204 132 "84 */ .notdef /* '205 133 "85 */ .notdef /* '206 134 "86 */ .notdef /* '207 135 "87 */ .notdef /* '210 136 "88 */ .notdef /* '211 137 "89 */ .notdef /* '212 138 "8A */ .notdef /* '213 139 "8B */ .notdef /* '214 140 "8C */ .notdef /* '215 141 "8D */ .notdef /* '216 142 "8E */ .notdef /* '217 143 "8F */ .notdef /* '220 144 "90 */ .notdef /* '221 145 "91 */ .notdef /* '222 146 "92 */ .notdef /* '223 147 "93 */ .notdef /* '224 148 "94 */ .notdef /* '225 149 "95 */ .notdef /* '226 150 "96 */ .notdef /* '227 151 "97 */ .notdef /* '230 152 "98 */ .notdef /* '231 153 "99 */ .notdef /* '232 154 "9A */ .notdef /* '233 155 "9B */ .notdef /* '234 156 "9C */ .notdef /* '235 157 "9D */ .notdef /* '236 158 "9E */ .notdef /* '237 159 "9F */ uni00A0 /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ yen /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ uni00AD /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ acute /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Gbreve /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Idotaccent /* '335 221 "DD */ Scedilla /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ gbreve /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ dotlessi /* '375 253 "FD */ scedilla /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/PDFDoc.enc0000644000076500001440000003004707007421044016060 0ustar fnevgenyusers PDFDoc encoding vector Encoding=PDFDocEncoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ breve /* '030 024 "18 */ caron /* '031 025 "19 */ circumflex /* '032 026 "1A */ dotaccent /* '033 027 "1B */ hungarumlaut /* '034 028 "1C */ ogonek /* '035 029 "1D */ ring /* '036 030 "1E */ tilde /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ bullet /* '200 128 "80 */ dagger /* '201 129 "81 */ daggerdbl /* '202 130 "82 */ ellipsis /* '203 131 "83 */ emdash /* '204 132 "84 */ endash /* '205 133 "85 */ florin /* '206 134 "86 */ fraction /* '207 135 "87 */ guilsinglleft /* '210 136 "88 */ guilsinglright /* '211 137 "89 */ minus /* '212 138 "8A */ perthousand /* '213 139 "8B */ quotedblbase /* '214 140 "8C */ quotedblleft /* '215 141 "8D */ quotedblright /* '216 142 "8E */ quoteleft /* '217 143 "8F */ quoteright /* '220 144 "90 */ quotesinglbase /* '221 145 "91 */ trademark /* '222 146 "92 */ fi /* '223 147 "93 */ fl /* '224 148 "94 */ Lslash /* '225 149 "95 */ OE /* '226 150 "96 */ Scaron /* '227 151 "97 */ Ydieresis /* '230 152 "98 */ Zcaron /* '231 153 "99 */ dotlessi /* '232 154 "9A */ lslash /* '233 155 "9B */ oe /* '234 156 "9C */ scaron /* '235 157 "9D */ zcaron /* '236 158 "9E */ .notdef /* '237 159 "9F */ Euro /* '240 160 "A0 */ exclamdown /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ currency /* '244 164 "A4 */ yen /* '245 165 "A5 */ brokenbar /* '246 166 "A6 */ section /* '247 167 "A7 */ dieresis /* '250 168 "A8 */ copyright /* '251 169 "A9 */ ordfeminine /* '252 170 "AA */ guillemotleft /* '253 171 "AB */ logicalnot /* '254 172 "AC */ .notdef /* '255 173 "AD */ registered /* '256 174 "AE */ macron /* '257 175 "AF */ degree /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ twosuperior /* '262 178 "B2 */ threesuperior /* '263 179 "B3 */ acute /* '264 180 "B4 */ mu /* '265 181 "B5 */ paragraph /* '266 182 "B6 */ periodcentered /* '267 183 "B7 */ cedilla /* '270 184 "B8 */ onesuperior /* '271 185 "B9 */ ordmasculine /* '272 186 "BA */ guillemotright /* '273 187 "BB */ onequarter /* '274 188 "BC */ onehalf /* '275 189 "BD */ threequarters /* '276 190 "BE */ questiondown /* '277 191 "BF */ Agrave /* '300 192 "C0 */ Aacute /* '301 193 "C1 */ Acircumflex /* '302 194 "C2 */ Atilde /* '303 195 "C3 */ Adieresis /* '304 196 "C4 */ Aring /* '305 197 "C5 */ AE /* '306 198 "C6 */ Ccedilla /* '307 199 "C7 */ Egrave /* '310 200 "C8 */ Eacute /* '311 201 "C9 */ Ecircumflex /* '312 202 "CA */ Edieresis /* '313 203 "CB */ Igrave /* '314 204 "CC */ Iacute /* '315 205 "CD */ Icircumflex /* '316 206 "CE */ Idieresis /* '317 207 "CF */ Eth /* '320 208 "D0 */ Ntilde /* '321 209 "D1 */ Ograve /* '322 210 "D2 */ Oacute /* '323 211 "D3 */ Ocircumflex /* '324 212 "D4 */ Otilde /* '325 213 "D5 */ Odieresis /* '326 214 "D6 */ multiply /* '327 215 "D7 */ Oslash /* '330 216 "D8 */ Ugrave /* '331 217 "D9 */ Uacute /* '332 218 "DA */ Ucircumflex /* '333 219 "DB */ Udieresis /* '334 220 "DC */ Yacute /* '335 221 "DD */ Thorn /* '336 222 "DE */ germandbls /* '337 223 "DF */ agrave /* '340 224 "E0 */ aacute /* '341 225 "E1 */ acircumflex /* '342 226 "E2 */ atilde /* '343 227 "E3 */ adieresis /* '344 228 "E4 */ aring /* '345 229 "E5 */ ae /* '346 230 "E6 */ ccedilla /* '347 231 "E7 */ egrave /* '350 232 "E8 */ eacute /* '351 233 "E9 */ ecircumflex /* '352 234 "EA */ edieresis /* '353 235 "EB */ igrave /* '354 236 "EC */ iacute /* '355 237 "ED */ icircumflex /* '356 238 "EE */ idieresis /* '357 239 "EF */ eth /* '360 240 "F0 */ ntilde /* '361 241 "F1 */ ograve /* '362 242 "F2 */ oacute /* '363 243 "F3 */ ocircumflex /* '364 244 "F4 */ otilde /* '365 245 "F5 */ odieresis /* '366 246 "F6 */ divide /* '367 247 "F7 */ oslash /* '370 248 "F8 */ ugrave /* '371 249 "F9 */ uacute /* '372 250 "FA */ ucircumflex /* '373 251 "FB */ udieresis /* '374 252 "FC */ yacute /* '375 253 "FD */ thorn /* '376 254 "FE */ ydieresis /* '377 255 "FF */ grace-5.1.25/fonts/enc/MacRoman.enc0000644000076500001440000002773107007421044016524 0ustar fnevgenyusers MacRoman encoding vector Encoding=MacRomanEncoding /* The name of the encoding scheme */ .notdef /* '000 000 "00 */ .notdef /* '001 001 "01 */ .notdef /* '002 002 "02 */ .notdef /* '003 003 "03 */ .notdef /* '004 004 "04 */ .notdef /* '005 005 "05 */ .notdef /* '006 006 "06 */ .notdef /* '007 007 "07 */ .notdef /* '010 008 "08 */ .notdef /* '011 009 "09 */ .notdef /* '012 010 "0A */ .notdef /* '013 011 "0B */ .notdef /* '014 012 "0C */ .notdef /* '015 013 "0D */ .notdef /* '016 014 "0E */ .notdef /* '017 015 "0F */ .notdef /* '020 016 "10 */ .notdef /* '021 017 "11 */ .notdef /* '022 018 "12 */ .notdef /* '023 019 "13 */ .notdef /* '024 020 "14 */ .notdef /* '025 021 "15 */ .notdef /* '026 022 "16 */ .notdef /* '027 023 "17 */ .notdef /* '030 024 "18 */ .notdef /* '031 025 "19 */ .notdef /* '032 026 "1A */ .notdef /* '033 027 "1B */ .notdef /* '034 028 "1C */ .notdef /* '035 029 "1D */ .notdef /* '036 030 "1E */ .notdef /* '037 031 "1F */ space /* '040 032 "20 */ exclam /* '041 033 "21 */ quotedbl /* '042 034 "22 */ numbersign /* '043 035 "23 */ dollar /* '044 036 "24 */ percent /* '045 037 "25 */ ampersand /* '046 038 "26 */ quotesingle /* '047 039 "27 */ parenleft /* '050 040 "28 */ parenright /* '051 041 "29 */ asterisk /* '052 042 "2A */ plus /* '053 043 "2B */ comma /* '054 044 "2C */ hyphen /* '055 045 "2D */ period /* '056 046 "2E */ slash /* '057 047 "2F */ zero /* '060 048 "30 */ one /* '061 049 "31 */ two /* '062 050 "32 */ three /* '063 051 "33 */ four /* '064 052 "34 */ five /* '065 053 "35 */ six /* '066 054 "36 */ seven /* '067 055 "37 */ eight /* '070 056 "38 */ nine /* '071 057 "39 */ colon /* '072 058 "3A */ semicolon /* '073 059 "3B */ less /* '074 060 "3C */ equal /* '075 061 "3D */ greater /* '076 062 "3E */ question /* '077 063 "3F */ at /* '100 064 "40 */ A /* '101 065 "41 */ B /* '102 066 "42 */ C /* '103 067 "43 */ D /* '104 068 "44 */ E /* '105 069 "45 */ F /* '106 070 "46 */ G /* '107 071 "47 */ H /* '110 072 "48 */ I /* '111 073 "49 */ J /* '112 074 "4A */ K /* '113 075 "4B */ L /* '114 076 "4C */ M /* '115 077 "4D */ N /* '116 078 "4E */ O /* '117 079 "4F */ P /* '120 080 "50 */ Q /* '121 081 "51 */ R /* '122 082 "52 */ S /* '123 083 "53 */ T /* '124 084 "54 */ U /* '125 085 "55 */ V /* '126 086 "56 */ W /* '127 087 "57 */ X /* '130 088 "58 */ Y /* '131 089 "59 */ Z /* '132 090 "5A */ bracketleft /* '133 091 "5B */ backslash /* '134 092 "5C */ bracketright /* '135 093 "5D */ asciicircum /* '136 094 "5E */ underscore /* '137 095 "5F */ grave /* '140 096 "60 */ a /* '141 097 "61 */ b /* '142 098 "62 */ c /* '143 099 "63 */ d /* '144 100 "64 */ e /* '145 101 "65 */ f /* '146 102 "66 */ g /* '147 103 "67 */ h /* '150 104 "68 */ i /* '151 105 "69 */ j /* '152 106 "6A */ k /* '153 107 "6B */ l /* '154 108 "6C */ m /* '155 109 "6D */ n /* '156 110 "6E */ o /* '157 111 "6F */ p /* '160 112 "70 */ q /* '161 113 "71 */ r /* '162 114 "72 */ s /* '163 115 "73 */ t /* '164 116 "74 */ u /* '165 117 "75 */ v /* '166 118 "76 */ w /* '167 119 "77 */ x /* '170 120 "78 */ y /* '171 121 "79 */ z /* '172 122 "7A */ braceleft /* '173 123 "7B */ bar /* '174 124 "7C */ braceright /* '175 125 "7D */ asciitilde /* '176 126 "7E */ .notdef /* '177 127 "7F */ Adieresis /* '200 128 "80 */ Aring /* '201 129 "81 */ Ccedilla /* '202 130 "82 */ Eacute /* '203 131 "83 */ Ntilde /* '204 132 "84 */ Odieresis /* '205 133 "85 */ Udieresis /* '206 134 "86 */ aacute /* '207 135 "87 */ agrave /* '210 136 "88 */ acircumflex /* '211 137 "89 */ adieresis /* '212 138 "8A */ atilde /* '213 139 "8B */ aring /* '214 140 "8C */ ccedilla /* '215 141 "8D */ eacute /* '216 142 "8E */ egrave /* '217 143 "8F */ ecircumflex /* '220 144 "90 */ edieresis /* '221 145 "91 */ iacute /* '222 146 "92 */ igrave /* '223 147 "93 */ icircumflex /* '224 148 "94 */ idieresis /* '225 149 "95 */ ntilde /* '226 150 "96 */ oacute /* '227 151 "97 */ ograve /* '230 152 "98 */ ocircumflex /* '231 153 "99 */ odieresis /* '232 154 "9A */ otilde /* '233 155 "9B */ uacute /* '234 156 "9C */ ugrave /* '235 157 "9D */ ucircumflex /* '236 158 "9E */ udieresis /* '237 159 "9F */ dagger /* '240 160 "A0 */ degree /* '241 161 "A1 */ cent /* '242 162 "A2 */ sterling /* '243 163 "A3 */ section /* '244 164 "A4 */ bullet /* '245 165 "A5 */ paragraph /* '246 166 "A6 */ germandbls /* '247 167 "A7 */ registered /* '250 168 "A8 */ copyright /* '251 169 "A9 */ trademark /* '252 170 "AA */ acute /* '253 171 "AB */ dieresis /* '254 172 "AC */ .notdef /* '255 173 "AD */ AE /* '256 174 "AE */ Oslash /* '257 175 "AF */ .notdef /* '260 176 "B0 */ plusminus /* '261 177 "B1 */ .notdef /* '262 178 "B2 */ .notdef /* '263 179 "B3 */ yen /* '264 180 "B4 */ mu /* '265 181 "B5 */ .notdef /* '266 182 "B6 */ .notdef /* '267 183 "B7 */ .notdef /* '270 184 "B8 */ .notdef /* '271 185 "B9 */ .notdef /* '272 186 "BA */ ordfeminine /* '273 187 "BB */ ordmasculine /* '274 188 "BC */ .notdef /* '275 189 "BD */ ae /* '276 190 "BE */ oslash /* '277 191 "BF */ questiondown /* '300 192 "C0 */ exclamdown /* '301 193 "C1 */ logicalnot /* '302 194 "C2 */ .notdef /* '303 195 "C3 */ florin /* '304 196 "C4 */ .notdef /* '305 197 "C5 */ .notdef /* '306 198 "C6 */ guillemotleft /* '307 199 "C7 */ guillemotright /* '310 200 "C8 */ ellipsis /* '311 201 "C9 */ space /* '312 202 "CA */ Agrave /* '313 203 "CB */ Atilde /* '314 204 "CC */ Otilde /* '315 205 "CD */ OE /* '316 206 "CE */ oe /* '317 207 "CF */ endash /* '320 208 "D0 */ emdash /* '321 209 "D1 */ quotedblleft /* '322 210 "D2 */ quotedblright /* '323 211 "D3 */ quoteleft /* '324 212 "D4 */ quoteright /* '325 213 "D5 */ divide /* '326 214 "D6 */ .notdef /* '327 215 "D7 */ ydieresis /* '330 216 "D8 */ Ydieresis /* '331 217 "D9 */ fraction /* '332 218 "DA */ currency /* '333 219 "DB */ guilsingleft /* '334 220 "DC */ guilsingright /* '335 221 "DD */ fi /* '336 222 "DE */ fl /* '337 223 "DF */ daggerdbl /* '340 224 "E0 */ periodcentered /* '341 225 "E1 */ quotesinglbase /* '342 226 "E2 */ quotedblbase /* '343 227 "E3 */ perthousand /* '344 228 "E4 */ Acircumflex /* '345 229 "E5 */ Ecircumflex /* '346 230 "E6 */ Aacute /* '347 231 "E7 */ Edieresis /* '350 232 "E8 */ Egrave /* '351 233 "E9 */ Iacute /* '352 234 "EA */ Icircumflex /* '353 235 "EB */ Idieresis /* '354 236 "EC */ Igrave /* '355 237 "ED */ Oacute /* '356 238 "EE */ Ocircumflex /* '357 239 "EF */ .notdef /* '360 240 "F0 */ Ograve /* '361 241 "F1 */ Uacute /* '362 242 "F2 */ Ucircumflex /* '363 243 "F3 */ Ugrave /* '364 244 "F4 */ dotlessi /* '365 245 "F5 */ circumflex /* '366 246 "F6 */ tilde /* '367 247 "F7 */ macron /* '370 248 "F8 */ breve /* '371 249 "F9 */ dotaccent /* '372 250 "FA */ ring /* '373 251 "FB */ cedilla /* '374 252 "FC */ hungarumlaut /* '375 253 "FD */ ogonek /* '376 254 "FE */ caron /* '377 255 "FF */ grace-5.1.25/fonts/enc/CP1251.enc0000644000076500001440000000371607574376420015657 0ustar fnevgenyusersEncoding=CP1251 .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef afii10051 afii10052 quotesinglbase afii10100 quotedblbase ellipsis dagger daggerdbl Euro perthousand afii10058 guilsinglleft afii10059 afii10061 afii10060 afii10145 afii10099 quoteleft quoteright quotedblleft quotedblright bullet endash emdash tilde trademark afii10106 guilsinglright afii10107 afii10109 afii10108 afii10193 .notdef afii10062 afii10110 afii10057 currency afii10050 brokenbar section afii10023 copyright afii10053 guillemotleft logicalnot hyphen registered afii10056 degree plusminus afii10055 afii10103 afii10098 mu paragraph periodcentered afii10071 afii61352 afii10101 guillemotright afii10105 afii10054 afii10102 afii10104 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 grace-5.1.25/fonts/enc/KOI8-U.enc0000644000076500001440000000362607574376420015760 0ustar fnevgenyusersEncoding=KOI8-U .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef SF100000 SF110000 SF010000 SF030000 SF020000 SF040000 SF080000 SF090000 SF060000 SF070000 SF050000 upblock dnblock block lfblock rtblock ltshade shade dkshade integraltp filledbox uni2219 radical approxequal lessequal greaterequal uni00A0 integralbt degree twosuperior periodcentered divide SF430000 SF240000 SF510000 afii10071 afii10101 SF390000 afii10103 afii10104 SF250000 SF500000 SF490000 SF380000 SF280000 afii10098 SF260000 SF360000 SF370000 SF420000 SF190000 afii10023 afii10053 SF230000 afii10055 afii10056 SF410000 SF450000 SF460000 SF400000 SF540000 afii10050 SF440000 copyright afii10096 afii10065 afii10066 afii10088 afii10069 afii10070 afii10086 afii10068 afii10087 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10097 afii10082 afii10083 afii10084 afii10085 afii10072 afii10067 afii10094 afii10093 afii10073 afii10090 afii10095 afii10091 afii10089 afii10092 afii10048 afii10017 afii10018 afii10040 afii10021 afii10022 afii10038 afii10020 afii10039 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10049 afii10034 afii10035 afii10036 afii10037 afii10024 afii10019 afii10046 afii10045 afii10025 afii10042 afii10047 afii10043 afii10041 afii10044 grace-5.1.25/Makefile0000644000076500001440000000352311116553346014102 0ustar fnevgenyusers##################################################### # Top-level Makefile for Grace # ##################################################### # You should not change anything here. # ##################################################### include Make.conf subdirs : configure Make.conf @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE)) || exit 1; done all : subdirs install : subdirs @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) install) || exit 1; done $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME) @if test -f $(DESTDIR)$(GRACE_HOME)/gracerc; then \ echo " $(DESTDIR)$(GRACE_HOME)/gracerc exists"; \ echo " Installing only $(DESTDIR)$(GRACE_HOME)/gracerc.sample"; \ $(INSTALL_DATA) gracerc $(DESTDIR)$(GRACE_HOME)/gracerc.sample; \ else \ $(INSTALL_DATA) gracerc $(DESTDIR)$(GRACE_HOME); \ fi $(INSTALL_DATA) gracerc.user $(DESTDIR)$(GRACE_HOME) tests : subdirs @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) tests) || exit 1; done check : tests links : subdirs @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) links) || exit 1; done clean : @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done distclean : @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) distclean) || exit 1; done $(RM) config.log config.status config.cache config.h Make.conf devclean : @set -e; for i in $(SUBDIRS); do (cd $$i; $(MAKE) devclean) || exit 1; done $(RM) config.log config.status config.cache config.h Make.conf \ configure CHANGES ChangeLog texts : CHANGES ChangeLog CHANGES : doc/CHANGES.html @lynx -dump $? > CHANGES ChangeLog : ./scripts/cvs2cl.pl -F grace-5_1-series Make.conf : ac-tools/Make.conf.in configure @echo @echo 'Please re-run ./configure' @echo @exit 1 configure : ac-tools/configure.in ac-tools/aclocal.m4 autoconf ac-tools/configure.in > $@ && chmod +x $@ dummy : grace-5.1.25/patches/0000755000076500001440000000000012467751541014075 5ustar fnevgenyusersgrace-5.1.25/patches/autoconf.patch0000644000076500001440000000131007126222601016711 0ustar fnevgenyusersThis is a patch fixing AC_TRY_RUN() behaviour. It should be applied if you're going to re-generate the configure script. --- autoconf-2.13/acgeneral.m4.orig Tue Jan 5 15:27:37 1999 +++ autoconf-2.13/acgeneral.m4 Wed Jun 28 01:02:43 2000 @@ -1825,14 +1825,15 @@ EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then + ifelse([$2], , :, [ $2 + rm -fr conftest* +]) dnl Don't remove the temporary files here, so they can be examined. - ifelse([$2], , :, [$2]) else +ifelse([$3], , , [ $3 ] echo "configure: failed program was:" >&AC_FD_CC cat conftest.$ac_ext >&AC_FD_CC -ifelse([$3], , , [ rm -fr conftest* - $3 -])dnl +)dnl fi rm -fr conftest*]) grace-5.1.25/patches/XmHTML.patch0000644000076500001440000000434407121271757016171 0ustar fnevgenyusersThe patch fixes: 1)
placement 2) formatting inside
 (not really nice HTML, but any browser
   supports it)
3) "Can't convert XmHTML_DEFAULT_GAMMA" runtime warning

--- XmHTML-1.1.7/lib/common/layout.c.orig	Thu Jan 28 02:10:17 1999
+++ XmHTML-1.1.7/lib/common/layout.c	Mon Jun 12 21:55:01 2000
@@ -2377,14 +2377,16 @@
 	* Linefeeds in rules are divided accross the rule: half above and
 	* half below.
 	*****/
-	if(data->linefeed)
+	if(data->linefeed) {
+		box->y += data->linefeed;
 		y_offset = data->linefeed/2;
-	else
+	} else {
 		y_offset = data->font->height/2; 
+	}
 
 	data->y = box->y + y_offset;
-
-	/* take height of rule into account as well */
+	
+        /* take height of rule into account as well */
 	y_offset += data->height/2;
 
 	/* full height of the box */
--- XmHTML-1.1.7/lib/common/parse.c.orig	Wed Jan 20 07:13:08 1999
+++ XmHTML-1.1.7/lib/common/parse.c	Mon Jun 12 01:40:19 2000
@@ -1258,6 +1258,24 @@
 				current == HT_U || current == HT_VAR ||
 				current == HT_FONT || current == HT_ZTEXT)
 				return(True);
+			
+            /* allow most container elements as well if we can relax */
+			if(!parser->strict_checking &&
+				(current == HT_TABLE || current == HT_TR || current == HT_TH ||
+					current == HT_TD || current == HT_OL || current == HT_UL ||
+					current == HT_DL || current == HT_P || current == HT_DIV ||
+					current == HT_BLOCKQUOTE || current == HT_CENTER ||
+					current == HT_FORM || current == HT_CAPTION ||
+					current == HT_H1 || current == HT_H2 || current == HT_H3 ||
+					current == HT_H4 || current == HT_H5 || current == HT_H6))
+			{
+#ifdef MINIPARSE
+				tag_is_wrong_but_allowed = True;
+#endif
+				/* but always issue a warning */
+				parserCallback(parser, current, state, HTML_VIOLATION);
+				return(True);
+			}
 			break;
 
 		case HT_ZTEXT:
--- XmHTML-1.1.7/include/XmHTML/resources.h.orig	Sun Dec 13 14:48:46 1998
+++ XmHTML-1.1.7/include/XmHTML/resources.h	Tue Jun 13 02:29:30 2000
@@ -102,7 +102,9 @@
 #define _resources_h_
 
 #define Offset(field) XtOffsetOf(XmHTMLRec, html.field)
-#define Stringify(VAL)	#VAL
+/* Must use cpp prescan for two levels of macros */
+#define Stringify(VAL)  _Stringify(VAL)
+#define _Stringify(VAL) #VAL
 
 static XtResource resources [] =
 {
grace-5.1.25/grace_np/0000755000076500001440000000000012467751541014224 5ustar  fnevgenyusersgrace-5.1.25/grace_np/grace_np.c0000644000076500001440000002351511573735405016152 0ustar  fnevgenyusers/*
 * grace_np - a library for interfacing with Grace using pipes
 * 
 * Copyright (c) 1997-1998 Henrik Seidel
 * Copyright (c) 1999-2003 Grace Development Team
 *
 *
 *                           All Rights Reserved
 * 
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Library General Public
 *    License as published by the Free Software Foundation; either
 *    version 2 of the License, or (at your option) any later version.
 * 
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Library General Public License for more details.
 * 
 *    You should have received a copy of the GNU Library General Public
 *    License along with this library; if not, write to the Free
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#ifdef HAVE_SYS_PARAM_H
#  include 
#endif
#include 
#include 
#ifdef HAVE_FCNTL_H
#  include 
#endif
#ifdef HAVE_SYS_WAIT_H
#  include 
#endif
#include 
#ifndef OPEN_MAX
#  define OPEN_MAX 256
#endif

#include "grace_np.h"

/* static global variables */
static char* buf = NULL;               /* global write buffer */
static int bufsize;                    /* size of the global write buffer */
static int bufsizeforce;               /* threshold for forcing a flush */
static int fd_pipe = -1;               /* file descriptor of the pipe */
static pid_t pid = (pid_t) -1;         /* pid of grace */

/*
 * notify grace when finished
 */
static void
#ifdef HAVE_ON_EXIT
notify_grace_on_exit(int status, void* arg)
#else
notify_grace_on_exit(void)
#endif
{
    if (fd_pipe != -1) {
        GraceClosePipe();
    }
}

/*
 * default function for reporting errors
 */
static void
GraceDefaultError(const char *msg)
{
    fprintf(stderr, "%s\n", msg);
}

/*
 * variable holding user function for reporting errors
 */
static GraceErrorFunctionType error_function = GraceDefaultError;

/*
 * function for reporting system errors
 */
static void
GracePerror(const char *prefix)
{
    char msg[1024];

#ifdef HAVE_STRERROR
    sprintf(msg, "%s: %s", prefix, strerror(errno));
#else
# ifdef HAVE_SYS_ERRLIST_IN_STDIO_H
    sprintf(msg, "%s: %s", prefix, sys_errlist[errno]);
# else
    if (errno == EPIPE) {
        /* this one deserve special attention here */
        sprintf(msg, "%s: Broken pipe", prefix);
    } else {
        sprintf(msg, "%s: System error (errno = %d)", prefix, errno);
    }
# endif
#endif

    error_function(msg);
}

/* Close the pipe and free the buffer */
static void
GraceCleanup(void)
{
    if (fd_pipe != -1) {
        if (close(fd_pipe) != 0) {
            GracePerror("GraceCleanup");
        }
        fd_pipe = -1;
    }
    
    free(buf);
    buf = NULL;
}

/*
 * try to send data to grace (one pass only)
 */
static int
GraceOneWrite(int left)
{
    int written;

    written = write(fd_pipe, buf, left);

    if (written > 0) {

        left -= written;

        if (left > 0) {
            /* move the remaining characters (and the final '\0') */
#ifdef HAVE_MEMMOVE
            memmove(buf, buf + written, left + 1);
#else
            bcopy(buf + written, buf, left + 1);
#endif
        } else {
            /* clear the buffer */
            *buf = '\0';
        }

    } else if (written < 0) {
        if (errno == EPIPE) {
            /* Grace has closed the pipe : we cannot write anymore */
            GraceCleanup();
        } else {
            GracePerror("GraceOneWrite");
        }
        return (-1);
    }

    return (left);

}

/*
 * register a user function to report errors
 */
GraceErrorFunctionType
GraceRegisterErrorFunction(GraceErrorFunctionType f)
{
    GraceErrorFunctionType old = error_function;
    if (f != (GraceErrorFunctionType) NULL) {
        error_function = f;
    }
    return old;
}

static void
handle_sigchld(int signum)
{
    int status;
    pid_t retval;
    
    if (fd_pipe != -1) {
        if (pid > 0) {
            retval = waitpid(pid, &status, WNOHANG);
            if (retval == pid) {
                /* Grace just died */
                pid = (pid_t) -1;
		close(fd_pipe);
		fd_pipe = -1;
            }
        }
    }
}

static int
_GraceFlush(void)
{
    int loop, left;

    if (fd_pipe == -1) {
        return (-1);
    }

    left = strlen(buf);

    for (loop = 0; loop < 30; loop++) {
        left = GraceOneWrite(left);
        if (left < 0) {
            return (-1);
        } else if (left == 0) {
            return (0);
        }
    }

    error_function("GraceFlush: ran into eternal loop");

    return (-1);
}


int
GraceOpenVA(char* exe, int bs, ...)
{
    int i, fd[2];
    char fd_number[4];
    va_list ap;
    char **arglist;
    char *s;
    int numarg;

    if (fd_pipe != -1) {
        error_function("Grace subprocess already running");
        return (-1);
    }

    /* Make sure the buffer is not too small */
    if (bs < 64) {
        error_function("The buffer size in GraceOpenVA should be >= 64");
        return (-1);
    }
    bufsize = bs;
    bufsizeforce = bs / 2;

    /* make sure the grace subprocess is notified at the end */
#ifdef HAVE_ON_EXIT
    on_exit(notify_grace_on_exit, NULL);
#else
    atexit(notify_grace_on_exit);
#endif

    /* Don't exit on SIGPIPE */
    signal(SIGPIPE, SIG_IGN);
    
    /* Clean up zombie prcesses */
    signal(SIGCHLD, handle_sigchld);

    /* Make the pipe */
    if (pipe(fd)) {
        GracePerror("GraceOpenVA");
        return (-1);
    }

    /* Fork a subprocess for starting grace */
    pid = fork();
    if (pid == (pid_t) (-1)) {
        GracePerror("GraceOpenVA");
        close(fd[0]);
        close(fd[1]);
        return (-1);
    }

    /* If we are the child, replace ourselves with grace */
    if (pid == (pid_t) 0) {
        for (i = 0; i < OPEN_MAX; i++) {
            /* we close everything except stdin, stdout, stderr
               and the read part of the pipe */
            if (i != fd[0]         &&
                i != STDIN_FILENO  &&
                i != STDOUT_FILENO &&
                i != STDERR_FILENO) {
                close(i);
            }
        }

        /* build the argument list */
        va_start(ap, bs);
        numarg = 3;
        arglist = malloc((numarg + 1)*SIZEOF_VOID_P);
        arglist[0] = exe;
        arglist[1] = "-dpipe";
        sprintf(fd_number, "%d", fd[0]);
        arglist[2] = fd_number;
        while ((s = va_arg(ap, char *)) != NULL) {
            numarg++;
            arglist = realloc(arglist, (numarg + 1)*SIZEOF_VOID_P);
            arglist[numarg - 1] = s;
        }
        arglist[numarg] = NULL;
        va_end(ap);

        execvp(exe, arglist);
        
        /* if we get here execvp failed */
        fprintf(stderr, "GraceOpenVA: Could not start %s\n", exe);
        
        _exit(EXIT_FAILURE);
    }

    /* We are the parent -> keep the write part of the pipe
       and allocate the write buffer */
    buf = malloc(bufsize);
    if (buf == NULL) {
        error_function("GraceOpenVA: Not enough memory");
        close(fd[0]);
        close(fd[1]);
        return (-1);
    }
    *buf = '\0';

    close(fd[0]);
    fd_pipe = fd[1];

    return (0);
}

int
GraceOpen(int bs)
{
    return GraceOpenVA("xmgrace", bs, "-nosafe", "-noask", NULL);
}

int
GraceIsOpen(void)
{
    return (fd_pipe >= 0) ? 1 : 0;
}

int
GraceClose(void)
{
    if (fd_pipe == -1) {
        error_function("No grace subprocess1");
        return (-1);
    }

    /* Tell grace to exit */
    if (pid > 0) {
        /* what the mess with globals... */
        if ((GraceCommand ("exit") == -1 || _GraceFlush() == -1) && pid > 0) {
            kill(pid, SIGTERM);
        }
    }

    GraceCleanup();

    return (0);
}

int
GraceClosePipe(void)
{
    if (fd_pipe == -1) {
        error_function("No grace subprocess2");
        return (-1);
    }

    /* Tell grace to close the pipe */
    if (GraceCommand ("close") == -1 || _GraceFlush() == -1){
        GraceCleanup();
        return (-1);
    }

    GraceCleanup();
    
    return (0);
}

int
GraceFlush(void)
{
    if (fd_pipe == -1) {
        error_function("No grace subprocess3");
        return (-1);
    }

    return _GraceFlush();
}

int
GracePrintf(const char* fmt, ...)
{
    va_list ap;
    char* str;
    int nchar;
    
    if (fd_pipe == -1) {
        error_function("No grace subprocess4");
        return (0);
    }

    /* Allocate a new string buffer for the function arguments */
    str = (char *) malloc ((size_t) bufsize);
    if (str == (char *) NULL) {
        error_function("GracePrintf: Not enough memory");
        return (0);
    }
    /* Print to the string buffer according to the function arguments */
    va_start (ap, fmt);
#if defined(HAVE_VSNPRINTF)
    nchar = vsnprintf (str, bufsize - 2, fmt, ap);
#else
    nchar = vsprintf (str, fmt, ap);
#endif
    va_end (ap);
    nchar++;               /* This is for the appended "\n" */
    if (GraceCommand (str) == -1) {
        nchar = 0;
    }
    free (str);
    return (nchar);
}

int
GraceCommand(const char* cmd)
{
    int left;
    
    if (fd_pipe == -1) {
        error_function("No grace subprocess5");
        return (-1);
    }

    /* Append the new string to the global write buffer */
    if (strlen(buf) + strlen(cmd) + 2 > bufsize) {
        error_function("GraceCommand: Buffer full");
        return (-1);
    }
    strcat(buf, cmd);
    strcat(buf, "\n");
    left = strlen(buf);
    
    /* Try to send the global write buffer to grace */
    left = GraceOneWrite(left);
    if (left >= bufsizeforce) {
        if (_GraceFlush() != 0) {
            return (-1);
        }
    } else if (left < 0) {
        return (-1);
    }

    return (0);
}
grace-5.1.25/grace_np/grace_np.h0000644000076500001440000000407307212017670016145 0ustar  fnevgenyusers/*
 * grace_np - a library for interfacing with Grace using pipes
 * 
 * Copyright (c) 1997-1998 Henrik Seidel
 * Copyright (c) 1999-2000 Grace Development Team
 *
 *
 *                           All Rights Reserved
 * 
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Library General Public
 *    License as published by the Free Software Foundation; either
 *    version 2 of the License, or (at your option) any later version.
 * 
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Library General Public License for more details.
 * 
 *    You should have received a copy of the GNU Library General Public
 *    License along with this library; if not, write to the Free
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef GRACE_NPIPE_H_
#define GRACE_NPIPE_H_

#ifdef __cplusplus
extern "C" {
#endif

/* register a user function to print errors */
/* (the default function appends a newline and prints to standard error) */
typedef void (*GraceErrorFunctionType) (const char *);
GraceErrorFunctionType GraceRegisterErrorFunction(GraceErrorFunctionType f);

/* launch a grace subprocess and a communication channel with it */
int GraceOpenVA(char* exe, int bs, ...);

/* a simplified (obsolete) version of the above */
int GraceOpen(int bs);

/* test if a grace subprocess is currently connected */
int GraceIsOpen(void);

/* close the communication channel and exit the grace subprocess */
int GraceClose(void);

/* close the communication channel and leave the grace subprocess alone */
int GraceClosePipe(void);

/* flush all the data remaining in the buffer */
int GraceFlush(void);

/* format a command and send it to the grace subprocess */
int GracePrintf(const char*, ...);

/* send an already formated command to the grace subprocess */
int GraceCommand(const char*);

#ifdef __cplusplus
}
#endif

#endif /* GRACE_NPIPE_H */
grace-5.1.25/grace_np/testf_np.f0000644000076500001440000000467206672604230016217 0ustar  fnevgenyusers       PROGRAM TESTF_NP
C
       IMPLICIT NONE
       INTEGER i
       CHARACTER*64 buf
C
       INTEGER GraceOpenf, GraceIsOpenf
       EXTERNAL GraceOpenf, GraceIsOpenf
       EXTERNAL GraceRegistErerrorFunctionf
       EXTERNAL GraceCommandf, GraceClosef
       EXTERNAL MyError
C
       CALL GraceRegistErerrorFunctionf (MyError)
C
C      Start Grace with a buffer size of 2048 and open the pipe
C
       IF (GraceOpenf(2048) .EQ. -1) THEN
           WRITE (*,*) 'Can not run grace.'
           CALL EXIT (1)
       ENDIF
C
C      Send some initialization commands to Grace
C
       CALL GraceCommandf ('world xmax 100')
       CALL GraceCommandf ('world ymax 10000')
       CALL GraceCommandf ('xaxis tick major 20')
       CALL GraceCommandf ('xaxis tick minor 10')
       CALL GraceCommandf ('yaxis tick major 2000')
       CALL GraceCommandf ('yaxis tick minor 1000')
       CALL GraceCommandf ('s0 on')
       CALL GraceCommandf ('s0 symbol 1')
       CALL GraceCommandf ('s0 symbol size 0.3')
       CALL GraceCommandf ('s0 symbol fill pattern 1')
       CALL GraceCommandf ('s1 on')
       CALL GraceCommandf ('s1 symbol 1')
       CALL GraceCommandf ('s1 symbol size 0.3')
       CALL GraceCommandf ('s1 symbol fill pattern 1')
C
C      Display sample data
C
       DO i = 1, 100, 1
           IF (GraceIsOpenf () .NE. 0) THEN
               WRITE (buf, 1) i, i
               CALL GraceCommandf (buf)
               WRITE (buf, 2) i, i**2
               CALL GraceCommandf (buf)
C
C              Update the Grace display after every ten steps
C
               IF (10*(i / 10) .EQ. i) THEN
                   CALL GraceCommandf ('redraw')
C                  Wait a second, just to simulate some time needed
C                  for calculations. Your real application shouldn't wait
                   CALL SLEEP (1)
               ENDIF
           ENDIF
       ENDDO
C
       IF (GraceIsOpenf () .NE. 0) THEN
C
C          Tell Grace to save the data
C
           CALL GraceCommandf ('saveall "sample.agr"')
C
C          Flush the output buffer and close Grace
C
           CALL GraceClosef ()
C
C          We are done
C
           CALL EXIT (0)
       ELSE
           CALL EXIT (1)
       ENDIF
C      
 1     FORMAT ('g0.s0 point ', I6, ' , ', I6)
 2     FORMAT ('g0.s1 point ', I6, ' , ', I6)
C
       END
C
       SUBROUTINE MyError (str)
C
       IMPLICIT NONE
       CHARACTER*(*) str
C
       WRITE (0, '(''library message : "'', a, ''"'')') str
C
       RETURN
       END
grace-5.1.25/grace_np/test_np.c0000644000076500001440000000364406672604230016044 0ustar  fnevgenyusers#include 
#include 
#include 
#include "grace_np.h"

#ifndef EXIT_SUCCESS
#  define EXIT_SUCCESS 0
#endif

#ifndef EXIT_FAILURE
#  define EXIT_FAILURE -1
#endif

void my_error_function(const char *msg)
{
    fprintf(stderr, "library message : \"%s\"\n", msg);
}

int
main (int argc, char* argv[])
{
    int i;

    GraceRegisterErrorFunction (my_error_function);

    /* Start Grace with a buffer size of 2048 and open the pipe */
    if (GraceOpen(2048) == -1) {
        fprintf (stderr, "Can't run Grace. \n");
        exit (EXIT_FAILURE);
    }
    
    /* Send some initialization commands to Grace */
    GracePrintf ("world xmax 100");
    GracePrintf ("world ymax 10000");
    GracePrintf ("xaxis tick major 20");
    GracePrintf ("xaxis tick minor 10");
    GracePrintf ("yaxis tick major 2000");
    GracePrintf ("yaxis tick minor 1000");
    GracePrintf ("s0 on");
    GracePrintf ("s0 symbol 1");
    GracePrintf ("s0 symbol size 0.3");
    GracePrintf ("s0 symbol fill pattern 1");
    GracePrintf ("s1 on");
    GracePrintf ("s1 symbol 1");
    GracePrintf ("s1 symbol size 0.3");
    GracePrintf ("s1 symbol fill pattern 1");

    /* Display sample data */
    for (i = 1; i <= 100 && GraceIsOpen(); i++) {
        GracePrintf ("g0.s0 point %d, %d", i, i);
        GracePrintf ("g0.s1 point %d, %d", i, i * i);
        /* Update the Grace display after every ten steps */
        if (i % 10 == 0) {
            GracePrintf ("redraw");
            /* Wait a second, just to simulate some time needed for
               calculations. Your real application shouldn't wait. */
            sleep (1);
        }
    }

    if (GraceIsOpen()) {
        /* Tell Grace to save the data */
        GracePrintf ("saveall \"sample.agr\"");

        /* Flush the output buffer and close Grace */
        GraceClose();

        /* We are done */
        exit (EXIT_SUCCESS);
    } else {
        exit (EXIT_FAILURE);
    }

}

grace-5.1.25/grace_np/Makefile0000644000076500001440000000341007505061045015650 0ustar  fnevgenyusers#####################################################
# Makefile for libgrace_np                          #
#####################################################
# You should not change anything here.              #
#####################################################

TOP=..

include $(TOP)/Make.conf

.SUFFIXES : .c .f $(O)

LIB = libgrace_np.a

CFLAGS=$(CFLAGS0) -I$(TOP) -I. $(CPPFLAGS)

LIBS = $(NOGUI_LIBS)

LIBOBJS = grace_np$(O) gracef_np$(O) gracef_np_$(O)
TESTS=test_np$(EXE) testf_np$(EXE)

all : $(LIB)

tests : $(TESTS)
	-@PATH=../src:$$PATH; export PATH; GRACE_HOME=..; export GRACE_HOME; \
	for i in $(TESTS); do echo Running $$i; ./$$i; done

$(LIB) : $(LIBOBJS) 
	$(RM) $@
	$(AR) cr $@ $(LIBOBJS)
	$(RANLIB) $@

$(LIBOBJS) : $(TOP)/config.h grace_np.h

gracef_np_$(O) : gracef_np.c
	$(CC) $(CFLAGS) -DNEED_F77_UNDERSCORE -c -o $@ gracef_np.c

test_np$(EXE) : test_np$(O)
	$(CC) $(CFLAGS) -o $@ $? $(LIB)

testf_np$(EXE) : testf_np$(O)
	-$(FC) $(FFLAGS) -o $@ $? $(LIB)

test_np$(O) : $(LIB)
testf_np$(O) : $(LIB)

install : $(LIB)
	$(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/lib
	$(INSTALL_DATA) $(LIB) $(DESTDIR)$(GRACE_HOME)/lib/$(LIB)
	$(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/include
	$(INSTALL_DATA) grace_np.h $(DESTDIR)$(GRACE_HOME)/include/grace_np.h

$(DESTDIR)$(GRACE_HOME)/lib/$(LIB) : $(LIB)
	$(MAKE) install

links : $(DESTDIR)$(GRACE_HOME)/lib/$(LIB)
	$(MKINSTALLDIRS) $(DESTDIR)$(PREFIX)/lib
	cd $(DESTDIR)$(PREFIX)/lib; $(RM) $(LIB); $(LN_S) $(GRACE_HOME)/lib/$(LIB) $(LIB)
	$(MKINSTALLDIRS) $(DESTDIR)$(PREFIX)/include
	cd $(DESTDIR)$(PREFIX)/include; $(RM) grace_np.h; $(LN_S) $(GRACE_HOME)/include/grace_np.h grace_np.h
	
clean :
	$(RM) *.o sample.agr $(TESTS)

distclean :
	$(RM) *.o sample.agr $(LIB) $(TESTS)
	
devclean :
	$(RM) *.o sample.agr $(LIB) $(TESTS)

grace-5.1.25/grace_np/LICENSE0000644000076500001440000006127306673045777015253 0ustar  fnevgenyusers		  GNU LIBRARY GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1991 Free Software Foundation, Inc.
    		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the library GPL.  It is
 numbered 2 because it goes with version 2 of the ordinary GPL.]

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it.  You can use it for
your libraries, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.

  Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library.  If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software.  To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.

  Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs.  This
license, the GNU Library General Public License, applies to certain
designated libraries.  This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.

  The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it.  Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program.  However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.

  Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries.  We
concluded that weaker conditions might promote sharing better.

  However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves.  This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them.  (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.)  The hope is that this
will lead to faster development of free libraries.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, while the latter only
works together with the library.

  Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.

		  GNU LIBRARY GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License").  Each licensee is
addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.
  
  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    c) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    d) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

			    NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

		     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    
    Copyright (C)   

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with this library; if not, write to the Free
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  , 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!
grace-5.1.25/grace_np/gracef_np.c0000644000076500001440000000317507070242236016310 0ustar  fnevgenyusers#include 

#if defined(WITH_F77_WRAPPER)

#include 
#include 
#include 

#include "grace_np.h"

#ifdef NEED_F77_UNDERSCORE
#  define F77_FNAME(fname) fname ## _
#else
#  define F77_FNAME(fname) fname
#endif

typedef void (*GraceFortranFunctionType) (const char *str, int len);
static GraceFortranFunctionType fortran_error = (GraceFortranFunctionType) 0;

static void GraceFortranWrapper(const char *str)
{
    if (fortran_error == (GraceFortranFunctionType) 0) {
        fprintf(stderr, "%s\n", str);
    } else {
        fortran_error(str, strlen(str));
    }
}

void F77_FNAME(graceregistererrorfunctionf) (GraceFortranFunctionType f)
{
    fortran_error = f;
    GraceRegisterErrorFunction(GraceFortranWrapper);
}

int F77_FNAME(graceopenf) (const int *arg)
{
    return (GraceOpen (*arg));
}

int F77_FNAME(graceisopenf) (void)
{
    return (GraceIsOpen ());
}

int F77_FNAME(graceclosef) (void)
{
    return (GraceClose ());
}

int F77_FNAME(graceclosepipef) (void)
{
    return (GraceClosePipe());
}

int F77_FNAME(graceflushf) (void)
{
    return (GraceFlush ());
}


int F77_FNAME(gracecommandf) (const char* arg, int length)
{
    char* str;
    int res;

    str = (char*) malloc ((size_t) (length + 1));
    if (str == NULL) {
        fprintf (stderr, "GraceCommandf: Not enough memory\n");
        return (-1);
    }
    strncpy (str, arg, length);
    str[length] = 0;
    res = GraceCommand (str);
    free (str);
    return (res);
}

#else /* don't include Fortran wrapper */

/* To make ANSI C happy about non-empty file */
void F77_FNAME(_gracef_np_c_dummy_func) (void) {}

#endif /* WITH_F77_WRAPPER */
grace-5.1.25/gracerc.user0000644000076500001440000000025406661401170014742 0ustar  fnevgenyusers#
# THIS FILE IS INTENTIONALLY LEFT BLANK!
# 
# (the dummy file is sourced ONLY if neither of
# ./gracerc.user, ./.grace/gracerc.user, or ~/.grace/gracerc.user
# exists)
#
grace-5.1.25/LICENSE0000644000076500001440000004307606626627162013466 0ustar  fnevgenyusers		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS

	Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    
    Copyright (C) 19yy  

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19yy name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  , 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.
grace-5.1.25/configure0000755000076500001440000110642112467751542014363 0ustar  fnevgenyusers#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

# Use a proper internal environment variable to ensure we don't fall
  # into an infinite loop, continuously re-executing ourselves.
  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
    _as_can_reexec=no; export _as_can_reexec;
    # We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
  *v*x* | *x*v* ) as_opts=-vx ;;
  *v* ) as_opts=-v ;;
  *x* ) as_opts=-x ;;
  * ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
as_fn_exit 255
  fi
  # We don't want this to propagate to other subprocesses.
          { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
  setopt NO_GLOB_SUBST
else
  case \`(set -o) 2>/dev/null\` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi
"
  as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }

exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :

else
  exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
test -x / || exit 1"
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
  if (eval "$as_required") 2>/dev/null; then :
  as_have_required=yes
else
  as_have_required=no
fi
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :

else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
  as_found=:
  case $as_dir in #(
	 /*)
	   for as_base in sh bash ksh sh5; do
	     # Try only shells that exist, to save several forks.
	     as_shell=$as_dir/$as_base
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
  CONFIG_SHELL=$as_shell as_have_required=yes
		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
  break 2
fi
fi
	   done;;
       esac
  as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
  CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS


      if test "x$CONFIG_SHELL" != x; then :
  export CONFIG_SHELL
             # We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
  *v*x* | *x*v* ) as_opts=-vx ;;
  *v* ) as_opts=-v ;;
  *x* ) as_opts=-x ;;
  * ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi

    if test x$as_have_required = xno; then :
  $as_echo "$0: This script requires a shell more modern than all"
  $as_echo "$0: the shells that I found on your system."
  if test x${ZSH_VERSION+set} = xset ; then
    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
  else
    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
  fi
  exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS

## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset

# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"


} # as_fn_mkdir_p

# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
  test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
  as_status=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&2
  as_fn_exit $as_status
} # as_fn_error

if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits


  as_lineno_1=$LINENO as_lineno_1a=$LINENO
  as_lineno_2=$LINENO as_lineno_2a=$LINENO
  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
  sed -n '
    p
    /[$]LINENO/=
  ' <$as_myself |
    sed '
      s/[$]LINENO.*/&-/
      t lineno
      b
      :lineno
      N
      :loop
      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
      t loop
      s/-\n.*//
    ' >$as_me.lineno &&
  chmod +x "$as_me.lineno" ||
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
  # already done that, so ensure we don't try to do so again and fall
  # in an infinite loop.  This has already happened in practice.
  _as_can_reexec=no; export _as_can_reexec
  # Don't try to exec as it changes $[0], causing all sort of problems
  # (the dirname of $[0] is not the place where we might find the
  # original and so on.  Autoconf is especially sensitive to this).
  . "./$as_me.lineno"
  # Exit status is that of the last command.
  exit
}

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -pR'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -pR'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -pR'
  fi
else
  as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null

if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

as_test_x='test -x'
as_executable_p=as_fn_executable_p

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"


test -n "$DJDIR" || exec 7<&0 &1

# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`

#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME=
PACKAGE_TARNAME=
PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=
PACKAGE_URL=

ac_unique_file="src/main.c"
ac_default_prefix="/usr/local"
# Factoring default headers for most tests.
ac_includes_default="\
#include 
#ifdef HAVE_SYS_TYPES_H
# include 
#endif
#ifdef HAVE_SYS_STAT_H
# include 
#endif
#ifdef STDC_HEADERS
# include 
# include 
#else
# ifdef HAVE_STDLIB_H
#  include 
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include 
# endif
# include 
#endif
#ifdef HAVE_STRINGS_H
# include 
#endif
#ifdef HAVE_INTTYPES_H
# include 
#endif
#ifdef HAVE_STDINT_H
# include 
#endif
#ifdef HAVE_UNISTD_H
# include 
#endif"

ac_subst_vars='LTLIBOBJS
LIBOBJS
X_EXTRA_LIBS
X_LIBS
X_PRE_LIBS
X_CFLAGS
XMKMF
ALLOCA
LPR_CMD
LP_CMD
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
YFLAGS
YACC
LN_S
RANLIB
AR
SET_MAKE
fc
EGREP
GREP
CPP
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
T1_AA_TYPE64
T1_AA_TYPE32
T1_AA_TYPE16
PRINT_CMD
GRACE_HELPVIEWER
GRACE_EDITOR
SUBDIRS
XBAE_INC
PDF_LIB
PNG_LIB
JPEG_LIB
Z_LIB
FFTW_LIB
T1_INC
T1_LIB
DL_LIB
XDR_LIB
NETCDF_LIBS
NOGUI_LIBS
GUI_LIBS
FC
GUI_FLAGS
GRACE_HOME
GRACE
MKINSTALLDIRS
BATEXT
OBJEXT
EXEEXT
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_grace_home
enable_config
with_cc
with_f77
with_extra_incpath
with_extra_ldpath
with_bundled_t1lib
with_bundled_xbae
enable_netcdf
with_fftw
enable_jpegdrv
enable_pngdrv
enable_pdfdrv
enable_f77_wrapper
enable_editres
enable_libhelp
enable_xmhtml
with_editor
with_helpviewer
with_printcmd
enable_debug
enable_maintainer
with_netcdf_libraries
with_fftw_library
with_zlib_library
with_jpeg_library
with_png_library
with_pdf_library
with_x
with_motif_library
with_xmhtml_library
'
      ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
YACC
YFLAGS
XMKMF'


# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE

# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'

ac_prev=
ac_dashdash=
for ac_option
do
  # If the previous option needs an argument, assign it.
  if test -n "$ac_prev"; then
    eval $ac_prev=\$ac_option
    ac_prev=
    continue
  fi

  case $ac_option in
  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  *=)   ac_optarg= ;;
  *)    ac_optarg=yes ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case $ac_dashdash$ac_option in
  --)
    ac_dashdash=yes ;;

  -bindir | --bindir | --bindi | --bind | --bin | --bi)
    ac_prev=bindir ;;
  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
    bindir=$ac_optarg ;;

  -build | --build | --buil | --bui | --bu)
    ac_prev=build_alias ;;
  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
    build_alias=$ac_optarg ;;

  -cache-file | --cache-file | --cache-fil | --cache-fi \
  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
    ac_prev=cache_file ;;
  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
    cache_file=$ac_optarg ;;

  --config-cache | -C)
    cache_file=config.cache ;;

  -datadir | --datadir | --datadi | --datad)
    ac_prev=datadir ;;
  -datadir=* | --datadir=* | --datadi=* | --datad=*)
    datadir=$ac_optarg ;;

  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
  | --dataroo | --dataro | --datar)
    ac_prev=datarootdir ;;
  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
    datarootdir=$ac_optarg ;;

  -disable-* | --disable-*)
    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error $? "invalid feature name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=no ;;

  -docdir | --docdir | --docdi | --doc | --do)
    ac_prev=docdir ;;
  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
    docdir=$ac_optarg ;;

  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
    ac_prev=dvidir ;;
  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
    dvidir=$ac_optarg ;;

  -enable-* | --enable-*)
    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error $? "invalid feature name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=\$ac_optarg ;;

  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  | --exec | --exe | --ex)
    ac_prev=exec_prefix ;;
  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
  | --exec=* | --exe=* | --ex=*)
    exec_prefix=$ac_optarg ;;

  -gas | --gas | --ga | --g)
    # Obsolete; use --with-gas.
    with_gas=yes ;;

  -help | --help | --hel | --he | -h)
    ac_init_help=long ;;
  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
    ac_init_help=recursive ;;
  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
    ac_init_help=short ;;

  -host | --host | --hos | --ho)
    ac_prev=host_alias ;;
  -host=* | --host=* | --hos=* | --ho=*)
    host_alias=$ac_optarg ;;

  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
    ac_prev=htmldir ;;
  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
  | --ht=*)
    htmldir=$ac_optarg ;;

  -includedir | --includedir | --includedi | --included | --include \
  | --includ | --inclu | --incl | --inc)
    ac_prev=includedir ;;
  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
  | --includ=* | --inclu=* | --incl=* | --inc=*)
    includedir=$ac_optarg ;;

  -infodir | --infodir | --infodi | --infod | --info | --inf)
    ac_prev=infodir ;;
  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
    infodir=$ac_optarg ;;

  -libdir | --libdir | --libdi | --libd)
    ac_prev=libdir ;;
  -libdir=* | --libdir=* | --libdi=* | --libd=*)
    libdir=$ac_optarg ;;

  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
  | --libexe | --libex | --libe)
    ac_prev=libexecdir ;;
  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
  | --libexe=* | --libex=* | --libe=*)
    libexecdir=$ac_optarg ;;

  -localedir | --localedir | --localedi | --localed | --locale)
    ac_prev=localedir ;;
  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
    localedir=$ac_optarg ;;

  -localstatedir | --localstatedir | --localstatedi | --localstated \
  | --localstate | --localstat | --localsta | --localst | --locals)
    ac_prev=localstatedir ;;
  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
    localstatedir=$ac_optarg ;;

  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
    ac_prev=mandir ;;
  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
    mandir=$ac_optarg ;;

  -nfp | --nfp | --nf)
    # Obsolete; use --without-fp.
    with_fp=no ;;

  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c | -n)
    no_create=yes ;;

  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
    no_recursion=yes ;;

  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
  | --oldin | --oldi | --old | --ol | --o)
    ac_prev=oldincludedir ;;
  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
    oldincludedir=$ac_optarg ;;

  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
    ac_prev=prefix ;;
  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
    prefix=$ac_optarg ;;

  -program-prefix | --program-prefix | --program-prefi | --program-pref \
  | --program-pre | --program-pr | --program-p)
    ac_prev=program_prefix ;;
  -program-prefix=* | --program-prefix=* | --program-prefi=* \
  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
    program_prefix=$ac_optarg ;;

  -program-suffix | --program-suffix | --program-suffi | --program-suff \
  | --program-suf | --program-su | --program-s)
    ac_prev=program_suffix ;;
  -program-suffix=* | --program-suffix=* | --program-suffi=* \
  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
    program_suffix=$ac_optarg ;;

  -program-transform-name | --program-transform-name \
  | --program-transform-nam | --program-transform-na \
  | --program-transform-n | --program-transform- \
  | --program-transform | --program-transfor \
  | --program-transfo | --program-transf \
  | --program-trans | --program-tran \
  | --progr-tra | --program-tr | --program-t)
    ac_prev=program_transform_name ;;
  -program-transform-name=* | --program-transform-name=* \
  | --program-transform-nam=* | --program-transform-na=* \
  | --program-transform-n=* | --program-transform-=* \
  | --program-transform=* | --program-transfor=* \
  | --program-transfo=* | --program-transf=* \
  | --program-trans=* | --program-tran=* \
  | --progr-tra=* | --program-tr=* | --program-t=*)
    program_transform_name=$ac_optarg ;;

  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
    ac_prev=pdfdir ;;
  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
    pdfdir=$ac_optarg ;;

  -psdir | --psdir | --psdi | --psd | --ps)
    ac_prev=psdir ;;
  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
    psdir=$ac_optarg ;;

  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil)
    silent=yes ;;

  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
    ac_prev=sbindir ;;
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
  | --sbi=* | --sb=*)
    sbindir=$ac_optarg ;;

  -sharedstatedir | --sharedstatedir | --sharedstatedi \
  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
  | --sharedst | --shareds | --shared | --share | --shar \
  | --sha | --sh)
    ac_prev=sharedstatedir ;;
  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
  | --sha=* | --sh=*)
    sharedstatedir=$ac_optarg ;;

  -site | --site | --sit)
    ac_prev=site ;;
  -site=* | --site=* | --sit=*)
    site=$ac_optarg ;;

  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
    ac_prev=srcdir ;;
  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
    srcdir=$ac_optarg ;;

  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  | --syscon | --sysco | --sysc | --sys | --sy)
    ac_prev=sysconfdir ;;
  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
    sysconfdir=$ac_optarg ;;

  -target | --target | --targe | --targ | --tar | --ta | --t)
    ac_prev=target_alias ;;
  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
    target_alias=$ac_optarg ;;

  -v | -verbose | --verbose | --verbos | --verbo | --verb)
    verbose=yes ;;

  -version | --version | --versio | --versi | --vers | -V)
    ac_init_version=: ;;

  -with-* | --with-*)
    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error $? "invalid package name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=\$ac_optarg ;;

  -without-* | --without-*)
    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error $? "invalid package name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=no ;;

  --x)
    # Obsolete; use --with-x.
    with_x=yes ;;

  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
  | --x-incl | --x-inc | --x-in | --x-i)
    ac_prev=x_includes ;;
  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
    x_includes=$ac_optarg ;;

  -x-libraries | --x-libraries | --x-librarie | --x-librari \
  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
    ac_prev=x_libraries ;;
  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
    x_libraries=$ac_optarg ;;

  -*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
    ;;

  *=*)
    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
    # Reject names that are not valid shell variable names.
    case $ac_envvar in #(
      '' | [0-9]* | *[!_$as_cr_alnum]* )
      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
    esac
    eval $ac_envvar=\$ac_optarg
    export $ac_envvar ;;

  *)
    # FIXME: should be removed in autoconf 3.0.
    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
    ;;

  esac
done

if test -n "$ac_prev"; then
  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  as_fn_error $? "missing argument to $ac_option"
fi

if test -n "$ac_unrecognized_opts"; then
  case $enable_option_checking in
    no) ;;
    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
  esac
fi

# Check all directory arguments for consistency.
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
		datadir sysconfdir sharedstatedir localstatedir includedir \
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
		libdir localedir mandir
do
  eval ac_val=\$$ac_var
  # Remove trailing slashes.
  case $ac_val in
    */ )
      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
      eval $ac_var=\$ac_val;;
  esac
  # Be sure to have absolute directory names.
  case $ac_val in
    [\\/$]* | ?:[\\/]* )  continue;;
    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
  esac
  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done

# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias

# FIXME: To remove some day.
if test "x$host_alias" != x; then
  if test "x$build_alias" = x; then
    cross_compiling=maybe
  elif test "x$build_alias" != "x$host_alias"; then
    cross_compiling=yes
  fi
fi

ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-

test "$silent" = yes && exec 6>/dev/null


ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  as_fn_error $? "pwd does not report name of working directory"


# Find the source files, if location was not specified.
if test -z "$srcdir"; then
  ac_srcdir_defaulted=yes
  # Try the directory containing this script, then the parent directory.
  ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_myself" : 'X\(//\)[^/]' \| \
	 X"$as_myself" : 'X\(//\)$' \| \
	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  srcdir=$ac_confdir
  if test ! -r "$srcdir/$ac_unique_file"; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
	pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
  srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
  eval ac_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_env_${ac_var}_value=\$${ac_var}
  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_cv_env_${ac_var}_value=\$${ac_var}
done

#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures this package to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print \`checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for \`--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or \`..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]
_ACEOF

  cat <<\_ACEOF

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then

  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-grace-home=DIR      define Grace home dir [PREFIX/grace]
  --enable-config=FILE         define configuration FILE to override
                               autodetection (not recommended!)
  --enable-netcdf              enable support for netCDF [yes]
  --enable-jpegdrv             build JPEG driver [yes]
  --enable-pngdrv              build PNG driver [yes]
  --enable-pdfdrv              build PDF driver [yes]
  --enable-f77-wrapper         include Fortran wrapper for libgrace_np [yes]
  --enable-editres             enable editres support [yes]
  --enable-libhelp             use libhelp [no]
  --enable-xmhtml              use XmHTML widget for on-line help [yes]
  --enable-debug               turn on debugging [no]
  --enable-maintainer          enable maintainer's mode [no]

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-cc=PROG               use PROG as C compiler [${CC-gcc}]
  --with-f77=PROG              use PROG as Fortran compiler [${FC-f77}]
  --with-extra-incpath=PATH    define extra include path (dir1:dir2:...) [none]
  --with-extra-ldpath=PATH     define extra ld path (dir1:dir2:...) [none]
  --with-bundled-t1lib         use bundled T1lib [no]
  --with-bundled-xbae          use bundled Xbae [yes]
  --with-fftw                  use FFTW library for Fourier transforms [yes]
  --with-editor=COMMAND        define editor ["xterm -e vi"]
  --with-helpviewer=COMMAND    define help viewer command ["mozilla %s"]
  --with-printcmd=PROG         use PROG for printing
  --with-netcdf-libraries=OBJ  use OBJ as netCDF libraries [-lnetcdf]
  --with-fftw-library=OBJ      use OBJ as FFTW library [-lfftw]
  --with-zlib-library=OBJ      use OBJ as ZLIB library [-lz]
  --with-jpeg-library=OBJ      use OBJ as JPEG library [-ljpeg]
  --with-png-library=OBJ       use OBJ as PNG library [-lpng]
  --with-pdf-library=OBJ       use OBJ as PDFlib library [-lpdf]
  --with-x                use the X Window System
  --with-motif-library=OBJ     use OBJ as Motif library [-lXm]
  --with-xmhtml-library=OBJ    use OBJ as XmHTML library [-lXmHTML]

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L if you have libraries in a
              nonstandard directory 
  LIBS        libraries to pass to the linker, e.g. -l
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I if
              you have headers in a nonstandard directory 
  CPP         C preprocessor
  YACC        The `Yet Another Compiler Compiler' implementation to use.
              Defaults to the first program found out of: `bison -y', `byacc',
              `yacc'.
  YFLAGS      The list of arguments that will be passed by default to $YACC.
              This script will default YFLAGS to the empty string to avoid a
              default value of `-d' given by some make applications.
  XMKMF       Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.
_ACEOF
ac_status=$?
fi

if test "$ac_init_help" = "recursive"; then
  # If there are subdirs, report their specific --help.
  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
    test -d "$ac_dir" ||
      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
      continue
    ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix

    cd "$ac_dir" || { ac_status=$?; continue; }
    # Check for guested configure.
    if test -f "$ac_srcdir/configure.gnu"; then
      echo &&
      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
    elif test -f "$ac_srcdir/configure"; then
      echo &&
      $SHELL "$ac_srcdir/configure" --help=recursive
    else
      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
    fi || ac_status=$?
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
configure
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit
fi

## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##

# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext
  if { { ac_try="$ac_compile"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && {
	 test -z "$ac_c_werror_flag" ||
	 test ! -s conftest.err
       } && test -s conftest.$ac_objext; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	ac_retval=1
fi
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_compile

# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext conftest$ac_exeext
  if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && {
	 test -z "$ac_c_werror_flag" ||
	 test ! -s conftest.err
       } && test -s conftest$ac_exeext && {
	 test "$cross_compiling" = yes ||
	 test -x conftest$ac_exeext
       }; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	ac_retval=1
fi
  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
  # interfere with the next link command; also delete a directory that is
  # left behind by Apple's compiler.  We do this before executing the actions.
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_link

# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } > conftest.i && {
	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
	 test ! -s conftest.err
       }; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

    ac_retval=1
fi
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_cpp

# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
# the include files in INCLUDES and setting the cache variable VAR
# accordingly.
ac_fn_c_check_header_mongrel ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if eval \${$3+:} false; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
else
  # Is the header compilable?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
$as_echo_n "checking $2 usability... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_header_compiler=yes
else
  ac_header_compiler=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
$as_echo "$ac_header_compiler" >&6; }

# Is the header present?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
$as_echo_n "checking $2 presence... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$2>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  ac_header_preproc=yes
else
  ac_header_preproc=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }

# So?  What about this header?
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
  yes:no: )
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
    ;;
  no:yes:* )
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
    ;;
esac
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  eval "$3=\$ac_header_compiler"
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_header_mongrel

# ac_fn_c_try_run LINENO
# ----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
# that executables *can* be run.
ac_fn_c_try_run ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
  { { case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_try") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then :
  ac_retval=0
else
  $as_echo "$as_me: program exited with status $ac_status" >&5
       $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

       ac_retval=$ac_status
fi
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_run

# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$3=yes"
else
  eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_header_compile

# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
# Tries to find the compile-time value of EXPR in a program that includes
# INCLUDES, setting VAR accordingly. Returns whether the value could be
# computed
ac_fn_c_compute_int ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if test "$cross_compiling" = yes; then
    # Depending upon the size, compute the lo and hi bounds.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
static int test_array [1 - 2 * !(($2) >= 0)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_lo=0 ac_mid=0
  while :; do
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_hi=$ac_mid; break
else
  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
			if test $ac_lo -le $ac_mid; then
			  ac_lo= ac_hi=
			  break
			fi
			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  done
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
static int test_array [1 - 2 * !(($2) < 0)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_hi=-1 ac_mid=-1
  while :; do
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_lo=$ac_mid; break
else
  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
			if test $ac_mid -le $ac_hi; then
			  ac_lo= ac_hi=
			  break
			fi
			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  done
else
  ac_lo= ac_hi=
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
# Binary search between lo and hi bounds.
while test "x$ac_lo" != "x$ac_hi"; do
  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_hi=$ac_mid
else
  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
done
case $ac_lo in #((
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
'') ac_retval=1 ;;
esac
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
static long int longval () { return $2; }
static unsigned long int ulongval () { return $2; }
#include 
#include 
int
main ()
{

  FILE *f = fopen ("conftest.val", "w");
  if (! f)
    return 1;
  if (($2) < 0)
    {
      long int i = longval ();
      if (i != ($2))
	return 1;
      fprintf (f, "%ld", i);
    }
  else
    {
      unsigned long int i = ulongval ();
      if (i != ($2))
	return 1;
      fprintf (f, "%lu", i);
    }
  /* Do not output a trailing newline, as this causes \r\n confusion
     on some platforms.  */
  return ferror (f) || fclose (f) != 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  echo >>conftest.val; read $3 &5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  eval "$3=no"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
if (sizeof ($2))
	 return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
if (sizeof (($2)))
	    return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

else
  eval "$3=yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_type

# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
/* Define $2 to an innocuous variant, in case  declares $2.
   For example, HP-UX 11i  declares gettimeofday.  */
#define $2 innocuous_$2

/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char $2 (); below.
    Prefer  to  if __STDC__ is defined, since
     exists even on freestanding compilers.  */

#ifdef __STDC__
# include 
#else
# include 
#endif

#undef $2

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif

int
main ()
{
return $2 ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  eval "$3=yes"
else
  eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_func
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by $as_me, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##

hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`

/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`

/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`

_ASUNAME

as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    $as_echo "PATH: $as_dir"
  done
IFS=$as_save_IFS

} >&5

cat >&5 <<_ACEOF


## ----------- ##
## Core tests. ##
## ----------- ##

_ACEOF


# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
  for ac_arg
  do
    case $ac_arg in
    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
    | -silent | --silent | --silen | --sile | --sil)
      continue ;;
    *\'*)
      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    case $ac_pass in
    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
    2)
      as_fn_append ac_configure_args1 " '$ac_arg'"
      if test $ac_must_keep_next = true; then
	ac_must_keep_next=false # Got value, back to normal.
      else
	case $ac_arg in
	  *=* | --config-cache | -C | -disable-* | --disable-* \
	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
	  | -with-* | --with-* | -without-* | --without-* | --x)
	    case "$ac_configure_args0 " in
	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
	    esac
	    ;;
	  -* ) ac_must_keep_next=true ;;
	esac
      fi
      as_fn_append ac_configure_args " '$ac_arg'"
      ;;
    esac
  done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}

# When interrupted or exit'd, cleanup temporary files, and complete
# config.log.  We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
  # Save into config.log some information that might help in debugging.
  {
    echo

    $as_echo "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
    echo
    # The following way of writing the cache mishandles newlines in values,
(
  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
    eval ac_val=\$$ac_var
    case $ac_val in #(
    *${as_nl}*)
      case $ac_var in #(
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      esac
      case $ac_var in #(
      _ | IFS | as_nl) ;; #(
      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
      *) { eval $ac_var=; unset $ac_var;} ;;
      esac ;;
    esac
  done
  (set) 2>&1 |
    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
    *${as_nl}ac_space=\ *)
      sed -n \
	"s/'\''/'\''\\\\'\'''\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
      ;; #(
    *)
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
)
    echo

    $as_echo "## ----------------- ##
## Output variables. ##
## ----------------- ##"
    echo
    for ac_var in $ac_subst_vars
    do
      eval ac_val=\$$ac_var
      case $ac_val in
      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
      esac
      $as_echo "$ac_var='\''$ac_val'\''"
    done | sort
    echo

    if test -n "$ac_subst_files"; then
      $as_echo "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
      echo
      for ac_var in $ac_subst_files
      do
	eval ac_val=\$$ac_var
	case $ac_val in
	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
	esac
	$as_echo "$ac_var='\''$ac_val'\''"
      done | sort
      echo
    fi

    if test -s confdefs.h; then
      $as_echo "## ----------- ##
## confdefs.h. ##
## ----------- ##"
      echo
      cat confdefs.h
      echo
    fi
    test "$ac_signal" != 0 &&
      $as_echo "$as_me: caught signal $ac_signal"
    $as_echo "$as_me: exit $exit_status"
  } >&5
  rm -f core *.core core.conftest.* &&
    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
    exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0

# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h

$as_echo "/* confdefs.h */" > confdefs.h

# Predefined preprocessor variables.

cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF


# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
  # We do not want a PATH search for config.site.
  case $CONFIG_SITE in #((
    -*)  ac_site_file1=./$CONFIG_SITE;;
    */*) ac_site_file1=$CONFIG_SITE;;
    *)   ac_site_file1=./$CONFIG_SITE;;
  esac
elif test "x$prefix" != xNONE; then
  ac_site_file1=$prefix/share/config.site
  ac_site_file2=$prefix/etc/config.site
else
  ac_site_file1=$ac_default_prefix/share/config.site
  ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
  test "x$ac_site_file" = xNONE && continue
  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
    sed 's/^/| /' "$ac_site_file" >&5
    . "$ac_site_file" \
      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
  fi
done

if test -r "$cache_file"; then
  # Some versions of bash will fail to source /dev/null (special files
  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
    case $cache_file in
      [\\/]* | ?:[\\/]* ) . "$cache_file";;
      *)                      . "./$cache_file";;
    esac
  fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
  >$cache_file
fi

# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
  eval ac_old_set=\$ac_cv_env_${ac_var}_set
  eval ac_new_set=\$ac_env_${ac_var}_set
  eval ac_old_val=\$ac_cv_env_${ac_var}_value
  eval ac_new_val=\$ac_env_${ac_var}_value
  case $ac_old_set,$ac_new_set in
    set,)
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
      ac_cache_corrupted=: ;;
    ,set)
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
      ac_cache_corrupted=: ;;
    ,);;
    *)
      if test "x$ac_old_val" != "x$ac_new_val"; then
	# differences in whitespace do not lead to failure.
	ac_old_val_w=`echo x $ac_old_val`
	ac_new_val_w=`echo x $ac_new_val`
	if test "$ac_old_val_w" != "$ac_new_val_w"; then
	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
	  ac_cache_corrupted=:
	else
	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
	  eval $ac_var=\$ac_old_val
	fi
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
      fi;;
  esac
  # Pass precious variables to config.status.
  if test "$ac_new_set" = set; then
    case $ac_new_val in
    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
    *) ac_arg=$ac_var=$ac_new_val ;;
    esac
    case " $ac_configure_args " in
      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
    esac
  fi
done
if $ac_cache_corrupted; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu


ac_aux_dir=
for ac_dir in ac-tools "$srcdir"/ac-tools; do
  if test -f "$ac_dir/install-sh"; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install-sh -c"
    break
  elif test -f "$ac_dir/install.sh"; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install.sh -c"
    break
  elif test -f "$ac_dir/shtool"; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/shtool install -c"
    break
  fi
done
if test -z "$ac_aux_dir"; then
  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ac-tools \"$srcdir\"/ac-tools" "$LINENO" 5
fi

# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.



ac_config_headers="$ac_config_headers config.h:ac-tools/config.h.in"









































































if test "x${prefix}" = "xNONE"
then
  GRACE_HOME=${ac_default_prefix}/grace
else
  GRACE_HOME=${prefix}/grace
fi
# Check whether --enable-grace-home was given.
if test "${enable_grace_home+set}" = set; then :
  enableval=$enable_grace_home; GRACE_HOME="${enableval}"
fi



# Check whether --enable-config was given.
if test "${enable_config+set}" = set; then :
  enableval=$enable_config; CONF_FILE="${enableval}"
fi


CC=${CC-gcc}

# Check whether --with-cc was given.
if test "${with_cc+set}" = set; then :
  withval=$with_cc; CC="${withval}"
fi


FC=${FC-f77}

# Check whether --with-f77 was given.
if test "${with_f77+set}" = set; then :
  withval=$with_f77; FC="${withval}"
fi



# Check whether --with-extra-incpath was given.
if test "${with_extra_incpath+set}" = set; then :
  withval=$with_extra_incpath; CPPFLAGS="${CPPFLAGS} -I`echo ${withval}|sed 's/:/\ -I/g'`"
fi



# Check whether --with-extra-ldpath was given.
if test "${with_extra_ldpath+set}" = set; then :
  withval=$with_extra_ldpath; LDFLAGS="-L`echo ${withval}|sed 's/:/\ -L/g'` ${LDFLAGS}";
  case "${host}" in
    sparc-sun-solaris*) LDFLAGS="-R:${withval} ${LDFLAGS}";;
  esac

fi



# Check whether --with-bundled_t1lib was given.
if test "${with_bundled_t1lib+set}" = set; then :
  withval=$with_bundled_t1lib; case "${withval}" in
  yes) bundled_t1lib=true ;;
  no)  bundled_t1lib=false;;
  *) as_fn_error $? "bad value ${withval} for --with-bundled-t1lib" "$LINENO" 5 ;;
esac
else
  bundled_t1lib=false
fi



# Check whether --with-bundled_xbae was given.
if test "${with_bundled_xbae+set}" = set; then :
  withval=$with_bundled_xbae; case "${withval}" in
  yes) bundled_xbae=true ;;
  no)  bundled_xbae=false;;
  *) as_fn_error $? "bad value ${withval} for --with-bundled-xbae" "$LINENO" 5 ;;
esac
else
  bundled_xbae=true
fi


# Check whether --enable-netcdf was given.
if test "${enable_netcdf+set}" = set; then :
  enableval=$enable_netcdf; case "${enableval}" in
  yes) netcdf=true ;;
  no)  netcdf=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-netcdf" "$LINENO" 5 ;;
esac
else
  netcdf=true
fi



# Check whether --with-fftw was given.
if test "${with_fftw+set}" = set; then :
  withval=$with_fftw; case "${withval}" in
  yes) fftw=true ;;
  no)  fftw=false;;
  *) as_fn_error $? "bad value ${withval} for --with-fftw" "$LINENO" 5 ;;
esac
else
  fftw=true
fi


# Check whether --enable-jpegdrv was given.
if test "${enable_jpegdrv+set}" = set; then :
  enableval=$enable_jpegdrv; case "${enableval}" in
  yes) jpegdrv=true ;;
  no)  jpegdrv=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-jpegdrv" "$LINENO" 5 ;;
esac
else
  jpegdrv=true
fi


# Check whether --enable-pngdrv was given.
if test "${enable_pngdrv+set}" = set; then :
  enableval=$enable_pngdrv; case "${enableval}" in
  yes) pngdrv=true ;;
  no)  pngdrv=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-pngdrv" "$LINENO" 5 ;;
esac
else
  pngdrv=true
fi


# Check whether --enable-pdfdrv was given.
if test "${enable_pdfdrv+set}" = set; then :
  enableval=$enable_pdfdrv; case "${enableval}" in
  yes) pdfdrv=true ;;
  no)  pdfdrv=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-pdfdrv" "$LINENO" 5 ;;
esac
else
  pdfdrv=true
fi


# Check whether --enable-f77_wrapper was given.
if test "${enable_f77_wrapper+set}" = set; then :
  enableval=$enable_f77_wrapper; case "${enableval}" in
  yes) f77_wrapper=true ;;
  no)  f77_wrapper=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-f77-wrapper" "$LINENO" 5 ;;
esac
else
  f77_wrapper=true
fi


# Check whether --enable-editres was given.
if test "${enable_editres+set}" = set; then :
  enableval=$enable_editres; case "${enableval}" in
  yes) editres=true ;;
  no)  editres=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-editres" "$LINENO" 5 ;;
esac
else
  editres=true
fi


# Check whether --enable-libhelp was given.
if test "${enable_libhelp+set}" = set; then :
  enableval=$enable_libhelp; case "${enableval}" in
  yes) libhelp=true ;;
  no)  libhelp=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-libhelp" "$LINENO" 5 ;;
esac
else
  libhelp=false
fi


# Check whether --enable-xmhtml was given.
if test "${enable_xmhtml+set}" = set; then :
  enableval=$enable_xmhtml; case "${enableval}" in
  yes) xmhtml=true ;;
  no)  xmhtml=false;;
  *) as_fn_error $? "bad value ${enableval} for --enable-xmhtml" "$LINENO" 5 ;;
esac
else
  xmhtml=true
fi


if test $xmhtml = true && test $libhelp = true
then
  as_fn_error $? "can't use both libhelp and XmHTML" "$LINENO" 5
fi

GRACE_EDITOR="'xterm -e vi'"

# Check whether --with-editor was given.
if test "${with_editor+set}" = set; then :
  withval=$with_editor; GRACE_EDITOR="'${withval}'"
fi


GRACE_HELPVIEWER="'mozilla %s'"

# Check whether --with-helpviewer was given.
if test "${with_helpviewer+set}" = set; then :
  withval=$with_helpviewer; GRACE_HELPVIEWER="'${withval}'"
fi



# Check whether --with-printcmd was given.
if test "${with_printcmd+set}" = set; then :
  withval=$with_printcmd; if test "x${withval}" != "x"; then
    PRINT_CMD="'${withval}'"
 else
    PRINT_CMD=NONE
 fi
else
  PRINT_CMD=NONE

fi


# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
  enableval=$enable_debug; case "${enableval}" in
  yes) debug=true ;;
  no)  debug=false ;;
  *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
esac
else
  debug=false
fi


# Check whether --enable-maintainer was given.
if test "${enable_maintainer+set}" = set; then :
  enableval=$enable_maintainer; case "${enableval}" in
  yes) maintainer=true; debug=true ;;
  no)  maintainer=false ;;
  *) as_fn_error $? "bad value ${enableval} for --enable-maintainer" "$LINENO" 5 ;;
esac
else
  maintainer=false
fi


if test $maintainer = true
then
  $as_echo "#define WITH_DEBUG 1" >>confdefs.h

fi

if test $f77_wrapper = true; then
  $as_echo "#define WITH_F77_WRAPPER 1" >>confdefs.h

fi


if test "x$CONF_FILE" != "x"
then
  if test -r $CONF_FILE
  then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using \`$CONF_FILE' as config file" >&5
$as_echo "--> using \`$CONF_FILE' as config file" >&6; }
    . $CONF_FILE
  else
    as_fn_error $? "--> Can't open file \`$CONF_FILE' for reading!" "$LINENO" 5
    exit 1
  fi
else
    CFLAGS=${CFLAGS-""}
  FFLAGS=${FFLAGS-""}
  LDFLAGS=${LDFLAGS-""}
  OPTIMIZE=${OPTIMIZE-""}
  DEBUG=${DEBUG-""}
fi

# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if ${ac_cv_build+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if ${ac_cv_host+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "x$host_alias" = x; then
  ac_cv_host=$ac_cv_build
else
  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac



ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_CC="${ac_tool_prefix}gcc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_CC"; then
  ac_ct_CC=$CC
  # Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CC"; then
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_CC="gcc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_CC" = x; then
    CC=""
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CC=$ac_ct_CC
  fi
else
  CC="$ac_cv_prog_CC"
fi

if test -z "$CC"; then
          if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_CC="${ac_tool_prefix}cc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  fi
fi
if test -z "$CC"; then
  # Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
  ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
       ac_prog_rejected=yes
       continue
     fi
    ac_cv_prog_CC="cc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

if test $ac_prog_rejected = yes; then
  # We found a bogon in the path, so make sure we never use it.
  set dummy $ac_cv_prog_CC
  shift
  if test $# != 0; then
    # We chose a different compiler from the bogus one.
    # However, it has the same basename, so the bogon will be chosen
    # first if we set CC to just the basename; use the full file name.
    shift
    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
  fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$CC"; then
  if test -n "$ac_tool_prefix"; then
  for ac_prog in cl.exe
  do
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$CC" && break
  done
fi
if test -z "$CC"; then
  ac_ct_CC=$CC
  for ac_prog in cl.exe
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CC"; then
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_CC="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_CC" && break
done

  if test "x$ac_ct_CC" = x; then
    CC=""
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CC=$ac_ct_CC
  fi
fi

fi


test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }

# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
  { { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    sed '10a\
... rest of stderr output deleted ...
         10q' conftest.err >conftest.er1
    cat conftest.er1 >&5
  fi
  rm -f conftest.er1 conftest.err
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
done

cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`

# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"

ac_rmfiles=
for ac_file in $ac_files
do
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
  esac
done
rm -f $ac_rmfiles

if { { ac_try="$ac_link_default"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link_default") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile.  We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
  test -f "$ac_file" || continue
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
	;;
    [ab].out )
	# We found the default executable, but exeext='' is most
	# certainly right.
	break;;
    *.* )
	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
	then :; else
	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
	fi
	# We set ac_cv_exeext here because the later test for it is not
	# safe: cross compilers may not add the suffix if given an `-o'
	# argument, so we may need to know it at that point already.
	# Even if this section looks crufty: it has the advantage of
	# actually working.
	break;;
    * )
	break;;
  esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=

else
  ac_file=''
fi
if test -z "$ac_file"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext

rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  # If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
  test -f "$ac_file" || continue
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
	  break;;
    * ) break;;
  esac
done
else
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }

rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
 return ferror (f) || fclose (f) != 0;

  ;
  return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run.  If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
  { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
  if { ac_try='./conftest$ac_cv_exeext'
  { { case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_try") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then
    cross_compiling=no
  else
    if test "$cross_compiling" = maybe; then
	cross_compiling=yes
    else
	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
    fi
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }

rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
if ${ac_cv_objext+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  for ac_file in conftest.o conftest.obj conftest.*; do
  test -f "$ac_file" || continue;
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
       break;;
  esac
done
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if ${ac_cv_c_compiler_gnu+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
#ifndef __GNUC__
       choke me
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_compiler_gnu=yes
else
  ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
  GCC=yes
else
  GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if ${ac_cv_prog_cc_g+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_save_c_werror_flag=$ac_c_werror_flag
   ac_c_werror_flag=yes
   ac_cv_prog_cc_g=no
   CFLAGS="-g"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_g=yes
else
  CFLAGS=""
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

else
  ac_c_werror_flag=$ac_save_c_werror_flag
	 CFLAGS="-g"
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
  CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
  if test "$GCC" = yes; then
    CFLAGS="-g -O2"
  else
    CFLAGS="-g"
  fi
else
  if test "$GCC" = yes; then
    CFLAGS="-O2"
  else
    CFLAGS=
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if ${ac_cv_prog_cc_c89+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
     char **p;
     int i;
{
  return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
  char *s;
  va_list v;
  va_start (v,p);
  s = g (p, va_arg (v,int));
  va_end (v);
  return s;
}

/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
   function prototypes and stuff, but not '\xHH' hex character constants.
   These don't provoke an error unfortunately, instead are silently treated
   as 'x'.  The following induces an error, until -std is added to get
   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
   array size at least.  It's necessary to write '\x00'==0 to get something
   that's true only with -std.  */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];

/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
   inside strings and character constants.  */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];

int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
  ;
  return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
  CC="$ac_save_CC $ac_arg"
  if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
  test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC

fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
  x)
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
  xno)
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
  *)
    CC="$CC $ac_cv_prog_cc_c89"
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :

fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
$as_echo_n "checking for library containing strerror... " >&6; }
if ${ac_cv_search_strerror+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char strerror ();
int
main ()
{
return strerror ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' cposix; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_strerror=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_strerror+:} false; then :
  break
fi
done
if ${ac_cv_search_strerror+:} false; then :

else
  ac_cv_search_strerror=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
$as_echo "$ac_cv_search_strerror" >&6; }
ac_res=$ac_cv_search_strerror
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
  CPP=
fi
if test -z "$CPP"; then
  if ${ac_cv_prog_CPP+:} false; then :
  $as_echo_n "(cached) " >&6
else
      # Double quotes because CPP needs to be expanded
    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
    do
      ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
  # Use a header file that comes with gcc, so configuring glibc
  # with a fresh cross-compiler works.
  # Prefer  to  if __STDC__ is defined, since
  #  exists even on freestanding compilers.
  # On the NeXT, cc -E runs the code through the compiler's parser,
  # not just through cpp. "Syntax error" is here to catch this case.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef __STDC__
# include 
#else
# include 
#endif
		     Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :

else
  # Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext

  # OK, works on sane cases.  Now check whether nonexistent headers
  # can be detected and how.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # Broken: success on invalid input.
continue
else
  # Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
  break
fi

    done
    ac_cv_prog_CPP=$CPP

fi
  CPP=$ac_cv_prog_CPP
else
  ac_cv_prog_CPP=$CPP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
  # Use a header file that comes with gcc, so configuring glibc
  # with a fresh cross-compiler works.
  # Prefer  to  if __STDC__ is defined, since
  #  exists even on freestanding compilers.
  # On the NeXT, cc -E runs the code through the compiler's parser,
  # not just through cpp. "Syntax error" is here to catch this case.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef __STDC__
# include 
#else
# include 
#endif
		     Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :

else
  # Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext

  # OK, works on sane cases.  Now check whether nonexistent headers
  # can be detected and how.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # Broken: success on invalid input.
continue
else
  # Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :

else
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
if ${ac_cv_path_GREP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -z "$GREP"; then
  ac_path_GREP_found=false
  # Loop through the user's path and test for each of PROGNAME-LIST
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in grep ggrep; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
      as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
  # Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
  ac_count=0
  $as_echo_n 0123456789 >"conftest.in"
  while :
  do
    cat "conftest.in" "conftest.in" >"conftest.tmp"
    mv "conftest.tmp" "conftest.in"
    cp "conftest.in" "conftest.nl"
    $as_echo 'GREP' >> "conftest.nl"
    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
    as_fn_arith $ac_count + 1 && ac_count=$as_val
    if test $ac_count -gt ${ac_path_GREP_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_GREP="$ac_path_GREP"
      ac_path_GREP_max=$ac_count
    fi
    # 10*(2^10) chars as input seems more than enough
    test $ac_count -gt 10 && break
  done
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac

      $ac_path_GREP_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_GREP"; then
    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
  fi
else
  ac_cv_path_GREP=$GREP
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
$as_echo "$ac_cv_path_GREP" >&6; }
 GREP="$ac_cv_path_GREP"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if ${ac_cv_path_EGREP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
   then ac_cv_path_EGREP="$GREP -E"
   else
     if test -z "$EGREP"; then
  ac_path_EGREP_found=false
  # Loop through the user's path and test for each of PROGNAME-LIST
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in egrep; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
      as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
  # Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
  ac_count=0
  $as_echo_n 0123456789 >"conftest.in"
  while :
  do
    cat "conftest.in" "conftest.in" >"conftest.tmp"
    mv "conftest.tmp" "conftest.in"
    cp "conftest.in" "conftest.nl"
    $as_echo 'EGREP' >> "conftest.nl"
    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
    as_fn_arith $ac_count + 1 && ac_count=$as_val
    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_EGREP="$ac_path_EGREP"
      ac_path_EGREP_max=$ac_count
    fi
    # 10*(2^10) chars as input seems more than enough
    test $ac_count -gt 10 && break
  done
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac

      $ac_path_EGREP_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_EGREP"; then
    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
  fi
else
  ac_cv_path_EGREP=$EGREP
fi

   fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
 EGREP="$ac_cv_path_EGREP"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#include 
#include 

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_stdc=yes
else
  ac_cv_header_stdc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

if test $ac_cv_header_stdc = yes; then
  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "memchr" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "free" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
  if test "$cross_compiling" = yes; then :
  :
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
		   (('a' <= (c) && (c) <= 'i') \
		     || ('j' <= (c) && (c) <= 'r') \
		     || ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif

#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
  int i;
  for (i = 0; i < 256; i++)
    if (XOR (islower (i), ISLOWER (i))
	|| toupper (i) != TOUPPER (i))
      return 2;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

else
  ac_cv_header_stdc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then

$as_echo "#define STDC_HEADERS 1" >>confdefs.h

fi

# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
		  inttypes.h stdint.h unistd.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done



  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
if test "x$ac_cv_header_minix_config_h" = xyes; then :
  MINIX=yes
else
  MINIX=
fi


  if test "$MINIX" = yes; then

$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h


$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h


$as_echo "#define _MINIX 1" >>confdefs.h

  fi


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if ${ac_cv_safe_to_define___extensions__+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#         define __EXTENSIONS__ 1
          $ac_includes_default
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_safe_to_define___extensions__=yes
else
  ac_cv_safe_to_define___extensions__=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
  test $ac_cv_safe_to_define___extensions__ = yes &&
    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h

  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h

  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h

  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h

  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h





if test "x${CFLAGS}" = "x"
then
  if test "x${GCC}" = "xyes"
  then
        DEBUG="-g -O2"
    OPTIMIZE="-O2"
    CFLAGS="-fno-common -Wall -Wpointer-arith -Wnested-externs"



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc strength-reduce bug" >&5
$as_echo_n "checking for gcc strength-reduce bug... " >&6; }
if ${ac_cv_c_gcc_strength_bug+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_c_gcc_strength_bug="yes"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

    int main(void) {
      static int Array[3];
      unsigned int B = 3;
      int i;
      for(i=0; i&5
$as_echo "$ac_cv_c_gcc_strength_bug" >&6; }

  if test "$ac_cv_c_gcc_strength_bug" = "yes"
  then
    :
    CFLAGS="$CFLAGS -fno-strength-reduce"
  else
    :

  fi


    CFLAGS="$CPU_FLAGS $CFLAGS"
  else
    case "${host}" in
      alpha*-dec-osf4.*)
        CFLAGS="-std1 -w0"
        OPTIMIZE="-O2"
        DEBUG="-g3 -O2"
        ;;
      hppa*-hp-hpux*)
        CFLAGS="-Aa -D_HPUX_SOURCE"
        OPTIMIZE="-O"
        DEBUG="-g -O"
        ;;
      mips-sgi-irix6.[4-9]*)
        CFLAGS="-w"
        OPTIMIZE="-O2 -OPT:Olimit=0"
        DEBUG="-g3 -O2 -OPT:Olimit=0"
        ;;
      mips-sgi-irix*)
        CFLAGS="-fullwarn -woff 835"
        OPTIMIZE="-O2 -Olimit 3500"
        ;;
      rs6000-ibm-aix*)
        CFLAGS="-D_ALL_SOURCE"
        OPTIMIZE="-O2"
        DEBUG="-g -O2"
        ;;
      *)
        CFLAGS=""
        OPTIMIZE="-O"
        DEBUG="-g"
        ;;
    esac
  fi
fi

case $debug in
  true) CFLAGS="$DEBUG $CFLAGS";;
  *) CFLAGS="$OPTIMIZE $CFLAGS";;
esac

case $FC in
  /*|../*|./*)
     if test ! -x $FC; then
       FC=no
     fi
     ;;
  *) # Extract the first word of "$FC", so it can be a program name with args.
set dummy $FC; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_fc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$fc"; then
  ac_cv_prog_fc="$fc" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_fc="$FC"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_fc" && ac_cv_prog_fc="no"
fi
fi
fc=$ac_cv_prog_fc
if test -n "$fc"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fc" >&5
$as_echo "$fc" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


     FC=$ac_cv_prog_fc
     ;;
esac

if test "${FC}" = "no"
then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Fortran tests won't be compiled" >&5
$as_echo "--> Fortran tests won't be compiled" >&6; }
  FC=:
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
$as_echo_n "checking whether char is unsigned... " >&6; }
if ${ac_cv_c_char_unsigned+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$ac_includes_default
int
main ()
{
static int test_array [1 - 2 * !(((char) -1) < 0)];
test_array [0] = 0;
return test_array [0];

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_char_unsigned=no
else
  ac_cv_c_char_unsigned=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
$as_echo "$ac_cv_c_char_unsigned" >&6; }
if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
  $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h

fi

# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
$as_echo_n "checking size of char... " >&6; }
if ${ac_cv_sizeof_char+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_char" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (char)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_char=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
$as_echo "$ac_cv_sizeof_char" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_CHAR $ac_cv_sizeof_char
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
$as_echo_n "checking size of short... " >&6; }
if ${ac_cv_sizeof_short+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_short" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (short)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_short=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
$as_echo "$ac_cv_sizeof_short" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_SHORT $ac_cv_sizeof_short
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
$as_echo_n "checking size of int... " >&6; }
if ${ac_cv_sizeof_int+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_int" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_int=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
$as_echo "$ac_cv_sizeof_int" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_INT $ac_cv_sizeof_int
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
$as_echo_n "checking size of long... " >&6; }
if ${ac_cv_sizeof_long+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_long" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_long=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
$as_echo "$ac_cv_sizeof_long" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_LONG $ac_cv_sizeof_long
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
$as_echo_n "checking size of long long... " >&6; }
if ${ac_cv_sizeof_long_long+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_long_long" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long long)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_long_long=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
$as_echo "$ac_cv_sizeof_long_long" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of float" >&5
$as_echo_n "checking size of float... " >&6; }
if ${ac_cv_sizeof_float+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_float" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (float)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_float=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5
$as_echo "$ac_cv_sizeof_float" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_FLOAT $ac_cv_sizeof_float
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5
$as_echo_n "checking size of double... " >&6; }
if ${ac_cv_sizeof_double+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_double" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (double)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_double=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5
$as_echo "$ac_cv_sizeof_double" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_DOUBLE $ac_cv_sizeof_double
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5
$as_echo_n "checking size of long double... " >&6; }
if ${ac_cv_sizeof_long_double+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_long_double" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long double)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_long_double=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5
$as_echo "$ac_cv_sizeof_long_double" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double
_ACEOF


# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
$as_echo_n "checking size of void *... " >&6; }
if ${ac_cv_sizeof_void_p+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_void_p" = yes; then
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (void *)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_void_p=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
$as_echo "$ac_cv_sizeof_void_p" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
_ACEOF



 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
if ${ac_cv_c_bigendian+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_c_bigendian=unknown
    # See if we're dealing with a universal compiler.
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __APPLE_CC__
	       not a universal capable compiler
	     #endif
	     typedef int dummy;

_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

	# Check for potential -arch flags.  It is not universal unless
	# there are at least two -arch flags with different values.
	ac_arch=
	ac_prev=
	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
	 if test -n "$ac_prev"; then
	   case $ac_word in
	     i?86 | x86_64 | ppc | ppc64)
	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
		 ac_arch=$ac_word
	       else
		 ac_cv_c_bigendian=universal
		 break
	       fi
	       ;;
	   esac
	   ac_prev=
	 elif test "x$ac_word" = "x-arch"; then
	   ac_prev=arch
	 fi
       done
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    if test $ac_cv_c_bigendian = unknown; then
      # See if sys/param.h defines the BYTE_ORDER macro.
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
	     #include 

int
main ()
{
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
		     && LITTLE_ENDIAN)
	      bogus endian macros
	     #endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  # It does; now see whether it defined to BIG_ENDIAN or not.
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
		#include 

int
main ()
{
#if BYTE_ORDER != BIG_ENDIAN
		 not big endian
		#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_bigendian=yes
else
  ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    fi
    if test $ac_cv_c_bigendian = unknown; then
      # See if  defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

int
main ()
{
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
	      bogus endian macros
	     #endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  # It does; now see whether it defined to _BIG_ENDIAN or not.
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

int
main ()
{
#ifndef _BIG_ENDIAN
		 not big endian
		#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_bigendian=yes
else
  ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    fi
    if test $ac_cv_c_bigendian = unknown; then
      # Compile a test program.
      if test "$cross_compiling" = yes; then :
  # Try to guess by grepping values from an object file.
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
short int ascii_mm[] =
		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
		short int ascii_ii[] =
		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
		int use_ascii (int i) {
		  return ascii_mm[i] + ascii_ii[i];
		}
		short int ebcdic_ii[] =
		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
		short int ebcdic_mm[] =
		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
		int use_ebcdic (int i) {
		  return ebcdic_mm[i] + ebcdic_ii[i];
		}
		extern int foo;

int
main ()
{
return use_ascii (foo) == use_ebcdic (foo);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
	      ac_cv_c_bigendian=yes
	    fi
	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
	      if test "$ac_cv_c_bigendian" = unknown; then
		ac_cv_c_bigendian=no
	      else
		# finding both strings is unlikely to happen, but who knows?
		ac_cv_c_bigendian=unknown
	      fi
	    fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$ac_includes_default
int
main ()
{

	     /* Are we little or big endian?  From Harbison&Steele.  */
	     union
	     {
	       long int l;
	       char c[sizeof (long int)];
	     } u;
	     u.l = 1;
	     return u.c[sizeof (long int) - 1] == 1;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_c_bigendian=no
else
  ac_cv_c_bigendian=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

    fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
$as_echo "$ac_cv_c_bigendian" >&6; }
 case $ac_cv_c_bigendian in #(
   yes)
     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
   no)
      ;; #(
   universal)

$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h

     ;; #(
   *)
     as_fn_error $? "unknown endianness
 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
 esac



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FPU arithmetics type" >&5
$as_echo_n "checking for FPU arithmetics type... " >&6; }
if ${ac_cv_c_fpu_arithmetics_type+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_c_fpu_arithmetics_type="Unknown"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 

#define LOG2EA 0.44269504088896340735992
#define ACCURACY "%1.4f"

typedef union {unsigned short s[4]; double d;} XTYPE;

XTYPE X[] = {
              {{0,0,0,0}},			    /* Unknown             */
              {{0x3fdc,0x551d,0x94ae,0x0bf8}}, 	    /* Big endian     IEEE */
              {{0x0bf8,0x94ae,0x551d,0x3fdc}}, 	    /* Littile endian IEEE */
              {{0037742,0124354,0122560,0057703}}   /* DEC                 */
            };

int main (void)
{
    int i; char TMPSTR[1024]; char LOG2EA_STR[80];
    i = 0;

    sprintf(LOG2EA_STR, ACCURACY, LOG2EA);

    for (i=3; i >= 0; i--)
    {
      	sprintf(TMPSTR, ACCURACY, X[i].d);
      	if (strcmp(TMPSTR, LOG2EA_STR) == 0) {
    	    break;
      	}
    }

    exit(i);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_c_fpu_arithmetics_type="Unknown"
else
  case "$?" in
      "1") ac_cv_c_fpu_arithmetics_type="Big endian IEEE" ;;
      "2") ac_cv_c_fpu_arithmetics_type="Little endian IEEE" ;;
      "3") ac_cv_c_fpu_arithmetics_type="DEC" ;;
    esac
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_fpu_arithmetics_type" >&5
$as_echo "$ac_cv_c_fpu_arithmetics_type" >&6; }

case "$ac_cv_c_fpu_arithmetics_type" in
  "DEC")                $as_echo "#define HAVE_DEC_FPU 1" >>confdefs.h
 ;;
  "Little endian IEEE") $as_echo "#define HAVE_LIEEE_FPU 1" >>confdefs.h
 ;;
  "Big endian IEEE")    $as_echo "#define HAVE_BIEEE_FPU 1" >>confdefs.h
 ;;
esac






OBJEXT=".$OBJEXT"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
	@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
  *@@@%%%=?*=@@@%%%*)
    eval ac_cv_prog_make_${ac_make}_set=yes;;
  *)
    eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
  SET_MAKE=
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  SET_MAKE="MAKE=${MAKE-make}"
fi


# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AR+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$AR"; then
  ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_AR="ar"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="NONE"
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
$as_echo "$AR" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


if test "$AR" = "NONE"; then
  as_fn_error $? "--> Can't find \`ar'!" "$LINENO" 5
  cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems.  If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.

_ACEOF

# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
    eval ac_val=\$$ac_var
    case $ac_val in #(
    *${as_nl}*)
      case $ac_var in #(
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      esac
      case $ac_var in #(
      _ | IFS | as_nl) ;; #(
      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
      *) { eval $ac_var=; unset $ac_var;} ;;
      esac ;;
    esac
  done

  (set) 2>&1 |
    case $as_nl`(ac_space=' '; set) 2>&1` in #(
    *${as_nl}ac_space=\ *)
      # `set' does not quote correctly, so add quotes: double-quote
      # substitution turns \\\\ into \\, and sed turns \\ into \.
      sed -n \
	"s/'/'\\\\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
      ;; #(
    *)
      # `set' quotes correctly as required by POSIX, so do not add quotes.
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
) |
  sed '
     /^ac_cv_env_/b end
     t clear
     :clear
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
     t end
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
     :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  if test -w "$cache_file"; then
    if test "x$cache_file" != "x/dev/null"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
      if test ! -f "$cache_file" || test -h "$cache_file"; then
	cat confcache >"$cache_file"
      else
        case $cache_file in #(
        */* | ?:*)
	  mv -f confcache "$cache_file"$$ &&
	  mv -f "$cache_file"$$ "$cache_file" ;; #(
        *)
	  mv -f confcache "$cache_file" ;;
	esac
      fi
    fi
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
  fi
fi
rm -f confcache
  exit 1
fi

if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_RANLIB+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$RANLIB"; then
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
$as_echo "$RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_RANLIB"; then
  ac_ct_RANLIB=$RANLIB
  # Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_RANLIB"; then
  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_RANLIB="ranlib"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
$as_echo "$ac_ct_RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_RANLIB" = x; then
    RANLIB=":"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    RANLIB=$ac_ct_RANLIB
  fi
else
  RANLIB="$ac_cv_prog_RANLIB"
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
$as_echo_n "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
$as_echo "no, using $LN_S" >&6; }
fi

for ac_prog in 'bison -y' byacc
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_YACC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$YACC"; then
  ac_cv_prog_YACC="$YACC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_YACC="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
$as_echo "$YACC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$YACC" && break
done
test -n "$YACC" || YACC="yacc"


# Find a good install program.  We prefer a C program (faster),
# so one script is as good as another.  But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if ${ac_cv_path_install+:} false; then :
  $as_echo_n "(cached) " >&6
else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    # Account for people who put trailing slashes in PATH elements.
case $as_dir/ in #((
  ./ | .// | /[cC]/* | \
  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
  /usr/ucb/* ) ;;
  *)
    # OSF1 and SCO ODT 3.0 have their own names for install.
    # Don't use installbsd from OSF since it installs stuff as root
    # by default.
    for ac_prog in ginstall scoinst install; do
      for ac_exec_ext in '' $ac_executable_extensions; do
	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
	  if test $ac_prog = install &&
	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # AIX install.  It has an incompatible calling convention.
	    :
	  elif test $ac_prog = install &&
	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # program-specific install script used by HP pwplus--don't use.
	    :
	  else
	    rm -rf conftest.one conftest.two conftest.dir
	    echo one > conftest.one
	    echo two > conftest.two
	    mkdir conftest.dir
	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
	      test -s conftest.one && test -s conftest.two &&
	      test -s conftest.dir/conftest.one &&
	      test -s conftest.dir/conftest.two
	    then
	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
	      break 3
	    fi
	  fi
	fi
      done
    done
    ;;
esac

  done
IFS=$as_save_IFS

rm -rf conftest.one conftest.two conftest.dir

fi
  if test "${ac_cv_path_install+set}" = set; then
    INSTALL=$ac_cv_path_install
  else
    # As a last resort, use the slow shell script.  Don't cache a
    # value for INSTALL within a source directory, because that will
    # break other packages using the cache if that directory is
    # removed, or if the value is a relative name.
    INSTALL=$ac_install_sh
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }

# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'

test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'

test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'

case "x$INSTALL" in
   x/*) ;;
   *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
esac

MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"

if test "x$PRINT_CMD" = "xNONE"; then
  # Extract the first word of "lp", so it can be a program name with args.
set dummy lp; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LP_CMD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LP_CMD"; then
  ac_cv_prog_LP_CMD="$LP_CMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_LP_CMD="'lp -c'"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_LP_CMD" && ac_cv_prog_LP_CMD=""NONE""
fi
fi
LP_CMD=$ac_cv_prog_LP_CMD
if test -n "$LP_CMD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LP_CMD" >&5
$as_echo "$LP_CMD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  if test "${ac_cv_prog_LP_CMD}" = "NONE"; then
    # Extract the first word of "lpr", so it can be a program name with args.
set dummy lpr; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LPR_CMD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LPR_CMD"; then
  ac_cv_prog_LPR_CMD="$LPR_CMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_LPR_CMD="'lpr'"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_LPR_CMD" && ac_cv_prog_LPR_CMD=""NONE""
fi
fi
LPR_CMD=$ac_cv_prog_LPR_CMD
if test -n "$LPR_CMD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LPR_CMD" >&5
$as_echo "$LPR_CMD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    if test "${ac_cv_prog_LPR_CMD}" = "NONE"; then
      PRINT_CMD=
    else
      PRINT_CMD="${ac_cv_prog_LPR_CMD}"
    fi
  else
    PRINT_CMD="${ac_cv_prog_LP_CMD}"
  fi
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Using \"$PRINT_CMD\" to print" >&5
$as_echo "--> Using \"$PRINT_CMD\" to print" >&6; }

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#include 
#include 

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_stdc=yes
else
  ac_cv_header_stdc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

if test $ac_cv_header_stdc = yes; then
  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "memchr" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "free" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
  if test "$cross_compiling" = yes; then :
  :
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
		   (('a' <= (c) && (c) <= 'i') \
		     || ('j' <= (c) && (c) <= 'r') \
		     || ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif

#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
  int i;
  for (i = 0; i < 256; i++)
    if (XOR (islower (i), ISLOWER (i))
	|| toupper (i) != TOUPPER (i))
      return 2;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

else
  ac_cv_header_stdc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then

$as_echo "#define STDC_HEADERS 1" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
if ${ac_cv_header_sys_wait_h+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#ifndef WEXITSTATUS
# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
#endif
#ifndef WIFEXITED
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif

int
main ()
{
  int s;
  wait (&s);
  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_sys_wait_h=yes
else
  ac_cv_header_sys_wait_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
$as_echo "$ac_cv_header_sys_wait_h" >&6; }
if test $ac_cv_header_sys_wait_h = yes; then

$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h

fi

for ac_header in unistd.h fcntl.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

for ac_header in sys/param.h sys/time.h sys/select.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
if ${ac_cv_header_time+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 
#include 

int
main ()
{
if ((struct tm *) 0)
return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_time=yes
else
  ac_cv_header_time=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
$as_echo "$ac_cv_header_time" >&6; }
if test $ac_cv_header_time = yes; then

$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h

fi

for ac_header in math.h float.h ieeefp.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
if ${ac_cv_c_const+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

#ifndef __cplusplus
  /* Ultrix mips cc rejects this sort of thing.  */
  typedef int charset[2];
  const charset cs = { 0, 0 };
  /* SunOS 4.1.1 cc rejects this.  */
  char const *const *pcpcc;
  char **ppc;
  /* NEC SVR4.0.2 mips cc rejects this.  */
  struct point {int x, y;};
  static struct point const zero = {0,0};
  /* AIX XL C 1.02.0.0 rejects this.
     It does not let you subtract one const X* pointer from another in
     an arm of an if-expression whose if-part is not a constant
     expression */
  const char *g = "string";
  pcpcc = &g + (g ? g-g : 0);
  /* HPUX 7.0 cc rejects these. */
  ++pcpcc;
  ppc = (char**) pcpcc;
  pcpcc = (char const *const *) ppc;
  { /* SCO 3.2v4 cc rejects this sort of thing.  */
    char tx;
    char *t = &tx;
    char const *s = 0 ? (char *) 0 : (char const *) 0;

    *t++ = 0;
    if (s) return 0;
  }
  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
    int x[] = {25, 17};
    const int *foo = &x[0];
    ++foo;
  }
  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
    typedef const int *iptr;
    iptr p = 0;
    ++p;
  }
  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
    struct s { int j; const int *ap[3]; } bx;
    struct s *b = &bx; b->j = 5;
  }
  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
    const int foo = 10;
    if (!foo) return 0;
  }
  return !cs[0] && !zero.x;
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_const=yes
else
  ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
$as_echo "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then

$as_echo "#define const /**/" >>confdefs.h

fi

ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
if test "x$ac_cv_type_pid_t" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define pid_t int
_ACEOF

fi

ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define size_t unsigned int
_ACEOF

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
if ${ac_cv_struct_tm+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 

int
main ()
{
struct tm tm;
				     int *p = &tm.tm_sec;
				     return !p;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_struct_tm=time.h
else
  ac_cv_struct_tm=sys/time.h
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
$as_echo "$ac_cv_struct_tm" >&6; }
if test $ac_cv_struct_tm = sys/time.h; then

$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
$as_echo_n "checking return type of signal handlers... " >&6; }
if ${ac_cv_type_signal+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#include 

int
main ()
{
return *(signal (0, 0)) (0) == 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_type_signal=int
else
  ac_cv_type_signal=void
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
$as_echo "$ac_cv_type_signal" >&6; }

cat >>confdefs.h <<_ACEOF
#define RETSIGTYPE $ac_cv_type_signal
_ACEOF


# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments.  Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
$as_echo_n "checking for working alloca.h... " >&6; }
if ${ac_cv_working_alloca_h+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
int
main ()
{
char *p = (char *) alloca (2 * sizeof (int));
			  if (p) return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_working_alloca_h=yes
else
  ac_cv_working_alloca_h=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
$as_echo "$ac_cv_working_alloca_h" >&6; }
if test $ac_cv_working_alloca_h = yes; then

$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
if ${ac_cv_func_alloca_works+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef __GNUC__
# define alloca __builtin_alloca
#else
# ifdef _MSC_VER
#  include 
#  define alloca _alloca
# else
#  ifdef HAVE_ALLOCA_H
#   include 
#  else
#   ifdef _AIX
 #pragma alloca
#   else
#    ifndef alloca /* predefined by HP cc +Olibcalls */
void *alloca (size_t);
#    endif
#   endif
#  endif
# endif
#endif

int
main ()
{
char *p = (char *) alloca (1);
				    if (p) return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_func_alloca_works=yes
else
  ac_cv_func_alloca_works=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
$as_echo "$ac_cv_func_alloca_works" >&6; }

if test $ac_cv_func_alloca_works = yes; then

$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h

else
  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble.  Some versions do not even contain alloca or
# contain a buggy version.  If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.

ALLOCA=\${LIBOBJDIR}alloca.$ac_objext

$as_echo "#define C_ALLOCA 1" >>confdefs.h


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
if ${ac_cv_os_cray+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#if defined CRAY && ! defined CRAY2
webecray
#else
wenotbecray
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "webecray" >/dev/null 2>&1; then :
  ac_cv_os_cray=yes
else
  ac_cv_os_cray=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
$as_echo "$ac_cv_os_cray" >&6; }
if test $ac_cv_os_cray = yes; then
  for ac_func in _getb67 GETB67 getb67; do
    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :

cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
_ACEOF

    break
fi

  done
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
$as_echo_n "checking stack direction for C alloca... " >&6; }
if ${ac_cv_c_stack_direction+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_c_stack_direction=0
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$ac_includes_default
int
find_stack_direction (int *addr, int depth)
{
  int dir, dummy = 0;
  if (! addr)
    addr = &dummy;
  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
  return dir + dummy;
}

int
main (int argc, char **argv)
{
  return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_c_stack_direction=1
else
  ac_cv_c_stack_direction=-1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
$as_echo "$ac_cv_c_stack_direction" >&6; }
cat >>confdefs.h <<_ACEOF
#define STACK_DIRECTION $ac_cv_c_stack_direction
_ACEOF


fi

for ac_func in getcwd gethostname
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in strstr
do :
  ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr"
if test "x$ac_cv_func_strstr" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_STRSTR 1
_ACEOF

fi
done

for ac_func in memcpy memmove
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in unlink fcntl
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in popen
do :
  ac_fn_c_check_func "$LINENO" "popen" "ac_cv_func_popen"
if test "x$ac_cv_func_popen" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_POPEN 1
_ACEOF

fi
done

for ac_func in gettimeofday
do :
  ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
if test "x$ac_cv_func_gettimeofday" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GETTIMEOFDAY 1
_ACEOF

fi
done

for ac_func in fnmatch
do :
  ac_fn_c_check_func "$LINENO" "fnmatch" "ac_cv_func_fnmatch"
if test "x$ac_cv_func_fnmatch" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_FNMATCH 1
_ACEOF

fi
done

for ac_func in vsnprintf
do :
  ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
if test "x$ac_cv_func_vsnprintf" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_VSNPRINTF 1
_ACEOF

fi
done

for ac_func in on_exit
do :
  ac_fn_c_check_func "$LINENO" "on_exit" "ac_cv_func_on_exit"
if test "x$ac_cv_func_on_exit" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ON_EXIT 1
_ACEOF

fi
done

for ac_func in strerror
do :
  ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror"
if test "x$ac_cv_func_strerror" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_STRERROR 1
_ACEOF

fi
done

if test "$ac_cv_func_strerror" = no; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_errlist declaration in stdio.h" >&5
$as_echo_n "checking for sys_errlist declaration in stdio.h... " >&6; }
if ${ac_cv_sys_errlist_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "sys_errlist" >/dev/null 2>&1; then :
  ac_cv_sys_errlist_decl="yes"
else
  ac_cv_sys_errlist_decl="no"
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_errlist_decl" >&5
$as_echo "$ac_cv_sys_errlist_decl" >&6; }
  if test "$ac_cv_sys_errlist_decl" = yes; then
    $as_echo "#define HAVE_SYS_ERRLIST_DECL 1" >>confdefs.h

  fi
fi


ice_tr=`echo drand48 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_drand48=no
for ac_func in drand48
do :
  ac_fn_c_check_func "$LINENO" "drand48" "ac_cv_func_drand48"
if test "x$ac_cv_func_drand48" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_DRAND48 1
_ACEOF
 ice_have_drand48=yes
fi
done

if test "${ice_have_drand48}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for drand48 declaration in stdlib.h" >&5
$as_echo_n "checking for drand48 declaration in stdlib.h... " >&6; }
if ${ice_cv_have_drand48_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_drand48_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in stdlib.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}drand48 *\(" >/dev/null 2>&1; then :
  ice_cv_have_drand48_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_drand48_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}drand48 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_drand48_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_drand48_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_drand48_decl" >&5
$as_echo "$ice_cv_have_drand48_decl" >&6; }
if test "$ice_cv_have_drand48_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


for ac_func in setlocale
do :
  ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
if test "x$ac_cv_func_setlocale" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SETLOCALE 1
_ACEOF

fi
done



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realloc is buggy" >&5
$as_echo_n "checking whether realloc is buggy... " >&6; }
if ${ac_cv_c_realloc_bug+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_c_realloc_bug="yes"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
int main(void) {
  void *ptr;
  ptr = NULL;
  ptr = realloc(ptr, 1);
  exit(ptr == NULL);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_c_realloc_bug="no"
else
  ac_cv_c_realloc_bug="yes"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_realloc_bug" >&5
$as_echo "$ac_cv_c_realloc_bug" >&6; }
if test "$ac_cv_c_realloc_bug" = "yes"
  then
    :
    $as_echo "#define REALLOC_IS_BUGGY 1" >>confdefs.h

  else
    :

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
$as_echo_n "checking for sin in -lm... " >&6; }
if ${ac_cv_lib_m_sin+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lm  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char sin ();
int
main ()
{
return sin ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_m_sin=yes
else
  ac_cv_lib_m_sin=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
$as_echo "$ac_cv_lib_m_sin" >&6; }
if test "x$ac_cv_lib_m_sin" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBM 1
_ACEOF

  LIBS="-lm $LIBS"

fi



ice_tr=`echo hypot | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_hypot=no
for ac_func in hypot
do :
  ac_fn_c_check_func "$LINENO" "hypot" "ac_cv_func_hypot"
if test "x$ac_cv_func_hypot" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_HYPOT 1
_ACEOF
 ice_have_hypot=yes
fi
done

if test "${ice_have_hypot}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hypot declaration in math.h" >&5
$as_echo_n "checking for hypot declaration in math.h... " >&6; }
if ${ice_cv_have_hypot_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_hypot_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}hypot *\(" >/dev/null 2>&1; then :
  ice_cv_have_hypot_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_hypot_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}hypot *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_hypot_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_hypot_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_hypot_decl" >&5
$as_echo "$ice_cv_have_hypot_decl" >&6; }
if test "$ice_cv_have_hypot_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo rint | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_rint=no
for ac_func in rint
do :
  ac_fn_c_check_func "$LINENO" "rint" "ac_cv_func_rint"
if test "x$ac_cv_func_rint" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_RINT 1
_ACEOF
 ice_have_rint=yes
fi
done

if test "${ice_have_rint}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rint declaration in math.h" >&5
$as_echo_n "checking for rint declaration in math.h... " >&6; }
if ${ice_cv_have_rint_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_rint_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}rint *\(" >/dev/null 2>&1; then :
  ice_cv_have_rint_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_rint_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}rint *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_rint_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_rint_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_rint_decl" >&5
$as_echo "$ice_cv_have_rint_decl" >&6; }
if test "$ice_cv_have_rint_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo cbrt | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_cbrt=no
for ac_func in cbrt
do :
  ac_fn_c_check_func "$LINENO" "cbrt" "ac_cv_func_cbrt"
if test "x$ac_cv_func_cbrt" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_CBRT 1
_ACEOF
 ice_have_cbrt=yes
fi
done

if test "${ice_have_cbrt}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cbrt declaration in math.h" >&5
$as_echo_n "checking for cbrt declaration in math.h... " >&6; }
if ${ice_cv_have_cbrt_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_cbrt_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}cbrt *\(" >/dev/null 2>&1; then :
  ice_cv_have_cbrt_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_cbrt_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}cbrt *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_cbrt_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_cbrt_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_cbrt_decl" >&5
$as_echo "$ice_cv_have_cbrt_decl" >&6; }
if test "$ice_cv_have_cbrt_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo log2 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_log2=no
for ac_func in log2
do :
  ac_fn_c_check_func "$LINENO" "log2" "ac_cv_func_log2"
if test "x$ac_cv_func_log2" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LOG2 1
_ACEOF
 ice_have_log2=yes
fi
done

if test "${ice_have_log2}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for log2 declaration in math.h" >&5
$as_echo_n "checking for log2 declaration in math.h... " >&6; }
if ${ice_cv_have_log2_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_log2_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}log2 *\(" >/dev/null 2>&1; then :
  ice_cv_have_log2_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_log2_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}log2 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_log2_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_log2_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_log2_decl" >&5
$as_echo "$ice_cv_have_log2_decl" >&6; }
if test "$ice_cv_have_log2_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo asinh | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_asinh=no
for ac_func in asinh
do :
  ac_fn_c_check_func "$LINENO" "asinh" "ac_cv_func_asinh"
if test "x$ac_cv_func_asinh" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ASINH 1
_ACEOF
 ice_have_asinh=yes
fi
done

if test "${ice_have_asinh}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for asinh declaration in math.h" >&5
$as_echo_n "checking for asinh declaration in math.h... " >&6; }
if ${ice_cv_have_asinh_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_asinh_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}asinh *\(" >/dev/null 2>&1; then :
  ice_cv_have_asinh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_asinh_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}asinh *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_asinh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_asinh_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_asinh_decl" >&5
$as_echo "$ice_cv_have_asinh_decl" >&6; }
if test "$ice_cv_have_asinh_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo acosh | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_acosh=no
for ac_func in acosh
do :
  ac_fn_c_check_func "$LINENO" "acosh" "ac_cv_func_acosh"
if test "x$ac_cv_func_acosh" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ACOSH 1
_ACEOF
 ice_have_acosh=yes
fi
done

if test "${ice_have_acosh}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosh declaration in math.h" >&5
$as_echo_n "checking for acosh declaration in math.h... " >&6; }
if ${ice_cv_have_acosh_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_acosh_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}acosh *\(" >/dev/null 2>&1; then :
  ice_cv_have_acosh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_acosh_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}acosh *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_acosh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_acosh_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_acosh_decl" >&5
$as_echo "$ice_cv_have_acosh_decl" >&6; }
if test "$ice_cv_have_acosh_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo atanh | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_atanh=no
for ac_func in atanh
do :
  ac_fn_c_check_func "$LINENO" "atanh" "ac_cv_func_atanh"
if test "x$ac_cv_func_atanh" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ATANH 1
_ACEOF
 ice_have_atanh=yes
fi
done

if test "${ice_have_atanh}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for atanh declaration in math.h" >&5
$as_echo_n "checking for atanh declaration in math.h... " >&6; }
if ${ice_cv_have_atanh_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_atanh_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}atanh *\(" >/dev/null 2>&1; then :
  ice_cv_have_atanh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_atanh_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}atanh *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_atanh_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_atanh_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_atanh_decl" >&5
$as_echo "$ice_cv_have_atanh_decl" >&6; }
if test "$ice_cv_have_atanh_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo lgamma | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_lgamma=no
for ac_func in lgamma
do :
  ac_fn_c_check_func "$LINENO" "lgamma" "ac_cv_func_lgamma"
if test "x$ac_cv_func_lgamma" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LGAMMA 1
_ACEOF
 ice_have_lgamma=yes
fi
done

if test "${ice_have_lgamma}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lgamma declaration in math.h" >&5
$as_echo_n "checking for lgamma declaration in math.h... " >&6; }
if ${ice_cv_have_lgamma_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_lgamma_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}lgamma *\(" >/dev/null 2>&1; then :
  ice_cv_have_lgamma_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_lgamma_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}lgamma *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_lgamma_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_lgamma_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_lgamma_decl" >&5
$as_echo "$ice_cv_have_lgamma_decl" >&6; }
if test "$ice_cv_have_lgamma_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


if test "$ac_cv_func_lgamma" = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signgam declaration in math.h" >&5
$as_echo_n "checking for signgam declaration in math.h... " >&6; }
if ${ac_cv_signgam_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "signgam" >/dev/null 2>&1; then :
  ac_cv_signgam_decl="yes"
else
  ac_cv_signgam_decl="no"
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_signgam_decl" >&5
$as_echo "$ac_cv_signgam_decl" >&6; }
  if test "$ac_cv_signgam_decl" = yes; then
    $as_echo "#define HAVE_SIGNGAM_DECL 1" >>confdefs.h

  fi
fi


ice_tr=`echo erf | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_erf=no
for ac_func in erf
do :
  ac_fn_c_check_func "$LINENO" "erf" "ac_cv_func_erf"
if test "x$ac_cv_func_erf" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ERF 1
_ACEOF
 ice_have_erf=yes
fi
done

if test "${ice_have_erf}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for erf declaration in math.h" >&5
$as_echo_n "checking for erf declaration in math.h... " >&6; }
if ${ice_cv_have_erf_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_erf_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}erf *\(" >/dev/null 2>&1; then :
  ice_cv_have_erf_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_erf_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}erf *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_erf_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_erf_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_erf_decl" >&5
$as_echo "$ice_cv_have_erf_decl" >&6; }
if test "$ice_cv_have_erf_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo erfc | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_erfc=no
for ac_func in erfc
do :
  ac_fn_c_check_func "$LINENO" "erfc" "ac_cv_func_erfc"
if test "x$ac_cv_func_erfc" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ERFC 1
_ACEOF
 ice_have_erfc=yes
fi
done

if test "${ice_have_erfc}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for erfc declaration in math.h" >&5
$as_echo_n "checking for erfc declaration in math.h... " >&6; }
if ${ice_cv_have_erfc_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_erfc_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}erfc *\(" >/dev/null 2>&1; then :
  ice_cv_have_erfc_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_erfc_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}erfc *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_erfc_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_erfc_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_erfc_decl" >&5
$as_echo "$ice_cv_have_erfc_decl" >&6; }
if test "$ice_cv_have_erfc_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo j0 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_j0=no
for ac_func in j0
do :
  ac_fn_c_check_func "$LINENO" "j0" "ac_cv_func_j0"
if test "x$ac_cv_func_j0" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_J0 1
_ACEOF
 ice_have_j0=yes
fi
done

if test "${ice_have_j0}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for j0 declaration in math.h" >&5
$as_echo_n "checking for j0 declaration in math.h... " >&6; }
if ${ice_cv_have_j0_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_j0_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}j0 *\(" >/dev/null 2>&1; then :
  ice_cv_have_j0_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_j0_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}j0 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_j0_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_j0_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_j0_decl" >&5
$as_echo "$ice_cv_have_j0_decl" >&6; }
if test "$ice_cv_have_j0_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo j1 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_j1=no
for ac_func in j1
do :
  ac_fn_c_check_func "$LINENO" "j1" "ac_cv_func_j1"
if test "x$ac_cv_func_j1" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_J1 1
_ACEOF
 ice_have_j1=yes
fi
done

if test "${ice_have_j1}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for j1 declaration in math.h" >&5
$as_echo_n "checking for j1 declaration in math.h... " >&6; }
if ${ice_cv_have_j1_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_j1_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}j1 *\(" >/dev/null 2>&1; then :
  ice_cv_have_j1_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_j1_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}j1 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_j1_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_j1_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_j1_decl" >&5
$as_echo "$ice_cv_have_j1_decl" >&6; }
if test "$ice_cv_have_j1_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo jn | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_jn=no
for ac_func in jn
do :
  ac_fn_c_check_func "$LINENO" "jn" "ac_cv_func_jn"
if test "x$ac_cv_func_jn" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_JN 1
_ACEOF
 ice_have_jn=yes
fi
done

if test "${ice_have_jn}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for jn declaration in math.h" >&5
$as_echo_n "checking for jn declaration in math.h... " >&6; }
if ${ice_cv_have_jn_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_jn_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}jn *\(" >/dev/null 2>&1; then :
  ice_cv_have_jn_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_jn_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}jn *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_jn_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_jn_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_jn_decl" >&5
$as_echo "$ice_cv_have_jn_decl" >&6; }
if test "$ice_cv_have_jn_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo y0 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_y0=no
for ac_func in y0
do :
  ac_fn_c_check_func "$LINENO" "y0" "ac_cv_func_y0"
if test "x$ac_cv_func_y0" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_Y0 1
_ACEOF
 ice_have_y0=yes
fi
done

if test "${ice_have_y0}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for y0 declaration in math.h" >&5
$as_echo_n "checking for y0 declaration in math.h... " >&6; }
if ${ice_cv_have_y0_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_y0_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}y0 *\(" >/dev/null 2>&1; then :
  ice_cv_have_y0_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_y0_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}y0 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_y0_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_y0_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_y0_decl" >&5
$as_echo "$ice_cv_have_y0_decl" >&6; }
if test "$ice_cv_have_y0_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo y1 | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_y1=no
for ac_func in y1
do :
  ac_fn_c_check_func "$LINENO" "y1" "ac_cv_func_y1"
if test "x$ac_cv_func_y1" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_Y1 1
_ACEOF
 ice_have_y1=yes
fi
done

if test "${ice_have_y1}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for y1 declaration in math.h" >&5
$as_echo_n "checking for y1 declaration in math.h... " >&6; }
if ${ice_cv_have_y1_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_y1_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}y1 *\(" >/dev/null 2>&1; then :
  ice_cv_have_y1_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_y1_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}y1 *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_y1_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_y1_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_y1_decl" >&5
$as_echo "$ice_cv_have_y1_decl" >&6; }
if test "$ice_cv_have_y1_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo yn | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_yn=no
for ac_func in yn
do :
  ac_fn_c_check_func "$LINENO" "yn" "ac_cv_func_yn"
if test "x$ac_cv_func_yn" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_YN 1
_ACEOF
 ice_have_yn=yes
fi
done

if test "${ice_have_yn}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for yn declaration in math.h" >&5
$as_echo_n "checking for yn declaration in math.h... " >&6; }
if ${ice_cv_have_yn_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_yn_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}yn *\(" >/dev/null 2>&1; then :
  ice_cv_have_yn_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_yn_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}yn *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_yn_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_yn_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_yn_decl" >&5
$as_echo "$ice_cv_have_yn_decl" >&6; }
if test "$ice_cv_have_yn_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


ice_tr=`echo finite | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_finite=no
for ac_func in finite
do :
  ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite"
if test "x$ac_cv_func_finite" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_FINITE 1
_ACEOF
 ice_have_finite=yes
fi
done

if test "${ice_have_finite}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for finite declaration in math.h" >&5
$as_echo_n "checking for finite declaration in math.h... " >&6; }
if ${ice_cv_have_finite_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_finite_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}finite *\(" >/dev/null 2>&1; then :
  ice_cv_have_finite_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_finite_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}finite *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_finite_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_finite_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_finite_decl" >&5
$as_echo "$ice_cv_have_finite_decl" >&6; }
if test "$ice_cv_have_finite_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi

if test "$ac_cv_lib_m_finite" != yes; then

ice_tr=`echo isfinite | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_isfinite=no
for ac_func in isfinite
do :
  ac_fn_c_check_func "$LINENO" "isfinite" "ac_cv_func_isfinite"
if test "x$ac_cv_func_isfinite" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ISFINITE 1
_ACEOF
 ice_have_isfinite=yes
fi
done

if test "${ice_have_isfinite}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite declaration in math.h" >&5
$as_echo_n "checking for isfinite declaration in math.h... " >&6; }
if ${ice_cv_have_isfinite_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_isfinite_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}isfinite *\(" >/dev/null 2>&1; then :
  ice_cv_have_isfinite_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_isfinite_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}isfinite *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_isfinite_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_isfinite_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_isfinite_decl" >&5
$as_echo "$ice_cv_have_isfinite_decl" >&6; }
if test "$ice_cv_have_isfinite_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi

fi

ice_tr=`echo isnan | tr '[a-z]' '[A-Z]'`
ice_have_tr=HAVE_$ice_tr
ice_have_decl_tr=${ice_have_tr}_DECL
ice_have_isnan=no
for ac_func in isnan
do :
  ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
if test "x$ac_cv_func_isnan" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_ISNAN 1
_ACEOF
 ice_have_isnan=yes
fi
done

if test "${ice_have_isnan}" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan declaration in math.h" >&5
$as_echo_n "checking for isnan declaration in math.h... " >&6; }
if ${ice_cv_have_isnan_decl+:} false; then :
  $as_echo_n "(cached) " >&6
else

ice_cv_have_isnan_decl=no
ice_re_params='[a-zA-Z_][a-zA-Z0-9_]*'
ice_re_word='(^|[^a-zA-Z_0-9_])'
for header in math.h; do
# Check for ordinary declaration
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}isnan *\(" >/dev/null 2>&1; then :
  ice_cv_have_isnan_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_isnan_decl" = yes; then
	break
fi
# Check for "fixed" declaration like "getpid _PARAMS((int))"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$header>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "${ice_re_word}isnan *$ice_re_params\(\(" >/dev/null 2>&1; then :
  ice_cv_have_isnan_decl=yes
fi
rm -f conftest*

if test "$ice_cv_have_isnan_decl" = yes; then
	break
fi
done

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_isnan_decl" >&5
$as_echo "$ice_cv_have_isnan_decl" >&6; }
if test "$ice_cv_have_isnan_decl" = yes; then
cat >>confdefs.h <<_ACEOF
#define ${ice_have_decl_tr} 1
_ACEOF

fi
fi


if test $bundled_t1lib = false
then

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for T1lib >= 1.3.1" >&5
$as_echo_n "checking for T1lib >= 1.3.1... " >&6; }
if ${acx_cv_t1lib+:} false; then :
  $as_echo_n "(cached) " >&6
else

    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="-lt1 -lm $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_t1lib="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        char *vlib;
        vlib = T1_GetLibIdent();
        if (strcmp(vlib, "1.3.1") < 0) {
          exit(1);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_t1lib="yes"
else
  acx_cv_t1lib="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_t1lib" >&5
$as_echo "$acx_cv_t1lib" >&6; }
  if test "$acx_cv_t1lib" = "yes"
  then
    T1_LIB="-lt1"
    $as_echo "#define HAVE_LIBT1 1" >>confdefs.h

  else
    T1_LIB=
    bundled_t1lib=true
  fi

fi

if test $bundled_t1lib = true
then

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Bundled version of T1lib will be used" >&5
$as_echo "--> Bundled version of T1lib will be used" >&6; }

  T1_LIB='$(TOP)/T1lib/libt1.a'
  T1_INC='-I$(TOP)/T1lib/t1lib'
  t1lib_dir="T1lib"


    { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"which ANSI integer type is 16 bit\"" >&5
$as_echo_n "checking \"which ANSI integer type is 16 bit\"... " >&6; }
if ${ac_cv_16bit_type+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_16bit_type=
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

  int main(void) {
    if (sizeof(short)==2)
      return(0);
    else if (sizeof(int)==2)
      return(1);
    else
      return(2);
  }
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_16bit_type="short"
else
  ac_cv_16bit_type="int"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_16bit_type" >&5
$as_echo "$ac_cv_16bit_type" >&6; }
  if test "$ac_cv_16bit_type" = "short"
  then
    T1_AA_TYPE16="short"
  else
    T1_AA_TYPE16="int"
  fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"which ANSI integer type is 32 bit\"" >&5
$as_echo_n "checking \"which ANSI integer type is 32 bit\"... " >&6; }
if ${ac_cv_32bit_type+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_32bit_type=
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

  int main(void) {
    if (sizeof(int)==4)
      return(0);
    else if (sizeof(long)==4)
      return(1);
    else
      return(2);
  }
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_32bit_type="int"
else
  ac_cv_32bit_type="long"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_32bit_type" >&5
$as_echo "$ac_cv_32bit_type" >&6; }
  if test "$ac_cv_32bit_type" = "int"
  then
    T1_AA_TYPE32="int"
  else
    T1_AA_TYPE32="long"
  fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"which ANSI integer type is 64 bit\"" >&5
$as_echo_n "checking \"which ANSI integer type is 64 bit\"... " >&6; }
if ${ac_cv_64bit_type+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_64bit_type=
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

  int main(void) {
    if (sizeof(long)==8)
      return(0);
    else
      return(1);
  }
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_64bit_type="long"
else
  ac_cv_64bit_type=""
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_64bit_type" >&5
$as_echo "$ac_cv_64bit_type" >&6; }
  if test "$ac_cv_64bit_type" = "long"
  then
    T1_AA_TYPE64="long"
  else
    T1_AA_TYPE64=
  fi

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Good. Seems you have compatible version of T1lib installed" >&5
$as_echo "--> Good. Seems you have compatible version of T1lib installed" >&6; }
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xdrstdio_create" >&5
$as_echo_n "checking for library containing xdrstdio_create... " >&6; }
if ${ac_cv_search_xdrstdio_create+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char xdrstdio_create ();
int
main ()
{
return xdrstdio_create ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' nsl rpc xdr rpclib; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_xdrstdio_create=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_xdrstdio_create+:} false; then :
  break
fi
done
if ${ac_cv_search_xdrstdio_create+:} false; then :

else
  ac_cv_search_xdrstdio_create=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xdrstdio_create" >&5
$as_echo "$ac_cv_search_xdrstdio_create" >&6; }
ac_res=$ac_cv_search_xdrstdio_create
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
  XDR_LIB=$mdw_cv_lib_xdrstdio_create
else
  XDR_LIB="NONE"
fi


if test "${XDR_LIB}" = "NONE"; then
  XDR_LIB=
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> No XDR library found; grconvert will not be built" >&5
$as_echo "--> No XDR library found; grconvert will not be built" >&6; }
else
  grconvert_dir="grconvert"
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
if ${ac_cv_search_dlopen+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' dl; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_dlopen=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_dlopen+:} false; then :
  break
fi
done
if ${ac_cv_search_dlopen+:} false; then :

else
  ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
$as_echo "$ac_cv_search_dlopen" >&6; }
ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
  DL_LIB=$mdw_cv_lib_dlopen; $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h

else
  DL_LIB="NONE"
fi


if test "${DL_LIB}" != "NONE"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether RTLD_NOW is defined in dlfcn.h" >&5
$as_echo_n "checking whether RTLD_NOW is defined in dlfcn.h... " >&6; }
if ${ac_cv_rtld_now_in_dlfcn_h+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
         #ifdef RTLD_NOW
            yes
         #endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_rtld_now_in_dlfcn_h="yes"; $as_echo "#define HAVE_RTLD_NOW 1" >>confdefs.h

else
  ac_cv_rtld_now_in_dlfcn_h="no"
fi
rm -f conftest*


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rtld_now_in_dlfcn_h" >&5
$as_echo "$ac_cv_rtld_now_in_dlfcn_h" >&6; }
fi

if test "${DL_LIB}" = "NONE"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Support for dll modules will not be compiled" >&5
$as_echo "--> Support for dll modules will not be compiled" >&6; }
  DL_LIB=""
fi

if test $netcdf = true
then


# Check whether --with-netcdf_libraries was given.
if test "${with_netcdf_libraries+set}" = set; then :
  withval=$with_netcdf_libraries; netcdf_libraries="$withval"
fi

  if test "x$netcdf_libraries" = "x"
  then
    netcdf_libraries=-lnetcdf
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for netCDF API version >= 3.0" >&5
$as_echo_n "checking for netCDF API version >= 3.0... " >&6; }
if ${acx_cv_netcdf+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_netcdf_libraries+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_netcdf_libraries=$netcdf_libraries
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_netcdf_libraries $LIBS"


    if test "$cross_compiling" = yes; then :
  acx_cv_netcdf="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        char *vlib;
        vlib = nc_inq_libvers();
        if (strcmp(vlib, "3.0") < 0) {
          exit(1);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_netcdf="yes"
else
  acx_cv_netcdf="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_netcdf" >&5
$as_echo "$acx_cv_netcdf" >&6; }
  if test "$acx_cv_netcdf" = "yes"
  then
    NETCDF_LIBS="$acx_cv_netcdf_libraries"
    $as_echo "#define HAVE_NETCDF 1" >>confdefs.h

  else
    NETCDF_LIBS=
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> support for netCDF is disabled" >&5
$as_echo "--> support for netCDF is disabled" >&6; }
  fi

fi

if test $fftw = true
then


# Check whether --with-fftw_library was given.
if test "${with_fftw_library+set}" = set; then :
  withval=$with_fftw_library; fftw_library="$withval"
fi

  if test "x$fftw_library" = "x"
  then
    fftw_library=-lfftw
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFTW library >= 2.1.3" >&5
$as_echo_n "checking for FFTW library >= 2.1.3... " >&6; }
if ${acx_cv_fftw+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_fftw_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_fftw_library=$fftw_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_fftw_library $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_fftw="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        char *vlib = (char *) fftw_version;
        if (strcmp(vlib, "2.1.3") < 0) {
          exit(1);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_fftw="yes"
else
  acx_cv_fftw="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi



    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_fftw" >&5
$as_echo "$acx_cv_fftw" >&6; }
  if test "$acx_cv_fftw" = "yes"
  then
    FFTW_LIB="$acx_cv_fftw_library"
    $as_echo "#define HAVE_FFTW 1" >>confdefs.h

  else
    FFTW_LIB=
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5
$as_echo "--> using legacy unoptimized FFT code" >&6; }
  fi

fi

if test $pngdrv = true || test $pdfdrv = true || test $xmhtml = true
then


# Check whether --with-zlib_library was given.
if test "${with_zlib_library+set}" = set; then :
  withval=$with_zlib_library; zlib_library="$withval"
fi

  if test "x$zlib_library" = "x"
  then
    zlib_library=-lz
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.0.3" >&5
$as_echo_n "checking for zlib >= 1.0.3... " >&6; }
if ${acx_cv_zlib+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_zlib_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_zlib_library=$zlib_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_zlib_library $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_zlib="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        char *vlib, *vinc;
        vlib = zlibVersion();
        vinc = ZLIB_VERSION;
        if (strcmp(vinc, "1.0.3") < 0) {
          exit(1);
        }
        if (strcmp(vinc, vlib) != 0) {
          exit(2);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_zlib="yes"
else
  acx_cv_zlib="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_zlib" >&5
$as_echo "$acx_cv_zlib" >&6; }
  if test "$acx_cv_zlib" = "yes"
  then
    Z_LIB="$acx_cv_zlib_library"

  else
    Z_LIB=

  fi

fi

if test $jpegdrv = true || test $pdfdrv = true || test $xmhtml = true
then


# Check whether --with-jpeg_library was given.
if test "${with_jpeg_library+set}" = set; then :
  withval=$with_jpeg_library; jpeg_library="$withval"
fi

  if test "x$jpeg_library" = "x"
  then
    jpeg_library=-ljpeg
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IJG JPEG software >= 61" >&5
$as_echo_n "checking for IJG JPEG software >= 61... " >&6; }
if ${acx_cv_jpeg+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_jpeg_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_jpeg_library=$jpeg_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_jpeg_library $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_jpeg="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        int vinc;
        struct jpeg_compress_struct cinfo;
        jpeg_create_compress(&cinfo);
        vinc = JPEG_LIB_VERSION;
        if (vinc < 61) {
          exit(1);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_jpeg="yes"
else
  acx_cv_jpeg="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_jpeg" >&5
$as_echo "$acx_cv_jpeg" >&6; }
  if test "$acx_cv_jpeg" = "yes"
  then
    JPEG_LIB=$acx_cv_jpeg_library
    $as_echo "#define HAVE_LIBJPEG 1" >>confdefs.h

  else
    JPEG_LIB=
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> JPEG backend is disabled" >&5
$as_echo "--> JPEG backend is disabled" >&6; }
  fi

fi

if test $pngdrv = true || test $pdfdrv = true || test $xmhtml = true
then


# Check whether --with-png_library was given.
if test "${with_png_library+set}" = set; then :
  withval=$with_png_library; png_library="$withval"
fi

  if test "x$png_library" = "x"
  then
    png_library=-lpng
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpng >= 0.9.6" >&5
$as_echo_n "checking for libpng >= 0.9.6... " >&6; }
if ${acx_cv_png+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_png_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_png_library=$png_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_png_library $Z_LIB $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_png="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
#include 
      int main(void) {
        char *vlib, *vinc;
        vlib = png_libpng_ver;
        vinc = PNG_LIBPNG_VER_STRING;
        if (strcmp(vinc, "0.9.6") < 0) {
          exit(1);
        }
        if (strcmp(vinc, vlib) != 0) {
          exit(2);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_png="yes"
else
  acx_cv_png="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_png" >&5
$as_echo "$acx_cv_png" >&6; }
  if test "$acx_cv_png" = "yes"
  then
    PNG_LIB="$acx_cv_png_library"
    $as_echo "#define HAVE_LIBPNG 1" >>confdefs.h

  else
    PNG_LIB=
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> PNG backend is disabled" >&5
$as_echo "--> PNG backend is disabled" >&6; }
  fi

fi

if test $pdfdrv = true
then


# Check whether --with-pdf_library was given.
if test "${with_pdf_library+set}" = set; then :
  withval=$with_pdf_library; pdf_library="$withval"
fi

  if test "x$pdf_library" = "x"
  then
    pdf_library=-lpdf
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PDFlib >= 5.0.0" >&5
$as_echo_n "checking for PDFlib >= 5.0.0... " >&6; }
if ${acx_cv_pdflib+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_pdf_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_pdf_library=$pdf_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_pdf_library $JPEG_LIB $PNG_LIB $Z_LIB $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_pdflib="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
      int main(void) {
        char *vinc;
        int vlibn, vincn;
        vlibn = 100*PDF_get_majorversion() + PDF_get_minorversion();
        vincn = 100*PDFLIB_MAJORVERSION + PDFLIB_MINORVERSION;
        vinc = PDFLIB_VERSIONSTRING;
        if (strcmp(vinc, "5.0.0") < 0) {
          exit(1);
        }
        if (vincn != vlibn) {
          exit(2);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_pdflib="yes"
else
  acx_cv_pdflib="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_pdflib" >&5
$as_echo "$acx_cv_pdflib" >&6; }
  if test "$acx_cv_pdflib" = "yes"
  then
    PDF_LIB="$acx_cv_pdf_library"
    $as_echo "#define HAVE_LIBPDF 1" >>confdefs.h

  else
    PDF_LIB=
    pdfdrv=false
  fi

fi
if test $pdfdrv != true; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> PDF driver is disabled" >&5
$as_echo "--> PDF driver is disabled" >&6; }
fi


NOGUI_LIBS="$LIBS"


GRACE=grace

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
$as_echo_n "checking for X... " >&6; }


# Check whether --with-x was given.
if test "${with_x+set}" = set; then :
  withval=$with_x;
fi

# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
if test "x$with_x" = xno; then
  # The user explicitly disabled X.
  have_x=disabled
else
  case $x_includes,$x_libraries in #(
    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
  $as_echo_n "(cached) " >&6
else
  # One or both of the vars are not set, and there is no cached value.
ac_x_includes=no ac_x_libraries=no
rm -f -r conftest.dir
if mkdir conftest.dir; then
  cd conftest.dir
  cat >Imakefile <<'_ACEOF'
incroot:
	@echo incroot='${INCROOT}'
usrlibdir:
	@echo usrlibdir='${USRLIBDIR}'
libdir:
	@echo libdir='${LIBDIR}'
_ACEOF
  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
    # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
    for ac_var in incroot usrlibdir libdir; do
      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
    done
    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
    for ac_extension in a so sl dylib la dll; do
      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
	 test -f "$ac_im_libdir/libX11.$ac_extension"; then
	ac_im_usrlibdir=$ac_im_libdir; break
      fi
    done
    # Screen out bogus values from the imake configuration.  They are
    # bogus both because they are the default anyway, and because
    # using them would break gcc on systems where it needs fixed includes.
    case $ac_im_incroot in
	/usr/include) ac_x_includes= ;;
	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
    esac
    case $ac_im_usrlibdir in
	/usr/lib | /usr/lib64 | /lib | /lib64) ;;
	*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
    esac
  fi
  cd ..
  rm -f -r conftest.dir
fi

# Standard set of common directories for X headers.
# Check X11 before X11Rn because it is often a symlink to the current release.
ac_x_header_dirs='
/usr/X11/include
/usr/X11R7/include
/usr/X11R6/include
/usr/X11R5/include
/usr/X11R4/include

/usr/include/X11
/usr/include/X11R7
/usr/include/X11R6
/usr/include/X11R5
/usr/include/X11R4

/usr/local/X11/include
/usr/local/X11R7/include
/usr/local/X11R6/include
/usr/local/X11R5/include
/usr/local/X11R4/include

/usr/local/include/X11
/usr/local/include/X11R7
/usr/local/include/X11R6
/usr/local/include/X11R5
/usr/local/include/X11R4

/usr/X386/include
/usr/x386/include
/usr/XFree86/include/X11

/usr/include
/usr/local/include
/usr/unsupported/include
/usr/athena/include
/usr/local/x11r5/include
/usr/lpp/Xamples/include

/usr/openwin/include
/usr/openwin/share/include'

if test "$ac_x_includes" = no; then
  # Guess where to find include files, by looking for Xlib.h.
  # First, try using that file with no special directory specified.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # We can compile using X headers with no special include directory.
ac_x_includes=
else
  for ac_dir in $ac_x_header_dirs; do
  if test -r "$ac_dir/X11/Xlib.h"; then
    ac_x_includes=$ac_dir
    break
  fi
done
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi # $ac_x_includes = no

if test "$ac_x_libraries" = no; then
  # Check for the libraries.
  # See if we find them without any special options.
  # Don't add to $LIBS permanently.
  ac_save_LIBS=$LIBS
  LIBS="-lX11 $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
int
main ()
{
XrmInitialize ()
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  LIBS=$ac_save_LIBS
# We can link X programs with no special library path.
ac_x_libraries=
else
  LIBS=$ac_save_LIBS
for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
do
  # Don't even attempt the hair of trying to link an X program!
  for ac_extension in a so sl dylib la dll; do
    if test -r "$ac_dir/libX11.$ac_extension"; then
      ac_x_libraries=$ac_dir
      break 2
    fi
  done
done
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi # $ac_x_libraries = no

case $ac_x_includes,$ac_x_libraries in #(
  no,* | *,no | *\'*)
    # Didn't find X, or a directory has "'" in its name.
    ac_cv_have_x="have_x=no";; #(
  *)
    # Record where we found X for the cache.
    ac_cv_have_x="have_x=yes\
	ac_x_includes='$ac_x_includes'\
	ac_x_libraries='$ac_x_libraries'"
esac
fi
;; #(
    *) have_x=yes;;
  esac
  eval "$ac_cv_have_x"
fi # $with_x != no

if test "$have_x" != yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
$as_echo "$have_x" >&6; }
  no_x=yes
else
  # If each of the values was on the command line, it overrides each guess.
  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
  # Update the cache value to reflect the command line values.
  ac_cv_have_x="have_x=yes\
	ac_x_includes='$x_includes'\
	ac_x_libraries='$x_libraries'"
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
fi

if test "$no_x" = yes; then
  # Not all programs may use this symbol, but it does not hurt to define it.

$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h

  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
else
  if test -n "$x_includes"; then
    X_CFLAGS="$X_CFLAGS -I$x_includes"
  fi

  # It would also be nice to do this for all -L options, not just this one.
  if test -n "$x_libraries"; then
    X_LIBS="$X_LIBS -L$x_libraries"
    # For Solaris; some versions of Sun CC require a space after -R and
    # others require no space.  Words are not sufficient . . . .
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
$as_echo_n "checking whether -R must be followed by a space... " >&6; }
    ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
    ac_xsave_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       X_LIBS="$X_LIBS -R$x_libraries"
else
  LIBS="$ac_xsave_LIBS -R $x_libraries"
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	  X_LIBS="$X_LIBS -R $x_libraries"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
$as_echo "neither works" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    ac_c_werror_flag=$ac_xsave_c_werror_flag
    LIBS=$ac_xsave_LIBS
  fi

  # Check for system-dependent libraries X programs must link with.
  # Do this before checking for the system-independent R6 libraries
  # (-lICE), since we may need -lsocket or whatever for X linking.

  if test "$ISC" = yes; then
    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
  else
    # Martyn Johnson says this is needed for Ultrix, if the X
    # libraries were built with DECnet support.  And Karl Berry says
    # the Alpha needs dnet_stub (dnet does not exist).
    ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XOpenDisplay ();
int
main ()
{
return XOpenDisplay ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dnet_ntoa ();
int
main ()
{
return dnet_ntoa ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dnet_dnet_ntoa=yes
else
  ac_cv_lib_dnet_dnet_ntoa=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
fi

    if test $ac_cv_lib_dnet_dnet_ntoa = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet_stub  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dnet_ntoa ();
int
main ()
{
return dnet_ntoa ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dnet_stub_dnet_ntoa=yes
else
  ac_cv_lib_dnet_stub_dnet_ntoa=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
fi

    fi
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    LIBS="$ac_xsave_LIBS"

    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
    # to get the SysV transport functions.
    # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
    # needs -lnsl.
    # The nsl library prevents programs from opening the X display
    # on Irix 5.2, according to T.E. Dickey.
    # The functions gethostbyname, getservbyname, and inet_addr are
    # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
    ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
if test "x$ac_cv_func_gethostbyname" = xyes; then :

fi

    if test $ac_cv_func_gethostbyname = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_gethostbyname=yes
else
  ac_cv_lib_nsl_gethostbyname=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
fi

      if test $ac_cv_lib_nsl_gethostbyname = no; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
if ${ac_cv_lib_bsd_gethostbyname+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_bsd_gethostbyname=yes
else
  ac_cv_lib_bsd_gethostbyname=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
fi

      fi
    fi

    # lieder@skyler.mavd.honeywell.com says without -lsocket,
    # socket/setsockopt and other routines are undefined under SCO ODT
    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
    # on later versions), says Simon Leinen: it contains gethostby*
    # variants that don't use the name server (or something).  -lsocket
    # must be given before -lnsl if both are needed.  We assume that
    # if connect needs -lnsl, so does gethostbyname.
    ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
if test "x$ac_cv_func_connect" = xyes; then :

fi

    if test $ac_cv_func_connect = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
$as_echo_n "checking for connect in -lsocket... " >&6; }
if ${ac_cv_lib_socket_connect+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char connect ();
int
main ()
{
return connect ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_connect=yes
else
  ac_cv_lib_socket_connect=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
$as_echo "$ac_cv_lib_socket_connect" >&6; }
if test "x$ac_cv_lib_socket_connect" = xyes; then :
  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
fi

    fi

    # Guillermo Gomez says -lposix is necessary on A/UX.
    ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
if test "x$ac_cv_func_remove" = xyes; then :

fi

    if test $ac_cv_func_remove = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
$as_echo_n "checking for remove in -lposix... " >&6; }
if ${ac_cv_lib_posix_remove+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lposix  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char remove ();
int
main ()
{
return remove ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_posix_remove=yes
else
  ac_cv_lib_posix_remove=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
$as_echo "$ac_cv_lib_posix_remove" >&6; }
if test "x$ac_cv_lib_posix_remove" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
fi

    fi

    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
    ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
if test "x$ac_cv_func_shmat" = xyes; then :

fi

    if test $ac_cv_func_shmat = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
$as_echo_n "checking for shmat in -lipc... " >&6; }
if ${ac_cv_lib_ipc_shmat+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lipc  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char shmat ();
int
main ()
{
return shmat ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ipc_shmat=yes
else
  ac_cv_lib_ipc_shmat=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
if test "x$ac_cv_lib_ipc_shmat" = xyes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
fi

    fi
  fi

  # Check for libraries that X11R6 Xt/Xaw programs need.
  ac_save_LDFLAGS=$LDFLAGS
  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
  # check for ICE first), but we must link in the order -lSM -lICE or
  # we get undefined symbols.  So assume we have SM if we have ICE.
  # These have to be linked with before -lX11, unlike the other
  # libraries we check for below, so use a different variable.
  # John Interrante, Karl Berry
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char IceConnectionNumber ();
int
main ()
{
return IceConnectionNumber ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ICE_IceConnectionNumber=yes
else
  ac_cv_lib_ICE_IceConnectionNumber=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then :
  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
fi

  LDFLAGS=$ac_save_LDFLAGS

fi

if test "$no_x" = yes; then
  GUI="NONE_GUI"
else
  GUI_LIBS="-lXt -lXext -lX11 $X_PRE_LIBS $X_EXTRA_LIBS"


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS


  LIBS="$GUI_LIBS"
  CFLAGS="$X_CFLAGS $CFLAGS"
  CPPFLAGS="$X_CFLAGS $CPPFLAGS"
  LDFLAGS="$X_LIBS $LDFLAGS"

    case $editres in
    true) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _XEditResCheckMessages in -lXmu" >&5
$as_echo_n "checking for _XEditResCheckMessages in -lXmu... " >&6; }
if ${ac_cv_lib_Xmu__XEditResCheckMessages+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXmu  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char _XEditResCheckMessages ();
int
main ()
{
return _XEditResCheckMessages ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xmu__XEditResCheckMessages=yes
else
  ac_cv_lib_Xmu__XEditResCheckMessages=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xmu__XEditResCheckMessages" >&5
$as_echo "$ac_cv_lib_Xmu__XEditResCheckMessages" >&6; }
if test "x$ac_cv_lib_Xmu__XEditResCheckMessages" = xyes; then :
  GUI_LIBS="-lXmu $GUI_LIBS"; $as_echo "#define WITH_EDITRES 1" >>confdefs.h

fi
;;
    *) ;;
  esac

  if test "$ac_cv_lib_Xmu__XEditResCheckMessages" != yes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> support for EditRes protocol is disabled" >&5
$as_echo "--> support for EditRes protocol is disabled" >&6; }
  fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXp" >&5
$as_echo_n "checking for main in -lXp... " >&6; }
if ${ac_cv_lib_Xp_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXp  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xp_main=yes
else
  ac_cv_lib_Xp_main=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_main" >&5
$as_echo "$ac_cv_lib_Xp_main" >&6; }
if test "x$ac_cv_lib_Xp_main" = xyes; then :
  GUI_LIBS="-lXp $GUI_LIBS"
fi


    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmCreatePixmapFromData in -lXpm" >&5
$as_echo_n "checking for XpmCreatePixmapFromData in -lXpm... " >&6; }
if ${ac_cv_lib_Xpm_XpmCreatePixmapFromData+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXpm  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XpmCreatePixmapFromData ();
int
main ()
{
return XpmCreatePixmapFromData ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xpm_XpmCreatePixmapFromData=yes
else
  ac_cv_lib_Xpm_XpmCreatePixmapFromData=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&5
$as_echo "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&6; }
if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then :
  GUI_LIBS="-lXpm $GUI_LIBS"; $as_echo "#define HAVE_XPM 1" >>confdefs.h

fi


  if test "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = yes; then
    for ac_header in xpm.h X11/xpm.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

  fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS





# Check whether --with-motif_library was given.
if test "${with_motif_library+set}" = set; then :
  withval=$with_motif_library; motif_library="$withval"
fi

  if test "x$motif_library" = "x"
  then
    motif_library=-lXm
  fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Motif >= 1002 compatible API" >&5
$as_echo_n "checking for a Motif >= 1002 compatible API... " >&6; }
if ${acx_cv_motif+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_motif_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_motif_library=$motif_library
fi

    LIBS="$acx_cv_motif_library $GUI_LIBS"
    CFLAGS="$X_CFLAGS $CFLAGS"
    CPPFLAGS="$X_CFLAGS $CPPFLAGS"
    LDFLAGS="$X_LIBS $LDFLAGS"
    if test "$cross_compiling" = yes; then :
  acx_cv_motif="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
      int main(void) {
        int vlibn, vincn;
        vincn = XmVersion;
        XmRegisterConverters();
        vlibn = xmUseVersion;
        if (vincn < 1002) {
          exit(1);
        }
        if (vincn != vlibn) {
          exit(2);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_motif="yes"
else
  acx_cv_motif="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_motif" >&5
$as_echo "$acx_cv_motif" >&6; }
  if test "$acx_cv_motif" = "yes"
  then
    $as_echo "#define HAVE_MOTIF 1" >>confdefs.h

    MOTIF_LIB="$acx_cv_motif_library"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Motif library is actually a LessTif library" >&5
$as_echo_n "checking whether the Motif library is actually a LessTif library... " >&6; }
if ${ice_cv_have_lesstif+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
#ifdef LesstifVersion
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ice_cv_have_lesstif=yes
else
  ice_cv_have_lesstif=no
fi
rm -f conftest*

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ice_cv_have_lesstif" >&5
$as_echo "$ice_cv_have_lesstif" >&6; }
if test "$ice_cv_have_lesstif" = yes; then
$as_echo "#define HAVE_LESSTIF 1" >>confdefs.h

fi


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XmVersionString can be referred to" >&5
$as_echo_n "checking whether _XmVersionString can be referred to... " >&6; }
if ${acx_cv__xmversionstring+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include 
int
main ()
{
extern char _XmVersionString[]; printf("%s\n", _XmVersionString);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  acx_cv__xmversionstring="yes"
else
  acx_cv__xmversionstring="no"

fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv__xmversionstring" >&5
$as_echo "$acx_cv__xmversionstring" >&6; }
  if test "$acx_cv__xmversionstring" = "yes"
  then
    $as_echo "#define HAVE__XMVERSIONSTRING 1" >>confdefs.h


  else
    :

  fi

  else
    MOTIF_LIB=

  fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


  if test "$acx_cv_motif" = "no"; then
        GUI="NONE_GUI"
    GUI_FLAGS=""
    GUI_LIBS=""
    as_fn_error $? "M*tif has not been found" "$LINENO" 5
  else
    GUI_LIBS="$MOTIF_LIB $GUI_LIBS"
    GUI="MOTIF_GUI"
    GUI_FLAGS="$X_CFLAGS"
    GRACE=xmgrace

        xsave_CPPFLAGS="$CPPFLAGS"
    xsave_LIBS="$LIBS"
    CPPFLAGS="$CPPFLAGS $GUI_FLAGS"
    LIBS="$X_LIBS $GUI_LIBS $LIBS"

        if test $bundled_xbae = false
    then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XbaeCreateMatrix in -lXbae" >&5
$as_echo_n "checking for XbaeCreateMatrix in -lXbae... " >&6; }
if ${ac_cv_lib_Xbae_XbaeCreateMatrix+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXbae  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XbaeCreateMatrix ();
int
main ()
{
return XbaeCreateMatrix ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xbae_XbaeCreateMatrix=yes
else
  ac_cv_lib_Xbae_XbaeCreateMatrix=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xbae_XbaeCreateMatrix" >&5
$as_echo "$ac_cv_lib_Xbae_XbaeCreateMatrix" >&6; }
if test "x$ac_cv_lib_Xbae_XbaeCreateMatrix" = xyes; then :
  XBAE_LIB="-lXbae";$as_echo "#define HAVE_LIBXBAE 1" >>confdefs.h

fi

    fi
    if test -z "$XBAE_LIB"
    then
            { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Bundled version of Xbae library will be used" >&5
$as_echo "--> Bundled version of Xbae library will be used" >&6; }
      XBAE_LIB='$(TOP)/Xbae/Xbae/libXbae.a'
      XBAE_INC='-I$(TOP)/Xbae'
      xbae_dir="Xbae/Xbae"
    else
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> Good. Seems you have compatible version of Xbae installed" >&5
$as_echo "--> Good. Seems you have compatible version of Xbae installed" >&6; }
    fi

        case $libhelp in
      true) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for get_help in -lhlpclient" >&5
$as_echo_n "checking for get_help in -lhlpclient... " >&6; }
if ${ac_cv_lib_hlpclient_get_help+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lhlpclient  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char get_help ();
int
main ()
{
return get_help ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_hlpclient_get_help=yes
else
  ac_cv_lib_hlpclient_get_help=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hlpclient_get_help" >&5
$as_echo "$ac_cv_lib_hlpclient_get_help" >&6; }
if test "x$ac_cv_lib_hlpclient_get_help" = xyes; then :
  LIBHELP_LIB="-lhlpclient"; $as_echo "#define WITH_LIBHELP 1" >>confdefs.h

fi
;;
      *)  ;;
    esac

        if test $xmhtml = true
    then


# Check whether --with-xmhtml_library was given.
if test "${with_xmhtml_library+set}" = set; then :
  withval=$with_xmhtml_library; xmhtml_library="$withval"
fi

  if test "x$xmhtml_library" = "x"
  then
    xmhtml_library=-lXmHTML
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XmHTML widget >= 1105" >&5
$as_echo_n "checking for XmHTML widget >= 1105... " >&6; }
if ${acx_cv_xmhtml+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ${acx_cv_xmhtml_library+:} false; then :
  $as_echo_n "(cached) " >&6
else
  acx_cv_xmhtml_library=$xmhtml_library
fi


    save_CFLAGS=$CFLAGS
    save_CPPFLAGS=$CPPFLAGS
    save_LDFLAGS=$LDFLAGS
    save_LIBS=$LIBS

    LIBS="$acx_cv_xmhtml_library $JPEG_LIB $PNG_LIB $Z_LIB $LIBS"
    if test "$cross_compiling" = yes; then :
  acx_cv_xmhtml="no"

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include 
      int main(void) {
        int vlib, vinc;
        vlib = XmHTMLGetVersion();
        vinc = XmHTMLVersion;
        if (vinc < 1105) {
          exit(1);
        }
        if (vinc != vlib) {
          exit(2);
        }
        exit(0);
      }

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  acx_cv_xmhtml="yes"
else
  acx_cv_xmhtml="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


    CFLAGS=$save_CFLAGS
    CPPFLAGS=$save_CPPFLAGS
    LDFLAGS=$save_LDFLAGS
    LIBS=$save_LIBS


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_xmhtml" >&5
$as_echo "$acx_cv_xmhtml" >&6; }
  if test "$acx_cv_xmhtml" = "yes"
  then
    XMHTML_LIB="$acx_cv_xmhtml_library"
    $as_echo "#define WITH_XMHTML 1" >>confdefs.h

  else
    XMHTML_LIB=
    xmhtml=false
  fi

    fi

    GUI_LIBS="$LIBHELP_LIB $XMHTML_LIB $XBAE_LIB $GUI_LIBS"

    CPPFLAGS="$xsave_CPPFLAGS"
    LIBS="$xsave_LIBS"

  fi
fi

SUBDIRS="cephes ${t1lib_dir} ${xbae_dir} src ${grconvert_dir} grace_np fonts templates doc examples auxiliary"

ac_config_files="$ac_config_files Make.conf:ac-tools/Make.conf.in"

cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems.  If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.

_ACEOF

# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
    eval ac_val=\$$ac_var
    case $ac_val in #(
    *${as_nl}*)
      case $ac_var in #(
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      esac
      case $ac_var in #(
      _ | IFS | as_nl) ;; #(
      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
      *) { eval $ac_var=; unset $ac_var;} ;;
      esac ;;
    esac
  done

  (set) 2>&1 |
    case $as_nl`(ac_space=' '; set) 2>&1` in #(
    *${as_nl}ac_space=\ *)
      # `set' does not quote correctly, so add quotes: double-quote
      # substitution turns \\\\ into \\, and sed turns \\ into \.
      sed -n \
	"s/'/'\\\\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
      ;; #(
    *)
      # `set' quotes correctly as required by POSIX, so do not add quotes.
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
) |
  sed '
     /^ac_cv_env_/b end
     t clear
     :clear
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
     t end
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
     :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  if test -w "$cache_file"; then
    if test "x$cache_file" != "x/dev/null"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
      if test ! -f "$cache_file" || test -h "$cache_file"; then
	cat confcache >"$cache_file"
      else
        case $cache_file in #(
        */* | ?:*)
	  mv -f confcache "$cache_file"$$ &&
	  mv -f "$cache_file"$$ "$cache_file" ;; #(
        *)
	  mv -f confcache "$cache_file" ;;
	esac
      fi
    fi
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
  fi
fi
rm -f confcache

test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

DEFS=-DHAVE_CONFIG_H

ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
  # 1. Remove the extension, and $U if already installed.
  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
  #    will be set to the directory where LIBOBJS objects are built.
  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs

LTLIBOBJS=$ac_ltlibobjs




: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.

debug=false
ac_cs_recheck=false
ac_cs_silent=false

SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH


# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
  as_status=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&2
  as_fn_exit $as_status
} # as_fn_error


# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -pR'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -pR'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -pR'
  fi
else
  as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null


# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"


} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi


# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
  test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"


exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by $as_me, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@

on `(hostname || uname -n) 2>/dev/null | sed 1q`
"

_ACEOF

case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac

case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac


cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"

_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration.  Unless the files
and actions are specified as TAGs, all are instantiated by default.

Usage: $0 [OPTION]... [TAG]...

  -h, --help       print this help, then exit
  -V, --version    print version number and configuration settings, then exit
      --config     print configuration, then exit
  -q, --quiet, --silent
                   do not print progress messages
  -d, --debug      don't remove temporary files
      --recheck    update $as_me by reconfiguring in the same conditions
      --file=FILE[:TEMPLATE]
                   instantiate the configuration file FILE
      --header=FILE[:TEMPLATE]
                   instantiate the configuration header FILE

Configuration files:
$config_files

Configuration headers:
$config_headers

Report bugs to the package provider."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
test -n "\$AWK" || AWK=awk
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
  case $1 in
  --*=?*)
    ac_option=`expr "X$1" : 'X\([^=]*\)='`
    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
    ac_shift=:
    ;;
  --*=)
    ac_option=`expr "X$1" : 'X\([^=]*\)='`
    ac_optarg=
    ac_shift=:
    ;;
  *)
    ac_option=$1
    ac_optarg=$2
    ac_shift=shift
    ;;
  esac

  case $ac_option in
  # Handling of the options.
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
    ac_cs_recheck=: ;;
  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
    $as_echo "$ac_cs_version"; exit ;;
  --config | --confi | --conf | --con | --co | --c )
    $as_echo "$ac_cs_config"; exit ;;
  --debug | --debu | --deb | --de | --d | -d )
    debug=: ;;
  --file | --fil | --fi | --f )
    $ac_shift
    case $ac_optarg in
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
    '') as_fn_error $? "missing file argument" ;;
    esac
    as_fn_append CONFIG_FILES " '$ac_optarg'"
    ac_need_defaults=false;;
  --header | --heade | --head | --hea )
    $ac_shift
    case $ac_optarg in
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
    ac_need_defaults=false;;
  --he | --h)
    # Conflict between --help and --header
    as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
  --help | --hel | -h )
    $as_echo "$ac_cs_usage"; exit ;;
  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil | --si | --s)
    ac_cs_silent=: ;;

  # This is an error.
  -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;

  *) as_fn_append ac_config_targets " $1"
     ac_need_defaults=false ;;

  esac
  shift
done

ac_configure_extra_args=

if $ac_cs_silent; then
  exec 6>/dev/null
  ac_configure_extra_args="$ac_configure_extra_args --silent"
fi

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
  shift
  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
  CONFIG_SHELL='$SHELL'
  export CONFIG_SHELL
  exec "\$@"
fi

_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
  echo
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
  $as_echo "$ac_log"
} >&5

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1

# Handling of arguments.
for ac_config_target in $ac_config_targets
do
  case $ac_config_target in
    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:ac-tools/config.h.in" ;;
    "Make.conf") CONFIG_FILES="$CONFIG_FILES Make.conf:ac-tools/Make.conf.in" ;;

  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
  esac
done


# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used.  Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
fi

# Have a temporary directory for convenience.  Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
  tmp= ac_tmp=
  trap 'exit_status=$?
  : "${ac_tmp:=$tmp}"
  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
  trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.

{
  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
  test -d "$tmp"
}  ||
{
  tmp=./conf$$-$RANDOM
  (umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp

# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then


ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
  eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
  ac_cs_awk_cr='\\r'
else
  ac_cs_awk_cr=$ac_cr
fi

echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF


{
  echo "cat >conf$$subs.awk <<_ACEOF" &&
  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
  echo "_ACEOF"
} >conf$$subs.sh ||
  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
  . ./conf$$subs.sh ||
    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5

  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
  if test $ac_delim_n = $ac_delim_num; then
    break
  elif $ac_last_try; then
    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done
rm -f conf$$subs.sh

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
  for (key in S) S_is_set[key] = 1
  FS = ""

}
{
  line = $ 0
  nfields = split(line, field, "@")
  substed = 0
  len = length(field[1])
  for (i = 2; i < nfields; i++) {
    key = field[i]
    keylen = length(key)
    if (S_is_set[key]) {
      value = S[key]
      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
      len += length(value) + length(field[++i])
      substed = 1
    } else
      len += 1 + keylen
  }

  print line
}

_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
  cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF

# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
h
s///
s/^/:/
s/[	 ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[	 ]*\).*/\1/
G
s/\n//
s/^[^=]*=[	 ]*$//
}'
fi

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"

# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF

# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.

# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
  if test -z "$ac_tt"; then
    break
  elif $ac_last_try; then
    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done

# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any.  Preserve backslash
# newline sequences.

ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' >$CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  for (key in D) D_is_set[key] = 1
  FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
  line = \$ 0
  split(line, arg, " ")
  if (arg[1] == "#") {
    defundef = arg[2]
    mac1 = arg[3]
  } else {
    defundef = substr(arg[1], 2)
    mac1 = arg[2]
  }
  split(mac1, mac2, "(") #)
  macro = mac2[1]
  prefix = substr(line, 1, index(line, defundef) - 1)
  if (D_is_set[macro]) {
    # Preserve the white space surrounding the "#".
    print prefix "define", macro P[macro] D[macro]
    next
  } else {
    # Replace #undef with comments.  This is necessary, for example,
    # in the case of _POSIX_SOURCE, which is predefined and required
    # on some systems where configure will not decide to define it.
    if (defundef == "undef") {
      print "/*", prefix defundef, macro, "*/"
      next
    }
  }
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"


eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    "
shift
for ac_tag
do
  case $ac_tag in
  :[FHLC]) ac_mode=$ac_tag; continue;;
  esac
  case $ac_mode$ac_tag in
  :[FHL]*:*);;
  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
  :[FH]-) ac_tag=-:-;;
  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
  esac
  ac_save_IFS=$IFS
  IFS=:
  set x $ac_tag
  IFS=$ac_save_IFS
  shift
  ac_file=$1
  shift

  case $ac_mode in
  :L) ac_source=$1;;
  :[FH])
    ac_file_inputs=
    for ac_f
    do
      case $ac_f in
      -) ac_f="$ac_tmp/stdin";;
      *) # Look for the file first in the build tree, then in the source tree
	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
	 # because $ac_f cannot contain `:'.
	 test -f "$ac_f" ||
	   case $ac_f in
	   [\\/$]*) false;;
	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
	   esac ||
	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
      esac
      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
      as_fn_append ac_file_inputs " '$ac_f'"
    done

    # Let's still pretend it is `configure' which instantiates (i.e., don't
    # use $as_me), people would be surprised to read:
    #    /* config.h.  Generated by config.status.  */
    configure_input='Generated from '`
	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
	`' by configure.'
    if test x"$ac_file" != x-; then
      configure_input="$ac_file.  $configure_input"
      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
    fi
    # Neutralize special characters interpreted by sed in replacement strings.
    case $configure_input in #(
    *\&* | *\|* | *\\* )
       ac_sed_conf_input=`$as_echo "$configure_input" |
       sed 's/[\\\\&|]/\\\\&/g'`;; #(
    *) ac_sed_conf_input=$configure_input;;
    esac

    case $ac_tag in
    *:-:* | *:-) cat >"$ac_tmp/stdin" \
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
    esac
    ;;
  esac

  ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$ac_file" : 'X\(//\)[^/]' \| \
	 X"$ac_file" : 'X\(//\)$' \| \
	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  as_dir="$ac_dir"; as_fn_mkdir_p
  ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix


  case $ac_mode in
  :F)
  #
  # CONFIG_FILE
  #

  case $INSTALL in
  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
  esac
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
  p
  q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  ac_datarootdir_hack='
  s&@datadir@&$datadir&g
  s&@docdir@&$docdir&g
  s&@infodir@&$infodir&g
  s&@localedir@&$localedir&g
  s&@mandir@&$mandir&g
  s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF

# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5

test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
      "$ac_tmp/out"`; test -z "$ac_out"; } &&
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined.  Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined.  Please make sure it is defined" >&2;}

  rm -f "$ac_tmp/stdin"
  case $ac_file in
  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
  esac \
  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 ;;
  :H)
  #
  # CONFIG_HEADER
  #
  if test x"$ac_file" != x-; then
    {
      $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
    } >"$ac_tmp/config.h" \
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
    else
      rm -f "$ac_file"
      mv "$ac_tmp/config.h" "$ac_file" \
	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
    fi
  else
    $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
      || as_fn_error $? "could not create -" "$LINENO" 5
  fi
 ;;


  esac

done # for ac_tag


as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save

test $ac_write_fail = 0 ||
  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5


# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded.  So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status.  When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
  ac_cs_success=:
  ac_config_status_args=
  test "$silent" = yes &&
    ac_config_status_args="$ac_config_status_args --quiet"
  exec 5>/dev/null
  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
  exec 5>>config.log
  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
  # would make configure fail if this is the last instruction.
  $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi

grace-5.1.25/ChangeLog0000644000076500001440000014614312467751543014233 0ustar  fnevgenyusers2015-02-15 00:58  fnevgeny

	* COPYRIGHT, doc/UsersGuide.sgml, src/helpwin.c, src/main.c:
	  Copyright notices updated.

2015-02-15 00:42  fnevgeny

	* doc/: Makefile, CHANGES.html: Fixed make rules for SGML->PDF.

2015-02-15 00:17  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: Version 5.1.25.

2015-02-15 00:10  fnevgeny

	* src/computils.c: Fixed the FT DC term amplitude.

2015-02-14 23:28  fnevgeny

	* src/: motifutils.c, pars.yacc: Kill set data from GUI or scripts
	  now clears comments.

2015-02-14 23:21  fnevgeny

	* src/Makefile: Replaced "mv" with "mv -f".

2015-02-14 23:19  fnevgeny

	* src/ssdata.c: Reverted last change.

2014-08-29 20:44  fnevgeny

	* scripts/makerelease: Clean after making PDF docs.

2014-08-29 20:37  fnevgeny

	* doc/CHANGES.html: 5.1.24.

2014-08-29 19:41  fnevgeny

	* doc/UsersGuide.sgml, src/buildinfo.c: Grace-5.1.24.

2014-08-29 19:38  fnevgeny

	* src/xmgrace.c: UTF8 XLocale problem (mostly copied a workaround
	  from Nedit).

2014-08-17 02:27  fnevgeny

	* doc/: Makefile, gracebat.1, xmgrace.1: Use groff's .so mechanism
	  instead of soft links for xmgrace.1/gracebat.1 man pages.

2014-08-17 02:19  fnevgeny

	* doc/Makefile: Install PDF docs instead of the DVI ones.

2014-08-17 02:15  fnevgeny

	* doc/UsersGuide.sgml: Fixed too wide tables.

2014-08-17 02:09  fnevgeny

	* doc/Makefile: Remove *.out on make clean.

2014-08-17 02:08  fnevgeny

	* doc/.cvsignore: Ignore *.out files.

2014-08-17 02:04  fnevgeny

	* COPYRIGHT, src/helpwin.c, src/main.c: Copyright notices updated.

2014-08-17 01:58  fnevgeny

	* src/ssdata.c: Always overwrite set comments when reading data in.

2014-08-17 01:33  fnevgeny

	* src/editpwin.c: Made spreadsheet dialog child of app_shell as the
	  rest of the dialogs.

2014-08-17 01:22  fnevgeny

	* cephes/COPYING: Added cephes/COPYING (from Debian).

2014-08-17 01:02  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess &
	  config.sub.

2014-08-17 00:56  fnevgeny

	* ac-tools/configure.in: Replaced mdw_CHECK_MANYLIBS with
	  AC_SEARCH_LIBS.

2014-08-17 00:54  fnevgeny

	* ac-tools/aclocal.m4: Renamed some local vars as _cv_ ones
	  (cacheable). Got rid of mdw_CHECK_MANYLIBS.

2012-10-01 01:29  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.23 released

2012-09-30 23:53  fnevgeny

	* COPYRIGHT, doc/UsersGuide.sgml, src/helpwin.c, src/main.c:
	  Copyright updated.

2012-02-14 22:28  fnevgeny

	* fonts/Makefile: Oops. IsoLatin5.enc wasn't added to the Makefile.

2011-06-08 21:10  fnevgeny

	* grace_np/grace_np.c: Wrongly placed brackets (patch by Stan
	  Maree).

2011-01-29 23:37  fnevgeny

	* src/rstdrv.c: Fix building against png-1.5 (patch by Thomas
	  Klausner).

2010-06-12 17:37  fnevgeny

	* src/.cvsignore: Ignore .diff.

2010-06-12 17:31  fnevgeny

	* COPYRIGHT, src/helpwin.c: Copyright notice.

2010-06-12 17:30  fnevgeny

	* doc/UsersGuide.sgml: Graph types and INTEGRATE.

2010-06-12 17:29  fnevgeny

	* doc/FAQ.sgml: Julian dates.

2010-06-12 17:28  fnevgeny

	* doc/grace.1: List graph types.

2010-02-01 00:03  fnevgeny

	* src/motifutils.c: A workaround for a bug in recent Xorg not
	  releasing grab of popup menus.

2009-06-23 23:00  fnevgeny

	* src/nonlfit.c: Renamed RMS per cent error -> relative error.

2009-05-03 23:51  fnevgeny

	* src/x11drv.c: Simplified xlib_setpen (backported from grace6).

2009-04-05 23:47  fnevgeny

	* src/main.c: Accept -graphtype chart instead of bar. List possible
	  values in the help output.

2009-01-23 00:16  fnevgeny

	* doc/grace.1: Oops. undo stupid thing ;-(

2009-01-23 00:02  fnevgeny

	* doc/grace.1: Bad formatting (preventing part of the man page from
	  rendering) fixed.

2008-12-06 21:52  fnevgeny

	* src/buildinfo.c: 5.1.23 started.

2008-12-06 21:48  fnevgeny

	* ac-tools/configure.in: Removed *86 specific optimizations.

2008-12-06 21:47  fnevgeny

	* Makefile: Cosmetics.

2008-05-21 23:50  fnevgeny

	* COPYRIGHT, doc/CHANGES.html, src/buildinfo.c, src/helpwin.c,
	  src/main.c: 5.1.22 released.

2008-05-20 23:54  fnevgeny

	* doc/FAQ.sgml: Added FAQ on max drawing path length.

2008-05-20 01:49  fnevgeny

	* ac-tools/: config.guess, config.sub: config.guess and config.sub
	  updated.

2008-05-20 01:35  fnevgeny

	* doc/UsersGuide.sgml, src/Make.common, src/humlik.c,
	  src/mathstuff.c, src/mathstuff.h, src/noxprotos.h, src/pars.yacc:
	  Added Voigt function.

2008-05-20 00:55  fnevgeny

	* doc/UsersGuide.sgml, src/computils.c, src/compwin.c,
	  src/noxprotos.h, src/pars.yacc: Added LINCONV() to the parser.

2008-04-26 22:12  fnevgeny

	* src/events.c: Mention object type when asking for user's
	  confirmation on delete.

2008-04-26 22:00  fnevgeny

	* src/: noxprotos.h, objutils.c: Added object_types().

2008-04-26 21:25  fnevgeny

	* src/files.c: nb_rt counting in unregister_real_time_input was
	  wrong.

2008-04-26 00:12  fnevgeny

	* grace_np/grace_np.c: Supposedly fixed kill(-1)...

2008-04-03 00:31  fnevgeny

	* src/motifutils.c: Safe check for an out-of-bounds value in
	  SetChoice().

2007-06-06 23:15  fnevgeny

	* src/buildinfo.c: 5.1.22 started.

2007-06-06 23:10  fnevgeny

	* grace_np/grace_np.c: Fixed a stupid bug causing the GraceClose()
	  to kill all user processes if by that time the Grace subprocess
	  has exited.

2007-02-17 00:43  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, doc/grace.1,
	  src/buildinfo.c, templates/Default.agr: 5.1.21 final.

2007-02-17 00:31  fnevgeny

	* examples/Makefile, examples/dotest, examples/log2log.agr,
	  src/xmgrace.c: Added log2log.agr example (showing also the
	  computing and engineering tick labeling). Contributed by Harvey
	  Richardson.

2007-02-16 00:36  fnevgeny

	* src/: defines.h, graphutils.c, motifutils.c, pars.yacc, utils.c:
	  Added Computing tick label format (a patch by Harvey Richardson).

2007-02-14 00:01  fnevgeny

	* src/graphappwin.c: Allow for longer legend lines.

2007-02-13 23:37  fnevgeny

	* src/: pars.yacc, ssdata.c: Implemented  KILL BLOCK.

2007-02-13 23:26  fnevgeny

	* src/utils.c: Extended range of prefixes in Engineering format up
	  to 10^{+/-24}.

2007-02-13 23:22  fnevgeny

	* src/drawticks.c: Fixed rounding-off probem with zero label (rep.
	  #2098).

2007-01-28 00:54  fnevgeny

	* COPYRIGHT, src/helpwin.c, src/main.c: Copyright dates updated.

2007-01-27 23:44  fnevgeny

	* src/main.c: Added -maxpath command line option.

2006-09-26 23:33  fnevgeny

	* src/pars.yacc: Honour locale in number stringifications.

2006-09-26 22:58  fnevgeny

	* doc/grace.1: Man page cleaned (Debian patch).

2006-09-23 19:18  fnevgeny

	* cephes/: cephes.h, ellpk.c, gamma.c, hyperg.c, ndtri.c:
	  Eliminated some gcc-4.1 warnings (patch by Ionut Georgescu).

2006-09-23 18:56  fnevgeny

	* fonts/enc/IsoLatin5.enc: Added IsoLatin5 encoding file.

2006-08-06 01:45  fnevgeny

	* src/pars.yacc: Output sensible error message when an attempt is
	  made to redefine a variable.

2006-08-06 01:42  fnevgeny

	* src/buildinfo.c: 5.1.21 started.

2006-06-04 00:21  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml, doc/grace.1,
	  src/buildinfo.c: 5.1.20 released.

2006-06-04 00:19  fnevgeny

	* src/: editpwin.c, xmgrace.c: Changes to work better with newer
	  Xbae.

2006-05-17 23:53  fnevgeny

	* src/nonlwin.c: Close file selection dialog when fit parameters
	  file is read in successfully.

2006-05-17 23:29  fnevgeny

	* src/utils.c: Fixed buffer overflow.

2006-05-04 00:40  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2006-05-04 00:27  fnevgeny

	* src/defaults.c, templates/Default.agr: Changed default major axis
	  tick spacings to 0.2.

2006-05-04 00:21  fnevgeny

	* ac-tools/configure.in: Got rid of "-pedantic" to silence newer
	  gcc.

2006-05-04 00:17  fnevgeny

	* examples/tmc.c: Added stdlib.h for exit().

2006-05-04 00:04  fnevgeny

	* COPYRIGHT, src/helpwin.c, src/main.c: Updated copyright years.

2006-05-03 23:43  fnevgeny

	* src/: mathstuff.c, mathstuff.h, pars.yacc: Added sgn() function
	  to the interpreter.

2006-04-25 22:26  fnevgeny

	* src/compwin.c: A "break" was forgotten...

2006-04-25 22:26  fnevgeny

	* src/helpwin.c: The latest versions of Mozilla/Firefox seem to
	  treat the anchor symbol (#) differently if the URL is given
	  without the "file://" specification.

2006-02-12 23:54  fnevgeny

	* src/pars.yacc: Oops. Undone last change.

2006-02-12 23:39  fnevgeny

	* src/pars.yacc: Got rid of unused ZEROXAXIS and ZEROYAXIS tokens.

2005-11-28 23:59  fnevgeny

	* src/buildinfo.c: 5.1.20 started.

2005-11-28 23:59  fnevgeny

	* src/main.c: Recognize pie in -graphtype.

2005-11-27 00:11  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: Final 5.1.19 release.

2005-11-20 23:28  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c,
	  templates/Default.agr: 5.1.19rc1 snapshot.

2005-11-20 23:25  fnevgeny

	* .cvsignore, scripts/makerelease: Ignore autom4te.cache dir.

2005-11-20 23:14  fnevgeny

	* ac-tools/: aclocal.m4, configure.in: Switched to autoconf 2.5.

2005-11-20 22:58  fnevgeny

	* doc/grace.1, src/Makefile, ac-tools/Make.conf.in,
	  ac-tools/configure.in: Fixed --with-helpviewer configure option.
	  Default set to "mozilla %s".

2005-11-19 23:53  fnevgeny

	* src/draw.c: Backported purge_dense_points() fixes from the main
	  trunk.

2005-11-13 00:46  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.19rc0.

2005-11-13 00:45  fnevgeny

	* src/dlmodule.c: Added const qualifier for error.

2005-11-12 22:09  fnevgeny

	* src/: monwin.c, utils.c, utils.h, xprotos.h: Added "const"
	  qualifier for args of errmsg() and errwin().

2005-11-08 23:18  fnevgeny

	* src/dlmodule.c: Make sure dlerror() message is not from a
	  previous dl* call.

2005-11-08 23:11  fnevgeny

	* src/psdrv.c: Volatile settings were put inside
	  BeginSetup/EndSetup which broke cups accounting feature.

2005-10-28 23:42  fnevgeny

	* src/drawticks.c: Shut up gcc-4 about uninitialized variables.

2005-10-22 23:56  fnevgeny

	* src/fontwin.c: XtVaCreateWidget was used instead of
	  XtCreateWidget.

2005-05-19 23:41  fnevgeny

	* COPYRIGHT, doc/UsersGuide.sgml, src/helpwin.c, src/main.c:
	  Copyright notices updated.

2005-05-19 23:30  fnevgeny

	* src/plotone.c, doc/UsersGuide.sgml: Allow BARDY and BARDYDY sets
	  in XY graphs.

2005-05-19 23:18  fnevgeny

	* src/buildinfo.c: 5.1.19 started.

2005-01-02 01:46  fnevgeny

	* src/buildinfo.c: 5.1.18 release.

2004-12-28 01:43  fnevgeny

	* doc/CHANGES.html: 5.1.18 release candidate.

2004-12-28 01:40  fnevgeny

	* src/pars.yacc: Implemented string concatenation.

2004-12-28 01:39  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.18
	  release candidate.

2004-12-28 01:35  fnevgeny

	* ac-tools/config.guess: Updated config.guess.

2004-09-23 00:56  fnevgeny

	* src/pars.yacc: Set drawing objects' default properties in sync
	  with grdefaults.

2004-09-23 00:47  fnevgeny

	* src/defaults.c: Set tick label size to grdefault's.

2004-09-23 00:26  fnevgeny

	* src/Tab.c: Backported font fixes for the Tab widget.

2004-09-23 00:26  fnevgeny

	* src/buildinfo.c: Started 5.1.18 development.

2004-08-13 23:27  fnevgeny

	* doc/UsersGuide.sgml, src/buildinfo.c: 5.1.17 final.

2004-08-13 00:46  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c, templates/Default.agr: 5.1.17rc1.

2004-08-04 23:37  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.17rc0.

2004-08-04 22:37  fnevgeny

	* src/pdfdrv.c: Fixed crash in PDF when using patterns with
	  PDF-1.4.

2004-08-03 12:35  fnevgeny

	* scripts/cvs2cl.pl: Updated cvs2cl.

2004-08-02 22:54  fnevgeny

	* Xbae/Xbae/Create.c: Backported font width fixes.

2004-07-31 01:52  fnevgeny

	* src/x11drv.c: Backported page frame fix.

2004-07-31 00:36  fnevgeny

	* src/: Tab.c, XMgrace.ad, xmgrace.c, Tab.h: Backported tabFontList
	  changes.

2004-07-31 00:31  fnevgeny

	* src/pdfdrv.c: Changed default PDF dpi to 300.

2004-07-31 00:30  fnevgeny

	* src/buildinfo.c: Started 5.1.17 development.

2004-07-04 00:13  fnevgeny

	* src/buildinfo.c: 5.1.16 final.

2004-07-04 00:12  fnevgeny

	* doc/CHANGES.html: Mangled emails.

2004-07-03 23:47  fnevgeny

	* COPYRIGHT, Makefile, cmath.h, ac-tools/config.h.in,
	  arch/os2/config.h.os2, doc/CHANGES.html, src/alloca.c,
	  src/as274c.c, src/as274c.h, src/bitmaps.h, src/computils.c,
	  src/compwin.c, src/comwin.c, src/dates.c, src/defaults.c,
	  src/defines.h, src/device.c, src/device.h, src/devlist.h,
	  src/dlmodule.c, src/dlmodule.h, src/draw.c, src/draw.h,
	  src/drawticks.c, src/dummydrv.c, src/dummydrv.h, src/eblockwin.c,
	  src/editpwin.c, src/events.c, src/events.h, src/f2c.h,
	  src/featext.c, src/files.c, src/files.h, src/fileswin.c,
	  src/fit.c, src/fontwin.c, src/fourier.c, src/globals.h,
	  src/graphappwin.c, src/graphs.c, src/graphs.h, src/graphutils.c,
	  src/graphutils.h, src/helpwin.c, src/hotwin.c, src/iofilters.c,
	  src/jbitmaps.h, src/lmdif.c, src/locatewin.c, src/main.c,
	  src/mathstuff.c, src/mathstuff.h, src/mbitmaps.h, src/mfdrv.c,
	  src/mfdrv.h, src/mifdrv.c, src/mifdrv.h, src/miscwin.c,
	  src/missing.c, src/missing.h, src/monwin.c, src/motifinc.h,
	  src/motifutils.c, src/nonlfit.c, src/nonlwin.c, src/noxprotos.h,
	  src/objutils.c, src/params.c, src/pars.yacc, src/parser.h,
	  src/patterns.h, src/pdfdrv.c, src/pdfdrv.h, src/plotone.c,
	  src/plotone.h, src/plotwin.c, src/printwin.c, src/protos.h,
	  src/psdrv.c, src/psdrv.h, src/ptswin.c, src/regionutils.c,
	  src/regionwin.c, src/rstdrv.c, src/rstdrv.h, src/setappwin.c,
	  src/setutils.c, src/setwin.c, src/ssdata.c, src/ssdata.h,
	  src/strwin.c, src/svgdrv.c, src/svgdrv.h, src/t1fonts.c,
	  src/t1fonts.h, src/tickwin.c, src/utils.c, src/utils.h,
	  src/worldwin.c, src/x11drv.c, src/x11drv.h, src/xmgrace.c,
	  src/xprotos.h, src/xutil.c: Got rid of my email @plasma-gate...

2004-07-03 00:53  fnevgeny

	* Xbae/Xbae/Matrix.c: Backported osfCancel fix.

2004-07-01 10:17  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c, templates/Default.agr: 5.1.16
	  release candidate 1.

2004-07-01 01:03  fnevgeny

	* src/editpwin.c: Make sure the last entered cell's data it
	  commited.

2004-06-26 01:11  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: 5.1.16 release candidate 0.

2004-06-26 01:04  fnevgeny

	* ac-tools/Make.conf.in, ac-tools/aclocal.m4,
	  ac-tools/configure.in, src/Makefile: No longer check for libtiff.

2004-06-26 00:46  fnevgeny

	* src/pdfdrv.c: Backported PDFlib6 compatibility issues.

2004-06-24 00:52  fnevgeny

	* doc/FAQ.sgml: Maillists/forum updates.

2004-06-07 20:31  fnevgeny

	* src/ssdata.c: Replaced a meaningless error message when trying to
	  load data with few string columns as a single set.

2004-06-07 20:26  fnevgeny

	* src/tickwin.c: Made custom ticks/labels table scroll by 1 row.

2004-06-07 20:22  fnevgeny

	* src/buildinfo.c: Started 5.1.16 development.

2004-05-30 23:24  fnevgeny

	* src/buildinfo.c: Final 5.1.15 release.

2004-05-27 00:10  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c: 5.1.15rc1
	  snapshot.

2004-05-26 23:34  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2004-05-26 22:02  fnevgeny

	* src/buildinfo.c: Replaced netscape->mozilla.

2004-05-26 21:50  fnevgeny

	* src/fit.c: In xcor, only the _absolute_ value at 0 is normalized
	  to 1.

2004-05-25 23:02  fnevgeny

	* src/events.c: Fixed locator in polar coords.

2004-05-10 00:06  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.15rc0
	  snapshot.

2004-05-10 00:06  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2004-04-21 22:28  fnevgeny

	* src/pars.yacc: F_PPPPD and F_OF_PPPPPD were added incorrectly...

2004-04-16 23:19  fnevgeny

	* src/featext.c: Fixed get_half_max_width(). Old version could give
	  anything for multipeaks.

2004-04-13 23:27  fnevgeny

	* T1lib/t1lib/: sysconf.h, t1base.c, t1misc.h: Renamed MAXPATHLEN
	  to T1_MAXPATHLEN.

2004-01-24 14:44  fnevgeny

	* src/params.c, src/pars.yacc, templates/Default.agr: Use one-line
	  format when saving graph's world and viewport settings.

2004-01-24 13:50  fnevgeny

	* src/defines.h: Increased MAX_TICKS to 256 per popular demand.

2004-01-24 13:43  fnevgeny

	* src/pars.yacc: Added safety check for custom tick label number
	  not exceeding MAX_TICKS.

2004-01-24 13:35  fnevgeny

	* src/buildinfo.c: Started 5.1.15.

2004-01-07 23:08  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: Final 5.1.14 release.

2004-01-07 22:18  fnevgeny

	* COPYRIGHT, doc/UsersGuide.sgml, src/helpwin.c, src/main.c:
	  Updated the copyright notice.

2003-12-24 23:08  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.14
	  release candidate 1.

2003-12-24 21:51  fnevgeny

	* grace_np/grace_np.c: Fixed race condition (patch by Tobias Oed).

2003-12-24 21:32  fnevgeny

	* src/xmgrace.c: Fixed page size sync in the free mode.

2003-12-12 23:33  fnevgeny

	* cmath.h, cephes/isnan.c: Chech for isnan() macro.

2003-12-05 00:17  fnevgeny

	* T1lib/t1lib/sysconf.h: Updated T1LIB_IDENT to "1.3.1p2-grace".

2003-12-04 23:22  fnevgeny

	* T1lib/t1lib/t1base.c: Fixed crash in T1_GetAfmFilePath() when the
	  afm file doesn't exist.

2003-12-04 23:06  fnevgeny

	* src/t1fonts.c: Avoided calling grace_path() recursively.

2003-12-03 23:10  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c,
	  templates/Default.agr: Grace-5.1.14 release candidate #0.

2003-12-03 23:08  fnevgeny

	* src/pars.yacc: Allow for DL modules to define functions of 4 and
	  5 parameters.

2003-12-02 23:45  fnevgeny

	* src/x11drv.c: xlibfillrule wasn't properly initialized due to a
	  typo.

2003-11-16 23:41  fnevgeny

	* src/computils.c: Use mutiplication sign in output of regression
	  report.

2003-10-22 23:46  fnevgeny

	* src/motifutils.c: Use XStringToKeysym() to convert char to
	  XKeySym for mnemonics.

2003-10-22 23:42  fnevgeny

	* src/: compwin.c, featext.c, fileswin.c, graphappwin.c, hotwin.c,
	  locatewin.c, miscwin.c, motifutils.c, regionwin.c, rstdrv.c,
	  setappwin.c, setwin.c, strwin.c, tickwin.c, worldwin.c: In all
	  calls to CreatePanelChoice(), end the vararg list with NULL, not
	  0.  This is an issue on 64-bit platforms. Also, removed the last
	  redundant arg.

2003-10-22 23:27  fnevgeny

	* src/buildinfo.c: Started 5.1.14 development.

2003-10-13 23:53  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: Final 5.1.13 release.

2003-10-13 23:45  fnevgeny

	* src/pars.yacc: Generalize VEC_D '.' LENGTH to array '.' LENGTH.

2003-08-26 01:08  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: Grace-5.1.13 release candidate #1.

2003-08-26 01:04  fnevgeny

	* src/pars.yacc: Implemented IMIN() and IMAX() aggregate functions.

2003-08-18 01:25  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2003-08-18 00:43  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: Grace-5.1.13 release
	  candidate.

2003-08-18 00:37  fnevgeny

	* src/xmgrace.c: Fixed special parsing of the "-display" arg.

2003-07-27 23:19  fnevgeny

	* src/mifdrv.c: Added font kerning to the MIF driver.

2003-04-23 12:08  fnevgeny

	* src/tickwin.c: Minor cosmetic changes of the Axes dialog.

2003-03-19 23:36  fnevgeny

	* src/: graphs.c, plotone.c: Enabled avalues for HILO sets.

2003-03-11 00:50  fnevgeny

	* src/: fontwin.c, t1fonts.c, t1fonts.h: Compatibility changes for
	  T1lib-5.0.0.

2003-03-09 00:24  fnevgeny

	* src/compwin.c: A typo fixed.

2003-03-09 00:23  fnevgeny

	* src/buildinfo.c: Started 5.1.13 development.

2003-02-24 00:05  fnevgeny

	* src/buildinfo.c: Final 5.1.12 release.

2003-02-22 00:20  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c:
	  Grace-5.1.12 release candidate #2.

2003-02-22 00:06  fnevgeny

	* src/pars.yacc: Added RSUM(vexpr) - running sum.

2003-02-21 23:36  fnevgeny

	* src/setappwin.c: Use SpinChoice for symbol skip control; disallow
	  negative values.

2003-02-21 00:38  fnevgeny

	* fonts/Makefile: enc/IsoLatin7.enc was missing in the list.

2003-02-21 00:05  fnevgeny

	* src/graphutils.c: Implemented zooming and scrolling of log plots.

2003-02-19 22:45  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: Grace-5.1.12 release candidate #1.

2003-02-18 22:41  fnevgeny

	* fonts/enc/: IsoLatin1.enc, IsoLatin2.enc: Removed extraneous
	  accent glyphs in the 0x9? range.

2003-02-16 02:10  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c:
	  Grace-5.1.12 release candidate.

2003-02-16 01:41  fnevgeny

	* src/pars.yacc: Verify validity of g[whichgraph] and
	  g[whichgraph].t[naxis] accesses.

2003-02-16 01:34  fnevgeny

	* src/graphs.h: Added is_valid_axis() proto to graphs.h.

2003-02-16 01:06  fnevgeny

	* T1lib/t1lib/: parseAFM.c, sysconf.h: Fixed parsing of some fonts
	  (patch by Rainer Menzner).

2003-02-16 00:26  fnevgeny

	* arch/os2/config.h.os2, ac-tools/config.h.in,
	  ac-tools/configure.in, arch/vms/configure.com: Get rid of vfork
	  stuff.

2003-02-16 00:17  fnevgeny

	* grace_np/grace_np.c: Proper handling of signals (SIGSTOP),
	  getting rid of vfork and misc cleanings.  (The patch by Tobias
	  Oed).

2003-01-26 23:43  fnevgeny

	* src/pars.yacc: Added INT(x,y).

2003-01-26 23:16  fnevgeny

	* src/motifutils.c: Fixed crash in GetTransformDialogSettings()
	  with multiple sets selected.

2003-01-22 23:47  fnevgeny

	* src/ssdata.c: A memory leak fixed.

2003-01-22 23:44  fnevgeny

	* src/: files.c, ssdata.c: Fixed memory corruption when reading in
	  block data.

2003-01-22 23:17  fnevgeny

	* src/buildinfo.c, templates/Default.agr: Started 5.1.12
	  development.

2003-01-19 02:27  fnevgeny

	* doc/FAQ.sgml, src/buildinfo.c: Final 5.1.11 release.

2003-01-08 23:47  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c:
	  grace-5.1.11rc2 snapshot.

2003-01-07 22:51  fnevgeny

	* src/plotone.c: In XY charts, check that abscissas of all sets are
	  the same.

2003-01-03 00:45  fnevgeny

	* doc/CHANGES.html: [no log message]

2003-01-03 00:37  fnevgeny

	* src/buildinfo.c: grace-5.1.11rc1 snapshot.

2003-01-03 00:36  fnevgeny

	* COPYRIGHT, doc/CHANGES.html, doc/UsersGuide.sgml, doc/grace.1,
	  src/helpwin.c, src/main.c, templates/Default.agr: Updated
	  copyright statements.

2003-01-03 00:08  fnevgeny

	* src/motifutils.c: Use "+"/"-" instead of "shown"/"hidden" in the
	  graph selectors.

2003-01-02 22:44  fnevgeny

	* ac-tools/: aclocal.m4, configure.in: Modifications of the auto*
	  stuff to work with autoconf-2.53. Allow the Fortran compiler to
	  be defined with the full path.

2002-12-28 01:02  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2002-12-25 02:31  fnevgeny

	* src/files.c: Fixed a minor memory leak (during data file
	  parsing).

2002-12-24 22:50  fnevgeny

	* scripts/makerelease: Exclude .cvsignore files from tar.gz.

2002-12-24 22:47  fnevgeny

	* examples/stackedb.agr: A bit more meaningful legends for the
	  stackedb example ;-)

2002-12-12 00:20  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml, doc/grace.1,
	  src/buildinfo.c: Grace-5.1.11 release candidate #0.

2002-12-11 23:52  fnevgeny

	* src/: files.c, files.h, setutils.c: Replaced
	  read_xyset_fromfile() with universal update_set_from_file(), thus
	  enabling hotlinks for all set types.

2002-12-11 23:29  fnevgeny

	* src/hotwin.c: Run hotupdate on all graphs, not only the current
	  one.

2002-12-11 23:24  fnevgeny

	* src/rstdrv.c: Set resolution in the png output.

2002-12-11 23:23  fnevgeny

	* src/pars.yacc: Got rid of the unused "UNLINK" token.

2002-12-11 23:15  fnevgeny

	* grace_np/grace_np.c: Detect pipe closing and/or exit of the Grace
	  process. Some cleanup of the code.

2002-12-11 00:54  fnevgeny

	* src/pars.yacc: Verify the set selection is valid.

2002-12-11 00:54  fnevgeny

	* src/setutils.c: Make sure the negative (-1) arg isn't allowed in
	  allocate_set().

2002-12-07 15:50  fnevgeny

	* fonts/: Makefile, enc/CP1251.enc, enc/KOI8-R.enc, enc/KOI8-U.enc:
	  Added encoding files for Russian codepages koi8-r and cp1251 and
	  for Ukrainian codepage koi8-u, contributed by Yura Zotov.

2002-12-07 15:06  fnevgeny

	* src/tickwin.c: Use higher precision for tick locations.

2002-12-07 13:41  fnevgeny

	* src/pars.yacc: Added UPDATEALL command.

2002-12-07 13:35  fnevgeny

	* src/buildinfo.c: Started 5.1.11 development.

2002-09-11 22:48  fnevgeny

	* doc/FAQ.sgml, src/buildinfo.c: Final 5.1.10 release.

2002-09-02 00:08  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.10
	  release candidate #1.

2002-08-29 00:56  fnevgeny

	* src/pdfdrv.c: The pdflib patterned->solid colorspace switch
	  workaround added.

2002-08-27 22:58  fnevgeny

	* src/regionwin.c: Refresh canvas after a region was killed.

2002-08-22 00:00  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c,
	  templates/Default.agr: 5.1.10 release candidate #0.

2002-08-21 23:19  fnevgeny

	* src/fontwin.c: Auto-update font size so that font bbox fits into
	  matrix cell.

2002-08-21 22:37  fnevgeny

	* src/editpwin.c: Set insertion position in the set editor
	  corresponding to the mouse click.

2002-08-20 23:13  fnevgeny

	* fonts/enc/IsoLatin7.enc: Added IsoLatin7 encoding file.

2002-08-20 23:04  fnevgeny

	* src/fontwin.c: Calculate FontBBox if the font's entry is
	  invalid/empty.

2002-08-16 12:50  fnevgeny

	* src/draw.c: Fixed power in the rgb->srgb conversion.

2002-08-13 23:31  fnevgeny

	* src/: draw.c, t1fonts.c: Invalidate AA gray levels' cache when
	  colormap changes.

2002-08-12 23:13  fnevgeny

	* templates/Default.agr, src/globals.h: Changed default data format
	  to %.8g.

2002-08-07 23:51  fnevgeny

	* src/: fontwin.c, t1fonts.c, t1fonts.h: Removed restriction on max
	  font name length.

2002-08-07 23:46  fnevgeny

	* src/buildinfo.c: Replaced old-style "newwindow" openURL option
	  with "new-window" compatible with mozilla.

2002-08-06 00:33  fnevgeny

	* src/motifutils.c: Disable showing hidden files by default and
	  added a checkbox to alter this behaviour (Motif-2.* only).

2002-08-06 00:32  fnevgeny

	* src/buildinfo.c: Started 5.1.10 development.

2002-08-03 23:25  fnevgeny

	* doc/CHANGES.html: A typo fixed.

2002-08-03 23:22  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: Final
	  5.1.9 release.

2002-07-31 22:39  fnevgeny

	* src/fit.c: A typo fixed in crosscorr().

2002-07-30 00:46  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: 5.1.9 release candidate 1.

2002-07-30 00:45  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2002-07-30 00:17  fnevgeny

	* src/svgdrv.c: Transformation matrix fixed.

2002-07-29 23:55  fnevgeny

	* src/svgdrv.h: Added svg_updatecmap() proto.

2002-07-29 23:55  fnevgeny

	* src/svgdrv.c: Undo sRGB stuff.

2002-07-29 23:53  fnevgeny

	* src/svgdrv.c: SVG driver updates: added devupdatecmap(),
	  clarified font names, use smarter coordinate transform, updated
	  DTD reference - all by [MD].

2002-07-29 23:37  fnevgeny

	* T1lib/: t1lib/sysconf.h, t1lib/t1afmtool.c, t1lib/t1base.c,
	  t1lib/t1enc.c, t1lib/t1env.c, t1lib/t1load.c, t1lib/t1subset.c,
	  type1/scanfont.c, type1/t1io.c: Open all files in the binary
	  mode.

2002-07-22 23:23  fnevgeny

	* src/pars.yacc: Allow trailing semicolon in the batch language.

2002-07-13 01:25  fnevgeny

	* src/device.c: Fixed rounding errors in set_page_dimensions() and
	  get_device_page_dimensions().

2002-07-12 00:46  fnevgeny

	* ac-tools/configure.in: Check for PDFLIB >= 4.0.3 (due to the PNG
	  conflict in previous ones).

2002-07-03 01:00  fnevgeny

	* src/nonlfit.c: Fixed 1/n error in correlation().

2002-06-25 23:46  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c, templates/Default.agr: 5.1.9
	  release candidate 0.

2002-06-25 23:39  fnevgeny

	* grace_np/grace_np.c: Run xmgrace in the nosafe mode when invoked
	  from GraceOpen().

2002-06-25 23:27  fnevgeny

	* src/mifdrv.c: Derive fontfamily from fontalias.

2002-06-22 14:40  fnevgeny

	* Makefile, auxiliary/Makefile, doc/CHANGES.html, doc/Makefile,
	  doc/UsersGuide.sgml, examples/Makefile, fonts/Makefile,
	  grace_np/Makefile, grconvert/Makefile, src/Makefile,
	  templates/Makefile: Make install fixes by Peter Breitenlohner:
	  convcal now gets stripped, "make -n install links" works, and
	  DESTDIR introduced for building binary packages.

2002-06-20 22:26  fnevgeny

	* src/plotone.h: Get rid of unused #define's.

2002-06-19 23:00  fnevgeny

	* src/svgdrv.c: Implemented patterned fills in SVG [MD].

2002-06-17 23:49  fnevgeny

	* src/draw.c: Extraneous semicolons removed.

2002-06-17 23:20  fnevgeny

	* src/: draw.c, draw.h: Added sRGB color transformations [MD].

2002-06-17 23:04  fnevgeny

	* src/pdfdrv.c: Patterned fills were transparent in PDF.

2002-06-13 00:07  fnevgeny

	* src/xmgrace.c: App name was missing in the XtDisplayInitialize()
	  call.

2002-06-07 00:43  fnevgeny

	* src/main.c: Oops. -(no)safe flags were missed in the usage().

2002-06-07 00:41  fnevgeny

	* src/buildinfo.c: Started 5.1.9.

2002-06-02 23:06  fnevgeny

	* ac-tools/configure.in: PDFlib version string was misspelled.

2002-06-02 23:05  fnevgeny

	* src/hotwin.c: An unused variable removed.

2002-06-01 23:03  fnevgeny

	* src/buildinfo.c: Final 5.1.8 release.

2002-05-28 23:25  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.8 release candidate #2.

2002-05-28 00:17  fnevgeny

	* doc/UsersGuide.sgml, src/hotwin.c: Removed broken "Command"
	  function of the hotlink popup.

2002-05-27 23:59  fnevgeny

	* src/mifdrv.c: Better fontdefinitions in the MIF driver [MD].

2002-05-27 23:59  fnevgeny

	* src/: t1fonts.c, t1fonts.h: Added get_fontfullname(),
	  get_fontfamilyname(), get_fontweight(), and get_italic_angle()
	  wrappers around T1lib functions [MD].

2002-05-27 23:10  fnevgeny

	* src/featext.c: Update canvas after feature extraction.

2002-05-27 23:07  fnevgeny

	* src/helpwin.c: Updated PDFlib copyright.

2002-05-24 00:17  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.8
	  release candidate #1.

2002-05-24 00:00  fnevgeny

	* src/pdfdrv.c: Move fillrule setting out of path construction.

2002-05-23 22:40  fnevgeny

	* ac-tools/configure.in: Check for PDFlib-4.0.1.

2002-05-23 22:30  fnevgeny

	* src/pdfdrv.c: Backported PDF patterns from 5.2 by MD.

2002-05-22 23:48  fnevgeny

	* doc/grace.1, src/globals.h, src/main.c, src/miscwin.c,
	  src/pars.yacc: Implemented safe mode.

2002-05-16 23:38  fnevgeny

	* src/helpwin.c: An off-by-one allocation error fixed.

2002-05-05 00:29  fnevgeny

	* src/x11drv.c: Set solid fill style before flushing the X canvas
	  background.

2002-05-01 00:09  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c,
	  templates/Default.agr: 5.1.8 release candidate #0.

2002-04-30 22:09  fnevgeny

	* ac-tools/configure.in: Stop with error if Motif can't be found by
	  configure.

2002-04-07 23:07  fnevgeny

	* src/utils.c: Use leading zeros in year formats.

2002-03-29 23:22  fnevgeny

	* src/ssdata.c: Use strchr() instead of BSD-ish index().

2002-03-28 13:22  fnevgeny

	* src/xmgrace.c: Don't open the display twice.

2002-03-28 13:11  fnevgeny

	* src/buildinfo.c: 5.1.8 development started.

2002-03-18 23:43  fnevgeny

	* src/buildinfo.c: Final 5.1.7 release.

2002-03-17 01:10  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: 5.1.7 release candidate #2.

2002-03-17 01:07  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2002-03-17 00:57  fnevgeny

	* src/: psdrv.c, psdrv.h: Restrict PS output line length to 70
	  chars.

2002-03-16 18:57  fnevgeny

	* src/xmgrace.c: Added a XtSetLanguageProc() call to the GUI
	  initialization.

2002-03-14 00:44  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.7
	  release candidate #1.

2002-03-14 00:25  fnevgeny

	* src/: graphutils.c, graphutils.h, pars.yacc, worldwin.c:
	  Implemented snake matrix fill in arrange_graphs().

2002-03-13 23:33  fnevgeny

	* ac-tools/aclocal.m4: Removed cyclic dependence in
	  CHECK_MOTIF->CHECK_LESSTIF->CHECK_MOTIF.

2002-03-13 23:25  fnevgeny

	* src/pars.yacc: When accessing drawing objects by id (e.g. "WITH
	  STRING nexpr") allocate the referenced object if necessary.

2002-03-12 23:46  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: 5.1.7 release candidate #0.

2002-03-12 23:41  fnevgeny

	* src/x11drv.c: Don't set BackingStore attribute of the root
	  window.

2002-03-12 23:26  fnevgeny

	* src/x11drv.c: Detect max request size of the X server and set
	  max_path_limit accordingly.

2002-03-12 23:15  fnevgeny

	* src/: computils.c, compwin.c, fit.c, noxprotos.h, pars.yacc,
	  xmgrace.c: Extended x-correlation stuff to calculate
	  x-covariance, too.

2002-02-28 00:23  fnevgeny

	* ac-tools/aclocal.m4: Include  instead of  in
	  the Motif check to make sure _all_ Motif headers are present.

2002-02-28 00:10  fnevgeny

	* src/graphs.c: When setting axis scaling to log from other type,
	  set reasonable major/minor settings and world bounds.

2002-02-27 22:29  fnevgeny

	* src/: graphs.c, plotone.c: Honour symskip for error bars and all
	  set types.

2002-02-19 22:51  fnevgeny

	* src/: main.c, pars.yacc, ssdata.c, ssdata.h: Allow defining
	  string columns when creating sets from block data via the CLI or
	  parser.

2002-02-19 22:51  fnevgeny

	* src/files.c: Simply ignore comments in data files instead of
	  breaking current set.

2002-02-19 22:39  fnevgeny

	* src/x11drv.c: Set DPI of the X11 device from the X server props.

2002-02-05 22:20  fnevgeny

	* examples/axes.agr: Removed zero-length line objects in axes.agr.

2002-02-04 22:55  fnevgeny

	* src/plotone.c: Allow SET_XYZ in polar graphs.

2002-02-04 22:45  fnevgeny

	* src/graphs.c: Don't reset graph settings in set_graph_type() when
	  the graph is already of the requested type.

2002-02-01 22:24  fnevgeny

	* src/Makefile: $(LDFLAGS) were missing in the -version output.

2002-02-01 22:16  fnevgeny

	* ac-tools/: aclocal.m4, configure.in: Fixed Motif checks.

2002-01-31 23:58  fnevgeny

	* src/buildinfo.c, templates/Default.agr: Started 5.1.7
	  development.

2002-01-27 21:54  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c: Final 5.1.6
	  release.

2002-01-27 21:53  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2002-01-27 21:38  fnevgeny

	* ac-tools/configure.in: Var names were interfering w/
	  ACX_SAVE_STATE/ACX_RESTORE_STATE.

2002-01-27 21:30  fnevgeny

	* src/files.c: Lines starting with spaces weren't parsed.

2002-01-21 18:41  fnevgeny

	* src/utils.c: Fixed compilation on systems without setlocale().

2002-01-12 23:54  fnevgeny

	* src/: computils.c, fit.c: More xcorr fixes and checks.

2002-01-12 22:53  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.6 release candidate #1.

2002-01-12 21:57  fnevgeny

	* src/: computils.c, fit.c, noxprotos.h: Fixed xcorrelation.

2002-01-12 19:51  fnevgeny

	* ac-tools/: aclocal.m4, configure.in: Check for FFTW library
	  version >= 2.1.3.

2002-01-12 19:05  fnevgeny

	* ac-tools/: aclocal.m4, configure.in: Re-wrote Motif checks.

2002-01-09 00:20  fnevgeny

	* src/motifutils.c: Added a "My Computer" FSB entry for the Cygwin
	  port.

2002-01-09 00:15  fnevgeny

	* ac-tools/aclocal.m4: Fixed order of X libs while detecting Motif.

2002-01-03 23:26  fnevgeny

	* arch/win32/README: Updated win32 README.

2002-01-03 23:21  fnevgeny

	* COPYRIGHT, doc/UsersGuide.sgml, src/helpwin.c, src/main.c:
	  Upgraded copyright notices.

2002-01-03 23:15  fnevgeny

	* T1lib/t1lib/.dependencies, T1lib/t1lib/parseAFM.c,
	  T1lib/t1lib/parseAFM.h, T1lib/t1lib/sysconf.h,
	  T1lib/t1lib/t1aaset.c, T1lib/t1lib/t1aaset.h,
	  T1lib/t1lib/t1afmtool.c, T1lib/t1lib/t1afmtool.h,
	  T1lib/t1lib/t1base.c, T1lib/t1lib/t1base.h,
	  T1lib/t1lib/t1delete.c, T1lib/t1lib/t1delete.h,
	  T1lib/t1lib/t1enc.c, T1lib/t1lib/t1enc.h, T1lib/t1lib/t1env.c,
	  T1lib/t1lib/t1env.h, T1lib/t1lib/t1extern.h,
	  T1lib/t1lib/t1finfo.c, T1lib/t1lib/t1finfo.h,
	  T1lib/t1lib/t1global.h, T1lib/t1lib/t1lib.h,
	  T1lib/t1lib/t1load.c, T1lib/t1lib/t1load.h, T1lib/t1lib/t1misc.h,
	  T1lib/t1lib/t1outline.c, T1lib/t1lib/t1outline.h,
	  T1lib/t1lib/t1set.c, T1lib/t1lib/t1set.h, T1lib/t1lib/t1subset.c,
	  T1lib/t1lib/t1subset.h, T1lib/t1lib/t1trans.c,
	  T1lib/t1lib/t1trans.h, T1lib/t1lib/t1types.h,
	  T1lib/type1/.dependencies, T1lib/type1/fontfcn.c,
	  T1lib/type1/objects.c, T1lib/type1/pictures.h,
	  T1lib/type1/regions.c, T1lib/type1/scanfont.c,
	  T1lib/type1/t1io.c, ac-tools/configure.in: Upgraded T1lib to
	  1.3.1.

2001-12-30 00:20  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c, templates/Default.agr: 5.1.6 release candidate
	  #0.

2001-12-30 00:10  fnevgeny

	* src/: Make.dep, files.c: If saving project under the same name,
	  don't warn about overwriting.

2001-12-26 23:42  fnevgeny

	* Xbae/: LICENSE, README, Xbae/Create.c, Xbae/Input.c,
	  Xbae/Input.h, Xbae/InputP.h, Xbae/LICENSE, Xbae/Make.common,
	  Xbae/Matrix.c, Xbae/Matrix.h, Xbae/Methods.c: Backported from 5.2
	  Xbae changes.

2001-12-26 22:34  fnevgeny

	* src/draw.c: Make sure angle2 > angle1 in arc drawing.

2001-12-26 22:33  fnevgeny

	* src/gd.c: Fixed arc drawing for negative angles.

2001-12-18 23:37  fnevgeny

	* src/motifutils.c: Fixed a typo in GetTransformDialogSettings()
	  that broke the test for src/dest selection exclusiveness.

2001-12-18 22:55  fnevgeny

	* ac-tools/configure.in: Use the bundled Xbae by default.

2001-12-18 00:25  fnevgeny

	* src/drawticks.c: BBox for calculation of the axis label
	  (auto)placement was left empty if tick marks weren't drawn.

2001-12-18 00:19  fnevgeny

	* src/motifutils.c: Optimized updating of pulldown selectors.

2001-12-01 21:18  fnevgeny

	* src/pars.yacc: Allow accessing array segments (e.g. x[4:10]).

2001-12-01 16:23  fnevgeny

	* src/pars.yacc: Added SUM(vexpr).

2001-12-01 16:14  fnevgeny

	* src/pars.yacc: Implemented KILL REGNUM.

2001-12-01 15:58  fnevgeny

	* src/pars.yacc: Implemented: region on set evaluation
	  (REGNUM(selectset)), and applying region and logical restriction
	  to a set (RESTRICT(selectset, vexpr) and RESTRICT(selectset,
	  REGNUM, onoff)).

2001-12-01 01:35  fnevgeny

	* src/buildinfo.c: Hmm, why did I call it "rc"?

2001-12-01 01:12  fnevgeny

	* src/graphutils.c: Regions weren't cleaned up in wipeout().

2001-11-30 23:43  fnevgeny

	* src/: noxprotos.h, regionutils.c: Added kill_all_regions().

2001-11-30 23:42  fnevgeny

	* src/pars.yacc: Simplify polygon region reallocation.

2001-11-30 23:37  fnevgeny

	* src/buildinfo.c: 5.1.6 development started.

2001-11-23 00:12  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: Final
	  5.1.5 release.

2001-11-23 00:10  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2001-11-23 00:00  fnevgeny

	* src/buildinfo.c: Include uname.version in the "-v" output.

2001-11-22 23:53  fnevgeny

	* doc/Makefile: Implicitly set paper size in dvips params (in sync
	  with linuxdoc).

2001-11-15 11:09  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.5 release candidate #1.

2001-11-15 10:49  fnevgeny

	* src/draw.h: Extend max line width to 20.

2001-11-15 10:45  fnevgeny

	* doc/: CHANGES.html, Makefile: Explicitly set output to file in
	  dvi->ps convertion.

2001-11-15 10:29  fnevgeny

	* src/: miscwin.c, motifinc.h, motifutils.c: Added one more
	  argument to CreateScale() - delta, the value change when pressing
	  Ctrl+Left/Right arrows.  Enlarged max symbol/font size to 1000.
	  Set delta for font size controls to 25 and for angle controls -
	  to 10.

2001-11-15 10:10  fnevgeny

	* src/: graphs.c, plotone.c: Honour X axis min & invert flag in pie
	  charts.

2001-11-13 22:48  fnevgeny

	* src/motifutils.c: Removed a redundant call of
	  UpdateOptionChoice() in CreateColorChoice().

2001-11-13 22:36  fnevgeny

	* src/graphappwin.c: Allow for negative gaps in bar charts.

2001-11-13 22:22  fnevgeny

	* src/x11drv.c: Added proper casts for color indices > 128.

2001-10-27 00:23  fnevgeny

	* src/: buildinfo.c, helpwin.c, main.c, utils.c, utils.h: Keep jpeg
	  and pdflib version info.

2001-10-26 23:37  fnevgeny

	* src/xmgrace.c: Urge people to use at least LessTif-0.92.

2001-10-14 23:24  fnevgeny

	* src/motifutils.c: Optimize UpdateOptionChoice() for large N.

2001-10-14 22:43  fnevgeny

	* src/: draw.c, draw.h, plotone.c: Check for proper world &
	  viewport settings in select_graph().

2001-10-02 14:31  fnevgeny

	* doc/: CHANGES.html, FAQ.sgml: Removed Q&A on low-resolution
	  displays.

2001-10-02 14:13  fnevgeny

	* src/xmgrace.c: Automatically adjust Xresources for low-resolution
	  displays (backported from 5.2.).

2001-10-01 23:53  fnevgeny

	* src/fit.c: Std. dev. was wrongly calculated using n instead of
	  n-1 in the denominator.

2001-10-01 23:42  fnevgeny

	* src/: buildinfo.c, helpwin.c, main.c, utils.c, utils.h: Include
	  libpng version in the buildinfo.

2001-10-01 23:34  fnevgeny

	* src/: as274c.h, computils.c, fit.c: Minor cosmetic fixes by AM.

2001-10-01 23:30  fnevgeny

	* src/pars.yacc: Implicitly cast to boolean double arguments used
	  as bool in the parser.

2001-09-15 23:24  fnevgeny

	* doc/CHANGES.html, examples/Makefile, examples/dotest,
	  examples/reciprocal.agr, examples/xycolor.agr, src/xmgrace.c:
	  Added examples of XYCOLOR set presentation and reciprocal axis
	  scale, contributed by Nels Dumin.

2001-09-09 23:39  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.5 release candidate #1.

2001-09-09 23:15  fnevgeny

	* src/: events.c, graphappwin.c, xprotos.h: Update legend and
	  viewport dialog props when moving legend or resizing graph from
	  canvas.

2001-09-05 01:01  fnevgeny

	* src/pars.yacc: Date format hint was ignored in the parser.

2001-08-19 00:01  fnevgeny

	* doc/: Makefile, convcal.1: Added man page for convcal.

2001-08-03 23:35  fnevgeny

	* src/main.c: Make result file output line-buffered instead of
	  block-buffered.

2001-08-03 23:20  fnevgeny

	* ac-tools/configure.in: The argument of --with-printcmd configure
	  switch wasn't quoted.

2001-08-03 21:45  fnevgeny

	* T1lib/: README, README.t1lib: Use a generic README for T1lib.

2001-07-27 01:17  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c, templates/Default.agr: 5.1.5
	  release candidate #0.

2001-07-27 01:11  fnevgeny

	* src/plotone.c: Fixed drawing lef/right stairs line type.

2001-07-27 00:51  fnevgeny

	* T1lib/t1lib/t1finfo.c: A bug in T1_QueryLigs() fixed.

2001-07-13 23:20  fnevgeny

	* src/plotone.c: Don't use anything but main palette colors in
	  XYCOLOR.

2001-07-02 09:50  fnevgeny

	* src/buildinfo.c: Final 5.1.4 release.

2001-06-21 01:05  fnevgeny

	* arch/os2/: Make.conf.os2, README, config.h.os2: Minor/cosmetics
	  OS/2 changes (from AM).

2001-06-21 01:03  fnevgeny

	* doc/Tutorial.sgml: Minor enchancements from AM.

2001-06-18 00:20  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: 5.1.4 release candidate #2.

2001-06-17 23:44  fnevgeny

	* examples/tmc.c: Explicitly activate graphs in tmc.c.

2001-06-17 23:43  fnevgeny

	* src/: graphs.c, graphs.h, pars.yacc: Added graph_allocate() - to
	  allocate an initially hidden graph.  set_graph_active() uses it.

2001-06-17 01:24  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c: 5.1.4 release
	  candidate #1.

2001-06-16 00:39  fnevgeny

	* src/: graphs.c, graphs.h, graphutils.c, main.c, motifutils.c,
	  pars.yacc: Drop the second argument in set_graph_active().

2001-06-07 23:45  fnevgeny

	* src/graphs.c: Make set_graph_active() work as set_graph_hidden()
	  when the flag is FALSE instead of kill_graph().

2001-06-07 23:44  fnevgeny

	* src/: Make.dep, mathstuff.c: Added "protos.h" (for missing.h,
	  actually) to	mathstuff.c and updated the deps.

2001-05-31 23:56  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c,
	  templates/Default.agr: 5.1.4 release candidate #0.

2001-05-31 23:34  fnevgeny

	* doc/UsersGuide.sgml: Updated DLL docs for OS/2 (by AM).

2001-05-31 23:23  fnevgeny

	* src/: Make.common, Make.dep, mathstuff.c, mathstuff.h, pars.yacc:
	  Moved all math wrappers/utility funcs from pars.yacc to the newly
	  added mathstuff.*. Added wrappers around Cephes ellpe() and
	  ellpk() which in fact calculated for (1-x) argument. The patch by
	  AM.

2001-05-31 23:05  fnevgeny

	* src/compwin.c: In the "Sample points" dialog, even when the "log.
	  expression" is selected, one had to input some values into
	  start/step input fields anyway.

2001-05-31 22:48  fnevgeny

	* src/rstdrv.c: Check that freed ihandle pointer is not referenced.

2001-04-08 16:02  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: Final
	  5.1.3 release.

2001-04-08 15:40  fnevgeny

	* src/: draw.c, draw.h: Backported from 5.2 the linewidth/bbox
	  stuff.

2001-04-07 23:57  fnevgeny

	* src/graphs.h: Use unsigned char as the symchar type in the
	  'plotarr' struct.

2001-04-07 22:49  fnevgeny

	* src/: drawticks.c, graphs.c: Backported the axis label
	  autoplacement stuff.

2001-04-07 00:20  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/pars.yacc: Added
	  AUTOSCALE ONREAD (by Luc).

2001-03-31 16:29  fnevgeny

	* ac-tools/shtool: Updated shtool to version 1.5.2.

2001-03-31 16:23  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2001-03-31 15:50  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c: 5.1.3 release candidate #2.

2001-03-31 15:41  fnevgeny

	* doc/grace.1: Added RESOURCES and FILES sections.

2001-03-31 01:38  fnevgeny

	* src/pdfdrv.c: Setting PDF compression level was done outside the
	  relevant scope.

2001-03-27 02:24  fnevgeny

	* src/device.c: Oops... how it happened that the last change not
	  actually committed??

2001-03-21 00:15  fnevgeny

	* src/printwin.c: The "Rescale plot on page size change" option in
	  the "File/Print setup" dialog had no effect if the selected
	  device was X11.

2001-03-15 22:00  fnevgeny

	* src/: device.c, device.h: When switching output device, check
	  whether it supports direct printing and if not, set output to
	  file.

2001-03-08 00:51  fnevgeny

	* src/defines.h: Get rid of obsolete LOCWORLD/LOCVIEW defines.

2001-03-06 00:25  fnevgeny

	* src/pdfdrv.c: Include stdlib.h (for atoi()).

2001-03-01 00:04  fnevgeny

	* src/: files.c, utils.c, utils.h: Removed fexists() as a separate
	  function.  Added check for return value of filter_write() in
	  grace_openw().

2001-02-26 23:44  fnevgeny

	* doc/CHANGES.html, doc/UsersGuide.sgml, src/buildinfo.c: 5.1.3
	  release candidate #1.

2001-02-26 23:33  fnevgeny

	* src/tickwin.c: When switching to log scale, set major/minor tick
	  settings to 10/9 by default.

2001-02-26 23:23  fnevgeny

	* T1lib/type1/scanfont.c: A wrong pointer cast fixed.

2001-02-25 13:49  fnevgeny

	* src/xutil.c: A stupid typo fixed.

2001-02-22 23:19  fnevgeny

	* src/: utils.c, xutil.c: Set icon's title = project name.

2001-02-19 23:44  fnevgeny

	* T1lib/t1lib/: t1subset.c, t1subset.h: Oops. t1subset* forgotten.

2001-02-19 23:43  fnevgeny

	* src/pdfdrv.c, src/t1fonts.c, src/t1fonts.h, T1lib/Makefile,
	  T1lib/t1lib/.dependencies, T1lib/t1lib/Makefile,
	  T1lib/t1lib/sysconf.h, T1lib/t1lib/t1afmtool.c,
	  T1lib/t1lib/t1base.c, T1lib/t1lib/t1base.h,
	  T1lib/t1lib/t1finfo.c, T1lib/t1lib/t1lib.h, T1lib/t1lib/t1misc.h,
	  T1lib/t1lib/t1outline.c, T1lib/type1/hdigit.h,
	  T1lib/type1/paths.c, T1lib/type1/scanfont.c, T1lib/type1/t1io.c,
	  T1lib/type1/type1.c, ac-tools/configure.in: Backported from the
	  main trunk T1lib-1.1 & related changes.

2001-02-14 00:46  fnevgeny

	* src/utils.c: A text polish.

2001-02-12 23:44  fnevgeny

	* src/psdrv.c: List used fonts in %%DocumentNeededResources.

2001-02-12 23:10  fnevgeny

	* doc/Tutorial.sgml: Updated tutorials.

2001-02-05 23:48  fnevgeny

	* ac-tools/: config.guess, config.sub: Updated config.guess and
	  config.sub.

2001-02-05 23:20  fnevgeny

	* scripts/cvs2cl.pl: Updated cvs2cl.pl.

2001-02-03 15:46  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, doc/UsersGuide.sgml,
	  src/buildinfo.c, templates/Default.agr: 5.1.3 release candidate
	  #0.

2001-02-03 15:29  fnevgeny

	* ac-tools/configure.in: Allow to specify print command at
	  `configure' time.

2001-02-03 15:03  fnevgeny

	* src/dates.c: Enable grace to read floats when they are explicitly
	  signed and positive.

2001-01-20 01:14  fnevgeny

	* src/pars.yacc: Added "HELP url" and "HELP" to the parser.

2001-01-20 00:54  fnevgeny

	* COPYRIGHT, src/helpwin.c, src/main.c: Updated copyright dates.

2001-01-20 00:52  fnevgeny

	* src/plotone.c: Legend entries for BARDY and BARDYDY sets weren't
	  drawn.

2001-01-20 00:13  fnevgeny

	* src/: buildinfo.c, mifdrv.c: Produce a mif-file with a textflow
	  in which the graph is included, so it can be included in another
	  FrameMaker document.	A conversion table added to generate the
	  hex-codes needed in mif-files for special characters.  The patch
	  by Matthias Dillier.

2001-01-19 23:54  fnevgeny

	* Xbae/Xbae/Input.c: Include stdio.h for *printf().

2000-12-02 00:01  fnevgeny

	* grace_np/grace_np.h: Removed unused EXIT_* #defines from
	  grace_np.h.

2000-12-01 23:22  fnevgeny

	* src/defaults.c: Init legend's bbox.

2000-11-30 23:18  fnevgeny

	* src/tickwin.c: Precision of offsets in the Axes dialog were
	  restricted to two digits.

2000-11-30 23:11  fnevgeny

	* src/motifutils.c: Fixed rounding error in calculation pulldown
	  menu length.

2000-09-10 02:59  fnevgeny

	* src/buildinfo.c: Final 5.1.2 release.

2000-09-10 02:50  fnevgeny

	* examples/tstack.agr: Updated world stack manipulation example.

2000-09-09 02:19  fnevgeny

	* ac-tools/: config.guess, config.sub: Newest config.guess and
	  config.sub from the GNU ftp site.

2000-09-09 01:59  fnevgeny

	* arch/os2/: Make.conf.os2, README, config.h.os2: Minor updates
	  from AM.

2000-09-07 02:59  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: grace-5.1.2rc2 snapshot.

2000-09-07 02:50  fnevgeny

	* templates/Default.agr: Updated default template.

2000-09-07 02:40  fnevgeny

	* src/: defines.h, setappwin.c, setutils.c: Implemented baseline
	  setting to the set (y) average - based on the patch by Dominique
	  Bissieres.

2000-09-07 01:20  fnevgeny

	* Xbae/Xbae/Create.c: Removed compile-time restriction on the
	  number of X server screens.

2000-09-07 00:33  fnevgeny

	* src/draw.c: Fixed a floating point rounding bug in the polygon
	  clipping.

2000-09-01 00:59  fnevgeny

	* doc/CHANGES.html, src/buildinfo.c: grace-5.1.2rc1 snapshot.

2000-09-01 00:49  fnevgeny

	* src/ssdata.c: create_set_fromblock() didn't copy but merely
	  assigned strings. The patch by LM.

2000-08-28 00:18  fnevgeny

	* src/setutils.c: Remove XYZ hack from set_dataset_type().

2000-08-24 01:05  fnevgeny

	* doc/UsersGuide.sgml, src/pars.yacc: Added PAGE RESIZE xdim, ydim.

2000-08-24 00:19  fnevgeny

	* patches/sgmltools.patch: Removed sgmltools.patch since it's
	  incorporated in the current linuxdoc suite.

2000-08-24 00:13  fnevgeny

	* ac-tools/configure.in, doc/UsersGuide.sgml: Require PDFlib-3.02.

2000-08-22 00:56  fnevgeny

	* src/buildinfo.c: 5.1.2 release candidate.

2000-08-22 00:53  fnevgeny

	* doc/CHANGES.html, doc/Makefile, doc/UsersGuide.sgml,
	  src/computils.c, src/motifinc.h, src/motifutils.c,
	  src/printwin.c, src/psdrv.c, src/psdrv.h: Backported some stuff
	  from the main 5.2 trunk: - backslashes in PS; - DocumentData in
	  PS; - monotonicity/splines; - tall pulldown menus; - linuxdoc for
	  sgml processing; - file path in "Print setup".

2000-08-14 01:53  fnevgeny

	* src/: globals.h, main.c: Removed unused global var "readcdf".

2000-08-03 01:10  fnevgeny

	* Makefile: Build ChangeLog only for the 5.1 branch.

2000-08-01 02:58  fnevgeny

	* doc/CHANGES.html, doc/FAQ.sgml, src/buildinfo.c: grace-5.1.2dev1
	  snapshot.

grace-5.1.25/doc/0000755000076500001440000000000012467751547013221 5ustar  fnevgenyusersgrace-5.1.25/doc/Tutorial.pdf0000644000076500001440000067002412467751546015527 0ustar  fnevgenyusers%PDF-1.4
%ÐÔÅØ
1 0 obj
<< /S /GoTo /D (section.1) >>
endobj
4 0 obj
(Introduction)
endobj
5 0 obj
<< /S /GoTo /D (subsection.1.1) >>
endobj
8 0 obj
(Purpose)
endobj
9 0 obj
<< /S /GoTo /D (subsection.1.2) >>
endobj
12 0 obj
(Nomenclature)
endobj
13 0 obj
<< /S /GoTo /D (subsection.1.3) >>
endobj
16 0 obj
(Computer System)
endobj
17 0 obj
<< /S /GoTo /D (subsection.1.4) >>
endobj
20 0 obj
(Generalities)
endobj
21 0 obj
<< /S /GoTo /D (subsection.1.5) >>
endobj
24 0 obj
(Disclaimer)
endobj
25 0 obj
<< /S /GoTo /D (section.2) >>
endobj
28 0 obj
(Making a Simple Graph)
endobj
29 0 obj
<< /S /GoTo /D (subsection.2.1) >>
endobj
32 0 obj
(Reading the data from a file)
endobj
33 0 obj
<< /S /GoTo /D (subsection.2.2) >>
endobj
36 0 obj
(Set appearance)
endobj
37 0 obj
<< /S /GoTo /D (subsubsection.2.2.1) >>
endobj
40 0 obj
(Colouring all sets differently)
endobj
41 0 obj
<< /S /GoTo /D (subsubsection.2.2.2) >>
endobj
44 0 obj
(Customizing each set)
endobj
45 0 obj
<< /S /GoTo /D (subsection.2.3) >>
endobj
48 0 obj
(Labelling the axes using the font tool)
endobj
49 0 obj
<< /S /GoTo /D (subsection.2.4) >>
endobj
52 0 obj
(Graph titles)
endobj
53 0 obj
<< /S /GoTo /D (subsection.2.5) >>
endobj
56 0 obj
(Legends)
endobj
57 0 obj
<< /S /GoTo /D (subsection.2.6) >>
endobj
60 0 obj
(A challenge)
endobj
61 0 obj
<< /S /GoTo /D (section.3) >>
endobj
64 0 obj
(Block Data)
endobj
65 0 obj
<< /S /GoTo /D (section.4) >>
endobj
68 0 obj
(Creating sets within Grace)
endobj
69 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
72 0 obj
(By formula)
endobj
73 0 obj
<< /S /GoTo /D (subsection.4.2) >>
endobj
76 0 obj
(In spreadsheet)
endobj
77 0 obj
<< /S /GoTo /D (subsection.4.3) >>
endobj
80 0 obj
(In text editor)
endobj
81 0 obj
<< /S /GoTo /D (subsection.4.4) >>
endobj
84 0 obj
(From block data)
endobj
85 0 obj
<< /S /GoTo /D (section.5) >>
endobj
88 0 obj
(Batch plotting )
endobj
89 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
92 0 obj
(Simple nonGUI printing)
endobj
93 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
96 0 obj
(Multiple graphs)
endobj
97 0 obj
<< /S /GoTo /D (subsubsection.5.2.1) >>
endobj
100 0 obj
(An example)
endobj
101 0 obj
<< /S /GoTo /D (subsection.5.3) >>
endobj
104 0 obj
(Things for which no command line option exists)
endobj
105 0 obj
<< /S /GoTo /D (subsubsection.5.3.1) >>
endobj
108 0 obj
(Pexec example)
endobj
109 0 obj
<< /S /GoTo /D (subsubsection.5.3.2) >>
endobj
112 0 obj
(Batch example)
endobj
113 0 obj
<< /S /GoTo /D (section.6) >>
endobj
116 0 obj
(Fitting curves )
endobj
117 0 obj
<< /S /GoTo /D (subsection.6.1) >>
endobj
120 0 obj
(Linear Regression)
endobj
121 0 obj
<< /S /GoTo /D (subsection.6.2) >>
endobj
124 0 obj
(Non-linear)
endobj
125 0 obj
<< /S /GoTo /D (section.7) >>
endobj
128 0 obj
(Transformations )
endobj
129 0 obj
<< /S /GoTo /D (subsection.7.1) >>
endobj
132 0 obj
(Graphical )
endobj
133 0 obj
<< /S /GoTo /D (subsubsection.7.1.1) >>
endobj
136 0 obj
(Simple Geometrical)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.7.1.2) >>
endobj
140 0 obj
(Mathematical operations between sets)
endobj
141 0 obj
<< /S /GoTo /D (subsubsection.7.1.3) >>
endobj
144 0 obj
(Feature extraction )
endobj
145 0 obj
<< /S /GoTo /D (subsection.7.2) >>
endobj
148 0 obj
(Restrictions)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.7.2.1) >>
endobj
152 0 obj
(Defining a region)
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.7.2.2) >>
endobj
156 0 obj
(Using regions)
endobj
157 0 obj
<< /S /GoTo /D (section.8) >>
endobj
160 0 obj
(Using Pipes )
endobj
161 0 obj
<< /S /GoTo /D (subsection.8.1) >>
endobj
164 0 obj
(Instead of data files)
endobj
165 0 obj
<< /S /GoTo /D (subsection.8.2) >>
endobj
168 0 obj
(Named pipes)
endobj
169 0 obj
<< /S /GoTo /D (section.9) >>
endobj
172 0 obj
(Multiple Graphs)
endobj
173 0 obj
<< /S /GoTo /D (subsection.9.1) >>
endobj
176 0 obj
(Selecting graphs)
endobj
177 0 obj
<< /S /GoTo /D (subsubsection.9.1.1) >>
endobj
180 0 obj
(Arranging a tableau of graphs)
endobj
181 0 obj
<< /S /GoTo /D (subsubsection.9.1.2) >>
endobj
184 0 obj
(Arranging individual graphs)
endobj
185 0 obj
<< /S /GoTo /D (subsection.9.2) >>
endobj
188 0 obj
(Overlaying Graphs)
endobj
189 0 obj
<< /S /GoTo /D (section.10) >>
endobj
192 0 obj
(Hot Links)
endobj
193 0 obj
<< /S /GoTo /D (subsection.10.1) >>
endobj
196 0 obj
(File containing a Single Set)
endobj
197 0 obj
<< /S /GoTo /D (subsection.10.2) >>
endobj
200 0 obj
(Multiple sets within a file)
endobj
201 0 obj
<< /S /GoTo /D (subsection.10.3) >>
endobj
204 0 obj
(Updating by hot keys)
endobj
205 0 obj
<< /S /GoTo /D [206 0 R /Fit] >>
endobj
234 0 obj <<
/Length 1108      
/Filter /FlateDecode
>>
stream
xÚíYKsÛ6¾ëWðHÈâE‚¸5v;I§Õ^Ò’8æC%ÁÆî¯ï’YILœêaw¦á	GÀ‚ûaw¿o‰œµƒœùÙñj1ûî
æAA‘ÐY¬NœH„ARg‘8Üy%—Êó)îÂãÜmté‘È­R™ÕÞï‹f7‹Ù3Û!w«cœe>kŸ±(vHÓЩ”³šýlm†ŽDD¢Þd¡É›ä“GbWV	Ø¥Ìý5õ°»ÎË"i
Ââxw±bƒ¡n©ú3mÿø½n2ÏÇ®,T ’Æ.ÛµI	
ˆöëVeÕÚ¢æuý0À3«v0(‹H»ÌgˆcÇç< ‚™Õ×eáQìjrµñ‹qHµ¶žy?‡×&dçÈñIp™M°çº·°quUÂyˆ›4KÂîfC¸<̇³“/šÛ{cŸ1À+:>«¼·€]Œqjª­'rËZíÛûàG×5
wº¦¯l¡T²£Ñçz6%Ó£K!¤VqÌþx³˜ý
d*Eö
endstream
endobj
206 0 obj <<
/Type /Page
/Contents 234 0 R
/Resources 233 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
/Annots [ 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R ]
>> endobj
207 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 561.568 151.087 570.436]
/A << /S /GoTo /D (section.1) >>
>> endobj
208 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 540.856 146.204 551.646]
/A << /S /GoTo /D (subsection.1.1) >>
>> endobj
209 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 524.016 171.464 532.87]
/A << /S /GoTo /D (subsection.1.2) >>
>> endobj
210 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 503.303 189.226 514.094]
/A << /S /GoTo /D (subsection.1.3) >>
>> endobj
211 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 486.464 162.458 495.318]
/A << /S /GoTo /D (subsection.1.4) >>
>> endobj
212 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 467.687 156.717 476.541]
/A << /S /GoTo /D (subsection.1.5) >>
>> endobj
213 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 437.014 208.621 447.819]
/A << /S /GoTo /D (section.2) >>
>> endobj
214 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 418.238 234.13 429.029]
/A << /S /GoTo /D (subsection.2.1) >>
>> endobj
215 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 399.462 176.997 410.253]
/A << /S /GoTo /D (subsection.2.2) >>
>> endobj
216 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 380.686 266.003 391.476]
/A << /S /GoTo /D (subsubsection.2.2.1) >>
>> endobj
217 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 361.909 234.96 372.7]
/A << /S /GoTo /D (subsubsection.2.2.2) >>
>> endobj
218 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 343.133 274.054 353.924]
/A << /S /GoTo /D (subsection.2.3) >>
>> endobj
219 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 324.357 163.565 335.148]
/A << /S /GoTo /D (subsection.2.4) >>
>> endobj
220 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 305.581 145.899 316.372]
/A << /S /GoTo /D (subsection.2.5) >>
>> endobj
221 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 286.805 161.199 297.595]
/A << /S /GoTo /D (subsection.2.6) >>
>> endobj
222 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 260.005 144.322 268.873]
/A << /S /GoTo /D (section.3) >>
>> endobj
223 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 229.332 223.115 240.136]
/A << /S /GoTo /D (section.4) >>
>> endobj
224 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 210.556 159.705 221.346]
/A << /S /GoTo /D (subsection.4.1) >>
>> endobj
225 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 191.779 173.788 202.57]
/A << /S /GoTo /D (subsection.4.2) >>
>> endobj
226 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 174.94 169.527 183.794]
/A << /S /GoTo /D (subsection.4.3) >>
>> endobj
227 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 156.164 182.669 165.018]
/A << /S /GoTo /D (subsection.4.4) >>
>> endobj
228 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 125.491 164.333 136.295]
/A << /S /GoTo /D (section.5) >>
>> endobj
229 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 106.714 216.354 117.505]
/A << /S /GoTo /D (subsection.5.1) >>
>> endobj
230 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 87.938 179.819 98.729]
/A << /S /GoTo /D (subsection.5.2) >>
>> endobj
231 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 69.162 194.732 79.953]
/A << /S /GoTo /D (subsubsection.5.2.1) >>
>> endobj
235 0 obj <<
/D [206 0 R /XYZ 71 757 null]
>> endobj
236 0 obj <<
/D [206 0 R /XYZ 72 710.559 null]
>> endobj
240 0 obj <<
/D [206 0 R /XYZ 72 611.744 null]
>> endobj
233 0 obj <<
/Font << /F17 237 0 R /F15 238 0 R /F18 239 0 R /F21 241 0 R /F22 242 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
271 0 obj <<
/Length 1490      
/Filter /FlateDecode
>>
stream
xÚíZKsÛ6¾ëWðHÎT‚¯c2­ÝdÒ6•“›DA"&éPÿû.° ¬ÕR2ic@ ûí~»"ò^ä]þ(#xõ2…qTxårtû>òfPÿÊ‹BVäÞÚöZz,Í¡¬½›ÑŸ£“ѳ+J½",Ršz“9ŽÁˆ%ÞdæÝú$ÆyÁü—MS_wm0†r¶*µl›àýäÕ³+’l}ÏÒ8Œ(L`¿¦¦Ç(r+ÅUv·Ü·×#oÌXF9”qøUÆÁ˜D”ú“J6SƱ?o;|XWÐêË€øe@3¿ÂڦŲl—KÞÌð¥–À§öÎ.ž™/>I¥ÕÎÒ¼[˜d>ì6‰¢Ç¬(NúîÔçÛ_}J#¿8&nJôcLò0˲´C%ŒùošƒxD‰BŸøò®ûså”|‡
ÿçç;@„ljéÔñ‚ëÒàQ}Œ,Md¡žZœÆŽã,ÌX€bPŒšøWRkÃ@ÍÀÉ™_®º† Å­°$
–ö|H"×|8õ‹-’0Ò]åH­^|
¼Æ¾‹N(åèx{ÓqBŸî_Ëx	èË­£Ö›õQÐïm3®¤½‘½Hü[ø?r=
ؾ…l×À34ðIP¤~ÇaÇ’›Øáˆe“s,;ÛXöuÇï*Yòú€çIqQƒoeèäQÓh›ÀéFZßl	ùZ´K¡»!â§nÓ§Éhèû0é7®+aLÔÈÛÅúÁØÄ±³[[9Å:m"ªµ
sEƒ-J&iBþ·'á-厄¯‚ÂO®WèCQÝñM¸^ÜÚçA8žóLU¼ÊðÊ€7º'Å%h8k¾AÄâÓÝ8†ŸÅ_QÌi0ŽE'Ö“0r‰φ$:D£÷ïÔD`ÀŒŠ‹ì¿. _L«CÏ1êîñóFÞÙ£Æcu|NÜoâî—Ò‚»cÃvŽåŒkŽG†Æˆkq -4cßîÀ>ÖŠó‡Ôš/…ÃéNºH¸ø¿ÓæD‹‘W;/ÐÂ[ÕZbªFn³Ý#ÎÎ1ðbcà7¢9õô¿˜ùv\Ié¢_OQã¥b+‘~Þu¼Yì‡KšOkÁWÈÅ=;CHö䎽Ø#É´ØJŸ÷.›™ü(g«>—rœ<#”urRWlÜ×íáCWsSÞ;Á³A*4çé…‚Nb¢ä|—E¢Àjú¯­FwõZ6Žx«ôoE"Ã	hÉ•ìOKHAQ4—{I¤9tl}·¡Îb2r‰e#}$Y(AÙŠ]úcC¼ u%ÝÝç°0_8ˆJ#z‰C?ëÅN&F`ÞaéÚÆD¦–]“ÊÚ/T~°Ô{öeì’ôÿKóÉvªE‰Ô³”nÓ(‹€ÝˆÃÉD0 ¹BDÜ"ò…+D‘eá4.ðóI%˜‹3_¯tÛI^+óšú\©ÕR(×VqO÷åvåútî[ŽE#ÖØ°R¢s_¶X‚.â»þÓ•Îúª]Šõf–9_ÊZòÛì̳†@ªµÿŒJÂ&­öÆaJݶԽÒb	²NÁ±ÀAW¡n6û3¡ä¢1™®y³k„fUµæÎÓßv
]ÌòðÉȦYW®bÊ•,]›1•¬ÿ7²Ýßfc¥pËPX…JêßúZŽæV–[˜Ú\ÎRØ¡J
í]¢K[I-1
ì]…9þcPN©ß@ȯ6M¤	ñçpuF&¦fÑâûwvoÔÚ`Ðheзa53…-6Hh߃ø¼ìA-ˆ¿ì¤ûiäÆªD',ÏC;ï'Ÿîê¶c
ìé©UJNAg´j÷œiõp,i10`‰ÿ|®…»äÁëú'|Ú`Žž§®‘ãÜæñ·d&诿­«vç7Xc¥µ
÷8Ë_&£=ˆ=D
endstream
endobj
270 0 obj <<
/Type /Page
/Contents 271 0 R
/Resources 269 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
/Annots [ 232 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R ]
>> endobj
232 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 697.664 321.033 708.454]
/A << /S /GoTo /D (subsection.5.3) >>
>> endobj
244 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 678.887 206.767 689.678]
/A << /S /GoTo /D (subsubsection.5.3.1) >>
>> endobj
245 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 660.111 207.321 670.902]
/A << /S /GoTo /D (subsubsection.5.3.2) >>
>> endobj
246 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 631.375 161.809 642.179]
/A << /S /GoTo /D (section.6) >>
>> endobj
247 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 612.599 188.203 623.389]
/A << /S /GoTo /D (subsection.6.1) >>
>> endobj
248 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 595.759 156.524 604.613]
/A << /S /GoTo /D (subsection.6.2) >>
>> endobj
249 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 567.023 173.237 575.891]
/A << /S /GoTo /D (section.7) >>
>> endobj
250 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 546.31 156.87 557.101]
/A << /S /GoTo /D (subsection.7.1) >>
>> endobj
251 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 527.534 228.03 538.324]
/A << /S /GoTo /D (subsubsection.7.1.1) >>
>> endobj
252 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 508.757 309.191 519.548]
/A << /S /GoTo /D (subsubsection.7.1.2) >>
>> endobj
253 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 491.918 226.19 500.772]
/A << /S /GoTo /D (subsubsection.7.1.3) >>
>> endobj
254 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 473.142 162.583 481.996]
/A << /S /GoTo /D (subsection.7.2) >>
>> endobj
255 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 452.429 217.309 463.22]
/A << /S /GoTo /D (subsubsection.7.2.1) >>
>> endobj
256 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 433.653 201.234 444.443]
/A << /S /GoTo /D (subsubsection.7.2.2) >>
>> endobj
257 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 404.916 151.636 415.721]
/A << /S /GoTo /D (section.8) >>
>> endobj
258 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 388.077 196.724 396.931]
/A << /S /GoTo /D (subsection.8.1) >>
>> endobj
259 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 367.364 167.342 378.154]
/A << /S /GoTo /D (subsection.8.2) >>
>> endobj
260 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 338.627 171.14 349.432]
/A << /S /GoTo /D (section.9) >>
>> endobj
261 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 319.851 181.756 330.642]
/A << /S /GoTo /D (subsection.9.1) >>
>> endobj
262 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 301.075 273.999 311.866]
/A << /S /GoTo /D (subsubsection.9.1.1) >>
>> endobj
263 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [108.853 282.299 265.699 293.089]
/A << /S /GoTo /D (subsubsection.9.1.2) >>
>> endobj
264 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 263.523 192.92 274.313]
/A << /S /GoTo /D (subsection.9.2) >>
>> endobj
265 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [71.004 236.723 137.898 245.591]
/A << /S /GoTo /D (section.10) >>
>> endobj
266 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 216.01 230.506 226.801]
/A << /S /GoTo /D (subsection.10.1) >>
>> endobj
267 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 197.234 222.455 208.024]
/A << /S /GoTo /D (subsection.10.2) >>
>> endobj
268 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [85.944 178.457 205.246 189.248]
/A << /S /GoTo /D (subsection.10.3) >>
>> endobj
272 0 obj <<
/D [270 0 R /XYZ 71 757 null]
>> endobj
2 0 obj <<
/D [270 0 R /XYZ 72 164.444 null]
>> endobj
269 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
275 0 obj <<
/Length 2688      
/Filter /FlateDecode
>>
stream
xÚÛŽÛ6ö}¾ÂèK5‹XÑÕ²
ìC›&ÁE°E¦Ài± eÚfF—”2ã¿ßs£,9*Ò‹<<<7žéhu\E«÷wÝÅðVñªHVE…iT®ªæîÓŸÑjð_VQ˜•ÛÕ3a5«l³…o½úx÷ÛÝOw¯ß%ɪËM²Y=˜FFY¾zܯ>qx¿Þ–YðÐÞ§IÐÛî~
ßýPõ¦kïÿ|üåõ»8ŸìÏ6i%À€v§ˆq‰¤À*[ÅqXæy‚¸kA^gi˜e[Ï0¾_Çq’ÿì¸ÅAçô§hµNò0eißãIr™çÁ¶&mht^íOÚƒú¡ï¬Qµãe=¼cÀÑ|¹O¶@wÖh¡¡_Ts®µ›£»S‡èÏ½à¸Å˶SÎTn.Ñl›'¶ïxîºF÷'ÓC´ê§á&ß:§[ÜÝ‹Y¨vÏÜÊ#â”y1`Ð܃Q­L´ëzmMųƒVý`µ›ï|oU%èϦ†Ý5Ov`d¶LöºéZ×[Õk´ïÄ’S1§-ŽÀö-CÌ^«‘ó‚ÂãÖJÕÎÔDéÍ­´`0œmw´ªΊ$xè…‹c®-úI‡$›´éœ3»ZO5Ã-è”`¦¿àDÃN{AtB¼ÔŸTÿ•ÍhkÉàI‘‘,~¦ÃFˆéuÃ0¿æ4F¾®úWhcÑ•6'O$è,N>H;}ã)†ÜAhŸåÐÙF¤/'ÒƒUÂ"M}=q­:üðúÐq ¾Þ‘ÛØ×rèÀ÷ký‹mƒÑ„ÀóÉÐɘk£Uëè˜ÖYœ„e¼•ÓÚú|C¾ŸC´¶üåÎ…A’6ÎÙÜa‹†+1ÚÁvÍl'¤XŸg
¦ŠÅá–ð“(°S–QØ‹‘Ô×Ô)ñ>PÅA*f.Â÷¶[¬0\UÓÈ—SP’碃%·¤¨•¥$°®˜1Œ
Ö 1ŸG™yÂÆñÔs“€„]Ô‰&v^š#f[hȬ‡‘•fF*þ¸3çf\iÿ¾Ðl¢`r0à@{n
â7ͰÖ<¹ÖÃ
fÈkÕB˜íÌ…ÇTîàK9.æBâpTqa=òd|옪çxà]"›äðíT6	¡Ê	¯ª(½ÑÒw?i–5
>+û섪lÁT¤Ò‰—ð”ÏÞ{d®Z¹žAÒ½D>sf«÷Œ¾£cÖI˜%É7µøßgž„A¿ödÖñ6,Šwf¬^rv¹Lú¾I>¾"©0IåÜOµÏ&G?Q‰&gè $Îæ›RöÀlN÷ÙÂáY^?t¼O¨¯FAŠqƒ¨¼fJh¢“rLtt¡<ø7Ò9ÓþåÑüÄÛ$a‘•~s()1ÚÀE ›ñ#·•PõÈ7à;i‡©þ5+(×ò	²oŽîvz*þìU/£?¢4«=}Ë_JÚeNåanðiœ)be¯4÷Ùøˆx¯Ë£ÉÁ^YO!Ž^½”®
N{P²À…§­jè¤q´	?àXt؇Peø,Â!”?”œâX¢	3Nä
þŠ­‘Á»ûm6²˜^¼ñDØû.—»«)ù%‹0ÓWÜ™^sm61d>ßqš~âéD€bÔѦ"z¨<мÙH.:®rn`ËeñØ<ƒO©
™ŸxÖá||f>ÑÔ>°Ëi¾Œ²˜½²½ãß9Ž‚U5ÔûÅ®Œ]쟴]©´]oºܘ¢‰‡é÷›í—DO*íšùŠ_×ÜåóAÁÚ$²áY´MIjuÌš žsÓ@à®YiÌeP.©B澬g\p¦îÄrÚÞÀ¹¦à»œŸD‹EsJ؃m #IŽUƒÍ:Y‰â«ÍñD°d!ä+¾„vá™z¡PH¸¯-3¹û!Šwtæ(¥šK|z°Ö¹gléU<Š%Þk!×1„[ÙÒ7¬ˆÓ¹Å«ÞänFÙ¨~¹Ï¯©åîàß?<ü—G•XŸ&ÃåÔÕDZԌ%=Å[­>CÕÚGÀuŒ§¿Î/<Ÿ‹wbiðDwrÛj)êI…iòÏ¢ “(x¯[mUmèþMïÿÑë<œë›0ÆÏð­TsÎmUæ"3¼ú›Žäýïó”§ôÄœz¶~{šÎóxº÷ÞŸµ9ÈH+g4wãËÖ
.q—‡*eZŽOg3œOë<Š8‚F®;ôº½Ú`úþf"Lv½R`ˆv“$ [;¼fÌr7ðž=šq¾åég½id7¶òn$–Òø?€\3A&^Æ…ãLR@PÌîS„TFl[0ºãiÛñz&§ClQðE"΂75_מ8%
y{Éå>¢ŒÆkßlJ¾s°_”Ôr‹0aæqe÷"·™{lë°†Qr8vsNï=Uêø`´×ã© ƒz±žvØ‹pò/y¯ŠüS]|=]KîÈÆ[Áèjw€ŸQÍ3Vt‹#º48y6Ám².º\‚±ê‰ucôX^ÝâÙp”ÆËX׋ÒÇì_+ÌdrÓ
µÉ²B¨¢quÂ2“WSôâ ¬õW#>U¦³¹¡Ã–) 
š¿âd,MGÖA&•tÖ¶«y³ò×1‰Ñ-)fÚ½ùböþ6E©âxô‰l¬ã, 7$“§d~Õ$½Ék3I楰MÓÈ£t‘¨†øT‚ðk¥<3`7ô}×:A”×-ÅSé–—«óh¿(øñ|fWÜxOÝ@’U¥Ï==ž¥ÁHAGí¼$|f4i»žr+´(\°`>È“uÍSm(D¾J77PÿptñM-½áJ¹0×úˆñ:–Ôyƒ—íѵ*=ët®fÓúzÅmæä¯WÇ«5¤ÕNŠGUwN»›’Ýžn±È®(±Qq[js)µ?WÕ
Rµýv¡}Ëïí¨BoÒÝpÄ¢_ÄôÆ[Èÿ0m|V˜BJ¨°D¥Àœ,õÙÓ"3Àúà!B
®=š!ÒbþF =a¢]T¶"PTªe‡äã ¬’Û³ì7èoy^Òþ‰·üÝ_$ >Aó»´õ–/¾†Èc9]oìÏŒ¼RÓ_à?ô&^pœaã€I*=ÂúäIwyžÏ¶k„šN®O€_)¡ZšÃ…ÍíýÃ÷þE&X‚^„|ÏÀógÉÀß>Þý)V1
endstream
endobj
274 0 obj <<
/Type /Page
/Contents 275 0 R
/Resources 273 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
>> endobj
276 0 obj <<
/D [274 0 R /XYZ 71 757 null]
>> endobj
6 0 obj <<
/D [274 0 R /XYZ 72 710.559 null]
>> endobj
10 0 obj <<
/D [274 0 R /XYZ 72 591.369 null]
>> endobj
14 0 obj <<
/D [274 0 R /XYZ 72 398.221 null]
>> endobj
18 0 obj <<
/D [274 0 R /XYZ 72 310.769 null]
>> endobj
279 0 obj <<
/D [274 0 R /XYZ 72 253.388 null]
>> endobj
280 0 obj <<
/D [274 0 R /XYZ 72 177.273 null]
>> endobj
22 0 obj <<
/D [274 0 R /XYZ 72 132.093 null]
>> endobj
273 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F19 278 0 R /F18 239 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
283 0 obj <<
/Length 2637      
/Filter /FlateDecode
>>
stream
xÚÛ’ë4ò}¾"5/(UŒÇùÆÛ,pN
»°ÀLœŠò8žÄ;¶lùdó÷Û7ùg_b©%µº[}¿ÙoüÍû›?nøú›`“†›Tû^ä盲½ùå7³ø7ßÓy¶9Ñ®v£“¾Íæé懛<ßÜ¿ÃMîåI˜lž_‡ö|ožw›_Tèmï²\«o‹·ºÛoï¢,RžêöØT8Öê}_Ûßž¿¹Ät:‰\Ce^¶wq¢þS•V¯üµ‡zàg°£5}]4g(¬^Ý·_0¶f°¼ôRuÉÀ×±+mmºåÒZV_:T}Uì䆎WÓ
Ê]a‹i
DìîàžX¦a¯¼#·Aä%aÎìqòDM£4îµåi	è¢Ö±zhL·¿X?áÅ?0\ý¹è?ãkuâ9q¶<ædiæ–¡¥i[ u$NõNõn_ÙÁM¡Q(žt-L•íAðÝeµsº£7Aàåqìt'Ò^žMf þ„±úÍ
”ÆBgªˆôÚ›–GøÕ4h×u•нÐ!?٢Ǘ×)P,† õÒÃm|!¬ŒG†òÅ*Ë~¢ '4µ›Z `s¸¼=È5y"1ýo‹ºûâ+àâþ±=nã@™ÞÞ?<}ùøx…ò ˆ=Æî¬ÇÝòCáO!¨…
4DûŠ\Ä¡ržbó»Ÿ?"°6k:ï“G`'$NuÕò¥¢YÇI	´zÛY¿-3iênZfåÅ­`Áð88SÒ¥wsÊÚT/lµ9»ÈÜ€ÑTâAÙE±áªëû€ïCè|ö¼0†ôNxrALìc*‡¥9Ö¤l0&•%‰;ùB_7{C²?Ü5Ô])ûDŸ‰-Lr)-/‡'HâÛÀQ`é…ê²B¡ç¡zÄŸÇçÌ™ªKwÚ0¤jjÈ›{UË
³NQ¤Ç)mÂd?‰DñpÑ}9kÄQ¾Ž‹2¥cS|„¸Ì‚ÆSf3Ì,èŽìh|:pè=ðpZ¹º ןJÒ†8D©ÓA­
Æ{þœ„\ðLIÈ×»ÚÞc&ò;áñ¼k	ˆzYš¹„8Áü]s‚”¸_qf#N•`
þq`˜Ø°	ÇQEk	¬	8$Wh9¨Òy2pu²Þ„¬“5$$)ÄE8KYŽãƒ¥ )×ùèt'ÌR¾#Ì0ƒ¦9%Ì8la̺dŸ—«gÊfxqÖ/FÂ&#ÌÓÉ· ´¶rß”JÎ ˆÃ0y@ùF4è©$­‡Š9ÿFD=È2;‹QHgƒ¿¢úÅQ˜/zväœSkȾ—j¥y­Äà‹PÇŽß 3*Ò0pîæ3ÒWXêJOrF0ØW<$Ó
©HDì 	†Rrèy„‰]ruˆx1w©„k,hÑÕ¼gz'‰;»þþ›]ˆkÃÀ¹OY¬Q6¬>ш¢¨Àh÷Éúó'4ä H84.Çk¸˜Œ‚ÔÑÄ*IX¦0Øo52e‰‹:ÊÕ÷‚¯"; 5ö«°»Døå"KÆØ—èæœBPôrai:ŒÒû±/^Ùq¾¥,ÜëáË„>qUwÕõ~‡Ô™x>ÜCq^äܦape‹ªÅá„ ”¡áŒ7P²Ôá.öctåšSPJ®°Ç30ù§?1°Z7€ÇnGV»x°[~}-\(¾þ-C9{½Æñ¯b;ƒ,/uõYŽa3@=à<"¥â"•(çžìàZ¨¢Àó½ê7|ß{Ï4笱1¦Xðž»’ ‘„©—‰ÃHfäLÍlËpGÆÍ€t`p$}eÑïÙ‚œM17FGÌ;Œ!ÍþÔ[TùbÅ=z–@]M|â~Z’9GÄ…·jh
yû —Gr%©‹M“æV’-RÌ$ã~fΚ=&2 ù¦lÊ\rŵ°,Ö=§ú2%ܨ–¼«çjÚ©ë{ß{
ø@_½B	*xï•T+S²G¤w¡t".„Ê—†L’A‘_P|Bðä’e Pš
6=ÿkŠ×0™s@:ð}›J	‚dï&Ýå“O[˜ÚÁÔM‘ËyFÏ„=еžáas•{I–¨³DÉ+N´î‰Oº5…‰¦vuò¢ÅÙO±ñ¸:¨©!u=Çu“uÊÐѯíbN¸QM!‡{¢ 
_.¢b&þë0PÍ5ðdQ1bC	•ôüé¨Äök6lÒë¿j'€4¾ìâyÌtø¹Sy]+[\˲4oa^é÷‡µåöèƒCŠ7që%JÕ»ºw¤M»ïêGJÊÿ7~—KòTJrôÖƒ€¹}©ÞÕ±—s'%Ztéç¦Aô)F¤f—”KÆ!s- nÙŽp”Ìí±uwsúóÈ}¿~¾ù´EØ
endstream
endobj
282 0 obj <<
/Type /Page
/Contents 283 0 R
/Resources 281 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
>> endobj
284 0 obj <<
/D [282 0 R /XYZ 71 757 null]
>> endobj
26 0 obj <<
/D [282 0 R /XYZ 72 683.65 null]
>> endobj
30 0 obj <<
/D [282 0 R /XYZ 72 601.854 null]
>> endobj
34 0 obj <<
/D [282 0 R /XYZ 72 342.498 null]
>> endobj
38 0 obj <<
/D [282 0 R /XYZ 72 193.447 null]
>> endobj
281 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R /F24 277 0 R /F25 285 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
288 0 obj <<
/Length 3170      
/Filter /FlateDecode
>>
stream
xÚZ_Û6ßOaø%2U$в¤¾mÒ¤¸¢IZì⊢ímqm]dÉ'Éñn?ýÍ?R²£½VÃ!9‡¿™¡-v‹hñÃÍobøF‹x‘©E¦£0‰ŠÅöpóûŸÑ¢þ‹(ÔE¾8Ó¨ÃB¯søÖ‹û›_nÞ>ܼù Ô¢‹µZ/Y†#.ÊÅï
W·y¡ƒæKÕìV·Iž†?÷ÕáX[¤uðCgŽûÕŸ?¾ù§qz„‘‚õHXŠ#n"Qüjå[{«“PëÜ-ÿV·q¬‹àÝ©ÚCõ—×Úí*QÁžUèí0£@´¸Ui¨À$$ï×½m`øº MÀgQ	Ø[&êªw]=|³(ØW«8Øíëj·_©,lù;òqι*wvè¹±]©<Ø›f'CËßÎþ%©ÝW‚*ì­‹§©
~îÌv¨¶¦®ŸE㺢?®nA¶u¶ƒ(g:‹ÛÇ
ÇI¸V²ámÛÀjzwê̦¶ Z'yðþItÕìê§Áég¦½úloà°¦@ÔU#Ô¶­ÛS×sÃ4%g4T	2ã`ߣâ<8Öfë%þôÏ\dCÊ´µô‰.¸;8`0ôž¥hžXû¶bÕi"hÚá4`k^Y¤é•”ž»yЋV#ƒ“7Ìþh¶–y¬4xü=£–nxœŸðtkžªkÑÒ«ƒí©ûŠóñ\@áàû¶y5p×cÛíÈ5q|+jtÏÌhO2ê¼7³›¦%רûºJשjtfŸšÒvHz×Í‚¨ŽÉÁlzîÝx?ëñ0éX­ô}4Uƒ®ª×ÁÃ
ncË“{k¯$£»'âî°Î#wnŽ—„îÒ¼åăö[l#Ñ­•žJäùe–wÇcý¼œ3Çæ4-(Kðp:I®ÓØáÓ§ðí„¨(T…vcÂï`Ï*
öxWQç˜îeG
ŸnVòmðN¸n[&D¯ÊTÐv%Z¶ãVßÊœGþâqˆÔJ–iGctµ9¢ÁòXÝ{À%K˜ÅKæ°äx½@Z)â{`ê\‡£½nÓ,,ò/­&‡›$pº
‡öˆ ¢S4@Ï<†¯lïðw‡xÎóÙ38u®†}%2ÇÑx0Mtg¥q‡‚剋܇¦#ƒJƒŸÌ1 °uÍ÷víAL9ÝH¢²0;ŠOãUþîçºÞÜ1ZÁ=íÄ•ˆ³º±2x«rë`º/=Ïàˈ⌘ ¦”C#¦1æà(&pfã¼Z.Gá–ˆZ“)æp—…0	¡aÏ·Ó£DcA‹ê
=ìl†2™Èado†9éñÒQ
2T˜ùæÃ@\Ô…µÐë‡Y¶f½?P<ë‚Ý3¡í:¨íðJà¤L' á/næÌš¿FhlHØîOG¹Ð½õ£é3¹*{Ä=t>s¾‰èÕ"3ØÏO8Ò€/²ßcÇvÙÚ¾‡ÍÏœgwj`ŠZC¶)_ZS¥Eðxj ÉÂ(l\è¢["à¥JØáF¢£e4†VI'°ÿ`Ü=ÄQôñ{h;\±Ào{tÌ×èÑpúÂ-=»ù0Útl8j”-ëYɆÄWüådE×m8gñ<dràXRÁ	mFïl™>Ö­L_~jÙ2tç€QŠ€áD+N­ÈÿJFÒÜòjΫSov`Ä¥øÔNÌ^Æ@ÁÆ×
¦ÙJ/9–QœkÉU/Ýi³ÝNJ†“’Ì%%Ìáåà
·)ÌCÓí&—Ýà䎻Ü!ïÌ	`]r—墢(êí&é¼_,žó0É­»#Ž[ÑAá’“àKGËÑÞªÎRÙ=¦q©1toMogámÇ*EŠ”¨ÄGp \wT¢°ªæüxœ¿qëVÜF­0@‘c|aÙ8s\µ‚R[þÊöh;SGÐâv?Œû!ëMKI3†
ÍÚå^@ËÉ£TbipáõEÊ^㤺sØF%WQ\µe\µI¯/ô7T‡•ÓÊ)¥m#JˆKŒyøñÞle
<˜CysR~µÀ¦óµ$ô´Ü£L`Tºe]ëùØ(!Rø# WR9ÃÊ'Vš„Qá”wmƒ	ãíûp&ƒ>U~èo¢XGå'úDI4ãu9ˆb?CY;ÚW_ž#GÈg^2\Ï×!Àxç‡VÆy¡Çtƒš>)¥›æ6ÜtA¥ŠWÇPjº›©æU”†qþm1ÿ•ðd2•+R‹ybrW³eÎLe¯òPÅé´²¿VÎñÈ ÄÇhÊH8«æN½ì^\|
ÿ„ðàš!DÊKcú;âŽüþ±3ï¶×åÚ¯ˆ’„7…ƒÅ‚7#ä…†ÌÍ$ÍŠ1ô8OË
)&}N…Ìe_@lPð³,wñxA"‘º™Ëº1K‘l6x]‹Iès×xº°áâ¯bxýâ³Ý´syØ`ø€’ž/>”˜øV«×Öø<ìß•=K2EšŸI§ôÄ÷RìÞ@X¢‡-…I/o:ö¯ýÅà(ÐÜÞ¶]c;é$+O%ú{óA‹ªc
ƒ`{3»¾ÈH<ÆäU¡aïiûO½½‚áC+¼1.“”DOú¤-áXÛõƒ{Ç8ù˜såÓÇS4ëÁŸ%„'9?’ôL3hð ÐäNòiŒÊ¿}H^ÕxaN”`Òœ›‡¯‘Ó'l+€HÒ\Ú
:³×,g|ÖJr1vþÒï1s·{Ã/7_v~±ñEˆÞ
W^’õ(¦¶;(]Uü·Ü³ÏA½´¦ÆWhy¢v±wÜ9Ö†r»'S÷-ËÿíÓñ}Eõ·Ê’1}™q#§wÙ‹©™A€Lâ)ãw&*Où©xî¥ç—‚^D”ô_«0­y:?"c!ed(íVôl¯…JÕŒ¤\Ï.~¹t ¿TJØç_¹´vÕ	‡âg¦ðÉE¾ ÚôFÒЫp/Z³kéÄów•¿íК<#j-¿kvøÔ+Ílípi„û–m#:yÄ@ÉU¨è"~Æ0ÎÀ‰šäðŠ~DââÉS9]•Ê] î]'*™KT˜9þ®òƒö§ñÉS­ù7„©¼„r¯Êá…E]Ò¨’ëühn¯£èÀ…šÖ^˜½ÐÓ"TŒËï«*:‰ÁÈa+-yŠK[å*LäxozèèÑQâ"ãª}+I$eNnÞuÇ)¿(æüRBJ8YœÙR&òÄêÐ;#ô\¡öôÿE¸ïû‡›ÿüJÆl
endstream
endobj
287 0 obj <<
/Type /Page
/Contents 288 0 R
/Resources 286 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
>> endobj
289 0 obj <<
/D [287 0 R /XYZ 71 757 null]
>> endobj
42 0 obj <<
/D [287 0 R /XYZ 72 710.559 null]
>> endobj
46 0 obj <<
/D [287 0 R /XYZ 72 591.369 null]
>> endobj
50 0 obj <<
/D [287 0 R /XYZ 72 330.076 null]
>> endobj
54 0 obj <<
/D [287 0 R /XYZ 72 164.186 null]
>> endobj
286 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F25 285 0 R /F18 239 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
293 0 obj <<
/Length 2848      
/Filter /FlateDecode
>>
stream
xÚ}YYoÛH~÷¯ü2`Ó<š¢¸oIv2ãAfÝØ12ƒ E¶%"©é&cûßo]MR
½/bŸÕÕu|UÕŠVûU´úåê﫾Ñ*^åÉ*WQ˜FŪ<^}ù+ZU0þÛ*
U±]=ÓªãJm¶ðmVŸ¯þ}õþáêîc’¬Š°Ø$›ÕÃÓPa¤²ÕCµú¤áúv[¨à}Ó­oÓ$(×ðó
šÛ4ø§îõú¯‡ßî>ÆÙŒ„Ú¤a”ÀD`ƒ+®"avu+³·*
•ÚòšÝ:Ù¯L´lê»ßêvÏ#]‹ß$膮?™=°•	ì¼…µnx¹æÙ^ïdòÁoЧ­3Úê¶4LN·Ϻ“.§Ãž.kÌÞðÊ$0í:ɃÞÖfŽçkù–À&ÑÛ®iŒ¬ßáò׉ H¤p§á&)øêx ïùld>JƒkäÆò°«'Kݳ `æ'ò Ñ,ÓÈ~bw˜ÞqK7§ƒ_Õƒlci^eŽnÆûZníµ½çº?\P¾&1‚¤Ka¼ïxÝÞôKvÝÑô–wšÂ9¨¿;*hêoØ5á¸qæù†7~–cËúé•·Ç^MqŒl—æhXøjþ´æ™
_½Ô}ݵȘž-‘/ÊTN>Yã~èmsû‰ÛâÐzEŽºÁ
ƒÝà„#,"f<óµ‘ûŠ€œA(nQéÄ:ðì@ð
^/)À«
2iÑÖú=óx9XG Sý`[n¡6º:^¦yüþÂPIpÿ$›È¨pMÅ"3®ý©ç¹gòUû톻U7€p{DmÞÛµžšð+À•ºÌLŽú3Ê"`mA"·iž€àÚ¤×÷bc IØó<#Yžx$ƒ•^0È
¥3ã–¯¹÷LhŒˆ§y²heÂ	˜ŠÄ»¬˜Ì('d(	Š'zñŒÞD&{ag\Œ
(N:B0À£Fçi¸ÝyËFJÅqÃs…¤Ci-[)PØ
}ï‡Óãx¢VqY–` ¦R[I’p׎“,x‡WÈ88 *µ{³Àþ$“H.ulª"Øx@Cb·EßžC¡vÜ–µ½àï7é¢H±QaæÄ#‚чI[Ø@d™¥§~ÄÇMì1-bÛPp¼Ɔ}ãc,΢›¬6ÂAýÄ_îP` Fwâã8÷ÁäÌî%KûdA_ˆ
f‰ÉŸ öÌ%ÐE¼ŠU˜ª×¤v
SÔ 	'eˆ*ðƒšnßHÊPÛp“Š.PƒEì<.zS1
›ðec‹r@éöšÝ~¶–r8¢,›-O<ØÜ…ø $}Ì'í	¼ø–]3[÷Æ[v-€çínþ눀°NŸùaº©ðœ_{²Ý‘½€=gdü¤2'¾diâ{íÅzü=Rl³š\²š”aS™	 †óÒ[]öÜù%ƽ˜
ý
”À5§eÖõŒ¥­!qÎÀƒ4·ƒs†ÿ­h?GíçŒÜ9‹=´/¡a~TÕùøãñÍà1··$KÂ¬Øø*àwÀÿ iÞÝOëüÜöwï>¸¿_°Õ8ÎB•g~oÈG6)û³ð—‹„xð:
ëk’¸Â6Œòø"¿`NƒO–Ù|¯ß#¸^xŒ£®é7)ÇÈÜë"ÙÜëXh¹¡,!ôH2ˆõƒÿ3Åb#0ÿ,Ë}€‡%œÿzÐÌpòLJ5”Ïæ\rmø–dÞ²˜)¹åô{ÁÚwÈÖÂíÑö½(@o¿3í‰Sô€Þ«¦áVS;±öÃ螀Ø^y
=sîkd}iê±Ç;±r
|Ñ>Ö켃sCtdÂ	"Î\\œ«©Ó˜Ä§RþÁAÎôóóg”EWtC_­€¦‚
æÚQÁ#Ÿ¼d\_Ïeìã{¼PÔ9¿_Î÷û@,RñÄ´¼.˜A.®éPµ bîÒá+¦MࡎGX@Ðx¹õ•Þq“³ð
R‰Š88ÀPÛçÁahø*=g–ª&ØAq+hñg˜»®Ûʼ\Ÿ¬¼
̯330?蓈ø&Ý©3=vnûüj4fÙê¯ì•¥m?V«Þ{0˜EE=ø£8Ám#Ç<Æþ8Ë…
*Éì¬ì‚K‰u=ySr„{#~+”Içw9ê™síæ†aÁ“‹_¼­Ï#g6ænÑ߯k6Ú 0ÂÛþ<̹Yå.êqªó¥9ìš«.=WÿD²aŸ“ö± n<÷Þƒ”·:;;š«ˆGY¼3-Õòòƒdë~RŽà?ý…#:Ï­í­ÐÅT¢&œÇNÙ{c“#/¶žkŠ#­7ˆ@90­æ"“ÚÖt"ýÕC^ýÔÆGb{oð«ùCÅc9¶°01ûp!à§êç©:ø?Wu‡Qÿ+ee?FúB…Y:>r5G´•¿-TsÐU…_<&ûÆôW¨úïÁ[¿ž'9_§È²	üÀ'yÛŽu
{ŽSuæ?¶ž-Q—¯—³Êk®ø)B.;ñNï†Sò*/”ÅwøðÓÆ6z[	ž0pÖ`èÇ5,¨Cî>pö¶•Ô‰¶Lò©ƒý¾žöKŒ‚â¶EGgÚ2
уkqÎø7<ÿx㨸ñS½Ï¬ŠTÿÓ•ª†\/5ÖÌiÂszÜŽœ7Ë·'%…Ó‡I¢P2IÉñ
ïII2´Ôܼ]I)¦øÞ¸ºâúSžÃ*vê–¿R«*Ÿ¬:*+•Ч‰ƒ&T%ÐD{ÓºÚ«‡\iëS?Rot»ô^&Y?ØÒ~Úú¹ÅÚ'º'þBárà㟆¶Ä"Æ-©b7Ô
ȬÞðùÃâŽù½|¹º-›¡’).Û7h*ÎLj’§tU	)bphúú„ðª¨øÎ‹Àý=PpÄíRÔw½Ì™C:\û#IÌwèIs:Úœ¤¦
ÂÙÎj4Sœ )À÷Ž’Y¸8$"ã­ˆ
[“¨¨ësAîQ8zŠsXˆWn‘ÓÙzv†ØW2ÐØëãQŸÓ¦wÊ"øÕÈ3{_K¶
_´%|XâV o|n^—®5´M}¬¡(Æ*:Iùi#-ƒü’ËèiáãB1ýk”úThH¶[H…ÆÒíyè¦Gȉƒ=zéBB}Y4,…òPér$ÇL#Þ
çq˜lÕ¬nÏc5²¦’)¶æ¢ôe|pÇAy¦¤Ež)q8åÏ>°Ã8úcÇI
†\™#[=[Ä]|÷æÇ ñ½Í~¸úÁóœb
endstream
endobj
292 0 obj <<
/Type /Page
/Contents 293 0 R
/Resources 291 0 R
/MediaBox [0 0 612 792]
/Parent 243 0 R
/Annots [ 290 0 R ]
>> endobj
290 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [481.982 523.291 540.996 534.082]
/Subtype/Link/A<>
>> endobj
294 0 obj <<
/D [292 0 R /XYZ 71 757 null]
>> endobj
58 0 obj <<
/D [292 0 R /XYZ 72 569.991 null]
>> endobj
62 0 obj <<
/D [292 0 R /XYZ 72 509.278 null]
>> endobj
66 0 obj <<
/D [292 0 R /XYZ 72 209.992 null]
>> endobj
291 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F21 241 0 R /F25 285 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
297 0 obj <<
/Length 2374      
/Filter /FlateDecode
>>
stream
xÚkoÛ8ò{~…?Xùk©—%臶Û]ô^Û®‹îâÀHL¬«,yEº‰ï×ß¼(ÙŽÚæî‹E‡ÃἇV‹»…Z¼½øã"‚¯ZD‹<^ä©
U.ªíŧßÕ¢øÏ¦e±¸'¬í"]ðm.þ~ñêúâÇ«8^”a¹Ž×‹ë[¦‘†*Í×õâS†ËUQ¦ÁëÁh×twËUR$5Îòè¾q›¦ãñÛAWfùûõÏ?^EÙÍt„*†C‰bŽJ¸_¬du•&ašŒ³[®â"0ý®5¿©,Z®ÒHº[Æyp¸ß˜Á0ÄžFQà6¬µÓ.yÐ6Öñ"PS÷›¦Zù
/n5N<¹áƒÙlwŽŽ<æ¡ö´[S	Q’axgîAbë|¼ò¦Cú{ž!Ǽ)E1€VQ®ã’ï]7¿©$ûÑ Ÿ$ bä™´éoù[MJIR<šÁ¢ÜÚ´-Æ‹ád7+G˜ØMÓ,øç²HóƒÇ¿ë™¨ÛýþnÃ@ñV8茧‹!«?NQ–Y£þá’I–ÅhR Ì(гàn̳à¶¶Ë$!®ôŒ…8c%bºÞÈém¯k‘baóe™­ÝîI%,„®îñ²÷Œ1	…ͬßñl/_0°Îß·±¼§±^´¨vÚ‰Gqå0Y„y"LFg8ŸV™RÌ:[b’Þ,­3;áAøuý‰
+âŽ<ôÖ83ðtk¬XÖ‰}+¹.ybo›ÎœQtwgNì8ÒÛ]K¦…348ÞšÈÇñÎ9Øí‰ý²ì‡Fß´†÷Ì‘}¥ÁŸ{ë¼õ:Ó]òø™u‚ºç‰màìÃŒÝ:¯w}c«ÆZ}&â•ç)ŽÂ¬žâY=üÅ<8á…Õ³-ØÓ£ÀÈñvÇlx÷#Ýàà€NÐïGw:ûV³m>ãª'Û{äóê}eÎøS§ì'³ìÿòÛg¹p
{`—Ö<'6ª~»e?IJßë;ƒBX£ÿ0Ø<`p°M/spMQrÄ“ð1¡wdu8Ý[#˜¤bøjëÙa‚É:×4«¯š“HpŽã!YæLŒëzã´ÒÝŒá0‚ÙïˆdÀ›YŠ¢sHaC"Éí¾«â)F–Îjé=꘸o,ÉYå̉ŠNås–3ü¡û Þ‰œÀ
<Þ¡;I`8éAÛÃùBËm´ãјóp2IJaþ25çÛUcÚZ6ë[5_Ó’Š@Θ™qÐj¡Ú¶Ä8€Š ¢l1ÈšæÀF"›;™ÒùEpµ„ª‚®	Pó€!ɑ斡lÜ‘wÆè±ÃÂÚá~¨…E, ‰×[EÈVÄ’`´éɉ¹~8g1žKßSf‘­0ªÅÂ$A¹3(M‡ã€‘NvÀàSÝ€­¶Ù>Åb³Y‹ýQ¥°yYï(§yJZ PU™ã±dXi”Èi“*ÝVKLí+Œï`GŽ™&b”mÉWPÓN©gªÅ*t]¿b‘‚ÁSá“
M¾H¨Åí ¹GÖ*å¥Þ»ÞcgAÙ3ÊÐ+c*©H^ C¨dT~šê_™v*0¼ ÎE7#²`ûüÿ.ÈàzªvmïxDµXªÊ :T­Ø-5¯XNúªàì¤QL_(4=_®2(ïßC!EÃ,ø`„îÇKÞüÁéA@\o!P»çR§GuZ\BëE¾ÔW3¥”q AÀ€•k0$€|óŒ\…E±öâ?íš™Sb–Ñúì˜÷¦»s›9šé:Œ'š‘šc<ÊÂu‘O$ÉRì·`ý$||ñÌ׿¾˜;-“<õ”@7Ø•> endobj
298 0 obj <<
/D [296 0 R /XYZ 71 757 null]
>> endobj
70 0 obj <<
/D [296 0 R /XYZ 72 671.094 null]
>> endobj
299 0 obj <<
/D [296 0 R /XYZ 72 613.712 null]
>> endobj
300 0 obj <<
/D [296 0 R /XYZ 72 578.484 null]
>> endobj
301 0 obj <<
/D [296 0 R /XYZ 72 556.885 null]
>> endobj
302 0 obj <<
/D [296 0 R /XYZ 72 521.658 null]
>> endobj
303 0 obj <<
/D [296 0 R /XYZ 72 472.801 null]
>> endobj
304 0 obj <<
/D [296 0 R /XYZ 72 401.694 null]
>> endobj
305 0 obj <<
/D [296 0 R /XYZ 72 366.466 null]
>> endobj
74 0 obj <<
/D [296 0 R /XYZ 72 334.362 null]
>> endobj
78 0 obj <<
/D [296 0 R /XYZ 72 220.206 null]
>> endobj
82 0 obj <<
/D [296 0 R /XYZ 72 119.125 null]
>> endobj
295 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F18 239 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
309 0 obj <<
/Length 2242      
/Filter /FlateDecode
>>
stream
xÚËnã8òž¯|’X#RÔk÷Ô
t=Ànv;ÙSω¶…ÖãG'ùû­beÉq§0 ²XU¬wz/ô>ßüu#àzÂK¥—ª0ˆÂÜ+š›o†^	ðß½0Pyæ=[¬ÆSIßÚ{¸ùïÍÇÇ›ßî¤ôò Odâ=
B{¥÷̓í.Ë•ÿQÅ6’þq»‹²È?ÕÝ8Víaûçãï¿Ý‰xÁA%QJ¸ÂÒgˆq²¬p™ð„
"•HÄÝ1òNER_¹Ý	†|¥°W&é{W†ÞNfA¢ˆþs¯4aìÓé´…3¿ëÇ@š>µîŒÔnaj¶2õŸ9õM‰ßí	¡èšF·%V-Óu§±êZfû|¬
äsä[êºÃí3mÇ#ÓLƒc>v޹½ì»úW³ìF÷ºu¡`TYDA"sÒùTƒÎ!V€)C’¾‡^ŸŽ¸Q©ÐCטñˆî¦‹ªñØM|vèÈ׌1ûn:ØHlÎ,ô?ÿïË-H¶Œer¯Z‚i
E_FYѦ§±kôXàÝW::˜Öôz4„@¦Æ[r	!G(Gjýز‘ÏW`@Óªu@_–îÄXuotùzMAˆ™?ÂH¦Þ`TFÑ*ü"ÅÎøÙ¹°il Ÿñ"p†³}B~·Böt6°·õ0>›Öb0c0-ß@8
È6 L•Ê"ÈãXrªF*ȳ¹¼ÌvûUsª‘_
ÙµÄ2Uà¨ï¤~È-óÅÞoÝ}Ÿã
…Ï“¹0ä±õ8­H‰|™å°Ùú',?`”ãfßwÍ{È\,ÛºfMQËŵ#ŠÔÑzu?B¬(ár ³Õ§œ¶^ù>s™Þ!U”H0V‚8¡@ŽSŠTØ“œ°°Öì²^ÀaNmm†öš1œj¦©øhàòSTxjJ LäîµúÀ]6‘y©F(5±ˆÐTŽŸõð0Ònßõ
ëARC…ïWˆf-0S®ä-qË@DAQ¤$2±:Їþ–ñ0.^Y­™a¤iBè*p<¡[ÒZÊQ÷Ê<\ ãí†ß©Õ„1¸°ªõ ÒÛ/—ОvÃë04…ÌsÒ¡GÝ—Ew²3õitMŒ„5½4Š1ÜPâªäã™é ã@NØ¢Ðÿ0SÃÙõ¶”²e×ò aKó£*øÔ†ZŒ>Üs‡q®¢<‡"»£k™¼è¦š™®‡nvVú®³f­{w\Êóka[…Ƭ®s!ià_(´p÷/k–äšõ¯©«¹jQõÿuºß¦ÅÄO2L>àµáhZ£[ñK
B©2³®	Àw1)Ö2\íŠ;î,-‘¶Œã¾Ä”ŽŒ3ŒY4_äNuÆŽœU
Ðñp~H³”çdá¾FU}µKéªä©FÅй*ö¹*W `a©ë挆õcšá=‚qÎr(¡\Ö&‚b^¼åÞ.ØX÷†@'ÝDe‰»¾´ÅRÅ\絚åJA®¸KkÒ‚£}"{V5‡úÜ–LßWeiæþŒANë³NûWn¸¶´5ž]µÁjœö„DšÙé7ØìâçÛ.qð³*ç¶Dö¶Ã*ωV¤}~ž²íŽ&†9ÈâÏÒðw&žˆ`3šºžé]ëƒåqž‡‘¯nâ<ŸÝœ„$\G1ò’¹ÆÎÜÐ`„bn]·:b¡{˜í ‡dKœKv*Ωh~5ý©7Ü'Ãeääþ†ÙlXFêò°*;ǹ²6Œ}w[xÙÙÎ͋ƞ‡õ.Žh„ŽÃ•ŽóM“/@ÔÊ(×òŠ„)qtPÖqJØw
n£$_$GìAXq¢x¾Ü"/"ŽHvX"	øb
‚mf#"
Ìp™©äo ÜÎÄ-lïÿM?6Dg
¬À:ÅÕ¾ÞÝÎàš¼®ëU·W‹Ø¢™xA¦s?¡ìTçFÖ›½éMë:EC¯à‹´Ù¹°’"ˆsL^Í­‡•­¬í¢¯êîI×+‘/Ø„ë[¢¿u‹ÄŠukk*Útbƒçve.é—zÔ´¹Åò êkÉåYZ¨ôÊ¿_š{8ºž-—y­2ÔÉY˜}ç^Ènò¸–ƶÿcm
e;éÊ`“ÚŽ§Wì¶Ùq#Œ$¼Ð0…¥„÷’±=Aô¡w±d	¥ðg*yþ‡ sºö„cgx~¤‚G‚†m0
µÎé),ñO`ÁÁ
¶KJv± s˜­5V¤av9«¹°¢¿‰ç,‰€o$B
÷ô3Ã=ÔKË"±à^À$žˆ—Aeþ‡Ëc+|9,zœûmTüÓÄöAá:6€æ‡È‚ßÁÿ$õMèn鯊™d)‘µStYQèYÊÃÿÍC°é:`#ÿã§;ôÂý×OWžõjìUV@N’¯¦1«@™³Ð9g0®Á%ޤÌÄMº<“
0wñÿ9o<™"Vo=Y¼ïÉ¥ƒaS¬žD¬Ãã,«S'4ÌÕzÈ7ýBЕ‚o¤D˜²ÐÑYèò§B¿©ª³ô.5/åw%¬¼À¯ÚÓÄú’û.Ǩ…h{šŸ‰öeïz‰.ç>å:ÍSM¯Xú—‹ßJPz9
 Í[w°¥ù‰åáf÷„¬^^7ËrÙB‚ÄÖƒö8¶û¿61øwQg'2á/Æ3IC×Ûj[N5Œ•L1”fA(£Íü‡ëùAÅ-¾%9`õáîñÓWfMf€OèÒš˜VîŸÊ~	ˆ‹zD’Ø*±J.Ú	Žèg‹P´SÅ\gìô4Þqþ·ÍÍï®§ªyþ`m@\IÜôš—?¸»¿FábcsÓ¬ÈÝ÷ÓãÍÿ„W;¬
endstream
endobj
308 0 obj <<
/Type /Page
/Contents 309 0 R
/Resources 307 0 R
/MediaBox [0 0 612 792]
/Parent 306 0 R
>> endobj
310 0 obj <<
/D [308 0 R /XYZ 71 757 null]
>> endobj
86 0 obj <<
/D [308 0 R /XYZ 72 710.559 null]
>> endobj
90 0 obj <<
/D [308 0 R /XYZ 72 615.196 null]
>> endobj
94 0 obj <<
/D [308 0 R /XYZ 72 457.787 null]
>> endobj
311 0 obj <<
/D [308 0 R /XYZ 72 373.148 null]
>> endobj
312 0 obj <<
/D [308 0 R /XYZ 72 310.662 null]
>> endobj
313 0 obj <<
/D [308 0 R /XYZ 72 289.063 null]
>> endobj
314 0 obj <<
/D [308 0 R /XYZ 72 253.78 null]
>> endobj
315 0 obj <<
/D [308 0 R /XYZ 72 220.6 null]
>> endobj
316 0 obj <<
/D [308 0 R /XYZ 72 189.357 null]
>> endobj
317 0 obj <<
/D [308 0 R /XYZ 72 171.19 null]
>> endobj
318 0 obj <<
/D [308 0 R /XYZ 72 153.576 null]
>> endobj
319 0 obj <<
/D [308 0 R /XYZ 72 135.962 null]
>> endobj
320 0 obj <<
/D [308 0 R /XYZ 72 104.719 null]
>> endobj
307 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R /F24 277 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
323 0 obj <<
/Length 1947      
/Filter /FlateDecode
>>
stream
xÚ¥X[ë¶~ß_!8‘ƒµ"‰”-ÈÃ	,I‹º(Š$´MÛ‘%W¢w½ÿ¾s£.ŽNzŠ8Î‡Ã3#ÇÁ)ˆƒ—§ÿ<%0ÆAlÒ`£ãHÅE°¿<ýò[€ÿcGºÈƒ7’ºzÃXÿxúûÓwÛ§¯HÓ ˆŠuº¶G¶¡£XgÁöüfÑr•:üθýR¥áy¹R¹
¯Uã\YŸ–¿müú‡$YÐkÅ)lAúJ<ÅâëÃf+‘]iiûÓ(Y®’Dᇷӡ½›Ëµ²3»ÅÁ*
82)ÿÕº/;ÐQyèÚw$ŠÐÔ<ÚeÞÁph€@sp4½ŽÃ-á@–eÞJX«*QìºÛŲµŒYxîîh‡î,k¿ÆJ·c	ͼæ(Ïå~™æ7`›V6r
3vË¬Š¡ÎÞ„QØùŠÛºroÈ·wtW\0µ‰/ùrtgŒÆ&QÑ:•Ø”ugÑÉ|$î@>ÀŒ•86·Ö!,ëxaÑ¡,¼•ÝYdEñ [W¶ã‰‰Æ—:ŽÃ]O'ái!ç8¼·ÒÌŽÜ>µæ*Ë7BÍøbNu‰nQ,×Ix¥h7̦fÝŒäœ<ƒõþÞoÄ7 ÷
GÍ€GÈIÃÎo•+›"SÝ.¼<²mœÁ[ç
æ–"exØU
9Ghù86’æÛæ2wÒÌ4¢nÉ "šîN+¾oä\ÌÇѺáÅý­e¤ñ”6¢õþHÈNE¯N3Ú‘Í׆º6dÙ¶mZæÊWÚ¯æé'ïc㬡"ëÌC—Ënê¹-3híµµå+¢ûÎRxÁ2ò°3-$¼’l-0汑U†zY2ÒØôÑEy¨ÕŒl³’ÃlÓ0ÝÚƒD~³8~ŽaH¦º¸<'¸€X„·³=—r†=å1°ôA0û}™
|âì¡|°½lm6k–?÷v‡‘N7*\ñÓ°w»gÆÂ´­©O–gè˜~Nž#ÿûù'þ¡«1Qßß‘Òðh–„zž­$"(“ˆè#ÚQNÞ­CÜy~õùÙ÷÷ƒì°¢sñ~*L¿Ñߨ¹xø­1)«/kî°í@á"„áójŒŒ(ôœ¸zçÑ'4¥'ÊúaL¿¡M[ÉmÅ“!a‰È¾–öíJi/EIÆ‹‘’1÷c>wç?5]Õ
0N>E¬¸À«Ñ­¥76@0®cY¨T­è{;±Lé9MvˆY‡€ÿ¬Ím‰¯ï4=|,w7,½X°±Aªµ¦¯1W[%]¾³ÅŽÉ©-œN¶Ì¡
ãAÆ®¹Xw¦úŒSŠ[,Ç{×"Þ‡'
¤$3WÅÁNqÞôm\Z¬lE)™j†ìByl@)N/M+ÉëèÞôÎ@:«½[Þð…ñ@íx6ÞœëõÌuÞ:)|Bf5çsIZpWü£ÃFêÑõ&YI:}å¡(reÍ\ÃCiå32í­fáÞÆXLZïa
ˆÚág¾Ö/1Þ|RL§ùH¥Ñ&Ñ}Nì¿âþ†ŽÜYü_s[|ÑøÎ`ÊŸ´÷røîP˜á¹Åjl|¨í¿ãê°ÛCð“Pl¹ê4C÷Ûý{ÒOqaŽ¡‹{¸•®Ä³ù¤6CœïæÊòýBÍØ§N0q|Ò¨!cÑÅ‘8ô­ø ~%8ºø¼;KåÎ&ßûŸsgùÃAgM,óŸrÀèÌE(nÌGKм¿–ÍMØ~;ZÚôkªN,WFòyÅs1"wÂÐÖo9ð‘¶’øxoÔÒp/A_õøMב=Öêß	Ѐ—
’ÂÌÓ^ìXnñÉõ2\sÿ|ñÿ‘ï·Ó¿q © ”<þ£>ñ7Žÿ{Åô·N’OÿÖIᛢˆvõ‹ŸwUy2®¡¼ãw¯†~Œ:¼}[Â+µÈäÅÖn3ú–‡ñ¼yM^çBÏÛTè’³|—ü†žÓp¥«DtñÇ—ÚtN<|án7	suènîXwiG³C˜‘my“ØqÈ¡{F²˜óã}Þøâ¤¡ÆØö fȱ$±.>mÙÜ\ƒéËÎb(ÑëH©ÏÆc&›b&IsøÄÌô‰à,…D*Ššf0þŸMs\y6¡
endstream
endobj
322 0 obj <<
/Type /Page
/Contents 323 0 R
/Resources 321 0 R
/MediaBox [0 0 612 792]
/Parent 306 0 R
>> endobj
324 0 obj <<
/D [322 0 R /XYZ 71 757 null]
>> endobj
98 0 obj <<
/D [322 0 R /XYZ 72 710.559 null]
>> endobj
102 0 obj <<
/D [322 0 R /XYZ 72 526.559 null]
>> endobj
106 0 obj <<
/D [322 0 R /XYZ 72 411.85 null]
>> endobj
110 0 obj <<
/D [322 0 R /XYZ 72 335.151 null]
>> endobj
321 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F18 239 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
327 0 obj <<
/Length 2482      
/Filter /FlateDecode
>>
stream
xÚXKsä¶¾ëWÌ-GÃå$‡[•ƒ7κìZ«¯ªR©µÐ¤aÄ!Ç$h­òëÓ/€QëM.ÐF?¾F´yØD›ï¯~»Š¡6ñ¦H6…ŠÂ4*7‡óÕ§_£Íè?n¢P•ûÍ­:oT¾‡¶Þ|¼úÇÕ»Û«7ï“dS†ežä›Û{æ¡ÂHe›ÛãæS‡ÛݾTÁûÊÚªyØîÒ}†î÷mš¦ßþzûã›÷q6á ²=ü[Ðÿq„K®"v‹7±
S•'¸x'«w*
•ÚËžÛ]GÑdÏ<—=£õ=£Í.Ù‡¹âÿoOU¿Ý)à`Ûv•®yôTÕÒ3Ÿ/µ®ôíÙÀe´÷Lù¾Óó'áA'ûÀðð—(U"õ]UW¶2=è)WýºÝ⃖=.Û²èîÛî,¢!Ï'ü´žPϲXÈöN&¿/ì
À#Çi˜'¥;3ž!Ëi]×[Ð&ž'‘P5Øvæ¡3}_µ
ÛŽÛºjŒîF^î
`øt2pi/¶:WÿѶIÇúØ6n™Ìè—¼Íoü½Ü]7‹Ù•£>ªžë„†±gcçÎpÃx«ÄãáDœ}Yðó’ÖC|&‘èè¯`´{†Ïϲä“Ò+ý'pÆ·ßi«ßÜn‹·¬›5ˆÞɾøæg$›m–´âUYâbÆQæ¸s^™hä"î#­(YM(:mŽläá,KÂQ£2T	eµ"•´/}Úe>šÚìl#pWcyÇg²û©ÿzYÈ~œóC
ÇaVІ“¯ßnNE G'p:¥CÓIDiøà×¼üÂ!ý‘çØ(Â/Š—®Š÷OÜÂ8íºk©[}\ˆÌA“š·ÀÜSf›ÕÛYH¢V%ù;Þ4ŠL6…Ž>Ì•€ên  eÉ`Lîk(üÍþFCm…éu:ëÑ#ø–IO’íâàèB(“I°×ÄL>H;Í«“åYðP¹Ø‡£Ñ¤Ddq¾fal”Û'+µ¸ÉX”i}›-itÍ?JBßkúY“˜ö¹z8QâáIO‚Ý$šgºÖ™ÅN.@beçñ/Å´K/u§žZCöŠÛ“¤LǤ–À=œPj"£z¢y¸€LÄÄŽmcÌ
û($þ÷€CÔ’©é»ÚðQ7/q?cž÷“Œ H†83K´ýTÖÔç]fJZ=®«žP~!¥sÏPlНŸyØëš!|æÐ¹B]q\È1Êõ'î‘N`öÒùsW”é`ŽÆ|¶³}¨lˆŽ$7s;¹Î¢Ë%†ç™ù4ö®Ô>â&Eî3ÿ1;?¸eªÀÙž².`ÚÞ-¿ïÂ/˜Ùß8æBœò¹Ð;ÞÔ…ªðñqRKpêøöKcÈòEøk}éQVúÞso|<„­IiãZÈŽç¹Ü~ÅSuĘG tX&ñ¢Jäô•G¾.ŒÑÜ
Ó4ˆÇÆ2²à ™t6‰Mà{TE.DQm€T‡¨±°—õ'™rv9;A7Í‹ †Þ]]¿ê#ëêq2é$è-°Ù¥dÈ‘mi4Æ{wÕ¢d{k½»ý¶ÿÌ<¨IÓËL“«1Ä;U\@­'V±( ò•Q±¬©n GHÉþ‡µÉ~
u %¨@‰åCÃc3"ây*Ó{‚¹ë¥Eœ©0-Êÿ­¶pòÓ,=vð3šáî˜_ž.Iã”êö£«Hþ(†? úYOd§ð¦‡°iÅQöYXÄÉÜP=LÖ®ã¯ê¹nóyrÝþ}bËG<°°³1ç-œèøò·ÑZ)ùœ*~›f‚¶Xz/’"d
(˾¦bz‡¥¾€=§6:+\9½h¸t¸,§FC—ç/s½Ð׺BÂÿ£Îºm]swéJEyðÔUVºš›Q}*’W òÃN˃c>gC޶Üú22à­ûyh¥öŒkPI.Gv=ÏPþÅj-ñ¶®;Ðt†º|(Ž`’é%åZUÅ>ò©Ø½A@OëHºdh8ëÓ Žž‘	çm7çÃý"ò
,?üAï {ºXp²JÃB	?<âñ_\Ñï†;¬p\Di~:õ¥GM]CI~|F5ˆQõbk€Òß®<+åe˜eÙ‹W%jtôÍëoH:þFž‘ð~^ùùd
çà^Q2Æ lU÷ù×Tè7œU6Â0èŸQ•råyÐËS¡ºfŠ”jtêË> endobj
328 0 obj <<
/D [326 0 R /XYZ 71 757 null]
>> endobj
114 0 obj <<
/D [326 0 R /XYZ 72 710.559 null]
>> endobj
118 0 obj <<
/D [326 0 R /XYZ 72 582.515 null]
>> endobj
329 0 obj <<
/D [326 0 R /XYZ 72 524.856 null]
>> endobj
330 0 obj <<
/D [326 0 R /XYZ 72 503.811 null]
>> endobj
331 0 obj <<
/D [326 0 R /XYZ 72 482.212 null]
>> endobj
332 0 obj <<
/D [326 0 R /XYZ 72 462.55 null]
>> endobj
333 0 obj <<
/D [326 0 R /XYZ 72 425.385 null]
>> endobj
335 0 obj <<
/D [326 0 R /XYZ 72 390.157 null]
>> endobj
122 0 obj <<
/D [326 0 R /XYZ 72 304.09 null]
>> endobj
336 0 obj <<
/D [326 0 R /XYZ 72 233.08 null]
>> endobj
337 0 obj <<
/D [326 0 R /XYZ 72 211.481 null]
>> endobj
338 0 obj <<
/D [326 0 R /XYZ 72 162.347 null]
>> endobj
339 0 obj <<
/D [326 0 R /XYZ 72 129.333 null]
>> endobj
325 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R /F18 239 0 R /F24 277 0 R /F25 285 0 R /F26 334 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
342 0 obj <<
/Length 2703      
/Filter /FlateDecode
>>
stream
xÚÙrã¸ñÝ_ÁÚ—PUMð©yI9ÉÎf¶v6‡ÚÚLö"a	ŠÔ’àØÎ×§/ðéªy€îF³¾¡Ð;z¡÷ÃÍï7
ÆÐS^yYq¸÷ÊóÍ—ßB¯ø^$ûÜ{&ª³—ìrkïáæ7z¼¹ûEÞ>Øï¢÷øÄ<’ LRï±ò¾øY°ÙæûÄÜìw~W4ýSÛkÚ¦ßüöøãÝG•Îv'i[=íU
InBÔÞ6IÒ ßE0‰ƒ$É™:
ÔÞ—m†þãIo¶±Êü¾­ü,®rÿÒµ›m”ù¥î{†˜žéŒÕÈ÷uå¾fTÑTŒ{E`;0ôŒ‹¡·Œ*kS"࿌äïd~ÁËÃ`­Ù–ÇnY
á ;[!j6 Ü@Ÿ8€  JLjöi!&\#ÛSQE{o«â`#Ýȯ›Ré®sX<Žä¨Ú9®–ÇÀ ‘'þGŠ`²¯lÏࢦo›[´ÌäígbQˆ®ø£3m‘xr¤ô^‰U莉¦a|›À w¿Cd¯k]Z6L@ýÜ6l+þv¡¨p÷Hx‡HüI‡@ÈÑ4dû©ë‘Y\¸Ÿaûn!yœÃá?
<›ê¨m°vœ¿ÒyŸÙ7*Žºç%ï‡;´Ý ޹ùy3ó&¾nGÖ2P\H.þjÚ¡gýVqa+¯)7ýñ|0[õÁÆÊ½fáÜàp9å哹+çj|aœ•Z0Ìv’šeÿa€Xyl,MSHDÆvŒcRe$¢ó§5OÄ„…9‹¹BÊ
–˜=1Á,(¸ûæ «}ëkRº€E<%”ÓoÅ0²ìÛQœ	p1f\œ
DÍ#®Óœ~¹H°4gÍ2K˜e|ÝÚe#°»" §4	ÇqÕ€¾nRH—õ ¿)êæïh¢äpx<å.õ›Öâ÷SŒuõRçé~æèH0Ë€œ;`¹-i€Ð|Ý0)ªÊq¨â²¦v_VEYê‹eàXÅœŠÁú^W¨þ«M‡³°ûõïFØÉFföݓӽòå‹®šê;Ƭ:’óÚ¾ÙŒ&E·ƒXeô1Å^ۄˬG
S¡òÎ%:ôÚ²æ¡PžJ‚8êêùm”û0ƒB=vâï°[aa¾ÙG«
A”xJû4%Óâ0Ø+墅ÂýQêÿ±*%°JÞ5oB`S”Q8†ÅÛ’½ÿ`°Æ±!&ÿ ñ–¡äë&>‹väŠÏXOG0RÈÁI×Ú
5Êù"ÊJ“yÃØY#ð‹bç™2B‚ï‘TÇåâȦ,¤nB§ë†iJG,ÙЌ鿷øL^‚¹¯{ag,“,ehûÞêÕ¢ÕYhwåª9:.×jb_UZÓ…H9ëŠÁ%T2i(
}.pXDI¯dƒBÔ5<<0Ìnà÷´nCR½¯L‰¹ŸÐ´séûòìêü„¢(Ý¡¥2¦å47—h,F-g]œ²D¹øÇvfþ/]xf5¾Î8æÂ¬’bV…N¨°vyJ""LDZDÈ MGÅPü¦AŽ|9‡µÕF³”S'Ì®Ò@$ *ßT’=D?*}iú¾À¸
6iÐ4u»"ÿ…)§DÁkŠ+€æ´ÝÒÕÀr„óïüûÒ’¼Ð®¡]ïó1ðÂHUÓFc{Ïu’C#ñN;ÖK|«WŠ¿bÌs;ÐÒÄ´Í,b&¾”?†³	£ÆŠQðS•˰ô6Ôl%©ÿýQ&üºP[s©_%,'¤§…Û™ÞUw„âùÇVxÄï™À¯Œ¥£‚f,Þˆ`[H;'W4rHÆ÷•j(õ¢Ì€&’×ÓÙ"äÜ÷RòöªP…ÚZjœ…«4cA[Èubµe§¢—¥wV!ê\¹*Å¡¤¡‹ŠòTÚ˜L}*¶Àh@¯²È²m(®î}ªñ¡$TƒáÒ·+fðiÒU©™ß‰ƒvŠW‚ÃÔßáŠÃ=PéúÂ3ºœ<Ÿ´#â¿c×óQ[éÓ3E¬;.§P‡`#hpÜz½[»t™HÊx)¦w	2=
Rhå#5žŽÞ/Þ»¢dÑ}-ë˪=óË×Ìâ
(ÿF³™¸$Äö•ö5:`ƒ7/&6V…S{”Y&…ÈOÈ3I¡¤êyl\¿„(
q"–²Å¶ç($QñÐ;V(nÓÊw®Õü°²`NC8×÷à“jý‚fYlîÙ5½)Vyu½ú0í]
1|ÊÔ.˜È;ܼ²ys*C‰3³E;Áºì¯{‰UÚ?D†tü°ì	 ^VY‹Äjµoø§.*×¥ðHÅDP»%y¸ìB¢Un?SÏ‘dɘsaK"Õ¼péŽé(; øÍ	•Š‚FæŒB%EÂ…Åí.^ã|à7.$“‚ÆLåöÔV‹xd0Ùu %„àdºŠ™±•lrá÷z´]$ï;…OØ3øÐ„D w‘’·à…‡y®Ç5:À‚5F\:\ݳŠÁ¤ÿ‘‰©†Ëœ&Ÿ®âÍxˆ”tq»žºö,UçU	8?ìg0Ô)lq÷¸É2¸h,8 !¡vÑ5%wŸú"V+ïú>óHsKCºª:W;àxÕöè5	m8óðµ)æú×*ñoŒ¡+Ý\õ³ånÊ}€”,Yš§W†èÕä™»"‚ÿ@!âǽxeÏÌ(Dé,D‰œ#’ÜŽþŸÈCÈޟΤ’0X®&Qþß±ñGøJl½¿\èRvÑôà½S×I°óçXÎ3-l£¸`²	W’4U£ÄK}˜ò`òö}€t=Àû!Ä—‹Ø>ÞX,Y()Ú‚®œzªÐ44®>\¾#/Òþø†&5FB%ÄuÅù"ùýÅôî4®³ÛãJ÷V*	gõêMÊß?Þün}“É
endstream
endobj
341 0 obj <<
/Type /Page
/Contents 342 0 R
/Resources 340 0 R
/MediaBox [0 0 612 792]
/Parent 306 0 R
>> endobj
343 0 obj <<
/D [341 0 R /XYZ 71 757 null]
>> endobj
344 0 obj <<
/D [341 0 R /XYZ 72 710.559 null]
>> endobj
345 0 obj <<
/D [341 0 R /XYZ 72 640.159 null]
>> endobj
346 0 obj <<
/D [341 0 R /XYZ 72 577.674 null]
>> endobj
347 0 obj <<
/D [341 0 R /XYZ 72 542.446 null]
>> endobj
126 0 obj <<
/D [341 0 R /XYZ 72 496.194 null]
>> endobj
130 0 obj <<
/D [341 0 R /XYZ 72 462.676 null]
>> endobj
134 0 obj <<
/D [341 0 R /XYZ 72 432.872 null]
>> endobj
138 0 obj <<
/D [341 0 R /XYZ 72 363.645 null]
>> endobj
348 0 obj <<
/D [341 0 R /XYZ 72 206.048 null]
>> endobj
349 0 obj <<
/D [341 0 R /XYZ 72 184.449 null]
>> endobj
350 0 obj <<
/D [341 0 R /XYZ 72 135.039 null]
>> endobj
340 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R /F24 277 0 R /F25 285 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
353 0 obj <<
/Length 2954      
/Filter /FlateDecode
>>
stream
xÚkoã6ò{~…¿Œ«R¢^ìÞ¦Ø-zMŠÞa[,[¶…È’+J›ø~ýÍ‹z8Ú´_,rH‡óž±ZVjõÝÍ7¾j¥WI°JŒòC•­¶§›O¿«Õà߯”o²tõL»N+§ð­V÷7ÿ¾y÷ps{«ÌÏâ ^=ì‡ñ•‰V»Õ'/ñ×›43ÞÃ:‹½6¯í¾iOyW6µ]ÿþðýíŽ&§M”ÂQ@Ogu€[n”꾫1‘ŸÆBߘ”w¶{õi)åýºNC¯XoÂ4ðlWVµwÌ×Aâ}Y©[Ìùsn›Çª8Ér­½z½ÑÞKÑñ àOižŸÎU±ãIw,¨»À^WLÊc/ó£Û!¤ØS^UEË“]sÊ˘eóGmóß½ÒŸÙj£C?†/±ä¼Þà[ä9ì6‘Ѓms:÷	‚M]]d4²¦}}êä´Åa8lüÆÞ³c(Àê'Ï<)kDÚ-’”xM•w…»—2[ ø“Ë”ßÐ ‚Ôë,÷ms¢W«ùƒI’làÓ!]¡A©š]ï	Àasl5Æx?OWU^ïx ÆyŽª”ŽªÌ.X*^ò­`=@Dv[Z›Û+}Ý8	Ú2yP´¨ÔïsÒc@ÖŸå¡G¹%Oj'|Æ·EGò„ÝŽ}`»SëÓiè§AèÌïP¸o-ë]ó|ûÐÎ%›Õ:º£õýëw…*ð#“Ì¿i­©»+ИR²mR„å"aL÷›Ê:
¢¶°}Õ}³Þd:óîÁMltj²Ù]hDt¨(áXËÀSþ$B\¸mΨÉžý¦"ÕÛ²>,qsÁ ‰¥vew{_tŸU¤ÑÈà—]¢0ïšÃ¸¹tà0\ªáú-U{{ÐÝÄx÷~CïùXn‘ê#ƒŸÉãáÂ#ûžú|1kraÈA<2×gZ9¼fÄö‹,B€-ÿWLO‡Â5à×ÐD7Žü'X(¬Ž¨å3rV¬„$BnÒßå~Vî\ö²r~+¬K§¬K”A¥­D^UÔ‡îÈcø4E7œ)å•@m@¤‰ž+ròvØÑ†&BnIGÞ#(4ˆð‰gdËÚy[m®|´6΋6<#Áþžžó¶c¿fþÀü2n@O¦ÞÇÚ]EÑ‹P[â@>‹xßàb6ºu"‡0wáãÏ¥=/‚P:—4Q‚Ë~\¥âôŸ/ë(öòª/,zGÙð›
MWþ=KhRÀsåcÁÓ@,d™‰¯ {të*\E™Ÿ\EálQ÷h‡
¬"FÁC²&ø2¿aP(/êî¸Øýµ;ñ>v7»óœ""Üé6ËÝ®¨}>w_Ö.‡QÙè2ኼw²»È™y‚;¥IÔYPŠ»Cêõ°óóõ7_µëAÓL4}
Ä0u9pæ2^x¹ð˜ïr†Ø¹è·#퇙v2º¿ÝÔâb_C¹1ˆskíÝ¡¦À2¥ä»_>òài
çê)ñºax¾&,j+û]ö„›Q™ÀqÈ[ùüà3óñ©ô’ÄÂXX&%JUZrÑÀæ’ìP;Ú`À\‚AãÒv)“x*ˆ”žgHrq𗲎8öÓќƄã_y—&Û|ÍÁ,ñ50¸¶˜Í(“ÍÐþT5œÇägNd(ált” Kébâ_&¹zãS¹ªØv#/ØÂ3¨%U2×UÒây:ÖL¼NÒHH0Ciœš!Q#îÜÆèó[ãgø”òåPžò£ÿŽŠÌûˆ‰\¤$ÙÀP'0Ý+‚ymy(),"xÛ·lì²ý˜ïxAü<:÷zŒ¿¨ÎI:8ÂÓô”ÀŠY"ˆge¤… Ç"
·Úã;B `Ù$YÈÏAr‰ËÅb±†ó "˜E¶£ÑDc5ƾÐÑë
±‰ËC?•g‘ž+ÞˆPg=ÓîP‚«ÓÆåvà…àr·Î"êž|5fw/]åjÝ¢[\AäJlŸÒpÞÃy.€¥`¸ú‡=2wêНð¥*ˆÙ†ÐZÐ
ÀSÑåß>?•Õ5*:²§”+Q”xáPԨºdN„Gó²|rç‚ ‹Ü•$˜LN	ÕÎPÁ+¹íÅ·jö©x€çȬ¢
ÁéÚ¶)f2)…,7`jqìϳq/Â+ËÃÑ=A¿
›#®&vL.žÚ¥ÉCíµÀ„3xKîtH7%ö.ׯ¤[…¯ç¾z31·Žð+ݾގ‹,L@[žèáià}˜.ô”Ž
S†!h'ݲ
~Æœ˜·Ñ9Èðš“ Ù65Ä Ù
FR•O“+ºe»ç@vÂ_±õ–óqz	|¼Ãò¬¬ù+ù‹ñ8~)Û¦–¨ÈeMäýb™FØ´/„©øv:N,Žê%Z ÌàE`Èn\¡ãÁÃŽMˆÒYЄԙ
(©ìÔ¬á´Èƒœã§‡×F‘^«vêbPþ$ç¹òá‚|TÍX˜w’9äv¢ÈéTyp?wp8á:.´Wé	ª×_&.y-ßáà„¸LˆCG·À¤	©Ø%Ø»>Gš,ëÒd÷©±Òâ{à‚øk<ì–5ØÜÉ®{û^:m’±á‰ÆX®3qtÍ
V(¼¶ÍÏÇ«ªR(M•Å$þëÅÊâçÂòžàãë1(¡ŸÚùa5¯Z‚EÜïÚ!ä¾jî‡ø†óø„Ù‘T“áè²1þVìóž¬.ÎÒÇ ÌüÔ¤³ü3ÒÛ‡u5=çŒÖ­œøÞÞág•@%”Ÿ‘*‚0eÕ€†zRE_«î¤c&
çœ
—ë;—£~¦®ƒw•¡„¯äx%
ó§=ã™.ÈéFÒÌÜA‡žna¥G/)þþÈž§qéè%eÍ_Ê[ËÛ´FoÓš*ˆsÔœOµ4`¶Ãî2TU/HÅ¥©9ËC"jîð”¬sºMXš'ø‡Gšp+èÏñ(Ì’W¹Â”<ûÕz–qD1>ÃUH¤ný?ð‰Õدb(—ÀQ6¶¢p2Ü»s‹b:Q6^È• \ðf×—¿ðNrÏ0½\ÑjyN|‰Øçãâ¡·%¶Ò-®ÈRó"•ãÛèoxˆ1<§¸ã
dñ<•£lvE>ÄÞ,C!Æœ˜qg…ÍÈ;w<•ÀÞ^!=(NÜöx0^vPÝI,ƒéð†Q0q”'®]y¢ÍßáþCÀdà…çS0`uÔG¥}ÜùÁ¾µ¥sl¸ð4yæ “wÁÒ‰£Sdz‘ZØi¥3@)`òß´	Ün%×,Ä]!“}B">A¡Ù/‹!×õâåß»Åÿ¨Ò¿òWÎOàÄ_æÛmqÆ?`fC
ìë¾tVÞ“ŠÔgÃáì¿ò¾kì6¯
qöÙØ½D$­ÎPºÊömϸÜêŸ;\pVyÝðŸHØ\wN#=Íq­-þè‹z{Á:EZK¢I€F.ØÇœÐi)¹ 4™›=Ì÷-÷ñ´wš5¾RRÁ¡Ñ‡-2•@žc¥°EË»¯zɉœ”+»íÕßž{fȶù?œÅ³£kÒ°~ø‹öx¸ù?"GV
endstream
endobj
352 0 obj <<
/Type /Page
/Contents 353 0 R
/Resources 351 0 R
/MediaBox [0 0 612 792]
/Parent 306 0 R
>> endobj
354 0 obj <<
/D [352 0 R /XYZ 71 757 null]
>> endobj
355 0 obj <<
/D [352 0 R /XYZ 72 710.559 null]
>> endobj
356 0 obj <<
/D [352 0 R /XYZ 72 667.417 null]
>> endobj
357 0 obj <<
/D [352 0 R /XYZ 72 645.265 null]
>> endobj
358 0 obj <<
/D [352 0 R /XYZ 72 596.685 null]
>> endobj
359 0 obj <<
/D [352 0 R /XYZ 72 561.733 null]
>> endobj
360 0 obj <<
/D [352 0 R /XYZ 72 526.229 null]
>> endobj
142 0 obj <<
/D [352 0 R /XYZ 72 411.7 null]
>> endobj
361 0 obj <<
/D [352 0 R /XYZ 72 288.446 null]
>> endobj
362 0 obj <<
/D [352 0 R /XYZ 72 266.847 null]
>> endobj
363 0 obj <<
/D [352 0 R /XYZ 72 244.694 null]
>> endobj
364 0 obj <<
/D [352 0 R /XYZ 72 223.649 null]
>> endobj
365 0 obj <<
/D [352 0 R /XYZ 72 202.05 null]
>> endobj
366 0 obj <<
/D [352 0 R /XYZ 72 127.872 null]
>> endobj
367 0 obj <<
/D [352 0 R /XYZ 72 104.336 null]
>> endobj
351 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F25 285 0 R /F18 239 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
370 0 obj <<
/Length 2242      
/Filter /FlateDecode
>>
stream
xÚ­É’£Fö^_ÁE´(2Yææ®îv”c¼L»|²X¤$¢`@]]ï·%‹¤êñÄÌEÊååÛWBïà…Þ·wÞ)ø=契—ê0ˆÃÜÛî~ý=ôJ8ÿÎgÞ3AV;¤t\SX+OZwÄJØx+?±â(0I2=Phvûïଧ|b7È+{Ÿ&	À	Q`ÿ?zÅÓÑö(T˜ú…[öó&J‘½šÈ_
üyAí…Q¡Bëðæ7NÅ%ÄŠŽÿq¼z‘Ñ‹”_dó‡mÆ\0X¹¨G¼l5y*®~MXÛ½œ·û7°P ’5üt^0éeþL‘ñæ–g‰HâL@CÑûdæNEÄRÎoë—iG)â©j†ª´ˆ‚çíyÄÃ:¾‰h£|ˆƒñña%¾¸÷çQHì×Np“×€_²Sê?@èð-;>\/¢ù™œìRY¢€îŒ©0Ôþ¾oOâåKg4ð$M]6ü¾¨š¼/«ñþãÆ ‹Ãîß9²×þ¬”	ò,r8ˆuã?[6ê@>aV±	ü´ì+ÚðÏ ÉÄ1­ü/_ðe{æÍó†œEùg„¨aQò˺ú´qN¯9úáßiŒ‰­)ù¼ëí@Y—äAbòµ§\³NPœÇé‹Áeõ¸È Qd Â÷OH
ãŠÓ‹Ô¨+ÕF:ÈÃØJ¡úšw+n&&mS¯äJ‰KäÝy4€íj¶Ç'.›pû\’8Oí™Ì`(.gáØW_wë¸T™”¹ý	EÂð•ýÃk‹IÜ$" ,2‹”7s õ“Èglùx÷?ìØa³p2’¾º)•",¹ÞmóU>XsFaw"0Nµ°ÕÞ^uQ¿ÐR©ÿ鮜*¡4ïìk¦¿HƒX_‰†‘ª9Y;^Y;¯˜àæ D<½‹×üW~ñQéÿÑ#–r¯CvòBŒ,q0y„KV1×p|(\"êW˜U©'UŠ¥2g©hE²?üƒSëªUY3L	ÆÉBLÜêP&Å^ö)‘ô)¿p…öÄõ&S[õ7ÚÕ¤5b7[t
q¶è-`íãÕ1¸TÉ+öâhscÈ»¢áû…ò°ØöŸ7Æ@ˈéš3¬'&÷ßö’§u'ˆvýØ÷>á|6ø­H£*~]ã KãUU|=öýÓ&Mü~c"bt;÷Ñ÷ï?3ÿF‰¨z²T×zŽT$¡qè¥Þg »‡efÒ‰”}¥öÜïdM~‡‹4Z5…ôæíÿp3ˆËîªý»(Šf7ŠŽ”O=2<8×Ð(Ä]G3Ât¤æG.ÀpMóA„>G­žE³ƒx)´Œ?´#ß
¨<61F¦Å‹B¥É×a3	h¸úó\é!)×¶‘Æï¯øƒþŽï+ã[ž°ž‹€ã$2kƒÄ¹Ë0ùz@É—¹6<ÇxË'
„Qûo_ø„ƒß.K0œ6ö.™I‡ÙLk‡„N]mO“˜xLÙ~ÉÓlkL&–£’Îé0&Uâ?†ë<ÎeAšJ>y¨)-—,÷¿aoˆeVÅ#—Áö®A"#žø^Â5Ÿ†/w_Àbœm°/?8à:×c1IhÌÅÅsE
2¬ÉgAj]òU¦(Dœ¿fÙ¤hŠ·T¸kù2âÑÐ|bs¯]‹Ã,¦D Yÿè&1)Ú´yöØ3–¦eØ¥š{_ÈÚ‚CÿFÜßq #jl1éƒð(Ø»žÝ»—‰ßæ3Д¨xû\•Ë¥›·Tгe)†
¤a­¼3¾±äðÚëLòU	Aq³s³®œÇTçª=dÀªF™»\Å( ½ÇVPb_8žCKž¹²œZÝÿû§»¿K6hð
endstream
endobj
369 0 obj <<
/Type /Page
/Contents 370 0 R
/Resources 368 0 R
/MediaBox [0 0 612 792]
/Parent 372 0 R
>> endobj
371 0 obj <<
/D [369 0 R /XYZ 71 757 null]
>> endobj
146 0 obj <<
/D [369 0 R /XYZ 72 710.559 null]
>> endobj
150 0 obj <<
/D [369 0 R /XYZ 72 646.032 null]
>> endobj
154 0 obj <<
/D [369 0 R /XYZ 72 411.019 null]
>> endobj
158 0 obj <<
/D [369 0 R /XYZ 72 237.994 null]
>> endobj
162 0 obj <<
/D [369 0 R /XYZ 72 142.716 null]
>> endobj
368 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F25 285 0 R /F21 241 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
375 0 obj <<
/Length 3166      
/Filter /FlateDecode
>>
stream
xÚ¥ZYã6~ï_aôÃB
Œ5¢D]ó°ÀlL€‹éE°H‚€-Ó6wdÉÑÑÿûT±Š”äÖl²Ù')²HëøªìhsØD›÷w¿Ý	h£Øäñ&—Q˜Då¦:ÝýôK´ÙÁø7›(”e±¹ØY§Ì
hëÍÇ»Þýãñîõ»8Þ”a™ÅÙæqO’
Å™µÔ8Ëf‚½™Zb÷ç(¼8pÑÅ€ì,uTøôD4‚jŠ­õgÌÏY}¨ãüyepnµ\ÎûuÄÀÛ?ø| ë¯ý O¨6±Þ=@°k;Z«?«x‚Wöq@*9¼Ìâ…Ì@Ò¬Ú±ÞÉ“¢V¥Õø„ZE
¸CîCa5´N3kÓ㓼ò,
Ï¢?:ñJp"úÆ$PŒ5Óg\öŒÛW7úºep‡m,´ä÷‹ÿ›V£yZÇ­si@šÆ¹$xRnûé.ÊyrÝËyÎ]K1vø¥=c|^{—NEþù>Ÿö ¤ù\g²0›`Øv…U(¬p8>¯ñ!À/7íùø¬êFO
÷7뎣…Ù§6ì|Ѹó‰P"2œ›×©mh‰²dÌÄ\~ÐÝÛˆz_
ëÐáèÔåhìEEÁ	u‚	LhÂÓœÄ)ÏxÏ–ÙÀÁ±?ðò]Hš¯;@†nÕѼæÐÄDô‰#]hÕó_(T±Vk{+à¯ÙÇ8íš›÷ˆØ1nžHw/l]Y±4…dÕ¼;L2aMšÞœ=ÀC“ÍJ>3
³l€ª
z¶>^¬?`ZAdëmWó~t·lf.!ú¤‚NEÁ1ÎÝð¢IЩMcC`†Ï‰q™ù¬™šLdXF^õuulI5eŒñ0_¾Ð½wÄEÞÚ·ÃfmŸ°,b7á’Ÿu…“a‘$ÄÉûàû{ž!æn=
³Â»õ¿¯9þ8,soÎÞÙ/2Ä%—pÅäE–I:2‘…·Rï©××
2´ÑñœFëM`ÐÚ›ÀįRSJ€ТŽÜùml1°I
L>©îSÏ;´<ýHRÅg+B™Þ¼ŸóGi0½Æ\ŽèJB!¨B©ó9ðiR,è¼al¤{Âûƒ+(¨(ø„åÿûæ
mÍ+f{[,Ó&v~?×€FWfu?
¾›yÍU¯+`Ú…¨Ýºµù4ûhw…VCb®-f–Qð#ÚÎ+TÓbk°W¢«Ú¸÷Ä.>€åxdÖOã0¸Á'L'_	}µìžhÌJJ”þPfñtÔ¸°‰Ë'?°r}ºÍIåDbGç`ÅŠ4ÌËrnÿ,T¼Z¯˜Wž
û+æµ44/?gæNñìœG­ø '/a–…m+:uY9s¾_–Å%¤ÿ“K*õçú·
#è¢ñ2ìô‘tÐé%£-óø¶ÆÁ1‚’„<÷Ee‡lZg$˲	©ŒðõgìøMI›+¯ ¯(	áTsÉj\þR¢KGýiA>GÔp`–ÔÉ
iU£ŸCªª5æ”HŽgjŸ‘NX])F“°iqz7Î Ê?ƒä*^ ªäQC72µL´Šî0nq4´Þ¾gq¾§>>«q7×™g‚?Ðq®HŠ€TM.‡÷áš»8ÀYÕ¢öçõ5wé¹RúÀ­åƒrWÄsWùBÅ)X2¢4GŠ”i04"Zд[âFÕP¿ív¦Qƒ\Šš&šúc.p­?³ã|A|:0(FýÒÎo+ÀòLÝ`ˆ·án%{•a{sØMEqó‹$C_ 8ëg¯
˜ñƒÁ¤¯¿§±åÚYK/z¸v+y~5Õ’¤˜ª7®z$hp.ÆÜðíR9Fz|ôÅ•WóÌË‘Á¹$O®Ãë‹|@ûº€+8&¤µì4!Ñ2LdFòA(`…×ã±84«ÇgÙ¢¿¬±Ã“%ÇÀEq9_puý£®uEe¬°¾TÑ¿©®ÿH2+%VGóYuF˜Ð)_áÖ.…zÅ@o6›&“¦c:g"£I§j!|ñ@ƒ³?XÓôfÇ{p&˜N Âд~t%ì)TSaR— c×øZðÉíf®Úç÷$‹7-3t&ôÒ¶pdY©Áå3i—øó’éÔS½ž|ulýï*/#øz)<&ûV™æÍ×;3¼þ¡³¢EºÊ6ýjÒ‡±ð	8Å!\Á\Tkuà û´³é«7ïíf £_÷¶/²²a‘„iê÷³¶
›Ü¿íýn÷ös—bfèI²|³¿rÙ¼íÏg»q¿A †…¸>½-lE®š	ÄîÈà£Ëáã×ì"® Fô£
4ÎÙ‰_¤[0@OxWÄG ¯©¤2½Ô÷Ïèk®¿œðV	1káW[±àG¾qz÷KÖ×Tî²®äpsrg➥XIÅ•¯#"Nà:øÌµbi;¸Ê*Ï«›*ßìg›V.ŒÍ΂&üÐò@rJÁa8qaËÚr;ÿ1	çÞ‘ÐÞ‡+5 DˆEâQá
Yo»Î9ü§€pd´K5Ò…‰äOcŽjU±¤9EP+çKöEòÀVF«Íì:ú`·‹°šskÕ‘Vâïþ»vD{äÂÀV«Þ¸¹;²–(Ÿå‡KÿÖ_NÖ?©åÛL¿I'›ƒ¶êiÕÒ‹u@—‹Ô/Éœ	G¹_‰,£UÃø¤èwHÆ—@Vpñáö§’Z‘·µõÒaù«Ÿk¿~¼û_?Ð}
endstream
endobj
374 0 obj <<
/Type /Page
/Contents 375 0 R
/Resources 373 0 R
/MediaBox [0 0 612 792]
/Parent 372 0 R
>> endobj
376 0 obj <<
/D [374 0 R /XYZ 71 757 null]
>> endobj
166 0 obj <<
/D [374 0 R /XYZ 72 710.559 null]
>> endobj
377 0 obj <<
/D [374 0 R /XYZ 72 594.182 null]
>> endobj
378 0 obj <<
/D [374 0 R /XYZ 72 558.401 null]
>> endobj
380 0 obj <<
/D [374 0 R /XYZ 72 510.097 null]
>> endobj
383 0 obj <<
/D [374 0 R /XYZ 72 406.725 null]
>> endobj
170 0 obj <<
/D [374 0 R /XYZ 72 333.215 null]
>> endobj
174 0 obj <<
/D [374 0 R /XYZ 72 296.909 null]
>> endobj
178 0 obj <<
/D [374 0 R /XYZ 72 137.017 null]
>> endobj
373 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R /F25 285 0 R /F18 239 0 R /F27 379 0 R /F14 381 0 R /F11 382 0 R /F21 241 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
386 0 obj <<
/Length 2924      
/Filter /FlateDecode
>>
stream
xÚYYã6~ï_aäed ­%QGÞ’ 3Ùl’žÅ4v7˜¶EÛDË’WG»{~}ªXEJöØ“ /Ïb±Ž¯ªèh±]D‹w7ÿ¿ðb‘Ç‹<Â$*ëýÍÇߣEã?.¢0-‹ÅÑ®Ú/Ò¬€o½øpó¯›onîÞÆñ¢Ë,΢‘†Q*ÕâcP†ËUQ¦ÁÏc=˜C­—«¤H‚w:ìúåï?Þ½r¶=•ìúv³¸ä&bNÝw±JSY$LÓ‚W‡'«W2Š‚ïvírAÛãÙY$øÉƒ®]Âè±§žj*jðìº]Š ÷Íùü7‡Cýº„+À½dš¿b»i²ßµc]Ñ1
Ðσ#uz­iEIŸ­½?“xØñä}W鎚ã0´
sª7ºë‰ÐÐâ"ó¸\¬Dfðµ×L\¤p&¬ðv¯4À3’¥AÕñò—{\ÿh%¥;]k)4MžÙš¦1Í–ÆÚÍùÚ4¼Y·SË•Ê(``?ß,'®Ý±ÝïpŸW½Ôά±¿³÷N¯nïJ’Àôô½x+šŠèC*…ÆÎk
:–&PX¹%¤ƒ$
L³î´sÁ-<²°qÛM´
®[´¥3û\9-Æ"”%_%¾hÄÞÊR!ÀTm>iìÄp*ÚöHFã±µk;ó	l­UÓÖƒZcÿ	t¬§‰L¨A×Y^Â…­Ìí:»½µ"à½q°Uj°<º'6uÃKœY#½ï^
<:“(·¼ÔÊï‘‚²º}ºjÛÞ@–||o*}¦²€Å»£©†SÔaΔ
‹™ÎÌ“ÿ\-ÉEµ|«J7DM!¨œñ 4…¯)촸˶HgØÊèãœÛ;°ª¨x*“üÖÒ æ#g°æ÷ËàÐéžÇøÞiÀ”ÀÇ;¦aܶ«Šèk³ÝY³@ŸÈ€nûXë=uTO_3ÐÎn‘Í<ÈyICß‚»„ Ñ¦®©ùlz4-IàÎ0%÷UôÙh5Œ´]=ø$Sò
ÀñŠlZq¿óMÙÌn2´L~½Ër¦’º€7O–Ù¬WÑÇÞ9yN&ÖxalÀŒ(Ô!‹…†~º9‰žÚÈÝ+S˜¹…^l›B"øêŸxAƒGÔWHÅôEa5˜sÍ„ý:,¾ð]~!kBÛËëõ*3ô¶ÀUG8ìTsæ¤úåP›µjÆKÕuªÙ:lnÍ({$OÏËǡݫÁ¬••ç+-F…`ÐúsGN/:²si”{ÕAŒë©c­30 {èZ<†&æc›À˜m™ØýoQ’ôzèoÉ–­7ÎÖƒM]Ýqñuƒ@
úD}#݇eîhÚþ7ÚÞVÁÖÃU¶¨ØÿYÉ‹²zÏP‚a­&øAý¶¤‰Nï­Íž:Òõ™LêÒê 9B8ØËβþU—‹òÅ*3©KýEQIˆ´¾±^N—5MežM5bn‘@(Ú"õ+% M,Ã8b™Í(‘M”ÒHºTP=õñF9¹Ž´!h"ÿeTÁNÕ6š–üÉHÀ 	ý¢Öƒðiœž¸b "k³yeŽääŸÏFiAÛ
4´n	c;ëÖ@¤7›®Ý³lÏî?·™Ÿ•i¾~_·ÃÝ»n)Ár»ÿ©Ã›Úöi´YÓÈçòIÆEáj,k
÷Æž´“çì¯6ºëgÓŽ½…Y˜@ìVÞ‡1~T4AJá]>ÀÄî{h¹EáC9Ç$gìví¸ÝM‰T‘»H®Ã,“ ªv|¬µ"rù'ï.ŠÌvVl(aZÞÖ;r¢î$ELg)"C™'jgüéBˆ°”2f
ƒe‘9»·V€ÿ¼ Ð]­–	¤ê,`y½üu¶ÎW¼'ÅýdtâÉ‹d`ֺߒ*/Ä´–zªqÁ¸àì¾c¯7#;Þ¦åI,ilpßgtfàÖ@Õš5
Tã$‘.ÂÁ&ô¢{ÇJuç{&ÃKÙÄ[›BY½Dè‚ûC­-òÍók˜òÎB\\C±ªu‰YE4Y…˜ìR‘!\ÈŠì=pã–H´§^"ÀJèâŽÄ挄Eu­:Ì©¨ÜïxfÍϰÚÁÑiØÌRµ±{¶ª§>=@øP4YÁæ#Ε3ÇŒÕz3ÐÐ+
ð²S =¾PAóÁZ¸¥™—÷-½|Ä®è_f¨›
	æJ+Ã/ÖÌ?ãí‚`H%ÒIZ^a&H'ny`™Ãf
Œ’•/ÉJ2[»¶[Õåï;eC-ÆBEŠŒ‚Ÿ%`d¤ÒfD#NP·]H—Sø ºC`M3•Ôí
2–bðfž»„€÷$d½‰·^¼„q?|:«‹'¤˜ö§¼> endobj
387 0 obj <<
/D [385 0 R /XYZ 71 757 null]
>> endobj
388 0 obj <<
/D [385 0 R /XYZ 72 710.559 null]
>> endobj
389 0 obj <<
/D [385 0 R /XYZ 72 667.417 null]
>> endobj
390 0 obj <<
/D [385 0 R /XYZ 72 631.636 null]
>> endobj
391 0 obj <<
/D [385 0 R /XYZ 72 569.704 null]
>> endobj
392 0 obj <<
/D [385 0 R /XYZ 72 534.476 null]
>> endobj
182 0 obj <<
/D [385 0 R /XYZ 72 460.557 null]
>> endobj
186 0 obj <<
/D [385 0 R /XYZ 72 375.376 null]
>> endobj
393 0 obj <<
/D [385 0 R /XYZ 72 263.48 null]
>> endobj
394 0 obj <<
/D [385 0 R /XYZ 72 241.327 null]
>> endobj
395 0 obj <<
/D [385 0 R /XYZ 72 179.395 null]
>> endobj
396 0 obj <<
/D [385 0 R /XYZ 72 116.909 null]
>> endobj
384 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F25 285 0 R /F24 277 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
399 0 obj <<
/Length 2567      
/Filter /FlateDecode
>>
stream
xÚYKÛȾϯ|	xh6ßìwm¯aïn2,ï8RKb†">2£üúTuU5›ñEìguu=¿j«ý*X}¼ù÷‚o°R«,\eqàGA±Úo¾ý¬¶0þyøq‘¯žÍªã*NsøÖ«û›¿ßüðpóîC®
¿HÃtõ°#±ÄÉêa»úæ©À_ßæEì}j‡õm”GÞ—ªyê×>|~÷A%ÎÎ8Éa¦}).¹	˜ÉÕmE¾Š"løqœÓªvæÞðGwu¹3ï¼Îcï-œ¤BoSWœ{ªš=Œ©÷\Õ5¶osÞÔš×·H`À¥Ï†–nhf8ð’}Wž=Ü$Žï“n6š¨v¼`­¼n}«6倖˜¤ˆa¨6<˜DfÉ„æþqê/ÈË…Ñ™äïkpQæëy,Ía¬¥ïi^•"˜oOæ×6lŽHÿÀ¶ÙUûƒP„n_m5úU{ðè®=ò&Ú‹a¨.ÙUÙäËfKDzãMåã[ÚþNEÊ€.mÍxkìýF&–±‰½»6þöë‰Ì®í«Ad‹FðeƦˆ¸{a¶í…ÄOë‹ÕÀ"ùywáÈ‘±%øXB|3vnÉš=o©Ý¡(†Æ’c‰ØX’ûNŸÉðâväÌä¦{>´ÅÀ…ÚEaŸ_5	åÜ
k_$ìõ4Öh9aQÙ±vÝ.Âðߎl
‡v¬·"ñ’«£k68ÑJYº»²è-
¸µ}±ä‹ÆòO4zá´ì˜…N—Û³Ë

QËdønË¡4bɼÏcφ~,ŸÖr©Ø3ž=
UëRŽä8Œ#Y¾Ø$sê?4xF£^¯ù±ä‘1jý$AÛ½j 2è™Ê:qßö¾fëm£Ý£#à‘²éÁÒF#\ƒN¡Å6ÄÜE°ûÖ'4ª•Šý(NC„#·aìAx#ðSÁ2 NJ#,“¦¯bÈÒaî§ߓ֣£›õdI˜_¹dC—ÜÍ¿#¬m9Ì ÃDÁ(œú\Qb¯uáCi2B%[ÅÖ·àW¢	ÐAwýpáZ›„j-6MëAtdïlet]š­ëŽb€™½•€a²X€¢ªÅOA ÍVw¬:Wø*.ü8OI~-«æ¯?‚I¾#–’œÕp­¶Bùy¦d£˜E¼RÊ/’DÌBùQv}äÊUhaâ}¨(cÄ„ü‡áÎgÔ“UÁçdÙ½^± Ä–‰rr_OµîIú
ã¨UõnªVt¢2Ê(±»Þ@ÆoÊû‘L±"A\"{0qЦƒÀ„¯X¹b¡·—6„
$dðåŽGørb¦Ó[œ•šÉam?˪ٌə±ÜÛ;;FÊýà^Æì`„LžNhø6ÍMµ;_œN6ø4wPTÒ§Fš5å&`Äp]ŠlvE5Xƒ÷}ƒÿßaM¦…傃EÂx²X01Dç“`b°›!p
@‹…ÔÝ/âóà
˜‡Ì¿ŽõPÙ@å=µìƒëÄ
ûÁÿEå÷íQVp[@»)g ;psž‚»Z-éì€aÚÄ#D¥¶MϘ|7§ˆM¨	€eµEÛÆŸœIJ¬N˜1d8G+;-˜4˜¼qNàb^ÃÏð}{ÔnHAí¶ßùÆ+œ:]@шŒâ-Oºx	=š÷ÆÖȱhљǜ(ðJÞ=^ÎÌDž§ÓcEÕLHÊÉ`Âø2¾zƒZ*õΊ¿!¦,eÆÑÅȾeßGJÁQî½?´Œ“4MÓÁаv£’iE2Ív¡ì
“Úö£ÄkV©Ÿ'ÑTâN~±ÏŠÝå†ÍÁ´zS¶©b>ÛÓNŽá0ØO¯ÑL	EÊŽü\es	ÚËBnlJcHy!É­¤â—_g5”ý[…R)Ëy˜^µx'F¶Ö!J^'Ü%¹8CGƒ®ëžšÏÑì9#Æ·#cc5TX”ÔŽ
´:-‘“ÚE¤z×HŒPdþCʯæÚø¿F1eèO¡:“o«ëdÚ'ùÌž%t!K
%*C‹1<¿žCɼß	¾)yÔV,û4Åç

2‘õ3^ðÚØPf‚Ábëûa*á<…¿‚æh×}s•ïO7ÿ¿Ug‹
endstream
endobj
398 0 obj <<
/Type /Page
/Contents 399 0 R
/Resources 397 0 R
/MediaBox [0 0 612 792]
/Parent 372 0 R
>> endobj
400 0 obj <<
/D [398 0 R /XYZ 71 757 null]
>> endobj
401 0 obj <<
/D [398 0 R /XYZ 72 681.046 null]
>> endobj
402 0 obj <<
/D [398 0 R /XYZ 72 647.755 null]
>> endobj
403 0 obj <<
/D [398 0 R /XYZ 72 610.037 null]
>> endobj
404 0 obj <<
/D [398 0 R /XYZ 72 575.362 null]
>> endobj
190 0 obj <<
/D [398 0 R /XYZ 72 528.557 null]
>> endobj
194 0 obj <<
/D [398 0 R /XYZ 72 446.76 null]
>> endobj
198 0 obj <<
/D [398 0 R /XYZ 72 228.844 null]
>> endobj
397 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F21 241 0 R /F25 285 0 R /F24 277 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
407 0 obj <<
/Length 525       
/Filter /FlateDecode
>>
stream
xÚmSÁnœ0½óVNF
ÄØ†…k¥¦MÔKUzJsð‚w±–`
&«ýûŽ=Þ´©ršçÇÌ{3cÃÈ‘0ò%ù)ÈŽ“d¹`
é^’§gFzà	ËeS“sÈz!²ª!ŽäGò=ùÔ&w÷œ“&o*^‘ö€2g²$mOžhÁò4«I¿Z—f¢ô›™NkúÜ>ÞÝå?•²¬¡¤±nçS›IŠ"oÊ’ûä,fgRäRÖo^"ÍŠ‚—ôçfí•3Óதûˆ‹Ç’¡ OžÔ—úa$ãeÎaAüaZV}šñº¦öàãŽ*å5}SjÒ‚z+ÿÙYŒ'ÿUë9²ƒÆª°
ÏŒa;›©·)€gЍž0S#òQÔÌ‹¾ØT¹
‹`êè¤:gl”0+Æ=Ðߦþ}³jtÙ—%yCâ|—4¤úíø}"¯xÜÇ/&¤—R@Ê!
"µ"˜,F
%BwîÖKê–ò½Ýö£FܦóK;áµc¦ÕôúêÁqQó€ðâÓmô<ûƒš|×±!Ì9ÝüÍat\Oèö:@7Úõx#5ˆ~0~YŠ;·óŠÇmö;„ùÚÁDêlüíyt£F½¸< €;~MËŠªXú’΋
Mwz]‘9ln[b%¾c'/ S|à´ºÅâë[ów?Ò5~n“?Bpÿ«
endstream
endobj
406 0 obj <<
/Type /Page
/Contents 407 0 R
/Resources 405 0 R
/MediaBox [0 0 612 792]
/Parent 372 0 R
>> endobj
408 0 obj <<
/D [406 0 R /XYZ 71 757 null]
>> endobj
202 0 obj <<
/D [406 0 R /XYZ 72 710.559 null]
>> endobj
405 0 obj <<
/Font << /F22 242 0 R /F15 238 0 R /F24 277 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
409 0 obj
[777.8]
endobj
410 0 obj
[500]
endobj
411 0 obj <<
/Length 102       
/Filter /FlateDecode
>>
stream
xÚ-‰1
„0Dû9ÅœÀŸ!­«`
Á­,ÄJ--\ÜÚ›G³°Ã+o\Yø@CuÔŠe U®ŠÖåjèÿϲ£Ž‘ÖA:zHìy~¾¤^THÃIifĆ×îy);Úˆ7î< 
endstream
endobj
412 0 obj <<
/Length 204       
/Filter /FlateDecode
>>
stream
xÚMÌ=jÃ@à'R,L³GМ +![(Õ‚"ƒU’*EHe§La“´’ …¯¥Î×жT±h=+¤˜ÞümŠÇíg\Jm¶\”|ÊéLE%9‹1Ž_T·dÞ¸¨Èì¥K¦=ð÷åç“LýòÌ9™†ßsÎ>¨mà’0$N…1™u$
“p›o¯¼UB¯$v¼hÁkÙóéÊð0Cp°+XQ=ä°û‡±D<ҕᡇ¬tô¿‚
3è0*€|íZz¥;©uWa
endstream
endobj
379 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F27
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ 6 0 45 36 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 45
/LastChar 118
/Widths 413 0 R
/Encoding 414 0 R
/CharProcs 415 0 R
>> endobj
413 0 obj
[43.59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43.59 ]
endobj
414 0 obj <<
/Type /Encoding
/Differences [45/a45 46/.notdef 118/a118]
>> endobj
415 0 obj <<
/a45 411 0 R
/a118 412 0 R
>> endobj
416 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚ]ѱNÃ0àX"Ý’GÈ=iÒvI¥R$2 ÁÄ€˜€‘¡6„+ñb‘xl¬ÙÈPé°ýÛ…ú¤Ó§;Ë><¯OsžqãrÁ§K~¨iKMmë™+ÝÁý­;ªn¸©©º°]ªºK~y~}¤j}uƶ»á[{厺
g.Úa¨D˜‹ƒ;o™¸
šD9Vý@ý–Þù‚Ågð–Q
Ûà{ð-¸×28'¨F¨G˜G{Xì`ÍàÊ:ú­Äk‚r¬²ù_=À<ÚÃÂî*ÓŸ¥{rrc`ýX¸”ÑÈÞ9É¡†tÞÑ5ý>¥@
endstream
endobj
417 0 obj <<
/Length 250       
/Filter /FlateDecode
>>
stream
xÚuѱnÂ0àC"Ý’GÈ=AMHºE¢T": N…‘¡ˆÎáÑx”>BÆQÌý¶S¨€H§/vìóS”OϹŒ¥DŒeZÊ&ç/.&:öC|øÜñ¬fû.Å„íBgÙÖK9ì¿·lg«ÉÙÎe­i>¸ž§OK”À>êŽÑL…DM´ú%JÕꦬ»5|Uòü‹6ˆsçã=:r'¯ÑúPS¢GàÒA”I([—BÁ–ü^”S]oTìG.ã/‘üIwMû‹É•Y®Ê_‰»½šj¸†«ö›¨í›Øvªéüßp¡;×EÛ¨vͯ5¿ñ4ÆÅ
endstream
endobj
334 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F26
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ 6 0 70 59 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 65
/LastChar 66
/Widths 418 0 R
/Encoding 419 0 R
/CharProcs 420 0 R
>> endobj
418 0 obj
[71.87 67.81 ]
endobj
419 0 obj <<
/Type /Encoding
/Differences [65/a65/a66]
>> endobj
420 0 obj <<
/a65 416 0 R
/a66 417 0 R
>> endobj
421 0 obj <<
/Length 204       
/Filter /FlateDecode
>>
stream
xڕб
Â0à+
‡Ø(z/ I•
E¡*ØAÐÉAœÔÑAQp(â£õQ|„Ž^m‚E\$|Kîî¿¥Úý.Iòj’:Šzm}< ’Tœ00µÍãÅ’”D1åŠdF§ãy‡"žÈG1¦•Orɘ Æ<²ÀºØ€spùªÁ"–²G¥…9¦5¡4ÐÒʳò’ëQ3ÎܬŒxÇ:n¨™Ø«–~y~VýåòCTáé(Ô™£ÙüF++ÃI‚|Û	A¨
endstream
endobj
422 0 obj <<
/Length 194       
/Filter /FlateDecode
>>
stream
xڕн
Â0ð+…Côï4_(
Å¡V0ƒ “ƒ8©£ƒ¢àСÖGé#ttp0!‰Šƒ á·ärÿ$§T< N‚z’“’4”´xBÅÉ®‘ô¥ÝSlMŠ#››}dzA—óõ€,]NI Ëh#ˆoQgЀ–‰J£rÀª½Û—ÜHþÿððîNÔN#¨œ80om[…ÓµÀ™xáŠ"mTé#lûG[âX»)¼ŽúiuÞe0Û€3+|RA
endstream
endobj
423 0 obj <<
/Length 99        
/Filter /FlateDecode
>>
stream
xÚM‰»@@DûùŠù®e­h=[H¨¢B© ü½x7¦8“œc×zÔtTÌп/ä 0CG·~—ú	‰…4Ô¤ †Ø’벤J© [E¯ƒÍx>Û_?îÈ-j\•]**
endstream
endobj
424 0 obj <<
/Length 136       
/Filter /FlateDecode
>>
stream
xÚ32Õ31S0P0SÐ54S02P°TH1ä*ä24
(™Be’s¹œ<¹ôÃ¹ô=€â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ÌØ?ðÿ ÿ?°o`0`(`HÂ0703°3ð1È0X…B\®ž\\Ë—!Ð
endstream
endobj
425 0 obj <<
/Length 93        
/Filter /FlateDecode
>>
stream
xÚ32Õ31S0P°bCK •bÈUÈâÄ@tr.—“'—~¸‚%—¾ˆðôU()*MåÒw
pV0äÒwQˆ6T0ˆåòtQàc°o¨oøu6\®ž\\TtÓ
endstream
endobj
426 0 obj <<
/Length 164       
/Filter /FlateDecode
>>
stream
xÚ31Ò31Q0P0TÐ52T05T03RH1ä*ä2±Š(XC¥’s¹œ<¹ôÃL,¹ô=€â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
 ÀØ€L1C)0ÉÀ¡ø „’PÊB@¨õB€˜|‹P“ÙðX5Ù€X°:Õ¬NÇcV§†
²\®ž\\Á-›
endstream
endobj
427 0 obj <<
/Length 117       
/Filter /FlateDecode
>>
stream
xÚ32Õ31S0P°b#3c3…C®B.C˜ˆ’HÎåròäÒW04ãÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(0Ø0Ô1üg„ÀŒ
ˆ|ö
õ
ÿ!h€
—«'W %– â
endstream
endobj
428 0 obj <<
/Length 96        
/Filter /FlateDecode
>>
stream
xÚ3²Ô37T0P0W04S0²T02TH1ä*ä2	(˜B$’s¹œ<¹ôÃÒ\ú
¦\úž¾
%E¥©\úNÎ
@A…h ŽX.O…úÿ?€è?}àrõä
ä¿Iz
endstream
endobj
429 0 obj <<
/Length 288       
/Filter /FlateDecode
>>
stream
xÚÐÁJÃ@à„=æ²/ î¼@MbÛ”BI V0AOŠ'õèAQÈ!¤y´}”øñ¶B0Îl&‘.?|C›Ì¿ðÏV3ôqzŽÓ`‰á+|àÂ9=öqvïža“€w‡á¼+z^ro¯ïOàmn.0o‹»ý{H¶èÐiQ¢)eMJ]©S2vÒH’¹k²˜Ì„©÷d-Œ!]#¾~šœu?ÌÚá»Úëþ8é,yl-”šÇVÝW6|tOGœ¾qÁáµ8ãîmhm›q¿m¨›QÝNcG«PtV<Wcù_õý:RÓ‰…â-•Ô\GIñ¶‘Ò»>˜)Í¿iRéòçÒJNøÚ¸
o/‹¶¸Là~¥Ÿ§£
endstream
endobj
430 0 obj <<
/Length 281       
/Filter /FlateDecode
>>
stream
xÚuѽJÄ@à
)Óì;/pæ“Sç	¦ÎÊB¬ÔÒBQ¸BâÂv>‚Ïß$peŠ8;»çå¢n±»³3³Ù~vˆNœÄSLcLð.†GHºŽpšmb·0+ ¼Â4ðœøüôrálqŠ1„s¼Ž1ºbŽ‚VÞšÝë{MuPJ{µ		oM”Â7´"Øâ5?ÐKŠûZØgcGý?ÒQýFö´vè¸>*jˆ¹Ìµh¹è]>
stream
xÚUнŠÂ@à]¶X˜"yp7Oà&B¼tþ€)­,ÄJ-…xœ`—¼¯äÜ+ä
ÎÒBX³3wf>f¦˜Q6øbйËG)î38Aîf©kÝbw„q	fù̼›‚)øûs>€/'˜™â&ÃtåEòæªPš‰>{Zâ; f,óOÈž?B]}tì1LÂU|÷hµ‡¼ª§!´ð‰’€‚©­õ°L+ôƒ^¤Þ¨†Ð=‚ˆ™ˆI
æÂTÌB?…KkÙÝ
Y	+xir§
endstream
endobj
432 0 obj <<
/Length 275       
/Filter /FlateDecode
>>
stream
xÚ…ÐÍJÄ0ð顃}ƒí¼€öƒÍ²º‚=îɃxR‚ŠÂÄæÑú(y„{(3itáG&Édfôêd^QAeEÇ-–¤Wt_ªg¥5GZ”áèîQmj•_“Ö*¿à¸ÊëKz}y{PùæêŒx¿¥›’Š[Uo	@<âˆ9ufÆ8g׋:&í°ç£ëh€¬FŽ÷ˆOÂ^|I‡ÌòÓNî{Œ§‘?,œ''Oìi%ÉÉõ‘”_ùàMÀüà–?ØK¯ÀÓ´L
Áz¢@;uÙúž3Áå2<ÛŒ+ãÙ¦ŒÕJfWÄ-ƽ<Ï%5¾Þß’“É uöP›:¯ÕN}°m»
endstream
endobj
433 0 obj <<
/Length 249       
/Filter /FlateDecode
>>
stream
xÚ]ѱNÃ0à‹Ù®ž¤f»–·Zªwn×BÆ{ÿG4êûèQù@ÅdNAÂÄBí¢Í^=•IÝ T‹d¬%sµ™÷˜Ú]KsýÄbr¦h6ó@Î^^43{2è±¹˜îƒzD!;‰(dý«­`ïÑ!´m¢X“Ú¯¡m㺠ZÆèB$B¤¹ŠÆRm7ó˜WúKPËÄ›–_ø†×Šæ
endstream
endobj
434 0 obj <<
/Length 245       
/Filter /FlateDecode
>>
stream
xÚ]ÐÁJ„PÆñO\gãDsŸ «
×ZÄÓ¹jÕ"ZUË`Š‚Cúhó(>‚KÃØù®Žf‚þ¸
žû¿.;™ÏMbœÞÙ©qgæ%•wq™®.ùáùM–¹Øã2±7úVl~k>?¾^Å.ï®L*veS“>
stream
xÚeÐ1nÂ0à?Ê`é-¹¼Ô	ÂС*R R3T¢CÅŒHµR¤äh…#ddˆ’úA vkÉþü{ño›áÀc6vŽ6c^'´##9–(›Õ–ÒŒô‚!ýjOIgoüµÿÞNçSNHÏø#áxIÙŒ¡;ê? *¡„Ðrú–§Ž£Ëħ¸óä>h	Kur— FäP¡wåÙVÒᥬPu¨3ZB‰ŸŽÈç„Ïû®Òá(MnL|
—Ü.G}Yƒk²ýzÉè~ƒm
endstream
endobj
436 0 obj <<
/Length 270       
/Filter /FlateDecode
>>
stream
xÚmѽJÄ@ðÿ±ÅÂÞ˜yÍ— pppž`
A+±RKEÁBÈ>Z:_#oà–)BÖ™½wáGf6󱩧ł2Ê:)¨:£òœžrójÊ’£UyL=¾˜umÒ;*K“^qܤõ5½¿}<›t}sAü¾¡ûœ²So€qĬ¼=f¼ï–›9fîðùÅ©Ëh€¤FŽ÷PC@s€>ítü©“óh¤G˜[†€
´Rd‡ÔúÃJÉ	 "
h"ö|š÷<zØŽÙtÄí!Í#ݲsi‘DÚ0$§'x,.$cq/õcÁ÷¢¿­,±ÒágJ
z·ß\ÖæÖü­U
endstream
endobj
437 0 obj <<
/Length 208       
/Filter /FlateDecode
>>
stream
xÚÍб
Â0à”…[úÞ˜V´…ZÁ‚N⤎ŠÎí£ù(}„ŽJÏK‹ÑÀ@È—„ûá.‰Çé#œòfÌR<Åp…$å{d®æãxLÜa’‚\ñ+HµÆûíq™mƒÌqct•£ð‰tHTý€´#>EP3žßs‹Ò raJ!úÒ!L½Ñv(]p†gÑt.8÷ЭxYÔ4}k]FhaZ7¥C|¦¢Ý©üÛxÞS)¨õºÞ‰ZX*ØÂ¬Sšd
endstream
endobj
438 0 obj <<
/Length 155       
/Filter /FlateDecode
>>
stream
xÚµÎ?AAð•Wl2#˜ØdKÉó$¶P)D…RA¨9š£8‚òbìóÆóË|3ÍüÐz´8*ãqqïà!ælK,Ýêf!‚™ç+˜´ÀËùzS/§èÀ4¸qh·TQûƒÒy”~1}áÉ„3îÌMPu|˜žðf*¡e´ðz”7"êÈ…`–`_ÂâSt
endstream
endobj
439 0 obj <<
/Length 203       
/Filter /FlateDecode
>>
stream
xÚMα
Â0€á+…Cè½'0©ØÚAª‚ÄI7ûh}”>BG‡bÌE1	䃻døÓA_æ$)å; tD‡/8ÌÌ,yä‡ý	…bCÃÅÂlQ¨%Ý®÷#Šb5¥ÅŒ¶	ɪA¨uÎDDµfcßÊ9ñ-O_pjÏ·3ðmß—3ômœÑß®
ïýäð±5·áŸ~¶66¼fƒšÃ;_+­QÅáqÉšo&V—&9Ô ùx¾ç
×øûdœ
endstream
endobj
440 0 obj <<
/Length 300       
/Filter /FlateDecode
>>
stream
xÚ]Ð?JÄ@ð¦˜"{¸3'0	®›ë
¦ÖÊB¬ÔRˆ¢°U’›x
ËÜÀ#˜8åÁøÞäŸIñ¿oŠóE«ÓÕZŠ&>Sç‘zÅ‹ˆ(	Ïb›ÿVEká_á«ð“kõöúþ$üíþB…Âß©»P÷"Ù)àÍ·é´$›
£•NºšH’òA?%®“A^
à|‘6¤ï^ì£@Å(.§: \=
)ʛɠâ¼Wš‘ªQY;àXývrÊšTfÀŠ©Š;£è¬ÈÀ‰£<Ö+fT‡QR«‰÷ª8ä‚vÊ™– Y±eKÍa¦
hd'ÚÒþI~¶:t'mi «¹ËÙª ñ#‰JkšRBÞÔVËAn+q™ˆñ饙Ê
endstream
endobj
441 0 obj <<
/Length 291       
/Filter /FlateDecode
>>
stream
xÚ]ÑÁJ„Pà#..œÅøÃÌ}‚Ô(u1 Lä"¨U‹hU-ƒ)
\úhΛ½€ÐÆ…x;ç\G-PüëÿŸ(<‰Ou Ïè%œÇú)ÄWŒbZ¼äƒÇÜfèßé(FÿŠvÑÏ®õûÛÇ3úÛ›¢¿Ó÷¡0ÛipM`L=GgŠ hTà6GÐ	xŒŠa,
B9Ǫ(A	R}a9¡²Ø¬+ð,jX0ï?r¯•@5°dì'´ÛÂÆ¢ƒ„Qp,œÚé!@{F5Á(IÍ”’å€T@‘ÒÀõ£S’	_Ò
=ß#¤ÂÏ% HÊŒVè–¿ HΈ^Z™ùƒGöÉ¿Ü
(xš\Œ5™/3¼Å_Ë||Á
endstream
endobj
442 0 obj <<
/Length 266       
/Filter /FlateDecode
>>
stream
xÚmбN„@à!$Óð;/ ÀHlÜä<)L´²0VjyÅ팷ƣð”äpþ9L0@¾e†ef§./ëZr)6r±]VWòVð«R£¹ÔÅœzÝó¶áìIª’³;sÖÜËçÇ×;gÛ‡Ñ÷<’¿p³"ŠO„ËO-“±.”4Ð7RD×Ê‘S4áEúYÚRÒzcéf‚ÒcÅ=¶T‰‡h\KΕÿHg:Ãd@ůqè¸_eÂÑ\·‚oÿŒãÓ™“ÍŒšEc†¶¼@[ÆÑµWðK›‡·†Y6'
ÌPÇ¢ÕѶ’·‘›plЬ>ß6üÈ¿ƒmyä
endstream
endobj
443 0 obj <<
/Length 208       
/Filter /FlateDecode
>>
stream
xÚeÎ;Â0ÐT¼ôõ	H«*0V* Ñ	&ÄŒ ˜Û£õ(=BGÔ`‡O1$ÏN;f2Î2LÐК¤h¦xLá†ó„Sg(JÐ[4ô’NA—+¼]ï'ÐÅz†)è9îRLöPÎQ¬µå°j¥¢Nå-ÑrÄ„TÿžD#ɉ~ –T?Bª¬”„frOMPÕ¨sÐÈ`à;¤vôî)Gÿ/¤O7ºr$òi%±O#É}jIå£$Ö£w{ðÆÚç?°(a/5ÿsR
endstream
endobj
444 0 obj <<
/Length 261       
/Filter /FlateDecode
>>
stream
xÚMÐAJÅ0Ð)]fa/ð¡sm+¶"ïìBЕqõuéBQp×­Gɲüiœ™hMIyM:™ÌdhOúsj錎Oièˆ'Ͼa?ðbKýEú³ÅíˆÍõ67¼ŒÍxKïŸ/ØlﮨÃfGµO8îÊceID``g&@òY”â›ñ95³ü3çØ•’#­Ë™œœ¥ð	“fW<@Ô‚€E¿Çs>‰(Rµ§’:$ÓV.Á»¹bãAû*3ÂJêËü´€î«Ê˜sìJ´¯Ú›?&¡JI_B”´›)J—rí&|	eàýüD¯X‡×#ÞãdŒ?
endstream
endobj
445 0 obj <<
/Length 255       
/Filter /FlateDecode
>>
stream
xÚeбJÄ@à?¤Lqy1óš;ÉåÄÀy‚)­,ÄJ--í‚É£í£äR®\g& wÚ|°ó'ìü[”‡å1Ϲäƒ#^¼<áǽP±’¡ŒSòðLëšò[.V”_ʘòúŠß^ߟ(__Ÿ³œ7|·àù=ÕP¹…aHÂ(fîãTÆÈ AêÄ#{Ľš8=N¦Ý¯™Ø#Ã_+ÑíÚAïžtjÖ›£4HÃ`~AWÓQ‚~,¨‚·@Ekÿ¥flF[bÛ³î[ªúÏ µ~”ö“-´½(½ÛN[¶N£ÏA/ñ£¼†V—í­‹³è¢¦ú?Fj¤
endstream
endobj
446 0 obj <<
/Length 214       
/Filter /FlateDecode
>>
stream
xÚUϱjÃ@`ZîB­'¨ã«S0Òâ¡ÐNB§¤c )-t³ÍâGðè!øz²3HôñKh{~\.hN™í)'—Ó)Ã+º,ä9Çqs<ã¦Äôƒ\†é>Œ1-_éçû÷ÓÍÛ…é–áæË-ÏÕÞ±wzð´¶L“Ô
73ˆnb¤. fV÷c†éF ÓI,—m%‰¦‘¬5µ¤Ò€Ä+I¤¹IbM/1šNb5Ó'ë1UÞó…Wà®Äwüݦpt
endstream
endobj
447 0 obj <<
/Length 293       
/Filter /FlateDecode
>>
stream
xÚeѱJÄ@à	[¶H^ °óšäð.¹êà<Á‚WYˆ•Z
QìnßÌ;ŸÀb!eŠpëÜn6âÚ}üÃ?L=;^ž`e…G3$Î+¼+ù#¯”8_Ž£Û¾nx~…Õ‚çç”ó¼¹Àç§—{ž¯/O±äù¯K,nx³AcúÔ¦µ:¨sÒñ`§íõ+	ÑàÝEz’òb¿’^±ÓŽ^‰“ñŠHY ö&¡&
^T'¦{m „¤G©Q™PTjsªIÒ‹ªÔNê„Jœ´W¤„Ê1)T(¡Ú@	I{½;e$åõ!­êI¯ >Áª¤A|Yí½À(ß¡$ˆ>€è¼R'úoª')«á¤U?‰öRD~Öð-ÿ:‰­T
endstream
endobj
448 0 obj <<
/Length 275       
/Filter /FlateDecode
>>
stream
xÚeѱJÄ@à	)¦0/ É>¹È™CÎL!he!Vj)œ¢BH-¾IÀÂÒ”W„¬³3ãA°X¾ewög7ÏŽVÇva—4òS{²²¾`îë…/ýäáצ·6_bzI«˜VWöíõý	Óõõ¹Í0ÝØ»Ì.î±ÚXœŒsÿCÃõáЀøAdí1 mdçu¶¢ñÐáHlcµ`˶»­Êm ùìÄ/õ›ÛAôâ$šQÝÍ
ÿçî÷Oó>‡jáÄZ&è¾?èJ6lKÎe@<€„!áü…ZCÄn!òϽHodn#iðXŸ©.œä7|pG_Ò¸‘u{w€Þà/:¹wÇ
endstream
endobj
449 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚmÏ¿JÄ@ð/lq0…¾ÀÁ͸YeMs8O0… •…X©¥ ¢`g-’GH™âÌ:3ÛH³?fÿ|3{NªS.9T²Tg+~ôN1J]ji'O¯´kÈßsŒä¯e›|sß_/äw·—Èïù!pùHÍžSáÒ4ÇM~ºB©a\d¾e’ÐE'—§´XµGšÐb­tØf$›oJ¯!‚†à¸wÆ !

ÁjXã6£!pã`zãW_£Hí“C®‘3—°>2ÄÖ\†_Â&Òßþ£66ɬgÐUCwô¡€hÅ
endstream
endobj
450 0 obj <<
/Length 212       
/Filter /FlateDecode
>>
stream
xÚMÎ?ŠÂ@ðoH1ðš\@È»€Nbj£àº°)´²+µ´P´$`‘No°g‰7ñ)S„dgFA›ï/ê÷¢ˆ}q7`Âo:PhŠ>‡Ãgg³§iLjÉaDêG—IÅ¿|:žw¤¦ó/HÍx°¿¦xÆ@@6/ïcGÇÄP‰Âà”¨!×Rˆ^!ª'“ÌâTH3=™â,ÑšÅæ×R˜;÷â…g¹X²Kž%Hs$h%Æ¢uõg·+>
stream
xÚ]ο
‚PðOîœÅGð¼@]ÿéb`955DS5¡öfö&>‚ã$»)5üÎð}œÃñü‘Ë6+X8!Cо¡%j¡•P¦f•¢¶J`Rôò¢Ûþjµ×Ÿæ—­ùZzêFB”!Ì‚ž¥_©ºC4KhEoçM>
endstream
endobj
452 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚUαN„@àÙPLÃ#0/ ¼æHÎ3‘ÂD+c¥–íH ± Ó7ðY0¾ˆ@IAXÿÝcCl¾bvæß?;9Î2Id#G©d¹¬Oå!åg^å&²Þ^îŸxW²¾‘UÎúcÖ奼¾¼=²Þ]IÊz/·©$w\î…ˆÔÌGï	~=ÑBç‰Oá
\N nk¢m`ˆª`Â\MèðÕd³G:5"ìÀ€šÕ»>ƒfÆâ®g¢ä|w3±ãÇòÞŒT8Ú¦¢º¥ŠLH[e"4ûü 8
¿Ð6IõÔŸ—|ͬÁkÞ
endstream
endobj
453 0 obj <<
/Length 193       
/Filter /FlateDecode
>>
stream
xÚmÎ=‚@à!$¯á¼èòS
$Љ&ZY+µ´Ðh²…‘åfx“=%-l,¾f&™LCö9áQÀQÂÑ„)LLès›ý‰¦‰
‡	‰…‰IK¾^nGÓÕŒ9oöwTä”€Ý×pŸ< ÑAZ-¤Ý@:ÒÔh½M¦,ÃÑ™òTYõ(ûÖPÃ
zãõG÷ãߨ IaévíÁU.R8Uk®èÏÍZÓ¢B
endstream
endobj
454 0 obj <<
/Length 216       
/Filter /FlateDecode
>>
stream
xڕб
Â@Ð!‹? 4? ×Zµ¤­`A'qRGE¡C©~Z?ÅO¨[©&‡á\îA.ärI»ÛêôÐÄf›–ƒ¶ƒÝ>n,؃íÒµ‰N¯Ì­w0A.ÐvAN(2œâñpÚ‚ÎFhpi¡¹‚0@!D-%ŒŒð\"ùƒ¸ŨÞr"Ë®R\uêŠTÇP\(z>Sa¼¡Ø§#|¡sf’ÌC§¢ÈuªŠLç¯1>|Sþ¶Á$^IÁk,b&â…rŸˆñÕs\
ãæð;ø]ª
endstream
endobj
455 0 obj <<
/Length 236       
/Filter /FlateDecode
>>
stream
xÚEοJ1ðY¶L“2/ Ù¸{ºÀy‚[Z]!Vz¥…¢ ({ûh_$°¹"¬Î,»ÚüŠI曯^ŸSE
º5Žê=:|ÆzÉÓŠÍôôð„›íŽê%Ú+ž£m¯éõåmvssAí–îU÷Øn	@ð‰ÉëE2	ÊȨ èž1½JàAE8èƒA‡b„räÈßg|¯FÆí‰Ã„äÌd¾]¥ 2÷ÑG€d˜÷Æ3úKê–‚ú'Îè‘'BÇ¥„žx`:!s\ÁIŸ²`~zNx	/[¼Å_¨TdW
endstream
endobj
456 0 obj <<
/Length 229       
/Filter /FlateDecode
>>
stream
xÚUϱJÄ@Ð7¤^“ò~@gãfa„ÅuSne!Vj)¬¢`•̧åS"þ@Ê-ÂÆûFaæ0Üa.wª³Óª’™,䤜NžJ~å¹Cˆøü÷æñ…W5Û;™;¶×ˆÙÖ7òþöñÌvu{)%۵ܗ2{àz-”
DfJ £HŸGº„"|„Z¥ÑÖ¦ÁçÑԠÛ)ä€ò`ötfTvhÌ"Ã?|@‘×QZ×計VШó@0ã1ØE–Îã×¶-eý¶ƒÒƒ¯nOæ;`ëDŽhI|Uó†´éd"
endstream
endobj
457 0 obj <<
/Length 187       
/Filter /FlateDecode
>>
stream
xÚ…Í1
Â@ÐR,Lá^@ܹ€nŒ¦¢‚)­,ÄJ-m5âÅâMö)Sq79€3¯øÌ?ŠÃ<æ~ÈQÂq̇.ì6µŸý‰ÒŒô†£€ôžIgK¾]ïGÒéjÊ!éoCv”Í^a JH˸ìçø;%ü¢‡ŽB·‘Xœ[O”ëÔŽgUð[¥kM•4FF~ŒúêÕxçÊÏ•€ÓìBTðhžÑš~;
9õ
endstream
endobj
458 0 obj <<
/Length 248       
/Filter /FlateDecode
>>
stream
xÚUαJÄ@àY¶X˜âòr™ÐM.ÞA\8O0… •…X©¥ ¢íeå
_ë|“XÙFlR,‰3…m¾â˜ÿ/ʽe4§Ýœög4/é6ÇG,r|ð{¹¹Çe…ö’ŠÚSŽÑVgôüôr‡vy~L9Ú]å”]cµ"Ð-€"ÀŒ4ÉÈ6"ñn"ja
‰g\ô
ôê½… ßÃ}abZvL£ºRÈ´WÝ€î¸Wq‘þæÏz=Aè…æ³ã=AF­…Zp2Ǥ>}Ýþ±áÄm¼§ÿ1¾fxÔ‘0Sè!9„¦ƒTxRáþé^ñ
endstream
endobj
459 0 obj <<
/Length 172       
/Filter /FlateDecode
>>
stream
xÚ}Ì1
Â@…á‹ÀæbæºÙ…è
‚#˜BÐÊB¬ÔRPQH!š£å(9‚eŠÝÙµ¾êð”(E!¨/I
)ÒtxA©M)»eÂ8E±!©Q,LF‘.év½QÄ«I	m%…;L¿ð>?9›:À^ÖÓj¬šµœŠµ7óœ’ùNÁ‚ÿ÷Ö=¨»Öj
•‘Av†G	¹Êç)®ñ®E‡
endstream
endobj
460 0 obj <<
/Length 266       
/Filter /FlateDecode
>>
stream
xÚUÏAJÄ0à?dQÈÂ^`0¹€v:B[¡LaÁ.]¹WêR¨¢ÐU'GËQ2x€‹É¢t|MUÆÕG^Âÿ¿dùéyªæ*W'©Êçê,WO©xÙ‚†t,¦›Ç±ªEr§²…H®h,’úZ½¿}<‹dus¡R‘¬Õ==ˆz­˜Å€È!ò|¯e£2ŽL»Äñ²ä[+1“-ÿ2R•c;“–íë¶2l ›IÓTšõAp©ÝfÒvàî@tc[¥§Ö
èÙÿư`æ)ôÏaTzÄCY?›ô£´‰/C	÷EåîPÚÌ5¡„Û&„së~´¡„oeŸôs*ÁP%Äe-nÅ7ã7x`
endstream
endobj
461 0 obj <<
/Length 225       
/Filter /FlateDecode
>>
stream
xÚUϱjÂPà?ÜáÂâˆ9/Pc0$Bj¡;u(ÚŽ…V2H¼à‹åQî#dtí¹É`]¾á¿çÿáÆÉ8ÉxÂ)?DÏxšògD¿GNxšõ/ß4/)|å8¢ðYb
Ëo7»/
çëKºä7é¼S¹dÏâ蓺øù@7=æÊbTªEV´žÓŠUш?âI4›öà´õMÔÐâÚç;žØ@ê½A¯êmQSuj#Síêõ}7µ÷ÝÈ~Ô9ìÌÜ`^¹©ÀBË×詤ú’tUž
endstream
endobj
462 0 obj <<
/Length 190       
/Filter /FlateDecode
>>
stream
xÚ=ο
‚PðO„³ÜGð¼@]ÿAµ(˜AAM
ÑT
Em¢B/foâ#ÜÑA´«BÃßóÀ›;¼â™ËÇþ‚¯.=È÷tè°¿œ6—;Å)É#ûÉ­ŽI¦;~=ß7’ñ~Í.É„O.;gJ
Àì+ˆ¯‚92´È=™
¡¥Y5"¡ÙÕ$*GE1À_ßkÐMŒAÛŽÌfb)­n!ê¢Êa—!"„ºt¨5¾}€6)è•GÏ
endstream
endobj
463 0 obj <<
/Length 238       
/Filter /FlateDecode
>>
stream
xÚ]Ï¿NÃ0ð/Êé!÷Òš?"R)èÄ€˜ZF¤‚@ê€j?šyó=D
ç¤$¶ôî|§Ïjr¢ŸÊ=.ÏYMxzÁ«’ÞH•]õlºo-_iVSñȪ¤âNêTÔ÷üñþùBÅìᆥ:ç'z¦zÎÈLfÜU¸ò›/à2¸k`£­¸Ö&[ˆ~‡ÜÀõ6bòÓùÝ‘Tƒ~4óЃ{ÚÎh{“FRýD“öJÎÊÈ*+o£Ft:‡^˶ñCØÆf\8ØŒ&‡†Ñôи%F–Ó¶öŸt[Ó‚~JlÓ
endstream
endobj
464 0 obj <<
/Length 182       
/Filter /FlateDecode
>>
stream
xÚUÍ1
Â0à_:ÿ`/PìMC”v(j3:9ˆ“:
U:ˆÍÑz”¡£ƒˆIÄ!Ë7¼ï‰é8âQL#NN"¦#Ç
¡ÃˆDòkgÌ%²-	l©cdrE·ëý„,_ω#+h§‡ö(ò¯¿ß0¬R‚GéC:k3•d¦V™ª4PÖ`	 {@û1¼ÿ€¡gy9x–Ρoi|KãZ”Cf1.$nðñÿ>
stream
xÚ=ͱjÂ`à2î’7hîèŸäÇ6]ˆ
fìÔ¡tÒŽ…*:H|±é(V;Qû¬›X¶’¤\FjÓÛeý%E)æM“TÌ‚k1åRvûO1Åjª±˜™¾Ç}H9S Ü	Á¹B†4øÅ7Z4^ë7^󝿬üð;r<×ÿŽÌȇ0È)¤ Êèz§»!ËB–e,; eá£__ß=Fʼ”W¹|/Hd
endstream
endobj
466 0 obj <<
/Length 178       
/Filter /FlateDecode
>>
stream
xÚ]Ì1
Â@Ð	)Óì„Ìt“MBÄ…Á-­,ÄJ-+³GËQr„”Btñóªÿá«|(¢œú1%Š2EûϨR.#Ê’ï²;baP®I¥(ç\£4º^n”ÅrJ1Ê’61E[4%o!¨Aü™u4§x@ÕuŒ/øòØÓñYë¬qDówßûk;Ôp×pÒÐjh´WOü:¬ðm83¸Â7Ä¡B
endstream
endobj
467 0 obj <<
/Length 216       
/Filter /FlateDecode
>>
stream
xÚ5É1JÄ@†áo˜"ð;ÉMB¢™……uS,he!Vj)¬¢°•›x¥9ÊaÊ)Bp’ÍS¼oÓ\^]sÉ-_TÜ´\·üZÑÕëK®õù¼¼Ó¶£â‘ë5w1SÑíùëóûŠíý
WTìø©âò™º##„M~!ÝJõ‰Ë&Ò	­zåt9FìaÆô¹õ¹u‘Þ"øYa€áÌ	b&ÄõÏ9ã1¬ÄM¤‘J·°‘^-}´ð‰?Ÿ°9:o,”U ÛŽè;¢VF
endstream
endobj
468 0 obj <<
/Length 205       
/Filter /FlateDecode
>>
stream
xÚUÍ1jÃ@Ð/¶L!]ÀXsxµ^ƒ¶¬"W.B*'¥Á	v+éh:ÊaKÆxl%4þ†oÝlÎ9üdxaØüa苬•2gëÆËþ@ËšôŽ­%½‘štý§ïó'éåë3Ò+~3œ¿S½b$PTˆ§h»$&wÊ;.CÕ¹
Yw¬þÐ
¡A
ß †¿
¸HD†‘)Ô€	TøC‰8À!ö#Çÿø_¢^P=”W¼ÉDC)´ƒö­kÚÒ
V²Aš
endstream
endobj
469 0 obj <<
/Length 238       
/Filter /FlateDecode
>>
stream
xÚUϱJÄ@à?l±0Åí·óš,GHŠ`à<Á‚Vb¥–Â)
r—GÛGÙGØ2ENÜS8¦ø`vfv¦,Ï]ÅW|測y]ñ³£7*žc]§—§WÚt”ßsYP~-iÊ»þxÿ|¡|s{ÉŽò-?8.©Û2"
5Bõ¶×+hßú……–‰&Q[Xo}ÝÂöÆïfô?´BÜÏôAqaú#ÐGØÏL0P3¨(E§È>QZ–ÐAj4‰ú„¯ÄNq1 ‚2!šQydqõ-«`l.ŒÜÝvL¿@WÝÑaÔ
endstream
endobj
470 0 obj <<
/Length 216       
/Filter /FlateDecode
>>
stream
xÚEͱJÄ@…áRÜ"y¹/ Iv"f!XW0… Õb¥–B…KœG›G™G¸eŠŒ,Ææ+þSS_l8ç’Ï
.K6—üRÐ;™ís6Õiy~£]KÙÍ–²Û%SÖÞñçÇ×+e»ûk.(ÛócÁùµ{†òÊAzD¬jÈUW>õsèô‚ÕnVÐnŠ¡í-t‹
¬ß+Ãʼ2ýü3¢;Ž_|
üJà%Ár,¡cQvŽ$FŸŒ)úêX£‘F \ì@7-=ÐsºJÅ
endstream
endobj
471 0 obj <<
/Length 243       
/Filter /FlateDecode
>>
stream
xÚUпJÄ@ð/l˜Â¼€¸óšÄäHŠƒƒóSge!Vj)DÑN.>Z:_ca;S„à·Q9m~³ó)³“âT3­ô8¯´,´¨ô>—')Œfº(¾îeÝHz­ÅBÒÆ%m.õåùõAÒõöLsI7z“kv+ÍFá˜QÁ¸‹Ø–Ú"qõ
Ißîé`{¿ƒ}w3ÁˆÕ¢™á›fÀÆÿaBì™»=ÑÌð3ã	ÓKˆ·žM;tŸÄ~®è±='sŸ.ìC˜Ë±ä
|G ew´†UuÌ‚%s‘LáárÞÈ•|–ob3
endstream
endobj
285 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F25
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ -2 -21 94 62 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 27
/LastChar 121
/Widths 472 0 R
/Encoding 473 0 R
/CharProcs 474 0 R
>> endobj
472 0 obj
[50.93 46.68 0 0 0 0 0 0 0 0 0 0 0 33.95 33.95 0 0 25.46 29.71 25.46 42.44 0 0 0 0 0 0 0 0 0 0 25.46 0 0 0 0 0 0 61.72 0 59.42 62.69 56.33 54.2 64.24 61.72 32.02 0 0 52.08 74.46 61.72 63.66 56.33 0 60.57 46.68 59.42 0 0 82.94 61.72 61.72 0 0 0 0 0 63.66 0 42.44 0 38.2 42.44 38.2 25.46 38.2 42.44 25.46 0 38.2 21.22 67.91 46.68 42.44 42.44 0 35.01 33.95 27.59 44.56 38.2 55.17 38.52 40.32 ]
endobj
473 0 obj <<
/Type /Encoding
/Differences [27/a27/a28 29/.notdef 40/a40/a41 42/.notdef 44/a44/a45/a46/a47 48/.notdef 58/a58 59/.notdef 65/a65 66/.notdef 67/a67/a68/a69/a70/a71/a72/a73 74/.notdef 76/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84 85/.notdef 87/a87/a88/a89 90/.notdef 95/a95 96/.notdef 97/a97 98/.notdef 99/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121]
>> endobj
474 0 obj <<
/a27 429 0 R
/a28 430 0 R
/a40 421 0 R
/a41 422 0 R
/a44 424 0 R
/a45 428 0 R
/a46 425 0 R
/a47 426 0 R
/a58 427 0 R
/a65 431 0 R
/a67 432 0 R
/a68 433 0 R
/a69 434 0 R
/a70 435 0 R
/a71 436 0 R
/a72 437 0 R
/a73 438 0 R
/a76 439 0 R
/a77 440 0 R
/a78 441 0 R
/a79 442 0 R
/a80 443 0 R
/a82 444 0 R
/a83 445 0 R
/a84 446 0 R
/a87 447 0 R
/a88 448 0 R
/a89 449 0 R
/a95 423 0 R
/a97 450 0 R
/a99 451 0 R
/a100 452 0 R
/a101 453 0 R
/a102 454 0 R
/a103 455 0 R
/a104 456 0 R
/a105 457 0 R
/a107 458 0 R
/a108 459 0 R
/a109 460 0 R
/a110 461 0 R
/a111 462 0 R
/a112 463 0 R
/a114 464 0 R
/a115 465 0 R
/a116 466 0 R
/a117 467 0 R
/a118 468 0 R
/a119 469 0 R
/a120 470 0 R
/a121 471 0 R
>> endobj
475 0 obj <<
/Length 103       
/Filter /FlateDecode
>>
stream
xÚ33Ñ3µP0P0WÐ52T2u
ÍR¹
¹L
@Ð*•œËåäÉ¥®`jÀ¥ï¡`Â¥ïé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢PÿÀäÿP
*ÈåêÉÈ(ª+¨
endstream
endobj
476 0 obj <<
/Length 85        
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0P°bC3s…C®B.ˆMÎåròäÒW0çÒ÷ž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ÿ €ËÕ“+hz¯
endstream
endobj
477 0 obj <<
/Length 148       
/Filter /FlateDecode
>>
stream
xÚ31Ô35R0P0UÐ52T06W03RH1ä*ä26Š(XC¥’s¹œ<¹ôÃŒ
¹ô=€â\úž¾
%E¥©\úNÎ
@Q…h ¦X.O ¶CÂu@\Å€ø3‚ðfáÌ ˜„ X„ Øžrãih4…ƃqs¹zrræŠH
endstream
endobj
478 0 obj <<
/Length 93        
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0P°bC3cs…C®B.ˆOÎåròäÒW0çÒ÷
ré{ú*”•¦ré;8+ré»(D*Äryº(üƒì*ËåêÉÈžã:
endstream
endobj
479 0 obj <<
/Length 210       
/Filter /FlateDecode
>>
stream
xÚuν
Â@ð”B–>‚y¯¥VÝ
~€ÄIõÑú(}Ç¥ñ’£¶î¹»$ÿ$Å
ijOQ2£s„7Ƕ¥”‡Óçš=c4k{‹&ÛÐãþ¼ ™o¡YÒ!¢ðˆÙ’˜ù
`-ÕZµWb¬–b *ѯEO'«¯?rûÓuùU;ÍMNu—ìm2Ôl¿T~7U7O“á-¦yëÐYˆÁÝë0ï÷ê4E_çºëUižR-ú™\e¸Ã/-©J
endstream
endobj
480 0 obj <<
/Length 183       
/Filter /FlateDecode
>>
stream
xÚuŒ±
ÂPES:²ÔÑAh~@_¯K§B­`A'qRGEçöÓü”úBcZÜD.gÉÍ=.¥“£©%—Kéhñ‚.¦>É·9œ1/ÑlÉÅh–zFS®èv½ŸÐäë9Y4í,Å{,‚¨_B‘:yDÂvA;ÿ5R`Àãÿd¬V«‹£Îã¬ñ¸ªýé~ðY”ª¹j2ÎúͰ}s Oö:\”¸Á5y\,
endstream
endobj
481 0 obj <<
/Length 180       
/Filter /FlateDecode
>>
stream
xÚ½Ž½
Â0€¯8·ô¼Ð4¦N…ZÁ‚N⤎ŠÎí£õQú;”œJÝ\Ìð…ûÿÒùlI	-hª)•?¡‹Æ;#I	u_9ß0·¨dª¤QÙ-=¯+ª|·"‰:jJNhò ïˆ:AÌ‚ŒkðÌ
0³vY\Õ¨iôah@ù‰¬ú_xØùþZ·ŽÛàâ‚UüD²ä
ü$ø‹àÚâßu}
endstream
endobj
482 0 obj <<
/Length 193       
/Filter /FlateDecode
>>
stream
xÚmŽ1‚@E?RL!G`. +¬šØH‚šHa¢•…±RKv8Gá”d×!R:Ékþäý=/BžpÄ£õŒõ‚¯!=HGNxÚo.wJRRGÖ©­Ä¤Ò¿žï©d¿âÔšORt¦tÍð 0@nÇÚÒµ¶òZ¿ök·ñ+§	J´AO\ ‹e.d?:+°¦Ðaz²qw"–B…_c(/,]ã¹oÐé¹­¥¹„k@›”ô ÍUH
endstream
endobj
483 0 obj <<
/Length 133       
/Filter /FlateDecode
>>
stream
xÚ32Õ36W0P0b#3C…C®B.#3 ßÄI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ€|…h ÊX.O†ÿÌÿ0ð±<Ûq}ã†Aø3“ÿÿÿƒ™É4‹Z˜ËÕ“+Û[þ
endstream
endobj
484 0 obj <<
/Length 128       
/Filter /FlateDecode
>>
stream
xÚ32Ò34Q0PÐ5UÐ54W04S05WH1ä*ä22PAs˜\r.—“'—~¸‚‘—¾P‚KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿvD`ÿ0HÿƒùêüÿD
õÿäÿ10ÿ`àrõä
ä­TTÀ
endstream
endobj
485 0 obj <<
/Length 89        
/Filter /FlateDecode
>>
stream
xÚ3´Ô³0Q0P0bC3…C®B.s ×ĉ'çr9yré‡+˜sé{¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þQ¸\=¹¹6VLÖ
endstream
endobj
486 0 obj <<
/Length 137       
/Filter /FlateDecode
>>
stream
xÚ31Ò³T0P0bcsc…C®B.crAɹ\Nž\úá
Æ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.OÆ?ÿøÿ7ü“ÿà_ýÿÿþÿÿðÿ‡üÿØü?ÀüãóŸÿ
Œþ3 ð?:`.WO®@.²dG
endstream
endobj
487 0 obj <<
/Length 190       
/Filter /FlateDecode
>>
stream
xÚ1‚PDÇPlÃØèç†X‘ &R˜hea¬ÔÒB£­p4ŽÂ()Œëw-hm^1“™Mìd6刧<¶œDÏùdéJqêÄ諨s¼P^’Ùqœ’Y9™L¹æûíq&“olɼ·¨,Þ@ 5Iˆô‰¼œî¿‡ èPÕA‹¬„MV#hü¶rèOÀë\š×ÿ‹áV1$kQè*-×:H§éHTÒ¡4ÐhYÒ–>Yñ]]
endstream
endobj
488 0 obj <<
/Length 133       
/Filter /FlateDecode
>>
stream
xÚ3²Ð36W0P0b#sc…C®B.#rAɹ\Nž\úá
F\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O†Ø?üáÿðÇþßúþøûŸáï†ÿþ?`øŒþ3@Ñ?Š—«'W Ì“C¥
endstream
endobj
489 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xÚMÍ;
Â@à	ir„Ìt³‰­"1‚)­,DÔÒBQ°r÷h{”!¥…dc¾æŸW¢£„"Š©¯)‰(ÓAããTˆ†]g¼Dµ¦8E5—U¹ ëåvD•/§¤Q´Ñm±,L¿Àg¶³Eö)ðmž}À?Óɬ¨[¹† ½Ñ@€ÛP&ØÉ„ª/ÿg"vâk tìŒeÙ3²¶wžòÈÎJ\ánONØ
endstream
endobj
278 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F19
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ -5 -21 58 62 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 46
/LastChar 115
/Widths 490 0 R
/Encoding 491 0 R
/CharProcs 492 0 R
>> endobj
490 0 obj
[23.07 41.52 0 0 0 0 0 0 0 0 0 0 23.07 0 0 0 0 0 0 0 55.36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64.58 0 39.9 42.9 0 0 36.91 25.37 0 0 0 22.14 0 19.84 0 42.9 41.52 0 0 28.37 31.83 ]
endobj
491 0 obj <<
/Type /Encoding
/Differences [46/a46/a47 48/.notdef 58/a58 59/.notdef 66/a66 67/.notdef 95/a95 96/.notdef 97/a97/a98 99/.notdef 101/a101/a102 103/.notdef 106/a106 107/.notdef 108/a108 109/.notdef 110/a110/a111 112/.notdef 114/a114/a115]
>> endobj
492 0 obj <<
/a46 476 0 R
/a47 477 0 R
/a58 478 0 R
/a66 479 0 R
/a95 475 0 R
/a97 480 0 R
/a98 481 0 R
/a101 482 0 R
/a102 483 0 R
/a106 484 0 R
/a108 485 0 R
/a110 486 0 R
/a111 487 0 R
/a114 488 0 R
/a115 489 0 R
>> endobj
493 0 obj <<
/Length 105       
/Filter /FlateDecode
>>
stream
xÚ36Ô34R0P°b#CS…C®B. m„@
$‘œËåäÉ¥äsé{€IO_…’¢ÒT.}§gC.}…hCƒX.OöòìÔÿùÿÖÿ±ÿ!ÿý—«'W áš(
endstream
endobj
494 0 obj <<
/Length 96        
/Filter /FlateDecode
>>
stream
xÚ36×36Q0P0T0´P06T02WH1ä*ä2²
(XB$’s¹œ<¹ôÃŒ,¹ô=€„§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ÂÿÿÿÂ\®ž\\Ï5^
endstream
endobj
495 0 obj <<
/Length 187       
/Filter /FlateDecode
>>
stream
xÚ33Ò32Q0P0bSKs…C®B.S3 ßÄI$çr9yré‡+˜šqé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]øÿ	Æÿÿ€9ÿ?©úÿÿ€Ä~0ÿa``Êü«cRòÿØ:ìÿ€5ÚÿSõ`”üÿ†ÿÞÿØ)ö`Šñ˜R( Cþƒ^
¤yÄPÀø:ô5>ŠËÕ“+Šc
endstream
endobj
496 0 obj <<
/Length 291       
/Filter /FlateDecode
>>
stream
xÚÑ1jÃ0€a
‚·øÒ	jR'YbHS¨‡B;u(™ÚŽZڭؾI®â£ä=˜¼JïIq‰ÁT`ø$/ÿ“V‹«ëµIÍÂ~«ÌäkóšÁ,s»OÝÖýxy‡m	É“YæÜÙSHÊ{óõùýÉöáÆdìÌsfÒ=”;#ìÒðkTÑNUç„ÝDö3’8L¤ð4£1è¤裵>+*bôùT)ôÑ?£dÐ C~yE}ˆŽºQÂKZq¾<Šš¥¬8ZµT°b+Ρ1ܼÏ×nÎN”¿q÷Aªœ(ºF».äÀùgE¤žã…¸$
<†àAéÄñ‚óGÅ.!Ñ šÕP¼Ï/X-Å{Uü°­«£wÅî¿‚ÛáÆÁÊ’
endstream
endobj
497 0 obj <<
/Length 235       
/Filter /FlateDecode
>>
stream
xÚ¥ÒÁ
‚@à‘Â\zç	ZÑ<	f‡ N¢SuìPÔ¹ÍGñ>
stream
xÚÅ’=NÄ@…MÉÍ!¾$)Èf«‘–E"Tˆ
(‘AKr®’£äS¦XÅØ“Ù,=S$_>
stream
xÚÅÒ½
Â0ð‡Â-}„Þ˜ìÇV¨ì èä Nêè èl­ÒGpìPz&±M„ˆÐÉ@á—„$åÓ$BgüK|Œ<p8äs9‡3d°-Æ!°%_V¬ðv½Ÿ€eë9ÀrÜèï¡È‘ä°øxë©Ô)Q©TóÅ”ïxÔô²©íe¥4ÈG¤ªzMÄa)[¼"ei=šAikÊëL¹ôM¥!çCÕhÕ×ø.TC×Ê#³¦igÖ^w†£o¶êªî´î¾J„-ã$äŠKH…­We¦N'Q<‹6ð¯?K
endstream
endobj
500 0 obj <<
/Length 173       
/Filter /FlateDecode
>>
stream
xÚ37Ð31R0P0b3S3…C®B.3rAɹ\Nž\úá
f\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O…ÿÐ@€>À`ÿAJ3Bi†z(m¥å¡4?”f‡Ñ 43š+ÍøF3| @3€hf4;”æ‡Òõ`è+¢h˜z„~vö1’HƒiP¤~ ‚ærõä
äœÏ
endstream
endobj
501 0 obj <<
/Length 300       
/Filter /FlateDecode
>>
stream
xÚÍÒ½N„@ðÝP\2
pó
ÄX‘œg"…‰Væ*µ4Q£5÷&÷*<
°åÆ™`¹øQ{ù±,ìÜÌ¿,OÓsL1Ç“Ë3Ì/ð)ƒ7(r^L±ž<¾Àª†ä‹’k^†¤¾Á÷ÏgHV·—˜A²Æ‡Ó
Ôk4ü#gÌ«`IdßKD-XûHT±ú…HžQìd[Ïë;'Ûøë¥n—ü1‰ªÞ“ÕÆi/jœ®óÇ{;_…ã÷ƒZŸÓöX\‹?b.®´
ê¿«QÙ_äËó%þ5Üt×õIÿ¥ôs&µüAÚÉciÇUÝ h’NËNSµÓ¤#þvPHDH‰&‡4MÎÒnL˜Ï•OÝ!“è|&%­Ig]‚«îàê¤ùr
endstream
endobj
502 0 obj <<
/Length 104       
/Filter /FlateDecode
>>
stream
xÚ31Ô37R0P0aK3…C®B.cS ßÄI$çr9yré‡+›ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÁlƒü†Q3è¸\=¹¹‹iƒ%
endstream
endobj
503 0 obj <<
/Length 149       
/Filter /FlateDecode
>>
stream
xÚ33×36T0P0b3#3…C®B.Ss ßÄI$çr9yré‡+˜šsé{E¹ô=}JŠJS¹ôœ¹ô]¢ÆÄryº(ü‚„hû£4š½?Í£ðÓò8h{4ºþ¡¡43”f‡ÒòPºB3ÿÿŽ×ÿÿÿ¤¹\=¹¹¯½¢a
endstream
endobj
504 0 obj <<
/Length 278       
/Filter /FlateDecode
>>
stream
xÚÓMJÄ0Àñ”.
o“H›˜dŽÕÂ8‚]ãÊ…ÌjtéBQ讽‰WéM캜Å0ϼøW:…Ðþ(üyÄšüt–+£Îܲf¦òsõhás·aˆt²}†eú^-æ oÜ.èêV½½¾?^®¯”½RV™
T+…xþi[Dü2hé;
 Ê_Ð.°#ÄŸ
ì	ÉGˆf È,D¹#¤²½ð¯	H_W3H|ÝÀ ¦ ¨gQPÜMAP]Òr :)8P]Ê‚‚ŠiP]Í‚ê®.êY¸ ¸cá‚’ö4ƒ<Ê]:‚l_Œ@êcà0‚˜æÀÂÏŽ… áðáù»%Ãåœü®+¸ƒ/]zœ
endstream
endobj
505 0 obj <<
/Length 277       
/Filter /FlateDecode
>>
stream
xÚmÒ1N„PÆñ!$ÓpæÉ*l¢!Y×D
­,6Vji¡Ñd;<Úe`Iaö93o,(H~<Âÿ+ mÎÎ×TÑŠ¯vE-½ÔøŽœUr+žßpÓcùHÍË[>Ų¿£Ï¯W,7÷×Tc¹¥]MÕö[
!@‰õí:,è]øáW`¬Ñt~]'Óå¬!LêdDUHZ•KZ•i:j4¥®DGD i•¦Uš6L…KGT:¢Ò´JÓ*M›Â¤Á%#Q’Ž’t”¤'¦Ô%#Q2bâ´‰Ó&N»Ž¦ÜÅ#&N›8mâ´+L\úÉT…+we®tA‰f
®ÎU,(we#Ä¿RWâ‚Yû›ðXMÑ×
endstream
endobj
506 0 obj <<
/Length 286       
/Filter /FlateDecode
>>
stream
xÚ½’±NÄ0†sb¨äå!~èU ë1U:‰H01 ›€‘sîÑú(}„Žª;¶RÐ!F:$_þØŽk{sqVã
×xZa½Áõ%>WðuÅâ
k»yz…måÖ”7,CÙÞâÇûç”Û»+du‡ì³‡v‡Î¹‚:—>¢˜ö‚H%Ï0„èhâ}ÁGOÉäàNÄhI¢öl+÷­›Ñé"‡$§>ªx$O‰‘Aâ9Ñ3Hà:ƒ7¼¦ICc0C0˜Â” üdÿæ4rªGðËZƹ3h醥AŸ¡°:wß*¯½8,´;$Á¥qQRrº¤WEö¤½g‡Ž½{	!“Љ̳A:>6@
ÃøcòhÙ°Áu÷ðž¤ö}
endstream
endobj
507 0 obj <<
/Length 185       
/Filter /FlateDecode
>>
stream
xÚ37Ó35V0PasC3…C®B.3s ßÄI$çr9yré‡+˜™sé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒ„ñÆøcüo€100ÈUòƒŒÿ@õ ûPˆ3øúÑ v,ŒÔf [Í=èn†ûæ/¸O¡~0”ñÆ85†)šˆcp¹zrrÚõÏ\
endstream
endobj
508 0 obj <<
/Length 251       
/Filter /FlateDecode
>>
stream
xÚ­Ñ1nƒ0€á‡: ½…”wÖ 4ÈYŠD©†Hí”!ê”d̪™áh9
GÈÈ`ñj°1RaKd}22²äây™PDzŠI¾P"éãeDÝ“¬Ì›ý	³Å–d„b­—Qúù¾Qdo£ÈiSô…ENÜôèÅW§Æ©uâJ3d€”k«¾YA¿¥W©¥í ù©²
fuýM¿<7'MÕäž»¥ïnžÚÝ€ASýwMRàö
\S¿ošÖ'ðæŠß%u—«vªrChë2<š>úï¿\+#_ç2ò˜o¶cibBרÂ÷?ñi	h
endstream
endobj
509 0 obj <<
/Length 305       
/Filter /FlateDecode
>>
stream
xÚm‘½JÄP…OØ"p›¼€yÍf‰‘aa]Á‚Vb¥–ŠvÉ£åQò)#\î83w‰.x›Ìï9“zu¶ªhI5–t^S½¦—Ò½»j-Á%]2Ïon۸⪵+n$ìŠæ–>?¾^]±½»¢Ò;z,iùäš<àH9àØ0w{‰1‰àÛcÁ]Ω<²	h=òQŠ=6	zh¾,ÝŒ$üûýd˜ˆà1bŠðÐ׆«ا¨#X«êéÉA}Éëă¼ÞiMËÖ©¥S¬Ñ-d§ÚpíAÜiÈÌ$
r¢ñÉ0cúðGÖÝ‘»Ò"Øyäž*\ެŠå'¨ªÍ5 ‰Ðš?ŸÛ)¦ÔœhVVQ¥»nܽû÷ó×
endstream
endobj
510 0 obj <<
/Length 162       
/Filter /FlateDecode
>>
stream
xÚ37׳4T0P0bs3s…C®B.3K ßÄI$çr9yré‡+˜Yré{E¹ô=}JŠJS¹ôœ¹ô]¢ÆÄryº(Øÿ‡€D1þ1ðÿo`þÿ þˆÁ`ÿ¡þ˜!ÿ¡žÌ`G0ê æ5#F„Á€ñÊøñʨ †Áe0Œ2¨É`'â\®ž\\TÒË.
endstream
endobj
511 0 obj <<
/Length 208       
/Filter /FlateDecode
>>
stream
xÚí’=
Â@…G,Óä™è&"ù©þ€)­,ÄJ--mMŽæQ>
stream
xÚ}ϽNÃ0ð«J¡l¬ü¹³;Ta?ùìûpÛœ7k©äBÎjiÑÃkÍïÜVb»¹Ì7/;Þô¥­8Üj˜C'Ÿ_o6÷×RsØÊS-Õ3÷[¡&Òå±0’Æ`Q·Ð0‘|T*õM	*pŠÓŒ_¬°·ÃÅ2ô	$ŠL‡o1ÔJc4|îÐåÝœŽä~82ý;á eSz™ñéºÒ)<Æ8`¯ÍŠN9y{ƒÑ2Êhà›žøål¡—
endstream
endobj
513 0 obj <<
/Length 229       
/Filter /FlateDecode
>>
stream
xÚÅ‘;
Â@†7¤¦É2ÐM4ñÑ(øSZYˆ•ZZ(Ú	ñhà̶Ü"8ÎÆP+q›æ±óÿ3Íz­ ‡
¬ú¶±ÙÁµ;MÐÃV‘Ym¡œc€sd4ÁÃþ¸ÙŸÐ9Ä…Þ¢!Š8üˆ¾Â~Âúƒè̸¥Œ+‘fÜ’^Æ áÜke˜ÄÙ"eš,®”柈ÕtŽÞGd?ÀË„bú›$UÊ5â“ÒŠflì$*lóÞÍMgnó
´C¦JÙæhVÊ·3Ë®FÌàiÔp
endstream
endobj
514 0 obj <<
/Length 214       
/Filter /FlateDecode
>>
stream
xÚ­1
Â@E'l˜&GÈ\@7‘E±1#˜BÐÊB¬ÔÒBQ°’£í‘R¦gEì…áv>ÿ¯™'SŠÈÐ &3!3¦cŒ4#£Nq›ÃÓõ–ÌõRdÔùŠn×û	uºžSŒ:£]LÑóŒ’>
stream
xÚÅÐ1
Â0à”…·äyдÒ*N­`A'qRGEçx¯ä
¼‚7бCéó=q(8‰òÁ	ÿŸv«ÙŠ1Ä&]lwqÁ†Øy,ÖÐËÁN1‰Áy6án»_íûÍpa8‡•‚&:2)Ñ™¡BztòŸÊU™«ÇUN­ËÇ+æIZÔà^Ü>¡àj©‹$qÍ©ÂÆIMîMRÚ'*ùmseÿc¨ÒL@… ÜI
9Làwn¶i
endstream
endobj
516 0 obj <<
/Length 226       
/Filter /FlateDecode
>>
stream
xÚu=nÂ@…gåb¥i|Ï’eÅÒYâGŠ‹H¡¢@T’Djûh>а¥äÉÛX
ÉŸVï½yšyñÏÞËD¦òä%¼J˜ÉÁó™C€8‘0Ï/*v[	ÝdvÕ»\/_Gv‹¥xv+Ù¡hÏÕJˆÊžˆ2Õ†(Wí ¨F¢ºO†¶öFF›l@²Ä&¿%`Ý}b
—ÝÈzdüeL,¢>2½¿Ýÿ°~dgygL[41Ƕ¦³Š»ÚÖhKy“êJBaûsµQø óºâ
îDŠ
endstream
endobj
517 0 obj <<
/Length 167       
/Filter /FlateDecode
>>
stream
xÚ36Ñ32V0Pacs…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þ700ðÿÀÀPÿÿãÿÿ?˜ÿ÷ÿaàÿÇÿAþ<ø$ìADýÁÿ‡áÿ0ÁüH0¤ÿA6b#È4oˆúÿ@ÁåêÉÈèü® 
endstream
endobj
518 0 obj <<
/Length 281       
/Filter /FlateDecode
>>
stream
xÚ•‘=NÄ0…ÚÂ’!sH›´––E"Tˆ
()@Ðß`¯ä£ä)·ˆ<ÌØ‹Å$Å'ÏÏ{ÏIן5-5tA§ç-ukZwôÜÚ7Û5¤oßZO¯v3ØúžºÆÖ×R·õpCïŸ/¶ÞÜ^Rkë-=ˆÔ£¶ð„/ÀqZq€gÞ	XŸxÂqdWŒjï£Ip‹nIU¨ì¤iÿÀ+ÂÿñW%KK"5²-CiÖKìŒ #;–A˜ 58©E,˜
æ½k΢SvàYlK³ S^`‰%*#ÃGÝÅ4dP€ãã”ɲ€1ê:¼^.ei³À¥üiþ‘C–¨žÌ%ý>+éÁ^
öÎ~ÝèÈñ
endstream
endobj
519 0 obj <<
/Length 167       
/Filter /FlateDecode
>>
stream
xÚ33Ò32Q0Pa3 ²TH1ä*ä25òÁ\Dr.—“'—~¸‚©)—¾P”KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE¡þüÿOb†PŒF±ÿSöÿ@Ôÿÿ€ÔÁÿÿ©ãìÿ©ó
ò ê>ÿ? uBýP?Øÿ©(ÔlÔ¡Dýÿÿ¿ùÿÿø(.WO®@.Jå×m
endstream
endobj
520 0 obj <<
/Length 131       
/Filter /FlateDecode
>>
stream
xÚ36Ô34R0P0b#Ks…C®B.#ßÄ1’s¹œ<¹ôÃŒL¸ô=€¢\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
5Œÿ˜ÿ7°ÿ?Düÿ #ˆ P¨¨’¨?Pÿ1ÿ?ÀH{ôp¹zrrÙðD
endstream
endobj
521 0 obj <<
/Length 220       
/Filter /FlateDecode
>>
stream
xÚÅϱnÂ0à H·ärO€“¢´bB*‘©Lˆ‰22´*+ö£¥êÀc¾c"û¿…	F,YŸÏ²ÿ³‹A/áŒû~oü:àÏœ¾¨uʰXoiT’YpÑ'3õ»dÊÿ|ï6dFcÎÉLx™s¶¢r‘­"?D+§c¥~DRãdZ¡ÞÛ+-ˆЭARÔ«.à·Z”£§T7œ™ÿrBŠ ‘³Ê°U. (]Ÿ«],ᮣD>
4À¶À§ù®±Hsz/iNW^`ص
endstream
endobj
522 0 obj <<
/Length 107       
/Filter /FlateDecode
>>
stream
xÚ36Ô34R0P0bc3K…C®B.#S ÌI$çr9yré‡+™ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ê0üÿ‰™˜qàÿÿÿ7 c.WO®@.„S—œ
endstream
endobj
523 0 obj <<
/Length 209       
/Filter /FlateDecode
>>
stream
xÚíÑ?
ÂPðˆC!Ë;Bs_ëZA,T;:9ˆ“::(
n>'Go qèQz„ŽJcªƒ¸îß—dûÚZ£E5eÚuj¶héâ}O²SÆò°Xc¡ž’ï¡Êu4¢Ýv¿BŽ{ä¢îÓÌ%gŽQŸàh¬@åÌ&àŽlJ2§æDxbΪ…çÔÎUdÂK¬
ÛØ9TùŠ»`Pá+XÜUò.<¼˜ÉS*ñ“©0y1ÆßÍŸoò³–^Š_ˆƒ'øøïü#
endstream
endobj
524 0 obj <<
/Length 162       
/Filter /FlateDecode
>>
stream
xÚ33Ò32Q0Pa3 eªbÈUÈej
䃹 ‰ä\.'O.ýpSS.} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹C}û?†ÿÿìÿ7€¨ÿÿ©Æÿÿ©öö€Tƒüæÿóøÿ10þŸ¡ö@¨ìÿÔê6êÀP¢þÿÿßüÿÿ?|—«'W ã[«
endstream
endobj
525 0 obj <<
/Length 213       
/Filter /FlateDecode
>>
stream
xÚ¥1
ÂP†#B–¡¹€¾[¥S¡Vð
‚N⤎ŠÎõh=JбC1&¶ÕE\|>øóó’?ádäùäј†>…c
&tðñŒA$¢GÁ´éìO˜X4
"4‘ÑØ%]/·#šd5#MJ[ùh‡6%·y=æ\0`..³ªYå°€óßAK<ý@\À@Q‚#6·§-WQwˆu©;Sðwð÷?ñkB·KƒnÏú•¾ÍÐ&jÑ×´…„–ìùû1³´Áa®>7k.ˆs‹k|]Åf
endstream
endobj
526 0 obj <<
/Length 227       
/Filter /FlateDecode
>>
stream
xڵѱjAàY,„i|çtïôN´Œ‚Wbe!V&eŠˆÖç£-ø>B|„-¯Xÿ•D„ÄT±X>ØÙeçŸíuÚLéJ+HÞ—,—×”?8»‰ô²¯ÒêGÛ¹äÛ)öÙϲYoߨŽ^ž$e;–E*É’‹±P鑪SݽêT+ðé†(5OTÓ@u%ƒBMwF=p§±ŒºoHý-euŸaø~ÏÿììÒnlÞ]£Tȇ`1æ)†6AâÆ¯bXiúDAãŸü
O
žñ¥ÜÆ
endstream
endobj
527 0 obj <<
/Length 161       
/Filter /FlateDecode
>>
stream
xÚ31Õ37U0P0bcS…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]êêþÿoüÿàÿÿæÿþÿïÿÿHôÿùÿ¾ü?æÿûäÿ1þß"~À‰`‚ÿãÿì?€ã ÁÀ€L 7ñÿ?Ðbl—«'W n
endstream
endobj
528 0 obj <<
/Length 223       
/Filter /FlateDecode
>>
stream
xÚE1NÄ@E?šb%79Âø0;Úì"ª‘–E"Tˆ
(·AKÜq­%GH™"б´4o4ßßþv]_ä+^sÍç™k{wüšé6[í{¹T^Ž´o(=òfKéÖdJÍ~|½QÚß_s¦tà§ÌëgjŒ8êU•ʇ R:EZ Ê·cªV¢ÿG@­‚V‡•ŠjçU'Øø„3r¸Ø¹Ó–½µ—£å:ªÓ	¾Fg	ñ¾©u·Ð1Ìv¥Mª#†bj¿2;Ý4ô@¿*	
endstream
endobj
529 0 obj <<
/Length 173       
/Filter /FlateDecode
>>
stream
xÚ31Ö35S0P0RÐ5T0¶P03VH1ä*ä26
(˜™@d’s¹œ<¹ôÃŒM¹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
Œ°ÌXv8Á'äá„=ˆ¨ÿ3ˆàÿÿÿÃ,X	 wˆ'€þüÿùC=„`?À`ÿƒ¿Aþ<Ø7@ïÿÿ¡ÿ? ærõä
ä
,t
endstream
endobj
530 0 obj <<
/Length 166       
/Filter /FlateDecode
>>
stream
xÚÕÊ+Â@ài*6Ó#0€í6ÝÚ&¥$¬ … (ŠD@@/G[Ç5ê°8¤Ã‚¨Á£¾ü"e9¥”ÓÐP!ZjîÑZ)%Ÿe³ÃÊ¡^’µ¨§R£v3:N[ÔÕ|LuM+Cé]MàDÌ!æßÄ a9PIÒcУd€/-x>ƒo£;wàê*”Ì!aVBÌÝð7õœ8\à¦ä¤d
endstream
endobj
531 0 obj <<
/Length 216       
/Filter /FlateDecode
>>
stream
xÚ}Í=jÃ``-¾A¬䳋M)˜òõPH§!SÚ±CC
ÉÑ|”Á£'ꫯ¡¸’oþ4J$ëüQ²LÞSþâ<ÜØh‡õ'+vÉ3v/ز«^e»ùþ`7žO$e7•e*ÉŠ«©¨*…ÚÝ#ÐÑ3‘Q€Æs;Ðþ*ÑØ— ø‰/‚Ô@iàh#2ê+1@îð„[|áiöÆ¡ÙyÚÖ(ÛÆsöÄç“G=‘Ö· ·G¨Ô#¸ô¡î–ʳŠßøà•pH
endstream
endobj
532 0 obj <<
/Length 276       
/Filter /FlateDecode
>>
stream
xÚÐÍJÃ@ð	9æ’70û&‘ÒXµ‚9zò žl…
…¬oè‹ì­×=¦3þwÛR<,û›Øù¸ÌÎg¹ÊÔN1S“‰ZæüÆÅqæB—xyåyÅé£*¦œÞâ•ÓêN}¼®8ß_«œÓ…zÂ7Ï\-”HŸˆèDìHC¥!Ú—%ZCÆ«%‚\Ä:Pm)î(0#µ”tB%ÔSØ@•=ER¥P¤GêéK(†b'$´GWP$d¥9óÒG…òmêæj9hm @¶Mi×^»£Hv:±vP{*ì½jÔÿ1ƒÄËuŒEü!7£è±blEèDna^ÔŸ(ôûö¯n¾©ø™¶…
endstream
endobj
533 0 obj <<
/Length 234       
/Filter /FlateDecode
>>
stream
xÚ}±NÃ0†ÿ(C¤[ú¾'¨”±4R[$2 ÁÄ€˜€‘¡lU›GKß$/àÇù¼0Õ²õéì»Oþ››euÅ%ÇÓ\s]ó[E;jj­ËXƇ×Zw䟸©Éßé-ùîž?÷_ïä×®Èoù¹âò…º-‹ü¢•p	ÐÀiB1íŒE¸
mQ,GE!ýA‘Ë0)29÷Nò3Dœ¤hœIƒ¤AÒ iþ¡1µ„„Éæô7ºVÎpHšÉ4Y0Ml¾3ÃEˆg¡°²P1€jDßEæK ÛŽé(kЉ
endstream
endobj
534 0 obj <<
/Length 267       
/Filter /FlateDecode
>>
stream
xÚ}ϽJÄ@àRn“7pîh~˜(Âb`]Á‚Vb¥–ŠB
!y´ø&û)Sdw<óƒd„>¸ÃÌ™SŸ¥äRÊq™Ku&ZËsÁo\iLs9Õáèé•×
g÷Riή1笹‘÷ÏÎÖ·—Rp¶‘‡BòGn6bŒ¡ØÌÿ™-Ñ‘eFGZ0ý‚Ucc^ÏpGí))€¡$ ·ô)ˆY†€È=ò ÜÆ¯ã—¥[Ç4Yêitìj·uGj†¿ wAlhA´_Bóí“gô6U¹ÊT÷¶2uƒ­Œ¶2H¾–òø’ƒo÷í^î_Ë„>áë>ƈ¯¾ã ø‹
endstream
endobj
535 0 obj <<
/Length 211       
/Filter /FlateDecode
>>
stream
xÚÅ‘±‚@†kLºðôôÀŽ$ˆ‰&:9'utÐèÆ£ðŒ„Ú£º¸š\¾Üý½4×ï¢xîäSH³€¢Å]¼c¸”Ч8ÖÊù†iŽæ@áÍFb4ù–ž×Mº[Q€&££4:až@ÒÀ„Yè2×0KT4^ÀÕ´—¢]N/ÇrÚ¡”ŠÊµ¬]¹œÔže£´“vd൅e÷›lÙÿ‹¿ßö5ÑÀÏyÕ€ÚP3jɱÞJY²Q“£U5¬¶æôpãß³ÛÀ
endstream
endobj
536 0 obj <<
/Length 126       
/Filter /FlateDecode
>>
stream
xÚ35Ó30T0P°b3S…C®B.c ßÄI$çr9yré‡+[pé{E¹ô=}JŠJS¹ôœ¹ô]¢ÆÄryº(000````ò ¢H0ÿö@âÿ,Äáÿ0%#Œzÿÿl—«'W ØšŸ
endstream
endobj
537 0 obj <<
/Length 266       
/Filter /FlateDecode
>>
stream
xÚmбNÃ0à‹Åöï³Ïãú¢|ïGý¿ýÓÀ/¼Òq¯CýyÜófâîίFî®0ËÝtíß^ߟ¹ÛÜlýÀÝÎߣÌO;O$™ˆ9Á 1!˜rðHõâ°Ðdš…Úˆõ4›f¢&˜ç‚p–B•l9{„ôŸÈÃÕ6©8ù,Ö´Â/õvîK¤qb´ûÒ·í¢+tÍÙŠ%+ ¿N»C7¶É"­EB´8Ñè¤V‹êPÍ#R¨I*š‡h~ jÁ:¹Rᕤè[I®ÍÆlÍ`Φü˜þÊ—ßò'‰Ä&
endstream
endobj
538 0 obj <<
/Length 258       
/Filter /FlateDecode
>>
stream
xÚ…±N…`…{Ã@Òåú
$÷g%¹^Ltr0NzGÎðh<
ÀÈ@¨=…ãâò
íééicu]”RH”«Rb)U”·’?ø­XHU­×w>5œ?É1r~geΛ{ùúü¾p~z¸‘’ó³<›Ñ7g!Ò‘ˆRUc¦ÚµŠ’R;Q2Q½P:XJa2m0{´þ£ëûtÆ”yíl[ÀJ8ƒXÏ í¥-ÖAvH¸xÎiO›zÚM¹Í÷YýSgâ¢ÄV6ë•Óo†¬GÐbìÔùÇÉÆï2ޏ´ÀºC’lÄLñUú‡[ÏŸù]~(ß6üÈ?údµ£
endstream
endobj
539 0 obj <<
/Length 216       
/Filter /FlateDecode
>>
stream
xڭбjÂPà„³ärž 7ÁDpI *˜¡ÐNJ'utPÚ-4Ù|-7_ÃÍÕ­…ôæÿmzàÞs/üœ{ÓñCk¤#»Ò‘ŽS]Ų•dbû¨k»‹åFŠRÌ‹&1{*¦|Ô÷ÝÇZLñ4ÕXÌL_mÌ›”3ulåŽó‡š´Ø]â
ðI@B’¨IÜ/àßsÁ„ÌÌÈ'©È¸à€ßsABN–‘jÀ¸à€AOB¾/#ù&-ª¹Çï¿ü'5£o#óRžåŒÔ‘
endstream
endobj
540 0 obj <<
/Length 253       
/Filter /FlateDecode
>>
stream
xÚ¥Ð1NÅ0`?uˆä¥Gx¾¤‘^:éñè€bF¬4GÇ GÈØ¡j°]&`£ª>EIcÿµï;Gy:räõžî>áÎófG}¿žÜ=â~@{M;öœ·Ñôòüú€vyJín¸Ð-2ЀÉL]_~ÔEÕI-jV£¸€8«Yåz&Á?…}—Bæ£Öæs훃$–SéÂhjääMM|wSSYNñ-ðµŸN¿m£²8±®NZôTÜÔ2fé5J÷ü’äD
2ЏMÐrà[μ©Ñ‚΂̿˜51ÿ=ž
x…_‚²¶d
endstream
endobj
541 0 obj <<
/Length 264       
/Filter /FlateDecode
>>
stream
xÚ}пJÄ@ð9®LsoàÎè&p›6pž`
A+±RKEëÝGÛGÉ#¤Œîs&åüƒ~ÅlvföõIYI)AŽ+	•ÔAî+~âuÐb)u½?¹{äMËþZÖý¹–Ù·òòüúÀ~sy*û­Üh£[n·B´@""‡^­H1Ñj$—¨éÉeŠÅLЯÓ;tËY½Ñ;su ÓVÈfLæ5*}:˜ñ›…ý;8ÝCD§á­×ëxÏ:H:n2Áæfìfu«Y›ÛÿrÐVÿµùißL=Ý’½züÊ! å´äŽmNû@¢½Hö´h––ö”‡ø¬å+þy×-
endstream
endobj
542 0 obj <<
/Length 214       
/Filter /FlateDecode
>>
stream
xÚ¥Ï=
Â@à	)Óäf. ›@LìÀ‚Vb¥–Š‚…hŽ–£ä)SuvVŒ°qŠv–÷–íF? Ÿ"jÔ
)ŠiàØ—¼î™›õ	ª…1ª	¯Q%S:N[TƒÙT#ZrÑ
“µ@g¬ÄϽi¿¶K±s13Þ´é•»úpa¯bg¶ÔZ¢]ð	œ
7S­—‚DA¢ Ñ·å±…ÖݼÖ3fRóáÍ(õZ«¡ý¾t~êþ¡s—Wê/â8Á9>?æŒ
endstream
endobj
543 0 obj <<
/Length 290       
/Filter /FlateDecode
>>
stream
xÚU±NÄ0D7JÉ?!þH"]ÒZ:‰HPQ * ¤AíHüX>ÅmJ–—Ù=N:š'y¼ž™õ8]öƒëÝè.7nÝË`ÞÍn„Ø»i:Þ<¿™ýlº·MwÙtó­ûüøz5ÝþîÊ
¦;¸G=™ùàˆÂFD53h™W"Ï),m¦*S]¨NT1Õ™š(WB¿X^lÁöÄxÆM™”E'YÞ¶HB’b3œ-—ªPÃü…?IJqD´¶bmN
£¶MʬJÑÆ<K“e›àÑAñzó‘VDlaAD‰ƒ!I„W¶J{Ææ?1߈íx’^¶Ž~ÓM“ü•-ò{
ÊÝ(kÏM;¯Ú†$‚¹žÍ½ù«C¾
endstream
endobj
544 0 obj <<
/Length 265       
/Filter /FlateDecode
>>
stream
xÚ?JÅ@Æ'¤X˜foàÎ4	¼Mx>Á‚Vb¥–ŠvBr´%GH¹Exã7I@E!ü 3Ë|b}VVRJ”ÓJb%u”ÇŠ_x1,¥®×ÍÃ3ï[.ne¹¸Ä˜‹öJÞ^ߟ¸Ø_ŸKÅÅAîpèžÛƒu9=‚AµÇ@u$Ò±™(ÓÞ'Ê•ÜLîhŸŸí7ÌXQcìWv	@Ú8®Ô/Nÿ`ú“™¦î3¶1Ì&“šÜBX=Ñc¸¢Ë­fQò:¨Åƒ.rÿ$Âc³1ŒÞÞaÉØ˜VÿÖä@¿r&¸Âã0:ƒôS®ìYùZÛ™Z>´mJÎêç‹–oø3çÕã
endstream
endobj
277 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F24
/FontMatrix [0.01004 0 0 0.01004 0 0]
/FontBBox [ 1 -21 102 70 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 28
/LastChar 121
/Widths 545 0 R
/Encoding 546 0 R
/CharProcs 547 0 R
>> endobj
545 0 obj
[62.24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37.34 31.12 0 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 0 0 0 0 0 0 0 84.59 79.64 80.91 85.86 0 70.42 88.05 0 41.72 0 0 67.31 106.26 87.59 84.13 76.53 0 83.56 62.24 77.91 86.09 0 0 0 0 0 0 0 0 0 0 0 54.46 62.24 49.79 62.24 51.11 34.23 56.01 62.24 31.12 0 59.12 31.12 93.35 62.24 56.01 62.24 0 45.75 44.19 43.56 62.24 59.12 80.91 59.12 59.12 ]
endobj
546 0 obj <<
/Type /Encoding
/Differences [28/a28 29/.notdef 45/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 65/a65/a66/a67/a68 69/.notdef 70/a70/a71 72/.notdef 73/a73 74/.notdef 76/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84/a85 86/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121]
>> endobj
547 0 obj <<
/a28 495 0 R
/a45 494 0 R
/a46 493 0 R
/a48 535 0 R
/a49 536 0 R
/a50 537 0 R
/a51 538 0 R
/a52 539 0 R
/a53 540 0 R
/a54 541 0 R
/a55 542 0 R
/a56 543 0 R
/a57 544 0 R
/a65 496 0 R
/a66 497 0 R
/a67 498 0 R
/a68 499 0 R
/a70 500 0 R
/a71 501 0 R
/a73 502 0 R
/a76 503 0 R
/a77 504 0 R
/a78 505 0 R
/a79 506 0 R
/a80 507 0 R
/a82 508 0 R
/a83 509 0 R
/a84 510 0 R
/a85 511 0 R
/a97 512 0 R
/a98 513 0 R
/a99 514 0 R
/a100 515 0 R
/a101 516 0 R
/a102 517 0 R
/a103 518 0 R
/a104 519 0 R
/a105 520 0 R
/a107 521 0 R
/a108 522 0 R
/a109 523 0 R
/a110 524 0 R
/a111 525 0 R
/a112 526 0 R
/a114 527 0 R
/a115 528 0 R
/a116 529 0 R
/a117 530 0 R
/a118 531 0 R
/a119 532 0 R
/a120 533 0 R
/a121 534 0 R
>> endobj
548 0 obj <<
/Length 102       
/Filter /FlateDecode
>>
stream
xÚ32Ó35V0P0b#CCc…C®B.C˜ˆ’HÎåròäÒò¹ô=À¤§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ƒýƒúõþÿ€AÏþ—«'W !‘$‡
endstream
endobj
549 0 obj <<
/Length 170       
/Filter /FlateDecode
>>
stream
xÚÕ1
AEÿ²]¯8;êÀvë
N!he!Vji¡h«{´9ŠG°´ãd±QÄÞ<~~ „¸~·p\p/•³ìJ^[ÚÑ L}¡­V[ª™9J2ãä’	>ì2ÕtÈ–LÍËÅ’BÍ@.ÀY®*åtÀßà“}4˜I“½¨™kÆ\Ðê7B <µÄ/z‰¢ñ…íž¿aúš×³?I£@3zóÕºÃ
endstream
endobj
550 0 obj <<
/Length 186       
/Filter /FlateDecode
>>
stream
xÚÕѱ‚@à’.<‚}#èF‚˜xƒ‰NÆI4:ãñ(÷72(µeqbÑÉK._þÞµ7\šŽgÓDv6¥tN§¯˜%’czp¼`a0ÚQ–`´’*FfM÷ÛãŒQ±YTKÚKËMI>×A»Šk‰üb¶2p:È[àvä ²;
¯zªUë^_mT™ÐŒœè}ä2H«¾öÜ/;è¯óÿEægÎòMCâÒàßλáR
endstream
endobj
551 0 obj <<
/Length 256       
/Filter /FlateDecode
>>
stream
xÚ}бNÃ0€á‹ó[ñòŽ«í#•Ú[wж¾£¯Ïï7´«ûkÊÑ®é)§ìë5€Ú‚,ÝÇH‡Y˜1Fu˜EÃ1˜Û$Ì`„Ú³$ª]½ciÕÝiÇ’˜¶MÓ6Òj T§Ä%˜0Òú©`t‰è)ßšô »µýÚ£Éî§ûì0„R7¡	ŒÇ’A¢«Ó\—þt‚‡dèC@ëf;„wÛ€75>à/G°ž%
endstream
endobj
552 0 obj <<
/Length 208       
/Filter /FlateDecode
>>
stream
xÚÑ=
Â0àJ‡Â[rß	LK©¥S¡V0ƒ “ƒ8©£ƒ¢s{4Ò#tìP“ö¥qj |ä‡÷Ã[Æ‹$Dõ^†Åx	àQ¢Î¾>ê‡ó
2ü€Q|£n‹->¯+ðl·ÂxŽÇýˆ¥^oÇémIiTEí¸²êud=X4ƒi;87v¶LNó7މoò™üTÏŒêd²T}Xö÷_õ§—QOË^Wþo5Q;ŽG2Ê7öOõ×Ò<êq.ÖœÔWXØÃuRÖä
endstream
endobj
553 0 obj <<
/Length 263       
/Filter /FlateDecode
>>
stream
xÚ½‘=NÄ@…¥ÉÍ!¾L"±ËnC¤e‘H¢J
´$GóQr„-·­ñŒ7qF}#[ãŸ÷–«Óõ9Õ´ “†–g´XÑsƒo¨¬Sxm™§WÜtî5áZúúxÿ|Á°¹½¤Öª±Û´
(E¸TV";§‘èYäepšÒ{ðJý¥9†~P(eÔRÂé™XföìdH-ØÌXq*óKÏíÄ8§ãþ/÷ü§~ÖbyœoƃÑöq?´}Ý`ôƒéáÁô©ÀôºÓïëØ0fW Ø';´¬jœô÷#˜©†úcŠÍªþyÄ<
^ux‡ß³ =
endstream
endobj
554 0 obj <<
/Length 196       
/Filter /FlateDecode
>>
stream
xÚ37Ö32V0Pa3Ss…C®B.3 ßÄI$çr9yré‡+˜™pé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒ@˜þ¥ÿÃèõ?ØÿÓp,ÿBóÿ‡ÐÌ@@4#P2Íðÿ„®ÿ€JÛÿ@£ÿ@hytúú?iBöÿAu?œ†ú«þª¿aá¥aá?öÿ¨á[ÿþ°ø@‰Ÿ?P\®ž\\2oÉ™
endstream
endobj
555 0 obj <<
/Length 159       
/Filter /FlateDecode
>>
stream
xÚ33Ð3°T0P0bS3Ss…C®B.S# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒÁ¬CýfÅPÿLÉC(~ÅŽB1£PŒX© ª‚Å€Dý@¦!;˜úÿ7UÓ€j
š
ø(ÚP °ÅEq¹zrrco©·
endstream
endobj
556 0 obj <<
/Length 262       
/Filter /FlateDecode
>>
stream
xڽѱNÃ0à«2Dº%à{p<¸-“¥R$2 ÁÄ€˜€‘súh~”>
stream
xÚ37Ñ37V0Pas#Ss…C®B.3 ßÄI$çr9yré‡+˜Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÿÿÿ‡H|ÀÃ`¨ÿÁÀÀøÿÃÐdüŒ!íAœb"—ËÕ“+¸0Õ
endstream
endobj
558 0 obj <<
/Length 101       
/Filter /FlateDecode
>>
stream
xÚ36Ó32T0P0aSs…C®B.crAɹ\Nž\úá
Æ\ú@Q.}O_…’¢ÒT.}§gC.}…h 1±\ž.
ÿÿÿÿƒŒê0uŒî'.WO®@.•õy9
endstream
endobj
559 0 obj <<
/Length 138       
/Filter /FlateDecode
>>
stream
xÚ35×31V0PaScSs…C®B.K ßÄI$çr9yré‡+˜Xré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þVŠ¡þÃ0¤ØRüPŠ%BÙ£Põê?˜b„PÌŠÿ˜ªÿÝÿ8(.WO®@.‹†
endstream
endobj
560 0 obj <<
/Length 253       
/Filter /FlateDecode
>>
stream
xÚ}Ò±jÃ0à·è
ì{‚ʦIëBÀ¦P…vÊP:µ;´´ÒÁ~°~?‚Æ&×S	!HÁßIËwWÅÙÅœ
:—[U4¿¤—ß±šI_„6|<¿á²A·¦j†îV^Ñ5wôùñõŠnyM%º=–T>
stream
xÚeѽJÄ@ÀñYR¦É#džÀMü¸\·pž`
A+±RKEA±ˆ¾™¾I|ƒ³Sˆgwv/'W,üfþÅn³¿ÓìQEþ4»tÐÐuw8›Ë\ùÑ/®nqÑ¢=§Ùí±Ü¢mOèáþñíâôj´Kº¨©ºÄvIÌ@ƼÚÀ˜À
èøU´Á;€é=zÅ‹¬ž'|+ž|1 #G”R(¤ø¹¤2))€RT¸58BÒ
)*¤¨¢BŠ
˜0Dtc„㈒ß(rþTd¾†À¿á±<\B¹…"!OÈL¬ÑmÁ%”‚Á£è!ü)ä	Y‚Ùµx†n«Äº
endstream
endobj
562 0 obj <<
/Length 165       
/Filter /FlateDecode
>>
stream
xÚ33Õ3²P0P0b3Ss…C®B.S3 ÌI$çr9yré‡+˜šqé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒ˜ú¡þA¨ÿ
õ?øÿQŒÿ€( Ä Êþ2%ÿ…úO&…b
ª
Pk!Ž€:	ì@ˆ'@Ôõ¬q%vŠËÕ“+0¾ª(
endstream
endobj
563 0 obj <<
/Length 233       
/Filter /FlateDecode
>>
stream
xڥѽ
Â0ð‡Â->Bï4bÛ­àØAÐÉAAëækù(>BG‡Ð3͇‚uP=¤òAYý‡Ú¯K]¹k̵ÚpÍ&ŽËœÛÈ…MšÊgdŸÎoç°Úk|x–¯pÿ
+‡Â@Zä/0ƒ´d73(Mº\5|¢³3¿WU =e0ƒ>¬ß
endstream
endobj
564 0 obj <<
/Length 263       
/Filter /FlateDecode
>>
stream
xÚeϱNÃ@à?êÉyƒÆ/iJ"•¥‘J‘È€D'ÄŒ X{÷hy”^åc¡¯êŠ™D5‡=îþÙü:þé§“ÎÇ|ñ_.þ(Ø_’	IŸ˜4B±±ÌCjÑz8½–nZ:Ð7¡6
endstream
endobj
565 0 obj <<
/Length 152       
/Filter /FlateDecode
>>
stream
xÚ33Ó31V0Pa3cS3…C®B.SK ßÄI$çr9yré‡+˜Zré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ìÿƒANúÃÿÌÿêi†úõ
 Zþ@ˆæ‡Ó5`šNW€ifœôýà˜fÄI3€i0™4?(pÓ\®ž\\wG³æ
endstream
endobj
566 0 obj <<
/Length 196       
/Filter /FlateDecode
>>
stream
xÚíÑ1‚PÐ’.^@?'ILtr0Nêè ÑÍGã(ÑP[ˆ‰““£Cû_Û´Ë‚Á0$êûy4Šhïã	CmJ9î&»#&š5…!š¹´Ñdºœ¯4ÉrJ>š”6>y[ÌRbæ\æò €[B§øãgpq‰¸þD¬…b¢¤û7	›%é¸ÇXzÂ’¯²+pîC‘7 M=$¿©¯¬qÓ˜«ŽÀY†+|œ¼T
endstream
endobj
567 0 obj <<
/Length 199       
/Filter /FlateDecode
>>
stream
xÚuν
Â0ð+„[ò¹'0­~€ÄIí›™Gé#tì =猪‹!ùAþ¹—úù€RÊÉG4Ó!Ã3vYªW}ØŸpR ßP>@¿}±¤ëåvD?YM)C?£mFé‹AhÀ0W–¹pµ•(Ô†Å&áRŽ_ïÕGW«¶RM©Êú1|šŠw5áFò—ú«ýö	]Ÿ÷æ·ñ¯¬5IW¦†º'C»§{p´Ü:ކ«ƒV†#Î\ã8.y
endstream
endobj
568 0 obj <<
/Length 191       
/Filter /FlateDecode
>>
stream
xڵϱ
Â0ÐH†Â-ýïL«–ºj3:9ˆ“::(:·ŸÖOÉ'dìP{^ŠCEœÄ<¸Ü%¹$“Q”`„c^	Ïc¸À4å¸}âp†Ì€Úâ4µä]Pf…·ëý*[Ï1•ã.Æh&GA‚}1è”t@%’c55lË)É1•’¬(*ÉÚúzí¼Ãºgã
û¶?øqÛÛ[®ë„­Da_½=@ÖMÐ
é4ÕBÚ3²ò'`a`Otí„€
endstream
endobj
569 0 obj <<
/Length 184       
/Filter /FlateDecode
>>
stream
xÚ•Î;
Â@à	)ÓäBænbÄ*#¸… •…X©¥…¢­Ù£å(9BÊKÆY#X[Ìó‚?›M³ŒbJ]-(Ó9Á¦¹ô±kÝâtÅR£ÚSš£ZË•ÞÐãþ¼ *·KJPUtH(>¢®>
stream
xÚµ=
Â@FR¦É2'p³$!vÁ-­,ÄJ--­o–£è
´‹dœ±ò¯æÁ·3ì<6{AŒ†\±Æ¸+
[ˆÎDi,7P3ŒP#¾eƸßÖ ²É5¨çƒ˜->E) ït´ÿD›ŽL®Ì”Z&U¼×!˧Òm,—J¯¿–yÿ"LŸXœÞI?ðåµ]ìÀ&^-Vìæ±gÇž·Zêø¿n$ù̴ɦ†¦p h¥Á
endstream
endobj
571 0 obj <<
/Length 191       
/Filter /FlateDecode
>>
stream
xÚ]ν
Â0àS:wÉ#ä>m©Ð± ì èä Nêè (¸¥à‹õQò3ã­
þ\È'›3ʇEÁ)çrFçï2:RÞߥ}ì¶×”¬$S2{ZÏù|ºì)/&œQRñ:ãtCuňCèà:DávG|‡iÊFy”­öÐV;¡tPo¼0ðáƒÌ7ÀæÙ÷âª{äKxÕNÄ.
P¡5­ô€’’ÒÒ‚¦5-éQle€
endstream
endobj
572 0 obj <<
/Length 155       
/Filter /FlateDecode
>>
stream
xÚ3²Ô3´P0P0aS…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ä?000þÿÃÀÀþÿ?÷£¾ÁþÁÿ†ÿÿŒÿ¡óFÁð¿FØ1	bˆÿ ÓÑbõÒøÿÿÁåêÉÈŽXo5
endstream
endobj
573 0 obj <<
/Length 264       
/Filter /FlateDecode
>>
stream
xÚ…½NÄ0Ç]1Dòropõ@ZµU™ˆt`b81#æô
x¥lŒ¼B$€Ž7œbì´Bb"Š~±ì¿?â¶?é;ª¨¡ãº§¶§æ”j|ƶoE]·„îŸp3 ½¥¶A{)~´Ã½¾¼=¢Ý\ŸSvK»šª;¶rJ“€xþâP0ów4Éð{\í.c9ØNø]ÿ”"ÿßY¹pÒ&Zm­¬m¥1¬˜÷BÏ`­XëXÏ2ÝÌ1Ï2s–Pª)£Ö—àH˜²r”Á€—L¥5ø1ýÒýáU¥—Wôš[$ÜtUòÝ’ŒáYņ'¼ðr˜Ô
endstream
endobj
574 0 obj <<
/Length 157       
/Filter /FlateDecode
>>
stream
xÚ35Ö30U0P0bS#S…C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þ3Á$;˜d¦%YH2ÿÿ$ùÿÿ’ò@Aæÿ6Œÿ˜ÿW€É òÃÿÌÿ ‘
H$Ã’ÿÿÿ±ÿÿ“ärõä
ä
WžH
endstream
endobj
575 0 obj <<
/Length 122       
/Filter /FlateDecode
>>
stream
xÚ32Ó35V0Pa#SSK…C®B.#C ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
ŒØÿ0ðÿ!ùÿ("”ªÁþ3Ô#!öÿÌÔFÿÿÿ€#.WO®@.Nq
endstream
endobj
576 0 obj <<
/Length 198       
/Filter /FlateDecode
>>
stream
xڵб
Â0àJ†Â-}„Þ˜TZèV¨ì èä Nêè èj}´¾¯ÐGè˜!ỗƒ:Èw÷'„dfœ¢Á‰ßiŽYŽûNf¾6\ò`w„²½Æ4=÷]Ðõ/çët¹œbºÂM‚fu…~ÑCQýÓˆº¯*ÇSÕK¦cã;[È©›èXeÙ°c£–ÅF:Ô‹’!÷ö1HÞ¿B
!ù›%ލõÔ‰=Ûˆ…ec'lô’ü_Ù‚ì§0«aOP‡Œ±
endstream
endobj
577 0 obj <<
/Length 105       
/Filter /FlateDecode
>>
stream
xÚ32Ó35V0Pa#3S…C®B.## ßÄI$çr9yré‡+qé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þ3üGBìÿ˜úÿÿq¹zrrÊWù
endstream
endobj
578 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xÚÝÍ=
Â`àˆC!‹GhNà×"Ú
‚ ì èä Nêè (¸µÒÁkyo =Â7:”¾¦ÅÉÁ8„<ù!	úín(žt4BMl}>pÐÓº.«ÁfÏ£˜ÍR‚›©vÙÄ39Ï;6£ùX|6‘¬|ñÖGB%%9µ
"”
4Dªrr•{Ef‡V5 ÜR×’S^r_Ô,µÿ¬¥»IQiâNÉë[)%ö[ôyü/
Èû[<‰yÁo¨Rµ€
endstream
endobj
579 0 obj <<
/Length 151       
/Filter /FlateDecode
>>
stream
xÚ35Ö30U0P0bS#cs…C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þ1Ô`øÿùÿ Éÿÿ”gþ$mÿ7°ÿ«’Ìÿ>0Éÿþ`þ‰l@"üÿÿýÿÿ˜$—«'W Žá‰
endstream
endobj
580 0 obj <<
/Length 176       
/Filter /FlateDecode
>>
stream
xÚ31×37U0P0bScs…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
Œÿ000ðÿÿ$ëÿÿ’ÿþ700ÿc°ÀÀþ‡Aþÿ2 \ i$Á
€Êêäò?ˆl •Ä4b>Ä.dÛ!îp!îdræ~ùÿ€$Ø_\®ž\\-in«
endstream
endobj
581 0 obj <<
/Length 193       
/Filter /FlateDecode
>>
stream
xڭп‚0ðš$·ðÞh[I;˜èä`œÔÑA£3>Â#02Î+šhÔM‡þ†ûúçK£`¨#Ô8Âc¤1ˆqgàaÌSQðˆ¶H-¨†1¨ÏAÙ9žO—=¨t1A*õA½›¡ ]‘O›Pö±’JA…äy)Iˆ¼r&õÓ~ó®ßþàÇmý—·’ªkÂ]Ÿ{77”Ôx­Ü¿f}N$¹nýCâù&L-,á‹
endstream
endobj
582 0 obj <<
/Length 144       
/Filter /FlateDecode
>>
stream
xÚ3¶Ô36V0P0bcsJ1ä*ä26òÁ" ‰ä\.'O.ýpc.} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Ã?æÿÿñÿöÿDM}Ãÿ?þ`ÿ÷áÿæÿ@Ä8ÑPß$쀈`4'þÿÿ‡Ap¹zrr8WÖ
endstream
endobj
583 0 obj <<
/Length 187       
/Filter /FlateDecode
>>
stream
xÚ%Œ=
ÂP„7¤¶ñÙ˜„‡Æ.à˜BÐÊB¬ÔÒBQ°“£y”á•[„ŒûHñÁÎÌθb2+$˜Š+ä’ó]n:2ç/*NârN7ærZmåùx]9]ì–bîJŽV9qµ*ý>
stream
xÚ36×34Q0P0bc#Sc…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ø0°<¶‡âz þÁŒ@ÌÄòÿÿ?ø„™bTÂðÆÿ
ÿ7~`øøƒýÿ@Ç400ÿcàrõä
äÎpR
endstream
endobj
585 0 obj <<
/Length 149       
/Filter /FlateDecode
>>
stream
xÚ35Ö30U0P0bS#cs…C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þ30ØøÿŸÁþ?’ý?ãÿÌ@5J2"‘Ì0’ñ?;ˆlàÿÿ¨Ìèâúÿ€¤üÿÿA*þÿçrõä
äðŒ
endstream
endobj
586 0 obj <<
/Length 199       
/Filter /FlateDecode
>>
stream
xÚe̱ŠÂ@Ð7¤¼&`Þ8Éš …(¨›BX+±RKEÁBÐɧ䦜"8ÞqaZÜ÷=¸yÒÎ$‘/$ëI§+ë”wœå良þ±Úò¨`=—,gýƒ+ëb*‡ýqÃzô;–”õD©$K.&âœQÎ~8¢˜¼-x¥)؇%‰à	Vd‰.hUAëmPþ[‡0ªÃ+|D0|D]×zy‡ÊÝ^Öœ}÷b‡Uc\6úù?ù»à?#Zh
endstream
endobj
587 0 obj <<
/Length 236       
/Filter /FlateDecode
>>
stream
xÚuαJÄ@à9R,L³opÙ'p=…póSZYˆÕ¥…¢pE ûhû(û{]Ä#ãÌZ˜F˜ácfø«Ë³«Ú朻ªÍEmö%¾aµâ¹Q»WÜthMµB{Ë[´Ýùxÿ|A»¹¿6%Ú­y*MñŒÝÖ‰\Kÿ©&Ð#d!#P¬OIÇ*¿ —M «D // R2h‚``ÝRÌ“m\®ùÕ‹ãzð=@>6m8ˆ}F}:ä1Μ¢>²Šý
,EýÍfù¹œ‘]ˆîO Î
sSq0€iî ›TxÓáþ¦‹j
endstream
endobj
588 0 obj <<
/Length 214       
/Filter /FlateDecode
>>
stream
xÚeͱjÃ@`-~„ÓôìÆ&lpˆ‡B2e™ÚŒZš-?šó&†¾ÀA–Œé–î㤻_*³—‚2z•S¼ÑbI_9þ`QJi©ŸßØthwT”h×ÒEÛ}Ðßï鈶ټS޶¥}NÙ»–˜a÷lÌ}ì!â!xHĢµK{Ñ0S%¦ÓYLæIŒÙ±„4¬^½vA:ÓCžõÿ5ûÏ2?¹j,TÓkØ„pÂgÙàe3D^63ÔìŸÅU‡[¼}l*
endstream
endobj
589 0 obj <<
/Length 245       
/Filter /FlateDecode
>>
stream
xÚeϱJÄ@€áYR¦ÉÜÎè&^¢‡óSZYˆ•ZZ(
Wœ$/%ñEò[nnœYäÚ|Å,ü3[åû%åt@{Å!•Ç4?¢ûŸ°¬dšS5ÿ}º{ÄeƒîšÊ
ݹÌÑ5ôòüú€nyyJºÝ”ßb³"fo8ü7aêLìàŒ¸{؈kq€ÐàEoÄÚ›Aª
I¿sLÅlL;q›‰é6‘­˜ð,ú)þˆŽ"pøkë'ëaÒö“šß	“6ª«jùTº…vûMtÕ%ü¥yþÖpû®É7«±šc%^–Æð¬Á+üš~oì
endstream
endobj
590 0 obj <<
/Length 200       
/Filter /FlateDecode
>>
stream
xÚMÎ?
Â0Çñ_ÉPxKŽÐwÓÚ‚bÁ?`A'qRGE¡ƒÐ-Gñ;ˆñ¥.ù@^ø’WEÁ)çáŒ9ñ)£+åa–†kx8^hV‘Ùq^YÉ”Lµæûíq&3ÛÌ9#³à}Æéª—Þ{÷G«¼-m,@{L¡?˜ y㉲§C¦|Ïuäj%@ª* éyRM§œT—rR)§~ØØI;Ýó¶Ri+&¶éPÚ¦¼•õþ¡eE[ú´åfN
endstream
endobj
591 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xڵб
Â0€á+Â-}„ÞhšP:j3:9ˆSutPt®à‹ù(}„ŽJc¼quù†ËûO¥óTSLŠf’”"­è(ñ‚Iæ†1ií_ª3ÅŽ’ÅÊQ˜5Ý®÷Šb³ ‰¢¤½¤ø€¦$,D¶¨m`ŸX˜ôP?¦䯰…¨a"GËä
„ÝHíè¿°Žáüú’ñ[¹%=ãΡ‹i¸ˆÛ¸’{}9ßàs
\Üâ#G—
endstream
endobj
592 0 obj <<
/Length 122       
/Filter /FlateDecode
>>
stream
xÚ31×37U0P0bCS…C®B.cc ßÄI$çr9yré‡+sé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ä€ÀDübvQ$þÿG%úAüȨÿÿÿÁåêÉÈB•\
endstream
endobj
593 0 obj <<
/Length 231       
/Filter /FlateDecode
>>
stream
xÚmÏÏJÄ0ð¯,Ì%ÐZ%c‹ã7¢â!¿02I†ñ|ÜøÖÛz¿ü¾“éGÆ­…Vx|–í,ÍïGi®˜•f¾ö‡×ã“4Û›ßI³ó÷odÞy¸A#
ÕŒJõ—&E½8]&”ÃRj
©Ð¤	šÙõKXÿ™"9ãØß°öC¯ú"‚ãƒùÊÞáN¤¶¶šàžç‚+–o¨q‘Ô™€ï@æF2ŠÌÏh.ÊpFmLF IÿA.g¹•OÕ¬—´
endstream
endobj
594 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚ}±JÄ@†ÿbaš>
stream
xڕϱ
Â@à–
Yú6O`[¼Ò¥T¨¼AÐÉAœÔÑAQèP°ÖGé#tt«—ªtò $áB¢ÓyšpÄ:áDó%¦;騿‘¤Ò8ߨ0XÇnl•B³åçãu¥°Ø­ØVK>Ú/'2%;ŽãµÇÀ%|ÃAtG*èA0‡¬`/ºPu°½Fô19€9¬a{ÑíDíªb#úØj3XÃä5S¯øS…	imhO_o`{
endstream
endobj
596 0 obj <<
/Length 229       
/Filter /FlateDecode
>>
stream
xڅϱNÃ@`G"yh_éüp’([+•"5:T
#Ö^í%pcó»He``ùÛ÷û\·wm#iä¶”º’¦–ç’߸jQD¹ùéœ^yݱßKղߢ̾{”÷Ïöë§{)ÙoäPÊâÈÝFnˆ(ºžŠèF
Ñ©j…Àd|ÉŒL@Àä6ììmБÜT /åˆõ¤sg`À|¸®Œ¿8c†Â¨Ò’5MñÃÙâ—”i\Qn+¥yrŠevœEs¬á‡Žwü
Ô4„s
endstream
endobj
597 0 obj <<
/Length 235       
/Filter /FlateDecode
>>
stream
xÚuÏ=NÄ0à¥Mã#x.N´ŽV[YZ‰HPQ * ¤Aíp³%G0¢ÀE”a²» ÍgûYš¿<]6\±ç“š½çÆóCMÏ´XiXqÓì~îŸhÝ’»áÅŠÜ…ÆäÚK~}y{$·¾:ãšÜ†ok®î¨Ý0`2™€R¤Ó—é†r@ìŠI…ÀærBÈG£b¶dÅþ2lRÌ“V;äxFïò!#äSòÕI§gìµk4I±Yòžñ€;ý!þGøaÜbóžÝ¸óài^aÐeb_È»î+:‚¶‡ÑÚ(4¢ó–®é–•™
endstream
endobj
598 0 obj <<
/Length 200       
/Filter /FlateDecode
>>
stream
xÚϱ
‚`ðáÁ{2As‰3È!¨©!šª±¡(hˆôÑzÁñĺïŒt©¡~Ãÿ8îÎûa@
¨ç‘R0¤‡Gô=9›Îö€qŠîŠ|ÝÇè¦s:Ÿ.{tãÅ„8MhÍ3L®±â“+ÿ"dL-V¢K±x{°pprm î%@%*­!š¥ÞiÉfúÈ£ú1ƒÖºÕh¬´fG«£Ý¨ZŸFéȶ>
stream
xÚEÐ;N1`G)Fr“#Œ/³£Ñj«HË"1Tˆ
()@PgŽ–£ä)S„{Aló)Çù“iw¹›iC]Œ4M4Oô2â;n÷²¸¡yþÝy~ÃÂÃm÷8ÜÈ2Ë-}~|½âp¸»¢‡#=Ž´yÂåH`xpœv	ú$¸ä"¸,t¹?“”¬¥JIÏRÜsTR/´°vÌ
„
–å6£#`f€ÀÁ3G&û-Û]\\ò\´Eõ«åV>R®ô­tŠUÌ?p¦²"ÅFÏ	¶ø¿Ìò¢!ÚS‚S¯`%
^/x?}Ï“…
endstream
endobj
600 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚmÐ1NÃ@Ðo¹°4°s°­ØŠR­‚„$¨(U ¤A½¾	WñMØ#¸ÜšapJ‘æ³Úù·]_®;®¹å‹†Û–»–Ÿz£ÕƆ5wÝádÿJÛžª^m¨º±1Uý-¼¾Pµ½»â†ª?6\?Q¿cä
Ài‚&dš	r¢˜†2!Œ.ÁG?pS8’ôÈ|9‡]ó'ø?‚XP‹T)æL%—ü[2Õ/±jNl¥›þ§”>9Û’¼5þ‰FX
ü”éà¢=Ø
… Œ–W¨UÊUG@—˜ºîéž~Uí–Ž
endstream
endobj
242 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F22
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ 2 -17 88 59 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 27
/LastChar 122
/Widths 601 0 R
/Encoding 602 0 R
/CharProcs 603 0 R
>> endobj
601 0 obj
[55.7 53.05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26.53 0 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 0 0 0 0 0 0 0 72.2 67.93 68.97 73.23 0 60.09 75.08 74.73 36.21 0 0 57.43 90.65 74.73 0 65.28 0 71.62 53.05 66.43 73.46 0 0 0 0 0 0 0 0 0 0 0 46.42 53.05 42.44 53.05 43.77 29.18 47.75 53.05 26.53 0 50.4 26.53 79.58 53.05 47.75 53.05 0 39.33 37.67 37.14 53.05 50.4 68.97 50.4 50.4 42.44 ]
endobj
602 0 obj <<
/Type /Encoding
/Differences [27/a27/a28 29/.notdef 46/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 65/a65/a66/a67/a68 69/.notdef 70/a70/a71/a72/a73 74/.notdef 76/a76/a77/a78 79/.notdef 80/a80 81/.notdef 82/a82/a83/a84/a85 86/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121/a122]
>> endobj
603 0 obj <<
/a27 550 0 R
/a28 549 0 R
/a46 548 0 R
/a48 591 0 R
/a49 592 0 R
/a50 593 0 R
/a51 594 0 R
/a52 595 0 R
/a53 596 0 R
/a54 597 0 R
/a55 598 0 R
/a56 599 0 R
/a57 600 0 R
/a65 551 0 R
/a66 552 0 R
/a67 553 0 R
/a68 554 0 R
/a70 555 0 R
/a71 556 0 R
/a72 557 0 R
/a73 558 0 R
/a76 559 0 R
/a77 560 0 R
/a78 561 0 R
/a80 562 0 R
/a82 563 0 R
/a83 564 0 R
/a84 565 0 R
/a85 566 0 R
/a97 567 0 R
/a98 568 0 R
/a99 569 0 R
/a100 570 0 R
/a101 571 0 R
/a102 572 0 R
/a103 573 0 R
/a104 574 0 R
/a105 575 0 R
/a107 576 0 R
/a108 577 0 R
/a109 578 0 R
/a110 579 0 R
/a111 580 0 R
/a112 581 0 R
/a114 582 0 R
/a115 583 0 R
/a116 584 0 R
/a117 585 0 R
/a118 586 0 R
/a119 587 0 R
/a120 588 0 R
/a121 589 0 R
/a122 590 0 R
>> endobj
604 0 obj <<
/Length 267       
/Filter /FlateDecode
>>
stream
xÚµ“=nƒ@…Ç¢@šfà9Al%"’C$SX²+V*;eŠDI£pJ
ÄzÖ°òÚîÌŠÕ·üì›y^çOÏ‘=“Jftˆñ“ˆìॽ±ÿÂEŽzKI„zÉWQç+úýùûD½X¿QŒ:£]LÑæ™óÑ@G¦j…ÌQ¨P¦˜ÚϘº§‰iz‚ÿVÈ8Jy›Ž¦<_’â­oSÈr¡ûºãJ^CoC¿âÁàK(®¥vR“ਾB,á|.ÅÝÚWK¥uÅÉ¡Ë`DuO6®KNý™‡‘¯6‘_i JGãT+É­”´
ç¤KP±„û²¡J¨ðÿ~ßsÜà	uÍyë
endstream
endobj
605 0 obj <<
/Length 338       
/Filter /FlateDecode
>>
stream
xÚÍ“?N…@ÆgC±É6½€QãÚ¸Éó™Ha¢•…±RKvF8Þä%^€’‚0Îì ‘¼Z ø-;;3|óqvrX”ºÐ§ú ÔÆhs¤ŸJõªL¡ù6Ç~çñEm*•ßiS¨üŠ^«¼ºÖïoÏ*ßÜ\èRå[}O‰TµÕ@W‚€dªR‰ˆ;Ȉ,Q–ˆG¨9ÛCiì7rXKËä0—Aà@$ˆs;’²º:ñ>GOÔ11PV¨GG’ªà{ré(µëÜ‘J}1*7S(»$;SheIÙLõ>âoúCø¨^¥f­i0Ó¤ÚÙIñ™Î§ÉÌô¬ð§
Cœ4ôqú¢ŽHºèG®¹‹nJÛè°¬‰®³œcÔC+{ç7ZÛÎÛ¶>»ƒÚà¿¢‹*E!¼Õe¥nÕ/ÙÏíã
endstream
endobj
606 0 obj <<
/Length 258       
/Filter /FlateDecode
>>
stream
xÚÕÓ1nƒ0`£‘ÞÂx'¨¡b€	‰¦R"5S†ªSÛ±C¢d†£õ(9BF†ˆcWæGµR¦Z}lÀþ_ÇYÂ1§æÈSÎù#¡=e¹éÇ}·¿ñþEeEzÇYNzm®’®6|<œ>I—/Oœ^ñ«™æª‹kªo?nÁ‚>ƒíCK¹(Iç¸ÖªoïÐv^سs`'rVr\wƒIã‚—ý˼ÏÞ‹‘/ÞÁÈí¤íýênp=g¹ÇÍ?ôÿ;³†¸ÎØ—¹=Å 13èr…Ù‹ “E7™ÛòŒ™ÇZ€1µÓŒk
kmªgjÖ.=W´¥€Ms³
endstream
endobj
607 0 obj <<
/Length 192       
/Filter /FlateDecode
>>
stream
xÚ³0Ò33S0P0bs#…C®B.sc ßÄI$çr9yré‡+˜sé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þCÁbYìÿ?00ðÿÿe1 Xòp?œÅg1ÃYŒp‚UgÕÃYöxYò¤³À,æüD²p²Øñ²øá,y8ËÆbüe‰,„^$óìà'Ò}ÌTaAÀf“õRX\®ž\\1=#
endstream
endobj
608 0 obj <<
/Length 349       
/Filter /FlateDecode
>>
stream
xÚÕ“±NÄ0†]u¨”¥P¿´U‘®"‡D$˜02€`ny³ãMNâ¸ñ†ªÆIÜ»´EÀJ÷“ã8vâ?ÏŠã¢Âx”cµÀ²Àû\=©Ò83,OÜÊÝ£ZÖ*½Æ²Ré9»UZ_àËóëƒJ——§˜«t…79f·ª^!ðÒ û5D±Åˆˆ6XÖÌ;Ж©‡Æí¤uH@†cýN.|ÍŽrá.m@µÎ³Û¯F|Ž=›Mb¶šÖ´`]ƒÃœb{)Ð$èÀU2¤ئç¿ô'	ÄcW˜¾|–rƬÇ,eŽ9sóýÃôOx^cf¥u=þÌzÆ.‡–{6œü‡·›òðÖS–1´Œ¸;ôAýe&oVýögÛ›ù`¦_#œˆ7ÄŸ¢)ÒNG¼¼	èöÝYmv¢M£Ù­è×Üf!ˆ&\oê¬VWê?¦!
endstream
endobj
609 0 obj <<
/Length 123       
/Filter /FlateDecode
>>
stream
xÚ340Ò³0Q0PaKK#…C®B.KßÄ1’s¹œ<¹ôÃ,M¸ô=€¢\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ÿA Dþ!•ÍÀþÿØÿo`e
Èb†á gS’7¹\=¹¹üïb
endstream
endobj
610 0 obj <<
/Length 105       
/Filter /FlateDecode
>>
stream
xÚ3±Ð31Q0P0bS#…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
ÿA ÉÀþÿÃ(9THü±ÉåêÉÈ’:Õ°
endstream
endobj
611 0 obj <<
/Length 157       
/Filter /FlateDecode
>>
stream
xÚ3·Ô30T0P0bs#…C®B.3K ßÄI$çr9yré‡+˜Yré{E¹ô=}JŠJS¹ôœ¹ô]¢ÆÄryº(üÄ0ø!Ô(c2~f0ÂH`0ãf°c0øáŒP†<Ãƨ‡1þCŒ0;ŒÁcÔCÌÀ¤ø
Ãàrõä
ä6n6
endstream
endobj
612 0 obj <<
/Length 311       
/Filter /FlateDecode
>>
stream
xÚÔ±N„0Àñ’oé#´O ”\<'HÎ3‘ÁD'㤎ÝHàÉÆÁÑGð‘áBýú•Iû%)ð+,ÿ¦`ÊÕÑz­½ÂaJ£OJ}oà	Œ9Æ™ÂÙ=º{„MùµÆyÈÏqòæB¿<¿>@¾¹<Õò­¾1º¸…f«­µ£ #q·8&ÏtáÞ3ûŸxž=%Ýüæ·õT]ˆ_¶'V1ü´±
òÃîˆSï>8ƒ|º‹bGýx
²¦~Ù‡©¨_‰(Jê¯fÔß2L©Šcâ–#
ןî8º~w‰¢[ÙstýJptýU,Ýr´,]ÿÄû±ž#öc},»=Ö3Ö³Tëc)íÛfôÑrLi‡G’vKA;+DEï
ñß1¥]þ*Y÷‡¨ÄB8kà
~oˆ§L
endstream
endobj
613 0 obj <<
/Length 209       
/Filter /FlateDecode
>>
stream
xÚ³°Ô³0U0P0bc#…C®B.s ßÄI$çr9yré‡+˜[pé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒÁëÿ8ëœõ¿ÎJóƒûÿ ,fn0‹¤ªÿcÙ5CXòÿ@Y ÂbGb}ÀÂúe1ceý¡Ÿ½ìH,ln~÷åŸ#BBðPŒº`pÎb€±~ÀY
0SFYä± I—«'W TÛ4#
endstream
endobj
614 0 obj <<
/Length 346       
/Filter /FlateDecode
>>
stream
xÚ}ѱJÄ@à?¤l“v_@“pÞ]
!pž`
A+±RKE;!÷hñMÎ7H¹à’qfwO ¦ù`vv23»œ•µ)ÍÒVf±0õÌÜWêIÍ%Xšú8œÜ=ªU«Šk3¯UqÎaU´æåùõA«ËSS©bmn*SÞªvm€|
82"‡7@бï,
	}8$´þtHIR2>JØÜJ	=°MT;4[6ÿ±ùR׳éÄÄ~“û íD©Ï}~k£.:Âíì£6ʃH«¬Ï±¥DÎJ†wðkñ©8ÊÌ1ÁÛ‡=Iszÿ‚‰6üÑWÎBðJIľ7ìl¢:šÇa²hJ½Ý7ùCÞ¦ûßÍ8‘ÂýðˆþÝÆðâÞ5,φýkV›Ôqœ<òÒöè÷Ã/™„µXY×dã|…ËvRJµêJ}áI±
endstream
endobj
615 0 obj <<
/Length 176       
/Filter /FlateDecode
>>
stream
xÚ³4Ô31W0P0b3C…C®B.rAɹ\Nž\úá
\ú@Q.}O_…’¢ÒT.}§g ßE!ÚPÁ –ËÓEÁþ?ü!žu€¡þ?3õ‡Äb°ÿSÿÂâÿWÿÂbÿWÂbþWßa1þ«g€°Xu0V6V
ŒeG,ëŒeÿÆ’'Åc1Œ²†%‹’œÍârõä
äãCì<
endstream
endobj
616 0 obj <<
/Length 233       
/Filter /FlateDecode
>>
stream
xÚ퓱
Â@†S:Y|„æô]ª‚ÄIÝÄöÑú(>BGñLÓZD''—|ü¹ÿr7œÑ¦©;¤©M
CA‡º>­
î0ðYÔÔmÕÃ՜՘eTÑ„ûãU8A5¤…!½ÄhH–ãàpɾe¨Ûä§P±þóï¸Vrÿ…{ÂÙŸy¹%ŸÞرWáÛK¶¹Žp,ìŠ+¾ç¹&ûÂuaÏJNE±IÞM ºœ4y0犉%®Þ­àØ^žÃù ŽâAlæH 4È—¬6eOæ†E8Ã`ò|
endstream
endobj
617 0 obj <<
/Length 270       
/Filter /FlateDecode
>>
stream
xÚ•‘±JÄ@†'¤Ls°óšL®œ'˜BÐÊB¬>
stream
xÚµ±NÃ0†/ê`é?BîÀ‰dSº`©‰HeꀘhÇ XI-Â#dÌ`å¸s‚ºtÅËgý÷Û¿î·×~Iyºª)x
ö5¾£_‰XQ¸™&oG\7èväWèEF×<ÑçÇ×Ýz{O5º
½ÔT½b³!€ÿ€œÈ£‚™Oª±ª–!2J`@;€÷PŽPÈ<²;…‘GgÈ3E9c̈¹*lÊ0´9Útüø/ ÎàÝìi†Õnʲm'¾©¿;)¤ø–),åˆbÈߘ^‹ìJq™©Ý‚§®£zµlÑð¡ÁgüÍF‹¾
endstream
endobj
619 0 obj <<
/Length 253       
/Filter /FlateDecode
>>
stream
xÚÕÒ½NÃ0ðT"ÝâGȽu¢~n–ú!‘	&ÄŒ ˜Ý7è+õQúíØ!ÊŸ³¯ñ‚ŠÄ„ˆdå—‹³ÿÊl4¬æ\ñ˜¯jžU<ñsMo4HQÇúæé•
Ù{žNÈ^K™lsÃïŸ/d·K®É®ø¡æê‘šgáʱ‰wƒ_ s=Ìÿ‡$ p8E€.¢°
(±s‡×…¢ÀŸÂ4Ž2ì¥*ȱÓ|
]¹Ñ6&âÜ´LèÎpßàÚ‹À_à‡ýøËÇIHGN!ÄXÊ>±]
³7ž#†Ýfæýß".ŒÎF«?«Ç^Q 3Ò™Ö
Ýщb=
endstream
endobj
620 0 obj <<
/Length 244       
/Filter /FlateDecode
>>
stream
xÚ…¿J1‡gÙ"0M!óº·`D«Ày‚[ZYˆ•ZZ(Úºy´}”<•aÇ™¹ãôP1|ðå—?üâéáIO:¢ƒžâ1ÅH=>cT¹Pc;÷O¸°»¡Øcw!»á’^_Þ±[^‘ØÝÊ™;Và8ƒŒ‘?dm˜gPÇj·\R…q
:“dÄ„*Á	|…Vbn¶;ƒg³Eó
çd˜ö1Öo(
Ø÷aãhDBÿcü³!ýD[Áo˜¬1¿En¥	¹±¦ä%iêÝînª6N:ó\ÒZÛ`
æ]H›_ÙI<ð?yë­œ
endstream
endobj
621 0 obj <<
/Length 175       
/Filter /FlateDecode
>>
stream
xÚÕн
Â0àá–>Bï	L*)¸j3:9ˆ“vtPtnÍGé#8fœ—:èÒM‡|ä~àŽ3z>
stream
xÚ¥‘?JÅ@Æ'¤XØ&GÈ\@“HòBª…çL!he!¯RKEëÍÑÖ›ä¦L2Î쮂°áÇîüû¾É®9o[,±Æ³‹w565>UúU7¿–Øv1ôø¢÷½.î±étqÍïºèoðýíãYûÛK¬tqÀ‡
Ë£î¯|¢QÑÑ’“CD–F°³"RcB|&;¦Jª
ÀÌÆeÂ%w¹pU¾ëö3Bú?OûþÄÂ|€ G(ú‚^±'€f	‰]âTH¿Ø¯ð“|X9éʶÌÜ/O8E.‘>
stream
xÚ37Ö3°P0P0bsCc…C®B.33 ßÄI$çr9yré‡+˜™qé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ì0€Áÿÿ$0˜a†aÃÿeüÿßf0ÿÿÿÌà‡xûÿùõÀŒ:û`PÛãçã?Hÿÿß  e00°ÿ?€Ìø‡ÁøCãÇ(ÎøŒv q€—«'W lù2
endstream
endobj
624 0 obj <<
/Length 138       
/Filter /FlateDecode
>>
stream
xÚ36Ó35Q0Pacc…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ìþ``üÿ€ùÿ0fÿÿ+†ÉƒÔ‚ô€õ’ä0üÿ‰˜aˆàÿÿÿ@Ç\®ž\\ÍÙ¥;
endstream
endobj
625 0 obj <<
/Length 243       
/Filter /FlateDecode
>>
stream
xÚÕѱJÄ@à)ÓänžÀMˆD­ç	¦´²«ÓÒBÑzïÍôQ|„-#†wæ_ñ°ñZË·“eþþäà°ã†uõG|Üñ]KÔkÝh©›Í­Fr×ÜwäÎÓ[rã??½Ü“[]žrKnÍ7-7·4®¹¦B‘ý,³Å?¶	ûXø€¾á
ú-ä,fXN°pùµMõùÞËV´¶¤µ%‡\{œ`rùô‰Ä_
|•­¹»7fçZlžP‰Íð\X°~r„þ[ƒ'-pGNZpZ¸£ÛYÌŠŽê4ú_ÒÙHWôn¬$
endstream
endobj
626 0 obj <<
/Length 107       
/Filter /FlateDecode
>>
stream
xÚ36Ó35Q0Pacc…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ì0üÿ‰™˜aãÄÿ„޹\=¹¹µ‰Ã
endstream
endobj
627 0 obj <<
/Length 232       
/Filter /FlateDecode
>>
stream
xÚíÒ½jAð	WÓÜ#Ü>·ÔŒ‚WZ¥©LÊ+³vrp!E¶›üçT°+‹ó›Ý-ÆÙÇvïÞXÓÅqöÁt;æÍñ';ë±j-->x˜súŒÇéiNó©Y-×ïœgOÙ‘yÁÌ+ç#CYEI ºO$RáxŠ%4ˆDJʤnï«Ò 󢣨Ò×®U¶¤ Hª@Yûƒ$߸»Np·â§¤D@¥(€þ¿ØAx^ƒæ§¨å9ìÅE…ÿÇÍÛ„ÂÆip
xœóœÿvÚiC
endstream
endobj
628 0 obj <<
/Length 184       
/Filter /FlateDecode
>>
stream
xÚíѱ‚@à&&]xúÞÜHLtr0Nêè ÑUy´{ጃ„zwÀ¡Í×6ÿÔd4”’™JBG´ñ„qlfiG{Ø1+P¬)ŽQÌÍE± Ëùz@‘-§¢Èi’Üb‘¤‚˜µ©ÒÁc®|æÚ!P÷Æáià±®!`{èø.ÿT¼ÊV6ß¡ýAÓõ_°yÍÀ4Õ8+p…oâøš
endstream
endobj
629 0 obj <<
/Length 231       
/Filter /FlateDecode
>>
stream
xÚµ‘±‚0†kHná¼Ђ±0’ &2˜èä`œÔÑA£3<šÂ#02Î^KL%!_sý{½þ¬æI‚!.qa¼@¥ðÁCT±Ý9ß +@P% 7º²Øâóñº‚Ìv+Œ@æxŒ0>
stream
xÚÍ’¿NÃ@Æ]u¨ä…G¨_.!MB§H¥•š	¦02€èœ<’GÈx•ªÛ¹F:¡.§Ÿ¾óùÏçË“«è†"Jèò:¡lN錞c|Ã,5¢<WO¯¸(Ñm(KÑ­EGWÞÑÇûîÝâþ–btKÚÆ=b¹$(“#ýÑÃ!@5@÷Šøo˜Jÿ§4ö{®aäÁ³ÅŒòßëŽfJ®`o}4¼‘.lO­%Þw£‹m_…mt§¢e4](z†`_ëTÀU‰øµ` 
endstream
endobj
631 0 obj <<
/Length 169       
/Filter /FlateDecode
>>
stream
xÚÕÏ;Â0ÐtõÒ#Ô' ’VbªTŠD$˜02€`nÆQz„Td¨jœ20õXö“üYœé™žcŠš+ã4xRp“s?¶aq¼@iAîÐä W<i×x¿=Î ËÍÈ
÷
ÓØ
Eá¢^¹˜6¡–­É±Câ‰:_øˆ:WóÑ«}ßÍO_/h‰Æmƒú	ýIž™–¶ðj^¤ï
endstream
endobj
632 0 obj <<
/Length 259       
/Filter /FlateDecode
>>
stream
xÚ]Ð1NÃ@Ð¥°4¾;ÛŠBƒ¥$\ ‘ŠQ%Ú¬æ£ì\¦°v˜Y)¢yÒî·çÝT—ëk.¹æ‹Šë57
¿UôIõJ/Kn®æäõƒ6O\¯¨¸×k*ºþþúy§bóxË[~®¸|¡nËXÊp8™ÎÙë…HDÑFä#ò°Ô々Ú~Àþ¨¨7ö'ÉQÈ”´^;LKZ+45qj@.dêtÜÇv“ù!¤¸Ç"iíÐÄÌôehÖ”ôÁjÛ]ˆÿdVçµ³½ÍSuž‡è ±ýõ?h©›ÓêgåcfKxýºëhG¿Á•¡Z
endstream
endobj
633 0 obj <<
/Length 186       
/Filter /FlateDecode
>>
stream
xÚ35Ô34S0P0RÐ5T01Q07SH1ä*ä21
(˜›Cd’s¹œ<¹ôÃL¹ô=€Â\úž¾
%E¥©\úNÎ
@Q…h žX.O†ÀOþÁN2bÌH$;É&åÁ¤=˜¬“ÿA$3˜äÿÿÿÿ?†ÿ8H¨úANò7PJÊÃç‚”ÿÇ`$ÿƒHþÿ
ÀØ`ÿð(Èþßÿ ýß
E` q¹zrr:é“p
endstream
endobj
634 0 obj <<
/Length 187       
/Filter /FlateDecode
>>
stream
xÚíÑ1
Â@Ð	Óä™èfÑlì1‚[ZYˆ•ZZ(ZÇÎkÙyÛt¦Ž»‰… а{üáÃÀ»°O!õ¨­(Võh¥p‹ZÛ0¤(j.Ë
¦匴F9²1J3¦ýî°F™N¤Pf4W.ÐdI	àñ˜Kü#ZX€ƒøã+üÏÞ8ä¯È’
àö„wåÂ6î .nŸÁÉÁNÃõ<sUÃv‹öÁ848Å”Ìðn
endstream
endobj
635 0 obj <<
/Length 252       
/Filter /FlateDecode
>>
stream
xڅбJÄ@€áYR¦É#d^@7¹Ülœ'˜BÐÊB¬ÔòŠí°¸×ÊÜ+äR¦gvE8°X>˜YØŸÍ/Η%”ÑYJyN«Œ^RÜa¾aB«¥ß>
stream
xÚ•Ñ1j„@Æñ7XÓx牚à6l6‹@R¥XR%)S$$¸æfB.2©ÒNi!¾¼7ãÊ.V?ø¡ƒòÇu~žf*U+u–©õ…ÊWê9“o²(èfªòKÿäéUn*™<¨¢É
Ý–Iu«>Þ?_d²¹»R™L¶jG/z”ÕV!â­ÿCì´؃@µp`'h–Îì'–Ä‘vÄ ¡3k"úótÅ{O<¾8‚ FØ
¦evb8Ñ83Mð‹mHЄ̎iÃoì˜Â“z˜ÑÌ>úBa"0‡Ži5s?hbé8–TÔ0µcíÙÌÄô00c*ÓCïÙ»1í‚Ö
¸ˆi<¸8Î^°óŽ‹˜­gëvJpÏi\DäXî‘ו¼—!‚ý)
endstream
endobj
637 0 obj <<
/Length 229       
/Filter /FlateDecode
>>
stream
xÚÍ’1
Â@EG,„i<‚sÝl±F«@T0… •…X©¥…¢ur4â,-‚ëw3)–.düfÉÿ3tƒ8–Hœô­­Ä#Ù[>±s#‰ÇUewä4c³çØÌ!³Ér9_lÒåD,›©l¬D[ΦBÔöá$þ‰»å½:À¨ë[þŽRI9Šùƒz%”î7t„ø |

t}º½€GIÀ³¦ã%EPþðú_üþ+µM_*|u°69X~o ©hFš˜æW§©ÙjÒš»nîDµ!<ËxÅo†s
endstream
endobj
638 0 obj <<
/Length 137       
/Filter /FlateDecode
>>
stream
xÚ33Õ37W0P04¦æ
æ
)†\…\&f
  ,“œËåäÉ¥®`bÆ¥ïæÒ÷ôU()*MåÒw
pV0äÒwQˆ6T0ˆåòtQ```c;0ùD0ƒI~0Y"ÙÿIæÿ ò?&ù¤æDå(I²ôÿÿà"¹\=¹¹VI¢”
endstream
endobj
639 0 obj <<
/Length 301       
/Filter /FlateDecode
>>
stream
xÚ}ÑMJÅ0à)Y²é’Ø–G_]x>Á.]¹WêÒ…¢ëôh=JŽe¥ãüˆ? Ú¯if¦“tߟChÞ¯6§á±s/®ßÑ\¦¼ððì£knC¿sÍ%½uÍxÞ^ߟ\s¸>kŽá®í½Ào@£B,D¸'€DdZš"-š,-ÚB/6¨3"x‰š¢äç”™œ®—ÓÊ®k‰íƒËpÞ7q|Ì$pãFúæš¿È »ùdíL™@ÚAvüZ´H¥ÙFÓ¬¦YM«5Þk|,ZdÖìI³eb4Ðj`Môä³g!@Tt¶«`[ÈBÍ».àA8ã²EþõËwÌ•b«ÔŠW¢’üÉü'îbt7î}tû”
endstream
endobj
640 0 obj <<
/Length 305       
/Filter /FlateDecode
>>
stream
xÚ‘½N„@LJlA²
À¼€ÅgErž‰&ZY+µ´ÐhÍ=Ú>
@IA烋	á·ì|ýgf.ëKxQá®Âz¯•ÿð!ðe‰õ•Y^Þý¡õÅ#†à‹[¾öE{‡_Ÿßo¾8Ü_cå‹#>UX>ûöˆ)Eà§£‰¿ŽˆN£ÈGG#›"ˆqhfHøÔ8¾ÏéäfEÊAEIÅÈ=¿ÿ„Å-ˆÎ’%$©#쵂H\ÀÕWèfä¹	
 Íhg™…™cgݺi†¹8iZþG«`©s+´¤É,25×ô\iÜ`2[Ì[¸¨ÈE3)Dä/ˆþbZÁ1.8Gƒƒ•I¬³éUuužR¯áÍ:îXÔ&¼oÝ´í]Ö¯"MºÎÝß´þÁÿéýëo
endstream
endobj
641 0 obj <<
/Length 225       
/Filter /FlateDecode
>>
stream
xڽнjÃ0ð
‚[ôº'ˆìPÛt±!têP2µ;´4›qüh~?‚G‚$ÎýÅC»õ@ú¡Bw—&ó,㈮+]pöÈo1}R2æ¢ñ8^¼~в$ÿÌIF~{Í’/wüýu|'¿Ü¯8&¿æ—˜£•kžnûLMÔÐ@;ÑÁž&žEõD-twñ>‡5pU/jh:ØŠ¶,PW+D5À^Ôh ma#:ôYÀVpÔ=ìDÓŠºb~9¬a€g‰æ/ÌÿŸuøÿwiSÒ]]Óq
endstream
endobj
642 0 obj <<
/Length 285       
/Filter /FlateDecode
>>
stream
xڭѽJÄ@ðYl“Gȼ€&áH¢ç	¦´²+µ´P´N-²°`“b¹u>r‡"X?²ÙLæ¿Ó6']‡¶x\c[awŠOµ}µÍšéñLß<¾ØMoË;lÖ¶¼¢e[ö×øþöñlËÍÍÖ¶Üâ}Õƒí·hF8ˆs0;àÛ¤Ž¡+*³¯Lʨ€•Yñ
‘	iþŸŒk›àäï!%Nó¹4tíaà(.JÚ‚bÒî>
stream
xÚ’=NÄ0…'ÚÂ’›!sHRd
‘–E"Tˆ
()@ Qa-GÙ#¤Lyxcó´‘•Oòóx~ž×ÍaÛrÅ
Ô¼®¹=âûÚ>Ù¦ÁfÅíqRîí¦·å57-ϱmËþ‚_ž_l¹¹<åÚ–[¾©¹ºµý–‰ÈÒOdÀ%2…È¸9SQväTòÔy2ÙSÁ
Tà»	2NXFvYÂ
òŒø_ȹèíC!š‹"Þˆº%R­î/ºQ‘‰(Œ¶"!×V$ÞMÀ	x#$“0"»W ­ ÎˆPrÂ(¨ì$Ó7´Ày?â Âîßèö"^Ò\æ%òˆI‘Éd¾«^EÀ€AíÈRɯiP7ë@tÊê4F¦¾Ã}œÒ· 
CÔGƒÉžõöÊ~†\ö
endstream
endobj
644 0 obj <<
/Length 239       
/Filter /FlateDecode
>>
stream
xÚ­Ò±jÃ0`™[ü¾he…ÚÎTAš@=š)Cé”dÌÐnÁò£ùQü5˜8²þ@mp CoÐ'¸ÓJ“§,ã˜3~Tœ>óLñVÑ’Ô%cžMq³ÙÓ<'¹æ$%ùæÒ$ówþ>þìHÎ?^Y‘\ð§âø‹òGÂGT‚
´%ð1Šîs
°à< (G˜®Ï‹(ºnhÄÉõ<œA홀°OîÐÂS€ÆiüX+ÒÃé"¬]ö1¨Õö	n\PrÀ䚇cDôÆÞ§ý+Á"ZlÎ`eºúý1´ÌiEWÂÁL
endstream
endobj
645 0 obj <<
/Length 339       
/Filter /FlateDecode
>>
stream
xÚU‘1NÄ0E'JÉMŽ`_²)²ÊÒ²H¤@‚ŠQ-” ¨£…›øéHayøcARäIñÿù?ûî¼ïÍÎtæ¬5ûÖôæ¹UoªëðqgúË|rzU‡A5¦ëTsƒÏªnÍÇûç‹jwW¦UÍÑ<¶f÷¤†£!*y"<–Þ3Dà‰ê@¼àȓơ©ŠD,#DQÄc!C<–	S	1¹©úŸ`}½EØ fðŠQæjÙÀM5ÏA°˜øcÁ²¦Ç.%ó‚Í€€%‚Æçœ9æd’QÿÅœrè™’t‘pI#xÙï$u_"E`—-5KˆfXÊz‘qv, /&Áy¹6:)z…‹©veÒuFµA¹EøÅ”àVxXVˆ;Õ³]äß‘^KFƒùa9
ÔjcªG²ëÜY•ëAEJ˜¨ëAÝ«D©
endstream
endobj
646 0 obj <<
/Length 312       
/Filter /FlateDecode
>>
stream
xÚ’±JÄ@E_H10Íüy? ÙÙ(uSZY,Vji¡hý´|J>!eŠa®ïÍàÅsàN2sß½Y×'MÃ+®ù¸âuÅÍ)?VöÅÖµˆ+nÎÒÎóÝt¶¼ãº¶å•ȶì®ùíõýÉ–››®l¹å]Å«{Ûm™È`Oòô˜eÍ€@ªAÕ"dek¦v"ÂDÅLª8O92!~l@Ncï@ŠzÐÐ.1öaiÂŒßáÿðBÿÚ v?Qàƒàt>—p„ C4‚s9¿ŸH]¶>Ÿ0BÁ/@
IL}~¦-&¾ÃÇ\²^+—™˜îèävq°€ÑÈpÚƒ Ä:ŠTNëµ&­ÐøXaž*ÌE——3ìµq}µˆNd”!ýÑ«ÌId/;{k?žnf
endstream
endobj
241 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F21
/FontMatrix [0.00836 0 0 0.00836 0 0]
/FontBBox [ 2 -25 121 84 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 48
/LastChar 119
/Widths 647 0 R
/Encoding 648 0 R
/CharProcs 649 0 R
>> endobj
647 0 obj
[65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 0 0 0 0 0 0 0 0 93.5 95.01 100.81 0 82.66 103.39 102.84 48.44 0 0 79.01 124.77 0 0 89.85 0 0 73.08 91.47 101.07 0 0 0 0 0 0 0 0 0 0 0 65.77 0 58.47 73.08 59.81 40.2 65.77 73.08 36.54 0 69.43 36.54 109.62 73.08 65.77 73.08 0 53.39 51.89 51.16 73.08 69.43 95.01 ]
endobj
648 0 obj <<
/Type /Encoding
/Differences [48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 66/a66/a67/a68 69/.notdef 70/a70/a71/a72/a73 74/.notdef 76/a76/a77 78/.notdef 80/a80 81/.notdef 83/a83/a84/a85 86/.notdef 97/a97 98/.notdef 99/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119]
>> endobj
649 0 obj <<
/a48 637 0 R
/a49 638 0 R
/a50 639 0 R
/a51 640 0 R
/a52 641 0 R
/a53 642 0 R
/a54 643 0 R
/a55 644 0 R
/a56 645 0 R
/a57 646 0 R
/a66 604 0 R
/a67 605 0 R
/a68 606 0 R
/a70 607 0 R
/a71 608 0 R
/a72 609 0 R
/a73 610 0 R
/a76 611 0 R
/a77 612 0 R
/a80 613 0 R
/a83 614 0 R
/a84 615 0 R
/a85 616 0 R
/a97 617 0 R
/a99 618 0 R
/a100 619 0 R
/a101 620 0 R
/a102 621 0 R
/a103 622 0 R
/a104 623 0 R
/a105 624 0 R
/a107 625 0 R
/a108 626 0 R
/a109 627 0 R
/a110 628 0 R
/a111 629 0 R
/a112 630 0 R
/a114 631 0 R
/a115 632 0 R
/a116 633 0 R
/a117 634 0 R
/a118 635 0 R
/a119 636 0 R
>> endobj
650 0 obj <<
/Length 192       
/Filter /FlateDecode
>>
stream
xÚ…Ž1‚PD‡PlÃØèÄŠ1‘ÂD+c¥–m…£q@IAˆû;“WÍÎÎL0›†vÙxólÎaÌgnäû¢ºEãét¥4'µgß'µT¾áÇýy!•n—ì‘Êøà±{¤>
stream
xÚ…O;
ÂP±lãÜè{IüÄ* L!he!Vj)¨h-GÉ,-$q̃´ÂT;ß…ÃñL­NuihuéÉ—›V'Ç/2OÅì4Ĭx“®õqžÅÌ7õÅ$º÷Õ$Mô
|€
¨,G\ WÂ{¡ûFÇ9úé^Ù€"J[|š¼ ¬µÐîrè’YÁ"Ö±4nT?…”pGrjݬc_e*[ù«ËM*
endstream
endobj
652 0 obj <<
/Length 148       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P04U02R06P05TH1ä*ä24Š(YB¥’s¹œ<¹ôÃM¸ô=€â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ü
òì?Ô¨ÿ„êÿØÿ‘ÿÃÿ‡¡ÿ0ü`øÁøƒñóöìøØ7Ô7ügø.`àrõä
äj'.ç
endstream
endobj
653 0 obj <<
/Length 171       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0S0W0¶P01VH1ä*ä26Š(›%’s¹œ<¹ôÃŒ
¹ô=€¢\úž¾
%E¥©\úNÎ
@Q…h –X.OæöX±ûŽììþ±ø÷Ÿýà¿ÿÇÿûÿüü?ûÿÿðÿÿÿ€ùÿÿÆÿÿêÿ€1ˆ
ÉÔ€Ô‚õõ‚Ì™2—} ·p¹zrr«xSº
endstream
endobj
654 0 obj <<
/Length 116       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0V0S01T01QH1ä*ä26ŠE-Àɹ\Nž\úá
Ææ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O† øA-Âþÿÿÿ€øÿ4‚Šv@	 Ã¹\=¹¹emH™
endstream
endobj
655 0 obj <<
/Length 99        
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P04F
††
)†\…\@Ú$l‘IÎåròäÒ
pé{€IO_…’¢ÒT.}§g ßE!¨'–ËÓEAžÁ¾¡þÀÿ0XÀ¾AžËÕ“+‰;“
endstream
endobj
656 0 obj <<
/Length 157       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0UÐ5W0¶T0µPH1ä*ä26
(˜™Bd’s¹œ<¹ôÃŒ¹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ì@ÌÀß#äÁHÌD؈:Q'þ€ˆ@Ì&>	f0ñd˜82î>3Ñdfâ¸™¢Dp¹zrr@Ä:Õ
endstream
endobj
657 0 obj <<
/Length 110       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0V04S01T06QH1ä*ä26
(Z@d’s¹œ<¹ôÌ͹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
õÿÿÿÿÄÿ °‘§\®ž\\ºâAŠ
endstream
endobj
658 0 obj <<
/Length 103       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0W04S06W02TH1ä*ä2	(˜B$’s¹œ<¹ôÃŒ,¹ô=L¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]êÿÿÿðÿÿÿ0âs¹zrrå$~
endstream
endobj
659 0 obj <<
/Length 117       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P°T02W06U05RH1ä*ä22
()°Lr.—“'—~8P€KßLzú*”•¦ré;8+ré»(D*Äryº(Ø0È1Ôá†úl¸ž;¬c°ÇŠí Èl ärõä
äÇ\+ß
endstream
endobj
660 0 obj <<
/Length 168       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bCSC…C®B.cs ßÄI$çr9yré‡+›sé{E¹ô=}JŠJS¹ôœ€|…hCƒX.Ovþ;¢ù†: ÁPƒNØÿÿÿÿÿÿF0Ø1ü`€uŒ@¢†ñQÄf ñƒù„Àf2ØJÆìó~ ñ€¿‚ñ;—«'W ÇžsË
endstream
endobj
661 0 obj <<
/Length 251       
/Filter /FlateDecode
>>
stream
xÚ…±JA†'\!Ls­ÝÎèÞ±žšÆ…Á+­,ÄJ--íÄ;ðÅy‘µ²4åB–[çO"h£ÍWì¿üßÌì¹Ýf,•4²s n,Í¡ÜÖüÀÎéc%ûÍ:¹¹çIËöRœc{ªÏlÛ3yz|¾c;9?–šíT®j©®¹
fDT„¿P&E—{åh+ç•9G2ËÏD~þ>/BG¯Eðô$E7è~ }§ø¬€ŸK…ÑvmV›:¶¼«$ê,HŠ@•%¡j»}¦W”}þa³ÂzHõ‘¦OØ#b£¼A=ðb2ñßãà~|Òò0Ž
endstream
endobj
662 0 obj <<
/Length 239       
/Filter /FlateDecode
>>
stream
xÚ1NÄ0Dg•"Òo|û$Q6ÍZZ‰HPQ *–’‚ÕÒ!ì£ýp!eŠUÌ8âi¾ý=o¶ýÕpíZ·-§uCçŽ|H?Я¶\¼¾Ë~”æÉõƒ4wœJ3Þ»óéóMšýã?¸çε/2"På˜<>ÏåuÁfA@5ãž`cÌO4ês´1dµ1gõÊ®šƒîêɧï:ÙôeÔPø~•KÙœ-ª˺QvõOÔhù9–ŒXÒÀÜ…H$%ËRM ŸÒZÉlémb–„d·Ùr)}ÙA!·£<Ê/}L~ü
endstream
endobj
663 0 obj <<
/Length 184       
/Filter /FlateDecode
>>
stream
xÚmÉ=‚`à’.žÀ߉1‘ÁD'㤎]…Ä‹‘8p
n #¡~ $(}úö­ëL<ŸL²å¸6y6í-<¡Óvf{¶ÝÃÅšÅ\¶(â]Î׊p9%ED‹Ì-Æ4 ð•Óžgö&ëÉ{ô¼øâ!1îå¥qƒú?µ\ÀÜP˜ùCÁµ#ýA“dZz–4ÀuÂ
×,iºÔu8‹q…/ÂaoM
endstream
endobj
664 0 obj <<
/Length 218       
/Filter /FlateDecode
>>
stream
xÚÏ1NÃ@й°4¹¬—QY
AÂTˆ
(‘A‹ÃÍrÁå 3AzšWÌJÿ_¤ãæ”kN|y¹9á‡H/”–v¬¹Iû—û'Zun8-)\Ø™BwÉo¯ïVWg)¬ù6r}GÝšÅ3J•~	ZýôªýT™Mè¥Øa.åˆÊ)¥œ-
™oö̤Å/½ó`t™œÝÿ˜þRôø27ÈäVÖ¯½ifðöƒíh·¾hãÛ`+-·Rû¡ÔÑÒìNç]Ódvg9
endstream
endobj
665 0 obj <<
/Length 147       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù.
ц
±\ž.
õÿÿÿÿÄÿ ØæŒ„	† ‚ƒ`|$€lthv›bˆ)ØŒ‡6 ¢Žä£ÿQ	Ø.WO®@.ÌŒ‡r
endstream
endobj
666 0 obj <<
/Length 227       
/Filter /FlateDecode
>>
stream
xÚÐ=NÃ@à±\¬4๬¥PY
AÂT(PR$‚ÖÞŽkÍ
¸7eŠU†ÙI"QÒ|Åìß{;—Ý5袥ùŒº½´¸Á°ÐaC]8®<¿ár@ÿHaþVÇè‡;zß~¼¢_Þ_S‹~EO-5kVE*#TòÉPËŽaa¥'\¦BÙƒ°û‰«oè¹Ò\Qéõ4÷pf<á¢`2éß”²Oà$‡Ì˜gãßëíµúD>
stream
xÚÅ1
Â@ERÓx„Ìt³Ž)R-Än!he!VÆÒBÑÖä¨9‚¥EØq™Š†Wüßü7sžæe”ÓÄ”Ϩ¶xAæƘ‡æxÆÒ£Ù3šUŒÑø5Ý®÷šr³ ‹¦¢½¥ì€¾"h é`,ò‚T¤'ÀuIDˆ§x¸/„ˆ¶Hÿ¡øÙ÷®î9
ƒ›Zª¯šëpéq‹o¡lª
endstream
endobj
668 0 obj <<
/Length 236       
/Filter /FlateDecode
>>
stream
xÚu1NÄ@E½Ú"’›a|˜„$ÕHË"‘	*
D”H»$*â£å\!GØ2HQÌw€‰æÉãÿmÿ©«ãæT
©å¨”ºæDJÞsÕ ‰gõ­Ü?ñ¦åx#UÃñmŽí¥¼<¿>rÜ\IÉq+·¥wÜn…˜™åº2ûÐÌÌ4w„C0Mý€¤LúNÔéL”túAø¨9ÁçÒ„Éa=tC¹6”8y€ÇF¢Ì›Ôa¥OÚ2éý/òaÁ<Ãô&ÄØùE>oùš¿åxv
endstream
endobj
669 0 obj <<
/Length 124       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù.
ц
±\ž.
õÿÿÿÿÄÿÿ¡êêð@†H0zÂþÿ(Qÿÿ—ËÕ“++òT¬
endstream
endobj
670 0 obj <<
/Length 191       
/Filter /FlateDecode
>>
stream
xÚmÌ=
Â@à	Óx„¸	‰‚Õ‚?`
A+±RKE[“›™£ä)S,;Îh%Xìûfæùh<¥”
}å:exÅ\³T¿:8^pV¢ÝQ>E»’m¹¦ûíqF;ÛÌ)C» }FéËEÜ$s­´àXBט^H”ȃ©ÁÃ@ž?|be¨®ŸàzY©E—ƒâÿðTZ_Õq×-`öRÅ!a~…ˆƒ„®K<.KÜâj/\
endstream
endobj
671 0 obj <<
/Length 187       
/Filter /FlateDecode
>>
stream
xÚŽ=
Â@…g°¦ñ™˜„Ä"•#¸… •…X©¥…¢­ÉÑr”aË€!ãN;±˜æï½GÓY‡®âg!ŸBºR¤³@[]/”òw%ä¯Ü”|³æûíq&?Ý,ØõïÝåLƹ©¿+ðx•ƒ“À—´€"Ò¡@±y‰Rx
Œ-¶0ª±éþ~Ð*ž?¢uîmÖ½rç!0±ƒe¥æ]
ÔEÓ`ç%ÐÒЖÞ*Åsz
endstream
endobj
672 0 obj <<
/Length 182       
/Filter /FlateDecode
>>
stream
xÚŽ1
Â@E¿¤¦Ik—9›°°
Än!he!Vji¡h›äh%G°L2ΦÐÖ…}ðgÙ?of§óÇœêÅlS>'t#k5Ñ?œ®”;2{¶–ÌZ§d܆÷ç…L¾]rB¦àCÂñ‘\Á¤"iJzŒDˆÆ=á[5/”ÈjLAOåQ~Ñý‰ß¡@«B_ÕZ¯h4èÊJ—â5¡Î«µ^RMuZ9ÚѲuEJ
endstream
endobj
673 0 obj <<
/Length 193       
/Filter /FlateDecode
>>
stream
xڕα‚@à’.<}L— &Þ`¢“ƒqRG®â›á£øŒ—;[pqÓᾤ½´ý5)+ÊHñ+•9ís<¡’^&¥|ìŽXLפ*LçÜÅÔ,èr¾0­—S⺡MNÙMC±€Ä ÿ$z1Ú1Þwxï!"Ëûâ>ô<æôZ™iá&³N°?â>cíHãRa¸ÊÉHŽ'cË:ÇÑ´m™¸O,Î®ð
—ºYK
endstream
endobj
674 0 obj <<
/Length 201       
/Filter /FlateDecode
>>
stream
xÚmޱŠÂPEï’âÁ4ù„ÌìKˆ¬®›BÐÊB¬Ôr‹mM>í}ÊûËâì}VÌ™;ܹ“ú³™i©“Ô¥ÖS=Tò'uÃù9&aÿ+óNüFëFü·â»¥žO—£øùêK+ñÝVZî¤[(²€ÂÐÛ
f#2³;܃J>ÂPD´Cˆv@Z }•ˆ„‹÷c½C 
¤7¸¾Ð'Ð*4u‘ö.æ7ú¹mpÌb2ræcÀòÝÉZþI÷_þ
endstream
endobj
675 0 obj <<
/Length 154       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0asSC…C®B.cßÄ1’s¹œ<¹ôÃŒ¹ô=€¢\úž¾
%E¥©\úNÎ
@¾‹B´¡‚A,—§‹ÿû@âÿÆÿÿ˜AûŸz ñHð?°*;&põÿÿÿš4A€Åðk£aÿÿÿ[~ `1.WO®@.òÅ^£
endstream
endobj
676 0 obj <<
/Length 253       
/Filter /FlateDecode
>>
stream
xÚ}±JÄ@†ÿ#E`š}!óšÄä”k.pž`
A+±RKE»#›ÎÇðUò(y„”[,g‚²ìǰóÿÿÌÖÕÉzßòq¹áºâꜟJz¥º`;볟ÖãíZÊï¸.(¿ÒwÊÛk~ûx¦|wsÁ%å{¾/¹x vÏ’€4¸ˆlnfxYé•DdöItÁ§S¶n\Å#7@efd=º`’El6X4jB*²`„éá¾fÀ}E_éh0‡íb•ôj“1SLÍ€,xÝ>v*‹Å!*:MÃö–Æ¢ó½:²?-y‰%Û§F‚Í@—-ÝÒ7ãè‚>
endstream
endobj
677 0 obj <<
/Length 161       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bcSC…C®B.ßÄ1’s¹œ<¹ôÃL¹ô=€¢\úž¾
%E¥©\úNÎ
@¾‹B4Pe,—§‹Bý øÿ¬“Œ‘ò@dý ùóÿ? ùûÿ ùB~°o’äAdƒü ÉÀ$ÿÉ?Häz“õÿøÿÿÇÿÿIˆ8—«'W ƒzú
endstream
endobj
678 0 obj <<
/Length 132       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bcKS#…C®B.cC ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
ìò ØþÃÄ@òx@ýÿ@ü€á?×C1;}pýÿÿþÿÿÿ†A|.WO®@.üØO)
endstream
endobj
679 0 obj <<
/Length 198       
/Filter /FlateDecode
>>
stream
xÚÌ;‚@à%$Ópçò.¨H)L´²0Vji¡ÑV¸‰Wá(xŒ…[Æ_­Å~Éü³ó‡Á0ŠÑEŸ_ècäáÆƒ=’¹2Êb½ƒ4gA΄Spò)§-8él„ôŒs˜ÃQ¹yÀ
endstream
endobj
680 0 obj <<
/Length 115       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0b e¨bÈUÈel䃹 ‰ä\.'O.ýpc.} (—¾§¯BIQi*—¾S€³ï¢m¨`Ëåé¢PÿÿÃÿÿ‰zÁÀ<Œˆúÿÿÿ7ñÿ,ÆåêÉÈî{\W
endstream
endobj
681 0 obj <<
/Length 171       
/Filter /FlateDecode
>>
stream
xÚ½Š=
Â@…·[˜&GÈ\@7!Q°1#¸… •…X©¥…¢õ^,7ðæ[n±ì8šÎȃ÷WÃÑ3ä‚r„Å9œAl&’ø]ö'¨-˜\À,¤c—x½ÜŽ`êÕs0
nå¹Û =œî=Cê¿bq䙣Ò1
S¥e¬”ö‰K•vI'ì’ö‡mrÿ/)Tžòì8R`ßû¾‡¹…5¼ízfÊ
endstream
endobj
682 0 obj <<
/Length 155       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL¹ô=€¢\úž¾
%E¥©\úNÎ
@Q…h ÊX.O…úòþÿ¨ÿ$þÿ$ÿÿÏÀPÿD2þÿ`ß$ȃÈù@’Hþ“Èô&ëÿ?:ñÿÿÿÿ7 “q.WO®@.‹£ll
endstream
endobj
683 0 obj <<
/Length 183       
/Filter /FlateDecode
>>
stream
xÚ}Ž=‚@…‡XLÃvNàBL¬H·0ÑÊÂX©¥…F[Ù£íQ8¥…a†‚Îb^2ï}¹™KJ)*%³ K†w4÷Ò‹ó
+‹ú@¦@½á)j»¥çãuE]íV”¡®é˜QzB[Ä_P¥	¢:˜…ðá9o’.êAµ@9(¡dq%Ÿ»7@â'a¸ý/=ßµÓGÃ.^¬ÄTyhÆ ‰”pÁ A!\\[Üã>P:
endstream
endobj
684 0 obj <<
/Length 200       
/Filter /FlateDecode
>>
stream
xÚ¥=
Â@…g°¦ñ™èfI"¦üSZYˆ•ZZ(ښͣä[.(w“€–‚S|Åæ½7q4HRYs_8Ö
ù éL‘WCNâvµ?Ñ$#µá(%µp:©lÉ×ËíHj²š²&5ã­æpGÙŒs” V,ÈS*7;(& A‰]ƒt,¾à-À•ÇýGTÎÀµ@Û8×=ÓF–>¼®á
¡¯†¾$Úñ¼Ë_È¥÷ªùF­Ñ<£5½Þ¯ì
endstream
endobj
685 0 obj <<
/Length 211       
/Filter /FlateDecode
>>
stream
xÚ­Ï=
Â@à‘ÓäÎ4	ÙˆVÀ‚Vb¥–ж&7ðJ{¯à
Lig³
Z
6_ñBÞ¼Õq;éQH1µ¢.é„â­#Ü¡Ž$
)ѯO«-ö3æ¤#Æ’cMè°?n0èO$éòÓ³!W© É¾Èùb Á|3à1³õP¢_6Äæ¬ri©Ölxz+=Õ>jO=®Ù]qÝu¿ôìªÊç÷B·V–ŸÅ´~…º[ëÎÿ)×DÅ\|kse8Ã'á·vG
endstream
endobj
686 0 obj <<
/Length 158       
/Filter /FlateDecode
>>
stream
xÚ­É1
Â@ПJø—ðŸÀÝu£Äj!FpA+±RKAEëõh9J¼AÊÁqc!Ú[̃™Ií`4-ØԈËÞð™m»îjw쎜{Vk±«y\Yù…\/·«|9ê½e_Hx’+5ÐCôÑ8´äÂ#‚$ÒRC®¡¹šˆ\õ¡ì¸ÿBÿ"¨¿xo<ó¼âõõIw
endstream
endobj
687 0 obj <<
/Length 185       
/Filter /FlateDecode
>>
stream
xÚMË1
Â@ЋÀ4!s7q5Æ@T0… •…X©¥EÁÊÍÑrr‹ñ,,Þ2³óÿÔŽg©D’€MÅ&rŽùÆv‚=ê×þpºr^°Ù‹°Yã—M±‘Çýya“o³YÊ!–èÈÅRÈùr¨êGB®ù7
}Kïÿ´D#"×eZS¨¡W¡ÿ!§ˆ("P÷BCa÷£}­¢9ª6A«ª=>
stream
xÚ31Ö3µT0P0bc3…C®B.cS ßÄI$çr9yré‡+›ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ä€Àž¢þÿÿÿ@ü¿A€ÅH2…‚ù`€hàÀ ß €AþAý~ [@óÿŒÿ€LxÀÀåêÉÈþ:B„
endstream
endobj
689 0 obj <<
/Length 148       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL¹ô=€¢\úž¾
%E¥©\úNÎ
@Q…h ÊX.O…úÌÿþÿ`ÿ…¬ÿÁ$0ð()DÚÉ?õþÜÆðêdƒ=˜”ÿH2ÿcÿÏÀåêÉÈÄ£d>
endstream
endobj
690 0 obj <<
/Length 186       
/Filter /FlateDecode
>>
stream
xÚ5Í=
Â0ÀñW:oéúN`ú¥ÐÅB­`A'qRGE7©…^Ì­×è
êØ¡4¾Ø”É?	‰Âé,&žQ@áœÎ>Þ0ÔÍÓ[}pºb*Qì)ŒQ¬¹¢zÜŸévI>ŠŒ>yG”½•¥:ÅôJ•^ý›]ƒS|Á-,ZHZX:È^<rœ[CÂ×Á准’qÊz¤b&Õg¤aì¦QŒ¥À½†¿À•Äþ$›Lã
endstream
endobj
691 0 obj <<
/Length 174       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL¹ô=€¢\úž¾
%E¥©\úNÎ
@Q…h ÊX.O…úÿ`Ôðÿ?ÃÙaCÄÙ00~ @2?ÀDv`²N2~¨+þߎ ¿#Èß``’
?Ÿ‡“¿¿G#«¾g``¨?øA6 Hû†@Rž¡†ËÕ“+Ém¢
endstream
endobj
692 0 obj <<
/Length 202       
/Filter /FlateDecode
>>
stream
xÚEŒ;
ÂPEoH!Lãœø£‚UÀ˜BÐÊB¬ÔÒBÑN!…Û²³tî@Ë!ãL@,ÞaæÌ»·µ{¸£¯Ûá¨ÏÛ™lµÃfOÄܒ£¹©ZrÉŒOÇóŽÜp>âܘW!kJÆ‹/ŸLnRüQ;”H¡(Ô+€Øû­Üp{Íçh¼¯€/
O ¨.†êçê«oŸk>¹¶´¬4¶ú…¥4Wè¬&F&ž”™äRŠ¢ª§ÚÑ$¡}¨xY&
endstream
endobj
693 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚEαjÃ@àßdˆ‚ÁzöìØ)ÍCšB=Ò©CÉ”dÌÐÒnÆvÈÐ×jé‹:tÍ&É=Žûîî$%ñÍpÄ!ø:ºãdÀñ-¯"z¥X£!—Znh’‘yæxDæQâd²¿¿}¬ÉLæ÷‘™òKÄႲ)—Ö³µ[{²v§È­õöð+ïðOPy5À‘
Æ@®²äÌ©¤äUíð·-Gÿ[ùÙ;z¿Êßàµ[*ö‚l”ãŽBÉ;¥v\ɼHer”;åSú¾H‹R§Z88	¾~íKôÑßÍa{
endstream
endobj
694 0 obj <<
/Length 203       
/Filter /FlateDecode
>>
stream
xÚ=
Â@…_°L“#8ÐMLRØðL!he!Vji¡h'š£å({„”!qœ-–6ß²ó`ö}›ÄÃtÌ!'<ˆ8	9ñ1¢Å©å»äp¦iNfËqJf)c2ùŠo×û‰Ìt=ãˆÌœw‡{ÊçŒÞ@в¶^m	´­…ו„û•W÷¨”x:ôdäTLdOñ”€_Öû'¤X`–*ºw]!WÒ¢qµ½z¨‘º9KõUóïÐ"§
}}dÃ
endstream
endobj
695 0 obj <<
/Length 141       
/Filter /FlateDecode
>>
stream
xÚ31Ö3µT0PacS#…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]Øø XŠí¸ˆÿ7001;×ñ¾Äójä‘Ô®ÿÿÿÁÿÿÿ?À0ˆÏåêÉÈÅFJÜ
endstream
endobj
696 0 obj <<
/Length 222       
/Filter /FlateDecode
>>
stream
xÚe1N1Eÿ*…¥i|„Ì	ð.›-V
Ab$¨(U ¤A›Ý£ù(>BÊÑóÓ„,?kÆÿWíEw¥µ®¸kí.õµ‘i;¯O%/¶ï²$=iÛIºó®¤á^¿>¿ß$­n´‘´ÑçFë6Šx0ڄʬ ˜íÍŽX⌾T†~ÂèËϰœfGvÄlŽâgØ×ÎOÈ —˜À<|žðHTGÇ‚+î©¥µ§Ë‡D5ÿWôTŒL3ü*Ù¡¸=·‡2šÿÐþ‚½,·ƒ<Ê8hñ
endstream
endobj
697 0 obj <<
/Length 226       
/Filter /FlateDecode
>>
stream
xÚEнNÄ0ðÿé†J^òñ@ZÚHH•îC¢Lˆ	@°Ò>ZåáÆ§úl·ÀŸDZãTåe}Í9W|Qp•s}ů}PYkP·å|òòN›–Ò#—5¥[
SjïøëóûÒæ~Ë¥?œ?S»c„€Nz¬DÈDF‘â˜Mˆ&4=:4§WâLì•«hLºVÆÚšÄQ—5Aýâ1;Í,òw×Ki üs°Ä™ãÇ…àÎdw;«Ò-¯—y"ŸÍ§\Û¼>¹ÿí[z 3áVc4
endstream
endobj
698 0 obj <<
/Length 181       
/Filter /FlateDecode
>>
stream
xÚ•Ï=‚@à!$Ópæ.¿	bâ&ZY+µ´Ðh£pJŠëL±hë$ó%ó^5YºÌŠ(áÍʺÄxÇT²HN)Î7¬4ª¥ª
§¨ô–ž×Uµ[QŒª¦cLÑ	uMþÁÄ„B9ÓÌÆ›‹‘ñGÐ3aç(ifãMŽÅ(Œ/½#ì˜`Ëc„÷—V2öOZË¿Z;ý®5îñÜþtý
endstream
endobj
699 0 obj <<
/Length 213       
/Filter /FlateDecode
>>
stream
xÚ}O»
Â@œ`q°M>!ûz‰I
«€0… •…X©¥…¢­É§åSü„”Áõ²W؈pw»3s3Y:Ê'sÆÃ„³˜ó1ºPš»¡{¦~s8Ó´$»å4'»tc²åŠo×û‰ìt=ã„ìœw	Ç{*çÓ(¤Džˆ¼`D:„y#jAÔ BQ»SQ]9h@ø”¢9…׆mðÆ 3/"-PIÿoÓ™n•§
ÕªË×ÙñÍó?|ÉR3{¿¾‡6ÒnÚRûúæ}Z”´¡ëån
endstream
endobj
239 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F18
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ -1 -19 45 58 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 34
/LastChar 121
/Widths 700 0 R
/Encoding 701 0 R
/CharProcs 702 0 R
>> endobj
700 0 obj
[43.59 43.59 43.59 0 0 43.59 43.59 43.59 43.59 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 0 0 43.59 0 0 0 0 43.59 0 0 43.59 43.59 0 43.59 0 43.59 0 43.59 0 0 0 0 0 0 0 43.59 0 0 0 43.59 43.59 0 0 0 0 0 0 0 0 0 0 0 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 ]
endobj
701 0 obj <<
/Type /Encoding
/Differences [34/a34/a35/a36 37/.notdef 39/a39/a40/a41/a42/a43 44/.notdef 45/a45/a46/a47/a48/a49/a50/a51/a52 53/.notdef 56/a56 57/.notdef 61/a61 62/.notdef 64/a64/a65 66/.notdef 67/a67 68/.notdef 69/a69 70/.notdef 71/a71 72/.notdef 79/a79 80/.notdef 83/a83/a84 85/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121]
>> endobj
702 0 obj <<
/a34 659 0 R
/a35 660 0 R
/a36 661 0 R
/a39 652 0 R
/a40 650 0 R
/a41 651 0 R
/a42 653 0 R
/a43 654 0 R
/a45 658 0 R
/a46 655 0 R
/a47 656 0 R
/a48 694 0 R
/a49 695 0 R
/a50 696 0 R
/a51 697 0 R
/a52 698 0 R
/a56 699 0 R
/a61 657 0 R
/a64 662 0 R
/a65 663 0 R
/a67 664 0 R
/a69 665 0 R
/a71 666 0 R
/a79 667 0 R
/a83 668 0 R
/a84 669 0 R
/a97 670 0 R
/a98 671 0 R
/a99 672 0 R
/a100 673 0 R
/a101 674 0 R
/a102 675 0 R
/a103 676 0 R
/a104 677 0 R
/a105 678 0 R
/a107 679 0 R
/a108 680 0 R
/a109 681 0 R
/a110 682 0 R
/a111 683 0 R
/a112 684 0 R
/a113 685 0 R
/a114 686 0 R
/a115 687 0 R
/a116 688 0 R
/a117 689 0 R
/a118 690 0 R
/a119 691 0 R
/a120 692 0 R
/a121 693 0 R
>> endobj
703 0 obj <<
/Length 246       
/Filter /FlateDecode
>>
stream
xÚmÍÁJÃ@à	+.¡¹ö f^@7Û$ÐCi V0¡=yOêу¢ƒ°y´<Ê>Â{Xgjõ Ë·0;ÿle/ëTÒ…¥jFuIO_±œs³ ºú~y|ÁU‹æŽÊ9šn£ioéýíãÍjsEÍšî-Ø®	péžÉ&÷Ì"0]Ç„ãÏ’a zͳ|Á„p ¹ß:dÇÈs¾‘¹¬ç£=äƒ
üx ÙýQ~Œòw”ô?8FËÂÆ3{î©Ä“K¶œ,pp$Ýÿ%92‚Š©ý™ºþt9m†óå4ó]Ô2Ïkô€×-nñô1^l
endstream
endobj
704 0 obj <<
/Length 189       
/Filter /FlateDecode
>>
stream
xÚ1
Â@E°L¡70sÝì
’@°ˆÜBÐÊB„€ZZ(
9ZŽ’#XZ:IV›t«þ3ïOÌØÄrÄ#²‰xjø¨éBºN%7nt8SjImYǤ–’“²+¾]ï'RézΚTÆ;ÍážlÆ@TðJô
ø@	ðhxÁ«jze/¨	š]aöåÙáýÝ;¿íÇÎAdDÉ/ak+ÚÎ?i¶¥”T“‚RSÊ"§…¥
}G«@
endstream
endobj
705 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xÚ1
Â@E¿¤L/ :ÐÍ®A"ˆEŒà‚Vb¥–‚Š‚…EŽ–£äÁÍ$±ÐNxÕÌgæý¡˜1‡qß„l">hº.§!Ǧ^íO”XRÖcR7'e—|»Þ¤’ÕŒ5©”·šÃÙ”s Î@t€h~//i¹ÝKxO`L®Ð“tIVãçßxÅ?üÞù¼¨>ö‡©(=C±uÚ•¿/ñ@ªÅRÓr•iniMoEËBs
endstream
endobj
706 0 obj <<
/Length 103       
/Filter /FlateDecode
>>
stream
xÚ33Ñ3µP0P0WÐ5´T2u
MR¹
¹L
@Ð*•œËåäÉ¥®`jÀ¥ï¡`Â¥ïé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢PÿÀäÿP
*ÈåêÉÈ-	+´
endstream
endobj
707 0 obj <<
/Length 130       
/Filter /FlateDecode
>>
stream
xÚ-ɱ
Â0…á

gð	2œ'0¹-¥™k3:9ˆ TGAEçæÑòfÚ¢|Ûÿ—ÕÒ7ôlXUÔÀ:ð¢x@='eý;ý
m„;P=ÜfÌpqË×ó}…kw+*\Ç£ÒŸ;Zä“Fy2d›åÏd“L*R!s™ÉB¬¹ËY°ŽØã,P#Œ
endstream
endobj
708 0 obj <<
/Length 164       
/Filter /FlateDecode
>>
stream
xÚ31Ô35R0P0U02S06W03RH1ä*ä26
(›Ad’s¹œ<¹ôÃŒ
¹ô=€Â\úž¾
%E¥©\úNÎ
@Q…h žX.Oæö8qsƒÍ憺Ì
ÿê››ÿØnÿÁÿ¸ÿóïý
ÿÿ10Øÿ``àÁ 6P$RRÒÒ2d>»@nárõä
äT¶Dí
endstream
endobj
709 0 obj <<
/Length 131       
/Filter /FlateDecode
>>
stream
xÚ-É1
Â@EÑ?^á
¦xЙ‰‰mŒà‚V"ÑRPÑ:³´Ù™&Nwo¾\ø’ž%红V\ó¦xA=y1žö:À¨n×w¸°ççý½ÃÕ‡
®áYé/
­tò‹½4è’M22ÉD³˜ÉT&2+•<å*ØñBÛ#´
endstream
endobj
710 0 obj <<
/Length 94        
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0PaCsK…C®B.K Ïȉ&çr9yré‡+Xré{€O_…’¢ÒT.}§gC.}…hCƒX.O†z†ÿ
0XÏ ÃÀåêÉÈ[\w
endstream
endobj
711 0 obj <<
/Length 153       
/Filter /FlateDecode
>>
stream
xڅ̽AÅñ	ɉ¨ŠóÌ—eëµSH¨"‘ ” ôÍ£xw³ÓN¦ø5çæþgvZ8œ8K¿àÜñbñ€·²–>žÎ7TzOo¡×²C‡
_Ï÷ºÚ.)k̓<j*¥zÑP¢±‰R˜è.NÑO|[ƧÕmÈÜÏdSéL6•Îeé\6•NdV;üxÔ*Æ
endstream
endobj
712 0 obj <<
/Length 101       
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0PaCsc3…C®B.K ×ĉ'çr9yré‡+Xré{¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]dêþ7À`=ƒ1S—«'W fp"¸
endstream
endobj
713 0 obj <<
/Length 140       
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0P0WÐ54S0´P06SH1ä*ä24PAS#¨Tr.—“'—~¸‚¡—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEA†¡žáÖ3È0຀`ý™PÈx€±±¹™¨Ò‚¡€!ËÕ“+&,•
endstream
endobj
714 0 obj <<
/Length 107       
/Filter /FlateDecode
>>
stream
xÚ33Ñ3µP0P0U04T03P06TH1ä*ä25
(Ae’s¹œ<¹ôÃLM¸ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
õÿAà˜üÿ‡Îj-Ô\®ž\\~,Ü
endstream
endobj
715 0 obj <<
/Length 94        
/Filter /FlateDecode
>>
stream
xÚMÉ=@PEáþ®â®À¼™x¨ý$^!¡Rˆ
¥‚°{	äTß±4J2:*5¡Å4嬨`ö¢£ÿÆ´"žfšû¹@ò¶ BJJ7"”¼ï몀Ði ‹
endstream
endobj
716 0 obj <<
/Length 122       
/Filter /FlateDecode
>>
stream
xÚ31Ô35R0P°T0²T06V0µTH1ä*ä22
(Ce’s¹œ<¹ôÃŒŒ¹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
55ÿþýg„" Õ1ü*Êl*,,0‘ƒ—«'W /¨67
endstream
endobj
717 0 obj <<
/Length 263       
/Filter /FlateDecode
>>
stream
xÚUÏAJÃPà‘Y13Ð4i»j³tåBA]
*
]”vB.{b yÐÜdÞsJDìâÛüÃ{ÿÌqt”ô¹Ç	&yÐ燈^(Ž4ìñ`ØMîŸhœSxÍqDá¹ÆæüöúþHáøò”5ð¾¹¥|€ü`aaÇ9Áïeå­
ã—R(£L¥(û3”]µ7EÉÛ`±¥EiÕÔêN-6Vj-pâW©|gÁÓíªÀ9£Ãpã«\ª²,~‰UsퟻNöŸívI
ÊìN=k¿jF(uŠE}€¥ññ£òÖŸÚg\غ]ÑYNWô_Z
endstream
endobj
718 0 obj <<
/Length 172       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0bSK…C®B.# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ¹ô]¢*c¹<]ø0Aý? Áøƒ½ýãù†ö@CÿùA2þ€’@5@’±D‚!™dþÀðPI¸ùÌCdþÃÀþƒ¡þÿƒÿÿ “\®ž\\^åˆÓ
endstream
endobj
719 0 obj <<
/Length 175       
/Filter /FlateDecode
>>
stream
xÚ3±Ð31Q0P0bScSK…C®B.SßÄ1’s¹œ<¹ôÃL
¹ô=€¢\úž¾
%E¥©\úNÎ
@Q…h ÊX.Oþêÿ³ÿg``üÁ~¿ùûÆÿüäØÿÉ?`°gàÿ¤êàÔ õN}`o`üÁÀþ¤›™ÚÔøFÑ¢¢˜ÿ0°ÿÿƒÿÿ? Q\®ž\\à 
endstream
endobj
720 0 obj <<
/Length 154       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0bSK…C®B.# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ¹ô]¢*c¹<]øÿ0AýÿÆÌذIù~ iÏ"ëÈ?P¨†ñ3õÈÿ@€JR×|Z“ÌÀ0ùÇÿÿ@&¹\=¹¹)“
endstream
endobj
721 0 obj <<
/Length 208       
/Filter /FlateDecode
>>
stream
xÚåѱŠÂ@à?¤X˜f!ó·FHÄJð"˜BÐÊâ¸J--îÐÖ|1}_aaËÁu=ÎÒÎe¿Ùýg›Mû]îp,+íqÒçeL?”&Òwš¶¹X¬i˜“™sšË)™|›ßíŠÌpúÉ1™Œ¿$ùMyÆ€vˆ¤Š3|-{Pé½ÓeƒÓ!,¨„GpPghÁºFdPCWTíÓ-”k¦¡Cˆðj(­g¸f"{¿!ªý—Â[ïÞ—ÿA£œftàùËC
endstream
endobj
722 0 obj <<
/Length 330       
/Filter /FlateDecode
>>
stream
xÚeÐ1KÄ0ð
WbV‡“ähÛÓëUw'ØAÐÉAA…Stp±7?S>ˆC>BÇGë{I<»üšòþÿ”‡ûÓJåê@íMTY¨2W÷âÓn檜„“»G>¯yv¥¦3žá6ÏêsõòüúÀ³ùÅB<[ªëBå7¼^*	ák¬‡µÎ›Ø[ojW^ar¯„*ºóG½áÉ¿ý*šo¸ŠºhÈ¡YP~˜hˆ)?£_Ño`Ã`@tÑ6Š×éó£¯J[êL©žmS/tÝ]ŒÑ#”¯zð‰ŠI™m€’&Å+S£
% -%• -3_¸ÄP}ÑÒ˜w4ò&ë!Y½¬¯¼ðkC1 RÛ ¤u㛥ÞFt(×X@;xë1¸lYÛÀ1NNÛ|1`×'ÿ1:?­ù%ÿ©£rú
endstream
endobj
723 0 obj <<
/Length 185       
/Filter /FlateDecode
>>
stream
xÚÌ1
Â@…á·LàœÀMŒÀBŒà‚Vb¥–‚Šv¢9ZŽ’#¤L!êÄ‚ºËWÌü0aÔíìs_„D¼hO¡Ïõ—±«-%–ôœCŸôX¶¤í„‡Ó†t2r@:å…œY’M¦€zÜáæ&óÐÎc¸¥§ÜÁ©ÎPÕêöøp±t¼¸e£]0.â,$+IJ’“‹¬áâ­õ§_ÏFn_óoõ^:,Íè	Àv;r
endstream
endobj
724 0 obj <<
/Length 235       
/Filter /FlateDecode
>>
stream
xÚmÐÁj1à	é^=;OÐd-‘õ$¨…îAhO=”‚ÐöX¨ÒÞ„Í£í£ø{ô°˜N"¸Q6>fB&?™Nî'izàmf4Õô™ãáZûÒ||ã¢DõJÆ zâ.ªrM¿»¿/T‹ç%å¨Vô–“~ÇrEP@X×ìû8õ \²²IU{ó˜»ùÁ3ÌbÆYã¥1Ezôè$æ'i=SË©†LÂB„p6PuŽ–8ç:R†£
²Ž÷›[4ß9Þ²áéí…ÃŽ&ÎÈ&üZÚú'­ãXήÁÇ_ð%°m¼
endstream
endobj
725 0 obj <<
/Length 209       
/Filter /FlateDecode
>>
stream
xÚ•±‚0†0Üâ#pO`Amd3ALd0ÑÉÁ8©£ƒFgúh<
ÀÈ@¨…«Ú´_®íÝýýe4fÐÜ,¹ ¹¤kˆ”µÓ„íÅåŽqŠâH2@±5§(Ò½žïŠx¿¦EB§‚3¦	i3
€5C8ZA–›À/:LÊ^ÕÁ­ûpšôXpžÛôkÚF¶­±bIF°Ü2ÕéqžËUœNÐC¨™E>ª_…ñ÷c‹ð+v·d¯ó¯åínÔâ&Å~VŸP
endstream
endobj
726 0 obj <<
/Length 260       
/Filter /FlateDecode
>>
stream
xڭѱJÄ@à?LaZáæ4‰Üª[-œ'˜BÐÊB¬ÔRPÑÖÌ›ø*¾‰yË+Äuv²g!–Bà#“ÍÌî¿ÎïúnÙñÎ;ÇÎóMG4÷Zly¿›¾\ßÑ¢§æ‚çžš-SÓŸòÓãó-5‹³#Ö÷%_vÜ^Q¿d ˆRPDZT†¸R´öR	ÊOÔµ þ@ù*˜(ÞAWEÁ],øR‚º˜IµRê5ú7P­Ñ&?”2oÆ(~#FLØàgÈü5=dF#ïzv¢L;mf–Ä&,—mXJ[°Ìa	Þ#å	}Rº:%e-vÁvS½•Ô=U:î霾šes–
endstream
endobj
727 0 obj <<
/Length 194       
/Filter /FlateDecode
>>
stream
xÚ33Ö31V0PaSSs…C®B.S ßÄI$çr9yré‡+˜špé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÁõBýc``üßD@.ƒý0ÅÿL1ÿSŒÀÃ?UBÙ7@¨`JJ=SüPêŠýê
(<ö¡9ÅñP¯@=ómrüC%h˜ACž  !@	y`>
stream
xÚuб
Â0Ð
·ô¼/0­µ‚Dª£ƒ¢³ý4?Å/iLsqˆð’»INÍÆª œ&vª)©9
¼¢‹åý¶O4¬4Ê©åÊFQê5Ýo3Êj³ ­ioK¨k2ýè D˜ÒÀ€§dFLƤ1’(­C8^Qˆ€„ÉÆDð¹ïɰ|pÃ1ÆÛ½Ó.þ"bøÿyÒ€Œ)™gëºk¸×¿àRã?UŸ’~
endstream
endobj
729 0 obj <<
/Length 166       
/Filter /FlateDecode
>>
stream
xÚ35Ñ3R0P0bSCSs…C®B.s ßÄI$çr9yré‡+˜˜sé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þƒÀd’ñƒü†ÿŒ`’ᘬ“6`R‰äÁAòI68ÉØ€L2`%™‘Hv0)"ÿÿG'!âP5Ⱥ‰ A€J$ãÿ`G@%¹\=¹¹Mÿx×
endstream
endobj
730 0 obj <<
/Length 254       
/Filter /FlateDecode
>>
stream
xڭѱJÄ@à?l˜&yM"&`µpž`
A+±:--­7`ákMgé+ä
¼òŠãÖÙÍ& XšæKf’Íì¿]{Üt\ó)p×p{Æ
=SŠu¨ÄÎæ‰V=U·ÜvT]j™ªþŠ__Þ©Z]Ÿ³>¯ù®áúžú5ð(ü6S¬ßü`À쑊-Ì— oÕ¶¸áÖë¥d‡ˆ¾¯I¾Sòý03a‘™LlB".€¿Ñ!1ÍúOx½&ÂpcÄJÂ&ÆHù‹¸£…¸Û…˜„rI)¥ÌÜ” _ò,v0Ÿšõù{lØtéT–‰é¢§úî”Û
endstream
endobj
731 0 obj <<
/Length 125       
/Filter /FlateDecode
>>
stream
xÚ33Ò3²P0P0bSKSs…C®B.SS ßÄI$çr9yré‡+˜šré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÿÿÏøÿÿ?TŠñó bü78) À¤¯s‘)hèb
y.WO®@.!»¥7
endstream
endobj
732 0 obj <<
/Length 106       
/Filter /FlateDecode
>>
stream
xÚ3²Ô³´T0P0aKSs…C®B.#3 ßÄI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÿÿ†€ˆ¡¾aècWüÅåêÉÈ3v\‚
endstream
endobj
733 0 obj <<
/Length 165       
/Filter /FlateDecode
>>
stream
xÚ31Ò33W0P0VÐ5R0¶T05WH1ä*ä26
(˜ZBd’s¹œ<¹ôÃŒM¹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
öÿÿ?@"äÿ000°ÿâ„=ˆ¨oÿ`#ø?0üoõü
ä0X0È`a°o`àŠ2°7Ãñÿ qõ
\®ž\\ŸÎ`¬
endstream
endobj
734 0 obj <<
/Length 243       
/Filter /FlateDecode
>>
stream
xÚ]ÑÍJÃ@ðYrÌ¡¾@ û&A[sjsìɃxj=
QôjöÑò(y„=HÇíÌÿДeöDzÌÌ~,¯/•/üUŒeé7~_òG‹8"ÇÝ;¯Οãšó›GÿõùýÆùúéΗœoüKé‹Wn6^DÈÅ8×I êF"!¢:˜+2oa[8˜®7“`¦dÎ`+ØÂÁÔôhLM‹fp ˜&byiguf0«­~5Õ¿jŸþ©RrÀyd*	îÕõSkÜ_Ÿ¨
NÔÇ÷9LÕxoéá ÿádÔÿ™‹„sù¾á-ÿ5Š•P
endstream
endobj
735 0 obj <<
/Length 140       
/Filter /FlateDecode
>>
stream
xÚ35Ô³T0P0bKSs…C®B.S ßÄI$çr9yré‡+˜˜ré{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÿÿÿ€™dü€þ3eR/i&
0Èò‚d“Ì`’LÊ?`üßÀðÿÁ@!¹\=¹¹Afl÷
endstream
endobj
736 0 obj <<
/Length 244       
/Filter /FlateDecode
>>
stream
xÚuÑ?kÂPð{<0p²
Þ'ð%œÿ€
ur(Ávt°ÔÙ€«ê•]ÝÌGÈè|½¨X#yîøÝ=8.
[~›<
8¢€:½û¸Ä°ËµW”ÅÇ|ýÕ”Â.ª1wQÅÏôõ¹ú@ÕjH¯>yoÉà瘣1	ýƒ¸ 8hFãx‡]Ê*ñ›1æ•øá8§¾yºØTBŸ¤,a
P³ —À“M
õ2Ü<œfepÒˆ\$ÀIÂÖ5+zÛG4÷V¸Y5D
NZ@fWðí¤'c´ÔÒÇýoÊÀQŒü¦Â!
endstream
endobj
737 0 obj <<
/Length 243       
/Filter /FlateDecode
>>
stream
xÚUпJÄ@ð/.0…ûfŸÀMNÖ?óSge!Vji¡hkRù\AKÁTÖ©$EØuwöŠM1üøf`Šï`¹·<’…Üw£¥>”w%=’Ö.>úÃí­jRWRkRçnKª¾ÏO/÷¤V›SY’ZËëR7T¯¥µ@fµm óÀ¦‡í¼ÅÏ0à{d¾¦˜üۘÎ=õ4]LÕ3ùȦ€aÒ@b·´liº@ÏT|`Ä“MLjbËÀ¾Å4ŸLõ“ÿ1ÂÄdtFÀœW$®Gœ á*Ã.|ר™±ÕtIÿ6D†c
endstream
endobj
738 0 obj <<
/Length 239       
/Filter /FlateDecode
>>
stream
xÚ­‘±‚0†Ï8˜ÜÂ#ô^@D'ÔDŒ“::htGáxWÚœmš~éÝßöú_LÂyÒxJsNgoô(ò»ÌéŠIŠîžÂÝ5‡ÑM7ô¸?/è&Ûñ~IŸ¼#¦K¶ Cµ¥ Ô¼*x1F%¨À)dBœÃè
ñ‘Š…¬ªA«ÑŸ8çEÅjGîU…Ò(ßNk¼ûÈ4ª,—
~ÐjÔ…}Á<ÛC¿2[|Žþfa?­-ÈÖžÆ3ë ñ“­oŒ×œÈ¾}°]Ñ=ÂUŠ;ü”K‰É
endstream
endobj
739 0 obj <<
/Length 167       
/Filter /FlateDecode
>>
stream
xÚ35Ó35T0P0bS#Ss…C®B.K ßÄI$çr9yré‡+˜Xré{E¹ô=}JŠJS¹ôœ¹ô]¢ÆÄryº(ü‚ ê„úÏÀÀø¿,ÊÀ ÿLñSÌ? Ô0Åø™adªT
Y;ªÑPû ¶CÝuP7ÈÙÿÀÔˆ	ƒ™….ĵ˜—«'W ŽK€¿
endstream
endobj
740 0 obj <<
/Length 309       
/Filter /FlateDecode
>>
stream
xÚ­‘±JÄ@†ÿba	æ3/ I ‰
Bà<ÁZYˆÕii¡(6‡Y±õ¡ò>D|I™"Ü:³$EÀÒò…Ù™Ù™ÿ/²Ãü˜Êé -¨àŸºKõ£Î3Ž&t”G›½¬t|My¦ãŽë¸ZÓóÓË½Ž——g”êxE7)%·ºZà[ÈÙV°óþz=ÞªEd€°‘¥ê€šKzNä¬.{7Aâ|®Œ$sQèЄÒ>j"‡vDÉmvsÔý#ƒL°ÿb~ÃüöùdóáGŒûñ¶[ÞVužeø½ÿajÖEyȳv¾Y©:À†%*?ñʵÑJî¤~D`q£ìû€@\qðíBìcáÌšpê`¶èŽÐþ	™j‚óÚ·²<§Øq}^é+ý6²¥É
endstream
endobj
741 0 obj <<
/Length 221       
/Filter /FlateDecode
>>
stream
xڕѽ
Â0ð–‚ì#x/ i*Uœ
~€ÄIí£ù(}„ŽJãÙKÍ"&…äHrÿt¢F*ÄÇ8q¢0šâYÁ
È€f4ãÊé
óäžê ×´2Ùàãþ¼€œo¨@.ñ 08B²D­uåÐ uf,HW§‚ô¥lüfëç¬(ºz¥eõ§Ö~ûüæÞ¦Øô§¹_Qš@™ñÍëõ6Ò+L®6ŸñeålóZ¹šÿ«›v,X¿ÕKéP~ï‡ÞEÔºe¯Ö©úN=â’¹«vð™<›Â
endstream
endobj
742 0 obj <<
/Length 256       
/Filter /FlateDecode
>>
stream
xÚUϱNÄ0à¿Ê)K¡~h{=îÄB¤ãè€Ó
ˆ	@°!ZÞ̉èF%Psw ²|Jì8¶ç‹Ãª¦’æt0£ùŒŽŽé®r®^j°¤EµËÜ>¸UãŠ
ÕKWœkØÍ=?½Ü»buyJz_ÓuEåkÖ?€ÆŒ!òÎf°l#>Ù3ZÎ;@Î'€ç7ÀîxïÉ&Œ&È–Nm9ƒR0—!¡G/aEïFD+E$½ÑŒµ²MX‰¿„^É>a‡-úÆü‘Mˆÿèû=¦×:upÇ´–¤-µiÞ}õèGŒˆA§Š^{s¦ywÖ¸+÷=Ÿ†#
endstream
endobj
743 0 obj <<
/Length 150       
/Filter /FlateDecode
>>
stream
xÚ3µÔ³4W0P0bSsJ1ä*ä2ñÁ" Fr.—“'—~¸‚©1—¾P”KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÁþ?<@£0ÿg`ÇÀøùA
ˆbüP¢>€©T*L`¥€)‹`J+ŦFÅþ¿Hʃ‚ârõä
äWÎr°
endstream
endobj
744 0 obj <<
/Length 191       
/Filter /FlateDecode
>>
stream
xÚåÐ=
Â@àÑÖBÈ\@7‰¬ÆJðL!he!Vj)¨h«9šGÉ,SˆëlÅ3X,ßòf˜âu¢VsÀmnFlzlº¼	é@ÆH¸¤˜¬w4HH/ØÒ‰I'S>Ï[ÒƒÙCÒ#^†¬(±µÊ>ñl
\3X~ZPCAù©J'BEH?4€þ—ºôuâ7{©-'¿ROrï%ËxºVÝ™‹Ã·¹CÙï qBszØxaº
endstream
endobj
745 0 obj <<
/Length 240       
/Filter /FlateDecode
>>
stream
xÚmÐ1jÃ0Æñg1>
stream
xÚuÑ1KÄ0àW
„ãºv8ÈûÚôÎb
ç	vtrá@ÿ…?'â)ΤC¹ø’£âMHøH^ÂK^Yì/Pá÷æX.°8ÄÛ\<ˆR¡ëÅÑvçæ^,k‘]b©DvJË"«ÏðéñùNdËócÌE¶Â«Õµ¨WhíÀ­í"kÿ·ä@öŒæ¤àmDâ$f~¤#;
Hl ¿¥½8@£ÁŠwdFUšì¨%[pù¤^q(é`J7)¯Iˆ’›ÑMk¯T¢äRÙñRI JN%}¤½Ö<=“Dt2l¥IÜ©yÑÑ&ôFš:Uï;	ôAš9ÉOŠ}
ô5*¡¿­ºÿÄÿ‰°­ÄœŒE'"'íEÑ<´¾¦®_g'µ¸ßÑÆ©Ñ
endstream
endobj
747 0 obj <<
/Length 279       
/Filter /FlateDecode
>>
stream
xÚ]ÑAJÄ0àC»…МÀ¦Ç.„Â8‚]ãÊ…êÒ…¢ëöÁ«ô&æuW°ôù’<3‹ôãÑ¿ù».OËÊXSÒZ[svnž
ýªIkÂè_<¾èM£ó;šu~žÍyûxÖùfwi
oÍ}aìƒn¶¦E„'8p…@ë@Òµ1Ù±=™Ž h¨	$«3,ØÄ+N¼€ÝŠ­‚moƒµÛ³.˜
}0ý颿Q…£’x(`ÜO‡b<¾£âkˆç|ŽÑ4ºPS0á€%»â€
¢–ƒöàØÞW¾œÌÈCeàË		»ä›PIÂ{Á7™½]øоiՈݱúªÑ·úR}Ý
endstream
endobj
748 0 obj <<
/Length 231       
/Filter /FlateDecode
>>
stream
xÚÍαJAàYÈÁL›"y÷.p1©b¯L•BAS¦P´Î=’p²2EÈ8»n@ô,†ofgÙ§“ËÉŒK®´¦×WüRÑ+ÕsË8ÆÅó–
¹5×sr·zJ®¹ã÷·
¹Åý5Wä–ü 7©Y²È	ð~k%…öÒvìT²Z^{ÓcÝÙ³ ÷ÃâôU«o²CÕ0Ë–*¤ÅSTB¶‹ú`ζÑñÞ&‡í%‹ãE¶Ÿ´§QÒÈ0›b4è3¾Ýe}÷¿Íÿô"Ý_馡}Èl®
endstream
endobj
749 0 obj <<
/Length 232       
/Filter /FlateDecode
>>
stream
xÚUÐ1JÄ@Æñ/¤¼&GØw“@B,ÄuSZYˆ ¨¥ ¢`—-GÙ#liv|ß‹ÜÀü`fÈŸ™iÊ“¶ÖRu«M«Ï•¼K]Ù¼ä”O¯²î¤¸Óº’âÊV¥è®õóãëEŠõÍ…ÚêFïí—é6¢}8rB²G‘š²	ç g@þãîp
¬vøÂoûÑðDšD,ZŒN€Çà±E‹Ñ-
®Å-FIâ2vpŽeDZdøÓbt¤½k±Ùt`ÌÜÓÔel6óXÆË"÷ó­üdÁí=yÙ<"ú»ýW.;¹•_µštó
endstream
endobj
750 0 obj <<
/Length 204       
/Filter /FlateDecode
>>
stream
xÚmÌ;
Â@à	.´Vf. ›´1àL!he!Vji¡(X›£å({„”Á8ë£—åø‡ùÝéÅQ—Úš’˜º}Úi<"ÏÈŃ÷f{ÀQ†jÅ{T3ŽQes:Ÿ.{T£Å˜4ª	­5EÌ&¡€º6äü¥…°%/_x÷/PAP02gøýÁ0Ò¦–yp&îî¬dBw›:Œ+0ðÁüâ}¨AT¾yóMÞ6Ó¢5lö–¢.Ë5²Ài†K|¤øT£
endstream
endobj
751 0 obj <<
/Length 198       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0RÐ5T01V0µPH1ä*ä21PASKˆLr.—“'—~¸‚‰—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEùÃT‚D0S$ê00|`ÇÀü¹A¾ù;ÿæì˜ÿå˜00þ*àÄ?8Q"êI&êPMÊøbÛ½`Ëßœqä ã
òÌê˜þÿ:]þ—«'W ÈckA
endstream
endobj
752 0 obj <<
/Length 182       
/Filter /FlateDecode
>>
stream
xÚÎA
‚`à'?(‘œ”ýüºÌ A­ZD«jXÔ.Ì£yàÒ…Tcu€ßæ
7f:
5ÙðP³™°	ø éL¦%¿—ý‰â”ü
MþBbòÓ%_/·#ùñjÆ’&¼•ÎŽÒ„¡ZÀ{ÈUe5ÈTÆ©¬Ö-Õ‡W¨6êÀj@-ÐÉÅóOù¯Ó‰;*`{ú^‰ž[bàTd7“ý
w§”§ÍSZÓ»=
endstream
endobj
753 0 obj <<
/Length 198       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0VÐ5T01Q0µPH1ä*ä21PASKˆLr.—“'—~¸‚‰—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿó‚ÁþT‚zó !ÿHÔ±÷`øÁøþó†ú쀶¤ „|P±=˜i«‡u âÉDª)öph‘<„ÚkrF=ÈAï?0þ`<ÿŸ¡†½ÿ?ƒü?þÿì@‡s¹zrroXhI
endstream
endobj
754 0 obj <<
/Length 189       
/Filter /FlateDecode
>>
stream
xÚ]Î1
Â@Ð\˜B/ 8ÐM²(ÚЦ´²+µT´“èÑr”!åbI
qáÁ23ü;èö9änÀ¶ÏvÈû€ÎdC)úlGUgw¤IBfÍ6$3—2™dÁ×Ëí@f²œr@&æm)‰Ú¸·2Ï©\^¡sϵ2¸Î÷¯HÅøQ‰RñþQÖOþø—Ö5ÉQÑJrµìhèM£íÂá„TårL¼@³„Vô½£@
endstream
endobj
755 0 obj <<
/Length 141       
/Filter /FlateDecode
>>
stream
xÚ32Õ36W0P0bcSK…C®B.# ÌI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢*c¹<]ê˜ÿ70ð|À ßþ€ÁžÿCÿ`ÆÌ00ŠÿÿÿÇäè§3ÿa`¨ÿÿ޹\=¹¹¢&[
endstream
endobj
756 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚ¿J1Æ¿00…ñ
v^@³9ïäŠÃ…ó·´²+µT´[¸}´>
stream
xÚ31Ó34V0P0bS…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
Ì€à?É&™iN‚ìaþ`ÿD~°’È700nà?ÀÀüDþ“ØÀÈä‡$Ù€‚ëÿÿƒÿÿ7 “\®ž\\y
endstream
endobj
758 0 obj <<
/Length 122       
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0P0aCS3…C®B.C ßÄI$çr9yré‡+Zpé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]˜ø0È@A@ 8~Àüá?±q©ŽØ0üÿ‚¸\=¹¹(CE`
endstream
endobj
759 0 obj <<
/Length 150       
/Filter /FlateDecode
>>
stream
xÚ32Õ36W0PÐ5QÐ54W0´P05SH1ä*ä22
(˜Ãä’s¹œ<¹ôÃŒ¹ô=€\úž¾
%E¥©\úNÎ
@Q…h ®X.OÆìø   P?`üÁð†Ø€¸ôE6Œ?êügüðŸ‚üc?PÃ~À†Ÿÿó.WO®@.ÿ§Wõ
endstream
endobj
760 0 obj <<
/Length 196       
/Filter /FlateDecode
>>
stream
xÚµÍ1
Â@Еir3'p.#˜BÐÊB¬ÔRPQ°ÍÑr±0EÈ:? êdÙ³3ó7èuÂ.{Œô¸òʧãH‰ÆrCqJzÆGz$¯¤Ó1öÇ5éx2`ŸtÂsŸ½¥	[…RÊüâë?´LõºæÝ3Ø‚ærÁÊkm‚¨„;xÔÂ3êH†Kv¤Ø@%¯â.êýoÔ	nn—**ŒÉù@Ô¦ôDr
endstream
endobj
761 0 obj <<
/Length 108       
/Filter /FlateDecode
>>
stream
xÚ32Ö30W0P0aCS…C®B.C ßÄI$çr9yré‡+Zpé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]˜?0ü‡!þ̃±ÿ`øÿÿq¹zrrÆ‚Q.
endstream
endobj
762 0 obj <<
/Length 177       
/Filter /FlateDecode
>>
stream
xÚ3³Ô3R0Pa3scs…C®B.3 ßÄI$çr9yré‡+˜™pé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]˜?ð`Àðÿƒý†ú@úƒ=ãƒ:†ÿÈ77Ø3ðnà?Î ßÀüÿˆþÇÀDÿa`ÿÁÀNÿ``ÿ€þÀÀþ`Ð O€âÿÿƒÿÿ7ÿÿNs¹zrr#߈
endstream
endobj
763 0 obj <<
/Length 147       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0bcs…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢.
Ñ@-±\ž.
Ìø?00üÿ`ÿD~°’È70ðnà?ÀÀüDþ“ØÀÈä‡$Ù0½ñÿÿÁÿÿI.WO®@.‡e%
endstream
endobj
764 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xÚŽ1‚@E¿¡ ™†#0Ðeƒ6 &na¢•…±RKv9Gá”Tâd)H¬ÌN^fþîþù‘žÌ¦ð”Çš£€Ã9Ÿ5Ý(ŒE”qÑßœ®”R{cRk‘I™
?îÏ©l»dM*çƒæàH&g8^W‰S­œQƒdHàVðá•R¾ ò!J*¨-
Ài~ nNû/†ooñkg»Íîõ$AéÖHåŠ>
éáwlzZÚÑIKÚ
endstream
endobj
765 0 obj <<
/Length 196       
/Filter /FlateDecode
>>
stream
xÚα
Â@àH†B¡y½ž­uj;:9ˆ“::(ºÚ>Z¥p"ØŠç]qÐQ	|CB’?Šû2ä€Ü“1G!‡#ÞI:R°«aøm”d$V$f¶O"›óùtÙ“H–$R^K6”¥ŒÊ¯À¨\ƒ¹UW0÷Â/¼º%>Á«°T¨5*è´4hy~“ÿÌ÷ö²¥ý¦Ýß>
stream
xÚ31Ö³0R0P0VÐ54S01Q06WH1ä*ä21PASc¨Tr.—“'—~¸‚‰—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEùÃùŒêØ0üa<|€ùÃãìÊð?`0?À€Áþ€>
stream
xÚ36Ò35R0PacCcs…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]ØÈ3üPàÿÃÇþ?nÿÀÿœýó3 ~Äo˜0ÿah`þÁÀ€‚?P³Íüÿÿs¹zrrjÙF„
endstream
endobj
768 0 obj <<
/Length 195       
/Filter /FlateDecode
>>
stream
xÚ=αJÄ@à¶X˜fßÀÌx{›`TñSwÕ‡•Z
*
Wî£í£ÄÊ6`“"8Î%GŠ™ùÿfŠ|q~ÆK.ø4p¡ó‚½R^j¨çåÔ<>
stream
xÚ36Ò3²T0P0TÐ5T0²P05TH1ä*ä22
(˜Ad’s¹œ<¹ôÌ̸ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
Ø	W áŒ@ÌÄì@,ÿÿ?Ã(f„ÊQ „þ0‚pC
sC3ƒ=;ÿ?°f.WO®@.uH–
endstream
endobj
770 0 obj <<
/Length 153       
/Filter /FlateDecode
>>
stream
xÚ31Ó34V0P0RÐ5T01Q06WH1ä*ä21
([@d’s¹œ<¹ôÃL¹ô=€Â\úž¾
%E¥©\úNÎ
@Q…h žX.Oæìþ`üJò`À‘p’ƒºBþ`°ÀÀðƒ¡üÆçÿì™Iùÿí@’ùÐ.WO®@.1c
endstream
endobj
771 0 obj <<
/Length 183       
/Filter /FlateDecode
>>
stream
xÚU̱
‚PÆñ#‘k[çêªWJ'Árjjˆ ¨Æ†¢¶ˆûh>Š`›Ph—º—jù
ÿ¾@BŸ\ò©ïQà“ÒÎÃ#ŠHE—Äè³l˜dÈ—$"äS•‘g3:Ÿ.{äÉ|Lò”V¹kÌRj×_œ
œÒ.Á.X	,g0i)à
<¡¥©¡pƒ¶&†®A†=éjœ|c(v‘kØ]þb=ÀÐ(Ô¿áúO¨ÁI†|F£?ê
endstream
endobj
772 0 obj <<
/Length 233       
/Filter /FlateDecode
>>
stream
xÚUÎ=KÃPÅñs	Xx³v(æùzËíËb ­`A'
ÖQ|A7©‘|±€Ð~Lïx‡`¼7UÓN?8gù«áá°Ï!ñAÄjÀÝÏ"z$¥ìr·¿~nîh”¼d¥HžÚ™drÆÏO/·$GçcŽHNø*âðš’	WUPñ÷6¾Aß´4æðŠ5¹§q‘þ"bxØ%âtÇq¿Á_ù®cùGˆÅ²h;²š÷L€ Ëtè5Â<þfúOk…2·|âµÁ+ñ–ZlECÝdÑ ±ï(°ç˜ÂÑIBô¥Y_™
endstream
endobj
773 0 obj <<
/Length 210       
/Filter /FlateDecode
>>
stream
xÚMν
Â@ð)(¡«ƒÐ>
stream
xÚUÎÁjÂ@àYi®
Îèn²Zõ$¨sÚSE¨GÁ½‰æÑöQ|„x‰³²Iéå;üÃüü=ÝF¤(¢N8 ^DúÖ!þ qª¨¯ÝiµÅIŒò‹ôåœs”ñ‚ö¿‡
ÊÉÇ”B”3úI-1žQY¦ãâàAægà//7ˆœŽ4gËZŽvª*Ì 0‰Ã¿˜Š+ã]S‡¸CEÉ@QsüϰFÕì,IqSn/¼'¶’gCþbŸ^m‘mjg`ç1øã'>ÚŸKø
endstream
endobj
775 0 obj <<
/Length 183       
/Filter /FlateDecode
>>
stream
xÚ%Î1
Â@„á‘@„‡$|'0‰+AA¢‚)­,D¨¥ ¢æQ<‚eŠ`œÅ_ìì·°&î#
µÇL_M¬‡H.bìÚ£½ØŸ$I%ب‰$Xp• ]êíz?J¬¦Êu¦[>ÙI:ÓIU•uO§Ã)Fh~ðß!;£ó:còÌÛዬQÖ‘‚ôŸÿ)HÿåpIëH]R·YÀ#õH[¤mé(œ²âl2Oe-?uàC
endstream
endobj
776 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xÚµ1
Â@EH!L“#d. ›ÍºˆBŒ`
A+±RKEÁBb޶GÉR¦R×l´6¯˜˜ÿþPtÌ+îǬƬ5$Ii;ŒXÜf¢$#±a¥I,ì˜D¶äëåv$‘¬f,I¤¼•í(K~
 |[äj¿„W¢‚opGÏà ÀÄ!´—S‹¢E¦/‹òèzù´ÌO¾6x+Ó¸YÛ~åÕÎÜuдñí…æ­éÂÕ`ú
endstream
endobj
777 0 obj <<
/Length 121       
/Filter /FlateDecode
>>
stream
xÚ31Ô35R0P0bc3SS…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]0001;ËñÿÿaX*6T°ý†úÿÿ?À0—«'W ¾NÚ
endstream
endobj
778 0 obj <<
/Length 228       
/Filter /FlateDecode
>>
stream
xÚmαJÄ@ÆñoÙ"0M^ป'p÷WóSZYˆ ¨¥ ¢`eòh>JáÊ+ŽŒóé5‚E~°;ÿY²¬šc­té_^iÓèC-/’³Ÿ+9¸’u'éZs–tî·’º}{}”´¾<ÕZÒFoj­n¥Û(Ê-€~‚Ù€8¶#J^ÎQì0CÜc…0áùîÈDÌ_úŸžÓÁïø:ßsöNüaçü™r$_΂[->	³À,°ˆ,
%‡s„'äƒlÏ"³ÈÌñ¥™aAZÒ›M°¿ÈY'Wò
TŸc|
endstream
endobj
779 0 obj <<
/Length 235       
/Filter /FlateDecode
>>
stream
xÚuÐ1NÄ0ЉRXšß`3', ZiY$R AE¨€	´ØGóQr„”[¬0¼„‰"OÊŒóÇ“ãîÈ/¥•^—ÒŸ‰÷òØñ+÷ÅVüɾóðÌëÝ­ôžÝ%Êì†+yûxb·¾>—ŽÝFî:iïyØ™-­2È9QµµÕ	EëPõE6‚f¤LÍôV»&‘ÆàðÌÔb&e6‚€§Ñf“õÕŽó‘òY	(yâ/ifUý°Å_	cBüÔ¨M>Õ‹ý‚¸Ÿ™°y¥ÿ€‚޵¸2_|ÃßÇ›jh
endstream
endobj
780 0 obj <<
/Length 188       
/Filter /FlateDecode
>>
stream
xڕν
Â@ð+At-(˜'ð®¶µkotr¡P?ÁQðÅ_ÄÇè èý‹­³ù‘äIàõÃ+FŠÃ!¯=Ú“™º,ñ‘o)Ñ$ìG$'¦KROùt8oH&³{$S^z¬V¤SBÄ¢âŠ
ØÀ©iƒèA«äf°1ë€h‚.p;»Áö`¯Z 	\2ðoóŠß›ÿÂy™³54Ö4§òý`ö
endstream
endobj
781 0 obj <<
/Length 226       
/Filter /FlateDecode
>>
stream
xÚ•Ï¿jAðïna܈Θ½s=b!j W¦J!‚`R
ìnÍG¹G°´8ÜÌœEH:›_1;ödÏyŸSp¯ÏnÈyΟíÉ9)¦œ¿Ü_6[šd?Ø9²oR&[Ìùð}ü";YL9#;ãeÆéŠŠÇÀŒÇæÒºÂ„ÐpQ*Å+j .+xsº7á”xÄ•‘Íç–Üð‘\ƒ }µrÓþ† ”¿ø´•R	
þ/:tK­¬uéîNTc¨'Û¼‰Ä'ò¡jìiT”2ƒ®D¥×‚Þé+XÑ
endstream
endobj
782 0 obj <<
/Length 243       
/Filter /FlateDecode
>>
stream
xÚm½JÄ@…OØ"p›¼ÁÎ}d³ƒÚXW0… •…j)¨hëäÑò(ó)S„ÏD…m>†{çüÜuuìVZj­G+­ÏÔ9}ªäMjÇa©îägóø"›VìÖNìÇbÛkýxÿ|»¹¹ÐJìVï+-¤Ý*Ðô@ P„sŽºø‚&¾³¾[D>#E@ƒ¢Ç†r˜Iõ~2û>
stream
xڕα
Â@àHÁB}Ѽ€Þ]õ¤“…ª`A'uª(¸ÙGóQî|ƒšTZèàà‘û†?$w#3°i²ÔhdÈŽéhð‚CË!Çá·s8cœ ÚÐТZpŒ*YÒíz?¡ŠWS2¨f´5¤w˜ÌHŸP˜Qžç®ÎëY’	4aÐ:B@øÇ8‚—1¾ìn
-¡SQ¼üRá-8­ð
d“_Ñ®Ó+ÈJ¢_<ÿ!’¯tùâ<Á5~lúQ-
endstream
endobj
784 0 obj <<
/Length 265       
/Filter /FlateDecode
>>
stream
xÚMÁJÃ@Eo˜ÅÀ[8мÐ$A„ÒB­`B]¹WêÒ…¢ÐEÁù´ù” ;#Ç›*ÖÍyóî{wæÎquÔLµÔZ§ZŸjÓè}%OR7KmN~&w²l¥¸Öº‘₲í¥¾<¿>H±\Ÿi%ÅJo*-o¥])L OÄ[
À`;d1ëa¶°3X`LpÀM6{ä{xÖSÏœ˜°Hpžî|tO¥0£1l¹6Ì	ùi4ÈþÓ,ìÀe3zŸÓáw™gRÒô¦SÅß@v伕+ùÿcå
endstream
endobj
785 0 obj <<
/Length 237       
/Filter /FlateDecode
>>
stream
xÚuÏ1NÄ0бRDšÆ@ò\œlÖBT––E"Tˆ
¶¤AKr®â›ì!eŠ3³	ˆšgiÿ_×'aE5t¼¢æŒB ÇŸ±	2¬(œÎ_žpÓ¢¿¥& ¿”1úöŠ^_Þvè7×çT£ßÒ]MÕ=¶[‚b—….'0SÉ2*(ÙŒ`&p	ÞÁõBì!Ît ç¼àÒð_èÝ_èR¥c§Ø™%Éž6{6Cñ!I¬cˆ“Ä)A×ô?€Ö«ÌÁ“ôXZ1IÁØËN+éOVë”ùÀäqY‰-Þàúm9
endstream
endobj
238 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F15
/FontMatrix [0.01204 0 0 0.01204 0 0]
/FontBBox [ -4 -21 83 62 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 27
/LastChar 226
/Widths 786 0 R
/Encoding 787 0 R
/CharProcs 788 0 R
>> endobj
786 0 obj
[48.44 46.13 46.13 69.2 0 0 0 41.52 0 41.52 0 64.58 23.07 32.29 32.29 41.52 0 23.07 27.68 23.07 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 23.07 23.07 0 64.58 0 39.21 0 62.28 58.82 59.97 63.43 56.51 54.2 65.16 62.28 29.99 42.67 64.58 51.9 76.12 62.28 64.58 56.51 64.58 61.12 46.13 59.97 62.28 62.28 85.34 62.28 62.28 50.74 0 0 0 0 64.58 0 41.52 46.13 36.91 46.13 36.91 25.37 41.52 46.13 23.07 25.37 43.82 23.07 69.2 46.13 41.52 46.13 43.82 32.52 32.75 32.29 46.13 43.82 59.97 43.82 43.82 36.91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41.52 ]
endobj
787 0 obj <<
/Type /Encoding
/Differences [27/a27/a28/a29/a30 31/.notdef 34/a34 35/.notdef 36/a36 37/.notdef 38/a38/a39/a40/a41/a42 43/.notdef 44/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59 60/.notdef 61/a61 62/.notdef 63/a63 64/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90 91/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122 123/.notdef 226/a226]
>> endobj
788 0 obj <<
/a27 719 0 R
/a28 718 0 R
/a29 720 0 R
/a30 721 0 R
/a34 716 0 R
/a36 717 0 R
/a38 722 0 R
/a39 707 0 R
/a40 704 0 R
/a41 705 0 R
/a42 708 0 R
/a44 709 0 R
/a45 715 0 R
/a46 710 0 R
/a47 711 0 R
/a48 776 0 R
/a49 777 0 R
/a50 778 0 R
/a51 779 0 R
/a52 780 0 R
/a53 781 0 R
/a54 782 0 R
/a55 783 0 R
/a56 784 0 R
/a57 785 0 R
/a58 712 0 R
/a59 713 0 R
/a61 714 0 R
/a63 723 0 R
/a65 724 0 R
/a66 725 0 R
/a67 726 0 R
/a68 727 0 R
/a69 728 0 R
/a70 729 0 R
/a71 730 0 R
/a72 731 0 R
/a73 732 0 R
/a74 733 0 R
/a75 734 0 R
/a76 735 0 R
/a77 736 0 R
/a78 737 0 R
/a79 738 0 R
/a80 739 0 R
/a81 740 0 R
/a82 741 0 R
/a83 742 0 R
/a84 743 0 R
/a85 744 0 R
/a86 745 0 R
/a87 746 0 R
/a88 747 0 R
/a89 748 0 R
/a90 749 0 R
/a95 706 0 R
/a97 750 0 R
/a98 751 0 R
/a99 752 0 R
/a100 753 0 R
/a101 754 0 R
/a102 755 0 R
/a103 756 0 R
/a104 757 0 R
/a105 758 0 R
/a106 759 0 R
/a107 760 0 R
/a108 761 0 R
/a109 762 0 R
/a110 763 0 R
/a111 764 0 R
/a112 765 0 R
/a113 766 0 R
/a114 767 0 R
/a115 768 0 R
/a116 769 0 R
/a117 770 0 R
/a118 771 0 R
/a119 772 0 R
/a120 773 0 R
/a121 774 0 R
/a122 775 0 R
/a226 703 0 R
>> endobj
789 0 obj <<
/Length 375       
/Filter /FlateDecode
>>
stream
xÚÕÔ½NÃ0ðT‘ˆä%¿¤nEÕN‘J‘È€bFÌÉ£åQü3D1¾³ïìBP%˜ˆÔè—8õóñWóÕÙâ\Î¥ZÈӅܬ¤Rù¤Ä«X/íiP~ðñElkQÞÉõR”W0 ÊúZ¾¿}<‹r{s!íñNÞ+9õN&°¦KÜ–c<˽cc9¢f¶˜!÷t©1°Bâ0ØàÅ38‘"S¼¬fF[æ†H
N€…`߸š
üz׌¸¦r˜V#O௴;mKÌi-,Ff5öÌ&âžé‹%¡.’ë¦1Û	f¡…l²±|œb1áô"Ž2ZÚ/nÃ"¼ÌÚ­â/tw2"ýÄY#?ùCf6I~Ͼ°#Îbjb‘ž,°gV&}C–ÔÚ!é+´¤&,©²%}Ç@_92}}@]j¤°wYR1aìN‡ÜÑ!:Ψ1$WòLsÊ™oÙ%¢oC\ÖâV|s7cý
endstream
endobj
790 0 obj <<
/Length 111       
/Filter /FlateDecode
>>
stream
xÚ34°Ð35U0P0bCcCCs…C®B.Kˆ˜b%çr9yré‡+Xšqé{€„¹ô=}JŠJS¹ôœ¹ô]¢
b¹<]þÓ0€€ü8e²GÙ£ìQ6—«'W ùÝé
endstream
endobj
791 0 obj <<
/Length 288       
/Filter /FlateDecode
>>
stream
xڵѽJÄ@ð	W¶‰¥•;/ ùÀ$X-œ'˜Bð*±RKEëÍ›™GÙGØ2EÈ83‹r……ðc?f²ÿlß7XážÖØ5Ø·øT›WÓÊd…}—V_Ìv0å¶)¯yÚ”Ã
¾¿}<›r{{‰µ)wx_cõ`†4@FA´0žˆtŽh‚\`…N˜™¼Õ­ ¯›¹t;ïË64ž$޵ûtÄw;À‡ßˆŠû7RP¯äI3Å7¦¸Qãr—¬‘‹F&㳑ó»ÈI…bQì¬è7˜ ø)1Bð7üRGßHÏŒ	òw£ü®‚¢\€eHóY
¹ÂÏgä;¥Õ)‹œšW$_­$¢4f¬ds5˜½ù¡Üå°
endstream
endobj
792 0 obj <<
/Length 280       
/Filter /FlateDecode
>>
stream
xÚµ’½NÄ0Ç}êPÉK¡~H+Ôk·HÇ!Ñ	&ÄŒ ˜›Gë£ô:Þ]°ãd9`!ËOŠ¿ýwßœÔÐ@g-m{ê;znñ
»?ê·jyzÅ݈枺Í5£oèãýóÍîö’Z4{zh©yÄqO`ÈÛ„pV!ÄËœ™sæ<@!d‡2Ò±ûÂ:H¨ëÅ—ÃV‰`3@Ít’;š8	§‰E¡8*KŸxPV™«²Î\”6sþž“ûSÿÎ_ûùaŽÙGu²¯´GWƽnœî·pº÷Š)k§ºpÕ)j;GÝJ¦èh™¬k!ºFIwŸî`Mw±¤;qz7>Ý‘ö*¯F¼Ã/QQ¤
endstream
endobj
793 0 obj <<
/Length 307       
/Filter /FlateDecode
>>
stream
xÚ•’½NÄ0Ç}ÊPÉK!~h+Ô­ÒqHt@‚‰1#VšGë£ô:ÞPÕØñ ãˆý"Çvÿ]ç§ÍåTÓIAUEuI¾`ÙˆQÌ•Ý<<ãºÃì–ʳK1cÖ]ÑÛëûfëës*0ÛÐ]Aù=v€~]Ž—HÏ”-s¼`æ­`%œ…‰PS!G÷Ák@»H†A²‰säh[Ï~’pñI'ñÑ[p‹1ÑœnÖ£¼1Cºç¤o/jŒµ||±”ýŽ-´V3ô‡„ŸôaO¶õoZ´¢ãä?Ø2§ýç7íßß´þ€õËZiœÎ

±ß°
±ÿ„¨¤ÂѲ«^jlgˆª˜¢©è;9„„MhÇ»àÝ@ôlâÙ&±k«Ñk	xÑá
~ZµÕÄ
endstream
endobj
794 0 obj <<
/Length 98        
/Filter /FlateDecode
>>
stream
xÚ36×37Q0P04F&
†††
)†\…\@Ú$¤Árɹ\Nž\úá@.}8—¾§¯BIQi*—¾S€³ï¢
ÔËåé¢ðÿ6È@¨0Ø —«'W ¿‹1
endstream
endobj
795 0 obj <<
/Length 95        
/Filter /FlateDecode
>>
stream
xÚ36×37Q0P04F&
†FÆ
)†\…\†
 âƒå’s¹œ<¹ôÃ
¸ô=@â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
ÿŒDÈåêÉÈõéS
endstream
endobj
796 0 obj <<
/Length 305       
/Filter /FlateDecode
>>
stream
xÚ½’±NÄ0†]u¨ä¥¿ô*ÔV7U:‰H01 ¦ƒ‘sûh}”>BƧš8®ÒèF:¤_Û‰í¿Ù_×{ÚQCW%57ÔTôVâ'Ö•3:s­'§·qf¯› ‰ ’ › ¤MZAlA~	ó¨½Q‰â]‡Oøâ$Ò
endstream
endobj
797 0 obj <<
/Length 174       
/Filter /FlateDecode
>>
stream
xÚÝÌ=
Â@àI%Ì%2'p³ù!X	1‚[ZYˆ•ZZ(ZG±°ôÅÅ#¤Lg„‚'°ùàÍc^wÃdc!	)ieq‹Q*9Ðøn–ÌšE)š‘œÑ¸1íw‡5šl2 ‹&§¹¥`.'ðj>‚¯‚ÇBGñ•¾R(ü>q|æøÂ|m„[­T½l‘-A¶å©¥Qêoª”	Nñ]0ªù
endstream
endobj
798 0 obj <<
/Length 290       
/Filter /FlateDecode
>>
stream
xÚ•‘½NÃ@Ç]e¨äåáüD%-L•J‘È€bF$@°!Ý=Z%1Âø# 0ÖÃýtöÙ翽®«3ªè„ŽjjNiÓÐc¯Ø¬ÄYÑf푇gܵXÞR³ÂòRÜX¶Wôþöñ„åîúœj,÷tWSuížw Æü-ç’Y¯Q0$6/«å…¡+K`Ë]`€‚sÐÜ”£ä@ÌqÐJy«Xäm¯åaBêE?‡ÕŒŽ/CdÃ$$°EImŽõ‘6ß›J»ª0ÍwµÁƒ…‹þ}|"úvVOEÏ>+Øûš†]:â8G8qª2¼xÍOGò©Ø”¸×î´ÕÀ™e9I¡fbEŠîT„é†%lKí}ÓùoL./Z¼ÁZÎD
endstream
endobj
799 0 obj <<
/Length 172       
/Filter /FlateDecode
>>
stream
xÚ35×35U0P0VÐ5T05V°4QH1ä*ä2±
(XšBd’s¹œ<¹ôÃL,¹ô=€Â\úž¾
%E¥©\úNÎ
†\ú.
ц
±\ž.
Ìÿ@`QÿAàéÔ ôʰ¤`#bQä!”=ˆzÀRüÿÿh|6À©zpT1ØÿÿÿHÉÿªe`àK1°ÿÿ2d(—«'W û1±„
endstream
endobj
800 0 obj <<
/Length 186       
/Filter /FlateDecode
>>
stream
xÚíÎ;
Â@à‘ir„èfMbì`
A+±RKEëx¯âMô–SHÖ_A°¶rŠù`^L»ÙˆÄâR©;iµ%OdéxÃY‚j,yúj-ÖÜ-ØN%KØQg[Œd·Ý¯ØvÇ=qlû2é9}ñ'"2úçWt¾Q~àß\ˆjO¯%Á•(ŠmPað¬ý Œä›Ñ¨Ñ\Œà`´æ}…_¨ô×ö‰xPð„ïbàùY
endstream
endobj
237 0 obj <<
/Type /Font
/Subtype /Type3
/Name /F17
/FontMatrix [0.00581 0 0 0.00581 0 0]
/FontBBox [ 3 -2 103 123 ]
/Resources << /ProcSet [ /PDF /ImageB ] >>
/FirstChar 71
/LastChar 117
/Widths 801 0 R
/Encoding 802 0 R
/CharProcs 803 0 R
>> endobj
801 0 obj
[106.25 0 0 0 0 0 0 0 0 0 0 0 0 108.55 0 0 0 0 0 0 0 0 0 0 0 0 76.42 0 70.83 0 70.83 0 0 0 37.74 0 0 37.74 0 0 79.69 0 0 54.29 61.09 57.55 82.01 ]
endobj
802 0 obj <<
/Type /Encoding
/Differences [71/a71 72/.notdef 84/a84 85/.notdef 97/a97 98/.notdef 99/a99 100/.notdef 101/a101 102/.notdef 105/a105 106/.notdef 108/a108 109/.notdef 111/a111 112/.notdef 114/a114/a115/a116/a117]
>> endobj
803 0 obj <<
/a71 789 0 R
/a84 790 0 R
/a97 791 0 R
/a99 792 0 R
/a101 793 0 R
/a105 794 0 R
/a108 795 0 R
/a111 796 0 R
/a114 797 0 R
/a115 798 0 R
/a116 799 0 R
/a117 800 0 R
>> endobj
804 0 obj <<
/Length1 1421
/Length2 5943
/Length3 0
/Length 6902      
/Filter /FlateDecode
>>
stream
xÚwTÓ}Û?Ò‘I™
Ü„ÀFwwJ£äFlc›4Hwwƒ´J7ˆ€’¢¤J#!¡ t¼3îçyîçÿ?ç}ÏÎÙ~W?×õ¹¾ç7Ž[÷ùì¶0U$ËæI•tt4À  $Ä	88ŒàXØßz‡	#’ÿá¡„†A°82‹sÔA"€š]€`! XT,&	A ‰¿‘hI 2ÄnÔáj"0€C	‰òBñ¸:?¹ Ü@°„„ØÝ_á@W… €:¬#ÌW
q"¡pÖë)¸¤±X”¤€€‡‡?ÄÃD;ÈrßzÀ±Ž@†v‡ÙBêB\a ñ8€FŽpÌoƒ!ÒëAÀ8…
C`p!v04Wh¨¡
ÔCÁ¿µ;ÜþiÌþWº?Ñ?Á¿‚!P(ÒAxÁ@{¸¨§ªÍõÄÞBv?!.$.â»@lq¿Žª*è!8„ða h8
‹áÇÀ]~bø™×f„ÒÕ†Àb?ϧG฾{	ü®3éðù[²‡#ìì°{ˆ0FÀÝÂ4”ÿøàT€ë`X H\LH\sÂ<¡Ž?y¡`¿ŒàŸj?´ÇÁ€ùÁía¸€âbÑa~>ÿiø§ƒvp(hs€#ÿÎŽSÃì˸ù£áž@sŽ~` èçç_O–8†Ù!.^ÿvÿ5b}
mMEÞ?ÿeTTDz}ø„|‚"  $,Ã=øý3Ï¿:ð7ú_Ú{øŸÓýGF
„=ø³ÄO¸öýÄý5¸þì
7ðŸ%t‘8BÀ\ÿæ¿HÅ}ÿÏ[ð+äÿGþŸYþWþÿ÷‰Tº¸ü²sývøìW¸‹×¡bqË¡ƒÄ­â¿]Ma¿7ZfèúßV
,·$
ÑùÀÂü áßz8Fî	³»ÇB“éïiàj¸À°{HüçŃ‹þˆÛ=¨3îrÁàföÛÁàûk¼?enÕþyi÷s'ED4âÀQ'‰}À¸åµƒyþâäcS]w`³M˜º<¼2‘ìsÄr{вï±išâMÉ2t/Þ=Öhª.29;‡^CJß¿êº?${pÒ•«Ši†¶ëvtÕ”çhÓ³H˜|ùd€mµ0ZÙgø+ÿ“k|ðrŒEdºnÖm-éŽ@’G5ÕbÿàÀ,uëËè@M÷ ÕoìaXj©ea’j“ÙÂk?òËÜ·²h|lÕhå·ìzŸ-p§×éî:®ìnYÞâJés´I±ñ>a¥FÍÒ)f ŠÖ¢ìfòÂÙšûe“0&Ý™põWó•ŸX5ÃCµ¼¦'ºG<ÔJ×0ÛÂuW'Iæ¢bå‹_#Ç‹Xwû0ü¶¿jÒ¨WTxés¸7ýìƒûØ]rg¹B'LÍÅ3ÛdKg%BŲ́…„(ÜáUÆ×?÷“”Ü?ôñ¾(ÜëèPäœv«ŽFÄÒÄx/ÖÏúf?>ݼn€fÖÆ(y{¸.úV{.Yj÷»"Kü*½Û]E¾.¾§Ž‹AJÙòžlvF…Ä2ð·EÞ®œYî‰8¸YŸ`‡W®[ðìt?þM²Oà^sºå}¾…ŸÔ ¼‰žÞ».e2Öé Ú_ØKŽ/ûñîåwÙ¶t½MaWÐð¹PÓT+Ý€Oo!}Û
õR(üáê[”=yJG?>Ú®8Š :ýà¤ø˜v…ÅýÖühîñZ扯WÛËeIù%ž|ÎÙÚr`fÚË‘¹ÆfÞaÍvi{‰´¾þM‘Ťxá´/hˆ¤i×ô6ÛWFü•¦ÜìW‹Ý
äUŒ^"wHJ1ÇŽàn«GŒîóÊquÙe¿ƒo¤3¹‰½÷S¯µm¨;=¨
v(¿FÜ	¶íhÍÑ|
ñµépŒ-³}ÄýÒã~ðÔœä”ò­ÎOÌëØ@›áÈhØZÈIôÈuÁ7¶i?e„œMYz™]„½M6öÖ{‹¬Ö±0ùêz|oß´ÄTS8³Ä0w\f¶b˜aÜFèm|¼sÁ]«Û¤¬oÞC­¤ò¡PakEâåMZ"šÙ³¾‘Sðïè4õøÊ/¦u‚ƒ(dŽòYγH‚OÙAû÷êõ§æl–F*‡/²¢üxÏÈWVè7YTs.â+Þf³I¨ºýüì\õ[&G³vM·š¤ì„‹ŒJ(?ŠHÞ]>u§»ÕŠç™’âõ~{Ä,¦šÆ›Âx£X|Á£WâÖg+º
ŽÕ8mÑ¢â•ƒ½› ·
<²Æ—$á7³a­;]²È¶uV–—ô^g_[®ù…„cצÍ
ƒÛn‹ìºaCíOýºhÖFS¸kÂÄ	

ÆÍR½nÐHç`Rõ¬Ú—‚Û¨8º®Æç¶….úÈNÄ
TT?QrE.¬‚F8*ü£fnØ}öq¤–¢‰"±òP.ý&Óß·»ÖC°	ÛݵZ”ïl”#E]…I±Ô*ö¶*°ÂÎÎnöï\%½]©ÝX³öe¼þa„•)æa¡my=têUðñŠ–˜=Óx„RP+¢/ø@H’!·™y@ú¾Ú¨øøj¢ÁXC ÊeÖ¹}‰
µž{ª»&h	…C–…÷.evXß 3Ÿ»{ÍT;Zñ¼T×úXëk±ÿá~¤m#“ÎV‘Ð]žÆž(w?þ§%¥7jòo‹BÚ¨¯Áîodù%ˆ>ôÓ
m[›ÔÐ};ú$CÑý±=6øÓ)?zž´†à枊ù>‚Šóæ/×փ˽_¤­Æ£«ˆ(7ÇØKŸ’kãD%|–lQ¤?NÍ¿çPcÎ?YblIû©¾YmÉ\µôÂùe\ßëÎù¨ÛŸ·æõ¥9—,íŸ=׺Yå='?o]¬ð×Úû®mã]4¤wÙ
`d®Ê敱]±(ÿ¡oUß"ɉÍf“ÎÅ]¼?|Î!´ëЕº½’éÏ@<šTÞZh?L¿Þ¨¤Vz- Y÷]~M\Ï‚¯P‹d[”ªKaáh¢ßÆf¥ÃIR€ÿÞƒúø€ËãRžSQf‹{MŠkKÉÓ‰Òƒ›«÷bØQN•]}ÝØP^xù<¼ªXóéD^ó	àã’Þ¡o˜õûm¹N¡~…‹WXu¥M’Á“›™å¥UàóA28¬gùj&A…ôãjæŽÍ·ç¾¯ø}Ò¡5á.Ç ¸¢®2úéGJ¤¼ÛoXZX>>h¹@±9¿SAÊ(ØUž&©ªÇºâq/ܘ/"ªÀ.¬Â³]ØAžÎ·Î•2%$6>[ð=÷söוÿüµâÅšLÕ3Ç›ÜÎÕÙ­p2qÛñÄcyŒÕcOµKþÄ0RÊ-½£°¬ÑÛNÕ˪tF³íï(î²Cv‚™fjN1ö)
EÅ,\ Î`d-ïÚ#Òðáµ€—*›á¶;Ñw•ªÜöº9ÃÎÍh·4вû&2Ñ/,fš^½¾ütfCÚ¸'-µ¡ín ä¾¼¨ªÎ±ŸT¹N\ûdªÕ”è6±çL\<2 PÀFÅõÑRg…ñ=5%Ýál‚U`åè¤^j­ËÜÛw^2,ûåVÞ"*1ŒÞìACЯó !gÃ(Tü…oøŽehyè‹"Í7ÉÎÑí­Ãj*Žœër׃CE´‹UÌ6©¹ËòÑ·2òÚÉ£tK,ùJïÎ꿘x^K…ñ©Œ2­†&#ŸÙ~šëY©nîüñB0¥CöÙ-O7¡î’Å×ÖØ2ÖÊì„w¾£¦ï9"@EÃ2k*‰òÕm)ü;‚V‹èúÉ|.VuÙ
Øúô½á¹ú	©ê£ýï‡ø¹šælð}oÔYRñÆØ`lýòb>žwcZä鬓1íøéy˪!”zI*¯ž¥»lGÏ;Z¨ÙØ^9„Ü/Îjfçšß°2¢­vËj˜8ØYÞS"ºýìÒ½3ºåÀé‚/V.#ÿtvHu¼yM„¿#ÙaÙÏ,¥.Xú¢NÎ¥³¡JG³rw¯ähÿŒ´hf“Žû À$Пh+–š<{î|&°ê³@¼1š‚Ì) 
‰ÓG°ü¥D\ƒ:5Òþz«¯Yç»äxê)âü;Ô0`‹YäÖÓ¤¼6PjÔ§iùÐ[iMþ+ÊdãwÄ¥®>z¼Ûp¹‡!dÍ·Ú¬‘qPúV˜Ø8'w²¾õÞ›D*ÖÚ2¹íûçž\)€ýAÞ½·.ªôDLÍ!®5ãä5³$剢ŒûÉ÷þ-ölžfÑăÓG4åÁ­`26X…Ôúе€1Ó^þr;ÿ#µJÆÒ^ñ¼F­ÂATa]ù¯âËtw&¨‰;œ·{ì=_j8ªÈô—E”X&Y¢FI]~mÛAg_³ç«îP”„f^löš“Õ¤&“ ϽZ
	po$ƒ‘ÌÏÞv†…ø¶›Ý›(0yÑ˵á=?ºéêãþ"®[Ë“?ü=J…§œY;Ì”Dn-…už˜çËÎÝfå(+k"R-?ÙÉd¼z<÷µŽé
‚^>WUæµ}-×ìjDyFý¶ 'Q*Š\kÇ¿&Òvy_è–ÌC•=ý”tR®-ei©z§šžÁæÓ…«'‚:Ö¦…3…‡0µä7º†ýQÐ>Á‰mïÑ4üasËb“JqVJŠKÑë5t2sè„Q›´]º·J.A˹ÎL]s®Öz
¨žõ‹\Ù
œvôÜ*6c÷Ýuj›{þ†—l2Zs—r*'kZÌÙÙœõ¼{‘EhvA2vó÷1žS(¡¼­O÷W¸5òàÛ OŽÈ+“Åûú{‘	<(ÌU–
•’Cç2[y„>ïÞ°”Ab"/)RÐëmX5}ÈÇ&¿›Ï×µ6>h™ßy&δ“—ŠR‘ìðÌÍ¥WÒ'çwWtËhlD–iöÛ|{bÆmà¹3Ÿ´‘@ÐãI&2Ê?íX~‡´MYq3ÿ#hÚèÿ²•^³äêrXËN`‰¤!}߀£—Ö\Ã…ª”ôýËüw¡?ü»}wŸ5/MPÓî	 ;ÏKÙªwzl7Ûû‹ÎV\*8\¼÷AYÌçdå{JºÂZMs»kr*w¾ ÆŽRoo.9ß™ËßO’7,8õÕ$ç¾ÜW· d&¦ó»›2æn,§,Í0”¶cYœ}^¼úü[Rŧù
µwýÔ/“‰ðš³ŒØ×5t—¼¢ñ²Äé…tX}kš;ïäËØˆ2õá%b)hGÄoÂ׉¥mORsò[¯–ó"xoJÉPdªÍ«·«  Ry”|6ÈÙMô¸¯¬øø‘v+¿¨aŽoryÚÐFé*^˜Ì(«˜¾LÚ¶„…ÂÖ5ÏÕ`LõlÂXƾ	óëy²{&y~¦þwlÖÂXP1ä ®¥Fg½
ª¿8…Ü÷.5
þ6<—ì'6mçÝ%Lתoïü1eDèñù	Æ-ܨ¢Ã1H=½¹«Ì)iz?ª§=3¸ìð´¸QÛN6&2_‹$›BþLhÒbÛPWRüqý_„¥¤ÆróÜ+¶£gÓȘ怌uÙ(QŠåž~î2½$À³'ýf"on-ù:g–sÁÙæ5Ÿu¨‘·,&ßì?x™ÇÒ9@ÞqDmpôì®^á3(à’-á9%+ÿ2 (áØ¾¾Óæ«Á/òð¥þ½¢£© n›ïOÒõõû›6¸~	'‹0¤Ö[•χÑé,T##XIEÔxläÞ¨ê”S,v\L;,Çm¢ºì§ðx"}`J»ŠâÖįZ=[4æÚ¯7²Å®&önù¿#E7n™n-FNU®7õi´îˆß=Ó0zÉ{1â•ý1|;ùŠz
Þºviu̳dpáœYx¬Ú='ÙúŠJ¯xƒýÎ@é-eÉr¼hj¼Pn|:Ãr¶Žgòù@ÿmkíôS9–Wv4<§’áS AK1O®/mÂ(òª{âí<,ü„î"¬y˜![郸zKmý0ÐÏq“Ö×Ô÷¼Íò²0~¾iäÓñøõ%Æ*FJ´Ç}.ƒT;}£þŒ¼×ÙÝ»‘iÊ%™Óa¤^'›ë¶ˆ«Ÿ•uèužáÃ*ï‚*ÇãàÇæœ¥½œá]—k?Üø«¢Y;çÞ•„ßè)ÙêwI1ñ:0Ê}zõCÛÖ›‰ØÖÐ{¼A)™0iøárîá{_gò,úº¤2›ó
¼ñýX]¸;‰®ÏÇ4ŸyÌr_o~+
?Rže:K;®zÄ_9‚eõË­Ÿ¶Kò°©1?gL_xyÀ\ÑS¾I7´THN
,“ÌÙêL“âp=Í
}=DHwZÕh—®)Oï µ¡Ð7àò³|u-~í „SïqÖëQ<['¨dOWÄ&í›Å"xûõµqÚ½î‹û9Ê/®C«`÷X²«J@ŠCpú®uÕçøU£> endobj
806 0 obj <<
/Length1 1407
/Length2 5930
/Length3 0
/Length 6890      
/Filter /FlateDecode
>>
stream
xÚxTSëÒ6Ò¤7¥^Þ;Hï RB $¡ƒô*A:‚ô" ½+U@ºT¤Hï  ‚~Ñã¹÷žûÿk}ßÊZ;ûyfæ}Þyf'ks²*AQö0u#JTt-A@(*ŠpršÀ1ØßvN3˜;ŽBJÿBÅÆ`mª`¨‹Bîy  QH\$!
D€@©¿(wi€*Øè
î¡04	§
ÊÍÇîè„ÁÖùûÀဤ¤$~‡”\aîp	Ðcœ`®ØŠ0`Œ‚ÀaŸ¤à‘uÂ`ܤ……½¼¼„À®h!”»£<¯ÀŽqÁÐ0wOð‹2@ì
ûCMˆ„`âGÿå0F9`¼Àî0Ö€€C`H46Ä	…¹°ÕÆZ:}7ò/°Î_ÀŸÃ€„@ÿJ÷'úW"8òw0A¹º‘>p¤#ÀŽ€ôÕu„0Þ	ý#Ð(l<ØG€í±€ß[Ô•`,Ã?üÐw¸-„†#~qþ•{ÌjH¨
ÊՆĠI~íOîƒ`ÏÝGøOs](/¤ßß+8êð‹ÔÃMØ	èÓRýƒÁšHþms„ab@)qq1öó†8	ÿ*`âãûíümÆrðsC¹°4`pö‹Ä
ö„0î°¿ÿtüsE p`s„#Iþk†9üµÆößî
°bå}þugU…Døüþ»ÅšJ÷L•uùÿPþ—SYå
ð‘J‰ H !!øgžÀßì[
Àð?»ûŒZH@ê/ØÓû›ˆçeðü^À?+è¡°z†xþ-ÿ@1 {ýŸ‡àwÈÿOû¿²ü¯òÿï©{ ¿ý<þ?ØŽðùƒÀêÙƒ
]vBÿ
5‡ý5к0(ÜÃõ¿½Z0vF”ŽX‚î
ïþe‡£ÕáÞ0¨qúKK7[GÂPhø¯ç6
ü/vô .ØgÛ²ß.v²þYW
	AA ˆ˜8ìîö!Á*»ø°³
…yÿ–8@X‰Â`CXŽ”;ɯƂ°:¶C\Ð0Úé—äù!îîØü-lñ¿×¿çó†AHægP™0ç—aí5JL^‚ŸG––;£-û¢Ä0\³Ïüœt35&*ÛA«n
?5˜+‹˜˜ñgâÛ¿õ~ð:;x1M3ƒ£Ö·ª|(˜?øõäµ#ŒŠbt“x½JudÈBag…oÅb>s.Ñ-ºñb½ðª½q_jà
(>£dKcÂÄ)åvîà>¶dãXÆY> Œ§v·J÷0Ñ2»Â}?Wneøê³jŸ1ôñã›ìþ¾§¢ÇÚ=ÕâU4´¾÷Ør‡“è’²ï5¡q¸”ÅÎTÊRÙŠ\#¸ñì$¿Oô·%
ˆz48ê©ßÐô¶Ñ£%6#—Û½xÌl»–eòU˜ìVsr´“@ÍSeÎj(ÎÙPúAµ("¯Ÿž@P×ùþ§îª¤ôÜRw¡1–ðQ¨¨Íúø­»¸Ì$ˆuªBràÓseq«Û°ƒùÂ¥l*€†‘“Æ@OÍyÙcøŽ€Ð—ç}ð
‹Û)ÈÓÍæ7íCÝ‘‡(Ž}ºÉàD‹ŽÌÞí¤&-±³wTf|jâ˜ZíYT—-oBnÂT Q^.¾A[§†Ì}E©¹qö3QŠ|ªY
œt=bKép¥ )Jr—ý2–•âoŸÉ…4Ë¥J½?¼¦j¸›@Y»zðûëu›D{÷Ca"í¼ÎûNv%zÜ÷0wá;‰—›Ê–“Á‡3‹yÊ?LmiJ=Èsˆûÿeã´á ÏB©.ê>"úI×dàªíó·,÷ûã™Ó_ïötp§nxk6|;Ã?¤±Ò`+BT4&ˆµª|ì§‹6µêë´Ÿ6¹w¿uh<ýJ
²:—¹»ìf³Ù wàö½ü¡²*€š‚{.\JtµJ7ˆKÊŸ4Ê,P•ì‹$5x¼!Dd)„ãäÐH²†PÐ^ /رâxÜCU÷MÃíð¬‡ù#Mk-³ð½_È9^QˆºäwOÑŸ„-ôÅßø(¡ºj÷ílX›?dR
Ñm!ˆ²¼»TrÑLU`™0ý¶ÀÂ@íPçJdÕV¤åFUKJ3ÕtÓ{’vp›»«ÝƒÁ¿
EvqöÍ\ï6‹Q¦Ú“ã⽌–„)ÜÓï\OVÓ·ÕÒ?Ô¡Â5r½`Uϵ?*®àD©\XŠ‹Þwó…1{:L£BùÆneëîìÝ®8G(0Cø£Ø÷«l*×­Ë]#Ö(ßÁK´Ëõ'ãÙ´nľœzù}ãÖ#ª¶˜)s™Œ®·GéŠËöó_ýòÅ0,úY½—Úy"é_ÉDX8‰IÖ4W*í®Z‘©c[0[ÿA¦Ò:Dj†ª{úÞ³5w7Y¡»îÉm™'ÙµrÃäÂúWK*:°W|mLͼ9a´wÝÓH%u®?ÛPÕ‰„|JÑV w€~8›¢Ã…š>ÎÞ±¡¤ua`ƒ[^—á5ŸISÕÔôuᜋ†zOdÞ525ЪsðÓ-A3†“îXV·çï	ïz¾N³Êoù>Çڬ韯¸“¡‘B-»hÀïùðû@Ϥi~Žzv'Ó]…Óº…å7¾™0	OòÙ›rï
@è€U
ŠÅB½d1›CÑÔh“Ïu’­FÃâÈÐ}Þ°z²J ÄÔú$'y8q˜iá·d#ßç4''[~‘ã6TªNNe×
ü22V”S‡·g¾½êŸÏE‹8p«œø,®Ôؼ˜z¡h
a•L©E2J<äeX¿¦uy×E_îæÞ
ÅS@ré„ÀG”ÚãÅ›ë.¸ï2øÈ%ˆâY-°ìžkÛœz€j±™åhâŠý|rlM%‰HMXkB·p……½N\Y±áÍd3ùÜ&;Á]®ÜŸ¯[¦î0fÏ—IØL½ô°Á1Ž&Q;ÎW–£z_à‰|Ÿa²JT•‘P;ÖÎ>q^Fc-L0"à5Ñ?¨˜7•Æÿ˜9N~íªuC¾_­Ÿú4íWN¦W‚sàĉþZ¾u˜Ài™]Ö+¤Yû\i¶°6:Ú.Ë´>ÝT˜ ÅÝ;¶Çä#RÒ(Å“~êGyvÛ–m½­“J4Øà챺¿Nd:oq?o-STw?m³«ÍsŽUÊ…Ô‡*ž¾A3ÙÇM†Qupvâ̰Ê—>4
³®ü˜eï«¡¢ÀÎâûXäŶY›6"7\dd°É±ÞÔ"ý³ãï`G¼Ú¹Í"(weÏç.&Á–FÒ7"8ÂL}Σø€Èù.¦Ø¹7I]‡Ã«ï_2öèK޽:ƒŸ4Œ¡hçq+c²t4‹Þµj8=iÌåMÿBø0—ö=ÄÒ'µo¤­(/ë	­îÛØ+;AÅ:B µÁ÷iöXíøYƸt°ªð±Ö‚Ÿ†'Ô24¼÷ÜEϼÁòÕžúœì¦r@]Ú–KÝûÂ%£=ž…é1‘9NJ ®ÒåÕ®kXNì(ÅÂß55õf·ì.ƒáçVºª°|Ÿÿ”„ÏÛÔüóX{Ÿ¨5@âß½œÇKÖíß™®:c¡ßÁÌ…ã]jÂ2#æ
Tê·<õö7Ø5ÄH‹wÉö	ór­@ùJ7_Å>á÷ߨáYk1›>ZŠÑ(­DH„h;0™Óú.ºçÙîÉ}×`÷ã.¿;a¡(æéºÕ“ZqÀà+ü¡®qÞwR§ç~˜K´ê5Öþ»‚_—j{n1Œ÷¿5Ÿ(
,GVEÕ½Yf˜kVZ{Òòºƒè¬ռʷÂ1	öFê°„DóÕ?ƒÁÊŠŠ;q¼\"o±^h‚x%ˆJàìqã=!@–¹Áõ=f
ð.jêhß“
Éþ>ÿ®"yèOg“̸àž3×õ§ËKÞ:ª1$$̽jͼ&å{½í³I”Êb p/æQkR_zÄõßÞS©Ø~÷±i­Çù(çjÓ=í3oçüV!b‚‘~{PÍÌË#Ò­,„ªÎá}<ÑàóFA$ê´ý¸ƒ[vܲc‰&¸¾ Í“ŽåS»óyTˆŠOó³V)—çø§NìëÈ6Å÷ÕŠ3uÝ9æ Þ÷ད¢‘*Ô±dBŸ¶—¡ãÇ8·l>

yˆÐLLTÎh÷N-©ŽYô£Ó7?//\ÉhàQ2kNÚ]!öb»Ä¶2Û†Mpæ@Æ5·Wg}ñ¬C„„èd\1!‹Ð<æÉ‘¼GëÌ&ù{8ÅgPv^KEÅÛçDLH ïÍr,Ë·F7%ì€ËÌ
·8}ænÝ{Ù2gQÈXÐ-ŠÑòöv>ŸºÝg•r§%TõŽÚ»d7·ju¾ŠÒ/µ‹éžîúSÐQ¤òF!Õ$žƒT(_5Ó®…ô—Î
ùöLi¾‘EÜ‘8º©d.p²³?‹]0’˜w|A)Ù±§F›o;ØB»÷½Y#·ïüý“·J,¼ÄÈý³±uÓ&íO¨z2ßëŒ.‘ßÛ98Þ²Q…—^YJ£es>4‹t³Ñ.šF~óÏÂI»CðUÌ,lÇaÂ4fû¡ApÀù夿ÜÏØLìÿ™n1}ƒ‚Mt¦ÔQ	k|ÀÚç>~G7¥ ×rþÎ"bT*ƒ!Y_¦I“ÒªžÎ1S
m	«—21
¶Ò0FÙË­1¸BìÌ^0R'F†.rƒ g°µW·ãý{‘¨zÅšÚ•´àŸ¶‡ÛJ“¢%+†t[]ʬf§8¥Ô
ZéåH[+*6sü¼®WÛRˆ‰ž©ï;NuÕÝÍQÎØ\ËÚU*­ ^îxørìp˜âöҫʼn»
„1¬‘…‰ãû ·ÞWžÌ÷剟®¶_g~æ^Xb•ôñµ§Ý'Òö†Úïq7O»½Ï58~æ1…m	ä·ŒÞxû¤©ô懱Nõ‘Œ'šṲ́¹[U¯Øn^»Í7ÜQ.D ¼áEÐm$ÙÊ£8?ÿ8Ó—Òܡأǥåú4÷ãsy¶7®©°£!ÅQ=¹ùOöI3ÍÍ‹Éw.7§“®Ëú\dëyŸn•vô	÷àbôê‹z£"/)›]”´¬#yoê^P6¬ÿ´L›G60†Äd$Ls•òÙij$q_Bq(Vn]r5
úË.ö>=ïd`Ü«¡þ¹=_ÎÿB^Ô(›ÿȇÛu-›aº,åÆfÛ‰[bؾðe»X/K£þ`ùzº<9n_éÈ+gëzj䉨…ü½|_…yÕ½ 9½‹ðköH2–8¿‡7í-yäÙç%ù6wޏ”úˆ^ Vb.p>‚N¢5W»ÉT½VZ.¬ƒH;˜év ÏüԒ醊z{Ï3,gP	qЙ-o81b²Ï|]8\\8¬ïîTÓáBšó¿US¶©à›§)Ÿ|Í9{êvaXý,Åp=#ß~¹”NØíäZÃÉ3f“”‡ê’ø¶?¦•¨’»;4†ï¸jÇûqùÊÈNw廯ZÁ%ÞŽÑ×ïd??âæ£¿zhdr
yŒ‘ešŽu9&R(qeàÍs8m©ÞK]^)¸ð¹Ã³ZmǹàWÎDYÂÖnÈš-äB/y·œ:l(WðWN»?>P[:°ÂL,8êk3Ç>çøÆñRŽ–ñSÈl¶Â6TQÂKi-ZΘF¾=Í<Ãɧ ÉÜØ±U”+£}¾œ~}ÐÝ­ƒ¡Dë|•§NÅHÙ	G³`R÷4¸ÏWT¤µºñâWñžüȶ½IUÀ[;ÍÓò-«¨á†®n+IC]ÙÃ~O®Æê¡s•¥Ï¢z8:÷Ñu^&~IôèöÖ±šƒÜÇü‚9Ueù¦ŸÖª1½0`oÓˆà¯hŸ´ì„IÐ(+xRψàP&¦LzGB©×Ô<–Z‚‰±»_öeì¦é6֕Ɖ4¥ë_<[¶Ôd±¥4¬´iø5{…ÙXNd2<ãP/}—¦©:lƨàvLè3ñ´…Ö`‘S]®-¤{ _9’àlþ,_C{ÎÀ©î‘^½U3¾ÖívT
Ñ¡	½ïâ¤ñ±ìTÚ“ØËàkvw±¿Êj ™{ÜíWË9쌈	(B”Q­è‰¸8€OP÷$Ds)·ë=—·»Nµß›ûeëN-Š*Ì&Ä•é[•6g¡¥ò¼N™~ÝbEæz˜òídâèš!ƒe-…<6“Â(€Ð&4ý.Þ™©õÚ‹Ðd¹	‹˜7®’Åê_Źébä}äª#øVƒíUð:Ùu`ú˜”ÜkóÜ}Å©—'לžÏå
2ëãî„æ¤pI`0¸g¾2ÚŽwN&âXeš¼ü¢ò¨N¡ë^h›p²:»¸©P
P~ƒ÷”ÿƒ¶áT}hªbBn'ø½µ¸êºg½<[ÎöÖëR\ÿ£PÀãÜ ÌÎp ÕaÙÊpY%UQSeÕ«K‰˜:StHæ‹™²~ŸÏC½)„&y±*b—îŽ+¦½”bo9"ŸÆrù×$4tÅ=Jý¨Q¾6'™ût›,¿š@×óóóMLIèê€ìh¬y´—e=jÝgˆûÖüV¸þ\c”+¹PìóøªCb#«Î›ãé(=Yç;ëD?¸C6zÛAU4sä¯dnS†?Ð
ÌÌðHÏÁjÎÂ#ViîgÜeÕŽrŒÄ/ëÛ,ì.Û  QŒÍ6©|˜æŸ±sökûÛj|*x³zì¡‘MpÂtÕ+)%t5SÒ¶aÏè©áTëâW +ŽâBHZ´È#O‰µÔ7¤º1Oæ	ŒMõG!ýäÎ"*®VEŸ*ô%äƒ]Ì¿¹”uà[Ts‡¾Üg)¦Ï¦ ë–5-y9«÷^Ru~ž%¥Œ”'͸ÃÄx”6á¶H…ÒIñ«IÔê­e@c%ýú¬c][r„#nôQæ¶ÍÆÓA=[âFX¦ý¸í…r£9ÝÊ`ËPë5È‘PW@Ýëu6 Z9®bÏz혢“;Ú7o°*£lc˜ _–"úµ‹Où†h]¨²
£iI«Ÿ|ûgž­>ì‡Ý;’Û鯖ìB¥è…{‹>ëÖÁ‚ræ^nOÖ4\c¥ÜuZóŽ)¶?ì"¾ÚjÛ®°Ý‘¸IëçǧÜÅ0w—×Xe×F1ÜËÿQ¦¯XÈ©›¤²¸E†)n˜ó$˜~ÀØ"l¿:Ñs¬k¦N7û9Êï¢õYÄ\JÞ!- ¬	@9~ÑÛx*Љl¬øÙšï\QÜãÏ^R¿~ºŸ8C’70hE7¥㔇oIMWÇ;‡“p¡[ú‘r‡3P3ùŽ@¥÷¨ÿ)ºí½W¤™+«®Mµº9w}dÏ©äFË}ññ[á8®‹NÆ‚æ÷©ÈñFïÝânª9’+]ûà¥÷9§Œ(—Žæ¸Ð[2Xóê±Vưi/ŠF³Û|žøêøð‡°ÖA­ŸGÆ]îÇdV(ËE½7­2¼¼C¬ÿõhÇŽzˆ¨Ä-9ݯy©TKü¦Jšö•
ž°WMŽ+-aŇ!ãw/¿³N¨èœœ$5Ó{§{ê,f	Wo^̺ÎEöˆ=lM-E~$¿QÆŸ¢Ôó;çÅí…j«=ÈõA7†]ã©)£sÜRA˜OÌ!ÆÓ{ZÚj˜DïqßÇ–ö¥	”=¥ü¹=ÿÆkýë9Dµ÷'nq¯ãUq‹—*”]ªÚ¬ú„¯#²x½¬ŠÍ2†»­¶íĂԿn±ÚP(‰zV¬ègyNV37Š\ó$%ñýöÙ¤yñÛ0pþ#­ý³¬kVY¾>cÉÓø0På{—i±§P#¥];ž¾pE¿D¹ë>æò]‡Qkòß’ª7|×û~¶˜.#úýJ¡GSfâ—v(ë£l/Q†`ãòNh=¼®Xùî •Hšÿ¾ÃcmûN÷î:{zà9·Çþ?›ü{ÑïÀú¸›=íÏm¦_<¹Å;!èפŸÐR£?óM„Ò¨´»žÂûÍæÑí(Ã>¢S/eÇñ¤•ö+ã«¶Ü,öÙrD–ýᙯLKmº–ÏôµÙ믇·£ÝÜK]tI›	»a\¯ž‰¦¦#z†¢1Æç뽜,Á{¼›ÂnF‹ó¯ÊÙo‰4x¤«Á’Å.ø{çkÐ%÷¹‰hk[J¾¤Ú°2|ÉxzXcŒ Îsî;$20úz2àP.­<â¢Ñö} G›¶q¹zN¯¶M(°
3™¤’Ó½‰¢á¥¾0ûT(=Éh:/2Ñ,?Šš}“ÂNÑehÞú,TÿêËDÒ]>}ßï­BægÈ“
K®Ë¥ssc4	»Ûr;ÔO,oeÔŸ]¼9ÜPCi-©Ç¤
g+\¾ÉX&³£…êõø6^š´Ö&¤Ž4*È™°N2~bßt]°V:^{æ^~ì	ý¨çé]ãqP]ÌÉ¢í¶-íÞô$ñ9b¦YN·ãßš7W@áCe‚*^07rå⼩PÊÑê±s¡ª½8Eúxyg1ì‡öµ‹uõÆO	¾›@ÐàÕøäüHÿFzaL}áþ×­ä…¢)÷Ë-Øz
õqÎÙ”¨\ùgñøEáng<Õ«½‘¯ý4_¢k7€ÞY9
úKø“•¶í¶7•jÔR«TÐŽ£åó¼IôóдÆMÕ.#ÇŸvw›ÌJïŒ)בé|-·z˜ Cúnë뙸ÉY¨GM/qù@¿ÏzþdžÞ[ɲ4¦ª:…,RM1cÞGMS)]!Æù«Ö•ÕuŸMSÁ%:ÿUœ¦ë§¡M«.ˆ	çõg/V´2?HiQ÷¾u´Õ„_¨̶
áˆ@‡™wzC-‹Z¨þ7a¯
endstream
endobj
807 0 obj <<
/Type /FontDescriptor
/FontName /HAJUBM+CMSY10
/Flags 4
/FontBBox [-29 -960 1116 775]
/Ascent 750
/CapHeight 683
/Descent -194
/ItalicAngle -14
/StemV 40
/XHeight 431
/CharSet (/backslash)
/FontFile 806 0 R
>> endobj
382 0 obj <<
/Type /Font
/Subtype /Type1
/BaseFont /QIELJB+CMMI10
/FontDescriptor 805 0 R
/FirstChar 62
/LastChar 62
/Widths 409 0 R
>> endobj
381 0 obj <<
/Type /Font
/Subtype /Type1
/BaseFont /HAJUBM+CMSY10
/FontDescriptor 807 0 R
/FirstChar 110
/LastChar 110
/Widths 410 0 R
>> endobj
243 0 obj <<
/Type /Pages
/Count 6
/Parent 808 0 R
/Kids [206 0 R 270 0 R 274 0 R 282 0 R 287 0 R 292 0 R]
>> endobj
306 0 obj <<
/Type /Pages
/Count 6
/Parent 808 0 R
/Kids [296 0 R 308 0 R 322 0 R 326 0 R 341 0 R 352 0 R]
>> endobj
372 0 obj <<
/Type /Pages
/Count 5
/Parent 808 0 R
/Kids [369 0 R 374 0 R 385 0 R 398 0 R 406 0 R]
>> endobj
808 0 obj <<
/Type /Pages
/Count 17
/Kids [243 0 R 306 0 R 372 0 R]
>> endobj
809 0 obj <<
/Type /Outlines
/First 3 0 R
/Last 191 0 R
/Count 10
>> endobj
203 0 obj <<
/Title 204 0 R
/A 201 0 R
/Parent 191 0 R
/Prev 199 0 R
>> endobj
199 0 obj <<
/Title 200 0 R
/A 197 0 R
/Parent 191 0 R
/Prev 195 0 R
/Next 203 0 R
>> endobj
195 0 obj <<
/Title 196 0 R
/A 193 0 R
/Parent 191 0 R
/Next 199 0 R
>> endobj
191 0 obj <<
/Title 192 0 R
/A 189 0 R
/Parent 809 0 R
/Prev 171 0 R
/First 195 0 R
/Last 203 0 R
/Count -3
>> endobj
187 0 obj <<
/Title 188 0 R
/A 185 0 R
/Parent 171 0 R
/Prev 175 0 R
>> endobj
183 0 obj <<
/Title 184 0 R
/A 181 0 R
/Parent 175 0 R
/Prev 179 0 R
>> endobj
179 0 obj <<
/Title 180 0 R
/A 177 0 R
/Parent 175 0 R
/Next 183 0 R
>> endobj
175 0 obj <<
/Title 176 0 R
/A 173 0 R
/Parent 171 0 R
/Next 187 0 R
/First 179 0 R
/Last 183 0 R
/Count -2
>> endobj
171 0 obj <<
/Title 172 0 R
/A 169 0 R
/Parent 809 0 R
/Prev 159 0 R
/Next 191 0 R
/First 175 0 R
/Last 187 0 R
/Count -2
>> endobj
167 0 obj <<
/Title 168 0 R
/A 165 0 R
/Parent 159 0 R
/Prev 163 0 R
>> endobj
163 0 obj <<
/Title 164 0 R
/A 161 0 R
/Parent 159 0 R
/Next 167 0 R
>> endobj
159 0 obj <<
/Title 160 0 R
/A 157 0 R
/Parent 809 0 R
/Prev 127 0 R
/Next 171 0 R
/First 163 0 R
/Last 167 0 R
/Count -2
>> endobj
155 0 obj <<
/Title 156 0 R
/A 153 0 R
/Parent 147 0 R
/Prev 151 0 R
>> endobj
151 0 obj <<
/Title 152 0 R
/A 149 0 R
/Parent 147 0 R
/Next 155 0 R
>> endobj
147 0 obj <<
/Title 148 0 R
/A 145 0 R
/Parent 127 0 R
/Prev 131 0 R
/First 151 0 R
/Last 155 0 R
/Count -2
>> endobj
143 0 obj <<
/Title 144 0 R
/A 141 0 R
/Parent 131 0 R
/Prev 139 0 R
>> endobj
139 0 obj <<
/Title 140 0 R
/A 137 0 R
/Parent 131 0 R
/Prev 135 0 R
/Next 143 0 R
>> endobj
135 0 obj <<
/Title 136 0 R
/A 133 0 R
/Parent 131 0 R
/Next 139 0 R
>> endobj
131 0 obj <<
/Title 132 0 R
/A 129 0 R
/Parent 127 0 R
/Next 147 0 R
/First 135 0 R
/Last 143 0 R
/Count -3
>> endobj
127 0 obj <<
/Title 128 0 R
/A 125 0 R
/Parent 809 0 R
/Prev 115 0 R
/Next 159 0 R
/First 131 0 R
/Last 147 0 R
/Count -2
>> endobj
123 0 obj <<
/Title 124 0 R
/A 121 0 R
/Parent 115 0 R
/Prev 119 0 R
>> endobj
119 0 obj <<
/Title 120 0 R
/A 117 0 R
/Parent 115 0 R
/Next 123 0 R
>> endobj
115 0 obj <<
/Title 116 0 R
/A 113 0 R
/Parent 809 0 R
/Prev 87 0 R
/Next 127 0 R
/First 119 0 R
/Last 123 0 R
/Count -2
>> endobj
111 0 obj <<
/Title 112 0 R
/A 109 0 R
/Parent 103 0 R
/Prev 107 0 R
>> endobj
107 0 obj <<
/Title 108 0 R
/A 105 0 R
/Parent 103 0 R
/Next 111 0 R
>> endobj
103 0 obj <<
/Title 104 0 R
/A 101 0 R
/Parent 87 0 R
/Prev 95 0 R
/First 107 0 R
/Last 111 0 R
/Count -2
>> endobj
99 0 obj <<
/Title 100 0 R
/A 97 0 R
/Parent 95 0 R
>> endobj
95 0 obj <<
/Title 96 0 R
/A 93 0 R
/Parent 87 0 R
/Prev 91 0 R
/Next 103 0 R
/First 99 0 R
/Last 99 0 R
/Count -1
>> endobj
91 0 obj <<
/Title 92 0 R
/A 89 0 R
/Parent 87 0 R
/Next 95 0 R
>> endobj
87 0 obj <<
/Title 88 0 R
/A 85 0 R
/Parent 809 0 R
/Prev 67 0 R
/Next 115 0 R
/First 91 0 R
/Last 103 0 R
/Count -3
>> endobj
83 0 obj <<
/Title 84 0 R
/A 81 0 R
/Parent 67 0 R
/Prev 79 0 R
>> endobj
79 0 obj <<
/Title 80 0 R
/A 77 0 R
/Parent 67 0 R
/Prev 75 0 R
/Next 83 0 R
>> endobj
75 0 obj <<
/Title 76 0 R
/A 73 0 R
/Parent 67 0 R
/Prev 71 0 R
/Next 79 0 R
>> endobj
71 0 obj <<
/Title 72 0 R
/A 69 0 R
/Parent 67 0 R
/Next 75 0 R
>> endobj
67 0 obj <<
/Title 68 0 R
/A 65 0 R
/Parent 809 0 R
/Prev 63 0 R
/Next 87 0 R
/First 71 0 R
/Last 83 0 R
/Count -4
>> endobj
63 0 obj <<
/Title 64 0 R
/A 61 0 R
/Parent 809 0 R
/Prev 27 0 R
/Next 67 0 R
>> endobj
59 0 obj <<
/Title 60 0 R
/A 57 0 R
/Parent 27 0 R
/Prev 55 0 R
>> endobj
55 0 obj <<
/Title 56 0 R
/A 53 0 R
/Parent 27 0 R
/Prev 51 0 R
/Next 59 0 R
>> endobj
51 0 obj <<
/Title 52 0 R
/A 49 0 R
/Parent 27 0 R
/Prev 47 0 R
/Next 55 0 R
>> endobj
47 0 obj <<
/Title 48 0 R
/A 45 0 R
/Parent 27 0 R
/Prev 35 0 R
/Next 51 0 R
>> endobj
43 0 obj <<
/Title 44 0 R
/A 41 0 R
/Parent 35 0 R
/Prev 39 0 R
>> endobj
39 0 obj <<
/Title 40 0 R
/A 37 0 R
/Parent 35 0 R
/Next 43 0 R
>> endobj
35 0 obj <<
/Title 36 0 R
/A 33 0 R
/Parent 27 0 R
/Prev 31 0 R
/Next 47 0 R
/First 39 0 R
/Last 43 0 R
/Count -2
>> endobj
31 0 obj <<
/Title 32 0 R
/A 29 0 R
/Parent 27 0 R
/Next 35 0 R
>> endobj
27 0 obj <<
/Title 28 0 R
/A 25 0 R
/Parent 809 0 R
/Prev 3 0 R
/Next 63 0 R
/First 31 0 R
/Last 59 0 R
/Count -6
>> endobj
23 0 obj <<
/Title 24 0 R
/A 21 0 R
/Parent 3 0 R
/Prev 19 0 R
>> endobj
19 0 obj <<
/Title 20 0 R
/A 17 0 R
/Parent 3 0 R
/Prev 15 0 R
/Next 23 0 R
>> endobj
15 0 obj <<
/Title 16 0 R
/A 13 0 R
/Parent 3 0 R
/Prev 11 0 R
/Next 19 0 R
>> endobj
11 0 obj <<
/Title 12 0 R
/A 9 0 R
/Parent 3 0 R
/Prev 7 0 R
/Next 15 0 R
>> endobj
7 0 obj <<
/Title 8 0 R
/A 5 0 R
/Parent 3 0 R
/Next 11 0 R
>> endobj
3 0 obj <<
/Title 4 0 R
/A 1 0 R
/Parent 809 0 R
/Next 27 0 R
/First 7 0 R
/Last 23 0 R
/Count -5
>> endobj
810 0 obj <<
/Names [(Doc-Start) 236 0 R (Item.1) 279 0 R (Item.10) 311 0 R (Item.11) 312 0 R (Item.12) 313 0 R (Item.13) 314 0 R]
/Limits [(Doc-Start) (Item.13)]
>> endobj
811 0 obj <<
/Names [(Item.14) 315 0 R (Item.15) 316 0 R (Item.16) 317 0 R (Item.17) 318 0 R (Item.18) 319 0 R (Item.19) 320 0 R]
/Limits [(Item.14) (Item.19)]
>> endobj
812 0 obj <<
/Names [(Item.2) 280 0 R (Item.20) 329 0 R (Item.21) 330 0 R (Item.22) 331 0 R (Item.23) 332 0 R (Item.24) 333 0 R]
/Limits [(Item.2) (Item.24)]
>> endobj
813 0 obj <<
/Names [(Item.25) 335 0 R (Item.26) 336 0 R (Item.27) 337 0 R (Item.28) 338 0 R (Item.29) 339 0 R (Item.3) 299 0 R]
/Limits [(Item.25) (Item.3)]
>> endobj
814 0 obj <<
/Names [(Item.30) 344 0 R (Item.31) 345 0 R (Item.32) 346 0 R (Item.33) 347 0 R (Item.34) 348 0 R (Item.35) 349 0 R]
/Limits [(Item.30) (Item.35)]
>> endobj
815 0 obj <<
/Names [(Item.36) 350 0 R (Item.37) 355 0 R (Item.38) 356 0 R (Item.39) 357 0 R (Item.4) 300 0 R (Item.40) 358 0 R]
/Limits [(Item.36) (Item.40)]
>> endobj
816 0 obj <<
/Names [(Item.41) 359 0 R (Item.42) 360 0 R (Item.43) 361 0 R (Item.44) 362 0 R (Item.45) 363 0 R (Item.46) 364 0 R]
/Limits [(Item.41) (Item.46)]
>> endobj
817 0 obj <<
/Names [(Item.47) 365 0 R (Item.48) 366 0 R (Item.49) 367 0 R (Item.5) 301 0 R (Item.50) 377 0 R (Item.51) 378 0 R]
/Limits [(Item.47) (Item.51)]
>> endobj
818 0 obj <<
/Names [(Item.52) 380 0 R (Item.53) 383 0 R (Item.54) 388 0 R (Item.55) 389 0 R (Item.56) 390 0 R (Item.57) 391 0 R]
/Limits [(Item.52) (Item.57)]
>> endobj
819 0 obj <<
/Names [(Item.58) 392 0 R (Item.59) 393 0 R (Item.6) 302 0 R (Item.60) 394 0 R (Item.61) 395 0 R (Item.62) 396 0 R]
/Limits [(Item.58) (Item.62)]
>> endobj
820 0 obj <<
/Names [(Item.63) 401 0 R (Item.64) 402 0 R (Item.65) 403 0 R (Item.66) 404 0 R (Item.7) 303 0 R (Item.8) 304 0 R]
/Limits [(Item.63) (Item.8)]
>> endobj
821 0 obj <<
/Names [(Item.9) 305 0 R (page.1) 235 0 R (page.10) 328 0 R (page.11) 343 0 R (page.12) 354 0 R (page.13) 371 0 R]
/Limits [(Item.9) (page.13)]
>> endobj
822 0 obj <<
/Names [(page.14) 376 0 R (page.15) 387 0 R (page.16) 400 0 R (page.17) 408 0 R (page.2) 272 0 R (page.3) 276 0 R]
/Limits [(page.14) (page.3)]
>> endobj
823 0 obj <<
/Names [(page.4) 284 0 R (page.5) 289 0 R (page.6) 294 0 R (page.7) 298 0 R (page.8) 310 0 R (page.9) 324 0 R]
/Limits [(page.4) (page.9)]
>> endobj
824 0 obj <<
/Names [(section*.1) 240 0 R (section.1) 2 0 R (section.10) 190 0 R (section.2) 26 0 R (section.3) 62 0 R (section.4) 66 0 R]
/Limits [(section*.1) (section.4)]
>> endobj
825 0 obj <<
/Names [(section.5) 86 0 R (section.6) 114 0 R (section.7) 126 0 R (section.8) 158 0 R (section.9) 170 0 R (subsection.1.1) 6 0 R]
/Limits [(section.5) (subsection.1.1)]
>> endobj
826 0 obj <<
/Names [(subsection.1.2) 10 0 R (subsection.1.3) 14 0 R (subsection.1.4) 18 0 R (subsection.1.5) 22 0 R (subsection.10.1) 194 0 R (subsection.10.2) 198 0 R]
/Limits [(subsection.1.2) (subsection.10.2)]
>> endobj
827 0 obj <<
/Names [(subsection.10.3) 202 0 R (subsection.2.1) 30 0 R (subsection.2.2) 34 0 R (subsection.2.3) 46 0 R (subsection.2.4) 50 0 R (subsection.2.5) 54 0 R]
/Limits [(subsection.10.3) (subsection.2.5)]
>> endobj
828 0 obj <<
/Names [(subsection.2.6) 58 0 R (subsection.4.1) 70 0 R (subsection.4.2) 74 0 R (subsection.4.3) 78 0 R (subsection.4.4) 82 0 R (subsection.5.1) 90 0 R]
/Limits [(subsection.2.6) (subsection.5.1)]
>> endobj
829 0 obj <<
/Names [(subsection.5.2) 94 0 R (subsection.5.3) 102 0 R (subsection.6.1) 118 0 R (subsection.6.2) 122 0 R (subsection.7.1) 130 0 R (subsection.7.2) 146 0 R]
/Limits [(subsection.5.2) (subsection.7.2)]
>> endobj
830 0 obj <<
/Names [(subsection.8.1) 162 0 R (subsection.8.2) 166 0 R (subsection.9.1) 174 0 R (subsection.9.2) 186 0 R (subsubsection.2.2.1) 38 0 R (subsubsection.2.2.2) 42 0 R]
/Limits [(subsection.8.1) (subsubsection.2.2.2)]
>> endobj
831 0 obj <<
/Names [(subsubsection.5.2.1) 98 0 R (subsubsection.5.3.1) 106 0 R (subsubsection.5.3.2) 110 0 R (subsubsection.7.1.1) 134 0 R (subsubsection.7.1.2) 138 0 R (subsubsection.7.1.3) 142 0 R]
/Limits [(subsubsection.5.2.1) (subsubsection.7.1.3)]
>> endobj
832 0 obj <<
/Names [(subsubsection.7.2.1) 150 0 R (subsubsection.7.2.2) 154 0 R (subsubsection.9.1.1) 178 0 R (subsubsection.9.1.2) 182 0 R]
/Limits [(subsubsection.7.2.1) (subsubsection.9.1.2)]
>> endobj
833 0 obj <<
/Kids [810 0 R 811 0 R 812 0 R 813 0 R 814 0 R 815 0 R]
/Limits [(Doc-Start) (Item.40)]
>> endobj
834 0 obj <<
/Kids [816 0 R 817 0 R 818 0 R 819 0 R 820 0 R 821 0 R]
/Limits [(Item.41) (page.13)]
>> endobj
835 0 obj <<
/Kids [822 0 R 823 0 R 824 0 R 825 0 R 826 0 R 827 0 R]
/Limits [(page.14) (subsection.2.5)]
>> endobj
836 0 obj <<
/Kids [828 0 R 829 0 R 830 0 R 831 0 R 832 0 R]
/Limits [(subsection.2.6) (subsubsection.9.1.2)]
>> endobj
837 0 obj <<
/Kids [833 0 R 834 0 R 835 0 R 836 0 R]
/Limits [(Doc-Start) (subsubsection.9.1.2)]
>> endobj
838 0 obj <<
/Dests 837 0 R
>> endobj
839 0 obj <<
/Type /Catalog
/Pages 808 0 R
/Outlines 809 0 R
/Names 838 0 R
/PageMode/UseOutlines
/OpenAction 205 0 R
>> endobj
840 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords()
/CreationDate (D:20150215005949+02'00')
/ModDate (D:20150215005949+02'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1)
>> endobj
xref
0 841
0000000000 65535 f 
0000000015 00000 n 
0000016307 00000 n 
0000202816 00000 n 
0000000060 00000 n 
0000000090 00000 n 
0000019394 00000 n 
0000202746 00000 n 
0000000140 00000 n 
0000000165 00000 n 
0000019449 00000 n 
0000202662 00000 n 
0000000215 00000 n 
0000000246 00000 n 
0000019505 00000 n 
0000202576 00000 n 
0000000297 00000 n 
0000000331 00000 n 
0000019561 00000 n 
0000202490 00000 n 
0000000382 00000 n 
0000000413 00000 n 
0000019731 00000 n 
0000202417 00000 n 
0000000464 00000 n 
0000000493 00000 n 
0000022794 00000 n 
0000202293 00000 n 
0000000539 00000 n 
0000000579 00000 n 
0000022849 00000 n 
0000202219 00000 n 
0000000630 00000 n 
0000000677 00000 n 
0000022905 00000 n 
0000202095 00000 n 
0000000728 00000 n 
0000000761 00000 n 
0000022961 00000 n 
0000202021 00000 n 
0000000817 00000 n 
0000000866 00000 n 
0000026557 00000 n 
0000201947 00000 n 
0000000922 00000 n 
0000000961 00000 n 
0000026613 00000 n 
0000201860 00000 n 
0000001012 00000 n 
0000001069 00000 n 
0000026669 00000 n 
0000201773 00000 n 
0000001120 00000 n 
0000001151 00000 n 
0000026725 00000 n 
0000201686 00000 n 
0000001202 00000 n 
0000001228 00000 n 
0000030178 00000 n 
0000201612 00000 n 
0000001279 00000 n 
0000001309 00000 n 
0000030234 00000 n 
0000201524 00000 n 
0000001355 00000 n 
0000001384 00000 n 
0000030290 00000 n 
0000201399 00000 n 
0000001430 00000 n 
0000001475 00000 n 
0000033090 00000 n 
0000201325 00000 n 
0000001526 00000 n 
0000001555 00000 n 
0000033545 00000 n 
0000201238 00000 n 
0000001606 00000 n 
0000001639 00000 n 
0000033601 00000 n 
0000201151 00000 n 
0000001690 00000 n 
0000001723 00000 n 
0000033657 00000 n 
0000201077 00000 n 
0000001774 00000 n 
0000001808 00000 n 
0000036312 00000 n 
0000200950 00000 n 
0000001854 00000 n 
0000001888 00000 n 
0000036368 00000 n 
0000200876 00000 n 
0000001939 00000 n 
0000001980 00000 n 
0000036424 00000 n 
0000200751 00000 n 
0000002031 00000 n 
0000002065 00000 n 
0000039350 00000 n 
0000200689 00000 n 
0000002121 00000 n 
0000002151 00000 n 
0000039406 00000 n 
0000200573 00000 n 
0000002203 00000 n 
0000002269 00000 n 
0000039463 00000 n 
0000200494 00000 n 
0000002326 00000 n 
0000002359 00000 n 
0000039519 00000 n 
0000200415 00000 n 
0000002416 00000 n 
0000002449 00000 n 
0000042415 00000 n 
0000200284 00000 n 
0000002496 00000 n 
0000002531 00000 n 
0000042472 00000 n 
0000200205 00000 n 
0000002583 00000 n 
0000002620 00000 n 
0000042870 00000 n 
0000200126 00000 n 
0000002672 00000 n 
0000002702 00000 n 
0000046480 00000 n 
0000199994 00000 n 
0000002749 00000 n 
0000002785 00000 n 
0000046537 00000 n 
0000199876 00000 n 
0000002837 00000 n 
0000002867 00000 n 
0000046594 00000 n 
0000199797 00000 n 
0000002924 00000 n 
0000002962 00000 n 
0000046651 00000 n 
0000199704 00000 n 
0000003019 00000 n 
0000003075 00000 n 
0000050545 00000 n 
0000199625 00000 n 
0000003132 00000 n 
0000003171 00000 n 
0000053597 00000 n 
0000199507 00000 n 
0000003223 00000 n 
0000003255 00000 n 
0000053654 00000 n 
0000199428 00000 n 
0000003312 00000 n 
0000003349 00000 n 
0000053711 00000 n 
0000199349 00000 n 
0000003406 00000 n 
0000003439 00000 n 
0000053768 00000 n 
0000199217 00000 n 
0000003486 00000 n 
0000003518 00000 n 
0000053825 00000 n 
0000199138 00000 n 
0000003570 00000 n 
0000003611 00000 n 
0000057418 00000 n 
0000199059 00000 n 
0000003663 00000 n 
0000003694 00000 n 
0000057703 00000 n 
0000198927 00000 n 
0000003741 00000 n 
0000003776 00000 n 
0000057760 00000 n 
0000198809 00000 n 
0000003828 00000 n 
0000003864 00000 n 
0000057817 00000 n 
0000198730 00000 n 
0000003921 00000 n 
0000003970 00000 n 
0000061505 00000 n 
0000198651 00000 n 
0000004027 00000 n 
0000004074 00000 n 
0000061562 00000 n 
0000198572 00000 n 
0000004126 00000 n 
0000004163 00000 n 
0000064998 00000 n 
0000198454 00000 n 
0000004211 00000 n 
0000004240 00000 n 
0000065055 00000 n 
0000198375 00000 n 
0000004293 00000 n 
0000004341 00000 n 
0000065111 00000 n 
0000198282 00000 n 
0000004394 00000 n 
0000004441 00000 n 
0000066063 00000 n 
0000198203 00000 n 
0000004494 00000 n 
0000004534 00000 n 
0000005773 00000 n 
0000006097 00000 n 
0000006248 00000 n 
0000006404 00000 n 
0000006559 00000 n 
0000006715 00000 n 
0000006871 00000 n 
0000007027 00000 n 
0000007178 00000 n 
0000007333 00000 n 
0000007489 00000 n 
0000007651 00000 n 
0000007810 00000 n 
0000007966 00000 n 
0000008122 00000 n 
0000008278 00000 n 
0000008434 00000 n 
0000008585 00000 n 
0000008736 00000 n 
0000008892 00000 n 
0000009047 00000 n 
0000009202 00000 n 
0000009358 00000 n 
0000009509 00000 n 
0000009665 00000 n 
0000009819 00000 n 
0000012173 00000 n 
0000010146 00000 n 
0000004584 00000 n 
0000009979 00000 n 
0000010032 00000 n 
0000182091 00000 n 
0000175758 00000 n 
0000151426 00000 n 
0000010089 00000 n 
0000136926 00000 n 
0000121411 00000 n 
0000197706 00000 n 
0000012329 00000 n 
0000012491 00000 n 
0000012653 00000 n 
0000012804 00000 n 
0000012960 00000 n 
0000013116 00000 n 
0000013267 00000 n 
0000013421 00000 n 
0000013582 00000 n 
0000013744 00000 n 
0000013905 00000 n 
0000014061 00000 n 
0000014222 00000 n 
0000014384 00000 n 
0000014535 00000 n 
0000014691 00000 n 
0000014847 00000 n 
0000014997 00000 n 
0000015153 00000 n 
0000015315 00000 n 
0000015477 00000 n 
0000015632 00000 n 
0000015784 00000 n 
0000015940 00000 n 
0000016097 00000 n 
0000016362 00000 n 
0000011841 00000 n 
0000010270 00000 n 
0000016254 00000 n 
0000019787 00000 n 
0000019229 00000 n 
0000016460 00000 n 
0000019341 00000 n 
0000105104 00000 n 
0000088727 00000 n 
0000019617 00000 n 
0000019674 00000 n 
0000023017 00000 n 
0000022629 00000 n 
0000019911 00000 n 
0000022741 00000 n 
0000083487 00000 n 
0000026781 00000 n 
0000026392 00000 n 
0000023141 00000 n 
0000026504 00000 n 
0000029966 00000 n 
0000030346 00000 n 
0000029834 00000 n 
0000026905 00000 n 
0000030125 00000 n 
0000033713 00000 n 
0000032925 00000 n 
0000030470 00000 n 
0000033037 00000 n 
0000033146 00000 n 
0000033203 00000 n 
0000033260 00000 n 
0000033317 00000 n 
0000033374 00000 n 
0000033431 00000 n 
0000033488 00000 n 
0000197823 00000 n 
0000037046 00000 n 
0000036147 00000 n 
0000033824 00000 n 
0000036259 00000 n 
0000036480 00000 n 
0000036537 00000 n 
0000036594 00000 n 
0000036651 00000 n 
0000036707 00000 n 
0000036762 00000 n 
0000036819 00000 n 
0000036875 00000 n 
0000036932 00000 n 
0000036989 00000 n 
0000039576 00000 n 
0000039185 00000 n 
0000037157 00000 n 
0000039297 00000 n 
0000043153 00000 n 
0000042250 00000 n 
0000039687 00000 n 
0000042362 00000 n 
0000042529 00000 n 
0000042586 00000 n 
0000042643 00000 n 
0000042700 00000 n 
0000042756 00000 n 
0000067938 00000 n 
0000042813 00000 n 
0000042926 00000 n 
0000042982 00000 n 
0000043039 00000 n 
0000043096 00000 n 
0000046879 00000 n 
0000046087 00000 n 
0000043303 00000 n 
0000046199 00000 n 
0000046252 00000 n 
0000046309 00000 n 
0000046366 00000 n 
0000046423 00000 n 
0000046708 00000 n 
0000046765 00000 n 
0000046822 00000 n 
0000050998 00000 n 
0000050038 00000 n 
0000047003 00000 n 
0000050150 00000 n 
0000050203 00000 n 
0000050260 00000 n 
0000050317 00000 n 
0000050374 00000 n 
0000050431 00000 n 
0000050488 00000 n 
0000050600 00000 n 
0000050657 00000 n 
0000050714 00000 n 
0000050771 00000 n 
0000050828 00000 n 
0000050884 00000 n 
0000050941 00000 n 
0000053882 00000 n 
0000053432 00000 n 
0000051109 00000 n 
0000053544 00000 n 
0000197940 00000 n 
0000057874 00000 n 
0000057253 00000 n 
0000054006 00000 n 
0000057365 00000 n 
0000057475 00000 n 
0000057532 00000 n 
0000066734 00000 n 
0000057589 00000 n 
0000197561 00000 n 
0000197418 00000 n 
0000057646 00000 n 
0000061846 00000 n 
0000061055 00000 n 
0000058050 00000 n 
0000061167 00000 n 
0000061220 00000 n 
0000061277 00000 n 
0000061334 00000 n 
0000061391 00000 n 
0000061448 00000 n 
0000061619 00000 n 
0000061675 00000 n 
0000061732 00000 n 
0000061789 00000 n 
0000065168 00000 n 
0000064605 00000 n 
0000061957 00000 n 
0000064717 00000 n 
0000064770 00000 n 
0000064827 00000 n 
0000064884 00000 n 
0000064941 00000 n 
0000066120 00000 n 
0000065898 00000 n 
0000065292 00000 n 
0000066010 00000 n 
0000066218 00000 n 
0000066243 00000 n 
0000066266 00000 n 
0000066449 00000 n 
0000066982 00000 n 
0000067158 00000 n 
0000067239 00000 n 
0000067289 00000 n 
0000067607 00000 n 
0000068185 00000 n 
0000068217 00000 n 
0000068282 00000 n 
0000068331 00000 n 
0000068616 00000 n 
0000068891 00000 n 
0000069071 00000 n 
0000069288 00000 n 
0000069462 00000 n 
0000069707 00000 n 
0000069905 00000 n 
0000070082 00000 n 
0000070451 00000 n 
0000070813 00000 n 
0000071113 00000 n 
0000071469 00000 n 
0000071799 00000 n 
0000072125 00000 n 
0000072422 00000 n 
0000072773 00000 n 
0000073062 00000 n 
0000073298 00000 n 
0000073582 00000 n 
0000073963 00000 n 
0000074335 00000 n 
0000074682 00000 n 
0000074971 00000 n 
0000075313 00000 n 
0000075649 00000 n 
0000075944 00000 n 
0000076318 00000 n 
0000076674 00000 n 
0000076992 00000 n 
0000077285 00000 n 
0000077552 00000 n 
0000077870 00000 n 
0000078144 00000 n 
0000078441 00000 n 
0000078758 00000 n 
0000079068 00000 n 
0000079336 00000 n 
0000079665 00000 n 
0000079918 00000 n 
0000080265 00000 n 
0000080571 00000 n 
0000080842 00000 n 
0000081161 00000 n 
0000081424 00000 n 
0000081705 00000 n 
0000081964 00000 n 
0000082261 00000 n 
0000082547 00000 n 
0000082866 00000 n 
0000083163 00000 n 
0000083738 00000 n 
0000084146 00000 n 
0000084613 00000 n 
0000085319 00000 n 
0000085503 00000 n 
0000085669 00000 n 
0000085898 00000 n 
0000086072 00000 n 
0000086363 00000 n 
0000086627 00000 n 
0000086888 00000 n 
0000087162 00000 n 
0000087376 00000 n 
0000087585 00000 n 
0000087755 00000 n 
0000087973 00000 n 
0000088244 00000 n 
0000088458 00000 n 
0000088978 00000 n 
0000089195 00000 n 
0000089455 00000 n 
0000089681 00000 n 
0000089867 00000 n 
0000090044 00000 n 
0000090312 00000 n 
0000090684 00000 n 
0000091000 00000 n 
0000091387 00000 n 
0000091697 00000 n 
0000091951 00000 n 
0000092332 00000 n 
0000092517 00000 n 
0000092747 00000 n 
0000093106 00000 n 
0000093464 00000 n 
0000093831 00000 n 
0000094097 00000 n 
0000094429 00000 n 
0000094814 00000 n 
0000095057 00000 n 
0000095346 00000 n 
0000095659 00000 n 
0000095969 00000 n 
0000096264 00000 n 
0000096566 00000 n 
0000096873 00000 n 
0000097121 00000 n 
0000097483 00000 n 
0000097731 00000 n 
0000097943 00000 n 
0000098244 00000 n 
0000098432 00000 n 
0000098722 00000 n 
0000098965 00000 n 
0000099259 00000 n 
0000099567 00000 n 
0000099809 00000 n 
0000100113 00000 n 
0000100367 00000 n 
0000100614 00000 n 
0000100911 00000 n 
0000101268 00000 n 
0000101583 00000 n 
0000101931 00000 n 
0000102223 00000 n 
0000102430 00000 n 
0000102777 00000 n 
0000103116 00000 n 
0000103413 00000 n 
0000103747 00000 n 
0000104092 00000 n 
0000104387 00000 n 
0000104758 00000 n 
0000105355 00000 n 
0000105772 00000 n 
0000106201 00000 n 
0000106920 00000 n 
0000107103 00000 n 
0000107354 00000 n 
0000107621 00000 n 
0000107958 00000 n 
0000108247 00000 n 
0000108591 00000 n 
0000108868 00000 n 
0000109108 00000 n 
0000109451 00000 n 
0000109654 00000 n 
0000109836 00000 n 
0000110055 00000 n 
0000110389 00000 n 
0000110731 00000 n 
0000110977 00000 n 
0000111291 00000 n 
0000111635 00000 n 
0000111868 00000 n 
0000112145 00000 n 
0000112425 00000 n 
0000112697 00000 n 
0000112962 00000 n 
0000113239 00000 n 
0000113511 00000 n 
0000113747 00000 n 
0000114092 00000 n 
0000114330 00000 n 
0000114533 00000 n 
0000114812 00000 n 
0000114998 00000 n 
0000115267 00000 n 
0000115499 00000 n 
0000115756 00000 n 
0000116029 00000 n 
0000116254 00000 n 
0000116522 00000 n 
0000116753 00000 n 
0000116983 00000 n 
0000117263 00000 n 
0000117580 00000 n 
0000117875 00000 n 
0000118201 00000 n 
0000118482 00000 n 
0000118751 00000 n 
0000118954 00000 n 
0000119266 00000 n 
0000119584 00000 n 
0000119853 00000 n 
0000120163 00000 n 
0000120479 00000 n 
0000120760 00000 n 
0000121093 00000 n 
0000121661 00000 n 
0000122079 00000 n 
0000122513 00000 n 
0000123246 00000 n 
0000123594 00000 n 
0000124013 00000 n 
0000124352 00000 n 
0000124625 00000 n 
0000125055 00000 n 
0000125259 00000 n 
0000125445 00000 n 
0000125683 00000 n 
0000126075 00000 n 
0000126365 00000 n 
0000126792 00000 n 
0000127049 00000 n 
0000127363 00000 n 
0000127714 00000 n 
0000128038 00000 n 
0000128372 00000 n 
0000128697 00000 n 
0000128953 00000 n 
0000129358 00000 n 
0000129625 00000 n 
0000129844 00000 n 
0000130168 00000 n 
0000130356 00000 n 
0000130669 00000 n 
0000130934 00000 n 
0000131246 00000 n 
0000131582 00000 n 
0000131832 00000 n 
0000132172 00000 n 
0000132439 00000 n 
0000132707 00000 n 
0000133040 00000 n 
0000133430 00000 n 
0000133740 00000 n 
0000133958 00000 n 
0000134340 00000 n 
0000134726 00000 n 
0000135032 00000 n 
0000135398 00000 n 
0000135793 00000 n 
0000136113 00000 n 
0000136533 00000 n 
0000137177 00000 n 
0000137517 00000 n 
0000137894 00000 n 
0000138494 00000 n 
0000138767 00000 n 
0000139035 00000 n 
0000139264 00000 n 
0000139516 00000 n 
0000139713 00000 n 
0000139893 00000 n 
0000140131 00000 n 
0000140322 00000 n 
0000140506 00000 n 
0000140704 00000 n 
0000140953 00000 n 
0000141285 00000 n 
0000141605 00000 n 
0000141870 00000 n 
0000142169 00000 n 
0000142397 00000 n 
0000142705 00000 n 
0000142956 00000 n 
0000143273 00000 n 
0000143478 00000 n 
0000143750 00000 n 
0000144018 00000 n 
0000144281 00000 n 
0000144555 00000 n 
0000144837 00000 n 
0000145072 00000 n 
0000145406 00000 n 
0000145648 00000 n 
0000145861 00000 n 
0000146140 00000 n 
0000146336 00000 n 
0000146588 00000 n 
0000146824 00000 n 
0000147088 00000 n 
0000147369 00000 n 
0000147661 00000 n 
0000147900 00000 n 
0000148166 00000 n 
0000148402 00000 n 
0000148631 00000 n 
0000148898 00000 n 
0000149153 00000 n 
0000149436 00000 n 
0000149754 00000 n 
0000150038 00000 n 
0000150260 00000 n 
0000150563 00000 n 
0000150870 00000 n 
0000151132 00000 n 
0000151677 00000 n 
0000152073 00000 n 
0000152521 00000 n 
0000153215 00000 n 
0000153542 00000 n 
0000153812 00000 n 
0000154081 00000 n 
0000154265 00000 n 
0000154476 00000 n 
0000154721 00000 n 
0000154933 00000 n 
0000155108 00000 n 
0000155342 00000 n 
0000155524 00000 n 
0000155745 00000 n 
0000155933 00000 n 
0000156108 00000 n 
0000156311 00000 n 
0000156655 00000 n 
0000156908 00000 n 
0000157164 00000 n 
0000157398 00000 n 
0000157687 00000 n 
0000158098 00000 n 
0000158364 00000 n 
0000158680 00000 n 
0000158970 00000 n 
0000159311 00000 n 
0000159586 00000 n 
0000159848 00000 n 
0000160095 00000 n 
0000160430 00000 n 
0000160636 00000 n 
0000160823 00000 n 
0000161069 00000 n 
0000161393 00000 n 
0000161614 00000 n 
0000161939 00000 n 
0000162263 00000 n 
0000162583 00000 n 
0000162831 00000 n 
0000163221 00000 n 
0000163523 00000 n 
0000163860 00000 n 
0000164091 00000 n 
0000164363 00000 n 
0000164684 00000 n 
0000165072 00000 n 
0000165432 00000 n 
0000165744 00000 n 
0000166057 00000 n 
0000166342 00000 n 
0000166621 00000 n 
0000166884 00000 n 
0000167163 00000 n 
0000167433 00000 n 
0000167655 00000 n 
0000167973 00000 n 
0000168209 00000 n 
0000168412 00000 n 
0000168643 00000 n 
0000168920 00000 n 
0000169109 00000 n 
0000169367 00000 n 
0000169595 00000 n 
0000169864 00000 n 
0000170141 00000 n 
0000170424 00000 n 
0000170645 00000 n 
0000170921 00000 n 
0000171153 00000 n 
0000171387 00000 n 
0000171651 00000 n 
0000171965 00000 n 
0000172256 00000 n 
0000172556 00000 n 
0000172820 00000 n 
0000173089 00000 n 
0000173291 00000 n 
0000173600 00000 n 
0000173916 00000 n 
0000174185 00000 n 
0000174492 00000 n 
0000174816 00000 n 
0000175094 00000 n 
0000175440 00000 n 
0000176009 00000 n 
0000176757 00000 n 
0000177312 00000 n 
0000178438 00000 n 
0000178894 00000 n 
0000179086 00000 n 
0000179455 00000 n 
0000179816 00000 n 
0000180204 00000 n 
0000180383 00000 n 
0000180559 00000 n 
0000180945 00000 n 
0000181200 00000 n 
0000181571 00000 n 
0000181824 00000 n 
0000182342 00000 n 
0000182506 00000 n 
0000182741 00000 n 
0000182928 00000 n 
0000189950 00000 n 
0000190178 00000 n 
0000197188 00000 n 
0000198049 00000 n 
0000198127 00000 n 
0000202924 00000 n 
0000203097 00000 n 
0000203267 00000 n 
0000203435 00000 n 
0000203603 00000 n 
0000203773 00000 n 
0000203942 00000 n 
0000204112 00000 n 
0000204281 00000 n 
0000204451 00000 n 
0000204620 00000 n 
0000204787 00000 n 
0000204954 00000 n 
0000205121 00000 n 
0000205283 00000 n 
0000205467 00000 n 
0000205660 00000 n 
0000205885 00000 n 
0000206108 00000 n 
0000206328 00000 n 
0000206553 00000 n 
0000206792 00000 n 
0000207057 00000 n 
0000207263 00000 n 
0000207374 00000 n 
0000207483 00000 n 
0000207599 00000 n 
0000207719 00000 n 
0000207826 00000 n 
0000207864 00000 n 
0000207992 00000 n 
trailer
<< /Size 841
/Root 839 0 R
/Info 840 0 R
/ID [<92B2094C7840B4AADA7A5EA760E1666C> <92B2094C7840B4AADA7A5EA760E1666C>] >>
startxref
208318
%%EOF
grace-5.1.25/doc/mygraph.png0000644000076500001440000002502106764602123015362 0ustar  fnevgenyusers‰PNG


IHDRT^í×áPLTE


!"&;$$$+++#'-(,2-29333;;;06<ZU5;C,,gA{g3{3YZwm@Tŧ5™Ž¬˜¤š%ÈÄÀ°uµCQ€„± µ”ò@r$Ð,Ž€DH|mw€øC„{ïN”¨ûZ<â}ï}qwïî}|ï=á–,q5`”ˆÈQQÒ¶ˆ¥°,E`+&h…Ùe•jf²ù5Wp¼D‘E¨±õÜZ&•Ng"¥µ‘ÔF.c?FËkÑù¹L&_´´&’Y[Ëä?FÉLùíe%Ó±X:É~Hæs¶¡R„ö´öåaËèp6+–Ob:S"A%cq*š,Ï×cÉÑá4#é5Ez©Yn6¥b‘¸ËlÊt…X”Y$äQ>XQaM$¢	'b‰°†HP$Q5·|	Ó(Öçüi’-ÞêR…”jHø2þ¦ï®øÊò;ÒŠ¬F|›¾¦7È2>`2ÿ2ugÃ×ä3
ÑkW2˜uõÎ\œÜ¥c–\ÉÛ DÜ'Àm¯LÔDÌú¡Ö¨ÁÆTí¦,[>»{ ¿i©ëFKW»y¥¯îÊ*Œõ¦ªmø
`Xb­Þ )ýA©2¿L˜nUÕv1Ѥ—G›T£ñÝ;liÅ€›”
k<áoÆÚ‰
¨:C®[§Óé[ÛÕ¹ü­vwÃȘ ܼyÇØÚùjÅ–SkÝÙæPsÙjÎîÞaK«¤¿)jµ*»ý-·A›ªüô'W“0—#Hr)wg.S¸­d²Qbæ–C±H4¼ˆû©B~&×7ˆÐ*9—M¡D>7º	{:âé4¡èµôj.ZZóoq{P8˜€q™
`6^q£º¬¥ÏüPŒ"#Û
 2`8­?­½œ‰QÝV`[G…|[˜ è’,æê5z½Æh¶¬Ó	¦³6J¯”i{O8Í(I	BeØmCúoÍÎÎVµ×#tÖì-?U}=dó«rgSK«?/\Q,ͺ‡…¥}E%èR&JU(ÊäeTµòùÑš¹;²÷º%F$É$“ÔØ$#¤,#À-L-KLa˜X^»266v¥(ú›+~Èç–•à'ôš¬ÆÀÌ®nläVWX­®åVWstŠY°òÙ¹í<…^óQUŽ˜3©èúí92“]M†—ÂDt.‘݉-Qþ¥åå%ú¶Æ*öÝI§cô§Hv-ÛÈ.¯®¯déÿ‰8›ËæSD|5·–Í­géßÙ8]ŠŠ§—ý¾plׯ»!Ò7fÖêeëÚ0Èf21³v`+áÌpëÊJëp&Ì„žéΕâÚ¬.Lä†YÐb–œVg´hÁæL>ÉŒj
š9L7JœÆ,	-6œ›Õ%¯íáNjMQs4ThV’ðMSÛPۚɔN›:LíD8šR¾òŠ2¥²ëkv«¡’dΤlêiµ€¡'¯…B£‚bri¦t> û\c«Fyµ¹G=úSê¶„ º>†P»Ôp`¨GAÌlÊ$`7ð3‘“œ¥µÕ’#ÃF£al™	X%@(™5·§”æ6CÛ˜Va†[Êa¸B‰p˜ÎO·PËËJ„ZeꊾÝÒfh…)j÷c	낳-4Ô%¸]³´›ÚÖדDt]©\’¡žîŽá8C&B)ˆµ¶¶á¦ÌX”Ù“›Ž­«•Cà
„ÃÊ­åÖ¶ÕlȧԴƒ8ù¸BÝò5cCM¦vöôÏRŠa¨2HöôÐŽ¥|>ß(CÆa,˜iêP‡Zhˆm…9—¼M;UX&üô7iB´}ÕÀꇛzzB€Ñ®,¡®d|ØiK–¾QmÒPZrãrG+A†ÓÃÃi&*˜HRì5•ÐDBêP:jðëuÓ„’Z2J†5ËÃ
º¿›‰êZ¿†\³h
>=f¡ôºáUBC<ž×Ô*ázj}3“Ìf“™ÕL2—Œ¦)*–ÍÆ
\j¯®¬Æãk™h|mucs=·2ñÕEeV³’.MÅײëÙµLrnåV7a.»±µFÛÊ«
-$w«g¾J0'-åß¡@ *#äŸñUçq—®X雡k?N
ÜšW¯ŽÖ×+/Ó=Í«W¯2NþºB×Dªø¨êʕ˳`tö»7¹õÝ™Ùaý€Aé/ƒ[0“J¥k+•^ywÖ2
7e5&Ñ}¢,˜¡ï9SÙ¹kæËÜ«eUi%Bߪ6i¨›v;Ž;¦§¦whÊýüWfe¨<”
abƒ†ºå°Ž¿f÷XkÈ}þOe¨|”Z*B
Ý׿dÞãõx½Vnû+Ïó2T^Ú†úîBçÑ·Îìw=ûÑÁÁ#¬.xd¨H*‡Ú¹è sðÔ…'Ÿ:Ö×w´3ø*Š* ¾5Ù<Ùä¹{äTóÄþÎNÅ„[v*’JPçŸ:lÛwÌl6Ð	ðÎãÇ,LËP‘TºQy|Îíìò^8~ö«—FF—T«•§¶¡B§gaÞ{ÃåuáÞ… {÷Ǭì2Tž*B]…6Nár;•ŸŠPæ;q¢—C'ýç[2T*B]ù«;K\"Bq¹ïÏGE¨éÈ‹Jf’d¬5¾€Ø#Úl¸xùXª)«uj{,•5?4çXªLÒBïB³BŽÖšYˆHD‰ÚsÑÇšz•PÖðÞP4¬P(øØ¤l,•ÍŠÛóÁ¾|”ªúãw÷÷+60^ÔÕ|êz¨]c¬ýÔ±QÓ>Äñ@2w%”5ü740¤Ó_kA
§íÁKV7îÌ÷ý§¬ßùΔãÛ.'ïÆG€Óœÿ_‡Ò\õÒCœ_É]	e
†Ð4¡œþt7uLÜpØÜlßÚ\XÄó1+PG—‡ë^ÖK\UÃÎoå®d󯃰!ä•ë{9ùxªÝÚwüd88eçu5ÉÞñ†²\Ö8«Ö9VîJÜPEÞ÷ÕPÙPÊɃ ïäñ>Õ1‘G<‚£ô¨¸•[uŽõQÛPÙ5ÕMŸí‹ÁìéoÇmŽ`p©ïr¬KFþuêœä"oê”Õõmûs¿Ïߨœ¸Ëz)ˆOEZçÜ·R%D¨»“–ÃÛÙ(•NãçwMEÙ…GBHPKOüÙQªRJ†Šµâ‰?ÁQ*jXü(•5,þX*jXü±T2Ôp1J5mw8¦KQªiÜeG|âO†Z¥š°:ŠQ*›Õ39|m,•µØ£²:m /øb”ʃ²ñÿP*n}VGêôaºë	m0…uªÛz§ŠNuÜèVÙ©y¡öýíÖ	ÐwÃ^„:µØ\AjÞ»ðH*ÎTOoGþú€·ËPY!BµNÁAÜU¼¦~'ØlNj^ÈQ*|aÄêu£TN—sÒ㔣Ty¡G©˜?§Ú¬×‹OüÙó©%*,CE‚úî\ïɲêïï'~ZžŠ$¨Ï)”d¨,ÔˆoÖ·-¿¿<õ?çæcÃ2ÔÆU€zs†™Š¿¨—ËtêÊ5?¨ÆÏ}~èeŒð(\€zk‹c>zFÙ5ø&¿Ó_¯5\ã¹×³®é†Ú<Ê—îþu§¤ÿü Ü"÷’WÓUM”GùòПÝaÏÏAoe'¦wàÌõHSÒPÅ ˜hºtžqª
LÊPB„jëýxÿıýž.ŸôØzm´)ée¨ÅkªÇåty=óóA·ÇsÃtÓ)—mJzjÕ51¦¤—¡î &xJzêŽj;Ä{JzjõµJ.¯È‘¡Ôvheî
*ÂÔùw%Y­ùg(§N&ÇÊ?J%C­¥¢åq¼æðÈQ*V"E©pïÈ£F¼rŠ‘XQªà¾³÷Îîs9ä-Jup
8ƒNºû/C…âE©&š''Í)C…âE©îÝÿÚþ£Áiùš
Å‹RyñóÇÏã8Ï(Õ5?ß]x$$Z”ê†wÞ{ÃÉ/J•jµÐË¿FÙñ‡Y»¥ÊúuLAã÷ùïö»ÿ΃ʱ¢Tæ˜ÖDÿÒ}àsO?ýô¿{‘~÷·ÕÜ*¯â×N³³« ŒP'Jµn4µvÑ¿~ÿK´þãyèË¿úËoó:XdýËoð*žá0Ú•ò(U囘Œ/óxq¢‘)ø[üù¼ý+ÿþ¼+¡èGF©…6B¥<³ò9J¸ò—ÙÆ¡®3c²îþÿú·_üðy×BÐÇÿ¥b”ÊáÀq§Ã1=³sÒç“öéiúæÿ'?“<žú>òå¿ñ/øÖBšQQ›T¯ýµñëVŽO¼Þûýæ“6«Ëeµ?ñ]É¡~ü¿}ùEø‘ñ­Æ_hFE…:Ùÿì±';ŸZo?ɼ:N¶œ=àñìyá+’C¥ýóÅá7>γ!ùé”ùà¡ço¼÷üáçÜìJtòüÝ}##Š…Aé¡Òþ¡¡ÂKnUD£"‡þŽ*Ï@õvž=Ûy/¦’j™Ê J`UF4–êÔW=wpqê­ ¯¸Ø0•dPËüSU«
4ª±Tg÷)˜kêÛgг÷Ø0•TPËýSUt«
5ª±T®ãÇñà१žœŸÜù–÷ÐÙ»ŒS<§Ád¿{pÐ}B¨;ü³ªHVŨèP§Àལ
{úÿø:xöàiàyæ©y	 îôÏN¨¢XU£¢C=âœ\¼¬AOê×'Ý8X<Þ)ÔþÙ	U«ŠcTT¨óGžZÄqÅIÛk,Túšjó¸là¹ýR@­áŸPE°ªHFE½Q1æìì*õz¯Í>å¹pòÌ%	®©5üSªVɨÈñT·wºæ™Uù&3+îzí¢ßýkù§TÁV˨Ÿø«ŠRY¯÷ŠÝN­åŸZP[U,£
KU¥êí‰Û£ªéŸšPZU4£Š1–ª:J%r@¥¦jBhUÑŒ*A”*.îµÚþ©
UUÅ3êÃ¥ªíŸÚPYU<£
ŠR1Q)«»0–ÊátJ¥âðTVѨB¢Tîülél;ÕƒO°iûuq£Tþá€*Àª"UP”ê‚×ãÅó=*׈BÙôü‚Óéuðn§Öûƒ.—¸ "[UL£
‹RÝ»p|r!ßøßwf~|°ßåê<Ù¸S³ìó×/ÕÙ.ÿ|ñ?p¼£žUë¼FƒÛ¨õ*qIH”jäÒÁ3‚l}îï
}æÜ9Ž
Õ“ (Õ3}÷€£Õ¶èõö¸àmüôÏÀ¿z	ž;÷þOžûG	ÿЇJk³æºpLɰÉÖAÚÐÏ8*q
m„
¥rxžßvªç¨âì‘gï8äÓ÷t¼ôMê¯ê“Kÿ¯Öÿ¹.t졞ûã?¬5Èüê—kMò‡œ¯Tûëoè›
#Ó}ä£TV»—¾¦Î篩øsGNÜ{æø]ŸU@ù›4Ô¿ÿkïét­A*\ºü±þ|í9kþÙïÖÌþùzPëoˆËÞ5$`bš|”ÊáÀ=Aw>Je½\˜Ž4{yüŠˆf_úÖ¹s¿ö©sŸ®¹žóŽüiöXÿ{ÍuïrLYñ=¶Ò†¾Å±–SH#T8¢T¯OŒãvQª›æ›	øÌ5µönsÞ‘¿Åêop}íGjή²õëtOýW17Ä)Q£TìGˆR}ïüfí;A¦ãú7?ÃmŸÚ
€þÞúG¼*â†8%8JE„"UQªŸò¨¼ô“ÚùÈ}œZmUàÅÏÓ‹«"nˆKhQ*òL&–Èd-’ Hª$R¤÷¦¢÷qjX•a
^ü,¨EUÔÎ+$¨kéÛs·säœZ‰„‰X6!Ê$TþÙaU–iꪢ
*47éÀ¨N©W^^Ïd‰!KZ|¨BüSmÕ<Ó"Ô*ªâªºeãò‡”9“ùVK÷VXt¨‚üSiÕÓm¨•TÅ7*ÔÖ¢…X7Œ˜Ù±(:Taþ©°j‘i	j9U	ŒŠ5GÂ
…AÓý€€›°»[|¨ýSfÕm¦eP˨J`TÄÓSX”c˜*¤TC“	vtˆU¨JV-1-‡ºMU
£¢AÝôcj3Åt¦Ä
uxXô•`ÿ­ZÆ´j‘ªFEý%s›Ùhj#—’™L4#z“J¸
V-gZ	5OU£"6þôvQC"@Á?¬U+˜VAe©JbTT¨D2Ét¥HöA„Å…*†«V2­†JS•ƨˆP“¹;s™X(bþ%‰Äz–ª(þùØ~Ô‡
þâüfœnTHP×êe{7éö¿ºn†0ó)Tqüó_>îõoIcTÔnªr)}y¨u³•þg5·µ™Wă*Î…î~ñ=÷ƒúOß÷bli‡Ð v©a,7Æ› nj‚XW©©*ª8FUŸ«¶j5Ô÷üRÍH p!6þ» Œe:TF£J•«@T¨¢•¹GýÒ{êCýÐû€4T‘ nùšÕC­Ôe
Qh÷ôŨì}ÿ}ª•1ª4TÑ"ÿ¦6­Eu¥£VLÃ11oTbµÐ–ª²jTÖ¨’PEkR™Í,•LÇbé$Ý§Š¯‰×¤èÅöi•U+¡Œ*U4¨Ká:Jð„Z9‡ŠF-µù+­Z	µhT	¨"P©ˆŸT)å;+eÅ*"µ¬UiÕ
¨%£ŠLuqßð[1‡Šp£VôM+¬ZµÌ¨âREC¥ø¼ÿô3eþ
¿!¼á·|áF­ìïWXµj…Qž PaGR¿öuæý¾““—µ\ÂÞð+بU1”
«–C­4ªÈT‘GR+žíwzðÅ“§¾z)8]fUA3¨	6j5Ó
«–A­6ª¸T‘ǧö½½8øBðÔÙþí¯âbAjÔL+¬Zu‡QE¥*`$õ©3‡Î~¦÷øa·C$¨BZƒi¹UKPkULªè#©ñ‰{ÀÛÛßtQ¬Ó_ Qk1-·j	j-£ŠHõyÿ§;&Ÿ;xöð‘¾þƒ_wŠU Qk3-³ê6ÔÚF*êóþƒG?xêì¥`ÿùKöþñ2¨BÞE-̨Lˬº
•è¢QE}ËgywŠ›þñxÝNǶx½á·r„•“iɪE¨œF‹ªàçý¼á·j•›iɪE¨ÜF‰ªïNA~Ãoå.2j=¦ÛV-@­gTq¨¢ÅSÿ7÷~	ÔY)…µ.Óm« Ö5ª(Tã©T¡=ï/Ĩ÷aZ´jê}Œ*UÔÁu„¤`Ôû1-Z5õ~FêÃU€QïÏ´`Uêý*œêÃݨ
0-X•…Ú€QS}H ¢µ!¦y«2P2ªPª	Td£6Æ4oUjcFHõညlÔF™²V¥¡6jTaT¨lÔ†™²V¥¡6lTAT¨?ù1¢Qy0e¬úâgyUÕ‡êÀß|ͨ|˜2V}ñ³|Œ*€ê®B½|:D/ÿè}eÏy2¥­úâçyênBñ«è_ô1¤ñÌ<™ÒVý?àgTZ/£ìÙ®B]…q5ýë£ÿeÇy3?÷+¿È»häU9;„ôwÑ®©½ø'wÈ`¨9‡Jñg
À/ÿ^íYWêè_ø
>»%`± †nÃ5úôŸ]4Ÿ}Gb
þÎçÿígÖçžþÀÓŸÿâŸÿÇTm0ÛX×Te»*Óø›ÓʄĔ§šÿ±ímÿœÔ¼ÐFý‰5—ÈÐLù]ÖYIÏ´Y÷Ýü¦¸&¬«‡ ÊªÔL·‰ÂǪ´LˉÂǪ”L«ˆÂǪtLw…	T©˜Ö$
¨Ò0å"
¨R0­C>PÅgZŸ(| ŠÍô¾DáÞ‡*.ÓFˆÂ=UL¦
…{ªxL'
÷8T±˜ò"
÷6Tq˜ò%
÷4T1˜"…{ªp¦hDá†*”)2Q¸w¡
c*„(ܳP…0HîU¨èL……{**SQˆÂGj½?Q£1‹(D„º›¢.îBùÄ4•Ba*"Qˆubq¡VLLS!þLÅ%
Q ¢NL#.T£X>(D<ýww€+®Ë:?¦R…îŠcø0•ˆ(ÜkPg*Q¸Ç 6ÊTR¢poAmŒ©ÔDáž‚ÚÓ@î%¨÷gú`ˆÂ=õ~LQ¸w Ögú ‰Â=µÓLî¨ÜL[(ßO}éi©7$6Ô\ŽYe‹L«‰rŸ¯u rWâ>Vî:u rWªû”*‰
uˆF3`0žj¯íQîóµTîJÜP¹ëÔ=ŒIDATÊU‰>"Ãg­ªE7Ð6››šõ³µvsìJ”ûšÊ]ÉÈ9Æ»Nk*W%ôM`“³Zµ$€JïÂPêŠe®'¢êÅV«ÚÙdíW^%gµ«µ×Ô©„²æíßÿÀO(^•¢aEÓÅ'AÃLŇªc ªÌj“ÑPCFýÀ@­|ƒa`@_³FÝJ(k~k@ÇsCCº#ØE¨&Œ9ýŸ]xÄÑîþ£¦4õFþÎ4ÿÉl $W*ñ×€ÑdâqDÒ´SÕ|÷B¢â]iv¨ÍÇSݯð¯3:j¼°4PÛ2|wú`¦o,4ð‡êëå]ç26Ê£¡*
ÔvþP!œ1ñ¯ci½Ã·Ê4ò:V£m*S—I•k(e=}
¡Ä´<+¬«‡Z»6Ô£o¼¬$P7[y\€Š;b0'yÖÙœƒ£¼]É©ù_¼ésb·oTac­ÎT}Íj5Æ-žur¦«ü7á«s|kdµ¯wýFµçÍæx”–¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J ª’¡J tƒP‡‡ë—U®pãPe5(+
u…¤ê(uÍ2œÚí]}ÄDC¥üõ^¥¢²Em‚«WGëjÌòF.#‹‡R	0:ûÝ›õ4sõÚÕ—e5®¯]yÜ‚™”,µš3©%þ—â%„:‹HßÓ¤Jf“•í¨|F$“‰lgŨÒ2’ÚȭП’édU)¦n’^e?F	*‘`¾‰þEQÉüF¨ó/¿š-+üì’…¯‹ÒbT,¯T½‘‡YÔ5À,ŠE²LÑѵ2lYÏ—#—³sd† Ø%A¤G1½>”L„°E¬Z,«4’©JdöŽZY½C³H®ÜÉøg}þ$•!|³á¸?¥¢‘Tìö:5—¥˜ÕñlÀ‡ùŸXœÞnX³´:<¼BÅ¢qÿ–y8C&4á³gë–áô®’â¡ÕB­ŽÓë“3 ×ÓÝðI¬'Њ…!‚ÝšÖö¶+À„éUŠWŸ UX{Τ|¤ ®e k6‚@óJÎГ¥Q„Ù„Þ ^áL4š‰C'Ì.£Qˆ)Œc	0G‚ðJVyÑÔP­1ô¬3¿¦¼“€HEÓ1@lø[noñÕQååVU³.cª¨¢CéõôêµWZÍ£
C‹¹E¥X‹GS `^ß“D3Äô-l
}Ë\Ó¦†»Ý¨oTqÿ£B¾'fZ,ͳ Ö£ÅzbÀGúšf˜„–I,ݾ}‡ð²§k]¦oßNÓ®Mú@à6ðE|@£3O…ªI30®Ð™tµ%z™Vwd!¿aSµ,uw¥âfµ(0’^O¯¾sÙt³Åb¾ùdGO¸Xc­‹ÙlÓ,óÚò‰Ùæk·ýôÎ0Û}4šzF°úÇ Õé´µ^§/KhéÕ­VŸ_Ò)f©WëõSÔhÔ–Jë1l€ùB¦½ÔcLyM—^«ÓhèÏ£QC/™¯¥¿.ŒÑ?Zf`»ûEÛÛg>lo÷Q‘`]]]ÝÌÝìóq;#ŸèÊgÐÙ,&•/Óµý«TºP Pi;™ÿö|nñkÙœîâO©›ê.}(ný‘ÌMŒÌ¦´×™G/‹¡a@äÖh­ç,0·ºV_{¿Ùt±¶Xê…O…4GIZFðÆÕ¯Ñzu¬{ãÚË_«¯Ý)tån]ust«C$½ùæ´Þ3·Þ¸v§ÐÍ;!.ݹ)êæ|
NLª‹Xû¡‡-Ó¢m¯ÃôÿàG7{5Eé´IEND®B`‚grace-5.1.25/doc/Tutorial.html0000644000076500001440000013326312467751544015717 0ustar  fnevgenyusers


 
 Grace Tutorials


Grace Tutorials

Edward Vigmond evigmon@tulane.edu

for Grace-5.1.4

1. Introduction

2. Making a Simple Graph

3. Block Data

4. Creating sets within Grace

5. Batch plotting

6. Fitting curves

7. Transformations

8. Using Pipes

9. Multiple Graphs

10. Hot Links


1. Introduction

These tutorials assumes that you are a new user to Grace but are somewhat familiar with a windowing system. They are designed to show you some of the basic operation of Grace as well as a few of its less intuitive features. Please feel free to go beyond the bounds of the actions described herein and explore the possibilities of using Grace. After all, you will be the one who benefits.

1.1 Purpose

The purpose of these tutorials are to give brief examples to show you the basics of how to do something. Essentials and some of the more esoteric features of Grace will be demonstrated to give the user an idea of the capabilities of this program. It is not possible to show everything that Grace is capable of doing. That knowledge only comes with use and experimentation. I recommend that you do the tutorial and then by playing around with things, you will begin to understand them. Finally, when you get stuck, read the user guide to help you.

1.2 Nomenclature

In referring to what item to select, the tutorial will use something of the form snaf:/foo/bar/bell which means that on the snaf popup, select from the foo menu the submenu bar and from the bar menu, the entry bell. The popup main is the large one with the graph that pops up when you run xmgrace. If there is a space in the menu item, it will be replaced by an underscore. So , if the menu item was actually "Bell jar" instead of bell in the last example, it would be snaf:/foo/bar/Bell_jar.

Things that are to be typed in will be presented in a typewriter font, eg, type y = 3*sin(x).

Some of examples require you to input a data file or graph. In such instances, there should be a file in the tutorial directory named data.N or N.agr where N is the tutorial number. For example, when doing tutorial 7.1.3, you should look for a file 7.1.3.agr. It is assumed that each major tutorial section starts with a clean graph.

1.3 Computer System

Some of the following examples require that system commands be run. The commands may be different on your machine or require a slightly different syntax. In this tutorial, an attempt will be made to use the most commonly available UNIX commands. This tutorial was prepared on a Linux machine with kernel 2.0.32.

1.4 Generalities

A couple of points should be made about the GUI before we begin to make life easier.

  1. It is often possible to select more than one item from a list at a time (some lists may prevent it when it makes no sense.). Clicking on a list entry without any keyboard modifier pressed will deselect all other entries and select only that one. Depressing shift while clicking an entry selects all entries from a previously selected entry to the currently selected one. Finally, depressing control allows one to individually toggle the selection of an entry.
  2. There are often two buttons on a pop up: Apply and Accept. Changes are not registered until either of these buttons is pressed. The difference between them is that Accept also closes the window.

1.5 Disclaimer

Even though I do my best to keep this up to date with the latest release, I cannot guarantee it. Think of this a perpetual work in progress. Therefore, if something is wrong, you can notify me and I'll fix it but keep in mind that I am doing it in my spare time for no money.

2. Making a Simple Graph

The object of this tutorial is to do the most basic function of Grace: read in some data into a graph and then label the graph. Along the way, a few of the basic Grace commands and widgets will be introduced.

2.1 Reading the data from a file

Start by bringing up the set reading widget Main:Data/Import/ASCII. Select the file 2.1.dat (both double clicking and hitting return work). You should see a black curve drawn on a graph.

Now we would like to add some more sets to the graph, but this time the data file will be in a slightly different format. Looking at the file "2.1.dat" (with the program of your choice), you can see that its several columns of numbers. One way to interpret this file is the first column gives the x-values and the rest of the columns are y-values. From Grace, again open the "Read Sets" widget. This time, check the "NXY" button. Now select the file "2.1.dat". At this point you will have several differently coloured curves.

You should now have 2 copies of the first set since you've read the file twice. It would be nice to eliminate one copy. This is most easily accomplished by bringing up a popup which lists all the sets. Selecting Main:Edit/Data_sets...bring up the Data set props popup. It lists all the sets and for the selected set, its type and a few statistics. To eliminate a set, select it and then press the right mouse button. A menu should appear from which you can select kill. You'll note that there is a kill and kill data. The former totally eliminates everything associated with a set while the latter eliminates the data but keeps the settings for it so that if new data is read into the set, it will have the same properties like colouring and line width, etc. Kill set 0 for now.

2.2 Set appearance

We would now like style the sets. Practically all aspects of the curves are configurable including colour, line thickness, symbols, drop lines, fills, etc. These operations are available under the "Set appearance" widget which is invoked by selecting Main:Plot/Set appearance... or by double clicking near the target set within the graph frame.

When the widget comes up, there will be a list of the sets with their number (eg. G0.S1 refers to set 1 in graph 0). Later operations will require you to know the number. Like the data sets pop up, clicking on mouse button 3 in the set list will bring up the menu of set operations.

Colouring all sets differently

The simplest way to colour all sets differently is from Set_Appearance:Data/All colors. First select the sets which you wish to recolour and then select Set_Appearance:Data/All colors. Do this now to your graph.

Customizing each set

When a set in the list is highlighted, the widgets change to reflect the settings. Practically all aspects are configurable. Experiment by changing the line colours and widths, placing a symbol at each data point, not connecting data points and fill the space between the x-axis and the curve. Don't forget to try out what is available under the other tabs besides Main. To see the effect of a change, you have to hit the "Apply" button. N.B.: Things are drawn in numerical order so if there is overlap, the highest numbered item will be on top. This applies to graphs and sets within each graph.

2.3 Labelling the axes using the font tool

Aspects of the axes are controlled by the axes popup which is called from Main:Plot/Axis properties or by double clicking the graph frame. All aspects of the axes can be changed like the title, the font, colour, whether or not to draw grid lines, or user defined tick marks and labels. There are many settings and the best thing to do is to experiment to see what each setting does.

For now, let's start by labelling the axes. Suppose these curves represent the number of tasks a processor runs as the function of the number of users. To make it more interesting, assume we are doing this in Quebec. That means we want to plot "Nombre de tâches vs. nombre d'usagers". Note the importance of having the accent over the a in tâches or we would end up plotting the number of stains which is entirely another case. Bring up the Axes pop up, select the Y axis, and click in the space to enter the label string of the axis label. Start typing Nombre de t. At this point we need to enter a accented letter, so we bring up the font tool by pressing Control-E. You will now see what we have typed in the Cstring widget. Move the cursor to where you want to place the accented letter and click on the letter. It should now appear in the string. You can either finish the string here or hit accept and keep editing. Label the x axis as well. This font tool is available wherever text needs to be entered.

All the attributes regarding the axis labels like size, colour, font, position are changeable.

2.4 Graph titles

Our next exercise will be to title the graph so other. Operation pertaining to this are found in the "Graph appearance" widget which we open by selecting Main:Plot/Graph appearance or by double clicking just above the graph frame.

We can now fill in the title of the graph and by clicking on the "Titles" tab, the font and size and colour can be chosen. The Viewport box under the "Main" tab defines the 4 corners of the graph frame. You can type them in or use the mouse to move them by first double clicking on them.

Other things which can be controlled in this widget are the frame drawn around the graph, whether or not the graph background is coloured and the legends. Legends will be dealt with a little later.

2.5 Legends

Since we have several lines in our graph, it makes sense that we label them with a legend so that other people can figure out what they mean. The first thing to do is to give each set a label. This is done by entering a legend string for each set in the Set appearance popup. Now, from the Main form in the Graph appearance popup, click on "Display legend" to see the legend box. The location and appearance of the box is controlled by clicking on the "Leg. box" tab. The appearance and spacing of the legend entries is controlled by the "Legends" tab. For simplicity, label the sets alphabetically and then play with the appearance, etc. to get something you like.

Specifying the placement of the graph by entering the coordinates can be painful, especially the fine tuning. To alleviate this problem, a graphical method is also available, although not readily apparent. After a legend appears, it may be dragged to a new location. To do this, press Ctrl-L with your mouse on the main canvas. You should see the arrow cursor turn into a hand. If this doesn't work, double click on the main canvas (to get its attention) and then press Ctrl-L. Click on the legend and drag it. To cancel the legend drag mode (as with all other modes), click on mouse button 3.

2.6 A challenge

I got bored so I took the data files and produced my own, albeit ugly, graph. See if you can copy mygraph.png

3. Block Data

A block of data is a table of number which are interpreted as columns of numbers. How sets are created from the columns depends on the information you want to extract from the file.

We first need to read in a block of data. We do this from Main:Data/Import/ASCII. Select the file "3.dat" and Load as "Block data". If the read was successful, a window should pop up asking you to create a set from the block data. At the top it will list how many columns of data were read.

First we choose the type of set we would like. For now we'll stick with xy.

Next we choose which column of data contains the x-ordinate. If there is no column, we can select "index" which will use the index into the column as the x ordinate starting from one.

The values Y1 through Y4 are used for selecting error bars as may be needed by other set types.

The last thing to specify is the graph into which to load the set if we have more than 1 set.

Finally, hitting accept will create the set.

If you close this window, it can reopened by bringing up a set list (eg. Main:Edit/Data_sets) and then selecting Create_new/From_block_data from the menu brought up by right clicking on the set list.

Try creating a new set of type XYdY. This is an XY curve with error bars. Try X, Y, and Y1(the error) from different columns.

4. Creating sets within Grace

Besides reading in data files, Grace has an extensive scripting language with a large number of math functions built in, These function include the basic add, multiply, square root, etc, and also the cephes library of higher order math functions like Bessel functions and the gamma function. Hence, functions in Grace are basically unlimited. See the user guide for more details. In addition, users can dynamically add libraries to Grace with any desired function. As well, points may be added manually to a set by the use of editors. To begin, choose Main:Edit/Data sets. To create a set, press mouse button 3 (the rightmost one for right handed people) anywhere within the data set list (which may be empty) and select Create new. A menu with 4 different ways of creating new sets will be presented. We'll go through them one by one.

4.1 By formula

The load and evaluate window will pop up when this is selected.

  1. The first step is to set up the parameter mesh which will determine the range and sampling of the variable $t. Most often, $t will simply be the abscissa.
  2. Next, choose the type of set you would like to produce.
  3. Using the syntax of the command language, an expression for x is entered which uses $t as the independent variable. This can be an extremely complicated function.
  4. Likewise, an expression for y is entered and for any other expressions that may be needed. Fields after y are labelled y1, y2, y3 and y4. For example, if the set type xydxdy is chosen, y1 will hold dx and y2 will hold dy and it will be necessary to enter expressions for them.
  5. Pressing apply or accept will perform the calculations and create the new set. You may have to autoscale to see the new set.

Below are a few samples:

  1. To plot one cycle of a sine wave: Load: Set X, Start load at: 0, Stop load at: 2*pi, Length: 100, X=$t, Y=sin($t)
  2. A unit circle by parameterization: Start at:0, Stop at: 2*pi, Length: 100, X=cos($t), Y=sin($t)

4.2 In spreadsheet

If your system has the Xbae widget set, this choice brings up a spreadsheet like editor to allow one to enter the points of the set by hand. Initially, it just has the point ( 0, 0 ). Clicking on add will insert a copy of the currently selected row immediately below the selected row. Clicking delete will delete the row which contains the cursor. This method is best suited to examining or modifying existing sets or creating very small sets. The sets gets updated after one hits enter or leaves the cell.

4.3 In text editor

If your system doesn't have the Xbae widget set or you want the power of your favourite external editor, a text editor of your choice may be used to enter data. The editor is selected by the GRACE_EDITOR environment variable. If the set is new, it will contain only the point (0,0). During editing, no other operations are possible. After the editor is closed, the set will be updated.

4.4 From block data

This creates a new set from a block of data which has been read in. See section 3.

5. Batch plotting

Grace supports a large number of command line options which allow the user to control the appearance and placement of graphs. This can be very useful if you want to use it to quickly print something without going through the GUI, use it within a script to automatically generate graphs, or have a plot come up already configured which can be much quicker than going through the GUI menus.

5.1 Simple nonGUI printing

Invoking Grace with the command "grbatch"from the command line will cause Grace to start, produce a plot, send it to the printer (unless a file is specified) and then exit. In its simplest form, to produce a plot of the file a.agr, type

gracebat a.agr

If gracebat is unavailable on your system, the hardcopy option to xmgrace will do the same thing. Assuming the hardcopy device is a postscript printer, one could also type

xmgrace -hdevice PostScript -hardcopy a.agr

5.2 Multiple graphs

Often, one wishes to plot several graphs with each graph having different characteristics. This is easily accomplished from the command line. Options specified on the command line are parsed in order and stay in effect until overridden by specifying them again.

  1. The first step in plotting multiple graphs is usually telling Grace how many graphs we have and how to arrange them. The interpreter command "arrange" will do this. For example, if we want 4 graphs arranged in a simple 2x2 table, we specify -pexec "arrange ( 2, 2, .1, .1,.1,ON,ON,ON)" The exact meaning of all the options is explained in the reference manual.
  2. Specify any global options.
  3. Specify for each graph, the data to plot and any options. Options should be specified in the following order:
    1. "-graph g" where g is the graph number starting at 0. This says to apply all following options to this graph.
    2. Set any autoscaling options. Autoscaling is performed when the file is read; ergo, the autoscaling must be specified BEFORE the file is read. Remember, this setting is persistent.
    3. Set the set type. This is also a persistent setting.
    4. Specify the graph type and the input file.
    5. If reading in block data, create the sets with the "-bxy" option.
    6. Specify any world scaling. It is important to do this AFTER sets are read (unless autoscaling is off) as the graph gets rescaled when data is read in.
    7. Specify anything else

An example

Let's try an example. We will assume 5 plots, the first 4 of which are to be stacked vertically, and the fifth inset into the fourth. We wish to plot the files a.dat, b.dat, c.dat and d.dat with the inset graph being a magnified portion of d.dat. Assume a.dat contains multiple columns of data, b.dat is a block of data from which we wish to make a curve from columns 2 and 4 with the error given by column 3, c.dat is to be represented as a bar graph, and for the inset graph, we wish to graph to region (0,0) to (1,1). This can be accomplished by

gracebat -pexec "arrange (4,1,.1,.1,.1,ON,ON,ON)" -nxy a.dat -graph 1 -block b.dat -settype xydy -bxy 2:4:3 -graph 2 -settype bar c.dat -graph 3 -settype xy d.dat -graph 4 d.dat -world 0 0 1 1 -viewport .15 .3 .8 .88

Note that the graph numbers start at 0 and that 0 is the default so it does not have to be specified for the first graph.

5.3 Things for which no command line option exists

Undoubtedly, you will reach a point where you want to do something for which no command line option exists. (We have been doing this with the arrange command.) This is where Grace's parameter file language is vital. The option "-pexec" will execute the next argument as if it had read it from a parameter file or excuted on the command line. If you want to do something more complicated than one command, you can use several pexec's or put the commands in a file and run the file with the "-batch" option.

Pexec example

To read in the files foo.dat and bar.dat and scale foo.dat in Y by 1000, the simplest way is

xmgrace foo.dat bar.dat -pexec "s0.y = s0.y * 1000"

Batch example

To do the same as the previous example but also label the axes and recolour the curves, make a file called "bfile" with the Grace commands


#Obligatory descriptive comment
s0.y = s0.y * 1000
s0 line color 3
s1 line color 4
title "A Gnasty Graph"
xaxis label "Time ( s )"
yaxis label "Gnats ( 1000's  )"
autoscale 

and then run xmgrace with

xmgrace foo.dat bar.dat -batch bfile

6. Fitting curves

This tutorial will explain some of Grace's curve fitting abilities. Grace can perform two types of fittings. The first type is regression or linear fitting where optimization is done on a linear equation or an equation which can be expressed in a linear form. This includes fitting polynomials and certain forms of equations. The other type of fitting is nonlinear and allows for arbitrary user supplied functions.

Let's take a curve and see how each type of fitting works. To begin, create a curve of the function y = sqrt(x) + exp(x)/3 -1 over the range 0 to 3 with 100 points.

6.1 Linear Regression

Choosing Main:Data/Transformations/Regression will pop up the Regression window.

  1. Select the set you just created
  2. Select the type of fit. For now, pick Linear.
  3. We will load the fitted value for now.
  4. Press the accept button to see the results of the fit. A window will pop up which will give you the results of the fit including the final expression. You might have to scroll back a bit to see it.
  5. See how high of a polynomial is needed to get an acceptable fit and try fitting other types of functions. Note that for the non-polynomial fits, A and B are the fitting parameters of the equation.
  6. Now, we are not limited to computing our fitted curve at the points of the original function. Suppose these data are quarterly sales and we wish to predict our next quarter. Choose the type of fit which you found to work best. Instead of loading fitted values, Load: Function. Now the bottom of the widget will become active. We wish to extrapolate over the next quarter, so we would like to start at 0 and end at 4 and choose 100 points. Press accept to see the extrapolation.

6.2 Non-linear

We pop up the widget by selecting Main:Data/Transformations/Non-linear curve fitting. You may want to kill all the sets except the original function and the extrapolated function at this point.

  1. Begin by selecting the set to optimize, the original function.
  2. Next, we write a function of the form we wish to fit. The unknown parameters are labelled a0..a9. You must start with a0 and work your way up. In this case, since you know the form of the equation already, so try: y = a0*sqrt(x) + a1*exp(x) + a2.
  3. Next we must specify that we have three parameters to fit which are a0, a1 and a2 and the tolerance of the solution.
  4. You must specify initial values for the parameters and put any bounds on them if necessary. Depending on the function you are optimizing, different initial conditions may lead to drastically different optima.
  5. The solution process is iterative and you must click on a button to run a certain number of iterations. You should see the parameters change and a curve created with these parameters. In this example, the exact solution is reached within 5 steps. More parameters and more difficult functions may require more steps in which case you may choose to run 20 or 100 or more steps. The newly created optimized curve should converge with an increasing number of steps.
  6. As in linear curve fitting, you can choose to load the fit function at the points of the original curve, over an arbitrary range or load the error at each point. For comparison, load the fitted curve over the range (3,4) by selecting Nonlinear:Options/Load/Function and filling in the bottom of the widget. How does the true answer compare to your previous extrapolation?
  7. Fitting arbitrary curves can be a tricky business. Initial conditions are very important. If you don't get a good fit, you may have to experiment a lot with the initial parameters values.
  8. Finally, note that the fitted curve does not get added until the accept button is pressed. This allows you to "fool around" until you get a good fit without creating a lot of garbage sets.

7. Transformations

7.1 Graphical

Simple Geometrical

You can rotate sets around an arbitrary axis perpendicular to the canvas (e.g. the Z-axis). Also it is possible to scale sets and translate them.

Mathematical operations between sets

It is possible to perform operations between sets. With many operations, however, it is required that the 2 sets have the identical abscissa, i.e., the x values of both sets are the exact same. This is necessary since most operations are performed on a point by point basis. Eg. multiplying 2 sets is done by multiplying the Y values of the 2 sets together to produce a new Y value. About the only operations that don't do this are filtering and convolution. Fortunately, Grace has a function to help out when the abscissas differ. It is called interpolation which interpolates a set over the domain of another set to produce a new curve.

Let us now add the cosine of a set to the sine of another set to create a new curve. However, we will complicate this example by having different domains with different sampling:

  1. Read in 7.1.2.agr
  2. Note how the abscissa are different. We begin by using interpolate to produce a third set which is the second set sampled at the x values of the first. Call up the Interpolate popup from Main:Data/Transformations/Interpolation/splines ...
  3. Select S1 as the source set but don't specify a destination set. A set will automatically be made. Use the Strict, linear method, Sampling:Abscissas of another set and use S0 as the Sampling set. Pressing Apply should produce a curve which is S1 interpolated at the points of S0. Note that the new curve only exists over the portion of the x axis common to both curves.
  4. We still have a problem since set 2 is sampled the same as set 0 but has a smaller domain. We can perform the computation only over the common region so we now interpolate on set 0 at points from set 2 to produce set 3. Now set 2 and set 3 have the exact same abscissas.
  5. Call up the command interpreter from Main:Window/Commands ...
  6. We need to create a set to hold the result, S4. We can either make a copy (using Main:Edit/Set_operations...) of S2 which will be guaranteed to have the proper size to hold out result or we can use type a command: s4 length s2.length
  7. We have to break up the computation into an x part and a y part. In this instance, we simply wish to keep the same x values. The final result will be put into set 4, so we issue the command: s4.x = s2.x
  8. Now we can perform the math between our interpolated copies of sets 0 and 1: s4.y = cos(s3.y) + sin(s2.y).
  9. So where is the new set? It's there but it's hidden. Since we already have the command window open, we can unhide the set by typing: S4 on. For the GUI minded (no offense intended), bring up a set list with the set operations menu (eg. Main:Edit/Data_sets or Main:Plot/Set_appearance), select set 4 and unhide it by selecting show from the operation menu (mouse button 3).

N.B. If the abscissas of the original curves had been the same, we could have started at step 5. If the sampling had been the same we could have skipped step 4.

Feature extraction

Feature extraction is a way of creating one curve from a family of curves. It generates one data point from each curve by measuring a characteristic of the curve. For example, one might have a series of curves which plot the gnat population as a function of time. Each curve is produced by varying some condition, like the number of gnus in the environment. Using feature extraction, one could use this family of curves to produce a new curve of the peak number of gnats as a function of gnus or the time of the peak number of gnats as a function of the number of gnus. This is most often useful with more than one graph.

  1. Read in graph 7.1.3.agr
  2. Bring up the feature extraction form by clicking on Main:Data/Transformations/Feature_extraction.
  3. Select Results to graph 1.
  4. Select the feature you are interested in. Choose Y maximum.
  5. Select what will determine the x value of the data point. The value of the characteristic determines the Y value. The X value can be determined by the set number. The x or y values of a specified set can also be used to produce the abscissa. Finally, the legend entry of the curve itself can be used to produce the x value. In this case, the legend entry must be specified as a single number. Choose index for now.
  6. Press accept, click on graph 1 and then click on the autoscale button to see your results.
  7. Choose another feature, like frequency, this time and get X values from the legend. Make sure that graph 0 has the focus when you hit accept.

7.2 Restrictions

Often we only wish to examine part of a data set or perform transformations only on a portion of one. Restrictions allow us to define a region of the graph on which to perform operations.

Defining a region

There are several ways a region may be defined. It may be defined by a straight line (left of, right of, above, below), by a polygon (inside or outside), or by a range ( in x, out of x, in y, out of y). Call the define region popup from Main:Edit/Regions/Define. Choose which one of the regions you would like to define, and press the define button.

Line type

Define the ends of the line by clicking with mouse button 1.

Polygon type

From the define region popup, choose a polygon type and then the define button. Use mouse button 1 to pick the vertices of the polygon and then mouse button 3 when you are done.

Range type

From the define region popup, choose a range type and then pick 2 points which define the range.

Using regions

Regions may be only be used to restrict an expression evaluation. Bring up the evaluateExpressions popup (Main:Data/Transformations/Evaluate_expression). Choose the source and destination sets and specify the formula to apply to the region of interest. Not specifying an expression is equivalent to the identity transformation. Choose the region you wish to use. By checking negate, the complement of the specified region is used.

Click on Apply to perform the operation. The resultant set will be the expression evaluated only on points contained in the specified region. Thus, if no expression was specified, the effect is to produce a new set of only those points contained in the region. Conversely, to delete points in a region, leave the expression empty, and negate the region selection.

8. Using Pipes

Pipes are a way of capturing the output of a running process without the intermediary step of pacing the output in a file. Instead, the executing program puts the data in one end of the pipe, and Grace reads it from the other end of the pipe.

8.1 Instead of data files

On certain popups, e.g. Main:Data/Import/ASCII, the option to read from a file or pipe can be specified. If a pipe is chosen, the command in the selection widget will be run and the stdout will be captured and treated as though it was data which was read from a file.

8.2 Named pipes

A named pipe is a special case of the pipe previously described. In the previous case, after the program has finished execution and the output had been read, the pipe was destroyed. A named pipe is a static structure with the property that multiple processes can write to and/or read from it. The purpose of using a named pipe with Grace is to start up a Grace window and then control Grace by sending commands and data through a named pipe. This is very powerful and lets you do practically anything you can do directly from the GUI. To use this feature, try the following:

  1. Start a named pipe (you will have to find the command specific to your operating system. For example, it could be mkfifo or mknod): mkfifo pvc. If you do a directory listing, you should see the file pvc.
  2. Start up Grace in the background using the named pipe option: xmgrace -npipepvc&. Grace is now monitoring the pipe for any data which might be sent to it. It will interpret things as though they were entered using the command interpreter.
  3. For a simple test, we will create a simple graph over the pipe. From your command line, type: echo "read \"8.2.dat\"" > pvc. (The back slashes are needed to escape the quotation marks so that Grace really received the command :read "8.2.dat".) This just told Grace to read the file data. Now we would like to autoscale. We could simply click on the button but the point is to use a named pipe. This time we type echo autoscale > pvc followed by echo redraw > pvc. Your graph should now have autoscaled and redrawn. Exit Grace with echo exit > pvc. You should also clean up by removing pvc.
  4. The true power in named pipes lies in driving Grace using another program. The controlling program can open a named pipe for writing, which is treated as an ordinary file. It can be opened with the fopen() function or whatever other I/O function you prefer. Commands and data are then written to the file where they are interpreted by Grace.

9. Multiple Graphs

9.1 Selecting graphs

When multiple graphs are present, a graph is selected by clicking inside the graph frame. In cases where graph frames overlap, clicking will cycle among the overlapping graphs.

It might be annoying if one is trying to work in a region of overlapping graphs. If will not be possible to double click on something because the each click will be interpreted as a single click and you will only end up changing the graph focus. In such an instance, turning off the graph selection by clicking might be desirable. Choose Main:Edit/Preferences and then set Misc:Graph_focus to "As set". This means one must explicitly set the focus. Simply bring up a graph list (eg. Main:Edit/Overlay_graphs is but one), select the graph you want to work on and then, using the menu under mouse button 3, choose "Focus to".

Arranging a tableau of graphs

Placing a large number of regularly spaced graphs is easily done with Main:Edit/Arrange_graphs. This will automatically calculate the layout:

  1. Choose 3 rows and 3 columns and Apply. You should now see 9 graphs. The Order button refers to the way the graphs are numbered. The beginning of the line on the diagram of the button shows which graph is numbered 0 and how the numbers increase, by row or column.
  2. You realize you need horizontal packing, i.e. no horizontal gap between graphs. Click on the Pack button beside the Hgap/width input and then Apply.
  3. Suddenly, you realize you only need 6 graphs and not 9. Choose 2 rows and press Apply. There is a slight problem as graphs 6, 7 an 8 are still visible. This is a feature since you don't want to accidentally kill a graph. You can kill the extra graphs by clicking on the "Kill extra graphs" check box. Now, any graphs other than the explicitly arranged ones will be automatically killed.
  4. The margins are controlled by the Page Offsets, and the intergraph spacing by the Hgap and Vgap inputs.
  5. Press close to remove the window.

Note that only graphs which are selected are taken into consideration. So, if you wish to reorganize your existing graphs, make sure they are selected or new ones may be created.

Arranging individual graphs

Arranging individual graphs may either be done (1) exactly, by specifying the viewport coordinates from Main:Plot/Graph_appearance or using the previously explained Arrange graphs popup, or (2) roughly, by double clicking a graph focus marker and then moving it.

9.2 Overlaying Graphs

Overlaying one graph onto another is useful for creating a graph with two different x axes and/or y axes. For example, you may wish to have a graph which on the x axis has the month of the year. There could be 2 curves on it, one using the left y axis which is number of gnus sold and one using the right y-axis which is the number of gnats exported on a logarithmic scale. Likewise, if one is plotting spectral data, one could have one x axis in Hz and another one in wavelength. Let's proceed with an example:data

  1. Begin by selecting Main:Edit/Overlay graphs to bring up the Overlay widget.
  2. Select the graph numbers with which we would like to deal. In this example, we will overlay graph 1 onto graph 0. At this point, only graph 0 is visible. We cannot see Graph 1 to select since it does not exist at this point. We need to create simply by pressing mouse button 3 in a graph list window and selecting create new.
  3. The overlay type is determined by what is common among the overlayed graphs. In our example, the x axis is common so we will select X-axes same, Y-axes different. This is important because we don't want to alter any axes of the Overlay graph which we set the same as the underlay graph. In this example, we don't want to alter the x-axis of graph 1.
  4. We are now ready to label the graph axes and read the data. One thing we must be careful to do is to always make sure that we are working on the intended graph. Seeing as the graphs are overlain, clicking within the frame is ambiguous as to what graph is selected. The rule is that in a region of overlay, clicking will cycle between the graphs. Hence, if graph 1 is selecting, clicking within the frame will toggle to graph 0.
  5. Making sure that graph 0 is active, bring up the Axis properties widget. Now set the y axis title to Gnus.
  6. Select graph 1 as active as set the title as Gnats. Notice how it overlaps the Gnus. We want to put this on the right side. From the axis label and bar tab, select label Properties/Side=Opposite.
  7. Label the x axis to label it. If graph 1 is the current graph, noticed how it is greyed out because only 1 x axis need be active. Select graph 0 and you should now be able to alter the axis label.
  8. You are ready to read in data. Just make sure the graph that is active when you read in the data (or create your set) is the one in which you intend it to go.

10. Hot Links

Hot links are a way of of updating a set without having to delete it first and then reread it. The Hot Links window is opened available under Main:Data/Hot links.

10.1 File containing a Single Set

The simplest hot link is to a file containing just one set. To make a hot link to a single set, we must first select the set we want to get updated and then specify the file. We may also link to a pipe in which case we must specify it is a pipe to which we are linking. A command may also be entered which will be run every time the hot link is updated. A common command might be autoscale which will make sure that the entire set can be seen if it changes size. It's possible you may want to execute more commands than one. One could, for example, have a set that is a function of 2 sets that needs to be recomputed if either set is updated. If this is the case, put your commands in a file and then use the "READ BATCH" command.

Pressing the Link button will now create the link and if the update button is pressed, the set will be updated with the current contents of the file you linked and the contents of the Command widget will be executed.

For a simple example, read in the set 10.1.dat and set up the hot link. Now, run the command shiftdata.sh and update the hotlink. You should have seen the peak in the graph shift. Try repeating this a couple of more times.

10.2 Multiple sets within a file

Sometimes a data file may contain multiple columns of data and we would like to be able to link to all or some of those columns. To specify this, select as many sets as there are xy columns of data in the file. The "x y1 y2" format is assumed. Choose the file the data and link. Now in the link list, the links will show the file name with an appended colon and number. The number tells what column of data the link refers to. Any unwanted columns may be selected and unlinked at this point. When the update button is selected, all sets in the graph will be updated.

10.3 Updating by hot keys

Instead of having to keep the Hot links window open all the time, the update action is bound to alt-u. If you find that alt-u has no effect, try double clicking inside the graph you want to update and close the window that pops up. This will "alert" the canvas to process future hot key strokes.

grace-5.1.25/doc/convcal.10000644000076500001440000001157407337553615014734 0ustar fnevgenyusers.TH CONVCAL 1 "August 11, 2001" grace "User's Manual" .SH NAME convcal \- convert dates to different formats .SH SYNOPSIS .B convcal [\fIOPTIONS\fR] [\fIDATE\fR] .SH DESCRIPTION \fBconvcal\fR is part of the \fIgrace\fR software package, an application for two-dimensional data visualization. \fBconvcal\fR converts dates from and to various formats. The following date formats are supported (hour, minutes and seconds are always optional): .TP .I iso 1999-12-31T23:59:59.999 .TP .I european 31/12/1999 23:59:59.999 or 31/12/99 23:59:59.999 .TP .I us 12/31/1999 23:59:59.999 or 12/31/99 23:59:59.999 .TP .I days 123456.789 .TP .I seconds 123456.789 .SH "" The formats are tried in the following order : users's choice, iso, european and us (there is no ambiguity between calendar formats and numerical formats and therefore no order is specified for them). .SH USAGE \fBconvcal\fR reads the dates either on the command line or in the standard input if the command line contains no date. The user's choice for the input format put one format before the other ones in the trial list, this is mainly useful for US citizen which would certainly prefer to have US format checked before european format. The default user's choice (nohint) does nothing so the following formats of the list are checked. The separators between various fields can be any characters in the set: " :/.-T". One or more spaces act as one separator, other characters can not be repeated, the T separator is allowed only between date and time, mainly for iso8601. So the string "1999-12 31:23-59" is allowed (but not recommended). The '-' character is used both as a separator (it is traditionally used in iso8601 format) and as the unary minus (for dates in the far past or for numerical dates). When the year is between 0 and 99 and is written with two or less digits, it is mapped to the era beginning at wrap year and ending at wrap year + 99 as follows : [wy ; 99] -> [ wrap_year ; 100*(1 + wrap_year/100) - 1 ] [00 ; wy-1] -> [ 100*(1 + wrap_year/100) ; wrap_year + 99] so for example if the wrap year is set to 1950 (which is the default value), then the mapping is : range [00 ; 49] is mapped to [2000 ; 2049] range [50 ; 99] is mapped to [1950 ; 1999] this is reasonably Y2K compliant and is consistent with current use. Specifying year 1 is still possible using more than two digits as follows : "0001-03-04" is unambiguously March the 4th, year 1, even if the user's choice is us format. However using two digits only is not recommended (we introduce a 2050 bug here so this feature should be removed at some point in the future ;-) Numerical dates (days and seconds formats) can be specified using integer, real or exponential formats (the 'd' and 'D' exponant markers from fortran are supported in addition to 'e' and 'E'). They are computed according to a customizable reference date. The default value is given by the REFDATE constant in the source file. You can change this value as you want before compiling, and you can change it at will using the -r command line option. The default value in the distributed file is "-4713-01-01T12:00:00", it is a classical reference for astronomical events (note that the '-' is used here both as a unary minus and as a separator). The program can be used either for Denys's and gregorian calendars. It does not take into account leap seconds : you can think it works only in International Atomic Time (TAI) and not in Coordinated Unified Time (UTC) ... Inexistant dates are detected, they include year 0, dates between 1582-10-05 and 1582-10-14, February 29th of non leap years, months below 1 or above 12, ... .SH OPTIONS A summary of the options supported by \fBconvcal\fR is included below. .TP .B \-h prints the help message on stderr and exits successfully .TP \fB\-i\fR \fIformat\fR set user's choice for input format, supported formats are iso, european, us, days, seconds and nohint. At the beginning the input format is nohint, which means the program try to guess the format by itself, if the user's choice does not allow to parse the date, other formats are tried .TP \fB\-o\fR \fIformat\fR force output format, supported formats are iso, european, us, days, seconds and nohint. At the beginning, the output format is nohint, which means the program uses days format for dates read in any calendar format and uses iso8601 for dates read in numerical format .TP \fB\-r\fR \fIdate\fR set reference date (the date is read using the current input format) at the beginning the reference is set according to the REFDATE constant in the code, which is -4713-01-01T12:00:00 in the distributed file. .TP \fB\-w\fR \fIyear\fR set the wrap year to year .SH "SEE ALSO" .BR grace(1) .I http://plasma-gate.weizmann.ac.il/Grace/ .SH AUTHOR Luc Maisonobe This man-page was written by Jan Schaumann as part of "The Missing Man Pages Project". Please see \fIhttp://www.netmeister.org/misc/m2p2/index.html\fR for details. grace-5.1.25/doc/grace.10000644000076500001440000001464311404714565014361 0ustar fnevgenyusers.TH GRACE 1 "Jan 28, 2007" .LO 1 .SH NAME grace \- command line interface .br xmgrace \- full-featured GUI mode .br gracebat \- batch mode \- print and exit .SH DESCRIPTION Grace is a WYSIWYG tool to make two-dimensional plots of scientific data. .SH SYNOPSIS .B grace .RI "[ " option " | " filename " ]..." .br .B xmgrace .RI "[ " option " | " filename " ]..." .br .B gracebat .RI "[ " option " | " filename " ]..." .SH OPTIONS .TP .BI "\-autoscale " "x|y|xy|none" Set autoscale type .TP .B "\-barebones " Turn off all toolbars .TP .BI "\-batch " "file" Execute batch .I file on start up (i.e., after all other options have been processed and the UI initialized) .TP .BI "\-block " "file" Assume the data .I file is block data .TP .BI "\-bxy " "x:y:etc." Form a set from the current block data set using the current set type from columns given in the argument .TP .BI "\-datehint " "iso|european|us|days|seconds|nohint" Set the hint for dates analysis .TP .BI "\-dpipe " "descriptor" Read data from descriptor on startup .TP .BI "\-fixed " "width height" Set canvas size fixed to width*height .TP .B "\-free" Use free page layout .TP .BI "\-graph " "number" Set the current graph number .TP .BI "\-graphtype " "xy|chart|fixed|polar|pie" Set the type of the current graph .TP .B "\-hardcopy" No interactive session, just print and quit .TP .BI "\-hdevice " "device_name" Set default hardcopy device. See .B "xmgrace \-version" for a list of supported devices. .TP .B "\-install" Install private colormap .TP .B "\-legend" "load" Turn the graph legend on .TP .BI "\-log " "x|y|xy" Set the axis scaling of the current graph to logarithmic .TP .BI "\-maxpath " "length" Set the maximal drawing path length .TP .B "\-mono" Run grace in monochrome mode (affects the display only) .TP .BI "\-netcdf " "file" Assume data file is in netCDF format. This option is present only if the netCDF support was compiled in .TP .BI "\-netcdfxy " "X_var Y_var" If \-netcdf was used previously, read from the netCDF file X_var and Y_var variables and create a set. If X_var is "null" then load the index of Y to X. This option is present only if the netCDF support was compiled in .TP .B "\-noask" Assume the answer is yes to all requests, if the operation would overwrite a file, grace will do so without prompting .TP .B "\-noinstall" Don't use private colormap .TP .B "\-noprint" In batch mode, do not print .TP .B "\-nosafe" Disable safe mode .TP .B "\-nosigcatch" Don't catch signals .TP .BI "\-npipe " "file" Read data from named pipe on startup .TP .BI "\-nxy " "file" Assume data file is in X Y1 Y2 Y3 ... format .TP .BI "\-param " "file" Load parameters from .I file to the current graph .TP .BI "\-pexec " "string" Interpret string as a parameter setting .TP .B "\-pipe" Read data from stdin on startup .TP .BI "\-printfile " "file" Save print output to .I file .TP .B "\-remove" Remove data file(s) after read .TP .BI "\-results " "file" Write results of some data manipulations to .I file .TP .B "\-rvideo" Exchange the color indices for black and white .TP .B "\-safe" Run in the safe mode (default) .TP .BI "\-saveall " "file" Save all to .I file .TP .BI "\-seed " "value" Integer seed for random number generator .TP .BI "\-settype " "xy|xydx|..." Set the type of the next data file .TP .BI "\-source " "disk|pipe" Source type of next data file .TP .BI "\-timer " "delay" Set allowed time slice for real time inputs to .I delay ms .TP .B "\-timestamp" Add timestamp to plot .TP .B "\-version" Show the program version, registered devices and build time configuration information. .TP .BI "\-viewport " "xmin ymin xmax ymax" Set the viewport for the current graph .TP .BI "\-wd " "path" Set the working directory .TP .BI "\-world " "xmin ymin xmax ymax" Set the world coordinates for the current graph .TP .B "\-usage|\-help" This message .SH RESOURCES .TP When run in the GUI mode, the interface is a subject to X resource settings. Please refer to the User's Guide for a list of important ones. .SH ENVIRONMENT .TP .B GRACE_HOME Specifies the directory where the Grace docs and libs are stored. Default is .BR /usr/local/grace .TP .B GRACE_HELPVIEWER The shell command to run an HTML viewer for on-line browsing of the help documents. Must include at least one instance of "%s" which will be replaced with the actual URL by Grace. Default is .B mozilla %s .TP .B GRACE_EDITOR Specifies the editor which is used to edit sets. Default is .B xterm \-e vi .TP .B GRACE_PRINT_CMD The print command. .TP .B GRACE_FFTW_RAM_WISDOM and .B GRACE_FFTW_WISDOM_FILE A flag (0 or 1) and a file name which determine whether a FFT should use `wisdom' when using the FFTW libraries. .SH FILES In many cases, when Grace needs to access a file given with a relative .ft I pathname\c .ft R , it searches for the file along the following path: .ft I ./pathname:./.grace/pathname:~/.grace/pathname:$GRACE_HOME/pathname .ft R The following files are of a special importance: .B gracerc - init file loaded upon start up. .B templates/Default.agr - the default template, loaded whenever a new project is started. .B fonts/FontDataBase - the file responsible for font configuration. .SH "SEE ALSO" grconvert(1), X(1) [or Xorg(1)], Grace User's Guide .SH HOME PAGE http://plasma-gate.weizmann.ac.il/Grace/ .SH BUGS The best way to submit a bug report is using the "Help/Comments" menu entry. Alternatively, see the home page. .SH AUTHORS .B Grace is derived from .B ACE/gr (a.k.a .B Xmgr ) written by Paul J Turner. From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik. .SH COPYRIGHT Copyright (c) 1991-1995 Paul J Turner, Portland, OR .br Copyright (c) 1996-2007 Grace Development Team .SH LICENSE The program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. grace-5.1.25/doc/grconvert.10000644000076500001440000000205606757102720015303 0ustar fnevgenyusers.TH GRCONVERT 1 .LO 1 .SH NAME grconvert .SH DESCRIPTION grconvert converts old binary project files from Xmgr 4.0 to an ASCII format understood by late versions of Xmgr and Grace 5.x .SH SYNOPSIS .B grconvert .RI "<" infile "> <" outfile ">" .SH OPTIONS .TP None. .SH "SEE ALSO" grace(1), gracebat(1), xmgrace(1) .SH HOME PAGE http://plasma-gate.weizmann.ac.il/Grace/ .SH BUGS The best way to submit a bug report is using the "Help/Comments" menu entry of xmgrace (GUI version of Grace). Alternatively, see the home page. .SH AUTHORS .B Grace is derived from .B ACE/gr (a.k.a .B Xmgr ) written by Paul J Turner. From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik. .SH COPYRIGHT Copyright (c) 1991-95 Paul J Turner, Portland, OR .br Copyright (c) 1996-99 Grace Development Team .SH LICENSE The program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. grace-5.1.25/doc/10a.dat0000644000076500001440000000652306671062261014266 0ustar fnevgenyusers@type xy -9.42478 -0.011358 -9.23438 -0.0266403 -9.04398 -0.0414277 -8.85358 -0.0551688 -8.66318 -0.0673321 -8.47278 -0.0774251 -8.28238 -0.0850133 -8.09198 -0.0897366 -7.90158 -0.0913249 -7.71118 -0.0896103 -7.52078 -0.0845363 -7.33038 -0.0761636 -7.13998 -0.0646719 -6.94958 -0.0503584 -6.75918 -0.0336307 -6.56878 -0.0149977 -6.37839 0.00494501 -6.18799 0.0255318 -5.99759 0.0460475 -5.80719 0.0657501 -5.61679 0.0838944 -5.42639 0.0997581 -5.23599 0.112666 -5.04559 0.122017 -4.85519 0.127304 -4.66479 0.128139 -4.47439 0.124266 -4.28399 0.115583 -4.09359 0.102144 -3.90319 0.0841697 -3.71279 0.0620476 -3.52239 0.0363259 -3.33199 0.00770493 -3.14159 -0.0229778 -2.95119 -0.0547667 -2.76079 -0.0866121 -2.57039 -0.117397 -2.37999 -0.145968 -2.18959 -0.171166 -1.9992 -0.191861 -1.8088 -0.206987 -1.6184 -0.21557 -1.428 -0.216764 -1.2376 -0.20988 -1.0472 -0.194406 -0.856798 -0.17003 -0.666398 -0.136659 -0.475999 -0.0944213 -0.285599 -0.0436783 -0.0951998 0.0149833 0.0951998 0.080758 0.285599 0.152637 0.475999 0.229427 0.666398 0.309779 0.856798 0.392217 1.0472 0.475173 1.2376 0.557023 1.428 0.636131 1.6184 0.710881 1.8088 0.779728 1.9992 0.841229 2.18959 0.894079 2.37999 0.937152 2.57039 0.969522 2.76079 0.990491 2.95119 0.999603 3.14159 0.996662 3.33199 0.981731 3.52239 0.955134 3.71279 0.917447 3.90319 0.86948 4.09359 0.812262 4.28399 0.747009 4.47439 0.675097 4.66479 0.598025 4.85519 0.517377 5.04559 0.434783 5.23599 0.35188 5.42639 0.270267 5.61679 0.191473 5.80719 0.116917 5.99759 0.047875 6.18799 -0.0145472 6.37839 -0.0694373 6.56878 -0.116095 6.75918 -0.154042 6.94958 -0.183032 7.13998 -0.203044 7.33038 -0.214281 7.52078 -0.217153 7.71118 -0.212261 7.90158 -0.200375 8.09198 -0.182408 8.28238 -0.15938 8.47278 -0.132395 8.66318 -0.1026 8.85358 -0.0711552 9.04398 -0.0392013 9.23438 -0.00782556 9.42478 0.021965 & grace-5.1.25/doc/shiftdata.sh0000755000076500001440000000016506671062261015515 0ustar fnevgenyusers#!/bin/sh mv 10c.dat tuttemp.dat mv 10b.dat 10c.dat mv 10a.dat 10b.dat mv 10.1.dat 10a.dat mv tuttemp.dat 10.1.dat grace-5.1.25/doc/FAQ.html0000644000076500001440000020267112467751544014523 0ustar fnevgenyusers Grace FAQ (for Grace-5.1.23)

Grace FAQ (for Grace-5.1.23)

by the Grace Team

12.06.2010
This document contains Frequently Asked Questions (FAQ) about Grace, a WYSIWYG 2D plotting tool for scientific data. (A German translation of this document, made by Tobias Brinkert, is available here: Grace FAQ.)

1. General Questions

2. Getting Help

3. Providing Help: Finding and Reporting Bugs

4. Installation

5. Runtime Problems

6. Basic Concepts

7. Using Grace

8. Mathematics

9. Command Line Interface

10. Miscellaneous


1. General Questions

1.1 What is Grace?

Grace is a tool to make two-dimensional plots of numerical data. It runs under various (if not all) flavours of UNIX with X11 and M*tif. Its capabilities are roughly similar to GUI-based programs like Sigmaplot or Microcal Origin plus script-based tools like gnuplot or Genplot. Its strength lies in the fact that it combines the convenience of a graphical user interface with the power of a scripting language which enables it to do sophisticated calculations or perform automated tasks.

Grace is derived from Xmgr (a.k.a. ACE/gr), originally written by Paul Turner.

From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik.

When its copyright was changed to GPL, the name was changed to Grace, which stands for ``GRaphing, Advanced Computation and Exploration of data'' or ``Grace Revamps ACE/gr''. The first version of Grace available is named 5.0.0, while the last public version of Xmgr has the version number 4.1.2.

Paul still maintains and develops a non-public version of Xmgr for internal use.

1.2 Where can I get Grace?

You can get the newest information about Grace and download the latest version at the Grace home page.

You can fetch it from a mirror site as well. The list of mirror sites can be found at ftp://plasma-gate.weizmann.ac.il/pub/grace/MIRRORS.

1.3 Where can I get the most recent information about Grace?

Please refer to the official Grace Home Page. There you can also find the latest version of this FAQ, links to the latest release and to mirror sites closer to you.

1.4 What is the difference between Xmgr and Grace?

Apart from the licensing, the main difference is that Grace is WYSIWYG (What You See Is What You Get). This was achieved through a major rewrite of all the mid-level drawing routines and the use of the device-independent Type 1 font rendering library T1lib for typesetting.

For help with changing from Xmgr to Grace see section Xmgr to Grace migration guide in the User's Guide (question User's Guide.

There are currently several features of Xmgr which are not yet implemented in Grace (of course, alongside with a lot of new stuff not found in Xmgr). A full compatibility is desirable except for ``bad'' features of Xmgr.

Among the Xmgr features not (yet) implemented in Grace are:

  • X-Y graph flip
  • Horizontal and vertical lines as symbols
  • Smith plots

1.5 Why did you change the name?

When the licensing was changed to GPL, Paul wanted to keep the name for his non-public version of Xmgr, so we chose a new name.

1.6 Is Grace free?

Yes. Grace is free in terms of the GNU General Public License (GPL) (see the file LICENSE which comes with Grace or the GNU Home Page for details).

1.7 Who wrote Grace?

The sources of Grace still contain a significant amount of code from Xmgr by Paul Turner. For a list of those who contributed to Grace since then, see the file CHANGES in the Grace distribution.

Some integral parts of Grace are borrowed from other packages, namely libraries which are also available as stand-alone distributions. In alphabetical order:

1.8 Is there a Postscript|LaTeX|HTML|SGML version of this document?

Yes. It is written in SGML which means that all the above versions can easily be created using sgml-tools (see their home page). At the Grace home page (see question Home Page), all these versions are available.

2. Getting Help

2.1 Are there any books about Grace?

As of now, Grace is a purely virtual creature living in the net, i.e. there is no printed literature. All relevant docs are currently bundled with Grace. See questions Home Page and User's Guide for details. You can print your own copy of the FAQ, the User's Guide and the Tutorial by converting the DVI files to PostScript output.

2.2 Is there a User's Guide available for Grace?

Yes. It is part of the Grace distribution and usually is located in $GRACE_HOME/doc/. There are several versions: the SGML source and HTML, LaTeX, DVI and PS derived from it. You can read the HTML version from a running Grace session by clicking on "Help/User Guide". You need a web browser to read the HTML version (see also question Environment Variables). You can always download the newest version from the Grace homepage (see question Home Page).

The User's Guide is not quite complete, yet.

2.3 Is there a Tutorial available for Grace?

Yes. There are several tutorials which give detailed step-by-step information how to achieve various tasks. They are also part of the Grace distribution. You can find them in $GRACE_HOME/doc/.

There are tutorials about creating a simple plot, batch plotting, fitting curves, transformations (graphical - simple ones, interpolation, feature extraction, using the command line), using pipes, overlaying graphs, hot links.

2.4 Where do I get support for Grace?

You have the following options:

  • There is a User's Guide (see question User's Guide) which came with Grace on your computer. It is usually located in $GRACE_HOME/doc/ along with other files which may contain useful help for your problem. If you downloaded the sources, there are even more files in the main directory of the source tree.
  • Have a look at the Grace home page (question Home Page).
  • On the Grace forums (see question Forums for details) you can easily get in contact with users and developers of Grace. However be aware that people here are trying to help in their spare time - so you can't always expect quick responses.

2.5 Is there a newsgroup devoted to Grace?

No, there isn't. We feel that a bulletin board (see question Forums) is more appropriate to discuss the topics related to Grace.

2.6 Is there a mailing list for Grace?

There used to be a few, but now they are replaced with bulletin-board-style forums (see question Forums).

The mailing list archives are still available for browsing.

2.7 Is there a forum for Grace?

Yes. Just follow this link: forums. It has its own FAQ.

3. Providing Help: Finding and Reporting Bugs

3.1 I think I found a bug in Grace! How do I report it?

First

Make sure that what you found really is a bug.

Second

Try to make sure that it is a bug in Grace, and that the failure is not caused by another piece of software.

Third

Make sure you are running the latest official release of Grace. The development of Grace is rather fast, so your bug might already be fixed.

Fourth

Try to find out if the bug is already known (see question Known Bugs).

Fifth

OK: You have found a new bug. Use w3todo (question Known Bugs) to report it. Follow the instructions on the page and try to be as precise as possible. It won't be of much help if you write ``The program crashes.'' Try to find a simple reproducible case. Mention the version of Grace and where you got the build and the operating system you use. You should submit the system info as provided by ``uname -a'' (if this utility exists, of course) and the output of ``xmgrace -version''. Often the problem is related to some specific data set. Please try hard on reducing this to the minimum which is sufficient of reproducing the bug. If it's only a few lines of data please submit it together with the other details. Once you submit the bug report, it will be automatically relayed to the mailing list. You will usually be notified when the bug is fixed or if we need more information, so please don't forget to give your correct e-mail address.

3.2 Is there a list of known bugs?

Yes. You can search and browse the database of known bugs in Grace at the bug report facility w3todo or using the "Help/Comments" menu from within Grace. The database also keeps track of the status of the bug (Confirmed, Working on, Testing, Fixed, Closed, etc.). This is also the place to submit bug reports and wishes.

Some bugs and fixes may not appear in w3todo, but are covered on the forums.

3.3 The bug report #xxx is marked as "Fixed" in the w3todo, but I checked the last version of Grace and the bug is still there!

The term "fixed" means the bug is fixed in the current development version, and the next public version will have the fix in it. Reports with fixes incorporated in an existing public version are marked as "Closed".

3.4 The bug report #xxx I reported is marked as "Ignored" in the w3todo and I even got no reply?!

You must have missed something very obvious. Check out how to properly submit a bug report in this document. Most probably your report was incomplete or just redundant to an existing entry. It's worth checking the log file of the bug report (the "View log" button at the bottom of the report viewing page).

3.5 I have got an idea! How do I report a wish?

You can submit wishes and suggestions just the way you would submit bug reports (see question Known Bugs). Suggestions for improvement are generally very welcome. It may be possible, however, that the developers are busy or that your wish is rejected for some good reason, so it may be necessary to persuade (better convince) them to get at it.

3.6 I want to help! How can I contribute to Grace?

Fine! There are always things to do.

If you are a C programmer, you can almost certainly find something useful to do. Just ask on the forums. The same applies if you are a technical writer. The documentation will certainly need to be updated, corrected or completed. Every small contribution is appreciated!

Make Grace known to your friends and colleagues. The more users Grace has, the faster it will be improved.

3.7 How do I submit patches/contributions?

Prepare diffs against the most recent version. Use either unified (-u) or context (-c) diff format. Specify exactly against which version the diff is supposed to work. Finally send them to mailto:fnevgeny at weizmann dot ac dot il

In case you plan to help this way more than once you should join the forums.

3.8 I like Grace! Should I donate anything to its authors?

No need to. But if you feel like making a donation, choose any charity organization you like. You wanted to give them some money, anyway, right? ;-)

4. Installation

4.1 How do I install Grace?

You have the choice: either you compile the sources yourself or you download precompiled binaries (we strongly suggest you take the first route). You can get both from the Grace Home Page. Whether binaries for your platforms are available (see question Binaries) depends on whether one of the developers has access to the respective platform and has had time to do it.

It is always a good idea to read the READMEs that accompany the downloading packages of Grace.

4.2 Can I compile Grace myself?

Yes! Actually, this is the preferred method of installation. After getting the sources (question Installation) and ungzipping and untaring them (use e.g. gzip -dc grace-5.0.4.tar.gz | tar xvf -), proceed according to the relevant section of the User's Guide, which covers the compilation process.

4.3 When I run `configure', it says the XXX package is not found, whereas I am certain it was installed on my system!

There are several possible reasons:

  • You have only the run-time part installed (this especially concerns GNU/Linux users). However, you should have the relevant development package (C header files etc) installed, too. E.g., for the JPEG library to be recognized by `configure', both libjpeg62 and libjpeg62-devel packages must be installed.
  • The library and the header files don't match each other (they are from different versions). This usually happens on large Unix systems with a less than capable sysadmin...
  • Either the library or the header files can't be found by the compiler. Use the --with-extra-ldpath and --with-extra-incpath configure options to provide the extra paths, respectively.

4.4 When I type './configure' I get: ``configure: error M*tif has not been found''

Check whether M*tif (question M*tif) is installed on your system. If it is, look at the file config.log: there is a line like this:

configure:8900: checking for a Motif >= 1002 compatible API

What comes directly after it? Could be a hint. Also, see the previous question.

4.5 What is Motif (LessTif)?

Throughout the Grace docs, saying "M*tif" we actually refer to the Motif API, defining a set of functions for building graphical user interfaces (GUI) via numerous widgets (buttons, labels, etc). Grace makes a heavy use of the M*tif API.

There are several implementations of the interface. The original OSF Motif (see http://www.opengroup.org) recently changed its license: on open-source platforms you may have a chance to use it for free, although it's not in general qualified as either a FreeSource or OpenSource product.

There is, however, a free replacement for Motif called LessTif (see http://www.lesstif.org). LessTif is intended to be a 100% source compatible replacement for Motif, but is still under development. For the purposes of Grace, try using the latest version of LessTif (at least 0.92.6 and above). The LessTif people usually receive many bug reports from the Grace developers, so you might hope that a few remaining bugs in LessTif will be fixed rather quickly.

4.6 `configure' stops telling it can't find "ar".

"ar" is the library archiver (the program used to create static libraries like libFoo.a). You should have it in your path. Under Solaris, for example, this can be found in /usr/ccs/bin.

4.7 Are there Grace binaries available? For which platforms?

We do not officially support binary packages. When contributed by volunteers they're put in under the contrib area. Again, these are NOT supported (bug reports like "I can't install that RPM" will be silently ignored), but feel free using the Grace forums for relevant discussions.

4.8 Is there a Windows|OS/2|VMS port of Grace?

Yes, Grace runs on VMS. Just compile it there.

As for Win32 (Windows 95/98/NT/2000/XP) and OS/2, there are ports for these platforms, though they are not "native", i.e. in order to run them, one needs an X server for the respective platform.

Both OS/2 and Win32 ports may lack some of the functionality (notably, support for "direct"/native printing; probably you will have to use the Postscript output for printing).

A port to OS/2 made by Alexander Mai can be found at http://www.tu-darmstadt.de/~st002279/os2/. It requires the XFree86 libraries and an X Server (e.g. XFree86, Hob X11, Exceed, etc.).

4.9 Compilation with gcc fails on Solaris complaining about unresolved symbols.

If you get such a message at the linkage stage, telling about .LL794 (or similar) unresolved symbols, try compiling with native cc compiler instead (./configure --with-cc=cc).

5. Runtime Problems

5.1 When I start Grace I get the message ``Can't find library libXXX.so'' or similar.

For certain tasks, Grace needs external libraries which are neither provided by Grace nor the operating system. You will need to install these libraries yourself. This applies to M*tif, PDF (see question Output Devices) and probably other libraries. If the message is exactly Can't find library libXm.so (usually this happens on GNU/Linux systems ...) then you don't have M*tif (the Xm libraries) installed (see question M*tif), or the linker doesn't know where it is. In the first case, try downloading LessTif. In the second case, you have to tell your linker where it is (may be a platform-specific task). On GNU/Linux look at the file /etc/ld.so.conf. It contains pathnames of the directories where dynamic libraries are stored. Add (as root) your directory to this file and run ldconfig -v. Now the libraries should be in the list. If you're not root you may try to adjust the environment variable LD_LIBRARY_PATH to include the required pathname.

For some versions of Motif, the ``soname'' (which identifies the version of the library and is stored somewhere in the library) on your computer doesn't match the soname of the library on the computer where your copy of Grace was compiled on. Then you should use a (semi)statically linked version or compile Grace on your computer.

5.2 I get errors like "X Error of failed request: BadValue (integer parameter out of range for operation)"

This means that Grace made an incorrect access to an X library. This is most probably not Grace's fault. Probably a not-yet-correctly-implemented LessTif function (see question M*tif) caused this behaviour. If you use LessTif, try to get the latest version (see question M*tif). If this error persists, report it as a bug (question Bug Reports).

5.3 Grace crashes with "Oops Got SIGSEV" (on GNU/Linux)

Detect whether you are using a version linked against LessTif. "xmgrace -version" and "ldd xmgrace" are useful commands for this purpose.

If you are using LessTif, read the according FAQ M*tif else report it as a bug ( Bug Reports).

5.4 I run Grace and get the following error messages: "Warning: translation table syntax error: Unknown keysym name: osfPageLeft Warning: ... found while parsing '<Key>osfPageLeft:SWLeftPage()'"

Get the XKeySymDB file from the X11R6 distribution. Put it somewhere where you can access it and set the XKEYSYMDB environment variable to "/place/where/you/put/XKeysymDB". See question Environment Variables on how to set environment variables.

5.5 I run Grace on a Solaris 2.5.1 box, and when I try to open a file, I can't read the names of the files (files section of the dialog) because Grace writes ALL the path of each file in the list and there is no horizontal scroll.

This is a known bug of Motif implementation on Solaris 2.5.1 (both Sparc and Intel hardware). Ask your vendor for a patch.

5.6 Grace can not find font database and initialize the T1 library

You have probably tried to run Grace without installing it, just after compilation. You got the following message :

scanFontDBase(): Font Database File not found
T1_InitLib(): Fatal error scanning Font Database File
--> Broken or incomplete installation - read the FAQ!

Grace uses either the GRACE_HOME environment variable or a compiled in default path to find the font database. If the variable is not set and you have not installed the database with make install it cannot find it. If you want to test Grace before installing it, you should set the environment variable to the distribution directory (the one where the file configure lies), this is what the dotest script does when you run make check. The easiest thing to do however is to install everything with make install. See question Environment Variables on how to set environment variables.

If you get this message after installing a prebuilt package, then you have either forgotten to download the platform-independent part of the installation (named like grace-x.y.zz.common.tar.gz) or not set the GRACE_HOME environment variable, see a few lines above.

5.7 Pressing Ctrl and clicking with the left mouse button on the canvas or dialog panels make Grace crash.

This is a known bug in Motif-2.1. Most vendors have fixed it in their ports and/or have a patch ready, but not all, a notable exception being Motif libraries shipped by Red Hat for GNU/Linux for Intel hardware (versions 6.*). Grace has a workaround for this bug. In order to enable it, add the following lines to the X resources:


XMgrace*XmDrawingArea.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmRowColumn.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmForm.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmFrame.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmScrolledWindow.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmFileSelectionBox.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmScale.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmCommand.translations: #override\n\
        Ctrl <Btn1Down>: do_nothing()
XMgrace*XmMessageBox.translations: #override\n\
      Ctrl <Btn1Down>: do_nothing()
        

5.8 The size of the canvas is huge.

It should be exactly the size of the hardcopy (A4/US letter). If not, check your X server settings (run `xdpyinfo' and watch the "dimensions:" line; check the numbers with a ruler).

5.9 Extended ASCII characters do not appear and/or appear as incorrect control characters in text input fields.

Are you using OpenMotif 2.2 (see Help/About)? It's known to behave wrongly with several locale settings. Try setting the shell variable LANG to a safe value, e.g. "C". The bug is known and fixed ( bug #1257). Nag your vendor to apply the patch.

5.10 File selection dialogs are unusable.

It happens with OpenMotif 2.2 and some locale settings. See the previous entry for a remedy.

5.11 All of the text in the menus and dialog boxes are represented as squares.

This happens when a Unicode font is picked by the X/Motif and, for a reason, is treated as a wchar one (so you see one "square" glyph for every two chars). Try different font settings; for starters, run


    xmgrace -xrm "XMgrace*fontList:fixed"
        

5.12 On Fedora Core 4, all set selectors collapse into a single of even a zero-height line after a few operations.

FC4 uses a BETA version of OpenMotif 2.3 (see Help/About). The bug is known and fixed ( bug #1331). Ask Fedora folks to apply the patch.

6. Basic Concepts

6.1 What is a project?

A project is a file which contains all information necessary to restore a plot created by Grace.

6.2 What is a parameter file?

A parameter file contains informations about settings. Every batch command of Grace is a valid line in a parameter file. A parameter file is essentially a project file without sets in a slightly different format (i.e. without leading @s).

6.3 Which data formats does Grace recognize?

You can read in several kinds of files where data is arranged in columns separated by spaces or tabs. Lines beginning with "#" are ignored.

6.4 What is block data?

The option Read Block Data can be used to read in files where the values are organized in columns. You can interactively select the type of set to be created and which columns should be used. Refer to the User's Guide (question User's Guide) for details.

6.5 What is the NXY data type?

Strictly speaking, it's not a data format. Rather, you may want to use the relevant command line switch to read in a block data file and automatically assign the data columns to sets of the XY type so that the first column of the block data is used as X for all the sets and the rest of the data columns are assigned to Y's. Refer to the User's Guide (question User's Guide) for details.

6.6 What is the Julian Date?

The Julian Date, not to be confused with the Julian calendar, is a format to represent the time in a single number. Julian Date 0 is a day way in the past, namely the 1st January 4713 before Christ (don't ask me why). The following days are numbered sequentially, each day starting at noon. This numbering scheme is in wide use, especially in astronomy, and is used for the internal representation of dates in Grace. Some further explanations are given on this page.

The convcal utility in $GRACE_HOME/auxiliary/ can be used for about any to Julian date convertion.

7. Using Grace

7.1 How do I start Grace?

There are three ways to invoke Grace. The full-featured GUI-based version is called xmgrace. A batch-printing version is called gracebat (see question Gracebat). A command-line interface mode is called grace.

All three of them are usually located in $GRACE_HOME/bin/.

7.2 Where is gracebat? How does batch printing work?

gracebat is simply a copy of Grace named gracebat or a symbolic link from gracebat to Grace. In the case of the symbolic link:

ln -s xmgrace gracebat

done wherever the Grace binary is located will do the trick (rehash or logout and login to make sure that gracebat shows up in your path). Executing gracebat with no command line parameters or data files will produce a hardcopy on the default printer.

7.3 How can I customize the default appearance of Grace?

There are several ways: the init files, X Resources, and environment (shell) variables. Please refer to the User's Guide (question User Guide) for details.

7.4 Which environment variables does Grace use?

There are few, the most important being GRACE_HOME. It specifies the directory where the Grace files (fonts, docs, libs, ...) are stored. Default is /usr/local/grace.

You can set environment variables using (e.g.):

export GRACE_HOME="/usr/local/grace"

in bash and sh or

setenv GRACE_HOME "/usr/local/grace"

in tcsh and csh.

Please refer to the User's Guide (question User Guide) for description of all relevant variables.

7.5 What command line options does Grace recognize?

Quite a few. You can display them with xmgrace -help.

Or check for the man page xmgrace(1). However it may not always be up-to-date.

7.6 Can one change the colour selecton for the menu, locator, tool, and status bars, and all the popup menus?

As with any X application, use the "-bg <colorname> -fg <another_colorname>" command line flags. Or, define the relevant X resources:

XMgrace*foreground: ...
XMgrace*background: ...

7.7 What different kinds of sets can Grace plot?

The standard set is the regular (x,y) set, but there are others including error bars or descriptive strings. See the User's Guide (question User's Guide) for details.

7.8 I'd like to plot data against an axis on the right (top) and another data set in a different scale against an axis on the left (bottom)

Use two overlaying graphs, one with a scale on the left(bottom), the other one on the right (top). Thus you can achieve the desired effect, but you'll need to pay close attention to which graph is the 'current' graph. This is also how to display a second scale on the top (right) side of the graph.

7.9 How do I do polar plots?

The support for polar plots is currently being implemented, so you can expect polar plots to work soon. The polar coordinates can be selected from the "Plot/Graph Appearance" menu. Please refer to the User's Guide (question User Guide) for details.

7.10 Can I use different fonts, symbols, font size, or sub/superscripts in Grace?

Yes, Grace has all these features. Wherever you can type a text in Grace, e.g. Axis labels, graph title, text from Plot->Drawing objects, etc., you can use all those features within the same text. Please refer to the User Guide (question User's Guide) for details.

7.11 How do I produce special characters (Umlauts) with Grace?

If you asked this question, then you are probably familiar with the issue of keymap modifying in X. Once you configured the key mapping (with the use of xmodmap), you can enter the extended characters from the keyboard in any text input field. If, in addition, the appropriate for your language font encoding is anything but ISO Latin1 (used in most Western Europe countries), you'll have to tell Grace so. See the next question.

7.12 Can I use my own fonts and/or encodings?

Yes. Starting with version 5.0.1, you can use your own fonts, in addition to the standard 14 fonts which include Times-Roman, Helvetica, Courier, Symbols and Zapf Dingbats and come with Grace, and as a replacement for the default fonts (for the purporse of localization). As well, an alternative encoding scheme can be specified.

Please refer to the User's Guide (question User's Guide) for details.

7.13 At which precision is numerical data saved? How can I set the precision?

By default, numbers are saved with eight valid digits. To set your own precision, use the command

DEFAULT SFORMAT formatstring

in an init resource file (see question Customization) with formatstring being in the printf(3) format.

As well, you can set the precision on a per-project basis. When you save a project for the first time (or use "File/Save as"), there is a relevant "Data format" field in the popup you are presented with.

7.14 When I save a project and then re-open it, the Julian date values appear to be rounded to the nearest half day.

For time plots, the default precision may be insufficient. See the previous question on how to alter it.

7.15 How do I read in project files created by Xmgr?

From Xmgr-4.1.2 on, each project file starts with a string giving the version number by which is was saved. These files should cause no problems. You can modify older files by inserting a version line at the beginning. For example, @VERSION 40102 stands for version 4.1.2. If you have no idea what version of Xmgr your file was created with, try some. In most cases, 40102 would do the trick. Also, make sure to read the "Xmgr to Grace migration" section of the User's Guide (question User's Guide).

7.16 I can't open anymore project files saved with an old version of Xmgr.

In Xmgr-4.1.0, support for the binary file format (the former default one) was dropped. You must use the grconvert utility supplied with the Grace distribution in order to convert the files. This can easily be achieved defining an input filter like in the gracerc sample file which comes with Grace.

7.17 When I load a project saved with an earlier version of Xmgr (<4.0), symbols of all (some) sets are drawn in black.

Make sure you added a valid @VERSION versionid line to the beginning of the file.

7.18 How do I save disk space? Can I use compressed project files?

Yes. You can use your favorite compression program (e.g. `gzip') as input or output filter so that files on disk are automagically (de)compressed. Just add the lines

DEFINE IFILTER "gzip -dc %s" PATTERN "*.gz"

and

DEFINE OFILTER "gzip - > %s" PATTERN "*.gz"

into your personal grace init file. Then, everytime you specify a file name that ends with .gz, gzip is used as input and output filters. You can use this mechanism to do other things, e.g. reading and storing files into a database.

7.19 Can I import bitmap graphics into Grace?

Well, not yet. The import of images will be implemented in a future release.

7.20 Can I export Grace graphs to GIF|TIFF| PostScript|PDF etc?

PostScript (for printing), EPS (encapsulated PostScript; for the inclusion of graphics into e.g. LaTeX documents), PNM (PBM/PGM/PPM), MIF (for inclusion in FrameMaker) and SVG (Scalable Vector Graphics) are implemented by default.

Additionally, if some extra libraries are installed, listed in the User's Guide (question User's Guide), the JPEG, PNG, and PDF backends will be built as well.

You can get various other formats using netpbm and pstoedit.

Bitmaps: Using the PNM device + the netpbm utils (available at e.g. ftp://ftp.x.org/contrib/utilities/ one can get TIFF, GIF, G3, BMP, PCX,... (conversion can be done on the fly with appropriate filter definitions).

Notice that the direct support of the GIF format is impossible due to the copyright policy of Unisys - it's not a technical problem. In fact it was supported in earlier versions but to avoid any legal problems this feature has been removed.

One can use pstoedit to convert PS to a lot of other vector formats: MIF, CGM, xfig's, tgif's, Windoze and OS/2 metafiles,... even Java applets!

7.21 Where have all the region operations gone to?

Region operations have no meaning by themselves. Regions are restriction conditions applied to data set(s) which a transformation is performed on. For example, to kill data points in a region, use "Evaluate expression", select same source and dest set(s), leave the "formula" field empty, select your region in the "Restriction" menu, check "Negated".

7.22 How can I input data in date/time formats?

You can use several date/time formats in input data files. Make sure, however, that the time fields don't contain space separators inside, e.g. 1999-12-31-23:59:59.5

Also, you can use an external program to convert the data into the Julian Date format, like the one (convcal) that is supplied with Grace.

7.23 How do I set the background color of a plot, outside of the graph frame?

This can be done using the "Plot/Plot appearance" popup.

This changes the background of the entire canvas, not only the background of graphs.

7.24 How do I use more than 16 colors for objects/lines in Grace?

You may edit your Default.agr file in $GRACE_HOME/templates. Just add lines similar to

 @map color 2 to (255, 0, 0), "red" 
defining a RGB value and an according name for that color triplet. Please notice that altering colors 0 (white) and 1 (black) is strongly discouraged.

7.25 How can I use pipes with Grace?

A named pipe is a pseudo file to which one application writes data which another one reads from it.

Applications like measurement programs can write data to a pipe and make it thus available to Grace which reads from the pipe. So Grace can serve as data displayer for otherwise non-graphical programs.

Refer to the User's Guide (question User's Guide) or the tutorials (question Tutorials) for further information.

One example for using pipes is included in the `make tests' slide show.

7.26 Is it possible to make Grace starting with a completely empty canvas, until the commands are loaded and executed?

Start Grace with -pexec "G0 OFF" or load a parameter file with the above command.

7.27 When I include an EPS file generated by Grace into my (La)TeX document, the graphic hides some of the surrounding text.

LaTeX does not do hard clipping of EPS files unless instructed to do so. Use \includegraphics*{filename} and NOT \includegraphics{filename} (package graphics) or \includegraphics[clip]{filename} (package graphicx). If using the epsf package, remember to include the \epsfclipon flag (but note that the epsf package is obsolet and buggy and not maintained by the LaTeX team and in general should not be used).

The erasing comes about because Grace fills the background with the page size and not the bbox size. The background filling can be disabled from the "Plot/Plot appearance" popup.

7.28 Printing to my old PostScript printer produces an error.

By default, the PS driver uses Level 2 features, while your printer may not be PostScript Level 2 compliant. You can force the use of PS Level 1 only features in the PostScript device setup, though output may be not exactly as expected (there will be no pattern fills, for example).

7.29 How do I make a Grace image fit on a given paper size?

Select the correct paper size in the Device setup popup.

You can also try the command psresize from the psutils package in order to resize a Postscript file generated by Grace.

7.30 My decimal tick labels are systematically of the form e.g. 0,5 instead of 0.5 (i.e. I get a comma instead of a dot).

You're using a localized version of OS. You have either LANG or LC_NUMERIC shell variables set, so Grace uses the locale setting to produce numeric labels. Set at least LC_NUMERIC to C or POSIX to disable this behaviour. Notice that there is nothing specific to Grace about locale. Either you want the localization or not. Setting by default LANG to anything but C/POSIX assumes you do.

7.31 Is it possible to use the dB (decibel) axis scale?

In "Plot/Axis props", enable logarithmic axis scaling, then go to the "Tick labels" tab of this dialog, find the "Axis transform" input field in the "Extra" frame, and enter there "10*log10(10*$t)" (w/o quotes, of course).

7.32 In "Data set properties", I don't see a possibility to view the more essential part of the mantissa; it's swallowed in the black triangle.

If you find some columns are too narrow to show all significant digits, you can drag the vertical rules using Shift+Button 2.

7.33 When making use of -param via the command line to set the parameters, the world scaling is not correctly set (it just auto-scales).

The -param flag and its argument should be placed on the command line after the data filenames. Alternatively, disable the autoscale with -autoscale none - but before your data is read in.

7.34 I am unable to find "Load & Evaluate" which I used quite a lot with Xmgr.

Use "Create new->By formula" from any set selector popup menu.

7.35 How can I specify a template other than the default one on the command line? In the scripts?

Template is just an empty (in the sense that there are no data sets) but otherwise a valid project file. So just put your favorite template's filename as the first argument on the command line. If your script creates several plots, use 'new from "filename"' to initialize a new project from the non-default template.

7.36 How can I save my 'preferences' options?

A part of them are saved with the project; most of the rest are available via command-line options and/or X resources. A more homogeneous approach will be implemented in a future version.

7.37 In an XY-plot with a huge number of points some regions become straight lines instead of the original curve. When I zoom in to the area the data becomes correctly drawn.

Enlarge "Max drawing path length" in Edit/Preferences. Also, consider whether you really need that huge number of points drawn connected by line?

8. Mathematics

8.1 What algorithm is used for non-linear curve fitting?

It is the Levenberg-Marquardt algorithm, based on LMDIF from MINPACK, with some modifications.

9. Command Line Interface

9.1 Which non-interactive batch commands does Grace know?

Lots. Almost every mouseclick in the GUI has an equivalent in the batch language. See the User's Guide (question User's Guide) for details.

9.2 How can I do feature extraction non-interactively?

Currently not at all. This will be implemented in a later release.

9.3 How can I use non-linear fits in the batch mode?

Example - make a batch file with the following commands:

          fit formula "y = a0 + a1 * sin (a2 + x * pi / 180)"
          fit with 3 parameters
          fit prec 0.05
          a0 = 1
          a0 constraints on
          a0min = 0
          a0max = 2
          a1 = 1
          a1 constraints off
          a2 = 1
          a2 constraints off
          nonlfit (s0, 100)
        

This assumes that your original curve is in set s0 and that you want to make 100 iterations.

nonlfit() doesn't produce any plots by itself. It only fits. I.e., at this point, you can use the fitted values A0, A1, A2...:

Plot a set, e.g.:

          s3 on
          s3 length s0.length
          s3.x = s0.x
          s3.y = a0 + a1 * sin (a2 + x * pi / 180)
        

Use for another fit as the initial values, or just ECHO them (to stdout) with ECHO A0.

9.4 Is it possible to call the command "POINT expr, expr" with more than two values, as needed, for example, for points in XYDYDY sets?

No, but you can do something like this (given the set type was properly defined):

          S0 POINT expr, expr
          S0.Y1[S0.LENGTH - 1] = expr
          S0.Y2[S0.LENGTH - 1] = expr
          ...
        

10. Miscellaneous

10.1 Does Grace have an UNDO function?

Not yet. Although it would be nice to have such a function, it is quite hard to implement. We can only ask you to be careful with certain actions and remember to save often and early (TM).

10.2 Can Grace plot 3D graphs?

No. Not yet, I should say. Be patient. It may take quite a while to implement it, though.

10.3 Which features are planned for the future?

Among the many features planned to be introduced in the future are enhancing the spreadsheet-like frontend for dataset operations, contour plots, many-level undo/redo, image import and manipulations, a library for 2-way communication, ... Then 3D plots would come :-)

10.4 Are there things that Grace can't do?

Probably. If you have an idea for improvement, post it as a wish to the w3todo web page (see question Known Bugs).

10.5 How should Grace be acknowledged when it is used to prepare a publication?

You are not required to, but you if wish, refer to the home page link (see Grace home page).

grace-5.1.25/doc/xmgrace.10000644000076500001440000000002112373764354014716 0ustar fnevgenyusers.so man1/grace.1 grace-5.1.25/doc/CHANGES.html0000644000076500001440000021055512467747540015165 0ustar fnevgenyusers Grace: List of changes

Grace list of changes

5.1.25

Functionality

* [ES] killing set data from GUI and scripts now clears set comments

Bug fixes

* [ES] undid "always overwrite set comments when reading data in" from 5.1.24 * [ES] fixed Fourier transform DC-term amplitude (rep. #630) * [ES] newer versions of "make" tried to regenerate documentation (rep. #2240)

5.1.24

Portability/Compilation

* [ES] fixed detection of dynamic loading libraries (rep. #2238)

Documentation/Info

* [ES] install PDF docs instead of the DVI ones * [ES] added cephes/COPYING (from Debian)

Bug fixes

* [ES] a workaround for broken input of non-ASCII text under UTF8 locales * [ES] always overwrite set comments when reading data in

5.1.23

Bug fixes

* [ES] removed *86 specific optimizations (rep. #2154) * [ES] renamed RMS per cent error -> relative error (rep. #2192) * [ES] a workaround for a bug in recent Xorg not releasing grab of popup menus * [ES] accept -graphtype chart instead of bar. List possible values in the help output * [TK] fix building against png-1.5 * [SM] a grace_np fix * [ES] IsoLatin5.enc was not included in the distribution

5.1.22

Interface

* [DC] mention object type when asking for user's confirmation on delete

Parser

* [ES] added "LINCONV(set1, set2)" command - an equivalent of Transformations->Linear convolution * [ES] added "VOIGT(gamma, sigma, x)" function (rep. #2144)

Bug fixes

* [ES] in the grace_np library GraceClose() could kill all user processes if by that time the Grace subprocess has exited (rep. #2035) * [ES] certain hand-modified settings in project files might cause the GUI crash (incl. rep. #2139) * [ES] ungraceful closing of anonymous pipes could result in high CPU load

5.1.21

Functionality

* [ES] added IsoLatin5 (ISO 8859-9) encoding file * [ES] now honor locale in number stringifications (rep. #2109) * [ES] extended range of prefixes in the Engineering format up to 10^{+/-24} * [HR] added "Computing" tick label format

Interface

* [ES] added "-maxpath" command line option for setting maximal drawing path length * [ES] allow for longer legend lines

Parser

* [ES] added "KILL BLOCK" command (deallocates the memory of the current block data)

Bug fixes

* [ES] there was a misleading error message when attempting to redefine an existing variable/keyword in the parser * [ES] fixed rounding-off problem with zero labels (rep. #2098)

Portability/Compilation

* [IG] eliminated some of gcc-4.1 warnings (rep. #2111) * [IG] man page cleaned (rep. #2110)

5.1.20

Parser

* [ES] added SGN() function

Defaults

* [ES] changed default major tick spacings to 0.2

Bug fixes

* [ES] command argument "-graphtype pie" wasn't recognized (rep. #2058) * [ES] fixed openning of help documents when using an external browser * [ES] "Geometric transforms" with order: "Rotate, scale, translate" in fact was doing "Translate, scale, rotate" * [ES] Grace might crash when using "Engineering" tick label format (rep. #2094) * [ES] file selection dialog wasn't closed when fit parameters file was read in successfully

5.1.19

Functionality

* [ES] BARDY and BARDYDY sets are now allowed in XY graphs

Bug fixes

* [RL] loading a DL module could fail with an irrelevant error message (rep. #2071) * [ES] a bug in the PS driver caused CUPS to output empty page if printing accounting was enabled in foomatic (rep. #2047) * [ES] automatic data point purging (enabled when set length exceeds "Max drawing path length" in Edit/Preferences) could fail silently (rep. #2069) * [ES] the point purging could result in wrong set filling when fill to the baseline was selected * [ES] configure's option --with-helpviewer was broken (rep. #1414)

5.1.18

Parser

* [ES] implemented concatenation of quoted strings and numerical expressions

Bug fixes

* [ES] some X font configurations could make Grace crash (rep. #1436) * [ES] DEFAULT ... commands had no effect on new drawing objects (including rep. #1437) * [ES] DEFAULT CHAR SIZE had no effect on tick labels of new axes

5.1.17

Drivers

* [ES] changed default resolution of the PDF driver to 300 dpi

Documentation/Info

* [ES] minor documentation updates, including rep. #1421

Bug fixes

* [ES] with page fill disabled, the page frame line might be drawn with wrong properties * [ES] due to a bug in the Xbae widget, when a TrueType font was used, several dialogs could become unusable (including rep. #1366) * [ES] enabling patterned fills and PDF-1.4 compatibility mode could result in crash when printing to PDF

5.1.16

Interface

* [ES] set scrolling of the custom ticks/labels table to 1 row per click (rep. #1419)

Documentation/Info

* [ES] updates relevant to the status of mailing lists/forums

Portability/Compilation

* [ES] PDF driver updated to work with PDFlib-6 (rep. #1426). Minimal supported version is now 5.0

Drivers

* [ES] added option to generate PDF-1.4 format (Acrobat5). Support for PDF-1.2 (Acrobat3) removed

Bug fixes

* [ES] replaced meaningless error message issued when trying to load data with a few string columns as a single set * [ES] in the spreadsheet editor, the last entered cell's data wasn't committed (rep. #1420)

5.1.15

Functionality

* [ES] increased max number of custom tick marks/labels to 256 per a popular demand

Project files

* [ES] now using one-line format for saving graph's world and viewport settings

Defaults

* [ES] changed default external help viewer to mozilla

Documentation/Info

* [ES] misc documentation updates (including rep. #1411)

Bug fixes

* [ES] fixed crash when number of custom tick marks/labels exceeded 100 * [ES] fixed evaluation of FWHM in "Feature extraction" (old version might produce wrong results for multi-peak data) * [ES] support for loadable functions of 4 and 5 parameters, introduced in 5.1.14, was incomplete * [ES] in correlation/covariance, only the absolute value at 0 is normalized to 1, so for anti-correlation the sign is preserved

5.1.14

Interface

* [ES] use multiplication sign in formulae of regression report (rep. #1360)

Parser

* [ES] allow for DL modules to define functions of 4 and 5 parameters (rep. #1343)

Portability/Compilation

* [ES] fixed compilation under FreeBSD-5.1 and OS/X (rep. #1371)

Bug fixes

* [ES] on 64-bit platforms, when specific compiler/optimization combinations were used, some dialogs could crash randomly (e.g. rep. #1310) * [ES] on 64-bit platforms, when specific compiler/optimization combinations were used, X run-time warnings could be issued about unrecognized XKeySym's * [ES] set filling defaulted to even-odd filling rule in the X11 driver (rep. #1368) * [ES] fixed potential memory corruption * [ES] fixed page size sync in the free mode * [TO] fixed a race condition in the grace_np library

5.1.13

Functionality

* [ES] enabled annotated values for HILO sets

Parser

* [ES] added IMIN(x) and IMAX(x) functions returning index of minimal or maximal value of array x (thusly providing a way to solve reps. #1340 and #1344)

Portability/Compilation

* [ES] updates for T1lib-5.0 API (rep. #1303)

Documentation/Info

* [WB] documented commands for calculating running properties

Drivers

* [MD] enabled font kerning in the MIF driver

Bug fixes

* [ES] Grace might fail starting in the GUI mode when a certain sequence of command line arguments was passed

5.1.12

Functionality

* [MO] implemented zooming and scrolling of log plots

Parser

* [ES] added INT(x,y) evaluating integral value of y dx * [ES] added RSUM(vexpr) - running sum

Bug fixes

* [ES] fixed memory corruption when reading in block data (rep. #1258). The bug was introduced in 5.1.11 * [ES] fixed a couple of tiny memory leaks associated with loading block data * [ES] fixed crash in histogram and interpolation dialogs with multiple sets selected (rep. #1259) * [TO] signal issues with the grace_np library fixed (rep. #1270) * [ES] implied references to current graph in parser might crash Grace if the graph didn't exist (including reps. #886 and #1267) * [ES] removed extraneous accent glyphs in the 0x9? range of IsoLatin1 and IsoLatin2 encodings (including rep. #1269) * [MO] IsoLatin7 encoding file wasn't installed by "make install" * [ES] entering negative values of set symbol skip could crash Grace (rep. #1276)

5.1.11

Functionality

* [ES] hotlinks now work for all set types (rep. #572) * [ES] updating hot-linked sets now works for all graphs, not the current one only * [YZ] added encoding files for Russian codepages koi8-r and cp1251 and for Ukrainian codepage koi8-u

Interface

* [ES] use "+"/"-" instead of "shown"/"hidden" in the graph selectors

Parser

* [ES] added UPDATEALL command, equivalent of "View/Update all"

Drivers

* [ES] set resolution in the PNG output (rep. #1225)

Portability/Compilation

* [ES] updated auto* stuff to work with autoconf-2.5.* (rep. #1199)

Bug fixes

* [SR] precision used for special tick locations was insufficient (rep. #1228) * [ES] referring to "S_" in the parser with no sets in the current project crashed the app * [ES] GraceIsOpen() from the grace_np library returned true after the Grace process exited (rep. #922) * [ES] excluded .cvsignore files from source tarballs (rep. #1248) * [ES] a minor memory leak fixed (40 bytes per set import/reading in) * [ES] configure --with=f77=/absolute/path/to/f77 was broken (rep. #1243) * [ES] in XY charts, explicitly check that abscissas of all sets are the same

5.1.10

Functionality

* [MO] added IsoLatin7 encoding file

Interface

* [ES] disable showing hidden files in file selection dialogs by default and added a checkbox to alter this behaviour (Motif-2.* only) * [ES] in the spreadsheet dataset editor, set text insertion position corresponding to the mouse click location

Defaults

* [ES] changed default data format to %.8g (rep. #985)

Bug fixes

* [ES] the default GRACE_HELPVIEWER command was incompatible with Mozilla (rep. #1198) * [ES] fonts with long names (> 27 chars) could crash Grace (rep. #1200) * [ES] font antialiasing was broken for projects with more than 16 default colors defined * [ES] fonttool might crash on fonts with an invalid FontBBox entry (rep. #1202) * [ES] some font glyphs might not fit in the fonttool matrix cells, especially on low-resolution displays * [ES] canvas wasn't refreshed after a region started to be re-defined (rep. #1211) * [ES] provided workaround for a PDFlib bug, resulting, in rare cases, in wrong colorspace settings in the PDF output (rep. #1209)

5.1.9

Drivers

* [MD] implemented patterned fills in the SVG driver * [MD] better font name definitions in the SVG driver * [MD] updated SVG DTD reference

Compilation

* [PB] installed binary of convcal now gets stripped * [PB] "make install links" now works * [PB] DESTDIR introduced for building binary packages (e.g. "make DESTDIR=/tmp install links")

Bug fixes

* [SR] -(no)safe flags were missed in the -help output * [ES] some standard Xt flags (-geometry etc) were ignored (the bug was introduced in 5.1.8) * [MD] patterned fills were transparent in the PDF output * [MD] font family might be set inconsistently in the MIF driver * [ES] xmgrace was run in the safe mode when invoked from GraceOpen() via the grace_np interface (rep. #1179) * [ES] fixed 1/n error in calculation of correlation coefficient in the non-linear fit (the value was used for information purposes only). The bug was introduced in 5.1.5 * [ES] redrawing canvas in the free mode might in some cases result in modified graph viewport values (rep. #1176) * [ES] allow trailing semicolon in the batch language (rep. #1193) * [ES] some fonts couldn't be opened when running under NT4 (rep. #1186). This was a T1lib bug, in fact * [ES] the cross-covariance was wrongly calculated (rep. #1196)

5.1.8

Security

* [ES] implemented (and enabled by default) "safe" mode, in which statements of the command language which may result in file modifications are disabled. This is to prevent execution of such commands contained in potentially malicious project files acquired from untrusted sources

Functionality

* [ES] use leading zeros in axis year formats so to make up to 2 or 4 digits in total (depending on whether the two-digit year span is enabled in the project preferences)

Interface

* [ES] simplified X initialization - the resolution detection introduced in 5.1.5 prevented Grace from starting up with some buggy X servers (notably, StarNet's X-win32) (rep. #1138) * [ES] -safe/-nosafe command line options for switching the safe mode * [ES] "Run in safe mode" checkbox in "Edit/Preferences" for the same purpose * [ES] removed broken "Command" function of the hotlink popup

Drivers

* [MD] backported from 5.2 pattern fills in PDF driver (off by default) * [MD] better font definitions in the MIF driver

Portability/Compilation

* [ES] use strchr() instead of BSD-ish index() which broke compilation under newer IRIX boxes (rep. #1139) * [ES] stop with error (instead of warning as used to be) if Motif can't be found by configure

Bug fixes

* [ES] background of the canvas, if page filling was disabled, might get filled in with the last object's fill props (rep. #1152) * [ES] changing HTML viewer by setting the GRACE_HELPVIEWER shell variable might result in memory corruption (rep. #1160) * [ES] canvas wasn't refreshed after feature extraction

5.1.7

Functionality

* [ES] allow XYZ sets in polar graphs * [ES] allow defining string columns when creating sets from block data via the command line or parser, e.g. -bxy "1:2:{3}" (rep. #978) * [ES] honour symskip for all set types (it wasn't for BAR, BARDY, BARDYDY, XYHILO, XYR, XYVMAP, and BOXPLOT) * [ES] extended x-correlation routines to calculate x-covariance if desired * [ES] implemented optional snake-like matrix fill in graph arranging (rep. #1119)

Interface

* [ES] accept non-ASCII characters from nationalized keyboards

Documentation/Info

* [ES] added compile-time $(LDFLAGS) to the `-version' output

Parser

* [ES] added an extra flag to the XCOR function to switch between x-correlation/x-covariance * [ES] when accessing drawing objects by id (e.g. "WITH STRING nexpr") allocate the referenced object if necessary * [ES] added optional argument to ARRANGE command to enable snake-like graph matrix filling

Drivers

* [ES] set resolution of the X11 device from the X server props * [ES] detect max request size of the X server and set max drawing path length accordingly

Portability/Compilation

* [ES] fixed new Motif checks introduced in 5.1.6 (rep. #1107)

Bug fixes

* [ES] applying graph properties reset axis limits of polar graphs * [ES] simply ignore comments (lines beginning with '#') in data files instead of splitting the set (rep. #831) * [ES] honour symskip for error bars (rep. #936) * [ES] when enabling log axis scaling on the command line, set reasonable major/minor settings and world bounds (reps. #723, #1021) * [ES] under very rare circumstances, Grace might cause a (probably buggy) X window manager misbehave * [MD] make sure the EPS/PS output lines don't exceed 255 chars in lenth (rep. #1100)

5.1.6

Parser

! [ES] implemented region on set evaluation: REGNUM(selectset) * [ES] implemented applying region and logical restrictions to a set: RESTRICT(selectset, vexpr) and RESTRICT(selectset, REGNUM, onoff) ! [ES] implemented KILL REGNUM * [ES] added SUM(vexpr) * [ES] allow accessing array segments (e.g. x[4:10])

Portability/Compilation

* [ES] use the bundled Xbae by default to make sure we don't come across a buggy version installed * [ES] upgraded to T1lib-1.3.1, which fixed several bugs (see below) * [ES] re-wrote Motif checks; in some rare cases, Motif libraries might be misdetected * [ES] added a "My Computer" (actually, a list of drives) file selection box chdir entry for the Cygwin port * [ES] check for FFTW library version >= 2.1.3 * [ES] fixed compilation on systems without setlocale()

Bug fixes

* [ES] re-loading projects with polygon regions defined might result in memory leaks and wrong region evaluations * [ES] optimize (again) updating large pulldown selectors (rep. #1082) * [ES] axis label with "Auto" placement was misplaced/absent with tick marks and labels disabled on the respective side (rep. #1086) * [ES] in the interpolation and histogram dialogs it wasn't checked that the source and destinations sets were different (rep. #1084) * [ES] when the invert x-axis flag was turned on, pie charts were wrongly reproduced in all but screen outputs (rep. #1092) * [ES] when saving project under the same name, don't warn about file overwriting (rep. #1094) * [ES] there might be problems finding fonts under non-Unix environments (rep. #1013). This was a T1lib bug, in fact * [ES] text overlining didn't work for Symbol font (rep. #1026). This was a T1lib bug, in fact * [ES] fixed calculation of x-correlation. Previously, a broken x-covariance was calculated * [ES] lines starting with spaces weren't parsed by the command interpreter (rep. #1101)

5.1.5

Functionality

* [ES] honour X axis start value and invert flag in pie charts * [ES] extended maximum allowed line width to 20

Interface

* [ES] automatically adjust Xresources for low-resolution (800x600) displays so all dialogs fit in the screen * [ES] allow for setting via the GUI negative gaps in bar charts (rep. #1059) * [ES] allow to select font and symbol sizes up to 1000 * [ES] make the size scale controls change by 25 and angle controls by 10 when pressing Ctrl+Left/Right arrows on them

Parser

* [ES] implicitly cast to boolean double arguments used as bool

Documentation/Info

* [JS] added man page for convcal * [ES] added examples of XYCOLOR set presentation and reciprocal axis scale, contributed by Nels Dumin * [AM] include libpng, libjpeg, and libpdf versions in the `-version' and "Help/About" outputs * [ES] documented S$ and S_ special parser set names

Bug fixes

* [ES] PS output might be broken for plots containing XYCOLOR sets * [ES] when Line type:left/right stairs was selected, drawing with a dashed line of multiple short steps broke the dash pattern (rep. #1024) * [PM] the argument of --with-printcmd configure switch wasn't quoted * [ES] make result file output line-buffered instead of block-buffered * [LM] date format hint was ignored in the parser * [ES] legend and viewport dialog were not updated when moving legend or resizing graph from canvas * [ES] std. dev. was calculated using n instead of n-1 in the denominator (rep. #1042) * [ES] fixed crash under some platforms with zero width world/view coordinates (rep. #1014) * [ES] optimize updating large pulldown selectors (e.g. in the "Edit block data" popup) * [ES] fixed broken AA font rendering and potential crash when the color palette size exceeded 128 (rep. #1061)

5.1.4

Bug fixes

* [ES] reading in a project file right after printing to a raster file (PNG, JPEG,...) caused a crash (rep. #990) * [ES] in the "Sample points" dialog, even when the "log. expression" is selected, one had to input some values into start/step input fields anyway * [AM] ellpe(x) and ellpk(x) in fact returned ellpe(1-x) and ellpk(1-x), respectively (rep. #989) * [ES] "graphno OFF" merely makes the graph hidden instead of killing it

5.1.3

Interface

* [AM/ES] set icon's title = project name (rep. #957) * [ES] when switching to log scale, set major/minor tick settings to 10/9 respectively (rep. #826)

Documentation

* [ES] docs updates (including reps. #926, #965) * [EV] fixed a typo in Tutorials (rep. #916)

Parser

* [ES] added "HELP url" and "HELP" to the parser * [LM] added "AUTOSCALE ONREAD NONE|XAXES|YAXES|XYAXES" to the parser

Drivers

* [MD] produce MIF files with a textflow in which the graph is included, so it can be included in another FrameMaker document * [ES] list used fonts in %%DocumentNeededResources in the PS output (rep. #956)

Portability/Compilation

* [AM] allow to specify print command at config time * [AM] fixed problem compiling bundled Xbae (rep. #959)

Bug fixes

* [ES] fixed rounding error in calculation of pulldown menu length (rep. #929) * [RL] precision of offsets in the Axes dialog were restricted to two digits (rep. #911) * [AM/ES] double click on canvas with a pie chart might cause crash * [EV] legend entries for BARDY and BARDYDY sets weren't drawn * [MD] fixed conversion table for non-ASCII codes in the MIF driver (rep. #946) * [LM] reading in data files with floats when they were explicitly signed and positive resulted in parse error * [ES] failure to save project to a file due to wrong permissions didn't produce an error message * [ES] using non-standard fonts might crash the PDF driver * [ES] specifing a file-only output device with "-hdevice" didn't actually set the output to file (rep. #899) * [ES] the "Rescale plot on page size change" option in the "File/Print setup" dialog had no effect if the selected device was X11 * [ES] fixed (actually, just now implemented) automatic axis label placement (rep. #744) * [ES] projects with sets using symbol char from the upper half of the ASCII table weren't saved correctly * [ES] line width of drawing elements wasn't accounted for in the bbox calculations, which in rare cases resulted in a wrong EPS bbox

5.1.2

Functionality

* [DB] implemented baseline setting to the set (y) average

Interface

* [ES] don't hardcode file extensions in file selection dialogs, but define them via X resources instead (rep. #671)

Documentation

* [ES] HTML docs now include tables of contents

Parser

* [ES] added "PAGE RESIZE xdim, ydim" which sets the page dimensions of all output devices (in pp) and rescales the current plot accordingly

Drivers

* [ES] implemented font kerning in the (E)PS output * [ES] added option to choose document data (7bit/8bit/binary) for the PS driver

Portability/Compilation

* [AM] OS/2 updates

Bug fixes

* [ES] "-saveall" filename argument was ignored (rep. #841) * [ES] not enough arguments to "-world" or "-viewport" could cause crash * [ES] with "Auto redraw" disabled, several operations still caused an immediate redraw * [ES] backslashes in text strings weren't escaped in the (E)PS output * [AM] interpolating non-monotonic data by spline caused crash or meaningless results (rep. #866) * [ES] for some non-standard fonts and/or encodings, the (E)PS output might be binary while declared as 8bit clean * [ES] path in print setup * [ES] too wide pulldowns in "Edit block data" if block data contained too many columns * [ES] it was impossible using GUI to disable annotated values in the XYZ set type * [LM] creating sets with strings from block data might crash * [ES] fixed a floating point rounding bug in the polygon clipping which (in rare cases under some OS's) caused set filling be performed wrong (rep. #874) * [ES] fixed a bug in the Xbae widget crashing under a multi-head X server (rep. #878)

5.1.1

Functionality

* [ES] interpolation now takes into account all data set columns * [ES] normalized histograms can be calculated * [ES] histograms with varying bin widths - abscissas of a set can be used as the bin mesh * [EV/ES] added GraceOpenVA() function to the grace_np API * [ES] \V{} escape code in strings - baseline shift * [ES] \n escape code in strings - new line * [ES] a region can be linked only to a single graph * [UH] implemented logit axis scale

Interface

* [ES] "Edit/Locator props" popup rewritten * [ES] "Spline" popup removed * [ES] "Interpolation" popup rewritten; now includes the former "Spline" functionality * [ES] "Histograms" popup rewritten * [ES] "Arrange graphs" rewritten (including reps. #368, #592, #735) * [ES] double click on a set selector entry now pops up the SS editor * [ES] date/time format can be used in the SS editor to display/enter values * [ES] many other enhancements in the SS editor * [ES] if the XmHTML widget library is available, it will be used for displaying on-line help ("Gracilla"). The libhelp support is scheduled to be withdrawn soon * [ES] removed -[no]logwindow command line options and X resource * [ES] removed -arrange, -cols, and -rows command line options * [ES] "Results" and error message windows merged into "Console" * [ES] menubar added to the "Graph appearance" dialog * [ES] "File/Read/Sets" and "File/Write/Sets" moved to the "Data/Import" and "Data/Export" submenus, respectively * [ES] "File/Read/Parameters" and "File/Write/Parameters" moved to the "Plot" menu * [ES] renamed "File/Device setup" to "File/Print setup" and added "View/Page setup" (same dialog but with X11 as the selected device) * [ES] split axis/tick label offset input fields into two

Documentation/Info

* [WB] some fixes/additions to the User's Guide * [AM] include Xbae version in -version and "Help/About" * [DP] User's Guide additions * [EV] Tutorials updated * [AM] man page corrections * [ES] re-enabled on-line help for several dialogs

Parser

* [ES] removed restriction on the max line length (512) in parameter files * [ES] SPLINE, ASPLINE, and INTERP removed and INTERPOLATE added which includes the functionality of the former ones * [ES] added RAND(N) - creates an array of N random numbers * [ES] HISTO renamed to HISTOGRAM and syntax changed * [ES] changed syntax of ARRANGE command * [ES] removed UNLINK REGNUM FROM selectgraph; now that a region links to a single graph only the command makes no sense * [DP] added READ NXY CHRSTR for reading in data in the NXY format

Portability/Compilation

* [ES] configure checks for netCDF version * [AC] a couple of configure fixes * [AM] check for build/runtime Xbae version match * [AM] OS/2 updates * [JH] VMS updates

Bug fixes

* [ES] fixed text under/overlining in SVG * [ES] fixed dashed patterns for thick lines in SVG * [ES] a bug in interpolation caused crash under some conditions (rep. #783) * [ES] fixed overflowing of some tables in dvi output of the User's guide * [ES] fixed interpolation of reversed arrays (rep. #675) * [ES] fixed a memory leak in interpolation using splines * [ES] there was no automatic canvas refresh after performing interpolation * [ES] there was no automatic canvas refresh after changes in locator props * [ES] fixed "\\" in strings * [ES] check for positive page dims and dpi in device setup (rep. #779) * [ES] invert logics of the yesno dialog popped up if printout is truncated (rep. #778) * [JSB] text color might be wrongly set on raster devices with antialiasing off (rep. #803) * [ES] memory leak fix in the SS editor * [ES] "File/New" didn't update project description in "File/Save as" * [ES] graph operations on killed graphs result in crash (rep. #805) * [ES] drawing objects cursor remained active after closing window (rep. #807) * [ES] switching between (overlaid) graphs updated the locator bar only after pointer move (rep. #808) * [GJ] canvas didn't refresh on autoscale shortcut (rep. #809) * [ES] initial values of fit parameters with bounds set were printed wrongly in the "Results" window * [ES] disable canvas events on hidden graphs * [ES] white space at the beginning of text strings wasn't accounted in bbox calculations * [ES] fixed wrong initial canvas size in the free page mode (rep. #821) * [ES] fixed set split crash * [ES] couldn't use constant expressions in "Load & evaluate" (rep. #828) * [ES] a severe memory leak in "Load & evaluate" fixed * [ES] regions were displayed wrongly on plots with several graphs

5.1.0

Functionality

* [ES] VMAP plots implemented (rep. #440) * [ES] BOXPLOT sets re-implemented. The control over appearance details is more detailed than in Xmgr (including rep. #188) * [ES] XYSIZE sets implemented (a generalized form of "bubble" plots) * [ES] XYCOLOR sets implemented (rep. #484) * [ES] pie charts implemented ! [EV] set restrictions in "Window/Point explorer" * [ES] \#{} escape code in strings - allows to enter non-printable chars by their hex codes * [ES] \r{} escape code in strings - text rotation * [ES] \q, \Q escape codes in strings - start/stop text slanting (rep. #716) * [ES] \l{} escape code in strings - slanting text with any factor * [ES] \t{}, \T{} escape codes in strings - generic text coordinate transforms * [ES] \R{} escape code in strings - changes color inside a string (rep. #535) * [ES] \Fl, \FL escape codes in strings - start/stop ligature processing * [ES] \Fk, \FK escape codes in strings - start/stop kerning pair processing * [ES] more font encoding files added ! [ES] alternative tick labels ("transformed" axes) (rep. #93) * [ES] changed default placement of error bars to two-sided (rep. #737) * [ES] for XYBAR/XYBOXPLOT sets draw the symbols in the legend with the fixed height (of the legend text) for better readability (rep. #741) ! [ES] user-defined tick labels are no longer allowed without tick mark positions ! [ES] autoticking now alters # of minor ticks only if the current value is anomalous * [LM] allow to use 'T' as date-time separator (as recommended by ISO8601) * [ES] new fonts from GNU gs-5.50 (including the euro symbol)

Interface

! [ES] re-designed "Create by formula"; any set type can be defined ! [ES] controls for justifications of strings cover all possibilities (vertical and horizontal alignments) ! [ES] combined point ops dialogs into one, "Window/Point explorer" * [ES] print all point data (was only x, y) during point tracking * [ES] (optional) set comments in set selectors * [ES] "File/Describe" merged with "File/Save as" * [ES] reading in block data no longer resets set column selectors * [ES] implemented the color sync option in the "set app." dialog * [EV] "-barebones" command line switch (switch all tool bars off) * [ES] annotated strings can be modified in the spreadsheet editor * [ES] in "File/Device setup", introduced options to sync page size of all devices and rescale plot on page size change

Drivers

* [LM] FrameMaker MIF driver added (rep. #590) * [LM] implemented SVG driver * [ES] PS Level 1/2 option in the EPS driver * [ES] now any font encoding is correctly represented in (E)PS output * [ES] added under/overlining to the E(PS) driver (rep. #756) * [ES] PS output made a bit more compact * [ES] under/overlining now works in PDF output * [ES] PDF driver setup options: 1.2/1.3 compatibility and compression level * [ES] use "thin" lines in X11 driver if the line width <= 1 pixel * [ES] list fonts, colors and other resources in the metafile driver * [ES] don't rotate output in EPS landscape mode * [ES] optionally set hardware resolution in PS output * [ES] in PS driver, option to select input tray: auto/manual/match page dimensions

Documentation/Info

* [AM] omit a few GUI-specific flags/help strings when compiling a GUI-less exec * [EV] Tutorials updated - added a regions section and updated the create by formula * [LM] added usage help for convcal * [HS] updated instructions for Motif-2.1 bug work-around (<Ctrl>+<left mouse button> = crash) in the FAQ * [ES] re-structured the FAQ * [ES] documented numeric operators and functions

Parser

* [ES] finally, introduced variables (usual and 1D arrays)... * [ES] as a result of the above, removed scratch arrays (A, B, C, D) ! [DP] SWAP selectset AND selectset * [ES] EXIT(iexpr) * [ES] enlarged parser buffer to 4K

Portability/Compilation

* [ES] new configure options (including rep. #757) * [ES] the GRACE_HOME dir is now set by `configure' as PREFIX/grace (rep. #758) * [ES] checks for proper versions and consistency of libs and includes * [AM/ES] checks for Motif/LessTif run-time clash * [ES] the grace_np Fortran wrapper is compiled independently of whether a F77 compiler has been found * [JH] VMS updates * [AM] OS/2 updates

Bug fixes

* [ES] "duplicate graph" caused memory corruption (rep. #752) * [ES] too long text strings (>255) crashed Grace (rep. #759) * [ES] parser errors in too long lines (>255), if processed from a RTI caused crash * [ES] using very long formulae (>~100) in the non-linear fit caused memory corruption * [ES] text strings were justified by the lower edge of the bounding box instead of the baseline (rep. #710) * [ES] "-" in PS output was squeezed (rep. #711) * [RW] empty src/buildinfo.h prevented further compilation (rep. #717) * [ES] fixed \m{} in the beginning of a string * [AM] fixed reading in files with DOS <cr> * [ES] graph overlay fixes (including rep. #734) * [ES] fixed spurious error message about non-monotonic bins when calculating histograms (happened sometimes due to a rounding error) * [ES] histogramming from command file crashed (rep. #736) * [KS] the lower error bar in BARDY and BARDYDY was shadowed by bar * [ES] rescaling did not follow mouse (rep. #715) * [JM] a workaround for strange behaviour of some versions of Motif resulting in several popup windows being too big (rep. #720) * [AH] on some platforms, "make install" moved files instead of copying (rep. #743) * [AM] feature extraction didn't update set lists (rep. #731) * [ES] fixed triangle symbols (now correctly centered) * [ES] font antialising was broken on X displays with 24 bits per pixel format of pixmaps * [EV] feature extraction/FFT was incorrectly determining if the set length was a power of 2 (unimportant if FFTW was used) * [ES] upon loading a project, set print file name automatically (rep. #641) * [ES] fixed a memory leak in set sort * [ES] fixed bugs in set and point operations with sets containing annotated strings (including rep. #767) * [ES] in "Window/Results...", the vertical scrollbar was missing when compiled with Motif-2.1 * [ES] closing (by means of window manager) a dialog with file selection box in it rendered the window unusable next time it was popped up (rep. #743)

5.0.5

Functionality

! [ES] long drawing paths (of polylines and polygons) with length exceeding a threshold are transformed to be shorter than the limit; the latter is adjustable in "Edit/Preferences" popup. This works around internal restrictions of some devices, notably old X11 and PS, causing visual data point drops (rep. #634, #651)

Interface

* [ES] the "Autoscale on read" option moved back from "Edit/Preferences" to "File/Read sets" ! [ES] added "Autoscale on load" for creating sets from block data * [ES] added possibility to select target set(s) produced from a block data (rep. #87)

Documentation/Info

* [ES] added docs on adding/replacing fonts * [AM] miscellaneous FAQ updates

Portability/Compilation

* [AM] OS/2 updates * [JH] VMS updates (including rep. #681) * [ES] fixed compilation on HP/UX-11.0 * [ES] compilation outside of the source tree is now possible

Bug fixes

* [HS] fixed text string copy/edit bug (rep. #661) * [LM/ES] under some conditions, project or parameter saving caused crash (rep. #678) * [ES] quotes were not escaped in several places (append/prepend strings of tick labels, avalues etc) * [LM] setting reference date worked incorrectly since did not ignore current reference date * [ES] a Linux libc5/locale memory leak workaround (rep. #676) * [ES] a parser memory leak fixed * [ES] applied a patch to fix a nasty memory leak in the bundled T1lib * [ES] compiling GUI-less version failed (rep. #680) * [ES/HS] a workaround for bug in Motif-2.1 (<Ctrl>+<left mouse button> crashed) (rep. #685) * [OT/ES] fixed a floating point overflow, causing crashes on non-IEEE compliant FPU (rep. #689) * [AM/ES] problems with autoscale and log axis scales (rep. #325, #688) * [ES] killing set data erroneously set the "hidden" flag of the set on (rep. #691) * [ES] hidden sets were not saved (rep. #338)

5.0.4

Functionality

* [ES] nonl-fit: added region restrictions (rep. #251) * [ES] nonl-fit: added optional stat weights * [ES] print some basic statistics on the non-linear fit quality * [LM] implemented proper rounding for date/time axis formats * [ES] in PS output, issue an explicit page size selection call. This should allow to automatically choose between several input trays with different paper (for printers that have mutiple trays, of course)

Interface

* [ES] nonl-fit GUI reworked (including part of rep. #77)

Documentation/Info

* [AM] docs on building DL modules under OS/2

Parser

! [ES] extended variant of NONLFIT added: NONLFIT (selectset, vexpr, nexpr). The vexpr argument is an array of weights (of proper length)

Defaults

* [ES] the default template had the 2-digit year format enabled and the wrap year set to 1900, imitating older versions. Changed to off and 1950 respectively - should be more Y2K compliant :)

Portability/Compilation

* [ES] upgraded to T1lib-0.9.2 (fixing rep. #650) * [AM] OS/2 updates * [AM/ES] header files of the bundled Xbae and T1lib could in some cases clash with system-wide installations of respective library

Bug fixes

* [ES] strings (titles, legends,...) with only spaces in them caused crash (rep. #640) * [ES] enabling bounds for fit parameters in the non-linear fit popup crashed Grace (rep. #642) * [HF/ES] fixed bug in creating sets from block data (rep. #644) * [ES] "rawbits" PPM format was broken on big endian machines (rep. #645) * [ES] in the non-linear fit window, set was deselected after each step of fit (rep. #646) * [JB] WRITE setselect crashed * [ES] fixed crash when selecting "Show data-less" or "Show hidden" from set popup menus (rep. #652) * [LM] fixed a few bugs in the date/Julian day conversion * [LM] fixed "day of week" format that was broken for negative dates * [ES] use "%g" format in the point tracking window * [ES] selecting multiple graphs in "graph appearance" corrupted titles/ subtitles (#566) * [ES] couldn't parse data from multicolumn files containing non-numerics fields (rep. #655) * [ES] the user tick locations were saved with insufficient precision; now we use the same format as for storing data sets (rep. #298)

5.0.3

Functionality

! [ES] added "Fixed" graph type (rep. #556) * [ES] XYR set is back ! [ES] filled circles in XYR (rep. #206) * [ES] RtoL text advancing (not yet if using device fonts) ! [ES] extended options for line arrows - see "examples/arrows.agr" * [ES] automatic allocation of drawing objects; -maxlines and like command line options removed * [LM] RTI is processed also when running in gui-less or batch mode * [LM] millisecond resolution of timer ! [ES] added XYdXdXdYdY set type ! [ES] color & pattern of error bars can be selected independently from symbols ! [ES] arrow clipping of error bars (rep. #451) * [ES] no limit on number of columns in block and nxy data reads anymore (reps. #357, #596) * [ES] empty line works as set delimiter (#540) * [ES] added JPEG backend * [ES] added PNG backend ! [ES] any set type now may have an additional column of text strings associated; as a result, the XYSTRING set type removed * [ES] canvas page dimensions, as saved in the project file, set the page dimensions of all devices (which afterwards can be adjusted separately) * [LM] Grace now can parse input data in several date/time formats, including the recommended ISO8601 * [LM] reference date for date conversions is adjustable * [LM] 2-digit format for years for the current century is now optional and the wrap year is adjustable

Interface

* [ES] start in the command line interface (CLI) mode if the exec's name is "grace" ! [ES] dataset operations GUI re-worked * [ES] new canvas hotkeys for drawing objects (rep. #585) * [ES] changind axis scale to Log updates world min if necessary (rep. #625) ! [ES] all file selection box (FSB) dialogs replaced (fixing reps. #465, #549, #568) * [ES] "File/Working dir" removed, since this option is in any FSB now * [ES] "File/Read/Block data" removed - it's in the "File/Read/Sets" now * [EV] in the non-linear fit popup, allow to use expressions when giving bounds for the loaded function ! [ES] applying changes in "Set appearance" for multiple sets selected doesn't act on legends by default; this can be changed from the "Options" menu (part of rep. #588) * [ES] added "File/Revert to saved" * [ES] -nxy command line flag requires a filename immediately after it * [ES] use GXinvert rather than GXxor for rubberband lines by default ! [ES] "Evaluate expression" rewritten * [HS] invert selection in set/graph lists ! [ES] removed column width controls from SS editor; the spreadsheet columns may be resized with Shift+middle button ! [ES] option to select set string column from block data

Documentation/Info

* [AM/ES] many more buildinfo details are displayed by "-version" command line option * [LM] many User's Guide additions/updates * [AM/ES] added man page for grace/xmgrace/gracebat * [AM] added man page for grconvert * [AM] FAQ updates (including rep. #562) * [ES] FAQ updates (including reps. #580, #587) * [ES] "Help/Examples" menu tree

Parser

* [HS/ES] several logical constructs of mixed type arguments (vector and scalar) didn't work * [ES] added '?' and ':' to the operator precedence list; no conflicts in the parser anymore * [ES] no need for () around boolean expressions ! [ES] new color selection options: COLOR "name", COLOR (R, G, B) ! [ES] PRINT TO DEVICE added; PRINT TO "filename" doesn't actually print, only sets the output to a file (rep. #605) ! [LM] TIMER NUMBER - set timer's resolution ! [ES] G.S can be used anywhere ! [ES] allow to use SET[index] amd GRAPH[index] for set & graph selections ! [EV] REVERSE setselect APPEND setselect TO setselect SPLIT setselect number ! [ES] no setno.extremetype ! [ES] extremetype(vexpr) ! [ES] expressions can be used virtually in any statement (where only numbers were allowed formerly) ! [ES] checks for expression types ! [ES] JDAY function (has been never documented) renamed to DATE ! [ES] removed INDEX and LOAD SCRARRAY ! [ES] added MESH (a la linspace) ! [ES] several statements per line are allowed, separated by ';' * [ES] PAGE SIZE x y -> PAGE SIZE x, y ! [LM] REFERENCE DATE, DATE WRAP onoff, DATE WRAP YEAR iexpr ! [ES] strict array length checks

Defaults

! [LM] the default value for the timer has been reduced from 1000 to 200ms * [ES] sformat is saved in projects

Portability

* [ES] configure honours $CC; if available and not overridden, gcc will be picked * [ES] motif find fix * [ES] Irix-6.5 config fix (rep. #558) * [ES] compilation errors when using some weird old versions of make fixed (rep. #583) * [ES] configure checks for declarations of all math functions * [ES] removed the remnants of support for Motif-1.1 * [ES] PDF driver updated to use pdflib-2.01 * [ES] updated to Xbae-4.7 (which fixed rep. #560) * [ES] T1 font machinery updated to T1lib-0.9.1 * [ES] no need for GD lib (for raster drivers); a customized version is included * [AM] OS/2 updates * [JH] VMS updates

Bug fixes

* [MR] popping up PS GUI setup window caused crash (rep. #563) * [ES] set split was broken in 5.0.2 * [EV] frequency/period feature extraction fix (rep. #538) * [ES] in the PS driver, pattern fills were not opaque (rep. #567) * [ES] crosshairs were left as lines on canvas (rep. #571) * [ES] description length was limited to 2K (rep. #575) * [ES] setting negative offsets for PS driver was impossible via GUI (rep. #579) * [ES] antialiased (default) text strings were invisible on mono X terminals (rep. #582) * [ES] join sets is working now (rep. #513) * [ES] error bar clipping wasn't enabled * [ES] error bars were drawn above symbols * [ES] settings from "Ellipse props..." were ignored * [ES] Bitmapped strings with no AA were broken in the PDF output * [ES] non-POSIX locales caused invalid PS output in rare cases * [LM] detect cases of accesses beyond array bounds of drawing objects * [ES] problems with operations with sets of different lengths (rep. #227) resolved * [HS] "Start load at" of the regression window was ignored * [ES] non-linear fit didn't work in batch mode for any but S0 set * [ES] fixed crashes with log axes (rep. #282, #525) * [AM/ES] fixed crashes when major tick spacing was equal to 0 (rep. #591) * [AM] the default filename of hardcopy output was truncated at first period (rep. #593) * [LM] several bugs in date formats fixed * [ES] locator properties didn't work; changing the locator format caused chaotic behavior (rep. #621) * [ES] patterned fills of ellipses gave segmentation fault (rep. #616). This was a GD library's bug, in fact

Misc

* [ES] removed GD and GIF backends (the latter due to patent issues) * [LM] an auxiliary utility added (convcal) to convert between "usual" and julian day date formats. This obsoletes the former greg2jul.c and jul2greg.c utilities.

5.0.2

Functionality

* [ES] graphs and sets are allocated dynamically; -maxgraph, -maxsets and -graphsets removed * [ES] XY chart is back * [ES] XYZ set type is back ! [ES] new chart set presentations: stacked line and scatter ! [ES] new options for charts (different bar border/fill colors and patterns etc) ! [ES] inter-bar gap for bar charts is adjustable (rep. #198) ! [ES] new set type: BarDY (bar charts with error bars) * [ES] precision can be used for XYZ sets (rep. #519) * [ES] new set auto-coloring is back * [ES] added 16 new patterns * [ES] added a few more line styles (rep. #305) ! [ES] legends can be displayed in reverse order (rep. #205) * [ES] legends are drawn by default * [ES] enhanced backward compatibility with Xmgr * [ES] in free mode, auto-re-scale all the plot objects (imitating Xmgr) (rep. #537) ! [ES] color map stuff (rep. #512) ! [AM] auto-scaling with range restrictions * [LM] added internals for RT (real time) input monitoring ! [LM] grace_np library now uses anonymous instead of named pipes ! [ES] write format is used for all dataset types ! [ES] FP line widths (rep. #483) ! [ES] locale, if available and set, is used for numeric labels * [ES] in case of crash, Grace tries to save the project anyway ! [ES] added an option to fill (or not to) the page background * [ES] Grace honors $GRACE_PRINT_CMD environment variable (rep. #522) * [ES] PS and PDF drivers optimized for speed and file size * [ES] added color/gray-scale and bbox:tight/page options to the EPS driver * [ES] added adjustable printer page offsets to the PS driver * [ES] warning issued on truncated printout (if display and hard-copy device aspect ratio don't coincide, for example)

Interface

! [ES] menu shuffles ! [ES] new graph selectors - with many operations available from the popup menu (right mouse button) ! [ES] new set selectors - with many operations available from the popup menu (right mouse button). Set selectors in the Data/* popups are of the old style yet * [ES] pattern selectors have pattern bitmaps displayed * [ES] line style selectors have dash bitmaps displayed * [ES] graph number for ops is automatically graph that has focus (rep. #104) ! [ES] (approximate) number of tick divisions for auto-ticking is set in "Axis properties" now instead of "Autoscale" ! [ES] a simplistic (by now) fonttool added * [ES] removed all set pick operations ! [ES] "Set appearance/Edit/*" now act on selected sets only * [HS] it's possible to refer to the index of blockdata as column 0 via command line (rep. #464) * [ES] removed -xy, -xydy etc command line flags; use -(set)type instead * [ES] -source stdin removed ! [ES] "-" and "stdin/stdout" can be used anywhere (rep. #486) * [ES] Block data window reworked ! [ES] canvas events redone * [ES] immediate feedback for drawing object reposition/editing is back (rep. #532) ! [ES] Activate/Edit/Create/Reactivate Set menu confusion eliminated (rep. #136) * [ES] print popup fixes ! [ES] in the X11 driver, put dots every 0.1 viewport (visible only if the page bg is not filled) ! [ES] <Ctrl+E> from text inputs fires up font tool * [ES] xwindow title has "Grace: " prefix prepended and, if project is modified, "(modified)" suffix ! [ES] removed "Clear all" and added "New" instead ! [ES] removed "Verify Pick sets operations" option, added "Don't ask questions" (same as -noask) ! [LM] added -dpipe command line switch for monitoring an already open file descriptor * [ES] removed -symcolorbug command line option * [ES] removed -dc/-nodc, -redraw/-noredraw, -GXxor/-GXinvert command line options * [ES] max error count upon reading in reduced from 50 to 5

Documentation/Info

* [ES] old HTML docs removed; a draft version of User's Guide added * [EV] Tutorials prepared. It's a recommended reading not only for newbies, especially taking into account the rudimentary state of the User's Guide * [AM] -version additions

Parser

* [ES] device commands (rep. #490) ! [ES] VXMAX and VYMAX - max viewport values of the current device ! [ES] TRUE/FALSE and ON/OFF are interchangeable ! [ES] NEW - start new project from scratch using default template; NEW FROM "filename" - start new project from scratch using filename template ! [ES] MAP COLOR color_id TO (R, G, B), "colorname" (0 <= R, G, B < 256) ! [ES] S$ - currently processed (in parser) SETNUM ! [ES] S_ - recently assigned SETNUM (e.g., after a data have been read in) ! [ES] SETNUM.ID - id of the set (i.e., S5.ID is 5) ! [ES] G$, G_ and GRAPHNO.ID - same as above, but for graphs

Defaults

* [ES] toolbar X resources ! [ES] use IsoLatin1 encoding if Default.enc is not found * [ES] gracerc magic path ! [ES] gracerc re-read upon SIGHUP * [ES] templates (rep. #520)

Portability

* [LM] grace_np library now compiles and works correctly on OS/2 and Win32 (in addition to all Unices, of course). There is an unresolved problem with VMS, though * [ES] added configuration for use of lcc as compiler * [JH] VMS updates * [AM] OS/2 updates * [ES] grconvert works on Win32 * [ES] Win32 port should compile out of the box

Bug fixes

* [ES] configure issued wrong messages * [ES] drawing objects might not be drawn sometimes * [ES] fixed patterns #7, #14 and #15 * [ES] fixed rounding errors in clipping routines (in particular, rep. #476 and #504) * [EV] a feature extraction bug fixed * [ES] view/world coords in string edit (rep. #469) * [LM] input data line length restriction removed (rep. #260, #357, #443) * [ES] npipe "buffer overflow" fixed * [ES] npipe load bug fixed * [LM] linear regression on a two-point set was performed wrongly * [ES] spreadsheet fixes and clean-ups (rep. #203, #259, #409) * [ES] auto-scale fixes (rep. #510) * [LM] configure fixes * [LM] updated several explanation strings on example files with the new GUI layout * [LM] the correct stack depth was displayed only after cycling * [ES] regions and graph fixed points not drawn in hardcopy output anymore * [ES] if no set has a legend string defined, the empty legend box is not drawn (even when legends are enabled) * [ES] Disk/Pipe selector was broken (rep. #454) * [ES] Set appearance/Data/Load comments didn't update GUI settings for the currently selected set (rep. #474) * [ES] ignore non-printable characters in formulae (rep. #241) * [ES] working dir not initialized (rep. #470) * [ES] `make tests' failed if ran before `make install' (rep. #491) * [ES] incorrect postscript output of bar charts fixed (rep. #341, #410) * [ES] fixed crash if applying axis settings to all graphs (rep. #503) * [ES] warning popup on exit sometimes appeared even after no changes have been made (rep. #274) * [ES] auto-scale didn't work if specified from the command line together with some other arguments (rep. #385, #441) * [ES] File/Write/Sets didn't work for multiple set selection (rep. #394) * [ES] strange font size decrement (rep. #242) * [ES] crashes on SGI when accents are used in the legends (rep. #268) * [ES] Strings & Things : Default size is zero on HP (rep. #288) * [ES] sometimes in plots with multiple graphs, one couldn't get the x axis tick marks or labels to be displayed on any of the graphs except for graph 0 (rep. #339) * [LM] in applications linked against grace_np, a call to system() or like functions would abort execution (rep. #382) * [ES] Core dump in SetSelectedSet if optimized (rep. #366) * [ES] misc other bug fixes

Misc

* [ES] memory consumption reduced (typically, 0.5 MB less than that of 5.0.1 and about same as of Xmgr-4.1.2) * [ES] removed "Coalesce sets" (will be back in 5.0.3) * [ES] no input date/time formats (a smart input data filter is planned for 5.0.3). Please use Julian dates for a time being

5.0.1

Functionality

! [ES] added FORMAT_SCIENTIFIC, FORMAT_ENGINEERING ! [ES] polar plots (a work in progress - far from being completed, but definitely better than nothing :)) ! [ES] added tunable offsets for tick labels (in particular, rep. #467) ! [ES] added option of placing axis ticks at rounded positions (rep. #124) * [HS2] implemented axis label placement op (normal/opposite side) (rep. #463) * [HS2] changed tick and axis label offsets from (x,y) to (parallel/perpendicular) * [HS2] introduced tick label placement auto/spec (similar to axis label) ! [ES] fill rules for sets: winding/even-odd; not honored by raster formats ! [ES] smart colormap management: -install/-noinstall flags force a given behavior; default is to switch to the private colormap automatically as needed ! [ES] -rvideo now acts on all devices; XMgrace.reverseVideo removed from the list of X resources ! [ES] selecting devices by names instead of numbers; "-device" command line argument renamed to "-hdevice"; GR_HDEV not used anymore ! [ES] zero axes are back. Now, both "primary" and alternative axes can be "zero" ones ! [ES] PDF device options added: binary/ASCII output; misc fixes ! [ES] GIF device options added: transparent and interlaced output ! [ES] PS device options added: grayscale/color; Level2 toggle is back (in fact, nobody of developers has a Level 1 printer to really check it) * [ES] fixed bug when text strings might be typed wrong sometimes in the PS output * [ES] all drivers slightly rewritten ! [ES] added PNM (PBM/PGM/PPM) device (both ASCII and "rawbits" outputs) ! [ES] Courier font family added * [ES] added \f, \h, \v, \z, \m, \M and \d string controls. Load typeset.agr in the "examples" dir to get an idea ! [ES] in the batch language, in any statement with FONT NUMBER, the font selection can be done by fontname instead of the number: FONT "fontname" ! [ES] Grace can now use any number of user-defined fonts, both in addition and as a replacement for bundled ones (rep. #26)

Documentation/Info

* [HS] added a text (http://plasma-gate.weizmann.ac.il/Grace/y2k.html) on the Year 2000 problem (rep. #342) * [HS2] new extended FAQ written * [AM] version string includes GUI toolkit (Motif/Lesstif/None) * [AM] help screen updated * [ES] font docs (doc/fonts.html) updated

Portability

* [ES] configure should now be smarter about finding Motif (rep. #416) * [ES] added configuration file for Interix (aka OpenNT) (rep. #437) * [ES] SunOS4 build fixes * [AM] OS/2 updates

Bug fixes

* [AM] "Read/Block data" crash fixed (rep. #445) * [ES] Zooming now zooms exactly to the window specified by mouse (rep. #5) * [ES] "AutoT" doesn't alter graph min/max values (rep. #165) * [ES] killing sets in polar plots with parameters preserved caused crash (rep. #125) * [HS2] ellipses might be sometimes drawn incorrectly in X11 * [ES] a memory leak in "Edit String" fixed * [HS] leap year function corrected * [ES] XYString sets were not saved (rep. #452) * [ES] Disk/Pipe selector was broken (rep. #455) * [AM] fixed broken axis scaling when set min/max was +/- Inf * [EV] stack manipulation fixed (#417) * [AM] "-version" now outputs to stdout instead of stderr * [ES] misc small fixes

5.0.0 (since Xmgr-4.1.2):

Functionality

* [ES] T1 fonts are used for all devices using the T1lib library of Rainer Menzner. There should be no discrepancies anymore between characters displayed and printed (rep. #16) * [ES] routines of drawing layer rewritten from the scratch; Grace is now almost WYSIWYG, except patterns (rep. #184) * [EV] generic I/O filtering implemented (including rep. #240); see docs for details ! [ES] reciprocal axis scale implemented (rep. #33) * [EV] system-wide gracerc ($GRACE_HOME/gracerc) will be read at startup time, if exists ! [ES] overlined strings are possible (\o \O) (rep. #176). Doesn't work with device fonts yet ! [MM] extensions to regions including horizontal-inside, horizontal-outside, vertical-inside and vertical-outside ! [MM] Grace will use the FFTW library for Fourier transform if present on the system; see README.FFTW * [MM] negative indices in "Drop points" allowed (counting from the end of a set) * [EV] added a new feature to be extracted - the integral of each set ! [ES] "unit" and "const" added to the possible proctype's for modules. DEG (below) is an example what "unit" can be used for ! [ES] DEG and RAD are now meaningful. E.g., expressions like sin(90 deg) and sin(pi/2 rad) both are legitimate (and equivalent!) ("rad" can be omitted - it's there just for the sake of completeness) * [ES] metafile driver (not in final state) * [ES] PDF driver using the PDFlib of Thomas Merz; see README.PDF * [ES] GIF/GD driver using the GD library of Thomas Boutell (rep. #14); see README.GIF * [ES] logarithmic scales can have any base (rep. #370) * [ES] patterns and colors can be used simultaneously (rep. #291) * [ES] power tick label format changed to work in scientific format (rep. #361) * [ES] \B in composite strings will reset the font to the string's initial font (rep. #388) * [ES] PS/EPS driver rewritten from the scratch * [ES] X11 driver heavily rewritten

Interface

! [ES] removed "Plot/World scaling" popup ! [ES] re-designed axis props GUI popup (in particular, rep. #63, #313) * [EV] point ops popup fixes ! [ES] graph appearance props GUI popup ! [ES] removed "Viewport", "Frame", "Titles" and "Legends" popups. ! [ES] removed "Error bars" and "Edit legends" popups. ! [ES] re-designed set appearance props GUI popup (rep. #311, #369 should be fixed) * [EV] added expression evaluation to text input fields in all widgets * [EV] error window changed - only 1 window, not 1 window per error ! [EV] regression fits can be applied to specified interval and results are printed out in readable form * [EV] scrolled windows for explicitly requested expressions * [EV] canvas hotkeys added ! [ES] re-designed print setup GUI popup (problems in rep. #372, #412 should be fixed) * [ES] changing page size is possible for any device separately; the units can be "pix"els, "cm" or "in" (rep. #108, #211, #216, #405)

Project files

* [EV] background color saved * [MM] all regions, whether active or not, are saved to the file, so temporarily inactive regions don't get lost * [ES] page size is saved (rep. #312)

Parser

* [ES] cleaned grammar parser; instead of 350 shift/reduce and 231 reduce/reduce conflicts - > 61 & 0 respectively * [ES] MAX() and MIN() renamed to MAXOF() and MINOF() ! [ES] removed DX, DY, IMAGE ! [ES] removed GRAPHNO *BAR SIZE NUMBER ! [ES] removed SETNUM = SETNUM etc ! [ES] removed CMAP, STATUS, STATUSBAR, TOOLBAR, LOCATORBAR, LOCATOR

Defaults

! [ES] default page layout changed from free to fixed * [ES] \+ increases font size sqrt(sqrt(2)) times; \- respectively, decreases. Sub/superscripts are 1/sqrt(2) of the preceeding font size

Portability

* [AM] implemented dynamic modules for OS/2 * [EV] popen() for VMS * [JH/RN] VMS fixes * [AM] OS/2 updates

Misc

! [ES] removed (broke) xwd image loading ! [ES] removed all app-defaults not specific to GUI ! [ES] \x and \b control sequences removed

Bug fixes

* [ES] "-mono" command line flag now works * [EV] "-wd" command line flag fixed * [EV] trying to create a new set preceded with soft kill of all sets caused crash (rep. #367) * [MM] FFT fixes * [MM] when regions were read in from a saved file, they ended up linked to all graphs * [MM] in saved projects, REGNUM TRUE was used instead of REGNUM ON * [EV] several sets can be linked to the same file as in xny data (rep. #269) * [ES] crash on mono X servers fixed (rep. #285) * [ES] canvas refresh (rep. #217, #271 #317, #333, #375) * [ES] axis labels were not displayed if `display tick marks' wasn't selected (rep. #3) * [ES] coordinates of legend frame now corresponds to the left upper corner of the frame (rep. #31) * [ES] ticklabel format was reset by autoscale (rep. #119, #144) * [ES] bounding box of EPS was calculated only approximately (rep. #123, #145) * [ES] legend frame didn't account for sub/superscripts (rep. #189) * [ES] extraneous logarithmic tick marks were drawn in some cases (rep. #193) * [ES] accentuated titles weren't centered correctly (rep. #195) * [ES] switch to log scale with an axis containing zero might cause error messages infinitely looped (rep. #210) * [ES] filling of legend frame didn't work unless one turned the frame on (rep. #215) * [ES] the axes tick marks were behind set curves (rep. #224) * [ES] popup positioning left up to WM for all windows (rep. #273) * [ES] if graph contained too many ticks, autoscale was applied instead of tick position recalculation (rep. #275) * [EV] in "Point ops", 'Delete' ignored set number (rep. #293) * [ES] once activated, legends fill frame couldn't be switched off from within GUI (rep. #326) * [CM] adding legends to plots with number of data sets exceeding the default maximum caused a crash (rep. #344) * [ES] arranging or rearranging graphs by means of the "arrange" dialog reset previously set tick properties to defaults (rep. #356) * [ES] user tick labels w/subscripts did not show up in PS output (rep. #383) * [ES] FFT command didn't work correctly in parser (rep. #398) * [HS] command line parsing was wrong in several places (rep. #400) * [ES] misc. small fixes (including rep. #289, #406, #287) Legend: [EV] - Ed Vigmond <vigmonde(at-nospam)IGB.UMontreal.CA> [RN] - Rolf Niepraschk <niepraschk(at-nospam)ChbRB.berlin.ptb.de> [HS] - Henrik Seidel <henrik.seidel(at-nospam)gmx.de> [JH] - John Hasstedt <John.Hasstedt(at-nospam)sunysb.edu> [AM] - Alexander Mai <st002279(at-nospam)hrzpub.tu-darmstadt.de> [CM] - Charles Myers <myers(at-nospam)oicinc.com> [MM] - Marcus H. Mendenhall <marcus.h.mendenhall(at-nospam)vanderbilt.edu> [HS2] - Heiko R. Selber <selber(at-nospam)fhi-berlin.mpg.de> [LM] - Luc Maisonobe [MR] - Mark Rintoul <rintoul(at-nospam)cs.sandia.gov> [HF] - Harald Freyer <hf(at-nospam)nike.cup.uni-muenchen.de> [JB] - Jesko Brudermann <jbruder(at-nospam)gwdg.de> [OT] - Ovidiu Toader <ovidiut(at-nospam)ostrich.physics.utoronto.ca> [RW] - Robin Williams <Robin.Williams(at-nospam)astro.cf.ac.uk> [JM] - John McKitterick <jbmck(at-nospam)batc.allied.com> [AH] - A. Stewart Hopkins <ahopkins(at-nospam)mail.arc.nasa.gov> [KS] - Keith Stribley <keith(at-nospam)stribley.dabsol.co.uk> [DP] - Donald A. Peterson <donald(at-nospam)nd.edu> [WB] - Wolfgang Braun <braun(at-nospam)pdi-berlin.de> [JSB] - J. Scott Berg <jsberg(at-nospam)bnl.gov> [AC] - Alber Chin <china(at-nospam)thewrittenword.com> [GJ] - Gerd Jahn <Gerd.Jahn(at-nospam)dss.dornier.dasa.de> [UH] - Ulrich Harttig <harttigu(at-nospam)ucs.orst.edu> [DB] - Dominique Bissieres <dominique.bissieres(at-nospam)turbomeca.fr> [RL] - R. Lahaye <lahaye(at-nospam)postech.edu> [MD] - Matthias Dillier <Matthias.Dillier(at-nospam)snb.ch> [PM] - Petrie L M <lmp(at-nospam)ornl.gov> [JS] - Jan Schaumann <jschauma(at-nospam)netmeister.org> [SR] - Stewart Rounds <sarounds(at-nospam)usgs.gov> [PB] - Peter Breitenlohner <peb(at-nospam)mppmu.mpg.de> [MO] - Marius Olechnovičius <img(at-nospam)mail.lt> [YZ] - Yura Zotov <yznews(at-nospam)hotbox.ru> [TO] - Tobias Oed <tobias(at-nospam)physics.odu.edu> [IG] - Ionut Georgescu <ionutg(at-nospam)gmail.com> [HR] - Harvey Richardson [DC] - Dan Connelly <djconnel(at-nospam)ieee.org> [TK] - Thomas Klausner [SM] - Stan Maree <stan.maree(at-nospam)bbsrc.ac.uk> [ES] - Evgeny Stambulchik <evgeny(at-nospam)stambulchik.net> "!" means no documentation provided (yet)
grace-5.1.25/doc/gracebat.10000644000076500001440000000002112373764354015040 0ustar fnevgenyusers.so man1/grace.1 grace-5.1.25/doc/7.1.2.agr0000644000076500001440000003272606671062261014357 0ustar fnevgenyusers# Grace project file # @version 50002 @page size 600 600 @page scroll 5% @page inout 5% @link page off @map font 0 to "Times-Roman" , "Times-Roman" @map font 1 to "Times-Italic" , "Times-Italic" @map font 2 to "Times-Bold" , "Times-Bold" @map font 3 to "Times-BoldItalic" , "Times-BoldItalic" @map font 4 to "Helvetica" , "Helvetica" @map font 5 to "Helvetica-Oblique" , "Helvetica-Oblique" @map font 6 to "Helvetica-Bold" , "Helvetica-Bold" @map font 7 to "Helvetica-BoldOblique" , "Helvetica-BoldOblique" @map font 8 to "Courier" , "Courier" @map font 9 to "Courier-Oblique" , "Courier-Oblique" @map font 10 to "Courier-Bold" , "Courier-Bold" @map font 11 to "Courier-BoldOblique" , "Courier-BoldOblique" @map font 12 to "Symbol" , "Symbol" @map font 13 to "ZapfDingbats" , "ZapfDingbats" @default linewidth 1 @default linestyle 1 @default color 1 @default pattern 1 @default font 0 @default char size 1.000000 @default symbol size 1.000000 @background color 0 @timestamp off @timestamp 0.03, 0.03 @timestamp color 1 @timestamp rot 0 @timestamp font 0 @timestamp char size 1.000000 @timestamp def "Fri Oct 23 18:25:23 1998" @r0 type above @r0 linestyle 1 @r0 linewidth 1 @r0 color 1 @r0 line 0, 0, 0, 0 @r1 type above @r1 linestyle 1 @r1 linewidth 1 @r1 color 1 @r1 line 0, 0, 0, 0 @r2 type above @r2 linestyle 1 @r2 linewidth 1 @r2 color 1 @r2 line 0, 0, 0, 0 @r3 type above @r3 linestyle 1 @r3 linewidth 1 @r3 color 1 @r3 line 0, 0, 0, 0 @r4 type above @r4 linestyle 1 @r4 linewidth 1 @r4 color 1 @r4 line 0, 0, 0, 0 @g0 on @g0 hidden false @g0 type XY @g0 fixedpoint off @g0 fixedpoint type 0 @g0 fixedpoint xy 0.000000, 0.000000 @g0 fixedpoint format general general @g0 fixedpoint prec 6, 6 @with g0 @ world xmin 0 @ world xmax 20 @ world ymin -50 @ world ymax 50 @ stack world 0, 20, -20, 50 @ stack world 0, 20, -20, 50 @ view xmin 0.150000 @ view xmax 0.850000 @ view ymin 0.150000 @ view ymax 0.850000 @ title "" @ title font 0 @ title size 1.500000 @ title color 1 @ subtitle "" @ subtitle font 0 @ subtitle size 1.000000 @ subtitle color 1 @ xaxes scale Normal @ yaxes scale Normal @ xaxes invert off @ yaxes invert off @ xaxis on @ xaxis type zero false @ xaxis offset 0.000000 , 0.000000 @ xaxis bar on @ xaxis bar color 1 @ xaxis bar linestyle 1 @ xaxis bar linewidth 1 @ xaxis label "" @ xaxis label layout para @ xaxis label place auto @ xaxis label char size 1.000000 @ xaxis label font 0 @ xaxis label color 1 @ xaxis label op bottom @ xaxis tick on @ xaxis tick major 5 @ xaxis tick minor ticks 1 @ xaxis tick default 6 @ xaxis tick place rounded true @ xaxis tick in @ xaxis tick major size 1.000000 @ xaxis tick major color 1 @ xaxis tick major linewidth 1 @ xaxis tick major linestyle 1 @ xaxis tick major grid off @ xaxis tick minor color 1 @ xaxis tick minor linewidth 1 @ xaxis tick minor linestyle 1 @ xaxis tick minor grid off @ xaxis tick minor size 0.500000 @ xaxis ticklabel on @ xaxis ticklabel prec 5 @ xaxis ticklabel format general @ xaxis ticklabel append "" @ xaxis ticklabel prepend "" @ xaxis ticklabel angle 0 @ xaxis ticklabel skip 0 @ xaxis ticklabel stagger 0 @ xaxis ticklabel op bottom @ xaxis ticklabel offset auto @ xaxis ticklabel offset 0.000000 , 0.010000 @ xaxis ticklabel sign normal @ xaxis ticklabel start type auto @ xaxis ticklabel start 0.000000 @ xaxis ticklabel stop type auto @ xaxis ticklabel stop 0.000000 @ xaxis ticklabel char size 1.000000 @ xaxis ticklabel font 0 @ xaxis ticklabel color 1 @ xaxis tick op both @ xaxis ticklabel type auto @ xaxis tick type auto @ yaxis on @ yaxis type zero false @ yaxis offset 0.000000 , 0.000000 @ yaxis bar on @ yaxis bar color 1 @ yaxis bar linestyle 1 @ yaxis bar linewidth 1 @ yaxis label "" @ yaxis label layout para @ yaxis label place auto @ yaxis label char size 1.000000 @ yaxis label font 0 @ yaxis label color 1 @ yaxis label op left @ yaxis tick on @ yaxis tick major 20 @ yaxis tick minor ticks 1 @ yaxis tick default 6 @ yaxis tick place rounded true @ yaxis tick in @ yaxis tick major size 1.000000 @ yaxis tick major color 1 @ yaxis tick major linewidth 1 @ yaxis tick major linestyle 1 @ yaxis tick major grid off @ yaxis tick minor color 1 @ yaxis tick minor linewidth 1 @ yaxis tick minor linestyle 1 @ yaxis tick minor grid off @ yaxis tick minor size 0.500000 @ yaxis ticklabel on @ yaxis ticklabel prec 5 @ yaxis ticklabel format general @ yaxis ticklabel append "" @ yaxis ticklabel prepend "" @ yaxis ticklabel angle 0 @ yaxis ticklabel skip 0 @ yaxis ticklabel stagger 0 @ yaxis ticklabel op left @ yaxis ticklabel offset auto @ yaxis ticklabel offset 0.000000 , 0.010000 @ yaxis ticklabel sign normal @ yaxis ticklabel start type auto @ yaxis ticklabel start 0.000000 @ yaxis ticklabel stop type auto @ yaxis ticklabel stop 0.000000 @ yaxis ticklabel char size 1.000000 @ yaxis ticklabel font 0 @ yaxis ticklabel color 1 @ yaxis tick op both @ yaxis ticklabel type auto @ yaxis tick type auto @ altxaxis off @ altyaxis off @ legend off @ legend loctype view @ legend x1 0.5 @ legend y1 0.8 @ legend box off @ legend box color 1 @ legend box pattern 1 @ legend box linewidth 1 @ legend box linestyle 1 @ legend box fill color 1 @ legend box fill pattern 0 @ legend font 0 @ legend char size 1.000000 @ legend color 1 @ legend length 4 @ legend vgap 1 @ legend hgap 1 @ frame type 0 @ frame linestyle 1 @ frame linewidth 1 @ frame color 1 @ frame pattern 1 @ frame background color 0 @ frame background pattern 0 @ s0 type xy @ s0 symbol 0 @ s0 symbol size 1.000000 @ s0 symbol color 1 @ s0 symbol pattern 1 @ s0 symbol fill color 1 @ s0 symbol fill pattern 0 @ s0 symbol linewidth 1 @ s0 symbol linestyle 1 @ s0 symbol char 65 @ s0 symbol char font 0 @ s0 symbol center false @ s0 symbol skip 0 @ s0 line type 1 @ s0 line linestyle 1 @ s0 line linewidth 1 @ s0 line color 1 @ s0 line pattern 1 @ s0 baseline type 0 @ s0 baseline off @ s0 dropline off @ s0 fill type 0 @ s0 fill rule 0 @ s0 fill color 1 @ s0 fill pattern 1 @ s0 avalue off @ s0 avalue type 2 @ s0 avalue char size 1.000000 @ s0 avalue font 0 @ s0 avalue color 1 @ s0 avalue rot 0 @ s0 avalue format general @ s0 avalue prec 3 @ s0 avalue prepend "" @ s0 avalue append "" @ s0 avalue offset 0.000000 , 0.000000 @ s0 errorbar off @ s0 errorbar type both @ s0 errorbar length 1.000000 @ s0 errorbar linewidth 1 @ s0 errorbar linestyle 1 @ s0 errorbar riser linewidth 1 @ s0 errorbar riser linestyle 1 @ s0 comment "X=x , Y=4-2*x" @ s0 legend "" @ s1 type xy @ s1 symbol 0 @ s1 symbol size 1.000000 @ s1 symbol color 2 @ s1 symbol pattern 1 @ s1 symbol fill color 2 @ s1 symbol fill pattern 0 @ s1 symbol linewidth 1 @ s1 symbol linestyle 1 @ s1 symbol char 65 @ s1 symbol char font 0 @ s1 symbol center false @ s1 symbol skip 0 @ s1 line type 1 @ s1 line linestyle 1 @ s1 line linewidth 1 @ s1 line color 2 @ s1 line pattern 1 @ s1 baseline type 0 @ s1 baseline off @ s1 dropline off @ s1 fill type 0 @ s1 fill rule 0 @ s1 fill color 1 @ s1 fill pattern 1 @ s1 avalue off @ s1 avalue type 2 @ s1 avalue char size 1.000000 @ s1 avalue font 0 @ s1 avalue color 1 @ s1 avalue rot 0 @ s1 avalue format general @ s1 avalue prec 3 @ s1 avalue prepend "" @ s1 avalue append "" @ s1 avalue offset 0.000000 , 0.000000 @ s1 errorbar off @ s1 errorbar type both @ s1 errorbar length 1.000000 @ s1 errorbar linewidth 1 @ s1 errorbar linestyle 1 @ s1 errorbar riser linewidth 1 @ s1 errorbar riser linestyle 1 @ s1 comment "X=x , Y=3*x" @ s1 legend "" @target S0 @type xy 0 4 0.202683 3.59463 0.405367 3.18927 0.60805 2.7839 0.810734 2.37853 1.01342 1.97317 1.2161 1.5678 1.41878 1.16243 1.62147 0.757066 1.82415 0.351699 2.02683 -0.0536679 2.22952 -0.459035 2.4322 -0.864402 2.63488 -1.26977 2.83757 -1.67514 3.04025 -2.0805 3.24293 -2.48587 3.44562 -2.89124 3.6483 -3.2966 3.85098 -3.70197 4.05367 -4.10734 4.25635 -4.5127 4.45903 -4.91807 4.66172 -5.32344 4.8644 -5.7288 5.06708 -6.13417 5.26977 -6.53954 5.47245 -6.9449 5.67514 -7.35027 5.87782 -7.75564 6.0805 -8.161 6.28319 -8.56637 6.48587 -8.97174 6.68855 -9.3771 6.89124 -9.78247 7.09392 -10.1878 7.2966 -10.5932 7.49929 -10.9986 7.70197 -11.4039 7.90465 -11.8093 8.10734 -12.2147 8.31002 -12.62 8.5127 -13.0254 8.71539 -13.4308 8.91807 -13.8361 9.12075 -14.2415 9.32344 -14.6469 9.52612 -15.0522 9.7288 -15.4576 9.93149 -15.863 10.1342 -16.2683 10.3369 -16.6737 10.5395 -17.0791 10.7422 -17.4844 10.9449 -17.8898 11.1476 -18.2952 11.3503 -18.7005 11.553 -19.1059 11.7556 -19.5113 11.9583 -19.9166 12.161 -20.322 12.3637 -20.7274 12.5664 -21.1327 & @target S1 @type xy 1.2 3.6 1.34957 4.0487 1.49913 4.4974 1.6487 4.9461 1.79827 5.3948 1.94783 5.8435 2.0974 6.2922 2.24697 6.7409 2.39653 7.1896 2.5461 7.6383 2.69567 8.087 2.84523 8.5357 2.9948 8.9844 3.14437 9.4331 3.29393 9.8818 3.4435 10.3305 3.59307 10.7792 3.74263 11.2279 3.8922 11.6766 4.04177 12.1253 4.19133 12.574 4.3409 13.0227 4.49047 13.4714 4.64003 13.9201 4.7896 14.3688 4.93917 14.8175 5.08873 15.2662 5.2383 15.7149 5.38787 16.1636 5.53743 16.6123 5.687 17.061 5.83657 17.5097 5.98613 17.9584 6.1357 18.4071 6.28527 18.8558 6.43483 19.3045 6.5844 19.7532 6.73397 20.2019 6.88353 20.6506 7.0331 21.0993 7.18267 21.548 7.33223 21.9967 7.4818 22.4454 7.63137 22.8941 7.78093 23.3428 7.9305 23.7915 8.08007 24.2402 8.22963 24.6889 8.3792 25.1376 8.52876 25.5863 8.67833 26.035 8.8279 26.4837 8.97746 26.9324 9.12703 27.3811 9.2766 27.8298 9.42616 28.2785 9.57573 28.7272 9.7253 29.1759 9.87486 29.6246 10.0244 30.0733 10.174 30.522 10.3236 30.9707 10.4731 31.4194 10.6227 31.8681 10.7723 32.3168 10.9218 32.7655 11.0714 33.2142 11.221 33.6629 11.3705 34.1116 11.5201 34.5603 11.6697 35.009 11.8192 35.4577 11.9688 35.9064 12.1184 36.3551 12.2679 36.8038 12.4175 37.2525 12.5671 37.7012 12.7166 38.1499 12.8662 38.5986 13.0158 39.0473 13.1653 39.496 13.3149 39.9447 13.4645 40.3934 13.614 40.8421 13.7636 41.2908 13.9132 41.7395 14.0627 42.1882 14.2123 42.6369 14.3619 43.0856 14.5114 43.5343 14.661 43.983 14.8106 44.4317 14.9601 44.8804 15.1097 45.3291 15.2593 45.7778 15.4088 46.2265 15.5584 46.6752 15.708 47.1239 & grace-5.1.25/doc/UsersGuide.sgml0000644000076500001440000047765312467751372016206 0ustar fnevgenyusers
Grace User's Guide (for Grace-5.1.25) by the Grace Team 15.02.2015 This document explains the usage of Grace, a WYSIWYG 2D plotting tool for numerical data. (A German translation of this document, made by Tobias Brinkert, is available here: .) Introduction

What is Grace?

Grace is a WYSIWYG tool to make two-dimensional plots of numerical data. It runs under various (if not all) flavors of Unix with X11 and M*tif (LessTif or Motif). It also runs under VMS, OS/2, and Windows (95/98/NT/2000/XP). Its capabilities are roughly similar to GUI-based programs like Sigmaplot or Microcal Origin plus script-based tools like Gnuplot or Genplot. Its strength lies in the fact that it combines the convenience of a graphical user interface with the power of a scripting language which enables it to do sophisticated calculations or perform automated tasks. Grace is derived from Xmgr (a.k.a. ACE/gr), originally written by Paul Turner. From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik. You can get the newest information about Grace and download the latest version at the . When its copyright was changed to GPL, the name was changed to Grace, which stands for ``GRaphing, Advanced Computation and Exploration of data'' or ``Grace Revamps ACE/gr''. The first version of Grace available is named 5.0.0, while the last public version of Xmgr has the version number 4.1.2. Paul still maintains and develops a non-public version of Xmgr for internal use. Copyright statement

Copyright (©) 1991-1995 Paul J Turner, Portland, OR Copyright (©) 1996-2014 Grace Development Team Maintained by Evgeny Stambulchik All Rights Reserved This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

For certain libraries required to build Grace (which are therefore even included in a suitable version) there may be different Copyright/License statements. Though their License may by chance match the one used for Grace, the Grace Copyright holders can not influence or change them.

Package | License @ cephes library | Free @ T1lib | LGPL @ Xbae | BSD-like @ Tab Widget | BSD-like @
Licenses

Installation guide

Installing from sources

Configuration

Note: If you change one of the --with-extra-incpath or --with-extra-ldpath options from one run of configure to another, remember to delete the config.cache file!!! Compilation Issue make

If something goes wrong, try to see if the problem has been described already in the Grace FAQ (in the doc directory). Testing make tests

This will give you a slide show demonstrating some nice features of Grace. Installation make install make links

The later (optional) step will make soft links from some files under the Grace home directory to the system-wide default locations (can be changed by the --prefix option during the configuration, see above). Binary installation

Getting pre-built packages Installation Running tests Alternative packaging schemes (RPM, ...)

Not written yet... Getting started

For a jump-in start, you can browse the demos ("Help/Examples" menu tree). These are ordinary Grace projects, so you can play with them and modify them. Also, read the .

O.k. Here's a VERY quick introduction: Start the GUI version: xmgrace (return). Select/check the output medium and canvas size in File/Device Setup. If needed, set the graph size ('Viewport' in Plot/Graph Appearance). Load your data with Data/Import/ASCII. 'Load as': 'Single set' for two-column ASCII data, 'Block data' for multi-column ASCII data. Adjust the scales, axis labels and tick marks in Plot/Axis properties. Acknowledge all changes with 'Apply'. Adjust lines, symbols, legends in Plot/Set appearance. Adjust titles, plot frame and legend display in Plot/Graph Appearance. Data can be manipulated in Data/Transformations. To shift a data set by 20 to the left, e.g., in 'Evaluate Expression' select the same set on the left and the right, and say Formula: y=y-20. As you'll probably notice, Grace can do MUCH more than that. Explore at your leisure. When you like your plot, select File/Print. That's it! General concepts

Project files

A project file contains all information necessary to restore a plot created by Grace, as well as some of preferences. Each plot is represented on a single page, but may have an unlimited number of graphs.You create a project file of your current graph with File/Save,Save as. Parameter files

A parameter file contains the detailed settings of your project. It can be used to transfer these settings to a different plot/project. You generate a parameter file with File/Save menu entry selected from the "Plot/Graph appearance popup". You can load the settings contained in a parameter file with File/Open. Input file formats

Grace understands several input files formats. The most basic one is ASCII text files containing space and comma separated columns of data. The data fields can be either numeric (Fortran 'd' and 'D' exponent markers are also supported) or alphanumeric (with or without quotes). Several calendar date formats are recognized automatically and you can specify your own reference for numeric date formats. Lines beginnig with "#" are ignored. Blank lines indicate new dataset. Grace also has a command language (see ), you can include commands in data files using lines having "@" as their first non-blank character, though this is not recommended. Depending on configuration, Grace can also read NetCDF files (see ). Graphs

A graph consists of (every element is optional): a graph frame, axes, a title and a subtitle, a number of sets and additional annotative objects (time stamp string, text strings, lines, boxes and ellipses). The graph type can be any of:

A dataset is a collection of points with x and y coordinates, up to four optional data values (which, depending on the set type, can be displayed as error bars or like) and one optional character string. Sets

A set is a way of representing datasets. It consists of a pointer to a dataset plus a collection of parameters describing the visual appearance of the data (like color, line dash pattern etc). The set type can be any of the following:

Set type | # of num. cols | Description @ XY | 2 | An X-Y scatter and/or line plot, plus (optionally) an annotated value @ XYDX | 3 | Same as XY, but with error bars (either one- or two-sided) along X axis @ XYDY | 3 | Same as XYDX, but error bars are along Y axis @ XYDXDX | 4 | Same as XYDX, but left and right error bars are defined separately @ XYDYDY | 4 | Same as XYDXDX, but error bars are along Y axis @ XYDXDY | 4 | Same as XY, but with X and Y error bars (either one- or two-sided) @ XYDXDXDYDY | 6 | Same as XYDXDY, but left/right and upper/lower error bars are defined separately @ BAR | 2 | Same as XY, but vertical bars are used instead of symbols @ BARDY | 3 | Same as BAR, but with error bars (either one- or two-sided) along Y axis @ BARDYDY | 4 | Same as BARDY, but lower and upper error bars are defined separately @ XYHILO | 5 | Hi/Low/Open/Close plot @ XYZ | 3 | Same as XY; makes no sense unless the annotated value is Z @ XYR | 3 | X, Y, Radius. Only allowed in Fixed graphs @ XYSIZE | 3 | Same as XY, but symbol size is variable @ XYCOLOR | 3 | X, Y, color index (of the symbol fill)@ XYCOLPAT | 4 | X, Y, color index, pattern index (currently used for Pie charts only) @ XYVMAP | 4 | Vector map @ XYBOXPLOT | 6 | Box plot (X, median, upper/lower limit, upper/lower whisker) @
Set types

Not all set types, however, can be plotted on any graph type. The following table summarizes it:

Set type | XY Graph | XY Chart | Fixed | Polar | Pie @ XY | + | + | + | + | + @ XYDX | + | - | + | - | - @ XYDY | + | + | + | - | - @ XYDXDX | + | - | + | - | - @ XYDYDY | + | + | + | - | - @ XYDXDY | + | - | + | - | - @ XYDXDXDYDY | + | - | + | - | - @ BAR | + | + | + | - | - @ BARDY | + | + | - | - | - @ BARDYDY | + | + | - | - | - @ XYHILO | + | - | - | - | - @ XYZ | + | - | + | + | - @ XYR | - | - | + | - | - @ XYSIZE | + | + | + | + | - @ XYCOLOR | + | + | + | + | + @ XYCOLPAT | - | - | - | - | + @ XYVMAP | + | - | + | - | - @ XYBOXPLOT | + | - | - | - | - @
Graph/Set type connection
Regions

Regions are sections of the graph defined by the interior or exterior of a polygon, or a half plane defined by a line. Regions are used to restrict data transformations to a geometric area occupied by region. Real Time Input

Real Time Input refers to the ability Grace has to be fed in real time by an external program. The Grace process spawned by the driver program is a full featured Grace process: the user can interact using the GUI at the same time the program sends data and commands. The process will adapt itself to the incoming data rate. Hotlinks

Hotlinks are sources containing varying data. Grace can be instructed a file or a pipe is a hotlink in which case it will provide specific commands to refresh the data on a mouse click (a later version will probably allow automatic refresh). Devices

Grace allows the user to choose between several output devices to produce its graphics. The current list of supported devices is: X11 PostScript (level 1 and level 2) EPS (encapsulated PostScript) Metafile (which is Grace format, used at the moment mostly for debugging purposes) MIF (Maker Interchange Format used by FrameMaker) SVG (Scalable Vector Graphics, a language for describing two-dimensional vector and mixed vector/raster graphics in XML) PDF (depends on extra libraries, see ) PNM (portable anymap file format) JPEG (depends on extra libraries, see ) PNG (depends on extra libraries, see )

Note that Grace no longer supports GIF due to the copyright policy of Unisys. Grace can also be instructed to launch conversion programs automatically based on file name. As an example you can produce MIF (FrameMaker Interchange Format) or Java applets using pstoedit, or almost any image format using the netpbm suite (see the ). Magic path

In many cases, when Grace needs to access a file given with a relative pathname, it searches for the file along the following path: ./pathname:./.grace/pathname:~/.grace/pathname:$GRACE_HOME/pathname Dynamic modules

Grace can access external functions present in either system or third-party shared libraries or modules specially compiled for use with it. The term dynamic refers to the possibility Grace has to open the library at run time to find the code of the external function, there is no need to recompile Grace itself (the functions already compiled in Grace are "statically linked"). Coordinate frames

There are two types of coordinates in Grace: the world coordinates and the viewport coordinates. Points of data sets are defined in the world coordinates. The viewport coordinates correspond to the image of the plot drawn on the canvas (or printed on, say, PS output page). The transformation converting the world coordinates into the viewport ones is determined by both the graph type and the axis scaling.

Actually, there is yet another level in the hierarchy of coordinates - the device coordinates. However, you (as a user of Grace) should not worry about the latter. The mapping between the viewport coordinates and the device coordinates is always set in such a way that the origin of the viewport corresponds to the left bottom corner of the device page, the smallest of the device dimensions corresponds to one unit in the viewport coordinates. Oh, and the most important thing about the viewport → device transformation is that it is homotetic, i.e. a square is guaranteed to remain a square, not a rectangle, a circle remains a circle (not an ellipse) etc.

Invocation

Operational mode

With respect to the user interface, there are three modes of operation that Grace can be invoked in. The full-featured GUI-based version is called xmgrace. A batch-printing version is called gracebat. A command-line interface mode is called grace. Usually, a single executable is called in all cases, with two of the three files being (symbolic) links to a "real" one. Command line options

-autoscale x|y|xy Override any parameter file settings -barebones Turn off all toolbars -batch batch_file Execute batch_file on start up (i.e., after all other options have been processed and the UI initialized) -block block_data Assume data file is block data -bxy x:y:etc. Form a set from the current block data set using the current set type from columns given in the argument -datehint iso|european|us|days|seconds|nohint Set the hint for dates analysis -dpipe descriptor Read data from descriptor (anonymous pipe) on startup -fixed width height Set canvas size fixed to width*height -free Use free page layout -graph graph_number Set the current graph number -graphtype xy|chart|fixed|polar|pie Set the type of the current graph -hardcopy No interactive session, just print and quit -hdevice hardcopy_device_name Set default hardcopy device -install Install private colormap -legend load Turn the graph legend on -log x|y|xy Set the axis scaling of the current graph to logarithmic -maxpath length Set the maximal drawing path length -mono Run Grace in monochrome mode (affects the display only) -netcdf file Assume data file is in netCDF format. This option is present only if the netCDF support was compiled in -netcdfxy X_var Y_var If -netcdf was used previously, read from the netCDF file X_var Y_var variables and create a set. If X_var name is "null" then load the index of Y to X. This option is present only if the netCDF support was compiled in -noask Assume the answer is yes to all requests - if the operation would overwrite a file, Grace will do so without prompting -noinstall Don't use private colormap -noprint In batch mode, do not print -nosafe Disable safe mode -nosigcatch Don't catch signals -npipe file Read data from named pipe on startup -nxy nxy_file Assume data file is in X Y1 Y2 Y3 ... format -param parameter_file Load parameters from parameter_file to the current graph -pexec parameter_string Interpret string as a parameter setting -pipe Read data from stdin on startup -printfile file Save print output to file -remove Remove data file after read -results results_file Write results of some data manipulations to results_file -rvideo Exchange the color indices for black and white -safe Run in the safe mode (default) - no file system modifications are allowd through the batch language -saveall save_file Save all graphs to save_file -seed seed_value Integer seed for random number generator -settype xy|xydx|... Set the type of the next data file -source disk|pipe Source type of next data file -timer delay Set allowed time slice for real time inputs to delay ms -timestamp Add timestamp to plot -version Show the program version -viewport xmin ymin xmax ymax Set the viewport for the current graph -wd directory Set the working directory -world xmin ymin xmax ymax Set the world coordinates for the current graph -usage|-help This message Customization

Environment variables

GRACE_HOME

Set the location of Grace. This will be where help files, auxiliary programs, and examples are located. If you are unable to find the location of this directory, contact your system administrator.

GRACE_PRINT_CMD

Print command. If the variable is defined but is an empty string, "Print to file" will be selected as default.

GRACE_EDITOR

The editor used for manual editing of dataset values.

GRACE_HELPVIEWER

The shell command to run an HTML viewer for on-line browsing of the help documents. Must include at least one instance of "%s" which will be replaced with the actual URL by Grace.

GRACE_FFTW_WISDOM_FILE and GRACE_FFTW_RAM_WISDOM

These flags control behavior of the FFTW planner (see for detailed info)

Init file

Upon start-up, Grace loads its init file, gracerc. The file is searched for in the magic path (see ); once found, the rest of the path is ignored. It's recommended that in the gracerc file, one doesn't use statements which are part of a project file - such defaults, if needed, should be set in the default template (see ). Default template

Whenever a new project is started, Grace loads the default template, templates/Default.agr. The file is searched for in the magic path (see ); once found, the rest of the path is ignored. It's recommended that in the default template, one doesn't use statements which are NOT part of a project file - such defaults, if needed, should be set in the gracerc (see ). X resources

The following Grace-specific X resource settings are supported: XMgrace.invertDraw Use GXinvert rather than GXxor for rubber-band lines. If the rubber-banding for zooms and lines, etc. doesn't appear on the canvas, set this resource to yes. XMgrace.allowDoubleClick When Yes, allow double clicks on the canvas to bring up various popups depending on the location of the pointer when the double click occurs. XMgrace.toolBar Enables button toolbar XMgrace.statusBar Enables status bar XMgrace.locatorBar Enables locator bar It is also possible to customize menus by assigning key accelerators to any item. You'll need to derive the item's X resource name from the respective menu label, which is easily done following these rules: All non-alphanumeric characters are skipped Start with lower case; each new word (if any) continues from the capital letter Add the item's type to the end - "Menu" for pulldown menus, "Button" for menu buttons. For example, in order to make Grace popup the Non-linear curve fitting by pressing Control+F, you would add the following two lines XMgrace*transformationsMenu.nonLinearCurveFittingButton.acceleratorText: Ctrl+F XMgrace*transformationsMenu.nonLinearCurveFittingButton.accelerator: Ctrl<Key>f to your .Xresources file (the file which is read when an X session starts; it could be .Xdefaults, .Xsession or some other file - ask your system administrator when in doubt).

Similarly, it may be desirable to alter default filename patterns of file selection dialogs. The recipe for the dialog's name is like for menu buttons outlined above, with "Button" being replaced with "FSB". E.g., to list all files in the "Open project" dialog ("File/Open..."), set the following resource: XMgrace*openProjectFSB.pattern: *

Guide to the graphical user interface
grace-5.1.25/doc/3.dat0000644000076500001440000000004306671062261014036 0ustar fnevgenyusers1 4 3 2 2 3 3 4 3 2 3 2 4 1 3 4 grace-5.1.25/doc/FAQ.sgml0000644000076500001440000014765311404714707014517 0ustar fnevgenyusers
Grace FAQ (for Grace-5.1.23) <author>by the Grace Team <date>12.06.2010 <abstract> This document contains Frequently Asked Questions (FAQ) about <bf>Grace</bf>, a WYSIWYG 2D plotting tool for scientific data. (A German translation of this document, made by Tobias Brinkert, is available here: <url name="Grace FAQ" url="http://www.semibyte.de/dokuwiki/informatik:linux:xmgrace:grace_faq">.) </abstract> <toc> <!-- **************************************** --> <sect>General Questions <p> <sect1>What is Grace? <p> Grace is a tool to make two-dimensional plots of numerical data. It runs under various (if not all) flavours of UNIX with X11 and M*tif. Its capabilities are roughly similar to GUI-based programs like Sigmaplot or Microcal Origin plus script-based tools like gnuplot or Genplot. Its strength lies in the fact that it combines the convenience of a graphical user interface with the power of a scripting language which enables it to do sophisticated calculations or perform automated tasks. Grace is derived from Xmgr (a.k.a. ACE/gr), originally written by Paul Turner. From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik. When its copyright was changed to GPL, the name was changed to Grace, which stands for ``GRaphing, Advanced Computation and Exploration of data'' or ``Grace Revamps ACE/gr''. The first version of Grace available is named 5.0.0, while the last public version of Xmgr has the version number 4.1.2. Paul still maintains and develops a non-public version of Xmgr for internal use. <sect1>Where can I get Grace? <p> You can get the newest information about Grace and download the latest version at the <url url="http://plasma-gate.weizmann.ac.il/Grace/" name="Grace home page">. You can fetch it from a mirror site as well. The list of mirror sites can be found at <url url="ftp://plasma-gate.weizmann.ac.il/pub/grace/MIRRORS">. <sect1>Where can I get the most recent information about Grace? <label id="homepage"> <p> Please refer to the <url name="official Grace Home Page" url="http://plasma-gate.weizmann.ac.il/Grace/">. There you can also find the latest version of this FAQ, links to the latest release and to mirror sites closer to you. <sect1>What is the difference between Xmgr and Grace? <p> Apart from the licensing, the main difference is that Grace is WYSIWYG (What You See Is What You Get). This was achieved through a major rewrite of all the mid-level drawing routines and the use of the device-independent Type 1 font rendering library T1lib for typesetting. For help with changing from Xmgr to Grace see section <tt>Xmgr to Grace migration guide</tt> in the User's Guide (question <ref id="manual" name="User's Guide">. There are currently several features of Xmgr which are not yet implemented in Grace (of course, alongside with a lot of new stuff not found in Xmgr). A full compatibility is desirable except for ``bad'' features of Xmgr. Among the Xmgr features not (yet) implemented in Grace are: <itemize> <item>X-Y graph flip <item>Horizontal and vertical lines as symbols <item>Smith plots </itemize> <sect1>Why did you change the name? <p> When the licensing was changed to GPL, Paul wanted to keep the name for his non-public version of Xmgr, so we chose a new name. <sect1>Is Grace free? <p> Yes. Grace is free in terms of the GNU General Public License (GPL) (see the file <tt>LICENSE</tt> which comes with Grace or the <url url="http://www.gnu.org" name="GNU Home Page"> for details). <sect1>Who wrote Grace? <p> The sources of Grace still contain a significant amount of code from Xmgr by Paul Turner. For a list of those who contributed to Grace since then, see the file <tt>CHANGES</tt> in the Grace distribution. <p> Some integral parts of Grace are borrowed from other packages, namely libraries which are also available as stand-alone distributions. In alphabetical order: <itemize> <item> <url url="http://www.moshier.net/" name="Cephes math library"> <item> <url url="http://metalab.unc.edu/pub/Linux/libs/graphics/" name="T1lib"> <item> <url url="http://www.lesstif.org/Xbae.html" name="Xbae"> </itemize> <sect1>Is there a Postscript|LaTeX|HTML|SGML version of this document? <p> Yes. It is written in SGML which means that all the above versions can easily be created using <tt>sgml-tools</tt> (see their <url name="home page" url="http://www.sgmltools.org/">). At the Grace home page (see question <ref id="homepage" name="Home Page">), all these versions are available. <!-- **************************************** --> <sect>Getting Help <p> <sect1>Are there any books about Grace? <p> As of now, Grace is a purely virtual creature living in the net, i.e. there is no printed literature. All relevant docs are currently bundled with Grace. See questions <ref id="homepage" name="Home Page"> and <ref id="manual" name="User's Guide"> for details. You can print your own copy of the FAQ, the User's Guide and the Tutorial by converting the DVI files to PostScript output. <sect1>Is there a User's Guide available for Grace? <label id="manual"> <p> Yes. It is part of the Grace distribution and usually is located in <tt>$GRACE_HOME/doc/</tt>. There are several versions: the SGML source and HTML, LaTeX, DVI and PS derived from it. You can read the HTML version from a running Grace session by clicking on <tt>"Help/User Guide"</tt>. You need a web browser to read the HTML version (see also question <ref id="environment" name="Environment Variables">). You can always download the newest version from the Grace homepage (see question <ref id="homepage" name="Home Page">). The User's Guide is not quite complete, yet. <sect1>Is there a Tutorial available for Grace? <label id="tutorial"> <p> Yes. There are several tutorials which give detailed step-by-step information how to achieve various tasks. They are also part of the Grace distribution. You can find them in <tt>$GRACE_HOME/doc/</tt>. There are tutorials about creating a simple plot, batch plotting, fitting curves, transformations (graphical - simple ones, interpolation, feature extraction, using the command line), using pipes, overlaying graphs, hot links. <sect1>Where do I get support for Grace? <label id="support"> <p> You have the following options: <itemize> <item>There is a User's Guide (see question <ref id="manual" name="User's Guide">) which came with Grace on your computer. It is usually located in <tt>$GRACE_HOME/doc/</tt> along with other files which may contain useful help for your problem. If you downloaded the sources, there are even more files in the main directory of the source tree. <item>Have a look at the Grace home page (question <ref id="homepage" name="Home Page">). <item>On the Grace forums (see question <ref id="forums" name="Forums"> for details) you can easily get in contact with users and developers of Grace. However be aware that people here are trying to help in their spare time - so you can't always expect quick responses. </itemize> <sect1>Is there a newsgroup devoted to Grace? <p> No, there isn't. We feel that a bulletin board (see question <ref id="forums" name="Forums">) is more appropriate to discuss the topics related to Grace. <sect1>Is there a mailing list for Grace? <p> There used to be a few, but now they are replaced with bulletin-board-style forums (see question <ref id="forums" name="Forums">). The <url name="mailing list archives" url="http://plasma-gate.weizmann.ac.il/Grace/maillists/grace/"> are still available for browsing. <sect1>Is there a forum for Grace? <label id="forums"> <p> Yes. Just follow this link: <url name="forums" url="http://plasma-gate.weizmann.ac.il/Grace/phpbb/">. It has its own FAQ. <!-- **************************************** --> <sect>Providing Help: Finding and Reporting Bugs <p> <sect1>I think I found a bug in Grace! How do I report it? <label id="bugreport"> <p> <descrip> <tag>First</tag> Make sure that what you found really is a bug. <tag>Second</tag> Try to make sure that it is a bug in Grace, and that the failure is not caused by another piece of software. <tag>Third</tag> Make sure you are running the latest official release of Grace. The development of Grace is rather fast, so your bug might already be fixed. <tag>Fourth</tag> Try to find out if the bug is already known (see question <ref id="w3todo" name="Known Bugs">). <tag>Fifth</tag> OK: You <em>have</em> found a new bug. Use <bf>w3todo</bf> (question <ref id="w3todo" name="Known Bugs">) to report it. Follow the instructions on the page and try to be as precise as possible. It won't be of much help if you write ``The program crashes.'' Try to find a simple reproducible case. Mention the version of Grace and where you got the build and the operating system you use. You should submit the system info as provided by ``uname -a'' (if this utility exists, of course) and the output of ``xmgrace -version''. Often the problem is related to some specific data set. Please try hard on reducing this to the minimum which is sufficient of reproducing the bug. If it's only a few lines of data please submit it together with the other details. Once you submit the bug report, it will be automatically relayed to the mailing list. You will usually be notified when the bug is fixed or if we need more information, so please don't forget to give your correct e-mail address. </descrip> <sect1>Is there a list of known bugs? <label id="w3todo"> <p> Yes. You can search and browse the database of known bugs in Grace at the bug report facility <url name="w3todo" url="http://plasma-gate.weizmann.ac.il/w3todo/index.phtml"> or using the <tt>"Help/Comments"</tt> menu from within Grace. The database also keeps track of the status of the bug (<tt>Confirmed, Working on, Testing, Fixed, Closed,</tt> etc.). This is also the place to submit bug reports and wishes. <p> Some bugs and fixes may not appear in w3todo, but are covered on the <ref id="forums" name="forums">. <sect1>The bug report #xxx is marked as "Fixed" in the w3todo, but I checked the last version of Grace and the bug is still there! <p> The term "fixed" means the bug is fixed in the current <it>development</it> version, and the next <it>public</it> version will have the fix in it. Reports with fixes incorporated in an existing public version are marked as "Closed". <sect1>The bug report #xxx I reported is marked as "Ignored" in the w3todo and I even got no reply?! <p> You must have missed something very obvious. Check out how to properly submit a bug report in this document. Most probably your report was incomplete or just redundant to an existing entry. It's worth checking the log file of the bug report (the "View log" button at the bottom of the report viewing page). <sect1>I have got an idea! How do I report a wish? <p> You can submit wishes and suggestions just the way you would submit bug reports (see question <ref id="w3todo" name="Known Bugs">). Suggestions for improvement are generally very welcome. It may be possible, however, that the developers are busy or that your wish is rejected for some good reason, so it may be necessary to persuade (better convince) them to get at it. <sect1>I want to help! How can I contribute to Grace? <p> Fine! There are always things to do. If you are a C programmer, you can almost certainly find something useful to do. Just ask on the forums. The same applies if you are a technical writer. The documentation will certainly need to be updated, corrected or completed. Every small contribution is appreciated! Make Grace known to your friends and colleagues. The more users Grace has, the faster it will be improved. <sect1>How do I submit patches/contributions? <p> Prepare diffs against the most recent version. Use either unified (-u) or context (-c) diff format. Specify exactly against which version the diff is supposed to work. Finally send them to <url url="mailto:fnevgeny at weizmann dot ac dot il"> In case you plan to help this way more than once you should join the <ref id="forums" name="forums">. <sect1>I like Grace! Should I donate anything to its authors? <p> No need to. But if you feel like making a donation, choose any charity organization you like. You wanted to give them some money, anyway, right? ;-) <!-- **************************************** --> <sect>Installation <p> <sect1>How do I install Grace? <label id="install"> <p> You have the choice: either you compile the sources yourself or you download precompiled binaries (we strongly suggest you take the first route). You can get both from the <url url="http://plasma-gate.weizmann.ac.il/Grace/" name="Grace Home Page">. Whether binaries for your platforms are available (see question <ref id="binaries" name="Binaries">) depends on whether one of the developers has access to the respective platform and has had time to do it. It is always a good idea to read the <tt>README</tt>s that accompany the downloading packages of Grace. <sect1>Can I compile Grace myself? <p> Yes! Actually, this is the preferred method of installation. After getting the sources (question <ref id="install" name="Installation">) and un<tt>gzip</tt>ping and un<tt>tar</tt>ing them (use e.g. <tt>gzip -dc grace-5.0.4.tar.gz | tar xvf -</tt>), proceed according to the relevant section of the <ref id="manual" name="User's Guide">, which covers the compilation process. <sect1>When I run `configure', it says the XXX package is not found, whereas I am certain it was installed on my system! <p> There are several possible reasons: <itemize> <item> You have only the run-time part installed (this especially concerns GNU/Linux users). However, you should have the relevant development package (C header files etc) installed, too. E.g., for the JPEG library to be recognized by `configure', <it>both</it> <tt>libjpeg62</tt> and <tt>libjpeg62-devel</tt> packages must be installed. </item> <item> The library and the header files don't match each other (they are from different versions). This usually happens on large Unix systems with a less than capable sysadmin... </item> <item> Either the library or the header files can't be found by the compiler. Use the <tt>--with-extra-ldpath</tt> and <tt>--with-extra-incpath</tt> configure options to provide the extra paths, respectively. </item> </itemize> <sect1>When I type './configure' I get: ``configure: error M*tif has not been found'' <p> Check whether M*tif (question <ref id="motif" name="M*tif">) is installed on your system. If it is, look at the file config.log: there is a line like this: <tt>configure:8900: checking for a Motif >= 1002 compatible API</tt> What comes directly after it? Could be a hint. Also, see the previous question. <sect1>What is Motif (LessTif)? <label id="motif"> <p> Throughout the Grace docs, saying "M*tif" we actually refer to the Motif <it>API</it>, defining a set of functions for building graphical user interfaces (GUI) via numerous widgets (buttons, labels, etc). Grace makes a heavy use of the M*tif API. There are several <it>implementations</it> of the interface. The original OSF Motif (see <url url="http://www.opengroup.org">) recently changed its license: on open-source platforms you may have a chance to use it for free, although it's not in general qualified as either a FreeSource or OpenSource product. There is, however, a free replacement for Motif called LessTif (see <url url="http://www.lesstif.org">). LessTif is intended to be a 100% source compatible replacement for Motif, but is still under development. For the purposes of Grace, try using the latest version of LessTif (at least 0.92.6 and above). The LessTif people usually receive many bug reports from the Grace developers, so you might hope that a few remaining bugs in LessTif will be fixed rather quickly. <sect1>`configure' stops telling it can't find "ar". <p> "ar" is the library archiver (the program used to create static libraries like libFoo.a). You should have it in your path. Under Solaris, for example, this can be found in /usr/ccs/bin. <sect1>Are there Grace binaries available? For which platforms? <label id="binaries"> <p> We do not officially support binary packages. When contributed by volunteers they're put in under the <url name="contrib" url="ftp://plasma-gate.weizmann.ac.il/pub/grace/contrib/"> area. Again, these are NOT supported (bug reports like "I can't install that RPM" will be silently ignored), but feel free using the Grace forums for relevant discussions. <sect1>Is there a Windows|OS/2|VMS port of Grace? <p> Yes, Grace runs on VMS. Just compile it there. As for Win32 (Windows 95/98/NT/2000/XP) and OS/2, there are ports for these platforms, though they are not "native", i.e. in order to run them, one needs an X server for the respective platform. Both OS/2 and Win32 ports may lack some of the functionality (notably, support for "direct"/native printing; probably you will have to use the Postscript output for printing). A port to OS/2 made by Alexander Mai can be found at <url url="http://www.tu-darmstadt.de/~st002279/os2/">. It requires the XFree86 libraries and an X Server (e.g. XFree86, Hob X11, Exceed, etc.). <sect1>Compilation with gcc fails on Solaris complaining about unresolved symbols. <p> If you get such a message at the linkage stage, telling about .LL794 (or similar) unresolved symbols, try compiling with native cc compiler instead (./configure --with-cc=cc). <!-- **************************************** --> <sect>Runtime Problems <p> <sect1>When I start Grace I get the message ``Can't find library libXXX.so'' or similar. <p> For certain tasks, Grace needs external libraries which are neither provided by Grace nor the operating system. You will need to install these libraries yourself. This applies to M*tif, PDF (see question <ref id="export" name="Output Devices">) and probably other libraries. If the message is exactly <tt>Can't find library libXm.so</tt> (usually this happens on GNU/Linux systems ...) then you don't have M*tif (the Xm libraries) installed (see question <ref id="motif" name="M*tif">), or the linker doesn't know where it is. In the first case, try downloading LessTif. In the second case, you have to tell your linker where it is (may be a platform-specific task). On GNU/Linux look at the file <tt>/etc/ld.so.conf</tt>. It contains pathnames of the directories where dynamic libraries are stored. Add (as root) your directory to this file and run <tt>ldconfig -v</tt>. Now the libraries should be in the list. If you're not root you may try to adjust the environment variable <tt>LD_LIBRARY_PATH</tt> to include the required pathname. For some versions of Motif, the ``soname'' (which identifies the version of the library and is stored somewhere in the library) on your computer doesn't match the soname of the library on the computer where your copy of Grace was compiled on. Then you should use a (semi)statically linked version or compile Grace on your computer. <sect1>I get errors like "X Error of failed request: BadValue (integer parameter out of range for operation)" <p> This means that Grace made an incorrect access to an X library. This is most probably not Grace's fault. Probably a not-yet-correctly-implemented LessTif function (see question <ref id="motif" name="M*tif">) caused this behaviour. If you use LessTif, try to get the latest version (see question <ref id="motif" name="M*tif">). If this error persists, report it as a bug (question <ref id="bugreport" name="Bug Reports">). <sect1>Grace crashes with "Oops Got SIGSEV" (on GNU/Linux) <p> Detect whether you are using a version linked against LessTif. "xmgrace -version" and "ldd xmgrace" are useful commands for this purpose. <p> If you are using LessTif, read the according FAQ <ref id="motif" name="M*tif"> else report it as a bug (<ref id="bugreport" name="Bug Reports">). <sect1>I run Grace and get the following error messages: "Warning: translation table syntax error: Unknown keysym name: osfPageLeft Warning: ... found while parsing '<Key>osfPageLeft:SWLeftPage()'" <p> Get the XKeySymDB file from the X11R6 distribution. Put it somewhere where you can access it and set the <tt>XKEYSYMDB</tt> environment variable to <tt>"/place/where/you/put/XKeysymDB"</tt>. See question <ref id="environment" name="Environment Variables"> on how to set environment variables. <sect1>I run Grace on a Solaris 2.5.1 box, and when I try to open a file, I can't read the names of the files (files section of the dialog) because Grace writes ALL the path of each file in the list and there is no horizontal scroll. <p> This is a known bug of Motif implementation on Solaris 2.5.1 (both Sparc and Intel hardware). Ask your vendor for a patch. <sect1>Grace can not find font database and initialize the T1 library <p> You have probably tried to run Grace without installing it, just after compilation. You got the following message : <tscreen><verb> scanFontDBase(): Font Database File not found T1_InitLib(): Fatal error scanning Font Database File --> Broken or incomplete installation - read the FAQ! </verb></tscreen> Grace uses either the <tt>GRACE_HOME</tt> environment variable or a compiled in default path to find the font database. If the variable is not set and you have not installed the database with <tt>make install</tt> it cannot find it. If you want to test Grace before installing it, you should set the environment variable to the distribution directory (the one where the file <tt>configure</tt> lies), this is what the <tt>dotest</tt> script does when you run <tt>make check</tt>. The easiest thing to do however is to install everything with <tt>make install</tt>. See question <ref id="environment" name="Environment Variables"> on how to set environment variables. If you get this message after installing a prebuilt package, then you have either forgotten to download the platform-independent part of the installation (named like grace-x.y.zz.common.tar.gz) or not set the <tt>GRACE_HOME</tt> environment variable, see a few lines above. <sect1>Pressing Ctrl and clicking with the left mouse button on the canvas or dialog panels make Grace crash. <p> This is a known bug in Motif-2.1. Most vendors have fixed it in their ports and/or have a patch ready, but not all, a notable exception being Motif libraries shipped by Red Hat for GNU/Linux for Intel hardware (versions 6.*). Grace has a workaround for this bug. In order to enable it, add the following lines to the X resources: <tscreen><code> XMgrace*XmDrawingArea.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmRowColumn.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmForm.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmFrame.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmScrolledWindow.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmFileSelectionBox.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmScale.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmCommand.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() XMgrace*XmMessageBox.translations: #override\n\ Ctrl <Btn1Down>: do_nothing() </code></tscreen> <sect1>The size of the canvas is huge. <p> It should be exactly the size of the hardcopy (A4/US letter). If not, check your X server settings (run `xdpyinfo' and watch the "dimensions:" line; check the numbers with a ruler). <sect1>Extended ASCII characters do not appear and/or appear as incorrect control characters in text input fields. <p> Are you using OpenMotif 2.2 (see Help/About)? It's known to behave wrongly with several locale settings. Try setting the shell variable LANG to a safe value, e.g. "C". The bug is known and fixed (<url url="http://bugs.motifzone.net/show_bug.cgi?id=1257" name="bug #1257">). Nag your vendor to apply the patch. <sect1>File selection dialogs are unusable. <p> It happens with OpenMotif 2.2 and some locale settings. See the previous entry for a remedy. <sect1>All of the text in the menus and dialog boxes are represented as squares. <p> This happens when a Unicode font is picked by the X/Motif and, for a reason, is treated as a wchar one (so you see one "square" glyph for every two chars). Try different font settings; for starters, run <tscreen><code> xmgrace -xrm "XMgrace*fontList:fixed" </code></tscreen> <sect1>On Fedora Core 4, all set selectors collapse into a single of even a zero-height line after a few operations. <p> FC4 uses a BETA version of OpenMotif 2.3 (see Help/About). The bug is known and fixed (<url url="http://bugs.motifzone.net/show_bug.cgi?id=1331" name="bug #1331">). Ask Fedora folks to apply the patch. <!-- **************************************** --> <sect>Basic Concepts <p> <sect1>What is a project? <p> A project is a file which contains all information necessary to restore a plot created by Grace. <sect1>What is a parameter file? <label id="parameter"> <p> A parameter file contains informations about settings. Every batch command of Grace is a valid line in a parameter file. A parameter file is essentially a project file without sets in a slightly different format (i.e. without leading <tt/@/s). <sect1>Which data formats does Grace recognize? <p> You can read in several kinds of files where data is arranged in columns separated by spaces or tabs. Lines beginning with "#" are ignored. <sect1>What is block data? <p> The option <tt>Read Block Data</tt> can be used to read in files where the values are organized in columns. You can interactively select the type of set to be created and which columns should be used. Refer to the User's Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>What is the NXY data type? <p> Strictly speaking, it's not a data format. Rather, you may want to use the relevant command line switch to read in a block data file and automatically assign the data columns to sets of the XY type so that the first column of the block data is used as X for all the sets and the rest of the data columns are assigned to Y's. Refer to the User's Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>What is the Julian Date?<label id="jdate"> <p> The Julian Date, not to be confused with the Julian calendar, is a format to represent the time in a single number. Julian Date 0 is a day way in the past, namely the 1st January 4713 before Christ (don't ask me why). The following days are numbered sequentially, each day starting at noon. This numbering scheme is in wide use, especially in astronomy, and is used for the internal representation of dates in Grace. Some further explanations are given on <url url="http://en.wikipedia.org/wiki/Julian_day" name="this page">. The <tt>convcal</tt> utility in <tt>$GRACE_HOME/auxiliary/</tt> can be used for about any to Julian date convertion. <!-- **************************************** --> <sect>Using Grace <p> <sect1>How do I start Grace? <p> There are three ways to invoke Grace. The full-featured GUI-based version is called <tt>xmgrace</tt>. A batch-printing version is called <tt>gracebat</tt> (see question <ref id="gracebat" name="Gracebat">). A command-line interface mode is called <tt>grace</tt>. All three of them are usually located in <tt>$GRACE_HOME/bin/</tt>. <sect1>Where is gracebat? How does batch printing work? <label id="gracebat"> <p> <tt>gracebat</tt> is simply a copy of Grace named <tt>gracebat</tt> or a symbolic link from <tt>gracebat</tt> to Grace. In the case of the symbolic link: <tt>ln -s xmgrace gracebat</tt> done wherever the Grace binary is located will do the trick (rehash or logout and login to make sure that <tt>gracebat</tt> shows up in your path). Executing <tt>gracebat</tt> with no command line parameters or data files will produce a hardcopy on the default printer. <sect1>How can I customize the default appearance of Grace? <label id="custom"> <p> There are several ways: the init files, X Resources, and environment (shell) variables. Please refer to the User's Guide (question <ref id="manual" name="User Guide">) for details. <sect1>Which environment variables does Grace use? <label id="environment"> <p> There are few, the most important being <tt>GRACE_HOME</tt>. It specifies the directory where the Grace files (fonts, docs, libs, ...) are stored. Default is <tt>/usr/local/grace</tt>. You can set environment variables using (e.g.): <tt>export GRACE_HOME="/usr/local/grace"</tt> in bash and sh or <tt>setenv GRACE_HOME "/usr/local/grace"</tt> in tcsh and csh. Please refer to the User's Guide (question <ref id="manual" name="User Guide">) for description of all relevant variables. <sect1>What command line options does Grace recognize? <p> Quite a few. You can display them with <tt>xmgrace -help</tt>. Or check for the man page xmgrace(1). However it may not always be up-to-date. <sect1>Can one change the colour selecton for the menu, locator, tool, and status bars, and all the popup menus? <p> As with any X application, use the "-bg <colorname> -fg <another_colorname>" command line flags. Or, define the relevant X resources: <tscreen><verb> XMgrace*foreground: ... XMgrace*background: ... </verb></tscreen> <sect1>What different kinds of sets can Grace plot? <p> The standard set is the regular (x,y) set, but there are others including error bars or descriptive strings. See the User's Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>I'd like to plot data against an axis on the right (top) and another data set in a different scale against an axis on the left (bottom) <p> Use two overlaying graphs, one with a scale on the left(bottom), the other one on the right (top). Thus you can achieve the desired effect, but you'll need to pay close attention to which graph is the 'current' graph. This is also how to display a second scale on the top (right) side of the graph. <sect1>How do I do polar plots? <p> The support for polar plots is currently being implemented, so you can expect polar plots to work soon. The polar coordinates can be selected from the <tt>"Plot/Graph Appearance"</tt> menu. Please refer to the User's Guide (question <ref id="manual" name="User Guide">) for details. <sect1>Can I use different fonts, symbols, font size, or sub/superscripts in Grace? <p> Yes, Grace has all these features. Wherever you can type a text in Grace, e.g. Axis labels, graph title, text from <tt/Plot->Drawing objects/, etc., you can use all those features within the same text. Please refer to the User Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>How do I produce special characters (Umlauts) with Grace? <p> If you asked this question, then you are probably familiar with the issue of keymap modifying in X. Once you configured the key mapping (with the use of <tt>xmodmap</tt>), you can enter the extended characters from the keyboard in any text input field. If, in addition, the appropriate for your language font encoding is anything but ISO Latin1 (used in most Western Europe countries), you'll have to tell Grace so. See the <ref id="fonts" name="next question">. <sect1>Can I use my own fonts and/or encodings? <label id="fonts"> <p> Yes. Starting with version 5.0.1, you can use your own fonts, in addition to the standard 14 fonts which include Times-Roman, Helvetica, Courier, Symbols and Zapf Dingbats and come with Grace, and as a replacement for the default fonts (for the purporse of localization). As well, an alternative encoding scheme can be specified. Please refer to the User's Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>At which precision is numerical data saved? How can I set the precision? <p> By default, numbers are saved with eight valid digits. To set your own precision, use the command <tt>DEFAULT SFORMAT formatstring</tt> in an init resource file (see question <ref id="custom" name="Customization">) with formatstring being in the <tt>printf(3)</tt> format. As well, you can set the precision on a per-project basis. When you save a project for the first time (or use "File/Save as"), there is a relevant "Data format" field in the popup you are presented with. <sect1>When I save a project and then re-open it, the Julian date values appear to be rounded to the nearest half day. <p> For time plots, the default precision may be insufficient. See the previous question on how to alter it. <sect1>How do I read in project files created by Xmgr? <p> From Xmgr-4.1.2 on, each project file starts with a string giving the version number by which is was saved. These files should cause no problems. You can modify older files by inserting a version line at the beginning. For example, <tt>@VERSION 40102</tt> stands for version 4.1.2. If you have no idea what version of Xmgr your file was created with, try some. In most cases, 40102 would do the trick. Also, make sure to read the "Xmgr to Grace migration" section of the User's Guide (question <ref id="manual" name="User's Guide">). <sect1>I can't open anymore project files saved with an old version of Xmgr. <p> In Xmgr-4.1.0, support for the binary file format (the former default one) was dropped. You must use the <tt>grconvert</tt> utility supplied with the Grace distribution in order to convert the files. This can easily be achieved defining an input filter like in the <tt>gracerc</tt> sample file which comes with Grace. <sect1>When I load a project saved with an earlier version of Xmgr (<4.0), symbols of all (some) sets are drawn in black. <p> Make sure you added a valid <tt>@VERSION versionid</tt> line to the beginning of the file. <sect1>How do I save disk space? Can I use compressed project files? <p> Yes. You can use your favorite compression program (e.g. `gzip') as input or output filter so that files on disk are automagically (de)compressed. Just add the lines <tt>DEFINE IFILTER "gzip -dc %s" PATTERN "*.gz"</tt> and <tt>DEFINE OFILTER "gzip - > %s" PATTERN "*.gz"</tt> into your personal grace init file. Then, everytime you specify a file name that ends with <tt>.gz</tt>, gzip is used as input and output filters. You can use this mechanism to do other things, e.g. reading and storing files into a database. <sect1>Can I import bitmap graphics into Grace? <p> Well, not yet. The import of images will be implemented in a future release. <sect1>Can I export Grace graphs to GIF|TIFF| PostScript|PDF etc? <label id="export"> <p> PostScript (for printing), EPS (encapsulated PostScript; for the inclusion of graphics into e.g. LaTeX documents), PNM (PBM/PGM/PPM), MIF (for inclusion in FrameMaker) and SVG (Scalable Vector Graphics) are implemented by default. Additionally, if some extra libraries are installed, listed in the User's Guide (question <ref id="manual" name="User's Guide">), the JPEG, PNG, and PDF backends will be built as well. You can get various other formats using netpbm and pstoedit. Bitmaps: Using the PNM device + the <tt>netpbm</tt> utils (available at e.g. <url url="ftp://ftp.x.org/contrib/utilities/"> one can get TIFF, GIF, G3, BMP, PCX,... (conversion can be done on the fly with appropriate filter definitions). Notice that the direct support of the GIF format is impossible due to the copyright policy of Unisys - it's not a technical problem. In fact it was supported in earlier versions but to avoid any legal problems this feature has been removed. One can use <url name="pstoedit" url="http://www.geocities.com/SiliconValley/Network/1958/pstoedit/"> to convert PS to a lot of other vector formats: MIF, CGM, xfig's, tgif's, Windoze and OS/2 metafiles,... even Java applets! <sect1>Where have all the region operations gone to? <p> Region operations have no meaning by themselves. Regions are restriction conditions applied to data set(s) which a transformation is performed on. For example, to kill data points in a region, use "Evaluate expression", select same source and dest set(s), leave the "formula" field empty, select your region in the "Restriction" menu, check "Negated". <sect1>How can I input data in date/time formats? <p> You can use several date/time formats in input data files. Make sure, however, that the time fields don't contain space separators inside, e.g. 1999-12-31-23:59:59.5 Also, you can use an external program to convert the data into the <ref id="jdate" name="Julian Date"> format, like the one (convcal) that is supplied with Grace. <sect1>How do I set the background color of a plot, outside of the graph frame? <p> This can be done using the <tt>"Plot/Plot appearance"</tt> popup. This changes the background of the entire canvas, not only the background of graphs. <sect1>How do I use more than 16 colors for objects/lines in Grace? <p> You may edit your Default.agr file in <tt>$GRACE_HOME/templates</tt>. Just add lines similar to <verb> @map color 2 to (255, 0, 0), "red" </verb> defining a RGB value and an according name for that color triplet. Please notice that altering colors 0 (white) and 1 (black) is strongly discouraged. <sect1>How can I use pipes with Grace? <p> A named pipe is a pseudo file to which one application writes data which another one reads from it. Applications like measurement programs can write data to a pipe and make it thus available to Grace which reads from the pipe. So Grace can serve as data displayer for otherwise non-graphical programs. Refer to the User's Guide (question <ref id="manual" name="User's Guide">) or the tutorials (question <ref id="tutorial" name="Tutorials">) for further information. One example for using pipes is included in the <tt>`make tests'</tt> slide show. <sect1>Is it possible to make Grace starting with a completely empty canvas, until the commands are loaded and executed? <p> Start Grace with -pexec "G0 OFF" or load a parameter file with the above command. <sect1>When I include an EPS file generated by Grace into my (La)TeX document, the graphic hides some of the surrounding text. <p> LaTeX does not do hard clipping of EPS files unless instructed to do so. Use \includegraphics*{filename} and NOT \includegraphics{filename} (package <tt>graphics</tt>) or \includegraphics[clip]{filename} (package <tt>graphicx</tt>). If using the <tt>epsf</tt> package, remember to include the \epsfclipon flag (but note that the <tt>epsf</tt> package is obsolet and buggy and not maintained by the LaTeX team and in general should not be used). The erasing comes about because Grace fills the background with the page size and not the bbox size. The background filling can be disabled from the "Plot/Plot appearance" popup. <sect1>Printing to my old PostScript printer produces an error. <p> By default, the PS driver uses Level 2 features, while your printer may not be PostScript Level 2 compliant. You can force the use of PS Level 1 only features in the PostScript device setup, though output may be not exactly as expected (there will be no pattern fills, for example). <sect1>How do I make a Grace image fit on a given paper size? <p> Select the correct paper size in the <tt>Device setup</tt> popup. You can also try the command psresize from the <url name="psutils package" url="http://www.dcs.ed.ac.uk/~ajcd/psutils/"> in order to resize a Postscript file generated by Grace. <sect1>My decimal tick labels are systematically of the form e.g. 0,5 instead of 0.5 (i.e. I get a comma instead of a dot). <p> You're using a localized version of OS. You have either LANG or LC_NUMERIC shell variables set, so Grace uses the locale setting to produce numeric labels. Set at least LC_NUMERIC to C or POSIX to disable this behaviour. Notice that there is nothing specific to Grace about locale. Either you want the localization or not. Setting by default LANG to anything but C/POSIX assumes you do. <sect1>Is it possible to use the dB (decibel) axis scale? <p> In "Plot/Axis props", enable logarithmic axis scaling, then go to the "Tick labels" tab of this dialog, find the "Axis transform" input field in the "Extra" frame, and enter there "10*log10(10*$t)" (w/o quotes, of course). <sect1>In "Data set properties", I don't see a possibility to view the more essential part of the mantissa; it's swallowed in the black triangle. <p> If you find some columns are too narrow to show all significant digits, you can drag the vertical rules using Shift+Button 2. <sect1>When making use of <it>-param</it> via the command line to set the parameters, the world scaling is not correctly set (it just auto-scales). <p> The <it>-param</it> flag and its argument should be placed on the command line <bf>after</bf> the data filenames. Alternatively, disable the autoscale with <it>-autoscale none</it> - but <bf>before</bf> your data is read in. <sect1>I am unable to find "Load & Evaluate" which I used quite a lot with Xmgr. <p> Use "Create new->By formula" from any set selector popup menu. <sect1>How can I specify a template other than the default one on the command line? In the scripts? <p> Template is just an empty (in the sense that there are no data sets) but otherwise a valid project file. So just put your favorite template's filename as the first argument on the command line. If your script creates several plots, use 'new from "filename"' to initialize a new project from the non-default template. <sect1>How can I save my 'preferences' options? <p> A part of them are saved with the project; most of the rest are available via command-line options and/or X resources. A more homogeneous approach will be implemented in a future version. <sect1>In an XY-plot with a huge number of points some regions become straight lines instead of the original curve. When I zoom in to the area the data becomes correctly drawn. <p> Enlarge "Max drawing path length" in Edit/Preferences. Also, consider whether you really need that huge number of points drawn connected by line? <!-- **************************************** --> <sect>Mathematics <p> <sect1>What algorithm is used for non-linear curve fitting? <p> It is the Levenberg-Marquardt algorithm, based on LMDIF from MINPACK, with some modifications. <!-- **************************************** --> <sect>Command Line Interface <label id="commands"> <p> <sect1>Which non-interactive batch commands does Grace know? <p> Lots. Almost every mouseclick in the GUI has an equivalent in the batch language. See the User's Guide (question <ref id="manual" name="User's Guide">) for details. <sect1>How can I do feature extraction non-interactively? <p> Currently not at all. This will be implemented in a later release. <sect1>How can I use non-linear fits in the batch mode? <p> Example - make a batch file with the following commands: <verb> fit formula "y = a0 + a1 * sin (a2 + x * pi / 180)" fit with 3 parameters fit prec 0.05 a0 = 1 a0 constraints on a0min = 0 a0max = 2 a1 = 1 a1 constraints off a2 = 1 a2 constraints off nonlfit (s0, 100) </verb> This assumes that your original curve is in set s0 and that you want to make 100 iterations. <tt>nonlfit()</tt> doesn't produce any plots by itself. It only <bf>fits</bf>. I.e., at this point, you can use the fitted values <tt>A0, A1, A2...</tt>: Plot a set, e.g.: <verb> s3 on s3 length s0.length s3.x = s0.x s3.y = a0 + a1 * sin (a2 + x * pi / 180) </verb> Use for another fit as the initial values, or just ECHO them (to <tt>stdout</tt>) with <tt>ECHO A0</tt>. <sect1>Is it possible to call the command "POINT expr, expr" with more than two values, as needed, for example, for points in XYDYDY sets? <p> No, but you can do something like this (given the set type was properly defined): <verb> S0 POINT expr, expr S0.Y1[S0.LENGTH - 1] = expr S0.Y2[S0.LENGTH - 1] = expr ... </verb> <!-- **************************************** --> <sect>Miscellaneous <p> <sect1>Does Grace have an UNDO function? <p> Not yet. Although it would be nice to have such a function, it is quite hard to implement. We can only ask you to be careful with certain actions and remember to <tt>save often and early (TM)</tt>. <sect1>Can Grace plot 3D graphs? <p> No. Not yet, I should say. Be patient. It may take quite a while to implement it, though. <sect1>Which features are planned for the future? <p> Among the many features planned to be introduced in the future are enhancing the spreadsheet-like frontend for dataset operations, contour plots, many-level undo/redo, image import and manipulations, a library for 2-way communication, ... Then 3D plots would come :-) <sect1>Are there things that Grace can't do? <p> Probably. If you have an idea for improvement, post it as a wish to the w3todo web page (see question <ref id="w3todo" name="Known Bugs">). <sect1>How should Grace be acknowledged when it is used to prepare a publication? <p> You are not required to, but you if wish, refer to the home page link (see <url url="http://plasma-gate.weizmann.ac.il/Grace/" name="Grace home page">). </article> <!-- End of FAQ.sgml --> �������������������������������������������������������������������������������������grace-5.1.25/doc/Makefile���������������������������������������������������������������������������0000644�0000765�0000144�00000004560�12467747537�014672� 0����������������������������������������������������������������������������������������������������ustar �fnevgeny������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������##################################################### # Makefile for documentation of Grace # ##################################################### # You should not change anything here. # ##################################################### TOP=.. include $(TOP)/Make.conf .SUFFIXES : .sgml .dvi .html .pdf .ps .tex # NB: the language and papersize options should be made `configure'able LANGUAGE = english PAPERSIZE = letter LINUXDOC = linuxdoc --language=$(LANGUAGE) --papersize=$(PAPERSIZE) SGML2HTML = $(LINUXDOC) --backend=html --split=0 --toc=2 SGML2LATEX = $(LINUXDOC) --backend=latex --output=tex SGML2DVI = $(LINUXDOC) --backend=latex --output=dvi SGML2PDF = $(LINUXDOC) --backend=latex --output=pdf DVI2PS = dvips -t $(PAPERSIZE) LATEX = latex PDFLATEX = pdflatex .sgml.html : $(SGML2HTML) $< .sgml.dvi : $(SGML2DVI) $< .sgml.pdf : $(SGML2PDF) $< .sgml.tex : $(SGML2LATEX) $< .tex.dvi : $(LATEX) $< $(LATEX) $< .dvi.ps : $(DVI2PS) $< -o $@ .tex.pdf : $(PDFLATEX) $< $(PDFLATEX) $< SGMLS = FAQ.sgml Tutorial.sgml UsersGuide.sgml HTMLS = CHANGES.html GPL.html philosophical-gnu-sm.jpg nohelp.html HTMLDOCS = FAQ.html Tutorial.html UsersGuide.html DVIDOCS = FAQ.dvi Tutorial.dvi UsersGuide.dvi PSDOCS = FAQ.ps Tutorial.ps UsersGuide.ps PDFDOCS = FAQ.pdf Tutorial.pdf UsersGuide.pdf TEXDOCS = FAQ.tex Tutorial.tex UsersGuide.tex TUTDATA = 2.1.dat 3.dat 7.1.2.agr 7.1.3.agr 8.2.dat \ 10.1.dat 10a.dat 10c.dat 10b.dat shiftdata.sh mygraph.png MANPAGES = grace.1 gracebat.1 xmgrace.1 grconvert.1 convcal.1 all : html pdf html : $(HTMLDOCS) dvi : $(DVIDOCS) pdf : $(PDFDOCS) ps : $(PSDOCS) tex : $(TEXDOCS) clean : $(RM) $(TEXDOCS) *.aux *.log *.toc *.out distclean : clean $(RM) *.orig devclean : distclean $(RM) $(DVIDOCS) $(PSDOCS) $(PDFDOCS) $(HTMLDOCS) install : $(HTMLS) $(HTMLDOCS) $(PDFDOCS) $(TUTDATA) $(MANPAGES) $(MKINSTALLDIRS) $(DESTDIR)$(GRACE_HOME)/doc for i in $?; do $(INSTALL_DATA) $$i $(DESTDIR)$(GRACE_HOME)/doc; done $(DESTDIR)$(GRACE_HOME)/doc/grace.1 : $(MANPAGES) $(MAKE) install links : $(DESTDIR)$(GRACE_HOME)/doc/grace.1 $(MKINSTALLDIRS) $(DESTDIR)$(PREFIX)/man $(MKINSTALLDIRS) $(DESTDIR)$(PREFIX)/man/man1 cd $(DESTDIR)$(PREFIX)/man/man1; \ for i in $(MANPAGES); do $(RM) $$i; $(LN_S) $(GRACE_HOME)/doc/$$i $$i; done tests : dummy dummy : ������������������������������������������������������������������������������������������������������������������������������������������������grace-5.1.25/doc/10b.dat����������������������������������������������������������������������������0000644�0000765�0000144�00000006523�06671062261�014267� 0����������������������������������������������������������������������������������������������������ustar �fnevgeny������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@type xy -9.42478 0.0181147 -9.23438 0.0299375 -9.04398 0.0409639 -8.85358 0.0507734 -8.66318 0.0589787 -8.47278 0.0652403 -8.28238 0.0692794 -8.09198 0.0708899 -7.90158 0.0699473 -7.71118 0.0664153 -7.52078 0.0603496 -7.33038 0.0518983 -7.13998 0.0412991 -6.94958 0.0288737 -6.75918 0.0150183 -6.56878 0.000192065 -6.37839 -0.0150973 -6.18799 -0.0303102 -5.99759 -0.0448931 -5.80719 -0.0582975 -5.61679 -0.0699998 -5.42639 -0.07952 -5.23599 -0.0864401 -5.04559 -0.0904207 -4.85519 -0.0912156 -4.66479 -0.0886832 -4.47439 -0.0827953 -4.28399 -0.0736415 -4.09359 -0.0614305 -3.90319 -0.0464871 -3.71279 -0.0292447 -3.52239 -0.0102347 -3.33199 0.0099285 -3.14159 0.0305653 -2.95119 0.0509518 -2.76079 0.0703429 -2.57039 0.0879967 -2.37999 0.1032 -2.18959 0.115294 -1.9992 0.123697 -1.8088 0.12793 -1.6184 0.127636 -1.428 0.122595 -1.2376 0.112741 -1.0472 0.0981701 -0.856798 0.0791434 -0.666398 0.0560876 -0.475999 0.0295894 -0.285599 0.000384056 -0.0951998 -0.0306602 0.0951998 -0.0625627 0.285599 -0.0942546 0.475999 -0.124607 0.666398 -0.152462 0.856798 -0.176666 1.0472 -0.196099 1.2376 -0.209715 1.428 -0.216571 1.6184 -0.215854 1.8088 -0.206917 1.9992 -0.189294 2.18959 -0.162727 2.37999 -0.127174 2.57039 -0.0828223 2.76079 -0.0300873 2.95119 0.0303898 3.14159 0.0977522 3.33199 0.170944 3.52239 0.248732 3.71279 0.329732 3.90319 0.412444 4.09359 0.495281 4.28399 0.576614 4.47439 0.654806 4.66479 0.728258 4.85519 0.795443 5.04559 0.854949 5.23599 0.905514 5.42639 0.946057 5.61679 0.975704 5.80719 0.993815 5.99759 0.999999 6.18799 0.994121 6.37839 0.976308 6.56878 0.946946 6.75918 0.90667 6.94958 0.856347 7.13998 0.797052 7.33038 0.730045 7.52078 0.656734 7.71118 0.578642 7.90158 0.497369 8.09198 0.41455 8.28238 0.331815 8.47278 0.250752 8.66318 0.172865 8.85358 0.0995409 9.04398 0.0320169 9.23438 -0.0286462 9.42478 -0.0815865 & �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������grace-5.1.25/doc/2.1.dat����������������������������������������������������������������������������0000644�0000765�0000144�00000000043�06671062261�014174� 0����������������������������������������������������������������������������������������������������ustar �fnevgeny������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1 4 3 2 2 3 3 4 3 2 3 2 4 1 3 4 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������grace-5.1.25/doc/GPL.html���������������������������������������������������������������������������0000644�0000765�0000144�00000046523�06626627163�014537� 0����������������������������������������������������������������������������������������������������ustar �fnevgeny������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML> <HEAD> <TITLE>GNU General Public License

GNU General Public License

 [image of a Philosophical Gnu]


Table of Contents


GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
59 Temple Place - Suite 330, Boston, MA  02111-1307, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

  • a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

  • b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

  • c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

  • a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

  • b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

  • c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

one line to give the program's name and an idea of what it does.
Copyright (C) 19yy  name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c' 
for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written 
by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.


grace-5.1.25/doc/UsersGuide.html0000644000076500001440000046326512467751544016203 0ustar fnevgenyusers Grace User's Guide (for Grace-5.1.25)

Grace User's Guide (for Grace-5.1.25)

by the Grace Team

15.02.2015
This document explains the usage of Grace, a WYSIWYG 2D plotting tool for numerical data. (A German translation of this document, made by Tobias Brinkert, is available here: Grace Benutzerhandbuch.)

1. Introduction

2. Installation guide

3. Getting started

4. Guide to the graphical user interface

5. Command interpreter

6. Advanced topics

7. References


1. Introduction

1.1 What is Grace?

Grace is a WYSIWYG tool to make two-dimensional plots of numerical data. It runs under various (if not all) flavors of Unix with X11 and M*tif (LessTif or Motif). It also runs under VMS, OS/2, and Windows (95/98/NT/2000/XP). Its capabilities are roughly similar to GUI-based programs like Sigmaplot or Microcal Origin plus script-based tools like Gnuplot or Genplot. Its strength lies in the fact that it combines the convenience of a graphical user interface with the power of a scripting language which enables it to do sophisticated calculations or perform automated tasks.

Grace is derived from Xmgr (a.k.a. ACE/gr), originally written by Paul Turner.

From version number 4.00, the development was taken over by a team of volunteers under the coordination of Evgeny Stambulchik. You can get the newest information about Grace and download the latest version at the Grace home page.

When its copyright was changed to GPL, the name was changed to Grace, which stands for ``GRaphing, Advanced Computation and Exploration of data'' or ``Grace Revamps ACE/gr''. The first version of Grace available is named 5.0.0, while the last public version of Xmgr has the version number 4.1.2.

Paul still maintains and develops a non-public version of Xmgr for internal use.

1.2 Copyright statement

Copyright (©) 1991-1995 Paul J Turner, Portland, OR
Copyright (©) 1996-2014 Grace Development Team

Maintained by Evgeny Stambulchik


                         All Rights Reserved

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

For certain libraries required to build Grace (which are therefore even included in a suitable version) there may be different Copyright/License statements. Though their License may by chance match the one used for Grace, the Grace Copyright holders can not influence or change them.


Package License
cephes library Free
T1lib LGPL
Xbae BSD-like
Tab Widget BSD-like
Licenses

2. Installation guide

2.1 Installing from sources

  1. Configuration
    • Requirements. Grace usually compiles out of the box in a regular Unix-like environment. You need an ANSI C compiler (gcc is just fine), the X11R5 or above libraries and headers, and an implementaion of the M*tif API, version 1.2 or above. If you want to compile your own changes to certain parts of Grace, you will need a parser generator (yacc or, better, bison).
    • Extra libraries. Some features will be available only if additional libraries are installed. Those are:
      • The JPEG backend needs the IJG's ( JPEG library), version 6.x.
      • The PNG backend needs the ( libpng) library (version 0.96 or above).
      • The PDF driver requires the PDFlib library of Thomas Merz to be installed, which is available here, version 4.0.3 or above.
      • If your computer has the FFTW library installed when Grace is compiled, Grace will link itself to this, and drop all conventional FFT's and DFT's. All transforms will be routed through this package. Note that there is then no difference between pushing the "FFT" button and the "DFT" button, except that FFT will complain if the length isn't a power of 2, and DFT will not. For more information on this package, see the FFTW Home page. In short, this package allows one to do non-power-of-2 length FFT's along with the normal ones. It seems to work very efficiently for any set length which factors into 2^a 3^b 5^c 7^d for integer a, b, c, d. The great feature here is that set lengths which are powers of 10 (e.g. 1000, 10000) and integer multiples of these (500, 2000, 2500, 5000, etc.) can be computed with no significant penalty (maybe 20%) over power-of-2 transforms. Very often, real datasets come in these sizes, and not in powers of 2.
      • In order to read/write sets in the NetCDF data format, you will also need the NetCDF libraries.
    • Decide whether you want to compile in a separate place (thus leaving the source tree pristine). You most probably would want it if compiling Grace for more than one OS and keeping the sources in a central shared (e.g. via NFS) location. If you don't need it, skip the rest of this paragraph and go right to the next step. Otherwise, assuming the sources are in /usr/local/src/grace-x.y.z and the compilation will be performed in /tmp/grace-obj, do the following:
        % mkdir /tmp/grace-obj
        % cd /tmp/grace-obj
        % /usr/local/src/grace-x.y.z/ac-tools/shtool mkshadow \
          /usr/local/src/grace-x.y.z .
                       
      
    • The configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create Make.conf in the top directory of the package. It also create config.h file containing system-dependent definitions. Finally, it creates a shell script config.status that you can run in the future to recreate the current configuration, a file config.cache that saves the results of its tests to speed up reconfiguring, and a file config.log containing compiler output (useful mainly for debugging configure). If at some point config.cache contains results you don't want to keep, you may remove or edit it.
    • Run ./configure --help to get list of additional switches specific to Grace
    • Run ./configure <options>. Just an example:
        % ./configure --enable-grace-home=/opt/grace 
          --with-extra-incpath=/usr/local/include:/opt/include \
          --with-extra-ldpath=/usr/local/lib:/opt/lib --prefix=/usr
                       
      
      would use /usr/local/include and /opt/include in addition to the default include path and /usr/local/lib and /opt/lib in addition to the default ld path. As well, all stuff would be put under the /opt/grace directory and soft links made to /usr/bin, /usr/lib and /usr/include.

      Note: If you change one of the --with-extra-incpath or --with-extra-ldpath options from one run of configure to another, remember to delete the config.cache file!!!

  2. Compilation
    • Issue make

      If something goes wrong, try to see if the problem has been described already in the Grace FAQ (in the doc directory).

  3. Testing
    • make tests

      This will give you a slide show demonstrating some nice features of Grace.

  4. Installation
    • make install
    • make links

      The later (optional) step will make soft links from some files under the Grace home directory to the system-wide default locations (can be changed by the --prefix option during the configuration, see above).

2.2 Binary installation

  1. Getting pre-built packages
  2. Installation
  3. Running tests

2.3 Alternative packaging schemes (RPM, ...)

Not written yet...

3. Getting started

For a jump-in start, you can browse the demos ("Help/Examples" menu tree). These are ordinary Grace projects, so you can play with them and modify them. Also, read the Tutorial.

O.k. Here's a VERY quick introduction:

  1. Start the GUI version: xmgrace (return).
  2. Select/check the output medium and canvas size in File/Device Setup.
  3. If needed, set the graph size ('Viewport' in Plot/Graph Appearance).
  4. Load your data with Data/Import/ASCII. 'Load as': 'Single set' for two-column ASCII data, 'Block data' for multi-column ASCII data.
  5. Adjust the scales, axis labels and tick marks in Plot/Axis properties. Acknowledge all changes with 'Apply'.
  6. Adjust lines, symbols, legends in Plot/Set appearance.
  7. Adjust titles, plot frame and legend display in Plot/Graph Appearance.
  8. Data can be manipulated in Data/Transformations. To shift a data set by 20 to the left, e.g., in 'Evaluate Expression' select the same set on the left and the right, and say Formula: y=y-20. As you'll probably notice, Grace can do MUCH more than that. Explore at your leisure.
  9. When you like your plot, select File/Print. That's it!

3.1 General concepts

Project files

A project file contains all information necessary to restore a plot created by Grace, as well as some of preferences. Each plot is represented on a single page, but may have an unlimited number of graphs.You create a project file of your current graph with File/Save,Save as.

Parameter files

A parameter file contains the detailed settings of your project. It can be used to transfer these settings to a different plot/project. You generate a parameter file with File/Save menu entry selected from the "Plot/Graph appearance popup". You can load the settings contained in a parameter file with File/Open.

Input file formats

Grace understands several input files formats. The most basic one is ASCII text files containing space and comma separated columns of data. The data fields can be either numeric (Fortran 'd' and 'D' exponent markers are also supported) or alphanumeric (with or without quotes). Several calendar date formats are recognized automatically and you can specify your own reference for numeric date formats. Lines beginnig with "#" are ignored. Blank lines indicate new dataset. Grace also has a command language (see command interpreter), you can include commands in data files using lines having "@" as their first non-blank character, though this is not recommended. Depending on configuration, Grace can also read NetCDF files (see configuration).

Graphs

A graph consists of (every element is optional): a graph frame, axes, a title and a subtitle, a number of sets and additional annotative objects (time stamp string, text strings, lines, boxes and ellipses).

The graph type can be any of:

  • XY Graph
  • XY Chart
  • Polar Graph
  • Fixed Graph
  • Pie chart

The idea of "XY Chart" is to plot bars (or symbols in general) of several sets side by side, assuming the abscissas of all the sets are the same (or subsets of the longest set).

Datasets

A dataset is a collection of points with x and y coordinates, up to four optional data values (which, depending on the set type, can be displayed as error bars or like) and one optional character string.

Sets

A set is a way of representing datasets. It consists of a pointer to a dataset plus a collection of parameters describing the visual appearance of the data (like color, line dash pattern etc).

The set type can be any of the following:


Set type # of num. cols Description
XY 2 An X-Y scatter and/or line plot, plus (optionally) an annotated value
XYDX 3 Same as XY, but with error bars (either one- or two-sided) along X axis
XYDY 3 Same as XYDX, but error bars are along Y axis
XYDXDX 4 Same as XYDX, but left and right error bars are defined separately
XYDYDY 4 Same as XYDXDX, but error bars are along Y axis
XYDXDY 4 Same as XY, but with X and Y error bars (either one- or two-sided)
XYDXDXDYDY 6 Same as XYDXDY, but left/right and upper/lower error bars are defined separately
BAR 2 Same as XY, but vertical bars are used instead of symbols
BARDY 3 Same as BAR, but with error bars (either one- or two-sided) along Y axis
BARDYDY 4 Same as BARDY, but lower and upper error bars are defined separately
XYHILO 5 Hi/Low/Open/Close plot
XYZ 3 Same as XY; makes no sense unless the annotated value is Z
XYR 3 X, Y, Radius. Only allowed in Fixed graphs
XYSIZE 3 Same as XY, but symbol size is variable
XYCOLOR 3 X, Y, color index (of the symbol fill)
XYCOLPAT 4 X, Y, color index, pattern index (currently used for Pie charts only)
XYVMAP 4 Vector map
XYBOXPLOT 6 Box plot (X, median, upper/lower limit, upper/lower whisker)
Set types

Not all set types, however, can be plotted on any graph type. The following table summarizes it:


Set type XY Graph XY Chart Fixed Polar Pie
XY + + + + +
XYDX + - + - -
XYDY + + + - -
XYDXDX + - + - -
XYDYDY + + + - -
XYDXDY + - + - -
XYDXDXDYDY + - + - -
BAR + + + - -
BARDY + + - - -
BARDYDY + + - - -
XYHILO + - - - -
XYZ + - + + -
XYR - - + - -
XYSIZE + + + + -
XYCOLOR + + + + +
XYCOLPAT - - - - +
XYVMAP + - + - -
XYBOXPLOT + - - - -
Graph/Set type connection

Regions

Regions are sections of the graph defined by the interior or exterior of a polygon, or a half plane defined by a line. Regions are used to restrict data transformations to a geometric area occupied by region.

Real Time Input

Real Time Input refers to the ability Grace has to be fed in real time by an external program. The Grace process spawned by the driver program is a full featured Grace process: the user can interact using the GUI at the same time the program sends data and commands. The process will adapt itself to the incoming data rate.

Hotlinks

Hotlinks are sources containing varying data. Grace can be instructed a file or a pipe is a hotlink in which case it will provide specific commands to refresh the data on a mouse click (a later version will probably allow automatic refresh).

Devices

Grace allows the user to choose between several output devices to produce its graphics. The current list of supported devices is:

  • X11
  • PostScript (level 1 and level 2)
  • EPS (encapsulated PostScript)
  • Metafile (which is Grace format, used at the moment mostly for debugging purposes)
  • MIF (Maker Interchange Format used by FrameMaker)
  • SVG (Scalable Vector Graphics, a language for describing two-dimensional vector and mixed vector/raster graphics in XML)
  • PDF (depends on extra libraries, see configuration)
  • PNM (portable anymap file format)
  • JPEG (depends on extra libraries, see configuration)
  • PNG (depends on extra libraries, see configuration)

Note that Grace no longer supports GIF due to the copyright policy of Unisys. Grace can also be instructed to launch conversion programs automatically based on file name. As an example you can produce MIF (FrameMaker Interchange Format) or Java applets using pstoedit, or almost any image format using the netpbm suite (see the FAQ).

Magic path

In many cases, when Grace needs to access a file given with a relative pathname, it searches for the file along the following path: ./pathname:./.grace/pathname:~/.grace/pathname:$GRACE_HOME/pathname

Dynamic modules

Grace can access external functions present in either system or third-party shared libraries or modules specially compiled for use with it. The term dynamic refers to the possibility Grace has to open the library at run time to find the code of the external function, there is no need to recompile Grace itself (the functions already compiled in Grace are "statically linked").

Coordinate frames

There are two types of coordinates in Grace: the world coordinates and the viewport coordinates. Points of data sets are defined in the world coordinates. The viewport coordinates correspond to the image of the plot drawn on the canvas (or printed on, say, PS output page). The transformation converting the world coordinates into the viewport ones is determined by both the graph type and the axis scaling.

Actually, there is yet another level in the hierarchy of coordinates - the device coordinates. However, you (as a user of Grace) should not worry about the latter. The mapping between the viewport coordinates and the device coordinates is always set in such a way that the origin of the viewport corresponds to the left bottom corner of the device page, the smallest of the device dimensions corresponds to one unit in the viewport coordinates. Oh, and the most important thing about the viewport -> device transformation is that it is homotetic, i.e. a square is guaranteed to remain a square, not a rectangle, a circle remains a circle (not an ellipse) etc.

3.2 Invocation

Operational mode

With respect to the user interface, there are three modes of operation that Grace can be invoked in. The full-featured GUI-based version is called xmgrace. A batch-printing version is called gracebat. A command-line interface mode is called grace. Usually, a single executable is called in all cases, with two of the three files being (symbolic) links to a "real" one.

Command line options

-autoscale x|y|xy

Override any parameter file settings

-barebones

Turn off all toolbars

-batch batch_file

Execute batch_file on start up (i.e., after all other options have been processed and the UI initialized)

-block block_data

Assume data file is block data

-bxy x:y:etc.

Form a set from the current block data set using the current set type from columns given in the argument

-datehint iso|european|us|days|seconds|nohint

Set the hint for dates analysis

-dpipe descriptor

Read data from descriptor (anonymous pipe) on startup

-fixed width height

Set canvas size fixed to width*height

-free

Use free page layout

-graph graph_number

Set the current graph number

-graphtype xy|chart|fixed|polar|pie

Set the type of the current graph

-hardcopy

No interactive session, just print and quit

-hdevice hardcopy_device_name

Set default hardcopy device

-install

Install private colormap

-legend load

Turn the graph legend on

-log x|y|xy

Set the axis scaling of the current graph to logarithmic

-maxpath length

Set the maximal drawing path length

-mono

Run Grace in monochrome mode (affects the display only)

-netcdf file

Assume data file is in netCDF format. This option is present only if the netCDF support was compiled in

-netcdfxy X_var Y_var

If -netcdf was used previously, read from the netCDF file X_var Y_var variables and create a set. If X_var name is "null" then load the index of Y to X. This option is present only if the netCDF support was compiled in

-noask

Assume the answer is yes to all requests - if the operation would overwrite a file, Grace will do so without prompting

-noinstall

Don't use private colormap

-noprint

In batch mode, do not print

-nosafe

Disable safe mode

-nosigcatch

Don't catch signals

-npipe file

Read data from named pipe on startup

-nxy nxy_file

Assume data file is in X Y1 Y2 Y3 ... format

-param parameter_file

Load parameters from parameter_file to the current graph

-pexec parameter_string

Interpret string as a parameter setting

-pipe

Read data from stdin on startup

-printfile

file Save print output to file

-remove

Remove data file after read

-results results_file

Write results of some data manipulations to results_file

-rvideo

Exchange the color indices for black and white

-safe

Run in the safe mode (default) - no file system modifications are allowd through the batch language

-saveall save_file

Save all graphs to save_file

-seed seed_value

Integer seed for random number generator

-settype xy|xydx|...

Set the type of the next data file

-source disk|pipe

Source type of next data file

-timer delay

Set allowed time slice for real time inputs to delay ms

-timestamp

Add timestamp to plot

-version

Show the program version

-viewport xmin ymin xmax ymax

Set the viewport for the current graph

-wd directory

Set the working directory

-world xmin ymin xmax ymax

Set the world coordinates for the current graph

-usage|-help

This message

3.3 Customization

Environment variables

  • GRACE_HOME

    Set the location of Grace. This will be where help files, auxiliary programs, and examples are located. If you are unable to find the location of this directory, contact your system administrator.

  • GRACE_PRINT_CMD

    Print command. If the variable is defined but is an empty string, "Print to file" will be selected as default.

  • GRACE_EDITOR

    The editor used for manual editing of dataset values.

  • GRACE_HELPVIEWER

    The shell command to run an HTML viewer for on-line browsing of the help documents. Must include at least one instance of "%s" which will be replaced with the actual URL by Grace.

  • GRACE_FFTW_WISDOM_FILE and GRACE_FFTW_RAM_WISDOM

    These flags control behavior of the FFTW planner (see FFTW tuning for detailed info)

Init file

Upon start-up, Grace loads its init file, gracerc. The file is searched for in the magic path (see magic path); once found, the rest of the path is ignored. It's recommended that in the gracerc file, one doesn't use statements which are part of a project file - such defaults, if needed, should be set in the default template (see default template).

Default template

Whenever a new project is started, Grace loads the default template, templates/Default.agr. The file is searched for in the magic path (see magic path); once found, the rest of the path is ignored. It's recommended that in the default template, one doesn't use statements which are NOT part of a project file - such defaults, if needed, should be set in the gracerc (see init file).

X resources

The following Grace-specific X resource settings are supported:

  • XMgrace.invertDraw
    Use GXinvert rather than GXxor for rubber-band lines. If the rubber-banding for zooms and lines, etc. doesn't appear on the canvas, set this resource to yes.
  • XMgrace.allowDoubleClick
    When Yes, allow double clicks on the canvas to bring up various popups depending on the location of the pointer when the double click occurs.
  • XMgrace.toolBar
    Enables button toolbar
  • XMgrace.statusBar
    Enables status bar
  • XMgrace.locatorBar
    Enables locator bar

It is also possible to customize menus by assigning key accelerators to any item.

You'll need to derive the item's X resource name from the respective menu label, which is easily done following these rules:

  • All non-alphanumeric characters are skipped
  • Start with lower case; each new word (if any) continues from the capital letter
  • Add the item's type to the end - "Menu" for pulldown menus, "Button" for menu buttons.

For example, in order to make Grace popup the Non-linear curve fitting by pressing Control+F, you would add the following two lines

XMgrace*transformationsMenu.nonLinearCurveFittingButton.acceleratorText: Ctrl+F
XMgrace*transformationsMenu.nonLinearCurveFittingButton.accelerator: Ctrl<Key>f

to your .Xresources file (the file which is read when an X session starts; it could be .Xdefaults, .Xsession or some other file - ask your system administrator when in doubt).

Similarly, it may be desirable to alter default filename patterns of file selection dialogs. The recipe for the dialog's name is like for menu buttons outlined above, with "Button" being replaced with "FSB". E.g., to list all files in the "Open project" dialog ("File/Open..."), set the following resource:

XMgrace*openProjectFSB.pattern: *

4. Guide to the graphical user interface

4.1 GUI controls

This section describes interface controls - basic building blocks, used in many popups.

File selection dialogs

Whenever the user is expected to provide a filename, either for reading in or writing some data, a file selection dialog is popped up. In addition to the standard entries (the directory and file lists and the filter entry), there is a pulldown menu for quick directory change to predefined locations (the current working directory, user's home directory and the file system root). Also, a "Set as cwd" button is there which allows to set any directory as you navigate through the directory tree as the current working directory (cwd). Once defined, it can be used in any other file selection dialog to switch to that directory quickly.

List selectors

Various selectors are available in several popups. They all display lists of objects (graphs, sets, ...) and can be used to perform simple operations on these objects (copying, deleting, ...). The operations are available from a popup menu that appears when pressing mouse button 3 on them. Depending on the required functionality, they may allow multiple choices or not. The following shortcuts are enabled (if the result of an action would contradict the list's selection policy, this would be ignored):

  • Ctrl+a select all
  • Ctrl+u unselect all
  • Ctrl+i invert selection

Graph selector

The operations that can be performed on graphs through the graph selector's popup menu are:

  • focus to
  • hide
  • show
  • duplicate
  • kill
  • swap
  • create new
All this operations are not available in every instance of the selector. For example in the "read sets" popup only one graph can be selected at a time, and the swap operation is disabled.

Double-clicking on a list entry will switch the focus to that graph.

Set selector

The operations that can be performed on sets through the set selector's popup menu are:

  • hide
  • show
  • bring to front
  • send to back
  • duplicate
  • kill
  • kill data
  • swap
  • edit
  • create new
  • pack all sets
  • selector operations
    • view set comments
    • show data-less
    • show hidden
    • select all
    • unselect all
    • invert selection
    • update

Double-clicking on a list entry will open the spreadsheet editor (see Spreadsheet data set editor) on the set data.

4.2 The main window

The canvas

Canvas hotkeys

When the pointer focus is on the canvas (where the graph is drawn), there are some shortcuts to activate several actions. They are:

  • Ctrl <Key>A: Autoscale the current graph
  • Ctrl <Key>D: Delete an object
  • Ctrl <Key>L: Move current graph legend
  • Ctrl <Key>M: Move an object
  • Ctrl <Key>T: Place timestamp
  • Ctrl <Key>U: Refresh hotlinks
  • Ctrl <Key>V: Set the viewport with mouse
  • Ctrl <Key>Z: Zoom
  • Ctrl Alt <Key>L: Draw a line
  • Ctrl Alt <Key>B: Draw a box
  • Ctrl Alt <Key>E: Draw an ellipse
  • Ctrl Alt <Key>T: Write a text string

Clicks and double clicks

A single click inside a graph switches focus to that graph. This is the default policy, but it can be changed from the "Edit/Preferences" popup.

Double clicking on parts of the canvas will invoke certain actions or raise some popups:

  • on a focus marker: move selected viewport corner
  • on an axis: "Plot/Axis properties" popup
  • on a set: "Plot/Set appearance" popup
  • on a legend: "Plot/Graph appearance" popup
  • on a (sub)title: "Plot/Graph appearance" popup
  • on an object (box, line, ...): a popup for editing properties of that object

The double clicking actions can be enabled/disabled from the "Edit/Preferences" popup.

Toolbar buttons

Along the left-hand side of the canvas (if shown) is the ToolBar. It is armed with several buttons to provide quick and easy access to the more commonly used Grace functions.

  • Draw: This will redraw the canvas and sets. Useful if "Auto Redraw" has been deselected in the Edit|Preferences dialog or after executing commands directly from the Window|Commands interpreter.
  • Lens: A zoom lens. Click on the lens, then select the area of interest on the graph with the "rubber band". The region enclosed by the rubber band will fill the entire graph.
  • AS: AutoScale. Autoscales the graph to contain all data points of all visible (not hidden) sets.
  • Z/z: Zoom in/out by 5%. The zoom percentage can be set in the Edit/Preferences dialog.
  • Arrows: Scroll active graph by 5% in the arrow's direction. The scroll percentage can be set in the Edit/Preferences dialog.
  • AutoT: AutoTick Axes. This will find the optimum number of major and minor tick marks for both axes.
  • AutoO: Autoscale On set. Click the AutoO button, then click on the graph near the set you wish to use for determining the autoscale boundaries of the graph.
  • ZX,ZY: Zoom along an axis. These buttons work like the zoom lens above but are restricted to a single axis.
  • AX,AY: Autoscale one axis only.

    The following buttons deal with the graph stack and there is a good example under Help/Examples/General Intro/World Stack.

  • Pu/Po: Push and pop the current world settings to/from the graph stack. When popping, makes the new stack top current.
  • PZ: Push before Zooming. Functions as the zoom lens, but first pushes the current world settings to the stack.
  • Cy: Cycles through the stack settings of the active graph. Each graph may have up to twenty layers on the stack.

  • Exit: Pretty obvious, eh?

4.3 File menu

The file menu contains all entries related to the input/output features of Grace.

New

Reset the state of Grace as if it had just started (one empty graph ranging from 0 to 1 along both axes). If some work has been done and not yet saved, a warning popup is displayed to allow canceling the operation.

Open

Open an existing project file. A popup is displayed that allow to browse the file system.

Save

Save the current work in a project file, using the name that was used for the last open or save. If no name has been set (i.e., if the project has been created from scratch) act as save as.

Save as

Save the current work in a project file with a new name. A popup allows to browse the file system and set the name, the format to use for saving data points (the default value is "%16.8g"), and a textual description of the project. A warning is displayed if a file with the same name already exists.

Revert to saved

Abandon all modifications performed on the project since the last save. A confirmation popup is fired to allow the user canceling the operation.

Print setup

Set the properties of the printing device. Each device has its own set of specific options (see Device-specific settings). According to the device, the output can be sent either directly to a printer or directed to a file. The global settings available for all devices are the sizing parameters. The size of the graph is fixed. Changing the 'Page' settings changes the size of the canvas underneath the graph. Switching between portrait and landscape rotates the canvas. Make sure the canvas size is large enough to hold your graph. Otherwise you get a 'Printout truncated' warning. If your canvas size cannot easily be changed because, for example, you want to print on letter size paper, you need to adjust the size of your graph ('Viewport' in Plot/Graph Appearance).

Print

Print the project using the current printer settings

Exit

Exit from Grace. If some work has been done and not saved, a warning popup will be displayed to allow the user to cancel the operation.

4.4 Edit menu

Data sets

Using the data set popup, you can view the properties of datasets. This include its type, length, associated comment and some statistics (min, max, mean, standard deviation). A horizontal scrollbar at the bottom allows to get the two last properties, they are not displayed by default. Also note that if you find some columns are too narrow to show all significant digits, you can drag the vertical rules using Shift+Button 2.

Using the menu on the top of this dialog, you can manipulate existing sets or add new ones. Among the most important entries in the menu, are options to create or modify a set using the spreadsheet data set editor (see Spreadsheet data set editor).

Spreadsheet data set editor

The dialog presents an editable matrix of numbers, corresponding to the data set being edited. The set type (and hence, the number of data columns) can be changed using the "Type:" selector. Clicking on a column label pops up a dialog allowing to adjust the column formatting. Clicking on the row labels toggles the respective row state (selected/unselected). The selected rows can be deleted via the dialog's "Edit" menu. Another entry in this menu lets you add a row; the place of the new row is determined by the row containing a cell with the keyboard focus on. As well, just typing in an empty cell will add one or several rows (filling the intermediate rows with zeros).

To resize columns, drag the vertical rules using Shift+Button 2.

Set operations

The set operations popup allows you to interact with sets as a whole. If you want to operate on the data ordering of the sets, you should use the data set operations popup from the Data menu. The popup allows you to select a source (one set within one graph) and a destination and perform some action upon them (copy, move, swap). This popup also give you a quick access to several graph and set selectors if you want to perform some other operation like hiding a graph or creating a new set from block data.

Arrange graphs

This entry fires up a popup to lay out several graphs in a regular grid given by M rows and N columns.

The graph selector at the top allows one to select a number of graphs the arrangement will operate on. If the number of selected graphs isn't equal to M times N, new graphs may be created or extra graphs killed if needed. These options are controlled by the respective checkboxes below the graph selector.

The order in which the matrix is filled in with the graphs can be selected (first horizontally then vertically or vise versa, with either of them inverted). Additionaly, one may choose to fill the matrix in the snake-like manner (adjacent "strokes" are anti-parallel).

The rest of the controls of the dialog window deal with the matrix spacing: left/right/top/bottom page offsets (in the viewport coordinates) and relative inter-cell distances, vertical and horizontal. Next to each of the vertical/horizontal spacing spinboxes, a "Pack" checkbox is found. Enabling it effectively sets the respective inter-cell distance to zero and alter axis tickmark settings such that only bottom/left-most tickmarks are visible.

If you don't want the regular layout this arrangement gives you, you can change it afterwards using the mouse (select a graph and double click on the focus marker, see clicks and double clicks).

Overlay graphs

You can overlay a graph on top of another one. The main use of this feature is to plot several curves using different scales on the same (apparently) graph. The main difficulty is to be sure you operate on the graph you want at all times (you can hide one for a moment if this becomes too difficult).

Autoscale

Using this entry, you can autoscale one graph or all graphs according to the specified sets only. This is useful if you need either to have truly comparable graphs despite every one contains data of different ranges, or if you want to focus your attention on one set only while it is displayed with other data in a complex graph.

Regions menu

Status

This small popup only displays the current state (type and whether it is active or not) of the existing regions.

Define

You can define a new region (or redefine an existing one), the allowed region types are:

  • Inside polygon
  • Outside polygon
  • Above line
  • Below line
  • Left of line
  • Right of line
  • In horizontal range
  • In vertical range
  • Out of horizontal range
  • Out of vertical range

A region can be either linked to the current graph only or to all graphs.

Clear

This kills a region.

Report on

This popup reports you which sets or points are inside or outside of a region.

Hot links

You can link a set to a file or a pipe using this feature. Once a link has been established, you can update it (i.e., read data again) by clicking on the update button.

Currently, only simple XY sets can be used for hotlinks.

Set locator fixed point

After having selected this menu entry, you can select a point on a graph that will be used as the origin of the locator display (just below the menu bar). The fixed point is taken into account only when the display type of the locator is set to [DX,DY].

Clear locator fixed point

This entry is provided to remove a fixed point set before and use the default again: point [0, 0].

Locator props

The locator props popup allows you to customize the display of the locator, mainly its type and the format and precision of the display. You can use all the formats that are allowed in the graphs scales.

Preferences

The preferences popup allows you to set miscellaneous properties of your Grace session, such as GUI behavior, cursor type, date reading hint and reference date used for calendar conversions.

4.5 Data menu

Data set operations

This popup gathers all operations that are related to the ordering of data points inside a set or between sets. If you want to operate on the sets as a whole, you should use the set operations popup from the Edit menu. You can sort according to any coordinate (X, Y, DX, ...) in ascending or descending order, reverse the order of the points, join several sets into one, split one set into several others of equal lengths, or drop a range of points from a set. The set selector of the popup shows the number of points in each set in square brackets like this: G0.S0[63], the points are numbered from 0 to n-1.

Transformations menu

The transformations sub-menu gives you access to all data-mining features of Grace.

Evaluate expression

Using evaluate expression allows you to create a set by applying an explicit formula to another set, or to parts of another set if you use regions restrictions.

All the classical mathematical functions are available (cos, sin, but also lgamma, j1, erf, ...). As usual all trigonometric functions use radians by default but you can specify a unit if you prefer to say cos (x rad) or sin (3 * y deg). For the full list of available numerical functions and operators, see Operators and functions.

In the formula, you can use X, Y, Y1, ..., Y4 to denote any coordinate you like from the source set. An implicit loop will be used around your formula so if you say:

         x = x - 4966.5
         

you will shift all points of your set 4966.5 units to the left.

You can use more than one set in the same formula, like this:

         y = y - 0.653 * sin (x deg) + s2.y
         

which means you use both X and Y from the source set but also the Y coordinate of set 2. Beware that the loop is a simple loop over the indices, all the sets you use in such an hybrid expression should therefore have the same number of points and point i of one set should really be related to point i of the other set. If your sets do not follow these requirements, you should first homogenize them using interpolation.

Histograms

The histograms popup allows you to compute either standard or cumulative histograms from the Y coordinates of your data. Optionally, the histograms can be normalized to 1 (hence producing a PDF (Probability Distribution Function).

The bins can be either a linear mesh defined by its min, max, and length values, or a mesh formed by abscissas of another set (in which case abscissas of the set must form a strictly monotonic array).

Fourier transforms

This popup is devoted to direct and inverse Fourier transforms (actually, what is computed is a power spectrum). The default is to perform a direct transform on unfiltered data and to produce a set with the index as abscissa and magnitude as ordinate. You can filter the input data window through triangular, Hanning, Welch, Hamming, Blackman and Parzen filters. You can load magnitude, phase or coefficients and use either index, frequency or period as abscissas. You can choose between direct and inverse Fourier transforms. If you specify real input data, X is assumed to be equally spaced and ignored; if you specify complex input data X is taken as the real part and Y as the imaginary part.

If Grace was configured with the FFTW library (see configuration), then the DFT and FFT buttons really perform the same transform (so there is no speed-up in using FFT in this case). If you want Grace can to use FFTW wisdom files, you should set several environment variables to name them.

Running averages

The running average popup allows you to compute some values on a sliding window over your data. You choose both the value you need (average, median, minimum, maximum, standard deviation) and the length of the window and perform the operation. You can restrict the operation to the points belonging to (or outside of) a region.

Differences

The differences popup is used to compute approximations of the first derivative of a function with finite differences. The only choice (apart from the source set of course) is the type of differences to use: forward, backward or centered.

Seasonal differences

The seasonal differences popup is used to subtract data from a period to data of the preceding period (namely y[i] - y[i + period]). Beware that the period is entered in terms of index in the set and not in terms of abscissa!

Integration

The integration popup is used to compute the integral of a set and optionally to load it. The numerical value of the integral is shown in the text field after computation. Selecting "cumulative sum" in the choice item will create and load a new set with the integral and compute the end value, selecting "sum only" will only compute the end value.

Interpolation/Splines

This popup is used to interpolate a set on an array of alternative X coordinates. This is mainly used before performing some complex operations between two sets with the evaluate expression popup.

The sampling array can be either a linear mesh defined by its min, max, and length values, or a mesh formed by abscissas of another set.

Several interpolation methods can be used: linear, spline or Akima spline.

Note that if the sampling mesh is not entirely within the source set X bounds, evaluation at the points beyond the bounds will be performed using interpolation parameters from the first (or the last) segment of the source set, which can be considered a primitive extrapolation. This behaviour can be disabled by checking the "Strict" option on the popup.

The abscissas of the set being interpolated must form a strictly monotonic array.

Regression

The regression popup can be used to fit a set against polynomials or some specific functions (y=A*x^B, y=A*exp(B*x), y=A+B*ln(x) and y=1/(A+Bx)) for which a simple transformation of input data can be used to apply linear regression formulas.

You can load either the fitted values, the residuals or the function itself. Choosing to load fitted values or residuals leads to a set of the same length and abscissas as the initial set. Choosing to load the function is almost similar to load the fitted values except that you choose yourself the boundaries and the number of points. This can be used for example to draw the curve outside of the data sample range or to produce an evenly spaced set from an irregular one.

Non-linear fit

The non linear fit popup can be used for functions outside of the simple regression methods scope. With this popup you provide the expression yourself using a0, a1, ..., a9 to denote the fit parameters (as an example you can say y = a0 * cos (a1 * x + a2)). You specify a tolerance, starting values and optional bounds and run several steps before loading the results.

The fit characteristics (number of parameters, formula, ...) can be saved in a file and retrieved as needed using the file menu of the popup.

In the "Advanced" tab, you can additionally apply a restriction to the set(s) to be fitted (thus ignoring points not satisfying the criteria), use one of preset weighting schemes or define your own (notice that "dY" in the preset "1/dY^2" one actually refers to the third column of the data set; use the "Custom" function if this doesn't make sense for your data set), and choose whether to load the fitted values, the residuals or the function itself. Choosing to load fitted values or residuals leads to a set of the same length and abscissas as the initial set. Choosing to load the function is almost similar to load the fitted values except that you choose yourself the boundaries and the number of points. This can be used for example to draw the curve outside of the data sample range or to produce an evenly spaced set from an irregular one.

Correlation/covariance

This popup can be used to compute autocorrelation of one set or cross correlation between two sets. You only select the set (or sets) and specify the maximum lag. A check box allows one to evaluate covariance instead of correlation. The result is normalized so that abs(C(0)) = 1.

Digital filter

You can use a set as a weight to filter another set. Only the Y part and the length of the weighting set are important, the X part is ignored.

Linear convolution

The convolution popup is used to ... convolve two sets. You only select the sets and apply.

Geometric transforms

You can rotate, scale or translate sets using the geometric transformations popup. You specify the characteristics of each transform and the application order.

Sample points

This popup provides two sampling methods. The first one is to choose a starting point and a step, the second one is to select only the points that satisfy a boolean expression you specify.

Prune data

This popup is devoted to reducing huge sets (and then saving both computation time and disk space).

The interpolation method can be applied only to ordered sets: it is based on the assumption that if a real point and an interpolation based on neighboring points are closer than a specified threshold, then the point is redundant and can be eliminated.

The geometric methods (circle, ellipse, rectangle) can be applied to any set, they test each point in turn and keep only those that are not in the neighborhood of previous points.

Feature extraction

Given a set of curves in a graph, extract a feature from each curve and use the values of the feature to provide the Y values for a new curve.


Feature Description
Y minimum Minimum Y value of set
Y maximum Maximum Y value of set
Y average Average Y value of set
Y std. dev. Standard deviation of Y values
Y median Median Y value
X minimum Minimum X value of set
X maximum Maximum X value of set
X average Average X value of set
X std. dev. Standard deviation of X values
X median Median X value
Frequency Perform DFT (FFT if set length a power of 2) to find largest frequency component
Period Inverse of above
Zero crossing Time of the first zero crossing, + or - going
Rise time Assume curve starts at the minimum and rises to the maximum, get time to go from 10% to 90% of rise. For single exponential curves, this is 2.2*time constant
Fall time Assume curve starts at the maximum and drops to the minimum, get time to go from 90% to 10% of fall
Slope Perform linear regression to obtain slope
Y intercept Perform linear regression to obtain Y-intercept
Set length Number of data points in set
Half maximal width Assume curve starts from the minimum, rises to the maximum and drops to the minimum again. Determine the time for which the curve is elevated more than 50% of the maximum rise.
Barycenter X Barycenter along X axis
Barycenter Y Barycenter along Y axis
X (Y max) X of Maximum Y
Y (X max) Y of Maximum X
integral cumulative sum
Extractable features

Import menu

ASCII

Read new sets of data in a graph. A graph selector is used to specify the graph where the data should go (except when reading block data, which are copied to graphs later on).

Reading as "Single set" means that if the source contains only one column of numeric data, one set will be created using the indices (from 1 to the total number of points) as abscissas and read values as ordinates and that if the source contains more than one column of data, the first two numeric columns will be used. Reading as "NXY" means that the first numeric column will provide the abscissas and all remaining columns will provide the ordinates of several sets. Reading as "Block data" means all column will be read and stored and that another popup will allow to select the abscissas and ordinates at will. It should be noted that block data are stored as long as you do not override them by a new read. You can still retrieve data from a block long after having closed all popups, using the set selector.

The set type can be one of the predefined set presentation types (see sets).

The data source can be selected as "Disk" or "Pipe". In the first case the text in the "Selection" field is considered to be a file name (it can be automatically set by the file selector at the top of the popup). In the latter case the text is considered to be a command which is executed and should produce the data on its standard output. On systems that allows is, the command can be a complete sequence of programs glued together with pipes.

If the source contains date fields, they should be automatically detected. Several formats are recognized (see appendix dates in grace). Calendar dates are converted to numerical dates upon reading.

The "Autoscale on read" menu controls whether, upon reading in new sets, which axes of the graph should be autoscaled.

NetCDF

This entry exists only if Grace has been compiled with support for the NetCDF data format (see configuration).

Export menu

ASCII

Save data sets in a file. A set selector is used to specify the set to be saved. The format to use for saving data points can be specified (the default value is "%16.8g"). A warning is displayed if a file with the same name already exists.

4.6 Plot menu

Plot appearance

The plot appearance popup let you set the time stamp properties and the background color of the page. The color is used outside of graphs and also on graphs were no specific background color is set. The time stamp is updated every time the project is modified.

Graph appearance

The graph appearance popup can be displayed from both the plot menu and by double-clicking on a legend, title, or subtitle of a graph (see Clicks and double clicks). The graph selector at the top allows to choose the graph you want to operate on, it also allows certain common actions through its popup menu (see graph selector). Most of the actions can also be performed using the "Edit" menu available from the popup menubar. The main tab includes the properties you will need more often (title for example), and other tabs are used to fine tune some less frequently used options (fonts, sizes, colors, placements).

If you need special characters or special formatting in your title or subtitle, you can use Grace escape sequences (the sequence will appear verbatim in the text field but will be rendered on the graph), see typesetting. If you don't remember the mapping between alphabetic characters and the glyph you need in some specific fonts (mainly symbol and zapfdingbats), you can invoke the font tool from the text field by hitting CTRL-e. You can change fonts and select characters from there, they will be copied back in the text field when you press the "Accept" button. Beware of the position of the cursor as you enter text or change font in the font tool, the character or command will be inserted at this position, not at the end of the string!

You can save graph appearance parameters or retrieve settings previously saved via the "File" menu of this popup. In the "Save parameters" dialog, you can choose to save settings either for the current graph only or for all graphs.

Set appearance

The set appearance popup can be displayed from both the plot menu and by double-clicking anywhere in a graph (see Clicks and double clicks). The set selector at the top allows to choose the set you want to operate on, it also allows certain common actions through its popup menu (see set selector). The main tab gathers the properties you will need more often (line and symbol properties or legend string for example), and other tabs are used to fine tune some less frequently used options (drop lines, fill properties, annotated values and error bars properties for example).

You should note that despite the legend string related to one set is entered in the set appearance popup, this is not sufficient to display it. Displaying all legends is a graph level decision, so the toggle is in the main tab of the graph appearance popup.

If you need special characters or special formatting in your legend, you can use Grace escape sequences (the sequence will appear verbatim in the text field but will be rendered on the graph), see typesetting. If you don't remember the mapping between alphabetic characters and the glyph you need in some specific fonts (mainly symbol and zapfdingbats), you can invoke the font tool from the text field by hitting CTRL-e. You can change fonts and select characters from there, they will be copied back in the text field when you press the "Accept" button. Beware of the position of the cursor as you enter text or change font in the font tool, the character or command will be inserted at this position, not at the end of the string!

Axis properties

The axis properties popup can be displayed from both the "Plot" menu and by double-clicking exactly on an axis (see Clicks and double clicks). The pulldown menu at the top allows to select the axis you want to operate on. The "Active" toggle globally activates or deactivates the axis (all GUI elements are insensitive for deactivated axes). The start and stop fields depict the displayed range. Three types of scales are available: linear, logarithmic or reciprocal, and you can invert the axis (which normally increases from left to right and from bottom to top). The main tab includes the properties you will need more often (axis label, tick spacing and format for example), and other tabs are used to fine tune some less frequently used options (fonts, sizes, colors, placements, stagger, grid lines, special ticks, ...).

If you need special characters or special formatting in your label, you can use Grace escape sequences (the sequence will appear verbatim in the text field but will be rendered on the graph), see typesetting. If you don't remember the mapping between alphabetic characters and the glyph you need in some specific fonts (mainly symbol and zapfdingbats), you can invoke the font tool from the text field by hitting CTRL-e. You can change fonts and select characters from there, they will be copied back in the text field when you press the "Accept" button. Beware of the position of the cursor as you enter text or change font in the font tool, the character or command will be inserted at this position, not at the end of the string!

Most of the controls in the dialog should be self-explanatory. One that is not (and frequently missed) is the "Axis transform" input field in the "Tick labels" tab. Entering there e.g. "-$t" will make the tick labels show negates of the real coordinates their ticks are placed at. You can use any expression understood by the interpreter (see command interpreter).

Once you have set the options as you want, you can apply them. One useful feature is that you can set several axes at once with the bottom pulldown menu (current axis, all axes current graph, current axis all graphs, all axes all graphs). Beware that you always apply the properties of all tabs, not only the selected one.

4.7 View menu

Show locator bar

This toggle item shows or hides the locator below the menu bar.

Show status bar

This toggle item shows or hides the status string below the canvas.

Show tool bar

This toggle item shows or hides the tool bar at the left of the canvas.

Page setup

Set the properties of the display device. It is the same dialog as in Print setup.

Redraw

This menu item triggers a redrawing of the canvas.

Update all

This menu item causes an update of all GUI controls. Usually, everything is updated automatically, unless one makes modifications by entering commands in the Command tool.

4.8 Window menu

Commands

Command driven version of the interface to Grace. Here, commands are typed at the "Command:" text item and executed when <Return> is pressed. The command will be parsed and executed, and the command line is placed in the history list. Items in the history list can be recalled by simply clicking on them with the left mouse button. For a reference on the Grace command interpreter, see Command interpreter.

Point tracking

Not written yet...

Drawing objects

Not written yet...

Font tool

Not written yet...

Console

The console window displays errors and results of some numerical operations, e.g. nonlinear fit (see Non-linear fit). The window is popped up automatically whenever an error occurs or new result messages appear. This can be altered by checking the "Options/Popup only on errors" option.

4.9 Help menu

On context

Click on any element of the interface to get context-sensitive help on it. Only partially implemented at the moment.

User's guide

Browse the Grace user's guide.

Tutorial

Browse the Grace tutorial.

FAQ

Frequently Asked Questions with answers.

Changes

The list of changes during the Grace development.

Examples

The whole tree of submenus each loading a sample plot.

Comments

Use this to send your suggestions or bug reports.

License terms

Grace licensing terms will be displayed (GPL version 2).

About

A popup with basic info on the software, including some configuration details. More details can be found when running Grace with the "-version" command line flag.

5. Command interpreter

5.1 General notes

The interpreter parses its input in a line-by-line manner. There may be several statements per line, separated by semicolon (;). The maximal line length is 4 kbytes (hardcoded). The parser is case-insensitive and ignores lines beginning with the "#" sign.

5.2 Definitions


Name Description Examples
expr Any numeric expression 1.5 + sin(2)
iexpr Any expression that evaluates to an integer 25, 0.1 + 1.9, PI/asin(1)
nexpr Non-negative iexpr 2 - 1
indx Non-negative iexpr  
sexpr String expression "a string", "a " . "string", "square root of 4 = " . sqrt(4)
vexpr Vector expression "2*x"
Basic types


Expression Description Types Example
GRAPH[id] graph id indx id GRAPH[0]
Gnn graph nn nn: 0-99 G0
Graph selections


Expression Description Types Example
graph.SETS[id] set id in graph graphindx id, graphsel graph GRAPH[0].SETS[1]
graph.Snn set nn in graph graphnn: 0-99, graphsel graph G0.S1
SET[id] set id in the current graphindx id SET[1]
Snn set nn in the current graphnn: 0-99 S1
S_ the last implicitly (i.e. as a result of a data transformation) allocated set in the current graph- S_
S$ the active set in the current graph- S$
Set selections


Expression Description Types Example
Rn region n n: 0-4 R0
Region selections


Expression Description Types Example
COLOR "colorname" a mapped color colorname - COLOR "red"
COLOR id a mapped color with ID id nexpr id COLOR 2
Color selections


Expression Description Types Example
PATTERN id pattern with ID id nexpr id PATTERN 1
Pattern selections


Expression Description Types Example
X the first column - X
Y the second column - Y
Yn (n + 2)-th column n = 0 - 4 Y3
Data column selections

Not finished yet...

5.3 Variables


Variable Description
datacolumn data column of current ("active") set
set.datacolumn data column of set
vvar user-defined array
vvariable [i:j] segment of a vector variable (elements from i-th to j-th inclusive, i <= j)
Vector variables


Variable Description
vvariable[i] i-th element of a vector variable
var user-defined variable
Scalar variables

5.4 Numerical operators and functions

In numerical expressions, the infix format is used. Arguments of both operators and functions can be either scalars or vector arrays. Arithmetic, logical, and comparison operators are given in tables below.


Operator Description
+ addition
- substraction
* multiplication
/ division
% modulus
^ raising to power
Arithmetic operators


Operator Description
AND or && logical AND
OR or || logical OR
NOT or ! logical NOT
Logical operators


Operator Description
EQ or == equal
NE or != not equal
LT or < less than
LE or <= less than or equal
GT or > greater than
GE or >= greater than or equal
Comparison operators

Another conditional operator is the "?:" (or ternary) operator, which operates as in C and many other languages.

(expr1) ? (expr2) : (expr3);

This expression evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.


Function Description
abs(x) absolute value
acos(x) arccosine
acosh(x) hyperbolic arccosine
asin(x) arcsine
asinh(x) hyperbolic arcsine
atan(x) arctangent
atan2(y,x) arc tangent of two variables
atanh(x) hyperbolic arctangent
ceil(x) greatest integer function
cos(x) cosine
cosh(x) hyperbolic cosine
exp(x) e^x
fac(n) factorial function, n!
floor(x) least integer function
irand(n) random integer less than n
ln(x) natural log
log10(x) log base 10
log2(x) base 2 logarithm of x
maxof(x,y) returns greater of x and y
mesh(n) mesh array (0 ... n - 1)
mesh(x1, x2, n) mesh array of n equally spaced points between x1 and x2 inclusive
minof(x,y) returns lesser of x and y
mod(x,y) mod function (also x % y)
pi the PI constant
rand pseudo random number distributed uniformly on (0.0,1.0)
rand(n) array of n random numbers
rint(x) round to closest integer
rsum(x) running sum of x
sgn(x) signum function
sin(x) sine function
sinh(x) hyperbolic sine
sqr(x) x^2
sqrt(x) x^0.5
tan(x) tangent function
tanh(x) hyperbolic tangent
Functions


Function Description
chdtr(df, x) chi-square distribution
chdtrc(v, x) complemented Chi-square distribution
chdtri(df, y) inverse of complemented Chi-square distribution
erf(x) error function
erfc(x) complement of error function
fdtr(df1, df2, x) F distribution function
fdtrc(x) complemented F distribution
fdtri(x) inverse of complemented F distribution
gdtr(a, b, x) gamma distribution function
gdtrc(a, b, x) complemented gamma distribution function
ndtr(x) Normal distribution function
ndtri(x) inverse of Normal distribution function
norm(x) gaussian density function
pdtr(k, m) Poisson distribution
pdtrc(k, m) complemented Poisson distribution
pdtri(k, y) inverse Poisson distribution
rnorm(xbar,s) pseudo random number distributed N(xbar,s)
stdtr(k, t) Student's t distribution
stdtri(k, p) functional inverse of Student's t distribution
Statistical functions


Function Description
ai(x), bi(x) Airy functions (two independent solutions of the differential equation y''(x) = xy)
beta(x) beta function
chi(x) hyperbolic cosine integral
ci(x) cosine integral
dawsn(x) Dawson's integral
ellie(phi, m) incomplete elliptic integral of the second kind
ellik(phi, m) incomplete elliptic integral of the first kind
ellpe(m) complete elliptic integral of the second kind
ellpk(m) complete elliptic integral of the first kind
expn(n, x) exponential integral
fresnlc(x) cosine Fresnel integral
fresnls(x) sine Fresnel integral
gamma(x) gamma function
hyp2f1(a, b, c, x) Gauss hyper-geometric function
hyperg(a, b, x) confluent hyper-geometric function
i0e(x) modified Bessel function of order zero, exponentially scaled
i1e(x) modified Bessel function of order one, exponentially scaled
igam(a, x) incomplete gamma integral
igamc(a, x) complemented incomplete gamma integral
igami(a, p) inverse of complemented incomplete gamma integral
incbet(a, b, x) incomplete beta integral
incbi(a, b, y) Inverse of incomplete beta integral
iv(v, x) modified Bessel function of order v
jv(v, x) Bessel function of order v
k0e(x) modified Bessel function, third kind, order zero, exponentially scaled
k1e(x) modified Bessel function, third kind, order one, exponentially scaled
kn(n, x) modified Bessel function, third kind, integer order
lbeta(x) natural log of |beta(x)|
lgamma(x) log of gamma function
psi(x) psi (digamma) function
rgamma(x) reciprocal gamma function
shi(x) hyperbolic sine integral
si(x) sine integral
spence(x) dilogarithm
struve(v, x) Struve function
voigt(gamma, sigma, x) Voigt function (convolution of Lorentzian and Gaussian)
yv(v, x) Bessel function of order v
zeta(x, q) Riemann zeta function of two arguments
zetac(x) Riemann zeta function
Special math functions


Function Description
MIN(x) min value of array x
MAX(x) max value of array x
AVG(x) average of array x
SD(x) standard deviation of array x
SUM(x) sum of all elements of array x
INT(x,y) integral of y dx
IMIN(x) index of min value of array x
IMAX(x) index of max value of array x
Aggregate functions

5.5 Procedures

Methods of directly manipulating the data corresponding to the Data|Transformation menu are described in table transformations . To evaluate expressions, you can directly submit them to the command interpreter like you would in the evaluate expression window. As an example, S1.X = S1.X * 0.000256 scales the x-axis coordinates. The functionality of the 'Sample points' menu entry can be obtained through RESTRICT.


Statement Description Types Example
RUNAVG (set, npoints) running average of set using npoints number of points nexpr npoints RUNAVG (S0, 100)
RUNMED (set, npoints) running median of set using npoints number of points nexpr npoints RUNMED (S0, 100)
RUNMIN (set, npoints) running minimum of set using npoints number of points nexpr npoints RUNMIN (S0, 100)
RUNMAX (set, npoints) running maximum of set using npoints number of points nexpr npoints RUNMAX (S0, 100)
RUNSTD (set, npoints) running standard deviation of set using npoints number of points nexpr points RUNSTD (S0, 100)
INTERPOLATE (set, mesh, method, strict) interpolate set on a sampling mesh using method. strict flag controls whether result should be bound within the source set vexpr mesh, method: one of LINEAR, SPLINE, and ASPLINE, onoff strict INTERPOLATE (S0, S1.X, ASPLINE, OFF)
HISTOGRAM (set, bins, cumulative, normalize) calculate histogram of set on defined bins. cumulative and normalize flags control whether to calculate cumulative and normalized (aka PDF) histograms, respectively. Data points are placed at upper limit of the bin vexpr bins, onoff cumulative, onoff normalize HISTOGRAM (S0, MESH(0, 1, 11), OFF, ON)
INTEGRATE (set) cumulative integral of set   INTEGRATE (S0)
XCOR (set1, set2, maxlag, covar) calculate cross-correlation (or -covariance if the covar flag is set) of set1 with set2 with maximum lag maxlag. nexpr maxlag, onoff covar XCOR (S0, S0, 50, OFF)
LINCONV (set1, set2) calculate linear convolution of the array of ordinates of set1 with that of set2.   LINCONV (S0, S1)
RESTRICT (set, restriction) filter set according to logical restriction. The original set will be overwritten vexpr restriction RESTRICT (S0, S0.X < 0)
RESTRICT (set, region, negate) filter set by keeping only points lying inside/outside region. The original set will be overwritten onoff negateRESTRICT (S0, R1, OFF)
Transformations

Not finished yet...

5.6 Device parameters

For producing "hard copy", several parameters can be set via the command interpreter. They are summarized in table Device parameters.


Command Description
PAGE SIZE xdim, ydim set page dimensions (in pp) of all devices
PAGE RESIZE xdim, ydim same as above plus rescale the current plot accordingly
DEVICE "devname" PAGE SIZE xdim, ydim set page dimensions (in pp) of device devname
DEVICE "devname" DPI dpi set device's dpi (dots per pixel)
DEVICE "devname" FONT onoff enable/disable usage of built-in fonts for device devname
DEVICE "devname" FONT ANTIALIASING onoff enable/disable font aliasing for device devname
DEVICE "devname" OP "options" set device specific options (see Device-specific settings)
HARDCOPY DEVICE "devname" set device devname as current hardcopy device
PRINT TO "filename" set print output to filename (but do not print)
PRINT TO DEVICE set print output to hardcopy device (but do not print)
Device parameters

5.7 Flow control


Statement Description Types Example
EXIT(status) cause normal program termination with exit status status iexpr status EXIT(0)
EXIT cause normal program termination; same as EXIT(0)   EXIT
HELP url open a HTML document pointed to by url sexpr url HELP "doc/FAQ.html"
HELP open User's Guide   HELP
PRINT execute print job   PRINT
AUTOSCALE scale the graph   AUTOSCALE
AUTOSCALE XAXES scale the graph in x only   AUTOSCALE XAXES
AUTOSCALE YAXES scale the graph in y only   AUTOSCALE YAXES
AUTOSCALE set scale to a specific set   AUTOSCALE S0
AUTOTICKS autotick all axes   AUTOTICKS
REDRAW refresh the canvas to reflect the current project state   REDRAW
SLEEP n sleep for n seconds expr n SLEEP(3)
UPDATEALL update the GUI (graph and set selectors etc) to reflect the current project state   UPDATEALL
SAVEALL "file" save project to file sexpr file SAVEALL "foo.agr"
LOAD "file" load project file sexpr file LOAD "foo.agr"
Flow control

5.8 Declarations

User-defined variables are set and used according to the syntax described in table User variables.


Statement Description Types Example
DEFINE var define new scalar variable var   DEFINE myvar
DEFINE vvar[] define new vector variable vvar of zero length   DEFINE myvvar[]
DEFINE vvar[n] define new vector variable vvar of length n nexpr n DEFINE myvvar[10]
CLEAR var undefine new variable var and deallocate associated storage   CLEAR myvar
vvar LENGTH n reallocate vector variable vvar nexpr n myvvar LENGTH 25
User variables

Not finished yet...

5.9 Graph properties

We divide the commands pertaining to the properties and appearance of graphs into those which directly manipulate the graphs and those that affect the appearance of graph elements---the parameters that can appear in a Grace project file.

Command operations

General graph creation/annihilation and control commands appear in table Graph operations.


Statement Description Types Example
FOCUS graph Makes graph current and unhides it if necessary graphsel graph FOCUS G0
KILL graph Kills graph graphsel graph KILL G0
ARRANGE(nrows, ncols, offset, hgap, vgap) Arrange existing graphs (or add extra if needed) to form an nrows by ncols matrix, leaving offset at each page edge with hgap and vgap relative horizontal and vertical spacings nexpr nrows, ncols, expr offset, hgap, vgap ARRANGE(2, 2, 0.1, 0.15, 0.2)
ARRANGE(nrows, ncols, offset, hgap, vgap, hvinv, hinv, vinv) Same as above, plus additional hvinv, hinv, and vinv flags allowing to alter the order of the matrix filling nexpr nrows, ncols, expr offset, hgap, vgap, onoff hvinv, hinv, vinv ARRANGE(2, 2, 0.1, 0.15, 0.2, ON, OFF, ON)
ARRANGE(nrows, ncols, offset, hgap, vgap, hvinv, hinv, vinv, snake) Same as above, plus additional snake flag allowing to fill the matrix in a snake-like fashion nexpr nrows, ncols, expr offset, hgap, vgap, onoff hvinv, hinv, vinv, snake ARRANGE(2, 2, 0.1, 0.15, 0.2, ON, OFF, ON, ON)
Graph operations

Parameter settings

Setting the active graph and its type is accomplished with the commands found in table Graph selection parameters.


Statement Description Types Example
WITH graph Makes graph current graphsel graph WITH G0
TYPE type Sets type of current graph graphtype type TYPE XY
graph onoff (De)Activates selected graph graphsel graph, onoff G0 ON
graph HIDDEN onoff Hides selected graph graphsel graph, onoff G1 HIDDEN TRUE
graph TYPE type Sets type of graph graphsel graph, graphtype type G0 TYPE XYDY
Graph selection parameters

The axis range and scale of the current graph as well as its location on the plot viewport are set with the commands listed in table Axis parameters.

Statement Description Types Example
WORLD XMIN xmin Sets minimum value of current graph's x axis to xmin expr xmin WORLD XMIN -10
WORLD XMAX xmax Sets maximum value of current graph's x axis to xmin expr xmax WORLD XMAX 22.5
WORLD YMIN ymin Sets minimum value of current graph's y axis to ymin expr ymin WORLD YMIN 0
WORLD YMAX ymax Sets maximum value of current graph's y axis to ymax expr ymax WORLD YMAX 1e4
VIEW XMIN xmin Sets left edge of current graph at x=xmin in the viewport expr xmin VIEW XMIN .2
VIEW XMAX xmax Sets right edge of current graph at x=xmax in the viewport expr xmax VIEW XMAX 1.0
VIEW YMIN ymin Sets bottom edge of current graph at y=ymin in the viewport expr ymin VIEW YMIN .25
VIEW YMAX ymax Sets top edge of current graph at y=ymax in the viewport expr ymax VIEW YMAX .75
VIEW xmin, ymin, xmax, ymax Sets graph's viewport expr xmin, ymin, xmax, ymax VIEW 0.15, 0.15, 1.15, 0.85
XAXES SCALE type Set scaling of the x axes to type type: one of NORMAL, LOGARITHMIC, or RECIPROCAL XAXES SCALE NORMAL
YAXES SCALE type Set scaling of the y axes to type type: one of NORMAL, LOGARITHMIC, or RECIPROCAL YAXES SCALE LOGARITHMIC
XAXES INVERT onoff If ON, draws xmin to xmax from right to left onoff XAXES INVERT OFF
YAXES INVERT onoff If ON, draws ymin to ymax from top to bottom onoff YAXES INVERT OFF
AUTOSCALE ONREAD type Set automatic scaling on read according to type type: one of NONE, XAXES, YAXES, XYAXES AUTOSCALE ONREAD NONE
Axis parameters

The commands to set the appearance and textual content of titles and legends are given in table Titles and legends.


Statement Description Types Example
TITLE title Sets the title of current graph sexpr title TITLE "Foo"
TITLE FONT font Selects font of title string fontsel font TITLE FONT 1
TITLE SIZE size Sets size of title string expr size TITLE SIZE 1.5
TITLE COLOR color Sets color of title string colorsel color TITLE COLOR 1
SUBTITLE subtitle Sets the subtitle of current graph sexpr subtitle SUBTITLE "Bar"
SUBTITLE FONT font Selects font of subtitle string fontsel font SUBTITLE FONT "Times-Italic"
SUBTITLE SIZE size Sets size of subtitle string expr size SUBTITLE SIZE .60
SUBTITLE COLOR color Sets color of subtitle string colorsel color SUBTITLE COLOR "blue"
LEGEND onoff Toggle legend display onoff LEGEND ON
LEGEND LOCTYPE type Posistion legend in type coordinates type: either WORLD or VIEW LEGEND LOCTYPE WORLD
LEGEND xloc, yloc Set location of legend box (upper left corner) expr xloc, yloc LEGEND .5,.75
LEGEND FONT font Set legend font type fontsel font LEGEND FONT "Helvetica"
LEGEND CHAR SIZE size Sets size of legend label characters (1 is normal)expr size LEGEND CHAR SIZE .30
LEGEND color Set color of legend text colorsel color LEGEND COLOR 1
LEGEND VGAP gap Sets vertical gap between legend entries nexpr gap LEGEND VGAP 1
LEGEND HGAP gap Sets horizontal gap between symbol and description nexpr gap LEGEND HGAP 4
LEGEND LENGTH length Sets length of legendnexpr length LEGEND LENGTH 5
LEGEND INVERT onoff Determines relationship between order of sets and order of legend labels onoff LEGEND INVERT true
LEGEND BOX onoff Determines if the legend bounding box is drawn onoff LEGEND BOX off
LEGEND BOX COLOR color Sets color of legend bounding box colorsel color LEGEND BOX COLOR 1
LEGEND BOX PATTERN pattern Sets pattern of legend bounding box patternsel pattern LEGEND BOX PATTERN 2
LEGEND BOX LINESTYLE style Sets line style of bounding box nexpr style LEGEND BOX LINESTYLE 1
LEGEND BOX LINEWIDTH width Sets line width of bounding boxnexpr width LEGEND BOX LINEWIDTH 2
LEGEND BOX FILL onoff Determines if the legend bounding box is filled onoff LEGEND BOX FILL false
LEGEND BOX FILL COLOR color Sets color of legend box fill colorsel color LEGEND BOX COLOR 3
LEGEND BOX FILL pattern Sets pattern of legend box fill patternsel pattern LEGEND BOX FILL PATTERN 1
Titles and legends

Not finished yet...

5.10 Set properties

Again, as with the graphs, we separate those parser commands that manipulate the data in a set from the commands that determine parameters---elements that are saved in a project file.

Commands

Operations for set I/O are summarized in table Set input, output, and creation. (Note that this is incomplete and only lists input commands at the moment.)


Statement Description Types Example
READ "file" Reads file as a single set sexpr file READ "foo.dat"
READ settype "file" Reads file into a single set of type settype xytype settype, sexpr file READ xydy "bar.dat"
READ NXY "file" Reads file as NXY data sexpr file READ NXY "gad.dat"
READ BLOCK "file" Reads file as block data sexpr file READ BLOCK "zooks.dat"
KILL BLOCK Kills the current block data and frees the associated memory   KILL BLOCK
BLOCK settype columns Forms a data set of type settype using columns from current block data file. xytype settype, sexpr columns BLOCK xydxdy "0:2:1:3"
WRITE set writes set to stdoutsetsel set WRITE G0.S1
WRITE set FORMAT "formatstring" writes set to stdout using format specification formatstring setsel set sexpr formatstring WRITE G0.S1 FORMAT "%18.8g"
WRITE set FILE "file" writes set to file setsel set sexpr file WRITE G0.S1 FILE "data.dat"
WRITE set FILE "file" FORMAT "formatstring" writes set to file using format specification formatstring setsel set sexpr file sexpr formatstring WRITE G0.S1 FILE "data.dat" FORMAT "%18.8g"
Set input, output, and creation

The parser commands analogous to the Data|Data set operations dialogue can be found in table Set operations.

Statement Description Types Example
COPY src TO dest Copies src to destsetsel src,dest COPY S0 TO S1
MOVE src TO dest Moves src to dest setsel src,dest MOVE G0.S0 TO G1.S0
SWAP src AND dest Interchanges src and dest setsel src,dest SWAP G0.S0 AND G0.S1
KILL set Kills set setsel set KILL G0.S0
Set operations

Not Finished yet...

Parameter settings

Not written yet...

6. Advanced topics

6.1 Fonts

For all devices, Grace uses Type1 fonts. Both PFA (ASCII) and PFB (binary) formats can be used.

Font configuration

The file responsible for the font configurations of Grace is fonts/FontDataBase. The first line contains a positive integer specifying the number of fonts declared in that file. All remaining lines contain declarations of one font each, composed out of three fields:

  1. Font name. The name will appear in the font selector controls. Also, backend devices that has built-in fonts, will be given the name as a font identifier.
  2. Font fall-back. Grace will try to use this in case the real font is not found.
  3. Font filename. The file with the font outline data.

Here is the default FontDataBase file:


14
Times-Roman             Times-Roman             n021003l.pfb
Times-Italic            Times-Italic            n021023l.pfb
Times-Bold              Times-Bold              n021004l.pfb
Times-BoldItalic        Times-BoldItalic        n021024l.pfb
Helvetica               Helvetica               n019003l.pfb
Helvetica-Oblique       Helvetica-Oblique       n019023l.pfb
Helvetica-Bold          Helvetica-Bold          n019004l.pfb
Helvetica-BoldOblique   Helvetica-BoldOblique   n019024l.pfb
Courier                 Courier                 n022003l.pfb
Courier-Oblique         Courier-Oblique         n022023l.pfb
Courier-Bold            Courier-Bold            n022004l.pfb
Courier-BoldOblique     Courier-BoldOblique     n022024l.pfb
Symbol                  Symbol                  s050000l.pfb
ZapfDingbats            ZapfDingbats            d050000l.pfb
      

Font data files

For text rastering, three types of files are used.

  1. .pfa-/.pfb-files: These contain the character outline descriptions. The files are assumed to be in the fonts/type1 directory; these are the filenames specified in the FontDataBase configuration file.
  2. .afm-files: These contain high-precision font metric descriptions as well as some extra information, such as kerning and ligature information for a particular font. It is assumed that the filename of a font metric file has same basename as the respective font outline file, but with the .afm extension; the metric files are expected to be found in the fonts/type1 directory, too.
  3. .enc-files: These contain encoding arrays in a special but simple form. They are only needed if someone wants to load a special encoding to re-encode a font. Their place is fonts/enc

Custom fonts

It is possible to use custom fonts with Grace. One mostly needs to use extra fonts for the purpose of localization. For many European languages, the standard fonts supplied with Grace should contain all the characters needed, but encoding may have to be adjusted. This is done by putting a Default.enc file with proper encoding scheme into the fonts/enc directory. Grace comes with a few encoding files in the directory; more can be easily found on the Internet. (If the Default.enc file doesn't exist, the IsoLatin1 encoding will be used). Notice that for fonts having an encoding scheme in themselves (such as the Symbol font, and many nationalized fonts) the default encoding is ignored.

If you do need to use extra fonts, you should modify the FontDataBase file accordingly, obeying its format. However, if you are going to exchange Grace project files with other people who do not have the extra fonts configured, an important thing is to define reasonable fall-back font names.

For example, let us assume I use Hebrew fonts, and the configuration file has lines like these:


    ...
Courier-Hebrew              Courier                 courh___.pfa
Courier-Hebrew-Oblique      Courier-Oblique         courho__.pfa
    ...
      

My colleague, who lives in Russia, uses Cyrillic fonts with Grace configured like this:

    ...
Cronix-Courier              Courier                 croxc.pfb
Cronix-Courier-Oblique      Courier-Oblique         croxco.pfb
    ...
      

The font mapping information (Font name <-> Font fall-back) is stored in the Grace project files. Provided that all the localized fonts have English characters in the lower part of the ASCII table unmodified, I can send my friend files (with no Hebrew characters, of course) and be sure they render correctly on his computer.

Thus, with properly configured national fonts, you can make localized annotations for plots intended for internal use of your institution, while being able to exchange files with colleagues from abroad. People who ever tried to do this with MS Office applications should appreciate the flexibility :-).

6.2 Interaction with other applications

Using pipes

Using grace_np library

The grace_np library is a set of compiled functions that allows you to launch and drive a Grace subprocess from your C or Fortran application. Functions are provided to start the subprocess, to send it commands or data, to stop it or detach from it.


Function Arguments Description
int GraceOpenVA (char *exe, int buf_size, ...) launch a Grace executable exe and open a communication channel with it using buf_size bytes for data buffering. The remaining NULL-terminated list of options is command line arguments passed to the Grace process
int GraceOpen (int buf_size) equivalent to GraceOpenVA("xmgrace", buf_size, "-nosafe", "-noask", NULL)
int GraceIsOpen (void) test if a Grace subprocess is currently connected
int GraceClose (void) close the communication channel and exit the Grace subprocess
int GraceClosePipe (void) close the communication channel and leave the Grace subprocess alone
int GraceFlush (void) flush all the data remaining in the buffer
int GracePrintf (const char* format, ...) format a command and send it to the Grace subprocess
int GraceCommand (const char* cmd) send an already formated command to the Grace subprocess
GraceErrorFunctionType GraceRegisterErrorFunction (GraceErrorFunctionType f) register a user function f to display library errors
grace_np library C functions.


Function Arguments Description
integer GraceOpenF (integer buf_size) launch a Grace subprocess and open a communication channel with it
integer GraceIsOpenF (void) test if a Grace subprocess is currently connected
integer GraceCloseF (void) close the communication channel and exit the Grace subprocess
integer GraceClosePipeF (void) close the communication channel and leave the Grace subprocess alone
integer GraceFlushF (void) flush all the data remaining in the buffer
integer GraceCommandF (character*(*) cmd) send an already formatted command to the Grace subprocess
GraceFortranFunctionType GraceRegisterErrorFunctionF (GraceFortranFunctionType f) register a user function f to display library errors
grace_np library F77 functions.

There is no Fortran equivalent for the GracePrintf function, you should format all the data and commands yourself before sending them with GraceCommandF.

The Grace subprocess listens for the commands you send and interprets them as if they were given in a batch file. You can send any command you like (redraw, autoscale, ...). If you want to send data, you should include them in a command like "g0.s0 point 3.5, 4.2".

Apart from the fact it monitors the data sent via an anonymous pipe, the Grace subprocess is a normal process. You can interact with it through the GUI. Note that no error can be sent back to the parent process. If your application send erroneous commands, an error popup will be displayed by the subprocess.

If you exit the subprocess while the parent process is still using it, the broken pipe will be detected. An error code will be returned to every further call to the library (but you can still start a new process if you want to manage this situation).

Here is an example use of the library, you will find this program in the distribution.


#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <grace_np.h>

#ifndef EXIT_SUCCESS
#  define EXIT_SUCCESS 0
#endif

#ifndef EXIT_FAILURE
#  define EXIT_FAILURE -1
#endif

void my_error_function(const char *msg)
{
    fprintf(stderr, "library message: \"%s\"\n", msg);
}

int
main(int argc, char* argv[])
{
    int i;

    GraceRegisterErrorFunction(my_error_function);

    /* Start Grace with a buffer size of 2048 and open the pipe */
    if (GraceOpen(2048) == -1) {
        fprintf(stderr, "Can't run Grace. \n");
        exit(EXIT_FAILURE);
    }
    
    /* Send some initialization commands to Grace */
    GracePrintf("world xmax 100");
    GracePrintf("world ymax 10000");
    GracePrintf("xaxis tick major 20");
    GracePrintf("xaxis tick minor 10");
    GracePrintf("yaxis tick major 2000");
    GracePrintf("yaxis tick minor 1000");
    GracePrintf("s0 on");
    GracePrintf("s0 symbol 1");
    GracePrintf("s0 symbol size 0.3");
    GracePrintf("s0 symbol fill pattern 1");
    GracePrintf("s1 on");
    GracePrintf("s1 symbol 1");
    GracePrintf("s1 symbol size 0.3");
    GracePrintf("s1 symbol fill pattern 1");

    /* Display sample data */
    for (i = 1; i <= 100 && GraceIsOpen(); i++) {
        GracePrintf("g0.s0 point %d, %d", i, i);
        GracePrintf("g0.s1 point %d, %d", i, i * i);
        /* Update the Grace display after every ten steps */
        if (i % 10 == 0) {
            GracePrintf("redraw");
            /* Wait a second, just to simulate some time needed for
               calculations. Your real application shouldn't wait. */
            sleep(1);
        }
    }

    if (GraceIsOpen()) {
        /* Tell Grace to save the data */
        GracePrintf("saveall \"sample.agr\"");

        /* Flush the output buffer and close Grace */
        GraceClose();

        /* We are done */
        exit(EXIT_SUCCESS);
    } else {
        exit(EXIT_FAILURE);
    }
}

To compile this program, type


        cc example.c -lgrace_np
      

If Grace wasn't properly installed, you may need to instruct the compiler about include and library paths explicitly, e.g.

        cc -I/usr/local/grace/include example.c -L/usr/local/grace/lib -lgrace_np
      

6.3 FFTW tuning

When the FFTW capabilities are compiled in, Grace looks at two environment variables to decide what to do with the FFTW 'wisdom' capabilities. First, a quick summary of what this is. The FFTW package is capable of adaptively determining the most efficient factorization of a set to give the fastest computation. It can store these factorizations as 'wisdom', so that if a transform of a given size is to be repeated, it is does not have to re-adapt. The good news is that this seems to work very well. The bad news is that, the first time a transform of a given size is computed, if it is not a sub-multiple of one already known, it takes a LONG time (seconds to minutes).

The first environment variable is GRACE_FFTW_WISDOM_FILE. If this is set to the name of a file which can be read and written (e.g., $HOME/.grace_fftw_wisdom) then Grace will automatically create this file (if needed) and maintain it. If the file is read-only, it will be read, but not updated with new wisdom. If the symbol GRACE_FFTW_WISDOM_FILE either doesn't exist, or evaluates to an empty string, Grace will drop the use of wisdom, and will use the fftw estimator (FFTW_ESTIMATE flag sent to the planner) to guess a good factorization, instead of adaptively determining it.

The second variable is GRACE_FFTW_RAM_WISDOM. If this variable is defined to be non-zero, and GRACE_FFTW_WISDOM_FILE variable is not defined (or is an empty string), Grace will use wisdom internally, but maintain no persistent cache of it. This will result in very slow execution times the first time a transform is executed after Grace is started, but very fast repeats. I am not sure why anyone would want to use wisdom without writing it to disk, but if you do, you can use this flag to enable it.

6.4 DL modules

Grace can access external functions present in either system or third-party shared libraries or modules specially compiled for use with Grace.

Function types

One must make sure, however, that the external function is of one of supported by Grace types:

Grace type Description
f_of_i a function of 1 int variable
f_of_d a function of 1 double variable
f_of_nn a function of 2 int parameters
f_of_nd a function of 1 int parameter and 1 double variable
f_of_dd a function of 2 double variables
f_of_nnd a function of 2 int parameters and 1 double variable
f_of_ppd a function of 2 double parameters and 1 double variable
f_of_pppd a function of 3 double parameters and 1 double variable
f_of_ppppd a function of 4 double parameters and 1 double variable
f_of_pppppd a function of 5 double parameters and 1 double variable
Grace types for external functions

The return values of functions are assumed to be of the double type.

Note, that there is no difference from the point of view of function prototype between parameters and variables; the difference is in the way Grace treats them - an attempt to use a vector expression as a parameter argument will result in a parse error.

Let us consider few examples.

Examples

Caution: the examples provided below (paths and compiler flags) are valid for Linux/ELF with gcc. On other operating systems, you may need to refer to compiler/linker manuals or ask a guru.

Example 1

Suppose I want to use function pow(x,y) from the Un*x math library (libm). Of course, you can use the "^" operator defined in the Grace language, but here, for the sake of example, we want to access the function directly.

The command to make it accessible by Grace is

USE "pow" TYPE f_of_dd FROM "/usr/lib/libm.so"

Try to plot y = pow(x,2) and y = x^2 graphs (using, for example, "create new -> Formula" from any set selector) and compare.

Example 2

Now, let us try to write a function ourselves. We will define function my_function which simply returns its (second) argument multiplied by integer parameter transferred as the first argument.

In a text editor, type in the following C code and save it as "my_func.c":


       double my_function (int n, double x)
       {
           double retval;
           retval = (double) n * x;
           return (retval);
       }
       

OK, now compile it:


       $gcc -c -fPIC my_func.c
       $gcc -shared my_func.o -o /tmp/my_func.so
       

(You may strip it to save some disk space):


       $strip /tmp/my_func.so
       

That's all! Ready to make it visible to Grace as "myf" - we are too lazy to type the very long string "my_function" many times.

USE "my_function" TYPE f_of_nd FROM "/tmp/my_func.so" ALIAS "myf"

Example 3

A more serious example. There is a special third-party library available on your system which includes a very important for you yet very difficult-to-program from the scratch function that you want to use with Grace. But, the function prototype is NOT one of any predefined types. The solution is to write a simple function wrapper. Here is how:

Suppose, the name of the library is "special_lib" and the function you are interested in is called "special_func" and according to the library manual, should be accessed as void special_func(double *input, double *output, int parameter). The wrapper would look like this:


       double my_wrapper(int n, double x)
       {
           extern void special_func(double *x, double *y, int n);
           double retval;
           (void) special_func(&x, &retval, n);
           return (retval);
       }
       

Compile it:


       $gcc -c -fPIC my_wrap.c
       $gcc -shared my_wrap.o -o /tmp/my_wrap.so -lspecial_lib -lblas
       $strip /tmp/my_wrap.so
       

Note that I added -lblas assuming that the special_lib library uses some functions from the BLAS. Generally, you have to add all libraries which your module depends on (and all libraries those libraries rely upon etc.), as if you wanted to compile a plain executable.

Fine, make Grace aware of the new function

USE "my_wrapper" TYPE f_of_nd FROM "/tmp/my_wrap.so" ALIAS "special_func"

so we can use it with its original name.

Example 4

An example of using Fortran modules.

Here we will try to achieve the same functionality as in Example 2, but with the help of F77.


       DOUBLE PRECISION FUNCTION MYFUNC (N, X)
       IMPLICIT NONE
       INTEGER N
       DOUBLE PRECISION X
C
       MYFUNC = N * X
C
       RETURN
       END
       

As opposite to C, there is no way to call such a function from Grace directly - the problem is that in Fortran all arguments to a function (or subroutine) are passed by reference. So, we need a wrapper:


       double myfunc_wrapper(int n, double x)
       {
           extern double myfunc_(int *, double *);
           double retval;
           retval = myfunc_(&n, &x);
           return (retval);
       }
       

Note that most of f77 compilers by default add underscore to the function names and convert all names to the lower case, hence I refer to the Fortran function MYFUNC from my C wrapper as myfunc_, but in your case it can be different!

Let us compile the whole stuff:


       $g77 -c -fPIC myfunc.f
       $gcc -c -fPIC myfunc_wrap.c
       $gcc -shared myfunc.o myfunc_wrap.o -o /tmp/myfunc.so -lf2c -lm
       $strip /tmp/myfunc.so
       

And finally, inform Grace about this new function:

USE "myfunc_wrapper" TYPE f_of_nd FROM "/tmp/myfunc.so" ALIAS "myfunc"

Operating system issues

OS/2

In general the method outlined in the examples above can be used on OS/2, too. However you have to create a DLL (Dynamic Link Library) which is a bit more tricky on OS/2 than on most Un*x systems. Since Grace was ported by using EMX we also use it to create the examples; however other development environments should work as well (ensure to use the _System calling convention!). We refer to Example 2 only. Example 1 might demonstrate that DLLs can have their entry points (i.e. exported functions) callable via ordinals only, so you might not know how to access a specific function without some research. First compile the source from Example 2 to "my_func.obj"

gcc -Zomf -Zmt -c my_func.c -o my_func.obj

Then you need to create a linker definition file "my_func.def" which contains some basic info about the DLL and declares the exported functions.


         LIBRARY my_func INITINSTANCE TERMINSTANCE
         CODE LOADONCALL
         DATA LOADONCALL MULTIPLE NONSHARED
         DESCRIPTION 'This is a test DLL: my_func.dll'
         EXPORTS
         my_function
         

(don't forget about the 8 characters limit on the DLL name!). Finally link the DLL:

gcc my_func.obj my_func.def -o my_func.dll -Zdll -Zno-rte -Zmt -Zomf

(check out the EMX documentation about the compiler/linker flags used here!) To use this new library function within Grace you may either put the DLL in the LIBPATH and use the short form:

USE "my_function" TYPE f_of_nd FROM "my_func" ALIAS "myf"

or put it in an arbitrary path which you need to specify explicitly then:

USE "my_function" TYPE f_of_nd FROM "e:/foo/my_func.dll" ALIAS "myf"

(as for most system-APIs you may use the Un*x-like forward slashs within the path!)

7. References

7.1 Typesetting

Grace permits quite complex typesetting on a per string basis. Any string displayed (titles, legends, tick marks,...) may contain special control codes to display subscripts, change fonts within the string etc.


Control code Description
\f{x} switch to font named "x"
\f{n} switch to font number n
\f{} return to original font
\R{x} switch to color named "x"
\R{n} switch to color number n
\R{} return to original color
\#{x} treat "x" (must be of even length) as list of hexadecimal char codes
\t{xx xy yx yy} apply transformation matrix
\t{} reset transformation matrix
\z{x} zoom x times
\z{} return to original zoom
\r{x} rotate by x degrees
\l{x} slant by factor x
\v{x} shift vertically by x
\v{} return to unshifted baseline
\V{x} shift baseline by x
\V{} reset baseline
\h{x} horizontal shift by x
\n new line
\u begin underline
\U stop underline
\o begin overline
\O stop overline
\Fk enable kerning
\FK disable kerning
\Fl enable ligatures
\FL disable ligatures
\m{n} mark current position as n
\M{n} return to saved position n
\dl LtoR substring direction
\dr RtoL substring direction
\dL LtoR text advancing
\dR RtoL text advancing
\x switch to Symbol font (same as \f{Symbol})
\+ increase size (same as \z{1.19} ; 1.19 = sqrt(sqrt(2)))
\- decrease size (same as \z{0.84} ; 0.84 = 1/sqrt(sqrt(2)))
\s begin subscripting (same as \v{-0.4}\z{0.71})
\S begin superscripting (same as \v{0.6}\z{0.71})
\T{xx xy yx yy} same as \t{}\t{xx xy yx yy}
\Z{x} absolute zoom x times (same as \z{}\z{x})
\q make font oblique (same as \l{0.25})
\Q undo oblique (same as \l{-0.25})
\N return to normal style (same as \v{}\t{})
\\ print \
\n switch to font number n (0-9) (deprecated)
\c begin using upper 128 characters of set (deprecated)
\C stop using upper 128 characters of set (deprecated)
Control codes.

Example:

F\sX\N(\xe\f{}) = sin(\xe\f{})\#{b7}e\S-X\N\#{b7}cos(\xe\f{})

prints roughly

                       -x
       F (e) = sin(e)·e  ·cos(e)
        x
       

using string's initial font and e prints as epsilon from the Symbol font.

NOTE: Characters from the upper half of the char table can be entered directly from the keyboard, using appropriate xmodmap(1) settings, or with the help of the font tool ("Window/Font tool").

7.2 Device-specific limitations

Grace can output plots using several device backends. The list of available devices can be seen (among other stuff) by specifying the "-version" command line switch.

  • X11, PostScript and EPS are full-featured devices
  • Raster drivers (PNM/JPEG/PNG):
    • only even-odd fill rule is supported
    • patterned lines are not implemented
  • PDF driver:
    • bitmapped text strings are not transparent
  • MIF driver:
    • some of patterned fills not implemented
    • bitmapped text strings not implemented
  • SVG driver:
    • bitmapped text strings not implemented

7.3 Device-specific settings

Some of the output devices accept several configuration options. You can set the options by passing a respective string to the interpreter using the "DEVICE "devname" OP "options"" command (see Device parameters). A few options can be passed in one command, separated by commas.


Command Description
grayscale set grayscale output
color set color output
level1 use only PS Level 1 subset of commands
level2 use also PS Level 2 commands if needed
docdata:7bit the document data is 7bit clean
docdata:8bit the document data is 8bit clean
docdata:binary the document data may be binary
xoffset:x set page offset in X direction x pp
yoffset:y set page offset in Y direction y pp
mediafeed:auto default input tray
mediafeed:match select input with media matching page dimensions
mediafeed:manual manual media feed
hwresolution:on set hardware resolution
hwresolution:off do not set hardware resolution
PostScript driver options


Command Description
grayscale set grayscale output
color set color output
level1 use only PS Level 1 subset of commands
level2 use also PS Level 2 commands if needed
bbox:tight enable "tight" bounding box
bbox:page bounding box coincides with page dimensions
EPS driver options


Command Description
PDF1.3 set compatibility mode to PDF-1.3
PDF1.4 set compatibility mode to PDF-1.4
compression:value set compression level (0 - 9)
patterns:on enable use of patterns
patterns:off disable use of patterns
PDF driver options


Command Description
format:pbm output in PBM format
format:pgm output in PGM format
format:ppm output in PPM format
rawbits:on "rawbits" (binary) output
rawbits:off ASCII output
PNM driver options


Command Description
grayscale set grayscale output
color set color output
optimize:on/off enable/disable optimization
quality:value set compression quality (0 - 100)
smoothing:value set smoothing (0 - 100)
baseline:on/off do/don't force baseline output
progressive:on/off do/don't output in progressive format
dct:ifast use fast integer DCT method
dct:islow use slow integer DCT method
dct:float use floating-point DCT method
JPEG driver options


Command Description
interlaced:on make interlaced image
interlaced:off don't make interlaced image
transparent:on produce transparent image
transparent:off don't produce transparent image
compression:value set compression level (0 - 9)
PNG driver options

7.4 Dates in Grace

We use two calendars in Grace: the one that was established in 532 by Denys and lasted until 1582, and the one that was created by Luigi Lilio (Alyosius Lilius) and Christoph Klau (Christophorus Clavius) for pope Gregorius XIII. Both use the same months (they were introduced under emperor Augustus, a few years after Julian calendar introduction, both Julius and Augustus were honored by a month being named after each one).

The leap years occurred regularly in Denys's calendar: once every four years, there is no year 0 in this calendar (the leap year -1 was just before year 1). This calendar was not compliant with earth motion and the dates were slowly shifting with regard to astronomical events.

This was corrected in 1582 by introducing Gregorian calendar. First a ten days shift was introduced to reset correct dates (Thursday October the 4th was followed by Friday October the 15th). The rules for leap years were also changed: three leap years are removed every four centuries. These years are those that are multiple of 100 but not multiple of 400: 1700, 1800, and 1900 were not leap years, but 1600 and 2000 were (will be) leap years.

We still use Gregorian calendar today, but we now have several time scales for increased accuracy. The International Atomic Time (TAI) is a linear scale: the best scale to use for scientific reference. The Coordinated Universal Time (UTC, often confused with Greenwich Mean Time) is a legal time that is almost synchronized with earth motion. However, since the earth is slightly slowing down, leap seconds are introduced from time to time in UTC (about one second every 18 months). UTC is not a continuous scale ! When a leap second is introduced by International Earth Rotation Service, this is published in advance and the legal time sequence is as follows: 23:59:59 followed one second later by 23:59:60 followed one second later by 00:00:00. At the time of this writing (1999-01-05) the difference between TAI and UTC was 32 seconds, and the last leap second was introduced in 1998-12-31.

These calendars allow to represent any date from the mist of the past to the fog of the future, but they are not convenient for computation. Another time scale is possible: counting only the days from a reference. Such a time scale was introduced by Joseph-Juste Scaliger (Josephus Justus Scaliger) in 1583. He decided to use "-4713-01-01T12:00:00" as a reference date because it was at the same time a Monday, first of January of a leap year, there was an exact number of 19 years Meton cycle between this date and year 1 (for Easter computation), and it was at the beginning of a 15 years Roman indiction cycle. The day number counted from this reference is traditionally called Julian day, but it has really nothing to do with the Julian calendar.

Grace stores dates internally as reals numbers counted from a reference date. The default reference date is the one chosen by Scaliger, it is a classical reference for astronomical events. It can modified for a single session using the Edit->Preferences popup of the GUI. If you often work with a specific reference date you can set it for every sessions with a REFERENCE DATE command in your configuration file (see Default template).

The following date formats are supported (hour, minutes and seconds are always optional):

  1. iso8601 : 1999-12-31T23:59:59.999
  2. european : 31/12/1999 23:59:59.999 or 31/12/99 23:59:59.999
  3. us : 12/31/1999 23:59:59.999 or 12/31/99 23:59:59.999
  4. Julian : 123456.789

One should be aware that Grace does not allow to put a space in one data column as spaces are used to separate fields. You should always use another separator (:/.- or better T) between date and time in data files. The GUI, the batch language and the command line flags do not have this limitation, you can use spaces there without any problem. The T separator comes from the ISO8601 standard. Grace support its use also in european and us formats.

You can also provide a hint about the format ("ISO8601", "european", "us") using the -datehint command line flag or the ref name="Edit->Preferences" id="preferences"> popup of the GUI. The formats are tried in the following order: first the hint given by the user, then iso, european and us (there is no ambiguity between calendar formats and numerical formats and therefore no order is specified for them). The separators between various fields can be any characters in the set: " :/.-T" (one or more spaces act as one separator, other characters can not be repeated, the T separator is allowed only between date and time, mainly for iso8601), so the string "1999-12 31:23/59" is allowed (but not recommended). The '-' character is used both as a separator (it is traditionally used in iso8601 format) and as the unary minus (for dates in the far past or for numerical dates). By default years are left untouched, so 99 is a date far away in the past. This behavior can be changed with the Edit->preferences popup, or with the DATE WRAP on and DATE WRAP YEAR year commands. Suppose for example that the wrap year is chosen as 1950, if the year is between 0 and 99 and is written with two or less digits, it is mapped to the present era as follows:

range [00 ; 49] is mapped to [2000 ; 2049]

range [50 ; 99] is mapped to [1950 ; 1999]

with a wrap year set to 1970, the mapping would have been:

range [00 ; 69] is mapped to [2000 ; 2069]

range [70 ; 99] is mapped to [1970 ; 1999]

this is reasonably Y2K compliant and is consistent with current use. Specifying year 1 is still possible using more than two digits as follows: "0001-03-04" is unambiguously March the 4th, year 1. The inverse transform is applied for dates written by Grace, for example as tick labels. Using two digits only for years is not recommended, we introduce a wrap year + 100 bug here so this feature should be removed at some point in the future ...

The date scanner can be used either for Denys's and Gregorian calendars. Inexistent dates are detected, they include year 0, dates between 1582-10-05 and 1582-10-14, February 29th of non leap years, months below 1 or above 12, ... the scanner does not take into account leap seconds: you can think it works only in International Atomic Time (TAI) and not in Coordinated Unified Time (UTC). If you find yourself in a situation were you need UTC, a very precise scale, and should take into account leap seconds ... you should convert your data yourself (for example using International Atomic Time). But if you bother with that you probably already know what to do.

7.5 Xmgr to Grace migration guide

This is a very brief guide describing problems and workarounds for reading in project files saved with Xmgr. You should read the docs or just play with Grace to test new features and controls.

  1. Grace must be explicitly told the version number of the software used to create a file. You can manually put "@version VERSIONID" string at the beginning of the file. The VERSIONID is built as MAJOR_REV*10000 + MINOR_REV*100 + PATCHLEVEL; so 40101 corresponds to xmgr-4.1.1. Projects saved with Xmgr-4.1.2 do NOT need the above, since they already have the version string in them. If you have no idea what version of Xmgr your file was created with, try some. In most cases, 40102 would do the trick.
  2. The above relates to the ASCII projects only. The old binary projects (saved with xmgr-4.0.*) are not automatically converted anymore. An input filter must be defined to make the conversion work on-the-fly. Add the following line to  /.gracerc or the system-wide $GRACE_HOME/gracerc resource file: DEFINE IFILTER "grconvert %s -" MAGIC "00000031" See docs for more info on the I/O filters.
  3. Documentation on the script language is severely lacking still.
  4. Grace is WYSIWYG. Xmgr was not. Many changes required to achieve the WYSIWYG'ness led to the situation when graphs with objects carefully aligned under Xmgr may not look so under Grace. Grace tries its best to compensate for the differences, but sometimes you may have to adjust such graphs manually.
  5. A lot of symbol types (all except *real* symbols) are removed. "Location *" types can be replaced (with much higher comfort) by A(nnotating)values. "Impulse *", "Histogram *" and "Stair steps *" effects can be achieved using the connecting line parameters (Type, Drop lines). "Dot" symbol is removed as well; use the filled circle symbol of the zero size with no outline to get the same effect.
  6. Default page layout switched from free (allowing to resize canvas with mouse) to fixed. For the old behavior, put "PAGE LAYOUT FREE" in the Grace resource file or use the "-free" command line switch. The use of the "free" page layout is in general deprecated, though.
  7. System (shell) variables GR_* renamed to GRACE_*
  8. Smith plots don't work now. They'll be put back soon.

grace-5.1.25/doc/FAQ.pdf0000644000076500001440000124156112467751545014333 0ustar fnevgenyusers%PDF-1.4 %ÐÔÅØ 1 0 obj << /S /GoTo /D (section.1) >> endobj 4 0 obj (General Questions ) endobj 5 0 obj << /S /GoTo /D (subsection.1.1) >> endobj 8 0 obj (What is Grace? ) endobj 9 0 obj << /S /GoTo /D (subsection.1.2) >> endobj 12 0 obj (Where can I get Grace? ) endobj 13 0 obj << /S /GoTo /D (subsection.1.3) >> endobj 16 0 obj (Where can I get the most recent information about Grace? \040) endobj 17 0 obj << /S /GoTo /D (subsection.1.4) >> endobj 20 0 obj (What is the difference between Xmgr and Grace? ) endobj 21 0 obj << /S /GoTo /D (subsection.1.5) >> endobj 24 0 obj (Why did you change the name? ) endobj 25 0 obj << /S /GoTo /D (subsection.1.6) >> endobj 28 0 obj (Is Grace free? ) endobj 29 0 obj << /S /GoTo /D (subsection.1.7) >> endobj 32 0 obj (Who wrote Grace? ) endobj 33 0 obj << /S /GoTo /D (subsection.1.8) >> endobj 36 0 obj (Is there a Postscript|LaTeX|HTML|SGML version of this document? ) endobj 37 0 obj << /S /GoTo /D (section.2) >> endobj 40 0 obj (Getting Help ) endobj 41 0 obj << /S /GoTo /D (subsection.2.1) >> endobj 44 0 obj (Are there any books about Grace? ) endobj 45 0 obj << /S /GoTo /D (subsection.2.2) >> endobj 48 0 obj (Is there a User's Guide available for Grace? \040) endobj 49 0 obj << /S /GoTo /D (subsection.2.3) >> endobj 52 0 obj (Is there a Tutorial available for Grace? \040) endobj 53 0 obj << /S /GoTo /D (subsection.2.4) >> endobj 56 0 obj (Where do I get support for Grace? \040) endobj 57 0 obj << /S /GoTo /D (subsection.2.5) >> endobj 60 0 obj (Is there a newsgroup devoted to Grace? ) endobj 61 0 obj << /S /GoTo /D (subsection.2.6) >> endobj 64 0 obj (Is there a mailing list for Grace? ) endobj 65 0 obj << /S /GoTo /D (subsection.2.7) >> endobj 68 0 obj (Is there a forum for Grace? \040) endobj 69 0 obj << /S /GoTo /D (section.3) >> endobj 72 0 obj (Providing Help: Finding and Reporting Bugs ) endobj 73 0 obj << /S /GoTo /D (subsection.3.1) >> endobj 76 0 obj (I think I found a bug in Grace! How do I report it? \040) endobj 77 0 obj << /S /GoTo /D (subsection.3.2) >> endobj 80 0 obj (Is there a list of known bugs? \040) endobj 81 0 obj << /S /GoTo /D (subsection.3.3) >> endobj 84 0 obj (The bug report \043xxx is marked as "Fixed" in the w3todo, but I checked the last version of Grace and the bug is still there! ) endobj 85 0 obj << /S /GoTo /D (subsection.3.4) >> endobj 88 0 obj (The bug report \043xxx I reported is marked as "Ignored" in the w3todo and I even got no reply?! ) endobj 89 0 obj << /S /GoTo /D (subsection.3.5) >> endobj 92 0 obj (I have got an idea! How do I report a wish? ) endobj 93 0 obj << /S /GoTo /D (subsection.3.6) >> endobj 96 0 obj (I want to help! How can I contribute to Grace? ) endobj 97 0 obj << /S /GoTo /D (subsection.3.7) >> endobj 100 0 obj (How do I submit patches/contributions? ) endobj 101 0 obj << /S /GoTo /D (subsection.3.8) >> endobj 104 0 obj (I like Grace! Should I donate anything to its authors? ) endobj 105 0 obj << /S /GoTo /D (section.4) >> endobj 108 0 obj (Installation ) endobj 109 0 obj << /S /GoTo /D (subsection.4.1) >> endobj 112 0 obj (How do I install Grace? \040) endobj 113 0 obj << /S /GoTo /D (subsection.4.2) >> endobj 116 0 obj (Can I compile Grace myself? ) endobj 117 0 obj << /S /GoTo /D (subsection.4.3) >> endobj 120 0 obj (When I run `configure', it says the XXX package is not found, whereas I am certain it was installed on my system! ) endobj 121 0 obj << /S /GoTo /D (subsection.4.4) >> endobj 124 0 obj (When I type './configure' I get: ``configure: error M*tif has not been found'' ) endobj 125 0 obj << /S /GoTo /D (subsection.4.5) >> endobj 128 0 obj (What is Motif \(LessTif\)? \040) endobj 129 0 obj << /S /GoTo /D (subsection.4.6) >> endobj 132 0 obj (`configure' stops telling it can't find "ar". ) endobj 133 0 obj << /S /GoTo /D (subsection.4.7) >> endobj 136 0 obj (Are there Grace binaries available? For which platforms? \040) endobj 137 0 obj << /S /GoTo /D (subsection.4.8) >> endobj 140 0 obj (Is there a Windows|OS/2|VMS port of Grace? ) endobj 141 0 obj << /S /GoTo /D (subsection.4.9) >> endobj 144 0 obj (Compilation with gcc fails on Solaris complaining about unresolved symbols. ) endobj 145 0 obj << /S /GoTo /D (section.5) >> endobj 148 0 obj (Runtime Problems ) endobj 149 0 obj << /S /GoTo /D (subsection.5.1) >> endobj 152 0 obj (When I start Grace I get the message ``Can't find library libXXX.so'' or similar. ) endobj 153 0 obj << /S /GoTo /D (subsection.5.2) >> endobj 156 0 obj (I get errors like "X Error of failed request: BadValue \(integer parameter out of range for operation\)" ) endobj 157 0 obj << /S /GoTo /D (subsection.5.3) >> endobj 160 0 obj (Grace crashes with "Oops Got SIGSEV" \(on GNU/Linux\) ) endobj 161 0 obj << /S /GoTo /D (subsection.5.4) >> endobj 164 0 obj (I run Grace and get the following error messages: "Warning: translation table syntax error: Unknown keysym name: osfPageLeft Warning: ... found while parsing 'osfPageLeft:SWLeftPage\(\)'" ) endobj 165 0 obj << /S /GoTo /D (subsection.5.5) >> endobj 168 0 obj (I run Grace on a Solaris 2.5.1 box, and when I try to open a file, I can't read the names of the files \(files section of the dialog\) because Grace writes ALL the path of each file in the list and there is no horizontal scroll. ) endobj 169 0 obj << /S /GoTo /D (subsection.5.6) >> endobj 172 0 obj (Grace can not find font database and initialize the T1 library ) endobj 173 0 obj << /S /GoTo /D (subsection.5.7) >> endobj 176 0 obj (Pressing Ctrl and clicking with the left mouse button on the canvas or dialog panels make Grace crash. ) endobj 177 0 obj << /S /GoTo /D (subsection.5.8) >> endobj 180 0 obj (The size of the canvas is huge. ) endobj 181 0 obj << /S /GoTo /D (subsection.5.9) >> endobj 184 0 obj (Extended ASCII characters do not appear and/or appear as incorrect control characters in text input fields. ) endobj 185 0 obj << /S /GoTo /D (subsection.5.10) >> endobj 188 0 obj (File selection dialogs are unusable. ) endobj 189 0 obj << /S /GoTo /D (subsection.5.11) >> endobj 192 0 obj (All of the text in the menus and dialog boxes are represented as squares. ) endobj 193 0 obj << /S /GoTo /D (subsection.5.12) >> endobj 196 0 obj (On Fedora Core 4, all set selectors collapse into a single of even a zero-height line after a few operations. ) endobj 197 0 obj << /S /GoTo /D (section.6) >> endobj 200 0 obj (Basic Concepts ) endobj 201 0 obj << /S /GoTo /D (subsection.6.1) >> endobj 204 0 obj (What is a project? ) endobj 205 0 obj << /S /GoTo /D (subsection.6.2) >> endobj 208 0 obj (What is a parameter file? \040) endobj 209 0 obj << /S /GoTo /D (subsection.6.3) >> endobj 212 0 obj (Which data formats does Grace recognize? ) endobj 213 0 obj << /S /GoTo /D (subsection.6.4) >> endobj 216 0 obj (What is block data? ) endobj 217 0 obj << /S /GoTo /D (subsection.6.5) >> endobj 220 0 obj (What is the NXY data type? ) endobj 221 0 obj << /S /GoTo /D (subsection.6.6) >> endobj 224 0 obj (What is the Julian Date? ) endobj 225 0 obj << /S /GoTo /D (section.7) >> endobj 228 0 obj (Using Grace ) endobj 229 0 obj << /S /GoTo /D (subsection.7.1) >> endobj 232 0 obj (How do I start Grace? ) endobj 233 0 obj << /S /GoTo /D (subsection.7.2) >> endobj 236 0 obj (Where is gracebat? How does batch printing work? \040) endobj 237 0 obj << /S /GoTo /D (subsection.7.3) >> endobj 240 0 obj (How can I customize the default appearance of Grace? \040) endobj 241 0 obj << /S /GoTo /D (subsection.7.4) >> endobj 244 0 obj (Which environment variables does Grace use? \040) endobj 245 0 obj << /S /GoTo /D (subsection.7.5) >> endobj 248 0 obj (What command line options does Grace recognize? ) endobj 249 0 obj << /S /GoTo /D (subsection.7.6) >> endobj 252 0 obj (Can one change the colour selecton for the menu, locator, tool, and status bars, and all the popup menus? ) endobj 253 0 obj << /S /GoTo /D (subsection.7.7) >> endobj 256 0 obj (What different kinds of sets can Grace plot? ) endobj 257 0 obj << /S /GoTo /D (subsection.7.8) >> endobj 260 0 obj (I'd like to plot data against an axis on the right \(top\) and another data set in a different scale against an axis on the left \(bottom\) ) endobj 261 0 obj << /S /GoTo /D (subsection.7.9) >> endobj 264 0 obj (How do I do polar plots? ) endobj 265 0 obj << /S /GoTo /D (subsection.7.10) >> endobj 268 0 obj (Can I use different fonts, symbols, font size, or sub/superscripts in Grace? ) endobj 269 0 obj << /S /GoTo /D (subsection.7.11) >> endobj 272 0 obj (How do I produce special characters \(Umlauts\) with Grace? ) endobj 273 0 obj << /S /GoTo /D (subsection.7.12) >> endobj 276 0 obj (Can I use my own fonts and/or encodings? \040) endobj 277 0 obj << /S /GoTo /D (subsection.7.13) >> endobj 280 0 obj (At which precision is numerical data saved? How can I set the precision? ) endobj 281 0 obj << /S /GoTo /D (subsection.7.14) >> endobj 284 0 obj (When I save a project and then re-open it, the Julian date values appear to be rounded to the nearest half day. ) endobj 285 0 obj << /S /GoTo /D (subsection.7.15) >> endobj 288 0 obj (How do I read in project files created by Xmgr? ) endobj 289 0 obj << /S /GoTo /D (subsection.7.16) >> endobj 292 0 obj (I can't open anymore project files saved with an old version of Xmgr. ) endobj 293 0 obj << /S /GoTo /D (subsection.7.17) >> endobj 296 0 obj (When I load a project saved with an earlier version of Xmgr \(<4.0\), symbols of all \(some\) sets are drawn in black. ) endobj 297 0 obj << /S /GoTo /D (subsection.7.18) >> endobj 300 0 obj (How do I save disk space? Can I use compressed project files? ) endobj 301 0 obj << /S /GoTo /D (subsection.7.19) >> endobj 304 0 obj (Can I import bitmap graphics into Grace? ) endobj 305 0 obj << /S /GoTo /D (subsection.7.20) >> endobj 308 0 obj (Can I export Grace graphs to GIF|TIFF| PostScript|PDF etc? \040) endobj 309 0 obj << /S /GoTo /D (subsection.7.21) >> endobj 312 0 obj (Where have all the region operations gone to? ) endobj 313 0 obj << /S /GoTo /D (subsection.7.22) >> endobj 316 0 obj (How can I input data in date/time formats? ) endobj 317 0 obj << /S /GoTo /D (subsection.7.23) >> endobj 320 0 obj (How do I set the background color of a plot, outside of the graph frame? ) endobj 321 0 obj << /S /GoTo /D (subsection.7.24) >> endobj 324 0 obj (How do I use more than 16 colors for objects/lines in Grace? ) endobj 325 0 obj << /S /GoTo /D (subsection.7.25) >> endobj 328 0 obj (How can I use pipes with Grace? ) endobj 329 0 obj << /S /GoTo /D (subsection.7.26) >> endobj 332 0 obj (Is it possible to make Grace starting with a completely empty canvas, until the commands are loaded and executed? ) endobj 333 0 obj << /S /GoTo /D (subsection.7.27) >> endobj 336 0 obj (When I include an EPS file generated by Grace into my \(La\)TeX document, the graphic hides some of the surrounding text. ) endobj 337 0 obj << /S /GoTo /D (subsection.7.28) >> endobj 340 0 obj (Printing to my old PostScript printer produces an error. ) endobj 341 0 obj << /S /GoTo /D (subsection.7.29) >> endobj 344 0 obj (How do I make a Grace image fit on a given paper size? ) endobj 345 0 obj << /S /GoTo /D (subsection.7.30) >> endobj 348 0 obj (My decimal tick labels are systematically of the form e.g. 0,5 instead of 0.5 \(i.e. I get a comma instead of a dot\). ) endobj 349 0 obj << /S /GoTo /D (subsection.7.31) >> endobj 352 0 obj (Is it possible to use the dB \(decibel\) axis scale? ) endobj 353 0 obj << /S /GoTo /D (subsection.7.32) >> endobj 356 0 obj (In "Data set properties", I don't see a possibility to view the more essential part of the mantissa; it's swallowed in the black triangle. ) endobj 357 0 obj << /S /GoTo /D (subsection.7.33) >> endobj 360 0 obj (When making use of -param via the command line to set the parameters, the world scaling is not correctly set \(it just auto-scales\). ) endobj 361 0 obj << /S /GoTo /D (subsection.7.34) >> endobj 364 0 obj (I am unable to find "Load \046 Evaluate" which I used quite a lot with Xmgr. ) endobj 365 0 obj << /S /GoTo /D (subsection.7.35) >> endobj 368 0 obj (How can I specify a template other than the default one on the command line? In the scripts? ) endobj 369 0 obj << /S /GoTo /D (subsection.7.36) >> endobj 372 0 obj (How can I save my 'preferences' options? ) endobj 373 0 obj << /S /GoTo /D (subsection.7.37) >> endobj 376 0 obj (In an XY-plot with a huge number of points some regions become straight lines instead of the original curve. When I zoom in to the area the data becomes correctly drawn. ) endobj 377 0 obj << /S /GoTo /D (section.8) >> endobj 380 0 obj (Mathematics ) endobj 381 0 obj << /S /GoTo /D (subsection.8.1) >> endobj 384 0 obj (What algorithm is used for non-linear curve fitting? ) endobj 385 0 obj << /S /GoTo /D (section.9) >> endobj 388 0 obj (Command Line Interface \040) endobj 389 0 obj << /S /GoTo /D (subsection.9.1) >> endobj 392 0 obj (Which non-interactive batch commands does Grace know? ) endobj 393 0 obj << /S /GoTo /D (subsection.9.2) >> endobj 396 0 obj (How can I do feature extraction non-interactively? ) endobj 397 0 obj << /S /GoTo /D (subsection.9.3) >> endobj 400 0 obj (How can I use non-linear fits in the batch mode? ) endobj 401 0 obj << /S /GoTo /D (subsection.9.4) >> endobj 404 0 obj (Is it possible to call the command "POINT expr, expr" with more than two values, as needed, for example, for points in XYDYDY sets? ) endobj 405 0 obj << /S /GoTo /D (section.10) >> endobj 408 0 obj (Miscellaneous ) endobj 409 0 obj << /S /GoTo /D (subsection.10.1) >> endobj 412 0 obj (Does Grace have an UNDO function? ) endobj 413 0 obj << /S /GoTo /D (subsection.10.2) >> endobj 416 0 obj (Can Grace plot 3D graphs? ) endobj 417 0 obj << /S /GoTo /D (subsection.10.3) >> endobj 420 0 obj (Which features are planned for the future? ) endobj 421 0 obj << /S /GoTo /D (subsection.10.4) >> endobj 424 0 obj (Are there things that Grace can't do? ) endobj 425 0 obj << /S /GoTo /D (subsection.10.5) >> endobj 428 0 obj (How should Grace be acknowledged when it is used to prepare a publication? ) endobj 429 0 obj << /S /GoTo /D [430 0 R /Fit] >> endobj 457 0 obj << /Length 1774 /Filter /FlateDecode >> stream xÚíYÙnÛF}×W0éCI ¢g!9¤Q4pÚØq‘YT$AS´8’XK¤ÌŲÿ¾w6š”hË‚Ý6‰ò¢¡†³Ü9ç®CdM-d nŸǘY¹A@|k4±±‚ÈwQdëû¤ˆÇÜRÙÇcö‘CûèíOÈG“Ü!¾]¨9xè»Ø%^bçÏѯƒ£ÁÅÃvÈÂrõ»^@¬ñb ú¼ ´ˆRß*¸5¼Ñ2ùVäF ŒHƒ1TÉtæÐ¾†-©gW3!¥ ð8rBjóx!¶·<¹°“œ‹‰‹— ŒÄ[Ø(lm4ô0O"kH7ˆ<5e4KK^Ev’;CØz\/xV©®qžUqšéÇavÁ/jx?¿V}Gå¹—'ê—UšËI ÐÀ†XlKä䨸Lî—ו6j KÂÀE >jµy&"OkFý {ØŽÕúï?¾;}ÿñDý!¿¨v9Ï«*ͦJ¾ÊÁ¶:u>WïãpH îâÀ¥Q` 1u¢u¦§pþô¢Þñ;‰«Ø…é¡/|$z™}‹Eœ©Ugå<Ȩ—ùDµ•D_.ÒFB}d/â„«qRÀóHšŸ¥q©þ?/ÒL‘P˜‰©~_Æé<>›sµÇŒüP¡HP E—’  ¶\ÀÇ€<5w4JOìô£4 eÅT›ÆÛ“¼šUÕòðà`µš°rK¾HÏ®+î&ü ÉÏëU*úÏÓƒ4›ä€^•žÎÓ¬¾:ýW‹©ìPþþ5‰/ô>ÊØaõŸz„ú¡F‘9šk NB-ì¹T«8Š8ôÀ[¨Á?[Û‡t¥¼å\°”×ÚYÀ£Ë¨^”=rÂ3^Ä d¬÷ÆJ:'Q\¨‘Õ¿u¿Žÿ•g.8 ¶ef[6ƈûý,®”çZ!‰€3Ýógk 1aÈmöÑÖÆ‹¢{Ž|œæóÛo»<ˆßéí1¤™b†)Ò0ö©(Kϧ*L9°U©giž¼…{øý›QÓÝš&^/òR]ÁÇà?À;ë!kËõ2­0xê7èèÿúã@êÝê—ª™ðKÁDDX ¨g&ñQ8)´! ­dÈãÅ4žYÒ²Ýãâhô%èüãàí7x·Ë$`4N׎T?­ÝâÏ,Φ|M£³xÑ,üpÂCÁÎ|šÓr#µŸ¼ãÈÿtÿC¦š¸ÌËÉ?«"¯ø]^{ô;ÿ¶…kTÝÄæX9­×Ò£•U9.Ò¥©.Û9:Æuù&Ñþ[hgÕÄeAS}¾ŠUÑý¡g)A½ÿ¥^Ž~{Õ³ EPíFÛVafÀ»XEžøR„BåŠROáÖUbá©Sâcl»Æ”)ɦS~FÞs­´∺h§Â"¦ÂÒ…½¨°^òùòÎâ*xHqEšâêÈh^[ 3ÁÉu;i¸CÑ^*fLÊdÕw&õ,ð÷4UßÕ[“¦ŠºÝ-ü^òâ{uë4iÞ—ŽïÛ7—%"çÅÝ®>`_¬ËîCœíèˆISÝŽ¸¼ªª«¼HåÕ‡› °ƒ^°•€Yô¥Aˆ}ýéäî$x›j’¯¨ºÎ*ëåR9ž¢º§Žûlßò‘Ýð·šAÆWå´Èë¥æ‡_ʥ≞‘ßy³ƒý¯+7|؃­°/b‘ÍURÿçiy?½=º?W b£‰¾l+€y½¸ü8ÜóJ·“p×\Ùs#¯›)S•)¿.r‡û2M:ùò!쎱}œf7ýê2 ÞrἈÍËçõ´\•à(B¬[²k-bÛ®i“ZŸ6ÕKvÞ‰g“¼Î’–jA’]OõMbÖr¤OÄ×@Ï~™ g»j‡FÏ,^ðe“‰Ë"æF²§2BŒ}qéD¸£W¥÷Ȣ穖-°Lyž)¤5@JÙ“Q ï¾'=ˆf˜1ÙöHÞÈÖzxPZÌtZß]]]©'YùC»ˆ‹æ;½øëþ§ÇéOžêÁ‚9¨8+³ÃŠVêÆ ÉŇe&HÕ[œªF]sÙt6h֘ǥžr©¾Q—êËt€âˆÏ세Šºß[—¢±1v}íµÌ]+iY¥óyK_Ÿl@Ž}¼?wo}úmÓ·aCCÇxm­# +ðÅCGëD‡Ò:ñtÚ!Ë ¡¢K0&Ú¶>Šÿ±îz:ÍòBj¤®&S• ¥”zn–t¶UÙ5×ó¦¹/ËT°èr~ýL¸°'k°´£ÛAÛpŸ~7xÍôÝ‚¼£“=R}K¤t8áq+R±n¤¢‘Ê”nÚ¯ÒrÖs‹‡èWõM=ê¥É´/Fƒ²“­ endstream endobj 430 0 obj << /Type /Page /Contents 457 0 R /Resources 456 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 470 0 R 453 0 R 454 0 R ] >> endobj 431 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 600.395 423.347 612.313] /Subtype/Link/A<> >> endobj 432 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 531.612 183.889 542.416] /A << /S /GoTo /D (section.1) >> >> endobj 433 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 514.772 183.485 523.626] /A << /S /GoTo /D (subsection.1.1) >> >> endobj 434 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 494.059 219.148 504.85] /A << /S /GoTo /D (subsection.1.2) >> >> endobj 435 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 475.283 372.812 486.074] /A << /S /GoTo /D (subsection.1.3) >> >> endobj 436 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 456.507 331.007 467.298] /A << /S /GoTo /D (subsection.1.4) >> >> endobj 437 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 437.731 253.331 448.522] /A << /S /GoTo /D (subsection.1.5) >> >> endobj 438 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 420.891 175.49 429.745] /A << /S /GoTo /D (subsection.1.6) >> >> endobj 439 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 402.115 197.291 410.969] /A << /S /GoTo /D (subsection.1.7) >> >> endobj 440 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 380.848 415.339 392.803] /A << /S /GoTo /D (subsection.1.8) >> >> endobj 441 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 352.666 157.769 363.47] /A << /S /GoTo /D (section.2) >> >> endobj 442 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 333.89 265.989 344.68] /A << /S /GoTo /D (subsection.2.1) >> >> endobj 443 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 317.05 305.484 325.904] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 298.274 284.831 307.128] /A << /S /GoTo /D (subsection.2.3) >> >> endobj 445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 277.561 266.847 288.352] /A << /S /GoTo /D (subsection.2.4) >> >> endobj 446 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 258.785 288.732 269.575] /A << /S /GoTo /D (subsection.2.5) >> >> endobj 447 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 240.009 257.468 250.799] /A << /S /GoTo /D (subsection.2.6) >> >> endobj 448 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 223.169 234.476 232.023] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 449 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 192.496 320.011 203.3] /A << /S /GoTo /D (section.3) >> >> endobj 450 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 173.72 340.359 184.51] /A << /S /GoTo /D (subsection.3.1) >> >> endobj 451 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 154.944 244.118 165.734] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 452 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 136.167 540.996 146.958] /A << /S /GoTo /D (subsection.3.3) >> >> endobj 470 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 122.538 254.397 133.329] /A << /S /GoTo /D (subsection.3.3) >> >> endobj 453 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 103.762 525.558 114.553] /A << /S /GoTo /D (subsection.3.4) >> >> endobj 454 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 84.986 307.116 95.777] /A << /S /GoTo /D (subsection.3.5) >> >> endobj 458 0 obj << /D [430 0 R /XYZ 71 757 null] >> endobj 459 0 obj << /D [430 0 R /XYZ 72 710.559 null] >> endobj 466 0 obj << /D [430 0 R /XYZ 72 583.725 null] >> endobj 456 0 obj << /Font << /F17 460 0 R /F15 461 0 R /F18 462 0 R /F19 463 0 R /F20 464 0 R /F21 465 0 R /F23 467 0 R /F24 468 0 R /F14 469 0 R >> /ProcSet [ /PDF /Text ] >> endobj 500 0 obj << /Length 2336 /Filter /FlateDecode >> stream xÚíZYsÛF~ׯ@ô"p+„p .Wj·•¬UV>2–«ìT툒Xƒ,É¿~»gz@‚ c¶ãDyÂ\h »§¿þº‡®5·\ëdïÝžO×ò¬Ø·bæ:›Z“åÞëß\k ã?Y®ÃÒĺT«–‹xæÖhïç½Ç{‡O|f¥Nù‘5žiÌqYh§Ökûèù³ññ³ñhðÛø§Ã'^¸±”Eãú K-ôqÅžK›Òªæ´³_Nö¬!c‰ã&ð hê·' =×÷íÓÁ0ûrà'6/~l×z¤.õs!òÕwÂì—8©Ç'°Z5H¤,PF]eM-pŒµ2N*>ÿêìÔz=ô‚Àµ¦ø]÷ë<îø½íÝG^j§ŸÒ¾k ½Ä‰ãØè=&½£.£Ëi©õEª”ÍÅ2#3¬x=Á• !;*ÎÊBîP©|Y-|5­ßKÝ‘QwÒ=æyö5(èX¤ GsàÙBñÐ-Ê&Ÿvö´,xMoh¹®Y1ïºIVKZÒÔ‹²ê›&NýoÓ2wQôz =æ¤Ìú û€tÏÃÔíÓBÖ<Ïy–áüv¾ÆÂÈ Yd°Ìsiºÿ¹‚¥<'r£®±™ãÝÀ·2½ŸßÃ¥¶ý'À£?Ì=8 ­©nŠ|ÌñÉ:G½À±\e¹Ø°ˆ6Øx-E> ãØî›)‰ª™zñÝ[X¤õ—€,r¾h’ÔU&IR»j¨ÿ_9o܀͛J|{réôœäÚ@ºW/„n¼zõJ Yq¸ÞÂÐæs¡3Z^”$eV6Å”$_.D%¸\o|©_œˆªæmKm/9‹Äßnù¾“ ƒ(èD~ª%ù» L/éì-ŽS¸½–µX~·­ÕÔ¸ã¶Fé=Ö=zk4¨•aVƒ!<œÃ‰ x1dϡרØ- uÐÁ÷¹¨i¶úÆõÝãK£¢ªÊJ¿ñô*(ÍtoÁ)€ë£ Øp³AuRA¨×Ó ¢{Øã39sØj”Óþ3úAOË:£ùÆ Ý3!å8Ó  }¯¬i<œSýå_k“juÀ” §.Wd¥ZäyË*5ûg˜d5ñÍ‚PlŸWûN?zeÂáÝZï&Õz\¹¨1¾lñ pó¬àU&¤Ö¸ jïadó,ç9ÐC•<$Ì6Èq¹@à˜ T-(M†;+«eŸ÷§AðM#¸wk"׿T²§V®õsžSÍÁ%06³Ï´Œÿí¨qøN¬Ê%jÁóÑ¡¿CŒ8„ÜTÈ˧#²”Bõ²"·*gæ@`@ѹ`?­vƒäχbw37°§Èñ±`Ôõ¦ÔÐwE×9Ö¨t”ÕäóÉ„B%øù“Y5*sð2¹¦ü9°¹︎µeCViŠJÈ2¯’õ©–$¯UF@+sÙû)ûêÎqƒ<8Ôyð/@©ß®³¥bÂý¢*]–ò÷3bÿN1¹jØfÄ=𤏢³…kÕz¶ÉÅÀ-¤T.͹0tÂwv‡¨<»¨xuÝv -pd©èÓy1A)l$[Âiªvè?ñï—¡ýü[°ÍROöIØP¼Q궪")zнýWúy¬™%6Tð‰~€ÇÛ•x׉ä4Š˜ý#Ÿ¾À)àyCbšeº¾'æ‚­xÅ—¢Ö]¦ýcó/æô>DŸ&A¥=Q)·EÒ·ß+O…ì¯Lå¾ü÷îvþv¦Ga›™oøæ¤âr!ds™½ÿ¼e'&qžŒŽ_î§ ] ÂàêÏ~=ò~#ôíýsdˆ¼Â fÆjðOib%¾T#£Ô¢äu1ü¨ÃÖü V%;(’Lû×âm¡¯` =«‹Ù×U¿°0‹K9{¡.uæâLÌj½à\aN»G\ç8 u¥”àêu@pÕ>A?nÕíîò€H—·Eºb¾~ØÁÊb'f-+û¸Þ!ÃC~è™5ÿü”­_úhtŽ3„çÏùÁÈ \öúi@  Á¶'…÷(qHÂ8j š d`ŽëîšðÁ˜ï(.‚ãÄßÐ:Wß#Š´âÜ¥¦)𩨃€¾ºfÁP$ë~ ‰G.HmѤÎ0] NЄfÑS$‰œ}Ü Õr? HÓÁµ1 ¦ Ĉ}Ê)ü`ýú4ãy9Wh«úTYšðFªk ‡ÉË*«äÇgg[¢V\!ÿÆW°ÆÛ\´Ý¬–›[ï癬wù27Äm#›ËˆÃæ*¸¬²tÉé EN*€É>¼úƒ;†þhGè77&Tšd¦=#‹Ðu‡Ã%ôÖªkÕp³¢Ãì{ìuùúÖo‰üä«·f¦ôrJʆÌí£ZUsÝSŠbnbOrp§L¹ÓÛv­¦[8­ô†C¹Š©8´,•ãàES×8¬Ÿ±y#QVÔµ%À-©'UÂs ôØŠ"—$›Ó}õÇj› îPÚíßÞó{ŸÕ­MÑllO¶¾XRq¾õÉõI‰lNlJ' œi梿=—ÅWèÑDìÖaj[ÇWµ(¦*cñGG§*P««È”꽑O !—z þ»Ÿ ™±ÁWtwÅ+(¦‡eµ9™lL’˜¬˜”U%&$¤ý£O™Ó€ú P÷ÓYñqÞ"®ÌP±j6b†@t›ª:Nÿþ òx Ï;;v;hXé\§ïIû/)r8 m…UGóÿ¢Šb{£ÎH#1¥tú¹ÿ`ûnf蹿çi<6ÿ 2—mýsÓ¡¶ÔRèbŠ1a\&¤¯o’uγ¾höŽHr*±~"¨HBÌ´|‡+®.¼w»/zö­á*¤›J±ÏUã%ä+Ó²âºTªÃìG6ÃäÍOmŽ•ëY©ÊЪî Ê¯Ø@ÂÁW:sŠmª™–ºG‚‘æå´ ¤;~å÷ªn[l¬ì¢*‡ ‘͆FÃ\žô:Ÿ©òë†ð™¸¼a¥uÇEüwÕô^ß»‘ËwŸÇã½ÿ—ËÛz endstream endobj 499 0 obj << /Type /Page /Contents 500 0 R /Resources 498 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 455 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 502 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 503 0 R 487 0 R 488 0 R 504 0 R 505 0 R 489 0 R 507 0 R 508 0 R 490 0 R 491 0 R 509 0 R 492 0 R 493 0 R 510 0 R 494 0 R 495 0 R 496 0 R 511 0 R ] >> endobj 455 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 697.664 322.347 708.454] /A << /S /GoTo /D (subsection.3.6) >> >> endobj 472 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 678.334 291.429 690.287] /A << /S /GoTo /D (subsection.3.7) >> >> endobj 473 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 660.111 350.955 670.902] /A << /S /GoTo /D (subsection.3.8) >> >> endobj 474 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 633.312 148.661 642.179] /A << /S /GoTo /D (section.4) >> >> endobj 475 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 614.535 218.899 623.389] /A << /S /GoTo /D (subsection.4.1) >> >> endobj 476 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 593.822 241.531 604.613] /A << /S /GoTo /D (subsection.4.2) >> >> endobj 477 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 575.046 540.996 585.837] /A << /S /GoTo /D (subsection.4.3) >> >> endobj 502 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 561.417 218.083 572.208] /A << /S /GoTo /D (subsection.4.3) >> >> endobj 478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 542.088 444.982 554.041] /A << /S /GoTo /D (subsection.4.4) >> >> endobj 479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 523.312 225.083 535.264] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 505.089 295.828 515.879] /A << /S /GoTo /D (subsection.4.6) >> >> endobj 481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 486.313 365.038 497.103] /A << /S /GoTo /D (subsection.4.7) >> >> endobj 482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 466.982 317.507 478.938] /A << /S /GoTo /D (subsection.4.8) >> >> endobj 483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 448.76 450.101 459.551] /A << /S /GoTo /D (subsection.4.9) >> >> endobj 484 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 421.96 186.136 430.828] /A << /S /GoTo /D (section.5) >> >> endobj 485 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 401.247 463.284 412.038] /A << /S /GoTo /D (subsection.5.1) >> >> endobj 486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 381.918 540.996 393.871] /A << /S /GoTo /D (subsection.5.2) >> >> endobj 503 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 368.289 164.271 380.242] /A << /S /GoTo /D (subsection.5.2) >> >> endobj 487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 349.513 370.032 361.466] /A << /S /GoTo /D (subsection.5.3) >> >> endobj 488 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 331.29 540.996 342.081] /A << /S /GoTo /D (subsection.5.4) >> >> endobj 504 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 317.661 540.996 328.452] /A << /S /GoTo /D (subsection.5.4) >> >> endobj 505 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 303.479 272.758 315.432] /A << /S /GoTo /D (subsection.5.4) >> >> endobj 489 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 285.256 540.996 296.047] /A << /S /GoTo /D (subsection.5.5) >> >> endobj 507 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 271.074 540.996 283.027] /A << /S /GoTo /D (subsection.5.5) >> >> endobj 508 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 259.935 256.292 268.789] /A << /S /GoTo /D (subsection.5.5) >> >> endobj 490 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 239.222 382.468 250.013] /A << /S /GoTo /D (subsection.5.6) >> >> endobj 491 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 220.446 540.996 231.237] /A << /S /GoTo /D (subsection.5.7) >> >> endobj 509 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 208.754 169.679 217.608] /A << /S /GoTo /D (subsection.5.7) >> >> endobj 492 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 188.041 247.687 198.831] /A << /S /GoTo /D (subsection.5.8) >> >> endobj 493 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 168.711 540.996 180.664] /A << /S /GoTo /D (subsection.5.9) >> >> endobj 510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 155.636 187.539 166.426] /A << /S /GoTo /D (subsection.5.9) >> >> endobj 494 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 136.859 266.114 147.65] /A << /S /GoTo /D (subsection.5.10) >> >> endobj 495 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 118.083 433.058 128.874] /A << /S /GoTo /D (subsection.5.11) >> >> endobj 496 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 99.307 540.996 110.098] /A << /S /GoTo /D (subsection.5.12) >> >> endobj 511 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 85.678 163.219 96.216] /A << /S /GoTo /D (subsection.5.12) >> >> endobj 501 0 obj << /D [499 0 R /XYZ 71 757 null] >> endobj 498 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F14 469 0 R /F11 506 0 R >> /ProcSet [ /PDF /Text ] >> endobj 545 0 obj << /Length 2045 /Filter /FlateDecode >> stream xÚíZ]sœ6}÷¯à­x¦‹%f:ÓiÓ:uÒ¸Óv’>hïªæc "núë+éJ,,xíM·µãä‰Eh%8÷ÞsÏ•„œ•ƒœç'ž`yEv¨ïP‚¼%NZž¼þ9™lá $±s£{•‰by-œW'?ž|}yrvî'ñ’ÈœË+ƒxˆ„Îeæ¼vŸ}ÿòòÛ——¯N¿|qvŽÃAWòåXºc zœ óRðBÍʼÙOÏwçY˜/HàÃÑé"ñC÷kÖòôtÄû¬®Ò|#ÚÑà #/$‘óx:çè…„`/B‘³À±G)5“zøt‘¬™ÓË[¸2u!Oaèþ‘§âËñ«¼^`B±ëÉçïB’äèc>Ì|»haœl v›³È+Ø(²6òï´kX™‹¼Ö7( E>1V<$ØÈª³øÈÅáÁf z³Èˆõcw ègL³\ÕMÉ„1U&ÃHvÊÍíó†¥9ülò´^Uüï©Å0ŠÂ'‡ƒMneÈj\òÊSÿGô#ç£}ó)(Â[í$d|`×øüË_G‹|®ì÷nQ21ÑÇšhþ]õ™>ºŸe^tgüþ†‰™4’àOóÞ³+1ñâHŸ÷h`‚ˆ‚ü¹åÕ ” $‹½20|/hgìeàwµŠÂ›mÊRlz·­`d¯5(;âÔ#s*迼ÉÇ¡»R†X2©Ì¥eéùŠCöÚÊ¥ëy¥nx™ìp£nëæzjW’Gú,CF2$íÝÅȰ‚´kE]Jµf¹ÓüÈò+Ö&>ØÆä1)Ì+«ó꫽Áã'ô‘ùû¿ƒµw_2¯“sé~Ô}Ë›º*óSìê[ƒßÛSYq²†Ëf¶,Àƒ 84uíí@Bwí aøáQÍ‘0ŸÊ°´.KVepSðÊ:åFðººà=5Š¿G<ìgIøpD­|z¦ù€"·ÖR …ÇšU«%Èi]Ô]Ú¼ÈSQ›ÿÊÊpÔ»e®Ù¸û\e|ä`‰”‰º1Mè¼.Ô=M\0¦Z0ѵ0Þ’5­éožËE±L~¶ãû^‚ùù | ðU½é6`pû>íLQê|K¤‹ÞP#O¤“ØÎøR@F‡è½æUÖŽ3O›ÛÕˆ>« b|SÔ3+|˜DOKуC?6€_|&#ÊO"IŸ× è\ÝQLÙªðƒ(jU[1^µ¦Ya®ÿRòMµÔ¦EÓ€jhøjml¨Úß ‰z#/Øa^UµüS³;Ÿ´04q;—é¡RéÖI¨ MYq;)ôo¯5) áí•ïÔÕŽ*ò+a— C´JR.éرFBŸt%0òô°ï•irò nËäk¶a=Çâ²®üØê±û¯Ëh9œ'0’cöABaÕé`}e†«©àNçniÒö]©îMмífØ\Ê1ó@Ë õ¿nyÖv¦öhÚ´áËø¼Ú_}Ðà¡|~Š#÷y»Þ–’O³Î¦¯Ö|vÊYa’3ùÁB‚±%¦ŸË‚u¢VÕ•/ëA:œ+%ü‡‹„c¡êßÃ;µÛ½3N¥Ñ¯ì^†ñP› ²3ëtP¼-”Æ®± ¯VSÎIâždŽe‹lñÕ œo„k•§S• ×ÖÏ¥C·Ü¦Z»î£sxWÊÎyÃSpx2XLo™ù­V)ÙÜâPºãÆ °U}Nï_`jNJ ®}žÄpýe«Ï‹©þ¼8á- žÃöv¤¶·ÍÇ«gºt’O…'–ð¢Þ@ulZ¸äK6PÉÞýÒy¬%™™èí©ž®ªÕà3ŽNвAéGõ`{3VSwU–g}‰D3Çz;Ur¼Üjµ5+®¬K@Dël¿»§B£OÜa.¿§€ÃáÝ)­ÉY6ÎÕçí}[ÄɈÜüg©Á0÷¯åª™©äPðäáŸ2mÀ_ô´÷™°+_oU_Þ(˺ɇà‡=øÄ€/iÂÔ?#’…¦,‚-[š­‹Ì.mªØ—½M¹ªmr¬-Ó•ù¦  þ?Æ{@M‡ä«˜ñB]Ôb–rlÕÀ aìתEc1†Sõa¦:03¤d¹‚«ºW5– ¤GÕ T½‚Тôž9¿…û`ÂMb»}öÅÌ/êQ’ØÄCJ.*ÆÇä96Uò&µ“ëõ6;w[—¹­~Õ6_äEA<®²·«2Ìú^¦àhØV€m9aY08é0±[ü"õÎw ß:w|7ïˆ •}y{m«]XH!Fv8Q»ý½”[mk9ýVþŸ#wòð‹9’ùÒ„—f1Ãî;/¹(ÙP[5l³æé¶¼õ”ÚSäâ§¹¬,”ý[–*ò¿FˆÖ‡5àöȈúâÜPçðT¦†Ô’ç3ìê{4ê;\^œÏ 㒣ɾQ"Å=‰ÿ ÷¯[ñJ/{ÌŒGB/Àɽßê‡oÎ ("?ÿXâ-¹›ÒBâù‰?9W€û„mÏÚRµ+°{4\åmòU_ZÕ°~Q: l©*²žaª?‘ œäð“þLÙ=aÀ«M'vOÇñª/ñó3Áuå?:e:t~°)üXx÷ÈÚ¹Øqð%Ó+0×+]„ÛÔ\ÔÍx7;.j«ùíjl'ZžíœúèG×4jL§ŽmÏΧÿ­¶ßr|ýöòä±ceÎ endstream endobj 544 0 obj << /Type /Page /Contents 545 0 R /Resources 543 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 497 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 547 0 R 525 0 R 526 0 R 548 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 549 0 R 533 0 R 534 0 R 535 0 R 550 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R ] >> endobj 497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 697.664 168.119 708.468] /A << /S /GoTo /D (section.6) >> >> endobj 512 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 678.887 196.973 689.678] /A << /S /GoTo /D (subsection.6.1) >> >> endobj 513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 660.111 226.605 670.902] /A << /S /GoTo /D (subsection.6.2) >> >> endobj 514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 641.335 301.735 652.126] /A << /S /GoTo /D (subsection.6.3) >> >> endobj 515 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 624.496 203.586 633.35] /A << /S /GoTo /D (subsection.6.4) >> >> endobj 516 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 603.783 242.596 614.573] /A << /S /GoTo /D (subsection.6.5) >> >> endobj 517 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 586.943 225.996 595.797] /A << /S /GoTo /D (subsection.6.6) >> >> endobj 518 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 556.27 153.807 567.075] /A << /S /GoTo /D (section.7) >> >> endobj 519 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 539.431 212.84 548.285] /A << /S /GoTo /D (subsection.7.1) >> >> endobj 520 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 518.718 339.598 529.508] /A << /S /GoTo /D (subsection.7.2) >> >> endobj 521 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 499.941 353.667 510.732] /A << /S /GoTo /D (subsection.7.3) >> >> endobj 522 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 483.102 315.347 491.956] /A << /S /GoTo /D (subsection.7.4) >> >> endobj 523 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 462.389 338.228 473.18] /A << /S /GoTo /D (subsection.7.5) >> >> endobj 524 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 443.613 540.996 454.404] /A << /S /GoTo /D (subsection.7.6) >> >> endobj 547 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 429.984 178.132 440.775] /A << /S /GoTo /D (subsection.7.6) >> >> endobj 525 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 411.208 308.68 421.998] /A << /S /GoTo /D (subsection.7.7) >> >> endobj 526 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 391.878 540.996 403.831] /A << /S /GoTo /D (subsection.7.8) >> >> endobj 548 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 378.249 270.596 390.202] /A << /S /GoTo /D (subsection.7.8) >> >> endobj 527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 360.026 224.087 370.817] /A << /S /GoTo /D (subsection.7.9) >> >> endobj 528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 340.697 439.131 352.65] /A << /S /GoTo /D (subsection.7.10) >> >> endobj 529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 321.921 377.35 333.873] /A << /S /GoTo /D (subsection.7.11) >> >> endobj 530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 303.144 302.496 315.097] /A << /S /GoTo /D (subsection.7.12) >> >> endobj 531 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 284.922 434.358 295.712] /A << /S /GoTo /D (subsection.7.13) >> >> endobj 532 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 266.145 540.996 276.936] /A << /S /GoTo /D (subsection.7.14) >> >> endobj 549 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 252.516 203.89 263.307] /A << /S /GoTo /D (subsection.7.14) >> >> endobj 533 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 233.74 324.602 244.531] /A << /S /GoTo /D (subsection.7.15) >> >> endobj 534 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 214.964 418.228 225.755] /A << /S /GoTo /D (subsection.7.16) >> >> endobj 535 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 195.635 540.996 207.587] /A << /S /GoTo /D (subsection.7.17) >> >> endobj 550 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 184.496 218.637 193.35] /A << /S /GoTo /D (subsection.7.17) >> >> endobj 536 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 163.783 386.577 174.573] /A << /S /GoTo /D (subsection.7.18) >> >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 145.007 300.297 155.797] /A << /S /GoTo /D (subsection.7.19) >> >> endobj 538 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 125.676 388.294 137.632] /A << /S /GoTo /D (subsection.7.20) >> >> endobj 539 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 107.454 316.274 118.245] /A << /S /GoTo /D (subsection.7.21) >> >> endobj 540 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 88.125 308.196 100.077] /A << /S /GoTo /D (subsection.7.22) >> >> endobj 541 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 69.902 432.836 80.692] /A << /S /GoTo /D (subsection.7.23) >> >> endobj 546 0 obj << /D [544 0 R /XYZ 71 757 null] >> endobj 543 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F11 506 0 R /F14 469 0 R >> /ProcSet [ /PDF /Text ] >> endobj 579 0 obj << /Length 2241 /Filter /FlateDecode >> stream xÚåZYsÛF~ׯ@éaV™0î£öÁµ±¯S¾v­­uÊÉшA€Á:òë·{º$ʲ­)/ÄÜt÷tý ]ka¹Ö˃_ýìZ´ÿ`¹N˜¥Ö…µ²Â8…ge}8ø×Áw'O¿÷C+s²Ø­“3Z#tÜ0²N ë“ýüÝÛ“oO>Ì~>ùáé÷^´54ŒÇõa-=0Ä.¿½P»à7û÷Ëk†©ã¦ð (Ò¬ÄñÃÙ<ò}ûŸÍÌOí‹Ù<»hðÚ¯¨Ú+I…UÓr©[ŠšÆx1µäMÕ´ŠÊgMK…æVí_dÞ©§UYKPÖô|ÙŠ\>½ºõižF©íÀD×ý60Ë6µwñ<ßµ½ì&éºÖÜK$I¹F{äš¡í v]®gsgäsQvË/IÈ ã›¾ã[Ëíÿñ˜èÂËlßýZ]ă.bÒÅ+…BNì²Ãgl“Ì¥ÊÓJRW×P×J|žù‰-©¦•@T'Ú®¬T#=áA y³ZW²“Õ5ËպŸŠ[žÏ¢Èê 4f±Ýë¶®¬ø–¼+¬µuÁ/-àèÁ‡[¾ïdàaæ^àÄ~FŸX5¢ Ì ‚¼”yßÉbjúwµ‡µ BÇÖæ¼´6)Ï LÒG­È˜P³ö(Т-}4ŒL¬ ãl1 À؇ž íZ õ  î¤â í’=¸’Øq=ol‰uÓN§meÞUŒió€ƒù¥W\}×Ìq©öÇ,ß eº_cdBŽ1%QEµàðrx!i²ýÃ×£Q/ÎgQ .£‡òi¥e©=Ãr—…♿öe7F¯•1… #õqµØƒøýÈÿÃBÄFvÒ '‘nPÀÏ`§Ð׺Î˳+êÔŸ}] -hoð“Á³CsËC–f1:eP(ä™è«ŽgÔfêî°Í¹† žëg`u¡«£Ùh Ò™˜z¶óñƒl²Ì½“hâ¯à#• vÊ$1á(iÓY¤çÔxÇ0Š(Œ ¶ðͶÓíFˆtà9±-6u ñ\Š„ ðÕ4Ù-^Ôå;÷>uSÏÑɉv[剽Í~ K5qY”=¼‰Ûê c²zYÜ©÷ù%ÒÀ~MèJà4ù¸3ä’vÞ!ð’4ùjmóÞÛ©U¶¥ê-|@ZdzY¶S@ü+·Õx*ºíá›û b.(̪ ö¹¦4^ü93 ÿ–þ>s|éãmÁíLŠ®7W«ò¼pŽqu¯´ 2¸šÈ/IÒËÜ^ÂÁ×Hx``v=’vAêº zlØ+¦¿§LLâ%=O¹½àCüø:5¹þ:5±‘|Ýn¦è-nko‡õÃ÷ï^½=¡AòrÝòå(Ç—­)³.´œ¹Bë˜IlÞÓ¤?Òܳ E³k) Y<¹­ QL^ ¼Í}2 n¡MùCÃgrç <Æá_&od·"‡Qú(ïçƒßƒvØÈ<$¹ö›R岪D-›þ´Ü í$f?‡ÙÝãfôGŒ­°µ4ÉÑÿëü?oß±ôµöÜS\Ç’h¿“ìº>s»ÏE=‘ûš9ˆÐŽ©E_POOT…ò_0¿?¹ƒBJt„¨¨!ÿ2*u=I†<í¬ÇIûH‚ä¡+å¾ìŸI¿lþ_'7EH””A(&Û: €yŽ:(§¦K’¿Î?(‚[Þ*yúw‹©%ýo³{, ?SLÒ&8Ð g6•,æ8\0»†¥Úå]Í}ẕëáP1±îO«2{£ŠÜí"p¯ì½Œ£y¾89øJø\€ endstream endobj 578 0 obj << /Type /Page /Contents 579 0 R /Resources 577 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 542 0 R 551 0 R 552 0 R 581 0 R 553 0 R 582 0 R 554 0 R 555 0 R 556 0 R 583 0 R 557 0 R 558 0 R 584 0 R 559 0 R 586 0 R 560 0 R 561 0 R 562 0 R 563 0 R 587 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 588 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R ] >> endobj 542 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 697.11 381.279 709.063] /A << /S /GoTo /D (subsection.7.24) >> >> endobj 551 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 678.887 259.072 689.678] /A << /S /GoTo /D (subsection.7.25) >> >> endobj 552 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 660.111 540.996 670.902] /A << /S /GoTo /D (subsection.7.26) >> >> endobj 581 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 648.419 208.787 657.273] /A << /S /GoTo /D (subsection.7.26) >> >> endobj 553 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 627.153 540.996 639.106] /A << /S /GoTo /D (subsection.7.27) >> >> endobj 582 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 614.077 244.367 624.868] /A << /S /GoTo /D (subsection.7.27) >> >> endobj 554 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 595.301 361.012 606.092] /A << /S /GoTo /D (subsection.7.28) >> >> endobj 555 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 576.525 359.753 587.316] /A << /S /GoTo /D (subsection.7.29) >> >> endobj 556 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 557.195 540.996 569.148] /A << /S /GoTo /D (subsection.7.30) >> >> endobj 583 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 543.566 190.305 555.519] /A << /S /GoTo /D (subsection.7.30) >> >> endobj 557 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 524.79 322.693 536.743] /A << /S /GoTo /D (subsection.7.31) >> >> endobj 558 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 506.567 540.996 517.358] /A << /S /GoTo /D (subsection.7.32) >> >> endobj 584 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 492.938 313.065 503.729] /A << /S /GoTo /D (subsection.7.32) >> >> endobj 559 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 474.162 540.996 484.953] /A << /S /GoTo /D (subsection.7.33) >> >> endobj 586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 459.98 277.125 471.933] /A << /S /GoTo /D (subsection.7.33) >> >> endobj 560 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 441.757 447.085 452.548] /A << /S /GoTo /D (subsection.7.34) >> >> endobj 561 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 422.981 525.558 433.772] /A << /S /GoTo /D (subsection.7.35) >> >> endobj 562 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 404.205 294.224 414.995] /A << /S /GoTo /D (subsection.7.36) >> >> endobj 563 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 385.429 540.996 396.219] /A << /S /GoTo /D (subsection.7.37) >> >> endobj 587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 371.8 456.907 382.59] /A << /S /GoTo /D (subsection.7.37) >> >> endobj 564 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 345 156.622 353.868] /A << /S /GoTo /D (section.8) >> >> endobj 565 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 324.287 341.535 335.078] /A << /S /GoTo /D (subsection.8.1) >> >> endobj 566 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 297.487 216.679 306.355] /A << /S /GoTo /D (section.9) >> >> endobj 567 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 278.711 370.599 287.565] /A << /S /GoTo /D (subsection.9.1) >> >> endobj 568 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 257.998 335.586 268.789] /A << /S /GoTo /D (subsection.9.2) >> >> endobj 569 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 241.159 328.448 250.013] /A << /S /GoTo /D (subsection.9.3) >> >> endobj 570 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 220.446 540.996 231.237] /A << /S /GoTo /D (subsection.9.4) >> >> endobj 588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 206.817 297.82 217.608] /A << /S /GoTo /D (subsection.9.4) >> >> endobj 571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 180.017 160.822 188.885] /A << /S /GoTo /D (section.10) >> >> endobj 572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 161.241 279.491 170.095] /A << /S /GoTo /D (subsection.10.1) >> >> endobj 573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 140.528 235.112 151.319] /A << /S /GoTo /D (subsection.10.2) >> >> endobj 574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 121.752 301.915 132.543] /A << /S /GoTo /D (subsection.10.3) >> >> endobj 575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 102.976 280.376 113.766] /A << /S /GoTo /D (subsection.10.4) >> >> endobj 576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [85.944 84.199 453.407 94.99] /A << /S /GoTo /D (subsection.10.5) >> >> endobj 580 0 obj << /D [578 0 R /XYZ 71 757 null] >> endobj 577 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F25 585 0 R >> /ProcSet [ /PDF /Text ] >> endobj 595 0 obj << /Length 2487 /Filter /FlateDecode >> stream xڵ˒۸ñ>_¡[¨”Å!ø’´•JÊÙ²•ÙZgí™qÙ®õ ’ákAг“¯O7ºAQZË>ä"  »ÑÙ~Í6W¿_ øF31[Ƴe…I´žõÕ¯¿E³à?Í¢0]¯fnW=Kó|«ÙÝÕ»«Þ_]¿ŽÓÙ:\çq>»ßŽ4ŒÒlv_Î~ D8_¬Öi°Q2²š/’U¼TouÛôóßîº~-² ‚4OÂ( îx†;®"fh%3‘†IšÇ¸wÁ›i¦éŠ)ÎBDÑ„bž#Eý\@‡žx¼œ ®³ÌaŒf‹$ ×Bxî¶8 >¤TË,Ð=}7Fên8â,ŒAЇÛG²ˆŽf"ô±ÀH¼ Úê8Å]µ|˜˜ÏX?ÎãUÐ.J]«¦Á¹kÁbWµ–q¶;5¸¨ÜÔèB2îRZ šH×ypc d†¦§#CS*CÀ/ó, ¤Ñpºóç(‹ôŽÆMk錬*€ ¿#É$²øÅñ9'[„HÂÎÁ¨•b#ç¼ô5ÚwØùËN,eyŠ“8¢"ûñÁ+H†â¸eEC£S>‚W!,’1sRœ.~øtwóáÓ†&Ø5}wCpO]pÇÉâƒ7þàt_â ï¬êÛ(‹ýÖ’ëŒÕIvÛ˜HnŽ%Ên…éž0x}jøBùg Øh)ìÚMœmâÞŠØH‹xL—‹jRcÒ¸²ô‘Úd×¶ Ð3+ϘSâÍПQâøs~o(ç@c }7¿ãsŽË@ßMb[äw9à"÷·Ç®/‹q‹.¤·FîQïLÉ-ÆêÏNq÷Êâ{Àó=«ëXâ<8¨ª£Ñ£¦(/\‡~26VŽ„8&Ù`½àQ×.Áw49Hñj¾a<‹³qÕÿf [x~k½ÇÖ‡e ÎWƒ.Õ¥T™aQ“×äÞ‘òà=’¿ô>xF2΂çÆ!~ç§Ûg3ÛCù|Û‚tÛnr” ÊáŸd ¿íÁ Œá÷z žß è­;%í`œ1gl±™k¨À 5°KW©A5¢ççMަŠ'ºî*åß!\»–%ô¤ßñy—äãÉø Šýr’A^µÍ¾gû ½u¥QŽ®žFËÀ=öáq!ûèí€ÁŽ¡~Wv8tê…5´ @yžBŽ¢Ƈ”žø:0"|Cµü<Ç\p„åRõÚP³Š`tÝ?\êÆlÕY‚R§»±¿ÞÊ’ïu4Qßâ­‘ËZY·ÞÏÇœé¼tªÛÄ«‹-“UƯҰ—Ôæž$©,ÇÞ¬ïøÆðÃÙ? bú¯†€ì™¦¹€Ñ„oð9Ëó3SÏÃQ2ºôâQr¯ c ’éî…ÿ¾º¿ú:Gžç endstream endobj 594 0 obj << /Type /Page /Contents 595 0 R /Resources 593 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 589 0 R 590 0 R 598 0 R 591 0 R 592 0 R ] >> endobj 589 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 396.937 287.888 408.06] /Subtype/Link/A<> >> endobj 590 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [444.382 378.161 540.996 389.284] /Subtype/Link/A<> >> endobj 598 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [71.004 364.532 240.328 375.655] /Subtype/Link/A<> >> endobj 591 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [270.328 304.338 481.983 315.461] /Subtype/Link/A<> >> endobj 592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.893 170.576 158.613 182.529] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 596 0 obj << /D [594 0 R /XYZ 71 757 null] >> endobj 2 0 obj << /D [594 0 R /XYZ 72 710.559 null] >> endobj 6 0 obj << /D [594 0 R /XYZ 72 687.944 null] >> endobj 10 0 obj << /D [594 0 R /XYZ 72 458.096 null] >> endobj 14 0 obj << /D [594 0 R /XYZ 72 351.591 null] >> endobj 18 0 obj << /D [594 0 R /XYZ 72 278.045 null] >> endobj 593 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F23 467 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R /F14 469 0 R >> /ProcSet [ /PDF /Text ] >> endobj 611 0 obj << /Length 2015 /Filter /FlateDecode >> stream xÚ¥XYsÛÈ~ç¯À[À*sˆ ®­­M)ŽM{Kqi#nÖ©õ>€äˆD Ü FùõécRä•’ist÷ôñuoëÞbòûDÂxÒK”—è@„Aæ­÷“_ ¼ ÌÿèBg©w¤]{OÇ)Œ¥w;ùiò—ådþ^i/Y¬boyÇ<´tä-7Þ¯¾ÓYšiaÚ¶¨¶ÓY˜†þS¦¿-œ¿—ÑÙY‡"PÀœNƸc8-ûŽœ‹›iŠ ‰Ð|ôK “G§/!ör>Ô¶øO]MUê·y †¡ŸW$´Óƶź_*‹Ê4n—›‡ýT%þj:ƒÿuÙ\Š~¤0Ëž))¢,ûÔ½ÝíŽåʺmØŽ*ñ¤Y)¢´È‚Ä›…0¦Î p:“REþ/»i¨ü`’Dþ¦Ø0ñ0 ¥_wü±Æ]^m ~k¿…£þÎ}TùÞüyÄŽ„ ܵ~Ù™ Hé·tˆ²X›ªá8€Ï#Z—¬(ˆ„¹q§j7×o˜º¡ý]Éø4;îòÌWtˆ1‡ ù¨9SwµebW4n­®f‡n*ò÷=±°MQ»[Ôw<~Þoí¼>^X†"VîÂMÍ~9ÒI¦ùVuã>s*säø"…¤/Ƽ\ú/vþûذ“6_&ï¬y‰Kþ9…ì3 äddÃù4õÉiF|ÜLÅckì¾a’ ›Øœ0±øô³#Le,e|ÜôFúšî¶ ¢ã ¤…‘d€‘šƒïhëÖœ…ä q‰ŽÖƒMÝÙ5ª–˜>&­ãmÛr¤,yÓºÇjŒPÜ’ó|Sl«ãfí0Á­îënø>“±åavãäÜÙzÏ0½yn…Çxö=¸²Ä<ê,=¦Rúïq¢¶'…`(‹æ$s.Ú,É”\k¸(Þ/ñ[[¬:Æ5ØÐÖOâ`”II04Õ·hÜ.Î( žÍ(©’Ȭ·®>-ÞÝŽ¸0j½ÛGøp.`PMCMiX}ÀNÁy¦ Ab …O¦"z͵Œ³CIäF0¾eQÊ?ä¶mx‘pÆ^¹5¼Í]kk4•²ìa—PÒöl ¾N£Ø‡ŒlÐ^Šq¸|àÝe±²¹-Œ“~ŽÀÀIJÂ{¤pù~E>äS¾*û Íh‘h¡¹˜åe]9» ‘Yk@xv'Ú2/»œoi†6Dû5ì°èðé©ï¾ÕwHHa­Ñ" Ÿï;Ô³}Ç[sØ‘IÕö9á# Új¡?FB+Ÿõ pÃ{žnväVeÚù(Â=Û]É Qšýaõü=—î4–&Ñy–üñ]0²%v”ùJtÕZ˜M7‡öb~]à|Õý{rš9ü¬yå=ÃHÄ©ú?®ùyEn¡ãìõ%©4MÓwX–æŸW¹;ê÷å3Eê¢ÚèL„ØÈ?.6éEσ™ìjMÎà 6³uÓ6k[Z‡[úœµŒ £´¿Ñ¿ÆÄ‡Rvh+òåÞ,æó7€AF/göaù·ë1>»qö ¥nÀ‡n|ÍùЙÂ$‡ú8hÑ7MþºÛCD;V“gý:ÒÏõˆ:Lü-6½¡¸aòh‹¶åÖ>ä2͸Ó—Ïðö&¯ÜÁv—·<™—e?eÜÌŠÊqÍPêúg˜w4@uÕGÇ =¸žë„ã0ËŸµ5¹{%@å¦'ÈÓÈ×’<B¿ÙîËY[»Ý¥ñúÍŒîÃ˳ïfcŠÕÂŽôŠð>ÖáàùÁ4ñ”’£m"$‡ÒêõHŠW PV¾¨[íÒhsw8‹´ô¯\宆D<Ôd˜sêoÝò#{üÞ™«Ü³ÚÓ.) =NÔMs;¦" âÇ¥•{´­AñÏõBlÜ&õ —{×c õy;<Ñ âî©?àjÞ7Ç!ÑPÇýã ØýÈ g?r€Â§9ž>ëð± úH¤ƒ¸«ØÎ1®:{ª¯(§é…ë×_ bâÐý}aî"õ Ϋ,cìÝ+J½#Ú,ÜŠ ·1ç}‡ÎR§„S÷…m;ìHðƒ2¬#Åa[YÜ“%ˆCÅ# Ô©bÒ¶$.¡´† '®\zÙUÍãÁ}/Ï 6½4x¦’tÇãªtZ²†éŽ´d~ ¬Ñ¢qê"ˆug­áfœ0¦V]µ) FàÃ=c~°€6(=ŠÿÖ8}Ä7ß ù BD}vŠzbwàN×jómÖJ¨§|ùÕýscìŸÜ]±Øfî§ýQŒ™ ý`àÀX¬•sQB@óHÃ9ÆÜÎu}p,Zºã‘‘N¾ŸJé@ç§þe£ûßr`ã >Ф>“üÓÝ9#~¬µµ-¨yÖjxر•«9üC¥ïé¸òÿŠ+ÿøÈüŠrRáQ6brô#·Üp·Þµ‡®£¿h¾[Nþ 6RZ endstream endobj 610 0 obj << /Type /Page /Contents 611 0 R /Resources 609 0 R /MediaBox [0 0 612 792] /Parent 471 0 R /Annots [ 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R ] >> endobj 599 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [236.338 527.866 332.454 539.819] /Subtype/Link/A<> >> endobj 600 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [191.766 393.176 314.028 404.298] /Subtype/Link/A<> >> endobj 601 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [126.859 371.577 374.62 382.699] /Subtype/Link/A<> >> endobj 602 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [125.608 349.978 294.932 361.1] /Subtype/Link/A<> >> endobj 603 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [169.913 275.878 302.633 287.831] /Subtype/Link/A<> >> endobj 604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [493.586 275.878 508.305 287.831] /A << /S /GoTo /D (subsection.1.3) >> >> endobj 605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.122 151.9 325.841 163.853] /A << /S /GoTo /D (subsection.1.3) >> >> endobj 606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.386 151.9 423.106 163.853] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 612 0 obj << /D [610 0 R /XYZ 71 757 null] >> endobj 22 0 obj << /D [610 0 R /XYZ 72 663.124 null] >> endobj 26 0 obj << /D [610 0 R /XYZ 72 591.238 null] >> endobj 30 0 obj << /D [610 0 R /XYZ 72 514.925 null] >> endobj 34 0 obj << /D [610 0 R /XYZ 72 337.037 null] >> endobj 38 0 obj << /D [610 0 R /XYZ 72 248.236 null] >> endobj 42 0 obj << /D [610 0 R /XYZ 72 212.483 null] >> endobj 609 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F14 469 0 R /F27 597 0 R /F21 465 0 R /F25 585 0 R /F23 467 0 R >> /ProcSet [ /PDF /Text ] >> endobj 622 0 obj << /Length 2232 /Filter /FlateDecode >> stream xÚµÙŽã6òÝ_! DF²nÉA°‹=zº'˜I²'ÙÅ$XÐ2m £kDj:¯O«(ÛÝêtoŽÃd±XëTàœÀ¹^|X„ð8¡“GNž~¬²Y¼û1pvÿ üd]8·«q’¬€ÿÚy»ø÷â›Åêe”8kE™³ÙÄ’ÔÙìœwnä/½b¸×Rëª=,½¸ˆÝY÷Ë7_¬^†éÙÝ$‹ý âæfŽ‹€¥6¹†þ:M#ÄõÙKb?I Ë,Zza¥î+œòÔÕG9HZ úûVÉáSs B¶;.C·ÚMHqè~\f‘+ªZlá¨æ“}7Ðâz¥üÛŒøãE©õŒ0ÿ]‚¦RþÙ:p_饗„©[)üÏÜ^ éöô¢Òâz@±D Ì%!ï*¥‡j;êªk G´;ZŒju}GxD”T0Ý Î{ß\/œw+÷“‹¬Ã`¤yÕ"§(,>ÎеlÑu41øÍ †Jlk©àBˆ?Œ‰  T`LˆÆ…H8cažPlGÆiëý !“έ¼5ž Ì•~Ú»âɻ☉Ä'?‚å±kd/¼;™ 6FëÝJ[…ÕtÀ,ôã¦cº7À‰m>È“}¬…Ÿçé±±ÂN©)G§ŠAm§­¸•æ+e×ôµÔòmïŒÅ´ÏapQA€kœøëb*Tñ“µc³„J6ê^¹žêEtV/þ€b‘‚†œCã,¦gÉE5'šQt~{¤è?Òé¡"t:ÜI-*SÌvLMËÞ£äááš.U-Þ*3ˆv$wd†ñ©ä‰C 6HStÿnTŒ-Ô{åÏù)hwGÏCÊá‚âT§ºˆ0¬‹÷|÷¼."òy]Ó%Irjè &ÔŒÆ æ~¦×°#™$;W áe¢øwVCJc9¤±býÀÁIñÔZ ¹xM„oMïFMÇ%dFîŸbrGª @}Ýé´Ü =y‚9ÁèÕS ·ÆC£èÑrèAŸëA´jre/¥Áa=x›qDÛ{äI¶$€ÔA4ô0d¡åГ~µ¡m#w:ŽÆ <ñOÀ¿<;‰šp_€”!ÜSÔŠzV­É-Ìmº¸}EY’«PnSfM9x¢o´ˆÇn6ÛÖUËþýdbI8±|J(»Žþ_ÑßAjZ¨±-0AÂAÿžlbƒà(¨pq¬¢¯ÙˆÚwuMÎ^·zM Øeóž÷ø!h—$À|:f–?áý†ýBB\MÅk㑊–‚þlÖŠÂf}O 7OWs¼ãÀ½’d)=`b+Ñ?K¦¸-E# ÷¶Ò ãJŠ@Ì–º[𸔢<S´ÆàÜ‹xb¡Z–ŸÚxÜLí»æ¾³}ûF³t¦m¿Â`4Qå08Mo!êŽÞ>gåpÕaí£%f èhã¬ÈÀ¶¶ý„MÙQl‹ªµ:ÉýXÓúˆŸY‘3Ãb²–I”a½Wž_ÆX?tPR´`±²§èä‹×;Ǧa"[MÃÎE¢ ±Á†´­ìp ¦|CÒ¸é,Üè%GѾbŒ‰tC ÃÑ®d iüŽÓÞþ3´³ËL2у”þ¯…œGñãE¡Ÿ®KÈÝ<È‚ž­{Ï•X?Ö1šn ti õyëøŒö0ŸÛ#æzÄ?Í._™NǶÙY6é›™¼;6ŠÖ&ýXïbÔg( 7#? 4|iò42¡ÔƒD)>Áôlõt’R3kü>³S,¤P•Ip÷ iàÇuÅçSX–|ÀQžá·˜æÜ‘Jj€ó1yLÝqõÄÉGÑ™qï€ †! ÝÁ ÷‹ˆÊµ•¶|6ؾ`ÈšQ``>ÇLfÔQ÷G«Av†!f»:3Í)üs¢$c<9Êj ê…¥¥«†WŸus–8ålÂpÜo?å–ìÁø¾+bñËÓhR¢¶]ƒTÜø´JÎw^Õ5Èï÷é“à ̇ji>àt:öô‰ _0ÆþÏtþx±ûÿz‰/;Lšázâh>bÌ“î÷fr!ø^ÊšVüž!IÛ±†¹Ì¼ îÈbØÑþ4}†ÏÕÃù° 犈¿½Åaf“; ×C‰é¡ïÖ 0Ö˜,ÊQ)«Ì|ÒîúªTöa¡“•vÂàY†#ã9-böäóB™©'‡‡}]©ßÚÚù#Ç™ü"b¿ˆÏ"6‚Îöòö}¹Ýš$ÇáÛN†¹)w|G`¾iv會äÁ0ƒ‚+x'/€”; jã™ý”€óóyüæ\„)‘‹ÌN.ç~óè÷ zÓsG±Ÿd¡-+æµð©2ðzªÌ ¼Ë4tËcõQª¹v¸D…¥ñù£Ú¹G­ûÏV+íp"Vðð[œ{ôoeõ3 E­/ð°ô«zec…2¡(¦Œ­vÏ>î_g¼'?8}14OŒÊÀ Ôü=7‰¡×.â{U„:ü.0}1CÇ@‹íÀ_ÁP—EÞþ_m¿9ÅCœ endstream endobj 621 0 obj << /Type /Page /Contents 622 0 R /Resources 620 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 607 0 R 608 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R ] >> endobj 607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [237.999 631.015 252.719 642.968] /A << /S /GoTo /D (subsection.7.4) >> >> endobj 608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [280.486 617.386 295.206 629.339] /A << /S /GoTo /D (subsection.1.3) >> >> endobj 613 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.65 389.82 273.37 401.773] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [302.183 327.335 316.903 339.287] /A << /S /GoTo /D (subsection.1.3) >> >> endobj 615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.057 305.736 267.777 317.688] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.916 218.284 343.636 230.237] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [504.718 144.461 519.437 156.414] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 618 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [198.422 112.333 493.743 123.455] /Subtype/Link/A<> >> endobj 623 0 obj << /D [621 0 R /XYZ 71 757 null] >> endobj 46 0 obj << /D [621 0 R /XYZ 72 710.559 null] >> endobj 50 0 obj << /D [621 0 R /XYZ 72 586.222 null] >> endobj 54 0 obj << /D [621 0 R /XYZ 72 468.302 null] >> endobj 58 0 obj << /D [621 0 R /XYZ 72 266.09 null] >> endobj 62 0 obj << /D [621 0 R /XYZ 72 192.267 null] >> endobj 620 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F21 465 0 R /F14 469 0 R /F25 585 0 R >> /ProcSet [ /PDF /Text ] >> endobj 631 0 obj << /Length 2350 /Filter /FlateDecode >> stream xÚ­ÉnãFöî¯Ðä hÑ\Š"Ù$q§;:I{0$9”¤’T0…EZö|ý¼­(ÑVgâFD½ZøêíKE³Ý,š½½úã*†1šÅ³<™å* Ó¨œ­ë«_fX?‹BU³#ªgjYÀXÍ>^ý|õÝíÕõM¢feX.“åìvË8T©lv»™ý¤á|Q”*ø©kçiÜÛmvóEZ¤Á÷¦:¼ž/²8nlsZ×͆_Ì€$h»~Üünعùï·ï¯oâììZµLÃ(ºèÒO\E P˜Ïâ8,³,Á³ 9¼Pi¨TÁ¿$a>_Äq’ïÜ”gA¿7aPó°m»¡ATðþ :½žÇAð› ÄE³E’… ˆ•®úÏø0£R¼\¨¢pVU;OŠàˆó@„0;>PÙæî5ãOÎñDZ ³xäžÈ!%ñÙ¹4 KP–ûJ„„šïvb¿¼½‚­}ß^__*$@»Z/@MQ°Ó½ Æþ·ÖMjÜ\‡¶º~ ü›ëÃþ°Z]O$¨¾¾ $›Ð+‚x'bØka×öŽBɃcƒ˜@ih´¶ˆÓp™ˆHoæ1XÑ·(¼ŸCá¢à{¢ÿÈÿnÚ3TYМGôßòóä­ òH3Ÿ ÷úÞ\ʘi˜gé)Ás´\}cŽ Pˆ\d*þåÑ„µ²§*r阒2LŠª(LFÊP A#@Ã%©£FDݰt®¦ŸÈ‘²ú>e/8j{âk FŒ’<«”`Šƒ$*ÂhžD7Û¸¾ÖH8ºkÉ»á‘c½ˆ¢1í¡¹Ðò¸"‚èÄWÁtèÌÚ:ÿ¯_dÒ³«ŠÂ !V7¸w¤ˆÖ|Ù?C dAÚ2X£ák<¼ç•=T& Y9s Žˆ·³½ ù-J¢[‘È“@èÚ]§kŽcëN»=Ô¡p>Æ2\ÜœkË#º9¦ Ì5ÎÖ‡JB&h«#)›aLËp%ºþ(‘Ô’èOa: ¶>ç8‹Bh>pQO‰…„édÍËá¿;Ì“iQH8‚ªn5ØjÃkÒgœm¶޳Î¥á(÷èzSóAŽÜ@àÀ{ñ·Œ#ôoÅÕ þ²o‰Vµ}JÄ9NÛl[¡Çñ.Ê8‚²Ô’Þûx‰AÔõÐèG*XhVfZääo#,À(ú4ôXFT@¡¤5”þÃY¯6ï^áVI*À#kHΈŸFR´0f¹2ÀaÞÿ…Ô=Ô;VÑwOi¾57H)YG|Øö¦™àKQ `H5¯Zw‰yHëó)•9”e- Vû!8(šðš7º×²m0¤@/üTqi@h(Ëž½î3š,®t­›ì²HU$ù°ô)¯„LÞØ¥nN÷Ö»2îûÝÀeН2.°H’„ÖÆ{XŒ4ĿయRˆ3CpÑö_:†Ú†*j€w0×-å‹ ¡1Ž×üU"!€^.1ÒŠv±ªç1¹Œ_¨hw†ËÈ’†ÑÝùßó\s^À9tk§(XÜçž/aÿ[i^f¯ÄÕ»S-‹S¤•!j)áàô!ŠnìŸ`æ64‰§Õ.lõÚRN(8Í<­QS(«ârR5fñX4N™þðDÛßc^¾i¯m³1ážÈúºúKÏNEæÅÒsÑJ¿6¸I/ùœ£LòÇg³/ð‰èúM[×Ô#7½ûâÂ]E¦ÙøÂ%}¤ô±Û®­å- 2 ‰©¨0€ÒcOTÈÔ ââÉ@p¦+rS€î¨’Â{@?@Í£=ÀÅw|€ì>‘ç\¯ûAÎ>Ûä —^£,,ÊÂóø¦m¶¶«Í‚G¾øï¶»£š…‹ V¸Å&¢Ùq¼ðh¦ïyöaDô¦jNž 9_†Y2`úuÈ­ˆKá;„{òŠTù|lN—&g]í˜d°íö½ù™Ãø.Ö¿W-ÑÌŒP´ˆ‹0Ïåµñ£$©8íÙß>pËj-‰‡v艇ΤŽÑòb`¥Ÿåæ ‹îö•¿ÀÿÓÉ•kŠRu!¹mNbø“ÞZÑ£ø'zk~d~ÞJûñŸ·Wÿ=Í,A endstream endobj 630 0 obj << /Type /Page /Contents 631 0 R /Resources 629 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 619 0 R 625 0 R 626 0 R 627 0 R 628 0 R ] >> endobj 619 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [223.669 672.178 466.699 683.301] /Subtype/Link/A<> >> endobj 625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.52 400.204 361.24 412.157] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.969 360.991 362.689 372.944] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 627 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 164.785 350.637 175.908] /Subtype/Link/A<> >> endobj 628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.051 118.475 400.77 130.427] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 632 0 obj << /D [630 0 R /XYZ 71 757 null] >> endobj 66 0 obj << /D [630 0 R /XYZ 72 710.559 null] >> endobj 70 0 obj << /D [630 0 R /XYZ 72 644.813 null] >> endobj 74 0 obj << /D [630 0 R /XYZ 72 608.507 null] >> endobj 78 0 obj << /D [630 0 R /XYZ 72 227.88 null] >> endobj 629 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R /F23 467 0 R >> /ProcSet [ /PDF /Text ] >> endobj 640 0 obj << /Length 2296 /Filter /FlateDecode >> stream xÚXÛ’Û¸}Ÿ¯ '¡ªV4o¥M*®Z×Ú;Nmj³ž¤*å솄(xHBK£™ýúô 5–yqi4€FŸÓÝŠƒ:ˆƒ÷W¿_%ðƒ$(Ò Èã(‹·AÙ^}ú-*ÿÄQ¾ÝG’jƒ|½o|¼úçÕ·W¯ß¥y°¶ëtÜîXGÅù*¸­‚Oa-–›mþÒÛE–†¦2]½Xf›,üI7‡ïËU’„ïLwW]Å_õihûašüa¬Ýâ·Û¯ß%«Ù¶ù:‹âÎE›nQâ*–  ‹ I¢íj•¢ìR„—yåùÆŸ3[,“$]…·{½XæiÞ56’°§s$xøÓãã#·Œão«úûˆèŠ×*¿~guu-ÂO¼C³Á’æÊ~#pÕ»Q¶¸áO‰FÛëuû ànAGët,“U´¾©ÍŠUØ(7pë–ôÎØŽì¿yø¾‡Û†j;È"¶:4&5tlà%ñëÓ4“P¯_]xˆ¥?YºŠRp$:™4ÝnÂA÷-·®ÿg9›»­V/LûcÃÈŒ,‘Áî™x9ö½î) ñ¹Òù¹Òlm‹•÷J?èÆZÝ .±*"p/û€:ÙˆðJY,¶:Û¼Ó—vÝæ`„IÑa¼kLya¿tYra?V~D³ã«/ódKž›dddß+”‡EEˆ—eò‚Ð ƒqÍEß™ç+,§vn–æâ¸0r\`à¢ÌÍtˆT¼$æÆq‹ãæõMÝÙžœ—Vt¼‚í3\ó :Ì×`{ÈҌUÁimÁå/´yzóbÄýg\iG$03ÚxDNÈÁ¸çþBóÆ9".˜u¶ÕÞÞ1?½ÝOÚ;ZjìèÀ‹ ð¢·ÈM éžÅíè7±(yäg½e?Ò}#Ýxך§1íB¿?y(Ï’Šè „¹4Z;E"h…àë" ¶t÷x‹'¸Sw´9ôžPÈŽ=÷ηƒ#N‘CQÐ= Íb”âñÏ£× þ0v•¢!º8|#ø=a„z, Æ…·’£Þ v³Ýá,û³› æKœ$ÓoÂ{]~Â}cë$ê?±ƒ‡ÉsCó²U<)»þ·ÑÇIï5· N A,€Â£zxÆ>w¬tl;?Áìœ_lü[8DÕN’|“ÖžVÂ'ðrL7SÏ ¥c¦ÒêäqþdQðȱ±ÈÝLÈóYˆ¬g±£qû7ð 7ϘnҰĽSð~mT„d›ú܇êZƒ³ØNfØÑ°ÅA´y„æ'ž‡µÜiª/wäÈ ú³ €SøôNkîü>ò$±¯%YüõýUð‰¤²(=Ë·h8%Mè"ï˜ ºKÅtߘßyYÄYøq~sxᎰy“i¿B^@"å’qaPAñZwºW Æg –lÙdº,kð\ÙñFT´Þ–”ý ˜!¡s Žuxg`å¶hhLÜò„¯`›kÙRf†½Nyß%Ú’ÍÄŽfr'sDª{ÂÖŠhGX)¶žp_"1ì¡/qˈJôð²ŸuÉ1Ô켤{nÕLžü[ÉZ­'=y¢¢X6ž¬… 뢪ӥvNõOrVY8ÝnTÕEC Çˆ¢2EfÒvtº’Ø`"™VÈÄòH­…C<a¦ó’ôa}NGä €)ðà}>ØC½ò%_¬€Œ“‰SD ôˆRŸ«yß«R‹8ÄPA† .”cfãS&ÉÀ9ŽOôÎ[ÈÓÛ¥²ÑdkH3 !ÌàâîDÐ!åÔàÏ[þêê^µpÍ–¼:]gçë˜Öp]ÓR¬¥AÝÊtˆÃ]‘.?K4Pztz76ÜÆ£ã¨]…F¯T¹{nXÙ‘Éô‘K'áØršFàβÝ%_sŠ,x84†’]pr³ãÁéz$Ñ{Qþ x÷)UÃ뎽Å-7IDAð”,(µ¤jà<q9‚3[a·Ó ÔB°³™ã R9¦£ “qç ‹…â‡ð}á®v‚g0UÄnõ#'„S˜v­¢óœ@Çþ+y{Æ”‚®w8Àf·uÉ·~VœÕsõBþŽMÈ;fÉŽ»ôÎÛÍ,ÃÞ®7º«¤ä“J«€5V5¤ˆ+婦lm/-ð¡Þ±ø´)<“rR¶IµV„;(µlG1‘Š,x#¼?•žÞÜ(-a§PR½ŒV ¡•o¥>&cû ªò!xMô‘†”aá,nãK€w¿€<~ÈÎ1G1¾Ìqâªj,dLÇi«”°(ÕJ–\í—â¬ÜŸp˜¦®‹ð_Niƒÿp{ìpŸœ* è"›/G¦ìSÆ\L¾…ó$ˆ·[â¿'y>5‹¸[Eéüz~”@RšÝÓ%wתqj¸.ß•*ܽ¡je±0¥Æ~ï“×cudÉùzÕs,e¶¿\ssþAËtW]ˆYìBÉù ÎAôׯ&]yM3Øïw…öHxžÔpÔæVu]e…ã%4Ló,1 ÿvÙuÎ"ƒ£TNbޤ’•7¾â÷·Ç¸è{o¬Ylâ)F)›Á+°]yÚAèkÂ=g­8ñÙšÙÛ|5 E ÷, Emè]à>cëþo-1awsž4æá¨gñ[ò€þ¨'LW¶SÃôŸ"úI€MÔ6ƒü¯¦Æaoû—Àú¸ŠC Tb®!“F'ÜPãêV^ wZ7<Œ—‘P½VIùˆU*èF »$DîL2©8­€¬èü C‡%ÂÙ íkÕ™?|Ð;Ý燑;LµR6•ßÂÓm/¾6þJg0“äÿá°†2;§ÛðŸVxƹ—ÂÎßIUjê=±ß†ó_–DJsßòßo¯þâÝ endstream endobj 639 0 obj << /Type /Page /Contents 640 0 R /Resources 638 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 633 0 R 634 0 R 635 0 R ] >> endobj 633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [488.875 478.826 503.595 490.779] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 634 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 220.613 261.244 230.906] /Subtype/Link/A<> >> endobj 635 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.92 201.56 391.64 213.513] /A << /S /GoTo /D (subsection.2.7) >> >> endobj 641 0 obj << /D [639 0 R /XYZ 71 757 null] >> endobj 82 0 obj << /D [639 0 R /XYZ 72 710.559 null] >> endobj 86 0 obj << /D [639 0 R /XYZ 72 629.984 null] >> endobj 90 0 obj << /D [639 0 R /XYZ 72 526.079 null] >> endobj 94 0 obj << /D [639 0 R /XYZ 72 424.999 null] >> endobj 98 0 obj << /D [639 0 R /XYZ 72 300.548 null] >> endobj 102 0 obj << /D [639 0 R /XYZ 72 188.619 null] >> endobj 638 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R >> /ProcSet [ /PDF /Text ] >> endobj 648 0 obj << /Length 2641 /Filter /FlateDecode >> stream xÚµ]“Û¶ñý~…’SG€à—§MÆq/×óÄ7=OÜq2SIŒ)R!)ŸÏ¿¾»ØEéèÚÓ™>H\,€]`¿Ñb³ˆ×\HøF ¹ÈÔ"Ó‘ˆ£bQî.Þý-V€¹ˆ„.òŽ[µ[è4‡o½øçÅ?.~¸½¸üQéE!ŠT¥‹Û5ÑÐ"ÒÉâvµxh± óB7M?˜º6CÕ6Ëßn_^þ(“É6ä°èºM2Â%ŸXÄ ©E¬S…‹C^êXh3£e(eÍ0RÙBJQ$‰Û-Â8…”þ|7ª$ø[»Œep¿ ãL«¿IpCŸŠˆÒàº3¥ý~æ@Z%Bøé-ó8hË0Éò`k–*>àŸ%̰e Dä¶­JûlqØ æ:š|ÀIO¤lwûª>ßß·‡®´ýÉú®·õš0í%¸Œî›º5+Âì;ËäqW-eÐØ-\/)c‘*¾ä¯QÝû[øû¡k›Mý€#ô‡ÍÆÂÞ‰ ´âx æýd3] öýźëyC× |$˜R¡”« ”¦!`cÚ{· U´Ã–ðkwvwä@F1U\œD"ÊGó»î–‰ L‰ÿx )Á8v ½6OBNHä©H´ôþÌö‹^Õmؽ~¾¾€©í0ìŸ9I‚ù¦ ÈäT ——ûÚô;⃠Þ VÜÛêÓÎ40¥¨êËkÄ£^žx ìÿnÆ0e!…–ÊŸ䨕 ~ÙZ²3•¢¶AÕZ‘J³`ídÖÑÀ›-„Ó ë¶Ûõ44¥UlßI˜ª6w5£Ñ>zkiñÛ{¿œ“Nèz"-²³K†1ðBÊ?ð©Ñ:ð·t3+»~`Uͪ' °„oÜû+Ò2°¦¯3?"Žš¶n÷Θl×Óþ­a‚¦cxh϶;‹sfÏç(‡Ê{>Rñ"dRÍŠ€‘ø|rÆÕ† m0†á8Â×E©XÕ Æ ¹È²”6Ü ´¬êékê{¼–ÓÔƒÇÑgÓº“ÒÿŠ·­¬™òÓAg Ïýhê2ÉD®G;ûùêù__]ÍØc,Y¿¬÷$Í@l@¸KtÙ=ø¶BûYú[±«j6´go\}¿LÒ<”i:ͬ Ùb.€À ¡d YAR{“Sœ^`|3>†à1¸Ãäñ@QWFqðµùÁöß@‚”Eð_H38ñœ4/àÖ¨=Hx} ’" b¯m×a¼ÆáL{Ô"ðònã$# f¶Ð pâæà¤xB{Ì)8@Oû’ë¾s+1›ž¹ª'€>qƒ%œ³íã '®\¤ìš¹ ƒ4coG›OÕ~Fê ³}êíÉb¾H:‰E>òYp&ª&"Í3¿f¤ 2Ü„×>ô–VlÄ|ÞPéÉ ÂÌ.\•lÐÄÂD ø p±ùħ™^R§:Oê÷^™(Šlz'Çáã‡5óœ«Ë2¥£P/O9w¥àÃ)+‘K°}GöWZËa<¹í¼“ãÖèÊc¤¬-¥Ž½€ÃVqÓEnðà±3sì™·BܨÀ{Ï QozÛ=áàp}€GWrtï·•b4]¶ÇŠÍÅfÍ“Œ?_<¹{ß‹ÏÕ'&æihèXaˆÑ(”CCÀ¿Kt‡Xo}‚ñ@gêimo(àÐJò[Þ¾}KóaÁûeª0²âåM;°nÍŠ)Cn„øÞû£ –¡PFå†`éEijÙQÀ+m7˜Šƒ#ž ¿÷KØëÒØ±hv¶Ã¶™FJ‚û‡~°»of /ô¼§óÈ–åžsugjÖe²¾¯\âÌ îÕ6ý³³®âÌD¡¡§PP“ù»þÉì|Ïôág,÷5”§§å>bÚ‹b„HYy‚Š)©#zoº ‰àpˆvËiFv,**ìHœ(‘ØJ‰žÔ5èS¼øúïo.ªœS> R×s5¶=˜MÝIY’Oç"ôX¶;ëÛ¶‡zEðÙUÃÖ¨@îίӀ¹3:9­®vxâãœ:Oã„D¼`fP¸ÌS“€w­©9qóv()y8s÷rD ‚9psèsƒ+ˆÈ<³n»ãÑg.ÿòõTÜ1(¸®î:Ó¡ù¢&[BÞ‘Fh€}Ô¦©>9»w“\Ãä<úq'¢¢:oRwØ`'ó8–+%¤ƒ9œê÷½Ý¤jÆ“ ·É© ³ÞLáVˆõA yñ»Ù>,Óc,ø ‘“Q¤ÂÖ XqüüõÍ\XPô{Irz™_ø Å5(þdUAI2Ôü¸B­¿äð=–þ:xAÕâNÒ1KxKä hõóºoŸúâ{6urÜ ÙU{`öÞp¿®+JFß6ÜSTÜNÀÝ#ŒOøiéxB¹Ût[ñÛ ÚöW¼¿Ün»ö°Jv ×IJûð³‚+îêЬU.±íÂÇ3g8ÿ­óªoià^×x£¡§ªÏUZµg '¶tú. ºMÆ–~Þ æ'Ç·´§|l‹ÕŒÇ4ôé-_Ÿ†ð»>4%Çu7l;®Ôâ\H¥Ï*µCUs/ÁqÓ™=4Ì®ëJ”k+bc±ÝÚ¸$ġ®ßÜpÐćÊ@½ÉÎvd/€¹¯V˜'ïÃGD“K °NÕµÇpÍ/è…ß¿É%Xš½'¸~1Ì œø0[6Ñ‹ÍäñpLj>"º8-sü÷êöâ?¬õr endstream endobj 647 0 obj << /Type /Page /Contents 648 0 R /Resources 646 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 636 0 R 650 0 R 637 0 R 642 0 R 643 0 R 644 0 R ] >> endobj 636 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [512.858 627.362 540.996 639.314] /Subtype/Link/A<> >> endobj 650 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [71.004 613.733 256.513 625.685] /Subtype/Link/A<> >> endobj 637 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 600.104 85.723 612.057] /A << /S /GoTo /D (subsection.4.7) >> >> endobj 642 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [505.388 507.536 520.107 519.489] /A << /S /GoTo /D (subsection.4.1) >> >> endobj 643 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.413 480.278 296.133 492.231] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 644 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [211.084 206.254 225.803 218.206] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 649 0 obj << /D [647 0 R /XYZ 71 757 null] >> endobj 106 0 obj << /D [647 0 R /XYZ 72 710.559 null] >> endobj 110 0 obj << /D [647 0 R /XYZ 72 690.733 null] >> endobj 114 0 obj << /D [647 0 R /XYZ 72 555.342 null] >> endobj 118 0 obj << /D [647 0 R /XYZ 72 467.368 null] >> endobj 122 0 obj << /D [647 0 R /XYZ 72 253.783 null] >> endobj 126 0 obj << /D [647 0 R /XYZ 72 142.716 null] >> endobj 646 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F23 467 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R /F14 469 0 R /F11 506 0 R >> /ProcSet [ /PDF /Text ] >> endobj 658 0 obj << /Length 2457 /Filter /FlateDecode >> stream xÚ•Xm“Û¸ þ¾¿Â³3È3kY¯–u}¹Éu.éf’Kz»m®“»™Ò-³'‰)ÅÙ~èo/@€^)õä¶_,A€ŒÍ"Z¼¼úxÃ7ZÄ‹"YY¦Q¹¨º«¿D‹ø¯Q˜•ÛÅÉIu‹l³…o»¸»úëÕw÷WëI¶(Ãr“l÷{Ò‘…Q–/îëŇ —«m™·½DÛŠAé~ùËý«õ‹8ŸLËò-̽nR£ÈUÄ.Vü÷*KÃ,Û’ÐýA¹\¥Ñ&D䕟–IH#ZZ$™.Raš~Õ[ÙÉ~p6Ù Fy§¹—×{Zl8ðbªÇµiö¢’Ë8€féí¢ÿµQêÁ7ííÝ "ÞèAíIâç(¬”lj‡a8~³^ŸN§å lÐGÙ7Fǧ,Viž€ÒÅ*NÃMRòNL3÷ï‡àO¶Ÿäà®óöÁÖ6˜eÁÍV’vß> 3 ªe² ¢odMRj°ôO«@ÖÊo–«ÍœÒW—+˜!û•Õ£ÿ¹IÇV€îw²×¦c ¨[$Ò =ÐààŸð‡5ˆ¹9^ñ ‰?ZéÍ#,CŒ½‘ò†|ÆŸùL´ÃAÍ—¦0û™%ª×fƒc4²wéçGѪŸ£4C¯ Cð4© ÍÄz±Ü¦à[yÇþ@ž6ô}ë½5ýóh´ãÖc5P´#°yÅf~BÐ`{CÄAcØNÎcä7Ãÿ°{t¾ ±$󌄨¸ï8æ,èó dGÜoõµ´öžþȾ’é_Øü”LG Oa úaáð‰Ù'e%Ûi:ÃÍ£bbhaÄåt¸·p¸ûÚí'§ÂïŽBAAŸ8Š~Gó|6#·ÒÝÀe×ò˜=Ù¡/Ïž>yçINBoï, w#N)ØLø‚Ú–ÈL5DÖÚV]Ì`#¸×MI–QV!ÇÑP‚i+Y±C;ø¾4`1fÌÌ/eUß|¡ ]Z¶ŽË"ÖÏ´=ºº œ<£•&ûžì8 Ë$Ü€P¢ÇPdQ (š?>‡3ƒ-þ‚økô³Ådá5a&Ÿ#}lYh´pDÄp`d%L"Äë–¸02Xh76¤ ÂIf„:ükotGÔàpþ#²–gÕ­ƒ?,Tî\YMBë.¸¢S?K’çL„ápà OöòD„‘P=E †`¿eÈryèÈÉaMƒåÊNW@ûìO·öqTo?†…|Ê‹E‡ež'|ÌÓ,,·ç¶bÇIü³Ò=jnF#Ÿa2Àô‘ÓЕÙ¶pã ¡¿Õ@ßJôϘD.9€¾æ:¼‘ö$bo¢šŸÓYJ}*£U;#\®Ã@ª%Š“š¸˜»,ŸaRAîèL4HŠŽøPljwØßÊ‹`*À!®Å¤š®­$ÛÔª_—>îOW%÷uˆJ|ægeð÷ßH3-”«–—?—Ƀºóaê`îB¦qrxÃ!É¿1Æ@Üéìôe…‹AÈÏú*¬7Þ«ÊúâÐ_Ȫ½{Î)Åɸ­YW•]ïTÿ´d*8™ž»zI0péÒŸ@ AŸ÷-ŒÄ2MÀ)›$ª€Òßb=ˆ#K‘yp:@d@î@CðÁu&ßþv†½ÇpÀÊI5†,©]@††”ÝTаv<žá„dw|>!È>mXö(è¼-¡àˆFZŒNïöNΔC £ b`:}Ü8¡€ËÝŽ\凈~{xf$M8Žl¬ê‰Á%†/tØY }z™ø"[-ó:>4ãBå_yéYî}¥Ø»ú="bz'V¯ sž¤úw'ú>Ï`¬ÚõqÜ­Œýºr& ·~Rã»Âxs¾ÀíB8oƒç †Bõ7ˆÞÎ ØO&yJW$~x{OÄ4 .yê`ëµ™¼Ìlûó¢’Åé²8 ®aý["ÿPFÑíŠT úñÝ›k’H‡‰- vT{h`UË-‚kåQYÓk#k–¼Ò¤Ôv ð^J^Ûe¢¸ •™÷Òø´­x84cÇ;B°˜¢ÎÖo½…¾%ßp¹å2W+[[ ûU,Øx,Ø2ÜÚÿAŸ÷ s )}ò¿lª4Îà Ÿóø_—NÃ4‰½ÄÛ»urIQ‡Qœ?]ÏßßÜ1ÐÀ'&,À!5P f—°šh¼è• AìRW¤i„X¾ÇžQY3èÂÊ!q^–} ¬jýbðøs~ß(hµçÎã ƒ"EG§ ñ0óÑï®g;Yú¿Ì×åvýÃý®»Ñú§wtÇDqjõ€@Ǻö3¡^à K(I&fÍØÔ >¥NÆÃ·Wéït$öp)-…¿CñU/ ®{¨×TM¯Ùµ*”\"ý=P›s©¤êŸ¡ÓÏ.ìn¼û½v)k.ú¾NþD+ͤ÷È/^Ü€`‡g¹¬õiùX\ý~/†ë;=ÀÖvÙë(çw$8tHN‹ãó ­/E0*¡‹í$ñ5„iOLg&òöc_á[‹@,‚t¢žÿÁì÷Bv$Â+ô3Œ —DPå¶Ž®kÍ:¾\¯£Áö¾¼.ýþR{ç[ÊùèÁ•ÂñËÖwþ´à:Mÿ¸7„™ÿß9v°•QGN=®~꣩iÔ¸]¸¶?Ç [³n t«'é9VÀéD-‰z¬ìeð¼…Ì×é2x#®û"aî¾Pw_ÈÃ¥w¨ n_ùÿó E—óa¤â\ 8lƒ¨‡°–ëÿ¸ËØEIR”km“'UãÛ0 !¶ÛÁ¿Q@*|Dí£2|í›´ôp”üëÊvCŒYŸ2Þ8brö²ànvö¨€Ë°áå'Zù8ÿEïx~süýg÷x"kË¡ ϱÿÍζäjögÅô|êšý“ÂÓ‹TSUDì¡Å ~÷RÜ¥Óá¼õWAdà=«Œ+ï0kìItû ^‰Þ¬IÎ>t+—©iäpqç¡‘ ­½tåZyùi[|»Ç. Ÿ¼êÁ ‘v¬ð0h$èÓ=Þä¡Ý¥†‚zœï9àrä:3ß³¶H×Ä@஑ +æ„‘— _¿.ÊŒhŒ±{Dª¯~üÆÙE˜5 =t8d•­õ ºkáÃ%¢Âz¾’S,]˜`™«ÀÕ¬Q²ƒõcJ†ëÉ-Ú³“õ®ªêUuN¸óióßïï¯þ ±s0P endstream endobj 657 0 obj << /Type /Page /Contents 658 0 R /Resources 656 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 645 0 R 660 0 R 651 0 R 652 0 R 653 0 R ] >> endobj 645 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [429.192 697.11 540.996 709.063] /Subtype/Link/A<> >> endobj 660 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [71.004 683.481 88.684 695.434] /Subtype/Link/A<> >> endobj 651 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 632.3 193.266 644.253] /Subtype/Link/A<> >> endobj 652 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 443.768 345.408 455.721] /Subtype/Link/A<> >> endobj 653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [318.883 272.73 535.767 284.683] /Subtype/Link/A<> >> endobj 659 0 obj << /D [657 0 R /XYZ 71 757 null] >> endobj 130 0 obj << /D [657 0 R /XYZ 72 579.026 null] >> endobj 134 0 obj << /D [657 0 R /XYZ 72 504.65 null] >> endobj 138 0 obj << /D [657 0 R /XYZ 72 406.059 null] >> endobj 142 0 obj << /D [657 0 R /XYZ 72 246.16 null] >> endobj 656 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F25 585 0 R /F21 465 0 R /F27 597 0 R /F14 469 0 R >> /ProcSet [ /PDF /Text ] >> endobj 669 0 obj << /Length 2735 /Filter /FlateDecode >> stream xÚµÙrÛ8òÝ_¡òK¨­ˆ&x+µµUÉ&ñzÆ™xlOâT25“Å5… mëï·€¢&“—}` 4¾ÞìnæÍN¾ ø{31KüYznà-gYuôùOo–Ãü/3Ï —éì‘°ªY§ð/gWG¿½º>:y뇳¥»Œýxv½b¡ë…Ñì:Ÿ}v"w¾H—¡sÙ×óÀwº¢RóEÎEÛÜ–ªÒó?¯9y+¢0JB„(GžaÎ f"tƒ0öya°aà†ajN/„ð<>UØSãäàT?™ á.£ˆ(y³Eà¹K!,ç©ø‘óq­êù"„ígøKÝɶã™ÓVfŠgÏxæNu wk³P)­åâå/žïý[ÖÏ Ò/뜗Êâ¶•í–¸¹¹qu€‘(NÓ"Û3`2öÓÙBDîÒ3Ìê¢*JÙºÒ\X|?r}P-ῃ €Þ" 'Sm'‹šNê{ýÆI<\¦k¥rÍCõÔ©¶–%CÌt¡ÌâãºÈæ~ê¬”í°¿y˜7mƒ8E®ðêaêÜ"¼åÕñ©–E–% šÍ|¨ª•]Qß‘<@o" +²(¶ºS˜]’$Χy:M{Cç±(KámxÔ5ü/jPª]†Ó´âáÞõB`oúV«rEGÄÎõº0‹r³)LKøÝ?ºbEòô‹×oyò‹yZÑóÌÌé•îŠf.œÚX;:d{g<óòôhö™v& Ã=®o4‹¤ß÷ݦïÐâSçµz(2¥aZàÇ“M.ˆ—¨‰[y[nyºal~|o¸e.³Ï“"‚±Q#€À¿z’YÔØ»ÄÈ ?vS18µñ€¼kU 38â3Q[œ@á#p{SLZ¶!úz݃2ŠŸ,edÏOÀ(ACl>µ™ijÆ9ýí“spXëŸxŠíÈ๮ËÒ ýe`¶s` oèN|Ù÷Üoá2ÆCIŒ8Sñ7ƒxÆ$ÑRÃÚÌØäÍ•¿²õüÀt‚ÈsB7Ú·˜™ÃŸBvD!…ÜËj첨ïùZÂ1kyÃ2Õt}œ¹¯É¿z£2» ƒP Y…Îj^`ú°‚ñ°Õ-“Z#ÓY»@ìÜ’w)‘Fæ hÏ9Øåu±ÚÑŸ×pšVYC®0>,Ú©ç÷uIÂhÌ_aÀÀÑW!,0Ä2 µ/¼8ÝL°ÃÐu#¯’&øáÄ-Ë’É¿M)»UÓV m¬7+PL™á6jŒn;ïkžÞ·è !”¬¶æ£PäHLHal#mDš(Õ„+' ýÈzò‰ê²“2Gu¸ ÏÕ„«&©‰Ýƒ‘3ÎYÇ'Ádsf&6²[ײâX9Íꀷ¼hUÖ56.GVĈ”oa'$!šß ߥ#ÅB„K7…bO"(ªœ^ì¼D–òœËT“Ô3Ý`ë/#ŒF^4Ä|Íkè"¸ò®ár#ð|.bÍ©<„‹ÉÀ¤“Q±†{¡cG¤ð¢ eCeïÐý3‡s†gɲq–²/L°{í®Â>;™Èà„µT[ºÆá`¥1¶c´¬© ì¡¨ ki Ö+Ùehk y°| OâFgŠrZ­V3,Ù**¶ÄE2„üqÆí{âÞt6æÆL÷ˆÈy`ïWP=€PSSÄ÷ U5O Ž„ÀàÏ0'æZ¢*P¢PdtEÆå® Ù+ç-{j§ƒ[^ vàÊ¥¡=°ÍeÕˆ¡vªN·Úr¿×‹…î2m/æ›^ ›¬À3M´vªm›Vó¸,î±ÇT ß0êªZê$¤\Ë+É¢Ä9tH¨ ^̱Î+™˜/G–½âuWÁ¤º£&†Ù‚Õ ¹6eF›T'œ½ðßÊšêe®H†¸¶A³àv¦©QÇ?ÛÂ]›|ö§dMCŒ;²ãI« \%Éܲæ?„«¦ÅDÅeM‚¡ÇËPoøg=:*Ì+ Ù h–›FÆÍ…àèd‰³g{%û²s§¼ábØíCY#9†‘•ê†ÿr»(ª –ªâLÐq”‰l-ÈV}u&vÅ» ñþ¾~Æ-õ³¥dëçÄÙõY¸–Ið¼œÇ¦ fW¸–˜¶0„ôd£“r Î+ˆGE)ìÐ08Ç ƒŠÎ5*a…£ç¼FÙ“¨Ð b¯¡‰µÙ•¥Òfrßу‘ŒpïOôÁ¤Œ,¥o{ Œ_P Û š FäÔ<ܰ¬Zº!Y…Zm®Ø*.‰›¶c6 s©§bŽä”{ÛßñùBr?s¹À \ñíå˜È+KñrÇÞÝónx' L„³Ž Ñ!k¥^S}À#Þž.ù+ ã÷ÍÆ¬6&Ö\^½ùpÌ2FºD Ó@°éŸÈ@¿ 3Þ~€y ÁÃå3û6Œ,16/<8è5÷`8Ç¿}ƒ¢Šs”ZïK~sÄ®q‹ R?~ªîlK°ÔÝõœ }~)9>(¡K[¯›ÍÇ;' |hÕ—¬6HFÐÑ qxÂÁ$¡Jë[£X=]©±&å±K# –,XùÀÐ\õ9C­’¹=ÎàB4nÚ|À;—¨#ùýÇ&:éáDŒâUÉq[8ÊòÂgü)4þp ‚ãAôf5ö¢ï±õöšpWøIL] ЋC™Í¿ÀĦ…EA˜GH M Ý0¸Æ#‰§L¡yéÒ/0\yÎñG*ÚpÍT©]—Òd¤,ß}ª½¥z ’¨Þò“¸|b˜ŽŠ‘H?j|CAŽj~.¿G@mõ¶bd¬X t¥W¸ <ž«UÇëÀd¸cÑ\×díUÓƒ(¬ õ 4¥‰;PÚcàëú½‘ÒØõEl[ N©jé ox%øUm§È@÷•DC'õ¯¿%spÕWñÇS i,¯YгÉRJD©›Š`?Ô’I`éC&5p|µ­^¿bжì8^µMuˆ-ÄeÌÃúමíÑ\n/zC½0ÿ]÷Cà0ôv<ÎgX€á‹3“æÇdØ¢‘Þ˜ýo›Üƒ¸wóë›OWŸÞÁÕ&žÀ`ÃÔŠ›ÛAÓXskÈ%tÕÑÐUsáÙL,¼ÄwÏÇ'›¢òÉãšôÔª“mÓŸ@p‚ÒÖ,m(Ü'øqâÁÞ»8ý'ÑÒ>¡Û`Öaªüa6Žˆ‡q)æZÿÍøAÁÜ›_>Àhâ`_œ°E7²Ð6´ÜÁ=¼½¡)ÄV¦% ˜ãw íî1jÿo®þŸ. endstream endobj 668 0 obj << /Type /Page /Contents 669 0 R /Resources 667 0 R /MediaBox [0 0 612 792] /Parent 624 0 R /Annots [ 654 0 R 655 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R ] >> endobj 654 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [521.297 611.461 540.996 623.414] /A << /S /GoTo /D (subsection.7.20) >> >> endobj 655 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [110.787 570.575 125.507 582.527] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.693 353.044 402.413 364.997] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [337.773 339.415 352.492 351.368] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.164 325.786 156.883 337.739] /A << /S /GoTo /D (subsection.3.1) >> >> endobj 664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.887 233.187 302.607 245.14] /A << /S /GoTo /D (subsection.4.5) >> >> endobj 665 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [442.381 233.187 457.101 245.14] /A << /S /GoTo /D (subsection.3.1) >> >> endobj 666 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [462.486 127.564 477.206 139.517] /A << /S /GoTo /D (subsection.7.4) >> >> endobj 670 0 obj << /D [668 0 R /XYZ 71 757 null] >> endobj 146 0 obj << /D [668 0 R /XYZ 72 710.559 null] >> endobj 150 0 obj << /D [668 0 R /XYZ 72 690.733 null] >> endobj 154 0 obj << /D [668 0 R /XYZ 72 430.38 null] >> endobj 158 0 obj << /D [668 0 R /XYZ 72 312.845 null] >> endobj 162 0 obj << /D [668 0 R /XYZ 72 220.246 null] >> endobj 667 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F23 467 0 R /F27 597 0 R /F21 465 0 R /F31 671 0 R >> /ProcSet [ /PDF /Text ] >> endobj 675 0 obj << /Length 2354 /Filter /FlateDecode >> stream xÚÍXYsܸ~ׯ`*áli(‚7]©­’i½e'»’’8eo¹ !f‡˜9ÖñëÓnÌ%zS~Š_†@£Ñhôñ¡{â`ÄÁåÉï'¾q ‚2 Ê,ŽÒ¸f«“¿ÅAôŸƒ8Êê*¸w\« +*ø¶Áõɯ'/oNÎ.’,¨£ºHŠàfN2²(Îòঠ>†y4™Vu^mºIš„ƒ^©É4­Òðkn[µê'¿Ýü|v!ò=Y^8ÄI)²œÄ¬.œWBDuž'È"\;)êðÈOqšµŠ…òö™ìþ2àƒ4ŽŠ¤ ¦"êXÐŬ’pnšÀ1(u z =“$ìäJõ´dæD–ŠtNOÔOqïDث٠ѸJ{…ß›„–­YÀ&A d…§Ï$¿é™‘-‹<÷VŽÃyÜæî@78÷˜ÊœO€ÁZK¹Ãá«ä ƒ…©¤,uw´¹Õý@#Ù5Û5ëÙñŠev†æKcõ\Ý$[¢õ3kÚ6‰Ã©÷@’GIÌúß,IhÉÂ+t&Nïठï;šÞn´lÀHs¾7ƒžóæÕ¢â!©@¶?róöm4"1‰@† Hœ¡Á °Ñá€{-팵!3”á[’­Z¢/¥mî‘"­BoB^æÀuÞßû#®™Ýz,…»ó¿àšêc7ÍÂ9 Rwuø€gȲd+f(K³¨®¶ˆPpnúˆ'@ÔÓ3Ë ;Ç{§ÎÙk4kä oe¯<ŸAtèÂU?©£(¹>Zn­„ü|îëøÐËÿžD™ ìªK0:–Œ€”*\xÉÛö‘Ö«UC ˜óøuxƒG`»×ÃÒl¢ë®‡lu·àù€0 Òð?›3g =r>(K3³ZëÖ… ø®H+T2c%«paX2]öÎ!¬)$5µC©‹1ïnôr¡È•/Àökß³‹´ *0^‘¡ñpo\‚˨ˆS’ÚƒK/L7¼~ ~"ÌÉÅ º$ ‘Ž£<|½u$Î.tˣΠÄ:7ð®×:—ˆå߈ÏoÁÝïôí±péR¥(k1RqˆêtÎÚî V S`ä°éôGbxiÍ‚8nõ¢u‡®iÕ üܹ–“9§´@à#ç#wàù¯Cž­E«¨LÙOþéªcÝžFJ#ÜÑ¥Rþ‰=Y"QQ$þ9½¼:õæóOÿfäܼŒD™zVB§/ÚšÎ#$ rx­†`… « éC±ŠI3mü6j.7í@B}”æÞI øt÷WqÌ{w0zž‘*ªÒü0~= ¢Õð #ÂVþõƒ4>Ô—®ÂŠ‹2$ôj A P‰ŠPí`';[5G‡î!1õG\“èšm¥³’w‡!4â¡¢ˆò¼ö;4kÁmØFÄL’¤‡6ÚÚ¶‚§gKÕqî,…„G ¼+NèØz(Î?øU=S|$Â"/Ö„AŠ ŽÎ=ÅÛ;Û"µLlY3çwÔ’¥‡`…hœç{!XT/ÕÒ5P,X}»ñåqÚªÙcÐâvô$v/ì¶x2"ê=×»ê(öµÉHÖÕJñ6•f¦›ëÅÆª±¤‹£$Ï=g«UhvФp’æ2¾¨†vZÙH:³>îIþJö&%v⛲7‰Ê¬>ºÙµâ›ý¾{ahÒŒ-™]povuy©QYÁ_eovðÑ=äÃo({0²1-}•®ºžb•CI„DÏU>¨âò8¼ÝČУىûÛGÛT„Ǭ,Ik‡=å>öÀdáò¿,9ê3([·Å ’¹Âá~ý”QŽäµU·ݲ˜µteéÊ6Z¹À”rmlÚQYî@¾ ù¸íÛZb1e¡ÂüN‡‰@nÈ>]kds€8œdTŒP€ŒÕTwZhÂh iÈ"-°Âïv÷aIt/¶| M[}ç‡Ùñyú=b==Eð¯ l¤OäewŽ¥¯{Íp@Ì'?ø#8ýãRê|!þ°”8Ž”SŠª^©½îJ@ÅñÞv „KÜíÞåÑÖcÊZ5 %7 ¿Xˆ.. ãðÕ`[¹* 웵Úu¢wÌ$ ×pqتù@‹+³é™Ì@å_ÒWìv`·“bUÀMzf²_mú©÷Ír§ÚžÆ€8¨÷8ûÝ”•ýò[;Zh(è[“á+êh+êhaJ-,k&¸vvšDØKfy s‚eŸEØ0²äÃäB ¾œ®lƒyI®ÑRÚ‰rÅØ%oÎŒÝIÝkÌÒÊkN iéþA€)Þˆu§$œ3–¬”1Ü¿m±KV€+Œ‘4W3µæd„)AFqíû|RÇ©Õÿ q”~éñxÍ8Ðx) B’_yâO’ur=7.ÿö³wÚåÐæáhm¯çÇ)÷ü%öücõ‚¿w=\- ïQýÀdU¼ +XXJÇ‘;+Ãlj6öŽRØ5jŽNd…/^€±ãä TÑQŒm”g3DR—è0vÅbš/–J5—ïúZLz¡A‚Gd3ìEøaìæøfcgª§~÷ÍÍáß IšDi’ÿ š~åoÐÿÕ.»¿I:æºpý]’V‰ŒtúðÞáöV¯­Ä»ã›­d4XÙõþý *1þl¾@s«õI@a?„ЀC}qлzXËÿ¾:ñÚÜw?r«Ü˜ÏÙXèøÚ×vÏÅì´»2÷¯L»Ya¡ÿ½évO,êäšÿ›ZÏza᩽@­ïÊ\×î¿OÀþ sÿÝùS·êZµŸîOê—æá{Sñz&Ûoóí3|øù/¨X´Ä endstream endobj 674 0 obj << /Type /Page /Contents 675 0 R /Resources 673 0 R /MediaBox [0 0 612 792] /Parent 678 0 R /Annots [ 672 0 R ] >> endobj 672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [71.004 403.176 85.723 415.129] /A << /S /GoTo /D (subsection.7.4) >> >> endobj 676 0 obj << /D [674 0 R /XYZ 71 757 null] >> endobj 166 0 obj << /D [674 0 R /XYZ 72 710.559 null] >> endobj 170 0 obj << /D [674 0 R /XYZ 72 614.084 null] >> endobj 174 0 obj << /D [674 0 R /XYZ 72 344.755 null] >> endobj 673 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F38 677 0 R /F21 465 0 R >> /ProcSet [ /PDF /Text ] >> endobj 683 0 obj << /Length 1966 /Filter /FlateDecode >> stream xÚµXm“Û6þî_¡Ù|¨Ü‰eQ¢d)í5ãÝfsé4é´qç2ÓtzZ‰¶Ô•EU/±“_zm×ÉeÚ»»ß@|<´ïlßy>ùc"àë;ÂYÎBú^è§N¾üò«ïÐÿã{2Mœ™µudœÀ·v^O~œ\¯&óÛ@:©—ÆAì¬Ö¤Cz¾ŒœUáüâÆÞt–¤Ò½Îú*ŸÎÂ$tot“«vè§¿®¾›ßŠèhµŒX êÍZ!qÊÄgCç·aâ$07–8w¦‘'éÌdèI™Ð𛡫§³(ˆÜ¯¯‡F|«wÍ7O°Cº…þ­ÑCY5›·~äß@õ gáÅ2uf"€s†¤æÍËM—åêË7Û½ÝfMá SávYÓ×ÙPé¦B›<ÒïT×U…z+BÙà?£óD¥ü?YöRõ}¶Q×,Û{Ãg$^.Nµ^2Ô²¢ËöMž­NÁƒ½iœƒ'ü$xŽ^E£'¸bAfE^2 &¬JèYDn_}`I¯ñ+ݦ¸%XËýyÖLCᾛƛõ4§êi¬Ä‘q£¼ àóYyÏHzz¥\¸}©Çº ùn: ÜjŸåCýžCɽdJx/k;Ãþ`k†PB¡ÈAÒí4X¸¬ý»”óŸ_S³V0a0D©3®‡Õ"‰Ükš—ó$<;ê*|÷žߣ¬ÇŽZoØJÕ½Ã~ÕÙö0ÀõöVtccÐ^¡)yåßû¢Å…ï«f­¿§†Òœ§)HÞá`6Jì éð8vUT[Õô¡W4VWúŠDZr0ýdeƒãÿót=MÙUo“ÑÔn¬•ñ_ñ)Àà4¡ôÒ$²øJ_Ïöƒj …§‘»|}ó$á¾ vް)3¼v–ôç£7´-È«²Ž!s̵•Í 8dMU“ë®S9ëÉu3£,âƒßð?˜é ²xètÍ0?·išŽBBíÛÛ‚i#·Þú¡TuÑ_ ™ÝÒ_ù²3· I€ê‘cx!ñ‡–î¤y©‡jM} ,õŠ5üSÕí|IW¨Ç¯é)B.„hû¢§÷Æ{Þ5´ÄE“Ìw_f8ðK»N7 ET`!!Õ ò¬¦¡Áò¬VÔaqï]Âúj ÕªC­ijgRƒ€‰½¥ªA·ô}°' tUvWóà÷ËWÏy¾¦oFSûlÍShQ=*Œ_»ÊÛ@lÇ2p¯n®XZÙÍîÐ#›`2|Ý…;` âxÍ{ƒgèÅKàp8)·ï%®·w¨[ŠÄ}±àùâv¹‰å×\¥± t.?=ŸÀP9 í“ùünDËÁË[ÈÝ(¯QÃ2+öï~ƒ½|S=­ŠØU´|s©A$½P,¬éð€$é¾Ê6” ¦BBS˜h„Qs%˜6Ú–€sH7¡Ûš‰ôb™Ù½ÏR‰ð9—ÜVµ-Vª†°†„GÍ¢ÂQë ›+SÖñÜÑT­±Gü|ª<¥å m-MZ1g;K‰’sq˜Ò ÀŠMI`Á%½ÞòÑM„$‡ "Äx÷µRg¹¹íÔ»J¼¹2©zèØ¥këîŒÚÚªâ=ÆÕç¥g!ا˺&ª>8Ïɇìg‡ ÚL!ÈGëjs\àÌ% |gr²FßïÕé@1Qpº^™›¯¶œ¢ÿc„‰ýgÜÕª4Ñ*ÒóÛ |wWª†Æ2úüÜT9]B¡¨g øk¨eUµ¢ nÓ@õÞÀ» ¡;f(“3@x3·(€]ÁQ ø†x{éTÖë†í^ôÒùqmbï7£â±*pšj’¿¾”[98 ½-ኜË,R{[žʦv»h…!ú˜Nd]H &tI =D@Š •åb(Ül6"$sØ)¦ èvÖ„ûÕ‰]0sÈ:,ÈðD£þÄ•Á»^§ŸË•m6üØ×pé“ç‘Ö°…Í_øÌ§÷[óx V?Ûw[’®à8ö]羯úáɺ‚òquÙxß÷|!ÿÑðþHp ÿÑ ÃĽ«QAºÎ¨}£1(Q’X+#ˆCSyCC^i„Ò­)*Ȉp,×uµ=/­(’5µX3™š'`vÁ/  ™ZCJxâÕé™}ß…‘ fF'(Uµ1 fYHlI”¿&BÖÙ“?ÖjÇ&½Þ.3Þñ8­Ü"@o$–x(¦¦ D 1Ì.ÐýÌИ%µ8hz*IÐaÒizÃ¥ÈáBLÛP¤¨ò]ìƒpJê¹`æ³@MÄZÄ)k 83›¬E|’µ$ÉkÀZ€ó}”µ$Éiúß²Þù¯³–eOiésãÛk]ßsmý8e‘LY’Ê:ö’ñe‘@ðù— 8 Šö—™8>ûeæÏ¥Ù÷R!ìï:¶2ÿ«Ìì;£?ÁwÛ½qèþ1ùô¿É%s/\¤øwzAOÕ=ðB‘šO½+«ã—fÎ9;«,29gâsµÛb€™> endobj 679 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 464.721 318.764 476.674] /Subtype/Link/A<> >> endobj 680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [76.233 214.256 318.764 226.208] /Subtype/Link/A<> >> endobj 684 0 obj << /D [682 0 R /XYZ 71 757 null] >> endobj 178 0 obj << /D [682 0 R /XYZ 72 623.795 null] >> endobj 182 0 obj << /D [682 0 R /XYZ 72 555.132 null] >> endobj 186 0 obj << /D [682 0 R /XYZ 72 451.78 null] >> endobj 190 0 obj << /D [682 0 R /XYZ 72 392.14 null] >> endobj 194 0 obj << /D [682 0 R /XYZ 72 285.878 null] >> endobj 198 0 obj << /D [682 0 R /XYZ 72 200.242 null] >> endobj 202 0 obj << /D [682 0 R /XYZ 72 164.49 null] >> endobj 681 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F38 677 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R /F23 467 0 R >> /ProcSet [ /PDF /Text ] >> endobj 691 0 obj << /Length 2198 /Filter /FlateDecode >> stream xÚÍX_ã¶÷§Ò'µ,J¢dEÛMºÙäдèݽÃ5h‹¶Ù•%G¢Ï·ýôá eÙ+§û؇]Qãápþþf¨8Øqð0ùe"à"(’ Èâ(—Áz?ùôS”@ÄQ¶\'ǵ²|Ï*x?ùÇäëÇÉüÛ$ –Ñ2OòàqC2²(ÎdðXŸÂ"šÎË,ü±3õv:KiøÐªµžþôøvþ­ƒ­™\À>í6 ‰,“˜µ„cŠ@ˆh)e‚Ì3æžei”e Ú“GÉt&D"Ãî”…Ó šŽž YxP­Úk«[¢þ+N³JÿiD›8˜%2JÀNôòç—ÛsÞNëuSO“Eh•©;¢˜zÓ´{eMã)j5Os´ôÞikÁ/8Iixÿ%èö™~])»FÂΰ߫º¤—fCOr&ç¡Çç©«+Ã*S{¾ÚóÕh§H£â¢·„'x24f…K&~ •þTUW½¥…÷fÿ[!êì Îç:eÁŠ ç~Ò(§TmhýñM7:÷xŒvQH=TáEåÿŸ¢Jß~óÿ*o•qí¡p Q¿ºùÊä¼Ö¸kšYÝX¢9ÊdÐ$¢~½á$76¤/ò+©PIº.UË’ö’0ý,;8«Õȶ¯$[³w+®õ³ ¼‹Uz,Î÷øŸ­h±í áÔÄ~_“jh?®dÓƒt¥{–ÄLõ˜4ÂËÁƒ. ²ƒP!†5hÍÉ ‘Hes;zsõˆ‹wb&àO†"X§;L5àL,¡3yˆæ]Vµ¶?“ÁCHÕÔNÙ”5ÝMúÝ¢Ç]àãéCu¢ú‡d³ U 7⵿æ 6@DÛ¦nö¤=Y‡›ðãÚA‡ÃdI1¡â¦‡!Gé¶v—)yWnEŽî SºÁZ_YàîG.›ãð}se5O ›c‹]œ°G9Tªîïï©Vá§-“5½ö#ùŒˆET‰¶;2xó$”Úê‘1>Q’õÓønÂk¸³öðûù\»q%:™'sÐ¥QLÑs|›# åçR=_ÁpøÇØKD¢ÿCíplJ~FÄ—º'q”ývÀ½Ïg#礰Lz¾£5•±,À—¦÷‹ô;~ûðîî›ûŸ¿û;šøÃý\¿€„ùÈaôT¹¼ßÀ)gŒ†ÆçsßÉèKMÁ_jð½¨è;åS7¤²@þÄfL ßÀÒ@d4dú €Ï¹  #öm=,Žûfy>ü`ö²ÆÑRÿ­Mpü®Á)ùijsCíî{z8|1x]tˆ–Ä m°°»VóÒÃ; þØÐÓx7€'Ÿ¦äp¤ûR,⌑ˆ›cUÍ6p‘:H"ßßÏVªó¯ìÏÎU»“Ïçá L/ó&…Û­Ì þ/ûí)Lñ ÷jw$½ÿ7£’ŒŽD!®>œµ R6˜j/´u7»X"Wb¥ “qêÂù£ŸK£$í5ÆþÖiy_1ÅÈtææe?ð±~(ãï*w~Šwß=è.Aø¼¡OP }ïš$Y©‡Ÿ~Äí`Í„”­ôÒ±·"–ä‘8C¥G+"^ Õ›¾±l)e`oúYwñÍÁàÈÍ ¿ò€o÷·àI x"^ ÔQ÷ó•©Ç°iVæ—ôÁðÏûÇÉVñ Ü endstream endobj 690 0 obj << /Type /Page /Contents 691 0 R /Resources 689 0 R /MediaBox [0 0 612 792] /Parent 678 0 R /Annots [ 685 0 R 686 0 R 687 0 R 688 0 R ] >> endobj 685 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.893 483.369 158.613 495.322] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 686 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.413 382.289 244.132 394.241] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 687 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [117.479 249.08 323.407 260.202] /Subtype/Link/A<> >> endobj 688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [286.324 119.678 301.043 131.631] /A << /S /GoTo /D (subsection.7.2) >> >> endobj 692 0 obj << /D [690 0 R /XYZ 71 757 null] >> endobj 206 0 obj << /D [690 0 R /XYZ 72 710.559 null] >> endobj 210 0 obj << /D [690 0 R /XYZ 72 631.703 null] >> endobj 214 0 obj << /D [690 0 R /XYZ 72 558.433 null] >> endobj 218 0 obj << /D [690 0 R /XYZ 72 470.428 null] >> endobj 222 0 obj << /D [690 0 R /XYZ 72 369.348 null] >> endobj 226 0 obj << /D [690 0 R /XYZ 72 216.29 null] >> endobj 230 0 obj << /D [690 0 R /XYZ 72 180.261 null] >> endobj 689 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F21 465 0 R /F25 585 0 R /F23 467 0 R >> /ProcSet [ /PDF /Text ] >> endobj 698 0 obj << /Length 1879 /Filter /FlateDecode >> stream xÚ•XÛnÛF}×Wy)U„4/Ë[Ð6H[ÇI€ Mê .’ X‘”D˜â2¼Xq¿¾3;CŠr[yñ’»ËËž9sdÇØŽq±ø²pat ׈<#Ží;‰‘î>9Fó¯ ÇIlìõ®!ÂÆÒø{ñvñûåâì¹'ŒÄNB/4.×t†°—™ñÁŒì¥'Â|ßÕfiù±o^42Í—Ÿ._=wƒÉ§"ˆá;8[膸eá°—`&2\×N‚ÀÃÍï¶„o Ƽ¥åº^`þ³Í›ÌEY´4nÐìJvO—Và8æ µô=sOk™‚Ñ5sÞ »Ò%¼oéµnŠ _; föø­j®ŸRž; Ã1,/°=H¢öi0;°ÆÁ°ö3ŽÌ¶ØÕåÒ5oéUÒªzéÅäZãr*õT%wy6ãŽ+r5X9ÙÕLì‡f{»[z‘¹ZZðW•EJ«eQ]Ó†u£vsæÈ½“Í×ß)2 # …Ž0_VdªƒK6·B†å'Âv®v8ç©l1+¾O‰‚±Ûê AqÄ:ŽxˆÖ1Ž'ó—éÆv…tp /«¥ñënC7€/:7ߣ2Ui€ sX½A¯ò†fÈ[xîWE%›[z&H ³T:ŒTvpõtVQ–ô¤!==«k XØ}M¯Àiò­l·ô®šáÌê;z–U6NÃçîäµv™ÞÚ¾Ìl‡Ûý&‘“º®ð´[…fö-ÝS_ãè™ÚoqQõ ½Õ˜{¹t!¢ ÐÂ7ÏqâkžÂZ¯Ëx©>µP&î‹nKæ+Ecªv;J" Lñ– ”i—Ã\ƒµôbÿ3ÙIzúèø¢ÌyY_ª»¦…¸ƒöº!d}Êf$ [ÙdÞô«ê¨|3Ëײ/;öyʻ˛tĹp‡¾°“x¤vŸÙ¹Ô%.€ÆŠHò% ißvjWüÇtÌx &¦áEÖ510$¨Jy‡.^u±ä œrñîÙçŸ_¼y}>ãgW‘¸ÃV› ¿dC-Ù×LW vuü°@ІYÑäi§t/ùý!ÌqË+wJD0—½V@Ÿ(É÷´;Â^Æ ëƒÚëjx´m›À<ƉŶ å™M³NI zÝWÇv"F®>ëÛæ¬T©,ñRÎ6ߘ1x†‡Ä1¥zv¨Ĥ9ÿ»ªzò€ Úœ}¢’fB¢Ç ‡5(g¤Ÿ±”)¾žå/WLnotNù×ÀD ƒaA4~}tˆ[ǬùèaéQp<+jþþÐè1Ä-ë¦æÏ"nÍÐȪ›9Ïhî®{?âZ—ž°kÐWÚ­=òÜä“‘$as“¯*Òìè‹C«»—ó¶+f@¸Ó'“ ôÛ‘xÓ¦¨µMj̬S¥–o:’2§Îp\áHs§1i02©d®<Èx9Èl¸Ú£ùøCm*èè'°èÛ¾èŽU p¨®ó«Lp•‰C•eE[—r-Z¬ìhϾµÝ)D±€]®ï#mnAÏ­g¼ #;‰âo(!´EÃì ß`Š×±Å+ÔO×w.x„ÛNòÕÖrÃSì¢Åµ©@õ„ W«i+|VÑ GM$\¥º*ƒ€5¦úyÆœÚ×V§,ДùiH )€CI /­þ1 Ó®¹á)–q(vKÒßðA  …ÖRÑ åä°ú$õìþ1ÍãÏ”ËÈŸ§:*ùq }­“]¯[á;ú¥åvâ¸äýJ6ºÁ ” -‡ŸB£ä¬µ=U÷HMSƒKí–­Á”F4ÿ“áæÚsŽÀ>'&5ü[Z½â¹º†ß˜Ë Ýó<´ƒ»mb>²V, Üc8‡Ð®FIðËŒ‘‰ïx þ`æ,!@2Œ?í›9ÊuìÄ÷†ÖzÖ#aÞƒÕ$ª .>ßçX ‰Üû;:ò¥ÅÍHbð^ƒA.A®rÓêÊr fY¤ø ÝÅÍðÓl,\fÞÀ<8˜½¢šjXø#ƒ?9jßÏžû±j% †ã#8âA½9>9rõZóÂÏP0ù¦Q}•áÏO V;¨¬Dï_Éôznÿ7>œ_.þ®œè endstream endobj 697 0 obj << /Type /Page /Contents 698 0 R /Resources 696 0 R /MediaBox [0 0 612 792] /Parent 678 0 R /Annots [ 693 0 R 694 0 R ] >> endobj 693 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.635 519.64 188.355 531.592] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 694 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.609 333.16 271.329 345.112] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 699 0 obj << /D [697 0 R /XYZ 71 757 null] >> endobj 234 0 obj << /D [697 0 R /XYZ 72 710.559 null] >> endobj 238 0 obj << /D [697 0 R /XYZ 72 581.075 null] >> endobj 242 0 obj << /D [697 0 R /XYZ 72 506.699 null] >> endobj 246 0 obj << /D [697 0 R /XYZ 72 320.219 null] >> endobj 250 0 obj << /D [697 0 R /XYZ 72 241.248 null] >> endobj 696 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F21 465 0 R /F11 506 0 R /F38 677 0 R >> /ProcSet [ /PDF /Text ] >> endobj 707 0 obj << /Length 2455 /Filter /FlateDecode >> stream xÚ¥XY“Û6~Ÿ_¡ÊËPUoŠ/›šÄGœJÊY\Ù]'’¸æ€ôŒòë·/’G¶'Ù'M ÑÝ"X¼ºøã"„o°y´È“Àƒb±i.Þÿ,J ÿ¸ü¤X-îiU³H²|ëÅíÅ?/¾[_\¿Œ’EáY”-Ö[æ‘øA’.Öåâ½—ûË«U‘xïlÕî–Wñ*ö^µÑËß×?^¿ Ó£­Iº‚}À›6†9.¹DJ8&_„¡_¤i„‹¯dõUûI²r‡åË«0ŒRï×½à´<õÊê· ŽµÑí2Ž5Å$!@{ìhÑ™)ñ—Љ7Í‘7¯©,“œ½àê“îh—&â¼jú½¯»êò&8¹c^ÎÑ™!¬DïÆ±~` ÀWgòs¥d`üÞ/I•¢\Ç*´Ÿq ¸ƒ¨(NÅùF¶È€jÐV¨„º p2ÕêäC˜àlkº†Ghw¶uxd…(Èüp®N¾ù4¸†¡GŒ*Ò(ñnhÒkeT»Ñßœ±eÅ~¾#\¶À(Éö—Z++Ò½¥À0‚`4ĈѬðã4“û‘:hÊÄñÿ›‰“)&Ç/‡@å{¶MNð€ÏHq Ó”AÛŽg.7ØCƒH“äT39€ehˆycðþS»|b„4Þ]†h+”OT YþU‰LT>“ÿ^BY«éôx.1”)Ë4U×. ¹ NŠÂ¯­VÃh4U\I•+è,y‘#OÌpL9õÐ;§¦sä~ø¼ª=JÔþŽ[y7œþV+GíÔpá…®†Úm&Ög0I:ƒpø$t¨¹’û³yÓnÎöoG!%„¤ÙB¨MvàÓTH¹²~É™L…“{>)æ^Uä>ÞÀÀ H}&@ó¬r‡Æ‡¦+QÇ–‰3?›“­+Üÿ©à¡0æB†âºk¤?@m[²V°œjÙ#×[ª±;¬r潄ªû¬O«Ü‡ÊŽúû¨XѵãWµRcSº¦Ì¿ûQ†xѺ.)"Dàq…RaPP\¢D%ÂØ¹W¹ÜGôàI½© ºa!r52«U»ÕnZÔJƒ§`°hñL&\1ñ‹ kg] ØÆà¶;çBÜ}¬ïõít¶ÂûI U2Ý|¡ä¹%|›n S¼åWNœ`Yñb4ÝœÐr¬èFÝTÚ:G("§í%ÅgظWs?ÉŠ«9ÚÁ­q‰†¶¤+~ààåløÏMXqìqÔþ¨jû™¤è‚÷ŠO •ÑI]äÂc"ÀBØ/ (œÊ©6r~yÝI€ÑíF‚+>í<½ ;ÊÒÔ»”¸-‰V d,©RÈ ’vh€ÜG;%Ñ`ñwŽ–« šÌŽ‹k¸ùNÎo­p«„®Ê²â~P H³‡ƒùõ ‡É'ÌD©»=c8~FCvyæ­«FÛ«·]£Žiy?èš•ª"Zè}O*ðMh# o¡@É+Dm™!½ù$yîýGõ[&=‡û½SÃé‚ Ü¿!äÚaäJ9ä?-Tnç9mŒ†Þy£¥Ý@ìEîý,rUK„9}«Æzú=ÝNÑËvˆùpÒÆõ¡VQÊ‚_5hË«?ÕŒ(=CïFSߥê\¦€¬j êèmˆìÇ”ô(ɲ A·Ï¿·@Ýr7É1ÔVŽË¹Ç\ùyž¹RUªµx®Ö¦÷ˆä+/ Oï»°‡ùbëõõz,æ¬ý/”e±Äš÷L™ * ŒìyÚ¸%Ë/CY"ï>)·Vc£ ¸Í¿äÅFV!¿ô¬Z~ Ö.²£Ê/KÜ+XB± 7h9\ÀŽŽ}B¬úîàÚOòÞg<£ì56èb{#·È%ºK9—w@r ¿£7?0ÅÇe ت«Ò½Fíª;¶Ä[c°ìÜs”l˜ƒ½)¹ †¿&åDÔѹÙäS€ú‘ý¸‚úÄIŸ¿xyóî§57B·/ß¼ýùý`Íï[ªmLa…õO|Ì}_¬/þëܰ endstream endobj 706 0 obj << /Type /Page /Contents 707 0 R /Resources 705 0 R /MediaBox [0 0 612 792] /Parent 678 0 R /Annots [ 695 0 R 700 0 R 701 0 R 702 0 R 703 0 R ] >> endobj 695 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.789 658.273 205.509 670.225] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 700 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.893 467.859 158.613 479.812] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 701 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.94 380.603 181.659 392.555] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 702 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [494.55 279.717 514.249 291.67] /A << /S /GoTo /D (subsection.7.12) >> >> endobj 703 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.609 146.427 271.329 158.38] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 708 0 obj << /D [706 0 R /XYZ 71 757 null] >> endobj 254 0 obj << /D [706 0 R /XYZ 72 710.559 null] >> endobj 258 0 obj << /D [706 0 R /XYZ 72 645.527 null] >> endobj 262 0 obj << /D [706 0 R /XYZ 72 542.37 null] >> endobj 266 0 obj << /D [706 0 R /XYZ 72 455.113 null] >> endobj 270 0 obj << /D [706 0 R /XYZ 72 367.857 null] >> endobj 274 0 obj << /D [706 0 R /XYZ 72 253.343 null] >> endobj 278 0 obj << /D [706 0 R /XYZ 72 133.681 null] >> endobj 705 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F21 465 0 R /F11 506 0 R >> /ProcSet [ /PDF /Text ] >> endobj 712 0 obj << /Length 2493 /Filter /FlateDecode >> stream xÚ•XY¹~Ÿ_! ¸Xí¾ ÈÆÙõ8c$»‰=›uà,JMIw7µ}ÌdüëSûiɃÐd‰¬"ëøªŠÞê°òVo¯~¹òáë­üU¬ÒÈsC/_íê«O?{«èïVžåÙêVÕ«(Éà[­>\ýíêwW¯n‚h•»y$«»=óˆ\/ŠWwÅê““ºëM–GÎ]ÙÖ›0 ·­ÚéõÏwï^Ýøñlkg°xÓF?Ã%Wžœrµ‘¿7QèFQÆ‹ÊXú™£è›Ã¼ì™ÒêÎ -È¡Ù?½0ªÆqìuZó†_Ýõ¥iDj¡=ˆ:ÞƒÔO´%uÃåa>œ¾ºÞÔå…\€àã=”ý‘¥ìM[«¾ë[Öü·]o‚ÌÑãÜ^¤?Šf¦™0‹Ý<¬jNÀ§ß£ô¤«2öÜ ízïâ:T_âúq¼Úø™›¦)¯xÝø0pÖxªªz‰ÓÐyÄ©ø¿)îy€‡¥u§VïʵïßÁiø#[N|ëvsjÍzÇοõNxmÕ¸™à6Q:?usá,ÂÙý:H½”@Œd œzÞ ÷_8 h;{²ɱÇkCgèȠúI w}SVúÕ+?cù‘£ºk´…(µ¢›²ã¯âO‹—Óp¶J߯A T`"½þNõŠù±Í®™ŽÇÕU! ›Q†hŸ´jNÉ·Î4bÛÉF¶Âø¯G?uÅëÒ•ï»yèEpõ0ról e?‚­~[³¤žsË0HèƒB@‰(/õé¾ð$ ¬¥¢š‚ýȤÕ<“Á ÀÑ„Zö/™ß(Tòo¡z¡Þ¯¿ª†5ÞjCþCrNÂNµdÈ¢8öÁšKžÏWê ®1CŸO;­šB<±+ä ±Ó?M®“£ªö<*Þýq‡Ž{! 7Vz»à+I¿YZ³^–ªLß½\9r ½WCÕÏâ­+m”Õä<d±¾Ò à<É®ÓSXÅέŸ:Q«ïK3ˆ³,.ƒ9ƒúhÕƒ00âÿU¯å&eÿLoŠÅ›þdÐya …ߊ1´KßÃwò(< {U$ßñ’ìê­·Èü‘ÇëCûÍóx Óš6ÁMqÓ&r}7à¹iÈ8xÖ5qdò zz¦ŒY'È®Wmß1]PÆÌ¤Cy/ãL¬DFšVLã¡o¨‘l î#¶àâ­õ?Ëù ŒŒ4%“nf…»=ÑÇݰÄä3=ã¤;ša Ç;5Ø5á/hd[éºC§üƒÜ}°ËÔ†Î_”ûG&˜ª@O:f¯…cðkÝö¤'œ*þ,´„„ªläHªç/i”¹‘ÖeÓ÷ÔOᇎþªO•~y!;'žëOuËþþæý‡Û¾_׎<ßC7 .8]š¸é˜£Á?š G’¯@èÒìðy!¨3ö @ö¼h‚{Xp\&¦˜ËÊB+¦<QÂ?ñ‡ÛîyÉÇÜéÐòDÈLœšj j‰,Œ–Î2ó-o‰O~¡@Îm™Ö™Z(A*ixOm^q·ê4!a’&&?ð(!”#°iMäôŸ…ñëª3Â¥VŸ­n`a7´v‹ð¸ ¼‰Û5Æÿ¸êBtp=ËH\Zª%qw€#L“rÃhÂÜÁ‰_â¾À@6ÛÇÞ3êRà¸ÁY]* ÎxÛÚô™Øœ6 C¸¾œ·ÈÒTÀ`â«M«çøŽ?^bsG‰òAÙ"´à!3c•üe+ °Œx)`½ÙOhîþo4'¿J|ç#ø´…rý!ä°J€(0T˜áO0±.”mÙ(rY ްÎ+kŠ&¢ÇÞ¸aO ƒ2ˆÅÚDxN™<ÁÜŠÀ-=CâÏ‚W¶æ$%sA$†¢ ‚ÿ¡V¿öÐç(õÄiíÎ4÷¢—ºßG`ú²‚¦Š±7ŠrRYU¢í  Û!®Ž$‰%¦¶íÀA€«Ê†ÿ1-¡?»uøË”Ç0Í ÒV>í”Áy nelŠU©ª*‹KÞ þÅùåZæ+2uc7/š§ ÿQ»\{M-¬—ÙâÚÚëW’#{ù¯¹-öpá™ÛfÏh(æ~)v)»Ïò˜æÁò VXžó­MG²•³¡©±îl{ÚäŽ)ï½!:áZœf3|OÚp ‚³y)³ýTì™¶ìe=œ¤KjLfjž §j÷@ârç_Xæ})O/¬ãJòI³íÒŒk`üýH›! Ì:ÃßžKKû¿^\Çꌺ—^ög@öõ'žVX®éaérZć°„ÏôÝ››Ûïß°¿ßÞÜþùîÍ{ž\ ¨Š§›bǃßt×<øëë;X,¡rý[÷ðåú²ñçâð-äÿ:Ó_;“È[´çBðHLþþbÈ»y:®øÊuPÖ¥+MC7ˆÒå‹bÉï Ô|$‹"Ÿ;Ó¨ŠI˜ùýgòŒ #‹ÄlC©õ†Gwû(Ï&“ žt"cGmeˆms†¥è~"b@áWYßsSLÄ‹*…Â'ŸB1·gù,¥4âçNvôÖ>¡ÆµÝ‘@Jn!%·‚e[)bjÍ¥„jÊ®–?%®CA*>lŽûš5gPŽ ¢dÜ@1¨ÏOÛõ¦©.´Ü3¯™V¡zµ…Nð«K2&\’À½#§¬Qû ™`ô¶ìkuâ1øßéˆ`±ëÆÔ ¾þQ õ50—óÿD`>¾Ÿ7¦Ÿ¥dm_ßîlŽ£#-š1âŸê0sTiœ=ïaQXËÓž^¼GöÁy?ôƒ}nu¥­"ǦÑ~ßÜ]ýš¦˜U endstream endobj 711 0 obj << /Type /Page /Contents 712 0 R /Resources 710 0 R /MediaBox [0 0 612 792] /Parent 678 0 R /Annots [ 704 0 R 709 0 R ] >> endobj 704 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [228.163 697.11 242.883 709.063] /A << /S /GoTo /D (subsection.7.3) >> >> endobj 709 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.641 473.902 329.361 485.854] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 713 0 obj << /D [711 0 R /XYZ 71 757 null] >> endobj 282 0 obj << /D [711 0 R /XYZ 72 651.764 null] >> endobj 286 0 obj << /D [711 0 R /XYZ 72 576.223 null] >> endobj 290 0 obj << /D [711 0 R /XYZ 72 460.96 null] >> endobj 294 0 obj << /D [711 0 R /XYZ 72 373.785 null] >> endobj 298 0 obj << /D [711 0 R /XYZ 72 297.968 null] >> endobj 302 0 obj << /D [711 0 R /XYZ 72 123.719 null] >> endobj 710 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F21 465 0 R /F27 597 0 R /F31 671 0 R /F11 506 0 R >> /ProcSet [ /PDF /Text ] >> endobj 720 0 obj << /Length 2551 /Filter /FlateDecode >> stream xÚ•X{sܸ ÿߟbëéL´S¯VïGÚi{Il_<µ³Üur7ZKïò¬•t"Ûýôp>åêÎ$^A~LV“`r~ôëQ¿Á$œäÑ$O?ÊIµ9úòs0YýbøIYL,×f’dü֓룽¹9šŸEɤôË,Ê&7w$#ñƒ$Ü,'_¼ÜŸÎŠ2ñ>iÕ¬¦³¸ˆ½ó^TrúóÍÅü,L÷–&ië@¶]–Èr°–°M> C¿LÓ™gÌ=Kb?I ·YLga¥Þ[ÑÀnyê½ÇŸÄ“@÷;˜„^ÛúFšØáªÝZÓØ´üùý«™ìo%¡æ[E!žCõb?ŽBÇqóþlTPúQöûrr¿bDZ˜¢òÚ\W½ê̘Ä,c¼\±Å»3:©4ÕßFnd'ðÇ“Y”‚iK§FTì©M½Ÿ‚4¸k{št½jÇÀ•ÇðÉ…wº¸Þ1˦jaä© ŠÍwbÿ Ä(ôXf♵¤Åª©êA«¶!z{Gd{ªÒŽÉîßÒLúÓÐ[#&qéýCÀäf ~(¤ÏK`î èà ­æ™…±ŸE|à$qÚ&ˆ½ÅÕ%¬ÇÆÃ o-ÞÀúËùâþ/.™3*Sï¼È¶6ÂÉÞ1hJÒÎP±^l䥸Ç=e’ˆG4K\ÆOç;©×•¨Åm-‰òyZ€¿WÆmuΦ±’FŽ'z4m{jÓÕÒÖ^ oñZžh¼”wb¨¿•Røyž‘”ïpÕr© œIÔõmUžÂ;*O·m¥'M/hX«Û^ôJjš’20P6 G.­Ð«Á¼J“Z K5ÄF~ƒOZö¯XÈù –LFóü:Hj1  Ôõ+ƼçG“/–3ò£Äa2 ØÊ†­l4%]ñˆ=I%0×Åâôü„†‹+%t‹–dƒ-,*´Ý=Z6KMÔU×îÐ=Yæí jCC¡Iâƒu”º½–á=´­¨,(Â`%YÆ×i ŽÕ«vàm[о§!øêFÞd`üz#Mw»aÜi:m(Œ$¸À¨&o”Ù@È¿žÎr€1ÎIž“½p`c*É3𳯪bâŸvLgá@…Eêoá‘õú-ŒÅ™)Á± FÕš„âÝ ´˜!ó„â ÂOÂЯôWþØÆaêIîdþå›®åÝ™îõ|$üG¿íWóªmL¯nçÖL`>È[7œµ„X’zþÜ)Cï¯#gÌ? ·ú´ bAZPÃKDZ½t`>BpÊLq'DbgDXº“Å,:1‚áN´M°sW¤.Y“Às|ö¶qðS§OôíA™5E×õ-äH d>×m`eRç¦qÒXà±7ê}W­Q”ëQaÜÈ’"o©ÀP=^‘„Aeˆª‡®³§iÝW^g³În}hK;  ¡åJ p•¤h­¬ƒ!q98mÚg²ª¶³˜Û«ÕÚB1‘YF­ª§C%>5J?iÚrÆ;€«hjZyFБzÖ‚ B$°?è¸ÏòÞ7D½¯TükQÇBLv†ê ¡‘‘—JÑ×Ê^Lö܆—Þ,ÐÚÁªFîÅ€bQºÜMj¹z¦+K2k5zè;)ÌàrÜÚ¡&º)„·dDìå¦Å=IÁå¨}h$„£a ¨èPi?ÓÔ/ÃÈÅ¢EÆ þ8Ž Iœúy¾LÖÆ¢ÉÃú⃿’meA¯ÚÍüZÕHV¡Ÿ1s>ͯ¤yhûûyˆô2-æ¨ ôsP…”8Žü4-ZTMÁáÀP˜:@Mœë½$ˆìJüôS£&PC¡#sI*Õ.8çI#Lº´h…ô·ç—„óáR«à*÷u¦p0aÏ`• Z|eî•v8ç¡8]ëŽ^nbôNbµ=w0Ð8B‡Æ}—-ß!/,ËrF˜³(~–ðÏO²|Îl­[\]dÎñ–²Ý “¹úݬìÁP EÉ :xúäž’vI3·IsÔ³Cqyæ¼ü[=kêe~öÛž•Þ.ìÚ®Ùéù¼žv^Ç'­Õ½CxÞ—2L3fÏû(Ynœ¸+Ç›àÁêAÜ6¶Xì#§}~{aÐÅcA·lbNKó,[bk ì÷«¾l§j¯¢¶Jx¼;¾H×AerÂ_£ù aǶk›ØŠøXó{‘Ë|³vÖØ6á}=5JÏ:ío4½Qè§ÛVïxZ϶¨JÁ@¢³&TÝ¢©äñˆf!x{œmËSÊHÝÐQÍ Ñ¬ñaLìioñS4+©ÝuËÃgŒ­­cªð˜øqI¹r¼Í®¨Ò´Ô¥àò¦~úŸ»$¶;ãè÷…>•¼À§¶Á¾i]™ÎHf{.¥·aÅ^s‹-”÷ ä^=¯U#õa°Þÿa>f3áê,4æÒ6cpì]ÂDú;~¦+&Œ;xs©,ñÓxëS<ÿøÝÛÓÿá]étn gãK­ó¦ ô‹pû¤Ìh{1hVM,Ùœ ÔFÕ‚•°Û‡°½ÿ} gQVúaXâÀÏîÈþ¾¹=G5#úAÅ_«(MOh¸_®hp|ÜCòUâôæè¿ˆÅqë endstream endobj 719 0 obj << /Type /Page /Contents 720 0 R /Resources 718 0 R /MediaBox [0 0 612 792] /Parent 723 0 R /Annots [ 714 0 R 715 0 R 722 0 R 716 0 R 717 0 R ] >> endobj 714 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [451.836 625.868 466.556 637.82] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 715 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [413.505 574.686 540.996 586.639] /Subtype/Link/A<> >> endobj 722 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [71.004 561.057 125.287 573.01] /Subtype/Link/A<> >> endobj 716 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [167.85 482.895 488.818 494.018] /Subtype/Link/A<> >> endobj 717 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.835 261.681 387.555 273.634] /A << /S /GoTo /D (subsection.6.6) >> >> endobj 721 0 obj << /D [719 0 R /XYZ 71 757 null] >> endobj 306 0 obj << /D [719 0 R /XYZ 72 710.559 null] >> endobj 310 0 obj << /D [719 0 R /XYZ 72 442.973 null] >> endobj 314 0 obj << /D [719 0 R /XYZ 72 341.892 null] >> endobj 318 0 obj << /D [719 0 R /XYZ 72 235.111 null] >> endobj 322 0 obj << /D [719 0 R /XYZ 72 156.694 null] >> endobj 718 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F14 469 0 R /F21 465 0 R /F25 585 0 R >> /ProcSet [ /PDF /Text ] >> endobj 729 0 obj << /Length 2311 /Filter /FlateDecode >> stream xÚ½Ùrܸñ]_1å—å¤v(à•J%WÖŽ·\±bik7¥uU 3ØCpyXRòíéF7xÌR–6y! Ðw7ºámoóöâ— Foão’`“Ï ½l“Ÿ.n?y›Ö¿ßx®ÈÒͽÙuÚˆ8…±Ú\_üýâõÍÅå›@l27‹ƒxs³'ÂõD´¹)6·Nânwi&œº²>lwa:o[™«í§›ï/ßøÑ쨈R8¸ÍÁÀÃ-s¹Ùñï]!RÚT¨Ÿ½PÔµGâ;·Aâ¼}M“/Û(rd5(šÊºà½5y®Û‚QÄN-OŠ~ìuK@”=ýÌu5.¶eS©ÄKÿU¥dÇjÝ—¹Z2ÕÖwö@;²lPv‘Aܺq‘Œ?{‘w,{5òAƒaH2„¡pxŽ[î*™oƒÔùôªX»v–êü†¸FÙ~•ø¦¿ØMYäÁÞ¼9ýzõÖ£ÝÞ¼yÅI€½ /I`oy·Hˆ|PSûëëe"7¦/ygèjJ•Ó…Åúxá}›°üxT¦TIñŽÅ}x EsÉ¿¿»º&À²‡ðAÕª•½*hzÇÆE˜uF(Ñ̦NÐT‹œf1ÂßK é›mAø-£a1+N>ìžp ¼³Ð7¾=s ›^Mq„xaéô‰wèýÙ¸[=ÔTª™?ê¡w_ê+ï¥ÉQÈ{' 6MÄ)Öl˜þe[ÐJ^•MC4af¸‚ÿF׸@ºf4C ÃeÝõíÍã S†ŒRn¶H¤x=°óB:¤”1 Õk3¸Ë¸ëµûÝ Ê$p=?µöÏa$ÉL=¼ÂX8qÖ¬ âèeËLo‚=öCçonVÐFž'Éÿ*ô Â8q½ðÿ&3ij—²Èk¸*7Óaí¶~& ³ëR”£xYÌ‘û¤IÝ®ð€XÏ+2xB‘·èôŸVЦЃÅâ9u/Wgò¬:ÃߦNÈLÐÂ&áÒíX°‡§Ô:'âC\Æq켃P^b« ×ë…8uãhD5Ýš^ŒAFÅœÉÙQ@¦Çÿ„ëtàmc¨jÙHg¬,têG¡›&âÅvGfÑÖt_Õ„¬Ƀ…¡µzš@–©Ëþk*ñ£J¨ø@aᙊ¥­Îm¼¨ãô]§¡^9ëƒï†Ãáq±rJà$ávƒÒ¿—ØûÕÊžA"Sh€ù-ëJžÎHÙÒ‘îÕj,ó†jIW#rO‚%ª*È·VÊÛ›#”5ÕÓ–ûg˜Ùšb˜aÉå`»–±wU·(K"çŽ{0×(·³\½Ø{ûVºpºòß ±øÑ$Ý„•äÔ¨â‡éœiÛ#ÚJÁ¿ÆŠa$®Xbjðîæm?4sØwËîqfÄWW•î/ñÃÌ7 ™Џ:W\î±Ï7CóÂz,åzìªUKúŽ­G4¶t2ULÅÅíÕÖ”îýuÞ–MÏo$“©+ÍÕSÅSA$û¾¢ øiÝç_M^#aˆËBíåP™ºË·ºeS¶àï¶ü2¶Â¶÷† üy¯èGEÓ€þï•ì‡Vu_€½}ÅMG­ÆcDÂG B u¤´qæÙ2 V'ƒ"OÃL5°s‹„º•Rwͱþá«ä’E€NÑ„†Ï07˜’F£ é„HÃÔç]5¶H«‚fe}†—¥Aç‰ð­Ïø F¶ÀÓ|)-;ꇕ€@9™ÜÐ7&Ôýl¦B˜Lšƒ êsE Ð%ç}õ¸| QÜ qIÊï†Ø’+› ªj%Þjm{ ¬ZÏ: Ê¸Ã¼çþ|ÌtÏGU¶öªXèÅ£âÔÜš~qöŒH`y¢” òÅÑ¥ëÙ~áÀá ¯6’ß'9ô0g}íQ’_œ¯U > endobj 724 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.341 572.106 242.06 584.059] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 725 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [424.501 572.106 439.221 584.059] /A << /S /GoTo /D (subsection.2.3) >> >> endobj 726 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [143.219 129.3 343.918 140.422] /Subtype/Link/A<> >> endobj 730 0 obj << /D [728 0 R /XYZ 71 757 null] >> endobj 326 0 obj << /D [728 0 R /XYZ 72 670.54 null] >> endobj 330 0 obj << /D [728 0 R /XYZ 72 527.313 null] >> endobj 334 0 obj << /D [728 0 R /XYZ 72 451.219 null] >> endobj 338 0 obj << /D [728 0 R /XYZ 72 301.28 null] >> endobj 342 0 obj << /D [728 0 R /XYZ 72 213.828 null] >> endobj 727 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F21 465 0 R /F14 469 0 R /F25 585 0 R >> /ProcSet [ /PDF /Text ] >> endobj 733 0 obj << /Length 2324 /Filter /FlateDecode >> stream xÚ•XmoÛÈþî_AEMµÍwJ(ÐÀIÔ‡»$W;hŠ»C±WÒ6|Q¸¤uº_ó¶”d 8÷wggfwfž™eè­½Ð{ñí"‚oèE^{EI¸ð–õÅO¿„^ ôï¼0HsoG\µ—æsøVÞÝÅoî/®ÞÅ©·yœ{÷+Ö‘ašy÷¥÷“_ÓÙ|‘úŸ­iÖÓY2Oü÷Zêé/÷ß]½‹²#Ñ4›ƒè&Á8B–‹PN Û^‹,‹‘y&ܳ4 Òtî6KÂé,ŠâÌÿa?¥ÑÂ/õÒÔªÂÉÜïÍršDþW^ªÔ(òue™ :Í»·½®°«ªÚ³l»âµ~#L«¶«y¤ƒ5X™ƒªðUÆ$Ó€UòDÁ/ãe‘7‹²`F|â0¤ÈüŸÃ,4=Yú·L\랊?˶®eL#–áü¸OR¤tÄ#î²íAkœqõÌ%΂ÂMgùςӗä0fà¥IŒñSµÓY\øàó›.™ö8ç¾î¬i&£@üã]ÀÑËÔB~*|ÙFpiǬß_xÏÔÖQÞþ÷Ãçnþuû–çv£«ŠY§ØÚõPiË$«ûW0Ê ß¶äóÜy,aèQ<KBˆŠ*ð(Z8G …{vr¶üÝvìˆrpÚ´j¨uc].ôLe‹¹‡ÁÄ%%ßJ+KÃâÔÊ£dJ΀ï§w·_FŽcû$„¥±è VÚoŒXø@§ÕèûÂ4íÐÑ™rÿC w숥ê°îdÁiiZÐÈ®ÿnÙ¼¥ù9LÒ¥µü=r³â½ÛÁ=BHÓ ÿÆÅ÷SâåÉ}ªÈ³ý!Rg¬®Æ ™ß „·ˆÅ$IÉqI’àÑŒiŠQàx"ù·Ûó¸Ô+5T=O‡8B“PŸc/ áA˜ß^}úˆ¾»»…Í¿»µ€Ë {E«p¥l%!O똔¤Áb>–Í$’Jvk%ã¥l©hµÖŠ4’èðLs%àXÂq„¡|s¨2X¥ð!W…5‚¥Ô¯Fö²Ÿ×g GxZ2nÑÏEâO>Umu-ò)&ÈÖN^q½×’“&ª5dl¿©1O FÜœ+BjѽnŦ–ç”®´é=(Ï~åõJ 7 *ðÀÉ…1·ð‹ìY'’-ÈMy`¼%°LÄD<`§‹wÀ„ç¦Ù æ))ÒXLJž›f´IÔÜü â"¸êT­ñ ¨fˆh†=æ…HvN6 ÿgŽBŒ%ŒÿDE~âLÈÂÝUË“oCÛkKšsw=1l ¥Àê£[â@;P‚Iq¶ð'ÿ@—*w)¦Z,uqj]o4!"†“ÝòjÙ6—½“ÐLS"x¹©ù0Ùó Â%Þ e#²uÛÉH[ „ë‚Neð|Õ³;˜ÚªNË]Ÿ°Ì¯Õ‘‹÷­ú›ËÅK—);<´ -~wȯKwE?Ñ÷P)×®®fuð…ô-0™ª$Nµ4¶m[% ,âoÀ“×0h,“©ÃAΞKf˳Fup£ÅXrÇUÒ·9¦*¼x‰lÖ —ý±:£òÒ¬ÁhG¥¥VPvj-;mäÀÒFPËÅKÝPq³•78ZŸƒòÝÆ¬ú¿¾úž‹âÇ/Ät"˜þ7—œ,†Àå2c®©Y"tõ.Y«‹ò(È‹Äu­³íšÕM3ðW}nÿ4âtáøâmذ õxP BAÔ²Þò2¥Ö‰ ” ð9úeÐU' !Hhm»ªë<¦‹TÃ}é:ήÓË›`âw )µ«2þß`]›:ôíŒîûuž÷yÄǬqócÇFäØhtì‰bj–¯@gFËS)ª00½J·†ÛyÄ.PéC%lÒ¸ñd 9«e€_ö& ±‚ ÅŠ­8~ÅEes ¸ZaQ~ü¸¢(w\ã¥ê0ß*¸J¡«ÀGB’ûרšqÌAQ,NS¢Nˆó âe÷•t:®I¤þf#ŒÅìZbãåÔßÁ]}&4Q–ÑÁÛ3^RlH2Ãn±9÷ÈoÄy1 Z©3žƒ4uŒx‘Ce]a…?û4'5§“~‹=»iÇ:~0!¥9[" üyPÀ)ŸVŠÔÝ~ˆÂ!|¡D4è2r)N¹¶FceFÚäûV•Lþ3n§9<¬ªAõz¤݆ߧ–‘] ‰ä·Áô²‡bJ…yŠsŠ‘¾Ôë.øãÎí³•¸OÞ‚?z™4z7Ùè8hàŽ8rþýû¹°Å¡¨½‘–š^Èp xQ»ñXum-ˆã–š'=ÍײY]AÝqý;?6Úí°å¹$ïp>|s€Ãóàe¼ÊM ë‰\Ið.¸å•veiV{¦(þôº†R@~‚YËOZp­¶ÓăË%'ú”Í‘óí V•×òSài?a—Ùööõ‹Ë,ƒ…¤|] OÙŠ‚Øzž‚KîgÒC=–Õ®)Wý¸Ú Q¹A#­»ä"6ûº·îáážRøÃõ„B·£Î Ûuy×(æç—?¢Ê”ボw€†)\/«ežùwgÌb8BŒŸs±ë®:ž­øÍL%¥3œ'ñˆ†K))‡âÌëÊ>©®ÈÐYÙáÉõË®eþøèf*b@ž¯Ü>=$™—”Îöœ±VK—Å-Ø õƒ;µTú ^6z'ù;¦êä`àäòôa×΄Nóë– )µL¢G€ 𔩤òØ äf®çŒœÕ"Þ”WmwV_ܵjKjOª×c~”!æ­Ûµnt;Hv¨-Ø¦è ¿aÊÎð#u¿¬èCÒð]QÊrs8€íÐnOv.ý Nþ'»ïÍýÅï‚¿çK endstream endobj 732 0 obj << /Type /Page /Contents 733 0 R /Resources 731 0 R /MediaBox [0 0 612 792] /Parent 723 0 R >> endobj 734 0 obj << /D [732 0 R /XYZ 71 757 null] >> endobj 346 0 obj << /D [732 0 R /XYZ 72 710.559 null] >> endobj 350 0 obj << /D [732 0 R /XYZ 72 602.173 null] >> endobj 354 0 obj << /D [732 0 R /XYZ 72 514.722 null] >> endobj 358 0 obj << /D [732 0 R /XYZ 72 426.659 null] >> endobj 362 0 obj << /D [732 0 R /XYZ 72 335.829 null] >> endobj 366 0 obj << /D [732 0 R /XYZ 72 275.635 null] >> endobj 370 0 obj << /D [732 0 R /XYZ 72 172.283 null] >> endobj 731 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F39 735 0 R /F25 585 0 R /F11 506 0 R >> /ProcSet [ /PDF /Text ] >> endobj 739 0 obj << /Length 1403 /Filter /FlateDecode >> stream xÚ•VÝsÛ6 ÷_¡ËËä-VH}XÒîv½®KSwÉ®[Óëvm‰¶u•¨D¢šdýòGã¦Ùƒ A|üRx+Oxg“›‰*<饡—Æ"ˆDîÍäÃ'á• í‰ Î3ïÖi5^<Ï€ÖÞÛÉŸ“_/''/ÃØËƒ|νË%Ùˆ'Þeé}ð³`:ËòØ¿Pv­e«¢Ÿ~º|}òR&;»â$ƒ-`Öí CT™vNH=)ƒP–‚­8Q2̹þ‚ùÐf7á«Ù…ênÕ•¼uã÷1ñWŠ<Ʋp¾Ï/~[¼$ѲÃþÁÕÅâ7Ó,òŸ£õ¿ón/°êÑPfwb¿Fƒš–X@ª{Áw ”s^´M£ :6Ÿûç=\¥8ë"½ëN‘~·„•ÂUáDß/e¾SʪÀÉ´ÞV‰§œîTa«Ý])[ »¦"ä·Iƒfœg°›·}6­›O¨ìyk±_“4„~mÚžQ†%M¡ŒwºÖ0ž–¶è)i؆núqçT¼‡1m‡Ý½Óy‰*À•ú ™<½S9Ç‘F}žŽ™ÙD¾‹vȺToçØvÄ‘__uÝî\ÍãESáç=Ôî¼ê䎯  ;Çg@¤¿é–Ô7 ÝÕÑ µ"æèžè/D” ú³’èDzÌ!.°KT¸§z·§y]=!"3ýst¨e7~Q*p±Õ©FnúG÷]ÃóˆV"É!Õ1*R>¦ƒ|XÄ hÀۧǃ®<½œü® Œ endstream endobj 738 0 obj << /Type /Page /Contents 739 0 R /Resources 737 0 R /MediaBox [0 0 612 792] /Parent 723 0 R /Annots [ 736 0 R ] >> endobj 736 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [114.497 419.403 129.216 431.356] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 740 0 obj << /D [738 0 R /XYZ 71 757 null] >> endobj 374 0 obj << /D [738 0 R /XYZ 72 710.559 null] >> endobj 378 0 obj << /D [738 0 R /XYZ 72 613.012 null] >> endobj 382 0 obj << /D [738 0 R /XYZ 72 579.495 null] >> endobj 386 0 obj << /D [738 0 R /XYZ 72 516.292 null] >> endobj 390 0 obj << /D [738 0 R /XYZ 72 482.775 null] >> endobj 394 0 obj << /D [738 0 R /XYZ 72 406.462 null] >> endobj 398 0 obj << /D [738 0 R /XYZ 72 346.821 null] >> endobj 737 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F23 467 0 R /F21 465 0 R >> /ProcSet [ /PDF /Text ] >> endobj 745 0 obj << /Length 1756 /Filter /FlateDecode >> stream xÚ­XÛrÛ6}×Wpúª a‚‘ÊL§ãĉã´qÒF™4ãä!‰ E*¼øò÷ÝÅ.(Ñ¥›t¦n‹ÅbqöìÒ¾³q|ç|òu"¡õé$“D¾ý¹³ÚM®>ûNó¯_DóÔ¹1R;'š¥ÐλÉï“§‹ÉÉ‹ ræb> fÎbM:"áG±³Èœ+Wúbê¥óÈ}7+]ªÔU×L?/^¼ñÑÆ(Nah6Û‚E&>Û‡È#Y…½(Q”Ò–²*‹uÞ~òcþäÈ1\ÄìY5õ‚ÔÕMù¨za»ûš¦²n¥iF•Sßá`æî‹j*]•nCËË~5vó¶ÑÅ.ÅÒ½``Ò2p’œƒ%ÆÆ’O~µc>‘±€ƒ­˜Ñí»B‹Çd‘âcÚmÎíÍªÜØÝ²ØªŽ+¸“ímwsÇØÑꌯ§1œPtš-¾@ÏDàÏO†bÌÉÂSNŒƒØ=•¶!Fn6KÄ<éð%'=™Š$™ÑÒÛ¢2— ]EM£éZ‘«ÅFÀƒ< åÄÄæÌN„Œ0MH6V¥9ÞÞÅ®ºÜ´[ê7¾À!"¦F7‰[ý¹ßq;ìÏwAåSû%µ?²xPÓAt«` z;ÜçÔžP#Ó‡‚Á³.ˆOÒ„ÌzO˜ÝuU³×Ë o/] ®®Éñ'¼ÜPËŠÜÄJ”ÇN›«‚¦`zL*ÖõW×°ªçÏ^¾é•í¨‡×m«ü©9·jÚ¬êÚ‘[†R„It4p…Q|“ÓÞW;i*­8Yd`ì鞉ٱåAâH)æq'‡ •L‡‘HdH¢s‡$è½÷E x­ÅÖ„o(ݪiòe¡i ®o–Vª(xfËK«j·CW+ôyFb?¼}sq¹ u}»¯1}ßt YsuÓÛá#à˲ZEú§°ú‚U7øÆ€?á9gÁá9áXƒhK­3=&©u…êkhìߪݾ˜JôR5íň» iY!Û??žáùüKs@Í/cж7bà(¾ÃeÅÈ[v 8 Å„i1´´š´`x¦ÚiàUŒvÄi‘AÕ¡ys@è&¿FUš Ò†­x§ i(:q9\npÚäâo]wlÆ`+u†ÐýïLÇaýŽÉ…±]‹ Ù;_|”Wðûšýüò|ñ’6xÌ-ŸÌ>ðê‚ÿGUŸO‚Б‘£Y0 ³8„èKlñqð)>†êÐÌ¥ì«É!zV™˜ÔŒÇóZ™âº[…X¼F´òŒb°¾¿<{C½uW®Ú¼*Ç`ê3@S P„ ÜÞàR·˜î#éží¶ê6[ZËLL¸©º"£á²Ç ÊÜXw` –Âòµ0Ì4Ý §X«¢fnƒm•ƒ^•6 š³uøÐ~5Ây«íuv|(D.„ºÞiªDø2¦ihM ˆ ¸H";š/cO~T¿°z cнµ^wÅ·Ó´®[•s`+óMk©«ÁÄêg}œöÆ“¶PÜöIG]k® Ö­æm›¨R&ˆmÒ^¼F=‹%`/ Òo¥’XDP^R 5` >³è;‚è^ („gÔnjµß6ÿ†Èž2ͳE MK™\€…îsÜ–ˆ}ƒ´»i™r5ŠÝ§üD{ÕæÇ`ˆ¸H†44Åf¶‘ïÕ1ÕãìPÞlóB÷OeÚÞ¸±–R‰‡"èÐúa›¯0¸·ÊZµ]myÇ.V)MÍŒ26—Q0€›¾ÃÙ§» sMHÚŒ]ÿý£ƒ8êÏ5;*j{À}ÔdýÂð2’úÊvt Á*¿g”ï6ûZ«¬ÙjÝz&+ò¾»®¡”†!C6VôrQ™¸™jgFÈÀ6ç)ŸæÅR¨mÈúªã=ðõÕÚEë¯Ð”y ’éʬ:©uV±\¾ÃÒh£iB_G5ŸÌ$ ¾|ß-ù²Võ ð#üx”Æû¯A.Í`ص DÌ^ü‹­f^2a [î^†’G6ƒŠ„zO¼‘| ͶÔ<µ€…‡í6 ¾/þ‰Ñ’ïùbò7 “`v endstream endobj 744 0 obj << /Type /Page /Contents 745 0 R /Resources 743 0 R /MediaBox [0 0 612 792] /Parent 723 0 R /Annots [ 741 0 R ] >> endobj 741 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [526.277 81.281 540.996 93.234] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 746 0 obj << /D [744 0 R /XYZ 71 757 null] >> endobj 402 0 obj << /D [744 0 R /XYZ 72 543.206 null] >> endobj 406 0 obj << /D [744 0 R /XYZ 72 387.129 null] >> endobj 410 0 obj << /D [744 0 R /XYZ 72 351.675 null] >> endobj 414 0 obj << /D [744 0 R /XYZ 72 275.911 null] >> endobj 418 0 obj << /D [744 0 R /XYZ 72 216.266 null] >> endobj 422 0 obj << /D [744 0 R /XYZ 72 128.534 null] >> endobj 743 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F21 465 0 R /F27 597 0 R /F23 467 0 R >> /ProcSet [ /PDF /Text ] >> endobj 749 0 obj << /Length 491 /Filter /FlateDecode >> stream xÚmRMoœ0½ó+|´¥blcƒ©ªVªÔl©‡6\ª4–õ.VX |µ¿¾cl¢”ÓŒÇï½ùdè‚:D/ËG¹@¹d4eª¯ÑãC'ˆß#Fe¡Ñº¡®Hfl‹¢ŸÑ×2Jî„D-2‘¡òì5$eR¡ò„1g”ĺø‡jÓ¶Ugúe"Oå}rÇÕ Q* ,PÞhB:HÄB$GœÓB)áÀq@Ç2¥Rê×TŠÄœ …¿÷$åx%qª <5ýÒŽOðÌ>ŒUmüÏ ÇáQÕŽóÜUàµ5§‹ ŒÈéüÃÎn'o—iƒ7÷Þ£ªqW ±åØÚºŠ]W(Íiª8й¢ã¾øÙöÝ—wÆï`¡¨€ÅlàßD§¸_H,sŽ·TÎéúÙ;£yYìèÊr¯¹ÿ@bÅ>.áÿ/ú•nÏÞ®vj6`ü³wr°MHÒô×Ícx¨.!ÖÚîÙ{˜b“1¾qÛG GQ¤ù¾ßÃHw#WÛü¥–»²Vx J`§îeøŒæT¤»È§p#îvÇK8â_‡¾šy>&É6îXŠŒò,‡§4áZ†¶š®°è_*˜ BWcÿ]«®£UMm›À©¸xm’7×ìÏ﬊CqÓ{u0 Nßðvû­Œþt¹ÙB endstream endobj 748 0 obj << /Type /Page /Contents 749 0 R /Resources 747 0 R /MediaBox [0 0 612 792] /Parent 723 0 R /Annots [ 742 0 R 751 0 R ] >> endobj 742 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [502.4 656.001 540.996 667.954] /Subtype/Link/A<> >> endobj 751 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [71.004 642.372 246.055 654.325] /Subtype/Link/A<> >> endobj 750 0 obj << /D [748 0 R /XYZ 71 757 null] >> endobj 426 0 obj << /D [748 0 R /XYZ 72 710.559 null] >> endobj 747 0 obj << /Font << /F24 468 0 R /F15 461 0 R /F27 597 0 R /F25 585 0 R /F21 465 0 R >> /ProcSet [ /PDF /Text ] >> endobj 752 0 obj << /Length 104 /Filter /FlateDecode >> stream xÚ31Ð3²T0P°T04W0¶P02SH1ä*ä2² ‚„Áɹ\Nž\úá F\ú –\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. öÿÿ¨‡âÿü àrõä 䇣3 endstream endobj 753 0 obj << /Length 251 /Filter /FlateDecode >> stream xÚMϱNÄ0 `W*yÉ#Ä/i¥Þ¡[.ÒqHt@‚‰1#6D»ñZ·ñ}2©:c‡r%˧؉“qrÜ4TQ]ÑQMËŠšÝ×ø„ÍJª²]N­»Gܴ诩Y¡?—:úö‚^ž_Ðo.O©F¿¥›šª[l·`FÐå8ÃüÙÌ<”û’#€MF ±Pº2;Ð#Ü+Å/Ffü±“Û»—ö̘»F)_)…n"æy3öƒŽÕ—íh7Ú>ãzé¹äô·‚ÒZéâ ¼+ߣ¸(Ñ“Dw_ßúþІÙäУF7@À³¯ðC–¿ endstream endobj 754 0 obj << /Length 329 /Filter /FlateDecode >> stream xÚ]ѱNÃ0à‹îÒPR†ÈŸî”üçË¢<<šØÂÎíAiS;™Ú»R=ªùŒŠ…̶Ûµ¬U~eç3•ŸQYåõ¹}~z¹WùòâÄ–*_ÙëÒ7ª^YxpDȰÀ`[ ¶ ±3ˆbzÜ;~@Ƹiu#¿¸¯F2é‡ KôàÒÀ\ì©™ùª‘’»-Ó#±eFC¤ïQ3ôô@Í5…„«@ã{0#R³êøRÿII‚XØõ¡aLjB¿€¾²GÏreG¿æPš•Ž¸c8”‘‡fÖí±¿“@±c-‡VL9¢çPšU$Ý ÌR¿¤'y< -žïï·›¡ŠzZP§µºT?õxÜÕ endstream endobj 755 0 obj << /Length 276 /Filter /FlateDecode >> stream xÚ]Ï;NÄ0à‰R¬ä&Gð\’ ˜Gƒ¥e‘H¢J tH67‹ÄE|Lç"Ê0v/Õ'çáßíw6x€{í šcì >´êYÃÕ»õÓý“Zöª¾AcT}ÁuU÷—øúòö¨êåÕ¶ª^ám‹ÍêWE‚*,ÜPÑ‘MŸDXûm€SMƒŽð®ÉW‰™€õ($f1B²‰)’Bü£Ë蘩 3EpF  3†ŒB~á¬)·&2°%HÙ·aš÷12Zm‘fašá ¹ÏÑ™§Áq¿0 ß…è<Ì—!#äÐ.CFñŸQþâækhG£ Î{u­~Lž¹Ò endstream endobj 756 0 obj << /Length 215 /Filter /FlateDecode >> stream xÚeαjÃ@ Ð3´Ü'œ~ 9»8­§\â¡ÐLB¦¶c‡„:Û[~ëþ ¿àO¸ñ &ŠpŠã ž4HI:y|ÆS|ˆqš`2ŶÀ5âLž.›÷/ÈK0+ÞƒYðLùŠß»ý'˜üíc0®cŒ6P(*!½Èj!µ5YIލUÇN9u :-¹÷¬Õ>“Ôd~&I°êÄVlí~U÷oÖvšµžUâG{Áq1ë®ÖcÛ«4Ö76ƒábPŽ=ÝÙõöOý)˜—°„3QÈjZ endstream endobj 735 0 obj << /Type /Font /Subtype /Type3 /Name /F39 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ 2 -19 95 45 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 45 /LastChar 114 /Widths 757 0 R /Encoding 758 0 R /CharProcs 759 0 R >> endobj 757 0 obj [40.29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57.44 0 0 0 0 0 0 0 0 0 0 0 91.74 0 0 57.44 0 48.27 ] endobj 758 0 obj << /Type /Encoding /Differences [45/a45 46/.notdef 97/a97 98/.notdef 109/a109 110/.notdef 112/a112 113/.notdef 114/a114] >> endobj 759 0 obj << /a45 752 0 R /a97 753 0 R /a109 754 0 R /a112 755 0 R /a114 756 0 R >> endobj 760 0 obj << /Length 178 /Filter /FlateDecode >> stream xÚŽ1 Â@EgI˜Æ#d. »›%âVÁ-­,ÄJ--m5GÛ£ì,Sqb‚¤^õgøÿ;I )Ò†ÆS2†²”Ž/¨-§Š²Y:œ±p(·¤-Ê%ç(ÝŠn×û e±ž“FYÒN“Ú£+ „‡(À(@ ÷ð¬à ¢QCTCü‚˜¾%©Zrèy hþ`øÿ+é:»~â9åi`V†•’¯K ‡üî@- endstream endobj 761 0 obj << /Length 175 /Filter /FlateDecode >> stream xÚ…Ž1 Â@E¿X¦Éœ èf²˜*#¸… •…¤RKAE[ÍÑr”Á2E0މ¨ðª?Ãÿ/ˆF~Àö ‡>o5IGzŽ»ËfO‰%µb‘šILÊÎù|ºìH%‹ kR)¯5{Ù”@<€¸åˆ ¸%œ;úB…^ ×–¸e¿q‹/NùŸßÿOI×Ùõׯ9•i ‘¥¦ÕIQ¥©¥%=¼p@ endstream endobj 762 0 obj << /Length 170 /Filter /FlateDecode >> stream xÚ-Î1 Â@Ð,Óxçî&!VBŒà‚Vb--­ÍÑ<ŠG°´ãþ,¿yów7çN­ṉ¹29‹³ÊçÊ8hNRy1[uVÌ2¨¿ÒëåvS­çš‰©u—©Ý‹¯@ò’4døfOàþ@ÒƒoO£W$tm$6IlBhöi{ãŒv#ò/‘»ˆÜ‘mbú¿· ”…—üáQ9î endstream endobj 763 0 obj << /Length 169 /Filter /FlateDecode >> stream xÚ-Ž1 Â@EGRÓxçîn&‚VBŒà‚Vb-­õhÅ#XZ„Äù& –7o?£ÓQªâ%³Ñ±d©_X½`tò_”'Î#»­¨g·4Ê.®äv½Ùåë¹v…ì‚ø=ÇBÎDTYjKó$z¼ˆ†¢Á—(1Øk¨…³w ûUaÂLºà †9pðȺ€Ð õh«»[p/"oø:^ endstream endobj 764 0 obj << /Length 145 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0QÐ5S06U05RH1ä*ä26PAS ˆLr.—“'—~¸‚±—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE¡€áÿâ ®b; ¶byn``à‡á ì ü€„?000‚0} @Œ! lÁåêÉÈp9e endstream endobj 765 0 obj << /Length 102 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0QÐ5W06UÐ5TH1ä*ä26PA3ˆDr.—“'—~¸‚±—¾‡‚—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Býÿÿ?þÿÿÿƒÄ¸\=¹¹7 (n endstream endobj 766 0 obj << /Length 114 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P04F¦ &æ )†\…\† ä‚e’s¹œ<¹ôà ¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. r õ õ ÿà† ylо šbË1p¹zrrM}D endstream endobj 767 0 obj << /Length 159 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0U0W06Q0¶TH1ä*ä2²Š(%’s¹œ<¹ôÃŒ,¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ü ò Xq…|ãƒòíþË÷øÿ‡úÿÿØÿÿ€ÿÿæÿþc$’©©éé™Ë|Ý\®ž\\.¸Gg endstream endobj 768 0 obj << /Length 97 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P04F¦ † )†\…\@ ¡2ɹ\Nž\úá@.}0éé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢ ÇPßPßðÿ‚Ør \®ž\\-r" endstream endobj 769 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P04F¦ ÆF )†\…\† ä‚e’s¹œ<¹ôà ¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. r õ õ ÿ@ ˆ-Ç€ `SËåêÉÈÃ7(b endstream endobj 770 0 obj << /Length 103 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0S04Q06V0´TH1ä*ä22 (˜B$’s¹œ<¹ôÌ̸ô=L¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿoøÿÿÿñ¹\=¹¹t¡"é endstream endobj 771 0 obj << /Length 113 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P°P02Q06T01WH1ä*ä22 (åÀ2ɹ\Nž\úá FF\ú@a.}O_…’¢ÒT.}§gC.}…hCƒX.O…†ÿÿàAþÕàB \®ž\\êÊ7; endstream endobj 772 0 obj << /Length 151 /Filter /FlateDecode >> stream xÚ3¶Ô32V0Pc33…C®B.c# ßÄI$çr9yré‡+qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]d0Ø1?À‰ëØ0Ô°€áúÿÿÿýG >ÃþtÌøC¾ñƒ<6ŒÍ æv 0Ìþ Žý@ NÌÜ`ÁÀåêÉÈj‹ch endstream endobj 773 0 obj << /Length 175 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcss…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜?000°ÿ€ü°6@BÞaoBØÉÈ:ù âÿ¬ãöÈÄÿÿP‚ùÿÿÈÄf(Áþ€ñ:Áÿ€ñCýþÿ ÿÄÿÿäˆãrõä ä½¼]u endstream endobj 774 0 obj << /Length 181 /Filter /FlateDecode >> stream xÚ}ϱ‚0à“[xî ,XBâd‚˜ØÁD'㤎])ÖGáçÜú¥wmÿôÌr¾0aÌˤ˜¤xá&á:’R.wÈ,è#šô–» í_Ï÷ t¶_c :Çß<ƒÍÑ)ED^¨„¯r¬šÖŒj„BpÂj”b îŽ"ú~ص½|—\2á@àÇ}¯}&’72BÝÍÑNĽRÁÆÂ~‰t› endstream endobj 775 0 obj << /Length 194 /Filter /FlateDecode >> stream xÚÎ;‚@€á!$Sè `.  ,ñQ‘ &na¢•…±RK ¶àÍä(’‚0bbkñ5³“_ÏÇ¡&Ÿ4ÒЦt ðŠ:”¡OѬ9^01¨v¤CT+£2kºßgTÉfAª”öù4)]Àk=ˆùÌl »²SÛìTK`¯OÈ;1@ÜÉEÖs´¢ùS·›ý¸ù÷ώ܈?· Èäv+ ´4ÒTK[%¥´à1H;àÒàß0)P7 endstream endobj 776 0 obj << /Length 173 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc33…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]êÿÿa`¨ÿÿŸáÿÿÿ@¬ âûþ@‚D0þ ÿàDˆ¨ö`¢HÈ£€?yšQ`ãíá¶Õ£¸ì4æç‚öÌ3 ¿=ÈåêÉÈ+QlV endstream endobj 777 0 obj << /Length 146 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcs3…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿßÄÿ Øö üx ö ÁÀ€A°7 þÈÐ8ìš:ˆ^l†GÔÿo``ŒD€Å¸\=¹¹’pio endstream endobj 778 0 obj << /Length 109 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc3…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿðÿÿÿ0 â3È70 &ŒÍ\®ž\\â×M endstream endobj 779 0 obj << /Length 130 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc33…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]êÿ``¨ÿÿ€á?ˆ¨‡@1æ ƒ‰`oüðõÿÿÿ‡ÿá,ÑÀåêÉÈÇÕ[ endstream endobj 780 0 obj << /Length 173 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc 3…C®B.c3 ßÄI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]ê0Ô?øÿáÿñƒñÿ‡z ñ€H0ðï`¼ÏÀ¿‡…ØÇ$æ±ÏG&æóÈ~~y1F´ÏÃ$šç€ˆ?(DãÑðD0HÔ½ðìãrõä äBëb endstream endobj 781 0 obj << /Length 186 /Filter /FlateDecode >> stream xÚµÎ1‚@…á!›L㘠è..„X‘ &R˜hea¬ÔÒB£-àÍ<ʺ5!Ž ê Ìäkæ5¿žŒÆš4ô邈ö>žP+ê.Œ>ÓîˆI†rMZ¡œ·”Ù‚.çëe²œ’2¥Oj‹YJÀ æÒc6˜¹ŠW¥°¸6çç NÓü‡0oOQ7¹¨mî>Þ ‡mqc›¶«mûvvÍÐïÞ˜ž¨z®í9Î2\á ¼†ƒ endstream endobj 782 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚÍ= Â@à  ÓxçºY7Òú¦´²+µ´P´^–£äkP2î¬Ø‚ÍWÌ›yc‹ÁÐRJ†ú†lAÙˆöOhó0L)ËßÉîˆãõšlŽzƨË]Î×êñrBõ”6†Ò-–Srì˜[oB޹U÷|@ &DžøELã^¼ˆ·Òû¤YÉ•¤BW¾)¡ãÿÅîÍ®M sžÞÔ®W@pVâ _7á€G endstream endobj 783 0 obj << /Length 207 /Filter /FlateDecode >> stream xÚ]οJÄ@ð/¤X˜&yo7¢Vw'˜BÐÊB¬ÔRPQ¸ê’GË£ì#ìu)BÆ/Úˆ ¿bþ2áru´ÒFOj gÚœës-ï*]¢¹øí<½Ê¦¯¡ͲøöF??¾^Äon·Z‹ßéC­Õ£´;E7ÄÌŽÉ™¥‚JZGêËÔ¡H¸4Óô#ÿ#‹3€u´hJëQØg3rcb6°Kà=Àq*§l1quÚÓôÏÌþÂ8k½Kü,šÙb Œ¼ÿVŽ«VîäΡp endstream endobj 784 0 obj << /Length 129 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcs3…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿßÄÿ ˜?ðã&*˜?°700``TÐÝ Œÿÿ?@"Àb\®ž\\Qÿd¤ endstream endobj 785 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0TÐ5T0¶P01SH1ä*ä26 (˜˜Cd’s¹œ<¹ôÌ͸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õêüÿÀðÿ‚‹É30ð7à'øäð€DãyöÃì0‰9@âø> stream xÚ=νjÃ0à  ·ètOPÙ‘iÈ$H¨‡@2e(ÒŽ’ÕÊ£ùQü=¹w2ö ûAwg·okK­ùÙ UïôSâ mÅy!©4®¸«Ñ\ÈVh>¹Š¦>ÒãþüE³;}P‰fO_%ßXïÉÁG—§(Õ²^u ª…U"è è@tLãÀ{Æ5Bdt˜QÃLÞÏdK”/]µüÐq%C½ŒoÒ"Y9-Ÿné˜\Nzžš'ºlÔø™vŒš‘(ÕðPãÿ_g endstream endobj 787 0 obj << /Length 181 /Filter /FlateDecode >> stream xÚmν Â@ àh‡B–{„æ ¼Ö£C§B­`A'qRGEçë£Ý£Ü#8v(‰àærù;W-–ŽrúFEnI—ïèJÉsMµp¾aÓ¡=+Ñnäm·¥çãuEÛìVT méXP~®¥G€”Ã@ÆÜ+²àÁôi„9¤oH~¤,x!aÁ(™RRõQѾIÿ0é>F^ÆXnÊŽFIxùP\w¸ÇòFZh endstream endobj 788 0 obj << /Length 186 /Filter /FlateDecode >> stream xڕα Â0à“ Â->‚÷¦5Rqj3:9ˆ“::(:§Vß$Pq°Ci¼¦Š¸øÇݧF½¾¢À?5¤AD»¨"_4ßö€±F¹"¡œq¥žÓùtÙ£Œ Q&´)Ø NÈXpù¦Fü‡IAÜœñpçÊšŠÉ&%t3Q@Çcy¬ý!gÄO¸¥¨›_p€Ï«`œ5ñîêÞ+ëåþŒ;Ô²§—øÓ>i; endstream endobj 789 0 obj << /Length 171 /Filter /FlateDecode >> stream xÚu1Â0 E]u¨ä%G¨O@ÚD "•"‘ &ÄŒ Xi–£ä3 1°0¼áûÛ~º™)MÍ='­èTãUùšâT/ØZ”;R ÊOQÚ5Ýo3Êv³ eGûšªÚŽ@$€>¹,%Ÿ§ FÄ"”¾ÆåÞ 0ôðü22¯?Œ?{|ÌEã²Xú<Š(>¿ÙáÙåØ "àÒâß4Ci endstream endobj 790 0 obj << /Length 191 /Filter /FlateDecode >> stream xڕͱ Â0à  ·ôzO`Z#…N…ZÁ‚N⤎Š®¦æ£ô:vwÕÅEpÈwIþßä“©¡„¦|LN³ŒŽ)^Ðd<'2ÊÅáŒezK&C½ä-êzE·ëý„º\Ï)E]Ñ.¥duEq…û"ࢎ±ÎòÞA „BÔsT܆ŠgÀ4Êæ!ßFÁýdx?V,HÔHJ|ÄE]1Vú–Ë}§üà;°=·¶ÅE|Ÿ9g1 endstream endobj 791 0 obj << /Length 178 /Filter /FlateDecode >> stream xÚ]= Â@…_H˜&GÈœÀü,‚°#˜BÐÊB¬ÔÒBÑ6æh9JŽr‹%ãD;‹¯x?3Ï,f…ጿÌÙ|ÉéN&WMr Î7*kJlrJ7êRZoùùx])-w+V·â£žœ¨®±ìˆ´¡H‰ô±‡¤]Òζ¾ùÑh³‘ñïhí@û°ÀÒ¶h’N0Æ>òúÛ"N·Xé uM{úpTRÿ endstream endobj 792 0 obj << /Length 150 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc3…C®B.cC ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. òþÿ``üÿ‡ùÿ?v æÿÄþ1Ȩao`À†ëÿÿÿðÿÿÿ0 âãRK)¶ÿÿÿÐü0 âs¹zrršT endstream endobj 793 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚu±JA†'X,L³°óñî²hµDÈ­,ÄJ--íBn;_kÁÙ7HÀæ Éøï%6‚°|°3ßÎ?ë/Ïg^j™É´¹ãå±áö-ªµ´Í©õðÌóŽ«[ñ-W+Ô¹êÖòöúþÄÕüz!¸/宑úž»¥Q rI#õ_š&ªšÏ Œê.Û}ÿ‘]rŸ Hä¢MÐMþ£r” 0 ’U%à€ýú=€&9¤Ÿ‰~=Íd< Ø…Bœ(m±iÜ@ˆ˜aÓ@dþblŒJ_ä€?QŒG™2Cº*Ò-t¾êø†K«sT endstream endobj 794 0 obj << /Length 157 /Filter /FlateDecode >> stream xÚ3¶Ô32V0CcK3…C®B.c ° ¢’s¹œ<¹ôÃŒ-¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õþ@!êA3i„ýæ@ÝÌßÿÿ``þÿÿˆø$€†zæ ö Ì@Ä8ñºDýÿæÿ?þÿ?þÿ‚‹q¹zrröƒcC endstream endobj 795 0 obj << /Length 134 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcSs…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]øäì bH°ÿßÀPÿÿÛ1?mpýÿÿþCð âs¹zrr>F endstream endobj 796 0 obj << /Length 202 /Filter /FlateDecode >> stream xڕα Â0ЇÂ-~‚÷¦5bu*Ô vtr'utPtµ~ZÅ)ø3”žwÁU/—ËÝ%zÔíi ÝÒCìpÁtì2|”m³‡4µDƒšrT>ÃÓñ¼•ÎÇÊpa¸†<âò<¯0 ™oäðÿ#¡Ò7U¿¸\Ëòm`˜vÅtJ)¾2ÄmφyÕÌÛ2$IŽä–¦épqÝæ6ëBKæù2Ù¯åpñ º?}'Kô ë"ÁÀ$‡|éCoª endstream endobj 797 0 obj << /Length 116 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcS3…C®B.crAɹ\Nž\úá Æ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O…úÿ ÿÿ€ãz fà\¸þÿÿÿÿÿÿà >—«'W /ØN endstream endobj 798 0 obj << /Length 160 /Filter /FlateDecode >> stream xÚ3¶Ô32V0PÐ5&† ÆF )†\…\& ¾ˆ –IÎåròäÒ*áÒ÷ sé{ú*”•¦ré;8+E]¢*c¹<]êÙÈ30üŸÿ¡þÃÿÿ?ÿ?’ÿÿ`¨“üê?þ`àÿ`H>°o’ìÐÈ;š’õþþÏðÿÇÿÇÿ€|$Álˆ8—«'W ti0 endstream endobj 799 0 obj << /Length 148 /Filter /FlateDecode >> stream xÚ­È1 Â0Åñ²}§øN`šdi§B­`A'qRG¥Î¼˜›×èêd†Ð§­ ¿WL¬“lœ+ÄYÙ>±Ë?ÅŽ·;råY¯Åå¬çïÊÚ/¤9_¬«åT ëZ6F²-ûZB[Þt„'"H€žÚ ¤z*I¥ø¥û/WDàŽôcl<ó¼âÄpUê endstream endobj 800 0 obj << /Length 168 /Filter /FlateDecode >> stream xÚu¿‚0‡¯a ¹…Gè=-T'ÄÄ&:9'qtÐè*<ÒG`dh¨=Gsù†û÷ûÌzQÒ´Œ˜™‚šh4qÅ–×;VÕ‰ŒFµ‹STvO¯çû†ª:l(GUÓ9'}A[HÐŽ ÂI†ÐeCÙË>se—%$C Éø1ãü?&þwÇ?óD:é8“³ÙÁ.v²·øÈüJ@ endstream endobj 801 0 obj << /Length 195 /Filter /FlateDecode >> stream xÚ1 ÂP †o²xs}mŸT: µ‚ÄI_VoÒ#TìPÓ§ “ƒ$|ßðÿ‰‰!OªïÈH´óñˆ&tê0z¶ŒSÔ+2!ê™è¨Ó9O—=êx1!uBkŸ¼ ¦ ÙÂfÀ7.€\3×`™Pœ³l¦jè媂®C¡Jè|P ÔOÈJÕ.¿!ίqþ²çkä"%\µg¨»¤J ø–3òo8 §).ñ °th endstream endobj 802 0 obj << /Length 155 /Filter /FlateDecode >> stream xÚ¥Í= A à ]š=‚9ó· Vº‚SZYˆ•ZZ(Úš9ÚÅ#XZ,gõùà½Wć֑&›ÏÈYÚ<¡«sÖ%–awÄÆ£Z“«QÍs‹Ê/èr¾P5Ë)T-m é-ú–¸ëw ©’ÌD‚$–ÈI$§AæYxTøÞà™ð>Üþ„EHyûãÝáÌã _õÍG< endstream endobj 803 0 obj << /Length 178 /Filter /FlateDecode >> stream xÚ=̱ Â@ à‡B–>Bó^ÛS¨S¡VðA'qRGAEÁ­÷h}”{„ÁØvpø ÿ=š2š =!]Ð1Ç+¥ä¬ýâpÆÚ ÚRQ¢ZJ‹Ê¬è~{œPÕë9å¨Úå”íÑ4ü²1s—ŠJ´=[u’îýÛ­2Tì!år³…„;i@ìž0ò¢Áw0ò,=»Ô±üVÀGî/­\ÜàÂ*UÛ endstream endobj 804 0 obj << /Length 142 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcC…C®B.cC ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€|…h –X.O†:ü¸þÿÿÿÿÿÿà >!=x°£Ã ö ì›øÿy ùüÿ00ÿ?ÀÀðŸËÕ“+ ŒLAQ endstream endobj 805 0 obj << /Length 137 /Filter /FlateDecode >> stream xÚ3¶Ô32V0CcKc#…C®B.c ˆˆ˜JÎåròäÒW0¶àÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(Ô?`ÿÇðÿÿ$¢þûæ ö4#êa#Т?@ÛÿÿÿÿƒHüöÿ÷ÿaàÿ#ÿƒËÕ“+ Y¶LÜ endstream endobj 806 0 obj << /Length 170 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcsc#…C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿðÿoøÿOþÿc?ÀðƒýãæŒ Äæ Œ˜@‰ì~U"5ü È„<2ao$äíàÄ? Áÿ…`ÿ#€–1p¹zrrC× endstream endobj 807 0 obj << /Length 168 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bc c#…C®B.c3 ßÄI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]êÿ±ÿðH|øÿŸH€X`1þy$âƒ=û;Lâ8øÃŽùñŸ âù<(Áø|^2ñ}Þ(ñŸÿÃþÈÄ?v QÃü€ËÕ“+ ««SX endstream endobj 808 0 obj << /Length 185 /Filter /FlateDecode >> stream xÚE±‚@ †kHºð×'ð€#1.\‚˜xƒ‰NÆI4ºàÑx‘pö·~éÿ·ý«–óTQL)—ZJé’àUÆ:vÒ Î7, Ê© å†]”fKÏÇ늲ح(AYÒ1¡ø„¦$= õ¤¿h|ç½ÙvcÔ2DP К!*‡‘ ŒÐ!èº_ç=?õ{"gäîÖ§¼#Î8Ùÿz¾«'áž3¬Õ¶ýK\ÜãÌ­Gv endstream endobj 809 0 obj << /Length 134 /Filter /FlateDecode >> stream xÚ3¶Ô32V0P0bcs…C®B.#3 ßÄI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ø䡨ˆë¡ø?#3q=ÿ‡áý uöPµtÄöÿÿ7ÔCð(ÝÀåêÉÈ74 endstream endobj 677 0 obj << /Type /Font /Subtype /Type3 /Name /F38 /FontMatrix [0.01338 0 0 0.01338 0 0] /FontBBox [ -1 -18 41 52 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 33 /LastChar 120 /Widths 810 0 R /Encoding 811 0 R /CharProcs 812 0 R >> endobj 810 0 obj [39.23 39.23 39.23 0 0 0 0 39.23 39.23 39.23 0 0 39.23 39.23 0 0 39.23 0 0 0 0 0 0 0 0 39.23 0 39.23 0 39.23 0 0 39.23 39.23 39.23 39.23 0 39.23 0 0 39.23 0 0 39.23 39.23 0 0 0 39.23 39.23 39.23 39.23 0 0 39.23 39.23 0 0 0 39.23 0 0 39.23 0 39.23 39.23 39.23 39.23 39.23 39.23 39.23 39.23 39.23 0 39.23 39.23 39.23 39.23 39.23 39.23 0 39.23 39.23 39.23 39.23 39.23 39.23 39.23 ] endobj 811 0 obj << /Type /Encoding /Differences [33/a33/a34/a35 36/.notdef 40/a40/a41/a42 43/.notdef 45/a45/a46 47/.notdef 49/a49 50/.notdef 58/a58 59/.notdef 60/a60 61/.notdef 62/a62 63/.notdef 65/a65/a66/a67/a68 69/.notdef 70/a70 71/.notdef 73/a73 74/.notdef 76/a76/a77 78/.notdef 81/a81/a82/a83/a84 85/.notdef 87/a87/a88 89/.notdef 92/a92 93/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120] >> endobj 812 0 obj << /a33 766 0 R /a34 771 0 R /a35 772 0 R /a40 760 0 R /a41 761 0 R /a42 767 0 R /a45 770 0 R /a46 768 0 R /a49 809 0 R /a58 769 0 R /a60 762 0 R /a62 763 0 R /a65 773 0 R /a66 774 0 R /a67 775 0 R /a68 776 0 R /a70 777 0 R /a73 778 0 R /a76 779 0 R /a77 780 0 R /a81 781 0 R /a82 782 0 R /a83 783 0 R /a84 784 0 R /a87 785 0 R /a88 786 0 R /a92 764 0 R /a95 765 0 R /a97 787 0 R /a98 788 0 R /a99 789 0 R /a100 790 0 R /a101 791 0 R /a102 792 0 R /a103 793 0 R /a104 794 0 R /a105 795 0 R /a107 796 0 R /a108 797 0 R /a109 798 0 R /a110 799 0 R /a111 800 0 R /a112 801 0 R /a114 802 0 R /a115 803 0 R /a116 804 0 R /a117 805 0 R /a118 806 0 R /a119 807 0 R /a120 808 0 R >> endobj 813 0 obj [761.6 489.6 761.6] endobj 814 0 obj << /Length 233 /Filter /FlateDecode >> stream xÚ‘=nÂ@…ÇraiÁs°þ‰q:K`$\ %E”*PR$JZðÑ|ŽàÒ…̳Y¬¤¡øš}³«7ß>'“t*¡D¡<Å©$/’¥²‰ø‹ãLÜÂÏÏJ6k‰36K$lÊ•ü|ÿnÙÌ^ç±)ä=’ðƒËBˆœ#‘«ø5QPåD´W:·%ò#J c9Ðуr¦ç4àvh|Ð }*q¨ÿæl©äzÿ¿÷Ç=ÐÍö´½ýö¾×Ý÷´{[½¸#¸‚3¸ƒC¸„S¸íÃ5œÃ=þÀ9ò¢ä7¾áÄÚ endstream endobj 815 0 obj << /Length 224 /Filter /FlateDecode >> stream xÚ‘1‚@E—PLØ 芔$Љ&ZY+µ´Ðh+£pJ "θLŒ&4¯Ù¿³™ÿv<Fôq‚ƒ0ÂÑãœ!ŒéÔÇÀ—l‚izƒa zÁèl‰×Ëízºša:Åm€þ²+¥TM܉„ðJ¹…RNIPhSh50O"gèRÂÐE¯4¸•Á©;hÀhÐZƒzóø&/z( ÉŸÈ|ßû¿{´Ÿ=eoî }¸›ô”Þâ°v”wÎã]²SvËŽÙuÒ¹ç?à¿€ykxBÐ{ endstream endobj 816 0 obj << /Length 132 /Filter /FlateDecode >> stream xÚ36Ñ34T0P°b#Ss…C®B.CS ßÄI$çr9yré‡+šré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(°ÿ`ÿ£þÏÿ¨°þ2´ÿ å? CþÈý2d@0Û탘/ÿý—«'W D¡bR endstream endobj 817 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚ=Ì1 Â@Ћ…˜7›h¢Á-„XYˆ•ZZ(Ú Ù£Ùy!)‚kb@xÕÌ0)Ÿ=žr0a?äpÆGERQzŒ»æp¦D“ܲŠH®š˜¤^óíz?‘L²+’)ï{{Ò)‹'Üq…¼†ýÀÚ?ÓÉ­‰­qßF¼ „ÓAˆÀüçÔ@…^‰~QÀižM;´Ô´¡/óg5ü endstream endobj 818 0 obj << /Length 201 /Filter /FlateDecode >> stream xÚ1Â0 ES1Pyáø´Ä¤`b@LÀÈ‚9=êQzƈ[#FD¬¼áÛþv2öâ„cq?a;æÑ€ ÉÖbÌÖjf¢4£hÃ6¡h!2EÙ’¯—Û‘¢t5eQg¼•že36Æ™úø†È±® …¡ôøæÖÂÈQú–ðáÚÂÊuû—›Àx8ÓÅOÓPŠ FTÂÅ—ª4Y­Ô.uP7uþLщÍtÝD·Ò ÿ‘þÍ3ZÓÉÍp endstream endobj 819 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ36Ô34R0P°PÐ5´T02U04UH1ä*ä24Š(›@¥’s¹œ<¹ôà ͸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ìä?Øÿ¨ÿóÿÏÿ@õÿíÿËÿg?ÏÀ„ò r@h„6 5 ?~0~`þÀü¨³$ÅÃÀåêÉÈû²1­ endstream endobj 820 0 obj << /Length 105 /Filter /FlateDecode >> stream xÚ36Ô34R0P°b#CS…C®B. m„@ $‘œËåäÉ¥äsé{€IO_…’¢ÒT.}§gC.}…hCƒX.OöòìÔÿùÿÖÿ±ÿ!ÿý—«'W áš( endstream endobj 821 0 obj << /Length 173 /Filter /FlateDecode >> stream xÚ35Ó30T0P0SÐ52U05P07UH1ä*ä21Š(Àä’s¹œ<¹ôÃLŒ¹ô=@\úž¾ %E¥©\úNÎ †\ú. Ñ@Ãb¹<]@àˆ`|"™‘I°8;É߀D‚µÊ#‘vH¤ ˜¬A" HÆH$†µÈ²7 [‹l¡†µÈVÐÊZ¢ýÉðÝZº/~ki¼kÀ$—«'W R6N` endstream endobj 822 0 obj << /Length 114 /Filter /FlateDecode >> stream xÚ36Ô34R0P°b#…C®B.CS ßÄI$çr9yré‡+šré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ØÈ°ÿQÿçÿ?dXÿÇþ‡üö x~\®ž\\Ë>?ž endstream endobj 823 0 obj << /Length 162 /Filter /FlateDecode >> stream xÚ36Ô34R0P°PÐ5´T02U01QH1ä*ä24Š(˜C¥’s¹œ<¹ôà ͸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ìä?Øÿ¨ÿóÿ2¬ÿcÿCþû<®¢ êÿÛÿ—ÿÏ~žåä€Ðmj~0ü`üÀüùPgHЇËÕ“+ ŽH® endstream endobj 824 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ36Ô34R0P0W06U02Q0³TH1ä*ä24 (›@d’s¹œ<¹ôà ͸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž.   ?0?`?À€¿AžAžÁŽÁ†¡+@R €ðóƒÿ?þÿùÿï?Ô¡ýûòø:¹\=¹¹O5l endstream endobj 825 0 obj << /Length 218 /Filter /FlateDecode >> stream xÚUŽÁJÃ@† taòÝyݬi…\ Äæ ÔSÅ“öØCEoböÑöæk|Ü ºÎeáãûÿY†É‹S[pÆ'–ó%/Îø¼àK{Íä募ÑýŽª†ÌZþ¹–žLsÃOÏ[2Õê’-™š7–³;jjVIÝ#PÐ#Úåá€6 ¡ûO×ÿ—R–Á—Áéàõ‡K?½zsÉ»‡rHŠvQ¦5ÇÀ  «†né òÑZ« endstream endobj 826 0 obj << /Length 96 /Filter /FlateDecode >> stream xÚ36×36Q0P0T0´P06T02WH1ä*ä2² (XB$’s¹œ<¹ôÃŒ,¹ô=€„§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ÂÿÿÿÂ\®ž\\Ï5^ endstream endobj 827 0 obj << /Length 216 /Filter /FlateDecode >> stream xÚUŽ»ŠÂP†± i­Ì¼ÀîÉM! +¨ ¦´²+µ´Pe=–GÙGˆÕ¦ŒçDm>þù†¹DÉW°ÏŸG-Ž}n'¼ hCqh¬ÏQüh-ÖÔKIM9I '•Žx·Ý¯HõÆ}H x°?§tÀhÀ ø®À/j… õ܆új9œÌWÛài¸†°¥™ðð`h>תò΢’w敼ä8ø¿âXBJœ"†ZDŸ%{¥‘ÝwvE{’yW´[Â8æÕÒ>inÐOJºWÚ[Í endstream endobj 828 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ35Ó30T0P04T06S01U07PH1ä*ä26Š(›@¥’s¹œ<¹ôÃŒ¹ô=€â\úž¾ %E¥©\úNÎ †\ú. Ñ@£b¹<]ä0þa¨ÀüŸ¡þû†ÿ@¢'V!À:°ö˜ÿA‰ŒØ °•¢;ÁßÀðJ00T@.WO®@.w \à endstream endobj 829 0 obj << /Length 232 /Filter /FlateDecode >> stream xÚ³4Ö36U0P0SÐ5´T°0W0³TH1ä*ä²0PA ¨Tr.—“'—~¸‚…—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE@ æ ÐXì1X ŒÀ,þf D;ȃ5¡²äÀÚQYv`í¨,°A P֎ʪkGeýkGe}òä°vTÖ°vw€5¡²Ð£þ?üûPè]*{œØ À ü¾D„rŒ÷ãÄÆ=%ÉÁbƒä2.WO®@. ê¸' endstream endobj 830 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚ33Ò32Q0P0bSKs…C®B.S3 ßÄI$çr9yré‡+˜šqé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]øÿ Æÿÿ€9ÿ?©úÿÿ€Ä~0ÿa``Êü«cRòÿØ:ìÿ€5ÚÿSõ`”üÿ†ÿÞÿØ)ö`Šñ˜R( Cþƒ^ ¤yÄPÀø:ô5>ŠËÕ“+ Šc endstream endobj 831 0 obj << /Length 203 /Filter /FlateDecode >> stream xÚÝÒ= `šMÞâúN ­vlRk"ƒ‰NÆI4:—£Õ›p„º14}>´n]t|ü<„Éx˜Œ1—4Á4Â} 'àÖåô5±;B®@®¹rþ¬Õ/çëd¾œb ²ÀMŒÑTBˆ Ÿ¸õˆªŒ*7@w"#DI.Õ> stream xÚ…Ò±NÃ0`G,yñ`¿$ªÒ¡Š¥R$2 ÁÄ€˜€‘R‡JñÆc‘7àÂdô帳Âèô9qï¿;e]ŸT§ºÔ+}\éu¥ëR?TâYÔ+|Xêº oîŸÄ¶Å®W¢¸ÀÇ¢h/õëËÛ£(¶WgÏ;}[éòN´;ÍëXüåÐGI¢ŒQæËEuvìÛÄ"ó/5A|bGKþ§&i“tHŠ½È™¹EÙ¸(ñÅ)9H»HÑô84‡&iŠÊÁ%ITŽ*…¥qK; g2Iù Q+G~C¤Æ¯™=ø\ÒÞ/ÓüêcÆËt×UšàßPÙ¤À†ØI’0Œ;Ž-P¬D >V9j•Â̘aÈ&‰b»‘aœ ê¶ðº¿-”‚÷>HÂgØ à's8É•QÿÙ@ó€ïºÃ³EÔu>Ð<{å=ÍTe±ÞÄ”ÅoÎ8 Ú0Œ°P†ê%½gøŽŠ9:´Išk‰óV\‹oØæf endstream endobj 833 0 obj << /Length 225 /Filter /FlateDecode >> stream xÚ•=jÃ@…ǨL³GØ9w Wÿ€Uœ*EHe»tacƒ céh{”=‚KÂã…!$»ìWÌ›7óØç§á˜<äåž6î1÷¤·øÖ;œTè^)÷èREW-éx8mÑMVSÊÐÍè-#ÿŽÕŒ åPrfnA4-ðÍ(ÛÀvµà^0wŽ`˜o¿¡Ž`¹ â0j™Ý êV ²%$Ü(¤”ªhT4"‚Š ®FŸ¸*.ßqþ7þz4O¢ÙSÍh4m«õ¾ZzGïÕ)8¯ðwým endstream endobj 834 0 obj << /Length 291 /Filter /FlateDecode >> stream xÚÑ1jÃ0€a ‚·øÒ jR'YbHS¨‡B;u(™ÚŽZڭؾI®â£ä=˜¼JïIq‰ÁT`ø$/ÿ“V‹«ëµIÍÂ~«ÌäkóšÁ,s»OÝÖýxy‡m É“YæÜÙSHÊ{óõùýÉöáÆdìÌsfÒ=”;#ìÒðkTÑNUç„ÝDö3’8L¤ð4£1è¤裵>+*bôùT)ôÑ?£dÐ C~yE}ˆŽºQÂKZq¾<Šš¥¬8ZµT°b+Ρ1ܼÏ×nÎ N”¿q÷Aªœ(ºF».äÀùgE¤žã…¸$ <†àAéÄñ‚óGÅ.!Ñ šÕP¼Ï/X-Å{Uü°­«£wÅî¿‚ÛáÆÁÊ’ endstream endobj 835 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚ¥ÒÁ ‚@à‘Â\zç ZÑ< f‡ N¢SuìPÔ¹ÍGñ> stream xÚÅ’=NÄ@ …MÉÍ!¾$)Èf«‘–E"Tˆ (‘AKr®’£äS¦XÅØ“Ù,=S$_> stream xÚÅÒ½ Â0ð‡Â-}„Þ˜ìÇV¨ì èä Nêè èl­ÒGpìPz&±M„ˆÐÉ@á—„$åÓ$BgüK|Œ<p8äs9‡3d°-Æ!°%_V¬ðv½Ÿ€eë9ÀrÜèï¡È‘ä°øxë©Ô)Q©TóÅ”ïxÔô²©íe¥4ÈG¤ªzMÄa)[¼"ei=šAikÊëL¹ôM¥!çCÕhÕ×ø.TC×Ê#³¦igÖ^w†£o¶êªî´î¾J„-ã$äŠKH…­We¦N'Q<‹6ð¯?K endstream endobj 838 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚÒ½ Â0à„…[úæžÀ´[' µ‚ÄI'õÑ|£ƒìµÐ´Ö@ໄ\þ.ôû]Ô=ô0âÖƒa»:Ô›=Ä)È%!Èi> 2áéxÞŒçcô@&¸òÐ]Cš ú¶ŒuãŘPŒq‹Á"p3q%ŒÚÑ«áÒ§™ÎÐN°¢€¾ðß(WUyxû¦9ø³8¡ ëÑVÁ6q¯Ã1 D„=¸¢$Ø¡¨•D‰÷/À$…|®±ßd endstream endobj 839 0 obj << /Length 173 /Filter /FlateDecode >> stream xÚ37Ð31R0P0b3S3 …C®B.3rAɹ\Nž\úá f\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O…ÿÐ@€>À`ÿAJ3Bi†z(m¥å¡4?”f‡Ñ 43š+ÍøF3| @3€hf4;”æ‡Òõ`è+¢h˜z„~vö1’HƒiP¤~ ‚ærõä äœÏ endstream endobj 840 0 obj << /Length 300 /Filter /FlateDecode >> stream xÚÍÒ½N„@ðÝP\2 pó ÄX‘œg"…‰Væ*µ4Q£5÷&÷*< °åÆ™`¹øQ{ù±,ìÜÌ¿,OÓsL1Ç“ Ë3Ì/ð)ƒ7(r^L±ž<¾Àª†ä‹’k^†¤¾Á÷ÏgHV·—˜A²Æ‡ Ó Ôk4ü#gÌ«`Id ßKD-XûHT±ú…HžQìd[Ïë;'Ûøë¥n—ü1‰ªÞ“ÕÆi/jœ®óÇ{;_…ã÷ƒZŸÓöX\‹?b.®´ ê¿«QÙ_äËó%þ5Üt×õIÿ¥ôs&µüAÚÉciÇUÝ h’NËN SµÓ¤#þvPHDH‰&‡4MÎÒnL˜Ï•OÝ!“è|&%­Ig]‚«îà ê¤ùr endstream endobj 841 0 obj << /Length 121 /Filter /FlateDecode >> stream xÚ³0×3µT0P0b 3 …C®B.s˜ˆ ’HÎåròäÒW0·äÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(ü‚f ñXƒý? øÿƒaä±þƒ)¬‘VøX¤§:.WO®@.Ö 4n endstream endobj 842 0 obj << /Length 104 /Filter /FlateDecode >> stream xÚ31Ô37R0P0aK3 …C®B.cS ßÄI$çr9yré‡+›ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁlƒü†Q3è¸\=¹¹‹iƒ% endstream endobj 843 0 obj << /Length 172 /Filter /FlateDecode >> stream xÚ35׳0S0P0VÐ5T05R0³PH1ä*ä2± (˜YBd’s¹œ<¹ôÃL,¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ìÿ'ÉÀ "FI)ÿDÚ‘õ?äÿ?8IûP¨²þCýÃþàƌÿ?0ðÿaÿØ ÌÿÿÿÚT”d`à 0p¹zrr endstream endobj 844 0 obj << /Length 290 /Filter /FlateDecode >> stream xÚÒ=N…@ð%[l2 G`O h„ŽäùL¤0ÑÊÂX©¥…F[àh…#PRlwgvÆö‘@~ËÇvvéÚ‹¶ñÏîÒ_wþ­Oh»8>¤azðúÇê'ßvPßÅ»P÷þûëçêãÃo >ùçóÃÉceõF4ª‚ˆBHn¥ú, !QiADõITŸÄ!I•Þ›ô=ܲ •EÉs¸g•ˆY}/+̳ òLq+qa­N´XäŽp¶\$F¨ÿkÚU¨ý¢¬_¥*©KÖÙ¡¬½UqO,Ý-ê‰4©¨§,Ùiê‰Tª¨§¬Uö<áÿ Šÿ¦x ç nx„?¡«ÿº endstream endobj 845 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ33×36T0P0b3#3 …C®B.Ss ßÄI$çr9yré‡+˜šsé{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(ü‚ „hû £4š½?Í£ðÓò8h{4ºþ¡¡43”f‡ÒòPºB3ÿÿŽ×ÿÿÿ¤¹\=¹¹¯½¢a endstream endobj 846 0 obj << /Length 278 /Filter /FlateDecode >> stream xÚÓMJÄ0Àñ”. o“ H›˜dŽÕÂ8‚]ãÊ…ÌjtéBQ讽‰WéM캜Å0ϼøW:…Ðþ(üyÄšüt–+£Îܲf¦òsõhás·aˆt²}†eú^-æ oÜ.èêV½½¾?^®¯”½RV™ T+…xþi[Dü2hé; Ê_Ð.°#ÄŸ ì ÉGˆf È,D¹#¤ ²½ð¯ H_W3H|ÝÀ ¦ ¨gQPÜMAP]Òr :)8P]Ê‚‚ŠiP]Í‚ê®.êY¸ ¸cá‚’ö4ƒ<Ê]:‚l_Œ@êcà0‚˜æÀÂÏŽ… áðáù»%Ãåœü®+¸ƒ/]zœ endstream endobj 847 0 obj << /Length 277 /Filter /FlateDecode >> stream xÚmÒ1N„PÆñ!$ÓpæÉ*l¢!Y×D ­,6Vji¡Ñd;<Úe`Iaö93o,(H~<Âÿ+ mÎÎ×TÑŠ¯vE-½ÔøŽœUr+žßpÓcùHÍË[>Ų¿£Ï¯W,7÷×Tc¹¥]MÕö[ !@‰õí:,è]øáW`¬Ñt~]'Óå¬!LêdDUHZ•KZ•i:j4¥®DGD i•¦Uš6L…KGT:¢Ò´JÓ*M›Â¤Á%#Q’Ž’t”¤'¦Ô%#Q2bâ´‰Ó&N»Ž¦ÜÅ#&N›8mâ´+L\úÉT…+we®tA‰ f ®ÎU,(we#Ä¿RWâ‚Yû›ðXMÑ× endstream endobj 848 0 obj << /Length 286 /Filter /FlateDecode >> stream xÚ½’±NÄ0 †sb¨äå!~èU ë1U:‰H01 ›€‘sîÑú(}„Žª;¶RÐ!F:$_þØŽk{sqVã ×xZa½Áõ%>WðuÅâ k»yz…m åÖ”7,CÙÞâÇûç ”Û»+du‡ì³‡v‡Î¹‚:—>¢˜ö‚H%Ï0„èhâ}ÁGOÉäàNÄhI¢öl+÷­›Ñé"‡$§>ªx$O‰‘Aâ9Ñ3Hà:ƒ7¼¦ICc0C0˜Â” üdÿæ4rªGðËZƹ3h醥AŸ¡°:wß*¯½8,´;$Á¥qQRrº¤WEö¤½g‡Ž½{ !“Љ̳A:>6@ ÃøcòhÙ°Áu ÷ðž¤ö} endstream endobj 849 0 obj << /Length 185 /Filter /FlateDecode >> stream xÚ37Ó35V0PasC3 …C®B.3s ßÄI$çr9yré‡+˜™sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒ„ñÆøcüo€100ÈUòƒŒÿ@ õ  ûPˆ3øúÑ v,ŒÔf [Í=èn†ûæ/¸O¡~0”ñÆ85 †)šˆcp¹zrrÚõÏ\ endstream endobj 850 0 obj << /Length 305 /Filter /FlateDecode >> stream xÚm‘½JÄP…OØ"p›¼€yÍf‰‘aa]Á‚Vb¥–Šv É£åQò)#\î83w‰.x›Ìï9“zu¶ªhI5–t^S½¦—Ò½»j-Á%]2Ïon۸⪵+n$ìŠæ–>?¾^]±½»¢Ò;z,iùäš<àH9àØ0w{‰1‰àÛcÁ]Ω<² h=òQŠ=6 zh¾,ÝŒ$üûýd˜ˆà1bŠðÐ׆«ا¨#X«êéÉA}Éëă¼ÞiMËÖ©¥S¬Ñ-d§ÚpíAÜiÈÌ$ r¢ñÉ0cúðGÖÝ‘»Ò"Øyäž*\ެŠå'¨ªÍ5 ‰Ðš?ŸÛ)¦ÔœhVVQ¥»nܽû÷ó× endstream endobj 851 0 obj << /Length 162 /Filter /FlateDecode >> stream xÚ37׳4T0P0bs3s…C®B.3K ßÄI$çr9yré‡+˜Yré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(Øÿ‡€D1þ1ðÿo`þÿ þˆÁ`ÿ¡þ˜!ÿ¡žÌ`G0ê æ5#F„Á€ñÊøñʨ †Áe0Œ2¨É`'â\®ž\\TÒË. endstream endobj 852 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚí’= Â@…G,Óä™ è&"ù©þ€)­,ÄJ--mMŽæQ> stream xÚнJÄ@Àñ )Ûän^@“øqäš œ'˜BÐê ±RK E»ã.÷f‘{‘tצÜ"dœÙÙUCPœÀò#»,6?;>ŸA 'p”A~ Ó3ý¢óø›ÎdçáY/J¬ OurE¿uR^ÃÛëû“N7éd w¤÷º\Ò(¥Pæ?RE¯x:¥ ôšˆ «"¤XÔ²êBR$jX´¨ˆ–PT³èˆŠI¨b™&|=v,åU°¶¬¹§nX6zm…ñY‰6^çs²D‡VÍÉý­ÈŠ£9^[q>'K´M¦T#É6ºQôÜ©ÿ¡ˆò×N(ÉöÍ×Î)Æ]ëõñ¥½S„ûÆëàâ¡öB§±ú] Q´íÇ*º¿41cÅíXQ3”¾,õ­þhñÀî endstream endobj 854 0 obj << /Length 378 /Filter /FlateDecode >> stream xÚÓÁNƒ@à!HöÂÀ¾€Ò5Z5!%©5‘ƒI=y0žÔ£&áÑx#Â:3»’/d¾¿-íþ”:;>Wr!Oä‘’JÊå…|VâM(EñB./ÍkO¯bŠèߤDtƒ¹ˆÒ[ùñþù"¢õöJbº‘ø¡G‘n¤Öºƒ¯8ýW·tx@NC¢­8Y™«ÀkccŸUÛØ×%€SÛØcUS•$œÜÊÆFýðS¾Æûy(wPAâ¯Áßá£RÀ‚©pXi¨V@}ôjH-—DqL ³jymVFyK«ÑÅV/ŠUÒ5¤¬/J/ÍjŒÂý¿{HÃþLe·©ìÅ‹2+Wó™‹ÃrøAÑ0' ' ¾þ">5×"®Sq'¾<ú7¨ endstream endobj 855 0 obj << /Length 322 /Filter /FlateDecode >> stream xÚ’»NÄ0E'Ji‚ý$ᵡ²´,) ¢@T@I‚6 âÇ"ñ#ÛÑn¹…Å0?”r‹DǶâ£{'ÝéÑÙ…iÌ ?ݱ9ïÌs‹o¸êxÝø¥?xzÅuõ½YuX_ó.Öýùxÿ|Áz}{iZ¬7æ¡5Í#ö3Ñ\òk:”@Ñ Ø@å©Ü ñ»òTŸT¼95'ÒЀ‰ÉX¦!ÒNHÓ\bÈ„D&:QˆNb‰È„‚Ìë‚ÂëÆH–†L.’¦}$µ ]¤*S™O‹¥[$]Òå½Mé šÓ}‰*¢m¤ß¤S?I¢¿Ù¯¤³Y7ÀÉ%1—gƒŽËÓAÂåEâòTÐqy1—WâòbN›ÓÙœnÈäRN™”èdRÚ“LJt2)Ñɤ¼Ž|Xÿ7¹C ¯z¼Ãaƒðh endstream endobj 856 0 obj << /Length 251 /Filter /FlateDecode >> stream xÚåÒ±NÃ0€á‹2Dº%{œEfŠÔ‰ H01 &ÊØ¡Ö&VÞ$}ƒJ d¨zÜù éØD±¾ÄŽ)Š¿<›\SIçrù ºò´¨p…¾$=åV'^–8mÐ=’/ÑÝÊStͽ¿}¼¢›ÞϨB7§§ŠÊglæÄrt-ó©‚Z°(x#H†cåÜ‹Ò@Æ2@Ö«†¨4(—Å ËPtªCÕº{Ë2¬M]Të[!§1U¥aÍZXc–¥Y ‡XÈ Ù^›$7jo*øs0å¼ýÓ×ΔñwoJ™GmL Û‡ÓÜ‘" =üªþŠ?ԩ›ðœ<ÃI endstream endobj 857 0 obj << /Length 232 /Filter /FlateDecode >> stream xÚ}ϽNÃ0ð«J¡l¬ü¹³;Ta?ùìûpÛœ7k©äBÎjiÑÃkÍïÜVb»¹Ì7/;Þô¥­8Üj˜C'Ÿ_o6÷×RsØÊS-Õ3÷[¡&Òå±0’Æ`Q·Ð0‘|T*õM *pŠÓŒ_¬°·ÃÅ2ô $ŠL‡o1ÔJc4|îÐåÝœŽä~82ý;á eSz™ñéºÒ)<Æ8`¯ÍŠN9y{ƒÑ2Êhà›žøål¡— endstream endobj 858 0 obj << /Length 229 /Filter /FlateDecode >> stream xÚÅ‘; Â@†7¤¦É2ÐM4ñÑ(øSZYˆ•ZZ(Ú ñhà̶Ü"8ÎÆP+q›æ±óÿ3Íz­ ‡ ¬ú¶±ÙÁµ;MÐÃV‘Ym¡œc€sd4ÁÃþ¸ÙŸÐ9Ä…Þ¢!Š8üˆ¾Â~Âúƒè̸¥Œ+‘fÜ’^Æ áÜke˜ÄÙ"eš,®”æŸˆÕ tŽÞGd?ÀË„bú›$UÊ5â“ÒŠflì$*lóÞÍMgnó ´C¦JÙæhVÊ·3Ë®FÌàiÔp endstream endobj 859 0 obj << /Length 214 /Filter /FlateDecode >> stream xÚ­1 Â@E'l˜&GÈ\@7‘E±1#˜BÐÊB¬ÔÒBQ°’£í‘R¦gEì…áv>ÿ¯™'SŠÈÐ &3!3¦cŒ4#£Nq›ÃÓõ–ÌõRdÔùŠn×û uºžSŒ:£]LÑóŒ’> stream xÚÅÐ1 Â0à”…·äyдÒ*N­`A'qRGEçx¯ä ¼‚7бCéó=q(8‰òÁ ÿŸv«ÙŠ1Ä&]lwqÁ†Øy,ÖÐËÁN1‰Áy 6án»_íûÍpa8‡•‚&:2)Ñ™¡BztòŸÊU™«ÇUN­ËÇ+æIZÔà^Ü>¡àj©‹$qÍ©ÂÆIMîMRÚ'*ùmseÿ c¨ÒL@… ÜI 9Làwn¶i endstream endobj 861 0 obj << /Length 226 /Filter /FlateDecode >> stream xÚu=nÂ@…gåb¥i|Ï’eÅÒYâGŠ‹H¡¢@T’Djûh>а¥ äÉÛX ÉŸVï½yšyñÏÞËD¦òä%¼J˜ÉÁó™C€8‘0Ï/*v[ ÝdvÕ»\/_Gv‹¥xv+Ù¡hÏÕJˆÊžˆ2Õ†(Wí ¨F¢ºO†¶öFF›l@²Ä&¿%`Ý}b —ÝÈzdüeL,¢>2½¿Ýÿ°~dgygL[41Ƕ¦³Š» ÚÖhKy“êJ BaûsµQø óºâ îDŠ endstream endobj 862 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚ36Ñ32V0Pacs…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ700ðÿÀÀPÿÿãÿÿ?˜ÿ÷ÿaàÿÇÿAþ<ø$ìADýÁÿ‡áÿ0ÁüH0 ¤ÿA6b#È4oˆúÿ@ÁåêÉÈèü®  endstream endobj 863 0 obj << /Length 281 /Filter /FlateDecode >> stream xÚ•‘=NÄ0…ÚÂ’!sH›´––E"Tˆ ()@Ðß`¯ä£ä)·ˆ<ÌØ‹Å$Å'ÏÏ{ÏIן5-5tA§ç-ukZwôÜÚ7Û5¤oßZO¯v3ØúžºÆÖ×R·õpCïŸ/¶ÞÜ^Rkë-=ˆÔ£¶ð„/ÀqZq€gÞ XŸxÂqdWŒjï£Ip‹nIU¨ì¤iÿÀ+ÂÿñW%KK"5²-CiÖKìŒ #;–A˜ 58©E,˜ æ½k΢SvàYlK³ S^`‰%*#ÃGÝÅ4dP€ãã”ɲ€1ê:¼^.ei³À¥üiþ‘C–¨žÌ%ý>+éÁ^ öÎ~ÝèÈñ endstream endobj 864 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚ33Ò32Q0Pa3 ²TH1ä*ä25òÁ\Dr.—“'—~¸‚©)—¾P”KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE¡þüÿOb†PŒF±ÿSöÿ@Ôÿÿ€ÔÁÿÿ©ãìÿ©ó ò ê>ÿ? uBýP?Øÿ©(ÔlÔ¡Dýÿÿ¿ùÿÿø(.WO®@.Jå×m endstream endobj 865 0 obj << /Length 131 /Filter /FlateDecode >> stream xÚ36Ô34R0P0b#Ks…C®B.#ßÄ1’s¹œ<¹ôÃŒL¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. 5 Œÿ˜ÿ7°ÿ?Düÿ #ˆ P¨¨’¨?Pÿ1ÿ?ÀH{ôp¹zrrÙðD endstream endobj 866 0 obj << /Length 186 /Filter /FlateDecode >> stream xÚÕ¿‚@ ‡kHºÜ#ÐÀ;#q"AL¼ÁD'㤎áÑx‘Pïü·°¸ÚäKš~¿m<똅S µ"P¢èácmÇŠf_w8cfPn)Ö(—V 4+º]ï'”ÙzNÊœv©=šœ¼@´Aö/ òq.çònï×1x<„Åÿ‚Òç´ò¹¨}æÆ!ú77AÇuÐuÚ¤•í˜Kñ<Ó¾‹+À…Á >ÙÖƒ endstream endobj 867 0 obj << /Length 220 /Filter /FlateDecode >> stream xÚÅϱnÂ0à  H·ärO€“¢´bB*‘©L ˆ‰22´*+ö£¥êÀc¾c"û¿… F,YŸÏ²ÿ³‹A/áŒû~oü:àÏœ¾¨uʰXoiT’YpÑ'3õ»dÊÿ|ï6dFcÎÉLx™s¶¢r‘­"?D+§c¥~DRãdZ¡ÞÛ+-ˆЭARÔ«.à·Z”£§T7œ™ÿrBŠ ‘³Ê°U. (]Ÿ«],ᮣD> 4À¶À§ù®±Hsz/iNW^`ص endstream endobj 868 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ36Ô34R0P0bc3K…C®B.#S ÌI$çr9yré‡+™ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ê0üÿ‰™˜qàÿÿÿ7 c.WO®@.„S—œ endstream endobj 869 0 obj << /Length 209 /Filter /FlateDecode >> stream xÚíÑ? ÂP ðˆC!Ë;Bs_ëZA,T;:9ˆ“::( n>'Go qèQz„ŽJcªƒ¸îß—dûÚZ£E5eÚuj¶héâ}O²SÆò°Xc¡ž’ï¡Êu4¢Ýv¿BŽ{ä¢îÓÌ%gŽQŸàh¬@åÌ&àŽlJ2§æDxbΪ…çÔÎUdÂK¬ ÛØ9TùŠ»`Pá+XÜUò.<¼˜ÉS*ñ“©0y1Æß ÍŸoò³–^Š_ˆƒ'øøïü# endstream endobj 870 0 obj << /Length 162 /Filter /FlateDecode >> stream xÚ33Ò32Q0Pa3 eªbÈUÈej 䃹 ‰ä\.'O.ýpSS.} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹C}û?†ÿÿìÿ7€¨ÿÿ©Æÿÿ©öö€Tƒüæÿóøÿ10þŸ¡ö@¨ ìÿÔê6êÀP¢þÿÿßüÿÿ?|—«'W ã[« endstream endobj 871 0 obj << /Length 213 /Filter /FlateDecode >> stream xÚ¥1 ÂP †#B–¡¹€¾[¥S¡Vð ‚N⤎ŠÎõh=JбC1&¶ÕE\|>øóó’?ádäùäј†>…c &tðñŒA$¢GÁ´éìO˜X4 "4 ‘ÑØ%]/·#šd5#MJ[ùh‡6%·y=æ\0`..³ªYå°€óßAK<ý@\À@Q‚#6·§-WQwˆu©;Sðwð ÷?ñkB·KƒnÏú•¾ÍÐ&jÑ×´…„–ìùû1³´Áa®>7k.ˆs‹k|]Åf endstream endobj 872 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAàY,„i|çtïôN´Œ‚Wbe!V&eŠˆÖç£-ø>B|„-¯Xÿ•D„ÄT±X>ØÙeçŸíuÚLéJ+HÞ—,—×”?8»‰ô²¯ÒêGÛ¹äÛ)öÙϲYoߨŽ^ž$e;–E*É’‹±P鑪SݽêT+ðé†(5OTÓ@u%ƒBMwF=p§±ŒºoHý-euŸaø~ÏÿììÒnlÞ]£Tȇ`1æ)†6AâÆ¯bXiú DAãŸü O žñ¥ÜÆ endstream endobj 873 0 obj << /Length 237 /Filter /FlateDecode >> stream xڵѽNÃ0ð‹2Dº¥o@îÀ1²‘²©-`b¨˜€‘¡¬8oÀ+õ ú yÊV‰ÊÇ?0¡N0X?éîlßÙ¾<±§Rˆ“c[Š/Åyy°¼dï-äÌ©û'žÖlnÅ;6—ˆ³©¯äyõòÈfz=Ëf. +Å×s!ªZ:"JuOçDUzELµº›´‘mÓˆŠu2mè3¢(€ˆâH9Àªö? QízÂoèöï îûni`l7šGÉ€vc6‰C¿#¯Û|‚ê[·Ic7qЇÖ=ý™ÿD¦ø˜ðEÍ7ü\ͱ! endstream endobj 874 0 obj << /Length 161 /Filter /FlateDecode >> stream xÚ31Õ37U0P0bcS…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êêþÿoüÿàÿÿæÿþÿïÿÿHôÿùÿ¾ü?æÿûäÿ1þß"~À‰`‚ÿãÿì?€ã ÁÀ€L 7ñÿ?Ðbl—«'W n endstream endobj 875 0 obj << /Length 223 /Filter /FlateDecode >> stream xÚE1NÄ@ E?šb%79Âø0;Úì"ª‘–E"Tˆ (·AKÜq­%GH™"б´4o4ßßþv]_ä+^sÍç™k{wüšé6[í{¹T^Ž´o(=òfKéÖdJÍ~|½QÚß_s¦tà§ÌëgjŒ8êU•ʇ R:EZ Ê·cªV¢ÿG@­‚V‡•ŠjçU'Øø„3r¸Ø¹Ó–½µ—£å:ªÓ ¾Fg ñ¾©u·Ð1Ìv¥Mª#†bj¿2;Ý4ô@¿* endstream endobj 876 0 obj << /Length 173 /Filter /FlateDecode >> stream xÚ31Ö35S0P0RÐ5T0¶P03VH1ä*ä26 (˜™@d’s¹œ<¹ôÃŒM¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. Œ°ÌXv8Á'äá„=ˆ¨ÿ3ˆàÿÿÿÃ,X  wˆ'€þüÿùC=„`?À`ÿƒ¿Aþ<Ø7@ïÿÿ ¡ÿ? ærõä ä ,t endstream endobj 877 0 obj << /Length 166 /Filter /FlateDecode >> stream xÚÕÊ+Â@ài*6Ó#0€í6ÝÚ&¥$¬ … (ŠD@@/G[Ç5ê°8¤Ã‚¨Á£¾ü"e9¥”ÓÐP!Zj îÑZ)%Ÿe³ÃÊ¡^’µ¨§R£v3:N[ÔÕ|LuM+Cé]MàD Ì!æßÄ a9PIÒcУd€/-x>ƒo£;wàê*”Ì!aVBÌÝð7õœ8\à ¦ä¤d endstream endobj 878 0 obj << /Length 216 /Filter /FlateDecode >> stream xÚ}Í=jÃ` `-¾A¬䳋M)˜òõPH§ !SÚ±CC ÉÑ|”Á£'ꫯ¡¸’oþ4J$ëüQ²LÞSþâ<ÜØh‡õ'+v É3v/ز«^e»ùþ`7žO$e7•e*ÉŠ«©¨*…ÚÝ#ÐÑ3‘Q€Æs;Ðþ*ÑØ— ø‰/‚Ô@iàh#2ê+1@îð„[|áiöÆ¡ÙyÚÖ(ÛÆsöÄç“G=‘Ö· ·G¨Ô#¸ô¡î–ʳŠßøà•pH endstream endobj 879 0 obj << /Length 276 /Filter /FlateDecode >> stream xÚÐÍJÃ@ð 9æ’70û&‘ÒXµ‚9zò žl… …¬oè‹ì­×=¦3þwÛR<,û›Øù¸ÌÎg¹ÊÔN1S“‰ZæüÆÅqæB—xyåyÅé£*¦œÞâ•ÓêN}¼®8ß_«œÓ…zÂ7Ï\-”HŸˆèDìHC¥!Ú—%ZCÆ«%‚\Ä:Pm)î(0#µ”tB%ÔSØ@•=ER¥P¤GêéK(†b'$´GWP$d¥9óÒG…òmêæj9h m @¶Mi×^»£Hv:±vP{*ì½jÔÿ1ƒÄËuŒEü!7£è±blEèDna^ÔŸ(ôûö¯n ¾©ø™¶… endstream endobj 880 0 obj << /Length 234 /Filter /FlateDecode >> stream xÚ}±NÃ0†ÿ(C¤[ú¾'¨”±4R[$2 ÁÄ€˜€‘¡lU›GKß$/à Çù¼0Õ²õéì»Oþ››euÅ%ÇÓ\s]ó[E;jj­ËXƇ×Zw䟸©Éßé-ùîž?÷_ïä×®Èoù¹âò…º-‹ü¢•p ÐÀiB1íŒE¸ mQ,GE!ýA‘Ë0)29÷Nò3Dœ¤hœIƒ¤AÒ iþ¡1µ„„Éæô7ºVÎpHšÉ4Y0Ml¾3ÃEˆg¡°²P1€jDßEæK ÛŽé(kЉ endstream endobj 881 0 obj << /Length 267 /Filter /FlateDecode >> stream xÚ}ϽJÄ@àRn“7pî h~˜(Âb`]Á‚Vb¥–ŠB !y´ø&û)Sdw<óƒd„>¸ÃÌ™SŸ¥äRÊq™Ku&ZËsÁo\iLs9Õáèé•× g÷Riή1笹‘÷ÏÎÖ·—Rp¶‘‡BòGn6bŒ¡ØÌÿ™-Ñ‘eFGZ0ý‚Ucc^ÏpGí))€¡$ ·ô)ˆY†€È=ò ÜÆ¯ã—¥[Ç4Yêitìj·uGj†¿ wAlhA´_Bóí“gô6U¹ÊT÷¶2uƒ­Œ¶2H¾–òø’ƒo÷í^î_Ë„>áë>ƈ¯¾ã ø‹ endstream endobj 882 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚm±ŠA †±XH³0ywGAnÁSp‹­,Äê´´PÎÚy4eáJ 1&ñ´20$Ã÷g&{C.¹¯'8FÞT´§Xi_Zk?;7T,9VTÌtJEóÍ¿‡ã–Šñü‹u:á•*kj&D+½áAZÔ7„³3á¤C@.¨Ñ‘?|þ³+­2“3FÈ%½¨JU•ªj=¨p®>i05K¦¾¨™ïΓ©9´€ÜÕàê“¶»öÝ'ß-Æ®øão°Ï½#MZÐ'´}Õ endstream endobj 883 0 obj << /Length 211 /Filter /FlateDecode >> stream xÚÅ‘±‚@ †kLºðôôÀŽ$ˆ‰ &:9'utÐè Æ£ðŒ „Ú£ º¸š\¾Üý½4×ï¢xîäSH³€¢Å]¼c¸”Ч8ÖÊù†iŽæ@áÍFb4ù–ž×Mº[Q€&££4:až@ÒÀ„Yè2×0KT4^ÀÕ´—¢]N/ÇrÚ¡”ŠÊµ¬]¹œÔže£´“vd൅e÷›lÙÿ‹¿ßö5ÑÀÏyÕ€ÚP3jɱÞJY²Q“£U5¬¶æôpãß³ÛÀ endstream endobj 884 0 obj << /Length 126 /Filter /FlateDecode >> stream xÚ35Ó30T0P°b 3S…C®B.c ßÄI$çr9yré‡+[pé{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(000````ò ¢H0ÿö@âÿ,Äáÿ0%#Œzÿÿl—«'W ØšŸ endstream endobj 885 0 obj << /Length 266 /Filter /FlateDecode >> stream xÚmбNÃ0à‹Åöï³Ïãú¢|ïGý¿ýÓÀ/¼Òq¯CýyÜófâîίFî®0ËÝtíß^ߟ¹ÛÜlýÀÝÎߣÌO;O$™ˆ9Á 1!˜rðHõâ°Ðdš…Úˆõ4›f¢&˜ç‚p–B•l9{„ôŸÈÃÕ6©8ù,Ö´Â/õvîK¤qb´ûÒ·í¢+tÍÙŠ%+ ¿N»C7¶É"­EB´8Ñè¤V‹êP Í#R¨I*š‡h~ jÁ:¹Rᕤè[I®ÍÆlÍ`Φü˜þÊ—ßò'‰Ä& endstream endobj 886 0 obj << /Length 258 /Filter /FlateDecode >> stream xÚ…±N…` …{Ã@Òåú $÷g%¹^Ltr0NzGÎðh< ÀÈ@¨=…ãâò íééicu]”RH”«Rb)U”·’?ø­XHU­×w>5œ?É1r~geΛ{ùúü¾p~z¸‘’ó³<›Ñ 7g!Ò‘ˆRUc¦ÚµŠ’R;Q2Q½P:X Ja2m0{´þ£ëûtÆ”yíl[ÀJ8ƒ XÏ í¥-ÖAvH¸xÎiO›zÚM¹Í÷YýSgâ¢ÄV6ë•Óo†¬GÐbìÔùÇÉÆï2ޏ´ÀºC’lÄLñUú‡[ÏŸù]~(ß6üÈ?údµ£ endstream endobj 887 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjÂPà„ ³ärž 7ÁDpI *˜¡ÐNJ'utPÚ-4Ù|-7_ÃÍÕ­…ôæÿmzàÞs/üœ{ÓñCk¤#»Ò‘ŽS]Ų•dbû¨k»‹åFŠRÌ‹&1 {*¦|Ô÷ÝÇZLñ4ÕXÌL_mÌ›”3ulåŽó‡š´Ø]â ðI@B’¨I Ü/àßsÁ„ÌÌÈ'©È¸à€ßsABN–‘jÀ¸à€AOB¾/#ù&-ª¹Çï¿ü'5£o#óRžåŒÔ‘ endstream endobj 888 0 obj << /Length 253 /Filter /FlateDecode >> stream xÚ¥Ð1NÅ0 `?uˆä¥Gx¾¤‘^:éñè€bF¬4G Ç GÈØ¡j°]&`£ª>EIcÿµï;Gy:räõžî>áÎófG}¿žÜ=â~@{M;öœ·Ñôòüú€vyJín¸Ð-2ЀÉL]_~ÔEÕI-jV£¸€8«Yåz&Á? …}—Bæ£Öæs훃$–SéÂhjääMM|wSSYNñ-ðµŸN¿m£²8±®NZôTÜÔ2fé5J÷ü’äD 2ЏMÐrà[μ©Ñ‚΂̿˜51ÿ=ž x…_‚²¶d endstream endobj 889 0 obj << /Length 264 /Filter /FlateDecode >> stream xÚ}пJÄ@ð9®LsoàÎ è&p›6pž` A+ ±RK EëÝGÛGÉ#¤Œîs&åüƒ~Ålvfö õIYI)AŽ+ •ÔAî+~âuÐb)u½?¹{äMËþZÖý¹–Ù·òòüúÀ~sy*û­Üh£[n·B´@""‡^­H1Ñj$—¨éÉeŠÅLЯÓ; tËY½Ñ;su ÓVÈfLæ5*}:˜ñ›…ý;8ÝCD§á­×ëxÏ:H:n2Áæfìfu«Y›ÛÿrÐVÿµùißL=Ý’½züÊ! å´äŽmNû@¢½Hö´ h––ö”‡ø¬å+þy×- endstream endobj 890 0 obj << /Length 214 /Filter /FlateDecode >> stream xÚ¥Ï= Â@à )Óäf. ›@LìÀ‚Vb¥–Š‚…hŽ–£ä)SuvVŒ°qŠv–÷–íF? Ÿ"jÔ )ŠiàØ—¼î™›õ ª…1ª ¯Q%S:N[TƒÙT#ZrÑ “µ@g¬ÄϽi¿¶K±s13Þ´é•»úpa¯bg¶ÔZ¢]ð œ 7S­—‚DA¢ Ñ·å±…ÖݼÖ3fRóáÍ(õZ«¡ý¾t~êþ¡s—Wê/â8Á9>?æŒ endstream endobj 891 0 obj << /Length 290 /Filter /FlateDecode >> stream xÚU±NÄ0D7JÉ?!þH"]ÒZ:‰HPQ * ¤AíHüX>ÅmJ–—Ù=N:š'y¼ž™õ8]öƒëÝè.7nÝË`ÞÍn„Ø»i:Þ<¿™ýlº·MwÙtó­ûüøz5ÝþîÊ ¦;¸G=™ùàˆÂFD53h™W"Ï ),m¦*S]¨NT1Õ™š(WB¿X^lÁöÄxÆM™”E'YÞ¶HB’b3œ-—ªPÃü…?IJqD´¶bmN £¶MʬJÑÆ<K“e›àÑAñzó‘VDlaAD‰ƒ!I„W¶J{Ææ?1߈íx’^¶Ž~ÓM“ü•-ò{ ÊÝ(kÏM;¯Ú†$‚¹žÍ½ù«C¾ endstream endobj 892 0 obj << /Length 265 /Filter /FlateDecode >> stream xÚ?JÅ@Æ'¤X˜foàÎ4 ¼Mx>Á‚Vb¥–ŠvBr´%GH¹Exã7I@E !ü 3Ë|b}VVRJ”ÓJb%u”ÇŠ_x1,¥®×ÍÃ3ï[.ne¹¸Ä˜‹öJÞ^ߟ¸Ø_ŸKÅÅAîpèžÛƒu9=‚AµÇ@u$Ò±™(ÓÞ'Ê•ÜLîhŸŸí7ÌXQcìWv @Ú8®Ô/Nÿ`ú“™¦î3¶1Ì&“šÜBX=Ñc¸¢Ë­fQò:¨Åƒ.rÿ$Âc³1ŒÞÞaÉØ˜VÿÖä@¿r&¸Âã0: ƒôS®ìYùZÛ™Z>´mJÎêç‹–oø3çÕã endstream endobj 597 0 obj << /Type /Font /Subtype /Type3 /Name /F27 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ -6 -25 114 75 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 122 /Widths 893 0 R /Encoding 894 0 R /CharProcs 895 0 R >> endobj 893 0 obj [39.19 39.19 0 0 0 0 0 0 0 0 0 65.35 62.24 0 0 0 0 34.11 56.01 93.35 0 0 87.13 31.12 43.56 43.56 56.01 0 31.12 37.34 31.12 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 31.12 31.12 0 0 0 52.9 0 84.59 79.64 80.91 85.86 73.53 70.42 88.05 87.59 41.72 57.86 87.71 67.31 106.26 87.59 84.13 76.53 0 0 62.24 77.91 86.09 84.59 115.71 84.59 84.59 0 0 0 0 0 0 31.12 54.46 62.24 49.79 62.24 51.11 34.23 56.01 62.24 31.12 34.23 59.12 31.12 93.35 62.24 56.01 62.24 59.12 45.75 44.19 43.56 62.24 59.12 80.91 59.12 59.12 49.79 ] endobj 894 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 27/a27/a28 29/.notdef 33/a33/a34/a35 36/.notdef 38/a38/a39/a40/a41/a42 43/.notdef 44/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59 60/.notdef 63/a63 64/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80 81/.notdef 83/a83/a84/a85/a86/a87/a88/a89 90/.notdef 96/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 895 0 obj << /a16 827 0 R /a17 825 0 R /a27 831 0 R /a28 830 0 R /a33 816 0 R /a34 828 0 R /a35 829 0 R /a38 832 0 R /a39 817 0 R /a40 814 0 R /a41 815 0 R /a42 818 0 R /a44 819 0 R /a45 826 0 R /a46 820 0 R /a47 821 0 R /a48 883 0 R /a49 884 0 R /a50 885 0 R /a51 886 0 R /a52 887 0 R /a53 888 0 R /a54 889 0 R /a55 890 0 R /a56 891 0 R /a57 892 0 R /a58 822 0 R /a59 823 0 R /a63 833 0 R /a65 834 0 R /a66 835 0 R /a67 836 0 R /a68 837 0 R /a69 838 0 R /a70 839 0 R /a71 840 0 R /a72 841 0 R /a73 842 0 R /a74 843 0 R /a75 844 0 R /a76 845 0 R /a77 846 0 R /a78 847 0 R /a79 848 0 R /a80 849 0 R /a83 850 0 R /a84 851 0 R /a85 852 0 R /a86 853 0 R /a87 854 0 R /a88 855 0 R /a89 856 0 R /a96 824 0 R /a97 857 0 R /a98 858 0 R /a99 859 0 R /a100 860 0 R /a101 861 0 R /a102 862 0 R /a103 863 0 R /a104 864 0 R /a105 865 0 R /a106 866 0 R /a107 867 0 R /a108 868 0 R /a109 869 0 R /a110 870 0 R /a111 871 0 R /a112 872 0 R /a113 873 0 R /a114 874 0 R /a115 875 0 R /a116 876 0 R /a117 877 0 R /a118 878 0 R /a119 879 0 R /a120 880 0 R /a121 881 0 R /a122 882 0 R >> endobj 896 0 obj << /Length 96 /Filter /FlateDecode >> stream xÚ3²Ô37T0P0W04S0²T02TH1ä*ä2 (˜B$’s¹œ<¹ôÃÒ\ú ¦\úž¾ %E¥©\úNÎ @A…h ŽX.O…úÿ?€è?}àrõä ä¿Iz endstream endobj 897 0 obj << /Length 198 /Filter /FlateDecode >> stream xÚµ‘½ Â0FS ÑÕÁá¾€¦û“µV°ƒ “ƒ‚: *:ÛGë£ôADýnêÐQ°žå@rÈ IŒÏú!‡†ƒ˜÷>)0Xõ8¶vGJ2Ò+ éÖIgs¾^nÒÉbÂ>é”×8jCYÊ ´•“×ÝU-ëŽj‰Ô@¹Ö}BŒBðPÔ}B)lQ %J¡@œ…8G0¤´–¸R4u ÷e)z•ËïÇþçªk<ÕÝúÑüø¿©O iFKzGÍRv endstream endobj 898 0 obj << /Length 356 /Filter /FlateDecode >> stream xÚ…Ò1KÄ0àW:²äˆÉ8{=Ñžp\á<Á‚N⤎‚ŠB‡Ò+øÇþ‘ˆƒkÇ¥ñ½äÚC­^ í÷’—„¾4Þß›Dr,G9ŠbÇòàHÞFì‘ÅSËø°›»¹g‹”…—2ž²ð'X˜žÉç§—;.ÎeÄÂ¥¼ÂÍ®Yº”€m¥@‚oj0F£¸ÊýÚ«Pv¹‚ 5‡B”£rh€¨·x¤º“WCÓtÊz‚_Ù—îà * ¬ôN\S`¥þ7®©•ø‘%¥Š%(ì…Û$vxH«^UÔ."vx£¶WóS+§–Ï—Tÿ­|å6¶24Nzø¥À S]Ñ* ­×¥Ô»²×±QÁ›Z_‚ÿQ®å}vÓ_ÇlËu·Å¥&¾©$ì¿t*WÂ)AÙ´v.ÔÜi&TÞËýAuÆ=÷gdu‡%Ú7ewlkì$eì íå×" endstream endobj 899 0 obj << /Length 219 /Filter /FlateDecode >> stream xÚUнŠÂ@à]¶X˜"yp7Oà&B¼tþ€)­,ÄJ-…xœ`—¼¯äÜ+ä ÎÒBX³3wf>f¦˜Q6øbйËG)î38Aîf©kÝbw„q fù̼›‚)øûs>€/'˜™â&Ãt åEòæªPš‰>{Zâ; f,óOÈž?B]}tì1LÂU|÷hµ‡¼ª§!´ð‰’€‚©­õ°L+ôƒ^¤Þ¨†Ð=‚ˆ™ˆI æÂTÌB?…KkÙÝ Y +xir§ endstream endobj 900 0 obj << /Length 275 /Filter /FlateDecode >> stream xÚ…ÐÍJÄ0ð顃}ƒí¼€öƒÍ² º‚=îɃxR‚ŠÂÄæÑú(y„{(3itáG&Édfôêd^QAeEÇ-–¤Wt_ªg¥5G Z”áèîQmj•_“Ö*¿à¸ÊëKz}y{PùæêŒx¿¥›’Š[Uo @<âˆ9ufÆ8g׋:&í°ç£ëh€¬FŽ÷ˆOÂ^|I‡ÌòÓNî{Œ§‘?,œ''Oìi%ÉÉõ‘”_ùàMÀü à–?ØK¯ÀÓ´ L Áz¢@;uÙúž3Áå2<ÛŒ+ãÙ¦Œ ÕJfWÄ-ƽ<Ï%5¾Þß’“É uöP›:¯ÕN}°m» endstream endobj 901 0 obj << /Length 270 /Filter /FlateDecode >> stream xÚmѽJÄ@ðÿ±ÅÂÞ˜yÍ— pppž` A+ ±RK EÁBÈ>Z:_#oà–)BÖ™½wáGf6󱩧ł2Ê :)¨:£òœžrójÊ’£UyL=¾˜umÒ;*K“^qܤõ5½¿}<›t}sAü¾¡ûœ²So€qĬ¼=f¼ï–›9fîðùÅ©Ëh€¤FŽ÷PC@s€>ítü©“óh¤G˜[†€ ´Rd‡ÔúÃJÉ " h"ö|š÷<zØŽÙtÄí! Í#ݲsi‘DÚ0$§'x,.$cq/õcÁ÷¢¿­,±Òág J z·ß\ÖæÖü­U endstream endobj 902 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚÍб Â0à”…[úÞ˜V´…ZÁ ‚N⤎ŠÎí£ù(}„ŽJÏK‹ÑÀ@È—„ûá.‰Çé#œòfÌR<Åp…$å{d®æãxLÜa’‚\ñ+HµÆûíq™mƒÌqct•£ð‰tHTý€´#>EP3žßs‹Ò raJ !úÒ!L½Ñv(]p†gÑt.8÷Э xYÔ4}k]FhaZ7¥C|¦¢Ý©üÛxÞS)¨õºÞ‰ZX*ØÂ ¬Sšd endstream endobj 903 0 obj << /Length 155 /Filter /FlateDecode >> stream xÚµÎ?AAð•Wl2#˜ØdKÉó$¶P)D…RA¨9š£8‚òbìóÆóË|3ÍüÐz´8*ãqqïà!ælK,Ýêf!‚™ç+˜´ÀËùzS/§èÀ4¸qh·TQûƒÒy”~1}áÉ „3îÌMP u|˜žðf*¡e´ðz”7"êÈ…`–`_ÂâSt endstream endobj 904 0 obj << /Length 291 /Filter /FlateDecode >> stream xÚ]ÑÁJ„Pà#..œÅøÃÌ}‚Ô(u1 Lä"¨U‹hU-ƒ) \úhΛ½€ÐÆ…x;ç\G-PüëÿŸ(<‰Ou Ïè%œÇú)ÄWŒbZ¼äƒÇÜfèßé(FÿŠvÑÏ®õûÛÇ3úÛ› ¢¿Ó÷¡0ÛipM `L=GgŠ hTà6GÐ xŒŠa, B9Ǫ(A R}a9¡²Ø¬+ð,jX0ï?r¯•@5°dì'´ÛÂÆ¢ƒ„Qp,œÚé!@{F5Á(IÍ”’å€T@‘ÒÀõ£S’ _Ò =ß#¤ÂÏ% HÊŒVè–¿ HΈ^Z™ùƒGöÉ¿Ü (xš\Œ5™/3¼Å_Ë||Á endstream endobj 905 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚeÎ;Â0 ÐT¼ôõ H«*0V* Ñ &ÄŒ ˜Û£õ(=BGÔ`‡O1$ÏN;f2Î2LÐК¤h¦xLá†ó„Sg(JÐ[4ô’NA—+¼]ï'ÐÅz†)è9îRLöPÎQ¬µå°j¥¢Nå-ÑrÄ„TÿžD#ɉ~ –T?Bª¬”„frOMPÕ¨sÐÈ`à;¤vôî)Gÿ/¤O7ºr$òi%±O#É}jIå£$Ö£w{ðÆÚç?°(a/5ÿsR endstream endobj 906 0 obj << /Length 214 /Filter /FlateDecode >> stream xÚUϱjÃ@ `ZîB­'¨ã«S0Òâ¡ÐNB§¤c )-t³ÍâGðè!øz²3HôñKh{~\.hN™ í)'—Ó)Ã+º,ä9Çqs<ã¦Äôƒ\†é>Œ1-_éçû÷ ÓÍÛ …é–áæË-ÏÕÞ±wzð´¶L“Ô 73ˆnb¤. fV÷ c†éF ÓI, —m%‰¦‘¬5µ¤Ò€Ä+I¤¹IbM/1šNb5Ó'ë1UÞó…Wà®Äwüݦpt endstream endobj 907 0 obj << /Length 253 /Filter /FlateDecode >> stream xÚUÐAJ1à˜ÅÀ[4ç]@3SH[A¨œ… +âJ] Uº›£ÍQz„Yº(/É(™EøÂ !ÿŸY}:ŸrÅõŒO¦,[3ççšÞÈ™VlΆ£§WZ¶¤ïÙÒ×2'ÝÞðÇûç éåí%פWüPsõHíŠç¬r‡1ØZøµÐ p8áüŸƒ°ø#ól"kdû”ÜÓGvÈR !èPô)JÈ,Ô.¥Š ìRAE&‚Mñ½Ž#G±×˜¡ÞbToYè’=Ð$-¾C0dðLâÊÿ¡´øŠÈm¨.—ÛÒÖçFæüÃ’bðͺjéŽ~)kB endstream endobj 908 0 obj << /Length 275 /Filter /FlateDecode >> stream xÚeѱJÄ@à )¦0/ É>¹È™CÎL!he!Vj)œ¢BH-¾IÀÂÒ”W„¬³3ãA°X¾ewög7ÏŽVÇva—4òS{²²¾`îë…/ýäáצ·6_bzI«˜VWöíõý Óõõ¹Í0ÝØ»Ì.î±ÚXœŒsÿCÃõáЀøAdí1 mdçu¶¢ñÐáHlcµ`˶»­Êm ùìÄ/õ›ÛAôâ$šQÝÍ ÿçî÷Oó>‡jáÄZ&è¾?èJ6lKÎe@<€„!áü…ZCÄn!òϽHodn#iðXŸ©.œä7|pG_Ò¸‘u{w€Þà/:¹wÇ endstream endobj 909 0 obj << /Length 212 /Filter /FlateDecode >> stream xÚMÎ?ŠÂ@ðoH1ðš\@È»€Nbj£àº°)´²+µ´P´ $`‘No°g‰7ñ)S„dgFA›ï/ê÷¢ˆ}q7`Âo:PhŠ>‡Ãgg³§iLjÉaDêG—IÅ¿|:žw¤¦ó/HÍx°¿¦xÆ@@6/ïcGÇÄP‰Âà”¨!×Rˆ^!ª'“ÌâTH3=™â,ÑšÅæ×R˜;÷â…g¹X²Kž%Hs$h%Æ¢uõg·+> stream xÚMÏ¿ŠÂ@Çñ‘-¦Ù70óÞ&a…ÀÀ‚VWˆÕ¥…rWšGË£lgé–[„è¬QsŧùMó¾yK)¦!õêúJp©á1¦Á°¹|îpœ£þ Ô žóŒ:_Ð÷ág‹z¼œP‚zJë„â æS‚ º¶àÄŽÿÔ¬jußkÉÀzçäEª’¥òÌ «¬°Q)Ü]ÑÈx’îÄŽ/ÊÕ¬eQPú»¬xÏÑžc=þrÔ_ÇÁ»°0’%t£ÿÀà,ÇÞ!_‰ endstream endobj 911 0 obj << /Length 186 /Filter /FlateDecode >> stream xÚ]ο ‚PðOîœÅGð¼@]ÿ éb`955DS5¡öfö&>‚ã$»)5üÎð}œÃñü‘Ë6+X8!Cо¡ %j¡•P¦f•¢¶J`Rôò¢Ûþjµ×Ÿæ—­ùZzê FB”!Ì‚ž¥_©ºC4KhEoçM> endstream endobj 912 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚUαN„@àÙPLÃ#0/  ¼æHÎ3‘ÂD+ c¥–íH ± Ó7ðY0¾ˆ@IAXÿÝcCl¾bvæß?;9Î2Id#G©d¹¬Oå!åg^å&²Þ^îŸxW²¾‘UÎúcÖ奼¾¼=²Þ]IÊz/·©$w\î…ˆÔÌGï ~=ÑBç‰Oá \N nk¢m`ˆª`Â\MèðÕd³G :5"ìÀ€šÕ»>ƒfÆâ®g¢ä|w3±ãÇòÞŒT8Ú¦¢º¥ŠLH[e"4ûü 8 ¿Ð6IõÔŸ—|ͬÁkÞ endstream endobj 913 0 obj << /Length 193 /Filter /FlateDecode >> stream xÚmÎ=‚@à!$¯á¼ èòS $Љ&ZY+µ´Ðh²…‘åfx“=%-l,¾f&™LCö9áQÀQÂÑ„)LLès›ý‰¦‰ ‡ ‰…‰IK¾^nGÓÕŒ9oöwTä ”€Ý×pŸ< ÑAZ-¤Ý@:ÒÔh½M¦,ÃÑ™òTYõ(ûÖPà zãõG÷ãߨ IaévíÁU.R8Uk®èÏÍ ZÓ¢ B endstream endobj 914 0 obj << /Length 216 /Filter /FlateDecode >> stream xڕб Â@ Ð!‹? 4? ×Zµ¤­`A'qRGE¡C©~Z?ÅO¨[©&‡á\îA.ärI»ÛêôÐÄf›–ƒ¶ƒÝ>n,؃íÒµ‰N¯Ì­w0 A.ÐvAN(2œâñpÚ‚ÎFh pi¡¹‚0@!D-%ŒŒð\"ùƒ¸ŨÞr"Ë®R\uêŠTÇP\(z>Sa¼¡Ø§#|¡sf’ÌC§¢ÈuªŠLç¯1>|Sþ¶Á$^IÁk,b&â…rŸˆñÕs\ ãæð;ø]ª endstream endobj 915 0 obj << /Length 236 /Filter /FlateDecode >> stream xÚEοJ1ðY¶L“2/ Ù¸{ºÀy‚[Z]!Vz¥…¢ ({ûh_$°¹"¬Î,»ÚüŠI曯^ŸSE º5Žê=:|ÆzÉÓŠÍôôð„›íŽê%Ú+ž£m¯éõåmvssAí–îU÷Øn @ð‰ÉëE2 ÊȨ èž1½JàAE8èƒA‡b„räÈßg|¯FÆí‰Ã„äÌ d¾]¥ 2÷ÑG€d˜÷Æ3úKê–‚ú'Îè‘'BÇ¥„žx`:!s\ÁIŸ²`~zNx /[¼Å_¨TdW endstream endobj 916 0 obj << /Length 229 /Filter /FlateDecode >> stream xÚUϱJÄ@Ð7¤^“ò~@gãfa„ÅuSne!Vj)¬¢`•̧åS"þ@Ê-ÂÆûFaæ0Üa.wª³Óª’™,䤜NžJ~å¹Cˆøü÷æñ…W5Û;™;¶×ˆÙÖ7òþöñÌvu{)%۵ܗ2{àz-” DfJ £HŸGº„"|„Z¥ÑÖ¦ÁçÑԠÛ)ä€ò`ötfTvhÌ"Ã?|@‘×QZ×計VШó@0ã1ØE–Îã×¶-eý¶ƒÒƒ¯nOæ;`ëDŽhI|Uó†´éd" endstream endobj 917 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚ…Í1 Â@ÐR,Lá^@ܹ€nŒ¦¢‚)­,ÄJ-m5âÅâMö)Sq79€3¯øÌ?ŠÃ<æ~ÈQÂq̇.ì6µŸý‰ÒŒô†£€ôžIgK¾]ïGÒéjÊ!éoCv”Í^a JH˸ìçø;%ü¢‡ŽB·‘Xœ[O”ë ÔŽgUð[¥kM•4FF~ŒúêÕxçÊÏ•€ÓìBTð hžÑš~; 9õ endstream endobj 918 0 obj << /Length 248 /Filter /FlateDecode >> stream xÚUαJÄ@àY¶X˜âòr™ÐM.ÞA\8O0… •…X©¥ ¢íeå _ë|“XÙFlR,‰3…m¾â˜ÿ/ʽe4§Ýœög4/é6ÇG,r|ð{¹¹Çe…ö’ŠÚSŽÑVgôüôr‡vy~L9Ú]å”]cµ"Ð-€"ÀŒ4ÉÈ6"ñn"ja ‰g\ô ôê½… ßÃ}abZvL£ºRÈ´WÝ€î¸Wq‘þæÏz=Aè…æ³ã=AF­…Zp2Ǥ>}Ýþ±áÄm¼§ÿ1¾fxÔ‘0Sè!9„¦ƒTxRáþé^ñ endstream endobj 919 0 obj << /Length 172 /Filter /FlateDecode >> stream xÚ}Ì1 Â@…á‹ÀæbæºÙ…è ‚#˜BÐÊB¬ÔRPQH!š£å(9‚eŠÝÙµ¾êð”(E!¨/I )ÒtxA©M )»eÂ8E±!©Q,LF‘.év½QÄ«I m%…;L¿ð>?9›:À^ÖÓj¬šµœŠµ7óœ’ùNÁ‚ÿ÷Ö=¨»Öj •‘Av†G ¹Êç)®ñ ®E‡ endstream endobj 920 0 obj << /Length 266 /Filter /FlateDecode >> stream xÚUÏAJÄ0à?dQÈÂ^`0¹€v:B[¡LaÁ.]¹WêR¨¢ÐU'GËQ2x€‹É¢t|MUÆÕG^Âÿ¿dùéyªæ*W'©Êçê,WO©xÙ‚†t,¦›Ç±ªEr§²…H®h,’úZ½¿}<‹dus¡R‘¬Õ==ˆz­˜Å€È!ò|¯e£2ŽL»Äñ²ä[+1“-ÿ2R•c;“–íë¶2l ›IÓTšõAp©ÝfÒvàî@tc[¥§Ö èÙÿư`æ)ôÏaTzÄCY?›ô£´‰/C ÷EåîPÚÌ5¡„Û&„së~´¡„o eŸôs*ÁP%Äe-nÅ7ã7x` endstream endobj 921 0 obj << /Length 225 /Filter /FlateDecode >> stream xÚUϱjÂPà?ÜáÂâ ˆ9/Pc0$Bj¡;u(ÚŽ…V2H¼à‹åQî#dtí¹É`]¾á¿çÿáÆÉ8ÉxÂ)?DÏxšògD¿GNxšõ/ß4/)|å8¢ðYb Ëo7»/ çëKºä7é¼S¹dÏâ蓺øù@7=æÊbTªEV´žÓŠUш?âI4›öà´õMÔÐâÚç;žØ@ê½A¯êmQSuj#Síêõ}7µ÷ÝÈ~Ô9ìÌÜ`^¹©ÀBË× è©¤ú’tUž endstream endobj 922 0 obj << /Length 190 /Filter /FlateDecode >> stream xÚ=ο ‚PðO„³ÜGð¼@]ÿAµ(˜AAM ÑT Em¢B/foâ#ÜÑA´«BÃßóÀ›;¼â™ËÇþ‚¯.=È÷tè°¿œ6—;Å)É#ûÉ­ŽI¦;~=ß7’ñ~Í.É„O.;gJ Àì+ˆ¯‚92´È =™ ¡¥Y5"¡ÙÕ$*GE1À_ßkÐMŒAÛŽÌfb)­n!ê ¢Êa—!"„ºt¨5¾}€6)è•GÏ endstream endobj 923 0 obj << /Length 238 /Filter /FlateDecode >> stream xÚ]Ï¿NÃ0ð/Êé!÷Òš?"R)èÄ€˜ZF¤‚@ê€j?šyó=D ç¤$¶ôî|§Ïjr¢ŸÊ=.ÏYMxzÁ«’ÞH•]õlºo-_iVSñȪ¤âNêTÔ÷üñþùBÅìᆥ:ç'z¦zÎÈLfÜU¸ò›/à2¸k`£­¸Ö&[ˆ~‡ÜÀõ6bòÓùÝ‘Tƒ~4óЃ{ÚÎh{“FRýD“öJÎÊÈ*+o£Ft:‡^˶ñCØÆf\8ØŒ&‡†Ñôи%F–Ó¶öŸt[Ó‚~JlÓ endstream endobj 924 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚUÍ1 Â0à_:ÿ`/PìMC”v(j3:9ˆ“: U:ˆÍÑz”¡£ƒˆIÄ!Ë7¼ï‰é8âQL#NN"¦#Ç ¡ÃˆDòkgÌ%²- l©cdrE·ëý„,_ω#+h§‡ö( ò¯¿ ß0¬R‚GéC:k3•d¦V™ª4PÖ`  {@û1¼ÿ€¡gy9x–Ρoi|KãZ”Cf1.$nð ñÿ> stream xÚ=ͱjÂ`à2î’7hî èŸäÇ6]ˆ fìÔ¡tÒŽ…*:H|±é(V;Qû¬›X¶’¤\FjÓÛeý%E)æM“TÌ‚k1åRvûO1Åjª±˜™¾Ç}H9S Ü Á¹B†4øÅ7Z4^ë7^󝿬üð;r<×ÿŽÌȇ0È)¤ Êèz§»!ËB–e,; eá£__ß=Fʼ”W¹|/Hd endstream endobj 926 0 obj << /Length 178 /Filter /FlateDecode >> stream xÚ]Ì1 Â@Ð )Óì„Ìt“MBÄ…Á-­,ÄJ-+³GËQr„”Bt ñóªÿá«|(¢œú1%Š2EûϨR.#Ê’ï²;baP®I¥(ç\£4 º^n”ÅrJ1Ê’61E[4%o!¨Aü™u4§x@ÕuŒ/øòØÓñYë¬qDówßûk;Ôp×pÒÐjh´WOü: ¬ðm 83¸Â7Ä¡B endstream endobj 927 0 obj << /Length 216 /Filter /FlateDecode >> stream xÚ5É1JÄ@†áo˜"ð;ÉMB¢™……uS,he!Vj)¬¢°•›x¥9ÊaÊ)Bp’ÍS¼oÓ\^]sÉ-_TÜ´\·üZÑÕëK®õù¼¼Ó¶£â‘ë5w1SÑíùëóûŠíý WTìø©âò™º##„M~!ÝJõ‰Ë&Ò ­zåt9FìaÆô¹õ¹u‘Þ"øYa€áÌ b&ÄõÏ9ã1¬ÄM¤‘J·°‘^-}´ð‰?Ÿ°9:o,”U ÛŽè;¢VF endstream endobj 928 0 obj << /Length 205 /Filter /FlateDecode >> stream xÚUÍ1jÃ@Ð/¶L!]ÀXsxµ^ƒ¶¬"W.B*'¥Á v+éh:ÊaKÆxl%4þ†oÝlÎ9üdxaØüa苬•2gëÆËþ@ËšôŽ­%½‘štý§ïó'éåë3Ò+~3œ¿S½b$PTˆ§h»$&wÊ;.CÕ¹ Yw¬þÐ ¡A ß †¿ ¸HD†‘)Ô€ TøC‰8À!ö#Çÿø_¢^P=”W¼ÉDC)´ƒö­kÚÒ V²Aš endstream endobj 929 0 obj << /Length 238 /Filter /FlateDecode >> stream xÚUϱJÄ@à?l±0Åí ·óš,GHŠ`à<Á‚Vb¥–Â) r—GÛGÙGØ2ENÜS8¦ø`vfv¦,Ï]ÅW|測y]ñ³£7* žc]§—§WÚt”ßsYP~-iÊ»þxÿ|¡|s{ÉŽò-?8.©Û2" 5Bõ¶×+hßú……–‰&Q[Xo}ÝÂöÆïfô?´BÜÏôAqaú#ÐGØÏ L0P3 ¨(E§È>QZ–ÐAj4‰ú„¯ÄNq1 ‚2!šQydqõ-«`l.ŒÜÝvL¿@WÝÑaÔ endstream endobj 930 0 obj << /Length 243 /Filter /FlateDecode >> stream xÚUпJÄ@ð/l˜Â¼€¸óšÄäHŠƒƒóSge!Vj)DÑN.>Z:_ca;S„à·Q9m~ ³ó)³“âT3­ô8¯´,´¨ô>—')Œfº(¾îeÝHz­ÅBÒ Æ%m.õåùõAÒõöLsI7z“kv+ÍFá˜QÁ¸‹Ø–Ú"qõ Ißîé`{¿ƒ}w3ÁˆÕ ¢™á›fÀÆÿaBì™»=ÑÌð3ã ÓKˆ·žM;tŸÄ~®è±='sŸ.ìC˜Ë±ä |G ew´†UuÌ‚%s‘LáárÞÈ•|–ob3 endstream endobj 931 0 obj << /Length 176 /Filter /FlateDecode >> stream xÚmÎ1 Â@Ð iô™¸ILÀTÁ-­,ÄJ-mMŽ–x…ÁÒB\'î6æÿæO“„BÊØ(£4¥]„'Œ»v±;¶,4ªÅª·¨ôœ.çëU±˜P„ª¤uDáuI0vŽìà±ó[€>Ë™iÁ7 äw40`ÔV.Àªœ›óv^–'žVOȬh/|5V þÌW5cjSKü.[HG endstream endobj 932 0 obj << /Length 277 /Filter /FlateDecode >> stream xÚ-±JÄ@„gI±°…y¹ü/ Iî/Åaà<Á‚V"¨¥E!Åá­øbkåkì#l™â¸ÜÿG‹ýŠfvþbzZ”ÑœN¦TœQYÒSn^ͬb1£rþç<¾˜ecÒ;šU&½bÙ¤Í5½¿}<›tysA¹IWtŸSö`šQì›ØA;(yD– Cõ˜Ž‹5£jÕ]ÆhAàG´ÑNùuÔ+7 œîÕÓA}Ù8¨o{õ‹Ä©=j‡5ÿ‹-?È nÿ_¥½L³s'æ¨;†ŒÅ¹è‡›ãt†¡-"s—=âŒHfÁ…¨{.Üî]=ð1#衇WC€Çà `.skR@eÝ endstream endobj 933 0 obj << /Length 247 /Filter /FlateDecode >> stream xÚmÏÁJÃ@à?ì!0—¼A;/ IÛ„æPjsôäA„‚zª(ô 5¶²¾Á‚—Bë?Ôƒ‡ùv‡™ËéqYj¡µMµœkUéýDždVó²Ðj>¼Ü=ʲ‘üZgµäç¼–¼¹Ð—ç×É——§:‘|¥7-n¥Y)àzãyK=]€óIDÚ’ è02F ôØz² Æ:é×I‡ðKp>¼‹ølÉ;ÒÀ'Œ[rÂÂŽÅ^¸C4¼a p7é¬ï›þ‡ý¿ììy0Ï_ø·Þv„4’,ž0ÊÆ¢l-ÊÂöŒØÔ¢$¶Kι’/ÕRcë endstream endobj 934 0 obj << /Length 242 /Filter /FlateDecode >> stream xÚeÏÁjÂ@àÉ!0—¼@ÑyvMˆ…¢`ÌA°'ÒSÛc¡-<ˆúby”ÜzMo9„lgÌÁJö[˜]fç7qÌ!ßòõ€ã”“„Ÿ#z§a*Å“´»yz¥iFvÍÔìBÊd³%~l_ÈNW÷‘ñ&âð‘²ÃFðsÔð+¿‚ï\©äœƒÐ*µR½+ºÿp§Œ.Ù)ogŽÂ6øþ*ÖTÿjÈ)”h` ìarAÖá’ö?æDƒžrìð8xuG+iN‘ iJ!Pú…’£ÂÂAm€½‘|cy‹¾ÎHníÐ<£úÔÐZˆ endstream endobj 935 0 obj << /Length 236 /Filter /FlateDecode >> stream xÚ]ϽjÃ0ð·èB|/ÐÊvlJ 4¨‡@;uÚŽZZÈ¿A_ÉoA =+'7rIAüþÜ Ý¡,½Ì2Š)Ié"¥œONO ¾âhÌݘò«ÓÕã Î 4÷4£¹á>šbEïoÏhf·sJÐ,hPü€Å‚Ànaß- ÄO ±w°‘îD-V5JZU˯JW•ºWFšß1×À9Î p2[¨Ó4Œàâiª 莒‰> /FirstChar 30 /LastChar 121 /Widths 936 0 R /Encoding 937 0 R /CharProcs 938 0 R >> endobj 936 0 obj [73.21 0 0 0 0 67.91 0 0 0 0 0 0 0 0 0 29.71 0 0 0 42.44 42.44 42.44 0 42.44 0 42.44 0 0 0 0 0 0 0 0 0 61.72 0 59.42 0 0 0 64.24 61.72 32.02 0 0 0 0 61.72 0 56.33 0 0 0 59.42 61.72 0 0 61.72 0 0 0 0 0 0 0 0 42.44 38.2 38.2 42.44 38.2 25.46 38.2 42.44 25.46 0 38.2 21.22 67.91 46.68 42.44 42.44 0 35.01 33.95 27.59 44.56 38.2 55.17 0 40.32 ] endobj 937 0 obj << /Type /Encoding /Differences [30/a30 31/.notdef 35/a35 36/.notdef 45/a45 46/.notdef 49/a49/a50/a51 52/.notdef 53/a53 54/.notdef 55/a55 56/.notdef 65/a65 66/.notdef 67/a67 68/.notdef 71/a71/a72/a73 74/.notdef 78/a78 79/.notdef 80/a80 81/.notdef 84/a84/a85 86/.notdef 88/a88 89/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119 120/.notdef 121/a121] >> endobj 938 0 obj << /a30 898 0 R /a35 897 0 R /a45 896 0 R /a49 931 0 R /a50 932 0 R /a51 933 0 R /a53 934 0 R /a55 935 0 R /a65 899 0 R /a67 900 0 R /a71 901 0 R /a72 902 0 R /a73 903 0 R /a78 904 0 R /a80 905 0 R /a84 906 0 R /a85 907 0 R /a88 908 0 R /a97 909 0 R /a98 910 0 R /a99 911 0 R /a100 912 0 R /a101 913 0 R /a102 914 0 R /a103 915 0 R /a104 916 0 R /a105 917 0 R /a107 918 0 R /a108 919 0 R /a109 920 0 R /a110 921 0 R /a111 922 0 R /a112 923 0 R /a114 924 0 R /a115 925 0 R /a116 926 0 R /a117 927 0 R /a118 928 0 R /a119 929 0 R /a121 930 0 R >> endobj 939 0 obj [777.8 500 777.8] endobj 940 0 obj [500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500] endobj 941 0 obj << /Length 102 /Filter /FlateDecode >> stream xÚ32Ó35V0P0b#CCc…C®B.C˜ˆ ’HÎåròäÒò¹ô=À¤§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ƒýƒúõþÿ€AÏþ—«'W !‘$‡ endstream endobj 942 0 obj << /Length 111 /Filter /FlateDecode >> stream xÚ32Ó35V0P0b#Ccs…C®B.C˜ˆ ’HÎåròäÒW04æÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(ð7Ø?¨ÿPÿáÿñìð70`¸Õs¹zrrD7„ endstream endobj 943 0 obj << /Length 170 /Filter /FlateDecode >> stream xÚÕ1 A Eÿ²]¯8;êÀvë N!he!Vji¡h«{´9ŠG°´ãd±QÄÞ<~~ „¸~·p\p/•³ìJ^[ÚÑ L}¡­V[ª™9J2ãä’ >ì2ÕtÈ–LÍ ËÅ’BÍ@.ÀY®*åtÀßà“}4˜I“½¨™kÆ\Ðê7B <µÄ/z‰¢ñ…íž¿aúš×³?I£@3zóպà endstream endobj 944 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚÑ= Â0àJ‡Â[rß LK©¥S¡V0ƒ “ƒ8©£ƒ¢s{4Ò#tìP“ö¥qj |ä‡÷Ã[Æ‹$Dõ^†Åx àQ¢Î¾>ê‡ó 2ü€Q|£n‹->¯+ðl·ÂxŽÇýˆ¥^oÇémIiTEí¸²êud=X4ƒi;87v¶LNó7މoò™üTÏŒêd²T}Xö÷_õ§—QOË^Wþo5Q;ŽG2Ê7öOõ×Ò<êq.ÖœÔWX ØÃuRÖä endstream endobj 945 0 obj << /Length 263 /Filter /FlateDecode >> stream xÚ½‘=NÄ@ …¥ÉÍ!¾L"±ËnC¤e‘H¢J ´$GóQr„-·­ñŒ7qF}#[ãŸ÷–«Óõ9Õ´ “†–g´XÑsƒo¨¬Sxm™§WÜtî5áZúúxÿ|Á°¹½¤Öª±Û´ (E¸TV";§‘èYäepšÒ{ðJý¥9†~P(eÔRÂé™XföìdH-Ø ÌXq*óKÏíÄ8§ãþ/÷ü§~ÖbyœoƃÑöq?´}Ý`ôƒéáÁô©ÀôºÓïëØ0fW Ø';´¬jœô÷#˜©†úcŠÍªþyÄ< ^ux‡ß³ = endstream endobj 946 0 obj << /Length 184 /Filter /FlateDecode >> stream xÚ}б Â0à+Â-}½'0­Út µ‚ÄI‡‚¯ì˜¡Û¤…¦VÇÇår~>ÅS hR(Šéâ#^ô¦-Ç &ÙŽ"ŽlUÜ"“kºßgdÉfA!²”ö!”)isÞÀKT •¡oéY<py~# ³ˆ?@Iæz­S=©Z¿ˆ¿‹Ah1s–Ì!oâ9)ù–¹ÁÓʦ«:#Ç¥Ä-~·Ê endstream endobj 947 0 obj << /Length 159 /Filter /FlateDecode >> stream xÚ33Ð3°T0P0bS3Ss…C®B.S# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒÁ¬CýfÅPÿLÉC(~ÅŽB1£PŒX© ª‚Å€Dý@¦!;˜úÿ7UÓ€j š ø(ÚP °ÅEq¹zrrco©· endstream endobj 948 0 obj << /Length 262 /Filter /FlateDecode >> stream xڽѱNÃ0à«2Dº%à{p<¸-“¥R$2 ÁÄ€˜€‘súh~”> stream xÚ37Ñ37V0Pas#Ss…C®B.3 ßÄI$çr9yré‡+˜Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÿÿÿ‡H|ÀÃ`¨ÿÁÀÀøÿÃÐdüŒ!íAœ b"—ËÕ“+ ¸0Õ endstream endobj 950 0 obj << /Length 101 /Filter /FlateDecode >> stream xÚ36Ó32T0P0aSs…C®B.crAɹ\Nž\úá Æ\ú@Q.}O_…’¢ÒT.}§gC.}…h 1±\ž. ÿÿÿÿƒŒê0 uŒî'.WO®@.•õy9 endstream endobj 951 0 obj << /Length 138 /Filter /FlateDecode >> stream xÚ35×31V0PaScSs…C®B.K ßÄI$çr9yré‡+˜Xré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þVŠ¡þÃ0¤ØRüPŠ %BÙ£Põê?˜b„PÌŠÿ˜ªÿÝÿ8(.WO®@.‹† endstream endobj 952 0 obj << /Length 253 /Filter /FlateDecode >> stream xÚ}Ò±jÃ0à·è ì{‚ʦIëBÀ¦P…vÊP:µ;´´ÒÁ~°~?‚Æ &×S !HÁßIËwWÅÙÅœ :—[U4¿¤—ß±šI_„6|<¿á²A·¦j†îV^Ñ5wôùñõŠnyM%º=–T> stream xÚeѽJÄ@ÀñYR¦É#džÀMü¸\·pž` A+ ±RK EA±ˆ¾™¾I|ƒ³Sˆgwv/'W,üfþÅn³¿ÓìQEþ4»tÐÐuw8›Ë\ùÑ/®nqÑ¢=§Ùí±Ü¢mOèáþñíâôj´Kº¨©ºÄvIÌ@ƼÚÀ˜À èøU´Á;€é=zÅ‹¬ž'|+ž|1 #G”R (¤ø¹¤2))€RT¸58BÒ )*¤¨¢BŠ ˜0Dtc„㈒ß(rþTd¾†À¿á±<\B¹…"!OÈL¬ÑmÁ%”‚Á£è!ü)ä Y‚Ùµx†n«Äº endstream endobj 954 0 obj << /Length 249 /Filter /FlateDecode >> stream xÚµ‘1NÃ@EQ Mã#ì\Ì*Š •¥$\D‚*J(SAíÍGñ\º°2üñÈ "JË»Ïþ£ïÿÍã]>‘{™Êm”,—éƒ|DÞr!B~ôÊzó’Ó¥d‘ÓÈœ– ùþúùätöú$Pçòϊ˹‘vdW¢º3Vª-p¥uèÁµ›/ˆ «Æ—=›:Ô`Nzº¸wÏèʼn¬8røöØ,œÍVÃpÚž£¯Ý¥xèçóœðdnÿ¿&8둉ç°;æb9©•ßÞ³µ0ÔrEÓªõUXîЂyjóÖA‡^ªýŸó:œŸŸ'?—üÆ¿°ÛÈI endstream endobj 955 0 obj << /Length 165 /Filter /FlateDecode >> stream xÚ33Õ3²P0P0b3Ss…C®B.S3 ÌI$çr9yré‡+˜šqé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒ˜ú¡þA¨ÿ õ?øÿQŒÿ€( Ä Êþ2%ÿ…úO&…b ª Pk!Ž€: ì@ˆ'@Ôõ¬q%vŠËÕ“+ 0¾ª( endstream endobj 956 0 obj << /Length 317 /Filter /FlateDecode >> stream xÚµ’ÏJÃ@Æ'ô ì%/ î¼€¦©6éAX¨ÌAГñ¤=(z6>™ }‘‚/ðaé8³ÛÔéÑìæOæÛo·ÌË#âò‹ Ž'xŸ«'UŒ8:Äòx•º{TÓJe×XŒTvÎq•Uøòüú ²éå)æ*›áMŽÃ[UͨyR¢Zh‰FB ã™;$/€ör†«iÁeü.”˜ncŽkò“t{º^^8’ì¨#öa–3¾7³GÙØ ò/£xjÿ‹Ûævº¶é^ïoEÞ·v¼o¶Â6ÑjyÐ{óÆÉ„æn_Ì y²Ÿ`?ëôƒý5_ÜÃ^kéu⥠žòìà]<¯Ýp~-쉸oÉN©ö‘¿l7h×l6hD@Z„„+nL> stream xڥѽ Â0ð‡Â->Bï4bÛ­àØAÐÉAAëækù(>BG‡Ð3͇‚uP=¤òAYý‡Ú¯K]¹k̵ÚpÍ&ŽËœÛÈ…MšÊgd ŸÎoç°Úk|x–¯pÿ +‡Â@Zä/0ƒ´d73(Mº\5|¢³3¿WU =e0ƒ>¬ß endstream endobj 958 0 obj << /Length 263 /Filter /FlateDecode >> stream xÚeϱNÃ@ à?êÉyƒÆ/iJ"•¥‘J‘È€D'ÄŒ X{÷hy”^åc¡¯êŠ™D5‡=îþÙü:þé§“ÎÇ|ñ_.þ(Ø_’ IŸ˜4B±±ÌCjÑz8½–nZ:Ð7¡6 endstream endobj 959 0 obj << /Length 152 /Filter /FlateDecode >> stream xÚ33Ó31V0Pa3cS3…C®B.SK ßÄI$çr9yré‡+˜Zré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ìÿƒANúÃÿÌÿêi†úõ Zþ@ˆæ‡Ó5`šNW€ifœôýà˜fÄI3€i0™4?(pÓ\®ž\\wG³æ endstream endobj 960 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚíÑ1‚P Ð’.^@?'ILtr0Nêè ÑÍGã(ÑP[ˆ‰““£Cû_Û´Ë‚Á0$êûy4Šhïã CmJ9î&»#&š5…!š¹´Ñd ºœ¯4ÉrJ>š”6>y[ÌRbæ\æò €[B§øãgpq ‰¸þD¬…b¢ ¤û7 ›%é¸ÇXzÂ’¯²+pîC‘7 M=$¿©¯¬qÓ˜«ŽÀY†+|œ¼T endstream endobj 961 0 obj << /Length 199 /Filter /FlateDecode >> stream xÚuν Â0ð+„[ò¹'0­~€ÄIí›™Gé#tì =猪‹!ùAþ¹—úù€RÊÉG4Ó!Ã3vYªW}ØŸpR ßP>@¿}±¤ëåvD?YM)C?£mFé‹AhÀ0W–¹pµ•(Ô†Å&áRŽ_ïÕGW«¶RM©Êú1|šŠw5áFò—ú«ýö ]Ÿ÷æ·ñ¯¬5IW¦†º'C»§{p´Ü:ކ«ƒV†#Î \ã 8.y endstream endobj 962 0 obj << /Length 191 /Filter /FlateDecode >> stream xڵϱ Â0ÐH†Â-ýï L«–ºj3:9ˆ“::(:·ŸÖOÉ'dìP{^ŠCEœÄ<¸Ü%¹$“Q”`„c^ Ïc¸À4å¸ }âp†Ì€Úâ4µä]Pf…·ëý*[Ï1•ã.Æh&GA‚}1è”t@%’c55lË)É1•’¬(*ÉÚúzí¼Ãºgã û¶?øqÛÛ[®ë„­Da_½=@ÖMÐ é4ÕBÚ3²ò'`a`Otí„€ endstream endobj 963 0 obj << /Length 184 /Filter /FlateDecode >> stream xÚ•Î; Â@à )ÓäBænbÄ*#¸… •…X©¥…¢­Ù£å(9BÊKÆY#X[Ìó‚?›M³ŒbJ]-(Ó9Á¦¹ô±kÝâtÅR£ÚSš£ZË•ÞÐãþ¼ *·KJPUtH(>¢®> stream xÚµ= Â@FR¦É2'p³$!vÁ-­,ÄJ--­o–£è ´‹dœ±ò¯æÁ·3ì<6{AŒ†\±Æ¸+ [ˆÎDi,7P3ŒP#¾eƸßÖ ²É5¨çƒ˜->E) ït´ÿD›ŽL®Ì”Z&U¼×!˧Òm,—J¯¿–yÿ"LŸXœÞI?ðåµ]ìÀ&^-Vìæ±gÇž·Zêø¿n$ù̴ɦ†¦p h¥Á endstream endobj 965 0 obj << /Length 191 /Filter /FlateDecode >> stream xÚ]ν Â0àS:wÉ#ä>m©Ð± ì èä Nêè (¸¥à‹õQò3ã­ þ\È'›3ʇEÁ)çrFçï2:RÞߥ}ì¶×”¬$S2{ZÏù|ºì)/&œQRñ:ãtCuňCèà:DávG|‡iÊFy”­öÐV;¡tPo¼0ðáƒÌ7ÀæÙ÷âª{äKxÕNÄ. P¡5­ô €’’ÒÒ‚¦5-éQle€ endstream endobj 966 0 obj << /Length 155 /Filter /FlateDecode >> stream xÚ3²Ô3´P0P0a S …C®B.c ßÄI$çr9yré‡+›pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ä?000þÿÃÀÀþÿ?÷£¾ÁþÁÿ†ÿÿŒÿ¡óFÁð¿FØ1 bˆÿ ÓÑbõÒøÿÿÁåêÉÈŽXo5 endstream endobj 967 0 obj << /Length 264 /Filter /FlateDecode >> stream xÚ…½NÄ0 Ç]1Dòropõ @ZµU™ˆt`b81#æô x¥lŒ¼B$€Ž7œbì´Bb"Š~±ì¿?â¶?é;ª¨¡ãº§¶§æ”j|ƶoE]·„îŸp3 ½¥¶A{)~´Ã½¾¼=¢Ý\ŸSvK»šª;¶rJ“€xþâP0ów4Éð{\í .c9ØNø]ÿ”"ÿßY¹pÒ&Zm­¬m¥1¬˜÷BÏ`­XëX Ï2ÝÌ1Ï2s–Pª)£Ö—àH˜²r”Á€—L¥5ø1ýÒýáU¥—Wôš[$ÜtUòÝ’ŒáYņ'¼ðr˜Ô endstream endobj 968 0 obj << /Length 157 /Filter /FlateDecode >> stream xÚ35Ö30U0P0bS#S …C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ3Á$;˜d¦%YH2ÿÿ$ùÿÿ’ò@Aæÿ6Œÿ˜ÿW€É òÃÿÌÿ ‘ H$Ã’ÿÿÿ±ÿÿ“ärõä ä WžH endstream endobj 969 0 obj << /Length 122 /Filter /FlateDecode >> stream xÚ32Ó35V0Pa#SSK…C®B.#C ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ŒØÿ0ðÿ!ùÿ("”ªÁþ3Ô#!öÿ ÌÔFÿÿÿ€#.WO®@.Nq endstream endobj 970 0 obj << /Length 105 /Filter /FlateDecode >> stream xÚ32Ó35V0Pa#3S …C®B.## ßÄI$çr9yré‡+qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ3üGBìÿ˜úÿÿq¹zrrÊWù endstream endobj 971 0 obj << /Length 188 /Filter /FlateDecode >> stream xÚÝÍ= Â` àˆC!‹GhNà×"Ú ‚ ì èä Nêè (¸µÒÁkyo =Â7:”¾¦ÅÉÁ8„<ù! úín(žt4BMl}>pÐÓº.«ÁfÏ£˜ÍR‚›©vÙÄ39Ï;6£ùX|6‘¬|ñÖGB%%9µ "” 4Dªrr•{Ef‡V5 ÜR×’S^r_Ô,µÿ¬¥»IQiâNÉë[)%ö[ôyü/ Èû[<‰yÁo¨Rµ€ endstream endobj 972 0 obj << /Length 151 /Filter /FlateDecode >> stream xÚ35Ö30U0P0bS#cs…C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ1Ô`øÿùÿ Éÿÿ”gþ$mÿ7°ÿ«’Ìÿ>0Éÿþ`þ‰l@"üÿÿýÿÿ˜$—«'W Žá‰ endstream endobj 973 0 obj << /Length 176 /Filter /FlateDecode >> stream xÚ31×37U0P0bScs…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. Œÿ000ðÿÿ$ëÿÿ’ÿþ700ÿc°ÀÀþ‡Aþÿ2 \ i$Á €Êêäò?ˆl •Ä4b>Ä.dÛ!îp!îdræ~ùÿ€$Ø_\®ž\\-in« endstream endobj 974 0 obj << /Length 193 /Filter /FlateDecode >> stream xڭп‚0ðš$·ðÞ h[I;˜èä`œÔÑA£3>Â#02Î+šhÔM‡þ†ûúçK£`¨#Ô8Âc¤1ˆqgàaÌSQðˆ¶H-¨†1¨ÏAÙ9žO—=¨t1A*õA½›¡ ]‘O›Pö±’JA…äy)Iˆ¼r&õÓ~ó®ßþàÇmý—·’ªkÂ]Ÿ{77”Ôx­Ü¿f}N$¹nýCâù&L-,á‹ endstream endobj 975 0 obj << /Length 144 /Filter /FlateDecode >> stream xÚ3¶Ô36V0P0bcsJ1ä*ä26òÁ" ‰ä\.'O.ýpc.} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Ã?æ ÿÿñÿöÿDM}Ãÿ?þ`ÿ÷áÿæÿ@Ä8ÑPß$쀈` 4'þÿÿ‡Ap¹zrr8WÖ endstream endobj 976 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚ%Œ= ÂP„7¤¶ñÙ˜„‡Æ.à˜BÐÊB¬ÔÒBQ°“£y”á•[„ŒûHñÁÎÌθb2+$˜Š+ä’ó]n: 2ç/*NârN7ærZmåùx]9]ì–bîJŽV9qµ*ý> stream xÚ36×34Q0P0bc#Sc…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ø0°<¶‡âz þÁŒ@ÌÄòÿÿ?ø„™bTÂðÆÿ ÿ7~`øøƒýÿ@Ç400ÿcàrõä äÎpR endstream endobj 978 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ35Ö30U0P0bS#cs…C®B. ßÄI$çr9yré‡+˜Xpé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ30ØøÿŸÁþ?’ý?ãÿÌ@5J2"‘Ì0’ñ?;ˆlàÿÿ¨Ìèâúÿ€¤üÿÿA*þÿçrõä äðŒ endstream endobj 979 0 obj << /Length 199 /Filter /FlateDecode >> stream xÚe̱ŠÂ@Ð7¤¼&`Þ8Éš …(¨ ›BX+ ±RK EÁBÐɧ䦜"8ÞqaZÜ÷=¸yÒÎ$‘/$ëI§+ë”wœå良þ±Úò¨`=—,gýƒ+ëb*‡ýqÃzô;–”õD©$K.&âœQÎ~8¢˜¼-x¥)؇%‰à Vd‰.hUAëmPþ[‡0ªÃ+|D0|D] ×zy‡ÊÝ^Öœ}÷b‡Uc\6úù?ù»à?#Zh endstream endobj 980 0 obj << /Length 236 /Filter /FlateDecode >> stream xÚuαJÄ@à9R,L³opÙ'p=…póSZYˆÕ¥…¢pE ûhû(û{]Ä#ãÌZ˜F˜ácfø«Ë³«Ú朻ªÍEmö%¾aµâ¹Q»WÜthMµB{Ë[´Ýùxÿ|A»¹¿6%Ú­y*MñŒÝÖ‰\Kÿ©&Ð#d!#P¬OIÇ*¿ —M «D // R2h‚``ÝRÌ“m\®ùÕ‹ãzð=@>6m8ˆ}F}:ä1Μ¢>²Šý ,EýÍfù¹œ‘]ˆîO Î sSq0€iî ›TxÓáþ¦‹j endstream endobj 981 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵб Â0€á+Â-}„Þ hšP:j3:9ˆSutPt®à‹ù(}„ŽJc¼ quù†ËûO¥óTSLŠf’”"­è(ñ‚Iæ†1ií_ª3ÅŽ’ ÅÊQ˜5Ý®÷Šb³ ‰¢¤½¤ø€¦$,D¶¨m`ŸX˜ôP?¦䯰…¨a"GËä „ÝHíè¿°Žáüú’ñ[¹%=ãΡ‹i¸ˆÛ¸’{}9ßàs \Üâ#G— endstream endobj 982 0 obj << /Length 122 /Filter /FlateDecode >> stream xÚ31×37U0P0bCS…C®B.cc ßÄI$çr9yré‡+sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ä€ÀDübvQ$þÿG%úAüȨÿÿÿÁåêÉÈB•\ endstream endobj 983 0 obj << /Length 231 /Filter /FlateDecode >> stream xÚmÏÏJÄ0ð¯,Ì%ÐZ%c‹ã7¢â!¿02I†ñ|ÜøÖÛz¿ü¾“éGÆ­…Vx|–í,ÍïGi®˜•f¾ö‡×ã“4Û› ßI³ó÷odÞy¸A# ÕŒJõ—&E½8]&”ÃRj ©Ð¤ šÙõKXÿ™"9ãØß°öC¯ú"‚ãƒùÊÞáN¤¶¶šàžç‚ +–o¨q‘Ô ™€ï@æF2ŠÌÏh.ÊpFmLF IÿA.g¹•OÕ¬—´ endstream endobj 984 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚ}±JÄ@†ÿbaš> stream xڕϱ Â@ à– Yú6O`[¼Ò¥T¨¼AÐÉAœÔÑAQèP°ÖGé#tt«—ªtò $áB¢ÓyšpÄ :áDó%¦;騿‘¤Ò8ߨ0XÇnl•B³åçãu¥°Ø­ØVK>Ú/'2%;ŽãµÇÀ%|ÃAtG*èA0‡¬`/ºPu°½Fô19€9¬a{ÑíDíªb#úØj3XÃä5S¯øS… imhO_o`{ endstream endobj 986 0 obj << /Length 229 /Filter /FlateDecode >> stream xڅϱNÃ@ `G"yh_éüp’([+•"5:T #Ö^í%pcó»He``ùÛ÷û\·wm# iä¶”º’¦–ç’߸jQD¹ùéœ^yݱßKղߢ̾{”÷Ïöë§{)ÙoäPÊâÈÝFnˆ(ºžŠèF Ñ©j…Àd|ÉŒL@Àä6ììmБÜT /åˆõ¤sg`À|¸®Œ¿8c†Â¨Ò’5 MñÃÙâ—”i\Qn+ ¥yrŠevœEs¬á‡Žwü Ô4„s endstream endobj 987 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚuÏ=NÄ0à¥Mã#x.N´ŽV[YZ‰HPQ * ¤Aíp³%G0¢ÀE”a²» ÍgûYš¿<]6\±ç“š½çÆóCMÏ´XiXqÓì~îŸhÝ’»áÅŠÜ…ÆäÚK~}y{$·¾:ãšÜ†ok®î¨Ý0`2™€R¤Ó—é†r@ìŠI…ÀærBÈG£b¶dÅþ2lRÌ“V;äxFïò!#äSòÕI§gìµk4I±Yòžñ€;ý!þGøaÜbóžÝ¸óài^aÐeb_È»î+:‚¶‡ÑÚ(4¢ó–®é–•™ endstream endobj 988 0 obj << /Length 200 /Filter /FlateDecode >> stream xÚϱ ‚`ðáÁ{2As‰3È!¨©!šª±¡(hˆôÑzÁñĺïŒt©¡~Ãÿ8îÎûa@ ¨ç‘R0¤‡Gô=9›Îö€qŠîŠ|ÝÇè¦s:Ÿ.{tãÅ„8MhÍ3L®±â“+ÿ"dL-V¢K±x{°pprm î%@%*­!š¥ÞiÉfúÈ£ú1ƒÖºÕh¬´fG«£Ý¨ZŸFéȶ> stream xÚEÐ;N1 `G)Fr“#Œ/³£Ñj«HË"1Tˆ ()@PgŽ–£ä)S„{Aló)Çù“iw¹›iC]Œ4M4Oô2â;n÷²¸¡yþÝy~ÃÂÃm÷8ÜÈ2Ë-}~|½âp¸»¢‡#=Ž´yÂåH`xpœv ú$¸ä"¸,t¹?“”¬¥JIÏRÜsTR/´°vÌ „ –å6£#`f€ÀÁ3G&û-Û]\\ò\´Eõ«åV>R®ô­tŠUÌ?p¦²"ÅFÏ ¶ø¿Ìò¢!ÚS‚S¯`% ^/x?}Ï“… endstream endobj 990 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚmÐ1NÃ@Ðo¹°4°s°­ØŠR­‚„ $¨(U ¤A½¾ WñMØ#¸ÜšapJ‘æ³Úù·]_®;®¹å‹†Û–»–Ÿz£ÕƆ5wÝádÿJÛžª^m¨º±1Uý-¼¾Pµ½»â†ª?6\?Q¿cä Ài‚&dš r¢˜†2!Œ.ÁG?pS8’ôÈ|9‡]ó'ø?‚XP‹T)æL%—ü[2Õ/±jNl¥›þ§”>9Û’¼5þ‰FX ü”éà¢=Ø … Œ–W¨UÊUG@—˜ºîéž~Uí–Ž endstream endobj 468 0 obj << /Type /Font /Subtype /Type3 /Name /F24 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 2 -17 88 59 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 28 /LastChar 119 /Widths 991 0 R /Encoding 992 0 R /CharProcs 993 0 R >> endobj 991 0 obj [53.05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26.53 0 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 26.53 0 0 0 0 0 0 0 67.93 68.97 0 62.74 60.09 75.08 74.73 36.21 0 0 57.43 90.65 74.73 71.73 65.28 71.73 71.62 53.05 66.43 73.46 0 0 0 0 0 0 0 0 0 0 0 46.42 53.05 42.44 53.05 43.77 29.18 47.75 53.05 26.53 0 0 26.53 79.58 53.05 47.75 53.05 0 39.33 37.67 37.14 53.05 50.4 68.97 ] endobj 992 0 obj << /Type /Encoding /Differences [28/a28 29/.notdef 46/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 66/a66/a67 68/.notdef 69/a69/a70/a71/a72/a73 74/.notdef 76/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85 86/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 108/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119] >> endobj 993 0 obj << /a28 943 0 R /a46 941 0 R /a48 981 0 R /a49 982 0 R /a50 983 0 R /a51 984 0 R /a52 985 0 R /a53 986 0 R /a54 987 0 R /a55 988 0 R /a56 989 0 R /a57 990 0 R /a58 942 0 R /a66 944 0 R /a67 945 0 R /a69 946 0 R /a70 947 0 R /a71 948 0 R /a72 949 0 R /a73 950 0 R /a76 951 0 R /a77 952 0 R /a78 953 0 R /a79 954 0 R /a80 955 0 R /a81 956 0 R /a82 957 0 R /a83 958 0 R /a84 959 0 R /a85 960 0 R /a97 961 0 R /a98 962 0 R /a99 963 0 R /a100 964 0 R /a101 965 0 R /a102 966 0 R /a103 967 0 R /a104 968 0 R /a105 969 0 R /a108 970 0 R /a109 971 0 R /a110 972 0 R /a111 973 0 R /a112 974 0 R /a114 975 0 R /a115 976 0 R /a116 977 0 R /a117 978 0 R /a118 979 0 R /a119 980 0 R >> endobj 994 0 obj << /Length 116 /Filter /FlateDecode >> stream xÚ36Ó35Q0P04Fæ ¦Æ )†\…\†f  ,“œËåäÉ¥®`hÆ¥ïæÒ÷ôU()*MåÒw pV0äÒwQˆ6T0ˆåòtQ` ÿÃþOý¿úÿ‘ˆoÿGþû¢!“¸\=¹¹‚nB¾ endstream endobj 995 0 obj << /Length 267 /Filter /FlateDecode >> stream xÚµ“=nƒ@…Ç¢@šfà9Al%"’C$SX²+V*;eŠDI£pJ ÄzÖ°òÚîÌŠÕ·üì›y^çOÏ‘=“Jftˆñ“ˆìॽ±ÿÂEŽzKI„zÉWQç+úýùûD½X¿QŒ:£]LÑæ™óÑ@G¦j…ÌQ¨P¦˜ÚϘº§‰iz‚ÿVÈ8Jy›Ž¦<_’â­oSÈr¡ûºãJ^CoC¿âÁàK(®¥vR“ਾB,á|.ÅÝÚWK¥uÅÉ¡Ë`DuO6®KNý™‡‘¯6‘_i JGãT+É­”´ ç¤KP±„û²¡J¨ðÿ~ ßsÜà uÍyë endstream endobj 996 0 obj << /Length 338 /Filter /FlateDecode >> stream xÚÍ“?N…@ÆgC±É6½€QãÚ¸Éó™Ha¢•…±RK vF8Þä%^€’‚0Îì ‘¼Z ø-;;3|óqvrX”ºÐ§ú ÔÆhs¤ŸJõªL¡ù6Ç~çñEm*•ßiS¨üŠ^«¼ºÖïoÏ*ßÜ\èRå[}O‰TµÕ@W‚€dªR‰ˆ;Ȉ,Q–ˆG¨9ÛCi ì7rXKËä0—Aà@$ˆs;’²º:ñ>GOÔ11PV¨GG’ª à{ ré(µëÜ‘  J}1*7S(»$;SheIÙLõ>âoúCø¨^¥f­i0Ó¤ÚÙIñ™Î§ÉÌô¬ð§ Cœ4ôqú¢ŽHºèG®¹‹nJÛè°¬‰®³œcÔC +{ç7ZÛÎÛ¶>»ƒ Úà¿¢‹*E!¼Õe¥nÕ/ÙÏíã endstream endobj 997 0 obj << /Length 192 /Filter /FlateDecode >> stream xÚ³0Ò33S0P0bs  #…C®B.sc ßÄI$çr9yré‡+˜sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þCÁbY ìÿ?00ðÿÿe1 Xòp?œÅg1ÃYŒp‚UgÕÃYöxYò¤³À,æ üD²p²Øñ²øá,y8ËÆbüe‰,„^$óìà'Ò}ÌTaAÀf“õRX\®ž\\1=# endstream endobj 998 0 obj << /Length 349 /Filter /FlateDecode >> stream xÚÕ“±NÄ0 †]u¨”¥P¿´U‘®"‡D$˜02€`ny³ãMNâ¸ñ†ªÆIÜ»´EÀJ÷“ã8vâ?ÏŠã¢Â x”cµÀ²Àû\=©Ò83,OÜÊÝ£ZÖ*½Æ²Ré9»UZ_àËóëƒJ——§˜«t…79f·ª^!ðÒ û5D±Åˆˆ6XÖÌ;Ж©‡Æí¤uH@†cýN.|ÍŽrá.m@µÎ³Û¯F|Ž=›Mb¶š Ö´`]ƒÃœb{)Ð$èÀU2¤ئç¿ô' ÄcW˜¾|–rƬÇ,eŽ9sóýÃôOx^cf¥u=þÌzÆ.‡–{6œü‡·›òðÖS–1´Œ¸;ôAýe&oVýögÛ›ù`¦_#œˆ7ÄŸ¢)ÒNG¼¼ èöÝYmv¢M£Ù­è×Üf !ˆ&\oê¬VWê ?¦! endstream endobj 999 0 obj << /Length 123 /Filter /FlateDecode >> stream xÚ340Ò³0Q0PaKK #…C®B.KßÄ1’s¹œ<¹ôÃ,M¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ÿA Dþ!•ÍÀþÿØÿo`e Èb†á gS’7¹\=¹¹üïb endstream endobj 1000 0 obj << /Length 105 /Filter /FlateDecode >> stream xÚ3±Ð31Q0P0bS #…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ÿA ÉÀþÿÃ(9THü±ÉåêÉÈ’:Õ° endstream endobj 1001 0 obj << /Length 157 /Filter /FlateDecode >> stream xÚ3·Ô30T0P0bs #…C®B.3K ßÄI$çr9yré‡+˜Yré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(ü Ä0ø!Ô(c2~f0ÂH`0ãf°c0øáŒP†<Ãƨ‡1þCŒ0;ŒÁcÔCÌÀ¤ø Ãàrõä ä6n6 endstream endobj 1002 0 obj << /Length 311 /Filter /FlateDecode >> stream xÚÔ±N„0Àñ’oé#´O ”\<'HÎ3‘ÁD'㤎ÝHàÉ ÆÁÑGð‘áBýú•Iû%)ð+,ÿ¦`ÊÕÑz­ ½ÂaJ£OJ}oà Œ9Æ™ÂÙ=º{„MùµÆyÈÏqòæB¿<¿>@¾¹<Õò­¾1º¸…f«­µ£ #q·8&ÏtáÞ3ûŸxž=%Ýüæ·õT]ˆ_¶'V1ü´± òÃîˆSï>8ƒ|º‹bGýx ²¦~Ù‡©¨_‰(Jê¯fÔß2L©Šcâ–# ןî8º~w‰¢[ÙstýJptýU,Ýr´,]ÿÄû±ž#öc},»=Ö3Ö³Tëc)íÛfôÑrLi‡G’vKA;+DEï ñß1¥]þ*Y÷‡¨ÄB8kà ~oˆ§L endstream endobj 1003 0 obj << /Length 209 /Filter /FlateDecode >> stream xÚ³°Ô³0U0P0b c #…C®B.s ßÄI$çr9yré‡+˜[pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒÁëÿ8ëœõ¿ÎJóƒûÿ ,fn0‹¤ªÿcÙ5CXòÿ@Y ÂbGb}ÀÂúe1ceý¡ Ÿ½ìH,ln~÷å Ÿ#BBðPŒº`pÎb€±~ÀY 0SFYä± I—«'W TÛ4# endstream endobj 1004 0 obj << /Length 422 /Filter /FlateDecode >> stream xÚÍ”ÍJÄ0ÇSz(äRß ymë²n÷ba]Á=yOêу¢°±_¬Rß Þ"”ޓɇ]XéÕ¦¿mæ#“ù'Ëü`‘ËT.äþáL.g2ŸÉ»Œ?ò|Ž_S™¥Gvîö¯Jž\É|Γ3=Á“ò\>?½Üóduq"3ž¬åu&Ó^®%ÃG@ÍÌô h "AG ``Æ©Ar,=CÆ  ÈØŒú?Fmq¬zæÌ´‹ÉY€Ìš2fä`œÁb‡auDzvQˆ¡Ã~ŒåÅ@ƶˆ-pŒÂc=B[ žÄÊc»…fã¿[&ª$ø…häß:_gVÚ9] ÊWAîàú8©ßC†^{dA˜Çe‘QI#ÜX<¸0å° =v£;¿t–'±µXíÄÂß ÝÍ!¶ÐnÄà0ò7 6J9 |^ŒÖ0~ZòKþï‰õ endstream endobj 1005 0 obj << /Length 290 /Filter /FlateDecode >> stream xÚµÓ±NÄ `H‡&ÿÒGèÿJk×NMÎ3±ƒ‰NÆIMÔèÜ{4¥ÀØá"R ÜßÈ%)ù ~ø¡Ùœo®°ÀK<+±©±¾À×>¡©Lcuåz^ÞaÛxĦqkšAtwøýõób{%ˆ>•X> stream xÚ퓱 Â@ †S:Y|„æô]ª‚ÄIÝÄöÑú(>BGñLÓZD''—|ü¹ÿr7œÑ¦©;¤©M CA‡º>­ î0ðYÔÔmÕÃ՜՘eTÑ„ûãU8A5¤…!½ÄhH–ãàpɾe¨Û ä§P±þóï¸Vrÿ…{ÂÙŸy¹%ŸÞرWáÛ K¶¹Žp,ìŠ+¾ç¹&ûÂuaÏJNE±IÞM ºœ4y0犉%®Þ­àØ^žÃù ŽâAlæH 4È—¬6eOæ†E8Ã`ò| endstream endobj 1007 0 obj << /Length 270 /Filter /FlateDecode >> stream xÚ•‘±JÄ@†'¤Ls°óšL® œ'˜BÐÊB¬> stream xÚÝ‘=NÃ@FÇJišÁsX[NŒ©"åGÂTPR€ ¶;®•ä 9BJGZí0;Þ J¨Øêifw<~ßEqžU”QAg9•—Tô˜ã –)fTûÎÃ3Îj4wTNÐ\IM}Mo¯ïOhf7sÊÑ,h•Svõ‚`Úæ_À ühv= ™{H™× ³ïñž¡±ÁBÊ [rë¡%k‰TïË3¶ü·š.‚ 0=€;  ý Ú¿€“ûv>ò;ö»ÕbC _Æ\”Éõ¶Aøf #àc§ƒ—è,'·4/+;h‚¼q1h¸¬ñ?7p% endstream endobj 1009 0 obj << /Length 243 /Filter /FlateDecode >> stream xÚµ±NÃ0†/ê`é?BîÀ‰dSº`©‰ HeꀘhÇ XI-Â#dÌ`å¸s‚ºtÅËgý÷Û¿î·×~Iyºª)x ö5¾£_‰XQ¸™&oG\7èväWèEF×<ÑçÇ×Ýz{O5º ½ÔT½b³!€ÿ€œÈ£‚™Oª±ª–!2J`@;€÷PŽPÈ<²;…‘GgÈ3E9c̈¹*lÊ0´9Útüø / Îà Ýìi†Õnʲm'¾©¿;)¤ø–),åˆbÈߘ^‹ìJq™©Ý‚§®£zµlÑð¡ÁgüÍF‹¾ endstream endobj 1010 0 obj << /Length 253 /Filter /FlateDecode >> stream xÚÕÒ½NÃ0ðT"ÝâGȽu¢~n–ú!‘ &ÄŒ ˜Ý7è+õQúíØ!ÊŸ³¯ñ‚ŠÄ„ˆdå—‹³ÿÊl4¬æ\ñ˜¯jžU<ñsMo4HQÇúæé• Ù{žNÈ^K™lsÃïŸ/d·K®É®ø¡æê‘šgáʱ‰wƒ_ s=Ìÿ‡$ p8E €.¢° (±s‡×…¢ÀŸÂ4Ž2ì¥*ȱÓ| ]¹Ñ6&âÜ´LèÎpßàÚ‹À_à‡ýøËÇIHGN!ÄXÊ>±] ³7ž#†Ýfæýß".ŒÎF«?«Ç^Q 3Ò™Ö Ýщb= endstream endobj 1011 0 obj << /Length 244 /Filter /FlateDecode >> stream xÚ…¿J1‡gÙ"0M!óº·`D«Ày‚[ZYˆ•ZZ(Úºy´}”<•aÇ™¹ãôP1|ðå—?üâéáIO :¢ƒžâ1ÅH=>cT¹Pc;÷O¸°»¡Øcw!»á’^_Þ±[^‘ØÝÊ™;Và8ƒŒ‘?dm˜gPÇj·\R…q :“dÄ„*Á |…Vbn¶;ƒg³Eó çd˜ö1Öo( Ø÷aãhDBÿcü³!ýD[Áo˜¬1¿En¥ ¹±¦ä%iêÝînª6N:ó\ÒZÛ` æ]H›_ÙI<ð?yë­œ endstream endobj 1012 0 obj << /Length 175 /Filter /FlateDecode >> stream xÚÕн Â0àá–>Bï L*)¸j3:9ˆ“vtPtnÍGé#8fœ—:èÒM‡|ä~àŽ3z> stream xÚ¥‘?JÅ@Æ'¤XØ&GÈ\@“HòBª…çL!he!¯RK EëÍÑÖ›ä¦L2Î쮂°áÇîüû¾É®9o[,±Æ³‹w565>UúU7¿–Øv1ôø¢÷½.î±étqÍïºèoðýíãYûÛK¬tqÀ‡ Ë£î¯|¢QÑÑ’“CD–F°³"RcB|&;¦Jª ÀÌÆeÂ%w¹pU¾ëö3Bú?OûþÄÂ|€ G(ú‚^±'€f ‰]âTH¿Ø¯ð“|X9éʶÌÜ/O8E.‘> stream xÚ37Ö3°P0P0bsC c…C®B.33 ßÄI$çr9yré‡+˜™qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ì0€Áÿÿ$0˜a †aÃÿeüÿßf0ÿÿÿÌà‡xûÿùõÀŒ:û`PÛãçã?Hÿÿß  e00°ÿ?€Ìø‡ÁøCãÇ(ÎøŒv q€—«'W lù2 endstream endobj 1015 0 obj << /Length 138 /Filter /FlateDecode >> stream xÚ36Ó35Q0Pacc …C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ìþ``üÿ€ùÿ0fÿÿ+†ÉƒÔ‚ô€õ’ ä0üÿ‰˜aˆàÿÿÿ@Ç\®ž\\ÍÙ¥; endstream endobj 1016 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ36Ó35Q0Pac c…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ì0üÿ‰™˜aãÄÿ„޹\=¹¹µ‰Ã endstream endobj 1017 0 obj << /Length 232 /Filter /FlateDecode >> stream xÚíÒ½jAð WÓÜ#Ü>·ÔŒ‚WZ¥©LÊ+³vrp!E¶›üçT°+‹ ó›Ý-ÆÙÇvïÞXÓÅqöÁt;æÍñ';ë±j-->x˜súŒÇéiNó©Y-×ïœgOÙ‘yÁÌ+ç#CYEI ºO$RáxŠ%4ˆDJʤnï«Ò 󢣨Ò×®U¶¤ Hª@Yûƒ$߸»Np·â§¤D@¥(€þ¿ØAx^ƒæ §¨å9ìÅE…ÿÇÍÛ„ÂÆip xœóœÿvÚiC endstream endobj 1018 0 obj << /Length 184 /Filter /FlateDecode >> stream xÚíѱ‚@ à& &]xúÞÜHLtr0Nêè ÑUy´{ጃ „zwÀ¡Í×6ÿÔd4”’™JBG´ñ„qlfiG{Ø1+P¬)ŽQÌÍE± Ëùz@‘-§¢Èi’Üb‘¤‚˜µ©ÒÁc®|æÚ!P÷Æái à±®!`{èø.ÿT¼ÊV6ß¡ýAÓõ_°yÍÀ4Õ8+p…o âøš endstream endobj 1019 0 obj << /Length 231 /Filter /FlateDecode >> stream xÚµ‘±‚0†kHná¼Ђ±0’ &2˜èä`œÔÑA£3<šÂ#02Î^KL%!_sý{½þ¬æI‚!.qa¼@¥ðÁCT±Ý9ß +@P% 7º ²Øâóñº‚Ìv+Œ@æxŒ0> stream xÚÍ’¿NÃ@ Æ]u¨ä…G¨_.!MB§H¥•š ¦02€èœ<’GÈx•ªÛ¹F:¡.§Ÿ¾óùÏçË“«è†"Jèò:¡lN錞c|Ã,5¢<WO¯¸(Ñm(KÑ­EGWÞÑÇûîÝâþ–btKÚÆ=b¹$(“#ýÑÃ!@5@÷Šøo˜J ÿ§4ö{®aäÁ³ÅŒòßëŽfJ®`o}4¼‘.lO­%Þw£‹m_…mt§¢e4](z†`_ëTÀU‰øµ`  endstream endobj 1021 0 obj << /Length 169 /Filter /FlateDecode >> stream xÚÕÏ;Â0 ÐtõÒ#Ô' ’VbªTŠD$˜02€`nÆQz„T d¨jœ20õXö“üYœé™žcŠš+ã4xRp“s?¶aq¼@iAîÐä W<i×x¿=Î ËÍÈ ÷ ÓØ Eá¢^¹˜6¡–­É±Câ‰:_øˆ:WóÑ«}ßÍO_ /h‰ Æmƒú ýIž™–¶ðj^¤ï endstream endobj 1022 0 obj << /Length 259 /Filter /FlateDecode >> stream xÚ]Ð1NÃ@Ð¥°4¾;ÛŠBƒ¥$\ ‘ŠQ%Ú¬æ£ì\¦°v˜Y)¢yÒî·çÝT—ëk.¹æ‹Šë57 ¿UôIõJ/Kn®æäõƒ6O\¯¨¸×k*ºþþúy§bóxË[~®¸|¡nËXÊp8™ÎÙë…HDÑFä#ò°Ô々Ú~Àþ¨¨7ö'ÉQÈ”´^;LKZ+45qj@.dêtÜÇv“ù!¤¸Ç"iíÐÄÌôehÖ”ôÁjÛ]ˆÿdVçµ³½ÍSuž‡è ±ýõ?h©›ÓêgåcfKxýºëhG¿Á•¡Z endstream endobj 1023 0 obj << /Length 186 /Filter /FlateDecode >> stream xÚ35Ô34S0P0RÐ5T01Q07SH1ä*ä21 (˜›Cd’s¹œ<¹ôÃL ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.O†ÀOþÁN2bÌH$;É&åÁ¤=˜¬“ÿA$3˜äÿÿÿÿ?†ÿ8H¨úANò7PJÊÃç‚”ÿÇ`$ÿƒHþÿ ÀØ`ÿð(Èþßÿ ýß E` q¹zrr:é“p endstream endobj 1024 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚíÑ1 Â@Ð  Óä™ èfÑlì1‚[ZYˆ•ZZ(ZÇÎkÙyÛt¦Ž»‰… а{üáÃÀ»°O!õ¨­(Võh¥p‹ZÛ0¤(j.Ë ¦匴F9²1J3¦ýî°F™N¤Pf4W.ÐdI àñ˜Kü#ZX€ƒøã+üÏÞ8ä¯È’ àö„wåÂ6î .n ŸÁÉÁNÃõ<sUÃv‹öÁ848Å”Ìðn endstream endobj 1025 0 obj << /Length 252 /Filter /FlateDecode >> stream xڅбJÄ@€áYR¦É#d^@7¹Ül œ'˜BÐÊB¬ÔòŠí°¸×ÊÜ+äR¦gvE8°X>˜YØŸÍ/Η%”ÑYJyN«Œ^RÜa¾aB«¥ß> stream xÚÍ’1 Â@EG,„i<‚sÝl±F«@T0… •…X©¥…¢ur4â,-‚ëw3)–.düfÉÿ3tƒ8–Hœô­ ­Ä#Ù[>±s#‰ÇUewä4c³çØÌ!³Ér9_lÒåD,›©l¬D[ΦBÔöá$þ‰»å½:À¨ë[þŽRI9Šùƒz%”î 7t„ø | t}º½€GIÀ³¦ã%EPþðú_üþ+µM_*|u°69X~o ©hFš˜æW§©ÙjÒš»nîDµ!<ËxÅo†s endstream endobj 1027 0 obj << /Length 137 /Filter /FlateDecode >> stream xÚ33Õ37W0P04¦æ æ )†\…\&f  ,“œËåäÉ¥®`bÆ¥ïæÒ÷ôU()*MåÒw pV0äÒwQˆ6T0ˆåòtQ```c;0ùD0ƒI~0Y"ÙÿIæÿ ò?&ù¤æDå(I²ôÿÿà"¹\=¹¹VI¢” endstream endobj 1028 0 obj << /Length 301 /Filter /FlateDecode >> stream xÚ}ÑMJÅ0à)Y²é’Ø–G_]x>Á.]¹WêÒ…¢ëôh=JŽe¥ãüˆ? Ú¯if¦“tߟ ChÞ¯6 §á±s/®ßÑ\¦¼ððì£knC¿sÍ%½uÍxÞ^ߟ\s¸>kŽá® í½Ào@£B,D¸'€DdZš"-š,-ÚB/6¨3"x‰š¢äç”™œ®—ÓÊ®k‰í ƒËpÞ7q|Ì$pãFúæš¿È »ùdíL™@ÚAvüZ´H¥ÙFÓ¬¦YM«5Þk|,ZdÖìI³eb4Ðj`Môä³g!@Tt¶«`[ÈBÍ».àA8ã²EþõËwÌ•b«ÔŠW¢’üÉü'îbt7î}tû” endstream endobj 1029 0 obj << /Length 305 /Filter /FlateDecode >> stream xÚ‘½N„@LJlA² À¼€ÅgErž‰&ZY+µ´ÐhÍ=Ú> @IA烋 á·ì|ýgf.ëK xQá®Âz¯•ÿð!ðe‰õ•Y^Þý¡õÅ#†à‹[¾öE{‡_Ÿßo¾8Ü_cå‹#>UX>ûöˆ)Eà§£‰¿ŽˆN£ÈGG#›"ˆqhfHøÔ8¾ÏéäfEÊAEIÅÈ=¿ÿ„Å-ˆÎ’%$©#쵂H\ÀÕWèfä¹  Íhg™…™cgݺi†¹8iZþG«`©s+´¤É,25×ô\iÜ`2[Ì[¸¨ÈE3)Dä/ˆþbZÁ1.8Gƒ ƒ•I¬³éUuužR¯áÍ:îXÔ&¼oÝ´í]Ö¯"MºÎÝß´þÁÿéýëo endstream endobj 1030 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнjÃ0ð ‚[ôº'ˆìPÛt±!têP2µ;´4›qüh~?‚G‚$ÎýÅC»õ@ú¡Bw—&ó,㈮+]pöÈo1}R2æ¢ñ8^¼~в$ÿÌIF~{Í’/wüýu|'¿Ü¯8&¿æ—˜£•kžnûLMÔÐ@;ÑÁž&žEõD-twñ>‡5 pU/jh:ØŠ¶,PW+D5À^Ôh ma#:ôYÀVpÔ=ìDÓŠºb~9¬a€g‰æ/ÌÿŸuøÿwiSÒ]]Óq endstream endobj 1031 0 obj << /Length 285 /Filter /FlateDecode >> stream xڭѽJÄ@ðY l“Gȼ€&áH¢ ç ¦´²+µ´P´N-²°`“b¹u>r‡"X?²ÙLæ¿Ó6']‡¶x\c[awŠOµ}µÍšéñLß<¾ØMoË;lÖ¶¼¢e[ö×øþöñlËÍÍÖ¶Üâ}Õƒí·hF8ˆs0;àÛ¤Ž¡+*³¯Lʨ€•Yñ ‘ iþŸŒk›àäï!%Nó¹4tíaà(.JÚ‚bÒî> stream xÚ’=NÄ0…'ÚÂ’›!sHRd ‘–E"Tˆ ()@ Qa-GÙ#¤Lyxcó´‘•Oòóx~ž×ÍaÛrÅ Ô¼®¹=âûÚ>Ù¦ÁfÅíqRîí¦·å57-ϱmËþ‚_ž_l¹¹<åÚ–[¾©¹ºµý–‰ÈÒOdÀ%2…È ¸9SQväTòÔy2ÙSÁ Tà» 2NXFvY òŒø_ȹèíC!š‹"Þˆº%R­î/ºQ‘‰(Œ¶"!×V$ÞMÀ x#$“0"»W ­ ÎˆPrÂ(¨ì$Ó7´Ày?â Âîßèö"^Ò\æ%òˆI‘Éd¾«^EÀ€AíÈRɯiP7ë@tÊê4F¦¾Ã}œÒ·  CÔGƒÉžõöÊ~†\ö endstream endobj 1033 0 obj << /Length 239 /Filter /FlateDecode >> stream xÚ­Ò±jÃ0`™[ü¾he…ÚÎTAš@=š)Cé”dÌÐnÁò£ùQü5˜8²þ@mp CoÐ'¸ÓJ“§,ã˜3~Tœ>óLñVÑ’Ô%cžMq³ÙÓ<'¹æ$%ùæÒ$ówþ>þìHÎ?^Y‘\ð§âø‹òGÂGT‚ ´%ð1Šîs °à< (G˜®Ï‹(ºnhÄÉõ<œA홀°OîÐÂS€ÆiüX+ÒÃé"¬]ö1¨Õö n\PrÀ䚇cDôÆÞ§ý+Á"ZlÎ`eºúý1´ÌiEWÂÁL endstream endobj 1034 0 obj << /Length 339 /Filter /FlateDecode >> stream xÚU‘1NÄ0E'JÉMŽ`_²)²ÊÒ²H¤@‚ŠQ-” ¨£…›øéHayøcARäIñÿù?ûî¼ïÍÎtæ¬5ûÖôæ¹UoªëðqgúË|rzU‡A5¦ëTsƒÏªnÍÇûç‹jwW¦UÍÑ<¶f÷¤†£!*y"<–Þ3Dà‰ê@¼àȓơ©ŠD,#DQÄc!C<– S 1¹©úŸ`}½EØ fðŠQæjÙÀM5ÏA°˜øcÁ²¦Ç.%ó‚Í€€ %‚Æ ç œ9æd’QÿÅœrè™’t‘pI#xÙï$u_"E`—-5KˆfXÊz‘ qv, /&Áy¹6:)z…‹©veÒuFµA¹EøÅ”àVxXVˆ;Õ³]äß‘^KFƒùa9 ÔjcªG²ëÜY•ëAEJ˜¨ëAÝ«D© endstream endobj 1035 0 obj << /Length 312 /Filter /FlateDecode >> stream xÚ’±JÄ@E_H10Íüy? ÙÙ(uSZY,Vji¡hý´|J>!eŠa®ïÍàÅsàN2sß½Y×'MÃ+®ù¸âuÅÍ)?VöÅÖµˆ+nÎÒÎóÝt¶¼ãº¶å•ȶì®ùíõýÉ–›› ®l¹å]Å«{Ûm™È`Oòô˜eÍ€@ªAÕ"dek¦v"ÂDÅLª8O92!~l@Ncï@ŠzÐÐ.1öaiÂŒßáÿðBÿÚ v?Qàƒàt>—p„ C 4‚s9¿ŸH]¶>Ÿ0BÁ/@ IL}~¦-&¾ÃÇ\²^+—™˜îèävq°€ÑÈpÚƒ Ä:ŠTNëµ&­ÐøXaž*ÌE——3ìµq}µˆNd”!ýÑ«ÌId/;{k?žnf endstream endobj 467 0 obj << /Type /Font /Subtype /Type3 /Name /F23 /FontMatrix [0.00836 0 0 0.00836 0 0] /FontBBox [ 2 -25 121 84 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 48 /LastChar 118 /Widths 1036 0 R /Encoding 1037 0 R /CharProcs 1038 0 R >> endobj 1036 0 obj [65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 36.54 0 0 0 0 0 0 0 93.5 95.01 0 0 82.66 103.39 102.84 48.44 0 0 79.01 124.77 0 0 89.85 98.78 97.76 0 0 101.07 0 0 0 0 0 0 0 0 0 0 0 65.77 73.08 58.47 73.08 59.81 40.2 65.77 73.08 36.54 0 0 36.54 109.62 73.08 65.77 73.08 0 53.39 51.89 51.16 73.08 69.43 ] endobj 1037 0 obj << /Type /Encoding /Differences [48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 66/a66/a67 68/.notdef 70/a70/a71/a72/a73 74/.notdef 76/a76/a77 78/.notdef 80/a80/a81/a82 83/.notdef 85/a85 86/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 108/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118] >> endobj 1038 0 obj << /a48 1026 0 R /a49 1027 0 R /a50 1028 0 R /a51 1029 0 R /a52 1030 0 R /a53 1031 0 R /a54 1032 0 R /a55 1033 0 R /a56 1034 0 R /a57 1035 0 R /a58 994 0 R /a66 995 0 R /a67 996 0 R /a70 997 0 R /a71 998 0 R /a72 999 0 R /a73 1000 0 R /a76 1001 0 R /a77 1002 0 R /a80 1003 0 R /a81 1004 0 R /a82 1005 0 R /a85 1006 0 R /a97 1007 0 R /a98 1008 0 R /a99 1009 0 R /a100 1010 0 R /a101 1011 0 R /a102 1012 0 R /a103 1013 0 R /a104 1014 0 R /a105 1015 0 R /a108 1016 0 R /a109 1017 0 R /a110 1018 0 R /a111 1019 0 R /a112 1020 0 R /a114 1021 0 R /a115 1022 0 R /a116 1023 0 R /a117 1024 0 R /a118 1025 0 R >> endobj 1039 0 obj << /Length 132 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0S01T0¶P05TH1ä*ä26 (Be’s¹œ<¹ôÃŒ ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.OÆ 2ìÿìøÿ7ÔÉÿ?ðÏþÿç?õóÿÿøÇþÿÃæÿ~0ü?PÀ`ÏÀåêÉÈG(Ç endstream endobj 1040 0 obj << /Length 192 /Filter /FlateDecode >> stream xÚ…Ž1‚PD‡PlÃØ èÄŠ1‘ÂD+ c¥–m…£q@IAˆû;“WÍÎÎL0›† vÙ xólÎaÌgnäû¢ºEãét¥4'µgß'µT¾áÇýy!•n—ì‘Êøà±{¤> stream xÚ…O; ÂP±lãÜ è{IüÄ* L!he!Vj)¨h-GÉ,-$q̃´ÂT;ß…ÃñL­NuihuéÉ—›V'Ç/2OÅì4Ĭx“®õqžÅÌ7 õÅ$º÷Õ$Mô |€ ¨,G\ WÂ{¡ûFÇ9úé^Ù€"J[|š¼ ¬µÐîrè’YÁ"Ö±4nT?…”pGrjݬc_e*[ù«ËM* endstream endobj 1042 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0U0Q0¶T01SH1ä*ä26Š(˜%’s¹œ<¹ôÃŒ¹ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. L@ÌÀß$äAD=ˆø$˜ÿÄÿ€Ä?€Ä ‹³ÃÅíáâÿáâ?Å@âP¢&VVÌŒ.ó.ó.S—áG—;ì&.WO®@.n=Þ endstream endobj 1043 0 obj << /Length 162 /Filter /FlateDecode >> stream xÚ]± Â0†‡Â->‚ÿ˜ÄK…N…ZÁ ‚N⤎ŠÎú¨>‚c‡bMN8¤>È÷] çy’°ÈáÁü GGbŽÎÂO%ÎT2[0“YFK&¬p»ÞOdªõŽLƒÝS¨AZZFý¢HW 2"ÃòL}¦¾Tß©oþýï»­® ËÐ"І¾Öº?¦ endstream endobj 1044 0 obj << /Length 114 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04WÐ5W01T0µPH1ä*ä22Š(˜™B¥’s¹œ<¹ôÃŒŒ¹ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿÿüÿÿ†þüa`üè?’›îçrõä ä—5ez endstream endobj 1045 0 obj << /Length 116 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0VÐ5W02W0µPH1ä*ä22 (˜™Bd’s¹œ<¹ôÃŒŒ¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿÿüÿÿ‚êÿÿc`¨ü¨æ`°›ÿp¹zrrléI endstream endobj 1046 0 obj << /Length 104 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0UеP0¶TÐ5RH1ä*ä26 (˜A$’s¹œ<¹ôÃŒ¹ô≠ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿÏÄÿа—«'W *› endstream endobj 1047 0 obj << /Length 148 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04U02R06P05TH1ä*ä24Š(YB¥’s¹œ<¹ôà M¸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ü òì?Ô¨ÿ„êÿØÿ‘ÿÃÿ‡¡ ÿ0ü`øÁøƒñóöìøØ7Ô7ügø.`àrõä äj'.ç endstream endobj 1048 0 obj << /Length 171 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0S0W0¶P01VH1ä*ä26Š(›%’s¹œ<¹ôÃŒ ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h –X.OæöX±ûŽììþ±ø÷Ÿýà¿ÿÇÿûÿüü?ûÿÿðÿÿÿ€ùÿÿÆÿÿêÿ€1ˆ ÉÔ€Ô‚õõ‚Ì™2—} ·p¹zrr«xSº endstream endobj 1049 0 obj << /Length 116 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0V0S01T01QH1ä*ä26ŠE-Àɹ\Nž\úá Ææ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O† øA-Âþÿÿÿ€øÿ4‚Šv@  Ã¹\=¹¹emH™ endstream endobj 1050 0 obj << /Length 136 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04UÐ54R0² R ¹ ¹ M€Â FÆ0¹ä\.'O.ýpC.} —¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ƒüûõ?€ðÚÿ‘ÿÃÿ‡áÆŒ?˜?°PààP—«'W ŸÒ,5 endstream endobj 1051 0 obj << /Length 99 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04F †† )†\…\@Ú$l‘IÎåròäÒ pé{€IO_…’¢ÒT.}§g ßE!¨'–ËÓEAžÁ¾¡þÀÿ0XÀ¾AžËÕ“+ ‰;“ endstream endobj 1052 0 obj << /Length 157 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0UÐ5W0¶T0µPH1ä*ä26 (˜™Bd’s¹œ<¹ôÃŒ¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ì@ÌÀß#äÁHÌD؈:Q'þ€ˆ@Ì&> f0ñd˜82î>3Ñ dfâ ¸™¢Dp¹zrr@Ä:Õ endstream endobj 1053 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04F Æf )†\…\††@¾ˆ –IÎåròäÒW04äÒ÷ sé{ú*”•¦ré;8+E]¢zb¹<]äìêüƒõìäðì:¸\=¹¹{-= endstream endobj 1054 0 obj << /Length 110 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0V04S01T06QH1ä*ä26 (Z@d’s¹œ<¹ôÌ͹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿÿÿÿÄÿ °‘§\®ž\\ºâAŠ endstream endobj 1055 0 obj << /Length 145 /Filter /FlateDecode >> stream xÚ31Ö3µT0P04Q0²P0²T05WH1ä*ä !P"•œËåäÉ¥äré{Źô=}JŠJS¹ôœ ¹ô]¢  b¹<],jÿ0ÿaÿÁþÿ€|ƒ|ƒ=ƒCC þaø†ÿüðÿÃÿÿÔ¡ýûòØp¹zrrÇà/° endstream endobj 1056 0 obj << /Length 103 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0W04S06W02TH1ä*ä2 (˜B$’s¹œ<¹ôÃŒ,¹ô=L¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿðÿÿÿ0 âs¹zrrå$~ endstream endobj 1057 0 obj << /Length 103 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0W04S06W02TH1ä*ä2 (˜B$’s¹œ<¹ôÃŒ,¹ô=L¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿðÿÿÿ0 âs¹zrrå$~ endstream endobj 1058 0 obj << /Length 117 /Filter /FlateDecode >> stream xÚ31Ö3µT0P°T02W06U05RH1ä*ä22 ()°Lr.—“'—~8P€KßLzú*”•¦ré;8+ré»(D*Äryº(Ø0È1Ôá†úl¸ž;¬c°ÇŠí Èl ärõä äÇ\+ß endstream endobj 1059 0 obj << /Length 251 /Filter /FlateDecode >> stream xÚ…±JA†'\!Ls­ÝÎ èÞ±žšÆ…Á+­,ÄJ--íÄ;ðÅy‘µ²4åB–[çO"h£ÍWì¿üßÌì¹Ýf,•4²s n,Í¡ÜÖüÀÎéc%ûÍ:¹¹çIËöRœc{ªÏlÛ3yz|¾c;9?–šíT®j©®¹ fDT„¿P&E—{åh+ç•9G2ËÏD~þ>/BG¯Eðô$E7è~ }§ø¬€ŸK…ÑvmV›:¶¼«$ê,HŠ@•%¡j»}¦W”}þa³ÂzHõ‘ ¦OØ#b£¼A=ðb2ñßãà~|Òò0Ž endstream endobj 1060 0 obj << /Length 247 /Filter /FlateDecode >> stream xÚ5ϱNÄ0 `G"yÉ#Ô/iÕ+…)ÒqHt@‚‰1#¶Ó¥ÖGé#dL¥ª‡ãÐåÇ¿½k.Ûª¨¡‹Žv5µ×ô^ã6+ºjóËÛ'î{´ÏÔth﹌¶ Ÿïß´ûÇ[ªÑ襦êûé4”˜)Á pŒàaYàñ˜Y £„¸QDî+ÿ`|ÔÂ.;™1£‡ràÆ °á§ÄšX6”7 !0Z˜6Œ Ós„I¸1Â{ãá8bþgU3/­BF ‘)„™Ó)sàˆ9rá'Aóì±ÀÞõø„·³…Š endstream endobj 1061 0 obj << /Length 239 /Filter /FlateDecode >> stream xÚ1NÄ0Dg•"Òo|û$Q6ÍZZ‰HPQ *–’‚ÕÒ!ì£ýp!eŠUÌ8âi¾ý=o¶ýÕpíZ·-§uCçŽ|H?Я¶\¼¾Ë~”æÉõƒ4wœJ3Þ»óéóMšýã?¸çε/2"På˜<>Ïå uÁfA@5ãž`cÌO4ês´1dµ1gõÊ®šƒîêɧï:ÙôeÔPø~•KÙœ-ª˺QvõOÔhù9–ŒXÒÀÜ…H$%Ë RM ŸÒZÉlémb– „d·Ùr)}ÙA!·£<Ê/}L~ü endstream endobj 1062 0 obj << /Length 191 /Filter /FlateDecode >> stream xÚŒ1 Â@EGR¦É2'pÖa!F0… •…X©¥…¢­ÉÑr”!¥EÈ8 I¥ ûàÏû33;MRŠ(‘oSJb:ÅxEk%GU/˜hvd-š•LÑkºßg4ÙfA’sÚÇ°È \à1×0·2wà˜{(Ÿ¡`‚« ÃUOÂ\+rBZt‚ð%p ¬á#'*=•žJ@« šŸðõÒ¿Ï«F»a;ÂWh—nñ ³ƒI endstream endobj 1063 0 obj << /Length 184 /Filter /FlateDecode >> stream xÚmÉ=‚` à’.žÀ߉1‘ÁD'㤎]…Ä‹‘8p n #¡~ $(}úö­ëL<ŸL²å¸6y6í-<¡Óvf{¶ÝÃÅšÅ\¶(â]Î׊p9% ED‹Ì-Æ4 ð•Óžgö&ëÉ{ô¼øâ!1îå¥qƒú?µ\ÀÜ P˜ùCÁµ#ýA“dZz–4Àu ×,iºÔu8‹q…/ÂaoM endstream endobj 1064 0 obj << /Length 190 /Filter /FlateDecode >> stream xÚ}±‚0†K:˜ÜÂ#pO`iÀ‰1±ƒ‰NÆI4º æ£ðõ®ØîKÿëÝùÓd¹Ê0FM•j\i¼jx@½˜%\îPPGL2P[ê‚2;|=ß7PÅ~¤K<ÑäL‰•s ´Â9×óËy|¥9#l K#‚vÓœ_ó[¹Z²½äC„N Ò_‹¦C£•èFôŒÏ,úa8è—‘[NÔøXT®®þQ­€ü÷âŠÝ endstream endobj 1065 0 obj << /Length 218 /Filter /FlateDecode >> stream xÚÏ1NÃ@й°4¹¬—QY AÂTˆ (‘A‹ÃÍrÁå 3AzšWÌJÿ_¤ãæ”kN|y¹9á‡H/”–v¬¹Iû—û'Zun8-)\Ø™BwÉo¯ïVWg)¬ù6r}GÝšÅ3J•~ ZýôªýT™Mè¥Øa.åˆÊ)¥œ- ™oö̤Å/½ó`t™œÝÿ˜þRôø27ÈäVÖ¯½ifðöƒíh·¾hãÛ`+-·Rû¡ÔÑÒìNç]Ódvg9 endstream endobj 1066 0 obj << /Length 183 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bCSC…C®B.c ßÄI$çr9yré‡+[pé{E¹ô=}JŠJS¹ôœ€|…hCƒX.O…úÿÿþÿÿD|?€bØ0ÿ ÿAD}°ò€ÿÁ&> f0ñH0b!þO ¶ƒn%Ørv¸ƒÀî³?sóˆ?À>û æË `Ÿs¹zrríÇG endstream endobj 1067 0 obj << /Length 147 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù. ц ±\ž. õÿÿÿÿÄÿ Øæ Œ„ † ‚ƒ`|$€lthv›bˆ)ØŒ‡6 ¢Žä£ÿQ Ø.WO®@.ÌŒ‡r endstream endobj 1068 0 obj << /Length 145 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bCSC…C®B.c ßÄI$çr9yré‡+[pé{E¹ô=}JŠJS¹ôœ€|…hCƒX.O…úÿÿÿÿâÿHìó"ˆ Á€ƒø$`@±ØCLÁmQDýÿ ÿ!Ä( ,ÆåêÉÈæxô endstream endobj 1069 0 obj << /Length 227 /Filter /FlateDecode >> stream xÚÐ=NÃ@à±\¬4๬¥PY AÂT(PR$‚ÖÞŽkÍ ¸7eŠU†ÙI"QÒ|Åìß{;—Ý5袥ùŒº½´¸Á°ÐaC]8®<¿ár@ÿHaþVÇè‡;zß~¼¢_Þ_S‹~EO-5kVE*#TòÉPËŽaa¥'\¦BÙƒ°û‰«oè¹Ò\Qéõ4÷pf<á¢`2éß”²Oà$‡Ì˜gãßëíµúD> stream xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù. ц ±\ž. õÿþÿùÿŸñÿ?cÀÀ€êÄÿÿÿ±4± Nàô%—«'W žˆ‡ä endstream endobj 1071 0 obj << /Length 108 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bc SC…C®B.crAɹ\Nž\úá Æ\ú@Q.}O_…’¢ÒT.}§g ßE!ÚPÁ –ËÓE¡þÿÿÿÿÿÿà >ÿ†Áޱ¹›ËÕ“+ H¨X~ endstream endobj 1072 0 obj << /Length 156 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0UÐ5T0Ò† )†\…\Æ&@A ×"“œËåäÉ¥®`lÂ¥ïæÒ÷ôU()*MåÒw pV0äÒwQˆ6T0ˆåòtQ``ÿÿ¿ÿÿÿHXŒùÃ`'$@DœøD°?`øÇÀÿ€¡žAH¨?À`ò•üÿÿ @OþjÿÿhPœËÕ“+ UX‹ endstream endobj 1073 0 obj << /Length 218 /Filter /FlateDecode >> stream xÚEÏ=nÂ@àE.,MÃvN€m M,ñ#ÅE¤P¥ˆR%)S€B‹9QPr„ø.]¬lÞÛÈ¢ØOš·ÒüLÒÑt¦±Žñ&c&ú•ÈFRf1K~|þÈ<—èMÓ™DÏH%Ê_ôw»û–hþºPÔK}O4þ|©…3EÓµ¦s|–Æ@F öÄAÖ¤ÃØÈHaÀž8pnÀ…\]Ï­GЈ-8¶j<ì\  8hP÷Ãýÿø­žHF¬é–=a…‹,oËÚ>“U.k¹9‰s endstream endobj 1074 0 obj << /Length 123 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bCSC…C®B.cs ßÄI$çr9yré‡+›sé{E¹ô=}JŠJS¹ôœ€|…hCƒX.O…úÿþÿÿ€L€Å˜ŒÁN|Œ?ˆ êÿÿÿÿã?*ûÀåêÉÈé f’ endstream endobj 1075 0 obj << /Length 177 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù. ц ±\ž. õøÿüÿÀ ÿBü`°ÿW$þð‰ü{ª1ˆy Ÿ‘‰ùŒ0¢Ÿñ1Œh†í͇ÄqÑ|¼F¼‡ï™aÄ Ñ𕨠‚l¢è·?`¿!°—«'W ±,ˆ endstream endobj 1076 0 obj << /Length 194 /Filter /FlateDecode >> stream xÚUÏ-Â@à%ˆ&c¸Ì 迨¤”„ P‚$ޤu½Ö’[GEÓev›¶ æKÞ1Çî»hÑ8º&nL؃-;CF¹XïÀA_ í>¡ôpŠÇÃi º?!å—&+ŒRå"c¢(ɉ(§N+˜ÆµGÍSroˆ‰›‚W\¯Š‹"­àЬæüÏ ¦+éÕtI…–ðߣmÅ›h5|Ö ¸üˆ‹¢dXB]/†qsøº‰| endstream endobj 1077 0 obj << /Length 170 /Filter /FlateDecode >> stream xÚÅ1 Â@ERÓx„Ìt³Ž)R-Än!he!VÆÒBÑÖä¨9‚¥EØq™Š†Wüßü7sžæe”ÓÄ”Ϩ¶xAæƘ‡æxÆÒ£Ù3šUŒÑø5Ý®÷šr³ ‹¦¢½¥ì€¾"h é`,ò‚T¤'ÀuID ˆ§x¸/„ˆ¶Hÿ ¡øÙ÷®î9 ƒ›Zª¯šëpéq‹o¡lª endstream endobj 1078 0 obj << /Length 174 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bSC…C®B.cs ÌI$çr9yré‡+›sé{E¹ô=}JŠJS¹ôœ€|…hCƒX.O…úÿÿ0üÿÿÿˆø"þ3Åþ70`øH؃þ@‚ýŒ`?€#^¬„ùŠ^°Q`Cƃ-YÉ ²œä fƒ€² Ô$êÿ700€ F"Àb\®ž\\æ„wN endstream endobj 1079 0 obj << /Length 197 /Filter /FlateDecode >> stream xڕСÂ0à›jrfÐ{Ø::"#a‚‚ ‰€€îÞ e0‰XvtmC‚ùÄßöîOõh˜Ž)¦„Š´¦TÑ^á µ²aLiâOvGÌ ŒÖ¤FscT,èr¾0Ê–S²iNûf‹EN†`æÒY9†»Q‰¶3p‚qNÊNÙ3¼ÿ¶ßO0ïÉn‹ßè¶ ×ÄZ¿’J4½&}þ5tÊò›¦y+™A²ý ½-ؼ+Ô€³Wø2>z endstream endobj 1080 0 obj << /Length 236 /Filter /FlateDecode >> stream xÚu1NÄ@ E½Ú"’›a|˜„$ÕHË"‘ * D”H»$*â£å\!GØ2HQÌw€‰æÉãÿmÿ©«ãæT ©å¨”ºæDJÞsÕ ‰gõ­Ü?ñ¦åx#UÃñmŽí¥¼<¿>rÜ\IÉq+·¥wÜn…˜™åº2ûÐÌÌ4w„C0Mý€¤LúNÔéL”túAø ¨9ÁçÒ„Éa=tC¹6”8y€ÇF¢Ì›Ôa¥OÚ2éý/òaÁ<Ãô&ÄØùE>oùš¿åxv endstream endobj 1081 0 obj << /Length 124 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0b#SC…C®B.c˜ˆ ’HÎåròäÒW0¶äÒ÷Šré{ú*”•¦ré;8+ù. ц ±\ž. õÿÿÿÿÄÿÿ¡êêð@†H0 zÂþÿ(Qÿÿ—ËÕ“+ +òT¬ endstream endobj 1082 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚÕË1‚@…áG(L¦áÌtYY +ÄD ­,Œ•ZZh´†£qŽ@IaGhôf'_ñϬ‹gÉ‚#}SËÎqbùléF.b27§+e™=»˜ÌZ3™bÃûóB&Û.Ù’Éù`9:R‘s)U*µH]JóíØý^‡¿w˜ŸøÂ¤Ôè¨%ÂH«´RQCôª/ê‰~ú´*hGo8‚˜ endstream endobj 1083 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚeÌ;‚@€á!$Ópæº,‚Š1q ­,Œ•ZZh´.FÇ5¸”\5šo’2ã¹s? ›šqòò98^Ñ}G›|ç»9^0ÈväÈV2#kºßgdÑfAYL{NöELi iÛwÐw?>Í,À¨Ì Ìʰ ]’ xB˜i ¿´LHäÊ›1VÞL0óJRþa”…¢Vèu¦èZ À¥À-¾òVi endstream endobj 1084 0 obj << /Length 197 /Filter /FlateDecode >> stream xÚϯ ÂPð#†Á)>‚çt»ºËÂœà‚ É &5mÂ.øb_CY°N wíztøo,È¿ðNøìvÓéE‚‚ì69‚æWh .-rZùe¶D/@sL¶@³Ï5šÁ€6ëíMoØ%n}šðÏŸÂ :ƒš–ßæ}v%Ö$@ö—F•´T÷iX°zÒûÓ[õñ¬¿VÎÉ!zyMŽì-¹ß+_ªX=”Ey>JÍ3CN™.°àï{ŒK endstream endobj 1085 0 obj << /Length 226 /Filter /FlateDecode >> stream xÚEÎ1nÂ@б\ MÃ<'ˆm ÕJ„Hq”T)"* L‘(i½–RøZt)¹G L±Úá±EáçÝïÝñŸW‹¥2Ã3ŸÉ¢”}ÉŸ\YVØÖ>ì>xUsþ&Õ’óg¤œ×ùþú9p¾zyì×ò^J±åz-NS={èÅkg`ÕgÉ?EJ €E£AJ>.½€dÝœÀôt &Ú¤JI¡0rÏî熻ÇqžMÎþ û›û5¬·.M_Íf…[݆{ÂG¨èZµ>’¯‰±_õ?ÕüÊW®Kq{ endstream endobj 1086 0 obj << /Length 192 /Filter /FlateDecode >> stream xÚ­Í= Â@à )Ó䙘ÿ"U F0… •…X©¥…¢mñb ¯a—Ò”)®³‹¨pØùà½)6 GqB¼Q@±O[ªÎSQ6{Ì t—&èN¹E·˜ÑéxÞ¡›ÍÇÄ9§•OÞ‹œªªA â‹î¬ì†q“©ÍÒÚÐð@# ~8 ©¡¸ôŽæÚØ7űÚdzm˜'cÈúðh„¢ü/–ämÙý¢:œ¸À“^[Õ endstream endobj 1087 0 obj << /Length 191 /Filter /FlateDecode >> stream xÚmÌ= Â@à Óx„¸ ‰‚Õ‚?` A+ ±RK E[“›™£ä)S,;Îh%Xìûfæùh<¥” }å:exÅ\³T¿:8^pV¢ÝQ>E»’m¹¦ûíqF;ÛÌ)C» }FéËEÜ$ s­´àXBט^H”ȃ©ÁÃ@ž?|be¨®ŸàzY©E—ƒâÿðTZ_Õq×-`öRÅ!a~…ˆƒ„®K<.KÜâj/\ endstream endobj 1088 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚŽ= Â@…g°¦ñ™˜„Ä"•#¸… •…X©¥…¢­ÉÑr”aË€!ãN;±˜æï½GÓY‡®âg!ŸBºR¤³@[]/”òw%ä¯Ü”|³æûíq&?Ý,ØõïÝåLƹ©¿+ðx•ƒ“À—´€"Ò¡@±y‰Rx Œ-¶0ª±éþ~Ð*ž?¢uîmÖ½rç!0±ƒe¥æ] ÔEÓ`ç%ÐÒЖÞ*Åsz endstream endobj 1089 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚŽ1 Â@E¿¤¦Ik—9›°° Än!he!Vji¡h›äh%G°L2ΦÐÖ…}ðgÙ?of§óÇœêÅlS>'t#k5Ñ?œ®”;2{¶–ÌZ§d܆÷ç…L¾]rB¦àCÂñ‘\Á¤"iJzŒDˆÆ=á[5/”ÈjLAOåQ~Ñý‰ß¡@«B_ÕZ¯h4èÊJ—â5¡Î«µ^RMuZ9ÚѲuEJ endstream endobj 1090 0 obj << /Length 193 /Filter /FlateDecode >> stream xڕα‚@ à’.<} L— &Þ`¢“ƒqRG®â›á£øŒ—;[pqÓᾤ½´ý 5)+ÊHñ+•9ís<¡’^&¥|ìŽXLפ*LçÜÅÔ,èr¾0­—S⺡MNÙMC±€Ä  ÿ$z1Ú1Þwxï!"Ëûâ>ô<æôZ™iá&³N°?â>cíH ãRa¸ÊÉHŽ'c Ë:ÇÑ´m™¸O,Î ®ð —ºYK endstream endobj 1091 0 obj << /Length 201 /Filter /FlateDecode >> stream xÚmޱŠÂPEï’âÁ4ù„ÌìKˆ¬® ›BÐÊB¬Ôr‹mM>í}ÊûËâì}VÌ™;ܹ“ú³™i©“Ô¥ÖS=Tò'uÃù9&aÿ+óNüFëFü·â»¥žO—£øùêK+ñ ÝVZî¤[(²€ÂÐÛ f#2³;܃J>ÂPD´Cˆv@Z }•ˆ„‹÷c½C  ¤7¸¾Ð'Ð* 4u‘ö.æ7ú¹mp Ìb2ræcÀòÝÉZþI÷_þ endstream endobj 1092 0 obj << /Length 154 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0asSC…C®B.cßÄ1’s¹œ<¹ôÃŒ¹ô=€¢\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹ÿû@âÿÆÿÿ˜AûŸz ñHð?°*;&põÿÿÿš4A€Åðk£aÿÿÿ[~ `1.WO®@.òÅ^£ endstream endobj 1093 0 obj << /Length 253 /Filter /FlateDecode >> stream xÚ}±JÄ@†ÿ#E`š}!óšÄä”k.pž` A+ ±RK E»#›ÎÇðUò(y„”[,g‚²ìǰóÿÿÌÖÕÉzßòq¹áºâꜟJz¥º`;볟Öã íZÊï¸.(¿ÒwÊÛk~ûx¦|wsÁ%å{¾/¹x vÏ’€4¸ˆlnfxYé•DdöItÁ§S¶n\Å#7@efd=º`’El6X4jB*²`„éá¾fÀ}E_éh0‡íb•ôj“1SLÍ€,xÝ>v*‹Å!*:MÃö–Æ¢ó½:²?-y‰%Û§F‚Í@—-ÝÒ7ãè‚> endstream endobj 1094 0 obj << /Length 161 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bcSC…C®B.ßÄ1’s¹œ<¹ôÃL ¹ô=€¢\úž¾ %E¥©\úNÎ @¾‹B4Pe,—§‹Bý øÿ¬“Œ‘ò@dý ùóÿ? ùûÿ ùB~°o’äAdƒü ÉÀ$ÿÉ?Häz“õÿøÿÿÇÿÿIˆ8—«'W ƒzú endstream endobj 1095 0 obj << /Length 132 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bcKS#…C®B.cC ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ì ò ØþÃÄ@òx@ýÿ@ü€á?×C1;}pýÿÿþÿÿÿ†A|.WO®@.üØO) endstream endobj 1096 0 obj << /Length 169 /Filter /FlateDecode >> stream xÚÍ= Â@…_°¦Ð#d. ›ÍŸ B Fp !Vb¥–жnŽ–£xK q\‘`eïÀW¼ïñЉ£~2â€cîé!Gš“·š¦ÎO¤j‰Ô .»m÷Oñë1üêâþdXˆ÷„ÈVîŽ|¹¢-M -è§úX endstream endobj 1097 0 obj << /Length 198 /Filter /FlateDecode >> stream xÚÌ;‚@à%$Ópçò.¨H)L´²0Vji¡ÑV¸‰Wá(xŒ…[Æ_­Å~Éü³ó‡Á0ŠÑEŸ_ècäáÆƒ=’¹2Êb½ƒ4gA ΄Spò)§-8él„ôŒs˜ÃQ¹yÀ endstream endobj 1098 0 obj << /Length 115 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0b e¨bÈUÈel䃹 ‰ä\.'O.ýpc.} (—¾§¯BIQi*—¾S€³ï¢m¨`Ëåé¢PÿÿÃÿÿ‰zÁÀ<Œˆúÿÿÿ7ñÿ,ÆåêÉÈî{\W endstream endobj 1099 0 obj << /Length 171 /Filter /FlateDecode >> stream xÚ½Š= Â@…·[˜&GÈ\@7!Q°1#¸… •…X©¥…¢õ^,7ðæ[n±ì8šÎȃ÷WÃÑ3ä‚r„Å9œAl&’ø]ö'¨-˜\À,¤c—x½ÜŽ`êÕ s0 nå¹Û =œî=Cê¿bq䙣Ò1 S¥e¬”ö‰K•vI'ì’ö‡mrÿ/)Tžòì8R`ßû¾‡¹…5¼ízfÊ endstream endobj 1100 0 obj << /Length 155 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h ÊX.O…úòþÿ¨ÿ$þÿ$ÿÿÏÀPÿD2þÿ`ß$ȃÈù@’Hþ“Èô&ëÿ?:ñÿÿÿÿ7 “q.WO®@.‹£ll endstream endobj 1101 0 obj << /Length 183 /Filter /FlateDecode >> stream xÚ}Ž=‚@…‡XLÃvNàBL¬H·0ÑÊÂX©¥…F[Ù£íQ8¥…a†‚Îb^2ï}¹™KJ)*%³ K†w4÷Ò‹ó +‹ú@¦@½á)j»¥çãuE]íV”¡®é˜QzB[Ä_P¥ ¢:˜…ðá9o’.êAµ@9(¡dq%Ÿ»7@â'a¸ý/=ßµÓGÃ.^¬ÄTyhÆ ‰”pÁ A!\\[Üã>P: endstream endobj 1102 0 obj << /Length 200 /Filter /FlateDecode >> stream xÚ¥= Â@…g°¦ñ™ èfI"¦üSZYˆ•ZZ(ښͣä[.(w“€–‚S|Åæ½7q4HRYs_8Ö ù éL‘WCNâvµ?Ñ$#µá(%µp:©lÉ×ËíHj²š²&5ã­æpGÙŒs” V,ÈS*7;(& A‰]ƒt,¾à -À•ÇýGTÎÀµ@Û8×=ÓF–>¼®á ¡¯†¾$Úñ¼Ë_È¥÷ªùF­Ñ<£5½Þ¯ì endstream endobj 1103 0 obj << /Length 211 /Filter /FlateDecode >> stream xÚ­Ï= Â@à‘ ÓäÎ4 ÙˆVÀ‚Vb¥–ж&7ðJ{¯à Lig³ Z 6_ñBÞ¼Õq;éQH1µ¢.é„â­#Ü¡Ž$ )ѯO«-ö3 æ¤# Æ’cMè°?n0èO$éòÓ³!W© É¾Èùb Á|3à1³õP¢_6Äæ¬ri©Ölxz+=Õ>jO=®Ù]qÝu¿ôìªÊç÷B·V–ŸÅ´~…º[ëÎÿ)×DÅ\|kse8Ã'á·vG endstream endobj 1104 0 obj << /Length 158 /Filter /FlateDecode >> stream xÚ­É1 Â@ПJø—ðŸÀÝu£Äj!Fp A+ ±RKAEëõh9J¼AÊÁqc!Ú[̃™Ií`4-ØԈËÞð™m»îjw쎜{Vk±«y\Yù…\/·«|9ê½e_Hx’+5ÐCôÑ8´äÂ#‚$ÒRC®¡¹šˆ\õ¡ì¸ÿBÿ"¨¿xo<ó¼âõõIw endstream endobj 1105 0 obj << /Length 185 /Filter /FlateDecode >> stream xÚMË1 Â@ЋÀ4!s7q5Æ@T0… •…X©¥EÁÊÍÑrr‹ñ,,Þ2³óÿÔŽg©D’€MÅ&rŽùÆv‚=ê×þpºr^°Ù‹°Yã—M±‘Çýya“o³YÊ!–èÈÅRÈùr¨êGB®ù7 }Kïÿ´D#"×eZS¨¡W¡ÿ!§ˆ("P÷B Ca÷£}­¢9ª6A«ª=> stream xÚ31Ö3µT0P0bc 3…C®B.cS ßÄI$çr9yré‡+›ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ä€Àž¢þÿÿÿ @ü¿A€ÅH2…‚ù`€hàÀ ß €AþAý~ [@óÿ Œÿ€LxÀÀåêÉÈþ:B„ endstream endobj 1107 0 obj << /Length 148 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h ÊX.O…úÌÿþÿ`ÿ…¬ÿÁ $0ð()DÚÉ? õþÜÆðêdƒ=˜”ÿH2ÿcÿÏÀåêÉÈÄ£d> endstream endobj 1108 0 obj << /Length 186 /Filter /FlateDecode >> stream xÚ5Í= Â0ÀñW:oéúN`ú¥ÐÅB­`A'qRGE7©…^Ì­×è êØ¡4¾Ø”É? ‰Âé,&žQ@áœÎ>Þ0ÔÍÓ[}pºb*Qì)ŒQ¬¹¢zÜŸévI>ŠŒ>yG”½•¥:ÅôJ•^ý›]ƒS |Á-,ZHZX:È^<rœ[CÂ×Á准’qÊz¤b&Õg¤aì¦QŒ¥À½†¿À•Äþ$›Lã endstream endobj 1109 0 obj << /Length 174 /Filter /FlateDecode >> stream xÚ31Ö3µT0P0bcc3…C®B.ßÄ1’s¹œ<¹ôÃL ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h ÊX.O…úÿ `Ôðÿ?ÃÙaCÄÙ00~ @2?ÀDv`²N2~¨+þߎ ¿#Èß``’ ?Ÿ‡“¿¿G#«¾g``¨?øA6 Hû†@Rž¡†ËÕ“+ Ém¢ endstream endobj 1110 0 obj << /Length 202 /Filter /FlateDecode >> stream xÚEŒ; ÂPEoH!Lãœø£‚UÀ˜BÐÊB¬ÔÒBÑN!…Û²³t î@Ë!ãL@,ÞaæÌ»·µ{¸£¯Ûá¨ÏÛ™ lµÃfOÄܒ£¹©ZrÉŒOÇóŽÜp>âܘW!kJÆ‹/ŸLnRüQ;”H¡(Ô+€Øû­Üp{Íçh¼¯€/ O ¨.†êçê«oŸk> ¹¶´¬4¶ú…¥4Wè¬&F&ž”™äRŠ¢ª§ÚÑ$¡}¨xY& endstream endobj 1111 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚEαjÃ@ àßdˆ‚ÁzöìØ)ÍCšB=Ò©CÉ”dÌÐÒnÆvÈÐ×jé‹:tÍ&É=Žûîî$%ñÍpÄ!ø:ºãdÀñ-¯"z¥X£!—Znh’‘yæxDæQâd²¿¿}¬ÉLæ÷‘™òKÄႲ)—Ö³µ[{²v§È­õöð+ïðOPy5À‘ Æ@®²äÌ©¤äUíð·-Gÿ[ùÙ;z¿Êßàµ[*ö‚l”ãŽBÉ;¥v\ɼHer”;åSú¾H‹R §Z88 ¾~íKôÑßÍa{ endstream endobj 1112 0 obj << /Length 176 /Filter /FlateDecode >> stream xÚ}Ž1 ÂP †S2Y<‚9¯Å*B¡Vð ‚N⤎Š®­Gó(ï¤Ï¤c‡|?!?É'ãéœSžèä3>gt#Í”»Õ§+•žÜ^wrëŽ~ÃûóB®Ü.9#Wñ!ãôH¾â"Æ…ôPŒ‚¢x+š—"B I À/ >Š¡€i`˜¦$fà_£…$hŠ¡¨†¢Šj(ª¡D{£{-ÐÊÓŽ~æêb° endstream endobj 1113 0 obj << /Length 203 /Filter /FlateDecode >> stream xÚ= Â@…_°L“#8ÐMLRØðL!he!Vji¡h'š£å({„”!qœ-–6ß²ó`ö}›ÄÃtÌ!'<ˆ8 9ñ1¢ Å© å»äp¦iNfËqJf)c2ùŠo×û‰Ìt=ãˆÌœw‡{ÊçŒÞ@в¶^m ´­…ו„û•W÷¨”x:ô däTLdOñ”€_Öû'¤X`–*ºw]!WÒ¢qµ½z¨‘º9KõUóïÐ"§ }}dà endstream endobj 1114 0 obj << /Length 141 /Filter /FlateDecode >> stream xÚ31Ö3µT0Pac S#…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]Øø XŠí¸ˆÿ7001;×ñ¾Äójä‘Ô®ÿÿÿÁÿÿÿ?À0ˆÏåêÉÈÅFJÜ endstream endobj 1115 0 obj << /Length 222 /Filter /FlateDecode >> stream xÚe1N1Eÿ*…¥i|„Ì ð.›-V Ab $¨(U ¤A›Ý£ù(>BÊÑóÓ„,?kÆÿWíEw¥µ®¸kí.õµ‘i;¯O%/¶ï²$=iÛIºó®¤á^¿>¿ß$­n´‘´ÑçFë6Šx0ڄʬ ˜íÍŽX⌾T†~ÂèËϰœfGvÄlŽâgØ×ÎOÈ —˜À<|žðHTGÇ‚+î©¥µ§Ë‡D5ÿWôTŒL3ü*Ù¡¸=·‡2šÿÐþ‚½,·ƒ<Ê8hñ endstream endobj 1116 0 obj << /Length 226 /Filter /FlateDecode >> stream xÚEнNÄ0 ðÿé†J^òñ @ZÚHH•îC¢L ˆ @°Ò>ZåáÆ§úl·ÀŸDZãTåe}Í9W|Qp•s}ů}PYkP·å|òòN›–Ò#—5¥[ SjïøëóûÒæ~Ë¥?œ?S»c„€Nz¬DÈDF‘â˜Mˆ&4=:4§WâLì• «hLºVÆÚšÄQ—5Aýâ1;Í,òw×Ki üs°Ä™ãÇ…à Îdw;«Ò-¯—y"ŸÍ§\Û¼>¹ÿí[z 3áVc4 endstream endobj 1117 0 obj << /Length 181 /Filter /FlateDecode >> stream xÚ•Ï=‚@à!$Ópæ.¿ bâ&ZY+µ´Ðh £pJŠëL±hë$ó%ó^5YºÌ Š(áÍʺÄxÇT²HN)Î7¬4ª¥ª §¨ô–ž×Uµ[QŒª¦cLÑ uMþÁÄ„B9ÓÌÆ›‹‘ñGÐ3aç(if ãMŽÅ( Œ/½#ì˜`Ëc„÷—V2öOZË¿Z;ý®5îñÜþtý endstream endobj 1118 0 obj << /Length 207 /Filter /FlateDecode >> stream xÚ¥Î= Â@à‹À4{„Ìt³&)!à˜BÐÊB¬ÔÒBÑÖ,x¯’£xË’qFEÐÖæƒÙ}o“¸v)¢„ZŽ’ˆRGk‡;ŒSʱóÚ¬¶ØÏÑÎ)NÑŽeŒ6ŸÐaÜ íOäÐiá(Zb>$Ã\CÈÌßÈÌüǹ.ì5ïªTʺ)ñ7¢ ½œùPÐ €ù\è)'…ߘ'å-,e›ù$9óÒ‘• i«ÌŒþ `¾AƒYÒ Öš G9Îð-²c— endstream endobj 1119 0 obj << /Length 241 /Filter /FlateDecode >> stream xÚmŽ1NÄ0E”"Ò4¹ž @’T––E"Th+ ¤Ø´±æ£ø)S„ ãÍ“ü=3ÿuíEÅ5w|ÞpWsÉ/ ©í5ÔgûýóüF»ªGn{ªn5¦j¸ã÷ÓÇ+U»ûkn¨ÚóSÃõ†=6™Ì@! `dÕHpÑë³Îç³¢˜¢¢Œ°0g0º°¿p ã†\ÏF<'Ÿ"D´MÖbLz[‚Îë€õZj6]*7DEñã?°?(£j”A…LP5ãË GÕÔ¡˜µ(O•Y*GÒ@BRƒæ ›è þ5pI endstream endobj 1120 0 obj << /Length 183 /Filter /FlateDecode >> stream xڕͽ Â0à+Â-¾Þ hÓ NB­`A'qRGEÁÉöÑú(}„ޤzW©Eqñ _Èå~3°#ò) ¾¦À';¤Æ#ËI~š×Ïö€¡Cµ"cQÍ8ÊÍé|ºìQ…‹ iT­5ùt]ãÁ‘ Ù'é`œ010%p1ßà ­‚içBÆt*R¦—€t 2;nB)¼û½¢¦•×4㪙_T+~Ѭý‹.œ:\âãM† endstream endobj 1121 0 obj << /Length 213 /Filter /FlateDecode >> stream xÚ}O» Â@œ`q°M>!ûz‰I «€0… •…X©¥…¢­É§åSü„”Áõ²W؈p w»3s3Y:Ê'sÆÃ„³˜ó1ºPš»¡{¦~s8Ó´$»å4'»tc²åŠo×û‰ìt=ã„ìœw Ç{*ç Ó(¤Džˆ¼`D:„y#jAÔ BQ»SQ]9h@ø”¢9…׆mðÆ 3/"-PIÿoÓ™n•§ ÕªË×ÙñÍó?|ÉR3{¿¾‡6ÒnÚRûúæ}Z”´¡ëån endstream endobj 1122 0 obj << /Length 245 /Filter /FlateDecode >> stream xÚm1NÄ@ EmÉÍa|HB’b«‘–E"Tˆj¡¤`í&G›ŽkøéHÅü 4ÒÓØ£ñnêóv+¥4rVISJ{!O¿rÝ¢‰²þ~9¼ð®ãâ^ê–‹k´¹ènäíøþÌÅîöR*.öòPIùÈÝ^(Ÿ‰(`)3SÚ˜èç¹1›É+-:%ô8p'?, ó\üú‡%ᔀ^Ê‚úH½"È4Ÿ)ÂM¡ñ©úP¨9%7¹Hiè/üŠ!©¯ Gó«dLºâ!n&{„ÁÈë•|ÚÒöÍ J™MøÞc_u|Ç_ž!r· endstream endobj 465 0 obj << /Type /Font /Subtype /Type3 /Name /F21 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ -1 -19 45 58 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 21 /LastChar 126 /Widths 1123 0 R /Encoding 1124 0 R /CharProcs 1125 0 R >> endobj 1123 0 obj [43.59 0 0 0 0 0 0 0 0 0 0 0 0 43.59 0 43.59 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 43.59 0 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 0 0 43.59 ] endobj 1124 0 obj << /Type /Encoding /Differences [21/a21 22/.notdef 34/a34 35/.notdef 36/a36/a37 38/.notdef 39/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 60/a60/a61/a62/a63/a64/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 91/a91 92/.notdef 93/a93 94/.notdef 95/a95/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122 123/.notdef 126/a126] >> endobj 1125 0 obj << /a21 1057 0 R /a34 1058 0 R /a36 1059 0 R /a37 1060 0 R /a39 1047 0 R /a40 1040 0 R /a41 1041 0 R /a42 1048 0 R /a43 1049 0 R /a44 1050 0 R /a45 1056 0 R /a46 1051 0 R /a47 1052 0 R /a48 1113 0 R /a49 1114 0 R /a50 1115 0 R /a51 1116 0 R /a52 1117 0 R /a53 1118 0 R /a54 1119 0 R /a55 1120 0 R /a56 1121 0 R /a57 1122 0 R /a58 1053 0 R /a60 1042 0 R /a61 1054 0 R /a62 1043 0 R /a63 1062 0 R /a64 1061 0 R /a65 1063 0 R /a66 1064 0 R /a67 1065 0 R /a68 1066 0 R /a69 1067 0 R /a70 1068 0 R /a71 1069 0 R /a72 1070 0 R /a73 1071 0 R /a74 1072 0 R /a75 1073 0 R /a76 1074 0 R /a77 1075 0 R /a78 1076 0 R /a79 1077 0 R /a80 1078 0 R /a82 1079 0 R /a83 1080 0 R /a84 1081 0 R /a85 1082 0 R /a86 1083 0 R /a87 1084 0 R /a88 1085 0 R /a89 1086 0 R /a91 1044 0 R /a93 1045 0 R /a95 1046 0 R /a96 1055 0 R /a97 1087 0 R /a98 1088 0 R /a99 1089 0 R /a100 1090 0 R /a101 1091 0 R /a102 1092 0 R /a103 1093 0 R /a104 1094 0 R /a105 1095 0 R /a106 1096 0 R /a107 1097 0 R /a108 1098 0 R /a109 1099 0 R /a110 1100 0 R /a111 1101 0 R /a112 1102 0 R /a113 1103 0 R /a114 1104 0 R /a115 1105 0 R /a116 1106 0 R /a117 1107 0 R /a118 1108 0 R /a119 1109 0 R /a120 1110 0 R /a121 1111 0 R /a122 1112 0 R /a126 1039 0 R >> endobj 1126 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚUбjÃ0`‚[ü¹'ˆl—f2¤.ÄC¡2„LiÇ-ÍjûMú*~“úÀì^Ÿ0Sá1Ãôu…ІSêNä:&^ Bò;gµê™rA³Àþ3pÀUˆ£ ‡9IŸFè„2 „ÖÓx&UúÊB„$àœ³à)´ž†n° ÐŒ'ÑÄÂ(èÀ ðû#GÒ¾£æ´þÏÏ$tÖÏ5¼Á ÷ " endstream endobj 1127 0 obj << /Length 147 /Filter /FlateDecode >> stream xÚ31×3²P0P0bS3S …C®B.˜ˆ ’HÎåròäÒW0±àÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(0ðÿ,¤<ø#02i;Y߀üÏ€‡dü‡A‚-g’°‘@jØà#ù?à#1½…ßs¤z‘ËÕ“+ Æälñ endstream endobj 1128 0 obj << /Length 250 /Filter /FlateDecode >> stream xÚ}Ñ;NÄ0à )"M“#x.¶%m¤e‘H¢J VK-GñR¦@;ÌØR,$R¾dìøñ»i..[räo¨õÔ:zñøŽ#½ÛMnz~Ãmö‡öFêhû[:ì?^Ñnï®È£ÝÑ£'÷„ýŽ bЫãYžó1ÖX«µ0ió0,¥PH¥¡”öZ:JïJÞ€33§¡BbŠ c$ÍRdŽ‘òsMµDê̼Ƅ5yä“äéþB·Éð/P‡oô¿“˜é‡)Òed’ŽÉÌÝÑ/Ù1ÀHÐÜcâCB×L sH§‘–¯xÝã=~臄 endstream endobj 1129 0 obj << /Length 296 /Filter /FlateDecode >> stream xÚ}‘1NÄ0E¹°4MŽà¹$Y´¡Œ´,) ¢@T@I‚Ú>ZŽ’#¤Ü"ÊðÇŽ`WBD±Ÿ4ãÿùn›ófÃ575ŸaµÜÖüÒÐ;m5\óåOîùv=U¼ÝPuƒUý-~|½Rµ»»â†ª=?6\?Q¿gcLy0úÑÝŠ €/¢É0ùÁ-Æb À"‚ ‡¼DSN8GQ7è¯ ãm4êa@KÚ¯œl†6ù…ö:˜àO ü ?ê­ÿ¢Ò¤§ñI-¶#@¹Nå!&å HÑV@r7Ø"ÐãG»$KP“ ‘ä·À7Áøm'õ=&Ç%û²ÿ]F)¢fâ§ôTë‹­psÆ’`W$åúXÑÐuO÷ô Åþªb endstream endobj 1130 0 obj << /Length 197 /Filter /FlateDecode >> stream xÚmÎ1 Â@Ð/Â4!sÝ„Ä"U F0… •…X©¥…¢uÒy­=ŠGHg@qœQ°YxËþ]þNœSyăˆ“ã”·(N4 -yßlö”—ä–'䦓+g|:žwäòù˜#r¯"×T TèJôådòä.´¨j\‘Õ¯ÿå›ý¡/Ö,V*V*vª,~"h•Ì+ú‚ÎC·ºF¯ÕAô¹øJ§1î­vÞriì@“’ôÑA[l endstream endobj 1131 0 obj << /Length 197 /Filter /FlateDecode >> stream xÚuŽ= Â@…_ˆ˜&2ÐuI¬þ€)­,ÄJ--«d–£ä–)ÄqÔJ›¯xóxó¥ÃþÈò€‡Ü³œYNG¼·t¢4ÓpÀÙû²;Ò¸ ³æ4#3טL±àËùz 3^NØ’™òF‡¶TLHîä„"@,âˆÔÈ›¤Få¢O„.x pa«ÕèþAÜ(´ôSä_TøƒÒãùEù»×ñ+]ä5nHš Uϸõz-"‘ÆÛêñ¹zЬ ½‰ÞDN endstream endobj 1132 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚ…Î1 Â@ÐR¦Ik—¹€nŠ`µL!he!Vj)¨hõf9ŠGHi!'A+›WüaþŒ Ƨ<â~ÆÃ”í˜÷ÉZ Ó6é&»#å™5[Kf®1™bÁ×Ëí@&_N8#3åm©˜2à<Ȉä $òÒH@î ‚%§ÕH?ø¤jñˆ½ë€RvˆHä­Åš/å‡J\èå:VDjÄ"B½£·‹NŸ§YA+zоX, endstream endobj 1133 0 obj << /Length 158 /Filter /FlateDecode >> stream xÚeÉ1‚@…áÙPL㘸°DÝÎ1q ­,ŒZZh´†£y”=Âv®‘€C¤!_ñ¿§ô4]PLs–Î(ÕtNð†JsÇ]vGqÅÌ <Ò(7¼¢4[zÜŸ”ÙnE ÊœŽ Å'49€ƒ:d‘¾´Â·V|Ø·àí h-«@ЄuÏ3÷7騡è5´¬ÆJkz¸6¸Ç$F=b endstream endobj 464 0 obj << /Type /Font /Subtype /Type3 /Name /F20 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 3 -10 63 60 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 65 /LastChar 114 /Widths 1134 0 R /Encoding 1135 0 R /CharProcs 1136 0 R >> endobj 1134 0 obj [55.36 0 0 0 0 47.28 55.36 0 0 0 0 0 0 0 0 0 61.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39.9 0 36.91 0 36.91 0 0 0 0 0 0 0 0 0 0 0 0 28.37 ] endobj 1135 0 obj << /Type /Encoding /Differences [65/a65 66/.notdef 70/a70/a71 72/.notdef 81/a81 82/.notdef 97/a97 98/.notdef 99/a99 100/.notdef 101/a101 102/.notdef 114/a114] >> endobj 1136 0 obj << /a65 1126 0 R /a70 1127 0 R /a71 1128 0 R /a81 1129 0 R /a97 1130 0 R /a99 1131 0 R /a101 1132 0 R /a114 1133 0 R >> endobj 1137 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚѽnÂ0à‹¨„tCy„Ü €”D°4?*µS‡Š ;€`%{ž$‰ÞYÝ¥¨~Pþß¹þ}ã_(E‹|§¥ê¢ïÀýæ- qTŠæ\é$ìNáÉ<OÏU·iGÓ×*\æøŽ7›Ñù endstream endobj 1138 0 obj << /Length 197 /Filter /FlateDecode >> stream xÚuÎ= Â@à )„AÌv. IH¬„¨` A+ ±RK Eëäh9JŽ0eŠàsÖ¿B–fvöͦÉ`8æˆîÇœFîb:S2Ò¦–ñëf¢,§pÃɈ…¶)Ì—|½ÜŽf«)k=ãmÌÑŽò›¥1€˜Ð àIé¨lÓQ*uPz¨{ƃtu\Ì_<—e ¾#pXd‚RÜu®h4_äïCãë°~C_X€7ö•ܺRÔºžæ9­é“w”É endstream endobj 1139 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚ¥Ž= Â@F'¤Lã2ÐÝeÁ*#¸… •…X©¥…¢uöh{”ÁÒ"dœUÐØ<øæ÷z2%M–Æ†ìŒ MGƒ´¥5æÓ9œ±v¨¶dKTK)£r+º]ï'TõzN’ÚÒ{t AÊ ç e†„™C‘EŒØ·! ÷UYDê«'Èìÿ‹÷•ïÑ HBü‘½ :qasÕºhêyˆö²“JÂ…Ã ¾±Flè endstream endobj 1140 0 obj << /Length 197 /Filter /FlateDecode >> stream xÚuÎA ‚Pà_Z³ñÎJ-Á¥P¹jÕ"ZUË ¢ÖÚÍ<ŠG˜¥ q“‚þyæ&ã(â€'< 9 º{ éJÓØ†Ãþåp¦YFþ–§1ùK“Ÿ­ø~{œÈŸ­çl9å]ÈÁž²”1ÐðT€\8ª­T14 WŸZz-´òäUR#‘7¹ôxojýbç/¢€ùÿP¶AÒÛëˆÛb(®–‰t­¤ë'0Jë¬]{ûéX¢EFz¢Sƒë endstream endobj 1141 0 obj << /Length 137 /Filter /FlateDecode >> stream xÚ36г4T0P0bc ²TH1ä*ä22òÁ\Dr.—“'—~¸‚‘)—¾P”KßÓW¡¤¨4•Kß)ÀYÁKßE!hL,—§‹ƒýû†úÿþ?âç@üˆÿ#ã ÿÿb†ÿÿ€øÿ@¨‹ëØþ—«'W ºÙfG endstream endobj 463 0 obj << /Type /Font /Subtype /Type3 /Name /F19 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 2 -2 55 60 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 71 /LastChar 114 /Widths 1142 0 R /Encoding 1143 0 R /CharProcs 1144 0 R >> endobj 1142 0 obj [60.89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43.59 0 40.6 0 42.44 0 0 0 0 0 0 0 0 0 0 0 0 30.91 ] endobj 1143 0 obj << /Type /Encoding /Differences [71/a71 72/.notdef 97/a97 98/.notdef 99/a99 100/.notdef 101/a101 102/.notdef 114/a114] >> endobj 1144 0 obj << /a71 1137 0 R /a97 1138 0 R /a99 1139 0 R /a101 1140 0 R /a114 1141 0 R >> endobj 1145 0 obj << /Length 193 /Filter /FlateDecode >> stream xÚ1 Â@E'¤L“#8ÐMVÐØDˆÜBÐÊB¬ÔÒBÑ6æh9JŽÒBÄ¿nˆìkvvçÏ›¡è‰D2–¾ŽD'2Òrˆù̸ٓèöiâ̰ڈŽX-Pge–r½Üެ²ÕLbV¹lc‰vlr!¯!¿¦ ¢°¤^IS¢”¨ zZ¼ù ¡Ô–TÔsà{Yîß æõÅO”ËïÆa´s€LX·n„*„¡íümPúéDÄšXÖkxnxÍo¥RP· endstream endobj 1146 0 obj << /Length 193 /Filter /FlateDecode >> stream xÚ= Â@…_°Lã2ÐMÖ´I F0… •…X©¥…¢hŽ–£ä)SHp6-e¿fw™7ß辞²ÏCîiŸõˆÇšInæLtûµ?Qœ’Ú°öI-äTºäëåv$¯fJx°¿£4á ¸!à º9\¡@§48œ ÔÀ£á DBf/oéZŠ/$È-ÿ¢ø²ùŸu^Ö:D’u«ª‹¶õ7ûí\f †MY©Ló”ÖôZþT endstream endobj 1147 0 obj << /Length 101 /Filter /FlateDecode >> stream xÚ32Ö30W0P°PÐ54P04S0WH1ä*ä‰ùæP‰ä\.'O.ýps.} 0—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Â?³±±±¨¨((øÀåêÉÈåD— endstream endobj 1148 0 obj << /Length 85 /Filter /FlateDecode >> stream xÚ32Ö30W0P°bC3s…C®B.ˆMÎåròäÒW0çÒ÷ž¾ %E¥©\úNÎ †\ú. ц ±\ž. ÿ €ËÕ“+ hz¯ endstream endobj 1149 0 obj << /Length 93 /Filter /FlateDecode >> stream xÚ32Ö30W0P°bC3cs…C®B.ˆOÎåròäÒW0çÒ÷ ré{ú*”•¦ré;8+ré»(D*Äryº(üƒì*ËåêÉÈžã: endstream endobj 1150 0 obj << /Length 131 /Filter /FlateDecode >> stream xÚ31Ñ35R0P0bc 3C…C®B.c3 ßÄI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ€|…h ÊX.OÆìØÿ ~!"ìAD=¨cÿ€àŒ`¤ ñÿ?ÐlPvP\®ž\\P'è endstream endobj 1151 0 obj << /Length 244 /Filter /FlateDecode >> stream xÚ]Ð1N„@ÆqÈ“¼fŽ0ïnÆXI²®‰&ZY+µ´Øvæh…#PRÅ÷>ÔÌ:„üLÂ^g› .ù\î°ápɯí)”¬—<ꇗwÚ6TÅ÷¹¦ùê˜/ ¼%‚NhWd·¦-²þÈ•áF~-MfV™€4Ùè9ì ¤Éõ@jŽ@Ò|Êò æ¶DÐÅvƒîzºi辆œ€ endstream endobj 1152 0 obj << /Length 210 /Filter /FlateDecode >> stream xÚuν Â@ ð”B–>‚y¯¥VÝ ~€ÄIõÑú(}Ç¥ñ’£¶î¹»$ÿ$Å ijOQ2£s„7Ƕ¥”‡Óçš=c4k{‹&ÛÐãþ¼ ™o¡YÒ!¢ðˆÙ’˜ù `-ÕZµWb ¬–b *ѯEO'«¯?rûÓuùU;ÍMNu—ìm2Ôl ¿T~7U7O“á-¦yëÐYˆÁÝë0ï÷ê4E_çºëUižR-ú™ \e¸Ã/-©J endstream endobj 1153 0 obj << /Length 196 /Filter /FlateDecode >> stream xڥб‚0à“[xï ,$a"ALì`¢“ƒqRGÎòh< ÀÈ@¨½6ÊêÐ/¹kÒÞý"]¦+ 0ÑG ^Cx@ë: ’..wÈ%ð#F1ð­î—;|=ß7àù~!ðO!g*¥*Æ´­±7ªÒX3¥Ë†ÌZÒïH¯'gŠdÖOi¬È̸¨Gýftnm§z®Ýß:¯ýüÕLçqçÌœùíFª6µ[Ûl”ŒMiHÌIR§  øOž“ endstream endobj 1154 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ31×3²P0P0bS …C®B.c3 ßÄI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁÜКì=,'Lp¹zrr˜‹r endstream endobj 1155 0 obj << /Length 232 /Filter /FlateDecode >> stream xÚбnÂ0àC –ná¸(Nhš*€Ô •Ú©CÅŒ  vNÍÂ#xd@÷'@iÕ©Ë'û,ŸÏž'’H.cÉ™$²JyËYfEÛŽ»“å†ËŠý»dûg+³¯^äs÷µf_¾N%e?“T’W3!êkCD…LÕ ªœ¹§Akq"³Ž4 „#³¡^è©]yêÛ"wlEtF8Ü[„ßÖÍߢñ¿,4ÞkÝî%w¯ÿ^ÅäæºÎ#ÄO]į]D0@KÆ´”lÄb›^¼$i©ê-a¤ÍóŠßø ˜´ŒÉ endstream endobj 1156 0 obj << /Length 88 /Filter /FlateDecode >> stream xÚ32Ö30W0PaC3S …C®B. ×ĉ'çr9yré‡+Xpé{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ“ ¸\=¹¹¢9K% endstream endobj 1157 0 obj << /Length 281 /Filter /FlateDecode >> stream xÚ­‘1NÄ0E¥ˆ4¹$FÚPZZ‰HPQ *–’uÒq-߀+ä)SDþ؉¢"Vü,û{<ó§q§îŒkÞñ‰ÃÜpSóÑÑ íjÖq¾=>Ó¾¥êŽw5UWاª½æ·×÷'ªö7ì¨:ð½ãúÚSLF¿NzÌ™Èä"#`Ef œíø!£R,}0ÊÁäÙqƒFĕJÕ"-A#­è4ƒ®ÿš£ï%"ü+Öнþ3OP ”|Že `ÇlIÕ A÷1iÝÝgôÅ*V{qU‚iÕH?òm2,W"’Ú!©9±;ÅÔ…Ô¬?D”cBj¤M(æ„%"C—-ÝÒàçK endstream endobj 1158 0 obj << /Length 247 /Filter /FlateDecode >> stream xÚ}=JA…K&h¨dŽ0uíùc6lYWpA#YÔpƒ¡ûhs”9„,S¾qÃM>êïU½î¶»ª)¥•ËZÚZºRÞ*Þs³B±”®þë¼îxݳ’fÅþeöý½|~|½³_?ÜHÅ~#Ï•”[î7B™Q¡QÔ™.T5eÀà ùL:)ŒäRH”¥˜ˆR„ˆÌg¡§9“Q€0ŽËYä¹"Ä5ìVÍÁ:+²Ž ÑFhrÌ 7¶(?Áþ‘…›® /†ohǬq% 8 I™¦ˆçÃäf®–‚S|Ûó#ÿï·|ï endstream endobj 1159 0 obj << /Length 104 /Filter /FlateDecode >> stream xÚ35Ó35T0P0bScS …C®B.K ßÄI$çr9yré‡+˜Xré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(üƒ"(ö 0JÑœârõä äNÌlo endstream endobj 1160 0 obj << /Length 301 /Filter /FlateDecode >> stream xÚeÐ?KÄ0ð”…,ýÉ'°W±ô¶Ây‚ÄÉstPtÓ¶~³ˆ_$âàq0`èù>MãÙ»!ä÷æyò–ó½ƒ}9“9²”Å\®r~ËË‚êJl\ÝðEͳsY<;¦UžÕ'òþîášg‹ÓC™ól)/èä%¯—²gŒµŠ±T·A Z“„—žªêFu¤è‡Ty™ ¯AByµt‡ÅŸvªT{5PòFê½\”/¥Ê±hTÿ§Š­—…D×`Ôb¢—Å&(TQÌ уƒ4ÔÒ 5ˆ«R…läH"HCâjÑ¡ YšW=“ $H±©ØD/†„v§¯Í6[ÒAïA ‰Y}œ—ÚQ =Zè›ôäÕŠÖˆf¶ÄvÄ ¡ÿ‹ÕüŒÿãLJ endstream endobj 1161 0 obj << /Length 229 /Filter /FlateDecode >> stream xÚÍÏ=NÃ@†á±\XšÆGØ9Ñ­‚„ $¨(¤LJêuGÉ•|Ž€à2…µË7ƒ¸…õhýóÎ8„³óKYI‡+\H¸’׎ß8¬q^éQ¼ìyÓ³”°f‹»ìû;9¼wì7÷×Ò±ßÊÞ|æ~+e ¢f6Ú9ÀMqRF#Žnip'…Z¥P³U™š ªA½PUÐ:A!Ðâ[DJi2˜‚hŒ-ºÇBÙ¨”:#©SjYM"ú¡ëPúœŒ/#~ëâäì7þh5 ²ÑübÉßôüÀ?IÀlþ endstream endobj 1162 0 obj << /Length 183 /Filter /FlateDecode >> stream xÚuŒ± ÂP ES:²ÔÑAh~@_¯K§B­`A'qRGEçöÓü”úBcZÜD.gÉÍ=.¥“£©%—Kéhñ‚.¦>É·9œ1/ÑlÉÅh–zFS®èv½ŸÐäë9Y4í,Å{, ‚¨_B‘:yDÂvA;ÿ5R`Àãÿd¬V«‹£Îã¬ñ¸ªýé~ðY”ª¹j2ÎúͰ}s Oö:\”¸Á5y\, endstream endobj 1163 0 obj << /Length 180 /Filter /FlateDecode >> stream xÚ½Ž½ Â0€¯8·ô¼Ð4¦N…ZÁ ‚N⤎ŠÎí£õQú;”œJÝ\Ìð…ûÿÒùlI -hª)•?¡‹Æ;#I u_9ß0·¨d ª¤QÙ-=¯+ª|·"‰ :jJNh ò ïˆ:AÌ‚ŒkðÌ 0³vY \Õ¨iôah@ù‰¬ú_ xØùþZ·ŽÛàâ‚UüD²ä ü$ø‹àÚâßu} endstream endobj 1164 0 obj << /Length 179 /Filter /FlateDecode >> stream xÚ36Ó³4T0P0VÐ5T06U0¶TH1ä*ä2 (˜@e’s¹œ<¹ôÃŒ ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.Oæ òÿ0ÔÿÀðÿÿÆÿÿÿ0!û†þ ò8€˜Á¾‚븈ÿ‘õÀ̱?ÀÀ4— h‡û†:ö?Ìÿ˜ÿÿÿtà[>€ÝÄþ‡ËÕ“+ ßrDª endstream endobj 1165 0 obj << /Length 187 /Filter /FlateDecode >> stream xÚ½Ž1Â0 E]u¨ä¥GÀ€$1E*E"L ˆ @077£Gé; š4°ÀÆÂò$ûÿÑp0!IšúŠô˜2I{…'ÔÚ‹’2õÚ쎘[kÒÅÜË(ì‚.çëE¾œ’Ÿ Ú(’[´€qÿCZ{˜‡³qóÍÅÌì’6a—6»^ ”ÎTþ¢³»2>ÐþŒ¯á³GùJ ¹é=~w‰»jQW¸í\Mh€3‹+|'bo endstream endobj 1166 0 obj << /Length 193 /Filter /FlateDecode >> stream xÚmŽ1‚@E?RL!G`. +¬šØH‚šHa¢•…±RK v8Gá”d×!R:Ékþäý=/BžpÄ£õŒõ‚¯!=HGNxÚo.wJRRGÖ©­Ä¤Ò¿žï©d¿âÔšORt¦tÍð 0@n ÇÚÒµ¶òZ¿ök·ñ+§ J´AO\ ‹e.d?:+°¦Ðaz²qw"–B…_c(/,]ã¹oÐé¹­¥¹„k@›”ô ÍUH endstream endobj 1167 0 obj << /Length 133 /Filter /FlateDecode >> stream xÚ32Õ36W0P0b# 3C…C®B.#3 ßÄI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ€|…h ÊX.O†ÿ Ìÿ0ð±<Ûq}ㆠ Aø3“ÿÿÿƒ™É4‹Z˜ËÕ“+ Û[þ endstream endobj 1168 0 obj << /Length 234 /Filter /FlateDecode >> stream xÚ}±J1†ÿåŠÀ4y„Ì h6ç\·pžà‚Vr•ZZ(Úš> stream xÚ31Ò³T0P0bcs3…C®B.c4ƒH$çr9yré‡+pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ100Ð3þaøÇÿ¿áŸüÿÿêÿ?ø÷ÿÿ‡ÿ?äüÀþãÿæÿ˜ÿüo`üóŸÿÑs¹zrr¦…{ endstream endobj 1170 0 obj << /Length 95 /Filter /FlateDecode >> stream xÚ3´Ô³0Q0P0bCSs…C®B. ×ĉ'çr9yré‡+Xpé{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þC¨'p¹zrr4ö+³ endstream endobj 1171 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚ½Î;‚@à%$Ópæ.bK‚˜¸…‰VÆJ--4Z³GÛx:)ã?ÁMöÛ×ìÌäÉ|Á ë̱$|NéFY†ótÔ‡Ó•JGvÏYFv[²nÃûóB¶Ü.9%[ñ!åäH®âÑ`ü›ÙÂD=ˆ;P´ n€x3‚8„„=ˆ:· h@í`'Òþ@ˆ|,oå…¿â‘EŒæ3µRxE ÅJ¤u#í TfÚP ­Ú¤™¨'<­íè 'µwÕ endstream endobj 1172 0 obj << /Length 89 /Filter /FlateDecode >> stream xÚ3´Ô³0Q0P0bC3…C®B.s ×ĉ'çr9yré‡+˜sé{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þQ¸\=¹¹6VLÖ endstream endobj 1173 0 obj << /Length 165 /Filter /FlateDecode >> stream xÚÕL;‚@\BAòŽÀ; ! V$ˆ‰[˜hea¬ÐÒB£µ{´= GX;ÌŽ‹–žÀb2¿Ì”Åd>å”Ë)ç3>ft¡"÷þcÇ¢=S­Hî¸ÈI®|JR­ùv½ŸHÖ›g$ÞgœH5,‚—{ábèÂ%0´{ ŒžðªO[YtÑ`b BG:„ˆzè~¸rßï!Z*ÚÒK=Ù endstream endobj 1174 0 obj << /Length 137 /Filter /FlateDecode >> stream xÚ31Ò³T0P0bcsc …C®B.crAɹ\Nž\úá Æ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.OÆ? ÿøÿ7ü“ÿà_ýÿÿþÿÿðÿ‡üÿØü?ÀüãóŸÿ Œþ3 ð?:`.WO®@.²dG endstream endobj 1175 0 obj << /Length 190 /Filter /FlateDecode >> stream xÚ1‚PDÇPlÃØ èç †X‘ &R˜hea¬ÔÒB£­p4ŽÂ()Œëw-hm^1“™Mìd6刧<¶œDÏùdéJqêÄ諨s¼P^’Ùqœ’Y9™L¹æûíq&“olɼ·¨,Þ@ 5I ˆô‰¼œî¿‡ èPÕA‹¬„MV#hü¶rèOÀë\š×ÿ‹áV1$kQè*-×:H§éHTÒ¡4ÐhYÒ–>Yñ]] endstream endobj 1176 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚ­Î;‚@à!$Óp纋‹D+ÄD ­,Œ•ZZh´†£qŽ@IAvœ5cibóóü£ÉxNšb…1EšÌŒN!^Ñ©jšF}ëxÁ4Gµ#cP­¤Ž*_Óýö8£J7 Qe´I0ϼÀ,$\e®™à&i«@(0<+À vJ!ù…âû¿/Ë×7.ý®OÐ$KU»|²àìÐû­ÛË·øfswo endstream endobj 1177 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚ­Ž;‚@†—XL㘠肋¯jÄD ­,Œ•ZZh´Þ¹™…#PRÆi(Ml¾âŸÇÿÅ£áC48ˆ&h¦hfxŠà ÆHâ8nGÇ $èz%9èl÷Ûã :Ù,0â>ÂðYŠÊ/,)ûpeÉc~R™É¯|¦~é1…äûRŽdÓ‘“rªƒêp÷¶ùgÔÒæ¾•Aãâ×V¢Öš*W ‚\P?ø`™Á>xŽm endstream endobj 1178 0 obj << /Length 133 /Filter /FlateDecode >> stream xÚ3²Ð36W0P0b#sc …C®B.#rAɹ\Nž\úá F\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O†Ø?üáÿðÇþßúþøûŸáï†ÿþ?`øŒþ3@Ñ?Š—«'W Ì“C¥ endstream endobj 1179 0 obj << /Length 188 /Filter /FlateDecode >> stream xÚMÍ; Â@à ir„Ìt³‰­"1‚)­,DÔÒBQ°r÷h{”!¥…dc¾æŸW¢£„"Š©¯)‰(ÓAããTˆ†]g¼Dµ¦8E5—U¹ ëåvD•/§¤Q´Ñm±,L¿Àg¶³ Eö)ðmž}À?Óɬ¨[¹† ½Ñ@€ÛP&ØÉ„ª/ÿg"vâk tìŒeÙ3²¶wžòÈÎJ\ánONØ endstream endobj 1180 0 obj << /Length 133 /Filter /FlateDecode >> stream xÚ3²Ô³´T0P0TÐ5T0²P01WH1ä*ä22 (˜X@d’s¹œ<¹ôÌ̸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ŒˆÁÿÿÿÇÀÄê¥ÿch`üÇØÀðŸýÐR®ÿÏÀ`””ÀÀåêÉÈ|Q  endstream endobj 1181 0 obj << /Length 127 /Filter /FlateDecode >> stream xÚ31Ò³T0P0SÐ5T06¡C®B.c4¶€È$çr9yré‡+pé{…¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þ10þ¡/f†bö?ÿäÿÔ7Ôÿ©ÿÿÿýÿŸ@üñÿÿƒ˜ÿ00p¹zrrÁja‚ endstream endobj 1182 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚMÌ; Â@à?¤X˜&GØ=k ¢VÁ-­,ÄJ--m“ÜÄ›hŽ’#¤L¢³ ÂÂÌóŒæ£ÉBUÈÍlœCºQ4åºïØÁéJ‰!½WÑ”ôš»¤ÍF=îÏ éd»T!éTxóH&U_ ¨r@–ˆ‹’‘%rô2K7 j¯uð¿qðZ¿fD ´¢º>D”@ÞÃoËâÏ‹‘¸oKLjօV†vôg9Hã endstream endobj 1183 0 obj << /Length 220 /Filter /FlateDecode >> stream xÚUÎ1jÃ@ÐoT¦Ñ4pVkYÄ®¢"W.B*'e »t’ä*{’ #¨T!”Ì®¬Ãò`g˜?“¯îkÎXó\ßsîß»¦#å…T3.–×Öá“6%©=ç©'©“*Ÿù|º|Ú¼<°&µåWÍÙ•[þ’¦Rë1õˆ©R‹ ž¤´BÜ¢f=¢n¤CÔGfWZ`ˆ= ðå‘iT‰L ý©Kñ·ãw"ê'dÏ ­kxš‰Øc]T •ìXù™!à2Kr×KÚÑ?§êVv endstream endobj 1184 0 obj << /Length 219 /Filter /FlateDecode >> stream xÚu1nÂP †ÿ(C$/é âð’& &"•š¡R™:T€‘R‡Šäh9JŽ1µ#ÑU’Ÿ?ûÙY2>r̩؇#^%´¥4Ó<¶Ô Ë M roœfäžõ•\ñÂûÝaMnú:ã„ܜߎ?¨˜3Â@)€'RÃiˆ´E:DmtBTgäZÇÕ—öT' ¯:ç¢b¨ÿ`À5ò_T”=4p¾ÀÓ‘ðm£ U„ÍOÿ{¯õßôsÍ8ÌðÌðÍš¿Z)zð¿ §‚ô уe endstream endobj 462 0 obj << /Type /Font /Subtype /Type3 /Name /F18 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 1 -20 77 62 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 28 /LastChar 121 /Widths 1185 0 R /Encoding 1186 0 R /CharProcs 1187 0 R >> endobj 1185 0 obj [44.52 0 0 0 0 0 0 0 0 0 0 0 32.29 32.29 0 0 23.07 0 23.07 0 0 0 41.52 0 0 0 0 0 0 0 23.07 0 0 0 0 0 0 55.36 55.36 0 59.97 0 47.28 55.36 0 23.07 0 0 0 0 0 0 0 61.12 0 46.13 56.51 0 0 78.42 0 55.36 0 0 0 0 0 0 0 39.9 42.9 36.91 42.9 36.91 25.37 41.52 42.9 19.84 0 40.6 19.84 65.97 42.9 41.52 42.9 42.9 28.37 31.83 29.99 42.9 38.29 0 0 38.29 ] endobj 1186 0 obj << /Type /Encoding /Differences [28/a28 29/.notdef 40/a40/a41 42/.notdef 44/a44 45/.notdef 46/a46 47/.notdef 50/a50 51/.notdef 58/a58 59/.notdef 65/a65/a66 67/.notdef 68/a68 69/.notdef 70/a70/a71 72/.notdef 73/a73 74/.notdef 81/a81 82/.notdef 83/a83/a84 85/.notdef 87/a87 88/.notdef 89/a89 90/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118 119/.notdef 121/a121] >> endobj 1187 0 obj << /a28 1150 0 R /a40 1145 0 R /a41 1146 0 R /a44 1147 0 R /a46 1148 0 R /a50 1184 0 R /a58 1149 0 R /a65 1151 0 R /a66 1152 0 R /a68 1153 0 R /a70 1154 0 R /a71 1155 0 R /a73 1156 0 R /a81 1157 0 R /a83 1158 0 R /a84 1159 0 R /a87 1160 0 R /a89 1161 0 R /a97 1162 0 R /a98 1163 0 R /a99 1164 0 R /a100 1165 0 R /a101 1166 0 R /a102 1167 0 R /a103 1168 0 R /a104 1169 0 R /a105 1170 0 R /a107 1171 0 R /a108 1172 0 R /a109 1173 0 R /a110 1174 0 R /a111 1175 0 R /a112 1176 0 R /a113 1177 0 R /a114 1178 0 R /a115 1179 0 R /a116 1180 0 R /a117 1181 0 R /a118 1182 0 R /a121 1183 0 R >> endobj 1188 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚ1 Â@E°L¡70sÝì ’@°ˆÜBÐÊB„€ZZ( 9ZŽ’#XZ:IV›t«þ 3ïOÌØÄrÄ#²‰xjø¨éBºN%7nt8SjImYǤ–’“²+¾]ï'RézΚTÆ;ÍážlÆ@TðJô ø@ ðhxÁ«jze/¨ š]aöåÙáýÝ;¿íÇÎAdDÉ/ak+ÚÎ?i¶¥”T“‚RSÊ"§…¥ }G«@ endstream endobj 1189 0 obj << /Length 188 /Filter /FlateDecode >> stream xÚ1 Â@E¿¤L/ :ÐÍ®A"ˆEŒà‚Vb¥–‚Š‚…EŽ–£äÁÍ$±ÐNxÕÌgæý¡˜1‡qß„l">hº.§!Ǧ^íO”XRÖcR 7'e—|»Þ¤’ÕŒ5©”·šÃÙ”s Î@ t€h~//i¹ÝKxO`L®Ð“tIVãçßxÅ?üÞù¼¨>ö‡©(=C±uÚ•¿/ñ@ªÅRÓr•iniMoEËBs endstream endobj 1190 0 obj << /Length 104 /Filter /FlateDecode >> stream xÚ32Ö30W0P0WÐ52T02R03RH1ä*ä24Š(XC¥’s¹œ<¹ôà M¸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ÿÿüÿó‡a0C ¹\=¹¹¶ h endstream endobj 1191 0 obj << /Length 102 /Filter /FlateDecode >> stream xÚÍŽ;@PÕggÜwAí“x…„J!*” Âî%>‰EÈt3ÍØ00 •¾UjÌØrR¬Ð豆iø¥qAæ 5‚T‡¸šûv̬ɩ‚½Ò p¯ó:½_ó¢thq_þh endstream endobj 1192 0 obj << /Length 103 /Filter /FlateDecode >> stream xÚ33Ñ3µP0P0WÐ5´T2u MR ¹ ¹L @Ð*•œËåäÉ¥®`jÀ¥ï¡`Â¥ïé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢PÿÀäÿP *ÈåêÉÈ- +´ endstream endobj 1193 0 obj << /Length 109 /Filter /FlateDecode >> stream xÚ32Ö30W0PaCs3…C®B.K ×ĉ'çr9yré‡+Xré{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]dêþ7 ÂzlÐ+”Á Ѫ-õ@>—«'W Êî/ä endstream endobj 1194 0 obj << /Length 130 /Filter /FlateDecode >> stream xÚ-ɱ Â0…á gð 2œ'0¹-¥™k3:9ˆ TGAEçæÑòfÚ¢|Ûÿ—ÕÒ7ôlXUÔÀ:ð¢x@='eý;ý m„;P=ÜfÌpqË×ó}…kw+*\Ç£ÒŸ;Zä“Fy2d›åÏd“L*R!s™ÉB¬¹ËY°ŽØã ,P#Œ endstream endobj 1195 0 obj << /Length 164 /Filter /FlateDecode >> stream xÚ31Ô35R0P0U02S06W03RH1ä*ä26 (›Ad’s¹œ<¹ôÃŒ ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.Oæö8qsƒÍ憺Ì ÿê››ÿØnÿÁÿ¸ÿóïý ÿÿ10Øÿ``àÁ 6P $RR ÒÒ 2d>»@nárõä äT¶Dí endstream endobj 1196 0 obj << /Length 105 /Filter /FlateDecode >> stream xÚ33Ñ3µP0P0UÐ5S03P0±PH1ä*ä25 …M 2ɹ\Nž\úá@.}0éé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢ÀÀÀ`ÀC‰ú ÔÐô—«'W —á)Ð endstream endobj 1197 0 obj << /Length 131 /Filter /FlateDecode >> stream xÚ-É1 Â@EÑ?^á ¦xЙ‰‰mŒà‚V"ÑRPÑ:³´Ù™&Nwo¾\ø’ž%红V\ó¦xA=y1žö:À¨n×w¸°ççý½ÃÕ‡ ®áYé/ ­tò‹½4è’M22ÉD³˜ÉT&2+•<å*ØñBÛ#´ endstream endobj 1198 0 obj << /Length 94 /Filter /FlateDecode >> stream xÚ32Ö30W0PaCsK…C®B.K Ïȉ&çr9yré‡+Xré{€O_…’¢ÒT.}§gC.}…hCƒX.O†z†ÿ 0XÏ ÃÀåêÉÈ[\w endstream endobj 1199 0 obj << /Length 153 /Filter /FlateDecode >> stream xڅ̽AÅñ ɉ¨ŠóÌ—eëµSH¨"‘ ” ôÍ£xw³ÓN¦ø5çæþgvZ8œ8K¿àÜñbñ€·²–>žÎ7TzOo¡×²C‡ _Ï÷ºÚ.)k̓<j*¥zÑP ¢±‰R˜è.NÑO|[ƧÕmÈÜÏdSéL6•Îeé\6•NdV;üxÔ*Æ endstream endobj 1200 0 obj << /Length 101 /Filter /FlateDecode >> stream xÚ32Ö30W0PaCsc3…C®B.K ×ĉ'çr9yré‡+Xré{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]dêþ7À`=ƒ 1S—«'W fp"¸ endstream endobj 1201 0 obj << /Length 140 /Filter /FlateDecode >> stream xÚ32Ö30W0P0WÐ54S0´P06SH1ä*ä24PAS#¨Tr.—“'—~¸‚¡—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEA†¡žá Ö3È0຀`ý™ PÈx€±±¹™¨Ò‚¡€!ËÕ“+ &,• endstream endobj 1202 0 obj << /Length 107 /Filter /FlateDecode >> stream xÚ33Ñ3µP0P0U04T03P06TH1ä*ä25 (Ae’s¹œ<¹ôÃLM¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿAà˜üÿ‡Îj-Ô\®ž\\~,Ü endstream endobj 1203 0 obj << /Length 131 /Filter /FlateDecode >> stream xÚ32Ö30W0P0S06V04W0µPH1ä*ä24PA#SˆLr.—“'—~¸‚¡—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE±¹A†A‚Á‚Á€¡€!0€Âs ÿþÁz ´oàcàrõä ä-#ª endstream endobj 1204 0 obj << /Length 162 /Filter /FlateDecode >> stream xÚUÌA ‚@à7 ÿÂu ÁÿŽXÓJ0ƒfÔªEBµ ,jímŽâ¼AiÒ"ßæ=xj1›kŽû¤)«%gš/ ÝI¥ÊÆå|£Â<°Ò$7}MÒlùùx]I»'$K>&ŸÈ”ÂGƒÈ½mÞ~¹¼ûi\Ô…ÎáðG8Ô¢x­8ÂM lÏŸj„¨0­ íéb+12 endstream endobj 1205 0 obj << /Length 94 /Filter /FlateDecode >> stream xÚMÉ=@PEáþ®â®À¼™x¨ý$^!¡Rˆ ¥‚°{ äTß±4J2:*5¡Å4嬨`ö¢£ÿÆ´"žfšû¹@ò¶ BJJ7"”¼ï몀Ði ‹ endstream endobj 1206 0 obj << /Length 165 /Filter /FlateDecode >> stream xÚ32×3³P0PÐ5T06V0²P0µPH1ä*ä2‰(™B¥’s¹œ<¹ôÃj¸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. Œ Ì Øð107È0°3H0°1X0ð10ð00È0$E@øPôPŸc0nøß`ÿàÿû0\@Œíø€Ìärõä ä;g0÷ endstream endobj 1207 0 obj << /Length 90 /Filter /FlateDecode >> stream xÚ31Ô35R0B#C##c…C®B.Cˆ D"9—ËÉ“K?\ÁÄKßCÁˆKßÓW¡¤¨4•Kß)ÀY(è¢ ÔËåé¢ð $—«'W Rˆ endstream endobj 1208 0 obj << /Length 122 /Filter /FlateDecode >> stream xÚ31Ô35R0P°T0²T06V0µTH1ä*ä22 (Ce’s¹œ<¹ôÃŒŒ¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. 5 5ÿþýg„" Õ1ü*Êl*,,0‘ƒ—«'W /¨67 endstream endobj 1209 0 obj << /Length 200 /Filter /FlateDecode >> stream xÚµ‘½ Â0ǯ,ÒÙÁá^@ÓH[ëZ+˜AÐÉAA…*:ÛGË£ø&õ-8d¨ —áIøpéd8¢ˆȔҘ’ŒÏÈŒøŒã÷Óþ„¹B±æ(æ|B-èz¹QäË)Im$E[T@¼ >Øß²>¸˜A`AÇÉBË+ºø`3šô4;V¬è ‡+-¢ƒq€{m§z¡Öß×l[·]ý&G“ëG5Á˜jCãàØîŸ·Œ3…+|¯rPË endstream endobj 1210 0 obj << /Length 263 /Filter /FlateDecode >> stream xÚUÏAJÃPà‘Y13Ð4i»j³tåBA] * ]”vB.{b yÐ ÜdÞsJDìâÛüÃ{ÿÌqt”ô¹Ç &yÐ燈^(Ž4ìñ`ØMîŸhœSxÍqDá¹ÆæüöúþHáøò”5ð¾¹¥|€ü`aaÇ9Áïeå­ ã—R(£L¥(û3”]µ7EÉÛ`±¥EiÕÔêN-6Vj-pâW©|gÁÓíªÀ9£Ãpã«\ª²,~‰UsퟻNöŸívI ÊìN=k¿jF(uŠE}€¥ññ£òÖŸÚg\ غ]ÑYNWô_Z endstream endobj 1211 0 obj << /Length 351 /Filter /FlateDecode >> stream xÚ5‘ÁJÄ0Eo Xb·6? í ¶Vf`T° AW.DÔ¥ ¢àbÀúeü‘|B—]Æw“6‹Hšóî{-Oæ&7…9,Lylʹyšé7]Tr˜›ò$Ü<¾èu­³[ST:»”cÕWæãýóYgëë33ÓÙ¹¹›™ü^×çÈz@´%[Ä µH~, „p@ìp€/ ±Xb¤VöðÝÈó}§äí“íöòÕ$í—@‡)…»@?° ½§éc˜ŒlSŸT¤_2øz>:)zÉSQ/w9õ’÷•zæ§žýPÏþ¨g¿ÔS@=×Ê "mÃÍ¢"{tSøí_¶‘Û‡£\L:eÍR@5Rl#² L7‘¥^ Zê7û] gOª‘.P²y&#›àMYYê¬.IÅŸ«gÂØÏž¹ýp¤?éËGúTl]úfbÖÒµ¾Ñÿ&¨† endstream endobj 1212 0 obj << /Length 172 /Filter /FlateDecode >> stream xÚ31Ó34V0P0bSK…C®B.# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]ø0Aý? Áøƒ½ýãù† ö@CÿùA2þ€’@5@’±D‚!™dþÀðPI¸ùÌCdþÃÀþƒ¡þÿƒÿÿ “\®ž\\^åˆÓ endstream endobj 1213 0 obj << /Length 175 /Filter /FlateDecode >> stream xÚ3±Ð31Q0P0bScSK…C®B.SßÄ1’s¹œ<¹ôÃL ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h ÊX.Oþ êÿ³ÿg``üÁ~¿ùûÆÿüäØÿÉ?`°gàÿ¤êàÔ õN}`o`üÁÀþ¤›™ÚÔøFÑ¢¢˜ÿ0°ÿÿƒÿÿ? Q\®ž\\à  endstream endobj 1214 0 obj << /Length 154 /Filter /FlateDecode >> stream xÚ31Ó34V0P0bSK…C®B.# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]øÿ0AýÿÆÌذIù~ iÏ"ëÈ?P¨†ñ3õÈÿ@€JR×|Z“ÌÀ0ù Çÿÿ@&¹\=¹¹)“ endstream endobj 1215 0 obj << /Length 208 /Filter /FlateDecode >> stream xÚåѱŠÂ@à?¤X˜f!ó·FHÄJð"˜BÐÊâ¸J--îÐÖ|1}_aaËÁu=ÎÒÎe¿Ùýg›Mû]îp,+íqÒçeL?”&Òwš¶¹X¬i˜“™sšË)™|›ßíŠÌpúÉ1™Œ¿$ùMyÆ€vˆ¤Š3|-{Pé½ÓeƒÓ!,¨„GpPghÁºFdPCWTíÓ-”k¦¡Cˆðj( ­g¸f"{¿!ªý—Â[ïÞ—ÿA£œftàùËC endstream endobj 1216 0 obj << /Length 330 /Filter /FlateDecode >> stream xÚeÐ1KÄ0ð WbV‡“ä hÛÓëUw'ØAÐÉAA…Stp±7?S>ˆC>BÇGë{I<»üšòþÿ”‡ûÓJåê@íMTY¨2W÷âÓn檜„“»G>¯yv¥¦3žá6ÏêsõòüúÀ³ùÅB<[ªëBå7¼^* ák¬‡µÎ›Ø[ojW^ar¯„*ºóG½áÉ¿ý*šo¸ŠºhÈ¡YP~˜hˆ)?£_Ño`Ã`@tÑ6Š×éó£¯J[êL©žmS/t Ý]ŒÑ#”¯zð‰ŠI™m€’&Å+S£ % -%• -3_¸ÄP}ÑÒ˜w4ò&ë!Y½¬¯¼ðkC1 RÛ ¤u㛥ÞFt(×X@;xë1¸lYÛÀ1NNÛ|1`×'ÿ1:?­ù%ÿ©£rú endstream endobj 1217 0 obj << /Length 185 /Filter /FlateDecode >> stream xÚÌ1 Â@…á· LàœÀMŒÀBŒà‚Vb¥–‚Šv¢9ZŽ’#¤L!êÄ‚ºËWÌü0aÔíìs_„D¼hO¡Ïõ—±«-%–ôœCŸôX¶¤í„‡Ó†t2r@:å…œY’M¦€zÜáæ&óÐÎc¸¥§ÜÁ©ÎPÕêöøp±t¼¸e£] 0.â,$+IJ’“‹¬áâ­õ§_ÏFn_óoõ^:,Íè Àv;r endstream endobj 1218 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚmÐÁj1à é^=;OÐd-‘õ$¨…îAhO=”‚ÐöX¨ÒÞ„Í£í£ø{ô°˜N"¸Q6>fB&?™Nî'izàmf4Õô™ãáZûÒ||ã¢DõJÆ zâ.ªrM¿»¿/T‹ç%å¨Vô–“~ÇrEP@X×ìû8õ \²²IU{ó˜»ùÁ3ÌbÆYã¥1Ezôè$æ'i=SË©†LÂB„p6Pu Ž–8ç:R†£ ²Ž÷›[4ß9Þ²áéí…ÃŽ&ÎÈ&üZÚú'­ãXήÁÇ_ð%°m¼ endstream endobj 1219 0 obj << /Length 209 /Filter /FlateDecode >> stream xÚ•±‚0†0Üâ#pO`Amd3ALd0ÑÉÁ8©£ƒFgúh< ÀÈ@¨…«Ú´_®íÝýýe4fÐÜ,¹ ¹¤kˆ”µÓ„íÅåŽqŠâH2@±5§(Ò½žïŠx¿¦EB§‚3¦ i3 €5C8ZA–›À/:LÊ^ÕÁ­ûpšôXpžÛôkÚF¶­±bIF°Ü2ÕéqžËUœNÐC¨™E>ª_…ñ÷c‹ð+v·d¯ó¯åínÔâ&Å~VŸP endstream endobj 1220 0 obj << /Length 260 /Filter /FlateDecode >> stream xڭѱJÄ@à? LaZ áæ4‰Üª[-œ'˜BÐÊB¬ÔRPÑÖÌ›ø*¾‰yË+Äuv²g!–Bà#“ÍÌî¿ÎïúnÙñÎ;ÇÎóMG4÷Zly¿›¾\ßÑ¢§æ‚çžš-SÓŸòÓãó-5‹³#Ö÷%_vÜ^Q¿d ˆRPDZT†¸R´öR ÊOÔµ þ@ù*˜(ÞAWEÁ],øR‚º˜IµRê5ú7P­Ñ&?”2oÆ(~#FLØàgÈü5=dF#ïzv¢L;mf–Ä&,—mXJ[°Ìa Þ#å }Rº:%e-vÁvS½•Ô=U:î霾šes– endstream endobj 1221 0 obj << /Length 194 /Filter /FlateDecode >> stream xÚ33Ö31V0PaS Ss…C®B.S ßÄI$çr9yré‡+˜špé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁõBýc``üßD@.ƒý0ÅÿL1ÿSŒÀÃ?UBÙ7@¨`JJ=SüPêŠýê (<ö¡9ÅñP¯@=ómrüC%h˜ACž  !@ y`> stream xÚuб Â0Ð  ·ô¼/0­ µ‚Dª£ƒ¢³ý4?Å/iLsqˆð’»INÍÆª œ&vª)©9 ¼¢‹åý¶O4¬4Ê©åÊFQê5Ýo3Êj³ ­ioK¨k2ýè D˜ÒÀ€§dFLƤ1’(­C8^Qˆ€„ÉÆDð¹ïɰ|pÃ1ÆÛ½Ó.þ"bøÿyÒ€Œ)™gëºk¸×¿àRã?UŸ’~ endstream endobj 1223 0 obj << /Length 166 /Filter /FlateDecode >> stream xÚ35Ñ3R0P0bSCSs…C®B.s ßÄI$çr9yré‡+˜˜sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒÀd’ñƒü†ÿ Œ`’ᘬ“6`R‰äÁAòI68ÉØ€L2`%™‘Hv0)"ÿÿG'!âP5Ⱥ‰ A€J$ãÿ `G@%¹\=¹¹Mÿx× endstream endobj 1224 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJÄ@à?l˜&yM"&`µpž` A+ ±:--­7`ákMgé+ä ¼òŠãÖÙÍ& XšæKf’Íì¿]{Üt\ó)p×p{Æ =SŠu¨ÄÎæ‰V=U·ÜvT]j™ªþŠ__Þ©Z]Ÿ³>¯ù®áúžú5ð(ü6S¬ßü`À쑊-Ì— oÕ¶¸áÖë¥d‡ˆ¾¯ I¾Sòý03a‘™LlB".€¿Ñ!1ÍúOx½&ÂpcÄJÂ&ÆHù‹¸£…¸Û…˜„rI)¥ÌÜ” _ò,v0Ÿšõù{lØtéT–‰é¢§úî”Û endstream endobj 1225 0 obj << /Length 125 /Filter /FlateDecode >> stream xÚ33Ò3²P0P0bSKSs…C®B.SS ßÄI$çr9yré‡+˜šré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÿÿÏøÿÿ?TŠñó bü78) À¤¯s‘)hèb y.WO®@.!»¥7 endstream endobj 1226 0 obj << /Length 106 /Filter /FlateDecode >> stream xÚ3²Ô³´T0P0aKSs…C®B.#3 ßÄI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÿÿ†€ˆ¡¾aècWüÅåêÉÈ3v\‚ endstream endobj 1227 0 obj << /Length 165 /Filter /FlateDecode >> stream xÚ31Ò33W0P0VÐ5R0¶T05WH1ä*ä26 (˜ZBd’s¹œ<¹ôÃŒM¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. öÿÿ?@"äÿ000°ÿâ„=ˆ¨oÿ`#ø?0üoõ ü ä0X0È`a°o`àŠ2°7Ãñÿ qõ \®ž\\ŸÎ`¬ endstream endobj 1228 0 obj << /Length 243 /Filter /FlateDecode >> stream xÚ]ÑÍJÃ@ðYrÌ¡¾@ û&A[sjsìɃxj= QôjöÑò(y„=HÇíÌÿДeöDzÌÌ~,¯/•/üUŒeé7~_òG‹8"ÇÝ;¯Οãšó›GÿõùýÆùúéΗœoüKé‹Wn6^DÈÅ8×I êF"!¢:˜+2oa[8˜®7“`¦dÎ`+ØÂÁÔôhLM‹fp ˜&byiguf0«­~5Õ¿jŸþ©RrÀyd* îÕõSkÜ_ Ÿ¨ NÔÇ÷9LÕxoéá ÿádÔÿ™‹„sù¾á-ÿ5Š•P endstream endobj 1229 0 obj << /Length 140 /Filter /FlateDecode >> stream xÚ35Ô³T0P0bKSs…C®B.S ßÄI$çr9yré‡+˜˜ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÿÿÿ€™dü€þ3 eR/i& 0È ò‚d“Ì`’LÊ?`üßÀðÿÁ@!¹\=¹¹Afl÷ endstream endobj 1230 0 obj << /Length 244 /Filter /FlateDecode >> stream xÚuÑ?kÂPð{<0p² Þ'ð%œÿ€ ur(Ávt°ÔÙ€«ê•]ÝÌGÈè|½¨X#yîøÝ=8. [~›< 8¢€:½û¸Ä°ËµW”ÅÇ|ýÕ”Â.ª1wQÅÏôõ¹ú@ÕjH¯>yoÉà瘣1 ýƒ¸ 8hFãx‡]Ê*ñ›1æ•øá8§¾yºØTBŸ¤,a P³ —À“M õ2Ü< œ fepÒˆ\$ÀIÂÖ5+zÛG4÷V¸Y5D NZ@fWðí¤'c´ÔÒÇýoÊÀQŒü¦Â! endstream endobj 1231 0 obj << /Length 243 /Filter /FlateDecode >> stream xÚUпJÄ@ð/.0…ûfŸÀMNÖ?óSge!Vji¡hkRù\AKÁTÖ©$EØuwöŠM1üøf`Šï`¹·<’…Üw£¥>”w%=’Ö.>úÃí­jRWRkRçnKª¾ÏO/÷¤V›SY’ZËëR7T¯¥µ@fµm óÀ¦‡í¼ÅÏ0 à{d¾¦˜üۘÎ=õ4]LÕ3ùȦ€aÒ@b·´liº@ÏT|`Ä“MLjbËÀ¾Å4ŸLõ“ÿ1ÂÄdtFÀœW$®Gœ á*Ã.|ר™±ÕtIÿ6D†c endstream endobj 1232 0 obj << /Length 239 /Filter /FlateDecode >> stream xÚ­‘±‚0†Ï8˜ÜÂ#ô^@D'ÔDŒ“::htGáxWÚœmš~éÝßöú_LÂyÒxJsNgoô(ò»ÌéŠIŠîžÂÝ5‡ÑM7ô¸?/è&Ûñ~IŸ¼#¦K¶ Cµ¥ Ô¼*x1F%¨À)dBœÃè ñ‘Š…¬ªA«ÑŸ8çEÅjGîU…Ò(ßNk¼ûÈ4ª,— ~ÐjÔ…}Á<ÛC¿2[|Žþfa?­-ÈÖžÆ3ë ñ“­oŒ×œÈ¾}°]Ñ=ÂUŠ;ü”K‰É endstream endobj 1233 0 obj << /Length 167 /Filter /FlateDecode >> stream xÚ35Ó35T0P0bS#Ss…C®B.K ßÄI$çr9yré‡+˜Xré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(ü‚ ê„úÏÀÀø¿,ÊÀ ÿLñSÌ? Ô0Åø™adªT Y;ªÑPû ¶CÝuP7ÈÙÿÀÔˆ ƒ™….ĵ˜—«'W ŽK€¿ endstream endobj 1234 0 obj << /Length 309 /Filter /FlateDecode >> stream xÚ­‘±JÄ@†ÿba æ3/ I ‰ Bà<ÁZYˆÕii¡(6‡Y±õ¡ò>D|I™"Ü:³$EÀÒò…Ù™Ù™ÿ/²Ãü˜Êé -¨àŸºKõ£Î3Ž&t”G›½¬t|My¦ã Žë¸ZÓóÓË½Ž——g”êxE7)%·ºZà[ÈÙV°óþz=ÞªEd€°‘¥ê€šKzNä¬.{7Aâ|®Œ$sQèЄÒ>j"‡vDÉmvsÔý#ƒL°ÿb~ÃüöùdóáGŒûñ¶[ÞVužeø½ÿajÖEyȳv¾Y©:À†%*?ñʵÑJî¤~D`q£ìû€@\qðíBìcáÌšpê`¶èŽÐþ ™j‚óÚ·²<§Øq}^é+ý 6²¥É endstream endobj 1235 0 obj << /Length 221 /Filter /FlateDecode >> stream xڕѽ Â0ð–‚ì#x/ i*Uœ ~€ÄIí£ù(}„ŽJãÙK Í"&…äHrÿt¢F*ÄÇ8 q¢0šâYÁ È€f4ãÊé óäžê ×´ 2Ùàãþ¼€œo¨@.ñ 08B²D­uåÐ uf,HW§‚ ô¥lüfëç¬(ºz¥eõ§Ö~ûüæÞ¦Øô§¹_Qš@™ñÍëõ6Ò+L®6ŸñeålóZ¹šÿ«›v,X¿ÕKéP~ï‡ÞEÔºe¯Ö©úN=â’¹«vð™<›Â endstream endobj 1236 0 obj << /Length 256 /Filter /FlateDecode >> stream xÚUϱNÄ0 à¿Ê)K¡~h{=îÄB¤ãè€Ó ˆ @°!ZÞ̉èF%Psw ²|Jì8¶ç‹Ãª¦’æt0£ùŒŽŽé®r®^j°¤EµËÜ>¸U㊠ÕKWœkØÍ=?½Ü»buyJz_ÓuEåkÖ?€ÆŒ!òÎf°l#>Ù3ZÎ;@Î'€ç7Àîx ïÉ&Œ&È–Nm9ƒR0—!¡G/aEïFD+E$½ÑŒµ²MX‰¿„^É>a‡-úÆü‘Mˆÿèû=¦×:upÇ´–¤-µiÞ}õèGŒˆA§Š^{s¦ywÖ¸+÷=Ÿ†# endstream endobj 1237 0 obj << /Length 150 /Filter /FlateDecode >> stream xÚ3µÔ³4W0P0bSsJ1ä*ä2ñÁ" Fr.—“'—~¸‚©1—¾P”KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÁþ?<@£0ÿg`ÇÀøùA ˆbüP¢>€©T*L`¥€)‹`J+ŦF Åþ¿Hʃ‚ârõä äWÎr° endstream endobj 1238 0 obj << /Length 191 /Filter /FlateDecode >> stream xÚåÐ= Â@àÑÖBÈ\@7‰¬ÆJðL!he!Vj)¨h«9šGÉ,SˆëlÅ3X,ßòf˜âu¢VsÀmnFlzlº¼ é@ÆH¸¤˜¬w4HH/ØÒ‰I'S>Ï[ÒƒÙCÒ#^†¬(±µÊ>ñl \3X~ZPCAù©J'BEH?4€þ—ºôuâ7{©-'¿ROrï%ËxºVÝ™‹Ã·¹CÙ ï qBszØxaº endstream endobj 1239 0 obj << /Length 240 /Filter /FlateDecode >> stream xÚmÐ1jÃ0Æñg1> stream xÚuÑ1KÄ0àW „ãºv8ÈûÚôÎb ç vtrá@ÿ…?'â)ΤC¹ø’£âMHøH^ÂK^Yì/Pá÷æX.°8ÄÛ\<ˆR¡ëÅÑvçæ^,k‘]b©DvJË"«ÏðéñùNdËócÌE¶Â«Õµ¨WhíÀ­í"kÿ·ä@öŒæ¤àmDâ$f~¤#; Hl ¿¥½8@£ÁŠwdFUšì¨%[pù¤^q(é`J7)¯Iˆ’›ÑMk¯T¢äRÙñRI JN%}¤½Ö<=“Dt2l¥IÜ©yÑÑ&ôFš:Uï; ôAš9ÉOŠ} ô5*¡¿­ºÿÄÿ‰°­ ÄœŒE'"'íEÑ<´¾¦®_g'µ¸ßÑÆ©Ñ endstream endobj 1241 0 obj << /Length 279 /Filter /FlateDecode >> stream xÚ]ÑAJÄ0àC»…МÀ¦Ç.„Â8‚]ãÊ…êÒ…¢ëöÁ«ô&æuW°ôù’<3‹ôãÑ¿ù».OËÊXSÒZ[svnž ýªIkÂè_<¾èM£ó;šu~žÍyûxÖùfwi oÍ}aìƒn¶¦E„'8p…@ë@Òµ1Ù±=™Ž h¨ $«3,ØÄ+N¼€ÝŠ­‚moƒµÛ³.˜ }0ý颿Q…£’x(`ÜO‡b<¾£âkˆç|ŽÑ4ºPS0á€%»â€ ¢–ƒöàØÞW¾œÌÈCeàË  »ä›PIÂ{Á7™½]øоiՈݱúªÑ·úR}Ý endstream endobj 1242 0 obj << /Length 231 /Filter /FlateDecode >> stream xÚÍαJAàYÈÁL›"y÷.p1©b¯L•BAS¦P´Î=’p²2EÈ8»n@ô,†ofgÙ§“ËÉŒK®´¦×WüRÑ+ÕsË8ÆÅó– ¹5×sr·zJ®¹ã÷· ¹Åý5Wä–ü 7©Y²È ð~k%…öÒvìT²Z^{ÓcÝÙ³ ÷ÃâôU«o²CÕ0Ë–*¤ÅSTB¶‹ú`ζÑñÞ&‡í%‹ãE¶Ÿ´§QÒÈ0›b4è3¾Ýe}÷¿Íÿô"Ý_馡}Èl® endstream endobj 1243 0 obj << /Length 232 /Filter /FlateDecode >> stream xÚUÐ1JÄ@Æñ/¤¼&GØw“@B,ÄuSZYˆ ¨¥ ¢`—-GÙ#liv|ß‹ÜÀü`fÈŸ™iÊ“¶ÖRu«M«Ï•¼K]Ù¼ä”O¯²î¤¸Óº’âÊV¥è®õóãëEŠõÍ…ÚêFïí—é6¢}8rB²G‘š² ç g@þãîp ¬vøÂoûÑðDšD,ZŒN€Çà±E‹Ñ- ®Å-FIâ2vpŽeDZdøÓbt¤½k±Ùt`ÌÜÓÔel6óXÆË"÷ó­üdÁí=yÙ<"ú»ýW.;¹•_µštó endstream endobj 1244 0 obj << /Length 204 /Filter /FlateDecode >> stream xÚmÌ; Â@à . ´Vf. ›´1àL!he!Vji¡(X›£å({„”Á8ë£—åø‡ùÝéÅQ—Úš’˜º}Úi<"ÏÈŃ÷f{ÀQ†jÅ{T3ŽQes:Ÿ.{T£Å˜4ª ­5EÌ&¡€º6äü¥…°%/_x÷/PAP02gøýÁ0Ò¦–yp&îî¬dBw›:Œ+0ðÁüâ}¨AT¾yóMÞ6Ó¢5lö–¢.Ë5²Ài†K|¤øT£ endstream endobj 1245 0 obj << /Length 198 /Filter /FlateDecode >> stream xÚ31Ó34V0P0RÐ5T01V0µPH1ä*ä21PASKˆLr.—“'—~¸‚‰—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEùÃT‚D0S$ê00|`ÇÀü¹A¾ù;ÿæ ì˜ÿå˜00þ* àÄ?8Q"êI&êPMÊøbÛ½`Ëßœq ä ã ò Ìê˜þÿ:]þ—«'W ÈckA endstream endobj 1246 0 obj << /Length 182 /Filter /FlateDecode >> stream xÚÎA ‚`à'?( ‘œ ”ýüºÌ A­ZD«jXÔ.Ì£yàÒ…Tcu€ßæ 7f: 5ÙðP³™° ø éL¦ %¿—ý‰â”ü MþBbòÓ%_/·#ùñjÆ’&¼•ÎŽÒ„¡ZÀ{ÈUe5ÈTÆ©¬Ö-Õ‡W¨6êÀj@-ÐÉÅóOù¯Ó‰;*`{ú^‰ž[bàTd7“ý w§”§ÍSZÓ»= endstream endobj 1247 0 obj << /Length 198 /Filter /FlateDecode >> stream xÚ31Ó34V0P0VÐ5T01Q0µPH1ä*ä21PASKˆLr.—“'—~¸‚‰—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿó‚ÁþT‚zó !ÿHÔ±÷`øÁøþó†ú쀶¤ „|P±=˜i«‡u âÉDª)öph‘<„ÚkrF=ÈAï?0þ`<ÿŸ¡†½ÿ?ƒü?þÿ ì@‡s¹zrroXhI endstream endobj 1248 0 obj << /Length 189 /Filter /FlateDecode >> stream xÚ]Î1 Â@Ð\˜B/ 8ÐM²(ÚЦ´²+µT´“èÑr”!åbI qáÁ23ü;èö9änÀ¶ÏvÈû€ÎdC)úlGUgw¤IBfÍ6$3—2™dÁ×Ëí@f²œr@&æm)‰Ú¸·2Ï©\^¡sϵ2¸Î÷¯HÅøQ‰RñþQÖOþø—Ö5ÉQÑJrµìhè M£íÂá„TårL¼@³„Vô½£@ endstream endobj 1249 0 obj << /Length 141 /Filter /FlateDecode >> stream xÚ32Õ36W0P0bcSK…C®B.# ÌI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]ê˜ÿ70ð|À ßþ€ÁžÿCÿ`ÆÌ00ŠÿÿÿÇäè§3ÿa`¨ÿÿ޹\=¹¹¢&[ endstream endobj 1250 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚ¿J1Æ¿00…ñ v^@³9ïäŠÃ…ó·´²+µT´[¸}´> stream xÚ31Ó34V0P0bS …C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. Ì€à?É&™iN‚ìaþ`ÿD~°’È700nà?ÀÀüDþ“ØÀÈä‡$Ù€‚ëÿÿƒÿÿ7 “\®ž\\y endstream endobj 1252 0 obj << /Length 122 /Filter /FlateDecode >> stream xÚ32Ö30W0P0aCS3…C®B.C ßÄI$çr9yré‡+Zpé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜ø0È@A@ 8~Àüá? ±q©ŽØ0üÿ‚¸\=¹¹(CE` endstream endobj 1253 0 obj << /Length 150 /Filter /FlateDecode >> stream xÚ32Õ36W0PÐ5QÐ54W0´P05SH1ä*ä22 (˜Ãä’s¹œ<¹ôÃŒ ¹ô=€\úž¾ %E¥©\úNÎ @Q…h ®X.OÆ ìø   P?`üÁð†Ø€¸ôE6Œ?êügüðŸ‚üc?PÃ~À†Ÿÿó.WO®@.ÿ§Wõ endstream endobj 1254 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚµÍ1 Â@Еir3'p.#˜BÐÊB¬ÔRPQ°ÍÑr±0EÈ:? êdÙ³3ó7èuÂ.{Œô¸òʧãH‰ÆrCqJzÆGz$¯¤Ó1öÇ5éx2`ŸtÂsŸ½¥ […RÊüâë?´LõºæÝ3Ø‚ærÁÊkm‚¨„;xÔÂ3êH†Kv¤Ø@%¯â.êýoÔ nn—**ŒÉù@Ô¦ôDr endstream endobj 1255 0 obj << /Length 108 /Filter /FlateDecode >> stream xÚ32Ö30W0P0aCS …C®B.C ßÄI$çr9yré‡+Zpé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜?0ü‡!þ ̃±ÿ`øÿÿq¹zrrÆ‚Q. endstream endobj 1256 0 obj << /Length 177 /Filter /FlateDecode >> stream xÚ3³Ô3R0Pa3scs…C®B.3 ßÄI$çr9yré‡+˜™pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜?ð`Àðÿƒý†ú@úƒ=ãƒ:†ÿÈ77Ø3ðnà?Î ßÀüÿˆþÇÀDÿa`ÿÁÀNÿ``ÿ€þÀÀþ`Ð O€âÿÿƒÿÿ7ÿÿNs¹zrr#߈ endstream endobj 1257 0 obj << /Length 147 /Filter /FlateDecode >> stream xÚ31Ó34V0P0bcs…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. Ìø?00üÿ`ÿD~°’È70ðnà?ÀÀüDþ“ØÀÈä‡$Ù0½ñÿÿÁÿÿI.WO®@.‡e% endstream endobj 1258 0 obj << /Length 188 /Filter /FlateDecode >> stream xÚŽ1‚@E¿¡ ™†#0Ðeƒ6 &na¢•…±RK v9Gá”Tâd)H¬ÌN^fþîþù‘žÌ¦ð”Çš£€Ã9Ÿ5Ý(ŒE”qÑßœ®”R{cRk‘I™ ?îÏ ©l»dM*çƒæàH&g8^W‰S­œQƒdHàVðá•R¾ ò!J*¨- Ài~ nNû/†ooñkg»Íîõ$AéÖHåŠ> éáwlzZÚÑIKÚ endstream endobj 1259 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚα Â@ àH†B¡y½ž­uj;:9ˆ“::(ºÚ>Z¥p"ØŠç]qÐQ |CB’?Šû2ä€Ü“1G!‡#ÞI:R°«aøm”d$V$f¶O"›óùtÙ“H–$R^K6”¥ŒÊ¯À¨\ƒ¹UW0÷Â/¼º%>Á«°T¨5*è´4hy~“ÿÌ÷ö²¥ý¦Ýß> stream xÚ31Ö³0R0P0VÐ54S01Q06WH1ä*ä21PASc¨Tr.—“'—~¸‚‰—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEùÃùŒêØ0üa<|€ùÃãìÊð?`0?À€Áþ€> stream xÚ36Ò35R0PacCcs…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ØÈ3üPàÿÃÇþ?nÿÀÿœýó3 ~Äo˜0ÿah`þÁÀ€‚?P³Íüÿÿs¹zrrjÙF„ endstream endobj 1262 0 obj << /Length 195 /Filter /FlateDecode >> stream xÚ=αJÄ@à¶X˜fßÀÌ x{›`TñSwÕ‡•Z * Wî£í£ÄÊ6`“"8Î%GŠ™ùÿfŠ|q~ÆK.ø4p¡ó‚½R^j¨çåÔ<> stream xÚ36Ò3²T0P0TÐ5T0²P05TH1ä*ä22 (˜Ad’s¹œ<¹ôÌ̸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž.  Ø W á Œ@Ì Äì@,ÿÿ?Ã(f„ÊQ „þ0‚pC sC3ƒ=;ÿ?°f.WO®@.uH– endstream endobj 1264 0 obj << /Length 153 /Filter /FlateDecode >> stream xÚ31Ó34V0P0RÐ5T01Q06WH1ä*ä21 ([@d’s¹œ<¹ôÃL ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.Oæ ìþ`üJò`À‘p’ƒºBþ`°ÀÀðƒ¡üÆçÿì™Iùÿí@’ùÐ.WO®@.1c endstream endobj 1265 0 obj << /Length 183 /Filter /FlateDecode >> stream xÚU̱ ‚PÆñ#‘k[çêªWJ'Á rjjˆ ¨Æ†¢¶ˆûh>Š`›Ph—º—jù ÿ¾@ BŸ\ò©ïQà“ÒÎÃ#ŠHE—Äè³l˜dÈ—$"äS•‘g3:Ÿ.{äÉ|Lò”V¹kÌRj×_œ œÒ.Á.X ,g0i)à <¡¥©¡pƒ¶&†®A†=éjœ|c(v‘kØ]þb=ÀÐ(Ô¿áúO¨ÁI† |F£?ê endstream endobj 1266 0 obj << /Length 233 /Filter /FlateDecode >> stream xÚUÎ=KÃPÅñs Xx³v(æùzËíËb ­`A' ÖQ|A7©‘|±€Ð~Lïx‡`¼7UÓN?8gù«áá°Ï!ñAÄjÀÝÏ"z$¥ìr·¿~nîh”¼d¥HžÚ™drÆÏO/·$GçcŽHNø*âðš’ WUPñ÷6¾Aß´4æðŠ5¹§q ‘þ" bxØ%âtÇq¿Á_ù®cùGˆÅ²h;²š÷L€ Ëtè5Â<þfúOk…2·|âµÁ+ñ–ZlECÝdÑ ±ï(°ç˜ÂÑIBô¥Y_™ endstream endobj 1267 0 obj << /Length 210 /Filter /FlateDecode >> stream xÚMν Â@ ð)(¡«ƒÐ> stream xÚUÎÁjÂ@àYi® Î èn²Zõ$¨sÚSE¨GÁ½‰æÑöQ|„x ‰³²Iéå;üÃüü=ÝF¤(¢N8 ^DúÖ!þ qª¨¯ÝiµÅIŒò‹ôåœs”ñ‚ö¿‡ ÊÉÇ”B”3úI-1žQY¦ãâàAægà//7ˆœŽ4gËZŽvª*Ì 0‰Ã¿˜Š+ã]S‡¸CEÉ@QsüϰFÕì,IqSn/¼'¶’gCþbŸ^m‘mjg`ç1øã'>ÚŸKø endstream endobj 1269 0 obj << /Length 183 /Filter /FlateDecode >> stream xÚ%Î1 Â@„á‘@„‡$|'0‰+AA¢‚)­,D¨¥ ¢æQ<‚eŠ`œÅ_ìì·°&î# µÇL_M¬‡H.bìÚ£½ØŸ$I%ب‰$Xp• ]êíz?J¬¦Êu¦[>ÙI:ÓIU•uO§Ã)Fh~ðß!;£ó:còÌÛዬQÖ‘‚ôŸÿ)HÿåpIëH]R·YÀ#õH[¤mé(œ²âl2Oe-?uàC endstream endobj 1270 0 obj << /Length 188 /Filter /FlateDecode >> stream xÚµ1 Â@EH!L“#d. ›ÍºˆBŒ` A+ ±RK EÁBb޶GÉR¦R×l´6¯˜˜ÿþPtÌ+îǬƬ5$Ii;ŒXÜf¢$#±a¥I,ì˜D¶äëåv$‘¬f,I¤¼•í(K~ |[äj¿„W¢‚opGÏà ÀÄ!´—S‹¢E¦ /‹òèzù´ÌO¾6x+Ó¸YÛ~åÕÎÜuдñí…æ­éÂÕ`ú endstream endobj 1271 0 obj << /Length 121 /Filter /FlateDecode >> stream xÚ31Ô35R0P0bc3SS…C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]0001;Ëñÿ ÿaX*6T°ý†úÿÿ?À0—«'W ¾NÚ endstream endobj 1272 0 obj << /Length 228 /Filter /FlateDecode >> stream xÚmαJÄ@ÆñoÙ"0M^ป'p÷WóSZYˆ ¨¥ ¢`eòh>JáÊ+ŽŒóé5‚E~°;ÿY²¬šc­té_^iÓèC-/’³Ÿ+9¸’u'éZs–tî·’º }{}”´¾<ÕZÒFoj­n¥Û(Ê-€~‚Ù€8¶#J^ÎQì0CÜc…0áùîÈDÌ_úŸžÓÁïø:ßsöNüaçü™r$_΂[-> ³À,°ˆ, %‡s„'äƒlÏ"³ÈÌñ¥™aAZÒ›M°¿ÈY'Wò TŸc| endstream endobj 1273 0 obj << /Length 235 /Filter /FlateDecode >> stream xÚuÐ1NÄ0ЉRXšß`3', ZiY$R AE¨€ ´ØGóQr„”[¬0¼„‰"OÊŒóÇ“ãîÈ/¥•^—ÒŸ‰÷òØñ+÷ÅVüɾóðÌëÝ­ôžÝ%Êì†+yûxb·¾>—ŽÝFî:iïyØ™-­2È9QµµÕ EëPõE6‚f¤LÍôV»&‘ÆàðÌÔb&e6‚€§Ñf“õÕŽó‘òY (yâ/ifU ý°Å_ cBüÔ¨M>Õ‹ý‚¸Ÿ™°y¥ÿ€‚޵¸2_ |ÃßÇ›jh endstream endobj 1274 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕν Â@ ð+ At-(˜'ð®¶µkotr¡P?ÁQðÅ_ÄÇè èý‹­³ù‘äIàõÃ+FŠÃ!¯=Ú“™º,ñ‘o)Ñ$ìG$'¦KROùt8oH&³{$S^z¬V¤SBĢ⊠ØÀ©iƒèA«äf°1ë€h‚.p;»Áö`¯Z  \2ðoóŠß›ÿÂy™³54Ö4§òý`ö endstream endobj 1275 0 obj << /Length 226 /Filter /FlateDecode >> stream xÚ•Ï¿jAðïnaÜ ˆÎ ˜½s=b!j W¦J!‚`R ìnÍG¹G°´8ÜÌœEH:›_1;ödÏyŸSp¯ÏnÈyΟíÉ9)¦œ¿Ü_6[šd?Ø9²oR&[Ìùð}ü";YL9#;ãeÆéŠŠÇÀŒÇæÒºÂ„ÐpQ*Å+j .+xsº7á”xÄ•‘Íç–Üð‘\ƒ }µrÓþ† ”¿ø´•R þ/:tK­¬uéîNTc¨'Û¼‰Ä'ò¡jìiT”2ƒ®D¥×‚Þé+XÑ endstream endobj 1276 0 obj << /Length 243 /Filter /FlateDecode >> stream xÚm½JÄ@…OØ"p›¼ÁÎ}d³ƒÚXW0… •… j)¨hëäÑò(ó)S„ÏD…m>†{çüÜuuìVZj­G+­ÏÔ9}ªäMjÇa©îägóø"›VìÖNìÇbÛkýxÿ|»¹¹ÐJìVï+-¤Ý*Ðô@ P„sŽºø‚&¾³¾[ D>#E@ƒ¢Ç†r˜Iõ~2û> stream xڕα Â@ àHÁB}Ѽ€Þ]õ¤“…ª`A'uª(¸ÙGóQî|ƒšTZèàà‘û†?$w#3°i²ÔhdÈŽéhð‚CË!Çá·s8cœ ÚÐТZpŒ*YÒíz?¡ŠWS2¨f´5¤w˜ÌHŸP˜Qžç®ÎëY’ 4aÐ:B@à ¸Ç8 ‚—1¾ìn -¡SQ¼üRá-8­ð d“_Ñ®Ó+ÈJ¢_<ÿ!’¯tùâ<Á5~lúQ- endstream endobj 1278 0 obj << /Length 265 /Filter /FlateDecode >> stream xÚMÁJÃ@Eo˜ÅÀ[8мÐ$A„ÒB­`B]¹WêÒ…¢ÐEÁù´ù” ;#Ç›*ÖÍyóî{wæÎquÔLµÔZ§ZŸjÓè}%OR7KmN~&w²l¥¸Öº‘₲í¥¾<¿>H±\Ÿi%ÅJo*-o¥])L OÄ[ À`;d1ëa¶°3X`LpÀM6{ä{xÖSÏœ˜°Hpžî|tO¥0£1l¹6Ì ùi4ÈþÓ,ìÀe3zŸÓáw™gRÒô¦SÅß@v伕+ùÿcå endstream endobj 1279 0 obj << /Length 237 /Filter /FlateDecode >> stream xÚuÏ1NÄ0бRDšÆ@ò\œlÖBT––E"Tˆ ¶¤AKr®â›ì!eŠ3³ ˆšgiÿ_×'aE5t¼¢æŒB ÇŸ± 2¬(œÎ_žpÓ¢¿¥& ¿”1úöŠ^_Þvè7×çT£ßÒ]MÕ=¶[‚b—….'0SÉ2*(ÙŒ`&p ÞÁõBì!Ît ç¼àÒð_èÝ_èR¥c§Ø™%Éž 6{6Cñ!I¬cˆ“Ä)A×ô?€Ö«ÌÁ“ôXZ1IÁØËN+éOVë”ùÀäqY‰-Þàú m9 endstream endobj 461 0 obj << /Type /Font /Subtype /Type3 /Name /F15 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ -4 -21 83 62 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 122 /Widths 1280 0 R /Encoding 1281 0 R /CharProcs 1282 0 R >> endobj 1280 0 obj [27.68 27.68 0 0 0 41.52 0 0 0 0 0 48.44 46.13 46.13 69.2 0 0 23.07 41.52 69.2 41.52 69.2 64.58 23.07 32.29 32.29 41.52 64.58 23.07 27.68 23.07 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 23.07 23.07 0 64.58 0 39.21 0 62.28 58.82 59.97 63.43 56.51 54.2 65.16 62.28 29.99 42.67 64.58 51.9 76.12 62.28 64.58 56.51 64.58 61.12 46.13 59.97 62.28 62.28 85.34 62.28 62.28 50.74 23.07 0 23.07 0 64.58 23.07 41.52 46.13 36.91 46.13 36.91 25.37 41.52 46.13 23.07 25.37 43.82 23.07 69.2 46.13 41.52 46.13 43.82 32.52 32.75 32.29 46.13 43.82 59.97 43.82 43.82 36.91 ] endobj 1281 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 21/a21 22/.notdef 27/a27/a28/a29/a30 31/.notdef 33/a33/a34/a35/a36/a37/a38/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59 60/.notdef 61/a61 62/.notdef 63/a63 64/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90/a91 92/.notdef 93/a93 94/.notdef 95/a95/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 1282 0 obj << /a16 1206 0 R /a17 1204 0 R /a21 1207 0 R /a27 1213 0 R /a28 1212 0 R /a29 1214 0 R /a30 1215 0 R /a33 1193 0 R /a34 1208 0 R /a35 1209 0 R /a36 1210 0 R /a37 1211 0 R /a38 1216 0 R /a39 1194 0 R /a40 1188 0 R /a41 1189 0 R /a42 1195 0 R /a43 1196 0 R /a44 1197 0 R /a45 1205 0 R /a46 1198 0 R /a47 1199 0 R /a48 1270 0 R /a49 1271 0 R /a50 1272 0 R /a51 1273 0 R /a52 1274 0 R /a53 1275 0 R /a54 1276 0 R /a55 1277 0 R /a56 1278 0 R /a57 1279 0 R /a58 1200 0 R /a59 1201 0 R /a61 1202 0 R /a63 1217 0 R /a65 1218 0 R /a66 1219 0 R /a67 1220 0 R /a68 1221 0 R /a69 1222 0 R /a70 1223 0 R /a71 1224 0 R /a72 1225 0 R /a73 1226 0 R /a74 1227 0 R /a75 1228 0 R /a76 1229 0 R /a77 1230 0 R /a78 1231 0 R /a79 1232 0 R /a80 1233 0 R /a81 1234 0 R /a82 1235 0 R /a83 1236 0 R /a84 1237 0 R /a85 1238 0 R /a86 1239 0 R /a87 1240 0 R /a88 1241 0 R /a89 1242 0 R /a90 1243 0 R /a91 1190 0 R /a93 1191 0 R /a95 1192 0 R /a96 1203 0 R /a97 1244 0 R /a98 1245 0 R /a99 1246 0 R /a100 1247 0 R /a101 1248 0 R /a102 1249 0 R /a103 1250 0 R /a104 1251 0 R /a105 1252 0 R /a106 1253 0 R /a107 1254 0 R /a108 1255 0 R /a109 1256 0 R /a110 1257 0 R /a111 1258 0 R /a112 1259 0 R /a113 1260 0 R /a114 1261 0 R /a115 1262 0 R /a116 1263 0 R /a117 1264 0 R /a118 1265 0 R /a119 1266 0 R /a120 1267 0 R /a121 1268 0 R /a122 1269 0 R >> endobj 1283 0 obj << /Length 281 /Filter /FlateDecode >> stream xÚÍ“1nÂ@EmQDš†#0 ˲!à É HPQD©BʉHMŽæ£ø))Îì¬×³¶‚Žæ^ÿ?£ýŸõc2Ájƒý'ƒ#ƒz˜àVØ„¾ÓÉxèOß?!Í@mÐ$ öT¶ÄÝ÷Ϩtõ‚Ô _5Þ ›aEñ‰Ð9„î¡W¦9aÿK( qÙü×¢+‹©¨òJH-:'/uúÚ¤wð&“ž¨íZžk,à-Ȱsc[à.C6»e~?¸iq—ÄÅÛp±¹IWæµ»ð›ñpd’`UŸo îV°[ÑhNk°t‡HW6äÚŠ—šmœøèˈùi°ŽŸ Kø UÃ<ƒ5üÿdêw endstream endobj 1284 0 obj << /Length 277 /Filter /FlateDecode >> stream xÚÍ’¿nÂ0ÆA ‘nÉ#ä^ uLÔS$ R3T*SÔ©edÁœLœäc_vu#ŸÍãçæ°wL°—îXöЇýqlþöŒØ×ãÈØÔÉ …´Tˆ*…°V¤Â¨épRž):ï¢ÓÊJ¢NJ« œŽÄÆÁ‰5*k“ÖÖ†¼4kœ<×Qkaü ¤-=P:%îA×!ojû+ÎåÿÜUx(íFTÿÐÉ´ºn{^^Ç ÏÀ›/Í\ÿÀ¯,”ÞæôÓºá;ãaϳ±k{áäÖCë ³üRR‘À‹À2ƒ|ÿ0Òb endstream endobj 1285 0 obj << /Length 87 /Filter /FlateDecode >> stream xÚ31Ñ32W0P0F † )†\…\@ ¡2ɹ\Nž\úá@.}0éé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢ðÿ&ärõä 䘂#m endstream endobj 1286 0 obj << /Length 92 /Filter /FlateDecode >> stream xÚ35Ö34V0P0R06V01Q01TH1ä*äÒ@h‘HÎåròäÒJsé{(Xpé{ú*”•¦ré;8+]¢:b¹<]þƒ@ñ$—«'W hú=‚ endstream endobj 1287 0 obj << /Length 386 /Filter /FlateDecode >> stream xÚ…Ô±nƒ0P"–¼ð ø P• )M¥2Tj§U§¶c†Víl>Oá3 Ü\ŒïÎ@¤$/ ™;ûîLQÞlu¡ËÓÇFs«?ŒúR[¸SœÿƒÞjW«üEoK•?Àm•×úçû÷Så»§;mT¾×¯FoªÞë.;$x]²¯zãÜU çôÈ<åàZ²E§GÛ­»Bg}Õ¯;CW}vDwÜ)Úv)&o[²k%&ìšUo\#:Yõ ›°× †‚q9l IÙž66!~Cò‘;2¬’Ü’!®<ó9éÈ"8A ï=%/F²ônÑÓFÈìCñÉsû4üFxW Oß˧|ïå[ØÛ§Hx„>òéúÇ"¸¹lÜÎÌNOd~jì4ñdg§UÁ«ef¬.^u3c•òêSUS…ó.ˆºƒwPdÖe¼#³nå]u7u½åÓ€MŒê¸îŒMžl`S(2M°tdÓŒM<9ªûZ=«?§…\‰ endstream endobj 1288 0 obj << /Length 112 /Filter /FlateDecode >> stream xÚ³4Ð33W0P04& ††æ )†\…\`Q0,—œËåäÉ¥®`fÎ¥ïçÒ÷ôU()*MåÒw pV0äÒwQˆ6T0ˆåòtQø(e`€€QÆ`d@ÀŠ£9’\®ž\\˜àIn endstream endobj 1289 0 obj << /Length 375 /Filter /FlateDecode >> stream xÚÕÔ½NÃ0ðT‘ˆä%¿¤nEÕN‘J‘È€bFÌÉ£åQü3D1¾³ïìBP%˜ˆÔè—8õóñWóÕÙâ\Î¥ZÈӅܬ¤Rù¤Ä«X/íiP~ðñElkQÞÉõR”W0 ÊúZ¾¿}<‹r{s!íñNÞ+9õN&°¦KÜ–c< ˽cc9¢f¶˜!÷t©1°Bâ0ØàÅ38‘"S¼¬fF[æ†H N€…`߸š üz׌¸¦r˜V#O௴;mKÌi-,Ff5öÌ&âžé‹%¡.’ë¦1Û f¡…l²±|œb1áô"Ž2ZÚ/nÃ"¼ÌÚ­â/tw2"ýÄY#?ùCf6I~Ͼ°#Îbjb‘ž,°gV&}C–ÔÚ!é+´¤&,©²%}Ç@_92}}@]j¤°wYR1aìN‡ÜÑ!:Ψ1$WòLsÊ™oÙ%¢oC\ÖâV|s7cý endstream endobj 1290 0 obj << /Length 515 /Filter /FlateDecode >> stream xÚÝU»NÃ0M”!’—~BüЦB¢,•"‘ &ÄŒ ˜ÝO˧„?¨ÄÒ!Š±Ï½~©¨&2$>¶ïññµïI]ŸŸÔr&—òh>—õl!ëz)jñ,– Û?“µ§Ñû'±jÄôF.bzáÄ´¹”¯/obºº:“¯å­¥»ÍZf,<…1Û*câ6Æl¸Û¶é”ìbH r!!È[òÖÇg™b†Ò—Ì0q¹é™ÌÅj¢S&¾3ÝÓdpSh îœäàÎiú¼6&”¬Jï@C •#°øªO2ƒ¯"Q4]íüæËÖ'oÃü~=Ÿ¤Ü‚<‚œ—.HCp²¬¿€Òø³°«À$“•½T½¶{?ð{ÃîÛxƒB>‘_ƒpÑ\ÒþÐ ØümÞ~rŒÞïî(zü…õµƒú£ÚÙÑ%ÇËßx„¨Ô J¦ËbƒOAÍ©åjTL‹Ý)–¢¸¦¡²-èC»ý^¤Uˆé%ëS¤§ÅzYÕ;ùŽù Ã…#iv;x•f„)c¢¿Ul—p¾Šv8aO¹åÈGÙaÛÄ{ý4¸rô¢PPb؃î÷Wñ‡Ñ¯!ød–x¯_l“þBÚtäÉ¿%e=Ü ì F ÕSíÕóEÜ>=߉KõØC縟M Ým endstream endobj 1291 0 obj << /Length 288 /Filter /FlateDecode >> stream xڵѽJÄ@ð W¶‰¥•;/ ùÀ$X-œ'˜Bð* ±RK EëÍ›™GÙGØ2EÈ83‹r……ðc?f²ÿlß7XážÖØ5Ø·øT›WÓÊd…}—V_Ìv0å¶)¯yڔà ¾¿}<›r{{‰µ)wx_cõ`†4@FA´0žˆtŽh‚\`…N˜™¼Õ­ ¯›¹t;ïË64ž$޵ûtÄw;À‡ßˆŠû7RP¯äI3Å7¦¸Qãr—¬‘‹F&㳑ó»ÈI…bQì¬è7˜ ø)1Bð7üRGßHÏŒ òw£ü®‚¢\€eHóY ¹ÂÏgä;¥Õ)‹œšW$_­$¢4f¬ds5˜½ù¡Üå° endstream endobj 1292 0 obj << /Length 280 /Filter /FlateDecode >> stream xÚµ’½NÄ0 Ç}êPÉK¡~H+Ôk·HÇ!Ñ &ÄŒ ˜›Gë£ô:Þ]°ãd9`!ËOŠ¿ýwßœÔÐ@g-m{ê;znñ »?ê·jyzÅ݈枺Í5£oèãýóÍîö’Z4{zh©yÄqO`ÈÛ„pV!ÄËœ™sæ<@!d‡2Ò±ûÂ:H¨ëÅ—ÃV‰`3@Ít’;š8 §‰E¡8*KŸxPV™«²Î\”6sþž“ûSÿÎ_ûùaŽÙGu²¯´GWƽnœî·pº÷Š)k§ºpÕ)j;GÝJ¦èh™¬k!ºFIwŸî`Mw±¤;qz7>Ý‘ö*¯F¼Ã/QQ¤ endstream endobj 1293 0 obj << /Length 307 /Filter /FlateDecode >> stream xÚ•’½NÄ0 Ç}ÊPÉK!~h+Ô­ÒqHt@‚‰1#VšGë£ô:ÞPÕØñ ãˆý"Çvÿ]ç§ÍåTÓIAUEuI¾`ÙˆQÌ•Ý<<ãºÃì–ʳK1cÖ]ÑÛëûfëës*0ÛÐ]Aù=v€~]Ž—HÏ”-s¼`æ­`%œ…‰PS!G÷Ák@»H†A²‰säh[Ï~’pñI'ñÑ[p‹1ÑœnÖ£¼1Cºç¤o/jŒµ||±”ýŽ-´V3ô‡„ŸôaO¶õoZ´¢ãä?Ø2§ýç7íßß´þ€õËZiœÎ ±ß° ±ÿ„¨¤ÂѲ«^jlgˆª˜¢©è;9„„MhÇ»àÝ@ôlâÙ&±k«Ñk xÑá ~ZµÕÄ endstream endobj 1294 0 obj << /Length 175 /Filter /FlateDecode >> stream xÚ3±Ð3W0P0bS3C#…C®B.S# €˜’JÎåròäÒW05âÒ÷ sé{ú*”•¦ré;8+ré»(D*Äryº(0ýÉøÿÿ Å¡ä!”=„ªS@ ŠF=`þRÏÀ ÀÀÀÿdƒüõLÙ?€PÀT=”jSÿQ)ˆpSÌC˜úH§†´§G)ÅåêÉȆ–Ⱥ endstream endobj 1295 0 obj << /Length 305 /Filter /FlateDecode >> stream xÚ½’±NÄ0 †]u¨ä¥¿ô*ÔV7U:‰H01 ¦ƒ‘sûh}”>BƧš8®Ò èF:¤_Û‰í¿Ù_×{ÚQCW%57ÔTôVâ'Ö•3:s­'§·qf¯› ‰ ’ › ¤MZAlA~ ó¨½Q‰â]‡Oø â$Ò endstream endobj 1296 0 obj << /Length 174 /Filter /FlateDecode >> stream xÚÝÌ= Â@àI%Ì%2'p³ù!X 1‚[ZYˆ•ZZ(ZG±°ôÅÅ#¤Lg„‚'°ùàÍc^wÃdc! )ieq‹Q*9Ðøn–ÌšE)š‘œÑ¸1íw‡5šl2 ‹&§¹¥`.'ðj>‚¯‚ÇBGñ•¾R(ü>q|æøÂ|m„[­T½l‘-A¶å©¥Qêoª” Nñ]0ªù endstream endobj 1297 0 obj << /Length 151 /Filter /FlateDecode >> stream xÚ3·Ô3³T0P04f ††¦ )†\…\¦†@0,—œËåäÉ¥®`jÈ¥ïçÒ÷ôU()*MåÒw pV »(DuÅryº(000ð1€„²ƒPuê˜d†PìJBýS̪Lýÿz¡À¦üÿ¡ØQŒ¥F)RõÿAàÉ—«'W |ªÇ endstream endobj 1298 0 obj << /Length 292 /Filter /FlateDecode >> stream xÚ½ÑÍJÄ0ð” …Aè˜> stream xÚ­“ÍJÄ0ǧ,äÒGh^@»UvËž"ë îAГõ(¨èÕöÑöQú9öPvœL2YvËz2Pø%¯Læ_ÏOgs=ѵ>9Óõ¹®ª©~©Ô‡šMétBûÚÿ{~S‹•*ïõlªÊkw®ÊÕþúü~UåâöRWª\ê‡JOÕj© Ø¯±cÈ{ƒèÿ!­Ö› ® 2ÖÛzëmŠ;4έÜ©ó¶Î¡%orM ÜÇ»”ÃdΚò~Œ… pu´5k†~ E»9ÈŽŽàØæ04ÝAà¿`€ÖC*a°Í7’SÀ ¯o+N!ƒ ÿ(Ôdôñ^ A´‰^RiLØï×KÅÇëÄ›Žº±mݸÏ1ô(Ç8ÙŽúûp!¹"< ¼ Ø è¥øaè¦?´Õ´¡-~Œ™pzoþ„šÉºH §"ɸ^ç¬&ëÅN¤,Tƒ]Ư[ˆ*sÑi*ÊMDËn|6»zOâ ø§QW+u§~;­4 endstream endobj 1300 0 obj << /Length 307 /Filter /FlateDecode >> stream xÚí’½N„@…‡P`nCkaÂ}Ö²“¬k"Å&ZY+µ´Ðh=<²@¹a<÷&Æ +§˜†û7çP¯Nª\óñ‚ë—å)?–ôBÕ§ÞÏ·‡gZ7”ßrµ¤üJÎ)o¶üöúþDùúú‚KÊ7|WrqO͆c¯k÷{]ÿ جß)½ß ¡Ô(L!W f`:‘Ï{á!!–C;ÉFɉ×bmŒX ÑÄø.F-pèÀ´}˜kf¶SÎLg_3¿g<þ±ºãÏæJ‡ƒ‰‡¦{Ÿ¢íÝL‘ º©lÐÑuÊΉ¼‘ïl¯c´™(Ré„-‘+D Lð²ÂäL<{ÅëÕw#ö{­§µ¶þ¨=S?]ÖIKºlè†> *¿ endstream endobj 460 0 obj << /Type /Font /Subtype /Type3 /Name /F17 /FontMatrix [0.00581 0 0 0.00581 0 0] /FontBBox [ 2 -43 108 129 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 40 /LastChar 114 /Widths 1301 0 R /Encoding 1302 0 R /CharProcs 1303 0 R >> endobj 1301 0 obj [61.98 61.98 0 0 0 53.13 44.27 0 0 79.69 79.69 79.69 0 79.69 0 0 0 0 0 0 0 0 0 0 0 105.9 0 0 0 0 90.67 106.25 0 0 0 0 0 0 0 0 0 117.41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 76.42 0 70.83 0 70.83 48.7 0 0 0 0 0 0 0 0 79.69 0 0 54.29 ] endobj 1302 0 obj << /Type /Encoding /Differences [40/a40/a41 42/.notdef 45/a45/a46 47/.notdef 49/a49/a50/a51 52/.notdef 53/a53 54/.notdef 65/a65 66/.notdef 70/a70/a71 72/.notdef 81/a81 82/.notdef 97/a97 98/.notdef 99/a99 100/.notdef 101/a101/a102 103/.notdef 111/a111 112/.notdef 114/a114] >> endobj 1303 0 obj << /a40 1283 0 R /a41 1284 0 R /a45 1286 0 R /a46 1285 0 R /a49 1297 0 R /a50 1298 0 R /a51 1299 0 R /a53 1300 0 R /a65 1287 0 R /a70 1288 0 R /a71 1289 0 R /a81 1290 0 R /a97 1291 0 R /a99 1292 0 R /a101 1293 0 R /a102 1294 0 R /a111 1295 0 R /a114 1296 0 R >> endobj 1304 0 obj << /Length1 1438 /Length2 6052 /Length3 0 /Length 7022 /Filter /FlateDecode >> stream xÚwTÓ}Û?RÂPI‘f*pÝÝ)’c ±m#é’îTR¥DBR@¥ABBEéx‡z?Ïs?ÿÿ9ï{vÎö»úú|¯Ïõ=¿qÞ¼kįh´ƒ©!X~°H ¨¬«« A aHÀÉi ǺÂþÖ8Mah ‰úe4 ‚ÅëT X¼£.Ôzà  ÁbR`q)(IþíˆDKU p{ ®P ‰€aœÊH”7îè„Å×ùûÈ å‚%%Åïü *ºÁÐp(Ô…``nøŠPˆ+Ð …ðÞÿHÁ-ã„Å¢¤=== n$ÚQŽçÐŽuÂ00´Ìx¨qƒý&à;Á1¿ FH¬' â®p( Á‡<@ØÃÐ@|u ‘¦PCüvÖùípøçp€`ð¿Òý‰¾HGü †@¡H7á G8à®0 ¾šŽÖ {AØ_8B\1H|<Äw…Øá~µª)!x„ða h8 ‹ÀÀ]/0 ^¤Á³*Â^éæC`1€‹þTàhîÞ‚†ë‚@z"|þ–à{‡ öP‚&¸û˜¦Ê¼ ðo# Iˆ Kˆaî@˜ÔI𢀱7 ö˾Pã1øù ( ÌîÃÿ|0‹~óóùOÃ?% ´‡C±@;˜#øwv¼æð[ÆÏ ÷Z€ðôAŸ=YáfD¸zÿÛý׈î©ÝU2åûù_F%%¤Ї_XÈ/$ ‚A"@qüƒß?óüëþFÿK{ÿÓÝdÔD8 %.Pàïo$¨Áýgox€ÿ,¡‡Ääþ7ÿ-A¢ (þ üÞ‚_!ÿ?ò_dù_ùÿß©=puýeçþíðÿØ!npWï?xB?Àâ—C‰_Ä»šÁ~o´.ÌþÀí¿­šX~IŽx¢óƒE@"¿õpŒÜ fŽ…:ý&ÓßÓÀ×p…#`w‘øÅŃþˆß=¨ þrÁàgöÛÁàûk¼2 ¿jÿìCEÚ_줨‚FC¼xJà%Q ¿¼ö0¯_œ X|Ùè€D.-&t¼¸áðÇ€7üÖ€‚®M\(þQ úÆ·ó‹&øVþ–]0˜ ˜œ@B¥ƒ«ƒ[+™=ùW†dH¶ÒÍ…ø‡ ¬É°Ýª£6‹ FÙYSÚÏÕ&»ÀjÖÎmzJî‡9sv|–kØk½EöùÙÕÖÙíâ&Î÷/'ú°Üš l$xb–¢Ä&UŒî&¸ËEÕN.oïØmÄIéûWuçÇDO.º5q­½ÖöÊ’,zIÓ/Ÿ ±Mv}Æ+¢» å~r‹ ZжŒHÕ˸¥-ÓzHð¬ Zèíîbíˆ Ôòx´ò#K­*ÝÇ¢"r¹ÂtæéµŸ¹Å›4>vê´ ›öÝ/æyR«õ¶–·7­nr'µ‹;Ù&9Dƒ¿àŽX©Q3tJiè¼üÕHûéœ0v¢†^¹ÄŒig:\ãõ\Ù'V­°mï©ñΑ…Ÿ´S5-†{‚¹ïè&Èž•.ñ«ã|ãáJØüWe õ²*}φŸCÐÓ×ì™}îq3! ‰4§c¹¢Éàæsjaá«ð´r“k‚uŸ{/ÞÛ÷Á‰œ=ÝimUâšr¯ˆBÄÐDãjf|3 žoßÔBÓ«¢•qžn‹û¾^‹V:½nÈB¿2\‹›è×…Ô£‘R@öœgm‘Á1 ͷʦ—ºÂ÷ØJ ãì Jôò^ïÒ¿íA¶Ù .Ð 9Èó¸7=S)Ôèñ“€ªÞÍÍÌÖ¸iz0h_³>@Ú^äi¾q!夨ԥcºÛPíXÞ™ i>ÜðõËæÑ4¸«.ÀcóžÝr÷;±pŒæqÓ6Wˆ<ìÝûƒxÙ𠇦z™ïÎÚ?q¸4ºîÏqÚìºqXQ¥K.ñwå­Üpè GmÊÇÎøÕ`‹i觯ye>:£›\áíí€~ólÉ¥þ¢…ãƒouórò´S˵Æyûß =3Æ¥al™°¦-€à6yDó+K½÷Éׯk~ÁyaØÕ)ó§AͷĶݱÁ Ç~í4«#I<•¡ÄF†cæÉÞ7hd²0µBÎÉúÖ-‹AÍTœíWbM²›C|äÆcóJ+ž)»!çW@Cœ¥~OPÓ7ì?û8Ñ‹ÈEÒD^¶öT)ú®3ص¿ÖE´Ûß±^Ph«“'C] K³T*u7)²ÂNNØzw÷®Ü*Ó†®¯Ú»r?ßü4FŽÈð²Ð6¾8ö.˜¼¢%åH7bTd‹Ý–bÈn`§>â><‡šj2V‰qÛ uoF`Cì‚fŸëm† YAáÅ}‘sÙ-Ö·èô—ÞÓNÖ¼Ú“U¾–»ïExÒÖ1énæ ßá­ëŠôõx^(Yt£2÷–¤¥–úìÞz†_‘Ø3!?í Ð7ÓJú¡—Ñ—§‹ÅÚý"@Û.J á=g®ßä<æÌ7d>iÜ‹©ì!öò yEë°¬ÆÏ‘y+ÓŽî&wÎEÅÀÐ+]Ó{mݹ ±+Û…bYq_¤lŒTä(}w¾fæÜY‘7ÓÖq4ÌàyU59wÑgéÀJƒ«&ìÁÊ(»µ· ҇ʒ°u.5 î(ÀÓŸ!GqGEòC 1h‚ȯi-Í6»å!—©GôÉÌæÞ.•ä–<8ÍÄǸ&”sUˆî]y3ZrT÷þ#y`ÿ¼Î=ÓûÏí¾ˆ˜çX ‚ :ÓË©Ž»TTß4ïn׉k­?|Òo’Z¹Ÿ¹Ô s=6Ö`éCŒžygvÁLzzÎbB‰g²"‘!ÂìC¾VìÀ «ôåUf\Sà¬^9W2S’ú{°B]¨€ $¡tïˆæ¥a5\GQk€ÉGAmB"×b^î y¬äÞ€jO¿ªG‚5¼œÇÓvÉ.‰?ïUy#½ÞÕ;—Kõʯ6z•Fdé]ǃ¸!ßœcºöH«ž‘툔½Ù’gA›tH«  Iýà É;káÀ(K¨KC/<ÆÃÙòãY9U¢ûóòz}n’6Kþû7£Ùr6µ:<,hƒý¸:VÑýü‡Æ v:~‚rC¢.4_d <ŸêŸ‰Ó‹þ ¿Í,•üáÎSz»òñu½ý7ô”ËWt÷ß÷Þ_’K¾FÝ3|¾reå‡0ïçÛfÙ*kQÛc¾Û97Ô"çû#Ϙ֧t¥mì R´49ê›S:ïõqd w3t_£=Èײ`Hðw˜ "’¼“òB¬æÓ ðqþ˜¿'âåæ3£;$òàXù 2Š ÅñîyoWîGK:—š†±/󨉶Lâh¾}Y#og|á¦0ÊKgL'7­ÚDXh¦ïÈ?•2ÑMY©±ŽZe¸Ñ e»Ef‰+8}M%8:ƬêlJâ“ ŽØW%›êœŽŠz›iûâFw–R¿ûNÕc/8+Ù¯‡˜Ê–ã&…§Ú'´ü[V-ª[ëÎÞ Ûžzä¡è “+º¦fÏ3÷>ÓÞãÇ®¥§­W–U á²ßÿˆ.$ȉaÁu®]³¶/í2V# r› 47éGXmx²ï§ïŒÛÀ¨T¯a¯š@E¿¼U^Tˆz„ì¥êõÒQyÛ¦˜Yÿð´[¯ˆõ!P'êk–Cת wÊ£AD^õÔDÖ4|&æùðȳhÌÕÎÉ–˜ OÇè9²J"¶U‹güD¥§ _ö®­•â^¥¬Ä¢ËI(7F9 •žSè FÆ}–jT¢ßNÌ}à PgÎ?Yal »É¾͉ÜUô"¹óÅÜëß•ªOù©]Z^6åô¤¸.îž¼Ôf+w‹šU˜³)PükõCûýæ±v²;†0r·q ¢²˜ö”ÿÀ÷òï¤æ3‰Š§nЏɽÏYÄö­zÒ·–ÓýHGJZQó-û©×•Õ‹®$ê½Ë­|Ü5ï+ Ô¾üMŒª]qþ`¼×Öv¹ÕYJ‚ðÁýšØ€ó3“"NÞc1fË;õJ«‹‰Sñ2ý+w£9PDÎeí=ëžØ>xɼ¼@ëùxNÃÏqà+“Âî{ÍÙÎ!~O–¯±Ê—·úØÒ*‹+À—ýä>pX×Ò•t¢R™'Ì­羯|R¡•a®‡ ÇùáÜÅôS•ÉÒø¾½eid™¼ßx†ârý ‚SÖr¨>OPÓˆq#à™¿1W LRŠ7\gºr€8½\nž*§KH®¶âéçâ¯3¢ðùkéë«ê²]Ö/œ>nð¸Td6ÁÉ%ìÆâ0Ö7½ÔÏâCÉ(7ôB3îG}s®XR£3žiywõd+ˆÉpºòãT›_ðÑÒ-êFVñ­>$ \'èPݳۊº£\î¾ÓÉzjN»©™ŸÙ3žFŒ~e9]ÿúÑ›óO'†0¤­GÂb3ÚþJþËðxyE–Ã{å¡ë¤UÏ&šÌHöQ¡ã;.¤Oƒ†ú󨩏'­t—?PS’SÑíÏÄY–¼×O®r~ç-˲[bUdÄqœ=€~ ¸E¢b_)~'t*Fc(B^…Û’h½Mp†ƒòeWUã*š“¶„¬Ð5…R¹Ü¬r¥°µ©»ƒ³5ãÒ{?< ös3ËZçÿQ§»¨8„ÃØbìüâr¢'O;1 t6‰˜AÂÔœ%µð¶`JýÕ×/R]¿EÍ9YªÛÚ]Ú‡°Id4ppÏm÷Y›ÓV¸gÔŽïm-í(“ÜzqîÑÕ¸ç|FM#Ÿ–{<3 È:Ö°**P‚‘jµêe–Ö*yU-ïÚV[ ¥£Y>#¸[x°{F–?½Á?þ(È$Øo'šœ8sêr"¸â3Oº>’„ÌÊ£ Ž}ÛC´ô¥PB“:5Ôòf³§A÷‡ÔXò1âô5Ô(`“Yôæó„œfPrä§)…›)õþË*äc·%¤¯<|²]{¾ƒ!f͵ި”uTþþ4¾6pVþhmóî²tŒUb ÚÿP#±"Bû“¢sgMLù™¸ºã㦴£7ÌR”GJ²’{—ôn2pdò6ˆÅï÷9¡)÷n‘³ÃJ¥×®Œšu ”Øû¨ŸTÓ‡È æÀËõ…1^ðÊHÓçîWâ+^$•QM >;è]òô¶šŸ°ÌšÁ¹»};“ÏøX¨]¼/í³·gÜ$òˆ*´=÷ul±ÞÓ­qªÒV—Í….û¯M'UÙÞ âðB«+4Ð8¡Ýïjó7ÍG'_3…fËo_- #N?Ûè¶ ¯L¼O€>8õn21 tY ŠÃ¿‘ÔõG0¿xØìÛb~w<ÏôU7÷:nndÃÍÇãÕãN=,oîà (JzÕ S…4Öe|Ž?3{C„•³¸¸žD­äh+ñÊáì×j¦KDŠú¹Ü塘7UœÜ3'¨!•i[B\$iü¨H í-ÿÊ»¥]ᛲTw Ö“Rɸ7Ud¤kœ+»úŽç'5WŽ„0t¬OëçOkCÕßêõFB{„Æ6@Ó„Î.‰¿W~l­¬”·µVI';‹Ž±MÙ¦Ëru/㲚mK׃1gk¯%jX¿È¢À)?(¬cÒ¶¯Ñ]§¶½ëotÎ.«={.¯z´ªÍœ™ÉU÷‘¶ä"ç°ø-è5n%ØütÏäI©{I/¡møì@‘¢,ÑD¢§·Ç‹Â\a9ºªZ¸ïêRl§€0àÛ”6ŒFä$Dy‡VÐOÖû±½\Ó^ÿ¨mjtû…ÓbtN2JUªÕ³?;g„^JC‘˜ÛYÚ)«¹·Q¬ÕkûýM’9¡×Ö\ÂzQ—¹èˆÀ”SÉm²f ÆÜIP!´Î¿£‰^«ðÊRhãV`¡”;1}OŸ“·öl홚´Ì½óÜw!?ý;}·_4Ì“SÓî ¢ÛN‹Ø+¶»ì6ZzókO–]K9]q»  ˆ?æs¢Ê]e=mËúÙíUyÕÛ? £É·6]nÏæî&(åûjQðœïjX3“ÒùÝIõ0‘W‘á HÙ²*È<-ø–üò{Bé§¹uõw½Ô‰$ Ækšºû‹ÞQô"‚º¬¾• m·semŘzHIâ±Wi‡$\úÙàO×He쎒³r›.–rÂùؤe¯f«O?|ˆ“ 7B£¸B«9"\ö–ß*,‘Õ¥EAtÂ_§Ü »Ý_ ó=IÛµ«øÄ–Nq«&1RJí÷ÛhÕgã™w·B¥–Œ%OÑÏ%Ì—õª.lî&‰šºú±Èfµ[ö<‘ê”/µbT_r%TÑoá‰%Å¢·5åY/›èŽ&$/cÛ矈铅9+M-IȇÈ^Q!yCÏbñx×[%i²í²›Y‘Íí»(ÈyН'µ¦íeY'ñ…ô`^ñ he£n ÷)*p­z+¼úJÿiì‘ )ia{ Rp?;ÂDáE‘¼³Ç7HÏ+^¿¥1lsh ³ËöÀè4_ª™vy/šjoŽ9NÑx\dïb†_q÷6•ée[ô¢ÝåÏò'þ©>LçWy¯éš>¾[1ÌÏ'üáf:1Ï]ª“‘²dæõìÒzHV°Š² ¬fì§jõ£EøÉ|±' —n£wLþ=å‚$r»£¥Æ¢>rEÏëÚù€ƒW@–²ø,ò|U±eVW3t˜ ©ÈÙ¡n¿ “•qxºÿ_i¬'òÞç…w9‹I;(Ò|ù+¡:TÄÁ»µÆÄÔ¹ßpþ}ÔÔ„YçÌ:ÇL¡âã…eê|÷Ûr•¢«æ#Û6dÉx¹Å_Hø? ‹»6ºÐÓæšüZ‚ýz={u÷«F'­“†¢Ž<–§ÜÎ1çv+¼ô²¾Øhæ;ÐÑDM7ȵa«²ö-FÆ´Ù“ ´<štð„—=V1h;•¿¤sºæˆú!)ÔW8󢯾”ˆJõaâI?W'Ý£¤=ŇušäAµ³üï—¦Œl•¯<w‡gÐËØR PØê†¹ÑJ¬±™¾m(Ëèw}/¯¯ÏÔ?š72æ•8Jh«ÓÙ|ÕÜ œ@îâŠÌ‚¾À¥zIÍZø¶‰SµkZÚ~N{~~†q3.muz$†žÚØÖIä’2»ÙÕ’\r|^P§c/F¨}9óªÂ‰ð{ËoFzROòéÿr$^/š'3‘ŸãY7´ã9™BF7¤­ÉEŠ]]êêõçI#×O¼xÖkî)úVðÖÀ¢¯Kz 7Œ‘CaNëE«:EãB"[ï^G HwyÛ 5b¼ÎÙµ½r‰ß0[®wè˜|´äKŸh¸SËÚV³¯¦€èƒ[ƒ»ùxl> endobj 1306 0 obj << /Length1 1438 /Length2 6052 /Length3 0 /Length 7022 /Filter /FlateDecode >> stream xÚW4Ûý»§¶Öní«µ‰½jÚ»¶Š¢$$±©­TQ{oBíQŠZ¥Fµ­=ªöª­j”›Ž÷}ïû¿÷œ{OÎI~Ï~>ßçó|'œ¬úFüŠöp;ˆ†â I”ut4€Â!!!!abNNc(Êò—ž˜ó>„ÂaÒÿÍC¡0: 㨇4=\@P\(!-$’úËŽ¨€<¡ö€&As*ÃÝ|PG'¦Î_.07(%%Á÷+ è A@Á @„r‚¸b*‚A.#8 Aùü+—¬ å&-(èåå%rE ÀŽrÜ|/(Ê `ABž{ÀOÈ]+ä4bN€±ùÛ`w@yFáC`HLˆÌ‚`ªŒ4´znØogíß|€?‡ ÿN÷'úg"(ìW0 †»º`>P˜#Àêè©i  ¼Q|Ìþ§#È Çăø’`”5­U¦6õ¨fãÜ¡«äþ=g~âÐo¹žå…è7~µuG»gãWß°?%ú0²“5a囦(1K— z°ô™¢É;‰äí{Œ8ÉüïÔuO&zݾYª&¡ÞªÛÞYSš¥MÍ(u{ÑÕl×o¼"vD{'wÑ5.té©UTªn›–lû)q‚W5ùBß@ÿ,Ŧ×ÑÁšž!+{( U™~FQ‚êû³¤¹%ž[”~vêTÊÔF:ù¬†´ÄýÊIÍ»´VìfÎYQN‰Ä[´dmkÅNð ÔS±®PÉÔÜOlŸøÙËΩµ7O<¥9™Â[Xv¹Þ9üŠ+‹Ýß©¢ô ðÑ;E£hç´*°¿€idœ*ÿ %XèúI³:0UÖ;§§è ­=\Ú::•(ÃÑù²¦›a}™¸µ­~×`´ãûɪ¾Þð Déò°/•ØÑdEÁý‰ôP¹Ä+¤TARrÍâNœ¿ M£|bœQNÖuÂ$]ä÷ÕÍ wOù %ŸµÏËk¦ Ë£Ã$ Ë·®‡×ù£RµwÆZn}O—l¡4>VŒu¨^ ¦jÎ)¥ Í=˜Ñж¼ËñXT•H»}{ó|Ì1}l%,ì¶„ø­Ûr— g*\D ’Læöëý|ù¦ÉJÈ‚—lÓ­#ò°)©µûŸÃšYOo ›5ú­²Ú8úWzÍýBZ½E(ªß$>PqciÁ•®Ð*‚Æf{a]ËèËM´»gã±å´¿KÛxÑJ©6 'ªd&[ÄS1Õ×ÚŒ¶SÑZª‚ŸonìRj¤ÊtÙÏO¦ÈZ_û‹W­¨ž{§ 5ôpê Üè6Eñ™¨Gò+!—3´’£éŒÚT<“ +þMŒ 7D sP‹Û» ÓƒO ¡ `þ'œÃc’þ"¬Ö’eîÑ;¢Üõ'&ïÑÃØ'½‹Ê™‘ƵîÞåhwb ±’å-›añÄ´”hbçŒ4‰z]^@B Éa+©HwyRl›†¤Ñ0_ôÌjž²"FÕxMçìU¦V\ú¦gÔúžþÚ´ Crh%Sqêð¶ÉÜ”ä·ë”,¼õ¾b8„V»Îg ßÝd‹&O†ø õÄM¸îŒ¦MÞ>Ø,Taª¾šv.äŽÆ»yÞ_åŒæ£Ï –\^éÚè=r)Ö¹¦áJ†>¶‹Ž¬£ †°yìbqí‡Qê´¹¯ÏWzæ³¥O…ÇF„£HÃL_&Ù¹ê ñáHfqV „ù¤ß š‘¯ñcV@sPtÉš)'lΆ RŠº¦íê ”EºUu|Žá"®è®>¶ìÊÒîKúËÒéÈô+Ü2c‹ç‡ KëK ¹çíÉ­·§áöržcå åwé&u¥»¿²ïÉ|¾¸I09k?—®ý}±+—T _Ë5xÈK}‰nÛøaKiÓžêŽ:>Ã}%ï¬zΑÐÂÎá!ñœ×5Ä4˜E¢¬ÚÿymÚd‡åm/%žh…ò2#Ì_-êºë‡ûë™u*7¦8çœ l2“ìg¢g¥Z';‚§‹î¿2ߣ¬äÅ!į—C cÞp9ÌÍÎÖùK‘jìy8ÅgšDuÂ9¹+-ÔGi2žÔ('¾Ùr¾>DOpVޤÏtÝœ æ=ãZ‚'@©J#ˆú‘Z–$âëá9Tr„ISŽh >$Ôm»§o¹,4hê–†b¬ Z1ñºâ·kÚíbì©Ù|›3hYÁÿ–³Ñú®ÓpIÛ-Öt‡}itWšÑgÓ¡ú ÷+ňº!‘ljT4*_ ßAKF.T¾‘îéaEHËÌ¿j¶Ô¹áAƒÊ9×¹4ˆ d¼Pb9Û|ÚÖÖ°w©ïçSÇ  ÞÔ@­þ€æ¦ñ³÷e¦‡ÞÞìþA){œÛ'å @â¦̭8Qp“IQMæ¡“N/¼ïh&Û0«k[×RA:_xM•–>pžÍ_b= ¤}ǺÇéÀ !bðL[N骔Sé\EÜ1{Öìᫌ §bžc¨^¤óäØl|Þ›l]ˆLÝb%MZ Öƒ¡ºˆ²Äyîg™;7WOYS¶6žÞ+[×Û[žTÝ,çl>@ãÿŒ‹SÐMF—ŸX5–u;õµƒA3+÷Ê7_/I8†üØï}±½ÚèI ¼·\o|è”éË»jØ.ja✠{¨ å H?ød;¦Šµ~8#—UÝ9ísúJnä†1‡L„ì–m‡UmqÜø@oíQƒæ6ixÀµÐG2÷E…ûo첟hÀ¹ù¾Ôh,åø™+˱T«x=N‡½`yW{ 6—|p7^ãÏܼcÂö·¹T‹f«æ°Ö÷¨·Œj½¬=K)ø¸4t3Sâš’¥#õGt^cÉ®tìÁ3š(yß1ŸÁùHîÁæåx£Ûâw·Ù¿«.úú²NtI|¦Id8.õ‰áK¥^é" í5Ýž–v~®Ÿàm‘'Àø!áTiñeM§k‘2Ò°;à³ÅÆã0MI~üIkÚþù¸5š2ý9¾šËÁ#×”7µIÄf:8»‡Ð‰·d¶œÕS®´µ´ëN=fÌbÞ×Uª«Ò Ž››¾¹Ïçº\þÒg< Ì ¢™€=+8pÞ{‡îº¯&|µe©Ñˆé6I;_ 'oÁçJ0 µ´p/ö_Ò–F÷%4Wf7ÝñC‡G'ih}ç"ÓóN ‰t¿›éAć¿Vx6´íj`(¤Ð»¨`g¬ÅPã’Þ²þnüyòƒÏ1¼Þ[z¯Ru×Ih¼fANöä+ß–Ä[ÖÂ-ÜUBS.Óžl&±×7%.íBÉŽ¥róëØw!ÎÖž¿v,=¸6nsظR¤BåC£}þ‘—ú ì ˜W,×ê3*‡U+ñ˜j<,{­(—/ž³½lúBo„‘;îÇ%_¾‚"¤MAÅÈC¢ßâCÙÓ‘^Ö[Ö¨(æÝ–îq…ÚÖHþZ+[ìBéÕð%;ô·Ä{ÌþØú–¯ ¤§é÷Ú—ILéújÅâJúsª¥EuÕlºUÍ'©>!G¡t6˱c&EÌÖ1è OOÙiÞ 74¹÷Æñ­?l‹ë«ì²YÞ:V¡²»Ð*ËçMË— e®ÓÉ;å]kÏC†v°5çß¶±^¬]¾™"d¢0ƒ:¨ è%ã5²‹ÉC—^3#0P0|íâa‡­…{cX‚ünË[¿Ñk·–I¦ ‡¬)c#•]‰ÙÆ* %´Æ63™\é–c©9æMÒ#ô4éŽIÆ™I<¶x£V})‘Ö[Á]ùæ jLzd{•¨LU9{é…Ùù„ø^üdYMq µ²ªº†ý³³ ò§ƒô78<ˆŠ h¼Úá=N [ñ.Íkà˜V'Ï^,Ÿ<šB'9ãêþp# Qc7ìn~¯%4@·Fã+î-ߣMûBQ»©ú`S›Í­C‰ØNJCïœúºBª(©ï}÷ë—izG“¯¦ó$Âçu¾[c!ï}vJj}ðÇw.íµäɸ ƒ;Äf\1›I·`¯F‘è…¾·20FxmÕ^²AhxŒWjñΚ†À¹/^o‹5¢ø,–i»:VP(¨Ð]˜´Ùðz9›µVŽkõ»Ñ…é¨Ý•³©•ZïB؇Éõ7«†à–ÔÝádMðdÈ+šß+ˆ¯|Ƴ’X¸oÕ÷Ïû#0kÖª‹Ôw«ˆEõ©T€àîndI4"ØžTƒëñfó’ºá uÇÈD1í ãí DÐ¥óÈîqÏó ¿m‹éX¬u_üX–`é;³ø™è“Ê©rg7Òï1 Œ&ìäRæÝ}Ïåyt÷ /ËD8!ï/oN U‚ØoŸÒª²£m%owÍï3[D‡Êš¿%ϼÏ~·Î^»ÿmƒo_P®H}‚Äú„B¬6²EÆvtÁ‡ÜŠòXj]:¡l£ë`Íñ~ŸbHaì06±¾{V»ø>-­lö`×d»oºPuÎ…èÙÉÕ¹ˆ™Z-j*áX:zªløùÇTY’i­q;}@“wûÊ:ø^³ÀeVßÇç<"!õmC3¶ [óJ ù‘ÏÔ¾rNSkLÿx êrË—ªú-oLÎã;r¹0ûD iª¤¸¾Ú™–vêw]ïÔAè("=žÙÊÞ°©*cr¨ªˆ§Š™1¼Ç8«iÔhmýÂû>OhDé{’.ܯlOHBç¤÷ÕÅC™ .½:ÇL…?’YÜ%®‡øe‚³æK J|/N u )lo†`û3$Ì _?¹¦ý¸¨ìHÛKÖ«³)<ó»›éhn˜m=UDL˜$‚œäa-¿nÙ‘‹ÜÅ`t1Ã3¼5ê©”gNÓñšBźCzYµ=ïq°9`…†¿¹L"T+x4â<¿b³G®Ks°(gv8óZrOÎÆãÕïÔœkx/fáS;]ÄhòÀˆñ6¬“ÂÚFçEÔ”/d•ôl&ÆŠyR&+û¾¯\•fq¿T›1ßàá`yúcÖñʹ1¼¦U£Á¼mmZé£9Î- fgd}×ÊË–¸äè$QµAz¶+f³ÃZŒ=§l2ÚLTñ¯‹-aå!èe·"¡ùeÞùƒOð ×ÀTW¡¯"ó`r«ÅjþQwˆþÎ2³ÊÁz“6x¹´9ØÔís@¹M‡bËÄÇà³½œŒz4¡\ÑW$j‹¹ Üù‘†§¶ÉÁçÓs¥â¢°>BÅÉg"Š–l)ŽÎINAtSŽo¦S‹–†½ @%a¤ÛÅsáâå.Á¡U {ø§\üPÁ/(ìÄRŸûú—øWÄ·]T-?ûÇ'¾¥2 ónqj{e|Á0ØJØJs)š5*ûE?®þú­[NÞ¬—#•O¼Éÿ`ÓW¿©—¥êïãûLkX)ç<×à+Gj¬Ñä‚zû G*â6EÙBT‰œ¸FSÞ ÷Õ†¾óÙLÎÖ.¾a”R3wˆû$ãôðkRøxä]›Ÿ™²÷A@’]2´újHVZ¹ÁÒ¹'šÐ{¤Fc©£]ýóoÆS ¹=” ý7q™¨·&ÆXQù®&üSƒ\8#.W Ÿ¨é#r"Ãs^ëÔ›3ôŽö%‡1áŒõj¼Z=>ȉ1ªfÞJ² ä’\zx;­E…ïÿj— õ€ÊÚæÂÓÜ7f9žÇq–w‘ÇD^’Ç“0:nJ‚§€Yµ}©¶ñÆ”%­RjLê%©Õ ]þ5ÂÙ²jîO>BD¤_ÁX+øÍ¦Öe7l*÷64‚JÖ°K·ß×ÎRnøž2€7K¯»Ž>BvUŠeÂÒsí꺙ãr؜ԪoœïÙ]l+#éþJ\Xÿ\®Kï±÷Ö”)ÿÄã-vΚ ­ t%]u9Q ôŽç®±a¿’Ÿßk¬}·/„: á»IÎLÚ÷e÷< ¾íâøœí žÆælûŽ?'¸ÍÏÌ›6ÃIöI]Ê÷u†=¼‹ ä7­x¼À®hAÈr«q XÝ{ì…ÞÍxuÛ6|Z<ó¬—& 2ZÊÉ ;e¥®zôô±Ù†IùµƒÖ·ÀóxÚ8é×sLƒºµ••[5G)ú†ó«-Ñ|Ì¢TÎ(^M»Ï m[à ŽcjŽFË.©*xÃe/öÒIÇÚ±2&ƒ"_=`ßÄò:‘>ÄYí¬S?¨(ækãg–5Ø4¾!AÔºDɯourù¹{¸¹6qgLEæËǃ hD­GÙb ëÿ {h;«CÛ!>yÌÖ·‰Ò¯­83»e’Ä–>>V  q¡xJÇeíŒ;ç^LѽM V¥Ux~M^¡3áãšU\ï~2Ö'/ev^õÂÍŒ¬ÇSª‘—Ø~¤Ñ f3C[üÁõë’9}õ¼)ccÓ %ý›3|f :Ë7*›ÛY‚è«Gxxí *³AB_¢êØ¿z~ª¸¢Û÷{E)k8ej3İ܆Ÿ ¹{„öbÆ ž4<íj„dŠ©¦Ø¬ùÁÚ,ÒöÁ”NáaDJ­ÛD ÷vÚ*×â#&¶+Å“ôY{þ½Èö®Ââ2>Óí˦Ix1/Õ–^Q8¹pHÀ)ü±»c‹Â–õmjKC£§Í¬x•îäÁ¼zÙdùƒ¦h¡|›e+U¸Þ/SöDúì¹gÕ ;óÁÛÛvVM;tøg:472üª­ßExåŒÈ•§.ª‚q(¦j.>)¬o¡ÅDRl®V_s(®L·“-×5FƒÙ#‹7”ð0ØMðçøïŘõ®Å”®?‹>ᓹ\8^eꀞ›î©w7õ«(<¥3½"-”­Æç›5å¡_€¯vÊL¨ÖÄ ‰‘2í"j±¥¼Wr@g˜KÄÝød‡oç¤MBô{G¨·»O)4¬kä©Ü%8NØ’z·Yë’¯>8|?¡/lû"°$œŽ%¿‘]oö5ÑQœZ•ŽÍ\_ò•åÑúŽi °¢(ô¢ë'MGÒ›Êå‡O—¼>L/Š<˜î6æ]®Ï];¾ÛnP~¢eÿdaÜ/ͯÓ]®·ùƒAùê;§u°åŸ«r5Ç#Ô×=@Ð{\|8…£·–™œ½]›-¸ËôÄÇ¡R›ÌÊW$ŽJ·‘GûÅllÞuôHÄ <®V$ÕŽµßòbÒìêknÞvRHÓí;¬x?|»*7o~.žÞ{¬÷OfƒíYƒdìEó ÐÓœAÏ“îþ»—ÎÍHèæ4õÏ]‘¡_Ó_ÈÚaß:ç†lgVž>g%ÍÃHQh„*o>|d93I'¹Õ›Ï‘NÕGRû¿Ø¯h7ìGE·o 4=xPx—æ¾ÿ³Ž–:]é”[{/õ¢ª×.“z¶~¹4˜§óc<œá‡MpÇ´7$/§ôúw¤LØÆ†è.R¡yã“Ù’[=_Ë<²˜-¹­O”U¡ÂjÄ›®'4JöуHdÏ[00Ä@;>üj2Þ=O2Dºì>,üÂØH:M\Û~A-á2îaˇù|MvÚ=«§ËØþó§C7¡à}òMwÖ½ë¯ã:•I>HMÆË׋PñAâÓL“ mVë„m!\¬²>ꊷ7ÙÚ*~}Ðw gó‰j%”õQ“ûF†MhQ°ôÈ´ŽS,¸á=WmCìÖEe 5&\­-Ï›8·˜ˆ²Nå|+w+¢Y½ˆ¥ •Ý ·³BcRHK%é+ÿZMì©Ö´dºú‹{²B«h…®ÏÝÌV¤² ‘0 Þd ^žÂ1Ô)6™Äü9¹±º³z¦þ<Šê6ßÀ‘Ò#ù("^ýÖ¬êû<…í'ÀÑ”òUjhᘟ­Éü Ÿ`ìˇ•ºYI+3“,¢›¶ÖœŸi°dNTà.°î…½sH{rw”Ä1VT]b€ó²î“)*+ÁUç\Åàšná’Ž_=>¬vå˜Q@—ô°fõ +ãrœU»4-–óv^yµÞ×vxÞöl®s­ÉÒ?°%Ã2|Ðçȃcv!'q×{.à|­¡¾ˆÚÒ上ͧ4«hƒ7Cã‡hLÄ; =Å»øVÔL9œã»ù ñ¥þËÜò£œGÕù9Y9æøÞ]C)ØðpÂη*õEf+}>·IW5£¼»IêLžÓ[e$ŠMWþÅCÁY endstream endobj 1307 0 obj << /Type /FontDescriptor /FontName /ZGGNQH+CMMI12 /Flags 4 /FontBBox [-31 -250 1026 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet (/greater/less) /FontFile 1306 0 R >> endobj 1308 0 obj << /Length1 1490 /Length2 6569 /Length3 0 /Length 7571 /Filter /FlateDecode >> stream xÚxX“íÛ>Ò")ÝéÜ@@@ZJrtã#džl4Hww ‚4*4 ’R" ””€òÍxßßûþþÿãø¾cDZ=÷yÕ}Þ×y=Ï6N6]}A[¤ L‰@ ‚„€R%-}SŠ "DœœŽh8ì/œˆÓæ†rD"¤þá¡äƒ 1Ø=㨅Dî»Ã QH\ $!D€@É¿‘nR€{G[€–à>Cq*!]½ÝíИ:]x ¼¤¤„À¯p€‚ ÌÍ A´ h˜ ¦"è#¡Ž0´÷¿RðÜu@£]¥„…===… .(!¤›½,¯ÀÓíЃ¡`n0[ÀOÊmˆ ì5!"N€ƒ#ê·Ai‡ö„¸Áî…!P˜w„-Ì €©ÐW×è¸Â¿5;þ$ú;ݟ蟉¿‚!P(ÒÅ‚ðvDØìá0€ŽŠ¦Ú -€ l:Bà($&âq„Cl0¿¶¨(€ Ã?üPP7GW4JåÿÉQøgÌ1+#l•..0Eôs÷Ý`P̹{ ÿi®3é‰ðýke爰µûIÃÖÝUØáøÐ¦~ï"úfCÄ€’ââb ì!æuþYÀÀÛöËø Æpð÷uEºì04`þŽv0Ì‘/ â ÝÜaþ¾ÿ4ü{El¡h€ ÌÞAôŸìf÷{é¿›£Àˆ‘üùúûÊ£0[$îý÷_-VUÓ½gªÊÿ‡òßFEE¤ÀWPD ()€@ q€„„Àÿßyþ>¿ØÿBu!Žv÷Œê;$@ò7 ÌéýEÄã2xþŒ /àß´‘=Ã<ÿ‘¿P żþÏCð+äÿ§ýŸYþWùÿ÷ŽTÜáð_vžßÿââ÷þãѳ;3ZHÌ„ þÛÕö{ µ`¶Žî.ÿmUGC03¢€°Çè\t[xû7îˆRqô‚Ùê:¢¡¿µôW305àŽ˜.åøó¾ƒ‰ÿˆ=¨3æÞ‚Â´ì— †™¬×UF@‘¶?GPDLqsƒxa€Y‰|A˜Yµ…yý’8@XDcBŽþ;¤ÑÏÆ‚0:¶@QpÊá§í7 ÿ »ýÁn( ³Cÿýÿn÷߸Æ=ì7ô¯-CÝÝÜ0SýK[>­ÝB`0/”hv •uª m;«V`ô\{‡¿¸Ô•hÚ)†æš~âë I­:þPñísºÁ Ý™òð±)?F¾½³a/‹×¹A éjùh,åžÅ}Á‚þoG¯ía,¶Hû‰Œ¨Š/I`f²æ¸æÜ)ÆSa]¢/Ö‹.;Pf’Û@É 9[:#:N!¯c;Æ”c =`jAÓÍ<ÓÝ@Ýpä;Æ1þT±-–þ›÷Šy|ÖÀüüÛÜÞž ÑÃBî*ñçá”ôT>÷Ùò“ûè©“rï¿Daq)Š(•§%²Ó»„s-àQØÛšÔ'êÞ`¯­tCçÑP£{RlJ&¯káÉz5Çà›0 ]Sr”ƒ@u‡"g•-ÖÉ@æ—*Qx~7. ¿®cîJkYZvjª‰ý¡1–àQˆ¨Õú(ÝÙƒ¸ì$ˆeš üNß§§Šâºp×A;ãwÓ” œ”ºê8ÚlNK„¾>íq¬4aMAo6½mèŠØGrì1S%š´go¿ÙJz©.vòžÂˆOY]£1ì´æMÈK˜ÐËÏÃÕmíP•6“—œeO0%+0 ˜6ÐÜÀÊÔ¾n*¦8ANJé¼WÎüâÃ3ñ¡'2ÁM2iwæF÷¯Ýï$׬Üw}óJ´qÛ!´ÒÈï0sxPªÍ}};ѱq;ñbSÑtÎ<ÐSѯï‰,ÑýA;ú†ºêuv¾ÃåïP aÄ{ïL«Ú v…w<^'Œ˜4ŸaiÒäÔ)ßÎR O¹ywA—;þþÓÁ¹¤I^ŽzvÃR-¹ãºm¹¥W¾©P ÒiZ™9]ÊE•,E¾H;YÌj_4-Ê`­îŽ]K8€Á\Ò¬ÃZOò (1±>ÎIv=T•¸èÏJ¨ic;-§´Æ'àï9ÖÛ/Ÿ?‘ÎÔíHzí² vEôÏ­ÔO|šô­ Ñ.ÆúâÀ‰úVñy?€Õ<½¤]D¼ºöÌèÃêp_H'¤<ÛòxSnR€{÷Ð]OÉt OºÒ‰ôè².Å×ûÇÆGUIŽ3Ø6_ìɶY“þNÒ» †U™]0¼)Ô$½3òêx6:xÔ0‚¤šÅ~£©Vü¾EããñQcoæW‚‡yüÓsPSï´žw­Åù9׈(­µ†b/Ê×oá_2rçŽÔŒž”£õËú‹ÈlåækL¨q)yBLCÂÞœ:k7˜¾ÚU™¹»©è_—þÙ¹n®›`Qo—çÃäˆ•È '9[áârÇ%´+v˜ì3ÜÏ%9ñv§ü6=x­…úyh÷cJ¿”„¬7¿ð?J,Êgy“ªÜ_;‹“¬Õ»=-üü„™f=†s¡ËŸÕUªÿ졽·Á®*îO\²C²GŸgÙ*P M|›Êï·QͳÚl4y°­Zö .¬aÇhLå³à–o½+ó]•Ý—»âö`¸‰ „§“®;­&ü ½ðǺÆYŸqÍn³P¿æ¨{×Xzo ’}[*ïº6F3˜éŸ7)ô-E<#Œ¬{»D?Ó¤°šÚüº ï¨V»,0Ç2òB k2‡éFñÕ?ÁÊJìJ:°öl£‘|O‘-XxNÑﵿí¾+~÷yx'¡GÃl?çšË²¢$ šŠŽ|<ܵ]C¬iõèøíÕÅ™ 2LbÉIµ#Ä^ò ±µÜúø¥#Sê뫓žx–T2¶˜·IHÓø»¼ëL…»X%'¶ üBçÊÊ¡h§ù€ÊBBFЇ¶Bõóëè— ÛrcðgNŸÐ ºûµÍ3&E …]¢huoà›Ž§B¸·¢zÌSn1‡Ü»¥ü>8ÙÕµJ…¯²ìkÍB¦Ç7 Ûa„âFÅ8Žd_㎉Ô׎ Ù¾¶l)¾w šÌvØï⨻%“¹ ÉNÒü̾ԭÀˆë¼£’í»«5ø¶‚L4º°çŒ¹}fÍŽ†˜?ð^GìŒÜ¨›4hK¥èÎJœÓ^$½¿ýåð³Õ=DzKó’})ÔÝÇ›DºØ¨ #Îýr°Òoá3 ݶ3ŒÞz¨äz1î's›ù>Ó%¦ã§Û¿‰Ê–<(e‰÷_]Ká#bæ·wU¨x-ãçT)"F¡Ô,‘óu’8ùKzUCÆ y€Ðga•2FÆþæA`a:Z/w©%[ˆÉFìÀ@ßIªø¶:åâz¸w?Y/_]³œte½¿¥0 Zº ¦þÜ©Èbtüˆc_R¹°…&ÑI†(ÆRP¹ùØ×¯ÊšLLô´XeÏ~¢³îöcŬÍÕœ…²Ê›KíkGöÉX_-ŒÝn ˆf‰(Jݽе£{ýÙ‘À”~O¾øñJÓ·¢Ró¤ù×>·5Ô|£=î ð:Uå¸Êg -Þò/h¾1”ú²ŒöãH‡Ê»¬ThuMvR° Ýó×vl´×XùÛ+„ð…7<ñßDéÝiᑟÉö!6µËwks©»däÍ?•5a{ë’;†Ó_±)©mž=¾óÞ™v2 ï®÷Y®¶; $•`«¸¬½G¨¤÷ 6Z»¾øM$\¤–¼ÉYAÝ2‚—VëŒ, Q¿pýÊ4}ÑÀ‡Ÿ•0ÉUÆgÏÜ—Ä}•Ç"[¦»àzÙïwwq¸§(ã´ƒeŒa·úæÕÖl*”ôy`ãÝ‚GÞÜ.;¨»Y†Ÿƒ$]Ù¬;°KÁm¾®r—hç¨ÖYÂË”%Åî){÷Êɲþ&âHÔDö~Üì½Ý@í³°kí6æ8߇´6¦<²ì³wø6c:úß9—y‹ž!—£Ï°>¢ÔVºHîy.7ŸY·3&RoÛ>ñUN¦(îŽñ š¥_Ê¢â 6ZÚp`@çžø8s8;sXÞÞ®¢ÆÝ‡Ú5œW‘·*á§Ë}}|’áÊ W=I¯gEáÚ,•Q »]k8zÂdò°Ceì®õIŠäNÄ6%ø=ÁU¡‹F¼/—ôÝÉÎ<ü —ÃsG‰¡šúíܧÜ|4—M ®!Ñw'c… åÊE\èyóG쎛«vÓ–– ϼoñ¬T=àüà[ÁH^ÊÖfÉr¡½ší6+ùŸMºÅ|Q^übŽû`¯£Á~ÊqÎQ+CÅð)x:WnËV^ÊKn)ZÁNº5É4‰Åɧ坯ÔÍõ¹8OZÉöéR&^¿›k;}5ˆÊé2_…‚¼3†bF§íªrŸ.+Y¤·¸òâ>ç=Áÿ‘kÍšMQÈ[3ÉÓ|žSÜpCK«…¨¡.”äa¯WcÕÀ©Ò⚨6V£¦ªÎÓ@×Ý7‰ÕÖ2R}¦›Ã/øøyyaLFÊWÃ3]öVáðpþʶqÓ˜¥°’'í„ÐÑ–‘1[³^ÚÞ™@òõMSuÁÄXøƒ_÷¤LRo¬+ŒªIÕ¿x²dªÆlJiXnUëómò éÓ³2˦' z¡Rö>]íÞ졃œë!÷XF3•î§ŠLkpW_¯bþÉìIªÆŒ®CÝ#ízó&\õë­È@%Â}Ÿ…q»ë×ïN¤§Æ^]{póTVMÝçn»\šçxà¯wŸ,˜àC€EY Ų¶ˆ³]!äé~_BôqùVý¡ÇÒVçq€Æœ±o®ÖÄ‚¨ÜtB\¹Ö¡å7)czi* ÖÄ0òL<“ei¼PEÖäëQ¥&” BºKêÒrùlE‘¡/Q4;8'†–«/B’eÆL¢ܸL«è¨…–õ–© ç[ ²QÂéxdEÒŽîaTp«)€s7žõ”¤]]³8>ÉïgÒ ÂÞ)ÐMá’@£É°OÜU}¤5ìo8‹c‘~éÎËþ¹Núü£~Zz—GûàþÅW¥Gur÷CZ…“UØÅ …ª²øØÇü5À¡@zö‰Ê1™í Ôç…Ý/ä}Ë¥é ¶!Ï qy!ÿ˜¼@ôö`€Å~¡Ñò`yÿ3Šâ—Ïž¿º`–ˆ®3Dg¿˜*ïõÞXx“B`«$v¡êf¿lˆÿ†\lˆ#!"#–˯:¡¡3šðQÚ¼jÅê̼Œ-’‚*|-µE'ZtiÈÊ"€ä`¤q°›c9lÙÆ2¦ Ó™Ibˆt!Š}ÿ|ÿºžyíh&Rû®Ó­uÂÜÁoÚ@Ï)gH_Iû³’í‡Yh<†NñHÍÀjäNÂÂW(Ͳn³hDÚGà–÷lu•oQÊÇæw..,oÇ4©â©Ýc.¡É%£îºkXZ;­=wGië4‡š&%%κÅÈp>†æ6I³¥–äW–¨Ù×^Å'̲½ãÛcyëÒüX8‚þFïy^ëtv¼éMê:Þ¤˜„3õâ”[œjÉXϼ†ýŽQU(¯Ýbµ¼»*+«3xïvJo4›‰Ò…a¹,Œ9è ›ÝL žOÇý²út@¦lõ£§öÚã:¼B*ŠãLGlQw5Ô³Ûz4Jͦ± 5:Ènµ6öÍþáI`r/´+»Ì;è´P޳*jwRip;h%úºÎ·ƒí7K]“3}›ËÔÅi•Ò5.•p„=«»PT~ÐÏñüeLIó¸ð(©‰Æ+Óóú§Žæ0•¦…<.’Gì¡«Ê)²ïÂý¥à’õ{|çÓ4Ê_F|9oGܰV½ΕE}\l¦é!ÛUàÆ%A7ñªöcÆWR Ò§¡ò.azj¬èÞ7ƒq„ÛŪÈG³W—=û¶¾½$H-Ù´,˜™´j"{Å•7ï z¼,GE\Ò´ˆ¡ˆ2{µ‘{ƒI}g#¡¾ö…ŠÆÎ×p‹yPðËqz$WÌ´ g€èhÜü¼e;N•Y%â;Éëk<¢ (¸]¯Ect©”Qíؤð525û4p{’õ)Õ,E´ÑQˆQŒªãçt`Vå ^êÛy©Ó‰olg[ üÉ*5Þ^—Ó-™À1Ül¢Ø/×»¬(ÃŒf‡¯ËÁ&ëΓI— »ÏdÄåÆ g×¾Q*<Ê3ÿá¶’²óØŽj@¢:{D¯ë—¹SŒu–gh¶—…¦_¥½ÀJÏ»:×t+/V`Zûb«Õ¥LKŠCái-ŽoßµþObË®É4t]D‰ ™/ªQ/âæò%ÚÒE ñŽ8Ÿ-•Ôª®‚MŒU÷nƒeëjËãØ†'®q°áEO<Ñ2¬m{]TàKÏõ¥Ñ ¹öˆ)U*ÕÅnªÁXZ+‹´å€!#(”æ['5µïWwI6:ºÉ}>5°þb‹DD2a˜Ä×*‰É!|rñ´Ÿõ.«‡åšw¡€A“¤¦ ˜ßF p¾‘‹-$ݦ’Ö³À/Ô/¤i1ŠÙ¦YueÕ‹{häNÑž&w¯õE­¿opsó$ne¥h%뤡$[yx12%·‰—6+@ÍÆ®ÄÙ›Aö$t¼?9½Ã‹GGï.š?‘ÍùnѾA:£y™[Ç$®ÚؼqPbÚ¬pH¸½AfÁ¸mà&«ÉyÛ¹í¥ÔŠ+]¿l'·v‘ñ >(£¹ž>Ùn<..Yáú­[öH{dÞ˜è¤Ê8àóËL6ßq«xFåU§2±Øˆ¨ÑE³þǸÙÎÔˆ ­WA$aEŸG}®=!37ˆ’øúè»þ³+ìÖî ðSÍM“OvxŠàÈ̆¤‘ýK{eS~\ãOßÖxè?ðH{X6óÉÑòCéŸ÷yƒ°|$K;= KködÏ\_åèR,®Á?¡-½"æ±ÙÇoOÀîÄ?À%꺦7s:a;†wdò$ʿٸ”˜ž‡¡%Ÿ=¹_%v.æ÷Qµ4è±Åùâ-fÚ•ÌÀc‹ÿ.œ² endstream endobj 1309 0 obj << /Type /FontDescriptor /FontName /GHPDYG+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/backslash/bar/braceleft/braceright/bullet) /FontFile 1308 0 R >> endobj 506 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SYFPBV+CMMI10 /FontDescriptor 1305 0 R /FirstChar 60 /LastChar 62 /Widths 939 0 R >> endobj 671 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZGGNQH+CMMI12 /FontDescriptor 1307 0 R /FirstChar 60 /LastChar 62 /Widths 813 0 R >> endobj 469 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GHPDYG+CMSY10 /FontDescriptor 1309 0 R /FirstChar 15 /LastChar 110 /Widths 940 0 R >> endobj 471 0 obj << /Type /Pages /Count 6 /Parent 1310 0 R /Kids [430 0 R 499 0 R 544 0 R 578 0 R 594 0 R 610 0 R] >> endobj 624 0 obj << /Type /Pages /Count 6 /Parent 1310 0 R /Kids [621 0 R 630 0 R 639 0 R 647 0 R 657 0 R 668 0 R] >> endobj 678 0 obj << /Type /Pages /Count 6 /Parent 1310 0 R /Kids [674 0 R 682 0 R 690 0 R 697 0 R 706 0 R 711 0 R] >> endobj 723 0 obj << /Type /Pages /Count 6 /Parent 1310 0 R /Kids [719 0 R 728 0 R 732 0 R 738 0 R 744 0 R 748 0 R] >> endobj 1310 0 obj << /Type /Pages /Count 24 /Kids [471 0 R 624 0 R 678 0 R 723 0 R] >> endobj 1311 0 obj << /Type /Outlines /First 3 0 R /Last 407 0 R /Count 10 >> endobj 427 0 obj << /Title 428 0 R /A 425 0 R /Parent 407 0 R /Prev 423 0 R >> endobj 423 0 obj << /Title 424 0 R /A 421 0 R /Parent 407 0 R /Prev 419 0 R /Next 427 0 R >> endobj 419 0 obj << /Title 420 0 R /A 417 0 R /Parent 407 0 R /Prev 415 0 R /Next 423 0 R >> endobj 415 0 obj << /Title 416 0 R /A 413 0 R /Parent 407 0 R /Prev 411 0 R /Next 419 0 R >> endobj 411 0 obj << /Title 412 0 R /A 409 0 R /Parent 407 0 R /Next 415 0 R >> endobj 407 0 obj << /Title 408 0 R /A 405 0 R /Parent 1311 0 R /Prev 387 0 R /First 411 0 R /Last 427 0 R /Count -5 >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R /Parent 387 0 R /Prev 399 0 R >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R /Parent 387 0 R /Prev 395 0 R /Next 403 0 R >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R /Parent 387 0 R /Prev 391 0 R /Next 399 0 R >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R /Parent 387 0 R /Next 395 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 1311 0 R /Prev 379 0 R /Next 407 0 R /First 391 0 R /Last 403 0 R /Count -4 >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R /Parent 379 0 R >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R /Parent 1311 0 R /Prev 227 0 R /Next 387 0 R /First 383 0 R /Last 383 0 R /Count -1 >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R /Parent 227 0 R /Prev 371 0 R >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R /Parent 227 0 R /Prev 367 0 R /Next 375 0 R >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R /Parent 227 0 R /Prev 363 0 R /Next 371 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R /Parent 227 0 R /Prev 359 0 R /Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R /Parent 227 0 R /Prev 355 0 R /Next 363 0 R >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R /Parent 227 0 R /Prev 351 0 R /Next 359 0 R >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R /Parent 227 0 R /Prev 347 0 R /Next 355 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R /Parent 227 0 R /Prev 343 0 R /Next 351 0 R >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R /Parent 227 0 R /Prev 339 0 R /Next 347 0 R >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R /Parent 227 0 R /Prev 335 0 R /Next 343 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R /Parent 227 0 R /Prev 331 0 R /Next 339 0 R >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R /Parent 227 0 R /Prev 327 0 R /Next 335 0 R >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R /Parent 227 0 R /Prev 323 0 R /Next 331 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R /Parent 227 0 R /Prev 319 0 R /Next 327 0 R >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R /Parent 227 0 R /Prev 315 0 R /Next 323 0 R >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R /Parent 227 0 R /Prev 311 0 R /Next 319 0 R >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R /Parent 227 0 R /Prev 307 0 R /Next 315 0 R >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R /Parent 227 0 R /Prev 303 0 R /Next 311 0 R >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R /Parent 227 0 R /Prev 299 0 R /Next 307 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R /Parent 227 0 R /Prev 295 0 R /Next 303 0 R >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R /Parent 227 0 R /Prev 291 0 R /Next 299 0 R >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R /Parent 227 0 R /Prev 287 0 R /Next 295 0 R >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R /Parent 227 0 R /Prev 283 0 R /Next 291 0 R >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R /Parent 227 0 R /Prev 279 0 R /Next 287 0 R >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R /Parent 227 0 R /Prev 275 0 R /Next 283 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R /Parent 227 0 R /Prev 271 0 R /Next 279 0 R >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 227 0 R /Prev 267 0 R /Next 275 0 R >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R /Parent 227 0 R /Prev 263 0 R /Next 271 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R /Parent 227 0 R /Prev 259 0 R /Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R /Parent 227 0 R /Prev 255 0 R /Next 263 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R /Parent 227 0 R /Prev 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R /Parent 227 0 R /Prev 247 0 R /Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R /Parent 227 0 R /Prev 243 0 R /Next 251 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R /Parent 227 0 R /Prev 239 0 R /Next 247 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R /Parent 227 0 R /Prev 235 0 R /Next 243 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 227 0 R /Prev 231 0 R /Next 239 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R /Parent 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R /Parent 1311 0 R /Prev 199 0 R /Next 379 0 R /First 231 0 R /Last 375 0 R /Count -37 >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R /Parent 199 0 R /Prev 219 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R /Parent 199 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R /Parent 199 0 R /Prev 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R /Parent 199 0 R /Prev 207 0 R /Next 215 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R /Parent 199 0 R /Prev 203 0 R /Next 211 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R /Parent 199 0 R /Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 1311 0 R /Prev 147 0 R /Next 227 0 R /First 203 0 R /Last 223 0 R /Count -6 >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 147 0 R /Prev 191 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 147 0 R /Prev 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 147 0 R /Prev 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 147 0 R /Prev 179 0 R /Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 147 0 R /Prev 175 0 R /Next 183 0 R >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 147 0 R /Prev 171 0 R /Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 147 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 147 0 R /Prev 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 147 0 R /Prev 159 0 R /Next 167 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 147 0 R /Prev 155 0 R /Next 163 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 147 0 R /Prev 151 0 R /Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 1311 0 R /Prev 107 0 R /Next 199 0 R /First 151 0 R /Last 195 0 R /Count -12 >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 107 0 R /Prev 139 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 107 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 107 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 107 0 R /Prev 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 107 0 R /Prev 123 0 R /Next 131 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 107 0 R /Prev 119 0 R /Next 127 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 107 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 107 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 1311 0 R /Prev 71 0 R /Next 147 0 R /First 111 0 R /Last 143 0 R /Count -9 >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 71 0 R /Prev 99 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 71 0 R /Prev 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 71 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 71 0 R /Prev 87 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 71 0 R /Prev 83 0 R /Next 91 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 71 0 R /Prev 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 71 0 R /Prev 75 0 R /Next 83 0 R >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 71 0 R /Next 79 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 1311 0 R /Prev 39 0 R /Next 107 0 R /First 75 0 R /Last 103 0 R /Count -8 >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 39 0 R /Prev 63 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 39 0 R /Prev 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 39 0 R /Prev 55 0 R /Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 39 0 R /Prev 51 0 R /Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 39 0 R /Prev 47 0 R /Next 55 0 R >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 39 0 R /Prev 43 0 R /Next 51 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 39 0 R /Next 47 0 R >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 1311 0 R /Prev 3 0 R /Next 71 0 R /First 43 0 R /Last 67 0 R /Count -7 >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 3 0 R /Prev 31 0 R >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 3 0 R /Prev 27 0 R /Next 35 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 3 0 R /Prev 23 0 R /Next 31 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 3 0 R /Prev 19 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 3 0 R /Prev 15 0 R /Next 23 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 3 0 R /Prev 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 3 0 R /Prev 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 3 0 R /Next 11 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 1311 0 R /Next 39 0 R /First 7 0 R /Last 35 0 R /Count -8 >> endobj 1312 0 obj << /Names [(Doc-Start) 459 0 R (page.1) 458 0 R (page.10) 649 0 R (page.11) 659 0 R (page.12) 670 0 R (page.13) 676 0 R] /Limits [(Doc-Start) (page.13)] >> endobj 1313 0 obj << /Names [(page.14) 684 0 R (page.15) 692 0 R (page.16) 699 0 R (page.17) 708 0 R (page.18) 713 0 R (page.19) 721 0 R] /Limits [(page.14) (page.19)] >> endobj 1314 0 obj << /Names [(page.2) 501 0 R (page.20) 730 0 R (page.21) 734 0 R (page.22) 740 0 R (page.23) 746 0 R (page.24) 750 0 R] /Limits [(page.2) (page.24)] >> endobj 1315 0 obj << /Names [(page.3) 546 0 R (page.4) 580 0 R (page.5) 596 0 R (page.6) 612 0 R (page.7) 623 0 R (page.8) 632 0 R] /Limits [(page.3) (page.8)] >> endobj 1316 0 obj << /Names [(page.9) 641 0 R (section*.1) 466 0 R (section.1) 2 0 R (section.10) 406 0 R (section.2) 38 0 R (section.3) 70 0 R] /Limits [(page.9) (section.3)] >> endobj 1317 0 obj << /Names [(section.4) 106 0 R (section.5) 146 0 R (section.6) 198 0 R (section.7) 226 0 R (section.8) 378 0 R (section.9) 386 0 R] /Limits [(section.4) (section.9)] >> endobj 1318 0 obj << /Names [(subsection.1.1) 6 0 R (subsection.1.2) 10 0 R (subsection.1.3) 14 0 R (subsection.1.4) 18 0 R (subsection.1.5) 22 0 R (subsection.1.6) 26 0 R] /Limits [(subsection.1.1) (subsection.1.6)] >> endobj 1319 0 obj << /Names [(subsection.1.7) 30 0 R (subsection.1.8) 34 0 R (subsection.10.1) 410 0 R (subsection.10.2) 414 0 R (subsection.10.3) 418 0 R (subsection.10.4) 422 0 R] /Limits [(subsection.1.7) (subsection.10.4)] >> endobj 1320 0 obj << /Names [(subsection.10.5) 426 0 R (subsection.2.1) 42 0 R (subsection.2.2) 46 0 R (subsection.2.3) 50 0 R (subsection.2.4) 54 0 R (subsection.2.5) 58 0 R] /Limits [(subsection.10.5) (subsection.2.5)] >> endobj 1321 0 obj << /Names [(subsection.2.6) 62 0 R (subsection.2.7) 66 0 R (subsection.3.1) 74 0 R (subsection.3.2) 78 0 R (subsection.3.3) 82 0 R (subsection.3.4) 86 0 R] /Limits [(subsection.2.6) (subsection.3.4)] >> endobj 1322 0 obj << /Names [(subsection.3.5) 90 0 R (subsection.3.6) 94 0 R (subsection.3.7) 98 0 R (subsection.3.8) 102 0 R (subsection.4.1) 110 0 R (subsection.4.2) 114 0 R] /Limits [(subsection.3.5) (subsection.4.2)] >> endobj 1323 0 obj << /Names [(subsection.4.3) 118 0 R (subsection.4.4) 122 0 R (subsection.4.5) 126 0 R (subsection.4.6) 130 0 R (subsection.4.7) 134 0 R (subsection.4.8) 138 0 R] /Limits [(subsection.4.3) (subsection.4.8)] >> endobj 1324 0 obj << /Names [(subsection.4.9) 142 0 R (subsection.5.1) 150 0 R (subsection.5.10) 186 0 R (subsection.5.11) 190 0 R (subsection.5.12) 194 0 R (subsection.5.2) 154 0 R] /Limits [(subsection.4.9) (subsection.5.2)] >> endobj 1325 0 obj << /Names [(subsection.5.3) 158 0 R (subsection.5.4) 162 0 R (subsection.5.5) 166 0 R (subsection.5.6) 170 0 R (subsection.5.7) 174 0 R (subsection.5.8) 178 0 R] /Limits [(subsection.5.3) (subsection.5.8)] >> endobj 1326 0 obj << /Names [(subsection.5.9) 182 0 R (subsection.6.1) 202 0 R (subsection.6.2) 206 0 R (subsection.6.3) 210 0 R (subsection.6.4) 214 0 R (subsection.6.5) 218 0 R] /Limits [(subsection.5.9) (subsection.6.5)] >> endobj 1327 0 obj << /Names [(subsection.6.6) 222 0 R (subsection.7.1) 230 0 R (subsection.7.10) 266 0 R (subsection.7.11) 270 0 R (subsection.7.12) 274 0 R (subsection.7.13) 278 0 R] /Limits [(subsection.6.6) (subsection.7.13)] >> endobj 1328 0 obj << /Names [(subsection.7.14) 282 0 R (subsection.7.15) 286 0 R (subsection.7.16) 290 0 R (subsection.7.17) 294 0 R (subsection.7.18) 298 0 R (subsection.7.19) 302 0 R] /Limits [(subsection.7.14) (subsection.7.19)] >> endobj 1329 0 obj << /Names [(subsection.7.2) 234 0 R (subsection.7.20) 306 0 R (subsection.7.21) 310 0 R (subsection.7.22) 314 0 R (subsection.7.23) 318 0 R (subsection.7.24) 322 0 R] /Limits [(subsection.7.2) (subsection.7.24)] >> endobj 1330 0 obj << /Names [(subsection.7.25) 326 0 R (subsection.7.26) 330 0 R (subsection.7.27) 334 0 R (subsection.7.28) 338 0 R (subsection.7.29) 342 0 R (subsection.7.3) 238 0 R] /Limits [(subsection.7.25) (subsection.7.3)] >> endobj 1331 0 obj << /Names [(subsection.7.30) 346 0 R (subsection.7.31) 350 0 R (subsection.7.32) 354 0 R (subsection.7.33) 358 0 R (subsection.7.34) 362 0 R (subsection.7.35) 366 0 R] /Limits [(subsection.7.30) (subsection.7.35)] >> endobj 1332 0 obj << /Names [(subsection.7.36) 370 0 R (subsection.7.37) 374 0 R (subsection.7.4) 242 0 R (subsection.7.5) 246 0 R (subsection.7.6) 250 0 R (subsection.7.7) 254 0 R] /Limits [(subsection.7.36) (subsection.7.7)] >> endobj 1333 0 obj << /Names [(subsection.7.8) 258 0 R (subsection.7.9) 262 0 R (subsection.8.1) 382 0 R (subsection.9.1) 390 0 R (subsection.9.2) 394 0 R (subsection.9.3) 398 0 R] /Limits [(subsection.7.8) (subsection.9.3)] >> endobj 1334 0 obj << /Names [(subsection.9.4) 402 0 R] /Limits [(subsection.9.4) (subsection.9.4)] >> endobj 1335 0 obj << /Kids [1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R] /Limits [(Doc-Start) (section.9)] >> endobj 1336 0 obj << /Kids [1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R] /Limits [(subsection.1.1) (subsection.4.8)] >> endobj 1337 0 obj << /Kids [1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R] /Limits [(subsection.4.9) (subsection.7.24)] >> endobj 1338 0 obj << /Kids [1330 0 R 1331 0 R 1332 0 R 1333 0 R 1334 0 R] /Limits [(subsection.7.25) (subsection.9.4)] >> endobj 1339 0 obj << /Kids [1335 0 R 1336 0 R 1337 0 R 1338 0 R] /Limits [(Doc-Start) (subsection.9.4)] >> endobj 1340 0 obj << /Dests 1339 0 R >> endobj 1341 0 obj << /Type /Catalog /Pages 1310 0 R /Outlines 1311 0 R /Names 1340 0 R /PageMode/UseOutlines /OpenAction 429 0 R >> endobj 1342 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20150215005949+02'00') /ModDate (D:20150215005949+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 1343 0000000000 65535 f 0000000015 00000 n 0000048996 00000 n 0000311901 00000 n 0000000060 00000 n 0000000096 00000 n 0000049051 00000 n 0000311831 00000 n 0000000146 00000 n 0000000179 00000 n 0000049106 00000 n 0000311747 00000 n 0000000229 00000 n 0000000271 00000 n 0000049162 00000 n 0000311661 00000 n 0000000322 00000 n 0000000402 00000 n 0000049218 00000 n 0000311575 00000 n 0000000453 00000 n 0000000519 00000 n 0000053110 00000 n 0000311489 00000 n 0000000570 00000 n 0000000618 00000 n 0000053166 00000 n 0000311403 00000 n 0000000669 00000 n 0000000703 00000 n 0000053222 00000 n 0000311317 00000 n 0000000754 00000 n 0000000790 00000 n 0000053278 00000 n 0000311244 00000 n 0000000841 00000 n 0000000924 00000 n 0000053334 00000 n 0000311119 00000 n 0000000970 00000 n 0000001002 00000 n 0000053390 00000 n 0000311045 00000 n 0000001053 00000 n 0000001105 00000 n 0000057450 00000 n 0000310958 00000 n 0000001156 00000 n 0000001224 00000 n 0000057506 00000 n 0000310871 00000 n 0000001275 00000 n 0000001339 00000 n 0000057562 00000 n 0000310784 00000 n 0000001390 00000 n 0000001447 00000 n 0000057618 00000 n 0000310697 00000 n 0000001498 00000 n 0000001556 00000 n 0000057673 00000 n 0000310610 00000 n 0000001607 00000 n 0000001661 00000 n 0000061375 00000 n 0000310536 00000 n 0000001712 00000 n 0000001763 00000 n 0000061431 00000 n 0000310408 00000 n 0000001809 00000 n 0000001871 00000 n 0000061487 00000 n 0000310334 00000 n 0000001922 00000 n 0000001997 00000 n 0000061543 00000 n 0000310247 00000 n 0000002048 00000 n 0000002102 00000 n 0000064830 00000 n 0000310160 00000 n 0000002153 00000 n 0000002299 00000 n 0000064886 00000 n 0000310073 00000 n 0000002350 00000 n 0000002466 00000 n 0000064942 00000 n 0000309986 00000 n 0000002517 00000 n 0000002580 00000 n 0000064998 00000 n 0000309899 00000 n 0000002631 00000 n 0000002697 00000 n 0000065054 00000 n 0000309810 00000 n 0000002748 00000 n 0000002807 00000 n 0000065110 00000 n 0000309733 00000 n 0000002859 00000 n 0000002934 00000 n 0000069239 00000 n 0000309601 00000 n 0000002981 00000 n 0000003014 00000 n 0000069296 00000 n 0000309522 00000 n 0000003066 00000 n 0000003114 00000 n 0000069353 00000 n 0000309429 00000 n 0000003166 00000 n 0000003214 00000 n 0000069410 00000 n 0000309336 00000 n 0000003266 00000 n 0000003400 00000 n 0000069467 00000 n 0000309243 00000 n 0000003452 00000 n 0000003551 00000 n 0000069524 00000 n 0000309150 00000 n 0000003603 00000 n 0000003654 00000 n 0000073393 00000 n 0000309057 00000 n 0000003706 00000 n 0000003772 00000 n 0000073450 00000 n 0000308964 00000 n 0000003824 00000 n 0000003905 00000 n 0000073506 00000 n 0000308871 00000 n 0000003957 00000 n 0000004020 00000 n 0000073563 00000 n 0000308792 00000 n 0000004072 00000 n 0000004168 00000 n 0000078068 00000 n 0000308658 00000 n 0000004215 00000 n 0000004252 00000 n 0000078125 00000 n 0000308579 00000 n 0000004304 00000 n 0000004406 00000 n 0000078182 00000 n 0000308486 00000 n 0000004458 00000 n 0000004583 00000 n 0000078238 00000 n 0000308393 00000 n 0000004635 00000 n 0000004709 00000 n 0000078295 00000 n 0000308300 00000 n 0000004761 00000 n 0000004974 00000 n 0000081264 00000 n 0000308207 00000 n 0000005026 00000 n 0000005275 00000 n 0000081321 00000 n 0000308114 00000 n 0000005327 00000 n 0000005410 00000 n 0000081378 00000 n 0000308021 00000 n 0000005462 00000 n 0000005585 00000 n 0000084185 00000 n 0000307928 00000 n 0000005637 00000 n 0000005689 00000 n 0000084242 00000 n 0000307835 00000 n 0000005741 00000 n 0000005869 00000 n 0000084299 00000 n 0000307742 00000 n 0000005922 00000 n 0000005979 00000 n 0000084355 00000 n 0000307649 00000 n 0000006032 00000 n 0000006126 00000 n 0000084411 00000 n 0000307570 00000 n 0000006179 00000 n 0000006309 00000 n 0000084468 00000 n 0000307437 00000 n 0000006356 00000 n 0000006391 00000 n 0000084525 00000 n 0000307358 00000 n 0000006443 00000 n 0000006482 00000 n 0000087876 00000 n 0000307265 00000 n 0000006534 00000 n 0000006584 00000 n 0000087933 00000 n 0000307172 00000 n 0000006636 00000 n 0000006697 00000 n 0000087990 00000 n 0000307079 00000 n 0000006749 00000 n 0000006789 00000 n 0000088047 00000 n 0000306986 00000 n 0000006841 00000 n 0000006888 00000 n 0000088104 00000 n 0000306907 00000 n 0000006940 00000 n 0000006985 00000 n 0000088161 00000 n 0000306773 00000 n 0000007032 00000 n 0000007064 00000 n 0000088217 00000 n 0000306694 00000 n 0000007116 00000 n 0000007158 00000 n 0000090876 00000 n 0000306601 00000 n 0000007210 00000 n 0000007283 00000 n 0000090933 00000 n 0000306508 00000 n 0000007335 00000 n 0000007412 00000 n 0000090990 00000 n 0000306415 00000 n 0000007464 00000 n 0000007532 00000 n 0000091047 00000 n 0000306322 00000 n 0000007584 00000 n 0000007652 00000 n 0000091104 00000 n 0000306229 00000 n 0000007704 00000 n 0000007830 00000 n 0000094833 00000 n 0000306136 00000 n 0000007882 00000 n 0000007947 00000 n 0000094890 00000 n 0000306043 00000 n 0000007999 00000 n 0000008159 00000 n 0000094947 00000 n 0000305950 00000 n 0000008211 00000 n 0000008256 00000 n 0000095003 00000 n 0000305857 00000 n 0000008309 00000 n 0000008406 00000 n 0000095060 00000 n 0000305764 00000 n 0000008459 00000 n 0000008539 00000 n 0000095117 00000 n 0000305671 00000 n 0000008592 00000 n 0000008657 00000 n 0000095174 00000 n 0000305578 00000 n 0000008710 00000 n 0000008803 00000 n 0000098435 00000 n 0000305485 00000 n 0000008856 00000 n 0000008988 00000 n 0000098492 00000 n 0000305392 00000 n 0000009041 00000 n 0000009109 00000 n 0000098549 00000 n 0000305299 00000 n 0000009162 00000 n 0000009252 00000 n 0000098605 00000 n 0000305206 00000 n 0000009305 00000 n 0000009444 00000 n 0000098662 00000 n 0000305113 00000 n 0000009497 00000 n 0000009579 00000 n 0000098719 00000 n 0000305020 00000 n 0000009632 00000 n 0000009693 00000 n 0000102645 00000 n 0000304927 00000 n 0000009746 00000 n 0000009829 00000 n 0000102702 00000 n 0000304834 00000 n 0000009882 00000 n 0000009948 00000 n 0000102759 00000 n 0000304741 00000 n 0000010001 00000 n 0000010064 00000 n 0000102816 00000 n 0000304648 00000 n 0000010117 00000 n 0000010210 00000 n 0000102873 00000 n 0000304555 00000 n 0000010263 00000 n 0000010344 00000 n 0000106157 00000 n 0000304462 00000 n 0000010397 00000 n 0000010449 00000 n 0000106213 00000 n 0000304369 00000 n 0000010502 00000 n 0000010636 00000 n 0000106270 00000 n 0000304276 00000 n 0000010689 00000 n 0000010831 00000 n 0000106327 00000 n 0000304183 00000 n 0000010884 00000 n 0000010961 00000 n 0000106383 00000 n 0000304090 00000 n 0000011014 00000 n 0000011089 00000 n 0000109147 00000 n 0000303997 00000 n 0000011142 00000 n 0000011281 00000 n 0000109204 00000 n 0000303904 00000 n 0000011334 00000 n 0000011407 00000 n 0000109261 00000 n 0000303811 00000 n 0000011460 00000 n 0000011619 00000 n 0000109318 00000 n 0000303718 00000 n 0000011672 00000 n 0000011826 00000 n 0000109375 00000 n 0000303625 00000 n 0000011879 00000 n 0000011976 00000 n 0000109432 00000 n 0000303532 00000 n 0000012029 00000 n 0000012142 00000 n 0000109489 00000 n 0000303439 00000 n 0000012195 00000 n 0000012256 00000 n 0000111509 00000 n 0000303360 00000 n 0000012309 00000 n 0000012499 00000 n 0000111566 00000 n 0000303227 00000 n 0000012546 00000 n 0000012578 00000 n 0000111623 00000 n 0000303162 00000 n 0000012630 00000 n 0000012703 00000 n 0000111680 00000 n 0000303029 00000 n 0000012750 00000 n 0000012797 00000 n 0000111737 00000 n 0000302950 00000 n 0000012849 00000 n 0000012923 00000 n 0000111794 00000 n 0000302857 00000 n 0000012975 00000 n 0000013046 00000 n 0000111851 00000 n 0000302764 00000 n 0000013098 00000 n 0000013167 00000 n 0000114209 00000 n 0000302685 00000 n 0000013219 00000 n 0000013371 00000 n 0000114266 00000 n 0000302566 00000 n 0000013419 00000 n 0000013453 00000 n 0000114323 00000 n 0000302487 00000 n 0000013506 00000 n 0000013560 00000 n 0000114380 00000 n 0000302394 00000 n 0000013613 00000 n 0000013659 00000 n 0000114437 00000 n 0000302301 00000 n 0000013712 00000 n 0000013775 00000 n 0000114494 00000 n 0000302208 00000 n 0000013828 00000 n 0000013886 00000 n 0000115813 00000 n 0000302129 00000 n 0000013939 00000 n 0000014034 00000 n 0000015939 00000 n 0000016263 00000 n 0000016476 00000 n 0000016627 00000 n 0000016783 00000 n 0000016938 00000 n 0000017094 00000 n 0000017250 00000 n 0000017406 00000 n 0000017561 00000 n 0000017717 00000 n 0000017873 00000 n 0000018023 00000 n 0000018177 00000 n 0000018332 00000 n 0000018488 00000 n 0000018644 00000 n 0000018800 00000 n 0000018956 00000 n 0000019112 00000 n 0000019261 00000 n 0000019415 00000 n 0000019571 00000 n 0000019883 00000 n 0000020039 00000 n 0000023357 00000 n 0000020360 00000 n 0000014084 00000 n 0000020193 00000 n 0000020246 00000 n 0000277275 00000 n 0000268251 00000 n 0000241933 00000 n 0000231120 00000 n 0000229037 00000 n 0000224112 00000 n 0000020303 00000 n 0000201041 00000 n 0000185920 00000 n 0000301348 00000 n 0000019727 00000 n 0000301493 00000 n 0000023513 00000 n 0000023669 00000 n 0000023825 00000 n 0000023976 00000 n 0000024132 00000 n 0000024288 00000 n 0000024600 00000 n 0000024756 00000 n 0000024912 00000 n 0000025068 00000 n 0000025224 00000 n 0000025380 00000 n 0000025535 00000 n 0000025685 00000 n 0000025841 00000 n 0000026153 00000 n 0000026309 00000 n 0000026776 00000 n 0000027244 00000 n 0000027400 00000 n 0000027712 00000 n 0000027868 00000 n 0000028180 00000 n 0000028336 00000 n 0000028493 00000 n 0000031498 00000 n 0000028857 00000 n 0000022953 00000 n 0000020536 00000 n 0000028804 00000 n 0000024444 00000 n 0000025997 00000 n 0000026464 00000 n 0000026620 00000 n 0000301060 00000 n 0000026932 00000 n 0000027088 00000 n 0000027556 00000 n 0000028024 00000 n 0000028649 00000 n 0000031649 00000 n 0000031805 00000 n 0000031961 00000 n 0000032117 00000 n 0000032272 00000 n 0000032428 00000 n 0000032584 00000 n 0000032734 00000 n 0000032889 00000 n 0000033045 00000 n 0000033201 00000 n 0000033357 00000 n 0000033512 00000 n 0000033824 00000 n 0000033979 00000 n 0000034291 00000 n 0000034447 00000 n 0000034603 00000 n 0000034759 00000 n 0000034916 00000 n 0000035073 00000 n 0000035386 00000 n 0000035542 00000 n 0000035699 00000 n 0000036012 00000 n 0000036169 00000 n 0000036326 00000 n 0000036483 00000 n 0000036640 00000 n 0000036796 00000 n 0000039833 00000 n 0000037004 00000 n 0000031094 00000 n 0000028968 00000 n 0000036951 00000 n 0000033668 00000 n 0000034135 00000 n 0000035230 00000 n 0000035856 00000 n 0000039989 00000 n 0000040146 00000 n 0000040460 00000 n 0000040774 00000 n 0000040931 00000 n 0000041088 00000 n 0000041402 00000 n 0000041558 00000 n 0000041872 00000 n 0000042185 00000 n 0000042342 00000 n 0000042499 00000 n 0000042656 00000 n 0000042967 00000 n 0000043114 00000 n 0000043270 00000 n 0000043421 00000 n 0000043577 00000 n 0000043733 00000 n 0000043889 00000 n 0000044200 00000 n 0000044352 00000 n 0000044509 00000 n 0000044666 00000 n 0000044823 00000 n 0000044980 00000 n 0000045187 00000 n 0000039437 00000 n 0000037115 00000 n 0000045134 00000 n 0000040303 00000 n 0000040617 00000 n 0000041245 00000 n 0000041715 00000 n 0000170081 00000 n 0000042029 00000 n 0000042813 00000 n 0000044045 00000 n 0000048017 00000 n 0000048203 00000 n 0000048598 00000 n 0000048786 00000 n 0000049274 00000 n 0000047853 00000 n 0000045285 00000 n 0000048943 00000 n 0000155551 00000 n 0000048401 00000 n 0000051708 00000 n 0000051874 00000 n 0000052045 00000 n 0000052239 00000 n 0000052417 00000 n 0000052590 00000 n 0000052747 00000 n 0000052902 00000 n 0000056097 00000 n 0000056254 00000 n 0000053446 00000 n 0000051520 00000 n 0000049424 00000 n 0000053057 00000 n 0000056411 00000 n 0000056565 00000 n 0000056722 00000 n 0000056879 00000 n 0000057036 00000 n 0000057193 00000 n 0000060461 00000 n 0000057729 00000 n 0000055909 00000 n 0000053596 00000 n 0000057397 00000 n 0000301611 00000 n 0000060655 00000 n 0000060810 00000 n 0000060967 00000 n 0000061166 00000 n 0000061598 00000 n 0000060297 00000 n 0000057866 00000 n 0000061322 00000 n 0000064260 00000 n 0000064417 00000 n 0000064623 00000 n 0000068185 00000 n 0000068560 00000 n 0000065167 00000 n 0000064112 00000 n 0000061735 00000 n 0000064777 00000 n 0000068715 00000 n 0000068872 00000 n 0000069029 00000 n 0000072446 00000 n 0000069581 00000 n 0000068013 00000 n 0000065291 00000 n 0000069186 00000 n 0000068373 00000 n 0000072787 00000 n 0000072954 00000 n 0000073152 00000 n 0000076760 00000 n 0000076918 00000 n 0000073619 00000 n 0000072282 00000 n 0000069744 00000 n 0000073340 00000 n 0000072617 00000 n 0000077075 00000 n 0000077232 00000 n 0000077389 00000 n 0000077546 00000 n 0000077702 00000 n 0000077858 00000 n 0000078352 00000 n 0000076572 00000 n 0000073756 00000 n 0000078015 00000 n 0000301204 00000 n 0000081056 00000 n 0000081435 00000 n 0000080924 00000 n 0000078489 00000 n 0000081211 00000 n 0000130293 00000 n 0000301729 00000 n 0000083746 00000 n 0000083939 00000 n 0000084581 00000 n 0000083606 00000 n 0000081559 00000 n 0000084132 00000 n 0000087166 00000 n 0000087323 00000 n 0000087480 00000 n 0000087666 00000 n 0000088274 00000 n 0000087010 00000 n 0000084731 00000 n 0000087823 00000 n 0000090511 00000 n 0000090667 00000 n 0000093998 00000 n 0000091161 00000 n 0000090371 00000 n 0000088411 00000 n 0000090823 00000 n 0000094155 00000 n 0000094312 00000 n 0000094468 00000 n 0000094624 00000 n 0000098069 00000 n 0000095231 00000 n 0000093834 00000 n 0000091298 00000 n 0000094780 00000 n 0000098225 00000 n 0000098776 00000 n 0000097929 00000 n 0000095355 00000 n 0000098382 00000 n 0000101709 00000 n 0000101865 00000 n 0000102227 00000 n 0000102435 00000 n 0000102930 00000 n 0000101545 00000 n 0000098913 00000 n 0000102592 00000 n 0000102047 00000 n 0000301847 00000 n 0000105607 00000 n 0000105763 00000 n 0000105920 00000 n 0000106440 00000 n 0000105459 00000 n 0000103067 00000 n 0000106104 00000 n 0000109546 00000 n 0000108982 00000 n 0000106577 00000 n 0000109094 00000 n 0000117574 00000 n 0000111299 00000 n 0000111908 00000 n 0000111167 00000 n 0000109683 00000 n 0000111456 00000 n 0000114001 00000 n 0000115387 00000 n 0000114551 00000 n 0000113869 00000 n 0000112032 00000 n 0000114156 00000 n 0000115870 00000 n 0000115247 00000 n 0000114675 00000 n 0000115760 00000 n 0000115573 00000 n 0000115994 00000 n 0000116179 00000 n 0000116511 00000 n 0000116921 00000 n 0000117278 00000 n 0000117824 00000 n 0000118004 00000 n 0000118145 00000 n 0000118236 00000 n 0000118495 00000 n 0000118751 00000 n 0000119002 00000 n 0000119252 00000 n 0000119478 00000 n 0000119661 00000 n 0000119856 00000 n 0000120096 00000 n 0000120274 00000 n 0000120462 00000 n 0000120646 00000 n 0000120840 00000 n 0000121072 00000 n 0000121328 00000 n 0000121590 00000 n 0000121865 00000 n 0000122119 00000 n 0000122346 00000 n 0000122536 00000 n 0000122747 00000 n 0000123001 00000 n 0000123268 00000 n 0000123538 00000 n 0000123826 00000 n 0000124036 00000 n 0000124299 00000 n 0000124589 00000 n 0000124851 00000 n 0000125118 00000 n 0000125370 00000 n 0000125642 00000 n 0000125901 00000 n 0000126132 00000 n 0000126448 00000 n 0000126686 00000 n 0000126901 00000 n 0000127184 00000 n 0000127381 00000 n 0000127622 00000 n 0000127851 00000 n 0000128100 00000 n 0000128376 00000 n 0000128612 00000 n 0000128871 00000 n 0000129094 00000 n 0000129312 00000 n 0000129563 00000 n 0000129812 00000 n 0000130078 00000 n 0000130544 00000 n 0000130940 00000 n 0000131458 00000 n 0000132150 00000 n 0000132187 00000 n 0000132501 00000 n 0000132806 00000 n 0000133019 00000 n 0000133267 00000 n 0000133549 00000 n 0000133779 00000 n 0000133965 00000 n 0000134219 00000 n 0000134414 00000 n 0000134657 00000 n 0000134887 00000 n 0000135186 00000 n 0000135363 00000 n 0000135660 00000 n 0000135890 00000 n 0000136203 00000 n 0000136471 00000 n 0000136755 00000 n 0000137219 00000 n 0000137525 00000 n 0000137897 00000 n 0000138213 00000 n 0000138600 00000 n 0000138910 00000 n 0000139199 00000 n 0000139453 00000 n 0000139834 00000 n 0000140036 00000 n 0000140221 00000 n 0000140474 00000 n 0000140845 00000 n 0000141075 00000 n 0000141434 00000 n 0000141792 00000 n 0000142159 00000 n 0000142425 00000 n 0000142810 00000 n 0000143053 00000 n 0000143342 00000 n 0000143725 00000 n 0000144184 00000 n 0000144587 00000 n 0000144919 00000 n 0000145232 00000 n 0000145542 00000 n 0000145837 00000 n 0000146139 00000 n 0000146446 00000 n 0000146694 00000 n 0000147056 00000 n 0000147304 00000 n 0000147516 00000 n 0000147783 00000 n 0000148084 00000 n 0000148272 00000 n 0000148562 00000 n 0000148805 00000 n 0000149099 00000 n 0000149407 00000 n 0000149725 00000 n 0000149967 00000 n 0000150271 00000 n 0000150525 00000 n 0000150772 00000 n 0000151069 00000 n 0000151426 00000 n 0000151741 00000 n 0000152089 00000 n 0000152378 00000 n 0000152670 00000 n 0000152877 00000 n 0000153224 00000 n 0000153563 00000 n 0000153860 00000 n 0000154194 00000 n 0000154539 00000 n 0000154834 00000 n 0000155205 00000 n 0000155803 00000 n 0000156354 00000 n 0000156862 00000 n 0000157935 00000 n 0000158112 00000 n 0000158391 00000 n 0000158828 00000 n 0000159128 00000 n 0000159484 00000 n 0000159835 00000 n 0000160124 00000 n 0000160360 00000 n 0000160732 00000 n 0000161021 00000 n 0000161316 00000 n 0000161650 00000 n 0000162006 00000 n 0000162299 00000 n 0000162593 00000 n 0000162860 00000 n 0000163178 00000 n 0000163452 00000 n 0000163749 00000 n 0000164066 00000 n 0000164376 00000 n 0000164644 00000 n 0000164973 00000 n 0000165226 00000 n 0000165573 00000 n 0000165879 00000 n 0000166150 00000 n 0000166469 00000 n 0000166732 00000 n 0000167013 00000 n 0000167272 00000 n 0000167569 00000 n 0000167855 00000 n 0000168174 00000 n 0000168498 00000 n 0000168755 00000 n 0000169113 00000 n 0000169441 00000 n 0000169764 00000 n 0000170332 00000 n 0000170690 00000 n 0000171156 00000 n 0000171718 00000 n 0000171753 00000 n 0000172306 00000 n 0000172489 00000 n 0000172681 00000 n 0000172932 00000 n 0000173221 00000 n 0000173565 00000 n 0000173830 00000 n 0000174070 00000 n 0000174413 00000 n 0000174616 00000 n 0000174798 00000 n 0000175017 00000 n 0000175351 00000 n 0000175693 00000 n 0000176023 00000 n 0000176269 00000 n 0000176667 00000 n 0000176981 00000 n 0000177325 00000 n 0000177558 00000 n 0000177835 00000 n 0000178115 00000 n 0000178387 00000 n 0000178652 00000 n 0000178929 00000 n 0000179201 00000 n 0000179437 00000 n 0000179782 00000 n 0000180020 00000 n 0000180223 00000 n 0000180409 00000 n 0000180678 00000 n 0000180910 00000 n 0000181167 00000 n 0000181440 00000 n 0000181665 00000 n 0000181933 00000 n 0000182164 00000 n 0000182394 00000 n 0000182674 00000 n 0000182991 00000 n 0000183260 00000 n 0000183463 00000 n 0000183775 00000 n 0000184093 00000 n 0000184362 00000 n 0000184672 00000 n 0000184988 00000 n 0000185269 00000 n 0000185602 00000 n 0000186170 00000 n 0000186573 00000 n 0000186963 00000 n 0000187653 00000 n 0000187850 00000 n 0000188198 00000 n 0000188617 00000 n 0000188890 00000 n 0000189320 00000 n 0000189524 00000 n 0000189711 00000 n 0000189950 00000 n 0000190343 00000 n 0000190634 00000 n 0000191138 00000 n 0000191510 00000 n 0000191825 00000 n 0000192177 00000 n 0000192516 00000 n 0000192841 00000 n 0000193176 00000 n 0000193502 00000 n 0000193759 00000 n 0000194165 00000 n 0000194433 00000 n 0000194653 00000 n 0000194842 00000 n 0000195156 00000 n 0000195422 00000 n 0000195735 00000 n 0000196072 00000 n 0000196323 00000 n 0000196664 00000 n 0000196932 00000 n 0000197201 00000 n 0000197535 00000 n 0000197846 00000 n 0000198065 00000 n 0000198448 00000 n 0000198835 00000 n 0000199142 00000 n 0000199509 00000 n 0000199905 00000 n 0000200226 00000 n 0000200647 00000 n 0000201295 00000 n 0000201629 00000 n 0000201987 00000 n 0000202609 00000 n 0000202823 00000 n 0000203097 00000 n 0000203366 00000 n 0000203615 00000 n 0000203859 00000 n 0000204055 00000 n 0000204253 00000 n 0000204439 00000 n 0000204669 00000 n 0000204922 00000 n 0000205120 00000 n 0000205338 00000 n 0000205519 00000 n 0000205758 00000 n 0000205947 00000 n 0000206139 00000 n 0000206366 00000 n 0000206551 00000 n 0000206736 00000 n 0000206935 00000 n 0000207268 00000 n 0000207597 00000 n 0000207918 00000 n 0000208191 00000 n 0000208457 00000 n 0000208729 00000 n 0000209029 00000 n 0000209294 00000 n 0000209523 00000 n 0000209750 00000 n 0000210059 00000 n 0000210261 00000 n 0000210451 00000 n 0000210689 00000 n 0000210989 00000 n 0000211194 00000 n 0000211453 00000 n 0000211729 00000 n 0000211981 00000 n 0000212237 00000 n 0000212516 00000 n 0000212834 00000 n 0000213040 00000 n 0000213289 00000 n 0000213560 00000 n 0000213839 00000 n 0000214147 00000 n 0000214421 00000 n 0000214694 00000 n 0000214963 00000 n 0000215227 00000 n 0000215502 00000 n 0000215785 00000 n 0000216021 00000 n 0000216356 00000 n 0000216599 00000 n 0000216813 00000 n 0000217064 00000 n 0000217344 00000 n 0000217541 00000 n 0000217794 00000 n 0000218031 00000 n 0000218296 00000 n 0000218578 00000 n 0000218871 00000 n 0000219111 00000 n 0000219378 00000 n 0000219615 00000 n 0000219845 00000 n 0000220113 00000 n 0000220369 00000 n 0000220653 00000 n 0000220972 00000 n 0000221230 00000 n 0000221515 00000 n 0000221738 00000 n 0000222042 00000 n 0000222350 00000 n 0000222613 00000 n 0000222902 00000 n 0000223225 00000 n 0000223490 00000 n 0000223785 00000 n 0000224366 00000 n 0000224935 00000 n 0000225481 00000 n 0000226705 00000 n 0000227022 00000 n 0000227251 00000 n 0000227583 00000 n 0000227961 00000 n 0000228240 00000 n 0000228519 00000 n 0000228797 00000 n 0000229290 00000 n 0000229442 00000 n 0000229622 00000 n 0000229760 00000 n 0000230079 00000 n 0000230358 00000 n 0000230622 00000 n 0000230901 00000 n 0000231372 00000 n 0000231500 00000 n 0000231640 00000 n 0000231736 00000 n 0000232011 00000 n 0000232286 00000 n 0000232469 00000 n 0000232636 00000 n 0000232811 00000 n 0000233024 00000 n 0000233350 00000 n 0000233642 00000 n 0000233920 00000 n 0000234109 00000 n 0000234423 00000 n 0000234593 00000 n 0000234956 00000 n 0000235285 00000 n 0000235471 00000 n 0000235854 00000 n 0000236165 00000 n 0000236430 00000 n 0000236692 00000 n 0000236953 00000 n 0000237222 00000 n 0000237497 00000 n 0000237712 00000 n 0000238028 00000 n 0000238251 00000 n 0000238428 00000 n 0000238706 00000 n 0000238877 00000 n 0000239124 00000 n 0000239343 00000 n 0000239615 00000 n 0000239886 00000 n 0000240157 00000 n 0000240372 00000 n 0000240642 00000 n 0000240857 00000 n 0000241066 00000 n 0000241330 00000 n 0000241632 00000 n 0000242186 00000 n 0000242546 00000 n 0000243011 00000 n 0000243614 00000 n 0000243885 00000 n 0000244155 00000 n 0000244341 00000 n 0000244525 00000 n 0000244710 00000 n 0000244901 00000 n 0000245113 00000 n 0000245359 00000 n 0000245546 00000 n 0000245759 00000 n 0000245935 00000 n 0000246170 00000 n 0000246353 00000 n 0000246575 00000 n 0000246764 00000 n 0000246977 00000 n 0000247221 00000 n 0000247397 00000 n 0000247644 00000 n 0000247816 00000 n 0000248020 00000 n 0000248302 00000 n 0000248647 00000 n 0000249080 00000 n 0000249334 00000 n 0000249591 00000 n 0000249826 00000 n 0000250116 00000 n 0000250528 00000 n 0000250795 00000 n 0000251112 00000 n 0000251403 00000 n 0000251745 00000 n 0000252021 00000 n 0000252284 00000 n 0000252532 00000 n 0000252868 00000 n 0000253075 00000 n 0000253263 00000 n 0000253510 00000 n 0000253835 00000 n 0000254057 00000 n 0000254383 00000 n 0000254708 00000 n 0000255029 00000 n 0000255278 00000 n 0000255669 00000 n 0000255972 00000 n 0000256310 00000 n 0000256542 00000 n 0000256815 00000 n 0000257137 00000 n 0000257526 00000 n 0000257887 00000 n 0000258200 00000 n 0000258514 00000 n 0000258800 00000 n 0000259080 00000 n 0000259344 00000 n 0000259624 00000 n 0000259895 00000 n 0000260118 00000 n 0000260437 00000 n 0000260674 00000 n 0000260878 00000 n 0000261110 00000 n 0000261388 00000 n 0000261578 00000 n 0000261837 00000 n 0000262066 00000 n 0000262336 00000 n 0000262614 00000 n 0000262898 00000 n 0000263120 00000 n 0000263397 00000 n 0000263630 00000 n 0000263865 00000 n 0000264130 00000 n 0000264445 00000 n 0000264737 00000 n 0000265038 00000 n 0000265303 00000 n 0000265573 00000 n 0000265776 00000 n 0000266086 00000 n 0000266403 00000 n 0000266673 00000 n 0000266981 00000 n 0000267306 00000 n 0000267585 00000 n 0000267932 00000 n 0000268505 00000 n 0000269102 00000 n 0000269663 00000 n 0000270998 00000 n 0000271361 00000 n 0000271720 00000 n 0000271889 00000 n 0000272063 00000 n 0000272531 00000 n 0000272725 00000 n 0000273182 00000 n 0000273779 00000 n 0000274149 00000 n 0000274511 00000 n 0000274900 00000 n 0000275157 00000 n 0000275544 00000 n 0000275800 00000 n 0000276033 00000 n 0000276407 00000 n 0000276886 00000 n 0000277530 00000 n 0000277774 00000 n 0000278068 00000 n 0000278348 00000 n 0000285491 00000 n 0000285726 00000 n 0000292869 00000 n 0000293104 00000 n 0000300796 00000 n 0000301965 00000 n 0000302052 00000 n 0000312010 00000 n 0000312184 00000 n 0000312355 00000 n 0000312524 00000 n 0000312687 00000 n 0000312866 00000 n 0000313053 00000 n 0000313273 00000 n 0000313503 00000 n 0000313727 00000 n 0000313948 00000 n 0000314172 00000 n 0000314399 00000 n 0000314629 00000 n 0000314856 00000 n 0000315083 00000 n 0000315315 00000 n 0000315550 00000 n 0000315783 00000 n 0000316016 00000 n 0000316251 00000 n 0000316481 00000 n 0000316708 00000 n 0000316810 00000 n 0000316930 00000 n 0000317060 00000 n 0000317191 00000 n 0000317313 00000 n 0000317420 00000 n 0000317460 00000 n 0000317592 00000 n trailer << /Size 1343 /Root 1341 0 R /Info 1342 0 R /ID [ ] >> startxref 317919 %%EOF grace-5.1.25/doc/10c.dat0000644000076500001440000000652306671062261014270 0ustar fnevgenyusers@type xy -9.42478 -0.0815865 -9.23438 -0.0286462 -9.04398 0.0320169 -8.85358 0.0995409 -8.66318 0.172865 -8.47278 0.250752 -8.28238 0.331815 -8.09198 0.41455 -7.90158 0.497369 -7.71118 0.578642 -7.52078 0.656734 -7.33038 0.730045 -7.13998 0.797052 -6.94958 0.856347 -6.75918 0.90667 -6.56878 0.946946 -6.37839 0.976308 -6.18799 0.994121 -5.99759 0.999999 -5.80719 0.993815 -5.61679 0.975704 -5.42639 0.946057 -5.23599 0.905514 -5.04559 0.854949 -4.85519 0.795443 -4.66479 0.728258 -4.47439 0.654806 -4.28399 0.576614 -4.09359 0.495281 -3.90319 0.412444 -3.71279 0.329732 -3.52239 0.248732 -3.33199 0.170944 -3.14159 0.0977522 -2.95119 0.0303898 -2.76079 -0.0300873 -2.57039 -0.0828223 -2.37999 -0.127174 -2.18959 -0.162727 -1.9992 -0.189294 -1.8088 -0.206917 -1.6184 -0.215854 -1.428 -0.216571 -1.2376 -0.209715 -1.0472 -0.196099 -0.856798 -0.176666 -0.666398 -0.152462 -0.475999 -0.124607 -0.285599 -0.0942546 -0.0951998 -0.0625627 0.0951998 -0.0306602 0.285599 0.000384056 0.475999 0.0295894 0.666398 0.0560876 0.856798 0.0791434 1.0472 0.0981701 1.2376 0.112741 1.428 0.122595 1.6184 0.127636 1.8088 0.12793 1.9992 0.123697 2.18959 0.115294 2.37999 0.1032 2.57039 0.0879967 2.76079 0.0703429 2.95119 0.0509518 3.14159 0.0305653 3.33199 0.0099285 3.52239 -0.0102347 3.71279 -0.0292447 3.90319 -0.0464871 4.09359 -0.0614305 4.28399 -0.0736415 4.47439 -0.0827953 4.66479 -0.0886832 4.85519 -0.0912156 5.04559 -0.0904207 5.23599 -0.0864401 5.42639 -0.07952 5.61679 -0.0699998 5.80719 -0.0582975 5.99759 -0.0448931 6.18799 -0.0303102 6.37839 -0.0150973 6.56878 0.000192065 6.75918 0.0150183 6.94958 0.0288737 7.13998 0.0412991 7.33038 0.0518983 7.52078 0.0603496 7.71118 0.0664153 7.90158 0.0699473 8.09198 0.0708899 8.28238 0.0692794 8.47278 0.0652403 8.66318 0.0589787 8.85358 0.0507734 9.04398 0.0409639 9.23438 0.0299375 9.42478 0.0181147 & grace-5.1.25/doc/Tutorial.sgml0000644000076500001440000012204007314216714015672 0ustar fnevgenyusers
Grace Tutorials Edward Vigmond evigmon@tulane.edu for Grace-5.1.4 Introduction

These tutorials assumes that you are a new user to Grace but are somewhat familiar with a windowing system. They are designed to show you some of the basic operation of Grace as well as a few of its less intuitive features. Please feel free to go beyond the bounds of the actions described herein and explore the possibilities of using Grace. After all, you will be the one who benefits.

Purpose

The purpose of these tutorials are to give brief examples to show you the basics of how to do something. Essentials and some of the more esoteric features of Grace will be demonstrated to give the user an idea of the capabilities of this program. It is not possible to show everything that Grace is capable of doing. That knowledge only comes with use and experimentation. I recommend that you do the tutorial and then by playing around with things, you will begin to understand them. Finally, when you get stuck, read the user guide to help you.

Nomenclature

In referring to what item to select, the tutorial will use something of the form snaf:/foo/bar/bell which means that on the snaf popup, select from the foo menu the submenu bar and from the bar menu, the entry bell. The popup main is the large one with the graph that pops up when you run xmgrace. If there is a space in the menu item, it will be replaced by an underscore. So , if the menu item was actually "Bell jar" instead of bell in the last example, it would be snaf:/foo/bar/Bell_jar.

Things that are to be typed in will be presented in a typewriter font, eg, type y = 3*sin(x).

Some of examples require you to input a data file or graph. In such instances, there should be a file in the tutorial directory named data.N or N.agr where N is the tutorial number. For example, when doing tutorial 7.1.3, you should look for a file 7.1.3.agr. It is assumed that each major tutorial section starts with a clean graph.

Computer System

Some of the following examples require that system commands be run. The commands may be different on your machine or require a slightly different syntax. In this tutorial, an attempt will be made to use the most commonly available UNIX commands. This tutorial was prepared on a Linux machine with kernel 2.0.32.

Generalities

A couple of points should be made about the GUI before we begin to make life easier.

It is often possible to select more than one item from a list at a time (some lists may prevent it when it makes no sense.). Clicking on a list entry without any keyboard modifier pressed will deselect all other entries and select only that one. Depressing shift while clicking an entry selects all entries from a previously selected entry to the currently selected one. Finally, depressing control allows one to individually toggle the selection of an entry. There are often two buttons on a pop up: Apply and Accept. Changes are not registered until either of these buttons is pressed. The difference between them is that Accept also closes the window.

Disclaimer

Even though I do my best to keep this up to date with the latest release, I cannot guarantee it. Think of this a perpetual work in progress. Therefore, if something is wrong, you can notify me and I'll fix it but keep in mind that I am doing it in my spare time for no money.

Making a Simple Graph

The object of this tutorial is to do the most basic function of Grace: read in some data into a graph and then label the graph. Along the way, a few of the basic Grace commands and widgets will be introduced.

Reading the data from a file

Start by bringing up the set reading widget Main:Data/Import/ASCII. Select the file 2.1.dat (both double clicking and hitting return work). You should see a black curve drawn on a graph.

Now we would like to add some more sets to the graph, but this time the data file will be in a slightly different format. Looking at the file "2.1.dat" (with the program of your choice), you can see that its several columns of numbers. One way to interpret this file is the first column gives the x-values and the rest of the columns are y-values. From Grace, again open the "Read Sets" widget. This time, check the "NXY" button. Now select the file "2.1.dat". At this point you will have several differently coloured curves.

You should now have 2 copies of the first set since you've read the file twice. It would be nice to eliminate one copy. This is most easily accomplished by bringing up a popup which lists all the sets. Selecting Main:Edit/Data_sets...bring up the Data set props popup. It lists all the sets and for the selected set, its type and a few statistics. To eliminate a set, select it and then press the right mouse button. A menu should appear from which you can select kill. You'll note that there is a kill and kill data. The former totally eliminates everything associated with a set while the latter eliminates the data but keeps the settings for it so that if new data is read into the set, it will have the same properties like colouring and line width, etc. Kill set 0 for now.

Set appearance

We would now like style the sets. Practically all aspects of the curves are configurable including colour, line thickness, symbols, drop lines, fills, etc. These operations are available under the "Set appearance" widget which is invoked by selecting Main:Plot/Set appearance... or by double clicking near the target set within the graph frame.

When the widget comes up, there will be a list of the sets with their number (eg. G0.S1 refers to set 1 in graph 0). Later operations will require you to know the number. Like the data sets pop up, clicking on mouse button 3 in the set list will bring up the menu of set operations.

Colouring all sets differently

The simplest way to colour all sets differently is from Set_Appearance:Data/All colors. First select the sets which you wish to recolour and then select Set_Appearance:Data/All colors. Do this now to your graph.

Customizing each set

When a set in the list is highlighted, the widgets change to reflect the settings. Practically all aspects are configurable. Experiment by changing the line colours and widths, placing a symbol at each data point, not connecting data points and fill the space between the x-axis and the curve. Don't forget to try out what is available under the other tabs besides Main. To see the effect of a change, you have to hit the "Apply" button. N.B.: Things are drawn in numerical order so if there is overlap, the highest numbered item will be on top. This applies to graphs and sets within each graph.

Labelling the axes using the font tool

Aspects of the axes are controlled by the axes popup which is called from Main:Plot/Axis properties or by double clicking the graph frame. All aspects of the axes can be changed like the title, the font, colour, whether or not to draw grid lines, or user defined tick marks and labels. There are many settings and the best thing to do is to experiment to see what each setting does.

For now, let's start by labelling the axes. Suppose these curves represent the number of tasks a processor runs as the function of the number of users. To make it more interesting, assume we are doing this in Quebec. That means we want to plot "Nombre de tâches vs. nombre d'usagers". Note the importance of having the accent over the a in tâches or we would end up plotting the number of stains which is entirely another case. Bring up the Axes pop up, select the Y axis, and click in the space to enter the label string of the axis label. Start typing Nombre de t. At this point we need to enter a accented letter, so we bring up the font tool by pressing Control-E. You will now see what we have typed in the Cstring widget. Move the cursor to where you want to place the accented letter and click on the letter. It should now appear in the string. You can either finish the string here or hit accept and keep editing. Label the x axis as well. This font tool is available wherever text needs to be entered.

All the attributes regarding the axis labels like size, colour, font, position are changeable.

Graph titles

Our next exercise will be to title the graph so other. Operation pertaining to this are found in the "Graph appearance" widget which we open by selecting Main:Plot/Graph appearance or by double clicking just above the graph frame.

We can now fill in the title of the graph and by clicking on the "Titles" tab, the font and size and colour can be chosen. The Viewport box under the "Main" tab defines the 4 corners of the graph frame. You can type them in or use the mouse to move them by first double clicking on them.

Other things which can be controlled in this widget are the frame drawn around the graph, whether or not the graph background is coloured and the legends. Legends will be dealt with a little later.

Legends

Since we have several lines in our graph, it makes sense that we label them with a legend so that other people can figure out what they mean. The first thing to do is to give each set a label. This is done by entering a legend string for each set in the Set appearance popup. Now, from the Main form in the Graph appearance popup, click on "Display legend" to see the legend box. The location and appearance of the box is controlled by clicking on the "Leg. box" tab. The appearance and spacing of the legend entries is controlled by the "Legends" tab. For simplicity, label the sets alphabetically and then play with the appearance, etc. to get something you like.

Specifying the placement of the graph by entering the coordinates can be painful, especially the fine tuning. To alleviate this problem, a graphical method is also available, although not readily apparent. After a legend appears, it may be dragged to a new location. To do this, press Ctrl-L with your mouse on the main canvas. You should see the arrow cursor turn into a hand. If this doesn't work, double click on the main canvas (to get its attention) and then press Ctrl-L. Click on the legend and drag it. To cancel the legend drag mode (as with all other modes), click on mouse button 3.

A challenge

I got bored so I took the data files and produced my own, albeit ugly, graph. See if you can copy

Block Data

A block of data is a table of number which are interpreted as columns of numbers. How sets are created from the columns depends on the information you want to extract from the file.

We first need to read in a block of data. We do this from Main:Data/Import/ASCII. Select the file "3.dat" and Load as "Block data". If the read was successful, a window should pop up asking you to create a set from the block data. At the top it will list how many columns of data were read.

First we choose the type of set we would like. For now we'll stick with xy.

Next we choose which column of data contains the x-ordinate. If there is no column, we can select "index" which will use the index into the column as the x ordinate starting from one.

The values Y1 through Y4 are used for selecting error bars as may be needed by other set types.

The last thing to specify is the graph into which to load the set if we have more than 1 set.

Finally, hitting accept will create the set.

If you close this window, it can reopened by bringing up a set list (eg. Main:Edit/Data_sets) and then selecting Create_new/From_block_data from the menu brought up by right clicking on the set list.

Try creating a new set of type XYdY. This is an XY curve with error bars. Try X, Y, and Y1(the error) from different columns.

Creating sets within Grace

Besides reading in data files, Grace has an extensive scripting language with a large number of math functions built in, These function include the basic add, multiply, square root, etc, and also the cephes library of higher order math functions like Bessel functions and the gamma function. Hence, functions in Grace are basically unlimited. See the user guide for more details. In addition, users can dynamically add libraries to Grace with any desired function. As well, points may be added manually to a set by the use of editors. To begin, choose Main:Edit/Data sets. To create a set, press mouse button 3 (the rightmost one for right handed people) anywhere within the data set list (which may be empty) and select Create new. A menu with 4 different ways of creating new sets will be presented. We'll go through them one by one.

By formula

The load and evaluate window will pop up when this is selected.

The first step is to set up the parameter mesh which will determine the range and sampling of the variable $t. Most often, $t will simply be the abscissa. Next, choose the type of set you would like to produce. Using the syntax of the command language, an expression for x is entered which uses $t as the independent variable. This can be an extremely complicated function. Likewise, an expression for y is entered and for any other expressions that may be needed. Fields after y are labelled y1, y2, y3 and y4. For example, if the set type xydxdy is chosen, y1 will hold dx and y2 will hold dy and it will be necessary to enter expressions for them. Pressing apply or accept will perform the calculations and create the new set. You may have to autoscale to see the new set.

Below are a few samples:

To plot one cycle of a sine wave: Load: Set X, Start load at: 0, Stop load at: 2*pi, Length: 100, X=$t, Y=sin($t) A unit circle by parameterization: Start at:0, Stop at: 2*pi, Length: 100, X=cos($t), Y=sin($t)

In spreadsheet

If your system has the Xbae widget set, this choice brings up a spreadsheet like editor to allow one to enter the points of the set by hand. Initially, it just has the point ( 0, 0 ). Clicking on add will insert a copy of the currently selected row immediately below the selected row. Clicking delete will delete the row which contains the cursor. This method is best suited to examining or modifying existing sets or creating very small sets. The sets gets updated after one hits enter or leaves the cell.

In text editor

If your system doesn't have the Xbae widget set or you want the power of your favourite external editor, a text editor of your choice may be used to enter data. The editor is selected by the GRACE_EDITOR environment variable. If the set is new, it will contain only the point (0,0). During editing, no other operations are possible. After the editor is closed, the set will be updated.

From block data

This creates a new set from a block of data which has been read in. See section 3.

Batch plotting

Grace supports a large number of command line options which allow the user to control the appearance and placement of graphs. This can be very useful if you want to use it to quickly print something without going through the GUI, use it within a script to automatically generate graphs, or have a plot come up already configured which can be much quicker than going through the GUI menus.

Simple nonGUI printing

Invoking Grace with the command "grbatch"from the command line will cause Grace to start, produce a plot, send it to the printer (unless a file is specified) and then exit. In its simplest form, to produce a plot of the file a.agr, type

gracebat a.agr

If gracebat is unavailable on your system, the hardcopy option to xmgrace will do the same thing. Assuming the hardcopy device is a postscript printer, one could also type

xmgrace -hdevice PostScript -hardcopy a.agr

Multiple graphs

Often, one wishes to plot several graphs with each graph having different characteristics. This is easily accomplished from the command line. Options specified on the command line are parsed in order and stay in effect until overridden by specifying them again.

The first step in plotting multiple graphs is usually telling Grace how many graphs we have and how to arrange them. The interpreter command "arrange" will do this. For example, if we want 4 graphs arranged in a simple 2x2 table, we specify -pexec "arrange ( 2, 2, .1, .1,.1,ON,ON,ON)" The exact meaning of all the options is explained in the reference manual. Specify any global options. Specify for each graph, the data to plot and any options. Options should be specified in the following order: "-graph g" where g is the graph number starting at 0. This says to apply all following options to this graph. Set any autoscaling options. Autoscaling is performed when the file is read; ergo, the autoscaling must be specified BEFORE the file is read. Remember, this setting is persistent. Set the set type. This is also a persistent setting. Specify the graph type and the input file. If reading in block data, create the sets with the "-bxy" option. Specify any world scaling. It is important to do this AFTER sets are read (unless autoscaling is off) as the graph gets rescaled when data is read in. Specify anything else

An example

Let's try an example. We will assume 5 plots, the first 4 of which are to be stacked vertically, and the fifth inset into the fourth. We wish to plot the files a.dat, b.dat, c.dat and d.dat with the inset graph being a magnified portion of d.dat. Assume a.dat contains multiple columns of data, b.dat is a block of data from which we wish to make a curve from columns 2 and 4 with the error given by column 3, c.dat is to be represented as a bar graph, and for the inset graph, we wish to graph to region (0,0) to (1,1). This can be accomplished by

gracebat -pexec "arrange (4,1,.1,.1,.1,ON,ON,ON)" -nxy a.dat -graph 1 -block b.dat -settype xydy -bxy 2:4:3 -graph 2 -settype bar c.dat -graph 3 -settype xy d.dat -graph 4 d.dat -world 0 0 1 1 -viewport .15 .3 .8 .88

Note that the graph numbers start at 0 and that 0 is the default so it does not have to be specified for the first graph.

Things for which no command line option exists

Undoubtedly, you will reach a point where you want to do something for which no command line option exists. (We have been doing this with the arrange command.) This is where Grace's parameter file language is vital. The option "-pexec" will execute the next argument as if it had read it from a parameter file or excuted on the command line. If you want to do something more complicated than one command, you can use several pexec's or put the commands in a file and run the file with the "-batch" option.

Pexec example

To read in the files foo.dat and bar.dat and scale foo.dat in Y by 1000, the simplest way is

xmgrace foo.dat bar.dat -pexec "s0.y = s0.y * 1000"

Batch example

To do the same as the previous example but also label the axes and recolour the curves, make a file called "bfile" with the Grace commands

#Obligatory descriptive comment s0.y = s0.y * 1000 s0 line color 3 s1 line color 4 title "A Gnasty Graph" xaxis label "Time ( s )" yaxis label "Gnats ( 1000's )" autoscale

and then run xmgrace with

xmgrace foo.dat bar.dat -batch bfile

Fitting curves

This tutorial will explain some of Grace's curve fitting abilities. Grace can perform two types of fittings. The first type is regression or linear fitting where optimization is done on a linear equation or an equation which can be expressed in a linear form. This includes fitting polynomials and certain forms of equations. The other type of fitting is nonlinear and allows for arbitrary user supplied functions.

Let's take a curve and see how each type of fitting works. To begin, create a curve of the function y = sqrt(x) + exp(x)/3 -1 over the range 0 to 3 with 100 points.

Linear Regression

Choosing Main:Data/Transformations/Regression will pop up the Regression window.

Select the set you just created Select the type of fit. For now, pick Linear. We will load the fitted value for now. Press the accept button to see the results of the fit. A window will pop up which will give you the results of the fit including the final expression. You might have to scroll back a bit to see it. See how high of a polynomial is needed to get an acceptable fit and try fitting other types of functions. Note that for the non-polynomial fits, A and B are the fitting parameters of the equation. Now, we are not limited to computing our fitted curve at the points of the original function. Suppose these data are quarterly sales and we wish to predict our next quarter. Choose the type of fit which you found to work best. Instead of loading fitted values, Load: Function. Now the bottom of the widget will become active. We wish to extrapolate over the next quarter, so we would like to start at 0 and end at 4 and choose 100 points. Press accept to see the extrapolation.

Non-linear

We pop up the widget by selecting Main:Data/Transformations/Non-linear curve fitting. You may want to kill all the sets except the original function and the extrapolated function at this point.

Begin by selecting the set to optimize, the original function. Next, we write a function of the form we wish to fit. The unknown parameters are labelled a0..a9. You must start with a0 and work your way up. In this case, since you know the form of the equation already, so try: y = a0*sqrt(x) + a1*exp(x) + a2. Next we must specify that we have three parameters to fit which are a0, a1 and a2 and the tolerance of the solution. You must specify initial values for the parameters and put any bounds on them if necessary. Depending on the function you are optimizing, different initial conditions may lead to drastically different optima. The solution process is iterative and you must click on a button to run a certain number of iterations. You should see the parameters change and a curve created with these parameters. In this example, the exact solution is reached within 5 steps. More parameters and more difficult functions may require more steps in which case you may choose to run 20 or 100 or more steps. The newly created optimized curve should converge with an increasing number of steps. As in linear curve fitting, you can choose to load the fit function at the points of the original curve, over an arbitrary range or load the error at each point. For comparison, load the fitted curve over the range (3,4) by selecting Nonlinear:Options/Load/Function and filling in the bottom of the widget. How does the true answer compare to your previous extrapolation? Fitting arbitrary curves can be a tricky business. Initial conditions are very important. If you don't get a good fit, you may have to experiment a lot with the initial parameters values. Finally, note that the fitted curve does not get added until the accept button is pressed. This allows you to "fool around" until you get a good fit without creating a lot of garbage sets.

Transformations Graphical Simple Geometrical

You can rotate sets around an arbitrary axis perpendicular to the canvas (e.g. the Z-axis). Also it is possible to scale sets and translate them. Mathematical operations between sets

It is possible to perform operations between sets. With many operations, however, it is required that the 2 sets have the identical abscissa, i.e., the x values of both sets are the exact same. This is necessary since most operations are performed on a point by point basis. Eg. multiplying 2 sets is done by multiplying the Y values of the 2 sets together to produce a new Y value. About the only operations that don't do this are filtering and convolution. Fortunately, Grace has a function to help out when the abscissas differ. It is called interpolation which interpolates a set over the domain of another set to produce a new curve.

Let us now add the cosine of a set to the sine of another set to create a new curve. However, we will complicate this example by having different domains with different sampling:

Read in 7.1.2.agr Note how the abscissa are different. We begin by using interpolate to produce a third set which is the second set sampled at the x values of the first. Call up the Interpolate popup from Main:Data/Transformations/Interpolation/splines ... Select S1 as the source set but don't specify a destination set. A set will automatically be made. Use the Strict, linear method, Sampling:Abscissas of another set and use S0 as the Sampling set. Pressing Apply should produce a curve which is S1 interpolated at the points of S0. Note that the new curve only exists over the portion of the x axis common to both curves. We still have a problem since set 2 is sampled the same as set 0 but has a smaller domain. We can perform the computation only over the common region so we now interpolate on set 0 at points from set 2 to produce set 3. Now set 2 and set 3 have the exact same abscissas. Call up the command interpreter from Main:Window/Commands ... We need to create a set to hold the result, S4. We can either make a copy (using Main:Edit/Set_operations...) of S2 which will be guaranteed to have the proper size to hold out result or we can use type a command: s4 length s2.length We have to break up the computation into an x part and a y part. In this instance, we simply wish to keep the same x values. The final result will be put into set 4, so we issue the command: s4.x = s2.x Now we can perform the math between our interpolated copies of sets 0 and 1: s4.y = cos(s3.y) + sin(s2.y). So where is the new set? It's there but it's hidden. Since we already have the command window open, we can unhide the set by typing: S4 on. For the GUI minded (no offense intended), bring up a set list with the set operations menu (eg. Main:Edit/Data_sets or Main:Plot/Set_appearance), select set 4 and unhide it by selecting show from the operation menu (mouse button 3).

N.B. If the abscissas of the original curves had been the same, we could have started at step 5. If the sampling had been the same we could have skipped step 4.

Feature extraction

Feature extraction is a way of creating one curve from a family of curves. It generates one data point from each curve by measuring a characteristic of the curve. For example, one might have a series of curves which plot the gnat population as a function of time. Each curve is produced by varying some condition, like the number of gnus in the environment. Using feature extraction, one could use this family of curves to produce a new curve of the peak number of gnats as a function of gnus or the time of the peak number of gnats as a function of the number of gnus. This is most often useful with more than one graph.

Read in graph 7.1.3.agr Bring up the feature extraction form by clicking on Main:Data/Transformations/Feature_extraction. Select Results to graph 1. Select the feature you are interested in. Choose Y maximum. Select what will determine the x value of the data point. The value of the characteristic determines the Y value. The X value can be determined by the set number. The x or y values of a specified set can also be used to produce the abscissa. Finally, the legend entry of the curve itself can be used to produce the x value. In this case, the legend entry must be specified as a single number. Choose index for now. Press accept, click on graph 1 and then click on the autoscale button to see your results. Choose another feature, like frequency, this time and get X values from the legend. Make sure that graph 0 has the focus when you hit accept.

Restrictions

Often we only wish to examine part of a data set or perform transformations only on a portion of one. Restrictions allow us to define a region of the graph on which to perform operations.

Defining a region

There are several ways a region may be defined. It may be defined by a straight line (left of, right of, above, below), by a polygon (inside or outside), or by a range ( in x, out of x, in y, out of y). Call the define region popup from Main:Edit/Regions/Define. Choose which one of the regions you would like to define, and press the define button.

Line typeDefine the ends of the line by clicking with mouse button 1. Polygon typeFrom the define region popup, choose a polygon type and then the define button. Use mouse button 1 to pick the vertices of the polygon and then mouse button 3 when you are done. Range typeFrom the define region popup, choose a range type and then pick 2 points which define the range.

Using regions

Regions may be only be used to restrict an expression evaluation. Bring up the evaluateExpressions popup (Main:Data/Transformations/Evaluate_expression). Choose the source and destination sets and specify the formula to apply to the region of interest. Not specifying an expression is equivalent to the identity transformation. Choose the region you wish to use. By checking negate, the complement of the specified region is used.

Click on Apply to perform the operation. The resultant set will be the expression evaluated only on points contained in the specified region. Thus, if no expression was specified, the effect is to produce a new set of only those points contained in the region. Conversely, to delete points in a region, leave the expression empty, and negate the region selection.

Using Pipes

Pipes are a way of capturing the output of a running process without the intermediary step of pacing the output in a file. Instead, the executing program puts the data in one end of the pipe, and Grace reads it from the other end of the pipe.

Instead of data files

On certain popups, e.g. Main:Data/Import/ASCII, the option to read from a file or pipe can be specified. If a pipe is chosen, the command in the selection widget will be run and the stdout will be captured and treated as though it was data which was read from a file.

Named pipes

A named pipe is a special case of the pipe previously described. In the previous case, after the program has finished execution and the output had been read, the pipe was destroyed. A named pipe is a static structure with the property that multiple processes can write to and/or read from it. The purpose of using a named pipe with Grace is to start up a Grace window and then control Grace by sending commands and data through a named pipe. This is very powerful and lets you do practically anything you can do directly from the GUI. To use this feature, try the following:

Start a named pipe (you will have to find the command specific to your operating system. For example, it could be mkfifo or mknod): mkfifo pvc. If you do a directory listing, you should see the file pvc. Start up Grace in the background using the named pipe option: xmgrace -npipe pvc&. Grace is now monitoring the pipe for any data which might be sent to it. It will interpret things as though they were entered using the command interpreter. For a simple test, we will create a simple graph over the pipe. From your command line, type: echo "read \"8.2.dat\"" > pvc. (The back slashes are needed to escape the quotation marks so that Grace really received the command :read "8.2.dat".) This just told Grace to read the file data. Now we would like to autoscale. We could simply click on the button but the point is to use a named pipe. This time we type echo autoscale > pvc followed by echo redraw > pvc. Your graph should now have autoscaled and redrawn. Exit Grace with echo exit > pvc. You should also clean up by removing pvc. The true power in named pipes lies in driving Grace using another program. The controlling program can open a named pipe for writing, which is treated as an ordinary file. It can be opened with the fopen() function or whatever other I/O function you prefer. Commands and data are then written to the file where they are interpreted by Grace.

Multiple Graphs Selecting graphs

When multiple graphs are present, a graph is selected by clicking inside the graph frame. In cases where graph frames overlap, clicking will cycle among the overlapping graphs.

It might be annoying if one is trying to work in a region of overlapping graphs. If will not be possible to double click on something because the each click will be interpreted as a single click and you will only end up changing the graph focus. In such an instance, turning off the graph selection by clicking might be desirable. Choose Main:Edit/Preferences and then set Misc:Graph_focus to "As set". This means one must explicitly set the focus. Simply bring up a graph list (eg. Main:Edit/Overlay_graphs is but one), select the graph you want to work on and then, using the menu under mouse button 3, choose "Focus to".

Arranging a tableau of graphs

Placing a large number of regularly spaced graphs is easily done with Main:Edit/Arrange_graphs. This will automatically calculate the layout:

Choose 3 rows and 3 columns and Apply. You should now see 9 graphs. The Order button refers to the way the graphs are numbered. The beginning of the line on the diagram of the button shows which graph is numbered 0 and how the numbers increase, by row or column. You realize you need horizontal packing, i.e. no horizontal gap between graphs. Click on the Pack button beside the Hgap/width input and then Apply. Suddenly, you realize you only need 6 graphs and not 9. Choose 2 rows and press Apply. There is a slight problem as graphs 6, 7 an 8 are still visible. This is a feature since you don't want to accidentally kill a graph. You can kill the extra graphs by clicking on the "Kill extra graphs" check box. Now, any graphs other than the explicitly arranged ones will be automatically killed. The margins are controlled by the Page Offsets, and the intergraph spacing by the Hgap and Vgap inputs. Press close to remove the window.

Note that only graphs which are selected are taken into consideration. So, if you wish to reorganize your existing graphs, make sure they are selected or new ones may be created.

Arranging individual graphs

Arranging individual graphs may either be done (1) exactly, by specifying the viewport coordinates from Main:Plot/Graph_appearance or using the previously explained Arrange graphs popup, or (2) roughly, by double clicking a graph focus marker and then moving it.

Overlaying Graphs

Overlaying one graph onto another is useful for creating a graph with two different x axes and/or y axes. For example, you may wish to have a graph which on the x axis has the month of the year. There could be 2 curves on it, one using the left y axis which is number of gnus sold and one using the right y-axis which is the number of gnats exported on a logarithmic scale. Likewise, if one is plotting spectral data, one could have one x axis in Hz and another one in wavelength. Let's proceed with an example:data

Begin by selecting Main:Edit/Overlay graphs to bring up the Overlay widget. Select the graph numbers with which we would like to deal. In this example, we will overlay graph 1 onto graph 0. At this point, only graph 0 is visible. We cannot see Graph 1 to select since it does not exist at this point. We need to create simply by pressing mouse button 3 in a graph list window and selecting create new. The overlay type is determined by what is common among the overlayed graphs. In our example, the x axis is common so we will select X-axes same, Y-axes different. This is important because we don't want to alter any axes of the Overlay graph which we set the same as the underlay graph. In this example, we don't want to alter the x-axis of graph 1. We are now ready to label the graph axes and read the data. One thing we must be careful to do is to always make sure that we are working on the intended graph. Seeing as the graphs are overlain, clicking within the frame is ambiguous as to what graph is selected. The rule is that in a region of overlay, clicking will cycle between the graphs. Hence, if graph 1 is selecting, clicking within the frame will toggle to graph 0. Making sure that graph 0 is active, bring up the Axis properties widget. Now set the y axis title to Gnus. Select graph 1 as active as set the title as Gnats. Notice how it overlaps the Gnus. We want to put this on the right side. From the axis label and bar tab, select label Properties/Side=Opposite. Label the x axis to label it. If graph 1 is the current graph, noticed how it is greyed out because only 1 x axis need be active. Select graph 0 and you should now be able to alter the axis label. You are ready to read in data. Just make sure the graph that is active when you read in the data (or create your set) is the one in which you intend it to go.

Hot Links

Hot links are a way of of updating a set without having to delete it first and then reread it. The Hot Links window is opened available under Main:Data/Hot links.

File containing a Single Set

The simplest hot link is to a file containing just one set. To make a hot link to a single set, we must first select the set we want to get updated and then specify the file. We may also link to a pipe in which case we must specify it is a pipe to which we are linking. A command may also be entered which will be run every time the hot link is updated. A common command might be autoscale which will make sure that the entire set can be seen if it changes size. It's possible you may want to execute more commands than one. One could, for example, have a set that is a function of 2 sets that needs to be recomputed if either set is updated. If this is the case, put your commands in a file and then use the "READ BATCH" command.

Pressing the Link button will now create the link and if the update button is pressed, the set will be updated with the current contents of the file you linked and the contents of the Command widget will be executed.

For a simple example, read in the set 10.1.dat and set up the hot link. Now, run the command shiftdata.sh and update the hotlink. You should have seen the peak in the graph shift. Try repeating this a couple of more times.

Multiple sets within a file

Sometimes a data file may contain multiple columns of data and we would like to be able to link to all or some of those columns. To specify this, select as many sets as there are xy columns of data in the file. The "x y1 y2" format is assumed. Choose the file the data and link. Now in the link list, the links will show the file name with an appended colon and number. The number tells what column of data the link refers to. Any unwanted columns may be selected and unlinked at this point. When the update button is selected, all sets in the graph will be updated.

Updating by hot keys

Instead of having to keep the Hot links window open all the time, the update action is bound to alt-u. If you find that alt-u has no effect, try double clicking inside the graph you want to update and close the window that pops up. This will "alert" the canvas to process future hot key strokes.

grace-5.1.25/doc/nohelp.html0000644000076500001440000000022606654716571015373 0ustar fnevgenyusers Grace: No help available

No help

Sorry, no help available on this item (yet) grace-5.1.25/doc/philosophical-gnu-sm.jpg0000644000076500001440000001375306626627163017772 0ustar fnevgenyusersÿØÿàJFIFÿþHCREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 75, Smoothing = 0 ÿÛC    $.' ",#(7),01444'9=82<.342ÿÀ È ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÚ?÷ú(¢Š(¢Š(¢Š(¢Š+/_¹¾±Ðo®ôØRkÈ!ibŠ@H¨ÎÞ9ÉîE3Ãú寈´k}N×!$2’ŒOÐŽ½ÆCQx‹ÄvÚv‹"<÷W· ommÒ;3’pddž9©îQEQEQEQETRJÆÒH걨,ÌÇ@êI®?ÀQÉf†ÑË&™§Þ#dhŒ,>˜·Cõ&³¼D~)éW÷>sÛéËi¨å#7Fê-Ä{È–Ã=°+Ѩ¢Š(¢ª­õ›\ý˜]@gÉW˜7d{u«TW;/Œ4çžHtè¯uG‰ŠHÖí,hê™8MÃ<®ìŽâã >8Œ—¶Ú¥Š©ùÍÎ0D¬áJï»­a©Øj™tûëk¸Á{yVEê «”QEqú®¥ÿ ;I èÇÏ´˜µ+ô9Š(úb/1\@Ï,d68m²JÃÞ*¿£ø†âÈô?m·Õ€Û Æ6èüQ›»´}GlŽk©¢¢–T†'–WT³;ROa\áñ®rï…úôëü:p àŸšv"!Ó¦íÜô4‹kã Hæâ÷OÑ %IŠÎ3u>1Ïïd €ÿÛ6úšxð>q —VûNµ(%³©Ìf'¸‡ˆ—þ‚¬xP ŒøcEØ:/Ø"Çå¶³Qƒ5›Hÿ°µ9¾ÏNå…•ÁRQP“‘í*¢¶Ð8l >-ioŸáø&x›T˜­ÃÆHt¶E-)tÏÉz7#¥oÙÚ[ØZCii pÛÂ#Š5Ú¨£ ¬V5ÿ…|?©ÎóßhzmÌî0ÓKjŒçþFZÍ»Ðtme×/ôtB|·:£ìÁ&fLM¸¨lÆ¡#®ãèï™W,’Ekq·ß÷A0:u­ tÿLª‡Ä| Ÿ™íô¶bó:ÅMW“ÁwìÍ­jZ®°‡¹¼¸ ±D¨ÿSWµkëO è+ökDù1•º„ód?r$`gé€'€j}L}'HŠÚi·,Í5Ì `I3±yÀ³ÃµEâ]kÚ3Ú¤ÆÞéf´¹ ‚t;‘Æ}Æî ë;M¿°ñ……Þ®ið‹ëbÿOwnΙꇪ¸ý¦7„õKDèÞ/Õ-!W,°]$Wˆ£û¡¤_3ÝÍJš‰¥”ŸL‘Ž«g§A?Œ‚OåO‹Á+Ëúœsë)È—S™®>¢3û´?‰UcPªªŒú(®_dž)|%w§•2]êµ±Eûßinc`{laæü! íTäð¦«a{«¥k×wºŒ Иµw ±9Rëûµ6%†ã© 7ÅÖ—qéÚœ3i«ð¶—€)ãýTƒä”dÿ Ϩ¹=Ä6¶ÒÜ\JÁ—’I*¢’I<zåïuÑâ;ÄÒ|=ªÃöQ›QÔ­$Y<ˆ²@eDŽCr~ê«¥Mgiö¾•·x_ÁöºŽÖÛý§pˆ‘Hsó7žá¤—ýõWûÕ¥©hº¦¾aއá}ÉÒ[ ×ûÝVŽ?â¬ï øzÆMvGM¶³·²Ó]á1A‰¯æc—<ˆ”’ä唞ݧâ+Kº6/9¹Ôvî[ D3\7"ä¨?Þl/<‘Pi:]õÎ¤Úæ¶ª·{vYÙ£ïK(Ï^z4üL8mSŒ–é(¬MkÃV:ãÅ<¦âÞúDÖ²˜§ˆ 0ê?Ù`T÷¨ÇŒ´Ñ±fÒõ¸‚œ=Ák)³ž7YÎ8áPTc[ñ™Èÿ„6Ô6:avçëåçô¨µk¯E¦ß^E•n Þ;kU–öy˜ áIò€=qò·nCËZM«Þݬw‡TÖîæ´K›o°ø„[Dcl|ä"[¼™VLg¥¾ð׊’òÞôC©EeŸ2×Kñ=Ì÷%Ž0ßéFÛpß'È䃫áo¥Õ¤Öº•¾±-ݤÏκT®\;L‰“íÆU‚óÈ"·_ő̥4Í#Y½º?v'Óåµ^‡“$êŠâO 5&•£^5ÿö¾¹43ê@‚(3äZ!ê#Ï,Çøœ€O@q]T½°³Ô­ZÖþÒ «wÆè§ŒH‡êÅsWt¹¬ÖÚÒëT²^8ã¾–H«QäÈÍÐT|»@Ç ~¿ºšKMRxf´º¯5)cBŸm|펅‰X•7Nì’ Wfˆ± DPª£  `è+Ä×÷+nšN”ûu}@€ÏÙÓ€ó· @xõb«Þ«CðÿA‚Â;þÔû" AÖ.ü½£¶Ï7n=±ŠÛÓ4;Fµû6™cmis²‚}N'Þ¯ÑEQEpš~ƒkws«øzãÎôÛï·i·0–ñO— r8“ÏL‚ªVÄgÅöcÊxômPq¶všK6#î@’‚}ÁØR[i7sø‚=jòÞÚÂî4òŸìwM*ÝFAÂÈ4û­†R2zŽ9é(¢Š+Å—:½‡g¾Ñ¶5ͱIBe2Æ>úª†lryÆÜŒäUŠãÅWVÐÏawáû»kˆÄ‘]ùS *Ã!„a›päϵ^Ò4/ìé§¼»»’ÿS¸ ³Ýº…ùW;Qpˆ2pNI$“ÍmÑEQEWâ]A´ÏY_XÛ½ÅÅ­„²j1GÕ¬üÄŒrá·ºá$QËW]m}kycíµÄrÚÈžbLŒ 2ã9Ò²ô RãZ’÷P ¿ÙR8OÂàÊ«òçј¾ª‡Þ­ê(¢ŠÊ#ÐΧý˜5­;ûC~ϲý©<ÝÞ›3œûb²Ü¢×`Ô, lŠGa,c $œE•Ga]eQEQEqÞ+ø‘áï +¥ÍâÝ_) XÚº¼ÀŸ˜gåõÆ{dñV| ÍÕ“xƒQÇö†¬±Êȹ!„b‰H$3g¹vg²YŽrÓí|Y¥øÑ,uý"Âm#XûbÛ[êW1¯“3†]ÖÒ¼d¶€à Äm9½f8’Ö8ÑQUQ€è¯7øŸâK jº.¯©Û­ÌP,Ïkf‡žèÛ+€‘«ÉÎI !N3\¤¿-<]¡Ï$Ú#XÞi·P]ÙHób’dc ‹xPQäHåEàƒ’3ØúÇ„ôY´m7βê·nnµ AÎùß’û*0Š?º¢º (¢Š(¢Š(ªÍy z„6%¿4RL‹ê¨P1üä_β­®¼¯j,ä,Ö0\Ä…‰ ÁäI°<~¢·«ÉMÚòÚêp-Ðÿ¾h=ÌKÔ½jjmÿ߈×[7Q1ÛjtŠ_»çÐt§–z)®®Š(¢¹_Û0ñ§ƒï”¶êæÕ½J½´üáÕQEQEQEÄkº}¶™©Ü5âìu„Wç$}–çb˜áݵT·gXˆÇ&´4‹É.φ5åY¯b„‚Ì>Kûsòù zóµ×øXú&-:[¯ jVÚ%ôÒ\i·,cÓo$|º0¼‰I䜵»ƒó[¬¢Š+Ÿñü†ü'ÿaY?ôŠêº (¢Š(¢Š(¢«ÝÚ[ßÙÍgw Mm2äÆU”ŒEp×–7¶Ëk¢<Äêv¦ðö£#s6Åæ O÷¶e[9Ÿ8ù”íÓ×g_|8¹Ô,ã‘n>ËöÛTþ8®býâþÒÈ€ìEtÖwPߨÛÞ[¶øn#YcoUa#V(¢¹o;ÙÙišÊÈ#M+R†âf# BÙ†R}„s;g¶Úêh¢Š(¢Š(¢Š++[Ò†«`#Vòî`•n-eÿžr¡ÊŸ§PGu$w¨4]ë–±ŸÝC©1EÏÝ2EÍù¼Ž­à2ñø6ÊÊVV“Nitæ+ßÈ‘¡ñã]-U[Ö³K)šù¡[@‡Î3#ÙŽwgŒcÖ¸¿ ëÚ}®¯ýƒ§jÑjZC‚4ùV_1­ÙA&Ý›’˵Y£cÕQ†NÜžúŠ(¢Š(¢Š(¢¸­KT—ÃÚoµÈŽ÷¶!¢‰ÆSÌ[hÈ$8%”‡ [š&Ÿ5…î¸]BÁu¨}¢ÜÏÊaˆ1öÌ‚CøÖÍs'ÂQßÉ<ºÞ£~Ó1Ä)q%½º&NExÆK–$ŒñÐg_hVþ ÓßYÐæÚÚÍŒ÷¶Fw– ãÍ*ŽÄ#ª‚ÊW+ƒjåÔ â/ý’eéz:,’ÄÉ”šíÆT6F–˜|zʇªŠÃ¼ñN•âoˆÖÒâ¸}GH¼77Wˆ‹åĉ£¦íÛŽZAÇÌ}+Ñ袊(¢Š(¢ŠÆºñ.‹e»í•°Â!_y ¸.H\àn gÔÖ²õ•³×¬µ_é¡%—T³™®.— $¡…vܘÏ6 x§]±y&Ydx$™ñƒ;JÒÌ©ƒ÷TS?ÞVéƒ^“EQEQEâM5ÝâÍ”J3BIàI´‘ÐŽH ðA5ÁëÞH¥‚ÖÕ§†)5¡³`#i ÎL>{sœüƒµVÕí5 kæëK)û!³ ë½"‚âöà†bN ˆsê}éúN¨÷:,zmÜ ÜZÍ¥í¿Ê1²[‹i`gý$äc€àRÞÝ[뺥î¡m¥Í#·ZzM¶[‚bó"¹·n6Nˆ§‚ʤpBæÝÀKñ'†µH²¨Ú­ëéרA9Yc1¶æ!S>”ÍW»»Ö†¤šyÕu‹—û,w7.lí-×`”Å º™ˆØCòðüsŒ Êñ<šõí•§ˆÕ®‰w}jEµ¾šòËsvÝNÁ`±D •i@Ý^³¦i¶šF„ ¬+µ#\œw$“É$ä’y$’rM^¢Š(¢Š(¢Š(®wÄž‡[X¿v…šx>Ñ“ƒ$Q³>ªdfõâÛkM?^ÓeV33¤òä€[Í9 ô*/ÓÇiͪØx§OxŒ^dM°£åÉ4½–ú úÜÇÆ9©!½»»ÒµM2Öéâ»ÔV t’b™–HUŸi'&Þ{r{îŠAÎÓQjºª·Ä}CW³¸¹â;yÔÅï RP3Óu¹yUŽ2ck ð6•&¥â9fÔŽôÑãX Žá ûÝ_î²9^¿,«ÎPcÔè¬ýCSµÓ$²IËî¼¹[hB©bÎAoÀaX“íV|ø±)óSœHw“€yôàƒÏcR+PÊAR29S袊(¢Š(®?ÆÖ‘³i·—'6.Ϧ_© ~âëjèD« Ïaº²u 5î·u¦ÉtEÆ¡aö¨®B¿i|‰œ¯ð†[¶ᣠ9ZÂ[ÉåÑï5è‘Và+·—œ©D58IÈþ$±žœ?µaêšiÚY{ g‘’&‰\ƒ,bK­­íˆ¡pIþ#¥z·…4”´ó¯cgWgžÒDà‰+™|·'æÃ6}sì+©ªz–¡“¥Þj7%…½¤<¥FHDRÇ¿×5â-Hx/OŒ#¤·W,á³·m¬Ê¿ƒooûä×1}t·š¦«ÌQMe&¹q4¶ò©Ùpmì¢Xâe?{2lw(+µðž«¦Ýh6¶ÖWBE´#O Ãg™$h3´ ¨Ü=¹®ŽŠ(¢Š(¢Š¥ªi°jÚ]ÞŸv [ÝDÐÈÁÚñô=ª;--`“\Ènµ-…»]²íiŽqPN+Ï`Ò&Ó­›B¿ì£[ÒÅ”HK$wñBð0>_2…zdFéÁ·«[ixY5Ùí¼›;‹+®!ˆìkP’–Ÿúç4 úl¼iÔoK#¨d`C+ ‚b+™·ð&‹”Ö¿ér+ybá¼ËTŒ“Dã 8ç