# 1 "event.c"
 






# 1 "/usr/include/stdlib.h" 1 3
 

















 





# 1 "/usr/include/features.h" 1 3
 




















 



























































 



















 





 



 







 
# 138 "/usr/include/features.h" 3


 









 





 



























# 196 "/usr/include/features.h" 3


































 



 








 




 

# 1 "/usr/include/sys/cdefs.h" 1 3
 




















 




 





 








 




# 71 "/usr/include/sys/cdefs.h" 3


 







 



# 103 "/usr/include/sys/cdefs.h" 3



 








 















 








 








 









 







# 250 "/usr/include/features.h" 2 3


 








 





 

 








# 1 "/usr/include/gnu/stubs.h" 1 3
 






































# 278 "/usr/include/features.h" 2 3




# 25 "/usr/include/stdlib.h" 2 3


 





# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 
































typedef unsigned int size_t;


















 




 



























 






















typedef long int wchar_t;
















 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 33 "/usr/include/stdlib.h" 2 3


 




 
typedef struct
  {
    int quot;			 
    int rem;			 
  } div_t;

 

typedef struct
  {
    long int quot;		 
    long int rem;		 
  } ldiv_t;



# 65 "/usr/include/stdlib.h" 3



 



 





 

extern size_t __ctype_get_mb_cur_max  (void)    ;


 
extern double atof  (__const char *__nptr)    ;
 
extern int atoi  (__const char *__nptr)    ;
 
extern long int atol  (__const char *__nptr)    ;


 
  extern long long int atoll  (__const char *__nptr)    ;


 
extern double strtod  (__const char *   __nptr,
			   char **   __endptr)    ;










 
extern long int strtol  (__const char *   __nptr,
			     char **   __endptr, int __base)    ;
 
extern unsigned long int strtoul  (__const char *   __nptr,
				       char **   __endptr,
				       int __base)    ;


 
 
extern long long int strtoq  (__const char *   __nptr,
				  char **   __endptr, int __base)    ;
 
 
extern unsigned long long int strtouq  (__const char *   __nptr,
					    char **   __endptr,
					    int __base)    ;



 

 
 
extern long long int strtoll  (__const char *   __nptr,
				   char **   __endptr, int __base)    ;
 
 
extern unsigned long long int strtoull  (__const char *   __nptr,
					     char **   __endptr,
					     int __base)    ;



# 190 "/usr/include/stdlib.h" 3



 


extern double __strtod_internal  (__const char *   __nptr,
				      char **   __endptr,
				      int __group)    ;
extern float __strtof_internal  (__const char *   __nptr,
				     char **   __endptr, int __group)    ;
extern long double  __strtold_internal  (__const char *
						  __nptr,
						char **   __endptr,
						int __group)    ;

extern long int __strtol_internal  (__const char *   __nptr,
					char **   __endptr,
					int __base, int __group)    ;



extern unsigned long int __strtoul_internal  (__const char *
						    __nptr,
						  char **   __endptr,
						  int __base, int __group)    ;




 
extern long long int __strtoll_internal  (__const char *   __nptr,
					      char **   __endptr,
					      int __base, int __group)    ;



 
extern unsigned long long int __strtoull_internal  (__const char *
							  __nptr,
							char **
							  __endptr,
							int __base,
							int __group)    ;






 

extern __inline double
strtod (__const char *   __nptr, char **   __endptr)  
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *   __nptr, char **   __endptr,
	int __base)  
{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *   __nptr, char **   __endptr,
	 int __base)  
{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}

# 271 "/usr/include/stdlib.h" 3



  extern __inline long long int
strtoq (__const char *   __nptr, char **   __endptr,
	int __base)  
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
  extern __inline unsigned long long int
strtouq (__const char *   __nptr, char **   __endptr,
	 int __base)  
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}



  extern __inline long long int
strtoll (__const char *   __nptr, char **   __endptr,
	 int __base)  
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
  extern __inline unsigned long long int
strtoull (__const char *   __nptr, char **   __endptr,
	  int __base)  
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}


extern __inline double
atof (__const char *__nptr)  
{
  return strtod (__nptr, (char **) ((void *)0) );
}
extern __inline int
atoi (__const char *__nptr)  
{
  return (int) strtol (__nptr, (char **) ((void *)0) , 10);
}
extern __inline long int
atol (__const char *__nptr)  
{
  return strtol (__nptr, (char **) ((void *)0) , 10);
}


  extern __inline long long int
atoll (__const char *__nptr)  
{
  return strtoll (__nptr, (char **) ((void *)0) , 10);
}





 


extern char *l64a  (long int __n)    ;

 
extern long int a64l  (__const char *__s)    ;


# 1 "/usr/include/sys/types.h" 1 3
 

















 








 

# 1 "/usr/include/bits/types.h" 1 3
 

















 









# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 29 "/usr/include/bits/types.h" 2 3


 
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

  typedef unsigned long long int __u_quad_t;
  typedef long long int __quad_t;
# 48 "/usr/include/bits/types.h" 3

typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

  typedef signed long long int __int64_t;
  typedef unsigned long long int __uint64_t;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;		 
typedef __u_int __uid_t;		 
typedef __u_int __gid_t;		 
typedef __u_long __ino_t;		 
typedef __u_int __mode_t;		 
typedef __u_int __nlink_t; 		 
typedef long int __off_t;		 
typedef __quad_t __loff_t;		 
typedef int __pid_t;			 
typedef int __ssize_t;			 
typedef __u_long __rlim_t;		 
typedef __u_quad_t __rlim64_t;		 
typedef __u_int __id_t;			 

typedef struct
  {
    int __val[2];
  } __fsid_t;				 

 
typedef int __daddr_t;			 
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;		 

typedef long int __clock_t;

 
typedef unsigned long int __fd_mask;

 


 




 
typedef struct
  {
     





    __fd_mask __fds_bits[1024  / (8 * sizeof (__fd_mask)) ];


  } __fd_set;


typedef int __key_t;

 
typedef unsigned short int __ipc_pid_t;


 

 
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;

 
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;

 
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;

 
typedef __u_long __ino64_t;

 
typedef __loff_t __off64_t;

 
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;

 
typedef int __intptr_t;


 





# 30 "/usr/include/sys/types.h" 2 3



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;


typedef __loff_t loff_t;



typedef __ino_t ino_t;











typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;











typedef __pid_t pid_t;




typedef __id_t id_t;



typedef __ssize_t ssize_t;




typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;



typedef __key_t key_t;






# 1 "/usr/include/time.h" 1 3
 

















 














# 51 "/usr/include/time.h" 3



# 62 "/usr/include/time.h" 3








 
typedef __time_t time_t;





# 89 "/usr/include/time.h" 3




# 279 "/usr/include/time.h" 3



# 122 "/usr/include/sys/types.h" 2 3



# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 125 "/usr/include/sys/types.h" 2 3



 
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;


 

# 159 "/usr/include/sys/types.h" 3


 







typedef int int8_t __attribute__ ((__mode__ (  __QI__ ))) ;
typedef int int16_t __attribute__ ((__mode__ (  __HI__ ))) ;
typedef int int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
typedef int int64_t __attribute__ ((__mode__ (  __DI__ ))) ;


typedef unsigned int u_int8_t __attribute__ ((__mode__ (  __QI__ ))) ;
typedef unsigned int u_int16_t __attribute__ ((__mode__ (  __HI__ ))) ;
typedef unsigned int u_int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
typedef unsigned int u_int64_t __attribute__ ((__mode__ (  __DI__ ))) ;

typedef int register_t __attribute__ ((__mode__ (__word__)));


 






 
# 1 "/usr/include/endian.h" 1 3
 






















 









 
# 1 "/usr/include/bits/endian.h" 1 3
 






# 35 "/usr/include/endian.h" 2 3


 













# 191 "/usr/include/sys/types.h" 2 3


 
# 1 "/usr/include/sys/select.h" 1 3
 


















 






 


 
# 1 "/usr/include/bits/select.h" 1 3
 

























# 36 "/usr/include/bits/select.h" 3












# 56 "/usr/include/bits/select.h" 3

# 72 "/usr/include/bits/select.h" 3

# 31 "/usr/include/sys/select.h" 2 3


 
# 1 "/usr/include/bits/sigset.h" 1 3
 





















typedef int __sig_atomic_t;

 


typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int))) ];
  } __sigset_t;




 





# 125 "/usr/include/bits/sigset.h" 3

# 34 "/usr/include/sys/select.h" 2 3


 

# 1 "/usr/include/time.h" 1 3
 

















 














# 51 "/usr/include/time.h" 3



# 62 "/usr/include/time.h" 3



# 73 "/usr/include/time.h" 3








 

struct timespec
  {
    long int tv_sec;		 
    long int tv_nsec;		 
  };





# 279 "/usr/include/time.h" 3



# 38 "/usr/include/sys/select.h" 2 3


 

 



struct timeval;

typedef __fd_mask fd_mask;

 
typedef __fd_set fd_set;

 



 




 






 




extern int __select  (int __nfds, __fd_set *__readfds,
			  __fd_set *__writefds, __fd_set *__exceptfds,
			  struct timeval *__timeout)    ;
extern int select  (int __nfds, __fd_set *__readfds,
			__fd_set *__writefds, __fd_set *__exceptfds,
			struct timeval *__timeout)    ;

# 91 "/usr/include/sys/select.h" 3


 


# 194 "/usr/include/sys/types.h" 2 3


 
# 1 "/usr/include/sys/sysmacros.h" 1 3
 





















 








# 47 "/usr/include/sys/sysmacros.h" 3



# 197 "/usr/include/sys/types.h" 2 3




 

typedef __blkcnt_t blkcnt_t;	  
typedef __fsblkcnt_t fsblkcnt_t;  
typedef __fsfilcnt_t fsfilcnt_t;  












 


# 339 "/usr/include/stdlib.h" 2 3


 



 
extern int32_t random  (void)    ;

 
extern void srandom  (unsigned int __seed)    ;

 



extern void *  initstate  (unsigned int __seed, void *  __statebuf,
			       size_t __statelen)    ;

 

extern void *  setstate  (void *  __statebuf)    ;



 



struct random_data
  {
    int32_t *fptr;		 
    int32_t *rptr;		 
    int32_t *state;		 
    int rand_type;		 
    int rand_deg;		 
    int rand_sep;		 
    int32_t *end_ptr;		 
  };

extern int random_r  (struct random_data *   __buf,
			  int32_t *   __result)    ;

extern int srandom_r  (unsigned int __seed, struct random_data *__buf)    ;

extern int initstate_r  (unsigned int __seed,
			     void *    __statebuf,
			     size_t __statelen,
			     struct random_data *   __buf)    ;

extern int setstate_r  (void *    __statebuf,
			    struct random_data *   __buf)    ;




 
extern int rand  (void)    ;
 
extern void srand  (unsigned int __seed)    ;


 
extern int rand_r  (unsigned int *__seed)    ;




 

 
extern double drand48  (void)    ;
extern double erand48  (unsigned short int __xsubi[3])    ;

 
extern long int lrand48  (void)    ;
extern long int nrand48  (unsigned short int __xsubi[3])    ;

 
extern long int mrand48  (void)    ;
extern long int jrand48  (unsigned short int __xsubi[3])    ;

 
extern void srand48  (long int __seedval)    ;
extern unsigned short int *seed48  (unsigned short int __seed16v[3])    ;
extern void lcong48  (unsigned short int __param[7])    ;

 
struct drand48_data
  {
    unsigned short int x[3];	 
    unsigned short int a[3];	 
    unsigned short int c;	 
    unsigned short int old_x[3];  
    int init;			 
  };


 
extern int drand48_r  (struct drand48_data *   __buffer,
			   double *   __result)    ;
extern int erand48_r  (unsigned short int __xsubi[3],
			   struct drand48_data *   __buffer,
			   double *   __result)    ;

 
extern int lrand48_r  (struct drand48_data *   __buffer,
			   long int *   __result)    ;
extern int nrand48_r  (unsigned short int __xsubi[3],
			   struct drand48_data *   __buffer,
			   long int *   __result)    ;

 
extern int mrand48_r  (struct drand48_data *   __buffer,
			   long int *   __result)    ;
extern int jrand48_r  (unsigned short int __xsubi[3],
			   struct drand48_data *   __buffer,
			   long int *   __result)    ;

 
extern int srand48_r  (long int __seedval, struct drand48_data *__buffer)    ;

extern int seed48_r  (unsigned short int __seed16v[3],
			  struct drand48_data *__buffer)    ;

extern int lcong48_r  (unsigned short int __param[7],
			   struct drand48_data *__buffer)    ;







 
extern void *  malloc  (size_t __size)    ;
 
extern void *  calloc  (size_t __nmemb, size_t __size)    ;



 

extern void *  realloc  (void *  __ptr, size_t __size)    ;
 
extern void free  (void *  __ptr)    ;


 
extern void cfree  (void *  __ptr)    ;



# 1 "/usr/include/alloca.h" 1 3
 























# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 25 "/usr/include/alloca.h" 2 3


 

 


 
extern void *  alloca  (size_t __size)    ;





 


# 492 "/usr/include/stdlib.h" 2 3




 
extern void *  valloc  (size_t __size)    ;



 
extern void abort  (void)     __attribute__ ((__noreturn__));


 
extern int atexit  (void (*__func) (void))    ;


 

extern int __on_exit  (void (*__func) (int __status, void *  __arg),
			   void *  __arg)    ;
extern int on_exit  (void (*__func) (int __status, void *  __arg),
			 void *  __arg)    ;


 


extern void exit  (int __status)     __attribute__ ((__noreturn__));








 
extern char *getenv  (__const char *__name)    ;

 

extern char *__secure_getenv  (__const char *__name)    ;


 
 

extern int putenv  (char *__string)    ;



 

extern int setenv  (__const char *__name, __const char *__value,
			int __replace)    ;

 
extern void unsetenv  (__const char *__name)    ;



 


extern int clearenv  (void)    ;




 



extern char *mktemp  (char *__template)    ;

 




extern int mkstemp  (char *__template)    ;



 
extern int system  (__const char *__command)    ;










 





extern char *realpath  (__const char *   __name,
			    char *   __resolved)    ;



 


typedef int (*__compar_fn_t)  (__const void * , __const void * )  ;






 

extern void *  bsearch  (__const void *  __key, __const void *  __base,
			       size_t __nmemb, size_t __size,
			       __compar_fn_t __compar)  ;

 

extern void qsort  (void *  __base, size_t __nmemb, size_t __size,
			  __compar_fn_t __compar)  ;


 
extern int abs  (int __x)     __attribute__ ((__const__));
extern long int labs  (long int __x)     __attribute__ ((__const__));






 

 
extern div_t div  (int __numer, int __denom)     __attribute__ ((__const__));
extern ldiv_t ldiv  (long int __numer, long int __denom)    
     __attribute__ ((__const__));








 


 


extern char *ecvt  (double __value, int __ndigit, int *   __decpt,
			int *   __sign)    ;

 


extern char *fcvt  (double __value, int __ndigit, int *   __decpt,
			int *   __sign)    ;

 


extern char *gcvt  (double __value, int __ndigit, char *__buf)    ;

 
extern char *qecvt  (long double  __value, int __ndigit,
			 int *   __decpt, int *   __sign)    ;
extern char *qfcvt  (long double  __value, int __ndigit,
			 int *   __decpt, int *   __sign)    ;
extern char *qgcvt  (long double  __value, int __ndigit, char *__buf)    ;



 

extern int ecvt_r  (double __value, int __ndigit, int *   __decpt,
			int *   __sign, char *   __buf,
			size_t __len)    ;
extern int fcvt_r  (double __value, int __ndigit, int *   __decpt,
			int *   __sign, char *   __buf,
			size_t __len)    ;

extern int qecvt_r  (long double  __value, int __ndigit,
			 int *   __decpt, int *   __sign,
			 char *   __buf, size_t __len)    ;
extern int qfcvt_r  (long double  __value, int __ndigit,
			 int *   __decpt, int *   __sign,
			 char *   __buf, size_t __len)    ;




 

extern int mblen  (__const char *__s, size_t __n)    ;
 

extern int mbtowc  (wchar_t *   __pwc,
			__const char *   __s, size_t __n)    ;
 

extern int wctomb  (char *__s, wchar_t __wchar)    ;


 
extern size_t mbstowcs  (wchar_t *    __pwcs,
			     __const char *   __s, size_t __n)    ;
 
extern size_t wcstombs  (char *   __s,
			     __const wchar_t *   __pwcs, size_t __n)    ;



 



extern int rpmatch  (__const char *__response)    ;



# 732 "/usr/include/stdlib.h" 3



# 756 "/usr/include/stdlib.h" 3


# 766 "/usr/include/stdlib.h" 3





 


# 8 "event.c" 2

# 1 "/usr/include/unistd.h" 1 3
 

















 








 

 


 



 


 


 


 



 



 



 



 






 


 




 


 


 



 



 



















































































# 1 "/usr/include/bits/posix_opt.h" 1 3
 





















 


 


 


 


 


 


 


 


 


 


 


 


 



 


 


 


 


 


 



 


 


 


 
 

 


 

 


 


 





# 175 "/usr/include/unistd.h" 2 3


 




 





 










# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 199 "/usr/include/unistd.h" 2 3


# 231 "/usr/include/unistd.h" 3









 






 
extern int access  (__const char *__name, int __type)    ;








 







 






 




extern __off_t __lseek  (int __fd, __off_t __offset, int __whence)    ;

extern __off_t lseek  (int __fd, __off_t __offset, int __whence)    ;
# 289 "/usr/include/unistd.h" 3





 
extern int __close  (int __fd)    ;
extern int close  (int __fd)    ;

 

extern ssize_t  __read  (int __fd, void *  __buf, size_t __nbytes)    ;
extern ssize_t  read  (int __fd, void *  __buf, size_t __nbytes)    ;

 
extern ssize_t  __write  (int __fd, __const void *  __buf, size_t __n)    ;
extern ssize_t  write  (int __fd, __const void *  __buf, size_t __n)    ;

# 343 "/usr/include/unistd.h" 3


 



extern int pipe  (int __pipedes[2])    ;

 






extern unsigned int alarm  (unsigned int __seconds)    ;

 






extern unsigned int sleep  (unsigned int __seconds)    ;


 



extern unsigned int ualarm  (unsigned int __value,
				 unsigned int __interval)    ;

 

extern void usleep  (unsigned int __useconds)    ;



 

extern int pause  (void)    ;


 
extern int chown  (__const char *__file, __uid_t __owner,
		       __gid_t __group)    ;


 
extern int fchown  (int __fd, __uid_t __owner, __gid_t __group)    ;


 

extern int lchown  (__const char *__file, __uid_t __owner,
			__gid_t __group)    ;



 
extern int chdir  (__const char *__path)    ;


 
extern int fchdir  (int __fd)    ;


 






extern char *getcwd  (char *__buf, size_t __size)    ;









 


extern char *getwd  (char *__buf)    ;



 
extern int dup  (int __fd)    ;

 
extern int dup2  (int __fd, int __fd2)    ;

 
extern char **__environ;





 

extern int execve  (__const char *__path, char *__const __argv[],
			char *__const __envp[])    ;










 
extern int execv  (__const char *__path, char *__const __argv[])    ;

 

extern int execle  (__const char *__path, __const char *__arg, ...)    ;

 

extern int execl  (__const char *__path, __const char *__arg, ...)    ;

 

extern int execvp  (__const char *__file, char *__const __argv[])    ;

 


extern int execlp  (__const char *__file, __const char *__arg, ...)    ;



 
extern int nice  (int __inc)    ;



 
extern void _exit  (int __status)   __attribute__ ((__noreturn__));


 


# 1 "/usr/include/bits/confname.h" 1 3
 






















 
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS

  };

 
enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,


     

    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,


     
    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS

  };




 
enum
  {
    _CS_PATH			 


# 370 "/usr/include/bits/confname.h" 3


# 406 "/usr/include/bits/confname.h" 3

  };

# 497 "/usr/include/unistd.h" 2 3


 
extern long int pathconf  (__const char *__path, int __name)    ;

 
extern long int fpathconf  (int __fd, int __name)    ;

 
extern long int sysconf  (int __name)    ;


 
extern size_t confstr  (int __name, char *__buf, size_t __len)    ;



 
extern __pid_t __getpid  (void)    ;
extern __pid_t getpid  (void)    ;

 
extern __pid_t getppid  (void)    ;

 


extern __pid_t getpgrp  (void)    ;








 
extern __pid_t __getpgid  (__pid_t __pid)    ;





 


extern int __setpgid  (__pid_t __pid, __pid_t __pgid)    ;
extern int setpgid  (__pid_t __pid, __pid_t __pgid)    ;


 











 

extern int setpgrp  (void)    ;

# 573 "/usr/include/unistd.h" 3



 


