g2-0.72/0000755000175000017500000000000010515227215010762 5ustar ljuboljubog2-0.72/demo/0000755000175000017500000000000010515227214011705 5ustar ljuboljubog2-0.72/demo/penguin.c0000644000175000017500000002333606650611563013536 0ustar ljuboljubostatic int penguin[53*62] = {00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,00,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,01,00,00,00,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,00,00,01,01,01,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,00,00,01,01,00,00,00,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,01,01,00,00,01,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,01,01,01,00,01,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,25,25,25,25,25,25,25,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,25,25,25,25,25,25,25,25,01,01,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,25,25,25,01,01,25,25,25,25,00,01,01,01,00,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,25,25,25,25,01,01,00,00,01,01,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,01,01,25,01,01,01,01,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,01,01,01,01,01,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,01,01,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,01,01,01,01,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,01,01,01,01,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,25,25,01,01,01,01,01,01,01,01,25,00,00,00,00,00,00, 00,00,00,00,00,00,01,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,01,01,01,01,01,01,25,25,25,00,00,00,00,00, 00,00,00,00,00,00,01,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,01,01,01,01,01,25,25,25,01,00,00,00,00,00, 00,00,00,00,00,01,25,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,01,01,01,25,25,25,25,01,00,00,00,00,00, 00,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,01,01,00,00,00,00, 01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,01,01,01,00,00,00, 00,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,00,00, 00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00, 00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01, 00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01, 00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,01,00,00,00,00,00,00,00,00,01,01,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00, 01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,00,00, 01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00, 00,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00, 00,00,01,01,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00}; g2-0.72/demo/g2_splines_demo.c0000644000175000017500000000636710020475042015131 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * g2_splines_demo.c * 06/16/99 */ #include #include #ifdef DO_PS #include #endif #ifdef DO_X11 #include #endif #ifdef DO_GD #include #endif #ifdef DO_WIN32 #include #endif #ifdef DO_WMF32 #include #endif #define n 14 #define o 60 #define tn 0.6 #define X11 0 #define PS 1 #define GD 2 int otp=X11; int id=-1 ; /* default output device */ void curves() { int i; double points[(2*n)]; double dy[n] = { 10., 280., 140., 200., 60., 120., 380., 500., 480., 400., 220., 180., 260., 340.}; for (i = 0; i < n; i++) { points[(i+i)] = (i*o)+20.; /* from 20 to 800 (20+(13*60)) */ points[(i+i+1)] = dy[i]; } g2_pen(id, 1); g2_poly_line(id, n, points); g2_pen(id, 3); g2_spline(id, n, points, o); g2_pen(id, 7); g2_b_spline(id, n, points, o); g2_pen(id, 10); g2_raspln(id, n, points, tn); g2_pen(id, 19); g2_para_3(id, n, points); g2_pen(id, 22); g2_para_5(id, n, points); } void axes() { g2_line(id, 5, 300, 810, 300); g2_line(id, 400, 5, 400, 560); } void draw() { g2_rectangle(id, 5, 5, 810, 560); /* window: 815 x 565 */ axes(); curves(); } int main(int argc, char *argv[]) { int dev[5]={-1, -1, -1, -1, -1}; id=g2_open_vd(); /* open virtual device */ printf("\nAdding.."); #ifdef DO_PS printf("..PS"); dev[0]=g2_open_PS("g2_splines_demo.ps", g2_A4, g2_PS_land); g2_attach(id, dev[0]); #endif #ifdef DO_X11 printf("..X11"); dev[1]=g2_open_X11(850, 600); g2_attach(id, dev[1]); #endif #ifdef DO_GD printf("..GD"); dev[2]=g2_open_gd("g2_splines_demo.png", 850, 600, g2_gd_png); g2_attach(id, dev[2]); #endif #ifdef DO_WIN32 printf("..WIN32"); dev[3]=g2_open_win32(850, 600,"g2_splines_demo",0); g2_set_auto_flush(dev[3],0); g2_attach(id, dev[3]); #endif #ifdef DO_WMF32 printf("..WMF32"); dev[4]=g2_open_win32(850, 600,"g2_splines_demo.emf",1); g2_set_auto_flush(dev[3],0); g2_attach(id, dev[4]); #endif g2_set_auto_flush(id,0); g2_set_coordinate_system(id, 12, 15, 1., 1.); draw(); g2_flush(id); if (otp==X11) { printf("\nDone.\n[Enter]\n"); getchar(); } g2_close(id); return 0; } g2-0.72/demo/Makefile.in0000644000175000017500000000377510277435346014002 0ustar ljuboljubo# # # Makefile for g2_library (demo) # # CC = @CC@ CXX = @CXX@ ##Linux F77 = g77 CPP = /lib/cpp ##OSF #F77 = f77 #F77_FLAGS=-i8 ##AIX #F77 = xlf #CPP = /usr/ccs/lib/cpp ##IRIX #F77 = f77 -n32 #CPP = /lib/cpp -P -DFORTRAN CFLAGS = -I../src -I../src/X11 -I../src/PS -I../src/Win32 -I../src/GD -I../src/FIG @CFLAGS@ @DEFS@ CXXFLAGS = -I../src -I../src/X11 -I../src/PS -I../src/Win32 -I../src/GD/ -I../src/FIG @CXXFLAGS@ @DEFS@ LIBS = -L.. -lg2 @LIBS@ @DO_PS@DEMO_PS = simple_PS @DO_FIG@DEMO_FIG = simple_FIG @DO_X11@DEMO_X11 = simple_X11 pointer handles g2_anim @DO_GD@DEMO_GD = simple_gd @DO_WIN32@DEMO_WIN32 = simple_win32 g2_anim DEMO = g2_test g2_arc g2_splines_demo demo_cpp $(DEMO_PS) $(DEMO_FIG) $(DEMO_X11) $(DEMO_GD) $(DEMO_WIN32) all: $(DEMO) demo: $(DEMO) g2_test: g2_test.c $(CC) $(CFLAGS) g2_test.c $(LIBS) $(LDFLAGS) -o $@ g2_arc: g2_arc.c $(CC) $(CFLAGS) g2_arc.c $(LIBS) $(LDFLAGS) -o $@ g2_splines_demo: g2_splines_demo.c $(CC) $(CFLAGS) g2_splines_demo.c $(LIBS) $(LDFLAGS) -o $@ g2_anim: g2_anim.c $(CC) $(CFLAGS) g2_anim.c $(LIBS) $(LDFLAGS) -o $@ simple_PS: simple_PS.c $(CC) $(CFLAGS) simple_PS.c $(LIBS) $(LDFLAGS) -o $@ simple_FIG: simple_FIG.c $(CC) $(CFLAGS) simple_FIG.c $(LIBS) $(LDFLAGS) -o $@ simple_X11: simple_X11.c $(CC) $(CFLAGS) simple_X11.c $(LIBS) $(LDFLAGS) -o $@ simple_win32: simple_win32.c $(CC) $(CFLAGS) simple_win32.c $(LIBS) $(LDFLAGS) -lkernel32 -lgdi32 -luser32 -lcomdlg32 -o $@ pointer: pointer.c $(CC) $(CFLAGS) pointer.c $(LIBS) $(LDFLAGS) -o $@ handles: handles.c $(CC) $(CFLAGS) handles.c $(LIBS) $(LDFLAGS) -o $@ simple_gd: simple_gd.c $(CC) $(CFLAGS) simple_gd.c $(LIBS) $(LDFLAGS) -o $@ demo_cpp: demo_cpp.cpp $(CXX) $(CXXFLAGS) demo_cpp.cpp $(LIBS) $(LDFLAGS) -o $@ demo_f: demo_f.f $(F77) $(F77_FLAGS) demo_f.f $(LIBS) $(LDFLAGS) -o $@ g2testf: g2_test.f $(CPP) @DEFS@ -E g2_test.f > g2testf.f $(F77) g2testf.f $(LDFLAGS) -o g2testf clean: -rm $(DEMO) g2testf g2testf.f demo_f *~ core *.ps *.fig *.eps *.png *.jpg *.fig.bak g2-0.72/demo/simple_X11.c0000644000175000017500000000224107267122246014003 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include int main() { int d; d=g2_open_X11(100, 100); g2_line(d, 10, 10, 90, 90); getchar(); return 0; } g2-0.72/demo/simple_win32.c0000644000175000017500000000227007535033057014375 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include int main() { int d; d=g2_open_win32(100, 100, "simple_win32", 0); g2_line(d, 10, 10, 90, 90); getchar(); return 0; } g2-0.72/demo/g2_arc.c0000644000175000017500000000705110513523373013214 0ustar ljuboljubo#include #include #ifdef DO_PS #include #endif #ifdef DO_FIG #include #endif #ifdef DO_X11 #include #endif #ifdef DO_GD #include #endif #ifdef DO_WIN32 #include #endif #ifdef DO_WMF32 #include #endif #define maxdev 10 int main() { int d, dev[maxdev]={-1, -1, -1, -1, -1,-1, -1, -1, -1, -1}; int ndev=0; printf("\nG2_VERSION %s\n", G2_VERSION); d=g2_open_vd(); /* open virtual device */ printf("Adding.."); #ifdef DO_PS printf("..PS"); dev[ndev]=g2_open_PS("g2_arc.ps", g2_A4, g2_PS_land); g2_attach(d, dev[ndev]); ndev++; printf("..EPSF"); dev[ndev]=g2_open_EPSF("g2_arc.eps"); g2_attach(d, dev[ndev]); ndev++; printf("..EPSF_CLIP"); dev[ndev]=g2_open_EPSF_CLIP("g2_arc_clip.eps",400,400); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_FIG printf("..FIG"); dev[ndev]=g2_open_FIG("g2_arc.fig"); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_X11 printf("..X11"); dev[ndev]=g2_open_X11(400,400); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_GD printf("..GD(png)"); dev[ndev]=g2_open_gd("g2_arc.png", 400, 400,g2_gd_png); g2_attach(d, dev[ndev]); ndev++; printf("..GD(jpeg)"); dev[ndev]=g2_open_gd("g2_arc.jpg", 400, 400,g2_gd_jpeg); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_WIN32 printf("..WIN32"); dev[ndev]=g2_open_win32(400, 400,"g2_arc",0); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_WMF32 printf("..WMF32"); dev[ndev]=g2_open_win32(775, 575,"g2_arc.emf",1); g2_attach(d, dev[ndev]); ndev++; #endif g2_set_auto_flush(d,0); printf("\n"); g2_string(d,10, 50,"90,90"); g2_string(d,10,100,"90,360"); g2_string(d,10,150,"90,0"); g2_string(d,10,200,"360,90"); g2_string(d,10,250,"-45,45"); g2_string(d,10,300,"-45,-315"); g2_string(d,10,350,"-495,-405"); g2_arc(d, 100, 50, 45, 25, 90, 90); g2_arc(d, 100, 100, 45, 25, 90, 360); g2_arc(d, 100, 150, 45, 25, 90, 0); g2_arc(d, 100, 200, 45, 25, 360, 90); g2_arc(d, 100, 250, 45, 25, -45, 45); g2_arc(d, 100, 300, 45, 25, -45, -315); g2_arc(d, 100, 350, 45, 25, -495, -405); g2_filled_arc(d, 100, 50, 40, 20, 90, 90); g2_filled_arc(d, 100, 100, 40, 20, 90, 360); g2_filled_arc(d, 100, 150, 40, 20, 90, 0); g2_filled_arc(d, 100, 200, 40, 20, 360, 90); g2_filled_arc(d, 100, 250, 40, 20, -45, 45); g2_filled_arc(d, 100, 300, 40, 20, -45, -315); g2_filled_arc(d, 100, 350, 40, 20, -495, -405); g2_string(d,320, 50,"0,0"); g2_string(d,320,100,"360,90"); g2_string(d,320,150,"0,90"); g2_string(d,320,200,"90,360"); g2_string(d,320,250,"45,-45"); g2_string(d,320,300,"-315,-45"); g2_string(d,320,350,"-405,-495"); g2_arc(d, 250, 50, 45, 25, 0, 0); g2_arc(d, 250, 100, 45, 25, 360, 90); g2_arc(d, 250, 150, 45, 25, 0, 90); g2_arc(d, 250, 200, 45, 25, 90, 360); g2_arc(d, 250, 250, 45, 25, 45, -45); g2_arc(d, 250, 300, 45, 25, -315, -45); g2_arc(d, 250, 350, 45, 25, -405, -495); g2_filled_arc(d, 250, 50, 40, 20, 90, 90); g2_filled_arc(d, 250, 100, 40, 20, 360, 90); g2_filled_arc(d, 250, 150, 40, 20, 0, 90); g2_filled_arc(d, 250, 200, 40, 20, 90, 360); g2_filled_arc(d, 250, 250, 40, 20, 45, -45); g2_filled_arc(d, 250, 300, 40, 20, -315, -45); g2_filled_arc(d, 250, 350, 40, 20, -405, -495); g2_flush(d); printf("\nDone.\n[Enter]\n"); getchar(); g2_close(d); return 0; } g2-0.72/demo/descrip.mms0000644000175000017500000000251007377041677014075 0ustar ljuboljubo! ! VMS descrip.mms for g2 demos ! ! ! Change these pointers to the correct location of libGD,libpng, etc ! GD_LIBS = [.-.-.-.GD-1_8_4]libgd.olb/lib,[.-.-.-.lpng120]libpng.olb/lib,[.-.-.-.ZLIB]libz.olb/lib,[.-.-.-.JPEG-6B]libjpeg.olb/lib .IFDEF debug CC_FLAGS = /noopt/debug/nolist/warnings \ /include_directory=([-.src],[-.src.X11],[-.src.PS],[-.src.GD]) \ /define=(DO_PS, DO_X11, DO_GD) LINK_FLAGS = .ELSE CC_FLAGS = /nolist/warnings \ /include_directory=([-.src],[-.src.X11],[-.src.PS],[-.src.GD]) \ /define=(DO_PS, DO_X11, DO_GD) LINK_FLAGS = .ENDIF ! ! Rules ! .c.obj : ; cc $(CC_FLAGS)/obj=$(mms$target) $(mms$source) ! ! exe files ! all : g2_test.exe, simple_X11.exe, simple_PS.exe @ write sys$output "Demo files compiled." g2_test.exe : g2_test.obj link $(LINK_FLAGS)/exe=g2_test.exe g2_test.obj, \ [-]g2.olb/lib, []xlink.opt/opt, $(GD_LIBS) simple_X11.exe : simple_X11.obj link $(LINK_FLAGS)/exe=simple_X11.exe simple_X11.obj, \ [-]g2.olb/lib, []xlink.opt/opt simple_PS.exe : simple_PS.obj link $(LINK_FLAGS)/exe=simple_PS.exe simple_PS.obj, [-]g2.olb/lib clean : delete *.exe;* , *.obj;* , *.olb;* ! ! Dependencies ! g2_test.obj : g2_test.c simple_X11.obj : simple_X11.c simple_PS.obj : simple_PS.c g2-0.72/demo/penguin.inc0000644000175000017500000000465610021734040014050 0ustar ljuboljubo real penguin(1:53,1:62) data ((penguin(i,j),i=1,53),j=1,62)/ & 23*0,5*1,25*0, & 20*0,12*1,21*0, & 19*0,14*1,20*0, & 19*0,11*1,1*0,3*1,19*0, & 18*0,12*1,2*0,2*1,19*0, & 18*0,17*1,18*0, & 17*0,19*1,17*0, & 17*0,19*1,17*0, & 17*0,19*1,17*0, & 17*0,3*1,1*0,6*1,3*0,6*1,17*0, & 17*0,2*1,4*0,3*1,6*0,4*1,17*0, & 17*0,2*1,1*0,1*1,2*0,2*1,3*0,2*1,2*0,4*1,17*0, & 17*0,5*1,1*0,2*1,2*0,3*1,2*0,4*1,17*0, & 17*0,5*1,1*0,3*1,1*0,3*1,2*0,4*1,17*0, & 17*0,3*1,1*0,7*25,2*1,2*0,4*1,17*0, & 17*0,4*1,9*25,6*1,17*0, & 17*0,2*1,13*25,4*1,17*0, & 18*0,1*1,13*25,4*1,17*0, & 18*0,2*1,8*25,2*1,2*25,5*1,16*0, & 18*0,3*1,3*25,2*1,4*25,1*0,3*1,2*0,2*1,15*0, & 18*0,6*1,4*25,2*1,2*0,2*1,2*0,3*1,14*0, & 17*0,2*1,2*0,2*1,1*25,4*1,4*0,7*1,14*0, & 17*0,2*1,2*0,5*1,6*0,7*1,14*0, & 16*0,3*1,3*0,2*1,9*0,7*1,13*0, & 15*0,3*1,16*0,7*1,12*0, & 14*0,3*1,17*0,8*1,11*0, & 14*0,3*1,17*0,8*1,11*0, & 14*0,3*1,17*0,3*1,1*0,5*1,10*0, & 12*0,5*1,18*0,9*1,9*0, & 12*0,5*1,19*0,3*1,1*0,4*1,9*0, & 11*0,2*1,1*0,2*1,20*0,9*1,8*0, & 11*0,5*1,20*0,4*1,1*0,4*1,8*0, & 11*0,4*1,22*0,8*1,8*0, & 10*0,4*1,23*0,9*1,7*0, & 10*0,4*1,24*0,3*1,1*0,5*1,6*0, & 10*0,4*1,24*0,3*1,1*0,5*1,6*0, & 9*0,5*1,24*0,3*1,1*0,5*1,6*0, & 8*0,2*1,1*0,2*1,25*0,3*1,1*0,5*1,6*0, & 8*0,2*1,1*0,2*1,25*0,3*1,1*0,5*1,6*0, & 8*0,5*1,25*0,3*1,1*0,5*1,6*0, & 7*0,6*1,25*0,9*1,6*0, & 7*0,4*1,1*0,1*1,26*0,8*1,6*0, & 7*0,5*1,26*0,9*1,6*0, & 7*0,4*25,2*1,23*0,11*1,6*0, & 7*0,5*25,2*1,22*0,2*25,8*1,1*25,6*0, & 6*0,1*1,6*25,3*1,19*0,1*1,3*25,6*1,3*25,5*0, & 6*0,1*1,7*25,3*1,18*0,1*1,3*25,5*1,3*25,1*1,5*0, & 5*0,1*1,8*25,3*1,18*0,1*1,4*25,3*1,4*25,1*1,5*0, & 1*0,13*25,5*1,16*0,1*1,11*25,2*1,4*0, & 1*1,14*25,5*1,15*0,1*1,11*25,3*1,3*0, & 1*0,16*25,4*1,14*0,1*1,12*25,3*1,2*0, & 1*0,1*1,15*25,4*1,14*0,1*1,14*25,2*1,1*0, & 1*0,1*1,15*25,2*1,14*0,1*1,1*0,1*1,16*25,1*1, & 1*0,1*1,16*25,1*1,13*0,2*1,1*0,1*1,16*25,1*1, & 1*0,1*1,17*25,1*1,1*0,1*1,8*0,4*1,1*0,1*1,14*25,2*1,1*0, & 1*1,18*25,15*1,1*0,1*1,13*25,1*1,3*0, & 1*1,18*25,17*1,9*25,3*1,5*0, & 1*0,2*1,16*25,17*1,8*25,2*1,7*0, & 2*0,4*1,13*25,17*1,7*25,2*1,8*0, & 8*0,4*1,6*25,3*1,13*0,3*1,4*25,3*1,9*0, & 10*0,4*1,3*25,2*1,15*0,9*1,10*0, & 14*0,3*1,19*0,5*1,12*0/ g2-0.72/demo/g2_anim.c0000644000175000017500000000375410513523213013372 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #ifdef DO_X11 #include #endif #ifdef DO_WIN32 #include #endif #define N 300 #define W 400 #define H 400 int main() { int d,dwin,dX11; int x[N]; int y[N]; int c[N]; int i,t; d=g2_open_vd(); /* open virtual device */ printf("Random Walk demo\n"); #ifdef DO_WIN32 printf("Adding win32..\n"); dwin=g2_open_win32(W, H, "simple_animation", 0); g2_attach(d, dwin); #endif #ifdef DO_X11 printf("Adding X11.. (X11 might flicker and not be usable)\n"); dX11=g2_open_X11(W, H); g2_attach(d, dX11); #endif g2_set_auto_flush(d,0); for (i=0;i #include #include #include #include int main() { int d1, d2; void *handles[G2_PD_HANDLES_SIZE]; Display *display; Drawable *drawable; GC *gc; d1=g2_open_X11(100, 100); g2_line(d1, 10, 10, 90, 90); g2_get_pd_handles(d1, handles); display = handles[0]; drawable = handles[5]; gc = handles[4]; printf("%p %p %p\n", display, drawable, gc); XDrawString(display, *drawable, *gc, 10,10, "OK", 2); g2_flush(d1); d2=g2_open_PS("handles.ps", g2_A4, g2_PS_port); g2_get_pd_handles(d2, handles); printf("%p %p %p\n", handles[0], handles[1], handles[2]); getchar(); return 0; } g2-0.72/demo/simple_gd.c0000644000175000017500000000244510277435306014031 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include int main() { int d; #ifdef DO_GIF d=g2_open_gd("simple.gif", 100, 100, g2_gd_gif); g2_line(d, 10, 10, 90, 90); g2_close(d); #endif d=g2_open_gd("simple.png", 100, 100, g2_gd_png); g2_line(d, 10, 10, 90, 90); g2_close(d); return 0; } g2-0.72/demo/g2_test.c0000644000175000017500000001441610033640513013422 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #ifdef DO_PS #include #endif #ifdef DO_FIG #include #endif #ifdef DO_X11 #include #endif #ifdef DO_GD #include #endif #ifdef DO_WIN32 #include #endif #ifdef DO_WMF32 #include #endif #define maxdev 10 int main() { int i, j; int d, dev[maxdev]={-1, -1, -1, -1, -1,-1, -1, -1, -1, -1}; int ndev=0; char str[256]; double pts[10]; double y; #include "penguin.c" printf("\nG2_VERSION %s\n", G2_VERSION); d=g2_open_vd(); /* open virtual device */ printf("Adding.."); #ifdef DO_PS printf("..PS"); dev[ndev]=g2_open_PS("g2_test.ps", g2_A4, g2_PS_land); g2_attach(d, dev[ndev]); ndev++; printf("..EPSF"); dev[ndev]=g2_open_EPSF("g2_test.eps"); g2_attach(d, dev[ndev]); ndev++; printf("..EPSF_CLIP"); dev[ndev]=g2_open_EPSF_CLIP("g2_test_clip.eps",200,200); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_FIG printf("..FIG"); dev[ndev]=g2_open_FIG("g2_test.fig"); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_X11 printf("..X11"); dev[ndev]=g2_open_X11(775, 575); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_GD printf("..GD(png)"); dev[ndev]=g2_open_gd("g2_test.png", 775, 575,g2_gd_png); g2_attach(d, dev[ndev]); ndev++; printf("..GD(jpeg)"); dev[ndev]=g2_open_gd("g2_test.jpg", 775, 575,g2_gd_jpeg); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_WIN32 printf("..WIN32"); dev[ndev]=g2_open_win32(775, 575,"g2_test",0); g2_attach(d, dev[ndev]); ndev++; #endif #ifdef DO_WMF32 printf("..WMF32"); dev[ndev]=g2_open_win32(775, 575,"g2_test.emf",1); g2_attach(d, dev[ndev]); ndev++; #endif g2_set_auto_flush(d,0); printf("\n"); /* g2_set_coordinate_system(d, 775, 575, -0.75, -1.0); */ for(i=0;i<27;i++) { g2_pen(d, i); g2_filled_circle(d, i*20+10, 10, 10); g2_pen(d, 1); g2_circle(d, i*20+10, 10, 10); sprintf(str, "%d", i); g2_string(d, i*20+7, 21, str); } for(j=0;j=0) for(i=0;i<=64;i++) { g2_move(dev[j], 2*i+575, 5); g2_pen(dev[j], g2_ink(dev[j], i/64., 0, 0)); g2_line_r(dev[j], 0, 20); g2_pen(dev[j], g2_ink(dev[j], 0, i/64., 0)); g2_line_r(dev[j], 10, 20); g2_pen(dev[j], g2_ink(dev[j], 0, 0, i/64.)); g2_line_r(dev[j], -10, 20); } g2_pen(d, 1); g2_line(d, 200, 50, 350, 50); g2_line(d, 200, 48, 350, 48); g2_line(d, 200, 46, 350, 46); g2_line(d, 200, 46, 200, 75); g2_line(d, 198, 46, 198, 75); g2_line(d, 196, 46, 196, 75); g2_string(d, 200, 50, "012abcABC#())(\\-+~*!$%&"); g2_pen(d, 1); for(i=1;i<25;i++) { g2_line(d, 15, i*20+50, 15, i*20+50+i); g2_set_font_size(d, 12); sprintf(str, "%2d:", i); g2_string(d, 20, i*20+50, str); g2_set_font_size(d, i); g2_string(d, 40, i*20+50, "hello, world"); } g2_plot(d, 150, 70); g2_line(d, 147, 68, 153, 68); y=100; g2_line(d, 120, y, 170, y+50); g2_triangle(d, 150, y, 250, y, 200, y+50); g2_rectangle(d, 300, y, 400, y+50); g2_circle(d, 450, y+25, 25); g2_ellipse(d, 550, y+25, 45, 25); g2_arc(d, 650, y+25, 25, 45, 90, 360); pts[0]=4; pts[1]=4; g2_set_dash(d, 2, pts); g2_line(d, 120+5, y, 170+5, y+50); g2_triangle(d, 150+10, y+4, 250-10, y+4, 200, y+50-5); g2_rectangle(d, 305, y+5, 395, y+50-5); g2_circle(d, 450, y+25, 20); g2_ellipse(d, 550, y+25, 40, 20); g2_arc(d, 650, y+25, 20, 40, 90, 360); g2_set_dash(d, 0, NULL); y=200; g2_filled_triangle(d, 150, y, 250, y, 200, y+50); g2_filled_rectangle(d, 300, y, 400, y+50); g2_filled_circle(d, 450, y+25, 25); g2_filled_ellipse(d, 550, y+25, 45, 25); g2_filled_arc(d, 650, y+25, 25, 45, 90, 360); y=300; pts[0]=150; pts[1]=y; pts[2]=175; pts[3]=y+100; pts[4]=200; pts[5]=y; pts[6]=225; pts[7]=y+100; pts[8]=250; pts[9]=y; g2_poly_line(d, 5, pts); g2_pen(d, 19); g2_b_spline(d, 5, pts, 20); g2_pen(d, 1); pts[0]=300; pts[1]=y; pts[2]=350; pts[3]=y; pts[4]=375; pts[5]=y+50; pts[6]=325; pts[7]=y+90; pts[8]=275; pts[9]=y+50; g2_polygon(d, 5, pts); pts[0]=450; pts[1]=y; pts[2]=500; pts[3]=y; pts[4]=525; pts[5]=y+50; pts[6]=475; pts[7]=y+90; pts[8]=425; pts[9]=y+50; g2_filled_polygon(d, 5, pts); g2_image(d, 55., 50., 53, 62, penguin); g2_image(d, 75., 130., 53, 62, penguin); g2_pen(d, 1); g2_line(d, 225, 448, 200+19*25, 448); for(i=1;i<20;i++) { g2_pen(d,i+1); g2_set_line_width(d, i); g2_move(d, 200+i*25, 450); g2_line_to(d, 200+i*25, 550); } g2_pen(d,1); g2_set_line_width(d, 5); for(i=1;i<10;i++) { pts[0]=1*i; pts[1]=2*i; pts[2]=3*i; g2_set_dash(d, 3, pts); g2_line(d, 550, 300+i*8, 750, 350+i*8); } g2_set_dash(d, 0, NULL); g2_set_line_width(d, 4); g2_arc(d, 740, 180, 25, 100, -45+15, -45-15); g2_arc(d, 740, 180, 20, 95, -45-15, -45+15); g2_filled_arc(d, 740, 180, 12, 50, -45+15, -45-15); g2_set_line_width(d, 1); g2_circle(d, 400, 400, 20); g2_ellipse(d, 400, 400, 25, 25); g2_arc(d, 400, 400, 30, 30, 0, 360); g2_flush(d); printf("\nDone.\n[Enter]\n"); getchar(); g2_close(d); return 0; } g2-0.72/demo/demo_cpp.cpp0000644000175000017500000000124210041302601014162 0ustar ljuboljubo#include #include #include #include /* A very simple example to demonstrate g2 in a C++ environment */ class Circle { public: Circle(int d, double x, double y, double r) : _d(d), _x(x), _y(y), _r(r) { g2_circle(d, x, y, r); g2_flush(d); } void Fill() { g2_filled_circle(_d, _x, _y, _r); g2_flush(_d); } private: int _d; double _x, _y, _r; }; int main(int argc, char *argv[]) { int d; d=g2_open_PS("demo_cpp.ps", g2_A4, g2_PS_port); Circle c(d, 150, 150, 25); c.Fill(); Circle c2(d, 150, 175, 25); g2_close(d); std::cout << "demo_cpp.ps generated\n"; return 0; } g2-0.72/demo/simple_FIG.c0000644000175000017500000000222410033113716014023 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include int main() { int d; d=g2_open_FIG("simple.fig"); g2_line(d, 10, 10, 90, 90); g2_close(d); return 0; } g2-0.72/demo/Makefile0000644000175000017500000000623010515221430013340 0ustar ljuboljubo# # # Makefile for g2_library (demo) # # CC = gcc CXX = g++ ##Linux F77 = g77 CPP = /lib/cpp ##OSF #F77 = f77 #F77_FLAGS=-i8 ##AIX #F77 = xlf #CPP = /usr/ccs/lib/cpp ##IRIX #F77 = f77 -n32 #CPP = /lib/cpp -P -DFORTRAN CFLAGS = -I../src -I../src/X11 -I../src/PS -I../src/Win32 -I../src/GD -I../src/FIG -O2 -I/usr/local/include -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 CXXFLAGS = -I../src -I../src/X11 -I../src/PS -I../src/Win32 -I../src/GD/ -I../src/FIG -O2 -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 LIBS = -L.. -lg2 -L/usr/X11R6/lib -L/usr/local/lib -lm -lX11 -lXext -lgd DEMO_PS = simple_PS DEMO_FIG = simple_FIG DEMO_X11 = simple_X11 pointer handles g2_anim DEMO_GD = simple_gd #DEMO_WIN32 = simple_win32 g2_anim DEMO = g2_test g2_arc g2_splines_demo demo_cpp $(DEMO_PS) $(DEMO_FIG) $(DEMO_X11) $(DEMO_GD) $(DEMO_WIN32) all: $(DEMO) demo: $(DEMO) g2_test: g2_test.c $(CC) $(CFLAGS) g2_test.c $(LIBS) $(LDFLAGS) -o $@ g2_arc: g2_arc.c $(CC) $(CFLAGS) g2_arc.c $(LIBS) $(LDFLAGS) -o $@ g2_splines_demo: g2_splines_demo.c $(CC) $(CFLAGS) g2_splines_demo.c $(LIBS) $(LDFLAGS) -o $@ g2_anim: g2_anim.c $(CC) $(CFLAGS) g2_anim.c $(LIBS) $(LDFLAGS) -o $@ simple_PS: simple_PS.c $(CC) $(CFLAGS) simple_PS.c $(LIBS) $(LDFLAGS) -o $@ simple_FIG: simple_FIG.c $(CC) $(CFLAGS) simple_FIG.c $(LIBS) $(LDFLAGS) -o $@ simple_X11: simple_X11.c $(CC) $(CFLAGS) simple_X11.c $(LIBS) $(LDFLAGS) -o $@ simple_win32: simple_win32.c $(CC) $(CFLAGS) simple_win32.c $(LIBS) $(LDFLAGS) -lkernel32 -lgdi32 -luser32 -lcomdlg32 -o $@ pointer: pointer.c $(CC) $(CFLAGS) pointer.c $(LIBS) $(LDFLAGS) -o $@ handles: handles.c $(CC) $(CFLAGS) handles.c $(LIBS) $(LDFLAGS) -o $@ simple_gd: simple_gd.c $(CC) $(CFLAGS) simple_gd.c $(LIBS) $(LDFLAGS) -o $@ demo_cpp: demo_cpp.cpp $(CXX) $(CXXFLAGS) demo_cpp.cpp $(LIBS) $(LDFLAGS) -o $@ demo_f: demo_f.f $(F77) $(F77_FLAGS) demo_f.f $(LIBS) $(LDFLAGS) -o $@ g2testf: g2_test.f $(CPP) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -E g2_test.f > g2testf.f $(F77) g2testf.f $(LDFLAGS) -o g2testf clean: -rm $(DEMO) g2testf g2testf.f demo_f *~ core *.ps *.fig *.eps *.png *.jpg *.fig.bak g2-0.72/demo/demo_f.f0000644000175000017500000000341507267122246013321 0ustar ljuboljuboc c Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner c This file is part of the g2 library c c This library is free software; you can redistribute it and/or c modify it under the terms of the GNU Lesser General Public c License as published by the Free Software Foundation; either c version 2.1 of the License, or (at your option) any later version. c c This library is distributed in the hope that it will be useful, c but WITHOUT ANY WARRANTY; without even the implied warranty of c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU c Lesser General Public License for more details. c c You should have received a copy of the GNU Lesser General Public c License along with this library; if not, write to the Free Software c Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA c real demo_f real a, b real d, d1, d2 real color d=g2_open_vd() write (6,*) d d1=g2_open_X11(100.0, 100.0) write (6,*) d1 d2=g2_open_PS('demo_f.ps', 4.0, 1.0) write (6,*) d2 call g2_attach(d, d1) call g2_attach(d, d2) call g2_plot(d, 50.0, 50.0) call g2_arc(d, 50.0, 50.0, 30.0, 20.0, 45.0, 180.0) color=g2_ink(d1, 1.0, 0.0, 0.0) call g2_pen(d1, color) write (6,*) color call g2_string(d1, 15.0, 75.0, 'TEST (Window)') color=g2_ink(d2, 0.0, 1.0, 0.0) call g2_pen(d2, color) write (6,*) color call g2_string(d2, 15.0, 75.0, 'TEST (File)') call g2_pen(d, 1.0) call g2_circle(d, 20.0, 20.0, 10.0) call g2_string(d, 20.0, 20.0, 'All devices!') call g2_flush(d) call g2_close(d2) read (*,*) a stop end g2-0.72/demo/pointer.c0000644000175000017500000000265707267122246013554 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include int main() { int d; double x, y; unsigned int button; d=g2_open_X11(100, 50); g2_set_coordinate_system(d, 50, 25, 50., 25.); g2_line(d, -1, 0, 1, 0); g2_line(d, 0, -1, 0, 1); printf("Press to start\n"); getchar(); for(;;) { g2_query_pointer(d, &x, &y, &button); printf("%f %f 0x%04x\n", x, y, button); } return 0; } g2-0.72/demo/simple_PS.c0000644000175000017500000000224407267122246013757 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include int main() { int d; d=g2_open_PS("simple.ps", g2_A4, g2_PS_port); g2_line(d, 10, 10, 90, 90); g2_close(d); return 0; } g2-0.72/demo/xlink.opt0000644000175000017500000000003506650611563013565 0ustar ljuboljubosys$share:decw$xlibshr/share g2-0.72/g2res.dsp0000644000175000017500000000717110040317707012521 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="g2res" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=g2res - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "g2res.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "g2res.mak" CFG="g2res - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "g2res - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "g2res - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "g2res - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "g2res__0" # PROP BASE Intermediate_Dir "g2res__0" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 !ELSEIF "$(CFG)" == "g2res - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "g2res__1" # PROP BASE Intermediate_Dir "g2res__1" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept !ENDIF # Begin Target # Name "g2res - Win32 Release" # Name "g2res - Win32 Debug" # Begin Source File SOURCE=.\src\Win32\g2_Win32.ico # End Source File # Begin Source File SOURCE=.\src\Win32\g2_win32.rc # End Source File # Begin Source File SOURCE=.\src\Win32\g2res.c # End Source File # End Target # End Project g2-0.72/COPYING0000644000175000017500000006347607267122246012045 0ustar ljuboljubo GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 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 Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] 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 Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these 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 other code 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. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. 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, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser 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 combine 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) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) 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. d) 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. e) 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 materials to be 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 with 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 Lesser 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 Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; 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. 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! g2-0.72/Makefile.in0000644000175000017500000000650010515221430013021 0ustar ljuboljubo# # # Makefile for g2 library # # G2_VERSION = 0.72 # # g2 installation directories # LIBDIR = @prefix@/lib INCDIR = @prefix@/include #LIBDIR = $(HOME)/local/lib #INCDIR = $(HOME)/local/include # #------------------------ do not edit ------------------------ # SHELL = /bin/sh CC = @CC@ CFLAGS = -I./src @CFLAGS@ @DEFS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ FIND = @FIND@ MAKEDEPEND = @MAKEDEPEND@ AR = ar ARFLAGS = -cr RANLIB = @RANLIB@ LD = ld LDFLAGS = @LDFLAGS@ BASE_DIR = ./src BASE_SRC = $(BASE_DIR)/g2_device.c $(BASE_DIR)/g2_ui_control.c \ $(BASE_DIR)/g2_util.c $(BASE_DIR)/g2_fif.c \ $(BASE_DIR)/g2_virtual_device.c $(BASE_DIR)/g2_physical_device.c \ $(BASE_DIR)/g2_graphic_pd.c $(BASE_DIR)/g2_control_pd.c \ $(BASE_DIR)/g2_ui_graphic.c $(BASE_DIR)/g2_ui_virtual_device.c \ $(BASE_DIR)/g2_ui_device.c $(BASE_DIR)/g2_splines.c BASE_INS = $(BASE_DIR)/g2.h @DO_PS@PS_DIR = ./src/PS @DO_PS@PS_SRC = $(PS_DIR)/g2_PS.c @DO_PS@PS_INS = $(PS_DIR)/g2_PS.h @DO_FIG@FIG_DIR = ./src/FIG @DO_FIG@FIG_SRC = $(FIG_DIR)/g2_FIG.c @DO_FIG@FIG_INS = $(FIG_DIR)/g2_FIG.h @DO_X11@X11_DIR = ./src/X11 @DO_X11@X11_SRC = $(X11_DIR)/g2_X11.c @DO_X11@X11_INS = $(X11_DIR)/g2_X11.h @DO_WIN32@WIN32_DIR = ./src/WIN32 @DO_WIN32@WIN32_SRC = $(WIN32_DIR)/g2_win32.c $(WIN32_DIR)/g2_win32_thread.c @DO_WIN32@WIN32_INS = $(WIN32_DIR)/g2_win32.h @DO_GD@GD_DIR = ./src/GD @DO_GD@GD_SRC = $(GD_DIR)/g2_gd.c @DO_GD@GD_INS = $(GD_DIR)/g2_gd.h SRC = $(BASE_SRC) $(PS_SRC) $(FIG_SRC) $(X11_SRC) $(WIN32_SRC) $(GD_SRC) OBJ = $(SRC:.c=.o) INS = $(BASE_INS) $(PS_INS) $(FIG_INS) $(X11_INS) $(WIN32_INS) $(GD_INS) # # define some phony targets # .PHONY: all shared clean doc release demo # # major rule # .c.o: $(CC) $(CFLAGS) -c $< -o $@ all: libg2.a test -d ./include || mkdir ./include cp $(INS) ./include/ shared: libg2.@LD_SHARED_EXT@ @echo libg2.a: $(OBJ) $(AR) $(ARFLAGS) libg2.a $(OBJ) test ! -n "$(RANLIB)" || $(RANLIB) $@ libg2.@LD_SHARED_EXT@: $(OBJ) @LD_SHARED@ @LD_SHARED_FLAGS@ -o $@ $(OBJ) @LD_SHARED_OPT@ libg2.so: libg2.@LD_SHARED_EXT@ ln -f -s libg2.@LD_SHARED_EXT@ $@ install: libg2.a test -d $(LIBDIR) || mkdir -p $(LIBDIR) test -d $(INCDIR) || mkdir -p $(INCDIR) $(INSTALL_DATA) libg2.a $(LIBDIR) for IFILE in $(INS); do \ $(INSTALL_DATA) $$IFILE $(INCDIR); \ done release: clean doc cp ./doc/latex/refman.ps ./doc/g2_refman.ps cp ./doc/latex/refman.pdf ./doc/g2_refman.pdf rm -r ./doc/latex doc: (cd ./doc ; doxygen Doxyfile) (cd ./doc/latex ; make ps ; make pdf) clean: -(cd ./demo ; make clean) -(cd ./g2_python ; make clean) -rm -f $(OBJ) -rm -f libg2.a config.cache config.log Makefile.bak config.status -rm -f ./include/*.h -$(FIND) . -name "*~" -exec rm -f {} \; -(cd ./g2_perl ; make clean) -rm -f ./g2_perl/test.ps -rm -f ./g2_perl/test.png -rm -f ./g2_perl/test.jpg -rm -f ./g2_perl/test.fig -rm -f ./g2_perl/Makefile.old -rm -f ./libg2.@LD_SHARED_EXT@ -rm -f libg2.$(G2_VERSION).a -rm -f a.out -rm -fr doc/html/ doc/latex/ doc/g2_refman.ps doc/g2_refman.pdf demo: libg2.a (cd ./demo ; make) depend: $(MAKEDEPEND) -- $(CFLAGS) -- $(SRC) @echo @echo "Run 'make' to build g2 library." @echo # DO NOT DELETE THIS LINE -- make depend depends on it. g2-0.72/g2.dsw0000644000175000017500000000312710040320555012006 0ustar ljuboljuboMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ############################################################################### Project: "g2"=.\g2.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "g2_anim"=.\g2_anim.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name g2 End Project Dependency }}} ############################################################################### Project: "g2demo"=.\g2demo.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name g2 End Project Dependency }}} ############################################################################### Project: "g2dll"=.\g2dll.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "g2res"=.\g2res.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "simple_win32"=.\simple_win32.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name g2 End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### g2-0.72/config.sub0000754000175000017500000007577710513523132012766 0ustar ljuboljubo#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-07-08' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # 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. # 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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) 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) os= basic_machine=$1 ;; -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 ;; -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/'` ;; -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*) 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 \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ms1 \ | msp430 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # 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-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | ms1-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # 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 ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; 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 ;; cr16c) basic_machine=cr16c-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 ;; 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'm not sure what "Sysv32" means. Should this be sysv3.2? 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 ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; 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 ;; mvs) basic_machine=i370-ibm os=-mvs ;; 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 ;; 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 ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; 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) basic_machine=powerpc-unknown ;; ppc-*) 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 ;; 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 ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; 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 ;; 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 ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; 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 ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-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[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) 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. -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* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -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* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -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*) # 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 ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -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 *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) 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 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) 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 ;; -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: g2-0.72/configure0000754000175000017500000056605610515221430012703 0ustar ljuboljubo#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # # Copyright (C) 2003 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 Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; 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 # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # 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'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/g2_device.c" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LD_SHARED LD_SHARED_FLAGS LD_SHARED_OPT LD_SHARED_EXT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA FIND MAKEDEPEND X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS DO_PS DO_FIG DO_X11 DO_XDBE DO_WIN32 DO_GD DO_GIF EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= 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 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -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 | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$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 ;; -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 ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) 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 ;; -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac 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 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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 # 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 its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | 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 if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS # # 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 \`..'] _ACEOF cat <<_ACEOF 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] --datadir=DIR read-only architecture-independent data [PREFIX/share] --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] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _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 Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-x use the X Window System 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 CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style 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 elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright (C) 2003 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 0 fi exec 5>config.log cat >&5 <<_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.59. Invocation command line was $ $0 $@ _ACEOF { 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` hostinfo = `(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=. echo "PATH: $as_dir" done } >&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_sep= 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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >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 # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 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 `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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 PRODUCT=g2 # # check cannonical system name, # and set options for shared libraries (black magic) # ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case "$host" in *-linux*) LD_SHARED='ld' LD_SHARED_FLAGS='-shared -soname libg2.so.0' LD_SHARED_OPT='' LD_SHARED_EXT='so.0.$(G2_VERSION)' cat >>confdefs.h <<\_ACEOF #define LINUX 1 _ACEOF ;; *-aix*) LD_SHARED='ld' LD_SHARED_FLAGS='-bM:SRE -bnoentry -bexpall' LD_SHARED_OPT='$(LDFLAGS) -lc' LD_SHARED_EXT='so' cat >>confdefs.h <<\_ACEOF #define AIX 1 _ACEOF ;; *-osf*) LD_SHARED='ld' LD_SHARED_FLAGS='-shared' LD_SHARED_OPT='$(LDFLAGS) -lc' LD_SHARED_EXT='so' cat >>confdefs.h <<\_ACEOF #define OSF 1 _ACEOF ;; *) LD_SHARED_EXT='so' cat >>confdefs.h <<\_ACEOF #define UNIX 1 _ACEOF ;; esac # # check C compiler, preprocesor, etc. # 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_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" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done 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 echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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 -std1 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 -std1. */ int osf4_cc_array ['\x00' == 0 ? 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 # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 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_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 echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h 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 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi # 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. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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_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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done 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. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_FIND+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$FIND"; then ac_cv_prog_FIND="$FIND" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FIND="find" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_FIND" && ac_cv_prog_FIND=":" fi fi FIND=$ac_cv_prog_FIND if test -n "$FIND"; then echo "$as_me:$LINENO: result: $FIND" >&5 echo "${ECHO_T}$FIND" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "makedepend", so it can be a program name with args. set dummy makedepend; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_MAKEDEPEND+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$MAKEDEPEND"; then ac_cv_prog_MAKEDEPEND="$MAKEDEPEND" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MAKEDEPEND="makedepend" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_MAKEDEPEND" && ac_cv_prog_MAKEDEPEND=":" fi fi MAKEDEPEND=$ac_cv_prog_MAKEDEPEND if test -n "$MAKEDEPEND"; then echo "$as_me:$LINENO: result: $MAKEDEPEND" >&5 echo "${ECHO_T}$MAKEDEPEND" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then have_dl=yes else have_dl=no fi # # Try to locate the X Window System include files and libraries # and add /usr/local to include and lib path and add -lm (for testing) # if test "x$ac_path_x_has_been_run" != xyes; then echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6 ac_path_x_has_been_run=yes # Check whether --with-x or --without-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 if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then # Both variables are already set. have_x=yes else if test "${ac_cv_have_x+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 -fr conftest.dir if mkdir conftest.dir; then cd conftest.dir # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat >Imakefile <<'_ACEOF' acfindx: @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' _ACEOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; 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) ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /lib) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -fr 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/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /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 a specified header file. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # We can compile using X headers with no special include directory. ac_x_includes= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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.$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS=$ac_save_LIBS for ac_dir in `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; do if test -r $ac_dir/libX11.$ac_extension; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then # Didn't find X anywhere. Cache the known absence of X. ac_cv_have_x="have_x=no" else # 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" fi fi fi eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then echo "$as_me:$LINENO: result: $have_x" >&5 echo "${ECHO_T}$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" # It might be that x_includes is empty (headers are found in the # standard search path. Then output the corresponding message ac_out_x_includes=$x_includes test "x$x_includes" = x && ac_out_x_includes="in standard search path" echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 fi fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. cat >>confdefs.h <<\_ACEOF #define X_DISPLAY_MISSING 1 _ACEOF 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 . . . . case `(uname -sr) 2>/dev/null` in "SunOS 5"*) echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_R_nospace=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_R_nospace=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_R_nospace = yes; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_R_space=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_R_space=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_R_space = yes; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 X_LIBS="$X_LIBS -R $x_libraries" else echo "$as_me:$LINENO: result: neither works" >&5 echo "${ECHO_T}neither works" >&6 fi fi LIBS=$ac_xsave_LIBS esac 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char XOpenDisplay (); int main () { XOpenDisplay (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dnet_ntoa (); int main () { dnet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_dnet_ntoa=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 if test $ac_cv_lib_dnet_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dnet_ntoa (); int main () { dnet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dnet_stub_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f 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. echo "$as_me:$LINENO: checking for gethostbyname" >&5 echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gethostbyname to an innocuous variant, in case declares gethostbyname. For example, HP-UX 11i declares gettimeofday. */ #define gethostbyname innocuous_gethostbyname /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gethostbyname /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gethostbyname (); /* 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_gethostbyname) || defined (__stub___gethostbyname) choke me #else char (*f) () = gethostbyname; #endif #ifdef __cplusplus } #endif int main () { return f != gethostbyname; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 if test $ac_cv_func_gethostbyname = no; then echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gethostbyname (); int main () { gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_nsl_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 if test $ac_cv_lib_nsl_gethostbyname = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gethostbyname (); int main () { gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_bsd_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_bsd_gethostbyname=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 if test $ac_cv_lib_bsd_gethostbyname = yes; 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. echo "$as_me:$LINENO: checking for connect" >&5 echo $ECHO_N "checking for connect... $ECHO_C" >&6 if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define connect to an innocuous variant, in case declares connect. For example, HP-UX 11i declares gettimeofday. */ #define connect innocuous_connect /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef connect /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char connect (); /* 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_connect) || defined (__stub___connect) choke me #else char (*f) () = connect; #endif #ifdef __cplusplus } #endif int main () { return f != connect; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_connect=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 echo "${ECHO_T}$ac_cv_func_connect" >&6 if test $ac_cv_func_connect = no; then echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 if test "${ac_cv_lib_socket_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char connect (); int main () { connect (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_socket_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_connect=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 if test $ac_cv_lib_socket_connect = yes; then X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. echo "$as_me:$LINENO: checking for remove" >&5 echo $ECHO_N "checking for remove... $ECHO_C" >&6 if test "${ac_cv_func_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define remove to an innocuous variant, in case declares remove. For example, HP-UX 11i declares gettimeofday. */ #define remove innocuous_remove /* System header to define __stub macros and hopefully few prototypes, which can conflict with char remove (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef remove /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char remove (); /* 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_remove) || defined (__stub___remove) choke me #else char (*f) () = remove; #endif #ifdef __cplusplus } #endif int main () { return f != remove; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_remove=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 echo "${ECHO_T}$ac_cv_func_remove" >&6 if test $ac_cv_func_remove = no; then echo "$as_me:$LINENO: checking for remove in -lposix" >&5 echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 if test "${ac_cv_lib_posix_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char remove (); int main () { remove (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_posix_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_posix_remove=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 if test $ac_cv_lib_posix_remove = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo "$as_me:$LINENO: checking for shmat" >&5 echo $ECHO_N "checking for shmat... $ECHO_C" >&6 if test "${ac_cv_func_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shmat to an innocuous variant, in case declares shmat. For example, HP-UX 11i declares gettimeofday. */ #define shmat innocuous_shmat /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shmat (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shmat /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shmat (); /* 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_shmat) || defined (__stub___shmat) choke me #else char (*f) () = shmat; #endif #ifdef __cplusplus } #endif int main () { return f != shmat; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shmat=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 echo "${ECHO_T}$ac_cv_func_shmat" >&6 if test $ac_cv_func_shmat = no; then echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 if test "${ac_cv_lib_ipc_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shmat (); int main () { shmat (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_ipc_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ipc_shmat=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 if test $ac_cv_lib_ipc_shmat = yes; 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 echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char IceConnectionNumber (); int main () { IceConnectionNumber (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_ICE_IceConnectionNumber=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi CFLAGS="$CFLAGS $X_CFLAGS -I/usr/local/include" LIBS="$X_LIBS -L/usr/local/lib" DO_PS='#' DO_FIG='#' DO_X11='#' DO_XDBE='#' DO_GD='#' DO_GIF='#' DO_WIN32='#' # # check supported devices # echo "$as_me:$LINENO: checking for main in -lm" >&5 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6 if test "${ac_cv_lib_m_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_m_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 echo "${ECHO_T}$ac_cv_lib_m_main" >&6 if test $ac_cv_lib_m_main = yes; then DO_PS='';DO_FIG='';LIBS="$LIBS -lm";cat >>confdefs.h <<\_ACEOF #define DO_PS 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define DO_FIG 1 _ACEOF else break fi echo "$as_me:$LINENO: checking for main in -lX11" >&5 echo $ECHO_N "checking for main in -lX11... $ECHO_C" >&6 if test "${ac_cv_lib_X11_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_X11_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_X11_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_X11_main" >&5 echo "${ECHO_T}$ac_cv_lib_X11_main" >&6 if test $ac_cv_lib_X11_main = yes; then DO_X11='';LIBS="$LIBS -lX11";cat >>confdefs.h <<\_ACEOF #define DO_X11 1 _ACEOF fi echo "$as_me:$LINENO: checking for main in -lXext" >&5 echo $ECHO_N "checking for main in -lXext... $ECHO_C" >&6 if test "${ac_cv_lib_Xext_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_Xext_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xext_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_main" >&5 echo "${ECHO_T}$ac_cv_lib_Xext_main" >&6 if test $ac_cv_lib_Xext_main = yes; then DO_XDBE='';LIBS="$LIBS -lXext";cat >>confdefs.h <<\_ACEOF #define DO_XDBE 1 _ACEOF fi echo "$as_me:$LINENO: checking for main in -lgd" >&5 echo $ECHO_N "checking for main in -lgd... $ECHO_C" >&6 if test "${ac_cv_lib_gd_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gd_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gd_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_gd_main" >&5 echo "${ECHO_T}$ac_cv_lib_gd_main" >&6 if test $ac_cv_lib_gd_main = yes; then have_gd=yes else have_gd=no fi if test "$have_gd" = yes then LIBS="$LIBS -lgd" echo "$as_me:$LINENO: checking for gdImagePng" >&5 echo $ECHO_N "checking for gdImagePng... $ECHO_C" >&6 if test "${ac_cv_func_gdImagePng+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gdImagePng to an innocuous variant, in case declares gdImagePng. For example, HP-UX 11i declares gettimeofday. */ #define gdImagePng innocuous_gdImagePng /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gdImagePng (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gdImagePng /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gdImagePng (); /* 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_gdImagePng) || defined (__stub___gdImagePng) choke me #else char (*f) () = gdImagePng; #endif #ifdef __cplusplus } #endif int main () { return f != gdImagePng; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gdImagePng=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gdImagePng=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gdImagePng" >&5 echo "${ECHO_T}$ac_cv_func_gdImagePng" >&6 if test $ac_cv_func_gdImagePng = yes; then DO_GD='';cat >>confdefs.h <<\_ACEOF #define DO_GD 1 _ACEOF fi echo "$as_me:$LINENO: checking for gdImageGif" >&5 echo $ECHO_N "checking for gdImageGif... $ECHO_C" >&6 if test "${ac_cv_func_gdImageGif+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gdImageGif to an innocuous variant, in case declares gdImageGif. For example, HP-UX 11i declares gettimeofday. */ #define gdImageGif innocuous_gdImageGif /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gdImageGif (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gdImageGif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gdImageGif (); /* 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_gdImageGif) || defined (__stub___gdImageGif) choke me #else char (*f) () = gdImageGif; #endif #ifdef __cplusplus } #endif int main () { return f != gdImageGif; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gdImageGif=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gdImageGif=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gdImageGif" >&5 echo "${ECHO_T}$ac_cv_func_gdImageGif" >&6 if test $ac_cv_func_gdImageGif = yes; then DO_GIF='';cat >>confdefs.h <<\_ACEOF #define DO_GIF 1 _ACEOF fi fi # # handling cygwin environment (and gd for cygwin == bgd) # case $host_os in *cygwin* ) CYGWIN=yes;; * ) CYGWIN=no;; esac if test "$CYGWIN" = yes then LIBS="$LIBS -L/lib/w32api" echo "$as_me:$LINENO: checking for main in -lgdi32" >&5 echo $ECHO_N "checking for main in -lgdi32... $ECHO_C" >&6 if test "${ac_cv_lib_gdi32_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgdi32 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gdi32_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gdi32_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_gdi32_main" >&5 echo "${ECHO_T}$ac_cv_lib_gdi32_main" >&6 if test $ac_cv_lib_gdi32_main = yes; then DO_WIN32='';LIBS="$LIBS -lgdi32";cat >>confdefs.h <<\_ACEOF #define DO_WIN32 1 _ACEOF fi # AC_CHECK_LIB(bgd, main, have_bgd=yes, have_bgd=no) # if test "$have_bgd" = yes # then # LIBS="$LIBS -lbgd" # AC_CHECK_FUNC(gdImagePng, DO_GD='';AC_DEFINE(DO_GD)) # fi fi # # Declare variables which we want substituted in the Makefile.in's # echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #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)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF 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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in limits.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # # finally create makefiles using Makefile.in # echo ac_config_files="$ac_config_files Makefile demo/Makefile g2_perl/Makefile.PL g2_python/Makefile" 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, don't put newlines in cache variables' values. # 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. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *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 \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" 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}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; 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 # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # 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'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet 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 Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; 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 if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "demo/Makefile" ) CONFIG_FILES="$CONFIG_FILES demo/Makefile" ;; "g2_perl/Makefile.PL" ) CONFIG_FILES="$CONFIG_FILES g2_perl/Makefile.PL" ;; "g2_python/Makefile" ) CONFIG_FILES="$CONFIG_FILES g2_python/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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 fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@LD_SHARED@,$LD_SHARED,;t t s,@LD_SHARED_FLAGS@,$LD_SHARED_FLAGS,;t t s,@LD_SHARED_OPT@,$LD_SHARED_OPT,;t t s,@LD_SHARED_EXT@,$LD_SHARED_EXT,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@FIND@,$FIND,;t t s,@MAKEDEPEND@,$MAKEDEPEND,;t t s,@X_CFLAGS@,$X_CFLAGS,;t t s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t s,@X_LIBS@,$X_LIBS,;t t s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t s,@DO_PS@,$DO_PS,;t t s,@DO_FIG@,$DO_FIG,;t t s,@DO_X11@,$DO_X11,;t t s,@DO_XDBE@,$DO_XDBE,;t t s,@DO_WIN32@,$DO_WIN32,;t t s,@DO_GD@,$DO_GD,;t t s,@DO_GIF@,$DO_GIF,;t t s,@EGREP@,$EGREP,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac # 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. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi echo echo "Supported devices:" if test "$DO_PS" != "#"; then echo " PostScript"; fi if test "$DO_FIG" != "#"; then echo " FIG"; fi if test "$DO_X11" != "#"; then echo " X11"; fi if test "$DO_XDBE" != "#"; then echo " Xdbe"; fi if test "$DO_WIN32" != "#"; then echo " Win32"; fi if test "$DO_GD" != "#"; then echo " GD"; fi if test "$DO_GIF" != "#"; then echo " GD (GIF)"; fi echo echo "Unsupported devices:" if test "$DO_PS" = "#"; then echo " PostScript"; fi if test "$DO_FIG" = "#"; then echo " FIG"; fi if test "$DO_X11" = "#"; then echo " X11"; fi if test "$DO_XDBE" = "#"; then echo " Xdbe"; fi if test "$DO_WIN32" = "#"; then echo " Win32"; fi if test "$DO_GD" = "#"; then echo " GD"; fi if test "$DO_GIF" = "#"; then echo " GD (GIF)"; fi echo echo "Run 'make depend' to create dependencies." echo g2-0.72/CHANGES0000644000175000017500000000742710515221430011760 0ustar ljuboljubo0.72 (2006-10-17) ================= - fixed Python module build process 0.71 (2006-10-12) ================= - Python support - GIF support returned (patent has expired) - fixed problem with configuration script (e.g. LIBS were not handled properly) - g2_anim demo now supports X11 too (although it does not seem to work well on X11) - various fixes 0.70 ==== - added support for access to the physical devices low level handles - added animation demo for Win32 - improved cygwin compatibility - improved spline implementation - improved pixel compatibility between X11 and GD - fixed X11 window position problem occured with some window managers - fixed arc and filled arc functions - fixed memory bug (thanks to Kurihara Satoshi) - fixed problem with black bar if resource DLL was not compiled - fixed problem with flickering and background behind text - bug fix for background color in g2_win32_SetBackground 0.62 ==== - PS in place of X11 for demo_cpp 0.61 ==== - ANSI C streamlining 0.60 ==== - added FIG device - added win32 mouse support - added check for dashed lines to g2_test - bugfixes 0.51 ==== - g2_perl improvements (added GD device, added splines, removed GIF, retested, added simple README) - added configurable logging - added some new configuration parameters and slightly changed configuration naming convention (g2_config.h) - added doxygen comments for automatic docu generation - general documentation update 0.50 ==== - removed GIF code - improved fortran port 0.49a ===== - number of small fixes - number of changes :) 0.42 ==== -license change to LGPL 0.41b ===== -added new Tijs Michels spline implementation -small fixes in spline package -added g2_spline_demo.c -changed LINKDLL into G2L in g2.h -removed some non ansi parts (e.g. // comments) -added query pointer for X11 (mouse) 0.41a ===== -modified header files for usage with c++ -modified header files for building Win32 DLL -added DLL version to Win32 workspace -added Tijs Michels spline implementation -small fixes in Makefile.in 0.40 ==== - added perl support - g2_draw_string replaced with g2_string - added g2_image function - added g2_control_pd.* files - g2_device_exist moved to user space (perl) - added g2_set_line_width support in GIF device - added prefix to Makefile.in - updated descrip.mms 0.30 (23.10.1998) ================ - finished Win32 implementation - fixed bug in virtual device section - minor changes in g2_X11.c (include string.h) - finished VMS port (descrip.mms files) 0.23 (09.07.1998) ================= - finished Fortran interface (tested on Linux and DU) - added arc and filled_arc emulation - minor bug fix in g2_ui_control.c (thanks to E.M. (Mark) Palandri) - finished GIF interface - added new demo files - some bug fixes 0.22 (03.06.1998) ================= - bugfix in g2_device.c - minor changes 0.21 (03.06.1998) ================= - added g2_ld (last device) concept - minor changes in make procedures - back to the normal 'numbering' :-) - added (very simple) demo0.c 0.20a (02.06.1998) ================== - added configure script - changed file/make structure of g2 project - changed version numbering (a-alpha, b-beta etc.) 0.11 (30.04.1998) ================= - fixed bug in Makefile - fixed bug with r rescaling (circle, ellipse and arc) in g2_graphic_pd.c - small fix in g2_X11 - added g2_us2pds_xxxx in g2_util.c - minor changes in makefile.i386 and makefile.alpha 0.10 (24.04.1998) ================= - major kernel rewrite - small fixes in X11 part - removed funix: g2_AllocateBasicColors - added Fortran interface (alpha) 0.02 (31.03.1998) ================= - new funix: g2_Save - added contrib directory 0.01 (19.03.1998) ================= - created CHANGES file :-) - some small fixes - added g2_attach_X11X and changed g2_attach_X11 to be a wrapper to the new function - added PostScript interface g2-0.72/TODO0000644000175000017500000000031610020475042011444 0ustar ljuboljubo - native g2_image support - gd: setlinedash - finish xfig support - test (and add) Fortran interface on more platforms - new devices (e.g. PNG, JPG, etc.) - documentation for developement of new devices g2-0.72/config.guess0000754000175000017500000012475310513523132013310 0ustar ljuboljubo#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-08-03' # 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 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. 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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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 -q "$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 # 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 tupples: *-*-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 ;; *) 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 __ELF__ >/dev/null 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 ;; *: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 ;; macppc:MirBSD:*:*) echo powerppc-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'` exit ;; 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 ;; 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:SunOS:5.*:*) echo i386-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:*:[45]) 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 __LP64__ >/dev/null 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:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-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-gnu`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/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #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-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #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-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu 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 ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${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-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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.0*:*) 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 i386. echo i386-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; } ;; 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.0*:*) 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 ;; 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 ;; 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 case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac 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 ;; 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 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 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: g2-0.72/descrip.mms0000644000175000017500000000503707377041541013146 0ustar ljuboljubo! ! VMS descrip.mms for g2 ! GD_INCLUDE = [.-.-.GD-1_8_4] .IFDEF debug CC_FLAGS = /noopt/debug/nolist/warnings/include_directory=("./src",$(GD_INCLUDE)) \ /define=(DO_PS, DO_X11, DO_GD) .ELSE CC_FLAGS = /nolist/warnings/include_directory=("./src",$(GD_INCLUDE)) \ /define=(DO_PS, DO_X11, DO_GD) .ENDIF ! ! Object files ! OBJ = [.src]g2_device.obj, [.src]g2_fif.obj, [.src]g2_graphic_pd.obj, \ [.src]g2_physical_device.obj, [.src]g2_ui_control.obj, \ [.src]g2_ui_device.obj, [.src]g2_ui_graphic.obj, \ [.src]g2_ui_virtual_device.obj, [.src]g2_util.obj, \ [.src]g2_virtual_device.obj, [.src]g2_control_pd.obj, \ [.src]g2_splines.obj OBJ_X11 = [.src.X11]g2_X11.obj OBJ_PS = [.src.PS]g2_PS.obj OBJ_GD = [.src.GD]g2_GD.obj HEADERS = [.src]g2.h, [.src]g2_config.h, [.src]g2_device.h, \ [.src]g2_funix.h, [.src]g2_graphic_pd.h, \ [.src]g2_physical_device.h, [.src]g2_util.h, \ [.src]g2_virtual_device.h, [.src]g2_control_pd.h HEADERS_X11 = [.src.X11]g2_X11.h, [.src.X11]g2_X11_P.h, \ [.src.X11]g2_X11_funix.h HEADERS_PS = [.src.PS]g2_PS.h, [.src.PS]g2_PS_P.h, \ [.src.PS]g2_PS_definitions.h, [.src.PS]g2_PS_funix.h HEADERS_GD = [.src.GD]g2_GD.h, [.src.GD]g2_GD_P.h, [.src.GD]g2_GD_funix.h ! ! Rules ! .c.obj : ; cc $(CC_FLAGS)/obj=$(mms$target) $(mms$source) all : g2.olb @ write sys$output "Done." g2.olb : $(OBJ) $(OBJ_X11) $(OBJ_PS) $(OBJ_GD) library/create g2.olb $(OBJ), $(OBJ_X11), $(OBJ_PS), $(OBJ_GD) clean : delete [...]*.exe;* , [...]*.obj;* , [...]*.olb;* ! ! Dependencies ! [.src]g2_device.obj : [.src]g2_device.c $(HEADERS) [.src]g2_fif.obj : [.src]g2_fif.c $(HEADERS) [.src]g2_graphic_pd.obj : [.src]g2_graphic_pd.c $(HEADERS) [.src]g2_physical_device.obj : [.src]g2_physical_device.c $(HEADERS) [.src]g2_ui_control.obj : [.src]g2_ui_control.c $(HEADERS) [.src]g2_ui_device.obj : [.src]g2_ui_device.c $(HEADERS) [.src]g2_ui_graphic.obj : [.src]g2_ui_graphic.c $(HEADERS) [.src]g2_ui_virtual_device.obj : [.src]g2_ui_virtual_device.c $(HEADERS) [.src]g2_util.obj : [.src]g2_util.c $(HEADERS) [.src]g2_virtual_device.obj : [.src]g2_virtual_device.c $(HEADERS) [.src]g2_splines.obj : [.src]g2_splines.c $(HEADERS) [.X11]g2_X11.obj : [.src.X11]g2_X11.c $(HEADERS) $(HEADERS_X11) [.PS]g2_PS.obj : [.src.PS]g2_PS.c $(HEADERS) $(HEADERS_PS) [.GD]g2_GD.obj : [.src.GD]g2_GD.c $(HEADERS) $(HEADERS_GD) g2-0.72/doc/0000755000175000017500000000000010515227333011530 5ustar ljuboljubog2-0.72/doc/refman.pdf0000644000175000017500000101615610515227317013507 0ustar ljuboljubo%PDF-1.2 %Çì¢ 5 0 obj <> stream xœMÍjÃ0„ïz Óƒ7«KÚKKN¥ÔèRG1”Ú%!…äí+­å¸#˜Ï|Ú³DPË©w? ”ûü â,Od½úQ>G±í|1kObþ¥QR´ÒR 2Žb3è§ø%T¥¨Í¦x›.Ò%M}*#§Mðuôv˜Š¨´«ÿ÷ð]Äm§ñQÙ´‚ñ$çhb#‚¿gá¤E0ËpŸ¦t9\Ó±8ZÎS >„st•îŒÛˆ\•^~X³`Vív“qÄ ,¸™Ùþc&*ÌyM¹Ë¡fkdž-ïåÅ( yªjïý•ED!,5~5.ÕZí´ßÙÀP%7,±‘™^£øÈçÇ•mˆendstream endobj 6 0 obj 273 endobj 58 0 obj <> stream xœíœ[oÛ6Çßõ)ôè>„ïäk×-Ȱ Yãa†>²âjð­–Ü]>ýHŠ´¨KÓÀÐVÉ%ŒÀÈ!EýCê§sxt”q`œèýζQߪŸuô!‚¦%¶_Ù6~½Œ¾yËLo/Ÿ¢ú˜ ¤”,f„®š¶ÑâÛýîÕòˆP€©$ªÛr-ªÜ1Jꌥ¶©ùyà‘Á…Œ„$ÈôƒºtG­Qý+@ø<Ò}Z˜ñ‘¼9éƒ6©q°Δ®s£ƒ¨ŽRZ#¬epO†:µ_Ħ¯»Ó!}(²ÇþXdù®Ìí©`¶á§}¥šŒ]€Khí Ÿd²mR£²‹z]|àÿß+ˆ˜”ˆ ¥¢ .¹!FÜ!õ‰¹3¤ D’ˆÚöû¢:î_Ý@)©¢~±:eU¡î"ï–?DDuüOá¹þÕ "f¸hŸFŒÄξà>b·yU»µq> Цá±JU¾ê7„Ù"&#bdP™Æ+‘>26jUýT€êN^¥YeºÍ ›ÇìMBÄŒ¤£rǵ©½§#Š* !R{1‘ÀÏÁ=Ý9&¼W!!R'ªp“×ñ ÔûCwÜÝn•ÿe¼™ÚnBèÄËZCCÇ[7äoèX[ ø¼Q­¥@-…s#¥¬µ †“[];AÄ ­ ¼|xfúàÏÑþL®F 7x6ÄS ¨óÞp …ƒ¥ŽpE+ZÆ/$~ñ6ߤM Ì›£“éû˜Û¼j¥¼Œ××|3\4ØJØ:¢ÚXc Ú`M^ìÄ) ].]—7uð]d§mn?\ßd°»JMFHS&•#w"ñ§°o;z2„ý÷w·ÆÈt?zMÀ$DÌHj1î­ÃP©@ên[þ—ø abyػڅb¢#:Ûù›„ˆI "Æ%tÉ3ɬš¦‡÷E–8öƒ2Ïqq8Lv1ÇEëâçh‡Þß>ÇêTó¡8ï¹A퀌=ñ+G^¢û O§]vÞ®K8/ÊKÌhÅ‚ˆQ¯]œx×.ïÄH¢w¿}cÆ@Ryåó; 3’DŒK¦w¡ŽW‘}¯2ðÐw_VÙ±8T6ë§­§93Z³ b†‹Ö y uÓ0é“vÿXû@ûë¯Ånµ7½p¶?Kë&_T’Ö%ˆøò"Ɖz0ÑÎÓ8Páð›5²Ú½]Ñ|NBÄŒ¤ã’È<q·Ôh Äa¨Äð—2¯Ÿ½b?·0ðvÜ¢ÊOiæÞ1½¶j¥I "ÆÅÈ8K»Ñá@½ÂFïÍ%Qþ.]~\¿mÐÔ4ø (MÃW3÷AÄ ­ŒÉ~¦(—Öǵ‘¹¤ÖþùÊ\ÇOS™‹¦Ïâ´¼„ã—ä;‡I‡js­jsHö-HÊwj-ê¯n²¥eñ­Ä—þ¿™—T1ãÜ [ß-£ŸÕç_r¯ endstream endobj 59 0 obj 1236 endobj 141 0 obj <> stream xœXMSãH=ìÍ¿a:M˜¬Vé[1‡ 7CÓžÚ‹Í00a ¬ [òHr3þó³7«2K•²L7lTU™•ùòåKýe9¶°ùC›c]Àïóà¯Po,ú³ØXçƒ7Â÷ärך? pÓHXqb'IZ¡ŸØ¡oÍ7ƒáÙ*Ý6Yu2ÿsv”Ä1,/C!}¸ ö˜‘^¶ï%±ZöìÊužoAâÓÖ«4/äÓ0²Ñ8•Dd;r+>JŸ3´"‚ؘ"±[¡gû±#Ð[ùãv%m¿ÌYQ«#À¥ ˆ]zq]6ð Ž"sr"Àñ(°ÜÈœ<_åµ\éjï×ùc•V{eγ#‘ô× a»Qѳ§*Sv\Çöddñi]>5jm`ëG/* v$‘Þ›VÙÏj/œèµV”á@EI{Tîð0úw‘ªèÊ(™˜WÙ2¯›*Ü5: Žq3oÈuav¤ÅòCYõ²w?Ü”'#‘$±í$Ãeþ´?ùcþ«\šÈ·ç¹æÙ®X"Ž\™¾ö>ÍJù#bÛ7kq›šÖ:æîå“ZêÚ‰%íùNb‹DX`4Ö¹»¸¾U‡€³öˬ®Ñož_dEV¥kõ"âÁ™î×ù‚6@‚â>¼àöÌBZ“›ìô­<¤^eKùÊ÷íÈœóˆucljy’c&ï NÈ'Ü20àZÌÕ™\$3sj](3¿n¥„l¦M^ ¡’.L¼²|ÅLÇ’6SßúÈͪÎPùó’lú–,ExãbAw¡ü =—ÐÄ…Rsªr£â(ô•¦ƒ‡aÚô-´Š°Ê2[neNˆX™SBéCø©úŸuJÔêzüJ¯Ê&¬1p¶ôäqÚáårJ$Žr ñ™!Î@ÈJl™¡ècùXÈr«x!´Ýp˜)R€¢t»\Ôf…v]i¿å͆|ŠLJ^òõšHÌÐÊ=”JˤsÕæ¶ëì‘:ÐNäv¨³-5Å«óÊ^b}öb {¯14þ8¹œÌUýÐfAk Ð3­æÓd~}>›ÑbÇÀõ^Ìe•ð寴 }Ù1ˆzŠ5³8q§Ç½ŸOÎn/ñEàðLoo¦_fçªâŸ³Å,Ó©‰Ì L¾XÇÓí'ämÕ´ Ã}}b•-²üõkÇ åÁµ V‘Ç¿úÁuч'\Y´‚ÁÇH.(yø¶ä…\vÔCì½¢˜RK×eñÜǤª>S11zˆèÿç¾4ÉŸ0ð#O{R”Í)iTn¯ÊQ)º?º)M >È%àw¥ ‹Ïÿ!M‡Ošœ’4a± û”ä¢ä”‹ òmA°ÏÑŽ´ h8#yÃ8ºN¨8ºw¶3d]Ïó\¬qþ±¬rÄày5¦ ³<:®b$<'2-[Gþv¦6ÀÔì ]9Ëé1OXž/µa`ù²¹Ê!ï~ø¯“‘äÊ8’=µ3õfCßp$ΆTr‘¼n+pªü™U?nú }ž¡j‚ÂcŽlð#×q|j>Ó—îPÈmXnòJ©_qºäU¾N‹+N3V M?’è?—UÝPÙ³ Üõé&}†z·)Î|:uýØ–6L¼’íêiÒ4iÛ>¨$}Á¦‚á Z®d±ár·8>Á¤ˆÄLì#ŸÐ€Pk­ höïdw$º@ˆ„Fãmx’8« ]ƒÿÁÛ…½%GD íE²ÙIÁlUVhTpßúÕj&¦Yrˆª >¬±í•;e–;š*’ŽÌ,úÕ­€ªMîªj€üpãÊF×Þ:'‚n­äŸZü®c•’tÀíþBnÅ,¾Uº]å y/áŽéõÛa ñiÉRÕÒìG¦g¹&(lÍm¯(ûR~WgGŒ‚à‰ä‡™wX½žÛê@ óškÓ•!ÐÀ¨Q#îZḺ +Uï‡{<HÔfx6h[œNg'>×àh¶$Ã=~íeŒÕ¦ùÆ-ìTäˆÝvÎ\ïûò»Hâ>?}Š\Ç5>pûlQå[ì´~çל¹Ö:¤³ )h!ÓŽÌ|íûL*«]/qTÚûyÙK(d…5ð‡áôúBÏRŒO~ž_<œœö-`×jûÿä¢o –ÑEZ,ûEz5ëPÐ]^,Kjµ­4¨‰ØdòÒ® غ£ÅìÊvÅüžŠ:+‹E¶m¨nY¯J×ë’PÁÇ1í!ÓêYZï±Ýs¢R•ºA¸ùÝÏJš`ç›ËŠì…ô›wˆ*ÒÌå7”ÕaÄ<Ù £wEì·¼jv$‡;Ö;ûñJ(Í4Ñ£1v©:C0æV‡ë|Óvë&-²rWc.—[ǨóGTæ¥›ÃØÆÇŒmü¦ÀÞÖí#V“ËìßEúˆ¤82óæ""eG’ò2/Ò?øªu­÷u“mŽ5?°”Ø ´Pþ‘“GôL â¤ÿh^žY~Æ×³ÉèìX_’‚;Þ…Äc¾¦O]]En>PÇÑI x„Op~_§ûfE21`tøšÅóùà¿ðó?¾š` endstream endobj 142 0 obj 2212 endobj 229 0 obj <> stream xœ­ZÛrÜÆÍóþBü€òK–UZ3¸ó!UÖ%4]–MKŒ*2å±à.¤]`‹HºüùŒ|jzfzfz h'¡Jb ;;—îÓ§O÷à/ð™ˆ?ø»Ü/ïþn¿,˜üÄÃ_åÞ{yµ8}—¤b4÷®îê;+æe¹Ÿçy⥠óïj¿Xò“«‹0ý,ƒ!WëÅr#±Øça®Ÿ½-êF<幟¥yŠO/Å£Ô`\„ŠM%¾¹Zü°øÅ‹x¨ö´Šü ߎ½4Θdâ //§o½¡«ÅéO[œ~-þyyù ~]¼öþ´xsáýðä9‹§gd,~ÉþKìçô]j­6ˆóTâoâóØOÈ!Únè y^˜&²çU6Èü€Œªî®(+µ1ù*É}Æræ…ÜçYÀä`æsþŠÁQèç,q–oÛf#í›ùql¬þiºµªëë¶™i•fj5‰ß9u$÷³Ð,T÷âY.N•äÚgÊ)ƒá£¾ÞvÕÔC+§d~çzKc/²ÄOìÀMW¶u)W 3 š]}ÛÝ£ü€Qܵœ'¢“óׯÐ>ù‹´#÷S;Gq8ìà“l$—Ž#zøû®†J96°DZû쫦¯W¯|â!~p1ÈÁÚu]‹{—¾F÷ÕëJîœBl(ͽŠX 0äžð<,Ûý¡«¶,ª¼ž ÓhUÊC1m_ h2u{‡çE£YǦ4öˆ0h‹ËP­ë­4ÇÝP4U;ªI"êÏMÕT´¸ü,£î0ûád ÷BŸÙ­¶ãpå± h»%55 %DñÙºþsÕ¡/!¨ìVe«€\MéãW¯—‡“, ¦‹–à¡^}þB°oìÁf3®fûd/ëêS]V½À&Ÿ¼;½¡@ÀÕlh÷hÑ¥¾1,4ã¶*ŽRá=n\´Û)hetÎûù"r·…Ð&È,:Öx×Ë~<(™å‚蝹4C” SâWoý¢½î£"À”l{ÃÏpÛ$lÿÁ˜¢:·~Õî÷ÄJ/0ê°¾Ò‰'±Y}PFOÉvæT‘ö¨óÝ­¢Ï(­™Ó=s¤¸”_s<U1íò²0”Œˆ„Ó ¯û~Töƒ KÀù‘:<ƒ˜y‚n1 E‰dFì¹UÓx²ß$éñçBþj«øX’¢CçÇØÉ=n7žêKGKV…Qºù”AFžPÙB„â¬!bânµbÊe_ìæ\:ŸÊææ|žÀb>æ0Âk_M51E&Ÿª"[/è™°¦f»ýHtŠ¥œ˜P åã)å<ÀÜZtÖM ùKÂ"L(\Ÿ9è d‚—'p¨uZH%³C‚ž²NªgÅp9 8&©sè*¬&B É9‰íÄPJ£åGr®ˆ–š479ìhýÂhÐõê°9™|Þ[¤Ê‚BñnÜ!Á“ç÷[ųd«c¯m—P~^÷'´´¿+v«²µy«íÖu#²ŒÔüa á%4¿Š£þ±ª½2[äàþ¿ñ-ÌLBmf¤dT ¥ÔÒ‚pDó ‘}¿©" „Rª:1»‹)µéu§{ð©®î1±ÐÂk¦n,¦¹êÙÒMÅE<#¿)Äã3s÷`n%X~Òt>/¡£!ž³àô|`žÈø×åK/Û½‰åDÿÑ`šÁ÷­ÊÈ ªœÔ65ŠK·H+_T°éŵÜN( ¢_üi{Ý8<´ºrÞ†ªCR‚ˆ¦T I‰8ë{™=Šn;Õt½<=ÙAvÞÛ"”ÛtñT*;(©Í‚6,ÞlT&uUF©4ŸJãN±®³ŸÚ<¥'r3Dx¬ò¥/ ° mƒrF`žÈôI v}ºR?ŬÌÃÌtW¿;?C­—„™6džÿ,³ÞöfY¯†1/|¹ÖŠ%989õrÌúbðjþGŽ¡Ä.t/'?ìÚAïG ‰3²ß¦2ƒ¦ÈpvïÊgÓê5â‘ðÖo+ÇNMtj`ÂÐ5‚h6øŽÂßk…\u¯á77Ÿ˜­^¾v7—ïõfÜ-ç²Nñ ÷š®.îTX@R S n—¶ÛÉžö¿Úæ/ƒMz/M¥øEE© ÝÕ»ú£Í@z 6Ú<›C?-ð“ç:Ï„Jÿbª¿dÿy¦G\oM­ÎMD= ÅYœY“‡Ð8‘§8Qyv†IŠHÒójãL¤5ù÷C!{cjn1^ÏC)”f±' a0ÃÜ>›ª‡Ë®ªAÖB4mÒ"‹Ù;„¢ÿØŸM!ÃBQRf¢©oöo«šOM’%IEt¸ÐR)©â'­?¥…RQ+ÁŽÀω^Ë4‡b*Ë*]…‘µf»@ªcÇ,àžh+=ÅðNº€òÊÙSAÜK•*O•Sî*BºOlVWÖIzEmׄªýÙÞž¶+T:¹S°ag/¥»3E«STÕâ—•|Kˆð6M•Òú¡šÒ_iÒ•?wP#Ü£w̦9@âèfi„¡‰û‰„^VŸ”'h%Yu/ìîõù¡’BšÈmøœ_~‹í¥l®‰A[h¤Ï”´#Ò"‡QyÓìÚb½!»Å€Y™´{™Ó'ÜÃáìôôþþÞ¿mUMŸæè©ÞeµÃÉqv¾òfì\}ì§O7ö™)¼N§¹ÂÅÛ·¨ÌM;> DËXK QîôÈÄHûz³µêÒ©—ý»2ÎK 56±É[8„QîÚeµSjÍ^¨Ù!ãå>ËŒÎ™Ë ëÖ¬!þaQ] ÒzMVQ¨Ú¢^ã¶Ðç¼8*ÖÜ÷ºôXú¦•œK?÷½®ZßSÇÚÍ-õ¢T[”z¶œD{“ÂøMm.,çjþ©äúîò-Ö5„`žN˜G`Ð'1E÷°Ei@n'në¦èj]ËçôÁ4”P ¢"!ç0×ÜœP̺êKð-yiI&¢­¹DŽr_†tt†æW€GD)_C^9ø°¸`O?Yr(i¤Är/}UÎã%Ì…Ú =ÝÖ¶x™ypv7+Ñ" Ç! = އ¡+J­óˆÖÿŸ’v¸[7¹îßüZf¶9¼Z«»¹Ày]Œ¯àÇŠÎßüŠšÅ@&áIdßäd^(¡‘e§âuÑ«=¸âà ¹ðÀQ%çá  ¡¬úbò½%¬¦ê ÜÅç;³µÌìwjyž %yêfTuEøŒåßÍŒ‰œw|üÓ²mîê ¾¯óÙ7d³@´8’ÿò!cSñT&eÈ5{ÑS]5³83W;3JéJqELø{¬¦aþ}©Q,Å8%ÎÎxzÉO@“’øäA`)Ȭz²ïŠÞÖï»jJr ²G•XE é¯õ{¤òð¸Q·‹ÒA?,þ 'Î…endstream endobj 230 0 obj 3475 endobj 339 0 obj <> stream xœµZMsÛFÝ3ï{ÛË'ºŽ0ƒÁãKªìx½ÚŠÛbbWQ[[QˆI€ÀHÊ/ÈÏÞž`z’m¹d•ÀÁ §ûõë× ~™„NõÏþζ“`ú~Ö“/ª?™Ú_Ùvúr19û bµšM×sÏœNI¤”b JÄt±Ì( Ÿ/~ЄðXÂÓÅj2{“·mQ®ÕœÊÄ~pѦu›¯Ôa$HÄìu½ÇëÅäýäË”³Ð2ç$'J’ÄÑ4ŽJ‚Dþò|rvþvÚÖû|röqJ'gÿRÿ½|÷ ~?ýÛäõùôýÑsÅ#ç¢S—â0 ×ç ‰>#I(#kåO»¶¨Êt³¹×'“„»“ÕûR]<ûÀ(Ú?!a$¹]²M?çj „º««|——+s/2mNAbØžÂùõB>bч±§2JbÚ/éžêïrEÒm=zsˆÚpss¤ÎEÙ´à¥ÁSCA¤;ø·ú‰`«»TÕúZLgEVíôE®vOР! )›âjÍHzÖTê³(Àû¦ƒ¦WÀìî†[oö‚#)•Ò.¹œíÈ`°!V a–|÷Ý`áãòù·Ã- bö†ü÷8eh œ¡æÿfL„CÆÌÕ’y«­ÙT-‚ëï.ƼâýiÑ‚1%‰¤d̸^جóä‘S „Ê€¤¼ïÀž¿&J£§q–1P¥~¦¶æX{£3P'êVùuºß´š—Cå:kÙr¶©žÏÁ“á|–¥ŠÿšçÿYü{ÂøeÒEûÚf.0¶Û2²Nkª!%Ò×úm¥ÃE ª¢Ì6û•6؉º“ýc“7z=·Äг–x¤}òò);²®ïsë>†‰b•o+Ëx(€«¢Î³¶2‡ð….ìaÁfDV_Q-=l[u=”Šë,s‘:àŽ) ê 'ÆU=«¶[ˆö¦(µ3ÃUï*m ž!)–±Û]±±&rÍéó…+mÓ9øßf¢Uý<‰küRçNë0ǰ^N0¡XÀútÜö¾×¹a!’ÛÜ@ô˜6C×å°8…‰b1æeÛÏeq7”ŠjiäÏœ*dÆ ðš˜4ùwvåwév·ÑÆÍ…*gIìAb¬;:o»ó¹0½ÆPæÚ 0zßÁ‘eÓWðtëYWË%¾l¬5™ÄXP¬™u$»ŒCùãâLF&+PWã±Ú則ë:Ï-C¡sf÷kØ>ÔFpŽ+.æý£Ð’óäjjP”$ºÂñÉö ‰²-ôpÛ©`‡ bÚ>Z{œ¸tõÁiHw·+ñxuq“WuÞY§#¯Ê­aH‰Šæ¦ÚÞƒ2#0 Êi`P‹p¹:V9=ÎPM>’¿‘¶Ë¼Y1V¸?Í{7Ã#…çfˆŠ}÷6ªHKÐö¿i‚2Âl+ öqî±2œU'bì=mO‰/¤Œšt›[N”˜±¶ù°QQ x‰(V‹(æCQüΊ£²˜×›¡—³ÊÀc_Í6꽩ͦBù¢9–zjsB3¿ºIK£z!ÆÈ‡£ÝÆÑ¾b©zK:u…Š9 %êQíHŒç5¤ÚÖ& ¢­ëj³©†Åè¶ã#¯ñoÚ|×tÍMäJ,¢†´M„þv@R;î²³qñ‡Ko¡/ºv%ï~y €_S8°„ÛþèÁ¹VËÛ«[¤ö å#Ÿˆµ¹Q^Ç­•âk­}ÜÌm.õÞïcâé"GmØAbúC ¯Ezl.± uÚÏ!mi6MBý‰ûÑÍ¡6NОûš<ëº1ÓèOÌl¡$XfA2¿(ôÓnŸ~ajXðK4Â/÷íM·‰7qÕ)ÅN1Ã[+ùä!G(üÍÞÚÅÊÉžeò.Ý4PÌß¹ï·á­#uÇÖBšÂâζpËäËYYµ¦Ac3ÝÅÇó7¶ÄòCev0ìÃÀ‡Ýn5,×±<_å+Û80¡D»iÌY%—}§#°‘V«yÂÎ aLÑKè‚›¬.®Ü˜ |¡'dé×å,5+IbVa¥õ¸0\Ú‡Y ò eÛ¹ 3<ÆGU·Í­9£êåÀŒñ4UÌ1SC™õX›S x ²0¥ ae9»ß¡€èsùÜË(üâ³|üUå0¡~(ºÆŠ¡êîŘH1̉«É߇\ïOG_Þ˜7É ‡ãæÝŒ !}$¯—À“N\¬ö›Î‡øHTqzE:'>úH~ùêÆª_yЮ®€ì9Ñù/“SÕpêsvLò'Ïyô՘ǜýQ©/<íúýèÓ4Œ|Í{oZ¢©Â±:rr¶$ÐCmÓá+7°ZÎÔ¸ˆi: ¡Ë±Ëcæ\O4ëÔ·¯¨ «ÿ4ÛÃy†gãí¥MõG{ aR•&Û^¡‚åÀP Qÿ~ÑîWEe•8š—ÞÞ˜Ñ!äµÀCÆN‰GFcø•ÀDå*­µ-k,æp8¶±Î7yjƘþkœÑ—>à8; ˆÔ§o:7}åq ÔSꎑ~S6y»ß‘)1žH}†Æ1Ü“¥•~UÔ<~òlS”Ÿí‰QnÜ0ž×'¿Æjn"žàk !¥'¾Ÿ„¥ÛŸ­ú2F™×©ýÖçØj‹|†‡ú £C"„:;ô¾Éñ“yëc^;tA ±Yhÿdô‹_ðÄ’Š 1±PÁ€Ì»=¯ô)úœ¼7)F#œï»! :èÝýÚ$ŽÎûÉÿ½b-€endstream endobj 340 0 obj 2528 endobj 364 0 obj <> stream xœÍZ[oÜÆîóþ…¦‘¾¬/Å™!9dšÆíÀV7²´hkH…@/¹+&»Ë5É•¬}ïÏî™çŒ8ZÙAŠ"U2œžËw¾sá~ ¢‘øŸþ»ØL¢à5ü³š|œù$ЛàÅ|r|žr±›óåD™‘ ËÃ<ÏÓ€§$Lƒùf2æ?MXÂÂ,ƒ-ór2]Q±D’²Ü¬½-ê­X¥y˜ñœëÕ3±ÄÃöÅz©XUbñûùäÝäcS¦dšÅa/§“€' £Lèðâtr|ú6èÛ}59þg@&ÇoÄÿ½8{ N_˜|¼{TEîQ‘DT,q…Q,ULB© 3–'ZÎÓ¥XËCNò„éµ{±”„R§ÙË£LèhŽ®ëíÏr5—š:ÜÊ}½¾b'Ôøf b{.‚ > ®·‹õ¾¬´}"[ } åõÍwºÞTrývÿÁļ>»pÏ&"]uvþÕTEkäÜú«.s1çA½íÍ#D·å_ä;̪s ÔQ…ú¯Êª¢6õ ÈÚìª-|5ýZ8)Üu_˺+ ;ãvßI,סcLê-áèõzŠ«#- $]‘’±0°kÀˆ&/âD´®F=³ ߢт$j‚$¬PÁþ\H ñ£%X¬›N¾}Øç±ó )ZÐÀ¿BzVÿ; øÜ©ðNÖw6ïfÌñÐÝwã|Àt|.¨ ®MiÛFºŒÁ‘,`â/ðåôÛ£Y’˜Ç*¥ù&$ÀzøØT {¤ˆ2§‰6YÜJJ†éàùóqvˆp®þ¨>*QnÂú|§ôÉR¦òÍh Å’sn*Eå‚ º8QK^eY ¦ƒnPe ·i8”í¦*JU»È2qPØE91Ç«¶wB¸.t_è´Ñª SoyÒ©:ÊJ~ÍRs$‚UYÝÖ %”¿ÙE”&#ÌKL/u7nQ ÓË3‹O'ãËÙûn \=³8])±ÕÈ1t9ýqg{^è¬tWRÖÜñ×¾3é3EŒ|©XN^Ê!ÖáÒë½—÷¦1vËr¿•ýJ*~HˆðA<‘=H䶈»œê›AB>ˆcj2×:é»­ú}»5:ÄSŸÒWnÖ(Ç™s@ ª3ÂM ìÖ¿*#g‚Ô@zŠsßÝÔ ©­nÔá )phÜ‚c·0\Mø°ÖVKÝSPÏÌÈÙêm…”E}pe ®à:tO±þKäYRc›z !¢‹†BúaOM‰nªÁíÙh²ã$ùm» —Ëé ùtÈ>;,§/!.j͆±Óõ ›q_‚=×üQó!ªŽŠ½ßÕüißÝhé¹e¸«éȪ’èi»ª¿w^‹+¼&&ƒãG-llã”àíN¡h•ð æÇÛ1º+S}åhøf(jåPc+|#^°mެ4dM".y¯x7}1ð_Âàn~ôÈ_àÛëP*Ÿýýµ5 *Âuù†8Z e!­jâC»}ÌõÛúò„Ï•ô©à¼Ú­õÌ‹ñ'g1g¨AµÅiÚ+’ºí íÙ¡öw«RwFZz£À’¡0;ôGo‘ÒNáUzaJ™Ì¡×f\&b É—Šˆ‹ÈT7:êɹ.¼¡ÊbK†èSË#–³Ôº°$5}ø¶D«rh‰¶+Ýqœ©Y„³J½«Ò[×p‘n>\‘T4ÚÜñØÿmôû’¬/NFˆÙ(‘–Åæá2èwˆ|ÿ—‚f[½[7½®öP®[4›–7Nðàæ¹*°c.¨ñ¼ªßTÃXÑ…Çw•R™£¥}‡$f7f $e 0¬ÜR» {[·ý^…÷êÊ:ÔIž ìå«Ê?…bU˜ÊâÑ[ß Í(nt¬Ô\|°Foºº¹Èì˜Ê‚!±Õ‹µ;B”Ï0ròc-5%¸=®O°'ìê<‡jÈ3†à1˜u?úêh”]´ôc‰ä·ö@"çó=–ˆºslÔt¡[ÄÇmMWѰê8J·TU×]·×ÍMî|7ËéwºDï!E,ߢà·Ôšú쀾ˆ¹"#`w9¿^ðf­Y,>á.t’rèöPL¸œè-eÊÊgè¾^t¹oÍW7ñÕða¯ä™*½'áyòìý¸,îë²ÒÁßÏd‘U¦¿Ãïg!žT•àTNB 'f¯«mÕ½BdãzUÍ)ÜÈ™«'A¾÷Õ¸‚øQ}äTÀ2 \m4åù†òob¹Ý"ª/¡pJÇ…“ª¡â×ü„Bÿç©…°ªz‡£šî•ù1RôÓýJeé›w“ÿ~ÖÍÆendstream endobj 365 0 obj 2755 endobj 404 0 obj <> stream xœ­X[oÜ6îóü…öAh2^ÌÐ")ŠRz'õz‘¦M2Û}È,YÒŒÕh¤‰¤Il}ߟ½‡7‘ÌÈv[oçöïò}"„â§¿ùn𷽟a9èO¾ ž¬f§¯b.V“`µ™©=K$)JÓ4xŒQ¬v³9FôdõÇ '(â)ìVÅl~QCÕlÅDD¡i¢'^Y7”…˜ ,FŒèq&Fž­f/gP¥È2B HLQÂYÀY‚Q˜ÅŸ\ÎN/ †îPÎNÿàÙé?Å¿'¿ÃçòiðÕìÙeðòN»e÷FCFÒ²ïª&¯E)•MPHS¦µýaKÐõOb|i&R%!¨'¦ïÝøö·×Ç{)K9ÿŒ½ÛâÓ½à÷4‰\±Ëªf=_Ÿˆ¡§ÑŸ2D1JIH½‰ªÌ%U(¹ÿ_\Àç{)Ð,YšØ…b–¤(¶šþ(†Ä`9ÕC {»/X¾žÛ•ù€öý· ±.¥[Ѱî,Z)ýö¶Îšb}bô A¡D8/q<êóââ‹Ú£BÍVkĵÑ0Tú`WObG‰§å¶x JrŽšø./¾HÁ…é÷&蘥^`Y6 Y~½†ƒ¥J,E„§Ô¥Ùo¦\u>瀟žàÂNÌšm]އp,ò‰ŒîZÃlr³)wÃèèRë™t)OãÔhW]îˆ÷m`S’âIñá(H3‰„©IdMÍë¶—r,Óê/1súŠ[ Š… ¥ð‹v(K3¹ ¥’.ÎÖ´I‰À‡™È>(0ÖCªn8dµ^+fôDQ~¨rÅ¡ëÃì0´»l¨ò¬®oÅtL÷e—½Ö)±Ð„ÕÒMq+C"F‡ÉÑÿZ1;xŒ[¹JŸ)—8EeI8T8“r'!V@~XVêFæ—¶3FQ+±¼ÉvûZéíù{É#…ÂD6§Þ!b‹•{ÈŒ¬ÛûëVÚG ýÔàG!¹…m¸–'c.|éÁCŸmKíRÇ#íF.ÅP×F%Šêë²+Nl-”ü ’`7Ç–v>còfž·'K°4F!›·]Q5ÙPžüwõ¯Y”"f•êoû¡ÜõüQ(Ì5zíÊ ®$£õPo¤ZØ]ëÂú‘^h®©ê…Êœ~_Wž£‘ØrÈ%6pêŽæY£¡DGÕß̯¤… b:W¦,Ó6í¡)Ž!\5ÚßãÚxa»¿¨ú¡«®CÕÊ-,r¤Ï×`à®=Æ`Q úk»Ûõ‰9Ì3¢œkƒ#h*0Ž(d°[âV±x5ÌÙvC§\KþÔ¦Pqж©ì6™J}?€ÕDöŠ\PÑX)ëI臔Î$íDGÒÁd§¿SÒ}¨8Ò}BÚ´­˜ù…^³ ¶ ¯³ÞæÐÈK‡NçÕ¬ƒa6 X- A¨ðµëußIR7ùU }v{®ë¥ýáF9ñÊÚ¹NÃð´ÚVÃ'™ñ了9ýõõÏ »àœðú¡É —4X‹L5ÙN•ëbrïÉwÅ3S¼¥,¶ƒ“)Òƒšýâ×#®ø©¬;_LD½ÕH¦Ée}øÈÒdo¦‹¬ë´'1&µÞ´uÝZ>1ûG*§n±ÕTœëŠà]lÊ ˆÇ*ö÷ˆ% 8#òªüÿŽ21õL:Ó¥5vá#ÍŒDAÍ̺*»ª y¦®ê¶`®Zž_ïê.Ÿö­«E³§…ÊÉfY(«Îí^¦CQ¤9Yxƹ:&í&‹^=;{>á="ËcAPÌ´•yïw…£W«új߀N%I"öG÷A¾À®4|ëÐ&VS°ïW] ¤QðaÔ-æ–0(»ýp¤ÜtõsΦ¸ÄEÔÇj¸6>·Î$Ä5üüìùT\($†Ë·ø˜í¡¸œƒ»M2 %–A‡Þ¢‰Œ ý¦ÑÏ^Sp¥¸‹8Yp{lƒ¡‹ïŠr?RÌoo4!7εJ©¯ç%Úw«@x‰wÓ;‹Žä |´í œ´G2‘<(™S²>»¹ˆeîí¤0M¦“eM;hºr 5ÁŠm÷Nª Ñt ØE9uT¢?„JÚ«t…þ(Ú'™Ch´¤TôÄÔ™)ªú~àQÿ¦kwšCbál¿ïÚ=ÙPêÔàîÝ!+ŸC÷Z6þ¦Öw‡%@<«nYgºp8–CÇÞIÛ“ØÃ¿ êÛ€áxêfƒ ø„ÐADr-˜³í²*õ.NsUñ.Rú6hμRÕÇ«ü\–V³âi« ·cèÍíVun28/gÿuäçendstream endobj 405 0 obj 2088 endobj 425 0 obj <> stream xœ­ZmoÛÈîgý…öƒº°hî.É%]4À%NzwÉÙŵŒ€‘(™ E*$åÄÿþfßÈYqe§Å!pd¯V³óòÌ33K}™>™âŸ~]n'Áô~6“/"ß™ê—åvúòfrö[ÌÅn:½YOÔgfdš¤~š¦ñ”Çħ7Û‰ŸÜ|š°ˆùI[nVoCʼn|ÊR³ösVTb•¦~ÂS®W߉%/ÔKÙ&‹¯o&ï'_¦!eJ§Yè'p¸øt4åQBü 6¼¼šœ]ý<íš}>9û}J&goÅ/ß½‚—«‹é_&¯¯¦ïšHRöˆ,ðƒPI|æGB¯fi„õOÀò 0†æM)­O}.d¨Ee; ü”¤©^ëòf-¥±aˆ….¼º\I_q?Â2ÖõâD¬ŸýƇÈÌHD}Ê“) å¶›;)’?<ðsì‡=#¼Oé™mú€ =Û×u#%Ä>EíØ‡>4¿ËZ¹˜øœôV.÷M“WÚL³³+‘zqî}<™ÁŸ Uêåð‘Û›Ÿ&4š°^Å¶Ë¥Ë bHúÒÊ Èý«0‹4 ˆ^ÜÓ¾ ƒ‚Y¥‚`S.ŠMÑeÒs ‚6ˆýwU|;ûõú/Þ‚ˆ¤ƒ 7rÉ‘O÷Õ²+”v3– Q8á„·ªl›·Ú”h„ "ÄDOG5ô#dI“k¯ÆƒÂ ážÞ‘-.ްm:|Täst¨RcÕ«S¹Æ|6œ}Wkä³ù_•Þi”rsD~/ÖÒ[ôȧ֫ü¾Ð ,»6/×ÒžG¶hµNùw»+ó­d(­Jzp­ô‘¤7uîÕÊ0MC€´÷)_v•êxªº)4À‰°‹ òN5C ~.¡3 A/ÊÉìNćl«l«1n›Í^€@!Šl!°qjy"µBQo‹ÎdÇ0pA0+KsÄvk ïVZÆø½Wk_›âŒ*²o]—e­yƒ V|-ªt*“e€+ã'u&XçGSåu»lŠ]w®Ø•²h WÆ æ°èU•3™¾­I(ÁKú@³ j'a ’ú‡•Î D€ÿTT JPCžUþõ?„è2‰¼|IÏÏ/d¸ ‚SøYœ¨Ó¢°šÐi*xâªN›½XͲ”Û%Øb†ùR/ÚúÓ^f"(ª¹IG#³ípþv:d†.™ÏÞæ:ˆÊ “¿×M¹zfÎ#ù€%Âci¬=¶ƒ£:MEáà‰g‹EuQW¹¯ó×Ô¦[øí™’c¶b½7y·\x×7W¿èãyN”v-˺W9Šk0¥@š&ŠCieL—MžuªBEpeL™ ´OÑ\# ‹ãP°tǃÏOÇRbk")—WoŽHáI@eƒ”w×#!à”@ Öáày™ë”b‡²Š<[.ó]§Ó7C‚ )äîã´×jÚJÐy­f-Ô¹è³faÂòT}€k¶ßÉܽ¡‰5ë*”ß±aã+]”NîU瀻±¼iáÜ]çF&²ÓyУœÈQ[ÕÚê8†vm« g‰eJfÈpDé oŒ*&àÑ[²ƒCWõR\Ô¡]ÒÖÀ-(¢*Q¹l3Œ¥¦0'mëÆ •úUÞeEÙj´a)h‰™†ÌYœDÇéïÊqË© ‰nkÛú¡%S%€¢ŠÜ«*ŽÒñùÖåU[H<°w®¹rEŒDäß2Q }åE<á@mŘO:Ì0­mb<ÚÑ`µØÒµ«ï§4ïÇuðºéÆýyûЪT¯âtÝÔ[úšÄŽIÿ»”-»íÄ–­;D»çÖsE„n¢û^B©Ì=.è+1Ž‹x¤Êê,Yb7ÿªû{r|1Ǽ»^xÏ×uíïÚçò¨$Á ¶ÃÓ±°þîúC UXkB`ôŠybÍ6›&ÛÝç‚G´¹_™Öf9è@nB ›³®Ë–w áTµ=€}P%IìÞVöÛâÊ¢‚™‚©©ˆ[wdÌ5*¥îEã ="\!Ž2³^¬D$!ŽSì’Ëz¹¬0Ø„¹ð€ Î[˜ß‹êóÂóùÉL´ƒ$½èTR!²¸h±¾B–M pTO"rÏí¯]]>lj8q®5NN§Ïœ‹Nƒ‹Æå–ºÎ8ÄÁ­±ApttBmÞ}Xe-€c®gä”cº&ô'ÙS´_5«(h“ãО‹K€qô«ÕP™UÄÀ$rí ݆U$!äâ½Qp«•ľ T„عm"ÊìXà ¬#ÉWl³@zè‚:¨C£ùܵªȦ´øötÎÄ;ö¦°×Eb‰c/„ÝÄŠ±ªŠ>ër/°ã¢•#×!ÏîBž«C†{ž, Dùm·**¿É3`Dò(y}ïÈU5¶ÖÕoU“©ò ÕÐj2S£Ñs˜iÔi“x}D¬K•QÝ›{»¡« 5¾Šk9Ô\æf,KPŸ][þ±tïãþ¯êÓÐ) =TçtÐ$Y}üªÞ,ÇÓ’}+óÜq5«T’ŠÎ¶×¬rœg=PÒб'êS+Æxu¯Ê¬[=ç $”Sh?®ì·:èCËmžÛp˜Ä8#Ïñ- òÔ,mÓ0Ñ' Zx,hæF'Æ6꘡ïît×hݴ˰™ ”tðcåQÛ(}píq—«;`ȆÀÑ×j£0s¨¼F0òwYÛêiƒâõOû¶æ£ÄÆ`‚úݲPm±G ˆîXÖeAa_驿\¥‘ü_±÷Y\ïõ„>Våzø`x¬êN¢­föõZk®×äv±~PÙMÅSX:"ÿ7 ªˆ=ÙaÊZÃÎ÷pG{®­ÇO´ Ÿ«ZñÓ×vì;§•e^mÔä¦&üä¸ÖGHÔÃ%Ê)(NEwÝÇôÓ-vHÈù×§Ñ-ËýJsŒ"÷gY?³1Ô`̽¥90ˆ`àW §ºôµgâ’”'øÆK÷êÏa$+Êìcÿ´ ùý¬ÆÜ×.Á!ߌž”gþ÷Ú*Ç-Ý1 ì@‡#O¢b£ÒКH—¥]/xfÞÀ5þÅ‹ãþöØè©ÆÔ èNO‹¹ËËÝ>äüš‚Þ)Úó­õC\jI=<@Wøù¶AN@ÞíñÛ³ À hæoK…ßD%è; [­ju^îoô}*úR `ßá@ßôeŸ7à*Ρ´g.ËípýÕ8›+0‹" o矈)X\Á{$•ƒ”Ö™÷φ‚x`›5Ÿ¥ß=êË<†c¦î7e& …¾þi÷K½5níî¤ ýfNˆ¦3þ¾™Ã3‡r.¾÷Ãa‘ôµx—yi§/¼ÂÐ*ƒ¦¢£†æF±]„Æñ}>n~]vc§®6šqƒœS~rÈpa`ŠÇ#‡yÚf–Ì6y=(Þàhö»¨5ë#C¿=lÔ§ŒÍûÉvï}endstream endobj 426 0 obj 2878 endobj 450 0 obj <> stream xœ­UËnÛ8µ¾‚Ky!ŠO‘ôj¶hSL0M! $](®b+°%G–ÛÉô³ç’"-:NÒP‰á›Ãû8ç>Áûã?›„ ÷ð»LêþƒüÇbƒÎÊ$ÿ\(‹f¨¼KÆ7EÚ`cLTAqÊM’R,få}B5ÊÀ T~MÒ7]kŒ`ÂöÆ¡Z ÖʕƊy£²–wer™< Áø˜A&°†Pk%‘’šb¢mÆgçI~~†~_'ù¢IþÁþ9ûô>Îߢ?’wçèòÅ‚¨Ô¯TÄ!Y—Ä%Ä7üII ê>®'ÿ¬&¦²‚["8 Ð„:ä?Vv{Çdžém‹ªõ42>ǘT`%Ohr¹MÜ[Wµƒ*L¥ÞXí‡U×ï\1Xµ_Ð`N¨on÷ƒ/(–þÖš$fš€~´& nD@ÕÙ¦jÖ.W+å¡;nÒÜEc˜N.†‚ðOg¢¶‰äkég#¿è ¯¸Ã7³ù(£rRŒ‚uŠ÷ãDUèi”÷sþu¿¿eÂÛi·iúÙ—òc"8VƄξhÖUÛ9î‰7}ksŸ½<ð|®ƒ;‰…H»|¿«û]¶ëöý¢¾ëúeµõà"<Éœni@àZÉüJòétðMì•5©²Z¶u? °.BW}Ù6O¡/ä}J¸†6£Zü¯´ËæÞ)ÊDœõE³p|° H~U¯4š¥›tŒm5Ž5l§PÖn»nÚú$ hÝi‡]ƒ›-­ìäaRq3sÂÀ®ˆæ®Ùl×õ¦nýà ïÐŒ³Æ¹ë×ã¶>Jqû2øüô³Üž¤Ç à8|6½"dG¬°󽯶[×ovE¥uoǤ´Ýh€q/©šq)À‹D0:,¶g´Î€vS6S×ûiÔøÖìš± ©!˜ŸÝbKæ×e4ñ«n㬈×Ò¶ZŽVŽÙÔ$]{˜úè¢)»ª‚,«aØÎó|ɰ¯È-3C|‹É¶¬±3ÊHƒtì¡càÿôÌib ³‹ßpæ8¥¯œ9Š™uì{_ÃÔVCíZOËù¡ÚÖk&¦ XŽKø>ì¸}=Ižþ=ž' 8Ò€ªè¿2:gj.´?³‘ØŒÂ÷Etî<û">¾/‚Ow“,£Ñ=Rn!ÄÛÎß“¨Ð—ãœ:q.“ÿÐÇÜendstream endobj 451 0 obj 898 endobj 459 0 obj <> stream xœ•‘MoÂ0 †wö¯ð‘pã|4 Gb= Áig¥Ú$@ Æ¿_“¦iâ0U­•§¯ûõ1Šøä¸ÞÀYû6pN0‡õÇŠ÷ÒFµÄ°….gÈèÁ´ÂÇ•œð¤mùŸJÌRÌÝ’ÖÆ>-“ÔB&»fõ¾>­Îõ&N©5±¹ytH±l;ò*³‘!ÃÞËŒ.u–1{“ÙÛúœ %·ÓA¶0%¤iÛí+^Ü{.…(Órø¾æöpJùš„ºÁ¼Û¾ægš‚ú ®Ý>mÛl¯˜RßúsmêýmËKøàveendstream endobj 460 0 obj 326 endobj 464 0 obj <> stream xœíZKo›@¾ó+8’ƒ7û~ôØWšJ‘Ò„ª•¢Æ pÚþûî.ïÔÍ¡nS°²,} ;³û13 ÷.È…æ¨ÿõÝ3ý»uîdϸõ_¸v_úÎé¢Ä˜c×_9ÕE äJ”RÜåTN]íx¯î‚Må'þWG2 ÌYèúKÇÃ:½â°fÑ0(QÒšÝZ;Bc±—ÞxÙÉ‚)%ÅÞr›D'_ü÷Ž¢újIëáÏÓeô½r˜ì| ¬Ñ'€Jˆ**Y' H¡H=@å#€b}ÇDSÔž¬ãÂz>½¢óÀ¸‚”.‡wQÙá`íp^\ A…5ØH,W5”ÄEi 9àa¶²2¦íÅIbAÒ ô·Ö¤‘¦`Mú…e½à P¡™#ø0ÜzÒÑüXTó§ÉCÒ¢çiÅTJë‰ñôD¯‚0ªg¬7ÙÀ@ÂÐo惘ŒúßV3‰™Ä_¢:)[©Õ©«u¥0$öT˜%Y%+ªHͳÍ[i¼Ù&Ag©}<ýbŠx´g¤úëâoV1ê¯{îê,%(lÞÚ–›­Íg›¼Óä“0³ é+:5”y–Ô‘é¨c0“˜Õ³¯zTO=Ì5u¥F—ÑCFE]\õJƧ•£K9¥ðî&1+gOå`´K9·y°¹‹ÃÀ ‚€ºÆ¤—øŽ3‚{›I̪ØW¤R…€€Q]a 8¬¤Ql’8­“ ´K*‡’£%1!ª“!¡»š^ÿ‚h/õÐÈâ¼ÜVÙG÷<¤Ë>UIgqp7V%A-kUvÞj›†íÎå&“=oi7™É‰Õ8I´™ÀÞ¢ƒ>}×NðåÅš%÷£hŠ*³×ÝåŽa§¢Ð37îãŒùÑ’˜Õ'„"[B½=?³¼Ý:š-‰ Q ‰GU¿m¡M3öz ÌñŸIŒÌj&ñçÚ#¨§=b Ãæ[†Ks†›oÚ÷þYQ^‡y¼±i›ZNdŽƒÄ„¨N†Ä#MឦÚÍé‹ëA>û§ËÌ X‚ûV}'$Ìûø!À$V3‰=Ãv)æ3²Éin¸Ž‹Ä„¨N†Ä#¹qƒ½ñúø ‘Iendstream endobj 465 0 obj 847 endobj 476 0 obj <> stream xœ•QMk1íy~EŽëÁÙL>6V±[Öè¡ôкQ(uEQÐßM6k…â¡„dÈËÌ˼7;Æ‘+Åå8›µ{ ; øÂRXnØØAþR˜-˜[AW3$VZ´ÖÌ„sȈÜHiPIÛ&¹²µiÒ–ö–Í·ƒ¡°VcAY}üöƒw÷ŠŸHuUSûS(:XÀŽ)!»–† Ëöo‹¥ÑÌè’—A¸‚¼š³Ãþè!eùC8ÆÏ÷m¨&즻ÍTr‹Êÿaºá•$úk–0&ôi…â"º5óß|T*…¤{ƒ²mMmGV&ÌH£¦_Ž>¥Y°§å!‚eN’éÓUÐH˜‘Š ÔácÕ¿p^TÐ5çj»õ ¹¼€i°=çgT½‚s¸4m³}Æd èZèé¼öÍeÊ ø¤WÜendstream endobj 477 0 obj 338 endobj 481 0 obj <> stream xœíS»N1ìý./E6^ûüXJâQ…p¢ˆ’KºËó_í{8é)("˲4žÝ™Y߸ä"¬î\ÔLð¿×ìÀ0ÞðîXÔü¶`“æ*Ð%/V¬-#wDd¸É L΋šewó}SGÅ'sl¸¼X²Lh23bh3î ZC®ÈEÚZžÊAk´¥Ó¡¡h¾.˜PHºŸ¶Ëò»•Aí’Y $äFAî¶v£gIu Zq‰€©é¬¬æM¹ ÚŸú•(¹:µúÖ&y”>§÷#m’,1€T “ÖæÔõ–lß3ޤ%ÓËT›S‰L"îVÃ@Š«*‚êü%Ž)‘R ‡DoÙr7û4¾­É_u¹½ÏL9oŸò®º™7›Ý6z'P©ë>„¿ ø­ðS5Ü?™éßuúhÐCÉ›¯Ùw‚¨3ÿÑ5?%Ò}ÒÓæ§¨tçQ!@6fÂKÈœé?±®&®&þÈêå_¯(`÷{ñëâEAendstream endobj 482 0 obj 392 endobj 488 0 obj <> stream xœ•‘MoÂ0 †wö¯ð‘pã|4 Gb=Lƒ©Òά„J“(ÿ~Mš2¤‰ÃTµVžÚŽý¾Ä(“b½‹îmàÿ` õ§d¹ Ù«-ô5cÆÂ‘s.G›3åXí`Äò¹úe˜tÑåT5±!©ÜÀ–YÒÑ ­ dØ™Ëvã/Ï+XÁµTýTcMEw½£Â´¦`EØbZBV¾áéxö}"Cö>ÓåKÊ>Á¼ÄÇ áHÛü?È¥˜ÿê%­ sZ&©…Œ‚-|ëë“ß„-µ&67‘ömNv9•X 9™ÐÙ§4þÕí½>EhIzȶOLGÉi'Úö†…‹+¤yô‚ï{n÷ÇX¯I¨Læ=¿â4lpím¶Ý°CÆl ø~Ñ˵ñíÍåü~éendstream endobj 489 0 obj 326 endobj 492 0 obj <> stream xœVMoã6=ôæß°åƒ‘¿öÖî¶A‹¶hß’"PmÚVa[ZIN²û ú³;Ã‰Ž²‹"‚PCræÍ›÷ø)+Í ü 7§E‘ÝÂï~ñiAÝ—,üÙœ²Ö‹›;Zr gÙz·ð›V4Ó†cd&KCd™­O‹üájÛ-×ÿ,´ ¿Ùz»ÈK\º¹“ÅxÌ*AJn´ Û3Œã%VÜÖûü·f¹Æ(R²|{9Úå_ë_¦ÄÝ,Æ|ô1’¨|s9Ù³‹¡…$R™ÂP usöyP¡§D—¤à:“œ”º >_B]&‚hex8á§ŸoÃv3Á±Š1ÌÒ‡a"œŽùå—ó/ïývFŸ]©‹BgŒ‘²,˜‹þׇ)5FÒÂàÿîû-û#` Ü!ÂbíJÓP‰Ñe,9 ®’ë +I#l{öØ´Ësè–¹=?bˆÝÕõ ¶ O}È7PŠ;j†Úc^\*I,úPu.-2¨@2dI$͘¦„ÃæRi¢5òç>ÿÚÿh5Ëa¤Ó“nËßíã¹:Ù‡åý¡ãuÆ¡½˜kh¯opI°ˆáG;TõÑnñ‹àD$„/ý¦«Û‰AIf«ÈEDz‚§\a”°éü­}ª7¶§ÓxìíÙvÕ`Ý×ìxqsڋÚ3"ù«vSŠIŽí>¸èU·¦Dø´È‰4 ÄŸÚ·kºS5w—ôX¡Þ>2«q­¥,­îÔtî~&ÒS·S_3ÅqT‘|ÕßËb@¤Ä2í˜ÆÑŸ¥žÜâ³ €ˆ‰ÿÕÙµT“¸øòn‹«²P„)–Q?`UÛëͨ‚¦Õ¶G[õ6°›O=zªûzˆø¹ö%4}È«>0mºç>GÑ[ßÃFì= ( IãqM`X‚n[¿Øcr? 1]î‡Ú¡è+²xJë”-ëƒíì.ö k8ÔLƒYŸª½á žg ‚XÐCÞ(‰»šr&!,iÅ4Ž–‘x»`~οÅÜzRÁpž#̕ϙÊd–òs3̱o@®NÕñøÙaU&ŸîóþÒú€a˜fÀÝ¿O "«œxÊQ9Ù\9¿îy.°OºfÍœY³Ä­áØYêÖé$PšžÎÊ) å;÷G)¨^4 ÊɵGj> stream xœí[YoG^ oü ›æ-`¶¦ïn?zÃ’µ³ZäÁ ŠÓ³ H™‡ü‚üìT3S­™‘HI¦¤D0lZîîêúêøºzô.Ë Ír÷'~NÎyö-ü Þ ¨ÿ&‹“³ìÙÉàø'¥Ýh–¼™ÍŒ%ÖZ•iE‰ÊNÎC*ŽNþ?`Æxœg'ÓÁpÆÜ#* ãÖ„g¯‡?,FÌZIN·óâèדï‚£­Æ<c4'Û³bÁÏÚê8ùf¼)— ·À×'ƒWƒw™`<è=Ä€‚¦”™–†’ܸ}>{18~ñC¶Ym‹ÁñÏçþyöòßðñâyöÁ×/²W½f Ò\bž“\xCâ·Í%¬oyÔv}>/ÅÚ}3¹Çq¦Q5ŽY"üÐoÜ M8µ–Eéíbâ6Å•µ¸&Êä°=tFv£ÿÃt()­®,÷Þ}/IãE|´,§Ac­ˆ¨q, {hM.‘²÷˰ô PPÈä´+ì ¶¤ªGÓâýï1”pi+E‚°I”ë^<‰kHje5ár{:êQ#3Ø´bJ4pÑÌy'—*SÚ€‹X¯‡_c´ó°d_5ÆÌrÂm"u~4u@M ¦ ÞIM@ ê¼r¢m;nnùËQèã Ü_f”®röY‘þr>/¦}x {2w„·âûàÍa1 JÁÅ΀s¦`¡Tì.Wü[ñÓ>´•&–Zz´YÙgF;ç€6Ä©.ãïŒvn`¡Tì.Ж.›…ø–Ÿ9“‡øîÅœæ”Põ ‡¤hv@ 4ÛrÏ7R±»€Ü¢åaRúj `/ÚÅ[Ñpª{5³ ´+ÞÀ”¸Ú£zKX=»ÖŽœ&u Û,zZ7ôè²ÏMÍB@÷`l4Ñ Mº×s©Õ^ù ¶ƒ¤b{`l»H$`œ7º÷a „’ñÃDðùx5þ· tEÏ>ˆlͬ èæ÷v`åÈ£‹Äv@·0w…IWe{`ƒ3…á7 ÊÝXt®­²7 Jë ’´ŒìA¢¹ J'R×M FêpQ&ÿ Q&MÕ’Ø+ʰØmDÙaΪ=°=Ä(S®§³˜!±=`KZQLqgœ ø¡‚×qc*£zØß¤òc Š–º§€k£vž”N¼.°u;/{D%s]¿Œ‰F¨PR¸£û¨¶ûPë±m<Ÿ{”q³ó‹Â][-qãŸ$8rM©œT8¸KŸVÚ=i»IXÉzn(v]©m åø{ý½_G%qµ‹ë Ènp‘>»ë2V £€RS,®ça`¾)YÁ°Ø¬[z3.Rw‘:ô¾–}–­u|wµþ¾r{I#pBؽ¨<ìå|¹‰±o›Ø‡ÐwíÆÊYNGq}y²]y‡€ ³Mg´> QžùPnÞÆ-1Õ˜†aÇ^väM°‰¸¤˜¼nŠUHŠ(5\ÎÇ›bZõÐm²;eŠ˜Ìš(I¤ŠU‚}É:Æo.؇FYàêµH;qþ×oŸŠ„‹¿õ¦„5y“}æãÕ ”iÓà8lÓ§ !S?Ä!Õ¬†ÅÙråŸ2‰sË¿¶…ƒåÎ;íH¸4$lFÙ…YÑA²Ço*³ ^÷7ÙÎo>6e­æ:ø²lù²»#é-¼Åj<+3ïÙÂØ8Ìv…q\pˆò~u¡rS/2~|–»4¨[ÖEvX•³·ñiÎS;¦9" iW &á¿0¸ ¨ÎÞ/Cü ´O gÄÊúi;±€%€Ÿ#`uŽG¾)5O`D9 Ù OØÞ´=ùHRw&§uGšÈÚ'÷ôE;·nÏb¹jn`^O»Â…ÊòMt(ŽzM̪zKûä‡Ó¬EBiî„z]þ^D—GD­KÃÓí?¯ŽïóàÚRåuÿ•Ÿ:+MÍç: ‚s=Ø‚;ˆTåC——7<¿ÅY¬Ö´•ÍæÃ6Óý„T«1ä’¿F5è6aûHqU¸”}ª"+Bb®A}¥í½È.î‚U.+ÕÁroµî޳¥ˆåÔIPµ3>$ {˜ ºª4k}¡4›î"»3†=¥Y68×v˜Žëê»;-„ "zÎnDÏÛ—î>BV†¾uŽžpÐûËѵëEƒµ%0¸îÎh7G7îzËíÉÑkhKÇ%%pôædZu† E$êié*Ò ”°.ðw”ß.áïÞ×kºØÃß¹«p&Ýn’Âyˆ;ów×o®¢yŸ$Ñðˆž$^V©“ïË-—ø„‚Ö_˜ÔL±›K¼jTÛ‘ÀãÙ¹ZEàG"w);«ZBWÐø´MôH¼Â¥¥ŸÄ'(õ“ø´u·/‰O“l?‰×& $^Är~oI|u™ðHâLâ›7ÏúI¼L(á#‰ $¾>v=’øCø*ÇÏoÄ7wŸVàWïÞ'Ô*s.κ¯xº9¼v¯Pc¹ërøîþ·R­ný¿ud,ywäÇâÃf¹øj]]þmt>/‹Iñ¡\{húê°*'Q7zée_-wwVþ2+O^`£ õiä‡ÕtI‹'\s±<+Çso6†‹Mgy/f«¢â&¨ðñ )KšÖ«å6ð/8Ú¨+ú­³ò},(YU„ÒÛ ]ô.WþÂó±GûHïnƒÞÉÇí}¤w—þvŽÉ­¯ˆ7ÿíNiÇ»ŸZ»Wº5àåÉ Îo‹Œ7¡R„oí%‹h1ÑôN‚3IüžC‡¡"óŸÉ&Æ ŠªÃÀø#£O™~*üCp[`,ÏUŒE4ç›Ø HnÖâ¯TUsž†X2ÅÌ꼌^„6úñÓ¬h°y5ø?endstream endobj 514 0 obj 2203 endobj 535 0 obj <> stream xœíZmoÛF> ßô®ð[e Zïû’ù˜&hSà®IO‡Ca-mdzq(*‰ûë;ûFMɱãh!p SËÝÙ™gæyfµï2JXFÝ¿ø{¶ÑìøYŒÞ˜ÿ$‹¿f«ìÙttú‹6n4ϦoGá Ëò‚E¡3£ÑÙt5KÂO¦¿XN¤)àl:·WËjm·îQ7IxΔ{ôb:z=z—I.‚Ir˜¹ ¹Q™Q9#4w>{9:}ù﬩wvtúÿŒNtÿ={õ=üzù<ûÇèÅËìõçÙ/(¡2m€0"aR‚*ûÞ=RD‹"—ñѦšûÍ„¹YÂÃóíriço®Êº|ãwXH<à|\­ýk‚蜲ø´qNQ”·fæ„›BqÀܾCðF4‘`OñÄ}nE/…• ‘՟\i=XG»h¶Ÿûu4)TaR„ç›ÝÅÒ†÷X®2ð«æZvÎf™Ðnìë³ñ7'Eò<7¿MºaR#a˜ß‹ÑUÏ)ÍÛP¬›íÀn.‰BŽ? L7`"˜"Œé FJ 7îÛj½pC¹!¦Àì‡f³þn¡M8~^½¯æÖcAh’‹ö•çÕ?mm׳€}E›Eøìl¼²Íåædóä„ãù“ç‘£Š««åƇ‹ƒÁÝÓ2Ú3Î6öó#kÍW•ÙÕÖ‡Frl›ƒ'˜PW³hZ ÀÌê`s6nl}åÍÕDëñfY6Õfím†—s“i`e °0êzâ‡L$¥`°ÈœßÆ6«ª\zq—SɪÍ[ŸŒˆ.ns»¨­ß@P—b®‚‘ºÍe½Ù-.ýXCtW‚šK?3x›‹Ê§ó~I³Ú”œ(eçeã}Î9š3mÔGðç÷ …ÍÕlÉ“NÁhnü˜W!˜ehˆŒ­·O‡©êŒ•ð7¸(O€mKB6g¸Èj–\È;w‡Ö_a¢˜ƒ=ËÀY¸& ÀÕm=LÉÝ*:Rµ!;_t.³uð˜q±æ·Åÿ³½ç¢Ý†Ïy!£. {á±­þ°‘ÌòÛz±ƒ<žäº‹AîÂÚ&œÏA¢4eé=Tµú¡C(OU«".€‰€  Ýü«"ž¿À×ÚÖªnóa›ýýÀ¦y‡©!$ _.Å#„í#ó¤Ûæ®Û‡ÈË„˜Ó¨tîEí£<ƒ)O ~ ”—Ö½ãl½¤‡ºl”ʤ"BÓPƒÔP_@jÔ%H¬P³sÇÿ¢EûW*5(DOgÊ8oßCjè‹î½Ï•{üƒíÆ« ?¬å©¡Gu OÓì1Z€×”1:pÊr_‘+[R— iX6 ZèË œí.‚bàŠ˜vî~Z/¯#½{qÀÜÌ {ªæ2…ŽÆåü÷ݶ)£¤q(}„¾žC÷tW/×ûlæKå\ã¬ºí¹ƒXB-*\˜º°¬¹í'¦“Bö(úEéj•öË…Šæ¶^UM`êUÛ»:¸Ï°M°R H? SÊF/Ìè@P7¿¶â ¹®‹ÓÝk>u†&)PmCAÉQAY•sﮑ”ï|–2éÈ»ÍÒDÓ虤±¢é;SçDÛŸ†ýb°ë­S¼õ¶œ5›ýôتÙ#¡z$µhî1$E@Ê6Q;£˱Mî¨û@Ò®˜F¨œzʶۚhëëaÂù̵óP± ùÀ¥hè ¥3Ëõrä€`‹sÇnQnÝÖˆ»$ÞzÇ]!jmq\Gßi,·ö`».׋@É<w<¦ÔÔ߆ͽMÁöas¤¿@sNŸ=gõTÃã6G}z}¼æèp“q¨9R®˜è $ãýÎa5ÔW¦Ð{j޾€6ƒu`èó½­’oäóÞ _ƒ™m‰Ý­áðW04lxŽŽq5fÇ}¥~»›Í@l„¦Dø. nC`ÕM­í¾é%ÖŠ¶žÔvY~ôDzÁÅ ]t”Œè6ö„ή”¸'ˆÄÚ4êëÚÙ®~É ‘MÜ‚FáH­ß jÃE=…´G QÁ¦m($÷=”l…óU'œïL=¢é¤†bmOûÙüD†üôßM,IæšbYÖ‹RgèO_9Û~-¦"vñÞÕV›ÚFH  ÿk¥2Å ¼ ¡gR{ç<œ}'æF¦øñÄü(tB÷«º©{Ö3F±8|̤ú÷ƒ¹G§EÄCbøˆÌ³§Ærí5¸Š%,hpó îoAÚ?×ù:¿šÂßfàà(Á%”¸¿÷%oAð¸Ñ¾x±w ¢wlÞ¿jÉà†øÁ[ºûÒ IWØ{qCº/”Ú7®; #ú×do¦û_wÐèÀ½ÝÌǺ$?ïu·A‹þnw˜:“•ÚQ©=X©!Þ?*µ¿”R»õÊfN ÑïáW6c·ÜÙ„€yxþ`×¶öÒËÁ°ÿ=`ú‚WvG!Ó€&…®ðílÆ»`ý> stream xœíZmoÛ6°oþ Ã}› ÔŒHŠ"Õ]жöÒÎÃ0$àج£Â–RYn›ýúߤS¤ºiÖ ‰/Ç»{îyŽõë(!4JÌÿ\ífIôþmf¯gÔ¾‰üÇj=ZÎN^dÒŒfÑòåÌÍYÐHå$Ïó,’%Y´ÜÍbšÍ—¯fL)“h¹žÅfQAÏ•{v_Ï,ÏÉh¼>lõü÷åw³”%UÆœº1&Æ«ÃNWnü-séo‹¶¬+³Áãåìùìu”2îì^¤D9,)")%‰2ç|ôlvòìû¨mzvòkDg'OͯG?} ÏN£/fŸEÏïæž$µ~H #pcXÊINsá ~cÁ±Á©T—k로Ðyí«¢)þæU–\çÅçqiOL9ÉTBƒ'Ì£“"aÊx*óþŒ×ú‚‘´‹JüÀ¼—$A“ÜN¹]zÛªÑ>° zo÷ÉÌ‘dˆãº>\@ØyT‰<š±,íÝL#Î9˜½|9_¢”’&3†&uÑáV7¢så‚ÀT’¨.U»ÙÍR"ú˜œÏÝÙX0e’6‹Xj‡ü²/«…€4GÇûA¿mëê»AÊÌɃ3OË7åZÛà‘}¢œ–_éFW+m' °‡wgñN·—€ÈE’<^?°ÐàÊäUHˆ«mÝú¼BùW¸K8U7°Ô+ý¶Üko2¤ ìÕ”+ûn°’K eì ©q·º¹²ve$ËâzëàiŒƒôÆÅn”„àÁ¨ëªÞ•ÅÖŽ[p È•idlóÒ‚Þb­7¶æò2„³çb{Ùԇͥ+I†*Ç¥]€JBûhlJ‹ʈêa¡Ú<×Ek=ÉZ3œÊÆÊž‡*¼V»'£$[P %aÂ¡Ñ üÉÅ)E¸s±ÐÍþá€Æâþ?)S€GùÊ(NKQ®‚ïC»ï°Ôd ’çYÂ0ÒÑ`€ès¤í°óÞ¢§ƒ‹Þoºqn“&à, s* î¿V((©• ø~2GöåŸî©]U±ðâöždYeÂÚAÌ"‹ˆ,¡aªEÃÐa˜O„ˆq` ;"áéx­Ãëç â¦í`­èïŽ9<1ò8%r[Qø?¶wÔR °ïsîº{ˆ¼LñÀFÕíÝø,bŠÈ$&2ŽXËYØ÷–«aä3 )D%XÂí0'ò¿%šbµuàK±?WélL^B„P!O†Üûyw•þÁvãÝy†õA;öMLº‡e¦D ‡rN©Q0Òʶ«pˆ¼È@oÊdÌêpá”3u&çSà9p¥"y[¶—ú(uŠõ«Ã¾-¼/@Þ£*Ü]­+½wÂió!±^h„cÄÎpGå©_s(WŽ;5Ú¥óîãbå{T¹­É‹”È„ýT7»²u|¬Ð:ÇÜÇgÈ£­³’[­"0†ö^P&R­ äÈ´ÚI-ˆU:r7t©¦l?^Ù‘p(ݳ'Ê®Xk'­ƒ”¸ò.—½w;FÏÒ$Ô¼.gãm iE¼RG)¾tGÅU^W{ßc¬Pª¼,Vm=Åï¹ÕÄ7Œ5ÇùºÉèðÐëŽ"Éæ ë—!‰€Ï@$9©ŒÂŸ~tø°ƒfÃC(é“ùÜ2ùÚÕ>Ý\ÁfQ«×®2AAu°¨a!rf~;1ìr'%™_Ûc¹h=˜‘Ž-¶Û zµ—D“‘{c(2΀üq# m{íkZ¤•ee¥np˜iƒj kÒmî˜%ÏQ>Á‘¯DÛî)fê|~>'~V <ƒÎSÓ/ä]y¿c¿ÀþéV!èÐûVá?Û*„nî¾Uøµ È%¢GlŠ\„Ù·s"¯½'/µ®8VÞw(À“¹ÝÕÆÓ1VgÀÆð€šúû¸ý¡RÃHÛþ„BæÚj!ÍñÍÑþô?Ðý˜‚kÆó!x?ÏþÇ^“eQšHs/ÿý$ž÷ ûŸ;ù§íc:´þýd722‘bêŠYø›ólWXÕÆÝׂï$ên^½º›Wa¤È°ò ëÏþ°ZÄpm(Ñwpzì›ÚUz5Ì|,u³hô¶xg/X]V$ƒ›ÛÐî%´·¿=T†BxuhÞxîB\âm¥hÐÕÝ`.Ü?…°I¬–pëpË»d½ÿÔþ­z3ßr 0œwjù ©å)%è§×з¡2ÿϵ/;ò’a[4›÷(ŠDÎÈŸbàO_&z4¹Û®n\è·D_¼N°ÀnÇ¡Ÿ\ó=‰3qïÍR8°ýý½÷½˜ýdböþÞûÿ*fÇE ˆ;ÿw@õ!’ò©÷\Þ6†ƒY½™¢¿-½s˜IG¿ ¡’ªaö ¾ Á)«F&¥ù®…x˜ÒlTã]éÆºÏ€>Å÷.u¸„Mû˹¥‹´@ŒwÐ~ê5~\…k2I*ÝÀÐxЇL>LíC¨¨ž±$É|éCk¾tMM1ÞüWXšCuv݉*FœÖ>àè ï®7ºÿ¦ÊóÙ_ çendstream endobj 542 0 obj 1963 endobj 545 0 obj <> stream xœ½XÛnÜ6í³¾¡z”.-^$‘~kâ4M¶I¼@Š:…!ki[VÚHÚ¤þƒ~v‡·eiíµ“c˜¢83gfÎêc#ÆêŸý]¬ƒ8| ?×ÁÇë'¡ýU¬ÃgËàømš©Ý$\^æ¹@Bˆ4ÌRŒÒp¹"†èÑòïsÄ2o„ËUMÕ´j™p„Õ~³¼Îër³­ò¾lêN=¦)C‚ا8SK/–Á›àcÈ5Þ,â`V ž%a–pŒb®¼ö*8~õkØ·[¿ qpü³úïÙëçðëÕiø]ðâUøfop8á÷DGc3?<š€}Aï†G¹¿< ̨‡ÖÌ"cHC8*úŸÔ¾ QøÛá°­ ï‚“Ý Jy á8Èð¯Ù– É‚ ‘¹T|RÏSÁ™]jÊ•yÉÏpŠl1;Σkr±9Z\d}ô×ò—±†VÎç÷QYë2ÀˆóÛÕÞ§*À-­ä§ta`Dá<2/ó‘—3/kÜßMY`"ÀÑ,Ä ¥,&ß L'û‹Ë¼PS›IóìÃuÛlëÕÄ,SyßÅúí Š3‘Ї¡`8ÓP%‡Ñ^£#¤ÆReýar0~4‡‚qA9Âßà‚ˆVU’,V­“8Äšíe%uc„+­\i$1Dµg7DæÖ¯[)kƒ<ø:°×¾Ó/«­œEš¤ NtQª ú–EÙJU–›¼’}/§6°Óc*p¾„ ù9ÿK·•ÌÛýÅÊÈSZko`0ÆÕO&ؼªšc‹¼—@+]Y\èÞí¦”‹)EI"¾ ØÑ8‚=а<¤Ð·êµÆÂj/áµÄ©ìó²’:ª„*6ã»']Ñ–5°&8-Ÿš0¯¸k€åÎ"‰ÂîüA/°±Œ¨ ¹éR@ÉЊÛÎøBˆ2àVwx¤ƒç½1‡3¿c¯‰^£*#ncU^¶y{kÛÛkûRb+rø°Û”­ñàó|¸4Õ@ôœ6K·†;Á)挕:ZœøA=¯ÊOÖW`išzÌzVÖE•›#¨*ž]]Sm]*¨~içñzSɵ¬mn=½ ¬’AÊ( +¥ABWccD½¡öçvmHêytf8Ô dJmm8;Qêe˜éëͶ—-ÒÀÅ~Õ½+ûåÔχµ?n.ß™‘z‰•zyALLæÊ9ôÓ¿ÊâæöŠUϹ8¯¬8Ó ?{eoËÄÛ½+!nehÔt]©FжÃýÐûF¿ITßìšDçwÐM£OJQšÂIæ’ù|˜«7ÄŒa+è,VY‡ü/Z™Ûr ‰ïÎþªØ)¿?3t‰Fèẗ$î¡´?ñP¥.ºvبkÌ´B!>何T°ƒR¡Ìïå;Éöúl—XïrÓÔÕ­å$ÏÅ•ü¾¶ˆ2ß¿«Æ16onì±;aä•nEàOhÜŠÀìe!;dÛÝÓ6³,»ÆÚ¹Ã¸9æÆ6’ t'Å#ÄzÙõÖ®GŒ+¹nlËŽ 7×m¾6Y‡G?jŸáOà2¦}6ƒS¨ÊćRÏà4ÂãiH$HLõÞ×&»ÌÃ1Ž— 库i¼JÊ(z²Jc°Á>ûšÙ6õ…©éȲá~f2MžœéÙK&\˜½aýˆ¬b¯÷ž–UÈ(à0þÈ÷ÖU[áÍÉÄó"·³m„ è#ÆàB#Q¬†IªOý¢DuÊÁÙ¾÷û/¼•~…ï¿ã{¾ÿb;K×AôRÖ²uªD*ÚÅpìI¸¥ÉIⓞ´ÛȺߋ~¸tí&Af6:êÆ'$;aÜÊqïþJâ8µ2ÖÓpNR²±Ryiî#¯ï¯Äí85sûþs{mÆNΛà?ÈZ¦Uendstream endobj 546 0 obj 1729 endobj 552 0 obj <> stream xœíYÛnÛFí3¿‚4­÷Î¥© S}° ƒ–ÖŠIT()iþ¾³7qÊ®/ ‚EÈ^íeæÌ™³3›O9%,§îOüœ®2š¿¿óìSÆü7yü˜®òóqvú^—n6ÏÇ·YX3b¹©HUU:/5#:¯²‚™“ñŸ7†À0Ídz¬˜s7Äá¢2aìªxÛœŒxU)¢Y1Û/íÉã_2Ɉ)M•æ¼ sJXXL÷+»“à÷²*ãæ»z·hÖî€×ãì2û”K.‚Ý#I XÁ–*/•a„ççùEvzñ6ßµ{›þž³ìôg÷Ïù»—ðqñ*ÿ){}‘_> A •IáD8ä «T4xá­<29ᆌsKWЮën\T¤ì–OâLm(ܾW”Œëo·q †Ò‚bv=³ŸÃ:ä“`„U‡Ð½pß—„¢fÍþÂ58OhR©*yÔzlj””‹8dÃÆ& ŽW­î¬Çï§%VÌÛrÉ©`wŸo×#¥J4 xÇÊòQÜ,÷v¸7Ôa;9 ÊnÂH(StÎ¥Ÿò²µõÎï#8aYu¢ÚØB|êQìÀ88 Íl›½'3Ž•Q=ý˜²×ŠÙëwd`a7o÷Á›ÍJg¶L ½9¹`uUÄdHµD‘ýöh8ݯ\^l¼*hBì2q8ºz@‚Fèƒ'W4G ·Ê€DMNH\ƒqaP•síoÑ»À@‰Ü­Ûzew¶Ýž I  |,2.;ÿ9õÑAþÍ %iÑ×íbZ/}ˆÁ Žj°Õbz„£ÒÓ ŒQ ÅðÅ£óÙv ´vÖE÷ éÓf¬a¸hÖI¯{4Ý SzRÐ ÙÀ¥£êæÓiÓÎë¹·P:i(ɹâ}<y÷æ|Höi³lÚWŪé(;³ËÈšÌÜÅ  r0«H›GêZc´æ­ s'Õ¿j´C-Qf?jåÄH÷Ý)-B¶FwfšÂQx~ˆˆsˆ´ü.|í©œ†š«„+F¹Œ®Â¡v·o×IÐ0ŽÔéËYÀzm¿Ä+F±ŽŒ=Uá¤MgìÖ‘u®Ëž¬³gÈú8êÔjK•ü Å™gŸƒVk$÷Í"h]…ꢡ½9ÜZhò¤JíXQ`Iq_QrgQyßIÓ¡ %V=²la}°&•-¿ÙÝ.ÿã”.nÃ`hRœêårXÝ6ËeSmð%&$¨0º*š”ûZ¶õ]Ä6W1|T$o¯pþ¶ài9ð“cxõ¤áÁÕ‰–òPȨ}ß :9Vˆ@ö>¤¾HÓðÅw/§úmÄr„“Â.@.ÛX #˜A¶»röÖ1Ü(Îìm½_zb Ñ»xz‡oƒ~ |ð_ ™‰Ù»ëP»X²‡:×zõ %•¤.š‡‹kX:~ÐÎx1Ï¢îÔZXÔÇ¥m0…áÀ¡¢ª'+ª³»µ[»»ÞÔK» MOÅzÂó½ôô.E«”Eƒ*B7¶´u;(Æœn%á*1#@8†[øÖ®¼|¸«É!؃ ·V6$¸Fþ•>ùöP‘t54Š j‰² ºJ§”Ž• ZbêšL)gg‚ö¦†Ž#îYu´÷:½%C^p%Bÿ„*‹§*‚8a[¤ë›†ÕÏ"¨£çMí!ÑÔ!•bòqÞ6ûu€ð™¯5¬úe鮸v)}Æ$ÐÇ{‡+“øñÁ ­¹9R*ôƒîY(må7¸"˾á™–ÿ¯Èÿâyï볡 À@Ìç¿> ƆÏϼt c^B0=íWÐ3Úµ+j#b?†×rÖëUÆE§–<…–¹º_§)ŸE'¬ 㯜ñòLúA¡pŽsJulÃÑž©¾—ýâ¹·çMH™^€Kÿ¸•f¼j"‘£}Ûî.³¿0ʶqendstream endobj 553 0 obj 1495 endobj 561 0 obj <> stream xœÅYmoÛÈ.Ðoú ½üHÑšûÆÝÍ·æìä|h¯v#àçZ¢m’èˆb÷ôgwöMš”#;ç+‚ļ/3óÌ<óìèc’šdöOø9[²äü½}Q÷›$ü˜­’7“Ññ¿reW³dr=ò{Æ4цcòDå”äÉd5JG“¨&BØ‘L棴j¶wÍÖ~ΑÒèðù¬Z»Å9‰Ÿl7Õҭ㚨<|Hýèt2º}LãÞ®±€]Ú¢•L”Ô”dÚúñælt|öd»iÊÑñÏ ÿ`ÿysþ=ü8;Iþ4:=K.öºI¥~ÄOž‘L`G¹„û ï9*)QÔÈ®£Œšgì¯p§= Ü9¦4#Jš„’s•]úÖ®S„Scâîf=Û.ªuíO`TîNP$×Ä‚1bXÆÝêÿúeªÅ<’FE„>9›IŠèËbî7aàs"ø¾6ýkSßöŽаüé£L‰ÖÎï<’1xóòÓ‡£¾;c£ˆ¡Z'”ûË_ÒŸºp Âï!ÔݳrtVÙ»^[̸>Äg89§_óÙÚ®ùâólY›!e›Àßî¶)ë餬ËíôÚWœÔ-µLëÅúÀqAòç%ë+WÒ”0¾ Ó¼j®–îΕ&šmo 56ÌPnCX–‹u9ý¼˜oûUK3Fxþ ¼cxëo'YŸÏƒA`Y„á‚`îŃ0/H+7˜°Ÿã?Ê¿YwÌØü“Û nË¡ÐA_Ð2·s–‹¶Ñ„g6ó$‡N!™íF—éŸÆÐ‰´V¿M~|€klbœÀoKm$Êz(Ê­¶™) g½4(ç}H8Žé •æüU8±]é.r ÑöÛ•[§ÐÞËôâ¼¾-îŽÆTÐÐlø³â‡ÇE»%ŠZðuÃ-4œ,_¼.m¼?6åæ~ F1k7¥°míŒRÆE2ƶì·€jƒ÷»ÑÄ#¹.‰U^Rs+ÏuƒoK¿D ‘69Ä JæS 2 oKïí=ÂaàLŠœÛ¬ëÅͺtŠN>½V –CöŠ« ¥r¿Ù‚ƒn•x_zÕl·Õz#¸½V¿t÷rI{$áSêH¤óém±ž/Ëú¨ï P¨µ'æèeê«Âl,+Øc!ÛyK™¾7}-Ù¨Dª tÏáÙ“YÓð¶4x{ùŽMÏO¦?üí§“¿Ÿ¾Ÿ¾?ûõô·ˆMçÁ¨?ôÍŽ¿á¿„†ôB]yÿë­ÕDÚ A:©m(–ΚUé‰CÊqqsÓ1•ÌV_„efÝÚ¬â ôw‡ Èîmjn Vô8·!Ú­iŸ`;Ýå1W€¦¾Ò­b¬UÇ-Iì³»õ}4 J$G]¨ü´˜•ýÈ0eƒÌì4Êãs æ‹bS¬J åúußèîÚMY×d)°/z•·¶À{uJ/œ sÈNóãèñ~™^µåÂ'3öIÿ4X3{k‹6û&´ã›S¸VôB\Ø7©C<×Ûe°Ëc F³†3áªù àHú©C5xîBâP²é¹©(ïÛòa€Ç*ˆÅ6Þà±åOĶ¥¯³<Í´5ìéˆK$ïúéÝwÐMuvIòª/höû´¿¸È]OÐb°t@Ü5`ë‡ûlTŽÆÂÉ7ž¶]¹À¡#;#ˆëªYÏÃY–Œîè™Uukh6ÐÍ(‰.±2(vÊo6ûù»óÀeó8öƒ-°kÂØ=! §âó|? ã)*³©ÉfSn›Ùs’ó ¼ %uàM†!†³~ÞXV‰^mŸÃ™èî¥p9kÍ,—ý…±ƒ÷E¯PND ÷‰ÿ^å DZ7Ü`ìñá†ÿ¢Šï*õ`I¶D_‘¯vO¬vLuÀìAX¦Ï* c Ïö(ëªDûÒ/'8‰xºÆKO5P€³ã dàýab Ö˜èþüÕ¸Ìä}èï/&¶=yâ‹ä¸©n ÕõÆ{ÊÕ©´½%³ ¡xGBí¢„2°ˆ<¢Z»Kß¼G~›­A£ •ÿßfsJù6›†×ëÊÊùu¹pûbþé¥hàyD”OÈŒÊ~;øçl@ACWª:²‡Ñ×L½Úá/ñhžeYîУènGXAÆ3¯œmôÜaŸCqÅIÄ rôËýŸü;p.Fÿ¦”•[endstream endobj 562 0 obj 2140 endobj 576 0 obj <> stream xœÍX[oÛ6°7ý =*@Íð"Þúصè2´]ÒyØC2Ž­$Úl+µä¥Ù¯/&)îwEP¤†éÃÃs¾ó ù)LjäþùÏù*Ãù[ów“}ʈý%÷óUþjš¤i>½ÎÜž É•FZk‘KAȧ«¬ øhúGF•BfçÓEVÜPX"Q¦•[;/Þ7Gª5G‚‹í²:ú}úSV¤¤ÒA浓‘fc1ß®ªµ2ߥ–^y7ëêf ¼™fgÙ§¼¤ÌÙ=)‘2j£’ç’+‚°?_dÇ'ïón³­²ãßr’ÿÿ½:ýÁ|œ¼Î¿ËÞœägÿ ¾IÆq8œ‚I•f¹ô¦Î6³UÕU›ö%üvü‘cUQ¤Jó¾ÑEõ—“‘ñ4JPý6õ¼*š1bÜW˜XáÏe#ÎC4ŠMÕm7ë¤X 6󂻣 ÑZ!¬‹¦vø…Ô.…ñÇG71Ξ§`ºÜiš7V•@˜ÍfQ¯g ú#û•Dš+jí ïaÌ~ÏëÛÏÈ¡ö?|%ûþWÛ®s$í9Áâz—&O9‘ìfl ëm&X¥ )'„R@.g qc°5AEq.ÒQ·¥­;š6õÂ"¢ÑI_¶3k‚9´>¹ÝZ¤Aˆ3¿tQÔÖ|ÂH<òCò*Èl¡#ÅÞaS*(>`:!œšdT9-­È/ÖjC6°?¶ZBNÈ@‚fÛÝm»!¾”¼,˜­à·Ku>ñwqê' ¸Åmð)fIðÅaÁ¯ºËŬ½µ®b„£uÿ[p_8Xq²É¤m#)ÿíIç(àîw{Ž0IC¿h¶WKŸZDñÜt9AEk>ÉYY"ÉEÎKS‰”üóâû£ 7I¯ä°,ìZã'–î+תXi’GÎŽQšjDŒ ê•Å‚H³¨<ËzmqU/DŽD¶QK›©~Ùk0¦SMïéû0,űØJºÆžFS¢bWNÓ ÌÖ‹‘“tZöRXd–ÄœÝq‰~}÷Îg‹Œ«c†mª¶k6•/­2zÑ6K—&Ù“aÀD#A s’©8¶¬gÕÿG‚Ö+kW¨Â8 °]ù¤ŽcÂyq»©i›¶™J iÈúæÚn")f¡jô„vººKê: w ÉXxºÖëÃ1fŽNý@^7¡‹'‹{‚²©‡ÑØÄKô{Š„2?Æúɼs&Ñ26v±èä(@ŲZßt·#ÓÀEqµœÍí’&ÞŸ/†ØßßÖ]eשvÔô…×ࢧ÷h@¬zŒ7C81BÃCÜf®Ý¬ÃMÁ 4¸lë¿]–rHþ]ûÿ†­'m ©j&ÓfììëV0æÑ}…\ÀL!÷r‹ñ5™d:g(€Hö™0a0Í*s9¨:‘$3¾n‰Šf§úX:ﮫ{KeœfÏa°(æ.œC«ƒy uæò¾^t·n¥P¾ sŸfžfîý@±-qbïüaný’ì§íøüaaé¤ LWâùÒô~lüI¦ŒQŽîÁ`t‚§ã”ÔSòÌjŠLûÉs+¢Ãk ÿÒÀ^­CëŠ.ø FY;ÎNÛÛÙ}V&ÅØ¾T€Ï®p€¼ë¶–\É}ñ‘ô éÂL#’ïM—³í¬­OëÏÕÒF§½8”°>ü$müLßmœ—ÏJU˜¡Õ¹Ù{'À˜£à«ÑžIÂñ”ýWŸ„ü±¤÷Ç8/Ôë.û‚Ø?à ™ò\¡ð¾³‹×…¹CÌ»ÙúÆÑº鳚J{—“y½™/ýL¦ÒY·­\pE’·‘¯vPVÒÛPRŠõ¸¶÷ùSaC)¾Âó'#dx©¥RÂã*”.@.µo«uµ™u• ¢¹+'c›ïØ=¦®AÅ ÑÙVCô~ž‡œIÊ+‘NÐ¥ä%•/KçÅ,бð,Ht†»C™Þ2ü›uÐye½Ø ¤.MLôhxÝø ”8úùᦊOÓgÙ?! ]2endstream endobj 577 0 obj 1497 endobj 588 0 obj <> stream xœåYmoÛ6Þgÿ…m€>:À¬ˆ)RݧµéÚ Ön6  Õ–¶äHrÿƒýìߤ£%»IÚ†" "“Ç»çîž{(ßQH‚Hý³¿ç›Q¼‚Ÿ›Ñ݈èOûk¾ žOGç¿%B­¦Át92{&$i˜¦iˆ„„I0ÝŒÆ,ägÓ¿GD†L¤°#˜.FãEþ~5ÏkõAœâæe¡W'¡´Ošª\ëu1:ÿ# £ó×ê¿ço^À¯Ë‹à«ÑËËàíÑ8 —'£0b8Ò˜ÃùiÜ”³0æ©(C’Dô V8S°gN‰Ã8•¨ôºÕ"Æ$MÝÖ]1oVeQ›í”ðv»Tg–þcÖˆ.} O…ËÁ{ílÁ‘ïrµ0›pΓ)¯ÌŠ:›¯Ë:ïÙf"ä$åvÙõxeLB)#ââ6ñ@8 ép»>ë3I%8&E@hHÕé_2 :ofÙ®)gßîêÛÞ$"!§Oˆë;x¢üw°˜ÍÒs±¿ùj\³òë³ OS@•Ž¡¿¦?BD¤È¥‚ˆÐ(þ¬ UÛ¹c1š—g n†„ŒËj±*²&ŸÕûºÉ7Ö? c*òã&Ã$N?Ä-VN¶OËÝ»unèAшëºûYY­nV…Þ !»¼Û²?Ø"ÈÀ)“8IÁ{¨Xô9›Lyr­¸Ö6ĉ¯;–âöÃŽÕ>´щU‹’Ø£•ååU„‘H“´+ýõ¢gàB{mJFª´E²+™AÇUÆR>ÊñOiÚïy |ýtò)–’4€djj-ð¨ç#8ÃÇÉZ¯…œ¶~]/\+ :žï6y¡ˆsµÝl2·ÙCbB8UPÖ¡¬}²^ÅÊcîÛôá%©F`€×™À“­Å0V†øµÅÕL³ŽIåU[\€èG’è^lª`ˆ™øÂ¹D‚ *+\®E¾Î³X†¢‹,3õ{à ë°­ìÀ?0ÌÕ´Vkߘ´2`Ve8ªªŸõA€Ò— þ¶ÄÑ¢€‚„’êI¤¾+,‘£´›~&Å´Ÿb“žTÏI¯õý Ûn‡ä°Á È›.»¨Á½ìD\s:®¼WycsÁº5·:"#„§Î§uV7V"J”Ë9Ȧ:_XÊIö³3E\²Wôç ý4²6Ù¼*uæS4·Æ«Úƒéf‘SØÃ®žL¯5jãd-Œpâý¥íu[Tjv´°Q!¡¬xàÈßš)·y1û“ë1‰"=JQbÓ±<½>û^#÷€¬iØZØ®ËæZá·så‘tùæÆ&ôªîLÔ=8rB׳…oê-þ$Jé)+%¦dK_ŠY ˜Þ¬;Ú$§N22ìð,(œ¤KüPŸÐDBm ¯O~·}âÉd…M_í8°(3Ú×ÎŒ Ì °3> ôÀ ×벬ô\êu‘”&]VECÊ{BÚ6yf®5à™ÄM˜5V9¥Ý!Ùø×"‡fUžÍûuk2Gq·î¦Ê¶·«y¶¶ÕÍÛþí½ÕŽÂÀIÆyef°òvÃES4NL˜·ç¡þX¯ÞUYµ·TKüloÀ œ»Ö'±w'†ÇJ±9„g§ Z¾±´‰>19&K;ÒÊ‹zWUJpñ¶àRÌ…å®ÙîëÜY1| “Y¨òÌÄB=í²XÕÛuÖ=wµï«½|Zî@ÿÚÑ•Ðøƒ†ÌcsSµŽí³J·ÿ„ÁîH07‰—U~—VK ‰80)â«âF =qŸÏ!ÞÚ\óá~·mv5ÞvåWЉ›¬PÃKUN¢'MÛ5k(]¸:­Þ[+IbnœXØ×VÀ’®úmŠcŒ8*Ô'^*QW}¸µX\ Ež/††ã;“5ŠPÞàj*U¿¶ Üè@ƒµàÃ(pþhFx06=D AAã·è©b uìã¶6qËàÆÇç¾@yíH&ö ų1š –‰$&qbrØaöÈ1œœ¸½S:x{'LSéãg³|ÊlNð¦öÎ웎"æö®ß³o1ñí3üNáˆýI¬ô¬à^}ìqLâÕÿ‰0³ÝÏ6»u_SÄø½€5.ƒo|ÿヂ…©+¥<"Xú”Ä»ÚÎb‚Èäj> stream xœ­TËnÛ0ì™_Á£|ðšË‡Hæ˜&H] hrHŠÀ•™Ô…-ÍßwIJ–(P†Lp5»Ü™ê… @.â¯]ëü‚žgöÂ0½áíR¯øiÅ&7¥hÉ«'–sÆÈï}Ém‰PòjÅ )GÕ& ^ÍYñœBh@*ïr쾸܌ÆÒ{%óý2Œ¾VŸ™FpÖùs–1–‹z¿ ë ¢½õ¶-ÞÌšÅf8¯Ø5{áZªÜ÷Xƒ£=•4܇ \äy:e“é%o¶ûÀ&wÙäSü;½úHËôŒ`çS~ýo2(B'4@0±1­À£7mï1D´I ݆6‹yRÈúj»Ð<.Ó+S‹ç‡b‘£‚Ò ì”ˆ¡ÉòР4Þvióðš!C %èÃTЇQØ0Æ2¶ï¸Ô rÒ9hcéŽ@ó=—³]†:pê@V×a· ‰•ò ÌápjoQH/4ˆžîmèªÛ¾úl¹Û³ñC¥IÁåüáO¤”ÈyOzþ„щ®HÑh4Lßø´_×ÑjptêX*Cý.Ë4Ö¿Š0›Ä=´¼­B¶»“ãI¡§itâHßÍkйDн2Y²¿šß OYå0¿B> stream xœåZKo7.Л~C{”‹^¾ÉS§­ ¤ =8…±‘6Š YrV«Ôê/èÏ.ÉÝÕÃ¥$?¤8ŠÖèjf8œo^òc’"œ¤öŸúï覗&?›'½=ì~Iê?£›äå°wö‡–š$Ã÷½Šg€¥‘ÖZ$R`$’áM¯Ï8þÝà 1© G2÷ú“"»ý0e3ûÓˆs­êŸ«òvUÚï”QÄEý™PûéÕ°wÙû˜0B+U )³¦FJòDr…Qª¬ê//zg¯“²Xå½³?Ü;ûÅþçå›ÍŸ‹óä»Þ«‹ä2º3ÌÕ–­Ñ¥ îr³¾¦]{ ªq°7³†e¨×à”!ŽUB4b–òªÿzq2 f9$I¼šåË“¿†¿6‚y«OFkí¤ÿW °¹–Ñ—·³éÜ —'̪„RGø“%‘ˆÁ¤æ]ÍGåt1¯™¡ •«wh"cš|²¿s”R­Xcšé8P ÄèÆ1&äúfQ››Û•óO§ö«Ù¡š7_«w3·%sÝ,{wZ %­£Çh×oOBS°–Æ("Á–’gaËë"P€”¶[|ˆ5ik ÏB)°rmN4Þiúq·=‰á&µ=íæiÏÛÙ¢ D› ÆÚ-ÈR¿£6=m§ù]Фvv¢âÀ~gíÔáSÜX?ÊR{DhQ›ŠG‰©ŠˆO¥ÊdÆãø”ÍסO™DÛ–ËCå2ÜDDtªÄP2¹dÒñW[ñ‘'-]þÊ¡þ_,B⸿â:¶ùüõº\Ò…ëqið(å˜ê nuåò`ÝßaÜ_ÌÖU¨W-XKº$ƒŸÆË*fåéÚÁüÛõmé¸MŸË»*ŠiOŒ¬m‘qB‰Mâ"áT!¢l‡|Õÿþd`ºc¥d°·McM6Üc3Ö1:]µ1çÜÆœ Tëmå²BƑևÊΜ`ÈuYL³ùdfhA nEÍ8ã!j¼í¼=&í1£ÍÐ<’Hñz'1mWl3ô>’ïC|G·¨Ð6œà*öÖ´cëyéÁ*°ñ³Y>Ž#­]û¼Wb£àf­uv×☉af»ñ‘f‘d"= Ê]’ÑhïFš‘£”ø"•‘HÖ0~“½u“v”þ¡Š¶88%H|Ó`p;ea_¢C™,æa"ècûÉúÙeÉx‚¥k'æÇýûBÝT²=¸?¡Âœ\z¼jé‚Ñ´, £Ô¡g#ÇnªÃ˜á$ûÃÈ…©P>Ûƒa”©ëtQòÙlz» “!g°M|HïñÔ‡*û‰9í›OŽ»s&§2uevоk‘"6Ø$Æ#U©,JÚEÝ2|%°Pw³pøzeaM‹QGÏÀÓ½cÏÈ7=Úˆ»rüˆÝû(ôUÚYRS#ùQFäY1 $SýØùø}nc^§gç™×ëä²sOö£Ë6xº[õ,’¬¤½B¡ %0ÁÝ„RÐ’Àvh+ÐBj¡C U$Ž@xn€Ž¥v@šCG‹po€îž%~FÜ  ß Äˆ38éPq=LbÍè!úa‡I~\/Ëb:Ÿ„ŠÀ¡Ós¸$Ü+´G‹ùÒ©EdUÌM_ú!+¶7ó¢Ê«”t‘±°7ú€«_æwewâÔ‘£™Þd“Ž„:I_OeÜóww½œþ›Wg8]xOþµÇ‚8Êõ"f‘fÔÞYx'{1û³Ow¨ÏW ¥A§ŸÏíñ/|x3°ôŠç¸á.Ì/ßÒM<òøPo ü·E›´!Cë³”Æ[vNˆ¡€ø»#G«@ ¹êŸƒR£ÕM^ÞýkÙ2k˜=0wÃêÄœNpófÉéTkEaµîxSㆵ³lи™^­«„SûR ûþÌMFj)Q§¾qZ™+…]˜ž@ÑTBMïÁþöî'4\ë' 4.ph‹‚ôpÉäI%cd:{O7N7m Æ4¼!Ù*»CkÿYÈI/šTÄ=1ìŸYÝ?ÑöØ?îS ¯x²Æ{ek5ãè( +Í+™ó¥9#½©ÌkMVd7y™Ëá6MBU¶J7iÌ‹ø {-bþi:ê0Ú !ÃÌù!ô~ïZVŸ»ªøˆöföÊô:®(˜F‡÷Åx:ÏÊê¶Þ$%0íY¼³eùÁ)†%¬À£¼2*³7³Æ¼èØÆö­Kµ…¦YwmA|‡Þ›Çç²Þ¤Û&¢áxõ Õƒ¾Û,²ñtµì‚™UóksØÑB#í·@BÖ±ƒdYfEY7ü~ÒÙÜnSͦRø‡¥|âbÍu™šÄ‘6Qþ™µ%²»„ÖÎ:ŒáéšÏǦþ¹z£©×äM½0Üh 6 4Ýú|[¥ÚOð|›b¶z›çÛ¸>˜CÃÏù> stream xœíY[oÛ6Þ³~Ãøè3Í;©*"².«³U¹-ë‡Ë>NʰðN¡˜lvtBÁa‹Ö Qå^›6bP¿ÚÂŒÂ)ÄRîóèÑ#†@ ÙsÅlÓ9ÙÔEµÎ¶¡èMðÍs ż-…íÎ0ª1móÒ×€°ƒÍÂà’¬3ÚC`„ljՅ Z“qÚ÷‰e+\” WkŒÅ¼@¦\‘¦ö?ò6t @Ù±uÀ[ËuÑXÊlñÊž¥*Ž,í”áÞÒlÇÒ˜.(w÷P¶C›¨=Ë“H¾=·W:†Ãßþ)éËÇsž’:wEG]ép8 ë#2£»Ò'¯{ö‰µ{ÁóùæÜ“޾éùì%¸!6ÙÕ3\‚sJû·àLk{Å®)f®×­’ÉËr]Öà;W¢ƒÞ_ÚCöŠ–çžN!) C»2ˆÑ–uÉ·Áőߩö‚á•ÑK¦/…ä2Ž#D¹¥±Î»M"u“ðËE£ó½C;}ZÛfʼnëMHˆèãÓ¢l ¸MþŠPÃñendstream endobj 612 0 obj 1119 endobj 615 0 obj <> stream xœÕY[ÓF®Ô7ÿÜ7G"³s¿ì#Ñ­T (RB…²‰Y\eãà8ô×wnÎŒ×Î^Bv„ b|æÌ¹~çûK J¡ùã§× L_ë¿WÉ—Ù'©ÿ™^§/FÉÙ{.Œ4NGŸ·gˆR©€RЧ‚#ÀÓÑu’QÀ£$JïHG³$»ª&ËÏÅt27¨Œ)é•ëz¹®Í:¡0î—13K¯FÉ»äKJ1q¦ )úL¤`©`(é/.’³‹?ÒºZçÉÙ_)JÎ~3ÿ¼xû«þ¹x™þ”¼ºHßæÒÆ5€œ{ÚT…óÆ~5K p¢$mÜ*f6 £Å‡|6Ÿç³ù|^,W¹‘ éCV,ì>¸„ȯÚðœ½gïì” Å•˜å_Hì ”ìÂüÜ<Æ›Êõå<ïª&V¬Iݦ£¸í¨UÌ$в)ÞÞO±bJˆ)®P7ФK}·f|‡æ' ‚ÀB c)¦Väe5± æ&í;ov š„5A´Rí,ÛÚ1˘ÂT(_L cÛC-'qЉ¬•~ë F‘žT“ë¼Î«Õy7IõÿÒd«Ú"71Šû]KÓžp1Ä6j£ ­ F±q‘à¡ÂÆÙ´ McȲ²š‹IþýžPiòºëÂO6°ЄõgkÁiîÚŽšÅæ`’¶N çBÔmŸ üF­KÀt£“Ór™"Œ»&öCn¤!ò!«&³b½êK35i&­47ͳ÷€nZÄ…­áW˜peÁåÀ¡³8Çž—ƒ!VJ7 ÍÊùöª\ؼ(‹r &?%R»“”­7zß“Þ|\Ö£°ˆÛô D’¥z rÌiH]kCÍ·ÑÄm‹jÚðèøÜ!nÂ[cö±©qrq3{äë ’@ÌŒ|Ö„ð.ËáÕä=íweùcOûÀ½NaÚãEÏäºeÚ뉈np¯S˜ö»¸9l{õºqZÜëÖÏ * \üŸA B·|E¾‚¯“ìu® Ó.[£iëƒCé8vïÿÝÚÈÍ ¥uîÅp¨—?§Í;: 'Ø”-:ÇâœÚ÷<„µ BûeVW* ýɽåB4~›x…[:íˆ4ò-Ì EÜH¼,}#G7Û+÷ÁÅ&ç]ò˜&&Áendstream endobj 616 0 obj 1467 endobj 621 0 obj <> stream xœíY[O#7®Ô·ùó8Hãã»y¤¬¶TZuYEê[¡ l*’aCØ&ûë{lÏÅà $DíC… šÉñ¹߱ͷ”H©û)?dz„¦ð÷6ù–€ÿ&-?Ƴôt˜VÚI³tx“„5H%ÖZ•jD¥ÃY’1u4ü+aÆ|MÓá$Én™{’0nMxw™},ŽÌZId“Ç»üèÏáo‰b´±•ÌYѸ0?ÎòyÂgmu©|9ZN‹¹3ð~˜\$ßRÁxð{ ˆA-ª”©–5.ÎÓóäøücº\<æÉñ)$Ç¿º?§Ÿ~Áó³ô§äýyzñº4pJ¨ðyD @gÂÕxüݽ¸1¢|UL'>E–p°²NÛÕt6ºÍ½8'²ùæK6õ'ÊP¨2á^–”ÕÂÑ­J`’"qŠˆº*Ù;÷½öNðjQñx}—wUsMÀÖ%^u·,Sm•ÝIñz;Å…rc}·‰ms³ºz˜þÈ;Æ8'€ºŸâUÆÖ[SÄJ«õfc`dŠM¨˜MgB*<€µló2ûùh ‰±Ò¡©ígÝÑÀ±gMªÁÀ¾mË ¥U»ä󇾆’²n¨/GA@7 ®—mÊ®{ÜÙbäZ¹Þ«2ð·E]ƒV樓ÿªYâþh€k ¡6+q„5ª:¸QËÏ”(d e ÁéD?…‹(¿£Åh–/óÅÃI·ªÀˆøìžb|EÑ2 ¢>JLÇ==?¨Ä0–Qc*R†¹ˆr» ¹@4Yåb\ød(BeV,&Óùh˜õ‰=ÌŠ1oÏ%<‚ZÛ^Ä[ë`O6äð*{¦ƒ·È"Ç2ò§F³fUK¿ð]'Úñlc¢Ô.&^ÂD» tÃÞ%ÿÓ¨Éòñ²Xø¹‰3«q®¸ñ€xÞʼn{ôŒâè‘6•šÎbУCqtÏchÐv³,J!× ¼s §d]ƒŸ÷žÁÚ¸gõ[Ùe‰IϹ¨Å»”zÇ3T‹0¬ƒôSÂào'ŒÐ~ â»§ÿcxø‹¸¬›.‚^µÜ ¸Ÿ/86Ê>ù¢Úúµ7{mÀó†Ñàý{º#‹´oÅ´¼11qãVufª¹}ÅÖÅ«täÀãZ´×?Ÿ7`”aûÊÿ/bróâ­¸¡ÃU{¸ç=7 xh¢î‘0Ww£ð!Ÿç ôÍó‘®/ëÛŽyÙÀ¢é¤aà2øónŸÿ>^–}at,œ0}"t ¦h¬2JÃ?- ÖyðÂíäš;ù–Îki]&iOÓ•ÄY@%Įַyó‹‹ä‹r¼•endstream endobj 622 0 obj 1379 endobj 627 0 obj <> stream xœåY[OãFî³Cüh¤f˜û…GvW[*­ «H}€ g`ÝMâ`;+ø÷‹'gK l©‚(ã™3g¾sÎw¾1·)(…ö§û, L?šß›ä6AîIÚ}‹ôxš~æÂÎÆéô:ñk&(• (¥x*8<.’Œ~0ý+AP¡ÌŠt:K²›:_})‹|nQS²{T­ÛÕºµã„Àx7Œ…ú0MÎ’Û”bâ]™P Íž HÁRÁ$PZ×O’ÓOi[¯urøGŠ’Ã_íŸãÓwæãä}úSòá$={ÚɆ£íÁûó}³C p¢$ ç*g`„¾\Tî¬ 0¤ÔîåÚ…çY¹tÆà¢nÔvø™A¼ñ^,Ëfú›ŸŸJ6àÿbŸ ëa¿¨Z_Íõ¶i"âƒÜmºï s ‰¢l/Ã÷ÿ`øâÀOý„ æÄSLÝ”OU‡•ÚB>DXØTÒ´Pð½X×MUƒ-ß&fg¥¤L1q¶ÝäSo˜F{åu¾Ð­®›£íó# $5ßí·8hÑ 1Š‹ÉÌ(‹ 'abqŒ";Æ•çžK‹nˆÑyVTƒeU=+—y«þœþöp+“Öf[ÝmÅDU:DÉ#¶Š&~Yj>‡£®Ù)ÄËÚboó²ÉŠ’òqu3Û®H„â£=ÝòvI-–¤@0ñâ%éÆa7TëyÞ–Î.–{än»­÷Ô›l¿¸‰H˜ÔR´ß§^êºsÀxˆžu=XÈÈNßγ•Ëv  Êª¦lËj F²s„Ùâ5òÉl„PÉ»¡Pis1¨\µ^hWTDÙ ¨ÝE5A&“Lˆ6ŽÐ™n/úÙÓ±8zˆ`‹˜å*N‡\ÅŸÅU«yÕvi¦ú|ýßÊ‚ýIèI²€ä•å 6WK&µEdîó#iX¯f›FÓF¤2_ñ¦Õ€‘ç6ÿ;I ž]f—g.b\Òƒ³G¥¡8·ßJ¥I+†•v¶Î›²kÅ´o§åvÓ̲ø:ÿÚá {|µÜFlà~}l–Ùû™^mÌ;;˜-wrM>Xð‘”±ð8ÏÚÚ§žñUf³u¡g¾ ¸ãwšÒo¼è—qºèíÛ6n{¹½Xâà¸I¹¶\Þ¸þÂc~©®áA‘z>_Ïs/-h,9òu[-òÖ1¥±×ùrÖyá夒v&D™nŠHj¶©ÞUY´ëZ7.ÇôõaÌEÊÉãl|%ýXS.V>ÝŠÇó-¢É®Jw~Sb,¤Ôb»!ϦnlâyÖ¬zâÐEùs´µÒéÊ–ÊÉn(¾?ª¡„F[F¸K{îæŠàÃE¶Æ ›@f^xG\ý 0í]”hã7Ñ´+Ø{›×ºÃ$êøÍ×<Ó"6‘Ÿwq¤ 6­#/ gÿfîNéeÍ€w˜õÃ;MPĸÏeÐí"N£y‹µ•Ú•+%&cº %3ÏRë™w’Ø|µÜ6_ÌK¯¶ ;?äZaÛ G››é‘+9¶ùb̽Ù&ü#¯äe®|~ÿuäÆìþ*„.¯õÈu{ï“ûo=rÝXmÀB™ÖÁ_Tê‹ïIwm¼ûöŒ"Øõ² Q»“x••]”6Ûê¸ì94ÀLñÙû5Â{ùÅ£ÚØ‹3¾ûî^Beàãÿ»{‚Ðw^Þíèj‘dõR×Aô‰„¢ÿA,»dÎÔÓC½V[ë>ÃÒß WHIJÓ_CPX‡ÑGÔq£QÑË% !ïj4RS×þÝȸ<°éÄŒE4ŠŒ°}‡ïƒZzw㛫 ÎYò7d±zendstream endobj 628 0 obj 1404 endobj 631 0 obj <> stream xœíYKoÛF.ÐCì¬õ¾>ºRHz C–hG…%ÚXýõÝ%µK“–±SŒÀ´šÝùæ›ovÉ«#’bû¯þœ.œ¾‡¿óä*!î—´þ˜.ÒýQ²ûY*kMÓÑYâç Iª 2ÆÈTI‚d:Z$ÕƒÑ? ÕÁ0NG³$;§vˆD™Ñ~lœ}(CjŒ@’d³ë‹|ð÷脤•6Í·Q01›^/ò¥7‚ïʨzñjRÍ‹¥ÝàÝ(9J®RN™÷{È‘ ,)R%4AXÛ8÷“ÝÃiU^çÉî_)Iv·ÿíú >ÒŸ’w‡éÑÓ``aîpàH"‚ˆ±žqƒdðø«‚¸ ^ó™ƒÈ ¼±n'—X‰dÅÅúäb¾ô@)ŠÑ5˜Ùq6w†¤Æ¤AÆí~˜nÖ9Yã›Íò¯Þ$I"¾ÉR¶cWÖ©Í$¿“q¹äÝéãÉeÕÙŠ*Ä*n+‰Œ0ªš×§@ 7h‘È’J')SÀ;?Î~ ÒZ+ TÛ«M˜ƈ'ìÒ§…jŒõ&-ËjÕõ›#a6ä>x †Œb_¤Tå Öî œ¸IĈipù憰…\ÔCΪ…Þ\°±,p Ôf…Õ“,/PÇÑ¡€)J“”¯lR­é'ŸR¥oRNy•—«½n EšÃw•Ù„²áM3%q2Áb>Í»« 3¢“ðC›ÑzŒ"A6 ,»¹¹^ÔŒ"ˆÊi*/NDAž mzæ&;&ûÐ{‰÷t¨Ï˜…CšŽ³E•;ÀA*ðá°ªsÍWõX¨îlYxCe… Yu5ÿסæ÷-¯I*C^â> stream xœÍVÛN1í³¿Â‰Ô8ßÍ#ÑTªZP¤>@U…d ©H› %__ÖY§Bé„`…}<3gî7˜ÀÔÿÔßáQ|ä~ÇèA¸Áõg8Åû}Ô=QÚ£î_ ø¦ØXb­UX+ ÷§¨%ˆj÷¿#0Dhë^àþµÆåàúr2\ù+a‰”ÖÔWóeu½¬ü9œHU3ëûèÝ`Áx4¥#ˆq:-1Zb- j¼éû=Ôí}ÄU¹,P÷ Ô}ïÿì~ç>½üöðñó˜qJ¨HÔÆkªáwë$QÜ‘xMFÁ–neòûV•“Ál|UøKÅ‘µ³Ödžp¢ …ú4¸¦{")[Ûhˆ+y ·’³P^krñ[¯ ÏÍ—çцMÑ<ÂjÔlK¯Üþ©äÕ%»¿g3ûg6?Ir‡K »;ãøCmàŽ?E"†[!w›žI^í’|ÖŽÝ: 9Ñ`1ŽCzÜA9)ª¼cÒãáˆæ‰P†0mUBå‰ÏUÖN] /†åä¼Ýq2%¢UŒÚ_ûpšezkŒJSb¯¢–¼ø¶âἜePK7Ô^…†Pëªu4º¶ešÂ©dËo0îW˜ÉXcø9æ”ÈêP¦EU”‹½íà€«{áþßH‘TÆYäMÔ!&Ã{BÝI0Ä*w‘—®~¨)ÜEG©&—N§‚G¡²5/G“Ù *b ±Ò®[ÛE8îdíªË`h±„EUgK–‹M8~¡ÎùJG²vìê^ÙøØN×Dc ö ¢Áfi"eMía.«,lÒXÝKã?Gãù4RR¥>û¢Ñàå¨>Ôÿ¡A —FèySÑhì ñèg¨[Ž´ú xdƒs;[ð™[Ꭰg˜£ŒŽãe½ˆÆå‹ù^š¦I?Î?(Y}´,jkòåÓ°ªÀš:SÚÂÓ{„9$7šÒ°23¿7¬3úb ›lÜF¢÷hoglBÌë8fDïVãb¶Î1ú nÈ»žendstream endobj 636 0 obj 804 endobj 639 0 obj <> stream xœÍYÛnÜ6í³¾Bk KsxE}hâ4q I°h d c³’í-öY»Nþ ŸÑOíð&Q–Ö—¦N‹ 1Bñ2çÌ™á ý1¥RjþøŸóUBÓ—ø÷2ù˜€ý’úóUúl’¿Ë”™ÍÒÉEâÖŒ!Í5ÑZg©Ê€déd•Œ8=šü‘°<'8LÓI‘Œ.™I×¹{?z½93­%É`Tì–åÑ$W¹sNÝ… Góݪ\»Iø¥•ß¼žÕ‹ÍÚðb’¼M>¦‚qg÷X Ô¸¥L•ÌÐÜà|v–Ÿ½NëjW&Ç¿¦¿2ÿ<{óœ¦ß$/ÎÒ·i™ßÁ§„ K„ ÊXÅ%ž¯¹·v¿¨êÝli>H R7å~1/Í¸È €–~¼*—³º,ìN@já?\ìÖsƒüÚ|B«ÌÞª1 û8eš;ùG3IZ3¿¾»œl–+’å©bŒã03ûO7Mµ@ÀR«à……õ@N(.ÖnM$E¨ÒYãÞKv¾Ùz 1*×çûÂz¸sP¦ à7Žöî¤ÜÚè7‹bzÔ2Ê͉)0#eBb·— ¸} dŽœ ðóY]ÏæÖÁuWÃ'qÕ@q¬0³¦z* Cûâåñ­Uª™7â8Èz‡h£­az2Š ò¯BOQz2#/¸ƒ#Øpø¤Åë#Žº¡¤pä)çD˜¤cæbd°XÀlN:Eˆ‹e«J6øOËëyµØ†DÕÁ;Ö¸ K&p„r»à—6MpAd»S›&0Ѱ¥ã®«f8‹CnUÖW˜T92¢G.ÜxoUo,á,«ÊbQ•sËÎŽò–ÏíÜ’±«·;7—‘ìîW}ïì–õb» u›òøkb¿(¢Û,ùª¬ì|Ɖ„[¤5ÁвööªÖÞòÓl…žøáQˆpô;†lʤÛÄ)ÊbC‰G౩vì{‡ÍXÄÛHØl1Ñý0¥V° â+G§GßùP‘-úyUâM`Qê˜Õ‹Eum BE;Œ'ô­¼Y¬‹Í3†–!xEØLzû¯±uÑ7ç~\ÆßY xEŸÔqí‹GáÚÓ‘·óa:¨¿ZÛ!Öµ>Ž‘nÜuy3`Eé¼/v‰›d!ié/äpã\á…XX®¥6¡Î=zcµ½ö³ìš>ÕCòE7zaA\‘8®]²ìšÜÄ·lËŒ‡àã”âÙ‘â½øØãð ˆxöµðÿ…{ñm—›zŠÌ;tÔ\a1¸APñýÁ¥¦ºk-h³mrcm¹¾*ûô^~d˜ Ûôaï—.&6„‰ abOƒéŸ¥ŽS¬C‡)¨°‹‰aâ_Œéæ¾ê+3Øß9ÍÙ?Ô0)pbfKS;…Ò…õK—ÃýïHÚ¿éÊ2¢XÔ•IÇaÛ•uÊÂ1Hf¢Ø;xXk“/¨x'7ºZ3ëך ãzãpõw?~nÿìV1yüNb`3;E“/-{X°m]au ôDÚv½â¡‡ Ô-¦C™× síÞÎÁ•'|dúÄ^ÅÈ»uq[pFZlT Ãw³»ô6Aè,k)ìÔ°1Ï8ÜJ¶ýД2ñ”™ÍÅì_D¼Ïª–¾eu}Òw‚°•°»ÌÀ€‘‚ÚåkU91ìm-øà‚E ðç~Ý2Ÿ-—‹õe_¶õÃ=¸)tú}¸QÖz€¶ c/ÉFœú%ÝŠÝiµÛiýÕ÷À˜KlÞ²½!‡œ€ù0йXV± E!8ņ}Q†¹«Å4M~ò4Óíî¿jš‘¨é&Í`Ãë9Á^¢ŸYòè¼~/z0R.ªm »½\¸åUüö” 'LH8Ì<˜èÿy 3 ¦"ÐOf¼f%zëuâàƒ`fËLÞØÞGmã+zŒ% h¥FQ{É>o“03JÊëÓ·kØNFlßㆱh¬t j'gGÔ»²ÞUë ˜xjÒ:4ÊxìÕpvjÆî|Ï©á2ûÂ9@ÿ!œ)ežÙ±ñg¶û^%£—庬Â#¶1í®DÄxˆ¼;q9YƵhÙ/6~v¯Q˜"^@¹‰¡ €¦NDx‡2£4ëØ›Ê®qmì_¸Âžöö5„F7¯²u~˜qêJ#ˆ~ú|Y¶¿¤x›ü ó-ñendstream endobj 640 0 obj 1661 endobj 648 0 obj <> stream xœ­XMoã6-Л~C:*@̈ßd€^²IÓ(v³0ÐC¶¼¶â(XÄQÚÅÞû³;$EiÙNÒ-YÒðq8ófÞP÷yIh^ºíït‘•ù9üͳûŒú7yû3]ä'ãìè£ÒΚåã›,¬ÑÜXb­U¹V”¨|¼È AÌÁø.£†maE>žeÅù©{Æ-wëÃ#NÝ£³qv™Ýç‚ñ°×–¨%FË\KCIiœo'ÙÑůy³y¬²£ßršýìþ;ùð~.Nóï²³‹ür§ëTš=¾ó’”;Ï%ìoyâ<€¸'-È(š0K„·:[úcKbUÏø¸¨6“¦^-£²G(%•*gŒn_ñO0Ô}¨ÁIiu dåw±DSkû]Â"œMJnek0g×óÙu㬄$”4¼¸*žÖ#1 ”ÕÁïã_Ò½%\ÚåïÁ.†0m•`a›»ixQ͇˜ÊÎDÐ}Ð(ö¶<‡³^αRÀ/ÚÙmÁ¦[±©´"Áž×7l©ŸÁ¢UÌ=J¢Q|ÝÆ­ˆ”<ç<$ÁÙýäì4á8ŸËéÎh¢L á#€e¯aL½ ÎALô·DAƒcÝŸÊUÈ£†€u•-©´„õ±ýTLÁi …Šê‰Gâñn'›66Fæà«bJôuIs&‘P NÉŒ+Ë«âûƒÐÆ=ð¡«f&!:\£eÅ_ªådQùœ  ÅþBP%ñÏzÖÜú场‰·-¿­êù­{̸7–‘–ñõu-é[êºÜU׆[af×#‡áù)¸ÈÜÆ¥¯;' #ƒÒÓâÓA‹Ðœ"]än™Ã€®J|·I1îí˜î•¡1†Wc¡g' ôô^0‰zUœ®ú>4Ø¥7’Ò•Zô é¶J¢R&°Î1M¶:»GCc::‹±µ‰ÜݯŠ%ê-’š1^iM" ŽqlX6»£ ¨DÑéª@³7W…F ’æ«6ë}ÚVuÛÀØó–hˆ~•²(ßüba1xŸé"/ Šs€2ˆÊCmœÝ^Q,4}‹×EEÄJÄL†äÈo‰Lºm§ <ƒm˜ ùÿÝËËÔp$€ÉV÷¥y8”·ÝoÄÁS_r $‘Îo›B±»¹jžb[K:Gâ¾LÆ1Pªçe üv]>å÷»M5i<gn‹ø“á„®pÏÑÍ@¨é<"֋ɼ ^²êËyVýQO+²¥ü`вN„Tœñ‡Ò;Ù!›jó°¥ñRFŒ›q £pˆäʰzlÖÍÐ[XíO >õDìñ’. Š78•tIÄk´7LWH·M‚­pÇÜÅ€îšÃ¶ìC¤‰ZÑuö=„úTâ¦%±¾íUÞÃ0Ÿžc₇jHì4öÿyª€QÒv rÌ]p†û‰ .çÝh—PÒ¸ÕŽ’2VÌǪyÜ,#ûðY†ÆÐªþú¶zãÙžêéä‹O‹Æ×…Pí5]çêÙ‹ L ·qhÕßþÁ€Sºçƒ´<ýE8¯–nsBàž4jPôC b¥^'ÞUkÆzj¾ŸúŒBŽXªƒa¼tÒc¦Eü`¯£e©|\)ŽßÍÊË$ŒOÉ]:ÁüÔµKQh7PJ,ZÀ@Ñ]£Ù_Oó >9—Ù¿ŽŽ&=endstream endobj 649 0 obj 1404 endobj 663 0 obj <> stream xœÍY[oG®Ô·ý }ØGG“¹_x#$Р †b©PYÆYW¾€qZPÕ÷þìž¹íŽwÖfƒƒT!ˆ°çœùæœoÎùÎäc‰)±ý~N—.ŸÃßYñ± î›2ü˜.˳Qqú«Tv5-Gï o3$¥6È#K% ’åhY =ýQP­|ŒËÑM1˜¹ˆ@”í?{3x¹>Rc’dps·¨N~½(8AZiלû5 Ó»eµò‹àÿʨà|;ÙÎ×+»ÁŨxU|,9e÷# ¸¥š ¬í9Ï.‹ÓË—åvsW§¿•¤8ýÙþsvý~\ž—?—嫽a BˆÃsŽŒEÅìoX@{í"#&œr°þ´}=ÝÌ?líWàÞ® î‡\"XHKj°výÅ*DÓHLƒˆÍÆÅá“wB‰hœ`»’YRŠ„µ±ÿú…ªÉ)œ@ÃZ¹] Rnÿ¸‹7J‰ fFÄ„ÍèøúõøÃäCÈ­T—³”@LÄãÿùL!º´gÀÏ¡ñœaf)SóìQæªaàø 9ÊšeÍîm=$BAîUI$ГÚ? ˆ8ÊZe­.ú( æë³NÂ}½¬;Y˜TƒÎ H(€º„³NJt•é¤doëNö¶îdáׂ lÕÏ‚ÐIÉÞ@:)ÙÛº“…½­;YØ?¶Ö¤Ê9ɱ_²Ï—ëJÒ4xž®—Ë1Ácß^Œt•?|ý§ý:5´oK}µXû*/‘fƒ*¯òTZ¬ìðÇE‚@„ÍïÚæø»nÞ:þùUÜ\#^Ë”ï³ùI›GYÆ&0'S³ÁO‹j¼š,+—un,؇`0Ü3=ÀI¢•[o3‚¨„õœ”؛܎´dN.ÕÐ.27Ýð’v7Æ%×ë¯]¶XË£%ˆ7ýÍ›½=éª „AîU@–&’´/KmÉ~–^\¿~–çC Û0EÎS7† Ea˜¶æ vì}) %Å…Ƭ¦hwpameõÿ(ºã§W—×yˆ 0®×Ã…˜ÊÀ6Vœ†çŠ^!fÐѰJͲ*ŒQ‹õjèž´ß¿æ7ÛÛG¼-?¸ú¶šÏnÝÇ,•Û˜Ñݶ ! Jì´hPÈÍ\œ¤-óà#Šk¢<•NÔõûKš8—-*¨R¿[9}ؼ[/Ö¤ÕbGÚ@a ð(‡O0kŽÁÒ"åë XЦžøÊFLÚ=î­†6²£†…_žÂ;KŽ‘Ö_R¿ö€€2õÏÁ²‡òH+¬à"AÆÛo^Ìwë4]ëÍcïBØ/jÙáK=¡Éé; Ôv!êÄÚ%Ÿ¦á@¢Iï®÷a0j‰O§l\?HiN{S8YÓÀ!‚n; ®ÓC›ÉÕÂÂr,š{€:B‘ žs жs;4ÌÖXÞñäÚb Ï¡#zA ;‘Œ,ùÃY ‰È‘pŠ{! ˆ IÓ“¿»µÈŽdT/$qO$ù^ ‰ê@BúÅ$ >ø›% âJ>Ào–!]“—²—‚bα—µÏ«•-v•kgjrsßÊíØÐÀ‰áši]-«°,yøeêŠ3 e¬Ñ_ÄÖq{LÕcî>dÂnuÅX†&Ÿø|¿v:”ðÝ犟ï¼t'øâçxБ4®8_‡v–ôó—YÕüÖïUñCgendstream endobj 664 0 obj 1717 endobj 678 0 obj <> stream xœÕ™YoÛFÇ ôŸ¡ú"Õzï#oõ•ºPQÇЧ0‰‘UèpdÚq¾}g/r%Ò"“Š DíÎþfö?³³ÌÇ#’cû'|NWÎ_Ãßyö1#î—<|LWùÉ8;¾–ÊŽ¦ùøCæç I® 2ÆÈ\I‚d>^eŽÌÑøŸŒhÄ•ùx– ®ì#…83š‡G›‡òít»¸/íOL $• ?1fŸ³7ÙÇœSæ1†iXÏ ­D®„&k‹}r™_þ‘—ÛÇ";þ+'ÙñoöŸ“«Sø¸<ËÈÎ/ó7/z%0mºE°AŒæŠa„¹skNoÕëøZÕqàÌb³Àí1"<#\‡p0atxøli$`XœK öÖSž¡–ˆ* <Ü6n¤%1]$¦…‹^$¸É n#!VÞš$É¢ÔP÷”2°Yi¤…ªZX kZ:ŠYÅBºXH –¼K„>À’Æ…v±Ð& á²_\"tOÖÅÂZX0£½X"tOÞÅ›,ŠÆ’BÙAåæ}é‚1¢UEt¡ˆ&Š ²J@>@’ Wv‘È& “¬I îÕE¢ZRHè^$¸'Ik±MIt‹h5éEˆ_&‘vz$i-¶)‰i!ñ…«[²š|NHKµ5×ùFPœ&­ñAa`³:  øÉÅ.ò~‹Â÷·çt³ZÝ|{¾~*–›{·%ˆ[Eƒæ³:dvº;÷)¬‚ú9Ð$ê¡çko<|}²ß„;‰›#ÚARÂÚϨHÏCj^ÞŽ4R·ÕU Ò¬!ÑS‘ºýˆæø`h tkKÒ$}½§Ê˜8‹Ë~) [Oy#([ï{z6Úñ”¥[ÙåéÙÈñ(D„áßrO¡½úIÛö4 íhcO/œeêàf¹Ø4|¤Ê®ý¹ðÈ´½ ³ˆ•N¥paúõ`†‰6f,!z¿,œ?»=` ûÔ[˜>–‹§æÞ0¿N܇çÂó-¸Û€tW•–$‘Ò^ÊR¢íÀ!¶P1³ïQˆw [Q–ŶIMÓ UƒÜÍÀíqO-(ÓÖ âo]lö;œ ã¸Ä|²lJc§ca R5[ ÜÕÒàÖ<Å ®A_C<›·Å§wTÄAw]»B(í×*¿e›V¢Á¼j&¡¾!±ßfûqIÜÕÕª¹øSoì+šÿŠÆÆŸËT`ι#Óö³5îCœøs¨8úr]”ÛuÄN«'´®“H}çV­ K|~XLCAUióä#é[K*ÁÏš@Zù÷"pb²¸Ï>è¡4õÿßÒèöttyåb Çžl­¹”,÷5¹äÄZ'¿(¤™§óúfÔ/^ž¸ö°Ü¬çMaBz™:‘>-få]Ã4œû¦¥UÕúvÓCLö.Èç®XÌïʦu“žÅm¥@1m‹ì÷¨Mí~ZøÈ€Hdmaº\Üß/Ö󶪡@6¾j¸ÿߪÆ^W¦íÔ~!KÚ4þ1>¡'N"·-æáDÝí«»w_S5,±L¤‚J øQë¥&¨ZWg1´UIÞ-ô!¾MMÏ„ï\G¾“ר€%ù ÞÉ3BüWAÔ*Ô–¦×ÅºØÆDã> stream xœ­VÛnÛF-7~Cö‘ÂÕÞ/~‹“ÀuÑ ¶# va°㨰.¦¤"þûÎì’ÜU™ÂA2¡Õìì9gÎÌò‰0Ê Ã¿þÙ¬ F.àóP<<üBúG³&ç‹b~c,F ²øTÄ='ÎSï½!ÖpjÈb]”RÍÂ9 ËŒ,–Eù p‰k*¤wqí¶ü°UÂ{M /—ÇÇvöçâ×Bqê¬óCÌ»cacÙ×í&ÁwëmŸüPVÛ ð~Q\OD qWŠ:è!¥&V;N™Cžç—Åüò9tǶ˜ÿAx1ÿÿ_½…Çå;òSñþ’\Ÿ ’Q¦‚Šz*¨D`JRϽî_ˆß‚Bš*9.®R3\rÈÕŒŠ<ˆûí®E©²ÝÜ_} ¢X޲ßzW6ÛÍ>$*?§ x¨qŒõ•(?×.Îo¸ÓxaT"ljdàçÜnËW³JSçœÅ£ç7š‰©&’jì‰&??¶÷›zÝÆó2!5ƒ"%}¿[Êq ,$ãýÚqÖ<µ~°Zèêãý®Þ%wµÝl Ó~é‡T;̤1ù(K½ëOä·EÝ9gTrïsä•´Š¢ä°Ù!Ü ˜T¹ˆÛ­â㨚ý”‰”T”agš«¬3©Ê»Y °) R "åÈ ãÞvm}%ƒ¹ö£@{–àÅØè eûϪiéL¥ ôŒsDþᬫXy•uAÝam·?›Rç‚:ßs¡O=fOا.¼…’Wpª£Ì—Ûýaßt«Ý!ŽƒÒNí84åÏÑTœ;ÜJ@¦ùgex!‹Ôi^Kb5,- 3µÏÇ…¤c'<ÇxæÄëÏ¡2nÀ±o§xÂsÚM*5S†fL?1lº+wŽ–ˆÕ•R€Ñp‹ä˜zðy½Yöæ—YQêÝ@’ÉÍrõ%–DRžðæëQÿ©†00¤Õ@¿Ú èÍýñ’Þc‚ª*5uÌ0Îæþ‹rcïg̾Ì"ÿ#üiÛ kÐD˜Ôv7íáØm†Ë`q^ñÞÌŸCÍ`X÷¸ž÷«¦~ "@×&&±éƒ 'ÉxÍ-_¼¨óÉü€‹Zr>½•„µø€×%N¼•.ÚMÛÁˆ Ø”Êg\ÔÆŒJÎ]ÄŽÖÉ‘å±íÃ2ª¿7¡!¹¥2 Cnc`ÿUð3aÏTX” .3½·²œŸ¶aLpEYºÒû·«!ç_ñ†+'*Ì}1DÀ[U?Ñ/Ïmz‰º.þ0¡OOendstream endobj 693 0 obj 967 endobj 696 0 obj <> stream xœ­XKO#GŽ”Ûü†æh$ÜôûÁ‘…lˆ´Ê²±´o´rÌŽ° fX‚¢Üó³S]Ý=Óã{Ù‡Xî©®ÇWU_Õp_RÂJêâç|YÐò5ü^÷Ã'eü˜/Ë“IqôN/ÍËÉUîŒYiqÎéÒhFt9Y#I=˜üUpI¸pÄ&—ÅèÍïxÆâ×÷‹ÕåÚŸ‘K==„3áÍ„#¡üÑÙ¤¸(îKÉEpi,‰ÛŽX£J£,#ÔúN΋£ó7e½y¬Š£÷%+Ž~ñNÞ¾‚óÓò‡âì¼¼Ø!SvOˆ‚*;1JAŒs¼£#T8µ¨T€O%Xs¢±6fÌ)\ ×%J­¼SÄiš,<.«Í¬^¬WQgªÕ@½$SºäÜk²xã¿ hÚÔA4Êùïø¼B+ŽÖÆñ¸ —ò|›<¨kþñi±ücí5'¦qq:z¾;sÀ‹P6ªþ˜üÚ5Ï™Oxªƒz–,áÆi·e©…tù„èaOÎ,¯(MDò¿á ÂÀT£´”¡ÜÏ^Α£µšïȈ!ÚR¨KŸ ½$ ̇õh[Ïê^t¤©rP7` rAëo¡šX“ÆÑcÄú3k"w:=-.ëÄZ¼•Ÿs¶{ý¦Z\ß`kM’‡¡ô@¡HáÏHÔÀu^psì ’ ¿™mb¾¬*AæZ¶-ËJ%É”*5 Ï­ïØéèǃ±‚0­éÒ4ºÐÞïüÚ¨^Ô·ÕaôÝ|qäx$Rã‡Þ€ç ³ôá &¨SuPZPÙ «Î8ƒj<݆˜Ü‹½­)„GÄ{«OCÅ '\Õ(ŸŽN×±‘­ÍAí …”òÕŸS7¦:õ9æÌc¥®s*²(bŽh]NBP†¼-Ã@B åÄwà1²†Ž—ºÄÌ-iÆš¤3õ’ F+yài"@¹(ËÓ'ÛiZoŽvÊ?HÔÉ8µå^T6ËÙhS]?Þ†æ€ú±Ù`m¢UÝh»¦q y·}M©8BvR(ŒüŒMM +2éOŒ¼¬êYÜ2*ùé¶ŠYÚ7ƒnkˆ· íæe”¾­°aCðÛ@ª¢àÏPM/â`åÛ ·|¿Ÿ»mgF5t-ü\éPL7‹ÝŠäÝ øÕ¶Î"ÃéA4àÿ>[Èôýq;M–«c íãz—1~ /c}I-tŽ.¥`Äðœõc*´jîzÃû¶ {d{1ð~ r¾ÙöÄñU ÕÀ)¡KZ:õ«Î%Ûí8†µ üSHº‰{^mªYÊ„Ÿ‰ó³PйÊAFhàËêÓb^‘~oX mf-r_"ý·¡1eÈl3¨6ÜÇ8±~UòÜ—¦_VÀY´>W­O;ù­Ë晪íiœä¬L£t»–s»ò+ìîÚ€\qv;ë:®dÕ˜oÒ2l_äI¦ª‹õS‡uˆ_aæû͉ó¥~웫‡aa¡œÂ…‡j µßƒß²¸†i§@µwü8$à´YÕ:;ÿas*mFý»ª~ܬReçÉ¢a¹a!£w7’ÞóÃb>»EÜLžÖÐlqõf-Ì‹ËϾ[ ¯’F‡×bÁØž×bXÛðíhóuµòkM…ÎI™N¦Ðß²Ýçp!Uˆ^3µ«(–ýWà·9frÄ[`˜ ‚ñ+gÇÜK‹H)o8Ñ §T‡ÿ=äø]­7±¶;﵆Ԥ(P™_ï’Äé:.®Y ?_‡}“sQüQàò–endstream endobj 697 0 obj 1338 endobj 704 0 obj <> stream xœíYÛnÛF-Ð7~Cø(ͽïíKš´u h€¤0‰±UD’#É­ýýìÎìrÉ¡IZ¢á¢/…+¢÷2sfæÌÙå×4ÏXšãOõ9_%yú3ü»L¾&Ìÿ%­>æ«ôù,9{§ ŽæéìsæLYj]æœÓ©Ñ,Óél•L„>™ý‘pk3xœ§³E2¹äøˆ©Œ gó“W›“)wNešM7_Ê“ßg¿&’eÖXǼc LœÌoVå: ‚ïÆ™jñ}±_nÖ¸ÁËYò6ùšJ.‚ÝS™Y0ÐÁ’*5ʲ,·èçóóäìüUºßÞ”ÉÙo)KÎ~Á_Ïßüç/Òo’—çéÛA˜²à ò,—™1†fI‘çxeîûð–q¢^fÇp—I?ì'd2Áš™7ë9zº Ó9Sõt“i›ƒoœgÆÑ‡a¦‰X¨œ‰°-=d6Ëa‚ŒP†9$Î&ËÓu<.ùÅæº ‰”“r}î`LZ;M=þXíÅ ¶6gt/“:>úk¹Ø_âsl•‡LmO¿*——W>÷„G~<é"6eþ 9Ä8¤iΟ2ð9%„ì}3 É*œ:Œ™ÆqRõa¦Ðmm™7ˆ™_rÑ81nÁ[?“AüXíÌ‘Sï|±ø Ž£üb*3ʉhÚ<ŒŠ~^Ûªœ¬J!\škÙ&K…ƒ-´öñuùaòíÉT¬Öt‚P—³úÂm¦ÒëÅÆC“#úëbUž6U®g%à ”Æ{¬tŒ©a3%d`tÞd9߬/¦¸ÛTh— ÅÓ˜DhIm/w”DGÚË´FbHµ™Ð-TÃö2Àé¼`ï¢Ø!Ö9µ;XpíÂ÷K4… t&šHŒY£®i³8¿¦_s Õll*v½E û,нÁ|2ÌãÕ>ª6µnwXá¤Ý)…Óc15í®Å:SèJØR.‰=•E.Ó÷Au¾·ŒoÈî!®7¾ÿƲ­©J`jQÕÙ;ÔZ3Ί½$WÇ ®iüOIt9¸Çúû{_Ëu™J€D*Æ™äí”K P1m]æ5 _ ¥Ü¤ Q0;"R4©·»åê$Ò4Ãʉ–Uj€ç™nØ·—i*Z•´G\{™¤“ïvËyñÅÏÆ­wZ”.çeÕ(x³Jxþñ$ëI)ÈD)À{…l¼ ùLIºØ§ìËíîY7Ð^­„ïŒß: !Ôy¤÷d)ºáTûRªQMc§ñ§ûÊGì;Ô1{àƒÀå¾Z•½+÷7ÛuDŠØÀ±z* ªÈæÙ¨°2Òs]ƒ¬ñý6‘­b<+žà#xâa5¤ÕXZr,EŒ&ãu†GÎ%ÆÃiÝD¤¹YF”/[ùÄîÜß§jþá q¤`Ε‘Ja!E{õJ‹j Ç,Ñ€Õy#«‚Žêž>åÊžnð˹T؈ AØk9WÂß2}9¯ˆžl*¢×À«9üÆ ³Õc\/ÊŒvE(voÞ+¨Ëº®p¤7ìÊÑ=švÈ ú™ÐdOaHd<5éH»F P„ŠLÖ'Xî/@‚ ºé+EG‚D&!:" t‘>] =Ï®äš=•Û!i“@IΙ›mwqhQŽmãâÃA2÷ ¯6lòÂ’¼Ø­Š/_J¿-("Ô÷Wźêô¬iyÏ wUv­žÊÜùCd+¹:v75F­fØkî[}ð2¢Ü^oAŠ-ª)kÔMá—9Æ;)'È1è» RQ<5#¡õÉC‰ýØËCû¿6<¬ [¦8è&xÑ ¦Ø(o;VÀòª‰Ãmˆ—n íÄÐÊf·ôGCä–vÁn¢ú"ÏvómY®{,3˜zV´@ºë³ŒhÅ»`™¢_ÿ®eªÂ¬#è5dÝHkùIÐì¹øÈ'\T«q±_ëâ²Üö˜Í¸l ЃҸ¡½©ù}xÍu”/ý¼fh;ÂKo £F~ZîWÅuEÇ­ón—cE‹É–ÐÁ(4à´^JÛ¯¤h?ªE¡Å{0:o|w"‡9ð|´¹ÃªBÉñ8}L­)ËÇüá­ãW…2Hr¢ÙËõr}éaá\xþeOߟ ƒÍYùKFôä¸80¹ï^Ñ ,픇{5 Ã÷&|àVÑ1ô¬™5ùÁûÛê¡y•¤T‘ôIV‡<"˜žpcÁ&Óã‰Õ\bB):­×•¨7Û¥iÑ;}Liö·ZÕjZMmhª–ÝyľE TëmÁýGܸp߃Ҡ¬½q!·ãOtíòà‹H›ã{ý/"c=d0]S¨JŽâ Sèçr]n‹( %³3pªÀgøHù+¢úʺ¬†W_Ï}˜¡LÅLX}åì7Ϥ(ü¹;rÏs]Q?Y36-IÓ½z{×üÊu„B…âûÆ8âŦªâèíÝeÙ¼$~›üúóendstream endobj 705 0 obj 1877 endobj 712 0 obj <> stream xœ­TËnÛ0ì™_Á£sðšË‡Hæ˜&H] h¨è¡èÁ•iÇ…m%²4ÐÏ.z8u8@aÈ‚†«Ý™Õ>PHYøµ÷bC½ô×’<Œ'´½z–“Ém¦C4§ù‚¤wÆHkmFu†Ñ|CFÒ‡œä¿—À…5>,Ÿ“Ñ2b¨ö±¯;WÅH ˆVµèt#´¶ÅjW-f… BHȺ Bè"'7äJ.R¿c Æ7fÁhEµ2Ì~gS2™^Ѻj™|£H&ŸÂßÙõG›žÓäbJo^¥Ê¼Á_0`ò™R€¶–?€ã>ÕN¡i«Ÿ }>ÆðXÑ72FÌ€ K¹B¿®Ê“1÷=æ£y³v»“ùgÿG5ô¯(ç ƒ!ýŸ”xÏ`OKYݵT”ë2YeÝofÛÕ}³žÕ«r»K)ö‹Œ…VVRä`3Ïå˜ReSß7u«Š†¥(“,tH]•ëŠf2µøž¢s÷¸*\¤ ¼ŽƒÇWÍÂd«XU©ê²šÝß­ŠYÌ'-(Õ³Tø§Žòa˜êy$»ÇUU7©Š×T ó—hG\‚ðÊyOÝ<ÈD°h¶Åkf#g`„yŸ/l…뻈‰^ñ§]§‘À0êд77€aÁÒì?løÆ@àÑ¿.ÝÖU„R†¯ w6 S&Z, Æöë¢qmØž2_Š8¨Š:¶O¹>•&Ê¥Òçמ0–® Eú®Ã¶”mmérþŒ,?Â£Ž»­‹8/ã ¸Oô÷ÓÒm{snÈ_M¾v÷endstream endobj 713 0 obj 605 endobj 717 0 obj <> stream xœ­TÉnÛ0홿РÎÁ4‡;sLº.4‹€(zpm&UÛ‰$§Íô³ËM¦‚¤m! >ÎòæÍÜaJÓðËïåQ<óÏ5ºCOp~-×ø¨B“s¥šáê ¥;cÀÆk­ÂZQ¸Z£7ÕÄŒ!ÞLqµB£kL ãÖ$Û—ÑÉö`̬•DÁhµ»q_«H1ÚØ3Mí/Ž–»µÛ$ÿÖVgçÝ¢«·›à¸Bgè ÆSÞcAŒOÐz—ki€Pê<š£ÉüwÍΡÉ%4ùþŽNßù×|Šß ã9>û+ Í?xà”P‰xHKp¢­e¸`@¬Ì¶Óï‘ëó£mm½\Üäû‚ï±+w_/]|*–ïSÓh0³D<¢XÍ"Åm¤orÎ@– $f,0ÑýïäxÐj_˜´ºgûý|–CãÌ7²yšM_ÉÑi8×±‘MÛ¶»X6õm÷LЄ‡N…ò…UŸ\¤¦åÏËz³Ú çI~¶Ï„S^¡û>œ/¬è3À3ýe"%샪 #é'BË}S×-ê· '’?>i#-y`&çZˆ¡@$Ã>Œ—¦.'¼ˆõ6‰•óD©^€¼(• BËÄ.](¢ŠqÕÔ÷ÑꇻLkÚ¼:D^m›²OösQ¿u‹eqF ¤Ñ%yø’Tïu»ënw]†ªâÃ;^/º–üw™êgL«WX&àé2aZ‡U¥°(¿LfnãšE—š*İÀÔK¯/O϶*öžH(‹gç2l°x>-»Ìy‰d€ù“Á!Ó‡"¹ û)c”ª§Ë¬ïŽoya6 ©÷ù-VQ”Z¶d˜ÆùúëáÚ•E†þ’Ð…2endstream endobj 718 0 obj 675 endobj 722 0 obj <> stream xœ—]OÛ0†ïó+"í&½ˆñ·}.`“¦jbл1¡®d]§––QÚ¯Ÿ8mÒœdT(í±ãç=ÇÎkç1¥„¥ÔÂu±IhúÑý/“Ç„U-i¸,6i1Kή™¾;Og?’ú¦œ¥èTK Z¦³M’ÿœïöåïÉìWb1¾•¦³û$S>tv­éa˜¼é ‘lÕmÉ}?!‰R.RßzåCÌ*¡ù²ôA©‰` êà×ìb;É•‘˜lñ¼)&ßfŸ\>šháÆý|¿Ú>ÔZ˜²G1œ:¦_ "-eµfÂ*5ŠX¢Qsãc\+ŽäÝ|7É…GS“¹ô=XJbTÃ}Zý)ŸŽ¥ÌuÉ›r ²aÖTÉ|ªKe„ŸR¹§2ÖP…!À€õ±\¨6Ö}uÙºu«îŒs¨göy¾©ªl­‰ºÙã!zã@·ÙÕþvâÛrÔÍ©MÁ“ÚZn>ð7É«@gÇ_dvúcì×›|Åh[¥+ÄÝ{ZÕ‚ºÚˆfþêX7g.¬ìÍJöZu$n1𦣦º=眺bz@†YÈt$°QÖÐprÈ [IQÀFY (4eú°Šp‹÷0´•µ2Ý^q/ <Û«¨Dx²ÏS ¢xA× N!8ÕÇIN£pAV×™>àtÇÁDႬÁì ‚3ŽÅed â,‚³}“6ÇÆ³ŽÆ-• kW æR`æõ¤üóÑ“Œ·ËY=z ܵ"æR æÂ©Ž4à£nV æR`æ"u\†²A b.uìHs³ lˆ¸K¸‹á·d‚°¡ç½@ì¥@ìE1Å º—(b/b/B‹87«e â{)0{QqÏ{ÕÂu¶¢±—³ËâìEõž÷ÎÜ!öR`öÂã¼:È,&Ãü¥‚i–³zížø05ëóífsÇèÝåÃK¹ÞîÊ>Ü÷O]+ÝwØ^ÑĽÐã¡;v'ëCtO­ªBAÔÑ2Ú½-%ªµ•ë¸å¡;ÛAÏJ.¦#Š.¦ÿ£H°¸³“æ£gÃÛõjÛ×r¿íB•áòµ\<ïW/H:M'p—±Q§Ôq„i¹¯¬]ò1ÞÅêÈB=4NËå|QCømP÷f7êGÓò~‰'ÛÄO6MÎãŽÝl{3<›_oW÷}p«ád÷„ÈŒƒÂËYòÅ}þô£¯8endstream endobj 723 0 obj 909 endobj 735 0 obj <> stream xœ­WMoã6½û?ÐÑb–Ÿ"yÜÛEzÚmÝÓ¢I±Õ•%G’Ó¦¿¾ü´HG^ÄëÀ 9ofÞ ©§”@ýsÿ‹Ý&ŸÔßfñ´@f%qÿŠ]r·^üü{jvãdý¸°>+” ¤”i’rPš¬w‹å}[VÿÞ¬ÿVœ=`B%ɺ\,‹®éz½)g I‚0@HJ½øu¹ÁYÞ4ÝÍJYR€Ø²ÈÇ*{ȇºÈŒçp{ó×ú·…òD9Aƒ‰¸\y£>SYVÑTyŸíó¦ÇêVoH&iìè“cÝ~3Û Io÷F»ÝÞÆ Pº¬ZK‘HÀ¤ÄÞUXWg ‚Öî}5Tã÷xŠ3<µÛC^èU†A* rß6}whKƒE`AÂ%‹êâ8¨cU0„Iáöîò¶Þš|¬»v0X)lZw ‘Š×”ÖšSÀ§­cß5†¦R dì4¦R–-˜KâOæoœ"ÿé0lƒý|n?K´Ñ6eÊe™mó¶l*'(¥¶°ZÅ”§CÕ¿8#Юn @êÅ8V6Äx‡H•QH½¿/cnrŸ‚”öl³•ÅËÀJ©®š¨bhF8”F™»$¥ðIÎÇcŸG[=†žÈŒÙPÿg'X7ýÉñ‚êÝ誩Û*û§.GKÂË$òœ´éA»ùlܘ{йqaéa5y´ÈôRY=×Eu:[‚4M7T3"ÃèŒÈšÒ‡ §\¸ÝÞ‡œÆnÒ¦ Ž’‰:òc *íYtÓ éú²nõä^†±Ú¹™§ô¡Ú?óÆ™ô9òj.À©?œ?v¾MÚ`¤áγ]lP± â5*Ô•BQQ~½ÿd޳ŒØdë³¢ ™Lt¶µÔ„j’fÆ[Ï#Ñ; uÐ,:oƒ kjæóÖØ¼÷‹ºMr3Œ0£p©°%W:Uޏù+Uƒ ~’ì×çý9Tv˜-o½7ù@Å4,óÂ5³Q¸#ÝÕ¤R*E¨²0V¸ð;„žÞ>Ó[¡Špt®I.ÄÁ×S!gÞ—âÐë©°w¢’ÚÚ§€&+¦ûó­lÂÑó{6hzÒ\!~i‘¢#Ž|3™¡rúªƒ3¯:;àâÌÊ­kSôêF¹m.MVÀ‘Íûb†í¦Ï÷Ûº°}&Â>Ö²ºd`\Æ|íÃJ½ÙÄ4ý·vìÆðÏvÔ¢4¼àˆ½©ü$™ï`Ä0HöÛ“jpÐUu±ïÅ_Ï…ü(D,×;z=v=DúN‰}û8 !N©ø~¹çº9 !²a¯_…3@vÁݾ4l$Dm‹R×Hq¹aÙGs³R‡wîùüuY5¹§é²2CgEXôŽ»,ž¢îÕ—ËU'ŽÆ|Íà]òsßLŸD_‹Ñçðì!ß›¸׋/ê÷?vï¾dendstream endobj 736 0 obj 1075 endobj 739 0 obj <> stream xœµ˜ko£F†û™ßÐJ|t¤õ„¹pÛIœÔ•Ûu6–iU!&„-“tóï;7ìÁì`ï*J¬ æ™wÞsæÌ'ÛÐvøúL––cß°ßÌz² ¸b«di_,¬óϞϿìŃ%ïC;A†ží{xöbi¦]MîÏß,ùc/RkD ™,¬[ëÉ&K𘀀Bø®í»NÀ…\L­óéŸvS?SëüoZç¿ó?óKö1½²±&Sû¶W§¿O'v€C„Ð EIQ­)WÙeä`›I Í)}Éú_ƈI }µ$3v٠ͧIë²Z.#èD“’_ Àn¨;^ø D}Ñ¢Z!|DÏþYüa½?Ä-v~'¦‡‡©;G‹éqפKf2RÚĉ°ß!£«›Å=¶ä—T’=þ%·%;’ì€)d>ƒ"_ÍÔÚ\ŸqàÚÖå!²¶»´(òU¬²:^=æ‰ VàÖzDd°–[Ôˆ“ï4ynr)ßÕ½¢Ê…¢ðkQÐ4Šë¤# Ôjb~Ö«"/©,/¬%˜è… LT`Q—™äuRüHo%Ö³#,ÐRPrWqGø$LÎ ¬{º¯_4¤Ø. dT¯YUŠ0Ðdw¯ÉuÌä•ÃT»‡Í¨iÒÄeV Œž{8I_woú6uþVªž8ýýíyýh˜TÒiü-¤©«B°äÅ»=%`(ÙžœpÇ‹kqî¶ìTE^Éš"ê$<¡üdi”å†Ü\”byž6¨§0ƒ|Ó«xÖ›¼ï¤*èªÌŽRöf‰h(“B<¯Ú–S矈çÒ‰TêHh£62K“p”Fq™tݵãôÙx”/ãì˜jÜ—Ìyù¯1—‹ª–²|µÍæK+|q¤ïÚ^¤ÔN zx=ö0æ=¢ÍhšÑº…ñ] Ït8ç±¶ÀÍ⢃zïÎÁ»ë›Ñ¦Ù‘5Œ¥VzÓH{"èm"Øí~8)ê5ëX`S¤®kÜRÀXwîk{UoÅÚÎŽ Ÿ<§´nÀ¬¾Á6Q T[ë³xDËh2¿»Þ”ãs¸]Φó.ÿ¨d4ñ¯§7&2–5¡¥BI%XÑíMÔ,5A”\¼}*01çw?Éâ£ØÃOF]ø//12±Å™p¸Û„êt+ƒàï!4ÁÙð‡mW±Qîµñ#xsöPïßÝV³lŽîvèšÆwöxîîNïöæ'Åêõ>¡4ÙÙ{>ÚùØYtQ5G”hS­iqÑí|X‰Þí˜È‰¦³mP¯)Ýçyà¬<¦Òö?: ð6èñv~¬‰{÷1öµ VÕ9•¯FBÐÞÔÄM.»Á1ëQ‰Ö’í™cï²Àáo‡¼ð† C¸çˆ8H¼#»¡%­ã† «ÑÍU.’/¬äØB¾ü¡©¡gª¾†6]úèS"7Š/^ô¾¶÷!øù‰ˆ vùÄ­SÈq> stream xœµX[oÛ6Þ³~ÃèÑbF$Å[ßš&Û2¬[²è€b0\[qÕÉ’+Ëm³_?’‡´HÅé¢.E‘8>ç;÷ ý!ÍN3óÏ}.7I–þ¤ÿÖɇÛoR÷±Ü¤g³äô. 7Ig· ÈLq*RJñTpŒx:Û$“œ<›½O¨Ì‘ šg¶J&—¿_üi¨³ä:ùæ„ò4GRC($K“eÒXrv™œ^¾J»v_$§¯Sœœþlþ;»z©?.ÏÓï’‹ËôúACÅ— ¥Êrcé›ÉšÌ¯næÛÅöÙ+ÅPžOŠöÙ_³_¬¹IFSŒ‘”¶^\Ýœ°D”©Ü¹F­·S*J¤FéªG¶¸årÒ´] LÙÛ`?ì‹öÎas„Ù¤)k‹Í•è´!W(ê lÙÔV™Î SÒó¶Mem åF±²Ì(мÆó¥ùJ›Ð.vÛ Àb4¹¬‹¤9RX1ÈPgœ@rÀ*–Ý¢^WEÄ}Ý.¶ïÊ%`J°0‰L©ËF3‡˜»¢Ó‰­Š®+Ž˜¹lª¦¯‘˜ ”QçõÁ 2ß-¬GœLøhH̲ûôY…S-+LJ¿"ö$»ûÐ íÙbß5óö»wG|[ËeÑ"5‹VƒP¸·‹¥uƒ nûßë¶Ù×+(Ef‡¦<6†}GU˦ﵦ]•õ¢+æ»»]WlŽõÇ㜉‹Ó¨Y-ŽÆæi³p h #ÒD7ß•ÿ@ PŒ¨‰Ë(ÒU­j•¯È½é×ù§rÕ}ûx]_}[vö<ÍPÚumY¯‡a>Ùø‰4³Þäa¥,ÞVM ý•ÛBù­@Ú _Û{ˆ’‘ÖÆŸÊ6ÑÏÒ #Ö£Qh:e±ïV`ÞÙ^q‘Î`(Ü…›×öÿÔ'(4f¼ÆÍíÿ2=ÐýÓù‘B¤ÐNƒŠ@ñz5_—·'nš ¥H,á‰A5½qrïýFbR¬O`£gQ†'FZ·õ´JXù±VÝ aóAÕÃù´ãZÛÀŒ°’òÞeÒøƒ‡ÊIQk%Î »=b©wMhÔè±ê%óEëŠW„¾×Ž8(ÞeÙ.+˜„9SíÄ<±×RTU¹ÝÓ!6Ǣɭ]œ›ëtÊ)5—.}_UÅê` g&«4›zb¯ „ 3sÅrž8” í á¡SO 6/HÉmª»uSCz$×JŸ­à‰Cí‡kÍêW8œ¦NÔ‡¢~DYIÉÂîðJ±—,7‹µË¢õj à‰˜˜ Dy)3îO\y—À´÷Ä^‹ÝpË033<äë`d‘뎛 ]ß4ÖŽ )öÅ›~ùÈ}¥B³Æt.é–Au °Tbèܶj:ˆtyüžóë•…O£8ƒˆ'DZ?Y?Ù¼QޤӖo\¸.½v²Ä 'Ž4Ü€CåÛ¹ØW~¿ ãÊk^»\»NȇTCÖKxb/õ‡¾qTP #¸I ÍEe•Ðp4ûn»‡tRÍ2B"fà Õá à^ÝÀÑá8_—õÊÑ–:Ú'8¢°¯·ÿÕéòo˜ñº¨Y-±_ùðH¸ø\,÷]ù±¿€¼y‡ †öËÑÁp>¼d´cž"ÖË7UÙ{iYˆ/þn,3¥%øünL1¾ÿÃ1ÂÜý#b7åF¿ ‹ºh]±r;&X†n±ヿKfÜvû±§ÄïËÎ-×`_cŒ‡ßqžñ<®âqpBewá 0o›Ö-ڬ߾ka¾µ^vü}XØaå9Îí _X£ŸïÖE}ÈÍuò/áÔŸaendstream endobj 744 0 obj 1594 endobj 747 0 obj <> stream xœ­VÛN1íó~Cü¤b<¾¬m¹”¦ê%”HEªªhI–4UH`»Ðò÷õø’x—K[©B°â¬Ïì™33¶o£@þÄçôª`äÄý΋›üÓ+r0.ö>•Ws2¾,gˆ±ÔZ[]-Éøª ?ŸïŒ¿bd<+R r<.N‹"¹w%5.‚¥F+¢•Ê 9{Ã÷¤mnëbï3bï þ9ºÇðˆ¼(އäôIúÀœPN´`”I¯sÎ'ïêÙ¼n^¡4%(×VD¹ÂËÝM KÄþ•§Í«¥gIMAYÙe%$BÛ¦ï0ªÀªÞw"_²¾ÞÙk5fP¯&Ç£³×¯v¾ŽßZ;·úB˜ }*ÊäðÝpB¡'RØn¨>­et襤êAò D%ÚêäÀèl²¬V3oAÉi)¬I<xÜšæ(ëfQ¯¼kNS\ßVíb½òPm]Q;,P@0Óï"]W!E¥`)|m‡žö­Ä Ñië¦184$p›Ìq.)ß&^],׋àˆà4….i‰r ¶d!ÒëåbUÿ$Ií–2TOâ8ò~Ç^L3ù϶2"1[É/—ËzÖeZFÍf{ô목&“¤úÞö?ëyêßyMåä†îÐ64Bä©`j{þr–©¨¬"‰¬ó1E^–žRrF{ õŒ®À,/·YdeÚAz—%#MÇÁ2õ¹8×^¾|øên†¯wJ&²XUÛVSßs6o€o>ºS*ðˆÍË‚ÀVÏŸÕ1†d˜¡ý‹nŠzV<¶ÝÍâ$ Ù…FtÚúnÑ´·Õ2Î\öÉY}·˜Ögy˜¦^Vmím"¤^\Þ®¦¸…Y”*w8~$P©Mg€.Vaؘü|r~ýfã×j³Yo:±­Ëq=Jê´\ŸÀaÒúÆ’Yq¿ îó3HàXU£{JÊ´Qýùÿyu•¤:vY<ì…¹9çžÀEg; ýê0§œÿÉ0÷ƒÅ’@7HŸ>Üÿ|ã7lý.ÿx1xpêò?Ü_À3-W‰†¹+ÌI½ª›ÔŸR¢Þ4›knw’6—)ôvÓ·u\–L§¾@ãå'tXÿå°Ïõ¾4~0T~ âŒy¯\a³9º\7ž/q8ç˜> šdÜû}ØŸðiÅÑ:nY¢¿îçáŽà‹sZüo›}endstream endobj 748 0 obj 941 endobj 4 0 obj <> /Contents 5 0 R >> endobj 56 0 obj <> >> endobj 57 0 obj <> /Contents 58 0 R >> endobj 139 0 obj <> >> endobj 140 0 obj <> /Contents 141 0 R >> endobj 228 0 obj <> /Contents 229 0 R >> endobj 338 0 obj <> /Contents 339 0 R >> endobj 363 0 obj <> /Contents 364 0 R >> endobj 403 0 obj <> /Contents 404 0 R >> endobj 424 0 obj <> /Contents 425 0 R >> endobj 449 0 obj <> /Contents 450 0 R >> endobj 458 0 obj <> /Contents 459 0 R >> endobj 463 0 obj <> /Contents 464 0 R >> endobj 475 0 obj <> /Contents 476 0 R >> endobj 480 0 obj <> /Contents 481 0 R >> endobj 487 0 obj <> /Contents 488 0 R >> endobj 491 0 obj <> /Contents 492 0 R >> endobj 512 0 obj <> /Contents 513 0 R >> endobj 534 0 obj <> /Contents 535 0 R >> endobj 540 0 obj <> /Contents 541 0 R >> endobj 544 0 obj <> /Contents 545 0 R >> endobj 551 0 obj <> /Contents 552 0 R >> endobj 560 0 obj <> /Contents 561 0 R >> endobj 575 0 obj <> /Contents 576 0 R >> endobj 587 0 obj <> /Contents 588 0 R >> endobj 597 0 obj <> /Contents 598 0 R >> endobj 601 0 obj <> /Contents 602 0 R >> endobj 610 0 obj <> /Contents 611 0 R >> endobj 614 0 obj <> /Contents 615 0 R >> endobj 620 0 obj <> /Contents 621 0 R >> endobj 626 0 obj <> /Contents 627 0 R >> endobj 630 0 obj <> /Contents 631 0 R >> endobj 634 0 obj <> /Contents 635 0 R >> endobj 638 0 obj <> /Contents 639 0 R >> endobj 647 0 obj <> /Contents 648 0 R >> endobj 662 0 obj <> /Contents 663 0 R >> endobj 677 0 obj <> /Contents 678 0 R >> endobj 691 0 obj <> /Contents 692 0 R >> endobj 695 0 obj <> /Contents 696 0 R >> endobj 703 0 obj <> /Contents 704 0 R >> endobj 711 0 obj <> /Contents 712 0 R >> endobj 716 0 obj <> /Contents 717 0 R >> endobj 721 0 obj <> /Contents 722 0 R >> endobj 734 0 obj <> /Contents 735 0 R >> endobj 738 0 obj <> /Contents 739 0 R >> endobj 742 0 obj <> /Contents 743 0 R >> endobj 746 0 obj <> /Contents 747 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 56 0 R 57 0 R 139 0 R 140 0 R 228 0 R 338 0 R 363 0 R 403 0 R 424 0 R 449 0 R 458 0 R 463 0 R 475 0 R 480 0 R 487 0 R 491 0 R 512 0 R 534 0 R 540 0 R 544 0 R 551 0 R 560 0 R 575 0 R 587 0 R 597 0 R 601 0 R 610 0 R 614 0 R 620 0 R 626 0 R 630 0 R 634 0 R 638 0 R 647 0 R 662 0 R 677 0 R 691 0 R 695 0 R 703 0 R 711 0 R 716 0 R 721 0 R 734 0 R 738 0 R 742 0 R 746 0 R ] /Count 47 >> endobj 1 0 obj <> endobj 55 0 obj <> endobj 138 0 obj <> endobj 227 0 obj <> endobj 337 0 obj <> endobj 362 0 obj <> endobj 402 0 obj <> endobj 423 0 obj <> endobj 448 0 obj <> endobj 457 0 obj <> endobj 462 0 obj <> endobj 474 0 obj <> endobj 479 0 obj <> endobj 486 0 obj <> endobj 490 0 obj <> endobj 511 0 obj <> endobj 533 0 obj <> endobj 539 0 obj <> endobj 543 0 obj <> endobj 550 0 obj <> endobj 559 0 obj <> endobj 574 0 obj <> endobj 586 0 obj <> endobj 596 0 obj <> endobj 600 0 obj <> endobj 609 0 obj <> endobj 613 0 obj <> endobj 619 0 obj <> endobj 625 0 obj <> endobj 629 0 obj <> endobj 633 0 obj <> endobj 637 0 obj <> endobj 646 0 obj <> endobj 661 0 obj <> endobj 676 0 obj <> endobj 690 0 obj <> endobj 694 0 obj <> endobj 702 0 obj <> endobj 710 0 obj <> endobj 715 0 obj <> endobj 720 0 obj <> endobj 733 0 obj <> endobj 737 0 obj <> endobj 741 0 obj <> endobj 745 0 obj <> endobj 749 0 obj <> endobj 585 0 obj <>stream xœ33Q0P0WÐ5T03S0¶PH1ä*äósP ‡ "¦Â9\\á y\… ¦–@­ Æ– æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-äg›¹Ãˆ'Âñ![³¿û¶}M¥þë/í_ºþWÕº_k­î[¹êŸ¯SýÒ«ã_ÿ Z·ÿÿ׫٫þ{ÿÿÿeÿß ûë.Ç^ÕÝRi²M³ë0‡Á†Df.&.WO…@®@.ŒPb endstream endobj 582 0 obj <>stream xœ31R0P0UÐ5T01V0µPH1ä*äósP ‡ "¦Â9\\á y\… Æ@­@Í– ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xÞÐ)Qÿ“åßþ¯¯ÿljÎúù–œ{-j¿öÍ_ïýûõKݺýK×qüÚº)â׿®ºúÿß´­_×ý¸+ä¨çºf.&.WO…@®@.éQ endstream endobj 579 0 obj <>stream xœ33R0P0bsCSs…C®B.7Hù9\q0m¤2¸Âò¸ ÌÌ\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏÎÿûÉ;EaQíÖ¯kË?Ëíÿºõûºýï¯^·«þt|Õëcë^¯ÿþõê=T¸~P¸ÿõòÿá¿^¿þëê‡ùSæ>^ßÀÁÐÀåê©ÈÈ„Z_í endstream endobj 573 0 obj <>stream xœ31W0P0WÐ54W0±T0¶PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LŒ€º LMÌõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ÈÏ¢pB°ÂqÁ‹oךJ__Ú7mÿÚðWûCûVíóuª›þ:~ýõ¨×ÿÁøõÿ¿uÛã®ìm?8ÇúHíÍÞñ!û¿ìÕ[½d‡#ë†K7ZÛÄ$48¸\=¹¹uŽSt endstream endobj 570 0 obj <>stream xœ3µP0P0a#Ss…C®B.7Hù9\q0m¤2¸Âò¸ LÌ\”©ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµýÿç:–T='Z2Ý{mÉôõ¡/«¾ÆM_M3ûÚ®Øì¥`â"›Þ¾]±µ%Ó€dxè’]õ&½_°Ëa£üF.WO…@®@.ºÊEç endstream endobj 567 0 obj <>stream xœe‹=‚P„-Íœb.€ËÃ,‰/Æ* c¥&€A¥·ò¢z;]¤t‹Ì73AHŸ!½À0˜pð`Р•ª’}òÓŽ—8aà M·ö93™.Ó¿¯8ˆ[óvi¶ K-A’ÜÒ@Ò­¿ƒdbm¦6"YÑÓĞ˶ª¯:‰c¸”¯ççÿ¦÷à>ı@/†9– endstream endobj 564 0 obj <>stream xœ37R0P0UÐ54S03W0µPH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Ì@º ÌMLõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ÓÆ¦b"~ù ‚ÃáC_f_pÜ«öu¯Ú—Ùÿ=÷Ý7?úÿßüåÿ¼ÿO®fÿÿûúÿ·Kÿ‹ä_ç(\úòwKÁ­è …[Ñ—K·ßŠ®ÝxMºµMÂ1±ÃQGÚÏaGú?³‰…÷ã÷Çoý‘èÀÂàÀåê©ÈÈ<ödB endstream endobj 558 0 obj <>stream xœ31Q0P°TÐ5T01Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ Æ– –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\p¦ˆûe‹œàB…Ù—bUAè믯ëf]1ˆ³úú_¶>~BÞ¯¢¬•_·MoÙvˆ;±)"IL"¨Á‘A€ËÕS!+ ß­>ø endstream endobj 555 0 obj <>stream xœ31Q0P0UÐ54W01S0¶PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ L ºúMLõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÈq‰6ä2ˆåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]ÔÜùQ¡Páó½%-IFå˼ɗ^ÖmÙþWëÿõøUüoõÿøÛãc·~ÙvèaŠéÁÖˆ_ÿ#Ëš^^ñ·dÕ–•: K® lsë`hààrõTä ä83Q! endstream endobj 549 0 obj <>stream xœ35T0P0b3Ss…C®B.7Hù9\q0m¤2¸Âò¸ L@ú @R¦z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ]ÿŸ4$\|©'~)>Voe靸Xý¥ÿ—~ízY7= ŽYÿêÇVÅGÅíú²oÚôK¯vy¿^"¾ ¢ÿƒ—«§B W ¤1G endstream endobj 537 0 obj <>stream xœe‹1‚PDåx‰¹.ŒXbøHü1&PQ+5± *çô¶CW,Ýlv²óf‚>#z¡î<àÑ ÃÏhTÕ©ñ#ƒ~ýgTlÑÑÌ´ís2šLï¡Aê nËûµ?A*MAÖ‚¤…¥d;ÉÅÚ\ß"ŽeCO‰½Ô}ÓÞ´’$p“÷ÿ¼–ÏÇX9–(ñ\,8 endstream endobj 531 0 obj <>stream xœ3²P0P0WÐ5T06T05RH1ä*äósP ‡ "¦Â9\\á y\… F&@­ ¦Æ æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xÆîÿÿúú¿Uÿ¯¯Y0'åJðAû××ÿí­‡9彎տ¾þúÒKo—îŠØp¨ƒ¡ËÕS!+ <´Cà endstream endobj 528 0 obj <>stream xœ31R0B]C3Ccs…C®B.ˆ@.ŠäpAdÀ4H<‡+ƒ+\!«¤¤ÛÔXÁ@,$“s¹œ<¹ô=}JŠJS¹ôê¸ô=€Š¸ôœ€—hC.ƒX.}7}gg7 7ÀÆFߨKß9?§47¯¨ÅÎŽËÓEAmAÛá92 ÙW»Ý¨âܱ~Uþ¥¯«¯ÿzµoÿõZû¯ÿZÿ5þÕþغiû¯{]»ôë­¨¥Eõf´>lºR¿þú¯¿õk“œY嘸\=¹¹ hNE endstream endobj 524 0 obj <>stream xœ36R0P°PÐ5T06Q05QH1ä*äósP ‡ "¦Â9\\á y\… Ff@­ ¦¦ z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ع©åë{ïÿñ¯¿þÛß¹Òjr /˯ÿñë¿B Ÿ¿á×½¿¾¬ú™'ôháÃ\ L\®ž \\C endstream endobj 521 0 obj <>stream xœ3±T0P0RÐ54S0±T0¶PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ L̺ LMŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[xžÝXH ‘ùB"û95ÁÏU>NùQù+â×^Zýßê× ­ÿ ¤×ÿ ½þÒõ_/õ¿zoÙ«wé²c!÷¬ÄŠ„­ò¯¿þÛÿZÓ&>€‘A€ËÕS!+ ÝM endstream endobj 336 0 obj <>stream xœ31P0P0bcs#3…C®B.7Hù9\q0m¤2¸Âò¸ ŒMÀ:ÍŒô t €Dr.—“'—¾§¯BIQi*—~8P—¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQ°šôr0‡ñÑ-Û.ÝöÎÕíºuëÖíÛ×ýÝ…/íUû2ûR¾çÞènw‡û¸\=¹¹& 8 endstream endobj 333 0 obj <>stream xœ31R0PacK…C®B.7Hù9\q0 ¢2¸Âò¸ ŒÍ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OÆ~µõÿAàÉËù'“g‘~¹oþûûïA‚_öÿz[‘Y&óM{Á¡ \®ž \\z¤A` endstream endobj 330 0 obj <>stream xœ3¶P0P0VÐ5T06Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­@Í– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j › Sôf¸Ÿ°e¹'ôeò¥Øº½õÙžëå{6?d_.ÌÌ7{ÝìךÆÿÿûzé»m—n{ó8ææÑ`hààrõTä äÝ>q endstream endobj 327 0 obj <>stream xœ32T0P0bCS#3…C®B.7— ÌÏá2DÐ@*ƒ+\!«PÁÐ@R¦z† º@"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨mÐQø§?9d?NýŸë-òG?eMØÊ ÀÈåê©ÈÈ F,| endstream endobj 308 0 obj <>stream xœ31Q0P0bCc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ¯Le·úù†mŠpìù¿õÞþ·åëǾþw½ •ÓŸýmÛ&.WO…@®@.¿™@q endstream endobj 305 0 obj <>stream xœ31Q0P0bCc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ3—ÿÿí›ÇV7íVté¶} rãÛÒ­ûæí}ñ¨*|õ—{“«îMþroê«{a úVgËN]7A‰ËÕS!+ ëžEc endstream endobj 302 0 obj <>stream xœ31Q0P0bc S#…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmA³@ó_û¿ësËÿ?µ~Ç“«õ sÿ#Ÿ•¦^ L\®ž \\€ñ= endstream endobj 299 0 obj <>stream xœ}‹Á ‚PE£E‹ÛOÌè¼—/>“(.¢U-Ô°ò‡û‹6ÕXû.Ì\ÎÜ;ó) †1´0tÔè0`#[¸Æïþu%vFE-: BA5D¯ÉS¾ZŠLH‡‰»-ݯý \I¼–&8É-ipºÓP{pÆÖf‚yñ†>stream xœ31Q0P0bcKc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµOŒšø9lôæuy!¾ô˵ ‰%V_?Æÿ?¹ªþÞ“øÌÛß¶]ºaÛuëpDbÂA.WO…@®@. =¸ endstream endobj 293 0 obj <>stream xœ31Q0P0b#c3…C®B.7Hù9\q0m¤2¸Âò¸ L@Š @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ ]þ?9´¦¿#yÿð·þëÛ²ƒS^Ý}óúÁASF.WO…@®@.û³Cy endstream endobj 290 0 obj <>stream xœ31Q0P04Fæ †† )†\…\`~.ˆŠäpAdÀ´Êà WÈã*‰€4õë*è‰ä\.'O.}O_…’¢ÒT.ýp 4—¾˜t pVR.ц\±\ž. ò ö õþ?€Áúö ò \®ž \\Ï€'¬ endstream endobj 287 0 obj <>stream xœ-‹1‚@E-¬þ)¦¢ÃÝUDL@âÆ˜@Ea¬ÐĂŠr(;oà ¼†×Àb^Þü?ŽC’”Ëkº ™KG…ƒ›|©ðKJÆÕhH)VÙGÊ(²åD.y¼9•‘†Ð;º_ÛDÁ]ˆ W!¢,&–d¯ ©ˆã”5ó}±%›“øRµ¦¾ñK@'d=í•÷²Æ”]×}Þ Ç£kM9r|’/­ endstream endobj 284 0 obj <>stream xœ31Q0P0b#SC…C®B.7Hù9\q0m¤2¸Âò¸ L@Š @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠÆ®f­s¿ÿž,Èüaþòã'R~ø_ýò·¶þëdð/¨¨ÔuùOSÏ \®ž \\D~K endstream endobj 281 0 obj <>stream xœ35S0P0VÐ5T05R01SH1ä*äósP ‡ "¦Â9\\á y\… &–@­ &æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œ³ÀøDBš@…ãC!6¹Fæ*ß ÷¶/¹ï¿öÿÚ/¿îÿÿ/ûÿÿÿOY[ÿÿ»ôß×[ï£3ë7ŠÎLlf;šØÚÌ:á\C—«§B W CIú endstream endobj 278 0 obj <>stream xœ35T0P0VÐ5T01W01SH1ä*äósP ‡ "¦Â9\\á y\… &&@­ }Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ptHr<–ÈÞòÅÃ|ýÉU¾/Í—¾º·öÿúëßïÔË«0‡ÿ4ÿý“dyþë¼m×su·l“ðN8¨c‘˜Ø:ᜠƒ —«§B W ¢CÉ endstream endobj 275 0 obj <>stream xœ35S0P0UÐ5T05P03UH1ä*äósP ‡ "¦Â9\\á y\… &¦@­@93S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔìThRfTdo‘ë9Rá0£Šs-Û}þk¿ÿÁ­o«3 ×V]‚ƒ¬\þèñ·OÐs“¨Èoßw¿~ûßÿú;¿üïþ·?nÉUý%»¾ E³M;Ø-°ášDDÂ& %&.WO…@®@.eORz endstream endobj 518 0 obj <>stream xœ3±T0P°TÐ5T05V0µPH1ä*äósP ‡ "¦Â9\\á y\… &&@­ ¦– –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\9áìõÿŠKý¯ÿú[¿H±ødp>db×T£rmòËú—aû½×_Íþõúkü¯ãWëö‡ÄÕ¯}µ^mÕê×ÑÙ?B¶²ÿcè&á›ØÄ£ÁÐÀÁåê©ÈÈ2æO< endstream endobj 515 0 obj <>stream xœ37V0P0VÐ52V0³P05QH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ÌLº ÌÍŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-äbžÂvp¢["{‹œà‚…GO®d‘>̹oö«_u³ÿýÿþûÿÿ¿ý‡‚¥ÿÿÿŠÿ[õ·lìÒ[±K{o˜®øà÷õ<úlܧ0×ÙC~T=ü‡Á…ËÕS!+ R|]­ endstream endobj 471 0 obj <>stream xœ344Q0P0bCC#K#…C®B.?— ÌÏá‚J@@:ƒ+\!«¨Ã@’Fz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥RË¥ïTÊ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠAzìì¸<]ÔV´²5éý‚Ž)&§¿9GJoØvéöºë%Û.½Õ}[$/Ý^»ewì¥ÛÞy»½Ko{çê½.Ùv½ëÖ­[×~û}??ï·ß—¯ïµµ•ü«öko¼ç^µ/ë—_Êû²ÞóW¾çÞ|Ï/³_}™}õËìK{Õ_î’—ò9Ì>ɸ™ÌÌ¢aþÿÿ.WO…@®@.oxu‰ endstream endobj 468 0 obj <>stream xœ342P0P0WÐ5T044Q°4VH1ä*ä ä) @TÂJäpep…+äq*˜+€ °4Q0×3ʉä\.'O.}O_…’¢ÒT.ýp*.} ".}§gC.}—hC.ƒX.}7}gg7 7ÀÆFߨKß9?§47¯¤ÇÎŽËÓEAmA‘^Æ'A)R'9˜ÿÿÿŸY-.¶óï~÷ŸHðëÿÿûÿ¿þ÷™ûõߺ}·âÿ½¬›¾ë~fÜ­€o‡‚T¤o$êIxoänÛa°Ã ¦mmp„ƒ—«§B W š1wó endstream endobj 453 0 obj <>stream xœ3±P0P0UÐ5T01S05SH1ä*äósP ‡ "¦Â9\\á y\… &†@­@Íæ ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j;7\¾oÂÖ3…íÿßÌÒë±õ¼×=«—z–®›2«íèÒ_Q/릿¾¶ýëë¯ÿÿ_ÿÿÿÿ×®]ap`árõTä äo4E endstream endobj 324 0 obj <>stream xœ3¶P0P0bc#c …C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ\”©ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏŽ´zr¸ŽÍ¬–ÿÈà_ ý.WO…@®@.v: endstream endobj 321 0 obj <>stream xœ31R0P0b#3…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ@@)c=C] ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]T8<êŸ\=¡ò Äÿ-;ôÆGÉ!?± 1‰AËÕS!+ ëÿ7 endstream endobj 318 0 obj <>stream xœ31R0PacK…C®B.7Hù9\q0 ¢2¸Âò¸ ŒÍ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…&üÂãÿý4þp>d"¾ ù¥½ÿú?á@±OYûë^ßz»î0w›Ú†{’×6`apàrõTä ä½*Cµ endstream endobj 315 0 obj <>stream xœ36T0P0a #3…C®B.7Hù9\q0m¤2¸Âò¸ Ab ]f Fz† º@"9—ËÉ“KßÓW¡¤¨4•K?(Ë¥ï&œ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚†ñ¹æCEYŸ3¿ˆwý_ß&Þÿ>*v>`bPàrõTä äS”2M endstream endobj 312 0 obj <>stream xœ3µT0P0QÐ5T05Q01TH1ä*äós¹À9\¦ZDgp…+äq*˜(€ ‰‘‚‰ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ̱lžpàè!Þ‚.Þ‚Ff9ÿó=¿Ì}õ××ú_åÿâayrµv‚¡ÿ÷ß@øíïþÄuÙm>stream xœ33S0P0QÐ52U03V05QH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ L-º Ì-Lô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œ3G¾HB€ÃFÀ`ž@¢• —úy…éKþªÝ÷ºý:±õrÿ¯ûÿAàß×ÿÙ{óc×ÝŠÎÌ1hº°VƱ„Gl‰“•üåÿï?ü¤!¥3…Íà‡í>¹{÷~øs/*ÐûÒ‘ör‰¼çþŠõõÿGšF½-_»eGbÁ-îÄ– ç;"¦˜„30r¹z*rr·úf¤ endstream endobj 269 0 obj <>stream xœ31Q0P0b#S …C®B.7— ÌÏá2AÐ@*ƒ+\!«PÁÄ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô–T³ÊúQÿ Kÿÿç¹°G¿õÃ^}ïK_ö¨¾Ð÷¿~ùKrMè‡ùËþýý»?ÿýýÛ¿¿ÿþöåB¡âÄæX¸\=¹¹¯P endstream endobj 266 0 obj <>stream xœ36U0P0QÐ5S0Òf )†\…\`~. äpA$À´.ˆÎà WÈã*T02j5P05R0Ñ3J‰ä\.'O.}O_…’¢ÒT.ýp ".} .}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶â€¹øYë«ÿWßD`ÆA–[ÀÄ Àåê©ÈÈ­l?< endstream endobj 263 0 obj <>stream xœ36U0P0bc##K…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† º@"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨ˆÿ?¹š…çñÞú[ïã¿í¾þwÝ×ÿÙ`ÎÇ·õosX¸\=¹¹Œã6l endstream endobj 260 0 obj <>stream xœ36U0P0bc##K…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† º@"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X˜Ð|¹UmE‘FÚáXþØúø¿õÿÿÿÿX±rÈ&.WO…@®@.Fw2œ endstream endobj 257 0 obj <>stream xœ36U0P0bc#K…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ@@)=C] ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôò³4±/_¾|ñ“/³²_ûUñÖþÿ·=³Ö–íÎ,ÛÍ£º1::: €‘A€ËÕS!+ Ĥ5° endstream endobj 254 0 obj <>stream xœ36U0P04FF – )†\…\`n.ˆ²TÈዃ) •Á®ÇU2BK V=C] ‘œËåäÉ¥ïé«PRTšÊ¥®`É¥ï"œœ ¹ô]¢ ¹ b¹<]ìêþ7À`=ƒ—«§B W D !Ò endstream endobj 251 0 obj <>stream xœ36U0P0bc#…C®B.7Hù9\q0m¤2¸Âò¸ ŒL@@)3=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j yX[äÿÿ“ˆøÿÓñèŸYëœÒÿCÁ¿‹=³–20r¹z*rrœO7Ý endstream endobj 248 0 obj <>stream xœ36U0Pac#K…C®B.7Hù9\q0m¤2¸Âò¸ Œ@ŠÀR¦z† º@"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ä<'Páøz]Ïé{ÕvÉw½þ÷ÓÔ§ùxæ× ¿yT7¾ÍMlmap`árõTä äP25; endstream endobj 245 0 obj <>stream xœM‹=‚P„û9Å\ß[Aè_A"…±R `­GófË"ÅΗùÙøDÏ„QÆØ3>~~Ø ì±;3c‡†#&S{õL™Ä“Ç€<À…ŠËüjáÛÀ]h’_ \yø;BÉ·êGU¿ÿ·e8Ö¨±GZ.r endstream endobj 242 0 obj <>stream xœ36U0P04FF F– )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T°ò @2†Æz† º@"9—ËÉ“KßÓW¡¤¨4•K?\Á’Kߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææ+XÚÙqyº(¨íˆ*¬ó ºuüÿÿÏÏæÄOÙ¶€‰AËÕS!+ Ï•- endstream endobj 239 0 obj <>stream xœ36U0P0bcCC…C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠ÄÂ^^”uŽ¥Núû÷ßïÿÿÿ[[õë‡w×ëu;ô LêÿAç½ ˜¸\=¹¹ï¦:® endstream endobj 236 0 obj <>stream xœ36U0P0QÐ5S0Òf )†\…\`~. äpA$À´.ˆÎà WÈã*T02j5P05R0Ñ3J‰ä\.'O.}O_…’¢ÒT.ýp ".} .}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ànæ¯×qûã¶¾¢¯¯‘i˜à+«'W58¸\=¹¹t¸>: endstream endobj 232 0 obj <>stream xœ3±P0P0bS#SK…C®B.7Hù9\q0m¤2¸Âò¸ LAŠ @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ… .h>nbã°Q>Ô&ø˜ŸCá(ë!•¹*»â_/ý×Ìíyüþ(è˜ë}rÅyföfùÿXÀ—˧ü|Üÿ`apàrõTä ä5¬W› endstream endobj 730 0 obj <>stream xœ36U0P0bcCC…C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠ÄÂ^^”u޵îßýýÿÿÿ_}}ËŽu»Þ·CDî×ÿÿÿúõõC²¡N  \®ž \\ž=û endstream endobj 727 0 obj <>stream xœ35P0P0bJ1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄPÁ¢ËXÏPA×@ÏÀ,L’s¹œ<¹ô=}JŠJS¹ôÃJ¹ô=€*¹ôœ€—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ýÿ&=N½}“^ê½þ²WoÒÿK_öêÔêêê_º¤ønú¯XÕ¥ñ/«¼—þ_²Ë{É>q¡Žÿ  \®ž \\5Á?M endstream endobj 724 0 obj <>stream xœ³4T0P°TÐ5R°0T044VH1ä*ä ä)HT ÌJäpep…+äq*˜u%M,õ@r@"9—ËÉ“KßÓW¡¤¨4•K?¨ŠKߤˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææõØÙqyº(¨-grz|˜û`Ó‡„=/$ç¹0½îú·ëuëõØ‚1zâÜMÏĹ,ïÿÔ95hüá„.¿ÔYï/hæïPû•ßr?ürmüþð-?îÿûþïÿÿßÿŠ?Ä¿üòËÿâÿ×ÿ_ïåôëGè¡oœúß^_ºýÛ;oÛ¥·eRѺmB‡yT7/pئ˜ØÚ&&aÄc¬bÔÜÀÁÐÀåê©ÈÈò³{s endstream endobj 509 0 obj <>stream xœ3·P0P0WÐ5T°0P0¶PH1ä*äósP ‡ "¦Â9\\á y\… æÆ@­@9Ks=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÛH³že>Ä#`Ð|!‘M æQÆÇ ý— Íšöj,÷ü·h¿×z¯Õ¿Öÿz¼4*jÝ>_—ÿ«^_ýÿkÝÞÒø×¯£þ‡,}þúÕê¸Õ«þÿ¿6éú¿ÕÞõïê­ìz5ë°ã‚C  \®ž \\àÅZB endstream endobj 506 0 obj <>stream xœ-Œ±‚@D-Í|ÅTÆ—3Z ˆc…±R À Òû;~à‡x(ÍÎì¾™]ôÐ[†Ôk'Š'…ÿKóSÅ#MèÌ[tÔßšÁB ÈÍcƒÄBìŽ[†T.ÙPC’ÂPAÒ½‚€äbLîÖ"ŠdKÏs­û¦½»F朽²Ï{>yN‘Y–(ñ`Ð&R endstream endobj 503 0 obj <>stream xœ35S0PÐ5"sS SK…C®B.¨H.ˆËá‚ÈiDWW¸BW!HÔÍÍt ô,A’z† ɹ\Nž\úž¾ %E¥©\úá@e\ú@U\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚ÚÂe¥BÍŽ¥Ø«8¤/q^ŠúõoËþìÃܯÿ}ýI@8þÖ‰ô…lšÿ×_Û¿þúÿW{Ãÿÿz[ÿëoöä³õ¡_ãýYúéûW/KŽVÇIÄYÅO¯^kgúúÕ–U UÕV„IæbP`ârõTä ä"ó\¼ endstream endobj 499 0 obj <>stream xœ33R0P0QÐ5T0µT01UH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@Íf &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-’b;ìØÓîÿÿ¿ÚRGéýÿ1À¿ý¿þ¿Þ«º¥Päá> ï1;²›YMX¸\=¹¹ˆOHa endstream endobj 496 0 obj <>stream xœ³4S0P0WÐ5T°°T°4QH1ä*äósP ‡ "¦Â9\\á y\… F@­ –¦ æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\WÊs’Wµ’­QG Âñ¡`ãáC¦m _y?d‘¨rÜ£roB­‚¿‡úñ__¦G¿,ý²ÿ믯×ÖÍú¶ÇK_ÿÿgÿÿÿÿ'Wëÿ¿ÿ?ÿÝ ¡ÒÛ^ÿÝúëvìë­·½suÿnÙvéFfnˆÃÞ9 ¶l8a°0±ë07·â’ÅŠë—08°p¹z*rrάm‚ endstream endobj 456 0 obj <>stream xœ33U0P0UÐ5T0µ¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`jÔj `Ô¯g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚Ú‚;s¤2”ãàwhÜ£ÐÌÏ¡pø‚ã^µ/³/å{î›$ñû‡Ù/އl¿ZšË/ùî[i^œÿê|ÿ*ÿÚê_ñÿ›tÿ?üÎ?($«Þ¿.»þ=~wèÝ-‰ÙÛ.å–ó¶ÌÕ;,0cí†C<ºGªoâÊi:YÛ$¢Ùœ'6 ?˜bpŽA‰ËÕS!+ ÍRm endstream endobj 226 0 obj <>stream xœ31Q0P0b#c3…C®B.7Hù9\q0m¤2¸Âò¸ L@Š @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OÓ®ýO®4¥>stream xœ3¶P0P0QÐ54W01P06WH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒÍ€º LMLô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸á‡Â‡~³Œ >±z“/½ú²:~éõW[ÿ–þZÆõ¯öýÿºôë×ÛÞ¥·9n½ oM~ý·noZ?çú+™™™ž«8õqó8le`ärõTä äîÍOH endstream endobj 706 0 obj <>stream xœ³´T0P0bKS #…C®B.7Hù9\q0m¤2¸Âò¸ ,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµâ<‚‹þÿÿ?¡ê„Iû ホþ݊άz{íVÜ´[o¯/Ý6íþ­è¥Ûv—¾Ì]ºmtfîÒGsë®]»ÿöí¿{÷_~_¾®ù媸Éu÷¦/¹·öëKó%÷¶_’÷ù¾4_¹Ê÷eÕöËUáKþÝ›\Ç!]¨Ä¸Sœ÷ÿ.WO…@®@.ù"n# endstream endobj 700 0 obj <>stream xœ³4U0P0VÐ5T°4T05VH1ä*äósP ‡ "¦Â9\\á y\… @­ ¦& Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(hJª‰ÿÿÿäJŠÂÖ³ü¹mb¿âÿnÛýõöÿìý±·Þ__wÝk0}çÙõÒ×»òï_úúïåÖû¯·Ìÿâç–ÿñoüzÙ_õù½]µ¯ÿͯzùÄø»lƒ—«§B W ƒÆc’ endstream endobj 447 0 obj <>stream xœ35P0P0VÐ54S02ÌR ¹ ¹ ¹@(’Ã‘Ó ñ® ®p…<®Bs~S :=CLÎåròäÒ÷ôU()*MåÒªâÒ÷*âÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ô6;8§²ð4Ç(n=äû‹Ãl—OÕ_»ýþëÿÇÔÿ‚“«êÿ¿ý·»îõ¶Ý‰eîÓyœ>ú$±¼$÷ÿ'3ÃÿL \®ž \\¢iJŽ endstream endobj 444 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ä9äÈ|ùòå‹3mY¤_~™ýòÿÿ׫n{·‰ó8Ý:Ìý¡ùqâ ó%÷&×Ú”ÍÿkrÈ¥ÿ‰-Û$¼û³yt×Hh04pp¹z*rrûnDP endstream endobj 441 0 obj <>stream xœ35S0P0UÐ5T05P03UH1ä*äósP ‡ "¦Â9\\á y\… &¦@­@93S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô,˜cÓVõ¡ù?Çí ?ã&Ī|™¿ÞûúÏõÙ‡¹ÿmý¯tù»„ã [é Ž;–ý^öúö¯ýÿ®ÿW[ýÿÿßÿ¿Þßÿ_²ÿöºK·×nÙv(Z´máÃÜl~<  \®ž \\ùgWw endstream endobj 438 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶óBGÞÊï_ß]s?8_¼îeùûØu_oˆã[ÇÑò_õËïõ×ï_}õ‚Ø_³–QVìšµÚêX.WO…@®@.“BM endstream endobj 435 0 obj <>stream xœ36U0P04VÐ5S06R01SH1ä*ä‚ä‚h PD Lë‚è ®p…<®BCK nS# z†@9 ‘œËåäÉ¥ïé«PRTšÊ¥TÅ¥ïTÄ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔVº¾*ÿš—O® `dàrõTä äLÐ1ú endstream endobj 432 0 obj <>stream xœ36U0P0bcCC…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠÅ»'WU7Ù×óþûûïïÿÿï×ÿ/ûÿ_}ý¿÷¥;Cƒ²š8¸\=¹¹A~ endstream endobj 429 0 obj <>stream xœ33R0P0QÐ5T0µP0³TH1ä*äósP ‡ "¦Â9\\á y\… ¦&@­ æ@ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\“aÉsåÿÿŸ¼Fæÿ¡à„ ¿Â× ‡?êŽÊ5²_â_òËÿòë—õÿ×_ÿSVqrÕÿÿ÷÷ÿ»õÛîu·ªy”˜o8(¹¶#Æ`GbOP†C—«§B W ¾XV endstream endobj 420 0 obj <>stream xœ36U0P0bccC…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶âŒ÷OÓ˜©ÿÿÿÿ©k[ÿÿþa ÒK_ö‚ˆûŸe~¹ïûå¯ù÷·¿WF±xð]ÿäª:ƒ#—«§B W ¸œB÷ endstream endobj 417 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨­8 .äkW`°eÉU­£ººU—þêm}·õîÿúoÿÿÿÿ³˜¸\=¹¹ÃØ8  endstream endobj 414 0 obj <>stream xœ37R0P0b3 S …C®B.7Hù9\q0m¤2¸Âò¸ ÌL\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ ¤4ÿÍÿ7ÿåÿ— Êòë¾ùó—_ûUdD¿üíWmþòÿÑ/¿èÿ÷ŸÃö̆(¹¼cÂÁ¢óÿ  \®ž \\eQ8 endstream endobj 411 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶B$þäª';Úêþƒ@öñÿZ÷ûÿÿÿøÿÿçMõ`ÿ'ÌA"ÿÿŸ—ó jà`hàrõTä ä·F; endstream endobj 408 0 obj <>stream xœ37P0P0b33 …C®B.7— ÌÏá2CÐ@*ƒ+\!«PÁ ¤Ï$e¢g¨ k g` ¦ ɹ\Nž\úž¾ %E¥©\úá@¥\ú@•\úNÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEõïÉN?™^|øÿëþÿÿÿŸcõÿüÿÿÿ+\ÿÿë×qöÿÿ9s~¨¯¯ÿÿ(üÿø0ø§2Cü?ƒ#—«§B W ÐRñ endstream endobj 399 0 obj <>stream xœ3¶T0P0bcSK…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôò2”jçx°ð…@>§ÁÿµîéÝÿ¯¶²lÒñKuY—.½6mzTlÝôÿñÿ ÿÿO~ Ç—ÿÿ¿Mle`ärõTä äðID¢ endstream endobj 394 0 obj <>stream xœ36U0P0VÐ5S06T01SH1ä*äósP ‡ "¦uAtW¸BW¡‚‘P«‚©‘‚±H H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ8Êù|Õüù÷ÿƒï‡o^ŒÞ¿VW²»õ:Däuë©k¡j+DX¸\=¹¹7¡> endstream endobj 223 0 obj <>stream xœ31Q0P0VÐ5T01T05RH1ä*äósP ‡ "¦Â9\\á y\… Æ@­ ¦Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-l~4ÃB!ó…é!¹]&vMü—_ÚMþòëoÕþø_ñ[¼þÿ'ë×ËïÕV]Ÿpóþÿmû¿¿ÿ¶ûïºûÛö®;̽ñÍòÓ7jyX¸\=¹¹eiNB endstream endobj 220 0 obj <>stream xœ31V0P0VÐ5R0¶P05WH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÚŸHw“ú Îß›/þÿßÔ¢¬©ÅŒ}ws—n›v˜CÇ›G„Á…ËÕS!+ xC® endstream endobj 216 0 obj <>stream xœ31T0P0Bc 2WH1ä*äqs¹Àü.cm ¤2¸Âò¸ Œ @ÐØHÁTÏPÁDÏR!9—ËÉ“KßÓW¡¤¨4•K?¨†Kߨ„Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ô9tùò!~ÿ/ÿýrUÿïú[·næÎfãbP`ârõTä ä™C1² endstream endobj 212 0 obj <>stream xœ3²T0P0asS …C®B.7Hù9\q0m¤2¸Âò¸ ŒM€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…s.,1\'Páòö…ê!ÏÓÅgÿçÑ—ÿÿÿ§Ÿð§,—îÿ‘ÁY‡þ1(0q¹z*rr´€F endstream endobj 209 0 obj <>stream xœ35P0P0bscs…C®B.7Hù9\q0m¤2¸Âò¸ LL@:RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]”˜þ?¹ÒyØòð×[ïc×Aˆû»â¿í¾ž½· D¾­[wˆ°08p¹z*rr“é@‰ endstream endobj 206 0 obj <>stream xœ35V0P0UÐ5T01W0µPH1ä*äósP ‡ "¦Â9\\á y\… &F@­@Í– ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-he<˜Ð¸N »EêÅÇJÊž_š¿üÚ¿§îÝ÷ûÉ|¾~\F<ÆOl›¾}c»wyûá ;gǚƮ yrßÍ$÷¿¿¿úë®}—Ú¦˜Î:¤ùÆiÁUfVYF.WO…@®@.ýN‰ endstream endobj 203 0 obj <>stream xœ35S0P0VÐ52T05V01UH1ä*ä‚ärEr¸L4H<‡+ƒ+\!«PÁÔ@ÍÌŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Øé`¡Ó.Áa£pè!÷¢Æ¹µ,z“kÕn]»õòøßüÿ poÿÛòµ[¶]º‘¨Ëõ0ãŽøÄÅÿÿý~?Á ^)ñ<~âû–óz™ÓN»MÈ¿§}ÿÿÛ”«Ù[o{çê6³lã:,°áÐÁ¦†kX¸\=¹¹u]m endstream endobj 200 0 obj <>stream xœ31Q0P0RÐ5T06W03VH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ f& Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-lNØÿÿoýÿøë_ÿ–^çnqØø_mѦÿpð§}?ˆú·{íÿØ-Û.Ýø&&u°•A€‘ËÕS!+ ¨I’ endstream endobj 197 0 obj <>stream xœ344S0P0RÐ5T044V0³PH1ä*ä ä) @TÂJäpep…+äqõµ(˜Y*éå€Dr.—“'—¾§¯BIQi*—~8H—¾P—¾S€³ãmÈeË¥ï¦ïìì䨨è{µsé;çç”ææƒôØÙqyº((;r\ÐÿÿÿS–"1Gâ’ßû»¯×Û½·<{÷õÿe»¿Þÿ•½?öÖ»Þµõ×®ûòõþïµK¿ü¯]÷Ò–H~Ýk _¦Ú·þßåø÷±ö¿ÁŒ·¦ÿû:°08p¹z*rrü˜vœ endstream endobj 194 0 obj <>stream xœ35S0P°bs3S…C®B.7Hù9\q0m¤2¸Âò¸ Œ-€\”¥ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµwnT=,Ø¡ç*ÿ©|r@ýìàWÃý, \®ž \\ˆ0F endstream endobj 190 0 obj <>stream xœ35V0PaKS…C®B.7Hù9\q0m¤2¸Âò¸ LÌ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…œ‡æ‹$4¾°Q_üö…êäÀ—ÖKýŠÿ~ëåúìãëÿ¿þ þ©($ÿap`árõTä äŒÍF# endstream endobj 187 0 obj <>stream xœ33U0P0VÐ5R03¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`jÔ ”3R0Ö3J‰ä\.'O.}O_…’¢ÒT.ýp ".} .}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶pÎÓCü«8¿îU¿´¿þëÿ×ï¿þúýÒ¯¯·½__¿ôV‰G}cÜ^frñÒ·eÓ¶.æ\7=ÊŒ§M[{mêºõQÛöFEm{-»tÛ´·ÂE8s«kf-»õ÷Ú­ìnߦÝð0Û‘#”زM‘M›GáÐÁ&6.WO…@®@.Ydbo endstream endobj 182 0 obj <>stream xœ3µT0P0bScSs…C®B.7— ÌÏá2EÐ@*ƒ+\!«PÁÔ@RÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]” ž\Iy°£Úqþíoÿ¿ýÿýÖǯ÷¾ôe¯>g!ëŸ3ìÛ¥e¿ƒå¯¯ÿ7ýúú¥u ¦¸h02p¹z*rr R endstream endobj 179 0 obj <>stream xœ33R0P0bS 3…C®B.7Hù9\q0 ¢2¸Âò¸ LM\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…SŒö¿ü‚/vÕ¿®µÿußÿßöËÿ×~ùâ„¿ÿ7õ÷ÿ¥uÿ_ÆË¿üôpó¿Éõÿ—ÜÿÿÒüßþíë—W8¶<âicªcP`ârõTä ä[¦SS endstream endobj 176 0 obj <>stream xœ36R0P0QÐ52P02V03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸  -º ,ŒLô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(èñX(-ÎÏÏß»wÿíÛ÷¿¯ûþïû¿ÿßþÿÿŸÿ .ýÿÿWÿßþ¸ýq[_ÙïíýeË®K—.u­`hààrõTä äxM$ endstream endobj 173 0 obj <>stream xœ31R0P0UÐ52T06S03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ º ,ŒLõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÈq‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j g½þúÚÞ:(̾þ ap`árõTä äI&K¾ endstream endobj 137 0 obj <>stream xœ36W0P0bccc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm׿áCë&½ÔÛôeWüzïKÿE¶ì÷ööþÒté¿÷Ò«¥—Öªþ÷,™fñƒ¡ƒËÕS!+ ÷g;Ø endstream endobj 134 0 obj <>stream xœ33R0P0VÐ5R0µP05WH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­ ¦– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]´í'Nn,*Ï0Ø»>û?NðõÞî¿åÿ¶]¿t;v×mïÕmÓ³l8¢c°‰MA€‘ËÕS!+ ÚBQz endstream endobj 131 0 obj <>stream xœ³0U0P0RÐ5R°0R05WH1ä*äós¹À9\(œÃ•Á®ÇU¨`a ‚¦– Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ž9±þrå$ƒ£‚ Ó …CwoýÛý÷öú_ïîúÿþ»¯þ¿ÿ%—~ÖÿÿYkÿÿíÚ¥_þÿß~+nòÿ÷3«üÿÿ®›¾äþÿï¯wù^ÿÝKóøÿu»—Ü­ÿû£Oøÿ÷±ö¿¯ûÿûzùÿÞ’Œ \®ž \\®Áj¨ endstream endobj 128 0 obj <>stream xœ31R0P0VÐ5R0¶P05UH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô>stream xœ31R0P0VÐ5R0¶P05UH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô8Θàø}ñã Gæ*½IUÞK_}uÝ7Ë6ûÿú8÷‡Ì_(Ü›\“{¹öúöÿáÿŸ\­ÿÿûý¯ÿ%»¿¯»^²íu®n›ÐÖ61 †.WO…@®@.ííM² endstream endobj 122 0 obj <>stream xœ3³T0P0b33cs…C®B.7Hù9\q0m¤2¸Âò¸ ÌL€\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ%Ág(âQøÐ;!QZá‹p†Ú“«—rÕ>¼Ì¬ ›~YäþÿÐÿÿ¿ÆÿÇÿfeiKµœòpÿ?&.WO…@®@.\€R{ endstream endobj 119 0 obj <>stream xœ36W0P0bcCSc…C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g›êÿ_ÿÿõoéß‚®nö“ƒÔYþCÁ?—ý êÚݪ·KÛ´³ÙDX¸\=¹¹TKAŒ endstream endobj 116 0 obj <>stream xœ37V0Pa3sSs…C®B.7Hù9\q0m¤2¸Âò¸ ÌL€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OU‡MlO®89èÉO¸àÞ&¿ýáþüÿù·ÿßþÿþþÿýÿÿ¿ÿëÿÿ}ýÿúøõÞÿ½/}Ù£úP_aßF…N“0(0q¹z*rr-mOõ endstream endobj 688 0 obj <>stream xœ33P0P0aSSs…C®B.7Hù9\q0m¤2¸Âò¸ L-@:Rfz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô¼öÿÉÛ"Pd‘}øõ—ÿÿ×_­ÿ·ßEõýúõ±ÿ_¯ú2½õñõõO¿Ö­¾=~Õÿ¿Ù ÿ__ÿ·êÿõg¼nà`hàrõTä ä¨*N endstream endobj 685 0 obj <>stream xœ3³T0P0UÐ54S03V0µPH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ A¢@hn¢`ªg’’ɹ\Nž\úž¾ %E¥©\úá@U\ú@E\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚ÚÂ1zê_ãVÿÇŠc–ÎØ”%ÅÝÌz°ÿÕÞðÿÿW}ÿÿÿ×úÐ?.ͼ'WEò8²>^õÿo8VüA‰ËÕS!+ »k_ endstream endobj 682 0 obj <>stream xœ3³P0P0b3KSs…C®B.7Hù9\q0m¤2¸Âò¸ ÌŒ€\”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµObT™~ø$-àXdûwoüêÿ¯_ÿ5=þúº•¥¿â¦­ÐkŠãÐSÌ,¨Y Qwoí—û÷ý­ÿ¿þúë[/ý­z«úúe–Ð …EZ"ššl˜¸\=¹¹[üO endstream endobj 673 0 obj <>stream xœ3±T0P04PÐ5R0"S…C®B.ˆ@.ˆ åpA¤À4P<‡+ƒ+\!«PÁĨ¨Æh„ž!PH$çr9yré{ú*”•¦ré‡Uqé{qé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµOºóè¥ f„Ç–.=ô°`‹¸åž?õqû¿¾˜óGÀNñÅ„ü¦}µqMÿoí©¿þÿSÁÇkó׿–­Ù0M4*ÖsUf™ÐmΧ‰‰³¸\=¹¹K? endstream endobj 670 0 obj <>stream xœ37R0P0asSK…C®B.7Hù9\q0m¤2¸Âò¸ Ì \”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmá–¹ù¯×¿þõúÞþuû׿xôúkUÜúëë¯/}ýõu-‚YSõú—…”ý˪¿Uáÿ&¿þú`þ…vÏ»]+M㘸\=¹¹w4P: endstream endobj 667 0 obj <>stream xœ35S0P0UÐ5T05P03UH1ä*äósP ‡ "¦Â9\\á y\… &¦@­@93S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôt0TèüÐ|ˆß•¹ŠÃ|ɽ©/ÍW¿®¿ÿþÇ¿ÿÿÿ¯ÿ59ôÿïõoÿæ®ýqëF¢ÞÑ‚ë>stream xœ3·P0P0bsc3s…C®B.7Hù9\q0m¤2¸Âò¸ Ì,\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµñÿÿ´q8³¼˜#1!áoþ¡Ãÿ¿îþ$þÿÿS»HÌjKiK\ÿœPLÿÿ‡Á…ËÕS!+ èRÑ endstream endobj 655 0 obj <>stream xœ%‹;‚@E-Í]Å«Œ O# ¡`€81&PQ+5± *½• ÐU¸ wà2Lð‰ÕÉýœ™&—41“öh´cÔèr)¢ÀèÈ?S…šôTT—Æâ;Lì:mK„Ê®èrjöP¹œ ò SC ­î*QÆ$SßWKÉbŽESVgQ‚6¢Á3~¤ó¶m?÷Ûû5ì]ûˆ-eÈðe€+– endstream endobj 652 0 obj <>stream xœ37Q0P0bs3 …C®B.7Hù9\q0m¤2¸Âò¸ ÌÌ@@)c=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j®¿',1üPÏÿðïßÿßþþÿÿ¿ÂÑÿÿ·ÿÿÿÿ•ýÿׯì©ÿÿ§MüÁ¿ÿÿ9t¿ÿÿ+þÿÿöëÿÇÿúÿúÿú¥¯_?¬ÑŸã€…ÁËÕS!+ ç>ZP endstream endobj 643 0 obj <>stream xœ35S0P0SÐ5T05V03WH1ä*äósP ‡ "¦Â9\\á y\… &æ@­@Í fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨mÜs_ƒmÏ´¶ÿ¿^¯ÛõúËΧcU_–Æí›’›­¶pÊ–-û½ã¶^ú[uýëëøëÿãöýÿÿú ø¶mÛ&.WO…@®@.–"L— endstream endobj 484 0 obj <>stream xœ³´P0P0QÐ5T°4W°0RH1ä*äósP ‡ "¦Â9\\á y\… –Æ@­ Æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(h5n sYÚaQ”ÅQÊËø“ékEâüÛßþþû»ÿßßÿ¿ÿƒÀ¿ý_ýúúëË^}ïCqqή5NvÄØ•²1€(ÞŸÿ?ÿý~°â÷`RáHíòÿû¿¾½þÛF5fkïÄ– G×HM° XÀÄ Àåê©ÈÈ lì endstream endobj 478 0 obj <>stream xœ3±P0P0QÐ5T01V05QH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ ¦¦ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-lv8ÒºžÃVJú‚ã^µ/³/åÿÍÿ«öÿôÿÿ÷ÿƒ“«®ÿÿÿïë­ÿ{ë·MûºmÚ­hÕ‰)† \®ž \\'—J: endstream endobj 391 0 obj <>stream xœ36U0P0bc##…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôì|˜ùú—Å®¿UqûpúúëK_}ý²¶êoULçå“«"y¾ÿÿÿ‚×–ÿ[¹\=¹¹Ðë@ endstream endobj 388 0 obj <>stream xœ36U0P0W02R02W01RH1ä*äós¹À9\FÚDgp…+äq*(€ 2×3T02Ô³THÎåròäÒ÷ôU()*MåÒÊré{€I§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W TlgÇå颠¶â†«Øìø_õÿÿÿ?¹êúoSF.WO…@®@.ñÎ,à endstream endobj 385 0 obj <>stream xœ36U0P0VÐ5S06T01SH1ä*äósP ‡ "¦uAtW¸BW¡‚‘P«‚©‘‚±H H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…sæ&–.6,Øõ þìŒ:^”5Ïež|=Dè}ûæEwl\ap`árõTä äà?{ endstream endobj 382 0 obj <>stream xœ36U0P0Q0V06P06WH1ä*äqsA¤¹BDB© ®p…<®B#3 > ‰‚‰ž¡‚‘ž¥Br.—“'—¾§¯BIQi*—~8P —¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[p7óÐ5¡K‡¸½9tuY[¶ˆ ]ê½3ëáÛ‡{ÛÛ¾ÉÝ“¨®H|ûp÷á[  \®ž \\s&8³ endstream endobj 379 0 obj <>stream xœ3µT0P0bS3…C®B.7Hù9\q0m¤2¸Âò¸ LM€\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OE¦ÖÿÿÕ5)¸å.Ý6íeÙîÌÜk·¢—ÞŠÎÌ û›ûöí¿yó«,÷ª_Ú«öeöս꯾̾”ï¹7NåA‹DþÿL \®ž \\VÕFñ endstream endobj 376 0 obj <>stream xœ³0U0P0b 3K…C®B.7Hù9\q0m¤2¸Âò¸ ÌÍ@@)=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j —U˜ü›ÿòÿËóÁÔçùѯ¿_ûU›¿þ~ô˯ûö׿/¿öëï×}ó£_þ ÷ùï?‡çü¯ûþk¿ü¿oûå×µU{ü.èmûÿA‰ËÕS!+ ›YZß endstream endobj 373 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶â…R·ÿ§¬É‘v Çëÿ#ÀÇÿÿ?8þ|Ú¢”)6ÿÉUµL \®ž \\4öKþ endstream endobj 370 0 obj <>stream xœ31Q0P0bCS#…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ;?ÄÍÿÿò¿Åþ×ÿ_þ¿öÿÿ}SÿÿÿÿÒ‚ÿ/¹/ÿoþçóÿ_ÊÿÿÿÚ¯šµ³Ê6Þ4zù€‰AËÕS!+ ÿmNª endstream endobj 367 0 obj <>stream xœ%‹M ‚`„[´šS̪½þ† ‘ðSé#]¹ˆVD¨aåMºD×ë½åf†g& é2¢3ˆéø[Lbb¬¼ aA W—+FKOƱCf!vÇç}>stream xœM‹½ ƒ@„ûyŠy÷ö>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶bŽD`æ·%W³Ù›ž »]ÿ¹úÿÿÿ»þÿïkù;þÿ÷õÿ!äÿÙÿÿÛŸýñ?ü0pxtùϬ%WX¸\=¹¹÷­[3 endstream endobj 352 0 obj <>stream xœ33S0P0b3#S3…C®B.7Hù9\q0m¤2¸Âò¸ L-\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµñÿO1Mb*áfûuøÃöÿ¯ëÿmÿÿÿÿÖýÿ?e±>‘ú þ´‹þÿÁÐÀÁåê©ÈÈ|FIÕ endstream endobj 349 0 obj <>stream xœ³´T0P0RÐ5T°4S05WH1ä*äósP ‡ "¦Â9\\á y\… –&@­ ¦ Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(h²j2ÿÿ?9pÂÁ Fçù¾]ßo÷Ýê¿·Þ}½·{yüß×»Jÿo›oþïoyôúå¿¿ÞU{½ÿ{´÷K(ÿm¹'¿ÏöõòÿU/¿¯›ÿÈÈ\dT5p04p¹z*rr‚#g» endstream endobj 346 0 obj <>stream xœ37R0P0b3 Ss…C®B.7Hù9\q0m¤2¸Âò¸ ÌL\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ3Zêÿÿé\È;ùöÚ×[¶]ºÛ{˶ëUou·lÝõV·ëþÚµkß¾¿woÉ—ÿîÛ—ÖÝ›ü2ní—_¾`2|ɽõ—«@äÚ#¯8|Øþ`dàrõTä ä‚WWá endstream endobj 343 0 obj <>stream xœ31Q0P0bc c3…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEB’í,úÜëv™p>h>j[ÿíʬǧ°u›2ßPmo“ã±i3=‘³Œ÷itÒ½÷oc#"¦”rqù±q1(0q¹z*rr>;Y endstream endobj 170 0 obj <>stream xœ33P0P0bS3Ss…C®B.7Hù9\q0m¤2¸Âò¸ LAŠ @RÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔvÄÿ9ciÏrÁnÚýè¯ûÿÿþÿÿÿñ[÷ÿÿˆ¨ÿ8lZ¥ÿ7p04p¹z*rrãH˜ endstream endobj 167 0 obj <>stream xœ340V0P0bK  #…C®B.7Hù9\q0m¤2¸Âò¸ ,AŠ @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]—Vß?¹BYá¶ßaîýûçÄßþ»ÿý·ÿõHÔ÷¿û±Sÿþçã úïÿ¯‚¿@ðÿ;âïŽý~ÿƒ—«§B W  kyn endstream endobj 164 0 obj <>stream xœ33P0P0QÐ5T05¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`j¨Òlj¦`¢g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ @ŽK´!—A,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶pÃe…)rMl_„«|_ÚM®º7ùï˺_÷ÿ¿¬¯ýgß?—9ü¿Úêÿ÷þ?‘*ºíë¶ýÑÙۦ݊æQm“ðN8¨cÈÍ›ØtBC‰A‰ËÕS!+ dŒI endstream endobj 161 0 obj <>stream xœ3·T0P0bsc #…C®B.7Hù9\q0m¤2¸Âò¸ Ì@ú @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]T§þóužëœý+˜põüÿ¿µõÿÿÿúÿý¿ýqûÁøxÖ]ÿ8¸\=¹¹@ÐSé endstream endobj 157 0 obj <>stream xœ34±P0P0bCcSC#…C®B.@. äpÁ¤ , Á®ÇU¨`hÒn–5×3TÐ5Ð343…ä\.'O.}O_…’¢ÒT.ýpZ.}R.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÒdgÇåé¢`ÍÁ»<ÁqY™ ¯zÒÁi22–¦¼-Yû·ølp¿íï~Þßu÷·ûûïï¿ÿÿþÿßýÿ@®ÿÿÿ²þÿõÓÿÇ훾ôÿÒ—Þ—>4}Ù#ÇYÉ,ãô° FÜzFæó<Þìmýÿñ¡(žÿÿ˜¸\=¹¹ÞÔ„ñ endstream endobj 154 0 obj <>stream xœ320U0P°bCK3C#…C®B.@. äpÁ¤ , Á®ÇU¨`hRi–µÐ3TÐ5Ð343…ä\.'O.}O_…’¢ÒT.ýpZ.}R.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÒdgÇå颠ÐP‘ykëßõj 7.î˜Î;ÿÿÏ/—þÿÏÕÿÿ Hý¿íýÿï–ý Š*b@ŠT1EPìÆúÿ·€, $ $‡ý ˲²&d›lýwýÿ­, \®ž \\K´Û endstream endobj 151 0 obj <>stream xœ³4T0P04æ ††Æ )†\…\`\Êá‚Ê@*ƒ+\!«PÁ ¤Î,gh¢g¨ k g` ¦ ɹ\Nž\úž¾ %E¥©\úá@Å\ú µ\úNÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÇÎŽËÓEAmášéC¯×‰s·,ˆiä2’᳟P<̓r€þÀŸgõÿ°08p¹z*rr-_  endstream endobj 148 0 obj <>stream xœ37T0P0VÐ5T03P04°TH1ä*ä ä)HT ÌJäpep…+äq*˜šu% fèå€Dr.—“'—¾§¯BIQi*—~8P—¾H—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔΥSš›W ÔcgÇå颠¶ æCêÿÿÿ¯ÿÿÿ·þëßúØÒ¿¥×¹×‰ëúÙÿ4e1m‹ÿ >I[Øÿ¶¯ûÿWwÿõ¼íÞ[o{'.mÓÎæÑ‘ˆd›âÀÂàÀåê©ÈÈô[_Ç endstream endobj 145 0 obj <>stream xœ340R0P0bKsC#…C®B.?H‚r¸ 2`ˆÊà WÈã*T°4r Àrfz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TË¥ïRÊ¥ïà¬ä¹DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏÒäÿ«-*øý üäe©PRà)püáø‹ÿ‰è/é/ÂuMõ^Õþê¿ü«ýÿË>Í¿þ¿þÿoÿÿÿëÑu£ƒ*N!Òÿÿ30r¹z*rr)Ywi endstream endobj 113 0 obj <>stream xœ33T0P0VÐ5R03P05WH1ä*äósP ‡ "¦Â9\\á y\… A 4µT0Ö3J‰ä\.'O.}O_…’¢ÒT.ýp ".} .}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠ì8Å•qGQ–QÁ÷Ìü‡ëîoûÿíÿïÿàú¿éÿ¦/}¡ÏY¡°£éõÌv ¬D=PÁÿý÷² ü¿õÿû÷3÷º\ã»^u;Ò”wa„Á&.WO…@®@.Å8VW endstream endobj 110 0 obj <>stream xœ32V0P0aS …C®B.7Hù9\q0m¤2¸Âò¸  -@@)#=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. jK*Ú?eý¨ÿüµ˜p¸†Á…ËÕS!+ R&Ac endstream endobj 107 0 obj <>stream xœ35P0P0bscs…C®B.7Hù9\q0m¤2¸Âò¸ LL@:RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]”Øöÿóõ0~t»u×Ûk·b—n›ö2wÝÑÒ­[·o¿7ÿå‹g_Ö{î÷Ü7ûÒ^µ/óÃñJHÿ?ÀÂàÀåê©ÈÈ.C endstream endobj 104 0 obj <>stream xœ35V0PaSCcs…C®B.7Hù9\q0m¤2¸Âò¸ L,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE3ÙRŒ„ÖÿŸ<áyýTÿ·þnµŽrÇéë$b$tX¸\=¹¹¢è@Ê endstream endobj 101 0 obj <>stream xœ31R0P0UÐ5R0Òf )†\…\`~. äpA$À4P8‡+ƒ+\!«PÁب(g¡`ªg”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmgAæ}þ‰ ÷ÿf_9 «¿ô¥{È®X§X]½­—þêV]_[·õoý××_ÿÿ¿þ²³˜¸\=¹¹NS@¨ endstream endobj 98 0 obj <>stream xœ31R0P0VÐ5T01T0¶PH1ä*äósP ‡ "¦Â9\\á y\… AfKc=HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôú¶°Qnæwh®Ê±5ûýwÿß½ë³ÿÿÓÌøDhàÂý‡¸Å5}ý²oÿ¡®ÿÿößzr5°õ»ïÒmân8F$Í:ؔŠÀÄåê©ÈÈ„ I¢ endstream endobj 95 0 obj <>stream xœ33U0P0QÐ5R03P0µTH1ä*äósP ‡ "¦Â9\\á y\… ¦f@­ f† &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚˜ 1KLBv8þpkbÛáиõçÖK¼¿|ªü—üŠ›üÒþ—ÿ¿éï×__ýÿÿGçÿÿ²rYšú?‘ò[¿ÿþþ÷ApûÛu÷·í.æÞpÈ¿MÊ¿G¨ÆóÃ!™Æ*.WO…@®@.¾qV¿ endstream endobj 92 0 obj <>stream xœ31S0P0VÐ5T01V0µPH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚¦– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œQ±Dzâÿ §æÉÿ‡€Oüÿ8ä[*æ/hæ?äØïùeþ_õ믯ÿ_g’|rµîÿ÷ÿ·ã¿]Ï-»Ø"w+È!Ÿ·eG’8æ#F.WO…@®@.hÉPf endstream endobj 89 0 obj <>stream xœ31R0P0bcsSS…C®B.7Hù9\q0m¤2¸Âò¸ Œ\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g*4>d_ÜÌÏ!ï¹oö¥|ïo¿UHÜÎÿÿ)k:ž­þ븭¯½½×êžØ´iÓ&DÅêMº´Vßûe‰mé¥þL \®ž \\“ÑC endstream endobj 86 0 obj <>stream xœ33R0P0bS Ss…C®B.7Hù9\q0m¤2¸Âò¸ LM\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OS¶Ó÷|]'Ôæžî»þÖ·ÿùÿ‘ð│øÛ4lÿ÷ïÿïßÿß÷ýòGឺé¸\=¹¹¿½_á endstream endobj 83 0 obj <>stream xœ36W0P0RÐ5T06Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… ÆF@­ Æ– Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-hKLd>dáøPáÞäªð%¿|ÿ/­ûõ¿êø?ˆÿ|Ãÿ=ô~×íµ×·l¸™càÍãt°©ƒ¡ËÕS!+ õl@å endstream endobj 80 0 obj <>stream xœ35R0P0b Ss…C®B.7Hù9\q0m¤2¸Âò¸ LL\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OM†~µÅ<»¹ÿ£‚C@ÿÿõÿûýúïí#¦üƒ¡ƒËÕS!+ èBß endstream endobj 76 0 obj <>stream xœ31Q0P0b e®bÈUÈâæI ?‡ "¦ €TW¸BW!H $¤Œõ t ô ,ÀÂT!9—ËÉ“KßÓW¡¤¨4•K?¨†KßL:8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb b;;.OµO4>doñËwdæ÷ü²>ì××ü¿úïwü³Y`´_mõÿíOÌbgﺣ'‘¨ÛÆ™ãt°µ™•A€‘ËÕS!+ e=H endstream endobj 73 0 obj <>stream xœ32W0P0b#SK…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm±…ŠÂ—ÿþÿÿgÛpèøÿÿJçµãÿŸ\\ÿ ü˜ë\Ç ÀÄåê©ÈÈ@‹ endstream endobj 70 0 obj <>stream xœ3±P0P0b#S…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ\”©ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…§4>do‘ëï±e‘¾Äûò>ïã¼ÿ·ÿOÙ#¡g«ÿ:nË®K—.Äffèêê²8êM÷^z)Šk˾éÎ×cK¯{Ù?`bPàrõTä äOÄB endstream endobj 66 0 obj <>stream xœ³0U0P0WÐ5T07W°4QH1ä*äós¹À9\æ(œÃ•Á®ÇU¨`n ‚–¦ æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œRÊÛÆçìhzMœCê¡é!«6æ% s¹Fæ—ìü—üÚï¿ä߯¿vëÿÿûøýß÷ûµßožÂ?¥qëÄ W7iñFjñìV]°˜}Ã7yþüÄ·÷î1ßÞöá‡ùƒð gÅOdv¦H󤈊>øQû¼1òÞÛ¿¿ëË¿Ç×ßÍ®½¶=lÛÔ¥¼Ú^mB s+6·r†H„Hhñˆ œºÆ ÀÄåê©ÈÈCl[ endstream endobj 52 0 obj <>stream xœ3¶P0P0VÐ5R06Q05PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­ ¦@­z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…çÛ›Ø|èç}¡p¯)Ù׺õáÿÿýÿ÷zëÒ[Ѽº[¶IE l?Ì¿G9ÃFå^ïKó%ò÷ý—ü“–›ÿû¥É¡¿½óo{ç¨nH˜&ÑÚ&&¡ÁÐÀÁåê©ÈÈ ùL> endstream endobj 49 0 obj <>stream xœ3¶P0P0bccS…C®B.7Hù9\q0 ¢2¸Âò¸ Œ,\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…<‡ñsØ(7ó;š_®ò}iß_ ööûŸ¦ž¹…_}]ú+633³t)\›«7)*nú‚éý±Iû˜¸\=¹¹ZÏ@[ endstream endobj 46 0 obj <>stream xœ36P0P0TÐ5T02U01SH1ä*äósP ‡ "¦Â9\\á y\… F& Í&æ †z @"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈÝþÿÿúû׿^'(Ð~r¥ÿ8"þm{ýwëmož0‰F.WO…@®@.š€> endstream endobj 43 0 obj <>stream xœ36Q0P0RÐ5T0"…C®B.0?Hr¸ `(œÃ•Á®ÇU¨`d Ôj `lª`¤’ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚÂó-Mì‹Ûä„x_ÆM®òÿ¾ô÷ëªö}5Òÿ'‡¾ÿÎý;»êm٥ɺmI01(p¹z*rr?Ã;- endstream endobj 39 0 obj <>stream xœ3±T0P0QÐ5R01Q03SH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚f &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôn¸ "PáøP²ë ‡yKs'“æ—&ñU_vÅMÿ79jëã¥ÿ—þ_ÿÅe~ ÿ!3ƒÇŽl_fTù¾4¿.]Zý=îþßø?³Öÿÿÿûýÿkÿ×—î™ûoÚÝܥۦ݊æQmSLlmap`árõTä äÜXV endstream endobj 36 0 obj <>stream xœ3±T0P0VÐ52T01W01UH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LL€º ÌÌŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\Á­ØÏ"Ç!á.ÝRqØaš€cW”¯­úÚœªÚüå×þƒÁ÷u׫ޖ¯Ý²ÛÛM ‘õB’Ø‚ƒÿöÿ}ûýTÃÑæßä¤U¸3´/qtù0!ù¥üËÿÿß:9¨é¶w®n›Ða… ›¸yœN$t04pp¹z*rråÿ]× endstream endobj 33 0 obj <>stream xœ35T0P0RÐ52P0±P01VH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LÌ€º ÌŒŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((1ýW[ÀÃt‹G÷õ­{»c_ÿ»^õ?Wÿwìë¿[ö¿-_ÿíÒÿ­÷ößö 'íÿ¶?ûö—ý_ö{¾¿lJüÒ_!›²&Ũl“ðæ “`dàrõTä ä$…P¼ endstream endobj 30 0 obj <>stream xœ3¶P0P0RÐ5T06R03TH1ä*äós¹À9\ÆZDgp…+äq*(€ ™‘‚‘ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ZËÿÿúÿoý×ë_¯s·„>~r%øaÿ8xX¦JïÖïz{=»íÒaÑ6.WO…@®@.A}IA endstream endobj 27 0 obj <>stream xœ35Q0P0bS…C®B.7Hù9\q0m¤2¸Âò¸ LÌ@@)c=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j‹ígè4>”Vø"çë7õÝäwSÿÖä~ýýÿßúÿàårá•“îÀÄ Àåê©ÈÈùÇJ endstream endobj 24 0 obj <>stream xœ35T0PaKc…C®B.7Hù9\q0m¤2¸Âò¸ L,€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O%î¾ §¸¤ó¹«Þ‰ÝßY™·wéö西îû]ûúôò¥UÛ—ü5_ZµormÜd Yuo{ëa?Ŷÿ  \®ž \\oŸE endstream endobj 21 0 obj <>stream xœ3±T0P0QÐ5R01Q03SH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚f &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô육ÏÂÏñ‘}As…gû’ûþKîM®]k·ýßöÿí¶ÿÿÿ_ö?¨­Žÿÿÿﺯÿ_ÿYÿïVôõìmÓnEä²n8‘$Æ#ÂàÀÂåê©ÈÈ€$Q³ endstream endobj 17 0 obj <>stream xœ35W0P0UÐ5T05U05VH1ä*äós¹À9\¦(œÃ•Á®ÇU¨`j ‚¦& ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-lv8ÕdÊ\áÞ&' pø‚ã^µ/ë=÷IWñûýÿÛÿÿÙ‡¹ÿÿÓ)ÉËlÄÝ–P¸óëCÖúœUqÓ—þ_ú²¾é¿èÿ¿õÿvO™µêï–y{µc·ì:œ¨vÇ )iÃQÓ ^l" ,\®ž \\жU endstream endobj 14 0 obj <>stream xœ33V0P0bS S#…C®B.7Hù9\q0m¤2¸Âò¸ LAŠ @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôóe°ðØ(7W±>ä{rå߇¯ïFÙ¿¾wßþ_ÿÿ¯ÿ|hæ°˜uT‘¹þC—«§B W öP. endstream endobj 11 0 obj <>stream xœ35T0P0VÐ5T01W05VH1ä*äósP ‡ "¦Â9\\á y\… &&@­ ¦& Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œsA¼É”½¥"ñ!‹ô¥Ä‡j_f_Ê÷¾ºooôëk¿¾ÖÝÿúÇ?Ë™ÿÿù†ÿþûGìþµ¯÷wEgo^w+:3wi›„cb‡Ž!7ƒ—«§B W $TJÎ endstream endobj 8 0 obj <>stream xœ35W0P0VÐ52U05Q05VH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ L º Ì-Œõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÈq‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ·p+¸´0è3o©hv˜Ü"¸ôRÒ´Éþž¯£ytÕŽÿÍ_þ?ú?|_ÿ;öõß-Û×nÙíí«+ÑÌ¡ÏãôBB×ýÿÿßÿ~¿OU0Láfßðáž@…{sò!g£YŽ{վ̹ãWýÿÿ“C.ýÏÕ»ž«»eÃ-îÄ– ‡9tŒ &sèU`bPàrõTä ä,zf‘ endstream endobj 607 0 obj <>stream xœ3±T0P04&Æ ¦& )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T06r @R††z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TË¥ïTÊ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÎ^›[°CuÂbƒ]Ÿ}süXÿõ×ÿx BȨօÁËÕS!+ Ë@} endstream endobj 604 0 obj <>stream xœ33S0P0UÐ5T03P0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@9KS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÎòã>!îß"Ça£$ÑïÐ\áh¾ä—£­ê%ΗUÞë—þ_úulU›øÖÇë¿®ÿÉUÏ’ÍSÐÜ˾øÐ^‰*νjw¬›ýnïþÕÿí?¹êÿÿÿ¿ÿÿû}ýÿû¸Ý¯}ݶ÷ÚËÜ¥.ÝH˜&ѺµMŒGŒg‚4 ƒ—«§B W ô¥`¯ endstream endobj 595 0 obj <>stream xœ31Q0P0VÐ54S01V06WH1ä*ä‚ärEr¸L4H<‡+ƒ+\!«PÁÄ@Mòz† 9 ™œËåäÉ¥ïé«PRTšÊ¥TÅ¥ïTÄ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(¨-x~hº†ÂuŽì/Ù®s¨ýŽUÿÕ~éï—ýÿ»þÁ?ßàÿÿë·Þ[þíz®Dì–=‡â$Z¶>IþùDzù.WO…@®@.vÂN« endstream endobj 592 0 obj <>stream xœ36U0P0bc#C…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠ⟲¦ùÛÿG€É Þ›YK¹\=¹¹Ë8M endstream endobj 583 0 obj <>stream xœ3¶P0P°TÐ5T0¶P06WH1ä*äósP ‡ "¦Â9\\á y\… F–@­ }–z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-8ø¹‰Ÿãã…Ù—ò¦{/½ôúev”÷C}]Ïà½,þù¼Íë}ðò ûõV÷Ò—m‡¢[Än(lSLljà`hàrõTä äåÒ?Å endstream endobj 580 0 obj <>stream xœ31R0P°TÐ5T01S0µPH1ä*äósP ‡ "¦Â9\\á y\… Ææ@­ ¦– –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸>stream xœ}‹= ÂP„År!s¸yOðBм|ˆT)ÄJ‹$5µ—ôÞC7¦w‹æ›»`HËÀšç–'ƒ¨U•T’Ÿö¼Â%´4ý:ärF;5}¦ÿX#ñ¿ããÖ!¥¶ -A’ÜÑ@Ò½Ax€dâ\¦6"Ù2ÐÄ]«®nî:‰cø”ï×óóç&#ޱö,Pà °@@ú endstream endobj 568 0 obj <>stream xœ37U0P0bsCSs…C®B.7Hù9\q0m¤2¸Âò¸ Ì,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O…¤ÿO®89¤ ±üGÇÿÿ™ &øÿŸÊŽ%<æÿ8¸\=¹¹ãNf endstream endobj 565 0 obj <>stream xœ33U0P0UÐ54S0µ¡C®B.ˆ@.ŠäpAdÀ4H<‡+ƒ+\!«PÁÔ¨Û@Á¨NÏ$$“s¹œ<¹ô=}JŠJS¹ôê¸ô=€Š¸ôœ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o v.}çüœÒܼb ;;.OµwæHd>(/"×ÄûE¢Ê÷¡šÜä*ß—æÿ&WÝ÷_ûå×ý_¾ÿÿmÿïÿ§ü?¨­Žÿ¶ÿ}üÛ¥ÿgæ9íQø»%áVt¦Ùô%ÿîFEW/Ý~+ºZ´íØÑ¥m‡8t$~U»^»îÒÿ¿î¯]»Æ`ƒ—«§B W úgdk endstream endobj 556 0 obj <>stream xœ31Q0P04PÐ5T01Q0µPH1ä*ä‚ä‚h PD LÅs¸2¸Âò¸ ŒAºj,Fèå€Dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶Ðç°Ð×ÿ:ý¯ÿú[¿HÔÜ¿ Pã|ñÂ}ß³__Ú÷ë×õû¯Ö¯ÿëúooøµ½™5³VÅÇ.ÝȺ1"aÃA.WO…@®@.tM! endstream endobj 547 0 obj <>stream xœ344P0P0bC3S…C®B.?Hù9\P ÃHgp…+äqu*€u›(˜ê*èèX…©Br.—“'—¾§¯BIQi*—~8H-—¾P)—¾S€³ãmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠAzìì¸<]Ôrfy8ÅOŠãšäÙ„= ‡ø9[>ô÷¶Ôä;š5åùz5å²Ü“U÷ü«íõo×_]ý—]ùý¿Öÿ_õÿ?Äþ©ì8!pB ÿÿÿL \®ž \\teM endstream endobj 361 0 obj <>stream xœ3¶P0P0VÐ5T06Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­@Í– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j =92²Ð¨rÜ«öeýýøýÿþI}xÝ6ípœbŽîƒß‡*ÜŸ/‘¾Ä!'ñòáß߃²VßÍ]ºá n×anEAF.WO…@®@. BÔ endstream endobj 309 0 obj <>stream xœ31Q0P0a3SC…C®B.7Hù9\q0m¤2¸Âò¸ ŒAŠ @RÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂñs¾¼Ö«'î¹n¿üÿÿ§˜»šz+þþ>O¾üÿVC—«§B W x¯A endstream endobj 306 0 obj <>stream xœ31Q0Pccc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÅŠmš¾ül(ßþáÞ凭ûÿ9Ö‰¸q·zñBß•ñë‡ëöÿßçwèAl§ÄÚ›U8®`hààrõTä ä¡_Cý endstream endobj 303 0 obj <>stream xœ5‹±‚PC÷~E¿€û.ò ¬ˆ‰o0‘‰Á8©‰`tö—Ý®WŒCÓô´- VÔ’«’¹ò¬˜±äÑÍÁ€_±¸ãWôœ03¯ýYeJYÍÓˆ&AÒŽ÷Ûãé}Ù2Bšýš iŠpDjù4{™Ùû¯oÆ&±C‡¯, endstream endobj 300 0 obj <>stream xœ37V0P0VÐ5T0³T05WH1ä*äósP ‡ "¦Â9\\á y\… ff@­ ¦ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(($Ìÿi*0—ýèÛúÿ8Á¯÷±ÿv_»õ7wÝ­èDÝ6¡Þ>stream xœ31Q0PÐ5&& Æf )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T01r @Rºz– ÂÀ,L’s¹œ<¹ô=}JŠJS¹ôÃj¹ô=€J¹ôœ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o C¸ôósJsóŠZìì¸<]ÔVœ9ÏQ¡vˆGᱯ¥©3÷Ñ'碸ϭú•ùkýªÿÿ­ÿ4 º$^m,O¹ªµ¾¼ƒ¡ËÕS!+ óM¶ endstream endobj 294 0 obj <>stream xœ31Q0PacKc3…C®B.7Hù9\q0m¤2¸Âò¸ ŒM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏ4>doùòÅÏ|As‡ùõ%÷ý×_ý.Ú¿òÁÙ¢¬ý÷žHßϼýÆt›ÐƒC»nææÑ‘Ð`hààrõTä äë3AB endstream endobj 291 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-@@)C=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÅ££f­s¿ÿž,Ðü¡ùÑï'Æ5ù îû~ý]kÿ¿$ó?öú¿éÙ·âö.=ÌY[|²"1—‹A‰ËÕS!+ ¿ËI§ endstream endobj 63 0 obj <>stream xœ342P0P0bCCKc…C®B.?Hù9\P ÃHgp…+äq*€Ô€$Íõ t ô ,ÀÂT!9—ËÉ“KßÓW¡¤¨4•K?¤–Kߨ”Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææƒôØÙqyº(¨-H8Ã#Ëìçæœ`qˆ½EN ÊDÄFÁá^£ù’;³Zì±ò}7¹zéßø%ÿ¦ÿýýÕÿøµkêÿÖÿ¿þÿ?„ÔDZÛþÿÿÁÐÀÁåê©ÈÈQ¡qò endstream endobj 538 0 obj <>stream xœ}‹=‚P„µÊ#Ìð± Æ‚PðøbL¤¢0Vjb(*wòÖÞÉDWèÝb'óó!} ½@(SÎ ú RÕ¤DßtúËKœP°FC™(ísRÆ£_!q0nÍûµ=º‚Yê&ÙX Lºø;˜ÌX›©ÝD‘YÑÓÆžË¶ªoŠÄ1\Ê×ãùùsïËp0ÂÂ1GŽ/ì«B endstream endobj 532 0 obj <>stream xœ36Q0P0SÐ5T06Q06WH1ä*äósP ‡ "¦Â9\\á y\… F@­ Æ fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-Øù¹‰ß÷!‹ô¥½¶a Kÿ_[[fûÉÁ›ýðíÛ÷yŸˆÛÉ×~~¾^¶þR@ìRµUÓnEó(lÓfãbP`ârõTä ä K< endstream endobj 529 0 obj <>stream xœ32U0P0WÐ5T02W05UH1ä*äós¹À9\F(œÃ•Á®ÇU¨`d ‚¦f æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-lØ0¿ôÚonùÿÿOlo‘ëñ÷ú²ÿËþXýÿ¯ö&¬þú:þuÜþ Âë¯×–þYú+þWôÒ‰, \®ž \\ÕIC« endstream endobj 525 0 obj <>stream xœ31P0P0WÐ5T0¶T0¶PH1ä*äósP ‡ "¦Â9\\á y\… ÆF Í@as=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô8Îtdo‘ëŸ|Á÷ÒKÖ¿áñߣ¶æÑ+áNÛøðûöíûxŸpð³Ÿ>ðÃ÷ëÿ¾ý/µ¼|âu›9t»s³ùñ1(0q¹z*rrê?b endstream endobj 522 0 obj <>stream xœ3±T0P°TÐ5T0±T0¶PH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚Æ– –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\pA§ék"{K†ãCéKù^_æ{½,ýzýzüÚÚúWVë¿ìÛ«·õ•o¨þÚ-{u7L;Ì¡cÈÍ£#¹ ƒA€‘ËÕS!+ üÆ>í endstream endobj 519 0 obj <>stream xœ31Q0P0WÐ5T01S0¶PH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ Ê\Ï($’s¹œ<¹ô=}JŠJS¹ôò\ú`Ò)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+*¶³ãòtQP[$Çzv‡ã‚/RU–¦—./Ù¿oúß—*ÿëÖYeíóuù[õ·n×õøÓöÇ/ý„_w}›ö2wéÆˆÄ„C  \®ž \\YFw endstream endobj 516 0 obj <>stream xœ35V0P0bS ²PH1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄB$”2Ò3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶àÎ~…g*\ãî5q¾ÔÛ·òËõÿ¿ã®÷ÿÿ?aªKýÉ•ÂMÿ±³f²Iÿ?ÀÂàÀåê©ÈÈ‹ÒQi endstream endobj 472 0 obj <>stream xœ342U0P0bC# #…C®B.?Hù9\P ÃHgp…+äq*š)€D€’&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥RË¥ïTÊ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠAzìì¸<]ÔÖ]]ÿäŠà"á?2ýÿw+þÿÿß™õÿ·M‡Q`±·K1¤`b@ê?åØ¤Þ„ÿ[ÿÿßu ùÃqë‘&Í¿ë¿m`dàrõTä ä„‹• endstream endobj 334 0 obj <>stream xœ31P0P0TÐ54T06W02SH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒÍ@úâ†z`=@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ñJýÿä »×¾Þzowìë­·×Çîº[½öz×ýµ¿€èÏùÇ5±ÙK—ª­tnÙÑu#"Ñ…ÁËÕS!+ ÛõBÌ endstream endobj 331 0 obj <>stream xœ32V0P0aK…C®B.7Hù9\q0 ¢2¸Âò¸ ŒÌ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏú8lÔ[2­âvÅÿ޳ÿÿѪÿäÊ™ÍÿaàϪÿ˜¸\=¹¹…°;D endstream endobj 328 0 obj <>stream xœ3¶P0P0bcSc …C®B.7Hù9\q0m¤2¸Âò¸ Œ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµw†Ç–^­ÜzéË^ýxo¹DÖê{w=ræý”%yæôÿÿÿœ§ÿap`árõTä äIN= endstream endobj 325 0 obj <>stream xœ3¶P0P0QÐ5T06S0¶TH1ä*äósP ‡ "¦Â9\\á y\… ÆF@­@Í@¤g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚÎ §?á1ÿ7=¶ôº÷z/M]]MSÖkÓ_f_Û¿þßôûÿÿÿ¿u+ƒ#—«§B W s®8 endstream endobj 322 0 obj <>stream xœ35S0P0QÐ5T05T01TH1ä*äósP ‡ "¦uAtW¸BW¡‚‰9P+P³‘‚‰H H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 8|ñ3oá¨â0_rorÕ½Éõ/Íÿm¿ü_öÿÿÿŸ²¶Þú¿·~Ûôß™¹K÷æL»ÍÆ™ØaÉ$È ÀÈåê©ÈÈ?A¶ endstream endobj 319 0 obj <>stream xœ3¶P0P0bcS#3…C®B.7Hù9\q0m¤2¸Âò¸ Œ\”‘ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ½˜2âwK®â0_Ð\uorýÙÿÿŸ\ÍÞzowì–mÞ>stream xœ36W0P0bc3#3…C®B.7Hù9\q0m¤2¸Âò¸ ŒM€\”‘ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j‹&1>h|a+ÙcŸÿö}ùOij‚޽L%â¢×ÿg¯™µàÐßEù<êÍ,˜¸\=¹¹N@6~ endstream endobj 313 0 obj <>stream xœ36Q0P0bcC#3…C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‘ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ¹X›øJI_p¸7ùkÕþ0û~cÞy¾ÁOè—ýÎNlŠmÛ°€‰AËÕS!+ =¼2Å endstream endobj 288 0 obj <>stream xœUK½ ‚PnhúÞ!8S[]/j9ˆ„פK: E4T¡†–oÒÔÖ¸ôj.AÐA—‚Ã÷,‹ ²i4%Ó!Û¡ƒDÖgL¤èŠ–9NqBB9 2M~5h³±äŠaŸÁ×zE·²:B$<‚XðÂIˆ`#al!B¡TÈ6r]±¤7ê’VY~åσhø|¼>U½nÞ Cw?²ÞýËAy¾÷f}Ì5ňñASCB endstream endobj 285 0 obj <>stream xœ31Q0P0bcs3…C®B.7Hù9\q0m¤2¸Âò¸ ŒM\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…¾m]õÿÿÿÿéX¯¶2EÄŸìûýÿÿÿ¶Ý»M>stream xœ3µT0P0bS33K…C®B.7Hù9\q0m¤2¸Âò¸ LAŠ @RÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔI±ÍøÿäÊîÿ00áP=d«Q÷¾7}éC}Ǫ¸é-{õ½/ý0_üþçe?Â/×Úoÿþö÷ïúºûûAŒ#×\òÿ?`bPàrõTä 䫯UI endstream endobj 279 0 obj <>stream xœ33R0P0bSKS…C®B.7Hù9\q0m¤2¸Âò¸ LM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE’íê¬Ç8l¾È ~ªbù”2ûÞ~ïG³_ÿ_ÿÿ× ð(xf˜ôÿ \®ž \\ˆcHó endstream endobj 276 0 obj <>stream xœ37W0P0bs3 …C®B.7Hù9\q0m¤2¸Âò¸ Ì@úÀRÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ç¬jc<Ü®¶Ð#qáó‡ûóoûÿûûÿ÷ÿAàú¿éÿãöM_úPŸeG롇E<)·ÿ#¡Rû°08p¹z*rr'QÍ endstream endobj 273 0 obj <>stream xœ37V0P0WÐ5T03U°0VH1ä*äósP ‡ "¦Â9\\á y\… ¦@­ & æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\°ÀD¢ˆ»#F »Eê!Û.ÖºF…×K$¾Ôª_â¿äÿ«¿öÿ>þßû?ÿûýdµ•~Ø…0ÇNiœ=qƒ~J€I„âÛ7¶{÷˜·}ø‘¯¸Á_!_á‚¿â~Å5Æüí÷ó¾[ðîþ_þõ¿ë«ßj¿ÕÈŒ:¸ÔØáPˆä«Ã+ €P"ÄqG#ƒ—«§B W .óc² endstream endobj 270 0 obj <>stream xœ33S0P0UÐ5T03P0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@9KS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ônh“V‘Ðobo‘ë<ÂÏ!ïÐ\¾ä>ÿ…Üï¯kÿÁÛúè¸K†ÙMYºté‚ Ó8tš™,ô¼›%lš* ¾ÉÝ»_]ûöõÿú“ñvµöþ¯¿¾~rÈꥯ¶ E{o¸tÃDìDbØÑÄÖfÖfnÅù \®ž \\D[L endstream endobj 267 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-š%¡£ðÞùÐëÅNšÚÚ_ß;âäªÚ7sÄ7IT›r'>ÜÓzY±%Åøß½ßu!û¿í]šÍ&Ô'ê{Ê7DBƒ¡ƒËÕS!+ ÕÓA endstream endobj 264 0 obj <>stream xœ36U0P0bc#C…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠ‡ÞÖÿ_~ò³MøºëUoËÄã[×ßú÷õ}Ü—ÂÚ½ú·/ýÝ[7ûú˽5 ¹÷Ÿ\Ê ÀÈåê©ÈÈô†D„ endstream endobj 261 0 obj <>stream xœ36U0P0bcc#K…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. &"æþÿ3kNûùÿpýú†=~{ÿ¹· 7p04p¹z*rrm‘:( endstream endobj 258 0 obj <>stream xœ%Œ1‚@Eµý•Gø•.‹°¡`¸1&PQ+5± *‡Ò›x*`Šy™ÿffѧé>CËF9hGJÔ`V½‘7ÔìÐÓȱÏ(-JÚ¹Eê Ü¯Çp…ªi v²•––*;jø'¨BY[ÈXƱÚÓcïÍÐvOš$˸~ç¿©¾Ÿr¹X!w¬Pá*è endstream endobj 255 0 obj <>stream xœ36U0P0TÐ54U06R0²TH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ º LL õÀz€dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³ãmÈeË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(˜(?2h>ħ÷äÊɳš¿Ü÷ÿïûÿÿÿ_ï_zÿõ­ž„wÿºBÖ· {êÿÿÿÿOåÁþ \®ž \\[C\ endstream endobj 252 0 obj <>stream xœ36U0P0bccC…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶`çÂüÿŸ¤ÿÿÿ¯äˆÿò‡öõÆvMüKþÚôÿúÿÿ­?³–ÿú¶;ûplçó=Æ‹nÄÌap`árõTä ävÕB? endstream endobj 249 0 obj <>stream xœ36U0P0bccC…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇåé¢`ÂÊÿÓÔþÿÿÿ“ÿsØs~¬?yöÃüå¯ÿÿÛÿ ~LÞ$‘ÿŽA‰ËÕS!+ {ž> endstream endobj 246 0 obj <>stream xœ36U0P0a#K…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”±ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pVr\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú’~[öå÷íÌî]~ü¾Â^#Õ=ñ¥Æš5Nÿöæo"¡/¼j{EŠ5@ƒ—«§B W ðL4à endstream endobj 243 0 obj <>stream xœ36U0P0RÐ54S06V06PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ º LÌŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÈq‰6ä2ˆåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ô,s*p|È&ÜbuQ`KÚõƒ-³åÕÿÿ¿õ®žDlץ׳++¾?åߨØÙ|ùB• ß/ö®ü—ÿßæ¦\ezp°L›GwÁ†„L \®ž \\<HQ endstream endobj 731 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨->stream xœ36U0P0bcC#K…C®B.7Hù9\q0m¤2¸Âò¸ Ab – Fz† º@"9—ËÉ“KßÓW¡¤¨4•K?(Ë¥ï&œ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚Ú®ËÿŸ3^_ú2Wµ+ŠÛ 8>.™«7Ý[ðSÖ.WO…@®@.i80à endstream endobj 725 0 obj <>stream xœ3µP0P0bS#Sc…C®B.7Hù9\q0m¤2¸Âò¸ L@ú @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔvýÿW£ǵÃûRl¸÷ËLÕÿK_–Æí›~}ýÒÞì¥×vEÅf/q–\·W?6ljéë—UÞÿ&½¬Õ[½d/ËVÅÞ$ûL \®ž \\UÅDÞ endstream endobj 510 0 obj <>stream xœ37R0P0VÐ5T07T05WH1ä*äósP ‡ "¦Â9\\á y\… f@­ ¦ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº((=¸àÍpÀ¢(KQÁ@¾¹îþö·ÿßþÿþâÅÇM_úPŸE\`‡ÞO{ûüÛßÿ¿ ”û Ä„þÚ×׿¾½bÒƒ©72s¤&s1(0q¹z*rr[ÖQF endstream endobj 507 0 obj <>stream xœ35Q0P0WÐ5T05S0¶PH1ä*äósP ‡ "¦Â9\\á y\… &–@­ Æ– æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¶‘0fi‘P¨âQøyäâã*?µ/‹æ¿þ²ÞkÿúVQQ¯'Ú¯Ûzý?¿þºþÒôyûVG­Ûÿÿ¥nýZýKß½—i/Ûp!Ñ…ÁËÕS!+ ÄÊJ; endstream endobj 504 0 obj <>stream xœ32U0P°PÐ5T0²T0µPH1ä*äósP ‡ "¦Â9\\á y\… F†@­ ¦– z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j fêÖ›¿þë¯ÿñX×ç]­Û[3kUôŸ0©Ã\ L\®ž \\ƒÔBÒ endstream endobj 500 0 obj <>stream xœ³0S0P0bsK3 …C®B.7Hù9\q0m¤2¸Âò¸ ÌM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OÅÄi¡ŽO®(ò˜°?á~ýàð‡ûÛßþ®ûwû¼ÿïýÿÿ` ¯Aøúÿõñ@è}ýõ¥Ó—>ÔgÙ#(ÊÅÅåtX‡Á…ËÕS!+ hÒW% endstream endobj 497 0 obj <>stream xœ3´0T0P0bCsSKc…C®B.?Hù9\P ÃHgp…+äq*šYù Is=C]=K °0UHÎåròäÒ÷ôU()*MåÒ©åÒ÷*åÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ =vv\ž. j Îu$¬sæõd{p"›¹GÀÀáC3‡Â!~—G[ü´³ó(|Èe‘¾à»`öä€)[öXqn®^š÷ÒÊÿkiÝä%ÿvý™Yÿ$pýµìßðãÿÿ†ÿÿµþÿ0ƒt ¤&ÓÚ®˜¸È|ÀÄ Àåê©ÈÈû®’% endstream endobj 494 0 obj <>stream xœ³4T0P0b SCC…C®B.?— "ÃeÄ0R\á y\…  ’3Õ3TÐ5Ð3° ªä\.'O.}O_…’¢ÒT.ýp Z.}R.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔcgÇå颠¶`Cøú×ëöá®@øú×ë_6»~ÅÇ훾ôëë—µU¿â¦__bVÄ€LX|ÜôõiˆØ×—U`-×—¾>Z¨ä¸ÿä m‘ûÿÃÁ‰4­ÿÿ¹\=¹¹,ón¡ endstream endobj 469 0 obj <>stream xœ33P0P0bSCc…C®B.?H‚r¸ 2`†Êà WÈã*T0)3Ë™ë*èè™Br.—“'—¾§¯BIQi*—~8P)—¾H%—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQP[pFÎ5\þÿÉ~ü¿ÿSþxLÈÿÁÐÀÁåê©ÈÈÇøj\ endstream endobj 466 0 obj <>stream xœ³4T0P°b CCCc…C®B.?H‚r¸ 2`†Êà WÈã*T07r Àr–z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TË¥ïRÊ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠzìì¸<]ÔN+a›ÉÊhàð¡ñ!{‹œ ‚F ï …Ã÷¨ÜçÜ«öeö¥ú|¯_µÑOW_Èýðïî¿ÿÿ™µôßõÌÄÖÃ\ÿÇí_[u}mÕ¥×q[¶ìºtéµ··céÒ¥K€x¢@ÀEÊjº÷¡—ªK_VÅM_úRoúÒZ/Kö*ÄòÇ–^÷Ž¿[Ú¿þƒ—«§B W rn˜ endstream endobj 240 0 obj <>stream xœ36U0P0bc#C…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠ ®RùO®šmH»"¡ÿÿýÿ¿ÿÿý¿ÿÿýßÿÿÿÝÿÿÿíÿ0îßÿ ÙƒÌ}ºÿ+M½01(p¹z*rrý M endstream endobj 237 0 obj <>stream xœ%‹± Â@ƒ÷‘‹LK| ãˆ‰féêèYJÕbÇë€:@‰ËüºCº´é!õyO…4½Â]¾ã'ÆoVò8¶hñ´ç'’ endstream endobj 233 0 obj <>stream xœ32V0P0bC3c3…C®B.7Hù9\q0m¤2¸Âò¸ ,<Œ¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦ré‡+Xré{ré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼbK;;.Oµ : þÌZÚ&fÿÿÿÿ‡øôO®ŠHt`apàrõTä ä”/A endstream endobj 454 0 obj <>stream xœ33S0P0b3CsK…C®B.7Hù9\q0m¤2¸Âò¸ LÍ\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ7*tëcKÿ–^ÿz=þzlåÑK_¿ìÛ«ïý/ãÑŽ©Œû'dY±þ‡€ çôÿ?`bPàrõTä äHmU÷ endstream endobj 445 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ä9äÄÏùÂÖVròÿ%÷ý¥KÿÚ×ÿ”5ëëýÄÖ÷Îf'êìä³MÚ¿t¶­ÉÞZ}ïC£¹³yt[¹\=¹¹]û= endstream endobj 442 0 obj <>stream xœ3µT0P0RÐ52P05S01QH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LM€º ÌLŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h1þÿçëæÁÊÎ^õþ®ÞÿØ×[ïí†û¯çí-_w½ê-ˆx|ëÿ­¿ëÁ¨êúš»J—m,]õ2((k¡ž€wÒ¶ ‡s1(0q¹z*rrÑQM endstream endobj 439 0 obj <>stream xœ31Q0P°bcsS#…C®B.7Hù9\q0m¤2¸Âò¸ Œ,€\”¥ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµmÌ—ÿÖÇ–^çžRTºÎ7@_þ?*øÔyôÉU †.WO…@®@.Ë? endstream endobj 436 0 obj <>stream xœ36U0P0RÐ5S02T01SH1ä*äósP ‡ "¦uAtW¸BW¡‚¡%P«‚©‘‚‘H H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ•®O®¦ÈÛÿG–<>¹*€‘A€ËÕS!+ eä7± endstream endobj 433 0 obj <>stream xœ36U0P0bccC…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶bA¨Øü'WÕ6$46ý‡‚ÿÿÿ>stream xœ31Q0P0SÐ52U06V07UH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒÌº  €fè‚$dr.—“'—¾§¯BIQi*—~8P—¾H—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQ0ã’™µàü¾}ûþÞ}ßßçûŸÿû>þýýÿïþÿÿßßÿë€Lïÿ¿®ÿú[„ú—þêm}í½¶dË®K@ÐÊ ÀÈåê©ÈÈ.©Z} endstream endobj 427 0 obj <>stream xœ35S0P0UÐ5T05P03UH1ä*äósP ‡ "¦Â9\\á y\… &¦@­@93S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô–%HqÏãiê{Ê0Ïn×ëu;bôvèqÏáµÿO‚(G¨sØsØ©%ó7ñ~˜ýÐüê—ßáýÛÿßÿWÐüòñý«¯ù­ÛÇ©ûïÒÌ“m>stream xœ36U0P0bcc#K…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j+„ŠÍrUmÃ9¦‡ùñÿÿÿý=ùÈ^ûÿÿ/Ÿõþÿÿëñÿ_þý·ãñÿåÿ3W04pp¹z*rrû|A¦ endstream endobj 418 0 obj <>stream xœ36U0P0bc#C…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚJ×ÏMsäÿÿ?¹*:âñ$0±ôòÿ[  \®ž \\Ƽ;a endstream endobj 415 0 obj <>stream xœ36U0P04R0´P02Q01TH1ä*ä‚ä‚h PD LÅs¸2¸Âò¸ A €ÐÈÈÒ3T04׳THÎåròäÒ÷ôU()*MåÒÊqé{qé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÇýý÷ýßû¤òõ×u»¢^º†hšz1(0q¹z*rr.ž endstream endobj 224 0 obj <>stream xœ33R0P0RÐ5R0µT05WH1ä*äósP ‡ "¦Â9\\á y\… A  饀Dr.—“'—¾§¯BIQi*—~8P—¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP8lÿ)Ë•qwfÓ·íÙ[ïíWÿwìëý%PÆß-¸]ÿoý¿õwý†.WO…@®@.Q;Q› endstream endobj 221 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-@@)#=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm¥ë“«);ÚúþÁÖÇÿÿ?±ýUÿÿ¿üÿÿ6âÿÿÿ޳‰ÿÿéùx×äІ.WO…@®@.GvCy endstream endobj 218 0 obj <>stream xœ31Q0P0RÐ5´T01R06WH1ä*ä‚ärEr¸L4H<‡+ƒ+\!«PÁÄ@MÍŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[p[a2çC6áCâÜ®ñgNè5ñ]›œ[òxí—ÿ@ðm÷õìmÓsfÔfèsæ>þï>'ö UüŽ/_œ‘¨â~aï/{ùÿß5³–MçÑ;Ì™#¡º1"17á`ÂA.WO…@®@.;Oü endstream endobj 213 0 obj <>stream xœ35P0P0RÐ54S01W06WH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LL@úMŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPbúÿäJçaËÃ_o½]!îïŠÿ¶ûzöÞ2Qø¶þmÝu úúëëüé~‹®¯-Ù²äªÊ¥vÎ׃L \®ž \\‚.LŒ endstream endobj 210 0 obj <>stream xœ3¶P0P0acs…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm!ç ©‰í‹ZqØMþòñ÷ýÚž<‚'W±|ûÆvôÁO<™Šž¶{¿ûkvi6›PGð„€Æ¦†.WO…@®@.µ¹A5 endstream endobj 207 0 obj <>stream xœ35V0PaSCS …C®B.7Hù9\q0m¤2¸Âò¸ L,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE3›þO~ÿžxU(Ô Ôõ ®›~Ô>üúÿø¿õÿQÀGS#óÿ  \®ž \\ïgJâ endstream endobj 204 0 obj <>stream xœ35V0P0b3s…C®B.7— ÌÏá2AÐ *ƒ+\!«PÁÄ@Rfz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô´T()¨ز·dˆ¾Èw4_ûážÞýÿf-Ù¶šG_d ˆGq{¯ÕÛ²ë¯Þþ_ÿàOýÿú3_¾ü7ÿÿ¿ëos[¹\=¹¹Ö£J/ endstream endobj 201 0 obj <>stream xœ36R0P0b# s…C®B.7Hù9\q0 ¢2¸Âò¸ Œ@Š @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÉprØÚÚ_þÿÿÖßµk 6þÿÿIÕhõÿÿ'÷ÿG|÷7p04p¹z*rr¾ZE endstream endobj 198 0 obj <>stream xœ33R0P0bSK3K…C®B.7Hù9\q0m¤2¸Âò¸ LM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµERl+þ?¹²û?üäªg‘o‘_ðGùÉ_¦zÏýë»~å¯ÿ·ÿÿëÿ Ó/5"ÿÿ&.WO…@®@.S9T' endstream endobj 195 0 obj <>stream xœ36T0P°b#cCS…C®B.7Hù9\q0m¤2¸Âò¸ Ab@¤,ô t €Dr.—“'—¾§¯BIQi*—~8P–KßL:8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb b;;.OµeÙ—/ÿiêÍ£ÁÐÀÁåê©ÈȾì'Î endstream endobj 191 0 obj <>stream xœ37V0P0QÐ5T0³T°0VH1ä*äósP ‡ "¦Â9\\á y\… f¦@­ & &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-X Ó¶°þÿŸ¶k;êÿÃÁ s÷ éMü‡øYuÉ/p8¾ ù¥Ýd zõ·êoÕÿ×_ÿÿ¨þ3kýÿ¿¿ÿÿß×Ûõën½]w‹?±¥VèჃ¬‡Es·qO¸ÑéàÀÈ Àåê©ÈÈ@1eã endstream endobj 135 0 obj <>stream xœ31Q0P0RÐ54W01T06SH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ-º LŒôÀr@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQ0íü3k³ÃÝebosÿÇþ^úïVü÷wÓgÖßzÿvéÿì½õÛ¦ÿ©Žßúëߺ½uÓŸ&½¶73èä*NÝ-Û´X¸\=¹¹?(J> endstream endobj 132 0 obj <>stream xœ33P0P0RÐ5T05W06SH1ä*äósP ‡ "¦Â9\\á y\… ¦¦ ÍÆæ Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(˜º-üÿ)ë ÀfÝeÍÜ¿îÞú{ËþÿßÞê»^ÿÿíÚ¥_õË®½~ùïwìõõË¿-÷|ýÿö[}Ïÿÿ“»^þ¿·«þûºùU  \®ž \\”ùQ¬ endstream endobj 719 0 obj <>stream xœ3³T0P0VÐ52Q03U05VH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ÌŒ€º ÌÍŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h2ÖÿŸ8—YãÂ:‰Øu_o½ý·»ôõÞ²Ý׳÷–ÿz{]èãÛºë@ôDüúº>êÙ¯Ë_®ém}í«iê©7éeYwÒ¶ ‡³20r¹z*rr´.[Û endstream endobj 707 0 obj <>stream xœ3¶P0P°TÐ5T0¶P06WH1ä*äósP ‡ "¦Â9\\á y\… F–@­ }–z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-8ø¹‰Ÿãã^éCáž/™.Eýz}i½¬þõõ?^ÿú#ônÉÕ ·º—>L»á˜ÛÄÍãt˜•A€‘ËÕS!+ ä<è endstream endobj 701 0 obj <>stream xœ35S0P0QÐ5T05T03UH1ä*äósP ‡ "¦Â9\\á y\… &æ@­ ff &z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ptdágáç°á}¡p¯‰÷¥ùÚ/¿îû¯ý¿öÿå×õÿÿÿ?"€àŸoØþÿÿ¿]úÿ÷õß×[ïíŽÝ²íÒmïÄ–mÚ<:›X”˜¸\=¹¹wìO' endstream endobj 698 0 obj <>stream xœ33S0P0UÐ5T03P0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@9KS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÜY }BÀ˜…ŸÃVˆíC-‹ô¥|Ï}ó£/åÿUûíÿÿèÿËøÿÿÖÿ¡àäªë@ò÷õl þÿ>vÝ×·¢¯go›v+šGµMÂ1'L" ’íEC—«§B W „±Y­ endstream endobj 689 0 obj <>stream xœ33S0P04æF ¦f )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T05r @R†¦z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TË¥ïTÊ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔGÕG©pyÔ¨ûò·~ýÒ롯ÿí_[[¿êø•YKýû¬þǯÿú •˜¢-ÀÈ Àåê©ÈÈØ}FM endstream endobj 686 0 obj <>stream xœ37V0P0acSs…C®B.7Hù9\q0m¤2¸Âò¸ ÌÌ€\”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµO" ]ÖèÉó+nhâ\Þ\'}ußüÛÿÃ~ýû~ýÿÕÒÿ_¿~ý›½þ:¿Ž_²ÿ×Õªõñkƒ^êÿÕ z¡ú²Â1Kè…@ ÀBG i  \®ž \\öOV endstream endobj 683 0 obj <>stream xœ3³T0P04QÐ5R07S0µTH1ä*ä‚ä‚h PD LÅs¸2¸Âò¸ ÌŒ€º Ì Fèå€Dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³r‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ®ùq?1nÙà¸N »¥Dp ‚6‡úÿ%?Ã&¿¬ò_[ú²ê¯éÒWû_†ÿrþ¿ôÿúø×ÿ \9[õ·jrhÜëë%»½«Þên˜v+:3·e[‰€Ž!7ŽÁ&%&.WO…@®@.>pP endstream endobj 680 0 obj <>stream xœ3±T0P04PÐ5R05T05UH1ä*ä‚ä‚h PD LÅs¸2¸Âò¸ L ºjÌFèä€Dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³ãmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÄ\ˆPøàøâÇáCœ_„«ÂïÇÇÖm]÷?îµãúÒ[Ѽz—‰Gs·oßþÃ?Fùó%þ%¿¿Öª¿°[ý½lø¯øk»Â¦ÌZ»tÃAÝŽhn †.WO…@®@.É@MC endstream endobj 674 0 obj <>stream xœ3±T0P04RÐ5R0"S…C®B.ˆ@.ˆ åp™"h xWW¸BW¡‚‰ššÐ3ʉä\.'O.}O_…’¢ÒT.ýp *.} ".}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶pJZ€ãƒæC&ê æsê5q^ŠŠ ºôeÿZµ­‰/³ÿf%ÿp|©~ä ÝìKûæ/ùéÿë¯ý뿾Ú}Õï_KÖOõ~«wˆ;i›˜D„A#ƒ—«§B W ΗN endstream endobj 671 0 obj <>stream xœ3±T0P°TÐ5R05V05UH1ä*äósP ‡ "¦Â9\\á y\… &&@­ ¦æ –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÄÌQ°QøÐsò!‹ô¥|Ï/ë½__¿öõúõøµµ¥ëÅÖÿ¿äý†ÿíŠÿ·8nߤɡÿöêÿÕ½ô„Ú"’¶q³q1(0q¹z*rrÂfM” endstream endobj 668 0 obj <>stream xœ33U0P0a Ss…C®B.7Hù9\q0m¤2¸Âò¸ ÌŒ€\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµO"t™~ø$Í¡Ðø#?üÛ¯ÿ×þ¯ÿú+¶þuÜÞð_K¿^Š›¶PŸeGë¡ zμ¶uû¯¿þ %®x4dÿap`árõTä ä"-J endstream endobj 665 0 obj <>stream xœ33S0P0UÐ5T03P0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@9KS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôn˜ÀûDB°EN Â¥Ñù‡ô¥|Ͻj_Ö‡ýúšÿÞû÷ÿÛýÿßÿÿÿûß’«õÿ¿ÇßþuÛ^éèú\=iÎ2 ï1¦{$ôå]ÿ¯ô5ó‡ãõusë_Ö¿¬-Ù½ô÷’m“Þ¨nHhºÑÚ¶›G§™£ƒ¡ËÕS!+ ¹!^¡ endstream endobj 659 0 obj <>stream xœ36P0PÐ5"scSK…C®B.¨H.ˆËá‚ÈiDWW¸BW¡‚±©Ès3]=K¤ž¡Br.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶p–˜@é×ÿÑÑÜòÿÿŸÈx#PÅÏñåË|¯__¦Ç¯_zýÕÆ¯ÿöÇ¿F&6½?”½<ðW¼gfPÀ„ ¬Ö1 †.WO…@®@.E‰NK endstream endobj 656 0 obj <>stream xœ31R0P0SÐ52T06U03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ,º ,ŒÌô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(Øpq¶45øpøpuíû{ÿ‘Àß÷÷îÝ“>lpGµ¥b¡®®ÞÖ×ÈÒq[_{s&² ,ot`hààrõTä äYwPè endstream endobj 653 0 obj <>stream xœ31R0P0SÐ52T06U03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ,º ,ŒÌô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-XÌÚR{ˆuéÒ¥¿¾þGë£^f&²N©hš¯ú#ñíÛ÷÷¥ÿ¾ÿ]]]‘ðá,s…C—«§B W ¦ÕS endstream endobj 412 0 obj <>stream xœ31Q0P0VÐ5T01P05RH1ä*äósP ‡ "¦Â9\\á y\… Ææ@­@9cc=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔìœÑÍÂkÅ›h×îÖº ù¿£}Uܼé÷¦ÿú•}üñúÿÿwšÆÿ;!¾÷òßýß®—nÛÍ£w+šGèÆÚ5¦6$,`bPàrõTä änIDi endstream endobj 409 0 obj <>stream xœ36Q0P0b#s…C®B.7Hù9\q0 ¢2¸Âò¸ Œ-\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ1–˜d7Uø» âz©·ëËþo[öóèóèËÿ‚“ÚŸ\±”qñ4ðTøÿÿ†.WO…@®@.ÒL endstream endobj 406 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-x~œEnžðå‹ ¿p–ìÕ_¶KVÿE‡ý´ŠC|zïü´[¤ïíÊ¿ÿ)kÿ·ýÛ¿ìŽÝ²M»ëÖáhn †.WO…@®@.½ö@ endstream endobj 400 0 obj <>stream xœ35V0P0RÐ54S0±T06WH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ L̺ LŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[4³gŽLBãCvá<_OóCù«¿ýÿöÿÿíÿ`°>þßÞºÝq¯·ìæ,¸3_`Áƒ8{°”p€Ä.WO…@®@.éºHÿ endstream endobj 397 0 obj <>stream xœ31S0P0bcSK…C®B.7Hù9\q0m¤2¸Âò¸ LŒ€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ… æØ¤º >dozȲ+nú¿éï—ü‡ò'Wœg–ÿü5ù4y²ÿÿ†.WO…@®@.ggRÛ endstream endobj 392 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ôgm‘¨ªªùýBáÞäZ»í—ÿ/¹ÿÿËÇûÿÿÿrÕdÿÿ­÷ö¿-»ô?W·Mèñ­[‡¹y48¸\=¹¹è£B| endstream endobj 389 0 obj <>stream xœ36U0Pa#KJ1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÈÈë2Õ3TÐ5ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm±ú¡ƒÜ×¹?Úé _þ»5YmÅÛ¹î<¶í™O$Uä…Xl¯“ U[q˜•A€‘ËÕS!+ s 3ð endstream endobj 386 0 obj <>stream xœ36U0P04RеT02V0²TH1ä*ä‚ä‚h PD Lë‚è ®p…<®BCC nc  z†@9 ‘œËåäÉ¥ïé«PRTšÊ¥TÅ¥ïTÄ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ º¶öÿÿ®]Sÿÿ¿YæËïÿ÷>ü«[0%4dÖ‚L \®ž \\žÝ3â endstream endobj 383 0 obj <>stream xœ36U0PÐ5Ʀ F– )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T06r @Rºz`ÂP!9—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷:Kß9?§47¯¨ÅÎŽËÓEAmÅg ã¦nƒæn?KS¶Ú™ûCïýÿ5þ?øÇ!ápˆ]¼üÿäU ˜¸\=¹¹z†@ endstream endobj 380 0 obj <>stream xœ36U0P0bc#C…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB®„•ËÿÿÿÿoõÕú{f-øPç?h‰ó :™¨ó?ôÕ~ ÷Vƒ—«§B W \ A÷ endstream endobj 377 0 obj <>stream xœ³4Q0PaKCS…C®B.7Hù9\q0m¤2¸Âò¸ ,Ì\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE’íê¼-dfáç0h¾ìÏñã†û±/ÂjO®¬ÐvŒûòåß´éG }ÿý$þc¼Š´N¬æ2X¸\=¹¹ÎY­ endstream endobj 374 0 obj <>stream xœ3±P0P0QÐ5T01V05QH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ ¦¦ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\pA¥é×Cö– ó|Gó%Ü«ª¼—¾þúúÿê¸kþÿ©g Id_ð%'OsWÞú¼}ÿ_ýrµþÿÿý¯ÿî]únûÚ-Û$¼“6:ÌÍÆÅ ÀÄåê©ÈÈ=N endstream endobj 371 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶¢MÔuùOSÏ5ó›mjË×]¯ß²ý÷Úë»îV¯ýïÿõöúïëc»þm]ÿN¨ÍªÿÀÈ Àåê©ÈÈ,ÖF? endstream endobj 368 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-@@)C=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÅdþv'Wíä¼;lþ˜¿ýýÿí xYÿúeUgaléᇟ¶?ÜŸÿöÿ÷û2ë×Ç{úá­á¿b¥©cA#ƒ—«§B W -ÈJ} endstream endobj 359 0 obj <>stream xœ31Q0P0RÐ5´P01T06SH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ-º LMŒôÀr@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ñÊT¼t§©×¦ÇžÛ«×þ{]¿õÞþ·åë¿]ýwÿ¥ÿù_¶ÿþ·Íþuý­¿U«þlQxí[«'ô+&ìÚµkX¸\=¹¹Ì’L| endstream endobj 341 0 obj <>stream xœ37U0P0UÐ5T0Ò )†\…\`~. äpA$À4P8‡+ƒ+\!«PÁ ¤(g©`ªg”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚÂ)l<|Ž;Z²íP¸ÎqEÀ`—b3ó!–_Ž_„_ÚM_ Äï—þ~ýõ÷ëÿŽÿÿÿ“·9fÖúý²”ëÿýýÿíÿ·¿ûóïßÈÞþÆô0oYGú‡£ì[äÙjÚ’¹\=¹¹ž¢Tõ endstream endobj 188 0 obj <>stream xœ33S0PaSKs …C®B.7Hù9\q0m¤2¸Âò¸ L\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…s&ð>1ˆg‘°eoñS¾ øBáÞä*νêß¾ðýÈ¿{ìûÛÿ?M½ÿ®»ÎÆÝ›ý7ûÚÞÌÒ¥K¯M›6=ŠÛÛÛ133CWWIÊhº÷‚]ž™UqÓ¯/˜î})–ß;¶ôzlißþ†.WO…@®@.Ð QÙ endstream endobj 183 0 obj <>stream xœM‹½ ƒPƒ÷>stream xœ33R0P0b3Ss…C®B.7Hù9\q0m¤2¸Âò¸ L-@@)C=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. ŠÌöŸ²\ N©\fÝ]ºmtfý¶i·þ殿v+:û+Ÿ½=Ä_w·*º^tßõÿ0ðò GàF.WO…@®@.¢JC endstream endobj 177 0 obj <>stream xœ33R0P0bS Ss…C®B.7Hù9\q0m¤2¸Âò¸ LM\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O-ö?³zæ˜ ÷]Žÿ >þÿlø|¹Ü¹&Õ!ÿC—«§B W UiPˆ endstream endobj 174 0 obj <>stream xœ32V0P0WÐ54S04W°TH1ä*ä‚ðs¹@9\†p $šÃ•Á®ÇU¨`h ‚F¦ æz† 9 ™œËåäÉ¥ïé«PRTšÊ¥TÅ¥ïTÄ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(¨mlç°Ø÷)kÙŠÿ¿^}·õÒ¥K¯˜¸\=¹¹÷ 1 endstream endobj 171 0 obj <>stream xœ31S0P0RÐ5T01R0µPH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚¦– Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-©0fÿ”õ£þ?|²üáøÃí˜ü‚u“k‚kÍ/×ÖÝÿ_ÿû/Döúúÿq{¯/½P”³äe‰¸c›ÐËŽˆfVF.WO…@®@.ä‚MÆ endstream endobj 168 0 obj <>stream xœ33S0P0QÐ5T03T05UH1ä*äósP ‡ "¦Â9\\á y\… ¦æ@­ ¦f &z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-X°@ÄC žÃFáCG2?‡€Á|Ͻj_f¿üº7ùµÿ×~ÕÝÿÿŸõ ˜ºþÿ½Ýñß×»ô?W÷u®î–m—n$ê6³l8¢c°!aïá†.WO…@®@.¶^Oê endstream endobj 165 0 obj <>stream xœ37V0P0bsS…C®B.7Hù9\q0m¤2¸Âò¸ ÌÌ@@)=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j 9³2.Hh|ÈÞ"×ßû)Ï׫)Ÿoú—ûKÅ_®©ÿ[ÿÿülà£êQÇýÿ8¸\=¹¹å8O© endstream endobj 162 0 obj <>stream xœ36S0P0bc# …C®B.7Hù9\q0m¤2¸Âò¸ Œ,€\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…üì-róæ¿üÿÿßõ·¹‰­ýÿÿÿŸ°¼ÿŸ¯ûýÿXÀ#¶ L\®ž \\cÁJ\ endstream endobj 159 0 obj <>stream xœ33S0P04¦f æ )†\…\`~.ˆŠäpAdÀ´Êà WÈã*T0qÁJ ô t ô ,ÀÂT!9—ËÉ“KßÓW¡¤¨4•K?¨–Kߨ”Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œ–c£'ÎÝôDÐÎ3¦^qχ˜YÍòÿñS,ÿ?02p¹z*rr±ÈL endstream endobj 155 0 obj <>stream xœ34°P0P0WÐ5T040S°4QH1ä*ä ä) @TÂJäpep…+äq*XZu(Xš*˜ë¥€Dr.—“'—¾§¯BIQi*—~8P—¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶àZ«&Ï¡J¦GšYµós´IÞë4V8V8VqŠ›¾ôeø„ÿ­¦ÿÿgÿÿoÍ¡¯ßš†ì¯¿«»äë¶ý»|×gFEóª]:œ¨ñMÂsAŠóÖ6EÓ6l6an6Ä£-l\ L\®ž \\ßñ| endstream endobj 152 0 obj <>stream xœ34°P0P0SÐ51R040Q°4QH1ä*䂈äi HT ÂÉäpep…+äq*X‚ 0P046S0Ó3IÉä\.'O.}O_…’¢ÒT.ýp 2.}*.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔcgÇå颠¶ "ÝX¦mÚ)“i«YäLðç0˜'¸ÂኀBâbÇŽlR¬;ô„23M¾î›\7oë¶­Ûv$f'ÿÛ~ùuýÿÛÿCÀïëÿÿï-Û}ý÷õì½ù±ënE_»¡'áív!‘u‰„c–Dë…Ä,GÑŸL¦—ä¯ÿÿ÷ÿûý¿üä%5-è°¹µ)³„mûá5¶{Û·ï»wowˇ¾…«q4­´eá_¿äÞÂ/óÿªýýßõhÙÖÉ¡ëǾÞzoÛ¥ÛÞ¹º[@AÓDƒ„¦Ãl:’>stream xœ³0V0P0UÐ5T07W0·TH1ä*äósP ‡ "¦Â9\\á y\… æF@­ @ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸Tʳ’gà … …͇4Éõ-xÏ¡por‡ùÒ*ß—æë/Wýòý¿´jÿý_þÿ¶ÿÿ¿ÿþ?ûvÁÇÿOýÿïûÿûûï4m¯»õëö÷¸K·¿{çênÙvéFfnË6 o ï”Ý>stream xœ³4T0P0SÐ5T°°T0·TH1ä*äósP ‡ "¦Â9\\á y\… Æ@­ @ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œVÊv“íÕ'Þ‡ì-r‚W4ª4x¾Èw4_ûíÞìÚ{k¿ý¯ÿ]ÿÿßåú·‰@ø~=1eûÄËô“™u†Ò‚J1ú,.l®éY_èsè{_ú²H|ýõõ׉¹êöýÿëöäп‹³¿þÎ4›v+~ÛÔu7<Û„n$ªi'6ÅI´\“âMl9t°‰7ÅŒG„Á…ËÕS!+ RÏn endstream endobj 129 0 obj <>stream xœ31R0P0VÐ5R0¶P05UH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô>stream xœ31S0P0bcS …C®B.7Hù9\q0m¤2¸Âò¸ L \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmI…±û§¬õÿ!à“Î…?Ê)ò f™ýeŸöËý¿þÿ_ÿøZL8³œ÷?ƒ#—«§B W ª¨NŽ endstream endobj 123 0 obj <>stream xœ31R0P0QÐ5R06W05UH1ä*äósP ‡ "¦Â9\\á y\… ÆÆ@­ ¦æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ԖŘ1=l}pÂÿñëuâ1zñ¬ÿÁ?¯::Áí/ÔäEîû~ýrÿž}õÿúŸ‹[älÿ¯º&®¶B´üWté¶½K7\º‘ÈڦͣcÀÈ Àåê©ÈÈIn endstream endobj 120 0 obj <>stream xœ35Q0P0bS 2WH1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄ\$”2Ö3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇåé¢ÀýäJÊ÷Œ¦¾oÿþýÿýÿÿ¿ÿO8üÿŸüÿÿ×ÿÇsÿæÐûýÿþÁÿ`ðÂbbãæ, \®ž \\2ˆO endstream endobj 117 0 obj <>stream xœ31R0P0a cs…C®B.7Hù9\q0m¤2¸Âò¸ ŒM\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…M ]ÅMünÍŽq“^Vý­úwmrœDœáÿÿ'Wý¯þÉó=ÿu®î®ÛÜmŽ9a<: \®ž \\Žh;ð endstream endobj 114 0 obj <>stream xœ35S0P0bSCSs…C®B.7Hù9\q0m¤2¸Âò¸ L,\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O¥Ä&=KSI‹Ûù·?Ü¿¿ýÿöÿ÷ÿÿÿÿoÿ—ý_öíQ}Y¡°£õ`±AöX.!ñ‘A€ËÕS!+ gGHâ endstream endobj 111 0 obj <>stream xœ31R0P0VÐ5R0¶P05UH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô>stream xœ3±P0P0QÐ5T01V05QH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ ¦¦ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xò°C¡Âñ¡­Ú—Ù—öF_ú»·~ÿãßÿÿýÿ3kÕÿï¿n¿Ûví–Ù6í¶‰aêÿì÷ö¿¼þßÞº½zÓ3õ„¢y¶i'&¶6›ð<`bPàrõTä ä¹×N¯ endstream endobj 105 0 obj <>stream xœ32W0P0b#SS …C®B.7Hù9\q0m¤2¸Âò¸ ŒŒ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE3'üŸüþ?vðÑ”íƒ —«§B W ý@¸ endstream endobj 102 0 obj <>stream xœ3±P0P0bcs…C®B.7Hù9\q0m¤2¸Âò¸ L \”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmaSÃ[)Þ‡,U¾/Í—Üÿußíÿ?åÿÿÿó Ûÿ¿êmùúo—n{çê¶ ØpèD¢#ƒ—«§B W %­?, endstream endobj 99 0 obj <>stream xœ31R0PacKS3…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…Sâ×í_·ëß®O¯—¾þú²êoUÜþ¸é믃9¿âãöM3 ?Zµý4e{~ô?üªdçüÁÐÀÁåê©ÈÈ[aKc endstream endobj 96 0 obj <>stream xœ31R0P0RÐ5´P01P0¶PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ A¢@hj¦`¤g’’ɹ\Nž\úž¾ %E¥©\úá@U\ú@E\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚Ú‚ bÎgÔ[$Ün·4;êªi/¹î¹áеãÕþƒÀß-ûïm»ôVïÒŧ[åÿ¿ÿQ­zøÁ7¹Ã—YpïUÈ÷°›ü÷¨ýÿ¿kf­Í]zëá±Ãœ‰Í,b­\X¸\=¹¹u$WK endstream endobj 93 0 obj <>stream xœ31S0P0RÐ5T01V06WH1ä*äósP ‡ "¦Â9\\á y\… &†@­ Æ Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. jK*$lœ=þOWì|xø?xýÿßî¿ë^âß²¤ážD¢ÞÑ‚„å ,\®ž \\usE¡ endstream endobj 90 0 obj <>stream xœ36P0P0a Ss…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ@:RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ž\ *Ì­ÿ¼<²œ÷#ƒ—«§B W èŒ@V endstream endobj 87 0 obj <>stream xœ31R0P0RÐ5T0¶T0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ææ@­ }Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xÖð¡ù…Á‡&[µ/³/å{îÍ_~íÿ¥üÿÿûþÿÿrÕõ¿ë¾þ»}={Û´[¹¬E$‰ñˆ08°p¹z*rr<šD endstream endobj 84 0 obj <>stream xœ31S0P0bccs…C®B.7Hù9\q0m¤2¸Âò¸ L \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmIE°c‹œà&~Gsµu“+Jöi¿ÜÿëÿÿõÿQ¯Å„3Ëyÿ30r¹z*rrD–A¢ endstream endobj 53 0 obj <>stream xœ3¶P0P0VÐ5R06Q05PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­ ¦@­z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…çۛط}hâ±UûU›ï¹ÿë~ õÿÿ?ëÿ`ðäj6ÌÕÿoÿmï\ýo—ó(lÓfãbP`ârõTä ätkE endstream endobj 50 0 obj <>stream xœ32T0P0bCc#…C®B.7Hù9\q0m¤2¸Âò¸ ,€<Œ™ž¡‚®HÎåròäÒ÷ôU()*MåÒW°àÒ÷*áÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ vv\ž. j;¢ kf-ÝÚÿÿÿÿŸïýô'‡l[ÀÄ Àåê©ÈÈsá- endstream endobj 47 0 obj <>stream xœ3¶P0P0bcCS…C®B.7Hù9\q0 ¢2¸Âò¸ ŒL\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµm,ëvÄÌRž¥óðÉõÿà˧)u L\®ž \\ø>á endstream endobj 44 0 obj <>stream xœ33P0P0QÐ5R05U05VH1ä*äósP ‡ "¦Â9\\á y\… ¦† Í@a=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pVr\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú Ì< ã?¶·pHTq˜·Ì¨ò}i¾äÞäú—æk¿üºÿË÷ÿÚÿ—ÿËþÿÿÿŸoØîøÿ÷vÇ_w½ê¶÷ß-Û×nÙvé¶wbˆ[Ü< Žè´r`apàrõTä ä©‹Q˜ endstream endobj 41 0 obj <>stream xœ35U0P0bSCJ1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄÈë2Ö3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§g åmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔVÖ6x~臎üÚ_÷ÿ¯}üþôÿÿÿþ–OXiÿ€‰AËÕS!+ ü¢Dá endstream endobj 37 0 obj <>stream xœ3±T0P°b33…C®B.7Hù9\q0m¤2¸Âò¸ Œ@@) =C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j  >ìzÝô`ã)qµóÿã—/Ÿ’úÃàÀÂåê©ÈÈïuGý endstream endobj 34 0 obj <>stream xœ37Q0Pa3 J1ä*äqs$ŸÃÓ@*ƒ+\!«PÁ ¤¬ËDÏPA×@ÏÀ,L’s¹œ<¹ô=}JŠJS¹ôÃJ¹ô=€*¹ôœ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚*CÂ4¶O®¤2α1á±çý‘ø»î~Û¿¿÷çÿÏÿýÿúýÿ¿ýÿÿÿøúÿßþøÿ__áÿ¥/ë_VÅM_úPŸ³Â1ÑÀKIDd c#ƒ—«§B W ÞïWŒ endstream endobj 31 0 obj <>stream xœ35Q0P0VÐ5T05P0³TH1ä*äósP ‡ "¦Â9\\á y\… &æ@­ æ@ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸VS$UÿD*s߸ɦþ ñ‡{›|‹€ùKó—†Õ/Õí÷þïý?þ߈ Óøýÿûÿ=îïÖ»e[¾]Úcpi.sEbSŒ!w3«#ƒ—«§B W öìX endstream endobj 28 0 obj <>stream xœ3¶P0P0aS…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ%5Îgš/nû"”rå¥î¥÷ññ—ã·³­ÿÿ~ñ©m´ap`árõTä äDÖ?: endstream endobj 25 0 obj <>stream xœ37W0P0UÐ5R07T07PH1ä*äósP ‡ "¦Â9\\á y\… ff@­ æF ¦z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÎ`—i,yÝ"ßâ§Ý’ƽŸCápŒBsö’ûKŽ/ùåDK¿üúåÿoòÿ%ÿ_ÿ¿üúÿÿžðÿÿÿ9.T4õÿ¯¸®?»üýÿúýõ÷ÿÝŸÿ?ÿö·ëù·c·$¿1Ùc6ùa3§„‘ð}§ƒvÅ \®ž \\›C` endstream endobj 650 0 obj <>stream xœ33S0P0UÐ5T03P0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦¦@­@9KS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÜ™ ­Â!ØÄÞ"×yˆ½…Cú‚ã^µ_ùž_÷Í?þßÿß¿ÇÉ–¸žx=³àzâÒ[Ѽ¬ct[÷ITW$¾}ÈÞò¡óòÇ=*Ò—ø—Ü›ïaïûJ~Á¯í þ{ù¾¾~ý>ßð·úß.½¿í«»aÚaΜW²‰‰‰­Í¬..ap`árõTä äÌ‹dò endstream endobj 644 0 obj <>stream xœ36U0P0bc#C…C®B.7Hù9\q0m¤2¸Âò¸ ŒAŠ @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ ÛûŸ¦öÿÿÿŸüŸÃžÃNŸ_~‹ü²_õ¿òÿ×ý›^¿>³àPLmq‡~v†A#ƒ—«§B W ÂÏ<[ endstream endobj 641 0 obj <>stream xœ33S0P0WÐ5T03V°0TH1ä*äósP ‡ "¦uAtW¸BW¡‚)H«‚…‘‚¹ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j¤Ü¯y!õS…÷ÿ×ë±¥K¯M7fÛz(Þ{É^ýõñ^šººzK®H튊_ºnú˺iû×GýÛ›ýýëÿKÿÿúÿÿßþÿ@ð;:::€‘A€ËÕS!+ ;O endstream endobj 623 0 obj <>stream xœ3¶T0P0QÐ5T01V06WH1ä*äósP ‡ "¦Â9\\á y\… Æ ­ Æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ho’±pláç¸qp¯Ú¥/sæjü ÷^›ý:±ªoëõÚëö_ýWàã¿Õ_giªúu¥*j½ÁJÏUœÚÞ—ru»’Äx5p04p¹z*rr¦˜Gr endstream endobj 617 0 obj <>stream xœ32V0P0bC33…C®B.7Hù9\q0 ¢2¸Âò¸ ,<Œ¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦ré‡+Xré{ré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼbK;;.Oµ : þOÙÿ¾!‘ÿÿ7IdrUÇ`ƒ—«§B W ¬¤<† endstream endobj 608 0 obj <>stream xœ3±T0P°PÐ5R05T05UH1ä*äósP ‡ "¦Â9\\á y\… &Æ@­ ¦æ z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔĜѰQøÐ?¡Â¡¹*|É/ rë÷zuõom}üÕìÐKÿãWý }¨zcÕ-o¡ˆ¥@°`ˆ¦CQÜ: [Ħ5]R\¼eµc•÷’]K/½¸"Zø²¸m+o‰Tï*Þ‰F.WO…@®@.ÍôRª endstream endobj 605 0 obj <>stream xœ37V0P0bs c…C®B.7Hù9\q0m¤2¸Âò¸ ÌÌ@@)=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ¹Cê?eÅØÿ‡ƒŸìîMìðÅû-œûÍ_ÖûþŠýrÿoý×ÿÿÿÖÿÇŽLidûÿA‰ËÕS!+ jº\G endstream endobj 593 0 obj <>stream xœ33V0PÐ5"ssSK…C®B.¨H.ˆËá‚ÈiDWW¸BW¡‚¹)Ðs3]=K¤ž¡Br.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶p™¼†B"ó!õ– 3ÁÙU\—ü&½õ,ý „Kÿ_ }ØÚ&ÞgõWÿúÿ×_ö?Ñ ›ÿ6Å$ ­ùoý¿ýÞ_ÿƒãÿ¯¿âBÕÄÿ_ú+þÿÕ¬å“ös^ðÛòåÇÕ ×ÿ½V­ööZ5©e*Ë’«\IbŽ­mŒ \®ž \\Æ–l` endstream endobj 590 0 obj <>stream xœ33S0P0SÐ5T0µT0·PH1ä*äósP ‡ "¦Â9\\á y\… ¦Æ@­ æ– fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-Ö“j=ÍÆ}°é“„}×ëu»^¯Ñãn=gìpæñøç¢|P°a?‡=‡ZûA6y–û¾f¿þökOÝ÷÷ÿÿóüáðÃñËÿþúë××ÌZ[£uÃûë¶éu‡½sT7\ˆVáØpDwA„A„‘ƒƒ#—«§B W ¬}[³ endstream endobj 584 0 obj <>stream xœ31T0P0UÐ5T01U0¶PH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚Æ– ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ØùÀGá‡oæÒåQ¼%Úkõ* vy‹l Óš.Á¡(nfÉ¥/õ&E9–hÇm©¸69Ê·Dª·Õ±•A€‘ËÕS!+ m:?z endstream endobj 581 0 obj <>stream xœ31R0P°TÐ5T01V06WH1ä*äósP ‡ "¦Â9\\á y\… Æ&@­ Æ –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ØyÀCáC¿YÆŸ¸éK~ýòͬú«·õßô×kKÿ¿– ÿõ5BÿõËÚì_'W­­Š»µ~±ðÚ “×I,ÓæHt`apàrõTä äPÿDR endstream endobj 578 0 obj <>stream xœ37Q0P0b cSs…C®B.7Hù9\q0m¤2¸Âò¸ ÌÍ\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµOr¢2½?‘s¥±óÛ¡¯—ÿí<òÿzØ¿]ß“ëöþïµ÷ÿÕ_Ùÿkëfý¿ÏuÅoáÔûß01(p¹z*rrløc endstream endobj 572 0 obj <>stream xœ31W0P0SÐ5T05P0¶PH1ä*äósP ‡ "¦Â9\\á y\… &&@­@9K3=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô´%úÏQ8ÄÏaò¡¶»ôŸà’ºº¥±ºÙqû×fû–nØx>stream xœ33V0PaSKSs…C®B.7Hù9\q0m¤2¸Âò¸ LÍ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O­õŸ²ŒÿHø÷ïÿïÿïÿÿsÔû_ÿÿÿÿã×ÿÇsÿÿg‚úa ðOöýÿÿMÿßÿýÿ¸ý¿þ¿¬úÏý`£l ƒ —«§B W åuOA endstream endobj 485 0 obj <>stream xœ³4P0P0b #J1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÜBÁ¢ËDÏPA×@ÏÀ,L’s¹œ<¹ô=}JŠJS¹ôÃJ¹ô=€*¹ôœ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ê‚˜¥lE|2³Ú­šÚŸ½úpûÛßu÷÷ßÿ_÷ÿïøõÿüú{õã½/}Ù#ÇYÈÝz°ˆCÚx…æTðcJãú L\®ž \\j®Y  endstream endobj 356 0 obj <>stream xœ31Q0P0bcKSC…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶b5—Â;™YË'=’ù'¸îþ¿ÿµÿÿÿÿ[[õÿe…÷¡±»ì|`ø>­êþiêÅ ÀÄåê©ÈÈÛ}F endstream endobj 353 0 obj <>stream xœ33U0P0UÐ5S0µT0±PH1ä*äósP ‡ "¦Â9\\á y\… ¦&@­ ÊTÏ($’s¹œ<¹ô=}JŠJS¹ôò\ú`Ò)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææÛÙqyº(¨-œc´ÿ?üñl¸ç묱#µIðC—«§B W jHA endstream endobj 350 0 obj <>stream xœ3³T0P0b33cs…C®B.7Hù9\q0m¤2¸Âò¸ ÌL€\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O%¥9þÿ?e¥>stream xœ%‹1‚@DµÊ#Ì䳋L‹Ä1ŠÂX©‰Å‚AåüúƒÕdæÍK,cš”vK›ðf0b0§Ît0Ò¦ªÆÌh"6юץ‡ø?¯ééô90ƒ”£Tgƒø©Å¹Zk“çräZ‰{†©Þj|ÅïbµÄÞ³E‹´o"Ž endstream endobj 344 0 obj <>stream xœ31U0PacKS …C®B.7Hù9\q0m¤2¸Âò¸ ŒM€\”©ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…žŒ)IÍ?2b‘¾ö»bwýÿÉ!»=s+–.زEl:·÷Zý×Þ¿þÁñÿŸ8g8¾ü7ÿÿ¿ëo[¹\=¹¹ÂûDÐ endstream endobj 310 0 obj <>stream xœ31Q0P0b#c3…C®B.7Hù9\q0m¤2¸Âò¸ L@Š @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ Òboùòä*¿2ÏôóW¿üõëÿëÿÈàÏ’'¯ºý?eM`dàrõTä ä¹Dò endstream endobj 307 0 obj <>stream xœ31Q0P0bc3…C®B.7Hù9\q0m¤2¸Âò¸ Œ-@@)#=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j+^ˆœíf‘>”r5Ì©H½Æ±Â·äºóõ¯×ÿÇÿƒŸ.þù5p04p¹z*rr<„:ã endstream endobj 81 0 obj <>stream xœ32V0P0aS3…C®B.7Hù9\q0m¤2¸Âò¸  -@@)#=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. jK<_þÿÿ6±µÿÿÿI/þùúïÿ ^i“~ÀÄ Àåê©ÈÈb—?œ endstream endobj 78 0 obj <>stream xœ31R0P0bcSSS…C®B.7Hù9\q0m¤2¸Âò¸ Œ,€\”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…ÍŒÚëÄYûgÞ4åþ \>åùƒ¡ƒËÕS!+ ?£?ƒ endstream endobj 74 0 obj <>stream xœ35V0PaSCcs…C®B.7Hù9\q0m¤2¸Âò¸ L,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEó92ø >4_>stream xœ³4T0P0b sSs…C®B.7Hù9\q0m¤2¸Âò¸ ,L€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OÕƒÛ®oU[”hvYïúÿo—þÿw+Dýÿ¿múÿß™õHL ‡ °ÔÑú×ÿ¿­ÿU/¼@I¡!~ë­, \®ž \\èk6 endstream endobj 68 0 obj <>stream xœ3±P0P0bS…C®B.7Hù9\q0m¤2¸Âò¸ Œ@@)s=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j çÜðzXÓ¹¤ÞdS–ü,`ŠùF.WO…@®@.\´?® endstream endobj 64 0 obj <>stream xœ³0Q0P0QÐ5T07T046TH1ä*ä ä)HT ÌÐÑ\á y\… fæ@Ý@I#=œž¡¡Br.—“'—¾§¯BIQi*—~8P%—¾H!—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï 4‚Kß9?§47¯¨ÇÎŽËÓEAmÁ… ©úÿÿÿíÿÿ Hüú·ýë_@¸n×ÃÒCE»|µìš²žhÈüüs8^à­}½ÿïïý%»¿{çßÕݲMêÁ4‰Ö¶ ×xtÚv 02p¹z*rriVsv endstream endobj 61 0 obj <>stream xœ345S0P04RÐ5R041b…C®B.ˆP.ˆ‰åpÁd!, \WW¸BW¡‚¡±!Р1&f@£ô ²z†† ɹ\Nž\úž¾ %E¥©\úá µ\ú ¥\úNÎ @žK´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+i²³ãòtQP[P—ÍÓ!tB†{MÓĬƒÌ ×j…xØ6t¤š¶1Gds¬æ-Û"¸FÁqë‚ÙY¤£|ײç´Uø"|©*V}É—yë×M¾Tõ«*¾*6>6þ˾/ûþ/ý·þoéÿû_öbo»¸þúÿ_ÿûÿÁOÓøÿÿ×ÿ¿ ž_ÿýû¿ÿÑ¥ÿׯ»[¿ë{ôïì»y{¯½Þ6íþ­èuws—n›vëíÒ —n{ó.Ýp(šWÇLèF†ŽA¢n3gb3‹˜$ÏÖ6—Æ‚ Ib6±³J2m°iüUÁÐÀÁåê©ÈÈè𔯠endstream endobj 22 0 obj <>stream xœ32W0P°bC C…C®B.7— ÌÏá2DÐ *ƒ+\!«$‚@ÊBÏPA×H$çr9yré{ú*”•¦ré‡e¹ô=À¤S€³‚!—¾K´!—A,—§‹‚C}C}ÃÿbË1p¹z*rrôq$‰ endstream endobj 18 0 obj <>stream xœ33V0P0QÐ5T0µP05RH1ä*äósP ‡ "¦Â9\\á y\… ¦&@­ ¦Æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-6feKêiúõÿϬ9m‡~÷+øõÿÿ¿ýïöž^¿~Wøö€ßÜVmnqo8cÈÝÌ•fÀÈ Àåê©ÈÈ)Sà endstream endobj 15 0 obj <>stream xœ35T0P0QÐ5T01W05VH1ä*äósP ‡ "¦Â9\\á y\… &Æ@­ ¦& &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\pAαjC?‡Bâ …{“+<÷ªýÑ›«}µþÒÿK×óèºÿêÿÿÿ§iÜÿïb¿ÇG×½¾›»t×Û¥Û¦I{'¶l8Ì"&Ñ:á¢C—«§B W ˜ÞJh endstream endobj 12 0 obj <>stream xœ36U0P0bcK …C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ ~>stream xœ35W0P0bSsK…C®B.7Hù9\q0m¤2¸Âò¸ LL@@)3=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j vZ²ðsÈ TÙi_PH|i¾ ¹Ê÷ÿ’{“ÿ~ùußÿ[0íÿ¯j+Ëv$®¿¾þÒ_ýK¯ã¶lÙuéÒ¥×Þ@°Vô3KvyfVÅÇM_²+nj¦^û¯×²5 ,\®ž \\ß•R3 endstream endobj 566 0 obj <>stream xœ3±T0P0WÐ5T0" …C®B.0?Hr¸ `(œÃ•Á®ÇU¨`bÔj `j©`®’ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚Ú‚g ÷Ü×ÿbkÿúë¿ý@âSÉ …? _ÔN~X¿üõ¥}ûöí ½þ/_ú¿Tß¶4ôklýŸ’é_—¾Ì›jreÖ ƒL \®ž \\m†QÜ endstream endobj 563 0 obj <>stream xœ31R0P0asJ1ä*äqs$ŸÃÓ@*ƒ+\!«PÁØÈ…èÒ3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ÿÏ¥Ó—ìZ7éjÝ.ïë¯/}=ª·eëkï ÕK_/½~™YúeÚôU/õ6Ê`apàrõTä 䘟>~ endstream endobj 557 0 obj <>stream xœ35R0P0WÐ5T05Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… &æ@­ Æ– æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ägöQ8!Xá¸àKuö‚¹µµÚ_¶þ¿š½êo˜Õ땦œ¿â¿®Û[·úlÝŠyõ¯ö¯_ÿÿªþß«z×ï(ŸšvDM›×´™E"€‘A€ËÕS!+ jAG endstream endobj 554 0 obj <>stream xœ31R0P0WÐ5T01W0¶PH1ä*äós¹À9\&(œÃ•Á®ÇU¨`b ‚Æ– æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-šÇ•fáØÂïØ"×—+§¾äˆÂý[VVý›6µþàêPMSNùëëÿVý‡ÿv`dàrõTä äFz=ñ endstream endobj 548 0 obj <>stream xœ35P0P0bsS …C®B.7Hù9\q0m¤2¸Âò¸ LL@:RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÍlËø?9øýxb·ÿÿÿ¶4{îCqM_öê{ƒ©õ£ßïrû~¹îßýíßß¿ý]_÷¿Ðj¦„ôÿ, \®ž \\-‚Mð endstream endobj 530 0 obj <>stream xœ31W0P0WÐ5T0±P06WH1ä*äósP ‡ "¦Â9\\á y\… &†@­ Æ æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹Í8jTñ»© n®ºáh~93n’Èÿ¸­_ï_ÿ2%ûjýÁìµ¥ÿ_¯-ýõ7ûË‚}û׆íZÿÿËÖõkë×_ºz}™bâ‚C  \®ž \\òÄJA endstream endobj 527 0 obj <>stream xœ31R0P°TÐ5T01T06WH1ä*äósP ‡ "¦Â9\\á y\… Æ ­ Æ –z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-8ø1¡ùMâ µ“«â¦¾´Û¾n¯þ—}[¿þ_ñ5~}è˺éQ'W]ÏÌ›¾t[ÓmÎÄŽˆ„L \®ž \\éš@ endstream endobj 523 0 obj <>stream xœ36P0P0WÐ5T06R0µTH1ä*äósP ‡ "¦Â9\\á y\… F¦ Íf@ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-pÐeo}·ëß¶ ‡ŽÿÿÿIxCó¡*K[íKÿ/ÅÙ¿âW¤)ÇÖ×_0nϼðK¿®¿¬Û«·÷Ò—mÚ¼‰M  \®ž \\æþHN endstream endobj 520 0 obj <>stream xœ32W0P0WÐ54S02T04VH1ä*ä‚äi HDLƒÄs¸2¸Âò¸  M€º Œ,ÌõÀr@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[óð¿ÿ£ß'Wý>lùøzü¯¯ë¦¿ÌÌÌ>ôŠA‰ËÕS!+ CÐ3ô endstream endobj 517 0 obj <>stream xœ35V0P0bKS …C®B.7Hù9\q0m¤2¸Âò¸ LÌ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE3›=þO~ÿž¤pø£ðcŽD@þ²¾_ëîÿ¯ûÿ"wýÿ¯ø¿e{—Þ-69kpˆ{Á½fîX¸\=¹¹v”PP endstream endobj 335 0 obj <>stream xœ35W0P0bS#…C®B.7Hù9\q0 ¢2¸Âò¸ L,\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O儃¢,|¾dìÙäÛþîÏ¿û÷ÿÛÿÿÿûëÿ__}ýÒ—UqB]BDz›˜¸\=¹¹½@$ endstream endobj 332 0 obj <>stream xœ3¶P0P0RÐ54R06S02WH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒM€º Œ-Œô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[8[QC B!ÑÂ)ùâÇu“ëæ¯müÿÿûØu·¢Eìì[ü÷SŒâ‡o_UÙq?j¾üwͬµ‡ÞL“hmsbg`ärõTä äæE@ endstream endobj 329 0 obj <>stream xœ%‹;Q†…îoˆœJ7ÎÜ\!S&nd ‘H<¢˜K¼¶`èV@X…Ä ô´Æ §8þǧ‹ä’&G‘..ÒHaŸ·"Dø?•8Â]šaAZ *p‰t^I%ohQ5`Òz¹ƒ»27d®¶|Së)¸}pÀ¾ˆmU*ÜìÏ£­ñ<˜åaòšº¥ƒÉ+37ç]ïù¾ÄŸr,÷ ;—ØrühZg›½ÝÓ`ŸLê†Úhã 5Å>stream xœ3¶P0P0bccc …C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµER¬Mì-r‚ŸøÙ~çéî¿ýgÖÒ[Å/½6mZÓ¥ QQ.Ñ vŪlo±-½±¾ƒ¡ËÕS!+ åY;x endstream endobj 323 0 obj <>stream xœ36V0P0bc e¦bÈUÈâæI ?‡ "¦ €TW¸BW¡‚‘…H(e¤g¨ k$’s¹œ<¹ô=}JŠJS¹ôʸô=€j¸ôœ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB/.9áC&ê öê¯?Ì¥QÿrÈÿœæ{×îæìHÚpè`SC—«§B W Ý 3‹ endstream endobj 320 0 obj <>stream xœ35R0P0b cK…C®B.7Hù9\q0m¤2¸Âò¸ LL\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ•õŸ yY>lø›íã÷¯ûÿÿŸ äÐÿ& Õ`apàrõTä ä-<÷ endstream endobj 317 0 obj <>stream xœ3²T0P0b#cs…C®B.7Hù9\q0m¤2¸Âò¸ ŒŒ\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEÒœÿ¿þ­-ب,>9ؘó?œŒÿÿÿë¶iGs[¹\=¹¹ÄÛ7I endstream endobj 314 0 obj <>stream xœ31R0P0b#3…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ@@)c=C] ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]4DΨØZšôIþk~´¶þë8rœÕ\€…ÁËÕS!+ ×76 endstream endobj 304 0 obj <>stream xœ31Q0PacKS#…C®B.7Hù9\q0m¤2¸Âò¸ ŒM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…gô:*²·|‘ë<öEÀüÿ’ûþ²ïËëO®Š]g¿në븭—.]÷Î ]]]Õ[¶léЯò<ĽôÂñÉ! ˜¸\=¹¹UÐBÄ endstream endobj 301 0 obj <>stream xœ31Q0P0aKc3…C®B.7Hù9\q0m¤2¸Âò¸ Ab ]f Æz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÃ¥ï&œ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚Ú®ËÿŸ7;}Ù«ï}é–·È0›&t ö¾T÷^zéeÉFyµ•, \®ž \\‡;z endstream endobj 298 0 obj <>stream xœ31R0P°T0²T06R0µTH1ä*äósP ‡ "¦@tW¸BW¡‚‘1P«‚1P¿ž¡‚‘…ž¥Br.—“'—¾§¯BIQi*—~8P—¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[ñ TlvüåÿÿŸ\Í^þ¾¯›¦V04pp¹z*rrƒ…8& endstream endobj 295 0 obj <>stream xœ31Q0P0bcKSC…C®B.7Hù9\q0m¤2¸Âò¸ ŒAú @R¦z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠå<Ü?Mcš¿ÿÇÿîÄù5p04p¹z*rròþ>F endstream endobj 292 0 obj <>stream xœ31Q0PacKc3…C®B.7Hù9\q0m¤2¸Âò¸ ŒM\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµm šñsØÚJñ¾P¸7¹Fá×}ÿ%÷ÿ5ÿÿ«Úêøo»¯go›ž½mÚaΜ°k‰‰­ Œ\®ž \\߇= endstream endobj 289 0 obj <>stream xœ31Q0P0b#c3…C®B.7Hù9\q0m¤2¸Âò¸ L@Š @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ¯”Þ&oÊÚzùɇ¶3ÿ Wÿÿ'›¿öÿó½/ÿÿ—[ÿÿÚß»—Çÿ¿”º7oÇãÿËÿWÝÊbP`ârõTä ä=°Jê endstream endobj 286 0 obj <>stream xœ31Q0P0TÐ5´P01P06SH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œ-º LM õÀz€dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶bAZâÑ&~‹¦þÊúp°â?>stream xœ36T0P°b#c…C®B.7Hù9\q0m¤2¸Âò¸  M\”…ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµeÙ—/ÿiêÍ£SÿÿÿŸy‰ †.WO…@®@.ø91“ endstream endobj 280 0 obj <>stream xœ36R0P0b#K3K…C®B.7Hù9\q0m¤2¸Âò¸ ŒL\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµER<õŸ²bÿã‚Ûþ1(0q¹z*rrn…D¢ endstream endobj 277 0 obj <>stream xœ31S0P0b#S…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE’]5Éró„Ÿ«/™iªûúhýõ[/×óèËÿÛÿ¹°ÿg`ärõTä äÂ}<Š endstream endobj 274 0 obj <>stream xœ33S0P0QÐ5T03Q05UH1ä*äós¹À9\f(œÃ•Á®ÇU¨`f ‚¦f &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-pä1N°QøÐÅľÀq¯ÁýÜ—÷·ÿßþÿß½ë[ßVüÿÿÂYÁ y“Üãn2í>dÕþBŸCß±*núúëKÿy³¿þÿëöäпëKrMoùGóèT$¶G‹\“ðM8”˜bPèÀÂàÀåê©ÈȦTT endstream endobj 271 0 obj <>stream xœ340V0P0WÐ5T°4S°0VH1ä*äósP ‡ "¦Â9\\á y\… –@­ & æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\SÂÌÆ2!›c'ÏÓƒl;× È®\cƶá9»E ù‚ÿ’_œ&¿´Òþë/¿¬ÚÿËÿßô÷ ´ÿŸmMýÿÿf­Ÿ­yÿÿý'’¦ïïÿÿ»ë÷çß¿ýûÛuÞß¼eÛv$²âöê‡[~$ÍçQøaÐüDê û‰ì,F.WO…@®@.ô¸l” endstream endobj 268 0 obj <>stream xœ32V0P0W06V04W0µPH1ä*äós¹À9\†(œÃ•Á®ÇU¨`h ‚F¦ æz† ÆFz– ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmc;‡Å¾OYÎTüÿõúë븭—.]zÅ ÀÄåê©ÈÈâÀ0ÿ endstream endobj 265 0 obj <>stream xœ36U0P0b#K#…C®B.7Hù9\q0m¤2¸Âò¸ ŒŒ\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…Þ-Ë׿^·ë)»¼q¤©cÅ$0%~ÿWF.WO…@®@. 9 endstream endobj 262 0 obj <>stream xœ36U0P0a#K…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ@@)c=C] ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôòiáç|ak+%ïÐ\k7ùo×ñ+Ìkf-s¬xkÝ~#Q·?›GÇ´‹A‰ËÕS!+ ê¿3l endstream endobj 259 0 obj <>stream xœ-‹±Á`…rÞAr'·Ë&­F#0ˆD‚ÄÐVŠîx£Ñ ³÷è`1z ¿« çžœsÏgÕÉ EE–E5Es…yŤð{ä^ùú#Š“e jPÍ$Uýrf!ZØëÑv,À#;²·ú6)°3V0&`—mÛ•Øo4¸+4Ø^Imi6á9T>¥woxžî:d+½]õëò×#i}Ïtö,ìŠh{äÃÇ«DD8 endstream endobj 508 0 obj <>stream xœ3±T0P°TÐ5T05T0¶PH1ä*äósP ‡ "¦Â9\\á y\… &F@­ Æ– –z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-pœ¡Ï"'¾GÙYà‹ðCõKµú¯½¯¿,]··>6{ýÿˆWû¯¯:}þú¥_ÿ|Cïm»þaenKý¤k ff‘`dàrõTä äˆD« endstream endobj 505 0 obj <>stream xœ31Q0P°TÐ5T01Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ Æ– –z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\p¦ˆûu‹œàB…ùŽæÞK¯/½~éÚ–é‡â„®L”qzXd` ò ¶>~BÞ§¬•¿ª£—núÐt˜GèFk›Ï.WO…@®@.@ZA endstream endobj 473 0 obj <>stream xœ36S0P0bcc c…C®B.7Hù9\q0m¤2¸Âò¸ Œ,\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…\¬òfMçÿOŘ`dàrõTä äº}J^ endstream endobj 470 0 obj <>stream xœ¥‹Í ‚P…[ÊÞa^@çÞŠ+yM”tÕ"ZUЬÜ÷Z½Y‹¨Fé :0?g¾3þ’)Nz1££F‡Á×Ò‡C…%ãŒ-5èÈøbÕÈŒ§ÉUžV"C‡QÎrº]úx+Qp:$ÁQaIƒã†Úƒ¶6[oÈbÛª¯›«ü„!²˜ÞùêáL?ÿé•RûœÜ¬3*Qâ 8¦g» endstream endobj 467 0 obj <>stream xœ342P0P0WÐ5T044V041VH1ä*ä‹ä)HLÂJåpep…+äq*˜)€Ì041Q0×3Jê*$çr9yré{ú*”•¦r釃”ré{€Tré;8+ré»DrÄré»é;;»¹66úÞ@3¸ôósJsóŠAšìì¸<]ÔTd³O° Ÿ -ôÿÿÿr‰¿ßÿÇ?y þ4Gõ³ðdÈþPÑùCWÁ¹? Íü÷s(Ü_rÉñ%¿ühõ×W¿âÁðÿËúÿëÿÿŠêþ3æSÖþÿÿÿÝÿÿÿ=ü÷ÿwýïúu·Þío¨%mž´cÜaNçÛœ3òy$ NXRpDO"Æ`'Û‚9m+Š# ˜¸\=¹¹›M— endstream endobj 461 0 obj <>stream xœ3±P0P0QÐ5T01V05QH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ ¦¦ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-l*¨P¨p|(/bË"})ßs­ö÷ëÿ÷ïß¿õáuþ·ºm{L¶)–nØ&wøöíCn™/îM~Éö¥ù•ôåšïýû~rÕúÒm{—n›v°)"IL""1EV€‘A€ËÕS!+ hðPX endstream endobj 452 0 obj <>stream xœ3³T0P0UÐ5T03V0µPH1ä*äósP ‡ "¦Â9\\á y\… AfKS=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔNñ`3â=¢#Í"uÈ”…GWà`ã!–/Íü=_–Vù{¿÷~_õÿ"kpàÿÿÿO®úþDZïÿ÷»õy{Ë^ç–{ç–IEgæ˜l8Ì™sE@Ç›MŒG§- €‘A€ËÕS!+ 5”HÓ endstream endobj 256 0 obj <>stream xœ36U0P0bcCC…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶â…LüÉUOôêÿ£€§ÚÝ'W02p¹z*rrO9 endstream endobj 253 0 obj <>stream xœ36U0P04RеT02V°TH1ä*ä‚ðsA´¥BXLé‚è ®p…<®BCC V f  ~=C HÎåròäÒ÷ôU()*MåÒªâÒ÷*âÒw pVr\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú][»ÿß÷Ø/]'Ôµjrˆƒ —«§B W ·\*O endstream endobj 250 0 obj <>stream xœ36U0P04PÐ5S0²P01SH1ä*ä‚ä‚h PD Lë‚è ®p…<®BC  nS# z†@9 ‘œËåäÉ¥ïé«PRTšÊ¥TÅ¥ïTÄ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô¼æ¼6Mèµcöҥצ¿¬ú/ÿÿ¾Úê¿ÿþþ»ÿöûöíû¿ç}{Oªƒ¡ËÕS!+ ï> endstream endobj 247 0 obj <>stream xœ36U0P0aKcs…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE<Áÿÿÿ?(þ)kšëùÿ ðIÈÖþöõÌœÚÓ ˜¸\=¹¹L,7f endstream endobj 244 0 obj <>stream xœ36U0P0aC#…C®B.7Hù9\q0m¤2¸Âò¸ Œ,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµER,MüŽmÙþpÜq¸äÛýïj+Ëv|ý²ß;Voô]ÜÞÞœ™ºº:*ÎÇ&•ˆ;Ëù5p04p¹z*rr‘Ã9ö endstream endobj 241 0 obj <>stream xœ36U0P0RÐ5T06R01RH1ä*äós¹À9\Æ(œÃ•Á®ÇU¨`l ‚&Æ Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ôŸÙÎaòÅFoÏ™_œ_æ¯}©þÿËÇ×ÿW<ñ~PÖñsÿã¿ý»^¿õö7‰8Û'²·\“pf`ärõTä äŒBµ endstream endobj 238 0 obj <>stream xœ36U0P0Q0V06P06WH1ä*äqsA¤¹BDB© ®p…<®B#3 > ‰‚‰ž¡‚‘ž¥Br.—“'—¾§¯BIQi*—~8P —¾P —¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[qÀ\œïÉUöímr÷$ª+òîmßÞ&û7‘ué‚ ÓšEE8fÙ«Df-e`ärõTä ä¬ 6 endstream endobj 234 0 obj <>stream xœ31R0P0VÐ5T01T05VH1ä*äósP ‡ "¦Â9\\á y\… Æ@­ ¦& Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-‹1ÿÿvé- z#¡Ú¦˜›p0ùŸÓy~އ/(Ü›Íï»ïþÿüì[ÿÿW8Pɲž%£FùQAÓ‡é öÖê¯ÿ°hÿÿõßvš†$Ö^ÎÌmýc&à&±lC¬†.WO…@®@.GS endstream endobj 231 0 obj <>stream xœ35W0P0bS#Ss…C®B.7Hù9\q0m¤2¸Âò¸ L,\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oå„ãO®89¤ÕÿG q@býúÿ_ÿ_ÿœ:îX¸\=¹¹3ÎBd endstream endobj 732 0 obj <>stream xœ36U0P0bc#C…C®B.7Hù9\q0m¤2¸Âò¸ ŒAŠ @R†z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚJ×'WS>4ýüÿÿïzùÿŠÊ—ÿÿ³ÿÿ¯Àÿÿï8ûÿÿÿÿŒrý3k)ƒ#—«§B W ‘>stream xœ36U0P0bc##K…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† º@"9—ËÉ“KßÓW¡¤¨4•K?¨ˆKߨ†Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­Xp¨ÛÿŸoP¶jσ·×n½›^º1úmé¾yóz×o_roê«¿æK+=\9¢ê'‡Ìjà`hàrõTä ä½z< endstream endobj 726 0 obj <>stream xœ33R0P0SÐ5T05U0³TH1ä*äósP ‡ "¦Â9\\á y\… &–@­ æ@ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-Øé ÇÍÜú 9Fáºãº.&~‡ÃujÕ/ñ_~õ·îßÇßÿç×~3Êš¯yp±Âa­“7'$üP]ÍŸŸÏûpyó•âœÎJNȾ^c^=›W÷ïïëG¯Ž^‘騲dG¨}ׂC@˜ÈÄÑÀÁÐÀåê©ÈÈ *ZÖ endstream endobj 501 0 obj <>stream xœ32W0Pa#cs…C®B.7Hù9\q0m¤2¸Âò¸  @@)s=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. jk·ÈÍ?úÓÔûÛ†CÇÿÿÿô™ÃÖ¾ûSÖô·‰­ Œ\®ž \\ˆš3¼ endstream endobj 498 0 obj <>stream xœ³0V0P0bss #…C®B.7Hù9\q0m¤2¸Âò¸ ÌAú @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Xÿ«-hÐûÓ–¶ÿ=|ÿÿß ¨i”’?ÙžíÿýÿßÚÚñþÿÿç:ý‘¿ÿþÿ¿ ÿÿ‡GnÍæX¸\=¹¹ã”\É endstream endobj 495 0 obj <>stream xœ343S0P0bCScC#…C®B.@. äpÁ¤ , Á®ÇUi7Ëšë*èè™Br.—“'—¾§¯BIQi*—~8H-—¾H)—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+i²³ãòtQ°ãfOvXV¦ÁõàÁƒ‡'Wä(ޱWX1ù`ûƒûÍü‡ë¤¿É·ýÝŸûÃýíßß¿ý]wÿßýûû·ÿ¿¿ÿÝÿ_÷ÿïÿ÷ßÿÿÿûûÿÿÿõ@üÿû(+ˆÿ‚…®ÿÿõÿëÿÿqûÿÖ¿þúÿßôÓì¸éë¯/}ýõeUÜô¥¯_VqŠ›Þ²Gõ!ëC}ñ !žOL-RttjjšÛË4óÖ†F.WO…@®@.ƒè˜ð endstream endobj 455 0 obj <>stream xœ³4U0P0WÐ5T°0W°0VH1ä*äós¹À9\(œÃ•Á®ÇU¨`a ‚& æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-\SÂ,ɶ¡[qÛÇ5 ×d×(Gäð&2ñ®Qh–eù2¯©Âó¥Ý¼É—ª~UÅÆ™ÿeßÿ¥ßÿÖây¶ëÇÿÿÿšÆ¿ÿ_Ämùÿöÿk÷_ç½½öú®»e—nÿöÎÕ1›vØ;GuÃ¥Ã<ªmÁm­m.L¬mЉ­ÍÜ ×+®]ÂàÀÂåê©ÈÈ¡Ébþ endstream endobj 446 0 obj <>stream xœ36U0P0RÐ54U06U0²TH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ Œº LLŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ÈsæÀC¶yÂ_lK2jYäíã÷„ï­ÿÿýµÚÊ{×ÝßpèãÃo¥±­}ü ÇvÕßjà`hàrõTä äæ²D‹ endstream endobj 443 0 obj <>stream xœ36U0P0RÐ54U06R0²TH1ä*ä‚ärEr¸Œ4H<‡+ƒ+\!«PÁØ@MLŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPÿre[á¯÷wë¶ý{]ÿïÒýÿ¹úÿo¯ý§ýýõÿõ×ןï^·Gaº|tt4ƒ—«§B W n ?’ endstream endobj 440 0 obj <>stream xœ31Q0P0QÐ5T0¶T05RH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦Æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ô<ÊÚÄ6¯ùCûº^ö í&ù¸·úÿß­j«l¿oøÆ?×±[ó âD¦ˆŠ|…©O$.+n”0o¿ýw¿Öøÿoõ·¬M\jÕݵòŒŽDPÖƒL \®ž \\þoJ² endstream endobj 437 0 obj <>stream xœ36U0P0b#KC…C®B.7Hù9\q0m¤2¸Âò¸ ŒŒ\”™ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇåé¢ðÓTàÁüÿ(àQ ï.WO…@®@.å5â endstream endobj 434 0 obj <>stream xœ36U0P0TÐ5T06V01TH1ä*äósP ‡ "¦uAtW¸BW¡‚±P«‚‰‘‚¡HHÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔùÿÊžÍËXë}ü øwÓÎû2ˆñWúþÿ÷_ôåõkÁ|ûý×ÿÿÿxüòÿ_/`apàrõTä äÄ~LÛ endstream endobj 225 0 obj <>stream xœ31S0P0bcSK…C®B.7Hù9\q0m¤2¸Âò¸ LŒ€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ… .qØ(joÈçPûÒX2ù¿÷ïo{ öÔÿÿÿÿO³¬àŸY=’þÇþš|š<ÙÿC—«§B W ÔáR„ endstream endobj 222 0 obj <>stream xœ31Q0P0bcsSC…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@Ræz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚJ×'WuÚßÿÇ Všz1(0q¹z*rrX'<¶ endstream endobj 219 0 obj <>stream xœ31Q0P0b#SC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶pÁ‚¨úßOŒvÿ‚Oœö,ò-ò _/vz¡ðËÿòKû¸Éÿåã2÷ÕVíÿ¶»~Ý­7¦7ËT’6͵Ž1Ø‘hÊ ÀÈåê©ÈÈÚGP endstream endobj 214 0 obj <>stream xœ36W0P0UÐ52T02W03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒŒ€º ,ŒLõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(HÞ™µàÛ·ß·oßß»ïûûºÿù¿ïï¿¿ÿÿíÿÿßÿƒøÿ¿âÿ_ÛmoÝô¯ë£¾.½¶+*63ÓE«ƒ¡ËÕS!+ 9N× endstream endobj 211 0 obj <>stream xœ36W0P°TÐ52T06T03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒŒ€º ,Œ,õÀr@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œáíí««·õÒõµU׿ìÛúoëÿ¿úÿü‚'Wëÿûÿ¿îÝ÷¿ûïïý}?¿îÛ·ï·o.g`ärõTä ä±aL endstream endobj 208 0 obj <>stream xœ3¶T0P0bc3cs…C®B.7Hù9\q0m¤2¸Âò¸ ŒM€\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEó%I8|˜×çïi”Uõ&|ý¯ì[}|ýesÿ`hààrõTä äôF<¯ endstream endobj 714 0 obj <>stream xœ340T0P0QÐ5T°4S°0RH1ä*äósP ‡ "¦Â9\\á y\… –F@­ Æ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨2ÄÿrÅòŠh/SÁ¡ÿD‚Ò_ï¿ÞÛ;~íÖ»z—î–]ºíزM›ÇÀ;Õ¢´M1±µ™›[áfƒ —«§B W ·d$ endstream endobj 708 0 obj <>stream xœ35U0P0WÐ5T05W06WH1ä*äós¹À9\¦(œÃ•Á®ÇU¨`j ‚Æ æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-šÍ¶aC³Â–/I™Ë½®/ý[mýµyÓ÷ÿ_õxÝêå׬ ÿumßþ«¥¯Wýÿ¶ký×ûÿÇ¿¾Z¿öjµ¯îÅ}Ó{nÙpÔ0"‘™•A€‘ËÕS!+ ]FP¾ endstream endobj 699 0 obj <>stream xœ-‹?KÃ`‡ÅñÀI?ÀáÒIß¼ H‡Ò¡©Å J;u!ƒI[ªÆ€EóE”vë–8§ÑÉ/ ™j]cH1,ñõR]î~ÏýîáòJ˜Ç Ž\–±ÇCXš´è`Âó¨0áØ‚9œt 2æ79u4šPV©{xqfkd_Àvè X¹¦ AEã éÀªLQª„µb‘í’Li›V³už9¥¨\|¾çB|ž®}¬÷_r«ïOqÐu'©íÇ‚ÂØö“yÐõŒ‘½?¼5R[sÃÀñ´ù@Ÿ{Æô.c‘Œ[ÃÁìkÔ&žŽßšøqN–?í ý5Ê8ù ƒ›( ØI/ nïJ Þ™ÛK£Eð¾¯)ô——¶U¬C~e‰k endstream endobj 687 0 obj <>stream xœ3µP0P0bS3Ss…C®B.7Hù9\q0m¤2¸Âò¸ L,\”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµOx^þäm©}ýß^â'Ï÷Ðëÿ¶®›þúzü’ý_¯êM¿~銾ÃFѯ Œ\®ž \\‰HF| endstream endobj 684 0 obj <>stream xœ33V0P0b3sSs…C®B.7— ÌÏá2CÐ@*ƒ+\!«PÁÌ@Ræz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô¼öÿÉÛ"pPÆôá×_õÿ¯¿Úÿ?Hõ¯þÿׯ¯‡Øíµ—eÇÿ¸ û~íý¿’¿êõÕúõW³ì½¿¾^[²oÔzϪ±N±LG¯08°p¹z*rrFNš endstream endobj 681 0 obj <>stream xœ3±T0P04TÐ5R05T05UH1ä*ä‚ä‚h P—)‚Šçpep…+äq*˜(€ ©9Ð=HÎåròäÒ÷ôU()*MåÒªâÒ÷*âÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j î\ðPøÐ|ÈÄ|ÁìK{Õ¯}Ù[«ý7üËþ¯ë×ÿÕ­Ûÿ·nWüßòõ±×ÿn˜väÐÛŠDÕþk{ëb—¶È¯ ¼6=êRÈ…¦ Sf-äNÌÑ‘Ð`hààrõTä ä~yO7 endstream endobj 675 0 obj <>stream xœ3±T0P04RÐ5R0µT05UH1ä*ä‚ä‚h PD LÅs¸2¸Âò¸ L̺ LÍFèå€Dr.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[$£Ü°¿‰o+çz©¨¥Ë¦¯›áÝu‘'ž…7CIÚzé…ÐK/U¯K…L™Õ¿¶êº÷×Kõ/ý­ºþeÜþ¸­ÿ¶þÿúÛ†C  \®ž \\œQI9 endstream endobj 672 0 obj <>stream xœ3±T0P0UÐ54S01U05UH1ä*ä‚ärEr¸L4H<‡+ƒ+\!«PÁÄ@Í Lõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYH¹DrÄré»é;;»¹66úÞ@í\úÎù9¥¹yÅ@-vv\ž. j ®qs¾ü··þõõÓÿMYõu}Ô×_QñK¯íÍÌÜß"7©Ê{éKýÐ¥/tTÜô–éîNQìG* Íd"M=š™”$¢XÏ2Õ__ÿ·êÿë‡8¸\=¹¹îgMë endstream endobj 431 0 obj <>stream xœ36U0P0QÐ5S0Òf )†\…\`~. äpA$À´.ˆÎà WÈã*T02j5P05R0Ñ3J‰ä\.'O.}O_…’¢ÒT.ýp ".} .}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ð ëòÿ?4_¨ð÷wëü°\'ìÖ×õÿþo­ÊšgÍÿø0âÃö¶÷-æ·ÿž:»ûþÿ_ן\µÕûúðhNØ5©®ÿÿw…Á…ËÕS!+ PMÕ endstream endobj 428 0 obj <>stream xœ31Q0P04PÐ52U06W07UH1ä*䂊ä‚@±.ˆ˜Iäpep…+äq*™ Âz† Y ™œËåäÉ¥ïé«PRTšÊ¥TÇ¥ïRÆ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠzìì¸<]Ô,ŽðX]½­—®¯-ÙïýeÆ¿Žÿéÿÿ¿þÿÿÿ~rèÿÿ÷ÿ¿¿ÿþo üö?ÿÛ÷÷µ{ß¾}?xï08°p¹z*rr©÷TF endstream endobj 422 0 obj <>stream xœ36U0P0Q0S06P06UH1ä*äqs$ŸÃÓf@*ƒ+\!«PÁÈ ¨Ï@ÁÈRÁDÏPÁTÏR!9—ËÉ“KßÓW¡¤¨4•K?¨†Kߨ„Kß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ômýûõÿTI™‚«R®²·ìèçÑ1Øpè07‡Â‡æCü3Ÿýq:œrUw˜¼Lýïט¸\=¹¹# :¶ endstream endobj 419 0 obj <>stream xœ36U0P0bccC…C®B.7Hù9\q0m¤2¸Âò¸ Œ \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇåé¢ÀZrµ…ÄÿÿÿÇÙ?ñøòÿÿÿÿsÄÿÿ»Þÿ‚’­ýÿÿ?úW04pp¹z*rr‚:î endstream endobj 416 0 obj <>stream xœ36U0P0aKC…C®B.7Hù9\q0m¤2¸Âò¸ ŒÌ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶à€ŽÂ‡¹ÙnõÜ—ãìÿOY¤ÿäªNËùÿPðçé—ÿß01(p¹z*rr›Ê;¶ endstream endobj 413 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ@@)c=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmAÓ Y“ÿ ð7|ÕÿÿŸ;]ì|dì¿Zµ,újÇ\ç:ß‚M6Jéÿ_í ‹n¹ÂàÀÂåê©ÈȬðHÞ endstream endobj 410 0 obj <>stream xœ35P0P0QÐ5T01¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`b¤Öl®`¢g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚGA  Ç ”/ø>T½ä¿>Þû¿÷·­Ù‡¹þøÿÿÿäÿßß4Vÿݺ·lwfîÒ —óÝXc°áÐ †.WO…@®@.+ƒD¹ endstream endobj 407 0 obj <>stream xœ35S0P0bS#3S…C®B.7Hù9\q0m¤2¸Âò¸ L,\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…K*ü×ízýëõºýëvYìŠÛ7}é˪¿U@êõ×— êÿRµþ:Š©ñh¸rEšËøÉÆöÿƒ —«§B W ^M endstream endobj 401 0 obj <>stream xœ36U0P0VÐ5T06T01RH1ä*äósP ‡ "¦Â9\\á y\… F@­ &Æ Æz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-’bi‘¨ªª2Q?Äûû÷ÿqÚ¿¢Ls¹ì½î›œcçý{¿ýý³æè×/+s5M½ »vèp„A#ƒ—«§B W {@Ü endstream endobj 398 0 obj <>stream xœ35V0P0bS ²PH1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄB$”2Ò3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶àÎDM6Ñ;\+¦;êM_}ýåÿïÿƒàµ%~Üÿ±GY)ùÿ¹\=¹¹@ÊOE endstream endobj 393 0 obj <>stream xœ36U0P0VÐ5T06T01TH1ä*äósP ‡ "¦uAtW¸BW¡‚‘P«‚‰‘‚±H H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. jõ^þÿzŽíü xzþ û»ßÏškþšo}tÿ>stream xœ36U0P0bc##…C®B.7— ÌÏá2FÐ@*ƒ+\!«PÁØ@RFz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔžgÿUÿqõÿÿÿ¯ýÿ¿ˆÿ™ýÿÿ×}óÿÙ_þÿœ©tßüÿ2÷ýW[ÀÈ Àåê©ÈÈ¡OCF endstream endobj 387 0 obj <>stream xœE‹±‚@Cc7ÿ ““rÜ]0šˆ§1‘‰Á8©‰`Pœü'?È?ð3>stream xœ36U0P0SÐ5S02Q01SH1ä*äósP ‡ "¦uAtW¸BW¡‚¡P«‚©‘‚™ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ,Ú‹²æ¾Ïû}ûö}÷ßþûûïÿýýÿÿ¿þúëÔ¿é/³—.½&tÝÑ5dÖ‚L \®ž \\£d@ã endstream endobj 381 0 obj <>stream xœ36U0P0bcc#K…C®B.7Hù9\q0m¤2¸Âò¸ Œ€\”¡ž¡‚®HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. &Ê%Zìóõ™sŸóWÝþÿ¯ÿÃ@§µbÛט¸\=¹¹ú188 endstream endobj 378 0 obj <>stream xœ33R0P0VÐ5´T05W01UH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LM€º ÌLŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[$ÅbÂÆæµGáCóÅ1Ny¾ ÷.ׯû~ý]ÿ»þÿÿíÿ!`éÿÿqûÅ^Ͼ»ôVÌBfÎj=@(¹@ð8XÁ?U‹´ÿ  \®ž \\‹bR endstream endobj 205 0 obj <>stream xœ32W0Pa#Cc…C®B.7Hù9\q0m¤2¸Âò¸ Ab  e®g¨ k$’s¹œ<¹ô=}JŠJS¹ôò\ú`Ò)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææÛÙqyº(¨­yÜ"7ÿèOSïo5p04p¹z*rr®E)Æ endstream endobj 202 0 obj <>stream xœ31Q0P0QÐ5T0¶T01SH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­@Íæ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ôbåfá-ho½¸À¯‰ÿB­úëÞÿÕÿ~$[µ5eu8æÄºáG5>ïÛ‡ò\#ÙžÍöïÞß¿W×ß ¸ÔÆéêŸ%`Tð€‰AËÕS!+ b[EÔ endstream endobj 199 0 obj <>stream xœ35Q0P0VÐ5T05V01SH1ä*äós¹À9\¦(œÃ•Á®ÇU¨`j ‚&æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-lrИ°È ù¿[#ó%Þo÷f×ÿ®ÿÿömuœDœýÿ'Ò'ôüYŠ|çx¡Î!¾`Â^ýõñëìöÿ­»æïøÆ¤PäáÞ6¡Š¤Ý6Ž œ1e`ärõTä ä€I endstream endobj 196 0 obj <>stream xœ35S0P0a3S…C®B.7Hù9\q0m¤2¸Âò¸ L@ŠÀR¦z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔìtT<–ÈÞ"'Pe"bËÄöE¸Êqo|{yïîßûÿÌZzëmá×õ_×GEÅ/زëÒ¥ QQQÜÞŽ™I/Kvy;†M_ú²Š³dºó¥ë±¥×¬þ1(0q¹z*rrÉJ endstream endobj 192 0 obj <>stream xœ37V0P0QÐ5T07P05QH1ä*äósP ‡ "¦Â9\\á y\… ff@­@9S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôr1k,œ³ÿÿŸYSšk þÇâÿý½þz®t¼—Ü /ï¶oÞc v$I3Oaa`ärõTä äÃP‡ endstream endobj 189 0 obj <>stream xœ3±P0P0b #…C®B.7Hù9\q0m¤2¸Âò¸ L \”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEá§)‹USý‚àÇdÆý  \®ž \\,HJ6 endstream endobj 186 0 obj <>stream xœ32U0PÐ5QÐ54W"S3…C®B.¨H.ˆËá‚ÈiDWW¸BW¡‚‘!Ðsc]c=K¤ž¡Br.—“'—¾§¯BIQi*—~8P—¾P—¾S€³ãmÈeË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(¨-lˆp|ùÿïƒÿÿ’x)bÿD¨à? x¾ožÞÖ+5M½ï²¶ióh04pp¹z*rr‡dE endstream endobj 181 0 obj <>stream xœ35S0P0bScSs…C®B.7Hù9\q0m¤2¸Âò¸ L \”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAÑÿ䊓‡Ý3ä×ýû÷ÿÿûÿÿëþ9–ÿÿÿ_þÿ×ÿ×}üÿÙà?ÿûÿûÿ·þÿÿúØþÿÿãÿÙ’ùõrÂ…ŽþL \®ž \\‹AS— endstream endobj 178 0 obj <>stream xœ33U0P0UÐ5R0µ¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`jÔj `f¨`ªg”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ @Ê%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-¸3Gú óAy¹&Þ‡,U¾Õä&Wù¾4¿üºÊ÷ÿ’û¿îû¯ýÿoûåÿÊÿÚêØõÿßÇ¿]úÿwf~캯ۦÿÎÌ]ºmÚ­ˆ\Ö ‡"[Äx:°08p¹z*rr`†Sì endstream endobj 175 0 obj <>stream xœ36R0P°PÐ52P02W03RH1ä*ä‚äi HDLƒÄs¸2¸Âò¸  -ºú,ô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-8¶¶^ºôWWÿÒߪëëð¿÷ÿÿöÿÿÿÿ§©ÿÿÿßþÿ„ïëoÿÝ»ÿöíûùùùy˜¸\=¹¹ŠM5 endstream endobj 172 0 obj <>stream xœ32V0P0WÐ54S04W06SH1ä*ä‚ärEr¸ 4H<‡+ƒ+\!«PÁÐ@MÌõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPÛØÎa±ÿ§©7Nýÿÿÿÿ\l‘‰¯4H³©ÿ[úëëú¨—™™¥ Œ\®ž \\‚5Ç endstream endobj 169 0 obj <>stream xœ35T0P0RÐ5T01V07SH1ä*äósP ‡ "¦Â9\\á y\… & ­ ææ Fz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 8ÿÿÿ×ÿë¿þ­-½£'(rüϬgžÿÈàOósãÒíÿwõþnÙv(Z´máæKX¸\=¹¹¨RÚ endstream endobj 166 0 obj <>stream xœ35R0P0QÐ5T01W05UH1ä*äósP ‡ "¦Â9\\á y\… &Æ@­ ¦f &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xÒÐ&#(Q#Xо¨`/ÿyÏ_µuóÜÿûa…¥©‹DÆ)‡£ÍߨîmßÞöáG>û‰ ö §V³=<Ç÷öïý¯µëÃo\;0埢–‹†.WO…@®@..jNˆ endstream endobj 163 0 obj <>stream xœ3µP0P0QÐ5T05V05UH1ä*äósP ‡ "¦Â9\\á y\… &–@­ ¦f &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸ÓƯàX£ð¡ù ?‡B¾§­ê%ïKÿ/}ýõ5ûÖ·­rûÿÿÿrèûÿußgÎß¶oÛõ¼m×su·l“ðæ1˜vDÇ`CbŠô"&.WO…@®@.1×HÁ endstream endobj 160 0 obj <>stream xœ36W0P04Ff †f )†\…\`~.ˆŠäpAdÀ´Êà WÈã*‰Ô)C=C]‘œËåäÉ¥ïé«PRTšÊ¥”æÒ÷“NÎ †\ú.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ØÎŽËÓEAmYÅCöåË?Ö«­¬»vM"€‘A€ËÕS!+ ˆ *Q endstream endobj 156 0 obj <>stream xœ33P0P0bScC…C®B.?H‚r¸ 2`†Êà WÈã*T01SiÉ™ë*èè™Br.—“'—¾§¯BIQi*—~8P)—¾H%—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQP[ppFN‹Ü< ˜ÿòÿÿÿÿ®¿Í‚ÄÖþÿ`ð„Ç_I£ÿÿ“+êìÿþ©ä˜ÿap`árõTä äf, endstream endobj 136 0 obj <>stream xœ3±P0P0UÐ5T01R05QH1ä*äósP ‡ "¦Â9\\á y\… Ææ@­@Í@ez†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨ml8Åz°éSÁ?í_¯×‰Ç艳žcËÿÿÿ¿ª?Kç!þÎG5Âü-÷}¿¾Ó¿ÿýÏÍ µ6Õÿ¯V\ŵ#t×·i·¢Ù„n´¶‰ID;Ä08°p¹z*rrkHß endstream endobj 133 0 obj <>stream xœ33R0PaSKSs…C®B.7Hù9\q0m¤2¸Âò¸ Ab ]æ Fz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÃ¥ï&œ ¹ô]¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚ÚŠîÿŸ4N2Ýð{£»ë×íµ[¿l{}=Ww××Ûk·ì-{]²;¶ëuíþÛ·ÿÚÅ–¬ûõeöÕ}{Õ¾Ö­÷Ü[7ûR~ü²/³¯¿Ü}¨¼‰Gá‘„’€ù.WO…@®@.aÊU— endstream endobj 130 0 obj <>stream xœ33V0PaSsJ1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÔÈë2Ö3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠”¸@ÆÒTÒ¢Úáð‡ûm÷çßþû÷w üÿ?ÿÿ ¯ÿÿÿ²ÿ×ÿë¯/ý¿ôe¯¾÷¡8¡Ë]MM  \®ž \\gŒPÎ endstream endobj 127 0 obj <>stream xœ32U0P0b#KSK…C®B.7Hù9\q0m¤2¸Âò¸ Œ,€\”¡ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ7ñs|l_"îiÿ²~‰Dœýøh5}rà<žúÿÈàò)Áÿ Œ\®ž \\¬D endstream endobj 124 0 obj <>stream xœ31Q0P0RÐ5T01T06SH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ Ææ Fz ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(˜vþ™µÙá€î²íÙ»îí¿íýïzÕÿ\ýß±¯ÿnÙÿþ®þ·KÿŒÇ·þ®ÿ»¾ƒ¡ËÕS!+ 0BA9 endstream endobj 121 0 obj <>stream xœ31S0P0RÐ54S01R06WH1ä*ä‚ärEr¸L4H<‡+ƒ+\!«PÁÄ@MŒô Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[R‘–ÐÌa£œ"×Äcijåû&¸Öüê—ÿuÿëÿ¿ýKÿÿ›þwé×[ߦ³_?Ì¡Ïc²·#ŽG¼$÷oŽGÂý, \®ž \\ KA endstream endobj 118 0 obj <>stream xœ³0T0P0bsKcs…C®B.7Hù9\q0m¤2¸Âò¸ ÌÍ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEó9üx„›{™ñ(|èæøhËTÂùäÊ˨ð]Qñ"GͯÖÿ ÿµþ?&øh*É–"‘ÿÿƒ —«§B W |L• endstream endobj 115 0 obj <>stream xœ3±P0P0bS…C®B.7Hù9\q0m¤2¸Âò¸ L \”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+9.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmᬂҿ¥×cëcK¯»‹¯÷¾ôõ˾½úÞ×/A©__@T×£lÞŸ¦¬¬Ìÿà'»çF.WO…@®@.t»CZ endstream endobj 112 0 obj <>stream xœ3±P0P0QÐ5T01V05QH1ä*äósP ‡ "¦Â9\\á y\… Æ–@­ ¦¦ &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-xò°C9"Âñ¡¼Dç^µ_ùÿÞûÿ‚¬m{—Û²ëÒ¥CÜŠ_^7ŸÈ±“¨®}û}ûß³íæéÿý2åjvË´ëÛ¦<&v4±µMÌQA€‘ËÕS!+ SDO endstream endobj 109 0 obj <>stream xœ37S0P0bs#Ss…C®B.7Hù9\q0m¤2¸Âò¸ Ì,\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OS¶µëÕŸ<žzÙõÒÿ¿[öÿÿÿíÒÿÿÿo{#8¹úÿ19@˜°Öëÿÿ÷]ïÿ¡9Ób.ó‰‚ù[8¸\=¹¹ŠJn, endstream endobj 106 0 obj <>stream xœm‹= Â@„ÅrN1–fwYâ„I ."&U ±RA$‰DMëå<‘^@_llœÇcø˜;¦¦íÞÒŸpoРà _.a®ÅŽ(X£¡ÕìN"뎴§g¢©Ï]…ÈA¹o—öUHj!M¨(‹i ’ÞB¥*ŽSÁ,Ô’#IâsÙVõU&a—ðupýþ¯çðqï±¹cŽ8”=á endstream endobj 103 0 obj <>stream xœ35V0PaS ²PH1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÄ\$”2Ö3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶àZZ›Öÿ?ÍNæÿ!àDÂ?ùù?Ç,òŽìW¿Ì_ÿWÿÿcÜ?ßðÿûëÿn½[v=×¶ã“)Û‡£‡žú08°p¹z*rrvÑM‹ endstream endobj 100 0 obj <>stream xœ33P0P0UÐ5R05Q0µTH1ä*äósP ‡ "¦Â9\\á y\… &– Íf† ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚säY¤²R1]àpë‡Ù–Ù/Ô¬ü=__ªòÿåÿ+¾ê׫ÿÿ6¶ÿÿÿÏ7|Ãþ¿¿ÇGׯ»ÿuÛîÌüèìmÓ{稶Ix'ŠHãÑ‘Ð`hààrõTä ä²?Lg endstream endobj 54 0 obj <>stream xœ3¶P0P0VÐ5R06Q05PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­ ¦@­z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ;?&4âwo­âü0Á饯_ög{Ô{ÿÛ3ý‡ã±*ß—æ"wãîÖ¾ÿZÿÏ7üÿÿ}_ÿ½¾›»îeîÒ —n¬1ØpÐ…ÁËÕS!+ ¢hK endstream endobj 51 0 obj <>stream xœ3¶P0P0bcSSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶`Á»@ðÓ륯_ÖVýŠÛ7ýúú¥__Vý­ŠÛ7}ýõ¥Ç´I?¹b"'ÿÿÿÿ¿6MX¸\=¹¹¿~Fµ endstream endobj 48 0 obj <>stream xœ3¶P0P0QÐ5R06S05PH1ä*äósP ‡ "¦Â9\\á y\… ÆF@­ ¦F &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôvœ9ü„Çüßô¯g˜K¯Vý ]7Ee×uïµ%û½¿lýéoý××_ÿÿ¿þx48¸\=¹¹ºõAO endstream endobj 45 0 obj <>stream xœ36Q0P0RÐ5T0"…C®B.0?Hr¸ `(œÃ•Á®ÇU¨`d Ôj `lª`¤’ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚Ú‚¶¤ƒÌ‡l ¾˜/¾[«¿l«ü+ûÿÿ|ƒÿz¿ëÝöØ-Û.æ:,°!aƒ—«§B W ¥¬9û endstream endobj 42 0 obj <>stream xœ31V0P0RÐ5T01P06VH1ä*äósP ‡ "¦Â9\\á y\… Æ@­@9#=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô–TÈ|äérÿ3kNSÝûÿÈàßþÿ¯÷ߪ^Ì1AúFfÁÑ‚Có¸\=¹¹Î&A† endstream endobj 669 0 obj <>stream xœ35Q0P°PÐ5R0µ¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`jÔj `f¨`¡g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ @Ê%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œ–!Ï£ÚÄ[rãBà …k“_ÚMþµoúÿkÓÿÿº^ÿ·¿F^™qŸ£„mû½ûÕo~?‘Ã>Á`¾âìeòõ÷õµÿý·ÿÈþ/»×†oÙíÝ6űeùB®Y ²,ap`árõTä äHRS: endstream endobj 666 0 obj <>stream xœ3³P0P0b3#Ss…C®B.7Hù9\q0m¤2¸Âò¸ L-\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OÕ„ƒ¬,|2³:Xìy×Ýßÿßýÿ@ð+þoÕ¯¸é ö=âþa Åø#ÿö·¿û÷çÿÿ’þúýÒ¯¯êsº8µry;301(p¹z*rrþÈL¥ endstream endobj 660 0 obj <>stream xœ36V0PÐ5"sSK…C®B.¨H.ˆËá‚ÈiDWW¸BW¡‚‰)Ðs3]=K¤ž¡Br.—“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶àZłƗ%Ï{Úm™þõoö×8‰8ûõñÿ×Gr±ßŸpÑÿÿß*0ª_ÿÿ:]úÿoëéýœ×æK}ý0irˆ6ŽÁ&.WO…@®@.-iP( endstream endobj 657 0 obj <>stream xœ35S0P0UÐ5T05P03UH1ä*äósP ‡ "¦Â9\\á y\… &¦@­@93S=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôt0d nrâç°•láç0_rßÉý}Sÿ¯þÿ}=oõ:©¯×gæ˜ìÈÌqºu#š?ŸÇîÃ<á‹Ë>4ñ¾dûÒüåÞB qŸÏÜ¿ú÷¿W¾á_ßm»¾eÛ¥‰ºÍ,Û´yt 6:¡çÂàÀÂåê©ÈÈ›•W} endstream endobj 654 0 obj <>stream xœ3²T0PÐ5SÐ54S02R0µTH1ä*䂊ä‚@±.ˆ˜Iäpep…+äq*Y 0P07UÐ5Õ³Iê*$çr9yré{ú*”•¦r釕qé{Uqé;8+ré»DrÄré»é;;»¹66úÞ@í\úÎù9¥¹yÅ@-vv\ž. j ç>stream xœ340T0P0bKc #…C®B.7Hù9\q0m¤2¸Âò¸ ,,\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Om…k>Í22–¦,VM ÚbëxìyäßþöwþíïßþýÂÿßþÿÿÿþÿÿÁ þÖƒðë¯ÿÿM‡À¥__Výð¾'ôazSœ£CGGÀ‚KS¤°08p¹z*rr!ŽeW endstream endobj 645 0 obj <>stream xœ-L»‚@Ôv*?a~@—K ¡àx1&GEa¬ÔĂàòÿ®H33»óØZ&´\›Œ©QJy3ðÿĉSv˜½Yd*hÙc ÝéÀoÂn&KñQzˆ?ñóïVC-¤ ŽR ’ ¤çj=CžËQÛ÷ìÆØ¿µQðÛ°\¬°÷lÐà ²&#Œ endstream endobj 642 0 obj <>stream xœ31P0P0aK …C®B.7Hù9\q0m¤2¸Âò¸ LL@:R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔNóÓi®úÐ|¨ÂÅ¸Â‘å‹ø’¹Uñ/ëßfÖ]oïÿG&sÿóuUl¬ÿ|Tdü€…ÁËÕS!+ pŠRá endstream endobj 624 0 obj <>stream xœ31P0P0WÐ54W01R06WH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ ŒM@úMMÌõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[4›U YáHÆ‘ËK³½_ÿº¾6³þÿªã¡ñëY½¿®¿þzmé0þúÿßþ¸Ýë³· ænïúúëù««u{õ×Moò¾Y&tX`ÃA.WO…@®@.‚'PŒ endstream endobj 618 0 obj <>stream xœ3±T0P04PÐ5R0"S…C®B.ˆ@.ˆ åpA¤À4P<‡+ƒ+\!«PÁĨ¨Æh„ž!PH$çr9yré{ú*”•¦ré‡Uqé{qé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ æx(|h>d,QÅrO¨–µ*núÅG¯ëöﺾnÿÿ«µZ7Ögêì zíÍ™"±Þ1Cÿ„ù2éÛïëßÇŸ½7Õñø_WÃY¦GeÍŠ]ºmÚ Ç§ÃÜ<x8¸\=¹¹1O endstream endobj 606 0 obj <>stream xœ340S0P0bCC3 …C®B.?Hù9\P ÃHgp…+äq*Xš¹ 9=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. ŠŒ^×·>¹¢–Å9ÛW:þÿmïÿ·ì‡Qÿ¿]úÿ?WF!K)d)\*’öÿÏþÿ Dt^Ÿ“wýwì.WO…@®@. LwE endstream endobj 594 0 obj <>stream xœ3¶P0P0WÐ5T01P06WH1ä*äósP ‡ "¦Â9\\á y\… ÆÆ@­@9 s=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÍf=tˆG}±°ßÔ/ûö¯ýµW÷ÿ×ã¡Ñ¯ýÍþúëul=×Mÿÿ+þWÜîë™yÓnx'mHXÀÄ Àåê©ÈÈ·pCy endstream endobj 591 0 obj <>stream xœ3³T0P0VÐ5T03U05VH1ä*äósP ‡ "¦Â9\\á y\… fF@­ ¦& Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(h2ÖÿŸ8—YãÂ:‰Øu_ï¿Þ·ûzöÞ²ýo¯¯ûzë=XhoH¨üˆw|ëÿ­¿ã!ÄF.WO…@®@.ÑãJâ endstream endobj 483 0 obj <>stream xœ³4T0P0WÐ5R°0V044VH1ä*ä ä)HT ÌJäpep…+äq*˜›u%MÌõ r@"9—ËÉ“KßÓW¡¤¨4•K?¨ŠKߤˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææõØÙqyº(¨-¸PÊ6“™ëƒKŽô!~¹¾FçC*ŒŒ/ò9Ô¾ó{þ_r¯ñ>ï—÷û÷ûýýÿÿúÿÿïV}[}˜û`Óšð_××ê_zíí½V—µe‹˜Ð “é'4Ô=,JàIøÄ»5áðaþćûäîÝ»_]ûïþ÷¿ïÿßÿòýòË/ÿ»ÿ_ý7\mu¬~èÖ“nÄsênÙ&›»tCfŽÁ4É &¬›æXØpè07·BÌ>stream xœ%‹? qÇ 2|_„žÉÆs¿+Ž’äKŠÉ ›PÊù;²[ì^ƒQÞ…ºR2%“‰äq·|¾}ÿ:i¤S\Q*CIƒ: #øÞ‘ÀAPø*±ƒš4ÀˆR†\5J¦IO(©m lÕh:žuÁM+²ê&)p±¥ Ùà2›fYl=›åª¼ÁæÐ™¹ƒ‰\r9XEŠ…ÖŸÍªÙß.C{÷öúÇùA°N¡|%‹hà©XOL endstream endobj 372 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ÒõóA–ÿÿÿÿó ºu\þ?*øÓ"ø«:žA€‘ËÕS!+ (>d endstream endobj 369 0 obj <>stream xœ31Q0P0RÐ5T01V05TH1ä*äósP ‡ "¦uAtW¸BW¡‚‰!P«‚©‘‚‘ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+9.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚŠé<ød,MýÕ(þ±oû»¿þïþÿÿÿÿÕÿ[«ÏY§½N¼öóAù¶¿@‰ÿ ðéý ù/¬wÅŽµ¿&‡Ì:b°€‰AËÕS!+ JELO endstream endobj 366 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-@@)#=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmE »ÀÃ;³–O~$6OúÛß¿ûóÿ×ïÂÿÿoÿ‡€Kÿÿǯÿ[··V?ÞûÒ‡i"¡N“CDX¸\=¹¹OG endstream endobj 360 0 obj <>stream xœ%‹1‚@Eå?åTv²°¢†Hˆ$ƒF c¥&€Aå>v¶6VÜ„ÞK¸ŽX̼üÿfL“t²HNhhÒHÒÞ@‰6ç .2üEK®3‘R’äˆ_õ,Í 9Ö,ÚåpCˆ0¢ë¹:@¤l!ívc c@ßBÂóޱm‹% Øx§¬Ê‹ ;BŸú¯ÇìÙ[MÕ'Z×J©7jjuonÝaR‚_5V endstream endobj 357 0 obj <>stream xœ31Q0P0bSC…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ@@)c=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pVR.ц\±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÅr&Ö?³–Nzÿ|’Ò¿ ¦[Ý'‡,`bPàrõTä ä»)@ endstream endobj 354 0 obj <>stream xœU‹±‚@DµÊO˜ÊN—K8 ¡à€x1&PQ*5±à0¨|”þ‰å*³Éî›Ù™fÀˆSOGó¢0`vf«ƒþƒØÃ { Ô§ mÕôòûìYˆ=òõ¯Æ‡ {†¬2Tü¤´RŒ)½¬’D¾ 1÷ntýÓ7Ò6çú]|?Õr±BaY£ÆdÁ%É endstream endobj 351 0 obj <>stream xœ37U0P0bsCSs…C®B.7Hù9\q0m¤2¸Âò¸ Ì,€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O…û÷>¹âæl¾;{ÿlÿïÿþç£ÿß ¬ú÷¸XöõõÁàÿ÷ï—+æ2.ß÷ŸA€‘ËÕS!+ Û]Û endstream endobj 348 0 obj <>stream xœ33P0P0bSSSs…C®B.7Hù9\q0m¤2¸Âò¸ L@:RÆz† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]¸š Là©‘þðïßÿßÿßÿÿ_Ó¾ýÿÿÿ'®ÿÛÿëGœýÿ'uò÷ÿ×Åþ€ˆÿÿ9±õ`apàrõTä ä@óJ† endstream endobj 345 0 obj <>stream xœ-Œ±‚@D-Í|ÅTÆ—3P ˆc…±R À Òû;~à‡x*ÍÎì¾™ WôÑ[ ´Å£Bÿ¥ý©bƒ‘&p挚zêÐ=ð©-Ô¹yh‘ZˆÝò~NÚ… kjHZ*H¶Sð÷BŒ)ÜZƱlè9b.ÍÐv7×HØŒ³gþ~Í')rË >hæ&e endstream endobj 342 0 obj <>stream xœ31Q0P0bCSC…C®B.7Hù9\q0m¤2¸Âò¸ Œ-\”‘ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+)—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶bŽ1ëŸYëÜçÿ‚'¥¿êÿ¿­äÿ7}é˪8±~ùÑÿê÷}¿ÖÚû~¹ÿö·? ãxѺü§©ç †.WO…@®@.dK› endstream endobj 153 0 obj <>stream xœ34°P0P04–f †Æ¦ )†\…\`\Êá‚Ê@*ƒ+\!«PÁÂÈ5Ëê*èè™Br.—“'—¾§¯BIQi*—~8P-—¾H)—¾S€³‚!—¾K´!—A,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQP[p­”7’çh…’™ä‡͇øÊ2µ/j8'' ïÈöeö[…{“_š_® _]k7õ÷Ëø©üG~äî5ø÷þžøïuÿÿŸ\ÿ¶lÚõ¬ ‡>þ÷þ¿¶êúúKõ¶ì÷ö^«·eË®K—.½övÌÌ,]º` 숂޶ýÙK/½T]ú²*núÒ—úÜ—Öê{–ìa%.ÇQ¯×í¢øu»ŽýÃàÀÂåê©ÈÈmØô endstream endobj 150 0 obj <>stream xœ37V0P0b3 s …C®B.7Hù9\q0m¤2¸Âò¸ Ì@Š @R&z† ºz–@`aªœËåäÉ¥ïé«PRTšÊ¥TÊ¥ïTÉ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô>stream xœ340R0P0UÐ56V°4U0·PH1ä*ä‚ärEr¸,4H<‡+ƒ+\!«PÁÒ@ Lõ A’@29—ËÉ“KßÓW¡¤¨4•K?¨ŒKߤŠKß)ÀYH¹DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏÚx™ž~pøÐø½%@ÀFÁáάN‡Ù‡4ó'Í~¹O¸Öü¿ï—ûñÛÿoÿÿýÿÿþÿÿïý(ø²ÈÝ[ÿëëÿ××pËîßÞ—Þê]z¸ôVÌõ Ó7â¾éÐX‘$Þ„ͬN$\=þ >stream xœ346R0P04PÐ5R042b…C®B.ˆP.ˆ‰åpÁd!, \WW¸BW¡‚¡¡!ÐB !z Y ‘œËåäÉ¥ïé«PRTšÊ¥RÇ¥ïRÆ¥ïà¬ä¹DrÄré»é;;»¹66úÞ º@çüœÒܼb&;;.Oµ~Y¼1ÍŠ­BD"Ù-máMhŽpU°ŽpQçMdb“çÈMdâ]ËrëcÛaYõó&_ªò÷|i«·ÞóëÕ—v»öíúZ[û²~ýýØúïKÿÿi|pmÿßúãÿàäªÿõÿ÷ÿŸ`cüuÿÿýû¿ÇG×ÿ]÷uÿ­÷±ëîæí½vëÝ´ûۦ݊ÎÌ]w+šWwË6 oÞÛxTÛ$¼y$§2Ä&Nix˜Øa°áÐ -®'’<)œ¯8¸\=¹¹7(Î endstream endobj 97 0 obj <>stream xœ31S0P0QÐ5R01T0µTH1ä*äósP ‡ "¦Â9\\á y\… Ææ@­ f† &z ) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïତ\¢ ¹ b¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú³LM‡x š?ôwI½PÈ-™ñe¾ç¯Úøóìë×ÿ~“rÕîGµU[·æÁšfþÄ7¶ímîñ>‘X¯¸Ù§±ùíû}÷yÿþ¯¿úënÔݨ[ÁR!SÙ[:°08p¹z*rrõ›R endstream endobj 94 0 obj <>stream xœ31R0P0VÐ5R0¶P05UH1ä*äósP ‡ "¦Â9\\á y\… Ʀ@­ ¦æ Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô´%|pøÐ|ñaûß—æ f?üÅ»ïÿÿÿ×gÕ·e×…Õ +|’²Ïç±ûöíÿþûûM?4ÿÓÿuÕs÷ƒI·½ó²nHÔ1äæÑ‘Ð`hààrõTä ä=—NM endstream endobj 91 0 obj <>stream xœ36V0P0bc 2WH1ä*äqs$ŸÃÓ@*ƒ+\!«PÁÈB$”2Ò3TÐ5Ð3° S…ä\.'O.}O_…’¢ÒT.ýp R.} J.}§gC.}—hC.ƒX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶¬"¸'‘½%¯ŠÓ(ëeÁׯMIÄòÿÿú~Zu?`bPàrõTä äæ; endstream endobj 88 0 obj <>stream xœ36R0P0TÐ5T02W05TH1ä*äósP ‡ "¦uAtW¸BW¡‚‘P«‚©‘‚¡HHÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôz7Õÿ¿þ?þoéõ¥xyµÅ6œÿ¡à>ˆü»õë®ïÑÙmÚl" ,\®ž \\(ð>¤ endstream endobj 85 0 obj <>stream xœ36V0P0VÐ5T0²T0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ff@­@Í@i=C HÎåròäÒ÷ôU()*MåÒ*âÒ÷ªáÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔÍœápãÁñÍ/í&ùøïÿÃÉ!üs"lÛ··}¸çÈqÂÐÆÆìýí£î/åÕÜc0Õ«±©ƒ¡ËÕS!+ U@« endstream endobj 82 0 obj <>stream xœ36W0P0VÐ5T06Q0¶PH1ä*äósP ‡ "¦Â9\\á y\… Ɔ@­@Í– Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬ä¸DrÄré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ž%92²1øÐÄöeò%ÏúK_e‡í©_ñÿÿOÓ¸ÿ»ßí^{=Ww˶K‡¦I´¶q1(0q¹z*rrÌ>^ endstream endobj 79 0 obj <>stream xœ5ˆ1 ƒ@D·ž3XÌâþŸ@d[5-±²©T°PAIjsóä+„aÞcæx¢0³ê™­bƶFcà€ýÝ%¦5'Ìv‰%0K•14#òo|-ï¾f€¿nÈï¾|(ä‰X2q«û~þY]âp‰¬PáÜÇ à endstream endobj 75 0 obj <>stream xœ33U0P0bSKSs…C®B.7Hù9\q0m¤2¸Âò¸ LÍ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OU…º||2³:>stream xœ31S0P0bScs…C®B.7Hù9\q0m¤2¸Âò¸ LŒ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…‰ó<ö T™ˆØ:×nûÿíÿ­o++þOPÚÓÎÙôPVžc‚¾c…cmULmýÿµkf­ß&PÍ£|âŠô–‡*901(p¹z*rrKGC endstream endobj 69 0 obj <>stream xœ3±P0P0VÐ54W01S0¶PH1ä*ä‚äi HDLƒÄs¸2¸Âò¸ LŒº LMŒõ Ar@29—ËÉ“KßÓW¡¤¨4•K?¨ŠKߨˆKß)ÀYÁKß%ÚË –KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸Œ[¡EÎÅOœÃOcNÓ …K—r_×Í]<ú?TýßzoÛ¥‰º1·¸=&þ©û}ûÉ ;‡C‰ol÷î-˜×s ¯I!nâÞêÿ·N®ºž½mÚaÎÄf1‰Ö61GÓ†.WO…@®@.‘ÃSÎ endstream endobj 65 0 obj <>stream xœ³´P0P0SÐ5T°"…C®B.0?Hr¸ `(œÃ•Á®ÇU¨`a Ôj `iª`¦’ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚ÚÂ5¥l+Ù¶Vò\Ô¨p|(ØÔ¾Àáð!éK¼YîM®ò}i¾äÞÔW¿Âß/­Ú¾þíËú×µvûÿWýÿýõõßÿÿåüÔcoûÿÿ§iüÿ÷õÿïýB¤tÿÚ×ù_o¯½¾eûÚ­·½su·l»tÛ;±eÃa΃iM‡éróèHè´ÍÚÓœÀÈ Àåê©ÈÈ_WlX endstream endobj 62 0 obj <>stream xœ34°P0P0SÐ5T040T°4QH1ä*ä ä) @TÂJäpep…+äq*Xšu€(3=HÎåròäÒ÷ôU()*MåÒÊré{€I§gC.}—hC.ƒX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ØÎŽËÓEAmÁR¶“¼*3**tXð%‹ç=‡ÂáC_ò=÷ª}™} HXÿ/åGÿ÷ÜÿußüèÿÑÿÿæ/âÿÿÿYÿŸ¦Q@òÞîøÿ÷öÿÏÕÿ¾þÛ¥ÿUoË×nÙ¾îz®îë\Ý-Û.æQ€>stream xœ3±T0P0bS3s…C®B.7Hù9\q0m¤2¸Âò¸ LŒ€\”±ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµü×íÃý¸ýqÓ×__úúë˪¿UpÎë—µîñ#W¤Ÿ\1êïü6Í\ÿ¹\=¹¹'ÑO endstream endobj 35 0 obj <>stream xœ3±T0P0VÐ5T01¡C®B.0?Hr¸ `(œÃ•Á®ÇU¨`bÔj `b¦`¬g”ɹ\Nž\úž¾ %E¥©\úá@E\ú@5\úNÎ †\ú.ц\±\únúÎÎn@n€¾7P7—¾s~Nin^1P‹—§‹‚Ú‚ƒ3 Yø9>²·pHTù¾4_ror•ïëú—ækÿ_~]ÿÿOùÿÿÿO®ºþwÝ×_o½]÷uÛ´[Ñ™‰[Ä6E$‰9v`apàrõTä äŸÊI endstream endobj 32 0 obj <>stream xœ35Q0P0VÐ5T05P0³TH1ä*äósP ‡ "¦Â9\\á y\… &æ@­ æ@ýz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¶ãMþij÷û? ü«°ç¸qø‹@âƒÂ5¹_kÍ/ÿýÿöÿ÷ÿûïCÔ¼¾þý_ýßÞ¯·>è*ÙµEÜwé“]<M/;"šY¹\=¹¹“ÍWÈ endstream endobj 29 0 obj <>stream xœ3±T0P0QÐ5T01W01UH1ä*äósP ‡ "¦Â9\\á y\… &Æ@­@Íf &z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-hkÜÄ!'x°½…Ã|ÁìKùÍù~¿óÿÿÝÿmÁžúÿ'2.+6ÎPj?d,Ü"Þ"¾ôeUÜôõׯÿ¿þÿÖ“«­ß}—îúwÃsëa…EŽšNØÌ£ÁÐÀÁåê©ÈȉÎOà endstream endobj 26 0 obj <>stream xœ31V0P0VÐ5T0¶T01UH1ä*äósP ‡ "¦Â9\\á y\… Æf@­ &f Æz†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-l6ðpøÐ'Páaðeö¥|ïKùÑ/¿~Yÿo~üñ–3ÒêŸ\­ßÿÐí_÷vÇîº[vé¶7oË6 … Ib \®ž \\0ÆD— endstream endobj 23 0 obj <>stream xœ3±T0P0UÐ5R01W03WH1ä*äósP ‡ "¦Â9\\á y\… &F@­ f– ¦z†@) ‘œËåäÉ¥ïé«PRTšÊ¥TÄ¥ïTÃ¥ïà¬`È¥ïmÈeË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô66\ù#¯Ê¸ÿËþu;2cõV–Æí›~%èe¦ÓÚ’]×½×–ì÷ŽÛú·êú××_ÿÖÙÿ?þÿÿëÿàÛ†C  \®ž \\¥Jo endstream endobj 19 0 obj <>stream xœ36R0P0b#s c…C®B.7Hù9\q0m¤2¸Âò¸ ŒŒ\”‰ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÅÆ"õ'W~øýŸ0xÈ.‘€…ÁËÕS!+ ´=M, endstream endobj 16 0 obj <>stream xœ340Q0P0bK3 #…C®B.7Hù9\q0m¤2¸Âò¸ ,,\”¹ž¡‚®ž%X˜*$çr9yré{ú*”•¦r釕ré{Uré;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.O%Æé¿ƒ²ôœÅ¾næ\ÌYÿïVüÿÿ¿3ëÿÿ»ôÿÿÿÛ¦ÿÿBá Êc*† a3Lôÿÿ—[_þ›íù}¹Ðñ 1G×ÿg`ärõTä äŠL endstream endobj 13 0 obj <>stream xœ31Q0PcS#…C®B.7Hù9\q0m¤2¸Âò¸ ŒÍ@@)=C]=K °0UHÎåròäÒ÷ôU()*MåÒ*åÒ÷ªäÒw pV0äÒw‰6ä2ˆåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j‹íD>ö(|è}ÁÑVåäÊK/½¿·¶–_>þÿßúÿÈ ÂO%!þ ƒ—«§B W 9#Cr endstream endobj 10 0 obj <>stream xœ³0Q0P0SÐ5R°0V°0RH1ä*äósP ‡ "¦uAtW¸BW¡‚¹9P«‚…‰‚™ž!P H$çr9yré{ú*”•¦ré‡qé{Õpé;8+ré»DrÄré»é;;»¹66úÞ º@çüœÒܼb ;;.OUÅUÞŽkd,ME&°°oqt2gûÛþpþíÿ·ÿýÿþûÿ ðëë¯ÿ—€Äñ–½ú@¨8çcÁÎéìÛ¶¿ýÍûÛß÷ÿÿVý?˜üù÷ÚïµïIâ¦Ýß6MšÓs…h×ÁVF.WO…@®@.rºnŸ endstream endobj 750 0 obj <>stream xœcd`ab`dddwöõõ441å~H3þaú!ËÜüÓëÇÖ•ß}7ü®Ãÿ]C€™‘ÑÍ'Ú9¿ ²(3=£DAÃYSÁÐÒÒ\Á17µ(391OÁ7±$#57±ÈÉQÎOÎL-©ÔSpÌÉQé(VJ-N-*KMØéœŸ[PZ’Z¤à›Ÿ’Z”ÇÀÀÀdgÃÀ Ï ²‹=|åFßP¾ÿÌœÇRüX;ŸñÞïÌ?Í¿WˆN›0yB÷ôîéÍ&üÙ÷}¦DݤÎîŽnކ¦¦†¦ ­3[ä,üÝóˆk[ÚZ»›$¦4Mëëíž4CÓ¼m¢Ó'NšÐ=cZÓ”†ŽÎî–:¹?û~Ïlhkn뮗쮟Ü6­íP@bFKow_7Ç´)S¦Mk™P?QþÏÂï=¬|¥ Ú/ü½lÚ´l¿§±¯âºÌ-ÇÅb>Ÿ‡sÉD^â–= endstream endobj 751 0 obj 353 endobj 752 0 obj <>stream xœcd`ab`dddwö Ž441åH3þaú!ËÜý»ï‡ÛÏ&Ö%?x„¾Û ~·âÿn&ÀÀÂÈèæîœ_PY”™žQ¢ á¬©`hii®à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–Tê)8æä(t+¥§•¥¦@luÎÏ-(-I-RðÍOI-ÊK,²3‹³d0000e130Ä2v10322éçûÏ(zœáwß‚_Áó¿sofþnü3Qtf÷¼òòîŠZ¹VìµÝóçwÏ›)Ç÷£cí‚R@e…{™¿Ïü^)º¾p}Á†ÂéMsë&us̘9}öäö©µ“䫞ÿ®t~Jÿô‰Ý³%g×N¯koëjnû-¤7ó»IÏŒ®EEÝ’ÕÝuu}u ì3ÿz^7¥»§¥[²®¶¾ºzzë”vùݛÚë[»«%«gÖÏèŸÐ3yšÜw¡µ¿-XÛØ;jfÖÏì^Öݽ¨k&_éŸö Ù~ L`ßÌõ€[Ž‹Å|>çæY<< |K¢£ endstream endobj 753 0 obj 410 endobj 754 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 755 0 obj 155 endobj 526 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 78/LastChar 121/Widths[ 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 42 0 38 42 38 0 38 42 25 0 0 0 0 47 42 42 0 0 34 28 0 38 55 39 40] /Subtype/Type3>> endobj 756 0 obj <> endobj 20 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 46/LastChar 121/Widths[ 27 0 49 49 0 0 49 0 49 49 0 0 0 0 0 0 0 0 0 0 0 0 74 0 0 77 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 49 54 0 54 43 0 49 0 0 0 0 0 0 54 49 0 0 38 0 38 0 0 0 51 51] /Subtype/Type3>> endobj 757 0 obj <> endobj 758 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 759 0 obj 155 endobj 502 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 27/LastChar 122/Widths[ 63 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 49 49 49 49 49 49 49 49 49 0 0 0 0 0 0 0 72 68 69 73 63 60 0 0 0 0 0 58 0 74 0 65 0 0 54 66 0 0 0 0 0 0 0 0 0 0 74 0 49 44 44 49 44 33 44 49 30 30 0 25 78 54 49 49 0 42 40 32 52 44 64 47 47 41] /Subtype/Type3>> endobj 760 0 obj <> endobj 761 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 762 0 obj 155 endobj 7 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 50/LastChar 117/Widths[ 57 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 104 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 0 51 0 51 35 57 0 0 0 0 32 0 63 0 0 0 44 0 0 63] /Subtype/Type3>> endobj 763 0 obj <> endobj 396 0 obj <> endobj 764 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 765 0 obj 155 endobj 311 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 48/LastChar 121/Widths[ 38 38 38 0 38 0 38 38 38 0 21 0 0 0 0 0 0 0 0 0 57 0 0 59 0 0 0 0 0 0 0 56 0 0 0 0 52 0 0 0 0 0 0 0 0 0 0 0 0 37 42 33 42 34 23 38 0 0 0 0 0 0 42 38 0 0 31 0 29 42 0 0 40 40] /Subtype/Type3>> endobj 766 0 obj <> endobj 767 0 obj <>stream xœ]=ƒ0 …wŸÂ7 П e¡ U¥öÁqP’(„¡·/ ´C‡gÉò÷ìçªëo½³ «Gôô䄯:yñk$Æ‘'ë nP[JGW*Í*@Õ *¼ÞqØ@½ä5/AGå&†VÙ#þ5»a4yѲ¨©ÅYB{=É"!„.ö/˜7åùþ]ÍŒ´ÆÈ.•”%UÎcÿ >dn‚ñ·QK endstream endobj 768 0 obj 165 endobj 235 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 34/LastChar 125/Widths[ 35 35 35 0 0 35 35 35 35 0 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 0 0 35 35 35 35 35 35 35 35 35 0 0 35 0 35 0 35 0 0 35 35 0 35 35 35 0 0 35 35 35 0 35 0 35 35 35 35 35 35 35 35 35 0 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35] /Subtype/Type3>> endobj 769 0 obj <> endobj 770 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 771 0 obj 155 endobj 217 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 34/LastChar 122/Widths[ 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 44 44 0 0 0 0 0 0 0 44 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 44 44 0 0 44 0 44 44 44 0 0 0 44 44 0 0 0 0 0 44 0 44 44 44 44 44 44 44 44 44 0 44 44 44 44 44 44 0 44 44 44 44 44 44 44 44 44] /Subtype/Type3>> endobj 772 0 obj <> endobj 215 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 136/LastChar 136/Widths[ 41] /Subtype/Type3>> endobj 773 0 obj <> endobj 774 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 775 0 obj 155 endobj 193 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 40/LastChar 122/Widths[ 44 44 0 0 0 0 31 0 56 56 56 56 56 56 56 56 56 56 31 0 0 0 0 53 0 85 0 0 86 74 70 0 0 42 0 0 0 106 0 0 77 0 0 62 78 0 0 116 0 0 0 0 0 0 0 0 0 54 0 50 62 51 34 56 62 32 0 59 32 94 62 56 62 0 46 44 44 62 0 0 59 59 50] /Subtype/Type3>> endobj 776 0 obj <> endobj 185 0 obj <> endobj 777 0 obj <> endobj 778 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 779 0 obj 155 endobj 158 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 46/LastChar 122/Widths[ 37 0 66 66 66 66 66 66 66 66 66 66 0 0 0 0 0 0 0 0 0 95 101 0 83 103 0 48 0 0 79 125 103 0 90 0 98 73 0 101 0 136 99 0 0 0 0 0 0 0 0 66 0 58 73 60 40 66 73 36 0 0 36 110 73 66 73 0 53 52 51 73 69 95 0 69 58] /Subtype/Type3>> endobj 780 0 obj <> endobj 143 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 49/LastChar 116/Widths[ 91 91 91 91 91 0 0 0 0 0 0 0 0 0 0 0 0 0 132 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 91 0 0 0 83 0 0 102 0 0 0 0 0 0 0 102 0 73 0 71] /Subtype/Type3>> endobj 781 0 obj <> endobj 782 0 obj <>stream xœ]=à …wNá„ü´ê±¤K†V•Ú c"†"dèí $íÐáY²Þ{Öçj¯£5ªGpø¤ÚXhu[@‚‰fcYÝ€2­L\¤gÕp“þõö)@šÕ{¢ÕK¤ íL¬ç\ôZ FVýYí^˜ô‘ìR2‹s~¬?)QÔÔ¼Kë¹EÉUåÚ·—gžŒs— n!º@f· ‰}zTT endstream endobj 783 0 obj 174 endobj 77 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 27/LastChar 160/Widths[ 48 46 46 0 0 0 23 42 69 0 0 65 23 32 32 0 65 23 28 23 42 42 42 42 42 42 42 42 42 42 42 23 23 0 65 0 39 65 62 59 60 63 56 54 65 62 30 43 0 52 76 62 65 56 65 61 46 60 62 62 85 62 62 51 23 0 23 0 65 0 42 46 37 46 37 25 42 46 23 25 44 23 69 46 42 46 44 33 33 32 46 44 60 44 44 37 42 0 42 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 42] /Subtype/Type3>> endobj 784 0 obj <> endobj 785 0 obj <>stream xœ]=ƒ0 …wŸÂ7 П e¡ U¥öÁqP’(„¡·/ ´C‡gÉò÷ìçªëo½³ «Gôô䄯:yñk$Æ‘'ë nP[JGW*Í*@Õ *¼ÞqØ@½ä5/AGå&†VÙ#þ5»a4yѲ¨©ÅYB{=É"!„.ö/˜7åùþ]ÍŒ´ÆÈ.•”%UÎcÿ >dn‚ñ·QK endstream endobj 786 0 obj 165 endobj 67 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 21/LastChar 122/Widths[ 48 0 0 0 0 0 0 53 53 0 0 0 0 0 0 0 0 0 0 37 37 0 0 27 32 27 0 48 48 48 48 48 48 48 48 48 48 27 0 0 0 0 45 0 72 68 69 73 63 60 75 75 36 0 0 57 91 75 0 65 72 72 53 66 73 72 99 72 0 58 27 0 27 0 74 0 46 53 42 53 44 29 48 53 27 29 50 27 81 53 48 53 50 39 38 37 53 50 69 50 50 42] /Subtype/Type3>> endobj 787 0 obj <> endobj 788 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 789 0 obj 155 endobj 60 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 50/LastChar 120/Widths[ 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 166 0 0 0 0 79 0 0 0 205 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108 0 96 120 98 0 108 0 60 0 0 60 181 120 108 0 0 0 85 84 120 0 0 114] /Subtype/Type3>> endobj 790 0 obj <> endobj 791 0 obj <>stream xœ]ޱÂ0C÷|ÅýAS˜ª.ea!Á¤§ÊÐK”¦O ƒO:Ù–_3\Îñ™š{ ü@&çÅ&,aM 1yQí¬ç¼õòl¢j†«‰ÏWm8Õ~,–hÉÈÕiÝwÎõ bÿ¬½0º=y:öUZk[ó_§TËb¼™ÄkJ\±*Fð‚y ±´h“zÏìMÙ endstream endobj 792 0 obj 155 endobj 40 0 obj <>/FontMatrix[1 0 0 -1 0 0]/FontBBox[0 0 1000 1000]/FirstChar 48/LastChar 117/Widths[ 38 38 38 0 38 0 38 38 38 0 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 0 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 43] /Subtype/Type3>> endobj 793 0 obj <> endobj 395 0 obj <> endobj 184 0 obj <> endobj 2 0 obj <>endobj xref 0 794 0000000000 65535 f 0000076568 00000 n 0000253224 00000 n 0000076142 00000 n 0000069039 00000 n 0000000015 00000 n 0000000358 00000 n 0000237181 00000 n 0000128732 00000 n 0000183142 00000 n 0000232481 00000 n 0000128435 00000 n 0000182875 00000 n 0000232221 00000 n 0000128167 00000 n 0000182578 00000 n 0000231930 00000 n 0000127846 00000 n 0000182305 00000 n 0000231692 00000 n 0000234703 00000 n 0000127555 00000 n 0000182117 00000 n 0000231410 00000 n 0000127269 00000 n 0000173529 00000 n 0000231127 00000 n 0000127006 00000 n 0000173274 00000 n 0000230821 00000 n 0000126747 00000 n 0000172975 00000 n 0000230527 00000 n 0000126448 00000 n 0000172680 00000 n 0000230240 00000 n 0000126115 00000 n 0000172435 00000 n 0000229972 00000 n 0000125797 00000 n 0000252152 00000 n 0000172186 00000 n 0000217911 00000 n 0000125530 00000 n 0000171883 00000 n 0000217646 00000 n 0000125276 00000 n 0000171642 00000 n 0000217379 00000 n 0000124999 00000 n 0000171408 00000 n 0000217106 00000 n 0000124696 00000 n 0000171138 00000 n 0000216816 00000 n 0000076616 00000 n 0000069181 00000 n 0000069280 00000 n 0000000377 00000 n 0000001685 00000 n 0000251133 00000 n 0000181669 00000 n 0000229627 00000 n 0000134289 00000 n 0000181364 00000 n 0000229270 00000 n 0000124319 00000 n 0000249254 00000 n 0000181123 00000 n 0000228953 00000 n 0000124030 00000 n 0000180844 00000 n 0000228664 00000 n 0000123778 00000 n 0000180590 00000 n 0000228395 00000 n 0000123509 00000 n 0000247059 00000 n 0000180350 00000 n 0000228207 00000 n 0000123258 00000 n 0000180102 00000 n 0000227937 00000 n 0000122983 00000 n 0000170882 00000 n 0000227659 00000 n 0000122715 00000 n 0000170605 00000 n 0000227404 00000 n 0000122427 00000 n 0000170372 00000 n 0000227152 00000 n 0000122139 00000 n 0000170114 00000 n 0000226849 00000 n 0000121825 00000 n 0000169801 00000 n 0000226538 00000 n 0000121536 00000 n 0000169528 00000 n 0000216513 00000 n 0000121267 00000 n 0000169253 00000 n 0000216226 00000 n 0000121011 00000 n 0000169017 00000 n 0000215999 00000 n 0000120732 00000 n 0000168715 00000 n 0000215720 00000 n 0000120496 00000 n 0000168414 00000 n 0000215420 00000 n 0000120200 00000 n 0000168141 00000 n 0000215152 00000 n 0000109870 00000 n 0000167869 00000 n 0000214876 00000 n 0000109610 00000 n 0000167595 00000 n 0000214592 00000 n 0000109332 00000 n 0000167298 00000 n 0000214327 00000 n 0000109030 00000 n 0000167034 00000 n 0000214068 00000 n 0000108744 00000 n 0000166718 00000 n 0000213790 00000 n 0000108414 00000 n 0000153403 00000 n 0000213482 00000 n 0000108148 00000 n 0000153116 00000 n 0000213184 00000 n 0000107883 00000 n 0000076668 00000 n 0000069425 00000 n 0000069525 00000 n 0000001706 00000 n 0000003992 00000 n 0000246188 00000 n 0000226132 00000 n 0000119904 00000 n 0000166349 00000 n 0000225792 00000 n 0000119613 00000 n 0000166013 00000 n 0000225512 00000 n 0000119351 00000 n 0000165551 00000 n 0000225123 00000 n 0000119049 00000 n 0000165149 00000 n 0000212915 00000 n 0000118709 00000 n 0000244982 00000 n 0000164897 00000 n 0000212687 00000 n 0000118447 00000 n 0000164640 00000 n 0000212390 00000 n 0000118150 00000 n 0000164369 00000 n 0000212079 00000 n 0000117870 00000 n 0000164067 00000 n 0000211807 00000 n 0000117610 00000 n 0000163786 00000 n 0000211552 00000 n 0000107643 00000 n 0000163546 00000 n 0000211277 00000 n 0000107364 00000 n 0000163295 00000 n 0000210970 00000 n 0000107074 00000 n 0000163018 00000 n 0000210684 00000 n 0000106789 00000 n 0000162830 00000 n 0000253014 00000 n 0000244274 00000 n 0000210420 00000 n 0000106451 00000 n 0000162509 00000 n 0000210187 00000 n 0000106188 00000 n 0000152799 00000 n 0000209916 00000 n 0000243058 00000 n 0000105942 00000 n 0000152573 00000 n 0000209614 00000 n 0000105634 00000 n 0000152304 00000 n 0000209310 00000 n 0000105366 00000 n 0000152047 00000 n 0000209016 00000 n 0000105036 00000 n 0000151758 00000 n 0000208792 00000 n 0000104723 00000 n 0000151495 00000 n 0000201832 00000 n 0000104465 00000 n 0000151215 00000 n 0000201552 00000 n 0000104201 00000 n 0000150934 00000 n 0000201271 00000 n 0000242543 00000 n 0000103957 00000 n 0000241263 00000 n 0000150622 00000 n 0000200987 00000 n 0000103701 00000 n 0000150359 00000 n 0000200752 00000 n 0000103407 00000 n 0000150102 00000 n 0000200477 00000 n 0000098322 00000 n 0000076723 00000 n 0000069672 00000 n 0000004014 00000 n 0000007563 00000 n 0000196755 00000 n 0000095285 00000 n 0000146929 00000 n 0000196442 00000 n 0000239329 00000 n 0000095044 00000 n 0000146736 00000 n 0000196179 00000 n 0000094786 00000 n 0000146466 00000 n 0000195903 00000 n 0000094550 00000 n 0000142984 00000 n 0000195628 00000 n 0000094356 00000 n 0000142723 00000 n 0000195374 00000 n 0000094105 00000 n 0000142467 00000 n 0000195109 00000 n 0000093855 00000 n 0000142192 00000 n 0000194875 00000 n 0000093664 00000 n 0000141921 00000 n 0000194636 00000 n 0000093408 00000 n 0000141699 00000 n 0000192337 00000 n 0000093161 00000 n 0000141457 00000 n 0000192080 00000 n 0000092918 00000 n 0000141185 00000 n 0000191835 00000 n 0000092677 00000 n 0000140901 00000 n 0000191592 00000 n 0000092393 00000 n 0000140564 00000 n 0000191241 00000 n 0000092035 00000 n 0000140204 00000 n 0000190919 00000 n 0000088893 00000 n 0000139925 00000 n 0000190661 00000 n 0000088606 00000 n 0000139663 00000 n 0000190425 00000 n 0000088314 00000 n 0000139374 00000 n 0000190180 00000 n 0000088050 00000 n 0000139114 00000 n 0000189896 00000 n 0000087811 00000 n 0000138872 00000 n 0000189621 00000 n 0000087616 00000 n 0000134009 00000 n 0000189347 00000 n 0000087363 00000 n 0000133732 00000 n 0000189108 00000 n 0000087092 00000 n 0000133460 00000 n 0000188864 00000 n 0000086864 00000 n 0000133195 00000 n 0000188609 00000 n 0000086613 00000 n 0000132999 00000 n 0000188322 00000 n 0000086334 00000 n 0000132716 00000 n 0000179842 00000 n 0000086079 00000 n 0000132462 00000 n 0000179584 00000 n 0000238202 00000 n 0000091748 00000 n 0000138617 00000 n 0000188079 00000 n 0000091512 00000 n 0000138353 00000 n 0000187827 00000 n 0000091242 00000 n 0000138097 00000 n 0000187574 00000 n 0000091003 00000 n 0000137814 00000 n 0000187322 00000 n 0000090762 00000 n 0000137554 00000 n 0000187050 00000 n 0000085843 00000 n 0000137292 00000 n 0000186786 00000 n 0000085566 00000 n 0000137042 00000 n 0000186494 00000 n 0000085303 00000 n 0000136770 00000 n 0000186225 00000 n 0000085046 00000 n 0000076856 00000 n 0000069827 00000 n 0000007585 00000 n 0000010187 00000 n 0000162197 00000 n 0000224843 00000 n 0000117327 00000 n 0000179305 00000 n 0000224620 00000 n 0000117025 00000 n 0000179095 00000 n 0000224344 00000 n 0000116719 00000 n 0000178804 00000 n 0000224077 00000 n 0000116455 00000 n 0000178567 00000 n 0000223858 00000 n 0000116174 00000 n 0000178297 00000 n 0000223614 00000 n 0000115986 00000 n 0000161908 00000 n 0000223370 00000 n 0000132179 00000 n 0000076991 00000 n 0000069982 00000 n 0000010209 00000 n 0000013038 00000 n 0000223097 00000 n 0000115767 00000 n 0000161624 00000 n 0000222813 00000 n 0000115487 00000 n 0000161352 00000 n 0000222568 00000 n 0000115231 00000 n 0000161049 00000 n 0000222296 00000 n 0000114932 00000 n 0000160768 00000 n 0000208498 00000 n 0000114645 00000 n 0000160507 00000 n 0000208255 00000 n 0000114383 00000 n 0000160249 00000 n 0000207988 00000 n 0000114127 00000 n 0000160001 00000 n 0000207756 00000 n 0000113894 00000 n 0000159745 00000 n 0000207489 00000 n 0000113629 00000 n 0000159471 00000 n 0000207220 00000 n 0000103150 00000 n 0000252791 00000 n 0000237790 00000 n 0000159206 00000 n 0000206958 00000 n 0000102870 00000 n 0000158925 00000 n 0000206679 00000 n 0000077074 00000 n 0000070137 00000 n 0000013060 00000 n 0000015222 00000 n 0000158645 00000 n 0000206399 00000 n 0000102589 00000 n 0000158377 00000 n 0000206117 00000 n 0000102325 00000 n 0000158090 00000 n 0000205845 00000 n 0000102044 00000 n 0000149859 00000 n 0000205593 00000 n 0000101789 00000 n 0000149618 00000 n 0000205335 00000 n 0000101517 00000 n 0000149354 00000 n 0000205064 00000 n 0000077196 00000 n 0000070292 00000 n 0000015244 00000 n 0000018196 00000 n 0000149040 00000 n 0000204776 00000 n 0000101215 00000 n 0000148752 00000 n 0000204483 00000 n 0000100952 00000 n 0000148498 00000 n 0000200209 00000 n 0000100718 00000 n 0000148263 00000 n 0000199978 00000 n 0000100441 00000 n 0000148013 00000 n 0000199675 00000 n 0000100124 00000 n 0000147723 00000 n 0000199407 00000 n 0000099836 00000 n 0000147444 00000 n 0000199131 00000 n 0000099551 00000 n 0000077305 00000 n 0000070447 00000 n 0000018218 00000 n 0000019190 00000 n 0000194329 00000 n 0000090486 00000 n 0000147174 00000 n 0000198783 00000 n 0000097968 00000 n 0000077401 00000 n 0000070602 00000 n 0000019211 00000 n 0000019611 00000 n 0000194018 00000 n 0000077497 00000 n 0000070757 00000 n 0000019632 00000 n 0000020553 00000 n 0000146103 00000 n 0000193636 00000 n 0000090178 00000 n 0000145860 00000 n 0000193403 00000 n 0000089818 00000 n 0000136476 00000 n 0000193166 00000 n 0000077543 00000 n 0000070904 00000 n 0000020574 00000 n 0000020986 00000 n 0000113347 00000 n 0000077613 00000 n 0000071059 00000 n 0000021007 00000 n 0000021473 00000 n 0000221896 00000 n 0000113017 00000 n 0000178009 00000 n 0000077659 00000 n 0000071206 00000 n 0000021494 00000 n 0000021894 00000 n 0000077729 00000 n 0000071361 00000 n 0000021915 00000 n 0000023248 00000 n 0000145558 00000 n 0000198396 00000 n 0000097608 00000 n 0000145218 00000 n 0000198112 00000 n 0000097344 00000 n 0000144926 00000 n 0000197863 00000 n 0000235676 00000 n 0000097015 00000 n 0000144675 00000 n 0000192879 00000 n 0000096792 00000 n 0000144381 00000 n 0000192592 00000 n 0000096471 00000 n 0000144083 00000 n 0000077775 00000 n 0000071508 00000 n 0000023270 00000 n 0000025547 00000 n 0000089508 00000 n 0000136204 00000 n 0000185942 00000 n 0000089206 00000 n 0000135927 00000 n 0000185694 00000 n 0000084747 00000 n 0000135649 00000 n 0000185412 00000 n 0000084477 00000 n 0000135365 00000 n 0000234038 00000 n 0000185139 00000 n 0000084184 00000 n 0000135090 00000 n 0000184848 00000 n 0000083914 00000 n 0000134811 00000 n 0000077921 00000 n 0000071663 00000 n 0000025569 00000 n 0000027734 00000 n 0000083691 00000 n 0000134587 00000 n 0000078056 00000 n 0000071818 00000 n 0000027756 00000 n 0000029793 00000 n 0000078152 00000 n 0000071973 00000 n 0000029815 00000 n 0000031618 00000 n 0000131882 00000 n 0000184567 00000 n 0000083413 00000 n 0000078248 00000 n 0000072128 00000 n 0000031640 00000 n 0000033209 00000 n 0000184300 00000 n 0000083118 00000 n 0000131594 00000 n 0000184006 00000 n 0000082840 00000 n 0000078357 00000 n 0000072283 00000 n 0000033231 00000 n 0000035445 00000 n 0000183743 00000 n 0000082500 00000 n 0000131258 00000 n 0000183454 00000 n 0000082276 00000 n 0000131007 00000 n 0000177723 00000 n 0000081993 00000 n 0000130784 00000 n 0000177426 00000 n 0000081687 00000 n 0000078427 00000 n 0000072438 00000 n 0000035467 00000 n 0000037038 00000 n 0000177146 00000 n 0000081389 00000 n 0000130485 00000 n 0000176861 00000 n 0000081099 00000 n 0000130206 00000 n 0000176585 00000 n 0000080792 00000 n 0000078549 00000 n 0000072593 00000 n 0000037060 00000 n 0000039115 00000 n 0000176253 00000 n 0000221624 00000 n 0000129967 00000 n 0000175907 00000 n 0000221348 00000 n 0000129682 00000 n 0000078645 00000 n 0000072748 00000 n 0000039137 00000 n 0000039812 00000 n 0000078780 00000 n 0000072903 00000 n 0000039833 00000 n 0000041877 00000 n 0000129342 00000 n 0000175631 00000 n 0000221066 00000 n 0000129087 00000 n 0000175314 00000 n 0000078850 00000 n 0000073058 00000 n 0000041899 00000 n 0000043092 00000 n 0000078972 00000 n 0000073213 00000 n 0000043114 00000 n 0000044655 00000 n 0000175068 00000 n 0000220756 00000 n 0000079042 00000 n 0000073368 00000 n 0000044677 00000 n 0000046130 00000 n 0000174774 00000 n 0000220457 00000 n 0000079138 00000 n 0000073523 00000 n 0000046152 00000 n 0000047630 00000 n 0000079247 00000 n 0000073678 00000 n 0000047652 00000 n 0000049190 00000 n 0000079317 00000 n 0000073833 00000 n 0000049212 00000 n 0000050090 00000 n 0000079413 00000 n 0000073988 00000 n 0000050111 00000 n 0000051846 00000 n 0000174479 00000 n 0000220185 00000 n 0000112732 00000 n 0000174213 00000 n 0000219975 00000 n 0000079483 00000 n 0000074143 00000 n 0000051868 00000 n 0000053346 00000 n 0000173861 00000 n 0000219667 00000 n 0000112429 00000 n 0000157818 00000 n 0000219393 00000 n 0000112195 00000 n 0000157546 00000 n 0000219066 00000 n 0000111927 00000 n 0000157259 00000 n 0000218772 00000 n 0000079618 00000 n 0000074298 00000 n 0000053368 00000 n 0000055159 00000 n 0000156923 00000 n 0000218480 00000 n 0000111612 00000 n 0000156641 00000 n 0000218166 00000 n 0000111330 00000 n 0000156351 00000 n 0000204183 00000 n 0000111027 00000 n 0000156051 00000 n 0000203888 00000 n 0000079740 00000 n 0000074453 00000 n 0000055181 00000 n 0000056891 00000 n 0000155747 00000 n 0000203587 00000 n 0000110724 00000 n 0000155432 00000 n 0000203290 00000 n 0000110448 00000 n 0000155134 00000 n 0000203025 00000 n 0000110159 00000 n 0000154862 00000 n 0000079862 00000 n 0000074608 00000 n 0000056913 00000 n 0000057954 00000 n 0000079958 00000 n 0000074763 00000 n 0000057975 00000 n 0000059387 00000 n 0000154557 00000 n 0000202663 00000 n 0000099243 00000 n 0000154263 00000 n 0000080041 00000 n 0000074918 00000 n 0000059409 00000 n 0000061360 00000 n 0000098896 00000 n 0000153993 00000 n 0000202365 00000 n 0000098599 00000 n 0000080163 00000 n 0000075073 00000 n 0000061382 00000 n 0000062061 00000 n 0000202086 00000 n 0000080311 00000 n 0000075228 00000 n 0000062082 00000 n 0000062831 00000 n 0000153695 00000 n 0000080396 00000 n 0000075383 00000 n 0000062852 00000 n 0000063835 00000 n 0000096097 00000 n 0000143796 00000 n 0000197527 00000 n 0000095825 00000 n 0000143555 00000 n 0000197265 00000 n 0000095565 00000 n 0000143283 00000 n 0000197006 00000 n 0000080492 00000 n 0000075530 00000 n 0000063856 00000 n 0000065005 00000 n 0000080577 00000 n 0000075677 00000 n 0000065027 00000 n 0000066291 00000 n 0000080621 00000 n 0000075832 00000 n 0000066313 00000 n 0000067981 00000 n 0000080678 00000 n 0000075987 00000 n 0000068003 00000 n 0000069018 00000 n 0000080735 00000 n 0000232808 00000 n 0000233249 00000 n 0000233270 00000 n 0000233768 00000 n 0000233789 00000 n 0000234017 00000 n 0000234542 00000 n 0000235246 00000 n 0000235427 00000 n 0000235655 00000 n 0000236674 00000 n 0000236932 00000 n 0000237160 00000 n 0000237640 00000 n 0000237953 00000 n 0000238181 00000 n 0000238870 00000 n 0000239070 00000 n 0000239308 00000 n 0000240670 00000 n 0000241014 00000 n 0000241242 00000 n 0000242273 00000 n 0000242723 00000 n 0000242809 00000 n 0000243037 00000 n 0000244006 00000 n 0000244631 00000 n 0000244733 00000 n 0000244961 00000 n 0000245923 00000 n 0000246647 00000 n 0000246791 00000 n 0000247038 00000 n 0000248617 00000 n 0000248995 00000 n 0000249233 00000 n 0000250553 00000 n 0000250884 00000 n 0000251112 00000 n 0000251723 00000 n 0000251903 00000 n 0000252131 00000 n 0000252641 00000 n trailer << /Size 794 /Root 1 0 R /Info 2 0 R /ID [(6rñÔØJìYýZ<5å|@)(6rñÔØJìYýZ<5å|@)] >> startxref 253417 %%EOF g2-0.72/doc/g2_main.dox0000644000175000017500000003373410515206224013566 0ustar ljuboljubo /* this file is used mainly to hold some general g2 doxygen documentation in the doxygen format */ /* define some main groups */ /** * \defgroup interface g2 User Interface */ /** * \ingroup interface * \defgroup physdev g2 Physical devices * * g2 physical devices are drivers for different output * formats. * */ /** \mainpage \section licence License Notice This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner. \section introduction Introduction \subsection what What is g2 ? \subsubsection short Short version (if you are in hurry) - 2D graphics library - Simple to use - Supports several types of output devices (currently X11, PostScript, devices supported by gd (PNG, JPEG), FIG and MS Windows windows) - Concept allows easy implementation of new device types - Virtual devices allow to send output simultaneously to several devices - User definable coordinate system - Written in ANSI-C - Tested under Digital Unix, AIX, Linux, VMS and Windows NT - Perl support - Python support - Fortran interface \subsubsection long Long version g2 is a simple to use graphics library for 2D graphical applications written in Ansi-C. It provides a comprehensive set of functions for simultaneous generation of graphical output on different types of devices. Currently, the following devices are supported by g2: X11, PostScript, gd (PNG and JPEG), FIG and MS Windows. One major feature of the g2 library is the concept of virtual devices. An arbitrary number of physical devices (such as PostScript or X11) can be grouped to create a so-called virtual device. Commands sent to such a virtual device are automatically issued to all attached physical devices. This allows for example simultaneous output to a PNG file and a PostScript file. A virtual device in turn can be attached to another virtual device, allowing to construct trees of devices. Virtual devices can also be useful when using different user-coordinate systems. E.g. one X11 window showing an overview of a graphical output, and a second window showing a zoom of a more detailed area of the graphic. Drawing in both windows is performed by one single command to the virtual device. \code /-------> PNG: g2_attach(id_PNG,.. ----------------------- g2_plot---> | Virtual device: id |--------> X11: g2_attach(id_X11,... ----------------------- \-------> PS: g2_attach(id_PS,... \endcode If you don't need or like the concept of virtual devices, simply ignore it. \section getting Getting Started \subsection preinstallation Preinstallation tasks: * PNG and JPEG support g2 uses the gd library by Thomas Boutell to generate PNG and JPEG files. This package is freeware (however, not GPL) and can be downloaded at http://www.boutell.com/gd/. Linux users might prefer to install a pre-compiled gd rpm package which should be available at your local RedHat mirror site. NT users should install the gd source package in a subdirectory named "gd" which should be located in the same directory as the g2 subdirectory (but not in the g2 directory itself). Otherwise, file locations for gd must be modified in the g2 project workspace. Unix and VMS users will have to build and install gd according to the instructions found in the gd distribution. \subsection installation Installation \subsubsection Linux -# Either install RPM packet with binaries, or compile as described in the \ref Unix section \subsubsection Unix -# Extract package with gzip -dc g2-xxxx.tar.gz | tar xvf - -# Run ./configure -# Optionally run make depend -# Run \c make -# Run make install, or copy libg2.a/so and g2.h, g2_X11.h, g2_PS.h, g2_gd.h and g2_FIG.h to the default locations for library and include files -# Optionally \c cd to demo directory and run \c make \subsubsection Windows Windows NT -# Extract package using either the .tar.gz or the .zip distribution -# MS Visual C++ users can build both library and demos with the supplied project file: g2.dsw (to obtain an icon and use menu functions, you must also build the g2res project in g2.dsw) -# Users of gcc or other commandline based compilers with make support continue as in \ref Unix example -# It is also possible to compile g2 on winNT/95 using the free cygwin32 library and a X-windows library for Windows. Theoretically it should be possible to support both X-windows and native NT/95 windows at the same time. \subsubsection Perl Perl (old instructions) -# Change to directory g2_perl -# Perform following steps - perl Makefile.PL - make - make test - make install -# See the \ref perl "Perl interface" section for more information \subsubsection Python -# Make sure you have Python installed (note: SWIG is \b not needed) -# Build g2 as described above (see \ref installation) -# Change to directory g2_python -# Type - on Linux: - make to build g2 Python module - make demo to test g2 Python module - make install to install g2 Python module (you must be \b root) - on Windows (you need Visual Studio when using the standard Python release for Windows): - setup.py "compile options" "link options" install -# If you link your g2 Python module against libg2.so, and you are unwilling or unable to do an install, you need to tell the g2 Python module where to look for it, either with ldconfig, or with the LD_LIBRARY_PATH environment variable -# See the \ref python "Python interface" section for more information \subsubsection VMS -# Try to extract either the .tar.gz or the .zip distribution (whatever is easier for you) -# Type \c mms to compile library (descrip.mms file is supplied) -# Run \c mms in demo directory to compile demo applications \subsection simple A simple example The following example is a minimal application. It draws a rectangle in a PostScript file. \code #include #include main() { int id; id = g2_open_PS("rect.ps", g2_A4, g2_PS_land); g2_rectangle(id, 20, 20, 150, 150); g2_close(id); } \endcode - Always include . Additionally include header files for all types of devices you want to use. - Open devices using g2_open_XY functions.\n The open function returns a device id of type int, which you need to refer to the device. - Call g2_close() to close device. - Consider turning off auto flush (g2_set_auto_flush()) for improved performance. You want to draw a PNG file instead of a PostScript file ? Replace the PS header file with \code #include \endcode and replace the call to g2_open_PS() with \code id = g2_open_gd("rect.png", 300, 200, g2_gd_png); \endcode You want to draw to a PNG file and a PostScript file with one plot command ? Here we use the concept of virtual devices. Open a PNG and a PostScript device, then open a virtual device and attach both the PNG and PostScript device to the virtual device. Plot commands to the virtual device will be issued to both the PNG and the PostScript device. You can attach and detach further devices at any time. \code #include #include #include main() { int id_PS,id_PNG,id; id_PS = g2_open_PS("rect.ps", g2_A4, g2_PS_land); id_PNG = g2_open_gd("rect.png", 300, 200, g2_gd_png); id = g2_open_vd(); g2_attach(id, id_PS); g2_attach(id, id_PNG); g2_rectangle(id, 20, 20, 150, 150); g2_circle(id, 50, 60, 100); g2_close(id); } \endcode Note: closing a virtual device automatically closes all attached devices. \subsubsection more More examples More examples showing the usage of different user coordinate systems, multiple virtual devices, splines, etc. can be found in the distribution (demo directory). \subsection fortran Fortran interface The Fortran interface for g2 has currently been tested on Linux and Digital Unix/OSF. Function names for Fortran are the same as in C, however the following differences exist: - All variables, including device IDs, are of type \c REAL - Void functions are implemented as subroutines and must be called with \c CALL - Constants defined by \c \#define in C (e.g. \ref g2_A4) do not work. Get corresponding values from the appropriate header files. A short Fortran example: \code program demo real d,color d=g2_open_PS('demo_f.ps', 4.0, 1.0) call g2_plot(d, 50.0, 50.0) call g2_string(d, 25.0, 75.0, 'TEST ') color=g2_ink(d, 1.0, 0.0, 0.0) write (6,*) color call g2_pen(d, color) call g2_circle(d, 20.0, 20.0, 10.0) call g2_flush(d) call g2_close(d) stop end \endcode \subsection perl Perl interface (old info) The Perl interface for g2 has currently been tested on Linux and Digital Unix/OSF. Function names in Perl are the same as in C, however the device itself is implemented object oriented, i.e. the device argument is omitted in all functions. Cf. the following simple Perl script: \code use G2; $d = newX11 G2::Device(100,100); $d->circle(10, 10, 20); $d->string(20, 40, "Hello World"); print "\nDone.\n[Enter]\n"; getc(STDIN); $d->close() \endcode The creator functions are \c newX11, \c newGIF, \c newPS, etc. and accept the same arguments as the open functions in the C version. See the Perl documentation (perldoc G2) for more details and the test.pl script for a more extensive example. \subsection python Python interface Function names in Python are the same as in C, however the device itself is implemented object oriented, i.e. the device argument is omitted in all methods. An object is instantiated with one of the \c g2_open_ functions. Here is a simple Python script: \code import sys from g2 import * X11 = g2_open_X11(822, 575) PS = g2_open_PS('foo.ps', g2_A4, g2_PS_land) graph = g2_open_vd() graph.g2_attach(X11) graph.g2_attach(PS) graph.g2_line(30, 30, 90, 90) graph.g2_circle(60, 60, 30) X11.g2_pen(X11.g2_ink(.75, .2, 0)) graph.g2_polygon([60, 30, 30, 60, 60, 90, 90, 60]) graph.g2_set_dash([20, 12]) sqrts = [100, 100, 225, 150, 400, 200, 625, 250] graph.g2_poly_line(sqrts) graph.g2_image(640, 252, [[2, 4, 6],[3, 6, 9],[4, 8, 12]]) graph.g2_flush() print 'Done.\n[Enter]' sys.stdin.read(1) graph.g2_close() \endcode In C, many functions expect a pointer to a buffer of double's and an \c int stating the number of points in this buffer. In Python, these functions are passed just a list of floats. You need not specify the number of points: Python knows the length of the list. Full documentation, including sample code, is available from the interactive Python prompt: \code $ python >>> import g2 >>> help(g2) \endcode Here functions with a Python specific form (e.g. g2_query_pointer()) are marked as such. \section Contact You can contact the authors and contributors by e-mail (/ is @ and - is .): - Ljubomir Milanovic: ljubo/users-sourceforge-net - Horst Wagner: wagner/users-sourceforge-net - Tijs Michels (\ref splines "spline" implementation and \ref python "Python" wrapper): tijs/users-sourceforge-net or visit the g2 home page on: http://g2.sourceforge.net/ */ /** \page paper PS paper sizes \section paper PostScript paper sizes \code g2 Name Name Size(Pt) -------------------------------------------------------- g2_A0 A0 2384 x 3370 g2_A1 A1 1684 x 2384 g2_A2 A2 1191 x 1684 g2_A3 A3 842 x 1191 g2_A4 A4 595 x 842 g2_A5 A5 420 x 595 g2_A6 A6 297 x 420 g2_A7 A7 210 x 297 g2_A8 A8 148 x 210 g2_A9 A9 105 x 148 g2_B0 B0 2920 x 4127 g2_B1 B1 2064 x 2920 g2_B2 B2 1460 x 2064 g2_B3 B3 1032 x 1460 g2_B4 B4 729 x 1032 g2_B5 B5 516 x 729 g2_B6 B6 363 x 516 g2_B7 B7 258 x 363 g2_B8 B8 181 x 258 g2_B9 B9 127 x 181 g2_B10 B10 91 x 127 g2_Comm_10_Envelope Comm #10 Envelope 297 x 684 g2_C5_Envelope C5 Envelope 461 x 648 g2_DL_Envelope DL Envelope 312 x 624 g2_Folio Folio 595 x 935 g2_Executive Executive 522 x 756 g2_Letter Letter 612 x 792 g2_Legal Legal 612 x 1008 g2_Ledger Ledger 1224 x 792 g2_Tabloid Tabloid 792 x 1224 \endcode */ g2-0.72/doc/refman.ps0000644000175000017500000200500710515227310013343 0ustar ljuboljubo%!PS-Adobe-2.0 %%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software %%Title: refman.dvi %%Pages: 47 %%PageOrder: Ascend %%BoundingBox: 0 0 595 842 %%DocumentFonts: CMSY10 CMMI10 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o refman.ps refman.dvi %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2006.10.17:2128 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 60 /less put dup 62 /greater put readonly def /FontBBox{-32 -250 1048 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D 8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F 440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 3 /asteriskmath put dup 106 /bar put readonly def /FontBBox{-29 -960 1116 775}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD 5F3D998FF41E4B1CF7C81FC78F5D909D12694A1D39319370187F4A40DFC3AF7D B2B0EAECCD0B886C1AAA126D97341677BD38BAC71840039357F57482A7E3E463 EA31273B4DE501636F5C9EFB4C242D5F3852C93489628BE262C825B8D9EF2CB6 F066235B03777EA7CCA1C38BA2B5D0B0F30FC550919B9AD85D1AFCCC881C2613 84868AF154AAA663E3984751A2F262B7E68F255DA4B9E6E62771EDC857A3505B AA582ED9B7B5D421F469AC9A20016B0C06AA4186EB208D78269093F18DC261E3 3A36B86D8C454F392428C381C841867B8F4BCDE6A7190FF79B4E980B7E828ACD ED98D6943F35769B441F24D3DD2245B1FF4931911C064A1CFE8FA6A3E347C328 904C9A6F28E455FF8CCF2CC37EEBCB8543E56A08F916FB38B0E483AC132721AE 2C7762AC12E47EAF3D67BE03199FF3A4C7C6FC1D9208DE2C40C2F25C4BD162D4 ED3896000479CEAE6513F6C16C965CD50BB156E051FD81A6E3CC251FEDB8A08E 4C32C5276268784A18279B1D16AA0F8DF43D08E5126A36BAF6778C5A6B1C18D2 E7389F7034F67514DFA02FED2ECEFFF6AB5B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39139632 55387786 1000 600 600 (refman.dvi) @start %DVIPSBitmapFont: Fa ecti1000 10 18 /Fa 18 122 df<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE00000 07FC000007F800000007FE000003F000000007FE000003E00000000FFE000003C0000000 0FFF000003C00000000E7F000003800000000E7F000003800000001E7F80000780000000 1E3F800007000000001C3F800007000000001C3FC00007000000003C1FC0000F00000000 3C1FE0000E00000000380FE0000E00000000380FE0000E00000000780FF0001E00000000 7807F0001C000000007007F0001C000000007007F8001C00000000F003F8003C00000000 F003FC003800000000E003FC003800000000E001FC003800000001E001FE007800000001 E000FE007000000001C000FE007000000001C000FF007000000003C0007F00F000000003 C0007F00E00000000380007F80E00000000380003F80E00000000780003FC1E000000007 80001FC1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000000F 00000FE3800000000E00000FF3800000000E000007F3800000001E000007FF800000001E 000007FF000000001C000003FF000000001C000003FF000000003C000001FF000000003C 000001FE0000000038000001FE0000000038000000FE0000000078000000FE0000000078 000000FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000FFFF E0000038000000FFFFE000003800000043397CB83E>78 D95 D<0000F800000007FE0000001F871C0000 3E03FE00007C03FE0000F801FE0001F801FE0003F000FC0007E000FC000FE000FC000FC0 01FC001FC001F8001FC001F8003F8001F8003F8003F8007F8003F0007F0003F0007F0003 F0007F0007F000FF0007E000FE0007E000FE0007E000FE000FE000FE000FC000FC000FC1 C0FC000FC1C0FC001FC1C0FC001F83C0FC001F8380FC003F8380FC003F87807C007F8700 7C00FF07003E01FF0F003E038F8E001F0F079E0007FE03FC0001F000F000222677A42A> 97 D<00007F000003FFC0000FC1E0001F0070007E007800FC003801F801F803F003F807 F003F807E003F80FE003F81FC003F01FC000003F8000003F8000007F8000007F0000007F 0000007F000000FF000000FE000000FE000000FE000000FE000000FC000000FC000000FC 000000FC000030FC000038FC0000787C0000F07E0001E03E0003C03E000F801F003E000F 81F80003FFE00000FF00001D2677A426>99 D<00000001F8000000FFF8000000FFF80000 00FFF800000003F800000003F000000003F000000007F000000007F000000007E0000000 07E00000000FE00000000FE00000000FC00000000FC00000001FC00000001FC00000001F 800000001F800000003F800000003F800000F83F000007FE3F00001F877F00003E03FF00 007C03FE0000F801FE0001F801FE0003F000FE0007E000FC000FE000FC000FC001FC001F C001FC001FC001F8003F8001F8003F8003F8007F8003F8007F0003F0007F0003F0007F00 07F000FF0007F000FE0007E000FE0007E000FE000FE000FE000FE000FC000FC1C0FC000F C1C0FC001FC1C0FC001FC3C0FC001F8380FC003F8380FC003F87807C007F87007C00FF07 003E01FF0F003E038F8E001F0F079E0007FE03FC0001F000F000253B77B92A>I<00007F 000003FFC0000FC1E0003F00F0007E007800FC007801F8007803F0007807E000780FE000 780FC000F81FC000F03F8001F03F8007E03F801F807F81FF007FFFF8007FFF80007F0000 00FF000000FE000000FE000000FE000000FE000000FE000000FC000000FC000000FC0000 307C0000387C0000787E0000F03E0001E03E0003C01F000F800F003E000781F80003FFE0 0000FF00001D2677A426>I<000007C00000003FF0000000FC38E00001F01FF00003E01F F00007C00FF0000F800FF0001F8007F0003F0007E0007F0007E0007E000FE000FE000FE0 00FC000FC001FC000FC001FC001FC003FC001FC003F8001F8003F8001F8003F8003F8007 F8003F8007F0003F0007F0003F0007F0007F0007F0007F0007E0007E0007E0007E0007E0 00FE0007E000FE0007E000FC0003E001FC0003E003FC0003E007FC0001F00FF80000F01F F80000787BF800003FF3F800000FC3F000000003F000000007F000000007F000000007E0 00000007E00000000FE00000000FC0001C000FC0007E001FC0007E001F8000FE003F0000 FE007E0000FE00FC00007801F800007C07E000001FFF80000003FE00000024367CA426> 103 D<0003F0000001FFF0000001FFF0000001FFF000000007F000000007E000000007E0 00000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F8000 00001F800000001F800000003F800000003F000000003F000000003F000000007F000000 007E07F000007E1FFC00007E783E0000FFE01F0000FFC01F8000FF800F8000FF000F8001 FE000F8001FE000FC001FC000FC001F8001F8003F8001F8003F0001F8003F0001F8003F0 003F8007F0003F0007E0003F0007E0003F0007E0007F000FE0007E000FC0007E000FC000 FE000FC000FC001FC000FC001F8001FC1C1F8001F81C1F8001F83C3F8003F8383F0003F0 383F0003F0383F0003F0707F0003E0707E0003E0F07E0003E0E07E0003E1C0FE0001E380 FC0000FF003800003C00263B7BB92A>I<0001C00007E00007F0000FF0000FE00007E000 038000000000000000000000000000000000000000000000000000000000000000000000 F00003FC00071E000E1F001C1F001C1F00381F00383F00703F00703F00707F00F07E00E0 7E00E0FE0000FC0000FC0001FC0001F80003F80003F80003F00007F00007E00007E0000F E0E00FC0E00FC1E01FC1C01F81C01F81C01F83801F03801F07001F07001F0E000F1C0007 F80001E000143879B619>I<01E000FE000007F803FF80000E3C0F07C0001E3E3C03E000 1C1F7803F000383FF001F000383FE001F000783FC001F000703FC001F800703F8001F800 703F0003F000F07F0003F000E07E0003F000E07E0003F000007E0007F00000FE0007E000 00FC0007E00000FC0007E00000FC000FE00001FC000FC00001F8000FC00001F8001FC000 01F8001F800003F8001F800003F0003F838003F0003F038003F0003F078007F0007F0700 07E0007E070007E0007E070007E0007E0E000FE0007C0E000FC0007C1E000FC0007C1C00 0FC0007C38001FC0003C78001F80001FE000070000078000292679A42F>110 D<00007F000003FFC0000FC1F0001F00F8007E007C00FC007C01F8007E03F0003E07F000 3F07E0003F0FE0003F1FC0003F1FC0003F3F80003F3F80007F7F80007F7F00007F7F0000 7F7F0000FFFF0000FFFE0000FEFE0000FEFE0001FEFE0001FCFC0001FCFC0003F8FC0003 F8FC0007F0FC0007E0FC000FE07C000FC07E001F803E003F003E007E001F00F8000F83F0 0003FFC00000FE0000202677A42A>I<00078007C000001FE03FF000003CF0787C000038 F8E03E0000787FC03E0000707F801F000070FF001F0000F0FE001F8000E0FE001F8000E0 FC001F8001E1FC001F8001C1FC001F8001C1F8001F8001C1F8001F800003F8003F800003 F8003F800003F0003F800003F0003F800007F0007F800007F0007F800007E0007F000007 E0007F00000FE000FF00000FE000FE00000FC000FE00000FC001FC00001FC001FC00001F C001F800001F8003F800001F8003F000003F8007E000003FC00FC000003FC00F8000003F E01F0000007FE03E0000007F70FC0000007E3FF00000007E0F80000000FE0000000000FE 0000000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F8 0000000003F80000000003F80000000003F00000000007F000000000FFFFC0000000FFFF C0000000FFFFC0000000293580A42A>I<0000FE000007FF80000F83C0003E00E0007C00 F00078007000F800F001F803F001F003F001F003F001F003E003F001C003F8000003FC00 0003FFC00001FFF80001FFFE0000FFFF00007FFF80003FFF80000FFFC00000FFC000003F C000001FC000000FC03E000FC07E000FC0FE000F80FE000F80FE000F80FC001F00E0001F 00F0003E0070007C003800F8001E03E0000FFFC00001FE00001C267AA422>115 D<0003800007C0000FC0000FC0000FC0000FC0001FC0001F80001F80001F80003F80003F 00003F00003F00007F00007E007FFFFF7FFFFFFFFFFF00FC0000FC0000FC0001FC0001F8 0001F80001F80003F80003F00003F00003F00007F00007E00007E00007E0000FE0000FC0 000FC0000FC0001FC0001F801C1F801C1F803C3F80383F00783F00703F00F03F00E03F01 C03E03C01F07800F0F0007FC0001F000183579B31C>I<00F0000E0003FC003F00071E00 7F800E1F007F801C1F007F803C1F007F80381F003F80383F001F80703F000F80703F000F 80707F000F80F07E000F00E07E000700E0FE00070000FC000F0000FC000E0001FC000E00 01F8000E0001F8001E0003F8001C0003F0001C0003F0001C0003F0003C0007F000380007 E000380007E000700007E000700007E000700007E000E00007E000E00007E001C00007E0 03C00003E003800003F007000001F00E000000F83C0000007FF80000000FC00000212679 A426>118 D<00F0000000070003FC0003801F80071E0007C03FC00E1F000FC03FC01C1F 000FC03FC03C1F000FC03FC0381F001FC01FC0383F001F800FC0703F001F8007C0703F00 1F8007C0707F003F8007C0F07E003F800780E07E003F000380E0FE003F00038000FC007F 00078000FC007F00070001FC007E00070001F8007E00070001F800FE000F0003F800FE00 0E0003F000FC000E0003F000FC000E0003F000FC001E0007F001FC001C0007E001F8001C 0007E001F8003C0007E001F800380007E001F800380007E001F800780007E001F8007000 07E003F800F00007E003F800E00003E007F801E00003F00FFC03C00001F01E7C07800000 FC3C3E0F0000003FF81FFE0000000FE003F00000322679A437>I<0007E007C0001FF81F F800787C383C00F03E703C01E01EE0FE03C01FE0FE03801FC0FE07001FC0FC0F001F80FC 0E001F80700E003F80001E003F00001C003F00001C003F000000007F000000007F000000 007E000000007E00000000FE00000000FE00000000FC00000000FC00000001FC00000001 FC00000001F800700001F800700003F800F00003F800E01C03F000E07E03F001E07E07F0 01C0FE07F00380FE0FF00780FE0EF00F00781CF81E0078387C3C003FF03FF00007C00FC0 0027267CA427>I<00F000000003FC0001C0071E0003E00E1F0007E01C1F0007E03C1F00 07E0381F000FE0383F000FC0703F000FC0703F000FC0707F001FC0F07E001F80E07E001F 80E0FE001F8000FC003F8000FC003F0001FC003F0001F8003F0001F8007F0003F8007E00 03F0007E0003F0007E0003F000FE0007F000FC0007E000FC0007E000FC0007E001FC0007 E001F80007E001F80007E001F80007E003F80007E003F00007E007F00003E00FF00003F0 1FF00001F87FE000007FF7E000001FC7E00000000FE00000000FC00000000FC00000001F C0003F001F80007F003F80007F003F00007F007E00007F007C00007E00FC00007001F800 007003E000003807C000003C1F8000000FFE00000003F0000000233679A428>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb ecbi1000 10 48 /Fb 48 123 df<000000001FF80003F80000000000FFFF000FFF0000000003FFFFC03FFF 800000000FF80FE0FF0FC00000001FE00FF1FE1FE00000003FC01FF1FE3FE00000007FC0 3FF3FC7FE00000007F803FF3FC7FE0000000FF803FF7FC7FE0000000FF803FE7FC7FC000 0001FF003FE7FC7FC0000001FF003FCFF87F80000001FF000F0FF81E00000001FF00000F F80000000003FF00000FF80000000003FE00001FF80000000003FE00001FF00000000003 FE00001FF00000000003FE00001FF00000000007FE00001FF00000000007FC00003FF000 00000007FC00003FF00000001FFFFFFFFFFFFFFC00003FFFFFFFFFFFFFFE00003FFFFFFF FFFFFFFE00001FFFFFFFFFFFFFFC0000000FF800007FE0000000000FF800007FC0000000 000FF800007FC0000000000FF800007FC0000000001FF800007FC0000000001FF00000FF C0000000001FF00000FF80000000001FF00000FF80000000001FF00000FF80000000001F F00000FF80000000003FF00000FF80000000003FE00001FF80000000003FE00001FF0000 0000003FE00001FF00000000003FE00001FF00000000007FE00001FF00000000007FC000 03FF00000000007FC00003FE00000000007FC00003FE00000000007FC00003FE00000000 00FFC00003FE0000000000FFC00003FE0000000000FF800007FE0000000000FF800007FC 0000000000FF800007FC0000000000FF800007FC0000000001FF800007FC0000000001FF 00000FFC0000000001FF00000FF80000000001FF00000FF80000000001FF00000FF80000 000003FE00000FF80000000003FE00001FF00000000003FE00001FF00000000003FE0000 1FF00000000003FC00001FE00000000007FC00003FE00000000F07FC0F003FE00000003F 87F83F803FC00000007FC7F87FC03FC0000000FFCFF8FFC07F80000000FFCFF0FFC07F80 000000FFCFF0FFC0FF00000000FF8FE0FF80FE00000000FF9FC0FF81FC00000000FF1F80 FF03F800000000FC3F00FE0FF0000000007FFE007FFFC0000000001FF8001FFF00000000 0007E00003F800000000004B4C81BA3F>27 D<000000001FFFC00000000000FFFFFC0000 000003FFFFFF000000000FF8007F800000001FE0000FC00000003FC0003FE00000007F80 007FE0000000FF80007FE0000000FF0000FFE0000001FF0000FFE0000001FF0000FFC000 0003FE0000FFC0000003FE00007F80000003FE00001E00000007FE00000000000007FC00 000000000007FC00000000000007FC00000000000007FC0000000000000FFC0000000000 000FF80000000000000FF800000000003FFFFFFFFFFE00007FFFFFFFFFFE00007FFFFFFF FFFE00003FFFFFFFFFFC0000001FF00007FC0000001FF00007FC0000001FF0000FFC0000 001FF0000FF80000003FF0000FF80000003FE0000FF80000003FE0001FF80000003FE000 1FF00000003FE0001FF00000003FE0001FF00000007FE0003FF00000007FC0003FE00000 007FC0003FE00000007FC0003FE00000007FC0007FE0000000FFC0007FC0000000FF8000 7FC0000000FF80007FC0000000FF8000FFC0000000FF8000FF80000001FF8000FF83E000 01FF0000FF83E00001FF0001FF87E00001FF0001FF07C00001FF0001FF07C00003FF0001 FF07C00003FF0001FF0F800003FE0001FF0F800003FE0001FF1F000003FE0000FF1F0000 07FE00007F3E000007FC00003FFC000007FC00001FF8000007FC000007E0000007FC0000 000000000FF80000000000000FF800000000000F0FF800000000003F8FF000000000007F CFF00000000000FFDFF00000000000FFDFE00000000000FFDFE00000000000FF9FC00000 000000FFBF800000000000FF3F000000000000FC7E0000000000007FFC0000000000001F F800000000000007E00000000000003B4C81BA38>I<000000FFC000000007FFF8000000 1FFFFE0000007F81FF000001FE007F800003FC003FC00007F8001FC0000FF0001FE0001F E0001FE0001FC0001FE0003FC0001FE0007FC0001FF0007F80001FF000FF80001FF000FF 00001FF001FF00001FF001FF00003FF003FF00003FF003FE00003FF007FE00003FE007FE 00003FE007FC00007FE00FFC00007FE00FFC00007FE00FFC00007FE01FF80000FFC01FF8 0000FFC01FF80000FFC01FF80000FFC03FF00001FF803FF00001FF803FF00001FF803FF0 0001FF807FE00003FF007FE00003FF007FE00003FF007FE00003FE007FC00007FE007FC0 0007FE007FC00007FC00FFC0000FFC00FFC0000FF800FFC0000FF800FF80001FF0007F80 001FF0007F80001FE0007F80003FC0007F80003FC0007F80007F80003F8000FF00003FC0 01FE00001FC003FC00001FE007F800000FF81FE0000003FFFFC0000001FFFE000000003F F00000002C3977B631>48 D<000000070000000F0000001F0000003F0000007F000000FE 000003FE000007FE00001FFE0000FFFC001FFFFC007FFFFC00FFFFFC00FF9FF800701FF8 00003FF800003FF800003FF000003FF000007FF000007FF000007FE000007FE00000FFE0 0000FFE00000FFC00000FFC00001FFC00001FFC00001FF800001FF800003FF800003FF80 0003FF000003FF000007FF000007FF000007FE000007FE00000FFE00000FFE00000FFC00 000FFC00001FFC00001FFC00001FF800001FF800003FF800003FF800003FF000FFFFFFF8 FFFFFFFCFFFFFFFCFFFFFFF8203675B531>I<000000FF0000000007FFE00000001FFFF8 0000007F03FE000001F800FF000003F000FF800007E0007F80000FC0007FC0001F80003F C0003F1C003FC0007E1E003FE0007C1E007FE000FC0E007FE000F80E007FE001F80E007F E001F00E007FE001F01E00FFE003F01C00FFC003E03C00FFC003E03800FFC003E07801FF C003E0F001FF8003E3E003FF8001FFC003FF0000FF8007FE00003C000FFC000000001FF8 000000003FF0000000007FE000000000FFC000000001FF0000000003FE000000000FF800 0000003FF0000000007FC000000001FF0000000007FC000000000FF0000000001FE00000 00003F80000000007F00000FC000FE00000F8001F800000F8003F000001F8007E000003F 800FE000007F000FC00000FF001FFFE003FE001FFFFFFFFE003FFFFFFFFC003E0FFFFFF8 007E03FFFFF0007C00FFFFE000FC007FFFC000F8001FFF8000F8000FFE0000F80001F800 002B3978B631>I<000001FF800000000FFFE00000003FFFF8000000FF01FE000001F800 FF000007F0007F00000FC0007F80001F80007F80003F00007F80003E70007FC0007E7800 7FC0007C78007FC0007C3800FFC000FC3800FF8000F83800FF8000F83800FF8000F87801 FF8000F8F001FF00007FE001FF00003FC003FE00000F0003FE0000000007FC0000000007 F8000000000FF0000000003FE00000007FFFC0000000FFFF00000001FFFC00000001FFFC 0000000003FE0000000000FF00000000007F80000000007FC0000000003FC0000000003F C0000000003FE0000000007FE0000000007FE0001F80007FE0003FC0007FE0007FC000FF E000FFC000FFC000FFC000FFC000FFC000FFC000FFC001FFC000FF8001FF8000FF0001FF 8000F80003FF0000F80003FE0000F80007FC00007C000FF800007E001FF000003F003FE0 00001F80FF8000000FFFFE00000003FFF800000000FF800000002A3976B631>I<000000 007800000001FC00000003FE00000003FE00000007FE00000007FC00000007FC00000007 FC0000000FFC0000000FF80000000FF80000000FF80000001FF00000001FF00000001FF0 0000003FE00000003FE00000007FC00000007FC00000007F80000000FF80000000FF0000 0001FF00000001FE00000003FE00000003FC00000003FC00000007F80000000FF0000000 0FF00000001FE00000001FC00000003FC00000003F800000007F00000000FE03000000FE 0FC00001FC1FE00003F83FE00007F03FE0000FE07FE0000FC07FC0001F807FC0003F007F C0007E00FFC000FC00FF8001F800FF8003F000FF800FE001FF801FFF81FF003FFFF1FF00 FFFFFFFF00FFFFFFFF0EF000FFFFFF60000FFFFF000003FFFC000007FFE0000007FC0000 0007FC00000007FC0000000FFC0000000FF80000000FF80000000FF80000001FF8000000 1FF00000001FF00000001FF00000001FE00000001FE000000007800028477BB631>I<00 03000001C00003C00007C00003FC00FF800007FFFFFF000007FFFFFE000007FFFFFC0000 07FFFFF800000FFFFFF000000FFFFFC000000FFFFF0000000FFFFC0000001FFFF0000000 1F3E000000001F00000000001F00000000003F00000000003E00000000003E0000000000 3E00000000007E00000000007C1FE00000007CFFFC0000007FFFFF000000FFF07F800000 FF807FC00000FE003FE00000FC003FF00001F0003FF00001F0003FF00000E0003FF80000 00003FF8000000003FF8000000007FF8000000007FF8000000007FF8000000007FF80007 0000FFF8001FC000FFF0003FE000FFF0007FE000FFF0007FE001FFF000FFE001FFE000FF E001FFE000FFE001FFC000FFC003FFC000FF8003FF8000FE0007FF8000F80007FF0000FC 000FFE0000FC000FFC00007E001FF800007F007FF000003F81FFE000001FFFFF8000000F FFFE00000003FFF800000000FF800000002A3976B631>I<0000003FC0000001FFF00000 0FFFFC00003FE07E00007F803E0001FF007E0003FC01FF0007F803FF000FF003FF001FF0 07FE003FE007FE007FC007FE007FC007FC00FF8003F801FF8001E001FF80000003FF0000 0007FF00000007FF00000007FE0000000FFE3FF0000FFEFFFC001FFDFFFE001FFFC0FF00 1FFF807F803FFF007FC03FFE003FC03FFC007FE03FFC007FE07FF8007FE07FF8007FE07F F0007FE07FF000FFE0FFF000FFE0FFE000FFE0FFE000FFE0FFE001FFE0FFE001FFC0FFC0 01FFC0FFC001FFC0FFC003FFC0FFC003FF80FF8003FF80FF8003FF80FF8007FF00FF8007 FF00FF8007FE00FF000FFC00FF800FFC007F801FF8007F801FF0003FC03FE0003FE0FF80 001FFFFF00000FFFFC000003FFF00000007F800000283974B631>I<007C0F80007E007C 7FE0007C00FDFFF000FC00FFFFF001F801FFFFF003F003FFFFF807E003FFFFF80FE007FF FFFC3FC007FFFFFFFF800FFF807FFF800FFC000FFF001FF000007E001FE00000FE003F80 0000FC003F000001FC007E000003F8007C000003F800FC000007F000F800000FE0000000 001FE0000000001FC0000000003FC0000000003F80000000007F8000000000FF00000000 00FF0000000001FF0000000003FE0000000003FE0000000007FC0000000007FC00000000 0FF8000000000FF8000000001FF8000000001FF0000000003FF0000000003FF000000000 7FE0000000007FE000000000FFE000000000FFC000000000FFC000000001FFC000000001 FF8000000003FF8000000003FF8000000003FF0000000007FF0000000007FF0000000007 FF0000000007FE000000000FFE000000000FFE000000000FFC000000000FFC0000000007 F80000000001E00000002F3974B631>I<000000FF8000000007FFE00000003FFFF80000 007F01FE000001FC00FE000003F0007F000007E0007F80000FE0003F80000FC0003F8000 1FC0003F80001F80003F80003F80003F80003F80007F80007F80007F00007FC0007F0000 7FC000FF00007FE000FE0000FFF801FE0000FFFC01FC0000FFFE03F800007FFF87F00000 7FFFCFE000007FFFFF8000007FFFFF0000003FFFFC0000003FFFFF0000001FFFFF800000 0FFFFFC000000FFFFFC000003FFFFFE000007FFFFFE00001FC7FFFF00003F81FFFF00007 F00FFFF0000FE003FFF0001FE001FFF0003FC000FFF0003F80003FF0007F80001FF0007F 00001FF0007F00000FF000FF00000FE000FE00000FE000FE00000FE000FE00001FC000FE 00001FC000FE00001F8000FE00003F8000FE00007F0000FF0000FE00007F0001FC00007F 8003F800003FE01FF000001FFFFFC000000FFFFF00000003FFFC000000007FE000000029 3976B631>I<000003FE0000001FFF8000007FFFE00001FF07F00003FC03F80007F803FC 000FF001FC001FF001FE003FE001FE007FE001FE00FFC001FF00FFC001FF01FFC003FF01 FFC003FF03FF8003FF03FF8003FF03FF8007FF07FF8007FF07FF0007FF07FF0007FF07FF 000FFE0FFF000FFE0FFE000FFE0FFE000FFE0FFE001FFE0FFE001FFC0FFC003FFC0FFC00 3FFC0FFC007FFC07FC007FF807FC00FFF803FC01FFF803FC01FFF801FE07FFF000FFFF7F F0007FFE7FF0001FF8FFE0000000FFE0000000FFC0000001FFC0000001FF80000001FF80 0F0003FF003FC003FF007FC007FE00FFC007FC00FFC00FF800FFC00FF000FFC01FF000FF 803FE000FF007FC000FC01FF0000FE07FE00007FFFF800003FFFE000001FFF80000003FC 000000283975B631>I<00000000003E000000000000007F000000000000007F00000000 000000FF00000000000001FF00000000000001FF00000000000003FF00000000000003FF 00000000000007FF0000000000000FFF0000000000000FFF8000000000001FFF80000000 00001FFF8000000000003FFF8000000000007FFF8000000000007FFF800000000000FFFF 800000000000FFFF800000000001F7FF800000000003F7FF800000000003E7FFC0000000 0007C7FFC0000000000FC3FFC0000000000F83FFC0000000001F83FFC0000000001F03FF C0000000003E03FFC0000000007E03FFC0000000007C03FFC000000000FC03FFE0000000 00F803FFE000000001F003FFE000000003F001FFE000000003E001FFE000000007E001FF E000000007C001FFE00000000F8001FFE00000001F8001FFE00000001F0001FFE0000000 3F0001FFF00000003FFFFFFFF00000007FFFFFFFF0000000FFFFFFFFF0000000FFFFFFFF F0000001F00000FFF0000001F00000FFF0000003E00000FFF0000007E00000FFF0000007 C00000FFF000000F800000FFF800000F800000FFF800001F0000007FF800003F0000007F F800003E0000007FF80001FF0000007FF8007FFFF8007FFFFFF07FFFFC007FFFFFF8FFFF F8007FFFFFF07FFFF8007FFFFFF03D3B7ABA48>65 D<0003FFFFFFFFF0000007FFFFFFFF FE000007FFFFFFFFFF800007FFFFFFFFFFE0000007FF0000FFF0000007FF00007FF00000 07FF00003FF800000FFF00001FF800000FFE00001FFC00000FFE00001FFC00000FFE0000 1FFC00001FFE00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0000 3FFC00003FF800003FF800003FF800003FF800003FF000003FF800007FF000007FF80000 FFE000007FF00000FFE000007FF00001FFC000007FF00003FF800000FFF00007FE000000 FFE0001FFC000000FFE000FFF0000000FFFFFFFFC0000001FFFFFFFF80000001FFFFFFFF F0000001FFC0001FF8000001FFC0000FFC000003FFC00007FE000003FF800003FF000003 FF800003FF800003FF800003FF800007FF800003FF800007FF000003FF800007FF000003 FF800007FF000003FF80000FFF000003FF80000FFE000003FF80000FFE000007FF80000F FE000007FF80001FFE000007FF00001FFC00000FFF00001FFC00000FFE00001FFC00001F FE00003FFC00001FFC00003FF800003FF800003FF800007FF800003FF80000FFF000007F F80003FFE000007FF0000FFF8000FFFFFFFFFFFF0000FFFFFFFFFFFC0000FFFFFFFFFFF0 0000FFFFFFFFFF0000003E3979B844>I<000000007FE0001C0000000FFFFC0078000000 7FFFFF00F8000001FFFFFFC1F8000007FFE00FE3F800001FFE0003FFF000007FF80001FF F00000FFE00000FFF00001FFC000007FF00007FF0000007FE0000FFE0000003FE0001FFC 0000003FE0003FF80000001FE0007FF80000001FC0007FF00000001FC000FFE00000001F C001FFE00000001FC001FFC00000000F8003FF800000000F8007FF800000001F8007FF80 0000001F800FFF000000001F000FFF000000001F001FFE0000000000001FFE0000000000 001FFE0000000000003FFC0000000000003FFC0000000000003FFC0000000000007FFC00 00000000007FF80000000000007FF80000000000007FF8000000000000FFF80000000000 00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 0000000000FFE000000001F000FFE000000003F000FFE000000003E000FFE000000003E0 00FFE000000007E000FFE000000007C0007FE00000000FC0007FF00000000F80007FF000 00001F80003FF00000003F00003FF80000007E00001FF80000007C00001FFC000000F800 000FFE000003F0000007FF000007E0000003FF80000FC0000001FFC0003F80000000FFFC 01FE000000003FFFFFF8000000000FFFFFE00000000003FFFF8000000000003FF8000000 003E3D72BA45>I<0003FFFFFFFFE000000007FFFFFFFFFE00000007FFFFFFFFFF800000 07FFFFFFFFFFE000000007FF8003FFF000000007FF80007FF800000007FF80001FFC0000 000FFF80000FFE0000000FFF000007FE0000000FFF000003FF0000000FFF000003FF0000 001FFF000001FF8000001FFE000001FF8000001FFE000001FFC000001FFE000001FFC000 003FFE000000FFC000003FFC000000FFC000003FFC000000FFC000003FFC000000FFC000 007FFC000001FFC000007FF8000001FFC000007FF8000001FFC000007FF8000001FFC000 00FFF8000001FFC00000FFF0000001FFC00000FFF0000003FFC00000FFF0000003FFC000 01FFF0000003FF800001FFE0000003FF800001FFE0000007FF800001FFE0000007FF8000 03FFE0000007FF000003FFC0000007FF000003FFC000000FFF000003FFC000000FFE0000 07FFC000000FFE000007FF8000001FFC000007FF8000001FFC000007FF8000001FF80000 0FFF8000003FF800000FFF0000003FF000000FFF0000007FF000000FFF0000007FE00000 1FFF000000FFC000001FFE000001FF8000001FFE000001FF8000001FFE000003FF000000 3FFE000007FE0000003FFC00001FFC0000003FFC00003FF80000003FFC0000FFE0000000 7FFC0003FFC00000007FF8001FFF000000FFFFFFFFFFFC000000FFFFFFFFFFF0000000FF FFFFFFFF80000000FFFFFFFFF800000000423979B849>I<0003FFFFFFFFFFE00007FFFF FFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF0000007FF8000FFF0000007FF80003FE0 000007FF80000FE000000FFF80000FE000000FFF000007E000000FFF000007E000000FFF 000007E000001FFF000007E000001FFE000007C000001FFE000007C000001FFE000007C0 00003FFE00F007C000003FFC01F007C000003FFC01F007C000003FFC03F007C000007FFC 03F0078000007FF803E0000000007FF807E0000000007FF807E000000000FFF80FE00000 0000FFF03FC000000000FFFFFFC000000000FFFFFFC000000001FFFFFFC000000001FFFF FF8000000001FFE07F8000000001FFE03F8000000003FFE01F8000000003FFC01F000000 0003FFC01F0000000003FFC03F000F000007FFC03F001F000007FF803E001F000007FF80 3E003F000007FF803C003E00000FFF8000003E00000FFF0000007E00000FFF0000007C00 000FFF000000FC00001FFF000000F800001FFE000001F800001FFE000003F800001FFE00 0003F000003FFE000007F000003FFC00000FE000003FFC00001FE000003FFC00007FE000 007FFC0001FFC000007FF8000FFFC000FFFFFFFFFFFF8000FFFFFFFFFFFF8000FFFFFFFF FFFF8000FFFFFFFFFFFF00003C3979B83F>I<0003FFFFFFFFFFC00007FFFFFFFFFFE000 07FFFFFFFFFFE00007FFFFFFFFFFE0000007FF8001FFE0000007FF80007FC0000007FF80 001FC000000FFF80001FC000000FFF00000FC000000FFF00000FC000000FFF00000FC000 001FFF00000FC000001FFE00000F8000001FFE00000F8000001FFE00000F8000003FFE00 000F8000003FFC00F00F8000003FFC00F80F8000003FFC01F80F8000007FFC01F80F0000 007FF801F0000000007FF801F0000000007FF803F000000000FFF807F000000000FFF00F E000000000FFF03FE000000000FFFFFFE000000001FFFFFFE000000001FFFFFFC0000000 01FFFFFFC000000001FFE03FC000000003FFE01FC000000003FFC01F8000000003FFC00F 8000000003FFC01F8000000007FFC01F8000000007FF801F0000000007FF801F00000000 07FF801F000000000FFF801E000000000FFF0000000000000FFF0000000000000FFF0000 000000001FFF0000000000001FFE0000000000001FFE0000000000001FFE000000000000 3FFE0000000000003FFC0000000000003FFC0000000000003FFC0000000000007FFC0000 000000007FF80000000000FFFFFFFE00000000FFFFFFFF00000000FFFFFFFE00000000FF FFFFFE000000003B397AB83C>I<0003FFFFFFF0000007FFFFFFF8000007FFFFFFF80000 07FFFFFFF000000007FF800000000007FF800000000007FF80000000000FFF8000000000 0FFF00000000000FFF00000000000FFF00000000001FFF00000000001FFE00000000001F FE00000000001FFE00000000003FFE00000000003FFC00000000003FFC00000000003FFC 00000000007FFC00000000007FF800000000007FF800000000007FF80000000000FFF800 00000000FFF00000000000FFF00000000000FFF00000000001FFF00000000001FFE00000 000001FFE00000000001FFE00000000003FFE00000000003FFC00000000003FFC0000000 0003FFC00007800007FFC0000F800007FF80000F800007FF80000F800007FF80001F8000 0FFF80001F00000FFF00003F00000FFF00003E00000FFF00007E00001FFF00007E00001F FE0000FC00001FFE0000FC00001FFE0001FC00003FFE0003F800003FFC0007F800003FFC 000FF800003FFC001FF000007FFC007FF000007FF803FFF000FFFFFFFFFFE000FFFFFFFF FFE000FFFFFFFFFFE000FFFFFFFFFFC000313979B83A>76 D<0003FFFFC00001FFFFF000 07FFFFE00003FFFFF80007FFFFE00003FFFFF00007FFFFF00003FFFFF0000007FFF00000 07F800000007FFF8000003E000000007FFF8000007E00000000FFFFC000007E00000000F FFFC000007C00000000FBFFE000007C00000000FBFFE00000FC00000001F9FFF00000FC0 0000001F1FFF00000F800000001F0FFF80000F800000001F0FFF80001F800000003F07FF C0001F800000003E07FFC0001F000000003E03FFE0001F000000003E03FFE0003F000000 007E01FFF0003F000000007C01FFF0003E000000007C00FFF8003E000000007C00FFF800 7E00000000FC007FFC007E00000000F8007FFC007C00000000F8003FFE007C00000000F8 003FFE00FC00000001F8001FFF00FC00000001F0001FFF00F800000001F0000FFF80F800 000001F0000FFF81F800000003F00007FFC1F800000003E00007FFC1F000000003E00003 FFE1F000000003E00003FFE3F000000007E00001FFF3F000000007C00001FFFBE0000000 07C00000FFFBE000000007C00000FFFFE00000000FC000007FFFE00000000F8000007FFF C00000000F8000003FFFC00000000F8000003FFFC00000001F8000001FFFC00000001F00 00000FFF800000001F0000000FFF800000001F00000007FF800000003F00000007FF8000 00003E00000003FF000000003E00000003FF000000003E00000001FF000000007E000000 01FF00000001FE00000000FE000000FFFFFC000000FE000000FFFFFC0000007E000000FF FFFC0000007E000000FFFFFC0000003C0000004D397AB84A>78 D<0003FFFFFFFFE00000 07FFFFFFFFFC000007FFFFFFFFFF000007FFFFFFFFFFC0000007FF8003FFE0000007FF80 00FFF000000FFF80007FF000000FFF80003FF800000FFF00003FF800000FFF00003FF800 001FFF00003FFC00001FFF00003FFC00001FFE00003FFC00001FFE00003FFC00003FFE00 003FFC00003FFE00007FF800003FFC00007FF800003FFC00007FF800007FFC00007FF000 007FFC0000FFF000007FF80000FFE000007FF80000FFE00000FFF80001FFC00000FFF800 01FF800000FFF00003FF000000FFF00007FE000001FFF0001FFC000001FFF000FFF80000 01FFFFFFFFE0000001FFFFFFFF80000003FFFFFFFC00000003FFE0000000000003FFC000 0000000003FFC0000000000007FFC0000000000007FFC0000000000007FF800000000000 07FF8000000000000FFF8000000000000FFF8000000000000FFF0000000000000FFF0000 000000001FFF0000000000001FFF0000000000001FFE0000000000001FFE000000000000 3FFE0000000000003FFE0000000000003FFC0000000000003FFC0000000000007FFC0000 000000007FFC0000000000007FF80000000000FFFFFFF800000000FFFFFFF800000000FF FFFFF800000000FFFFFFF8000000003E397AB841>80 D<0000001FF000E0000000FFFE03 C0000007FFFF87C000000FFFFFCFC000003FE01FFFC000007F8007FF800000FF0003FF80 0001FE0001FF800003FC0000FF800003F80000FF000007F800007F00000FF000007F0000 0FF000007F00000FF000007E00001FE000007E00001FE000007E00001FE000007E00003F E000007C00003FF000007C00003FF000007C00003FF800000000003FFC00000000003FFF 80000000003FFFF8000000003FFFFF800000003FFFFFF00000001FFFFFFC0000001FFFFF FE0000000FFFFFFF0000000FFFFFFF80000007FFFFFF80000003FFFFFFC0000000FFFFFF C00000007FFFFFC000000007FFFFE0000000007FFFE00000000007FFE00000000001FFE0 0000000000FFE00000000000FFE000000000007FE0000F8000007FC0000F8000007FC000 0F8000007FC0001F8000007FC0001F8000007F80001F8000007F80001F8000007F80003F 800000FF00003F800000FF00003F800001FE00003FC00001FC00007FC00003FC00007FE0 0007F800007FF0000FF000007FFC001FE00000FFFF807FC00000FC7FFFFF000000F83FFF FE000000F00FFFF0000000E000FF80000000333D78BA36>83 D<01FFFFFFFFFFFF0003FF FFFFFFFFFF8003FFFFFFFFFFFF8003FFFFFFFFFFFF0007FF807FF803FF0007FC00FFF800 FF0007F000FFF8007F000FE000FFF0003F000FC000FFF0003F000FC001FFF0003F001F80 01FFF0003E001F0001FFE0003E003F0001FFE0003E003F0003FFE0003E003E0003FFE000 3E007E0003FFC0003E007C0003FFC0003E007C0007FFC0007E00FC0007FFC0007C007800 07FF80003C00000007FF8000000000000FFF8000000000000FFF8000000000000FFF0000 000000000FFF0000000000001FFF0000000000001FFF0000000000001FFE000000000000 1FFE0000000000003FFE0000000000003FFE0000000000003FFC0000000000003FFC0000 000000007FFC0000000000007FFC0000000000007FF80000000000007FF8000000000000 FFF8000000000000FFF8000000000000FFF0000000000000FFF0000000000001FFF00000 00000001FFF0000000000001FFE0000000000001FFE0000000000003FFE0000000000003 FFE0000000000003FFC0000000000003FFC0000000000007FFC0000000000007FFC00000 00000007FF80000000007FFFFFFFF8000000FFFFFFFFF8000000FFFFFFFFF8000000FFFF FFFFF0000000393871B742>I<7FFFFFFFFFFFF8FFFFFFFFFFFFFCFFFFFFFFFFFFFCFFFF FFFFFFFFFC7FFFFFFFFFFFF836057C6A4A>95 D<00003FC000000001FFF000000007FFFC F000001FF07FFC00003FC03FFC0000FF801FFC0001FF000FFC0003FE000FFC0003FE000F F80007FC000FF8000FFC000FF8000FF8001FF8001FF8001FF0001FF0001FF0003FF0001F F0003FF0003FF0007FF0003FE0007FE0003FE0007FE0003FE0007FE0007FE000FFE0007F C000FFC0007FC000FFC0007FC000FFC000FFC000FFC000FF8000FF8000FF87C0FF8000FF 87C0FF8001FF87C0FF8001FF0FC0FF8001FF0F80FF8001FF0F807F8003FF1F807F8007FF 1F003FC00FFF1F003FC03FFF3E001FE0FE7F3E0007FFFC3FFC0001FFF01FF800007F8007 E0002A2777A531>97 D<001FE000000FFFE000000FFFE000000FFFE000000FFFE0000000 7FC00000007FC0000000FFC0000000FFC0000000FF80000000FF80000001FF80000001FF 80000001FF00000001FF00000003FF00000003FF00000003FE00000003FE00000007FE00 000007FE3F800007FDFFF00007FFFFFC000FFFC1FE000FFF80FF000FFE007F800FFC007F 801FF8007FC01FF8003FC01FF0003FC01FF0007FC03FF0007FC03FF0007FC03FE0007FC0 3FE0007FC07FE000FFC07FE000FFC07FC000FFC07FC000FFC07FC001FFC0FFC001FF80FF 8001FF80FF8001FF80FF8003FF80FF8003FF00FF0003FF00FF0003FE00FF0007FE00FF00 07FC00FF000FF800FF000FF8007F001FF0007F001FE0007F803FC0003F807F80001FC1FE 00000FFFFC000003FFE0000000FF000000223B76B92C>I<00000FF0000000FFFC000003 FFFF00000FF81F80003FE00FC0007FC01FC000FF803FC001FF007FC003FE00FFC007FC00 FFC00FFC00FFC00FF800FFC01FF800FF801FF0007F003FF00018003FF00000007FF00000 007FE00000007FE00000007FE0000000FFE0000000FFC0000000FFC0000000FFC0000000 FFC0000000FF80000000FF80000000FF80000000FF80000180FF800003C07F800007E07F 80000FE03FC0001FC03FC0007F801FE001FE000FF80FFC0003FFFFF00000FFFFC000001F FC0000232777A52C>I<000000000FF000000007FFF000000007FFF000000007FFF00000 0007FFF0000000003FE0000000003FE0000000007FE0000000007FE0000000007FC00000 00007FC000000000FFC000000000FFC000000000FF8000000000FF8000000001FF800000 0001FF8000000001FF0000000001FF0000000003FF0000003FC3FF000001FFF3FE000007 FFFFFE00001FF07FFE00003FC03FFE0000FF801FFC0001FF000FFC0003FE000FFC0003FE 000FFC0007FC000FF8000FFC000FF8000FF8001FF8001FF8001FF8001FF0001FF0003FF0 001FF0003FF0003FF0007FF0003FF0007FE0003FE0007FE0003FE0007FE0007FE000FFE0 007FE000FFC0007FC000FFC0007FC000FFC000FFC000FFC000FFC000FF8000FF87C0FF80 00FF87C0FF8001FF87C0FF8001FF8FC0FF8001FF0F80FF8001FF0F807F8003FF1F807F80 07FF1F003FC00FFF1F003FC03FFF3E001FE0FE7F3E0007FFFC3FFC0001FFF01FF800007F 8007E0002C3B77B931>I<00000FF0000000FFFE000003FFFF80000FF81FC0003FE00FC0 007F8007E000FF0007E001FE0007E003FE0007E007FC0007E00FFC0007E00FF8000FE01F F8000FC03FF0001FC03FF0007F803FF001FF007FF03FFC007FFFFFF0007FFFFFC0007FFF F00000FFE0000000FFC0000000FFC0000000FFC0000000FFC0000000FF80000000FF8000 0000FF80000000FF800001807F800003C07F800007E07FC0000FE03FC0001FC01FE0007F 801FE001FE0007F80FFC0003FFFFF00000FFFFC000001FFC0000232777A52C>I<000000 007E0000000003FFC000000007FFE00000001FE3F00000003FC7F80000003FCFF8000000 7F9FF80000007F9FF8000000FF9FF8000000FF9FF0000001FF9FF0000001FF1FE0000001 FF0780000001FF0000000001FF0000000003FF0000000003FE0000000003FE0000000003 FE0000000003FE0000000007FE0000000007FC0000001FFFFFFF80001FFFFFFFC0001FFF FFFF80001FFFFFFF8000000FF8000000000FF8000000000FF8000000000FF8000000000F F8000000001FF8000000001FF0000000001FF0000000001FF0000000001FF0000000003F F0000000003FE0000000003FE0000000003FE0000000003FE0000000007FE0000000007F E0000000007FC0000000007FC0000000007FC0000000007FC000000000FFC000000000FF 8000000000FF8000000000FF8000000000FF8000000001FF8000000001FF0000000001FF 0000000001FF0000000001FF0000000003FE0000000003FE0000000003FE0000000003FE 0000000003FC0000000007FC0000000F07FC0000003F87F80000007FC7F8000000FFCFF8 000000FFCFF0000000FFCFF0000000FF8FE0000000FF9FC0000000FF1F80000000FC3F00 0000007FFE000000001FF80000000007E0000000002D4C81BA21>I<000003F800000000 1FFF000000007FFF9E000001FE0FFF800007FC07FF80000FF803FF80001FF001FF80003F E001FF80007FC001FF80007FC001FF0000FF8001FF0001FF8003FF0001FF8003FF0003FF 0003FE0003FF0003FE0003FF0007FE0007FF0007FE0007FE0007FC0007FE0007FC0007FE 000FFC000FFE000FFC000FFC000FF8000FFC000FF8000FFC001FF8000FFC001FF8000FF8 001FF0000FF8001FF0000FF8003FF0000FF8003FF0000FF8003FE00007F8007FE00007F8 00FFE00003FC01FFE00003FC03FFC00001FE0FFFC000007FFFFFC000003FFEFFC0000007 F8FF8000000000FF8000000001FF8000000001FF8000000001FF00000F0001FF00003F80 03FF00007FC003FE0000FFC003FE0000FFC007FE0000FFC00FFC0000FF800FF80000FF80 1FF00000FF003FE00000FF00FF8000003FFFFE0000001FFFF800000001FFC00000002937 7BA52C>I<0003FC00000001FFFC00000001FFFC00000001FFFC00000001FFFC00000000 0FF8000000000FF8000000001FF8000000001FF8000000001FF0000000001FF000000000 3FF0000000003FF0000000003FE0000000003FE0000000007FE0000000007FE000000000 7FC0000000007FC000000000FFC000000000FFC1FF000000FF87FFC00000FF9FFFF00001 FFFE07F80001FFF807FC0001FFF003FC0001FFE003FC0003FFC003FE0003FF8003FE0003 FF0003FE0003FE0003FE0007FE0007FE0007FE0007FC0007FC0007FC0007FC0007FC000F FC000FFC000FFC000FF8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0001F F0001FF0001FF0003FF0003FF0003FE0003FF0003FE0003FE0007FE1F03FE0007FC1F07F E000FFC3F07FE000FF83E07FC000FF83E07FC000FF83E0FFC000FF07C0FFC000FF07C0FF 8000FF0F80FF8000FF1F00FF80007F3E00FF00003FFC00FE00001FF8003C000007E0002C 3B79B931>I<00003C0000007F000001FF000001FF800003FF800003FF000003FF000003 FE000001FC00000070000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000003F000000FFC00003FFE00007C7F0000F87 F8001F07F8001F07F8003E0FF8003E0FF8007C0FF8007C1FF8007C1FF000FC1FF000F83F F000003FE000007FE000007FC000007FC00000FFC00000FF800000FF800001FF800001FF 000003FF000003FE000003FE0F8007FE0F8007FC1F8007FC1F000FFC1F000FF83F000FF8 3E000FF87C000FF07C0007F0F80007F1F00003FFE00000FFC000003E0000193C79BA1E> I<00000007800000001FE00000003FE00000003FE00000007FE00000007FE00000007FE0 0000007FC00000003F800000001E00000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0FC00000007FF0000000FFFC000003F1FE000007E0FE00000FC0FF00000F80FF00001F01 FF00003F01FF00003E01FF00007E01FF00007C03FF0000FC03FF0000F803FE00000003FE 00000007FE00000007FE00000007FC00000007FC0000000FFC0000000FFC0000000FF800 00000FF80000001FF80000001FF80000001FF00000001FF00000003FF00000003FF00000 003FE00000003FE00000007FE00000007FE00000007FC00000007FC0000000FFC0000000 FFC0000000FF80000000FF80000001FF80000001FF80000001FF00000F01FF00003F83FF 00007FC3FE0000FFC3FE0000FFC7FC0000FFC7FC0000FF8FF80000FF9FF00000FF3FE000 00FC7F8000007FFF0000003FF80000000FC0000000234C81BA1E>I<0007F803FFF803FF F803FFF803FFF8001FF0001FF0003FF0003FF0003FE0003FE0007FE0007FE0007FC0007F C000FFC000FFC000FF8000FF8001FF8001FF8001FF0001FF0003FF0003FF0003FE0003FE 0007FE0007FE0007FC0007FC000FFC000FFC000FF8000FF8001FF8001FF8001FF0001FF0 003FF0003FF0003FE0003FE0007FE0007FE0007FC3E07FC3E0FFC3E0FFC7E0FF87C0FF87 C0FF8FC0FF8F80FF8F807F9F003F9F003FFE000FFC0003F000153B78B919>108 D<01F8000FF0000FF8000007FE007FFE003FFE00000FFF81FFFF80FFFF80000FBFC3F07F C3F03FC0001F1FCF803FE7C03FE0003E1FFF001FEF801FE0003E1FFE001FFF001FE0003E 3FFC001FFE001FF0007C3FF8001FFC001FF0007C3FF0001FF8001FF0007C3FF0001FF000 1FF000FC3FE0003FF0003FF000F87FE0003FE0003FE000F87FC0003FE0003FE000007FC0 003FE0003FE000007FC0007FE0007FE00000FFC0007FE0007FC00000FF80007FC0007FC0 0000FF80007FC0007FC00000FF8000FFC000FFC00001FF8000FFC000FF800001FF0000FF 8000FF800001FF0000FF8001FF800001FF0001FF8001FF000003FF0001FF8001FF000003 FE0001FF0003FF0F8003FE0001FF0003FE0F8003FE0003FF0007FE1F8007FE0003FF0007 FC1F0007FC0003FE0007FC1F0007FC0003FE0007FC1F0007FC0007FE0007F83E000FFC00 07FE0007F83E000FF80007FC0007F87C000FF80007FC0007F8F8000FF80007FC0003F9F0 000FF00007F80001FFE0000FE00007F00000FFC00003C00001E000003F0000492779A54E >I<01F8000FF0000007FE007FFE00000FFF81FFFF80000FBFC3F07FC0001F1FCF803FE0 003E1FFF001FE0003E1FFE001FE0003E3FFC001FF0007C3FF8001FF0007C3FF0001FF000 7C3FF0001FF000FC3FE0003FF000F87FE0003FE000F87FC0003FE000007FC0003FE00000 7FC0007FE00000FFC0007FC00000FF80007FC00000FF80007FC00000FF8000FFC00001FF 8000FF800001FF0000FF800001FF0001FF800001FF0001FF000003FF0001FF000003FE00 03FF0F8003FE0003FE0F8003FE0007FE1F8007FE0007FC1F0007FC0007FC1F0007FC0007 FC1F0007FC0007F83E000FFC0007F83E000FF80007F87C000FF80007F8F8000FF80003F9 F0000FF00001FFE0000FE00000FFC00003C000003F0000312779A536>I<00000FF80000 00FFFF000003FFFFC0000FF81FF0003FE007F8007FC003FC00FF8003FE01FF0001FE03FE 0001FF07FC0001FF0FFC0001FF0FF80001FF1FF80001FF1FF00001FF3FF00001FF3FF000 03FF7FF00003FF7FE00003FF7FE00003FF7FE00007FFFFE00007FEFFC00007FEFFC00007 FEFFC0000FFCFFC0000FFCFF80000FFCFF80001FF8FF80001FF0FF80003FF0FF80003FE0 7F80007FC07F80007F803FC000FF003FC001FE001FE007FC000FF81FF00003FFFFC00000 FFFF0000001FF00000282777A531>I<000FC003FC00003FF00FFF80007FFC3FFFE0007D FEFE0FF000F8FFF807F801F8FFF003FC01F0FFC003FC01F1FFC003FE03E1FF8003FE03E1 FF0003FE03E1FF0003FE07E3FF0003FE07C3FF0003FE07C3FE0003FE0003FE0003FE0007 FE0007FE0007FE0007FE0007FC0007FE0007FC0007FE000FFC000FFE000FFC000FFC000F F8000FFC000FF8000FFC001FF8001FFC001FF8001FF8001FF0001FF8001FF0003FF0003F F0003FF0003FF0003FE0003FE0007FC0003FE0007FC0007FE000FF80007FF001FF00007F F003FE00007FF807FC0000FFFC0FF00000FFFFFFC00000FF9FFF000000FF87F8000001FF 8000000001FF8000000001FF0000000001FF0000000003FF0000000003FF0000000003FE 0000000003FE0000000007FE0000000007FE0000000007FC000000007FFFE0000000FFFF F0000000FFFFF0000000FFFFE00000002F367EA531>I<00FC007F8003FF01FFF007FFC7 FFFC0F9FEFC0FE1F0FFF003F1F0FFE00FF3E0FFC01FF3E1FFC01FF3E1FF803FF7C1FF003 FF7C1FF003FF7C1FF003FEFC3FF001FCF83FE000F0003FE00000003FE00000007FE00000 007FC00000007FC00000007FC0000000FFC0000000FF80000000FF80000000FF80000001 FF80000001FF00000001FF00000001FF00000003FF00000003FE00000003FE00000003FE 00000007FE00000007FC00000007FC00000007FC00000007F800000007F000000001E000 0000282779A52A>114 D<00003FC00001FFF00007FFFC000FE07E001F803F003F003F00 7E00FF007E00FF00FE01FF00FC01FF00FC01FF00FE01FE01FE00FC01FF803001FFF80000 FFFF8000FFFFE000FFFFF0007FFFF8003FFFFC001FFFFC0003FFFE00003FFE000007FE0F 8001FE3FC000FE7FC000FE7FC000FEFFC000FCFFC000FCFFC000FCFF8001F8FF0003F07C 0003F07E000FE03FC03F801FFFFF0007FFFC0000FFC000202779A528>I<0000F0000003 F8000007F8000007FC00000FF800000FF800000FF800001FF800001FF800001FF000001F F000003FF000003FF000003FE000003FE000007FE000007FE000FFFFFF80FFFFFFC0FFFF FFC0FFFFFF8000FF800000FF800001FF800001FF800001FF000001FF000003FF000003FF 000003FE000003FE000007FE000007FE000007FC000007FC00000FFC00000FFC00000FF8 00000FF800001FF800001FF800001FF007C01FF007C03FF00FC03FF00F803FE01F803FE0 1F003FE03E003FE07E003FC07C001FE0F8000FE3F0000FFFE00003FF800000FE00001A37 78B520>I<003F0000000000FFC0000F0003FFF0001FC007E7F8003FC00F83F8007FC00F 87F8007FC01F07FC007FC03E07FC00FFC03E07FC00FFC07E0FFC00FF807C0FF800FF807C 1FF801FF80FC1FF001FF80F81FF001FF00003FF001FF00003FE003FF00003FE003FF0000 7FE003FE00007FC003FE00007FC007FE0000FFC007FE0000FF8007FC0000FF8007FC0000 FF800FFC0001FF800FFC0001FF000FF83E01FF000FF83E01FF001FF87E01FF001FF87C01 FF001FF07C01FF001FF07C01FF003FF0F801FF003FF0F800FF007FF1F000FF80FFF1F000 7F83F7F3E0003FFFC3FFC0000FFF81FF800001FC007E002F2779A534>I<007E0001E001 FF8003F803FFE007FC07C7F00FFC0F87F01FFE1F0FF01FFE1F0FF81FFE3E0FF81FFE3E0F F80FFE7C1FF007FE7C1FF003FE7C3FF001FEFC3FE000FCF83FE000FC007FE000FC007FC0 00FC007FC000F800FFC000F800FF8000F800FF8001F801FF8001F001FF0001F001FF0001 F001FF0003E003FF0003E003FE0003E003FE0007C003FE0007C003FE000F8003FE000F80 03FE001F0003FE001E0001FE003E0001FF007C0000FF00F800007F81F000003FFFE00000 0FFF80000001FE0000272779A52C>I<003F000000001E0000FFC0001E007F8003FFF000 3F80FFC007E7F8007F80FFC00F83F800FF81FFE00F87F800FF81FFE01F07FC00FF81FFE0 3E07FC01FF81FFE03E07FC01FF00FFE07E0FFC01FF007FE07C0FF801FF003FE07C1FF803 FF001FE0FC1FF003FE000FC0F81FF003FE000FC0003FF003FE000FC0003FE007FE000FC0 003FE007FC000F80007FE007FC000F80007FC007FC000F80007FC00FFC001F8000FFC00F F8001F0000FF800FF8001F0000FF800FF8001F0000FF800FF8003F0001FF801FF8003E00 01FF001FF0003E0001FF001FF0007C0001FF001FF0007C0001FF001FF0007C0001FF001F F000F80001FF001FF000F80001FF003FF001F00000FF003FF001E00000FF807FF803E000 007F80FFF807C000003FC1FBFC0F8000001FFFF1FFFF00000007FFC07FFC00000000FF00 0FF000003B2779A540>I<0007F800FE00001FFE03FF80007FFF87FFC001FC1FCF87E003 F00FFF03F007E00FFE0FF00FC00FFE1FF00F800FFC1FF01F000FFC3FF03F000FF83FF03E 000FF83FF03E001FF83FE07E001FF01FC07C001FF00F0000001FF0000000003FF0000000 003FE0000000003FE0000000003FE0000000007FE0000000007FC0000000007FC0000000 007FC000000000FFC000000000FF8000000F00FF8003E03FC0FF8003E07FC1FF8007E0FF C1FF8007C0FFC1FF000FC0FFC1FF000F80FFC3FF001F80FF83FF003F00FF07FF007E00FC 0FFF80FC007E1FBFC1F8003FFF1FFFE0001FFC07FF800003F001FE00002C277AA52F>I< 003F0000000000FFC0000F0003FFF0001FC007E7F8003FC00F83F8007FC00F87F8007FC0 1F07FC007FC03E07FC00FFC03E07FC00FF807E0FFC00FF807C0FF800FF807C1FF801FF80 FC1FF001FF00F81FF001FF00003FF001FF00003FE003FF00003FE003FE00007FE003FE00 007FC003FE00007FC007FE0000FFC007FC0000FF8007FC0000FF8007FC0000FF800FFC00 01FF800FF80001FF000FF80001FF000FF80001FF001FF80001FF001FF00001FF001FF000 01FF001FF00001FF003FF00001FF003FE00000FF007FE00000FF80FFE000007F83FFE000 003FFFFFC000000FFFFFC0000001FC7FC000000000FFC000000000FF800003C000FF8000 0FF001FF00001FF001FF00003FF003FE00003FF003FE00003FF007FC00003FF00FF80000 3FE00FF000003FC01FE000003F007F8000001FC0FF0000000FFFFC00000003FFF0000000 00FF800000002A3779A52F>I<0000FC001F0003FF001F000FFF803F001FFFC07E003FFF E07C007FFFF8FC00FFFFFFF800FFFFFFF001FFFFFFE001F8000FC001F0001F800000003F 000000007E00000000FC00000001F800000003F000000007E00000001FC00000003F0000 00007E00000000FC00000001F800000003F00000000FE00000001F800000003F00007C00 7E00007C00FC0000FC01F80001F803F00007F807FFFFFFF00FFFFFFFF00FFFFFFFE01F83 FFFFC03F01FFFF807E00FFFF007C003FFE00FC001FF800F80007E00028277BA529>I E %EndDVIPSBitmapFont /Fc 193[65 1[65 60[{}2 83.022 /CMMI10 rf %DVIPSBitmapFont: Fd ecbx0700 7 26 /Fd 26 122 df<001FF00000FFFE0003FFFF8007F83FC00FE00FE01FC007F01F8003F03F 8003F83F0001F87F0001FC7F0001FC7F0001FC7F0001FCFF0001FEFF0001FEFF0001FEFF 0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF 0001FEFF0001FE7F0001FC7F0001FC7F0001FC3F8003F83F8003F83F8003F81FC007F00F E00FE007F83FC003FFFF8000FFFE00001FF0001F277DA526>48 D<0003C000000FC00000 3FC00007FFC000FFFFC000FFFFC000F83FC000003FC000003FC000003FC000003FC00000 3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000 3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000 3FC000003FC000003FC000003FC000003FC000003FC0007FFFFFE07FFFFFE07FFFFFE01B 267BA526>I<007FC00003FFF8000FFFFE003F81FF807E007FC07F003FE0FF801FF0FF80 1FF0FF800FF8FF800FF8FF800FF87F000FF83E000FF800000FF800000FF800001FF00000 1FF000003FE000003FC000007F800000FF000001FC000003F8000007E000000FC000001F 8078003E0078007C007800F800F001E000F007FFFFF00FFFFFF01FFFFFF03FFFFFF07FFF FFF0FFFFFFE0FFFFFFE0FFFFFFE01D267CA526>I<000003E000000007E00000000FE000 00001FE00000003FE00000007FE0000000FFE0000001FFE0000001EFE0000003CFE00000 078FE000000F0FE000001F0FE000003E0FE000007C0FE00000F80FE00001F00FE00001E0 0FE00003C00FE00007800FE0000F000FE0001F000FE0003E000FE0007C000FE000F8000F E000FFFFFFFF80FFFFFFFF80FFFFFFFF8000001FE00000001FE00000001FE00000001FE0 0000001FE00000001FE00000001FE000000FFFFF80000FFFFF80000FFFFF8021267EA526 >52 D<0001FE00001FFF80007F03E000FC01F003F801F007F003F80FE007F81FE007F81F C007F83FC007F83FC003F07F8001E07F8000007F800000FF87FE00FF9FFF80FFBFFFC0FF F80FF0FFF007F8FFE007F8FFC003FCFFC003FCFFC003FEFF8003FEFF8003FEFF8003FE7F 8003FE7F8003FE7F8003FE7F8003FE3F8003FC3FC003FC1FC007FC1FE007F80FF00FF007 F81FE001FFFF80007FFE00001FF8001F277DA526>54 D<3C0000003F0000003FFFFFFF3F FFFFFF3FFFFFFF7FFFFFFE7FFFFFFC7FFFFFF87FFFFFF07FFFFFE0780007C078000F80F0 001F00F0003E00F0007C000000F8000001F0000001F0000003E0000007E0000007C00000 0FC000001F8000001F8000003F8000003F8000003F8000007F0000007F0000007F000000 FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007E000000 3C000020287CA626>I<001FF80000FFFF0003E01FC007C007E00F8003F01F0003F81F00 01F83F0001F83F8001F83F8001F83FC001F83FF003F83FFC03F03FFF07E01FFFCFE01FFF FF800FFFFE0007FFFF0001FFFFC001FFFFE007FFFFF01FC7FFF83F81FFFC7F007FFC7E00 1FFEFE0007FEFC0003FEFC0000FEFC0000FEFC00007EFC00007EFE00007C7E0000FC7F00 00F83F8001F01FE00FE00FFFFFC003FFFF00003FF8001F277DA526>I<1E007F807F80FF C0FFC0FFC0FFC07F807F801E000000000000000000000000001E007F807F80FFC0FFC0FF C0FFC07F807F801E000A1A7B9915>58 D68 D<00000FFC0038000001FFFFC078000007FFFFF0 F800001FFC01FDF800007FE0003FF80001FF80001FF80003FE00000FF80007FC000007F8 000FF8000003F8001FF8000001F8001FF0000001F8003FF0000000F8003FE0000000F800 7FE000000078007FE000000078007FC00000007800FFC00000000000FFC00000000000FF C00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0 0000000000FFC0001FFFFFC0FFC0001FFFFFC07FC0001FFFFFC07FE000000FF8007FE000 000FF8003FE000000FF8003FF000000FF8001FF000000FF8001FF800000FF8000FF80000 0FF80007FC00000FF80003FE00000FF80001FF80001FF800007FE0003FF800001FFC00FF F8000007FFFFF8F8000001FFFFE0180000000FFF000000322A7CA83B>71 D<00003FF800000003FFFF8000001FFFFFF000003FF01FF80000FF8003FE0001FE0000FF 0003FC00007F8007F800003FC00FF800003FE01FF000001FF01FF000001FF03FE000000F F83FE000000FF87FE000000FFC7FC0000007FC7FC0000007FCFFC0000007FEFFC0000007 FEFFC0000007FEFFC0000007FEFFC0000007FEFFC0000007FEFFC0000007FEFFC0000007 FEFFC0000007FEFFC0000007FE7FC0000007FC7FE000000FFC7FE000000FFC3FE000000F F83FE000000FF81FF000001FF01FF000001FF00FF800003FE007FC00007FC003FC00007F 8001FF0001FF0000FF8003FE00007FF01FFC00001FFFFFF0000003FFFF800000003FF800 002F2A7CA838>79 D<7FFFFFFFFFF07FFFFFFFFFF07FFFFFFFFFF07F803FE00FF07E003F E003F07C003FE001F078003FE000F0F8003FE000F8F8003FE000F8F0003FE00078F0003F E00078F0003FE00078F0003FE00078F0003FE0007800003FE0000000003FE0000000003F E0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003F E0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003F E0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003F E0000000003FE00000007FFFFFF000007FFFFFF000007FFFFFF0002D277DA634>84 D<00FFF0000007FFFE00000FFFFF80001FE03FE0001FE01FF0001FE00FF0001FE007F800 1FE007F800078007F800000007F800000007F800003FFFF80003FFFFF8000FFE07F8003F E007F8007F8007F800FF0007F800FE0007F800FE0007F800FE0007F800FF000FF800FF00 1FF8007FC07FF8003FFFFBFFC00FFFE1FFC001FF00FFC0221A7E9925>97 DI<001FFC0000FFFF80 03FFFFC00FF81FE01FE01FE03FC01FE03F801FE07F801FE07F800780FF000000FF000000 FF000000FF000000FF000000FF000000FF000000FF0000007F8000007F8000003FC000F0 3FE001F01FF001E00FFC07E003FFFFC000FFFF00001FF8001C1A7E9921>I<000007FF80 000007FF80000007FF800000007F800000007F800000007F800000007F800000007F8000 00007F800000007F800000007F800000007F800000007F800000007F80001FF87F8000FF FF7F8003FFFFFF800FF807FF801FE001FF803FC000FF803F80007F807F80007F807F8000 7F80FF00007F80FF00007F80FF00007F80FF00007F80FF00007F80FF00007F80FF00007F 80FF00007F807F00007F807F80007F803F8000FF803FC001FF801FE003FF800FF80FFF80 03FFFFFFF800FFFE7FF8001FF07FF825287EA72A>I<003FF80001FFFE0003FFFF800FF8 3FC01FE007E03FC003E03F8003F07F8001F07F0001F8FF0001F8FF0001F8FFFFFFF8FFFF FFF8FFFFFFF8FF000000FF000000FF0000007F8000007F8000003F8000781FC000780FE0 00F807F807F003FFFFE000FFFFC0001FFE001D1A7E9922>I<0003FE00001FFF80007FFF C001FF1FE003FE1FE003FC1FE007F81FE007F81FE007F80FC007F8000007F8000007F800 0007F8000007F80000FFFFF000FFFFF000FFFFF00007F8000007F8000007F8000007F800 0007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800 0007F8000007F8000007F8000007F8000007F8000007F8000007F800007FFFC0007FFFC0 007FFFC0001B287EA717>I<0000001E00003FE07F8001FFFDFFC007FFFFCFC00FE03F8F C01FC01FCFC01F800FCFC03F800FE3003F800FE0003F800FE0003F800FE0003F800FE000 1F800FC0001FC01FC0000FE03F800007FFFF00000FFFFC00000E3FE000001E000000001E 000000001F000000001FFFFF00001FFFFFE0000FFFFFF8000FFFFFFE0007FFFFFF000FFF FFFF003FFFFFFF807F0000FF80FE00003F80FC00001F80FC00001F80FE00003F807E0000 3F007F8000FF003FE003FE000FFFFFF80003FFFFE000003FFE000022277E9A26>I110 D<001FFC000000FFFF800003FFFFE00007F80FF0000FE003F8001F8000FC003F8000FE00 7F00007F007F00007F007F00007F00FF00007F80FF00007F80FF00007F80FF00007F80FF 00007F80FF00007F80FF00007F807F00007F007F8000FF003F8000FE003FC001FE001FE0 03FC000FF80FF80003FFFFE00000FFFF8000001FFC0000211A7E9926>I114 D<00780000780000780000780000F80000F80001F80001F80003F80007F8001FF800FFFF FCFFFFFCFFFFFC07F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 0007F80007F80007F80007F81E07F81E07F81E07F81E07F81E07F83E03FC7C01FFF800FF F0003FC017257FA41D>116 DI120 D<7FFF007FF07FFF007FF07FFF007FF007F8001F8007FC001F0003FC001E0003FE003E00 01FE003C0001FF007C0000FF00780000FF80F800007FC0F000007FC1F000003FE1E00000 1FE3E000001FF3C000000FF7C000000FFF80000007FF80000007FF00000003FF00000003 FE00000001FE00000001FC00000000FC00000000F800000000F800001800F000007E01F0 0000FF01E00000FF03E00000FF07C00000FF0F8000007A3F0000007FFE0000003FF80000 000FE000000024257F9928>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe ectt0800 8 75 /Fe 75 126 df<7801E0FC03F0FE07F0FE07F0FE07F0FE07F0FC03F0FC03F0FC03F0FC03 F0FC03F0FC03F0FC03F0FC03F0FC03F0FC03F0FC03F07C03E07C03E03000C0141479A923 >34 D<00380700007C0F80007C0F80007C0F80007C0F80007C0F80007C0F8000FC1F8000 F81F0000F81F0000F81F007FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF801F03E0001 F03E0001F03E0001F03E0001F03E0001F03E0001F03E0001F03E0001F03E0001F03E007F FFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF803E07C0003E07C0007E0FC0007C0F80007 C0F80007C0F80007C0F80007C0F80007C0F800038070001E297EA823>I<000E0000001F 0000001F0000001F0000001F0000007FC00003FFF00007FFFC001FFFFE003FFFFF007FDF FF807F1F1F80FE1F0FC0FC1F0FC0F81F1FC0F81F1FC0F81F1FC0FC1F1FC0FC1F0F80FE1F 07007F1F00003FDF00003FFF00000FFFC00007FFF00001FFFC00007FFE00001FFF00001F 7F80001F1F80001F1FC07C1F0FC0FE1F07C0FE1F07C0FE1F07C0FE1F07C0FC1F0FC0FC1F 0FC07E1F1F807F1F3F807FDFFF003FFFFE001FFFFC0007FFF80003FFE000007F8000001F 0000001F0000001F0000001F0000001F0000000E00001A347CAD23>I<1F003F807FC07F E07FF07FF07FF03FF01FF001F001F003F003F003E007E00FE01FC03FC07F80FF00FE00F8 0070000C1774A823>39 D<000380000FC0001FC0003F8000FF0000FE0001F80003F80007 F0000FE0000FC0001F80001F80003F00003F00003E00007E00007E00007C00007C0000FC 0000FC0000F80000F80000F80000F80000F80000F80000F80000F80000FC0000FC00007C 00007C00007E00007E00003E00003F00003F00001F80001F80000FC0000FE00007F00003 F80001F80000FE0000FF00003F80001FC0000FC0000380123476AD23>I<700000FC0000 FE00007F00003FC0001FC00007E00007F00003F80001FC0000FC00007E00007E00003F00 003F00001F00001F80001F80000F80000F80000FC0000FC00007C00007C00007C00007C0 0007C00007C00007C00007C0000FC0000FC0000F80000F80001F80001F80001F00003F00 003F00007E00007E0000FC0001FC0003F80007F00007E0001FC0003FC0007F0000FE0000 FC000070000012347AAD23>I<001E0000001E0000001F0000001E0000001E0000001E00 00701E03807C1E0F80FE1E1FC07F9E7F807FFFFF801FFFFE0007FFF80001FFE000007F80 0001FFE00007FFF8001FFFFE007FFFFF807F9E7F80FE1E1FC07C1E0F80701E0380001E00 00001E0000001E0000001F0000001E0000001E00001A1D7CA223>I<1F003F807FC07FE0 7FE07FE07FE03FE01FE007E007E00FC01FC07F80FF00FE00FC0070000B12748823>44 D<7FFFF8FFFFFCFFFFFCFFFFFC7FFFF816057A9023>I<3E007F00FF80FF80FF80FF80FF 807F003E000909738823>I<00000380000007C0000007C000000FC000000F8000001F80 00001F0000001F0000003F0000003E0000007E0000007C000000FC000000F8000001F800 0001F0000001F0000003F0000003E0000007E0000007C000000FC000000F8000001F8000 001F0000003F0000003E0000003E0000007E0000007C000000FC000000F8000001F80000 01F0000003F0000003E0000003E0000007E0000007C000000FC000000F8000001F800000 1F0000003F0000003E0000003E0000007E0000007C000000FC000000F8000000F8000000 700000001A347CAD23>I<001F8000007FE00001FFF80003FFFC0007FFFE0007F0FE000F C03F001F801F801F000F803F000FC03E0007C03E0007C07C0003E07C0003E07C0003E078 0001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F8 0001F0F80001F0F80001F07C0003E07C0003E07C0003E07E0007E03E0007C03E0007C03F 000FC01F801F801F801F800FC03F0007F0FE0007FFFE0003FFFC0001FFF800007FE00000 1F80001C2B7DA923>I<001800003C00007C00007C0000FC0001FC0003FC0007FC007FFC 00FFFC00FFFC00FF7C007C7C00007C00007C00007C00007C00007C00007C00007C00007C 00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C 00007C00007C00007C00007C007FFFFC7FFFFE7FFFFE7FFFFE7FFFFC172A7AA923>I<00 7FC00003FFF00007FFFC001FFFFE003FFFFF807F80FF807E003FC0FE000FE0FC0007E0FE 0003F0FE0003F0FE0003F0FE0001F07C0001F0380001F0000001F0000003F0000003F000 0007E0000007E000000FC000001FC000003F8000003F000000FE000001FE000003F80000 07F000000FE000003FC000007F800000FE000001FC000003F800000FF000E01FE001F03F 8001F07FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE01C2A7DA923>I<007FC00001FF F00007FFFC000FFFFE001FFFFF003FE07F803F801FC03F800FC03F8007C03F8007C03F80 07C00E0007C000000FC000000FC000001F8000003F800001FF00007FFE0000FFFC0000FF F80000FFFC00007FFF0000007F8000001FC000000FE0000007E0000003F0000003F00000 01F0000001F07C0001F0FE0001F0FE0003F0FE0003F0FE0007E0FC000FE0FE001FC07FC0 7FC03FFFFF801FFFFF000FFFFC0003FFF800007FC0001C2B7DA923>I<0000FC000001FE 000003FE000003FE000007DE00000FDE00000F9E00001F1E00003F1E00003E1E00007E1E 00007C1E0000F81E0001F81E0001F01E0003E01E0007E01E0007C01E000FC01E001F801E 001F001E003F001E003E001E007C001E00FC001E00FFFFFFF8FFFFFFFCFFFFFFFCFFFFFF FC7FFFFFF800001E0000001E0000001E0000001E0000001E0000001E0000001E000007FF F8000FFFFC000FFFFC000FFFFC0007FFF81E2A7EA923>I<1FFFFF003FFFFF803FFFFF80 3FFFFF803FFFFF003E0000003E0000003E0000003E0000003E0000003E0000003E000000 3E0000003E0000003E0000003E1FE0003EFFF8003FFFFE003FFFFF003FFFFF803FE03FC0 3F800FC03F0007E01E0007E0000003F0000003F0000001F0000001F0380001F0FE0001F0 FE0001F0FE0003F0FE0003F0FE0007E0FC000FE07E001FC07FC0FF803FFFFF001FFFFE00 07FFFC0003FFF000007F80001C2A7DA823>I<0003F800001FFE00003FFF0000FFFF8001 FFFFC003FE0FC007F01FC00FE01FC01FC01FC01F801FC03F800F803F0000007E0000007E 0000007C0100007C3FF000FCFFFC00FFFFFE00FFFFFF00FFFFFF80FFC03FC0FF000FE0FF 0007E0FE0007E0FC0003F0FC0003F0FC0001F0FC0001F0FC0001F07C0001F07C0001F07E 0003F07E0003F03F0003F03F0007E03F800FE01FC01FC00FF07F800FFFFF0007FFFE0001 FFFC0000FFF000003FC0001C2B7DA923>I<70000000FFFFFFE0FFFFFFF0FFFFFFF0FFFF FFF0FFFFFFF0F8000FE0F8001FC070001F8000003F0000007E000000FE000000FC000001 F8000001F8000003F0000003E0000007E0000007C000000FC000000F8000001F8000001F 8000001F0000003F0000003F0000003E0000007E0000007E0000007C0000007C0000007C 000000FC000000FC000000F8000000F8000000F8000000F8000000F8000000F8000000F8 000000F80000007000001C2B7DA923>I<003FC00001FFF80003FFFC0007FFFE000FFFFF 001FE07F803F801FC03F000FC07E0007E07C0003E07C0003E07C0003E07C0003E07E0007 E03E0007C01F000F801FC03F8007FFFE0003FFFC0000FFF00000FFF00003FFFC000FF0FF 001F801F803F000FC07E0007E07C0003E0FC0003F0F80001F0F80001F0F80001F0F80001 F0F80001F0FC0003F07E0007E07E0007E03F801FC01FE07F801FFFFF800FFFFF0003FFFC 0001FFF800003FC0001C2B7DA923>I<003FC00000FFF00003FFF80007FFFE000FFFFF00 1FE07F803F803F807F001FC07E000FC0FE0007E0FC0007E0FC0007E0F80003E0F80003F0 F80003F0F80003F0F80003F0FC0003F0FC0003F07E0007F07E000FF07F000FF03FC03FF0 1FFFFFF00FFFFFF007FFFDF003FFF3F000FFC3F0000803E0000007E0000007E000000FC0 1F000FC03F801F803F803F803F807F003F80FE003F83FE003FFFFC001FFFF0000FFFE000 03FF800001FE00001C2B7DA923>I<3E007F00FF80FF80FF80FF80FF807F003E00000000 000000000000000000000000000000000000003E007F00FF80FF80FF80FF80FF807F003E 00091D739C23>I<1F003F807FC07FC07FC07FC07FC03F801F0000000000000000000000 0000000000000000000000001F003F807FC07FE07FE07FE07FE03FE01FE007E007E00FC0 1FC07F80FF00FE00FC0070000B26749C23>I<00000380000007C000001FC000003FC000 00FF800001FF000007FC00000FF800003FE000007FC00000FF000003FE000007F800001F F000003FE00000FF800000FF000000FF000000FF8000003FE000001FF0000007F8000003 FE000000FF0000007FC000003FE000000FF8000007FC000001FF000000FF8000003FC000 001FC0000007C0000003801A227CA423>I<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFF FFF80000000000000000000000000000000000000000000000007FFFFFF8FFFFFFFCFFFF FFFCFFFFFFFC7FFFFFF81E107E9B23>I<70000000F8000000FE000000FF0000007FC000 003FE000000FF8000007FC000001FF000000FF8000003FC000001FF0000007F8000003FE 000001FF0000007FC000003FC000003FC000007FC00001FF000003FE000007F800001FF0 00003FC00000FF800001FF000007FC00000FF800003FE000007FC00000FF000000FE0000 00F8000000700000001A227CA423>I<000FC000000FC000001FE000001FE000001FE000 001FE000003CF000003CF000003CF000003CF000003CF000007CF800007CF800007CF800 0078780000F87C0000F87C0000F87C0000F87C0000F87C0001F03E0001F03E0001F03E00 01F03E0003F03F0003E01F0003E01F0003FFFF0003FFFF0007FFFF8007FFFF8007FFFF80 07C00F800FC00FC00F8007C00F8007C00F8007C07FF03FF8FFF03FFCFFF03FFCFFF03FFC 7FF03FF81E2A7EA923>65 DI<000FE0E0003FF9F000FFFDF001FFFFF003FFFFF007FC3FF00FF00FF01FC007F01F C007F03F8003F03F0003F07F0001F07E0001F07E0001F07C0000E0FC000000FC000000F8 000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000FC 000000FC0000007C0000007E0000E07E0001F07F0001F03F0001F03F8003F01FC003F01F C007E00FF00FE007FC1FC003FFFF8001FFFF0000FFFE00003FF800000FE0001C2B7DA923 >I<7FFFF000FFFFFC00FFFFFE00FFFFFF007FFFFF800F803FC00F801FC00F8007E00F80 07E00F8003F00F8001F00F8001F80F8000F80F8000F80F8000F80F8000FC0F80007C0F80 007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80 00F80F8000F80F8000F80F8001F80F8001F00F8003F00F8003F00F8007E00F800FC00F80 3FC07FFFFF80FFFFFF00FFFFFE00FFFFFC007FFFF0001E297FA823>II<7FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE 7FFFFFFE07C0003E07C0003E07C0003E07C0003E07C0003E07C0001C07C0000007C00000 07C0000007C00E0007C01F0007C01F0007C01F0007FFFF0007FFFF0007FFFF0007FFFF00 07FFFF0007C01F0007C01F0007C01F0007C00E0007C0000007C0000007C0000007C00000 07C0000007C0000007C0000007C0000007C000007FFE0000FFFF0000FFFF0000FFFF0000 7FFE00001F297FA823>I<001FC1C0007FF3E000FFFFE003FFFFE007FFFFE007F83FE00F E01FE01FC00FE01F800FE03F8007E03F0007E07E0003E07E0003E07E0003E07C0001C0FC 000000FC000000F8000000F8000000F8000000F8000000F8000000F8000000F8007FF8F8 007FFCF8007FFCFC007FFCFC007FF87C0003E07E0003E07E0007E07E0007E03F0007E03F 800FE01F800FE01FC01FE00FE01FE007F87FE007FFFFE003FFFFE000FFFBE0007FF1C000 1FC0001E2B7EA923>I<7FF00FFEFFF81FFFFFF81FFFFFF81FFF7FF00FFE0F8001F00F80 01F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F80 01F00F8001F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F8001F00F8001F00F80 01F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F80 01F00F8001F00F8001F07FF00FFEFFF81FFFFFF81FFFFFF81FFF7FF00FFE20297FA823> II<7FFE0000FFFF0000FFFF0000FF FF00007FFE000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007 C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007 C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0007C07 C0007C07C0007C07C0007C07C0007C07C0007C07C0007C7FFFFFFCFFFFFFFCFFFFFFFCFF FFFFFC7FFFFFF81E297EA823>76 D<7FC01FF8FFC03FFCFFE03FFCFFE03FFC7FF01FF80F 7003C00F7003C00F7803C00F3803C00F3803C00F3C03C00F3C03C00F1C03C00F1E03C00F 1E03C00F0E03C00F0F03C00F0F03C00F0F03C00F0783C00F0783C00F0783C00F03C3C00F 03C3C00F03C3C00F01C3C00F01E3C00F01E3C00F00E3C00F00F3C00F00F3C00F0073C00F 0073C00F007BC00F003BC00F003BC07FE03FC0FFF01FC0FFF01FC0FFF00FC07FE00F801E 297EA823>78 D80 D<00FF838003FFE3C007FFFFC01FFFFFC03FFFFFC07FC0FFC07F003FC0FE001FC0FC000F C0FC000FC0F8000FC0F80007C0F80007C0FC000380FC0000007E0000007F0000003FF000 001FFF00000FFFF00007FFFC0001FFFE00001FFF800001FFC000001FC000000FE0000007 E0000003F0000003F0700001F0F80001F0F80001F0F80001F0FC0003F0FC0003F0FE0007 E0FF000FE0FFE03FC0FFFFFFC0FFFFFF00FFFFFE00F1FFFC00703FE0001C2B7DA923>83 D<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFCF807C07CF807C07CF807C07CF807C0 7CF807C07C7007C0380007C0000007C0000007C0000007C0000007C0000007C0000007C0 000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0 000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0 0000FFFE0001FFFF0001FFFF0001FFFF0000FFFE001E297EA823>I<7FF00FFEFFF00FFF FFF00FFFFFF00FFF7FF00FFE0F8001F00F8001F007C003E007C003E007C003E007C003E0 03E007C003E007C003E007C003E007C003F00FC001F00F8001F00F8001F00F8001F00F80 00F81F0000F81F0000F81F0000F81F00007C3E00007C3E00007C3E00007C3E00003C3C00 003E7C00003E7C00003E7C00001E7800001E7800001E7800001E7800001FF800000FF000 000FF000000FF0000007E0000007E000202A7FA823>86 DI<7FF07FF07FF8FFF07FF8FFF07FF8FFF07F F07FF007E03F0003E03E0003F07E0001F07C0001F8FC0000F8F80000FDF800007DF00000 7FF000003FE000003FE000001FC000001FC000000F8000000F8000000FC000001FC00000 1FE000003FE000003FF000007DF000007CF80000F8F80000F87C0001F07C0001F03E0003 F03E0003E01F0007E01F0007C00F800FC00F807FE03FF8FFF03FFCFFF03FFCFFF03FFC7F E03FF81E297EA823>I<7FFFC0FFFFE0FFFFE0FFFFE0FFFFC0F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000FFFFC0FFFFE0FFFFE0FFFFE07FFFC0133473AD23>91 D<70000000F8000000F8000000FC0000007C0000007E0000003E0000003E0000003F0000 001F0000001F8000000F8000000FC0000007C0000007E0000003E0000003E0000003F000 0001F0000001F8000000F8000000FC0000007C0000007E0000003E0000003E0000003F00 00001F0000001F8000000F8000000FC0000007C0000007E0000003E0000003F0000001F0 000001F0000001F8000000F8000000FC0000007C0000007E0000003E0000003F0000001F 0000001F0000001F8000000F8000000FC0000007C0000007C0000003801A347CAD23>I< 7FFFC0FFFFE0FFFFE0FFFFE07FFFE00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E07FFFE0 FFFFE0FFFFE0FFFFE07FFFC013347EAD23>I<7FFFFF80FFFFFFC0FFFFFFC0FFFFFFC0FF FFFFC07FFFFF801A067C7E23>95 D<03FF80000FFFE0001FFFF8003FFFFC003FFFFE003F 80FF003F803F801F001F8000001F8000000F800000FF80007FFF8003FFFF800FFFFF801F FFFF807FF00F807F000F80FC000F80FC000F80F8000F80F8001F80FC001F80FE003F807F 81FF807FFFFFFC3FFFFFFE1FFFFFFE07FFC7FE01FE01FC1F1D7D9C23>97 DI<003FF00000FFFC00 03FFFF0007FFFF000FFFFF001FE07F003F807F007F003E007E0000007E000000FC000000 FC000000F8000000F8000000F8000000F8000000F8000000FC000000FC0000007E000700 7F000F807F001F803FC01F801FF07F000FFFFF0007FFFE0003FFFC0000FFF000003FC000 191D7B9C23>I<0000FF800000FFC00000FFC00000FFC00000FFC0000007C0000007C000 0007C0000007C0000007C0000007C0000007C0007F87C001FFE7C003FFF7C00FFFFFC01F FFFFC01FE0FFC03F803FC07F001FC07E000FC07E000FC0FC0007C0FC0007C0F80007C0F8 0007C0F80007C0F80007C0F80007C0FC000FC0FC000FC07E000FC07E001FC07F003FC03F 807FC03FE0FFC01FFFFFFE0FFFFFFE03FFF7FE01FFC7FE007F03FE1F297EA823>I<003F C00000FFF80003FFFC0007FFFF000FFFFF801FF07F803F801FC03F000FC07E0007C07E00 07E0FC0007E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFC0F8000000FC000000FC00 00007E0001C07F0003E03F8007E03FE007E01FF81FC00FFFFFC007FFFF8001FFFE00007F FC00001FE0001B1D7D9C23>I<00007F000001FFC00007FFE0000FFFE0001FFFE0003FCF E0003F0FE0003E07C0003E0000003E0000003E0000003E00007FFFFF80FFFFFFC0FFFFFF C0FFFFFFC07FFFFF80003E0000003E0000003E0000003E0000003E0000003E0000003E00 00003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E00 00003E0000003E0000003E00003FFFFE007FFFFF007FFFFF007FFFFF003FFFFE001B297E A823>I<000001F0003F07FC00FFDFFE03FFFFFE07FFFFFE0FFFFF7E1FE1FE7E1F807E18 3F003F003F003F003E001F003E001F003E001F003E001F003F003F003F003F001F807E00 1FE1FE000FFFFC001FFFF8001FFFF0001EFFC0001E3F00001E0000001F0000001F400000 0FFFFC000FFFFF801FFFFFC03FFFFFF07E0007F87C0000F8F800007CF800007CF000003C F000003CF000003CF800007CFC0000FC7F0003F87FE01FF83FFFFFF00FFFFFC007FFFF80 01FFFE00003FF0001F2E7E9D23>II<00380000FE0000FE0000FE0000FE0000FE00003800000000000000000000 0000000000000000007FFC00FFFE00FFFE00FFFE007FFE00003E00003E00003E00003E00 003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00 003E00003E00003E007FFFFEFFFFFFFFFFFFFFFFFF7FFFFE182A7AA923>I<7F800000FF C00000FFC00000FFC000007FC0000003C0000003C0000003C0000003C0000003C0000003 C0000003C0000003C0FFFC03C1FFFC03C1FFFC03C1FFFC03C0FFFC03C03F0003C07E0003 C0FC0003C1F80003C3F00003C7E00003CFC00003DFE00003FFF00003FFF00003FDF80003 F8FC0003F07E0003E03E0003C01F0003C01F8003C00FC003C007C003C003E07FFE0FFFFF FF1FFFFFFF1FFFFFFF1FFF7FFE0FFF20297FA823>107 D<7FFE0000FFFF0000FFFF0000 FFFF00007FFF0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000 001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000 001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000 001F0000001F0000001F0000001F0000001F0000001F00007FFFFFC0FFFFFFE0FFFFFFE0 FFFFFFE07FFFFFC01B297CA823>I<7E1F01F000FF7FC7FC00FFFFEFFE00FFFFFFFE007F FFFFFF000FE1FE1F000FC1FC1F000FC0FC0F000F80F80F000F80F80F000F00F00F000F00 F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F0 0F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F007FE3FE3FE0FFF3FF3F F0FFF3FF3FF0FFF3FF3FF07FE3FE3FE0241D819C23>II<003F000001FFE00003FFF00007FFF8000FFFFC001FC0FE003F807F003E001F007E00 1F807C000F80FC000FC0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0FC00 0FC0FC000FC07C000F807E001F803F003F003F807F001FE1FE000FFFFC0007FFF80003FF F00001FFE000003F00001A1D7C9C23>II<003FC1C00000FFF3E00003FFFBE00007 FFFFE0000FFFFFE0001FF07FE0003FC01FE0007F000FE0007E000FE0007E0007E000FC00 07E000FC0003E000F80003E000F80003E000F80003E000F80003E000F80003E000FC0003 E000FC0007E0007E0007E0007E000FE0007F001FE0003F801FE0001FE07FE0001FFFFFE0 0007FFFFE00003FFFBE00001FFE3E000003F83E000000003E000000003E000000003E000 000003E000000003E000000003E000000003E000000003E000000003E000000003E00000 007FFF000000FFFF800000FFFF800000FFFF8000007FFF00212C7E9C23>I<7FF00FE0FF F87FF8FFF8FFFCFFFBFFFC7FFFFFFC00FFF8FC00FFC07800FF800000FF000000FE000000 FE000000FC000000FC000000FC000000F8000000F8000000F8000000F8000000F8000000 F8000000F8000000F8000000F8000000F800007FFFFC00FFFFFE00FFFFFE00FFFFFE007F FFFC001E1D7E9C23>I<01FF9C0FFFFE1FFFFE7FFFFE7FFFFEFF00FEFC007EF8003EF800 3EFC001CFE00007FF0003FFF800FFFE007FFF8007FFC0001FE00007F70003FF8001FFC00 1FFC003FFE003FFF80FFFFFFFEFFFFFCFFFFF8FFFFF070FF80181D7B9C23>I<00700000 00F8000000F8000000F8000000F8000000F8000000F8000000F800007FFFFF80FFFFFFC0 FFFFFFC0FFFFFFC07FFFFF8000F8000000F8000000F8000000F8000000F8000000F80000 00F8000000F8000000F8000000F8000000F8000000F8000000F801C000F803E000F803E0 00F803E000FC07E000FC0FE000FE1FC0007FFFC0007FFF80003FFE00000FFC000007F000 1B257EA423>II I<7FF00FFEFFF81FFFFFF81FFFFFF81FFF7FF00FFE1F0000F80F0000F00F0000F00F0000 F00F0000F00F0000F00F8000F00783E1E00787F1E00787F1E00787F1E0078FF9E0038F79 C003CF79C003CF79C003DF7BC003DF7BC003DE3BC001DE3B8001FE3F8001FE3F8001FC1F 8001FC1F8000F80F00201D7F9C23>I<7FF07FF0FFF8FFF8FFF8FFF8FFF8FFF87FF07FF0 03E03E0001F03C0000F87C000078F800007CF000003FE000001FE000000FC000000F8000 00078000000FC000001FE000003DE000003CF0000078780000F07C0001F03C0001E01E00 03C01F007FF03FF8FFF87FFCFFF87FFCFFF87FFC7FF03FF81E1D7E9C23>II<3FFF FFF07FFFFFF87FFFFFF87FFFFFF87FFFFFF87C000FF07C001FE07C003FC038007F800000 FF000001FC000003F8000007F000000FE000001FC000003F8000007F000000FE000001FC 000007F800700FF000F81FE000F83FC000F87F8000F8FFFFFFF8FFFFFFF8FFFFFFF8FFFF FFF87FFFFFF01D1D7E9C23>I<00001FE00000FFF00001FFF00007FFF00007FFE0000FF0 00000FC000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80 00000F8000000F8000000F8000000F8000000F8000000F8000001F8000007F80007FFF00 00FFFE0000FFFC0000FFFC0000FFFE00007FFF0000007F8000001F8000000F8000000F80 00000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80 00000F8000000F8000000F8000000FC000000FF0000007FFE00007FFF00001FFF00000FF F000001FE01C347DAD23>I<78FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC78063472AD23>I<7F C00000FFF80000FFFC0000FFFF00007FFF0000007F8000001F8000000F8000000F800000 0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000 0F8000000F8000000F8000000FC000000FF0000007FFE00003FFF00001FFF00001FFF000 03FFF00007FFE0000FF000000FC000000F8000000F8000000F8000000F8000000F800000 0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000 1F8000007F80007FFF0000FFFF0000FFFC0000FFF800007FC000001C347DAD23>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff ectt1000 10 50 /Ff 50 123 df<3C001E007F007F00FF007F80FF007F80FF007F80FF007F80FF007F80FF 007F807F007F007F007F007F007F007F007F007F007F007F007F007E003F007E003F007E 003F007E003F007E003F007E003F003E003E003E003E003E003E003C001E001C001C0019 1977B32C>34 D<0007001C00000F803E00000F803E00000F803E00000F803E00000F803E 00000F803E00000F803E00000F803E00001F807E00001F007C00001F007C00001F007C00 001F007C003FFFFFFFE0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8003E00F80000 3E00F800007E01F800007C01F000007C01F000007C01F000007C01F000007C01F000007C 01F000007C01F000007C01F00000FC03F00000F803E00000F803E000FFFFFFFFF8FFFFFF FFF8FFFFFFFFF8FFFFFFFFF83FFFFFFFE001F007C00001F007C00001F007C00003F00FC0 0003E00F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F8000 03E00F800001C007000025337DB22C>I<7FFFFFF0FFFFFFF8FFFFFFF8FFFFFFF87FFFFF F01D0579942C>45 D<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B708A2C >I<00000007000000000F800000000F800000001F800000001F000000003F000000003E 000000007E000000007C000000007C00000000FC00000000F800000001F800000001F000 000003F000000003E000000007E000000007C00000000FC00000000F800000001F800000 001F000000003F000000003E000000003E000000007E000000007C00000000FC00000000 F800000001F800000001F000000003F000000003E000000007E000000007C00000000FC0 0000000F800000001F800000001F000000003F000000003E000000003E000000007E0000 00007C00000000FC00000000F800000001F800000001F000000003F000000003E0000000 07E000000007C00000000FC00000000F800000001F800000001F000000001F000000003F 000000003E000000007E000000007C00000000FC00000000F800000000F8000000007000 00000021417BB92C>I<00070000000F8000000F8000001F8000001F8000003F8000007F 800000FF800001FF800007FF80007FFF8000FFFF8000FFDF8000FF9F80007C1F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF07FFF FFE01C3477B32C>49 D<000FF80000007FFF800001FFFFE00007FFFFF0000FFFFFFC001F F80FFE003FE001FF003F80007F007F00003F807E00001F80FE00001FC0FE00000FC0FF00 000FE0FF000007E0FF000007E0FF000007E07E000007E03C000007E000000007E0000000 07E00000000FE00000000FC00000001FC00000001F800000003F800000003F000000007F 00000000FE00000001FC00000003FC00000007F80000000FF00000001FE00000003FC000 0000FF80000001FE00000003FC00000007F80000000FF00000003FE00000007F80000000 FF00000001FE00000003FC0003C007F80007E01FE00007E03FC00007E07FFFFFFFE0FFFF FFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347CB32C>I<1F003F807FC0FFE0FFE0FF E0FFE0FFE07FC03F801F0000000000000000000000000000000000000000000000000000 0000001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B2470A32C>58 D<0000FE00000001FF00000001FF00000001FF00000001FF00000003FF80000003FF8000 0003EF80000003EF80000007EF80000007EFC0000007EFC0000007C7C0000007C7C00000 0FC7E000000FC7E000000FC7E000000FC3E000001F83F000001F83F000001F83F000001F 83F000001F83F000003F01F800003F01F800003F01F800003F01F800007E00FC00007E00 FC00007E00FC00007E00FC00007E00FC0000FC007E0000FFFFFE0000FFFFFE0000FFFFFE 0001FFFFFF0001FFFFFF0001F8003F0001F8003F0001F8003F0003F0001F8003F0001F80 03F0001F8003F0001F8007F0001FC007E0000FC07FFE00FFFC7FFF01FFFCFFFF01FFFE7F FF01FFFC7FFE00FFFC27347EB32C>65 D<7FFFFFE0007FFFFFF800FFFFFFFE007FFFFFFF 007FFFFFFFC003F0003FC003F0000FE003F00007F003F00003F003F00003F003F00001F8 03F00001F803F00001F803F00001F803F00001F803F00001F803F00003F003F00003F003 F00007F003F0000FE003F0001FC003F000FF8003FFFFFF0003FFFFFE0003FFFFFC0003FF FFFF0003FFFFFFC003F0001FE003F00007F003F00003F803F00001F803F00000FC03F000 00FC03F00000FE03F000007E03F000007E03F000007E03F000007E03F000007E03F00000 7E03F00000FE03F00000FC03F00001FC03F00003F803F0000FF803F0003FF07FFFFFFFE0 7FFFFFFFC0FFFFFFFF807FFFFFFE007FFFFFF00027337FB22C>I<0000FF00700007FFE0 F8000FFFF9F8003FFFFDF8007FFFFFF800FF81FFF801FE007FF803FC001FF807F0000FF8 07F00007F80FE00007F80FC00003F81F800003F81F800001F83F000001F83F000001F87F 000001F87E000000F07E000000007E00000000FE00000000FC00000000FC00000000FC00 000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000 0000FC00000000FE000000007E000000007E000000007E000000007F000000F03F000001 F83F000001F81F800001F81F800001F80FC00003F80FE00003F007F00007F007F00007E0 03FC001FE001FE003FC000FF81FF80007FFFFF00003FFFFE00000FFFFC000007FFF00000 00FF800025357DB32C>I<7FFFFF0000FFFFFFC000FFFFFFF000FFFFFFF8007FFFFFFC00 07E003FE0007E000FF0007E0007F8007E0003F8007E0001FC007E0000FE007E0000FE007 E00007E007E00007F007E00003F007E00003F807E00001F807E00001F807E00001F807E0 0001F807E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E000 00FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00001F807E00001 F807E00001F807E00003F807E00003F007E00003F007E00007F007E00007E007E0000FE0 07E0001FC007E0003FC007E0007F8007E000FF0007E003FE007FFFFFFC00FFFFFFF800FF FFFFF000FFFFFFC0007FFFFF000026337EB22C>I<7FFFFFFFF0FFFFFFFFF8FFFFFFFFF8 FFFFFFFFF87FFFFFFFF803F00001F803F00001F803F00001F803F00001F803F00001F803 F00001F803F00001F803F00000F003F000000003F000000003F000000003F000000003F0 01E00003F003F00003F003F00003F003F00003F003F00003FFFFF00003FFFFF00003FFFF F00003FFFFF00003FFFFF00003F003F00003F003F00003F003F00003F003F00003F001E0 0003F000000003F000000003F000000003F000000003F000000003F000003C03F000007E 03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E7F FFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC27337EB22C>I<7FFFFFFFF8 FFFFFFFFFCFFFFFFFFFCFFFFFFFFFC7FFFFFFFFC03F00000FC03F00000FC03F00000FC03 F00000FC03F00000FC03F00000FC03F00000FC03F000007803F000000003F000000003F0 00000003F000000003F000000003F000F00003F001F80003F001F80003F001F80003F001 F80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003F001F80003F001F8 0003F001F80003F001F80003F000F00003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F00000007FFFE00000FFFFE00000FFFFF00000FFFFE000007FFFE000002633 7EB22C>I<0001FC0380000FFF87C0001FFFEFC0007FFFFFC000FFFFFFC001FF07FFC003 FC01FFC003F800FFC007F0007FC00FE0003FC00FC0001FC01FC0001FC01F80001FC03F80 000FC03F00000FC03F00000FC07E00000FC07E000007807E000000007E00000000FE0000 0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000 00FC00000000FC0003FFF8FC0007FFFCFC0007FFFCFE0007FFFC7E0003FFF87E00000FC0 7E00000FC07E00000FC03F00001FC03F00001FC03F80001FC01F80001FC01FC0003FC00F C0003FC00FE0007FC007F0007FC003F800FFC003FC01FFC001FF07FFC000FFFFFFC0007F FFEFC0001FFFCFC0000FFF07800001FC000026357DB32C>I<7FFE00FFFCFFFF01FFFEFF FF01FFFEFFFF01FFFE7FFE00FFFC07E0000FC007E0000FC007E0000FC007E0000FC007E0 000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E000 0FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007FFFFFFC007FFFFFF C007FFFFFFC007FFFFFFC007FFFFFFC007E0000FC007E0000FC007E0000FC007E0000FC0 07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007 E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0 000FC07FFE00FFFCFFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC27337EB22C>I<7F FFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF8000FC000000FC000000FC000000FC00000 0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC0007FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF81E3379B22C>I<7FFFE00000FF FFF00000FFFFF00000FFFFF000007FFFE0000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F00000F003F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F0 0001F803F00001F87FFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF025337D B22C>76 D<7FE0000FFCFFF0001FFEFFF0001FFEFFF8003FFE7FF8003FFC0FF8003FE00F BC007BE00FBC007BE00FBC007BE00FBC007BE00F9E00F3E00F9E00F3E00F9E00F3E00F9F 01F3E00F9F01F3E00F8F01E3E00F8F01E3E00F8F83E3E00F8F83E3E00F8783C3E00F87C7 C3E00F87C7C3E00F83C783E00F83C783E00F83EF83E00F83EF83E00F81EF03E00F81EF03 E00F81FF03E00F80FE03E00F80FE03E00F80FE03E00F807C03E00F803803E00F800003E0 0F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F 800003E00F800003E00F800003E00F800003E07FF0001FFCFFF8003FFEFFF8003FFEFFF8 003FFE7FF0001FFC27337EB22C>I<7FFFFFC000FFFFFFF800FFFFFFFC00FFFFFFFF007F FFFFFF8003F000FFC003F0003FC003F0000FE003F00007F003F00007F003F00003F003F0 0003F803F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F000 03F803F00003F003F00007F003F00007F003F0000FE003F0003FC003F000FFC003FFFFFF 8003FFFFFF0003FFFFFC0003FFFFF80003FFFFC00003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F00000007FFF800000FFFF C00000FFFFC00000FFFFC000007FFF80000025337EB22C>80 D<7FFFFC000000FFFFFF80 0000FFFFFFE00000FFFFFFF800007FFFFFFC000007E007FE000007E001FE000007E0007F 000007E0003F800007E0001F800007E0001F800007E0000FC00007E0000FC00007E0000F C00007E0000FC00007E0000FC00007E0000FC00007E0001F800007E0001F800007E0003F 800007E0007F000007E001FE000007E007FE000007FFFFFC000007FFFFF8000007FFFFE0 000007FFFFF0000007FFFFF8000007E007FC000007E001FE000007E000FE000007E0007F 000007E0003F000007E0003F000007E0003F000007E0003F000007E0003F000007E0003F 000007E0003F000007E0003F000007E0003F0F0007E0003F1F8007E0003F1F8007E0003F 1F8007E0003F1F8007E0003F1F807FFE001FBF80FFFF001FFF00FFFF000FFF00FFFF000F FE007FFE0007FC0000000001F00029347EB22C>82 D<001FF8070000FFFF0F8001FFFFCF 8007FFFFFF800FFFFFFF801FF01FFF803FC003FF803F8001FF807F0000FF807E00007F80 FE00003F80FC00003F80FC00001F80FC00001F80FC00001F80FC00001F80FE00000F007E 000000007F000000007F800000003FE00000001FFC0000001FFFC000000FFFFC000003FF FFC00001FFFFF000007FFFF8000007FFFC0000007FFE00000007FF00000000FF80000000 3F800000001FC00000001FC00000000FE00000000FE078000007E0FC000007E0FC000007 E0FC000007E0FC000007E0FC000007E0FE00000FC0FE00000FC0FF00001F80FF80003F80 FFE0007F00FFFE01FF00FFFFFFFE00FFFFFFFC00F9FFFFF000F83FFFC0007007FF000023 357CB32C>I<7FFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFC007E007E FC007E007EFC007E007EFC007E007EFC007E007EFC007E007EFC007E007E78007E003C00 007E000000007E000000007E000000007E000000007E000000007E000000007E00000000 7E000000007E000000007E000000007E000000007E000000007E000000007E000000007E 000000007E000000007E000000007E000000007E000000007E000000007E000000007E00 0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000 00007E000000007E000000007E000000007E0000003FFFFC00003FFFFC00007FFFFE0000 3FFFFC00003FFFFC0027337EB22C>I<3FFF03FFE07FFF07FFF07FFF87FFF07FFF07FFF0 3FFF03FFE001F800FE0001FC00FE0000FC01FC0000FE01FC00007E01F800007F03F80000 3F03F000003F87F000001F87E000001FCFE000000FCFC000000FFFC0000007FF80000007 FF80000003FF00000003FF00000001FE00000001FE00000000FC00000000FC00000001FE 00000001FE00000003FF00000003FF00000007FF80000007FFC000000FCFC000000FCFE0 00001FC7E000001F87F000003F83F000003F03F800007F01F800007E01FC0000FE00FC00 00FC00FE0001FC007E0001F8007F0003F8003F0003F0003F8003F0001F807FFE00FFFC7F FF01FFFCFFFF01FFFE7FFF01FFFC7FFE00FFFC27337EB22C>88 D<7FFC007FFCFFFE00FF FEFFFE00FFFEFFFE00FFFE7FFC007FFC07F0000FC007F0001FC003F0001F8003F8003F80 01F8003F8001FC007F0000FC007F0000FE007E00007E00FE00007F00FC00003F01FC0000 3F81F800001F81F800001F83F000000FC3F000000FC7F0000007E7E0000007E7E0000003 E7C0000003EFC0000001FF80000001FF80000001FF00000000FF00000000FE000000007E 000000007E000000007E000000007E000000007E000000007E000000007E000000007E00 0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000 00007E00000007FFE000000FFFF000000FFFF000000FFFF0000007FFE00027337EB22C> I<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B7D2C >95 D<01FFF0000007FFFE00001FFFFF80001FFFFFE0003FFFFFF0003FC01FF8003FC007 F8003FC001FC001F8000FC00060000FE000000007E000000007E000000007E000000FFFE 00001FFFFE0000FFFFFE0003FFFFFE000FFFFFFE001FFF807E003FF8007E007FC0007E00 7F00007E00FE00007E00FC00007E00FC00007E00FC00007E00FC00007E00FE00007E007F 0000FE007F8003FE003FE01FFE001FFFFFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE003F F007FC27247CA32C>97 D<7FF0000000FFF8000000FFF8000000FFF80000007FF8000000 01F800000001F800000001F800000001F800000001F800000001F800000001F800000001 F800000001F800000001F800000001F81FE00001F8FFF80001FBFFFE0001FFFFFF0001FF FFFF8001FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F800 00FC01F80000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F80000 7E01F800007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F8 01FE0003F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001 FBFFFE0001F8FFF80000F03FC00027337FB22C>I<0003FFE000001FFFF800007FFFFE00 01FFFFFE0003FFFFFF0007FE00FF000FF000FF001FE000FF001FC0007E003F800018003F 000000007F000000007E000000007E00000000FC00000000FC00000000FC00000000FC00 000000FC00000000FC00000000FC00000000FC000000007E000000007E000000007F0000 00003F00000F003F80001F801FC0001F801FE0003F800FF0007F0007FE03FF0003FFFFFE 0001FFFFFC00007FFFF800001FFFE0000003FF000021247AA32C>I<00000FFE0000001F FF0000001FFF0000001FFF0000000FFF000000003F000000003F000000003F000000003F 000000003F000000003F000000003F000000003F000000003F000000003F000007F83F00 003FFE3F0000FFFFBF0001FFFFFF0003FFFFFF0007FC0FFF000FF003FF001FE001FF001F C000FF003F80007F003F00007F007E00003F007E00003F00FE00003F00FC00003F00FC00 003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FE0000 3F007E00007F007E00007F007F0000FF003F8000FF003F8001FF001FC003FF000FF007FF 0007FC1FFF0003FFFFFFFC01FFFFBFFE00FFFF3FFE003FFC3FFE000FF01FFC27337DB22C >I<0003FE0000001FFFC000007FFFF00001FFFFF80003FFFFFC0007FE03FE000FF800FF 001FE0003F801FC0003F803F80001FC03F00000FC07F00000FC07E00000FE07E000007E0 FC000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE 000000007E000000007E000000007F000000003F000003C03F800007E01FC00007E00FF0 000FE007F8003FC007FF00FFC001FFFFFF8000FFFFFF00003FFFFC00000FFFF0000001FF 800023247CA32C>I<00000FF80000003FFE000000FFFF000001FFFF800003FFFF800007 FC7F800007F07F80000FE03F00000FC03F00000FC00000000FC00000000FC00000000FC0 0000000FC00000000FC000007FFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF007FFFFFFE 00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000 000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000 0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F C00000000FC00000000FC00000000FC00000000FC000003FFFFFF0007FFFFFF8007FFFFF F8007FFFFFF8003FFFFFF00021337DB22C>I<00000003F80007F80FFC001FFE3FFE007F FFFFFF01FFFFFFFF03FFFFFE7F03FC0FF87F07F003F83E0FE001FC1C0FC000FC001FC000 FE001F80007E001F80007E001F80007E001F80007E001F80007E001F80007E001FC000FE 000FC000FC000FE001FC0007F003F80003FC0FF00007FFFFF00007FFFFE0000FFFFF8000 0F9FFE00000F87F800000F800000000F800000000F800000000FC000000007E000000007 FFFFF00003FFFFFE0007FFFFFF800FFFFFFFE01FFFFFFFF03FC0001FF87F000003FC7E00 0000FC7C0000007CFC0000007EF80000003EF80000003EF80000003EF80000003EFC0000 007E7E000000FC7F800003FC3FE0000FF81FFC007FF00FFFFFFFE003FFFFFF8001FFFFFF 00003FFFF8000007FFC00028387EA42C>I<7FF000000000FFF800000000FFF800000000 FFF8000000007FF80000000001F80000000001F80000000001F80000000001F800000000 01F80000000001F80000000001F80000000001F80000000001F80000000001F800000000 01F81FE0000001F87FFC000001F9FFFE000001FBFFFF000001FFFFFF000001FFF03F8000 01FFC01F800001FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC000 01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000 01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000 01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000 01F8000FC0007FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF00 29337FB22C>I<00070000001FC000001FC000003FE000003FE000003FE000001FC00000 1FC00000070000000000000000000000000000000000000000000000000000000000007F FFC0007FFFE000FFFFE0007FFFE0007FFFE0000007E0000007E0000007E0000007E00000 07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 07E0000007E0000007E0000007E0007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F 3479B32C>I<7FE0000000FFF0000000FFF0000000FFF00000007FF000000001F0000000 01F000000001F000000001F000000001F000000001F000000001F000000001F000000001 F000000001F000000001F01FFFF001F03FFFF801F03FFFF801F03FFFF801F01FFFF001F0 00FE0001F001FC0001F003F80001F007F00001F00FE00001F01FC00001F03F800001F07F 000001F0FE000001F1FC000001F3FC000001F7FE000001FFFF000001FFFF000001FF9F80 0001FF0FC00001FE0FE00001FC07E00001F803F00001F001F80001F001FC0001F000FC00 01F0007E0001F0003F0001F0003F8001F0001F807FFFC0FFFCFFFFE1FFFEFFFFE1FFFEFF FFE1FFFE7FFFC0FFFC27337EB22C>107 D<7FFFE00000FFFFF00000FFFFF00000FFFFF0 00007FFFF000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000007FFFFFFF 80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>I<7F83F007E0007FCF FC1FF800FFDFFE3FFC007FFFFEFFFC007FFFFFFFFE0007FE1FFC3E0007FC1FF83F0007F8 0FF01F0007F00FE01F0007E00FC01F0007E00FC01F0007E00FC01F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F007FFC 3FF87FF07FFC7FF8FFF0FFFE7FFCFFF87FFC7FF8FFF07FFC3FF87FF02D2481A32C>I<7F F01FE00000FFF87FFC0000FFF9FFFE0000FFFBFFFF00007FFFFFFF000001FFF03F800001 FFC01F800001FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001 F8000FC0007FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029 247FA32C>I<0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC00 0FF001FE001FE000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E 00000FC0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC00 0007E0FE00000FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC000 7F001FE000FF000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF00 000007FC000023247CA32C>I<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFF FF8001FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000 FC01F80000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E 01F800007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801 FE0003F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FB FFFE0001F8FFF80001F83FC00001F800000001F800000001F800000001F800000001F800 000001F800000001F800000001F800000001F800000001F800000001F800000001F80000 0001F80000007FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C >I<7FFE003FC0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003FFF01 FC003FFC00F8003FF80070003FF00000003FE00000003FE00000003FC00000003F800000 003F800000003F800000003F000000003F000000003F000000003F000000003F00000000 3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F 000000003F000000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007FFFFF E00026247EA32C>114 D<007FF87003FFFFF80FFFFFF81FFFFFF83FFFFFF87FC00FF87E 0003F8FC0001F8F80001F8F80001F8F80001F8FC0000F07F0000007FF000003FFFC0001F FFFE000FFFFF8003FFFFE0007FFFF80001FFFC000007FC000000FE7800007FFC00003FFC 00001FFE00001FFE00001FFF00003FFF80003EFFC000FEFFF007FCFFFFFFFCFFFFFFF8FF FFFFE0F8FFFF80701FFC0020247AA32C>I<001E000000003F000000003F000000003F00 0000003F000000003F000000003F000000003F000000003F000000003F0000007FFFFFFF 00FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000 003F000000003F000000003F000000003F000000003F000000003F000000003F00000000 3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F 0003C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F80 1FC0001FE07FC0000FFFFF80000FFFFF000003FFFE000001FFF80000003FE000232E7EAD 2C>I<7FF003FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC00 7FC00000FE03FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE 07FF0029247FA32C>I<7FFF01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF01FFFC03 E0000F8003E0000F8003F0001F8001F0001F0001F0001F0001F8003F0000F8003E0000F8 003E0000FC007E00007C007C00007C007C00007E00FC00003E00F800003E00F800003F01 F800001F01F000001F01F000001F83F000000F83E000000F83E000000FC7E0000007C7C0 000007C7C0000007EFC0000003EF80000003EF80000003FF80000001FF00000001FF0000 0000FE000000007C000027247EA32C>I<7FFF007FFF007FFF80FFFF00FFFF80FFFF807F FF80FFFF007FFF007FFF0007C00001F00007C00001F00007C00001F00007C00001F00007 C00001F00007C00001F00003E00003E00003E00003E00003E00003E00003E03E03E00003 E07F03E00003E07F03E00001F07F07C00001F0FF87C00001F0FF87C00001F0F787C00001 F0F787C00001F1F7C7C00000F1F7C7800000F9E3CF800000F9E3CF800000FBE3EF800000 FBE3EF800000FBE3EF8000007BC1EF0000007FC1FF0000007FC1FF0000007F80FF000000 7F80FF0000003F80FE0000001F007C000029247FA32C>I<3FFF03FFF07FFF87FFF87FFF 87FFF87FFF87FFF83FFF03FFF000FC007E0000FC00FC00007E01F800003F01F000001F83 F000001F87E000000FCFC0000007EF80000003FF80000001FF00000001FE00000000FC00 0000007C00000000FE00000001FE00000001FF00000003EF80000007CFC000000FC7C000 000F83E000001F01F000003F01F800007E00F800007C007C0000F8007E0001F8003F007F FF01FFFC7FFF83FFFCFFFF83FFFE7FFF83FFFC7FFF01FFFC27247EA32C>I<7FFF01FFFC FFFF81FFFEFFFF83FFFEFFFF81FFFE7FFF01FFFC03E0000F8001F0000F8001F0001F8001 F8001F0000F8001F0000F8003F0000FC003E00007C003E00007E007E00003E007C00003E 007C00003F00FC00001F00F800001F00F800000F81F800000F81F000000F81F0000007C1 F0000007C3E0000007C3E0000003E3E0000003E7C0000001E7C0000001F7C0000001F780 000000FF80000000FF80000000FF000000007F000000007F000000003E000000003E0000 00007E000000007C000000007C00000000FC00000000F800000000F800000C01F800003F 01F000007F83F000007F87E000007E0FE000007E1FC000007FFF8000003FFF0000001FFE 0000000FFC00000007E000000027367EA32C>I<3FFFFFFFE07FFFFFFFF07FFFFFFFF07F FFFFFFF07FFFFFFFF07E00001FE07E00003FC07E00007F807E0000FF007E0001FE003C00 03FC00000007F80000000FF00000001FE00000003FC00000007F80000000FF00000001FC 00000003F80000000FF00000001FE00000003FC00000007F80000000FF00000001FE0001 E003FC0003F007F80003F00FF00003F01FE00003F03FC00003F07F800003F0FFFFFFFFF0 FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE024247DA32C>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg tcrm1000 10 1 /Fg 1 137 df<001FE00000FFFC0001FFFE0007FFFF800FFFFFC01FFFFFE03FFFFFF03F FFFFF07FFFFFF87FFFFFF87FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFCFF FFFFFCFFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF87FFFFFF87FFFFFF83FFFFFF03F FFFFF01FFFFFE00FFFFFC007FFFF8001FFFE0000FFFC00001FE0001E207BA429>136 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh ecbx1200 12 46 /Fh 46 123 df<000001E0000003E000000FC000001F8000003F0000007E000000FC0000 01FC000003F8000007F0000007E000000FE000001FC000003FC000003F8000007F800000 FF000000FF000001FE000001FE000003FC000003FC000007FC000007F8000007F800000F F800000FF000000FF000001FF000001FF000001FE000003FE000003FE000003FE000003F E000007FC000007FC000007FC000007FC000007FC000007FC00000FFC00000FFC00000FF 800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF 800000FF800000FF800000FF800000FF800000FFC00000FFC000007FC000007FC000007F C000007FC000007FC000007FC000003FE000003FE000003FE000003FE000001FE000001F F000001FF000000FF000000FF000000FF8000007F8000007F8000007FC000003FC000003 FC000001FE000001FE000000FF000000FF0000007F8000003F8000003FC000001FC00000 0FE0000007E0000007F0000003F8000001FC000000FC0000007E0000003F0000001F8000 000FC0000003E0000001E01B6476CA2C>40 DI<07C01FF03FF8 7FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF007C00F0F788E1F>46 D<00003FF800000001FFFF0000000FFFFFE000003FFFFFF800007FF01FFC0000FFC007FE 0001FF0001FF0003FE0000FF8007FE0000FFC007FC00007FC00FFC00007FE00FF800003F E01FF800003FF01FF800003FF03FF800003FF83FF800003FF83FF000001FF87FF000001F FC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFCFFF000001F FEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001F FEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001F FEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001F FEFFF000001FFEFFF000001FFE7FF000001FFC7FF000001FFC7FF000001FFC7FF000001F FC7FF000001FFC3FF800003FF83FF800003FF83FF800003FF81FF800003FF01FF800003F F00FF800003FE00FFC00007FE007FC00007FC007FE0000FFC003FF0001FF8001FF8003FF 0000FFC007FE00007FF01FFC00003FFFFFF800000FFFFFE0000003FFFF800000003FF800 002F427CC038>48 D<000003C000000007C00000001FC00000007FC0000003FFC000003F FFC000FFFFFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFC3FFC0000003FFC0000003FF C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0 000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000 0003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC00000 03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003 FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0 000003FFC0000003FFC0000003FFC0000003FFC000FFFFFFFFFCFFFFFFFFFCFFFFFFFFFC FFFFFFFFFCFFFFFFFFFC264177C038>I<0000FFE00000000FFFFE0000003FFFFF800000 FFFFFFE00003FFFFFFF80007FC03FFFE000FE0007FFF001F80003FFF803F00000FFFC07F 000007FFC07FC00007FFE07FF00003FFE0FFF00001FFF0FFF80001FFF0FFF80001FFF8FF F80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF00000FFF83FE00000FFF81F C00000FFF800000000FFF800000000FFF000000001FFF000000001FFF000000001FFE000 000003FFE000000003FFC000000007FF800000000FFF000000000FFF000000001FFC0000 00003FF8000000003FF0000000007FE000000000FFC000000001FF0000000003FE000000 0007FC000000000FF0000000001FE0000000003F80000000007F0000780000FE00007800 01FC0000780003F80000F80007E00000F0000FC00000F0001F800000F0003F000000F000 7C000001F000F8000003F001FFFFFFFFF003FFFFFFFFE007FFFFFFFFE00FFFFFFFFFE01F FFFFFFFFE03FFFFFFFFFE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFC0FFFFFFFFFFC0FF FFFFFFFFC0FFFFFFFFFFC02D417BC038>I<0000FFF000000007FFFF0000001FFFFFC000 007FFFFFF00000FF007FF80003F8003FFE0007E0001FFF0007E0000FFF000FF80007FF80 0FFE0007FF801FFE0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC0 1FFF0007FFC01FFF0007FFC00FFE0007FFC007FC0007FF8003F8000FFF800000000FFF00 0000001FFF000000001FFE000000003FFC000000007FF800000000FFF000000001FFE000 00000FFF80000007FFFE00000007FFF800000007FFFF00000007FFFFC000000000FFF000 0000003FFC000000000FFE000000000FFF8000000007FF8000000003FFC000000003FFE0 00000003FFE000000001FFF000000001FFF000000001FFF800000001FFF800000001FFF8 0FC00001FFF83FF00001FFF87FF80001FFF87FF80001FFF8FFFC0001FFF8FFFC0001FFF8 FFFC0001FFF0FFFC0001FFF0FFFC0003FFF0FFFC0003FFE07FF80003FFE07FF00007FFC0 7FE00007FFC03F80000FFF801FF0001FFF000FFE00FFFE0007FFFFFFF80001FFFFFFF000 007FFFFFC000001FFFFE00000001FFE000002D427BC038>I<000000003F000000000000 3F0000000000007F000000000000FF000000000001FF000000000003FF000000000003FF 000000000007FF00000000000FFF00000000001FFF00000000003FFF00000000003FFF00 000000007FFF0000000000FFFF0000000001F7FF0000000003E7FF0000000007E7FF0000 000007C7FF000000000F87FF000000001F07FF000000003E07FF000000007E07FF000000 007C07FF00000000F807FF00000001F007FF00000003E007FF00000007E007FF00000007 C007FF0000000F8007FF0000001F0007FF0000003E0007FF0000007C0007FF0000007C00 07FF000000F80007FF000001F00007FF000003E00007FF000007C00007FF00000FC00007 FF00000F800007FF00001F000007FF00003E000007FF00007C000007FF0000FC000007FF 0000FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF 800000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0000 0000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF000000 00000FFF00000000000FFF000000007FFFFFFF8000007FFFFFFF8000007FFFFFFF800000 7FFFFFFF8000007FFFFFFF8031417DC038>I<07000000030007E000003F0007FF0007FF 0007FFFFFFFF0007FFFFFFFE0007FFFFFFFC0007FFFFFFF80007FFFFFFF00007FFFFFFE0 0007FFFFFF800007FFFFFE000007FFFFFC000007FFFFE0000007FFFF00000007C0000000 0007C00000000007C00000000007C00000000007C00000000007C00000000007C0000000 0007C00000000007C00000000007C00000000007C03FF0000007C1FFFF000007C7FFFFC0 0007DFFFFFF00007FFE03FFC0007FF000FFE0007FC0007FF0007F00003FF8007E00003FF C007C00001FFC003800001FFE000000001FFE000000000FFF000000000FFF000000000FF F000000000FFF800000000FFF800000000FFF800000000FFF80F800000FFF83FE00000FF F87FF00000FFF8FFF00000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FF F0FFF00000FFF0FFF00001FFF07FE00001FFE07FC00001FFE07E000003FFC03E000003FF C03F000007FF801FC0000FFF000FF0001FFE0007FE00FFFC0003FFFFFFF00000FFFFFFE0 00003FFFFF8000000FFFFC00000001FFC000002D427BC038>I<000001FF800000001FFF F00000007FFFFC000001FFFFFF000007FF807F80000FFC001F80003FF0001FC0007FE000 7FC000FFC000FFE001FF8001FFE003FF8001FFE003FF0001FFE007FE0001FFE00FFE0001 FFE00FFE0001FFE01FFC0000FFC01FFC00007F801FFC00001E003FFC000000003FFC0000 00003FF8000000007FF8000000007FF8000000007FF807FC00007FF81FFF8000FFF87FFF E000FFF8FFFFF800FFF9F01FFC00FFFBC007FE00FFFF8003FF00FFFF8003FF80FFFF0001 FFC0FFFE0001FFC0FFFE0000FFE0FFFE0000FFE0FFFC0000FFF0FFFC0000FFF0FFFC0000 FFF0FFFC0000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF80000 FFF87FF80000FFF87FF80000FFF87FF80000FFF87FF80000FFF83FF80000FFF83FF80000 FFF83FF80000FFF03FFC0000FFF01FFC0000FFF01FFC0000FFF00FFC0001FFE00FFC0001 FFE007FE0001FFC007FF0003FF8003FF8003FF0001FFC007FE0000FFE01FFC00007FFFFF F800001FFFFFF0000007FFFFC0000001FFFF000000003FF000002D427BC038>I<1E0000 0000001F00000000001FFC000000001FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE1FFFFF FFFFFE3FFFFFFFFFFE3FFFFFFFFFFC3FFFFFFFFFF83FFFFFFFFFF03FFFFFFFFFE03FFFFF FFFFC03FFFFFFFFFC07FFFFFFFFF807E0000003F007C0000007E007C000000FC00780000 00F80078000001F80078000003F000F8000007E000F000000FC000F000000F8000F00000 1F80000000003F00000000007E0000000000FC0000000000FC0000000001F80000000003 F80000000003F00000000007F0000000000FE0000000000FE0000000001FE0000000001F C0000000003FC0000000003FC0000000007FC0000000007F8000000000FF8000000000FF 8000000001FF8000000001FF8000000001FF8000000003FF8000000003FF0000000003FF 0000000003FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF 000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF 000000000FFF000000000FFF000000000FFF000000000FFF0000000007FE0000000003FC 0000000001F80000002F447AC238>I<00007FF000000003FFFF0000000FFFFFC000003F FFFFF000007F801FFC0001FC0003FE0003F80001FF0003F00000FF0007E000007F8007E0 00003F800FC000003FC00FC000003FC01FC000001FC01FC000001FC01FE000001FC01FE0 00001FC01FF000001FC01FF800001FC01FFE00003FC01FFF00003F801FFFC0007F801FFF F0007F000FFFFC00FF000FFFFE01FE0007FFFF83FC0007FFFFE7F80003FFFFFFE00001FF FFFFC00000FFFFFF0000007FFFFFC000003FFFFFE000000FFFFFF800000FFFFFFC00003F FFFFFE0000FFFFFFFF0001FF3FFFFF8007FC0FFFFFC00FF803FFFFE01FF000FFFFE01FE0 007FFFF03FE0001FFFF07FC00007FFF07F800003FFF87F800000FFF8FF8000007FF8FF00 00003FF8FF0000001FF8FF0000000FF8FF0000000FF8FF00000007F8FF00000007F8FF00 000007F8FF80000007F07F80000007F07F8000000FF07FC000000FE03FE000001FE03FF0 00003FC01FF800007F800FFE0001FF0007FFC00FFE0003FFFFFFFC0000FFFFFFF000003F FFFFC000000FFFFF00000000FFF000002D427BC038>I<00007FF000000007FFFE000000 1FFFFF8000007FFFFFE00000FFE03FF00001FF800FF80003FF0007FC0007FE0007FE000F FC0003FF001FFC0001FF003FFC0001FF803FFC0001FF807FF80001FFC07FF80000FFC07F F80000FFE07FF80000FFE0FFF80000FFE0FFF80000FFF0FFF80000FFF0FFF80000FFF0FF F80000FFF0FFF80000FFF0FFF80000FFF0FFF80000FFF8FFF80000FFF8FFF80000FFF8FF F80000FFF8FFF80001FFF87FF80001FFF87FF80001FFF87FF80001FFF83FF80003FFF83F F80003FFF81FFC0003FFF81FFC0007FFF80FFE000FFFF807FE000FFFF803FF001EFFF801 FFC07CFFF800FFFFF8FFF8003FFFF0FFF8000FFFC0FFF00001FF00FFF000000000FFF000 000000FFF000000000FFE000000001FFE000000001FFE003C00001FFE00FF00001FFC01F F80001FFC03FFC0003FF803FFC0003FF803FFC0003FF003FFC0007FE003FFC000FFE003F FC000FFC003FF8001FF8001FF0003FF0001FC000FFE0000FF003FFC00007FFFFFF800003 FFFFFE000001FFFFF80000007FFFE000000007FE0000002D427BC038>I<07C01FF03FF8 7FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF007C0000000000000000000000000 0000000000000000000000000000000007C01FF03FF87FFCFFFEFFFEFFFEFFFEFFFEFFFE FFFE7FFC3FF81FF007C00F2C78AB1F>I<0007FFC000003FFFFC0001FFFFFF8003FFFFFF E00FF800FFF01FC0003FF83F00001FFC7F00001FFE7FC0000FFEFFE0000FFFFFF0000FFF FFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFF7FE0001FFF3FC0001FFE0F 00001FFE0000003FFC0000007FF8000000FFF0000001FFE0000003FF80000003FF000000 07FC0000000FF80000000FF00000001FE00000001FC00000003F800000003F000000003F 000000007E000000007C000000007C000000007C00000000780000000078000000007800 000000780000000078000000007800000000780000000078000000007800000000780000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000F800000003FE00000007FF0000000FFF8000000FFF8000001FFFC000001F FFC000001FFFC000001FFFC000001FFFC000000FFF8000000FFF80000007FF00000003FE 00000000F8000028467AC535>63 D<000000001F8000000000000000001F800000000000 0000003FC000000000000000003FC000000000000000007FE000000000000000007FE000 000000000000007FE00000000000000000FFF00000000000000000FFF000000000000000 01FFF80000000000000001FFF80000000000000001FFF80000000000000003FFFC000000 0000000003FFFC0000000000000007FFFE0000000000000007FFFE0000000000000007FF FE000000000000000FFFFF000000000000000F9FFF000000000000001F9FFF8000000000 00001F1FFF800000000000001F0FFF800000000000003F0FFFC00000000000003E07FFC0 0000000000007E07FFE00000000000007C07FFE00000000000007C03FFE0000000000000 FC03FFF0000000000000F801FFF0000000000001F801FFF8000000000001F001FFF80000 00000001F000FFF8000000000003F000FFFC000000000003E0007FFC000000000007E000 7FFE000000000007C0007FFE000000000007C0003FFE00000000000FC0003FFF00000000 000F80001FFF00000000001F80001FFF80000000001F00000FFF80000000001F00000FFF 80000000003F00000FFFC0000000003E000007FFC0000000007E000007FFE0000000007F FFFFFFFFE0000000007FFFFFFFFFE000000000FFFFFFFFFFF000000000FFFFFFFFFFF000 000001FFFFFFFFFFF800000001F0000000FFF800000001F0000000FFF800000003F00000 00FFFC00000003E00000007FFC00000007E00000007FFE00000007C00000003FFE000000 07C00000003FFE0000000F800000003FFF0000000F800000001FFF0000001F800000001F FF8000001F000000000FFF8000003F000000000FFFC000003E000000000FFFC000007E00 00000007FFC000FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFF F0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF04C457CC455>65 D68 DII73 D77 D80 D<0000FFE0001C000007FFFE003C00003FFFFF807C0000FFFFFF E0FC0001FFFFFFF9FC0003FF801FFFFC0007FC0001FFFC000FF800007FFC001FF000003F FC003FE000000FFC003FC0000007FC007FC0000003FC007F80000003FC007F80000001FC 007F80000000FC00FF80000000FC00FF800000007C00FF800000007C00FFC00000007C00 FFC00000007C00FFE00000003C00FFF00000003C00FFF80000003C00FFFC00000000007F FE00000000007FFFE0000000007FFFFE000000003FFFFFF00000003FFFFFFF0000001FFF FFFFE000001FFFFFFFFC00000FFFFFFFFE000007FFFFFFFF800003FFFFFFFFC00001FFFF FFFFE000007FFFFFFFF000001FFFFFFFF8000007FFFFFFFC000000FFFFFFFC0000000FFF FFFE00000000FFFFFE0000000007FFFF00000000007FFF00000000003FFF00000000000F FF800000000007FF800000000003FF80F000000003FF80F000000001FF80F000000001FF 80F000000000FF80F000000000FF80F800000000FF80F800000000FF80F800000000FF00 FC00000000FF00FC00000000FF00FE00000001FF00FF00000001FE00FF80000003FE00FF C0000003FC00FFE0000007FC00FFF800000FF800FFFF00003FF000FFFFF800FFE000FE7F FFFFFFC000FC1FFFFFFF0000F807FFFFFC0000F000FFFFF00000E00007FF80000031467A C43E>83 D<3FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFF FFFFFFFFE03FFFFFFFFFFFFFFFE03FFE000FFF8003FFE07FE0000FFF80003FF07FC0000F FF80001FF07F00000FFF800007F07F00000FFF800007F07E00000FFF800003F07C00000F FF800001F07C00000FFF800001F07C00000FFF800001F07800000FFF800000F07800000F FF800000F07800000FFF800000F07800000FFF800000F0F800000FFF800000F8F000000F FF80000078F000000FFF80000078F000000FFF80000078F000000FFF80000078F000000F FF800000780000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000007FFFFFFFFFF00000007FFFF FFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF000045437CC2 4E>I87 D<0001FFE0000000001FFFFE000000007FFFFF80000001FFFFFFE0000003FE00 7FF8000007FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007FF00000FFF0003 FF80000FFF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FFC00003FC0001FF C00000F00001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 00000003FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC00000FFFC01FFC000 03FFE001FFC00007FF8001FFC0001FFE0001FFC0003FFC0001FFC0003FF80001FFC0007F F80001FFC0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE00001FFC000FFE0 0001FFC000FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF8000FFFC0007FF800 1FFFF0003FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE01FFFC0007FFF80 07FFC0000FFC00000000322F7DAD36>97 D<00003FFC00000001FFFFC000000FFFFFF000 003FFFFFFC00007FF003FE0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF80 0FFE0007FF801FFC0007FF801FFC0007FF803FF80007FF803FF80003FF007FF80001FE00 7FF8000078007FF0000000007FF000000000FFF000000000FFF000000000FFF000000000 FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000 FFF000000000FFF000000000FFF0000000007FF8000000007FF8000000007FF800000000 3FF8000000003FFC000003C03FFC000003C01FFE000007C00FFE000007800FFF00000F80 07FF80001F0003FFC0003E0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC000 0003FFFF000000003FF800002A2F7CAD32>99 D<0000000003FE0000000007FFFE000000 0007FFFE0000000007FFFE0000000007FFFE0000000007FFFE00000000001FFE00000000 000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000000000 0FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000F FE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE 00000000000FFE0000003FE00FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE00 00FFF807FFFE0001FFC001FFFE0003FF80007FFE0007FF00003FFE000FFE00001FFE000F FC00000FFE001FFC00000FFE003FF800000FFE003FF800000FFE003FF800000FFE007FF8 00000FFE007FF000000FFE007FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000 000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF00000 0FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE007FF000000F FE007FF000000FFE007FF000000FFE007FF800000FFE003FF800000FFE003FF800000FFE 001FFC00001FFE001FFC00001FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF00 01FFC003FFFFFC00FFF01FEFFFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC00 007FC00FF80036467CC43E>I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF0 00007FF83FF80000FFC007FC0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF 801FFC00007FC01FF800007FC03FF800003FE03FF800003FE07FF800003FE07FF000003F E07FF000003FF07FF000001FF0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFF F0FFFFFFFFFFF0FFFFFFFFFFF0FFF000000000FFF000000000FFF000000000FFF0000000 00FFF0000000007FF0000000007FF0000000007FF8000000007FF8000000003FF8000000 003FF8000000F01FFC000000F01FFC000001F00FFE000001E007FF000003E003FF800007 C001FFC0000F8000FFF0003F00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC0 0000001FFE00002C2F7DAD33>I<000000FF8000000FFFE000007FFFF00001FFFFF80003 FF8FFC000FFE0FFE001FFC1FFE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF0 0FFC00FFE00FFC00FFE003F000FFE000C000FFE0000000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 FFFFFFF800FFFFFFF800FFFFFFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000 FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE0000000FFE0000000FFE000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007F FFFFE00027467DC522>I<0000FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFF FFFFC001FFC07FFF3FC003FF001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF 0F001FF80003FF00001FF80003FF00003FF80003FF80003FF80003FF80003FF80003FF80 003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000 1FF80003FF00001FF80003FF00001FFC0007FF00000FFC0007FE000007FE000FFC000003 FF001FF8000001FFC07FF0000003FFFFFFE0000003FFFFFF800000078FFFFE0000000780 FFE00000000F8000000000000F8000000000000F8000000000000F8000000000000FC000 000000000FE000000000000FF000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFF FF800007FFFFFFFFE00003FFFFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFF FE000FFFFFFFFFFF001FF000007FFF003FC0000007FF007F80000001FF807F80000000FF 80FF00000000FF80FF000000007F80FF000000007F80FF000000007F80FF000000007F80 FF80000000FF807F80000000FF007FC0000001FF003FE0000003FE001FF0000007FC000F FE00003FF80007FFC001FFF00001FFFFFFFFC000007FFFFFFF0000000FFFFFF800000000 7FFF00000032427DAC38>I<007FC000000000FFFFC000000000FFFFC000000000FFFFC0 00000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000000001FFC000 00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 01FFC007FE000001FFC03FFF800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001 FFCF801FFC0001FFDF000FFE0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FF F00007FF0001FFF00007FF0001FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF 0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFF FFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C 0001FF0003FF8007FFC007FFC00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF 8001FF00007C000000000000000000000000000000000000000000000000000000000000 00007FC07FFFC07FFFC07FFFC07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<00 7FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFF C00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0007FFF E001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0000FE000 01FFC0001FC00001FFC0003F000001FFC0007E000001FFC000FC000001FFC003F8000001 FFC007E0000001FFC00FC0000001FFC01F80000001FFC07F00000001FFC0FE00000001FF C1FC00000001FFC3FE00000001FFC7FE00000001FFDFFF00000001FFFFFF80000001FFFF FFC0000001FFFFFFC0000001FFF9FFE0000001FFE1FFF0000001FFC0FFF8000001FF807F F8000001FF803FFC000001FF803FFE000001FF801FFF000001FF800FFF000001FF8007FF 800001FF8007FFC00001FF8003FFE00001FF8001FFE00001FF8000FFF00001FF8000FFF8 0001FF80007FFC0001FF80003FFC00FFFFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FFFFF8 FFFFFF03FFFFF8FFFFFF03FFFFF835457DC43B>107 D<007FC000FFFFC000FFFFC000FF FFC000FFFFC000FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FF FFFF80FFFFFF80FFFFFF8019457CC420>I<007F8007FE00000FFC0000FFFF803FFFC000 7FFF8000FFFF80FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87F01FFC0FE03FF8 00FFFF8FC00FFE1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF3C000FFE0001FF BC0007FF78000FFE0001FFF80003FFF00007FF0001FFF80003FFF00007FF0001FFF00003 FFE00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFE00003FFC000 07FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00 01FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC0 0003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF 800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007 FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001 FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC000 03FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80 0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFFFF03FFFF FEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFF FF81FFFFFF03FFFFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF8000FFFF80FFFFE0 00FFFF81FFFFF800FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE0001FF9E000FFE00 01FFBC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF0001FFE00007FF0001 FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF 0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE FFFFFF83FFFFFE372D7CAC3E>I<00001FFC0000000001FFFFC000000007FFFFF0000000 1FFFFFFC0000007FF80FFF000000FFC001FF800001FF8000FFC00003FE00003FE00007FE 00003FF0000FFC00001FF8000FF800000FF8001FF800000FFC001FF800000FFC003FF800 000FFE003FF0000007FE007FF0000007FF007FF0000007FF007FF0000007FF007FF00000 07FF00FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007 FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF 807FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF003FF800000FFE00 3FF800000FFE001FF800000FFC001FFC00001FFC000FFC00001FF80007FE00003FF00007 FE00003FF00003FF8000FFE00001FFC001FFC000007FF80FFF0000003FFFFFFE0000000F FFFFF800000001FFFFC0000000001FFC000000312F7DAD38>I<007FC00FF80000FFFFC0 FFFF8000FFFFC3FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF001FFE0003FFFC00 07FF0001FFF80003FF8001FFF00003FFC001FFE00001FFE001FFC00001FFE001FFC00000 FFF001FFC00000FFF001FFC000007FF801FFC000007FF801FFC000007FF801FFC000007F F801FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC 01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01 FFC000003FFC01FFC000003FFC01FFC000007FF801FFC000007FF801FFC000007FF801FF C000007FF001FFC00000FFF001FFC00000FFF001FFC00001FFE001FFE00001FFC001FFF0 0003FFC001FFF80007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC07FFC0001FFCFFF FFF00001FFC3FFFFC00001FFC0FFFF000001FFC01FF0000001FFC00000000001FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 01FFC000000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FF FFFF8000000036407DAC3E>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F 8FFCFFFF9F1FFE03FFBE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00F FC01FFE007F801FFE001E001FFE0000001FFE0000001FFE0000001FFC0000001FFC00000 01FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001 FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FF C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFF E000FFFFFFE000FFFFFFE000FFFFFFE000FFFFFFE000272D7DAC2E>114 D<001FFC038000FFFF878003FFFFFF800FFFFFFF801FF003FF803FC000FF803F80003F80 7F00001F807E00001F80FE00000F80FE00000F80FE00000780FF00000780FF00000780FF 80000780FFE0000000FFFE0000007FFFF000007FFFFF00003FFFFFC0003FFFFFF0001FFF FFFC000FFFFFFE0003FFFFFF0001FFFFFF80007FFFFF80000FFFFFC000003FFFC0000003 FFE0000000FFE0F000003FE0F000003FE0F800001FE0F800000FE0F800000FE0FC00000F E0FC00000FE0FE00000FC0FF00001FC0FF00001FC0FF80003F80FFE0007F00FFF803FE00 FFFFFFFC00FCFFFFF800F03FFFE000E007FE0000232F7CAD2C>I<0001E000000001E000 000001E000000001E000000001E000000003E000000003E000000003E000000003E00000 0007E000000007E00000000FE00000000FE00000001FE00000001FE00000003FE0000000 7FE0000000FFE0000003FFE000000FFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFF FFFF8000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000 FFE001E000FFE001E000FFE003E000FFF003C0007FF003C0007FF007C0003FF80F80001F FC1F00000FFFFF000007FFFC000001FFF80000003FE00023407EBE2C>I<007FC00001FF 00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF00 03FFC0000FFF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC0000FFF0001FFC0000FFF0001FFC0001FFF0001FFC0001FFF 0001FFC0003FFF0000FFC0003FFF0000FFE0007FFF80007FE001F7FFFE007FF807E7FFFE 003FFFFFC7FFFE000FFFFF07FFFE0003FFFE07FFFE00007FF007FC00372E7CAC3E>I120 DI<1FFFFFFFFF801FFFFFFFFF80 1FFFFFFFFF801FFFFFFFFF801FFC001FFF001FE0003FFE001FC0003FFE001F80007FFC00 1F0000FFF8003F0001FFF0003E0001FFF0003E0003FFE0003E0007FFC0003C000FFF8000 3C000FFF80003C001FFF00003C003FFE00003C007FFC000000007FFC00000000FFF80000 0001FFF000000003FFE000000003FFE000000007FFC00000000FFF800780001FFF000780 001FFF000780003FFE000780007FFC000F8000FFF8000F0000FFF8000F0001FFF0000F00 03FFE0001F0007FFC0001F0007FFC0001F000FFF80003F001FFF00007F003FFE0000FF00 3FFE0003FF007FFC001FFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00 292C7DAB32>I E %EndDVIPSBitmapFont /Fi 149[23 102[42 3[{}2 83.022 /CMSY10 rf %DVIPSBitmapFont: Fj ecbx1440 14.4 46 /Fj 46 123 df<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1F F807E01010768F25>46 D<000003FF80000000003FFFF800000001FFFFFF00000007FFFF FFC000000FFF01FFE000003FFC007FF800007FF0001FFC0000FFE0000FFE0001FFC00007 FF0001FF800003FF0003FF800003FF8007FF000001FFC007FF000001FFC00FFE000000FF E00FFE000000FFE01FFE000000FFF01FFE000000FFF01FFE000000FFF03FFE000000FFF8 3FFE000000FFF83FFC0000007FF83FFC0000007FF87FFC0000007FFC7FFC0000007FFC7F FC0000007FFC7FFC0000007FFC7FFC0000007FFC7FFC0000007FFCFFFC0000007FFEFFFC 0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC00 00007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000 007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC000000 7FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007FFEFFFC0000007F FEFFFC0000007FFE7FFC0000007FFC7FFC0000007FFC7FFC0000007FFC7FFC0000007FFC 7FFC0000007FFC7FFC0000007FFC3FFC0000007FF83FFE000000FFF83FFE000000FFF83F FE000000FFF81FFE000000FFF01FFE000000FFF01FFE000000FFF00FFE000000FFE00FFF 000001FFE007FF000001FFC007FF000001FFC003FF800003FF8001FF800003FF0001FFC0 0007FF0000FFE0000FFE00007FF0001FFC00003FFC007FF800000FFF01FFE0000007FFFF FFC0000001FFFFFF000000003FFFF80000000003FF800000374F7BCD42>48 D<0000001E00000000003E0000000000FE0000000003FE000000000FFE000000007FFE00 000007FFFE000003FFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFF87FFE00 00FC007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00 0000007FFE00007FFFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFF FC2E4E76CD42>I<00001FFE0000000001FFFFF00000000FFFFFFC0000003FFFFFFF8000 007FFFFFFFE00001FF803FFFF00003FC0007FFFC0007F00001FFFE000FE00000FFFF001F 8000007FFF803F0000003FFF803F0000001FFFC07FE000001FFFE07FF800000FFFE07FFC 00000FFFF0FFFC000007FFF0FFFE000007FFF0FFFE000003FFF8FFFE000003FFF8FFFE00 0003FFF8FFFE000003FFF8FFFE000003FFF87FFC000003FFF87FFC000003FFF83FF80000 03FFF81FF0000003FFF80380000003FFF80000000003FFF00000000007FFF00000000007 FFF00000000007FFE0000000000FFFE0000000000FFFC0000000001FFFC0000000001FFF 80000000003FFF00000000003FFE00000000007FFC0000000000FFF80000000000FFF000 00000001FFE00000000003FFC00000000007FF800000000007FF00000000000FFC000000 00001FF800000000003FF000000000007FC00000000000FF800000000001FF0000000000 03FC000000000007F800000000000FF00000F800001FE00000F800003FC00000F800007F 000000F80000FE000001F00001FC000001F00003F8000001F00007F0000001F00007E000 0001F0000F80000003F0001F00000003F0003E00000007F0007FFFFFFFFFF000FFFFFFFF FFE001FFFFFFFFFFE003FFFFFFFFFFE007FFFFFFFFFFE00FFFFFFFFFFFE01FFFFFFFFFFF E03FFFFFFFFFFFE07FFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFC0FFFFFFFFFFFFC0 FFFFFFFFFFFFC0FFFFFFFFFFFFC0354E7ACD42>I<000007FFC0000000007FFFFC000000 03FFFFFF8000000FFFFFFFE000001FF803FFF800007FC000FFFC0000FE00003FFE0001FC 00003FFF0003F800001FFF8003FE00001FFF8007FF80000FFFC007FFC0000FFFC00FFFC0 000FFFE00FFFE0000FFFE00FFFE0000FFFE00FFFE0000FFFE00FFFE0000FFFE00FFFE000 0FFFE00FFFE0000FFFE007FFC0000FFFE007FFC0000FFFC003FF80000FFFC001FF00001F FFC0003800001FFF80000000001FFF80000000003FFF00000000003FFF00000000007FFE 00000000007FFC0000000000FFF80000000001FFF00000000003FFC0000000000FFF8000 0000007FFE000000007FFFF8000000007FFFC0000000007FFFFC000000007FFFFF800000 000003FFE000000000007FF800000000003FFE00000000001FFF00000000000FFF800000 00000FFFC00000000007FFE00000000007FFF00000000003FFF80000000003FFF8000000 0003FFFC0000000001FFFC0000000001FFFC0000000001FFFE0000000001FFFE00000000 01FFFE03C0000001FFFE0FF0000001FFFE3FFC000001FFFE7FFE000001FFFE7FFE000001 FFFEFFFF000001FFFEFFFF000001FFFEFFFF000001FFFCFFFF000001FFFCFFFF000003FF FCFFFF000003FFF8FFFF000003FFF87FFE000003FFF07FFC000007FFF07FF8000007FFE0 3FE000000FFFC01FC000001FFFC00FF000003FFF8007FE00007FFE0003FFE003FFFC0001 FFFFFFFFF800007FFFFFFFE000000FFFFFFF00000001FFFFFC000000001FFF800000374F 7BCD42>I<0000000000FC00000000000001FC00000000000001FC00000000000003FC00 000000000007FC0000000000000FFC0000000000000FFC0000000000001FFC0000000000 003FFC0000000000007FFC0000000000007FFC000000000000FFFC000000000001FFFC00 0000000003FFFC000000000003FFFC000000000007FFFC00000000000FFFFC0000000000 1FFFFC00000000001F7FFC00000000003E7FFC00000000007E7FFC0000000000FC7FFC00 00000000F87FFC0000000001F07FFC0000000003F07FFC0000000007E07FFC0000000007 C07FFC000000000F807FFC000000001F807FFC000000003F007FFC000000003E007FFC00 0000007C007FFC00000000FC007FFC00000001F8007FFC00000001F0007FFC00000003E0 007FFC00000007E0007FFC0000000FC0007FFC0000000F80007FFC0000001F00007FFC00 00003F00007FFC0000007E00007FFC0000007C00007FFC000000F800007FFC000001F800 007FFC000003F000007FFC000003E000007FFC000007C000007FFC00000FC000007FFC00 001F8000007FFC00001F0000007FFC00003E0000007FFC00007E0000007FFC0000FC0000 007FFC0000FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF 80FFFFFFFFFFFFFF8000000000FFFC000000000000FFFC000000000000FFFC0000000000 00FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00 0000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC0000000000 00FFFC000000000000FFFC000000000000FFFC000000001FFFFFFFFF8000001FFFFFFFFF 8000001FFFFFFFFF8000001FFFFFFFFF8000001FFFFFFFFF80394F7CCE42>I<01800000 00060001F00000003E0001FE000001FE0001FFF0003FFE0001FFFFFFFFFC0001FFFFFFFF F80001FFFFFFFFF00001FFFFFFFFE00001FFFFFFFFC00001FFFFFFFF800001FFFFFFFF00 0001FFFFFFFC000001FFFFFFF8000001FFFFFFE0000001FFFFFF00000001FFFFFC000000 01F0FF8000000001F0000000000001F0000000000001F0000000000001F0000000000001 F0000000000001F0000000000001F0000000000001F0000000000001F0000000000001F0 000000000001F0000000000001F0000000000001F007FF80000001F03FFFF8000001F0FF FFFE000001F3FFFFFF800001FFFC01FFE00001FFE0007FF80001FF00003FFC0001FE0000 1FFE0001F800000FFF0001F000000FFF0001F0000007FF8001E0000007FFC00000000007 FFC00000000007FFE00000000003FFE00000000003FFF00000000003FFF00000000003FF F00000000003FFF00000000003FFF80000000003FFF80000000003FFF80300000003FFF8 0FE0000003FFF83FF8000003FFF87FFC000003FFF87FFC000003FFF8FFFC000003FFF8FF FE000003FFF8FFFE000003FFF8FFFE000003FFF0FFFE000003FFF0FFFC000003FFF0FFFC 000007FFF07FF8000007FFE07FF0000007FFE07FC0000007FFC03F0000000FFFC03F0000 000FFF801F8000001FFF001FC000001FFF000FF000003FFE0007F80000FFFC0003FE0001 FFF00001FFE00FFFE000007FFFFFFF8000003FFFFFFF0000000FFFFFF800000001FFFFC0 000000003FFC000000354F7ACD42>I<00000007FE0000000000FFFFC000000003FFFFF0 0000001FFFFFFC0000007FFC01FE000000FFE0007F000003FF80003F800007FF00001F80 000FFE00007FC0001FFC0000FFC0003FF80003FFE0007FF00003FFE000FFE00007FFE001 FFE00007FFE003FFC00007FFE003FFC00007FFE007FF800007FFE007FF800007FFE00FFF 800003FFC00FFF000003FFC01FFF000000FF001FFF0000007E001FFF00000000003FFF00 000000003FFF00000000003FFE00000000007FFE00000000007FFE00000000007FFE003F F000007FFE01FFFF00007FFE07FFFFC000FFFE0FFFFFF000FFFE1F807FF800FFFE3E001F FE00FFFE78000FFF00FFFEF00007FF80FFFEF00003FFC0FFFFE00003FFC0FFFFC00001FF E0FFFFC00001FFF0FFFF800001FFF0FFFF800000FFF8FFFF800000FFF8FFFF000000FFFC FFFF000000FFFCFFFF000000FFFCFFFF000000FFFCFFFE000000FFFEFFFE000000FFFEFF FE000000FFFE7FFE000000FFFE7FFE000000FFFE7FFE000000FFFE7FFE000000FFFE7FFE 000000FFFE7FFE000000FFFE3FFE000000FFFE3FFE000000FFFE3FFE000000FFFE3FFF00 0000FFFE1FFF000000FFFC1FFF000000FFFC1FFF000000FFFC0FFF000000FFF80FFF0000 01FFF807FF000001FFF807FF800001FFF003FF800001FFE001FFC00003FFE001FFE00003 FFC000FFE00007FF80007FF0000FFF00003FFC001FFE00001FFF00FFFC000007FFFFFFF0 000003FFFFFFE0000000FFFFFF800000001FFFFC0000000003FFC00000374F7BCD42>I< 1F0000000000001F8000000000001FC000000000001FFF80000000001FFFFFFFFFFFFF1F FFFFFFFFFFFF1FFFFFFFFFFFFF1FFFFFFFFFFFFF3FFFFFFFFFFFFF3FFFFFFFFFFFFE3FFF FFFFFFFFFC3FFFFFFFFFFFF83FFFFFFFFFFFF03FFFFFFFFFFFF03FFFFFFFFFFFE03FFFFF FFFFFFC03FFFFFFFFFFF807FFFFFFFFFFF007F800000003E007E000000007E007E000000 00FC007C00000001F8007C00000003F0007C00000003E0007C00000007E0007C0000000F C000F80000001F8000F80000003F0000F80000007E0000F80000007C000000000000FC00 0000000001F8000000000003F0000000000003F0000000000007E000000000000FE00000 0000001FC000000000001FC000000000003F8000000000003F8000000000007F00000000 0000FF000000000000FF000000000001FF000000000001FE000000000003FE0000000000 03FE000000000007FE000000000007FC00000000000FFC00000000000FFC00000000000F FC00000000001FFC00000000001FFC00000000003FFC00000000003FFC00000000003FFC 00000000007FF800000000007FF800000000007FF800000000007FF80000000000FFF800 00000000FFF80000000000FFF80000000000FFF80000000000FFF80000000000FFF80000 000001FFF80000000001FFF80000000001FFF80000000001FFF80000000001FFF8000000 0001FFF80000000001FFF80000000001FFF80000000001FFF80000000001FFF800000000 01FFF80000000000FFF000000000007FE000000000003FC000000000001F800000003852 79D042>I<000003FFC0000000003FFFFC00000001FFFFFF80000007FFFFFFE000000FFC 00FFF800003FE0001FFC00007F800007FE0000FF000003FF0000FE000001FF8001FC0000 00FF8003FC000000FFC003F80000007FC007F80000007FC007F80000007FE007F8000000 3FE00FF80000003FE00FF80000003FE00FFC0000003FE00FFC0000003FE00FFE0000003F E00FFF0000003FE00FFF8000007FE00FFFE000007FC00FFFF000007FC00FFFFC0000FFC0 07FFFF0000FF8007FFFF8001FF0007FFFFE003FF0003FFFFF807FE0003FFFFFC0FFC0001 FFFFFF1FF00000FFFFFFFFE00000FFFFFFFF8000007FFFFFFE0000003FFFFFFE0000000F FFFFFF80000007FFFFFFC0000001FFFFFFF0000000FFFFFFF8000003FFFFFFFE00000FFF FFFFFF00003FF7FFFFFF80007FC1FFFFFFC001FF807FFFFFE003FF001FFFFFE007FE000F FFFFF00FFC0003FFFFF81FF80000FFFFF81FF000007FFFFC3FF000001FFFFC3FE0000007 FFFC7FE0000003FFFE7FC0000000FFFE7FC00000007FFEFFC00000003FFEFF800000001F FEFF800000000FFEFF8000000007FEFF8000000007FEFF8000000003FEFF8000000003FE FF8000000003FCFF8000000003FCFFC000000003FC7FC000000003FC7FE000000007F87F E000000007F83FF00000000FF03FF80000000FF01FFC0000001FE00FFE0000003FC007FF 000000FF8003FFC00003FF0001FFFC003FFE00007FFFFFFFF800001FFFFFFFE0000007FF FFFF80000000FFFFFC000000000FFFC00000374F7BCD42>I<000007FF80000000007FFF F800000001FFFFFE00000007FFFFFF8000001FFE01FFE000007FF8003FF00000FFF0001F F80001FFE0000FFC0003FFC00007FE0007FF800007FF000FFF800003FF800FFF000003FF 801FFF000001FFC03FFF000001FFC03FFF000001FFE07FFE000001FFE07FFE000001FFF0 7FFE000001FFF07FFE000000FFF8FFFE000000FFF8FFFE000000FFF8FFFE000000FFF8FF FE000000FFFCFFFE000000FFFCFFFE000000FFFCFFFE000000FFFCFFFE000000FFFCFFFE 000000FFFCFFFE000000FFFEFFFE000000FFFEFFFE000000FFFEFFFE000001FFFE7FFE00 0001FFFE7FFE000001FFFE7FFE000001FFFE7FFE000001FFFE3FFE000003FFFE3FFE0000 03FFFE1FFF000003FFFE1FFF000007FFFE0FFF000007FFFE07FF80000FFFFE07FF80001E FFFE03FFC0001EFFFE01FFE0003CFFFE007FF000F8FFFE003FFC03F0FFFE001FFFFFE0FF FE0007FFFFC0FFFC0000FFFF00FFFC00001FF800FFFC0000000000FFFC0000000000FFFC 0000000000FFF80000000001FFF80000000001FFF80000000001FFF800FC000001FFF001 FE000001FFF007FF800001FFE007FF800003FFE00FFFC00003FFC00FFFC00003FFC00FFF C00007FF800FFFC00007FF800FFFC0000FFF000FFFC0000FFE000FFF80001FFE0007FF80 003FFC0007FE00007FF80007FC0000FFF00003F80001FFE00003FC0007FFC00001FF803F FF000000FFFFFFFC0000003FFFFFF80000001FFFFFC000000007FFFF00000000007FF000 0000374F7BCD42>I<0000000003FFF0000007000000007FFFFF00000F00000007FFFFFF E0001F0000003FFFFFFFF8003F000000FFFFFFFFFE007F000003FFFFC003FF00FF00000F FFF800003FC1FF00003FFFC000000FE3FF0000FFFF00000003FFFF0001FFFC00000001FF FF0003FFF800000000FFFF0007FFE0000000007FFF001FFFC0000000003FFF003FFF8000 0000001FFF003FFF00000000000FFF007FFE000000000007FF00FFFC000000000003FF01 FFFC000000000003FF01FFF8000000000001FF03FFF0000000000001FF07FFF000000000 0000FF07FFF0000000000000FF0FFFE00000000000007F0FFFE00000000000007F1FFFC0 0000000000007F1FFFC00000000000003F1FFFC00000000000003F3FFF80000000000000 3F3FFF800000000000001F3FFF800000000000001F7FFF800000000000001F7FFF800000 000000001F7FFF80000000000000007FFF00000000000000007FFF0000000000000000FF FF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000 000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF00 00000000000000FFFF0000000000000000FFFF0000000000000000FFFF00000000000000 00FFFF0000000000000000FFFF0000000000000000FFFF00000000000000007FFF000000 00000000007FFF00000000000000007FFF80000000000000007FFF80000000000000007F FF80000000000000003FFF800000000000001F3FFF800000000000001F3FFF8000000000 00001F1FFFC00000000000001F1FFFC00000000000001F1FFFC00000000000003F0FFFE0 0000000000003F0FFFE00000000000003E07FFF00000000000003E07FFF0000000000000 7E03FFF80000000000007C01FFF8000000000000FC01FFFC000000000000F800FFFC0000 00000001F8007FFE000000000003F0003FFF000000000003F0003FFF800000000007E000 1FFFC0000000000FC00007FFE0000000001F800003FFF8000000003F000001FFFC000000 00FE000000FFFF00000001FC0000003FFFC0000007F80000000FFFFC00003FF000000003 FFFFC001FFC000000000FFFFFFFFFF00000000003FFFFFFFFC000000000007FFFFFFF000 00000000007FFFFF8000000000000003FFF0000000505479D25F>67 DI70 D<0000000003FFF0000007000000000000 7FFFFF00000F000000000007FFFFFFE0001F00000000003FFFFFFFF8003F0000000000FF FFFFFFFE007F0000000003FFFFC003FF00FF000000000FFFF800003FC1FF000000003FFF C000000FE3FF00000000FFFF00000003FFFF00000001FFFC00000001FFFF00000003FFF8 00000000FFFF00000007FFE0000000007FFF0000001FFFC0000000003FFF0000003FFF80 000000001FFF0000003FFF00000000000FFF0000007FFE000000000007FF000000FFFC00 0000000003FF000001FFFC000000000003FF000001FFF8000000000001FF000003FFF000 0000000001FF000007FFF0000000000000FF000007FFF0000000000000FF00000FFFE000 00000000007F00000FFFE00000000000007F00001FFFC00000000000007F00001FFFC000 00000000003F00001FFFC00000000000003F00003FFF800000000000003F00003FFF8000 00000000001F00003FFF800000000000001F00007FFF800000000000001F00007FFF8000 00000000001F00007FFF800000000000000000007FFF000000000000000000007FFF0000 0000000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF0000 0000000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF0000 0000000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF0000 0000000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF0000 0000000000000000FFFF00000000000000000000FFFF000000000000000000007FFF0000 00000000000000007FFF000000007FFFFFFFFF807FFF800000007FFFFFFFFF807FFF8000 00007FFFFFFFFF807FFF800000007FFFFFFFFF803FFF800000007FFFFFFFFF803FFF8000 000000007FFF00003FFFC000000000007FFF00001FFFC000000000007FFF00001FFFC000 000000007FFF00001FFFC000000000007FFF00000FFFE000000000007FFF00000FFFE000 000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF000003FFF800 000000007FFF000001FFF800000000007FFF000001FFFC00000000007FFF000000FFFE00 000000007FFF0000007FFE00000000007FFF0000003FFF00000000007FFF0000003FFF80 000000007FFF0000001FFFC000000000FFFF00000007FFE000000000FFFF00000003FFF8 00000001FFFF00000001FFFC00000001FFFF00000000FFFF00000003FFFF000000003FFF E000000FEFFF000000000FFFFC00003FE3FF0000000003FFFFE001FF81FF0000000000FF FFFFFFFF00FF00000000003FFFFFFFFC003F000000000007FFFFFFF0000F000000000000 7FFFFF80000300000000000003FFF80000000000595479D267>I73 D76 DII80 D82 D<00000FFE00001C000000FFFFF0003C000007FFFFFC007C00001FFFFFFF00FC 00007FFFFFFFC1FC0000FFF001FFE1FC0001FF80001FFBFC0003FF000007FFFC0007FC00 0001FFFC000FF8000000FFFC001FF00000003FFC001FF00000001FFC003FE00000000FFC 003FE00000000FFC007FE000000007FC007FC000000003FC007FC000000003FC007FC000 000001FC00FFC000000001FC00FFC000000001FC00FFC000000000FC00FFE000000000FC 00FFE000000000FC00FFF0000000007C00FFF0000000007C00FFF8000000007C00FFFC00 0000007C00FFFE0000000000007FFF0000000000007FFFC000000000007FFFF800000000 007FFFFF80000000003FFFFFF8000000003FFFFFFFC00000001FFFFFFFFC0000000FFFFF FFFF8000000FFFFFFFFFF0000007FFFFFFFFFC000003FFFFFFFFFE000001FFFFFFFFFF80 0000FFFFFFFFFFC000007FFFFFFFFFE000001FFFFFFFFFF0000007FFFFFFFFF8000001FF FFFFFFF80000007FFFFFFFFC00000007FFFFFFFE000000007FFFFFFE0000000003FFFFFF 00000000003FFFFF000000000003FFFF800000000000FFFF8000000000003FFF80000000 00001FFF8000000000000FFFC0000000000007FFC0000000000003FFC0F80000000003FF C0F80000000001FFC0F80000000001FFC0F80000000001FFC0F80000000000FFC0FC0000 000000FFC0FC0000000000FFC0FC0000000000FFC0FC0000000000FF80FE0000000000FF 80FE0000000000FF80FF0000000001FF80FF0000000001FF00FF8000000001FF00FFC000 000003FE00FFE000000003FE00FFF000000007FC00FFFC0000000FF800FFFE0000001FF8 00FFFFC000003FF000FF7FF80000FFE000FE1FFF8007FFC000FE07FFFFFFFF0000FC01FF FFFFFC0000F8007FFFFFF00000F0000FFFFFC00000E000007FFC0000003A5479D249>I< FFFFFFFFFE000001FFFFFFF0FFFFFFFFFE000001FFFFFFF0FFFFFFFFFE000001FFFFFFF0 FFFFFFFFFE000001FFFFFFF0FFFFFFFFFE000001FFFFFFF0000FFFE000000000007FC000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 000FFFE000000000001F0000000FFFE000000000001F0000000FFFE000000000001F0000 0007FFE000000000003F00000007FFE000000000003E00000007FFF000000000003E0000 0007FFF000000000007E00000003FFF000000000007C00000003FFF000000000007C0000 0001FFF80000000000FC00000001FFF80000000000F800000000FFFC0000000001F80000 00007FFC0000000003F0000000007FFE0000000007E0000000003FFE000000000FE00000 00001FFF000000001FC0000000000FFF800000003F800000000007FFE0000000FF000000 000003FFF8000003FE000000000000FFFE00001FFC0000000000007FFFE001FFF8000000 0000001FFFFFFFFFE000000000000007FFFFFFFF8000000000000000FFFFFFFE00000000 000000001FFFFFF0000000000000000000FFFF00000000005C537CD165>85 D87 D<3FFFFFFFFF0001FFFFFFFC003FFFFFFFFF0001FF FFFFFC003FFFFFFFFF0001FFFFFFFC003FFFFFFFFF0001FFFFFFFC003FFFFFFFFF0001FF FFFFFC000003FFFE00000003FFE000000003FFFF000000007E0000000001FFFF00000000 7E0000000000FFFF80000000FC00000000007FFFC0000001F800000000007FFFC0000003 F800000000003FFFE0000003F000000000001FFFF0000007E000000000001FFFF000000F C000000000000FFFF800001FC0000000000007FFFC00001F80000000000007FFFC00003F 00000000000003FFFE00007E00000000000001FFFF00007E00000000000001FFFF8000FC 00000000000000FFFF8001F8000000000000007FFFC003F8000000000000003FFFE003F0 000000000000003FFFE007E0000000000000001FFFF00FC0000000000000000FFFF81FC0 000000000000000FFFF81F800000000000000007FFFC3F000000000000000003FFFE7E00 0000000000000003FFFE7E000000000000000001FFFFFC000000000000000000FFFFF800 0000000000000000FFFFF80000000000000000007FFFF00000000000000000003FFFE000 00000000000000001FFFF00000000000000000001FFFF00000000000000000000FFFF800 000000000000000007FFFC00000000000000000007FFFC00000000000000000003FFFE00 000000000000000001FFFF00000000000000000001FFFF00000000000000000003FFFF80 000000000000000003FFFFC0000000000000000007FFFFE000000000000000000FFFFFE0 00000000000000001FDFFFF000000000000000001F8FFFF800000000000000003F0FFFF8 00000000000000007E07FFFC00000000000000007E03FFFE0000000000000000FC03FFFE 0000000000000001F801FFFF0000000000000003F800FFFF8000000000000003F000FFFF 8000000000000007E0007FFFC00000000000000FC0003FFFE00000000000001FC0003FFF F00000000000001F80001FFFF00000000000003F00000FFFF80000000000007E000007FF FC0000000000007E000007FFFC000000000000FC000003FFFE000000000001F8000001FF FF000000000003F8000001FFFF000000000003F0000000FFFF800000000007E00000007F FFC0000000000FC00000007FFFC0000000001FC00000003FFFE0000000001F800000001F FFF0000000003F000000001FFFF8000000007E000000000FFFF8000000007E0000000007 FFFC00000000FC0000000003FFFE00000001F80000000003FFFE0000000FFF0000000001 FFFF0000FFFFFFFF000003FFFFFFFFF0FFFFFFFF000003FFFFFFFFF0FFFFFFFF000003FF FFFFFFF0FFFFFFFF000003FFFFFFFFF0FFFFFFFF000003FFFFFFFFF05C527DD163>I<00 003FFE000000000007FFFFE0000000001FFFFFFC000000007FFFFFFF00000001FFC00FFF C0000003FE0003FFE0000007FF0000FFF0000007FF80007FF800000FFFC0007FFC00000F FFC0003FFE00000FFFC0003FFE00000FFFC0001FFF00000FFFC0001FFF00000FFFC0001F FF00000FFFC0000FFF800007FF80000FFF800003FF00000FFF800001FE00000FFF800000 0000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000F FF8000000000000FFF800000000007FFFF8000000003FFFFFF800000007FFFFFFF800000 03FFFFFFFF8000001FFFF00FFF8000007FFF000FFF800000FFFC000FFF800003FFF0000F FF800007FFC0000FFF80000FFF80000FFF80001FFF00000FFF80003FFF00000FFF80003F FE00000FFF80007FFC00000FFF80007FFC00000FFF81F0FFFC00000FFF81F0FFF800000F FF81F0FFF800000FFF81F0FFF800000FFF81F0FFF800001FFF81F0FFF800001FFF81F0FF FC00003FFF81F07FFC00003FFF81F07FFE00007FFF81F03FFE0000F7FFC3F03FFF0001E3 FFC3E01FFFC007E3FFFFE007FFF01F81FFFFC003FFFFFF00FFFF8000FFFFFC007FFF0000 1FFFF0003FFC000001FF800007F0003C387CB642>97 D<000003FFE0000000003FFFFE00 000000FFFFFF80000003FFFFFFE000000FFF003FF800003FFC0007FC00007FF8000FFE00 00FFF0001FFE0001FFE0003FFF0003FFC0003FFF0007FF80003FFF0007FF80003FFF000F FF00003FFF001FFF00003FFF001FFE00003FFF003FFE00001FFE003FFE00000FFC003FFE 000007F8007FFE00000000007FFC00000000007FFC00000000007FFC0000000000FFFC00 00000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000 000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC000000 0000FFFC0000000000FFFC00000000007FFC00000000007FFE00000000007FFE00000000 007FFE00000000003FFE00000000003FFF00000000001FFF0000000F801FFF0000000F80 0FFF8000001F800FFF8000001F0007FFC000003F0003FFE000003E0001FFF000007E0000 FFF80000FC00007FFC0001F800003FFF0007F000000FFFC01FE0000007FFFFFF80000001 FFFFFE000000003FFFF80000000003FF80000031387CB63A>99 D<000000000003FF8000 000000000FFFFF8000000000000FFFFF8000000000000FFFFF8000000000000FFFFF8000 000000000FFFFF800000000000003FFF800000000000000FFF800000000000000FFF8000 00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 000003FF800FFF800000003FFFF80FFF80000001FFFFFE0FFF80000007FFFFFF8FFF8000 001FFFC03FEFFF8000003FFE0007FFFF8000007FF80001FFFF800000FFF00000FFFF8000 01FFE000007FFF800003FFC000003FFF800007FF8000001FFF80000FFF8000000FFF8000 0FFF0000000FFF80001FFF0000000FFF80001FFE0000000FFF80003FFE0000000FFF8000 3FFE0000000FFF80007FFE0000000FFF80007FFC0000000FFF80007FFC0000000FFF8000 7FFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000 FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000 FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000 FFFC0000000FFF8000FFFC0000000FFF80007FFC0000000FFF80007FFC0000000FFF8000 7FFC0000000FFF80007FFE0000000FFF80003FFE0000000FFF80003FFE0000000FFF8000 3FFE0000000FFF80001FFE0000000FFF80001FFF0000000FFF80000FFF0000001FFF8000 07FF8000003FFF800007FF8000007FFF800003FFC00000FFFF800001FFE00001FFFF8000 00FFF00003FFFFE000007FFC000FEFFFFF80001FFF007F8FFFFF800007FFFFFF0FFFFF80 0001FFFFFC0FFFFF8000007FFFE00FFFFF80000007FF000FFE000041547CD249>I<0000 07FF80000000007FFFF800000001FFFFFE00000007FFFFFF8000001FFF03FFE000003FFC 007FF000007FF0003FF80000FFE0001FFC0001FFC0000FFC0003FF800007FE0007FF8000 07FF000FFF000003FF000FFF000003FF801FFE000003FF801FFE000001FF803FFE000001 FFC03FFE000001FFC03FFE000001FFC07FFC000001FFC07FFC000001FFE07FFC000000FF E07FFC000000FFE0FFFC000000FFE0FFFC000000FFE0FFFFFFFFFFFFE0FFFFFFFFFFFFE0 FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFC0000000000FFFC0000000000FFFC0000000000FF FC0000000000FFFC0000000000FFFC00000000007FFC00000000007FFC00000000007FFC 00000000007FFE00000000003FFE00000000003FFE00000000003FFE00000003E01FFF00 000003E01FFF00000007E00FFF00000007C007FF8000000FC007FF8000000F8003FFC000 001F8001FFE000003F0000FFF000007E00007FFC0001FC00001FFF0007F800000FFFE03F F0000003FFFFFFC0000000FFFFFF800000003FFFFC0000000001FFE0000033387CB63C> I<0000001FF800000003FFFE0000000FFFFF8000003FFFFFC00000FFF83FE00003FFE0FF F00007FF80FFF0000FFF01FFF8001FFF01FFF8003FFE01FFF8003FFE01FFF8007FFC01FF F8007FFC01FFF8007FFC00FFF000FFF800FFF000FFF8007FE000FFF8001F8000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF8000000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC0 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF8000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE00 002D547CD328>I<00001FFE0000FE000001FFFFE007FF80000FFFFFFC1FFFC0003FFFFF FF7FFFE0007FF807FFFF07E001FFE001FFF07FE003FFC000FFF07FE007FF80007FF83FE0 07FF00003FF83FC00FFF00003FFC1FC01FFF00003FFE07001FFE00001FFE00001FFE0000 1FFE00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF0000 3FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE0000 1FFF00001FFE00001FFE00001FFE00001FFE00001FFF00003FFE00000FFF00003FFC0000 07FF00003FF8000007FF80007FF8000003FFC000FFF0000001FFE001FFE0000000FFF807 FF80000001FFFFFFFF00000003EFFFFFFC00000003C1FFFFE000000007C01FFE00000000 078000000000000007800000000000000FC00000000000000FC00000000000000FC00000 000000000FE00000000000000FE00000000000000FF00000000000000FFC000000000000 0FFFFFFFFE00000007FFFFFFFFF0000007FFFFFFFFFC000007FFFFFFFFFF800003FFFFFF FFFFC00003FFFFFFFFFFF00001FFFFFFFFFFF80000FFFFFFFFFFFC00007FFFFFFFFFFC00 01FFFFFFFFFFFE0007FFFFFFFFFFFE000FFC000003FFFF001FF80000003FFF003FF00000 000FFF007FE000000007FF807FE000000003FF80FFC000000003FF80FFC000000001FF80 FFC000000001FF80FFC000000001FF80FFC000000001FF80FFC000000001FF80FFE00000 0003FF807FE000000003FF007FF000000007FF003FF000000007FE001FF80000000FFC00 1FFE0000003FFC0007FF0000007FF00003FFC00001FFE00000FFFC001FFF8000003FFFFF FFFE0000000FFFFFFFF800000001FFFFFFC0000000000FFFF80000003B4F7CB542>I<00 3FF8000000000000FFFFF8000000000000FFFFF8000000000000FFFFF8000000000000FF FFF8000000000000FFFFF800000000000003FFF800000000000000FFF800000000000000 FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 FFF800000000000000FFF8001FFC00000000FFF800FFFF80000000FFF803FFFFE0000000 FFF80FFFFFF8000000FFF81FC07FFC000000FFF87E003FFE000000FFF8F8001FFF000000 FFF9F0001FFF000000FFF9E0000FFF800000FFFBC0000FFF800000FFFF80000FFF800000 FFFF000007FFC00000FFFF000007FFC00000FFFE000007FFC00000FFFE000007FFC00000 FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FF FFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC042537CD249>I<003F00 0000FFC00001FFE00003FFF00003FFF00007FFF80007FFF80007FFF80007FFF80007FFF8 0007FFF80003FFF00003FFF00001FFE00000FFC000003F00000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000001FF800FFFFF800FFFFF800FFFFF800FFFFF800FFFFF80001FFF8 0000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF8 0000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF8 0000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF8 0000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF8 0000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800FFFFFFF0FFFFFFF0FFFFFF F0FFFFFFF0FFFFFFF01C547CD324>I<003FF800FFFFF800FFFFF800FFFFF800FFFFF800 FFFFF80003FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800 00FFF800FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81D537CD224>108 D<003FF0001FF8000001FF800000FFFFF000FFFF80000FFFF80000FFFFF003FFFFE0003F FFFE0000FFFFF00FFFFFF000FFFFFF0000FFFFF03F80FFF803F80FFF8000FFFFF07E007F FC07E007FFC00003FFF0F8003FFE0F8003FFE00000FFF1F0001FFE1F0001FFE00000FFF3 E0001FFF3E0001FFF00000FFF3C0001FFF3C0001FFF00000FFF780001FFF780001FFF000 00FFF700000FFFF00000FFF80000FFFF00000FFFF00000FFF80000FFFE00000FFFE00000 FFF80000FFFE00000FFFE00000FFF80000FFFC00000FFFC00000FFF80000FFFC00000FFF C00000FFF80000FFFC00000FFFC00000FFF80000FFF800000FFF800000FFF80000FFF800 000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000 FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FF F80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF80 0000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF80000 0FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FF F800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF8 0000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF8000 00FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000F FF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF8 00000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF800 00FFF800000FFF800000FFF80000FFF800000FFF800000FFF800FFFFFFF80FFFFFFF80FF FFFFF8FFFFFFF80FFFFFFF80FFFFFFF8FFFFFFF80FFFFFFF80FFFFFFF8FFFFFFF80FFFFF FF80FFFFFFF8FFFFFFF80FFFFFFF80FFFFFFF865367BB56E>I<003FF0001FFC000000FF FFF000FFFF800000FFFFF003FFFFE00000FFFFF00FFFFFF80000FFFFF01FC07FFC0000FF FFF07E003FFE000003FFF0F8001FFF000000FFF1F0001FFF000000FFF1E0000FFF800000 FFF3C0000FFF800000FFF780000FFF800000FFF7000007FFC00000FFFF000007FFC00000 FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC000007FFC00000 FFFC000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC000FF FFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FF FFFFF807FFFFFFC042367CB549>I<000001FFC000000000003FFFFE0000000000FFFFFF 8000000003FFFFFFE00000000FFF80FFF80000003FFC001FFE0000007FF00007FF000000 FFE00003FF800001FFC00001FFC00003FF800000FFE00003FF0000007FE00007FF000000 7FF0000FFF0000007FF8000FFE0000003FF8001FFE0000003FFC001FFE0000003FFC003F FE0000003FFE003FFC0000001FFE003FFC0000001FFE007FFC0000001FFF007FFC000000 1FFF007FFC0000001FFF007FFC0000001FFF00FFFC0000001FFF80FFFC0000001FFF80FF FC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC000000 1FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FF FC0000001FFF807FFC0000001FFF007FFC0000001FFF007FFC0000001FFF003FFC000000 1FFE003FFE0000003FFE003FFE0000003FFE001FFE0000003FFC001FFE0000003FFC000F FF0000007FF8000FFF0000007FF80007FF800000FFF00003FF800000FFE00001FFC00001 FFC00000FFE00003FF8000007FF00007FF0000003FFC001FFE0000001FFF80FFFC000000 07FFFFFFF000000001FFFFFFC0000000003FFFFE000000000003FFE000000039387CB642 >I<003FF8007FF0000000FFFFF807FFFF000000FFFFF81FFFFFC00000FFFFF87FFFFFF0 0000FFFFF9FF00FFFC0000FFFFFFF8003FFF000003FFFFE0000FFF800000FFFF800007FF C00000FFFF000003FFE00000FFFE000003FFF00000FFFC000001FFF00000FFF8000000FF F80000FFF8000000FFFC0000FFF80000007FFC0000FFF80000007FFE0000FFF80000007F FE0000FFF80000003FFE0000FFF80000003FFF0000FFF80000003FFF0000FFF80000003F FF0000FFF80000003FFF0000FFF80000001FFF8000FFF80000001FFF8000FFF80000001F FF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001F FF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001F FF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000003FFF0000FFF80000003F FF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000007FFE0000FFF80000007F FE0000FFF80000007FFC0000FFF8000000FFFC0000FFF8000000FFF80000FFFC000001FF F80000FFFC000001FFF00000FFFE000003FFE00000FFFF000007FFC00000FFFF80000FFF 800000FFFFE0001FFF000000FFFFF0007FFE000000FFF9FE01FFF8000000FFF8FFFFFFF0 000000FFF83FFFFFC0000000FFF807FFFE00000000FFF800FFE000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 0000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF8000000 0000FFFFFFF80000000000414D7DB549>I<003FF001FC00FFFFF00FFF80FFFFF01FFFE0 FFFFF07FFFF0FFFFF0FE1FF8FFFFF1F83FF801FFF1F07FFC00FFF3E07FFC00FFF3C07FFC 00FFF7807FFC00FFF7807FFC00FFFF007FFC00FFFF003FF800FFFE001FF000FFFE000FE0 00FFFE00000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF8000000FFFFFFFE0000FFFFFFFE0000 FFFFFFFE0000FFFFFFFE0000FFFFFFFE00002E367DB535>114 D<0003FFC00E00001FFF FC1E0000FFFFFF7E0003FFFFFFFE0007FE003FFE000FF0000FFE001FE00003FE003FC000 01FE003F800000FE007F800000FE007F0000007E007F0000007E00FF0000003E00FF0000 003E00FF8000003E00FF8000003E00FFC000003E00FFF000000000FFFC00000000FFFF80 0000007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFFFF80001FFFFFFFE0000FFFFF FFF00007FFFFFFFC0003FFFFFFFE0000FFFFFFFF00003FFFFFFF00000FFFFFFF800001FF FFFF8000000FFFFFC00000003FFFC000000007FFE000000001FFE0F8000000FFE0F80000 007FE0FC0000003FE0FC0000003FE0FC0000001FE0FE0000001FE0FE0000001FE0FE0000 001FC0FF0000001FC0FF8000003FC0FF8000003F80FFC000003F80FFE000007F00FFF800 00FF00FFFC0003FE00FFFF801FFC00FE7FFFFFF000F81FFFFFC000F007FFFF0000E0007F F000002B387CB634>I<00007C00000000007C00000000007C00000000007C0000000000 7C00000000007C0000000000FC0000000000FC0000000000FC0000000000FC0000000001 FC0000000001FC0000000001FC0000000003FC0000000003FC0000000007FC0000000007 FC000000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC00000003FF FC0000000FFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00007F FC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007F FC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007F FC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007F FC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007F FC000000007FFC000000007FFC000000007FFC000F80007FFC000F80007FFC000F80007F FC000F80007FFC000F80007FFC000F80007FFC000F80007FFC000F80007FFC000F80007F FC000F80007FFC000F80007FFC001F00003FFE001F00003FFE001F00001FFE003E00001F FF003E00000FFF807C000007FFC1F8000003FFFFF0000000FFFFE00000003FFF80000000 03FE0000294D7ECB33>I<003FF8000001FFC000FFFFF80007FFFFC000FFFFF80007FFFF C000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC00003FFF800001FFF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF C00000FFF800000FFFC00000FFF800000FFFC00000FFF800000FFFC00000FFF800001FFF C00000FFF800001FFFC00000FFF800003FFFC000007FF800003FFFC000007FF800007FFF C000003FFC0000F7FFC000003FFC0001E7FFF000001FFE0007C7FFFFC0000FFF801F87FF FFC00007FFFFFF07FFFFC00001FFFFFC07FFFFC000007FFFF007FFFFC0000007FFC007FF 000042377CB549>III121 D<3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFFE 3FFFFFFFFFFE3FFF0001FFFC3FF80001FFF83FE00003FFF83FC00007FFF03F800007FFE0 3F00000FFFE03F00001FFFC07E00003FFF807E00003FFF807E00007FFF007E0000FFFE00 7C0000FFFC007C0001FFFC007C0003FFF8007C0003FFF0007C0007FFF0007C000FFFE000 00000FFFC00000001FFFC00000003FFF800000003FFF000000007FFF00000000FFFE0000 0001FFFC00000001FFF800000003FFF800000007FFF0001F0007FFE0001F000FFFE0001F 001FFFC0001F001FFF80001F003FFF80003F007FFF00003E007FFE00003E00FFFE00003E 01FFFC00003E03FFF800007E03FFF800007E07FFF00000FE0FFFE00000FE0FFFC00001FE 1FFFC00003FE3FFF800007FE3FFF00001FFC7FFF0001FFFCFFFFFFFFFFFCFFFFFFFFFFFC FFFFFFFFFFFCFFFFFFFFFFFC30357CB43A>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk ecbx2074 20.74 12 /Fk 12 117 df<0000000003C00000000000000FC00000000000001FC00000000000003F C0000000000000FFC0000000000003FFC000000000000FFFC000000000007FFFC0000000 0003FFFFC0000000003FFFFFC00000000FFFFFFFC00000FFFFFFFFFFC00000FFFFFFFFFF C00000FFFFFFFFFFC00000FFFFFCFFFFC00000FFFFC0FFFFC00000FFF000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000 0000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC000003F FFFFFFFFFFFFFF3FFFFFFFFFFFFFFF3FFFFFFFFFFFFFFF3FFFFFFFFFFFFFFF3FFFFFFFFF FFFFFF3FFFFFFFFFFFFFFF407172F05B>49 D<0000001FFF80000000000001FFFFFC0000 0000000FFFFFFF80000000003FFFFFFFF000000000FFFFFFFFFC00000003FFFFFFFFFF00 00000FFF001FFFFFC000001FF80003FFFFE000003FE00000FFFFF800007F8000003FFFFC 0001FF0000001FFFFE0001FC0000000FFFFF0003F800000007FFFF8007F000000003FFFF C00FE000000001FFFFC00FE000000000FFFFE01FC000000000FFFFF01F80000000007FFF F03F80000000003FFFF83FF8000000003FFFF87FFE000000001FFFFC7FFF800000001FFF FC7FFFC00000001FFFFEFFFFE00000000FFFFEFFFFE00000000FFFFEFFFFF00000000FFF FEFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF000000007FFFFFFFFF000000007FF FFFFFFF000000007FFFFFFFFF000000007FFFFFFFFF000000007FFFF7FFFE000000007FF FF7FFFE000000007FFFF3FFFC000000007FFFF1FFF800000000FFFFF07FE000000000FFF FF01F8000000000FFFFE0000000000000FFFFE0000000000000FFFFE0000000000001FFF FE0000000000001FFFFC0000000000001FFFFC0000000000001FFFF80000000000003FFF F80000000000003FFFF00000000000007FFFF00000000000007FFFE0000000000000FFFF E0000000000000FFFFC0000000000001FFFF80000000000001FFFF00000000000003FFFF 00000000000003FFFE00000000000007FFFC0000000000000FFFF80000000000000FFFF0 0000000000001FFFE00000000000003FFFC00000000000003FFF800000000000007FFF00 000000000000FFFE00000000000001FFF800000000000001FFF000000000000003FFE000 000000000007FFC00000000000000FFF800000000000001FFE000000000000003FFC0000 00000000007FF8000000000000007FF000000000000000FFE000000000000001FF800000 0000000003FF0000000000000007FE000000000000000FFC000000000000001FF8000000 000000003FF00000003F0000007FE00000003F000000FFC00000003F000000FF00000000 3F000001FE000000007E000003FC000000007E000007F8000000007E00000FF000000000 7E00001FE0000000007E00003FC0000000007E00007F8000000000FE0000FF0000000000 FE0001FE0000000000FE0003F80000000000FC0003F00000000001FC0007E00000000001 FC000FC0000000000FFC001FFFFFFFFFFFFFFC003FFFFFFFFFFFFFFC007FFFFFFFFFFFFF FC00FFFFFFFFFFFFFFFC01FFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFF807FFFFFFFFFFFFFF F807FFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF81FFFFFFFFFFFFFFFF83FFFFFFFFFFFFFFF F87FFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFF F0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF0487177F05B>I<00 000003FFF8000000000000007FFFFFC0000000000003FFFFFFFC00000000000FFFFFFFFF 00000000007FFFFFFFFFC000000000FFFC007FFFF000000003FFC0000FFFFC00000007FE 000003FFFE0000001FF8000001FFFF0000003FE0000000FFFFC000007FC00000007FFFC0 00007F000000007FFFE00000FE000000003FFFF00001FFC00000003FFFF80001FFF00000 001FFFF80003FFF80000001FFFFC0003FFFC0000001FFFFC0003FFFE0000001FFFFC0007 FFFF0000001FFFFE0007FFFF0000000FFFFE0007FFFF0000000FFFFE0007FFFF0000000F FFFE0007FFFF8000000FFFFE0007FFFF0000000FFFFE0007FFFF0000000FFFFE0007FFFF 0000000FFFFE0007FFFF0000000FFFFE0003FFFF0000001FFFFE0003FFFE0000001FFFFE 0001FFFC0000001FFFFC0000FFF80000001FFFFC00003FE00000001FFFFC000007000000 001FFFF8000000000000003FFFF8000000000000003FFFF8000000000000003FFFF00000 00000000007FFFF0000000000000007FFFE000000000000000FFFFC000000000000000FF FFC000000000000001FFFF8000000000000001FFFF0000000000000003FFFE0000000000 000007FFFC0000000000000007FFF8000000000000000FFFF0000000000000001FFFC000 0000000000007FFF8000000000000000FFFE0000000000000003FFFC00000000000001FF FFF0000000000001FFFFFF80000000000001FFFFFE00000000000001FFFFF80000000000 0001FFFFFFE0000000000001FFFFFFFC00000000000000007FFF80000000000000000FFF E00000000000000003FFF80000000000000001FFFE00000000000000007FFF0000000000 0000007FFFC0000000000000003FFFE0000000000000001FFFF0000000000000000FFFF8 000000000000000FFFFC0000000000000007FFFE0000000000000007FFFF000000000000 0007FFFF0000000000000003FFFF8000000000000003FFFF8000000000000003FFFFC000 000000000003FFFFC000000000000003FFFFE000000000000001FFFFE000000000000001 FFFFE000000000000001FFFFE000000000000001FFFFF000000000000001FFFFF0000000 00000001FFFFF003FE0000000001FFFFF00FFF8000000001FFFFF01FFFC000000001FFFF F03FFFE000000001FFFFF07FFFF000000001FFFFF07FFFF000000001FFFFF0FFFFF80000 0001FFFFF0FFFFF800000001FFFFF0FFFFF800000001FFFFF0FFFFF800000001FFFFE0FF FFF800000001FFFFE0FFFFF800000003FFFFE0FFFFF800000003FFFFE0FFFFF800000003 FFFFC0FFFFF000000003FFFFC07FFFF000000003FFFF807FFFE000000007FFFF807FFFC0 00000007FFFF003FFF8000000007FFFF003FFE000000000FFFFE001FF8000000000FFFFE 001FE0000000001FFFFC000FF0000000003FFFF80007FC000000003FFFF00003FE000000 007FFFE00001FFC0000000FFFFC00000FFF0000003FFFF8000003FFF00000FFFFE000000 1FFFF8007FFFFC00000007FFFFFFFFFFF000000001FFFFFFFFFFC0000000007FFFFFFFFF 00000000000FFFFFFFF8000000000000FFFFFFC000000000000007FFF8000000004C7379 F05B>I<000000000000007F000000000000000000FF000000000000000000FF00000000 0000000001FF000000000000000003FF000000000000000007FF000000000000000007FF 00000000000000000FFF00000000000000001FFF00000000000000001FFF000000000000 00003FFF00000000000000007FFF0000000000000000FFFF0000000000000000FFFF0000 000000000001FFFF0000000000000003FFFF0000000000000003FFFF0000000000000007 FFFF000000000000000FFFFF000000000000001FFFFF000000000000001FFFFF00000000 0000003FFFFF000000000000007FFFFF000000000000007FFFFF00000000000000FDFFFF 00000000000001FDFFFF00000000000003F9FFFF00000000000003F1FFFF000000000000 07F1FFFF0000000000000FE1FFFF0000000000001FC1FFFF0000000000001F81FFFF0000 000000003F81FFFF0000000000007F01FFFF0000000000007E01FFFF000000000000FE01 FFFF000000000001FC01FFFF000000000003F801FFFF000000000003F001FFFF00000000 0007F001FFFF00000000000FE001FFFF00000000000FC001FFFF00000000001FC001FFFF 00000000003F8001FFFF00000000007F0001FFFF00000000007E0001FFFF0000000000FE 0001FFFF0000000001FC0001FFFF0000000001F80001FFFF0000000003F80001FFFF0000 000007F00001FFFF000000000FE00001FFFF000000000FC00001FFFF000000001FC00001 FFFF000000003F800001FFFF000000003F000001FFFF000000007E000001FFFF00000000 FE000001FFFF00000001FC000001FFFF00000001F8000001FFFF00000003F8000001FFFF 00000007F0000001FFFF00000007E0000001FFFF0000000FC0000001FFFF0000001FC000 0001FFFF0000003F80000001FFFF0000003F00000001FFFF0000007F00000001FFFF0000 00FE00000001FFFF000000FC00000001FFFF000001F800000001FFFF000003F800000001 FFFF000007F000000001FFFF000007E000000001FFFF00000FE000000001FFFF00001FC0 00000001FFFF00001F8000000001FFFF00003F0000000001FFFF00007F0000000001FFFF 0000FE0000000001FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 000000000003FFFF0000000000000003FFFF0000000000000003FFFF0000000000000003 FFFF0000000000000003FFFF0000000000000003FFFF0000000000000003FFFF00000000 00000003FFFF0000000000000003FFFF0000000000000003FFFF0000000000000003FFFF 0000000000000003FFFF0000000000000003FFFF0000000000000003FFFF000000000000 0003FFFF0000000000000003FFFF0000000000000003FFFF0000000000000003FFFF0000 000000000003FFFF0000000000000003FFFF0000000000000003FFFF0000000000000003 FFFF00000000000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF0000 000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF50727BF15B>I<00 6000000000000180007800000000000780007F00000000003F80007FE000000001FF8000 7FFE0000001FFF80007FFFF80007FFFF00007FFFFFFFFFFFFE00007FFFFFFFFFFFFE0000 7FFFFFFFFFFFFC00007FFFFFFFFFFFF800007FFFFFFFFFFFF000007FFFFFFFFFFFC00000 7FFFFFFFFFFF8000007FFFFFFFFFFF0000007FFFFFFFFFFE0000007FFFFFFFFFF8000000 7FFFFFFFFFE00000007FFFFFFFFF800000007FFFFFFFFE000000007FFFFFFFF800000000 7FFFFFFFC0000000007E3FFFFE00000000007E00FF8000000000007E0000000000000000 7E00000000000000007E00000000000000007E00000000000000007E0000000000000000 7E00000000000000007E00000000000000007E00000000000000007E0000000000000000 7E00000000000000007E00000000000000007E00000000000000007E0000000000000000 7E00000000000000007E00000000000000007E00000000000000007E0000000000000000 7E00000000000000007E00000000000000007E0003FFE0000000007E003FFFFF00000000 7E00FFFFFFE00000007E03FFFFFFF80000007E0FFFFFFFFE0000007E3FFE007FFF800000 7E7FE0001FFFC000007EFF800007FFF000007FFC000003FFF800007FF8000001FFFC0000 7FE0000000FFFE00007FC0000000FFFF00007F800000007FFF80007F000000007FFFC000 7F000000003FFFC0007E000000003FFFE0003C000000001FFFE00000000000001FFFF000 00000000001FFFF00000000000001FFFF80000000000001FFFF80000000000001FFFFC00 00000000000FFFFC0000000000000FFFFC0000000000000FFFFE0000000000000FFFFE00 00000000000FFFFE0000000000000FFFFE0000000000000FFFFE0000000000000FFFFF00 00000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF03 F8000000000FFFFF0FFE000000000FFFFF1FFF000000000FFFFF3FFF800000000FFFFF7F FFC00000000FFFFF7FFFC00000000FFFFFFFFFE00000000FFFFFFFFFE00000000FFFFFFF FFE00000000FFFFFFFFFE00000000FFFFEFFFFE00000000FFFFEFFFFE00000000FFFFEFF FFE00000000FFFFEFFFFC00000000FFFFEFFFFC00000001FFFFC7FFF800000001FFFFC7F FF000000001FFFFC7FFC000000001FFFF87FF0000000001FFFF83F80000000003FFFF03F 80000000003FFFF01FC0000000003FFFE01FC0000000007FFFC00FE0000000007FFFC00F F000000000FFFF8007F800000000FFFF0003FC00000001FFFE0003FE00000003FFFE0001 FF80000007FFFC0000FFC000000FFFF000007FF000003FFFE000001FFC0000FFFFC00000 0FFFC00FFFFF00000007FFFFFFFFFC00000001FFFFFFFFF0000000007FFFFFFFC0000000 001FFFFFFF000000000003FFFFF00000000000003FFE00000000487377F05B>I<000000 00000001FFFE000000000E000000000000FFFFFFF00000001E00000000000FFFFFFFFE00 00003E0000000000FFFFFFFFFF8000007E0000000003FFFFFFFFFFF00000FE000000001F FFFFFFFFFFFC0001FE000000007FFFFFF0003FFE0003FE00000001FFFFFC000003FF8007 FE00000007FFFFE00000007FE007FE0000001FFFFF000000001FF00FFE0000007FFFF800 00000007F81FFE000000FFFFE00000000003FC3FFE000003FFFFC00000000000FF7FFE00 0007FFFF0000000000007FFFFE00000FFFFE0000000000003FFFFE00001FFFF800000000 00001FFFFE00003FFFF00000000000000FFFFE00007FFFE000000000000007FFFE0000FF FFC000000000000003FFFE0001FFFF8000000000000001FFFE0003FFFF00000000000000 00FFFE0007FFFE0000000000000000FFFE000FFFFE00000000000000007FFE001FFFFC00 000000000000003FFE001FFFF800000000000000003FFE003FFFF800000000000000001F FE007FFFF000000000000000000FFE007FFFE000000000000000000FFE00FFFFE0000000 000000000007FE00FFFFC0000000000000000007FE01FFFFC0000000000000000007FE03 FFFFC0000000000000000003FE03FFFF80000000000000000003FE03FFFF800000000000 00000001FE07FFFF00000000000000000001FE07FFFF00000000000000000001FE0FFFFF 00000000000000000001FE0FFFFF00000000000000000000FE0FFFFE0000000000000000 0000FE1FFFFE00000000000000000000FE1FFFFE00000000000000000000FE1FFFFE0000 00000000000000007E3FFFFC000000000000000000007E3FFFFC00000000000000000000 7E3FFFFC000000000000000000007E3FFFFC00000000000000000000007FFFFC00000000 000000000000007FFFFC00000000000000000000007FFFFC00000000000000000000007F FFF800000000000000000000007FFFF800000000000000000000007FFFF8000000000000 0000000000FFFFF80000000000000000000000FFFFF80000000000000000000000FFFFF8 0000000000000000000000FFFFF80000000000000000000000FFFFF80000000000000000 000000FFFFF80000000000000000000000FFFFF80000000000000000000000FFFFF80000 000000000000000000FFFFF80000000000000000000000FFFFF800000000000000000000 00FFFFF80000000000000000000000FFFFF80000000000000000000000FFFFF800000000 00000000000000FFFFF80000000000000000000000FFFFF80000000000000000000000FF FFF80000000000000000000000FFFFF80000000000000000000000FFFFF8000000000000 00000000007FFFF800000000000000000000007FFFF800000000000000000000007FFFFC 00000000000000000000007FFFFC00000000000000000000007FFFFC0000000000000000 0000007FFFFC00000000000000000000003FFFFC00000000000000000000003FFFFC0000 0000000000000000003FFFFC00000000000000000000003FFFFC00000000000000000000 7E1FFFFE000000000000000000007E1FFFFE000000000000000000007E1FFFFE00000000 0000000000007E0FFFFE000000000000000000007E0FFFFF000000000000000000007E0F FFFF000000000000000000007E07FFFF00000000000000000000FE07FFFF000000000000 00000000FC03FFFF80000000000000000000FC03FFFF80000000000000000000FC03FFFF C0000000000000000001FC01FFFFC0000000000000000001F800FFFFC000000000000000 0001F800FFFFE0000000000000000003F8007FFFE0000000000000000003F0007FFFF000 0000000000000007F0003FFFF8000000000000000007E0001FFFF800000000000000000F E0001FFFFC00000000000000000FC0000FFFFE00000000000000001FC00007FFFE000000 00000000003F800003FFFF00000000000000003F800001FFFF80000000000000007F0000 00FFFFC000000000000000FE0000007FFFE000000000000001FC0000003FFFF000000000 000003FC0000001FFFF800000000000007F80000000FFFFE0000000000000FF000000007 FFFF0000000000001FE000000003FFFFC000000000007FC000000000FFFFE00000000000 FF00000000007FFFFC0000000003FE00000000001FFFFF000000000FFC000000000007FF FFE00000003FF0000000000001FFFFFE000001FFE00000000000007FFFFFF0003FFF8000 00000000001FFFFFFFFFFFFE0000000000000003FFFFFFFFFFF80000000000000000FFFF FFFFFFE000000000000000000FFFFFFFFF00000000000000000000FFFFFFF00000000000 000000000001FFFE00000000006F7A76F784>67 D<0000001FFFC00000000000000003FF FFFE000000000000003FFFFFFFC0000000000000FFFFFFFFF0000000000003FFFFFFFFFC 00000000000FFFE003FFFF00000000001FFC00007FFFC0000000003FE000001FFFE00000 00007F8000000FFFF000000000FFF0000007FFF800000000FFF8000003FFFC00000001FF FC000001FFFE00000001FFFE000001FFFF00000003FFFE000000FFFF80000003FFFF0000 007FFF80000003FFFF0000007FFFC0000003FFFF0000007FFFC0000003FFFF0000003FFF E0000003FFFF0000003FFFE0000003FFFF0000003FFFE0000003FFFF0000003FFFE00000 01FFFE0000001FFFF0000001FFFE0000001FFFF0000000FFFC0000001FFFF00000003FF0 0000001FFFF00000000FC00000001FFFF000000000000000001FFFF00000000000000000 1FFFF000000000000000001FFFF000000000000000001FFFF000000000000000001FFFF0 00000000000000001FFFF000000000000000001FFFF000000000000000001FFFF0000000 00000000001FFFF000000000000000003FFFF00000000000000FFFFFFFF0000000000003 FFFFFFFFF000000000007FFFFFFFFFF00000000003FFFFFC1FFFF0000000001FFFFF001F FFF000000000FFFFF0001FFFF000000003FFFF00001FFFF00000000FFFFC00001FFFF000 00001FFFF000001FFFF00000007FFFC000001FFFF0000000FFFF8000001FFFF0000001FF FF0000001FFFF0000003FFFE0000001FFFF0000007FFFC0000001FFFF000000FFFF80000 001FFFF000001FFFF00000001FFFF000003FFFF00000001FFFF000003FFFE00000001FFF F000007FFFE00000001FFFF000007FFFC00000001FFFF007E07FFFC00000001FFFF007E0 FFFFC00000001FFFF007E0FFFF800000001FFFF007E0FFFF800000001FFFF007E0FFFF80 0000003FFFF007E0FFFF800000003FFFF007E0FFFF800000003FFFF007E0FFFF80000000 7FFFF007E0FFFF800000007FFFF007E0FFFFC0000000FFFFF007E07FFFC0000000FFFFF0 07E07FFFE0000001EFFFF007E07FFFE0000003EFFFF007E03FFFF0000007C7FFF80FC01F FFF800000F87FFF80FC00FFFFC00001F07FFFC1FC007FFFE00007E03FFFF7F8003FFFF80 01FC01FFFFFF0001FFFFE00FF801FFFFFF00007FFFFFFFE000FFFFFE00001FFFFFFFC000 3FFFFC000007FFFFFF00001FFFF0000000FFFFF8000007FFE000000007FFC0000000FF00 0053507ACE5B>97 D<00000001FFFC0000000000001FFFFFC00000000000FFFFFFF80000 000007FFFFFFFE000000001FFFFFFFFF800000007FFFE03FFFE0000000FFFE0007FFF000 0003FFF80001FFF8000007FFF00000FFFC00000FFFC000003FFE00001FFF8000003FFF00 003FFF0000001FFF80007FFE0000000FFFC000FFFE0000000FFFC000FFFC00000007FFE0 01FFFC00000007FFE003FFF800000003FFF003FFF800000003FFF007FFF000000003FFF8 0FFFF000000001FFF80FFFF000000001FFFC0FFFF000000001FFFC1FFFE000000000FFFC 1FFFE000000000FFFC3FFFE000000000FFFE3FFFE000000000FFFE3FFFE000000000FFFE 7FFFC000000000FFFE7FFFC0000000007FFE7FFFC0000000007FFF7FFFC0000000007FFF 7FFFC0000000007FFFFFFFC0000000007FFFFFFFC0000000007FFFFFFFC0000000007FFF FFFFC0000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFC0000000000000FFFFC0000000000000FFFFC0000000000000 FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000 7FFFC00000000000007FFFC00000000000007FFFC00000000000007FFFC0000000000000 7FFFE00000000000003FFFE00000000000003FFFE00000000000003FFFE0000000000000 1FFFE00000000000001FFFF00000000000001FFFF00000000000000FFFF000000000003F 0FFFF000000000003F07FFF800000000007F07FFF800000000007E03FFFC00000000007E 01FFFC0000000000FE01FFFE0000000001FC00FFFF0000000001FC007FFF0000000003F8 003FFF8000000007F0001FFFC00000000FE0000FFFE00000001FC00007FFF80000003F80 0003FFFC000000FF000001FFFF000003FE0000007FFFE0000FFC0000003FFFFE00FFF800 00000FFFFFFFFFE000000003FFFFFFFF80000000007FFFFFFE00000000000FFFFFF00000 000000007FFF00000048507BCE53>101 D<0003FFF80000000000000000FFFFFFF80000 000000000000FFFFFFF80000000000000000FFFFFFF80000000000000000FFFFFFF80000 000000000000FFFFFFF80000000000000000FFFFFFF80000000000000000007FFFF80000 000000000000001FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000 000000000000000FFFF80000000000000000000FFFF800007FF800000000000FFFF80003 FFFFC0000000000FFFF8001FFFFFF0000000000FFFF8007FFFFFFC000000000FFFF800FF FFFFFF000000000FFFF803FE01FFFF800000000FFFF807F0007FFFC00000000FFFF80FC0 003FFFE00000000FFFF81F00001FFFE00000000FFFF83E00001FFFF00000000FFFF87C00 000FFFF80000000FFFF8F800000FFFF80000000FFFF8F0000007FFF80000000FFFF9E000 0007FFFC0000000FFFF9E0000007FFFC0000000FFFFBC0000007FFFC0000000FFFFF8000 0003FFFC0000000FFFFF80000003FFFE0000000FFFFF00000003FFFE0000000FFFFF0000 0003FFFE0000000FFFFE00000003FFFE0000000FFFFE00000003FFFE0000000FFFFE0000 0003FFFE0000000FFFFC00000003FFFE0000000FFFFC00000003FFFE0000000FFFFC0000 0003FFFE0000000FFFFC00000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000000FFFF800000003FFFE0000000FFFF80000 0003FFFE0000000FFFF800000003FFFE0000FFFFFFFFFF803FFFFFFFFFE0FFFFFFFFFF80 3FFFFFFFFFE0FFFFFFFFFF803FFFFFFFFFE0FFFFFFFFFF803FFFFFFFFFE0FFFFFFFFFF80 3FFFFFFFFFE0FFFFFFFFFF803FFFFFFFFFE05B787AF766>104 D<0003FFF80001FFF000 000000FFFFFFF8001FFFFF00000000FFFFFFF800FFFFFFE0000000FFFFFFF803FFFFFFFC 000000FFFFFFF80FFFFFFFFF000000FFFFFFF83FF801FFFFC00000FFFFFFF8FFC0003FFF E00000007FFFF9FE00001FFFF00000001FFFFBF8000007FFFC0000000FFFFFF0000003FF FE0000000FFFFFE0000001FFFF0000000FFFFF80000000FFFF8000000FFFFF000000007F FFC000000FFFFF000000007FFFC000000FFFFE000000003FFFE000000FFFFC000000001F FFF000000FFFF8000000001FFFF000000FFFF8000000000FFFF800000FFFF8000000000F FFF800000FFFF80000000007FFFC00000FFFF80000000007FFFC00000FFFF80000000007 FFFE00000FFFF80000000003FFFE00000FFFF80000000003FFFF00000FFFF80000000003 FFFF00000FFFF80000000001FFFF00000FFFF80000000001FFFF00000FFFF80000000001 FFFF80000FFFF80000000001FFFF80000FFFF80000000001FFFF80000FFFF80000000001 FFFF80000FFFF80000000000FFFF80000FFFF80000000000FFFFC0000FFFF80000000000 FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000 FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000 FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000 FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000FFFFC0000FFFF80000000000 FFFFC0000FFFF80000000000FFFFC0000FFFF80000000001FFFF80000FFFF80000000001 FFFF80000FFFF80000000001FFFF80000FFFF80000000001FFFF80000FFFF80000000001 FFFF80000FFFF80000000001FFFF00000FFFF80000000003FFFF00000FFFF80000000003 FFFF00000FFFF80000000003FFFE00000FFFF80000000007FFFE00000FFFF80000000007 FFFE00000FFFF80000000007FFFC00000FFFF8000000000FFFFC00000FFFF8000000000F FFF800000FFFF8000000001FFFF800000FFFF8000000001FFFF000000FFFFC000000003F FFE000000FFFFE000000003FFFE000000FFFFF000000007FFFC000000FFFFF00000000FF FF8000000FFFFF80000001FFFF0000000FFFFFC0000003FFFE0000000FFFFFF0000007FF FC0000000FFFFFF800000FFFF80000000FFFF9FC00003FFFF00000000FFFF8FF0000FFFF C00000000FFFF87FF007FFFF000000000FFFF81FFFFFFFFC000000000FFFF807FFFFFFF0 000000000FFFF801FFFFFFC0000000000FFFF8003FFFFE00000000000FFFF80007FFC000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000000FFFF80000000000 000000000FFFF80000000000000000000FFFF80000000000000000FFFFFFFFFF80000000 000000FFFFFFFFFF80000000000000FFFFFFFFFF80000000000000FFFFFFFFFF80000000 000000FFFFFFFFFF80000000000000FFFFFFFFFF800000000000005A6F7BCD66>112 D<0003FFF0001FF000FFFFFFF0007FFE00FFFFFFF001FFFF80FFFFFFF007FFFFE0FFFFFF F00FFFFFF0FFFFFFF01FE07FF8FFFFFFF03F80FFFC007FFFF07E01FFFE001FFFF0FC01FF FE000FFFF0F803FFFF000FFFF1F003FFFF000FFFF1F003FFFF000FFFF3E003FFFF000FFF F3C003FFFF000FFFF3C003FFFF000FFFF78003FFFF000FFFF78001FFFE000FFFF70001FF FE000FFFFF0000FFFC000FFFFF00007FF8000FFFFE00001FE0000FFFFE00000300000FFF FE00000000000FFFFE00000000000FFFFC00000000000FFFFC00000000000FFFFC000000 00000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFF800000000000FFF F800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFFF8000000 00000FFFF800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFF F800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFFF8000000 00000FFFF800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFF F800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFFF8000000 00000FFFF800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFF F800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFFF8000000 00000FFFF800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFF F800000000000FFFF800000000000FFFF800000000000FFFF800000000000FFFF8000000 00FFFFFFFFFFF00000FFFFFFFFFFF00000FFFFFFFFFFF00000FFFFFFFFFFF00000FFFFFF FFFFF00000FFFFFFFFFFF00000404E7CCD49>114 D<000000FC00000000000000FC0000 0000000000FC00000000000000FC00000000000000FC00000000000000FC000000000000 00FC00000000000001FC00000000000001FC00000000000001FC00000000000001FC0000 0000000001FC00000000000003FC00000000000003FC00000000000003FC000000000000 07FC00000000000007FC00000000000007FC0000000000000FFC0000000000000FFC0000 000000001FFC0000000000001FFC0000000000003FFC0000000000007FFC000000000000 FFFC000000000000FFFC000000000001FFFC000000000003FFFC000000000007FFFC0000 0000001FFFFC00000000003FFFFC0000000000FFFFFC000000000FFFFFFFFFFFFC00FFFF FFFFFFFFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFF FC000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007 FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC0000 00000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007 FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC0000 00000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007 FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC0000 00000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007 FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC0000 00000007FFFC000000000007FFFC000000000007FFFC000000000007FFFC000000000007 FFFC00001F800007FFFC00001F800007FFFC00001F800007FFFC00001F800007FFFC0000 1F800007FFFC00001F800007FFFC00001F800007FFFC00001F800007FFFC00001F800007 FFFC00001F800007FFFC00001F800007FFFC00001F800007FFFC00001F800007FFFC0000 1F800007FFFC00001F800007FFFC00003F800003FFFC00003F000003FFFE00003F000003 FFFE00003F000003FFFE00007E000001FFFF00007E000001FFFF0000FE000000FFFF8000 FC0000007FFF8001F80000007FFFC003F80000003FFFE007F00000001FFFF80FE0000000 07FFFFFFC000000003FFFFFF8000000000FFFFFE00000000001FFFF8000000000001FFC0 0000396E7DEC47>116 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl ecrm1000 10 87 /Fl 87 161 df<00000FF800FC0000007FFF07FF000001F807DF83C00007E001FF0FC000 1F8007FE1FE0003F000FFC1FE0007E000FFC1FE0007E000FF81FE000FC000FF81FE000FC 000FF0078001F80007F0000001F80003F0000001F80003F0000001F80003F0000001F800 03F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003 F0000001F80003F0000001F80003F0000001F80003F00000FFFFFFFFFFF800FFFFFFFFFF F800FFFFFFFFFFF80001F80003F0000001F80003F0000001F80003F0000001F80003F000 0001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F00000 01F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001 F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F8 0003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F800 03F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000003FC0007 F800007FFFE0FFFFF0007FFFE0FFFFF0007FFFE0FFFFF000333B7FBA30>27 D<00000FF8000000007FFE00000001F80780000007E001C000001F8000E000003F0007E0 00007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000FF00001F80007E0 0001F80001800001F80000000001F80000000001F80000000001F80000000001F8000000 0001F80000000001F80000000001F80000000001F80000000001F80003F000FFFFFFFFF0 00FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA2E >I<00000FFC000000007FFF70000001F803F0000007E007F000001F800FF000003F000F F000007E000FF000007E000FF00000FC000FF00000FC0007F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000FFFFFFFF F000FFFFFFFFF000FFFFFFFFF00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA 2E>I<1C007F00FF80FF80FF80FF80FF80FF80FF80FF807F007F007F007F007F007F007F 007F007F007F007F003E003E003E003E003E003E003E003E003E003E003E001C001C001C 001C001C001C001C001C001C001C001C00000000000000000000000000000000001C007F 00FF80FF80FF80FF80FF807F001C00093C79BB17>33 D<7C007CFE00FEFF01FEFF01FEFF 01FEFE00FEFE00FEFE00FEFE00FEFE00FEFE00FEFE00FE7E00FC7C007C7C007C7C007C7C 007C7C007C7C007C7C007C7C007C3C007838003838003838003838003838003838003838 0038180030171E77BA2A>I<0000000C000180000000000C000180000000001C00038000 000000180003000000000018000300000000001800030000000000380007000000000030 000600000000003000060000000000300006000000000070000E000000000060000C0000 00000060000C000000000060000C0000000000E0001C0000000000C000180000000000C0 00180000000000C000180000000001C00038000000000180003000000000018000300000 000001800030000000000380007000000000030000600000000003000060000000000300 006000000000070000E000007FFFFFFFFFFFFF80FFFFFFFFFFFFFFC000000C0001800000 00000C000180000000001C00038000000000180003000000000018000300000000001800 030000000000180003000000000038000700000000003000060000000000300006000000 000030000600000000003000060000000000300006000000000070000E00000000006000 0C000000000060000C000000FFFFFFFFFFFFFFC07FFFFFFFFFFFFF800001C00038000000 000180003000000000018000300000000001800030000000000380007000000000030000 600000000003000060000000000300006000000000070000E000000000060000C0000000 00060000C000000000060000C0000000000E0001C0000000000C000180000000000C0001 80000000000C000180000000001C00038000000000180003000000000018000300000000 001800030000000000380007000000000030000600000000003000060000000000300006 000000000070000E000000000060000C000000000060000C000000003A4A7BB945>I<00 001F000000000000007FC0000000000001F0E0000000000003C060000000000007C07000 000000000F803000000000001F003800000000001F001800000000001F00180000000000 3F001800000000003F001800000000003E001800000000003F001800000000003F003800 000000003F003000000000003F003000000000003F007000000000003F00E00000000000 3F00C000000000003F01C000000000001F838000000000001F830000000000001F870000 000000001F8E0000000000001FDC0001FFFF80000FF80001FFFF80000FF00001FFFF8000 0FE000003FF8000007E000000FC0000007F000000F80000007F000000700000007F80000 0E0000000FF800000C0000001DFC00001C00000039FC00001800000070FE000038000000 E0FE000030000001C07F000070000003807F0000E0000007803F8000C000000F003FC001 C000001F001FC0018000003F000FE0038000003E000FF0070000007E0007F8060000007E 0003F80E000000FE0003FC1C000000FE0001FE38000000FE0000FE38000000FE00007F70 000000FF00007FE0000300FF00003FC0000300FF00001FE00003007F80000FF00007007F 80000FF80006003FC0001FFC000E003FE00079FE001C001FF001F07F003C0007F80FE03F C0F80003FFFF800FFFF00000FFFE0003FFC000001FF000007F0000393E7DBB41>38 D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C001800180038003 00070006000E001C003800700060000A1979B917>I<0000600000E00001C00003800007 00000E00001E00003C0000780000780000F00001E00001E00003C00003C00007C0000780 000F80000F00000F00001F00001E00001E00003E00003E00003E00007C00007C00007C00 007C00007C00007C0000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F800007C00007C00007C00 007C00007C00007C00003E00003E00003E00001E00001E00001F00000F00000F00000F80 0007800007C00003C00003C00001E00001E00000F000007800007800003C00001E00000E 000007000003800001C00000E0000060135278BD20>II<000000300000000000003000 000000000030000000000000300000000000003000000000000030000000000000300000 000000003000000000000030000000000000300000000000003000000000000030000000 000000300000000000003000000000000030000000000000300000000000003000000000 000030000000000000300000000000003000000000000030000000000000300000000000 0030000000000000300000000000003000000000000030000000FFFFFFFFFFFFFCFFFFFF FFFFFFFC0000003000000000000030000000000000300000000000003000000000000030 000000000000300000000000003000000000000030000000000000300000000000003000 000000000030000000000000300000000000003000000000000030000000000000300000 000000003000000000000030000000000000300000000000003000000000000030000000 000000300000000000003000000000000030000000000000300000000000003000000000 00003000000036367BAF41>43 D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C0 00C000C001C00180018003800300070006000E001C003800700060000A19798817>II<1C007F00FF80FF80FF80FF80FF807F 001C000909798817>I<00000006000000060000000E0000000C0000000C0000001C0000 0018000000380000003000000030000000700000006000000060000000E0000000C00000 00C0000001C0000001800000018000000380000003000000070000000600000006000000 0E0000000C0000000C0000001C0000001800000018000000380000003000000030000000 7000000060000000E0000000C0000000C0000001C0000001800000018000000380000003 000000030000000700000006000000060000000E0000000C0000001C0000001800000018 000000380000003000000030000000700000006000000060000000E0000000C0000000C0 000001C00000018000000380000003000000030000000700000006000000060000000E00 00000C0000000C0000001C00000018000000180000003800000030000000700000006000 000060000000E0000000C0000000C00000001F537BBD2A>I<0003F80000001FFF000000 7E0FC00000F803E00001E000F00003C000780007C0007C000F80003E000F80003E001F00 001F001F00001F003F00001F803F00001F803F00001F807E00000FC07E00000FC07E0000 0FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F E0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0 FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E 00000FC07E00000FC07E00000FC07E00000FC07F00001FC03F00001F803F00001F803F00 001F801F00001F001F00001F000F80003E000F80003E0007C0007C0003E000F80003F001 F80000F803E000007E0FC000001FFF00000003F8000023397DB62A>I<0001C0000003C0 000007C000001FC00000FFC000FFFFC000FFFFC000FF1FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000003FE0007FFFFFF07FFFFFF07FFFFFF01C3779 B62A>I<000FF00000007FFE000001FFFF800003E03FE0000F000FF0001E0007F8001C00 03FC00380001FE00700001FE00700000FF00600000FF00FE0000FF00FF00007F80FF8000 7F80FF80007F80FF80007F80FF80007F80FF80007F807F00007F801C00007F800000007F 80000000FF00000000FF00000000FE00000001FE00000001FC00000003FC00000003F800 000007F00000000FE00000000FC00000001F800000003F000000007E00000000FC000000 01F800000001E000000003C000000007800000000F000000001E000180003C0001800078 00018000F000038001E000030003C0000300078000030007000007000FFFFFFF001FFFFF FF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE0021377CB62A>I<0007 F80000003FFF000000FFFFC00001F80FF00003C007F800078003FC000E0001FE000F8001 FE001FE000FF001FF000FF001FF000FF001FF000FF001FF000FF001FF000FF000FE000FF 0007C000FF00000001FE00000001FE00000001FC00000003FC00000003F800000007F000 000007E00000000F800000007F0000001FFC0000001FFF800000000FE000000007F00000 0001FC00000001FE00000000FF000000007F800000007F800000007FC00000007FC00000 003FC00000003FE00000003FE01E00003FE07F80003FE07F80003FE0FFC0003FE0FFC000 3FE0FFC0003FE0FFC0003FC0FFC0007FC0FF80007F807E00007F80700000FF00380001FE 001E0001FE000F8003F80007F00FF00001FFFFC000007FFF0000000FF8000023397DB62A >I<000000380000000038000000007800000000F800000000F800000001F800000003F8 00000007F800000007F80000000FF80000001FF80000001BF800000033F800000073F800 000063F8000000C3F8000001C3F800000183F800000303F800000703F800000603F80000 0C03F800001C03F800001803F800003003F800007003F800006003F80000C003F80001C0 03F800038003F800030003F800070003F8000E0003F8000C0003F800180003F800380003 F800300003F800600003F800E00003F800FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8000003F8 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000007FC000003FFFFF80003FFFFF80003FFFFF825387EB72A> I<0600000C000780003C0007F003F80007FFFFF80007FFFFF00007FFFFE00007FFFF8000 07FFFF000007FFFC0000067FE00000060000000006000000000600000000060000000006 00000000060000000006000000000600000000060000000006000000000607F80000061F FE000006780F800006E007E00007C003F000078001F800070001F800060000FC00060000 FE00000000FE00000000FF000000007F000000007F000000007F800000007F800000007F 800000007F801C00007F807F00007F80FF00007F80FF80007F80FF80007F80FF80007F80 FF00007F00FF0000FF00FC0000FF00600000FE00700000FE00700001FC00380001F8001C 0003F8001E0007F0000F800FE00007E03F800001FFFF0000007FFC0000001FE000002139 7CB62A>I<00003FC0000001FFF0000007FFFC00000FE03E00003F800700007E001F0000 FC003F8001F8007F8003F0007F8007F0007F8007E0007F800FE0003F000FC0001E001FC0 0000001F800000003F800000003F800000003F800000007F800000007F000000007F01FC 00007F07FF8000FF1E07E000FF3801F000FF7000F800FF6000FC00FFE0007E00FFC0003F 00FFC0003F80FF80003F80FF80001FC0FF80001FC0FF80001FC0FF00001FE0FF00001FE0 FF00001FE0FF00001FE0FF00001FE07F00001FE07F00001FE07F00001FE07F00001FE07F 80001FE03F80001FE03F80001FC03F80001FC01F80003F801FC0003F800FC0003F000FE0 007F0007E000FE0003F000FC0001F801F80000FE07F000007FFFC000001FFF00000003FC 000023397DB62A>I<300000000038000000003E000000003FFFFFFFE03FFFFFFFE03FFF FFFFE03FFFFFFFC07FFFFFFFC07FFFFFFF807FFFFFFF0070000006006000000E00600000 1C006000003800E000003000C000007000C00000E000C00000C000000001C00000000380 000000070000000006000000000E000000001C000000001C000000003800000000780000 00007000000000F000000000E000000001E000000001E000000003E000000003C0000000 07C000000007C00000000FC00000000FC00000000FC00000001FC00000001F800000001F 800000003F800000003F800000003F800000003F800000003F800000007F800000007F80 0000007F800000007F800000007F800000007F800000007F800000007F800000007F8000 00003F000000001E000000233A7BB72A>I<0003F80000001FFF0000007FFFC00000FC07 F00001E001F80003C0007C000780003C000700003E000F00001E000E00001F001E00000F 001E00000F001E00000F001F00000F001F00000F001F80001F001FC0001E001FE0001E00 0FF8003C000FFC007C000FFF00780007FF80F00003FFE3E00003FFF7800000FFFF000000 7FFE0000003FFF8000000FFFE000003FFFF00000F9FFF80001E07FFE0003C03FFF000F80 0FFF001F0007FF801E0001FFC03C0000FFC07C00003FC07800001FE07800000FE0F80000 07E0F0000003E0F0000003E0F0000001E0F0000001E0F0000001E0F8000001C0F8000001 C078000003C07C000003803E000007801F00000F000F80001E0007E0007C0003F803F000 00FFFFE000003FFF80000007FC000023397DB62A>I<0003F80000001FFF0000007FFFC0 0001FC07E00003F803F00007E001F8000FE000FC001FC0007E001F80007E003F80003F00 3F80003F007F00003F807F00003F80FF00003F80FF00001FC0FF00001FC0FF00001FC0FF 00001FC0FF00001FC0FF00001FE0FF00001FE0FF00001FE0FF00001FE0FF00001FE07F00 003FE07F00003FE07F00003FE03F80003FE03F80007FE01F80007FE00FC000FFE007E000 DFE003E001DFE001F0039FE000FC0F1FE0003FFC1FC00007F01FC00000001FC00000001F C00000003FC00000003F800000003F800000003F000000007F000F00007F001F80007E00 3FC000FC003FC000FC003FC001F8003FC003F0003F8007E0001F000FE0001C001F80000F 807F000007FFFE000001FFF80000003FC0000023397DB62A>I<1C007F00FF80FF80FF80 FF80FF807F001C0000000000000000000000000000000000000000000000000000000000 00000000000000001C007F00FF80FF80FF80FF80FF807F001C00092479A317>I<1C007F 00FF80FF80FF80FF80FF807F001C00000000000000000000000000000000000000000000 0000000000000000000000000000001C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000 C000C000C001C00180018003800300070006000E001C003800700060000A3479A317>I< 7FFFFFFFFFFFF8FFFFFFFFFFFFFC00000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFC7FFFFFFFFFFFF836147B9E 41>61 D<003FE00001FFFE0007C03F800E000FC03C0007F0300003F0700003F87C0001F8 FE0001FCFF0001FCFF0001FCFF0001FCFF0001FC7E0001FC3C0003F8000003F8000007F0 000007F000000FE000001F8000003F0000007E0000007C000000F8000001F0000001E000 0003C0000003800000038000000700000007000000070000000600000006000000060000 000600000006000000060000000600000006000000060000000600000000000000000000 000000000000000000000000000000000000000000000000000E0000003F8000007FC000 007FC000007FC000007FC000007FC000003F8000000E00001E3B7CBA27>63 D<000003FF00000000001FFFE000000000FC00FC00000001E0001E000000078000078000 001E000001E000003800000070000070000000380000E00000001C0001C00000000E0003 80000000070003000000000300070001FC0003800E0007FF0001C00C001F03C000C01C00 7E00E000E01800FC007000603801F8003800703001F0001C00303003F0000FE0307007E0 0007E0386007E00007E018600FC00007E018600FC00007E018E00FC00007E01CC01F8000 07E00CC01F800007E00CC01F800007E00CC01F800007E00CC01F800007E00CC01F800007 E00CC01F800007E00CC01F800007E00CC01F800007E00CC01F800007E00CE00FC00007E0 0C600FC00007E00C600FC00007E00C6007E00007E01C7007E00007E0183003F0000FE018 3001F0001FE0183801F8003FE0381800FC0077E0301C007E00E3F0700C001F03C1F0E00E 0007FF00FFC0070001FC003F00030000000000000380000000000001C0000000000000E0 0000000000007000000000000038000000007C001E00000003FC00078000001FF00001E0 0000FF800000FC003FFC0000001FFFFF8000000003FFE00000363C7BBA41>I<00000038 00000000000038000000000000380000000000007C0000000000007C0000000000007C00 0000000000FE000000000000FE000000000000FE000000000001FF000000000001FF0000 00000001FF0000000000037F8000000000037F8000000000077FC000000000063FC00000 0000063FC0000000000E3FE0000000000C1FE0000000000C1FE0000000001C1FF0000000 00180FF000000000180FF000000000380FF8000000003007F8000000003007F800000000 7007FC000000006003FC000000006003FC00000000C003FE00000000C001FE00000000C0 01FE000000018001FF000000018000FF000000018000FF000000030000FF800000030000 7F8000000300007F8000000600007FC0000007FFFFFFC0000007FFFFFFC000000FFFFFFF E000000C00001FE000000C00001FE000001800000FF000001800000FF000001800000FF0 000030000007F8000030000007F8000030000007F8000060000003FC000060000003FC00 00E0000003FC0000E0000001FE0001E0000001FE0003F0000001FF000FFC000007FF80FF FF8000FFFFFEFFFF8000FFFFFEFFFF8000FFFFFE373C7DBB3E>I I<000001FF80018000000FFFE0038000007FFFF803800001FF807E07800003FC000F0F80 000FF000039F80001FE00001DF80003F800000FF80007F0000007F8000FE0000003F8001 FE0000003F8003FC0000001F8007F80000000F8007F80000000F800FF000000007800FF0 00000007801FE000000007801FE000000003803FE000000003803FC000000003807FC000 000001807FC000000001807FC000000001807F800000000180FF800000000000FF800000 000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000 0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000 00FF8000000000007F8000000000007FC000000001807FC000000001807FC00000000180 3FC000000001803FE000000001801FE000000003801FE000000003000FF000000003000F F0000000070007F8000000070007F8000000060003FC0000000E0001FE0000001C0000FE 0000001800007F0000003800003F8000007000001FE00000E000000FF00003C0000003FC 000F80000001FF803F000000007FFFFC000000000FFFF00000000001FF800000313D7BBA 3C>IIII<000000FF8000C000000FFFF001C000003FFFFC01C00000FF 803F03C00003FC000787C0000FF00003CFC0001FE00000EFC0003FC000007FC0007F8000 003FC000FF0000001FC001FE0000001FC003FC0000000FC007F800000007C007F8000000 07C00FF000000003C00FF000000003C01FE000000003C01FE000000001C03FE000000001 C03FC000000001C07FC000000000C07FC000000000C07FC000000000C07FC000000000C0 FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF 800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80 0000000000FF800000FFFFFFFF800000FFFFFF7FC00000FFFFFF7FC00000007FE07FC000 00003FC07FC00000003FC03FC00000003FC03FE00000003FC01FE00000003FC01FE00000 003FC00FF00000003FC00FF00000003FC007F80000003FC007F80000003FC003FC000000 3FC001FE0000003FC000FF0000007FC0007F8000007FC0003FC00000FFC0001FE00000EF C0000FF80003C7C00003FE000783C00000FFC03F01C000003FFFFC00C000000FFFF00000 000000FF800000383D7CBA41>III<003FFFFFE0003FFFFFE0003FFFFFE000001FFC00000007F800000007F8 00000007F800000007F800000007F800000007F800000007F800000007F800000007F800 000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 07F800000007F800000007F800000007F800000007F800000007F800000007F800000007 F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8 00000007F8003F0007F8007F8007F800FFC007F800FFC007F800FFC007F800FFC007F800 FFC00FF000FF800FF0007F000FE00070001FE00038001FC0001C003F80000E007F000007 81FC000001FFF00000007F800000233B7DB82B>I76 DI I<000003FF00000000001FFFE000000000FE01FC00000001F8007E00000007E0001F8000 000FC0000FC000003F800007F000007F000003F80000FE000001FC0001FC000000FE0001 F80000007E0003F80000007F0007F00000003F8007F00000003F800FE00000001FC00FE0 0000001FC01FE00000001FE01FC00000000FE03FC00000000FF03FC00000000FF03FC000 00000FF07FC00000000FF87F8000000007F87F8000000007F87F8000000007F8FF800000 0007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF80000000 07FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007 FCFF8000000007FC7F8000000007F87FC00000000FF87FC00000000FF87FC00000000FF8 3FC00000000FF03FC00000000FF01FE00000001FE01FE00000001FE01FE00000001FE00F F00000003FC007F00000003F8007F80000007F8003F80000007F0001FC000000FE0001FC 000000FE0000FE000001FC00007F000003F800003F800007F000001FC0000FE0000007E0 001F80000003F8007F00000000FE01FC000000001FFFE00000000003FF000000363D7BBA 41>II<000003FF00000000001FFFE000000000FE01FC00000001 F8007E00000007E0001F8000000FC0000FC000003F800007F000007F000003F80000FE00 0001FC0001FC000000FE0001FC000000FE0003F80000007F0007F80000007F8007F00000 003F800FF00000003FC00FE00000001FC01FE00000001FE01FE00000001FE03FC0000000 0FF03FC00000000FF03FC00000000FF07FC00000000FF87FC00000000FF87F8000000007 F87F8000000007F8FF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FC FF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF 8000000007FCFF8000000007FCFF8000000007FC7F8000000007F87F8000000007F87FC0 0000000FF87FC00000000FF83FC00000000FF03FC00000000FF01FE00000001FE01FE000 00001FE01FE00000001FE00FF00000003FC007F0007C003F8007F001FF003F8003F80383 807F0001FC0701C0FE0001FC0E00C0FE0000FE0C00E1FC00007F0C0063F800003F8C0077 F000001FCC003FE0000007EE003F80000003FF007F00000000FF81FC000C00001FFFFC00 0C000003FF1C000C000000001E001C000000001F001C000000001F003C000000001F807C 000000001FC0F8000000000FFFF8000000000FFFF8000000000FFFF8000000000FFFF000 00000007FFF00000000007FFE00000000003FFC00000000001FF8000000000007E00364B 7BBA41>II<000FF800C0003FFE01C000FFFF81C003F807E3C0 07E000F7C00FC0007FC01F80003FC03F00001FC03E00000FC07E000007C07E000007C07C 000003C0FC000003C0FC000001C0FC000001C0FC000001C0FE000000C0FE000000C0FE00 0000C0FF000000C0FF800000007FC00000007FE00000007FF80000003FFF8000001FFFF8 00001FFFFF80000FFFFFE00007FFFFF80003FFFFFE0000FFFFFF00003FFFFF800007FFFF C000007FFFC0000007FFE00000007FE00000003FF00000001FF00000000FF000000007F8 00000007F8C0000003F8C0000003F8C0000001F8C0000001F8C0000001F8E0000001F8E0 000001F8E0000001F0F0000001F0F0000003F0F8000003E0FC000007E0FE000007C0FF00 000FC0FF80001F80FBF0003F00F0FE00FE00E03FFFF800E00FFFE000C001FF0000253D7C BA2E>I<3FFFFFFFFFFFE03FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FF001FE03E0001FE 0003E07C0001FE0001F0780001FE0000F0700001FE000070700001FE000070700001FE00 0070600001FE000030600001FE000030600001FE000030600001FE000030E00001FE0000 38C00001FE000018C00001FE000018C00001FE000018C00001FE000018000001FE000000 000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000 0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000 01FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001 FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE 000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE00 0000000001FE000000000001FE000000000001FE000000000001FE000000000001FE0000 00000001FE000000000001FE000000000007FF800000001FFFFFFFE000001FFFFFFFE000 001FFFFFFFE00035397DB83C>IIII<7FFF FF003FFFFC007FFFFF003FFFFC007FFFFF003FFFFC0000FFF80007FF8000007FE00003FC 0000003FE00001F00000001FF00001E00000001FF00001C00000000FF800018000000007 FC00038000000007FC00070000000003FE00060000000003FE000E0000000001FF001C00 00000000FF80180000000000FF803800000000007FC03000000000003FE0600000000000 3FE0E000000000001FF0C000000000000FF18000000000000FFB80000000000007FF0000 0000000007FE00000000000003FE00000000000001FF00000000000001FF000000000000 00FF800000000000007FC00000000000007FC0000000000000FFE0000000000000DFE000 00000000019FF00000000000038FF80000000000030FF800000000000607FC0000000000 0E03FE00000000000C03FE00000000001801FF00000000003800FF00000000003000FF80 0000000060007FC000000000E0007FC000000000C0003FE00000000180001FF000000003 80001FF00000000300000FF800000006000007FC0000000E000007FC0000000C000003FE 0000001C000001FE0000003C000001FF000000FE000001FF800007FF800007FFE000FFFF E0003FFFFF80FFFFE0003FFFFF80FFFFE0003FFFFF8039397EB83E>II<3FFFFFFFFF003FFFFFFFFF00 3FFFFFFFFF003FFC0001FE003FC00003FE003F800007FC003E000007FC003C00000FF800 3C00000FF0003800001FF0007800003FE0007000003FE0007000007FC0007000007F8000 600000FF8000600001FF0000600001FF0000600003FE0000600003FC0000000007FC0000 00000FF8000000000FF8000000001FF0000000001FE0000000003FE0000000007FC00000 00007FC000000000FF8000000000FF0000000001FF0000000003FE0000000003FE000000 0007FC0000000007F8000000000FF8000000001FF0000180001FF0000180003FE0000180 003FC0000180007FC000018000FF8000018000FF8000038001FF0000038001FE00000380 03FE0000038007FC0000038007FC000007000FF8000007000FF000000F001FF000001F00 3FE000003F003FE000007F007FC00001FF007F80000FFF00FFFFFFFFFF00FFFFFFFFFF00 FFFFFFFFFF0029397BB833>II93 D<7FFFFFFFFFFF80FFFFFFFFFFFFC0FFFFFFFFFFFFC07FFFFFFFFFFF803204797041>95 D<001FE0000000FFFC000003E03F000007000F80000F8007E0001FC003F0001FE003F000 1FE001F8001FE001F8001FE000FC000FC000FC00078000FC00000000FC00000000FC0000 0000FC00000000FC0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC000FF0 00FC001FC000FC003FC000FC007F8000FC007F0000FC007F0000FC0CFE0000FC0CFE0000 FC0CFE0000FC0CFE0001FC0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183FC01E3E 180FE0781FF003FFF00FE0007F8007C026277DA52A>97 D<03F0000000FFF0000000FFF0 000000FFF00000000FF000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F01FE00003F07FF80003F1E03E00 03F3801F8003F7000FC003FE0007E003FC0003F003F80001F803F00001F803F00000FC03 F00000FC03F00000FE03F00000FE03F000007E03F000007F03F000007F03F000007F03F0 00007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000 007E03F00000FE03F00000FE03F00000FC03F00001FC03F80001F803F80003F003FC0003 F003EE0007E003C6000FC003C7801F000381E07E000300FFF80000001FC000283B7EB92E >I<0003FC00001FFF80007E03E001F8007003F000F807E001FC0FC003FC0FC003FC1F80 03FC3F8003FC3F0001F87F0000F07F0000007F0000007E000000FE000000FE000000FE00 0000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007F00 00007F0000003F0000063F8000061F80000E1FC0000C0FC0001C07E0003803F0007001F8 00E0007C07C0001FFF000007F8001F277DA525>I<0000000FC0000003FFC0000003FFC0 000003FFC00000003FC00000000FC00000000FC00000000FC00000000FC00000000FC000 00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000 000FC00000000FC00000000FC00000000FC00003F80FC0001FFF0FC0007E078FC000F801 EFC003F0007FC007E0003FC00FC0001FC00FC0001FC01F80000FC03F80000FC03F00000F C07F00000FC07F00000FC07E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0 FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07E00000FC07F 00000FC07F00000FC03F00000FC03F00000FC01F80001FC01F80001FC00FC0003FC007E0 007FC003F000EFF001F801CFFF007C078FFF001FFE0FFF0007F80FC0283B7DB92E>I<00 07F800001FFF00007C0FC001F803E003F001F007E001F80FC000F81F80007C1F80007C3F 00007E3F00003E7F00003E7F00003F7E00003FFE00003FFE00003FFE00003FFFFFFFFFFF FFFFFFFE000000FE000000FE000000FE000000FE0000007E0000007E0000007F0000007F 0000003F0000033F8000031F8000070FC0000607C0000E07E0001C01F0003800F8007000 7E03E0001FFF800003FC0020277EA525>I<00007E000003FF80000FC1E0001F87E0003F 0FF0007E0FF0007E0FF000FC0FF000FC0FF001F803C001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 0000FFFFFC00FFFFFC00FFFFFC0001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000003FC00007FFFF8007FFFF8007FFF F8001C3B7FBA19>I<00000003F0000FF00FF8003FFC3C3C00F81F707C01F00FE07C03E0 07C07C07C003E0100FC003F0000FC003F0001F8001F8001F8001F8001F8001F8001F8001 F8001F8001F8001F8001F8001F8001F8001F8001F8000FC003F0000FC003F00007C003E0 0003E007C00003F00F800003F81F0000073FFC0000060FF000000E000000000E00000000 0E000000000E000000000F000000000F000000000FC000000007FFFFC00007FFFFF80003 FFFFFE0001FFFFFF8003FFFFFFC00F80007FE01F00000FF03E000003F07C000001F07C00 0001F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8FC000001F87C0000 01F03E000003E03F000007E00F80000F8007E0003F0001FC01FC00007FFFF0000007FF00 0026387EA52A>I<03F000000000FFF000000000FFF000000000FFF0000000000FF00000 000003F00000000003F00000000003F00000000003F00000000003F00000000003F00000 000003F00000000003F00000000003F00000000003F00000000003F00000000003F00000 000003F00000000003F00000000003F00000000003F00000000003F00FF0000003F03FFC 000003F0F03F000003F1C01F800003F3800FC00003F7000FC00003FE000FC00003FC0007 E00003FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003F00007 E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007 E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007 E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007 E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80293A7EB9 2E>I<0380000FE0001FF0001FF0001FF0001FF0001FF0000FE000038000000000000000 00000000000000000000000000000000000000000000000003F000FFF000FFF000FFF000 07F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 03F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC012387EB717>I<0001 C00007F0000FF8000FF8000FF8000FF8000FF80007F00001C00000000000000000000000 000000000000000000000000000000000000000001F800FFF800FFF800FFF80007F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F83C01F87E01F8FF01F0FF03F0FF03F0FF03E0FE07C07C07C03C0F000FFE0003F8 00154984B719>I<03F0000000FFF0000000FFF0000000FFF00000000FF000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F001FFFC03F001FFFC03F001FFFC03F0007FC003F0007F0003 F0007C0003F000700003F000E00003F001C00003F003800003F007000003F01E000003F0 38000003F078000003F0FC000003F1FC000003F3FE000003F73F000003FE3F800003F81F 800003F00FC00003F00FE00003F007E00003F003F00003F001F80003F001FC0003F000FC 0003F0007E0003F0007F0003F0003F0003F0003F8003F0001FC007F8003FF0FFFFC0FFFF FFFFC0FFFFFFFFC0FFFF283A7EB92C>I<03F000FFF000FFF000FFF0000FF00003F00003 F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00007 F800FFFFC0FFFFC0FFFFC0123A7EB917>I<03F00FF0001FE000FFF03FFC007FF800FFF0 F03F01E07E00FFF1C01F83803F000FF3800FC7001F8003F7000FCE001F8003FE000FDC00 1F8003FC0007F8000FC003FC0007F8000FC003F80007F0000FC003F80007F0000FC003F8 0007F0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC007F8000FF000 1FE0FFFFC1FFFF83FFFFFFFFC1FFFF83FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00F F00000FFF03FFC0000FFF0F03F0000FFF1C01F80000FF3800FC00003F7000FC00003FE00 0FC00003FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1 FFFF8029257EA42E>I<0003FE0000000FFF8000003E03E00000F800F80001F0007C0003 E0003E0007C0001F000F80000F801F80000FC01F000007C03F000007E03F000007E07E00 0003F07E000003F07E000003F07E000003F0FE000003F8FE000003F8FE000003F8FE0000 03F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F87E000003F07E000003 F07F000007F03F000007E03F000007E01F80000FC00F80000F800FC0001F8007E0003F00 03F0007E0000F800F800007E03F000001FFFC0000003FE000025277EA52A>I<03F01FE0 00FFF07FF800FFF1E07E00FFF3801F8007F7000FC003FE0007E003FC0003F003F80003F8 03F00001F803F00001FC03F00000FC03F00000FE03F00000FE03F00000FE03F000007F03 F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F0 00007F03F000007F03F00000FE03F00000FE03F00000FE03F00001FC03F00001FC03F800 03F803F80003F003FC0007F003FE000FE003F6000FC003F7803F0003F1E07E0003F0FFF8 0003F01FC00003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000007F8000000FFFFC00000FF FFC00000FFFFC0000028357EA42E>I<0003F800C0001FFE01C0007E0781C000FC01C3C0 03F000E3C007F00077C00FE00037C00FC0003FC01FC0001FC03F80001FC03F80000FC07F 00000FC07F00000FC07F00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00 000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07F00000FC07F0000 0FC07F00000FC03F00000FC03F80001FC01F80001FC01FC0003FC00FC0003FC007E0007F C003F000EFC001F801CFC0007E078FC0001FFE0FC00007F80FC00000000FC00000000FC0 0000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000 00000FC00000000FC00000001FE0000003FFFF000003FFFF000003FFFF28357DA42C>I< 07E01F00FFE07FC0FFE1E3E0FFE387F00FE707F003E607F003EE07F003EC03E003FC0080 03F8000003F8000003F8000003F8000003F0000003F0000003F0000003F0000003F00000 03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000 03F0000003F0000003F0000003F0000003F0000003F0000007F80000FFFFF000FFFFF000 FFFFF0001C257EA421>I<00FF030003FFE7000F80FF001E003F003C001F0078000F0070 000700F0000700F0000700F0000300F8000300F8000300FC000300FF0000007FE000007F FF00003FFFE0001FFFF8000FFFFC0003FFFE0000FFFF000007FF8000007F8000001F80C0 000FC0C00007C0C00007C0E00003C0E00003C0E00003C0F00003C0F0000380F8000780FC 000780FC000F00FF001E00F3C07C00E1FFF000C03F80001A277DA521>I<001800000018 000000180000001800000018000000380000003800000038000000780000007800000078 000000F8000001F8000003F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800C001F8 00C001F800C001F800C001F800C001F800C001F800C001F800C001F800C000FC01C000FC 0180007C0380007E0300003F0700000FFE000001F8001A347FB220>I<03F00007E000FF F001FFE000FFF001FFE000FFF001FFE0000FF0001FE00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F0000FE00003F0000FE00003F0000FE00003F0001FE00001 F0001FE00001F8003FE00000F80077F80000FC00E7FF80003F03C7FF80001FFF87FF8000 03FC07E00029267EA42E>IIIII<3FFFFFFC3FFFFF FC3F8003FC3E0003F83C0007F038000FE030000FE070001FC070003F8060007F8060007F 006000FE006001FC006001FC000003F8000007F0000007F000000FE000001FC000003F80 00003F8000007F000600FE000600FE000601FC000603F8000607F8000E07F0000E0FE000 0C1FC0001C1FC0001C3F80003C7F00007CFF0003FCFFFFFFFCFFFFFFFC1F247EA325>I< 000001F800000FF800003F800000FC000001F8000003F0000007E0000007E000000FE000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000001FC000001F8000 003F8000007F000000FE000003F800007FE00000FF0000007FE0000003F8000000FE0000 007F0000003F8000001F8000001FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FE0000007E0000007E0000003F0000001F8000000FC0000003F80 00000FF8000001F81D537ABD2A>I125 D<0600000C000600000C000600000C000300001800038000380001C000700001E000F000 00FC07E000003FFF8000001FFF00000003F8000000000000000000000000000000000000 00000000001FE0000000FFFC000003E03F000007000F80000F8007E0001FC003F0001FE0 03F0001FE001F8001FE001F8001FE000FC000FC000FC00078000FC00000000FC00000000 FC00000000FC00000000FC0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC 000FF000FC001FC000FC003FC000FC007F8000FC007F0000FC007F0000FC0CFE0000FC0C FE0000FC0CFE0000FC0CFE0001FC0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183F C01E3E180FE0781FF003FFF00FE0007F8007C026367DB42A>160 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fm ecbx1000 10 71 /Fm 71 123 df21 D<000003FFC00000007FFFF0000003FFFFFC00000FFF00FE00003FF8003F00007FE000FF 8000FFC001FF8001FFC001FF8001FF8001FF8003FF8003FFC003FF0001FF8003FF0001FF 8003FF0001FF8003FF0000FF0003FF00007E0003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF003FFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF C0FFFFFFFFFFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7EB935>28 D<000003FFC7C000007FFFFFC00003FFFFFFC0000FFF00FFC0003FF801FFC0007FE003FF C000FFC003FFC001FFC003FFC001FF8003FFC003FF8003FFC003FF0001FFC003FF0001FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF C0FFFFFFFFFFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7EB935>I<00001C00 003C0000F80001F00003E00007E0000FC0001F80001F00003F00007E0000FE0000FC0001 FC0001F80003F80003F80007F00007F0000FF0000FE0001FE0001FE0001FC0003FC0003F C0003FC0003FC0007F80007F80007F80007F80007F8000FF8000FF8000FF8000FF8000FF 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF 80007F80007F80007F80007F80007F80003FC0003FC0003FC0003FC0001FC0001FE0001F E0000FE0000FF00007F00007F00003F80003F80001F80001FC0000FC0000FE00007E0000 3F00001F00001F80000FC00007E00003E00001F00000F800003C00001C165377BD25>40 DI<0F803FE07FF07FF0FFF8FFF8FFFCFFFCFFFC7FFC7FFC3FFC0F9C001C003C00 38003800380078007000F001E001E003C007800F001F001C0018000E1D798C1B>44 DI<0F803FE07FF07FF0FFF8FFF8FFF8FFF8FFF87FF07FF03FE00F800D0D798C1B>I< 0001FF0000001FFFF000007FFFFC0000FF83FE0001FE00FF0003FC007F8007F8003FC00F F0001FE00FF0001FE01FF0001FF01FF0001FF03FE0000FF83FE0000FF83FE0000FF87FE0 000FFC7FE0000FFC7FE0000FFC7FE0000FFCFFE0000FFEFFE0000FFEFFE0000FFEFFE000 0FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000F FEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFE FFE0000FFE7FE0000FFC7FE0000FFC7FE0000FFC7FE0000FFC7FE0000FFC3FE0000FF83F F0001FF83FF0001FF81FF0001FF01FF0001FF00FF8003FE007F8003FC003FC007F8001FE 00FF0000FF83FE00007FFFFC00001FFFF0000001FF000027377CB530>48 D<00001E000000003E00000000FE00000007FE0000007FFE0000FFFFFE0000FFFFFE0000 FFFFFE0000FF8FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00 00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000 000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00007F FFFFFF807FFFFFFF807FFFFFFF807FFFFFFF80213679B530>I<000FFE0000007FFFC000 01FFFFF00007FFFFFC000FE03FFF001F800FFF803F0003FFC07F8003FFE07FE001FFE0FF E000FFF0FFF000FFF0FFF000FFF0FFF0007FF8FFF0007FF8FFF0007FF8FFF0007FF87FE0 007FF83FC0007FF80600007FF80000007FF8000000FFF0000000FFF0000000FFE0000001 FFE0000001FFC0000003FF80000003FF00000007FE0000000FFC0000001FF00000001FE0 0000003FC00000007F00000000FE00000001FC00000003F000780007E00078000FC00078 001F800078003F0000F8007C0000F000F80000F000F00001F001FFFFFFF003FFFFFFF007 FFFFFFF00FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFF FFFFE0FFFFFFFFE025367BB530>I<0003FF0000001FFFF000007FFFFC0001FC07FF0003 F003FF8007E001FFC007C000FFE00FF800FFE00FFC00FFF01FFE00FFF01FFE00FFF01FFE 00FFF01FFE00FFF01FFE00FFF01FFE00FFF00FFC00FFE007F800FFE003F001FFE0000001 FFC0000003FF80000003FF00000007FE0000000FFC0000003FF000000FFFC000000FFF80 00000FFFF000000007FE00000001FF80000000FFC0000000FFE00000007FF00000007FF8 0000003FFC0000003FFC0000003FFE1FC0003FFE3FE0003FFE7FF0003FFEFFF8003FFEFF F8003FFEFFF8003FFEFFF8003FFEFFF8003FFCFFF8003FFCFFF0007FFC7FF0007FF87FC0 00FFF03F8000FFF01FC001FFE00FFC07FF8007FFFFFF0001FFFFFC00007FFFF0000007FF 000027377CB530>I<00000007C0000000000FC0000000000FC0000000001FC000000000 3FC0000000007FC000000000FFC000000001FFC000000001FFC000000003FFC000000007 FFC00000000FFFC00000001FFFC00000003EFFC00000003CFFC000000078FFC0000000F0 FFC0000001F0FFC0000003E0FFC0000003C0FFC000000780FFC000000F00FFC000001F00 FFC000003E00FFC000007C00FFC000007800FFC00000F000FFC00001E000FFC00003E000 FFC00007C000FFC000078000FFC0000F0000FFC0001E0000FFC0003C0000FFC0007C0000 FFC000F80000FFC000FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80000001 FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001 FFC000000001FFC000000001FFC000000001FFC0000003FFFFFF800003FFFFFF800003FF FFFF800003FFFFFF8029367DB530>I<1C000000C01F800007C01FF8007FC01FFFFFFF80 1FFFFFFF801FFFFFFF001FFFFFFE001FFFFFFC001FFFFFF0001FFFFFE0001FFFFF80001F FFFE00001FFFF000001F000000001F000000001F000000001F000000001F000000001F00 0000001F000000001F03FE00001F1FFFE0001F7FFFF8001FFE07FC001FF003FF001FC001 FF801F8000FFC01F0000FFC00E0000FFE00000007FE00000007FF00000007FF00000007F F80000007FF80000007FF81F00007FF83FC0007FF87FE0007FF8FFE0007FF8FFF0007FF8 FFF0007FF8FFF0007FF8FFF0007FF0FFE0007FF0FFE000FFF07F8000FFE07E0000FFC03E 0001FFC03F0003FF801F8007FF000FF01FFE0007FFFFF80001FFFFE000007FFF8000000F F8000025377BB530>I<00000FF8000000FFFE000003FFFF80000FF80FC0003FE003E000 7F8001F000FF000FF001FF001FF803FE003FF807FC003FF80FFC003FF80FF8003FF81FF8 003FF81FF8003FF83FF8001FF03FF8000FE07FF00000007FF00000007FF00000007FF008 00007FF07FF000FFF1FFFC00FFF3FFFF00FFF780FF80FFFF007FC0FFFE003FE0FFFC003F F0FFFC001FF8FFF8001FF8FFF8001FFCFFF8001FFCFFF8001FFCFFF0001FFEFFF0001FFE FFF0001FFEFFF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE3F F0001FFE3FF0001FFC3FF0001FFC1FF8001FFC1FF8001FF80FF8003FF80FFC003FF007FC 003FE003FE007FC001FF81FF8000FFFFFF00003FFFFC00000FFFF0000001FF800027377C B530>I<3C00000000003E00000000003FE0000000003FFFFFFFFF803FFFFFFFFF803FFF FFFFFF803FFFFFFFFF803FFFFFFFFF007FFFFFFFFE007FFFFFFFFC007FFFFFFFF8007FFF FFFFF0007FFFFFFFE0007FFFFFFFE0007C00000FC0007800001F80007800003F0000F800 007E0000F00000FC0000F00000F80000F00001F80000F00003F00000000007E000000000 0FC0000000000FC0000000001F80000000003F80000000007F00000000007F0000000000 FE0000000000FE0000000001FE0000000001FC0000000003FC0000000003FC0000000007 FC0000000007FC000000000FFC000000000FF8000000000FF8000000001FF8000000001F F8000000001FF8000000001FF8000000001FF8000000003FF8000000003FF8000000003F F8000000003FF8000000003FF8000000003FF8000000003FF8000000003FF8000000003F F8000000001FF0000000000FE00000000007C000000029397BB730>I<0001FF8000000F FFF000003FFFFC0000FE01FF0001F8007F8003F0003FC007E0001FE007E0000FE00FC000 0FF00FC00007F01FC00007F01FC00007F01FE00007F01FF00007F01FF80007F01FFC000F F01FFF000FE01FFFC00FE01FFFE01FC00FFFF83FC00FFFFE7F8007FFFFFE0007FFFFFC00 03FFFFF00001FFFFFC0000FFFFFF00007FFFFF80003FFFFFC000FFFFFFE003FDFFFFF007 F07FFFF80FE03FFFF81FC00FFFFC3F8003FFFC7F8000FFFE7F00007FFE7F00001FFEFE00 0007FEFE000003FEFE000001FEFE000001FEFE000000FEFE000000FEFE000000FCFF0000 00FC7F000001FC7F800001F83FC00003F83FE00007F01FF0000FE00FFE007FC003FFFFFF 0000FFFFFC00003FFFF0000003FF800027377CB530>I<0003FF0000001FFFE000007FFF F80001FF01FE0003FE00FF0007FC007F800FF8007FC01FF8003FE03FF0003FE03FF0001F F07FF0001FF07FF0001FF87FF0001FF8FFF0001FF8FFF0001FFCFFF0001FFCFFF0001FFC FFF0001FFCFFF0001FFEFFF0001FFEFFF0001FFEFFF0001FFEFFF0001FFE7FF0003FFE7F F0003FFE7FF0003FFE3FF0003FFE3FF0007FFE1FF8007FFE0FF800FFFE07FC01FFFE03FE 03DFFE01FFFF9FFE007FFF1FFE001FFC1FFC0000201FFC0000001FFC0000001FFC000000 1FFC0FE0003FF81FF0003FF83FF8003FF03FF8003FF03FF8003FE03FF8007FE03FF8007F C03FF800FF803FF001FF801FE003FF001F8007FE000FE01FF80007FFFFF00003FFFFC000 00FFFF0000001FF0000027377CB530>I<0F803FE07FF07FF0FFF8FFF8FFF8FFF8FFF87F F07FF03FE00F80000000000000000000000000000000000000000000000F803FE07FF07F F0FFF8FFF8FFF8FFF8FFF87FF07FF03FE00F800D2579A41B>I<001FFE000001FFFFE000 07FFFFF8000FE00FFE003F0003FF007F0003FF807F8001FF80FFC001FFC0FFE001FFC0FF E001FFC0FFE001FFC0FFE001FFC0FFE001FFC07FC001FFC03F8003FF801F0003FF800000 07FF0000000FFC0000001FF80000003FE00000007FC00000007F00000000FE00000000FC 00000001F800000001F800000001F000000003E000000003E000000003C000000003C000 000003C000000003C000000003C000000003C000000003C000000003C000000003C00000 000000000000000000000000000000000000000000000000000000000000000000000000 07C00000001FF00000003FF80000003FF80000007FFC0000007FFC0000007FFC0000007F FC0000007FFC0000003FF80000003FF80000001FF000000007C00000223A7BB92D>63 D<00000003E00000000000000007F00000000000000007F0000000000000000FF8000000 000000000FF8000000000000000FF8000000000000001FFC000000000000001FFC000000 000000003FFE000000000000003FFE000000000000003FFE000000000000007FFF000000 000000007FFF00000000000000FFFF80000000000000FFFF80000000000000FFFF800000 00000001FFFFC0000000000001F3FFC0000000000003F3FFE0000000000003E1FFE00000 00000003E1FFE0000000000007E1FFF0000000000007C0FFF000000000000FC0FFF80000 0000000F807FF800000000000F807FF800000000001F807FFC00000000001F003FFC0000 0000003F003FFE00000000003E001FFE00000000003E001FFE00000000007E001FFF0000 0000007C000FFF0000000000FC000FFF8000000000F80007FF8000000000F80007FF8000 000001F80007FFC000000001F00003FFC000000003FFFFFFFFE000000003FFFFFFFFE000 000003FFFFFFFFE000000007FFFFFFFFF000000007C00000FFF00000000FC00000FFF800 00000F8000007FF80000000F8000007FF80000001F8000007FFC0000001F0000003FFC00 00003F0000003FFE0000003E0000001FFE0000003E0000001FFE0000007E0000001FFF00 00007C0000000FFF000000FE0000000FFF8000FFFFF80007FFFFFF80FFFFF80007FFFFFF 80FFFFF80007FFFFFF80FFFFF80007FFFFFF80413A7DB948>65 DI<0000003FFC0001C0000003FFFFC0 03C000001FFFFFF007C00000FFFFFFFC0FC00003FFFC00FF3FC00007FFC0001FFFC0001F FE00000FFFC0003FFC000003FFC0007FF0000001FFC000FFE0000000FFC001FFC0000000 FFC003FFC00000007FC007FF800000003FC00FFF000000003FC00FFF000000001FC01FFE 000000001FC01FFE000000000FC03FFE000000000FC03FFC000000000FC03FFC00000000 07C07FFC0000000007C07FFC0000000007C07FF8000000000000FFF8000000000000FFF8 000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000 0000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8 000000000000FFF8000000000000FFF80000000000007FF80000000000007FFC00000000 00007FFC0000000003C03FFC0000000003C03FFC0000000003C03FFE0000000003C01FFE 0000000007C01FFE0000000007C00FFF0000000007800FFF000000000F8007FF80000000 0F0003FFC00000001F0001FFC00000003E0000FFE00000007E00007FF8000000FC00003F FC000001F800001FFF000003F0000007FFC0000FE0000003FFFC00FF80000000FFFFFFFE 000000001FFFFFF80000000003FFFFE000000000003FFE0000003A3B7BB945>IIII<0000003FFC0001C000000003FFFFC003C00000001FFFFFF0 07C0000000FFFFFFFC0FC0000003FFFC00FF3FC0000007FFC0001FFFC000001FFE00000F FFC000003FFC000003FFC000007FF0000001FFC00000FFE0000000FFC00001FFC0000000 FFC00003FFC00000007FC00007FF800000003FC0000FFF000000003FC0000FFF00000000 1FC0001FFE000000001FC0001FFE000000000FC0003FFE000000000FC0003FFC00000000 0FC0003FFC0000000007C0007FFC0000000007C0007FFC0000000007C0007FF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000 000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800003FFF FFFF80FFF800003FFFFFFF807FF800003FFFFFFF807FFC00003FFFFFFF807FFC00000003 FFC0003FFC00000003FFC0003FFC00000003FFC0003FFE00000003FFC0001FFE00000003 FFC0001FFE00000003FFC0000FFF00000003FFC0000FFF00000003FFC00007FF80000003 FFC00003FFC0000003FFC00001FFE0000003FFC00000FFE0000003FFC000007FF8000007 FFC000003FFC000007FFC000001FFF00000FFFC0000007FFC0001FFFC0000003FFFC00FF 3FC0000000FFFFFFFE0FC00000001FFFFFF803C000000003FFFFE000C0000000003FFE00 000000413B7BB94B>III76 DII80 D<000000FFF800000000000FFFFF80000000007FFFFFF000000001FFE03FFC00000007FF 0007FF0000001FFC0001FFC000003FF80000FFE000007FE000003FF00000FFC000001FF8 0001FFC000001FFC0003FF8000000FFE0007FF00000007FF0007FF00000007FF000FFE00 000003FF800FFE00000003FF801FFE00000003FFC01FFC00000001FFC03FFC00000001FF E03FFC00000001FFE03FFC00000001FFE07FFC00000001FFF07FF800000000FFF07FF800 000000FFF07FF800000000FFF0FFF800000000FFF8FFF800000000FFF8FFF800000000FF F8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800 000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FF F87FF800000000FFF07FF800000000FFF07FF800000000FFF07FFC00000001FFF03FFC00 000001FFE03FFC00000001FFE03FFC00000001FFE01FFE00000003FFC01FFE00000003FF C00FFE001FC003FF8007FF007FF007FF0007FF00FFF807FF0003FF81F07C0FFE0001FFC3 C01E1FFC0000FFC3800F1FF800007FE3800FBFF000003FF38007FFE000001FFF8007FFC0 000007FFC007FF00000001FFF01FFC000000007FFFFFF0000800000FFFFFF8001C000000 FFF9FC001C0000000001FE003C0000000001FF80FC0000000001FFFFFC0000000000FFFF FC0000000000FFFFF80000000000FFFFF800000000007FFFF800000000007FFFF0000000 00007FFFF000000000003FFFE000000000003FFFE000000000001FFFC000000000000FFF 80000000000007FF00000000000001FC003E4A7BB948>II<0007FF000E00003FFFE01E0000FFFFF83E0003FFFFFE7E 0007FC01FFFE000FF0001FFE001FE0000FFE003FC00003FE003F800001FE007F800000FE 007F000000FE007F0000007E00FF0000007E00FF0000003E00FF0000003E00FF8000003E 00FF8000001E00FFC000001E00FFE000001E00FFF000000000FFFC000000007FFFE00000 007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFFF0 0007FFFFFFF80003FFFFFFFC0000FFFFFFFE00003FFFFFFE00000FFFFFFF000001FFFFFF 0000000FFFFF800000007FFF800000000FFFC000000003FFC000000001FFC000000000FF C0F00000007FC0F00000007FC0F00000007FC0F00000003FC0F00000003FC0F80000003F C0F80000003F80FC0000003F80FC0000007F80FE0000007F00FF0000007F00FF800000FE 00FFE00001FC00FFF80003FC00FFFF801FF800FCFFFFFFE000F83FFFFFC000F007FFFE00 00E0007FF000002A3B7BB935>I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFF FF803FFFFFFFFFFFFF803FF800FFF003FF807FC000FFF0007FC07F8000FFF0001FC07E00 00FFF0000FC07E0000FFF0000FC07C0000FFF00007C07C0000FFF00007C0780000FFF000 03C0780000FFF00003C0780000FFF00003C0780000FFF00003C0F80000FFF00003E0F000 00FFF00001E0F00000FFF00001E0F00000FFF00001E0F00000FFF00001E0000000FFF000 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000F FFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF00003B387DB742> IIII<7FFF FFF803FFFFF8007FFFFFF803FFFFF8007FFFFFF803FFFFF8007FFFFFF803FFFFF800007F FE00000FF00000003FFF00000FE00000001FFF00000FC00000001FFF80001F800000000F FFC0003F0000000007FFC0003F0000000003FFE0007E0000000003FFF000FC0000000001 FFF801FC0000000000FFF801F80000000000FFFC03F000000000007FFE07E00000000000 3FFE0FE000000000001FFF0FC000000000001FFF9F8000000000000FFFFF000000000000 07FFFF00000000000007FFFE00000000000003FFFC00000000000001FFF8000000000000 00FFF800000000000000FFFC000000000000007FFE000000000000003FFE000000000000 003FFF000000000000001FFF800000000000003FFF800000000000007FFFC00000000000 00FFFFE0000000000000FFFFE0000000000001F9FFF0000000000003F1FFF80000000000 03F0FFFC000000000007E07FFC00000000000FC07FFE00000000001FC03FFF0000000000 1F801FFF00000000003F000FFF80000000007E000FFFC000000000FE0007FFE000000000 FC0003FFE000000001F80003FFF000000003F00001FFF800000007F00000FFF800000007 E000007FFC0000000FC000007FFE0000001F8000003FFF0000003F8000001FFF0000007F 8000001FFF8000FFFFFF0007FFFFFF80FFFFFF0007FFFFFF80FFFFFF0007FFFFFF80FFFF FF0007FFFFFF8041397DB848>I<3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFF FFFE3FFF80007FFC3FFC0000FFF83FF00001FFF83FC00001FFF03F800003FFE03F000007 FFE07F000007FFC07E00000FFF807E00001FFF807C00001FFF007C00003FFE007C00007F FE007800007FFC00780000FFF800780001FFF800780001FFF000000003FFE000000007FF E000000007FFC00000000FFFC00000001FFF800000001FFF000000003FFF000000007FFE 000000007FFC00000000FFFC00000001FFF800000001FFF000000003FFF000000007FFE0 00000007FFC0001E000FFFC0001E000FFF80001E001FFF00001E003FFF00001E003FFE00 001E007FFC00003E00FFFC00003E00FFF800003E01FFF000003E03FFF000007E03FFE000 007C07FFC00000FC0FFFC00000FC0FFF800001FC1FFF000003FC3FFF00000FFC3FFE0000 3FFC7FFC0001FFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFC2F397BB8 3A>90 DI93 D<7FFFFFFFFFFFFF00FFFFFFFFFFFFFF80FFFFFFFFFFFFFF 80FFFFFFFFFFFFFF807FFFFFFFFFFFFF003905786A4A>95 D<003FFE00000003FFFFE000 000FFFFFF800001FF00FFE00003FF003FF00003FF801FF80003FF800FFC0003FF800FFC0 003FF8007FE0003FF8007FE0001FF0007FE0000FE0007FE0000380007FE0000000007FE0 000000007FE00000003FFFE000000FFFFFE000007FFFFFE00001FFF87FE00007FF807FE0 000FFE007FE0003FF8007FE0003FF0007FE0007FE0007FE000FFE0007FE000FFC0007FE0 00FFC0007FE000FFC0007FE000FFC0007FE000FFC000FFE000FFE001FFE0007FE001FFE0 003FF007FFF8001FFC1FBFFFC00FFFFE1FFFC003FFF80FFFC0003FE003FFC02A257DA42E >97 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF01FF800003FF0FFFF00003FF3F FFFC0003FFFE03FF0003FFF000FF8003FFE0007FC003FF80003FE003FF00003FF003FF00 001FF803FF00001FF803FF00001FFC03FF00000FFC03FF00000FFC03FF00000FFE03FF00 000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00 000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00000FFC03FF00000FFC03FF00 001FF803FF00001FF803FF00001FF003FF80003FF003FFC0007FE003FFE0007FC003FDF0 01FF8003F8FC07FE0003F03FFFF80003E00FFFE00003C003FF00002F3A7EB935>I<0001 FFC000000FFFFC00007FFFFF0000FF80FF8003FE00FFC007FC01FFC00FF801FFC01FF801 FFC01FF001FFC03FF001FFC03FF000FF807FE0007F007FE0001C007FE0000000FFE00000 00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 FFE00000007FE00000007FE00000007FF00000003FF00000003FF00001E01FF80001E01F F80003E00FFC0007C007FE00078003FF001F8000FFC07E00007FFFFC00000FFFF0000001 FF800023257DA42A>I<000000007F800000007FFF800000007FFF800000007FFF800000 007FFF8000000003FF8000000001FF8000000001FF8000000001FF8000000001FF800000 0001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF800000 0001FF8000000001FF8000000001FF8000000001FF8000000001FF800001FF81FF80000F FFF1FF80003FFFFDFF8000FFC07FFF8003FF001FFF8007FC0007FF800FFC0003FF801FF8 0001FF801FF00001FF803FF00001FF803FF00001FF807FE00001FF807FE00001FF807FE0 0001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE0 0001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF807FE00001FF807FE0 0001FF807FF00001FF803FF00001FF803FF00001FF801FF80003FF800FF80007FF8007FC 000FFF8003FE001FFFC001FF80FDFFFE007FFFF9FFFE001FFFE1FFFE0001FF01FFFE2F3A 7DB935>I<0003FF8000001FFFF000007FFFFC0001FF83FE0003FE007F8007FC003F800F F8003FC01FF8001FE01FF0001FE03FF0000FF03FF0000FF07FE0000FF07FE0000FF87FE0 0007F8FFE00007F8FFE00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE000 0000FFE0000000FFE00000007FE00000007FE00000007FE00000003FF00000003FF00000 781FF00000780FF80000F80FFC0000F007FC0003F001FF000FE000FFC07FC0007FFFFF00 000FFFFC000001FFE00025257DA42C>I<00001FF0000001FFFC000007FFFF00001FF87F 80003FE0FF8000FFC1FFC000FFC1FFC001FF81FFC001FF81FFC003FF01FFC003FF00FF80 03FF00FF8003FF003E0003FF00000003FF00000003FF00000003FF00000003FF00000003 FF00000003FF00000003FF000000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000003FF 00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000 0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000 03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000FF FFFE0000FFFFFE0000FFFFFE0000FFFFFE0000223A7DB91D>I<000000001F000007FE00 FFC0007FFFE3FFC001FFFFFFEFE007FE07FF8FE00FF801FF1FE01FF000FF8FE03FF000FF CFE03FE0007FC7C03FE0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007F E0007FE0007FE0007FE0007FE0003FE0007FC0003FE0007FC0003FF000FFC0001FF000FF 80000FF801FF000007FE07FE00000FFFFFF800000F7FFFE000001E07FE0000001E000000 00001E00000000003E00000000003F00000000003F80000000001FC0000000001FFFFFF8 00001FFFFFFF80001FFFFFFFE0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0007FFFFFF FE001FFFFFFFFF003FC0000FFF007F000000FF80FF0000007F80FE0000007F80FE000000 3F80FE0000003F80FE0000003F80FF0000007F807F0000007F007F800000FF003FC00001 FE001FF00007FC0007FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA5 30>I<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF007FC00003FF03FFF80003FF0F FFFE0003FF1F03FF0003FF3C01FF8003FF7801FF8003FFF000FF8003FFE000FFC003FFC0 00FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF00 00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 00FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7DB935>I<01F0 0007FC000FFE000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0 0000000000000000000000000000000000000000000000000000000000FF007FFF007FFF 007FFF007FFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B >I<00001F0000007FC00000FFE00000FFE00001FFF00001FFF00001FFF00001FFF00001 FFF00000FFE00000FFE000007FC000001F00000000000000000000000000000000000000 00000000000000000000000000000000000000000FF0000FFFF0000FFFF0000FFFF0000F FFF000007FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00000 3FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00000 3FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00000 3FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF01F00 3FF03F803FF07FC03FF0FFE03FF0FFE07FE0FFE07FE0FFE07FC0FFE0FFC07FC0FF807F83 FE003FFFFC000FFFF00001FF80001C4B86BA1D>I<00FF00000000FFFF00000000FFFF00 000000FFFF00000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 00000003FF000FFFE003FF000FFFE003FF000FFFE003FF000FFFE003FF0003FC0003FF00 03F00003FF000FE00003FF001F800003FF003F000003FF007E000003FF00FC000003FF03 F8000003FF07E0000003FF0FC0000003FF1FC0000003FF7FE0000003FFFFF0000003FFFF F8000003FFFFFC000003FFFFFC000003FFCFFE000003FF0FFF000003FE07FF800003FE03 FF800003FE01FFC00003FE00FFE00003FE00FFF00003FE007FF00003FE003FF80003FE00 1FFC0003FE001FFE0003FE000FFE0003FE000FFF00FFFFF83FFFF8FFFFF83FFFF8FFFFF8 3FFFF8FFFFF83FFFF82D3A7EB932>I<00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFF FCFFFFFCFFFFFCFFFFFC163A7DB91B>I<00FE007FE0000FFC0000FFFE01FFFC003FFF80 00FFFE07FFFF00FFFFE000FFFE1F81FF83F03FF000FFFE3C00FF87801FF00007FE7800FF CF001FF80003FEF000FFDE001FF80003FFE0007FFC000FFC0003FFC0007FF8000FFC0003 FFC0007FF8000FFC0003FF80007FF0000FFC0003FF80007FF0000FFC0003FF00007FE000 0FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00 007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC 0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007F E0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003 FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE000 0FFC0003FF00007FE0000FFC0003FF00007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC 1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF04C257DA451>I<00FE 007FC000FFFE03FFF800FFFE0FFFFE00FFFE1F03FF00FFFE3C01FF8007FE7801FF8003FE F000FF8003FFE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFF FC3FFFFF30257DA435>I<0001FFC00000000FFFF80000007FFFFF000000FF80FF800003 FE003FE00007FC001FF0000FF8000FF8001FF00007FC001FF00007FC003FF00007FE003F E00003FE007FE00003FF007FE00003FF007FE00003FF00FFE00003FF80FFE00003FF80FF E00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FF E00003FF807FE00003FF007FE00003FF007FE00003FF003FE00003FE003FF00007FE001F F00007FC001FF00007FC000FF8000FF80007FC001FF00003FE003FE00001FF80FFC00000 7FFFFF0000001FFFFC00000001FFC0000029257DA430>I<00FF01FF8000FFFF0FFFF000 FFFF3FFFFC00FFFFFE07FF00FFFFF001FF8003FFE000FFC003FF80007FE003FF00007FF0 03FF00003FF803FF00003FF803FF00001FFC03FF00001FFC03FF00001FFC03FF00000FFE 03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE 03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00001FFC03FF00001FFC 03FF00001FF803FF00003FF803FF00003FF003FF80007FF003FFC0007FE003FFE000FFC0 03FFF003FF8003FFFC07FE0003FF3FFFF80003FF0FFFE00003FF03FF000003FF00000000 03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000 03FF0000000003FF0000000003FF0000000003FF0000000003FF00000000FFFFFC000000 FFFFFC000000FFFFFC000000FFFFFC0000002F357EA435>I<0001FF000780000FFFE00F 80003FFFF81F8000FFC07C3F8003FF803E3F8007FE000F7F800FFC0007FF801FFC0007FF 801FF80003FF803FF80003FF803FF00001FF807FF00001FF807FF00001FF807FE00001FF 80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF 80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF807FF00001FF807FF00001FF 807FF00001FF803FF80001FF803FF80003FF801FFC0003FF800FFC0007FF8007FE000FFF 8003FF003FFF8001FFC0FDFF80007FFFF1FF80001FFFC1FF800001FF01FF8000000001FF 8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF 8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF800000007FFF FE0000007FFFFE0000007FFFFE0000007FFFFE2F357DA432>I<00FE03F000FFFE0FFE00 FFFE3FFF00FFFE7C7F80FFFEF8FFC007FEF0FFC003FFE0FFC003FFC0FFC003FFC0FFC003 FF807F8003FF803F0003FF800C0003FF80000003FF00000003FF00000003FF00000003FF 00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000 0003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000022257EA427 >I<003FF03803FFFEF80FFFFFF81FC00FF83F0003F87E0001F87C0000F8FC0000F8FC00 0078FE000078FF000078FF800000FFFC0000FFFFE0007FFFFC007FFFFF803FFFFFC01FFF FFF00FFFFFF803FFFFF800FFFFFC001FFFFC00007FFE000007FEF00001FEF00000FEF800 00FEF800007EFC00007EFC00007CFE0000FCFF0000F8FF8001F8FFF007F0FFFFFFC0F8FF FF00E01FF8001F257DA426>I<000F0000000F0000000F0000000F0000000F0000001F00 00001F0000001F0000001F0000003F0000003F0000007F000000FF000000FF000001FF00 0007FF00001FFFFFE0FFFFFFE0FFFFFFE0FFFFFFE003FF000003FF000003FF000003FF00 0003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00 0003FF000003FF000003FF000003FF000003FF000003FF007803FF007803FF007803FF00 7803FF007803FF007803FF007803FF007803FF00F801FF80F001FF81F000FFC3E0003FFF C0001FFF800003FE001D357EB425>I<00FF00003FC0FFFF003FFFC0FFFF003FFFC0FFFF 003FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0001FFC003FF0001FFC003FF0003FFC003FF0003FFC001FF0007FFC001FF800FFFE000FF C03EFFFF007FFFFCFFFF001FFFF0FFFF0003FF80FFFF30257DA435>IIIII<3F FFFFFFC03FFFFFFFC03FFFFFFFC03FF003FF803F8007FF803F000FFF003E000FFE003C00 1FFC007C003FFC007C003FF80078007FF0007800FFF0007800FFE0007801FFC0007803FF C0000007FF80000007FF0000000FFE0000001FFE0000001FFC0000003FF80000007FF803 C000FFF003C000FFE003C001FFC003C003FFC003C003FF8007C007FF0007C00FFF0007C0 0FFE000F801FFC000F803FFC001F807FF8003F807FF001FF80FFFFFFFF80FFFFFFFF80FF FFFFFF8022257DA42A>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fn ecbx2488 24.88 20 /Fn 20 121 df[<000000007FFF00000000000000000FFFFFF8000000000000007FFFFF FF80000000000003FFFFFFFFF000000000000FFFFFFFFFFC00000000003FFFFFFFFFFF00 000000007FFFFFFFFFFFC000000001FFF800FFFFFFF000000003FF80000FFFFFFC000000 0FFC000001FFFFFE0000001FF00000007FFFFF0000003FE00000003FFFFF8000007F8000 00001FFFFFE00000FF0000000007FFFFF00001FE0000000003FFFFF00003FC0000000001 FFFFF80003F80000000000FFFFFC0007F00000000000FFFFFE000FF000000000007FFFFF 000FE000000000003FFFFF001FC000000000003FFFFF801FC000000000001FFFFF803F80 00000000001FFFFFC03FB800000000000FFFFFC03FFF80000000000FFFFFE07FFFC00000 000007FFFFE07FFFF00000000007FFFFE07FFFF80000000007FFFFF07FFFF80000000003 FFFFF0FFFFFC0000000003FFFFF0FFFFFC0000000003FFFFF0FFFFFE0000000003FFFFF8 FFFFFE0000000003FFFFF8FFFFFE0000000001FFFFF8FFFFFE0000000001FFFFF8FFFFFE 0000000001FFFFF8FFFFFE0000000001FFFFF8FFFFFE0000000001FFFFF8FFFFFE000000 0001FFFFF87FFFFC0000000001FFFFF87FFFFC0000000001FFFFF83FFFF80000000001FF FFF81FFFF00000000003FFFFF80FFFE00000000003FFFFF807FFC00000000003FFFFF001 FF000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF000000000 00000007FFFFE00000000000000007FFFFE00000000000000007FFFFE000000000000000 07FFFFC0000000000000000FFFFFC0000000000000000FFFFF80000000000000001FFFFF 80000000000000001FFFFF00000000000000001FFFFF00000000000000003FFFFE000000 00000000003FFFFE00000000000000007FFFFC00000000000000007FFFF8000000000000 0000FFFFF00000000000000000FFFFF00000000000000001FFFFE00000000000000003FF FFC00000000000000003FFFF800000000000000007FFFF000000000000000007FFFE0000 0000000000000FFFFC00000000000000001FFFF800000000000000001FFFF00000000000 0000003FFFE000000000000000007FFFC00000000000000000FFFF800000000000000000 FFFF000000000000000001FFFE000000000000000003FFF8000000000000000007FFF000 000000000000000FFFE000000000000000000FFFC000000000000000001FFF8000000000 000000003FFE0000000000000000007FFC000000000000000000FFF80000000000000000 01FFF0000000000000000003FFE0000000000000000003FF80000000000000000007FF00 00000000000000000FFE0000000000000000001FFC0000000000000000003FF800000000 00000000007FF0000000000000000000FFE0000000000000000001FFC000000000000000 0003FF0000000001F800000003FE0000000001F800000007FC0000000001F80000000FF8 0000000001F80000001FF00000000003F00000003FE00000000003F00000007FC0000000 0003F0000000FF800000000003F0000001FF000000000003F0000003FE000000000003F0 000007FC000000000007F0000007F0000000000007F000000FE0000000000007E000001F C0000000000007E000003F8000000000000FE000007F0000000000000FE00000FE000000 0000000FE00001FC0000000000001FE00003F80000000000001FE00007F0000000000003 FFE00007FFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFC0001FFFFFFFFFFFFFFFFFC000 3FFFFFFFFFFFFFFFFFC0007FFFFFFFFFFFFFFFFFC000FFFFFFFFFFFFFFFFFFC001FFFFFF FFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFC007FFFFFFFFFFFFFFFFFFC00FFFFFFFFFFFFF FFFFFF800FFFFFFFFFFFFFFFFFFF801FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF 807FFFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFFFF80FFFF FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF FFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF00>85 135 117 262 108 50 D[<00000000000000003FFFE00000000000E0000000000000001FFFFFFF0000000001 E000000000000003FFFFFFFFF000000003E00000000000003FFFFFFFFFFC00000007E000 0000000001FFFFFFFFFFFF8000000FE000000000000FFFFFFFFFFFFFE000001FE0000000 00003FFFFFFFFFFFFFF800001FE00000000001FFFFFFFF0001FFFE00003FE00000000007 FFFFFFC000000FFF00007FE0000000001FFFFFFC00000001FFC000FFE0000000007FFFFF C0000000007FE001FFE000000000FFFFFF00000000001FF803FFE000000003FFFFF80000 00000007FC07FFE000000007FFFFE0000000000003FE07FFE00000001FFFFF8000000000 0000FF0FFFE00000003FFFFF000000000000007F9FFFE00000007FFFFC00000000000000 3FFFFFE0000001FFFFF8000000000000001FFFFFE0000003FFFFF00000000000000007FF FFE0000007FFFFC00000000000000003FFFFE000000FFFFF800000000000000001FFFFE0 00001FFFFF000000000000000001FFFFE000003FFFFE000000000000000000FFFFE00000 7FFFFC0000000000000000007FFFE00000FFFFF80000000000000000003FFFE00001FFFF F80000000000000000001FFFE00001FFFFF00000000000000000001FFFE00003FFFFE000 00000000000000000FFFE00007FFFFC000000000000000000007FFE0000FFFFFC0000000 00000000000007FFE0000FFFFF8000000000000000000003FFE0001FFFFF000000000000 0000000003FFE0001FFFFF0000000000000000000001FFE0003FFFFE0000000000000000 000001FFE0007FFFFE0000000000000000000000FFE0007FFFFC00000000000000000000 00FFE000FFFFFC00000000000000000000007FE000FFFFFC00000000000000000000007F E001FFFFF800000000000000000000007FE001FFFFF800000000000000000000003FE003 FFFFF000000000000000000000003FE003FFFFF000000000000000000000001FE003FFFF F000000000000000000000001FE007FFFFE000000000000000000000001FE007FFFFE000 000000000000000000001FE00FFFFFE000000000000000000000000FE00FFFFFE0000000 00000000000000000FE00FFFFFC000000000000000000000000FE01FFFFFC00000000000 0000000000000FE01FFFFFC000000000000000000000000FE01FFFFFC000000000000000 0000000007E01FFFFFC0000000000000000000000007E03FFFFF80000000000000000000 000007E03FFFFF80000000000000000000000007E03FFFFF800000000000000000000000 00003FFFFF80000000000000000000000000007FFFFF8000000000000000000000000000 7FFFFF80000000000000000000000000007FFFFF80000000000000000000000000007FFF FF80000000000000000000000000007FFFFF00000000000000000000000000007FFFFF00 000000000000000000000000007FFFFF0000000000000000000000000000FFFFFF000000 0000000000000000000000FFFFFF0000000000000000000000000000FFFFFF0000000000 000000000000000000FFFFFF0000000000000000000000000000FFFFFF00000000000000 00000000000000FFFFFF0000000000000000000000000000FFFFFF000000000000000000 0000000000FFFFFF0000000000000000000000000000FFFFFF0000000000000000000000 000000FFFFFF0000000000000000000000000000FFFFFF00000000000000000000000000 00FFFFFF0000000000000000000000000000FFFFFF0000000000000000000000000000FF FFFF0000000000000000000000000000FFFFFF0000000000000000000000000000FFFFFF 0000000000000000000000000000FFFFFF0000000000000000000000000000FFFFFF0000 000000000000000000000000FFFFFF0000000000000000000000000000FFFFFF00000000 000000000000000000007FFFFF00000000000000000000000000007FFFFF000000000000 00000000000000007FFFFF00000000000000000000000000007FFFFF8000000000000000 0000000000007FFFFF80000000000000000000000000007FFFFF80000000000000000000 000000007FFFFF80000000000000000000000000003FFFFF800000000000000000000000 00003FFFFF80000000000000000000000000003FFFFF8000000000000000000000000000 3FFFFF80000000000000000000000000001FFFFFC0000000000000000000000000001FFF FFC0000000000000000000000007E01FFFFFC0000000000000000000000007E01FFFFFC0 000000000000000000000007E00FFFFFC0000000000000000000000007E00FFFFFE00000 00000000000000000007E00FFFFFE0000000000000000000000007E007FFFFE000000000 0000000000000007E007FFFFE000000000000000000000000FE003FFFFF0000000000000 00000000000FC003FFFFF000000000000000000000000FC003FFFFF00000000000000000 0000000FC001FFFFF800000000000000000000000FC001FFFFF800000000000000000000 001FC000FFFFFC00000000000000000000001F8000FFFFFC00000000000000000000001F 80007FFFFC00000000000000000000003F80007FFFFE00000000000000000000003F0000 3FFFFE00000000000000000000003F00001FFFFF00000000000000000000007F00001FFF FF80000000000000000000007E00000FFFFF8000000000000000000000FE00000FFFFFC0 00000000000000000000FC000007FFFFC000000000000000000001FC000003FFFFE00000 0000000000000003F8000001FFFFF000000000000000000003F8000001FFFFF800000000 000000000007F0000000FFFFF80000000000000000000FF00000007FFFFC000000000000 0000000FE00000003FFFFE0000000000000000001FC00000001FFFFF0000000000000000 003F800000000FFFFF8000000000000000007F8000000007FFFFC00000000000000000FF 0000000003FFFFF00000000000000001FE0000000001FFFFF80000000000000003FC0000 0000007FFFFC0000000000000007F800000000003FFFFF000000000000001FF000000000 001FFFFFC00000000000003FE0000000000007FFFFE0000000000000FFC0000000000003 FFFFF8000000000001FF00000000000000FFFFFF000000000007FE000000000000007FFF FFE0000000001FFC000000000000001FFFFFFC00000000FFF00000000000000007FFFFFF C0000007FFE00000000000000001FFFFFFFF0000FFFF8000000000000000003FFFFFFFFF FFFFFE0000000000000000000FFFFFFFFFFFFFF800000000000000000001FFFFFFFFFFFF E0000000000000000000003FFFFFFFFFFF000000000000000000000003FFFFFFFFF80000 000000000000000000001FFFFFFF80000000000000000000000000003FFFF00000000000 00>131 146 116 271 156 67 D[146 142 121 269 166 I[67 142 122 269 79 73 D[188 142 120 269 205 77 D[128 142 121 269 148 80 D<000000007FFF800000000000000000000FFFFFFC0000000000 00000000FFFFFFFFC00000000000000003FFFFFFFFF8000000000000000FFFFFFFFFFE00 0000000000003FFF8007FFFF80000000000000FFF80000FFFFC0000000000001FF800000 3FFFF0000000000007FE0000001FFFF800000000000FF80000000FFFFE00000000001FF0 00000007FFFF00000000001FC000000003FFFF80000000003FF800000001FFFFC0000000 007FFE00000000FFFFC0000000007FFF80000000FFFFE000000000FFFFC00000007FFFF0 00000000FFFFC00000007FFFF000000000FFFFE00000003FFFF800000001FFFFE0000000 3FFFF800000001FFFFF00000003FFFFC00000001FFFFF00000001FFFFC00000001FFFFF0 0000001FFFFE00000001FFFFF00000001FFFFE00000001FFFFF00000001FFFFE00000001 FFFFF00000000FFFFE00000001FFFFF00000000FFFFF00000000FFFFE00000000FFFFF00 000000FFFFE00000000FFFFF000000007FFFC00000000FFFFF000000007FFFC00000000F FFFF000000003FFF800000000FFFFF000000000FFE000000000FFFFF0000000003F80000 00000FFFFF000000000000000000000FFFFF000000000000000000000FFFFF0000000000 00000000000FFFFF000000000000000000000FFFFF000000000000000000000FFFFF0000 00000000000000000FFFFF000000000000000000000FFFFF000000000000000000000FFF FF000000000000000000000FFFFF00000000000000000003FFFFFF00000000000000001F FFFFFFFF000000000000000FFFFFFFFFFF00000000000000FFFFFFFFFFFF000000000000 0FFFFFFC0FFFFF0000000000007FFFFF000FFFFF000000000003FFFFE0000FFFFF000000 00001FFFFF00000FFFFF00000000007FFFF800000FFFFF0000000001FFFFE000000FFFFF 0000000007FFFF8000000FFFFF000000000FFFFE0000000FFFFF000000003FFFFC000000 0FFFFF000000007FFFF80000000FFFFF00000000FFFFF00000000FFFFF00000001FFFFE0 0000000FFFFF00000003FFFFC00000000FFFFF00000007FFFF800000000FFFFF0000000F FFFF000000000FFFFF0000000FFFFF000000000FFFFF0000001FFFFE000000000FFFFF00 00001FFFFE000000000FFFFF0000003FFFFC000000000FFFFF0000003FFFFC000000000F FFFF0007E07FFFF8000000000FFFFF0007E07FFFF8000000000FFFFF0007E07FFFF80000 00000FFFFF0007E0FFFFF8000000000FFFFF0007E0FFFFF0000000000FFFFF0007E0FFFF F0000000001FFFFF0007E0FFFFF0000000001FFFFF0007E0FFFFF0000000001FFFFF0007 E0FFFFF0000000001FFFFF0007E0FFFFF0000000003FFFFF0007E0FFFFF0000000003BFF FF0007E0FFFFF0000000007BFFFF0007E0FFFFF8000000007BFFFF0007E07FFFF8000000 00F3FFFF0007E07FFFFC00000000F3FFFF0007E03FFFFC00000001E3FFFF800FE03FFFFE 00000003C1FFFF800FC01FFFFF00000007C1FFFF800FC00FFFFF0000000F80FFFFC01FC0 0FFFFF8000001F00FFFFE03F8007FFFFE000003E007FFFF07F0001FFFFF00000FC007FFF FFFF0000FFFFFC0003F8003FFFFFFE00003FFFFF803FF0001FFFFFFC00000FFFFFFFFFC0 000FFFFFF8000003FFFFFFFF000003FFFFF00000007FFFFFFC000001FFFFC00000000FFF FFF00000007FFF00000000003FFF000000000FF80000635F79DD6C>97 D<0000000001FFFC00000000000000003FFFFFE000000000000003FFFFFFFE0000000000 001FFFFFFFFF8000000000007FFFFFFFFFE00000000001FFFFC003FFF80000000007FFFC 00003FFE000000000FFFF0000003FF000000003FFFC0000000FFC00000007FFF80000000 3FE0000001FFFF000000001FF0000003FFFE0000000007F0000007FFFC000000003FF800 000FFFF800000000FFFC00001FFFF000000003FFFC00003FFFF000000007FFFE00003FFF E000000007FFFE00007FFFC00000000FFFFE0000FFFFC00000000FFFFF0000FFFF800000 001FFFFF0001FFFF800000001FFFFF0003FFFF000000001FFFFF0003FFFF000000001FFF FF0007FFFF000000001FFFFF0007FFFE000000001FFFFF000FFFFE000000001FFFFF000F FFFE000000000FFFFE001FFFFE000000000FFFFE001FFFFC0000000007FFFC001FFFFC00 00000007FFFC003FFFFC0000000003FFF8003FFFFC0000000000FFE0003FFFFC00000000 003F80003FFFFC00000000000000007FFFFC00000000000000007FFFF800000000000000 007FFFF800000000000000007FFFF800000000000000007FFFF800000000000000007FFF F80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000 000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000 000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000 FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8 0000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8000000 00000000007FFFF800000000000000007FFFF800000000000000007FFFF8000000000000 00007FFFFC00000000000000007FFFFC00000000000000007FFFFC00000000000000003F FFFC00000000000000003FFFFC00000000000000003FFFFC00000000000000001FFFFE00 000000000000001FFFFE00000000000000001FFFFE00000000000000000FFFFE00000000 000000000FFFFF0000000000000FC007FFFF0000000000000FC007FFFF0000000000001F C003FFFF8000000000001F8003FFFF8000000000001F8001FFFFC000000000003F8001FF FFC000000000003F0000FFFFE000000000007F00007FFFE000000000007E00007FFFF000 00000000FE00003FFFF80000000001FC00001FFFFC0000000003F800000FFFFC00000000 03F8000007FFFE0000000007F0000003FFFF000000000FE0000001FFFFC00000001FC000 0000FFFFE00000007F800000003FFFF8000000FF000000001FFFFC000003FC0000000007 FFFF80000FF80000000001FFFFF800FFE000000000007FFFFFFFFFC000000000001FFFFF FFFF00000000000003FFFFFFF8000000000000003FFFFFC00000000000000001FFF80000 0000525F79DD60>99 D[<000000000000000000000FF0000000000000000000001FFFFF F00000000000000000001FFFFFFFF00000000000000000001FFFFFFFF000000000000000 00001FFFFFFFF00000000000000000001FFFFFFFF00000000000000000001FFFFFFFF000 00000000000000001FFFFFFFF00000000000000000001FFFFFFFF0000000000000000000 0007FFFFF00000000000000000000001FFFFF00000000000000000000000FFFFF0000000 00000000000000007FFFF000000000000000000000007FFFF00000000000000000000000 7FFFF000000000000000000000007FFFF000000000000000000000007FFFF00000000000 0000000000007FFFF000000000000000000000007FFFF000000000000000000000007FFF F000000000000000000000007FFFF000000000000000000000007FFFF000000000000000 000000007FFFF000000000000000000000007FFFF000000000000000000000007FFFF000 000000000000000000007FFFF000000000000000000000007FFFF0000000000000000000 00007FFFF000000000000000000000007FFFF000000000000000000000007FFFF0000000 00000000000000007FFFF000000000000000000000007FFFF00000000000000000000000 7FFFF000000000000000000000007FFFF000000000000000000000007FFFF00000000000 0000000000007FFFF000000000000000000000007FFFF000000000000000000000007FFF F000000000000000000000007FFFF000000000000000000000007FFFF000000000000000 000000007FFFF000000000000000000000007FFFF000000000000000000000007FFFF000 000000000000000000007FFFF000000000000000000000007FFFF0000000000000000000 00007FFFF000000000000000000000007FFFF000000000000000000000007FFFF0000000 00000000000000007FFFF000000000000000000000007FFFF000000000000001FFF00000 7FFFF00000000000007FFFFF80007FFFF0000000000003FFFFFFF0007FFFF00000000000 1FFFFFFFFC007FFFF000000000007FFFFFFFFF007FFFF00000000001FFFFE003FFC07FFF F00000000007FFFE00003FE07FFFF0000000001FFFF800000FF87FFFF0000000003FFFE0 000003FC7FFFF000000000FFFF80000000FE7FFFF000000001FFFF000000007F7FFFF000 000003FFFE000000003FFFFFF000000007FFFC000000001FFFFFF00000000FFFF8000000 000FFFFFF00000001FFFF00000000007FFFFF00000003FFFE00000000003FFFFF0000000 7FFFE00000000001FFFFF00000007FFFC00000000001FFFFF0000000FFFFC00000000000 FFFFF0000001FFFF800000000000FFFFF0000001FFFF800000000000FFFFF0000003FFFF 000000000000FFFFF0000003FFFF000000000000FFFFF0000007FFFE000000000000FFFF F0000007FFFE000000000000FFFFF000000FFFFE000000000000FFFFF000000FFFFE0000 00000000FFFFF000001FFFFC000000000000FFFFF000001FFFFC000000000000FFFFF000 001FFFFC000000000000FFFFF000003FFFFC000000000000FFFFF000003FFFFC00000000 0000FFFFF000003FFFFC000000000000FFFFF000007FFFF8000000000000FFFFF000007F FFF8000000000000FFFFF000007FFFF8000000000000FFFFF000007FFFF8000000000000 FFFFF000007FFFF8000000000000FFFFF000007FFFF8000000000000FFFFF00000FFFFF8 000000000000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF8000000000000FFFF F00000FFFFF8000000000000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF80000 00000000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF8000000000000FFFFF000 00FFFFF8000000000000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF800000000 0000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF8000000000000FFFFF00000FF FFF8000000000000FFFFF00000FFFFF8000000000000FFFFF00000FFFFF8000000000000 FFFFF00000FFFFF8000000000000FFFFF000007FFFF8000000000000FFFFF000007FFFF8 000000000000FFFFF000007FFFF8000000000000FFFFF000007FFFF8000000000000FFFF F000007FFFF8000000000000FFFFF000003FFFFC000000000000FFFFF000003FFFFC0000 00000000FFFFF000003FFFFC000000000000FFFFF000003FFFFC000000000000FFFFF000 001FFFFC000000000000FFFFF000001FFFFC000000000000FFFFF000001FFFFC00000000 0000FFFFF000000FFFFE000000000000FFFFF000000FFFFE000000000000FFFFF0000007 FFFE000000000000FFFFF0000007FFFE000000000000FFFFF0000003FFFF000000000000 FFFFF0000003FFFF000000000000FFFFF0000001FFFF800000000000FFFFF0000001FFFF 800000000001FFFFF0000000FFFFC00000000003FFFFF00000007FFFC00000000007FFFF F00000003FFFE00000000007FFFFF00000003FFFE0000000000FFFFFF00000001FFFF000 0000001FFFFFF00000000FFFF8000000003FFFFFF000000007FFFC000000007FFFFFF000 000003FFFE00000001FEFFFFF800000000FFFF00000003F8FFFFFC000000007FFFC00000 0FF0FFFFFF000000003FFFE000003FE0FFFFFFFFC000000FFFFC0000FF80FFFFFFFFC000 0003FFFF800FFF00FFFFFFFFC0000000FFFFFFFFFC00FFFFFFFFC00000003FFFFFFFF000 FFFFFFFFC00000000FFFFFFFC000FFFFFFFFC000000000FFFFFE0000FFFFFFFFC0000000 0007FFC00000FFFF800000>106 144 121 270 120 I<0000000003FFF8000000000000 00007FFFFFC000000000000007FFFFFFFC0000000000003FFFFFFFFF000000000000FFFF FFFFFFC00000000003FFFF807FFFF00000000007FFFC000FFFFC000000001FFFE00003FF FE000000003FFFC00000FFFF00000000FFFF0000007FFF80000001FFFE0000003FFFC000 0003FFFC0000001FFFE0000007FFF80000000FFFF000000FFFF000000007FFF800001FFF E000000007FFFC00003FFFE000000003FFFC00007FFFC000000003FFFE00007FFFC00000 0001FFFE0000FFFF8000000001FFFF0001FFFF8000000000FFFF0001FFFF0000000000FF FF8003FFFF0000000000FFFF8003FFFF00000000007FFFC007FFFE00000000007FFFC007 FFFE00000000007FFFC00FFFFE00000000007FFFE00FFFFC00000000003FFFE01FFFFC00 000000003FFFE01FFFFC00000000003FFFE01FFFFC00000000003FFFF03FFFFC00000000 003FFFF03FFFFC00000000003FFFF03FFFFC00000000001FFFF03FFFF800000000001FFF F07FFFF800000000001FFFF07FFFF800000000001FFFF87FFFF800000000001FFFF87FFF F800000000001FFFF87FFFF800000000001FFFF8FFFFF800000000001FFFF8FFFFF80000 0000001FFFF8FFFFF800000000001FFFF8FFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFF FFFFF8FFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFF8FFFFF80000000000000000 FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8 0000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8000000 0000000000FFFFF80000000000000000FFFFF800000000000000007FFFF8000000000000 00007FFFF800000000000000007FFFF800000000000000007FFFF800000000000000007F FFFC00000000000000003FFFFC00000000000000003FFFFC00000000000000003FFFFC00 000000000000001FFFFC00000000000000001FFFFC00000000000000001FFFFE00000000 000000000FFFFE00000000000000000FFFFE00000000000000000FFFFE00000000000001 F807FFFF00000000000001F807FFFF00000000000003F803FFFF00000000000003F001FF FF80000000000003F001FFFF80000000000007F000FFFFC0000000000007E0007FFFC000 000000000FE0007FFFE000000000001FC0003FFFE000000000001F80001FFFF000000000 003F80000FFFF800000000007F000007FFFC0000000000FE000003FFFE0000000001FC00 0001FFFF0000000003F8000000FFFF8000000007F00000007FFFE00000001FE00000001F FFF80000007FC00000000FFFFE000001FF8000000003FFFFC00007FE0000000000FFFFFC 00FFFC00000000003FFFFFFFFFF000000000000FFFFFFFFFC0000000000001FFFFFFFE00 0000000000001FFFFFF00000000000000000FFFF00000000555F7ADD62>I<0000000000 00000000001FE000000000003FFF80000001FFF80000000007FFFFFC00000FFFFE000000 007FFFFFFFC0003FFFFF00000001FFFFFFFFF000FFFFFF80000007FFF803FFFC03FFC3FF 8000001FFFC0007FFF07FC07FFC000007FFF00001FFFCFE007FFC00000FFFC000007FFFF 0007FFC00003FFF8000003FFFE000FFFC00007FFF0000001FFFC0007FFC0000FFFF00000 01FFFE0007FFC0001FFFE0000000FFFF0007FFC0001FFFC00000007FFF0007FF80003FFF C00000007FFF8003FF00007FFFC00000007FFFC001FE00007FFF800000003FFFC0003800 00FFFF800000003FFFE000000000FFFF800000003FFFE000000001FFFF800000003FFFF0 00000001FFFF000000001FFFF000000003FFFF000000001FFFF800000003FFFF00000000 1FFFF800000003FFFF000000001FFFF800000003FFFF000000001FFFF800000007FFFF00 0000001FFFFC00000007FFFF000000001FFFFC00000007FFFF000000001FFFFC00000007 FFFF000000001FFFFC00000007FFFF000000001FFFFC00000007FFFF000000001FFFFC00 000007FFFF000000001FFFFC00000007FFFF000000001FFFFC00000007FFFF000000001F FFFC00000007FFFF000000001FFFFC00000007FFFF000000001FFFFC00000003FFFF0000 00001FFFF800000003FFFF000000001FFFF800000003FFFF000000001FFFF800000003FF FF000000001FFFF800000001FFFF000000001FFFF000000001FFFF800000003FFFF00000 0000FFFF800000003FFFE000000000FFFF800000003FFFE0000000007FFF800000003FFF C0000000007FFFC00000007FFFC0000000003FFFC00000007FFF80000000001FFFC00000 007FFF00000000001FFFE0000000FFFF00000000000FFFF0000001FFFE000000000007FF F0000001FFFC000000000003FFF8000003FFF8000000000001FFFC000007FFE000000000 0001FFFF00001FFFC0000000000003DFFFC0007FFF0000000000000787FFF803FFFC0000 000000000F81FFFFFFFFF00000000000000F007FFFFFFFC00000000000001F0007FFFFFC 000000000000001F00003FFF80000000000000003E0000000000000000000000003E0000 000000000000000000007E0000000000000000000000007E000000000000000000000000 7E000000000000000000000000FE000000000000000000000000FE000000000000000000 000000FE000000000000000000000000FF000000000000000000000000FF000000000000 000000000000FF800000000000000000000000FF800000000000000000000000FFC00000 000000000000000000FFE00000000000000000000000FFE00000000000000000000000FF F80000000000000000000000FFFC0000000000000000000000FFFF800000000000000000 0000FFFFFFFFFFFFFC0000000000007FFFFFFFFFFFFFF800000000007FFFFFFFFFFFFFFF 80000000007FFFFFFFFFFFFFFFF0000000003FFFFFFFFFFFFFFFFC000000003FFFFFFFFF FFFFFFFF000000001FFFFFFFFFFFFFFFFFC00000001FFFFFFFFFFFFFFFFFF00000000FFF FFFFFFFFFFFFFFF800000007FFFFFFFFFFFFFFFFFE00000003FFFFFFFFFFFFFFFFFF0000 0001FFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFF800000007FFFFFFFFFFFFFFF FFC0000000FFFFFFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFFFFFFE000001FFFFFFFFFFF FFFFFFFFF000007FFF0000000007FFFFFFF00001FFFC00000000001FFFFFF80003FFF000 0000000003FFFFF80007FFE00000000000007FFFF8000FFFC00000000000003FFFFC001F FFC00000000000000FFFFC003FFF8000000000000007FFFC003FFF8000000000000007FF FC007FFF0000000000000003FFFE007FFF0000000000000001FFFE007FFF000000000000 0001FFFE00FFFE0000000000000001FFFE00FFFE0000000000000000FFFE00FFFE000000 0000000000FFFE00FFFE0000000000000000FFFE00FFFE0000000000000000FFFE00FFFE 0000000000000000FFFE00FFFE0000000000000000FFFE00FFFE0000000000000000FFFE 00FFFF0000000000000001FFFE007FFF0000000000000001FFFC007FFF00000000000000 01FFFC007FFF8000000000000003FFFC003FFF8000000000000003FFF8003FFFC0000000 00000007FFF8001FFFC000000000000007FFF0000FFFE00000000000000FFFE00007FFF0 0000000000001FFFC00003FFF80000000000003FFF800001FFFC0000000000007FFF0000 00FFFE000000000000FFFE0000007FFF000000000001FFFC0000001FFFC00000000007FF F00000000FFFF0000000001FFFE000000003FFFE00000000FFFF8000000000FFFFC00000 07FFFE00000000001FFFFE0000FFFFF0000000000007FFFFFFFFFFFFC00000000000007F FFFFFFFFFC0000000000000007FFFFFFFFC000000000000000000FFFFFE0000000000062 887ADD6C>103 D[<00007F8000000001FFE000000003FFF000000007FFF80000000FFFFC 0000001FFFFE0000003FFFFF0000003FFFFF0000007FFFFF8000007FFFFF8000007FFFFF 8000007FFFFF8000007FFFFF8000007FFFFF8000007FFFFF8000007FFFFF8000003FFFFF 0000003FFFFF0000001FFFFE0000000FFFFC00000007FFF800000003FFF000000001FFE0 000000007F80000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000007F8000007FFFFF 8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF 8000FFFFFFFF8000003FFFFF80000007FFFF80000007FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF 8000FFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFF FFFCFFFFFFFFFFFC>46 144 121 271 60 105 D[<0000007F800000FFFFFF8000FFFFFF FF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFFFF8000FFFFFF FF8000003FFFFF80000007FFFF80000007FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FFFF80000003FF FF80000003FFFF8000FFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFF FFFFFEFFFFFFFFFFFEFFFFFFFFFFFE>47 143 121 270 60 108 D<0000007F8000001FFF000000000001FFF00000000000FFFFFF800001FFFFF800000000 1FFFFF80000000FFFFFFFF80000FFFFFFF00000000FFFFFFF0000000FFFFFFFF80003FFF FFFFC0000003FFFFFFFC000000FFFFFFFF8000FFFFFFFFF000000FFFFFFFFF000000FFFF FFFF8001FF807FFFF800001FF807FFFF800000FFFFFFFF8007F8001FFFFE00007F8001FF FFE00000FFFFFFFF800FE00007FFFF0000FE00007FFFF00000FFFFFFFF801F800003FFFF 8001F800003FFFF80000003FFFFF803F000003FFFF8003F000003FFFF80000000FFFFF80 7C000001FFFFC007C000001FFFFC00000007FFFF80F8000001FFFFE00F8000001FFFFE00 000003FFFF81F0000000FFFFE01F0000000FFFFE00000003FFFF81E0000000FFFFF01E00 00000FFFFF00000003FFFF83C00000007FFFF03C00000007FFFF00000003FFFF87C00000 007FFFF07C00000007FFFF00000003FFFF87800000007FFFF87800000007FFFF80000003 FFFF8F000000007FFFF8F000000007FFFF80000003FFFF8F000000007FFFF8F000000007 FFFF80000003FFFF9E000000003FFFF9E000000003FFFF80000003FFFF9C000000003FFF F9C000000003FFFF80000003FFFFBC000000003FFFFFC000000003FFFFC0000003FFFFB8 000000003FFFFF8000000003FFFFC0000003FFFFF8000000003FFFFF8000000003FFFFC0 000003FFFFF8000000003FFFFF8000000003FFFFC0000003FFFFF0000000003FFFFF0000 000003FFFFC0000003FFFFF0000000003FFFFF0000000003FFFFC0000003FFFFF0000000 003FFFFF0000000003FFFFC0000003FFFFE0000000003FFFFE0000000003FFFFC0000003 FFFFE0000000003FFFFE0000000003FFFFC0000003FFFFE0000000003FFFFE0000000003 FFFFC0000003FFFFE0000000003FFFFE0000000003FFFFC0000003FFFFE0000000003FFF FE0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0 000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0 000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000 000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000 003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003 FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003 FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFF FC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0 000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0 000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000 000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000 003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003 FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003 FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFF FC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0 000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0 000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000 000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000 003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003 FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003 FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFF FC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0 000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0 000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000 000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000 003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003 FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003 FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFF FC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0 000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000000003FFFFC0 000003FFFFC0000000003FFFFC0000000003FFFFC0000003FFFFC0000000003FFFFC0000 000003FFFFC000FFFFFFFFFFFF000FFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFF000F FFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFF000FFFFFFFFFFFFFFFF FFFFFFFF000FFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFF000FFFF FFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFF FFFFF000FFFFFFFFFFFFA85D79DCB5>I<0000007F8000003FFF000000000000FFFFFF80 0003FFFFF000000000FFFFFFFF80000FFFFFFE00000000FFFFFFFF80003FFFFFFF800000 00FFFFFFFF8000FFFFFFFFE0000000FFFFFFFF8001FF00FFFFF8000000FFFFFFFF8007F8 001FFFFC000000FFFFFFFF800FC0000FFFFE000000FFFFFFFF801F800007FFFF00000000 3FFFFF803E000007FFFF000000000FFFFF807C000003FFFF8000000007FFFF80F8000001 FFFFC000000003FFFF81F0000001FFFFC000000003FFFF81E0000001FFFFE000000003FF FF83C0000000FFFFE000000003FFFF8780000000FFFFE000000003FFFF8780000000FFFF F000000003FFFF8F00000000FFFFF000000003FFFF8E00000000FFFFF000000003FFFF9E 000000007FFFF000000003FFFF9C000000007FFFF000000003FFFFBC000000007FFFF800 000003FFFFB8000000007FFFF800000003FFFFF8000000007FFFF800000003FFFFF80000 00007FFFF800000003FFFFF0000000007FFFF800000003FFFFF0000000007FFFF8000000 03FFFFF0000000007FFFF800000003FFFFE0000000007FFFF800000003FFFFE000000000 7FFFF800000003FFFFE0000000007FFFF800000003FFFFE0000000007FFFF800000003FF FFE0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FF FFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FF FFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF80000FFFFFF FFFFFF001FFFFFFFFFFFE0FFFFFFFFFFFF001FFFFFFFFFFFE0FFFFFFFFFFFF001FFFFFFF FFFFE0FFFFFFFFFFFF001FFFFFFFFFFFE0FFFFFFFFFFFF001FFFFFFFFFFFE0FFFFFFFFFF FF001FFFFFFFFFFFE0FFFFFFFFFFFF001FFFFFFFFFFFE06B5D79DC78>I<0000000000FF FE0000000000000000003FFFFFF80000000000000001FFFFFFFF000000000000000FFFFF FFFFE00000000000003FFFFFFFFFF8000000000001FFFFC007FFFF000000000003FFFC00 007FFF80000000000FFFF000001FFFE0000000003FFFC0000007FFF8000000007FFF0000 0001FFFC00000000FFFE00000000FFFE00000001FFFC000000007FFF00000003FFF80000 00003FFF80000007FFF0000000001FFFC000000FFFE0000000000FFFE000001FFFE00000 00000FFFF000003FFFC00000000007FFF800007FFF800000000003FFFC00007FFF800000 000003FFFC0000FFFF000000000001FFFE0001FFFF000000000001FFFF0001FFFF000000 000001FFFF0003FFFE000000000000FFFF8003FFFE000000000000FFFF8007FFFE000000 000000FFFFC007FFFC0000000000007FFFC00FFFFC0000000000007FFFE00FFFFC000000 0000007FFFE01FFFFC0000000000007FFFF01FFFFC0000000000007FFFF01FFFFC000000 0000007FFFF03FFFFC0000000000007FFFF83FFFF80000000000003FFFF83FFFF8000000 0000003FFFF83FFFF80000000000003FFFF87FFFF80000000000003FFFFC7FFFF8000000 0000003FFFFC7FFFF80000000000003FFFFC7FFFF80000000000003FFFFC7FFFF8000000 0000003FFFFCFFFFF80000000000003FFFFEFFFFF80000000000003FFFFEFFFFF8000000 0000003FFFFEFFFFF80000000000003FFFFEFFFFF80000000000003FFFFEFFFFF8000000 0000003FFFFEFFFFF80000000000003FFFFEFFFFF80000000000003FFFFEFFFFF8000000 0000003FFFFEFFFFF80000000000003FFFFEFFFFF80000000000003FFFFEFFFFF8000000 0000003FFFFEFFFFF80000000000003FFFFEFFFFF80000000000003FFFFEFFFFF8000000 0000003FFFFEFFFFF80000000000003FFFFE7FFFF80000000000003FFFFC7FFFF8000000 0000003FFFFC7FFFF80000000000003FFFFC7FFFF80000000000003FFFFC7FFFF8000000 0000003FFFFC3FFFF80000000000003FFFF83FFFFC0000000000007FFFF83FFFFC000000 0000007FFFF83FFFFC0000000000007FFFF81FFFFC0000000000007FFFF01FFFFC000000 0000007FFFF01FFFFC0000000000007FFFF00FFFFE000000000000FFFFE00FFFFE000000 000000FFFFE007FFFE000000000000FFFFC007FFFE000000000000FFFFC003FFFF000000 000001FFFF8003FFFF000000000001FFFF8001FFFF000000000001FFFF0001FFFF800000 000003FFFF0000FFFF800000000003FFFE00007FFFC00000000007FFFC00003FFFC00000 000007FFF800003FFFE0000000000FFFF800001FFFF0000000001FFFF000000FFFF00000 00001FFFE0000007FFF8000000003FFFC0000003FFFC000000007FFF80000001FFFE0000 0000FFFF000000007FFF80000003FFFC000000003FFFC0000007FFF8000000000FFFF000 001FFFE00000000007FFFE0000FFFFC00000000001FFFFC007FFFF0000000000007FFFFF FFFFFC0000000000000FFFFFFFFFE000000000000003FFFFFFFF80000000000000003FFF FFF8000000000000000000FFFE00000000005F5F7ADD6C>I<0000003FFF800003800000 0FFFFFFC00078000007FFFFFFF001F800001FFFFFFFFE03F800007FFFFFFFFF07F80001F FFC0007FFCFF80007FFC00000FFFFF8000FFE0000001FFFF8001FFC00000007FFF8003FF 000000003FFF8007FE000000001FFF800FFE000000000FFF800FFC0000000007FF801FF8 0000000003FF801FF80000000001FF803FF80000000001FF803FF00000000000FF807FF0 00000000007F807FF000000000007F807FF000000000007F807FF000000000003F80FFF0 00000000003F80FFF800000000003F80FFF800000000003F80FFF800000000001F80FFFC 00000000001F80FFFE00000000001F80FFFF00000000001F80FFFF80000000001F80FFFF C0000000001F80FFFFE0000000000000FFFFF80000000000007FFFFF0000000000007FFF FFF000000000007FFFFFFF80000000003FFFFFFFFC000000003FFFFFFFFFE00000001FFF FFFFFFFE0000001FFFFFFFFFFFC000000FFFFFFFFFFFF0000007FFFFFFFFFFFC000007FF FFFFFFFFFF000003FFFFFFFFFFFF800001FFFFFFFFFFFFE00000FFFFFFFFFFFFF000003F FFFFFFFFFFF800001FFFFFFFFFFFFC000007FFFFFFFFFFFE000003FFFFFFFFFFFF000000 FFFFFFFFFFFF8000003FFFFFFFFFFF80000007FFFFFFFFFFC00000007FFFFFFFFFE00000 0007FFFFFFFFE0000000001FFFFFFFF00000000000FFFFFFF000000000000FFFFFF80000 00000001FFFFF80000000000007FFFF80000000000003FFFF8FC00000000000FFFFCFC00 0000000007FFFCFC000000000003FFFCFE000000000001FFFCFE000000000001FFFCFE00 0000000000FFFCFE000000000000FFFCFF0000000000007FFCFF0000000000007FFCFF00 00000000003FFCFF8000000000003FFCFF8000000000003FFCFFC000000000003FF8FFC0 00000000003FF8FFE000000000003FF8FFE000000000003FF8FFF000000000003FF0FFF0 00000000007FF0FFF800000000007FF0FFFC00000000007FE0FFFC0000000000FFE0FFFE 0000000000FFC0FFFF0000000001FFC0FFFF8000000003FF80FFFFC000000007FF00FFFF F00000000FFE00FFFFF80000001FFC00FFE7FE0000007FF800FFC1FF800001FFF000FF80 FFF8001FFFC000FE003FFFFFFFFF8000FC000FFFFFFFFE0000F80003FFFFFFF00000F000 00FFFFFF800000E0000007FFF0000000465F79DD55>115 D[<00000003F0000000000000 0003F00000000000000003F00000000000000003F00000000000000003F0000000000000 0003F00000000000000003F00000000000000003F00000000000000007F0000000000000 0007F00000000000000007F00000000000000007F00000000000000007F0000000000000 000FF0000000000000000FF0000000000000000FF0000000000000000FF0000000000000 001FF0000000000000001FF0000000000000001FF0000000000000003FF0000000000000 003FF0000000000000007FF0000000000000007FF000000000000000FFF0000000000000 00FFF000000000000001FFF000000000000001FFF000000000000003FFF0000000000000 07FFF000000000000007FFF00000000000000FFFF00000000000001FFFF0000000000000 3FFFF00000000000007FFFF0000000000000FFFFF0000000000003FFFFF0000000000007 FFFFF000000000001FFFFFF000000000007FFFFFFFFFFFFF0007FFFFFFFFFFFFFF00FFFF FFFFFFFFFFFF00FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF00FFFF FFFFFFFFFFFF000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000 FFFFF0000000000000FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000 FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000 FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000 FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000 FFFFF0000007E00000FFFFF0000007E00000FFFFF0000007E00000FFFFF000000FE00000 7FFFF000000FC000007FFFF800000FC000007FFFF800000FC000003FFFF800000FC00000 3FFFF800001F8000003FFFFC00001F8000001FFFFC00003F0000001FFFFE00003F000000 0FFFFE00007E00000007FFFF00007E00000003FFFF0000FC00000001FFFF8001F8000000 00FFFFE003F8000000007FFFF80FF0000000001FFFFFFFC00000000007FFFFFF80000000 0001FFFFFF0000000000003FFFFC00000000000001FFE00000>67 132 124 258 84 I<0000007FC000000000000FF8000000FFFFFFC00000001FFFFFF800 00FFFFFFFFC000001FFFFFFFF80000FFFFFFFFC000001FFFFFFFF80000FFFFFFFFC00000 1FFFFFFFF80000FFFFFFFFC000001FFFFFFFF80000FFFFFFFFC000001FFFFFFFF80000FF FFFFFFC000001FFFFFFFF80000FFFFFFFFC000001FFFFFFFF80000003FFFFFC000000007 FFFFF80000000FFFFFC000000001FFFFF800000007FFFFC000000000FFFFF800000003FF FFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FF FFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FF FFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFF F800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0 000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800 000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC00000 00007FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF8000000 03FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FFFFC000000000 7FFFF800000003FFFFC0000000007FFFF800000003FFFFC0000000007FFFF800000003FF FFC000000000FFFFF800000003FFFFC000000000FFFFF800000003FFFFC000000000FFFF F800000003FFFFC000000000FFFFF800000003FFFFC000000001FFFFF800000003FFFFC0 00000001FFFFF800000003FFFFC000000001FFFFF800000003FFFFC000000003FFFFF800 000003FFFFC000000003FFFFF800000001FFFFC000000003BFFFF800000001FFFFC00000 0007BFFFF800000001FFFFC0000000073FFFF800000001FFFFC00000000F3FFFF8000000 00FFFFE00000001E3FFFF800000000FFFFE00000001E3FFFF8000000007FFFE00000003C 3FFFF8000000007FFFE0000000783FFFF8000000003FFFE0000000F83FFFFC000000003F FFF0000001F03FFFFE000000001FFFF8000003E03FFFFF800000000FFFFC00000FC03FFF FFFFE0000007FFFF00003F803FFFFFFFE0000001FFFFE001FF003FFFFFFFE0000000FFFF FFFFFC003FFFFFFFE00000003FFFFFFFF8003FFFFFFFE000000007FFFFFFE0003FFFFFFF E000000000FFFFFF00003FFFFFFFE00000000007FFF800003FFFE000006B5E79DC78>I< 7FFFFFFFFFFF00000FFFFFFFFFC07FFFFFFFFFFF00000FFFFFFFFFC07FFFFFFFFFFF0000 0FFFFFFFFFC07FFFFFFFFFFF00000FFFFFFFFFC07FFFFFFFFFFF00000FFFFFFFFFC07FFF FFFFFFFF00000FFFFFFFFFC07FFFFFFFFFFF00000FFFFFFFFFC00000FFFFFC000000007F FFFC00000000FFFFFE0000000007FF00000000007FFFFE0000000003FC00000000003FFF FF0000000007F800000000001FFFFF8000000007F000000000001FFFFFC00000000FF000 000000000FFFFFC00000001FE0000000000007FFFFE00000003FC0000000000007FFFFF0 0000007F80000000000003FFFFF00000007F00000000000001FFFFF8000000FF00000000 000000FFFFFC000001FE00000000000000FFFFFE000003FC000000000000007FFFFE0000 07F8000000000000003FFFFF000007F0000000000000001FFFFF80000FE0000000000000 001FFFFFC0001FE0000000000000000FFFFFC0003FC00000000000000007FFFFE0007F80 0000000000000003FFFFF0007F000000000000000003FFFFF800FE000000000000000001 FFFFF801FE000000000000000000FFFFFC03FC0000000000000000007FFFFE07F8000000 0000000000007FFFFF07F00000000000000000003FFFFF0FE00000000000000000001FFF FF9FE00000000000000000001FFFFFFFC00000000000000000000FFFFFFF800000000000 0000000007FFFFFF0000000000000000000003FFFFFE0000000000000000000003FFFFFE 0000000000000000000001FFFFFC0000000000000000000000FFFFFC0000000000000000 0000007FFFFE00000000000000000000007FFFFF00000000000000000000003FFFFF0000 0000000000000000001FFFFF80000000000000000000000FFFFFC0000000000000000000 000FFFFFE00000000000000000000007FFFFE00000000000000000000003FFFFF0000000 0000000000000003FFFFF80000000000000000000007FFFFFC000000000000000000000F FFFFFC000000000000000000000FFFFFFE000000000000000000001FFFFFFF0000000000 00000000003FFFFFFF800000000000000000007F9FFFFF80000000000000000000FF0FFF FFC0000000000000000000FE0FFFFFE0000000000000000001FE07FFFFE0000000000000 000003FC03FFFFF0000000000000000007F801FFFFF800000000000000000FF001FFFFFC 00000000000000000FE000FFFFFC00000000000000001FC0007FFFFE0000000000000000 3FC0003FFFFF00000000000000007F80003FFFFF8000000000000000FF00001FFFFF8000 000000000000FE00000FFFFFC000000000000001FC000007FFFFE000000000000003FC00 0007FFFFF000000000000007F8000003FFFFF00000000000000FF0000001FFFFF8000000 0000000FE0000001FFFFFC0000000000001FC0000000FFFFFE0000000000003FC0000000 7FFFFE0000000000007F800000003FFFFF000000000000FF000000003FFFFF8000000000 01FE000000001FFFFF800000000001FC000000000FFFFFC00000000003FC0000000007FF FFE00000000007F80000000007FFFFF0000000000FF00000000003FFFFF0000000001FE0 0000000001FFFFF8000000007FF80000000000FFFFFC0000000FFFFF0000000000FFFFFE 0000FFFFFFFFFC000001FFFFFFFFFFFCFFFFFFFFFC000001FFFFFFFFFFFCFFFFFFFFFC00 0001FFFFFFFFFFFCFFFFFFFFFC000001FFFFFFFFFFFCFFFFFFFFFC000001FFFFFFFFFFFC FFFFFFFFFC000001FFFFFFFFFFFCFFFFFFFFFC000001FFFFFFFFFFFC6E5C7EDB72>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fo ecrm0900 9 14 /Fo 14 118 df<000FE000007FFC0000F83E0003E00F8007C007C0078003C00F8003E01F 0001F01F0001F03F0001F83F0001F83E0000F87E0000FC7E0000FC7E0000FC7E0000FC7E 0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE 0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE 0000FE7E0000FC7E0000FC7E0000FC7E0000FC7E0000FC3F0001F83F0001F83F0001F81F 0001F01F0001F00F8003E007C007C007C007C003E00F8000F83E00007FFC00000FE0001F 347DB126>48 D<00070000000F0000001F0000007F000007FF0000FFFF0000FFBF0000F8 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000007F80007FFFFF807FFFFF807FFFFF8019327AB126>I<003F C00000FFF00003FFFC000F80FF001E007F801C003FC038001FE070000FE070000FF06000 07F0FC0007F0FE0007F8FF0007F8FF0003F8FF0003F8FF0003F87E0007F83C0007F80000 07F8000007F0000007F000000FF000000FE000001FC000001FC000003F8000003F000000 7E000000FC000001F8000001F0000003E0000007C000000F8000001F0000003E0000003C 00000078001800F0001801E0001803C00030078000300F0000301C0000701FFFFFF03FFF FFF07FFFFFF0FFFFFFE0FFFFFFE0FFFFFFE01D327CB126>I<000001C000000001C00000 0003C000000007C000000007C00000000FC00000001FC00000001FC00000003FC0000000 7FC00000006FC0000000CFC0000001CFC00000038FC00000030FC00000070FC000000E0F C000000C0FC000001C0FC00000380FC00000300FC00000700FC00000E00FC00000C00FC0 0001800FC00003800FC00003000FC00006000FC0000E000FC0000C000FC00018000FC000 38000FC00030000FC00060000FC000E0000FC000FFFFFFFF80FFFFFFFF80FFFFFFFF8000 000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000 0FC00000000FC00000001FE0000007FFFF800007FFFF800007FFFF8021337EB226>52 D<0000FE000007FF80001FFFE0003F00F0007C007001F801F801F003F803E003F807E003 F80FC003F80FC001F01F8000001F8000003F0000003F0000003F0000007F0000007E0000 007E07F0007E1FFC00FE381F00FE700F80FEE007C0FFC003E0FF8003F0FF8001F8FF0001 F8FF0001FCFF0000FCFF0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE0000FE7E0000 FE7E0000FE7E0000FE7E0000FE7F0000FE3F0000FC3F0000FC1F0001FC1F8001F80F8001 F00FC003F007C007E003E00FC001F81F8000FFFF00003FFC00000FE0001F347DB126>54 D<300000003C0000003FFFFFFF3FFFFFFF3FFFFFFF7FFFFFFE7FFFFFFE7FFFFFFC700000 386000003060000070600000E0C00000C0C00001C0C0000380000007000000060000000E 0000001C00000018000000380000007000000070000000E0000000E0000001C0000003C0 000003C0000003C0000007800000078000000F8000000F8000000F8000001F8000001F00 00001F0000003F0000003F0000003F0000003F0000003F0000007F0000007F0000007F00 00007F0000007F0000007F0000007F0000007F0000007F0000001C000020347CB126>I< 000FE000007FFC0000FFFF0003F01F8007C007C00F0003E00E0001F01E0000F01C0000F8 3C0000783C0000783C0000783E0000783E0000783F0000F83F8000F03FC001F01FF001E0 1FF803C00FFE078007FF0F0003FFDE0001FFF80000FFF800003FFE00003FFF0000F7FFC0 03E3FFE00780FFF00F007FF81E001FF83E0007FC3C0003FC780001FC7800007EF800007E F000003EF000003EF000001EF000001EF000001EF800001EF800003C7800003C7C000078 3E0000781F0000F00F8003E007F01FC001FFFF00007FFC00001FE0001F347DB126>I<3C 7EFFFFFFFF7E3C000000000000000000000000000000003C7EFFFFFFFF7E3C08207A9F15 >58 D<000007FC00000000007FFFC000000001FC07F000000007E000FC0000000F80003E 0000003F00001F8000007E00000FC00000FC000007E00001F8000003F00003F0000001F8 0003F0000001F80007E0000000FC000FE0000000FE000FC00000007E001FC00000007F00 1FC00000007F003F800000003F803F800000003F807F800000003FC07F800000003FC07F 000000001FC07F000000001FC0FF000000001FE0FF000000001FE0FF000000001FE0FF00 0000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF0000 00001FE0FF000000001FE0FF000000001FE07F000000001FC07F800000003FC07F800000 003FC07F800000003FC03F800000003F803FC00000007F803FC00000007F801FC0000000 7F001FE0000000FF000FE0000000FE0007F0000001FC0007F0000001FC0003F8000003F8 0001F8000003F00000FC000007E000007E00000FC000003F00001F8000001FC0007F0000 0007E000FC00000001FC07F0000000007FFFC00000000007FC00000033377CB43C>79 D<7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7F8007F001FE7C0007F0003E780007F000 1E700007F0000E700007F0000E600007F00006E00007F00007E00007F00007E00007F000 07C00007F00003C00007F00003C00007F00003C00007F00003C00007F00003C00007F000 03000007F00000000007F00000000007F00000000007F00000000007F00000000007F000 00000007F00000000007F00000000007F00000000007F00000000007F00000000007F000 00000007F00000000007F00000000007F00000000007F00000000007F00000000007F000 00000007F00000000007F00000000007F00000000007F00000000007F00000000007F000 00000007F00000000007F00000000007F00000000007F00000000007F0000000000FF800 00001FFFFFFC00001FFFFFFC00001FFFFFFC0030337DB237>84 D<0007F800003FFF0000 FC07C001F000E003E003F007C007F00FC007F01F8007F03F8007F03F0003E07F0000007F 0000007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE0000007F0000007F0000003F0000183F8000181F8000381FC000300F C0007007E000E003F001C000FC0F80003FFE000007F0001D237EA122>99 D<000FE000007FFC0000F83F0003F00F8007E00FC00FC007E01F8003E01F8003F03F0003 F03F0001F07F0001F87E0001F87E0001F8FE0001F8FE0001F8FFFFFFF8FFFFFFF8FE0000 00FE000000FE000000FE000000FE0000007E0000007F0000007F0000003F0000183F0000 181F8000380F8000300FC0007007E000E001F003C000FC0F00003FFE000007F0001D237E A122>101 D<00300000300000300000300000300000700000700000700000F00000F000 01F00001F00003F00007F0001FFFFEFFFFFEFFFFFE03F00003F00003F00003F00003F000 03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00303F003 03F00303F00303F00303F00303F00303F00303F00701F80601F80600FC0E007E1C001FF8 0007E0182F7FAD1E>116 D<03F0003F00FFF00FFF00FFF00FFF00FFF00FFF0007F0007F 0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00 03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003 F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F0003F0007F0003F0 007F0003F000FF0001F000FF0001F801FF8000F803BFFC007E073FFC001FFE3FFC0007F8 3F0026227EA02B>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fp ecrm1200 12 19 /Fp 19 122 df<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A78891B>46 D<0000FF00000007FFE000001F81F800003E007C0000FC003F0001F8001F8001F0000F80 03E00007C007C00003E007C00003E00FC00003F00F800001F01F800001F81F800001F83F 800001FC3F800001FC3F800001FC3F000000FC7F000000FE7F000000FE7F000000FE7F00 0000FE7F000000FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF0000 00FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000 FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF FF000000FFFF000000FF7F000000FE7F000000FE7F000000FE7F000000FE7F000000FE7F 800001FE3F800001FC3F800001FC3F800001FC1F800001F81F800001F80FC00003F00FC0 0003F00FC00003F007E00007E003E00007C003F0000FC001F8001F8000FC003F00003E00 7C00001F81F8000007FFE0000000FF000028447CC131>48 D<000030000000F0000001F0 000003F000001FF00000FFF000FFFFF000FFE7F000FF07F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 000007F0000007F0000007F0000007F000000FF800001FFC007FFFFFFF7FFFFFFF7FFFFF FF204278C131>I<0000000380000000000380000000000780000000000F80000000000F 80000000001F80000000003F80000000003F80000000007F8000000000FF8000000000FF 8000000001FF8000000003BF80000000033F80000000073F80000000063F800000000C3F 800000001C3F80000000183F80000000303F80000000703F80000000603F80000000C03F 80000001C03F80000001803F80000003003F80000007003F80000006003F8000000C003F 8000001C003F80000018003F80000030003F80000070003F80000060003F800000E0003F 800001C0003F80000180003F80000380003F80000300003F80000600003F80000E00003F 80000C00003F80001800003F80003800003F80003000003F80006000003F8000E000003F 8000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00000003F80000000003F80000000003F 80000000003F80000000003F80000000003F80000000003F80000000003F80000000003F 80000000003F80000000003F80000000003F80000000003F8000000000FFE00000007FFF FFC000007FFFFFC000007FFFFFC02A437DC231>52 D<000007FC0000003FFF000000FFFF C00003FC03E00007E000F0001FC00038003F000058007E0001FC00FE0003FC00FC0007FC 01F80007FC03F00007FC03F00007FC07E00003F80FE00001F00FE00000001FC00000001F C00000001FC00000003F800000003F800000003F800000007F800000007F800000007F00 7F80007F01FFF0007F0780FC00FF0E003E00FF1C001F80FF38000FC0FF700007E0FF6000 07E0FFE00003F0FFC00003F8FFC00001F8FFC00001FCFF800001FCFF800000FEFF800000 FEFF800000FEFF000000FFFF000000FFFF000000FFFF000000FF7F000000FF7F000000FF 7F000000FF7F000000FF7F000000FF7F800000FF3F800000FF3F800000FF3F800000FE1F 800000FE1F800001FE1FC00001FC0FC00001FC0FC00003F807E00003F807E00007F003F0 0007E001F8000FC000FC001F80007E003F00003F80FE00000FFFF8000003FFE0000000FF 800028447CC131>54 D<1C00000000001C00000000001F80000000001FFFFFFFFFC01FFF FFFFFFC01FFFFFFFFFC03FFFFFFFFF803FFFFFFFFF803FFFFFFFFF003FFFFFFFFE003800 00000C00300000001C0070000000380060000000300060000000700060000000E0006000 0000C000C0000001C000C00000038000C000000700000000000600000000000E00000000 001C0000000000180000000000380000000000700000000000600000000000E000000000 01C00000000001C0000000000380000000000780000000000700000000000F0000000000 0F00000000001F00000000001E00000000003E00000000003E00000000007E0000000000 7C00000000007C0000000000FC0000000000FC0000000001FC0000000001FC0000000001 FC0000000003F80000000003F80000000003F80000000003F80000000007F80000000007 F80000000007F80000000007F80000000007F80000000007F8000000000FF8000000000F F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000F F8000000000FF8000000000FF80000000007F00000000001C00000002A457BC231>I68 D<0000000FFE00006000000000FFFFC000E000000003FFFFF000 E00000000FFC01FC01E00000003FC0003E01E0000000FF00000F83E0000003FC000003C7 E0000007F8000001E7E000000FF0000000FFE000001FE00000007FE000003FC00000003F E000007F800000001FE00000FF000000000FE00001FE000000000FE00001FC0000000007 E00003FC0000000007E00007F80000000003E00007F80000000003E0000FF00000000001 E0000FF00000000001E0001FE00000000000E0001FE00000000000E0003FE00000000000 E0003FE00000000000E0003FC0000000000060007FC0000000000060007FC00000000000 60007FC0000000000060007FC000000000000000FF8000000000000000FF800000000000 0000FF8000000000000000FF8000000000000000FF8000000000000000FF800000000000 0000FF8000000000000000FF8000000000000000FF8000000000000000FF800000000000 0000FF8000000000000000FF8000000000000000FF8000000000000000FF80000001FFFF FFC07FC0000001FFFFFFC07FC0000001FFFFFFC07FC0000000007FF0007FC0000000003F E0003FC0000000001FE0003FE0000000001FE0003FE0000000001FE0001FE0000000001F E0001FF0000000001FE0000FF0000000001FE0000FF0000000001FE00007F8000000001F E00007F8000000001FE00003FC000000001FE00001FE000000001FE00001FE000000001F E00000FF000000001FE000007F800000001FE000003FC00000003FE000001FE00000003F E000000FF00000007FE0000007F8000000E7E0000003FE000001C7E0000000FF00000383 E00000003FE0000F01E00000000FFC00FE00E000000003FFFFF8006000000000FFFFE000 00000000000FFE0000000042487BC54D>71 D<0007FC000000003FFF80000000F80FE000 0003C003F00000070001F800000E0000FC00000FC0007E00001FE0007F00001FF0003F80 001FF0003F80001FF0003F80001FF0001FC0001FF0001FC0000FE0001FC0000380001FC0 000000001FC0000000001FC0000000001FC0000000001FC00000000FFFC0000001FFFFC0 00000FFE1FC000003FC01FC00000FF001FC00003FC001FC00007F8001FC0000FF0001FC0 001FE0001FC0003FC0001FC0007FC0001FC0007F80001FC0007F80001FC060FF00001FC0 60FF00001FC060FF00001FC060FF00003FC060FF00003FC060FF00003FC060FF80007FC0 607F8000EFC0607FC000C7E0C03FC001C7E0C01FE00783F1C007F81E03FF8001FFFC01FF 00001FE0007C002B2E7CAC31>97 D<01FC00000000FFFC00000000FFFC00000000FFFC00 00000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC03FC000001FC0FFF800001FC3C 07E00001FC7001F80001FDE0007E0001FD80003F0001FF80001F8001FF00001FC001FE00 000FE001FC000007E001FC000007F001FC000007F001FC000003F801FC000003F801FC00 0003FC01FC000003FC01FC000001FC01FC000001FE01FC000001FE01FC000001FE01FC00 0001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC00 0001FE01FC000001FE01FC000001FC01FC000003FC01FC000003FC01FC000003F801FC00 0003F801FC000007F001FC000007F001FE00000FE001FE00000FC001FF00001FC001FB00 003F8001F380007E0001E1C000FC0001E0F001F80001C03C07E00001801FFF8000000003 FC00002F467DC436>I<000000007F000000003FFF000000003FFF000000003FFF000000 0001FF0000000000FF00000000007F00000000007F00000000007F00000000007F000000 00007F00000000007F00000000007F00000000007F00000000007F00000000007F000000 00007F00000000007F00000000007F00000000007F00000000007F00000000007F000000 00007F00000000007F00000000007F0000007F807F000003FFF07F00000FC07C7F00003F 000E7F00007E00077F0000FC0003FF0003F80001FF0007F00000FF0007E00000FF000FE0 00007F001FC000007F001FC000007F003F8000007F003F8000007F007F8000007F007F80 00007F007F0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF00 00007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF00 00007F007F0000007F007F8000007F007F8000007F003F8000007F003F8000007F001FC0 00007F001FC000007F000FC00000FF000FE00000FF0007F00001FF0003F00003FF0001F8 00077F8000FC000E7FC0003F001C7FFE000FC0F87FFE0003FFE07FFE00007F007F002F46 7DC436>100 D<0001FE00000007FFC000001F03F000007E00FC0000FC007E0001F8003F 0003F0003F0007E0001F800FE0001FC00FC0000FC01FC0000FC03F80000FE03F800007E0 3F800007E07F800007F07F000007F07F000007F0FF000007F0FF000007F0FF000007F0FF FFFFFFF0FFFFFFFFF0FF00000000FF00000000FF00000000FF00000000FF00000000FF00 0000007F000000007F000000007F800000007F800000003F800000003F800000301FC000 00301FC00000700FC00000600FE00000E007F00000C003F00001C001F800038000FC0007 00003E001E00001F80F8000003FFE0000000FF0000242E7DAC2B>I<000000000F800001 FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE01F003F0007E01E007F0 007F000007E0003F00000FE0003F80000FC0001F80001FC0001FC0001FC0001FC0001FC0 001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0 001FC0000FC0001F80000FE0003F800007E0003F000007F0007F000003F0007E000001F8 00FC000001FC01F8000003BF07E00000030FFF8000000701FC0000000700000000000700 000000000F00000000000F00000000000F00000000000F800000000007C00000000007E0 0000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFFF800007FFFFFFC0001FF FFFFFE0007C0000FFF000F800000FF003F0000003F803E0000001F807C0000000FC07C00 00000FC0F800000007C0F800000007C0F800000007C0F800000007C0F800000007C0FC00 00000FC07C0000000F807E0000001F803E0000001F001F0000003E000F8000007C0007E0 0001F80001F80007E000007F003F8000001FFFFE00000001FFE000002C427DAC31>103 D<01FC01FE0000FFFC07FFC000FFFC1E07F000FFFC3801F80007FC7001FC0003FCE000FC 0001FDC000FE0001FD8000FE0001FF80007F0001FF00007F0001FF00007F0001FE00007F 0001FE00007F0001FE00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F 0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F 0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F 0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F 0001FC00007F0001FC00007F0001FC00007F0001FC00007F0003FE0000FF80FFFFF83FFF FEFFFFF83FFFFEFFFFF83FFFFE2F2C7DAB36>110 D<00007F8000000003FFF00000000F C0FC0000003E001F0000007C000F800000F80007C00001F00003E00003E00001F00007C0 0000F8000FC00000FC000FC00000FC001F8000007E003F8000007F003F8000007F003F00 00003F007F0000003F807F0000003F807F0000003F807F0000003F80FF0000003FC0FF00 00003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF00 00003FC0FF0000003FC0FF0000003FC07F0000003F807F0000003F807F8000007F803F80 00007F003F8000007F001F8000007E001FC00000FE000FC00000FC000FE00001FC0007E0 0001F80003F00003F00001F80007E00000FC000FC000003E001F0000001FC0FE00000007 FFF8000000007F8000002A2E7DAC31>I<03F803F0FFF81FFCFFF83C3EFFF8707F07F8E0 FF03F9C0FF01F980FF01FB80FF01FB007E01FB003C01FF000001FE000001FE000001FE00 0001FE000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00 0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00 0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000003FF00 00FFFFFE00FFFFFE00FFFFFE00202C7DAB26>114 D<0006000000060000000600000006 000000060000000E0000000E0000000E0000000E0000001E0000001E0000001E0000003E 0000007E0000007E000000FE000001FE000007FE00001FFFFFF0FFFFFFF0FFFFFFF000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000C00FE000C00FE000C00FE000C00FE000C00FE 000C00FE000C00FE000C00FE000C00FE000C007E001C007F0018007F0018003F0038001F 8030001FC0700007E0E00001FFC000007F001E3E7EBC26>116 D120 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fq ecrm1440 14.4 12 /Fq 12 118 df<0000FFC000000007FFF80000001FFFFF0000007FFFFFC00000FE01FFE0 0001F0003FF80003E0001FFC0007800007FE000F000003FF000F000003FF001E000001FF 803C000000FF803C000000FFC0380000007FC0780000007FE0700000003FE0700000003F E0FF0000003FF0FFC000003FF0FFE000003FF0FFE000001FF0FFE000001FF0FFE000001F F0FFE000001FF0FFE000003FF07FC000003FF03F8000003FF00E0000003FF0000000003F E0000000003FE0000000007FE0000000007FC0000000007FC000000000FF8000000000FF 8000000001FF0000000001FF0000000003FE0000000003FC0000000007FC0000000007F8 000000000FF0000000001FE0000000001FC0000000003F80000000007F0000000000FE00 00000000FC0000000001F80000000003F00000000007E0000000000FC0000000000F8000 0000001F00000000003E00000000007C0000000000F80000000001F00000000003E00000 000003C0000070000780000070000F00000070001E000000E0003C000000E00078000000 E00070000000E000E0000000E001C0000001E00380000001E00700000001C00E00000003 C01FFFFFFFFFC01FFFFFFFFFC03FFFFFFFFFC07FFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF 80FFFFFFFFFF80FFFFFFFFFF802C4F7ACE39>50 D77 D82 D<0001FF00000000000FFFF0 000000003F01FC00000000F8007F00000001E0001F80000003C0000FC000000780000FE0 00000F000007F000000FC00003F800001FF00003F800001FF00001FC00001FF80001FC00 001FF80001FC00001FF80000FE00001FF80000FE00001FF80000FE00000FF00000FE0000 03C00000FE000000000000FE000000000000FE000000000000FE000000000000FE000000 00001FFE000000000FFFFE00000000FFF8FE00000007FE00FE0000001FF000FE0000007F C000FE000000FF0000FE000003FE0000FE000007FC0000FE00000FF80000FE00001FF000 00FE00001FF00000FE00003FE00000FE00007FC00000FE00007FC00000FE01C07FC00000 FE01C0FF800000FE01C0FF800000FE01C0FF800000FE01C0FF800001FE01C0FF800001FE 01C0FF800001FE01C0FF800003FE01C0FFC000037E01C07FC000077E01C03FE0000E3E01 803FE0001C3F03801FF000383F030007F800F01F870001FE03C00FFE00007FFF8007FC00 0007FC0001F00032367BB439>97 D<00000FF800000000FFFF00000003F807E000000FE0 00F800001F80003C00003F00001E0000FE00000F0001FC0000078001FC00001F8003F800 007F8007F000007FC00FF00000FFC00FF00000FFC01FE00000FFC01FE00000FFC03FC000 00FFC03FC000007F803FC000001E007FC0000000007FC0000000007F8000000000FF8000 000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000 000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000007F8000 0000007FC0000000007FC0000000007FC0000000003FC0000000003FC0000000E03FE000 0000E01FE0000001E01FE0000001C00FF0000001C007F0000003C007F80000038003FC00 00070001FC00000F0000FE00001E00007F00003C00001F80007800000FE001F0000003F8 0FC0000000FFFF000000000FF800002B367CB433>99 D<00001FF000000000FFFF000000 03F01FC000000FC007E000001F8003F800007F0001FC0000FE0000FE0001FC00007F0003 F800007F0007F800003F8007F000003F800FF000001FC00FE000001FC01FE000001FE01F C000001FE03FC000000FE03FC000000FE07FC000000FF07FC000000FF07F8000000FF07F 8000000FF0FF8000000FF0FF8000000FF0FFFFFFFFFFF0FFFFFFFFFFF0FF8000000000FF 8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF 80000000007F80000000007F80000000007FC0000000007FC0000000003FC0000000003F C0000000701FE0000000701FE0000000F00FE0000000E00FF0000000E007F0000001C003 F8000003C001FC0000038000FC00000780007E00000F00003F00001E00001F80003C0000 07E000F0000001F807C00000007FFF000000000FF800002C367DB433>101 D<000001FC0000000FFF8000003F03C000007E01F00000FC07F00001F80FF80003F00FF8 0007F00FF8000FE00FF8000FE00FF8001FC007F0001FC003E0001FC00000003F80000000 3F800000003F800000003F800000003F800000003F800000003F800000003F800000003F 800000003F800000003F800000003F800000003F800000003F800000003F800000003F80 0000003F800000003F800000003F800000003F800000FFFFFFFC00FFFFFFFC00FFFFFFFC 00FFFFFFFC00003F800000003F800000003F800000003F800000003F800000003F800000 003F800000003F800000003F800000003F800000003F800000003F800000003F80000000 3F800000003F800000003F800000003F800000003F800000003F800000003F800000003F 800000003F800000003F800000003F800000003F800000003F800000003F800000003F80 0000003F800000003F800000003F800000003F800000003F800000003F800000003F8000 00003F800000003F800000003F800000003F800000003F800000003F800000003FC00000 00FFE000003FFFFFE0003FFFFFE0003FFFFFE0003FFFFFE00025547ED323>I<00000000 003F0000003FC001FF800001FFF807C3C00007E07E0E07E0001F801F9C07E0003F000FF8 0FE0007E0007F007E000FC0003F007C001FC0003F8010003F80001FC000003F80001FC00 0007F80001FE000007F00000FE000007F00000FE00000FF00000FF00000FF00000FF0000 0FF00000FF00000FF00000FF00000FF00000FF00000FF00000FF00000FF00000FF00000F F00000FF000007F00000FE000007F00000FE000007F80001FE000003F80001FC000003F8 0001FC000001FC0003F8000000FC0003F00000007E0007E00000007F000FC0000000FF80 1F80000001C7E07E00000001C1FFF800000001803FC00000000380000000000003800000 0000000380000000000003800000000000038000000000000380000000000003C0000000 000003C0000000000003E0000000000003F0000000000003F8000000000001FFFFFFC000 0000FFFFFFFC000000FFFFFFFF8000007FFFFFFFE000001FFFFFFFF000007FFFFFFFFC00 01F800003FFE0007C0000003FE000F80000000FF001F000000007F803E000000003F807E 000000001F807C000000000FC0FC000000000FC0F80000000007C0F80000000007C0F800 00000007C0F80000000007C0F80000000007C0F80000000007C07C000000000F807C0000 00000F803E000000001F003F000000003F001F800000007E000FC0000000FC0003E00000 01F00001F8000007E000007E00001F8000001FE001FE00000003FFFFF0000000003FFF00 0000334E7DB439>I<01FE00FFFE00FFFE00FFFE00FFFE0007FE0001FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0003FF80FFFFFEFFFFFE FFFFFEFFFFFE17537CD220>108 D<01FE001FF00000FFFE00FFFE0000FFFE03E03F0000 FFFE07001FC000FFFE1E000FE00007FE380007F00001FE300007F00000FE700003F80000 FEE00003F80000FEC00003F80000FFC00001FC0000FF800001FC0000FF800001FC0000FF 000001FC0000FF000001FC0000FF000001FC0000FE000001FC0000FE000001FC0000FE00 0001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE0000 01FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001 FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC 0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC00 00FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000 FE000001FC0000FE000001FC0000FE000001FC0003FF800007FF00FFFFFE01FFFFFCFFFF FE01FFFFFCFFFFFE01FFFFFCFFFFFE01FFFFFC36347CB33F>110 D<01FC007E00FFFC01FF80FFFC0783C0FFFC0E0FE0FFFC1C1FF007FC381FF001FC701FF0 00FC601FF000FCE01FF000FCC00FE000FDC007C000FD80000000FF80000000FF00000000 FF00000000FF00000000FF00000000FF00000000FE00000000FE00000000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000 00FE00000000FE00000000FE00000000FF00000003FF800000FFFFFF8000FFFFFF8000FF FFFF8000FFFFFF800024347CB32C>114 D<01FE000003FC00FFFE0001FFFC00FFFE0001 FFFC00FFFE0001FFFC00FFFE0001FFFC0007FE00000FFC0001FE000003FC0000FE000001 FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC 0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC00 00FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000 FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE 000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE00 0001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000003FC0000FE0000 03FC0000FE000003FC0000FE000003FC0000FE000007FC0000FE000007FC00007E00000F FC00007F00000DFC00007F00001DFC00003F000039FE00001F800031FF80001FC000F1FF FC0007E001C1FFFC0003F80781FFFC0000FFFE01FFFC00001FF801FE0036357CB33F> 117 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 1392 2266 a Fq(g2)37 b(Reference)f(Man)m(ual)1824 2417 y Fp(0.7x)1307 2753 y(Generated)d(b)m(y)h(Do)m(xygen)g(1.4.6)1485 2971 y Fo(T)-6 b(ue)25 b(Oct)h(17)g(21:27:48)j(2006)p eop end %%Page: 2 2 TeXDict begin 2 1 bop eop end %%Page: 1 3 TeXDict begin 1 2 bop 150 1044 a Fn(Con)-6 b(ten)g(ts)150 1606 y Fm(1)77 b(g2)31 b(Main)g(P)m(age)2777 b(1)275 1753 y Fl(1.1)83 b(License)28 b(Notice)84 b(.)41 b(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)146 b(1)275 1900 y(1.2)83 b(In)n(tro)r(duction)26 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)146 b(1)275 2047 y(1.3)83 b(Getting)28 b(Started)37 b(.)k(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)146 b(2)275 2194 y(1.4)83 b(Con)n(tact)62 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)146 b(7)150 2423 y Fm(2)77 b(g2)31 b(Mo)s(dule)f(Index)2640 b(9)275 2570 y Fl(2.1)83 b(g2)27 b(Mo)r(dules)65 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)146 b(9)150 2800 y Fm(3)77 b(g2)31 b(P)m(age)h(Index)2710 b(11)275 2947 y Fl(3.1)83 b(g2)27 b(Related)h(P)n(ages)49 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)105 b(11)150 3177 y Fm(4)77 b(g2)31 b(Mo)s(dule)f(Do)s(cumen)m (tation)2187 b(13)275 3324 y Fl(4.1)83 b(FIG)73 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(13)275 3471 y(4.2)83 b(splines)46 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(14)275 3617 y(4.3)83 b(color)27 b(manipulations)22 b(.)41 b(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(17)275 3764 y(4.4)83 b(output)28 b(con)n(trol)20 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)105 b(19)275 3911 y(4.5)83 b(devices)27 b(con)n(trol)73 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)105 b(21)275 4058 y(4.6)83 b(graphical)26 b(output)70 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)105 b(23)275 4205 y(4.7)83 b(virtual)27 b(device)h(related)f(functions)62 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)105 b(30)275 4352 y(4.8)83 b(GD)30 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(31)275 4499 y(4.9)83 b(P)n(ostScript)38 b(.)k(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(32)275 4646 y(4.10)41 b(MS)28 b(Windo)n(ws)62 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)105 b(35)275 4792 y(4.11)41 b(X11)76 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(36)275 4939 y(4.12)41 b(g2)27 b(User)g(In)n(terface)54 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(37)275 5086 y(4.13)41 b(g2)27 b(Ph)n(ysical)g(devices)42 b(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)105 b(38)150 5316 y Fm(5)77 b(g2)31 b(P)m(age)h(Do)s(cumen)m(tation)2304 b(39)275 5463 y Fl(5.1)83 b(PS)29 b(pap)r(er)e(sizes)83 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)105 b(39)p eop end %%Page: 2 4 TeXDict begin 2 3 bop eop end %%Page: 1 5 TeXDict begin 1 4 bop 150 1003 a Fk(Chapter)61 b(1)150 1465 y Fn(g2)72 b(Main)h(P)-6 b(age)150 1994 y Fj(1.1)130 b(License)45 b(Notice)150 2223 y Fl(This)38 b(library)f(is)h(free)g (soft)n(w)n(are;)k(y)n(ou)37 b(can)h(redistribute)g(it)g(and/or)f(mo)r (dify)h(it)h(under)f(the)h(terms)f(of)g(the)150 2322 y(GNU)27 b(Lesser)f(General)g(Public)h(License)f(as)g(published)h(b)n (y)g(the)g(F)-7 b(ree)26 b(Soft)n(w)n(are)g(F)-7 b(oundation;)26 b(either)h(v)n(ersion)150 2422 y(2.1)k(of)g(the)h(License,)h(or)d(\(at) i(y)n(our)e(option\))i(an)n(y)f(later)g(v)n(ersion.)47 b(This)32 b(library)e(is)h(distributed)h(in)g(the)g(hop)r(e)150 2522 y(that)j(it)g(will)g(b)r(e)g(useful,)i(but)f(WITHOUT)f(ANY)h(W)-9 b(ARRANTY;)36 b(without)f(ev)n(en)f(the)h(implied)h(w)n(arran)n(t)n(y) 150 2621 y(of)28 b(MER)n(CHANT)-7 b(ABILITY)30 b(or)e(FITNESS)i(F)n(OR) e(A)h(P)-7 b(AR)g(TICULAR)30 b(PURPOSE.)g(See)e(the)h(GNU)g(Lesser)150 2721 y(General)35 b(Public)j(License)d(for)h(more)g(details.)62 b(Y)-7 b(ou)37 b(should)f(ha)n(v)n(e)f(receiv)n(ed)g(a)h(cop)n(y)f(of)i (the)f(GNU)h(Lesser)150 2821 y(General)23 b(Public)j(License)d(along)g (with)i(this)g(library;)f(if)h(not,)g(write)f(to)g(the)g(F)-7 b(ree)24 b(Soft)n(w)n(are)f(F)-7 b(oundation,)25 b(Inc.,)150 2920 y(59)i(T)-7 b(emple)27 b(Place,)h(Suite)g(330,)e(Boston,)h(MA)h (02111-1307)23 b(USA)28 b Fi(\003)150 3067 y Fl(Cop)n(yrigh)n(t)e (\(C\))i(1998-2004)23 b(Ljub)r(omir)28 b(Milano)n(vic)e(&)i(Horst)f(W) -7 b(agner.)150 3388 y Fj(1.2)130 b(In)l(tro)t(duction)150 3634 y Fh(1.2.1)112 b(What)38 b(is)e(g2)i(?)150 3834 y Fm(1.2.1.1)93 b(Short)32 b(v)m(ersion)f(\(if)h(y)m(ou)g(are)h(in)e(h) m(urry\))275 4035 y Fg(\210)42 b Fl(2D)27 b(graphics)f(library)275 4199 y Fg(\210)42 b Fl(Simple)28 b(to)f(use)275 4363 y Fg(\210)42 b Fl(Supp)r(orts)31 b(sev)n(eral)f(t)n(yp)r(es)h(of)h (output)g(devices)f(\(curren)n(tly)g(X11,)h(P)n(ostScript,)h(devices)e (supp)r(orted)g(b)n(y)358 4463 y Ff(gd)26 b Fl(\(PNG,)j(JPEG\),)g Ff(FIG)d Fl(and)i(MS)g(Windo)n(ws)f(windo)n(ws\))275 4627 y Fg(\210)42 b Fl(Concept)27 b(allo)n(ws)f(easy)h(implemen)n (tation)g(of)h(new)f(device)h(t)n(yp)r(es)275 4791 y Fg(\210)42 b Fl(Virtual)27 b(devices)g(allo)n(w)f(to)i(send)f(output)h (sim)n(ultaneously)f(to)g(sev)n(eral)f(devices)275 4956 y Fg(\210)42 b Fl(User)27 b(de\034nable)g(co)r(ordinate)f(system)275 5120 y Fg(\210)42 b Fl(W)-7 b(ritten)28 b(in)g(ANSI-C)275 5284 y Fg(\210)42 b Fl(T)-7 b(ested)27 b(under)h(Digital)f(Unix,)h (AIX,)g(Lin)n(ux,)g(VMS)g(and)f(Windo)n(ws)g(NT)275 5449 y Fg(\210)42 b Fl(P)n(erl)27 b(supp)r(ort)275 5613 y Fg(\210)42 b Fl(Python)28 b(supp)r(ort)p eop end %%Page: 2 6 TeXDict begin 2 5 bop 150 70 a Fm(2)2901 b(g2)31 b(Main)h(P)m(age)p 150 103 3525 4 v 275 333 a Fg(\210)42 b Fl(F)-7 b(ortran)26 b(in)n(terface)150 602 y Fm(1.2.1.2)93 b(Long)32 b(v)m(ersion)150 803 y Fl(g2)23 b(is)g(a)g(simple)g(to)h(use)f(graphics)f(library)g(for) h(2D)g(graphical)f(applications)g(written)i(in)f(Ansi-C.)h(It)g(pro)n (vides)d(a)150 903 y(comprehensiv)n(e)26 b(set)h(of)h(functions)f(for)g (sim)n(ultaneous)g(generation)f(of)h(graphical)f(output)i(on)f (di\033eren)n(t)g(t)n(yp)r(es)150 1002 y(of)j(devices.)42 b(Curren)n(tly)-7 b(,)30 b(the)g(follo)n(wing)f(devices)g(are)f(supp)r (orted)i(b)n(y)f(g2:)41 b(X11,)29 b(P)n(ostScript,)h Ff(gd)f Fl(\(PNG)i(and)150 1102 y(JPEG\),)38 b Ff(FIG)e Fl(and)h(MS\240Windo)n(ws.)65 b(One)37 b(ma)5 b(jor)36 b(feature)h(of)g(the)g(g2)f(library)g(is)h(the)h(concept)f(of)g (virtual)150 1202 y(devices.)k(An)30 b(arbitrary)d(n)n(um)n(b)r(er)h (of)i(ph)n(ysical)e(devices)g(\(suc)n(h)h(as)g(P)n(ostScript)g(or)f (X11\))h(can)f(b)r(e)i(group)r(ed)e(to)150 1301 y(create)23 b(a)h(so-called)f(virtual)g(device.)36 b(Commands)23 b(sen)n(t)h(to)g(suc)n(h)g(a)g(virtual)f(device)h(are)f(automatically)g (issued)150 1401 y(to)29 b(all)g(attac)n(hed)f(ph)n(ysical)h(devices.) 41 b(This)29 b(allo)n(ws)f(for)g(example)h(sim)n(ultaneous)f(output)i (to)f(a)g(PNG)h(\034le)f(and)150 1501 y(a)g(P)n(ostScript)h(\034le.)43 b(A)30 b(virtual)f(device)h(in)g(turn)f(can)h(b)r(e)g(attac)n(hed)f(to) g(another)g(virtual)g(device,)h(allo)n(wing)e(to)150 1600 y(construct)e(trees)g(of)h(devices.)36 b(Virtual)27 b(devices)f(can)g(also)g(b)r(e)h(useful)g(when)g(using)g(di\033eren)n (t)f(user-co)r(ordinate)150 1700 y(systems.)38 b(E.g.)h(one)28 b(X11)f(windo)n(w)h(sho)n(wing)f(an)h(o)n(v)n(erview)e(of)i(a)g (graphical)e(output,)j(and)f(a)g(second)g(windo)n(w)150 1799 y(sho)n(wing)c(a)h(zo)r(om)f(of)i(a)e(more)h(detailed)g(area)f(of) h(the)g(graphic.)35 b(Dra)n(wing)24 b(in)i(b)r(oth)f(windo)n(ws)g(is)g (p)r(erformed)f(b)n(y)150 1899 y(one)j(single)g(command)g(to)h(the)g (virtual)f(device.)1385 2112 y Fe(/------->)37 b(PNG:)107 b(g2_attach\(id_PNG,..)573 2191 y(-----------------------)150 2270 y(g2_plot--->)38 b(|)e(Virtual)h(device:)g(id)71 b(|-------->)38 b(X11:)107 b(g2_attach\(id_X11,...)573 2349 y(-----------------------)1385 2428 y(\\------->)37 b(PS:)142 b(g2_attach\(id_PS,...)150 2662 y Fl(If)28 b(y)n(ou)f(don't)h(need)f(or)g(lik)n(e)g(the)h(concept)f(of)h(virtual)f (devices,)g(simply)h(ignore)e(it.)150 2989 y Fj(1.3)130 b(Getting)45 b(Started)150 3236 y Fh(1.3.1)112 b(Preinstallation)34 b(tasks:)150 3438 y Fl(PNG)29 b(and)e(JPEG)h(supp)r(ort)150 3585 y(g2)37 b(uses)g(the)h(gd)f(library)f(b)n(y)h(Thomas)g(Boutell)g (to)g(generate)f(PNG)j(and)e(JPEG)h(\034les.)67 b(This)37 b(pac)n(k)-5 b(age)36 b(is)150 3684 y(freew)n(are)29 b(\(ho)n(w)n(ev)n(er,)h(not)g(GPL\))i(and)e(can)h(b)r(e)g(do)n (wnloaded)e(at)i Ff(http://www.bout)o(el)o(l.c)o(om)o(/g)o(d/.)39 b Fl(Lin)n(ux)150 3784 y(users)34 b(migh)n(t)h(prefer)f(to)h(install)f (a)h(pre-compiled)f(gd)g(rpm)h(pac)n(k)-5 b(age)33 b(whic)n(h)i(should) g(b)r(e)g(a)n(v)-5 b(ailable)34 b(at)g(y)n(our)150 3884 y(lo)r(cal)27 b(RedHat)h(mirror)d(site.)37 b(NT)28 b(users)f(should)g (install)g(the)h(gd)f(source)f(pac)n(k)-5 b(age)26 b(in)i(a)f(sub)r (directory)f(named)150 3983 y("gd")34 b(whic)n(h)h(should)h(b)r(e)f(lo) r(cated)g(in)h(the)g(same)f(directory)f(as)g(the)i(g2)f(sub)r (directory)f(\(but)i(not)g(in)f(the)h(g2)150 4083 y(directory)31 b(itself)6 b(\).)52 b(Otherwise,)32 b(\034le)h(lo)r(cations)e(for)g(gd) h(m)n(ust)h(b)r(e)f(mo)r(di\034ed)h(in)f(the)h(g2)e(pro)5 b(ject)31 b(w)n(orkspace.)150 4182 y(Unix)f(and)g(VMS)g(users)f(will)g (ha)n(v)n(e)g(to)g(build)i(and)e(install)h(gd)f(according)f(to)i(the)g (instructions)f(found)h(in)g(the)150 4282 y(gd)d(distribution.)150 4568 y Fh(1.3.2)112 b(Installation)150 4769 y Fm(1.3.2.1)93 b(Lin)m(ux)251 4971 y Fl(1.)42 b(Either)28 b(install)f(RPM)h(pac)n(k)n (et)f(with)h(binaries,)f(or)f(compile)i(as)f(describ)r(ed)g(in)h(the)g Fm(Unix)p Fl(\(p.)14 b(2\))28 b(section)150 5240 y Fm(1.3.2.2)93 b(Unix)251 5441 y Fl(1.)42 b(Extract)27 b(pac)n(k)-5 b(age)26 b(with)i Ff(gzip)42 b(-dc)g(g2-xxxx.tar.gz)c Fi(j)43 b Ff(tar)g(xvf)f(-)251 5613 y Fl(2.)g(Run)28 b Ff(./configure)p 150 5746 V 1709 5823 a Fd(Generated)e(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 3 7 TeXDict begin 3 6 bop 150 70 a Fm(1.3)31 b(Getting)g(Started)2662 b(3)p 150 103 3525 4 v 251 333 a Fl(3.)42 b(Optionally)26 b(run)i Ff(make)42 b(depend)251 498 y Fl(4.)g(Run)28 b Ff(make)251 663 y Fl(5.)42 b(Run)68 b Ff(make)42 b(install)p Fl(,)75 b(or)67 b(cop)n(y)g(libg2.a/so)e(and)j Fm(g2.h)p Fl(\(p.)14 b Fm(??)o Fl(\),)79 b Fm(g2_X11.h)p Fl(\(p.)14 b Fm(??)o Fl(\),)78 b Fm(g2_-)358 763 y(PS.h)p Fl(\(p.)14 b Fm(??)p Fl(\),)25 b Fm(g2_gd.h)p Fl(\(p.)14 b Fm(??)o Fl(\))25 b(and)f Fm(g2_FIG.h)p Fl(\(p.)14 b Fm(??)p Fl(\))24 b(to)g(the)g(default)h(lo)r(cations)e(for)h(library)e(and)358 863 y(include)27 b(\034les)251 1028 y(6.)42 b(Optionally)26 b Ff(cd)h Fl(to)h(demo)f(directory)f(and)h(run)h Ff(make)150 1291 y Fm(1.3.2.3)93 b(Windo)m(ws)31 b(NT)251 1491 y Fl(1.)42 b(Extract)27 b(pac)n(k)-5 b(age)26 b(using)h(either)h(the)f (.tar.gz)g(or)g(the)h(.zip)f(distribution)251 1657 y(2.)42 b(MS)20 b(Visual)f(C++)g(users)g(can)g(build)h(b)r(oth)g(library)e(and) i(demos)f(with)h(the)g(supplied)g(pro)5 b(ject)19 b(\034le:)33 b(g2.dsw)358 1756 y(\(to)25 b(obtain)h(an)f(icon)h(and)f(use)h(men)n(u) g(functions,)g(y)n(ou)f(m)n(ust)h(also)e(build)j(the)f(g2res)e(pro)5 b(ject)25 b(in)h(g2.dsw\))251 1922 y(3.)42 b(Users)h(of)h(gcc)f(or)g (other)g(commandline)h(based)f(compilers)g(with)h(mak)n(e)g(supp)r(ort) f(con)n(tin)n(ue)h(as)f(in)358 2021 y Fm(Unix)p Fl(\(p.)14 b(2\))28 b(example)251 2187 y(4.)42 b(It)37 b(is)h(also)e(p)r(ossible)h (to)g(compile)h(g2)e(on)h(winNT/95)g(using)g(the)h(free)f(cygwin32)f (library)g(and)h(a)g(X-)358 2286 y(windo)n(ws)19 b(library)f(for)i (Windo)n(ws.)34 b(Theoretically)19 b(it)h(should)g(b)r(e)g(p)r(ossible) g(to)g(supp)r(ort)g(b)r(oth)g(X-windo)n(ws)358 2386 y(and)27 b(nativ)n(e)g(NT/95)f(windo)n(ws)h(at)h(the)f(same)g(time.)150 2649 y Fm(1.3.2.4)93 b(P)m(erl)32 b(\(old)f(instructions\))251 2849 y Fl(1.)42 b(Change)26 b(to)i(directory)e(g2_p)r(erl)251 3015 y(2.)42 b(P)n(erform)26 b(follo)n(wing)h(steps)457 3180 y Fg(\210)42 b Ff(perl)g(Makefile.PL)457 3312 y Fg(\210)g Ff(make)457 3444 y Fg(\210)g Ff(make)g(test)457 3577 y Fg(\210)g Ff(make)g(install)251 3742 y Fl(3.)g(See)27 b(the)h Fm(P)m(erl)k(in)m(terface)p Fl(\(p.)14 b(6\))29 b(section)e(for)g(more)f(information)150 4005 y Fm(1.3.2.5)93 b(Python)251 4205 y Fl(1.)42 b(Mak)n(e)26 b(sure)h(y)n(ou)g(ha)n(v)n(e) f(Python)i(installed)g(\(note:)37 b(SWIG)28 b(is)f Fm(not)h Fl(needed\))251 4371 y(2.)42 b(Build)27 b(g2)g(as)g(describ)r(ed)g(ab)r (o)n(v)n(e)f(\(see)i Fm(Installation)p Fl(\(p.)14 b(2\)\))251 4536 y(3.)42 b(Change)26 b(to)i(directory)e(g2_p)n(ython)251 4701 y(4.)42 b(T)n(yp)r(e)457 4867 y Fg(\210)g Fl(on)27 b(Lin)n(ux:)606 4999 y Fm(\025)41 b Ff(make)26 b Fl(to)i(build)g(g2)f (Python)h(mo)r(dule)606 5115 y Fm(\025)41 b Ff(make)h(demo)26 b Fl(to)i(test)g(g2)e(Python)i(mo)r(dule)606 5231 y Fm(\025)41 b Ff(make)h(install)25 b Fl(to)i(install)h(g2)f(Python)h(mo)r(dule)f (\(y)n(ou)g(m)n(ust)h(b)r(e)g Fm(ro)s(ot)p Fl(\))457 5363 y Fg(\210)42 b Fl(on)25 b(Windo)n(ws)f(\(y)n(ou)g(need)h(Visual)f (Studio)h(when)g(using)g(the)g(standard)e(Python)i(release)f(for)g (Win-)540 5463 y(do)n(ws\):)606 5595 y Fm(\025)41 b Ff(setup.py)g ("compile)f(options")g("link)h(options")g(install)p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 4 8 TeXDict begin 4 7 bop 150 70 a Fm(4)2901 b(g2)31 b(Main)h(P)m(age)p 150 103 3525 4 v 251 333 a Fl(5.)42 b(If)26 b(y)n(ou)e(link)i(y)n(our)f (g2)f(Python)i(mo)r(dule)g(against)f Ff(libg2.so)p Fl(,)d(and)k(y)n(ou) f(are)f(un)n(willing)i(or)e(unable)i(to)f(do)358 432 y(an)e(install,)i(y)n(ou)f(need)g(to)g(tell)h(the)f(g2)f(Python)i(mo)r (dule)f(where)g(to)g(lo)r(ok)g(for)f(it,)j(either)e(with)g Ff(ldconfig)p Fl(,)358 532 y(or)i(with)i(the)g Ff(LD_LIBRARY_PATH)22 b Fl(en)n(vironmen)n(t)k(v)-5 b(ariable)251 712 y(6.)42 b(See)27 b(the)h Fm(Python)k(in)m(terface)p Fl(\(p.)14 b(6\))29 b(section)e(for)g(more)g(information)150 991 y Fm(1.3.2.6)93 b(VMS)251 1194 y Fl(1.)42 b(T)-7 b(ry)27 b(to)g(extract)g(either)g(the)h(.tar.gz)f(or)f(the)i(.zip)g (distribution)g(\(whatev)n(er)e(is)i(easier)e(for)h(y)n(ou\))251 1375 y(2.)42 b(T)n(yp)r(e)27 b Ff(mms)f Fl(to)i(compile)f(library)f (\(descrip.mms)i(\034le)f(is)h(supplied\))251 1555 y(3.)42 b(Run)28 b Ff(mms)e Fl(in)i(demo)f(directory)f(to)i(compile)f(demo)g (applications)150 1850 y Fh(1.3.3)112 b(A)37 b(simple)f(example)150 2054 y Fl(The)28 b(follo)n(wing)e(example)h(is)h(a)f(minimal)h (application.)36 b(It)28 b(dra)n(ws)e(a)h(rectangle)f(in)i(a)f(P)n (ostScript)h(\034le.)150 2274 y Fe(#include)37 b()150 2353 y(#include)g()150 2510 y(main\(\))150 2589 y({)291 2668 y(int)f(id;)291 2747 y(id)g(=)f(g2_open_PS\("rect.ps",)42 b(g2_A4,)36 b(g2_PS_land\);)291 2826 y(g2_rectangle\(id,)k(20,)c(20,)g (150,)g(150\);)291 2905 y(g2_close\(id\);)150 2984 y(})275 3224 y Fg(\210)42 b Fl(Alw)n(a)n(ys)24 b(include)i Fc(<)p Fm(g2.h)p Fl(\(p.)14 b Fm(??)o Fl(\))p Fc(>)p Fl(.)36 b(A)n(dditionally)25 b(include)h(header)e(\034les)i(for)f(all)g(t)n(yp) r(es)g(of)h(devices)f(y)n(ou)358 3324 y(w)n(an)n(t)h(to)i(use.)275 3504 y Fg(\210)42 b Fl(Op)r(en)27 b(devices)g(using)g(g2_op)r(en_XY)g (functions.)358 3644 y(The)g(op)r(en)h(function)g(returns)f(a)g(device) g(id)h(of)g(t)n(yp)r(e)f(in)n(t,)h(whic)n(h)g(y)n(ou)e(need)i(to)g (refer)e(to)i(the)g(device.)275 3825 y Fg(\210)42 b Fl(Call)27 b Fm(g2_close\(\))p Fl(\(p.)14 b(21\))26 b(to)h(close)g(device.)275 4005 y Fg(\210)42 b Fl(Consider)26 b(turning)g(o\033)h(auto)g(\035ush)g (\()p Fm(g2_set_auto_\035ush\(\))p Fl(\(p.)14 b(21\)\))27 b(for)g(impro)n(v)n(ed)e(p)r(erformance.)150 4246 y(Y)-7 b(ou)28 b(w)n(an)n(t)f(to)g(dra)n(w)f(a)i(PNG)g(\034le)g(instead)f(of)h (a)f(P)n(ostScript)g(\034le)h(?)37 b(Replace)27 b(the)h(PS)g(header)f (\034le)h(with)150 4466 y Fe(#include)37 b()150 4707 y Fl(and)27 b(replace)g(the)h(call)f(to)g Fm(g2_op)s(en_PS\(\))p Fl(\(p.)14 b(34\))27 b(with)150 4926 y Fe(id)36 b(=)f (g2_open_gd\("rect.png",)42 b(300,)36 b(200,)g(g2_gd_png\);)150 5167 y Fl(Y)-7 b(ou)28 b(w)n(an)n(t)f(to)g(dra)n(w)f(to)i(a)f(PNG)i (\034le)e(and)h(a)f(P)n(ostScript)g(\034le)h(with)g(one)f(plot)h (command)f(?)150 5314 y(Here)36 b(w)n(e)g(use)g(the)g(concept)h(of)f (virtual)f(devices.)63 b(Op)r(en)36 b(a)g(PNG)h(and)f(a)g(P)n (ostScript)g(device,)i(then)f(op)r(en)150 5414 y(a)i(virtual)f(device)h (and)g(attac)n(h)g(b)r(oth)g(the)h(PNG)g(and)f(P)n(ostScript)g(device)g (to)g(the)h(virtual)e(device.)72 b(Plot)150 5513 y(commands)29 b(to)h(the)h(virtual)e(device)h(will)g(b)r(e)h(issued)f(to)g(b)r(oth)g (the)h(PNG)g(and)f(the)g(P)n(ostScript)g(device.)44 b(Y)-7 b(ou)150 5613 y(can)27 b(attac)n(h)g(and)g(detac)n(h)h(further)f (devices)g(at)h(an)n(y)e(time.)p 150 5746 V 1709 5823 a Fd(Generated)g(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h (g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 5 9 TeXDict begin 5 8 bop 150 70 a Fm(1.3)31 b(Getting)g(Started)2662 b(5)p 150 103 3525 4 v 150 333 a Fe(#include)37 b()150 412 y(#include)g()150 490 y(#include)g()150 648 y(main\(\))150 727 y({)291 806 y(int)f(id_PS,id_PNG,id;)291 964 y(id_PS)72 b(=)36 b(g2_open_PS\("rect.ps",)41 b(g2_A4,)c (g2_PS_land\);)291 1042 y(id_PNG)g(=)f(g2_open_gd\("rect.png",)41 b(300,)36 b(200,)h(g2_gd_png\);)291 1121 y(id)177 b(=)36 b(g2_open_vd\(\);)291 1279 y(g2_attach\(id,)j(id_PS\);)291 1358 y(g2_attach\(id,)g(id_PNG\);)291 1516 y(g2_rectangle\(id,)h(20,)c (20,)g(150,)g(150\);)291 1595 y(g2_circle\(id,)j(50,)d(60,)g(100\);)291 1752 y(g2_close\(id\);)150 1831 y(})150 2097 y Fl(Note:)h(closing)26 b(a)i(virtual)f(device)g(automatically)f(closes)h(all)g(attac)n(hed)g (devices.)150 2411 y Fm(1.3.3.1)93 b(More)31 b(examples)150 2622 y Fl(More)g(examples)g(sho)n(wing)g(the)i(usage)e(of)h(di\033eren) n(t)g(user)f(co)r(ordinate)g(systems,)i(m)n(ultiple)f(virtual)g (devices,)150 2722 y(splines,)27 b(etc.)37 b(can)28 b(b)r(e)g(found)f (in)h(the)g(distribution)g(\(demo)f(directory\).)150 3053 y Fh(1.3.4)112 b(F)-9 b(ortran)38 b(in)m(terface)150 3263 y Fl(The)27 b(F)-7 b(ortran)26 b(in)n(terface)h(for)f(g2)g(has)h (curren)n(tly)f(b)r(een)i(tested)f(on)g(Lin)n(ux)g(and)g(Digital)g (Unix/OSF.)g(F)-7 b(unction)150 3363 y(names)27 b(for)g(F)-7 b(ortran)26 b(are)h(the)h(same)f(as)g(in)h(C,)f(ho)n(w)n(ev)n(er)f(the) i(follo)n(wing)e(di\033erences)h(exist:)275 3629 y Fg(\210)42 b Fl(All)28 b(v)-5 b(ariables,)26 b(including)i(device)f(IDs,)h(are)e (of)i(t)n(yp)r(e)g Ff(REAL)275 3842 y Fg(\210)42 b Fl(V)-7 b(oid)27 b(functions)h(are)f(implemen)n(ted)h(as)f(subroutines)f(and)i (m)n(ust)g(b)r(e)f(called)h(with)g Ff(CALL)275 4056 y Fg(\210)42 b Fl(Constan)n(ts)30 b(de\034ned)j(b)n(y)e Ff(#define)e Fl(in)j(C)g(\(e.g.)50 b Fm(g2_A4)p Fl(\(p.)14 b(32\)\))31 b(do)h(not)g(w)n(ork.)48 b(Get)32 b(corresp)r(onding)358 4156 y(v)-5 b(alues)27 b(from)g(the)h(appropriate)e(header)g(\034les.) 150 4421 y(A)i(short)f(F)-7 b(ortran)26 b(example:)432 4666 y Fe(program)37 b(demo)432 4745 y(real)g(d,color)432 4824 y(d=g2_open_PS\('demo_f.ps)q(',)k(4.0,)c(1.0\))432 4903 y(call)g(g2_plot\(d,)h(50.0,)e(50.0\))432 4982 y(call)h (g2_string\(d,)h(25.0,)f(75.0,)f('TEST)h('\))432 5061 y(color=g2_ink\(d,)j(1.0,)c(0.0,)g(0.0\))432 5140 y(write)h(\(6,*\))g (color)432 5218 y(call)g(g2_pen\(d,)g(color\))432 5297 y(call)g(g2_circle\(d,)h(20.0,)f(20.0,)f(10.0\))432 5376 y(call)h(g2_flush\(d\))432 5455 y(call)g(g2_close\(d\))432 5534 y(stop)432 5613 y(end)p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h (Do)n(xygen)p eop end %%Page: 6 10 TeXDict begin 6 9 bop 150 70 a Fm(6)2901 b(g2)31 b(Main)h(P)m(age)p 150 103 3525 4 v 150 333 a Fh(1.3.5)112 b(P)m(erl)36 b(in)m(terface)h(\(old)f(info\))150 533 y Fl(The)g(P)n(erl)g(in)n (terface)g(for)f(g2)h(has)f(curren)n(tly)h(b)r(een)g(tested)h(on)f(Lin) n(ux)g(and)g(Digital)g(Unix/OSF.)g(F)-7 b(unction)150 633 y(names)28 b(in)g(P)n(erl)g(are)f(the)i(same)f(as)f(in)i(C,)f(ho)n (w)n(ev)n(er)e(the)j(device)f(itself)g(is)h(implemen)n(ted)f(ob)5 b(ject)28 b(orien)n(ted,)g(i.e.)150 732 y(the)g(device)f(argumen)n(t)g (is)g(omitted)h(in)g(all)f(functions.)37 b(Cf.)h(the)28 b(follo)n(wing)e(simple)i(P)n(erl)f(script:)150 934 y Fe(use)36 b(G2;)150 1091 y($d)g(=)f(newX11)i(G2::Device\(100,100\);)150 1170 y($d->circle\(10,)i(10,)d(20\);)150 1249 y($d->string\(20,)j(40,)d ("Hello)h(World"\);)150 1407 y(print)g("\\nDone.\\n[Enter]\\n";)150 1486 y(getc\(STDIN\);)150 1644 y($d->close\(\))150 1866 y Fl(The)e(creator)f(functions)h(are)g Ff(newX11)p Fl(,)f Ff(newGIF)p Fl(,)f Ff(newPS)p Fl(,)h(etc.)60 b(and)35 b(accept)g(the)h(same)e(argumen)n(ts)g(as)h(the)150 1965 y(op)r(en)30 b(functions)g(in)f(the)h(C)g(v)n(ersion.)42 b(See)29 b(the)h(P)n(erl)g(do)r(cumen)n(tation)f(\()p Ff(perldoc)41 b(G2)p Fl(\))29 b(for)g(more)g(details)g(and)150 2065 y(the)f(test.pl)g(script)f(for)g(a)g(more)g(extensiv)n(e)g (example.)150 2343 y Fh(1.3.6)112 b(Python)38 b(in)m(terface)150 2544 y Fl(F)-7 b(unction)29 b(names)g(in)g(Python)g(are)f(the)i(same)e (as)g(in)i(C,)f(ho)n(w)n(ev)n(er)e(the)i(device)g(itself)g(is)g (implemen)n(ted)g(ob)5 b(ject)150 2643 y(orien)n(ted,)30 b(i.e.)46 b(the)31 b(device)g(argumen)n(t)e(is)h(omitted)h(in)g(all)f (metho)r(ds.)46 b(An)31 b(ob)5 b(ject)31 b(is)f(instan)n(tiated)g(with) h(one)150 2743 y(of)d(the)f Ff(g2_open_)e Fl(functions.)37 b(Here)27 b(is)h(a)f(simple)g(Python)h(script:)150 2944 y Fe(import)37 b(sys)150 3023 y(from)f(g2)g(import)h(*)150 3102 y(X11)f(=)g(g2_open_X11\(822,)j(575\))150 3181 y(PS)d(=)f (g2_open_PS\('foo.ps',)41 b(g2_A4,)c(g2_PS_land\))150 3260 y(graph)g(=)e(g2_open_vd\(\))150 3339 y(graph.g2_attach\(X11\))150 3417 y(graph.g2_attach\(PS\))150 3496 y(graph.g2_line\(30,)40 b(30,)c(90,)g(90\))150 3575 y(graph.g2_circle\(60,)41 b(60,)36 b(30\))150 3654 y(X11.g2_pen\(X11.g2_ink\(.7)q(5,)41 b(.2,)c(0\)\))150 3733 y(graph.g2_polygon\([60,)k(30,)36 b(30,)g(60,)g(60,)g(90,)h(90,)f(60]\))150 3812 y (graph.g2_set_dash\([20,)41 b(12]\))150 3891 y(sqrts)c(=)e([100,)i (100,)f(225,)h(150,)f(400,)g(200,)h(625,)f(250])150 3970 y(graph.g2_poly_line\(sqrts)q(\))150 4048 y(graph.g2_image\(640,)41 b(252,)36 b([[2,)g(4,)g(6],[3,)h(6,)f(9],[4,)h(8,)f(12]]\))150 4127 y(graph.g2_flush\(\))150 4206 y(print)h('Done.\\n[Enter]')150 4285 y(sys.stdin.read\(1\))150 4364 y(graph.g2_close\(\))150 4586 y Fl(In)30 b(C,)f(man)n(y)g(functions)h(exp)r(ect)g(a)f(p)r(oin)n (ter)h(to)f(a)g(bu\033er)h(of)g Ff(double)p Fl('s)d(and)i(an)g Ff(int)g Fl(stating)g(the)h(n)n(um)n(b)r(er)f(of)150 4686 y(p)r(oin)n(ts)j(in)g(this)g(bu\033er.)50 b(In)32 b(Python,)i(these)e(functions)g(are)f(passed)g(just)h(a)g(list)g(of)g Ff(float)p Fl(s.)47 b(Y)-7 b(ou)32 b(need)g(not)150 4785 y(sp)r(ecify)c(the)g(n)n(um)n(b)r(er)f(of)h(p)r(oin)n(ts:)36 b(Python)28 b(kno)n(ws)f(the)h(length)f(of)h(the)g(list.)150 4932 y(F)-7 b(ull)28 b(do)r(cumen)n(tation,)f(including)h(sample)f(co)r (de,)h(is)f(a)n(v)-5 b(ailable)26 b(from)i(the)f(in)n(teractiv)n(e)g (Python)h(prompt:)150 5133 y Fe($)36 b(python)150 5212 y(>>>)g(import)h(g2)150 5291 y(>>>)f(help\(g2\))150 5513 y Fl(Here)e(functions)g(with)h(a)f(Python)g(sp)r(eci\034c)h(form)e (\(e.g.)57 b Fm(g2_query_p)s(oin)m(ter\(\))p Fl(\(p.)14 b(19\)\))35 b(are)e(mark)n(ed)g(as)150 5613 y(suc)n(h.)p 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 7 11 TeXDict begin 7 10 bop 150 70 a Fm(1.4)31 b(Con)m(tact)2994 b(7)p 150 103 3525 4 v 150 333 a Fj(1.4)130 b(Con)l(tact)150 562 y Fl(Y)-7 b(ou)28 b(can)f(con)n(tact)g(the)h(authors)e(and)h(con)n (tributors)f(b)n(y)i(e-mail)f(\(/)g(is)h(@)f(and)g(-)g(is)h(.\):)275 792 y Fg(\210)42 b Fl(Ljub)r(omir)27 b(Milano)n(vic:)36 b(ljub)r(o/users-sourceforge-net)275 958 y Fg(\210)42 b Fl(Horst)27 b(W)-7 b(agner:)35 b(w)n(agner/users-sourceforge-net)275 1124 y Fg(\210)42 b Fl(Tijs)63 b(Mic)n(hels)g(\()p Fm(spline)p Fl(\(p.)14 b(14\))62 b(implemen)n(tation)h(and)h Fm(Python)p Fl(\(p.)14 b(6\))64 b(wrapp)r(er\):)107 b(tijs/users-)358 1223 y(sourceforge-net)150 1453 y(or)27 b(visit)g(the)h(g2)f(home)g (page)g(on:)36 b Ff(http://g2.sourcef)o(or)o(ge.)o(ne)o(t/)p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 8 12 TeXDict begin 8 11 bop 150 70 a Fm(8)2901 b(g2)31 b(Main)h(P)m(age)p 150 103 3525 4 v 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h (Do)n(xygen)p eop end %%Page: 9 13 TeXDict begin 9 12 bop 150 1003 a Fk(Chapter)61 b(2)150 1465 y Fn(g2)72 b(Mo)6 b(dule)73 b(Index)150 1994 y Fj(2.1)130 b(g2)44 b(Mo)t(dules)150 2223 y Fl(Here)27 b(is)h(a)f(list)h(of)f(all)g (mo)r(dules:)268 2370 y(g2)g(User)g(In)n(terface)47 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)116 b(37)386 2486 y(color)26 b(manipulations)80 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)127 b(17)386 2585 y(output)28 b(con)n(trol)77 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)127 b(19)386 2685 y(devices)27 b(con)n(trol)65 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)127 b(21)386 2785 y(graphical)26 b(output)63 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)127 b(23)504 2893 y(splines)38 b(.)k(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)74 b(14)386 3001 y(virtual)27 b(device)h(related)e(functions)55 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)127 b(30)386 3100 y(g2)27 b(Ph)n(ysical)g(devices)34 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)127 b(38)504 3208 y(FIG)66 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)74 b(13)504 3308 y(GD)22 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)74 b(31)504 3407 y(P)n(ostScript)30 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)74 b(32)504 3507 y(MS)28 b(Windo)n(ws)55 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)74 b(35)504 3607 y(X11)69 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)74 b(36)p eop end %%Page: 10 14 TeXDict begin 10 13 bop 150 70 a Fm(10)2716 b(g2)31 b(Mo)s(dule)g (Index)p 150 103 3525 4 v 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h (Do)n(xygen)p eop end %%Page: 11 15 TeXDict begin 11 14 bop 150 1003 a Fk(Chapter)61 b(3)150 1465 y Fn(g2)72 b(P)-6 b(age)72 b(Index)150 1994 y Fj(3.1)130 b(g2)44 b(Related)f(P)l(ages)150 2223 y Fl(Here)27 b(is)h(a)f(list)h (of)f(all)g(related)g(do)r(cumen)n(tation)h(pages:)268 2370 y(PS)g(pap)r(er)f(sizes)76 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)116 b(39)p eop end %%Page: 12 16 TeXDict begin 12 15 bop 150 70 a Fm(12)2833 b(g2)31 b(P)m(age)i(Index)p 150 103 3525 4 v 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h (Do)n(xygen)p eop end %%Page: 13 17 TeXDict begin 13 16 bop 150 1003 a Fk(Chapter)61 b(4)150 1465 y Fn(g2)72 b(Mo)6 b(dule)73 b(Do)6 b(cumen)-6 b(tation)150 1994 y Fj(4.1)130 b(FIG)150 2239 y Fh(F)-9 b(unctions)275 2426 y Fg(\210)42 b Fl(G2L)27 b(in)n(t)h Fm(g2_op)s(en_FIG)f Fl(\(const)g(c)n(har)f Fi(\003)p Fl(\034le_name\))150 2705 y Fh(4.1.1)112 b(Detailed)36 b(Description)150 2906 y Fl(FIG)28 b(devices)g(generate)f(output)h(in)h(the)f(FIG)h(3.2)e (format.)38 b(F)-7 b(or)27 b(more)h(details)g(ab)r(out)g(FIG)g(format)g (and)g(x\034g)150 3006 y(application)f(please)g(visit)g Ff(http://www.xfig.o)o(rg)21 b Fl(.)142 3220 y Fm(Note:)311 3319 y Fl(FIG)35 b(is)f(a)f(v)n(ector-orien)n(ted)f(\(as)h(op)r(osed)h (to)f(pixel-orien)n(ted\))h(format.)55 b(Therefore)33 b Fm(g2_image)p Fl(\(p.)14 b(26\))311 3419 y(function)28 b(and)g(splines)f(are)g(not)g(optimally)h(supp)r(orted.)150 3699 y Fh(4.1.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 3899 y Fm(4.1.2.1)93 b(G2L)32 b(in)m(t)g(g2_op)s(en_FIG)f(\(const)h(c)m (har)h Fi(\003)f Fb(\034le_name)p Fm(\))150 4100 y Fl(Create)27 b(a)g(FIG)h(device.)36 b(g2)27 b(uses)g(A4)h(pap)r(er)f(size)g (\(landscap)r(e)g(orien)n(tation\))g(as)f(default.)142 4316 y Fm(P)m(arameters:)311 4416 y Fb(\034le_name)42 b Fl(\034g)27 b(\034le)h(name)142 4637 y Fm(Returns:)311 4737 y Fl(ph)n(ysical)f(device)g(id)p eop end %%Page: 14 18 TeXDict begin 14 17 bop 150 70 a Fm(14)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a Fj(4.2)130 b(splines)150 578 y Fh(F)-9 b(unctions)275 760 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_spline)g Fl(\(in)n(t)i(dev,)g(in)n(t)g(n,)f (double)h Fi(\003)p Fl(p)r(oin)n(ts,)f(in)n(t)h(o\))275 863 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_spline)f Fl(\(in)n(t)j(dev,)g(in)n(t)g(n,)g(double)f Fi(\003)p Fl(p)r(oin)n(ts,)g(in)n(t)h(o\))275 966 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_b_spline)h Fl(\(in)n(t)h(dev,)f(in)n(t)h(n,)g (double)f Fi(\003)p Fl(p)r(oin)n(ts,)g(in)n(t)h(o\))275 1069 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_b_spline)g Fl(\(in)n(t)i(dev,)f(in)n(t)h(n,)g(double)f Fi(\003)p Fl(p)r(oin)n(ts,)g(in)n(t)h(o\))275 1172 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_raspln)i Fl(\(in)n(t)g(dev,)f(in)n(t)h(n,)g (double)f Fi(\003)p Fl(p)r(oin)n(ts,)g(double)h(tn\))275 1274 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_raspln)h Fl(\(in)n(t)h(dev,)f(in)n(t)h(n,)g(double)f Fi(\003)p Fl(p)r(oin)n(ts,)h(double)f(tn\))275 1377 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_para_3)j Fl(\(in)n(t)f(dev,)f(in)n(t)h(n,)g (double)g Fi(\003)p Fl(p)r(oin)n(ts\))275 1480 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_para_3)i Fl(\(in)n(t)g(dev,)g(in)n(t)f (n,)h(double)g Fi(\003)p Fl(p)r(oin)n(ts\))275 1583 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_para_5)j Fl(\(in)n(t)f(dev,)f(in)n (t)h(n,)g(double)g Fi(\003)p Fl(p)r(oin)n(ts\))275 1686 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_para_5)i Fl(\(in)n(t)g(dev,)g(in)n(t)f(n,)h(double)g Fi(\003)p Fl(p)r(oin)n(ts\))150 1962 y Fh(4.2.1)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 2162 y Fm(4.2.1.1)93 b(v)m(oid)32 b(g2_b_spline)e(\(in)m(t)i Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(,)31 b(in)m(t)h Fb(o)p Fm(\))150 2362 y Fl(Plot)e(a)f(b-spline)g(curv)n(e)f(with)i Fa(o)35 b Fl(in)n(terp)r(olated)28 b(p)r(oin)n(ts)h(p)r(er)h(data)e(p)r (oin)n(t.)42 b(So)29 b(the)h(larger)d Fa(o)5 b Fl(,)31 b(the)e(more)g(\035uen)n(t)150 2462 y(the)f(curv)n(e.)36 b(F)-7 b(or)27 b(most)g(a)n(v)n(eraging)e(purp)r(oses,)h(this)i(is)g (the)g(righ)n(t)e(spline.)142 2649 y Fm(P)m(arameters:)311 2749 y Fb(dev)42 b Fl(device)28 b(id)311 2872 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 2994 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 3117 y Fb(o)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(in)n(terp)r(olated)f(p)r(oin)n(ts)g(p)r(er)h(data)f(p)r(oin)n(t) 150 3434 y Fm(4.2.1.2)93 b(v)m(oid)32 b(g2_\034lled_b_spline)d(\(in)m (t)j Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(,)31 b(in)m(t)h Fb(o)p Fm(\))150 3635 y Fl(Plot)f(a)g(\034lled)g(b-spline)f(curv)n(e)g(with)i Fa(o)k Fl(in)n(terp)r(olated)30 b(p)r(oin)n(ts)h(p)r(er)g(data)f(p)r (oin)n(t.)47 b(So)30 b(the)h(larger)e Fa(o)5 b Fl(,)33 b(the)e(more)150 3734 y(\035uen)n(t)d(the)g(curv)n(e.)36 b(F)-7 b(or)27 b(most)g(a)n(v)n(eraging)d(purp)r(oses,)j(this)h(is)f (the)h(righ)n(t)f(spline.)142 3921 y Fm(P)m(arameters:)311 4021 y Fb(dev)42 b Fl(device)28 b(id)311 4144 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 4267 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 4389 y Fb(o)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(in)n(terp)r(olated)f(p)r(oin)n(ts)g(p)r(er)h(data)f(p)r(oin)n(t) 150 4706 y Fm(4.2.1.3)93 b(v)m(oid)32 b(g2_\034lled_para_3)f(\(in)m(t)h Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 4907 y Fl(Using)25 b(Newton's)g(Divided)g (Di\033erences)g(metho)r(d,)h(plot)f(a)f(\034lled)i(piecewise)e (parametric)g(in)n(terp)r(olation)g(p)r(oly-)150 5006 y(nomial)j(of)h(degree)e(3)h(through)g(the)h(giv)n(en)f(data)g(p)r(oin) n(ts.)142 5193 y Fm(P)m(arameters:)311 5293 y Fb(dev)42 b Fl(device)28 b(id)311 5416 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g(size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 5539 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g (y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d (21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 15 19 TeXDict begin 15 18 bop 150 70 a Fm(4.2)31 b(splines)2996 b(15)p 150 103 3525 4 v 150 333 a(4.2.1.4)93 b(v)m(oid)32 b(g2_\034lled_para_5)f(\(in)m(t)h Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 537 y Fl(Using)25 b(Newton's)g(Divided)g(Di\033erences)g(metho)r(d,)h (plot)f(a)f(\034lled)i(piecewise)e(parametric)g(in)n(terp)r(olation)g (p)r(oly-)150 637 y(nomial)j(of)h(degree)e(5)h(through)g(the)h(giv)n (en)f(data)g(p)r(oin)n(ts.)142 862 y Fm(P)m(arameters:)311 961 y Fb(dev)42 b Fl(device)28 b(id)311 1103 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 1244 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)150 1622 y Fm(4.2.1.5)93 b(v)m(oid)32 b(g2_\034lled_raspln)e(\(in)m(t)i Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(,)32 b(double)f Fb(tn)p Fm(\))150 1827 y Fl(Plot)c(a)e(\034lled)i(piecewise)f(cubic)g(p)r(olynomial)f(with)i (adjustable)f(roundness)f(through)h(the)g(giv)n(en)f(data)h(p)r(oin)n (ts.)150 1926 y(Eac)n(h)f(Hermite)h(p)r(olynomial)f(b)r(et)n(w)n(een)h (t)n(w)n(o)f(data)g(p)r(oin)n(ts)g(is)h(made)f(up)h(of)g(40)f(lines.)36 b(T)-7 b(ension)25 b(factor)g Fa(tn)31 b Fl(m)n(ust)150 2026 y(b)r(e)d(b)r(et)n(w)n(een)f(0.0)g(\(v)n(ery)g(rounded\))g(and)h (2.0)e(\(not)i(rounded)f(at)h(all,)f(i.e.)37 b(essen)n(tially)26 b(a)h Fm(p)s(olyline)p Fl(\(p.)14 b(28\)\).)142 2255 y Fm(P)m(arameters:)311 2355 y Fb(dev)42 b Fl(device)28 b(id)311 2497 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n (ts)g(\(not)h(the)g(size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 2638 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 2780 y Fb(tn)42 b Fl(tension)27 b(factor)g(in)h(the)g(range)e([0.0,)h(2.0])150 3158 y Fm(4.2.1.6)93 b(v)m(oid)32 b(g2_\034lled_spline)d(\(in)m(t)j Fb(dev)p Fm(,)f(in)m(t)h Fb(n)p Fm(,)g(double)e Fi(\003)i Fb(p)-5 b(oints)p Fm(,)31 b(in)m(t)h Fb(o)p Fm(\))150 3362 y Fl(Using)c(Y)-7 b(oung's)27 b(metho)r(d)h(of)g(successiv)n(e)e (o)n(v)n(er-relaxation,)e(plot)k(a)g(\034lled)g(spline)g(curv)n(e)f (with)h Fa(o)34 b Fl(in)n(terp)r(olated)150 3462 y(p)r(oin)n(ts)27 b(p)r(er)h(data)f(p)r(oin)n(t.)37 b(So)27 b(the)h(larger)e Fa(o)5 b Fl(,)28 b(the)g(more)f(\035uen)n(t)h(the)g(curv)n(e.)142 3687 y Fm(P)m(arameters:)311 3786 y Fb(dev)42 b Fl(device)28 b(id)311 3928 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n (ts)g(\(not)h(the)g(size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 4069 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 4211 y Fb(o)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(in)n(terp)r(olated)f(p)r(oin)n(ts)g(p)r (er)h(data)f(p)r(oin)n(t)150 4589 y Fm(4.2.1.7)93 b(v)m(oid)32 b(g2_para_3)g(\(in)m(t)g Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 4793 y Fl(Using)23 b(Newton's)g(Divided)h(Di\033erences)f(metho)r(d,)i (plot)e(a)g(piecewise)g(parametric)f(in)n(terp)r(olation)g(p)r (olynomial)150 4893 y(of)28 b(degree)e(3)h(through)g(the)h(giv)n(en)f (data)g(p)r(oin)n(ts.)142 5118 y Fm(P)m(arameters:)311 5217 y Fb(dev)42 b Fl(device)28 b(id)311 5359 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 5501 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)p 150 5746 V 150 5823 a Fd(Generated)f(on)e (T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n (xygen)p eop end %%Page: 16 20 TeXDict begin 16 19 bop 150 70 a Fm(16)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.2.1.8)93 b(v)m(oid)32 b(g2_para_5)g(\(in)m(t)g Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 533 y Fl(Using)23 b(Newton's)g(Divided)h(Di\033erences)f(metho)r(d,)i (plot)e(a)g(piecewise)g(parametric)f(in)n(terp)r(olation)g(p)r (olynomial)150 633 y(of)28 b(degree)e(5)h(through)g(the)h(giv)n(en)f (data)g(p)r(oin)n(ts.)142 845 y Fm(P)m(arameters:)311 944 y Fb(dev)42 b Fl(device)28 b(id)311 1077 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 1210 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)150 1556 y Fm(4.2.1.9)93 b(v)m(oid)32 b(g2_raspln)f(\(in)m(t)h Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(,)32 b(double)e Fb(tn)p Fm(\))150 1757 y Fl(Plot)c(a)e(piecewise)h(cubic)g (p)r(olynomial)f(with)i(adjustable)f(roundness)f(through)g(the)i(giv)n (en)e(data)g(p)r(oin)n(ts.)36 b(Eac)n(h)150 1856 y(Hermite)31 b(p)r(olynomial)g(b)r(et)n(w)n(een)g(t)n(w)n(o)f(data)h(p)r(oin)n(ts)g (is)g(made)g(up)g(of)g(40)f(lines.)48 b(T)-7 b(ension)30 b(factor)h Fa(tn)36 b Fl(m)n(ust)c(b)r(e)150 1956 y(b)r(et)n(w)n(een)27 b(0.0)g(\(v)n(ery)g(rounded\))g(and)h(2.0)e(\(not)i(rounded)f(at)h (all,)f(i.e.)37 b(essen)n(tially)26 b(a)i Fm(p)s(olyline)p Fl(\(p.)14 b(28\)\).)142 2172 y Fm(P)m(arameters:)311 2272 y Fb(dev)42 b Fl(device)28 b(id)311 2405 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n(ts)g(\(not)h(the)g (size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 2538 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 2671 y Fb(tn)42 b Fl(tension)27 b(factor)g(in)h(the)g(range)e([0.0,)h(2.0])150 3017 y Fm(4.2.1.10)93 b(v)m(oid)31 b(g2_spline)f(\(in)m(t)i Fb(dev)p Fm(,)g(in)m(t)g Fb(n)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(,)32 b(in)m(t)g Fb(o)p Fm(\))150 3217 y Fl(Using)24 b(Y)-7 b(oung's)24 b(metho)r(d)g(of)h(successiv)n(e) d(o)n(v)n(er-relaxation,)f(plot)k(a)e(spline)i(curv)n(e)e(with)i Fa(o)30 b Fl(in)n(terp)r(olated)23 b(p)r(oin)n(ts)150 3317 y(p)r(er)k(data)h(p)r(oin)n(t.)37 b(So)27 b(the)h(larger)d Fa(o)5 b Fl(,)29 b(the)f(more)e(\035uen)n(t)i(the)g(curv)n(e.)142 3529 y Fm(P)m(arameters:)311 3628 y Fb(dev)42 b Fl(device)28 b(id)311 3761 y Fb(n)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(data)f(p)r(oin)n (ts)g(\(not)h(the)g(size)f(of)h(bu\033er)f Fa(p)l(oints)7 b Fl(\))311 3894 y Fb(p)-5 b(oints)42 b Fl(bu\033er)28 b(of)f Fa(n)34 b Fl(data)27 b(p)r(oin)n(ts)g(x1,)g(y1,)h(...)37 b(x)p Fa(n)6 b Fl(,)27 b(y)p Fa(n)311 4027 y Fb(o)42 b Fl(n)n(um)n(b)r(er)27 b(of)h(in)n(terp)r(olated)f(p)r(oin)n(ts)g(p)r (er)h(data)f(p)r(oin)n(t)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e (T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n (xygen)p eop end %%Page: 17 21 TeXDict begin 17 20 bop 150 70 a Fm(4.3)31 b(color)g(manipulations)2452 b(17)p 150 103 3525 4 v 150 333 a Fj(4.3)130 b(color)45 b(manipulations)150 584 y Fh(F)-9 b(unctions)275 790 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_p)s(en)h Fl(\(in)n(t)h(dev,)g(in)n (t)g(color\))275 912 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_bac)m (kground)j Fl(\(in)n(t)f(dev,)g(in)n(t)f(color\))275 1033 y Fg(\210)42 b Fl(in)n(t)27 b Fm(g2_ink)h Fl(\(in)n(t)g(p)r (d_dev,)f(double)h(red,)f(double)g(green,)g(double)h(blue\))275 1155 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_reset_palette)h Fl(\(in)n(t)h(dev\))275 1277 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_clear_palette)i Fl(\(in)n(t)g(dev\))275 1398 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_allo)s(cate_basic_colors)h Fl(\(in)n(t)h(dev\))150 1707 y Fh(4.3.1)112 b(Detailed)36 b(Description)150 1914 y Fl(The)28 b(color)f(concept)h(used)g(in)g(the) g(g2)g(library)e(is)i(inspired)g(b)n(y)g(Sir)g(Cliv)n(e)f(Sinclair)h (solution)f(implemen)n(ted)i(in)150 2013 y(the)k(ZX)g(Sp)r(ectrum)g (computer.)52 b(With)34 b(the)f Fm(g2_p)s(en\(\))p Fl(\(p.)14 b(18\))32 b(function)h(it)g(is)g(p)r(ossible)f(to)h(c)n(ho)r(ose)e(a)i (p)r(en)150 2113 y(created)28 b(b)n(y)h(the)h Fm(g2_ink\(\))p Fl(\(p.)14 b(18\))28 b(function.)42 b(Note)29 b(that)h(g2_ink)e (function)h(is)g(only)g(de\034ned)g(for)g(ph)n(ysical)150 2212 y(devices.)36 b(The)28 b(prede\034ned)f(colors)f(\(see)i(g2_test)e (demo)h(program\))f(ha)n(v)n(e)h(p)r(ens)g(from)h(0)f(till)h(26)f (\(inclusiv)n(e\).)150 2359 y(Some)g(basic)g(colors)f(are:)275 2586 y Fg(\210)42 b Fl(0)27 b(white)275 2780 y Fg(\210)42 b Fl(1)27 b(blac)n(k)275 2973 y Fg(\210)42 b Fl(3)27 b(blue)275 3166 y Fg(\210)42 b Fl(7)27 b(green)275 3360 y Fg(\210)42 b Fl(19)26 b(red)275 3553 y Fg(\210)42 b Fl(25)26 b(y)n(ello)n(w)150 3862 y Fh(4.3.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 4069 y Fm(4.3.2.1)93 b(v)m(oid)32 b(g2_allo)s(cate_basic_colors)f(\(in)m(t)h Fb(dev)p Fm(\))150 4275 y Fl(Allo)r(cate)27 b(basic)g(colors)142 4491 y Fm(P)m(arameters:)311 4591 y Fb(dev)42 b Fl(device)150 4987 y Fm(4.3.2.2)93 b(v)m(oid)32 b(g2_clear_palette)g(\(in)m(t)f Fb(dev)p Fm(\))150 5193 y Fl(Remo)n(v)n(e)26 b(all)i(inks.)142 5410 y Fm(P)m(arameters:)311 5509 y Fb(dev)42 b Fl(device)p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 18 22 TeXDict begin 18 21 bop 150 70 a Fm(18)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.3.2.3)93 b(in)m(t)32 b(g2_ink)f(\(in)m(t)h Fb(p)-5 b(d_dev)p Fm(,)32 b(double)e Fb(r)-5 b(e)g(d)p Fm(,)32 b(double)f Fb(gr)-5 b(e)g(en)p Fm(,)31 b(double)g Fb(blue)p Fm(\))150 533 y Fl(Create)c(an)g(ink.)37 b(T)-7 b(o)27 b(put)h(ink)g(in)n(to)f(the)h (p)r(en)g(use)g Fm(g2_p)s(en\(\))p Fl(\(p.)14 b(18\).)142 755 y Fm(P)m(arameters:)311 854 y Fb(p)-5 b(d_dev)42 b Fl(ph)n(ysical)27 b(device)311 987 y Fb(r)-5 b(e)g(d)42 b Fl(red)27 b(comp)r(onen)n(t)g(\(0-1\))g(according)f(to)h(the)h(R)n (GB)g(color)e(mo)r(del)311 1120 y Fb(gr)-5 b(e)g(en)42 b Fl(green)27 b(comp)r(onen)n(t)g(\(0-1\))g(according)f(to)h(the)h(R)n (GB)f(color)g(mo)r(del)311 1253 y Fb(blue)41 b Fl(blue)28 b(comp)r(onen)n(t)f(\(0-1\))g(according)f(to)i(the)f(R)n(GB)h(color)e (mo)r(del)142 1469 y Fm(Returns:)311 1569 y Fl(new)i(p)r(en,)g(see)f Fm(g2_p)s(en\(\))p Fl(\(p.)14 b(18\))150 1915 y Fm(4.3.2.4)93 b(v)m(oid)32 b(g2_p)s(en)f(\(in)m(t)h Fb(dev)p Fm(,)f(in)m(t)h Fb(c)-5 b(olor)p Fm(\))150 2115 y Fl(Set)28 b(p)r(en)g(color)e(for)h (all)g(follo)n(wing)g(op)r(erations,)f(see)h(also)g Fm(g2_ink\(\))p Fl(\(p.)14 b(18\).)142 2337 y Fm(P)m(arameters:)311 2436 y Fb(dev)42 b Fl(device)311 2569 y Fb(c)-5 b(olor)42 b Fl(p)r(en)28 b(\(either)f(one)h(of)f(default)h(p)r(ens)g(0-26,)e(or)g (a)i(p)r(en)g(returned)f(b)n(y)g Fm(g2_ink\(\))p Fl(\(p.)14 b(18\))27 b(\))150 2915 y Fm(4.3.2.5)93 b(v)m(oid)32 b(g2_reset_palette)f(\(in)m(t)h Fb(dev)p Fm(\))150 3116 y Fl(Clear)27 b(collor)f(palette)h(\(remo)n(v)n(e)g(all)g(inks\))g(and) h(reallo)r(cate)e(basic)h(colors.)142 3332 y Fm(P)m(arameters:)311 3432 y Fb(dev)42 b Fl(device)150 3778 y Fm(4.3.2.6)93 b(v)m(oid)32 b(g2_set_bac)m(kground)g(\(in)m(t)g Fb(dev)p Fm(,)g(in)m(t)g Fb(c)-5 b(olor)p Fm(\))150 3979 y Fl(Set)28 b(the)g(bac)n(kground)d(color)142 4191 y Fm(P)m(arameters:)311 4290 y Fb(dev)42 b Fl(device)311 4423 y Fb(c)-5 b(olor)42 b Fl(p)r(en)28 b(\(either)f(one)h(of)f(default)h(p)r(ens)g(0-26,)e(or)g (a)i(p)r(en)g(returned)f(b)n(y)g Fm(g2_ink\(\))p Fl(\(p.)14 b(18\))27 b(\))p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 19 23 TeXDict begin 19 22 bop 150 70 a Fm(4.4)31 b(output)h(con)m(trol)2672 b(19)p 150 103 3525 4 v 150 333 a Fj(4.4)130 b(output)44 b(con)l(trol)150 580 y Fh(F)-9 b(unctions)275 771 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\035ush)h Fl(\(in)n(t)i(dev\))275 883 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_sa)m(v)m(e)j Fl(\(in)n(t)f(dev\))275 995 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_clear)i Fl(\(in)n(t)g(dev\))275 1106 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_fon)m(t_size)h Fl(\(in)n(t)i(dev,)e(double) h(size\))275 1218 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_line_width)g Fl(\(in)n(t)i(dev,)g(double)f(w\))275 1329 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_dash)i Fl(\(in)n(t)g(dev,)f(in)n(t)h(N,)g (double)f Fi(\003)p Fl(dashes\))275 1441 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_QP)h Fl(\(in)n(t)i(dev,)e(double)h(d,)f(en) n(um)h(QPshap)r(e)f(shap)r(e\))275 1552 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_query_p)s(oin)m(ter)i Fl(\(in)n(t)g(dev,)g (double)f Fi(\003)p Fl(x,)g(double)h Fi(\003)p Fl(y)-7 b(,)27 b(unsigned)g(in)n(t)h Fi(\003)p Fl(button\))275 1664 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_get_p)s(d_handles)h Fl(\(in)n(t)h(p)r(d,)g(v)n(oid)f Fi(\003)p Fl (handles[G2_PD_HANDLES_SIZE]\))150 1951 y Fh(4.4.1)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 2153 y Fm(4.4.1.1)93 b(v)m(oid)32 b(g2_clear)g(\(in)m(t)g Fb(dev)p Fm(\))150 2355 y Fl(Clear)27 b(device)142 2556 y Fm(P)m(arameters:)311 2656 y Fb(dev)42 b Fl(device)28 b(n)n(um)n(b)r(er)150 3015 y Fm(4.4.1.2)93 b(v)m(oid)32 b(g2_\035ush)f(\(in)m(t)h Fb(dev)p Fm(\))150 3217 y Fl(Flush)c(output)g(bu\033ers.)142 3435 y Fm(P)m(arameters:)311 3534 y Fb(dev)42 b Fl(device)28 b(id)150 3893 y Fm(4.4.1.3)93 b(v)m(oid)33 b(g2_get_p)s(d_handles)f (\(in)m(t)i Fb(p)-5 b(d)p Fm(,)33 b(v)m(oid)g Fi(\003)g Fb(hand)5 b(les)p Fm([G2_PD_HANDLES_-)516 3993 y(SIZE]\))150 4195 y Fl(Get)37 b(p)r(oin)n(ters)e(to)h(ph)n(ysical)f(device)h(sp)r (eci\034c)g(handles.)62 b(This)36 b(function)h(should)f(b)r(e)g(used)g (only)g(if)h(y)n(ou)e(are)150 4295 y(familiar)30 b(with)h(the)g(g2)f (source)f(co)r(de.)46 b(F)-7 b(or)30 b(details)h(see)f(ph)n(ysical)g (device)g(source)g(co)r(de)g(\(e.g.)46 b(in)31 b(src/X11/\).)150 4394 y(Example)d(usage)e(can)h(b)r(e)h(found)g(in)g(demo/handles.c.)142 4616 y Fm(P)m(arameters:)311 4716 y Fb(p)-5 b(d)42 b Fl(ph)n(ysical)27 b(device)311 4852 y Fb(hand)5 b(les)42 b Fl(returns)27 b(p)r(oin)n(ters)g(to)g(ph)n(ysical)g(device)g(lo)n(w)g (lev)n(el)g(handles)150 5212 y Fm(4.4.1.4)93 b(v)m(oid)34 b(g2_query_p)s(oin)m(ter)g(\(in)m(t)h Fb(dev)p Fm(,)f(double)f Fi(\003)h Fb(x)p Fm(,)g(double)f Fi(\003)h Fb(y)p Fm(,)f(unsigned)g(in) m(t)h Fi(\003)516 5311 y Fb(button)p Fm(\))150 5513 y Fl(Query)c(p)r(oin)n(ter)g(\(e.g.)47 b(mouse)30 b(for)g(X11\))h(p)r (osition)g(and)f(button)i(state.)46 b(See)31 b(the)g(demo)g(program)e (p)r(oin)n(ter.c)150 5613 y(for)e(an)g(example.)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e (21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 20 24 TeXDict begin 20 23 bop 150 70 a Fm(20)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 142 307 a(P)m(arameters:)311 407 y Fb(dev)42 b Fl(device)311 531 y Fb(x)f Fl(returns)27 b(p)r(oin)n(ter)g(x)h(co)r(ordinate)311 655 y Fb(y)42 b Fl(returns)26 b(p)r(oin)n(ter)h(y)h(co)r(ordinate)311 779 y Fb(button)42 b Fl(returns)26 b(button)i(state)150 1100 y Fm(4.4.1.5)93 b(v)m(oid)32 b(g2_sa)m(v)m(e)g(\(in)m(t)g Fb(dev)p Fm(\))150 1300 y Fl(Sa)n(v)n(e)26 b(output)142 1490 y Fm(P)m(arameters:)311 1590 y Fb(dev)42 b Fl(device)28 b(id)150 1911 y Fm(4.4.1.6)93 b(v)m(oid)32 b(g2_set_dash)f(\(in)m(t)h Fb(dev)p Fm(,)g(in)m(t)g Fb(N)p Fm(,)f(double)g Fi(\003)h Fb(dashes)p Fm(\))150 2111 y Fl(Set)c(line)g(dash.)36 b(Set)28 b Fa(N)41 b Fl(to)28 b(0)f(and)g Fa(dashes)36 b Fl(to)27 b(NULL)h(to)g(restore)e(solid)h(line.)142 2285 y Fm(P)m(arameters:)311 2385 y Fb(dev)42 b Fl(device)311 2509 y Fb(N)g Fl(n)n(um)n(b)r(er)28 b(of)f(dash)g(comp)r(onen)n(ts)g (\(0)h(for)f(solid)g(line\))311 2633 y Fb(dashes)43 b Fl(v)n(ector)26 b(of)i(dash)f(lengths)g(\(blac)n(k,)g(white,)h(blac)n (k,)f(...\))150 2954 y Fm(4.4.1.7)93 b(v)m(oid)32 b(g2_set_fon)m (t_size)f(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(size)p Fm(\))150 3154 y Fl(Set)d(fon)n(t)g(size)142 3329 y Fm(P)m(arameters:) 311 3428 y Fb(dev)42 b Fl(device)311 3552 y Fb(size)g Fl(new)27 b(fon)n(t)h(size)150 3873 y Fm(4.4.1.8)93 b(v)m(oid)32 b(g2_set_line_width)e(\(in)m(t)i Fb(dev)p Fm(,)f(double)g Fb(w)p Fm(\))150 4073 y Fl(Set)d(line)g(width.)142 4248 y Fm(P)m(arameters:)311 4347 y Fb(dev)42 b Fl(device)311 4471 y Fb(w)g Fl(new)27 b(line)h(width)150 4792 y Fm(4.4.1.9)93 b(v)m(oid)32 b(g2_set_QP)f(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(d)p Fm(,)g(en)m(um)f(QPshap)s(e)i Fb(shap)-5 b(e)p Fm(\))150 4992 y Fl(Set)28 b(QuasiPixel)f(size)g(and)h(shap)r(e.)142 5183 y Fm(P)m(arameters:)311 5282 y Fb(dev)42 b Fl(device)311 5407 y Fb(d)g Fl(size)311 5531 y Fb(shap)-5 b(e)43 b Fl(shap)r(e)27 b(\(rectangle)g(or)f(circle,)h(see)h(QPshap)r(e)f(\))p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 21 25 TeXDict begin 21 24 bop 150 70 a Fm(4.5)31 b(devices)g(con)m(trol)2656 b(21)p 150 103 3525 4 v 150 333 a Fj(4.5)130 b(devices)45 b(con)l(trol)150 578 y Fh(F)-9 b(unctions)275 758 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_close)h Fl(\(in)n(t)h(dev\))275 860 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_auto_\035ush)i Fl(\(in)n(t)g(dev,)f(in)n(t)h(on_o\033)6 b(\))275 961 y Fg(\210)42 b Fl(v)n(oid)c Fm(g2_set_co)s(ordinate_system)f Fl(\(in)n(t)j(dev,)i(double)d(x_origin,)i(double)e(y_origin,)h(double) 358 1061 y(x_m)n(ul,)27 b(double)g(y_m)n(ul\))275 1162 y Fg(\210)42 b Fl(in)n(t)27 b Fm(g2_ld)g Fl(\(v)n(oid\))275 1263 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_set_ld)h Fl(\(in)n(t)h(dev\)) 150 1537 y Fh(4.5.1)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 1738 y Fm(4.5.1.1)93 b(v)m(oid)32 b(g2_close)e(\(in)m(t)i Fb(dev)p Fm(\))150 1938 y Fl(Close)27 b(and)g(delete)h(a)f(device.)142 2101 y Fm(P)m(arameters:)311 2201 y Fb(dev)42 b Fl(device)150 2508 y Fm(4.5.1.2)93 b(in)m(t)32 b(g2_ld)f(\(v)m(oid\))150 2709 y Fl(Get)d(the)g(last)f(accessed)f(device.)37 b(G2LD)28 b(macro)e(is)h(de\034ned)h(as)f(the)h(g2_ld)e(function.)256 2885 y Fe(g2_open_X11\(100,)40 b(100\);)256 2964 y(g2_plot\(G2LD,)f (50,)d(50\);)150 3271 y Fm(4.5.1.3)93 b(v)m(oid)32 b (g2_set_auto_\035ush)f(\(in)m(t)h Fb(dev)p Fm(,)g(in)m(t)g Fb(on_o\033)p Fm(\))150 3472 y Fl(Set)f(auto)f(\035ush)h(mo)r(de)g(for) f(device)g Fa(dev)9 b Fl(.)47 b(Auto)31 b(\035ush)g(mo)r(de)f(means)g (that)h(after)f(eac)n(h)g(graphical)f(op)r(eration)150 3571 y(g2)j(library)g(automatically)g(calls)h(\035ush)h(function)f(to)h (ensure)e(that)i(output)g(is)f(realy)f(displa)n(y)n(ed.)53 b(Ho)n(w)n(ev)n(er,)150 3671 y(freqen)n(t)37 b(\035ushing)g(decreases)e (p)r(erformance.)64 b(Alternativ)n(e)36 b(is)h(to)g(\035ush)g(output)h (when)f(needed)g(b)n(y)g(calling)150 3771 y(g2_\035ush)26 b(function.)142 3953 y Fm(P)m(arameters:)311 4052 y Fb(dev)42 b Fl(device)311 4172 y Fb(on_o\033)f Fl(1-on)27 b(0-o\033)150 4480 y Fm(4.5.1.4)93 b(v)m(oid)36 b(g2_set_co)s(ordinate_system)e(\(in) m(t)j Fb(dev)p Fm(,)g(double)e Fb(x_origin)p Fm(,)g(double)516 4579 y Fb(y_origin)p Fm(,)29 b(double)i Fb(x_mul)p Fm(,)f(double)h Fb(y_mul)p Fm(\))150 4780 y Fl(Set)d(the)g(user)f(co)r(ordinate)f (system.)142 4959 y Fm(P)m(arameters:)311 5058 y Fb(dev)42 b Fl(device)311 5178 y Fb(x_origin)e Fl(x)27 b(co)r(ordinate)g(of)g (the)h(new)g(origin)e(\(expressed)h(in)h(the)f(default)h(co)r(ordinate) f(system\))311 5298 y Fb(y_origin)40 b Fl(x)27 b(co)r(ordinate)g(of)g (the)h(new)g(origin)e(\(expressed)h(in)h(the)g(default)g(co)r(ordinate) e(system\))311 5418 y Fb(x_mul)40 b Fl(x)28 b(scaling)e(factor)311 5537 y Fb(y_mul)41 b Fl(y)27 b(scaling)g(factor)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e (21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 22 26 TeXDict begin 22 25 bop 150 70 a Fm(22)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.5.1.5)93 b(v)m(oid)32 b(g2_set_ld)f(\(in)m(t)g Fb(dev)p Fm(\))150 533 y Fl(Set)d(the)g(last)f(accessed)f(device.)37 b(See)28 b(also)e Fm(g2_ld\(\))p Fl(\(p.)14 b(21\))27 b(function.)142 755 y Fm(P)m(arameters:)311 854 y Fb(dev)42 b Fl(device)p 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 23 27 TeXDict begin 23 26 bop 150 70 a Fm(4.6)31 b(graphical)h(output)2582 b(23)p 150 103 3525 4 v 150 333 a Fj(4.6)130 b(graphical)45 b(output)150 578 y Fh(Mo)s(dules)275 759 y Fg(\210)d Fm(splines)150 1034 y Fh(F)-9 b(unctions)275 1215 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_mo)m(v)m(e)h Fl(\(in)n(t)h(dev,)f(double)h(x,)f (double)h(y\))275 1317 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_mo)m(v)m(e_r)h Fl(\(in)n(t)h(dev,)g(double)f(dx,)h(double)g(dy\)) 275 1419 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_plot)h Fl(\(in)n(t)h(dev,)g(double)f(x,)h(double)f(y\))275 1522 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_plot_r)i Fl(\(in)n(t)g(dev,)f (double)h(rx,)f(double)g(ry\))275 1624 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_line)h Fl(\(in)n(t)h(dev,)f(double)h(x1,)f (double)g(y1,)g(double)h(x2,)f(double)g(y2\))275 1726 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_line_r)h Fl(\(in)n(t)h(dev,)g (double)f(dx,)h(double)f(dy\))275 1829 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_line_to)h Fl(\(in)n(t)h(dev,)f(double)h(x,)f (double)h(y\))275 1931 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_p)s(oly_line)g Fl(\(in)n(t)i(dev,)g(in)n(t)g(N_pt,)f(double)h Fi(\003)p Fl(p)r(oin)n(ts\))275 2033 y Fg(\210)42 b Fl(v)n(oid)28 b Fm(g2_triangle)g Fl(\(in)n(t)i(dev,)g(double)f(x1,)g(double)g(y1,)g (double)h(x2,)f(double)g(y2,)g(double)g(x3,)g(double)358 2133 y(y3\))275 2235 y Fg(\210)42 b Fl(v)n(oid)28 b Fm (g2_\034lled_triangle)f Fl(\(in)n(t)i(dev,)g(double)f(x1,)h(double)f (y1,)h(double)f(x2,)h(double)g(y2,)f(double)h(x3,)358 2335 y(double)e(y3\))275 2437 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_rectangle)i Fl(\(in)n(t)g(dev,)f(double)h(x1,)f(double)g(y1,)g (double)h(x2,)f(double)g(y2\))275 2540 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_rectangle)h Fl(\(in)n(t)h(dev,)f(double) h(x1,)f(double)g(y1,)g(double)h(x2,)f(double)g(y2\))275 2642 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_p)s(olygon)h Fl(\(in)n(t)h(dev,)f(in)n(t)h(N_pt,)g(double)f Fi(\003)p Fl(p)r(oin)n(ts\))275 2744 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_p)s(olygon)g Fl(\(in)n(t)i(dev,)f(in)n(t)h(N_pt,)g (double)f Fi(\003)p Fl(p)r(oin)n(ts\))275 2846 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_ellipse)f Fl(\(in)n(t)k(dev,)e(double)h(x,)f (double)h(y)-7 b(,)27 b(double)h(r1,)e(double)i(r2\))275 2949 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_ellipse)f Fl(\(in)n(t)j(dev,)f(double)h(x,)f(double)h(y)-7 b(,)27 b(double)h(r1,)e(double)i(r2\))275 3051 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_circle)i Fl(\(in)n(t)g(dev,)f(double)h(x,)f (double)h(y)-7 b(,)27 b(double)h(r\))275 3153 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_\034lled_circle)h Fl(\(in)n(t)h(dev,)f(double)h (x,)f(double)h(y)-7 b(,)27 b(double)h(r\))275 3256 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_arc)j Fl(\(in)n(t)f(dev,)g(double)f (x,)g(double)h(y)-7 b(,)28 b(double)f(r1,)g(double)g(r2,)g(double)g (a1,)g(double)h(a2\))275 3358 y Fg(\210)42 b Fl(v)n(oid)30 b Fm(g2_\034lled_arc)h Fl(\(in)n(t)h(dev,)g(double)f(x,)h(double)f(y)-7 b(,)32 b(double)f(r1,)h(double)f(r2,)g(double)g(a1,)g(double)358 3458 y(a2\))275 3560 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_string)h Fl(\(in)n(t)h(dev,)g(double)f(x,)h(double)f(y)-7 b(,)28 b(const)f(c)n(har)f Fi(\003)p Fl(text\))275 3662 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_image)g Fl(\(in)n(t)i(dev,)f(double)h(x,)f (double)h(y)-7 b(,)27 b(in)n(t)h(x_size,)f(in)n(t)h(y_size,)e(in)n(t)i Fi(\003)p Fl(p)r(ens\))275 3765 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_plot_QP)h Fl(\(in)n(t)h(dev,)g(double)f(x,)h(double)f(y\))150 4039 y Fh(4.6.1)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 4240 y Fm(4.6.1.1)93 b(v)m(oid)32 b(g2_arc)i(\(in)m(t)f Fb(dev)p Fm(,)f(double)g Fb(x)p Fm(,)g(double)f Fb(y)p Fm(,)h(double)g Fb(r1)p Fm(,)g(double)g Fb(r2)p Fm(,)g(double)f Fb(a1)p Fm(,)516 4340 y(double)g Fb(a2)p Fm(\))150 4540 y Fl(Dra)n(w)c(an)g(arc.)142 4708 y Fm(P)m(arameters:)311 4807 y Fb(dev)42 b Fl(device)311 4929 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen)n(ter)311 5051 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n(ter)311 5172 y Fb(r1)42 b Fl(x)27 b(radius)311 5294 y Fb(r2)42 b Fl(y)27 b(radius)311 5416 y Fb(a1)42 b Fl(starting)27 b(angle)f(\(in)j(deg.)36 b(0-360\))311 5537 y Fb(a2)42 b Fl(ending)27 b(angle)g(\(in)h(deg.)37 b(0-360\))p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 24 28 TeXDict begin 24 27 bop 150 70 a Fm(24)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.6.1.2)93 b(v)m(oid)32 b(g2_circle)f(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)g(double)f Fb(y)p Fm(,)h(double)g Fb(r)p Fm(\))150 533 y Fl(Dra)n(w)c(a)g(circle.)142 725 y Fm(P)m(arameters:) 311 824 y Fb(dev)42 b Fl(device)311 955 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen)n(ter)311 1086 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n(ter)311 1217 y Fb(r)42 b Fl(radius)150 1558 y Fm(4.6.1.3)93 b(v)m(oid)32 b(g2_ellipse)d(\(in)m(t)j Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)f(double)h Fb(y)p Fm(,)g(double)g Fb(r1)p Fm(,)g(double)g Fb(r2)p Fm(\))150 1759 y Fl(Dra)n(w)c(an)g(ellipse.)142 1966 y Fm(P)m(arameters:)311 2066 y Fb(dev)42 b Fl(device)311 2197 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen)n(ter)311 2328 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n(ter)311 2459 y Fb(r1)42 b Fl(x)27 b(radius)311 2590 y Fb(r2)42 b Fl(y)27 b(radius)150 2931 y Fm(4.6.1.4)93 b(v)m(oid)35 b(g2_\034lled_arc)f(\(in)m(t)h Fb(dev)p Fm(,)h(double)e Fb(x)p Fm(,)g(double)g Fb(y)p Fm(,)h(double)e Fb(r1)p Fm(,)i(double)f Fb(r2)p Fm(,)516 3031 y(double)d Fb(a1)p Fm(,)g(double)g Fb(a2)p Fm(\))150 3231 y Fl(Dra)n(w)c(a)g(\034lled)h (arc.)142 3423 y Fm(P)m(arameters:)311 3522 y Fb(dev)42 b Fl(device)311 3653 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen) n(ter)311 3784 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n (ter)311 3915 y Fb(r1)42 b Fl(x)27 b(radius)311 4047 y Fb(r2)42 b Fl(y)27 b(radius)311 4178 y Fb(a1)42 b Fl(starting)27 b(angle)f(\(in)j(deg.)36 b(0-360\))311 4309 y Fb(a2)42 b Fl(ending)27 b(angle)g(\(in)h(deg.)37 b(0-360\))150 4649 y Fm(4.6.1.5)93 b(v)m(oid)32 b(g2_\034lled_circle)e(\(in)m(t)i Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)g(double)g Fb(y)p Fm(,)g(double)f Fb(r)p Fm(\))150 4850 y Fl(Dra)n(w)d(a)g(\034lled)h (circle.)142 5041 y Fm(P)m(arameters:)311 5141 y Fb(dev)42 b Fl(device)311 5272 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen) n(ter)311 5403 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n (ter)311 5534 y Fb(r)42 b Fl(radius)p 150 5746 V 1709 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f (2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 25 29 TeXDict begin 25 28 bop 150 70 a Fm(4.6)31 b(graphical)h(output)2582 b(25)p 150 103 3525 4 v 150 333 a(4.6.1.6)93 b(v)m(oid)32 b(g2_\034lled_ellipse)c(\(in)m(t)k Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)f(double)h Fb(y)p Fm(,)g(double)g Fb(r1)p Fm(,)g(double)g Fb(r2)p Fm(\))150 533 y Fl(Dra)n(w)c(a)g(\034lled)h (ellipse.)142 730 y Fm(P)m(arameters:)311 829 y Fb(dev)42 b Fl(device)311 956 y Fb(x)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(cen)n (ter)311 1083 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(cen)n (ter)311 1209 y Fb(r1)42 b Fl(x)27 b(radius)311 1336 y Fb(r2)42 b Fl(y)27 b(radius)150 1664 y Fm(4.6.1.7)93 b(v)m(oid)32 b(g2_\034lled_p)s(olygon)d(\(in)m(t)j Fb(dev)p Fm(,)g(in)m(t)g Fb(N_pt)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 1864 y Fl(Dra)n(w)27 b(a)g(\034lled)h(p)r(olygon.) 142 2061 y Fm(P)m(arameters:)311 2161 y Fb(dev)42 b Fl(device)311 2287 y Fb(N_pt)g Fl(n)n(um)n(b)r(er)27 b(of)h(p)r(oin)n(ts)f(\(Note:)37 b(It)28 b(is)g(not)f(size)g(of)h Fa(p)l(oints)35 b Fl(v)n(ector!\))311 2414 y Fb(p)-5 b(oints)42 b Fl(v)n(ector)26 b(of)i(co)r(ordinates:)35 b(x1,)27 b(y1,)g(x2,)g(y2,)g(...)150 2742 y Fm(4.6.1.8)93 b(v)m(oid)32 b(g2_\034lled_rectangle)f(\(in)m(t)i Fb(dev)p Fm(,)f(double)g Fb(x1)p Fm(,)g(double)f Fb(y1)p Fm(,)h(double)f Fb(x2)p Fm(,)h(double)516 2842 y Fb(y2)p Fm(\))150 3042 y Fl(Dra)n(w)27 b(a)g(\034lled)h(rectangle)e(sp)r(eci\034ed)i(b)n(y)f (the)h(t)n(w)n(o)f(opp)r(osite)g(corner)f(p)r(oin)n(ts.)142 3239 y Fm(P)m(arameters:)311 3338 y Fb(dev)42 b Fl(device)311 3465 y Fb(x1)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(1st)f(corner)311 3592 y Fb(y1)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(1st)f(corner)311 3718 y Fb(x2)41 b Fl(x)28 b(co)r(ordinate)e(of)i(the)g(3rd)f(corner)311 3845 y Fb(y2)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(3rd)f(corner)150 4173 y Fm(4.6.1.9)93 b(v)m(oid)33 b(g2_\034lled_triangle)e(\(in)m(t)i Fb(dev)p Fm(,)h(double)e Fb(x1)p Fm(,)g(double)h Fb(y1)p Fm(,)f(double)g Fb(x2)p Fm(,)h(double)516 4272 y Fb(y2)p Fm(,)e(double)g Fb(x3)p Fm(,)g(double)g Fb(y3)p Fm(\))150 4473 y Fl(Dra)n(w)c(a)g(\034lled)h(triangle)e(sp)r(eci\034ed)i(b)n(y)f (the)h(3)g(corner)e(p)r(oin)n(ts.)142 4669 y Fm(P)m(arameters:)311 4769 y Fb(dev)42 b Fl(device)311 4896 y Fb(x1)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(1st)f(corner)311 5022 y Fb(y1)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(1st)f(corner)311 5149 y Fb(x2)41 b Fl(x)28 b(co)r(ordinate)e(of)i(the)g(2nd)f(corner)311 5276 y Fb(y2)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(2nd)f(corner)311 5402 y Fb(x3)41 b Fl(x)28 b(co)r(ordinate)e(of)i(the)g(3rd)f(corner)311 5529 y Fb(y3)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(3rd)f(corner)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 26 30 TeXDict begin 26 29 bop 150 70 a Fm(26)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.6.1.10)93 b(v)m(oid)33 b(g2_image)d(\(in)m(t)j Fb(dev)p Fm(,)h(double)e Fb(x)p Fm(,)g(double)g Fb(y)p Fm(,)h(in)m(t)g Fb(x_size)p Fm(,)f(in)m(t)h Fb(y_size)p Fm(,)e(in)m(t)i Fi(\003)564 432 y Fb(p)-5 b(ens)p Fm(\))150 636 y Fl(Dra)n(w)27 b(a)g(p)r(en)h (image)142 860 y Fm(P)m(arameters:)311 960 y Fb(dev)42 b Fl(device)311 1101 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 1242 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)311 1382 y Fb(x_size)41 b Fl(x)27 b(size)311 1523 y Fb(y_size)41 b Fl(y)27 b(size)311 1664 y Fb(p)-5 b(ens)43 b Fl(v)n(ector)26 b(of)h(x_size)p Fi(\003)p Fl(y_size)e(p)r(ens:)38 b(p11,)26 b(p21,)h(...)37 b(p)n(xy)-7 b(,)28 b(...)150 2039 y Fm(4.6.1.11)93 b(v)m(oid)31 b(g2_line)g(\(in)m(t)h Fb(dev)p Fm(,)f(double)g Fb(x1)p Fm(,)g(double)g Fb(y1)p Fm(,)g(double)g Fb(x2)p Fm(,)g(double)g Fb(y2)p Fm(\))150 2243 y Fl(Dra)n(w)c(a)g(line)h(from)f Ff(x1)p Fl(,)g Ff(y1)g Fl(to)g Ff(x2)p Fl(,)g Ff(y2)p Fl(.)142 2470 y Fm(P)m(arameters:)311 2569 y Fb(dev)42 b Fl(device)311 2710 y Fb(x1)f Fl(see)28 b(ab)r(o)n(v)n(e)311 2851 y Fb(y1)42 b Fl(see)27 b(ab)r(o)n(v)n(e)311 2992 y Fb(x2)41 b Fl(see)28 b(ab)r(o)n(v)n(e)311 3133 y Fb(y2)42 b Fl(see)27 b(ab)r(o)n(v)n(e)150 3508 y Fm(4.6.1.12)93 b(v)m(oid)31 b(g2_line_r)g(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(dx)p Fm(,)g(double)g Fb(dy)p Fm(\))150 3712 y Fl(Dra)n(w)c(line)h (relativ)n(e)e(to)h(the)h(graphic)f(cursor.)142 3936 y Fm(P)m(arameters:)311 4035 y Fb(dev)42 b Fl(device)311 4176 y Fb(dx)f Fl(relativ)n(e)27 b(x)g(co)r(ordinate)311 4317 y Fb(dy)42 b Fl(relativ)n(e)26 b(y)h(co)r(ordinate)150 4692 y Fm(4.6.1.13)93 b(v)m(oid)31 b(g2_line_to)g(\(in)m(t)h Fb(dev)p Fm(,)g(double)e Fb(x)p Fm(,)h(double)g Fb(y)p Fm(\))150 4896 y Fl(Dra)n(w)c(line)h(from)f(graphic)f(cursor)g(to)h (the)h(p)r(oin)n(t)g Fa(x)10 b Fl(,)27 b Fa(y)142 5120 y Fm(P)m(arameters:)311 5220 y Fb(dev)42 b Fl(device)311 5361 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 5502 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e (T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n (xygen)p eop end %%Page: 27 31 TeXDict begin 27 30 bop 150 70 a Fm(4.6)31 b(graphical)h(output)2582 b(27)p 150 103 3525 4 v 150 333 a(4.6.1.14)93 b(v)m(oid)31 b(g2_mo)m(v)m(e)g(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)f(double)h Fb(y)p Fm(\))150 533 y Fl(Mo)n(v)n(e)26 b(graphic)h(cursor.)142 725 y Fm(P)m(arameters:)311 825 y Fb(dev)42 b Fl(device)311 950 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 1075 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)150 1398 y Fm(4.6.1.15)93 b(v)m(oid)31 b(g2_mo)m(v)m(e_r)h(\(in)m(t)g Fb(dev)p Fm(,)f(double)g Fb(dx)p Fm(,)g(double)g Fb(dy)p Fm(\))150 1598 y Fl(Mo)n(v)n(e)26 b(graphic)h(cursor)f(relativ)n(e)g(to)h(the)h (currner)f(graphical)e(cursor)h(p)r(osition.)142 1790 y Fm(P)m(arameters:)311 1890 y Fb(dev)42 b Fl(device)311 2015 y Fb(dx)f Fl(x)28 b(co)r(ordinate)e(incremen)n(t)311 2140 y Fb(dy)42 b Fl(y)27 b(co)r(ordinate)f(incremen)n(t)150 2462 y Fm(4.6.1.16)93 b(v)m(oid)31 b(g2_plot)g(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)g(double)g Fb(y)p Fm(\))150 2663 y Fl(Plot)d(a)f(p)r(oin)n(t)142 2855 y Fm(P)m(arameters:)311 2955 y Fb(dev)42 b Fl(device)311 3080 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 3204 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)150 3527 y Fm(4.6.1.17)93 b(v)m(oid)31 b(g2_plot_QP)h(\(in)m(t)f Fb(dev)p Fm(,)h(double)f Fb(x)p Fm(,)g(double)g Fb(y)p Fm(\))150 3728 y Fl(Quasi)20 b(Pixel)h(fak)n(e.) 34 b(Quasi)21 b(pixel)g(is)f(in)n(tro)r(duced)h(to)g(mak)n(e)f(easier)g (plotting)h(of)g(cellular)f(automata)g(and)h(related)150 3827 y(pictures.)44 b(QP)30 b(is)g(simple)g(a)g(big)f(pixel)h(as)g(sp)r (eci\034ed)g(b)n(y)g Fm(g2_set_QP\(\))p Fl(\(p.)14 b(20\).)43 b(Co)r(ordinates)29 b(are)g(sk)-5 b(aled)150 3927 y(accordingly)e(,)26 b(so)h(no)g(recalculation)f(is)h(needed)h(on)f(clien)n(t)h(side.)142 4119 y Fm(P)m(arameters:)311 4219 y Fb(dev)42 b Fl(device)311 4344 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 4469 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)150 4791 y Fm(4.6.1.18)93 b(v)m(oid)31 b(g2_plot_r)h(\(in)m(t)g Fb(dev)p Fm(,)g(double)e Fb(rx)p Fm(,)h(double)g Fb(ry)p Fm(\))150 4992 y Fl(Plot)d(a)f(p)r(oin)n(t)h (relativ)n(e)e(to)i(graphical)e(cursor.)142 5184 y Fm(P)m(arameters:) 311 5284 y Fb(dev)42 b Fl(device)311 5409 y Fb(rx)f Fl(relativ)n(e)26 b(x)i(co)r(ordinate)311 5534 y Fb(ry)41 b Fl(relativ)n(e)27 b(y)g(co)r(ordinate)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 28 32 TeXDict begin 28 31 bop 150 70 a Fm(28)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.6.1.19)93 b(v)m(oid)31 b(g2_p)s(oly_line)f(\(in)m(t)i Fb(dev)p Fm(,)g(in)m(t)g Fb(N_pt)p Fm(,)f(double)g Fi(\003)g Fb(p)-5 b(oints)p Fm(\))150 542 y Fl(Dra)n(w)27 b(a)g(p)r(oly)g(line.)142 784 y Fm(P)m(arameters:)311 883 y Fb(dev)42 b Fl(device)311 1036 y Fb(N_pt)g Fl(n)n(um)n(b)r(er)27 b(of)h(p)r(oin)n(ts)f(\(Note:)37 b(It)28 b(is)g(not)f(size)g(of)h Fa(p)l(oints)35 b Fl(v)n(ector!\))311 1189 y Fb(p)-5 b(oints)42 b Fl(v)n(ector)26 b(of)i(co)r(ordinates:)35 b(x1,)27 b(y1,)g(x2,)g(y2,)g(...)150 1608 y Fm(4.6.1.20)93 b(v)m(oid)31 b(g2_p)s(olygon)g(\(in)m(t)h Fb(dev)p Fm(,)f(in)m(t)h Fb(N_pt)p Fm(,)f(double)g Fi(\003)h Fb(p)-5 b(oints)p Fm(\))150 1817 y Fl(Dra)n(w)27 b(a)g(p)r(olygon.)142 2059 y Fm(P)m(arameters:)311 2159 y Fb(dev)42 b Fl(device)311 2312 y Fb(N_pt)g Fl(n)n(um)n(b)r(er)27 b(of)h(p)r(oin)n(ts)f(\(Note:)37 b(It)28 b(is)g(not)f(size)g(of)h Fa(p)l(oints)35 b Fl(v)n(ector!\))311 2465 y Fb(p)-5 b(oints)42 b Fl(v)n(ector)26 b(of)i(co)r(ordinates:)35 b(x1,)27 b(y1,)g(x2,)g(y2,)g(...)150 2884 y Fm(4.6.1.21)93 b(v)m(oid)31 b(g2_rectangle)h(\(in)m(t)g Fb(dev)p Fm(,)g(double)f Fb(x1)p Fm(,)f(double)h Fb(y1)p Fm(,)g(double)g Fb(x2)p Fm(,)g(double)g Fb(y2)p Fm(\))150 3093 y Fl(Dra)n(w)c(a)g(rectangle)f (sp)r(eci\034ed)i(b)n(y)f(the)h(t)n(w)n(o)f(opp)r(osite)g(corner)f(p)r (oin)n(ts.)142 3335 y Fm(P)m(arameters:)311 3434 y Fb(dev)42 b Fl(device)311 3587 y Fb(x1)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g (1st)f(corner)311 3740 y Fb(y1)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the) g(1st)f(corner)311 3893 y Fb(x2)41 b Fl(x)28 b(co)r(ordinate)e(of)i (the)g(3rd)f(corner)311 4046 y Fb(y2)42 b Fl(y)27 b(co)r(ordinate)f(of) i(the)g(3rd)f(corner)150 4465 y Fm(4.6.1.22)93 b(v)m(oid)31 b(g2_string)g(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(x)p Fm(,)g(double)g Fb(y)p Fm(,)g(const)g(c)m(har)j Fi(\003)d Fb(text)p Fm(\))150 4674 y Fl(Dra)n(w)c(string,)g(see)g(also)f Fm(g2_set_fon)m(t_size\(\))p Fl(\(p.)14 b(20\).)142 4926 y Fm(P)m(arameters:)311 5025 y Fb(dev)42 b Fl(device)311 5178 y Fb(x)f Fl(x)28 b(co)r(ordinate)311 5331 y Fb(y)42 b Fl(y)27 b(co)r(ordinate)311 5484 y Fb(text)42 b Fl(n)n(ull)27 b(terminated)h(string)p 150 5746 V 1709 5823 a Fd(Generated)e(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 29 33 TeXDict begin 29 32 bop 150 70 a Fm(4.6)31 b(graphical)h(output)2582 b(29)p 150 103 3525 4 v 150 333 a(4.6.1.23)93 b(v)m(oid)34 b(g2_triangle)f(\(in)m(t)h Fb(dev)p Fm(,)g(double)f Fb(x1)p Fm(,)h(double)f Fb(y1)p Fm(,)g(double)g Fb(x2)p Fm(,)h(double)f Fb(y2)p Fm(,)564 432 y(double)e Fb(x3)p Fm(,)f(double)h Fb(y3)p Fm(\))150 633 y Fl(Dra)n(w)c(a)g(triangle)f(describ)r(ed)i(b)n (y)f(3)g(corner)f(p)r(oin)n(ts.)142 845 y Fm(P)m(arameters:)311 944 y Fb(dev)42 b Fl(device)311 1077 y Fb(x1)f Fl(x)28 b(co)r(ordinate)e(of)i(the)g(1st)f(corner)311 1210 y Fb(y1)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(1st)f(corner)311 1343 y Fb(x2)41 b Fl(x)28 b(co)r(ordinate)e(of)i(the)g(2nd)f(corner)311 1476 y Fb(y2)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(2nd)f(corner)311 1609 y Fb(x3)41 b Fl(x)28 b(co)r(ordinate)e(of)i(the)g(3rd)f(corner)311 1741 y Fb(y3)42 b Fl(y)27 b(co)r(ordinate)f(of)i(the)g(3rd)f(corner)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 30 34 TeXDict begin 30 33 bop 150 70 a Fm(30)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a Fj(4.7)130 b(virtual)46 b(device)f(related)f(functions)150 578 y Fh(F)-9 b(unctions)275 765 y Fg(\210)42 b Fl(in)n(t)27 b Fm(g2_op)s(en_vd)h Fl(\(v)n(oid\))275 873 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_attac)m(h)k Fl(\(in)n(t)e(vd_dev,)f(in)n(t)g (dev\))275 981 y Fg(\210)42 b Fl(v)n(oid)26 b Fm(g2_detac)m(h)j Fl(\(in)n(t)f(vd_dev,)f(in)n(t)h(dev\))150 1260 y Fh(4.7.1)112 b(Detailed)36 b(Description)150 1461 y Fl(Virtual)27 b(device)h(is)f(a)g(metho)r(d)h(to)g(redirect)f(g2)f(output)i(to)g(m)n (ultiple)g(devices.)36 b(Here)27 b(is)h(an)f(example:)291 1670 y Fe(int)36 b(d1)g(=)g(g2_open_X11\(100,)j(100\);)213 b(create)37 b(first)g(X11)f(window)291 1749 y(int)g(d2)g(=)g (g2_open_X11\(100,)j(100\);)213 b(create)37 b(2nd)f(X11)g(window)291 1906 y(int)g(vd)g(=)g(g2_open_vd\(\);)532 b(open)37 b(a)e(new)h (virtual)i(device)291 2064 y(g2_attach\(vd,)h(d1\);)671 b(attach)37 b(d1)f(\(1st)g(window\))i(to)d(virtual)j(device)291 2143 y(g2_attach\(vd,)h(d2\);)671 b(attach)37 b(d2)f(\(2nd)g(window\))i (to)d(virtual)j(device)291 2301 y(g2_plot\(d1,)g(11,)f(11\);)600 b(output)37 b(to)f(the)g(1st)g(X11)g(window)291 2380 y(g2_plot\(d2,)i(12,)f(12\);)600 b(output)37 b(to)f(the)g(2nd)g(X11)g (window)291 2459 y(g2_plot\(vd,)i(13,)f(13\);)600 b(output)37 b(to)f(both)g(X11)h(windows)150 2738 y Fh(4.7.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 2939 y Fm(4.7.2.1)93 b(v)m(oid)32 b(g2_attac)m(h)h(\(in)m(t)f Fb(vd_dev)p Fm(,)f(in)m(t)h Fb(dev)p Fm(\))150 3139 y Fl(A)n(ttac)n(h)27 b(a)h(device)f(to)g(virtual)g(device)h Fa(vd_dev)9 b Fl(.)142 3354 y Fm(P)m(arameters:)311 3454 y Fb(vd_dev)42 b Fl(virtual)27 b(device)g(\(create)g(virtual)g(device)h(b)n(y)f (calling)g Fm(g2_op)s(en_vd\(\))p Fl(\(p.)14 b(30\))27 b(\))h(\240)311 3587 y Fb(dev)42 b Fl(device)150 3933 y Fm(4.7.2.2)93 b(v)m(oid)32 b(g2_detac)m(h)g(\(in)m(t)g Fb(vd_dev)p Fm(,)g(in)m(t)g Fb(dev)p Fm(\))150 4133 y Fl(Dettac)n(h)c(a)f(device)g(from)g(the)h(virtual)f(device)h Fa(vd_dev)9 b Fl(.)142 4348 y Fm(P)m(arameters:)311 4448 y Fb(vd_dev)42 b Fl(virtual)27 b(device)g(\240)311 4581 y Fb(dev)42 b Fl(device)150 4927 y Fm(4.7.2.3)93 b(in)m(t)32 b(g2_op)s(en_vd)f(\(v)m(oid\))150 5127 y Fl(Create)c(a)g(new)g(virtual) g(device.)142 5323 y Fm(Returns:)311 5423 y Fl(virtual)g(device)h(ID)p 150 5746 V 1709 5823 a Fd(Generated)e(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 31 35 TeXDict begin 31 34 bop 150 70 a Fm(4.8)31 b(GD)3128 b(31)p 150 103 3525 4 v 150 333 a Fj(4.8)130 b(GD)150 578 y Fh(En)m(umerations)275 765 y Fg(\210)42 b Fl(en)n(um)27 b Fm(g2_gd_t)m(yp)s(e)h Fl({)f Fm(g2_gd_jp)s(eg)g Fl(=)g(0,)g Fm(g2_gd_png)g Fl(=)g(1,)h Fm(g2_gd_gif)e Fl(=)i(2)f(})150 1044 y Fh(F)-9 b(unctions)275 1231 y Fg(\210)42 b Fl(in)n(t)31 b Fm(g2_op)s(en_gd)g Fl(\(const)h(c)n(har)e Fi(\003)p Fl(\034lename,)i(in)n(t)g(width,)h(in)n(t)f(heigh)n(t,)h(en)n(um)e Fm(g2_gd_t)m(yp)s(e)h Fl(gd_-)358 1330 y(t)n(yp)r(e\))150 1610 y Fh(4.8.1)112 b(En)m(umeration)36 b(T)m(yp)s(e)i(Do)s(cumen)m (tation)150 1811 y Fm(4.8.1.1)93 b(en)m(um)30 b(g2_gd_t)m(yp)s(e)150 2011 y Fl(g2)d(gd)g(bitmap)h(t)n(yp)r(es)142 2206 y Fm(En)m(umerator:) 311 2306 y Fb(g2_gd_jp)-5 b(e)g(g)76 b Fl(jp)r(eg)311 2439 y Fb(g2_gd_png)g Fl(png)311 2572 y Fb(g2_gd_gif)g Fl(gif)150 2851 y Fh(4.8.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m (tation)150 3052 y Fm(4.8.2.1)93 b(in)m(t)36 b(g2_op)s(en_gd)f(\(const) h(c)m(har)h Fi(\003)f Fb(\034lename)p Fm(,)g(in)m(t)g Fb(width)p Fm(,)g(in)m(t)g Fb(height)p Fm(,)h(en)m(um)516 3151 y(g2_gd_t)m(yp)s(e)32 b Fb(gd_typ)-5 b(e)p Fm(\))150 3352 y Fl(Create)27 b(a)g(GD)h(\(bitmap)g(image\))f(device.)142 3569 y Fm(P)m(arameters:)311 3668 y Fb(\034lename)42 b Fl(output)28 b(\034le)g(name)311 3801 y Fb(width)41 b Fl(width)311 3934 y Fb(height)h Fl(heigh)n(t)311 4067 y Fb(gd_typ)-5 b(e)42 b Fl(\034le)27 b(t)n(yp)r(e,)h(see)f Fm(g2_gd_t)m(yp)s(e)p Fl(\(p.)14 b(31\))142 4288 y Fm(Returns:)311 4388 y Fl(ph)n(ysical)27 b(device)g(id)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h (for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 32 36 TeXDict begin 32 35 bop 150 70 a Fm(32)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a Fj(4.9)130 b(P)l(ostScript)150 579 y Fh(En)m(umerations)275 767 y Fg(\210)42 b Fl(en)n(um)27 b Fm(g2_PS_pap)s(er)h Fl({)358 900 y Fm(g2_A0)p Fl(,)f Fm(g2_A1)p Fl(,)g Fm(g2_A2)p Fl(,)g Fm(g2_A3)p Fl(,)358 1034 y Fm(g2_A4)p Fl(,)g Fm(g2_A5)p Fl(,)g Fm(g2_A6)p Fl(,)g Fm(g2_A7)p Fl(,)358 1168 y Fm(g2_A8)p Fl(,)g Fm(g2_A9)p Fl(,)g Fm(g2_B0)p Fl(,)g Fm(g2_B1)p Fl(,)358 1302 y Fm(g2_B2)p Fl(,)g Fm(g2_B3)p Fl(,)g Fm(g2_B4)p Fl(,)g Fm(g2_B5)p Fl(,)358 1436 y Fm(g2_B6)p Fl(,)g Fm(g2_B7)p Fl(,)g Fm(g2_B8)p Fl(,)g Fm(g2_B9)p Fl(,)358 1570 y Fm(g2_B10)p Fl(,)f Fm(g2_Comm_10_En)m(v)m(elop)s(e)p Fl(,)e Fm(g2_C5_En)m(v)m(elop) s(e)p Fl(,)i Fm(g2_DL_En)m(v)m(elop)s(e)p Fl(,)358 1703 y Fm(g2_F)-8 b(olio)p Fl(,)26 b Fm(g2_Executiv)m(e)p Fl(,)h Fm(g2_Letter)p Fl(,)h Fm(g2_Legal)p Fl(,)358 1837 y Fm(g2_Ledger)p Fl(,)f Fm(g2_T)-8 b(abloid)27 b Fl(})275 1946 y Fg(\210)42 b Fl(en)n(um)27 b Fm(g2_PS_orien)m(tation)h Fl({)f Fm(g2_PS_land)p Fl(,)h Fm(g2_PS_p)s(ort)f Fl(})150 2228 y Fh(F)-9 b(unctions)275 2416 y Fg(\210)42 b Fl(G2L)26 b(in)n(t)h Fm(g2_op)s(en_PS)f Fl(\(const)h(c)n(har)f Fi(\003)p Fl(\034le_name,)g(en)n(um)h Fm(g2_PS_pap)s(er)g Fl(pap)r(er,)g(en)n(um)f Fm(g2_-)358 2515 y(PS_orien)m(tation)h Fl(orien)n(tation\))275 2624 y Fg(\210)42 b Fl(G2L)27 b(in)n(t)h Fm(g2_op)s(en_EPSF)e Fl(\(const)i(c)n(har)e Fi(\003)p Fl(\034le_name\))275 2733 y Fg(\210)42 b Fl(G2L)27 b(in)n(t)h Fm(g2_op)s(en_EPSF_CLIP)f Fl(\(const)h(c)n(har)e Fi(\003)p Fl(\034le_name,)h(long)g(width,)h(long)f(heigh)n(t\))150 3015 y Fh(4.9.1)112 b(En)m(umeration)36 b(T)m(yp)s(e)i(Do)s(cumen)m (tation)150 3216 y Fm(4.9.1.1)93 b(en)m(um)30 b(g2_PS_orien)m(tation) 150 3417 y Fl(g2)d(pap)r(er)g(orien)n(tation.)142 3613 y Fm(En)m(umerator:)311 3713 y Fb(g2_PS_land)76 b Fl(landscap)r(e)311 3847 y Fb(g2_PS_p)-5 b(ort)76 b Fl(p)r(ortrait)150 4179 y Fm(4.9.1.2)93 b(en)m(um)30 b(g2_PS_pap)s(er)150 4380 y Fl(g2)d(pap)r(er)g(t)n(yp)r(e.)142 4576 y Fm(En)m(umerator:)311 4676 y Fb(g2_A0)76 b Fl(A0)27 b(2384)f(x)i(3370)311 4810 y Fb(g2_A1)76 b Fl(A1)27 b(1684)f(x)i(2384)311 4944 y Fb(g2_A2)76 b Fl(A2)27 b(1191)f(x)i(1684)311 5078 y Fb(g2_A3)76 b Fl(A3)27 b(842)g(x)g(1191)311 5211 y Fb(g2_A4)76 b Fl(A4)27 b(595)g(x)g(842)311 5345 y Fb(g2_A5)76 b Fl(A5)27 b(420)g(x)g(595)311 5479 y Fb(g2_A6)76 b Fl(A6)27 b(297)g(x)g(420)311 5613 y Fb(g2_A7)76 b Fl(A7)27 b(210)g(x)g(297)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f (2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 33 37 TeXDict begin 33 36 bop 150 70 a Fm(4.9)31 b(P)m(ostScript)2840 b(33)p 150 103 3525 4 v 311 333 a Fb(g2_A8)76 b Fl(A8)27 b(148)g(x)g(210)311 454 y Fb(g2_A9)76 b Fl(A9)27 b(105)g(x)g(148)311 575 y Fb(g2_B0)76 b Fl(B0)27 b(2920)f(x)h(4127)311 696 y Fb(g2_B1)76 b Fl(B1)27 b(2064)f(x)h(2920)311 817 y Fb(g2_B2)76 b Fl(B2)27 b(1460)f(x)h(2064)311 938 y Fb(g2_B3)76 b Fl(B3)27 b(1032)f(x)h(1460)311 1059 y Fb(g2_B4)76 b Fl(B4)27 b(729)f(x)h(1032)311 1180 y Fb(g2_B5)76 b Fl(B5)27 b(516)f(x)h(729)311 1301 y Fb(g2_B6)76 b Fl(B6)27 b(363)f(x)h(516)311 1422 y Fb(g2_B7)76 b Fl(B7)27 b(258)f(x)h(363)311 1543 y Fb(g2_B8)76 b Fl(B8)27 b(181)f(x)h(258)311 1665 y Fb(g2_B9)76 b Fl(B9)27 b(127)f(x)h(181)311 1786 y Fb(g2_B10)76 b Fl(B10)26 b(91)h(x)h(127)311 1907 y Fb(g2_Comm_10_Envelop)-5 b(e)76 b Fl(Comm)27 b(#10)g(En)n(v)n(elop)r(e)g(297)f(x)i(684)311 2028 y Fb(g2_C5_Envelop)-5 b(e)75 b Fl(C5)27 b(En)n(v)n(elop)r(e)h(461) e(x)h(648)311 2149 y Fb(g2_DL_Envelop)-5 b(e)75 b Fl(DL)28 b(En)n(v)n(elop)r(e)f(312)g(x)g(624)311 2270 y Fb(g2_F)-7 b(olio)75 b Fl(F)-7 b(olio)27 b(595)g(x)g(935)311 2391 y Fb(g2_Exe)-5 b(cutive)75 b Fl(Executiv)n(e)28 b(522)e(x)h(756)311 2512 y Fb(g2_L)-5 b(etter)76 b Fl(Letter)27 b(612)g(x)g(792)311 2633 y Fb(g2_L)-5 b(e)g(gal)76 b Fl(Legal)27 b(612)f(x)h(1008)311 2754 y Fb(g2_L)-5 b(e)g(dger)76 b Fl(Ledger)27 b(1224)f(x)h(792)311 2875 y Fb(g2_T)-7 b(abloid)75 b Fl(T)-7 b(abloid)27 b(792)f(x)i(1224) 150 3150 y Fh(4.9.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 3350 y Fm(4.9.2.1)93 b(G2L)32 b(in)m(t)g(g2_op)s(en_EPSF)f(\(const)h(c) m(har)h Fi(\003)e Fb(\034le_name)p Fm(\))150 3551 y Fl(Create)c(an)g (encapsulated)g(PS)h(device.)142 3733 y Fm(P)m(arameters:)311 3833 y Fb(\034le_name)42 b Fl(p)r(ostscript)27 b(\034le)h(name)142 4025 y Fm(Returns:)311 4125 y Fl(ph)n(ysical)f(device)g(id)150 4436 y Fm(4.9.2.2)93 b(G2L)33 b(in)m(t)f(g2_op)s(en_EPSF_CLIP)h (\(const)g(c)m(har)h Fi(\003)e Fb(\034le_name)p Fm(,)g(long)g Fb(width)p Fm(,)f(long)516 4536 y Fb(height)p Fm(\))150 4736 y Fl(Create)c(an)g(encapsulated)g(PS)h(device)f(with)h(clipping.) 142 4919 y Fm(P)m(arameters:)311 5019 y Fb(\034le_name)42 b Fl(p)r(ostscript)27 b(\034le)h(name)311 5140 y Fb(width)41 b Fl(clipping)28 b(region)e(width)311 5261 y Fb(height)42 b Fl(clipping)27 b(region)g(heigh)n(t)142 5443 y Fm(Returns:)311 5543 y Fl(ph)n(ysical)g(device)g(id)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h (for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 34 38 TeXDict begin 34 37 bop 150 70 a Fm(34)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a(4.9.2.3)93 b(G2L)32 b(in)m(t)g(g2_op)s(en_PS)f(\(const)h(c)m(har)i Fi(\003)d Fb(\034le_name)p Fm(,)h(en)m(um)f(g2_PS_pap)s(er)h Fb(p)-5 b(ap)g(er)p Fm(,)516 432 y(en)m(um)30 b(g2_PS_orien)m(tation)i Fb(orientation)p Fm(\))150 633 y Fl(Create)27 b(a)g(PS)h(device.)142 829 y Fm(P)m(arameters:)311 928 y Fb(\034le_name)42 b Fl(p)r(ostscript)27 b(\034le)h(name)311 1061 y Fb(p)-5 b(ap)g(er)42 b Fl(pap)r(er)27 b(t)n(yp)r(e,)h(see)f Fm(g2_PS_pap)s(er)p Fl(\(p.)14 b(32\))28 b(and)f(app)r(endix)h(App)r(endix)311 1194 y Fb(orientation)41 b Fl(pap)r(er)27 b(orien)n(tation,)f(see)h Fm(g2_PS_orien)m(tation)p Fl(\(p.)14 b(32\))142 1415 y Fm(Returns:)311 1515 y Fl(ph)n(ysical)27 b(device)g(id)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 35 39 TeXDict begin 35 38 bop 150 70 a Fm(4.10)31 b(MS)g(Windo)m(ws)2669 b(35)p 150 103 3525 4 v 150 333 a Fj(4.10)130 b(MS)44 b(Windo)l(ws)150 578 y Fh(En)m(umerations)275 765 y Fg(\210)e Fl(en)n(um)27 b Fm(g2_win32_t)m(yp)s(e)g Fl({)g Fm(g2_win32)p Fl(,)g Fm(g2_wmf32)e Fl(})150 1044 y Fh(F)-9 b(unctions)275 1231 y Fg(\210)42 b Fl(in)n(t)27 b Fm(g2_op)s(en_win32)f Fl(\(in)n(t)i(width,)g(in)n(t)g(heigh)n(t,)g(const)f(c)n(har)f Fi(\003)p Fl(title,)i(in)n(t)g(t)n(yp)r(e\))150 1510 y Fh(4.10.1)112 b(En)m(umeration)36 b(T)m(yp)s(e)i(Do)s(cumen)m(tation) 150 1711 y Fm(4.10.1.1)93 b(en)m(um)30 b(g2_win32_t)m(yp)s(e)150 1911 y Fl(Windo)n(w)d(t)n(yp)r(e)142 2107 y Fm(En)m(umerator:)311 2206 y Fb(g2_win32)75 b Fl(regular)26 b(windo)n(w)311 2339 y Fb(g2_wmf32)76 b Fl(windo)n(ws)27 b(meta)h(\034le)150 2619 y Fh(4.10.2)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 2819 y Fm(4.10.2.1)93 b(in)m(t)31 b(g2_op)s(en_win32)f(\(in)m(t)i Fb(width)p Fm(,)f(in)m(t)h Fb(height)p Fm(,)f(const)h(c)m(har)h Fi(\003)e Fb(title)p Fm(,)g(in)m(t)h Fb(typ)-5 b(e)p Fm(\))150 3020 y Fl(Create)27 b(a)g(Windo)n(ws)g(device.)142 3216 y Fm(P)m(arameters:)311 3315 y Fb(width)41 b Fl(windo)n(w)27 b(width)311 3448 y Fb(height)42 b Fl(windo)n(w)27 b(heigh)n(t)311 3581 y Fb(title)41 b Fl(windo)n(w)27 b(title)311 3714 y Fb(typ)-5 b(e)42 b Fl(windo)n(w)27 b(t)n(yp)r(e,)h(see)f Fm(g2_win32_t)m(yp)s(e)p Fl(\(p.)14 b(35\))142 3935 y Fm(Returns:)311 4035 y Fl(ph)n(ysical)27 b(device)g(id)p 150 5746 V 150 5823 a Fd(Generated)f(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 36 40 TeXDict begin 36 39 bop 150 70 a Fm(36)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a Fj(4.11)130 b(X11)150 578 y Fh(F)-9 b(unctions)275 765 y Fg(\210)42 b Fl(in)n(t)27 b Fm(g2_op)s(en_X11)g Fl(\(in)n(t)h(width,)g(in)n(t)g (heigh)n(t\))275 873 y Fg(\210)42 b Fl(in)n(t)24 b Fm(g2_op)s(en_X11X)e Fl(\(in)n(t)j(width,)g(in)n(t)f(heigh)n(t,)g(in)n(t)g(x,)g(in)n(t)g(y) -7 b(,)25 b(c)n(har)d Fi(\003)p Fl(windo)n(w_name,)h(c)n(har)g Fi(\003)p Fl(icon_-)358 972 y(name,)k(c)n(har)f Fi(\003)p Fl(icon_data,)g(in)n(t)i(icon_width,)f(in)n(t)h(icon_heigh)n(t\))150 1252 y Fh(4.11.1)112 b(F)-9 b(unction)37 b(Do)s(cumen)m(tation)150 1452 y Fm(4.11.1.1)93 b(in)m(t)31 b(g2_op)s(en_X11)g(\(in)m(t)h Fb(width)p Fm(,)f(in)m(t)g Fb(height)p Fm(\))150 1653 y Fl(Op)r(en)d(a)f(simple)h(X11)e(windo)n(w)h(\(ph)n(ysical)g(device)h (device\).)142 1869 y Fm(P)m(arameters:)311 1969 y Fb(width)41 b Fl(windo)n(w)27 b(width)311 2102 y Fb(height)42 b Fl(windo)n(w)27 b(heigh)n(t)142 2314 y Fm(Returns:)311 2414 y Fl(ph)n(ysical)g(device)g (id)150 2760 y Fm(4.11.1.2)93 b(in)m(t)38 b(g2_op)s(en_X11X)g(\(in)m(t) g Fb(width)p Fm(,)h(in)m(t)g Fb(height)p Fm(,)h(in)m(t)e Fb(x)p Fm(,)h(in)m(t)g Fb(y)p Fm(,)g(c)m(har)h Fi(\003)564 2859 y Fb(window_name)p Fm(,)31 b(c)m(har)k Fi(\003)d Fb(ic)-5 b(on_name)p Fm(,)32 b(c)m(har)i Fi(\003)f Fb(ic)-5 b(on_data)p Fm(,)32 b(in)m(t)g Fb(ic)-5 b(on_width)p Fm(,)32 b(in)m(t)564 2959 y Fb(ic)-5 b(on_height)p Fm(\))150 3159 y Fl(Op)r(en)26 b(a)g(X11)g(windo)n(w)g(\(ph)n(ysical)f(device)h (device\).)37 b(If)27 b Fa(ic)l(on_width)34 b Fl(or)25 b Fa(ic)l(on_height)36 b Fl(is)26 b(smaller)f(than)i(0,)f(the)150 3259 y Fa(ic)l(on_data)35 b Fl(is)27 b(in)n(terpreted)g(as)g(a)h (\034le)f(name.)142 3474 y Fm(P)m(arameters:)311 3574 y Fb(width)41 b Fl(windo)n(w)27 b(width)311 3707 y Fb(height)42 b Fl(windo)n(w)27 b(heigh)n(t)311 3839 y Fb(x)41 b Fl(x)28 b(p)r(osition)f(on)h(screen)311 3972 y Fb(y)42 b Fl(y)27 b(p)r(osition)g(on)h(screen)311 4105 y Fb(window_name)41 b Fl(hin)n(t)28 b(for)f(windo)n(w)g(manager)311 4238 y Fb(ic)-5 b(on_name)42 b Fl(hin)n(t)28 b(for)f(windo)n(w)g(manager)311 4371 y Fb(ic)-5 b(on_data)41 b Fl(icon)29 b(bitmap)g(\()p Fa(ic)l(on_width)36 b Fi(\003)29 b Fa(ic)l(on_height)38 b Fl(bits\))29 b(or)f(\034le)h(name)g(con)n(taining)e(bitmap)i(\(if)494 4470 y Fa(ic)l(on_width)35 b Fc(<)p Fl(=)27 b(0)g(or)g Fa(ic)l(on_height)37 b Fc(<)p Fl(=)27 b(0\))311 4603 y Fb(ic)-5 b(on_width)41 b Fl(icon)27 b(width)311 4736 y Fb(ic)-5 b(on_height)41 b Fl(icon)27 b(heigh)n(t)142 4958 y Fm(Returns:)311 5057 y Fl(ph)n(ysical)g(device)g(id)p 150 5746 V 1709 5823 a Fd(Generated)f(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 37 41 TeXDict begin 37 40 bop 150 70 a Fm(4.12)31 b(g2)g(User)h(In)m(terface) 2508 b(37)p 150 103 3525 4 v 150 333 a Fj(4.12)130 b(g2)44 b(User)f(In)l(terface)150 578 y Fh(Mo)s(dules)275 765 y Fg(\210)f Fm(color)31 b(manipulations)275 873 y Fg(\210)42 b Fm(output)31 b(con)m(trol)275 981 y Fg(\210)42 b Fm(devices)31 b(con)m(trol)275 1089 y Fg(\210)42 b Fm(graphical)32 b(output)275 1196 y Fg(\210)42 b Fm(virtual)32 b(device)f(related)h (functions)275 1304 y Fg(\210)42 b Fm(g2)31 b(Ph)m(ysical)h(devices)p 150 5746 V 150 5823 a Fd(Generated)26 b(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 38 42 TeXDict begin 38 41 bop 150 70 a Fm(38)2312 b(g2)31 b(Mo)s(dule)f(Do)s (cumen)m(tation)p 150 103 3525 4 v 150 333 a Fj(4.13)130 b(g2)44 b(Ph)l(ysical)h(devices)150 578 y Fh(Mo)s(dules)275 765 y Fg(\210)d Fm(FIG)275 873 y Fg(\210)g Fm(GD)275 981 y Fg(\210)g Fm(P)m(ostScript)275 1089 y Fg(\210)g Fm(MS)31 b(Windo)m(ws)275 1196 y Fg(\210)42 b Fm(X11)150 1476 y Fh(4.13.1)112 b(Detailed)36 b(Description)150 1677 y Fl(g2)27 b(ph)n(ysical)f(devices)h(are)g(driv)n(ers)f(for)h (di\033eren)n(t)h(output)g(formats.)p 150 5746 V 1709 5823 a Fd(Generated)e(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h (for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 39 43 TeXDict begin 39 42 bop 150 1003 a Fk(Chapter)61 b(5)150 1465 y Fn(g2)72 b(P)-6 b(age)72 b(Do)6 b(cumen)-6 b(tation)150 1994 y Fj(5.1)130 b(PS)44 b(pap)t(er)g(sizes)150 2239 y Fh(5.1.1)112 b(PS)38 b(pap)s(er)g(sizes)150 2419 y Fe(g2)e(Name)601 b(Name)f(Size\(Pt\))150 2498 y (------------------------)q(----)q(---)q(----)q(----)q(---)q(----)q (---)q(----)q(---)150 2577 y(g2_A0)672 b(A0)e(2384)37 b(x)e(3370)150 2656 y(g2_A1)672 b(A1)e(1684)37 b(x)e(2384)150 2735 y(g2_A2)672 b(A2)e(1191)37 b(x)e(1684)150 2813 y(g2_A3)672 b(A3)706 b(842)36 b(x)f(1191)150 2892 y(g2_A4)672 b(A4)706 b(595)36 b(x)f(842)150 2971 y(g2_A5)672 b(A5)706 b(420)36 b(x)f(595)150 3050 y(g2_A6)672 b(A6)706 b(297)36 b(x)f(420)150 3129 y(g2_A7)672 b(A7)706 b(210)36 b(x)f(297)150 3208 y(g2_A8)672 b(A8)706 b(148)36 b(x)f(210)150 3287 y(g2_A9)672 b(A9)706 b(105)36 b(x)f(148)150 3366 y(g2_B0)672 b(B0)e(2920)37 b(x)e(4127)150 3444 y(g2_B1)672 b(B1)e(2064)37 b(x)e(2920)150 3523 y(g2_B2)672 b(B2)e(1460)37 b(x)e(2064)150 3602 y(g2_B3)672 b(B3)e(1032)37 b(x)e(1460)150 3681 y(g2_B4)672 b(B4)706 b(729)36 b(x)f(1032)150 3760 y(g2_B5)672 b(B5)706 b(516)36 b(x)f(729)150 3839 y(g2_B6)672 b(B6)706 b(363)36 b(x)f(516)150 3918 y(g2_B7)672 b(B7)706 b(258)36 b(x)f(363)150 3996 y(g2_B8)672 b(B8)706 b(181)36 b(x)f(258)150 4075 y(g2_B9)672 b(B9)706 b(127)36 b(x)f(181)150 4154 y(g2_B10)637 b(B10)706 b(91)36 b(x)f(127)150 4233 y(g2_Comm_10_Envelope)182 b(Comm)36 b(#10)g(Envelope)179 b(297)36 b(x)f(684)150 4312 y(g2_C5_Envelope)357 b(C5)35 b(Envelope)391 b(461)36 b(x)f(648)150 4391 y(g2_DL_Envelope)357 b(DL)35 b(Envelope)391 b(312)36 b(x)f(624)150 4470 y(g2_Folio)567 b(Folio)601 b(595)36 b(x)f(935)150 4549 y(g2_Executive)427 b(Executive)461 b(522)36 b(x)f(756)150 4627 y(g2_Letter)532 b(Letter)566 b(612)36 b(x)f(792)150 4706 y(g2_Legal)567 b(Legal)601 b(612)36 b(x)f(1008)150 4785 y(g2_Ledger)532 b(Ledger)e(1224)37 b(x)e(792)150 4864 y(g2_Tabloid)497 b(Tabloid)531 b(792)36 b(x)f(1224)p eop end %%Page: 40 44 TeXDict begin 40 43 bop 150 807 a Fn(Index)150 1222 y Fl(color)316 1323 y(g2_allo)r(cate_basic_colors,)22 b(17)316 1423 y(g2_clear_palette,)j(17)316 1523 y(g2_ink,)h(17)316 1623 y(g2_p)r(en,)h(18)316 1724 y(g2_reset_palette,)e(18)316 1824 y(g2_set_bac)n(kground,)f(18)150 1924 y(color)i(manipulations,)h (17)150 2024 y(con)n(trol)316 2125 y(g2_clear,)e(19)316 2225 y(g2_\035ush,)h(19)316 2325 y(g2_get_p)r(d_handles,)f(19)316 2425 y(g2_query_p)r(oin)n(ter,)f(19)316 2526 y(g2_sa)n(v)n(e,)h(20)316 2626 y(g2_set_dash,)g(20)316 2726 y(g2_set_fon)n(t_size,)g(20)316 2826 y(g2_set_line_width,)h(20)316 2927 y(g2_set_QP,)g(20)150 3120 y(device)316 3221 y(g2_close,)f(21)316 3321 y(g2_ld,)h(21)316 3421 y(g2_set_auto_\035ush,)f(21)316 3521 y(g2_set_co)r (ordinate_system,)f(21)316 3622 y(g2_set_ld,)i(21)150 3722 y(devices)h(con)n(trol,)f(21)150 3915 y(FIG,)i(13)316 4016 y(g2_op)r(en_FIG,)e(13)150 4209 y(g2)h(Ph)n(ysical)g(devices,)g (38)150 4310 y(g2)g(User)g(In)n(terface,)g(37)150 4410 y(g2_A0)316 4510 y(PS,)h(32)150 4610 y(g2_A1)316 4711 y(PS,)g(32)150 4811 y(g2_A2)316 4911 y(PS,)g(32)150 5011 y(g2_A3)316 5112 y(PS,)g(32)150 5212 y(g2_A4)316 5312 y(PS,)g(32)150 5412 y(g2_A5)316 5513 y(PS,)g(32)150 5613 y(g2_A6)2120 1222 y(PS,)g(32)1954 1322 y(g2_A7)2120 1422 y(PS,)g(32)1954 1522 y(g2_A8)2120 1622 y(PS,)g(32)1954 1721 y(g2_A9)2120 1821 y(PS,)g(33)1954 1921 y(g2_allo)r (cate_basic_colors)2120 2021 y(color,)e(17)1954 2120 y(g2_arc)2120 2220 y(graphic,)g(23)1954 2320 y(g2_attac)n(h)2120 2420 y(vd,)i(30)1954 2520 y(g2_B0)2120 2619 y(PS,)g(33)1954 2719 y(g2_B1)2120 2819 y(PS,)g(33)1954 2919 y(g2_B10)2120 3018 y(PS,)g(33)1954 3118 y(g2_B2)2120 3218 y(PS,)g(33)1954 3318 y(g2_B3)2120 3418 y(PS,)g(33)1954 3517 y(g2_B4)2120 3617 y(PS,)g(33)1954 3717 y(g2_B5)2120 3817 y(PS,)g(33)1954 3917 y(g2_B6)2120 4016 y(PS,)g(33)1954 4116 y(g2_B7)2120 4216 y(PS,)g(33)1954 4316 y(g2_B8)2120 4415 y(PS,)g(33)1954 4515 y(g2_B9)2120 4615 y(PS,)g(33)1954 4715 y(g2_b_spline)2120 4815 y(splines,)f(14)1954 4914 y(g2_C5_En)n(v)n(elop)r(e)2120 5014 y(PS,)h(33)1954 5114 y(g2_circle)2120 5214 y(graphic,)e(23)1954 5313 y(g2_clear)2120 5413 y(con)n(trol,)g(19)1954 5513 y(g2_clear_palette)2120 5613 y(color,)g(17)p eop end %%Page: 41 45 TeXDict begin 41 44 bop 150 70 a Fm(INDEX)3111 b(41)p 150 103 3525 4 v 150 333 a Fl(g2_close)316 432 y(device,)27 b(21)150 532 y(g2_Comm_10_En)n(v)n(elop)r(e)316 632 y(PS,)h(33)150 731 y(g2_detac)n(h)316 831 y(vd,)g(30)150 930 y(g2_DL_En)n(v)n(elop)r (e)316 1030 y(PS,)g(33)150 1130 y(g2_ellipse)316 1229 y(graphic,)e(24)150 1329 y(g2_Executiv)n(e)316 1429 y(PS,)i(33)150 1528 y(g2_\034lled_arc)316 1628 y(graphic,)e(24)150 1727 y(g2_\034lled_b_spline)316 1827 y(splines,)h(14)150 1927 y(g2_\034lled_circle)316 2026 y(graphic,)f(24)150 2126 y(g2_\034lled_ellipse)316 2226 y(graphic,)g(24)150 2325 y(g2_\034lled_para_3)316 2425 y(splines,)h(14)150 2524 y(g2_\034lled_para_5)316 2624 y(splines,)g(14)150 2724 y(g2_\034lled_p)r(olygon)316 2823 y(graphic,)f(25)150 2923 y(g2_\034lled_raspln)316 3023 y(splines,)h(15)150 3122 y(g2_\034lled_rectangle)316 3222 y(graphic,)f(25)150 3321 y(g2_\034lled_spline)316 3421 y(splines,)h(15)150 3521 y(g2_\034lled_triangle)316 3620 y(graphic,)f(25)150 3720 y(g2_\035ush)316 3820 y(con)n(trol,)g(19)150 3919 y(g2_F)-7 b(olio)316 4019 y(PS,)28 b(33)150 4118 y(g2_gd_gif)316 4218 y(GD,)g(31)150 4318 y(g2_gd_jp)r(eg)316 4417 y(GD,)g(31)150 4517 y(g2_gd_png)316 4617 y(GD,)g(31)150 4716 y(g2_gd_t)n(yp)r(e)316 4816 y(GD,)g(31)150 4915 y(g2_get_p)r(d_handles)316 5015 y(con)n(trol,)e(19)150 5115 y(g2_image)316 5214 y(graphic,)g(25)150 5314 y(g2_ink)316 5414 y(color,)g(17)150 5513 y(g2_ld)316 5613 y(device,)h(21)1954 333 y(g2_Ledger)2120 432 y(PS,)h(33)1954 532 y(g2_Legal)2120 632 y(PS,)g(33)1954 731 y(g2_Letter)2120 831 y(PS,)g(33)1954 930 y(g2_line)2120 1030 y(graphic,)e(26)1954 1130 y(g2_line_r)2120 1229 y(graphic,)g(26)1954 1329 y(g2_line_to)2120 1429 y(graphic,)g(26)1954 1528 y(g2_mo)n(v)n(e)2120 1628 y(graphic,)g(26)1954 1727 y(g2_mo)n(v)n(e_r)2120 1827 y(graphic,)g(27)1954 1927 y(g2_op)r(en_EPSF)2120 2026 y(PS,)i(33)1954 2126 y(g2_op)r(en_EPSF_CLIP)2120 2226 y(PS,)g(33)1954 2325 y(g2_op)r(en_FIG)2120 2425 y(FIG,)g(13)1954 2524 y(g2_op)r(en_gd)2120 2624 y(GD,)g(31)1954 2724 y(g2_op)r(en_PS)2120 2823 y(PS,)g(33)1954 2923 y(g2_op)r(en_vd) 2120 3023 y(vd,)g(30)1954 3122 y(g2_op)r(en_win32)2120 3222 y(win32,)f(35)1954 3321 y(g2_op)r(en_X11)2120 3421 y(X11,)g(36)1954 3521 y(g2_op)r(en_X11X)2120 3620 y(X11,)g(36)1954 3720 y(g2_para_3)2120 3820 y(splines,)g(15)1954 3919 y(g2_para_5)2120 4019 y(splines,)g(15)1954 4118 y(g2_p)r(en)2120 4218 y(color,)f(18)1954 4318 y(g2_plot)2120 4417 y(graphic,)g(27)1954 4517 y(g2_plot_QP)2120 4617 y(graphic,)g(27)1954 4716 y(g2_plot_r)2120 4816 y(graphic,)g(27)1954 4915 y(g2_p)r(oly_line)2120 5015 y(graphic,)g(27)1954 5115 y(g2_p)r(olygon)2120 5214 y(graphic,)g(28)1954 5314 y(g2_PS_land)2120 5414 y(PS,)i(32)1954 5513 y(g2_PS_orien)n(tation)2120 5613 y(PS,)g(32)p 150 5746 V 150 5823 a Fd(Generated)e(on)e(T)-6 b(ue)26 b(Oct)g(17)e (21:27:48)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 42 46 TeXDict begin 42 45 bop 150 70 a Fm(42)3110 b(INDEX)p 150 103 3525 4 v 150 333 a Fl(g2_PS_pap)r(er)316 432 y(PS,)28 b(32)150 532 y(g2_PS_p)r(ort)316 632 y(PS,)g(32)150 731 y(g2_query_p)r(oin)n(ter)316 831 y(con)n(trol,)e(19)150 930 y(g2_raspln)316 1030 y(splines,)h(16)150 1130 y(g2_rectangle)316 1229 y(graphic,)f(28)150 1329 y(g2_reset_palette)316 1429 y(color,)g(18)150 1528 y(g2_sa)n(v)n(e)316 1628 y(con)n(trol,)g(20)150 1727 y(g2_set_auto_\035ush)316 1827 y(device,)h(21)150 1927 y(g2_set_bac)n(kground)316 2026 y(color,)f(18)150 2126 y(g2_set_co)r(ordinate_system)316 2226 y(device,)h(21)150 2325 y(g2_set_dash)316 2425 y(con)n(trol,)f(20) 150 2524 y(g2_set_fon)n(t_size)316 2624 y(con)n(trol,)g(20)150 2724 y(g2_set_ld)316 2823 y(device,)h(21)150 2923 y(g2_set_line_width) 316 3023 y(con)n(trol,)f(20)150 3122 y(g2_set_QP)316 3222 y(con)n(trol,)g(20)150 3321 y(g2_spline)316 3421 y(splines,)h(16)150 3521 y(g2_string)316 3620 y(graphic,)f(28)150 3720 y(g2_T)-7 b(abloid)316 3820 y(PS,)28 b(33)150 3919 y(g2_triangle)316 4019 y(graphic,)e(28)150 4118 y(g2_win32)316 4218 y(win32,)h(35)150 4318 y(g2_win32_t)n(yp)r(e)316 4417 y(win32,)g(35)150 4517 y(g2_wmf32)316 4617 y(win32,)g(35)150 4716 y(GD,)h(31)316 4816 y(g2_gd_gif,)d(31)316 4915 y(g2_gd_jp)r(eg,)h (31)316 5015 y(g2_gd_png,)f(31)316 5115 y(g2_gd_t)n(yp)r(e,)h(31)316 5214 y(g2_op)r(en_gd,)f(31)150 5314 y(graphic)316 5414 y(g2_arc,)g(23)316 5513 y(g2_circle,)h(23)316 5613 y(g2_ellipse,)g(24) 2120 333 y(g2_\034lled_arc,)f(24)2120 433 y(g2_\034lled_circle,)g(24) 2120 533 y(g2_\034lled_ellipse,)h(24)2120 633 y(g2_\034lled_p)r (olygon,)f(25)2120 733 y(g2_\034lled_rectangle,)g(25)2120 833 y(g2_\034lled_triangle,)g(25)2120 933 y(g2_image,)g(25)2120 1034 y(g2_line,)h(26)2120 1134 y(g2_line_r,)g(26)2120 1234 y(g2_line_to,)g(26)2120 1334 y(g2_mo)n(v)n(e,)f(26)2120 1434 y(g2_mo)n(v)n(e_r,)f(27)2120 1534 y(g2_plot,)i(27)2120 1634 y(g2_plot_QP,)g(27)2120 1734 y(g2_plot_r,)f(27)2120 1835 y(g2_p)r(oly_line,)h(27)2120 1935 y(g2_p)r(olygon,)f(28)2120 2035 y(g2_rectangle,)g(28)2120 2135 y(g2_string,)h(28)2120 2235 y(g2_triangle,)f(28)1954 2335 y(graphical)h(output,)i(23)1954 2527 y(MS)g(Windo)n(ws,)f(35)1954 2718 y(output)h(con)n(trol,)e(19)1954 2909 y(P)n(ostScript,)h(32)1954 3010 y(PS)2120 3110 y(g2_A0,)f(32)2120 3210 y(g2_A1,)g(32)2120 3310 y(g2_A2,)g(32)2120 3410 y(g2_A3,)g(32)2120 3510 y(g2_A4,)g(32)2120 3610 y(g2_A5,)g(32)2120 3710 y(g2_A6,)g(32)2120 3811 y(g2_A7,)g(32)2120 3911 y(g2_A8,)g(32)2120 4011 y(g2_A9,)g(33)2120 4111 y(g2_B0,)g(33)2120 4211 y(g2_B1,)g(33)2120 4311 y(g2_B10,)f(33)2120 4411 y(g2_B2,)h(33)2120 4511 y(g2_B3,)g(33)2120 4612 y(g2_B4,)g(33)2120 4712 y(g2_B5,)g(33)2120 4812 y(g2_B6,)g(33)2120 4912 y(g2_B7,)g(33)2120 5012 y(g2_B8,)g(33)2120 5112 y(g2_B9,)g(33)2120 5212 y(g2_C5_En)n(v)n(elop)r(e,)f(33)2120 5312 y(g2_Comm_10_En)n(v)n (elop)r(e,)f(33)2120 5413 y(g2_DL_En)n(v)n(elop)r(e,)i(33)2120 5513 y(g2_Executiv)n(e,)g(33)2120 5613 y(g2_F)-7 b(olio,)26 b(33)p 150 5746 V 1709 5823 a Fd(Generated)g(on)e(T)-6 b(ue)25 b(Oct)i(17)d(21:27:47)f(2006)h(for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Page: 43 47 TeXDict begin 43 46 bop 150 70 a Fm(INDEX)3111 b(43)p 150 103 3525 4 v 316 333 a Fl(g2_Ledger,)25 b(33)316 432 y(g2_Legal,)g(33)316 532 y(g2_Letter,)h(33)316 632 y(g2_op)r(en_EPSF,)h(33)316 731 y(g2_op)r(en_EPSF_CLIP,)g(33)316 831 y(g2_op)r(en_PS,)f(33)316 930 y(g2_PS_land,)g(32)316 1030 y(g2_PS_orien)n(tation,)f(32)316 1130 y(g2_PS_pap)r(er,)h(32)316 1229 y(g2_PS_p)r(ort,)g(32)316 1329 y(g2_T)-7 b(abloid,)26 b(33)150 1512 y(splines,)h(14)316 1611 y(g2_b_spline,)f(14)316 1711 y(g2_\034lled_b_spline,)g(14)316 1810 y(g2_\034lled_para_3,)e(14) 316 1910 y(g2_\034lled_para_5,)g(14)316 2010 y(g2_\034lled_raspln,)h (15)316 2109 y(g2_\034lled_spline,)h(15)316 2209 y(g2_para_3,)e(15)316 2309 y(g2_para_5,)g(15)316 2408 y(g2_raspln,)h(16)316 2508 y(g2_spline,)h(16)150 2690 y(vd)316 2790 y(g2_attac)n(h,)g(30)316 2890 y(g2_detac)n(h,)g(30)316 2989 y(g2_op)r(en_vd,)g(30)150 3089 y(virtual)h(device)g(related)g(functions,)h(30)150 3272 y(win32)316 3371 y(g2_op)r(en_win32,)d(35)316 3471 y(g2_win32,)g(35)316 3571 y(g2_win32_t)n(yp)r(e,)g(35)316 3670 y(g2_wmf32,)h(35)150 3853 y(X11,)h(36)316 3952 y(g2_op)r(en_X11,)e (36)316 4052 y(g2_op)r(en_X11X,)g(36)p 150 5746 V 150 5823 a Fd(Generated)h(on)e(T)-6 b(ue)26 b(Oct)g(17)e(21:27:48)f(2006)h (for)h(g2)f(b)n(y)h(Do)n(xygen)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF g2-0.72/doc/Doxyfile0000644000175000017500000013101610253644263013244 0ustar ljuboljubo# Doxyfile 1.3.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = g2 # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.7x # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is used # as the annotated text. Otherwise, the brief description is used as-is. If left # blank, the following values are used ("$name" is automatically replaced with the # name of the entity): "The $name class" "The $name widget" "The $name file" # "is" "provides" "specifies" "contains" "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../src/ . # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl *.cs *.php *.php3 *.inc FILE_PATTERNS = *.c *.h *.dox # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = ../src/g2_fif.c g2_fif.h # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superseded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes that # lay further from the root node will be omitted. Note that setting this option to # 1 or 2 may greatly reduce the computation time needed for large code bases. Also # note that a graph may be further truncated if the graph's image dimensions are # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). # If 0 is used for the depth value (the default), the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO g2-0.72/doc/html/0000755000175000017500000000000010515227264012477 5ustar ljuboljubog2-0.72/doc/html/g2__PS_8h-source.html0000644000175000017500000003371610515227264016345 0ustar ljuboljubo g2: g2_PS.h Source File

g2_PS.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_PS_H
00020 #define _G2_PS_H
00021 
00022 #if defined(__cplusplus)
00023 extern "C"
00024 {
00025 #endif
00026 
00032 enum g2_PS_paper {              /*      Name           Size(Pt)   */
00033  g2_A0,                         
00034  g2_A1,                         
00035  g2_A2,                         
00036  g2_A3,                         
00037  g2_A4,                         
00038  g2_A5,                         
00039  g2_A6,                         
00040  g2_A7,                         
00041  g2_A8,                         
00042  g2_A9,                         
00043  g2_B0,                         
00044  g2_B1,                         
00045  g2_B2,                         
00046  g2_B3,                         
00047  g2_B4,                         
00048  g2_B5,                         
00049  g2_B6,                         
00050  g2_B7,                         
00051  g2_B8,                         
00052  g2_B9,                         
00053  g2_B10,                        
00054  g2_Comm_10_Envelope,           
00055  g2_C5_Envelope,                
00056  g2_DL_Envelope,                
00057  g2_Folio,                      
00058  g2_Executive,                  
00059  g2_Letter,                     
00060  g2_Legal,                      
00061  g2_Ledger,                     
00062  g2_Tabloid                     
00063 };
00064 
00065     
00071 enum g2_PS_orientation {
00072     g2_PS_land,                 
00073     g2_PS_port                  
00074 };
00075 
00076 /*
00077  *  g2 Format
00078  */
00079 enum g2_PS_format {
00080     g2_PS_PostScript,                   /* PostScript  */
00081     g2_PS_EPSF,                         /* EPSF format */
00082     g2_PS_EPSF_CLIP                     /* EPSF format with predefined Bounding Box*/
00083 };
00084 
00085 /* Common Library header for DLL and application */
00086 #ifdef WIN32
00087 #ifdef G2DLL
00088 #ifdef MAKEDLL
00089 /* Create DLL */
00090 #define G2L __declspec( dllexport)
00091 #else
00092 /* Use DLL */
00093 #define G2L __declspec( dllimport)
00094 #endif
00095 #else 
00096 /* Use static win32 */
00097 #define G2L
00098 #endif
00099 #else
00100 /* Use non-win32 */
00101 #define G2L
00102 #endif
00103 
00104 
00105 G2L int g2_open_PS(const char *file_name,
00106                    enum g2_PS_paper paper,
00107                    enum g2_PS_orientation orientation);
00108 
00109 G2L int g2_open_EPSF(const char *file_name);
00110 
00111 G2L int g2_open_EPSF_CLIP(const char *file_name,
00112                         long width, long height);
00113 
00114 #if defined(__cplusplus)
00115 } /* end extern "C" */
00116 #endif
00117 
00118 #endif /* _G2_PS_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__win32_8h-source.html0000644000175000017500000001622510515227264016761 0ustar ljuboljubo g2: g2_win32.h Source File

g2_win32.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_WIN32_H
00020 #define _G2_WIN32_H
00021 
00022 #if defined(__cplusplus)
00023 extern "C"
00024 {
00025 #endif
00026 
00027 #include <stdio.h>
00028 
00029 // Common Library header for DLL and application
00030 #ifdef WIN32
00031 #ifdef G2DLL
00032 #ifdef MAKEDLL
00033 /* Create DLL */
00034 #define LINKDLL __declspec( dllexport)
00035 #else
00036 /* Use DLL */
00037 #define LINKDLL __declspec( dllimport)
00038 #endif
00039 #else 
00040 /* Use static win32 */
00041 #define LINKDLL
00042 #endif
00043 #else
00044 /* Use non-win32 */
00045 #define LINKDLL
00046 #endif
00047 
00053 enum g2_win32_type {
00054     g2_win32,                   
00055     g2_wmf32                    
00056 };
00057 
00058 
00059 LINKDLL int  g2_open_win32(int width, int height, const char *filename,int type);
00060 
00061 
00062 #if defined(__cplusplus)
00063 } /* end extern "C" */
00064 #endif
00065 
00066 
00067 #endif /* _G2_WIN32_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/index.html0000644000175000017500000004747410515227264014514 0ustar ljuboljubo g2: Main Page

g2 Documentation

0.7x

License Notice

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *

Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner.

Introduction

What is g2 ?

Short version (if you are in hurry)

  • 2D graphics library
  • Simple to use
  • Supports several types of output devices (currently X11, PostScript, devices supported by gd (PNG, JPEG), FIG and MS Windows windows)
  • Concept allows easy implementation of new device types
  • Virtual devices allow to send output simultaneously to several devices
  • User definable coordinate system
  • Written in ANSI-C
  • Tested under Digital Unix, AIX, Linux, VMS and Windows NT
  • Perl support
  • Python support
  • Fortran interface

Long version

g2 is a simple to use graphics library for 2D graphical applications written in Ansi-C. It provides a comprehensive set of functions for simultaneous generation of graphical output on different types of devices. Currently, the following devices are supported by g2: X11, PostScript, gd (PNG and JPEG), FIG and MS Windows. One major feature of the g2 library is the concept of virtual devices. An arbitrary number of physical devices (such as PostScript or X11) can be grouped to create a so-called virtual device. Commands sent to such a virtual device are automatically issued to all attached physical devices. This allows for example simultaneous output to a PNG file and a PostScript file. A virtual device in turn can be attached to another virtual device, allowing to construct trees of devices. Virtual devices can also be useful when using different user-coordinate systems. E.g. one X11 window showing an overview of a graphical output, and a second window showing a zoom of a more detailed area of the graphic. Drawing in both windows is performed by one single command to the virtual device.

                                   /-------> PNG:   g2_attach(id_PNG,..
            ----------------------- 
g2_plot---> | Virtual device: id  |--------> X11:   g2_attach(id_X11,...
            -----------------------
                                   \-------> PS:    g2_attach(id_PS,...

If you don't need or like the concept of virtual devices, simply ignore it.

Getting Started

Preinstallation tasks:

PNG and JPEG support

g2 uses the gd library by Thomas Boutell to generate PNG and JPEG files. This package is freeware (however, not GPL) and can be downloaded at http://www.boutell.com/gd/. Linux users might prefer to install a pre-compiled gd rpm package which should be available at your local RedHat mirror site. NT users should install the gd source package in a subdirectory named "gd" which should be located in the same directory as the g2 subdirectory (but not in the g2 directory itself). Otherwise, file locations for gd must be modified in the g2 project workspace. Unix and VMS users will have to build and install gd according to the instructions found in the gd distribution.

Installation

Linux

  1. Either install RPM packet with binaries, or compile as described in the Unix section

Unix

  1. Extract package with gzip -dc g2-xxxx.tar.gz | tar xvf -
  2. Run ./configure
  3. Optionally run make depend
  4. Run make
  5. Run make install, or copy libg2.a/so and g2.h, g2_X11.h, g2_PS.h, g2_gd.h and g2_FIG.h to the default locations for library and include files
  6. Optionally cd to demo directory and run make

Windows NT

  1. Extract package using either the .tar.gz or the .zip distribution
  2. MS Visual C++ users can build both library and demos with the supplied project file: g2.dsw (to obtain an icon and use menu functions, you must also build the g2res project in g2.dsw)
  3. Users of gcc or other commandline based compilers with make support continue as in Unix example
  4. It is also possible to compile g2 on winNT/95 using the free cygwin32 library and a X-windows library for Windows. Theoretically it should be possible to support both X-windows and native NT/95 windows at the same time.

Perl (old instructions)

  1. Change to directory g2_perl
  2. Perform following steps
    • perl Makefile.PL
    • make
    • make test
    • make install
  3. See the Perl interface section for more information

Python

  1. Make sure you have Python installed (note: SWIG is not needed)
  2. Build g2 as described above (see Installation)
  3. Change to directory g2_python
  4. Type
    • on Linux:
      • make to build g2 Python module
      • make demo to test g2 Python module
      • make install to install g2 Python module (you must be root)
    • on Windows (you need Visual Studio when using the standard Python release for Windows):
      • setup.py "compile options" "link options" install
  5. If you link your g2 Python module against libg2.so, and you are unwilling or unable to do an install, you need to tell the g2 Python module where to look for it, either with ldconfig, or with the LD_LIBRARY_PATH environment variable
  6. See the Python interface section for more information

VMS

  1. Try to extract either the .tar.gz or the .zip distribution (whatever is easier for you)
  2. Type mms to compile library (descrip.mms file is supplied)
  3. Run mms in demo directory to compile demo applications

A simple example

The following example is a minimal application. It draws a rectangle in a PostScript file.

#include <g2.h>
#include <g2_PS.h>

main()
{
    int id;
    id = g2_open_PS("rect.ps", g2_A4, g2_PS_land); 
    g2_rectangle(id, 20, 20, 150, 150); 
    g2_close(id);
}

  • Always include <g2.h>. Additionally include header files for all types of devices you want to use.
  • Open devices using g2_open_XY functions.
    The open function returns a device id of type int, which you need to refer to the device.
  • Call g2_close() to close device.
  • Consider turning off auto flush (g2_set_auto_flush()) for improved performance.

You want to draw a PNG file instead of a PostScript file ? Replace the PS header file with

#include <g2_gd.h>

and replace the call to g2_open_PS() with

id = g2_open_gd("rect.png", 300, 200, g2_gd_png);

You want to draw to a PNG file and a PostScript file with one plot command ?

Here we use the concept of virtual devices. Open a PNG and a PostScript device, then open a virtual device and attach both the PNG and PostScript device to the virtual device. Plot commands to the virtual device will be issued to both the PNG and the PostScript device. You can attach and detach further devices at any time.

#include <g2.h>
#include <g2_PS.h>
#include <g2_gd.h>

main()
{
    int id_PS,id_PNG,id;

    id_PS  = g2_open_PS("rect.ps", g2_A4, g2_PS_land);
    id_PNG = g2_open_gd("rect.png", 300, 200, g2_gd_png);
    id     = g2_open_vd();

    g2_attach(id, id_PS);
    g2_attach(id, id_PNG);

    g2_rectangle(id, 20, 20, 150, 150);
    g2_circle(id, 50, 60, 100);

    g2_close(id);
}

Note: closing a virtual device automatically closes all attached devices.

More examples

More examples showing the usage of different user coordinate systems, multiple virtual devices, splines, etc. can be found in the distribution (demo directory).

Fortran interface

The Fortran interface for g2 has currently been tested on Linux and Digital Unix/OSF. Function names for Fortran are the same as in C, however the following differences exist:

  • All variables, including device IDs, are of type REAL
  • Void functions are implemented as subroutines and must be called with CALL
  • Constants defined by #define in C (e.g. g2_A4) do not work. Get corresponding values from the appropriate header files.

A short Fortran example:

        program demo
        real d,color
        d=g2_open_PS('demo_f.ps', 4.0, 1.0)
        call g2_plot(d, 50.0, 50.0)
        call g2_string(d, 25.0, 75.0, 'TEST ')
        color=g2_ink(d, 1.0, 0.0, 0.0)
        write (6,*) color
        call g2_pen(d, color)
        call g2_circle(d, 20.0, 20.0, 10.0)
        call g2_flush(d)
        call g2_close(d)
        stop
        end

Perl interface (old info)

The Perl interface for g2 has currently been tested on Linux and Digital Unix/OSF. Function names in Perl are the same as in C, however the device itself is implemented object oriented, i.e. the device argument is omitted in all functions. Cf. the following simple Perl script:

use G2;

$d = newX11 G2::Device(100,100);
$d->circle(10, 10, 20);
$d->string(20, 40, "Hello World");

print "\nDone.\n[Enter]\n";
getc(STDIN);

$d->close()

The creator functions are newX11, newGIF, newPS, etc. and accept the same arguments as the open functions in the C version. See the Perl documentation (perldoc G2) for more details and the test.pl script for a more extensive example.

Python interface

Function names in Python are the same as in C, however the device itself is implemented object oriented, i.e. the device argument is omitted in all methods. An object is instantiated with one of the g2_open_ functions. Here is a simple Python script:

import sys
from g2 import *
X11 = g2_open_X11(822, 575)
PS = g2_open_PS('foo.ps', g2_A4, g2_PS_land)
graph = g2_open_vd()
graph.g2_attach(X11)
graph.g2_attach(PS)
graph.g2_line(30, 30, 90, 90)
graph.g2_circle(60, 60, 30)
X11.g2_pen(X11.g2_ink(.75, .2, 0))
graph.g2_polygon([60, 30, 30, 60, 60, 90, 90, 60])
graph.g2_set_dash([20, 12])
sqrts = [100, 100, 225, 150, 400, 200, 625, 250]
graph.g2_poly_line(sqrts)
graph.g2_image(640, 252, [[2, 4, 6],[3, 6, 9],[4, 8, 12]])
graph.g2_flush()
print 'Done.\n[Enter]'
sys.stdin.read(1)
graph.g2_close()

In C, many functions expect a pointer to a buffer of double's and an int stating the number of points in this buffer. In Python, these functions are passed just a list of floats. You need not specify the number of points: Python knows the length of the list.

Full documentation, including sample code, is available from the interactive Python prompt:

$ python
>>> import g2
>>> help(g2)

Here functions with a Python specific form (e.g. g2_query_pointer()) are marked as such.

Contact

You can contact the authors and contributors by e-mail (/ is @ and - is .):

  • Ljubomir Milanovic: ljubo/users-sourceforge-net
  • Horst Wagner: wagner/users-sourceforge-net
  • Tijs Michels (spline implementation and Python wrapper): tijs/users-sourceforge-net

or visit the g2 home page on: http://g2.sourceforge.net/


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__PS__funix_8h-source.html0000644000175000017500000001325210515227264017706 0ustar ljuboljubo g2: g2_PS_funix.h Source File

g2_PS_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_PS_FUNIX_H
00020 #define _G2_PS_FUNIX_H
00021 
00022 #include "g2_PS_P.h"
00023 #include "g2_physical_device.h"
00024 
00025 const g2_funix_fun g2_PS_funix[] = {
00026     { g2_Delete,          g2_PS_delete },
00027     { g2_Ink,             g2_PS_ink    },
00028     { g2_Pen,             g2_PS_pen    },
00029     { g2_SetBackground,   g2_PS_set_background },
00030     { g2_ClearPalette,    g2_PS_clear_palette },
00031     { g2_SetLineWidth,    g2_PS_set_line_width },
00032     { g2_SetDash,         g2_PS_set_dash },
00033     { g2_SetFontSize,     g2_PS_set_font_size },
00034     { g2_Clear,           g2_PS_clear },                  
00035     { g2_Flush,           g2_PS_flush },
00036     { g2_Save,            g2_PS_flush },
00037     { g2_Plot,            g2_PS_plot },
00038     { g2_Line,            g2_PS_line },   
00039     { g2_PolyLine,        g2_PS_poly_line },      
00040     { g2_Polygon,         g2_PS_polygon },                
00041     { g2_FilledPolygon,   g2_PS_filled_polygon },
00042     { g2_Rectangle,       g2_PS_rectangle },      
00043     { g2_FilledRectangle, g2_PS_filled_rectangle },       
00044     { g2_Triangle,        g2_PS_triangle },
00045     { g2_FilledTriangle,  g2_PS_filled_triangle },
00046     { g2_Arc,             g2_PS_arc },
00047     { g2_FilledArc,       g2_PS_filled_arc },
00048     { g2_Ellipse,         g2_PS_ellipse },
00049     { g2_FilledEllipse,   g2_PS_filled_ellipse },
00050     { g2_Circle,          NULL },
00051     { g2_FilledCircle,    NULL },
00052     { g2_String,          g2_PS_draw_string },
00053     { g2_FUNIX_NULL,      NULL } };
00054 
00055 
00056 #endif /* _G2_PS_FUNIX_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__graphic.html0000644000175000017500000016620410515227264016366 0ustar ljuboljubo g2: graphical output

graphical output
[g2 User Interface]


Modules

 splines

Functions

void g2_move (int dev, double x, double y)
void g2_move_r (int dev, double dx, double dy)
void g2_plot (int dev, double x, double y)
void g2_plot_r (int dev, double rx, double ry)
void g2_line (int dev, double x1, double y1, double x2, double y2)
void g2_line_r (int dev, double dx, double dy)
void g2_line_to (int dev, double x, double y)
void g2_poly_line (int dev, int N_pt, double *points)
void g2_triangle (int dev, double x1, double y1, double x2, double y2, double x3, double y3)
void g2_filled_triangle (int dev, double x1, double y1, double x2, double y2, double x3, double y3)
void g2_rectangle (int dev, double x1, double y1, double x2, double y2)
void g2_filled_rectangle (int dev, double x1, double y1, double x2, double y2)
void g2_polygon (int dev, int N_pt, double *points)
void g2_filled_polygon (int dev, int N_pt, double *points)
void g2_ellipse (int dev, double x, double y, double r1, double r2)
void g2_filled_ellipse (int dev, double x, double y, double r1, double r2)
void g2_circle (int dev, double x, double y, double r)
void g2_filled_circle (int dev, double x, double y, double r)
void g2_arc (int dev, double x, double y, double r1, double r2, double a1, double a2)
void g2_filled_arc (int dev, double x, double y, double r1, double r2, double a1, double a2)
void g2_string (int dev, double x, double y, const char *text)
void g2_image (int dev, double x, double y, int x_size, int y_size, int *pens)
void g2_plot_QP (int dev, double x, double y)

Function Documentation

void g2_arc int  dev,
double  x,
double  y,
double  r1,
double  r2,
double  a1,
double  a2
 

Draw an arc.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r1 x radius
r2 y radius
a1 starting angle (in deg. 0-360)
a2 ending angle (in deg. 0-360)

void g2_circle int  dev,
double  x,
double  y,
double  r
 

Draw a circle.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r radius

void g2_ellipse int  dev,
double  x,
double  y,
double  r1,
double  r2
 

Draw an ellipse.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r1 x radius
r2 y radius

void g2_filled_arc int  dev,
double  x,
double  y,
double  r1,
double  r2,
double  a1,
double  a2
 

Draw a filled arc.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r1 x radius
r2 y radius
a1 starting angle (in deg. 0-360)
a2 ending angle (in deg. 0-360)

void g2_filled_circle int  dev,
double  x,
double  y,
double  r
 

Draw a filled circle.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r radius

void g2_filled_ellipse int  dev,
double  x,
double  y,
double  r1,
double  r2
 

Draw a filled ellipse.

Parameters:
dev device
x x coordinate of the center
y y coordinate of the center
r1 x radius
r2 y radius

void g2_filled_polygon int  dev,
int  N_pt,
double *  points
 

Draw a filled polygon.

Parameters:
dev device
N_pt number of points (Note: It is not size of points vector!)
points vector of coordinates: x1, y1, x2, y2, ...

void g2_filled_rectangle int  dev,
double  x1,
double  y1,
double  x2,
double  y2
 

Draw a filled rectangle specified by the two opposite corner points.

Parameters:
dev device
x1 x coordinate of the 1st corner
y1 y coordinate of the 1st corner
x2 x coordinate of the 3rd corner
y2 y coordinate of the 3rd corner

void g2_filled_triangle int  dev,
double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3
 

Draw a filled triangle specified by the 3 corner points.

Parameters:
dev device
x1 x coordinate of the 1st corner
y1 y coordinate of the 1st corner
x2 x coordinate of the 2nd corner
y2 y coordinate of the 2nd corner
x3 x coordinate of the 3rd corner
y3 y coordinate of the 3rd corner

void g2_image int  dev,
double  x,
double  y,
int  x_size,
int  y_size,
int *  pens
 

Draw a pen image

Parameters:
dev device
x x coordinate
y y coordinate
x_size x size
y_size y size
pens vector of x_size*y_size pens: p11, p21, ... pxy, ...

void g2_line int  dev,
double  x1,
double  y1,
double  x2,
double  y2
 

Draw a line from x1, y1 to x2, y2.

Parameters:
dev device
x1 see above
y1 see above
x2 see above
y2 see above

void g2_line_r int  dev,
double  dx,
double  dy
 

Draw line relative to the graphic cursor.

Parameters:
dev device
dx relative x coordinate
dy relative y coordinate

void g2_line_to int  dev,
double  x,
double  y
 

Draw line from graphic cursor to the point x, y

Parameters:
dev device
x x coordinate
y y coordinate

void g2_move int  dev,
double  x,
double  y
 

Move graphic cursor.

Parameters:
dev device
x x coordinate
y y coordinate

void g2_move_r int  dev,
double  dx,
double  dy
 

Move graphic cursor relative to the currner graphical cursor position.

Parameters:
dev device
dx x coordinate increment
dy y coordinate increment

void g2_plot int  dev,
double  x,
double  y
 

Plot a point

Parameters:
dev device
x x coordinate
y y coordinate

void g2_plot_QP int  dev,
double  x,
double  y
 

Quasi Pixel fake. Quasi pixel is introduced to make easier plotting of cellular automata and related pictures. QP is simple a big pixel as specified by g2_set_QP(). Coordinates are skaled accordingly, so no recalculation is needed on client side.

Parameters:
dev device
x x coordinate
y y coordinate

void g2_plot_r int  dev,
double  rx,
double  ry
 

Plot a point relative to graphical cursor.

Parameters:
dev device
rx relative x coordinate
ry relative y coordinate

void g2_poly_line int  dev,
int  N_pt,
double *  points
 

Draw a poly line.

Parameters:
dev device
N_pt number of points (Note: It is not size of points vector!)
points vector of coordinates: x1, y1, x2, y2, ...

void g2_polygon int  dev,
int  N_pt,
double *  points
 

Draw a polygon.

Parameters:
dev device
N_pt number of points (Note: It is not size of points vector!)
points vector of coordinates: x1, y1, x2, y2, ...

void g2_rectangle int  dev,
double  x1,
double  y1,
double  x2,
double  y2
 

Draw a rectangle specified by the two opposite corner points.

Parameters:
dev device
x1 x coordinate of the 1st corner
y1 y coordinate of the 1st corner
x2 x coordinate of the 3rd corner
y2 y coordinate of the 3rd corner

void g2_string int  dev,
double  x,
double  y,
const char *  text
 

Draw string, see also g2_set_font_size().

Parameters:
dev device
x x coordinate
y y coordinate
text null terminated string

void g2_triangle int  dev,
double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3
 

Draw a triangle described by 3 corner points.

Parameters:
dev device
x1 x coordinate of the 1st corner
y1 y coordinate of the 1st corner
x2 x coordinate of the 2nd corner
y2 y coordinate of the 2nd corner
x3 x coordinate of the 3rd corner
y3 y coordinate of the 3rd corner


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__funix_8h-source.html0000644000175000017500000003647110515227264017155 0ustar ljuboljubo g2: g2_funix.h Source File

g2_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_FUNIX_H
00020 #define _G2_FUNIX_H
00021 
00022 /*
00023  *
00024  * FUNction IndeX enumeration
00025  *
00026  */
00027 
00028 #define G2_N_FUNIX  31    /* WARNING !! */
00029                           /* number of funix excl. g2_FUNIX_NULL !!! */
00030 
00031 typedef enum g2_funix {
00032     g2_FUNIX_NULL=-1,     /* null funix (_don't_ _count_ in G2_N_FUNIX !!!!) */
00033     
00034     g2_DoNothing=0,       /* do nothing */
00035                           /* ... =  */
00036 
00037     g2_Delete,            /* delete physical device */
00038                           /* ... =  */
00039 
00040     g2_Ink,               /* set ink */
00041                           /* ... = (int)red, (int)green, (int)blue */
00042                           /* 0 < (red,green,blue) < 65535 (=0xFFFF) */
00043                           /* ret: color id(>=0), <0 if error */
00044     
00045     g2_Pen,               /* set pen */
00046                           /* ... = (int)pen */
00047     
00048     g2_SetBackground,     /* set background */
00049                           /* ... = (int)pen */
00050     
00051     g2_ClearPalette,      /* reset color pallete to default values */
00052                           /* ... = */
00053                           /* for list of default colors (0,31) see later */
00054 
00055     g2_SetLineWidth,      /* set line width (line, rectangle, ...) */
00056                           /* ... = (double)line width */
00057     
00058     g2_SetDash,           /* set line dash */
00059                           /* ... = (int)number of descr., (double*) bw list */
00060     
00061     g2_SetFontSize,       /* set font size */
00062                           /* ... = (double)font size */
00063     
00064     g2_Clear,             /* clear screen(X11), print page(PostScript), ... */
00065                           /* ... = */
00066     
00067     g2_Flush,             /* update output */
00068                           /* X11: Flush, PostScript: fflush, ... */
00069 
00070     g2_Save,              /* save output to device (e.g. file) */
00071                           /* X11: Flush, etc. */
00072 
00073     g2_Plot,              /* plot point */
00074                           /* ... = (double)x, (double)y */
00075 
00076     g2_Line,              /* draw line */
00077                           /* ... = (double)x1, (double)y1,
00078                                    (double)x2, (double)y2  */
00079 
00080     g2_PolyLine,          /* draw poly line */
00081                           /* ... = (int)N,
00082                                    (double*)dp
00083                             dp[0]=x1, dp[1]=y1,
00084                             ...
00085                             dp[2*N-2]=xN, dp[2*N-1]=yN   */
00086 
00087     g2_Polygon,           /* draw polygon */
00088                           /* ... = (int)N,
00089                                    (double*)dp
00090                             dp[0]=x1, dp[1]=y1,
00091                             ...
00092                             dp[2*N-2]=xN, dp[2*N-1]=yN   */
00093 
00094     g2_FilledPolygon,     /* draw filled polygon */
00095                           /* ... = (int)N,
00096                                    (double*)dp
00097                             dp[0]=x1, dp[1]=y1,
00098                             ...
00099                             dp[2*N-2]=xN, dp[2*N-1]=yN   */
00100 
00101     g2_Rectangle,         /* draw rectangle */
00102                           /* ... = (double)x1, (double)y1,
00103                                    (double)x2, (double)y2  */
00104 
00105     g2_FilledRectangle,   /* draw filled rectangle */
00106                           /* ... = (double)x1, (double)x1,
00107                                    (double)x2, (double)y2  */
00108 
00109     g2_Triangle,          /* draw triangle (should be faster as lines) */
00110                           /* ... = (double)x1, (double)y1,
00111                                    (double)x2, (double)y2,
00112                                    (double)x3, (double)y3 */
00113     
00114     g2_FilledTriangle,    /* draw filled triangle */
00115                           /* ... = (double)x1, (double)y1,
00116                                    (double)x2, (double)y2,
00117                                    (double)x3, (double)y3 */
00118     
00119     g2_Arc,               /* draw arc */
00120                           /* ... = (double)x,  (double)y,
00121                                    (double)r1, (double)r2,
00122                                    (double)a1, (double)a2  */
00123 
00124     g2_FilledArc,         /* draw filled arc */
00125                           /* ... = (double)x,  (double)y,
00126                                    (double)r1, (double)r2,
00127                                    (double)a1, (double)a2  */
00128     
00129     g2_Ellipse,           /* draw ellipse */
00130                           /* ... = (double)x,  (double)y,
00131                                    (double)r1, (double)r2 */
00132 
00133     g2_FilledEllipse,     /* draw filled ellipse */
00134                           /* ... = (double)x,  (double)y,
00135                                    (double)r1, (double)r2 */
00136 
00137     g2_Circle,            /* draw circle */
00138                           /* ... = (double)x,  (double)y,
00139                                    (double)r */
00140 
00141     g2_FilledCircle,      /* draw filled circle */
00142                           /* ... = (double)x,  (double)y,
00143                                    (double)r */
00144 
00145     g2_String,            /* draw string */
00146                           /* ... = (double)x, (double)y, (const char*)string */
00147 
00148     g2_Image,             /* draw (pen) image */
00149                           /* ... = (double)x, (double)y,
00150                                    (int)x_size, (int)y_size, (int*)pen_array */
00151 
00152     g2_QueryPointer,      /* query pointer position (mouse) */
00153                           /* ... =  (double)*x, (double)*y,
00154                                     (unsigned int)*button */
00155     g2_GetPDHandles       /* get pointers to low level handles */
00156                           /* ... = void *handles[G2_MAX_NUMBER_PD_HANDLES] */
00157 } g2_funix;
00158 
00159 
00160 #endif /* _G2_FUNIX_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__graphic__pd_8h-source.html0000644000175000017500000002233510515227264020255 0ustar ljuboljubo g2: g2_graphic_pd.h Source File

g2_graphic_pd.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_GRAPHIC_PD_H
00020 #define _G2_GRAPHIC_PD_H
00021 
00022 #include "g2_physical_device.h"
00023 #include "g2_funix.h"
00024 
00025 
00026 void g2_plot_pd(g2_physical_device *pd, double x, double y);
00027 void g2_line_pd(g2_physical_device *pd,
00028                 double x1, double y1, double x2, double y2);
00029 void g2_poly_line_pd(g2_physical_device *pd, int N, double *points);
00030 void g2_triangle_pd(g2_physical_device *pd,
00031                     double x1, double y1,
00032                     double x2, double y2,
00033                     double x3, double y3);
00034 void g2_filled_triangle_pd(g2_physical_device *pd,
00035                            double x1, double y1,
00036                            double x2, double y2,
00037                            double x3, double y3);
00038 void g2_rectangle_pd(g2_physical_device *pd,
00039                      double x1, double y1, double x2, double y2);
00040 void g2_filled_rectangle_pd(g2_physical_device *pd,
00041                             double x1, double y1, double x2, double y2);
00042 void g2_polygon_pd(g2_physical_device *pd, int N, double *points);
00043 void g2_filled_polygon_pd(g2_physical_device *pd, int N, double *points);
00044 void g2_ellipse_pd(g2_physical_device *pd,
00045                    double x, double y, double r1, double r2);
00046 void g2_filled_ellipse_pd(g2_physical_device *pd,
00047                           double x, double y, double r1, double r2);
00048 void g2_circle_pd(g2_physical_device *pd,
00049                   double x, double y, double r);
00050 void g2_filled_circle_pd(g2_physical_device *pd,
00051                          double x, double y, double r);
00052 void g2_arc_pd(g2_physical_device *pd,
00053                double x, double y,
00054                double r1, double r2,
00055                double a1, double a2);
00056 void g2_filled_arc_pd(g2_physical_device *pd,
00057                       double x, double y,
00058                       double r1, double r2,
00059                       double a1, double a2);
00060 void g2_string_pd(g2_physical_device *pd,
00061                   double x, double y, const char *text);
00062 void g2_image_pd(g2_physical_device *pd,
00063                  double x, double y, int x_size, int y_size, int *pens);
00064 
00065 
00066 #endif /* _G2_GRAPHIC_PD_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__X11__funix_8h-source.html0000644000175000017500000001370010515227264017733 0ustar ljuboljubo g2: g2_X11_funix.h Source File

g2_X11_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_X11_FUNIX_H
00020 #define _G2_X11_FUNIX_H
00021 
00022 #include "g2_X11_P.h"
00023 #include "g2_physical_device.h"
00024 
00025 
00026 const g2_funix_fun g2_X11_funix[] = {
00027     { g2_Delete,          g2_X11_delete },
00028     { g2_Ink,             g2_X11_ink    },
00029     { g2_Pen,             g2_X11_pen    },
00030     { g2_SetBackground,   g2_X11_set_background },
00031     { g2_ClearPalette,    g2_X11_clear_palette },
00032     { g2_SetLineWidth,    g2_X11_set_line_width },
00033     { g2_SetDash,         g2_X11_set_dash },
00034     { g2_SetFontSize,     g2_X11_set_font_size },
00035     { g2_Clear,           g2_X11_clear },                 
00036     { g2_Flush,           g2_X11_flush },
00037     { g2_Save,            g2_X11_flush },
00038     { g2_Plot,            g2_X11_plot },
00039     { g2_Line,            g2_X11_line },          
00040     { g2_PolyLine,        g2_X11_poly_line },     
00041     { g2_Polygon,         g2_X11_polygon },               
00042     { g2_FilledPolygon,   g2_X11_filled_polygon },
00043     { g2_Rectangle,       g2_X11_rectangle },     
00044     { g2_FilledRectangle, g2_X11_filled_rectangle },      
00045     { g2_Triangle,        g2_X11_triangle },
00046     { g2_FilledTriangle,  g2_X11_filled_triangle },
00047     { g2_Arc,             g2_X11_arc },
00048     { g2_FilledArc,       g2_X11_filled_arc },
00049     { g2_Ellipse,         g2_X11_ellipse },
00050     { g2_FilledEllipse,   g2_X11_filled_ellipse },
00051     { g2_Circle,          NULL },
00052     { g2_FilledCircle,    NULL },
00053     { g2_String,          g2_X11_draw_string },
00054     { g2_Image,           NULL },
00055     { g2_QueryPointer,    g2_X11_query_pointer },
00056     { g2_GetPDHandles,    g2_X11_get_pd_handles },
00057     { g2_FUNIX_NULL,      NULL } };
00058 
00059 
00060 #endif /* _G2_X11_FUNIX_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__win32__P_8h-source.html0000644000175000017500000003753110515227264017402 0ustar ljuboljubo g2: g2_win32_P.h Source File

g2_win32_P.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_WIN32_P_H
00020 #define _G2_WIN32_P_H
00021 
00022 #include "windows.h"
00023 #include <stdio.h>
00024 
00025 extern HMENU hmenu;
00026 extern HANDLE ghModule;
00027 extern HINSTANCE g2res_DLL;
00028 
00029 typedef struct g2_win32_STRUCT {
00030         HANDLE hThread;
00031         HWND   hwndThreadWindow;
00032         HANDLE hinst;
00033         HBITMAP hBitmap;
00034         HDC hMemDC;
00035         HPEN hPen;
00036         HPEN hNullPen;
00037         HBRUSH hBrush;
00038         HFONT hFont;
00039         int nWidth;
00040         int nHeight;
00041         int x;
00042         int y;
00043         int NoOfInks;
00044         int PenWidth;
00045         int PenStyle;
00046         DWORD *PenDash;
00047         int Pen;
00048         int BkColor;
00049         COLORREF PenColor;
00050         COLORREF *Inks;
00051         char *title;
00052         int type;
00053         int messageloop;
00054         } g2_win32_STRUCT;
00055 
00056 
00057 BOOL SaveBitmapAs(HWND hWnd,struct XPGTHREADINFO *pThreadInfo);
00058 LRESULT CALLBACK g2_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
00059 long WINAPI g2_StartThread(struct g2_win32_STRUCT *pdp);
00060 void errhandler(LPSTR errtxt,HWND hwnd);
00061 
00062 
00063 int g2_win32_init_win32(int pid, void *pdp, int vid, int width,int height);
00064 int g2_win32_init_win32X(int pid, void *pdp,
00065                      int width, int height,
00066                      int xposition, int yposition,
00067                      char *windowname, char *iconname,
00068                      char *icondata, int iconwidth, int iconheight);
00069 int g2_win32_Delete(int pid, void *pdp);
00070 int g2_win32_Clear(int pid, void *pdp);
00071 int g2_win32_Flush(int pid, void *pdp);
00072 int g2_win32_Ink(int pid, void *pdp,
00073                double red, double green, double blue);
00074 int g2_win32_ClearPalette(int pid, void *pdp);
00075 int g2_win32_ResetPalette(int pid, void *pdp);
00076 int g2_win32_SetBackground(int pid, void *pdp, int color);
00077 int g2_win32_Pen(int pid, void *pdp, int color);
00078 int g2_win32_Paper(int pid, void *pdp, int color);
00079 int g2_win32_SetLineWidth(int pid, void *pdp, int w);
00080 int g2_win32_SetDash(int pid, void *pdp, int n, int *data);
00081 int g2_win32_SetFontSize(int pid, void *pdp, int size);
00082 int g2_win32_Plot(int pid, void *pdp, int x, int y);
00083 int g2_win32_Line(int pid, void *pdp, int x1, int y1, int x2, int y2);
00084 int g2_win32_PolyLine(int pid, void *pdp, int N, int *p);
00085 int g2_win32_Polygon(int pid, void *pdp, int N, int *p);
00086 int g2_win32_FilledPolygon(int pid, void *pdp, int N, int *p);
00087 int g2_win32_Triangle(int pid, void *pdp,
00088                     int x1, int y1,
00089                     int x2, int y2,
00090                     int x3, int y3);
00091 int g2_win32_FilledTriangle(int pid, void *pdp, int x1, int y1,
00092                            int x2, int y2,
00093                            int x3, int y3);
00094 int g2_win32_Rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2);
00095 int g2_win32_FilledRectangle(int pid, void *pdp,
00096                             int x1, int y1, int x2, int y2);
00097 int g2_win32_Circle(int pid, void *pdp, int x, int y, int r);
00098 int g2_win32_FilledCircle(int pid, void *pdp, int x, int y, int r);
00099 int g2_win32_Arc(int pid, void *pdp, int x, int y,
00100                int r1, int r2, double a1, double a2);
00101 int g2_win32_FilledArc(int pid, void *pdp, int x, int y,
00102                       int r1, int r2, double a1, double a2);
00103 int g2_win32_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2);
00104 int g2_win32_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2);
00105 int g2_win32_DrawString(int pid, void *pdp, int x, int y, const char *text);
00106 int g2_win32_QueryPointer(int pid, void *pdp, int *x, int *y, unsigned int *button);
00107 
00108 int g2_win32_AllocateBasicColors(int pid, void *pdp);
00109 
00110 int g2_win32_Cleanup(int pid, void *pdp);
00111 
00112 #endif /* _G2_WIN32_P_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/tab_r.gif0000644000175000017500000000503110515227263014253 0ustar ljuboljuboGIF89a,Õö÷ùñô÷öøúüýþúûüùúûøùúêïóïóöÆÕßÒÞæØâéÞçíÝæìåìñèîòô÷ùóöø³ÈÕÁÒÝËÙâÏÜäÖá薴ŹɯÂÍ»ÎÙÃÔÞÂÓÝÈ×àÌÚâÕáèÙäê×âèåìðëðó„°ÇÑÞåÜæëãëïëñôîóõ÷úûûüüÿÿÿþþþ,,ÿ@’pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬v •h<¬pkL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~ÏwVa+‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ “*)^,*ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂö)'ÆÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæÚ¥(" ðñòóôõö÷øùúûüýþÿ H° ÁƒòK"ƒRHœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\éÅu&@€ Á²¦Í›8sêÜɳ§Oÿ–(±€DУH“*]Ê´©Ó§P£JJµªÕ«X³jÝʵ«×¯S84± ‰hÓª]˶­Û·pãÊK·®Ý»xóêÝË·¯ß¿€Ó} âDÌf(^̸±ãÇ#KžL¹²å˘3kÞ̹³çÏ C‹m¹ðCÄHœXͺµë×°cËžM»¶íÛ¸sëÞÍ»·ïßÀƒ N÷ÃJ” Á®¹óçУKŸN½ºõëØ³kßν»÷ïàËO¾úñ€ dÇ@€‚‚L¤"ÉÈF:ò‘Œ¤$9† (8…&ÉÉNzò“  ¥(G©FB^²!˨)WÉÊVºò•°l¤)1™ wÄò–¸Ì¥.wÊYºäƒà¥0‡IÌbó¾|ÉHpÌf:ó™Ðìe pJ±ˆ€}Ȧ6·ÉÍnzó›à §8û0Â%"¸æ8×ÉÎvºóðŒ§<ÉPÎQ`ò%×$€>÷ÉÏ~úóŸ ¨@JЂô M¨BÊІ:ô¡¨D'ZPKF Ö¼&16ÊÑŽzô£ ©HGJRb ÷Lç5ÏÁÒ–ºô¥ÿ0©LgJÓšš#(e>¯‰Óžúô§@ ªP‡JÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕª&5;%U·ÊÕ®zõ«` «XÇJV«ÂC§‹ÑjY×ÊÖ¶ºõ­p«\ŠU´À¦xÍ«^÷Ê×¾úõ¯ÐÀi)$‚”ô°ˆM¬bËØÆ:vˆ, ಘͬf7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­*$ÛSPô¶¸Í­nwËÛÞúö·ÀÅm +„â¸ÈM®r—ËÜæ:÷¹ÐE®?±9ÏêZ÷ºØÍ®v¿9€î"‚ºÛ ¯xÇKÞòb—™ÑLÿ¯z×Ë^A¢·½ð¯|ç†÷Ò÷¾øÍ¯0í«ßþú÷¿¡ä/€Là»×ÀN°‚ï(à;øÁ n0„'LaýJ¸ÂÎ0{/¬á{ؘþ°ˆG|Ë“øÄ(¥‰SÌâCrÅ.ޱŒ ãÛøÆv¬1ŽwÌc6ê¸Ç@ÞñƒLd¹ÈHNñ‘“Ìd/¹ÉPÎð“£LeO¹ÊXŽp–·|â+sùËýõ2˜ÇL_1“ùÌí53š×M5³ùÍÇt3œç¼_:ÛÙÂwÎs™õÌgøÊ¹Ï€p ýÌ?úÐ/F´¢ë¼èFãÒÐŽŽt!-éJã‘Ò–Îô1­éN»‘ÓžuÿA-êP“ºÔ>5ª3­êUWºÕ®Ž4¬cÝèYÓZѶ¾õ¡s­ëAóº×€þ5°ù,ìaç¹ØÆ¶3²“=çe3ûÍÎ~öš£-í3S»Úc¾6¶¿¬ímo¹ÛÞÆ2¸ÃMåq“Êæ>7“Ó­n$³»ÝD~7¼,ïyó¸ÞöÆ1¾ómã}óÛÈÿvµ¿Þâ\É/µÁNâ…3ÜÉ÷´Ã#Þá‰S\ÊguÆ-mñO¸ã0ÈC¾à‘“\Ë'_´ÉS^à•³|À.ùc.ó0לÐ4¿9~s®ó=÷¼Ï<ÿy|ƒ.ô4]ÏD?ºz“®ô67]ÙO§3Ó£ÞÌ©SÄW‡vÖÙl>õ­3Úëdî:Øu)ö±?ÚìÙF;˜Ë®öW²½í­|;ÜW)÷¹²îvtÞ˽w¾÷Ý|à×=xÂÞÝA;g2-0.72/doc/html/g2__gd__P_8h-source.html0000644000175000017500000003706210515227264017031 0ustar ljuboljubo g2: g2_gd_P.h Source File

g2_gd_P.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_GD_P_H
00020 #define _G2_GD_P_H
00021 
00022 #include <gd.h>
00023 #include <gdfontt.h>
00024 #include <gdfonts.h>
00025 #include <gdfontmb.h>
00026 #include <gdfontl.h>
00027 #include <gdfontg.h>
00028 #include "g2_config.h"
00029 #include "g2_gd.h"
00030 
00031  static unsigned short g2_Basic_Colors[32][3] = {
00032  {65535,65535,65535},{0,0,0},
00033  {44461,55512,59110},{0,65535,65535},{0,0,65535},
00034  {0,0,32896},{61166,33410,61166},
00035  {65535,0,65535},{41120,8224,61680},{65535,49344,52171},
00036  {61680,59110,35980},{32639,65535,54484},
00037  {39064,64507,39064},{0,65535,0},{12850,52685,12850},
00038  {39578,52685,12850},{44461,65535,12079},{65535,65535,0},
00039  {65535,55255,0},{61166,56797,33410},{56026,42405,8224},{47288,34438,2827},
00040  {42405,10794,10794},{53970,26985,7710},
00041  {52685,34181,16191},{65535,32639,20560},
00042  {61680,32896,32896},{64250,32896,29298},
00043  {65535,35980,0},{65535,42405,0},{65535,17733,0},
00044  {65535,0,0}};
00045 
00046 
00047 typedef struct g2_gd_STRUCT {
00048         int height;
00049         int width;
00050         FILE *f;
00051         gdImagePtr im;
00052         gdImagePtr brush;
00053         int LineWidth;
00054         int NoOfInks;
00055         int Inks[256];
00056         int CurCol;
00057         int OldCol;
00058         int BackCol;
00059         gdFontPtr FontSize;
00060         enum g2_gd_type gd_type;
00061         } g2_gd_STRUCT;
00062 
00063 
00064 
00065 int g2_gd_init_gd(int pid, void *pdp, int vid, int width,int height);
00066 int g2_gd_init_gdX(int pid, void *pdp,
00067                      int width, int height,
00068                      int xposition, int yposition,
00069                      char *windowname, char *iconname,
00070                      char *icondata, int iconwidth, int iconheight);
00071 int g2_gd_Delete(int pid, void *pdp);
00072 int g2_gd_Clear(int pid, void *pdp);
00073 int g2_gd_Flush(int pid, void *pdp);
00074 int g2_gd_Ink(int pid, void *pdp,
00075                double red, double green, double blue);
00076 int g2_gd_ClearPalette(int pid, void *pdp);
00077 int g2_gd_ResetPalette(int pid, void *pdp);
00078 int g2_gd_SetBackground(int pid, void *pdp, int color);
00079 int g2_gd_Pen(int pid, void *pdp, int color);
00080 int g2_gd_Paper(int pid, void *pdp, int color);
00081 int g2_gd_SetLineWidth(int pid, void *pdp, int w);
00082 int g2_gd_SetDash(int pid, void *pdp, int n, char *data);
00083 int g2_gd_SetFontSize(int pid, void *pdp, int size);
00084 int g2_gd_Plot(int pid, void *pdp, int x, int y);
00085 int g2_gd_Line(int pid, void *pdp, int x1, int y1, int x2, int y2);
00086 int g2_gd_PolyLine(int pid, void *pdp, int N, int *p);
00087 int g2_gd_Polygon(int pid, void *pdp, int N, int *p);
00088 int g2_gd_FilledPolygon(int pid, void *pdp, int N, int *p);
00089 int g2_gd_Triangle(int pid, void *pdp,
00090                     int x1, int y1,
00091                     int x2, int y2,
00092                     int x3, int y3);
00093 int g2_gd_FilledTriangle(int pid, void *pdp, int x1, int y1,
00094                            int x2, int y2,
00095                            int x3, int y3);
00096 int g2_gd_Rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2);
00097 int g2_gd_FilledRectangle(int pid, void *pdp,
00098                             int x1, int y1, int x2, int y2);
00099 int g2_gd_Circle(int pid, void *pdp, int x, int y, int r);
00100 int g2_gd_FilledCircle(int pid, void *pdp, int x, int y, int r);
00101 int g2_gd_Arc(int pid, void *pdp, int x, int y,
00102                int r1, int r2, double a1, double a2);
00103 int g2_gd_FilledArc(int pid, void *pdp, int x, int y,
00104                       int r1, int r2, double a1, double a2);
00105 int g2_gd_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2);
00106 int g2_gd_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2);
00107 int g2_gd_DrawString(int pid, void *pdp, int x, int y, const char *text);
00108 
00109 int g2_gd_AllocateBasicColors(int pid, void *pdp);
00110 
00111 #endif /* _G2_GD_P_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__win32__funix_8h-source.html0000644000175000017500000001325410515227264020330 0ustar ljuboljubo g2: g2_win32_funix.h Source File

g2_win32_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_WIN32_FUNIX_H
00020 #define _G2_WIN32_FUNIX_H
00021 
00022 #include "g2_win32_P.h"
00023 #include "g2_physical_device.h"
00024 
00025 const g2_funix_fun g2_win32_funix[] = {
00026     { g2_Delete,          g2_win32_Delete },
00027     { g2_Ink,             g2_win32_Ink    },
00028     { g2_Pen,             g2_win32_Pen    },
00029     { g2_SetBackground,   g2_win32_SetBackground },
00030     { g2_ClearPalette,    g2_win32_ClearPalette },
00031     { g2_SetLineWidth,    g2_win32_SetLineWidth },
00032     { g2_SetDash,         g2_win32_SetDash },
00033     { g2_SetFontSize,     g2_win32_SetFontSize },
00034     { g2_Clear,           g2_win32_Clear },               
00035     { g2_Flush,           g2_win32_Flush },
00036     { g2_Save,            g2_win32_Flush },
00037     { g2_Plot,            g2_win32_Plot },
00038     { g2_Line,            g2_win32_Line },        
00039     { g2_PolyLine,        g2_win32_PolyLine },    
00040     { g2_Polygon,         g2_win32_Polygon },             
00041     { g2_FilledPolygon,   g2_win32_FilledPolygon },
00042     { g2_Rectangle,       g2_win32_Rectangle },   
00043     { g2_FilledRectangle, g2_win32_FilledRectangle },     
00044     { g2_Arc,             g2_win32_Arc },
00045     { g2_FilledArc,       g2_win32_FilledArc },
00046     { g2_Ellipse,         g2_win32_Ellipse },
00047     { g2_FilledEllipse,   g2_win32_FilledEllipse },
00048     { g2_Circle,          NULL },
00049     { g2_FilledCircle,    NULL },
00050     { g2_String,          g2_win32_DrawString },
00051         { g2_QueryPointer,    g2_win32_QueryPointer },
00052     { g2_FUNIX_NULL,      NULL } };
00053 
00054 
00055 #endif /* _G2_WIN32_FUNIX_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/tabs.css0000644000175000017500000000333610515227263014146 0ustar ljuboljubo/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ DIV.tabs { float : left; width : 100%; background : url("tab_b.gif") repeat-x bottom; margin-bottom : 4px; } DIV.tabs UL { margin : 0px; padding-left : 10px; list-style : none; } DIV.tabs LI, DIV.tabs FORM { display : inline; margin : 0px; padding : 0px; } DIV.tabs FORM { float : right; } DIV.tabs A { float : left; background : url("tab_r.gif") no-repeat right top; border-bottom : 1px solid #84B0C7; font-size : x-small; font-weight : bold; text-decoration : none; } DIV.tabs A:hover { background-position: 100% -150px; } DIV.tabs A:link, DIV.tabs A:visited, DIV.tabs A:active, DIV.tabs A:hover { color: #1A419D; } DIV.tabs SPAN { float : left; display : block; background : url("tab_l.gif") no-repeat left top; padding : 5px 9px; white-space : nowrap; } DIV.tabs INPUT { float : right; display : inline; font-size : 1em; } DIV.tabs TD { font-size : x-small; font-weight : bold; text-decoration : none; } /* Commented Backslash Hack hides rule from IE5-Mac \*/ DIV.tabs SPAN {float : none;} /* End IE5-Mac hack */ DIV.tabs A:hover SPAN { background-position: 0% -150px; } DIV.tabs LI#current A { background-position: 100% -150px; border-width : 0px; } DIV.tabs LI#current SPAN { background-position: 0% -150px; padding-bottom : 6px; } DIV.nav { background : none; border : none; border-bottom : 1px solid #84B0C7; } g2-0.72/doc/html/g2__control__pd_8h-source.html0000644000175000017500000001303210515227264020312 0ustar ljuboljubo g2: g2_control_pd.h Source File

g2_control_pd.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_CONTROL_PD_H
00020 #define _G2_CONTROL_PD_H
00021 
00022 #include "g2_physical_device.h"
00023 
00024 void g2_flush_pd(g2_physical_device *pd);
00025 void g2_save_pd(g2_physical_device *pd);
00026 void g2_clear_pd(g2_physical_device *pd);
00027 void g2_pen_pd(g2_physical_device *pd, int color);
00028 void g2_set_background_pd(g2_physical_device *pd, int color);
00029 int  g2_ink_pd(g2_physical_device *pd, double red, double green, double blue);
00030 void g2_clear_palette_pd(g2_physical_device *pd);
00031 void g2_allocate_basic_colors_pd(g2_physical_device *pd);
00032 void g2_set_font_size_pd(g2_physical_device *pd, double size);
00033 void g2_set_line_width_pd(g2_physical_device *pd, double w);
00034 void g2_set_dash_pd(g2_physical_device *pd, int N, double *dashes);
00035 void g2_query_pointer_pd(g2_physical_device *pd,
00036                          double *x, double *y, unsigned int *button);
00037 void g2_get_pd_handles_pd(g2_physical_device *pd, void *handles[G2_PD_HANDLES_SIZE]);
00038 
00039 #endif /* _G2_CONTROL_PD_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__device.html0000644000175000017500000002417410515227264016207 0ustar ljuboljubo g2: devices control

devices control
[g2 User Interface]


Functions

void g2_close (int dev)
void g2_set_auto_flush (int dev, int on_off)
void g2_set_coordinate_system (int dev, double x_origin, double y_origin, double x_mul, double y_mul)
int g2_ld (void)
void g2_set_ld (int dev)

Function Documentation

void g2_close int  dev  ) 
 

Close and delete a device.

Parameters:
dev device

int g2_ld void   ) 
 

Get the last accessed device. G2LD macro is defined as the g2_ld function.

   g2_open_X11(100, 100);
   g2_plot(G2LD, 50, 50);

void g2_set_auto_flush int  dev,
int  on_off
 

Set auto flush mode for device dev. Auto flush mode means that after each graphical operation g2 library automatically calls flush function to ensure that output is realy displayed. However, freqent flushing decreases performance. Alternative is to flush output when needed by calling g2_flush function.

Parameters:
dev device
on_off 1-on 0-off

void g2_set_coordinate_system int  dev,
double  x_origin,
double  y_origin,
double  x_mul,
double  y_mul
 

Set the user coordinate system.

Parameters:
dev device
x_origin x coordinate of the new origin (expressed in the default coordinate system)
y_origin x coordinate of the new origin (expressed in the default coordinate system)
x_mul x scaling factor
y_mul y scaling factor

void g2_set_ld int  dev  ) 
 

Set the last accessed device. See also g2_ld() function.

Parameters:
dev device


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__gd__funix_8h-source.html0000644000175000017500000001357510515227264017766 0ustar ljuboljubo g2: g2_gd_funix.h Source File

g2_gd_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_GD_TOKEN_FUN_H
00020 #define _G2_GD_TOKEN_FUN_H
00021                 
00022         
00023 #include "g2_virtual_device.h"
00024 #include "g2_gd_P.h"
00025 
00026 const g2_funix_fun g2_gd_funix[] = 
00027                 {{g2_Delete,g2_gd_Delete},
00028                 {g2_Ink, g2_gd_Ink},
00029                 {g2_Pen,g2_gd_Pen},
00030                 {g2_SetBackground,g2_gd_SetBackground},
00031                 {g2_ClearPalette,g2_gd_ClearPalette},    
00032                 {g2_SetLineWidth,g2_gd_SetLineWidth},
00033                  /*     {g2_SetDash,g2_gd_SetDash},     */
00034                 {g2_SetFontSize,g2_gd_SetFontSize},
00035                 {g2_Clear,g2_gd_Clear},
00036                 {g2_Flush,g2_gd_Flush},
00037                 {g2_Plot,g2_gd_Plot},
00038                 {g2_Line,g2_gd_Line},
00039                  /*     {g2_PolyLine,g2_gd_PolyLine}, */
00040                 {g2_Rectangle,g2_gd_Rectangle},
00041                 {g2_FilledRectangle,g2_gd_FilledRectangle},
00042                  /*     {g2_Polygon,g2_gd_Polygon}, */
00043                 {g2_FilledPolygon,g2_gd_FilledPolygon},
00044                  /*     {g2_Circle,g2_gd_Circle}, */
00045                  /*     {g2_FilledCircle,g2_gd_FilledCircle}, */
00046                  /*     {g2_Ellipse,g2_gd_Ellipse}, */
00047                  /*     {g2_FilledEllipse,g2_gd_FilledEllipse}, */
00048                  /*     {g2_Arc,g2_gd_Arc}, */
00049                  /* {g2_FilledArc,g2_gd_FilledArc}, */
00050                 {g2_String,g2_gd_DrawString},
00051                 {g2_FUNIX_NULL, NULL}};
00052 
00053 
00054 #endif /* _G2_GD_TOKEN_FUN_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__color.html0000644000175000017500000003051110515227264016056 0ustar ljuboljubo g2: color manipulations

color manipulations
[g2 User Interface]


Functions

void g2_pen (int dev, int color)
void g2_set_background (int dev, int color)
int g2_ink (int pd_dev, double red, double green, double blue)
void g2_reset_palette (int dev)
void g2_clear_palette (int dev)
void g2_allocate_basic_colors (int dev)

Detailed Description

The color concept used in the g2 library is inspired by Sir Clive Sinclair solution implemented in the ZX Spectrum computer. With the g2_pen() function it is possible to choose a pen created by the g2_ink() function. Note that g2_ink function is only defined for physical devices. The predefined colors (see g2_test demo program) have pens from 0 till 26 (inclusive).

Some basic colors are:

  • 0 white
  • 1 black
  • 3 blue
  • 7 green
  • 19 red
  • 25 yellow

Function Documentation

void g2_allocate_basic_colors int  dev  ) 
 

Allocate basic colors

Parameters:
dev device

void g2_clear_palette int  dev  ) 
 

Remove all inks.

Parameters:
dev device

int g2_ink int  pd_dev,
double  red,
double  green,
double  blue
 

Create an ink. To put ink into the pen use g2_pen().

Parameters:
pd_dev physical device
red red component (0-1) according to the RGB color model
green green component (0-1) according to the RGB color model
blue blue component (0-1) according to the RGB color model
Returns:
new pen, see g2_pen()

void g2_pen int  dev,
int  color
 

Set pen color for all following operations, see also g2_ink().

Parameters:
dev device
color pen (either one of default pens 0-26, or a pen returned by g2_ink() )

void g2_reset_palette int  dev  ) 
 

Clear collor palette (remove all inks) and reallocate basic colors.

Parameters:
dev device

void g2_set_background int  dev,
int  color
 

Set the background color

Parameters:
dev device
color pen (either one of default pens 0-26, or a pen returned by g2_ink() )


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__interface.html0000644000175000017500000000422010515227264016676 0ustar ljuboljubo g2: g2 User Interface

g2 User Interface


Modules

 color manipulations
 output control
 devices control
 graphical output
 virtual device related functions
 g2 Physical devices

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__PS__definitions_8h-source.html0000644000175000017500000003025410515227264021071 0ustar ljuboljubo g2: g2_PS_definitions.h Source File

g2_PS_definitions.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_PS_DEFINITIONS_H
00020 #define _G2_PS_DEFINITIONS_H
00021 
00022 /*
00023  *
00024  * Sizes for paper defined in g2_PS.h
00025  * Size is in 1/72 inch (=0.351mm)
00026  */
00027 static int g2_PS_paper_size[][2]={
00028  { 2384, 3370 },   /* g2_A0               -  A0                */
00029  { 1684, 2384 },   /* g2_A1               -  A1                */
00030  { 1191, 1684 },   /* g2_A2               -  A2                */
00031  {  842, 1191 },   /* g2_A3               -  A3                */
00032  {  595,  842 },   /* g2_A4               -  A4                */
00033  {  420,  595 },   /* g2_A5               -  A5                */
00034  {  297,  420 },   /* g2_A6               -  A6                */
00035  {  210,  297 },   /* g2_A7               -  A7                */
00036  {  148,  210 },   /* g2_A8               -  A8                */
00037  {  105,  148 },   /* g2_A9               -  A9                */
00038  { 2920, 4127 },   /* g2_B0               -  B0                */
00039  { 2064, 2920 },   /* g2_B1               -  B1                */
00040  { 1460, 2064 },   /* g2_B2               -  B2                */
00041  { 1032, 1460 },   /* g2_B3               -  B3                */
00042  {  729, 1032 },   /* g2_B4               -  B4                */
00043  {  516,  729 },   /* g2_B5               -  B5                */
00044  {  363,  516 },   /* g2_B6               -  B6                */
00045  {  258,  363 },   /* g2_B7               -  B7                */
00046  {  181,  258 },   /* g2_B8               -  B8                */
00047  {  127,  181 },   /* g2_B9               -  B9                */
00048  {   91,  127 },   /* g2_B10              -  B10               */
00049  {  297,  684 },   /* g2_Comm_10_Envelope -  Comm #10 Envelope */
00050  {  461,  648 },   /* g2_C5_Envelope      -  C5 Envelope       */
00051  {  312,  624 },   /* g2_DL_Envelope      -  DL Envelope       */
00052  {  595,  935 },   /* g2_Folio            -  Folio             */
00053  {  522,  756 },   /* g2_Executive        -  Executive         */
00054  {  612,  792 },   /* g2_Letter           -  Letter            */
00055  {  612, 1008 },   /* g2_Legal            -  Legal             */
00056  { 1224,  792 },   /* g2_Ledger           -  Ledger            */
00057  {  792, 1224 }    /* g2_Tabloid          -  Tabloid           */
00058 };
00059 
00060 
00061 /*
00062  *
00063  * PS operators
00064  *
00065  */
00066 char *g2_PS_operators[]={
00067     " /L { lineto } def",                              /* lineto */
00068     " /St { stroke } def",                             /* stroke */
00069     " /M { moveto } def",                              /* moveto */
00070     " /P {",                                           /* plot */
00071     " gsave newpath [] 0 setdash 1 setlinecap 0 setlinewidth",
00072     " 0.2 sub exch 0.2 sub exch moveto 0.4 0.4 rlineto",
00073     " stroke grestore} def",
00074     " /T {",                                           /* triangle */
00075     " newpath",
00076     " moveto lineto lineto",
00077     " closepath stroke} def",
00078     " /FT {",                                          /* filled triangle */
00079     " newpath",
00080     " moveto lineto lineto",
00081     " closepath fill} def",
00082     " /R {",                                           /* rectangle */
00083     " newpath",
00084     " 3 index 1 index 6 4 roll 5 index 1 index",
00085     " moveto lineto lineto lineto closepath stroke} def",
00086     " /FR {",                                          /* filled rectangle */
00087     " newpath",
00088     " 3 index 1 index 6 4 roll 5 index 1 index",
00089     " moveto lineto lineto lineto closepath fill} def",
00090     " /A {",                                           /* arc */
00091     " gsave /g2_old_matrix matrix currentmatrix def newpath",
00092     " translate scale 0 0 1 5 3 roll arc",
00093     " g2_old_matrix setmatrix stroke grestore } def",
00094     " /FA {",                                          /* filled arc */
00095     " gsave /g2_old_matrix matrix currentmatrix def newpath",
00096     " translate scale 0 0 moveto 0 0 1 5 3 roll arc closepath",
00097     " g2_old_matrix setmatrix fill grestore } def",
00098     " /S {",                                           /* draw string */
00099     " gsave newpath",
00100     " translate 0 0 moveto show",
00101     " stroke grestore} def",
00102     "\n",
00103     NULL
00104 };
00105 
00106 #endif /* _G2_PS_DEFINITIONS_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__control.html0000644000175000017500000004211210515227264016420 0ustar ljuboljubo g2: output control

output control
[g2 User Interface]


Functions

void g2_flush (int dev)
void g2_save (int dev)
void g2_clear (int dev)
void g2_set_font_size (int dev, double size)
void g2_set_line_width (int dev, double w)
void g2_set_dash (int dev, int N, double *dashes)
void g2_set_QP (int dev, double d, enum QPshape shape)
void g2_query_pointer (int dev, double *x, double *y, unsigned int *button)
void g2_get_pd_handles (int pd, void *handles[G2_PD_HANDLES_SIZE])

Function Documentation

void g2_clear int  dev  ) 
 

Clear device

Parameters:
dev device number

void g2_flush int  dev  ) 
 

Flush output buffers.

Parameters:
dev device id

void g2_get_pd_handles int  pd,
void *  handles[G2_PD_HANDLES_SIZE]
 

Get pointers to physical device specific handles. This function should be used only if you are familiar with the g2 source code. For details see physical device source code (e.g. in src/X11/). Example usage can be found in demo/handles.c.

Parameters:
pd physical device
handles returns pointers to physical device low level handles

void g2_query_pointer int  dev,
double *  x,
double *  y,
unsigned int *  button
 

Query pointer (e.g. mouse for X11) position and button state. See the demo program pointer.c for an example.

Parameters:
dev device
x returns pointer x coordinate
y returns pointer y coordinate
button returns button state

void g2_save int  dev  ) 
 

Save output

Parameters:
dev device id

void g2_set_dash int  dev,
int  N,
double *  dashes
 

Set line dash. Set N to 0 and dashes to NULL to restore solid line.

Parameters:
dev device
N number of dash components (0 for solid line)
dashes vector of dash lengths (black, white, black, ...)

void g2_set_font_size int  dev,
double  size
 

Set font size

Parameters:
dev device
size new font size

void g2_set_line_width int  dev,
double  w
 

Set line width.

Parameters:
dev device
w new line width

void g2_set_QP int  dev,
double  d,
enum QPshape  shape
 

Set QuasiPixel size and shape.

Parameters:
dev device
d size
shape shape (rectangle or circle, see QPshape )


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/pages.html0000644000175000017500000000203310515227264014462 0ustar ljuboljubo g2: Page Index

g2 Related Pages

Here is a list of all related documentation pages:
Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__util_8h-source.html0000644000175000017500000001472110515227264016773 0ustar ljuboljubo g2: g2_util.h Source File

g2_util.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_UTIL_H
00020 #define _G2_UTIL_H
00021 
00022 #include <stdlib.h>
00023 #include "g2_physical_device.h"
00024 
00025 int  dtoi(double x);
00026 
00027 void g2_uc2pdc_int(g2_physical_device *pd, double x, double y,
00028                    int *ix, int *iy);
00029 void g2_uc2pdc_double(g2_physical_device *pd, double x, double y,
00030                       double *dx, double *dy);
00031 void g2_us2pds_int(g2_physical_device *pd, double x, double y,
00032                    int *ix, int *iy);
00033 void g2_us2pds_double(g2_physical_device *pd, double x, double y,
00034                       double *dx, double *dy);
00035 void g2_pdc2uc(g2_physical_device *pd, double ix, double iy,
00036                    double *x, double *y);
00037 void g2_sort2_i(int *a, int *b);
00038 void g2_sort2_d(double *a, double *b);
00039 void *g2_malloc(size_t size);
00040 void *g2_realloc(void *p, size_t size);
00041 void g2_free(void *p);
00042 
00043 double *g2_floatp2doublep(float *f, int N);
00044 
00045 enum g2_log_level {Error=1, Warning, Verbose, Debug};
00046 void g2_log(enum g2_log_level log_level, const char *format, ...);
00047 
00048 #endif /* _G2_UTIL_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/tab_l.gif0000644000175000017500000000130210515227263014242 0ustar ljuboljuboGIF89a ,Õö÷ùñô÷öøúüýþúûüùúûøùúêïóïóöÆÕßÒÞæØâéÞçíÝæìåìñèîòô÷ùóöø³ÈÕÁÒÝËÙâÏÜäÖá薴ŹɯÂÍ»ÎÙÃÔÞÂÓÝÈ×àÌÚâÕáèÙäê×âèåìðëðó„°ÇÑÞåÜæëãëïëñôîóõ÷úûûüüÿÿÿþþþ, ,ÿ@–P±É`H$!%CqVe2X­ŠÌJ(“Ä +€˜3 2$ÀÆ ¼kvŠä-Ëçõu*…"}ã|}|~q(" $f„ 'Žl(Œ&&$r‘™ › & ! )¢¤›{¨£¥r­ª°©¯„±¯¬´¦·»º³®«§¾¶ÃÂÀ¿²¹ÇÄËÆ²ÌÉεҽͼ„ÔÈÓ×иÙÝÕÏÙÊâÜßãçæê¾äÛÅëÇíáîÖìéïøñ÷õüÑðåùü¤Pß?‚ƒœÇÛBm åAœÎáÀ†%V܈î!Çk÷Ø/áÄ;^¤¨²$Æ–#Mf)f͇(WÎL‰“æKçÒ„° ’I)L:eD ¡Cµ´x*4 U¨h  %A«£^ÁNKb¬Ùe§X±‚´k»x!ÁÖí—2tÝÖ !¯š5tÛæé—À]$¬´%ƒXíâ.i[¬]Y­•ÊfžEëõkg`µ††:zëçÒž;£}ºµj×aa‹–Mš¶é׸cçž½»vïÛºƒóî›8ðáÈ‹'?®¼9óç©G_>Ýyuè¬_ßž]zwêß­‡Ç¾º¼mîæµG~½ûôÞთ/ž>ùööÙ«Ïÿ¿ÿýÿÅà|ÖWà}v;g2-0.72/doc/html/group__FIG.html0000644000175000017500000000614610515227264015354 0ustar ljuboljubo g2: FIG

FIG
[g2 Physical devices]


Functions

G2L int g2_open_FIG (const char *file_name)

Detailed Description

FIG devices generate output in the FIG 3.2 format. For more details about FIG format and xfig application please visit http://www.xfig.org .

Note:
FIG is a vector-oriented (as oposed to pixel-oriented) format. Therefore g2_image function and splines are not optimally supported.

Function Documentation

G2L int g2_open_FIG const char *  file_name  ) 
 

Create a FIG device. g2 uses A4 paper size (landscape orientation) as default.

Parameters:
file_name fig file name
Returns:
physical device id


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__X11__P_8h-source.html0000644000175000017500000003410110515227264016777 0ustar ljuboljubo g2: g2_X11_P.h Source File

g2_X11_P.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_X11_P_H
00020 #define _G2_X11_P_H
00021 
00022 #include <X11/Xlib.h>
00023 
00024 #include "g2.h"
00025 
00026 typedef struct {
00027     Display     *display;
00028     Window      window;
00029     Window      root;
00030     Colormap    colormap;
00031     GC          gc;
00032     Drawable    dest;
00033     Pixmap      backing_pixmap;
00034     
00035     
00036     unsigned long  *inks;                         /* allocated colors*/
00037     int            NofInks;                       /* N of allocated colors */
00038     int            width;                         /* window dimensions */
00039     int            height;
00040     int            background;
00041 } g2_X11_device;
00042 
00043 
00044 int g2_X11_init_X11X(int pid, int width, int height,
00045                      int xposition, int yposition,
00046                      char *window_name, char *icon_name,
00047                      char *icon_data,
00048                      unsigned int icon_width, unsigned int icon_height);
00049 int g2_X11_delete(int pid, void *pdp);
00050 int g2_X11_clear(int pid, void *pdp);
00051 int g2_X11_flush(int pid, void *pdp);
00052 int g2_X11_ink(int pid, void *pdp,
00053                double red, double green, double blue);
00054 int g2_X11_clear_palette(int pid, void *pdp);
00055 int g2_X11_reset_palette(int pid, void *pdp);
00056 int g2_X11_set_background(int pid, void *pdp, int color);
00057 int g2_X11_pen(int pid, void *pdp, int color);
00058 int g2_X11_paper(int pid, void *pdp, int color);
00059 int g2_X11_set_line_width(int pid, void *pdp, int w);
00060 int g2_X11_set_dash(int pid, void *pdp, int n, int *data);
00061 int g2_X11_set_font_size(int pid, void *pdp, int size);
00062 int g2_X11_plot(int pid, void *pdp, int x, int y);
00063 int g2_X11_line(int pid, void *pdp, int x1, int y1, int x2, int y2);
00064 int g2_X11_poly_line(int pid, void *pdp, int N, int *p);
00065 int g2_X11_polygon(int pid, void *pdp, int N, int *p);
00066 int g2_X11_filled_polygon(int pid, void *pdp, int N, int *p);
00067 int g2_X11_triangle(int pid, void *pdp,
00068                     int x1, int y1,
00069                     int x2, int y2,
00070                     int x3, int y3);
00071 int g2_X11_filled_triangle(int pid, void *pdp, int x1, int y1,
00072                            int x2, int y2,
00073                            int x3, int y3);
00074 int g2_X11_rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2);
00075 int g2_X11_filled_rectangle(int pid, void *pdp,
00076                             int x1, int y1, int x2, int y2);
00077 int g2_X11_arc(int pid, void *pdp, int x, int y,
00078                int r1, int r2, double a1, double a2);
00079 int g2_X11_filled_arc(int pid, void *pdp, int x, int y,
00080                       int r1, int r2, double a1, double a2);
00081 int g2_X11_ellipse(int pid, void *pdp, int x, int y, int r1, int r2);
00082 int g2_X11_filled_ellipse(int pid, void *pdp, int x, int y, int r1, int r2);
00083 int g2_X11_draw_string(int pid, void *pdp, int x, int y, const char *text);
00084 int g2_X11_image(int pid, void *pdp,
00085                  int x, int y, int width, int height, int *pen_array);
00086 int g2_X11_query_pointer(int pid, void *pdp,
00087                          int *x, int *y, unsigned int *button);
00088 int g2_X11_get_pd_handles(int pid, void *pdp, void *handles[G2_PD_HANDLES_SIZE]);
00089 
00090 #endif /* _G2_X11_P_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__device_8h-source.html0000644000175000017500000001577310515227264017265 0ustar ljuboljubo g2: g2_device.h Source File

g2_device.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_DEVICE_H
00020 #define _G2_DEVICE_H
00021 
00022 #include "g2_physical_device.h"
00023 #include "g2_virtual_device.h"
00024 
00025 extern int __g2_last_device;        /* last accessed device (ld) */
00026 
00027 
00028 typedef enum _g2_dev_type {
00029     g2_ILLEGAL=-1,                  /* illegal device type */
00030     g2_NDEV=0,                      /* no device associated */
00031     g2_PD,                          /* physical device */
00032     g2_VD                           /* virtual device */
00033 } g2_device_type;
00034 
00035 
00036 typedef struct _g2_device {
00037     g2_device_type t;               /* device type */
00038     int            dix;             /* dev index in array (g2_dev) */
00039     union {
00040         g2_physical_device *pd;
00041         g2_virtual_device  *vd;
00042     } d;                            /* device */
00043     double        x;                /* graphical cursor */
00044     double        y;
00045     int           auto_flush;       /* 1-on 0-off */
00046     double        QPd;              /* Quasi pixel spec. */
00047     enum QPshape  QPshape;
00048 } g2_device;
00049 
00050 
00051 int g2_register_physical_device(int pid,
00052                                 void *pdp,
00053                                 g2_coor ct,
00054                                 const g2_funix_fun *ff,
00055                                 double a11, double a22,
00056                                 double b1,  double b2);
00057 int g2_register_virtual_device();
00058 
00059 g2_device *g2_get_device_pointer(int dix);
00060 g2_device_type g2_get_device_type(int dix);
00061 void g2_destroy_device(int dix);
00062                                
00063 
00064 #endif /* _G2_DEVICE_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__splines.html0000644000175000017500000006406010515227264016423 0ustar ljuboljubo g2: splines

splines
[graphical output]


Functions

void g2_spline (int dev, int n, double *points, int o)
void g2_filled_spline (int dev, int n, double *points, int o)
void g2_b_spline (int dev, int n, double *points, int o)
void g2_filled_b_spline (int dev, int n, double *points, int o)
void g2_raspln (int dev, int n, double *points, double tn)
void g2_filled_raspln (int dev, int n, double *points, double tn)
void g2_para_3 (int dev, int n, double *points)
void g2_filled_para_3 (int dev, int n, double *points)
void g2_para_5 (int dev, int n, double *points)
void g2_filled_para_5 (int dev, int n, double *points)

Function Documentation

void g2_b_spline int  dev,
int  n,
double *  points,
int  o
 

Plot a b-spline curve with o interpolated points per data point. So the larger o, the more fluent the curve. For most averaging purposes, this is the right spline.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
o number of interpolated points per data point

void g2_filled_b_spline int  dev,
int  n,
double *  points,
int  o
 

Plot a filled b-spline curve with o interpolated points per data point. So the larger o, the more fluent the curve. For most averaging purposes, this is the right spline.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
o number of interpolated points per data point

void g2_filled_para_3 int  dev,
int  n,
double *  points
 

Using Newton's Divided Differences method, plot a filled piecewise parametric interpolation polynomial of degree 3 through the given data points.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn

void g2_filled_para_5 int  dev,
int  n,
double *  points
 

Using Newton's Divided Differences method, plot a filled piecewise parametric interpolation polynomial of degree 5 through the given data points.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn

void g2_filled_raspln int  dev,
int  n,
double *  points,
double  tn
 

Plot a filled piecewise cubic polynomial with adjustable roundness through the given data points. Each Hermite polynomial between two data points is made up of 40 lines. Tension factor tn must be between 0.0 (very rounded) and 2.0 (not rounded at all, i.e. essentially a polyline).

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
tn tension factor in the range [0.0, 2.0]

void g2_filled_spline int  dev,
int  n,
double *  points,
int  o
 

Using Young's method of successive over-relaxation, plot a filled spline curve with o interpolated points per data point. So the larger o, the more fluent the curve.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
o number of interpolated points per data point

void g2_para_3 int  dev,
int  n,
double *  points
 

Using Newton's Divided Differences method, plot a piecewise parametric interpolation polynomial of degree 3 through the given data points.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn

void g2_para_5 int  dev,
int  n,
double *  points
 

Using Newton's Divided Differences method, plot a piecewise parametric interpolation polynomial of degree 5 through the given data points.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn

void g2_raspln int  dev,
int  n,
double *  points,
double  tn
 

Plot a piecewise cubic polynomial with adjustable roundness through the given data points. Each Hermite polynomial between two data points is made up of 40 lines. Tension factor tn must be between 0.0 (very rounded) and 2.0 (not rounded at all, i.e. essentially a polyline).

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
tn tension factor in the range [0.0, 2.0]

void g2_spline int  dev,
int  n,
double *  points,
int  o
 

Using Young's method of successive over-relaxation, plot a spline curve with o interpolated points per data point. So the larger o, the more fluent the curve.

Parameters:
dev device id
n number of data points (not the size of buffer points)
points buffer of n data points x1, y1, ... xn, yn
o number of interpolated points per data point


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/resource_8h-source.html0000644000175000017500000000637410515227264017123 0ustar ljuboljubo g2: resource.h Source File

resource.h

00001 //{{NO_DEPENDENCIES}}
00002 // Microsoft Developer Studio generated include file.
00003 // Used by g2_win32.rc
00004 //
00005 #define IDI_ICON1                       101
00006 #define IDD_DIALOG1                     104
00007 #define ID_FILE_SAVEASBMP               40002
00008 #define ID_FILE_COPY                    40003
00009 #define ID_FILE_ABOUT                   40005
00010 #define ID_FILE_CLOS                    40006
00011 
00012 // Next default values for new objects
00013 // 
00014 #ifdef APSTUDIO_INVOKED
00015 #ifndef APSTUDIO_READONLY_SYMBOLS
00016 #define _APS_NEXT_RESOURCE_VALUE        107
00017 #define _APS_NEXT_COMMAND_VALUE         40007
00018 #define _APS_NEXT_CONTROL_VALUE         1000
00019 #define _APS_NEXT_SYMED_VALUE           101
00020 #endif
00021 #endif

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/files.html0000644000175000017500000001055710515227264014477 0ustar ljuboljubo g2: File Index

g2 File List

Here is a list of all documented files with brief descriptions:
g2.h [code]
g2_config.h [code]
g2_control_pd.h [code]
g2_device.h [code]
g2_FIG.h [code]
g2_FIG_funix.h [code]
g2_FIG_P.h [code]
g2_funix.h [code]
g2_gd.h [code]
g2_gd_funix.h [code]
g2_gd_P.h [code]
g2_graphic_pd.h [code]
g2_physical_device.h [code]
g2_PS.h [code]
g2_PS_definitions.h [code]
g2_PS_funix.h [code]
g2_PS_P.h [code]
g2_util.h [code]
g2_virtual_device.h [code]
g2_win32.h [code]
g2_win32_funix.h [code]
g2_win32_P.h [code]
g2_X11.h [code]
g2_X11_funix.h [code]
g2_X11_P.h [code]
resource.h [code]

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__FIG__funix_8h-source.html0000644000175000017500000001316010515227264017767 0ustar ljuboljubo g2: g2_FIG_funix.h Source File

g2_FIG_funix.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2004  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_FIG_FUNIX_H
00020 #define _G2_FIG_FUNIX_H
00021 
00022 #include "g2_FIG_P.h"
00023 #include "g2_physical_device.h"
00024 
00025 const g2_funix_fun g2_FIG_funix[] = {
00026     { g2_Delete,          g2_FIG_delete },
00027     { g2_Ink,             g2_FIG_ink },
00028     { g2_Pen,             g2_FIG_pen },
00029     { g2_SetBackground,   NULL },
00030     { g2_ClearPalette,    NULL },
00031     { g2_SetLineWidth,    g2_FIG_set_line_width },
00032     { g2_SetDash,         g2_FIG_set_dash },
00033     { g2_SetFontSize,     g2_FIG_set_font_size },
00034     { g2_Clear,           g2_FIG_clear },                 
00035     { g2_Flush,           g2_FIG_flush },
00036     { g2_Save,            g2_FIG_flush },
00037     { g2_Plot,            g2_FIG_plot },
00038     { g2_Line,            g2_FIG_line },          
00039     { g2_PolyLine,        g2_FIG_poly_line },     
00040     { g2_Polygon,         g2_FIG_polygon },               
00041     { g2_FilledPolygon,   g2_FIG_filled_polygon },
00042     { g2_Rectangle,       NULL },         
00043     { g2_FilledRectangle, NULL },         
00044     { g2_Triangle,        NULL },
00045     { g2_FilledTriangle,  NULL },
00046     { g2_Arc,             g2_FIG_arc },
00047     { g2_FilledArc,       g2_FIG_filled_arc },
00048     { g2_Ellipse,         g2_FIG_ellipse },
00049     { g2_FilledEllipse,   g2_FIG_filled_ellipse },
00050     { g2_Circle,          NULL },
00051     { g2_FilledCircle,    NULL },
00052     { g2_String,          g2_FIG_draw_string },
00053     { g2_FUNIX_NULL,      NULL } };
00054 
00055 
00056 #endif /* _G2_FIG_FUNIX_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__config_8h-source.html0000644000175000017500000001156610515227264017267 0ustar ljuboljubo g2: g2_config.h Source File

g2_config.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_CONFIG_H
00020 #define _G2_CONFIG_H
00021 
00022 /*
00023  *
00024  *  Some g2 defines
00025  *
00026  *  Default behaviour is usually ok for most cases
00027  *
00028  */
00029 
00030 /* g2 warnings are printed to stderr, larger 0=quiet, 1=errors, 2=warnings, 3=verbose, 4=debug */
00031 #define g2_LogLevel 1
00032 
00033 /* set to 0 to disable backing store emulation */
00034 #define g2_EmulateBackingStore  1
00035 
00036 /* X11 font, note %d for font size */
00037 #define g2_X11Font "-*-times-medium-r-normal--%d-*-*-*-*-*-*-*"
00038 
00039 /* PostScript font */
00040 #define g2_PSFont "/Times-Roman"
00041 
00042 #endif /* _G2_CONFIG_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__X11_8h-source.html0000644000175000017500000001206310515227264016364 0ustar ljuboljubo g2: g2_X11.h Source File

g2_X11.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_X11_H
00020 #define _G2_X11_H
00021 
00022 #if defined(__cplusplus)
00023 extern "C"
00024 {
00025 #endif
00026 
00027 
00028 int g2_open_X11(int width, int height);
00029 
00030 int g2_open_X11X(int width, int height,
00031                  int x, int y,
00032                  char *window_name, char *icon_name,
00033                  char *icon_data,
00034                  int icon_width, int icon_height);
00035 
00036 #if defined(__cplusplus)
00037 } /* end extern "C" */
00038 #endif
00039 
00040 #endif /* _G2_X11_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/doxygen.png0000644000175000017500000000240110515227263014656 0ustar ljuboljubo‰PNG  IHDRd-ok>ÂgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<]PLTEǾÏ"&©ÈÎï¶»ÖÓÚú“¢Þ ¬à¶Âõ‡§ÕÙêÉÊÎáâæ{ŽÔ¡ëˆ™× ²ø§¬¹ÀÀ±ÝÝÎùùéõõçëëåED9×ÖËhg]_X<@:#mhUÿÿÿÝÀ1tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍvÿIDATxÚbC£: d#„„………h` @¡X",***LKˆ.–], ºX@t± €èb @ÑÅ€BµD„6–š%""´° € ˜% ˆ™B:H¢ˆ²Áf@• ˆRPy"K`\PbC(!II!h©…ëƒ(ñ„Ä!ꈬC„Ä…àl!0[X\J\$TMˆ(’>a$S„ Ù@ Ш@R.$‚¬LJBR¢‰AÌG1 ¬ Â(FȃÔPhhÁTÀ¢„%!`€&q°%u P ¹¢ ¬ € ¹CT$B¢à|‚ºW„¤Àl £!B`R$( …Ĉ‘’ž@AÅ%ĤÄ%@,(—ʂڱ%$ÁââRPmB U`1IˆYB  99€\1 yCCCÿf"[N 'Ü=TGÈ’øl8˜^Kû5<êSæRɤ”%î@@ à›Ê b1 qÅAXHˆ¸&ØB’R y n˜P„Ìã–4A €€j¹€€>Ü ˜ t!˜+(.ÈÅWQ±A2ÜÜMUÜ‚’’‚‚â `1 %`19€F< 3cZÄ`óe!\ˆ DÈ+. 83‹³Àä¸!lYYA -6‚EJŠ¢V €@©žXXX 4„å Ê@86Ð`RdB´€4I "Ý "–@xrÊŒ‚H€AÊ`—f ÉȰCŒ"XV0ɲ³C b@2…¬H ¬È“ p)!(ì‚ 0Ž4ˆ)(%RÁÎ ¶$€TÊ€¥Àþb‡b,säÐ@7À üѰ‚Òî?f¥Ö—\PIx!I´¦"”Ȉ’3¨ QY˜ÿt^^ÛØgv- }>WJOAV`$&#”¦8ùøø8€\FF ›SFJ$ÂÆ€ÐƊС䈉ÀÀ 4ª…Èäå -Á§‡ €H²…—ŸŸŸf ?ðâ5„ €k1Âd‰,ŒÃ ³ƒ“€.€"­F™ËË€àñ‚½ÁIÈ€"±Ù4ÉH gx|‚f©m)))9´. aMDƒ& ºX@t± €èb @ÑÅ€¢‹%DKˆ.–], ºX@t± €èb @€d`‚ɽSµOIEND®B`‚g2-0.72/doc/html/modules.html0000644000175000017500000000340310515227264015035 0ustar ljuboljubo g2: Module Index

g2 Modules

Here is a list of all modules:
Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__GD.html0000644000175000017500000001415310515227264015236 0ustar ljuboljubo g2: GD

GD
[g2 Physical devices]


Enumerations

enum  g2_gd_type { g2_gd_jpeg = 0, g2_gd_png = 1, g2_gd_gif = 2 }

Functions

int g2_open_gd (const char *filename, int width, int height, enum g2_gd_type gd_type)

Enumeration Type Documentation

enum g2_gd_type
 

g2 gd bitmap types

Enumerator:
g2_gd_jpeg  jpeg
g2_gd_png  png
g2_gd_gif  gif


Function Documentation

int g2_open_gd const char *  filename,
int  width,
int  height,
enum g2_gd_type  gd_type
 

Create a GD (bitmap image) device.

Parameters:
filename output file name
width width
height height
gd_type file type, see g2_gd_type
Returns:
physical device id


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__gd_8h-source.html0000644000175000017500000001645110515227264016412 0ustar ljuboljubo g2: g2_gd.h Source File

g2_gd.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_GD_H
00020 #define _G2_GD_H
00021 
00022 #if defined(__cplusplus)
00023 extern "C"
00024 {
00025 #endif
00026 
00027 #include <stdio.h>
00028 
00029 /* Common Library header for DLL and application */
00030 #ifdef WIN32
00031 #ifdef G2DLL
00032 #ifdef MAKEDLL
00033 /* Create DLL */
00034 #define G2L __declspec( dllexport)
00035 #else
00036 /* Use DLL */
00037 #define G2L __declspec( dllimport)
00038 #endif
00039 #else 
00040 /* Use static win32 */
00041 #define G2L
00042 #endif
00043 #else
00044 /* Use non-win32 */
00045 #define G2L
00046 #endif
00047 
00053 enum g2_gd_type {
00054     g2_gd_jpeg = 0,     
00055     g2_gd_png  = 1,     
00056     g2_gd_gif  = 2      
00057 };
00058 
00059 
00060 G2L int  g2_open_gd(const char *filename, int width, int height,enum g2_gd_type gd_type);
00061 
00062 #if defined(__cplusplus)
00063 } /* end extern "C" */
00064 #endif
00065 
00066 
00067 #endif /* _G2_GD_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__virtual__device_8h-source.html0000644000175000017500000001041010515227264021151 0ustar ljuboljubo g2: g2_virtual_device.h Source File

g2_virtual_device.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_VIRTUAL_DEVICE_H
00020 #define _G2_VIRTUAL_DEVICE_H
00021 
00022 typedef struct _g2_virtual_device {
00023     int  N;                          /* number of attached devices */
00024     int  *dix;                       /* index of attached devices */
00025 } g2_virtual_device;
00026 
00027 
00028 g2_virtual_device *g2_create_virtual_device();
00029 void g2_destroy_virtual_device(g2_virtual_device *vd);
00030 int g2_is_attached(int vd, int dev);
00031 
00032 #endif /* _G2_VIRTUAL_DEVICE_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__win32.html0000644000175000017500000001310110515227264015676 0ustar ljuboljubo g2: MS Windows

MS Windows
[g2 Physical devices]


Enumerations

enum  g2_win32_type { g2_win32, g2_wmf32 }

Functions

int g2_open_win32 (int width, int height, const char *title, int type)

Enumeration Type Documentation

enum g2_win32_type
 

Window type

Enumerator:
g2_win32  regular window
g2_wmf32  windows meta file


Function Documentation

int g2_open_win32 int  width,
int  height,
const char *  title,
int  type
 

Create a Windows device.

Parameters:
width window width
height window height
title window title
type window type, see g2_win32_type
Returns:
physical device id


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/tab_b.gif0000644000175000017500000000004310515227263014231 0ustar ljuboljuboGIF89a€„°Ç,D;g2-0.72/doc/html/g2__physical__device_8h-source.html0000644000175000017500000001551510515227264021312 0ustar ljuboljubo g2: g2_physical_device.h Source File

g2_physical_device.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_PHYSICAL_DEVICE_H
00020 #define _G2_PHYSICAL_DEVICE_H
00021 
00022 #include "g2.h"
00023 #include "g2_funix.h"
00024 
00025 
00026 typedef enum _g2_coor {               /* coord. type */
00027     g2_IntCoor, g2_DoubleCoor
00028 } g2_coor;
00029 
00030 
00031 typedef struct _g2_funix_fun {        /* funix--function paar */
00032     g2_funix  fx;                     /* function index */
00033     int       (*fun)();               /* pointer to function */
00034 } g2_funix_fun;
00035 
00036 
00037 typedef struct _g2_physical_device {
00038     int           pid;                /* physical device id */
00039     void          *pdp;               /* pointer to something in phys. dev. */
00040     g2_coor       coor_type;          /* coordinate type */
00041     g2_funix_fun  *ff;                /* list of funix-function pairs */
00042     double        a11, a22;           /* coordinate transformation (ud->pd) */
00043     double        b1,  b2;            /*  Ar + B */
00044 
00045     double        x_origin;           /* User coordinates specification */
00046     double        y_origin;
00047     double        x_mul;
00048     double        y_mul;
00049 } g2_physical_device;
00050 
00051 
00052 
00053 g2_physical_device *g2_create_physical_device(int pid,
00054                                               void *pdp,
00055                                               g2_coor ct,
00056                                               const g2_funix_fun *ff,
00057                                               double a11, double a22,
00058                                               double b1,  double b2);
00059 void g2_destroy_physical_device(g2_physical_device *pd);
00060 
00061 #endif /* _G2_PHYSICAL_DEVICE_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__PS.html0000644000175000017500000005473210515227264015275 0ustar ljuboljubo g2: PostScript

PostScript
[g2 Physical devices]


Enumerations

enum  g2_PS_paper {
  g2_A0, g2_A1, g2_A2, g2_A3,
  g2_A4, g2_A5, g2_A6, g2_A7,
  g2_A8, g2_A9, g2_B0, g2_B1,
  g2_B2, g2_B3, g2_B4, g2_B5,
  g2_B6, g2_B7, g2_B8, g2_B9,
  g2_B10, g2_Comm_10_Envelope, g2_C5_Envelope, g2_DL_Envelope,
  g2_Folio, g2_Executive, g2_Letter, g2_Legal,
  g2_Ledger, g2_Tabloid
}
enum  g2_PS_orientation { g2_PS_land, g2_PS_port }

Functions

G2L int g2_open_PS (const char *file_name, enum g2_PS_paper paper, enum g2_PS_orientation orientation)
G2L int g2_open_EPSF (const char *file_name)
G2L int g2_open_EPSF_CLIP (const char *file_name, long width, long height)

Enumeration Type Documentation

enum g2_PS_orientation
 

g2 paper orientation.

Enumerator:
g2_PS_land  landscape
g2_PS_port  portrait

enum g2_PS_paper
 

g2 paper type.

Enumerator:
g2_A0  A0 2384 x 3370
g2_A1  A1 1684 x 2384
g2_A2  A2 1191 x 1684
g2_A3  A3 842 x 1191
g2_A4  A4 595 x 842
g2_A5  A5 420 x 595
g2_A6  A6 297 x 420
g2_A7  A7 210 x 297
g2_A8  A8 148 x 210
g2_A9  A9 105 x 148
g2_B0  B0 2920 x 4127
g2_B1  B1 2064 x 2920
g2_B2  B2 1460 x 2064
g2_B3  B3 1032 x 1460
g2_B4  B4 729 x 1032
g2_B5  B5 516 x 729
g2_B6  B6 363 x 516
g2_B7  B7 258 x 363
g2_B8  B8 181 x 258
g2_B9  B9 127 x 181
g2_B10  B10 91 x 127
g2_Comm_10_Envelope  Comm #10 Envelope 297 x 684
g2_C5_Envelope  C5 Envelope 461 x 648
g2_DL_Envelope  DL Envelope 312 x 624
g2_Folio  Folio 595 x 935
g2_Executive  Executive 522 x 756
g2_Letter  Letter 612 x 792
g2_Legal  Legal 612 x 1008
g2_Ledger  Ledger 1224 x 792
g2_Tabloid  Tabloid 792 x 1224


Function Documentation

G2L int g2_open_EPSF const char *  file_name  ) 
 

Create an encapsulated PS device.

Parameters:
file_name postscript file name
Returns:
physical device id

G2L int g2_open_EPSF_CLIP const char *  file_name,
long  width,
long  height
 

Create an encapsulated PS device with clipping.

Parameters:
file_name postscript file name
width clipping region width
height clipping region height
Returns:
physical device id

G2L int g2_open_PS const char *  file_name,
enum g2_PS_paper  paper,
enum g2_PS_orientation  orientation
 

Create a PS device.

Parameters:
file_name postscript file name
paper paper type, see g2_PS_paper and appendix Appendix
orientation paper orientation, see g2_PS_orientation
Returns:
physical device id


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2_8h-source.html0000644000175000017500000007203510515227264015601 0ustar ljuboljubo g2: g2.h Source File

g2.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2005  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_H
00020 #define _G2_H
00021 
00022 
00023 /* g2 version */
00024 #define G2_VERSION "0.72"
00025 
00026 
00027 #if defined(__cplusplus)
00028 extern "C"
00029 {
00030 #endif
00031 
00032 /* Common Library header for DLL and application */
00033 #ifdef WIN32
00034 #ifdef G2DLL
00035 #ifdef MAKEDLL
00036 /* Create DLL */
00037 #pragma message( "Building DLL library")
00038 #define G2L __declspec( dllexport)
00039 #else
00040 /* Use DLL */
00041 #define G2L __declspec( dllimport)
00042 #endif
00043 #else 
00044 /* Use static win32 */
00045 #define G2L
00046 #endif
00047 #else
00048 /* Use non-win32 */
00049 #define G2L
00050 #endif
00051 
00052 
00053 #define G2LD g2_ld()
00054 
00055 #if defined(SWIG)
00056 #if defined(DO_X11)
00057 %include "X11/g2_X11.h"
00058 #endif
00059 #if defined(DO_PS)
00060 %include "PS/g2_PS.h"
00061 #endif
00062 #if defined(DO_GD)
00063 %include "GD/g2_gd.h"
00064 #endif
00065 #if defined(DO_WIN32)
00066 %include "WIN32/g2_win32.h"
00067 #endif
00068 
00069 %module g2
00070 
00071 %include typemaps.i
00072 
00073 %{
00074 #include "g2.h"
00075 #if defined(DO_X11)
00076 #include "g2_X11.h"
00077 #endif
00078 #if defined(DO_PS)
00079 #include "g2_PS.h"
00080 #endif
00081 #if defined(DO_GD)
00082 #include "g2_gd.h"
00083 #endif
00084 #if defined(DO_WIN32)
00085 #include "WIN32/g2_win32.h"
00086 #endif
00087 %}
00088 
00089 #endif
00090 /* end SWIG */
00091 
00092 
00093 enum QPshape {
00094     QPrect, 
00095     QPcirc  
00096 };
00097 
00098 /* compatibility with old versions */
00099 #define g2_draw_string(dev, x, y, text) g2_string((dev), (x), (y), (text))
00100 
00101 
00102 
00103 G2L int  g2_open_vd(void);
00104 G2L void g2_attach(int vd_dev, int dev);
00105 G2L void g2_detach(int vd_dev, int dev);
00106 
00107 G2L void g2_close(int dev);
00108 G2L void g2_set_auto_flush(int dev, int on_off);
00109 G2L void g2_flush(int dev);
00110 G2L void g2_save(int dev);
00111 G2L void g2_set_coordinate_system(int dev, double x_origin, double y_origin,
00112                               double x_mul,    double y_mul);
00113 
00114 G2L int  g2_ld();
00115 G2L void g2_set_ld(int dev);
00116 
00117 G2L int  g2_ink(int pd_dev, double red, double green, double blue);
00118 G2L void g2_pen(int dev, int color);
00119 G2L void g2_set_dash(int dev, int N, double *dashes);
00120 G2L void g2_set_font_size(int dev, double size);
00121 G2L void g2_set_line_width(int dev, double w);
00122 G2L void g2_clear_palette(int dev);
00123 G2L void g2_reset_palette(int dev);
00124 G2L void g2_allocate_basic_colors(int dev);
00125 
00126 G2L void g2_clear(int dev);
00127 G2L void g2_set_background(int dev, int color);
00128 
00129 G2L void g2_move(int dev, double x, double y);
00130 G2L void g2_move_r(int dev, double dx, double dy);
00131 
00132 G2L void g2_plot(int dev, double x, double y);
00133 G2L void g2_plot_r(int dev, double dx, double dy);
00134 G2L void g2_line(int dev, double x1, double y1, double x2, double y2);
00135 G2L void g2_line_r(int dev, double dx, double dy);
00136 G2L void g2_line_to(int dev, double x, double y);
00137 G2L void g2_poly_line(int dev, int N_pt, double *points);
00138 G2L void g2_triangle(int dev, double x1, double y1,
00139                  double x2, double y2,
00140                  double x3, double y3);
00141 G2L void g2_filled_triangle(int dev, double x1, double y1,
00142                         double x2, double y2,
00143                         double x3, double y3);
00144 G2L void g2_rectangle(int dev, double x1, double y1, double x2, double y2);
00145 G2L void g2_filled_rectangle(int dev,
00146                              double x1, double y1, double x2, double y2);
00147 G2L void g2_polygon(int dev, int N_pt, double *points);
00148 G2L void g2_filled_polygon(int dev, int N_pt, double *points);
00149 G2L void g2_circle(int dev, double x, double y, double r);
00150 G2L void g2_filled_circle(int dev, double x, double y, double r);
00151 G2L void g2_ellipse(int dev, double x, double y, double r1, double r2);
00152 G2L void g2_filled_ellipse(int dev, double x, double y, double r1, double r2);
00153 G2L void g2_arc(int dev,
00154             double x, double y,
00155             double r1, double r2,
00156             double a1, double a2);
00157 G2L void g2_filled_arc(int dev, double x, double y,
00158                    double r1, double r2,
00159                    double a1, double a2);
00160 G2L void g2_string(int dev, double x, double y, const char *text);
00161 G2L void g2_image(int dev,
00162                   double x, double y, int x_size, int y_size, int *pens);
00163 
00164 G2L void g2_set_QP(int dev, double d, enum QPshape shape);
00165 G2L void g2_plot_QP(int dev, double x, double y);
00166 #if !defined(SWIG) 
00167 G2L void g2_query_pointer(int dev, double *x, double *y, unsigned int *button);
00168 #else
00169 extern void g2_query_pointer(int dev, double *OUTPUT,double *OUTPUT,unsigned int *OUTPUT);
00170 #endif
00171 
00172     
00173  /* Tijs Michels */
00174  /* 06/16/99     */
00175 
00176 G2L void g2_spline(int id, int n, double *points, int o);
00177 G2L void g2_b_spline(int id, int n, double *points, int o);
00178 G2L void g2_raspln(int id, int n, double *points, double tn);
00179 G2L void g2_para_3(int id, int n, double *points);
00180 G2L void g2_para_5(int id, int n, double *points);
00181 G2L void g2_filled_spline(int id, int n, double *points, int o);
00182 G2L void g2_filled_b_spline(int id, int n, double *points, int o);
00183 G2L void g2_filled_raspln(int id, int n, double *points, double tn);
00184 G2L void g2_filled_para_3(int id, int n, double *points);
00185 G2L void g2_filled_para_5(int id, int n, double *points);
00186 
00187 
00189 G2L int g2_device_exist(int dix);
00190 
00192 #define G2_PD_HANDLES_SIZE 32
00193 G2L void g2_get_pd_handles(int pd, void *handles[G2_PD_HANDLES_SIZE]);
00194 
00195     
00196 #if defined(__cplusplus)
00197 } /* end extern "C" */
00198 #endif
00199 
00200 #endif /* _G2_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__PS__P_8h-source.html0000644000175000017500000003445310515227264016762 0ustar ljuboljubo g2: g2_PS_P.h Source File

g2_PS_P.h

00001 /*****************************************************************************
00002 **  This is part of the g2 library
00003 **  Copyright (C) 1998  Ljubomir Milanovic & Horst Wagner
00004 **
00005 **  This program is free software; you can redistribute it and/or modify
00006 **  it under the terms of the GNU General Public License (version 2) as
00007 **  published by the Free Software Foundation.
00008 **
00009 **  This program is distributed in the hope that it will be useful,
00010 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 **  GNU General Public License for more details.
00013 **
00014 **  You should have received a copy of the GNU General Public License
00015 **  along with this program; if not, write to the Free Software
00016 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 ******************************************************************************/
00018 #ifndef _G2_PS_P_H
00019 #define _G2_PS_P_H
00020 
00021 #include "g2_PS.h"
00022 
00023 
00024 typedef struct _g2_PS_inks {
00025     double r;                                   /* red   [0:1] */
00026     double g;                                   /* green [0:1] */
00027     double b;                                   /* blue  [0:1] */
00028 } g2_PS_inks;
00029 
00030 
00031 
00032 typedef struct _g2_PS_device {
00033   FILE                    *fp;          /* output file pointer */
00034   enum g2_PS_paper        paper;        /* paper type */
00035   enum g2_PS_orientation  orient;       /* page orientation */
00036   enum g2_PS_format       format;       /* PS or EPSF format */
00037   long                    width,height; /* width and height for EPSF */
00038   double                  x1,y1,x2,y2;  /* min. Bounding Box */
00039   int                     bbox;         /* Bounding Box empty flag */
00040   double                  w,size;       /* line width/font size (required for Bbox) */
00041   
00042   g2_PS_inks     *inks;                 /* allocated colors */
00043   int            N_ink;                 /* number of allocated colors*/
00044   int            pen;                   /* current pen */
00045   int            page_counter;          /* page counter ( Clear() ) */ 
00046 } g2_PS_device;
00047 
00048 
00049 
00050 void g2_PS_bbox_add(g2_PS_device *ps,double x,double y,double size);
00051 int g2_PS_write_file_header(g2_PS_device *psd);
00052 int g2_PS_delete(int pid, void *pdp);
00053 int g2_PS_ink(int pid, void *pdp,
00054               double red, double green, double blue);
00055 int g2_PS_pen(int pid, void *pdp, int color);
00056 int g2_PS_set_background(int pid, void *pdp, int color);
00057 int g2_PS_reset_palette(int pid, void *pdp);
00058 int g2_PS_clear_palette(int pid, void *pdp);
00059 int g2_PS_set_line_width(int pid, void *pdp, double w);
00060 int g2_PS_set_dash(int pid, void *pdp, int N, double *data);
00061 int g2_PS_set_font_size(int pid, void *pdp, double size);
00062 int g2_PS_clear(int pid, void *pdp);
00063 int g2_PS_flush(int pid, void *pdp);
00064 int g2_PS_plot(int pid, void *pdp, double x, double y);
00065 int g2_PS_line(int pid, void *pdp, double x1, double y1, double x2, double y2);
00066 int g2_PS_poly_line(int pid, void *pdp, int N, double *points);
00067 int g2_PS_polygon(int pid, void *pdp, int N, double *points);
00068 int g2_PS_filled_polygon(int pid, void *pdp, int N, double *points);
00069 int g2_PS_rectangle(int pid, void *pdp,
00070                     double x1, double y1, double x2, double y2);
00071 int g2_PS_filled_rectangle(int pid, void *pdp,
00072                            double x1, double y1, double x2, double y2);
00073 int g2_PS_triangle(int pid, void *pdp,
00074                    double x1, double y1,
00075                    double x2, double y2,
00076                    double x3, double y3);
00077 int g2_PS_filled_triangle(int pid, void *pdp,
00078                          double x1, double y1,
00079                          double x2, double y2,
00080                          double x3, double y3);
00081 int g2_PS_arc(int pid, void *pdp,
00082               double x, double y,
00083               double r1, double r2,
00084               double a1, double a2);
00085 int g2_PS_filled_arc(int pid, void *pdp,
00086                      double x, double y,
00087                      double r1, double r2,
00088                      double a1, double a2);
00089 int g2_PS_ellipse(int pid, void *pdp,
00090                   double x, double y,
00091                   double r1, double r2);
00092 int g2_PS_filled_ellipse(int pid, void *pdp,
00093                          double x, double y,
00094                          double r1, double r2);
00095 int g2_PS_draw_string(int pid, void *pdp,
00096                       double x, double y, const char *text);
00097 
00098 #endif /* _G2_PS_P_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/g2__FIG__P_8h-source.html0000644000175000017500000002656310515227264017050 0ustar ljuboljubo g2: g2_FIG_P.h Source File

g2_FIG_P.h

00001 /*****************************************************************************
00002 **  This is part of the g2 library
00003 **  Copyright (C) 1998  Ljubomir Milanovic & Horst Wagner
00004 **
00005 **  This program is free software; you can redistribute it and/or modify
00006 **  it under the terms of the GNU General Public License (version 2) as
00007 **  published by the Free Software Foundation.
00008 **
00009 **  This program is distributed in the hope that it will be useful,
00010 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 **  GNU General Public License for more details.
00013 **
00014 **  You should have received a copy of the GNU General Public License
00015 **  along with this program; if not, write to the Free Software
00016 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 ******************************************************************************/
00018 #ifndef _G2_FIG_P_H
00019 #define _G2_FIG_P_H
00020 
00021 #include "g2_FIG.h"
00022 
00023 #include <stdio.h>
00024 
00025 typedef struct _g2_FIG_inks {
00026     unsigned char red;
00027     unsigned char green;
00028     unsigned char blue;
00029 } g2_FIG_inks;
00030 
00031 typedef struct _g2_FIG_device {
00032     FILE           *fp;           /* output file pointer */
00033     int            pen_color;     /* current pen */
00034     int            thickness;     /* line thickness */
00035     int            font_size;     /* font size */
00036     int            line_style;    /* line style according to fig format */
00037     int            style_val;     /* line style value acc. to fig format */
00038 
00039     g2_FIG_inks    inks[512];      /* 512 user defined colors */
00040     int            N_inks;         /* number of allocated colors */
00041     fpos_t         color_file_pos; /* file position of colors, ftell */
00042 } g2_FIG_device;
00043 
00044 
00045 
00046 int g2_FIG_write_file_header(g2_FIG_device *figd);
00047 int g2_FIG_delete(int pid, void *pdp);
00048 int g2_FIG_ink(int pid, void *pdp,
00049               double red, double green, double blue);
00050 int g2_FIG_pen(int pid, void *pdp, int color);
00051 int g2_FIG_set_background(int pid, void *pdp, int color);
00052 int g2_FIG_reset_palette(int pid, void *pdp);
00053 int g2_FIG_clear_palette(int pid, void *pdp);
00054 int g2_FIG_set_line_width(int pid, void *pdp, int w);
00055 int g2_FIG_set_dash(int pid, void *pdp, int N, int *data);
00056 int g2_FIG_set_font_size(int pid, void *pdp, int size);
00057 int g2_FIG_clear(int pid, void *pdp);
00058 int g2_FIG_flush(int pid, void *pdp);
00059 int g2_FIG_plot(int pid, void *pdp, int x, int y);
00060 int g2_FIG_line(int pid, void *pdp, int x1, int y1, int x2, int y2);
00061 int g2_FIG_poly_line(int pid, void *pdp, int N, int *points);
00062 int g2_FIG_polygon(int pid, void *pdp, int N, int *points);
00063 int g2_FIG_filled_polygon(int pid, void *pdp, int N, int *points);
00064 int g2_FIG_arc(int pid, void *pdp,
00065               int x, int y,
00066               int r1, int r2,
00067               double a1, double a2);
00068 int g2_FIG_filled_arc(int pid, void *pdp,
00069                      int x, int y,
00070                      int r1, int r2,
00071                      double a1, double a2);
00072 int g2_FIG_ellipse(int pid, void *pdp,
00073                   int x, int y,
00074                   int r1, int r2);
00075 int g2_FIG_filled_ellipse(int pid, void *pdp,
00076                          int x, int y,
00077                          int r1, int r2);
00078 int g2_FIG_draw_string(int pid, void *pdp,
00079                       int x, int y, const char *text);
00080 
00081 #endif /* _G2_FIG_P_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__X11.html0000644000175000017500000001654610515227264015325 0ustar ljuboljubo g2: X11

X11
[g2 Physical devices]


Functions

int g2_open_X11 (int width, int height)
int g2_open_X11X (int width, int height, int x, int y, char *window_name, char *icon_name, char *icon_data, int icon_width, int icon_height)

Function Documentation

int g2_open_X11 int  width,
int  height
 

Open a simple X11 window (physical device device).

Parameters:
width window width
height window height
Returns:
physical device id

int g2_open_X11X int  width,
int  height,
int  x,
int  y,
char *  window_name,
char *  icon_name,
char *  icon_data,
int  icon_width,
int  icon_height
 

Open a X11 window (physical device device). If icon_width or icon_height is smaller than 0, the icon_data is interpreted as a file name.

Parameters:
width window width
height window height
x x position on screen
y y position on screen
window_name hint for window manager
icon_name hint for window manager
icon_data icon bitmap (icon_width * icon_height bits) or file name containing bitmap (if icon_width <= 0 or icon_height <= 0)
icon_width icon width
icon_height icon height
Returns:
physical device id


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__vd.html0000644000175000017500000001671610515227264015364 0ustar ljuboljubo g2: virtual device related functions

virtual device related functions
[g2 User Interface]


Functions

int g2_open_vd (void)
void g2_attach (int vd_dev, int dev)
void g2_detach (int vd_dev, int dev)

Detailed Description

Virtual device is a method to redirect g2 output to multiple devices. Here is an example:

    int d1 = g2_open_X11(100, 100);      create first X11 window
    int d2 = g2_open_X11(100, 100);      create 2nd X11 window

    int vd = g2_open_vd();               open a new virtual device

    g2_attach(vd, d1);                   attach d1 (1st window) to virtual device
    g2_attach(vd, d2);                   attach d2 (2nd window) to virtual device

    g2_plot(d1, 11, 11);                 output to the 1st X11 window
    g2_plot(d2, 12, 12);                 output to the 2nd X11 window 
    g2_plot(vd, 13, 13);                 output to both X11 windows

Function Documentation

void g2_attach int  vd_dev,
int  dev
 

Attach a device to virtual device vd_dev.

Parameters:
vd_dev virtual device (create virtual device by calling g2_open_vd() )  
dev device

void g2_detach int  vd_dev,
int  dev
 

Dettach a device from the virtual device vd_dev.

Parameters:
vd_dev virtual device  
dev device

int g2_open_vd void   ) 
 

Create a new virtual device.

Returns:
virtual device ID


Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/doxygen.css0000644000175000017500000001604610515227263014674 0ustar ljuboljuboBODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { font-family: Geneva, Arial, Helvetica, sans-serif; } BODY,TD { font-size: 90%; } H1 { text-align: center; font-size: 160%; } H2 { font-size: 120%; } H3 { font-size: 100%; } CAPTION { font-weight: bold } DIV.qindex { width: 100%; background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.nav { width: 100%; background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.navtab { background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } TD.navtab { font-size: 70%; } A.qindex { text-decoration: none; font-weight: bold; color: #1A419D; } A.qindex:visited { text-decoration: none; font-weight: bold; color: #1A419D } A.qindex:hover { text-decoration: none; background-color: #ddddff; } A.qindexHL { text-decoration: none; font-weight: bold; background-color: #6666cc; color: #ffffff; border: 1px double #9295C2; } A.qindexHL:hover { text-decoration: none; background-color: #6666cc; color: #ffffff; } A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} A.codeRef:link { font-weight: normal; color: #0000FF} A.codeRef:visited { font-weight: normal; color: #0000FF} A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } .fragment { font-family: Fixed, monospace; font-size: 95%; } PRE.fragment { border: 1px solid #CCCCCC; background-color: #f5f5f5; margin-top: 4px; margin-bottom: 4px; margin-left: 2px; margin-right: 8px; padding-left: 6px; padding-right: 6px; padding-top: 4px; padding-bottom: 4px; } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #F4F4FB; font-weight: bold; } TD.mdPrefix { background-color: #F4F4FB; color: #606060; font-size: 80%; } TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold; } DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } BODY { background: white; color: black; margin-right: 20px; margin-left: 20px; } TD.indexkey { background-color: #e8eef2; font-weight: bold; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TD.indexvalue { background-color: #e8eef2; font-style: italic; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TR.memlist { background-color: #f0f0f0; } P.formulaDsp { text-align: center; } IMG.formulaDsp { } IMG.formulaInl { vertical-align: middle; } SPAN.keyword { color: #008000 } SPAN.keywordtype { color: #604020 } SPAN.keywordflow { color: #e08000 } SPAN.comment { color: #800000 } SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } .mdTable { border: 1px solid #868686; background-color: #F4F4FB; } .mdRow { padding: 8px 10px; } .mdescLeft { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .mdescRight { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .memItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplParams { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; color: #606060; background-color: #FAFAFA; font-size: 80%; } .search { color: #003399; font-weight: bold; } FORM.search { margin-bottom: 0px; margin-top: 0px; } INPUT.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } TD.tiny { font-size: 75%; } a { color: #1A41A8; } a:visited { color: #2A3798; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #84b0c7; } TH.dirtab { background: #e8eef2; font-weight: bold; } HR { height: 1px; border: none; border-top: 1px solid black; } g2-0.72/doc/html/g2__FIG_8h-source.html0000644000175000017500000001417010515227264016421 0ustar ljuboljubo g2: g2_FIG.h Source File

g2_FIG.h

00001 /*****************************************************************************
00002 **  Copyright (C) 1998-2004  Ljubomir Milanovic & Horst Wagner
00003 **  This file is part of the g2 library
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This library is distributed in the hope that it will be useful,
00011 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 **  Lesser General Public License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 ******************************************************************************/
00019 #ifndef _G2_FIG_H
00020 #define _G2_FIG_H
00021 
00022 #if defined(__cplusplus)
00023 extern "C"
00024 {
00025 #endif
00026 
00027 
00028 /* Common Library header for DLL and application */
00029 #ifdef WIN32
00030 #ifdef G2DLL
00031 #ifdef MAKEDLL
00032 /* Create DLL */
00033 #define G2L __declspec( dllexport)
00034 #else
00035 /* Use DLL */
00036 #define G2L __declspec( dllimport)
00037 #endif
00038 #else 
00039 /* Use static win32 */
00040 #define G2L
00041 #endif
00042 #else
00043 /* Use non-win32 */
00044 #define G2L
00045 #endif
00046 
00047 G2L int g2_open_FIG(const char *file_name);
00048 
00049 
00050 #if defined(__cplusplus)
00051 } /* end extern "C" */
00052 #endif
00053 
00054 #endif /* _G2_FIG_H */

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/paper.html0000644000175000017500000001400310515227264014472 0ustar ljuboljubo g2: PS paper sizes

PS paper sizes

PS paper sizes

g2 Name                 Name                 Size(Pt)
--------------------------------------------------------
g2_A0                   A0                   2384 x 3370
g2_A1                   A1                   1684 x 2384
g2_A2                   A2                   1191 x 1684
g2_A3                   A3                    842 x 1191
g2_A4                   A4                    595 x 842
g2_A5                   A5                    420 x 595
g2_A6                   A6                    297 x 420
g2_A7                   A7                    210 x 297
g2_A8                   A8                    148 x 210
g2_A9                   A9                    105 x 148
g2_B0                   B0                   2920 x 4127
g2_B1                   B1                   2064 x 2920
g2_B2                   B2                   1460 x 2064
g2_B3                   B3                   1032 x 1460
g2_B4                   B4                    729 x 1032
g2_B5                   B5                    516 x 729
g2_B6                   B6                    363 x 516
g2_B7                   B7                    258 x 363
g2_B8                   B8                    181 x 258
g2_B9                   B9                    127 x 181
g2_B10                  B10                    91 x 127
g2_Comm_10_Envelope     Comm #10 Envelope     297 x 684
g2_C5_Envelope          C5 Envelope           461 x 648
g2_DL_Envelope          DL Envelope           312 x 624
g2_Folio                Folio                 595 x 935
g2_Executive            Executive             522 x 756
g2_Letter               Letter                612 x 792
g2_Legal                Legal                 612 x 1008
g2_Ledger               Ledger               1224 x 792
g2_Tabloid              Tabloid               792 x 1224

Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/doc/html/group__physdev.html0000644000175000017500000000412510515227264016424 0ustar ljuboljubo g2: g2 Physical devices

g2 Physical devices
[g2 User Interface]


Modules

 FIG
 GD
 PostScript
 MS Windows
 X11

Detailed Description

g2 physical devices are drivers for different output formats.
Generated on Tue Oct 17 21:27:48 2006 for g2 by  doxygen 1.4.6
g2-0.72/gd.dsp0000644000175000017500000000547606726467207012120 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="gd" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Static Library" 0x0104 CFG=gd - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "gd.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "gd.mak" CFG="gd - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "gd - Win32 Release" (based on "Win32 (x86) Static Library") !MESSAGE "gd - Win32 Debug" (based on "Win32 (x86) Static Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "gd - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c # ADD BASE RSC /l 0x409 # ADD RSC /l 0x409 BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo !ELSEIF "$(CFG)" == "gd - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "gd___Win" # PROP BASE Intermediate_Dir "gd___Win" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /W3 /GX /Z7 /Od /I "../../../gd1.3" /I "./src" /I "../src" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c # ADD BASE RSC /l 0x409 # ADD RSC /l 0x409 BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo !ENDIF # Begin Target # Name "gd - Win32 Release" # Name "gd - Win32 Debug" # Begin Source File SOURCE=..\gd\gd.c # End Source File # Begin Source File SOURCE=..\gd\gdfontg.c # End Source File # Begin Source File SOURCE=..\gd\gdfontl.c # End Source File # Begin Source File SOURCE=..\gd\gdfontmb.c # End Source File # Begin Source File SOURCE=..\gd\gdfonts.c # End Source File # Begin Source File SOURCE=..\gd\gdfontt.c # End Source File # End Target # End Project g2-0.72/g2_anim.dsp0000644000175000017500000001035710040317271013007 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="g2_anim" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=g2_anim - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "g2_anim.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "g2_anim.mak" CFG="g2_anim - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "g2_anim - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "g2_anim - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "g2_anim - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /W3 /GX /O2 /I "src/gd" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 !ELSEIF "$(CFG)" == "g2_anim - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "src/gd" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept !ENDIF # Begin Target # Name "g2_anim - Win32 Release" # Name "g2_anim - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=.\demo\g2_anim.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project g2-0.72/README0000644000175000017500000000612510375720556011660 0ustar ljuboljubog2 - graphic library (C) 1999 Lj. Milanovic, H. Wagner Version 0.xx License Information =================== This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. See INSTALL for information on how to install g2 see the html documentation in the doc/ subdirectory for a function reference What is g2 ? ============ Short version (if you are in hurry): - 2D graphic library - Simple to use - Supports several types of output devices (currently X11, gd (PNG, JPEG), PostScript) - Concept allows easy implementation of new device types - Virtual devices allow to send output simultaneously to several devices - User definable coordinate system - Written in ANSI-C - Tested under Digital Unix, AIX, Linux, VMS and Windows NT - Fortran interface Long version: g2 is a simple to use graphics library for 2D graphical applications written in Ansi-C. This library provides a comprehensive set of functions for simultaneous generation of graphical output on different types of devices. Presently, following devices are currently supported by g2: X11, gd (PNG, JPEG), PostScript (xfig and Win32 are in developement). One major feature of the g2_library is the concept of virtual devices. An arbitrary number of physical devices (such as PNG, or X11) can be grouped to create a so-called virtual device. Commands sent to such a virtual devices will automatically issued to all attached physical devices. This allows for example simultaneous output to a PNG file and a Postscript file. A virtual device in turn can be attached to another virtual device, allowing to construct trees of devices. Virtual devices can also be useful when using different user-coordinate systems. E.g. one X11 window showing an overview of a graphical output, and a second window showing a zoom of a more detailed area of the graphic. Drawing in both windows is performed by one single command to the virtual device. /-------> PNG: g2_attach(id_PNG,... ----------------------- g2_plot---> | Virtual device: id |--------> X11: g2_attach(id_X11,... ----------------------- \-------> PS: g2_attach(id_PS,... If you don't need or like the concept of virtual devices, simply ignore it. CONTACT ======= You can contact the authors and contributors by e-mail (/ is @ and - is .): Ljubomir Milanovic ljubo/users-sourceforge-net Horst Wagner wagner/users-sourceforge-net Tijs Michels (spline implementation) tijs/users-sourceforge-net or visit g2 home page on: http://g2.sourceforge.net/ g2-0.72/src/0000755000175000017500000000000010515227220011545 5ustar ljuboljubog2-0.72/src/g2_fif.c0000644000175000017500000003115510404170136013052 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include "g2.h" #include "g2_util.h" /* * * g2 Fortran Interface * */ #ifdef LINUX #define FIF(funame) funame ## __ #else #define FIF(funame) funame ## _ #endif #define F_REAL float /* everything is float (real) !!!!!!!!!!!!!! */ #define F_CHAR char /* only char is char */ #define F_CHAR_LENGTH int /* and char length is integer (it is automatically supplied */ /**********************************************************/ #ifdef DO_PS #include "PS/g2_PS.h" F_REAL FIF(g2_open_ps)(F_CHAR *text, F_REAL *paper, F_REAL *orientation, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_PS(str, dtoi(*paper), dtoi(*orientation)); g2_free(str); return (F_REAL)rv; } F_REAL FIF(g2_open_epsf)(F_CHAR *text, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_EPSF(str); g2_free(str); return (F_REAL)rv; } F_REAL FIF(g2_open_epsf_clip)(F_CHAR *text, F_REAL *width, F_REAL *height, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_PS(str, dtoi(*width), dtoi(*height)); g2_free(str); return (F_REAL)rv; } #endif /* DO_PS */ /**********************************************************/ #ifdef DO_X11 #include "X11/g2_X11.h" F_REAL FIF(g2_open_x11)(F_REAL *width, F_REAL *height) { return (F_REAL)g2_open_X11(*width, *height); } F_REAL FIF(g2_open_x11x)( F_REAL *width, F_REAL *height, F_REAL *x, F_REAL *y, F_CHAR *text1, F_CHAR *text2, F_CHAR *text3, F_REAL *icon_width, F_REAL *icon_height, F_CHAR_LENGTH length1, F_CHAR_LENGTH length2, F_CHAR_LENGTH length3) { char *str1,*str2,*str3; int rv; str1=g2_malloc((length1+1)*sizeof(char)); str2=g2_malloc((length2+1)*sizeof(char)); str3=g2_malloc((length3+1)*sizeof(char)); strncpy(str1, text1, length1); strncpy(str2, text2, length2); strncpy(str3, text3, length3); str1[length1]='\0'; str2[length2]='\0'; str3[length3]='\0'; rv=g2_open_X11X(dtoi(*width), dtoi(*height), dtoi(*x), dtoi(*y), str1, str2, str3, dtoi (*icon_width), dtoi(*icon_height)); g2_free(str1); g2_free(str2); g2_free(str3); return (F_REAL)rv; } #endif /* DO_X11 */ /**********************************************************/ #ifdef DO_WIN32 #include "Win32/g2_Win32.h" F_REAL FIF(g2_open_win32)( F_REAL *width, F_REAL *height, F_CHAR *text, F_REAL *type, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_win32(dtoi(*width), dtoi(*height), str, dtoi (*type)); g2_free(str); return (F_REAL)rv; } #endif /* DO_WIN32 */ /**********************************************************/ #ifdef DO_GD #include "GD/g2_gd.h" F_REAL FIF(g2_open_gd)(F_CHAR *text, F_REAL *width, F_REAL *height, F_REAL *gd_type, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_gd(str, *width, *height, *gd_type); g2_free(str); return (F_REAL)rv; } #endif /* DO_GD */ /**********************************************************/ #ifdef DO_FIG #include "FIG/g2_FIG.h" F_REAL FIF(g2_open_fig)(F_CHAR *text, F_CHAR_LENGTH length) { char *str; int rv; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; rv=g2_open_FIG(str); g2_free(str); return (F_REAL)rv; } #endif /* DO_FIG */ /**********************************************************/ F_REAL FIF(g2_open_vd)(void) { return (F_REAL)g2_open_vd(); } void FIF(g2_attach)(F_REAL *vd_dev, F_REAL *dev) { g2_attach(dtoi(*vd_dev), dtoi(*dev)); } void FIF(g2_detach)(F_REAL *vd_dev, F_REAL *dev) { g2_detach(dtoi(*vd_dev), dtoi(*dev)); } void FIF(g2_close)(F_REAL *dev) { g2_close(dtoi(*dev)); } void FIF(g2_set_auto_flush)(F_REAL *dev, F_REAL *on_off) { g2_set_auto_flush(dtoi(*dev), dtoi(*on_off)); } void FIF(g2_set_coordinate_system)(F_REAL *dev, F_REAL *x_origin, F_REAL *y_origin, F_REAL *x_mul, F_REAL *y_mul) { g2_set_coordinate_system(dtoi(*dev), *x_origin, *y_origin, *x_mul, *y_mul); } F_REAL FIF(g2_ld)(void) { return (F_REAL)g2_ld(); } void FIF(g2_set_ld)(F_REAL *dev) { g2_set_ld(dtoi(*dev)); } void FIF(g2_flush)(F_REAL *dev) { g2_flush(dtoi(*dev)); } void FIF(g2_save)(F_REAL *dev) { g2_save(dtoi(*dev)); } void FIF(g2_arc)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r1, F_REAL *r2, F_REAL *a1, F_REAL *a2) { g2_arc(dtoi(*dev), *x, *y, *r1, *r2, *a1, *a2); } void FIF(g2_circle)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r) { g2_circle(dtoi(*dev), *x, *y, *r); } void FIF(g2_clear)(F_REAL *dev) { g2_clear(dtoi(*dev)); } void FIF(g2_clear_palette)(F_REAL *dev) { g2_clear_palette(dtoi(*dev)); } void FIF(g2_string)(F_REAL *dev, F_REAL *x, F_REAL *y, F_CHAR *text, F_CHAR_LENGTH length) { char *str; str=g2_malloc((length+1)*sizeof(char)); strncpy(str, text, length); str[length]='\0'; g2_string(dtoi(*dev), *x, *y, str); g2_free(str); } void FIF(g2_ellipse)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r1, F_REAL *r2) { g2_ellipse(dtoi(*dev), *x, *y, *r1, *r2); } void FIF(g2_filled_arc)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r1, F_REAL *r2, F_REAL *a1, F_REAL *a2) { g2_filled_arc(dtoi(*dev), *x, *y, *r1, *r2, *a1, *a2); } void FIF(g2_filled_circle)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r) { g2_filled_circle(dtoi(*dev), *x, *y, *r); } void FIF(g2_filled_ellipse)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *r1, F_REAL *r2) { g2_filled_ellipse(dtoi(*dev), *x, *y, *r1, *r2); } void FIF(g2_filled_triangle)(F_REAL *dev, F_REAL *x1, F_REAL *y1, F_REAL *x2, F_REAL *y2, F_REAL *x3, F_REAL *y3) { g2_filled_triangle(dtoi(*dev), *x1, *y1, *x2, *y2, *x3, *y3); } F_REAL FIF(g2_ink)(F_REAL *dev, F_REAL *red, F_REAL *green, F_REAL *blue) { return (F_REAL)g2_ink(dtoi(*dev), *red, *green, *blue); } void FIF(g2_line)(F_REAL *dev, F_REAL *x1, F_REAL *y1, F_REAL *x2, F_REAL *y2) { g2_line(dtoi(*dev), *x1, *y1, *x2, *y2); } void FIF(g2_poly_line)(F_REAL *dev, F_REAL *N_pt, F_REAL *points) { double *d; d=g2_floatp2doublep(points, dtoi(*N_pt)*2); g2_poly_line(dtoi(*dev), dtoi(*N_pt), d); g2_free(d); } void FIF(g2_polygon)(F_REAL *dev, F_REAL *N_pt, F_REAL *points) { double *d; d=g2_floatp2doublep(points, dtoi(*N_pt)*2); g2_polygon(dtoi(*dev), dtoi(*N_pt), d); g2_free(d); } void FIF(g2_filled_polygon)(F_REAL *dev, F_REAL *N_pt, F_REAL *points) { double *d; d=g2_floatp2doublep(points, dtoi(*N_pt)*2); g2_filled_polygon(dtoi(*dev), dtoi(*N_pt), d); g2_free(d); } void FIF(g2_line_r)(F_REAL *dev, F_REAL *dx, F_REAL *dy) { g2_line_r(dtoi(*dev), *dx, *dy); } void FIF(g2_line_to)(F_REAL *dev, F_REAL *x, F_REAL *y) { g2_line_to(dtoi(*dev), *x, *y); } void FIF(g2_move)(F_REAL *dev, F_REAL *x, F_REAL *y) { g2_move(dtoi(*dev), *x, *y); } void FIF(g2_move_r)(F_REAL *dev, F_REAL *dx, F_REAL *dy) { g2_move_r(dtoi(*dev), *dx, *dy); } void FIF(g2_pen)(F_REAL *dev, F_REAL *color) { g2_pen(dtoi(*dev), dtoi(*color)); } void FIF(g2_plot)(F_REAL *dev, F_REAL *x, F_REAL *y) { g2_plot(dtoi(*dev), *x, *y); } void FIF(g2_plot_r)(F_REAL *dev, F_REAL *dx, F_REAL *dy) { g2_plot_r(dtoi(*dev), *dx, *dy); } void FIF(g2_rectangle)(F_REAL *dev, F_REAL *x1, F_REAL *y1, F_REAL *x2, F_REAL *y2) { g2_rectangle(dtoi(*dev), *x1, *y1, *x2, *y2); } void FIF(g2_filled_rectangle)(F_REAL *dev, F_REAL *x1, F_REAL *y1, F_REAL *x2, F_REAL *y2) { g2_filled_rectangle(dtoi(*dev), *x1, *y1, *x2, *y2); } void FIF(g2_reset_palette)(F_REAL *dev) { g2_reset_palette(dtoi(*dev)); } void FIF(g2_set_background)(F_REAL *dev, F_REAL *color) { g2_set_background(dtoi(*dev), dtoi(*color)); } void FIF(g2_set_dash)(F_REAL *dev, F_REAL *N, F_REAL *dashes) { double *d; d=g2_floatp2doublep(dashes, dtoi(*N)); g2_set_dash(dtoi(*dev), dtoi(*N), d); g2_free(d); } void FIF(g2_set_font_size)(F_REAL *dev, F_REAL *size) { g2_set_font_size(dtoi(*dev), *size); } void FIF(g2_set_line_width)(F_REAL *dev, F_REAL *w) { g2_set_line_width(dtoi(*dev), *w); } void FIF(g2_triangle)(F_REAL *dev, F_REAL *x1, F_REAL *y1, F_REAL *x2, F_REAL *y2, F_REAL *x3, F_REAL *y3) { g2_triangle(dtoi(*dev), *x1, *y1, *x2, *y2, *x3, *y3); } void FIF(g2_set_qp)(F_REAL *dev, F_REAL *d, F_REAL *shape) { g2_set_QP(dtoi(*dev), *d, dtoi(*shape)); } void FIF(g2_plot_qp)(F_REAL *dev, F_REAL *x, F_REAL *y) { g2_plot_QP(dtoi(*dev), *x, *y); } /* thanks to Yuri Sbitnev for contributing the g2_image code for FORTRAN */ void FIF(g2_image)(F_REAL *dev, F_REAL *x, F_REAL *y, F_REAL *x_size, F_REAL *y_size, F_REAL *pens) { int i, j, xs, ys; int *mypens; xs=dtoi(*x_size); ys=dtoi(*y_size); mypens=(int *) g2_malloc(xs*ys*sizeof(int)); for(j=0;j #include #include #include "g2.h" #include "g2_device.h" #include "g2_control_pd.h" #include "g2_util.h" /** * \ingroup interface * \defgroup color color manipulations * * The color concept used in the g2 library is inspired by Sir Clive * Sinclair solution implemented in the ZX Spectrum computer. With the * g2_pen() function it is possible to choose a pen created by the * g2_ink() function. Note that g2_ink function is only defined for * physical devices. The predefined colors (see g2_test demo program) * have pens from 0 till 26 (inclusive). * * Some basic colors are: * - 0 white * - 1 black * - 3 blue * - 7 green * - 19 red * - 25 yellow * */ /** * \ingroup interface * \defgroup control output control */ /** * * Flush output buffers. * * \param dev device id * * \ingroup control */ void g2_flush(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_flush: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_flush_pd(devp->d.pd); break; case g2_VD: for(i=0;id.vd->N;i++) g2_flush(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Save output * * \param dev device id * * \ingroup control */ void g2_save(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_save: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_save_pd(devp->d.pd); break; case g2_VD: for(i=0;id.vd->N;i++) g2_save(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Clear device * * \param dev device number * * \ingroup control */ void g2_clear(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_clear: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_clear_pd(devp->d.pd); break; case g2_VD: for(i=0;id.vd->N;i++) g2_clear(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Set pen color for all following operations, see also g2_ink(). * * \param dev device * \param color pen (either one of default pens 0-26, or a pen returned by g2_ink() ) * * \ingroup color */ void g2_pen(int dev, int color) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_pen: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_pen_pd(devp->d.pd, color); break; case g2_VD: for(i=0;id.vd->N;i++) g2_pen(devp->d.vd->dix[i], color); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Set the background color * * \param dev device * \param color pen (either one of default pens 0-26, or a pen returned by g2_ink() ) * * \ingroup color */ void g2_set_background(int dev, int color) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_background: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_set_background_pd(devp->d.pd, color); break; case g2_VD: for(i=0;id.vd->N;i++) g2_set_background(devp->d.vd->dix[i], color); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Create an ink. To put ink into the pen use g2_pen(). * * \param pd_dev physical device * \param red red component (0-1) according to the RGB color model * \param green green component (0-1) according to the RGB color model * \param blue blue component (0-1) according to the RGB color model * \return new pen, see g2_pen() * * \ingroup color */ int g2_ink(int pd_dev, double red, double green, double blue) { g2_device *devp; int rv=-1; if((devp=g2_get_device_pointer(pd_dev))==NULL) { fprintf(stderr, "g2_ink: No such device: %d\n", pd_dev); return -1; } if(red < 0.0) red=0.0; if(green < 0.0) green=0.0; if(blue < 0.0) blue=0.0; if(red > 1.0) red=1.0; if(green > 1.0) green=1.0; if(blue > 1.0) blue=1.0; switch(devp->t) { case g2_PD: rv=g2_ink_pd(devp->d.pd, red, green, blue); break; case g2_VD: fprintf(stderr, "g2_ink: g2_ink is enabled only for phys. devices\n"); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=pd_dev; return rv; } /** * * Clear collor palette (remove all inks) and reallocate basic colors. * * \param dev device * * \ingroup color */ void g2_reset_palette(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_reset_palette: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_clear_palette(dev); g2_allocate_basic_colors(dev); break; case g2_VD: for(i=0;id.vd->N;i++) g2_reset_palette(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Remove all inks. * * \param dev device * * \ingroup color */ void g2_clear_palette(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_clear_palette: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_clear_palette_pd(devp->d.pd); break; case g2_VD: for(i=0;id.vd->N;i++) g2_clear_palette(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Allocate basic colors * * \param dev device * * \ingroup color */ void g2_allocate_basic_colors(int dev) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_allocate_basic_colors: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_allocate_basic_colors_pd(devp->d.pd); break; case g2_VD: for(i=0;id.vd->N;i++) g2_allocate_basic_colors(devp->d.vd->dix[i]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Set font size * * \param dev device * \param size new font size * * \ingroup control */ void g2_set_font_size(int dev, double size) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_font_size: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_set_font_size_pd(devp->d.pd, size); break; case g2_VD: for(i=0;id.vd->N;i++) g2_set_font_size(devp->d.vd->dix[i], size); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Set line width. * * \param dev device * \param w new line width * * \ingroup control */ void g2_set_line_width(int dev, double w) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_line_width: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_set_line_width_pd(devp->d.pd, w); break; case g2_VD: for(i=0;id.vd->N;i++) g2_set_line_width(devp->d.vd->dix[i], w); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Set line dash. Set \a N to 0 and \a dashes to NULL to restore solid line. * * \param dev device * \param N number of dash components (0 for solid line) * \param dashes vector of dash lengths (black, white, black, ...) * * \ingroup control */ void g2_set_dash(int dev, int N, double *dashes) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_dash: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_set_dash_pd(devp->d.pd, N, dashes); break; case g2_VD: for(i=0;id.vd->N;i++) g2_set_dash(devp->d.vd->dix[i], N, dashes); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Set QuasiPixel size and shape. * * \param dev device * \param d size * \param shape shape (rectangle or circle, see ::QPshape ) * * \ingroup control */ void g2_set_QP(int dev, double d, enum QPshape shape) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_QP: No such device: %d\n", dev); return; } devp->QPd=d; devp->QPshape=shape; __g2_last_device=dev; } /** * * Query pointer (e.g. mouse for X11) position and button state. See * the demo program pointer.c for an example. * * \param dev device * \param x returns pointer x coordinate * \param y returns pointer y coordinate * \param button returns button state * * \ingroup control */ void g2_query_pointer(int dev, double *x, double *y, unsigned int *button) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_query_pointer: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_query_pointer_pd(devp->d.pd, x, y, button); break; case g2_VD: break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Get pointers to physical device specific handles. This function * should be used only if you are familiar with the g2 source code. * For details see physical device source code (e.g. in src/X11/). * Example usage can be found in demo/handles.c. * * \param pd physical device * \param handles returns pointers to physical device low level handles * * \ingroup control */ void g2_get_pd_handles(int pd, void *handles[G2_PD_HANDLES_SIZE]) { g2_device *devp; int i; for(i=0;it) { case g2_PD: g2_get_pd_handles_pd(devp->d.pd, handles); break; case g2_VD: break; case g2_ILLEGAL: break; case g2_NDEV: break; } } g2-0.72/src/g2_splines.c0000644000175000017500000006011510404772534013773 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** Copyright (C) 1999-2006 Tijs Michels ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * g2_splines.c * Tijs Michels * tijs@users.sourceforge.net * 06/16/99 : initial release * 19/02/06 : eliminated duplicates by using pointers to functions */ #include #include #include "g2.h" #include "g2_util.h" /** * \ingroup graphic * \defgroup splines splines */ typedef void calc_f( int, const double *, int, double *); typedef void calc_d( int, const double *, double, double *); static calc_f g2_c_spline; static calc_f g2_c_b_spline; static calc_d g2_c_raspln; static calc_f g2_c_para_3; static calc_f g2_c_para_5; static void g2_p_spline(int id, int n, const double *points, int o, calc_f *f) { const int m = (n-1)*o+1; double * const sxy = (double *) g2_malloc(m*2*sizeof(double)); (*f)(n, points, m, sxy); g2_poly_line(id, m, sxy); g2_free(sxy); } static void g2_p_filled_spline(int id, int n, const double *points, int o, calc_f *f) { const int m = (n-1)*o+2; double * const sxy = (double *) g2_malloc(m*2*sizeof(double)); (*f)(n, points, m, sxy); sxy[m+m-2] = points[n+n-2]; sxy[m+m-1] = points[1]; g2_filled_polygon(id, m, sxy); g2_free(sxy); } static void g2_split(int n, const double *points, double *x, double *y) { int i; for (i = 0; i < n; i++) { x[i] = points[i+i]; y[i] = points[i+i+1]; } } #define eps 1.e-12 void g2_c_spline(int n, const double *points, int m, double *sxy) /* * FUNCTIONAL DESCRIPTION: * * Compute a curve of m points (sx[j],sy[j]) * -- j being a positive integer < m -- * passing through the n data points (x[i],y[i]) * -- i being a positive integer < n -- * supplied by the user. * The procedure to determine sy[j] involves * Young's method of successive over-relaxation. * * FORMAL ARGUMENTS: * * n number of data points * points data points (x[i],y[i]) * m number of interpolated points; m = (n-1)*o+1 * for o curve points for every data point * sxy interpolated points (sx[j],sy[j]) * * IMPLICIT INPUTS: NONE * IMPLICIT OUTPUTS: NONE * SIDE EFFECTS: NONE * * REFERENCES: * * 1. Ralston and Wilf, Mathematical Methods for Digital Computers, * Vol. II, John Wiley and Sons, New York 1967, pp. 156-158. * 2. Greville, T.N.E., Ed., Proceedings of An Advanced Seminar * Conducted by the Mathematics Research Center, U.S. Army, * University of Wisconsin, Madison. October 7-9, 1968. Theory * and Applications of Spline Functions, Academic Press, * New York / London 1969, pp. 156-167. * * AUTHORS: * * Josef Heinen 04/06/88 * Tijs Michels 06/16/99 */ { int i, j; double *x, *y, *g, *h; double k, u, delta_g; if (n < 3) { fputs("\nERROR calling function \"g2_c_spline\":\n" "number of data points input should be at least three\n", stderr); return; } if ((m-1)%(n-1)) { fputs("\nWARNING from function \"g2_c_spline\":\n" "number of curve points output for every data point input " "is not an integer\n", stderr); } x = (double *) g2_malloc(n*4*sizeof(double)); y = x + n; g = y + n; h = g + n; /* for the constant copy of g */ g2_split(n, points, x, y); n--; /* last value index */ k = x[0]; /* look up once */ u = (x[n] - k) / (m - 1); /* calculate step outside loop */ for (j = 0; j < m; j++) sxy[j+j] = j * u + k; /* x-coordinates */ for (i = 1; i < n; i++) { g[i] = 2. * ((y[i+1] - y[i]) / (x[i+1] - x[i]) - (y[i] - y[i-1]) / (x[i] - x[i-1])) / (x[i+1] - x[i-1]); /* whereas g[i] will later be changed repeatedly */ h[i] = 1.5 * g[i]; /* copy h[i] of g[i] will remain constant */ } k = 0.; do { for (u = 0., i = 1; i < n; i++) { delta_g = .5 * (x[i] - x[i-1]) / (x[i+1] - x[i-1]); delta_g = (h[i] - g[i] - g[i-1] * delta_g - /* 8. - 4 * sqrt(3.) */ g[i+1] * (.5 - delta_g)) * 1.0717967697244907832; g[i] += delta_g; if (fabs(delta_g) > u) u = fabs(delta_g); } /* On loop termination u holds the largest delta_g. */ if (k == 0.) k = u * eps; /* Only executed once, at the end of pass one. So k preserves * the largest delta_g of pass one, multiplied by eps. */ } while (u > k); m += m, i = 1, j = 0; do { u = sxy[j++]; /* x-coordinate */ while (x[i] < u) i++; if (--i > n) i = n; k = (u - x[i]) / (x[i+1] - x[i]); /* calculate outside loop */ sxy[j++] = y[i] + (y[i+1] - y[i]) * k + (u - x[i]) * (u - x[i+1]) * ((2. - k) * g[i] + (1. + k) * g[i+1]) / 6.; /* y-coordinate */ } while (j < m); g2_free(x); } /** * * Using Young's method of successive over-relaxation, * plot a spline curve with \a o interpolated points per data point. * So the larger \a o, the more fluent the curve. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param o number of interpolated points per data point * * \ingroup splines */ void g2_spline(int dev, int n, double *points, int o) { g2_p_spline(dev, n, points, o, g2_c_spline); } /** * * Using Young's method of successive over-relaxation, * plot a filled spline curve with \a o interpolated points per data point. * So the larger \a o, the more fluent the curve. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param o number of interpolated points per data point * * \ingroup splines */ void g2_filled_spline(int dev, int n, double *points, int o) { g2_p_filled_spline(dev, n, points, o, g2_c_spline); } void g2_c_b_spline(int n, const double *points, int m, double *sxy) /* * g2_c_b_spline takes n input points. It uses parameter t * to compute sx(t) and sy(t) respectively */ { int i, j; double *x, *y; double t, bl1, bl2, bl3, bl4; double interval, xi_3, yi_3, xi, yi; if (n < 3) { fputs("\nERROR calling function \"g2_c_b_spline\":\n" "number of data points input should be at least three\n", stderr); return; } x = (double *) g2_malloc(n*2*sizeof(double)); y = x + n; g2_split(n, points, x, y); m--; /* last value index */ n--; /* last value index */ interval = (double)n / m; for (m += m, i = 2, j = 0; i <= n+1; i++) { if (i == 2) { xi_3 = 2 * x[0] - x[1]; yi_3 = 2 * y[0] - y[1]; } else { xi_3 = x[i-3]; yi_3 = y[i-3]; } if (i == n+1) { xi = 2 * x[n] - x[n-1]; yi = 2 * y[n] - y[n-1]; } else { xi = x[i]; yi = y[i]; } t = fmod(j * interval, 1.); while (t < 1. && j < m) { bl1 = (1. - t); bl2 = t * t; /* t^2 */ bl4 = t * bl2; /* t^3 */ bl3 = bl4 - bl2; bl1 = bl1 * bl1 * bl1; bl2 = 3. * (bl3 - bl2) + 4.; bl3 = 3. * ( t - bl3) + 1.; sxy[j++] = (bl1 * xi_3 + bl2 * x[i-2] + bl3 * x[i-1] + bl4 * xi) / 6.; /* x-coordinate */ sxy[j++] = (bl1 * yi_3 + bl2 * y[i-2] + bl3 * y[i-1] + bl4 * yi) / 6.; /* y-coordinate */ t += interval; } } sxy[m] = x[n]; sxy[m+1] = y[n]; g2_free(x); } /** * * Plot a b-spline curve with \a o interpolated points per data point. * So the larger \a o, the more fluent the curve. * For most averaging purposes, this is the right spline. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param o number of interpolated points per data point * * \ingroup splines */ void g2_b_spline(int dev, int n, double *points, int o) { g2_p_spline(dev, n, points, o, g2_c_b_spline); } /** * * Plot a filled b-spline curve with \a o interpolated points per data point. * So the larger \a o, the more fluent the curve. * For most averaging purposes, this is the right spline. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param o number of interpolated points per data point * * \ingroup splines */ void g2_filled_b_spline(int dev, int n, double *points, int o) { g2_p_filled_spline(dev, n, points, o, g2_c_b_spline); } /* * FUNCTION g2_c_raspln * * FUNCTIONAL DESCRIPTION: * * This function draws a piecewise cubic polynomial through * the specified data points. The (n-1) cubic polynomials are * basically parametric cubic Hermite polynomials through the * n specified data points with tangent values at the data * points determined by a weighted average of the slopes of * the secant lines. A tension parameter "tn" is provided to * adjust the length of the tangent vector at the data points. * This allows the "roundness" of the curve to be adjusted. * For further information and references on this technique see: * * D. Kochanek and R. Bartels, Interpolating Splines With Local * Tension, Continuity and Bias Control, Computer Graphics, * 18(1984)3. * * AUTHORS: * * Dennis Mikkelson distributed in GPLOT Jan 7, 1988 F77 * Tijs Michels t.michels@vimec.nl Jun 7, 1999 C * * FORMAL ARGUMENTS: * * n number of data points, n > 2 * points double array holding the x and y-coords of the data points * tn double parameter in [0.0, 2.0]. When tn = 0.0, * the curve through the data points is very rounded. * As tn increases the curve is gradually pulled tighter. * When tn = 2.0, the curve is essentially a polyline * through the given data points. * sxy double array holding the coords of the spline curve * * IMPLICIT INPUTS: NONE * IMPLICIT OUTPUTS: NONE * SIDE EFFECTS: NONE */ #define nb 40 /* * Number of straight connecting lines of which each polynomial consists. * So between one data point and the next, (nb-1) points are placed. */ void g2_c_raspln(int n, const double *points, double tn, double *sxy) { int i, j; double bias, tnFactor, tangentL1, tangentL2; double D1x, D1y, D2x, D2y, t1x, t1y, t2x, t2y; double h1[nb+1]; /* Values of the Hermite basis functions */ double h2[nb+1]; /* at nb+1 evenly spaced points in [0,1] */ double h3[nb+1]; double h4[nb+1]; double * const x = (double *) g2_malloc(n*2*sizeof(double)); double * const y = x + n; g2_split(n, points, x, y); /* * First, store the values of the Hermite basis functions in a table h[ ] * so no time is wasted recalculating them */ for (i = 0; i < nb+1; i++) { double t, tt, ttt; t = (double) i / nb; tt = t * t; ttt = t * tt; h1[i] = 2. * ttt - 3. * tt + 1.; h2[i] = -2. * ttt + 3. * tt; h3[i] = ttt - 2. * tt + t; h4[i] = ttt - tt; } /* * Set local tnFactor based on input parameter tn */ if (tn <= 0.) { tnFactor = 2.; fputs("g2_c_raspln: Using Tension Factor 0.0: very rounded", stderr); } else if (tn >= 2.) { tnFactor = 0.; fputs("g2_c_raspln: Using Tension Factor 2.0: not rounded at all", stderr); } else tnFactor = 2. - tn; D1x = D1y = 0.; /* first point has no preceding point */ for (j = 0; j < n - 2; j++) { t1x = x[j+1] - x[j]; t1y = y[j+1] - y[j]; t2x = x[j+2] - x[j+1]; t2y = y[j+2] - y[j+1]; tangentL1 = t1x * t1x + t1y * t1y; tangentL2 = t2x * t2x + t2y * t2y; if (tangentL1 + tangentL2 == 0) bias = .5; else bias = tangentL2 / (tangentL1 + tangentL2); D2x = tnFactor * (bias * t1x + (1 - bias) * t2x); D2y = tnFactor * (bias * t1y + (1 - bias) * t2y); for (i = 0; i < nb; i++) { sxy[2 * nb * j + i + i] = h1[i] * x[j] + h2[i] * x[j+1] + h3[i] * D1x + h4[i] * D2x; sxy[2 * nb * j + i + i + 1] = h1[i] * y[j] + h2[i] * y[j+1] + h3[i] * D1y + h4[i] * D2y; } D1x = D2x; /* store as preceding point in */ D1y = D2y; /* the next pass */ } /* * Do the last subinterval as a special case since no point follows the * last point */ for (i = 0; i < nb+1; i++) { sxy[2 * nb * (n-2) + i + i] = h1[i] * x[n-2] + h2[i] * x[n-1] + h3[i] * D1x; sxy[2 * nb * (n-2) + i + i + 1] = h1[i] * y[n-2] + h2[i] * y[n-1] + h3[i] * D1y; } g2_free(x); } /** * * Plot a piecewise cubic polynomial with adjustable roundness * through the given data points. * Each Hermite polynomial between two data points is made up of 40 lines. * Tension factor \a tn must be between 0.0 (very rounded) * and 2.0 (not rounded at all, i.e. essentially a \ref g2_poly_line "polyline"). * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param tn tension factor in the range [0.0, 2.0] * * \ingroup splines */ void g2_raspln(int dev, int n, double *points, double tn) { const int m = (n-1)*nb+1; double * const sxy = (double *) g2_malloc(m*2*sizeof(double)); /* coords of the entire spline curve */ g2_c_raspln(n, points, tn, sxy); g2_poly_line(dev, m, sxy); g2_free(sxy); } /** * * Plot a filled piecewise cubic polynomial with adjustable roundness * through the given data points. * Each Hermite polynomial between two data points is made up of 40 lines. * Tension factor \a tn must be between 0.0 (very rounded) * and 2.0 (not rounded at all, i.e. essentially a \ref g2_poly_line "polyline"). * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * \param tn tension factor in the range [0.0, 2.0] * * \ingroup splines */ void g2_filled_raspln(int dev, int n, double *points, double tn) { const int m = (n-1)*nb+2; double * const sxy = (double *) g2_malloc(m*2*sizeof(double)); /* coords of the entire spline curve */ g2_c_raspln(n, points, tn, sxy); sxy[m+m-2] = points[n+n-2]; sxy[m+m-1] = points[1]; g2_filled_polygon(dev, m, sxy); g2_free(sxy); } /* ---- And now for a rather different approach ---- */ /* * FUNCTION g2_c_newton * * FUNCTIONAL DESCRIPTION: * * Use Newton's Divided Differences to calculate an interpolation * polynomial through the specified data points. * This function is called by * g2_c_para_3 and * g2_c_para_5. * * Dennis Mikkelson distributed in GPLOT Jan 5, 1988 F77 * Tijs Michels t.michels@vimec.nl Jun 16, 1999 C * * FORMAL ARGUMENTS: * * n number of entries in c1 and c2, 4 <= n <= MaxPts * for para_3 (degree 3) n = 4 * for para_5 (degree 5) n = 6 * for para_i (degree i) n = (i + 1) * c1 double array holding at most MaxPts values giving the * first coords of the points to be interpolated * c2 double array holding at most MaxPts values giving the * second coords of the points to be interpolated * o number of points at which the interpolation * polynomial is to be evaluated * xv double array holding o points at which to * evaluate the interpolation polynomial * yv double array holding upon return the values of the * interpolation polynomial at the corresponding points in xv * * yv is the OUTPUT * * IMPLICIT INPUTS: NONE * IMPLICIT OUTPUTS: NONE * SIDE EFFECTS: NONE */ #define MaxPts 21 #define xstr(s) __str(s) #define __str(s) #s /* * Maximum number of data points allowed * 21 would correspond to a polynomial of degree 20 */ static void g2_c_newton(int n, const double *c1, const double *c2, int o, const double *xv, double *yv) { int i, j; double p, s; double ddt[MaxPts][MaxPts]; /* Divided Difference Table */ if (n < 4) { fputs("g2_c_newton: Error! Less than 4 points passed " "to function g2_c_newton\n", stderr); return; } if (n > MaxPts) { fputs("g2_c_newton: Error! More than " xstr(MaxPts) " points passed " "to function g2_c_newton\n", stderr); return; } /* First, build the divided difference table */ for (i = 0; i < n; i++) ddt[i][0] = c2[i]; for (j = 1; j < n; j++) { for (i = 0; i < n - j; i++) ddt[i][j] = (ddt[i+1][j-1] - ddt[i][j-1]) / (c1[i+j] - c1[i]); } /* Next, evaluate the polynomial at the specified points */ for (i = 0; i < o; i++) { for (p = 1., s = ddt[0][0], j = 1; j < n; j++) { p *= xv[i] - c1[j-1]; s += p * ddt[0][j]; } yv[i] = s; } } /* * FUNCTION: g2_c_para_3 * * FUNCTIONAL DESCRIPTION: * * This function draws a piecewise parametric interpolation * polynomial of degree 3 through the specified data points. * The effect is similar to that obtained using DISSPLA to * draw a curve after a call to the DISSPLA routine PARA3. * The curve is parameterized using an approximation to the * curve's arc length. The basic interpolation is done * using function g2_c_newton. * * Dennis Mikkelson distributed in GPLOT Jan 7, 1988 F77 * Tijs Michels t.michels@vimec.nl Jun 17, 1999 C * * FORMAL ARGUMENTS: * * n number of data points through which to draw the curve * points double array containing the x and y-coords of the data points * * IMPLICIT INPUTS: NONE * IMPLICIT OUTPUTS: NONE * SIDE EFFECTS: NONE */ /* * #undef nb * #define nb 40 * Number of straight connecting lines of which each polynomial consists. * So between one data point and the next, (nb-1) points are placed. */ void g2_c_para_3(int n, const double *points, int m, double *sxy) { #define dgr (3+1) #define nb2 (nb*2) int i, j; double x1t, y1t; double o, step; double X[nb2]; /* x-coords of the current curve piece */ double Y[nb2]; /* y-coords of the current curve piece */ double t[dgr]; /* data point parameter values */ double Xpts[dgr]; /* x-coords data point subsection */ double Ypts[dgr]; /* y-coords data point subsection */ double s[nb2]; /* parameter values at which to interpolate */ m = m; /* dummy argument; stop compiler complaints */ /* Do first TWO subintervals first */ g2_split(dgr, points, Xpts, Ypts); t[0] = 0.; for (i = 1; i < dgr; i++) { x1t = Xpts[i] - Xpts[i-1]; y1t = Ypts[i] - Ypts[i-1]; t[i] = t[i-1] + sqrt(x1t * x1t + y1t * y1t); } step = t[2] / nb2; for (i = 0; i < nb2; i++) s[i] = i * step; g2_c_newton(dgr, t, Xpts, nb2, s, X); g2_c_newton(dgr, t, Ypts, nb2, s, Y); for (i = 0; i < nb2; i++) { sxy[i+i] = X[i]; sxy[i+i+1] = Y[i]; } /* Next, do later central subintervals */ for (j = 1; j < n - dgr + 1; j++) { g2_split(dgr, points + j + j, Xpts, Ypts); for (i = 1; i < dgr; i++) { x1t = Xpts[i] - Xpts[i-1]; y1t = Ypts[i] - Ypts[i-1]; t[i] = t[i-1] + sqrt(x1t * x1t + y1t * y1t); } o = t[1]; /* look up once */ step = (t[2] - o) / nb; for (i = 0; i < nb; i++) s[i] = i * step + o; g2_c_newton(dgr, t, Xpts, nb, s, X); g2_c_newton(dgr, t, Ypts, nb, s, Y); for (i = 0; i < nb; i++) { sxy[(j + 1) * nb2 + i + i] = X[i]; sxy[(j + 1) * nb2 + i + i + 1] = Y[i]; } } /* Now do last subinterval */ o = t[2]; step = (t[3] - o) / nb; for (i = 0; i < nb; i++) s[i] = i * step + o; g2_c_newton(dgr, t, Xpts, nb, s, X); g2_c_newton(dgr, t, Ypts, nb, s, Y); for (i = 0; i < nb; i++) { sxy[(n - dgr + 2) * nb2 + i + i] = X[i]; sxy[(n - dgr + 2) * nb2 + i + i + 1] = Y[i]; } sxy[(n - 1) * nb2] = points[n+n-2]; sxy[(n - 1) * nb2 + 1] = points[n+n-1]; } /** * * Using Newton's Divided Differences method, plot a piecewise * parametric interpolation polynomial of degree 3 * through the given data points. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * * \ingroup splines */ void g2_para_3(int dev, int n, double *points) { g2_p_spline(dev, n, points, nb, g2_c_para_3); } /** * * Using Newton's Divided Differences method, plot a filled piecewise * parametric interpolation polynomial of degree 3 * through the given data points. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * * \ingroup splines */ void g2_filled_para_3(int dev, int n, double *points) { g2_p_filled_spline(dev, n, points, nb, g2_c_para_3); } /* * FUNCTION: g2_c_para_5 * * As g2_c_para_3, but now plot a polynomial of degree 5 */ /* * Number of straight connecting lines of which each polynomial consists. * So between one data point and the next, (nb-1) points are placed. */ void g2_c_para_5(int n, const double *points, int m, double *sxy) { #undef dgr #define dgr (5+1) #define nb3 (nb*3) int i, j; double x1t, y1t; double o, step; double X[nb3]; /* x-coords of the current curve piece */ double Y[nb3]; /* y-coords of the current curve piece */ double t[dgr]; /* data point parameter values */ double Xpts[dgr]; /* x-coords data point subsection */ double Ypts[dgr]; /* y-coords data point subsection */ double s[nb3]; /* parameter values at which to interpolate */ m = m; /* dummy argument; stop compiler complaints */ /* Do first THREE subintervals first */ g2_split(dgr, points, Xpts, Ypts); t[0] = 0.; for (i = 1; i < dgr; i++) { x1t = Xpts[i] - Xpts[i-1]; y1t = Ypts[i] - Ypts[i-1]; t[i] = t[i-1] + sqrt(x1t * x1t + y1t * y1t); } step = t[3] / nb3; for (i = 0; i < nb3; i++) s[i] = i * step; g2_c_newton(dgr, t, Xpts, nb3, s, X); g2_c_newton(dgr, t, Ypts, nb3, s, Y); for (i = 0; i < nb3; i++) { sxy[i+i] = X[i]; sxy[i+i+1] = Y[i]; } /* Next, do later central subintervals */ for (j = 1; j < n - dgr + 1; j++) { g2_split(dgr, points + j + j, Xpts, Ypts); for (i = 1; i < dgr; i++) { x1t = Xpts[i] - Xpts[i-1]; y1t = Ypts[i] - Ypts[i-1]; t[i] = t[i-1] + sqrt(x1t * x1t + y1t * y1t); } o = t[2]; /* look up once */ step = (t[3] - o) / nb; for (i = 0; i < nb; i++) s[i] = i * step + o; g2_c_newton(dgr, t, Xpts, nb, s, X); g2_c_newton(dgr, t, Ypts, nb, s, Y); for (i = 0; i < nb; i++) { sxy[(j + 2) * nb2 + i + i] = X[i]; sxy[(j + 2) * nb2 + i + i + 1] = Y[i]; } } /* Now do last TWO subinterval */ o = t[3]; step = (t[5] - o) / nb2; for (i = 0; i < nb2; i++) s[i] = i * step + o; g2_c_newton(dgr, t, Xpts, nb2, s, X); g2_c_newton(dgr, t, Ypts, nb2, s, Y); for (i = 0; i < nb2; i++) { sxy[(n - dgr + 3) * nb2 + i + i] = X[i]; sxy[(n - dgr + 3) * nb2 + i + i + 1] = Y[i]; } sxy[(n - 1) * nb2] = points[n+n-2]; sxy[(n - 1) * nb2 + 1] = points[n+n-1]; } /** * * Using Newton's Divided Differences method, plot a piecewise * parametric interpolation polynomial of degree 5 * through the given data points. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * * \ingroup splines */ void g2_para_5(int dev, int n, double *points) { g2_p_spline(dev, n, points, nb, g2_c_para_5); } /** * * Using Newton's Divided Differences method, plot a filled piecewise * parametric interpolation polynomial of degree 5 * through the given data points. * * \param dev device id * \param n number of data points (not the size of buffer \a points) * \param points buffer of \a n data points x1, y1, ... x\a n, y\a n * * \ingroup splines */ void g2_filled_para_5(int dev, int n, double *points) { g2_p_filled_spline(dev, n, points, nb, g2_c_para_5); } g2-0.72/src/FIG/0000755000175000017500000000000010515227216012157 5ustar ljuboljubog2-0.72/src/FIG/g2_FIG.h0000644000175000017500000000276310033113716013327 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_FIG_H #define _G2_FIG_H #if defined(__cplusplus) extern "C" { #endif /* Common Library header for DLL and application */ #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #define G2L __declspec( dllexport) #else /* Use DLL */ #define G2L __declspec( dllimport) #endif #else /* Use static win32 */ #define G2L #endif #else /* Use non-win32 */ #define G2L #endif G2L int g2_open_FIG(const char *file_name); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_FIG_H */ g2-0.72/src/FIG/g2_FIG_P.h0000644000175000017500000000613010400652345013602 0ustar ljuboljubo/***************************************************************************** ** This is part of the g2 library ** Copyright (C) 1998 Ljubomir Milanovic & Horst Wagner ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as ** published by the Free Software Foundation. ** ** 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 ******************************************************************************/ #ifndef _G2_FIG_P_H #define _G2_FIG_P_H #include "g2_FIG.h" #include typedef struct _g2_FIG_inks { unsigned char red; unsigned char green; unsigned char blue; } g2_FIG_inks; typedef struct _g2_FIG_device { FILE *fp; /* output file pointer */ int pen_color; /* current pen */ int thickness; /* line thickness */ int font_size; /* font size */ int line_style; /* line style according to fig format */ int style_val; /* line style value acc. to fig format */ g2_FIG_inks inks[512]; /* 512 user defined colors */ int N_inks; /* number of allocated colors */ fpos_t color_file_pos; /* file position of colors, ftell */ } g2_FIG_device; int g2_FIG_write_file_header(g2_FIG_device *figd); int g2_FIG_delete(int pid, void *pdp); int g2_FIG_ink(int pid, void *pdp, double red, double green, double blue); int g2_FIG_pen(int pid, void *pdp, int color); int g2_FIG_set_background(int pid, void *pdp, int color); int g2_FIG_reset_palette(int pid, void *pdp); int g2_FIG_clear_palette(int pid, void *pdp); int g2_FIG_set_line_width(int pid, void *pdp, int w); int g2_FIG_set_dash(int pid, void *pdp, int N, int *data); int g2_FIG_set_font_size(int pid, void *pdp, int size); int g2_FIG_clear(int pid, void *pdp); int g2_FIG_flush(int pid, void *pdp); int g2_FIG_plot(int pid, void *pdp, int x, int y); int g2_FIG_line(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_FIG_poly_line(int pid, void *pdp, int N, int *points); int g2_FIG_polygon(int pid, void *pdp, int N, int *points); int g2_FIG_filled_polygon(int pid, void *pdp, int N, int *points); int g2_FIG_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_FIG_filled_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_FIG_ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_FIG_filled_ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_FIG_draw_string(int pid, void *pdp, int x, int y, const char *text); #endif /* _G2_FIG_P_H */ g2-0.72/src/FIG/g2_FIG.c0000644000175000017500000002573610034351145013330 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_util.h" #include "g2_config.h" #include "g2_FIG.h" #include "g2_FIG_P.h" #include "g2_FIG_funix.h" #ifndef PI #define PI 3.14159265358979323846 #endif /* PI */ static int N_FIG=0; static g2_FIG_device *g2_FIG_dev=NULL; /** * \ingroup physdev * \defgroup FIG FIG * * FIG devices generate output in the FIG 3.2 format. For more details * about FIG format and xfig application please visit http://www.xfig.org . * * \note FIG is a vector-oriented (as oposed to pixel-oriented) format. * Therefore ::g2_image function and splines are not optimally supported. */ /** * * Create a FIG device. g2 uses A4 paper size (landscape orientation) as default. * * \param file_name fig file name * * \return physical device id * * \ingroup FIG */ G2L int g2_open_FIG(const char *file_name) { g2_FIG_device *figout=NULL; int pid=-1, i; int vid; FILE *fp; if((fp=fopen(file_name, "w"))==NULL) { g2_log(Error, "g2_attach_PS: Error! Can not open file '%s'\n", file_name); return -1; } if(g2_FIG_dev==NULL) { g2_FIG_dev=g2_malloc(sizeof(g2_FIG_device)); N_FIG=1; /* first FIG device */ figout=&g2_FIG_dev[N_FIG-1]; pid=0; } else { for(i=0;ifp=fp; figout->pen_color=1; figout->thickness=-1; figout->font_size=-1; figout->N_inks=0; /* write file header (incl. color placeholder) */ g2_FIG_write_file_header(figout); /* g2 settings callbacks */ g2_allocate_basic_colors(vid); g2_pen(vid, 1); g2_set_line_width(vid, 1); g2_set_dash(vid, 0, NULL); g2_set_font_size(vid, 12); return vid; } /* * * Write header for fig file * */ int g2_FIG_write_file_header(g2_FIG_device *fig) { int i; fprintf(fig->fp, "#FIG 3.2\n"); fprintf(fig->fp, "#Creator: g2 %s\n", G2_VERSION); fprintf(fig->fp, "Landscape\n"); fprintf(fig->fp, "Flush Left\n"); fprintf(fig->fp, "Metric\n"); fprintf(fig->fp, "A4\n"); fprintf(fig->fp, "100\n"); fprintf(fig->fp, "Single\n"); fprintf(fig->fp, "-2\n"); fprintf(fig->fp, "1200 2\n"); /* write placeholder for all colors */ fgetpos(fig->fp, &(fig->color_file_pos)); for(i=0;i<512;i++) fprintf(fig->fp, "0 %3d #%02x%02x%02x\n",32+i, 0xff, 0xff, 0xff); return 0; } /* * * Delete FIG device * */ int g2_FIG_delete(int pid, void *pdp) { int i; g2_FIG_device *fig=&g2_FIG_dev[pid]; /* now write all defined colors to the reserved place */ fsetpos(fig->fp, &(fig->color_file_pos)); for(i=0;iN_inks;i++) { fprintf(fig->fp, "0 %3d #%02x%02x%02x\n", 32+i, (int)fig->inks[i].red, (int)fig->inks[i].green, (int)fig->inks[i].blue); } fclose(fig->fp); fig->fp=NULL; /* free place */ return 0; } int g2_FIG_ink(int pid, void *pdp, double red, double green, double blue) { /* the fig pen space is betwen 32 and 543, total of 512 colors, in g2 implementation from 0000 to 0777. On the other hand ink space is between #000000 and #ffffff. */ g2_FIG_device *fig=&g2_FIG_dev[pid]; if(fig->N_inks>=512) return -1; fig->inks[fig->N_inks].red = red*0xff; fig->inks[fig->N_inks].green = green*0xff; fig->inks[fig->N_inks].blue = blue*0xff; return fig->N_inks++; } int g2_FIG_pen(int pid, void *pdp, int color) { g2_FIG_device *fig=&g2_FIG_dev[pid]; if(color>=fig->N_inks) { return -1; } fig->pen_color = 32+color; return 0; } int g2_FIG_set_background(int pid, void *pdp, int color) { return -1; } int g2_FIG_clear_palette(int pid, void *pdp) { return -1; } int g2_FIG_set_line_width(int pid, void *pdp, int w) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fig->thickness = w*80./1200.; return 0; } int g2_FIG_set_dash(int pid, void *pdp, int N, int *data) { g2_FIG_device *fig=&g2_FIG_dev[pid]; int black, white; if(N==0 || data==NULL) { fig->line_style=0; fig->style_val=-1; return 0; } if(N<2) { return -1; } black = data[0]*80./1200.; /* FIG format has no sofistificated dash concept */ white = data[1]*80./1200.; /* we will do out best */ if(black<4) { fig->line_style = 2; } else { fig->line_style = 1; } fig->style_val = white; return 0; } int g2_FIG_set_font_size(int pid, void *pdp, int size) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fig->font_size = size*72./1200.; return 0; } int g2_FIG_clear(int pid, void *pdp) { return -1; } int g2_FIG_flush(int pid, void *pdp) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fflush(fig->fp); return 0; } int g2_FIG_plot(int pid, void *pdp, int x, int y) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fprintf(fig->fp, "2 1 0 %d %d -1 1 1 -1 -1 1 0 -1 0 0 2\n", 1, fig->pen_color); fprintf(fig->fp, " %d %d\n %d %d\n", x, y, x+1, y); return 0; } int g2_FIG_line(int pid, void *pdp, int x1, int y1, int x2, int y2) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fprintf(fig->fp, "2 1 %d %d %d -1 1 1 -1 %d 1 0 -1 0 0 2\n", fig->line_style, fig->thickness, fig->pen_color, fig->style_val); fprintf(fig->fp, " %d %d\n %d %d\n", x1, y1, x2, y2); return 0; } int g2_FIG_poly_line(int pid, void *pdp, int N, int *points) { g2_FIG_device *fig=&g2_FIG_dev[pid]; int i; fprintf(fig->fp,"2 1 %d %d %d -1 1 1 -1 %d 1 0 -1 0 0 %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->style_val, N); for(i=0;i<2*N;i+=2) { fprintf(fig->fp, " %d %d\n", points[i], points[i+1]); } return 0; } int g2_FIG_polygon(int pid, void *pdp, int N, int *points) { g2_FIG_device *fig=&g2_FIG_dev[pid]; int i; if(N<2) { return -1; } fprintf(fig->fp,"2 3 %d %d %d -1 1 1 -1 %d 1 0 -1 0 0 %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->style_val, N+1); for(i=0;i<2*N;i+=2) { fprintf(fig->fp, " %d %d\n", points[i], points[i+1]); } fprintf(fig->fp, " %d %d\n", points[0], points[1]); return 0; } int g2_FIG_filled_polygon(int pid, void *pdp, int N, int *points) { g2_FIG_device *fig=&g2_FIG_dev[pid]; int i; if(N<2) { return -1; } fprintf(fig->fp,"2 3 %d %d %d %d 1 1 20 %d 1 0 -1 0 0 %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->pen_color, fig->style_val, N+1); for(i=0;i<2*N;i+=2) { fprintf(fig->fp, " %d %d\n", points[i], points[i+1]); } fprintf(fig->fp, " %d %d\n", points[0], points[1]); return 0; } int g2_FIG_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { g2_FIG_device *fig=&g2_FIG_dev[pid]; double a0, d; double a0_rad, da_rad; int N, i; a0=fmod(a1, 360.) + (a1<0? 360:0); /* map a1 to [0, 360) */ d=a2>a1? a2-a1:a2-a1+360; N=3+d/18; a0_rad = a0*2.*PI/360.; da_rad = d*2.*PI/360./(N-1); fprintf(fig->fp, "3 2 %d %d %d -1 1 -1-1 %d 0 0 0 %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->style_val, N); for(i=0;ifp, " %d %d\n", (int)(x+r1*cos(a0_rad+i*da_rad)), (int)(y-r2*sin(a0_rad+i*da_rad))); } fprintf(fig->fp, " -1"); for(i=1;ifp, " -1"); } fprintf(fig->fp, " -1\n"); return 0; } int g2_FIG_filled_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { g2_FIG_device *fig=&g2_FIG_dev[pid]; double a0, d; double a0_rad, da_rad; int N, i; a0=fmod(a1, 360.) + (a1<0? 360:0); /* map a1 to [0, 360) */ d=a2>a1? a2-a1:a2-a1+360; N=3+d/18; a0_rad = a0*2.*PI/360.; da_rad = d*2.*PI/360./(N-1); fprintf(fig->fp, "3 2 %d %d %d %d 1 -1 20 %d 0 0 0 %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->pen_color, fig->style_val, N+2); for(i=0;ifp, " %d %d\n", (int)(x+r1*cos(a0_rad+i*da_rad)), (int)(y-r2*sin(a0_rad+i*da_rad))); } fprintf(fig->fp, " %d %d\n", x, y); fprintf(fig->fp, " %d %d\n", (int)(x+r1*cos(a0_rad+0*da_rad)), (int)(y-r2*sin(a0_rad+0*da_rad))); fprintf(fig->fp, " 0"); for(i=1;ifp, " -1"); } fprintf(fig->fp, " 0 0 0\n"); return 0; } int g2_FIG_ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fprintf(fig->fp,"1 1 %d %d %d -1 1 -1 -1 %d 1 0.0 %d %d %d %d %d %d %d %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->style_val, x, y, r1, r2, x, y, x+r1, y+r2); return 0; } int g2_FIG_filled_ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { g2_FIG_device *fig=&g2_FIG_dev[pid]; fprintf(fig->fp,"1 1 %d %d %d %d 1 -1 20 %d 1 0.0 %d %d %d %d %d %d %d %d\n", fig->line_style, fig->thickness, fig->pen_color, fig->pen_color, fig->style_val, x, y, r1, r2, x, y, x+r1, y+r2); return 0; } int g2_FIG_draw_string(int pid, void *pdp, int x, int y, const char *text) { const char *c; g2_FIG_device *fig=&g2_FIG_dev[pid]; if(fig->font_size<=0) return 0; fprintf(fig->fp,"4 0 %d 1 -1 0 %d 0 5 %d %d %d %d ", fig->pen_color, fig->font_size, fig->font_size, fig->font_size*strlen(text), x, y); for(c=text;*c;c++) { if(*c=='\\') fputc('\\', fig->fp); /* escape \\ */ fputc(*c, fig->fp); } fprintf(fig->fp,"\\001\n"); return 0; } g2-0.72/src/FIG/g2_FIG_funix.h0000644000175000017500000000447110033640622014537 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2004 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_FIG_FUNIX_H #define _G2_FIG_FUNIX_H #include "g2_FIG_P.h" #include "g2_physical_device.h" const g2_funix_fun g2_FIG_funix[] = { { g2_Delete, g2_FIG_delete }, { g2_Ink, g2_FIG_ink }, { g2_Pen, g2_FIG_pen }, { g2_SetBackground, NULL }, { g2_ClearPalette, NULL }, { g2_SetLineWidth, g2_FIG_set_line_width }, { g2_SetDash, g2_FIG_set_dash }, { g2_SetFontSize, g2_FIG_set_font_size }, { g2_Clear, g2_FIG_clear }, { g2_Flush, g2_FIG_flush }, { g2_Save, g2_FIG_flush }, { g2_Plot, g2_FIG_plot }, { g2_Line, g2_FIG_line }, { g2_PolyLine, g2_FIG_poly_line }, { g2_Polygon, g2_FIG_polygon }, { g2_FilledPolygon, g2_FIG_filled_polygon }, { g2_Rectangle, NULL }, { g2_FilledRectangle, NULL }, { g2_Triangle, NULL }, { g2_FilledTriangle, NULL }, { g2_Arc, g2_FIG_arc }, { g2_FilledArc, g2_FIG_filled_arc }, { g2_Ellipse, g2_FIG_ellipse }, { g2_FilledEllipse, g2_FIG_filled_ellipse }, { g2_Circle, NULL }, { g2_FilledCircle, NULL }, { g2_String, g2_FIG_draw_string }, { g2_FUNIX_NULL, NULL } }; #endif /* _G2_FIG_FUNIX_H */ g2-0.72/src/g2_config.h0000644000175000017500000000277610024170613013565 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_CONFIG_H #define _G2_CONFIG_H /* * * Some g2 defines * * Default behaviour is usually ok for most cases * */ /* g2 warnings are printed to stderr, larger 0=quiet, 1=errors, 2=warnings, 3=verbose, 4=debug */ #define g2_LogLevel 1 /* set to 0 to disable backing store emulation */ #define g2_EmulateBackingStore 1 /* X11 font, note %d for font size */ #define g2_X11Font "-*-times-medium-r-normal--%d-*-*-*-*-*-*-*" /* PostScript font */ #define g2_PSFont "/Times-Roman" #endif /* _G2_CONFIG_H */ g2-0.72/src/g2_ui_virtual_device.c0000644000175000017500000000763510027701313016014 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include "g2.h" #include "g2_device.h" #include "g2_virtual_device.h" #include "g2_util.h" /** * \ingroup interface * \defgroup vd virtual device related functions * * Virtual device is a method to redirect g2 output to multiple devices. Here is an example: * * \code * int d1 = g2_open_X11(100, 100); create first X11 window * int d2 = g2_open_X11(100, 100); create 2nd X11 window * * int vd = g2_open_vd(); open a new virtual device * * g2_attach(vd, d1); attach d1 (1st window) to virtual device * g2_attach(vd, d2); attach d2 (2nd window) to virtual device * * g2_plot(d1, 11, 11); output to the 1st X11 window * g2_plot(d2, 12, 12); output to the 2nd X11 window * g2_plot(vd, 13, 13); output to both X11 windows * \endcode * */ /** * * Create a new virtual device. * * \return virtual device ID * * \ingroup vd */ int g2_open_vd(void) { int dix; dix=g2_register_virtual_device(); __g2_last_device=dix; return dix; } /** * Attach a device to virtual device \a vd_dev. * * \param vd_dev virtual device (create virtual device by calling g2_open_vd() ) * \param dev device * * \ingroup vd */ void g2_attach(int vd_dev, int dev) { g2_device *vd_devp, *devp; if((vd_devp=g2_get_device_pointer(vd_dev))==NULL) { fprintf(stderr, "g2_attach: No such device: %d\n", vd_dev); return; } if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_attach: No such device: %d\n", dev); return; } if(vd_devp->t!=g2_VD) { fprintf(stderr, "g2_attach: Device %d is not virtual.\n", vd_dev); return; } if(devp->t==g2_VD) /* if virtual device */ if(g2_is_attached(dev, vd_dev)) { /* check recurency */ fprintf(stderr, "g2_attach: Device %d is already attached to %d.\n", dev, vd_dev); return; } vd_devp->d.vd->N++; vd_devp->d.vd->dix=g2_realloc(vd_devp->d.vd->dix, vd_devp->d.vd->N*sizeof(int)); vd_devp->d.vd->dix[vd_devp->d.vd->N-1]=dev; __g2_last_device=vd_dev; } /** * * Dettach a device from the virtual device \a vd_dev. * * \param vd_dev virtual device * \param dev device * * \ingroup vd */ void g2_detach(int vd_dev, int dev) { g2_device *vd_devp; int i; if((vd_devp=g2_get_device_pointer(vd_dev))==NULL) { fprintf(stderr, "g2_detach: No such device: %d\n", vd_dev); return; } if(vd_devp->t!=g2_VD) { fprintf(stderr, "g2_detach: Device %d is not virtual.\n", vd_dev); return; } for(i=0;id.vd->N;i++) if(vd_devp->d.vd->dix[i]==dev) { if(vd_devp->d.vd->N>1) vd_devp->d.vd->dix[i]=vd_devp->d.vd->dix[vd_devp->d.vd->N-1]; vd_devp->d.vd->N--; if(vd_devp->d.vd->N!=0) vd_devp->d.vd->dix=g2_realloc(vd_devp->d.vd->dix, vd_devp->d.vd->N*sizeof(int)); return; } __g2_last_device=vd_dev; } g2-0.72/src/g2_virtual_device.h0000644000175000017500000000261107267122246015327 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_VIRTUAL_DEVICE_H #define _G2_VIRTUAL_DEVICE_H typedef struct _g2_virtual_device { int N; /* number of attached devices */ int *dix; /* index of attached devices */ } g2_virtual_device; g2_virtual_device *g2_create_virtual_device(); void g2_destroy_virtual_device(g2_virtual_device *vd); int g2_is_attached(int vd, int dev); #endif /* _G2_VIRTUAL_DEVICE_H */ g2-0.72/src/PS/0000755000175000017500000000000010515227217012075 5ustar ljuboljubog2-0.72/src/PS/g2_PS_definitions.h0000644000175000017500000001116110400652346015551 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_PS_DEFINITIONS_H #define _G2_PS_DEFINITIONS_H /* * * Sizes for paper defined in g2_PS.h * Size is in 1/72 inch (=0.351mm) */ static int g2_PS_paper_size[][2]={ { 2384, 3370 }, /* g2_A0 - A0 */ { 1684, 2384 }, /* g2_A1 - A1 */ { 1191, 1684 }, /* g2_A2 - A2 */ { 842, 1191 }, /* g2_A3 - A3 */ { 595, 842 }, /* g2_A4 - A4 */ { 420, 595 }, /* g2_A5 - A5 */ { 297, 420 }, /* g2_A6 - A6 */ { 210, 297 }, /* g2_A7 - A7 */ { 148, 210 }, /* g2_A8 - A8 */ { 105, 148 }, /* g2_A9 - A9 */ { 2920, 4127 }, /* g2_B0 - B0 */ { 2064, 2920 }, /* g2_B1 - B1 */ { 1460, 2064 }, /* g2_B2 - B2 */ { 1032, 1460 }, /* g2_B3 - B3 */ { 729, 1032 }, /* g2_B4 - B4 */ { 516, 729 }, /* g2_B5 - B5 */ { 363, 516 }, /* g2_B6 - B6 */ { 258, 363 }, /* g2_B7 - B7 */ { 181, 258 }, /* g2_B8 - B8 */ { 127, 181 }, /* g2_B9 - B9 */ { 91, 127 }, /* g2_B10 - B10 */ { 297, 684 }, /* g2_Comm_10_Envelope - Comm #10 Envelope */ { 461, 648 }, /* g2_C5_Envelope - C5 Envelope */ { 312, 624 }, /* g2_DL_Envelope - DL Envelope */ { 595, 935 }, /* g2_Folio - Folio */ { 522, 756 }, /* g2_Executive - Executive */ { 612, 792 }, /* g2_Letter - Letter */ { 612, 1008 }, /* g2_Legal - Legal */ { 1224, 792 }, /* g2_Ledger - Ledger */ { 792, 1224 } /* g2_Tabloid - Tabloid */ }; /* * * PS operators * */ char *g2_PS_operators[]={ " /L { lineto } def", /* lineto */ " /St { stroke } def", /* stroke */ " /M { moveto } def", /* moveto */ " /P {", /* plot */ " gsave newpath [] 0 setdash 1 setlinecap 0 setlinewidth", " 0.2 sub exch 0.2 sub exch moveto 0.4 0.4 rlineto", " stroke grestore} def", " /T {", /* triangle */ " newpath", " moveto lineto lineto", " closepath stroke} def", " /FT {", /* filled triangle */ " newpath", " moveto lineto lineto", " closepath fill} def", " /R {", /* rectangle */ " newpath", " 3 index 1 index 6 4 roll 5 index 1 index", " moveto lineto lineto lineto closepath stroke} def", " /FR {", /* filled rectangle */ " newpath", " 3 index 1 index 6 4 roll 5 index 1 index", " moveto lineto lineto lineto closepath fill} def", " /A {", /* arc */ " gsave /g2_old_matrix matrix currentmatrix def newpath", " translate scale 0 0 1 5 3 roll arc", " g2_old_matrix setmatrix stroke grestore } def", " /FA {", /* filled arc */ " gsave /g2_old_matrix matrix currentmatrix def newpath", " translate scale 0 0 moveto 0 0 1 5 3 roll arc closepath", " g2_old_matrix setmatrix fill grestore } def", " /S {", /* draw string */ " gsave newpath", " translate 0 0 moveto show", " stroke grestore} def", "\n", NULL }; #endif /* _G2_PS_DEFINITIONS_H */ g2-0.72/src/PS/g2_PS_funix.h0000644000175000017500000000457607267122246014413 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_PS_FUNIX_H #define _G2_PS_FUNIX_H #include "g2_PS_P.h" #include "g2_physical_device.h" const g2_funix_fun g2_PS_funix[] = { { g2_Delete, g2_PS_delete }, { g2_Ink, g2_PS_ink }, { g2_Pen, g2_PS_pen }, { g2_SetBackground, g2_PS_set_background }, { g2_ClearPalette, g2_PS_clear_palette }, { g2_SetLineWidth, g2_PS_set_line_width }, { g2_SetDash, g2_PS_set_dash }, { g2_SetFontSize, g2_PS_set_font_size }, { g2_Clear, g2_PS_clear }, { g2_Flush, g2_PS_flush }, { g2_Save, g2_PS_flush }, { g2_Plot, g2_PS_plot }, { g2_Line, g2_PS_line }, { g2_PolyLine, g2_PS_poly_line }, { g2_Polygon, g2_PS_polygon }, { g2_FilledPolygon, g2_PS_filled_polygon }, { g2_Rectangle, g2_PS_rectangle }, { g2_FilledRectangle, g2_PS_filled_rectangle }, { g2_Triangle, g2_PS_triangle }, { g2_FilledTriangle, g2_PS_filled_triangle }, { g2_Arc, g2_PS_arc }, { g2_FilledArc, g2_PS_filled_arc }, { g2_Ellipse, g2_PS_ellipse }, { g2_FilledEllipse, g2_PS_filled_ellipse }, { g2_Circle, NULL }, { g2_FilledCircle, NULL }, { g2_String, g2_PS_draw_string }, { g2_FUNIX_NULL, NULL } }; #endif /* _G2_PS_FUNIX_H */ g2-0.72/src/PS/g2_PS.c0000644000175000017500000003274310206722536013165 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_util.h" #include "g2_config.h" #include "g2_PS.h" #include "g2_PS_P.h" #include "g2_PS_funix.h" #include "g2_PS_definitions.h" static int N_PS=0; static g2_PS_device *g2_PS_dev=NULL; /** * \ingroup physdev * \defgroup PS PostScript */ /* * * Attach generic PS device * */ G2L int g2_open_PS_generic(const char *file_name, enum g2_PS_paper paper, enum g2_PS_orientation orientation, enum g2_PS_format format, long width, long height) { g2_PS_device *psout=NULL; int pid=-1, i; int vid; FILE *fp; if((fp=fopen(file_name, "w"))==NULL) { fprintf(stderr, "g2_attach_PS: Error! Can not open file '%s'\n", file_name); return -1; } if(g2_PS_dev==NULL) { g2_PS_dev=g2_malloc(sizeof(g2_PS_device)); N_PS=1; /* first PS device */ psout=&g2_PS_dev[N_PS-1]; pid=0; } else { for(i=0;ifp=fp; /* init PostScript structures */ psout->paper=paper; psout->orient=orientation; psout->format=format; psout->width=width; psout->height=height; psout->inks=NULL; psout->N_ink=0; psout->pen=0; psout->page_counter=0; psout->bbox = 0; g2_PS_write_file_header(psout); g2_PS_set_line_width(pid, NULL, 0.0); g2_PS_set_font_size(pid, NULL, 12.0); /* g2 settings */ g2_allocate_basic_colors(vid); g2_pen(vid, 1); return vid; } /** * * Create a PS device. * * \param file_name postscript file name * \param paper paper type, see ::g2_PS_paper and \ref appendix Appendix * \param orientation paper orientation, see ::g2_PS_orientation * * \return physical device id * * \ingroup PS */ G2L int g2_open_PS(const char *file_name, enum g2_PS_paper paper, enum g2_PS_orientation orientation) { return g2_open_PS_generic(file_name,paper,orientation,g2_PS_PostScript,0,0); } /** * * Create an encapsulated PS device. * * \param file_name postscript file name * * \return physical device id * * \ingroup PS */ G2L int g2_open_EPSF(const char *file_name) { return g2_open_PS_generic(file_name,0,0,g2_PS_EPSF,0,0); } /** * * Create an encapsulated PS device with clipping. * * \param file_name postscript file name * \param width clipping region width * \param height clipping region height * * \return physical device id * * \ingroup PS */ G2L int g2_open_EPSF_CLIP(const char *file_name, long width, long height) { return g2_open_PS_generic(file_name,0,0,g2_PS_EPSF_CLIP,width,height); } /* * * Write header for postscript file * */ int g2_PS_write_file_header(g2_PS_device *ps) { int i; if (ps->format == g2_PS_PostScript) { fprintf(ps->fp,"%%!PS-Adobe-2.0\n"); switch(ps->orient) { case g2_PS_land: fprintf(ps->fp,"%%%%Orientation: Landscape\n"); break; case g2_PS_port: fprintf(ps->fp,"%%%%Orientation: Portrait\n"); break; } } else if (ps->format == g2_PS_EPSF_CLIP) { fprintf(ps->fp,"%%!PS-Adobe-3.0 EPSF-2.0\n"); fprintf(ps->fp,"%%%%BoundingBox: 0 0 %ld %ld\n",ps->width,ps->height); } else if (ps->format == g2_PS_EPSF) { fprintf(ps->fp,"%%!PS-Adobe-3.0 EPSF-2.0\n"); fprintf(ps->fp,"%%%%BoundingBox: (atend)\n"); } fprintf(ps->fp,"%%%%Creator: g2 %s\n", G2_VERSION); fprintf(ps->fp, "%%%%EndComments\n"); if (ps->format == g2_PS_EPSF_CLIP) { fprintf(ps->fp,"0 0 moveto\n"); fprintf(ps->fp,"0 %ld rlineto\n",ps->height); fprintf(ps->fp,"%ld 0 rlineto\n",ps->width); fprintf(ps->fp,"0 %ld rlineto\n",-ps->height); fprintf(ps->fp,"closepath\n"); fprintf(ps->fp,"clip\n"); } for(i=0;g2_PS_operators[i]!=NULL;i++) fputs(g2_PS_operators[i], ps->fp); fprintf(ps->fp,"newpath\n"); if((ps->orient==g2_PS_land) && (ps->format == g2_PS_PostScript)) fprintf(ps->fp,"%d 0 translate 90 rotate\n", g2_PS_paper_size[ps->paper][0]); fputs("%%PageTrailer\n%%Page: 1 1\n", ps->fp); return 0; } /* * * Add circle at (x,y) of dimension size to bounding box * */ void g2_PS_bbox_add(g2_PS_device *ps,double x,double y,double size) { if (ps->bbox == 0) /* bbox is empty */ { ps->x1=x-size; ps->x2=x+size; ps->y1=y-size; ps->y2=y+size; ps->bbox=1; return; } if (ps->x1 > x-size) ps->x1=x-size; else if (ps->x2 < x+size) ps->x2=x+size; if (ps->y1 > y-size) ps->y1=y-size; else if (ps->y2 < y+size) ps->y2=y+size; return; } /* * * Delete PS device * */ int g2_PS_delete(int pid, void *pdp) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"\nshowpage\n"); fprintf(ps->fp,"%%%%PageTrailer\n"); fprintf(ps->fp,"%%%%EndPage\n"); fprintf(ps->fp,"%%%%Trailer\n"); if (ps->format == g2_PS_EPSF) { fprintf(ps->fp,"%%%%BoundingBox: %d %d %d %d\n", (int)floor(ps->x1),(int)floor(ps->y1), (int)ceil(ps->x2),(int)ceil(ps->y2)); } fprintf(ps->fp,"%%%%EOF\n"); fclose(ps->fp); free(ps->inks); ps->fp=NULL; /* free place */ return 0; } int g2_PS_ink(int pid, void *pdp, double red, double green, double blue) { g2_PS_device *ps=&g2_PS_dev[pid]; ps->N_ink++; if(ps->inks==NULL) ps->inks=(g2_PS_inks *)g2_malloc(ps->N_ink* sizeof(g2_PS_inks)); else ps->inks=(g2_PS_inks *)g2_realloc((void *)ps->inks, ps->N_ink* sizeof(g2_PS_inks)); ps->inks[ps->N_ink-1].r=red; ps->inks[ps->N_ink-1].g=green; ps->inks[ps->N_ink-1].b=blue; return ps->N_ink-1; } int g2_PS_pen(int pid, void *pdp, int color) { g2_PS_device *ps=&g2_PS_dev[pid]; if(color>=ps->N_ink || color<0) return -1; fprintf(ps->fp,"%.4g %.4g %.4g setrgbcolor\n", (double)ps->inks[color].r, (double)ps->inks[color].g, (double)ps->inks[color].b); ps->pen=color; return 0; } int g2_PS_set_background(int pid, void *pdp, int color) { return 0; } int g2_PS_clear_palette(int pid, void *pdp) { g2_PS_device *ps=&g2_PS_dev[pid]; free((void *)ps->inks); ps->N_ink=0; ps->inks=NULL; return 0; } int g2_PS_set_line_width(int pid, void *pdp, double w) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g setlinewidth\n", w); ps->w = w; return 0; } int g2_PS_set_dash(int pid, void *pdp, int N, double *data) { g2_PS_device *ps=&g2_PS_dev[pid]; int i; fprintf(ps->fp, "[ "); for(i=0;i0.0) fprintf(ps->fp, "%.4g ", data[i]); fprintf(ps->fp, "] 0 setdash\n"); return 0; } int g2_PS_set_font_size(int pid, void *pdp, double size) { g2_PS_device *ps=&g2_PS_dev[pid]; if(size<=0.0) return -1; fprintf(ps->fp,"%s findfont %.4g scalefont setfont\n", g2_PSFont, size); ps->size = size; return 0; } int g2_PS_clear(int pid, void *pdp) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp, "gsave showpage\n"); fprintf(ps->fp, "%%%%PageTrailer\n%%%%EndPage\n"); fprintf(ps->fp, "%%%%Page: %d %d\ngrestore newpath\n", ps->page_counter+1, ps->page_counter+1); ps->page_counter++; return 0; } int g2_PS_flush(int pid, void *pdp) { g2_PS_device *ps=&g2_PS_dev[pid]; fflush(ps->fp); return 0; } int g2_PS_plot(int pid, void *pdp, double x, double y) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g P\n", x, y); g2_PS_bbox_add(ps,x,y,1); return 0; } int g2_PS_line(int pid, void *pdp, double x1, double y1, double x2, double y2) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g M %.4g %.4g L St\n", x1, y1, x2, y2); g2_PS_bbox_add(ps,x1,y1,ps->w); g2_PS_bbox_add(ps,x2,y2,ps->w); return 0; } int g2_PS_poly_line(int pid, void *pdp, int N, double *points) { g2_PS_device *ps=&g2_PS_dev[pid]; int i; fprintf(ps->fp,"%.4g %.4g M\n", points[0], points[1]); g2_PS_bbox_add(ps,points[0], points[1],ps->w); for(i=2;i<2*N;i+=2) { fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]); g2_PS_bbox_add(ps,points[i], points[i+1],ps->w); } fprintf(ps->fp, "St\n"); return 0; } int g2_PS_polygon(int pid, void *pdp, int N, double *points) { g2_PS_device *ps=&g2_PS_dev[pid]; int i; fprintf(ps->fp,"%.4g %.4g M\n",points[0], points[1]); g2_PS_bbox_add(ps,points[0], points[1],ps->w); for(i=2;i<2*N;i+=2) { fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]); g2_PS_bbox_add(ps,points[i], points[i+1],ps->w); } fprintf(ps->fp, "%.4g %.4g L St\n", points[0], points[1]); return 0; } int g2_PS_filled_polygon(int pid, void *pdp, int N, double *points) { g2_PS_device *ps=&g2_PS_dev[pid]; int i; fprintf(ps->fp,"newpath %.4g %.4g M\n",points[0], points[1]); g2_PS_bbox_add(ps,points[0], points[1],ps->w); for(i=2;i<2*N;i+=2) { fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]); g2_PS_bbox_add(ps,points[i], points[i+1],ps->w); } fprintf(ps->fp, "%.4g %.4g L fill St\n", points[0], points[1]); return 0; } int g2_PS_rectangle(int pid, void *pdp, double x1, double y1, double x2, double y2) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g %.4g %.4g R\n", x2, y2, x1, y1); g2_PS_bbox_add(ps,x1,y1,ps->w); g2_PS_bbox_add(ps,x2,y2,ps->w); return 0; } int g2_PS_filled_rectangle(int pid, void *pdp, double x1, double y1, double x2, double y2) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g %.4g %.4g FR\n", x2, y2, x1, y1); g2_PS_bbox_add(ps,x1,y1,ps->w); g2_PS_bbox_add(ps,x2,y2,ps->w); return 0; } int g2_PS_triangle(int pid, void *pdp, double x1, double y1, double x2, double y2, double x3, double y3) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g T\n", x1,y1,x2,y2,x3,y3); g2_PS_bbox_add(ps,x1,y1,ps->w); g2_PS_bbox_add(ps,x2,y2,ps->w); g2_PS_bbox_add(ps,x3,y3,ps->w); return 0; } int g2_PS_filled_triangle(int pid, void *pdp, double x1, double y1, double x2, double y2, double x3, double y3) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g FT\n", x1,y1,x2,y2,x3,y3); g2_PS_bbox_add(ps,x1,y1,ps->w); g2_PS_bbox_add(ps,x2,y2,ps->w); g2_PS_bbox_add(ps,x3,y3,ps->w); return 0; } int g2_PS_arc(int pid, void *pdp, double x, double y, double r1, double r2, double a1, double a2) { g2_PS_device *ps=&g2_PS_dev[pid]; if(a1==a2) { a1=0; a2=360; } fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g A\n", a1, a2, r1, r2, x, y); g2_PS_bbox_add(ps,x+r1,y+r2,ps->w); g2_PS_bbox_add(ps,x-r1,y-r2,ps->w); return 0; } int g2_PS_filled_arc(int pid, void *pdp, double x, double y, double r1, double r2, double a1, double a2) { g2_PS_device *ps=&g2_PS_dev[pid]; if(a1==a2) { a1=0; a2=360; } fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g FA\n", a1, a2, r1, r2, x, y); g2_PS_bbox_add(ps,x+r1,y+r2,ps->w); g2_PS_bbox_add(ps,x-r1,y-r2,ps->w); return 0; } int g2_PS_ellipse(int pid, void *pdp, double x, double y, double r1, double r2) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"0 360 %.4g %.4g %.4g %.4g A\n", r1, r2, x, y); g2_PS_bbox_add(ps,x+r1,y+r2,ps->w); g2_PS_bbox_add(ps,x-r1,y-r2,ps->w); return 0; } int g2_PS_filled_ellipse(int pid, void *pdp, double x, double y, double r1, double r2) { g2_PS_device *ps=&g2_PS_dev[pid]; fprintf(ps->fp,"0 360 %.4g %.4g %.4g %.4g FA\n", r1, r2, x, y); g2_PS_bbox_add(ps,x+r1,y+r2,ps->w); g2_PS_bbox_add(ps,x-r1,y-r2,ps->w); return 0; } int g2_PS_draw_string(int pid, void *pdp, double x, double y, const char *text) { g2_PS_device *ps=&g2_PS_dev[pid]; fputc('(', ps->fp); for(;*text!='\0';text++) switch(*text) { case '(': fputs("\\(", ps->fp); break; case ')': fputs("\\)", ps->fp); break; case '\\': fputs("\\\\", ps->fp); break; default: fputc(*text, ps->fp); break; } fprintf(ps->fp,") %.4g %.4g S\n", x, y); g2_PS_bbox_add(ps,x,y,ps->size); g2_PS_bbox_add(ps,x+ps->size*strlen(text),y,ps->size); return 0; } g2-0.72/src/PS/g2_PS_P.h0000644000175000017500000000745310400652346013446 0ustar ljuboljubo/***************************************************************************** ** This is part of the g2 library ** Copyright (C) 1998 Ljubomir Milanovic & Horst Wagner ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as ** published by the Free Software Foundation. ** ** 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 ******************************************************************************/ #ifndef _G2_PS_P_H #define _G2_PS_P_H #include "g2_PS.h" typedef struct _g2_PS_inks { double r; /* red [0:1] */ double g; /* green [0:1] */ double b; /* blue [0:1] */ } g2_PS_inks; typedef struct _g2_PS_device { FILE *fp; /* output file pointer */ enum g2_PS_paper paper; /* paper type */ enum g2_PS_orientation orient; /* page orientation */ enum g2_PS_format format; /* PS or EPSF format */ long width,height; /* width and height for EPSF */ double x1,y1,x2,y2; /* min. Bounding Box */ int bbox; /* Bounding Box empty flag */ double w,size; /* line width/font size (required for Bbox) */ g2_PS_inks *inks; /* allocated colors */ int N_ink; /* number of allocated colors*/ int pen; /* current pen */ int page_counter; /* page counter ( Clear() ) */ } g2_PS_device; void g2_PS_bbox_add(g2_PS_device *ps,double x,double y,double size); int g2_PS_write_file_header(g2_PS_device *psd); int g2_PS_delete(int pid, void *pdp); int g2_PS_ink(int pid, void *pdp, double red, double green, double blue); int g2_PS_pen(int pid, void *pdp, int color); int g2_PS_set_background(int pid, void *pdp, int color); int g2_PS_reset_palette(int pid, void *pdp); int g2_PS_clear_palette(int pid, void *pdp); int g2_PS_set_line_width(int pid, void *pdp, double w); int g2_PS_set_dash(int pid, void *pdp, int N, double *data); int g2_PS_set_font_size(int pid, void *pdp, double size); int g2_PS_clear(int pid, void *pdp); int g2_PS_flush(int pid, void *pdp); int g2_PS_plot(int pid, void *pdp, double x, double y); int g2_PS_line(int pid, void *pdp, double x1, double y1, double x2, double y2); int g2_PS_poly_line(int pid, void *pdp, int N, double *points); int g2_PS_polygon(int pid, void *pdp, int N, double *points); int g2_PS_filled_polygon(int pid, void *pdp, int N, double *points); int g2_PS_rectangle(int pid, void *pdp, double x1, double y1, double x2, double y2); int g2_PS_filled_rectangle(int pid, void *pdp, double x1, double y1, double x2, double y2); int g2_PS_triangle(int pid, void *pdp, double x1, double y1, double x2, double y2, double x3, double y3); int g2_PS_filled_triangle(int pid, void *pdp, double x1, double y1, double x2, double y2, double x3, double y3); int g2_PS_arc(int pid, void *pdp, double x, double y, double r1, double r2, double a1, double a2); int g2_PS_filled_arc(int pid, void *pdp, double x, double y, double r1, double r2, double a1, double a2); int g2_PS_ellipse(int pid, void *pdp, double x, double y, double r1, double r2); int g2_PS_filled_ellipse(int pid, void *pdp, double x, double y, double r1, double r2); int g2_PS_draw_string(int pid, void *pdp, double x, double y, const char *text); #endif /* _G2_PS_P_H */ g2-0.72/src/PS/g2_PS.h0000644000175000017500000001003710030146520013146 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_PS_H #define _G2_PS_H #if defined(__cplusplus) extern "C" { #endif /** * g2 paper type. * * \ingroup PS */ enum g2_PS_paper { /* Name Size(Pt) */ g2_A0, /**< A0 2384 x 3370 */ g2_A1, /**< A1 1684 x 2384 */ g2_A2, /**< A2 1191 x 1684 */ g2_A3, /**< A3 842 x 1191 */ g2_A4, /**< A4 595 x 842 */ g2_A5, /**< A5 420 x 595 */ g2_A6, /**< A6 297 x 420 */ g2_A7, /**< A7 210 x 297 */ g2_A8, /**< A8 148 x 210 */ g2_A9, /**< A9 105 x 148 */ g2_B0, /**< B0 2920 x 4127 */ g2_B1, /**< B1 2064 x 2920 */ g2_B2, /**< B2 1460 x 2064 */ g2_B3, /**< B3 1032 x 1460 */ g2_B4, /**< B4 729 x 1032 */ g2_B5, /**< B5 516 x 729 */ g2_B6, /**< B6 363 x 516 */ g2_B7, /**< B7 258 x 363 */ g2_B8, /**< B8 181 x 258 */ g2_B9, /**< B9 127 x 181 */ g2_B10, /**< B10 91 x 127 */ g2_Comm_10_Envelope, /**< Comm #10 Envelope 297 x 684 */ g2_C5_Envelope, /**< C5 Envelope 461 x 648 */ g2_DL_Envelope, /**< DL Envelope 312 x 624 */ g2_Folio, /**< Folio 595 x 935 */ g2_Executive, /**< Executive 522 x 756 */ g2_Letter, /**< Letter 612 x 792 */ g2_Legal, /**< Legal 612 x 1008 */ g2_Ledger, /**< Ledger 1224 x 792 */ g2_Tabloid /**< Tabloid 792 x 1224 */ }; /** * g2 paper orientation. * * \ingroup PS */ enum g2_PS_orientation { g2_PS_land, /**< landscape */ g2_PS_port /**< portrait */ }; /* * g2 Format */ enum g2_PS_format { g2_PS_PostScript, /* PostScript */ g2_PS_EPSF, /* EPSF format */ g2_PS_EPSF_CLIP /* EPSF format with predefined Bounding Box*/ }; /* Common Library header for DLL and application */ #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #define G2L __declspec( dllexport) #else /* Use DLL */ #define G2L __declspec( dllimport) #endif #else /* Use static win32 */ #define G2L #endif #else /* Use non-win32 */ #define G2L #endif G2L int g2_open_PS(const char *file_name, enum g2_PS_paper paper, enum g2_PS_orientation orientation); G2L int g2_open_EPSF(const char *file_name); G2L int g2_open_EPSF_CLIP(const char *file_name, long width, long height); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_PS_H */ g2-0.72/src/g2_graphic_pd.c0000644000175000017500000003703710206723716014423 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include "g2_funix.h" #include "g2_virtual_device.h" #include "g2_graphic_pd.h" #include "g2_control_pd.h" #include "g2_util.h" #ifndef PI #define PI 3.14159265358979323846 #endif /* PI */ /* * * Plot (physical device) * */ void g2_plot_pd(g2_physical_device *pd, double x, double y) { int ix, iy; double dx, dy; if(pd->ff[g2_Plot].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); pd->ff[g2_Plot].fun(pd->pid, pd->pdp, ix, iy); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); pd->ff[g2_Plot].fun(pd->pid, pd->pdp, dx, dy); break; } } else { /* emulate ... with .... */ } } /* * * Draw line (low_level) * */ void g2_line_pd(g2_physical_device *pd, double x1, double y1, double x2, double y2) { int ix1, iy1, ix2, iy2; double dx1, dy1, dx2, dy2; if(pd->ff[g2_Line].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x1, y1, &ix1, &iy1); g2_uc2pdc_int(pd, x2, y2, &ix2, &iy2); pd->ff[g2_Line].fun(pd->pid, pd->pdp, ix1, iy1, ix2, iy2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x1, y1, &dx1, &dy1); g2_uc2pdc_double(pd, x2, y2, &dx2, &dy2); pd->ff[g2_Line].fun(pd->pid, pd->pdp, dx1, dy1, dx2, dy2); break; } } else { /* emulate ... with .... */ } } /* * * Draw poly line (physical device) * */ void g2_poly_line_pd(g2_physical_device *pd, int N, double *points) { int i; int *ipt; double *dpt; if(pd->ff[g2_PolyLine].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: ipt=g2_malloc(2*N*sizeof(int)); for(i=0;i<2*N;i+=2) g2_uc2pdc_int(pd, points[i+0], points[i+1], ipt+i, ipt+i+1); pd->ff[g2_PolyLine].fun(pd->pid, pd->pdp, N, ipt); free(ipt); break; case g2_DoubleCoor: dpt=g2_malloc(2*N*sizeof(double)); for(i=0;i<2*N;i+=2) g2_uc2pdc_double(pd, points[i+0], points[i+1], dpt+i, dpt+i+1); pd->ff[g2_PolyLine].fun(pd->pid, pd->pdp, N, dpt); free(dpt); break; } } else { for (i=0;iff[g2_Triangle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x1, y1, &ix1, &iy1); g2_uc2pdc_int(pd, x2, y2, &ix2, &iy2); g2_uc2pdc_int(pd, x3, y3, &ix3, &iy3); pd->ff[g2_Triangle].fun(pd->pid, pd->pdp, ix1, iy1, ix2, iy2, ix3, iy3); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x1, y1, &dx1, &dy1); g2_uc2pdc_double(pd, x2, y2, &dx2, &dy2); g2_uc2pdc_double(pd, x3, y3, &dx3, &dy3); pd->ff[g2_Triangle].fun(pd->pid, pd->pdp, dx1, dy1, dx2, dy2, dx3, dy3); } } else { g2_line_pd(pd, x1, y1, x2, y2); /* emulate triangle with lines */ g2_line_pd(pd, x2, y2, x3, y3); g2_line_pd(pd, x3, y3, x1, y1); } } /* * * Filled triangle (physical device) * */ void g2_filled_triangle_pd(g2_physical_device *pd, double x1, double y1, double x2, double y2, double x3, double y3) { int ix1, iy1, ix2, iy2, ix3, iy3; double dx1, dy1, dx2, dy2, dx3, dy3; if(pd->ff[g2_FilledTriangle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x1, y1, &ix1, &iy1); g2_uc2pdc_int(pd, x2, y2, &ix2, &iy2); g2_uc2pdc_int(pd, x3, y3, &ix3, &iy3); pd->ff[g2_FilledTriangle].fun(pd->pid, pd->pdp, ix1, iy1, ix2, iy2, ix3, iy3); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x1, y1, &dx1, &dy1); g2_uc2pdc_double(pd, x2, y2, &dx2, &dy2); g2_uc2pdc_double(pd, x3, y3, &dx3, &dy3); pd->ff[g2_FilledTriangle].fun(pd->pid, pd->pdp, dx1, dy1, dx2, dy2, dx3, dy3); } } else { double Triangle[6]; /* emulate FilledTriangle with FilledPolygon */ Triangle[0] = x1; Triangle[1] = y1; Triangle[2] = x2; Triangle[3] = y2; Triangle[4] = x3; Triangle[5] = y3; g2_filled_polygon_pd(pd, 3, Triangle); } } /* * * Rectangle (physical device) * */ void g2_rectangle_pd(g2_physical_device *pd, double x1, double y1, double x2, double y2) { int ix1, iy1, ix2, iy2; double dx1, dy1, dx2, dy2; if(pd->ff[g2_Rectangle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x1, y1, &ix1, &iy1); g2_uc2pdc_int(pd, x2, y2, &ix2, &iy2); g2_sort2_i(&ix1, &ix2); g2_sort2_i(&iy1, &iy2); pd->ff[g2_Rectangle].fun(pd->pid, pd->pdp, ix1, iy1, ix2, iy2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x1, y1, &dx1, &dy1); g2_uc2pdc_double(pd, x2, y2, &dx2, &dy2); g2_sort2_d(&dx1, &dx2); g2_sort2_d(&dy1, &dy2); pd->ff[g2_Rectangle].fun(pd->pid, pd->pdp, dx1, dy1, dx2, dy2); break; } } else { g2_line_pd(pd, x1, y1, x1, y2); /* emulate rectangle with lines */ g2_line_pd(pd, x1, y1, x2, y1); g2_line_pd(pd, x2, y1, x2, y2); g2_line_pd(pd, x1, y2, x2, y2); } } /* * * Filled rectangle (physical device) * */ void g2_filled_rectangle_pd(g2_physical_device *pd, double x1, double y1, double x2, double y2) { int ix1, iy1, ix2, iy2; double dx1, dy1, dx2, dy2; if(pd->ff[g2_FilledRectangle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x1, y1, &ix1, &iy1); g2_uc2pdc_int(pd, x2, y2, &ix2, &iy2); g2_sort2_i(&ix1, &ix2); g2_sort2_i(&iy1, &iy2); pd->ff[g2_FilledRectangle].fun(pd->pid, pd->pdp, ix1, iy1, ix2, iy2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x1, y1, &dx1, &dy1); g2_uc2pdc_double(pd, x2, y2, &dx2, &dy2); g2_sort2_d(&dx1, &dx2); g2_sort2_d(&dy1, &dy2); pd->ff[g2_FilledRectangle].fun(pd->pid, pd->pdp, dx1, dy1, dx2, dy2); break; } } else { double Rectangle[8]; /* emulate FilledRectangle with FilledPolygon */ Rectangle[0] = x1; Rectangle[1] = y1; Rectangle[2] = x2; Rectangle[3] = y1; Rectangle[4] = x2; Rectangle[5] = y2; Rectangle[6] = x1; Rectangle[7] = y2; g2_filled_polygon_pd(pd,4,Rectangle); } } /* * * Polygon (physical device) * */ void g2_polygon_pd(g2_physical_device *pd, int N, double *points) { int i; int *ipt; double *dpt; if(pd->ff[g2_Polygon].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: ipt=g2_malloc(2*N*sizeof(int)); for(i=0;i<2*N;i+=2) g2_uc2pdc_int(pd, points[i+0], points[i+1], ipt+i, ipt+i+1); pd->ff[g2_Polygon].fun(pd->pid, pd->pdp, N, ipt); free(ipt); break; case g2_DoubleCoor: dpt=g2_malloc(2*N*sizeof(double)); for(i=0;i<2*N;i+=2) g2_uc2pdc_double(pd, points[i+0], points[i+1], dpt+i, dpt+i+1); pd->ff[g2_Polygon].fun(pd->pid, pd->pdp, N, dpt); free(dpt); break; } } else { for (i=0;iff[g2_FilledPolygon].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: ipt=g2_malloc(2*N*sizeof(int)); for(i=0;i<2*N;i+=2) g2_uc2pdc_int(pd, points[i+0], points[i+1], ipt+i, ipt+i+1); pd->ff[g2_FilledPolygon].fun(pd->pid, pd->pdp, N, ipt); free(ipt); break; case g2_DoubleCoor: dpt=g2_malloc(2*N*sizeof(double)); for(i=0;i<2*N;i+=2) g2_uc2pdc_double(pd, points[i+0], points[i+1], dpt+i, dpt+i+1); pd->ff[g2_FilledPolygon].fun(pd->pid, pd->pdp, N, dpt); free(dpt); break; } } else { /* emulate filled polygon with .... */ } } /* * * Ellipse (physical device) * */ void g2_ellipse_pd(g2_physical_device *pd, double x, double y, double r1, double r2) { int ix, iy, ir1, ir2; double dx, dy, dr1, dr2; if(pd->ff[g2_Ellipse].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r1, r2, &ir1, &ir2); pd->ff[g2_Ellipse].fun(pd->pid, pd->pdp, ix, iy, ir1, ir2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r1, r2, &dr1, &dr2); pd->ff[g2_Ellipse].fun(pd->pid, pd->pdp, dx, dy, dr1, dr2); break; } } else { g2_arc_pd(pd, x, y, r1, r2, 0., 360.); /* emulate ellipse with arc */ } } /* * * Filled ellipse (physical device) * */ void g2_filled_ellipse_pd(g2_physical_device *pd, double x, double y, double r1, double r2) { int ix, iy, ir1, ir2; double dx, dy, dr1, dr2; if(pd->ff[g2_FilledEllipse].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r1, r2, &ir1, &ir2); pd->ff[g2_FilledEllipse].fun(pd->pid, pd->pdp, ix, iy, ir1, ir2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r1, r2, &dr1, &dr2); pd->ff[g2_FilledEllipse].fun(pd->pid, pd->pdp, dx, dy, dr1, dr2); break; } } else { g2_filled_arc_pd(pd, /* emulate filledellipse with filled arc */ x, y, r1, r2, 0., 360.); } } /* * * Circle (physical device) * */ void g2_circle_pd(g2_physical_device *pd, double x, double y, double r) { int ix, iy, ir; double dx, dy, dr; if(pd->ff[g2_Circle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r, 0, &ir, NULL); pd->ff[g2_Circle].fun(pd->pid, pd->pdp, ix, iy, ir); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r, 0, &dr, NULL); pd->ff[g2_Circle].fun(pd->pid, pd->pdp, dx, dy, dr); break; } } else { g2_ellipse_pd(pd, x, y, r, r); /* emulate circle with ellipse */ } } /* * * Filled circle (physical device) * */ void g2_filled_circle_pd(g2_physical_device *pd, double x, double y, double r) { int ix, iy, ir; double dx, dy, dr; if(pd->ff[g2_FilledCircle].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r, 0, &ir, NULL); pd->ff[g2_FilledCircle].fun(pd->pid, pd->pdp, ix, iy, ir); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r, 0, &dr, NULL); pd->ff[g2_FilledCircle].fun(pd->pid, pd->pdp, dx, dy, dr); break; } } else { g2_filled_ellipse_pd(pd, x, y, r, r); /* emulate */ } } /* * * Arc (physical device) * */ void g2_arc_pd(g2_physical_device *pd, double x, double y, double r1, double r2, double a1, double a2) { int ix, iy, ir1, ir2; double dx, dy, dr1, dr2; if(pd->ff[g2_Arc].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r1, r2, &ir1, &ir2); pd->ff[g2_Arc].fun(pd->pid, pd->pdp, ix, iy, ir1, ir2, a1, a2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r1, r2, &dr1, &dr2); pd->ff[g2_Arc].fun(pd->pid, pd->pdp, dx, dy, dr1, dr2, a1, a2); break; } } else { double a, da, *pt; /* emulate arc */ int N, i; N=(a2==a1)?360:(int)fabs(a2-a1)+8; a=a1*2.*PI/360.; da=((a2>a1)? (a2-a1):360.-(a1-a2))*2.*PI/360./(N-1); pt=g2_malloc(2*N*sizeof(double)); for(i=0;iff[g2_FilledArc].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); g2_us2pds_int(pd, r1, r2, &ir1, &ir2); pd->ff[g2_FilledArc].fun(pd->pid, pd->pdp, ix, iy, ir1, ir2, a1, a2); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); g2_us2pds_double(pd, r1, r2, &dr1, &dr2); pd->ff[g2_FilledArc].fun(pd->pid, pd->pdp, dx, dy, dr1, dr2, a1, a2); break; } } else { double a, da, *pt; /* emulate filled arc */ int N, i; N=(a2==a1)?360:(int)fabs(a2-a1)+8; a=a1*2.*PI/360.; da=((a2>a1)? (a2-a1):360.-(a1-a2))*2.*PI/360./(N-1); pt=g2_malloc(2*(N+2)*sizeof(double)); pt[0]=x; pt[1]=y; for(i=0;iff[g2_String].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); pd->ff[g2_String].fun(pd->pid, pd->pdp, ix, iy, text); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); pd->ff[g2_String].fun(pd->pid, pd->pdp, dx, dy, text); break; } } else { /* emulate ... with .... */ } } void g2_image_pd(g2_physical_device *pd, double x, double y, int x_size, int y_size, int *pens) { int ix, iy; double dx, dy; if(pd->ff[g2_Image].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: g2_uc2pdc_int(pd, x, y, &ix, &iy); pd->ff[g2_Image].fun(pd->pid, pd->pdp, ix, iy, x_size, y_size, pens); break; case g2_DoubleCoor: g2_uc2pdc_double(pd, x, y, &dx, &dy); pd->ff[g2_Image].fun(pd->pid, pd->pdp, dx, dy, x_size, y_size, pens); break; } } else { for(ix=0;ix #include "g2.h" #include "g2_funix.h" #include "g2_device.h" #include "g2_util.h" /** * \ingroup interface * \defgroup device devices control */ /** * * Close and delete a device. * * \param dev device * * \ingroup device */ void g2_close(int dev) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_close: Warning! No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: devp->d.pd->ff[g2_Delete].fun(devp->d.pd->pid, devp->d.pd->pdp); break; case g2_VD: while(devp->d.vd->N>0) /* close all devices */ g2_close(devp->d.vd->dix[devp->d.vd->N-1]); break; case g2_ILLEGAL: break; case g2_NDEV: break; } g2_destroy_device(dev); /* destroy device */ } /** * * Set auto flush mode for device \a dev. Auto flush mode means that after each graphical * operation g2 library automatically calls flush function to ensure that output is realy * displayed. However, freqent flushing decreases performance. Alternative is to flush * output when needed by calling g2_flush function. * * \param dev device * \param on_off 1-on 0-off * * \ingroup device */ void g2_set_auto_flush(int dev, int on_off) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { g2_log(Error, "g2: Error! g2_set_auto_flush: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: break; case g2_VD: for(i=0;id.vd->N;i++) { g2_set_auto_flush(devp->d.vd->dix[i], on_off); } break; case g2_ILLEGAL: break; case g2_NDEV: break; } devp->auto_flush=on_off; /* set auto flush for all (vd and pd) devices */ __g2_last_device=dev; } /** * * Set the user coordinate system. * * \param dev device * \param x_origin x coordinate of the new origin (expressed in the default coordinate system) * \param y_origin x coordinate of the new origin (expressed in the default coordinate system) * \param x_mul x scaling factor * \param y_mul y scaling factor * * \ingroup device */ void g2_set_coordinate_system(int dev, double x_origin, double y_origin, double x_mul, double y_mul) { g2_device *devp; int i; if(x_mul==0.0 || y_mul==0.0) { fprintf(stderr, "g2_set_coordinate_system: Error! Multiplicator can not be 0.0"); return; } if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_set_coordinate_system: Warning! No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: devp->d.pd->x_origin=x_origin; devp->d.pd->y_origin=y_origin; devp->d.pd->x_mul=x_mul; devp->d.pd->y_mul=y_mul; break; case g2_VD: for(i=0;id.vd->N;i++) g2_set_coordinate_system(devp->d.vd->dix[i], x_origin, y_origin, x_mul, y_mul); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Get the last accessed device. G2LD macro is defined as the g2_ld function. * * \code * g2_open_X11(100, 100); * g2_plot(G2LD, 50, 50); * \endcode * * \ingroup device */ int g2_ld(void) { return __g2_last_device; } /** * * Set the last accessed device. See also g2_ld() function. * * \param dev device * * \ingroup device */ void g2_set_ld(int dev) { if(!g2_device_exist(dev)) { fprintf(stderr, "g2_set_lsd: Warning! No such device: %d\n", dev); return; } __g2_last_device=dev; } g2-0.72/src/Win32/0000755000175000017500000000000010515227220012447 5ustar ljuboljubog2-0.72/src/Win32/g2_win32_funix.h0000644000175000017500000000462610400652346015377 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_WIN32_FUNIX_H #define _G2_WIN32_FUNIX_H #include "g2_win32_P.h" #include "g2_physical_device.h" const g2_funix_fun g2_win32_funix[] = { { g2_Delete, g2_win32_Delete }, { g2_Ink, g2_win32_Ink }, { g2_Pen, g2_win32_Pen }, { g2_SetBackground, g2_win32_SetBackground }, { g2_ClearPalette, g2_win32_ClearPalette }, { g2_SetLineWidth, g2_win32_SetLineWidth }, { g2_SetDash, g2_win32_SetDash }, { g2_SetFontSize, g2_win32_SetFontSize }, { g2_Clear, g2_win32_Clear }, { g2_Flush, g2_win32_Flush }, { g2_Save, g2_win32_Flush }, { g2_Plot, g2_win32_Plot }, { g2_Line, g2_win32_Line }, { g2_PolyLine, g2_win32_PolyLine }, { g2_Polygon, g2_win32_Polygon }, { g2_FilledPolygon, g2_win32_FilledPolygon }, { g2_Rectangle, g2_win32_Rectangle }, { g2_FilledRectangle, g2_win32_FilledRectangle }, { g2_Arc, g2_win32_Arc }, { g2_FilledArc, g2_win32_FilledArc }, { g2_Ellipse, g2_win32_Ellipse }, { g2_FilledEllipse, g2_win32_FilledEllipse }, { g2_Circle, NULL }, { g2_FilledCircle, NULL }, { g2_String, g2_win32_DrawString }, { g2_QueryPointer, g2_win32_QueryPointer }, { g2_FUNIX_NULL, NULL } }; #endif /* _G2_WIN32_FUNIX_H */ g2-0.72/src/Win32/g2res.c0000644000175000017500000000015606650611564013654 0ustar ljuboljubo#include BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID lpv) { return 1; }g2-0.72/src/Win32/g2_Win32.ico0000644000175000017500000000137606650611564014461 0ustar ljuboljubo è( @€€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ|ÌÌÌȈˆˆˆˆy™™wˆˆ‡ÌÌÌȈˆˆ‡—ˆˆˆˆ‰ˆˆÌÌÌȈˆˆ‰ˆˆˆˆˆˆ‡ˆŒˆˆ‡ˆˆˆ™ˆˆˆˆˆˆ‰ˆˆÈˆˆˆˆˆ™ˆˆˆˆˆˆ‰˜ˆŒˆˆˆˆˆ‰xˆˆˆˆˆ™˜ˆŒxˆˆˆˆˆ™™™™™™™˜ˆˆÈˆˆˆˆ‰™™™™™™™ˆˆˆÌˆˆˆˆ™™™™™™™˜ˆˆˆÌxˆˆˆ™™™™™™xˆˆˆˆÌȈˆˆy˜ˆˆˆˆˆˆŒˆ‡ÌȈˆˆ‰˜ˆˆˆˆˆˆŒÌÌÌxˆˆˆˆ˜ˆˆˆˆˆˆˆÌÌ̈ˆˆˆˆ‡™™—ˆˆˆˆ‡Ìxˆˆˆˆˆy™ˆ‰™ˆˆˆˆˆˆˆˆˆˆ‡™˜ˆˆ™˜ˆˆˆˆˆˆˆˆˆ‰™˜ˆˆ™™ˆˆˆˆˆˆˆˆˆy™˜ˆˆ™™xˆˆˆˆˆˆˆˆ™™˜ˆˆ™™˜ˆˆˆˆˆˆˆˆ™™˜ˆˆ™™˜ˆˆˆˆˆˆˆˆy™˜ˆˆ™™xˆˆˆˆˆˆˆˆ‰™˜ˆˆ™™ˆˆˆˆˆˆˆˆˆˆ™˜ˆˆ™—ˆˆˆˆˆˆˆˆˆˆ‰™ˆ‰™™™˜ˆˆˆˆˆˆˆˆˆ‡™™™™™˜ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆg2-0.72/src/Win32/g2_win32.h0000644000175000017500000000332610400652346014162 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_WIN32_H #define _G2_WIN32_H #if defined(__cplusplus) extern "C" { #endif #include // Common Library header for DLL and application #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #define LINKDLL __declspec( dllexport) #else /* Use DLL */ #define LINKDLL __declspec( dllimport) #endif #else /* Use static win32 */ #define LINKDLL #endif #else /* Use non-win32 */ #define LINKDLL #endif /** * Window type * * \ingroup win32 */ enum g2_win32_type { g2_win32, /**< regular window */ g2_wmf32 /**< windows meta file */ }; LINKDLL int g2_open_win32(int width, int height, const char *filename,int type); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_WIN32_H */ g2-0.72/src/Win32/g2_win32_P.h0000644000175000017500000001014610400652346014437 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_WIN32_P_H #define _G2_WIN32_P_H #include "windows.h" #include extern HMENU hmenu; extern HANDLE ghModule; extern HINSTANCE g2res_DLL; typedef struct g2_win32_STRUCT { HANDLE hThread; HWND hwndThreadWindow; HANDLE hinst; HBITMAP hBitmap; HDC hMemDC; HPEN hPen; HPEN hNullPen; HBRUSH hBrush; HFONT hFont; int nWidth; int nHeight; int x; int y; int NoOfInks; int PenWidth; int PenStyle; DWORD *PenDash; int Pen; int BkColor; COLORREF PenColor; COLORREF *Inks; char *title; int type; int messageloop; } g2_win32_STRUCT; BOOL SaveBitmapAs(HWND hWnd,struct XPGTHREADINFO *pThreadInfo); LRESULT CALLBACK g2_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); long WINAPI g2_StartThread(struct g2_win32_STRUCT *pdp); void errhandler(LPSTR errtxt,HWND hwnd); int g2_win32_init_win32(int pid, void *pdp, int vid, int width,int height); int g2_win32_init_win32X(int pid, void *pdp, int width, int height, int xposition, int yposition, char *windowname, char *iconname, char *icondata, int iconwidth, int iconheight); int g2_win32_Delete(int pid, void *pdp); int g2_win32_Clear(int pid, void *pdp); int g2_win32_Flush(int pid, void *pdp); int g2_win32_Ink(int pid, void *pdp, double red, double green, double blue); int g2_win32_ClearPalette(int pid, void *pdp); int g2_win32_ResetPalette(int pid, void *pdp); int g2_win32_SetBackground(int pid, void *pdp, int color); int g2_win32_Pen(int pid, void *pdp, int color); int g2_win32_Paper(int pid, void *pdp, int color); int g2_win32_SetLineWidth(int pid, void *pdp, int w); int g2_win32_SetDash(int pid, void *pdp, int n, int *data); int g2_win32_SetFontSize(int pid, void *pdp, int size); int g2_win32_Plot(int pid, void *pdp, int x, int y); int g2_win32_Line(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_win32_PolyLine(int pid, void *pdp, int N, int *p); int g2_win32_Polygon(int pid, void *pdp, int N, int *p); int g2_win32_FilledPolygon(int pid, void *pdp, int N, int *p); int g2_win32_Triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_win32_FilledTriangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_win32_Rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_win32_FilledRectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_win32_Circle(int pid, void *pdp, int x, int y, int r); int g2_win32_FilledCircle(int pid, void *pdp, int x, int y, int r); int g2_win32_Arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_win32_FilledArc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_win32_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_win32_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_win32_DrawString(int pid, void *pdp, int x, int y, const char *text); int g2_win32_QueryPointer(int pid, void *pdp, int *x, int *y, unsigned int *button); int g2_win32_AllocateBasicColors(int pid, void *pdp); int g2_win32_Cleanup(int pid, void *pdp); #endif /* _G2_WIN32_P_H */ g2-0.72/src/Win32/g2_win32.rc0000644000175000017500000000724306656073274014360 0ustar ljuboljubo//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON1 ICON DISCARDABLE "g2_Win32.ico" ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN "ABOUTBOX", DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 156 TOPMARGIN, 7 BOTTOMMARGIN, 91 END END #endif // APSTUDIO_INVOKED #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "g2_win32\0" VALUE "FileVersion", "1, 0, 0, 1\0" VALUE "InternalName", "g2_win32\0" VALUE "LegalCopyright", "Copyright © 1996-1998\0" VALUE "OriginalFilename", "g2_win32\0" VALUE "ProductName", "g2_win32\0" VALUE "ProductVersion", "1, 0, 0, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END #endif // !_MAC ///////////////////////////////////////////////////////////////////////////// // // Dialog // ABOUTBOX DIALOG DISCARDABLE 0, 0, 163, 98 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "About g2" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,55,71,50,14 CTEXT "g2 version 0.40\n\n (c) 1998-1999\n Ljubomir Milanovic\nHorst Wagner", IDC_STATIC,27,7,105,55 ICON IDI_ICON1,IDC_STATIC,9,9,20,20 END #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Menu // G2WIN32 MENU DISCARDABLE BEGIN POPUP "File" BEGIN MENUITEM "Copy", ID_FILE_COPY MENUITEM "Close", ID_FILE_CLOS MENUITEM SEPARATOR MENUITEM "About", ID_FILE_ABOUT END END #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED g2-0.72/src/Win32/resource.h0000644000175000017500000000123506650611564014465 0ustar ljuboljubo//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by g2_win32.rc // #define IDI_ICON1 101 #define IDD_DIALOG1 104 #define ID_FILE_SAVEASBMP 40002 #define ID_FILE_COPY 40003 #define ID_FILE_ABOUT 40005 #define ID_FILE_CLOS 40006 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 107 #define _APS_NEXT_COMMAND_VALUE 40007 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif g2-0.72/src/Win32/g2_win32_thread.c0000644000175000017500000001271510146026012015476 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include #include "g2_win32_P.h" #include "resource.h" int WINAPI About(HWND hDlg,UINT message, WPARAM wParam,LPARAM lParam) { switch (message){ case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (wParam == IDOK) EndDialog(hDlg,wParam); break; } return FALSE; } LRESULT CALLBACK g2_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hDC; RECT Rect; struct g2_win32_STRUCT *pdp; pdp = (struct g2_win32_STRUCT *)GetWindowLong(hWnd, GWL_USERDATA); switch (message) { case WM_PAINT: if (pdp == NULL) break; if (pdp->hBitmap == NULL) break; // printf("Received WM_PAINT\n"); hDC = BeginPaint (hWnd, &ps); GetClientRect(hWnd,&Rect); BitBlt( hDC, Rect.left, Rect.top, Rect.right - Rect.left, Rect.bottom - Rect.top, pdp->hMemDC, 0, 0, SRCCOPY ); EndPaint (hWnd, &ps); return 0L; case WM_DESTROY: // printf("Received WM_DESTROY\n"); g2_win32_Cleanup(0,pdp); ExitThread(0); return 0L; case WM_COMMAND: switch(LOWORD(wParam)){ case ID_FILE_COPY: if (OpenClipboard(hWnd)) { HBITMAP hBitmap; EmptyClipboard(); if (pdp->hBitmap) { if (hBitmap = CopyImage(pdp->hBitmap,IMAGE_BITMAP, 0,0,LR_COPYRETURNORG)); SetClipboardData(CF_BITMAP, hBitmap); } CloseClipboard(); } return 0L; case ID_FILE_ABOUT: if(DialogBox(g2res_DLL,"ABOUTBOX",hWnd,(DLGPROC)About) == -1) errhandler("Failed to create Dialogbox",NULL); return 0L; case ID_FILE_CLOS: g2_win32_Delete(0,pdp); return 0L; default: return (DefWindowProc(hWnd, message, wParam, lParam)); } default: return (DefWindowProc(hWnd, message, wParam, lParam)); } /* we should never get here */ return -1; } long WINAPI g2_StartThread(struct g2_win32_STRUCT *pdp) { RECT Rect; HWND hWnd; MSG msg; HDC hDC; HMENU hmenu; DWORD style; RECT frame; hmenu = NULL; if (g2res_DLL != NULL) { hmenu = LoadMenu(g2res_DLL,"G2WIN32"); if (hmenu == NULL) errhandler("Load menu failed",NULL); } style = WS_POPUPWINDOW |WS_OVERLAPPED | WS_CAPTION | WS_MINIMIZEBOX; frame.left = 0; frame.top = 0; frame.right = pdp->nWidth; frame.bottom = pdp->nHeight - ((hmenu==NULL)?GetSystemMetrics(SM_CYMENU):0); AdjustWindowRect(&frame,style,1); /* Save the instance handle in static variable, which will be used in */ /* many subsequence calls from this application to Windows. */ /* Create a main window for this application instance. */ pdp->hinst = GetModuleHandle(NULL); hWnd = CreateWindow( "g2Window", // See RegisterClass() call. pdp->title, // Text for window title bar. style, pdp->x, pdp->y, frame.right - frame.left, // width frame.bottom - frame.top, // height NULL, // Overlapped windows have no parent. hmenu, // Use the window class menu. 0, // This instance owns this window. NULL // Pointer not needed. ); // If window could not be created, return "failure" if (!hWnd) { errhandler("CreateWindow",NULL); return (FALSE); // return failure :(( } #define WIDTH(x) (x.right-x.left+1) // Macro to get rect width #define HEIGHT(x) (x.bottom-x.top+1) // Macro to get rect height // How big is the window? GetClientRect( hWnd, &Rect ); // Need a DC hDC = GetDC( hWnd ); SetBkColor(hDC,RGB(255,255,255)); // Create a bitmap big enough to hold the window's image pdp->hBitmap = CreateCompatibleBitmap( hDC, WIDTH(Rect), HEIGHT(Rect) ); // printf("memdc size: %d %d\n",WIDTH(Rect),HEIGHT(Rect)); // Create MemDC pdp->hMemDC = CreateCompatibleDC(hDC); SelectObject( pdp->hMemDC, pdp->hBitmap ); // clean up ReleaseDC( hWnd, hDC ); #undef WIDTH #undef HEIGHT SetWindowLong(hWnd, GWL_USERDATA, (long)pdp); pdp->hwndThreadWindow = hWnd; // Make the window visible; update its client area; and return "success" ShowWindow(hWnd, SW_SHOWDEFAULT); // Show the window UpdateWindow(hWnd); // Sends WM_PAINT message //printf("pdp->messageloop ->= 1;\n"); pdp->messageloop = 1; //printf("pdp->messageloop = 1;\n"); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (TRUE); // Returns success :) } g2-0.72/src/Win32/g2_win32.c0000644000175000017500000004204610175001363014153 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_util.h" #include "g2_config.h" #include "g2_win32.h" #include "g2_win32_P.h" #include "g2_win32_funix.h" #include "resource.h" /* Global Definitions */ int g2_win32_registered = FALSE; HINSTANCE g2res_DLL; /* Instance of the resource DLL */ #define PDP ((struct g2_win32_STRUCT *)pdp) #ifndef PI #define PI 3.14159265358979323846 #endif /* PI */ #define sgn(x) (x>0?1:x?-1:0) /* someday their might be a DLL version of g2 */ #ifdef G2DLL BOOL WINAPI DllMain( HANDLE hModule, DWORD fdwreason, LPVOID lpReserved ) { switch(fdwreason) { case DLL_PROCESS_ATTACH: // The DLL is being mapped into process's address space // Do any required initialization on a per application basis, return FALSE if failed MessageBox(NULL, "DLL Process Attach", "DLL Message 1", MB_OK); break; case DLL_THREAD_ATTACH: // A thread is created. Do any required initialization on a per thread basis MessageBox(NULL, "DLL Thread Attach", "DLL Message 1", MB_OK); break; case DLL_THREAD_DETACH: // Thread exits with cleanup MessageBox(NULL, "DLL Thread Detach", "DLL Message 1", MB_OK); break; case DLL_PROCESS_DETACH: // The DLL unmapped from process's address space. Do necessary cleanup MessageBox(NULL, "DLL Process Detach", "DLL Message 1", MB_OK); break; default: MessageBox(NULL, "DLL default", "DLL Message 1", MB_OK); } return TRUE; } #endif g2_win32_SetPen(int pid, void *pdp) { HGDIOBJ oldpen; LOGBRUSH logBrush ; logBrush.lbStyle = PS_SOLID; logBrush.lbColor = PDP->Inks[PDP->Pen]; logBrush.lbHatch = 0 ; oldpen = PDP->hPen; PDP->hPen = ExtCreatePen (logBrush.lbStyle | PS_GEOMETRIC | PS_ENDCAP_FLAT | PS_JOIN_BEVEL | (PDP->PenStyle > 0)*PS_USERSTYLE, PDP->PenWidth, &logBrush, PDP->PenStyle , PDP->PenDash) ; if (PDP->hPen != NULL) { SelectObject(PDP->hMemDC,PDP->hPen); /* if (PDP->type == g2_win32)*/ DeleteObject(oldpen); } else { errhandler("Pen",NULL); PDP->hPen = oldpen; } oldpen = PDP->hNullPen; PDP->hNullPen = CreatePen(PS_SOLID,1,PDP->Inks[PDP->Pen]); if (PDP->hNullPen != NULL) { /* if (PDP->type == g2_win32)*/ DeleteObject(oldpen); } else { errhandler("Pen",NULL); PDP->hNullPen = oldpen; } return 0; } int g2_win32_Cleanup(int pid, void *pdp) { struct g2_win32_STRUCT *thispdp; thispdp = pdp; g2_win32_ClearPalette(pid,pdp); if (PDP->hBrush != NULL) DeleteObject(PDP->hBrush); if (PDP->hPen != NULL) DeleteObject(PDP->hPen); if (PDP->hNullPen != NULL) DeleteObject(PDP->hPen); if (PDP->hFont != NULL) DeleteObject(PDP->hFont); if (PDP->hBitmap != NULL) DeleteObject(PDP->hBitmap); if (PDP->hMemDC != NULL) DeleteDC(PDP->hMemDC); if (PDP->PenDash != NULL) free(PDP->PenDash); free(thispdp); return 0; } int g2_win32_Delete(int pid, void *pdp) { switch(PDP->type) { case g2_win32: SendMessage(PDP->hwndThreadWindow,WM_CLOSE,(WPARAM)NULL,(LPARAM)NULL); break; case g2_wmf32: { CloseEnhMetaFile(PDP->hMemDC); g2_win32_Cleanup(pid,pdp); break; } } return 0; } int g2_win32_Clear(int pid, void *pdp) { int OldPen; OldPen = PDP->Pen; g2_win32_Pen(pid,pdp,PDP->BkColor); g2_win32_FilledRectangle(pid,pdp,0,0,PDP->nWidth,PDP->nHeight); g2_win32_Pen(pid,pdp,OldPen); return 0; } int g2_win32_Flush(int pid, void *pdp) { InvalidateRect(PDP->hwndThreadWindow, (RECT *)NULL, TRUE); return 0; } int g2_win32_Pen(int pid, void *pdp, int color) { struct tagLOGBRUSH logbrush; HGDIOBJ oldbrush; if(color>=PDP->NoOfInks || color<0) { fprintf(stderr,"g2_WIN32: Ink %d not defined\n",color); return -1; } PDP->Pen = color; PDP->PenColor = PDP->Inks[color]; g2_win32_SetPen(pid,pdp); logbrush.lbStyle = BS_SOLID; logbrush.lbColor = PDP->PenColor; oldbrush = PDP->hBrush; PDP->hBrush = CreateBrushIndirect(&logbrush); if (PDP->hBrush == NULL) { errhandler("Pen (CreateBrush)",NULL); PDP->hBrush = oldbrush; } else /* if (PDP->type == g2_win32)*/ DeleteObject(oldbrush); return 0; } int g2_win32_Ink(int pid, void *pdp, double red, double green, double blue) { BYTE rc,gc,bc; rc = (BYTE)((int)(red*255)); gc = (BYTE)((int)(green*255)); bc = (BYTE)((int)(blue*255)); PDP->NoOfInks++; if(PDP->Inks==NULL) PDP->Inks=(COLORREF *)malloc(PDP->NoOfInks*sizeof(COLORREF)); else PDP->Inks=(COLORREF *)realloc((void *)PDP->Inks,PDP->NoOfInks*sizeof(COLORREF)); if(PDP->Inks==NULL) { fputs("g2: not enough memory\n",stderr); return -1; } PDP->Inks[PDP->NoOfInks-1]=RGB(rc,gc,bc); return PDP->NoOfInks-1; } int g2_win32_ClearPalette(int pid, void *pdp) { if (PDP->Inks != NULL) free(PDP->Inks); PDP->Inks = NULL; PDP->NoOfInks = 0; return 0; } int g2_win32_SetBackground(int pid, void *pdp, int color) { PDP->BkColor = color; SetBkColor(PDP->hMemDC,PDP->BkColor); return 0; } int g2_win32_SetLineWidth(int pid, void *pdp, int w) { PDP->PenWidth = w; g2_win32_SetPen(pid,pdp); return 0; } int g2_win32_SetDash(int pid, void *pdp, int n, int *data) { if (PDP->PenDash != NULL) free(PDP->PenDash); PDP->PenDash = NULL; PDP->PenStyle = n; if (n > 0) { int i; PDP->PenDash = (DWORD *)malloc(n*sizeof(DWORD)); for (i=0;iPenDash[i] = data[i]; } g2_win32_SetPen(pid,pdp); return 0; } int g2_win32_SetFontSize(int pid, void *pdp, int size) { //static LOGFONT lf = {10,0,0,0,0,0,0,0,0,0,0,0,0,"Arial\0"}; HGDIOBJ oldfont; oldfont = PDP->hFont; //lf.lfHeight = size; //PDP->hFont = CreateFontIndirect(&lf); PDP->hFont = CreateFont(-size, 0, 0, 0, FW_NORMAL, 0, 0, 0, 0, OUT_TT_ONLY_PRECIS , 0, PROOF_QUALITY,0, "Times New Roman\0"); if (PDP->hFont == NULL) { errhandler("Font (CreateFont)",NULL); PDP->hFont = oldfont; } else { SelectObject(PDP->hMemDC,PDP->hFont); if (oldfont != NULL)// && PDP->type == g2_win32) DeleteObject(oldfont); } return 0; } int g2_win32_Plot(int pid, void *pdp, int x, int y) { return SetPixel(PDP->hMemDC,x,y,PDP->PenColor); } int g2_win32_Line(int pid, void *pdp, int x1, int y1, int x2, int y2) { MoveToEx(PDP->hMemDC,x1,y1,NULL); LineTo(PDP->hMemDC,x2,y2); SetPixel(PDP->hMemDC,x1,y1,PDP->PenColor); SetPixel(PDP->hMemDC,x2,y2,PDP->PenColor); // specifically draw end points since windows does not include one endpoint return 0; } int g2_win32_PolyLine(int pid, void *pdp, int N, int *points) { POINT *PointList; int i; PointList = (POINT *)malloc(N*sizeof(POINT)); if (PointList == NULL) { fprintf(stderr,"g2_win32: not enough memory !\n"); return -1; } for (i=0;ihMemDC,PointList,N); free(PointList); return 0; } int g2_win32_Rectangle(int pid, void *pdp, int x, int y, int x2, int y2) { SelectObject(PDP->hMemDC,GetStockObject(NULL_BRUSH)); Rectangle(PDP->hMemDC,x,y,x2+1,y2+1); // add one since windows excludes lower right point return 0; } int g2_win32_FilledRectangle(int pid, void *pdp, int x1, int y1, int x2, int y2) { SelectObject(PDP->hMemDC,PDP->hBrush); SelectObject(PDP->hMemDC,PDP->hNullPen); return Rectangle(PDP->hMemDC,x1,y1,x2+1,y2+1); // add one since windows excludes lower right point SelectObject(PDP->hMemDC,PDP->hPen); return 0; } int g2_win32_Polygon(int pid, void *pdp, int N, int *points) { POINT *PointList; int i; PointList = (POINT *)malloc(N*sizeof(POINT)); if (PointList == NULL) { fprintf(stderr,"g2: not enough memory !\n"); return -1; } for (i=0;ihMemDC,GetStockObject(NULL_BRUSH)); Polygon(PDP->hMemDC,PointList,N); free(PointList); return 0; } int g2_win32_FilledPolygon(int pid, void *pdp, int N, int *points) { POINT *PointList; int i; PointList = (POINT *)malloc(N*sizeof(POINT)); if (PointList == NULL) { fprintf(stderr,"g2: not enough memory !\n"); return -1; } for (i=0;ihMemDC,PDP->hBrush); SelectObject(PDP->hMemDC,PDP->hNullPen); Polygon(PDP->hMemDC,PointList,N); SelectObject(PDP->hMemDC,PDP->hPen); free(PointList); return 0; } int g2_win32_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { SelectObject(PDP->hMemDC,GetStockObject(NULL_BRUSH)); return Ellipse(PDP->hMemDC,x-r1,y-r2,x+r1+1,y+r2+1); // add one since windows is end exclusive } int g2_win32_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2) { SelectObject(PDP->hMemDC,PDP->hBrush); SelectObject(PDP->hMemDC,PDP->hNullPen); return Ellipse(PDP->hMemDC,x-r1,y-r2,x+r1+1,y+r2+1); // add one since windows is end exclusive SelectObject(PDP->hMemDC,PDP->hPen); return 0; } int g2_win32_Arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { a1 *= PI/180.; a2 *= PI/180.; SelectObject(PDP->hMemDC,GetStockObject(NULL_BRUSH)); if (PDP->type == g2_win32) return Arc(PDP->hMemDC,x-r1,y-r2,x+r1,y+r2,dtoi(x+r1*cos(a1)),dtoi(y-r2*sin(a1)),dtoi(x+r1*cos(a2)),dtoi(y-r2*sin(a2))); else return Arc(PDP->hMemDC,x-r1,y-r2,x+r1,y+r2,dtoi(x+r1*cos(a2)),dtoi(y-r2*sin(a2)),dtoi(x+r1*cos(a1)),dtoi(y-r2*sin(a1))); } int g2_win32_FilledArc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { a1 *= PI/180.; a2 *= PI/180.; SelectObject(PDP->hMemDC,PDP->hBrush); SelectObject(PDP->hMemDC,PDP->hNullPen); if (PDP->type == g2_win32) Pie(PDP->hMemDC,x-r1,y-r2,x+r1,y+r2,dtoi(x+r1*cos(a1)),dtoi(y-r2*sin(a1)),dtoi(x+r1*cos(a2)),dtoi(y-r2*sin(a2))); else Pie(PDP->hMemDC,x-r1,y-r2,x+r1,y+r2,dtoi(x+r1*cos(a2)),dtoi(y-r2*sin(a2)),dtoi(x+r1*cos(a1)),dtoi(y-r2*sin(a1))); SelectObject(PDP->hMemDC,PDP->hPen); return 0; } int g2_win32_DrawString(int pid, void *pdp, int x, int y, const char *text) { SetTextColor(PDP->hMemDC,PDP->PenColor); SetBkMode(PDP->hMemDC,TRANSPARENT); return TextOut(PDP->hMemDC,x,y,text,strlen(text)); } int g2_win32_QueryPointer(int pid, void *pdp, int *x, int *y, unsigned int *button) // // Thanks to input by Martin stéphane // { POINT point; GetCursorPos(&point); ScreenToClient(PDP->hwndThreadWindow,&point); *y=point.y; *x=point.x; *button=0; if (PDP->hwndThreadWindow != GetForegroundWindow()) return; // return if our window does not have the focus if (GetKeyState(VK_LBUTTON)<0) *button=*button+256; if (GetKeyState(VK_MBUTTON)<0) *button=*button+512; if (GetKeyState(VK_RBUTTON)<0) *button=*button+1024; return 0; } void errhandler(LPSTR errtxt,HWND hwnd) { LPVOID lpMessageBuffer; char szError[255]; DWORD LastError; LastError = GetLastError(); FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM, NULL,LastError,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //The user default language (LPTSTR) &lpMessageBuffer,0,NULL ); sprintf(szError,"Error in %s\n Error code %d : %s\n" ,errtxt,LastError,lpMessageBuffer); MessageBox(hwnd,szError,"error",MB_OK); LocalFree( lpMessageBuffer ); } int InitApplication() { WNDCLASS wc; // Fill in window class structure with parameters that describe the // main window. g2res_DLL = LoadLibrary("g2res.dll"); if (g2res_DLL == NULL) printf("Warning: Could not load g2 resource DLL\n Menu and Icon are disabled\n"); wc.style = CS_HREDRAW | CS_VREDRAW; // Class style(s). wc.lpfnWndProc = g2_WndProc; // Function to retrieve messages for windows of this class. wc.cbClsExtra = 0; // No per-class extra data. wc.cbWndExtra = 0; // No per-window extra data. wc.hInstance = 0; // Application that owns the class. wc.hIcon = NULL; if (g2res_DLL != NULL) { wc.hIcon = LoadIcon(g2res_DLL, MAKEINTRESOURCE(IDI_ICON1)); if (wc.hIcon == NULL) errhandler("Error in LoadIcon",NULL); } wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = "G2WIN32"; wc.lpszClassName = "g2Window"; // Name used in call to CreateWindow. /* Register the window class and return success/failure code. */ if(!RegisterClass(&wc)) { errhandler("RegisterClass",NULL); return FALSE; } g2_win32_registered = TRUE; return TRUE; } /** * \ingroup physdev * \defgroup win32 MS Windows */ /** * * Create a Windows device. * * \param width window width * \param height window height * \param title window title * \param type window type, see ::g2_win32_type * * \return physical device id * * \ingroup win32 */ int g2_open_win32(int width, int height, const char *title, int type) { int pid=0,vid; long ThreadID; g2_win32_STRUCT *pdp; pdp = (g2_win32_STRUCT *)malloc(sizeof(g2_win32_STRUCT)); PDP->type = type; PDP->NoOfInks = 0; PDP->Inks = NULL; PDP->PenStyle = 0; PDP->PenWidth = 1; PDP->PenColor = RGB(1,1,1); PDP->PenDash = NULL; PDP->nWidth = width; PDP->nHeight = height; PDP->messageloop = 0; PDP->hFont = NULL; switch(type) { case g2_win32: { if(g2_win32_registered == FALSE) InitApplication(); PDP->x = 1; PDP->y = 1; if (title != NULL) PDP->title = title; else PDP->title = "g2 Window"; PDP->hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)g2_StartThread, (LPVOID)(pdp), 0, (LPDWORD) &ThreadID ); if (PDP->hThread == NULL) fprintf(stderr,"g2_win32: Thread could not be started\n"); SetThreadPriority(PDP->hThread,THREAD_PRIORITY_ABOVE_NORMAL); //Wait till window is created by Thread while( PDP->messageloop == 0) Sleep(10); break; } case g2_wmf32 : { DWORD dwInchesX; DWORD dwInchesY; DWORD dwDPI = 72; RECT Rect = { 0, 0, 0, 0 }; TCHAR szDesc[] = "Created by g2\0\0"; HDC hScreenDC; float PixelsX, PixelsY, MMX, MMY; dwInchesX = PDP->nWidth/72; dwInchesY = PDP->nHeight/72; // dwInchesX x dwInchesY in .01mm units SetRect( &Rect, 0, 0,dwInchesX*2540, dwInchesY*2540 ); // Get a Reference DC hScreenDC = GetDC( NULL ); // Get the physical characteristics of the reference DC PixelsX = (float)GetDeviceCaps( hScreenDC, HORZRES ); PixelsY = (float)GetDeviceCaps( hScreenDC, VERTRES ); MMX = (float)GetDeviceCaps( hScreenDC, HORZSIZE ); MMY = (float)GetDeviceCaps( hScreenDC, VERTSIZE ); // Create the Metafile PDP->hMemDC = CreateEnhMetaFile(hScreenDC, title, &Rect, szDesc); //tstDC = CreateEnhMetaFile(hScreenDC, "test.emf", &Rect, szDesc); // Release the reference DC ReleaseDC( NULL, hScreenDC ); // Anisotropic mapping mode SetMapMode( PDP->hMemDC, MM_ANISOTROPIC ); // Set the Windows extent SetWindowExtEx( PDP->hMemDC, dwInchesX*dwDPI, dwInchesY*dwDPI, NULL ); // Set the viewport extent to reflect // dwInchesX" x dwInchesY" in device units SetViewportExtEx( PDP->hMemDC, (int)((float)dwInchesX*25.4f*PixelsX/MMX), (int)((float)dwInchesY*25.4f*PixelsY/MMY), NULL ); // printf("viewport: %d %d\n",(int)((float)dwInchesX*25.4f*PixelsX/MMX), // (int)((float)dwInchesY*25.4f*PixelsY/MMY)); // create the device context // PDP->hMemDC = CreateMetaFile(NULL) ; // PDP->hMemDC = CreateEnhMetaFile( (HDC)NULL, title, &WmfRect, "Created by g2"); // PDP->hMemDC = CreateMetaFile(title); // SetMapMode(PDP->hMemDC,MM_LOMETRIC ); // SetWindowExtEx(PDP->hMemDC,width,height,NULL); // SetViewportExtEx(PDP->hMemDC,width*1000,height*1000,NULL); if (PDP->hMemDC == NULL) errhandler("Could not Create Metafile !\n",NULL); SetArcDirection(PDP->hMemDC,AD_CLOCKWISE); break; } default: return height; } SetTextAlign(PDP->hMemDC,TA_BOTTOM | TA_LEFT); vid = g2_register_physical_device(pid, pdp, g2_IntCoor, g2_win32_funix, 1.0, -1.0, 0.0, height-1); g2_allocate_basic_colors(vid); g2_pen(vid,1); g2_set_background(vid, 0); g2_set_font_size(vid, 10); g2_clear(vid); return vid; } #undef PDP g2-0.72/src/g2_device.c0000644000175000017500000001016607267122246013560 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include "g2.h" #include "g2_device.h" #include "g2_physical_device.h" #include "g2_virtual_device.h" #include "g2_util.h" int __g2_last_device=-1; /* last acces. device (ld) */ static int g2_dev_size=0; /* size of devices array */ static g2_device *g2_dev=NULL; /* devices array */ static int g2_get_free_device(); static void g2_init_device(int dix); /* * * Register physical device * */ int g2_register_physical_device(int pid, void *pdp, g2_coor ct, const g2_funix_fun *ff, double a11, double a22, double b1, double b2) { int dix; dix=g2_get_free_device(); g2_init_device(dix); g2_dev[dix].t=g2_PD; g2_dev[dix].d.pd=g2_create_physical_device(pid, pdp, ct, ff, a11, a22, b1, b2); __g2_last_device=dix; return dix; } /* * * Register virtual device * */ int g2_register_virtual_device() { int dix; dix=g2_get_free_device(); g2_init_device(dix); g2_dev[dix].t=g2_VD; g2_dev[dix].d.vd=g2_create_virtual_device(); return dix; } /* * * Init device * */ void g2_init_device(int dix) { g2_dev[dix].t=g2_ILLEGAL; g2_dev[dix].dix=dix; g2_dev[dix].x=0.0; /* set cursor */ g2_dev[dix].y=0.0; g2_dev[dix].auto_flush=1; /* set auto flush */ g2_dev[dix].QPd=1.0; /* Quasi pixel spec. */ g2_dev[dix].QPshape=QPrect; } /* * * Return pointer to device dix * */ g2_device *g2_get_device_pointer(int dix) { if(dix<0 || dix>=g2_dev_size) return NULL; if(g2_dev[dix].t==g2_NDEV) return NULL; return &g2_dev[dix]; } /* * * Return device type * */ g2_device_type g2_get_device_type(int dix) { if(dix<0 || dix>=g2_dev_size) return g2_ILLEGAL; return g2_dev[dix].t; } /* * * 1 if device exist otherwise 0 * */ int g2_device_exist(int dix) { if(dix<0 || dix>=g2_dev_size || g2_dev[dix].t==g2_ILLEGAL || g2_dev[dix].t==g2_NDEV) return 0; return 1; } /* * * Destroy device * */ void g2_destroy_device(int dix) { int i; for(i=0;ipd) */ double b1, b2; /* Ar + B */ double x_origin; /* User coordinates specification */ double y_origin; double x_mul; double y_mul; } g2_physical_device; g2_physical_device *g2_create_physical_device(int pid, void *pdp, g2_coor ct, const g2_funix_fun *ff, double a11, double a22, double b1, double b2); void g2_destroy_physical_device(g2_physical_device *pd); #endif /* _G2_PHYSICAL_DEVICE_H */ g2-0.72/src/GD/0000755000175000017500000000000010515227217012045 5ustar ljuboljubog2-0.72/src/GD/g2_gd_funix.h0000644000175000017500000000402210400652346014405 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_GD_TOKEN_FUN_H #define _G2_GD_TOKEN_FUN_H #include "g2_virtual_device.h" #include "g2_gd_P.h" const g2_funix_fun g2_gd_funix[] = {{g2_Delete,g2_gd_Delete}, {g2_Ink, g2_gd_Ink}, {g2_Pen,g2_gd_Pen}, {g2_SetBackground,g2_gd_SetBackground}, {g2_ClearPalette,g2_gd_ClearPalette}, {g2_SetLineWidth,g2_gd_SetLineWidth}, /* {g2_SetDash,g2_gd_SetDash}, */ {g2_SetFontSize,g2_gd_SetFontSize}, {g2_Clear,g2_gd_Clear}, {g2_Flush,g2_gd_Flush}, {g2_Plot,g2_gd_Plot}, {g2_Line,g2_gd_Line}, /* {g2_PolyLine,g2_gd_PolyLine}, */ {g2_Rectangle,g2_gd_Rectangle}, {g2_FilledRectangle,g2_gd_FilledRectangle}, /* {g2_Polygon,g2_gd_Polygon}, */ {g2_FilledPolygon,g2_gd_FilledPolygon}, /* {g2_Circle,g2_gd_Circle}, */ /* {g2_FilledCircle,g2_gd_FilledCircle}, */ /* {g2_Ellipse,g2_gd_Ellipse}, */ /* {g2_FilledEllipse,g2_gd_FilledEllipse}, */ /* {g2_Arc,g2_gd_Arc}, */ /* {g2_FilledArc,g2_gd_FilledArc}, */ {g2_String,g2_gd_DrawString}, {g2_FUNIX_NULL, NULL}}; #endif /* _G2_GD_TOKEN_FUN_H */ g2-0.72/src/GD/g2_gd_P.h0000644000175000017500000001023410400652346013455 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_GD_P_H #define _G2_GD_P_H #include #include #include #include #include #include #include "g2_config.h" #include "g2_gd.h" static unsigned short g2_Basic_Colors[32][3] = { {65535,65535,65535},{0,0,0}, {44461,55512,59110},{0,65535,65535},{0,0,65535}, {0,0,32896},{61166,33410,61166}, {65535,0,65535},{41120,8224,61680},{65535,49344,52171}, {61680,59110,35980},{32639,65535,54484}, {39064,64507,39064},{0,65535,0},{12850,52685,12850}, {39578,52685,12850},{44461,65535,12079},{65535,65535,0}, {65535,55255,0},{61166,56797,33410},{56026,42405,8224},{47288,34438,2827}, {42405,10794,10794},{53970,26985,7710}, {52685,34181,16191},{65535,32639,20560}, {61680,32896,32896},{64250,32896,29298}, {65535,35980,0},{65535,42405,0},{65535,17733,0}, {65535,0,0}}; typedef struct g2_gd_STRUCT { int height; int width; FILE *f; gdImagePtr im; gdImagePtr brush; int LineWidth; int NoOfInks; int Inks[256]; int CurCol; int OldCol; int BackCol; gdFontPtr FontSize; enum g2_gd_type gd_type; } g2_gd_STRUCT; int g2_gd_init_gd(int pid, void *pdp, int vid, int width,int height); int g2_gd_init_gdX(int pid, void *pdp, int width, int height, int xposition, int yposition, char *windowname, char *iconname, char *icondata, int iconwidth, int iconheight); int g2_gd_Delete(int pid, void *pdp); int g2_gd_Clear(int pid, void *pdp); int g2_gd_Flush(int pid, void *pdp); int g2_gd_Ink(int pid, void *pdp, double red, double green, double blue); int g2_gd_ClearPalette(int pid, void *pdp); int g2_gd_ResetPalette(int pid, void *pdp); int g2_gd_SetBackground(int pid, void *pdp, int color); int g2_gd_Pen(int pid, void *pdp, int color); int g2_gd_Paper(int pid, void *pdp, int color); int g2_gd_SetLineWidth(int pid, void *pdp, int w); int g2_gd_SetDash(int pid, void *pdp, int n, char *data); int g2_gd_SetFontSize(int pid, void *pdp, int size); int g2_gd_Plot(int pid, void *pdp, int x, int y); int g2_gd_Line(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_gd_PolyLine(int pid, void *pdp, int N, int *p); int g2_gd_Polygon(int pid, void *pdp, int N, int *p); int g2_gd_FilledPolygon(int pid, void *pdp, int N, int *p); int g2_gd_Triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_gd_FilledTriangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_gd_Rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_gd_FilledRectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_gd_Circle(int pid, void *pdp, int x, int y, int r); int g2_gd_FilledCircle(int pid, void *pdp, int x, int y, int r); int g2_gd_Arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_gd_FilledArc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_gd_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_gd_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_gd_DrawString(int pid, void *pdp, int x, int y, const char *text); int g2_gd_AllocateBasicColors(int pid, void *pdp); #endif /* _G2_GD_P_H */ g2-0.72/src/GD/g2_gd.h0000644000175000017500000000333110400652346013176 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_GD_H #define _G2_GD_H #if defined(__cplusplus) extern "C" { #endif #include /* Common Library header for DLL and application */ #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #define G2L __declspec( dllexport) #else /* Use DLL */ #define G2L __declspec( dllimport) #endif #else /* Use static win32 */ #define G2L #endif #else /* Use non-win32 */ #define G2L #endif /** * g2 gd bitmap types * * \ingroup GD */ enum g2_gd_type { g2_gd_jpeg = 0, /**< jpeg */ g2_gd_png = 1, /**< png */ g2_gd_gif = 2 /**< gif */ }; G2L int g2_open_gd(const char *filename, int width, int height,enum g2_gd_type gd_type); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_GD_H */ g2-0.72/src/GD/g2_gd.c0000644000175000017500000001725410277435223013207 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_util.h" #include "g2_config.h" #include "g2_gd_P.h" #include "g2_gd.h" #define PDP ((struct g2_gd_STRUCT *)pdp) #include "g2_gd_funix.h" #ifndef PI #define PI 3.14159265358979323846 #endif /* PI */ /** * \ingroup physdev * \defgroup GD GD */ /** * * Create a GD (bitmap image) device. * * \param filename output file name * \param width width * \param height height * \param gd_type file type, see ::g2_gd_type * * \return physical device id * * \ingroup GD */ int g2_open_gd(const char *filename, int width, int height, enum g2_gd_type gd_type) { int pid=-1; g2_gd_STRUCT *pdp; pdp = (g2_gd_STRUCT *)malloc(sizeof(g2_gd_STRUCT)); pdp->width = width; pdp->height = height; pdp->gd_type = gd_type; pdp->im = gdImageCreate(width,height); pdp->f = fopen(filename,"wb"); pdp->NoOfInks = 0; pdp->BackCol = 0; pid = g2_register_physical_device(pid, pdp, g2_IntCoor, g2_gd_funix, 1.0, -1.0, 0.0, height-1); g2_gd_Clear(pid,pdp); g2_set_line_width(pid, 0.0); g2_set_font_size(pid, 12.0); g2_allocate_basic_colors(pid); g2_pen(pid, 1); return pid; } int g2_gd_Alloc_Basic(int pid, void *pdp) { int icol; for (icol=0;icol<32;icol++) gdImageColorAllocate(PDP->im,g2_Basic_Colors[icol][0]/256,g2_Basic_Colors[icol][1]/256,g2_Basic_Colors[icol][2]/256); PDP->NoOfInks = 32; return 0; } int g2_gd_Clear(int pid, void *pdp) { gdImageFilledRectangle(PDP->im, 0, 0, PDP->width, PDP->height, PDP->BackCol); return 0; } int g2_gd_Save(int pid, void *pdp) { if (PDP->gd_type == g2_gd_png) gdImagePng(PDP->im,PDP->f); else if (PDP->gd_type == g2_gd_jpeg) gdImageJpeg(PDP->im,PDP->f,-1); #ifdef DO_GIF else if (PDP->gd_type == g2_gd_gif) gdImageGif(PDP->im,PDP->f); #endif fflush(PDP->f); rewind(PDP->f); return 0; } int g2_gd_Delete(int pid, void *pdp) { g2_gd_Save(pid,pdp); fclose(PDP->f); gdImageDestroy(PDP->im); free(PDP); return 0; } int g2_gd_Flush(int pid, void *pdp) { return 0; } int g2_gd_Pen(int pid, void *pdp, int color) { PDP->CurCol = color; return 0; } int g2_gd_Ink(int pid, void *pdp, double red, double green, double blue) { if(PDP->NoOfInks == 256) return -1; else PDP->NoOfInks++; return gdImageColorAllocate(PDP->im,(int)(255*red),(int)(255*green),(int)(255*blue)); } int g2_gd_ClearPalette(int pid, void *pdp) { int i; for (i=0;iNoOfInks;i++) gdImageColorDeallocate(PDP->im,i); PDP->NoOfInks = 0; return 0; } int g2_gd_ResetPalette(int pid, void *pdp) { g2_gd_ClearPalette(pid,pdp); g2_gd_Alloc_Basic(pid,pdp); return 0; } int g2_gd_SetBackground(int pid, void *pdp, int color) { PDP->BackCol = color; return 0; } int g2_gd_SetLineWidth(int pid, void *pdp, int w) { PDP->LineWidth = w; return 0; } /* { if (PDP->brush != NULL) { gdImageDestroy(PDP->brush); } PDP->brush = gdImageCreate(w,w); gdImageColorTransparent(PDP->brush,0); gdImageColorAllocate(PDP->brush,0,0,0); gdImageColorAllocate(PDP->brush, gdImageRed(PDP->im,PDP->CurCol), gdImageGreen(PDP->im,PDP->CurCol), gdImageBlue(PDP->im,PDP->CurCol)); gdImageArc(PDP->brush, w/2, w/2, w/2,w/2, 0, 360, 1); gdImageFill(PDP->brush,w/2,w/2,1); gdImageSetBrush(PDP->im, PDP->brush); PDP->OldCol = PDP->CurCol; PDP->CurCol = gdBrushed; } else { PDP->CurCol = PDP->OldCol; } return 0; } */ int g2_gd_SetDash(int pid, void *pdp, int n, char *data) { return 0; } int g2_gd_SetDashX(int pid, void *pdp, int N, double *dashes) { return 0; } int g2_gd_SetFontSize(int pid, void *pdp, int size) { if (size <=10) PDP->FontSize = gdFontTiny; else if (size <=12) PDP->FontSize = gdFontSmall; else if (size <=13) PDP->FontSize = gdFontMediumBold; else if (size <=15) PDP->FontSize = gdFontLarge; else PDP->FontSize = gdFontGiant; return 0; } int g2_gd_Plot(int pid, void *pdp, int x, int y) { gdImageSetPixel(PDP->im, x, y, PDP->CurCol); return 0; } int g2_gd_Line(int pid, void *pdp, int x1, int y1, int x2, int y2) { if (PDP->LineWidth <= 1) gdImageLine(PDP->im, x1, y1, x2, y2, PDP->CurCol); else { float dx,dy,l; gdPoint points[4]; dx = -(float)(y2-y1); dy = (float)(x2-x1); l = (float)(PDP->LineWidth/sqrt(dy*dy+dx*dx)/2.); dx = dx*l; dy = dy*l; points[0].x = (int)(x1+dx); points[0].y = (int)(y1+dy); points[1].x = (int)(x1-dx); points[1].y = (int)(y1-dy); points[2].x = (int)(x2-dx); points[2].y = (int)(y2-dy); points[3].x = (int)(x2+dx); points[3].y = (int)(y2+dy); gdImageFilledPolygon(PDP->im,points,4,PDP->CurCol); } return 0; } int g2_gd_PolyLine(int pid, void *pdp, int N, int *points) { return 0; } int g2_gd_Triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3) { return 0; } int g2_gd_FilledTriangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3) { return 0; } int g2_gd_Rectangle(int pid, void *pdp, int x, int y, int x2, int y2) { gdImageRectangle(PDP->im, x, y, x2, y2, PDP->CurCol); return 0; } int g2_gd_FilledRectangle(int pid, void *pdp, int x, int y, int x2, int y2) { gdImageFilledRectangle(PDP->im, x, y, x2, y2, PDP->CurCol); return 0; } int g2_gd_Polygon(int pid, void *pdp, int N, int *points) { return 0; } int g2_gd_FilledPolygon(int pid, void *pdp, int N, int *points) { gdPoint *GIFPolygon; int i; GIFPolygon = (gdPoint *)malloc(N*sizeof(gdPoint)); for (i=0;iim,GIFPolygon,N,PDP->CurCol); free(GIFPolygon); return 0; } int g2_gd_Circle(int pid, void *pdp, int x, int y, int r) { gdImageArc(PDP->im, (int)x, (int)y, (int)r, (int)r, 0, 360, PDP->CurCol); return 0; } int g2_gd_FilledCircle(int pid, void *pdp, int x, int y, int r) { return 0; } int g2_gd_Ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { return 0; } int g2_gd_FilledEllipse(int pid, void *pdp, int x, int y, int r1, int r2) { return 0; } int g2_gd_Arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { gdImageArc(PDP->im,x,y,2*r1,2*r2,dtoi(a1),dtoi(a2),PDP->CurCol); return 0; } int g2_gd_FilledArc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { return 0; } int g2_gd_DrawString(int pid, void *pdp, int x, int y, const char *text) { gdImageString(PDP->im,PDP->FontSize,x,y+2-PDP->FontSize->h,(unsigned char *)text,PDP->CurCol); return 0; } g2-0.72/src/g2_funix.h0000644000175000017500000001165310253640644013455 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_FUNIX_H #define _G2_FUNIX_H /* * * FUNction IndeX enumeration * */ #define G2_N_FUNIX 31 /* WARNING !! */ /* number of funix excl. g2_FUNIX_NULL !!! */ typedef enum g2_funix { g2_FUNIX_NULL=-1, /* null funix (_don't_ _count_ in G2_N_FUNIX !!!!) */ g2_DoNothing=0, /* do nothing */ /* ... = */ g2_Delete, /* delete physical device */ /* ... = */ g2_Ink, /* set ink */ /* ... = (int)red, (int)green, (int)blue */ /* 0 < (red,green,blue) < 65535 (=0xFFFF) */ /* ret: color id(>=0), <0 if error */ g2_Pen, /* set pen */ /* ... = (int)pen */ g2_SetBackground, /* set background */ /* ... = (int)pen */ g2_ClearPalette, /* reset color pallete to default values */ /* ... = */ /* for list of default colors (0,31) see later */ g2_SetLineWidth, /* set line width (line, rectangle, ...) */ /* ... = (double)line width */ g2_SetDash, /* set line dash */ /* ... = (int)number of descr., (double*) bw list */ g2_SetFontSize, /* set font size */ /* ... = (double)font size */ g2_Clear, /* clear screen(X11), print page(PostScript), ... */ /* ... = */ g2_Flush, /* update output */ /* X11: Flush, PostScript: fflush, ... */ g2_Save, /* save output to device (e.g. file) */ /* X11: Flush, etc. */ g2_Plot, /* plot point */ /* ... = (double)x, (double)y */ g2_Line, /* draw line */ /* ... = (double)x1, (double)y1, (double)x2, (double)y2 */ g2_PolyLine, /* draw poly line */ /* ... = (int)N, (double*)dp dp[0]=x1, dp[1]=y1, ... dp[2*N-2]=xN, dp[2*N-1]=yN */ g2_Polygon, /* draw polygon */ /* ... = (int)N, (double*)dp dp[0]=x1, dp[1]=y1, ... dp[2*N-2]=xN, dp[2*N-1]=yN */ g2_FilledPolygon, /* draw filled polygon */ /* ... = (int)N, (double*)dp dp[0]=x1, dp[1]=y1, ... dp[2*N-2]=xN, dp[2*N-1]=yN */ g2_Rectangle, /* draw rectangle */ /* ... = (double)x1, (double)y1, (double)x2, (double)y2 */ g2_FilledRectangle, /* draw filled rectangle */ /* ... = (double)x1, (double)x1, (double)x2, (double)y2 */ g2_Triangle, /* draw triangle (should be faster as lines) */ /* ... = (double)x1, (double)y1, (double)x2, (double)y2, (double)x3, (double)y3 */ g2_FilledTriangle, /* draw filled triangle */ /* ... = (double)x1, (double)y1, (double)x2, (double)y2, (double)x3, (double)y3 */ g2_Arc, /* draw arc */ /* ... = (double)x, (double)y, (double)r1, (double)r2, (double)a1, (double)a2 */ g2_FilledArc, /* draw filled arc */ /* ... = (double)x, (double)y, (double)r1, (double)r2, (double)a1, (double)a2 */ g2_Ellipse, /* draw ellipse */ /* ... = (double)x, (double)y, (double)r1, (double)r2 */ g2_FilledEllipse, /* draw filled ellipse */ /* ... = (double)x, (double)y, (double)r1, (double)r2 */ g2_Circle, /* draw circle */ /* ... = (double)x, (double)y, (double)r */ g2_FilledCircle, /* draw filled circle */ /* ... = (double)x, (double)y, (double)r */ g2_String, /* draw string */ /* ... = (double)x, (double)y, (const char*)string */ g2_Image, /* draw (pen) image */ /* ... = (double)x, (double)y, (int)x_size, (int)y_size, (int*)pen_array */ g2_QueryPointer, /* query pointer position (mouse) */ /* ... = (double)*x, (double)*y, (unsigned int)*button */ g2_GetPDHandles /* get pointers to low level handles */ /* ... = void *handles[G2_MAX_NUMBER_PD_HANDLES] */ } g2_funix; #endif /* _G2_FUNIX_H */ g2-0.72/src/g2.h0000644000175000017500000001342610515221430012231 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2005 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_H #define _G2_H /* g2 version */ #define G2_VERSION "0.72" #if defined(__cplusplus) extern "C" { #endif /* Common Library header for DLL and application */ #ifdef WIN32 #ifdef G2DLL #ifdef MAKEDLL /* Create DLL */ #pragma message( "Building DLL library") #define G2L __declspec( dllexport) #else /* Use DLL */ #define G2L __declspec( dllimport) #endif #else /* Use static win32 */ #define G2L #endif #else /* Use non-win32 */ #define G2L #endif #define G2LD g2_ld() #if defined(SWIG) #if defined(DO_X11) %include "X11/g2_X11.h" #endif #if defined(DO_PS) %include "PS/g2_PS.h" #endif #if defined(DO_GD) %include "GD/g2_gd.h" #endif #if defined(DO_WIN32) %include "WIN32/g2_win32.h" #endif %module g2 %include typemaps.i %{ #include "g2.h" #if defined(DO_X11) #include "g2_X11.h" #endif #if defined(DO_PS) #include "g2_PS.h" #endif #if defined(DO_GD) #include "g2_gd.h" #endif #if defined(DO_WIN32) #include "WIN32/g2_win32.h" #endif %} #endif /* end SWIG */ enum QPshape { QPrect, /**< rectangular quasi pixel */ QPcirc /**< circle as a quasi pixel */ }; /* compatibility with old versions */ #define g2_draw_string(dev, x, y, text) g2_string((dev), (x), (y), (text)) G2L int g2_open_vd(void); G2L void g2_attach(int vd_dev, int dev); G2L void g2_detach(int vd_dev, int dev); G2L void g2_close(int dev); G2L void g2_set_auto_flush(int dev, int on_off); G2L void g2_flush(int dev); G2L void g2_save(int dev); G2L void g2_set_coordinate_system(int dev, double x_origin, double y_origin, double x_mul, double y_mul); G2L int g2_ld(); G2L void g2_set_ld(int dev); G2L int g2_ink(int pd_dev, double red, double green, double blue); G2L void g2_pen(int dev, int color); G2L void g2_set_dash(int dev, int N, double *dashes); G2L void g2_set_font_size(int dev, double size); G2L void g2_set_line_width(int dev, double w); G2L void g2_clear_palette(int dev); G2L void g2_reset_palette(int dev); G2L void g2_allocate_basic_colors(int dev); G2L void g2_clear(int dev); G2L void g2_set_background(int dev, int color); G2L void g2_move(int dev, double x, double y); G2L void g2_move_r(int dev, double dx, double dy); G2L void g2_plot(int dev, double x, double y); G2L void g2_plot_r(int dev, double dx, double dy); G2L void g2_line(int dev, double x1, double y1, double x2, double y2); G2L void g2_line_r(int dev, double dx, double dy); G2L void g2_line_to(int dev, double x, double y); G2L void g2_poly_line(int dev, int N_pt, double *points); G2L void g2_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3); G2L void g2_filled_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3); G2L void g2_rectangle(int dev, double x1, double y1, double x2, double y2); G2L void g2_filled_rectangle(int dev, double x1, double y1, double x2, double y2); G2L void g2_polygon(int dev, int N_pt, double *points); G2L void g2_filled_polygon(int dev, int N_pt, double *points); G2L void g2_circle(int dev, double x, double y, double r); G2L void g2_filled_circle(int dev, double x, double y, double r); G2L void g2_ellipse(int dev, double x, double y, double r1, double r2); G2L void g2_filled_ellipse(int dev, double x, double y, double r1, double r2); G2L void g2_arc(int dev, double x, double y, double r1, double r2, double a1, double a2); G2L void g2_filled_arc(int dev, double x, double y, double r1, double r2, double a1, double a2); G2L void g2_string(int dev, double x, double y, const char *text); G2L void g2_image(int dev, double x, double y, int x_size, int y_size, int *pens); G2L void g2_set_QP(int dev, double d, enum QPshape shape); G2L void g2_plot_QP(int dev, double x, double y); #if !defined(SWIG) G2L void g2_query_pointer(int dev, double *x, double *y, unsigned int *button); #else extern void g2_query_pointer(int dev, double *OUTPUT,double *OUTPUT,unsigned int *OUTPUT); #endif /* Tijs Michels */ /* 06/16/99 */ G2L void g2_spline(int id, int n, double *points, int o); G2L void g2_b_spline(int id, int n, double *points, int o); G2L void g2_raspln(int id, int n, double *points, double tn); G2L void g2_para_3(int id, int n, double *points); G2L void g2_para_5(int id, int n, double *points); G2L void g2_filled_spline(int id, int n, double *points, int o); G2L void g2_filled_b_spline(int id, int n, double *points, int o); G2L void g2_filled_raspln(int id, int n, double *points, double tn); G2L void g2_filled_para_3(int id, int n, double *points); G2L void g2_filled_para_5(int id, int n, double *points); /** Actualy private function, but... **/ G2L int g2_device_exist(int dix); /** Use only if you know what are you doing **/ #define G2_PD_HANDLES_SIZE 32 G2L void g2_get_pd_handles(int pd, void *handles[G2_PD_HANDLES_SIZE]); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_H */ g2-0.72/src/g2_util.c0000644000175000017500000000767010035073735013277 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include "g2_util.h" #include "g2_physical_device.h" #include "g2_config.h" /* * * Double to integer * */ int dtoi(double x) { return (int)(x+0.5); } /* * * Transform user coord. in physical device coord (int) * */ void g2_uc2pdc_int(g2_physical_device *pd, double x, double y, int *ix, int *iy) { double vx, vy; vx=pd->x_mul*x+pd->x_origin; vy=pd->y_mul*y+pd->y_origin; *ix = dtoi(pd->a11*vx + pd->b1); *iy = dtoi(pd->a22*vy + pd->b2); } /* * * Transform user coord. in physical device coord (double) * */ void g2_uc2pdc_double(g2_physical_device *pd, double x, double y, double *dx, double *dy) { double vx, vy; vx=pd->x_mul*x+pd->x_origin; vy=pd->y_mul*y+pd->y_origin; *dx = pd->a11*vx + pd->b1; *dy = pd->a22*vy + pd->b2; } /* * * Transform user size in physical device size (int) * */ void g2_us2pds_int(g2_physical_device *pd, double x, double y, int *ix, int *iy) { if(ix!=NULL) *ix=dtoi(x*fabs(pd->x_mul*pd->a11)); if(iy!=NULL) *iy=dtoi(y*fabs(pd->y_mul*pd->a22)); } /* * * Transform user size in physical device size (double) * */ void g2_us2pds_double(g2_physical_device *pd, double x, double y, double *dx, double *dy) { if(dx!=NULL) *dx=x*fabs(pd->x_mul*pd->a11); if(dy!=NULL) *dy=y*fabs(pd->y_mul*pd->a22); } /* * * Transform physical device coord in user coord * */ void g2_pdc2uc(g2_physical_device *pd, double ix, double iy, double *x, double *y) { double pcx, pcy; pcx=(ix-pd->b1)/pd->a11; pcy=(iy-pd->b2)/pd->a22; *x=(pcx-pd->x_origin)/pd->x_mul; *y=(pcy-pd->y_origin)/pd->y_mul; } /* * return a < b */ void g2_sort2_i(int *a, int *b) { if(*a>*b) { int t=*a; *a=*b; *b=t; } } void g2_sort2_d(double *a, double *b) { if(*a>*b) { double t=*a; *a=*b; *b=t; } } /* * * g2 malloc (with error message) * */ void *g2_malloc(size_t size) { void *rv; if((rv=malloc(size))==NULL) { fprintf(stderr, "g2_malloc: Can not allocate memory\n"); exit(-1); } return rv; } /* * * g2 realloc (with error message) * */ void *g2_realloc(void *p, size_t size) { void *rv; if((rv=realloc(p, size))==NULL) { fprintf(stderr, "g2_realloc: Can not allocate memory\n"); exit(-1); } return rv; } /* * * g2 free * */ void g2_free(void *p) { if(p!=NULL) free(p); } /* * * transform float* to double* for N elements * * Note: don't forget to free d * */ double *g2_floatp2doublep(float *f, int N) { int i; double *d; d=(double *)g2_malloc(N*sizeof(double)); for(i=0;i g2_LogLevel) { return; } va_start(arg, format); vfprintf(stderr, format, arg); va_end(arg); } g2-0.72/src/g2_ui_graphic.c0000644000175000017500000004627710030146520014426 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include "g2_device.h" #include "g2_graphic_pd.h" #include "g2_util.h" /** * \ingroup interface * \defgroup graphic graphical output */ /** * * Move graphic cursor. * * \param dev device * \param x x coordinate * \param y y coordinate * * \ingroup graphic */ void g2_move(int dev, double x, double y) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_move: No such device: %d\n", dev); return; } devp->x=x; /* set graph. cursor */ devp->y=y; switch(devp->t) { case g2_PD: break; case g2_VD: for(i=0;id.vd->N;i++) g2_move(devp->d.vd->dix[i], x, y); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Move graphic cursor relative to the currner graphical cursor position. * * \param dev device * \param dx x coordinate increment * \param dy y coordinate increment * * \ingroup graphic */ void g2_move_r(int dev, double dx, double dy) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_move_r: No such device: %d\n", dev); return; } devp->x+=dx; /* set graph. cursor */ devp->y+=dy; switch(devp->t) { case g2_PD: break; case g2_VD: for(i=0;id.vd->N;i++) g2_move_r(devp->d.vd->dix[i], dx, dy); break; case g2_ILLEGAL: break; case g2_NDEV: break; } __g2_last_device=dev; } /** * * Plot a point * * \param dev device * \param x x coordinate * \param y y coordinate * * \ingroup graphic */ void g2_plot(int dev, double x, double y) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_plot: No such device: %d\n", dev); return; } devp->x=x; /* set graph. cursor */ devp->y=y; switch(devp->t) { case g2_PD: g2_plot_pd(devp->d.pd, x, y); break; case g2_VD: for(i=0;id.vd->N;i++) g2_plot(devp->d.vd->dix[i], x, y); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Plot a point relative to graphical cursor. * * \param dev device * \param rx relative x coordinate * \param ry relative y coordinate * * \ingroup graphic */ void g2_plot_r(int dev, double rx, double ry) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_plot_r: No such device: %d\n", dev); return; } g2_plot(dev, devp->x+rx, devp->y+ry); __g2_last_device=dev; } /** * * Draw a line from \p x1, \p y1 to \p x2, \p y2. * * \param dev device * \param x1 see above * \param y1 see above * \param x2 see above * \param y2 see above * * \ingroup graphic */ void g2_line(int dev, double x1, double y1, double x2, double y2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_line: No such device: %d\n", dev); return; } devp->x=x2; devp->y=y2; switch(devp->t) { case g2_PD: g2_line_pd(devp->d.pd, x1, y1, x2, y2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_line(devp->d.vd->dix[i], x1, y1, x2, y2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw line relative to the graphic cursor. * * \param dev device * \param dx relative x coordinate * \param dy relative y coordinate * * \ingroup graphic */ void g2_line_r(int dev, double dx, double dy) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_line_r: No such device: %d\n", dev); return; } g2_line(dev, devp->x, devp->y, devp->x+dx, devp->y+dy); __g2_last_device=dev; } /** * * Draw line from graphic cursor to the point \a x, \a y * * \param dev device * \param x x coordinate * \param y y coordinate * * \ingroup graphic */ void g2_line_to(int dev, double x, double y) { g2_device *devp; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_line_to: No such device: %d\n", dev); return; } g2_line(dev, devp->x, devp->y, x, y); __g2_last_device=dev; } /** * * Draw a poly line. * * \param dev device * \param N_pt number of points (Note: It is not size of \a points vector!) * \param points vector of coordinates: x1, y1, x2, y2, ... * * \ingroup graphic */ void g2_poly_line(int dev, int N_pt, double *points) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_poly_line: No such device: %d\n", dev); return; } devp->x=points[2*(N_pt-1)+0]; devp->y=points[2*(N_pt-1)+1]; switch(devp->t) { case g2_PD: g2_poly_line_pd(devp->d.pd, N_pt, points); break; case g2_VD: for(i=0;id.vd->N;i++) g2_poly_line(devp->d.vd->dix[i], N_pt, points); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a triangle described by 3 corner points. * * \param dev device * \param x1 x coordinate of the 1st corner * \param y1 y coordinate of the 1st corner * \param x2 x coordinate of the 2nd corner * \param y2 y coordinate of the 2nd corner * \param x3 x coordinate of the 3rd corner * \param y3 y coordinate of the 3rd corner * * \ingroup graphic */ void g2_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_triangle: No such device: %d\n", dev); return; } devp->x=x3; devp->y=y3; switch(devp->t) { case g2_PD: g2_triangle_pd(devp->d.pd, x1, y1, x2, y2, x3, y3); break; case g2_VD: for(i=0;id.vd->N;i++) g2_triangle(devp->d.vd->dix[i], x1, y1, x2, y2, x3, y3); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled triangle specified by the 3 corner points. * * \param dev device * \param x1 x coordinate of the 1st corner * \param y1 y coordinate of the 1st corner * \param x2 x coordinate of the 2nd corner * \param y2 y coordinate of the 2nd corner * \param x3 x coordinate of the 3rd corner * \param y3 y coordinate of the 3rd corner * * \ingroup graphic */ void g2_filled_triangle(int dev, double x1, double y1, double x2, double y2, double x3, double y3) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_triangle: No such device: %d\n", dev); return; } devp->x=x3; devp->y=y3; switch(devp->t) { case g2_PD: g2_filled_triangle_pd(devp->d.pd, x1, y1, x2, y2, x3, y3); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_triangle(devp->d.vd->dix[i], x1, y1, x2, y2, x3, y3); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a rectangle specified by the two opposite corner points. * * \param dev device * \param x1 x coordinate of the 1st corner * \param y1 y coordinate of the 1st corner * \param x2 x coordinate of the 3rd corner * \param y2 y coordinate of the 3rd corner * * \ingroup graphic */ void g2_rectangle(int dev, double x1, double y1, double x2, double y2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_rectangle: No such device: %d\n", dev); return; } devp->x=x2; devp->y=y2; switch(devp->t) { case g2_PD: g2_rectangle_pd(devp->d.pd, x1, y1, x2, y2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_rectangle(devp->d.vd->dix[i], x1, y1, x2, y2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled rectangle specified by the two opposite corner points. * * \param dev device * \param x1 x coordinate of the 1st corner * \param y1 y coordinate of the 1st corner * \param x2 x coordinate of the 3rd corner * \param y2 y coordinate of the 3rd corner * * \ingroup graphic */ void g2_filled_rectangle(int dev, double x1, double y1, double x2, double y2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_rectangle: No such device: %d\n", dev); return; } devp->x=x2; devp->y=y2; switch(devp->t) { case g2_PD: g2_filled_rectangle_pd(devp->d.pd, x1, y1, x2, y2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_rectangle(devp->d.vd->dix[i], x1, y1, x2, y2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a polygon. * * \param dev device * \param N_pt number of points (Note: It is not size of \a points vector!) * \param points vector of coordinates: x1, y1, x2, y2, ... * * \ingroup graphic */ void g2_polygon(int dev, int N_pt, double *points) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_polygon: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_polygon_pd(devp->d.pd, N_pt, points); break; case g2_VD: for(i=0;id.vd->N;i++) g2_polygon(devp->d.vd->dix[i], N_pt, points); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled polygon. * * \param dev device * \param N_pt number of points (Note: It is not size of \a points vector!) * \param points vector of coordinates: x1, y1, x2, y2, ... * * \ingroup graphic */ void g2_filled_polygon(int dev, int N_pt, double *points) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_polygon: No such device: %d\n", dev); return; } switch(devp->t) { case g2_PD: g2_filled_polygon_pd(devp->d.pd, N_pt, points); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_polygon(devp->d.vd->dix[i], N_pt, points); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw an ellipse. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r1 x radius * \param r2 y radius * * \ingroup graphic */ void g2_ellipse(int dev, double x, double y, double r1, double r2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_ellipse: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_ellipse_pd(devp->d.pd, x, y, r1, r2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_ellipse(devp->d.vd->dix[i], x, y, r1, r2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled ellipse. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r1 x radius * \param r2 y radius * * \ingroup graphic */ void g2_filled_ellipse(int dev, double x, double y, double r1, double r2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_ellipse: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_filled_ellipse_pd(devp->d.pd, x, y, r1, r2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_ellipse(devp->d.vd->dix[i], x, y, r1, r2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a circle. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r radius * * \ingroup graphic */ void g2_circle(int dev, double x, double y, double r) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_circle: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_circle_pd(devp->d.pd, x, y, r); break; case g2_VD: for(i=0;id.vd->N;i++) g2_circle(devp->d.vd->dix[i], x, y, r); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled circle. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r radius * * \ingroup graphic */ void g2_filled_circle(int dev, double x, double y, double r) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_circle: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_filled_circle_pd(devp->d.pd, x, y, r); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_circle(devp->d.vd->dix[i], x, y, r); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw an arc. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r1 x radius * \param r2 y radius * \param a1 starting angle (in deg. 0-360) * \param a2 ending angle (in deg. 0-360) * * \ingroup graphic */ void g2_arc(int dev, double x, double y, double r1, double r2, double a1, double a2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_arc: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_arc_pd(devp->d.pd, x, y, r1, r2, a1, a2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_arc(devp->d.vd->dix[i], x, y, r1, r2, a1, a2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a filled arc. * * \param dev device * \param x x coordinate of the center * \param y y coordinate of the center * \param r1 x radius * \param r2 y radius * \param a1 starting angle (in deg. 0-360) * \param a2 ending angle (in deg. 0-360) * * \ingroup graphic */ void g2_filled_arc(int dev, double x, double y, double r1, double r2, double a1, double a2) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_filled_arc: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_filled_arc_pd(devp->d.pd, x, y, r1, r2, a1, a2); break; case g2_VD: for(i=0;id.vd->N;i++) g2_filled_arc(devp->d.vd->dix[i], x, y, r1, r2, a1, a2); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw string, see also g2_set_font_size(). * * \param dev device * \param x x coordinate * \param y y coordinate * \param text null terminated string * * \ingroup graphic */ void g2_string(int dev, double x, double y, const char *text) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_string: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_string_pd(devp->d.pd, x, y, text); break; case g2_VD: for(i=0;id.vd->N;i++) g2_string(devp->d.vd->dix[i], x, y, text); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Draw a pen image * * \param dev device * \param x x coordinate * \param y y coordinate * \param x_size x size * \param y_size y size * \param pens vector of x_size*y_size pens: p11, p21, ... pxy, ... * * \ingroup graphic */ void g2_image(int dev, double x, double y, int x_size, int y_size, int *pens) { g2_device *devp; int i; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_image: No such device: %d\n", dev); return; } devp->x=x; devp->y=y; switch(devp->t) { case g2_PD: g2_image_pd(devp->d.pd, x, y, x_size, y_size, pens); break; case g2_VD: for(i=0;id.vd->N;i++) g2_image(devp->d.vd->dix[i], x, y, x_size, y_size, pens); break; case g2_ILLEGAL: break; case g2_NDEV: break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } /** * * Quasi Pixel fake. Quasi pixel is introduced to make easier * plotting of cellular automata and related pictures. QP is simple a big pixel as * specified by g2_set_QP(). Coordinates are skaled accordingly, so no recalculation * is needed on client side. * * \param dev device * \param x x coordinate * \param y y coordinate * * \ingroup graphic */ void g2_plot_QP(int dev, double x, double y) { g2_device *devp; double d; if((devp=g2_get_device_pointer(dev))==NULL) { fprintf(stderr, "g2_plot_QP: No such device: %d\n", dev); return; } x=dtoi(x); y=dtoi(y); d=devp->QPd; switch(devp->QPshape) { case QPrect: g2_filled_rectangle(dev, x*d-d/2, y*d-d/2, x*d+d/2, y*d+d/2); break; case QPcirc: g2_filled_circle(dev, x*d, y*d, d/2.0); break; default: fprintf(stderr, "g2: QP: unknown shape\n"); break; } if(devp->auto_flush) g2_flush(dev); __g2_last_device=dev; } g2-0.72/src/g2_virtual_device.c0000644000175000017500000000363607267122246015332 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include "g2_virtual_device.h" #include "g2_device.h" #include "g2_util.h" /* * */ g2_virtual_device *g2_create_virtual_device() { g2_virtual_device *rd; rd=g2_malloc(sizeof(g2_virtual_device)); rd->N=0; rd->dix=g2_malloc(sizeof(int)); /* later we use realloc */ return rd; } /* * */ void g2_destroy_virtual_device(g2_virtual_device *vd) { g2_free(vd->dix); g2_free(vd); } /* * Return 1 if dev is attached to vd */ int g2_is_attached(int vd, int dev) { g2_device *vdp, *devp; int i; if(vd==dev) return 1; if((devp=g2_get_device_pointer(dev))==NULL) return 0; if((vdp=g2_get_device_pointer(vd))==NULL) return 0; if(devp==vdp) return 1; if(vdp->t!=g2_VD) return 0; for(i=0;id.vd->N;i++) { if(vdp->d.vd->dix[i]==dev) return 1; if(g2_is_attached(vdp->d.vd->dix[i], dev)) return 1; } return 0; } g2-0.72/src/g2_util.h0000644000175000017500000000363010024167657013301 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_UTIL_H #define _G2_UTIL_H #include #include "g2_physical_device.h" int dtoi(double x); void g2_uc2pdc_int(g2_physical_device *pd, double x, double y, int *ix, int *iy); void g2_uc2pdc_double(g2_physical_device *pd, double x, double y, double *dx, double *dy); void g2_us2pds_int(g2_physical_device *pd, double x, double y, int *ix, int *iy); void g2_us2pds_double(g2_physical_device *pd, double x, double y, double *dx, double *dy); void g2_pdc2uc(g2_physical_device *pd, double ix, double iy, double *x, double *y); void g2_sort2_i(int *a, int *b); void g2_sort2_d(double *a, double *b); void *g2_malloc(size_t size); void *g2_realloc(void *p, size_t size); void g2_free(void *p); double *g2_floatp2doublep(float *f, int N); enum g2_log_level {Error=1, Warning, Verbose, Debug}; void g2_log(enum g2_log_level log_level, const char *format, ...); #endif /* _G2_UTIL_H */ g2-0.72/src/X11/0000755000175000017500000000000010515227220012116 5ustar ljuboljubog2-0.72/src/X11/g2_X11_P.h0000644000175000017500000000724310400652346013521 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_X11_P_H #define _G2_X11_P_H #include #include "g2.h" typedef struct { Display *display; Window window; Window root; Colormap colormap; GC gc; Drawable dest; Pixmap backing_pixmap; unsigned long *inks; /* allocated colors*/ int NofInks; /* N of allocated colors */ int width; /* window dimensions */ int height; int background; } g2_X11_device; int g2_X11_init_X11X(int pid, int width, int height, int xposition, int yposition, char *window_name, char *icon_name, char *icon_data, unsigned int icon_width, unsigned int icon_height); int g2_X11_delete(int pid, void *pdp); int g2_X11_clear(int pid, void *pdp); int g2_X11_flush(int pid, void *pdp); int g2_X11_ink(int pid, void *pdp, double red, double green, double blue); int g2_X11_clear_palette(int pid, void *pdp); int g2_X11_reset_palette(int pid, void *pdp); int g2_X11_set_background(int pid, void *pdp, int color); int g2_X11_pen(int pid, void *pdp, int color); int g2_X11_paper(int pid, void *pdp, int color); int g2_X11_set_line_width(int pid, void *pdp, int w); int g2_X11_set_dash(int pid, void *pdp, int n, int *data); int g2_X11_set_font_size(int pid, void *pdp, int size); int g2_X11_plot(int pid, void *pdp, int x, int y); int g2_X11_line(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_X11_poly_line(int pid, void *pdp, int N, int *p); int g2_X11_polygon(int pid, void *pdp, int N, int *p); int g2_X11_filled_polygon(int pid, void *pdp, int N, int *p); int g2_X11_triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_X11_filled_triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3); int g2_X11_rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_X11_filled_rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2); int g2_X11_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_X11_filled_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2); int g2_X11_ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_X11_filled_ellipse(int pid, void *pdp, int x, int y, int r1, int r2); int g2_X11_draw_string(int pid, void *pdp, int x, int y, const char *text); int g2_X11_image(int pid, void *pdp, int x, int y, int width, int height, int *pen_array); int g2_X11_query_pointer(int pid, void *pdp, int *x, int *y, unsigned int *button); int g2_X11_get_pd_handles(int pid, void *pdp, void *handles[G2_PD_HANDLES_SIZE]); #endif /* _G2_X11_P_H */ g2-0.72/src/X11/g2.xpm0000644000175000017500000001274206650611564013177 0ustar ljuboljubo/* XPM */ static char * g2_xpm[] = { "40 40 137 2", " c none", ". c #6B1214", "+ c #6E1314", "@ c #891C18", "# c #8F1E19", "$ c #821A17", "% c #841A17", "& c #BD2D1E", "* c #EC3C24", "= c #C22F1F", "- c #7D1816", "; c #851A17", "> c #731515", ", c #BC2C1E", "' c #B1291D", ") c #8D1D18", "! c #721415", "~ c #942019", "{ c #A0231B", "] c #C93120", "^ c #6A1214", "/ c #6D1314", "( c #771616", "_ c #8A1C18", ": c #A5251B", "< c #C12E1F", "[ c #D53522", "} c #9E231B", "| c #6F1315", "1 c #681114", "2 c #7A1716", "3 c #831A17", "4 c #7F1817", "5 c #911E19", "6 c #AA271C", "7 c #C73020", "8 c #E03823", "9 c #E73B24", "0 c #D23421", "a c #B42A1D", "b c #962019", "c c #7E1817", "d c #711415", "e c #9B221A", "f c #7F1917", "g c #AF281D", "h c #CA3120", "i c #DD3722", "j c #E13923", "k c #D73522", "l c #C42F1F", "m c #AE281D", "n c #9D221A", "o c #931F19", "p c #8E1E19", "q c #861B18", "r c #751515", "s c #B52A1D", "t c #881B18", "u c #6C1214", "v c #761615", "w c #AD281C", "x c #D83622", "y c #D03321", "z c #C83120", "A c #C22E1F", "B c #BD2D1F", "C c #A9261C", "D c #A4251B", "E c #DB3722", "F c #851B17", "G c #A3241B", "H c #E43A23", "I c #B32A1D", "J c #9C221A", "K c #9E231A", "L c #D33421", "M c #901E19", "N c #A7261C", "O c #C02E1F", "P c #AC271C", "Q c #8E1D18", "R c #761515", "S c #691114", "T c #8B1C18", "U c #761616", "V c #B82B1E", "W c #871B18", "X c #671114", "Y c #8C1D18", "Z c #7B1716", "` c #861B17", " . c #881C18", ".. c #801917", "+. c #A6251C", "@. c #CB3120", "#. c #DC3722", "$. c #791716", "%. c #9A221A", "&. c #BA2C1E", "*. c #98211A", "=. c #B2291D", "-. c #99211A", ";. c #B62B1E", ">. c #D13421", ",. c #D53521", "'. c #CE3321", "). c #952019", "!. c #EB3C24", "~. c #E83B24", "{. c #DE3823", "]. c #9F231B", "^. c #BB2C1E", "/. c #CF3321", "(. c #C32F1F", "_. c #7C1816", ":. c #7E1816", "<. c #DA3622", "[. c #E63A24", "}. c #EA3C24", "|. c #B0281D", "1. c #D63522", "2. c #E23923", "3. c #E53A23", "4. c #AB271C", "5. c #D93622", "6. c #811917", "7. c #97211A", "8. c #7C1716", "9. c #741515", "0. c #A8261C", "a. c #A2241B", "b. c #D43421", "c. c #D43521", "d. c #CC3220", "e. c #E93B24", "f. c #BC2D1E", " ", " ", " ", " ", " ", " ", " ", " . + @ ", " # $ % & * = - ", " ; > , ' ", " ) ! ~ ", " { ] ", " . ^ / ( _ : < [ & } $ | 1 ^ 2 ", " _ 3 4 $ 5 6 7 8 * 9 0 a b c d . . ^ $ 7 ", " e @ f 3 ~ g h i j k l m n o p ) _ q % r s ", " t ! u v # w x y z l A B s C D E ", " ^ | F G H E h I J K D L ", " 3 M N O P Q R u S S . T U ", " } 6 a ^ / f V W X Y 6 5 Z ( u ", " ` .Y ..M G +.{ @.#.x [ C u 2 ", " / $.# $ .Y ", " f %.&. . | $. ", " *.' = v @ +. ", " g &.&.=. $ -.;.>. ", " ,.,.0 y '. ).' 7 >. ", " !.!.~.{.] $ ].^./.k k ", " ~.E (.: T _.:.# C l <.[.!.!.}. ", " 7 |.].e G a 7 1.{.j 2.3.9 9 ", " ].K G 4.' a ;.&.(. #.j 5. ", " 6.% ) }.8 ] ", " >.;.e ", " G _ ( u ", " 7.t 8.R 9.> ", " f o +.' I m 0.D G a.].). ", " 7 b.5.x 1.[ 1.c.d.^.a. ", " * e.9 9 }.* [.1.f. ", " ", " ", " ", " "}; g2-0.72/src/X11/g2_X11.h0000644000175000017500000000253210400652346013236 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_X11_H #define _G2_X11_H #if defined(__cplusplus) extern "C" { #endif int g2_open_X11(int width, int height); int g2_open_X11X(int width, int height, int x, int y, char *window_name, char *icon_name, char *icon_data, int icon_width, int icon_height); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* _G2_X11_H */ g2-0.72/src/X11/g2_X11.c0000644000175000017500000005021710275751767013255 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_util.h" #include "g2_X11_P.h" #include "g2_X11.h" #include "g2_X11_funix.h" #include "g2_config.h" static int N_X11=0; static g2_X11_device *g2_X11_dev=NULL; /** * \ingroup physdev * \defgroup X11 X11 */ /** * * Open a simple X11 window (physical device device). * * \param width window width * \param height window height * \return physical device id * * \ingroup X11 */ int g2_open_X11(int width, int height) { return g2_open_X11X(width, height, 10, 10, NULL, NULL, NULL, -1, -1); } /** * * Open a X11 window (physical device device). If \a icon_width or \a * icon_height is smaller than 0, the \a icon_data is interpreted as a * file name. * * \param width window width * \param height window height * \param x x position on screen * \param y y position on screen * \param window_name hint for window manager * \param icon_name hint for window manager * \param icon_data icon bitmap (\a icon_width * \a icon_height bits) or file name containing bitmap * (if \a icon_width <= 0 or \a icon_height <= 0) * \param icon_width icon width * \param icon_height icon height * \return physical device id * * \ingroup X11 */ int g2_open_X11X(int width, int height, int x, int y, char *window_name, char *icon_name, char *icon_data, int icon_width, int icon_height) { g2_X11_device *xout=NULL; int pid=-1, i; char name[32]; int vid; if(g2_X11_dev==NULL) { g2_X11_dev=g2_malloc(sizeof(g2_X11_device)); N_X11=1; /* first X11 device */ xout=&g2_X11_dev[N_X11-1]; pid=0; } else { for(i=0;iwidth=width; /* set window size */ xout->height=height; xout->NofInks=0; /* reset inks */ xout->inks=NULL; vid = g2_register_physical_device(pid, NULL, g2_IntCoor, g2_X11_funix, 1.0, -1.0, 0.0, height-1); sprintf(name, "g2: %d", vid); /* set window and icon names */ if(window_name==NULL) window_name=name; if(icon_name==NULL) icon_name=name; g2_X11_init_X11X(pid, width, height, x, y, window_name, icon_name, icon_data, icon_width, icon_height); /* g2 calls */ g2_allocate_basic_colors(vid); g2_set_background(vid, 0); g2_pen(vid, 1); return vid; } /* * * Extended version of the InitX11 * */ int g2_X11_init_X11X(int pid, int width, int height, int xposition, int yposition, char *window_name, char *icon_name, char *icon_data, unsigned int icon_width, unsigned int icon_height) { g2_X11_device *xout=&g2_X11_dev[pid]; Window root; XSetWindowAttributes wattr; XEvent event; Pixmap iconPixmap; XSizeHints sizehints; int xhot, yhot, rv; XColor w_scr, w_exa, r_scr, r_exa; XClassHint class_hint; if((xout->display=XOpenDisplay(NULL))==NULL) { g2_log(Error, "g2: can't open X11 display - check DISPLAY environment variable\n"); exit(-1); } xout->root=RootWindow(xout->display, DefaultScreen(xout->display)); root=xout->root; wattr.event_mask=ExposureMask; xout->window=XCreateWindow(xout->display, root, xposition, yposition, width, height, 0, CopyFromParent, InputOutput, CopyFromParent, CWEventMask, &wattr); xout->gc=XCreateGC(xout->display, xout->window, 0lu, NULL); xout->colormap=DefaultColormap(xout->display, DefaultScreen(xout->display)); XAllocNamedColor(xout->display, xout->colormap, "red", &r_scr, &r_exa); XAllocNamedColor(xout->display, xout->colormap, "white", &w_scr, &w_exa); if(icon_data!=NULL) { if(icon_width<=0 || icon_height<=0) { /* read icon from file */ rv=XReadBitmapFile(xout->display, xout->window, icon_data, &icon_width, &icon_height, &iconPixmap, &xhot, &yhot); } else { /* icon is bitmap */ iconPixmap=XCreatePixmapFromBitmapData(xout->display, xout->window, icon_data, icon_width, icon_height, 1ul, 0ul, 1); rv=BitmapSuccess; } switch(rv) { case BitmapOpenFailed: fputs("g2(OpenXX): bitmap file open failed\n",stderr); break; case BitmapFileInvalid: fputs("g2(OpenXX): bitmap file invalid\n",stderr); break; case BitmapNoMemory: fputs("g2(OpenXX): no enough memeory for bitmap\n",stderr); break; } } else { /* no icon data avail. */ unsigned char bitmapData[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0xe0, 0x0d,0x00,0x00,0x00,0x60,0x0c,0x00,0x00,0x00,0x20,0x18, 0x00,0x00,0x00,0x00,0x10,0x00,0xf8,0xe3,0x07,0x08,0x00, 0xfe,0xfa,0x07,0x0c,0x00,0xbf,0x6e,0x07,0x06,0x80,0x0f, 0xf5,0x00,0x01,0x80,0x05,0x34,0x80,0x09,0xc0,0x03,0x78, 0xe0,0x18,0x80,0x00,0x70,0xe0,0x1e,0xc0,0x01,0x70,0x70, 0x1b,0xc0,0x01,0x50,0x00,0x00,0xc0,0x01,0x70,0x00,0x00, 0xc0,0x00,0x70,0x00,0x00,0x40,0x03,0x38,0x00,0x00,0x80, 0x05,0x50,0x00,0x00,0x80,0x0a,0x6e,0x00,0x00,0x00,0xfe, 0x37,0x00,0x00,0x00,0x6a,0x59,0x00,0x00,0x00,0xbc,0x57, 0x00,0x00,0x00,0xe0,0x50,0x00,0x00,0x00,0x00,0x60,0x00, 0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x7e,0x00,0x00, 0x00,0x7c,0x2b,0x00,0x00,0x00,0xa4,0x1d,0x00,0x00,0x00, 0xb8,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00}; iconPixmap=XCreatePixmapFromBitmapData(xout->display, xout->window, (char*)bitmapData, 40u, 40u, w_scr.pixel, r_scr.pixel, 1ul); } sizehints.x = xposition; sizehints.y = yposition; sizehints.min_width = width; sizehints.max_width = width; sizehints.min_height = height; sizehints.max_height = height; sizehints.flags = PPosition | PMinSize | PMaxSize; XSetStandardProperties(xout->display, xout->window, window_name, icon_name, iconPixmap, (char **)NULL, 0, &sizehints); class_hint.res_name = "g2"; class_hint.res_class = "G2"; XSetClassHint(xout->display, xout->window, &class_hint); XMapRaised(xout->display, xout->window); /* XSetWindowBackground(xout->display, xout->window, w_scr.pixel); */ XClearWindow(xout->display,xout->window); g2_X11_paper(pid, NULL, 0); g2_X11_set_font_size(pid, NULL, 12); /* wait expose event */ /* (no back. store) */ while(!XCheckWindowEvent(xout->display,xout->window, ExposureMask,&event)) ; wattr.event_mask=NoEventMask; /* set NoEventMask */ wattr.backing_store=Always; /* set backing store */ XChangeWindowAttributes(xout->display, xout->window, CWEventMask|CWBackingStore, &wattr); xout->dest = xout->window; xout->backing_pixmap = None; if(XDoesBackingStore(XDefaultScreenOfDisplay(xout->display))!=Always) { if(g2_EmulateBackingStore) { g2_log(Warning, "g2: Warning! Backing store is not available. Allocating pixmap instead.\n"); xout->backing_pixmap = XCreatePixmap(xout->display, xout->window, xout->width, xout->height, DefaultDepth(xout->display, DefaultScreen(xout->display))); XSetWindowBackgroundPixmap(xout->display, xout->window, xout->backing_pixmap); XSetForeground (xout->display, xout->gc, w_scr.pixel); XFillRectangle(xout->display, xout->backing_pixmap, xout->gc, 0, 0, xout->width, xout->height); xout->dest = xout->backing_pixmap; } else { g2_log(Warning, "g2: Warning! Backing store is not available.\n"); } } XFlush(xout->display); return 0; } int g2_X11_delete(int pid, void *pdp) { g2_X11_device *xout=&g2_X11_dev[pid]; XUnmapWindow(xout->display, xout->window); if (xout->backing_pixmap != None) XFreePixmap(xout->display,xout->backing_pixmap); XDestroyWindow(xout->display, xout->window); XDestroyWindow(xout->display, xout->root); XFreeGC(xout->display, xout->gc); XFreeColormap(xout->display, xout->colormap); XCloseDisplay(xout->display); if(xout->inks!=NULL) g2_free(xout->inks); xout->width=xout->height=0; xout->display=NULL; return 0; } int g2_X11_clear(int pid, void *pdp) { g2_X11_device *xout=&g2_X11_dev[pid]; if (xout->backing_pixmap == None) { XClearWindow(xout->display,xout->window); } else { XSetForeground (xout->display, xout->gc, xout->background); XFillRectangle(xout->display, xout->dest, xout->gc, 0, 0, xout->width, xout->height); } g2_X11_flush(pid, pdp); return 0; } int g2_X11_flush(int pid, void *pdp) { g2_X11_device *xout=&g2_X11_dev[pid]; if( xout->backing_pixmap != None ) { XCopyArea(xout->display, xout->dest, xout->window, xout->gc, 0, 0, xout->width, xout->height, 0, 0); } XFlush(xout->display); return 0; } int g2_X11_ink(int pid, void *pdp, double red, double green, double blue) { g2_X11_device *xout=&g2_X11_dev[pid]; XColor color; color.flags=DoRed|DoGreen|DoBlue; color.red = (int)(red * USHRT_MAX); color.green = (int)(green * USHRT_MAX); color.blue = (int)(blue * USHRT_MAX); if(XAllocColor(xout->display,xout->colormap,&color)) { xout->NofInks++; if(xout->inks==NULL) xout->inks= (unsigned long *)g2_malloc(xout->NofInks*sizeof(unsigned long)); else xout->inks= (unsigned long *)g2_realloc((void *)xout->inks, xout->NofInks*sizeof(unsigned long)); if(xout->inks==NULL) { fputs("g2: not enough memory\n",stderr); return -1; } xout->inks[xout->NofInks-1]=color.pixel; return xout->NofInks-1; } else { fputs("g2: color is not available\n",stderr); return -1; } } int g2_X11_clear_palette(int pid, void *pdp) { g2_X11_device *xout=&g2_X11_dev[pid]; XFreeColors(xout->display,xout->colormap, xout->inks,xout->NofInks,0x0ul); xout->NofInks=0; if(xout->inks!=NULL) free(xout->inks); xout->inks=NULL; return 0; } int g2_X11_set_background(int pid, void *pdp, int color) { g2_X11_device *xout=&g2_X11_dev[pid]; if(color>=xout->NofInks || color<0) return -1; if (xout->backing_pixmap == None) { XSetWindowBackground(xout->display,xout->dest, xout->inks[color]); } else { xout->background = xout->inks[color]; } g2_X11_clear(pid,pdp); return 0; } int g2_X11_pen(int pid, void *pdp, int color) { g2_X11_device *xout=&g2_X11_dev[pid]; if(color>=xout->NofInks || color<0) return -1; XSetForeground(xout->display, xout->gc, xout->inks[color]); return 0; } int g2_X11_paper(int pid, void *pdp, int color) { g2_X11_device *xout=&g2_X11_dev[pid]; if(color>=xout->NofInks || color<0) return -1; XSetBackground(xout->display, xout->gc, xout->inks[color]); return 0; } int g2_X11_set_line_width(int pid, void *pdp, int w) { g2_X11_device *xout=&g2_X11_dev[pid]; XGCValues val; val.line_width=w; XChangeGC(xout->display, xout->gc, GCLineWidth, &val); return 0; } int g2_X11_set_dash(int pid, void *pdp, int n, int *data) { g2_X11_device *xout=&g2_X11_dev[pid]; XGCValues val; int i; if(n<=0 || data==NULL) { val.line_style=LineSolid; XChangeGC(xout->display, xout->gc, GCLineStyle,&val); } else { char *ch_data; ch_data=g2_malloc(n*sizeof(char)); val.line_style=LineOnOffDash; for(i=0;i0) ch_data[i]=(char)data[i]; else ch_data[i]=1; XChangeGC(xout->display, xout->gc, GCLineStyle, &val); XSetDashes(xout->display, xout->gc, 0, ch_data, n); g2_free(ch_data); } return 0; } int g2_X11_set_font_size(int pid, void *pdp, int size) { g2_X11_device *xout=&g2_X11_dev[pid]; XFontStruct *fnt_str; char font_name[256]; int sizei, d, n; sizei=dtoi(size); if(sizei<=0) sizei=1; /* set to smallest size */ for(n=1;n<32;n++) { d=((n&0x01)? -1:1)*(n>>1); sprintf(font_name, g2_X11Font, sizei+d); fnt_str=XLoadQueryFont(xout->display, font_name); if(fnt_str==NULL) { if(!d) fprintf(stderr,"g2: can not load font: '%s'\n",font_name); } else { XSetFont(xout->display,xout->gc,fnt_str->fid); if(d) fprintf(stderr,"g2: using '%s' instead\n",font_name); return 0; } } fprintf(stderr, "g2: are you sure about %d point size\n", size); return -1; } int g2_X11_plot(int pid, void *pdp, int x, int y) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawPoint(xout->display, xout->dest, xout->gc, x, y); return 0; } int g2_X11_line(int pid, void *pdp, int x1, int y1, int x2, int y2) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawLine(xout->display,xout->dest,xout->gc, x1, y1, x2, y2); return 0; } int g2_X11_poly_line(int pid, void *pdp, int N, int *p) { g2_X11_device *xout=&g2_X11_dev[pid]; XPoint *points; int i; points=g2_malloc(N*sizeof(XPoint)); for(i=0;idisplay,xout->dest,xout->gc, points, N, CoordModeOrigin); g2_free(points); return 0; } int g2_X11_polygon(int pid, void *pdp, int N, int *p) { g2_X11_device *xout=&g2_X11_dev[pid]; XPoint *points; int i; points=g2_malloc((N+1)*sizeof(XPoint)); for(i=0;idisplay,xout->dest,xout->gc, points, N+1, CoordModeOrigin); g2_free(points); return 0; } int g2_X11_filled_polygon(int pid, void *pdp, int N, int *p) { g2_X11_device *xout=&g2_X11_dev[pid]; XPoint *points; int i; points=g2_malloc((N+1)*sizeof(XPoint)); for(i=0;idisplay,xout->dest,xout->gc, points, N+1, Complex, CoordModeOrigin); g2_free(points); return 0; } int g2_X11_triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3) { g2_X11_device *xout=&g2_X11_dev[pid]; XPoint points[4]; points[0].x=x1; points[0].y=y1; points[1].x=x2; points[1].y=y2; points[2].x=x3; points[2].y=y3; points[3].x=x1; points[3].y=y1; XDrawLines(xout->display,xout->dest,xout->gc, points, 4, CoordModeOrigin); return 0; } int g2_X11_filled_triangle(int pid, void *pdp, int x1, int y1, int x2, int y2, int x3, int y3) { g2_X11_device *xout=&g2_X11_dev[pid]; XPoint points[4]; points[0].x=x1; points[0].y=y1; points[1].x=x2; points[1].y=y2; points[2].x=x3; points[2].y=y3; points[3].x=x1; points[3].y=y1; XFillPolygon(xout->display,xout->dest,xout->gc, points, 4, Convex, CoordModeOrigin); return 0; } int g2_X11_rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawRectangle(xout->display,xout->dest,xout->gc, x1, y1, x2-x1, y2-y1); return 0; } int g2_X11_filled_rectangle(int pid, void *pdp, int x1, int y1, int x2, int y2) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawRectangle(xout->display,xout->dest,xout->gc, x1, y1, x2-x1, y2-y1); XFillRectangle(xout->display,xout->dest,xout->gc, x1, y1, x2-x1, y2-y1); return 0; } int g2_X11_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { g2_X11_device *xout=&g2_X11_dev[pid]; double a0, d; a0=fmod(a1, 360.) + (a1<0? 360:0); /* map a1 to [0, 360) */ d=a2>a1? a2-a1:a2-a1+360; XDrawArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, (int)(a0*64.), (int)(d*64.)); return 0; } int g2_X11_filled_arc(int pid, void *pdp, int x, int y, int r1, int r2, double a1, double a2) { g2_X11_device *xout=&g2_X11_dev[pid]; double a0, d; a0=fmod(a1, 360.) + (a1<0? 360:0); /* map a1 to [0, 360) */ d=a2>a1? a2-a1:a2-a1+360; XDrawArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, (int)(a0*64.), (int)(d*64.)); XFillArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, (int)(a0*64.), (int)(d*64.)); return 0; } int g2_X11_ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, 0,360*64); return 0; } int g2_X11_filled_ellipse(int pid, void *pdp, int x, int y, int r1, int r2) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, 0,360*64); XFillArc(xout->display,xout->dest,xout->gc, x-r1, y-r2, r1*2, r2*2, 0,360*64); XFlush(xout->display); return 0; } int g2_X11_draw_string(int pid, void *pdp, int x, int y, const char *text) { g2_X11_device *xout=&g2_X11_dev[pid]; XDrawString(xout->display,xout->dest,xout->gc, x, y, text, strlen(text)); return 0; } int g2_X11_image(int pid, void *pdp, int x, int y, int width, int height, int *pen_array) { g2_X11_device *xout=&g2_X11_dev[pid]; XImage *image=NULL; Screen *screen; unsigned long *ink_array; int i; ink_array=malloc(sizeof(unsigned long)*width*height); for(i=0;iinks[pen_array[i]]; screen=DefaultScreenOfDisplay(xout->display); image=XCreateImage(xout->display, DefaultVisualOfScreen(screen), DefaultDepthOfScreen(screen), ZPixmap, 0, /* offset */ (char *)ink_array, width, height, sizeof(unsigned long)*8, /* bitmap pad */ 0); /* bytes per line */ /* XInitImage(image); problems with AIX ?!! */ XPutImage(xout->display, xout->dest, xout->gc, image, 0, 0, x, y, width, height); XDestroyImage(image); free(ink_array); return 0; } int g2_X11_query_pointer(int pid, void *pdp, int *x, int *y, unsigned int *button) { Bool rv; g2_X11_device *xout=&g2_X11_dev[pid]; Window root, child; int rx, ry; rv = XQueryPointer(xout->display, xout->window, &root, &child, &rx, &ry, x, y, button); if(rv) return 0; else return 1; } int g2_X11_get_pd_handles(int pid, void *pdp, void *handles[G2_PD_HANDLES_SIZE]) { g2_X11_device *xout=&g2_X11_dev[pid]; handles[0]=xout->display; handles[1]=&xout->window; handles[2]=&xout->root; handles[3]=&xout->colormap; handles[4]=&xout->gc; handles[5]=&xout->dest; return 0; } g2-0.72/src/X11/g2_X11_funix.h0000644000175000017500000000504410253640645014455 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_X11_FUNIX_H #define _G2_X11_FUNIX_H #include "g2_X11_P.h" #include "g2_physical_device.h" const g2_funix_fun g2_X11_funix[] = { { g2_Delete, g2_X11_delete }, { g2_Ink, g2_X11_ink }, { g2_Pen, g2_X11_pen }, { g2_SetBackground, g2_X11_set_background }, { g2_ClearPalette, g2_X11_clear_palette }, { g2_SetLineWidth, g2_X11_set_line_width }, { g2_SetDash, g2_X11_set_dash }, { g2_SetFontSize, g2_X11_set_font_size }, { g2_Clear, g2_X11_clear }, { g2_Flush, g2_X11_flush }, { g2_Save, g2_X11_flush }, { g2_Plot, g2_X11_plot }, { g2_Line, g2_X11_line }, { g2_PolyLine, g2_X11_poly_line }, { g2_Polygon, g2_X11_polygon }, { g2_FilledPolygon, g2_X11_filled_polygon }, { g2_Rectangle, g2_X11_rectangle }, { g2_FilledRectangle, g2_X11_filled_rectangle }, { g2_Triangle, g2_X11_triangle }, { g2_FilledTriangle, g2_X11_filled_triangle }, { g2_Arc, g2_X11_arc }, { g2_FilledArc, g2_X11_filled_arc }, { g2_Ellipse, g2_X11_ellipse }, { g2_FilledEllipse, g2_X11_filled_ellipse }, { g2_Circle, NULL }, { g2_FilledCircle, NULL }, { g2_String, g2_X11_draw_string }, { g2_Image, NULL }, { g2_QueryPointer, g2_X11_query_pointer }, { g2_GetPDHandles, g2_X11_get_pd_handles }, { g2_FUNIX_NULL, NULL } }; #endif /* _G2_X11_FUNIX_H */ g2-0.72/src/g2_control_pd.c0000644000175000017500000001404610253640644014461 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include "g2.h" #include "g2_device.h" #include "g2_physical_device.h" #include "g2_util.h" #include "g2_funix.h" /* * * Flush output * */ void g2_flush_pd(g2_physical_device *pd) { if(pd->ff[g2_Flush].fun!=NULL) { pd->ff[g2_Flush].fun(pd->pid, pd->pdp); } else { /* emulate ... with .... */ } } /* * * Save output * */ void g2_save_pd(g2_physical_device *pd) { if(pd->ff[g2_Save].fun!=NULL) { pd->ff[g2_Save].fun(pd->pid, pd->pdp); } else { /* emulate ... with .... */ } } /* * * Clear device * */ void g2_clear_pd(g2_physical_device *pd) { if(pd->ff[g2_Clear].fun!=NULL) { pd->ff[g2_Clear].fun(pd->pid, pd->pdp); } else { /* emulate ... with .... */ } } /* * * Set pen * */ void g2_pen_pd(g2_physical_device *pd, int color) { if(pd->ff[g2_Pen].fun!=NULL) { pd->ff[g2_Pen].fun(pd->pid, pd->pdp, color); } else { /* emulate ... with .... */ } } /* * * Set background color * */ void g2_set_background_pd(g2_physical_device *pd, int color) { if(pd->ff[g2_SetBackground].fun!=NULL) { pd->ff[g2_SetBackground].fun(pd->pid, pd->pdp, color); } else { /* emulate ... with .... */ } } /* * * Set ink * */ int g2_ink_pd(g2_physical_device *pd, double red, double green, double blue) { int rv=-1; if(pd->ff[g2_Ink].fun!=NULL) { rv=pd->ff[g2_Ink].fun(pd->pid, pd->pdp, red, green, blue); } else { /* emulate ... with .... */ } return rv; } /* * * Clear palette * */ void g2_clear_palette_pd(g2_physical_device *pd) { if(pd->ff[g2_ClearPalette].fun!=NULL) { pd->ff[g2_ClearPalette].fun(pd->pid, pd->pdp); } else { /* emulate ... with .... */ } } /* * * Allocate basic colors * */ void g2_allocate_basic_colors_pd(g2_physical_device *pd) { double ct[3]={0.0, 0.5, 1.0}; int r, g, b; if(pd->ff[g2_Ink].fun!=NULL) { pd->ff[g2_Ink].fun(pd->pid, pd->pdp, /* white */ 1.0, 1.0, 1.0); pd->ff[g2_Ink].fun(pd->pid, pd->pdp, /* black */ 0.0, 0.0, 0.0); for(r=0;r<3;r++) for(g=0;g<3;g++) for(b=0;b<3;b++) if((r==2 && g==2 && b==2) || (r==0 && g==0 && b==0)) continue; else pd->ff[g2_Ink].fun(pd->pid, pd->pdp, ct[r], ct[g], ct[b]); } } /* * * Set font size * */ void g2_set_font_size_pd(g2_physical_device *pd, double size) { int is; double ds; if(pd->ff[g2_SetFontSize].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: is=dtoi(size*fabs(pd->a22)); /* to pd coordinates */ pd->ff[g2_SetFontSize].fun(pd->pid, pd->pdp, is); break; case g2_DoubleCoor: ds=size*fabs(pd->a22); /* to pd coordinates */ pd->ff[g2_SetFontSize].fun(pd->pid, pd->pdp, ds); break; } } else { /* emulate ... with .... */ } } /* * * Set line width * */ void g2_set_line_width_pd(g2_physical_device *pd, double w) { int iw; double dw; if(pd->ff[g2_SetLineWidth].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: iw=dtoi(w*fabs(pd->a22)); /* to pd coordinates */ pd->ff[g2_SetLineWidth].fun(pd->pid, pd->pdp, iw); break; case g2_DoubleCoor: dw=w*fabs(pd->a22); /* to pd coordinates */ pd->ff[g2_SetLineWidth].fun(pd->pid, pd->pdp, dw); break; } } else { /* emulate ... with .... */ } } /* * * Set dash * */ void g2_set_dash_pd(g2_physical_device *pd, int N, double *dashes) { int j; double *dd=NULL; int *id=NULL; if(pd->ff[g2_SetDash].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: if(dashes!=NULL) { id=g2_malloc(N*sizeof(int)); for(j=0;ja22)); pd->ff[g2_SetDash].fun(pd->pid, pd->pdp, N, id); g2_free(id); } else pd->ff[g2_SetDash].fun(pd->pid, pd->pdp, 0, NULL); break; case g2_DoubleCoor: if(dashes!=NULL) { dd=g2_malloc(N*sizeof(double)); for(j=0;ja22); pd->ff[g2_SetDash].fun(pd->pid, pd->pdp, N, dd); g2_free(dd); break; } else pd->ff[g2_SetDash].fun(pd->pid, pd->pdp, 0, NULL); } } else { /* emulate ... with .... */ } } /* * * Query pointer position and button state * */ void g2_query_pointer_pd(g2_physical_device *pd, double *x, double *y, unsigned int *button) { int ix, iy; double dx, dy; if(pd->ff[g2_QueryPointer].fun!=NULL) { switch(pd->coor_type) { case g2_IntCoor: pd->ff[g2_QueryPointer].fun(pd->pid, pd->pdp, &ix, &iy, button); g2_pdc2uc(pd, ix, iy, x, y); break; case g2_DoubleCoor: pd->ff[g2_QueryPointer].fun(pd->pid, pd->pdp, &dx, &dy, button); g2_pdc2uc(pd, dx, dy, x, y); break; } } else { /* no emulation for query pointer */ } } /* * * Get low level handles * */ void g2_get_pd_handles_pd(g2_physical_device *pd, void *handles[G2_PD_HANDLES_SIZE]) { if(pd->ff[g2_GetPDHandles].fun!=NULL) { pd->ff[g2_GetPDHandles].fun(pd->pid, pd->pdp, handles); } else { /* no emulation for low level handles */ } } g2-0.72/src/g2_control_pd.h0000644000175000017500000000361010253640644014461 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _G2_CONTROL_PD_H #define _G2_CONTROL_PD_H #include "g2_physical_device.h" void g2_flush_pd(g2_physical_device *pd); void g2_save_pd(g2_physical_device *pd); void g2_clear_pd(g2_physical_device *pd); void g2_pen_pd(g2_physical_device *pd, int color); void g2_set_background_pd(g2_physical_device *pd, int color); int g2_ink_pd(g2_physical_device *pd, double red, double green, double blue); void g2_clear_palette_pd(g2_physical_device *pd); void g2_allocate_basic_colors_pd(g2_physical_device *pd); void g2_set_font_size_pd(g2_physical_device *pd, double size); void g2_set_line_width_pd(g2_physical_device *pd, double w); void g2_set_dash_pd(g2_physical_device *pd, int N, double *dashes); void g2_query_pointer_pd(g2_physical_device *pd, double *x, double *y, unsigned int *button); void g2_get_pd_handles_pd(g2_physical_device *pd, void *handles[G2_PD_HANDLES_SIZE]); #endif /* _G2_CONTROL_PD_H */ g2-0.72/src/g2_physical_device.c0000644000175000017500000000427007267122246015453 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include "g2_physical_device.h" #include "g2_funix.h" #include "g2_util.h" g2_physical_device *g2_create_physical_device(int pid, void *pdp, g2_coor ct, const g2_funix_fun *ff, double a11, double a22, double b1, double b2) { g2_physical_device *rd; int i, j; rd=g2_malloc(sizeof(g2_physical_device)); rd->pid=pid; /* physical device id (handled by driver) */ rd->pdp=pdp; /* pointer to something */ rd->coor_type=ct; /* coord. type */ rd->a11=a11; /* device->physical device transformation */ rd->a22=a22; rd->b1=b1; rd->b2=b2; rd->x_origin=0.0; /* User coordinates specification */ rd->y_origin=0.0; rd->x_mul=1.0; rd->y_mul=1.0; rd->ff=g2_malloc(G2_N_FUNIX*sizeof(g2_funix_fun)); for(i=0;iff[i].fx=i; rd->ff[i].fun=NULL; for(j=0;ff[j].fx!=g2_FUNIX_NULL;j++) if(ff[j].fx==i) { rd->ff[i].fun = ff[j].fun; break; } } return rd; } /* * * Destroy physical device * */ void g2_destroy_physical_device(g2_physical_device *pd) { g2_free(pd->ff); g2_free(pd); } g2-0.72/g2dll.dsp0000644000175000017500000001163610040320555012477 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="g2dll" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=g2dll - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "g2dll.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "g2dll.mak" CFG="g2dll - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "g2dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "g2dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "g2dll - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "G2DLL_EXPORTS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "../gd" /I "./src" /I "../src" /D "NDEBUG" /D "MAKEDLL" /D "G2DLL" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "G2DLL_EXPORTS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 !ELSEIF "$(CFG)" == "g2dll - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "g2dll___Win32_Debug" # PROP BASE Intermediate_Dir "g2dll___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "G2DLL_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "../gd" /I "./src" /I "../src" /D "_DEBUG" /D "MAKEDLL" /D "G2DLL" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "G2DLL_EXPORTS" /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept !ENDIF # Begin Target # Name "g2dll - Win32 Release" # Name "g2dll - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=.\src\g2_control_pd.c # End Source File # Begin Source File SOURCE=.\src\g2_device.c # End Source File # Begin Source File SOURCE=.\src\g2_fif.c # End Source File # Begin Source File SOURCE=.\src\g2_graphic_pd.c # End Source File # Begin Source File SOURCE=.\src\g2_physical_device.c # End Source File # Begin Source File SOURCE=.\src\PS\g2_PS.c # End Source File # Begin Source File SOURCE=.\src\g2_splines.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_control.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_device.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_graphic.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_virtual_device.c # End Source File # Begin Source File SOURCE=.\src\g2_util.c # End Source File # Begin Source File SOURCE=.\src\g2_virtual_device.c # End Source File # Begin Source File SOURCE=.\src\Win32\g2_win32.c # End Source File # Begin Source File SOURCE=.\src\Win32\g2_win32_thread.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project g2-0.72/simple_win32.dsp0000644000175000017500000001056010040320555014001 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="simple_win32" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=simple_win32 - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "simple_win32.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "simple_win32.mak" CFG="simple_win32 - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "simple_win32 - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "simple_win32 - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "simple_win32 - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /W3 /GX /O2 /I "src/gd" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 !ELSEIF "$(CFG)" == "simple_win32 - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "simple_win32___Win32_Debug" # PROP BASE Intermediate_Dir "simple_win32___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "src/gd" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept !ENDIF # Begin Target # Name "simple_win32 - Win32 Release" # Name "simple_win32 - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=.\demo\simple_win32.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project g2-0.72/perl/0000755000175000017500000000000010515227215011724 5ustar ljuboljubog2-0.72/perl/g2.pm0000644000175000017500000000027407437037270012606 0ustar ljuboljubo# This file was automatically generated by SWIG package g2; require Exporter; require DynaLoader; @ISA = qw(Exporter DynaLoader); package g2; bootstrap g2; package g2; @EXPORT = qw( ); 1; g2-0.72/perl/g2_wrap.c0000644000175000017500000014101207525352564013445 0ustar ljuboljubo/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.13u-20020617-2210 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ /*********************************************************************** * common.swg * * This file contains generic SWIG runtime support for pointer * type checking as well as a few commonly used macros to control * external linkage. * * Author : David Beazley (beazley@cs.uchicago.edu) * * Copyright (c) 1999-2000, The University of Chicago * * This file may be freely redistributed without license or fee provided * this copyright message remains intact. ************************************************************************/ #include #if defined(_WIN32) || defined(__WIN32__) # if defined(_MSC_VER) # if defined(STATIC_LINKED) # define SWIGEXPORT(a) a # define SWIGIMPORT(a) extern a # else # define SWIGEXPORT(a) __declspec(dllexport) a # define SWIGIMPORT(a) extern a # endif # else # if defined(__BORLANDC__) # define SWIGEXPORT(a) a _export # define SWIGIMPORT(a) a _export # else # define SWIGEXPORT(a) a # define SWIGIMPORT(a) a # endif # endif #else # define SWIGEXPORT(a) a # define SWIGIMPORT(a) a #endif #ifdef SWIG_GLOBAL #define SWIGRUNTIME(a) SWIGEXPORT(a) #else #define SWIGRUNTIME(a) static a #endif #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *); typedef struct swig_type_info *(*swig_dycast_func)(void **); typedef struct swig_type_info { const char *name; swig_converter_func converter; const char *str; swig_dycast_func dcast; struct swig_type_info *next; struct swig_type_info *prev; void *clientdata; } swig_type_info; #ifdef SWIG_NOINCLUDE SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *); SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *); SWIGIMPORT(void *) SWIG_TypeCast(swig_type_info *, void *); SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **); SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *); SWIGIMPORT(void) SWIG_TypeClientData(swig_type_info *, void *); #else static swig_type_info *swig_type_list = 0; /* Register a type mapping with the type-checking */ SWIGRUNTIME(swig_type_info *) SWIG_TypeRegister(swig_type_info *ti) { swig_type_info *tc, *head, *ret, *next; /* Check to see if this type has already been registered */ tc = swig_type_list; while (tc) { if (strcmp(tc->name, ti->name) == 0) { /* Already exists in the table. Just add additional types to the list */ head = tc; next = tc->next; goto l1; } tc = tc->prev; } head = ti; next = 0; /* Place in list */ ti->prev = swig_type_list; swig_type_list = ti; /* Build linked lists */ l1: ret = head; tc = ti + 1; /* Patch up the rest of the links */ while (tc->name) { head->next = tc; tc->prev = head; head = tc; tc++; } head->next = next; return ret; } /* Check the typename */ SWIGRUNTIME(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *ty) { swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ while (s) { if (strcmp(s->name,c) == 0) { if (s == ty->next) return s; /* Move s to the top of the linked list */ s->prev->next = s->next; if (s->next) { s->next->prev = s->prev; } /* Insert s as second element in the list */ s->next = ty->next; if (ty->next) ty->next->prev = s; ty->next = s; return s; } s = s->next; } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIME(void *) SWIG_TypeCast(swig_type_info *ty, void *ptr) { if ((!ty) || (!ty->converter)) return ptr; return (*ty->converter)(ptr); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Search for a swig_type_info structure */ SWIGRUNTIME(swig_type_info *) SWIG_TypeQuery(const char *name) { swig_type_info *ty = swig_type_list; while (ty) { if (ty->str && (strcmp(name,ty->str) == 0)) return ty; if (ty->name && (strcmp(name,ty->name) == 0)) return ty; ty = ty->prev; } return 0; } /* Set the clientdata field for a type */ SWIGRUNTIME(void) SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_type_info *tc, *equiv; if (ti->clientdata) return; ti->clientdata = clientdata; equiv = ti->next; while (equiv) { if (!equiv->converter) { tc = swig_type_list; while (tc) { if ((strcmp(tc->name, equiv->name) == 0)) SWIG_TypeClientData(tc,clientdata); tc = tc->prev; } } equiv = equiv->next; } } #endif #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * perl5.swg * * Perl5 runtime library * $Header: /cvsroot/g2/g2/g2/perl/g2_wrap.c,v 1.2 2002/08/11 03:09:40 wagner Exp $ * ----------------------------------------------------------------------------- */ #define SWIGPERL #define SWIGPERL5 #ifdef __cplusplus /* Needed on some windows machines---since MS plays funny games with the header files under C++ */ #include #include extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" /* Get rid of free and malloc defined by perl */ #undef free #undef malloc #ifndef pTHX_ #define pTHX_ #endif #include #ifdef __cplusplus } #endif /* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */ #ifdef PERL_OBJECT #define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this; typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *); #ifdef __cplusplus } #endif #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) #define SWIGCLASS_STATIC #else #define MAGIC_PPERL #define SWIGCLASS_STATIC static #ifndef MULTIPLICITY #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) typedef int (*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFuncHack)(SV *, MAGIC *); #ifdef __cplusplus } #endif #else #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b) typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *); #ifdef __cplusplus } #endif #endif #endif #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE) #define PerlIO_exportFILE(fh,fl) (FILE*)(fh) #endif /* Modifications for newer Perl 5.005 releases */ #if !defined(PERL_REVISION) || ((PERL_REVISION >= 5) && ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 50)))) #ifndef PL_sv_yes #define PL_sv_yes sv_yes #endif #ifndef PL_sv_undef #define PL_sv_undef sv_undef #endif #ifndef PL_na #define PL_na na #endif #endif #include #ifdef __cplusplus extern "C" { #endif #ifdef SWIG_NOINCLUDE #ifndef PERL_OBJECT extern int SWIG_ConvertPtr(SV *, void **, swig_type_info *, int flags); extern void SWIG_MakePtr(SV *, void *, swig_type_info *, int flags); #else extern int _SWIG_ConvertPtr(CPerlObj *, SV *, void **, swig_type_info *,int flags); extern void _SWIG_MakePtr(CPerlObj *, SV *, void *, swig_type_info *, int flags); #define SWIG_ConvertPtr(a,b,c,d) _SWIG_ConvertPtr(pPerl,a,b,c,d) #define SWIG_MakePtr(a,b,c,d) _SWIG_MakePtr(pPerl,a,b,c,d) #endif #else /* Function for getting a pointer value */ #ifndef PERL_OBJECT SWIGRUNTIME(int) SWIG_ConvertPtr(SV *sv, void **ptr, swig_type_info *_t, int flags) #else #define SWIG_ConvertPtr(a,b,c,d) _SWIG_ConvertPtr(pPerl,a,b,c,d) SWIGRUNTIME(int) _SWIG_ConvertPtr(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t, int flags) #endif { char *_c; swig_type_info *tc; IV tmp; /* If magical, apply more magic */ if (SvGMAGICAL(sv)) mg_get(sv); /* Check to see if this is an object */ if (sv_isobject(sv)) { SV *tsv = (SV*) SvRV(sv); if ((SvTYPE(tsv) == SVt_PVHV)) { MAGIC *mg; if (SvMAGICAL(tsv)) { mg = mg_find(tsv,'P'); if (mg) { SV *rsv = mg->mg_obj; if (sv_isobject(rsv)) { tmp = SvIV((SV*)SvRV(rsv)); } } } else { return -1; } } else { tmp = SvIV((SV*)SvRV(sv)); } if (!_t) { *(ptr) = (void *) tmp; return 0; } } else if (! SvOK(sv)) { /* Check for undef */ *(ptr) = (void *) 0; return 0; } else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */ *(ptr) = (void *) 0; if (!SvROK(sv)) return 0; else return -1; } else { /* Don't know what it is */ *(ptr) = (void *) 0; return -1; } if (_t) { /* Now see if the types match */ _c = HvNAME(SvSTASH(SvRV(sv))); tc = SWIG_TypeCheck(_c,_t); if (!tc) { *ptr = (void *) tmp; return -1; } *ptr = SWIG_TypeCast(tc,(void *)tmp); return 0; } *ptr = (void *) tmp; return 0; } #ifndef PERL_OBJECT SWIGRUNTIME(void) SWIG_MakePtr(SV *sv, void *ptr, swig_type_info *t,int flags) #else #define SWIG_MakePtr(a,b,c,d) _SWIG_MakePtr(pPerl,a,b,c,d) SWIGRUNTIME(void) _SWIG_MakePtr(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t, int flags) #endif { sv_setref_pv(sv, (char *) t->name, ptr); } #endif typedef XS(SwigPerlWrapper); typedef SwigPerlWrapper *SwigPerlWrapperPtr; /* Structure for command table */ typedef struct { const char *name; SwigPerlWrapperPtr wrapper; } swig_command_info; /* Information for constant table */ #define SWIG_INT 1 #define SWIG_FLOAT 2 #define SWIG_STRING 3 #define SWIG_POINTER 4 #define SWIG_BINARY 5 /* Constant information structure */ typedef struct swig_constant_info { int type; const char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_constant_info; #ifdef __cplusplus } #endif /* Structure for variable table */ typedef struct { const char *name; SwigMagicFunc set; SwigMagicFunc get; swig_type_info **type; } swig_variable_info; /* Magic variable code */ #ifndef PERL_OBJECT #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c) #ifndef MULTIPLICITY static void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int \ (*get)(SV *,MAGIC *)) { #else static void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*,\ SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) { #endif #else #define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c) static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) { #endif MAGIC *mg; sv_magic(sv,sv,'U',(char *) name,strlen(name)); mg = mg_find(sv,'U'); mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL)); mg->mg_virtual->svt_get = (SwigMagicFuncHack) get; mg->mg_virtual->svt_set = (SwigMagicFuncHack) set; mg->mg_virtual->svt_len = 0; mg->mg_virtual->svt_clear = 0; mg->mg_virtual->svt_free = 0; } /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_double swig_types[0] #define SWIGTYPE_p_int swig_types[1] static swig_type_info *swig_types[3]; /* -------- TYPES TABLE (END) -------- */ #define SWIG_init boot_g2 #define SWIG_name "g2::boot_g2" #define SWIG_prefix "g2::" #ifdef __cplusplus extern "C" #endif #ifndef PERL_OBJECT #ifndef MULTIPLICITY SWIGEXPORT(void) SWIG_init (CV* cv); #else SWIGEXPORT(void) SWIG_init (pTHXo_ CV* cv); #endif #else SWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *); #endif #include "g2.h" #if defined(DO_X11) #include "g2_X11.h" #endif #if defined(DO_PS) #include "g2_PS.h" #endif #if defined(DO_GD) #include "g2_gd.h" #endif #if defined(DO_WIN32) #include "WIN32/g2_win32.h" #endif extern void g2_query_pointer(int,double *,double *,unsigned int *); #ifdef PERL_OBJECT #define MAGIC_CLASS _wrap_g2_var:: class _wrap_g2_var : public CPerlObj { public: #else #define MAGIC_CLASS #endif SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *sv, MAGIC *mg) { MAGIC_PPERL sv = sv; mg = mg; croak("Value is read-only."); return 0; } #ifdef PERL_OBJECT }; #endif #ifdef __cplusplus extern "C" { #endif XS(_wrap_g2_open_PS) { char *arg1 ; int arg2 ; int arg3 ; int result; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_open_PS(file_name,paper,orientation);"); } if (!SvOK((SV*) ST(0))) arg1 = 0; else arg1 = (char *) SvPV(ST(0), PL_na); arg2 = (int) SvIV(ST(1)); arg3 = (int) SvIV(ST(2)); result = (int)g2_open_PS((char const *)arg1,(enum g2_PS_paper)arg2,(enum g2_PS_orientation)arg3); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_open_EPSF) { char *arg1 ; int result; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_open_EPSF(file_name);"); } if (!SvOK((SV*) ST(0))) arg1 = 0; else arg1 = (char *) SvPV(ST(0), PL_na); result = (int)g2_open_EPSF((char const *)arg1); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_open_EPSF_CLIP) { char *arg1 ; long arg2 ; long arg3 ; int result; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_open_EPSF_CLIP(file_name,width,height);"); } if (!SvOK((SV*) ST(0))) arg1 = 0; else arg1 = (char *) SvPV(ST(0), PL_na); arg2 = (long) SvIV(ST(1)); arg3 = (long) SvIV(ST(2)); result = (int)g2_open_EPSF_CLIP((char const *)arg1,arg2,arg3); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_open_gd) { char *arg1 ; int arg2 ; int arg3 ; int arg4 ; int result; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_open_gd(filename,width,height,gd_type);"); } if (!SvOK((SV*) ST(0))) arg1 = 0; else arg1 = (char *) SvPV(ST(0), PL_na); arg2 = (int) SvIV(ST(1)); arg3 = (int) SvIV(ST(2)); arg4 = (int) SvIV(ST(3)); result = (int)g2_open_gd((char const *)arg1,arg2,arg3,(enum g2_gd_type)arg4); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_open_win32) { int arg1 ; int arg2 ; char *arg3 ; int arg4 ; int result; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_open_win32(width,height,filename,type);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); if (!SvOK((SV*) ST(2))) arg3 = 0; else arg3 = (char *) SvPV(ST(2), PL_na); arg4 = (int) SvIV(ST(3)); result = (int)g2_open_win32(arg1,arg2,(char const *)arg3,arg4); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_open_vd) { int result; int argvi = 0; dXSARGS; if ((items < 0) || (items > 0)) { croak("Usage: g2_open_vd();"); } result = (int)g2_open_vd(); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_attach) { int arg1 ; int arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_attach(vd_dev,dev);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); g2_attach(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_detach) { int arg1 ; int arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_detach(vd_dev,dev);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); g2_detach(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_close) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_close(dev);"); } arg1 = (int) SvIV(ST(0)); g2_close(arg1); XSRETURN(argvi); } XS(_wrap_g2_set_auto_flush) { int arg1 ; int arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_set_auto_flush(dev,on_off);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); g2_set_auto_flush(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_flush) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_flush(dev);"); } arg1 = (int) SvIV(ST(0)); g2_flush(arg1); XSRETURN(argvi); } XS(_wrap_g2_save) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_save(dev);"); } arg1 = (int) SvIV(ST(0)); g2_save(arg1); XSRETURN(argvi); } XS(_wrap_g2_set_coordinate_system) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_set_coordinate_system(dev,x_origin,y_origin,x_mul,y_mul);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_set_coordinate_system(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_ld) { int result; int argvi = 0; dXSARGS; if ((items < 0) || (items > 0)) { croak("Usage: g2_ld();"); } result = (int)g2_ld(); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_set_ld) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_set_ld(dev);"); } arg1 = (int) SvIV(ST(0)); g2_set_ld(arg1); XSRETURN(argvi); } XS(_wrap_g2_ink) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; int result; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_ink(pd_dev,red,green,blue);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); result = (int)g2_ink(arg1,arg2,arg3,arg4); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } XS(_wrap_g2_pen) { int arg1 ; int arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_pen(dev,color);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); g2_pen(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_set_dash) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_set_dash(dev,N,dashes);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_set_dash. Expected %s", SWIGTYPE_p_double->name); } } g2_set_dash(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_set_font_size) { int arg1 ; double arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_set_font_size(dev,size);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); g2_set_font_size(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_set_line_width) { int arg1 ; double arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_set_line_width(dev,w);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); g2_set_line_width(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_clear_palette) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_clear_palette(dev);"); } arg1 = (int) SvIV(ST(0)); g2_clear_palette(arg1); XSRETURN(argvi); } XS(_wrap_g2_reset_palette) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_reset_palette(dev);"); } arg1 = (int) SvIV(ST(0)); g2_reset_palette(arg1); XSRETURN(argvi); } XS(_wrap_g2_allocate_basic_colors) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_allocate_basic_colors(dev);"); } arg1 = (int) SvIV(ST(0)); g2_allocate_basic_colors(arg1); XSRETURN(argvi); } XS(_wrap_g2_clear) { int arg1 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_clear(dev);"); } arg1 = (int) SvIV(ST(0)); g2_clear(arg1); XSRETURN(argvi); } XS(_wrap_g2_set_background) { int arg1 ; int arg2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { croak("Usage: g2_set_background(dev,color);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); g2_set_background(arg1,arg2); XSRETURN(argvi); } XS(_wrap_g2_move) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_move(dev,x,y);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_move(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_move_r) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_move_r(dev,dx,dy);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_move_r(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_plot) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_plot(dev,x,y);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_plot(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_plot_r) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_plot_r(dev,dx,dy);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_plot_r(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_line) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_line(dev,x1,y1,x2,y2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_line(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_line_r) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_line_r(dev,dx,dy);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_line_r(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_line_to) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_line_to(dev,x,y);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_line_to(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_poly_line) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_poly_line(dev,N_pt,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_poly_line. Expected %s", SWIGTYPE_p_double->name); } } g2_poly_line(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_triangle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; double arg6 ; double arg7 ; int argvi = 0; dXSARGS; if ((items < 7) || (items > 7)) { croak("Usage: g2_triangle(dev,x1,y1,x2,y2,x3,y3);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); arg6 = (double) SvNV(ST(5)); arg7 = (double) SvNV(ST(6)); g2_triangle(arg1,arg2,arg3,arg4,arg5,arg6,arg7); XSRETURN(argvi); } XS(_wrap_g2_filled_triangle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; double arg6 ; double arg7 ; int argvi = 0; dXSARGS; if ((items < 7) || (items > 7)) { croak("Usage: g2_filled_triangle(dev,x1,y1,x2,y2,x3,y3);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); arg6 = (double) SvNV(ST(5)); arg7 = (double) SvNV(ST(6)); g2_filled_triangle(arg1,arg2,arg3,arg4,arg5,arg6,arg7); XSRETURN(argvi); } XS(_wrap_g2_rectangle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_rectangle(dev,x1,y1,x2,y2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_rectangle(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_filled_rectangle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_filled_rectangle(dev,x1,y1,x2,y2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_filled_rectangle(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_polygon) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_polygon(dev,N_pt,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_polygon. Expected %s", SWIGTYPE_p_double->name); } } g2_polygon(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_filled_polygon) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_filled_polygon(dev,N_pt,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_polygon. Expected %s", SWIGTYPE_p_double->name); } } g2_filled_polygon(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_circle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_circle(dev,x,y,r);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); g2_circle(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_filled_circle) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_filled_circle(dev,x,y,r);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); g2_filled_circle(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_ellipse) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_ellipse(dev,x,y,r1,r2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_ellipse(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_filled_ellipse) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int argvi = 0; dXSARGS; if ((items < 5) || (items > 5)) { croak("Usage: g2_filled_ellipse(dev,x,y,r1,r2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); g2_filled_ellipse(arg1,arg2,arg3,arg4,arg5); XSRETURN(argvi); } XS(_wrap_g2_arc) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; double arg6 ; double arg7 ; int argvi = 0; dXSARGS; if ((items < 7) || (items > 7)) { croak("Usage: g2_arc(dev,x,y,r1,r2,a1,a2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); arg6 = (double) SvNV(ST(5)); arg7 = (double) SvNV(ST(6)); g2_arc(arg1,arg2,arg3,arg4,arg5,arg6,arg7); XSRETURN(argvi); } XS(_wrap_g2_filled_arc) { int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; double arg6 ; double arg7 ; int argvi = 0; dXSARGS; if ((items < 7) || (items > 7)) { croak("Usage: g2_filled_arc(dev,x,y,r1,r2,a1,a2);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (double) SvNV(ST(3)); arg5 = (double) SvNV(ST(4)); arg6 = (double) SvNV(ST(5)); arg7 = (double) SvNV(ST(6)); g2_filled_arc(arg1,arg2,arg3,arg4,arg5,arg6,arg7); XSRETURN(argvi); } XS(_wrap_g2_string) { int arg1 ; double arg2 ; double arg3 ; char *arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_string(dev,x,y,text);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); if (!SvOK((SV*) ST(3))) arg4 = 0; else arg4 = (char *) SvPV(ST(3), PL_na); g2_string(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_image) { int arg1 ; double arg2 ; double arg3 ; int arg4 ; int arg5 ; int *arg6 ; int argvi = 0; dXSARGS; if ((items < 6) || (items > 6)) { croak("Usage: g2_image(dev,x,y,x_size,y_size,pens);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); arg4 = (int) SvIV(ST(3)); arg5 = (int) SvIV(ST(4)); { if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_int,0) < 0) { croak("Type error in argument 6 of g2_image. Expected %s", SWIGTYPE_p_int->name); } } g2_image(arg1,arg2,arg3,arg4,arg5,arg6); XSRETURN(argvi); } XS(_wrap_g2_set_QP) { int arg1 ; double arg2 ; int arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_set_QP(dev,d,shape);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (int) SvIV(ST(2)); g2_set_QP(arg1,arg2,(enum QPshape)arg3); XSRETURN(argvi); } XS(_wrap_g2_plot_QP) { int arg1 ; double arg2 ; double arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_plot_QP(dev,x,y);"); } arg1 = (int) SvIV(ST(0)); arg2 = (double) SvNV(ST(1)); arg3 = (double) SvNV(ST(2)); g2_plot_QP(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_query_pointer) { int arg1 ; double *arg2 ; double *arg3 ; unsigned int *arg4 ; double temp2 ; double temp3 ; unsigned int temp4 ; int argvi = 0; dXSARGS; { arg2 = &temp2; } { arg3 = &temp3; } { arg4 = &temp4; } if ((items < 1) || (items > 1)) { croak("Usage: g2_query_pointer(dev);"); } arg1 = (int) SvIV(ST(0)); g2_query_pointer(arg1,arg2,arg3,arg4); { if (argvi >= items) { EXTEND(sp,1); } ST(argvi) = sv_newmortal(); sv_setnv(ST(argvi),(double) *(arg2)); argvi++; } { if (argvi >= items) { EXTEND(sp,1); } ST(argvi) = sv_newmortal(); sv_setnv(ST(argvi),(double) *(arg3)); argvi++; } { if (argvi >= items) { EXTEND(sp,1); } ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi),(IV) *(arg4)); argvi++; } XSRETURN(argvi); } XS(_wrap_g2_spline) { int arg1 ; int arg2 ; double *arg3 ; int arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_spline(id,n,points,o);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_spline. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (int) SvIV(ST(3)); g2_spline(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_b_spline) { int arg1 ; int arg2 ; double *arg3 ; int arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_b_spline(id,n,points,o);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_b_spline. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (int) SvIV(ST(3)); g2_b_spline(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_raspln) { int arg1 ; int arg2 ; double *arg3 ; double arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_raspln(id,n,points,tn);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_raspln. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (double) SvNV(ST(3)); g2_raspln(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_para_3) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_para_3(id,n,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_para_3. Expected %s", SWIGTYPE_p_double->name); } } g2_para_3(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_para_5) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_para_5(id,n,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_para_5. Expected %s", SWIGTYPE_p_double->name); } } g2_para_5(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_filled_spline) { int arg1 ; int arg2 ; double *arg3 ; int arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_filled_spline(id,n,points,o);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_spline. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (int) SvIV(ST(3)); g2_filled_spline(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_filled_b_spline) { int arg1 ; int arg2 ; double *arg3 ; int arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_filled_b_spline(id,n,points,o);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_b_spline. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (int) SvIV(ST(3)); g2_filled_b_spline(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_filled_raspln) { int arg1 ; int arg2 ; double *arg3 ; double arg4 ; int argvi = 0; dXSARGS; if ((items < 4) || (items > 4)) { croak("Usage: g2_filled_raspln(id,n,points,tn);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_raspln. Expected %s", SWIGTYPE_p_double->name); } } arg4 = (double) SvNV(ST(3)); g2_filled_raspln(arg1,arg2,arg3,arg4); XSRETURN(argvi); } XS(_wrap_g2_filled_para_3) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_filled_para_3(id,n,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_para_3. Expected %s", SWIGTYPE_p_double->name); } } g2_filled_para_3(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_filled_para_5) { int arg1 ; int arg2 ; double *arg3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { croak("Usage: g2_filled_para_5(id,n,points);"); } arg1 = (int) SvIV(ST(0)); arg2 = (int) SvIV(ST(1)); { if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_double,0) < 0) { croak("Type error in argument 3 of g2_filled_para_5. Expected %s", SWIGTYPE_p_double->name); } } g2_filled_para_5(arg1,arg2,arg3); XSRETURN(argvi); } XS(_wrap_g2_device_exist) { int arg1 ; int result; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { croak("Usage: g2_device_exist(dix);"); } arg1 = (int) SvIV(ST(0)); result = (int)g2_device_exist(arg1); ST(argvi) = sv_newmortal(); sv_setiv(ST(argvi++), (IV) result); XSRETURN(argvi); } /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_double[] = {{"_p_double", 0, "double *"},{"_p_double"},{0}}; static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *"},{"_p_int"},{0}}; static swig_type_info *swig_types_initial[] = { _swigt__p_double, _swigt__p_int, 0 }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_constant_info swig_constants[] = { { SWIG_STRING, (char *) SWIG_prefix "G2_VERSION", 0, 0, (void *)"0.41a", 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A0", (long) g2_A0, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A1", (long) g2_A1, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A2", (long) g2_A2, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A3", (long) g2_A3, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A4", (long) g2_A4, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A5", (long) g2_A5, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A6", (long) g2_A6, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A7", (long) g2_A7, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A8", (long) g2_A8, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_A9", (long) g2_A9, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B0", (long) g2_B0, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B1", (long) g2_B1, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B2", (long) g2_B2, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B3", (long) g2_B3, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B4", (long) g2_B4, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B5", (long) g2_B5, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B6", (long) g2_B6, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B7", (long) g2_B7, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B8", (long) g2_B8, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B9", (long) g2_B9, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_B10", (long) g2_B10, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Comm_10_Envelope", (long) g2_Comm_10_Envelope, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_C5_Envelope", (long) g2_C5_Envelope, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_DL_Envelope", (long) g2_DL_Envelope, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Folio", (long) g2_Folio, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Executive", (long) g2_Executive, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Letter", (long) g2_Letter, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Legal", (long) g2_Legal, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Ledger", (long) g2_Ledger, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_Tabloid", (long) g2_Tabloid, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_PS_land", (long) g2_PS_land, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_PS_port", (long) g2_PS_port, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_PS_PostScript", (long) g2_PS_PostScript, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_PS_EPSF", (long) g2_PS_EPSF, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_PS_EPSF_CLIP", (long) g2_PS_EPSF_CLIP, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_gd_jpeg", (long) g2_gd_jpeg, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_gd_png", (long) g2_gd_png, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_win32", (long) g2_win32, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "g2_wmf32", (long) g2_wmf32, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "QPrect", (long) QPrect, 0, 0, 0}, { SWIG_INT, (char *) SWIG_prefix "QPcirc", (long) QPcirc, 0, 0, 0}, {0} }; #ifdef __cplusplus } #endif static swig_variable_info swig_variables[] = { {0} }; static swig_command_info swig_commands[] = { {"g2::g2_open_PS", _wrap_g2_open_PS}, {"g2::g2_open_EPSF", _wrap_g2_open_EPSF}, {"g2::g2_open_EPSF_CLIP", _wrap_g2_open_EPSF_CLIP}, {"g2::g2_open_gd", _wrap_g2_open_gd}, {"g2::g2_open_win32", _wrap_g2_open_win32}, {"g2::g2_open_vd", _wrap_g2_open_vd}, {"g2::g2_attach", _wrap_g2_attach}, {"g2::g2_detach", _wrap_g2_detach}, {"g2::g2_close", _wrap_g2_close}, {"g2::g2_set_auto_flush", _wrap_g2_set_auto_flush}, {"g2::g2_flush", _wrap_g2_flush}, {"g2::g2_save", _wrap_g2_save}, {"g2::g2_set_coordinate_system", _wrap_g2_set_coordinate_system}, {"g2::g2_ld", _wrap_g2_ld}, {"g2::g2_set_ld", _wrap_g2_set_ld}, {"g2::g2_ink", _wrap_g2_ink}, {"g2::g2_pen", _wrap_g2_pen}, {"g2::g2_set_dash", _wrap_g2_set_dash}, {"g2::g2_set_font_size", _wrap_g2_set_font_size}, {"g2::g2_set_line_width", _wrap_g2_set_line_width}, {"g2::g2_clear_palette", _wrap_g2_clear_palette}, {"g2::g2_reset_palette", _wrap_g2_reset_palette}, {"g2::g2_allocate_basic_colors", _wrap_g2_allocate_basic_colors}, {"g2::g2_clear", _wrap_g2_clear}, {"g2::g2_set_background", _wrap_g2_set_background}, {"g2::g2_move", _wrap_g2_move}, {"g2::g2_move_r", _wrap_g2_move_r}, {"g2::g2_plot", _wrap_g2_plot}, {"g2::g2_plot_r", _wrap_g2_plot_r}, {"g2::g2_line", _wrap_g2_line}, {"g2::g2_line_r", _wrap_g2_line_r}, {"g2::g2_line_to", _wrap_g2_line_to}, {"g2::g2_poly_line", _wrap_g2_poly_line}, {"g2::g2_triangle", _wrap_g2_triangle}, {"g2::g2_filled_triangle", _wrap_g2_filled_triangle}, {"g2::g2_rectangle", _wrap_g2_rectangle}, {"g2::g2_filled_rectangle", _wrap_g2_filled_rectangle}, {"g2::g2_polygon", _wrap_g2_polygon}, {"g2::g2_filled_polygon", _wrap_g2_filled_polygon}, {"g2::g2_circle", _wrap_g2_circle}, {"g2::g2_filled_circle", _wrap_g2_filled_circle}, {"g2::g2_ellipse", _wrap_g2_ellipse}, {"g2::g2_filled_ellipse", _wrap_g2_filled_ellipse}, {"g2::g2_arc", _wrap_g2_arc}, {"g2::g2_filled_arc", _wrap_g2_filled_arc}, {"g2::g2_string", _wrap_g2_string}, {"g2::g2_image", _wrap_g2_image}, {"g2::g2_set_QP", _wrap_g2_set_QP}, {"g2::g2_plot_QP", _wrap_g2_plot_QP}, {"g2::g2_query_pointer", _wrap_g2_query_pointer}, {"g2::g2_spline", _wrap_g2_spline}, {"g2::g2_b_spline", _wrap_g2_b_spline}, {"g2::g2_raspln", _wrap_g2_raspln}, {"g2::g2_para_3", _wrap_g2_para_3}, {"g2::g2_para_5", _wrap_g2_para_5}, {"g2::g2_filled_spline", _wrap_g2_filled_spline}, {"g2::g2_filled_b_spline", _wrap_g2_filled_b_spline}, {"g2::g2_filled_raspln", _wrap_g2_filled_raspln}, {"g2::g2_filled_para_3", _wrap_g2_filled_para_3}, {"g2::g2_filled_para_5", _wrap_g2_filled_para_5}, {"g2::g2_device_exist", _wrap_g2_device_exist}, {0,0} }; #ifdef __cplusplus extern "C" #endif XS(SWIG_init) { dXSARGS; int i; for (i = 0; swig_types_initial[i]; i++) { swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); } /* Install commands */ for (i = 0; swig_commands[i].name; i++) { newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__); } /* Install variables */ for (i = 0; swig_variables[i].name; i++) { SV *sv; sv = perl_get_sv((char*) swig_variables[i].name, TRUE | 0x2); if (swig_variables[i].type) { SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0); }else { sv_setiv(sv,(IV) 0); } swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); } /* Install constant */ for (i = 0; swig_constants[i].type; i++) { SV *sv; sv = perl_get_sv((char*)swig_constants[i].name, TRUE | 0x2); switch(swig_constants[i].type) { case SWIG_INT: sv_setiv(sv, (IV) swig_constants[i].lvalue); break; case SWIG_FLOAT: sv_setnv(sv, (double) swig_constants[i].dvalue); break; case SWIG_STRING: sv_setpv(sv, (char *) swig_constants[i].pvalue); break; case SWIG_POINTER: SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0); break; case SWIG_BINARY: /* obj = SWIG_NewPackedObj(swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype)); */ break; default: break; } SvREADONLY_on(sv); } ST(0) = &PL_sv_yes; XSRETURN(1); } g2-0.72/perl/README.perl0000644000175000017500000000103307535024104013542 0ustar ljuboljuboHowto build perl library perl Makefile.PL swig -perl5 -o g2_wrap.c -I../src -DDO_PS -DDO_GD ../src/g2.h "c:\Program Files\SWIG-1.3.13\swig" -perl5 -o g2_wrap.c -I../src -DDO_PS -DDO_GD -DDO_WIN32 ../src/g2.h nmake nmake install To make ActiveState PPD: tar cvf g2.tar blib gzip --best g2.tar nmake ppd copy tar.gz file into subdir x86 You have to edit the resulting PPD file and add the location of the package archive into . The location is relative to the PPD file. To install do: ppm install g2.ppd g2-0.72/perl/Makefile.PL0000644000175000017500000000353707525352663013723 0ustar ljuboljubouse ExtUtils::MakeMaker qw(prompt WriteMakefile); # =====> PATHS: CHECK AND ADJUST <===== my @INC = qw(-I../src -I../src/win32 -I../src/PS -I../src/GD); my @LIBPATH = qw(-L../Debug -L../../gd-1.8.4); my @LIBS = qw(-lg2); # FEATURE FLAGS warn "\nPlease choose the features that match how g2 was built:\n"; my $PS = lc prompt('Build PostScript support?','y') eq 'y'; my $GD = lc prompt('Build gd (Bitmap) support?','y') eq 'y'; my $WIN32 = lc prompt('Build Win32 support?','y') eq 'y'; my $X11 = lc prompt('Build X11 support?','y') eq 'y'; warn "\nIf you experience compile problems, please check the \@INC, \@LIBPATH and \@LIBS\n", "arrays defined in Makefile.PL and manually adjust, if necessary.\n\n"; #### no user-serviceable parts below ##### push @LIBS,'-lgd' if $GD; push @LIBS, '-lm' unless $^O eq 'MSWin32'; # FreeBSD 3.3 with libgd built from ports croaks if -lXpm is specified if ($^O ne 'freebsd' && $^O ne 'MSWin32') { push @LIBS,'-lX11','-lXpm' if $XPM; } my $CAPI = defined $ExtUtils::MakeMaker::CAPI_support ? 'TRUE' : 'FALSE'; my $DEFINES = ''; $DEFINES .= ' -DDO_PS' if $PS; $DEFINES .= ' -DDO_GD' if $GD; $DEFINES .= ' -DDO_WIN32' if $WIN32; $DEFINES .= ' -DDO_X11' if $X11; WriteMakefile( 'NAME' => 'g2', 'VERSION_FROM' => 'g2.pm', 'dist' => {'COMPRESS'=>'gzip -9f', 'SUFFIX' => 'gz', 'ZIP'=>'/usr/bin/zip','ZIPFLAGS'=>'-rl'}, 'OBJECT' => 'g2_wrap.o', 'OPTIMIZE' => '-g', 'LIBS' => [join(' ',$ENV{'G2_LIBS'},@LIBPATH,@LIBS)], 'INC' => join(' ',$ENV{'G2_INC'},@INC), 'AUTHOR' => 'Horst Wagner', 'ABSTRACT' => 'Perl interface to g2 Graphics Library', 'CAPI' => $CAPI, 'DEFINE' => $DEFINES, ); sub MY::postamble { my $postamble = <<'END'; html: g2.pm pod2html --outfile=g2.html g2.pm END $postamble; } g2-0.72/configure.in0000644000175000017500000000661610514775573013322 0ustar ljuboljubo # # Check for one project file # AC_INIT(src/g2_device.c) PRODUCT=g2 # # check cannonical system name, # and set options for shared libraries (black magic) # AC_CANONICAL_HOST case "$host" in *-linux*) LD_SHARED='ld' LD_SHARED_FLAGS='-shared -soname libg2.so.0' LD_SHARED_OPT='' LD_SHARED_EXT='so.0.$(G2_VERSION)' AC_DEFINE(LINUX);; *-aix*) LD_SHARED='ld' LD_SHARED_FLAGS='-bM:SRE -bnoentry -bexpall' LD_SHARED_OPT='$(LDFLAGS) -lc' LD_SHARED_EXT='so' AC_DEFINE(AIX);; *-osf*) LD_SHARED='ld' LD_SHARED_FLAGS='-shared' LD_SHARED_OPT='$(LDFLAGS) -lc' LD_SHARED_EXT='so' AC_DEFINE(OSF);; *) LD_SHARED_EXT='so' AC_DEFINE(UNIX);; esac AC_SUBST(LD_SHARED) AC_SUBST(LD_SHARED_FLAGS) AC_SUBST(LD_SHARED_OPT) AC_SUBST(LD_SHARED_EXT) # # check C compiler, preprocesor, etc. # AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_RANLIB AC_PROG_INSTALL AC_CHECK_PROG(FIND, find, find, :) AC_CHECK_PROG(MAKEDEPEND, makedepend, makedepend, :) AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) # # Try to locate the X Window System include files and libraries # and add /usr/local to include and lib path and add -lm (for testing) # AC_PATH_XTRA CFLAGS="$CFLAGS $X_CFLAGS -I/usr/local/include" LIBS="$X_LIBS -L/usr/local/lib" DO_PS='#' DO_FIG='#' DO_X11='#' DO_XDBE='#' DO_GD='#' DO_GIF='#' DO_WIN32='#' # # check supported devices # AC_CHECK_LIB(m,main,DO_PS='';DO_FIG='';LIBS="$LIBS -lm";AC_DEFINE(DO_PS) AC_DEFINE(DO_FIG),break) AC_CHECK_LIB(X11, main, DO_X11='';LIBS="$LIBS -lX11";AC_DEFINE(DO_X11)) AC_CHECK_LIB(Xext, main, DO_XDBE='';LIBS="$LIBS -lXext";AC_DEFINE(DO_XDBE)) AC_CHECK_LIB(gd, main, have_gd=yes, have_gd=no) if test "$have_gd" = yes then LIBS="$LIBS -lgd" AC_CHECK_FUNC(gdImagePng, DO_GD='';AC_DEFINE(DO_GD)) AC_CHECK_FUNC(gdImageGif, DO_GIF='';AC_DEFINE(DO_GIF)) fi # # handling cygwin environment (and gd for cygwin == bgd) # AC_CYGWIN if test "$CYGWIN" = yes then LIBS="$LIBS -L/lib/w32api" AC_CHECK_LIB(gdi32, main, DO_WIN32='';LIBS="$LIBS -lgdi32";AC_DEFINE(DO_WIN32)) # AC_CHECK_LIB(bgd, main, have_bgd=yes, have_bgd=no) # if test "$have_bgd" = yes # then # LIBS="$LIBS -lbgd" # AC_CHECK_FUNC(gdImagePng, DO_GD='';AC_DEFINE(DO_GD)) # fi fi # # Declare variables which we want substituted in the Makefile.in's # AC_SUBST(DO_PS) AC_SUBST(DO_FIG) AC_SUBST(DO_X11) AC_SUBST(DO_XDBE) AC_SUBST(DO_WIN32) AC_SUBST(DO_GD) AC_SUBST(DO_GIF) AC_HEADER_STDC AC_CHECK_HEADERS(limits.h) # # finally create makefiles using Makefile.in # echo AC_OUTPUT(Makefile demo/Makefile g2_perl/Makefile.PL g2_python/Makefile) echo echo "Supported devices:" if test "$DO_PS" != "#"; then echo " PostScript"; fi if test "$DO_FIG" != "#"; then echo " FIG"; fi if test "$DO_X11" != "#"; then echo " X11"; fi if test "$DO_XDBE" != "#"; then echo " Xdbe"; fi if test "$DO_WIN32" != "#"; then echo " Win32"; fi if test "$DO_GD" != "#"; then echo " GD"; fi if test "$DO_GIF" != "#"; then echo " GD (GIF)"; fi echo echo "Unsupported devices:" if test "$DO_PS" = "#"; then echo " PostScript"; fi if test "$DO_FIG" = "#"; then echo " FIG"; fi if test "$DO_X11" = "#"; then echo " X11"; fi if test "$DO_XDBE" = "#"; then echo " Xdbe"; fi if test "$DO_WIN32" = "#"; then echo " Win32"; fi if test "$DO_GD" = "#"; then echo " GD"; fi if test "$DO_GIF" = "#"; then echo " GD (GIF)"; fi echo echo "Run 'make depend' to create dependencies." echo g2-0.72/g2_perl/0000755000175000017500000000000010515227214012313 5ustar ljuboljubog2-0.72/g2_perl/typemap0000644000175000017500000000120706650611564013727 0ustar ljuboljuboenum QPshape T_PTROBJ G2::Device T_PTROBJ double * T_dbl_array INPUT T_dbl_array { AV *tempav; I32 len; int i; SV **tv; if (!SvROK($arg)) { croak(\"$arg is not a reference.\"); } if (SvTYPE(SvRV($arg)) != SVt_PVAV) { croak(\"$arg is not an array.\"); } tempav = (AV*)SvRV($arg); len = av_len(tempav)+1; $var = (double *) malloc(len*sizeof(double)); for (i=0;i 'G2', 'VERSION_FROM' => 'G2.pm', # finds $VERSION 'LIBS' => ['-L./.. -lg2 @LIBS@'], # e.g., '-lm' 'DEFINE' => '@DEFS@', # e.g., '-DHAVE_SOMETHING' 'INC' => '-I./../include', # e.g., '-I/usr/local/include' ); g2-0.72/g2_perl/MANIFEST0000644000175000017500000000007106650611564013454 0ustar ljuboljuboChanges G2.pm G2.xs MANIFEST Makefile.PL test.pl typemap g2-0.72/g2_perl/README0000644000175000017500000000020010023712576013167 0ustar ljuboljubo To build g2 perl module: perl Makefile.PL make Inspect test.pl and comment out unsupported devices. make test make install g2-0.72/g2_perl/Makefile.PL0000644000175000017500000000153310513525525014273 0ustar ljuboljubouse ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( 'NAME' => 'G2', 'VERSION_FROM' => 'G2.pm', # finds $VERSION 'LIBS' => ['-L./.. -lg2 -L/usr/X11R6/lib -L/usr/local/lib -lm -lX11 -lXext -lgd'], # e.g., '-lm' 'DEFINE' => '-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 ', # e.g., '-DHAVE_SOMETHING' 'INC' => '-I./../include', # e.g., '-I/usr/local/include' ); g2-0.72/g2_perl/G2.pm0000644000175000017500000002143410034351145013122 0ustar ljuboljubopackage G2; use strict; use Carp; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); require Exporter; require DynaLoader; require AutoLoader; use strict; @ISA = qw(Exporter DynaLoader); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @EXPORT = qw( G2LD G2_H G2_VERSION ); $VERSION = '0.01'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. If a constant is not found then control is passed # to the AUTOLOAD in AutoLoader. my $constname; ($constname = $AUTOLOAD) =~ s/.*:://; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { croak "Your vendor has not defined G2 macro $constname"; } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } bootstrap G2 $VERSION; # Preloaded methods go here. # Autoload methods go after =cut, and are processed by the autosplit program. 1; __END__ # Below is the stub of documentation for your module. You better edit it! =head1 NAME G2 - A simple graphics library ported to Perl. =head1 SYNOPSIS use G2; $dev1 = newX11 G2::Device(775, 575); $dev2 = newGD G2::Device("test.png",600,200); $dev1->rectangle(20,20,150,150); $dev1->circle(100,150,60); $dev2->circle(100,150,60); $dev2->string(100,50,"A circle in a PNG file"); =head1 DESCRIPTION g2 is a simple to use graphics library for 2D graphical applications. This library provides a comprehensive set of functions for simultaneous generation of graphical output on different types of devices. Presently, following devices are currently supported by g2: X11, PNG, PostScript (xfig is in developement). One major feature of the g2_library is the concept of virtual devices. An arbitrary number of physical devices (such as PNG, or X11) can be grouped to create a so-called virtual device. Commands sent to such a virtual devices will automatically issued to all attached physical devices. This allows for example simultaneous output to a PNG file and a Postscript file. A virtual device in turn can be attached to another virtual device, allowing to construct trees of devices. Virtual devices can also be useful when using different user-coordinate systems. E.g. one X11 window showing an overview of a graphical output, and a second window showing a zoom of a more detailed area of the graphic. Drawing in both windows is performed by one single command to the virtual device. Please see g2 documentation (C interface) for up to date version. =head1 Exported constants G2LD G2_H G2_VERSION =head1 Exported functions =head2 Creating new devices =over 5 =item C C I opens an X11 window with width and height of X11 window given in pixels. returns : a new X11 device. =item C C I opens a new PostScript device. file_name: name of PostScript file paper: Paper size (e.g. g2_A4, g2_Letter). See PostScript paper sizes for a full list of supported sizes. orientation: paper orientation. Either g2_PS_land for landscape or g2_PS_port for portrait returns : a new PostScript device. =item C C I open a new GD device width,height: width and height of the image in pixels filename: name of the output file. type: file type, 0-jpeg, 1-png returns : a new GD device =item C C I Create a new Virtual Device. An arbitrary number of physical devices (such as PNG, or X11) can be grouped to create a so-called virtual device. Commands sent to such a virtual devices will automatically issued to all attached physical devices. This allows for example simultaneous output to a PNG file and a Postscript file. A virtual device in turn can be attached to another virtual device, allowing to construct trees of devices. Virtual devices can also be useful when using different user-coordinate systems. E.g. one X11 window showing an overview of a graphical output, and a second window showing a zoom of a more detailed area of the graphic. Drawing in both windows is performed by one single command to the virtual device. =head2 Device Functions =item C<> C I =item C<> C I =item C<> C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =head2 Drawing Functions =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I =item C C I Draw an ellipse on device dev x,y: center point r1,r2: x and y radius =item C C I Draw a filled ellipse on device dev x,y: center point r1,r2: x and y radius =item C C I Draw an arc with center point at (x,y), x and y radius given by r1,r2 and starting and ending angle in radians a1,a2 =item C C I Draw a filled arc on device dev x,y: center point r1,r2: x and y radius a1,a2: starting and ending angle in radians =item C C I =item C<> C I =item C<> C I =head1 AUTHORS Horst Wagner (wagner/users-sourceforge.net) and Ljubomir Milanovic (ljubo/users-sourceforge-net) =head1 COPYRIGHT Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner This file is part of the g2 library This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA =cut g2-0.72/g2_perl/Changes0000644000175000017500000000016306650611564013620 0ustar ljuboljuboRevision history for Perl extension G2. 0.01 Wed Nov 11 17:34:43 1998 - original version; created by h2xs 1.18 g2-0.72/g2_perl/test.pl0000644000175000017500000001151410277440441013635 0ustar ljuboljubo# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' ######################### We start with some black magic to print on failure. # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) BEGIN { $| = 1; print "1..1\n"; } END {print "not ok 1\n" unless $loaded;} use G2; $loaded = 1; print "ok 1\n"; ######################### End of black magic. # Insert your test code below (better if it prints "ok 13" # (correspondingly "not ok 13") depending on the success of chunk 13 # of the test code): $d = newvd G2::Device(); #PS if ($d->can(newPS)) { print "attaching: PS\n"; $dev[0] = newPS G2::Device("test.ps", 4, 0); $d->attach($dev[0]); } else { print "Not supported: PS\n"; } #FIG if ($d->can(newFIG)) { print "attaching: FIG\n"; $dev[1] = newFIG G2::Device("test.fig"); $d->attach($dev[1]); } else { print "Not supported: FIG\n"; } #X11 if ($d->can(newX11)) { print "attaching: X11\n"; $dev[2] = newX11 G2::Device(775, 575); $d->attach($dev[2]); } else { print "Not supported: X11\n"; } #Win32 if ($d->can(newWin32)) { print "attaching: Win32\n"; $dev[3] = newWin32 G2::Device(775, 575); $d->attach($dev[3]); } else { print "Not supported: Win32\n"; } #GD if ($d->can(newGD)) { print "attaching: PNG (GD)\n"; $dev[4] = newGD G2::Device("test.png", 775, 575, 1); $d->attach($dev[4]); } else { print "Not supported: GD\n"; } $d->set_auto_flush(0); for($i=0;$i<27;$i++) { $d->pen($i); $d->filled_circle($i*20+10, 10, 10); $d->pen(1); $d->circle($i*20+10, 10, 10); $str = sprintf("%d", $i); $d->string($i*20+7, 21, $str); } for($j=0;$j<$#dev;$j++) { if($dev[$j] > 0) { for($i=0;$i<=64;$i++) { $dev[$j]->move( 2*$i+575, 5); $dev[$j]->pen($dev[$j]->ink($i/64., 0, 0)); $dev[$j]->line_r(0, 20); $dev[$j]->pen($dev[$j]->ink(0, $i/64., 0)); $dev[$j]->line_r(10, 20); $dev[$j]->pen($dev[$j]->ink(0, 0, $i/64.)); $dev[$j]->line_r(-10, 20); } } } $d->pen(1); $d->line(200, 50, 350, 50); $d->line(200, 48, 350, 48); $d->line(200, 46, 350, 46); $d->line(200, 46, 200, 75); $d->line(198, 46, 198, 75); $d->line(196, 46, 196, 75); $d->string(200, 50, "012abcABC#())(\\-+~*!$%&"); $d->pen(1); for($i=1;$i<25;$i++) { $d->line(15, $i*20+50, 15, $i*20+50+$i); $d->set_font_size(12); $str = sprintf("%2d:", $i); $d->string(20, $i*20+50, $str); $d->set_font_size($i); $d->string(40, $i*20+50, "hello, world"); } $d->plot(150, 70); $d->line(147, 68, 153, 68); $y=100; $d->line(120, $y, 170, $y+50); $d->triangle(150, $y, 250, $y, 200, $y+50); $d->rectangle(300, $y, 400, $y+50); $d->circle(450, $y+25, 25); $d->ellipse(550, $y+25, 45, 25); $d->arc(650, $y+25, 25, 45, 90, 360); $pts[0]=4; $pts[1]=4; $d->set_dash(2, \@pts); $d->line(120+5, $y, 170+5, $y+50); $d->triangle(150+10, $y+4, 250-10, $y+4, 200, $y+50-5); $d->rectangle(305, $y+5, 395, $y+50-5); $d->circle(450, $y+25, 20); $d->ellipse(550, $y+25, 40, 20); $d->arc(650, $y+25, 20, 40, 90, 360); $d->set_dash(0); $y=200; $d->filled_triangle(150, $y, 250, $y, 200, $y+50); $d->filled_rectangle(300, $y, 400, $y+50); $d->filled_circle(450, $y+25, 25); $d->filled_ellipse(550, $y+25, 45, 25); $d->filled_arc(650, $y+25, 25, 45, 90, 360); $y=300.; $pts[0]=150.; $pts[1]=$y; $pts[2]=175.; $pts[3]=$y+100.; $pts[4]=200.; $pts[5]=$y; $pts[6]=225.; $pts[7]=$y+100.; $pts[8]=250.; $pts[9]=$y; $d->poly_line(5, \@pts); $d->pen(19); $d->b_spline(5, \@pts, 20); $d->pen(1); $pts[0]=300; $pts[1]=$y; $pts[2]=350; $pts[3]=$y; $pts[4]=375; $pts[5]=$y+50; $pts[6]=325; $pts[7]=$y+90; $pts[8]=275; $pts[9]=$y+50; $d->polygon(5, \@pts); $pts[0]=450; $pts[1]=$y; $pts[2]=500; $pts[3]=$y; $pts[4]=525; $pts[5]=$y+50; $pts[6]=475; $pts[7]=$y+90; $pts[8]=425; $pts[9]=$y+50; $d->filled_polygon(5, \@pts); $d->line(225, 448, 200+19*25, 448); for($i=1;$i<20;$i++) { $d->pen($i+1); $d->set_line_width($i); $d->move(200+$i*25, 450); $d->line_to(200+$i*25, 550); } $d->pen(1); $d->set_line_width(5); for($i=1;$i<10;$i++) { $pts[0]=1*$i; $pts[1]=2*$i; $pts[2]=3*$i; $d->set_dash(3, \@pts); $d->line(550, 300+$i*8, 750, 350+$i*8); } $d->set_dash(0); $d->set_line_width(5); $d->arc(740, 180, 25, 100, -45+15, -45-15); $d->filled_arc(740, 180, 12, 50, -45+15, -45-15); $d->set_line_width(1); $d->circle(400, 400, 20); $d->ellipse(400, 400, 25, 25); $d->arc(400, 400, 30, 30, 0, 360); $d->flush; print "\nDone.\n[Enter]\n"; getc(STDIN); $d->close(); g2-0.72/g2_perl/G2.xs0000644000175000017500000002742210174051235013145 0ustar ljuboljubo#ifdef __cplusplus extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #ifdef __cplusplus } #endif #include #include #ifdef DO_PS #include #endif /* DO_PS */ #ifdef DO_FIG #include #endif /* DO_FIG */ #ifdef DO_X11 #include #endif /* DO_X11 */ #ifdef DO_GD #include #endif /* DO_GD */ #ifdef DO_WIN32 #include #endif /* DO_WIN32 */ static int not_here(s) char *s; { croak("%s not implemented on this architecture", s); return -1; } static double constant(name, arg) char *name; int arg; { errno = 0; switch (*name) { case 'A': break; case 'B': break; case 'C': break; case 'D': break; case 'E': break; case 'F': break; case 'G': if (strEQ(name, "G2LD")) #ifdef G2LD return G2LD; #else goto not_there; #endif if (strEQ(name, "G2_H")) #ifdef G2_H return G2_H; #else goto not_there; #endif if (strEQ(name, "G2_VERSION")) #ifdef G2_VERSION return atof(G2_VERSION); #else goto not_there; #endif break; case 'H': break; case 'I': break; case 'J': break; case 'K': break; case 'L': break; case 'M': break; case 'N': break; case 'O': break; case 'P': break; case 'Q': break; case 'R': break; case 'S': break; case 'T': break; case 'U': break; case 'V': break; case 'W': break; case 'X': break; case 'Y': break; case 'Z': break; } errno = EINVAL; return 0; not_there: errno = ENOENT; return 0; } typedef int* DevType; typedef DevType G2__Device; MODULE = G2 PACKAGE = G2 double constant(name,arg) char * name int arg MODULE = G2 PACKAGE = G2::Device PREFIX = g2_ #ifdef DO_X11 G2::Device g2_newX11(packname="G2::Device", width=100,height=100) char * packname int width int height PROTOTYPE: $;$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_X11(width, height); RETVAL = theDevice; } OUTPUT: RETVAL #endif /* DO_X11 */ #ifdef DO_WIN32 G2::Device g2_newWin32(packname="G2::Device", width=100,height=100,filename="Win32 window",type=0) char * packname int width int height char * filename int type PROTOTYPE: $;$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_win32(width, height, filename, type); RETVAL = theDevice; } OUTPUT: RETVAL #endif /* DO_WIN32 */ #ifdef DO_GD G2::Device g2_newGD(packname="G2::Device", filename="g2.png", width=100, height=100, type=1) char * packname char * filename int width int height int type PROTOTYPE: $;$$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_gd(filename, width, height, type); RETVAL = theDevice; } OUTPUT: RETVAL #endif /* DO_GD */ #ifdef DO_PS G2::Device g2_newPS(packname="G2::Device", filename="g2.ps", paper=1,orientation=1) char * packname char * filename int paper int orientation PROTOTYPE: $;$$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_PS(filename, paper, orientation); RETVAL = theDevice; } OUTPUT: RETVAL G2::Device g2_newEPSF(packname="G2::Device", filename="g2.eps") char * packname char * filename PROTOTYPE: $;$$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_EPSF(filename); RETVAL = theDevice; } OUTPUT: RETVAL G2::Device g2_newEPSF_CLIP(packname="G2::Device", filename="g2.eps",width=100,height=100) char * packname char * filename long width long height PROTOTYPE: $;$$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_EPSF_CLIP(filename,width,height); RETVAL = theDevice; } OUTPUT: RETVAL #endif /* DO_PS */ #ifdef DO_FIG G2::Device g2_newFIG(packname="G2::Device", filename="g2.fig") char * packname char * filename PROTOTYPE: $;$$$ CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_FIG(filename); RETVAL = theDevice; } OUTPUT: RETVAL #endif /* DO_FIG */ G2::Device g2_newvd(packname="G2::Device") char * packname PROTOTYPE: $; CODE: { DevType theDevice; theDevice = (int *)malloc(sizeof(int)); *theDevice = g2_open_vd(); RETVAL = theDevice; } OUTPUT: RETVAL void g2_DESTROY(dev) G2::Device dev PROTOTYPE: $ CODE: { if(g2_device_exist(*dev)) { g2_close(*dev); } free(dev); } void g2_attach(vd_dev, dev) G2::Device vd_dev G2::Device dev PROTOTYPE: $ CODE: { g2_attach(*vd_dev, *dev); } void g2_detach(vd_dev, dev) G2::Device vd_dev G2::Device dev PROTOTYPE: $ CODE: { g2_detach(*vd_dev, *dev); } void g2_close(dev) G2::Device dev PROTOTYPE: CODE: { g2_close(*dev); } void g2_set_auto_flush(dev, on_off) G2::Device dev int on_off PROTOTYPE: $ CODE: { g2_set_auto_flush(*dev, on_off); } void g2_flush(dev) G2::Device dev PROTOTYPE: CODE: { g2_flush(*dev); } void g2_save(dev) G2::Device dev PROTOTYPE: CODE: { g2_save(*dev); } void g2_set_coordinate_system(dev, x_origin, y_origin, x_mul, y_mul) G2::Device dev double x_origin double y_origin double x_mul double y_mul PROTOTYPE: $$$$ CODE: { g2_set_coordinate_system(*dev, x_origin, y_origin, x_mul, y_mul); } int g2_ink(pd_dev, red, green, blue) G2::Device pd_dev double red double green double blue PROTOTYPE: $$$ CODE: { RETVAL = g2_ink(*pd_dev, red, green, blue); } OUTPUT: RETVAL void g2_pen(dev, color) G2::Device dev int color PROTOTYPE: $ CODE: { g2_pen(*dev, color); } void g2_set_dash(dev, N, dashes=NULL) G2::Device dev int N double * dashes PROTOTYPE: $ CODE: { g2_set_dash(*dev, N, dashes); free(dashes); } void g2_set_font_size(dev, size) G2::Device dev double size PROTOTYPE: $ CODE: { g2_set_font_size(*dev, size); } void g2_set_line_width(dev, w) G2::Device dev double w PROTOTYPE: $ CODE: { g2_set_line_width(*dev, w); } void g2_clear_palette(dev) G2::Device dev PROTOTYPE: CODE: { g2_clear_palette(*dev); } void g2_reset_palette(dev) G2::Device dev PROTOTYPE: CODE: { g2_reset_palette(*dev); } void g2_allocate_basic_colors(dev) G2::Device dev PROTOTYPE: CODE: { g2_allocate_basic_colors(*dev); } void g2_clear(dev) G2::Device dev PROTOTYPE: CODE: { g2_clear(*dev); } void g2_set_background(dev, color) G2::Device dev int color PROTOTYPE: $ CODE: { g2_set_background(*dev, color); } void g2_move(dev, x, y) G2::Device dev double x double y PROTOTYPE: $$ CODE: { g2_move(*dev, x, y); } void g2_move_r(dev, dx, dy) G2::Device dev double dx double dy PROTOTYPE: $$ CODE: { g2_move_r(*dev, dx, dy); } void g2_plot(dev, x, y) G2::Device dev double x double y PROTOTYPE: $$ CODE: { g2_plot(*dev, x, y); } void g2_plot_r(dev, dx, dy) G2::Device dev double dx double dy PROTOTYPE: $$ CODE: { g2_plot_r(*dev, dx, dy); } void g2_line(dev, x1, y1, x2, y2) G2::Device dev double x1 double y1 double x2 double y2 PROTOTYPE: $$$$ CODE: { g2_line(*dev, x1, y1, x2, y2); } void g2_line_r(dev, dx, dy) G2::Device dev double dx double dy PROTOTYPE: $$ CODE: { g2_line_r(*dev, dx, dy); } void g2_line_to(dev, x, y) G2::Device dev double x double y PROTOTYPE: $$ CODE: { g2_line_to(*dev, x, y); } void g2_poly_line(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_poly_line(*dev, N_pt, points); free(points); } void g2_triangle(dev, x1, y1, x2, y2, x3, y3) G2::Device dev double x1 double y1 double x2 double y2 double x3 double y3 PROTOTYPE: $$$$$$$ CODE: { g2_triangle(*dev, x1, y1, x2, y2, x3, y3); } void g2_filled_triangle(dev, x1, y1, x2, y2, x3, y3) G2::Device dev double x1 double y1 double x2 double y2 double x3 double y3 PROTOTYPE: $$$$$$$ CODE: { g2_filled_triangle(*dev, x1, y1, x2, y2, x3, y3); } void g2_rectangle(dev, x1, y1, x2, y2) G2::Device dev double x1 double y1 double x2 double y2 PROTOTYPE: $$$$ CODE: { g2_rectangle(*dev, x1, y1, x2, y2); } void g2_filled_rectangle(dev, x1, y1, x2, y2) G2::Device dev double x1 double y1 double x2 double y2 PROTOTYPE: $$$$ CODE: { g2_filled_rectangle(*dev, x1, y1, x2, y2); } void g2_polygon(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_polygon(*dev, N_pt, points); free(points); } void g2_filled_polygon(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_filled_polygon(*dev, N_pt, points); free(points); } void g2_circle(dev, x, y, r) G2::Device dev double x double y double r PROTOTYPE: $$$ CODE: { g2_circle(*dev, x, y, r); } void g2_filled_circle(dev, x, y, r) G2::Device dev double x double y double r PROTOTYPE: $$$ CODE: { g2_filled_circle(*dev, x, y, r); } void g2_ellipse(dev, x, y, r1, r2) G2::Device dev double x double y double r1 double r2 PROTOTYPE: $$$$ CODE: { g2_ellipse(*dev, x, y, r1, r2); } void g2_filled_ellipse(dev, x, y, r1, r2) G2::Device dev double x double y double r1 double r2 PROTOTYPE: $$$$ CODE: { g2_filled_ellipse(*dev, x, y, r1, r2); } void g2_arc(dev, x, y, r1, r2, a1, a2) G2::Device dev double x double y double r1 double r2 double a1 double a2 PROTOTYPE: $$$$$$ CODE: { g2_arc(*dev, x, y, r1, r2, a1, a2); } void g2_filled_arc(dev, x, y, r1, r2, a1, a2) G2::Device dev double x double y double r1 double r2 double a1 double a2 PROTOTYPE: $$$$$$ CODE: { g2_filled_arc(*dev, x, y, r1, r2, a1, a2); } void g2_string(dev, x, y, text) G2::Device dev double x double y char * text PROTOTYPE: $$$ CODE: { g2_string(*dev, x, y, text); } void g2_set_QP(dev, d, shape) G2::Device dev double d enum QPshape shape PROTOTYPE: $$ CODE: { g2_set_QP(*dev, d, shape); } void g2_plot_QP(dev, x, y) G2::Device dev double x double y PROTOTYPE: $$ CODE: { g2_plot_QP(*dev, x, y); } void g2_query_pointer(dev) G2::Device dev PROTOTYPE: $$ CODE: { double x, y; unsigned int button; g2_query_pointer(*dev, &x, &y, &button); } void g2_spline(dev, N_pt, points, o) G2::Device dev int N_pt double * points int o PROTOTYPE: $$ CODE: { g2_spline(*dev, N_pt, points, o); free(points); } void g2_b_spline(dev, N_pt, points, o) G2::Device dev int N_pt double * points int o PROTOTYPE: $$ CODE: { g2_b_spline(*dev, N_pt, points, o); free(points); } void g2_raspln(dev, N_pt, points, tn) G2::Device dev int N_pt double * points double tn PROTOTYPE: $$ CODE: { g2_raspln(*dev, N_pt, points, tn); free(points); } void g2_para_3(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_para_3(*dev, N_pt, points); free(points); } void g2_para_5(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_para_5(*dev, N_pt, points); free(points); } void g2_filled_spline(dev, N_pt, points, o) G2::Device dev int N_pt double * points int o PROTOTYPE: $$ CODE: { g2_filled_spline(*dev, N_pt, points, o); free(points); } void g2_filled_b_spline(dev, N_pt, points, o) G2::Device dev int N_pt double * points int o PROTOTYPE: $$ CODE: { g2_filled_b_spline(*dev, N_pt, points, o); free(points); } void g2_filled_raspln(dev, N_pt, points, tn) G2::Device dev int N_pt double * points double tn PROTOTYPE: $$ CODE: { g2_filled_raspln(*dev, N_pt, points, tn); free(points); } void g2_filled_para_3(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_filled_para_3(*dev, N_pt, points); free(points); } void g2_filled_para_5(dev, N_pt, points) G2::Device dev int N_pt double * points PROTOTYPE: $$ CODE: { g2_filled_para_5(*dev, N_pt, points); free(points); } g2-0.72/INSTALL0000644000175000017500000000457510032114537012022 0ustar ljuboljuboInstallation ============ LINUX ----- Either install RPM packet with binaries, or compile as described in the UNIX section UNIX ---- 1. Extract package with gzip -dc g2-xxxx.tar.gz | tar xvf - 2. Run './configure' 3. Run 'make depend' 4. Optionally edit src/g2_config.h to fine-tune g2 behavior (only if you know what are you doing) 5. Run 'make' 6. Run 'make install' or copy libg2.a and g2.h, g2_X11.h, g2_gd.h, and g2_PS.h to the default locations for library and include files. 7. cd to demo directory and run 'make demo' to compile demo applications 8. To rebuild documentation run 'make doc' (html, PS and pdf manual should be already included into documentation). WINDOWS NT ---------- 1. Extract package: unzip 'g2-xxxx.zip' 2. For gd support, please download the binary gd version and place it in a folder next to g2 using default folder name gdwin32, i.e. it is expected in ../gdwin32 from the folder this file is residing. You also will need to create the bgd.lib file using makemsvcimport.bat 3. MS Visual C++ users can build both library and demos with the supplied project file: g2.xxx users of gcc or other commandline based compilers with make support continue as in Unix example VMS --- Note: VMS is not tested in latest builds. However descrip.mms is a good starting point. 1. set default to root of distribution directory 2. type mms to build g2.olb library 3. to compile demo files, set defualt to [.demo] and type mms 4. to install: copy g2.olb and g2.h, g2_X11.h and g2_PS.h to install directories PNG-SUPPORT ----------- g2 needs to be linked to the free available gd library written by Thomas Boutell in order to create PNG files. g2 is tested with version 2.0.22 of gd. gd is available at http://www.boutell.com/gd/ and at numerous mirror sites. Use a ftp search (e.g. http://ftpsearch.ntnu.no/) and search for "gd1.3.tar.gz" to find your nearest mirror site. PERL SUPPORT ------------ 1. build g2 library 2. cd to g2_perl and run perl Makefile.PL make make test SHARED LIBRARIES ---------------- Support for shared libraries is tested on Linux and OSF (DigitalUnix). To build shared libraries type 'make shared'. If you want to run demo applications without installed shared libraries, you should add to LD_LIBRARY_PATH the path to the g2 shared library (e.g. 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/some/path/to/g2') g2-0.72/Makefile0000644000175000017500000000714010515221430012415 0ustar ljuboljubo# # # Makefile for g2 library # # G2_VERSION = 0.72 # # g2 installation directories # LIBDIR = /usr/local/lib INCDIR = /usr/local/include #LIBDIR = $(HOME)/local/lib #INCDIR = $(HOME)/local/include # #------------------------ do not edit ------------------------ # SHELL = /bin/sh CC = gcc CFLAGS = -I./src -O2 -I/usr/local/include -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 FIND = find MAKEDEPEND = makedepend AR = ar ARFLAGS = -cr RANLIB = ranlib LD = ld LDFLAGS = BASE_DIR = ./src BASE_SRC = $(BASE_DIR)/g2_device.c $(BASE_DIR)/g2_ui_control.c \ $(BASE_DIR)/g2_util.c $(BASE_DIR)/g2_fif.c \ $(BASE_DIR)/g2_virtual_device.c $(BASE_DIR)/g2_physical_device.c \ $(BASE_DIR)/g2_graphic_pd.c $(BASE_DIR)/g2_control_pd.c \ $(BASE_DIR)/g2_ui_graphic.c $(BASE_DIR)/g2_ui_virtual_device.c \ $(BASE_DIR)/g2_ui_device.c $(BASE_DIR)/g2_splines.c BASE_INS = $(BASE_DIR)/g2.h PS_DIR = ./src/PS PS_SRC = $(PS_DIR)/g2_PS.c PS_INS = $(PS_DIR)/g2_PS.h FIG_DIR = ./src/FIG FIG_SRC = $(FIG_DIR)/g2_FIG.c FIG_INS = $(FIG_DIR)/g2_FIG.h X11_DIR = ./src/X11 X11_SRC = $(X11_DIR)/g2_X11.c X11_INS = $(X11_DIR)/g2_X11.h #WIN32_DIR = ./src/WIN32 #WIN32_SRC = $(WIN32_DIR)/g2_win32.c $(WIN32_DIR)/g2_win32_thread.c #WIN32_INS = $(WIN32_DIR)/g2_win32.h GD_DIR = ./src/GD GD_SRC = $(GD_DIR)/g2_gd.c GD_INS = $(GD_DIR)/g2_gd.h SRC = $(BASE_SRC) $(PS_SRC) $(FIG_SRC) $(X11_SRC) $(WIN32_SRC) $(GD_SRC) OBJ = $(SRC:.c=.o) INS = $(BASE_INS) $(PS_INS) $(FIG_INS) $(X11_INS) $(WIN32_INS) $(GD_INS) # # define some phony targets # .PHONY: all shared clean doc release demo # # major rule # .c.o: $(CC) $(CFLAGS) -c $< -o $@ all: libg2.a test -d ./include || mkdir ./include cp $(INS) ./include/ shared: libg2.so.0.$(G2_VERSION) @echo libg2.a: $(OBJ) $(AR) $(ARFLAGS) libg2.a $(OBJ) test ! -n "$(RANLIB)" || $(RANLIB) $@ libg2.so.0.$(G2_VERSION): $(OBJ) ld -shared -soname libg2.so.0 -o $@ $(OBJ) libg2.so: libg2.so.0.$(G2_VERSION) ln -f -s libg2.so.0.$(G2_VERSION) $@ install: libg2.a test -d $(LIBDIR) || mkdir -p $(LIBDIR) test -d $(INCDIR) || mkdir -p $(INCDIR) $(INSTALL_DATA) libg2.a $(LIBDIR) for IFILE in $(INS); do \ $(INSTALL_DATA) $$IFILE $(INCDIR); \ done release: clean doc cp ./doc/latex/refman.ps ./doc/g2_refman.ps cp ./doc/latex/refman.pdf ./doc/g2_refman.pdf rm -r ./doc/latex doc: (cd ./doc ; doxygen Doxyfile) (cd ./doc/latex ; make ps ; make pdf) clean: -(cd ./demo ; make clean) -(cd ./g2_python ; make clean) -rm -f $(OBJ) -rm -f libg2.a config.cache config.log Makefile.bak config.status -rm -f ./include/*.h -$(FIND) . -name "*~" -exec rm -f {} \; -(cd ./g2_perl ; make clean) -rm -f ./g2_perl/test.ps -rm -f ./g2_perl/test.png -rm -f ./g2_perl/test.jpg -rm -f ./g2_perl/test.fig -rm -f ./g2_perl/Makefile.old -rm -f ./libg2.so.0.$(G2_VERSION) -rm -f libg2.$(G2_VERSION).a -rm -f a.out -rm -fr doc/html/ doc/latex/ doc/g2_refman.ps doc/g2_refman.pdf demo: libg2.a (cd ./demo ; make) depend: $(MAKEDEPEND) -- $(CFLAGS) -- $(SRC) @echo @echo "Run 'make' to build g2 library." @echo # DO NOT DELETE THIS LINE -- make depend depends on it. g2-0.72/g2.dsp0000644000175000017500000000714010040317707012003 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="g2" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Static Library" 0x0104 CFG=g2 - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "g2.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "g2.mak" CFG="g2 - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "g2 - Win32 Release" (based on "Win32 (x86) Static Library") !MESSAGE "g2 - Win32 Debug" (based on "Win32 (x86) Static Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "g2 - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /W3 /GX /O2 /I "../gdwin32" /I "./src" /I "../src" /D "NDEBUG" /D "_WINDOWS" /D "WIN32" /D "DO_PS" /D "DO_GIF" /D "DO_WIN32" /D "DO_FIG" /YX /FD /c # ADD BASE RSC /l 0x409 # ADD RSC /l 0x409 BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo !ELSEIF "$(CFG)" == "g2 - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /W3 /GX /Z7 /Od /I "../gdwin32" /I "./src" /I "../src" /D "_DEBUG" /D "_WINDOWS" /D "WIN32" /D "DO_PS" /D "DO_GIF" /D "DO_WIN32" /D "DO_FIG" /FR /YX /FD /c # ADD BASE RSC /l 0x409 # ADD RSC /l 0x409 BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo !ENDIF # Begin Target # Name "g2 - Win32 Release" # Name "g2 - Win32 Debug" # Begin Source File SOURCE=.\src\g2_control_pd.c # End Source File # Begin Source File SOURCE=.\src\g2_device.c # End Source File # Begin Source File SOURCE=.\src\g2_fif.c # End Source File # Begin Source File SOURCE=.\src\FIG\g2_FIG.c # End Source File # Begin Source File SOURCE=.\src\gd\g2_gd.c # End Source File # Begin Source File SOURCE=.\src\g2_graphic_pd.c # End Source File # Begin Source File SOURCE=.\src\g2_physical_device.c # End Source File # Begin Source File SOURCE=.\src\PS\g2_PS.c # End Source File # Begin Source File SOURCE=.\src\g2_splines.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_control.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_device.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_graphic.c # End Source File # Begin Source File SOURCE=.\src\g2_ui_virtual_device.c # End Source File # Begin Source File SOURCE=.\src\g2_util.c # End Source File # Begin Source File SOURCE=.\src\g2_virtual_device.c # End Source File # Begin Source File SOURCE=.\src\Win32\g2_win32.c # End Source File # Begin Source File SOURCE=.\src\Win32\g2_win32_thread.c # End Source File # End Target # End Project g2-0.72/install-sh0000754000175000017500000001124506650611563013000 0ustar ljuboljubo#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 g2-0.72/g2demo.dsp0000644000175000017500000000751110040317707012652 0ustar ljuboljubo# Microsoft Developer Studio Project File - Name="g2demo" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=g2demo - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "g2demo.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "g2demo.mak" CFG="g2demo - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "g2demo - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "g2demo - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "g2demo - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GX /O2 /I "src/GIF" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /I "src/FIG" /D "NDEBUG" /D "G2DLL" /D "DO_GIF" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "DO_PS" /D "DO_FIG" /D "DO_WIN32" /D "DO_WMF32" /D "DO_EPSF" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"./Release" # SUBTRACT LINK32 /verbose !ELSEIF "$(CFG)" == "g2demo - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "g2demo__" # PROP BASE Intermediate_Dir "g2demo__" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "src/gd" /I "./src" /I "src" /I "src/PS" /I "src/WIN32" /I "src/GD" /I "src/FIG" /D "_DEBUG" /D "DO_GD" /D "DO_EPSF_CLIP" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "DO_PS" /D "DO_FIG" /D "DO_WIN32" /D "DO_WMF32" /D "DO_EPSF" /FR /YX /FD /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /fo"g2_win32.res" /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"./Debug" /libpath:"../gd" !ENDIF # Begin Target # Name "g2demo - Win32 Release" # Name "g2demo - Win32 Debug" # Begin Source File SOURCE=.\demo\g2_test.c # End Source File # Begin Source File SOURCE=..\gdwin32\bgd.lib # End Source File # End Target # End Project g2-0.72/g2_python/0000755000175000017500000000000010515227214012672 5ustar ljuboljubog2-0.72/g2_python/penguin.py0000644000175000017500000002351010402424741014711 0ustar ljuboljubopenguin = [ [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,00,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,01,00,00,00,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,00,00,01,01,01,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,00,00,01,01,00,00,00,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,01,01,00,00,01,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,01,01,01,00,01,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,25,25,25,25,25,25,25,01,01,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,25,25,25,25,25,25,25,25,01,01,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,25,25,25,01,01,25,25,25,25,00,01,01,01,00,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,25,25,25,25,01,01,00,00,01,01,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,01,01,25,01,01,01,01,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,00,01,01,01,01,01,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,01,01,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,01,01,01,01,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,01,01,00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,01,01,01,01,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00], [00,00,00,00,00,00,00,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,25,25,01,01,01,01,01,01,01,01,25,00,00,00,00,00,00], [00,00,00,00,00,00,01,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,01,01,01,01,01,01,25,25,25,00,00,00,00,00], [00,00,00,00,00,00,01,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,01,01,01,01,01,25,25,25,01,00,00,00,00,00], [00,00,00,00,00,01,25,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,01,01,01,25,25,25,25,01,00,00,00,00,00], [00,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,01,01,00,00,00,00], [01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,01,01,01,00,00,00], [00,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,00,00], [00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00], [00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01], [00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01], [00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,01,00,00,00,00,00,00,00,00,01,01,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,00], [01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,00,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,00,00,00], [01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,25,25,01,01,01,00,00,00,00,00], [00,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00], [00,00,01,01,01,01,25,25,25,25,25,25,25,25,25,25,25,25,25,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,25,25,25,25,25,25,25,01,01,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,25,25,25,25,01,01,01,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,01,01,01,01,25,25,25,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00], [00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01,00,00,00,00,00,00,00,00,00,00,00,00]] g2-0.72/g2_python/setup.py0000755000175000017500000000427710514775575014442 0ustar ljuboljubo#!/usr/bin/env python # Run 'make' or 'make install' to call this script. # The result of 'make install' will generally be : # on Linux : /usr/lib/python2.4/site-packages/g2.so # on Windows : C:\Python24\lib\site-packages\g2.pyd # Then in Python say : import g2 # For a module based on libg2.so, make sure libg2.so is in the link path # (you may have to add a link like libg2.so -> libg2.so.0.0.70). # For a stand alone module (not recommended), make sure libg2.a is in # the link path (very likely, given -L../), and libg2.so is not. # Alternatively, add '-static' to link_args below. from distutils.core import setup, Extension import sys error_string = '\n No %s command line argument.' \ '\n It should be a string of %s options.' \ '\n Specify an empty string (\'\') if there are none.' # set compile_args and link_args for (pos, step) in (('1st', 'compile'), ('2nd', 'link')): try: globals()[step + '_args'] = sys.argv.pop(1).split() except IndexError: print error_string % (pos, step) sys.exit(1) import platform build_ext_opts = {} # called without arguments, just build the module in directory g2_python if len(sys.argv) == 1: build_ext_opts['force'] = True sys.argv.append('build_ext') # on Linux, strip debugging info from lib if platform.system() == 'Linux': link_args += ['-s'] if platform.python_compiler()[0:3] == 'GCC' and 'sparc' in platform.machine(): link_args += ['-fPIC', '-Wl,-O2', '-Wl,-Map=g2.map'] g2base = Extension( 'g2', sources = ['g2module.c'], include_dirs = ['../src'], library_dirs = ['../'], libraries = ['g2'], extra_compile_args = compile_args, extra_link_args = link_args) setup( name = 'PythonG2', author = 'Tijs Michels', author_email = 'tijs@users.sourceforge.net', url = 'http://g2.sourceforge.net/', license = 'GNU Lesser General Public License, version 2.1 or above', version = '0.1', description = 'Easy to use, portable yet powerful 2D graphics library', ext_modules = [g2base], options = { 'build_ext' : build_ext_opts }) g2-0.72/g2_python/Makefile.in0000644000175000017500000000126710515202045014740 0ustar ljuboljubo# -*- sh -*- .PHONY: all build install demo clean DEFS=@DEFS@ LIBS=@LIBS@ LDSHARED=@LD_SHARED@ # either ../libg2.so or ../libg2.a must be there # to make libg2.so the default, uncomment the next line and the three lines below DEPENDENCY= #ifeq ("$(LDSHARED)","") DEPENDENCY= libg2.a #else #DEPENDENCY= libg2.so #endif all: build build: ../$(DEPENDENCY) python setup.py "$(DEFS)" "$(LIBS)" build_ext ../$(DEPENDENCY): cd ..; make $(DEPENDENCY) # must be root install: build python setup.py "$(DEFS)" "$(LIBS)" install demo: ln -f -s $(shell find build -name g2.so) . python g2_test.py clean: -rm -fr build -rm -f g2.so g2.map g2_test{_clip.eps,.{eps,ps,png,jpg,fig}} penguin.pyc g2-0.72/g2_python/g2module.c0000644000175000017500000013202010402732561014553 0ustar ljuboljubo/***************************************************************************** ** Copyright (C) 2006 Tijs Michels ** This file is part of the g2 library ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include "Python.h" #include "structmember.h" #include "g2.h" #ifdef DO_X11 # include "X11/g2_X11.h" #endif #ifdef DO_PS # include "PS/g2_PS.h" #endif #ifdef DO_GD # include "GD/g2_gd.h" #endif #ifdef DO_FIG # include "FIG/g2_FIG.h" #endif #ifdef DO_WIN32 # include "WIN32/g2_win32.h" #endif typedef struct { PyObject_HEAD int dev; /* (virtual) device (readonly: set by 'constructor') */ } G2; /* in Python, say for instance: * * import g2 * * graph = g2.g2_open_gd('g2_demo.png', 400, 400, g2.g2_gd_png) * graph.g2_set_coordinate_system(200, 200, 1.0, 1.0) * # no device argument; all G2 methods use G2.dev */ /* a few helper functions, inaccessible from Python */ typedef void list_f(int, int, double *); typedef void list_i_f(int, int, double *, int); typedef void list_d_f(int, int, double *, double); static PyTypeObject G2_Type; /* forward declaration */ static double helper_item_float(PyObject *item) { if PyFloat_Check(item) return PyFloat_AsDouble(item); if PyInt_Check(item) return (double) PyInt_AsLong(item); return 0; /* list is assumed to contain floats and/or integers */ } static PyObject * helper_il(const G2 *self, const PyObject *args, list_f *f) { PyObject *list; if (PyArg_ParseTuple((PyObject *)args, "O!", &PyList_Type, &list)) { /* cf. */ int s = PyList_Size(list); if (s) { double * const points = malloc(s * sizeof(double)); /* in one case the buffer holds dashes, not points */ if (points) { const int np = (f == g2_set_dash) ? s : s >> 1; /* two co-ordinates per point */ while (s--) points[s] = helper_item_float(PyList_GET_ITEM(list, s)); (*f)(self->dev, np, points); free(points); Py_RETURN_NONE; } return PyErr_NoMemory(); } PyErr_SetString(PyExc_ValueError, "empty list"); } return NULL; } static PyObject * helper_ili(const G2 *self, const PyObject *args, list_i_f *f) { PyObject *list; int ip; /* number of interpolated points */ if (PyArg_ParseTuple((PyObject *)args, "O!i", &PyList_Type, &list, &ip)) { int s = PyList_Size(list); if (s > 5) { double * const points = malloc(s * sizeof(double)); if (points) { const int np = s >> 1; while (s--) points[s] = helper_item_float(PyList_GET_ITEM(list, s)); (*f)(self->dev, np, points, ip); free(points); Py_RETURN_NONE; } return PyErr_NoMemory(); } PyErr_SetString(PyExc_ValueError, "list must hold at least three points"); } return NULL; } static PyObject * helper_ild(const G2 *self, const PyObject *args, list_d_f *f) { PyObject *list; double factor; if (PyArg_ParseTuple((PyObject *)args, "O!d", &PyList_Type, &list, &factor)) { int s = PyList_Size(list); if (s > 5) { double * const points = malloc(s * sizeof(double)); if (points) { const int np = s >> 1; while (s--) points[s] = helper_item_float(PyList_GET_ITEM(list, s)); (*f)(self->dev, np, points, factor); free(points); Py_RETURN_NONE; } return PyErr_NoMemory(); } PyErr_SetString(PyExc_ValueError, "list must hold at least three points"); } return NULL; } /* end of helper functions * * functions from g2.h */ /* three unbound functions */ PyDoc_STRVAR(doc_g2_ld, "int g2_ld()\n" "Return the latest accessed device (an int)."); static PyObject * C_g2_ld(PyObject *self) { return Py_BuildValue("i", g2_ld()); } PyDoc_STRVAR(doc_g2_set_ld, "g2_set_ld(int dev)\n" "Set the latest accessed device.\n" "e.g. : g2_set_ld(PS_graph.dev)"); static PyObject * C_g2_set_ld(PyObject *self, PyObject *args) { int dev; if (PyArg_ParseTuple(args, "i", &dev)) { g2_set_ld(dev); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_device_exist, "bool g2_device_exist(int dev)\n" "Return True if device exists, False if not."); static PyObject * C_g2_device_exist(PyObject *self, PyObject *args) { int dix; if (PyArg_ParseTuple(args, "i", &dix)) return Py_BuildValue("i", g2_device_exist(dix)); return NULL; } /* (device specific) 'constructors', all returning an object of class G2 */ PyDoc_STRVAR(doc_g2_open_vd, "G2 g2_open_vd()\n" "Construct an object of class G2 that plots on a virtual device.\n" "e.g. : graph = g2_open_vd()\n" " graph.g2_attach(g2_open_X11(800, 600))\n" " graph.g2_attach(g2_open_PS(\"foo.ps\", g2_A4, g2_PS_land))\n" " graph.g2_line(3, 3, 9, 9)"); static PyObject * C_g2_open_vd(PyObject *self) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_vd(); return (PyObject *)obj; } return NULL; } #ifdef _G2_X11_H PyDoc_STRVAR(doc_g2_open_X11, "G2 g2_open_X11(int width, int height)\n" "Construct an object of class G2 that plots on an X11 window.\n" "e.g. : graph = g2_open_X11(800, 600)"); static PyObject * C_g2_open_X11(PyObject *self, PyObject *args) { int width, height; if (PyArg_ParseTuple(args, "ii", &width, &height)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_X11(width, height); return (PyObject *)obj; } } return NULL; } PyDoc_STRVAR(doc_g2_open_X11X, "G2 g2_open_X11X(int width, int height, int x, int y,\n" " str window_name, str icon_name, str icon_data,\n" " int icon_width, int icon_height)\n" "Construct an object of class G2 that plots on an X11 window."); static PyObject * C_g2_open_X11X(PyObject *self, PyObject *args) { int width, height, x, y, icon_width, icon_height; char *window_name, *icon_name, *icon_data; if (PyArg_ParseTuple(args, "iiiisssii", &width, &height, &x, &y, &window_name, &icon_name, &icon_data, &icon_width, &icon_height)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_X11X(width, height, x, y, window_name, icon_name, icon_data, icon_width, icon_height); return (PyObject *)obj; } } return NULL; } #endif #ifdef _G2_PS_H PyDoc_STRVAR(doc_g2_open_PS, "G2 g2_open_PS(str filename, enum paper, enum orientation)\n" "Construct an object of class G2 that writes a PostScript file.\n" "e.g. : graph = g2_open_PS(\"foo.ps\", g2_A4, g2_PS_land)"); static PyObject * C_g2_open_PS(PyObject *self, PyObject *args) { const char *filename; int paper, orientation; if (PyArg_ParseTuple(args, "sii", &filename, &paper, &orientation)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_PS(filename, paper, orientation); return (PyObject *)obj; } } return NULL; } PyDoc_STRVAR(doc_g2_open_EPSF, "G2 g2_open_EPSF(str filename)\n" "Construct an object of class G2 that writes\n" "an Encapsulated PostScript file.\n"); static PyObject * C_g2_open_EPSF(PyObject *self, PyObject *args) { const char *filename; if (PyArg_ParseTuple(args, "s", &filename)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_EPSF(filename); return (PyObject *)obj; } } return NULL; } PyDoc_STRVAR(doc_g2_open_EPSF_CLIP, "G2 g2_open_EPSF_CLIP(str filename, int width, int height)\n" "Construct an object of class G2 that writes\n" "a clipped Encapsulated PostScript file.\n"); static PyObject * C_g2_open_EPSF_CLIP(PyObject *self, PyObject *args) { const char *filename; int width, height; if (PyArg_ParseTuple(args, "sii", &filename, &width, &height)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_EPSF_CLIP(filename, width, height); return (PyObject *)obj; } } return NULL; } #endif #ifdef _G2_GD_H PyDoc_STRVAR(doc_g2_open_gd, "G2 g2_open_gd(str filename, int width, int height, enum gd_type)\n" " 'gd_type' must be one of g2_gd_jpeg, g2_gd_png or g2_gd_gif.\n" "Construct an object of class G2 that writes a jpeg/png/gif file."); static PyObject * C_g2_open_gd(PyObject *self, PyObject *args) { const char *filename; int width, height, gd_type; if (PyArg_ParseTuple(args, "siii", &filename, &width, &height, &gd_type)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_gd(filename, width, height, gd_type); return (PyObject *)obj; } } return NULL; } #endif #ifdef _G2_FIG_H PyDoc_STRVAR(doc_g2_open_FIG, "G2 g2_open_FIG(str filename)\n" "Construct an object of class G2 that plots in the FIG 3.2 format.\n" "See http://www.xfig.org."); static PyObject * C_g2_open_FIG(PyObject *self, PyObject *args) { const char *filename; if (PyArg_ParseTuple(args, "s", &filename)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_FIG(filename); return (PyObject *)obj; } } return NULL; } #endif #ifdef _G2_WIN32_H PyDoc_STRVAR(doc_g2_open_win32, "G2 g2_open_win32(int width, int height, str name, enum win32_type)\n" " 'name' is either a file name or a window title.\n" " 'win32_type' is either g2_win32 or g2_wmf32.\n" "Construct an object of class G2 that plots on an MS Windows window or metafile."); static PyObject * C_g2_open_win32(PyObject *self, PyObject *args) { int width, height, win32_type; const char *name; /* file name or window title */ if (PyArg_ParseTuple(args, "iisi", &width, &height, &name, &win32_type)) { G2 * const obj = (G2 *) PyType_GenericAlloc(&G2_Type, 0); if (obj) { obj->dev = g2_open_win32(width, height, name, win32_type); return (PyObject *)obj; } } return NULL; } #endif static PyMethodDef module_functions[] = { { "g2_ld", (PyCFunction)C_g2_ld, METH_NOARGS, doc_g2_ld }, { "g2_set_ld", C_g2_set_ld, METH_VARARGS, doc_g2_set_ld }, { "g2_device_exist", C_g2_device_exist, METH_VARARGS, doc_g2_device_exist }, /* nine functions that construct an instance of class G2 */ { "g2_open_vd", (PyCFunction)C_g2_open_vd, METH_NOARGS, doc_g2_open_vd }, #ifdef _G2_X11_H { "g2_open_X11", C_g2_open_X11, METH_VARARGS, doc_g2_open_X11 }, { "g2_open_X11X", C_g2_open_X11X, METH_VARARGS, doc_g2_open_X11X }, #endif #ifdef _G2_PS_H { "g2_open_PS", C_g2_open_PS, METH_VARARGS, doc_g2_open_PS }, { "g2_open_EPSF", C_g2_open_EPSF, METH_VARARGS, doc_g2_open_EPSF }, { "g2_open_EPSF_CLIP", C_g2_open_EPSF_CLIP, METH_VARARGS, doc_g2_open_EPSF_CLIP }, #endif #ifdef _G2_GD_H { "g2_open_gd", C_g2_open_gd, METH_VARARGS, doc_g2_open_gd }, #endif #ifdef _G2_FIG_H { "g2_open_FIG", C_g2_open_FIG, METH_VARARGS, doc_g2_open_FIG }, #endif #ifdef _G2_WIN32_H { "g2_open_win32", C_g2_open_win32, METH_VARARGS, doc_g2_open_win32 }, #endif { NULL } }; /* (device specific) enums */ static void add_enums(PyObject *m) { typedef struct { const char *name; int value; } tInt; const tInt enums[] = { #ifdef _G2_PS_H { "g2_A0", g2_A0 }, { "g2_A1", g2_A1 }, { "g2_A2", g2_A2 }, { "g2_A3", g2_A3 }, { "g2_A4", g2_A4 }, { "g2_A5", g2_A5 }, { "g2_A6", g2_A6 }, { "g2_A7", g2_A7 }, { "g2_A8", g2_A8 }, { "g2_A9", g2_A9 }, { "g2_B0", g2_B0 }, { "g2_B1", g2_B1 }, { "g2_B2", g2_B2 }, { "g2_B3", g2_B3 }, { "g2_B4", g2_B4 }, { "g2_B5", g2_B5 }, { "g2_B6", g2_B6 }, { "g2_B7", g2_B7 }, { "g2_B8", g2_B8 }, { "g2_B9", g2_B9 }, { "g2_B10", g2_B10 }, { "g2_Comm_10_Envelope", g2_Comm_10_Envelope }, { "g2_C5_Envelope", g2_C5_Envelope }, { "g2_DL_Envelope", g2_DL_Envelope }, { "g2_Folio", g2_Folio }, { "g2_Executive", g2_Executive }, { "g2_Letter", g2_Letter }, { "g2_Legal", g2_Legal }, { "g2_Ledger", g2_Ledger }, { "g2_Tabloid", g2_Tabloid }, /* orientation */ { "g2_PS_land", g2_PS_land }, { "g2_PS_port", g2_PS_port }, /* g2 Format */ { "g2_PS_PostScript", g2_PS_PostScript }, { "g2_PS_EPSF", g2_PS_EPSF }, { "g2_PS_EPSF_CLIP", g2_PS_EPSF_CLIP }, #endif #ifdef _G2_GD_H { "g2_gd_jpeg", g2_gd_jpeg }, { "g2_gd_png", g2_gd_png }, { "g2_gd_gif", g2_gd_gif }, #endif #ifdef _G2_WIN32_H { "g2_win32", g2_win32 }, { "g2_wmf32", g2_wmf32 }, #endif { "QPrect", QPrect }, { "QPcirc", QPcirc } }; const tInt *c = enums + sizeof(enums)/sizeof(tInt); while (c-- > enums) PyModule_AddIntConstant(m, (char *)c->name, c->value); PyModule_AddStringConstant(m, "G2_VERSION", G2_VERSION); } /* methods of class G2, all of which use G2 member dev */ /* methods that operate on a single device */ PyDoc_STRVAR(doc_g2_attach, "g2_attach(G2 graph)\n" "Attach an object of class G2 to a virtual device.\n" "e.g. : graph.g2_attach(g2_open_X11(800, 600))"); static PyObject * C_g2_attach(G2 *self, PyObject *args) { PyObject *dev; if (PyArg_ParseTuple(args, "O!", &G2_Type, &dev)) { g2_attach(self->dev, ((G2 *)dev)->dev); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_detach, "g2_detach(G2 graph)\n" "Detach an object of class G2 from a virtual device."); static PyObject * C_g2_detach(G2 *self, PyObject *args) { PyObject *dev; if (PyArg_ParseTuple(args, "O!", &G2_Type, &dev)) { g2_detach(self->dev, ((G2 *)dev)->dev); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_ink, "int g2_ink(float red, float green, float blue)\n" "Return an ink of the specified color.\n" "Arguments must be between 0 and 1.\n" "Use only on instances of class G2 that represent a physical device."); static PyObject * C_g2_ink(G2 *self, PyObject *args) /* only on a physical device */ { double red, green, blue; if (PyArg_ParseTuple(args, "ddd", &red, &green, &blue)) return Py_BuildValue("i", g2_ink(self->dev, red, green, blue)); return NULL; } /* methods that can operate on multiple devices */ PyDoc_STRVAR(doc_g2_close, "g2_close()\n" "Close and delete a device.\n" "Later, garbage collection will delete\n" "the now useless object of class G2."); static PyObject * C_g2_close(G2 *self) { g2_close(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_set_auto_flush, "g2_set_auto_flush(bool on_off)\n" "Flush or not after each graphical operation.\n" "Note : this slows g2 down considerably."); static PyObject * C_g2_set_auto_flush(G2 *self, PyObject *args) { int on_off; if (PyArg_ParseTuple(args, "i", &on_off)) { g2_set_auto_flush(self->dev, on_off); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_flush, "g2_flush()\n" "Flush the device (or devices in case of a virtual device)."); static PyObject * C_g2_flush(G2 *self) { g2_flush(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_save, "g2_save()\n" "Save the output. This is implied by g2_close."); static PyObject * C_g2_save(G2 *self) { g2_save(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_set_coordinate_system, "g2_set_coordinate_system(float x_origin, float y_origin,\n" " float x_multiply, float y_multiply)\n" "Set a user defined co-ordinate system."); static PyObject * C_g2_set_coordinate_system(G2 *self, PyObject *args) { double x_origin, y_origin, x_mul, y_mul; if (PyArg_ParseTuple(args, "dddd", &x_origin, &y_origin, &x_mul, &y_mul)) { g2_set_coordinate_system(self->dev, x_origin, y_origin, x_mul, y_mul); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_pen, "g2_pen(int pen)\n" "Set pen color for all following operations. See also g2_ink.\n" "e.g. : graph.g2_pen(graph.g2_ink(.25, .6, 0))"); static PyObject * C_g2_pen(G2 *self, PyObject *args) { int color; if (PyArg_ParseTuple(args, "i", &color)) { g2_pen(self->dev, color); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_set_dash, "g2_set_dash(list pattern)\n" " 'pattern' : [length, ... length]\n" " In the list ints and floats can be mixed freely.\n" "Set line dash. See also g2_set_solid.\n" "e.g. : g2_set_dash([4, 2])\n" " for lines with dashes twice as long\n" " as the white spaces between them.\n" "Note : this one argument form is Python specific."); static PyObject * C_g2_set_dash(G2 *self, PyObject *args) { return helper_il(self, args, g2_set_dash); } /* python specific function : more explicit than passing an empty list */ PyDoc_STRVAR(doc_g2_set_solid, "g2_set_solid()\n" "Set the line style to solid. See also g2_set_dash.\n" "This method is Python specific."); static PyObject * C_g2_set_solid(G2 *self) { g2_set_dash(self->dev, 0, NULL); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_set_font_size, "g2_set_font_size(float size)\n" "Set the font size."); static PyObject * C_g2_set_font_size(G2 *self, PyObject *args) { double size; if (PyArg_ParseTuple(args, "d", &size)) { g2_set_font_size(self->dev, size); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_set_line_width, "g2_set_line_width(float size)\n" "Set the line width."); static PyObject * C_g2_set_line_width(G2 *self, PyObject *args) { double size; if (PyArg_ParseTuple(args, "d", &size)) { g2_set_line_width(self->dev, size); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_clear_palette, "g2_clear_palette()\n" "Remove all inks."); static PyObject * C_g2_clear_palette(G2 *self) { g2_clear_palette(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_reset_palette, "g2_reset_palette()\n" "Remove all inks and reallocate the default colors."); static PyObject * C_g2_reset_palette(G2 *self) { g2_reset_palette(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_allocate_basic_colors, "g2_allocate_basic_colors()\n" "Allocate the default colors."); static PyObject * C_g2_allocate_basic_colors(G2 *self) { g2_allocate_basic_colors(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_clear, "g2_clear()\n" "Clear the device."); static PyObject * C_g2_clear(G2 *self) { g2_clear(self->dev); Py_RETURN_NONE; } PyDoc_STRVAR(doc_g2_set_background, "g2_set_background(int pen)\n" "Set the background color.\n" "e.g. : graph.g2_set_background(graph.g2_ink(.25, .6, 0))"); static PyObject * C_g2_set_background(G2 *self, PyObject *args) { int color; if (PyArg_ParseTuple(args, "i", &color)) { g2_set_background(self->dev, color); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_move, "g2_move(float x, float y)\n" "Move graphical cursor to (x, y)."); static PyObject * C_g2_move(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_move(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_move_r, "g2_move_r(float x, float y)\n" "Move graphical cursor to (x, y) from\n" "the current graphical cursor position."); static PyObject * C_g2_move_r(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_move_r(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_plot, "g2_plot(float x, float y)\n" "Plot a dot at position (x, y)."); static PyObject * C_g2_plot(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_plot(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_plot_r, "g2_plot_r(float x, float y)\n" "Plot a dot at (x, y) from the current graphical cursor position."); static PyObject * C_g2_plot_r(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_plot_r(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_line, "g2_line(float x1, float y1, float x2, float y2)\n" "Plot a line from (x1, y1) to (x2, y2)."); static PyObject * C_g2_line(G2 *self, PyObject *args) { double x1, y1, x2, y2; if (PyArg_ParseTuple(args, "dddd", &x1, &y1, &x2, &y2)) { g2_line(self->dev, x1, y1, x2, y2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_line_r, "g2_line_r(float x, float y)\n" "Plot a line from the current graphical cursor position\n" "to (x, y) from there."); static PyObject * C_g2_line_r(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_line_r(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_line_to, "g2_line_to(float x, float y)\n" "Plot a line from the current graphical cursor position to (x, y)."); static PyObject * C_g2_line_to(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_line_to(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_poly_line, "g2_poly_line(list points)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" "Plot a line through the points in the list.\n" "e.g. : graph.g2_poly_line([2, 4, 2.5, 6.25, 3, 9, 3.5, 12.25])\n" "Note : this one argument form is Python specific."); static PyObject * C_g2_poly_line(G2 *self, PyObject *args) { return helper_il(self, args, g2_poly_line); } PyDoc_STRVAR(doc_g2_triangle, "g2_triangle(float x1, float y1, float x2, float y2,\n" " float x3, float y3)\n" "Plot a triangle through the points (x1, y1), (x2, y2) and (x3, y3)."); static PyObject * C_g2_triangle(G2 *self, PyObject *args) { double x1, y1, x2, y2, x3, y3; if (PyArg_ParseTuple(args, "dddddd", &x1, &y1, &x2, &y2, &x3, &y3)) { g2_triangle(self->dev, x1, y1, x2, y2, x3, y3); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_filled_triangle, "g2_filled_triangle(float x1, float y1, float x2, float y2,\n" " float x3, float y3)\n" "Fill a triangle through the points (x1, y1), (x2, y2) and (x3, y3)."); static PyObject * C_g2_filled_triangle(G2 *self, PyObject *args) { double x1, y1, x2, y2, x3, y3; if (PyArg_ParseTuple(args, "dddddd", &x1, &y1, &x2, &y2, &x3, &y3)) { g2_filled_triangle(self->dev, x1, y1, x2, y2, x3, y3); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_rectangle, "g2_rectangle(float x1, float y1, float x2, float y2)\n" "Plot a rectangle through the points (x1, y1) and (x2, y2)."); static PyObject * C_g2_rectangle(G2 *self, PyObject *args) { double x1, y1, x2, y2; if (PyArg_ParseTuple(args, "dddd", &x1, &y1, &x2, &y2)) { g2_rectangle(self->dev, x1, y1, x2, y2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_filled_rectangle, "g2_filled_rectangle(float x1, float y1, float x2, float y2)\n" "Fill a rectangle through the points (x1, y1) and (x2, y2)."); static PyObject * C_g2_filled_rectangle(G2 *self, PyObject *args) { double x1, y1, x2, y2; if (PyArg_ParseTuple(args, "dddd", &x1, &y1, &x2, &y2)) { g2_filled_rectangle(self->dev, x1, y1, x2, y2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_polygon, "g2_polygon(list points)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" "Plot a polygon through the points in the list.\n" "e.g. : graph.g2_polygon([3, 1, 1, 3, 3, 5, 5, 3])\n" "Note : this one argument form is Python specific."); static PyObject * C_g2_polygon(G2 *self, PyObject *args) { return helper_il(self, args, g2_polygon); } PyDoc_STRVAR(doc_g2_filled_polygon, "g2_filled_polygon(list points)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" "Fill a polygon through the points in the list.\n" "Note : this one argument form is Python specific."); static PyObject * C_g2_filled_polygon(G2 *self, PyObject *args) { return helper_il(self, args, g2_filled_polygon); } PyDoc_STRVAR(doc_g2_circle, "g2_circle(float x, float y, float r)\n" "Plot a circle with center (x, y) and radius r."); static PyObject * C_g2_circle(G2 *self, PyObject *args) { double x, y, r; if (PyArg_ParseTuple(args, "ddd", &x, &y, &r)) { g2_circle(self->dev, x, y, r); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_filled_circle, "g2_filled_circle(float x, float y, float r)\n" "Fill a circle with center (x, y) and radius r."); static PyObject * C_g2_filled_circle(G2 *self, PyObject *args) { double x, y, r; if (PyArg_ParseTuple(args, "ddd", &x, &y, &r)) { g2_filled_circle(self->dev, x, y, r); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_ellipse, "g2_ellipse(float x, float y, float r1, float r2)\n" "Plot an ellipse with center (x, y) and radii r1 and r2."); static PyObject * C_g2_ellipse(G2 *self, PyObject *args) { double x, y, r1, r2; if (PyArg_ParseTuple(args, "dddd", &x, &y, &r1, &r2)) { g2_ellipse(self->dev, x, y, r1, r2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_filled_ellipse, "g2_filled_ellipse(float x, float y, float r1, float r2)\n" "Fill an ellipse with center (x, y) and radii r1 and r2."); static PyObject * C_g2_filled_ellipse(G2 *self, PyObject *args) { double x, y, r1, r2; if (PyArg_ParseTuple(args, "dddd", &x, &y, &r1, &r2)) { g2_filled_ellipse(self->dev, x, y, r1, r2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_arc, "g2_arc(float x, float y, float r1, float r2,\n" " float a1, float a2)\n" "Plot an arc with center (x, y), radii r1 and r2,\n" "and angles a1 and a2."); static PyObject * C_g2_arc(G2 *self, PyObject *args) { double x, y, r1, r2, a1, a2; if (PyArg_ParseTuple(args, "dddddd", &x, &y, &r1, &r2, &a1, &a2)) { g2_arc(self->dev, x, y, r1, r2, a1, a2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_filled_arc, "g2_filled_arc(float x, float y, float r1, float r2,\n" " float a1, float a2)\n" "Fill an arc with center (x, y), radii r1 and r2,\n" "and angles a1 and a2."); static PyObject * C_g2_filled_arc(G2 *self, PyObject *args) { double x, y, r1, r2, a1, a2; if (PyArg_ParseTuple(args, "dddddd", &x, &y, &r1, &r2, &a1, &a2)) { g2_filled_arc(self->dev, x, y, r1, r2, a1, a2); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_string, "g2_string(float x, float y, str s)\n" "Write string s at position (x, y)."); static PyObject * C_g2_string(G2 *self, PyObject *args) { double x, y; const char *s; if (PyArg_ParseTuple(args, "dds", &x, &y, &s)) { g2_string(self->dev, x, y, s); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_image, "g2_image(float x, float y, list list_of_lists)\n" " Each list in list_of_lists represents one row,\n" " where a row is a list of pens.\n" " The longest row determines the image width.\n" " Shorter rows are filled with pen 0.\n" " The number of lists in list_of_lists determines the image height.\n" "e.g. : g2_image(5, 7, [[2, 4, 6], [3, 6, 9], [4, 8, 12]])\n" " plots a 3x3 bitmap at position (5, 7).\n" "Note : this three argument form is Python specific."); static PyObject * C_g2_image(G2 *self, PyObject *args) { double x, y; PyObject *list; /* a list of lists, to be unpacked as a two-dimensional array */ if (PyArg_ParseTuple(args, "ddO!", &x, &y, &PyList_Type, &list)) { int h = PyList_Size(list); /* the nr of lines, i.e. the height */ if (h) { int i = 0; int j = 0; PyObject * po; PyObject ** const lines = malloc(h * sizeof(PyObject *)); if (lines == NULL) return PyErr_NoMemory(); do { po = PyList_GET_ITEM(list, i++); if (PyList_Check(po)) lines[j++] = po; /* only store lists */ } while (i < h); i -= j; /* in case not all elements were lists, i.e. lines, */ h -= i; /* decrement the height */ if (h) { /* our outer list contained at least one nested list, i.e. line */ PyObject * const * const e = lines + h; PyObject * const * l = e; int w = 0; do { /* set width to the longest list */ if ((i = PyList_Size(*--l)) > w) w = i; } while (l > lines); if (w) { /* at least one line had a width > 0 */ int * const pens = PyMem_New(int, w * h * sizeof(int)); int * pen = pens; if (pens == NULL) { free(lines); return PyErr_NoMemory(); } do { PyObject * const pl = *l; i = 0; j = PyList_Size(pl); while (i < j) { po = PyList_GET_ITEM(pl, i); pen[i++] = PyInt_Check(po) ? PyInt_AsLong(po) : 0; } while (i < w) pen[i++] = 0; pen += w; l++; } while (l < e); /* the previous loop ended with l == lines */ g2_image(self->dev, x, y, w, h, pens); PyMem_Del(pens); } } free(lines); Py_RETURN_NONE; } PyErr_SetString(PyExc_ValueError, "empty list"); } return NULL; } PyDoc_STRVAR(doc_g2_set_QP, "g2_set_QP(float size, enum shape)\n" " 'shape' must be either QPrect or QPcirc.\n" "Set QuasiPixel size and shape. See g2_plot_QP."); static PyObject * C_g2_set_QP(G2 *self, PyObject *args) { double size; int shape; if (PyArg_ParseTuple(args, "di", &size, &shape)) { g2_set_QP(self->dev, size, shape); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_plot_QP, "g2_plot_QP(float x, float y)\n" "Plot a Quasi Pixel at position (x, y).\n" "Quasi Pixels make it easy to plot cellular automata and related\n" "images. QP is simply a big pixel as defined by g2_set_QP.\n" "Co-ordinates are scaled accordingly, so no recalculation is needed\n" "on the client side."); static PyObject * C_g2_plot_QP(G2 *self, PyObject *args) { double x, y; if (PyArg_ParseTuple(args, "dd", &x, &y)) { g2_plot_QP(self->dev, x, y); Py_RETURN_NONE; } return NULL; } PyDoc_STRVAR(doc_g2_query_pointer, "[float x, float y, int button] g2_query_pointer()\n" "Query pointer position and button state (e.g. mouse for X11).\n" "The results are returned in a list of two floats and one int.\n" "e.g. : x, y, button = g2_query_pointer()\n" "Note : this no argument form is Python specific."); static PyObject * C_g2_query_pointer(G2 *self) { double x, y; unsigned int button; g2_query_pointer(self->dev, &x, &y, &button); PyObject * const r = PyTuple_New(3); PyTuple_SET_ITEM(r, 0, Py_BuildValue("d", x)); PyTuple_SET_ITEM(r, 1, Py_BuildValue("d", y)); PyTuple_SET_ITEM(r, 2, Py_BuildValue("I", button)); /* capital, for unsigned */ return r; } PyDoc_STRVAR(doc_g2_spline, "g2_spline(list points, int ppdp)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" " 'ppdp' : the number of interpolated points per data point.\n" " The higher 'ppdp', the rounder the spline curve.\n" "Plot a spline curve through the points in the list\n" "using Young's method of successive over-relaxation.\n" "Note : this two argument form is Python specific."); static PyObject * C_g2_spline(G2 *self, PyObject *args) { return helper_ili(self, args, g2_spline); } PyDoc_STRVAR(doc_g2_filled_spline, "g2_filled_spline(list points, int ppdp)\n" "As g2_spline, but filled."); static PyObject * C_g2_filled_spline(G2 *self, PyObject *args) { return helper_ili(self, args, g2_filled_spline); } PyDoc_STRVAR(doc_g2_b_spline, "g2_b_spline(list points, int ppdp)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" " 'ppdp' : the number of interpolated points per data point.\n" " The higher 'ppdp', the rounder the spline curve.\n" "Plot a b-spline curve through the points in the list.\n" "For most averaging purposes, this is the right spline.\n" "Note : this two argument form is Python specific."); static PyObject * C_g2_b_spline(G2 *self, PyObject *args) { return helper_ili(self, args, g2_b_spline); } PyDoc_STRVAR(doc_g2_filled_b_spline, "g2_filled_b_spline(list points, int ppdp)\n" "As g2_b_spline, but filled."); static PyObject * C_g2_filled_b_spline(G2 *self, PyObject *args) { return helper_ili(self, args, g2_filled_b_spline); } PyDoc_STRVAR(doc_g2_raspln, "g2_raspln(list points, float tfact)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" " 'tfact' : tension factor between 0 (very rounded) and 2.\n" " With tfact 2, the curve is essentially a polyline\n" " through the given data points.\n" "Plot a cubic polynomial through the points in the list. Each\n" "Hermite polynomial between two data points consists of 40 lines.\n" "See g2_splines.c for further information.\n" "Note : this two argument form is Python specific."); static PyObject * C_g2_raspln(G2 *self, PyObject *args) { return helper_ild(self, args, g2_raspln); } PyDoc_STRVAR(doc_g2_filled_raspln, "g2_filled_raspln(list points, float tfact)\n" "As g2_raspln, but filled."); static PyObject * C_g2_filled_raspln(G2 *self, PyObject *args) { return helper_ild(self, args, g2_filled_raspln); } PyDoc_STRVAR(doc_g2_para_3, "g2_para_3(list points)\n" " 'points' : [x1, y1, x2, y2, ... xn, yn]\n" " In the list ints and floats can be mixed freely.\n" "Plot a piecewise parametric interpolation polynomial of degree 3\n" "through the given points, using Newton's Divided Differences method.\n" "Note : this one argument form is Python specific."); static PyObject * C_g2_para_3(G2 *self, PyObject *args) { return helper_il(self, args, g2_para_3); } PyDoc_STRVAR(doc_g2_filled_para_3, "g2_filled_para_3(list points)\n" "As g2_para_3, but filled."); static PyObject * C_g2_filled_para_3(G2 *self, PyObject *args) { return helper_il(self, args, g2_filled_para_3); } PyDoc_STRVAR(doc_g2_para_5, "g2_para_5(list points)\n" "As g2_para_3, but with degree 5 instead of 3."); static PyObject * C_g2_para_5(G2 *self, PyObject *args) { return helper_il(self, args, g2_para_5); } PyDoc_STRVAR(doc_g2_filled_para_5, "g2_filled_para_5(list points)\n" "As g2_para_5, but filled."); static PyObject * C_g2_filled_para_5(G2 *self, PyObject *args) { return helper_il(self, args, g2_filled_para_5); } static PyMethodDef G2_methods[] = { /* methods that operate on a single device */ { "g2_attach", (PyCFunction)C_g2_attach, METH_VARARGS, doc_g2_attach }, { "g2_detach", (PyCFunction)C_g2_detach, METH_VARARGS, doc_g2_detach }, { "g2_ink", (PyCFunction)C_g2_ink, METH_VARARGS, doc_g2_ink }, /* methods that can operate on multiple devices */ { "g2_close", (PyCFunction)C_g2_close, METH_NOARGS, doc_g2_close }, { "g2_set_auto_flush", (PyCFunction)C_g2_set_auto_flush, METH_VARARGS, doc_g2_set_auto_flush }, { "g2_flush", (PyCFunction)C_g2_flush, METH_NOARGS, doc_g2_flush }, { "g2_save", (PyCFunction)C_g2_save, METH_NOARGS, doc_g2_save }, { "g2_set_coordinate_system", (PyCFunction)C_g2_set_coordinate_system, METH_VARARGS, doc_g2_set_coordinate_system }, { "g2_pen", (PyCFunction)C_g2_pen, METH_VARARGS, doc_g2_pen }, { "g2_set_dash", (PyCFunction)C_g2_set_dash, METH_VARARGS, doc_g2_set_dash }, { "g2_set_solid", (PyCFunction)C_g2_set_solid, METH_NOARGS, doc_g2_set_solid }, { "g2_set_font_size", (PyCFunction)C_g2_set_font_size, METH_VARARGS, doc_g2_set_font_size }, { "g2_set_line_width", (PyCFunction)C_g2_set_line_width, METH_VARARGS, doc_g2_set_line_width }, { "g2_clear_palette", (PyCFunction)C_g2_clear_palette, METH_NOARGS, doc_g2_clear_palette }, { "g2_reset_palette", (PyCFunction)C_g2_reset_palette, METH_NOARGS, doc_g2_reset_palette }, { "g2_allocate_basic_colors", (PyCFunction)C_g2_allocate_basic_colors, METH_NOARGS, doc_g2_allocate_basic_colors }, { "g2_clear", (PyCFunction)C_g2_clear, METH_NOARGS, doc_g2_clear }, { "g2_set_background", (PyCFunction)C_g2_set_background, METH_VARARGS, doc_g2_set_background }, { "g2_move", (PyCFunction)C_g2_move, METH_VARARGS, doc_g2_move }, { "g2_move_r", (PyCFunction)C_g2_move_r, METH_VARARGS, doc_g2_move_r }, { "g2_plot", (PyCFunction)C_g2_plot, METH_VARARGS, doc_g2_plot }, { "g2_plot_r", (PyCFunction)C_g2_plot_r, METH_VARARGS, doc_g2_plot_r }, { "g2_line", (PyCFunction)C_g2_line, METH_VARARGS, doc_g2_line }, { "g2_line_r", (PyCFunction)C_g2_line_r, METH_VARARGS, doc_g2_line_r }, { "g2_line_to", (PyCFunction)C_g2_line_to, METH_VARARGS, doc_g2_line_to }, { "g2_poly_line", (PyCFunction)C_g2_poly_line, METH_VARARGS, doc_g2_poly_line }, { "g2_triangle", (PyCFunction)C_g2_triangle, METH_VARARGS, doc_g2_triangle }, { "g2_filled_triangle", (PyCFunction)C_g2_filled_triangle, METH_VARARGS, doc_g2_filled_triangle }, { "g2_rectangle", (PyCFunction)C_g2_rectangle, METH_VARARGS, doc_g2_rectangle }, { "g2_filled_rectangle", (PyCFunction)C_g2_filled_rectangle, METH_VARARGS, doc_g2_filled_rectangle }, { "g2_polygon", (PyCFunction)C_g2_polygon, METH_VARARGS, doc_g2_polygon }, { "g2_filled_polygon", (PyCFunction)C_g2_filled_polygon, METH_VARARGS, doc_g2_filled_polygon }, { "g2_circle", (PyCFunction)C_g2_circle, METH_VARARGS, doc_g2_circle }, { "g2_filled_circle", (PyCFunction)C_g2_filled_circle, METH_VARARGS, doc_g2_filled_circle }, { "g2_ellipse", (PyCFunction)C_g2_ellipse, METH_VARARGS, doc_g2_ellipse }, { "g2_filled_ellipse", (PyCFunction)C_g2_filled_ellipse, METH_VARARGS, doc_g2_filled_ellipse }, { "g2_arc", (PyCFunction)C_g2_arc, METH_VARARGS, doc_g2_arc }, { "g2_filled_arc", (PyCFunction)C_g2_filled_arc, METH_VARARGS, doc_g2_filled_arc }, { "g2_string", (PyCFunction)C_g2_string, METH_VARARGS, doc_g2_string }, { "g2_image", (PyCFunction)C_g2_image, METH_VARARGS, doc_g2_image }, { "g2_set_QP", (PyCFunction)C_g2_set_QP, METH_VARARGS, doc_g2_set_QP }, { "g2_plot_QP", (PyCFunction)C_g2_plot_QP, METH_VARARGS, doc_g2_plot_QP }, { "g2_query_pointer", (PyCFunction)C_g2_query_pointer, METH_NOARGS, doc_g2_query_pointer }, { "g2_spline", (PyCFunction)C_g2_spline, METH_VARARGS, doc_g2_spline }, { "g2_filled_spline", (PyCFunction)C_g2_filled_spline, METH_VARARGS, doc_g2_filled_spline }, { "g2_b_spline", (PyCFunction)C_g2_b_spline, METH_VARARGS, doc_g2_b_spline }, { "g2_filled_b_spline", (PyCFunction)C_g2_filled_b_spline, METH_VARARGS, doc_g2_filled_b_spline }, { "g2_raspln", (PyCFunction)C_g2_raspln, METH_VARARGS, doc_g2_raspln }, { "g2_filled_raspln", (PyCFunction)C_g2_filled_raspln, METH_VARARGS, doc_g2_filled_raspln }, { "g2_para_3", (PyCFunction)C_g2_para_3, METH_VARARGS, doc_g2_para_3 }, { "g2_filled_para_3", (PyCFunction)C_g2_filled_para_3, METH_VARARGS, doc_g2_filled_para_3 }, { "g2_para_5", (PyCFunction)C_g2_para_5, METH_VARARGS, doc_g2_para_5 }, { "g2_filled_para_5", (PyCFunction)C_g2_filled_para_5, METH_VARARGS, doc_g2_filled_para_5 }, { NULL } }; static PyMemberDef G2_members[] = { /* cf. structmember.h */ { "dev", T_INT, offsetof(G2, dev), READONLY, "g2 device number\n" "readonly : set by g2_open_..." }, /* flags 0 : no restriction */ { NULL } }; static void G2_dealloc(G2 *self) { self->ob_type->tp_free((PyObject *)self); } static PyTypeObject G2_Type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ "g2.G2", /* tp_name*/ sizeof(G2), /* tp_basicsize*/ 0, /* tp_itemsize*/ (destructor)G2_dealloc, /* tp_dealloc*/ 0, /* tp_print*/ 0, /* tp_getattr*/ 0, /* tp_setattr*/ 0, /* tp_compare*/ 0, /* tp_repr*/ 0, /* tp_as_number*/ 0, /* tp_as_sequence*/ 0, /* tp_as_mapping*/ 0, /* tp_hash */ 0, /* tp_call*/ 0, /* tp_str*/ 0, /* tp_getattro*/ 0, /* tp_setattro*/ 0, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags*/ "G2 class", /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ G2_methods, /* tp_methods */ G2_members /* tp_members */ }; #ifndef PyMODINIT_FUNC /* DLL import/export declarations */ #define PyMODINIT_FUNC void #endif PyMODINIT_FUNC initg2(void) { PyObject *m; if ((PyType_Ready(&G2_Type) == 0) && (m = Py_InitModule3("g2", module_functions, "Python interface to the g2 library."))) { Py_INCREF(&G2_Type); PyModule_AddObject(m, "G2", (PyObject *)&G2_Type); add_enums(m); } } g2-0.72/g2_python/README0000644000175000017500000000046110515011457013553 0ustar ljuboljuboTo build the g2 Python module: 1. go to parent directory and build g2 library 2. type: make To test the g2 Python module, type: make demo To install the g2 Python module, type (you will need root privilege): make install Help is available. In a Python shell, type: >>> import g2 >>> help(g2) g2-0.72/g2_python/g2_test.py0000644000175000017500000001252710402424741014621 0ustar ljuboljubo############################################################################## ## Copyright (C) 1998-2001 Ljubomir Milanovic & Horst Wagner ## Copyright (C) 2006 Tijs Michels ## This file is part of the g2 library ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation; either ## version 2.1 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 ## Lesser General Public License for more details. ## ## You should have received a copy of the GNU Lesser General Public ## License along with this library; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## import sys import g2 from g2 import * from penguin import penguin dev = [] print 'G2 version', G2_VERSION print 'adding..', if hasattr(g2, 'g2_open_PS'): print '..PS ..EPSF ..EPSF_CLIP', dev.append(g2_open_PS('g2_test.ps', g2_A4, g2_PS_land)) dev.append(g2_open_EPSF('g2_test.eps')) dev.append(g2_open_EPSF_CLIP('g2_test_clip.eps', 200, 200)) if hasattr(g2, 'g2_open_FIG'): print '..FIG', dev.append(g2_open_FIG('g2_test.fig')) if hasattr(g2, 'g2_open_X11'): print '..X11', dev.append(g2_open_X11(775, 575)) if hasattr(g2, 'g2_open_PS'): print '..GD(png) ..GD(jpeg)', dev.append(g2_open_gd('g2_test.png', 775, 575, g2_gd_png)) dev.append(g2_open_gd('g2_test.jpg', 775, 575, g2_gd_jpeg)) if hasattr(g2, 'g2_open_win32'): print '..WIN32 ..WMF32' dev.append(g2_open_win32(775, 575, 'g2_test', g2_win32)) dev.append(g2_open_win32(775, 575, 'g2_test.emf', g2_wmf32)) print graph = g2_open_vd() # open virtual device for a in dev: graph.g2_attach(a) graph.g2_set_auto_flush(False) # graph.g2_set_coordinate_system(775, 575, -0.75, -1.0) for i in range(0,27): x = i*20 graph.g2_pen(i) graph.g2_filled_circle(x+10, 10, 10) graph.g2_pen(1) graph.g2_circle(x+10, 10, 10) graph.g2_string(x+7, 21, str(i)) for a in dev: # work on one physical device at a time for i in range(0,65): a.g2_move(i+i+575, 5) a.g2_pen(a.g2_ink(i/64., 0, 0)) a.g2_line_r(0, 20) a.g2_pen(a.g2_ink(0, i/64., 0)) a.g2_line_r(10, 20) a.g2_pen(a.g2_ink(0, 0, i/64.)) a.g2_line_r(-10, 20) graph.g2_pen(1) lines = ((200, 50, 350, 50), (200, 48, 350, 48), (200, 46, 350, 46), (200, 46, 200, 75), (198, 46, 198, 75), (196, 46, 196, 75)) for x1, y1, x2, y2 in lines: graph.g2_line(x1, y1, x2, y2) # this is why we love Python graph.g2_string(200, 50, '012abcABC#())(\\-+~*!$%&') # graph.g2_pen(1) for i in range(1,25): y = i*20+50 graph.g2_line(15, y, 15, y+i) graph.g2_set_font_size(12) graph.g2_string(20, y, '%2d:' % i) graph.g2_set_font_size(i) graph.g2_string(40, y, 'hello, world') graph.g2_plot(150, 70) graph.g2_line(147, 68, 153, 68) y = 100 graph.g2_line(120, y, 170, y+50) graph.g2_triangle(150, y, 250, y, 200, y+50) graph.g2_rectangle(300, y, 400, y+50) graph.g2_circle(450, y+25, 25) graph.g2_ellipse(550, y+25, 45, 25) graph.g2_arc(650, y+25, 25, 45, 90, 360) graph.g2_set_dash([4, 4]) # Python specific graph.g2_line(120+5, y, 170+5, y+50) graph.g2_triangle(150+10, y+4, 250-10, y+4, 200, y+50-5) graph.g2_rectangle(305, y+5, 395, y+50-5) graph.g2_circle(450, y+25, 20) graph.g2_ellipse(550, y+25, 40, 20) graph.g2_arc(650, y+25, 20, 40, 90, 360) graph.g2_set_solid() # Python only y = 200 graph.g2_filled_triangle(150, y, 250, y, 200, y+50) graph.g2_filled_rectangle(300, y, 400, y+50) graph.g2_filled_circle(450, y+25, 25) graph.g2_filled_ellipse(550, y+25, 45, 25) graph.g2_filled_arc(650, y+25, 25, 45, 90, 360) y = 300 pts = [150, y, 175, y+100, 200, y, 225, y+100, 250, y] graph.g2_poly_line(pts) # Python specific graph.g2_pen(19) graph.g2_b_spline(pts, 20) # Python specific graph.g2_pen(1) pts = [300, y, 350, y, 375, y+50, 325, y+90, 275, y+50] graph.g2_polygon(pts) # Python specific pts = [450, y, 500, y, 525, y+50, 475, y+90, 425, y+50] graph.g2_filled_polygon(pts) # Python specific graph.g2_image(55., 50., penguin) # Python specific graph.g2_image(75., 130., penguin) # Python specific graph.g2_pen(1) graph.g2_line(225, 448, 200+19*25, 448) for i in range(1,20): graph.g2_pen(i+1) graph.g2_set_line_width(i) graph.g2_move(200+i*25, 450) graph.g2_line_to(200+i*25, 550) graph.g2_pen(1) graph.g2_set_line_width(5) for i in range(1,10): graph.g2_set_dash([i, i*2, i*3]) # Python specific graph.g2_line(550, 300+i*8, 750, 350+i*8) graph.g2_set_solid() # Python only graph.g2_set_line_width(4) graph.g2_arc( 740, 180, 25, 100, -45+15, -45-15) graph.g2_arc( 740, 180, 20, 95, -45-15, -45+15) graph.g2_filled_arc(740, 180, 12, 50, -45+15, -45-15) graph.g2_set_line_width(1) graph.g2_circle( 400, 400, 20) graph.g2_ellipse(400, 400, 25, 25) graph.g2_arc( 400, 400, 30, 30, 0, 360) graph.g2_flush() print '\nDone.\n[Enter]\n' sys.stdin.read(1) graph.g2_close() g2-0.72/g2_python/Makefile0000644000175000017500000000214310515221430014324 0ustar ljuboljubo# -*- sh -*- .PHONY: all build install demo clean DEFS=-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DLINUX=1 -DDO_PS=1 -DDO_FIG=1 -DDO_X11=1 -DDO_XDBE=1 -DDO_GD=1 -DDO_GIF=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 LIBS= -L/usr/X11R6/lib -L/usr/local/lib -lm -lX11 -lXext -lgd LDSHARED=ld # either ../libg2.so or ../libg2.a must be there # to make libg2.so the default, uncomment the next line and the three lines below DEPENDENCY= #ifeq ("$(LDSHARED)","") DEPENDENCY= libg2.a #else #DEPENDENCY= libg2.so #endif all: build build: ../$(DEPENDENCY) python setup.py "$(DEFS)" "$(LIBS)" build_ext ../$(DEPENDENCY): cd ..; make $(DEPENDENCY) # must be root install: build python setup.py "$(DEFS)" "$(LIBS)" install demo: ln -f -s $(shell find build -name g2.so) . python g2_test.py clean: -rm -fr build -rm -f g2.so g2.map g2_test{_clip.eps,.{eps,ps,png,jpg,fig}} penguin.pyc