extern __pid_t setsid  (void)    ;






 
extern __uid_t getuid  (void)    ;

 
extern __uid_t geteuid  (void)    ;

 
extern __gid_t getgid  (void)    ;

 
extern __gid_t getegid  (void)    ;

 


extern int getgroups  (int __size, __gid_t __list[])    ;






 



extern int setuid  (__uid_t __uid)    ;


 

extern int setreuid  (__uid_t __ruid, __uid_t __euid)    ;



 
extern int seteuid  (__uid_t __uid)    ;


 



extern int setgid  (__gid_t __gid)    ;


 

extern int setregid  (__gid_t __rgid, __gid_t __egid)    ;



 
extern int setegid  (__gid_t __gid)    ;



 


extern __pid_t __fork  (void)    ;
extern __pid_t fork  (void)    ;


 



extern __pid_t vfork  (void)    ;



 

extern char *ttyname  (int __fd)    ;

 

extern int ttyname_r  (int __fd, char *__buf, size_t __buflen)    ;

 

extern int isatty  (int __fd)    ;


 

extern int ttyslot  (void)    ;



 
extern int link  (__const char *__from, __const char *__to)    ;


 
extern int symlink  (__const char *__from, __const char *__to)    ;

 


extern int readlink  (__const char *__path, char *__buf, size_t __len)    ;


 
extern int unlink  (__const char *__name)    ;

 
extern int rmdir  (__const char *__path)    ;


 
extern __pid_t tcgetpgrp  (int __fd)    ;

 
extern int tcsetpgrp  (int __fd, __pid_t __pgrp_id)    ;


 
extern char *getlogin  (void)    ;








 
extern int setlogin  (__const char *__name)    ;




 



# 1 "/usr/include/getopt.h" 1 3
 




























 





extern char *optarg;

 











extern int optind;

 


extern int opterr;

 

extern int optopt;

# 102 "/usr/include/getopt.h" 3



 

























 


extern int getopt (int __argc, char *const *__argv, const char *__shortopts);




# 151 "/usr/include/getopt.h" 3

# 160 "/usr/include/getopt.h" 3






 



# 724 "/usr/include/unistd.h" 2 3






 


extern int gethostname  (char *__name, size_t __len)    ;

 

extern int sethostname  (__const char *__name, size_t __len)    ;

 

extern int sethostid  (long int __id)    ;


 


extern int getdomainname  (char *__name, size_t __len)    ;
extern int setdomainname  (__const char *__name, size_t __len)    ;


 
extern int fsync  (int __fd)    ;


 


extern int vhangup  (void)    ;

 
extern int revoke  (__const char *__file)    ;


 




extern int profil  (unsigned short int *__sample_buffer, size_t __size,
			size_t __offset, unsigned int __scale)    ;


 


extern int acct  (__const char *__name)    ;

 

extern int chroot  (__const char *__path)    ;


 
extern char *getusershell  (void)    ;
extern void endusershell  (void)    ;  
extern void setusershell  (void)    ;  


 

extern char *getpass  (__const char *__prompt)    ;

 


extern int daemon  (int __nochdir, int __noclose)    ;






 
extern long int gethostid  (void)    ;

 
extern int sync  (void)    ;


 

extern int __getpagesize  (void)     __attribute__ ((__const__));
extern int getpagesize  (void)     __attribute__ ((__const__));


 

extern int truncate  (__const char *__file, __off_t __length)    ;
# 827 "/usr/include/unistd.h" 3





 
extern int __ftruncate  (int __fd, __off_t __length)    ;

extern int ftruncate  (int __fd, __off_t __length)    ;













 

extern int getdtablesize  (void)    ;






 

extern int brk  (void *  __addr)    ;


# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 





















typedef int ptrdiff_t;









 




 

 

# 182 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 863 "/usr/include/unistd.h" 2 3


 



extern void *  __sbrk  (ptrdiff_t __delta)    ;
extern void *  sbrk  (ptrdiff_t __delta)    ;




 









extern long int syscall  (long int __sysno, ...)    ;





 



 









extern int lockf  (int __fd, int __cmd, __off_t __len)    ;














# 940 "/usr/include/unistd.h" 3



 

extern int fdatasync  (int __fildes)    ;



 

# 968 "/usr/include/unistd.h" 3



 

# 983 "/usr/include/unistd.h" 3




 

 









extern int pthread_atfork  (void (*__prepare) (void),
				void (*__parent) (void),
				void (*__child) (void))    ;


 


# 9 "event.c" 2

# 1 "/usr/include/sys/time.h" 1 3
 






















# 1 "/usr/include/time.h" 1 3
 

















 










 




 


# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 38 "/usr/include/time.h" 2 3


 

# 1 "/usr/include/bits/time.h" 1 3
 


















 







 


 





 







# 59 "/usr/include/bits/time.h" 3

# 42 "/usr/include/time.h" 2 3


 














 
typedef __clock_t clock_t;




# 73 "/usr/include/time.h" 3




# 89 "/usr/include/time.h" 3





 
struct tm
{
  int tm_sec;			 
  int tm_min;			 
  int tm_hour;			 
  int tm_mday;			 
  int tm_mon;			 
  int tm_year;			 
  int tm_wday;			 
  int tm_yday;			 
  int tm_isdst;			 


  long int tm_gmtoff;		 
  __const char *tm_zone;	 




};


 

extern clock_t clock  (void)    ;

 
extern time_t time  (time_t *__timer)    ;

 
extern double difftime  (time_t __time1, time_t __time0)    
     __attribute__ ((__const__));

 
extern time_t mktime  (struct tm *__tp)    ;


 


extern size_t strftime  (char *   __s, size_t __maxsize,
			     __const char *   __format,
			     __const struct tm *   __tp)    ;









 

extern struct tm *gmtime  (__const time_t *__timer)    ;

 

extern struct tm *localtime  (__const time_t *__timer)    ;


 

extern struct tm *__gmtime_r  (__const time_t *   __timer,
				   struct tm *   __tp)    ;
extern struct tm *gmtime_r  (__const time_t *   __timer,
				 struct tm *   __tp)    ;

 

extern struct tm *localtime_r  (__const time_t *   __timer,
				    struct tm *   __tp)    ;


 

extern char *asctime  (__const struct tm *__tp)    ;

 
extern char *ctime  (__const time_t *__timer)    ;


 

 

extern char *asctime_r  (__const struct tm *   __tp,
			     char *   __buf)    ;

 
extern char *ctime_r  (__const time_t *   __timer,
			   char *   __buf)    ;



 
extern char *__tzname[2];	 
extern int __daylight;		 
extern long int __timezone;	 



 
extern char *tzname[2];

 

extern void tzset  (void)    ;



extern int daylight;
extern long int timezone;



 

extern int stime  (__const time_t *__when)    ;



 






 


 
extern time_t timegm  (struct tm *__tp)    ;

 
extern time_t timelocal  (struct tm *__tp)    ;

 
extern int dysize  (int __year)    ;




 
extern int nanosleep  (__const struct timespec *__requested_time,
			   struct timespec *__remaining)    ;



# 264 "/usr/include/time.h" 3


# 274 "/usr/include/time.h" 3



 




# 24 "/usr/include/sys/time.h" 2 3




# 1 "/usr/include/bits/time.h" 1 3
 


















 



# 43 "/usr/include/bits/time.h" 3








 

struct timeval
  {
    __time_t tv_sec;		 
    __time_t tv_usec;		 
  };


# 28 "/usr/include/sys/time.h" 2 3



 

 










 

struct timezone
  {
    int tz_minuteswest;		 
    int tz_dsttime;		 
  };

 




extern int gettimeofday  (struct timeval *__tv,
			      struct timezone *__tz)    ;

 

extern int settimeofday  (__const struct timeval *__tv,
			      __const struct timezone *__tz)    ;

 



extern int adjtime  (__const struct timeval *__delta,
			 struct timeval *__olddelta)    ;


 
enum __itimer_which
  {
     
    ITIMER_REAL = 0,

     
    ITIMER_VIRTUAL = 1,

     

    ITIMER_PROF = 2

  };

 

struct itimerval
  {
     
    struct timeval it_interval;
     
    struct timeval it_value;
  };

 

extern int getitimer  (enum __itimer_which __which,
			   struct itimerval *__value)    ;

 


extern int setitimer  (enum __itimer_which __which,
			   __const struct itimerval *__new,
			   struct itimerval *__old)    ;

 

extern int utimes  (__const char *__file, struct timeval __tvp[2])    ;


 








# 133 "/usr/include/sys/time.h" 3

# 142 "/usr/include/sys/time.h" 3

 


# 10 "event.c" 2



# 1 "common.h" 1
 









# 1 "../libtu/include/libtu/types.h" 1
 

























  




  
















# 67 "../libtu/include/libtu/types.h"








 









# 11 "common.h" 2

# 1 "../libtu/include/libtu/output.h" 1
 









# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stdarg.h" 1 3
 











































 






typedef void *__gnuc_va_list;



 



 














void va_end (__gnuc_va_list);		 


 



 

























 
 













# 137 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stdarg.h" 3


 




 

 

 

typedef __gnuc_va_list va_list;
























# 11 "../libtu/include/libtu/output.h" 2





extern void verbose(const char *p, ...);
extern void verbose_v(const char *p, va_list args);
extern void verbose_enable(int  enable);
extern int verbose_indent(int depth);

extern void warn_progname_enable(int  enable);

extern void die(const char *p, ...);
extern void die_v(const char *p, va_list args);

extern void die_obj(const char *obj, const char *p, ...);
extern void die_obj_v(const char *obj, const char *p, va_list args);
extern void die_obj_line(const char *obj, int line, const char *p, ...);
extern void die_obj_line_v(const char *obj, int line, const char *p, va_list args);

extern void die_err();
extern void die_err_obj(const char *obj);
extern void die_err_obj_line(const char *obj, int line);


extern void warn(const char *p, ...);
extern void warn_v(const char *p, va_list args);

extern void warn_obj(const char *obj, const char *p, ...);
extern void warn_obj_v(const char *obj, const char *p, va_list args);
extern void warn_obj_line(const char *obj, int line, const char *p, ...);
extern void warn_obj_line_v(const char *obj, int line, const char *p, va_list args);

extern void warn_err();
extern void warn_err_obj(const char *obj);
extern void warn_err_obj_line(const char *obj, int line);


extern char *errmsg(const char *p, ...);
extern char *errmsg_v(const char *p, va_list args);

extern char *errmsg_obj(const char *obj, const char *p, ...);
extern char *errmsg_obj_v(const char *obj, const char *p, va_list args);
extern char *errmsg_obj_line(const char *obj, int line, const char *p, ...);
extern char *errmsg_obj_line_v(const char *obj, int line, const char *p, va_list args);

extern char *errmsg_err();
extern char *errmsg_err_obj(const char *obj);
extern char *errmsg_err_obj_line(const char *obj, int line);

extern void libtu_asprintf(char **ret, const char *fmt, ...);
extern void libtu_vasprintf(char **ret, const char *fmt, va_list args);


# 12 "common.h" 2

# 1 "../libtu/include/libtu/misc.h" 1
 










# 1 "/usr/include/stdio.h" 1 3
 

















 









 



# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 

# 256 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 33 "/usr/include/stdio.h" 2 3














 
typedef struct _IO_FILE FILE;








# 1 "/usr/include/libio.h" 1 3
 




























# 1 "/usr/include/_G_config.h" 1 3
 





 






# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 


# 17 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3



 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 

# 129 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 


# 254 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 



















# 14 "/usr/include/_G_config.h" 2 3


 




typedef unsigned int wint_t;













typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));




 


















 




 














# 30 "/usr/include/libio.h" 2 3
















 








# 67 "/usr/include/libio.h" 3


 

















# 98 "/usr/include/libio.h" 3











 
























 



















struct _IO_jump_t;  struct _IO_FILE;

 







typedef void _IO_lock_t;



 

struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;
   

   
  int _pos;
# 186 "/usr/include/libio.h" 3

};

struct _IO_FILE {
  int _flags;		 


   
   
  char* _IO_read_ptr;	 
  char* _IO_read_end;	 
  char* _IO_read_base;	 
  char* _IO_write_base;	 
  char* _IO_write_ptr;	 
  char* _IO_write_end;	 
  char* _IO_buf_base;	 
  char* _IO_buf_end;	 
   
  char *_IO_save_base;  
  char *_IO_backup_base;   
  char *_IO_save_end;  

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  __off_t   _old_offset;  


   
  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];

   

  _IO_lock_t *_lock;








  __off64_t   _offset;
   
  int _unused2[16];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;











 

 

typedef __ssize_t __io_read_fn  (void *  __cookie, char *__buf,
				       size_t __nbytes)  ;

 





typedef __ssize_t __io_write_fn  (void *  __cookie, __const char *__buf,
				      size_t __n)  ;

 





typedef int __io_seek_fn  (void *  __cookie, __off_t   __pos, int __w)  ;

 
typedef int __io_close_fn  (void *  __cookie)  ;


# 311 "/usr/include/libio.h" 3







extern int __underflow  (_IO_FILE *)    ;
extern int __uflow  (_IO_FILE *)    ;
extern int __overflow  (_IO_FILE *, int)    ;
















extern int _IO_getc  (_IO_FILE *__fp)    ;
extern int _IO_putc  (int __c, _IO_FILE *__fp)    ;
extern int _IO_feof  (_IO_FILE *__fp)    ;
extern int _IO_ferror  (_IO_FILE *__fp)    ;

extern int _IO_peekc_locked  (_IO_FILE *__fp)    ;

 



extern void _IO_flockfile  (_IO_FILE *)    ;
extern void _IO_funlockfile  (_IO_FILE *)    ;
extern int _IO_ftrylockfile  (_IO_FILE *)    ;












extern int _IO_vfscanf  (_IO_FILE *  , const char *  ,
			     __gnuc_va_list , int *  )    ;
extern int _IO_vfprintf  (_IO_FILE *  , const char *  ,
			      __gnuc_va_list )    ;
extern __ssize_t   _IO_padn  (_IO_FILE *, int, __ssize_t  )    ;
extern size_t   _IO_sgetn  (_IO_FILE *, void *, size_t  )    ;

extern __off64_t   _IO_seekoff  (_IO_FILE *, __off64_t  , int, int)    ;
extern __off64_t   _IO_seekpos  (_IO_FILE *, __off64_t  , int)    ;

extern void _IO_free_backup_area  (_IO_FILE *)    ;






# 57 "/usr/include/stdio.h" 2 3


 

typedef __off_t  fpos_t;







 





 





 






 







 




 








# 1 "/usr/include/bits/stdio_lim.h" 1 3
 




































# 110 "/usr/include/stdio.h" 2 3



 
extern FILE *stdin;		 
extern FILE *stdout;		 
extern FILE *stderr;		 
 





 
extern int remove  (__const char *__filename)    ;
 
extern int rename  (__const char *__old, __const char *__new)    ;


 

extern FILE *tmpfile  (void)    ;










 
extern char *tmpnam  (char *__s)    ;


 

extern char *tmpnam_r  (char *__s)    ;




 






extern char *tempnam  (__const char *__dir, __const char *__pfx)    ;



 
extern int fclose  (FILE *__stream)    ;
 
extern int fflush  (FILE *__stream)    ;


 
extern int fflush_unlocked  (FILE *__stream)    ;









 
extern FILE *fopen  (__const char *   __filename,
			 __const char *   __modes)    ;
 
extern FILE *freopen  (__const char *   __filename,
			   __const char *   __modes,
			   FILE *   __stream)    ;
# 201 "/usr/include/stdio.h" 3










 
extern FILE *fdopen  (int __fd, __const char *__modes)    ;


# 227 "/usr/include/stdio.h" 3



 

extern void setbuf  (FILE *   __stream, char *   __buf)    ;
 


extern int setvbuf  (FILE *   __stream, char *   __buf,
			 int __modes, size_t __n)    ;


 

extern void setbuffer  (FILE *   __stream, char *   __buf,
			    size_t __size)    ;

 
extern void setlinebuf  (FILE *__stream)    ;



 
extern int fprintf  (FILE *   __stream,
			 __const char *   __format, ...)    ;
 
extern int printf  (__const char *   __format, ...)    ;
 
extern int sprintf  (char *   __s,
			 __const char *   __format, ...)    ;

 
extern int vfprintf  (FILE *   __s,
			  __const char *   __format,
			  __gnuc_va_list  __arg)    ;
 
extern int vprintf  (__const char *   __format,
			 __gnuc_va_list  __arg)    ;
 
extern int vsprintf  (char *   __s,
			  __const char *   __format,
			  __gnuc_va_list  __arg)    ;


 
extern int snprintf  (char *   __s, size_t __maxlen,
			  __const char *   __format, ...)    
     __attribute__ ((__format__ (__printf__, 3, 4)));

extern int __vsnprintf  (char *   __s, size_t __maxlen,
			     __const char *   __format,
			     __gnuc_va_list  __arg)    
     __attribute__ ((__format__ (__printf__, 3, 0)));
extern int vsnprintf  (char *   __s, size_t __maxlen,
			   __const char *   __format,
			   __gnuc_va_list  __arg)    
     __attribute__ ((__format__ (__printf__, 3, 0)));


# 306 "/usr/include/stdio.h" 3



 
extern int fscanf  (FILE *   __stream,
			__const char *   __format, ...)    ;
 
extern int scanf  (__const char *   __format, ...)    ;
 
extern int sscanf  (__const char *   __s,
			__const char *   __format, ...)    ;

# 334 "/usr/include/stdio.h" 3



 
extern int fgetc  (FILE *__stream)    ;
extern int getc  (FILE *__stream)    ;

 
extern int getchar  (void)    ;

 




 
extern int getc_unlocked  (FILE *__stream)    ;
extern int getchar_unlocked  (void)    ;



 
extern int fgetc_unlocked  (FILE *__stream)    ;



 
extern int fputc  (int __c, FILE *__stream)    ;
extern int putc  (int __c, FILE *__stream)    ;

 
extern int putchar  (int __c)    ;

 




 
extern int fputc_unlocked  (int __c, FILE *__stream)    ;



 
extern int putc_unlocked  (int __c, FILE *__stream)    ;
extern int putchar_unlocked  (int __c)    ;




 
extern int getw  (FILE *__stream)    ;

 
extern int putw  (int __w, FILE *__stream)    ;



 
extern char *fgets  (char *   __s, int __n,
			 FILE *   __stream)    ;







 

extern char *gets  (char *__s)    ;


# 424 "/usr/include/stdio.h" 3



 
extern int fputs  (__const char *   __s,
		       FILE *   __stream)    ;







 
extern int puts  (__const char *__s)    ;


 
extern int ungetc  (int __c, FILE *__stream)    ;


 
extern size_t fread  (void *   __ptr, size_t __size,
			  size_t __n, FILE *   __stream)    ;
 
extern size_t fwrite  (__const void *   __ptr, size_t __size,
			   size_t __n, FILE *   __s)    ;


 
extern size_t fread_unlocked  (void *   __ptr, size_t __size,
				   size_t __n, FILE *   __stream)    ;
extern size_t fwrite_unlocked  (__const void *   __ptr,
				    size_t __size, size_t __n,
				    FILE *   __stream)    ;



 
extern int fseek  (FILE *__stream, long int __off, int __whence)    ;
 
extern long int ftell  (FILE *__stream)    ;
 
extern void rewind  (FILE *__stream)    ;

 




 























 
extern int fgetpos  (FILE *   __stream,
			 fpos_t *   __pos)    ;
 
extern int fsetpos  (FILE *__stream, __const fpos_t *__pos)    ;
# 523 "/usr/include/stdio.h" 3


# 533 "/usr/include/stdio.h" 3


 
extern void clearerr  (FILE *__stream)    ;
 
extern int feof  (FILE *__stream)    ;
 
extern int ferror  (FILE *__stream)    ;


 
extern void clearerr_unlocked  (FILE *__stream)    ;
extern int feof_unlocked  (FILE *__stream)    ;
extern int ferror_unlocked  (FILE *__stream)    ;



 
extern void perror  (__const char *__s)    ;

 


extern int sys_nerr;
extern __const char *__const sys_errlist[];








 
extern int fileno  (FILE *__stream)    ;



 
extern int fileno_unlocked  (FILE *__stream)    ;





 
extern FILE *popen  (__const char *__command, __const char *__modes)    ;

 
extern int pclose  (FILE *__stream)    ;




 
extern char *ctermid  (char *__s)    ;









# 607 "/usr/include/stdio.h" 3




 

 
extern void flockfile  (FILE *__stream)    ;

 

extern int ftrylockfile  (FILE *__stream)    ;

 
extern void funlockfile  (FILE *__stream)    ;










 


# 1 "/usr/include/bits/stdio.h" 1 3
 





























 
extern __inline  int
vprintf (__const char *   __fmt, __gnuc_va_list  __arg)  
{
  return vfprintf (stdout , __fmt, __arg);
}

 
extern __inline  int
getchar (void)  
{
  return _IO_getc (stdin );
}



 
extern __inline  int
getc_unlocked (FILE *__fp)  
{
  return (( __fp )->_IO_read_ptr >= ( __fp )->_IO_read_end ? __uflow ( __fp ) : *(unsigned char *) ( __fp )->_IO_read_ptr++) ;
}

 
extern __inline  int
getchar_unlocked (void)  
{
  return (( stdin  )->_IO_read_ptr >= ( stdin  )->_IO_read_end ? __uflow ( stdin  ) : *(unsigned char *) ( stdin  )->_IO_read_ptr++) ;
}



 
extern __inline  int
putchar (int __c)  
{
  return _IO_putc (__c, stdout );
}



 
extern __inline  int
fputc_unlocked (int __c, FILE *__stream)  
{
  return (((  __stream )->_IO_write_ptr >= (  __stream )->_IO_write_end) ? __overflow (  __stream , (unsigned char) ( __c )) : (unsigned char) (*(  __stream )->_IO_write_ptr++ = ( __c ))) ;
}




 
extern __inline  int
putc_unlocked (int __c, FILE *__stream)  
{
  return (((  __stream )->_IO_write_ptr >= (  __stream )->_IO_write_end) ? __overflow (  __stream , (unsigned char) ( __c )) : (unsigned char) (*(  __stream )->_IO_write_ptr++ = ( __c ))) ;
}

 
extern __inline  int
putchar_unlocked (int __c)  
{
  return (((  stdout  )->_IO_write_ptr >= (  stdout  )->_IO_write_end) ? __overflow (  stdout  , (unsigned char) ( __c )) : (unsigned char) (*(  stdout  )->_IO_write_ptr++ = ( __c ))) ;
}














 
extern __inline  int
feof_unlocked (FILE *__stream)  
{
  return ((( __stream )->_flags & 0x10 ) != 0) ;
}

 
extern __inline  int
ferror_unlocked (FILE *__stream)  
{
  return ((( __stream )->_flags & 0x20 ) != 0) ;
}






 

# 149 "/usr/include/bits/stdio.h" 3


# 165 "/usr/include/bits/stdio.h" 3


 

# 635 "/usr/include/stdio.h" 2 3



 




# 12 "../libtu/include/libtu/misc.h" 2

# 1 "/usr/include/assert.h" 1 3
 

















 



# 32 "/usr/include/assert.h" 3





 




# 56 "/usr/include/assert.h" 3


 

 
extern void __assert_fail  (__const char *__assertion,
				__const char *__file,
				unsigned int __line,
				__const char *__function)    
     __attribute__ ((__noreturn__));

 
extern void __assert_perror_fail  (int __errnum,
				       __const char *__file,
				       unsigned int __line,
				       __const char *__function)    
     __attribute__ ((__noreturn__));

 













 





















# 13 "../libtu/include/libtu/misc.h" 2












extern void* malloczero(size_t size);
extern void* remalloczero(void *ptr, size_t oldsize, size_t newsize);

extern char* scopy(const char *p);
extern char* scat(const char *p1, const char *p2);
extern char* scatn(const char *p1, ssize_t  n1, const char *p2, ssize_t  n2);
extern char* scat3(const char *p1, const char *p2, const char *p3);
extern void stripws(char *p);

extern const char* simple_basename(const char *name);

 
extern int  readf(FILE *fd, void *buf, size_t n);
extern int  writef(FILE *fd, const void *buf, size_t n);


# 13 "common.h" 2

# 1 "../libtu/include/libtu/dlist.h" 1
 










# 21 "../libtu/include/libtu/dlist.h"



# 32 "../libtu/include/libtu/dlist.h"


























# 69 "../libtu/include/libtu/dlist.h"


# 14 "common.h" 2


# 1 "/usr/X11R6/include/X11/Xlib.h" 1
 
 
 



























 
























# 1 "/usr/X11R6/include/X11/X.h" 1
 



 




 

















































 

 





typedef unsigned long XID;
typedef unsigned long Mask;
typedef unsigned long Atom;
typedef unsigned long VisualID;
typedef unsigned long Time;









typedef XID Window;
typedef XID Drawable;
typedef XID Font;
typedef XID Pixmap;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;

typedef unsigned char KeyCode;

 






























 



 





























 







































 











 












 











 









 







		       
 










 





 




 





 




 




 




 







 










 





 














# 345 "/usr/X11R6/include/X11/X.h"











 



 
 




 

















 










 













 



 





 





 




 





 







 




 





 



 


















 





 






 





 






 




 




 






 




 





 




 



























 



 






 



 





 



 





 





 



 





 










 


















 














 




 



 




 




 











 





# 56 "/usr/X11R6/include/X11/Xlib.h" 2


 
# 1 "/usr/X11R6/include/X11/Xfuncproto.h" 1
 
 


























 



























































# 59 "/usr/X11R6/include/X11/Xlib.h" 2

# 1 "/usr/X11R6/include/X11/Xosdefs.h" 1
 
































 








































  








# 93 "/usr/X11R6/include/X11/Xosdefs.h"

































# 60 "/usr/X11R6/include/X11/Xlib.h" 2













# 1 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 1 3





 






 

 




 


 





 


# 59 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 





 


















 





 

 


# 124 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3


 




 

 


# 180 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3





 




 


# 254 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 

# 288 "/usr/local/lib/gcc-lib/i686-unknown-linux/2.7.2.3/include/stddef.h" 3




 









 









# 73 "/usr/X11R6/include/X11/Xlib.h" 2

# 86 "/usr/X11R6/include/X11/Xlib.h"










typedef char *XPointer;













































 






















 


typedef struct _XExtData {
	int number;		 
	struct _XExtData *next;	 
	int (*free_private)(	 

	struct _XExtData *extension

	);
	XPointer private_data;	 
} XExtData;

 


typedef struct {		 
	int extension;		 
	int major_opcode;	 
	int first_event;	 
	int first_error;	 
} XExtCodes;

 



typedef struct {
    int depth;
    int bits_per_pixel;
    int scanline_pad;
} XPixmapFormatValues;


 


typedef struct {
	int function;		 
	unsigned long plane_mask; 
	unsigned long foreground; 
	unsigned long background; 
	int line_width;		 
	int line_style;	 	 
	int cap_style;	  	 

	int join_style;	 	 
	int fill_style;	 	 

	int fill_rule;	  	 
	int arc_mode;		 
	Pixmap tile;		 
	Pixmap stipple;		 
	int ts_x_origin;	 
	int ts_y_origin;
        Font font;	         
	int subwindow_mode;      
	int  graphics_exposures; 
	int clip_x_origin;	 
	int clip_y_origin;
	Pixmap clip_mask;	 
	int dash_offset;	 
	char dashes;
} XGCValues;

 




typedef struct _XGC







*GC;

 


typedef struct {
	XExtData *ext_data;	 
	VisualID visualid;	 



	int class;		 

	unsigned long red_mask, green_mask, blue_mask;	 
	int bits_per_rgb;	 
	int map_entries;	 
} Visual;

 

	
typedef struct {
	int depth;		 
	int nvisuals;		 
	Visual *visuals;	 
} Depth;

 





struct _XDisplay;		 

typedef struct {
	XExtData *ext_data;	 
	struct _XDisplay *display; 
	Window root;		 
	int width, height;	 
	int mwidth, mheight;	 
	int ndepths;		 
	Depth *depths;		 
	int root_depth;		 
	Visual *root_visual;	 
	GC default_gc;		 
	Colormap cmap;		 
	unsigned long white_pixel;
	unsigned long black_pixel;	 
	int max_maps, min_maps;	 
	int backing_store;	 
	int  save_unders;	
	long root_input_mask;	 
} Screen;

 


typedef struct {
	XExtData *ext_data;	 
	int depth;		 
	int bits_per_pixel;	 
	int scanline_pad;	 
} ScreenFormat;

 


typedef struct {
    Pixmap background_pixmap;	 
    unsigned long background_pixel;	 
    Pixmap border_pixmap;	 
    unsigned long border_pixel;	 
    int bit_gravity;		 
    int win_gravity;		 
    int backing_store;		 
    unsigned long backing_planes; 
    unsigned long backing_pixel; 
    int  save_under;		 
    long event_mask;		 
    long do_not_propagate_mask;	 
    int  override_redirect;	 
    Colormap colormap;		 
    Cursor cursor;		 
} XSetWindowAttributes;

typedef struct {
    int x, y;			 
    int width, height;		 
    int border_width;		 
    int depth;          	 
    Visual *visual;		 
    Window root;        	 



    int class;			 

    int bit_gravity;		 
    int win_gravity;		 
    int backing_store;		 
    unsigned long backing_planes; 
    unsigned long backing_pixel; 
    int  save_under;		 
    Colormap colormap;		 
    int  map_installed;		 
    int map_state;		 
    long all_event_masks;	 
    long your_event_mask;	 
    long do_not_propagate_mask;  
    int  override_redirect;	 
    Screen *screen;		 
} XWindowAttributes;

 




typedef struct {
	int family;		 
	int length;		 
	char *address;		 
} XHostAddress;

 


typedef struct _XImage {
    int width, height;		 
    int xoffset;		 
    int format;			 
    char *data;			 
    int byte_order;		 
    int bitmap_unit;		 
    int bitmap_bit_order;	 
    int bitmap_pad;		 
    int depth;			 
    int bytes_per_line;		 
    int bits_per_pixel;		 
    unsigned long red_mask;	 
    unsigned long green_mask;
    unsigned long blue_mask;
    XPointer obdata;		 
    struct funcs {		 

	struct _XImage *(*create_image)(
		struct _XDisplay*  ,
		Visual*		 ,
		unsigned int	 ,
		int		 ,
		int		 ,
		char*		 ,
		unsigned int	 ,
		unsigned int	 ,
		int		 ,
		int		 );
	int (*destroy_image)        (struct _XImage *);
	unsigned long (*get_pixel)  (struct _XImage *, int, int);
	int (*put_pixel)            (struct _XImage *, int, int, unsigned long);
	struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
	int (*add_pixel)            (struct _XImage *, long);








	} f;
} XImage;

 


typedef struct {
    int x, y;
    int width, height;
    int border_width;
    Window sibling;
    int stack_mode;
} XWindowChanges;

 


typedef struct {
	unsigned long pixel;
	unsigned short red, green, blue;
	char flags;   
	char pad;
} XColor;

 




typedef struct {
    short x1, y1, x2, y2;
} XSegment;

typedef struct {
    short x, y;
} XPoint;
    
typedef struct {
    short x, y;
    unsigned short width, height;
} XRectangle;
    
typedef struct {
    short x, y;
    unsigned short width, height;
    short angle1, angle2;
} XArc;


 

typedef struct {
        int key_click_percent;
        int bell_percent;
        int bell_pitch;
        int bell_duration;
        int led;
        int led_mode;
        int key;
        int auto_repeat_mode;    
} XKeyboardControl;

 

typedef struct {
        int key_click_percent;
	int bell_percent;
	unsigned int bell_pitch, bell_duration;
	unsigned long led_mask;
	int global_auto_repeat;
	char auto_repeats[32];
} XKeyboardState;

 

typedef struct {
        Time time;
	short x, y;
} XTimeCoord;

 

typedef struct {
 	int max_keypermod;	 
 	KeyCode *modifiermap;	 
} XModifierKeymap;


 





typedef struct _XDisplay Display;


struct _XPrivate;		 
struct _XrmHashBucketRec;

typedef struct 



{
	XExtData *ext_data;	 
	struct _XPrivate *private1;
	int fd;			 
	int private2;
	int proto_major_version; 
	int proto_minor_version; 
	char *vendor;		 
        XID private3;
	XID private4;
	XID private5;
	int private6;
	XID (*resource_alloc)(	 

		struct _XDisplay*

	);
	int byte_order;		 
	int bitmap_unit;	 
	int bitmap_pad;		 
	int bitmap_bit_order;	 
	int nformats;		 
	ScreenFormat *pixmap_format;	 
	int private8;
	int release;		 
	struct _XPrivate *private9, *private10;
	int qlen;		 
	unsigned long last_request_read;  
	unsigned long request;	 
	XPointer private11;
	XPointer private12;
	XPointer private13;
	XPointer private14;
	unsigned max_request_size;  
	struct _XrmHashBucketRec *db;
	int (*private15)(

		struct _XDisplay*

		);
	char *display_name;	 
	int default_screen;	 
	int nscreens;		 
	Screen *screens;	 
	unsigned long motion_buffer;	 
	unsigned long private16;
	int min_keycode;	 
	int max_keycode;	 
	XPointer private17;
	XPointer private18;
	int private19;
	char *xdefaults;	 
	 
}



*_XPrivDisplay;





 


typedef struct {
	int type;		 
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;	         
	Window root;	         
	Window subwindow;	 
	Time time;		 
	int x, y;		 
	int x_root, y_root;	 
	unsigned int state;	 
	unsigned int keycode;	 
	int  same_screen;	 
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;

typedef struct {
	int type;		 
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;	         
	Window root;	         
	Window subwindow;	 
	Time time;		 
	int x, y;		 
	int x_root, y_root;	 
	unsigned int state;	 
	unsigned int button;	 
	int  same_screen;	 
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;

typedef struct {
	int type;		 
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;	         
	Window root;	         
	Window subwindow;	 
	Time time;		 
	int x, y;		 
	int x_root, y_root;	 
	unsigned int state;	 
	char is_hint;		 
	int  same_screen;	 
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;

typedef struct {
	int type;		 
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;	         
	Window root;	         
	Window subwindow;	 
	Time time;		 
	int x, y;		 
	int x_root, y_root;	 
	int mode;		 
	int detail;
	 



	int  same_screen;	 
	int  focus;		 
	unsigned int state;	 
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;

typedef struct {
	int type;		 
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;		 
	int mode;		 
	int detail;
	 




} XFocusChangeEvent;
typedef XFocusChangeEvent XFocusInEvent;
typedef XFocusChangeEvent XFocusOutEvent;

 
typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	char key_vector[32];
} XKeymapEvent;	

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	int x, y;
	int width, height;
	int count;		 
} XExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Drawable drawable;
	int x, y;
	int width, height;
	int count;		 
	int major_code;		 
	int minor_code;		 
} XGraphicsExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Drawable drawable;
	int major_code;		 
	int minor_code;		 
} XNoExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	int state;		 
} XVisibilityEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window parent;		 
	Window window;		 
	int x, y;		 
	int width, height;	 
	int border_width;	 
	int  override_redirect;	 
} XCreateWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
} XDestroyWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	int  from_configure;
} XUnmapEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	int  override_redirect;	 
} XMapEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window parent;
	Window window;
} XMapRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	Window parent;
	int x, y;
	int  override_redirect;
} XReparentEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int  override_redirect;
} XConfigureEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	int x, y;
} XGravityEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	int width, height;
} XResizeRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window parent;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int detail;		 
	unsigned long value_mask;
} XConfigureRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window event;
	Window window;
	int place;		 
} XCirculateEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window parent;
	Window window;
	int place;		 
} XCirculateRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	Atom atom;
	Time time;
	int state;		 
} XPropertyEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	Atom selection;
	Time time;
} XSelectionClearEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window owner;
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;
	Time time;
} XSelectionRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;		 
	Time time;
} XSelectionEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	Colormap colormap;	 



	int  new;

	int state;		 
} XColormapEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;
	Atom message_type;
	int format;
	union {
		char b[20];
		short s[10];
		long l[5];
		} data;
} XClientMessageEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display;	 
	Window window;		 
	int request;		 

	int first_keycode;	 
	int count;		 
} XMappingEvent;

typedef struct {
	int type;
	Display *display;	 
	XID resourceid;		 
	unsigned long serial;	 
	unsigned char error_code;	 
	unsigned char request_code;	 
	unsigned char minor_code;	 
} XErrorEvent;

typedef struct {
	int type;
	unsigned long serial;	 
	int  send_event;	 
	Display *display; 
	Window window;	 
} XAnyEvent;

 



typedef union _XEvent {
        int type;		 
	XAnyEvent xany;
	XKeyEvent xkey;
	XButtonEvent xbutton;
	XMotionEvent xmotion;
	XCrossingEvent xcrossing;
	XFocusChangeEvent xfocus;
	XExposeEvent xexpose;
	XGraphicsExposeEvent xgraphicsexpose;
	XNoExposeEvent xnoexpose;
	XVisibilityEvent xvisibility;
	XCreateWindowEvent xcreatewindow;
	XDestroyWindowEvent xdestroywindow;
	XUnmapEvent xunmap;
	XMapEvent xmap;
	XMapRequestEvent xmaprequest;
	XReparentEvent xreparent;
	XConfigureEvent xconfigure;
	XGravityEvent xgravity;
	XResizeRequestEvent xresizerequest;
	XConfigureRequestEvent xconfigurerequest;
	XCirculateEvent xcirculate;
	XCirculateRequestEvent xcirculaterequest;
	XPropertyEvent xproperty;
	XSelectionClearEvent xselectionclear;
	XSelectionRequestEvent xselectionrequest;
	XSelectionEvent xselection;
	XColormapEvent xcolormap;
	XClientMessageEvent xclient;
	XMappingEvent xmapping;
	XErrorEvent xerror;
	XKeymapEvent xkeymap;
	long pad[24];
} XEvent;




 


typedef struct {
    short	lbearing;	 
    short	rbearing;	 
    short	width;		 
    short	ascent;		 
    short	descent;	 
    unsigned short attributes;	 
} XCharStruct;

 



typedef struct {
    Atom name;
    unsigned long card32;
} XFontProp;

typedef struct {
    XExtData	*ext_data;	 
    Font        fid;             
    unsigned	direction;	 
    unsigned	min_char_or_byte2; 
    unsigned	max_char_or_byte2; 
    unsigned	min_byte1;	 
    unsigned	max_byte1;	 
    int 	all_chars_exist; 
    unsigned	default_char;	 
    int         n_properties;    
    XFontProp	*properties;	 
    XCharStruct	min_bounds;	 
    XCharStruct	max_bounds;	 
    XCharStruct	*per_char;	 
    int		ascent;		 
    int		descent;	 
} XFontStruct;

 


typedef struct {
    char *chars;		 
    int nchars;			 
    int delta;			 
    Font font;			 
} XTextItem;

typedef struct {		 
    unsigned char byte1;
    unsigned char byte2;
} XChar2b;

typedef struct {
    XChar2b *chars;		 
    int nchars;			 
    int delta;			 
    Font font;			 
} XTextItem16;


typedef union { Display *display;
		GC gc;
		Visual *visual;
		Screen *screen;
		ScreenFormat *pixmap_format;
		XFontStruct *font; } XEDataObject;

typedef struct {
    XRectangle      max_ink_extent;
    XRectangle      max_logical_extent;
} XFontSetExtents;

 



typedef struct _XOM *XOM;
typedef struct _XOC *XOC, *XFontSet;

typedef struct {
    char           *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XmbTextItem;

typedef struct {
    wchar_t        *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XwcTextItem;












typedef struct {
    int charset_count;
    char **charset_list;
} XOMCharSetList;

typedef enum {
    XOMOrientation_LTR_TTB,
    XOMOrientation_RTL_TTB,
    XOMOrientation_TTB_LTR,
    XOMOrientation_TTB_RTL,
    XOMOrientation_Context
} XOrientation;

typedef struct {
    int num_orientation;
    XOrientation *orientation;	 
} XOMOrientation;

typedef struct {
    int num_font;
    XFontStruct **font_struct_list;
    char **font_name_list;
} XOMFontInfo;

typedef struct _XIM *XIM;
typedef struct _XIC *XIC;

typedef void (*XIMProc)(

    XIM,
    XPointer,
    XPointer

);

typedef int  (*XICProc)(

    XIC,
    XPointer,
    XPointer

);

typedef void (*XIDProc)(

    Display*,
    XPointer,
    XPointer

);

typedef unsigned long XIMStyle;

typedef struct {
    unsigned short count_styles;
    XIMStyle *supported_styles;
} XIMStyles;






























































typedef void *XVaNestedList;




typedef struct {
    XPointer client_data;
    XIMProc callback;
} XIMCallback;

typedef struct {
    XPointer client_data;
    XICProc callback;
} XICCallback;

typedef unsigned long XIMFeedback;











typedef struct _XIMText {
    unsigned short length;
    XIMFeedback *feedback;
    int  encoding_is_wchar; 
    union {
	char *multi_byte;
	wchar_t *wide_char;
    } string; 
} XIMText;

typedef	unsigned long	 XIMPreeditState;





typedef	struct	_XIMPreeditStateNotifyCallbackStruct {
    XIMPreeditState state;
} XIMPreeditStateNotifyCallbackStruct;

typedef	unsigned long	 XIMResetState;




typedef unsigned long XIMStringConversionFeedback;








typedef struct _XIMStringConversionText {
    unsigned short length;
    XIMStringConversionFeedback *feedback;
    int  encoding_is_wchar; 
    union {
	char *mbs;
	wchar_t *wcs;
    } string; 
} XIMStringConversionText;

typedef	unsigned short	XIMStringConversionPosition;

typedef	unsigned short	XIMStringConversionType;






typedef	unsigned short	XIMStringConversionOperation;



 






typedef enum {
    XIMForwardChar, XIMBackwardChar,
    XIMForwardWord, XIMBackwardWord,
    XIMCaretUp, XIMCaretDown,
    XIMNextLine, XIMPreviousLine,
    XIMLineStart, XIMLineEnd, 
    XIMAbsolutePosition,
    XIMDontChange
} XIMCaretDirection;

typedef struct _XIMStringConversionCallbackStruct {
    XIMStringConversionPosition position;
    XIMCaretDirection direction;
    XIMStringConversionOperation operation;
    unsigned short factor;
    XIMStringConversionText *text;
} XIMStringConversionCallbackStruct;

typedef struct _XIMPreeditDrawCallbackStruct {
    int caret;		 
    int chg_first;	 
    int chg_length;	 
    XIMText *text;
} XIMPreeditDrawCallbackStruct;

typedef enum {
    XIMIsInvisible,	  
    XIMIsPrimary,	 
    XIMIsSecondary	 
} XIMCaretStyle;

typedef struct _XIMPreeditCaretCallbackStruct {
    int position;		  
    XIMCaretDirection direction;  
    XIMCaretStyle style;	  
} XIMPreeditCaretCallbackStruct;

typedef enum {
    XIMTextType,
    XIMBitmapType
} XIMStatusDataType;
	
typedef struct _XIMStatusDrawCallbackStruct {
    XIMStatusDataType type;
    union {
	XIMText *text;
	Pixmap  bitmap;
    } data;
} XIMStatusDrawCallbackStruct;

typedef struct _XIMHotKeyTrigger {
    KeySym	 keysym;
    int		 modifier;
    int		 modifier_mask;
} XIMHotKeyTrigger;

typedef struct _XIMHotKeyTriggers {
    int			 num_hot_key;
    XIMHotKeyTrigger	*key;
} XIMHotKeyTriggers;

typedef	unsigned long	 XIMHotKeyState;




typedef struct {
    unsigned short count_values;
    char **supported_values;
} XIMValuesList;

 





extern int _Xdebug;

extern XFontStruct *XLoadQueryFont(

    Display*		 ,
    const  char*	 

);

extern XFontStruct *XQueryFont(

    Display*		 ,
    XID			 

);


extern XTimeCoord *XGetMotionEvents(

    Display*		 ,
    Window		 ,
    Time		 ,
    Time		 ,
    int*		 

);

extern XModifierKeymap *XDeleteModifiermapEntry(

    XModifierKeymap*	 ,

    unsigned int	 ,



    int			 

);

extern XModifierKeymap	*XGetModifierMapping(

    Display*		 

);

extern XModifierKeymap	*XInsertModifiermapEntry(

    XModifierKeymap*	 ,

    unsigned int	 ,



    int			     

);

extern XModifierKeymap *XNewModifiermap(

    int			 

);

extern XImage *XCreateImage(

    Display*		 ,
    Visual*		 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    char*		 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 

);
extern int  XInitImage(

    XImage*		 

);
extern XImage *XGetImage(

    Display*		 ,
    Drawable		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned long	 ,
    int			 

);
extern XImage *XGetSubImage(

    Display*		 ,
    Drawable		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned long	 ,
    int			 ,
    XImage*		 ,
    int			 ,
    int			 

);

 


extern Display *XOpenDisplay(

    const  char*	 

);

extern void XrmInitialize(

    void

);

extern char *XFetchBytes(

    Display*		 ,
    int*		 

);
extern char *XFetchBuffer(

    Display*		 ,
    int*		 ,
    int			 

);
extern char *XGetAtomName(

    Display*		 ,
    Atom		 

);
extern int  XGetAtomNames(

    Display*		 ,
    Atom*		 ,
    int			 ,
    char**		 

);
extern char *XGetDefault(

    Display*		 ,
    const  char*	 ,
    const  char*	 		  

);
extern char *XDisplayName(

    const  char*	 

);
extern char *XKeysymToString(

    KeySym		 

);

extern int (*XSynchronize(

    Display*		 ,
    int 		 

))(

    Display*		 

);
extern int (*XSetAfterFunction(

    Display*		 ,
    int (*) (

	     Display*	 

            )		 

))(

    Display*		 

);
extern Atom XInternAtom(

    Display*		 ,
    const  char*	 ,
    int 		 		 

);
extern int  XInternAtoms(

    Display*		 ,
    char**		 ,
    int			 ,
    int 		 ,
    Atom*		 

);
extern Colormap XCopyColormapAndFree(

    Display*		 ,
    Colormap		 

);
extern Colormap XCreateColormap(

    Display*		 ,
    Window		 ,
    Visual*		 ,
    int			 			 

);
extern Cursor XCreatePixmapCursor(

    Display*		 ,
    Pixmap		 ,
    Pixmap		 ,
    XColor*		 ,
    XColor*		 ,
    unsigned int	 ,
    unsigned int	 			   

);
extern Cursor XCreateGlyphCursor(

    Display*		 ,
    Font		 ,
    Font		 ,
    unsigned int	 ,
    unsigned int	 ,
    XColor*		 ,
    XColor*		 

);
extern Cursor XCreateFontCursor(

    Display*		 ,
    unsigned int	 

);
extern Font XLoadFont(

    Display*		 ,
    const  char*	 

);
extern GC XCreateGC(

    Display*		 ,
    Drawable		 ,
    unsigned long	 ,
    XGCValues*		 

);
extern GContext XGContextFromGC(

    GC			 

);
extern void XFlushGC(

    Display*		 ,
    GC			 

);
extern Pixmap XCreatePixmap(

    Display*		 ,
    Drawable		 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int	 		        

);
extern Pixmap XCreateBitmapFromData(

    Display*		 ,
    Drawable		 ,
    const  char*	 ,
    unsigned int	 ,
    unsigned int	 

);
extern Pixmap XCreatePixmapFromBitmapData(

    Display*		 ,
    Drawable		 ,
    char*		 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned long	 ,
    unsigned long	 ,
    unsigned int	 

);
extern Window XCreateSimpleWindow(

    Display*		 ,
    Window		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned long	 ,
    unsigned long	 

);
extern Window XGetSelectionOwner(

    Display*		 ,
    Atom		 

);
extern Window XCreateWindow(

    Display*		 ,
    Window		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    unsigned int	 ,
    Visual*		 ,
    unsigned long	 ,
    XSetWindowAttributes*	 

); 
extern Colormap *XListInstalledColormaps(

    Display*		 ,
    Window		 ,
    int*		 

);
extern char **XListFonts(

    Display*		 ,
    const  char*	 ,
    int			 ,
    int*		 

);
extern char **XListFontsWithInfo(

    Display*		 ,
    const  char*	 ,
    int			 ,
    int*		 ,
    XFontStruct**	 

);
extern char **XGetFontPath(

    Display*		 ,
    int*		 

);
extern char **XListExtensions(

    Display*		 ,
    int*		 

);
extern Atom *XListProperties(

    Display*		 ,
    Window		 ,
    int*		 

);
extern XHostAddress *XListHosts(

    Display*		 ,
    int*		 ,
    int *		 

);
extern KeySym XKeycodeToKeysym(

    Display*		 ,

    unsigned int	 ,



    int			 

);
extern KeySym XLookupKeysym(

    XKeyEvent*		 ,
    int			 

);
extern KeySym *XGetKeyboardMapping(

    Display*		 ,

    unsigned int	 ,



    int			 ,
    int*		 

);
extern KeySym XStringToKeysym(

    const  char*	 

);
extern long XMaxRequestSize(

    Display*		 

);
extern long XExtendedMaxRequestSize(

    Display*		 

);
extern char *XResourceManagerString(

    Display*		 

);
extern char *XScreenResourceString(

	Screen*		 

);
extern unsigned long XDisplayMotionBufferSize(

    Display*		 

);
extern VisualID XVisualIDFromVisual(

    Visual*		 

);

 

extern int  XInitThreads(

    void

);

extern void XLockDisplay(

    Display*		 

);

extern void XUnlockDisplay(

    Display*		 

);

 

extern XExtCodes *XInitExtension(

    Display*		 ,
    const  char*	 

);

extern XExtCodes *XAddExtension(

    Display*		 

);
extern XExtData *XFindOnExtensionList(

    XExtData**		 ,
    int			 

);
extern XExtData **XEHeadOfExtensionList(

    XEDataObject	 

);

 
extern Window XRootWindow(

    Display*		 ,
    int			 

);
extern Window XDefaultRootWindow(

    Display*		 

);
extern Window XRootWindowOfScreen(

    Screen*		 

);
extern Visual *XDefaultVisual(

    Display*		 ,
    int			 

);
extern Visual *XDefaultVisualOfScreen(

    Screen*		 

);
extern GC XDefaultGC(

    Display*		 ,
    int			 

);
extern GC XDefaultGCOfScreen(

    Screen*		 

);
extern unsigned long XBlackPixel(

    Display*		 ,
    int			 

);
extern unsigned long XWhitePixel(

    Display*		 ,
    int			 

);
extern unsigned long XAllPlanes(

    void

);
extern unsigned long XBlackPixelOfScreen(

    Screen*		 

);
extern unsigned long XWhitePixelOfScreen(

    Screen*		 

);
extern unsigned long XNextRequest(

    Display*		 

);
extern unsigned long XLastKnownRequestProcessed(

    Display*		 

);
extern char *XServerVendor(

    Display*		 

);
extern char *XDisplayString(

    Display*		 

);
extern Colormap XDefaultColormap(

    Display*		 ,
    int			 

);
extern Colormap XDefaultColormapOfScreen(

    Screen*		 

);
extern Display *XDisplayOfScreen(

    Screen*		 

);
extern Screen *XScreenOfDisplay(

    Display*		 ,
    int			 

);
extern Screen *XDefaultScreenOfDisplay(

    Display*		 

);
extern long XEventMaskOfScreen(

    Screen*		 

);

extern int XScreenNumberOfScreen(

    Screen*		 

);

typedef int (*XErrorHandler) (	     

    Display*		 ,
    XErrorEvent*	 

);

extern XErrorHandler XSetErrorHandler (

    XErrorHandler	 

);


typedef int (*XIOErrorHandler) (     

    Display*		 

);

extern XIOErrorHandler XSetIOErrorHandler (

    XIOErrorHandler	 

);


extern XPixmapFormatValues *XListPixmapFormats(

    Display*		 ,
    int*		 

);
extern int *XListDepths(

    Display*		 ,
    int			 ,
    int*		 

);

 
 
extern int  XReconfigureWMWindow(

    Display*		 ,
    Window		 ,
    int			 ,
    unsigned int	 ,
    XWindowChanges*	 

);

extern int  XGetWMProtocols(

    Display*		 ,
    Window		 ,
    Atom**		 ,
    int*		 

);
extern int  XSetWMProtocols(

    Display*		 ,
    Window		 ,
    Atom*		 ,
    int			 

);
extern int  XIconifyWindow(

    Display*		 ,
    Window		 ,
    int			 

);
extern int  XWithdrawWindow(

    Display*		 ,
    Window		 ,
    int			 

);
extern int  XGetCommand(

    Display*		 ,
    Window		 ,
    char***		 ,
    int*		 

);
extern int  XGetWMColormapWindows(

    Display*		 ,
    Window		 ,
    Window**		 ,
    int*		 

);
extern int  XSetWMColormapWindows(

    Display*		 ,
    Window		 ,
    Window*		 ,
    int			 

);
extern void XFreeStringList(

    char**		 

);
extern int XSetTransientForHint(

    Display*		 ,
    Window		 ,
    Window		 

);

 

extern int XActivateScreenSaver(

    Display*		 

);

extern int XAddHost(

    Display*		 ,
    XHostAddress*	 

);

extern int XAddHosts(

    Display*		 ,
    XHostAddress*	 ,
    int			     

);

extern int XAddToExtensionList(

    struct _XExtData**	 ,
    XExtData*		 

);

extern int XAddToSaveSet(

    Display*		 ,
    Window		 

);

extern int  XAllocColor(

    Display*		 ,
    Colormap		 ,
    XColor*		 

);

extern int  XAllocColorCells(

    Display*		 ,
    Colormap		 ,
    int 	         ,
    unsigned long*	 ,
    unsigned int	 ,
    unsigned long*	 ,
    unsigned int 	 

);

extern int  XAllocColorPlanes(

    Display*		 ,
    Colormap		 ,
    int 		 ,
    unsigned long*	 ,
    int			 ,
    int			 ,
    int			 ,
    int			 ,
    unsigned long*	 ,
    unsigned long*	 ,
    unsigned long*	 

);

extern int  XAllocNamedColor(

    Display*		 ,
    Colormap		 ,
    const  char*	 ,
    XColor*		 ,
    XColor*		 

);

extern int XAllowEvents(

    Display*		 ,
    int			 ,
    Time		 

);

extern int XAutoRepeatOff(

    Display*		 

);

extern int XAutoRepeatOn(

    Display*		 

);

extern int XBell(

    Display*		 ,
    int			 

);

extern int XBitmapBitOrder(

    Display*		 

);

extern int XBitmapPad(

    Display*		 

);

extern int XBitmapUnit(

    Display*		 

);

extern int XCellsOfScreen(

    Screen*		 

);

extern int XChangeActivePointerGrab(

    Display*		 ,
    unsigned int	 ,
    Cursor		 ,
    Time		 

);

extern int XChangeGC(

    Display*		 ,
    GC			 ,
    unsigned long	 ,
    XGCValues*		 

);

extern int XChangeKeyboardControl(

    Display*		 ,
    unsigned long	 ,
    XKeyboardControl*	 

);

extern int XChangeKeyboardMapping(

    Display*		 ,
    int			 ,
    int			 ,
    KeySym*		 ,
    int			 

);

extern int XChangePointerControl(

    Display*		 ,
    int 		 ,
    int 		 ,
    int			 ,
    int			 ,
    int			 

);

extern int XChangeProperty(

    Display*		 ,
    Window		 ,
    Atom		 ,
    Atom		 ,
    int			 ,
    int			 ,
    const  unsigned char*	 ,
    int			 

);

extern int XChangeSaveSet(

    Display*		 ,
    Window		 ,
    int			 

);

extern int XChangeWindowAttributes(

    Display*		 ,
    Window		 ,
    unsigned long	 ,
    XSetWindowAttributes*  

);

extern int  XCheckIfEvent(

    Display*		 ,
    XEvent*		 ,
    int  (*) (

	       Display*			 ,
               XEvent*			 ,
               XPointer			 

             )		 ,
    XPointer		 

);

extern int  XCheckMaskEvent(

    Display*		 ,
    long		 ,
    XEvent*		 

);

extern int  XCheckTypedEvent(

    Display*		 ,
    int			 ,
    XEvent*		 

);

extern int  XCheckTypedWindowEvent(

    Display*		 ,
    Window		 ,
    int			 ,
    XEvent*		 

);

extern int  XCheckWindowEvent(

    Display*		 ,
    Window		 ,
    long		 ,
    XEvent*		 

);

extern int XCirculateSubwindows(

    Display*		 ,
    Window		 ,
    int			 

);

extern int XCirculateSubwindowsDown(

    Display*		 ,
    Window		 

);

extern int XCirculateSubwindowsUp(

    Display*		 ,
    Window		 

);

extern int XClearArea(

    Display*		 ,
    Window		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int 		 

);

extern int XClearWindow(

    Display*		 ,
    Window		 

);

extern int XCloseDisplay(

    Display*		 

);

extern int XConfigureWindow(

    Display*		 ,
    Window		 ,
    unsigned int	 ,
    XWindowChanges*	 		 

);

extern int XConnectionNumber(

    Display*		 

);

extern int XConvertSelection(

    Display*		 ,
    Atom		 ,
    Atom 		 ,
    Atom		 ,
    Window		 ,
    Time		 

);

extern int XCopyArea(

    Display*		 ,
    Drawable		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 

);

extern int XCopyGC(

    Display*		 ,
    GC			 ,
    unsigned long	 ,
    GC			 

);

extern int XCopyPlane(

    Display*		 ,
    Drawable		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    unsigned long	 

);

extern int XDefaultDepth(

    Display*		 ,
    int			 

);

extern int XDefaultDepthOfScreen(

    Screen*		 

);

extern int XDefaultScreen(

    Display*		 

);

extern int XDefineCursor(

    Display*		 ,
    Window		 ,
    Cursor		 

);

extern int XDeleteProperty(

    Display*		 ,
    Window		 ,
    Atom		 

);

extern int XDestroyWindow(

    Display*		 ,
    Window		 

);

extern int XDestroySubwindows(

    Display*		 ,
    Window		 

);

extern int XDoesBackingStore(

    Screen*		     

);

extern int  XDoesSaveUnders(

    Screen*		 

);

extern int XDisableAccessControl(

    Display*		 

);


extern int XDisplayCells(

    Display*		 ,
    int			 

);

extern int XDisplayHeight(

    Display*		 ,
    int			 

);

extern int XDisplayHeightMM(

    Display*		 ,
    int			 

);

extern int XDisplayKeycodes(

    Display*		 ,
    int*		 ,
    int*		 

);

extern int XDisplayPlanes(

    Display*		 ,
    int			 

);

extern int XDisplayWidth(

    Display*		 ,
    int			 

);

extern int XDisplayWidthMM(

    Display*		 ,
    int			 

);

extern int XDrawArc(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 

);

extern int XDrawArcs(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XArc*		 ,
    int			 

);

extern int XDrawImageString(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  char*	 ,
    int			 

);

extern int XDrawImageString16(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  XChar2b*	 ,
    int			 

);

extern int XDrawLine(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    int			 ,
    int			 

);

extern int XDrawLines(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XPoint*		 ,
    int			 ,
    int			 

);

extern int XDrawPoint(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 

);

extern int XDrawPoints(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XPoint*		 ,
    int			 ,
    int			 

);

extern int XDrawRectangle(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 

);

extern int XDrawRectangles(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XRectangle*		 ,
    int			 

);

extern int XDrawSegments(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XSegment*		 ,
    int			 

);

extern int XDrawString(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  char*	 ,
    int			 

);

extern int XDrawString16(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  XChar2b*	 ,
    int			 

);

extern int XDrawText(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    XTextItem*		 ,
    int			 

);

extern int XDrawText16(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    XTextItem16*	 ,
    int			 

);

extern int XEnableAccessControl(

    Display*		 

);

extern int XEventsQueued(

    Display*		 ,
    int			 

);

extern int  XFetchName(

    Display*		 ,
    Window		 ,
    char**		 

);

extern int XFillArc(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 

);

extern int XFillArcs(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XArc*		 ,
    int			 

);

extern int XFillPolygon(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XPoint*		 ,
    int			 ,
    int			 ,
    int			 

);

extern int XFillRectangle(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 

);

extern int XFillRectangles(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XRectangle*		 ,
    int			 

);

extern int XFlush(

    Display*		 

);

extern int XForceScreenSaver(

    Display*		 ,
    int			 

);

extern int XFree(

    void*		 

);

extern int XFreeColormap(

    Display*		 ,
    Colormap		 

);

extern int XFreeColors(

    Display*		 ,
    Colormap		 ,
    unsigned long*	 ,
    int			 ,
    unsigned long	 

);

extern int XFreeCursor(

    Display*		 ,
    Cursor		 

);

extern int XFreeExtensionList(

    char**		     

);

extern int XFreeFont(

    Display*		 ,
    XFontStruct*	 

);

extern int XFreeFontInfo(

    char**		 ,
    XFontStruct*	 ,
    int			 

);

extern int XFreeFontNames(

    char**		 

);

extern int XFreeFontPath(

    char**		 

);

extern int XFreeGC(

    Display*		 ,
    GC			 

);

extern int XFreeModifiermap(

    XModifierKeymap*	 

);

extern int XFreePixmap(

    Display*		 ,
    Pixmap		 

);

extern int XGeometry(

    Display*		 ,
    int			 ,
    const  char*	 ,
    const  char*	 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    int*		 ,
    int*		 ,
    int*		 ,
    int*		 

);

extern int XGetErrorDatabaseText(

    Display*		 ,
    const  char*	 ,
    const  char*	 ,
    const  char*	 ,
    char*		 ,
    int			 

);

extern int XGetErrorText(

    Display*		 ,
    int			 ,
    char*		 ,
    int			 

);

extern int  XGetFontProperty(

    XFontStruct*	 ,
    Atom		 ,
    unsigned long*	 

);

extern int  XGetGCValues(

    Display*		 ,
    GC			 ,
    unsigned long	 ,
    XGCValues*		 

);

extern int  XGetGeometry(

    Display*		 ,
    Drawable		 ,
    Window*		 ,
    int*		 ,
    int*		 ,
    unsigned int*	 ,
    unsigned int*	 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int  XGetIconName(

    Display*		 ,
    Window		 ,
    char**		 

);

extern int XGetInputFocus(

    Display*		 ,
    Window*		 ,
    int*		 

);

extern int XGetKeyboardControl(

    Display*		 ,
    XKeyboardState*	 

);

extern int XGetPointerControl(

    Display*		 ,
    int*		 ,
    int*		 ,
    int*		 

);

extern int XGetPointerMapping(

    Display*		 ,
    unsigned char*	 ,
    int			 

);

extern int XGetScreenSaver(

    Display*		 ,
    int*		 ,
    int*		 ,
    int*		 ,
    int*		 

);

extern int  XGetTransientForHint(

    Display*		 ,
    Window		 ,
    Window*		 

);

extern int XGetWindowProperty(

    Display*		 ,
    Window		 ,
    Atom		 ,
    long		 ,
    long		 ,
    int 		 ,
    Atom		 ,
    Atom*		 ,
    int*		 ,
    unsigned long*	 ,
    unsigned long*	 ,
    unsigned char**	 

);

extern int  XGetWindowAttributes(

    Display*		 ,
    Window		 ,
    XWindowAttributes*	 

);

extern int XGrabButton(

    Display*		 ,
    unsigned int	 ,
    unsigned int	 ,
    Window		 ,
    int 		 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    Window		 ,
    Cursor		 

);

extern int XGrabKey(

    Display*		 ,
    int			 ,
    unsigned int	 ,
    Window		 ,
    int 		 ,
    int			 ,
    int			 

);

extern int XGrabKeyboard(

    Display*		 ,
    Window		 ,
    int 		 ,
    int			 ,
    int			 ,
    Time		 

);

extern int XGrabPointer(

    Display*		 ,
    Window		 ,
    int 		 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    Window		 ,
    Cursor		 ,
    Time		 

);

extern int XGrabServer(

    Display*		 

);

extern int XHeightMMOfScreen(

    Screen*		 

);

extern int XHeightOfScreen(

    Screen*		 

);

extern int XIfEvent(

    Display*		 ,
    XEvent*		 ,
    int  (*) (

	       Display*			 ,
               XEvent*			 ,
               XPointer			 

             )		 ,
    XPointer		 

);

extern int XImageByteOrder(

    Display*		 

);

extern int XInstallColormap(

    Display*		 ,
    Colormap		 

);

extern KeyCode XKeysymToKeycode(

    Display*		 ,
    KeySym		 

);

extern int XKillClient(

    Display*		 ,
    XID			 

);

extern int  XLookupColor(

    Display*		 ,
    Colormap		 ,
    const  char*	 ,
    XColor*		 ,
    XColor*		 

);

extern int XLowerWindow(

    Display*		 ,
    Window		 

);

extern int XMapRaised(

    Display*		 ,
    Window		 

);

extern int XMapSubwindows(

    Display*		 ,
    Window		 

);

extern int XMapWindow(

    Display*		 ,
    Window		 

);

extern int XMaskEvent(

    Display*		 ,
    long		 ,
    XEvent*		 

);

extern int XMaxCmapsOfScreen(

    Screen*		 

);

extern int XMinCmapsOfScreen(

    Screen*		 

);

extern int XMoveResizeWindow(

    Display*		 ,
    Window		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 

);

extern int XMoveWindow(

    Display*		 ,
    Window		 ,
    int			 ,
    int			 

);

extern int XNextEvent(

    Display*		 ,
    XEvent*		 

);

extern int XNoOp(

    Display*		 

);

extern int  XParseColor(

    Display*		 ,
    Colormap		 ,
    const  char*	 ,
    XColor*		 

);

extern int XParseGeometry(

    const  char*	 ,
    int*		 ,
    int*		 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int XPeekEvent(

    Display*		 ,
    XEvent*		 

);

extern int XPeekIfEvent(

    Display*		 ,
    XEvent*		 ,
    int  (*) (

	       Display*		 ,
               XEvent*		 ,
               XPointer		 

             )		 ,
    XPointer		 

);

extern int XPending(

    Display*		 

);

extern int XPlanesOfScreen(

    Screen*		 
    

);

extern int XProtocolRevision(

    Display*		 

);

extern int XProtocolVersion(

    Display*		 

);


extern int XPutBackEvent(

    Display*		 ,
    XEvent*		 

);

extern int XPutImage(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    XImage*		 ,
    int			 ,
    int			 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 	  

);

extern int XQLength(

    Display*		 

);

extern int  XQueryBestCursor(

    Display*		 ,
    Drawable		 ,
    unsigned int         ,
    unsigned int	 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int  XQueryBestSize(

    Display*		 ,
    int			 ,
    Drawable		 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int  XQueryBestStipple(

    Display*		 ,
    Drawable		 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int  XQueryBestTile(

    Display*		 ,
    Drawable		 ,
    unsigned int	 ,
    unsigned int	 ,
    unsigned int*	 ,
    unsigned int*	 

);

extern int XQueryColor(

    Display*		 ,
    Colormap		 ,
    XColor*		 

);

extern int XQueryColors(

    Display*		 ,
    Colormap		 ,
    XColor*		 ,
    int			 

);

extern int  XQueryExtension(

    Display*		 ,
    const  char*	 ,
    int*		 ,
    int*		 ,
    int*		 

);

extern int XQueryKeymap(

    Display*		 ,
    char [32]		 

);

extern int  XQueryPointer(

    Display*		 ,
    Window		 ,
    Window*		 ,
    Window*		 ,
    int*		 ,
    int*		 ,
    int*		 ,
    int*		 ,
    unsigned int*        

);

extern int XQueryTextExtents(

    Display*		 ,
    XID			 ,
    const  char*	 ,
    int			 ,
    int*		 ,
    int*		 ,
    int*		 ,
    XCharStruct*	     

);

extern int XQueryTextExtents16(

    Display*		 ,
    XID			 ,
    const  XChar2b*	 ,
    int			 ,
    int*		 ,
    int*		 ,
    int*		 ,
    XCharStruct*	 

);

extern int  XQueryTree(

    Display*		 ,
    Window		 ,
    Window*		 ,
    Window*		 ,
    Window**		 ,
    unsigned int*	 

);

extern int XRaiseWindow(

    Display*		 ,
    Window		 

);

extern int XReadBitmapFile(

    Display*		 ,
    Drawable 		 ,
    const  char*	 ,
    unsigned int*	 ,
    unsigned int*	 ,
    Pixmap*		 ,
    int*		 ,
    int*		 

);

extern int XReadBitmapFileData(

    const  char*	 ,
    unsigned int*	 ,
    unsigned int*	 ,
    unsigned char**	 ,
    int*		 ,
    int*		 

);

extern int XRebindKeysym(

    Display*		 ,
    KeySym		 ,
    KeySym*		 ,
    int			 ,
    const  unsigned char*	 ,
    int			 

);

extern int XRecolorCursor(

    Display*		 ,
    Cursor		 ,
    XColor*		 ,
    XColor*		 

);

extern int XRefreshKeyboardMapping(

    XMappingEvent*	     

);

extern int XRemoveFromSaveSet(

    Display*		 ,
    Window		 

);

extern int XRemoveHost(

    Display*		 ,
    XHostAddress*	 

);

extern int XRemoveHosts(

    Display*		 ,
    XHostAddress*	 ,
    int			 

);

extern int XReparentWindow(

    Display*		 ,
    Window		 ,
    Window		 ,
    int			 ,
    int			 

);

extern int XResetScreenSaver(

    Display*		 

);

extern int XResizeWindow(

    Display*		 ,
    Window		 ,
    unsigned int	 ,
    unsigned int	 

);

extern int XRestackWindows(

    Display*		 ,
    Window*		 ,
    int			 

);

extern int XRotateBuffers(

    Display*		 ,
    int			 

);

extern int XRotateWindowProperties(

    Display*		 ,
    Window		 ,
    Atom*		 ,
    int			 ,
    int			 

);

extern int XScreenCount(

    Display*		 

);

extern int XSelectInput(

    Display*		 ,
    Window		 ,
    long		 

);

extern int  XSendEvent(

    Display*		 ,
    Window		 ,
    int 		 ,
    long		 ,
    XEvent*		 

);

extern int XSetAccessControl(

    Display*		 ,
    int			 

);

extern int XSetArcMode(

    Display*		 ,
    GC			 ,
    int			 

);

extern int XSetBackground(

    Display*		 ,
    GC			 ,
    unsigned long	 

);

extern int XSetClipMask(

    Display*		 ,
    GC			 ,
    Pixmap		 

);

extern int XSetClipOrigin(

    Display*		 ,
    GC			 ,
    int			 ,
    int			 

);

extern int XSetClipRectangles(

    Display*		 ,
    GC			 ,
    int			 ,
    int			 ,
    XRectangle*		 ,
    int			 ,
    int			 

);

extern int XSetCloseDownMode(

    Display*		 ,
    int			 

);

extern int XSetCommand(

    Display*		 ,
    Window		 ,
    char**		 ,
    int			 

);

extern int XSetDashes(

    Display*		 ,
    GC			 ,
    int			 ,
    const  char*	 ,
    int			 

);

extern int XSetFillRule(

    Display*		 ,
    GC			 ,
    int			 

);

extern int XSetFillStyle(

    Display*		 ,
    GC			 ,
    int			 

);

extern int XSetFont(

    Display*		 ,
    GC			 ,
    Font		 

);

extern int XSetFontPath(

    Display*		 ,
    char**		 ,
    int			 	     

);

extern int XSetForeground(

    Display*		 ,
    GC			 ,
    unsigned long	 

);

extern int XSetFunction(

    Display*		 ,
    GC			 ,
    int			 

);

extern int XSetGraphicsExposures(

    Display*		 ,
    GC			 ,
    int 		 

);

extern int XSetIconName(

    Display*		 ,
    Window		 ,
    const  char*	 

);

extern int XSetInputFocus(

    Display*		 ,
    Window		 ,
    int			 ,
    Time		 

);

extern int XSetLineAttributes(

    Display*		 ,
    GC			 ,
    unsigned int	 ,
    int			 ,
    int			 ,
    int			 

);

extern int XSetModifierMapping(

    Display*		 ,
    XModifierKeymap*	 

);

extern int XSetPlaneMask(

    Display*		 ,
    GC			 ,
    unsigned long	 

);

extern int XSetPointerMapping(

    Display*		 ,
    const  unsigned char*	 ,
    int			 

);

extern int XSetScreenSaver(

    Display*		 ,
    int			 ,
    int			 ,
    int			 ,
    int			 

);

extern int XSetSelectionOwner(

    Display*		 ,
    Atom	         ,
    Window		 ,
    Time		 

);

extern int XSetState(

    Display*		 ,
    GC			 ,
    unsigned long 	 ,
    unsigned long	 ,
    int			 ,
    unsigned long	 

);

extern int XSetStipple(

    Display*		 ,
    GC			 ,
    Pixmap		 

);

extern int XSetSubwindowMode(

    Display*		 ,
    GC			 ,
    int			 

);

extern int XSetTSOrigin(

    Display*		 ,
    GC			 ,
    int			 ,
    int			 

);

extern int XSetTile(

    Display*		 ,
    GC			 ,
    Pixmap		 

);

extern int XSetWindowBackground(

    Display*		 ,
    Window		 ,
    unsigned long	 

);

extern int XSetWindowBackgroundPixmap(

    Display*		 ,
    Window		 ,
    Pixmap		 

);

extern int XSetWindowBorder(

    Display*		 ,
    Window		 ,
    unsigned long	 

);

extern int XSetWindowBorderPixmap(

    Display*		 ,
    Window		 ,
    Pixmap		 

);

extern int XSetWindowBorderWidth(

    Display*		 ,
    Window		 ,
    unsigned int	 

);

extern int XSetWindowColormap(

    Display*		 ,
    Window		 ,
    Colormap		 

);

extern int XStoreBuffer(

    Display*		 ,
    const  char*	 ,
    int			 ,
    int			 

);

extern int XStoreBytes(

    Display*		 ,
    const  char*	 ,
    int			 

);

extern int XStoreColor(

    Display*		 ,
    Colormap		 ,
    XColor*		 

);

extern int XStoreColors(

    Display*		 ,
    Colormap		 ,
    XColor*		 ,
    int			 

);

extern int XStoreName(

    Display*		 ,
    Window		 ,
    const  char*	 

);

extern int XStoreNamedColor(

    Display*		 ,
    Colormap		 ,
    const  char*	 ,
    unsigned long	 ,
    int			 

);

extern int XSync(

    Display*		 ,
    int 		 

);

extern int XTextExtents(

    XFontStruct*	 ,
    const  char*	 ,
    int			 ,
    int*		 ,
    int*		 ,
    int*		 ,
    XCharStruct*	 

);

extern int XTextExtents16(

    XFontStruct*	 ,
    const  XChar2b*	 ,
    int			 ,
    int*		 ,
    int*		 ,
    int*		 ,
    XCharStruct*	 

);

extern int XTextWidth(

    XFontStruct*	 ,
    const  char*	 ,
    int			 

);

extern int XTextWidth16(

    XFontStruct*	 ,
    const  XChar2b*	 ,
    int			 

);

extern int  XTranslateCoordinates(

    Display*		 ,
    Window		 ,
    Window		 ,
    int			 ,
    int			 ,
    int*		 ,
    int*		 ,
    Window*		 

);

extern int XUndefineCursor(

    Display*		 ,
    Window		 

);

extern int XUngrabButton(

    Display*		 ,
    unsigned int	 ,
    unsigned int	 ,
    Window		 

);

extern int XUngrabKey(

    Display*		 ,
    int			 ,
    unsigned int	 ,
    Window		 

);

extern int XUngrabKeyboard(

    Display*		 ,
    Time		 

);

extern int XUngrabPointer(

    Display*		 ,
    Time		 

);

extern int XUngrabServer(

    Display*		 

);

extern int XUninstallColormap(

    Display*		 ,
    Colormap		 

);

extern int XUnloadFont(

    Display*		 ,
    Font		 

);

extern int XUnmapSubwindows(

    Display*		 ,
    Window		 

);

extern int XUnmapWindow(

    Display*		 ,
    Window		 

);

extern int XVendorRelease(

    Display*		 

);

extern int XWarpPointer(

    Display*		 ,
    Window		 ,
    Window		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 	     

);

extern int XWidthMMOfScreen(

    Screen*		 

);

extern int XWidthOfScreen(

    Screen*		 

);

extern int XWindowEvent(

    Display*		 ,
    Window		 ,
    long		 ,
    XEvent*		 

);

extern int XWriteBitmapFile(

    Display*		 ,
    const  char*	 ,
    Pixmap		 ,
    unsigned int	 ,
    unsigned int	 ,
    int			 ,
    int			 		     

);

extern int  XSupportsLocale(

    void

);

extern char *XSetLocaleModifiers(

    const  char*	 

);

extern XOM XOpenOM(

    Display*			 ,
    struct _XrmHashBucketRec*	 ,
    const  char*		 ,
    const  char*		 

);

extern int  XCloseOM(

    XOM			 

);

extern char *XSetOMValues(

    XOM			 ,
    ...

);

extern char *XGetOMValues(

    XOM			 ,
    ...

);

extern Display *XDisplayOfOM(

    XOM			 

);

extern char *XLocaleOfOM(

    XOM			 

);

extern XOC XCreateOC(

    XOM			 ,
    ...

);

extern void XDestroyOC(

    XOC			 

);

extern XOM XOMOfOC(

    XOC			 

);

extern char *XSetOCValues(

    XOC			 ,
    ...

);

extern char *XGetOCValues(

    XOC			 ,
    ...

);

extern XFontSet XCreateFontSet(

    Display*		 ,
    const  char*	 ,
    char***		 ,
    int*		 ,
    char**		 

);

extern void XFreeFontSet(

    Display*		 ,
    XFontSet		 

);

extern int XFontsOfFontSet(

    XFontSet		 ,
    XFontStruct***	 ,
    char***		 

);

extern char *XBaseFontNameListOfFontSet(

    XFontSet		 

);

extern char *XLocaleOfFontSet(

    XFontSet		 

);

extern int  XContextDependentDrawing(

    XFontSet		 

);

extern int  XDirectionalDependentDrawing(

    XFontSet		 

);

extern int  XContextualDrawing(

    XFontSet		 

);

extern XFontSetExtents *XExtentsOfFontSet(

    XFontSet		 

);

extern int XmbTextEscapement(

    XFontSet		 ,
    const  char*	 ,
    int			 

);

extern int XwcTextEscapement(

    XFontSet		 ,
    const  wchar_t*	 ,
    int			 

);

extern int XmbTextExtents(

    XFontSet		 ,
    const  char*	 ,
    int			 ,
    XRectangle*		 ,
    XRectangle*		 

);

extern int XwcTextExtents(

    XFontSet		 ,
    const  wchar_t*	 ,
    int			 ,
    XRectangle*		 ,
    XRectangle*		 

);

extern int  XmbTextPerCharExtents(

    XFontSet		 ,
    const  char*	 ,
    int			 ,
    XRectangle*		 ,
    XRectangle*		 ,
    int			 ,
    int*		 ,
    XRectangle*		 ,
    XRectangle*		 

);

extern int  XwcTextPerCharExtents(

    XFontSet		 ,
    const  wchar_t*	 ,
    int			 ,
    XRectangle*		 ,
    XRectangle*		 ,
    int			 ,
    int*		 ,
    XRectangle*		 ,
    XRectangle*		 

);

extern void XmbDrawText(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    XmbTextItem*	 ,
    int			 

);

extern void XwcDrawText(

    Display*		 ,
    Drawable		 ,
    GC			 ,
    int			 ,
    int			 ,
    XwcTextItem*	 ,
    int			 

);

extern void XmbDrawString(

    Display*		 ,
    Drawable		 ,
    XFontSet		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  char*	 ,
    int			 

);

extern void XwcDrawString(

    Display*		 ,
    Drawable		 ,
    XFontSet		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  wchar_t*	 ,
    int			 

);

extern void XmbDrawImageString(

    Display*		 ,
    Drawable		 ,
    XFontSet		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  char*	 ,
    int			 

);

extern void XwcDrawImageString(

    Display*		 ,
    Drawable		 ,
    XFontSet		 ,
    GC			 ,
    int			 ,
    int			 ,
    const  wchar_t*	 ,
    int			 

);

extern XIM XOpenIM(

    Display*			 ,
    struct _XrmHashBucketRec*	 ,
    char*			 ,
    char*			 

);

extern int  XCloseIM(

    XIM  

);

extern char *XGetIMValues(

    XIM  , ...

);

extern char *XSetIMValues(

    XIM  , ...

);

extern Display *XDisplayOfIM(

    XIM  

);

extern char *XLocaleOfIM(

    XIM  

);

extern XIC XCreateIC(

    XIM  , ...

);

extern void XDestroyIC(

    XIC  

);

extern void XSetICFocus(

    XIC  

);

extern void XUnsetICFocus(

    XIC  

);

extern wchar_t *XwcResetIC(

    XIC  

);

extern char *XmbResetIC(

    XIC  

);

extern char *XSetICValues(

    XIC  , ...

);

extern char *XGetICValues(

    XIC  , ...

);

extern XIM XIMOfIC(

    XIC  

);

extern int  XFilterEvent(

    XEvent*	 ,
    Window	 

);

extern int XmbLookupString(

    XIC			 ,
    XKeyPressedEvent*	 ,
    char*		 ,
    int			 ,
    KeySym*		 ,
    int *		 

);

extern int XwcLookupString(

    XIC			 ,
    XKeyPressedEvent*	 ,
    wchar_t*		 ,
    int			 ,
    KeySym*		 ,
    int *		 

);

extern XVaNestedList XVaCreateNestedList(

    int  , ...

);

 

extern int  XRegisterIMInstantiateCallback(

    Display*			 ,
    struct _XrmHashBucketRec*	 ,
    char*			 ,
    char*			 ,
    XIDProc			 ,
    XPointer			 

);

extern int  XUnregisterIMInstantiateCallback(

    Display*			 ,
    struct _XrmHashBucketRec*	 ,
    char*			 ,
    char*			 ,
    XIDProc			 ,
    XPointer			 

);

typedef void (*XConnectionWatchProc)(

    Display*			 ,
    XPointer			 ,
    int				 ,
    int 			 ,	  
    XPointer*			   

);
    

extern int  XInternalConnectionNumbers(

    Display*			 ,
    int**			 ,
    int*			 

);

extern void XProcessInternalConnection(

    Display*			 ,
    int				 

);

extern int  XAddConnectionWatch(

    Display*			 ,
    XConnectionWatchProc	 ,
    XPointer			 

);

extern void XRemoveConnectionWatch(

    Display*			 ,
    XConnectionWatchProc	 ,
    XPointer			 

);

 


# 16 "common.h" 2

# 1 "/usr/X11R6/include/X11/Xutil.h" 1
 
 

 


















































 

 












 



typedef struct {
    	long flags;	 
	int x, y;		 
	int width, height;	 
	int min_width, min_height;
	int max_width, max_height;
    	int width_inc, height_inc;
	struct {
		int x;	 
		int y;	 
	} min_aspect, max_aspect;
	int base_width, base_height;		 
	int win_gravity;			 
} XSizeHints;

 




 












 




typedef struct {
	long flags;	 
	int  input;	 

	int initial_state;	 
	Pixmap icon_pixmap;	 
	Window icon_window; 	 
	int icon_x, icon_y; 	 
	Pixmap icon_mask;	 
	XID window_group;	 
	 
} XWMHints;

 












 




 





			 


 



typedef struct {
    unsigned char *value;		 
    Atom encoding;			 
    int format;				 
    unsigned long nitems;		 
} XTextProperty;





typedef enum {
    XStringStyle,		 
    XCompoundTextStyle,		 
    XTextStyle,			 
    XStdICCTextStyle		 
} XICCEncodingStyle;

typedef struct {
	int min_width, min_height;
	int max_width, max_height;
	int width_inc, height_inc;
} XIconSize;

typedef struct {
	char *res_name;
	char *res_class;
} XClassHint;

 














 


typedef struct _XComposeStatus {
    XPointer compose_ptr;	 
    int chars_matched;		 
} XComposeStatus;

 
























 


typedef struct _XRegion *Region; 

 
 



 

 




typedef struct {
  Visual *visual;
  VisualID visualid;
  int screen;
  int depth;



  int class;

  unsigned long red_mask;
  unsigned long green_mask;
  unsigned long blue_mask;
  int colormap_size;
  int bits_per_rgb;
} XVisualInfo;













 



typedef struct {
	Colormap colormap;
	unsigned long red_max;
	unsigned long red_mult;
	unsigned long green_max;
	unsigned long green_mult;
	unsigned long blue_max;
	unsigned long blue_mult;
	unsigned long base_pixel;
	VisualID visualid;		 
	XID killid;			 
} XStandardColormap;




 







 






 





typedef int XContext;




 

 

extern XClassHint *XAllocClassHint (

    void

);

extern XIconSize *XAllocIconSize (

    void

);

extern XSizeHints *XAllocSizeHints (

    void

);

extern XStandardColormap *XAllocStandardColormap (

    void

);

extern XWMHints *XAllocWMHints (

    void

);

extern int XClipBox(

    Region		 ,
    XRectangle*		 

);

extern Region XCreateRegion(

    void

);

extern char *XDefaultString(

    void

);

extern int XDeleteContext(

    Display*		 ,
    XID			 ,
    XContext		 

);

extern int XDestroyRegion(

    Region		 

);

extern int XEmptyRegion(

    Region		 

);

extern int XEqualRegion(

    Region		 ,
    Region		 

);

extern int XFindContext(

    Display*		 ,
    XID			 ,
    XContext		 ,
    XPointer*		 

);

extern int  XGetClassHint(

    Display*		 ,
    Window		 ,
    XClassHint*		 

);

extern int  XGetIconSizes(

    Display*		 ,
    Window		 ,
    XIconSize**		 ,
    int*		 

);

extern int  XGetNormalHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 

);

extern int  XGetRGBColormaps(

    Display*		 ,
    Window		 ,
    XStandardColormap**  ,
    int*		 ,
    Atom		 

);

extern int  XGetSizeHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 ,
    Atom		 

);

extern int  XGetStandardColormap(

    Display*		 ,
    Window		 ,
    XStandardColormap*	 ,
    Atom		 			    

);

extern int  XGetTextProperty(

    Display*		 ,
    Window		 ,
    XTextProperty*	 ,
    Atom		 

);

extern XVisualInfo *XGetVisualInfo(

    Display*		 ,
    long		 ,
    XVisualInfo*	 ,
    int*		 

);

extern int  XGetWMClientMachine(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern XWMHints *XGetWMHints(

    Display*		 ,
    Window		 		      

);

extern int  XGetWMIconName(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern int  XGetWMName(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern int  XGetWMNormalHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 ,
    long*		  

);

extern int  XGetWMSizeHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 ,
    long*		 ,
    Atom		 

);

extern int  XGetZoomHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 

);

extern int XIntersectRegion(

    Region		 ,
    Region		 ,
    Region		 

);

extern void XConvertCase(

    KeySym		 ,
    KeySym*		 ,
    KeySym*		 

);

extern int XLookupString(

    XKeyEvent*		 ,
    char*		 ,
    int			 ,
    KeySym*		 ,
    XComposeStatus*	 

);

extern int  XMatchVisualInfo(

    Display*		 ,
    int			 ,
    int			 ,
    int			 ,
    XVisualInfo*	 

);

extern int XOffsetRegion(

    Region		 ,
    int			 ,
    int			 

);

extern int  XPointInRegion(

    Region		 ,
    int			 ,
    int			 

);

extern Region XPolygonRegion(

    XPoint*		 ,
    int			 ,
    int			 

);

extern int XRectInRegion(

    Region		 ,
    int			 ,
    int			 ,
    unsigned int	 ,
    unsigned int	 

);

extern int XSaveContext(

    Display*		 ,
    XID			 ,
    XContext		 ,
    const  char*	 

);

extern int XSetClassHint(

    Display*		 ,
    Window		 ,
    XClassHint*		 

);

extern int XSetIconSizes(

    Display*		 ,
    Window		 ,
    XIconSize*		 ,
    int			     

);

extern int XSetNormalHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 

);

extern void XSetRGBColormaps(

    Display*		 ,
    Window		 ,
    XStandardColormap*	 ,
    int			 ,
    Atom		 

);

extern int XSetSizeHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 ,
    Atom		 

);

extern int XSetStandardProperties(

    Display*		 ,
    Window		 ,
    const  char*	 ,
    const  char*	 ,
    Pixmap		 ,
    char**		 ,
    int			 ,
    XSizeHints*		 

);

extern void XSetTextProperty(

    Display*		 ,
    Window		 ,
    XTextProperty*	 ,
    Atom		 

);

extern void XSetWMClientMachine(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern int XSetWMHints(

    Display*		 ,
    Window		 ,
    XWMHints*		 

);

extern void XSetWMIconName(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern void XSetWMName(

    Display*		 ,
    Window		 ,
    XTextProperty*	 

);

extern void XSetWMNormalHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 

);

extern void XSetWMProperties(

    Display*		 ,
    Window		 ,
    XTextProperty*	 ,
    XTextProperty*	 ,
    char**		 ,
    int			 ,
    XSizeHints*		 ,
    XWMHints*		 ,
    XClassHint*		 

);

extern void XmbSetWMProperties(

    Display*		 ,
    Window		 ,
    const  char*	 ,
    const  char*	 ,
    char**		 ,
    int			 ,
    XSizeHints*		 ,
    XWMHints*		 ,
    XClassHint*		 

);

extern void XSetWMSizeHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 ,
    Atom		 

);

extern int XSetRegion(

    Display*		 ,
    GC			 ,
    Region		 

);

extern void XSetStandardColormap(

    Display*		 ,
    Window		 ,
    XStandardColormap*	 ,
    Atom		 

);

extern int XSetZoomHints(

    Display*		 ,
    Window		 ,
    XSizeHints*		 

);

extern int XShrinkRegion(

    Region		 ,
    int			 ,
    int			 

);

extern int  XStringListToTextProperty(

    char**		 ,
    int			 ,
    XTextProperty*	 

);

extern int XSubtractRegion(

    Region		 ,
    Region		 ,
    Region		 

);

extern int XmbTextListToTextProperty(

    Display*		 ,
    char**		 ,
    int			 ,
    XICCEncodingStyle	 ,
    XTextProperty*	 

);

extern int XwcTextListToTextProperty(

    Display*		 ,
    wchar_t**		 ,
    int			 ,
    XICCEncodingStyle	 ,
    XTextProperty*	 

);

extern void XwcFreeStringList(

    wchar_t**		 

);

extern int  XTextPropertyToStringList(

    XTextProperty*	 ,
    char***		 ,
    int*		 

);

extern int XmbTextPropertyToTextList(

    Display*		 ,
    XTextProperty*	 ,
    char***		 ,
    int*		 

);

extern int XwcTextPropertyToTextList(

    Display*		 ,
    XTextProperty*	 ,
    wchar_t***		 ,
    int*		 

);

extern int XUnionRectWithRegion(

    XRectangle*		 ,
    Region		 ,
    Region		 

);

extern int XUnionRegion(

    Region		 ,
    Region		 ,
    Region		 

);

extern int XWMGeometry(

    Display*		 ,
    int			 ,
    const  char*	 ,
    const  char*	 ,
    unsigned int	 ,
    XSizeHints*		 ,
    int*		 ,
    int*		 ,
    int*		 ,
    int*		 ,
    int*		 

);

extern int XXorRegion(

    Region		 ,
    Region		 ,
    Region		 

);

 


# 17 "common.h" 2


typedef struct WRectangle_struct{
	int x, y;
	int w, h;
} WRectangle;

typedef unsigned long  Pixel;

# 1 "obj.h" 1
 






















struct   WObj_struct; typedef struct   WObj_struct   WObj  ;  
struct  WObjDescr_struct; typedef struct  WObjDescr_struct  WObjDescr ; 

extern int  wobj_is(const WObj *obj, const WObjDescr *descr);
extern const void *wobj_cast(const WObj *obj, const WObjDescr *descr);

extern WObjDescr   WObj_objdescr ; struct   WObj_struct  {
	WObjDescr *obj_type;
};


# 26 "common.h" 2

# 1 "config.h" 1
 









# 1 "../version.h" 1

# 11 "config.h" 2



 






















 

 
 
 

 







 




















 




 









# 27 "common.h" 2



# 13 "event.c" 2

# 1 "event.h" 1
 










# 1 "thing.h" 1
 











struct   WThing_struct; typedef struct   WThing_struct   WThing  ;  






















extern void init_thing(WThing *thing);
extern void link_thing(WThing *parent, WThing *child);
 
extern void link_thing_after(WThing *after, WThing *thing);
extern void unlink_thing(WThing *thing);
extern void destroy_subthings(WThing *thing);
extern void destroy_thing(WThing *thing);

extern WThing *next_thing(WThing *first, const WObjDescr *descr);
extern WThing *prev_thing(WThing *first, const WObjDescr *descr);
extern WThing *first_thing(WThing *parent, const WObjDescr *descr);
extern WThing *last_thing(WThing *parent, const WObjDescr *descr);
extern WThing *find_parent(WThing *p, const WObjDescr *descr);
extern WThing *nth_thing(WThing *parent, int n, const WObjDescr *descr);


extern WObjDescr   WThing_objdescr ; struct   WThing_struct  {
	WObj obj;
	int flags;
	WThing *t_parent, *t_children;
	WThing *t_next, *t_prev;
	void *screen;
};



# 12 "event.h" 2

























extern void mainloop();
extern void get_event(XEvent *ev);
extern void get_event_mask(XEvent *ev, long mask);
extern void handle_event(XEvent *ev);

extern void do_grab_kb_ptr(Window win, WThing *thing);
extern void grab_kb_ptr(WThing *thing);
extern void ungrab_kb_ptr();


# 14 "event.c" 2

# 1 "clientwin.h" 1
 











struct   WClientWin_struct; typedef struct   WClientWin_struct   WClientWin  ;  


# 1 "clientwin.h" 1
 






# 84 "clientwin.h"

# 16 "clientwin.h" 2

# 1 "frame.h" 1
 











struct   WFrame_struct; typedef struct   WFrame_struct   WFrame  ;  

# 1 "window.h" 1
 











struct   WWindow_struct; typedef struct   WWindow_struct   WWindow  ;  


# 1 "binding.h" 1
 









# 1 "../libtu/include/libtu/tokenizer.h" 1
 

















































enum{
	TOK_INVALID=0,
	TOK_LONG='l',
	TOK_DOUBLE='d',
	TOK_CHAR='c',
	TOK_STRING='s',
	TOK_IDENT='i',
	TOK_BOOL='b',
	TOK_COMMENT='#',
	TOK_OP='+'
};


enum{



	OP_L_PAR=	'(', OP_R_PAR=	')', OP_L_BRK=	'[', OP_R_BRK=	']',
	OP_L_BRC=	'{', OP_R_BRC=	'}', OP_COMMA=	',', OP_SCOLON=	';',

	OP_PLUS=	'+', OP_MINUS=	'-', OP_MUL=	'*', OP_DIV=	'/',
	OP_MOD=		'%', OP_POW=	'^', OP_OR= 	'|', OP_AND=	'&',
	  OP_NOT=	'!', OP_ASGN=	'=', OP_LT=		'<',
	OP_GT=		'>', OP_DOT=	'.', OP_COLON=	':', OP_QMARK=	'?',
	OP_AT=		'@',
	OP_NEXTLINE='\n',OP_EOF=	-1,
	
	OP_INC=		(( '+' )|(( '+' )<<8)) ,		 OP_DEC=	(( '-' )|(( '-' )<<8)) ,
	OP_LSHIFT=	(( '<' )|(( '<' )<<8)) , 		 OP_RSHIFT=	(( '>' )|(( '>' )<<8)) ,
	OP_AS_INC=	(( '+' )|(( '=' )<<8)) , 		 OP_AS_DEC= (( '-' )|(( '=' )<<8)) ,
	OP_AS_MUL=	(( '*' )|(( '=' )<<8)) , 		 OP_AS_DIV= (( '/' )|(( '=' )<<8)) ,
	OP_AS_MOD=	(( '%' )|(( '=' )<<8)) , 		 OP_AS_POW= (( '^' )|(( '=' )<<8)) ,

 
	OP_EQ=		(( '=' )|(( '=' )<<8)) , 		 OP_NE=		(( '!' )|(( '=' )<<8)) ,
	OP_LE=		(( '<' )|(( '=' )<<8)) , 		 OP_GE=		(( '>' )|(( '=' )<<8)) 
	
 


 

		


};


typedef struct{
	int type;
	int line;
	union{
		int  bval;
		long lval;
		double dval;
		char cval;
		char *sval;
		int opval;
	} u;
} Token;




extern void tok_free(Token*tok);
extern void tok_init(Token*tok);


 


enum{
	TOKZ_IGNORE_NEXTLINE=0x1,
	TOKZ_READ_COMMENTS=0x2,
	TOKZ_PARSER_INDENT_MODE=0x04,
	TOKZ_ERROR_TOLERANT=0x8
};


enum{
	E_TOKZ_UNEXPECTED_EOF=1,
	E_TOKZ_UNEXPECTED_EOL,
	E_TOKZ_EOL_EXPECTED,
	E_TOKZ_INVALID_CHAR,
	E_TOKZ_TOOBIG,
	E_TOKZ_NUMFMT,
	E_TOKZ_NUM_JUNK,
	E_TOKZ_NOTINT,
	E_TOKZ_RANGE,
	E_TOKZ_MULTICHAR,
	
	E_TOKZ_TOKEN_LIMIT,
	E_TOKZ_UNKNOWN_OPTION,
	E_TOKZ_SYNTAX,
	E_TOKZ_INVALID_ARGUMENT,
	E_TOKZ_EOS_EXPECTED,
	E_TOKZ_TOO_FEW_ARGS,
	E_TOKZ_TOO_MANY_ARGS,
	E_TOKZ_MAX_NEST,
	E_TOKZ_IDENTIFIER_EXPECTED,
	
	E_TOKZ_LBRACE_EXPECTED
};


struct _ConfOpt;

typedef struct _Tokenizer_FInfo{
	FILE *file;
	char *name;
	int line;
	int ungetc;
	Token ungettok;
} Tokenizer_FInfo;

typedef struct _Tokenizer{
	FILE *file;
	char *name;
	int line;
	int ungetc;
	Token ungettok;
	
	int flags;
	const struct _ConfOpt **optstack;
	int nest_lvl;
	void *user_data;

	int filestack_n;
	Tokenizer_FInfo *filestack;
	
	char **includepaths;
} Tokenizer;


extern Tokenizer *tokz_open(const char *fname);
extern Tokenizer *tokz_open_file(FILE *file, const char *fname);
extern void tokz_close(Tokenizer *tokz);
extern int  tokz_get_token(Tokenizer *tokz, Token *tok);
extern void tokz_unget_token(Tokenizer *tokz, Token *tok);
extern void tokz_warn_error(const Tokenizer *tokz, int line, int e);
extern void tokz_warn(const Tokenizer *tokz, int line, const char *fmt, ...);

extern int  tokz_pushf(Tokenizer *tokz, const char *fname);
extern int  tokz_pushf_file(Tokenizer *tokz, FILE *file, const char *fname);
extern int  tokz_popf(Tokenizer *tokz);

extern void tokz_set_includepaths(Tokenizer *tokz, char **paths);


# 11 "binding.h" 2



# 1 "function.h" 1
 












struct  WFunction_struct; typedef struct  WFunction_struct  WFunction ; 




enum{
	FUNTAB_MAIN=0,
	FUNTAB_MOVERES=1,
	FUNTAB_INPUT=2
};

	
typedef void WFuncHandler(WThing *thing, WFunction *func,
						  int n, const Token *args);


struct  WFunction_struct {
	WFuncHandler *callhnd;
	WObjDescr *objdescr;
	char *argtypes;
	char *name;
	void *fn;
};


extern WFunction *lookup_func(const char *name, int funtab);
extern int complete_simplemainfunc(char *nam, char ***cp_ret, char **beg);


# 14 "binding.h" 2














struct  WBinding_struct; typedef struct  WBinding_struct  WBinding ; 
struct  WBindmap_struct; typedef struct  WBindmap_struct  WBindmap ; 


struct  WBinding_struct {
	unsigned int  kcb;	 
	unsigned int  state;
	unsigned int  act;
	int  waitrel;
	WBindmap *submap;
	WFunction *func;
	int nargs;
	Token args[3 ];
};


struct  WBindmap_struct {
	int nbindings;
	unsigned int  confdefmod;
	WBinding *bindings;
	WBindmap *parent;
};

extern void init_bindings();
extern WBindmap *create_bindmap();
extern void destroy_bindmap(WBindmap *bindmap);
extern void destroy_binding(WBinding *binding);
extern int  add_binding(WBindmap *bindmap, const WBinding *binding);
extern WBinding *lookup_binding(WBindmap *bindmap, int act, unsigned int  state,
								unsigned int  kcb);
extern void grab_bindings(WBindmap *bindmap, Window win);
extern void call_binding(WBinding *binding, WThing *thing);
extern int unmod(int state, int keycode);
extern int  ismod(int keycode);
extern void update_modmap();


# 16 "window.h" 2

# 1 "split.h" 1
 











struct   WWsSplit_struct; typedef struct   WWsSplit_struct   WWsSplit  ;  
struct  WResizeTmp_struct; typedef struct  WResizeTmp_struct  WResizeTmp ; 

# 1 "window.h" 1
 






# 59 "window.h"

# 16 "split.h" 2


enum WSplitDir{
	HORIZONTAL,
	VERTICAL
};


enum PrimaryNode{
	ANY,
	TOP_OR_LEFT,
	BOTTOM_OR_RIGHT
};


extern WObjDescr   WWsSplit_objdescr ; struct   WWsSplit_struct  {
	WObj obj;
	int dir;
	WRectangle geom;
	int tmpsize, knowsize;
	int res;
	int current;
	WObj *tl, *br;
	WWsSplit *parent;
};


struct  WResizeTmp_struct {
	WObj *startnode;
	int postmp, sizetmp;
	int winpostmp, winsizetmp;
	int dir;
};

extern WWsSplit *create_split(int dir, WObj *tl, WObj *br, WRectangle geom);
extern int tree_do_resize(WObj *node_, int dir, int npos, int nsize);
extern int calcresize_window(WWindow *wwin, int dir, int prim, int nsize,
							 WResizeTmp *tmp);
extern void resize_tmp(const WResizeTmp *tmp);

extern void goto_above(WWindow *wwin);
extern void goto_below(WWindow *wwin);
extern void goto_right(WWindow *wwin);
extern void goto_left(WWindow *wwin);

extern int wwin_size(WWindow *wwin, int dir);
extern int wwin_other_size(WWindow *wwin, int dir);
extern int wwin_pos(WWindow *wwin, int dir);
extern int tree_size(WObj *obj, int dir);
extern int tree_other_size(WObj *obj, int dir);
extern int tree_pos(WObj *obj, int dir);
extern void set_current_wswindow(WWindow *wwin);




# 17 "window.h" 2












extern WObjDescr   WWindow_objdescr ; struct   WWindow_struct  {
	WThing thing;
	int flags;
	Window win;
	WRectangle geom;
	XIC xic;
	WBindmap *bindmap;
	
	WWsSplit *split;
	int min_w, min_h;
	int saved_w, saved_h;
};


extern int  init_window(WWindow *p, Window win, WRectangle geom);
extern void deinit_window(WWindow *win);

extern WThing *find_window(Window win);
extern WThing *find_window_t(Window win, const WObjDescr *descr);

extern void map_window(WWindow *wwin);
extern void unmap_window(WWindow *wwin);
extern void do_map_window(WWindow *wwin);
extern void do_unmap_window(WWindow *wwin);

extern WWindow *window_of(WThing *thing);
extern WWindow *find_window_of(Window win);

extern void focus_window(WWindow *wwin);


# 15 "frame.h" 2

# 1 "client.h" 1
 











struct   WClient_struct; typedef struct   WClient_struct   WClient  ;  


# 1 "clientwin.h" 1
 






# 84 "clientwin.h"

# 16 "client.h" 2

# 1 "screen.h" 1
 











struct   WScreen_struct; typedef struct   WScreen_struct   WScreen  ;  

# 1 "workspace.h" 1
 











struct   WWorkspace_struct; typedef struct   WWorkspace_struct   WWorkspace  ;  




# 1 "screen.h" 1
 






# 60 "screen.h"

# 18 "workspace.h" 2



extern WObjDescr   WWorkspace_objdescr ; struct   WWorkspace_struct  {
	WThing thing;
	char *name;
	WObj *splitree;
};


extern WWorkspace *create_workspace(WScreen *scr, const char *name,
									int  ci);
extern void rename_workspace(WWorkspace *ws, const char *name);
extern void deinit_workspace(WWorkspace *ws);
extern void workspace_remove_child(WWorkspace *ws, WThing *thing);

extern void init_workspaces(WScreen *scr);

extern int  visible_workspace(WWorkspace *ws);
extern int  on_visible_workspace(WThing *thing);
extern int  active_workspace(WWorkspace *ws);
extern int  on_active_workspace(WThing *thing);
extern WWorkspace* workspace_of(WThing *thing);

extern int  do_activate_workspace(WScreen *scr, WWorkspace *ws);
extern void switch_workspace(WWorkspace *ws);
extern int  switch_workspace_nth(WScreen *scr, int num);
extern int  switch_workspace_nth2(int scrnum, int num);
extern void switch_workspace_next(WScreen *scr);
extern void switch_workspace_prev(WScreen *scr);
extern int  switch_workspace_name(const char *name);

extern WWorkspace *lookup_workspace(const char *name);
extern int complete_workspace(char *nam, char ***cp_ret, char **beg);

extern void add_workspace_window(WWorkspace *ws, WWindow *nw);
extern void workspace_remove_window(WWorkspace *ws, WWindow *wwin);
extern int  remove_split(WWorkspace *ws, WWsSplit *split);
extern WWindow *find_current(WWorkspace *ws);


# 15 "screen.h" 2

# 1 "grdata.h" 1
 











struct  WGRData_struct; typedef struct  WGRData_struct  WGRData ; 
struct  WColorGroup_struct; typedef struct  WColorGroup_struct  WColorGroup ; 
struct  WBorder_struct; typedef struct  WBorder_struct  WBorder ; 








struct  WColorGroup_struct {
	Pixel bg, hl, sh, fg;
};


struct  WBorder_struct {
	int tl, br, ipad;
};


struct  WGRData_struct {
	 
	int  bar_inside_frame;
	int spacing;
	
	WColorGroup act_frame_colors, frame_colors;
	WColorGroup act_tab_colors, tab_colors;
	WColorGroup act_tab_sel_colors, tab_sel_colors;
	WColorGroup input_colors;
	Pixel bgcolor, selection_bgcolor, selection_fgcolor;
	
	WBorder frame_border;
	WBorder tab_border;
	WBorder input_border;

	XFontStruct *font, *tab_font;
	
	 
	int bar_h;
	WRectangle client_off, bar_off, border_off;
	
	 
	GC gc;
	GC tab_gc;
	GC xor_gc;
	GC stipple_gc;
	GC copy_gc;
	Pixmap stick_pixmap;
	int stick_pixmap_w;
	int stick_pixmap_h;

	Window moveres_win;
	WRectangle moveres_geom;
	Window tabdrag_win;
	WRectangle tabdrag_geom;
};


# 16 "screen.h" 2












extern WObjDescr   WScreen_objdescr ; struct   WScreen_struct  {
	WWindow root;
	
	int xscr;
	
	Colormap default_cmap;

	int workspace_count;
	WWorkspace *current_workspace;
	int  confsel;
	
	int w_unit, h_unit;
	
	WGRData grdata;
};


extern Window create_simple_window_bg(const WWindow *p,
									  int x, int y, int w, int h,
									  Pixel bg);
extern Window create_simple_window(const WWindow *p,
								   int x, int y, int w, int h);

extern WScreen *preinit_screen(int xscr);
extern void postinit_screen(WScreen *scr);
extern void deinit_screen(WScreen *scr);

extern WScreen *screen_of(const WThing *thing);
extern WGRData *grdata_of(const WThing *thing);
extern Window root_of(const WThing *thing);
extern int  same_screen(const WThing *t1, const WThing *t2);


# 17 "client.h" 2












extern WObjDescr   WClient_objdescr ; struct   WClient_struct  {
	WThing thing;
	int flags;
	
	char *label;
	int label_inst;
	WClient *label_next, *label_prev;
	
	WClient *g_client_next, *g_client_prev;
};


extern WClient *create_client(WScreen *scr);
extern void deinit_client(WClient *client);

extern void client_add_clientwin(WClient *client, WClientWin *cwin);

extern void hide_client(WClient *client);
extern void show_client(WClient *client);
extern void focus_client(WClient *client);
extern void close_client(WClient *client);
extern void close_client_main(WClient *client);
extern void kill_client(WClient *client);

extern void reparent_client(WClient *client, Window win, int x, int y);
extern void fit_client_frame(WClient *client, WFrame *frame);
extern void reparent_fit_client_frame(WClient *client, WFrame *frame);
extern void reconf_client_frame(WClient *client, WFrame *frame);
extern void set_client_frame_id(WClient *client, int id);

extern void client_make_label(WClient *client, int maxw);
extern char* client_full_label(WClient *client);
extern void client_use_label(WClient *client);
extern void client_unuse_label(WClient *client);

extern void client_toggle_tagged(WClient *client);
extern void clear_tags();

extern void goto_client(WClient *client);
extern void goto_previous();
extern int  goto_client_name(const char *cname);

extern WClient* lookup_client(const char *name);
extern int complete_client(char *nam, char ***cp_ret, char **beg);


# 16 "frame.h" 2

# 1 "input.h" 1
 











struct   WInput_struct; typedef struct   WInput_struct   WInput  ;  
struct  WInputFuntab_struct; typedef struct  WInputFuntab_struct  WInputFuntab ; 



extern WObjDescr   WInput_objdescr ; struct   WInput_struct  {
	WWindow win;
	WRectangle max_geom;
};

extern int  init_input(WInput *input, WWindow *parent, WRectangle geom);
extern void deinit_input(WInput *input);

extern void input_resize(WInput *input, WRectangle max_geom);
extern void input_refit(WInput *input);
extern void input_draw(WInput *input, int  complete);
extern void input_cancel(WInput *input);
extern void input_scrollup(WInput *input);
extern void input_scrolldown(WInput *input);


# 17 "frame.h" 2


# 1 "splitwin.h" 1
 













typedef WWindow *WSplitCreate(WScreen *scr, WRectangle geom);
extern WWindow *split_window(WWindow *wwin, int dir, int minsize,
							 WSplitCreate *fn);


# 19 "frame.h" 2




















extern WObjDescr   WFrame_objdescr ; struct   WFrame_struct  {
	WWindow win;
	int flags;
	int frame_id;
	int tab_w;

	int client_count;
	WClient *current_client;
	WInput *current_input;
};


extern WFrame *create_frame(WScreen *scr,
							WRectangle area, int id, int flags);
extern void deinit_frame(WFrame *frame);
extern void destroy_frame(WFrame *frame);
extern void closedestroy(WFrame *frame);
extern void frame_remove_child(WFrame *frame, WThing *thing);

extern int  frame_attach_client(WFrame *frame, WClient *client, int  st);
extern void frame_detach_client(WFrame *frame, WClient *client);
extern void frame_attach_tagged(WFrame *frame);
extern void frame_add_clientwin(WFrame *frame, WClient *client,
								WClientWin *cwin);

extern void frame_switch_client(WFrame *frame, WClient *cwin);
extern void frame_switch_nth(WFrame *frame, int cwinnum);
extern void frame_switch_next(WFrame *frame);
extern void frame_switch_prev(WFrame *frame);

extern void focus_frame(WFrame *frame);
extern void activate_frame(WFrame *frame);
extern void deactivate_frame(WFrame *frame);


extern void set_frame_geom(WFrame *frame, WRectangle geom);
extern void set_frame_pos(WFrame *frame, int x, int y);
extern void set_frame_state(WFrame *frame, int stateflags);

extern void frame_toggle_sticky(WFrame *frame);
extern void frame_toggle_maximize(WFrame *frame, int mask);

extern void frame_bar_geom(const WFrame *frame, WRectangle *geom);
extern void frame_client_geom(const WFrame *frame, WRectangle *geom);

 


extern void frame_recalc_bar(WFrame *frame);

void split_vert(WFrame *frame);
void split_horiz(WFrame *frame);

extern WFrame *find_frame_of(Window win);


# 17 "clientwin.h" 2

















extern WObjDescr   WClientWin_objdescr ; struct   WClientWin_struct  {
	WThing thing;
	
	int flags;
	int state;
	Window win;
	WRectangle geom;

	long event_mask;
	int orig_bw;

	Window transient_for;
	Colormap cmap;

	XSizeHints size_hints;
	char *name;
};
	

extern WClientWin *manage_clientwin(Window win, int mflags);
extern void deinit_clientwin(WClientWin *cwin);
extern void unmap_clientwin(WClientWin *cwin);
extern void destroy_clientwin(WClientWin *cwin);
							  
extern void kill_clientwin(WClientWin *cwin);
extern void close_clientwin(WClientWin *cwin);
							  
extern void hide_clientwin(WClientWin *cwin);
extern void show_clientwin(WClientWin *cwin);
extern void focus_clientwin(WClientWin *cwin);
extern void iconify_clientwin(WClientWin *cwin);
							  
extern void set_clientwin_size(WClientWin *cwin, int w, int h);
extern void clientwin_reconf_at(WClientWin *cwin, int rootx, int rooty);

extern void set_clientwin_name(WClientWin *cwin, char *p);

extern WClientWin *find_clientwin(Window win);

extern void reconf_clientwin(WClientWin *cwin, int rootx, int rooty);
extern void sendconfig_clientwin(WClientWin *cwin);
extern void reparent_clientwin(WClientWin *cwin, Window win, int x, int y);
extern void fit_clientwin_frame(WClientWin *cwin, WFrame *frame);
extern void reparent_fit_clientwin_frame(WClientWin *cwin, WFrame *frame);
extern void reconf_clientwin_frame(WClientWin *cwin, WFrame *frame);
extern void reparent_fit_clientwin(WClientWin *cwin, Window win,
								   WRectangle geom);

extern void get_protocols(WClientWin *cwin);


# 15 "event.c" 2



# 1 "property.h" 1
 









# 1 "/usr/X11R6/include/X11/Xatom.h" 1



 











































































# 11 "property.h" 2





extern int get_property(Display *dpy, Window win, Atom atom, Atom type,
						long len, unsigned char  **p);
extern char *get_string_property(Window win, Atom a, int *nret);
extern void set_string_property(Window win, Atom a, const char *value);
extern int  get_integer_property(Window win, Atom a, int *vret);
extern void set_integer_property(Window win, Atom a, int value);
extern int  get_win_state(Window win, int *state);
extern void set_win_state(Window win, int state);



# 18 "event.c" 2

# 1 "pointer.h" 1
 













struct  WDragHandler_struct; typedef struct  WDragHandler_struct  WDragHandler ; 

enum{
	POINTER_NORMAL,
	POINTER_MENU,
	POINTER_MENU_MOVE
};

typedef void WButtonHandler(WThing *thing, XButtonEvent *ev);
typedef void WMotionHandler(WThing *thing, XMotionEvent *ev, int dx, int dy);

struct  WDragHandler_struct {
	WMotionHandler *motion;
	WButtonHandler *release;
};

extern int  handle_button_press(XButtonEvent *ev);
extern int  handle_button_release(XButtonEvent *ev);
extern void handle_pointer_motion(XMotionEvent *ev);
extern void get_pointer_rootpos(int *xret, int *yret);
extern int  find_window_at(Window rootwin, int x, int y,
						   Window *childret);


# 19 "event.c" 2

# 1 "key.h" 1
 









# 1 "/usr/X11R6/include/X11/keysym.h" 1
 

 















































 









# 1 "/usr/X11R6/include/X11/keysymdef.h" 1
 

 














































 


















 







 






















 

 














 
















 










































 



































































 


















 


















































































































 




# 415 "/usr/X11R6/include/X11/keysymdef.h"


 










































































































































































































 
































































 






























 











































 










 




# 847 "/usr/X11R6/include/X11/keysymdef.h"


 




# 905 "/usr/X11R6/include/X11/keysymdef.h"


 



# 1019 "/usr/X11R6/include/X11/keysymdef.h"


 

















































































 




# 1158 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1190 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1281 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1308 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1356 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1448 "/usr/X11R6/include/X11/keysymdef.h"


 




# 1579 "/usr/X11R6/include/X11/keysymdef.h"

















# 61 "/usr/X11R6/include/X11/keysym.h" 2

# 11 "key.h" 2




extern void handle_keypress(XKeyEvent *ev);

extern void quote_next(WClient *cwin);


# 20 "event.c" 2

# 1 "focus.h" 1
 
















extern void do_set_focus(WThing *thing);
extern void set_focus(WThing *thing);
extern void warp(WWindow *thing);
extern void set_previous(WThing *thing);
extern void protect_previous();
extern void unprotect_previous();


# 21 "event.c" 2

# 1 "cursor.h" 1
 










# 1 "/usr/X11R6/include/X11/cursorfont.h" 1
 
 











































































































# 12 "cursor.h" 2









extern void load_cursors();
extern void change_grab_cursor(int cursor);
extern void set_cursor(Window win, int cursor);
extern Cursor x_cursor(int cursor);


# 22 "event.c" 2

# 1 "signal.h" 1
 














struct  WTimer_struct; typedef struct  WTimer_struct  WTimer ; 

struct  WTimer_struct {
	struct timeval when;
	void (*handler)(WTimer *timer);
	WTimer *next;
};



extern void check_signals();
extern void trap_signals();
extern void set_timer(WTimer *timer, unsigned int  msecs);
extern void reset_timer(WTimer *timer);


# 23 "event.c" 2

# 1 "global.h" 1
 










# 1 "/usr/X11R6/include/X11/Xresource.h" 1
 
 

 


















































 

 









 

 





extern char *Xpermalloc(

    unsigned int	 

);

 





typedef int     XrmQuark, *XrmQuarkList;


typedef char *XrmString;


 
extern XrmQuark XrmStringToQuark(

    const  char* 	 

);

extern XrmQuark XrmPermStringToQuark(

    const  char* 	 

);

 
extern XrmString XrmQuarkToString(

    XrmQuark 		 

);

extern XrmQuark XrmUniqueQuark(

    void

);




 





typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;

extern void XrmStringToQuarkList(

    const  char*	 ,
    XrmQuarkList	 

);

extern void XrmStringToBindingQuarkList(

    const  char*	 ,
    XrmBindingList	 ,
    XrmQuarkList	 

);

 





typedef XrmQuark     XrmName;
typedef XrmQuarkList XrmNameList;




typedef XrmQuark     XrmClass;
typedef XrmQuarkList XrmClassList;






 





typedef XrmQuark     XrmRepresentation;



typedef struct {
    unsigned int    size;
    XPointer	    addr;
} XrmValue, *XrmValuePtr;


 





typedef struct _XrmHashBucketRec *XrmHashBucket;
typedef XrmHashBucket *XrmHashTable;
typedef XrmHashTable XrmSearchList[];
typedef struct _XrmHashBucketRec *XrmDatabase;


extern void XrmDestroyDatabase(

    XrmDatabase		     

);

extern void XrmQPutResource(

    XrmDatabase*	 ,
    XrmBindingList	 ,
    XrmQuarkList	 ,
    XrmRepresentation	 ,
    XrmValue*		 

);

extern void XrmPutResource(

    XrmDatabase*	 ,
    const  char*	 ,
    const  char*	 ,
    XrmValue*		 

);

extern void XrmQPutStringResource(

    XrmDatabase*	 ,
    XrmBindingList       ,
    XrmQuarkList	 ,
    const  char*	 

);

extern void XrmPutStringResource(

    XrmDatabase*	 ,
    const  char*	 ,
    const  char*	 

);

extern void XrmPutLineResource(

    XrmDatabase*	 ,
    const  char*	 

);

extern int  XrmQGetResource(

    XrmDatabase		 ,
    XrmNameList		 ,
    XrmClassList	 ,
    XrmRepresentation*	 ,
    XrmValue*		 

);

extern int  XrmGetResource(

    XrmDatabase		 ,
    const  char*	 ,
    const  char*	 ,
    char**		 ,
    XrmValue*		 

);

extern int  XrmQGetSearchList(

    XrmDatabase		 ,
    XrmNameList		 ,
    XrmClassList	 ,
    XrmSearchList	 ,
    int			 

);

extern int  XrmQGetSearchResource(

    XrmSearchList	 ,
    XrmName		 ,
    XrmClass		 ,
    XrmRepresentation*	 ,
    XrmValue*		 

);

 





extern void XrmSetDatabase(

    Display*		 ,
    XrmDatabase		 

);

extern XrmDatabase XrmGetDatabase(

    Display*		 

);

extern XrmDatabase XrmGetFileDatabase(

    const  char*	 

);

extern int  XrmCombineFileDatabase(

    const  char* 	 ,
    XrmDatabase*	 ,
    int 		 

);

extern XrmDatabase XrmGetStringDatabase(

    const  char*	    

);

extern void XrmPutFileDatabase(

    XrmDatabase		 ,
    const  char*	 

);

extern void XrmMergeDatabases(

    XrmDatabase		 ,
    XrmDatabase*	 

);

extern void XrmCombineDatabase(

    XrmDatabase		 ,
    XrmDatabase*	 ,
    int 		 

);




extern int  XrmEnumerateDatabase(

    XrmDatabase		 ,
    XrmNameList		 ,
    XrmClassList	 ,
    int			 ,
    int  (*)(

	     XrmDatabase*	 ,
	     XrmBindingList	 ,
	     XrmQuarkList	 ,
	     XrmRepresentation*	 ,
	     XrmValue*		 ,
	     XPointer		 

	     )		 ,
    XPointer		 

);

extern char *XrmLocaleOfDatabase(

    XrmDatabase 	 

);


 





typedef enum {
    XrmoptionNoArg,	 
    XrmoptionIsArg,      
    XrmoptionStickyArg,  
    XrmoptionSepArg,     
    XrmoptionResArg,	 
    XrmoptionSkipArg,    
    XrmoptionSkipLine,   
    XrmoptionSkipNArgs	 

} XrmOptionKind;

typedef struct {
    char	    *option;	     
    char	    *specifier;      
    XrmOptionKind   argKind;	     
    XPointer	    value;	     
} XrmOptionDescRec, *XrmOptionDescList;


extern void XrmParseCommand(

    XrmDatabase*	 ,
    XrmOptionDescList	 ,
    int			 ,
    const  char*	 ,
    int*		 ,
    char**		 		     

);

 


 
# 12 "global.h" 2









enum{
	INPUT_NORMAL,
	INPUT_GRAB,
	INPUT_SUBMAPGRAB,
	INPUT_WAITRELEASE
};

enum{
	OPMODE_INIT,
	OPMODE_NORMAL,
	OPMODE_DEINIT
};

struct  WGlobal_struct; typedef struct  WGlobal_struct  WGlobal ; 

struct  WGlobal_struct {
	int argc;
	char **argv;
	
	Display *dpy;
	const char *display;
	int conn;
	
	char *client_id;
	char *state_file;
	
	XContext win_context;
	Atom atom_wm_state;
	Atom atom_wm_change_state;
	Atom atom_wm_protocols;
	Atom atom_wm_delete;
	Atom atom_wm_take_focus;
	Atom atom_wm_colormaps;
	Atom atom_frame_id;
	Atom atom_workspace;
	Atom atom_selection;

	Atom atom_mwm_hints;


	WScreen *screens;

	WScreen *current_screen;
	WWindow *current_wswindow;
	WThing *previous;
	WThing *grab_holder;
	WThing *focus_next;
	int input_mode;
	int opmode;
	int previous_protect;

	Time resize_delay;
	Time dblclick_delay;
	int  opaque_resize;
	
	WClient *client_list;
	
	WBindmap main_bindmap, tab_bindmap, moveres_bindmap, input_bindmap;
};

extern WGlobal wglobal;

extern void deinit();


# 24 "event.c" 2

# 1 "draw.h" 1
 














extern void draw_frame(const WFrame *frame, int  complete);
extern void draw_frame_bar(const WFrame *frame, int  complete);

extern void draw_rubberband(WScreen *scr, WRectangle rect,
							int  vertical);
extern void set_moveres_pos(WScreen *scr, int x, int y);
extern void set_moveres_size(WScreen *scr, int w, int h);

extern void draw_tabdrag(const WClient *client);

extern int  alloc_color(WScreen *scr, const char *name, Pixel *cret);
extern void setup_color_group(WScreen *scr, WColorGroup *cg,
							  Pixel hl, Pixel sh, Pixel bg, Pixel fg);

extern void preinit_graphics(WScreen *scr);
extern void postinit_graphics(WScreen *scr);


# 25 "event.c" 2


# 1 "selection.h" 1
 











void send_selection(XSelectionRequestEvent *ev);
void receive_selection(XSelectionEvent *ev);
void clear_selection();
void set_selection(const char *p, int n);
void request_selection(Window win);


# 27 "event.c" 2


# 1 "sizehint.h" 1
 











void correct_size(int *wp, int *hp, XSizeHints *hints, int  min);
void get_clientwin_size_hints(WClientWin *cwin);


# 29 "event.c" 2

# 1 "readfds.h" 1








struct  InputFd_struct; typedef struct  InputFd_struct  InputFd ; 
	
struct  InputFd_struct {
	int fd;
	void (*process_input_fn)(int fd);
	InputFd *next, *prev;
};

extern void register_input_fd(int fd, void (*process_input_fn)(int fd));
extern void unregister_input_fd(int fd);
extern void set_input_fds(fd_set *rfds, int *nfds);
extern void check_input_fds(fd_set *rfds);


# 30 "event.c" 2


 


static void handle_expose(const XExposeEvent *ev);
static void handle_map_request(const XMapRequestEvent *ev);
static void handle_configure_request(XConfigureRequestEvent *ev);
static void handle_enter_window(XEvent *ev);
static void handle_unmap_notify(const XUnmapEvent *ev);
static void handle_destroy_notify(const XDestroyWindowEvent *ev);
static void handle_client_message(const XClientMessageEvent *ev);
static void handle_focus_in(const XFocusChangeEvent *ev);
static void handle_focus_out(const XFocusChangeEvent *ev);
static void handle_property(const XPropertyEvent *ev);
static void handle_colormap_notify(const XColormapEvent *ev);
static void pointer_handler(XEvent *ev);
static void keyboard_handler(XEvent *ev);


 


 


void get_event(XEvent *ev)
{
	fd_set rfds;
	int nfds=wglobal.conn;
	
	while(1){
		check_signals();
	
		if((((_XPrivDisplay) wglobal.dpy )->qlen) >0){
			XNextEvent(wglobal.dpy, ev);
			return;
		}
		
		XFlush(wglobal.dpy);

		do {	int __d0, __d1;	__asm__ __volatile__ ("cld; rep; stosl"	: "=c" (__d0), "=D" (__d1)	: "a" (0), "0" (sizeof (__fd_set)	/ sizeof (__fd_mask)),	"1" (& ((   &rfds   )->__fds_bits) [0])	: "memory");	} while (0)  ;
		__asm__ __volatile__ ("btsl %1,%0"	: "=m" (((   (  &rfds )  )->__fds_bits) [((  ( wglobal.conn )  ) / (8 * sizeof (__fd_mask)) ) ])	: "r" (((int) ( ( wglobal.conn ) )) % (8 * sizeof (__fd_mask)) )	: "cc","memory")  ;

 		set_input_fds(&rfds, &nfds);
 		
 		if(select(nfds+1, &rfds, ((void *)0) , ((void *)0) , ((void *)0) )>0){
 			check_input_fds(&rfds);
 			if(( 	({register char __result;	__asm__ __volatile__ ("btl %1,%2 ; setcb %b0"	: "=q" (__result)	: "r" (((int) ( ( wglobal.conn ) )) % (8 * sizeof (__fd_mask)) ),	"m" (((   (  &rfds )  )->__fds_bits) [((  ( wglobal.conn )  ) / (8 * sizeof (__fd_mask)) ) ])	: "cc");	__result; }))  ){
 				XNextEvent(wglobal.dpy, ev);
 				return;
 			}
		}
	}
}


void get_event_mask(XEvent *ev, long mask)
{
	fd_set rfds;
	int  found= 0 ;
	
	while(1){
		check_signals();
		
		while(XCheckMaskEvent(wglobal.dpy, mask, ev)){
			if(ev->type!= 6 )
				return;
			found= 1 ;
		}

		if(found)
			return;
		
		do {	int __d0, __d1;	__asm__ __volatile__ ("cld; rep; stosl"	: "=c" (__d0), "=D" (__d1)	: "a" (0), "0" (sizeof (__fd_set)	/ sizeof (__fd_mask)),	"1" (& ((   &rfds   )->__fds_bits) [0])	: "memory");	} while (0)  ;
		__asm__ __volatile__ ("btsl %1,%0"	: "=m" (((   (  &rfds )  )->__fds_bits) [((  ( wglobal.conn )  ) / (8 * sizeof (__fd_mask)) ) ])	: "r" (((int) ( ( wglobal.conn ) )) % (8 * sizeof (__fd_mask)) )	: "cc","memory")  ;

		select(wglobal.conn+1, &rfds, ((void *)0) , ((void *)0) , ((void *)0) );
	}
}



 





 








static void skip_focusenter()
{
	XEvent ev;
	XEvent tmp;
	
	tmp.type= 0L ;
	
	if(wglobal.current_wswindow== ((void *)0)  ||
	   !on_active_workspace((WThing*)wglobal.current_wswindow))
		return;

	XSync(wglobal.dpy, 0 );
	
	while(XCheckMaskEvent(wglobal.dpy,
						  (1L<<4) | (1L<<21) , &ev)){
	







		
		 


		if(ev.type== 9  && wglobal.focus_next== ((void *)0) )
			memcpy(&tmp, &ev, sizeof(tmp));
	}
	
	if(tmp.type!= 0L )
		handle_focus_in(&(tmp.xfocus));
}


void handle_event(XEvent *ev)
{
	switch(ev->type){
	case  20  : 
		handle_map_request(&(ev->xmaprequest));
		break;
	case  23  : 
		handle_configure_request(&(ev->xconfigurerequest));
		break;
	case  18  : 
		handle_unmap_notify(&(ev->xunmap));
		break;
	case  17  : 
		handle_destroy_notify(&(ev->xdestroywindow));
		break;
	case  33  : 
		handle_client_message(&(ev->xclient));
		break;
	case  28  : 
		handle_property(&(ev->xproperty));
		break;
	case  9  : 
		handle_focus_in(&(ev->xfocus));
		break;
	case  10  : 
		handle_focus_out(&(ev->xfocus));
		break;
	case  7  : 
		handle_enter_window(ev);
		break;
	case  12  : 		
		handle_expose(&(ev->xexpose));
		break;
	case  2  : 
		if(wglobal.input_mode!=INPUT_WAITRELEASE)
			keyboard_handler(ev);
		break;
	case  3  : 
		if(wglobal.input_mode==INPUT_WAITRELEASE){
			if(unmod(ev->xkey.state, ev->xkey.keycode)==0)
				ungrab_kb_ptr();
			skip_focusenter();
		}
		break;
	case  4  : 
		pointer_handler(ev);
		break;
	case  32  : 
		handle_colormap_notify(&(ev->xcolormap));
		break;
	case  34  : 
		XRefreshKeyboardMapping(&(ev->xmapping));
		update_modmap();
		break;
	case  29  : 
		clear_selection();
		break;
	case  31  : 
		receive_selection(&(ev->xselection));
		break;
	case  30  : 
		send_selection(&(ev->xselectionrequest));
		break;
	}
}


void mainloop()
{
	XEvent ev;
	
	for(;;){
		get_event(&ev);
		handle_event(&ev);
		
		XSync(wglobal.dpy, 0 );

		if(wglobal.focus_next!= ((void *)0) ){
			while(XCheckMaskEvent(wglobal.dpy, (1L<<4) | (1L<<21) ,  &ev ))  ; ;
			do_set_focus(wglobal.focus_next);
			wglobal.focus_next= ((void *)0) ;
		}
	}
}


 


 


static void handle_map_request(const XMapRequestEvent *ev)
{
	WThing *thing;
	
	thing= find_window( ev->window ) ;
	
	if(thing!= ((void *)0) )
		return;
	
	manage_clientwin(ev->window, 0);
}


static void handle_unmap_notify(const XUnmapEvent *ev)
{
	WClientWin *cwin;

	 
	if(ev->event!=ev->window && ev->send_event!= 1 )
		return;

	cwin=find_clientwin(ev->window);
	
	if(cwin== ((void *)0) )
		return;

	unmap_clientwin(cwin);
}


static void handle_destroy_notify(const XDestroyWindowEvent *ev)
{
	WClientWin *cwin;

	cwin=find_clientwin(ev->window);
	
	if(cwin== ((void *)0) )
		return;
	
	destroy_clientwin(cwin);
}


 


 


static void refit(WClientWin *cwin)
{
	WFrame *frame;
	
	frame= (  WFrame *)find_parent((WThing*) cwin , &    WFrame_objdescr ) ;
	
	if(frame!= ((void *)0) )
		fit_clientwin_frame(cwin, frame);
}


static void handle_configure_request(XConfigureRequestEvent *ev)
{
	WClientWin *cwin;
	XWindowChanges wc;
	
	cwin=find_clientwin(ev->window);
	
	if(cwin== ((void *)0) ){
		wc.border_width=ev->border_width;
		wc.sibling= 0L ;
		wc.stack_mode=ev->detail;
		wc.x=ev->x;
		wc.y=ev->y;
		wc.width=ev->width;
		wc.height=ev->height;
		XConfigureWindow(wglobal.dpy, ev->window, ev->value_mask, &wc);
		return;
	}

	if((ev->value_mask&((1<<2) | (1<<3) | (1<<4) ))!=0){
		 


		if(ev->value_mask& (1<<2) )
			cwin->geom.w=ev->width;
		if(ev->value_mask& (1<<3) )
			cwin->geom.h=ev->height;
		if(ev->value_mask& (1<<4) )
			cwin->orig_bw=ev->border_width;
		refit(cwin);
	}else{
		sendconfig_clientwin(cwin);
	}
}


static void handle_client_message(const XClientMessageEvent *ev)
{
	WClientWin *cwin;

	if(ev->message_type!=wglobal.atom_wm_change_state)
		return;
	
	cwin=find_clientwin(ev->window);

	if(cwin== ((void *)0) )
		return;
	
	if(ev->format==32 && ev->data.l[0]== 3 ){
		if(cwin->state== 1 )
			iconify_clientwin(cwin);
	}
}


static void handle_property(const XPropertyEvent *ev)
{
	WClientWin *cwin;
	WClient *client;
	WScreen *scr;
	
	cwin=find_clientwin(ev->window);
	
	if(cwin== ((void *)0) )
		return;
	
	switch(ev->atom){
	case ((Atom) 40) :
		get_clientwin_size_hints(cwin);
		 
		return;
	
	case ((Atom) 39) :
		 


		set_clientwin_name(cwin, get_string_property(cwin->win, ((Atom) 39) ,
													 ((void *)0) ));
		break;
		
	 





	case ((Atom) 68) :
		 
		 

		
	default:
		if(ev->atom==wglobal.atom_wm_protocols)
			get_protocols(cwin);
		return;
	}
	
	 


}


 


 


static void install_cmap(WScreen *scr, Colormap cmap)
{
	if(cmap== 0L )
		cmap=scr->default_cmap;
	
	XInstallColormap(wglobal.dpy, cmap);
}


static int  focused_clientwin(WClientWin *cwin)
{
	WClient *client= (  WClient *)find_parent((WThing*) cwin , &    WClient_objdescr ) ;
	WFrame *frame;
	
	if(client== ((void *)0)  || (  WClientWin *)last_thing((WThing*) client , &    WClientWin_objdescr ) !=cwin)
		return 0 ;
	
	frame= (  WFrame *)find_parent((WThing*) client , &    WFrame_objdescr ) ;
	
	return (frame!= ((void *)0)  && frame->current_client==client &&
			(wglobal.current_wswindow==(WWindow*)( frame )) );
}


static void set_cmap(WClientWin *cwin, Colormap cmap)
{
	cwin->cmap=cmap;
	if(focused_clientwin(cwin))
		install_cmap(screen_of((WThing*) cwin ) , cwin->cmap);
}


static void handle_colormap_notify(const XColormapEvent *ev)
{
	WClientWin *cwin;

	if(!ev->new)
		return;

	cwin=find_clientwin(ev->window);

	if(cwin!= ((void *)0) )
		set_cmap(cwin, ev->colormap);
}


 


 


static void redraw_wwin(WWindow *wwin)
{
	if(wobj_is((WObj*)  wwin  , &      WFrame_objdescr )  )
		draw_frame((WFrame*)wwin, 0 );
	else if(wobj_is((WObj*)  wwin  , &      WInput_objdescr )  )
		input_draw((WInput*)wwin, 0 );
}


static void handle_expose(const XExposeEvent *ev)
{
	WWindow *wwin;
	WScreen *scr;
	XEvent tmp;
	
	while(XCheckWindowEvent(wglobal.dpy, ev->window, (1L<<15) , &tmp))
		 ;

	wwin= (  WWindow *)find_window_t( ev->window , &    WWindow_objdescr ) ;

	if(wwin!= ((void *)0) ){
		redraw_wwin(wwin);
		return;
	}
	
	if(wglobal.grab_holder== ((void *)0)  || ! wobj_is((WObj*)  wglobal.grab_holder  , &      WClient_objdescr )  )
		return;
	
	for( scr =wglobal.screens;  scr != ((void *)0) ;  scr =(WScreen*)(((WThing*)( scr ))->t_next)) {
		if(scr->grdata.tabdrag_win==ev->window){
			draw_tabdrag((WClient*)wglobal.grab_holder);
			break;
		}
	}
}


 


 


static void handle_enter_window(XEvent *ev)
{
	XEnterWindowEvent *eev=&(ev->xcrossing);
	WThing *thing= ((void *)0) ;
	int  inf= 1 ;
	
	do{
		if(eev->detail!= 2 ) 
			inf= 0 ;
	}while(XCheckMaskEvent(wglobal.dpy, (1L<<4) , ev));

	if(inf)
		return;

	if(eev->window==eev->root){
		 
		return;
	}
	
	thing= (  WThing *)find_window_t( eev->window , &    WThing_objdescr ) ;
	
	if(thing== ((void *)0) )
		return;

	set_previous(thing);
	set_focus(thing);
}


static void activate(WWindow *wwin)
{
	set_current_wswindow(wwin);
	if(wobj_is((WObj*)  wwin  , &      WFrame_objdescr )  )
		activate_frame((WFrame*)wwin);
}


static void deactivate(WWindow *wwin)
{
	wglobal.current_wswindow= ((void *)0) ;
	if(wobj_is((WObj*)  wwin  , &      WFrame_objdescr )  )
		deactivate_frame((WFrame*)wwin);
}


static void restore_focus(WScreen *scr)
{
	WWorkspace *ws=scr->current_workspace;
	WWindow *wwin;
	
	if(ws== ((void *)0) )
		return;
	
	wwin=find_current(ws);
	if(wwin== ((void *)0) )
		return;
	
	set_focus((WThing*)wwin);
	
}
 

static void handle_focus_in(const XFocusChangeEvent *ev)
{
	WThing *thing;
	WWindow *wwin;
	WScreen *scr;
	Colormap cmap= 0L ;

	if(ev->mode== 1 )
		return;
	
	thing= (  WThing *)find_window_t( ev->window , &    WThing_objdescr ) ;
	
	if(thing== ((void *)0) )
		return;

	 
	scr= screen_of((WThing*) thing ) ;
	wglobal.current_screen=scr;
	
    if(ev->window==scr->root.win){
		if(ev->detail!= 2 )
			restore_focus(scr);
		return;
	}
	
	 
	if(wobj_is((WObj*)  thing  , &      WClientWin_objdescr )  )
		cmap=((WClientWin*)thing)->cmap;
	
	install_cmap(scr, cmap);

	 
	if(wobj_is((WObj*)  thing  , &      WWindow_objdescr )  ){
		wwin=(WWindow*)thing;
		if(wwin->xic!= ((void *)0) )
			XSetICFocus(wwin->xic);
	}
	
	wwin=window_of(thing);
	
	if(wglobal.current_wswindow==wwin)
		return;
	
	if(wglobal.current_wswindow!= ((void *)0) )
		deactivate(wglobal.current_wswindow);

	if(wwin!= ((void *)0) )
		activate(wwin);
}


static void handle_focus_out(const XFocusChangeEvent *ev)
{
	WWindow *wwin;

	 







	wwin= (  WWindow *)find_window_t( ev->window , &    WWindow_objdescr ) ;
	
	if(wwin== ((void *)0) )
		return;
	
	if(wwin->xic!= ((void *)0) )
		XUnsetICFocus(wwin->xic);
}


 


 


void do_grab_kb_ptr(Window win, WThing *thing)
{
	wglobal.grab_holder=thing;
	wglobal.input_mode=INPUT_GRAB;
	
	XSelectInput(wglobal.dpy, win, ((1L<<20) | (1L<<23) | (1L<<2) | (1L<<3) | (1L<<22) | (1L<<0) | (1L<<21) | (1L<<4) ) &~(1L<<21) );
	XGrabPointer(wglobal.dpy, win, 1 , ((1L<<2) | (1L<<3) |	(1L<<13) ) ,
				 1 , 1 , win,
				 x_cursor(0 ), 0L );
	XGrabKeyboard(wglobal.dpy, win, 0 , 1 ,
				  1 , 0L );
	XSelectInput(wglobal.dpy, win, ((1L<<20) | (1L<<23) | (1L<<2) | (1L<<3) | (1L<<22) | (1L<<0) | (1L<<21) | (1L<<4) ) );
}


void grab_kb_ptr(WThing *thing)
{
	do_grab_kb_ptr(root_of((WThing*) thing ) , thing);
}


void ungrab_kb_ptr()
{
	XUngrabKeyboard(wglobal.dpy, 0L );
	XUngrabPointer(wglobal.dpy, 0L );
	
	wglobal.grab_holder= ((void *)0) ;
	wglobal.input_mode=INPUT_NORMAL;
}





	
static void pointer_handler(XEvent *ev)
{
	WThing *t;
	
	if(!handle_button_press(&(ev->xbutton)))
		return;

	while(wglobal.input_mode!=INPUT_NORMAL){
		XFlush(wglobal.dpy);
		get_event_mask(ev, (((1L<<2) | (1L<<3) |	(1L<<13) ) | (1L<<15) | (1L<<0) | (1L<<1) | (1L<<4) | (1L<<21) ) );
		
		switch(ev->type){
		case  5  : 
			if(handle_button_release(&(ev->xbutton)))
				ungrab_kb_ptr();
			break;
		case  6  : 
			handle_pointer_motion(&(ev->xmotion));
			break;
		case  12  : 		
			handle_expose(&(ev->xexpose));
			break;
		}
	}
}


static void keyboard_handler(XEvent *ev)
{
	handle_keypress(&(ev->xkey));
	
	while(wglobal.input_mode!=INPUT_NORMAL &&
		  wglobal.input_mode!=INPUT_WAITRELEASE){
		XFlush(wglobal.dpy);
		get_event_mask(ev, (((1L<<2) | (1L<<3) |	(1L<<13) ) | (1L<<15) | (1L<<0) | (1L<<1) | (1L<<4) | (1L<<21) ) );
		
		switch(ev->type){
		case  12  : 
			handle_expose(&(ev->xexpose));
			break;
		case  2  : 
			handle_keypress(&(ev->xkey));
			break;
		}
	}
	
	skip_focusenter();
}


 
