public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: "Rob Smallshire" <rob@mve.com>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c++/7700: Inner class scopting not working correctly for function prototype matching
Date: Fri, 23 Aug 2002 07:06:00 -0000	[thread overview]
Message-ID: <20020823135602.27492.qmail@sources.redhat.com> (raw)

The following reply was made to PR c++/7700; it has been noted by GNATS.

From: "Rob Smallshire" <rob@mve.com>
To: <rob@mve.com>, <gcc-gnats@gcc.gnu.org>, <gcc-prs@gcc.gnu.org>,
   <gcc-bugs@gcc.gnu.org>, <nobody@gcc.gnu.org>
Cc:  
Subject: Re: c++/7700: Inner class scopting not working correctly for function prototype matching
Date: Fri, 23 Aug 2002 14:50:56 +0100

 This is a multi-part message in MIME format.
 
 ------=_NextPart_000_0004_01C24AB4.7CD7C780
 Content-Type: text/plain;
 	charset="iso-8859-1"
 Content-Transfer-Encoding: 7bit
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
 r=7700
 
 I attempted to attach a file to this web-submitted bug report but the Submit
 Form button on the web page only seemed to work when there was no file
 attached - otherwise I got a Page Not Found error.
 
 Anyway, here is the file I intended to attach which recreates the problem
 
 
 
 
 ------=_NextPart_000_0004_01C24AB4.7CD7C780
 Content-Type: application/octet-stream;
 	name="main.ii"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment;
 	filename="main.ii"
 
 # 1 "main.cxx"=0A=
 # 1 "<built-in>"=0A=
 # 1 "<command line>"=0A=
 # 1 "main.cxx"=0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/inc/nmove_prolog.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/inc/basic_types.h" 1=0A=
 # 344 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A=
 typedef char Int8;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef short int Int16;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int Int32;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef Int32 Int;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long long int Int64;=0A=
 # 376 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A=
 typedef unsigned char UInt8;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned short int UInt16;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned int UInt32;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef UInt32 UInt;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long long int UInt64;=0A=
 # 408 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A=
 typedef float Float32;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef Float32 Float;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef double Float64;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long double Float80;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef char Char;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned char UChar;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned char Byte;=0A=
 # 6 "/homes/rob/dev/products/nmove/main/inc/nmove_prolog.h" 2=0A=
 # 3 "main.cxx" 2=0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 1=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
 # 36 "/usr/include/assert.h" 3=0A=
 # 1 "/usr/include/features.h" 1 3=0A=
 # 291 "/usr/include/features.h" 3=0A=
 # 1 "/usr/include/sys/cdefs.h" 1 3=0A=
 # 292 "/usr/include/features.h" 2 3=0A=
 # 320 "/usr/include/features.h" 3=0A=
 # 1 "/usr/include/gnu/stubs.h" 1 3=0A=
 # 321 "/usr/include/features.h" 2 3=0A=
 # 37 "/usr/include/assert.h" 2 3=0A=
 # 65 "/usr/include/assert.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern void __assert_fail (__const char *__assertion, __const char =
 *__file,=0A=
                            unsigned int __line, __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 extern void __assert_perror_fail (int __errnum, __const char *__file,=0A=
                                   unsigned int __line,=0A=
                                   __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __assert (const char *__assertion, const char *__file, int =
 __line)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 }=0A=
 # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nfig.h" 1=0A=
 # 81 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nfig.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nfig/i686_Linux-2.4.18-5smp_g++-3.1.0/CGAL/compiler_config.h" 1=0A=
 # 82 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nfig.h" 2=0A=
 # 7 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h"=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/iostream" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/iostream" 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3=0A=
 # 34 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 1 =
 3=0A=
 # 35 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/ostream" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/ostream" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/ios" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/ios" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 3=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stringfwd.h" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/bits/stringfwd.h" 3=0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<class _CharT>=0A=
     struct char_traits;=0A=
 =0A=
   template<> struct char_traits<char>;=0A=
 =0A=
   template<> struct char_traits<wchar_t>;=0A=
 =0A=
 =0A=
   template<typename _Alloc>=0A=
     class allocator;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT>,=0A=
            typename _Alloc =3D allocator<_CharT> >=0A=
     class basic_string;=0A=
 =0A=
   typedef basic_string<char> string;=0A=
   typedef basic_string<wchar_t> wstring;=0A=
 }=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cstdio" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cstddef" 1 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/cstddef" 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 147 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A=
 typedef int ptrdiff_t;=0A=
 # 201 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A=
 typedef unsigned int size_t;=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/cstddef" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using ::ptrdiff_t;=0A=
   using ::size_t;=0A=
 }=0A=
 # 51 "/usr/local/gcc3.1/include/g++-v3/cstdio" 2 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 1 3=0A=
 # 39 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 44 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/bits/types.h" 1 3=0A=
 # 29 "/usr/include/bits/types.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 30 "/usr/include/bits/types.h" 2 3=0A=
 =0A=
 =0A=
 typedef unsigned char __u_char;=0A=
 typedef unsigned short __u_short;=0A=
 typedef unsigned int __u_int;=0A=
 typedef unsigned long __u_long;=0A=
 =0A=
 __extension__ typedef unsigned long long int __u_quad_t;=0A=
 __extension__ typedef long long int __quad_t;=0A=
 # 49 "/usr/include/bits/types.h" 3=0A=
 typedef signed char __int8_t;=0A=
 typedef unsigned char __uint8_t;=0A=
 typedef signed short int __int16_t;=0A=
 typedef unsigned short int __uint16_t;=0A=
 typedef signed int __int32_t;=0A=
 typedef unsigned int __uint32_t;=0A=
 =0A=
 __extension__ typedef signed long long int __int64_t;=0A=
 __extension__ typedef unsigned long long int __uint64_t;=0A=
 =0A=
 typedef __quad_t *__qaddr_t;=0A=
 =0A=
 typedef __u_quad_t __dev_t;=0A=
 typedef __u_int __uid_t;=0A=
 typedef __u_int __gid_t;=0A=
 typedef __u_long __ino_t;=0A=
 typedef __u_int __mode_t;=0A=
 typedef __u_int __nlink_t;=0A=
 typedef long int __off_t;=0A=
 typedef __quad_t __loff_t;=0A=
 typedef int __pid_t;=0A=
 typedef int __ssize_t;=0A=
 typedef __u_long __rlim_t;=0A=
 typedef __u_quad_t __rlim64_t;=0A=
 typedef __u_int __id_t;=0A=
 =0A=
 typedef struct=0A=
   {=0A=
     int __val[2];=0A=
   } __fsid_t;=0A=
 =0A=
 =0A=
 typedef int __daddr_t;=0A=
 typedef char *__caddr_t;=0A=
 typedef long int __time_t;=0A=
 typedef unsigned int __useconds_t;=0A=
 typedef long int __suseconds_t;=0A=
 typedef long int __swblk_t;=0A=
 =0A=
 typedef long int __clock_t;=0A=
 =0A=
 =0A=
 typedef int __clockid_t;=0A=
 =0A=
 =0A=
 typedef int __timer_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int __key_t;=0A=
 =0A=
 =0A=
 typedef unsigned short int __ipc_pid_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef long int __blksize_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long int __blkcnt_t;=0A=
 typedef __quad_t __blkcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_long __fsblkcnt_t;=0A=
 typedef __u_quad_t __fsblkcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_long __fsfilcnt_t;=0A=
 typedef __u_quad_t __fsfilcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_quad_t __ino64_t;=0A=
 =0A=
 =0A=
 typedef __loff_t __off64_t;=0A=
 =0A=
 =0A=
 typedef long int __t_scalar_t;=0A=
 typedef unsigned long int __t_uscalar_t;=0A=
 =0A=
 =0A=
 typedef int __intptr_t;=0A=
 =0A=
 =0A=
 typedef unsigned int __socklen_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/pthreadtypes.h" 1 3=0A=
 # 23 "/usr/include/bits/pthreadtypes.h" 3=0A=
 # 1 "/usr/include/bits/sched.h" 1 3=0A=
 # 68 "/usr/include/bits/sched.h" 3=0A=
 struct __sched_param=0A=
   {=0A=
     int __sched_priority;=0A=
   };=0A=
 # 24 "/usr/include/bits/pthreadtypes.h" 2 3=0A=
 =0A=
 =0A=
 struct _pthread_fastlock=0A=
 {=0A=
   long int __status;=0A=
   int __spinlock;=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 typedef struct _pthread_descr_struct *_pthread_descr;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct __pthread_attr_s=0A=
 {=0A=
   int __detachstate;=0A=
   int __schedpolicy;=0A=
   struct __sched_param __schedparam;=0A=
   int __inheritsched;=0A=
   int __scope;=0A=
   size_t __guardsize;=0A=
   int __stackaddr_set;=0A=
   void *__stackaddr;=0A=
   size_t __stacksize;=0A=
 } pthread_attr_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   struct _pthread_fastlock __c_lock;=0A=
   _pthread_descr __c_waiting;=0A=
 } pthread_cond_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __dummy;=0A=
 } pthread_condattr_t;=0A=
 =0A=
 =0A=
 typedef unsigned int pthread_key_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __m_reserved;=0A=
   int __m_count;=0A=
   _pthread_descr __m_owner;=0A=
   int __m_kind;=0A=
   struct _pthread_fastlock __m_lock;=0A=
 } pthread_mutex_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __mutexkind;=0A=
 } pthread_mutexattr_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef int pthread_once_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct _pthread_rwlock_t=0A=
 {=0A=
   struct _pthread_fastlock __rw_lock;=0A=
   int __rw_readers;=0A=
   _pthread_descr __rw_writer;=0A=
   _pthread_descr __rw_read_waiting;=0A=
   _pthread_descr __rw_write_waiting;=0A=
   int __rw_kind;=0A=
   int __rw_pshared;=0A=
 } pthread_rwlock_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __lockkind;=0A=
   int __pshared;=0A=
 } pthread_rwlockattr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef volatile int pthread_spinlock_t;=0A=
 =0A=
 =0A=
 typedef struct {=0A=
   struct _pthread_fastlock __ba_lock;=0A=
   int __ba_required;=0A=
   int __ba_present;=0A=
   _pthread_descr __ba_waiting;=0A=
 } pthread_barrier_t;=0A=
 =0A=
 =0A=
 typedef struct {=0A=
   int __pshared;=0A=
 } pthread_barrierattr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long int pthread_t;=0A=
 # 144 "/usr/include/bits/types.h" 2 3=0A=
 # 46 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A=
 # 54 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 typedef struct _IO_FILE FILE;=0A=
 # 64 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 typedef struct _IO_FILE __FILE;=0A=
 # 74 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 # 1 "/usr/include/libio.h" 1 3=0A=
 # 32 "/usr/include/libio.h" 3=0A=
 # 1 "/usr/include/_G_config.h" 1 3=0A=
 # 14 "/usr/include/_G_config.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 321 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A=
 typedef unsigned int wint_t;=0A=
 # 15 "/usr/include/_G_config.h" 2 3=0A=
 # 24 "/usr/include/_G_config.h" 3=0A=
 # 1 "/usr/include/wchar.h" 1 3=0A=
 # 48 "/usr/include/wchar.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 49 "/usr/include/wchar.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/bits/wchar.h" 1 3=0A=
 # 51 "/usr/include/wchar.h" 2 3=0A=
 # 67 "/usr/include/wchar.h" 3=0A=
 typedef struct=0A=
 {=0A=
   int __count;=0A=
   union=0A=
   {=0A=
     wint_t __wch;=0A=
     char __wchb[4];=0A=
   } __value;=0A=
 } __mbstate_t;=0A=
 # 25 "/usr/include/_G_config.h" 2 3=0A=
 =0A=
 typedef struct=0A=
 {=0A=
   __off_t __pos;=0A=
   __mbstate_t __state;=0A=
 } _G_fpos_t;=0A=
 typedef struct=0A=
 {=0A=
   __off64_t __pos;=0A=
   __mbstate_t __state;=0A=
 } _G_fpos64_t;=0A=
 # 44 "/usr/include/_G_config.h" 3=0A=
 # 1 "/usr/include/gconv.h" 1 3=0A=
 # 28 "/usr/include/gconv.h" 3=0A=
 # 1 "/usr/include/wchar.h" 1 3=0A=
 # 48 "/usr/include/wchar.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 49 "/usr/include/wchar.h" 2 3=0A=
 # 29 "/usr/include/gconv.h" 2 3=0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 32 "/usr/include/gconv.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   __GCONV_OK =3D 0,=0A=
   __GCONV_NOCONV,=0A=
   __GCONV_NODB,=0A=
   __GCONV_NOMEM,=0A=
 =0A=
   __GCONV_EMPTY_INPUT,=0A=
   __GCONV_FULL_OUTPUT,=0A=
   __GCONV_ILLEGAL_INPUT,=0A=
   __GCONV_INCOMPLETE_INPUT,=0A=
 =0A=
   __GCONV_ILLEGAL_DESCRIPTOR,=0A=
   __GCONV_INTERNAL_ERROR=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   __GCONV_IS_LAST =3D 0x0001,=0A=
   __GCONV_IGNORE_ERRORS =3D 0x0002=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 struct __gconv_step;=0A=
 struct __gconv_step_data;=0A=
 struct __gconv_loaded_object;=0A=
 struct __gconv_trans_data;=0A=
 =0A=
 =0A=
 =0A=
 typedef int (*__gconv_fct) (struct __gconv_step *, struct =
 __gconv_step_data *,=0A=
                             __const unsigned char **, __const unsigned =
 char *,=0A=
                             unsigned char **, size_t *, int, int);=0A=
 =0A=
 =0A=
 typedef int (*__gconv_init_fct) (struct __gconv_step *);=0A=
 typedef void (*__gconv_end_fct) (struct __gconv_step *);=0A=
 =0A=
 =0A=
 =0A=
 typedef int (*__gconv_trans_fct) (struct __gconv_step *,=0A=
                                   struct __gconv_step_data *, void *,=0A=
                                   __const unsigned char *,=0A=
                                   __const unsigned char **,=0A=
                                   __const unsigned char *, unsigned char =
 **,=0A=
                                   size_t *);=0A=
 =0A=
 =0A=
 typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char =
 *,=0A=
                                           __const unsigned char *,=0A=
                                           unsigned char *, unsigned char =
 *);=0A=
 =0A=
 =0A=
 typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,=0A=
                                         size_t *);=0A=
 =0A=
 =0A=
 typedef int (*__gconv_trans_init_fct) (void **, const char *);=0A=
 typedef void (*__gconv_trans_end_fct) (void *);=0A=
 =0A=
 struct __gconv_trans_data=0A=
 {=0A=
 =0A=
   __gconv_trans_fct __trans_fct;=0A=
   __gconv_trans_context_fct __trans_context_fct;=0A=
   __gconv_trans_end_fct __trans_end_fct;=0A=
   void *__data;=0A=
   struct __gconv_trans_data *__next;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 struct __gconv_step=0A=
 {=0A=
   struct __gconv_loaded_object *__shlib_handle;=0A=
   __const char *__modname;=0A=
 =0A=
   int __counter;=0A=
 =0A=
   char *__from_name;=0A=
   char *__to_name;=0A=
 =0A=
   __gconv_fct __fct;=0A=
   __gconv_init_fct __init_fct;=0A=
   __gconv_end_fct __end_fct;=0A=
 =0A=
 =0A=
 =0A=
   int __min_needed_from;=0A=
   int __max_needed_from;=0A=
   int __min_needed_to;=0A=
   int __max_needed_to;=0A=
 =0A=
 =0A=
   int __stateful;=0A=
 =0A=
   void *__data;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 struct __gconv_step_data=0A=
 {=0A=
   unsigned char *__outbuf;=0A=
   unsigned char *__outbufend;=0A=
 =0A=
 =0A=
 =0A=
   int __flags;=0A=
 =0A=
 =0A=
 =0A=
   int __invocation_counter;=0A=
 =0A=
 =0A=
 =0A=
   int __internal_use;=0A=
 =0A=
   __mbstate_t *__statep;=0A=
   __mbstate_t __state;=0A=
 =0A=
 =0A=
 =0A=
   struct __gconv_trans_data *__trans;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 typedef struct __gconv_info=0A=
 {=0A=
   size_t __nsteps;=0A=
   struct __gconv_step *__steps;=0A=
   __extension__ struct __gconv_step_data __data [];=0A=
 } *__gconv_t;=0A=
 # 45 "/usr/include/_G_config.h" 2 3=0A=
 typedef union=0A=
 {=0A=
   struct __gconv_info __cd;=0A=
   struct=0A=
   {=0A=
     struct __gconv_info __cd;=0A=
     struct __gconv_step_data __data;=0A=
   } __combined;=0A=
 } _G_iconv_t;=0A=
 =0A=
 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));=0A=
 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));=0A=
 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));=0A=
 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));=0A=
 # 33 "/usr/include/libio.h" 2 3=0A=
 # 53 "/usr/include/libio.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 1 =
 3=0A=
 # 43 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 3=0A=
 typedef __builtin_va_list __gnuc_va_list;=0A=
 # 54 "/usr/include/libio.h" 2 3=0A=
 # 160 "/usr/include/libio.h" 3=0A=
 struct _IO_jump_t; struct _IO_FILE;=0A=
 # 170 "/usr/include/libio.h" 3=0A=
 typedef void _IO_lock_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _IO_marker {=0A=
   struct _IO_marker *_next;=0A=
   struct _IO_FILE *_sbuf;=0A=
 =0A=
 =0A=
 =0A=
   int _pos;=0A=
 # 193 "/usr/include/libio.h" 3=0A=
 };=0A=
 =0A=
 =0A=
 enum __codecvt_result=0A=
 {=0A=
   __codecvt_ok,=0A=
   __codecvt_partial,=0A=
   __codecvt_error,=0A=
   __codecvt_noconv=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _IO_codecvt=0A=
 {=0A=
   void (*__codecvt_destr) (struct _IO_codecvt *);=0A=
   enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *,=0A=
                                              __mbstate_t *,=0A=
                                              const wchar_t *,=0A=
                                              const wchar_t *,=0A=
                                              const wchar_t **, char *,=0A=
                                              char *, char **);=0A=
   enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *,=0A=
                                                  __mbstate_t *, char *,=0A=
                                                  char *, char **);=0A=
   enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *,=0A=
                                             __mbstate_t *,=0A=
                                             const char *, const char *,=0A=
                                             const char **, wchar_t *,=0A=
                                             wchar_t *, wchar_t **);=0A=
   int (*__codecvt_do_encoding) (struct _IO_codecvt *);=0A=
   int (*__codecvt_do_always_noconv) (struct _IO_codecvt *);=0A=
   int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *,=0A=
                               const char *, const char *, size_t);=0A=
   int (*__codecvt_do_max_length) (struct _IO_codecvt *);=0A=
 =0A=
   _G_iconv_t __cd_in;=0A=
   _G_iconv_t __cd_out;=0A=
 };=0A=
 =0A=
 =0A=
 struct _IO_wide_data=0A=
 {=0A=
   wchar_t *_IO_read_ptr;=0A=
   wchar_t *_IO_read_end;=0A=
   wchar_t *_IO_read_base;=0A=
   wchar_t *_IO_write_base;=0A=
   wchar_t *_IO_write_ptr;=0A=
   wchar_t *_IO_write_end;=0A=
   wchar_t *_IO_buf_base;=0A=
   wchar_t *_IO_buf_end;=0A=
 =0A=
   wchar_t *_IO_save_base;=0A=
   wchar_t *_IO_backup_base;=0A=
 =0A=
   wchar_t *_IO_save_end;=0A=
 =0A=
   __mbstate_t _IO_state;=0A=
   __mbstate_t _IO_last_state;=0A=
   struct _IO_codecvt _codecvt;=0A=
 =0A=
   wchar_t _shortbuf[1];=0A=
 =0A=
   struct _IO_jump_t *_wide_vtable;=0A=
 };=0A=
 =0A=
 =0A=
 struct _IO_FILE {=0A=
   int _flags;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   char* _IO_read_ptr;=0A=
   char* _IO_read_end;=0A=
   char* _IO_read_base;=0A=
   char* _IO_write_base;=0A=
   char* _IO_write_ptr;=0A=
   char* _IO_write_end;=0A=
   char* _IO_buf_base;=0A=
   char* _IO_buf_end;=0A=
 =0A=
   char *_IO_save_base;=0A=
   char *_IO_backup_base;=0A=
   char *_IO_save_end;=0A=
 =0A=
   struct _IO_marker *_markers;=0A=
 =0A=
   struct _IO_FILE *_chain;=0A=
 =0A=
   int _fileno;=0A=
   int _blksize;=0A=
   __off_t _old_offset;=0A=
 =0A=
 =0A=
 =0A=
   unsigned short _cur_column;=0A=
   signed char _vtable_offset;=0A=
   char _shortbuf[1];=0A=
 =0A=
 =0A=
 =0A=
   _IO_lock_t *_lock;=0A=
 # 305 "/usr/include/libio.h" 3=0A=
   __off64_t _offset;=0A=
 =0A=
 =0A=
   struct _IO_codecvt *_codecvt;=0A=
   struct _IO_wide_data *_wide_data;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   int _mode;=0A=
 =0A=
   char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _IO_FILE_plus;=0A=
 =0A=
 extern struct _IO_FILE_plus _IO_2_1_stdin_;=0A=
 extern struct _IO_FILE_plus _IO_2_1_stdout_;=0A=
 extern struct _IO_FILE_plus _IO_2_1_stderr_;=0A=
 # 344 "/usr/include/libio.h" 3=0A=
 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t =
 __nbytes);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,=0A=
                                  size_t __n);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);=0A=
 =0A=
 =0A=
 typedef int __io_close_fn (void *__cookie);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __io_read_fn cookie_read_function_t;=0A=
 typedef __io_write_fn cookie_write_function_t;=0A=
 typedef __io_seek_fn cookie_seek_function_t;=0A=
 typedef __io_close_fn cookie_close_function_t;=0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   __io_read_fn *read;=0A=
   __io_write_fn *write;=0A=
   __io_seek_fn *seek;=0A=
   __io_close_fn *close;=0A=
 } _IO_cookie_io_functions_t;=0A=
 typedef _IO_cookie_io_functions_t cookie_io_functions_t;=0A=
 =0A=
 struct _IO_cookie_file;=0A=
 =0A=
 =0A=
 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int =
 __read_write,=0A=
                              void *__cookie, _IO_cookie_io_functions_t =
 __fns);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern int __underflow (_IO_FILE *) throw ();=0A=
 extern int __uflow (_IO_FILE *) throw ();=0A=
 extern int __overflow (_IO_FILE *, int) throw ();=0A=
 extern wint_t __wunderflow (_IO_FILE *) throw ();=0A=
 extern wint_t __wuflow (_IO_FILE *) throw ();=0A=
 extern wint_t __woverflow (_IO_FILE *, wint_t) throw ();=0A=
 # 426 "/usr/include/libio.h" 3=0A=
 extern int _IO_getc (_IO_FILE *__fp) throw ();=0A=
 extern int _IO_putc (int __c, _IO_FILE *__fp) throw ();=0A=
 extern int _IO_feof (_IO_FILE *__fp) throw ();=0A=
 extern int _IO_ferror (_IO_FILE *__fp) throw ();=0A=
 =0A=
 extern int _IO_peekc_locked (_IO_FILE *__fp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void _IO_flockfile (_IO_FILE *) throw ();=0A=
 extern void _IO_funlockfile (_IO_FILE *) throw ();=0A=
 extern int _IO_ftrylockfile (_IO_FILE *) throw ();=0A=
 # 456 "/usr/include/libio.h" 3=0A=
 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,=0A=
                         __gnuc_va_list, int *__restrict) throw ();=0A=
 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,=0A=
                          __gnuc_va_list) throw ();=0A=
 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw ();=0A=
 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw ();=0A=
 =0A=
 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw ();=0A=
 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw ();=0A=
 =0A=
 extern void _IO_free_backup_area (_IO_FILE *) throw ();=0A=
 =0A=
 =0A=
 extern wint_t _IO_getwc (_IO_FILE *__fp) throw ();=0A=
 extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) throw ();=0A=
 extern int _IO_fwide (_IO_FILE *__fp, int __mode) throw ();=0A=
 # 505 "/usr/include/libio.h" 3=0A=
 extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * =
 __restrict,=0A=
                          __gnuc_va_list, int *__restrict) throw ();=0A=
 extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t =
 *__restrict,=0A=
                           __gnuc_va_list) throw ();=0A=
 extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t) throw ();=0A=
 extern void _IO_free_wbackup_area (_IO_FILE *) throw ();=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 75 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __gnuc_va_list __not_va_list__;=0A=
 # 89 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 typedef _G_fpos_t fpos_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef _G_fpos64_t fpos64_t;=0A=
 # 138 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 # 1 "/usr/include/bits/stdio_lim.h" 1 3=0A=
 # 139 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern FILE *stdin;=0A=
 extern FILE *stdout;=0A=
 extern FILE *stderr;=0A=
 # 153 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern int remove (__const char *__filename) throw ();=0A=
 =0A=
 extern int rename (__const char *__old, __const char *__new) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *tmpfile (void) throw ();=0A=
 # 169 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern FILE *tmpfile64 (void) throw ();=0A=
 =0A=
 =0A=
 extern char *tmpnam (char *__s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *tmpnam_r (char *__s) throw ();=0A=
 # 189 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern char *tempnam (__const char *__dir, __const char *__pfx)=0A=
      throw () __attribute__ ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fclose (FILE *__stream) throw ();=0A=
 =0A=
 extern int fflush (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fflush_unlocked (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fcloseall (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *fopen (__const char *__restrict __filename,=0A=
                     __const char *__restrict __modes) throw ();=0A=
 =0A=
 extern FILE *freopen (__const char *__restrict __filename,=0A=
                       __const char *__restrict __modes,=0A=
                       FILE *__restrict __stream) throw ();=0A=
 # 233 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern FILE *fopen64 (__const char *__restrict __filename,=0A=
                       __const char *__restrict __modes) throw ();=0A=
 extern FILE *freopen64 (__const char *__restrict __filename,=0A=
                         __const char *__restrict __modes,=0A=
                         FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *fdopen (int __fd, __const char *__modes) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *fopencookie (void *__restrict __magic_cookie,=0A=
                           __const char *__restrict __modes,=0A=
                           _IO_cookie_io_functions_t __io_funcs) throw ();=0A=
 =0A=
 =0A=
 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *open_memstream (char **__restrict __bufloc,=0A=
                              size_t *__restrict __sizeloc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,=0A=
                     int __modes, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,=0A=
                        size_t __size) throw ();=0A=
 =0A=
 =0A=
 extern void setlinebuf (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fprintf (FILE *__restrict __stream,=0A=
                     __const char *__restrict __format, ...) throw ();=0A=
 =0A=
 extern int printf (__const char *__restrict __format, ...) throw ();=0A=
 =0A=
 extern int sprintf (char *__restrict __s,=0A=
                     __const char *__restrict __format, ...) throw ();=0A=
 =0A=
 =0A=
 extern int vfprintf (FILE *__restrict __s, __const char *__restrict =
 __format,=0A=
                      __gnuc_va_list __arg) throw ();=0A=
 =0A=
 extern int vprintf (__const char *__restrict __format, __gnuc_va_list =
 __arg)=0A=
      throw ();=0A=
 =0A=
 extern int vsprintf (char *__restrict __s, __const char *__restrict =
 __format,=0A=
                      __gnuc_va_list __arg) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int snprintf (char *__restrict __s, size_t __maxlen,=0A=
                      __const char *__restrict __format, ...)=0A=
      throw () __attribute__ ((__format__ (__printf__, 3, 4)));=0A=
 =0A=
 extern int vsnprintf (char *__restrict __s, size_t __maxlen,=0A=
                       __const char *__restrict __format, __gnuc_va_list =
 __arg)=0A=
      throw () __attribute__ ((__format__ (__printf__, 3, 0)));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int vasprintf (char **__restrict __ptr, __const char *__restrict =
 __f,=0A=
                       __gnuc_va_list __arg)=0A=
      throw () __attribute__ ((__format__ (__printf__, 2, 0)));=0A=
 extern int __asprintf (char **__restrict __ptr,=0A=
                        __const char *__restrict __fmt, ...)=0A=
      throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A=
 extern int asprintf (char **__restrict __ptr,=0A=
                      __const char *__restrict __fmt, ...)=0A=
      throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A=
 =0A=
 =0A=
 extern int vdprintf (int __fd, __const char *__restrict __fmt,=0A=
                      __gnuc_va_list __arg)=0A=
      throw () __attribute__ ((__format__ (__printf__, 2, 0)));=0A=
 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)=0A=
      throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fscanf (FILE *__restrict __stream,=0A=
                    __const char *__restrict __format, ...) throw ();=0A=
 =0A=
 extern int scanf (__const char *__restrict __format, ...) throw ();=0A=
 =0A=
 extern int sscanf (__const char *__restrict __s,=0A=
                    __const char *__restrict __format, ...) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int vfscanf (FILE *__restrict __s, __const char *__restrict =
 __format,=0A=
                     __gnuc_va_list __arg)=0A=
      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));=0A=
 =0A=
 =0A=
 extern int vscanf (__const char *__restrict __format, __gnuc_va_list =
 __arg)=0A=
      throw () __attribute__ ((__format__ (__scanf__, 1, 0)));=0A=
 =0A=
 =0A=
 extern int vsscanf (__const char *__restrict __s,=0A=
                     __const char *__restrict __format, __gnuc_va_list =
 __arg)=0A=
      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fgetc (FILE *__stream) throw ();=0A=
 extern int getc (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern int getchar (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getc_unlocked (FILE *__stream) throw ();=0A=
 extern int getchar_unlocked (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fgetc_unlocked (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fputc (int __c, FILE *__stream) throw ();=0A=
 extern int putc (int __c, FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern int putchar (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fputc_unlocked (int __c, FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int putc_unlocked (int __c, FILE *__stream) throw ();=0A=
 extern int putchar_unlocked (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getw (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern int putw (int __w, FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict =
 __stream)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *fgets_unlocked (char *__restrict __s, int __n,=0A=
                              FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *gets (char *__s) throw ();=0A=
 # 437 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern __ssize_t __getdelim (char **__restrict __lineptr,=0A=
                                size_t *__restrict __n, int __delimiter,=0A=
                                FILE *__restrict __stream) throw ();=0A=
 extern __ssize_t getdelim (char **__restrict __lineptr,=0A=
                              size_t *__restrict __n, int __delimiter,=0A=
                              FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 extern __ssize_t getline (char **__restrict __lineptr,=0A=
                             size_t *__restrict __n,=0A=
                             FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fputs (__const char *__restrict __s, FILE *__restrict =
 __stream)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fputs_unlocked (__const char *__restrict __s,=0A=
                            FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int puts (__const char *__s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ungetc (int __c, FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t fread (void *__restrict __ptr, size_t __size,=0A=
                      size_t __n, FILE *__restrict __stream) throw ();=0A=
 =0A=
 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,=0A=
                       size_t __n, FILE *__restrict __s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,=0A=
                               size_t __n, FILE *__restrict __stream) =
 throw ();=0A=
 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t =
 __size,=0A=
                                size_t __n, FILE *__restrict __stream) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fseek (FILE *__stream, long int __off, int __whence) throw ();=0A=
 =0A=
 extern long int ftell (FILE *__stream) throw ();=0A=
 =0A=
 extern void rewind (FILE *__stream) throw ();=0A=
 # 500 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern int fseeko (FILE *__stream, __off_t __off, int __whence) throw ();=0A=
 =0A=
 extern __off_t ftello (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)=0A=
      throw ();=0A=
 =0A=
 extern int fsetpos (FILE *__stream, __const fpos_t *__pos) throw ();=0A=
 # 534 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) =
 throw ();=0A=
 extern __off64_t ftello64 (FILE *__stream) throw ();=0A=
 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict =
 __pos)=0A=
      throw ();=0A=
 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void clearerr (FILE *__stream) throw ();=0A=
 =0A=
 extern int feof (FILE *__stream) throw ();=0A=
 =0A=
 extern int ferror (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void clearerr_unlocked (FILE *__stream) throw ();=0A=
 extern int feof_unlocked (FILE *__stream) throw ();=0A=
 extern int ferror_unlocked (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void perror (__const char *__s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int sys_nerr;=0A=
 extern __const char *__const sys_errlist[];=0A=
 =0A=
 =0A=
 extern int _sys_nerr;=0A=
 extern __const char *__const _sys_errlist[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fileno (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fileno_unlocked (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern FILE *popen (__const char *__command, __const char *__modes) =
 throw ();=0A=
 =0A=
 =0A=
 extern int pclose (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *ctermid (char *__s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *cuserid (char *__s) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct obstack;=0A=
 =0A=
 =0A=
 extern int obstack_printf (struct obstack *__restrict __obstack,=0A=
                            __const char *__restrict __format, ...) throw =
 ();=0A=
 extern int obstack_vprintf (struct obstack *__restrict __obstack,=0A=
                             __const char *__restrict __format,=0A=
                             __gnuc_va_list __args) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void flockfile (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ftrylockfile (FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern void funlockfile (FILE *__stream) throw ();=0A=
 # 644 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A=
 }=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/cstdio" 2 3=0A=
 # 97 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A=
 namespace std=0A=
 {=0A=
   using ::FILE;=0A=
   using ::fpos_t;=0A=
 =0A=
   using ::clearerr;=0A=
   using ::fclose;=0A=
   using ::feof;=0A=
   using ::ferror;=0A=
   using ::fflush;=0A=
   using ::fgetc;=0A=
   using ::fgetpos;=0A=
   using ::fgets;=0A=
   using ::fopen;=0A=
   using ::fprintf;=0A=
   using ::fputc;=0A=
   using ::fputs;=0A=
   using ::fread;=0A=
   using ::freopen;=0A=
   using ::fscanf;=0A=
   using ::fseek;=0A=
   using ::fsetpos;=0A=
   using ::ftell;=0A=
   using ::fwrite;=0A=
   using ::getc;=0A=
   using ::getchar;=0A=
   using ::gets;=0A=
   using ::perror;=0A=
   using ::printf;=0A=
   using ::putc;=0A=
   using ::putchar;=0A=
   using ::puts;=0A=
   using ::remove;=0A=
   using ::rename;=0A=
   using ::rewind;=0A=
   using ::scanf;=0A=
   using ::setbuf;=0A=
   using ::setvbuf;=0A=
   using ::sprintf;=0A=
   using ::sscanf;=0A=
   using ::tmpfile;=0A=
   using ::tmpnam;=0A=
   using ::ungetc;=0A=
   using ::vfprintf;=0A=
   using ::vprintf;=0A=
   using ::vsprintf;=0A=
 }=0A=
 # 153 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A=
 namespace __gnu_cxx=0A=
 {=0A=
   using ::snprintf;=0A=
   using ::vfscanf;=0A=
   using ::vscanf;=0A=
   using ::vsnprintf;=0A=
   using ::vsscanf;=0A=
 }=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using __gnu_cxx::snprintf;=0A=
   using __gnu_cxx::vfscanf;=0A=
   using __gnu_cxx::vscanf;=0A=
   using __gnu_cxx::vsnprintf;=0A=
   using __gnu_cxx::vsscanf;=0A=
 }=0A=
 # 36 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 =
 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 1 3=0A=
 # 98 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" =
 1 3=0A=
 # 37 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" =
 3=0A=
 # 1 "/usr/include/pthread.h" 1 3=0A=
 # 20 "/usr/include/pthread.h" 3=0A=
 # 1 "/usr/include/sched.h" 1 3=0A=
 # 29 "/usr/include/sched.h" 3=0A=
 # 1 "/usr/include/time.h" 1 3=0A=
 # 106 "/usr/include/time.h" 3=0A=
 struct timespec=0A=
   {=0A=
     __time_t tv_sec;=0A=
     long int tv_nsec;=0A=
   };=0A=
 # 30 "/usr/include/sched.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/sched.h" 1 3=0A=
 # 47 "/usr/include/bits/sched.h" 3=0A=
 struct sched_param=0A=
   {=0A=
     int __sched_priority;=0A=
   };=0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 extern int clone (int (*__fn) (void *__arg), void *__child_stack,=0A=
                   int __flags, void *__arg) throw ();=0A=
 =0A=
 =0A=
 }=0A=
 # 33 "/usr/include/sched.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern int sched_setparam (__pid_t __pid, __const struct sched_param =
 *__param)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) =
 throw ();=0A=
 =0A=
 =0A=
 extern int sched_setscheduler (__pid_t __pid, int __policy,=0A=
                                __const struct sched_param *__param) =
 throw ();=0A=
 =0A=
 =0A=
 extern int sched_getscheduler (__pid_t __pid) throw ();=0A=
 =0A=
 =0A=
 extern int sched_yield (void) throw ();=0A=
 =0A=
 =0A=
 extern int sched_get_priority_max (int __algorithm) throw ();=0A=
 =0A=
 =0A=
 extern int sched_get_priority_min (int __algorithm) throw ();=0A=
 =0A=
 =0A=
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) =
 throw ();=0A=
 =0A=
 }=0A=
 # 21 "/usr/include/pthread.h" 2 3=0A=
 # 1 "/usr/include/time.h" 1 3=0A=
 # 30 "/usr/include/time.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 39 "/usr/include/time.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/time.h" 1 3=0A=
 # 43 "/usr/include/time.h" 2 3=0A=
 # 59 "/usr/include/time.h" 3=0A=
 typedef __clock_t clock_t;=0A=
 # 70 "/usr/include/time.h" 3=0A=
 typedef __time_t time_t;=0A=
 # 82 "/usr/include/time.h" 3=0A=
 typedef __clockid_t clockid_t;=0A=
 # 94 "/usr/include/time.h" 3=0A=
 typedef __timer_t timer_t;=0A=
 # 118 "/usr/include/time.h" 3=0A=
 struct tm=0A=
 {=0A=
   int tm_sec;=0A=
   int tm_min;=0A=
   int tm_hour;=0A=
   int tm_mday;=0A=
   int tm_mon;=0A=
   int tm_year;=0A=
   int tm_wday;=0A=
   int tm_yday;=0A=
   int tm_isdst;=0A=
 =0A=
 =0A=
   long int tm_gmtoff;=0A=
   __const char *tm_zone;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct itimerspec=0A=
   {=0A=
     struct timespec it_interval;=0A=
     struct timespec it_value;=0A=
   };=0A=
 =0A=
 =0A=
 struct sigevent;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __pid_t pid_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern clock_t clock (void) throw ();=0A=
 =0A=
 =0A=
 extern time_t time (time_t *__timer) throw ();=0A=
 =0A=
 =0A=
 extern double difftime (time_t __time1, time_t __time0)=0A=
      throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern time_t mktime (struct tm *__tp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strftime (char *__restrict __s, size_t __maxsize,=0A=
                         __const char *__restrict __format,=0A=
                         __const struct tm *__restrict __tp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strptime (__const char *__restrict __s,=0A=
                        __const char *__restrict __fmt, struct tm *__tp)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern struct tm *gmtime (__const time_t *__timer) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern struct tm *localtime (__const time_t *__timer) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern struct tm *gmtime_r (__const time_t *__restrict __timer,=0A=
                             struct tm *__restrict __tp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern struct tm *localtime_r (__const time_t *__restrict __timer,=0A=
                                struct tm *__restrict __tp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *asctime (__const struct tm *__tp) throw ();=0A=
 =0A=
 =0A=
 extern char *ctime (__const time_t *__timer) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *asctime_r (__const struct tm *__restrict __tp,=0A=
                         char *__restrict __buf) throw ();=0A=
 =0A=
 =0A=
 extern char *ctime_r (__const time_t *__restrict __timer,=0A=
                       char *__restrict __buf) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *__tzname[2];=0A=
 extern int __daylight;=0A=
 extern long int __timezone;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *tzname[2];=0A=
 =0A=
 =0A=
 =0A=
 extern void tzset (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int daylight;=0A=
 extern long int timezone;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int stime (__const time_t *__when) throw ();=0A=
 # 271 "/usr/include/time.h" 3=0A=
 extern time_t timegm (struct tm *__tp) throw ();=0A=
 =0A=
 =0A=
 extern time_t timelocal (struct tm *__tp) throw ();=0A=
 =0A=
 =0A=
 extern int dysize (int __year) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int nanosleep (__const struct timespec *__requested_time,=0A=
                       struct timespec *__remaining) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) =
 throw ();=0A=
 =0A=
 =0A=
 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) =
 throw ();=0A=
 =0A=
 =0A=
 extern int clock_settime (clockid_t __clock_id, __const struct timespec =
 *__tp)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int clock_nanosleep (clockid_t __clock_id, int __flags,=0A=
                             __const struct timespec *__req,=0A=
                             struct timespec *__rem) throw ();=0A=
 =0A=
 =0A=
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int timer_create (clockid_t __clock_id,=0A=
                          struct sigevent *__restrict __evp,=0A=
                          timer_t *__restrict __timerid) throw ();=0A=
 =0A=
 =0A=
 extern int timer_delete (timer_t __timerid) throw ();=0A=
 =0A=
 =0A=
 extern int timer_settime (timer_t __timerid, int __flags,=0A=
                           __const struct itimerspec *__restrict __value,=0A=
                           struct itimerspec *__restrict __ovalue) throw =
 ();=0A=
 =0A=
 =0A=
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int timer_getoverrun (timer_t __timerid) throw ();=0A=
 # 342 "/usr/include/time.h" 3=0A=
 extern int getdate_err;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern struct tm *getdate (__const char *__string) throw ();=0A=
 # 357 "/usr/include/time.h" 3=0A=
 extern int getdate_r (__const char *__restrict __string,=0A=
                       struct tm *__restrict __resbufp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 22 "/usr/include/pthread.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/signal.h" 1 3=0A=
 # 31 "/usr/include/signal.h" 3=0A=
 extern "C" {=0A=
 =0A=
 # 1 "/usr/include/bits/sigset.h" 1 3=0A=
 # 23 "/usr/include/bits/sigset.h" 3=0A=
 typedef int __sig_atomic_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
   {=0A=
     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];=0A=
   } __sigset_t;=0A=
 # 34 "/usr/include/signal.h" 2 3=0A=
 # 48 "/usr/include/signal.h" 3=0A=
 typedef __sigset_t sigset_t;=0A=
 # 371 "/usr/include/signal.h" 3=0A=
 }=0A=
 # 25 "/usr/include/pthread.h" 2 3=0A=
 # 1 "/usr/include/bits/pthreadtypes.h" 1 3=0A=
 # 26 "/usr/include/pthread.h" 2 3=0A=
 # 1 "/usr/include/bits/initspin.h" 1 3=0A=
 # 27 "/usr/include/pthread.h" 2 3=0A=
 =0A=
 =0A=
 extern "C" {=0A=
 # 59 "/usr/include/pthread.h" 3=0A=
 enum=0A=
 {=0A=
   PTHREAD_CREATE_JOINABLE,=0A=
 =0A=
   PTHREAD_CREATE_DETACHED=0A=
 =0A=
 };=0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_INHERIT_SCHED,=0A=
 =0A=
   PTHREAD_EXPLICIT_SCHED=0A=
 =0A=
 };=0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_SCOPE_SYSTEM,=0A=
 =0A=
   PTHREAD_SCOPE_PROCESS=0A=
 =0A=
 };=0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_MUTEX_TIMED_NP,=0A=
   PTHREAD_MUTEX_RECURSIVE_NP,=0A=
   PTHREAD_MUTEX_ERRORCHECK_NP,=0A=
   PTHREAD_MUTEX_ADAPTIVE_NP=0A=
 =0A=
   ,=0A=
   PTHREAD_MUTEX_NORMAL =3D PTHREAD_MUTEX_TIMED_NP,=0A=
   PTHREAD_MUTEX_RECURSIVE =3D PTHREAD_MUTEX_RECURSIVE_NP,=0A=
   PTHREAD_MUTEX_ERRORCHECK =3D PTHREAD_MUTEX_ERRORCHECK_NP,=0A=
   PTHREAD_MUTEX_DEFAULT =3D PTHREAD_MUTEX_NORMAL=0A=
 =0A=
 =0A=
 =0A=
   , PTHREAD_MUTEX_FAST_NP =3D PTHREAD_MUTEX_ADAPTIVE_NP=0A=
 =0A=
 };=0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_PROCESS_PRIVATE,=0A=
 =0A=
   PTHREAD_PROCESS_SHARED=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_RWLOCK_PREFER_READER_NP,=0A=
   PTHREAD_RWLOCK_PREFER_WRITER_NP,=0A=
   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,=0A=
   PTHREAD_RWLOCK_DEFAULT_NP =3D PTHREAD_RWLOCK_PREFER_WRITER_NP=0A=
 };=0A=
 # 131 "/usr/include/pthread.h" 3=0A=
 struct _pthread_cleanup_buffer=0A=
 {=0A=
   void (*__routine) (void *);=0A=
   void *__arg;=0A=
   int __canceltype;=0A=
   struct _pthread_cleanup_buffer *__prev;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   PTHREAD_CANCEL_ENABLE,=0A=
 =0A=
   PTHREAD_CANCEL_DISABLE=0A=
 =0A=
 };=0A=
 enum=0A=
 {=0A=
   PTHREAD_CANCEL_DEFERRED,=0A=
 =0A=
   PTHREAD_CANCEL_ASYNCHRONOUS=0A=
 =0A=
 };=0A=
 # 163 "/usr/include/pthread.h" 3=0A=
 extern int pthread_create (pthread_t *__restrict __thread,=0A=
                            __const pthread_attr_t *__restrict __attr,=0A=
                            void *(*__start_routine) (void *),=0A=
                            void *__restrict __arg) throw ();=0A=
 =0A=
 =0A=
 extern pthread_t pthread_self (void) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) =
 throw ();=0A=
 =0A=
 =0A=
 extern void pthread_exit (void *__retval)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_join (pthread_t __th, void **__thread_return) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_detach (pthread_t __th) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_attr_init (pthread_attr_t *__attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_destroy (pthread_attr_t *__attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,=0A=
                                         int __detachstate) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,=0A=
                                         int *__detachstate) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,=0A=
                                        __const struct sched_param =
 *__restrict=0A=
                                        __param) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict=0A=
                                        __attr,=0A=
                                        struct sched_param *__restrict =
 __param)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int =
 __policy)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getschedpolicy (__const pthread_attr_t =
 *__restrict=0A=
                                         __attr, int *__restrict __policy)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,=0A=
                                          int __inherit) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getinheritsched (__const pthread_attr_t =
 *__restrict=0A=
                                          __attr, int *__restrict =
 __inherit)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict =
 __attr,=0A=
                                   int *__restrict __scope) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,=0A=
                                       size_t __guardsize) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict=0A=
                                       __attr, size_t *__restrict =
 __guardsize)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,=0A=
                                       void *__stackaddr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict=0A=
                                       __attr, void **__restrict =
 __stackaddr)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_attr_setstack (pthread_attr_t *__attr, void =
 *__stackaddr,=0A=
                                   size_t __stacksize) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict =
 __attr,=0A=
                                   void **__restrict __stackaddr,=0A=
                                   size_t *__restrict __stacksize) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,=0A=
                                       size_t __stacksize) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict=0A=
                                       __attr, size_t *__restrict =
 __stacksize)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_setschedparam (pthread_t __target_thread, int =
 __policy,=0A=
                                   __const struct sched_param *__param)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_getschedparam (pthread_t __target_thread,=0A=
                                   int *__restrict __policy,=0A=
                                   struct sched_param *__restrict __param)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_getconcurrency (void) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_setconcurrency (int __level) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_yield (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,=0A=
                                __const pthread_mutexattr_t *__restrict=0A=
                                __mutex_attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,=0A=
                                     __const struct timespec *__restrict=0A=
                                     __abstime) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw =
 ();=0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *=0A=
                                          __restrict __attr,=0A=
                                          int *__restrict __pshared) =
 throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,=0A=
                                          int __pshared) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int =
 __kind)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t =
 *__restrict=0A=
                                       __attr, int *__restrict __kind) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,=0A=
                               __const pthread_condattr_t *__restrict=0A=
                               __cond_attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_cond_destroy (pthread_cond_t *__cond) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_cond_signal (pthread_cond_t *__cond) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,=0A=
                               pthread_mutex_t *__restrict __mutex) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,=0A=
                                    pthread_mutex_t *__restrict __mutex,=0A=
                                    __const struct timespec *__restrict=0A=
                                    __abstime) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_condattr_init (pthread_condattr_t *__attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw =
 ();=0A=
 =0A=
 =0A=
 extern int pthread_condattr_getpshared (__const pthread_condattr_t *=0A=
                                         __restrict __attr,=0A=
                                         int *__restrict __pshared) throw =
 ();=0A=
 =0A=
 =0A=
 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,=0A=
                                         int __pshared) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,=0A=
                                 __const pthread_rwlockattr_t *__restrict=0A=
                                 __attr) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict =
 __rwlock,=0A=
                                        __const struct timespec =
 *__restrict=0A=
                                        __abstime) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict =
 __rwlock,=0A=
                                        __const struct timespec =
 *__restrict=0A=
                                        __abstime) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw =
 ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) =
 throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *=0A=
                                           __restrict __attr,=0A=
                                           int *__restrict __pshared) =
 throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,=0A=
                                           int __pshared) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t =
 *__attr,=0A=
                                           int *__pref) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,=0A=
                                           int __pref) throw ();=0A=
 # 509 "/usr/include/pthread.h" 3=0A=
 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,=0A=
                                  __const pthread_barrierattr_t =
 *__restrict=0A=
                                  __attr, unsigned int __count) throw ();=0A=
 =0A=
 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw =
 ();=0A=
 =0A=
 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) =
 throw ();=0A=
 =0A=
 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) =
 throw ();=0A=
 =0A=
 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t =
 *=0A=
                                            __restrict __attr,=0A=
                                            int *__restrict __pshared) =
 throw ();=0A=
 =0A=
 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,=0A=
                                            int __pshared) throw ();=0A=
 =0A=
 extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw ();=0A=
 # 556 "/usr/include/pthread.h" 3=0A=
 extern int pthread_key_create (pthread_key_t *__key,=0A=
                                void (*__destr_function) (void *)) throw =
 ();=0A=
 =0A=
 =0A=
 extern int pthread_key_delete (pthread_key_t __key) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_setspecific (pthread_key_t __key,=0A=
                                 __const void *__pointer) throw ();=0A=
 =0A=
 =0A=
 extern void *pthread_getspecific (pthread_key_t __key) throw ();=0A=
 # 576 "/usr/include/pthread.h" 3=0A=
 extern int pthread_once (pthread_once_t *__once_control,=0A=
                          void (*__init_routine) (void)) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_setcancelstate (int __state, int *__oldstate) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_setcanceltype (int __type, int *__oldtype) throw ();=0A=
 =0A=
 =0A=
 extern int pthread_cancel (pthread_t __thread) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void pthread_testcancel (void) throw ();=0A=
 # 610 "/usr/include/pthread.h" 3=0A=
 extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer =
 *__buffer,=0A=
                                    void (*__routine) (void *),=0A=
                                    void *__arg) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer =
 *__buffer,=0A=
                                   int __execute) throw ();=0A=
 # 631 "/usr/include/pthread.h" 3=0A=
 extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer =
 *__buffer,=0A=
                                          void (*__routine) (void *),=0A=
                                          void *__arg) throw ();=0A=
 # 642 "/usr/include/pthread.h" 3=0A=
 extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer =
 *__buffer,=0A=
                                           int __execute) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pthread_getcpuclockid (pthread_t __thread_id,=0A=
                                   clockid_t *__clock_id) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/sigthread.h" 1 3=0A=
 # 31 "/usr/include/bits/sigthread.h" 3=0A=
 extern int pthread_sigmask (int __how,=0A=
                             __const __sigset_t *__restrict __newmask,=0A=
                             __sigset_t *__restrict __oldmask)throw ();=0A=
 =0A=
 =0A=
 extern int pthread_kill (pthread_t __thread, int __signo) throw ();=0A=
 # 656 "/usr/include/pthread.h" 2 3=0A=
 # 671 "/usr/include/pthread.h" 3=0A=
 extern int pthread_atfork (void (*__prepare) (void),=0A=
                            void (*__parent) (void),=0A=
                            void (*__child) (void)) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void pthread_kill_other_threads_np (void) throw ();=0A=
 =0A=
 }=0A=
 # 38 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" =
 2 3=0A=
 =0A=
 typedef pthread_key_t __gthread_key_t;=0A=
 typedef pthread_once_t __gthread_once_t;=0A=
 typedef pthread_mutex_t __gthread_mutex_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma weak pthread_once=0A=
 #pragma weak pthread_key_create=0A=
 #pragma weak pthread_key_delete=0A=
 #pragma weak pthread_getspecific=0A=
 #pragma weak pthread_setspecific=0A=
 #pragma weak pthread_create=0A=
 =0A=
 #pragma weak pthread_mutex_lock =0A=
 #pragma weak pthread_mutex_trylock =0A=
 #pragma weak pthread_mutex_unlock =0A=
 # 80 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" =
 3=0A=
 static inline int=0A=
 __gthread_active_p (void)=0A=
 {=0A=
   static void *const __gthread_active_ptr =3D (void *) &pthread_create;=0A=
   return __gthread_active_ptr !=3D 0;=0A=
 }=0A=
 # 437 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" =
 3=0A=
 static inline int=0A=
 __gthread_once (__gthread_once_t *once, void (*func) (void))=0A=
 {=0A=
   if (__gthread_active_p ())=0A=
     return pthread_once (once, func);=0A=
   else=0A=
     return -1;=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))=0A=
 {=0A=
   return pthread_key_create (key, dtor);=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_key_dtor (__gthread_key_t key, void *ptr)=0A=
 {=0A=
 =0A=
   if (ptr)=0A=
     return pthread_setspecific (key, 0);=0A=
   else=0A=
     return 0;=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_key_delete (__gthread_key_t key)=0A=
 {=0A=
   return pthread_key_delete (key);=0A=
 }=0A=
 =0A=
 static inline void *=0A=
 __gthread_getspecific (__gthread_key_t key)=0A=
 {=0A=
   return pthread_getspecific (key);=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_setspecific (__gthread_key_t key, const void *ptr)=0A=
 {=0A=
   return pthread_setspecific (key, ptr);=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_mutex_lock (__gthread_mutex_t *mutex)=0A=
 {=0A=
   if (__gthread_active_p ())=0A=
     return pthread_mutex_lock (mutex);=0A=
   else=0A=
     return 0;=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_mutex_trylock (__gthread_mutex_t *mutex)=0A=
 {=0A=
   if (__gthread_active_p ())=0A=
     return pthread_mutex_trylock (mutex);=0A=
   else=0A=
     return 0;=0A=
 }=0A=
 =0A=
 static inline int=0A=
 __gthread_mutex_unlock (__gthread_mutex_t *mutex)=0A=
 {=0A=
   if (__gthread_active_p ())=0A=
     return pthread_mutex_unlock (mutex);=0A=
   else=0A=
     return 0;=0A=
 }=0A=
 # 99 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 2 3=0A=
 # 38 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 =
 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   typedef long streamoff;=0A=
   typedef ptrdiff_t streamsize;=0A=
 =0A=
   typedef ptrdiff_t wstreamsize;=0A=
 =0A=
   typedef fpos_t __c_streampos;=0A=
 =0A=
   typedef __gthread_mutex_t __c_lock;=0A=
 =0A=
 =0A=
   typedef FILE __c_file;=0A=
 =0A=
 =0A=
   struct __ios_flags=0A=
   {=0A=
     typedef short __int_type;=0A=
 =0A=
     static const __int_type _S_boolalpha =3D 0x0001;=0A=
     static const __int_type _S_dec =3D 0x0002;=0A=
     static const __int_type _S_fixed =3D 0x0004;=0A=
     static const __int_type _S_hex =3D 0x0008;=0A=
     static const __int_type _S_internal =3D 0x0010;=0A=
     static const __int_type _S_left =3D 0x0020;=0A=
     static const __int_type _S_oct =3D 0x0040;=0A=
     static const __int_type _S_right =3D 0x0080;=0A=
     static const __int_type _S_scientific =3D 0x0100;=0A=
     static const __int_type _S_showbase =3D 0x0200;=0A=
     static const __int_type _S_showpoint =3D 0x0400;=0A=
     static const __int_type _S_showpos =3D 0x0800;=0A=
     static const __int_type _S_skipws =3D 0x1000;=0A=
     static const __int_type _S_unitbuf =3D 0x2000;=0A=
     static const __int_type _S_uppercase =3D 0x4000;=0A=
     static const __int_type _S_adjustfield =3D 0x0020 | 0x0080 | 0x0010;=0A=
     static const __int_type _S_basefield =3D 0x0002 | 0x0040 | 0x0008;=0A=
     static const __int_type _S_floatfield =3D 0x0100 | 0x0004;=0A=
 =0A=
 =0A=
     static const __int_type _S_badbit =3D 0x01;=0A=
     static const __int_type _S_eofbit =3D 0x02;=0A=
     static const __int_type _S_failbit =3D 0x04;=0A=
 =0A=
 =0A=
     static const __int_type _S_app =3D 0x01;=0A=
     static const __int_type _S_ate =3D 0x02;=0A=
     static const __int_type _S_bin =3D 0x04;=0A=
     static const __int_type _S_in =3D 0x08;=0A=
     static const __int_type _S_out =3D 0x10;=0A=
     static const __int_type _S_trunc =3D 0x20;=0A=
   };=0A=
 }=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cwchar" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/ctime" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/ctime" 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/ctime" 3=0A=
 namespace std=0A=
 {=0A=
   using ::clock_t;=0A=
   using ::time_t;=0A=
   using ::tm;=0A=
 =0A=
   using ::clock;=0A=
   using ::difftime;=0A=
   using ::mktime;=0A=
   using ::time;=0A=
   using ::asctime;=0A=
   using ::ctime;=0A=
   using ::gmtime;=0A=
   using ::localtime;=0A=
   using ::strftime;=0A=
 }=0A=
 # 52 "/usr/local/gcc3.1/include/g++-v3/cwchar" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/wchar.h" 1 3=0A=
 # 40 "/usr/include/wchar.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 1 =
 3=0A=
 # 41 "/usr/include/wchar.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 49 "/usr/include/wchar.h" 2 3=0A=
 # 85 "/usr/include/wchar.h" 3=0A=
 typedef __mbstate_t mbstate_t;=0A=
 # 105 "/usr/include/wchar.h" 3=0A=
 struct tm;=0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern wchar_t *wcscpy (wchar_t *__restrict __dest,=0A=
                         __const wchar_t *__restrict __src) throw ();=0A=
 =0A=
 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,=0A=
                          __const wchar_t *__restrict __src, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern wchar_t *wcscat (wchar_t *__restrict __dest,=0A=
                         __const wchar_t *__restrict __src) throw ();=0A=
 =0A=
 extern wchar_t *wcsncat (wchar_t *__restrict __dest,=0A=
                          __const wchar_t *__restrict __src, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t =
 __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) =
 throw ();=0A=
 =0A=
 =0A=
 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,=0A=
                         size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/xlocale.h" 1 3=0A=
 # 28 "/usr/include/xlocale.h" 3=0A=
 typedef struct __locale_struct=0A=
 {=0A=
 =0A=
   struct locale_data *__locales[13];=0A=
 =0A=
 =0A=
   const unsigned short int *__ctype_b;=0A=
   const int *__ctype_tolower;=0A=
   const int *__ctype_toupper;=0A=
 } *__locale_t;=0A=
 # 144 "/usr/include/wchar.h" 2 3=0A=
 =0A=
 extern int __wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A=
                            __locale_t __loc) throw ();=0A=
 =0A=
 extern int __wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A=
                             size_t __n, __locale_t __loc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcsxfrm (wchar_t *__restrict __s1,=0A=
                        __const wchar_t *__restrict __s2, size_t __n) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A=
                         __locale_t __loc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t __wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,=0A=
                            size_t __n, __locale_t __loc) throw ();=0A=
 =0A=
 =0A=
 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t =
 *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t =
 *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t =
 *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wcstok (wchar_t *__restrict __s,=0A=
                         __const wchar_t *__restrict __delim,=0A=
                         wchar_t **__restrict __ptr) throw ();=0A=
 =0A=
 =0A=
 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern int wmemcmp (__const wchar_t *__restrict __s1,=0A=
                     __const wchar_t *__restrict __s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,=0A=
                          __const wchar_t *__restrict __s2, size_t __n) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t =
 __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,=0A=
                           __const wchar_t *__restrict __s2, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wint_t btowc (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int wctob (wint_t __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern size_t mbrtowc (wchar_t *__restrict __pwc,=0A=
                        __const char *__restrict __s, size_t __n,=0A=
                        mbstate_t *__p) throw ();=0A=
 =0A=
 =0A=
 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,=0A=
                        mbstate_t *__restrict __ps) throw ();=0A=
 =0A=
 =0A=
 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,=0A=
                         mbstate_t *__restrict __ps) throw ();=0A=
 extern size_t mbrlen (__const char *__restrict __s, size_t __n,=0A=
                       mbstate_t *__restrict __ps) throw ();=0A=
 # 297 "/usr/include/wchar.h" 3=0A=
 extern size_t mbsrtowcs (wchar_t *__restrict __dst,=0A=
                          __const char **__restrict __src, size_t __len,=0A=
                          mbstate_t *__restrict __ps) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcsrtombs (char *__restrict __dst,=0A=
                          __const wchar_t **__restrict __src, size_t =
 __len,=0A=
                          mbstate_t *__restrict __ps) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,=0A=
                           __const char **__restrict __src, size_t __nmc,=0A=
                           size_t __len, mbstate_t *__restrict __ps) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcsnrtombs (char *__restrict __dst,=0A=
                           __const wchar_t **__restrict __src,=0A=
                           size_t __nwc, size_t __len,=0A=
                           mbstate_t *__restrict __ps) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int wcwidth (wchar_t __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double wcstod (__const wchar_t *__restrict __nptr,=0A=
                       wchar_t **__restrict __endptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float wcstof (__const wchar_t *__restrict __nptr,=0A=
                      wchar_t **__restrict __endptr) throw ();=0A=
 extern long double wcstold (__const wchar_t *__restrict __nptr,=0A=
                             wchar_t **__restrict __endptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int wcstol (__const wchar_t *__restrict __nptr,=0A=
                         wchar_t **__restrict __endptr, int __base) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,=0A=
                                   wchar_t **__restrict __endptr, int =
 __base)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int wcstoq (__const wchar_t *__restrict __nptr,=0A=
                              wchar_t **__restrict __endptr, int __base)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int wcstouq (__const wchar_t *__restrict =
 __nptr,=0A=
                                        wchar_t **__restrict __endptr,=0A=
                                        int __base) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int wcstoll (__const wchar_t *__restrict __nptr,=0A=
                               wchar_t **__restrict __endptr, int __base)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int wcstoull (__const wchar_t *__restrict =
 __nptr,=0A=
                                         wchar_t **__restrict __endptr,=0A=
                                         int __base) throw ();=0A=
 # 410 "/usr/include/wchar.h" 3=0A=
 extern long int __wcstol_l (__const wchar_t *__restrict __nptr,=0A=
                             wchar_t **__restrict __endptr, int __base,=0A=
                             __locale_t __loc) throw ();=0A=
 =0A=
 extern unsigned long int __wcstoul_l (__const wchar_t *__restrict __nptr,=0A=
                                       wchar_t **__restrict __endptr,=0A=
                                       int __base, __locale_t __loc) =
 throw ();=0A=
 =0A=
 __extension__=0A=
 extern long long int __wcstoll_l (__const wchar_t *__restrict __nptr,=0A=
                                   wchar_t **__restrict __endptr,=0A=
                                   int __base, __locale_t __loc) throw ();=0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int __wcstoull_l (__const wchar_t *__restrict =
 __nptr,=0A=
                                             wchar_t **__restrict =
 __endptr,=0A=
                                             int __base, __locale_t __loc)=0A=
      throw ();=0A=
 =0A=
 extern double __wcstod_l (__const wchar_t *__restrict __nptr,=0A=
                           wchar_t **__restrict __endptr, __locale_t =
 __loc)=0A=
      throw ();=0A=
 =0A=
 extern float __wcstof_l (__const wchar_t *__restrict __nptr,=0A=
                          wchar_t **__restrict __endptr, __locale_t __loc)=0A=
      throw ();=0A=
 =0A=
 extern long double __wcstold_l (__const wchar_t *__restrict __nptr,=0A=
                                 wchar_t **__restrict __endptr,=0A=
                                 __locale_t __loc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double __wcstod_internal (__const wchar_t *__restrict __nptr,=0A=
                                  wchar_t **__restrict __endptr, int =
 __group)=0A=
      throw ();=0A=
 extern float __wcstof_internal (__const wchar_t *__restrict __nptr,=0A=
                                 wchar_t **__restrict __endptr, int =
 __group)=0A=
      throw ();=0A=
 extern long double __wcstold_internal (__const wchar_t *__restrict =
 __nptr,=0A=
                                        wchar_t **__restrict __endptr,=0A=
                                        int __group) throw ();=0A=
 =0A=
 =0A=
 extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,=0A=
                                    wchar_t **__restrict __endptr,=0A=
                                    int __base, int __group) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict =
 __npt,=0A=
                                              wchar_t **__restrict =
 __endptr,=0A=
                                              int __base, int __group) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int __wcstoll_internal (__const wchar_t *__restrict =
 __nptr,=0A=
                                          wchar_t **__restrict __endptr,=0A=
                                          int __base, int __group) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int __wcstoull_internal (__const wchar_t *=0A=
                                                    __restrict __nptr,=0A=
                                                    wchar_t **=0A=
                                                    __restrict __endptr,=0A=
                                                    int __base,=0A=
                                                    int __group) throw ();=0A=
 # 528 "/usr/include/wchar.h" 3=0A=
 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t =
 __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fwide (__FILE *__fp, int __mode) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fwprintf (__FILE *__restrict __stream,=0A=
                      __const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 extern int wprintf (__const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 extern int swprintf (wchar_t *__restrict __s, size_t __n,=0A=
                      __const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 =0A=
 extern int vfwprintf (__FILE *__restrict __s,=0A=
                       __const wchar_t *__restrict __format,=0A=
                       __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 extern int vwprintf (__const wchar_t *__restrict __format,=0A=
                      __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 =0A=
 extern int vswprintf (wchar_t *__restrict __s, size_t __n,=0A=
                       __const wchar_t *__restrict __format,=0A=
                       __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 =0A=
 =0A=
 extern int fwscanf (__FILE *__restrict __stream,=0A=
                     __const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 extern int wscanf (__const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 extern int swscanf (__const wchar_t *__restrict __s,=0A=
                     __const wchar_t *__restrict __format, ...)=0A=
      throw () ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int vfwscanf (__FILE *__restrict __s,=0A=
                      __const wchar_t *__restrict __format,=0A=
                      __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 extern int vwscanf (__const wchar_t *__restrict __format,=0A=
                     __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 extern int vswscanf (__const wchar_t *__restrict __s,=0A=
                      __const wchar_t *__restrict __format,=0A=
                      __gnuc_va_list __arg)=0A=
      throw () ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wint_t fgetwc (__FILE *__stream) throw ();=0A=
 extern wint_t getwc (__FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern wint_t getwchar (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wint_t fputwc (wchar_t __wc, __FILE *__stream) throw ();=0A=
 extern wint_t putwc (wchar_t __wc, __FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern wint_t putwchar (wchar_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,=0A=
                         __FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 extern int fputws (__const wchar_t *__restrict __ws,=0A=
                    __FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wint_t ungetwc (wint_t __wc, __FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wint_t getwc_unlocked (__FILE *__stream) throw ();=0A=
 extern wint_t getwchar_unlocked (void) throw ();=0A=
 =0A=
 =0A=
 extern wint_t fgetwc_unlocked (__FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream) throw ();=0A=
 extern wint_t putwchar_unlocked (wchar_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,=0A=
                                  __FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 extern int fputws_unlocked (__const wchar_t *__restrict __ws,=0A=
                             __FILE *__restrict __stream) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,=0A=
                         __const wchar_t *__restrict __format,=0A=
                         __const struct tm *__restrict __tp) throw ();=0A=
 # 680 "/usr/include/wchar.h" 3=0A=
 }=0A=
 # 55 "/usr/local/gcc3.1/include/g++-v3/cwchar" 2 3=0A=
 # 69 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A=
 namespace std=0A=
 {=0A=
   using ::mbstate_t;=0A=
 }=0A=
 # 133 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A=
 namespace std=0A=
 {=0A=
   using ::wint_t;=0A=
 =0A=
   using ::btowc;=0A=
   using ::fgetwc;=0A=
   using ::fgetws;=0A=
   using ::fputwc;=0A=
   using ::fputws;=0A=
   using ::fwide;=0A=
   using ::fwprintf;=0A=
   using ::fwscanf;=0A=
   using ::getwc;=0A=
   using ::getwchar;=0A=
   using ::mbrlen;=0A=
   using ::mbrtowc;=0A=
   using ::mbsinit;=0A=
   using ::mbsrtowcs;=0A=
   using ::putwc;=0A=
   using ::putwchar;=0A=
   using ::swprintf;=0A=
   using ::swscanf;=0A=
   using ::ungetwc;=0A=
   using ::vfwprintf;=0A=
   using ::vfwscanf;=0A=
   using ::vswprintf;=0A=
   using ::vswscanf;=0A=
   using ::vwprintf;=0A=
   using ::vwscanf;=0A=
   using ::wcrtomb;=0A=
   using ::wcscat;=0A=
   using ::wcscmp;=0A=
   using ::wcscoll;=0A=
   using ::wcscpy;=0A=
   using ::wcscspn;=0A=
   using ::wcsftime;=0A=
   using ::wcslen;=0A=
   using ::wcsncat;=0A=
   using ::wcsncmp;=0A=
   using ::wcsncpy;=0A=
   using ::wcsrtombs;=0A=
   using ::wcsspn;=0A=
   using ::wcstod;=0A=
   using ::wcstof;=0A=
   using ::wcstok;=0A=
   using ::wcstol;=0A=
   using ::wcstoul;=0A=
   using ::wcsxfrm;=0A=
   using ::wctob;=0A=
   using ::wmemcmp;=0A=
   using ::wmemcpy;=0A=
   using ::wmemmove;=0A=
   using ::wmemset;=0A=
   using ::wprintf;=0A=
   using ::wscanf;=0A=
 =0A=
   using ::wcschr;=0A=
 =0A=
   inline wchar_t*=0A=
   wcschr(wchar_t* __p, wchar_t __c)=0A=
   { return wcschr(const_cast<const wchar_t*>(__p), __c); }=0A=
 =0A=
   using ::wcspbrk;=0A=
 =0A=
   inline wchar_t*=0A=
   wcspbrk(wchar_t* __s1, wchar_t* __s2)=0A=
   { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }=0A=
 =0A=
   using ::wcsrchr;=0A=
 =0A=
   inline wchar_t*=0A=
   wcsrchr(wchar_t* __p, wchar_t __c)=0A=
   { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }=0A=
 =0A=
   using ::wcsstr;=0A=
 =0A=
   inline wchar_t*=0A=
   wcsstr(wchar_t* __s1, wchar_t* __s2)=0A=
   { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }=0A=
 =0A=
   using ::wmemchr;=0A=
 =0A=
   inline wchar_t*=0A=
   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)=0A=
   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace __gnu_cxx=0A=
 {=0A=
   using ::wcstold;=0A=
   using ::wcstoll;=0A=
   using ::wcstoull;=0A=
 }=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using __gnu_cxx::wcstold;=0A=
   using __gnu_cxx::wcstoll;=0A=
   using __gnu_cxx::wcstoull;=0A=
 }=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   template<typename _StateT>=0A=
     class fpos=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _StateT __state_type;=0A=
 =0A=
     private:=0A=
       streamoff _M_off;=0A=
       __state_type _M_st;=0A=
 =0A=
     public:=0A=
       __state_type=0A=
       state() const { return _M_st; }=0A=
 =0A=
       void=0A=
       state(__state_type __st) { _M_st =3D __st; }=0A=
 =0A=
 =0A=
 =0A=
       fpos(): _M_off(streamoff()), _M_st(__state_type()) { }=0A=
 =0A=
       fpos(streamoff __off, __state_type __st =3D __state_type())=0A=
       : _M_off(__off), _M_st(__st) { }=0A=
 =0A=
       operator streamoff() const { return _M_off; }=0A=
 =0A=
       fpos&=0A=
       operator+=3D(streamoff __off) { _M_off +=3D __off; return *this; }=0A=
 =0A=
       fpos&=0A=
       operator-=3D(streamoff __off) { _M_off -=3D __off; return *this; }=0A=
 =0A=
       fpos=0A=
       operator+(streamoff __off)=0A=
       {=0A=
         fpos __t(*this);=0A=
         __t +=3D __off;=0A=
         return __t;=0A=
       }=0A=
 =0A=
       fpos=0A=
       operator-(streamoff __off)=0A=
       {=0A=
         fpos __t(*this);=0A=
         __t -=3D __off;=0A=
         return __t;=0A=
       }=0A=
 =0A=
       bool=0A=
       operator=3D=3D(const fpos& __pos) const=0A=
       { return _M_off =3D=3D __pos._M_off; }=0A=
 =0A=
       bool=0A=
       operator!=3D(const fpos& __pos) const=0A=
       { return _M_off !=3D __pos._M_off; }=0A=
 =0A=
       streamoff=0A=
       _M_position() const { return _M_off; }=0A=
 =0A=
       void=0A=
       _M_position(streamoff __off) { _M_off =3D __off; }=0A=
     };=0A=
 =0A=
 =0A=
   typedef fpos<mbstate_t> streampos;=0A=
 =0A=
   typedef fpos<mbstate_t> wstreampos;=0A=
 =0A=
 }=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   void=0A=
   __throw_bad_exception(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_alloc(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_cast(void);=0A=
 =0A=
   void=0A=
   __throw_bad_typeid(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_logic_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_domain_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_invalid_argument(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_length_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_out_of_range(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_runtime_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_range_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_overflow_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_underflow_error(const char* __s);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_ios_failure(const char* __s);=0A=
 }=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_ios;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_streambuf;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_istream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_ostream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_iostream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT>,=0A=
             typename _Alloc =3D allocator<_CharT> >=0A=
     class basic_stringbuf;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT>,=0A=
            typename _Alloc =3D allocator<_CharT> >=0A=
     class basic_istringstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT>,=0A=
            typename _Alloc =3D allocator<_CharT> >=0A=
     class basic_ostringstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT>,=0A=
            typename _Alloc =3D allocator<_CharT> >=0A=
     class basic_stringstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_filebuf;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_ifstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_ofstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class basic_fstream;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class istreambuf_iterator;=0A=
 =0A=
   template<typename _CharT, typename _Traits =3D char_traits<_CharT> >=0A=
     class ostreambuf_iterator;=0A=
 =0A=
 =0A=
 =0A=
   class ios_base;=0A=
 =0A=
 =0A=
   typedef basic_ios<char> ios;=0A=
   typedef basic_streambuf<char> streambuf;=0A=
   typedef basic_istream<char> istream;=0A=
   typedef basic_ostream<char> ostream;=0A=
   typedef basic_iostream<char> iostream;=0A=
   typedef basic_stringbuf<char> stringbuf;=0A=
   typedef basic_istringstream<char> istringstream;=0A=
   typedef basic_ostringstream<char> ostringstream;=0A=
   typedef basic_stringstream<char> stringstream;=0A=
   typedef basic_filebuf<char> filebuf;=0A=
   typedef basic_ifstream<char> ifstream;=0A=
   typedef basic_ofstream<char> ofstream;=0A=
   typedef basic_fstream<char> fstream;=0A=
 =0A=
   typedef basic_ios<wchar_t> wios;=0A=
   typedef basic_streambuf<wchar_t> wstreambuf;=0A=
   typedef basic_istream<wchar_t> wistream;=0A=
   typedef basic_ostream<wchar_t> wostream;=0A=
   typedef basic_iostream<wchar_t> wiostream;=0A=
   typedef basic_stringbuf<wchar_t> wstringbuf;=0A=
   typedef basic_istringstream<wchar_t> wistringstream;=0A=
   typedef basic_ostringstream<wchar_t> wostringstream;=0A=
   typedef basic_stringstream<wchar_t> wstringstream;=0A=
   typedef basic_filebuf<wchar_t> wfilebuf;=0A=
   typedef basic_ifstream<wchar_t> wifstream;=0A=
   typedef basic_ofstream<wchar_t> wofstream;=0A=
   typedef basic_fstream<wchar_t> wfstream;=0A=
 }=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception" 1 3=0A=
 # 40 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A=
 extern "C++" {=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   class exception=0A=
   {=0A=
   public:=0A=
     exception() throw() { }=0A=
     virtual ~exception() throw();=0A=
 =0A=
 =0A=
     virtual const char* what() const throw();=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class bad_exception : public exception=0A=
   {=0A=
   public:=0A=
     bad_exception() throw() { }=0A=
 =0A=
 =0A=
     virtual ~bad_exception() throw();=0A=
   };=0A=
 =0A=
 =0A=
   typedef void (*terminate_handler) ();=0A=
 =0A=
   typedef void (*unexpected_handler) ();=0A=
 =0A=
 =0A=
   terminate_handler set_terminate(terminate_handler) throw();=0A=
 =0A=
 =0A=
   void terminate() __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
   unexpected_handler set_unexpected(unexpected_handler) throw();=0A=
 =0A=
 =0A=
   void unexpected() __attribute__ ((__noreturn__));=0A=
 # 98 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A=
   bool uncaught_exception() throw();=0A=
 }=0A=
 =0A=
 namespace __gnu_cxx=0A=
 {=0A=
 # 111 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A=
   void __verbose_terminate_handler ();=0A=
 }=0A=
 =0A=
 }=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cstring" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cstring" 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/string.h" 1 3=0A=
 # 28 "/usr/include/string.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 34 "/usr/include/string.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern void *memcpy (void *__restrict __dest,=0A=
                      __const void *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern void *memmove (void *__dest, __const void *__src, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memccpy (void *__restrict __dest, __const void *__restrict =
 __src,=0A=
                       int __c, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memset (void *__s, int __c, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern void *memchr (__const void *__s, int __c, size_t __n)=0A=
       throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *rawmemchr (__const void *__s, int __c) throw () =
 __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern void *memrchr (__const void *__s, int __c, size_t __n)=0A=
       throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 extern char *strncpy (char *__restrict __dest,=0A=
                       __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern char *strcat (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 extern char *strncat (char *__restrict __dest, __const char *__restrict =
 __src,=0A=
                       size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int strcmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern int strcoll (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern size_t strxfrm (char *__restrict __dest,=0A=
                        __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 # 111 "/usr/include/string.h" 3=0A=
 extern int __strcoll_l (__const char *__s1, __const char *__s2, =
 __locale_t __l)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,=0A=
                            __locale_t __l) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strdup (__const char *__s) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strndup (__const char *__string, size_t __n)=0A=
      throw () __attribute__ ((__malloc__));=0A=
 # 155 "/usr/include/string.h" 3=0A=
 extern char *strchr (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern char *strrchr (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strchrnul (__const char *__s, int __c) throw () =
 __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strcspn (__const char *__s, __const char *__reject)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern size_t strspn (__const char *__s, __const char *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern char *strpbrk (__const char *__s, __const char *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern char *strstr (__const char *__haystack, __const char *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern char *strcasestr (__const char *__haystack, __const char =
 *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern char *strtok (char *__restrict __s, __const char *__restrict =
 __delim)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *__strtok_r (char *__restrict __s,=0A=
                          __const char *__restrict __delim,=0A=
                          char **__restrict __save_ptr) throw ();=0A=
 =0A=
 extern char *strtok_r (char *__restrict __s, __const char *__restrict =
 __delim,=0A=
                        char **__restrict __save_ptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memmem (__const void *__haystack, size_t __haystacklen,=0A=
                      __const void *__needle, size_t __needlelen)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern void *__mempcpy (void *__restrict __dest,=0A=
                         __const void *__restrict __src, size_t __n) =
 throw ();=0A=
 extern void *mempcpy (void *__restrict __dest,=0A=
                       __const void *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strlen (__const char *__s) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strnlen (__const char *__string, size_t __maxlen)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strerror (int __errnum) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __bzero (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void bcopy (__const void *__src, void *__dest, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern void bzero (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern char *index (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 extern char *rindex (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern int ffs (int __i) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ffsl (long int __l) throw () __attribute__ ((__const__));=0A=
 =0A=
 __extension__ extern int ffsll (long long int __ll)=0A=
      throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int strcasecmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t =
 __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __strcasecmp_l (__const char *__s1, __const char *__s2,=0A=
                            __locale_t __loc) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern int __strncasecmp_l (__const char *__s1, __const char *__s2,=0A=
                             size_t __n, __locale_t __loc)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strsep (char **__restrict __stringp,=0A=
                      __const char *__restrict __delim) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int strverscmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern char *strsignal (int __sig) throw ();=0A=
 =0A=
 =0A=
 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 extern char *stpcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *__stpncpy (char *__restrict __dest,=0A=
                         __const char *__restrict __src, size_t __n) =
 throw ();=0A=
 extern char *stpncpy (char *__restrict __dest,=0A=
                       __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern char *strfry (char *__string) throw ();=0A=
 =0A=
 =0A=
 extern void *memfrob (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *basename (__const char *__filename) throw ();=0A=
 # 364 "/usr/include/string.h" 3=0A=
 }=0A=
 # 52 "/usr/local/gcc3.1/include/g++-v3/cstring" 2 3=0A=
 # 77 "/usr/local/gcc3.1/include/g++-v3/cstring" 3=0A=
 namespace std=0A=
 {=0A=
   using ::memcpy;=0A=
   using ::memmove;=0A=
   using ::strcpy;=0A=
   using ::strncpy;=0A=
   using ::strcat;=0A=
   using ::strncat;=0A=
   using ::memcmp;=0A=
   using ::strcmp;=0A=
   using ::strcoll;=0A=
   using ::strncmp;=0A=
   using ::strxfrm;=0A=
   using ::strcspn;=0A=
   using ::strspn;=0A=
   using ::strtok;=0A=
   using ::memset;=0A=
   using ::strerror;=0A=
   using ::strlen;=0A=
 =0A=
   using ::memchr;=0A=
 =0A=
   inline void*=0A=
   memchr(void* __p, int __c, size_t __n)=0A=
   { return memchr(const_cast<const void*>(__p), __c, __n); }=0A=
 =0A=
   using ::strchr;=0A=
 =0A=
   inline char*=0A=
   strchr(char* __s1, int __n)=0A=
   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }=0A=
 =0A=
   using ::strpbrk;=0A=
 =0A=
   inline char*=0A=
   strpbrk(char* __s1, const char* __s2)=0A=
   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }=0A=
 =0A=
   using ::strrchr;=0A=
 =0A=
   inline char*=0A=
   strrchr(char* __s1, int __n)=0A=
   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }=0A=
 =0A=
   using ::strstr;=0A=
 =0A=
   inline char*=0A=
   strstr(char* __s1, const char* __s2)=0A=
   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }=0A=
 }=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 2 3=0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   template<class _CharT>=0A=
     struct char_traits=0A=
     {=0A=
       typedef _CharT char_type;=0A=
 =0A=
       typedef unsigned long int_type;=0A=
       typedef streampos pos_type;=0A=
       typedef streamoff off_type;=0A=
       typedef mbstate_t state_type;=0A=
 =0A=
       static void=0A=
       assign(char_type& __c1, const char_type& __c2)=0A=
       { __c1 =3D __c2; }=0A=
 =0A=
       static bool=0A=
       eq(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static bool=0A=
       lt(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 < __c2; }=0A=
 =0A=
       static int=0A=
       compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A=
       {=0A=
         for (size_t __i =3D 0; __i < __n; ++__i)=0A=
           if (!eq(__s1[__i], __s2[__i]))=0A=
             return lt(__s1[__i], __s2[__i]) ? -1 : 1;=0A=
         return 0;=0A=
       }=0A=
 =0A=
       static size_t=0A=
       length(const char_type* __s)=0A=
       {=0A=
         const char_type* __p =3D __s;=0A=
         while (*__p) ++__p;=0A=
         return (__p - __s);=0A=
       }=0A=
 =0A=
       static const char_type*=0A=
       find(const char_type* __s, size_t __n, const char_type& __a)=0A=
       {=0A=
         for (const char_type* __p =3D __s; size_t(__p - __s) < __n; =
 ++__p)=0A=
           if (*__p =3D=3D __a) return __p;=0A=
         return 0;=0A=
       }=0A=
 =0A=
       static char_type*=0A=
       move(char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return (char_type*) memmove(__s1, __s2, __n * =
 sizeof(char_type)); }=0A=
 =0A=
       static char_type*=0A=
       copy(char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); =
 }=0A=
 =0A=
       static char_type*=0A=
       assign(char_type* __s, size_t __n, char_type __a)=0A=
       {=0A=
         for (char_type* __p =3D __s; __p < __s + __n; ++__p)=0A=
           assign(*__p, __a);=0A=
         return __s;=0A=
       }=0A=
 =0A=
       static char_type=0A=
       to_char_type(const int_type& __c)=0A=
       { return char_type(__c); }=0A=
 =0A=
       static int_type=0A=
       to_int_type(const char_type& __c) { return int_type(__c); }=0A=
 =0A=
       static bool=0A=
       eq_int_type(const int_type& __c1, const int_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static int_type=0A=
       eof() { return static_cast<int_type>(-1); }=0A=
 =0A=
       static int_type=0A=
       not_eof(const int_type& __c)=0A=
       { return eq_int_type(__c, eof()) ? int_type(0) : __c; }=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct char_traits<char>=0A=
     {=0A=
       typedef char char_type;=0A=
       typedef int int_type;=0A=
       typedef streampos pos_type;=0A=
       typedef streamoff off_type;=0A=
       typedef mbstate_t state_type;=0A=
 =0A=
       static void=0A=
       assign(char_type& __c1, const char_type& __c2)=0A=
       { __c1 =3D __c2; }=0A=
 =0A=
       static bool=0A=
       eq(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static bool=0A=
       lt(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 < __c2; }=0A=
 =0A=
       static int=0A=
       compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return memcmp(__s1, __s2, __n); }=0A=
 =0A=
       static size_t=0A=
       length(const char_type* __s)=0A=
       { return strlen(__s); }=0A=
 =0A=
       static const char_type*=0A=
       find(const char_type* __s, size_t __n, const char_type& __a)=0A=
       { return static_cast<const char_type*>(memchr(__s, __a, __n)); }=0A=
 =0A=
       static char_type*=0A=
       move(char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }=0A=
 =0A=
       static char_type*=0A=
       copy(char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }=0A=
 =0A=
       static char_type*=0A=
       assign(char_type* __s, size_t __n, char_type __a)=0A=
       { return static_cast<char_type*>(memset(__s, __a, __n)); }=0A=
 =0A=
       static char_type=0A=
       to_char_type(const int_type& __c)=0A=
       { return static_cast<char_type>(__c); }=0A=
 =0A=
 =0A=
 =0A=
       static int_type=0A=
       to_int_type(const char_type& __c)=0A=
       { return static_cast<int_type>(static_cast<unsigned char>(__c)); }=0A=
 =0A=
       static bool=0A=
       eq_int_type(const int_type& __c1, const int_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static int_type=0A=
       eof() { return static_cast<int_type>((-1)); }=0A=
 =0A=
       static int_type=0A=
       not_eof(const int_type& __c)=0A=
       { return (__c =3D=3D eof()) ? 0 : __c; }=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct char_traits<wchar_t>=0A=
     {=0A=
       typedef wchar_t char_type;=0A=
       typedef wint_t int_type;=0A=
       typedef streamoff off_type;=0A=
       typedef wstreampos pos_type;=0A=
       typedef mbstate_t state_type;=0A=
 =0A=
       static void=0A=
       assign(char_type& __c1, const char_type& __c2)=0A=
       { __c1 =3D __c2; }=0A=
 =0A=
       static bool=0A=
       eq(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static bool=0A=
       lt(const char_type& __c1, const char_type& __c2)=0A=
       { return __c1 < __c2; }=0A=
 =0A=
       static int=0A=
       compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return wmemcmp(__s1, __s2, __n); }=0A=
 =0A=
       static size_t=0A=
       length(const char_type* __s)=0A=
       { return wcslen(__s); }=0A=
 =0A=
       static const char_type*=0A=
       find(const char_type* __s, size_t __n, const char_type& __a)=0A=
       { return wmemchr(__s, __a, __n); }=0A=
 =0A=
       static char_type*=0A=
       move(char_type* __s1, const char_type* __s2, int_type __n)=0A=
       { return wmemmove(__s1, __s2, __n); }=0A=
 =0A=
       static char_type*=0A=
       copy(char_type* __s1, const char_type* __s2, size_t __n)=0A=
       { return wmemcpy(__s1, __s2, __n); }=0A=
 =0A=
       static char_type*=0A=
       assign(char_type* __s, size_t __n, char_type __a)=0A=
       { return wmemset(__s, __a, __n); }=0A=
 =0A=
       static char_type=0A=
       to_char_type(const int_type& __c) { return char_type(__c); }=0A=
 =0A=
       static int_type=0A=
       to_int_type(const char_type& __c) { return int_type(__c); }=0A=
 =0A=
       static bool=0A=
       eq_int_type(const int_type& __c1, const int_type& __c2)=0A=
       { return __c1 =3D=3D __c2; }=0A=
 =0A=
       static int_type=0A=
       eof() { return static_cast<int_type>((0xffffffffu)); }=0A=
 =0A=
       static int_type=0A=
       not_eof(const int_type& __c)=0A=
       { return eq_int_type(__c, eof()) ? 0 : __c; }=0A=
   };=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     struct _Char_traits_match=0A=
     {=0A=
       _CharT _M_c;=0A=
       _Char_traits_match(_CharT const& __c) : _M_c(__c) { }=0A=
 =0A=
       bool=0A=
       operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); }=0A=
     };=0A=
 }=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 3=0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 1 3=0A=
 # 36 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/clocale" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/clocale" 3=0A=
 =0A=
 # 1 "/usr/include/locale.h" 1 3=0A=
 # 29 "/usr/include/locale.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 30 "/usr/include/locale.h" 2 3=0A=
 # 1 "/usr/include/bits/locale.h" 1 3=0A=
 # 27 "/usr/include/bits/locale.h" 3=0A=
 enum=0A=
 {=0A=
   __LC_CTYPE =3D 0,=0A=
   __LC_NUMERIC =3D 1,=0A=
   __LC_TIME =3D 2,=0A=
   __LC_COLLATE =3D 3,=0A=
   __LC_MONETARY =3D 4,=0A=
   __LC_MESSAGES =3D 5,=0A=
   __LC_ALL =3D 6,=0A=
   __LC_PAPER =3D 7,=0A=
   __LC_NAME =3D 8,=0A=
   __LC_ADDRESS =3D 9,=0A=
   __LC_TELEPHONE =3D 10,=0A=
   __LC_MEASUREMENT =3D 11,=0A=
   __LC_IDENTIFICATION =3D 12=0A=
 };=0A=
 # 31 "/usr/include/locale.h" 2 3=0A=
 =0A=
 extern "C" {=0A=
 # 52 "/usr/include/locale.h" 3=0A=
 struct lconv=0A=
 {=0A=
 =0A=
 =0A=
   char *decimal_point;=0A=
   char *thousands_sep;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   char *grouping;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   char *int_curr_symbol;=0A=
   char *currency_symbol;=0A=
   char *mon_decimal_point;=0A=
   char *mon_thousands_sep;=0A=
   char *mon_grouping;=0A=
   char *positive_sign;=0A=
   char *negative_sign;=0A=
   char int_frac_digits;=0A=
   char frac_digits;=0A=
 =0A=
   char p_cs_precedes;=0A=
 =0A=
   char p_sep_by_space;=0A=
 =0A=
   char n_cs_precedes;=0A=
 =0A=
   char n_sep_by_space;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   char p_sign_posn;=0A=
   char n_sign_posn;=0A=
 =0A=
 =0A=
   char int_p_cs_precedes;=0A=
 =0A=
   char int_p_sep_by_space;=0A=
 =0A=
   char int_n_cs_precedes;=0A=
 =0A=
   char int_n_sep_by_space;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   char int_p_sign_posn;=0A=
   char int_n_sign_posn;=0A=
 # 119 "/usr/include/locale.h" 3=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 extern char *setlocale (int __category, __const char *__locale) throw ();=0A=
 =0A=
 =0A=
 extern struct lconv *localeconv (void) throw ();=0A=
 # 149 "/usr/include/locale.h" 3=0A=
 extern __locale_t __newlocale (int __category_mask, __const char =
 *__locale,=0A=
                                __locale_t __base) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern __locale_t __duplocale (__locale_t __dataset) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void __freelocale (__locale_t __dataset) throw ();=0A=
 =0A=
 =0A=
 }=0A=
 # 50 "/usr/local/gcc3.1/include/g++-v3/clocale" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
   using ::lconv;=0A=
   using ::setlocale;=0A=
   using ::localeconv;=0A=
 }=0A=
 # 37 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   typedef int* __c_locale;=0A=
 }=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/climits" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/climits" 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 =
 3=0A=
 # 11 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/syslimits.h"=
  1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 =
 3=0A=
 # 132 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 3=0A=
 # 1 "/usr/include/limits.h" 1 3=0A=
 # 144 "/usr/include/limits.h" 3=0A=
 # 1 "/usr/include/bits/posix1_lim.h" 1 3=0A=
 # 126 "/usr/include/bits/posix1_lim.h" 3=0A=
 # 1 "/usr/include/bits/local_lim.h" 1 3=0A=
 # 36 "/usr/include/bits/local_lim.h" 3=0A=
 # 1 "/usr/include/linux/limits.h" 1 3=0A=
 # 37 "/usr/include/bits/local_lim.h" 2 3=0A=
 # 127 "/usr/include/bits/posix1_lim.h" 2 3=0A=
 # 145 "/usr/include/limits.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/posix2_lim.h" 1 3=0A=
 # 149 "/usr/include/limits.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/xopen_lim.h" 1 3=0A=
 # 34 "/usr/include/bits/xopen_lim.h" 3=0A=
 # 1 "/usr/include/bits/stdio_lim.h" 1 3=0A=
 # 35 "/usr/include/bits/xopen_lim.h" 2 3=0A=
 # 136 "/usr/include/bits/xopen_lim.h" 3=0A=
 # 1 "/usr/include/bits/wordsize.h" 1 3=0A=
 # 137 "/usr/include/bits/xopen_lim.h" 2 3=0A=
 # 153 "/usr/include/limits.h" 2 3=0A=
 # 133 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 2 =
 3=0A=
 # 8 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/syslimits.h"=
  2 3=0A=
 # 12 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 2 =
 3=0A=
 # 50 "/usr/local/gcc3.1/include/g++-v3/climits" 2 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cctype" 1 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/cctype" 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/ctype.h" 1 3=0A=
 # 29 "/usr/include/ctype.h" 3=0A=
 extern "C" {=0A=
 # 40 "/usr/include/ctype.h" 3=0A=
 # 1 "/usr/include/endian.h" 1 3=0A=
 # 37 "/usr/include/endian.h" 3=0A=
 # 1 "/usr/include/bits/endian.h" 1 3=0A=
 # 38 "/usr/include/endian.h" 2 3=0A=
 # 41 "/usr/include/ctype.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   _ISupper =3D ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),=0A=
   _ISlower =3D ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),=0A=
   _ISalpha =3D ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),=0A=
   _ISdigit =3D ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),=0A=
   _ISxdigit =3D ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),=0A=
   _ISspace =3D ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),=0A=
   _ISprint =3D ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),=0A=
   _ISgraph =3D ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),=0A=
   _ISblank =3D ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),=0A=
   _IScntrl =3D ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),=0A=
   _ISpunct =3D ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),=0A=
   _ISalnum =3D ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))=0A=
 };=0A=
 # 75 "/usr/include/ctype.h" 3=0A=
 extern __const unsigned short int *__ctype_b;=0A=
 extern __const __int32_t *__ctype_tolower;=0A=
 extern __const __int32_t *__ctype_toupper;=0A=
 # 91 "/usr/include/ctype.h" 3=0A=
 extern int isalnum (int) throw ();=0A=
 extern int isalpha (int) throw ();=0A=
 extern int iscntrl (int) throw ();=0A=
 extern int isdigit (int) throw ();=0A=
 extern int islower (int) throw ();=0A=
 extern int isgraph (int) throw ();=0A=
 extern int isprint (int) throw ();=0A=
 extern int ispunct (int) throw ();=0A=
 extern int isspace (int) throw ();=0A=
 extern int isupper (int) throw ();=0A=
 extern int isxdigit (int) throw ();=0A=
 =0A=
 =0A=
 extern int isblank (int) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int tolower (int __c) throw ();=0A=
 =0A=
 =0A=
 extern int toupper (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int isascii (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int toascii (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int _toupper (int) throw ();=0A=
 extern int _tolower (int) throw ();=0A=
 # 223 "/usr/include/ctype.h" 3=0A=
 extern int __isalnum_l (int, __locale_t) throw ();=0A=
 extern int __isalpha_l (int, __locale_t) throw ();=0A=
 extern int __iscntrl_l (int, __locale_t) throw ();=0A=
 extern int __isdigit_l (int, __locale_t) throw ();=0A=
 extern int __islower_l (int, __locale_t) throw ();=0A=
 extern int __isgraph_l (int, __locale_t) throw ();=0A=
 extern int __isprint_l (int, __locale_t) throw ();=0A=
 extern int __ispunct_l (int, __locale_t) throw ();=0A=
 extern int __isspace_l (int, __locale_t) throw ();=0A=
 extern int __isupper_l (int, __locale_t) throw ();=0A=
 extern int __isxdigit_l (int, __locale_t) throw ();=0A=
 =0A=
 extern int __isblank_l (int, __locale_t) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __tolower_l (int __c, __locale_t __l) throw ();=0A=
 =0A=
 =0A=
 extern int __toupper_l (int __c, __locale_t __l) throw ();=0A=
 # 276 "/usr/include/ctype.h" 3=0A=
 }=0A=
 # 50 "/usr/local/gcc3.1/include/g++-v3/cctype" 2 3=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/cctype" 3=0A=
 namespace std=0A=
 {=0A=
   using ::isalnum;=0A=
   using ::isalpha;=0A=
   using ::iscntrl;=0A=
   using ::isdigit;=0A=
   using ::isgraph;=0A=
   using ::islower;=0A=
   using ::isprint;=0A=
   using ::ispunct;=0A=
   using ::isspace;=0A=
   using ::isupper;=0A=
   using ::isxdigit;=0A=
   using ::tolower;=0A=
   using ::toupper;=0A=
 }=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/string" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/string" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/memory" 1 3=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 1 3=0A=
 # 67 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/stdlib.h" 1 3=0A=
 # 33 "/usr/include/stdlib.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 34 "/usr/include/stdlib.h" 2 3=0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/waitflags.h" 1 3=0A=
 # 43 "/usr/include/stdlib.h" 2 3=0A=
 # 1 "/usr/include/bits/waitstatus.h" 1 3=0A=
 # 65 "/usr/include/bits/waitstatus.h" 3=0A=
 union wait=0A=
   {=0A=
     int w_status;=0A=
     struct=0A=
       {=0A=
 =0A=
         unsigned int __w_termsig:7;=0A=
         unsigned int __w_coredump:1;=0A=
         unsigned int __w_retcode:8;=0A=
         unsigned int:16;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       } __wait_terminated;=0A=
     struct=0A=
       {=0A=
 =0A=
         unsigned int __w_stopval:8;=0A=
         unsigned int __w_stopsig:8;=0A=
         unsigned int:16;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       } __wait_stopped;=0A=
   };=0A=
 # 44 "/usr/include/stdlib.h" 2 3=0A=
 # 94 "/usr/include/stdlib.h" 3=0A=
 typedef struct=0A=
   {=0A=
     int quot;=0A=
     int rem;=0A=
   } div_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
   {=0A=
     long int quot;=0A=
     long int rem;=0A=
   } ldiv_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 __extension__ typedef struct=0A=
   {=0A=
     long long int quot;=0A=
     long long int rem;=0A=
   } lldiv_t;=0A=
 # 133 "/usr/include/stdlib.h" 3=0A=
 extern size_t __ctype_get_mb_cur_max (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double atof (__const char *__nptr) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern int atoi (__const char *__nptr) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern long int atol (__const char *__nptr) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 __extension__ extern long long int atoll (__const char *__nptr)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern double strtod (__const char *__restrict __nptr,=0A=
                       char **__restrict __endptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float strtof (__const char *__restrict __nptr,=0A=
                      char **__restrict __endptr) throw ();=0A=
 =0A=
 extern long double strtold (__const char *__restrict __nptr,=0A=
                             char **__restrict __endptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long int strtol (__const char *__restrict __nptr,=0A=
                         char **__restrict __endptr, int __base) throw ();=0A=
 =0A=
 extern unsigned long int strtoul (__const char *__restrict __nptr,=0A=
                                   char **__restrict __endptr, int __base)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int strtoq (__const char *__restrict __nptr,=0A=
                              char **__restrict __endptr, int __base) =
 throw ();=0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int strtouq (__const char *__restrict __nptr,=0A=
                                        char **__restrict __endptr, int =
 __base)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int strtoll (__const char *__restrict __nptr,=0A=
                               char **__restrict __endptr, int __base) =
 throw ();=0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int strtoull (__const char *__restrict __nptr,=0A=
                                         char **__restrict __endptr, int =
 __base)=0A=
      throw ();=0A=
 # 215 "/usr/include/stdlib.h" 3=0A=
 extern long int __strtol_l (__const char *__restrict __nptr,=0A=
                             char **__restrict __endptr, int __base,=0A=
                             __locale_t __loc) throw ();=0A=
 =0A=
 extern unsigned long int __strtoul_l (__const char *__restrict __nptr,=0A=
                                       char **__restrict __endptr,=0A=
                                       int __base, __locale_t __loc) =
 throw ();=0A=
 =0A=
 __extension__=0A=
 extern long long int __strtoll_l (__const char *__restrict __nptr,=0A=
                                   char **__restrict __endptr, int __base,=0A=
                                   __locale_t __loc) throw ();=0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int __strtoull_l (__const char *__restrict =
 __nptr,=0A=
                                             char **__restrict __endptr,=0A=
                                             int __base, __locale_t __loc)=0A=
      throw ();=0A=
 =0A=
 extern double __strtod_l (__const char *__restrict __nptr,=0A=
                           char **__restrict __endptr, __locale_t __loc)=0A=
      throw ();=0A=
 =0A=
 extern float __strtof_l (__const char *__restrict __nptr,=0A=
                          char **__restrict __endptr, __locale_t __loc) =
 throw ();=0A=
 =0A=
 extern long double __strtold_l (__const char *__restrict __nptr,=0A=
                                 char **__restrict __endptr,=0A=
                                 __locale_t __loc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double __strtod_internal (__const char *__restrict __nptr,=0A=
                                  char **__restrict __endptr, int __group)=0A=
      throw ();=0A=
 extern float __strtof_internal (__const char *__restrict __nptr,=0A=
                                 char **__restrict __endptr, int __group)=0A=
      throw ();=0A=
 extern long double __strtold_internal (__const char *__restrict __nptr,=0A=
                                        char **__restrict __endptr,=0A=
                                        int __group) throw ();=0A=
 =0A=
 extern long int __strtol_internal (__const char *__restrict __nptr,=0A=
                                    char **__restrict __endptr,=0A=
                                    int __base, int __group) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern unsigned long int __strtoul_internal (__const char *__restrict =
 __nptr,=0A=
                                              char **__restrict __endptr,=0A=
                                              int __base, int __group) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern long long int __strtoll_internal (__const char *__restrict __nptr,=0A=
                                          char **__restrict __endptr,=0A=
                                          int __base, int __group) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 __extension__=0A=
 extern unsigned long long int __strtoull_internal (__const char *=0A=
                                                    __restrict __nptr,=0A=
                                                    char **__restrict =
 __endptr,=0A=
                                                    int __base, int =
 __group)=0A=
      throw ();=0A=
 # 384 "/usr/include/stdlib.h" 3=0A=
 extern char *l64a (long int __n) throw ();=0A=
 =0A=
 =0A=
 extern long int a64l (__const char *__s) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/types.h" 1 3=0A=
 # 28 "/usr/include/sys/types.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __u_char u_char;=0A=
 typedef __u_short u_short;=0A=
 typedef __u_int u_int;=0A=
 typedef __u_long u_long;=0A=
 typedef __quad_t quad_t;=0A=
 typedef __u_quad_t u_quad_t;=0A=
 typedef __fsid_t fsid_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __loff_t loff_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef __ino_t ino_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __ino64_t ino64_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __dev_t dev_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __gid_t gid_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __mode_t mode_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __nlink_t nlink_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __uid_t uid_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __off_t off_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __off64_t off64_t;=0A=
 # 104 "/usr/include/sys/types.h" 3=0A=
 typedef __id_t id_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __ssize_t ssize_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __daddr_t daddr_t;=0A=
 typedef __caddr_t caddr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __key_t key_t;=0A=
 # 136 "/usr/include/sys/types.h" 3=0A=
 typedef __useconds_t useconds_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef __suseconds_t suseconds_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 147 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long int ulong;=0A=
 typedef unsigned short int ushort;=0A=
 typedef unsigned int uint;=0A=
 # 190 "/usr/include/sys/types.h" 3=0A=
 typedef int int8_t __attribute__ ((__mode__ (__QI__)));=0A=
 typedef int int16_t __attribute__ ((__mode__ (__HI__)));=0A=
 typedef int int32_t __attribute__ ((__mode__ (__SI__)));=0A=
 typedef int int64_t __attribute__ ((__mode__ (__DI__)));=0A=
 =0A=
 =0A=
 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));=0A=
 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));=0A=
 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));=0A=
 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));=0A=
 =0A=
 typedef int register_t __attribute__ ((__mode__ (__word__)));=0A=
 # 215 "/usr/include/sys/types.h" 3=0A=
 # 1 "/usr/include/sys/select.h" 1 3=0A=
 # 31 "/usr/include/sys/select.h" 3=0A=
 # 1 "/usr/include/bits/select.h" 1 3=0A=
 # 32 "/usr/include/sys/select.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/sigset.h" 1 3=0A=
 # 35 "/usr/include/sys/select.h" 2 3=0A=
 # 46 "/usr/include/sys/select.h" 3=0A=
 # 1 "/usr/include/bits/time.h" 1 3=0A=
 # 67 "/usr/include/bits/time.h" 3=0A=
 struct timeval=0A=
   {=0A=
     __time_t tv_sec;=0A=
     __suseconds_t tv_usec;=0A=
   };=0A=
 # 47 "/usr/include/sys/select.h" 2 3=0A=
 # 55 "/usr/include/sys/select.h" 3=0A=
 typedef long int __fd_mask;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   } fd_set;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __fd_mask fd_mask;=0A=
 # 95 "/usr/include/sys/select.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int select (int __nfds, fd_set *__restrict __readfds,=0A=
                    fd_set *__restrict __writefds,=0A=
                    fd_set *__restrict __exceptfds,=0A=
                    struct timeval *__restrict __timeout) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pselect (int __nfds, fd_set *__restrict __readfds,=0A=
                     fd_set *__restrict __writefds,=0A=
                     fd_set *__restrict __exceptfds,=0A=
                     const struct timespec *__restrict __timeout,=0A=
                     const __sigset_t *__restrict __sigmask) throw ();=0A=
 =0A=
 =0A=
 }=0A=
 # 216 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/sysmacros.h" 1 3=0A=
 # 219 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __blksize_t blksize_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __blkcnt_t blkcnt_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef __fsblkcnt_t fsblkcnt_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef __fsfilcnt_t fsfilcnt_t;=0A=
 # 257 "/usr/include/sys/types.h" 3=0A=
 typedef __blkcnt64_t blkcnt64_t;=0A=
 typedef __fsblkcnt64_t fsblkcnt64_t;=0A=
 typedef __fsfilcnt64_t fsfilcnt64_t;=0A=
 =0A=
 =0A=
 }=0A=
 # 391 "/usr/include/stdlib.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int random (void) throw ();=0A=
 =0A=
 =0A=
 extern void srandom (unsigned int __seed) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *initstate (unsigned int __seed, char *__statebuf,=0A=
                         size_t __statelen) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *setstate (char *__statebuf) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct random_data=0A=
   {=0A=
     int32_t *fptr;=0A=
     int32_t *rptr;=0A=
     int32_t *state;=0A=
     int rand_type;=0A=
     int rand_deg;=0A=
     int rand_sep;=0A=
     int32_t *end_ptr;=0A=
   };=0A=
 =0A=
 extern int random_r (struct random_data *__restrict __buf,=0A=
                      int32_t *__restrict __result) throw ();=0A=
 =0A=
 extern int srandom_r (unsigned int __seed, struct random_data *__buf) =
 throw ();=0A=
 =0A=
 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,=0A=
                         size_t __statelen,=0A=
                         struct random_data *__restrict __buf) throw ();=0A=
 =0A=
 extern int setstate_r (char *__restrict __statebuf,=0A=
                        struct random_data *__restrict __buf) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int rand (void) throw ();=0A=
 =0A=
 extern void srand (unsigned int __seed) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int rand_r (unsigned int *__seed) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double drand48 (void) throw ();=0A=
 extern double erand48 (unsigned short int __xsubi[3]) throw ();=0A=
 =0A=
 =0A=
 extern long int lrand48 (void) throw ();=0A=
 extern long int nrand48 (unsigned short int __xsubi[3]) throw ();=0A=
 =0A=
 =0A=
 extern long int mrand48 (void) throw ();=0A=
 extern long int jrand48 (unsigned short int __xsubi[3]) throw ();=0A=
 =0A=
 =0A=
 extern void srand48 (long int __seedval) throw ();=0A=
 extern unsigned short int *seed48 (unsigned short int __seed16v[3]) =
 throw ();=0A=
 extern void lcong48 (unsigned short int __param[7]) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct drand48_data=0A=
   {=0A=
     unsigned short int __x[3];=0A=
     unsigned short int __old_x[3];=0A=
     unsigned short int __c;=0A=
     unsigned short int __init;=0A=
     unsigned long long int __a;=0A=
   };=0A=
 =0A=
 =0A=
 extern int drand48_r (struct drand48_data *__restrict __buffer,=0A=
                       double *__restrict __result) throw ();=0A=
 extern int erand48_r (unsigned short int __xsubi[3],=0A=
                       struct drand48_data *__restrict __buffer,=0A=
                       double *__restrict __result) throw ();=0A=
 =0A=
 =0A=
 extern int lrand48_r (struct drand48_data *__restrict __buffer,=0A=
                       long int *__restrict __result) throw ();=0A=
 extern int nrand48_r (unsigned short int __xsubi[3],=0A=
                       struct drand48_data *__restrict __buffer,=0A=
                       long int *__restrict __result) throw ();=0A=
 =0A=
 =0A=
 extern int mrand48_r (struct drand48_data *__restrict __buffer,=0A=
                       long int *__restrict __result) throw ();=0A=
 extern int jrand48_r (unsigned short int __xsubi[3],=0A=
                       struct drand48_data *__restrict __buffer,=0A=
                       long int *__restrict __result) throw ();=0A=
 =0A=
 =0A=
 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)=0A=
      throw ();=0A=
 =0A=
 extern int seed48_r (unsigned short int __seed16v[3],=0A=
                      struct drand48_data *__buffer) throw ();=0A=
 =0A=
 extern int lcong48_r (unsigned short int __param[7],=0A=
                       struct drand48_data *__buffer) throw ();=0A=
 # 527 "/usr/include/stdlib.h" 3=0A=
 extern void *malloc (size_t __size) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 extern void *calloc (size_t __nmemb, size_t __size)=0A=
      throw () __attribute__ ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 extern void free (void *__ptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void cfree (void *__ptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/alloca.h" 1 3=0A=
 # 25 "/usr/include/alloca.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 26 "/usr/include/alloca.h" 2 3=0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *alloca (size_t __size) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 547 "/usr/include/stdlib.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *valloc (size_t __size) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int posix_memalign (void **__memptr, size_t __alignment, size_t =
 __size)=0A=
      throw () __attribute__ ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 extern void abort (void) throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 extern int atexit (void (*__func) (void)) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int on_exit (void (*__func) (int __status, void *__arg), void =
 *__arg)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void exit (int __status) throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *getenv (__const char *__name) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *__secure_getenv (__const char *__name) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int putenv (char *__string) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setenv (__const char *__name, __const char *__value, int =
 __replace)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern int unsetenv (__const char *__name) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int clearenv (void) throw ();=0A=
 # 623 "/usr/include/stdlib.h" 3=0A=
 extern char *mktemp (char *__template) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int mkstemp (char *__template) throw ();=0A=
 # 640 "/usr/include/stdlib.h" 3=0A=
 extern int mkstemp64 (char *__template) throw ();=0A=
 # 650 "/usr/include/stdlib.h" 3=0A=
 extern char *mkdtemp (char *__template) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int system (__const char *__command) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *canonicalize_file_name (__const char *__name) throw ();=0A=
 # 672 "/usr/include/stdlib.h" 3=0A=
 extern char *realpath (__const char *__restrict __name,=0A=
                        char *__restrict __resolved) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int (*__compar_fn_t) (__const void *, __const void *);=0A=
 =0A=
 =0A=
 typedef __compar_fn_t comparison_fn_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *bsearch (__const void *__key, __const void *__base,=0A=
                       size_t __nmemb, size_t __size, __compar_fn_t =
 __compar);=0A=
 =0A=
 =0A=
 =0A=
 extern void qsort (void *__base, size_t __nmemb, size_t __size,=0A=
                    __compar_fn_t __compar);=0A=
 =0A=
 =0A=
 =0A=
 extern int abs (int __x) throw () __attribute__ ((__const__));=0A=
 extern long int labs (long int __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 __extension__ extern long long int llabs (long long int __x)=0A=
      throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern div_t div (int __numer, int __denom)=0A=
      throw () __attribute__ ((__const__));=0A=
 extern ldiv_t ldiv (long int __numer, long int __denom)=0A=
      throw () __attribute__ ((__const__));=0A=
 =0A=
 __extension__ extern lldiv_t lldiv (long long int __numer,=0A=
                                     long long int __denom)=0A=
      throw () __attribute__ ((__const__));=0A=
 # 728 "/usr/include/stdlib.h" 3=0A=
 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,=0A=
                    int *__restrict __sign) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,=0A=
                    int *__restrict __sign) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *gcvt (double __value, int __ndigit, char *__buf) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *qecvt (long double __value, int __ndigit,=0A=
                     int *__restrict __decpt, int *__restrict __sign) =
 throw ();=0A=
 extern char *qfcvt (long double __value, int __ndigit,=0A=
                     int *__restrict __decpt, int *__restrict __sign) =
 throw ();=0A=
 extern char *qgcvt (long double __value, int __ndigit, char *__buf) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,=0A=
                    int *__restrict __sign, char *__restrict __buf,=0A=
                    size_t __len) throw ();=0A=
 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,=0A=
                    int *__restrict __sign, char *__restrict __buf,=0A=
                    size_t __len) throw ();=0A=
 =0A=
 extern int qecvt_r (long double __value, int __ndigit,=0A=
                     int *__restrict __decpt, int *__restrict __sign,=0A=
                     char *__restrict __buf, size_t __len) throw ();=0A=
 extern int qfcvt_r (long double __value, int __ndigit,=0A=
                     int *__restrict __decpt, int *__restrict __sign,=0A=
                     char *__restrict __buf, size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int mblen (__const char *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int mbtowc (wchar_t *__restrict __pwc,=0A=
                    __const char *__restrict __s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int wctomb (char *__s, wchar_t __wchar) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern size_t mbstowcs (wchar_t *__restrict __pwcs,=0A=
                         __const char *__restrict __s, size_t __n) throw =
 ();=0A=
 =0A=
 extern size_t wcstombs (char *__restrict __s,=0A=
                         __const wchar_t *__restrict __pwcs, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int rpmatch (__const char *__response) throw ();=0A=
 # 808 "/usr/include/stdlib.h" 3=0A=
 extern int getsubopt (char **__restrict __optionp,=0A=
                       char *__const *__restrict __tokens,=0A=
                       char **__restrict __valuep) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void setkey (__const char *__key) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int posix_openpt (int __oflag) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int grantpt (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int unlockpt (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *ptsname (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw ();=0A=
 =0A=
 =0A=
 extern int getpt (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getloadavg (double __loadavg[], int __nelem) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 2 3=0A=
 # 84 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A=
 namespace std=0A=
 {=0A=
   using ::div_t;=0A=
   using ::ldiv_t;=0A=
 =0A=
   using ::abort;=0A=
   using ::abs;=0A=
   using ::atexit;=0A=
   using ::atof;=0A=
   using ::atoi;=0A=
   using ::atol;=0A=
   using ::bsearch;=0A=
   using ::calloc;=0A=
   using ::div;=0A=
   using ::exit;=0A=
   using ::free;=0A=
   using ::getenv;=0A=
   using ::labs;=0A=
   using ::ldiv;=0A=
   using ::malloc;=0A=
   using ::mblen;=0A=
   using ::mbstowcs;=0A=
   using ::mbtowc;=0A=
   using ::qsort;=0A=
   using ::rand;=0A=
   using ::realloc;=0A=
   using ::srand;=0A=
   using ::strtod;=0A=
   using ::strtol;=0A=
   using ::strtoul;=0A=
   using ::system;=0A=
   using ::wcstombs;=0A=
   using ::wctomb;=0A=
 =0A=
   inline long=0A=
   abs(long __i) { return labs(__i); }=0A=
 =0A=
   inline ldiv_t=0A=
   div(long __i, long __j) { return ldiv(__i, __j); }=0A=
 }=0A=
 # 136 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A=
 namespace __gnu_cxx=0A=
 {=0A=
   using ::lldiv_t;=0A=
   using ::_Exit;=0A=
 =0A=
   inline long long=0A=
   abs(long long __x) { return __x >=3D 0 ? __x : -__x; }=0A=
 =0A=
   inline long long=0A=
   llabs(long long __x) { return __x >=3D 0 ? __x : -__x; }=0A=
 =0A=
   inline lldiv_t=0A=
   div(long long __n, long long __d)=0A=
   { lldiv_t __q; __q.quot =3D __n / __d; __q.rem =3D __n % __d; return =
 __q; }=0A=
 =0A=
   inline lldiv_t=0A=
   lldiv(long long __n, long long __d)=0A=
   { lldiv_t __q; __q.quot =3D __n / __d; __q.rem =3D __n % __d; return =
 __q; }=0A=
 =0A=
   using ::atoll;=0A=
   using ::strtof;=0A=
   using ::strtoll;=0A=
   using ::strtoull;=0A=
   using ::strtold;=0A=
 }=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using __gnu_cxx::lldiv_t;=0A=
   using __gnu_cxx::_Exit;=0A=
   using __gnu_cxx::abs;=0A=
   using __gnu_cxx::llabs;=0A=
   using __gnu_cxx::div;=0A=
   using __gnu_cxx::lldiv;=0A=
   using __gnu_cxx::atoll;=0A=
   using __gnu_cxx::strtof;=0A=
   using __gnu_cxx::strtoll;=0A=
   using __gnu_cxx::strtoull;=0A=
   using __gnu_cxx::strtold;=0A=
 }=0A=
 # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/new" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/new" 3=0A=
 extern "C++" {=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
   class bad_alloc : public exception=0A=
   {=0A=
   public:=0A=
     bad_alloc() throw() { }=0A=
 =0A=
 =0A=
     virtual ~bad_alloc() throw();=0A=
   };=0A=
 =0A=
   struct nothrow_t { };=0A=
   extern const nothrow_t nothrow;=0A=
 =0A=
 =0A=
   typedef void (*new_handler)();=0A=
 =0A=
   new_handler set_new_handler(new_handler);=0A=
 }=0A=
 # 79 "/usr/local/gcc3.1/include/g++-v3/new" 3=0A=
 void* operator new(std::size_t) throw (std::bad_alloc);=0A=
 void* operator new[](std::size_t) throw (std::bad_alloc);=0A=
 void operator delete(void*) throw();=0A=
 void operator delete[](void*) throw();=0A=
 void* operator new(std::size_t, const std::nothrow_t&) throw();=0A=
 void* operator new[](std::size_t, const std::nothrow_t&) throw();=0A=
 void operator delete(void*, const std::nothrow_t&) throw();=0A=
 void operator delete[](void*, const std::nothrow_t&) throw();=0A=
 =0A=
 =0A=
 inline void* operator new(std::size_t, void* __p) throw() { return __p; }=0A=
 inline void* operator new[](std::size_t, void* __p) throw() { return =
 __p; }=0A=
 =0A=
 }=0A=
 # 70 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 struct pair {=0A=
   typedef _T1 first_type;=0A=
   typedef _T2 second_type;=0A=
 =0A=
   _T1 first;=0A=
   _T2 second;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   pair() : first(), second() {}=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}=0A=
 =0A=
 =0A=
   template <class _U1, class _U2>=0A=
   pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) =
 {}=0A=
 };=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator=3D=3D(const pair<_T1, _T2>& __x, const pair<_T1, =
 _T2>& __y)=0A=
 {=0A=
   return __x.first =3D=3D __y.first && __x.second =3D=3D __y.second;=0A=
 }=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& =
 __y)=0A=
 {=0A=
   return __x.first < __y.first ||=0A=
          (!(__y.first < __x.first) && __x.second < __y.second);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator!=3D(const pair<_T1, _T2>& __x, const pair<_T1, =
 _T2>& __y) {=0A=
   return !(__x =3D=3D __y);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& =
 __y) {=0A=
   return __y < __x;=0A=
 }=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator<=3D(const pair<_T1, _T2>& __x, const pair<_T1, =
 _T2>& __y) {=0A=
   return !(__y < __x);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator>=3D(const pair<_T1, _T2>& __x, const pair<_T1, =
 _T2>& __y) {=0A=
   return !(__x < __y);=0A=
 }=0A=
 # 140 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 3=0A=
 template <class _T1, class _T2>=0A=
 =0A=
 =0A=
 inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y)=0A=
 =0A=
 =0A=
 =0A=
 {=0A=
   return pair<_T1, _T2>(__x, __y);=0A=
 }=0A=
 =0A=
 }=0A=
 # 72 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 1 3=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A=
 # 90 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A=
 struct __true_type {};=0A=
 struct __false_type {};=0A=
 =0A=
 template <class _Tp>=0A=
 struct __type_traits {=0A=
    typedef __true_type this_dummy_member_must_be_first;=0A=
 # 113 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A=
    typedef __false_type has_trivial_default_constructor;=0A=
    typedef __false_type has_trivial_copy_constructor;=0A=
    typedef __false_type has_trivial_assignment_operator;=0A=
    typedef __false_type has_trivial_destructor;=0A=
    typedef __false_type is_POD_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<> struct __type_traits<bool> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<char> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<signed char> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<unsigned char> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<wchar_t> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<short> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<unsigned short> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<int> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<unsigned int> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<long> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<unsigned long> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<long long> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<unsigned long long> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<float> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<double> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template<> struct __type_traits<long double> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 template <class _Tp>=0A=
 struct __type_traits<_Tp*> {=0A=
    typedef __true_type has_trivial_default_constructor;=0A=
    typedef __true_type has_trivial_copy_constructor;=0A=
    typedef __true_type has_trivial_assignment_operator;=0A=
    typedef __true_type has_trivial_destructor;=0A=
    typedef __true_type is_POD_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Tp> struct _Is_integer {=0A=
   typedef __false_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<bool> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<char> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<signed char> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<unsigned char> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<wchar_t> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<short> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<unsigned short> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<int> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<unsigned int> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<long> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<unsigned long> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<long long> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<> struct _Is_integer<unsigned long long> {=0A=
   typedef __true_type _Integral;=0A=
 };=0A=
 =0A=
 template<typename _Tp> struct _Is_normal_iterator {=0A=
    typedef __false_type _Normal;=0A=
 };=0A=
 =0A=
 =0A=
 namespace __gnu_cxx=0A=
 {=0A=
   template<typename _Iterator, typename _Container> class =
 __normal_iterator;=0A=
 }=0A=
 =0A=
 template<typename _Iterator, typename _Container>=0A=
 struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, =
 _Container> > {=0A=
    typedef __true_type _Normal;=0A=
 };=0A=
 # 73 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 1 3=0A=
 # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 80 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A=
   struct input_iterator_tag {};=0A=
 =0A=
   struct output_iterator_tag {};=0A=
 =0A=
   struct forward_iterator_tag : public input_iterator_tag {};=0A=
 =0A=
   struct bidirectional_iterator_tag : public forward_iterator_tag {};=0A=
 =0A=
   struct random_access_iterator_tag : public bidirectional_iterator_tag =
 {};=0A=
 # 100 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A=
   template<typename _Category, typename _Tp, typename _Distance =3D =
 ptrdiff_t,=0A=
            typename _Pointer =3D _Tp*, typename _Reference =3D _Tp&>=0A=
     struct iterator {=0A=
 =0A=
       typedef _Category iterator_category;=0A=
 =0A=
       typedef _Tp value_type;=0A=
 =0A=
       typedef _Distance difference_type;=0A=
 =0A=
       typedef _Pointer pointer;=0A=
 =0A=
       typedef _Reference reference;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Iterator>=0A=
     struct iterator_traits {=0A=
       typedef typename _Iterator::iterator_category iterator_category;=0A=
       typedef typename _Iterator::value_type value_type;=0A=
       typedef typename _Iterator::difference_type difference_type;=0A=
       typedef typename _Iterator::pointer pointer;=0A=
       typedef typename _Iterator::reference reference;=0A=
     };=0A=
 =0A=
   template<typename _Tp>=0A=
     struct iterator_traits<_Tp*> {=0A=
       typedef random_access_iterator_tag iterator_category;=0A=
       typedef _Tp value_type;=0A=
       typedef ptrdiff_t difference_type;=0A=
       typedef _Tp* pointer;=0A=
       typedef _Tp& reference;=0A=
     };=0A=
 =0A=
   template<typename _Tp>=0A=
     struct iterator_traits<const _Tp*> {=0A=
       typedef random_access_iterator_tag iterator_category;=0A=
       typedef _Tp value_type;=0A=
       typedef ptrdiff_t difference_type;=0A=
       typedef const _Tp* pointer;=0A=
       typedef const _Tp& reference;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Iter>=0A=
     inline typename iterator_traits<_Iter>::iterator_category=0A=
     __iterator_category(const _Iter&)=0A=
     { return typename iterator_traits<_Iter>::iterator_category(); }=0A=
 =0A=
 }=0A=
 # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3=0A=
 # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/concept_check.h" 1 3=0A=
 # 39 "/usr/local/gcc3.1/include/g++-v3/bits/concept_check.h" 3=0A=
 # 69 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 2 =
 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 template<typename _InputIterator>=0A=
   inline typename iterator_traits<_InputIterator>::difference_type=0A=
   __distance(_InputIterator __first, _InputIterator __last, =
 input_iterator_tag)=0A=
   {=0A=
 =0A=
    =0A=
 =0A=
     typename iterator_traits<_InputIterator>::difference_type __n =3D 0;=0A=
     while (__first !=3D __last) {=0A=
       ++__first; ++__n;=0A=
     }=0A=
     return __n;=0A=
   }=0A=
 =0A=
 template<typename _RandomAccessIterator>=0A=
   inline typename iterator_traits<_RandomAccessIterator>::difference_type=0A=
   __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,=0A=
              random_access_iterator_tag)=0A=
   {=0A=
 =0A=
    =0A=
     return __last - __first;=0A=
   }=0A=
 # 111 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A=
 template<typename _InputIterator>=0A=
   inline typename iterator_traits<_InputIterator>::difference_type=0A=
   distance(_InputIterator __first, _InputIterator __last)=0A=
   {=0A=
 =0A=
     return __distance(__first, __last, __iterator_category(__first));=0A=
   }=0A=
 =0A=
 template<typename _InputIter, typename _Distance>=0A=
   inline void=0A=
   __advance(_InputIter& __i, _Distance __n, input_iterator_tag)=0A=
   {=0A=
 =0A=
    =0A=
     while (__n--) ++__i;=0A=
   }=0A=
 =0A=
 template<typename _BidirectionalIterator, typename _Distance>=0A=
   inline void=0A=
   __advance(_BidirectionalIterator& __i, _Distance __n,=0A=
             bidirectional_iterator_tag)=0A=
   {=0A=
 =0A=
    =0A=
 =0A=
     if (__n > 0)=0A=
       while (__n--) ++__i;=0A=
     else=0A=
       while (__n++) --__i;=0A=
   }=0A=
 =0A=
 template<typename _RandomAccessIterator, typename _Distance>=0A=
   inline void=0A=
   __advance(_RandomAccessIterator& __i, _Distance __n,=0A=
             random_access_iterator_tag)=0A=
   {=0A=
 =0A=
    =0A=
     __i +=3D __n;=0A=
   }=0A=
 # 164 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A=
 template<typename _InputIterator, typename _Distance>=0A=
   inline void=0A=
   advance(_InputIterator& __i, _Distance __n)=0A=
   {=0A=
 =0A=
     __advance(__i, __n, __iterator_category(__i));=0A=
   }=0A=
 =0A=
 }=0A=
 # 75 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 1 3=0A=
 # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
 namespace std=0A=
 {=0A=
 # 89 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Iterator>=0A=
     class reverse_iterator=0A=
     : public iterator<typename =
 iterator_traits<_Iterator>::iterator_category,=0A=
                       typename iterator_traits<_Iterator>::value_type,=0A=
                       typename =
 iterator_traits<_Iterator>::difference_type,=0A=
                       typename iterator_traits<_Iterator>::pointer,=0A=
                       typename iterator_traits<_Iterator>::reference>=0A=
     {=0A=
     protected:=0A=
       _Iterator current;=0A=
 =0A=
     public:=0A=
       typedef _Iterator iterator_type;=0A=
       typedef typename iterator_traits<_Iterator>::difference_type=0A=
                                                                =
 difference_type;=0A=
       typedef typename iterator_traits<_Iterator>::reference reference;=0A=
       typedef typename iterator_traits<_Iterator>::pointer pointer;=0A=
 =0A=
     public:=0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator() { }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       explicit=0A=
       reverse_iterator(iterator_type __x) : current(__x) { }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator(const reverse_iterator& __x)=0A=
       : current(__x.current) { }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       template<typename _Iter>=0A=
         reverse_iterator(const reverse_iterator<_Iter>& __x)=0A=
         : current(__x.base()) { }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       iterator_type=0A=
       base() const { return current; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reference=0A=
       operator*() const=0A=
       {=0A=
         _Iterator __tmp =3D current;=0A=
         return *--__tmp;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       pointer=0A=
       operator->() const { return &(operator*()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator&=0A=
       operator++()=0A=
       {=0A=
         --current;=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator=0A=
       operator++(int)=0A=
       {=0A=
         reverse_iterator __tmp =3D *this;=0A=
         --current;=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator&=0A=
       operator--()=0A=
       {=0A=
         ++current;=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator operator--(int)=0A=
       {=0A=
         reverse_iterator __tmp =3D *this;=0A=
         ++current;=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator=0A=
       operator+(difference_type __n) const=0A=
       { return reverse_iterator(current - __n); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator&=0A=
       operator+=3D(difference_type __n)=0A=
       {=0A=
         current -=3D __n;=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator=0A=
       operator-(difference_type __n) const=0A=
       { return reverse_iterator(current + __n); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reverse_iterator&=0A=
       operator-=3D(difference_type __n)=0A=
       {=0A=
         current +=3D __n;=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       reference=0A=
       operator[](difference_type __n) const { return *(*this + __n); }=0A=
     };=0A=
 # 269 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator=3D=3D(const reverse_iterator<_Iterator>& __x,=0A=
                const reverse_iterator<_Iterator>& __y)=0A=
     { return __x.base() =3D=3D __y.base(); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator<(const reverse_iterator<_Iterator>& __x,=0A=
               const reverse_iterator<_Iterator>& __y)=0A=
     { return __y.base() < __x.base(); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator!=3D(const reverse_iterator<_Iterator>& __x,=0A=
                const reverse_iterator<_Iterator>& __y)=0A=
     { return !(__x =3D=3D __y); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator>(const reverse_iterator<_Iterator>& __x,=0A=
               const reverse_iterator<_Iterator>& __y)=0A=
     { return __y < __x; }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator<=3D(const reverse_iterator<_Iterator>& __x,=0A=
                 const reverse_iterator<_Iterator>& __y)=0A=
     { return !(__y < __x); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline bool=0A=
     operator>=3D(const reverse_iterator<_Iterator>& __x,=0A=
                const reverse_iterator<_Iterator>& __y)=0A=
     { return !(__x < __y); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline typename reverse_iterator<_Iterator>::difference_type=0A=
     operator-(const reverse_iterator<_Iterator>& __x,=0A=
               const reverse_iterator<_Iterator>& __y)=0A=
     { return __y.base() - __x.base(); }=0A=
 =0A=
   template<typename _Iterator>=0A=
     inline reverse_iterator<_Iterator>=0A=
     operator+(typename reverse_iterator<_Iterator>::difference_type __n,=0A=
               const reverse_iterator<_Iterator>& __x)=0A=
     { return reverse_iterator<_Iterator>(__x.base() - __n); }=0A=
 # 327 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container>=0A=
     class back_insert_iterator=0A=
     : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     protected:=0A=
       _Container* container;=0A=
 =0A=
     public:=0A=
 =0A=
       typedef _Container container_type;=0A=
 =0A=
 =0A=
       explicit=0A=
       back_insert_iterator(_Container& __x) : container(&__x) { }=0A=
 # 353 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
       back_insert_iterator&=0A=
       operator=3D(typename _Container::const_reference __value)=0A=
       {=0A=
         container->push_back(__value);=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
       back_insert_iterator&=0A=
       operator*() { return *this; }=0A=
 =0A=
 =0A=
       back_insert_iterator&=0A=
       operator++() { return *this; }=0A=
 =0A=
 =0A=
       back_insert_iterator=0A=
       operator++(int) { return *this; }=0A=
     };=0A=
 # 384 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container>=0A=
     inline back_insert_iterator<_Container>=0A=
     back_inserter(_Container& __x)=0A=
     { return back_insert_iterator<_Container>(__x); }=0A=
 # 397 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container>=0A=
     class front_insert_iterator=0A=
     : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     protected:=0A=
       _Container* container;=0A=
 =0A=
     public:=0A=
 =0A=
       typedef _Container container_type;=0A=
 =0A=
 =0A=
       explicit front_insert_iterator(_Container& __x) : container(&__x) =
 { }=0A=
 # 422 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
       front_insert_iterator&=0A=
       operator=3D(typename _Container::const_reference __value)=0A=
       {=0A=
         container->push_front(__value);=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
       front_insert_iterator&=0A=
       operator*() { return *this; }=0A=
 =0A=
 =0A=
       front_insert_iterator&=0A=
       operator++() { return *this; }=0A=
 =0A=
 =0A=
       front_insert_iterator=0A=
       operator++(int) { return *this; }=0A=
     };=0A=
 # 453 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container>=0A=
     inline front_insert_iterator<_Container>=0A=
     front_inserter(_Container& __x)=0A=
     { return front_insert_iterator<_Container>(__x); }=0A=
 # 470 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container>=0A=
     class insert_iterator=0A=
     : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     protected:=0A=
       _Container* container;=0A=
       typename _Container::iterator iter;=0A=
 =0A=
     public:=0A=
 =0A=
       typedef _Container container_type;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       insert_iterator(_Container& __x, typename _Container::iterator __i)=0A=
       : container(&__x), iter(__i) {}=0A=
 # 512 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
       insert_iterator&=0A=
       operator=3D(const typename _Container::const_reference __value)=0A=
       {=0A=
         iter =3D container->insert(iter, __value);=0A=
         ++iter;=0A=
         return *this;=0A=
       }=0A=
 =0A=
 =0A=
       insert_iterator&=0A=
       operator*() { return *this; }=0A=
 =0A=
 =0A=
       insert_iterator&=0A=
       operator++() { return *this; }=0A=
 =0A=
 =0A=
       insert_iterator&=0A=
       operator++(int) { return *this; }=0A=
     };=0A=
 # 544 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _Container, typename _Iterator>=0A=
     inline insert_iterator<_Container>=0A=
     inserter(_Container& __x, _Iterator __i)=0A=
     {=0A=
       return insert_iterator<_Container>(__x,=0A=
                                          typename =
 _Container::iterator(__i));=0A=
     }=0A=
 }=0A=
 =0A=
 namespace __gnu_cxx=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using std::iterator_traits;=0A=
   using std::iterator;=0A=
   template<typename _Iterator, typename _Container>=0A=
     class __normal_iterator=0A=
       : public iterator<typename =
 iterator_traits<_Iterator>::iterator_category,=0A=
                         typename iterator_traits<_Iterator>::value_type,=0A=
                         typename =
 iterator_traits<_Iterator>::difference_type,=0A=
                         typename iterator_traits<_Iterator>::pointer,=0A=
                         typename iterator_traits<_Iterator>::reference>=0A=
     {=0A=
     protected:=0A=
       _Iterator _M_current;=0A=
 =0A=
     public:=0A=
       typedef typename iterator_traits<_Iterator>::difference_type=0A=
                                                                =
 difference_type;=0A=
       typedef typename iterator_traits<_Iterator>::reference reference;=0A=
       typedef typename iterator_traits<_Iterator>::pointer pointer;=0A=
 =0A=
       __normal_iterator() : _M_current(_Iterator()) { }=0A=
 =0A=
       explicit=0A=
       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }=0A=
 =0A=
 =0A=
       template<typename _Iter>=0A=
       inline __normal_iterator(const __normal_iterator<_Iter, =
 _Container>& __i)=0A=
         : _M_current(__i.base()) { }=0A=
 =0A=
 =0A=
       reference=0A=
       operator*() const { return *_M_current; }=0A=
 =0A=
       pointer=0A=
       operator->() const { return _M_current; }=0A=
 =0A=
       __normal_iterator&=0A=
       operator++() { ++_M_current; return *this; }=0A=
 =0A=
       __normal_iterator=0A=
       operator++(int) { return __normal_iterator(_M_current++); }=0A=
 =0A=
 =0A=
       __normal_iterator&=0A=
       operator--() { --_M_current; return *this; }=0A=
 =0A=
       __normal_iterator=0A=
       operator--(int) { return __normal_iterator(_M_current--); }=0A=
 =0A=
 =0A=
       reference=0A=
       operator[](const difference_type& __n) const=0A=
       { return _M_current[__n]; }=0A=
 =0A=
       __normal_iterator&=0A=
       operator+=3D(const difference_type& __n)=0A=
       { _M_current +=3D __n; return *this; }=0A=
 =0A=
       __normal_iterator=0A=
       operator+(const difference_type& __n) const=0A=
       { return __normal_iterator(_M_current + __n); }=0A=
 =0A=
       __normal_iterator&=0A=
       operator-=3D(const difference_type& __n)=0A=
       { _M_current -=3D __n; return *this; }=0A=
 =0A=
       __normal_iterator=0A=
       operator-(const difference_type& __n) const=0A=
       { return __normal_iterator(_M_current - __n); }=0A=
 =0A=
       difference_type=0A=
       operator-(const __normal_iterator& __i) const=0A=
       { return _M_current - __i._M_current; }=0A=
 =0A=
       const _Iterator&=0A=
       base() const { return _M_current; }=0A=
     };=0A=
 # 649 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator=3D=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
              const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() =3D=3D __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator=3D=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
              const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() =3D=3D __rhs.base(); }=0A=
 =0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator!=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
              const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() !=3D __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator!=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
              const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() !=3D __rhs.base(); }=0A=
 =0A=
 =0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
             const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() < __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator<(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
              const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() < __rhs.base(); }=0A=
 =0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
             const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() > __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator>(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
             const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() > __rhs.base(); }=0A=
 =0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator<=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
              const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() <=3D __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator<=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
              const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() <=3D __rhs.base(); }=0A=
 =0A=
   template<typename _IteratorL, typename _IteratorR, typename _Container>=0A=
   inline bool=0A=
   operator>=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A=
              const __normal_iterator<_IteratorR, _Container>& __rhs)=0A=
   { return __lhs.base() >=3D __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline bool=0A=
   operator>=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A=
              const __normal_iterator<_Iterator, _Container>& __rhs)=0A=
   { return __lhs.base() >=3D __rhs.base(); }=0A=
 =0A=
   template<typename _Iterator, typename _Container>=0A=
   inline __normal_iterator<_Iterator, _Container>=0A=
   operator+(typename __normal_iterator<_Iterator, =
 _Container>::difference_type __n,=0A=
             const __normal_iterator<_Iterator, _Container>& __i)=0A=
   { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }=0A=
 }=0A=
 # 76 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 91 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _ForwardIter1, typename _ForwardIter2>=0A=
     inline void=0A=
     iter_swap(_ForwardIter1 __a, _ForwardIter2 __b)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter1>::value_type =
 _ValueType1;=0A=
       typedef typename iterator_traits<_ForwardIter2>::value_type =
 _ValueType2;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       _ValueType1 __tmp =3D *__a;=0A=
       *__a =3D *__b;=0A=
       *__b =3D __tmp;=0A=
     }=0A=
 # 118 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _Tp>=0A=
     inline void=0A=
     swap(_Tp& __a, _Tp& __b)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       _Tp __tmp =3D __a;=0A=
       __a =3D __b;=0A=
       __b =3D __tmp;=0A=
     }=0A=
 # 146 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _Tp>=0A=
     inline const _Tp&=0A=
     min(const _Tp& __a, const _Tp& __b)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       if (__b < __a) return __b; return __a;=0A=
     }=0A=
 # 166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _Tp>=0A=
     inline const _Tp&=0A=
     max(const _Tp& __a, const _Tp& __b)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       if (__a < __b) return __b; return __a;=0A=
     }=0A=
 # 186 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _Tp, typename _Compare>=0A=
     inline const _Tp&=0A=
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)=0A=
     {=0A=
 =0A=
       if (__comp(__b, __a)) return __b; return __a;=0A=
     }=0A=
 # 204 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _Tp, typename _Compare>=0A=
     inline const _Tp&=0A=
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)=0A=
     {=0A=
 =0A=
       if (__comp(__a, __b)) return __b; return __a;=0A=
     }=0A=
 # 221 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy(_InputIter __first, _InputIter __last,=0A=
            _OutputIter __result,=0A=
            input_iterator_tag)=0A=
     {=0A=
       for ( ; __first !=3D __last; ++__result, ++__first)=0A=
         *__result =3D *__first;=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
            _OutputIter __result,=0A=
            random_access_iterator_tag)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type=0A=
           _Distance;=0A=
       for (_Distance __n =3D __last - __first; __n > 0; --__n) {=0A=
         *__result =3D *__first;=0A=
         ++__first;=0A=
         ++__result;=0A=
       }=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _Tp>=0A=
     inline _Tp*=0A=
     __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A=
     {=0A=
       memmove(__result, __first, sizeof(_Tp) * (__last - __first));=0A=
       return __result + (__last - __first);=0A=
     }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_aux2(_InputIter __first, _InputIter __last,=0A=
                 _OutputIter __result, __false_type)=0A=
     { return __copy(__first, __last, __result, =
 __iterator_category(__first)); }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_aux2(_InputIter __first, _InputIter __last,=0A=
                 _OutputIter __result, __true_type)=0A=
     { return __copy(__first, __last, __result, =
 __iterator_category(__first)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     inline _Tp*=0A=
     __copy_aux2(_Tp* __first, _Tp* __last,=0A=
                 _Tp* __result, __true_type)=0A=
     { return __copy_trivial(__first, __last, __result); }=0A=
 =0A=
   template<typename _Tp>=0A=
     inline _Tp*=0A=
     __copy_aux2(const _Tp* __first, const _Tp* __last,=0A=
                 _Tp* __result, __true_type)=0A=
     { return __copy_trivial(__first, __last, __result); }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_ni2(_InputIter __first, _InputIter __last,=0A=
                _OutputIter __result, __true_type)=0A=
     {=0A=
       typedef typename iterator_traits<_InputIter>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 __type_traits<_ValueType>::has_trivial_assignment_operator=0A=
           _Trivial;=0A=
       return _OutputIter(__copy_aux2(__first, __last,=0A=
                                      __result.base(),=0A=
                                      _Trivial()));=0A=
     }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_ni2(_InputIter __first, _InputIter __last,=0A=
                _OutputIter __result, __false_type)=0A=
     {=0A=
       typedef typename iterator_traits<_InputIter>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 __type_traits<_ValueType>::has_trivial_assignment_operator=0A=
           _Trivial;=0A=
       return __copy_aux2(__first, __last,=0A=
                          __result,=0A=
                          _Trivial());=0A=
     }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_ni1(_InputIter __first, _InputIter __last,=0A=
                _OutputIter __result, __true_type)=0A=
     {=0A=
       typedef typename _Is_normal_iterator<_OutputIter>::_Normal =
 __Normal;=0A=
       return __copy_ni2(__first.base(), __last.base(), __result, =
 __Normal());=0A=
     }=0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     __copy_ni1(_InputIter __first, _InputIter __last,=0A=
                _OutputIter __result, __false_type)=0A=
     {=0A=
       typedef typename _Is_normal_iterator<_OutputIter>::_Normal =
 __Normal;=0A=
       return __copy_ni2(__first, __last, __result, __Normal());=0A=
     }=0A=
 # 339 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     copy(_InputIter __first, _InputIter __last, _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
        typedef typename _Is_normal_iterator<_InputIter>::_Normal =
 __Normal;=0A=
        return __copy_ni1(__first, __last, __result, __Normal());=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2>=0A=
     inline _BidirectionalIter2=0A=
     __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 =
 __last,=0A=
                     _BidirectionalIter2 __result,=0A=
                     bidirectional_iterator_tag)=0A=
     {=0A=
       while (__first !=3D __last)=0A=
         *--__result =3D *--__last;=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _BidirectionalIter>=0A=
     inline _BidirectionalIter=0A=
     __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                     _BidirectionalIter __result,=0A=
                     random_access_iterator_tag)=0A=
     {=0A=
       typename iterator_traits<_RandomAccessIter>::difference_type __n;=0A=
       for (__n =3D __last - __first; __n > 0; --__n)=0A=
         *--__result =3D *--__last;=0A=
       return __result;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,=0A=
            typename _BoolType>=0A=
     struct __copy_backward_dispatch=0A=
     {=0A=
       static _BidirectionalIter2=0A=
       copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last,=0A=
            _BidirectionalIter2 __result)=0A=
       {=0A=
         return __copy_backward(__first, __last,=0A=
                                __result,=0A=
                                __iterator_category(__first));=0A=
       }=0A=
     };=0A=
 =0A=
   template<typename _Tp>=0A=
     struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type>=0A=
     {=0A=
       static _Tp*=0A=
       copy(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A=
       {=0A=
         const ptrdiff_t _Num =3D __last - __first;=0A=
         memmove(__result - _Num, __first, sizeof(_Tp) * _Num);=0A=
         return __result - _Num;=0A=
       }=0A=
     };=0A=
 =0A=
   template<typename _Tp>=0A=
     struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type>=0A=
     {=0A=
       static _Tp*=0A=
       copy(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A=
       {=0A=
         return __copy_backward_dispatch<_Tp*, _Tp*, __true_type>=0A=
           ::copy(__first, __last, __result);=0A=
       }=0A=
     };=0A=
 =0A=
   template<typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)=0A=
     {=0A=
       typedef typename __type_traits<typename =
 iterator_traits<_BI2>::value_type>=0A=
                             ::has_trivial_assignment_operator _Trivial;=0A=
       return __copy_backward_dispatch<_BI1, _BI2, _Trivial>=0A=
                   ::copy(__first, __last, __result);=0A=
     }=0A=
 =0A=
   template <typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,=0A=
                                            _BI2 __result, __true_type)=0A=
     { return _BI2(__copy_backward_aux(__first, __last, =
 __result.base())); }=0A=
 =0A=
   template <typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,=0A=
                                            _BI2 __result, __false_type)=0A=
     { return __copy_backward_aux(__first, __last, __result); }=0A=
 =0A=
   template <typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,=0A=
                                           _BI2 __result, __true_type)=0A=
     {=0A=
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;=0A=
       return __copy_backward_output_normal_iterator(__first.base(), =
 __last.base(),=0A=
                                                     __result, =
 __Normal());=0A=
     }=0A=
 =0A=
   template <typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,=0A=
                                           _BI2 __result, __false_type)=0A=
     {=0A=
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;=0A=
       return __copy_backward_output_normal_iterator(__first, __last, =
 __result,=0A=
                                                     __Normal());=0A=
     }=0A=
 # 477 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template <typename _BI1, typename _BI2>=0A=
     inline _BI2=0A=
     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;=0A=
       return __copy_backward_input_normal_iterator(__first, __last, =
 __result,=0A=
                                                    __Normal());=0A=
     }=0A=
 # 509 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     void=0A=
     fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         *__first =3D __value;=0A=
     }=0A=
 # 531 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _OutputIter, typename _Size, typename _Tp>=0A=
     _OutputIter=0A=
     fill_n(_OutputIter __first, _Size __n, const _Tp& __value)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       for ( ; __n > 0; --__n, ++__first)=0A=
         *__first =3D __value;=0A=
       return __first;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   inline void=0A=
   fill(unsigned char* __first, unsigned char* __last, const unsigned =
 char& __c)=0A=
   {=0A=
     unsigned char __tmp =3D __c;=0A=
     memset(__first, __tmp, __last - __first);=0A=
   }=0A=
 =0A=
   inline void=0A=
   fill(signed char* __first, signed char* __last, const signed char& __c)=0A=
   {=0A=
     signed char __tmp =3D __c;=0A=
     memset(__first, static_cast<unsigned char>(__tmp), __last - __first);=0A=
   }=0A=
 =0A=
   inline void=0A=
   fill(char* __first, char* __last, const char& __c)=0A=
   {=0A=
     char __tmp =3D __c;=0A=
     memset(__first, static_cast<unsigned char>(__tmp), __last - __first);=0A=
   }=0A=
 =0A=
   template<typename _Size>=0A=
     inline unsigned char*=0A=
     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)=0A=
     {=0A=
       fill(__first, __first + __n, __c);=0A=
       return __first + __n;=0A=
     }=0A=
 =0A=
   template<typename _Size>=0A=
     inline signed char*=0A=
     fill_n(char* __first, _Size __n, const signed char& __c)=0A=
     {=0A=
       fill(__first, __first + __n, __c);=0A=
       return __first + __n;=0A=
     }=0A=
 =0A=
   template<typename _Size>=0A=
     inline char*=0A=
     fill_n(char* __first, _Size __n, const char& __c)=0A=
     {=0A=
       fill(__first, __first + __n, __c);=0A=
       return __first + __n;=0A=
     }=0A=
 # 606 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2>=0A=
     pair<_InputIter1, _InputIter2>=0A=
     mismatch(_InputIter1 __first1, _InputIter1 __last1,=0A=
              _InputIter2 __first2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && *__first1 =3D=3D *__first2) {=0A=
         ++__first1;=0A=
         ++__first2;=0A=
       }=0A=
       return pair<_InputIter1, _InputIter2>(__first1, __first2);=0A=
     }=0A=
 # 640 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _BinaryPredicate>=0A=
     pair<_InputIter1, _InputIter2>=0A=
     mismatch(_InputIter1 __first1, _InputIter1 __last1,=0A=
              _InputIter2 __first2,=0A=
              _BinaryPredicate __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       while (__first1 !=3D __last1 && __binary_pred(*__first1, =
 *__first2)) {=0A=
         ++__first1;=0A=
         ++__first2;=0A=
       }=0A=
       return pair<_InputIter1, _InputIter2>(__first1, __first2);=0A=
     }=0A=
 # 668 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2>=0A=
     inline bool=0A=
     equal(_InputIter1 __first1, _InputIter1 __last1,=0A=
           _InputIter2 __first2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A=
         if (!(*__first1 =3D=3D *__first2))=0A=
           return false;=0A=
       return true;=0A=
     }=0A=
 # 699 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _BinaryPredicate>=0A=
     inline bool=0A=
     equal(_InputIter1 __first1, _InputIter1 __last1,=0A=
           _InputIter2 __first2,=0A=
           _BinaryPredicate __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A=
         if (!__binary_pred(*__first1, *__first2))=0A=
           return false;=0A=
       return true;=0A=
     }=0A=
 # 732 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2>=0A=
     bool=0A=
     lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,=0A=
                             _InputIter2 __first2, _InputIter2 __last2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1 && __first2 !=3D __last2=0A=
             ; ++__first1, ++__first2) {=0A=
         if (*__first1 < *__first2)=0A=
           return true;=0A=
         if (*__first2 < *__first1)=0A=
           return false;=0A=
       }=0A=
       return __first1 =3D=3D __last1 && __first2 !=3D __last2;=0A=
     }=0A=
 # 767 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename _Compare>=0A=
     bool=0A=
     lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,=0A=
                             _InputIter2 __first2, _InputIter2 __last2,=0A=
                             _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       for ( ; __first1 !=3D __last1 && __first2 !=3D __last2=0A=
             ; ++__first1, ++__first2) {=0A=
         if (__comp(*__first1, *__first2))=0A=
           return true;=0A=
         if (__comp(*__first2, *__first1))=0A=
           return false;=0A=
       }=0A=
       return __first1 =3D=3D __last1 && __first2 !=3D __last2;=0A=
     }=0A=
 =0A=
   inline bool=0A=
   lexicographical_compare(const unsigned char* __first1, const unsigned =
 char* __last1,=0A=
                           const unsigned char* __first2, const unsigned =
 char* __last2)=0A=
   {=0A=
     const size_t __len1 =3D __last1 - __first1;=0A=
     const size_t __len2 =3D __last2 - __first2;=0A=
     const int __result =3D memcmp(__first1, __first2, min(__len1, =
 __len2));=0A=
     return __result !=3D 0 ? __result < 0 : __len1 < __len2;=0A=
   }=0A=
 =0A=
   inline bool=0A=
   lexicographical_compare(const char* __first1, const char* __last1,=0A=
                           const char* __first2, const char* __last2)=0A=
   {=0A=
 =0A=
     return lexicographical_compare((const signed char*) __first1,=0A=
                                    (const signed char*) __last1,=0A=
                                    (const signed char*) __first2,=0A=
                                    (const signed char*) __last2);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   }=0A=
 =0A=
 }=0A=
 # 55 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 1 3=0A=
 # 84 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cassert" 1 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/cassert" 3=0A=
 =0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
 # 65 "/usr/include/assert.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern void __assert_fail (__const char *__assertion, __const char =
 *__file,=0A=
                            unsigned int __line, __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 extern void __assert_perror_fail (int __errnum, __const char *__file,=0A=
                                   unsigned int __line,=0A=
                                   __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __assert (const char *__assertion, const char *__file, int =
 __line)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 }=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/cassert" 2 3=0A=
 # 85 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   void=0A=
   __throw_bad_exception(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_alloc(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_cast(void);=0A=
 =0A=
   void=0A=
   __throw_bad_typeid(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_logic_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_domain_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_invalid_argument(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_length_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_out_of_range(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_runtime_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_range_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_overflow_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_underflow_error(const char* __s);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_ios_failure(const char* __s);=0A=
 }=0A=
 # 86 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 1 3=0A=
 # 54 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   struct _Refcount_Base=0A=
   {=0A=
 =0A=
     typedef size_t _RC_t;=0A=
 =0A=
 =0A=
     volatile _RC_t _M_ref_count;=0A=
 =0A=
 =0A=
     __gthread_mutex_t _M_ref_count_lock;=0A=
 =0A=
     _Refcount_Base(_RC_t __n) : _M_ref_count(__n)=0A=
     {=0A=
 =0A=
       __gthread_mutex_t __tmp =3D {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, =
 0 }};=0A=
       _M_ref_count_lock =3D __tmp;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     }=0A=
 =0A=
     void=0A=
     _M_incr()=0A=
     {=0A=
       __gthread_mutex_lock(&_M_ref_count_lock);=0A=
       ++_M_ref_count;=0A=
       __gthread_mutex_unlock(&_M_ref_count_lock);=0A=
     }=0A=
 =0A=
     _RC_t=0A=
     _M_decr()=0A=
     {=0A=
       __gthread_mutex_lock(&_M_ref_count_lock);=0A=
       volatile _RC_t __tmp =3D --_M_ref_count;=0A=
       __gthread_mutex_unlock(&_M_ref_count_lock);=0A=
       return __tmp;=0A=
     }=0A=
   };=0A=
 # 109 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A=
   template<int __dummy>=0A=
     struct _Swap_lock_struct=0A=
     { static __gthread_mutex_t _S_swap_lock; };=0A=
 =0A=
   template<int __dummy>=0A=
     __gthread_mutex_t=0A=
     _Swap_lock_struct<__dummy>::_S_swap_lock =3D {0, 0, 0, =
 PTHREAD_MUTEX_TIMED_NP, { 0, 0 }};=0A=
 =0A=
 =0A=
 =0A=
   inline unsigned long=0A=
   _Atomic_swap(unsigned long * __p, unsigned long __q)=0A=
   {=0A=
     __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock);=0A=
     unsigned long __result =3D *__p;=0A=
     *__p =3D __q;=0A=
     __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock);=0A=
     return __result;=0A=
   }=0A=
 # 151 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A=
   struct _STL_mutex_lock=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     __gthread_mutex_t _M_lock;=0A=
 =0A=
     void=0A=
     _M_initialize()=0A=
     {=0A=
 # 184 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A=
     }=0A=
 =0A=
     void=0A=
     _M_acquire_lock()=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
       __gthread_mutex_lock(&_M_lock);=0A=
     }=0A=
 =0A=
     void=0A=
     _M_release_lock()=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
       __gthread_mutex_unlock(&_M_lock);=0A=
     }=0A=
   };=0A=
 # 220 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A=
   struct _STL_auto_lock=0A=
   {=0A=
     _STL_mutex_lock& _M_lock;=0A=
 =0A=
     _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock)=0A=
     { _M_lock._M_acquire_lock(); }=0A=
 =0A=
     ~_STL_auto_lock() { _M_lock._M_release_lock(); }=0A=
 =0A=
   private:=0A=
     void operator=3D(const _STL_auto_lock&);=0A=
     _STL_auto_lock(const _STL_auto_lock&);=0A=
   };=0A=
 =0A=
 }=0A=
 # 87 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 98 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
   class __new_alloc=0A=
   {=0A=
   public:=0A=
     static void*=0A=
     allocate(size_t __n)=0A=
     { return ::operator new(__n); }=0A=
 =0A=
     static void=0A=
     deallocate(void* __p, size_t)=0A=
     { ::operator delete(__p); }=0A=
   };=0A=
 # 121 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
   template <int __inst>=0A=
     class __malloc_alloc_template=0A=
     {=0A=
     private:=0A=
       static void* _S_oom_malloc(size_t);=0A=
       static void* _S_oom_realloc(void*, size_t);=0A=
       static void (* __malloc_alloc_oom_handler)();=0A=
 =0A=
     public:=0A=
       static void*=0A=
       allocate(size_t __n)=0A=
       {=0A=
         void* __result =3D malloc(__n);=0A=
         if (0 =3D=3D __result) __result =3D _S_oom_malloc(__n);=0A=
         return __result;=0A=
       }=0A=
 =0A=
       static void=0A=
       deallocate(void* __p, size_t )=0A=
       { free(__p); }=0A=
 =0A=
       static void*=0A=
       reallocate(void* __p, size_t , size_t __new_sz)=0A=
       {=0A=
         void* __result =3D realloc(__p, __new_sz);=0A=
         if (0 =3D=3D __result) __result =3D _S_oom_realloc(__p, =
 __new_sz);=0A=
         return __result;=0A=
       }=0A=
 =0A=
       static void (* __set_malloc_handler(void (*__f)()))()=0A=
       {=0A=
         void (* __old)() =3D __malloc_alloc_oom_handler;=0A=
         __malloc_alloc_oom_handler =3D __f;=0A=
         return(__old);=0A=
       }=0A=
     };=0A=
 =0A=
 =0A=
   template <int __inst>=0A=
     void (* =
 __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() =3D 0;=0A=
 =0A=
   template <int __inst>=0A=
     void*=0A=
     __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n)=0A=
     {=0A=
       void (* __my_malloc_handler)();=0A=
       void* __result;=0A=
 =0A=
       for (;;)=0A=
         {=0A=
           __my_malloc_handler =3D __malloc_alloc_oom_handler;=0A=
           if (0 =3D=3D __my_malloc_handler)=0A=
             std::__throw_bad_alloc();=0A=
           (*__my_malloc_handler)();=0A=
           __result =3D malloc(__n);=0A=
           if (__result)=0A=
             return(__result);=0A=
         }=0A=
     }=0A=
 =0A=
   template <int __inst>=0A=
     void*=0A=
     __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t =
 __n)=0A=
     {=0A=
       void (* __my_malloc_handler)();=0A=
       void* __result;=0A=
 =0A=
       for (;;)=0A=
         {=0A=
           __my_malloc_handler =3D __malloc_alloc_oom_handler;=0A=
           if (0 =3D=3D __my_malloc_handler)=0A=
             std::__throw_bad_alloc();=0A=
           (*__my_malloc_handler)();=0A=
           __result =3D realloc(__p, __n);=0A=
           if (__result)=0A=
             return(__result);=0A=
         }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   typedef __new_alloc __mem_interface;=0A=
 # 219 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
   template<class _Tp, class _Alloc>=0A=
   class __simple_alloc=0A=
   {=0A=
   public:=0A=
     static _Tp* allocate(size_t __n)=0A=
     { return 0 =3D=3D __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof =
 (_Tp)); }=0A=
 =0A=
     static _Tp* allocate()=0A=
     { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); }=0A=
 =0A=
     static void deallocate(_Tp* __p, size_t __n)=0A=
     { if (0 !=3D __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); }=0A=
 =0A=
     static void deallocate(_Tp* __p)=0A=
     { _Alloc::deallocate(__p, sizeof (_Tp)); }=0A=
   };=0A=
 # 251 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
   template <class _Alloc>=0A=
   class __debug_alloc=0A=
   {=0A=
   private:=0A=
     enum {_S_extra =3D 8};=0A=
 =0A=
 =0A=
   public:=0A=
 =0A=
     static void* allocate(size_t __n)=0A=
     {=0A=
       char* __result =3D (char*)_Alloc::allocate(__n + (int) _S_extra);=0A=
       *(size_t*)__result =3D __n;=0A=
       return __result + (int) _S_extra;=0A=
     }=0A=
 =0A=
     static void deallocate(void* __p, size_t __n)=0A=
     {=0A=
       char* __real_p =3D (char*)__p - (int) _S_extra;=0A=
       (static_cast<void> ((*(size_t*)__real_p =3D=3D __n) ? 0 : =
 (__assert_fail ("*(size_t*)__real_p =3D=3D __n", =
 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h", 270, =
 __PRETTY_FUNCTION__), 0)));=0A=
       _Alloc::deallocate(__real_p, __n + (int) _S_extra);=0A=
     }=0A=
 =0A=
     static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz)=0A=
     {=0A=
       char* __real_p =3D (char*)__p - (int) _S_extra;=0A=
       (static_cast<void> ((*(size_t*)__real_p =3D=3D __old_sz) ? 0 : =
 (__assert_fail ("*(size_t*)__real_p =3D=3D __old_sz", =
 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h", 277, =
 __PRETTY_FUNCTION__), 0)));=0A=
       char* __result =3D (char*)=0A=
         _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra,=0A=
                                      __new_sz + (int) _S_extra);=0A=
       *(size_t*)__result =3D __new_sz;=0A=
       return __result + (int) _S_extra;=0A=
     }=0A=
   };=0A=
 # 324 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
 template<bool __threads, int __inst>=0A=
   class __default_alloc_template=0A=
   {=0A=
   private:=0A=
     enum {_ALIGN =3D 8};=0A=
     enum {_MAX_BYTES =3D 128};=0A=
     enum {_NFREELISTS =3D _MAX_BYTES / _ALIGN};=0A=
 =0A=
     union _Obj=0A=
     {=0A=
       union _Obj* _M_free_list_link;=0A=
       char _M_client_data[1];=0A=
     };=0A=
 =0A=
     static _Obj* volatile _S_free_list[_NFREELISTS];=0A=
 =0A=
 =0A=
     static char* _S_start_free;=0A=
     static char* _S_end_free;=0A=
     static size_t _S_heap_size;=0A=
 =0A=
     static _STL_mutex_lock _S_node_allocator_lock;=0A=
 =0A=
     static size_t=0A=
     _S_round_up(size_t __bytes)=0A=
     { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); =
 }=0A=
 =0A=
     static size_t=0A=
     _S_freelist_index(size_t __bytes)=0A=
     { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); }=0A=
 =0A=
 =0A=
 =0A=
     static void*=0A=
     _S_refill(size_t __n);=0A=
 =0A=
 =0A=
 =0A=
     static char*=0A=
     _S_chunk_alloc(size_t __size, int& __nobjs);=0A=
 =0A=
 =0A=
 =0A=
     class _Lock=0A=
     {=0A=
     public:=0A=
       _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); =
 }=0A=
       ~_Lock() { if (__threads) =
 _S_node_allocator_lock._M_release_lock(); }=0A=
     } __attribute__ ((__unused__));=0A=
     friend class _Lock;=0A=
 =0A=
   public:=0A=
 =0A=
     static void*=0A=
     allocate(size_t __n)=0A=
     {=0A=
       void* __ret =3D 0;=0A=
 =0A=
       if (__n > (size_t) _MAX_BYTES)=0A=
         __ret =3D __mem_interface::allocate(__n);=0A=
       else=0A=
         {=0A=
           _Obj* volatile* __my_free_list =3D _S_free_list=0A=
             + _S_freelist_index(__n);=0A=
 =0A=
 =0A=
 =0A=
           _Lock __lock_instance;=0A=
           _Obj* __restrict__ __result =3D *__my_free_list;=0A=
           if (__result =3D=3D 0)=0A=
             __ret =3D _S_refill(_S_round_up(__n));=0A=
           else=0A=
             {=0A=
               *__my_free_list =3D __result -> _M_free_list_link;=0A=
               __ret =3D __result;=0A=
             }=0A=
         }=0A=
       return __ret;=0A=
     };=0A=
 =0A=
 =0A=
     static void=0A=
     deallocate(void* __p, size_t __n)=0A=
     {=0A=
       if (__n > (size_t) _MAX_BYTES)=0A=
         __mem_interface::deallocate(__p, __n);=0A=
       else=0A=
         {=0A=
           _Obj* volatile* __my_free_list=0A=
             =3D _S_free_list + _S_freelist_index(__n);=0A=
           _Obj* __q =3D (_Obj*)__p;=0A=
 =0A=
 =0A=
 =0A=
           _Lock __lock_instance;=0A=
           __q -> _M_free_list_link =3D *__my_free_list;=0A=
           *__my_free_list =3D __q;=0A=
         }=0A=
     }=0A=
 =0A=
     static void*=0A=
     reallocate(void* __p, size_t __old_sz, size_t __new_sz);=0A=
   };=0A=
 =0A=
 =0A=
   template<bool __threads, int __inst>=0A=
     inline bool=0A=
     operator=3D=3D(const __default_alloc_template<__threads, __inst>&,=0A=
                const __default_alloc_template<__threads, __inst>&)=0A=
     { return true; }=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
     inline bool=0A=
     operator!=3D(const __default_alloc_template<__threads, __inst>&,=0A=
                const __default_alloc_template<__threads, __inst>&)=0A=
     { return false; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<bool __threads, int __inst>=0A=
     char*=0A=
     __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t =
 __size,=0A=
                                                                 int& =
 __nobjs)=0A=
     {=0A=
       char* __result;=0A=
       size_t __total_bytes =3D __size * __nobjs;=0A=
       size_t __bytes_left =3D _S_end_free - _S_start_free;=0A=
 =0A=
       if (__bytes_left >=3D __total_bytes)=0A=
       {=0A=
         __result =3D _S_start_free;=0A=
         _S_start_free +=3D __total_bytes;=0A=
         return(__result);=0A=
       }=0A=
       else if (__bytes_left >=3D __size)=0A=
         {=0A=
           __nobjs =3D (int)(__bytes_left/__size);=0A=
           __total_bytes =3D __size * __nobjs;=0A=
           __result =3D _S_start_free;=0A=
           _S_start_free +=3D __total_bytes;=0A=
           return(__result);=0A=
         }=0A=
       else=0A=
         {=0A=
           size_t __bytes_to_get =3D=0A=
             2 * __total_bytes + _S_round_up(_S_heap_size >> 4);=0A=
 =0A=
           if (__bytes_left > 0)=0A=
             {=0A=
               _Obj* volatile* __my_free_list =3D=0A=
                 _S_free_list + _S_freelist_index(__bytes_left);=0A=
 =0A=
               ((_Obj*)_S_start_free) -> _M_free_list_link =3D =
 *__my_free_list;=0A=
               *__my_free_list =3D (_Obj*)_S_start_free;=0A=
             }=0A=
           _S_start_free =3D (char*) =
 __mem_interface::allocate(__bytes_to_get);=0A=
           if (0 =3D=3D _S_start_free)=0A=
             {=0A=
               size_t __i;=0A=
               _Obj* volatile* __my_free_list;=0A=
               _Obj* __p;=0A=
 =0A=
 =0A=
 =0A=
               __i =3D __size;=0A=
               for (; __i <=3D (size_t) _MAX_BYTES; __i +=3D (size_t) =
 _ALIGN)=0A=
                 {=0A=
                   __my_free_list =3D _S_free_list + =
 _S_freelist_index(__i);=0A=
                   __p =3D *__my_free_list;=0A=
                   if (0 !=3D __p)=0A=
                     {=0A=
                       *__my_free_list =3D __p -> _M_free_list_link;=0A=
                       _S_start_free =3D (char*)__p;=0A=
                       _S_end_free =3D _S_start_free + __i;=0A=
                       return(_S_chunk_alloc(__size, __nobjs));=0A=
 =0A=
 =0A=
                     }=0A=
                 }=0A=
               _S_end_free =3D 0;=0A=
               _S_start_free =3D =
 (char*)__mem_interface::allocate(__bytes_to_get);=0A=
 =0A=
 =0A=
             }=0A=
           _S_heap_size +=3D __bytes_to_get;=0A=
           _S_end_free =3D _S_start_free + __bytes_to_get;=0A=
           return(_S_chunk_alloc(__size, __nobjs));=0A=
         }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<bool __threads, int __inst>=0A=
     void*=0A=
     __default_alloc_template<__threads, __inst>::_S_refill(size_t __n)=0A=
     {=0A=
       int __nobjs =3D 20;=0A=
       char* __chunk =3D _S_chunk_alloc(__n, __nobjs);=0A=
       _Obj* volatile* __my_free_list;=0A=
       _Obj* __result;=0A=
       _Obj* __current_obj;=0A=
       _Obj* __next_obj;=0A=
       int __i;=0A=
 =0A=
       if (1 =3D=3D __nobjs) return(__chunk);=0A=
       __my_free_list =3D _S_free_list + _S_freelist_index(__n);=0A=
 =0A=
 =0A=
       __result =3D (_Obj*)__chunk;=0A=
       *__my_free_list =3D __next_obj =3D (_Obj*)(__chunk + __n);=0A=
       for (__i =3D 1; ; __i++) {=0A=
         __current_obj =3D __next_obj;=0A=
         __next_obj =3D (_Obj*)((char*)__next_obj + __n);=0A=
         if (__nobjs - 1 =3D=3D __i) {=0A=
           __current_obj -> _M_free_list_link =3D 0;=0A=
           break;=0A=
         } else {=0A=
           __current_obj -> _M_free_list_link =3D __next_obj;=0A=
         }=0A=
       }=0A=
       return(__result);=0A=
     }=0A=
 =0A=
 =0A=
   template<bool threads, int inst>=0A=
     void*=0A=
     __default_alloc_template<threads, inst>::reallocate(void* __p,=0A=
                                                         size_t __old_sz,=0A=
                                                         size_t __new_sz)=0A=
     {=0A=
       void* __result;=0A=
       size_t __copy_sz;=0A=
 =0A=
       if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) =
 _MAX_BYTES) {=0A=
         return(realloc(__p, __new_sz));=0A=
       }=0A=
       if (_S_round_up(__old_sz) =3D=3D _S_round_up(__new_sz)) =
 return(__p);=0A=
       __result =3D allocate(__new_sz);=0A=
       __copy_sz =3D __new_sz > __old_sz? __old_sz : __new_sz;=0A=
       memcpy(__result, __p, __copy_sz);=0A=
       deallocate(__p, __old_sz);=0A=
       return(__result);=0A=
     }=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
   _STL_mutex_lock=0A=
   __default_alloc_template<__threads, __inst>::_S_node_allocator_lock=0A=
   =3D { {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }} };=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
   char* __default_alloc_template<__threads, __inst>::_S_start_free =3D 0;=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
   char* __default_alloc_template<__threads, __inst>::_S_end_free =3D 0;=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
   size_t __default_alloc_template<__threads, __inst>::_S_heap_size =3D 0;=0A=
 =0A=
   template<bool __threads, int __inst>=0A=
   typename __default_alloc_template<__threads, __inst>::_Obj* volatile=0A=
   __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS];=0A=
 =0A=
   typedef __default_alloc_template<true, 0> __alloc;=0A=
   typedef __default_alloc_template<false, 0> __single_client_alloc;=0A=
 # 613 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
 template <class _Tp>=0A=
 class allocator=0A=
 {=0A=
   typedef __alloc _Alloc;=0A=
 public:=0A=
   typedef size_t size_type;=0A=
   typedef ptrdiff_t difference_type;=0A=
   typedef _Tp* pointer;=0A=
   typedef const _Tp* const_pointer;=0A=
   typedef _Tp& reference;=0A=
   typedef const _Tp& const_reference;=0A=
   typedef _Tp value_type;=0A=
 =0A=
   template <class _Tp1> struct rebind {=0A=
     typedef allocator<_Tp1> other;=0A=
   };=0A=
 =0A=
   allocator() throw() {}=0A=
   allocator(const allocator&) throw() {}=0A=
   template <class _Tp1> allocator(const allocator<_Tp1>&) throw() {}=0A=
   ~allocator() throw() {}=0A=
 =0A=
   pointer address(reference __x) const { return &__x; }=0A=
   const_pointer address(const_reference __x) const { return &__x; }=0A=
 =0A=
 =0A=
 =0A=
   _Tp* allocate(size_type __n, const void* =3D 0) {=0A=
     return __n !=3D 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * =
 sizeof(_Tp)))=0A=
                     : 0;=0A=
   }=0A=
 =0A=
 =0A=
   void deallocate(pointer __p, size_type __n)=0A=
     { _Alloc::deallocate(__p, __n * sizeof(_Tp)); }=0A=
 =0A=
   size_type max_size() const throw()=0A=
     { return size_t(-1) / sizeof(_Tp); }=0A=
 =0A=
   void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }=0A=
   void destroy(pointer __p) { __p->~_Tp(); }=0A=
 };=0A=
 =0A=
 template<>=0A=
 class allocator<void> {=0A=
 public:=0A=
   typedef size_t size_type;=0A=
   typedef ptrdiff_t difference_type;=0A=
   typedef void* pointer;=0A=
   typedef const void* const_pointer;=0A=
   typedef void value_type;=0A=
 =0A=
   template <class _Tp1> struct rebind {=0A=
     typedef allocator<_Tp1> other;=0A=
   };=0A=
 };=0A=
 =0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator=3D=3D(const allocator<_T1>&, const allocator<_T2>&)=0A=
 {=0A=
   return true;=0A=
 }=0A=
 =0A=
 template <class _T1, class _T2>=0A=
 inline bool operator!=3D(const allocator<_T1>&, const allocator<_T2>&)=0A=
 {=0A=
   return false;=0A=
 }=0A=
 # 695 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
 template <class _Tp, class _Alloc>=0A=
 struct __allocator=0A=
 {=0A=
   _Alloc __underlying_alloc;=0A=
 =0A=
   typedef size_t size_type;=0A=
   typedef ptrdiff_t difference_type;=0A=
   typedef _Tp* pointer;=0A=
   typedef const _Tp* const_pointer;=0A=
   typedef _Tp& reference;=0A=
   typedef const _Tp& const_reference;=0A=
   typedef _Tp value_type;=0A=
 =0A=
   template <class _Tp1> struct rebind {=0A=
     typedef __allocator<_Tp1, _Alloc> other;=0A=
   };=0A=
 =0A=
   __allocator() throw() {}=0A=
   __allocator(const __allocator& __a) throw()=0A=
     : __underlying_alloc(__a.__underlying_alloc) {}=0A=
   template <class _Tp1>=0A=
   __allocator(const __allocator<_Tp1, _Alloc>& __a) throw()=0A=
     : __underlying_alloc(__a.__underlying_alloc) {}=0A=
   ~__allocator() throw() {}=0A=
 =0A=
   pointer address(reference __x) const { return &__x; }=0A=
   const_pointer address(const_reference __x) const { return &__x; }=0A=
 =0A=
 =0A=
   _Tp* allocate(size_type __n, const void* =3D 0) {=0A=
     return __n !=3D 0=0A=
         ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * =
 sizeof(_Tp)))=0A=
         : 0;=0A=
   }=0A=
 =0A=
 =0A=
   void deallocate(pointer __p, size_type __n)=0A=
     { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); }=0A=
 =0A=
   size_type max_size() const throw()=0A=
     { return size_t(-1) / sizeof(_Tp); }=0A=
 =0A=
   void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }=0A=
   void destroy(pointer __p) { __p->~_Tp(); }=0A=
 };=0A=
 =0A=
 template <class _Alloc>=0A=
 class __allocator<void, _Alloc> {=0A=
   typedef size_t size_type;=0A=
   typedef ptrdiff_t difference_type;=0A=
   typedef void* pointer;=0A=
   typedef const void* const_pointer;=0A=
   typedef void value_type;=0A=
 =0A=
   template <class _Tp1> struct rebind {=0A=
     typedef __allocator<_Tp1, _Alloc> other;=0A=
   };=0A=
 };=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool operator=3D=3D(const __allocator<_Tp, _Alloc>& __a1,=0A=
                        const __allocator<_Tp, _Alloc>& __a2)=0A=
 {=0A=
   return __a1.__underlying_alloc =3D=3D __a2.__underlying_alloc;=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool operator!=3D(const __allocator<_Tp, _Alloc>& __a1,=0A=
                        const __allocator<_Tp, _Alloc>& __a2)=0A=
 {=0A=
   return __a1.__underlying_alloc !=3D __a2.__underlying_alloc;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <int inst>=0A=
 inline bool operator=3D=3D(const __malloc_alloc_template<inst>&,=0A=
                        const __malloc_alloc_template<inst>&)=0A=
 {=0A=
   return true;=0A=
 }=0A=
 =0A=
 template <int __inst>=0A=
 inline bool operator!=3D(const __malloc_alloc_template<__inst>&,=0A=
                        const __malloc_alloc_template<__inst>&)=0A=
 {=0A=
   return false;=0A=
 }=0A=
 =0A=
 template <class _Alloc>=0A=
 inline bool operator=3D=3D(const __debug_alloc<_Alloc>&,=0A=
                        const __debug_alloc<_Alloc>&) {=0A=
   return true;=0A=
 }=0A=
 =0A=
 template <class _Alloc>=0A=
 inline bool operator!=3D(const __debug_alloc<_Alloc>&,=0A=
                        const __debug_alloc<_Alloc>&) {=0A=
   return false;=0A=
 }=0A=
 # 840 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A=
 template <class _Tp, class _Allocator>=0A=
 struct _Alloc_traits=0A=
 {=0A=
   static const bool _S_instanceless =3D false;=0A=
   typedef typename _Allocator::template rebind<_Tp>::other =
 allocator_type;=0A=
 };=0A=
 =0A=
 template <class _Tp, class _Allocator>=0A=
 const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless;=0A=
 =0A=
 =0A=
 template <class _Tp, class _Tp1>=0A=
 struct _Alloc_traits<_Tp, allocator<_Tp1> >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __alloc> _Alloc_type;=0A=
   typedef allocator<_Tp> allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Tp, int __inst>=0A=
 struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > =
 _Alloc_type;=0A=
   typedef __allocator<_Tp, __malloc_alloc_template<__inst> > =
 allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, bool __threads, int __inst>=0A=
 struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __default_alloc_template<__threads, =
 __inst> >=0A=
           _Alloc_type;=0A=
   typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> >=0A=
           allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;=0A=
   typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Tp, class _Tp1, int __inst>=0A=
 struct _Alloc_traits<_Tp,=0A=
                      __allocator<_Tp1, __malloc_alloc_template<__inst> > =
 >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > =
 _Alloc_type;=0A=
   typedef __allocator<_Tp, __malloc_alloc_template<__inst> > =
 allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Tp1, bool __thr, int __inst>=0A=
 struct _Alloc_traits<_Tp,=0A=
                       __allocator<_Tp1,=0A=
                                   __default_alloc_template<__thr, =
 __inst> > >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> >=0A=
           _Alloc_type;=0A=
   typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> >=0A=
           allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Tp1, class _Alloc>=0A=
 struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > >=0A=
 {=0A=
   static const bool _S_instanceless =3D true;=0A=
   typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;=0A=
   typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class allocator<char>;=0A=
   extern template class allocator<wchar_t>;=0A=
 =0A=
 =0A=
 =0A=
   extern template class __default_alloc_template<true, 0>;=0A=
 =0A=
 }=0A=
 # 56 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 1 3=0A=
 # 67 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _T1, class _T2>=0A=
     inline void=0A=
     _Construct(_T1* __p, const _T2& __value)=0A=
     { new (static_cast<void*>(__p)) _T1(__value); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _T1>=0A=
     inline void=0A=
     _Construct(_T1* __p)=0A=
     { new (static_cast<void*>(__p)) _T1(); }=0A=
 # 98 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A=
   template <class _ForwardIterator>=0A=
     inline void=0A=
     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, =
 __false_type)=0A=
     { for ( ; __first !=3D __last; ++__first) _Destroy(&*__first); }=0A=
 # 112 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A=
   template <class _ForwardIterator>=0A=
     inline void=0A=
     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)=0A=
     { }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _Tp>=0A=
     inline void=0A=
     _Destroy(_Tp* __pointer)=0A=
     { __pointer->~_Tp(); }=0A=
 # 134 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A=
   template <class _ForwardIterator>=0A=
     inline void=0A=
     _Destroy(_ForwardIterator __first, _ForwardIterator __last)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIterator>::value_type=0A=
                        _Value_type;=0A=
       typedef typename __type_traits<_Value_type>::has_trivial_destructor=0A=
                        _Has_trivial_destructor;=0A=
 =0A=
       __destroy_aux(__first, __last, _Has_trivial_destructor());=0A=
     }=0A=
 }=0A=
 # 57 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 1 3=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter>=0A=
     inline _ForwardIter=0A=
     __uninitialized_copy_aux(_InputIter __first, _InputIter __last,=0A=
                              _ForwardIter __result,=0A=
                              __true_type)=0A=
     { return copy(__first, __last, __result); }=0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter>=0A=
     _ForwardIter=0A=
     __uninitialized_copy_aux(_InputIter __first, _InputIter __last,=0A=
                              _ForwardIter __result,=0A=
                              __false_type)=0A=
     {=0A=
       _ForwardIter __cur =3D __result;=0A=
       try {=0A=
         for ( ; __first !=3D __last; ++__first, ++__cur)=0A=
           _Construct(&*__cur, *__first);=0A=
         return __cur;=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__result, __cur);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 # 106 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A=
   template<typename _InputIter, typename _ForwardIter>=0A=
     inline _ForwardIter=0A=
     uninitialized_copy(_InputIter __first, _InputIter __last, =
 _ForwardIter __result)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A=
       return __uninitialized_copy_aux(__first, __last, __result, =
 _Is_POD());=0A=
     }=0A=
 =0A=
   inline char*=0A=
   uninitialized_copy(const char* __first, const char* __last, char* =
 __result)=0A=
   {=0A=
     memmove(__result, __first, __last - __first);=0A=
     return __result + (__last - __first);=0A=
   }=0A=
 =0A=
   inline wchar_t*=0A=
   uninitialized_copy(const wchar_t* __first, const wchar_t* __last,=0A=
                      wchar_t* __result)=0A=
   {=0A=
     memmove(__result, __first, sizeof(wchar_t) * (__last - __first));=0A=
     return __result + (__last - __first);=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     inline void=0A=
     __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,=0A=
                              const _Tp& __x, __true_type)=0A=
     { fill(__first, __last, __x); }=0A=
 =0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     void=0A=
     __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,=0A=
                              const _Tp& __x, __false_type)=0A=
     {=0A=
       _ForwardIter __cur =3D __first;=0A=
       try {=0A=
         for ( ; __cur !=3D __last; ++__cur)=0A=
           _Construct(&*__cur, __x);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__first, __cur);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 # 164 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     inline void=0A=
     uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const =
 _Tp& __x)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A=
       __uninitialized_fill_aux(__first, __last, __x, _Is_POD());=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Size, typename _Tp>=0A=
     inline _ForwardIter=0A=
     __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,=0A=
                                const _Tp& __x, __true_type)=0A=
     {=0A=
       return fill_n(__first, __n, __x);=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter, typename _Size, typename _Tp>=0A=
     _ForwardIter=0A=
     __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,=0A=
                                const _Tp& __x, __false_type)=0A=
     {=0A=
       _ForwardIter __cur =3D __first;=0A=
       try {=0A=
         for ( ; __n > 0; --__n, ++__cur)=0A=
           _Construct(&*__cur, __x);=0A=
         return __cur;=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__first, __cur);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 # 210 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A=
   template<typename _ForwardIter, typename _Size, typename _Tp>=0A=
     inline _ForwardIter=0A=
     uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A=
       return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());=0A=
     }=0A=
 # 227 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _ForwardIter>=0A=
     inline _ForwardIter=0A=
     __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1,=0A=
                               _InputIter2 __first2, _InputIter2 __last2,=0A=
                               _ForwardIter __result)=0A=
     {=0A=
       _ForwardIter __mid =3D uninitialized_copy(__first1, __last1, =
 __result);=0A=
       try {=0A=
         return uninitialized_copy(__first2, __last2, __mid);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__result, __mid);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Tp, typename _InputIter>=0A=
     inline _ForwardIter=0A=
     __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid,=0A=
                               const _Tp& __x,=0A=
                               _InputIter __first, _InputIter __last)=0A=
     {=0A=
       uninitialized_fill(__result, __mid, __x);=0A=
       try {=0A=
         return uninitialized_copy(__first, __last, __mid);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__result, __mid);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter, typename _Tp>=0A=
     inline void=0A=
     __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1,=0A=
                               _ForwardIter __first2, _ForwardIter =
 __last2,=0A=
                               const _Tp& __x)=0A=
     {=0A=
       _ForwardIter __mid2 =3D uninitialized_copy(__first1, __last1, =
 __first2);=0A=
       try {=0A=
         uninitialized_fill(__mid2, __last2, __x);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__first2, __mid2);=0A=
           throw;=0A=
         }=0A=
     }=0A=
 =0A=
 }=0A=
 # 59 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_raw_storage_iter.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_raw_storage_iter.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _ForwardIterator, class _Tp>=0A=
   class raw_storage_iterator=0A=
     : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     protected:=0A=
       _ForwardIterator _M_iter;=0A=
 =0A=
     public:=0A=
       explicit=0A=
       raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {}=0A=
 =0A=
       raw_storage_iterator&=0A=
       operator*() { return *this; }=0A=
 =0A=
       raw_storage_iterator&=0A=
       operator=3D(const _Tp& __element)=0A=
       {=0A=
         _Construct(&*_M_iter, __element);=0A=
         return *this;=0A=
       }=0A=
 =0A=
       raw_storage_iterator<_ForwardIterator, _Tp>&=0A=
       operator++()=0A=
       {=0A=
         ++_M_iter;=0A=
         return *this;=0A=
       }=0A=
 =0A=
       raw_storage_iterator<_ForwardIterator, _Tp>=0A=
       operator++(int)=0A=
       {=0A=
         raw_storage_iterator<_ForwardIterator, _Tp> __tmp =3D *this;=0A=
         ++_M_iter;=0A=
         return __tmp;=0A=
       }=0A=
     };=0A=
 }=0A=
 # 60 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _Tp>=0A=
   pair<_Tp*, ptrdiff_t>=0A=
   __get_temporary_buffer(ptrdiff_t __len, _Tp*)=0A=
   {=0A=
     if (__len > ptrdiff_t(2147483647 / sizeof(_Tp)))=0A=
       __len =3D 2147483647 / sizeof(_Tp);=0A=
 =0A=
     while (__len > 0) {=0A=
       _Tp* __tmp =3D (_Tp*) std::malloc((std::size_t)__len * =
 sizeof(_Tp));=0A=
       if (__tmp !=3D 0)=0A=
         return pair<_Tp*, ptrdiff_t>(__tmp, __len);=0A=
       __len /=3D 2;=0A=
     }=0A=
 =0A=
     return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0);=0A=
   }=0A=
 # 102 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A=
   template <class _Tp>=0A=
   inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) {=0A=
     return __get_temporary_buffer(__len, (_Tp*) 0);=0A=
   }=0A=
 # 114 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A=
   template <class _Tp>=0A=
   void return_temporary_buffer(_Tp* __p) {=0A=
     std::free(__p);=0A=
   }=0A=
 =0A=
 =0A=
 template <class _Tp1>=0A=
   struct auto_ptr_ref=0A=
 {=0A=
    _Tp1* _M_ptr;=0A=
    auto_ptr_ref(_Tp1* __p) : _M_ptr(__p) {}=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
   class auto_ptr=0A=
 {=0A=
 private:=0A=
   _Tp* _M_ptr;=0A=
 =0A=
 public:=0A=
   typedef _Tp element_type;=0A=
 =0A=
   explicit auto_ptr(_Tp* __p =3D 0) throw() : _M_ptr(__p) {}=0A=
   auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) {}=0A=
 =0A=
   template <class _Tp1> auto_ptr(auto_ptr<_Tp1>& __a) throw()=0A=
     : _M_ptr(__a.release()) {}=0A=
 =0A=
   auto_ptr& operator=3D(auto_ptr& __a) throw() {=0A=
     reset(__a.release());=0A=
     return *this;=0A=
   }=0A=
 =0A=
   template <class _Tp1>=0A=
   auto_ptr& operator=3D(auto_ptr<_Tp1>& __a) throw() {=0A=
     reset(__a.release());=0A=
     return *this;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   ~auto_ptr() { delete _M_ptr; }=0A=
 =0A=
   _Tp& operator*() const throw() {=0A=
     return *_M_ptr;=0A=
   }=0A=
   _Tp* operator->() const throw() {=0A=
     return _M_ptr;=0A=
   }=0A=
   _Tp* get() const throw() {=0A=
     return _M_ptr;=0A=
   }=0A=
   _Tp* release() throw() {=0A=
     _Tp* __tmp =3D _M_ptr;=0A=
     _M_ptr =3D 0;=0A=
     return __tmp;=0A=
   }=0A=
   void reset(_Tp* __p =3D 0) throw() {=0A=
     if (__p !=3D _M_ptr) {=0A=
       delete _M_ptr;=0A=
       _M_ptr =3D __p;=0A=
     }=0A=
   }=0A=
 =0A=
 public:=0A=
   auto_ptr(auto_ptr_ref<_Tp> __ref) throw()=0A=
     : _M_ptr(__ref._M_ptr) {}=0A=
 =0A=
   auto_ptr& operator=3D(auto_ptr_ref<_Tp> __ref) throw() {=0A=
     if (__ref._M_ptr !=3D this->get()) {=0A=
       delete _M_ptr;=0A=
       _M_ptr =3D __ref._M_ptr;=0A=
     }=0A=
     return *this;=0A=
   }=0A=
 =0A=
   template <class _Tp1> operator auto_ptr_ref<_Tp1>() throw()=0A=
     { return auto_ptr_ref<_Tp>(this->release()); }=0A=
   template <class _Tp1> operator auto_ptr<_Tp1>() throw()=0A=
     { return auto_ptr<_Tp1>(this->release()); }=0A=
 };=0A=
 =0A=
 }=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 namespace std=0A=
 {=0A=
 # 101 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Arg, class _Result>=0A=
 struct unary_function {=0A=
   typedef _Arg argument_type;=0A=
   typedef _Result result_type;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Arg1, class _Arg2, class _Result>=0A=
 struct binary_function {=0A=
   typedef _Arg1 first_argument_type;=0A=
   typedef _Arg2 second_argument_type;=0A=
   typedef _Result result_type;=0A=
 };=0A=
 # 127 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Tp>=0A=
 struct plus : public binary_function<_Tp,_Tp,_Tp> {=0A=
   _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct minus : public binary_function<_Tp,_Tp,_Tp> {=0A=
   _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct multiplies : public binary_function<_Tp,_Tp,_Tp> {=0A=
   _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct divides : public binary_function<_Tp,_Tp,_Tp> {=0A=
   _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct modulus : public binary_function<_Tp,_Tp,_Tp>=0A=
 {=0A=
   _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct negate : public unary_function<_Tp,_Tp>=0A=
 {=0A=
   _Tp operator()(const _Tp& __x) const { return -__x; }=0A=
 };=0A=
 # 173 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Tp>=0A=
 struct equal_to : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x =
 =3D=3D __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct not_equal_to : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x =
 !=3D __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct greater : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct less : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct greater_equal : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x =
 >=3D __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct less_equal : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x =
 <=3D __y; }=0A=
 };=0A=
 # 222 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Tp>=0A=
 struct logical_and : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct logical_or : public binary_function<_Tp,_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || =
 __y; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct logical_not : public unary_function<_Tp,bool>=0A=
 {=0A=
   bool operator()(const _Tp& __x) const { return !__x; }=0A=
 };=0A=
 # 271 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Predicate>=0A=
 class unary_negate=0A=
   : public unary_function<typename _Predicate::argument_type, bool> {=0A=
 protected:=0A=
   _Predicate _M_pred;=0A=
 public:=0A=
   explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {}=0A=
   bool operator()(const typename _Predicate::argument_type& __x) const {=0A=
     return !_M_pred(__x);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Predicate>=0A=
 inline unary_negate<_Predicate>=0A=
 not1(const _Predicate& __pred)=0A=
 {=0A=
   return unary_negate<_Predicate>(__pred);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _Predicate>=0A=
 class binary_negate=0A=
   : public binary_function<typename _Predicate::first_argument_type,=0A=
                            typename _Predicate::second_argument_type,=0A=
                            bool> {=0A=
 protected:=0A=
   _Predicate _M_pred;=0A=
 public:=0A=
   explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {}=0A=
   bool operator()(const typename _Predicate::first_argument_type& __x,=0A=
                   const typename _Predicate::second_argument_type& __y) =
 const=0A=
   {=0A=
     return !_M_pred(__x, __y);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Predicate>=0A=
 inline binary_negate<_Predicate>=0A=
 not2(const _Predicate& __pred)=0A=
 {=0A=
   return binary_negate<_Predicate>(__pred);=0A=
 }=0A=
 # 349 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Operation>=0A=
 class binder1st=0A=
   : public unary_function<typename _Operation::second_argument_type,=0A=
                           typename _Operation::result_type> {=0A=
 protected:=0A=
   _Operation op;=0A=
   typename _Operation::first_argument_type value;=0A=
 public:=0A=
   binder1st(const _Operation& __x,=0A=
             const typename _Operation::first_argument_type& __y)=0A=
       : op(__x), value(__y) {}=0A=
   typename _Operation::result_type=0A=
   operator()(const typename _Operation::second_argument_type& __x) const =
 {=0A=
     return op(value, __x);=0A=
   }=0A=
 =0A=
 =0A=
   typename _Operation::result_type=0A=
   operator()(typename _Operation::second_argument_type& __x) const {=0A=
     return op(value, __x);=0A=
   }=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 template <class _Operation, class _Tp>=0A=
 inline binder1st<_Operation>=0A=
 bind1st(const _Operation& __fn, const _Tp& __x)=0A=
 {=0A=
   typedef typename _Operation::first_argument_type _Arg1_type;=0A=
   return binder1st<_Operation>(__fn, _Arg1_type(__x));=0A=
 }=0A=
 =0A=
 =0A=
 template <class _Operation>=0A=
 class binder2nd=0A=
   : public unary_function<typename _Operation::first_argument_type,=0A=
                           typename _Operation::result_type> {=0A=
 protected:=0A=
   _Operation op;=0A=
   typename _Operation::second_argument_type value;=0A=
 public:=0A=
   binder2nd(const _Operation& __x,=0A=
             const typename _Operation::second_argument_type& __y)=0A=
       : op(__x), value(__y) {}=0A=
   typename _Operation::result_type=0A=
   operator()(const typename _Operation::first_argument_type& __x) const {=0A=
     return op(__x, value);=0A=
   }=0A=
 =0A=
 =0A=
   typename _Operation::result_type=0A=
   operator()(typename _Operation::first_argument_type& __x) const {=0A=
     return op(__x, value);=0A=
   }=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 template <class _Operation, class _Tp>=0A=
 inline binder2nd<_Operation>=0A=
 bind2nd(const _Operation& __fn, const _Tp& __x)=0A=
 {=0A=
   typedef typename _Operation::second_argument_type _Arg2_type;=0A=
   return binder2nd<_Operation>(__fn, _Arg2_type(__x));=0A=
 }=0A=
 # 438 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Arg, class _Result>=0A=
 class pointer_to_unary_function : public unary_function<_Arg, _Result> {=0A=
 protected:=0A=
   _Result (*_M_ptr)(_Arg);=0A=
 public:=0A=
   pointer_to_unary_function() {}=0A=
   explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) =
 {}=0A=
   _Result operator()(_Arg __x) const { return _M_ptr(__x); }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Arg, class _Result>=0A=
 inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result =
 (*__x)(_Arg))=0A=
 {=0A=
   return pointer_to_unary_function<_Arg, _Result>(__x);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _Arg1, class _Arg2, class _Result>=0A=
 class pointer_to_binary_function :=0A=
   public binary_function<_Arg1,_Arg2,_Result> {=0A=
 protected:=0A=
     _Result (*_M_ptr)(_Arg1, _Arg2);=0A=
 public:=0A=
     pointer_to_binary_function() {}=0A=
     explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))=0A=
       : _M_ptr(__x) {}=0A=
     _Result operator()(_Arg1 __x, _Arg2 __y) const {=0A=
       return _M_ptr(__x, __y);=0A=
     }=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Arg1, class _Arg2, class _Result>=0A=
 inline pointer_to_binary_function<_Arg1,_Arg2,_Result>=0A=
 ptr_fun(_Result (*__x)(_Arg1, _Arg2)) {=0A=
   return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x);=0A=
 }=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 struct _Identity : public unary_function<_Tp,_Tp> {=0A=
   _Tp& operator()(_Tp& __x) const { return __x; }=0A=
   const _Tp& operator()(const _Tp& __x) const { return __x; }=0A=
 };=0A=
 =0A=
 template <class _Pair>=0A=
 struct _Select1st : public unary_function<_Pair, typename =
 _Pair::first_type> {=0A=
   typename _Pair::first_type& operator()(_Pair& __x) const {=0A=
     return __x.first;=0A=
   }=0A=
   const typename _Pair::first_type& operator()(const _Pair& __x) const {=0A=
     return __x.first;=0A=
   }=0A=
 };=0A=
 =0A=
 template <class _Pair>=0A=
 struct _Select2nd : public unary_function<_Pair, typename =
 _Pair::second_type>=0A=
 {=0A=
   typename _Pair::second_type& operator()(_Pair& __x) const {=0A=
     return __x.second;=0A=
   }=0A=
   const typename _Pair::second_type& operator()(const _Pair& __x) const {=0A=
     return __x.second;=0A=
   }=0A=
 };=0A=
 # 528 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A=
 template <class _Ret, class _Tp>=0A=
 class mem_fun_t : public unary_function<_Tp*,_Ret> {=0A=
 public:=0A=
   explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {}=0A=
   _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)();=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 class const_mem_fun_t : public unary_function<const _Tp*,_Ret> {=0A=
 public:=0A=
   explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {}=0A=
   _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)() const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 class mem_fun_ref_t : public unary_function<_Tp,_Ret> {=0A=
 public:=0A=
   explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {}=0A=
   _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)();=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> {=0A=
 public:=0A=
   explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {}=0A=
   _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)() const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> {=0A=
 public:=0A=
   explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A=
   _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)(_Arg);=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 class const_mem_fun1_t : public binary_function<const _Tp*,_Arg,_Ret> {=0A=
 public:=0A=
   explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) =
 {}=0A=
   _Ret operator()(const _Tp* __p, _Arg __x) const=0A=
     { return (__p->*_M_f)(__x); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)(_Arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {=0A=
 public:=0A=
   explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A=
   _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)(_Arg);=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {=0A=
 public:=0A=
   explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : =
 _M_f(__pf) {}=0A=
   _Ret operator()(const _Tp& __r, _Arg __x) const { return =
 (__r.*_M_f)(__x); }=0A=
 private:=0A=
   _Ret (_Tp::*_M_f)(_Arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 class mem_fun_t<void, _Tp> : public unary_function<_Tp*,void> {=0A=
 public:=0A=
   explicit mem_fun_t(void (_Tp::*__pf)()) : _M_f(__pf) {}=0A=
   void operator()(_Tp* __p) const { (__p->*_M_f)(); }=0A=
 private:=0A=
   void (_Tp::*_M_f)();=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 class const_mem_fun_t<void, _Tp> : public unary_function<const =
 _Tp*,void> {=0A=
 public:=0A=
   explicit const_mem_fun_t(void (_Tp::*__pf)() const) : _M_f(__pf) {}=0A=
   void operator()(const _Tp* __p) const { (__p->*_M_f)(); }=0A=
 private:=0A=
   void (_Tp::*_M_f)() const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> {=0A=
 public:=0A=
   explicit mem_fun_ref_t(void (_Tp::*__pf)()) : _M_f(__pf) {}=0A=
   void operator()(_Tp& __r) const { (__r.*_M_f)(); }=0A=
 private:=0A=
   void (_Tp::*_M_f)();=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp>=0A=
 class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> {=0A=
 public:=0A=
   explicit const_mem_fun_ref_t(void (_Tp::*__pf)() const) : _M_f(__pf) {}=0A=
   void operator()(const _Tp& __r) const { (__r.*_M_f)(); }=0A=
 private:=0A=
   void (_Tp::*_M_f)() const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Arg>=0A=
 class mem_fun1_t<void, _Tp, _Arg> : public =
 binary_function<_Tp*,_Arg,void> {=0A=
 public:=0A=
   explicit mem_fun1_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A=
   void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }=0A=
 private:=0A=
   void (_Tp::*_M_f)(_Arg);=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Arg>=0A=
 class const_mem_fun1_t<void, _Tp, _Arg>=0A=
   : public binary_function<const _Tp*,_Arg,void> {=0A=
 public:=0A=
   explicit const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) =
 {}=0A=
   void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }=0A=
 private:=0A=
   void (_Tp::*_M_f)(_Arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Arg>=0A=
 class mem_fun1_ref_t<void, _Tp, _Arg>=0A=
   : public binary_function<_Tp,_Arg,void> {=0A=
 public:=0A=
   explicit mem_fun1_ref_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A=
   void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }=0A=
 private:=0A=
   void (_Tp::*_M_f)(_Arg);=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Tp, class _Arg>=0A=
 class const_mem_fun1_ref_t<void, _Tp, _Arg>=0A=
   : public binary_function<_Tp,_Arg,void> {=0A=
 public:=0A=
   explicit const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const) : =
 _M_f(__pf) {}=0A=
   void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }=0A=
 private:=0A=
   void (_Tp::*_M_f)(_Arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 inline mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)())=0A=
   { return mem_fun_t<_Ret,_Tp>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 inline const_mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)() const)=0A=
   { return const_mem_fun_t<_Ret,_Tp>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 inline mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)())=0A=
   { return mem_fun_ref_t<_Ret,_Tp>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp>=0A=
 inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() =
 const)=0A=
   { return const_mem_fun_ref_t<_Ret,_Tp>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 inline mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg))=0A=
   { return mem_fun1_t<_Ret,_Tp,_Arg>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 inline const_mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) =
 const)=0A=
   { return const_mem_fun1_t<_Ret,_Tp,_Arg>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 inline mem_fun1_ref_t<_Ret,_Tp,_Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg))=0A=
   { return mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); }=0A=
 =0A=
 template <class _Ret, class _Tp, class _Arg>=0A=
 inline const_mem_fun1_ref_t<_Ret,_Tp,_Arg>=0A=
 mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)=0A=
   { return const_mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); }=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 1 3=0A=
 # 33 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 3=0A=
 typedef int _Atomic_word;=0A=
 =0A=
 static inline _Atomic_word=0A=
 __attribute__ ((__unused__))=0A=
 __exchange_and_add (volatile _Atomic_word *__mem, int __val)=0A=
 {=0A=
   register _Atomic_word __result;=0A=
   __asm__ __volatile__ ("lock; xaddl %0,%2"=0A=
                         : "=3Dr" (__result)=0A=
                         : "0" (__val), "m" (*__mem)=0A=
                         : "memory");=0A=
   return __result;=0A=
 }=0A=
 =0A=
 static inline void=0A=
 __attribute__ ((__unused__))=0A=
 __atomic_add (volatile _Atomic_word* __mem, int __val)=0A=
 {=0A=
   __asm__ __volatile__ ("lock; addl %0,%1"=0A=
                         : : "ir" (__val), "m" (*__mem) : "memory");=0A=
 }=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 88 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     class basic_string=0A=
     {=0A=
 =0A=
     public:=0A=
       typedef _Traits traits_type;=0A=
       typedef typename _Traits::char_type value_type;=0A=
       typedef _Alloc allocator_type;=0A=
       typedef typename _Alloc::size_type size_type;=0A=
       typedef typename _Alloc::difference_type difference_type;=0A=
       typedef typename _Alloc::reference reference;=0A=
       typedef typename _Alloc::const_reference const_reference;=0A=
       typedef typename _Alloc::pointer pointer;=0A=
       typedef typename _Alloc::const_pointer const_pointer;=0A=
       typedef __gnu_cxx::__normal_iterator<pointer, basic_string> =
 iterator;=0A=
       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>=0A=
                                                             =
 const_iterator;=0A=
       typedef reverse_iterator<const_iterator> const_reverse_iterator;=0A=
       typedef reverse_iterator<iterator> reverse_iterator;=0A=
 =0A=
     private:=0A=
 # 123 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A=
       struct _Rep=0A=
       {=0A=
 =0A=
         typedef typename _Alloc::template rebind<char>::other =
 _Raw_bytes_alloc;=0A=
 # 141 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A=
         static const size_type _S_max_size;=0A=
         static const _CharT _S_terminal;=0A=
 =0A=
         size_type _M_length;=0A=
         size_type _M_capacity;=0A=
         _Atomic_word _M_references;=0A=
 =0A=
         bool=0A=
         _M_is_leaked() const=0A=
         { return _M_references < 0; }=0A=
 =0A=
         bool=0A=
         _M_is_shared() const=0A=
         { return _M_references > 0; }=0A=
 =0A=
         void=0A=
         _M_set_leaked()=0A=
         { _M_references =3D -1; }=0A=
 =0A=
         void=0A=
         _M_set_sharable()=0A=
         { _M_references =3D 0; }=0A=
 =0A=
         _CharT*=0A=
         _M_refdata() throw()=0A=
         { return reinterpret_cast<_CharT*>(this + 1); }=0A=
 =0A=
         _CharT&=0A=
         operator[](size_t __s) throw()=0A=
         { return _M_refdata() [__s]; }=0A=
 =0A=
         _CharT*=0A=
         _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)=0A=
         {=0A=
           return (!_M_is_leaked() && __alloc1 =3D=3D __alloc2)=0A=
                   ? _M_refcopy() : _M_clone(__alloc1);=0A=
         }=0A=
 =0A=
 =0A=
         static _Rep*=0A=
         _S_create(size_t, const _Alloc&);=0A=
 =0A=
         void=0A=
         _M_dispose(const _Alloc& __a)=0A=
         {=0A=
           if (__exchange_and_add(&_M_references, -1) <=3D 0)=0A=
             _M_destroy(__a);=0A=
         }=0A=
 =0A=
         void=0A=
         _M_destroy(const _Alloc&) throw();=0A=
 =0A=
         _CharT*=0A=
         _M_refcopy() throw()=0A=
         {=0A=
           __atomic_add(&_M_references, 1);=0A=
           return _M_refdata();=0A=
         }=0A=
 =0A=
         _CharT*=0A=
         _M_clone(const _Alloc&, size_type __res =3D 0);=0A=
       };=0A=
 =0A=
 =0A=
       struct _Alloc_hider : _Alloc=0A=
       {=0A=
         _Alloc_hider(_CharT* __dat, const _Alloc& __a)=0A=
         : _Alloc(__a), _M_p(__dat) { }=0A=
 =0A=
         _CharT* _M_p;=0A=
       };=0A=
 =0A=
     public:=0A=
 =0A=
 =0A=
 =0A=
       static const size_type npos =3D static_cast<size_type>(-1);=0A=
 =0A=
     private:=0A=
 =0A=
       mutable _Alloc_hider _M_dataplus;=0A=
 =0A=
 =0A=
 =0A=
       static size_type _S_empty_rep_storage[(sizeof(_Rep) + =
 sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)];=0A=
 =0A=
       _CharT*=0A=
       _M_data() const=0A=
       { return _M_dataplus._M_p; }=0A=
 =0A=
       _CharT*=0A=
       _M_data(_CharT* __p)=0A=
       { return (_M_dataplus._M_p =3D __p); }=0A=
 =0A=
       _Rep*=0A=
       _M_rep() const=0A=
       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }=0A=
 =0A=
 =0A=
 =0A=
       iterator=0A=
       _M_ibegin() const { return iterator(_M_data()); }=0A=
 =0A=
       iterator=0A=
       _M_iend() const { return iterator(_M_data() + this->size()); }=0A=
 =0A=
       void=0A=
       _M_leak()=0A=
       {=0A=
         if (!_M_rep()->_M_is_leaked())=0A=
           _M_leak_hard();=0A=
       }=0A=
 =0A=
       iterator=0A=
       _M_check(size_type __pos) const=0A=
       {=0A=
         if (__pos > this->size())=0A=
           __throw_out_of_range("basic_string::_M_check");=0A=
         return _M_ibegin() + __pos;=0A=
       }=0A=
 =0A=
 =0A=
       iterator=0A=
       _M_fold(size_type __pos, size_type __off) const=0A=
       {=0A=
         bool __testoff =3D __off < this->size() - __pos;=0A=
         size_type __newoff =3D __testoff ? __off : this->size() - __pos;=0A=
         return (_M_ibegin() + __pos + __newoff);=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
       template<class _Iterator>=0A=
         static void=0A=
         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)=0A=
         {=0A=
           for (; __k1 !=3D __k2; ++__k1, ++__p)=0A=
             traits_type::assign(*__p, *__k1);=0A=
         }=0A=
 =0A=
       static void=0A=
       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)=0A=
       { _S_copy_chars(__p, __k1.base(), __k2.base()); }=0A=
 =0A=
       static void=0A=
       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator =
 __k2)=0A=
       { _S_copy_chars(__p, __k1.base(), __k2.base()); }=0A=
 =0A=
       static void=0A=
       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)=0A=
       { traits_type::copy(__p, __k1, __k2 - __k1); }=0A=
 =0A=
       static void=0A=
       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)=0A=
       { traits_type::copy(__p, __k1, __k2 - __k1); }=0A=
 =0A=
       void=0A=
       _M_mutate(size_type __pos, size_type __len1, size_type __len2);=0A=
 =0A=
       void=0A=
       _M_leak_hard();=0A=
 =0A=
       static _Rep&=0A=
       _S_empty_rep()=0A=
       { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }=0A=
 =0A=
     public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       inline=0A=
       basic_string();=0A=
 =0A=
       explicit=0A=
       basic_string(const _Alloc& __a);=0A=
 =0A=
 =0A=
       basic_string(const basic_string& __str);=0A=
       basic_string(const basic_string& __str, size_type __pos,=0A=
                    size_type __n =3D npos);=0A=
       basic_string(const basic_string& __str, size_type __pos,=0A=
                    size_type __n, const _Alloc& __a);=0A=
 =0A=
       basic_string(const _CharT* __s, size_type __n,=0A=
                    const _Alloc& __a =3D _Alloc());=0A=
       basic_string(const _CharT* __s, const _Alloc& __a =3D _Alloc());=0A=
       basic_string(size_type __n, _CharT __c, const _Alloc& __a =3D =
 _Alloc());=0A=
 =0A=
       template<class _InputIterator>=0A=
         basic_string(_InputIterator __beg, _InputIterator __end,=0A=
                      const _Alloc& __a =3D _Alloc());=0A=
 =0A=
       ~basic_string()=0A=
       { _M_rep()->_M_dispose(this->get_allocator()); }=0A=
 =0A=
       basic_string&=0A=
       operator=3D(const basic_string& __str) { return =
 this->assign(__str); }=0A=
 =0A=
       basic_string&=0A=
       operator=3D(const _CharT* __s) { return this->assign(__s); }=0A=
 =0A=
       basic_string&=0A=
       operator=3D(_CharT __c) { return this->assign(1, __c); }=0A=
 =0A=
 =0A=
       iterator=0A=
       begin()=0A=
       {=0A=
         _M_leak();=0A=
         return iterator(_M_data());=0A=
       }=0A=
 =0A=
       const_iterator=0A=
       begin() const=0A=
       { return const_iterator(_M_data()); }=0A=
 =0A=
       iterator=0A=
       end()=0A=
       {=0A=
          _M_leak();=0A=
          return iterator(_M_data() + this->size());=0A=
       }=0A=
 =0A=
       const_iterator=0A=
       end() const=0A=
       { return const_iterator(_M_data() + this->size()); }=0A=
 =0A=
       reverse_iterator=0A=
       rbegin()=0A=
       { return reverse_iterator(this->end()); }=0A=
 =0A=
       const_reverse_iterator=0A=
       rbegin() const=0A=
       { return const_reverse_iterator(this->end()); }=0A=
 =0A=
       reverse_iterator=0A=
       rend()=0A=
       { return reverse_iterator(this->begin()); }=0A=
 =0A=
       const_reverse_iterator=0A=
       rend() const=0A=
       { return const_reverse_iterator(this->begin()); }=0A=
 =0A=
     public:=0A=
 =0A=
       size_type=0A=
       size() const { return _M_rep()->_M_length; }=0A=
 =0A=
       size_type=0A=
       length() const { return _M_rep()->_M_length; }=0A=
 =0A=
       size_type=0A=
       max_size() const { return _Rep::_S_max_size; }=0A=
 =0A=
       void=0A=
       resize(size_type __n, _CharT __c);=0A=
 =0A=
       void=0A=
       resize(size_type __n) { this->resize(__n, _CharT()); }=0A=
 =0A=
       size_type=0A=
       capacity() const { return _M_rep()->_M_capacity; }=0A=
 =0A=
       void=0A=
       reserve(size_type __res_arg =3D 0);=0A=
 =0A=
       void=0A=
       clear() { _M_mutate(0, this->size(), 0); }=0A=
 =0A=
       bool=0A=
       empty() const { return this->size() =3D=3D 0; }=0A=
 =0A=
 =0A=
       const_reference=0A=
       operator[] (size_type __pos) const=0A=
       { return _M_data()[__pos]; }=0A=
 =0A=
       reference=0A=
       operator[](size_type __pos)=0A=
       {=0A=
         _M_leak();=0A=
         return _M_data()[__pos];=0A=
       }=0A=
 =0A=
       const_reference=0A=
       at(size_type __n) const=0A=
       {=0A=
         if (__n >=3D this->size())=0A=
           __throw_out_of_range("basic_string::at");=0A=
         return _M_data()[__n];=0A=
       }=0A=
 =0A=
       reference=0A=
       at(size_type __n)=0A=
       {=0A=
         if (__n >=3D size())=0A=
           __throw_out_of_range("basic_string::at");=0A=
         _M_leak();=0A=
         return _M_data()[__n];=0A=
       }=0A=
 =0A=
 =0A=
       basic_string&=0A=
       operator+=3D(const basic_string& __str) { return =
 this->append(__str); }=0A=
 =0A=
       basic_string&=0A=
       operator+=3D(const _CharT* __s) { return this->append(__s); }=0A=
 =0A=
       basic_string&=0A=
       operator+=3D(_CharT __c) { return this->append(size_type(1), __c); =
 }=0A=
 =0A=
       basic_string&=0A=
       append(const basic_string& __str);=0A=
 =0A=
       basic_string&=0A=
       append(const basic_string& __str, size_type __pos, size_type __n);=0A=
 =0A=
       basic_string&=0A=
       append(const _CharT* __s, size_type __n);=0A=
 =0A=
       basic_string&=0A=
       append(const _CharT* __s)=0A=
       { return this->append(__s, traits_type::length(__s)); }=0A=
 =0A=
       basic_string&=0A=
       append(size_type __n, _CharT __c);=0A=
 =0A=
       template<class _InputIterator>=0A=
         basic_string&=0A=
         append(_InputIterator __first, _InputIterator __last)=0A=
         { return this->replace(_M_iend(), _M_iend(), __first, __last); }=0A=
 =0A=
       void=0A=
       push_back(_CharT __c)=0A=
       { this->replace(_M_iend(), _M_iend(), 1, __c); }=0A=
 =0A=
       basic_string&=0A=
       assign(const basic_string& __str);=0A=
 =0A=
       basic_string&=0A=
       assign(const basic_string& __str, size_type __pos, size_type __n)=0A=
       {=0A=
         const size_type __strsize =3D __str.size();=0A=
         if (__pos > __strsize)=0A=
           __throw_out_of_range("basic_string::assign");=0A=
         const bool __testn =3D __n < __strsize - __pos;=0A=
         const size_type __newsize =3D __testn ? __n : __strsize - __pos;=0A=
         return this->assign(__str._M_data() + __pos, __newsize);=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       assign(const _CharT* __s, size_type __n)=0A=
       {=0A=
         if (__n > this->max_size())=0A=
           __throw_length_error("basic_string::assign");=0A=
         if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, =
 _M_data())=0A=
             || less<const _CharT*>()(_M_data() + this->size(), __s))=0A=
           return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);=0A=
         else=0A=
           {=0A=
 =0A=
             const size_type __pos =3D __s - _M_data();=0A=
             if (__pos >=3D __n)=0A=
               traits_type::copy(_M_data(), __s, __n);=0A=
             else if (__pos)=0A=
               traits_type::move(_M_data(), __s, __n);=0A=
             _M_rep()->_M_length =3D __n;=0A=
             _M_data()[__n] =3D _Rep::_S_terminal;=0A=
             return *this;=0A=
           }=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       assign(const _CharT* __s)=0A=
       { return this->assign(__s, traits_type::length(__s)); }=0A=
 =0A=
       basic_string&=0A=
       assign(size_type __n, _CharT __c)=0A=
       { return this->replace(_M_ibegin(), _M_iend(), __n, __c); }=0A=
 =0A=
       template<class _InputIterator>=0A=
         basic_string&=0A=
         assign(_InputIterator __first, _InputIterator __last)=0A=
         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); =
 }=0A=
 =0A=
       void=0A=
       insert(iterator __p, size_type __n, _CharT __c)=0A=
       { this->replace(__p, __p, __n, __c); }=0A=
 =0A=
       template<class _InputIterator>=0A=
         void insert(iterator __p, _InputIterator __beg, _InputIterator =
 __end)=0A=
         { this->replace(__p, __p, __beg, __end); }=0A=
 =0A=
       basic_string&=0A=
       insert(size_type __pos1, const basic_string& __str)=0A=
       { return this->insert(__pos1, __str, 0, __str.size()); }=0A=
 =0A=
       basic_string&=0A=
       insert(size_type __pos1, const basic_string& __str,=0A=
              size_type __pos2, size_type __n)=0A=
       {=0A=
         const size_type __strsize =3D __str.size();=0A=
         if (__pos2 > __strsize)=0A=
           __throw_out_of_range("basic_string::insert");=0A=
         const bool __testn =3D __n < __strsize - __pos2;=0A=
         const size_type __newsize =3D __testn ? __n : __strsize - __pos2;=0A=
         return this->insert(__pos1, __str._M_data() + __pos2, __newsize);=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       insert(size_type __pos, const _CharT* __s, size_type __n)=0A=
       {=0A=
         const size_type __size =3D this->size();=0A=
         if (__pos > __size)=0A=
           __throw_out_of_range("basic_string::insert");=0A=
         if (__size > this->max_size() - __n)=0A=
           __throw_length_error("basic_string::insert");=0A=
         if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, =
 _M_data())=0A=
             || less<const _CharT*>()(_M_data() + __size, __s))=0A=
           return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + =
 __pos,=0A=
                                  __s, __s + __n);=0A=
         else=0A=
           {=0A=
 =0A=
 =0A=
 =0A=
             const size_type __off =3D __s - _M_data();=0A=
             _M_mutate(__pos, 0, __n);=0A=
             __s =3D _M_data() + __off;=0A=
             _CharT* __p =3D _M_data() + __pos;=0A=
             if (__s + __n <=3D __p)=0A=
               traits_type::copy(__p, __s, __n);=0A=
             else if (__s >=3D __p)=0A=
               traits_type::copy(__p, __s + __n, __n);=0A=
             else=0A=
               {=0A=
                 traits_type::copy(__p, __s, __p - __s);=0A=
                 traits_type::copy(__p + (__p - __s), __p + __n, __n - =
 (__p - __s));=0A=
               }=0A=
             return *this;=0A=
           }=0A=
        }=0A=
 =0A=
       basic_string&=0A=
       insert(size_type __pos, const _CharT* __s)=0A=
       { return this->insert(__pos, __s, traits_type::length(__s)); }=0A=
 =0A=
       basic_string&=0A=
       insert(size_type __pos, size_type __n, _CharT __c)=0A=
       {=0A=
         this->insert(_M_check(__pos), __n, __c);=0A=
         return *this;=0A=
       }=0A=
 =0A=
       iterator=0A=
       insert(iterator __p, _CharT __c =3D _CharT())=0A=
       {=0A=
         size_type __pos =3D __p - _M_ibegin();=0A=
         this->insert(_M_check(__pos), size_type(1), __c);=0A=
         _M_rep()->_M_set_leaked();=0A=
         return this->_M_ibegin() + __pos;=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       erase(size_type __pos =3D 0, size_type __n =3D npos)=0A=
       {=0A=
         return this->replace(_M_check(__pos), _M_fold(__pos, __n),=0A=
                              _M_data(), _M_data());=0A=
       }=0A=
 =0A=
       iterator=0A=
       erase(iterator __position)=0A=
       {=0A=
         size_type __i =3D __position - _M_ibegin();=0A=
         this->replace(__position, __position + 1, _M_data(), _M_data());=0A=
         _M_rep()->_M_set_leaked();=0A=
         return _M_ibegin() + __i;=0A=
       }=0A=
 =0A=
       iterator=0A=
       erase(iterator __first, iterator __last)=0A=
       {=0A=
         size_type __i =3D __first - _M_ibegin();=0A=
         this->replace(__first, __last, _M_data(), _M_data());=0A=
         _M_rep()->_M_set_leaked();=0A=
        return _M_ibegin() + __i;=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       replace(size_type __pos, size_type __n, const basic_string& __str)=0A=
       { return this->replace(__pos, __n, __str._M_data(), __str.size()); =
 }=0A=
 =0A=
       basic_string&=0A=
       replace(size_type __pos1, size_type __n1, const basic_string& =
 __str,=0A=
               size_type __pos2, size_type __n2);=0A=
 =0A=
       basic_string&=0A=
       replace(size_type __pos, size_type __n1, const _CharT* __s,=0A=
               size_type __n2)=0A=
       {=0A=
         const size_type __size =3D this->size();=0A=
         if (__pos > __size)=0A=
           __throw_out_of_range("basic_string::replace");=0A=
         const bool __testn1 =3D __n1 < __size - __pos;=0A=
         const size_type __foldn1 =3D __testn1 ? __n1 : __size - __pos;=0A=
         if (__size - __foldn1 > this->max_size() - __n2)=0A=
           __throw_length_error("basic_string::replace");=0A=
         if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, =
 _M_data())=0A=
             || less<const _CharT*>()(_M_data() + __size, __s))=0A=
           return _M_replace_safe(_M_ibegin() + __pos,=0A=
                                  _M_ibegin() + __pos + __foldn1, __s, =
 __s + __n2);=0A=
         else return this->replace(_M_check(__pos), _M_fold(__pos, __n1),=0A=
                                   __s, __s + __n2);=0A=
       }=0A=
 =0A=
       basic_string&=0A=
       replace(size_type __pos, size_type __n1, const _CharT* __s)=0A=
       { return this->replace(__pos, __n1, __s, =
 traits_type::length(__s)); }=0A=
 =0A=
       basic_string&=0A=
       replace(size_type __pos, size_type __n1, size_type __n2, _CharT =
 __c)=0A=
       { return this->replace(_M_check(__pos), _M_fold(__pos, __n1), =
 __n2, __c); }=0A=
 =0A=
       basic_string&=0A=
       replace(iterator __i1, iterator __i2, const basic_string& __str)=0A=
       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); =
 }=0A=
 =0A=
       basic_string&=0A=
       replace(iterator __i1, iterator __i2,=0A=
                            const _CharT* __s, size_type __n)=0A=
       { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); =
 }=0A=
 =0A=
       basic_string&=0A=
       replace(iterator __i1, iterator __i2, const _CharT* __s)=0A=
       { return this->replace(__i1, __i2, __s, traits_type::length(__s)); =
 }=0A=
 =0A=
       basic_string&=0A=
       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c);=0A=
 =0A=
       template<class _InputIterator>=0A=
         basic_string&=0A=
         replace(iterator __i1, iterator __i2,=0A=
                 _InputIterator __k1, _InputIterator __k2)=0A=
         { return _M_replace(__i1, __i2, __k1, __k2,=0A=
              typename =
 iterator_traits<_InputIterator>::iterator_category()); }=0A=
 =0A=
     private:=0A=
       template<class _InputIterator>=0A=
         basic_string&=0A=
         _M_replace(iterator __i1, iterator __i2, _InputIterator __k1,=0A=
                    _InputIterator __k2, input_iterator_tag);=0A=
 =0A=
       template<class _ForwardIterator>=0A=
         basic_string&=0A=
         _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator =
 __k1,=0A=
                    _ForwardIterator __k2);=0A=
 =0A=
 =0A=
 =0A=
       template<class _InIter>=0A=
         static _CharT*=0A=
         _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,=0A=
                          __false_type)=0A=
         {=0A=
           typedef typename iterator_traits<_InIter>::iterator_category =
 _Tag;=0A=
           return _S_construct(__beg, __end, __a, _Tag());=0A=
         }=0A=
 =0A=
       template<class _InIter>=0A=
         static _CharT*=0A=
         _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,=0A=
                          __true_type)=0A=
         {=0A=
           return _S_construct(static_cast<size_type>(__beg),=0A=
                               static_cast<value_type>(__end), __a);=0A=
         }=0A=
 =0A=
       template<class _InIter>=0A=
         static _CharT*=0A=
         _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a)=0A=
         {=0A=
           typedef typename _Is_integer<_InIter>::_Integral _Integral;=0A=
           return _S_construct_aux(__beg, __end, __a, _Integral());=0A=
         }=0A=
 =0A=
 =0A=
       template<class _InIter>=0A=
         static _CharT*=0A=
          _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A=
                       input_iterator_tag);=0A=
 =0A=
 =0A=
 =0A=
       template<class _FwdIter>=0A=
         static _CharT*=0A=
         _S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a,=0A=
                      forward_iterator_tag);=0A=
 =0A=
       static _CharT*=0A=
       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);=0A=
 =0A=
     public:=0A=
 =0A=
       size_type=0A=
       copy(_CharT* __s, size_type __n, size_type __pos =3D 0) const;=0A=
 =0A=
       void=0A=
       swap(basic_string<_CharT, _Traits, _Alloc>& __s);=0A=
 =0A=
 =0A=
       const _CharT*=0A=
       c_str() const=0A=
       {=0A=
 =0A=
         size_type __n =3D this->size();=0A=
         traits_type::assign(_M_data()[__n], _Rep::_S_terminal);=0A=
         return _M_data();=0A=
       }=0A=
 =0A=
       const _CharT*=0A=
       data() const { return _M_data(); }=0A=
 =0A=
       allocator_type=0A=
       get_allocator() const { return _M_dataplus; }=0A=
 =0A=
       size_type=0A=
       find(const _CharT* __s, size_type __pos, size_type __n) const;=0A=
 =0A=
       size_type=0A=
       find(const basic_string& __str, size_type __pos =3D 0) const=0A=
       { return this->find(__str.data(), __pos, __str.size()); }=0A=
 =0A=
       size_type=0A=
       find(const _CharT* __s, size_type __pos =3D 0) const=0A=
       { return this->find(__s, __pos, traits_type::length(__s)); }=0A=
 =0A=
       size_type=0A=
       find(_CharT __c, size_type __pos =3D 0) const;=0A=
 =0A=
       size_type=0A=
       rfind(const basic_string& __str, size_type __pos =3D npos) const=0A=
       { return this->rfind(__str.data(), __pos, __str.size()); }=0A=
 =0A=
       size_type=0A=
       rfind(const _CharT* __s, size_type __pos, size_type __n) const;=0A=
 =0A=
       size_type=0A=
       rfind(const _CharT* __s, size_type __pos =3D npos) const=0A=
       { return this->rfind(__s, __pos, traits_type::length(__s)); }=0A=
 =0A=
       size_type=0A=
       rfind(_CharT __c, size_type __pos =3D npos) const;=0A=
 =0A=
       size_type=0A=
       find_first_of(const basic_string& __str, size_type __pos =3D 0) =
 const=0A=
       { return this->find_first_of(__str.data(), __pos, __str.size()); }=0A=
 =0A=
       size_type=0A=
       find_first_of(const _CharT* __s, size_type __pos, size_type __n) =
 const;=0A=
 =0A=
       size_type=0A=
       find_first_of(const _CharT* __s, size_type __pos =3D 0) const=0A=
       { return this->find_first_of(__s, __pos, =
 traits_type::length(__s)); }=0A=
 =0A=
       size_type=0A=
       find_first_of(_CharT __c, size_type __pos =3D 0) const=0A=
       { return this->find(__c, __pos); }=0A=
 =0A=
       size_type=0A=
       find_last_of(const basic_string& __str, size_type __pos =3D npos) =
 const=0A=
       { return this->find_last_of(__str.data(), __pos, __str.size()); }=0A=
 =0A=
       size_type=0A=
       find_last_of(const _CharT* __s, size_type __pos, size_type __n) =
 const;=0A=
 =0A=
       size_type=0A=
       find_last_of(const _CharT* __s, size_type __pos =3D npos) const=0A=
       { return this->find_last_of(__s, __pos, traits_type::length(__s)); =
 }=0A=
 =0A=
       size_type=0A=
       find_last_of(_CharT __c, size_type __pos =3D npos) const=0A=
       { return this->rfind(__c, __pos); }=0A=
 =0A=
       size_type=0A=
       find_first_not_of(const basic_string& __str, size_type __pos =3D =
 0) const=0A=
       { return this->find_first_not_of(__str.data(), __pos, =
 __str.size()); }=0A=
 =0A=
       size_type=0A=
       find_first_not_of(const _CharT* __s, size_type __pos,=0A=
                         size_type __n) const;=0A=
 =0A=
       size_type=0A=
       find_first_not_of(const _CharT* __s, size_type __pos =3D 0) const=0A=
       { return this->find_first_not_of(__s, __pos, =
 traits_type::length(__s)); }=0A=
 =0A=
       size_type=0A=
       find_first_not_of(_CharT __c, size_type __pos =3D 0) const;=0A=
 =0A=
       size_type=0A=
       find_last_not_of(const basic_string& __str, size_type __pos =3D =
 npos) const=0A=
       { return this->find_last_not_of(__str.data(), __pos, =
 __str.size()); }=0A=
 =0A=
       size_type=0A=
       find_last_not_of(const _CharT* __s, size_type __pos,=0A=
                        size_type __n) const;=0A=
       size_type=0A=
       find_last_not_of(const _CharT* __s, size_type __pos =3D npos) const=0A=
       { return this->find_last_not_of(__s, __pos, =
 traits_type::length(__s)); }=0A=
 =0A=
       size_type=0A=
       find_last_not_of(_CharT __c, size_type __pos =3D npos) const;=0A=
 =0A=
       basic_string=0A=
       substr(size_type __pos =3D 0, size_type __n =3D npos) const=0A=
       {=0A=
         if (__pos > this->size())=0A=
           __throw_out_of_range("basic_string::substr");=0A=
         return basic_string(*this, __pos, __n);=0A=
       }=0A=
 =0A=
       int=0A=
       compare(const basic_string& __str) const=0A=
       {=0A=
         size_type __size =3D this->size();=0A=
         size_type __osize =3D __str.size();=0A=
         size_type __len =3D min(__size, __osize);=0A=
 =0A=
         int __r =3D traits_type::compare(_M_data(), __str.data(), __len);=0A=
         if (!__r)=0A=
           __r =3D __size - __osize;=0A=
         return __r;=0A=
       }=0A=
 =0A=
       int=0A=
       compare(size_type __pos, size_type __n, const basic_string& __str) =
 const;=0A=
 =0A=
       int=0A=
       compare(size_type __pos1, size_type __n1, const basic_string& =
 __str,=0A=
               size_type __pos2, size_type __n2) const;=0A=
 =0A=
       int=0A=
       compare(const _CharT* __s) const;=0A=
 =0A=
 =0A=
 =0A=
       int=0A=
       compare(size_type __pos, size_type __n1, const _CharT* __s) const;=0A=
 =0A=
       int=0A=
       compare(size_type __pos, size_type __n1, const _CharT* __s,=0A=
               size_type __n2) const;=0A=
   };=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string()=0A=
     : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>=0A=
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     {=0A=
       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);=0A=
       __str.append(__rhs);=0A=
       return __str;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT,_Traits,_Alloc>=0A=
     operator+(const _CharT* __lhs,=0A=
               const basic_string<_CharT,_Traits,_Alloc>& __rhs);=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT,_Traits,_Alloc>=0A=
     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& =
 __rhs);=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline basic_string<_CharT, _Traits, _Alloc>=0A=
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
              const _CharT* __rhs)=0A=
     {=0A=
       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);=0A=
       __str.append(__rhs);=0A=
       return __str;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline basic_string<_CharT, _Traits, _Alloc>=0A=
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT =
 __rhs)=0A=
     {=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
       typedef typename __string_type::size_type __size_type;=0A=
       __string_type __str(__lhs);=0A=
       __str.append(__size_type(1), __rhs);=0A=
       return __str;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator=3D=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __lhs.compare(__rhs) =3D=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator=3D=3D(const _CharT* __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) =3D=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator=3D=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) =3D=3D 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator!=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) !=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator!=3D(const _CharT* __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) !=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator!=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) !=3D 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __lhs.compare(__rhs) < 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
               const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) < 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<(const _CharT* __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) > 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __lhs.compare(__rhs) > 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
               const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) > 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>(const _CharT* __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) < 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __lhs.compare(__rhs) <=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) <=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator<=3D(const _CharT* __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
   { return __rhs.compare(__lhs) >=3D 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __lhs.compare(__rhs) >=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
                const _CharT* __rhs)=0A=
     { return __lhs.compare(__rhs) >=3D 0; }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline bool=0A=
     operator>=3D(const _CharT* __lhs,=0A=
              const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { return __rhs.compare(__lhs) <=3D 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline void=0A=
     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A=
          basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     { __lhs.swap(__rhs); }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __is,=0A=
                basic_string<_CharT, _Traits, _Alloc>& __str);=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __os,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __str);=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_istream<_CharT,_Traits>&=0A=
     getline(basic_istream<_CharT, _Traits>& __is,=0A=
             basic_string<_CharT, _Traits, _Alloc>& __str, _CharT =
 __delim);=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     inline basic_istream<_CharT,_Traits>&=0A=
     getline(basic_istream<_CharT, _Traits>& __is,=0A=
             basic_string<_CharT, _Traits, _Alloc>& __str);=0A=
 }=0A=
 # 54 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/algorithm" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/algorithm" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_heap.h" 1 3=0A=
 # 63 "/usr/local/gcc3.1/include/g++-v3/bits/stl_heap.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Distance, typename =
 _Tp>=0A=
     void=0A=
     __push_heap(_RandomAccessIterator __first,=0A=
                 _Distance __holeIndex, _Distance __topIndex, _Tp __value)=0A=
     {=0A=
       _Distance __parent =3D (__holeIndex - 1) / 2;=0A=
       while (__holeIndex > __topIndex && *(__first + __parent) < =
 __value) {=0A=
         *(__first + __holeIndex) =3D *(__first + __parent);=0A=
         __holeIndex =3D __parent;=0A=
         __parent =3D (__holeIndex - 1) / 2;=0A=
       }=0A=
       *(__first + __holeIndex) =3D __value;=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator>=0A=
     inline void=0A=
     push_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       __push_heap(__first, _DistanceType((__last - __first) - 1), =
 _DistanceType(0),=0A=
                   _ValueType(*(__last - 1)));=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Distance, typename =
 _Tp,=0A=
             typename _Compare>=0A=
     void=0A=
     __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A=
                 _Distance __topIndex, _Tp __value, _Compare __comp)=0A=
     {=0A=
       _Distance __parent =3D (__holeIndex - 1) / 2;=0A=
       while (__holeIndex > __topIndex && __comp(*(__first + __parent), =
 __value)) {=0A=
         *(__first + __holeIndex) =3D *(__first + __parent);=0A=
         __holeIndex =3D __parent;=0A=
         __parent =3D (__holeIndex - 1) / 2;=0A=
       }=0A=
       *(__first + __holeIndex) =3D __value;=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Compare>=0A=
     inline void=0A=
     push_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last,=0A=
               _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       __push_heap(__first, _DistanceType((__last - __first) - 1), =
 _DistanceType(0),=0A=
                   _ValueType(*(__last - 1)), __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Distance, typename =
 _Tp>=0A=
     void=0A=
     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A=
                   _Distance __len, _Tp __value)=0A=
     {=0A=
       _Distance __topIndex =3D __holeIndex;=0A=
       _Distance __secondChild =3D 2 * __holeIndex + 2;=0A=
       while (__secondChild < __len) {=0A=
         if (*(__first + __secondChild) < *(__first + (__secondChild - =
 1)))=0A=
           __secondChild--;=0A=
         *(__first + __holeIndex) =3D *(__first + __secondChild);=0A=
         __holeIndex =3D __secondChild;=0A=
         __secondChild =3D 2 * (__secondChild + 1);=0A=
       }=0A=
       if (__secondChild =3D=3D __len) {=0A=
         *(__first + __holeIndex) =3D *(__first + (__secondChild - 1));=0A=
         __holeIndex =3D __secondChild - 1;=0A=
       }=0A=
       __push_heap(__first, __holeIndex, __topIndex, __value);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Tp>=0A=
     inline void=0A=
     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last,=0A=
                _RandomAccessIterator __result, _Tp __value)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type _Distance;=0A=
       *__result =3D *__first;=0A=
       __adjust_heap(__first, _Distance(0), _Distance(__last - __first), =
 __value);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator>=0A=
     inline void=0A=
     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::value_type _ValueType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - =
 1)));=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Distance,=0A=
            typename _Tp, typename _Compare>=0A=
     void=0A=
     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A=
                   _Distance __len, _Tp __value, _Compare __comp)=0A=
     {=0A=
       _Distance __topIndex =3D __holeIndex;=0A=
       _Distance __secondChild =3D 2 * __holeIndex + 2;=0A=
       while (__secondChild < __len) {=0A=
         if (__comp(*(__first + __secondChild), *(__first + =
 (__secondChild - 1))))=0A=
           __secondChild--;=0A=
         *(__first + __holeIndex) =3D *(__first + __secondChild);=0A=
         __holeIndex =3D __secondChild;=0A=
         __secondChild =3D 2 * (__secondChild + 1);=0A=
       }=0A=
       if (__secondChild =3D=3D __len) {=0A=
         *(__first + __holeIndex) =3D *(__first + (__secondChild - 1));=0A=
         __holeIndex =3D __secondChild - 1;=0A=
       }=0A=
       __push_heap(__first, __holeIndex, __topIndex, __value, __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Tp, typename =
 _Compare>=0A=
     inline void=0A=
     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last,=0A=
                _RandomAccessIterator __result, _Tp __value, _Compare =
 __comp)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type _Distance;=0A=
       *__result =3D *__first;=0A=
       __adjust_heap(__first, _Distance(0), _Distance(__last - __first),=0A=
                     __value, __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Compare>=0A=
     inline void=0A=
     pop_heap(_RandomAccessIterator __first,=0A=
              _RandomAccessIterator __last, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::value_type _ValueType;=0A=
       __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - =
 1)), __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator>=0A=
     void=0A=
     make_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       if (__last - __first < 2) return;=0A=
       _DistanceType __len =3D __last - __first;=0A=
       _DistanceType __parent =3D (__len - 2)/2;=0A=
 =0A=
       while (true) {=0A=
         __adjust_heap(__first, __parent, __len, _ValueType(*(__first + =
 __parent)));=0A=
         if (__parent =3D=3D 0) return;=0A=
         __parent--;=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Compare>=0A=
     inline void=0A=
     make_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last,=0A=
               _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIterator>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if (__last - __first < 2) return;=0A=
       _DistanceType __len =3D __last - __first;=0A=
       _DistanceType __parent =3D (__len - 2)/2;=0A=
 =0A=
       while (true) {=0A=
         __adjust_heap(__first, __parent, __len,=0A=
                       _ValueType(*(__first + __parent)), __comp);=0A=
         if (__parent =3D=3D 0) return;=0A=
         __parent--;=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator>=0A=
     void=0A=
     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__last - __first > 1)=0A=
         pop_heap(__first, __last--);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIterator, typename _Compare>=0A=
     void=0A=
     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator =
 __last,=0A=
               _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__last - __first > 1)=0A=
         pop_heap(__first, __last--, __comp);=0A=
     }=0A=
 =0A=
 }=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 3=0A=
 namespace std=0A=
 {=0A=
 # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 3=0A=
 template <class _ForwardIterator, class _Tp>=0A=
   class _Temporary_buffer=0A=
 {=0A=
 =0A=
  =0A=
 =0A=
   ptrdiff_t _M_original_len;=0A=
   ptrdiff_t _M_len;=0A=
   _Tp* _M_buffer;=0A=
 =0A=
 =0A=
   void _M_allocate_buffer() {=0A=
     _M_original_len =3D _M_len;=0A=
     _M_buffer =3D 0;=0A=
 =0A=
     if (_M_len > (ptrdiff_t)(2147483647 / sizeof(_Tp)))=0A=
       _M_len =3D 2147483647 / sizeof(_Tp);=0A=
 =0A=
     while (_M_len > 0) {=0A=
       _M_buffer =3D (_Tp*) malloc(_M_len * sizeof(_Tp));=0A=
       if (_M_buffer)=0A=
         break;=0A=
       _M_len /=3D 2;=0A=
     }=0A=
   }=0A=
 =0A=
   void _M_initialize_buffer(const _Tp&, __true_type) {}=0A=
   void _M_initialize_buffer(const _Tp& val, __false_type) {=0A=
     uninitialized_fill_n(_M_buffer, _M_len, val);=0A=
   }=0A=
 =0A=
 public:=0A=
 =0A=
   ptrdiff_t size() const { return _M_len; }=0A=
 =0A=
   ptrdiff_t requested_size() const { return _M_original_len; }=0A=
 =0A=
   _Tp* begin() { return _M_buffer; }=0A=
 =0A=
   _Tp* end() { return _M_buffer + _M_len; }=0A=
 =0A=
   _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) {=0A=
 =0A=
     typedef typename __type_traits<_Tp>::has_trivial_default_constructor=0A=
             _Trivial;=0A=
 =0A=
     try {=0A=
       _M_len =3D distance(__first, __last);=0A=
       _M_allocate_buffer();=0A=
       if (_M_len > 0)=0A=
         _M_initialize_buffer(*__first, _Trivial());=0A=
     }=0A=
     catch(...)=0A=
       {=0A=
         free(_M_buffer);=0A=
         _M_buffer =3D 0;=0A=
         _M_len =3D 0;=0A=
         throw;=0A=
       }=0A=
   }=0A=
 =0A=
   ~_Temporary_buffer() {=0A=
     _Destroy(_M_buffer, _M_buffer + _M_len);=0A=
     free(_M_buffer);=0A=
   }=0A=
 =0A=
 private:=0A=
 =0A=
   _Temporary_buffer(const _Temporary_buffer&) {}=0A=
   void operator=3D(const _Temporary_buffer&) {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 84 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _Tp>=0A=
   inline const _Tp&=0A=
     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)=0A=
     {=0A=
 =0A=
      =0A=
       if (__a < __b)=0A=
         if (__b < __c)=0A=
           return __b;=0A=
         else if (__a < __c)=0A=
           return __c;=0A=
         else=0A=
           return __a;=0A=
       else if (__a < __c)=0A=
         return __a;=0A=
       else if (__b < __c)=0A=
         return __c;=0A=
       else=0A=
         return __b;=0A=
     }=0A=
 # 118 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _Tp, typename _Compare>=0A=
     inline const _Tp&=0A=
     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare =
 __comp)=0A=
     {=0A=
 =0A=
      =0A=
       if (__comp(__a, __b))=0A=
         if (__comp(__b, __c))=0A=
           return __b;=0A=
         else if (__comp(__a, __c))=0A=
           return __c;=0A=
         else=0A=
           return __a;=0A=
       else if (__comp(__a, __c))=0A=
         return __a;=0A=
       else if (__comp(__b, __c))=0A=
         return __c;=0A=
       else=0A=
         return __b;=0A=
     }=0A=
 # 150 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _Function>=0A=
     _Function=0A=
     for_each(_InputIter __first, _InputIter __last, _Function __f)=0A=
     {=0A=
 =0A=
      =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         __f(*__first);=0A=
       return __f;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _Tp>=0A=
     inline _InputIter=0A=
     find(_InputIter __first, _InputIter __last,=0A=
          const _Tp& __val,=0A=
          input_iterator_tag)=0A=
     {=0A=
       while (__first !=3D __last && !(*__first =3D=3D __val))=0A=
         ++__first;=0A=
       return __first;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _Predicate>=0A=
     inline _InputIter=0A=
     find_if(_InputIter __first, _InputIter __last,=0A=
             _Predicate __pred,=0A=
             input_iterator_tag)=0A=
     {=0A=
       while (__first !=3D __last && !__pred(*__first))=0A=
         ++__first;=0A=
       return __first;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Tp>=0A=
     _RandomAccessIter=0A=
     find(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
          const _Tp& __val,=0A=
          random_access_iterator_tag)=0A=
     {=0A=
       typename iterator_traits<_RandomAccessIter>::difference_type =
 __trip_count=0A=
         =3D (__last - __first) >> 2;=0A=
 =0A=
       for ( ; __trip_count > 0 ; --__trip_count) {=0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
       }=0A=
 =0A=
       switch(__last - __first) {=0A=
       case 3:=0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
       case 2:=0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
       case 1:=0A=
         if (*__first =3D=3D __val) return __first;=0A=
         ++__first;=0A=
       case 0:=0A=
       default:=0A=
         return __last;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Predicate>=0A=
     _RandomAccessIter=0A=
     find_if(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
             _Predicate __pred,=0A=
             random_access_iterator_tag)=0A=
     {=0A=
       typename iterator_traits<_RandomAccessIter>::difference_type =
 __trip_count=0A=
         =3D (__last - __first) >> 2;=0A=
 =0A=
       for ( ; __trip_count > 0 ; --__trip_count) {=0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
 =0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
       }=0A=
 =0A=
       switch(__last - __first) {=0A=
       case 3:=0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
       case 2:=0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
       case 1:=0A=
         if (__pred(*__first)) return __first;=0A=
         ++__first;=0A=
       case 0:=0A=
       default:=0A=
         return __last;=0A=
       }=0A=
     }=0A=
 # 289 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _Tp>=0A=
     inline _InputIter=0A=
     find(_InputIter __first, _InputIter __last,=0A=
          const _Tp& __val)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       return find(__first, __last, __val, __iterator_category(__first));=0A=
     }=0A=
 # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _Predicate>=0A=
     inline _InputIter=0A=
     find_if(_InputIter __first, _InputIter __last,=0A=
             _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       return find_if(__first, __last, __pred, =
 __iterator_category(__first));=0A=
     }=0A=
 # 329 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter>=0A=
     _ForwardIter=0A=
     adjacent_find(_ForwardIter __first, _ForwardIter __last)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return __last;=0A=
       _ForwardIter __next =3D __first;=0A=
       while(++__next !=3D __last) {=0A=
         if (*__first =3D=3D *__next)=0A=
           return __first;=0A=
         __first =3D __next;=0A=
       }=0A=
       return __last;=0A=
     }=0A=
 # 358 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _BinaryPredicate>=0A=
     _ForwardIter=0A=
     adjacent_find(_ForwardIter __first, _ForwardIter __last,=0A=
                   _BinaryPredicate __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return __last;=0A=
       _ForwardIter __next =3D __first;=0A=
       while(++__next !=3D __last) {=0A=
         if (__binary_pred(*__first, *__next))=0A=
           return __first;=0A=
         __first =3D __next;=0A=
       }=0A=
       return __last;=0A=
     }=0A=
 # 387 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _Tp>=0A=
     typename iterator_traits<_InputIter>::difference_type=0A=
     count(_InputIter __first, _InputIter __last, const _Tp& __value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
       typename iterator_traits<_InputIter>::difference_type __n =3D 0;=0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (*__first =3D=3D __value)=0A=
           ++__n;=0A=
       return __n;=0A=
     }=0A=
 # 411 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _Predicate>=0A=
     typename iterator_traits<_InputIter>::difference_type=0A=
     count_if(_InputIter __first, _InputIter __last, _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       typename iterator_traits<_InputIter>::difference_type __n =3D 0;=0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (__pred(*__first))=0A=
           ++__n;=0A=
       return __n;=0A=
     }=0A=
 # 450 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter1, typename _ForwardIter2>=0A=
     _ForwardIter1=0A=
     search(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
            _ForwardIter2 __first2, _ForwardIter2 __last2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       if (__first1 =3D=3D __last1 || __first2 =3D=3D __last2)=0A=
         return __first1;=0A=
 =0A=
 =0A=
       _ForwardIter2 __tmp(__first2);=0A=
       ++__tmp;=0A=
       if (__tmp =3D=3D __last2)=0A=
         return find(__first1, __last1, *__first2);=0A=
 =0A=
 =0A=
 =0A=
       _ForwardIter2 __p1, __p;=0A=
 =0A=
       __p1 =3D __first2; ++__p1;=0A=
 =0A=
       _ForwardIter1 __current =3D __first1;=0A=
 =0A=
       while (__first1 !=3D __last1) {=0A=
         __first1 =3D find(__first1, __last1, *__first2);=0A=
         if (__first1 =3D=3D __last1)=0A=
           return __last1;=0A=
 =0A=
         __p =3D __p1;=0A=
         __current =3D __first1;=0A=
         if (++__current =3D=3D __last1)=0A=
           return __last1;=0A=
 =0A=
         while (*__current =3D=3D *__p) {=0A=
           if (++__p =3D=3D __last2)=0A=
             return __first1;=0A=
           if (++__current =3D=3D __last1)=0A=
             return __last1;=0A=
         }=0A=
 =0A=
         ++__first1;=0A=
       }=0A=
       return __first1;=0A=
     }=0A=
 # 522 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter1, typename _ForwardIter2, typename =
 _BinaryPred>=0A=
     _ForwardIter1=0A=
     search(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
            _ForwardIter2 __first2, _ForwardIter2 __last2,=0A=
            _BinaryPred __predicate)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       if (__first1 =3D=3D __last1 || __first2 =3D=3D __last2)=0A=
         return __first1;=0A=
 =0A=
 =0A=
       _ForwardIter2 __tmp(__first2);=0A=
       ++__tmp;=0A=
       if (__tmp =3D=3D __last2) {=0A=
         while (__first1 !=3D __last1 && !__predicate(*__first1, =
 *__first2))=0A=
           ++__first1;=0A=
         return __first1;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
       _ForwardIter2 __p1, __p;=0A=
 =0A=
       __p1 =3D __first2; ++__p1;=0A=
 =0A=
       _ForwardIter1 __current =3D __first1;=0A=
 =0A=
       while (__first1 !=3D __last1) {=0A=
         while (__first1 !=3D __last1) {=0A=
           if (__predicate(*__first1, *__first2))=0A=
             break;=0A=
           ++__first1;=0A=
         }=0A=
         while (__first1 !=3D __last1 && !__predicate(*__first1, =
 *__first2))=0A=
           ++__first1;=0A=
         if (__first1 =3D=3D __last1)=0A=
           return __last1;=0A=
 =0A=
         __p =3D __p1;=0A=
         __current =3D __first1;=0A=
         if (++__current =3D=3D __last1) return __last1;=0A=
 =0A=
         while (__predicate(*__current, *__p)) {=0A=
           if (++__p =3D=3D __last2)=0A=
             return __first1;=0A=
           if (++__current =3D=3D __last1)=0A=
             return __last1;=0A=
         }=0A=
 =0A=
         ++__first1;=0A=
       }=0A=
       return __first1;=0A=
     }=0A=
 # 596 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Integer, typename _Tp>=0A=
     _ForwardIter=0A=
     search_n(_ForwardIter __first, _ForwardIter __last,=0A=
              _Integer __count, const _Tp& __val)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       if (__count <=3D 0)=0A=
         return __first;=0A=
       else {=0A=
         __first =3D find(__first, __last, __val);=0A=
         while (__first !=3D __last) {=0A=
           _Integer __n =3D __count - 1;=0A=
           _ForwardIter __i =3D __first;=0A=
           ++__i;=0A=
           while (__i !=3D __last && __n !=3D 0 && *__i =3D=3D __val) {=0A=
             ++__i;=0A=
             --__n;=0A=
           }=0A=
           if (__n =3D=3D 0)=0A=
             return __first;=0A=
           else=0A=
             __first =3D find(__i, __last, __val);=0A=
         }=0A=
         return __last;=0A=
       }=0A=
     }=0A=
 # 643 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Integer, typename _Tp,=0A=
            typename _BinaryPred>=0A=
     _ForwardIter=0A=
     search_n(_ForwardIter __first, _ForwardIter __last,=0A=
              _Integer __count, const _Tp& __val,=0A=
              _BinaryPred __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__count <=3D 0)=0A=
         return __first;=0A=
       else {=0A=
         while (__first !=3D __last) {=0A=
           if (__binary_pred(*__first, __val))=0A=
             break;=0A=
           ++__first;=0A=
         }=0A=
         while (__first !=3D __last) {=0A=
           _Integer __n =3D __count - 1;=0A=
           _ForwardIter __i =3D __first;=0A=
           ++__i;=0A=
           while (__i !=3D __last && __n !=3D 0 && __binary_pred(*__i, =
 __val)) {=0A=
             ++__i;=0A=
             --__n;=0A=
           }=0A=
           if (__n =3D=3D 0)=0A=
             return __first;=0A=
           else {=0A=
             while (__i !=3D __last) {=0A=
               if (__binary_pred(*__i, __val))=0A=
                 break;=0A=
               ++__i;=0A=
             }=0A=
             __first =3D __i;=0A=
           }=0A=
         }=0A=
         return __last;=0A=
       }=0A=
     }=0A=
 # 697 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter1, typename _ForwardIter2>=0A=
     _ForwardIter2=0A=
     swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
                 _ForwardIter2 __first2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A=
         iter_swap(__first1, __first2);=0A=
       return __first2;=0A=
     }=0A=
 # 732 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename =
 _UnaryOperation>=0A=
     _OutputIter=0A=
     transform(_InputIter __first, _InputIter __last,=0A=
               _OutputIter __result, _UnaryOperation __unary_op)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first, ++__result)=0A=
         *__result =3D __unary_op(*__first);=0A=
       return __result;=0A=
     }=0A=
 # 765 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _BinaryOperation>=0A=
     _OutputIter=0A=
     transform(_InputIter1 __first1, _InputIter1 __last1,=0A=
               _InputIter2 __first2, _OutputIter __result,=0A=
               _BinaryOperation __binary_op)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1, ++__first2, ++__result)=0A=
         *__result =3D __binary_op(*__first1, *__first2);=0A=
       return __result;=0A=
     }=0A=
 # 796 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     void=0A=
     replace(_ForwardIter __first, _ForwardIter __last,=0A=
             const _Tp& __old_value, const _Tp& __new_value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (*__first =3D=3D __old_value)=0A=
           *__first =3D __new_value;=0A=
     }=0A=
 # 825 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Predicate, typename _Tp>=0A=
     void=0A=
     replace_if(_ForwardIter __first, _ForwardIter __last,=0A=
                _Predicate __pred, const _Tp& __new_value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (__pred(*__first))=0A=
           *__first =3D __new_value;=0A=
     }=0A=
 # 856 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename _Tp>=0A=
     _OutputIter=0A=
     replace_copy(_InputIter __first, _InputIter __last,=0A=
                  _OutputIter __result,=0A=
                  const _Tp& __old_value, const _Tp& __new_value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first, ++__result)=0A=
         *__result =3D *__first =3D=3D __old_value ? __new_value : =
 *__first;=0A=
       return __result;=0A=
     }=0A=
 # 888 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename =
 _Predicate,=0A=
            typename _Tp>=0A=
     _OutputIter=0A=
     replace_copy_if(_InputIter __first, _InputIter __last,=0A=
                     _OutputIter __result,=0A=
                     _Predicate __pred, const _Tp& __new_value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first, ++__result)=0A=
         *__result =3D __pred(*__first) ? __new_value : *__first;=0A=
       return __result;=0A=
     }=0A=
 # 918 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Generator>=0A=
     void=0A=
     generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         *__first =3D __gen();=0A=
     }=0A=
 # 942 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _OutputIter, typename _Size, typename _Generator>=0A=
     _OutputIter=0A=
     generate_n(_OutputIter __first, _Size __n, _Generator __gen)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __n > 0; --__n, ++__first)=0A=
         *__first =3D __gen();=0A=
       return __first;=0A=
     }=0A=
 # 969 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename _Tp>=0A=
     _OutputIter=0A=
     remove_copy(_InputIter __first, _InputIter __last,=0A=
                 _OutputIter __result, const _Tp& __value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (!(*__first =3D=3D __value)) {=0A=
           *__result =3D *__first;=0A=
           ++__result;=0A=
         }=0A=
       return __result;=0A=
     }=0A=
 # 1003 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename =
 _Predicate>=0A=
     _OutputIter=0A=
     remove_copy_if(_InputIter __first, _InputIter __last,=0A=
                    _OutputIter __result, _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         if (!__pred(*__first)) {=0A=
           *__result =3D *__first;=0A=
           ++__result;=0A=
         }=0A=
       return __result;=0A=
     }=0A=
 # 1039 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     _ForwardIter=0A=
     remove(_ForwardIter __first, _ForwardIter __last,=0A=
            const _Tp& __value)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       __first =3D find(__first, __last, __value);=0A=
       _ForwardIter __i =3D __first;=0A=
       return __first =3D=3D __last ? __first=0A=
                                : remove_copy(++__i, __last, __first, =
 __value);=0A=
     }=0A=
 # 1073 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Predicate>=0A=
     _ForwardIter=0A=
     remove_if(_ForwardIter __first, _ForwardIter __last,=0A=
               _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       __first =3D find_if(__first, __last, __pred);=0A=
       _ForwardIter __i =3D __first;=0A=
       return __first =3D=3D __last ? __first=0A=
                                : remove_copy_if(++__i, __last, __first, =
 __pred);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     _OutputIter=0A=
     __unique_copy(_InputIter __first, _InputIter __last,=0A=
                   _OutputIter __result,=0A=
                   output_iterator_tag)=0A=
     {=0A=
 =0A=
       typename iterator_traits<_InputIter>::value_type __value =3D =
 *__first;=0A=
       *__result =3D __value;=0A=
       while (++__first !=3D __last)=0A=
         if (!(__value =3D=3D *__first)) {=0A=
           __value =3D *__first;=0A=
           *++__result =3D __value;=0A=
         }=0A=
       return ++__result;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter>=0A=
     _ForwardIter=0A=
     __unique_copy(_InputIter __first, _InputIter __last,=0A=
                   _ForwardIter __result,=0A=
                   forward_iterator_tag)=0A=
     {=0A=
 =0A=
       *__result =3D *__first;=0A=
       while (++__first !=3D __last)=0A=
         if (!(*__result =3D=3D *__first))=0A=
           *++__result =3D *__first;=0A=
       return ++__result;=0A=
     }=0A=
 # 1145 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter>=0A=
     inline _OutputIter=0A=
     unique_copy(_InputIter __first, _InputIter __last,=0A=
                 _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       typedef typename iterator_traits<_OutputIter>::iterator_category =
 _IterType;=0A=
 =0A=
       if (__first =3D=3D __last) return __result;=0A=
       return __unique_copy(__first, __last, __result, _IterType());=0A=
     }=0A=
 # 1170 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename =
 _BinaryPredicate>=0A=
     _OutputIter=0A=
     __unique_copy(_InputIter __first, _InputIter __last,=0A=
                   _OutputIter __result,=0A=
                   _BinaryPredicate __binary_pred,=0A=
                   output_iterator_tag)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       typename iterator_traits<_InputIter>::value_type __value =3D =
 *__first;=0A=
       *__result =3D __value;=0A=
       while (++__first !=3D __last)=0A=
         if (!__binary_pred(__value, *__first)) {=0A=
           __value =3D *__first;=0A=
           *++__result =3D __value;=0A=
         }=0A=
       return ++__result;=0A=
     }=0A=
 # 1199 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _ForwardIter, typename =
 _BinaryPredicate>=0A=
     _ForwardIter=0A=
     __unique_copy(_InputIter __first, _InputIter __last,=0A=
                   _ForwardIter __result,=0A=
                   _BinaryPredicate __binary_pred,=0A=
                   forward_iterator_tag)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       *__result =3D *__first;=0A=
       while (++__first !=3D __last)=0A=
         if (!__binary_pred(*__result, *__first)) *++__result =3D =
 *__first;=0A=
       return ++__result;=0A=
     }=0A=
 # 1232 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _OutputIter, typename =
 _BinaryPredicate>=0A=
     inline _OutputIter=0A=
     unique_copy(_InputIter __first, _InputIter __last,=0A=
                 _OutputIter __result,=0A=
                 _BinaryPredicate __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       typedef typename iterator_traits<_OutputIter>::iterator_category =
 _IterType;=0A=
 =0A=
       if (__first =3D=3D __last) return __result;=0A=
       return __unique_copy(__first, __last,=0A=
 __result, __binary_pred, _IterType());=0A=
     }=0A=
 # 1263 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter>=0A=
     _ForwardIter=0A=
     unique(_ForwardIter __first, _ForwardIter __last)=0A=
     {=0A=
 =0A=
          =0A=
          =0A=
 =0A=
 =0A=
           __first =3D adjacent_find(__first, __last);=0A=
           return unique_copy(__first, __last, __first);=0A=
     }=0A=
 # 1290 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _BinaryPredicate>=0A=
     _ForwardIter=0A=
     unique(_ForwardIter __first, _ForwardIter __last,=0A=
            _BinaryPredicate __binary_pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       __first =3D adjacent_find(__first, __last, __binary_pred);=0A=
       return unique_copy(__first, __last, __first, __binary_pred);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter>=0A=
     void=0A=
     __reverse(_BidirectionalIter __first, _BidirectionalIter __last,=0A=
                           bidirectional_iterator_tag)=0A=
     {=0A=
           while (true)=0A=
             if (__first =3D=3D __last || __first =3D=3D --__last)=0A=
                   return;=0A=
             else=0A=
                   iter_swap(__first++, __last);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     __reverse(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                           random_access_iterator_tag)=0A=
     {=0A=
           while (__first < __last)=0A=
             iter_swap(__first++, --__last);=0A=
     }=0A=
 # 1349 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _BidirectionalIter>=0A=
     inline void=0A=
     reverse(_BidirectionalIter __first, _BidirectionalIter __last)=0A=
     {=0A=
 =0A=
          =0A=
 =0A=
           __reverse(__first, __last, __iterator_category(__first));=0A=
     }=0A=
 # 1374 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _BidirectionalIter, typename _OutputIter>=0A=
     _OutputIter=0A=
     reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last,=0A=
                              _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       while (__first !=3D __last) {=0A=
         --__last;=0A=
         *__result =3D *__last;=0A=
         ++__result;=0A=
       }=0A=
       return __result;=0A=
     }=0A=
 # 1399 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _EuclideanRingElement>=0A=
     _EuclideanRingElement=0A=
     __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)=0A=
     {=0A=
       while (__n !=3D 0) {=0A=
         _EuclideanRingElement __t =3D __m % __n;=0A=
         __m =3D __n;=0A=
         __n =3D __t;=0A=
       }=0A=
       return __m;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter>=0A=
     void=0A=
     __rotate(_ForwardIter __first,=0A=
              _ForwardIter __middle,=0A=
              _ForwardIter __last,=0A=
               forward_iterator_tag)=0A=
     {=0A=
       if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A=
         return;=0A=
 =0A=
       _ForwardIter __first2 =3D __middle;=0A=
       do {=0A=
         swap(*__first++, *__first2++);=0A=
         if (__first =3D=3D __middle)=0A=
           __middle =3D __first2;=0A=
       } while (__first2 !=3D __last);=0A=
 =0A=
       __first2 =3D __middle;=0A=
 =0A=
       while (__first2 !=3D __last) {=0A=
         swap(*__first++, *__first2++);=0A=
         if (__first =3D=3D __middle)=0A=
           __middle =3D __first2;=0A=
         else if (__first2 =3D=3D __last)=0A=
           __first2 =3D __middle;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter>=0A=
     void=0A=
     __rotate(_BidirectionalIter __first,=0A=
              _BidirectionalIter __middle,=0A=
              _BidirectionalIter __last,=0A=
               bidirectional_iterator_tag)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A=
         return;=0A=
 =0A=
       __reverse(__first, __middle, bidirectional_iterator_tag());=0A=
       __reverse(__middle, __last, bidirectional_iterator_tag());=0A=
 =0A=
       while (__first !=3D __middle && __middle !=3D __last)=0A=
         swap (*__first++, *--__last);=0A=
 =0A=
       if (__first =3D=3D __middle) {=0A=
         __reverse(__middle, __last, bidirectional_iterator_tag());=0A=
       }=0A=
       else {=0A=
         __reverse(__first, __middle, bidirectional_iterator_tag());=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     __rotate(_RandomAccessIter __first,=0A=
              _RandomAccessIter __middle,=0A=
              _RandomAccessIter __last,=0A=
              random_access_iterator_tag)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A=
         return;=0A=
 =0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
       _Distance __n =3D __last - __first;=0A=
       _Distance __k =3D __middle - __first;=0A=
       _Distance __l =3D __n - __k;=0A=
 =0A=
       if (__k =3D=3D __l) {=0A=
         swap_ranges(__first, __middle, __middle);=0A=
         return;=0A=
       }=0A=
 =0A=
       _Distance __d =3D __gcd(__n, __k);=0A=
 =0A=
       for (_Distance __i =3D 0; __i < __d; __i++) {=0A=
         _ValueType __tmp =3D *__first;=0A=
         _RandomAccessIter __p =3D __first;=0A=
 =0A=
         if (__k < __l) {=0A=
           for (_Distance __j =3D 0; __j < __l/__d; __j++) {=0A=
             if (__p > __first + __l) {=0A=
               *__p =3D *(__p - __l);=0A=
               __p -=3D __l;=0A=
             }=0A=
 =0A=
             *__p =3D *(__p + __k);=0A=
             __p +=3D __k;=0A=
           }=0A=
         }=0A=
 =0A=
         else {=0A=
           for (_Distance __j =3D 0; __j < __k/__d - 1; __j ++) {=0A=
             if (__p < __last - __k) {=0A=
               *__p =3D *(__p + __k);=0A=
               __p +=3D __k;=0A=
             }=0A=
 =0A=
             *__p =3D * (__p - __l);=0A=
             __p -=3D __l;=0A=
           }=0A=
         }=0A=
 =0A=
         *__p =3D __tmp;=0A=
         ++__first;=0A=
       }=0A=
     }=0A=
 # 1561 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter>=0A=
     inline void=0A=
     rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter =
 __last)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
       typedef typename iterator_traits<_ForwardIter>::iterator_category =
 _IterType;=0A=
       __rotate(__first, __middle, __last, _IterType());=0A=
     }=0A=
 # 1589 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _OutputIter>=0A=
     _OutputIter=0A=
     rotate_copy(_ForwardIter __first, _ForwardIter __middle,=0A=
                 _ForwardIter __last, _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       return copy(__first, __middle, copy(__middle, __last, __result));=0A=
     }=0A=
 # 1612 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _Distance>=0A=
     inline _Distance=0A=
     __random_number(_Distance __n)=0A=
     {=0A=
 =0A=
       return lrand48() % __n;=0A=
 =0A=
 =0A=
 =0A=
     }=0A=
 # 1634 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter>=0A=
     inline void=0A=
     random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return;=0A=
       for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A=
         iter_swap(__i, __first + __random_number((__i - __first) + 1));=0A=
     }=0A=
 # 1660 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter, typename _RandomNumberGenerator>=0A=
     void=0A=
     random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                    _RandomNumberGenerator& __rand)=0A=
     {=0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return;=0A=
       for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A=
         iter_swap(__i, __first + __rand((__i - __first) + 1));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Predicate>=0A=
     _ForwardIter=0A=
     __partition(_ForwardIter __first, _ForwardIter __last,=0A=
                 _Predicate __pred,=0A=
                 forward_iterator_tag)=0A=
     {=0A=
       if (__first =3D=3D __last) return __first;=0A=
 =0A=
       while (__pred(*__first))=0A=
         if (++__first =3D=3D __last) return __first;=0A=
 =0A=
       _ForwardIter __next =3D __first;=0A=
 =0A=
       while (++__next !=3D __last)=0A=
         if (__pred(*__next)) {=0A=
           swap(*__first, *__next);=0A=
           ++__first;=0A=
         }=0A=
 =0A=
       return __first;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter, typename _Predicate>=0A=
     _BidirectionalIter=0A=
     __partition(_BidirectionalIter __first, _BidirectionalIter __last,=0A=
                 _Predicate __pred,=0A=
                 bidirectional_iterator_tag)=0A=
     {=0A=
       while (true) {=0A=
         while (true)=0A=
           if (__first =3D=3D __last)=0A=
             return __first;=0A=
           else if (__pred(*__first))=0A=
             ++__first;=0A=
           else=0A=
             break;=0A=
         --__last;=0A=
         while (true)=0A=
           if (__first =3D=3D __last)=0A=
             return __first;=0A=
           else if (!__pred(*__last))=0A=
             --__last;=0A=
           else=0A=
             break;=0A=
         iter_swap(__first, __last);=0A=
         ++__first;=0A=
       }=0A=
     }=0A=
 # 1748 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Predicate>=0A=
     inline _ForwardIter=0A=
     partition(_ForwardIter __first, _ForwardIter __last,=0A=
               _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       return __partition(__first, __last, __pred, =
 __iterator_category(__first));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Predicate, typename =
 _Distance>=0A=
     _ForwardIter=0A=
     __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last,=0A=
                                _Predicate __pred, _Distance __len)=0A=
     {=0A=
       if (__len =3D=3D 1)=0A=
         return __pred(*__first) ? __last : __first;=0A=
       _ForwardIter __middle =3D __first;=0A=
       advance(__middle, __len / 2);=0A=
       _ForwardIter __begin =3D __inplace_stable_partition(__first, =
 __middle,=0A=
                                                         __pred,=0A=
                                                         __len / 2);=0A=
       _ForwardIter __end =3D __inplace_stable_partition(__middle, __last,=0A=
                                                       __pred,=0A=
                                                       __len - __len / 2);=0A=
       rotate(__begin, __middle, __end);=0A=
       advance(__begin, distance(__middle, __end));=0A=
       return __begin;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter, typename _Pointer, typename _Predicate,=0A=
            typename _Distance>=0A=
     _ForwardIter=0A=
     __stable_partition_adaptive(_ForwardIter __first, _ForwardIter =
 __last,=0A=
                                 _Predicate __pred, _Distance __len,=0A=
                                 _Pointer __buffer,=0A=
                                 _Distance __buffer_size)=0A=
     {=0A=
       if (__len <=3D __buffer_size) {=0A=
         _ForwardIter __result1 =3D __first;=0A=
         _Pointer __result2 =3D __buffer;=0A=
         for ( ; __first !=3D __last ; ++__first)=0A=
           if (__pred(*__first)) {=0A=
             *__result1 =3D *__first;=0A=
             ++__result1;=0A=
           }=0A=
           else {=0A=
             *__result2 =3D *__first;=0A=
             ++__result2;=0A=
           }=0A=
         copy(__buffer, __result2, __result1);=0A=
         return __result1;=0A=
       }=0A=
       else {=0A=
         _ForwardIter __middle =3D __first;=0A=
         advance(__middle, __len / 2);=0A=
         _ForwardIter __begin =3D __stable_partition_adaptive(__first, =
 __middle,=0A=
                                                            __pred,=0A=
                                                            __len / 2,=0A=
                                                            __buffer, =
 __buffer_size);=0A=
         _ForwardIter __end =3D __stable_partition_adaptive( __middle, =
 __last,=0A=
                                                           __pred,=0A=
                                                           __len - __len =
 / 2,=0A=
                                                           __buffer, =
 __buffer_size);=0A=
         rotate(__begin, __middle, __end);=0A=
         advance(__begin, distance(__middle, __end));=0A=
         return __begin;=0A=
       }=0A=
     }=0A=
 # 1848 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Predicate>=0A=
     _ForwardIter=0A=
     stable_partition(_ForwardIter __first, _ForwardIter __last,=0A=
                      _Predicate __pred)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return __first;=0A=
       else=0A=
       {=0A=
         typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
         typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
         _Temporary_buffer<_ForwardIter, _ValueType> __buf(__first, =
 __last);=0A=
         if (__buf.size() > 0)=0A=
           return __stable_partition_adaptive(__first, __last, __pred,=0A=
                                              =
 _DistanceType(__buf.requested_size()),=0A=
                                              __buf.begin(), =
 __buf.size());=0A=
         else=0A=
           return __inplace_stable_partition(__first, __last, __pred,=0A=
                                             =
 _DistanceType(__buf.requested_size()));=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Tp>=0A=
     _RandomAccessIter=0A=
     __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                           _Tp __pivot)=0A=
     {=0A=
       while (true) {=0A=
         while (*__first < __pivot)=0A=
           ++__first;=0A=
         --__last;=0A=
         while (__pivot < *__last)=0A=
           --__last;=0A=
         if (!(__first < __last))=0A=
           return __first;=0A=
         iter_swap(__first, __last);=0A=
         ++__first;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Tp, typename _Compare>=0A=
     _RandomAccessIter=0A=
     __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                           _Tp __pivot, _Compare __comp)=0A=
     {=0A=
       while (true) {=0A=
         while (__comp(*__first, __pivot))=0A=
           ++__first;=0A=
         --__last;=0A=
         while (__comp(__pivot, *__last))=0A=
           --__last;=0A=
         if (!(__first < __last))=0A=
           return __first;=0A=
         iter_swap(__first, __last);=0A=
         ++__first;=0A=
       }=0A=
     }=0A=
 # 1929 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   enum { _M_threshold =3D 16 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Tp>=0A=
     void=0A=
     __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val)=0A=
     {=0A=
       _RandomAccessIter __next =3D __last;=0A=
       --__next;=0A=
       while (__val < *__next) {=0A=
         *__last =3D *__next;=0A=
         __last =3D __next;=0A=
         --__next;=0A=
       }=0A=
       *__last =3D __val;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Tp, typename _Compare>=0A=
     void=0A=
     __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, =
 _Compare __comp)=0A=
     {=0A=
       _RandomAccessIter __next =3D __last;=0A=
       --__next;=0A=
       while (__comp(__val, *__next)) {=0A=
         *__last =3D *__next;=0A=
         __last =3D __next;=0A=
         --__next;=0A=
       }=0A=
       *__last =3D __val;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A=
     {=0A=
       if (__first =3D=3D __last) return;=0A=
 =0A=
       for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A=
       {=0A=
         typename iterator_traits<_RandomAccessIter>::value_type __val =
 =3D *__i;=0A=
         if (__val < *__first) {=0A=
           copy_backward(__first, __i, __i + 1);=0A=
           *__first =3D __val;=0A=
         }=0A=
         else=0A=
           __unguarded_linear_insert(__i, __val);=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     void=0A=
     __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                      _Compare __comp)=0A=
     {=0A=
       if (__first =3D=3D __last) return;=0A=
 =0A=
       for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A=
       {=0A=
         typename iterator_traits<_RandomAccessIter>::value_type __val =
 =3D *__i;=0A=
         if (__comp(__val, *__first)) {=0A=
           copy_backward(__first, __i, __i + 1);=0A=
           *__first =3D __val;=0A=
         }=0A=
         else=0A=
           __unguarded_linear_insert(__i, __val, __comp);=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     inline void=0A=
     __unguarded_insertion_sort(_RandomAccessIter __first, =
 _RandomAccessIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
       for (_RandomAccessIter __i =3D __first; __i !=3D __last; ++__i)=0A=
         __unguarded_linear_insert(__i, _ValueType(*__i));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     inline void=0A=
     __unguarded_insertion_sort(_RandomAccessIter __first, =
 _RandomAccessIter __last,=0A=
                                _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
       for (_RandomAccessIter __i =3D __first; __i !=3D __last; ++__i)=0A=
         __unguarded_linear_insert(__i, _ValueType(*__i), __comp);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last)=0A=
     {=0A=
       if (__last - __first > _M_threshold) {=0A=
         __insertion_sort(__first, __first + _M_threshold);=0A=
         __unguarded_insertion_sort(__first + _M_threshold, __last);=0A=
       }=0A=
       else=0A=
         __insertion_sort(__first, __last);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     void=0A=
     __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                            _Compare __comp)=0A=
     {=0A=
       if (__last - __first > _M_threshold) {=0A=
         __insertion_sort(__first, __first + _M_threshold, __comp);=0A=
         __unguarded_insertion_sort(__first + _M_threshold, __last, =
 __comp);=0A=
       }=0A=
       else=0A=
         __insertion_sort(__first, __last, __comp);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Size>=0A=
     inline _Size=0A=
     __lg(_Size __n)=0A=
     {=0A=
       _Size __k;=0A=
       for (__k =3D 0; __n !=3D 1; __n >>=3D 1) ++__k;=0A=
       return __k;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Size>=0A=
     void=0A=
     __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                      _Size __depth_limit)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
       while (__last - __first > _M_threshold) {=0A=
         if (__depth_limit =3D=3D 0) {=0A=
           partial_sort(__first, __last, __last);=0A=
           return;=0A=
         }=0A=
         --__depth_limit;=0A=
         _RandomAccessIter __cut =3D=0A=
           __unguarded_partition(__first, __last,=0A=
                                 _ValueType(__median(*__first,=0A=
                                                     *(__first + (__last =
 - __first)/2),=0A=
                                                     *(__last - 1))));=0A=
         __introsort_loop(__cut, __last, __depth_limit);=0A=
         __last =3D __cut;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Size, typename _Compare>=0A=
     void=0A=
     __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last,=0A=
                      _Size __depth_limit, _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
       while (__last - __first > _M_threshold) {=0A=
         if (__depth_limit =3D=3D 0) {=0A=
           partial_sort(__first, __last, __last, __comp);=0A=
           return;=0A=
         }=0A=
         --__depth_limit;=0A=
         _RandomAccessIter __cut =3D=0A=
           __unguarded_partition(__first, __last,=0A=
                                 _ValueType(__median(*__first,=0A=
                                                     *(__first + (__last =
 - __first)/2),=0A=
                                                     *(__last - 1), =
 __comp)),=0A=
            __comp);=0A=
         __introsort_loop(__cut, __last, __depth_limit, __comp);=0A=
         __last =3D __cut;=0A=
       }=0A=
     }=0A=
 # 2166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter>=0A=
     inline void=0A=
     sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       if (__first !=3D __last) {=0A=
         __introsort_loop(__first, __last, __lg(__last - __first) * 2);=0A=
         __final_insertion_sort(__first, __last);=0A=
       }=0A=
     }=0A=
 # 2197 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     inline void=0A=
     sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare =
 __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       if (__first !=3D __last) {=0A=
         __introsort_loop(__first, __last, __lg(__last - __first) * 2, =
 __comp);=0A=
         __final_insertion_sort(__first, __last, __comp);=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last)=0A=
     {=0A=
       if (__last - __first < 15) {=0A=
         __insertion_sort(__first, __last);=0A=
         return;=0A=
       }=0A=
       _RandomAccessIter __middle =3D __first + (__last - __first) / 2;=0A=
       __inplace_stable_sort(__first, __middle);=0A=
       __inplace_stable_sort(__middle, __last);=0A=
       __merge_without_buffer(__first, __middle, __last,=0A=
                              __middle - __first,=0A=
                              __last - __middle);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     void=0A=
     __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                           _Compare __comp)=0A=
     {=0A=
       if (__last - __first < 15) {=0A=
         __insertion_sort(__first, __last, __comp);=0A=
         return;=0A=
       }=0A=
       _RandomAccessIter __middle =3D __first + (__last - __first) / 2;=0A=
       __inplace_stable_sort(__first, __middle, __comp);=0A=
       __inplace_stable_sort(__middle, __last, __comp);=0A=
       __merge_without_buffer(__first, __middle, __last,=0A=
                              __middle - __first,=0A=
                              __last - __middle,=0A=
                              __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter1, typename _RandomAccessIter2,=0A=
            typename _Distance>=0A=
     void=0A=
     __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 =
 __last,=0A=
                       _RandomAccessIter2 __result, _Distance __step_size)=0A=
     {=0A=
       _Distance __two_step =3D 2 * __step_size;=0A=
 =0A=
       while (__last - __first >=3D __two_step) {=0A=
         __result =3D merge(__first, __first + __step_size,=0A=
                          __first + __step_size, __first + __two_step,=0A=
                          __result);=0A=
         __first +=3D __two_step;=0A=
       }=0A=
 =0A=
       __step_size =3D min(_Distance(__last - __first), __step_size);=0A=
       merge(__first, __first + __step_size, __first + __step_size, =
 __last,=0A=
             __result);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter1, typename _RandomAccessIter2,=0A=
            typename _Distance, typename _Compare>=0A=
     void=0A=
     __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 =
 __last,=0A=
                       _RandomAccessIter2 __result, _Distance __step_size,=0A=
                       _Compare __comp)=0A=
     {=0A=
       _Distance __two_step =3D 2 * __step_size;=0A=
 =0A=
       while (__last - __first >=3D __two_step) {=0A=
         __result =3D merge(__first, __first + __step_size,=0A=
                          __first + __step_size, __first + __two_step,=0A=
                          __result,=0A=
                          __comp);=0A=
         __first +=3D __two_step;=0A=
       }=0A=
       __step_size =3D min(_Distance(__last - __first), __step_size);=0A=
 =0A=
       merge(__first, __first + __step_size,=0A=
             __first + __step_size, __last,=0A=
             __result,=0A=
             __comp);=0A=
     }=0A=
 =0A=
   enum { _M_chunk_size =3D 7 };=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Distance>=0A=
     void=0A=
     __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                            _Distance __chunk_size)=0A=
     {=0A=
       while (__last - __first >=3D __chunk_size) {=0A=
         __insertion_sort(__first, __first + __chunk_size);=0A=
         __first +=3D __chunk_size;=0A=
       }=0A=
       __insertion_sort(__first, __last);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Distance, typename =
 _Compare>=0A=
     void=0A=
     __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                            _Distance __chunk_size, _Compare __comp)=0A=
     {=0A=
       while (__last - __first >=3D __chunk_size) {=0A=
         __insertion_sort(__first, __first + __chunk_size, __comp);=0A=
         __first +=3D __chunk_size;=0A=
       }=0A=
       __insertion_sort(__first, __last, __comp);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Pointer>=0A=
     void=0A=
     __merge_sort_with_buffer(_RandomAccessIter __first, =
 _RandomAccessIter __last,=0A=
                              _Pointer __buffer)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A=
 =0A=
       _Distance __len =3D __last - __first;=0A=
       _Pointer __buffer_last =3D __buffer + __len;=0A=
 =0A=
       _Distance __step_size =3D _M_chunk_size;=0A=
       __chunk_insertion_sort(__first, __last, __step_size);=0A=
 =0A=
       while (__step_size < __len) {=0A=
         __merge_sort_loop(__first, __last, __buffer, __step_size);=0A=
         __step_size *=3D 2;=0A=
         __merge_sort_loop(__buffer, __buffer_last, __first, __step_size);=0A=
         __step_size *=3D 2;=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Pointer, typename =
 _Compare>=0A=
     void=0A=
     __merge_sort_with_buffer(_RandomAccessIter __first, =
 _RandomAccessIter __last,=0A=
                              _Pointer __buffer, _Compare __comp)=0A=
     {=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A=
 =0A=
       _Distance __len =3D __last - __first;=0A=
       _Pointer __buffer_last =3D __buffer + __len;=0A=
 =0A=
       _Distance __step_size =3D _M_chunk_size;=0A=
       __chunk_insertion_sort(__first, __last, __step_size, __comp);=0A=
 =0A=
       while (__step_size < __len) {=0A=
         __merge_sort_loop(__first, __last, __buffer, __step_size, =
 __comp);=0A=
         __step_size *=3D 2;=0A=
         __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, =
 __comp);=0A=
         __step_size *=3D 2;=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Pointer, typename =
 _Distance>=0A=
     void=0A=
     __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                            _Pointer __buffer, _Distance __buffer_size)=0A=
     {=0A=
       _Distance __len =3D (__last - __first + 1) / 2;=0A=
       _RandomAccessIter __middle =3D __first + __len;=0A=
       if (__len > __buffer_size) {=0A=
         __stable_sort_adaptive(__first, __middle, __buffer, =
 __buffer_size);=0A=
         __stable_sort_adaptive(__middle, __last, __buffer, =
 __buffer_size);=0A=
       }=0A=
       else {=0A=
         __merge_sort_with_buffer(__first, __middle, __buffer);=0A=
         __merge_sort_with_buffer(__middle, __last, __buffer);=0A=
       }=0A=
       __merge_adaptive(__first, __middle, __last, _Distance(__middle - =
 __first),=0A=
                        _Distance(__last - __middle), __buffer, =
 __buffer_size);=0A=
     }=0A=
 =0A=
   template<typename _RandomAccessIter, typename _Pointer, typename =
 _Distance,=0A=
            typename _Compare>=0A=
     void=0A=
     __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter =
 __last,=0A=
                            _Pointer __buffer, _Distance __buffer_size,=0A=
                            _Compare __comp)=0A=
     {=0A=
       _Distance __len =3D (__last - __first + 1) / 2;=0A=
       _RandomAccessIter __middle =3D __first + __len;=0A=
       if (__len > __buffer_size) {=0A=
         __stable_sort_adaptive(__first, __middle, __buffer, =
 __buffer_size,=0A=
                                __comp);=0A=
         __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size,=0A=
                                __comp);=0A=
       }=0A=
       else {=0A=
         __merge_sort_with_buffer(__first, __middle, __buffer, __comp);=0A=
         __merge_sort_with_buffer(__middle, __last, __buffer, __comp);=0A=
       }=0A=
       __merge_adaptive(__first, __middle, __last, _Distance(__middle - =
 __first),=0A=
                        _Distance(__last - __middle), __buffer, =
 __buffer_size,=0A=
                        __comp);=0A=
     }=0A=
 # 2430 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter>=0A=
     inline void=0A=
     stable_sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, =
 __last);=0A=
       if (buf.begin() =3D=3D 0)=0A=
         __inplace_stable_sort(__first, __last);=0A=
       else=0A=
         __stable_sort_adaptive(__first, __last, buf.begin(), =
 _DistanceType(buf.size()));=0A=
     }=0A=
 # 2466 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     inline void=0A=
     stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, =
 _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, =
 __last);=0A=
       if (buf.begin() =3D=3D 0)=0A=
         __inplace_stable_sort(__first, __last, __comp);=0A=
       else=0A=
         __stable_sort_adaptive(__first, __last, buf.begin(), =
 _DistanceType(buf.size()),=0A=
                                __comp);=0A=
     }=0A=
 # 2502 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     partial_sort(_RandomAccessIter __first,=0A=
                  _RandomAccessIter __middle,=0A=
                  _RandomAccessIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       make_heap(__first, __middle);=0A=
       for (_RandomAccessIter __i =3D __middle; __i < __last; ++__i)=0A=
         if (*__i < *__first)=0A=
           __pop_heap(__first, __middle, __i, _ValueType(*__i));=0A=
       sort_heap(__first, __middle);=0A=
     }=0A=
 # 2540 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     void=0A=
     partial_sort(_RandomAccessIter __first,=0A=
                  _RandomAccessIter __middle,=0A=
                  _RandomAccessIter __last,=0A=
                  _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       make_heap(__first, __middle, __comp);=0A=
       for (_RandomAccessIter __i =3D __middle; __i < __last; ++__i)=0A=
         if (__comp(*__i, *__first))=0A=
           __pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);=0A=
       sort_heap(__first, __middle, __comp);=0A=
     }=0A=
 # 2579 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _RandomAccessIter>=0A=
     _RandomAccessIter=0A=
     partial_sort_copy(_InputIter __first, _InputIter __last,=0A=
                       _RandomAccessIter __result_first,=0A=
                       _RandomAccessIter __result_last)=0A=
     {=0A=
       typedef typename iterator_traits<_InputIter>::value_type =
 _InputValueType;=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _OutputValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       if (__result_first =3D=3D __result_last) return __result_last;=0A=
       _RandomAccessIter __result_real_last =3D __result_first;=0A=
       while(__first !=3D __last && __result_real_last !=3D =
 __result_last) {=0A=
         *__result_real_last =3D *__first;=0A=
         ++__result_real_last;=0A=
         ++__first;=0A=
       }=0A=
       make_heap(__result_first, __result_real_last);=0A=
       while (__first !=3D __last) {=0A=
         if (*__first < *__result_first)=0A=
           __adjust_heap(__result_first, _DistanceType(0),=0A=
                         _DistanceType(__result_real_last - =
 __result_first),=0A=
                         _InputValueType(*__first));=0A=
         ++__first;=0A=
       }=0A=
       sort_heap(__result_first, __result_real_last);=0A=
       return __result_real_last;=0A=
     }=0A=
 # 2633 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter, typename _RandomAccessIter, typename =
 _Compare>=0A=
     _RandomAccessIter=0A=
     partial_sort_copy(_InputIter __first, _InputIter __last,=0A=
                       _RandomAccessIter __result_first,=0A=
                       _RandomAccessIter __result_last,=0A=
                       _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_InputIter>::value_type =
 _InputValueType;=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _OutputValueType;=0A=
       typedef typename =
 iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__result_first =3D=3D __result_last) return __result_last;=0A=
       _RandomAccessIter __result_real_last =3D __result_first;=0A=
       while(__first !=3D __last && __result_real_last !=3D =
 __result_last) {=0A=
         *__result_real_last =3D *__first;=0A=
         ++__result_real_last;=0A=
         ++__first;=0A=
       }=0A=
       make_heap(__result_first, __result_real_last, __comp);=0A=
       while (__first !=3D __last) {=0A=
         if (__comp(*__first, *__result_first))=0A=
           __adjust_heap(__result_first, _DistanceType(0),=0A=
                         _DistanceType(__result_real_last - =
 __result_first),=0A=
                         _InputValueType(*__first),=0A=
                         __comp);=0A=
         ++__first;=0A=
       }=0A=
       sort_heap(__result_first, __result_real_last, __comp);=0A=
       return __result_real_last;=0A=
     }=0A=
 # 2686 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter>=0A=
     void=0A=
     nth_element(_RandomAccessIter __first,=0A=
                 _RandomAccessIter __nth,=0A=
                 _RandomAccessIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
 =0A=
       while (__last - __first > 3) {=0A=
         _RandomAccessIter __cut =3D=0A=
           __unguarded_partition(__first, __last,=0A=
                                 _ValueType(__median(*__first,=0A=
                                                     *(__first + (__last =
 - __first)/2),=0A=
                                                     *(__last - 1))));=0A=
         if (__cut <=3D __nth)=0A=
           __first =3D __cut;=0A=
         else=0A=
           __last =3D __cut;=0A=
       }=0A=
       __insertion_sort(__first, __last);=0A=
     }=0A=
 # 2728 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _RandomAccessIter, typename _Compare>=0A=
     void=0A=
     nth_element(_RandomAccessIter __first,=0A=
                 _RandomAccessIter __nth,=0A=
                 _RandomAccessIter __last,=0A=
                             _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_RandomAccessIter>::value_type =
 _ValueType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       while (__last - __first > 3) {=0A=
         _RandomAccessIter __cut =3D=0A=
           __unguarded_partition(__first, __last,=0A=
                                 _ValueType(__median(*__first,=0A=
                                                     *(__first + (__last =
 - __first)/2),=0A=
                                                     *(__last - 1),=0A=
                                                     __comp)),=0A=
                                 __comp);=0A=
         if (__cut <=3D __nth)=0A=
           __first =3D __cut;=0A=
         else=0A=
           __last =3D __cut;=0A=
       }=0A=
       __insertion_sort(__first, __last, __comp);=0A=
     }=0A=
 # 2768 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     _ForwardIter=0A=
     lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& =
 __val)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (*__middle < __val) {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
         else=0A=
           __len =3D __half;=0A=
       }=0A=
       return __first;=0A=
     }=0A=
 # 2816 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp, typename _Compare>=0A=
     _ForwardIter=0A=
     lower_bound(_ForwardIter __first, _ForwardIter __last,=0A=
                 const _Tp& __val, _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (__comp(*__middle, __val)) {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
         else=0A=
           __len =3D __half;=0A=
       }=0A=
       return __first;=0A=
     }=0A=
 # 2856 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     _ForwardIter=0A=
     upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& =
 __val)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (__val < *__middle)=0A=
           __len =3D __half;=0A=
         else {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
       }=0A=
       return __first;=0A=
     }=0A=
 # 2901 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp, typename _Compare>=0A=
     _ForwardIter=0A=
     upper_bound(_ForwardIter __first, _ForwardIter __last,=0A=
                 const _Tp& __val, _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (__comp(__val, *__middle))=0A=
           __len =3D __half;=0A=
         else {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
       }=0A=
       return __first;=0A=
     }=0A=
 # 2948 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     pair<_ForwardIter, _ForwardIter>=0A=
     equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& =
 __val)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle, __left, __right;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (*__middle < __val) {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
         else if (__val < *__middle)=0A=
           __len =3D __half;=0A=
         else {=0A=
           __left =3D lower_bound(__first, __middle, __val);=0A=
           advance(__first, __len);=0A=
           __right =3D upper_bound(++__middle, __first, __val);=0A=
           return pair<_ForwardIter, _ForwardIter>(__left, __right);=0A=
         }=0A=
       }=0A=
       return pair<_ForwardIter, _ForwardIter>(__first, __first);=0A=
     }=0A=
 # 3003 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp, typename _Compare>=0A=
     pair<_ForwardIter, _ForwardIter>=0A=
     equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& =
 __val,=0A=
                 _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_ForwardIter>::value_type =
 _ValueType;=0A=
       typedef typename iterator_traits<_ForwardIter>::difference_type =
 _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
       _DistanceType __len =3D distance(__first, __last);=0A=
       _DistanceType __half;=0A=
       _ForwardIter __middle, __left, __right;=0A=
 =0A=
       while (__len > 0) {=0A=
         __half =3D __len >> 1;=0A=
         __middle =3D __first;=0A=
         advance(__middle, __half);=0A=
         if (__comp(*__middle, __val)) {=0A=
           __first =3D __middle;=0A=
           ++__first;=0A=
           __len =3D __len - __half - 1;=0A=
         }=0A=
         else if (__comp(__val, *__middle))=0A=
           __len =3D __half;=0A=
         else {=0A=
           __left =3D lower_bound(__first, __middle, __val, __comp);=0A=
           advance(__first, __len);=0A=
           __right =3D upper_bound(++__middle, __first, __val, __comp);=0A=
           return pair<_ForwardIter, _ForwardIter>(__left, __right);=0A=
         }=0A=
       }=0A=
       return pair<_ForwardIter, _ForwardIter>(__first, __first);=0A=
     }=0A=
 # 3052 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp>=0A=
     bool=0A=
     binary_search(_ForwardIter __first, _ForwardIter __last,=0A=
                   const _Tp& __val)=0A=
     {=0A=
 =0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       _ForwardIter __i =3D lower_bound(__first, __last, __val);=0A=
       return __i !=3D __last && !(__val < *__i);=0A=
     }=0A=
 # 3083 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter, typename _Tp, typename _Compare>=0A=
     bool=0A=
     binary_search(_ForwardIter __first, _ForwardIter __last,=0A=
                   const _Tp& __val, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       _ForwardIter __i =3D lower_bound(__first, __last, __val, __comp);=0A=
       return __i !=3D __last && !__comp(__val, *__i);=0A=
     }=0A=
 # 3115 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter>=0A=
     _OutputIter=0A=
     merge(_InputIter1 __first1, _InputIter1 __last1,=0A=
           _InputIter2 __first2, _InputIter2 __last2,=0A=
           _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A=
         if (*__first2 < *__first1) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
         }=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
         }=0A=
         ++__result;=0A=
       }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 # 3166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _Compare>=0A=
     _OutputIter=0A=
     merge(_InputIter1 __first1, _InputIter1 __last1,=0A=
           _InputIter2 __first2, _InputIter2 __last2,=0A=
           _OutputIter __result, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A=
         if (__comp(*__first2, *__first1)) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
         }=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
         }=0A=
         ++__result;=0A=
       }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter, typename _Distance>=0A=
     void=0A=
     __merge_without_buffer(_BidirectionalIter __first,=0A=
                            _BidirectionalIter __middle,=0A=
                            _BidirectionalIter __last,=0A=
                            _Distance __len1, _Distance __len2)=0A=
     {=0A=
       if (__len1 =3D=3D 0 || __len2 =3D=3D 0)=0A=
         return;=0A=
       if (__len1 + __len2 =3D=3D 2) {=0A=
         if (*__middle < *__first)=0A=
               iter_swap(__first, __middle);=0A=
         return;=0A=
       }=0A=
       _BidirectionalIter __first_cut =3D __first;=0A=
       _BidirectionalIter __second_cut =3D __middle;=0A=
       _Distance __len11 =3D 0;=0A=
       _Distance __len22 =3D 0;=0A=
       if (__len1 > __len2) {=0A=
         __len11 =3D __len1 / 2;=0A=
         advance(__first_cut, __len11);=0A=
         __second_cut =3D lower_bound(__middle, __last, *__first_cut);=0A=
         __len22 =3D distance(__middle, __second_cut);=0A=
       }=0A=
       else {=0A=
         __len22 =3D __len2 / 2;=0A=
         advance(__second_cut, __len22);=0A=
         __first_cut =3D upper_bound(__first, __middle, *__second_cut);=0A=
         __len11 =3D distance(__first, __first_cut);=0A=
       }=0A=
       rotate(__first_cut, __middle, __second_cut);=0A=
       _BidirectionalIter __new_middle =3D __first_cut;=0A=
       advance(__new_middle, distance(__middle, __second_cut));=0A=
       __merge_without_buffer(__first, __first_cut, __new_middle,=0A=
                              __len11, __len22);=0A=
       __merge_without_buffer(__new_middle, __second_cut, __last,=0A=
                              __len1 - __len11, __len2 - __len22);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter, typename _Distance, typename =
 _Compare>=0A=
     void=0A=
     __merge_without_buffer(_BidirectionalIter __first,=0A=
                            _BidirectionalIter __middle,=0A=
                            _BidirectionalIter __last,=0A=
                            _Distance __len1, _Distance __len2,=0A=
                            _Compare __comp)=0A=
     {=0A=
       if (__len1 =3D=3D 0 || __len2 =3D=3D 0)=0A=
         return;=0A=
       if (__len1 + __len2 =3D=3D 2) {=0A=
         if (__comp(*__middle, *__first))=0A=
               iter_swap(__first, __middle);=0A=
         return;=0A=
       }=0A=
       _BidirectionalIter __first_cut =3D __first;=0A=
       _BidirectionalIter __second_cut =3D __middle;=0A=
       _Distance __len11 =3D 0;=0A=
       _Distance __len22 =3D 0;=0A=
       if (__len1 > __len2) {=0A=
         __len11 =3D __len1 / 2;=0A=
         advance(__first_cut, __len11);=0A=
         __second_cut =3D lower_bound(__middle, __last, *__first_cut, =
 __comp);=0A=
         __len22 =3D distance(__middle, __second_cut);=0A=
       }=0A=
       else {=0A=
         __len22 =3D __len2 / 2;=0A=
         advance(__second_cut, __len22);=0A=
         __first_cut =3D upper_bound(__first, __middle, *__second_cut, =
 __comp);=0A=
         __len11 =3D distance(__first, __first_cut);=0A=
       }=0A=
       rotate(__first_cut, __middle, __second_cut);=0A=
       _BidirectionalIter __new_middle =3D __first_cut;=0A=
       advance(__new_middle, distance(__middle, __second_cut));=0A=
       __merge_without_buffer(__first, __first_cut, __new_middle,=0A=
                              __len11, __len22, __comp);=0A=
       __merge_without_buffer(__new_middle, __second_cut, __last,=0A=
                              __len1 - __len11, __len2 - __len22, __comp);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,=0A=
            typename _Distance>=0A=
     _BidirectionalIter1=0A=
     __rotate_adaptive(_BidirectionalIter1 __first,=0A=
                       _BidirectionalIter1 __middle,=0A=
                       _BidirectionalIter1 __last,=0A=
                       _Distance __len1, _Distance __len2,=0A=
                       _BidirectionalIter2 __buffer,=0A=
                       _Distance __buffer_size)=0A=
     {=0A=
       _BidirectionalIter2 __buffer_end;=0A=
       if (__len1 > __len2 && __len2 <=3D __buffer_size) {=0A=
         __buffer_end =3D copy(__middle, __last, __buffer);=0A=
         copy_backward(__first, __middle, __last);=0A=
         return copy(__buffer, __buffer_end, __first);=0A=
       }=0A=
       else if (__len1 <=3D __buffer_size) {=0A=
         __buffer_end =3D copy(__first, __middle, __buffer);=0A=
         copy(__middle, __last, __first);=0A=
         return copy_backward(__buffer, __buffer_end, __last);=0A=
       }=0A=
       else {=0A=
         rotate(__first, __middle, __last);=0A=
         advance(__first, distance(__middle, __last));=0A=
         return __first;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,=0A=
            typename _BidirectionalIter3>=0A=
     _BidirectionalIter3=0A=
     __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 =
 __last1,=0A=
                      _BidirectionalIter2 __first2, _BidirectionalIter2 =
 __last2,=0A=
                      _BidirectionalIter3 __result)=0A=
     {=0A=
       if (__first1 =3D=3D __last1)=0A=
         return copy_backward(__first2, __last2, __result);=0A=
       if (__first2 =3D=3D __last2)=0A=
         return copy_backward(__first1, __last1, __result);=0A=
       --__last1;=0A=
       --__last2;=0A=
       while (true) {=0A=
         if (*__last2 < *__last1) {=0A=
           *--__result =3D *__last1;=0A=
           if (__first1 =3D=3D __last1)=0A=
             return copy_backward(__first2, ++__last2, __result);=0A=
           --__last1;=0A=
         }=0A=
         else {=0A=
           *--__result =3D *__last2;=0A=
           if (__first2 =3D=3D __last2)=0A=
             return copy_backward(__first1, ++__last1, __result);=0A=
           --__last2;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,=0A=
            typename _BidirectionalIter3, typename _Compare>=0A=
     _BidirectionalIter3=0A=
     __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 =
 __last1,=0A=
                      _BidirectionalIter2 __first2, _BidirectionalIter2 =
 __last2,=0A=
                      _BidirectionalIter3 __result,=0A=
                      _Compare __comp)=0A=
     {=0A=
       if (__first1 =3D=3D __last1)=0A=
         return copy_backward(__first2, __last2, __result);=0A=
       if (__first2 =3D=3D __last2)=0A=
         return copy_backward(__first1, __last1, __result);=0A=
       --__last1;=0A=
       --__last2;=0A=
       while (true) {=0A=
         if (__comp(*__last2, *__last1)) {=0A=
           *--__result =3D *__last1;=0A=
           if (__first1 =3D=3D __last1)=0A=
             return copy_backward(__first2, ++__last2, __result);=0A=
           --__last1;=0A=
         }=0A=
         else {=0A=
           *--__result =3D *__last2;=0A=
           if (__first2 =3D=3D __last2)=0A=
             return copy_backward(__first1, ++__last1, __result);=0A=
           --__last2;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter, typename _Distance, typename =
 _Pointer>=0A=
     void=0A=
     __merge_adaptive(_BidirectionalIter __first,=0A=
                      _BidirectionalIter __middle,=0A=
                      _BidirectionalIter __last,=0A=
                      _Distance __len1, _Distance __len2,=0A=
                      _Pointer __buffer, _Distance __buffer_size)=0A=
     {=0A=
           if (__len1 <=3D __len2 && __len1 <=3D __buffer_size) {=0A=
             _Pointer __buffer_end =3D copy(__first, __middle, __buffer);=0A=
             merge(__buffer, __buffer_end, __middle, __last, __first);=0A=
           }=0A=
           else if (__len2 <=3D __buffer_size) {=0A=
             _Pointer __buffer_end =3D copy(__middle, __last, __buffer);=0A=
             __merge_backward(__first, __middle, __buffer, __buffer_end, =
 __last);=0A=
           }=0A=
           else {=0A=
             _BidirectionalIter __first_cut =3D __first;=0A=
             _BidirectionalIter __second_cut =3D __middle;=0A=
             _Distance __len11 =3D 0;=0A=
             _Distance __len22 =3D 0;=0A=
             if (__len1 > __len2) {=0A=
                   __len11 =3D __len1 / 2;=0A=
                   advance(__first_cut, __len11);=0A=
                   __second_cut =3D lower_bound(__middle, __last, =
 *__first_cut);=0A=
                   __len22 =3D distance(__middle, __second_cut);=0A=
             }=0A=
             else {=0A=
                   __len22 =3D __len2 / 2;=0A=
                   advance(__second_cut, __len22);=0A=
                   __first_cut =3D upper_bound(__first, __middle, =
 *__second_cut);=0A=
                   __len11 =3D distance(__first, __first_cut);=0A=
             }=0A=
             _BidirectionalIter __new_middle =3D=0A=
                   __rotate_adaptive(__first_cut, __middle, __second_cut,=0A=
                                     __len1 - __len11, __len22, __buffer,=0A=
                                     __buffer_size);=0A=
             __merge_adaptive(__first, __first_cut, __new_middle, __len11,=0A=
                              __len22, __buffer, __buffer_size);=0A=
             __merge_adaptive(__new_middle, __second_cut, __last, __len1 =
 - __len11,=0A=
                              __len2 - __len22, __buffer, __buffer_size);=0A=
           }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter, typename _Distance, typename =
 _Pointer,=0A=
            typename _Compare>=0A=
     void=0A=
     __merge_adaptive(_BidirectionalIter __first,=0A=
                      _BidirectionalIter __middle,=0A=
                      _BidirectionalIter __last,=0A=
                      _Distance __len1, _Distance __len2,=0A=
                      _Pointer __buffer, _Distance __buffer_size,=0A=
                      _Compare __comp)=0A=
     {=0A=
           if (__len1 <=3D __len2 && __len1 <=3D __buffer_size) {=0A=
             _Pointer __buffer_end =3D copy(__first, __middle, __buffer);=0A=
             merge(__buffer, __buffer_end, __middle, __last, __first, =
 __comp);=0A=
           }=0A=
           else if (__len2 <=3D __buffer_size) {=0A=
             _Pointer __buffer_end =3D copy(__middle, __last, __buffer);=0A=
             __merge_backward(__first, __middle, __buffer, __buffer_end, =
 __last,=0A=
                                              __comp);=0A=
           }=0A=
           else {=0A=
             _BidirectionalIter __first_cut =3D __first;=0A=
             _BidirectionalIter __second_cut =3D __middle;=0A=
             _Distance __len11 =3D 0;=0A=
             _Distance __len22 =3D 0;=0A=
             if (__len1 > __len2) {=0A=
                   __len11 =3D __len1 / 2;=0A=
                   advance(__first_cut, __len11);=0A=
                   __second_cut =3D lower_bound(__middle, __last, =
 *__first_cut, __comp);=0A=
                   __len22 =3D distance(__middle, __second_cut);=0A=
             }=0A=
             else {=0A=
                   __len22 =3D __len2 / 2;=0A=
                   advance(__second_cut, __len22);=0A=
                   __first_cut =3D upper_bound(__first, __middle, =
 *__second_cut, __comp);=0A=
                   __len11 =3D distance(__first, __first_cut);=0A=
             }=0A=
             _BidirectionalIter __new_middle =3D=0A=
                   __rotate_adaptive(__first_cut, __middle, __second_cut,=0A=
                                     __len1 - __len11, __len22, __buffer,=0A=
                                     __buffer_size);=0A=
             __merge_adaptive(__first, __first_cut, __new_middle, __len11,=0A=
                              __len22, __buffer, __buffer_size, __comp);=0A=
             __merge_adaptive(__new_middle, __second_cut, __last, __len1 =
 - __len11,=0A=
                              __len2 - __len22, __buffer, __buffer_size, =
 __comp);=0A=
           }=0A=
     }=0A=
 # 3508 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _BidirectionalIter>=0A=
     void=0A=
     inplace_merge(_BidirectionalIter __first,=0A=
                   _BidirectionalIter __middle,=0A=
                   _BidirectionalIter __last)=0A=
     {=0A=
       typedef typename iterator_traits<_BidirectionalIter>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_BidirectionalIter>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
       if (__first =3D=3D __middle || __middle =3D=3D __last)=0A=
         return;=0A=
 =0A=
       _DistanceType __len1 =3D distance(__first, __middle);=0A=
       _DistanceType __len2 =3D distance(__middle, __last);=0A=
 =0A=
       _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, =
 __last);=0A=
       if (__buf.begin() =3D=3D 0)=0A=
         __merge_without_buffer(__first, __middle, __last, __len1, =
 __len2);=0A=
       else=0A=
         __merge_adaptive(__first, __middle, __last, __len1, __len2,=0A=
                          __buf.begin(), _DistanceType(__buf.size()));=0A=
     }=0A=
 # 3559 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _BidirectionalIter, typename _Compare>=0A=
     void=0A=
     inplace_merge(_BidirectionalIter __first,=0A=
                   _BidirectionalIter __middle,=0A=
                   _BidirectionalIter __last,=0A=
                   _Compare __comp)=0A=
     {=0A=
       typedef typename iterator_traits<_BidirectionalIter>::value_type=0A=
           _ValueType;=0A=
       typedef typename =
 iterator_traits<_BidirectionalIter>::difference_type=0A=
           _DistanceType;=0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __middle || __middle =3D=3D __last)=0A=
         return;=0A=
 =0A=
       _DistanceType __len1 =3D distance(__first, __middle);=0A=
       _DistanceType __len2 =3D distance(__middle, __last);=0A=
 =0A=
       _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, =
 __last);=0A=
       if (__buf.begin() =3D=3D 0)=0A=
         __merge_without_buffer(__first, __middle, __last, __len1, =
 __len2, __comp);=0A=
       else=0A=
         __merge_adaptive(__first, __middle, __last, __len1, __len2,=0A=
                          __buf.begin(), _DistanceType(__buf.size()),=0A=
                          __comp);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2>=0A=
     bool=0A=
     includes(_InputIter1 __first1, _InputIter1 __last1,=0A=
              _InputIter2 __first2, _InputIter2 __last2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (*__first2 < *__first1)=0A=
           return false;=0A=
         else if(*__first1 < *__first2)=0A=
           ++__first1;=0A=
         else=0A=
           ++__first1, ++__first2;=0A=
 =0A=
       return __first2 =3D=3D __last2;=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename _Compare>=0A=
     bool=0A=
     includes(_InputIter1 __first1, _InputIter1 __last1,=0A=
              _InputIter2 __first2, _InputIter2 __last2, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (__comp(*__first2, *__first1))=0A=
           return false;=0A=
         else if(__comp(*__first1, *__first2))=0A=
           ++__first1;=0A=
         else=0A=
           ++__first1, ++__first2;=0A=
 =0A=
       return __first2 =3D=3D __last2;=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter>=0A=
     _OutputIter=0A=
     set_union(_InputIter1 __first1, _InputIter1 __last1,=0A=
               _InputIter2 __first2, _InputIter2 __last2,=0A=
               _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A=
         if (*__first1 < *__first2) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
         }=0A=
         else if (*__first2 < *__first1) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
         }=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
         ++__result;=0A=
       }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _Compare>=0A=
     _OutputIter=0A=
     set_union(_InputIter1 __first1, _InputIter1 __last1,=0A=
               _InputIter2 __first2, _InputIter2 __last2,=0A=
               _OutputIter __result, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A=
         if (__comp(*__first1, *__first2)) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
         }=0A=
         else if (__comp(*__first2, *__first1)) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
         }=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
         ++__result;=0A=
       }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter>=0A=
     _OutputIter=0A=
     set_intersection(_InputIter1 __first1, _InputIter1 __last1,=0A=
                      _InputIter2 __first2, _InputIter2 __last2,=0A=
                      _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (*__first1 < *__first2)=0A=
           ++__first1;=0A=
         else if (*__first2 < *__first1)=0A=
           ++__first2;=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__first2;=0A=
           ++__result;=0A=
         }=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _Compare>=0A=
     _OutputIter=0A=
     set_intersection(_InputIter1 __first1, _InputIter1 __last1,=0A=
                      _InputIter2 __first2, _InputIter2 __last2,=0A=
                      _OutputIter __result, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (__comp(*__first1, *__first2))=0A=
           ++__first1;=0A=
         else if (__comp(*__first2, *__first1))=0A=
           ++__first2;=0A=
         else {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__first2;=0A=
           ++__result;=0A=
         }=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter>=0A=
     _OutputIter=0A=
     set_difference(_InputIter1 __first1, _InputIter1 __last1,=0A=
                    _InputIter2 __first2, _InputIter2 __last2,=0A=
                    _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (*__first1 < *__first2) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__result;=0A=
         }=0A=
         else if (*__first2 < *__first1)=0A=
           ++__first2;=0A=
         else {=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
       return copy(__first1, __last1, __result);=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _Compare>=0A=
     _OutputIter=0A=
     set_difference(_InputIter1 __first1, _InputIter1 __last1,=0A=
                    _InputIter2 __first2, _InputIter2 __last2,=0A=
                    _OutputIter __result, _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (__comp(*__first1, *__first2)) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__result;=0A=
         }=0A=
         else if (__comp(*__first2, *__first1))=0A=
           ++__first2;=0A=
         else {=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
       return copy(__first1, __last1, __result);=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter>=0A=
     _OutputIter=0A=
     set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,=0A=
                              _InputIter2 __first2, _InputIter2 __last2,=0A=
                              _OutputIter __result)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (*__first1 < *__first2) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__result;=0A=
         }=0A=
         else if (*__first2 < *__first1) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
           ++__result;=0A=
         }=0A=
         else {=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 =0A=
   template<typename _InputIter1, typename _InputIter2, typename =
 _OutputIter,=0A=
            typename _Compare>=0A=
     _OutputIter=0A=
     set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,=0A=
                              _InputIter2 __first2, _InputIter2 __last2,=0A=
                              _OutputIter __result,=0A=
                              _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A=
         if (__comp(*__first1, *__first2)) {=0A=
           *__result =3D *__first1;=0A=
           ++__first1;=0A=
           ++__result;=0A=
         }=0A=
         else if (__comp(*__first2, *__first1)) {=0A=
           *__result =3D *__first2;=0A=
           ++__first2;=0A=
           ++__result;=0A=
         }=0A=
         else {=0A=
           ++__first1;=0A=
           ++__first2;=0A=
         }=0A=
       return copy(__first2, __last2, copy(__first1, __last1, __result));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter>=0A=
     _ForwardIter=0A=
     max_element(_ForwardIter __first, _ForwardIter __last)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return __first;=0A=
       _ForwardIter __result =3D __first;=0A=
       while (++__first !=3D __last)=0A=
         if (*__result < *__first)=0A=
           __result =3D __first;=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter, typename _Compare>=0A=
     _ForwardIter=0A=
     max_element(_ForwardIter __first, _ForwardIter __last,=0A=
                 _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return __first;=0A=
       _ForwardIter __result =3D __first;=0A=
       while (++__first !=3D __last)=0A=
         if (__comp(*__result, *__first)) __result =3D __first;=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter>=0A=
     _ForwardIter=0A=
     min_element(_ForwardIter __first, _ForwardIter __last)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return __first;=0A=
       _ForwardIter __result =3D __first;=0A=
       while (++__first !=3D __last)=0A=
         if (*__first < *__result)=0A=
           __result =3D __first;=0A=
       return __result;=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter, typename _Compare>=0A=
     _ForwardIter=0A=
     min_element(_ForwardIter __first, _ForwardIter __last,=0A=
                 _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last) return __first;=0A=
       _ForwardIter __result =3D __first;=0A=
       while (++__first !=3D __last)=0A=
         if (__comp(*__first, *__result))=0A=
           __result =3D __first;=0A=
       return __result;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter>=0A=
     bool=0A=
     next_permutation(_BidirectionalIter __first, _BidirectionalIter =
 __last)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return false;=0A=
       _BidirectionalIter __i =3D __first;=0A=
       ++__i;=0A=
       if (__i =3D=3D __last)=0A=
         return false;=0A=
       __i =3D __last;=0A=
       --__i;=0A=
 =0A=
       for(;;) {=0A=
         _BidirectionalIter __ii =3D __i;=0A=
         --__i;=0A=
         if (*__i < *__ii) {=0A=
           _BidirectionalIter __j =3D __last;=0A=
           while (!(*__i < *--__j))=0A=
             {}=0A=
           iter_swap(__i, __j);=0A=
           reverse(__ii, __last);=0A=
           return true;=0A=
         }=0A=
         if (__i =3D=3D __first) {=0A=
           reverse(__first, __last);=0A=
           return false;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _BidirectionalIter, typename _Compare>=0A=
     bool=0A=
     next_permutation(_BidirectionalIter __first, _BidirectionalIter =
 __last,=0A=
                      _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return false;=0A=
       _BidirectionalIter __i =3D __first;=0A=
       ++__i;=0A=
       if (__i =3D=3D __last)=0A=
         return false;=0A=
       __i =3D __last;=0A=
       --__i;=0A=
 =0A=
       for(;;) {=0A=
         _BidirectionalIter __ii =3D __i;=0A=
         --__i;=0A=
         if (__comp(*__i, *__ii)) {=0A=
           _BidirectionalIter __j =3D __last;=0A=
           while (!__comp(*__i, *--__j))=0A=
             {}=0A=
           iter_swap(__i, __j);=0A=
           reverse(__ii, __last);=0A=
           return true;=0A=
         }=0A=
         if (__i =3D=3D __first) {=0A=
           reverse(__first, __last);=0A=
           return false;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _BidirectionalIter>=0A=
     bool=0A=
     prev_permutation(_BidirectionalIter __first, _BidirectionalIter =
 __last)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return false;=0A=
       _BidirectionalIter __i =3D __first;=0A=
       ++__i;=0A=
       if (__i =3D=3D __last)=0A=
         return false;=0A=
       __i =3D __last;=0A=
       --__i;=0A=
 =0A=
       for(;;) {=0A=
         _BidirectionalIter __ii =3D __i;=0A=
         --__i;=0A=
         if (*__ii < *__i) {=0A=
           _BidirectionalIter __j =3D __last;=0A=
           while (!(*--__j < *__i))=0A=
             {}=0A=
           iter_swap(__i, __j);=0A=
           reverse(__ii, __last);=0A=
           return true;=0A=
         }=0A=
         if (__i =3D=3D __first) {=0A=
           reverse(__first, __last);=0A=
           return false;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _BidirectionalIter, typename _Compare>=0A=
     bool=0A=
     prev_permutation(_BidirectionalIter __first, _BidirectionalIter =
 __last,=0A=
                      _Compare __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       if (__first =3D=3D __last)=0A=
         return false;=0A=
       _BidirectionalIter __i =3D __first;=0A=
       ++__i;=0A=
       if (__i =3D=3D __last)=0A=
         return false;=0A=
       __i =3D __last;=0A=
       --__i;=0A=
 =0A=
       for(;;) {=0A=
         _BidirectionalIter __ii =3D __i;=0A=
         --__i;=0A=
         if (__comp(*__ii, *__i)) {=0A=
           _BidirectionalIter __j =3D __last;=0A=
           while (!__comp(*--__j, *__i))=0A=
             {}=0A=
           iter_swap(__i, __j);=0A=
           reverse(__ii, __last);=0A=
           return true;=0A=
         }=0A=
         if (__i =3D=3D __first) {=0A=
           reverse(__first, __last);=0A=
           return false;=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter>=0A=
     _InputIter=0A=
     find_first_of(_InputIter __first1, _InputIter __last1,=0A=
                   _ForwardIter __first2, _ForwardIter __last2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1)=0A=
         for (_ForwardIter __iter =3D __first2; __iter !=3D __last2; =
 ++__iter)=0A=
           if (*__first1 =3D=3D *__iter)=0A=
             return __first1;=0A=
       return __last1;=0A=
     }=0A=
 =0A=
   template<typename _InputIter, typename _ForwardIter, typename =
 _BinaryPredicate>=0A=
     _InputIter=0A=
     find_first_of(_InputIter __first1, _InputIter __last1,=0A=
                   _ForwardIter __first2, _ForwardIter __last2,=0A=
                   _BinaryPredicate __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       for ( ; __first1 !=3D __last1; ++__first1)=0A=
         for (_ForwardIter __iter =3D __first2; __iter !=3D __last2; =
 ++__iter)=0A=
           if (__comp(*__first1, *__iter))=0A=
             return __first1;=0A=
       return __last1;=0A=
     }=0A=
 # 4201 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A=
   template<typename _ForwardIter1, typename _ForwardIter2>=0A=
     _ForwardIter1=0A=
     __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
                _ForwardIter2 __first2, _ForwardIter2 __last2,=0A=
                forward_iterator_tag, forward_iterator_tag)=0A=
     {=0A=
       if (__first2 =3D=3D __last2)=0A=
         return __last1;=0A=
       else {=0A=
         _ForwardIter1 __result =3D __last1;=0A=
         while (1) {=0A=
           _ForwardIter1 __new_result=0A=
             =3D search(__first1, __last1, __first2, __last2);=0A=
           if (__new_result =3D=3D __last1)=0A=
             return __result;=0A=
           else {=0A=
             __result =3D __new_result;=0A=
             __first1 =3D __new_result;=0A=
             ++__first1;=0A=
           }=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter1, typename _ForwardIter2,=0A=
            typename _BinaryPredicate>=0A=
     _ForwardIter1=0A=
     __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
                _ForwardIter2 __first2, _ForwardIter2 __last2,=0A=
                forward_iterator_tag, forward_iterator_tag,=0A=
                _BinaryPredicate __comp)=0A=
     {=0A=
       if (__first2 =3D=3D __last2)=0A=
         return __last1;=0A=
       else {=0A=
         _ForwardIter1 __result =3D __last1;=0A=
         while (1) {=0A=
           _ForwardIter1 __new_result=0A=
             =3D search(__first1, __last1, __first2, __last2, __comp);=0A=
           if (__new_result =3D=3D __last1)=0A=
             return __result;=0A=
           else {=0A=
             __result =3D __new_result;=0A=
             __first1 =3D __new_result;=0A=
             ++__first1;=0A=
           }=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2>=0A=
     _BidirectionalIter1=0A=
     __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1,=0A=
                _BidirectionalIter2 __first2, _BidirectionalIter2 __last2,=0A=
                bidirectional_iterator_tag, bidirectional_iterator_tag)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       typedef reverse_iterator<_BidirectionalIter1> _RevIter1;=0A=
       typedef reverse_iterator<_BidirectionalIter2> _RevIter2;=0A=
 =0A=
       _RevIter1 __rlast1(__first1);=0A=
       _RevIter2 __rlast2(__first2);=0A=
       _RevIter1 __rresult =3D search(_RevIter1(__last1), __rlast1,=0A=
                                    _RevIter2(__last2), __rlast2);=0A=
 =0A=
       if (__rresult =3D=3D __rlast1)=0A=
         return __last1;=0A=
       else {=0A=
         _BidirectionalIter1 __result =3D __rresult.base();=0A=
         advance(__result, -distance(__first2, __last2));=0A=
         return __result;=0A=
       }=0A=
     }=0A=
 =0A=
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,=0A=
            typename _BinaryPredicate>=0A=
     _BidirectionalIter1=0A=
     __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1,=0A=
                _BidirectionalIter2 __first2, _BidirectionalIter2 __last2,=0A=
                bidirectional_iterator_tag, bidirectional_iterator_tag,=0A=
                _BinaryPredicate __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
 =0A=
       typedef reverse_iterator<_BidirectionalIter1> _RevIter1;=0A=
       typedef reverse_iterator<_BidirectionalIter2> _RevIter2;=0A=
 =0A=
       _RevIter1 __rlast1(__first1);=0A=
       _RevIter2 __rlast2(__first2);=0A=
       _RevIter1 __rresult =3D search(_RevIter1(__last1), __rlast1,=0A=
                                    _RevIter2(__last2), __rlast2,=0A=
                                    __comp);=0A=
 =0A=
       if (__rresult =3D=3D __rlast1)=0A=
         return __last1;=0A=
       else {=0A=
         _BidirectionalIter1 __result =3D __rresult.base();=0A=
         advance(__result, -distance(__first2, __last2));=0A=
         return __result;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _ForwardIter1, typename _ForwardIter2>=0A=
     inline _ForwardIter1=0A=
     find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
              _ForwardIter2 __first2, _ForwardIter2 __last2)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       return __find_end(__first1, __last1, __first2, __last2,=0A=
                         __iterator_category(__first1),=0A=
                         __iterator_category(__first2));=0A=
     }=0A=
 =0A=
   template<typename _ForwardIter1, typename _ForwardIter2,=0A=
            typename _BinaryPredicate>=0A=
     inline _ForwardIter1=0A=
     find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A=
              _ForwardIter2 __first2, _ForwardIter2 __last2,=0A=
              _BinaryPredicate __comp)=0A=
     {=0A=
 =0A=
      =0A=
      =0A=
      =0A=
 =0A=
 =0A=
 =0A=
       return __find_end(__first1, __last1, __first2, __last2,=0A=
                         __iterator_category(__first1),=0A=
                         __iterator_category(__first2),=0A=
                         __comp);=0A=
     }=0A=
 =0A=
 }=0A=
 # 70 "/usr/local/gcc3.1/include/g++-v3/algorithm" 2 3=0A=
 # 57 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 1 3=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     const typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     _Rep::_S_max_size =3D (((npos - sizeof(_Rep))/sizeof(_CharT)) - 1) / =
 4;=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     const _CharT=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     _Rep::_S_terminal =3D _CharT();=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     const typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::npos;=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep_storage[=0A=
     (sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - =
 1)/sizeof(size_type)];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     template<typename _InIter>=0A=
       _CharT*=0A=
       basic_string<_CharT, _Traits, _Alloc>::=0A=
       _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A=
                    input_iterator_tag)=0A=
       {=0A=
         if (__beg =3D=3D __end && __a =3D=3D _Alloc())=0A=
           return _S_empty_rep()._M_refcopy();=0A=
 =0A=
         _CharT __buf[100];=0A=
         size_type __i =3D 0;=0A=
         while (__beg !=3D __end && __i < sizeof(__buf) / sizeof(_CharT))=0A=
           {=0A=
             __buf[__i++] =3D *__beg;=0A=
             ++__beg;=0A=
           }=0A=
         _Rep* __r =3D _Rep::_S_create(__i, __a);=0A=
         traits_type::copy(__r->_M_refdata(), __buf, __i);=0A=
         __r->_M_length =3D __i;=0A=
         try=0A=
           {=0A=
 =0A=
 =0A=
 =0A=
             for (;;)=0A=
               {=0A=
                 _CharT* __p =3D __r->_M_refdata() + __r->_M_length;=0A=
                 _CharT* __last =3D __r->_M_refdata() + __r->_M_capacity;=0A=
                 for (;;)=0A=
                   {=0A=
                     if (__beg =3D=3D __end)=0A=
                       {=0A=
                         __r->_M_length =3D __p - __r->_M_refdata();=0A=
                         *__p =3D _Rep::_S_terminal;=0A=
                         return __r->_M_refdata();=0A=
                       }=0A=
                     if (__p =3D=3D __last)=0A=
                       break;=0A=
                     *__p++ =3D *__beg;=0A=
                     ++__beg;=0A=
                   }=0A=
 =0A=
                 size_type __len =3D __p - __r->_M_refdata();=0A=
                 _Rep* __another =3D _Rep::_S_create(__len + 1, __a);=0A=
                 traits_type::copy(__another->_M_refdata(),=0A=
                                   __r->_M_refdata(), __len);=0A=
                 __r->_M_destroy(__a);=0A=
                 __r =3D __another;=0A=
                 __r->_M_length =3D __len;=0A=
               }=0A=
           }=0A=
         catch(...)=0A=
           {=0A=
             __r->_M_destroy(__a);=0A=
             throw;=0A=
           }=0A=
         return 0;=0A=
       }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     template <class _InIter>=0A=
       _CharT*=0A=
       basic_string<_CharT, _Traits, _Alloc>::=0A=
       _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A=
                    forward_iterator_tag)=0A=
       {=0A=
         size_type __dnew =3D static_cast<size_type>(distance(__beg, =
 __end));=0A=
 =0A=
 =0A=
         if (__builtin_expect(__beg =3D=3D _InIter(0), 0))=0A=
           __throw_logic_error("attempt to create string with null =
 pointer");=0A=
 =0A=
         if (__beg =3D=3D __end && __a =3D=3D _Alloc())=0A=
           return _S_empty_rep()._M_refcopy();=0A=
 =0A=
 =0A=
         _Rep* __r =3D _Rep::_S_create(__dnew, __a);=0A=
         try=0A=
           { _S_copy_chars(__r->_M_refdata(), __beg, __end); }=0A=
         catch(...)=0A=
           {=0A=
             __r->_M_destroy(__a);=0A=
             throw;=0A=
           }=0A=
         __r->_M_length =3D __dnew;=0A=
 =0A=
         __r->_M_refdata()[__dnew] =3D _Rep::_S_terminal;=0A=
         return __r->_M_refdata();=0A=
       }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     _CharT*=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)=0A=
     {=0A=
       if (__n =3D=3D 0 && __a =3D=3D _Alloc())=0A=
         return _S_empty_rep()._M_refcopy();=0A=
 =0A=
 =0A=
       _Rep* __r =3D _Rep::_S_create(__n, __a);=0A=
       try=0A=
         {=0A=
           if (__n)=0A=
             traits_type::assign(__r->_M_refdata(), __n, __c);=0A=
         }=0A=
       catch(...)=0A=
         {=0A=
           __r->_M_destroy(__a);=0A=
           throw;=0A=
         }=0A=
       __r->_M_length =3D __n;=0A=
       __r->_M_refdata()[__n] =3D _Rep::_S_terminal;=0A=
       return __r->_M_refdata();=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const basic_string& __str)=0A=
     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(), =
 __str.get_allocator()),=0A=
                  __str.get_allocator())=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const basic_string& __str, size_type __pos, size_type =
 __n)=0A=
     : _M_dataplus(_S_construct(__str._M_check(__pos),=0A=
                                __str._M_fold(__pos, __n), _Alloc()), =
 _Alloc())=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const basic_string& __str, size_type __pos,=0A=
                  size_type __n, const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(__str._M_check(__pos),=0A=
                                __str._M_fold(__pos, __n), __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(const _CharT* __s, const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) =
 : 0,=0A=
                                __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(size_type __n, _CharT __c, const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(__n, __c, __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     template<typename _InputIter>=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a)=0A=
     : _M_dataplus(_S_construct(__beg, __end, __a), __a)=0A=
     { }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::assign(const basic_string& =
 __str)=0A=
     {=0A=
       if (_M_rep() !=3D __str._M_rep())=0A=
         {=0A=
 =0A=
           allocator_type __a =3D this->get_allocator();=0A=
           _CharT* __tmp =3D __str._M_rep()->_M_grab(__a, =
 __str.get_allocator());=0A=
           _M_rep()->_M_dispose(__a);=0A=
           _M_data(__tmp);=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void=0A=
     basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A=
     _M_destroy(const _Alloc& __a) throw ()=0A=
     {=0A=
       size_type __size =3D sizeof(_Rep) + (_M_capacity + 1) * =
 sizeof(_CharT);=0A=
       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), =
 __size);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void=0A=
     basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard()=0A=
     {=0A=
       if (_M_rep()->_M_is_shared())=0A=
         _M_mutate(0, 0, 0);=0A=
       _M_rep()->_M_set_leaked();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     _M_mutate(size_type __pos, size_type __len1, size_type __len2)=0A=
     {=0A=
       size_type __old_size =3D this->size();=0A=
       const size_type __new_size =3D __old_size + __len2 - __len1;=0A=
       const _CharT* __src =3D _M_data() + __pos + __len1;=0A=
       const size_type __how_much =3D __old_size - __pos - __len1;=0A=
 =0A=
       if (_M_rep()->_M_is_shared() || __new_size > capacity())=0A=
         {=0A=
 =0A=
           allocator_type __a =3D get_allocator();=0A=
 =0A=
 =0A=
           const size_type __pagesize =3D 4096;=0A=
           const size_type __malloc_header_size =3D 4 * sizeof (void*);=0A=
 =0A=
           const size_type __page_capacity =3D (__pagesize - =
 __malloc_header_size=0A=
                                              - sizeof(_Rep) - =
 sizeof(_CharT))=0A=
                                              / sizeof(_CharT);=0A=
           _Rep* __r;=0A=
           if (__new_size > capacity() && __new_size > __page_capacity)=0A=
 =0A=
             __r =3D _Rep::_S_create(__new_size > 2*capacity() ?=0A=
                                   __new_size : 2*capacity(), __a);=0A=
           else=0A=
             __r =3D _Rep::_S_create(__new_size, __a);=0A=
           try=0A=
             {=0A=
               if (__pos)=0A=
                 traits_type::copy(__r->_M_refdata(), _M_data(), __pos);=0A=
               if (__how_much)=0A=
                 traits_type::copy(__r->_M_refdata() + __pos + __len2,=0A=
                                   __src, __how_much);=0A=
             }=0A=
           catch(...)=0A=
             {=0A=
               __r->_M_dispose(get_allocator());=0A=
               throw;=0A=
             }=0A=
           _M_rep()->_M_dispose(__a);=0A=
           _M_data(__r->_M_refdata());=0A=
       }=0A=
       else if (__how_much && __len1 !=3D __len2)=0A=
         {=0A=
 =0A=
           traits_type::move(_M_data() + __pos + __len2, __src, =
 __how_much);=0A=
         }=0A=
       _M_rep()->_M_set_sharable();=0A=
       _M_rep()->_M_length =3D __new_size;=0A=
       _M_data()[__new_size] =3D _Rep::_S_terminal;=0A=
 =0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void=0A=
     basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)=0A=
     {=0A=
       if (__res > this->capacity() || _M_rep()->_M_is_shared())=0A=
         {=0A=
           if (__res > this->max_size())=0A=
             __throw_length_error("basic_string::reserve");=0A=
 =0A=
           if (__res < this->size())=0A=
             __res =3D this->size();=0A=
           allocator_type __a =3D get_allocator();=0A=
           _CharT* __tmp =3D _M_rep()->_M_clone(__a, __res - =
 this->size());=0A=
           _M_rep()->_M_dispose(__a);=0A=
           _M_data(__tmp);=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s)=0A=
     {=0A=
       if (_M_rep()->_M_is_leaked())=0A=
         _M_rep()->_M_set_sharable();=0A=
       if (__s._M_rep()->_M_is_leaked())=0A=
         __s._M_rep()->_M_set_sharable();=0A=
       if (this->get_allocator() =3D=3D __s.get_allocator())=0A=
         {=0A=
           _CharT* __tmp =3D _M_data();=0A=
           _M_data(__s._M_data());=0A=
           __s._M_data(__tmp);=0A=
         }=0A=
 =0A=
       else=0A=
         {=0A=
           basic_string __tmp1(_M_ibegin(), _M_iend(), =
 __s.get_allocator());=0A=
           basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),=0A=
                               this->get_allocator());=0A=
           *this =3D __tmp2;=0A=
           __s =3D __tmp1;=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*=0A=
     basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A=
     _S_create(size_t __capacity, const _Alloc& __alloc)=0A=
     {=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
 =0A=
 =0A=
       if (__capacity > _S_max_size)=0A=
 =0A=
 =0A=
 =0A=
         __throw_length_error("basic_string::_S_create");=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       size_t __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A=
 # 421 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A=
       const size_t __pagesize =3D 4096;=0A=
       const size_t __subpagesize =3D 128;=0A=
       const size_t __malloc_header_size =3D 4 * sizeof (void*);=0A=
       if ((__size + __malloc_header_size) > __pagesize)=0A=
         {=0A=
           size_t __extra =3D=0A=
             (__pagesize - ((__size + __malloc_header_size) % __pagesize))=0A=
             % __pagesize;=0A=
           __capacity +=3D __extra / sizeof(_CharT);=0A=
           __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A=
         }=0A=
       else if (__size > __subpagesize)=0A=
         {=0A=
           size_t __extra =3D=0A=
             (__subpagesize - ((__size + __malloc_header_size) % =
 __subpagesize))=0A=
             % __subpagesize;=0A=
           __capacity +=3D __extra / sizeof(_CharT);=0A=
           __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
       void* __place =3D _Raw_bytes_alloc(__alloc).allocate(__size);=0A=
       _Rep *__p =3D new (__place) _Rep;=0A=
       __p->_M_capacity =3D __capacity;=0A=
       __p->_M_set_sharable();=0A=
       __p->_M_length =3D 0;=0A=
       return __p;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     _CharT*=0A=
     basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A=
     _M_clone(const _Alloc& __alloc, size_type __res)=0A=
     {=0A=
 =0A=
       const size_type __requested_cap =3D _M_length + __res;=0A=
 =0A=
       const size_type __pagesize =3D 4096;=0A=
       const size_type __malloc_header_size =3D 4 * sizeof (void*);=0A=
 =0A=
       const size_type __page_capacity =3D=0A=
         (__pagesize - __malloc_header_size - sizeof(_Rep) - =
 sizeof(_CharT))=0A=
         / sizeof(_CharT);=0A=
       _Rep* __r;=0A=
       if (__requested_cap > _M_capacity && __requested_cap > =
 __page_capacity)=0A=
 =0A=
         __r =3D _Rep::_S_create(__requested_cap > 2*_M_capacity ?=0A=
                               __requested_cap : 2*_M_capacity, __alloc);=0A=
       else=0A=
         __r =3D _Rep::_S_create(__requested_cap, __alloc);=0A=
 =0A=
       if (_M_length)=0A=
         {=0A=
           try=0A=
             { traits_type::copy(__r->_M_refdata(), _M_refdata(), =
 _M_length); }=0A=
           catch(...)=0A=
             {=0A=
               __r->_M_destroy(__alloc);=0A=
               throw;=0A=
             }=0A=
         }=0A=
       __r->_M_length =3D _M_length;=0A=
       return __r->_M_refdata();=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     void=0A=
     basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT =
 __c)=0A=
     {=0A=
       if (__n > max_size())=0A=
         __throw_length_error("basic_string::resize");=0A=
       size_type __size =3D this->size();=0A=
       if (__size < __n)=0A=
         this->append(__n - __size, __c);=0A=
       else if (__n < __size)=0A=
         this->erase(__n);=0A=
 =0A=
     }=0A=
 # 508 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     template<typename _InputIter>=0A=
       basic_string<_CharT, _Traits, _Alloc>&=0A=
       basic_string<_CharT, _Traits, _Alloc>::=0A=
       _M_replace(iterator __i1, iterator __i2, _InputIter __k1,=0A=
                  _InputIter __k2, input_iterator_tag)=0A=
       {=0A=
 =0A=
         basic_string __s(__k1, __k2);=0A=
         return _M_replace_safe(__i1, __i2, __s._M_ibegin(), =
 __s._M_iend());=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     template<typename _ForwardIter>=0A=
       basic_string<_CharT, _Traits, _Alloc>&=0A=
       basic_string<_CharT, _Traits, _Alloc>::=0A=
       _M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1,=0A=
                       _ForwardIter __k2)=0A=
       {=0A=
         size_type __dnew =3D static_cast<size_type>(distance(__k1, =
 __k2));=0A=
         size_type __dold =3D __i2 - __i1;=0A=
         size_type __dmax =3D this->max_size();=0A=
 =0A=
         if (__dmax <=3D __dnew)=0A=
           __throw_length_error("basic_string::_M_replace");=0A=
         size_type __off =3D __i1 - _M_ibegin();=0A=
         _M_mutate(__off, __dold, __dnew);=0A=
 =0A=
 =0A=
         if (__dnew)=0A=
           _S_copy_chars(_M_data() + __off, __k1, __k2);=0A=
 =0A=
         return *this;=0A=
       }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     replace(size_type __pos1, size_type __n1, const basic_string& __str,=0A=
             size_type __pos2, size_type __n2)=0A=
     {=0A=
       const size_type __strsize =3D __str.size();=0A=
       if (__pos2 > __strsize)=0A=
         __throw_out_of_range("basic_string::replace");=0A=
       const bool __testn2 =3D __n2 < __strsize - __pos2;=0A=
       const size_type __foldn2 =3D __testn2 ? __n2 : __strsize - __pos2;=0A=
       return this->replace(__pos1, __n1,=0A=
                            __str._M_data() + __pos2, __foldn2);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     append(const basic_string& __str)=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
       size_type __size =3D __str.size();=0A=
       size_type __len =3D __size + this->size();=0A=
       if (__len > this->capacity())=0A=
         this->reserve(__len);=0A=
       return _M_replace_safe(_M_iend(), _M_iend(), __str._M_ibegin(),=0A=
                              __str._M_iend());=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     append(const basic_string& __str, size_type __pos, size_type __n)=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
       size_type __len =3D min(__str.size() - __pos, __n) + this->size();=0A=
       if (__len > this->capacity())=0A=
         this->reserve(__len);=0A=
       return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos),=0A=
                              __str._M_fold(__pos, __n));=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     append(const _CharT* __s, size_type __n)=0A=
     {=0A=
       size_type __len =3D __n + this->size();=0A=
       if (__len > this->capacity())=0A=
         this->reserve(__len);=0A=
       return _M_replace_safe(_M_iend(), _M_iend(), __s, __s + __n);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     append(size_type __n, _CharT __c)=0A=
     {=0A=
       size_type __len =3D __n + this->size();=0A=
       if (__len > this->capacity())=0A=
         this->reserve(__len);=0A=
        return this->replace(_M_iend(), _M_iend(), __n, __c);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>=0A=
     operator+(const _CharT* __lhs,=0A=
               const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A=
     {=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
       typedef typename __string_type::size_type __size_type;=0A=
       __size_type __len =3D _Traits::length(__lhs);=0A=
       __string_type __str;=0A=
       __str.reserve(__len + __rhs.size());=0A=
       __str.append(__lhs, __lhs + __len);=0A=
       __str.append(__rhs);=0A=
       return __str;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>=0A=
     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& =
 __rhs)=0A=
     {=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
       typedef typename __string_type::size_type __size_type;=0A=
       __string_type __str;=0A=
       __size_type __len =3D __rhs.size();=0A=
       __str.reserve(__len + 1);=0A=
       __str.append(__size_type(1), __lhs);=0A=
       __str.append(__rhs);=0A=
       return __str;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_string<_CharT, _Traits, _Alloc>&=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     replace(iterator __i1, iterator __i2, size_type __n2, _CharT __c)=0A=
     {=0A=
       size_type __n1 =3D __i2 - __i1;=0A=
       size_type __off1 =3D __i1 - _M_ibegin();=0A=
       if (max_size() - (this->size() - __n1) <=3D __n2)=0A=
         __throw_length_error("basic_string::replace");=0A=
       _M_mutate (__off1, __n1, __n2);=0A=
 =0A=
       if (__n2)=0A=
         traits_type::assign(_M_data() + __off1, __n2, __c);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     copy(_CharT* __s, size_type __n, size_type __pos) const=0A=
     {=0A=
       if (__pos > this->size())=0A=
         __throw_out_of_range("basic_string::copy");=0A=
 =0A=
       if (__n > this->size() - __pos)=0A=
         __n =3D this->size() - __pos;=0A=
 =0A=
       traits_type::copy(__s, _M_data() + __pos, __n);=0A=
 =0A=
       return __n;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find(const _CharT* __s, size_type __pos, size_type __n) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       size_t __xpos =3D __pos;=0A=
       const _CharT* __data =3D _M_data();=0A=
       for (; __xpos + __n <=3D __size; ++__xpos)=0A=
         if (traits_type::compare(__data + __xpos, __s, __n) =3D=3D 0)=0A=
           return __xpos;=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find(_CharT __c, size_type __pos) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       size_type __ret =3D npos;=0A=
       if (__pos < __size)=0A=
         {=0A=
           const _CharT* __data =3D _M_data();=0A=
           size_type __n =3D __size - __pos;=0A=
           const _CharT* __p =3D traits_type::find(__data + __pos, __n, =
 __c);=0A=
           if (__p)=0A=
             __ret =3D __p - __data;=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     rfind(const _CharT* __s, size_type __pos, size_type __n) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__n <=3D __size)=0A=
         {=0A=
           __pos =3D std::min(__size - __n, __pos);=0A=
           const _CharT* __data =3D _M_data();=0A=
           do=0A=
             {=0A=
               if (traits_type::compare(__data + __pos, __s, __n) =3D=3D =
 0)=0A=
                 return __pos;=0A=
             }=0A=
           while (__pos-- > 0);=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     rfind(_CharT __c, size_type __pos) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__size)=0A=
         {=0A=
           size_t __xpos =3D __size - 1;=0A=
           if (__xpos > __pos)=0A=
             __xpos =3D __pos;=0A=
 =0A=
           for (++__xpos; __xpos-- > 0; )=0A=
             if (traits_type::eq(_M_data()[__xpos], __c))=0A=
               return __xpos;=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_first_of(const _CharT* __s, size_type __pos, size_type __n) =
 const=0A=
     {=0A=
       for (; __n && __pos < this->size(); ++__pos)=0A=
         {=0A=
           const _CharT* __p =3D traits_type::find(__s, __n, =
 _M_data()[__pos]);=0A=
           if (__p)=0A=
             return __pos;=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__size && __n)=0A=
         {=0A=
           if (--__size > __pos)=0A=
             __size =3D __pos;=0A=
           do=0A=
             {=0A=
               if (traits_type::find(__s, __n, _M_data()[__size]))=0A=
                 return __size;=0A=
             }=0A=
           while (__size-- !=3D 0);=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) =
 const=0A=
     {=0A=
       size_t __xpos =3D __pos;=0A=
       for (; __xpos < this->size(); ++__xpos)=0A=
         if (!traits_type::find(__s, __n, _M_data()[__xpos]))=0A=
           return __xpos;=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_first_not_of(_CharT __c, size_type __pos) const=0A=
     {=0A=
       size_t __xpos =3D __pos;=0A=
       for (; __xpos < this->size(); ++__xpos)=0A=
         if (!traits_type::eq(_M_data()[__xpos], __c))=0A=
           return __xpos;=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) =
 const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__size)=0A=
         {=0A=
           if (--__size > __pos)=0A=
             __size =3D __pos;=0A=
           do=0A=
             {=0A=
               if (!traits_type::find(__s, __n, _M_data()[__size]))=0A=
                 return __size;=0A=
             }=0A=
           while (__size--);=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     find_last_not_of(_CharT __c, size_type __pos) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__size)=0A=
         {=0A=
           if (--__size > __pos)=0A=
             __size =3D __pos;=0A=
           do=0A=
             {=0A=
               if (!traits_type::eq(_M_data()[__size], __c))=0A=
                 return __size;=0A=
             }=0A=
           while (__size--);=0A=
         }=0A=
       return npos;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     int=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     compare(size_type __pos, size_type __n, const basic_string& __str) =
 const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       size_type __osize =3D __str.size();=0A=
       if (__pos > __size)=0A=
         __throw_out_of_range("basic_string::compare");=0A=
 =0A=
       size_type __rsize=3D min(__size - __pos, __n);=0A=
       size_type __len =3D min(__rsize, __osize);=0A=
       int __r =3D traits_type::compare(_M_data() + __pos, __str.data(), =
 __len);=0A=
       if (!__r)=0A=
         __r =3D __rsize - __osize;=0A=
       return __r;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     int=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     compare(size_type __pos1, size_type __n1, const basic_string& __str,=0A=
             size_type __pos2, size_type __n2) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       size_type __osize =3D __str.size();=0A=
       if (__pos1 > __size || __pos2 > __osize)=0A=
         __throw_out_of_range("basic_string::compare");=0A=
 =0A=
       size_type __rsize =3D min(__size - __pos1, __n1);=0A=
       size_type __rosize =3D min(__osize - __pos2, __n2);=0A=
       size_type __len =3D min(__rsize, __rosize);=0A=
       int __r =3D traits_type::compare(_M_data() + __pos1,=0A=
                                      __str.data() + __pos2, __len);=0A=
       if (!__r)=0A=
         __r =3D __rsize - __rosize;=0A=
       return __r;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     int=0A=
     basic_string<_CharT, _Traits, _Alloc>::=0A=
     compare(const _CharT* __s) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       int __r =3D traits_type::compare(_M_data(), __s, __size);=0A=
       if (!__r)=0A=
         __r =3D __size - traits_type::length(__s);=0A=
       return __r;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     int=0A=
     basic_string <_CharT, _Traits, _Alloc>::=0A=
     compare(size_type __pos, size_type __n1, const _CharT* __s) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__pos > __size)=0A=
         __throw_out_of_range("basic_string::compare");=0A=
 =0A=
       size_type __osize =3D traits_type::length(__s);=0A=
       size_type __rsize =3D min(__size - __pos, __n1);=0A=
       size_type __len =3D min(__rsize, __osize);=0A=
       int __r =3D traits_type::compare(_M_data() + __pos, __s, __len);=0A=
       if (!__r)=0A=
         __r =3D __rsize - __osize;=0A=
       return __r;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     int=0A=
     basic_string <_CharT, _Traits, _Alloc>::=0A=
     compare(size_type __pos, size_type __n1, const _CharT* __s,=0A=
             size_type __n2) const=0A=
     {=0A=
       size_type __size =3D this->size();=0A=
       if (__pos > __size)=0A=
         __throw_out_of_range("basic_string::compare");=0A=
 =0A=
       size_type __osize =3D min(traits_type::length(__s), __n2);=0A=
       size_type __rsize =3D min(__size - __pos, __n1);=0A=
       size_type __len =3D min(__rsize, __osize);=0A=
       int __r =3D traits_type::compare(_M_data() + __pos, __s, __len);=0A=
       if (!__r)=0A=
         __r =3D __rsize - __osize;=0A=
       return __r;=0A=
     }=0A=
 =0A=
   template <class _CharT, class _Traits, class _Alloc>=0A=
     void=0A=
     _S_string_copy(const basic_string<_CharT, _Traits, _Alloc>& __str,=0A=
                    _CharT* __buf, typename _Alloc::size_type __bufsiz)=0A=
     {=0A=
       typedef typename _Alloc::size_type size_type;=0A=
       size_type __strsize =3D __str.size();=0A=
       size_type __bytes =3D min(__strsize, __bufsiz - 1);=0A=
       _Traits::copy(__buf, __str.data(), __bytes);=0A=
       __buf[__bytes] =3D _CharT();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class basic_string<char>;=0A=
   extern template=0A=
     basic_istream<char>&=0A=
     operator>>(basic_istream<char>&, string&);=0A=
   extern template=0A=
     basic_ostream<char>&=0A=
     operator<<(basic_ostream<char>&, const string&);=0A=
   extern template=0A=
     basic_istream<char>&=0A=
     getline(basic_istream<char>&, string&, char);=0A=
   extern template=0A=
     basic_istream<char>&=0A=
     getline(basic_istream<char>&, string&);=0A=
 =0A=
   extern template class basic_string<wchar_t>;=0A=
   extern template=0A=
     basic_istream<wchar_t>&=0A=
     operator>>(basic_istream<wchar_t>&, wstring&);=0A=
   extern template=0A=
     basic_ostream<wchar_t>&=0A=
     operator<<(basic_ostream<wchar_t>&, const wstring&);=0A=
   extern template=0A=
     basic_istream<wchar_t>&=0A=
     getline(basic_istream<wchar_t>&, wstring&, wchar_t);=0A=
   extern template=0A=
     basic_istream<wchar_t>&=0A=
     getline(basic_istream<wchar_t>&, wstring&);=0A=
 }=0A=
 # 58 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A=
 # 50 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   void=0A=
   __throw_bad_exception(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_alloc(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_cast(void);=0A=
 =0A=
   void=0A=
   __throw_bad_typeid(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_logic_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_domain_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_invalid_argument(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_length_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_out_of_range(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_runtime_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_range_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_overflow_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_underflow_error(const char* __s);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_ios_failure(const char* __s);=0A=
 }=0A=
 # 51 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   class locale;=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isspace(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isprint(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     iscntrl(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isupper(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     islower(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isalpha(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isdigit(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     ispunct(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isxdigit(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isalnum(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isgraph(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline _CharT=0A=
     toupper(_CharT, const locale&);=0A=
 =0A=
   template<typename _CharT>=0A=
     inline _CharT=0A=
     tolower(_CharT, const locale&);=0A=
 =0A=
 =0A=
 =0A=
   class ctype_base;=0A=
   template<typename _CharT>=0A=
     class ctype;=0A=
   template<> class ctype<char>;=0A=
 =0A=
   template<> class ctype<wchar_t>;=0A=
 =0A=
   template<typename _CharT>=0A=
     class ctype_byname;=0A=
 =0A=
 =0A=
   class codecvt_base;=0A=
   class __enc_traits;=0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     class codecvt;=0A=
   template<> class codecvt<char, char, mbstate_t>;=0A=
 =0A=
   template<> class codecvt<wchar_t, char, mbstate_t>;=0A=
 =0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     class codecvt_byname;=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter =3D =
 istreambuf_iterator<_CharT> >=0A=
     class num_get;=0A=
   template<typename _CharT, typename _OutIter =3D =
 ostreambuf_iterator<_CharT> >=0A=
     class num_put;=0A=
   template<typename _CharT> class numpunct;=0A=
   template<typename _CharT> class numpunct_byname;=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class collate;=0A=
   template<typename _CharT> class=0A=
     collate_byname;=0A=
 =0A=
 =0A=
   class time_base;=0A=
   template<typename _CharT, typename _InIter =3D =
 istreambuf_iterator<_CharT> >=0A=
     class time_get;=0A=
   template<typename _CharT, typename _InIter =3D =
 istreambuf_iterator<_CharT> >=0A=
     class time_get_byname;=0A=
   template<typename _CharT, typename _OutIter =3D =
 ostreambuf_iterator<_CharT> >=0A=
     class time_put;=0A=
   template<typename _CharT, typename _OutIter =3D =
 ostreambuf_iterator<_CharT> >=0A=
     class time_put_byname;=0A=
 =0A=
 =0A=
   class money_base;=0A=
   template<typename _CharT, typename _InIter =3D =
 istreambuf_iterator<_CharT> >=0A=
     class money_get;=0A=
   template<typename _CharT, typename _OutIter =3D =
 ostreambuf_iterator<_CharT> >=0A=
     class money_put;=0A=
   template<typename _CharT, bool _Intl =3D false>=0A=
     class moneypunct;=0A=
   template<typename _CharT, bool _Intl =3D false>=0A=
     class moneypunct_byname;=0A=
 =0A=
 =0A=
   class messages_base;=0A=
   template<typename _CharT>=0A=
     class messages;=0A=
   template<typename _CharT>=0A=
     class messages_byname;=0A=
 =0A=
 =0A=
   class locale=0A=
   {=0A=
   public:=0A=
 =0A=
     typedef unsigned int category;=0A=
 =0A=
 =0A=
     class facet;=0A=
     class id;=0A=
     class _Impl;=0A=
 =0A=
     friend class facet;=0A=
     friend class _Impl;=0A=
 =0A=
     template<typename _Facet>=0A=
       friend const _Facet&=0A=
       use_facet(const locale&);=0A=
 =0A=
     template<typename _Facet>=0A=
       friend bool=0A=
       has_facet(const locale&) throw();=0A=
 =0A=
 =0A=
 =0A=
     static const category none =3D 0;=0A=
     static const category ctype =3D 1L << 0;=0A=
     static const category numeric =3D 1L << 1;=0A=
     static const category collate =3D 1L << 2;=0A=
     static const category time =3D 1L << 3;=0A=
     static const category monetary =3D 1L << 4;=0A=
     static const category messages =3D 1L << 5;=0A=
     static const category all =3D (collate | ctype | monetary |=0A=
                                            numeric | time | messages);=0A=
 =0A=
 =0A=
     locale() throw();=0A=
 =0A=
     locale(const locale& __other) throw();=0A=
 =0A=
     explicit=0A=
     locale(const char* __s);=0A=
 =0A=
     locale(const locale& __base, const char* __s, category __cat);=0A=
 =0A=
     locale(const locale& __base, const locale& __add, category __cat);=0A=
 =0A=
     template<typename _Facet>=0A=
       locale(const locale& __other, _Facet* __f);=0A=
 =0A=
     ~locale() throw();=0A=
 =0A=
     const locale&=0A=
     operator=3D(const locale& __other) throw();=0A=
 =0A=
     template<typename _Facet>=0A=
       locale=0A=
       combine(const locale& __other) const;=0A=
 =0A=
 =0A=
     string=0A=
     name() const;=0A=
 =0A=
     bool=0A=
     operator=3D=3D(const locale& __other) const throw ();=0A=
 =0A=
     inline bool=0A=
     operator!=3D(const locale& __other) const throw ()=0A=
     { return !(this->operator=3D=3D(__other)); }=0A=
 =0A=
     template<typename _Char, typename _Traits, typename _Alloc>=0A=
       bool=0A=
       operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,=0A=
                  const basic_string<_Char, _Traits, _Alloc>& __s2) const;=0A=
 =0A=
 =0A=
     static locale=0A=
     global(const locale&);=0A=
 =0A=
     static const locale&=0A=
     classic();=0A=
 =0A=
   private:=0A=
 =0A=
     _Impl* _M_impl;=0A=
 =0A=
 =0A=
     static _Impl* _S_classic;=0A=
 =0A=
 =0A=
     static _Impl* _S_global;=0A=
 =0A=
     static const size_t _S_num_categories =3D 6;=0A=
 =0A=
     explicit=0A=
     locale(_Impl*) throw();=0A=
 =0A=
     static inline void=0A=
     _S_initialize()=0A=
     {=0A=
       if (!_S_classic)=0A=
         classic();=0A=
     }=0A=
 =0A=
     static category=0A=
     _S_normalize_category(category);=0A=
 =0A=
     void=0A=
     _M_coalesce(const locale& __base, const locale& __add, category =
 __cat);=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class locale::_Impl=0A=
   {=0A=
   public:=0A=
 =0A=
     friend class locale;=0A=
     friend class locale::facet;=0A=
 =0A=
     template<typename _Facet>=0A=
       friend const _Facet&=0A=
       use_facet(const locale&);=0A=
 =0A=
     template<typename _Facet>=0A=
       friend bool=0A=
       has_facet(const locale&) throw();=0A=
 =0A=
   private:=0A=
 =0A=
     _Atomic_word _M_references;=0A=
     facet** _M_facets;=0A=
     size_t _M_facets_size;=0A=
     const char* _M_names[_S_num_categories];=0A=
     static const locale::id* const _S_id_ctype[];=0A=
     static const locale::id* const _S_id_numeric[];=0A=
     static const locale::id* const _S_id_collate[];=0A=
     static const locale::id* const _S_id_time[];=0A=
     static const locale::id* const _S_id_monetary[];=0A=
     static const locale::id* const _S_id_messages[];=0A=
     static const locale::id* const* const _S_facet_categories[];=0A=
 =0A=
     inline void=0A=
     _M_add_reference() throw()=0A=
     { __atomic_add(&_M_references, 1); }=0A=
 =0A=
     inline void=0A=
     _M_remove_reference() throw()=0A=
     {=0A=
       if (__exchange_and_add(&_M_references, -1) =3D=3D 1)=0A=
         {=0A=
           try=0A=
             { delete this; }=0A=
           catch(...)=0A=
             { }=0A=
         }=0A=
     }=0A=
 =0A=
     _Impl(const _Impl&, size_t);=0A=
     _Impl(const char*, size_t);=0A=
     _Impl(facet**, size_t, bool);=0A=
 =0A=
    ~_Impl() throw();=0A=
 =0A=
     _Impl(const _Impl&);=0A=
 =0A=
     void=0A=
     operator=3D(const _Impl&);=0A=
 =0A=
     inline bool=0A=
     _M_check_same_name()=0A=
     {=0A=
       bool __ret =3D true;=0A=
       for (size_t i =3D 0; __ret && i < _S_num_categories - 1; ++i)=0A=
         __ret &=3D (strcmp(_M_names[i], _M_names[i + 1]) =3D=3D 0);=0A=
       return __ret;=0A=
     }=0A=
 =0A=
     void=0A=
     _M_replace_categories(const _Impl*, category);=0A=
 =0A=
     void=0A=
     _M_replace_category(const _Impl*, const locale::id* const*);=0A=
 =0A=
     void=0A=
     _M_replace_facet(const _Impl*, const locale::id*);=0A=
 =0A=
     void=0A=
     _M_install_facet(const locale::id*, facet*);=0A=
 =0A=
     template<typename _Facet>=0A=
       inline void=0A=
       _M_init_facet(_Facet* __facet)=0A=
       { _M_install_facet(&_Facet::id, __facet); }=0A=
   };=0A=
 =0A=
   template<typename _Facet>=0A=
     locale::locale(const locale& __other, _Facet* __f)=0A=
     {=0A=
       _M_impl =3D new _Impl(*__other._M_impl, 1);=0A=
       _M_impl->_M_install_facet(&_Facet::id, __f);=0A=
       for (size_t __i =3D 0; __i < _S_num_categories; ++__i)=0A=
         _M_impl->_M_names[__i] =3D "*";=0A=
     }=0A=
 =0A=
 =0A=
   class locale::facet=0A=
   {=0A=
   private:=0A=
     friend class locale;=0A=
     friend class locale::_Impl;=0A=
 =0A=
     _Atomic_word _M_references;=0A=
 =0A=
   protected:=0A=
 =0A=
 =0A=
     static __c_locale _S_c_locale;=0A=
 =0A=
     explicit=0A=
     facet(size_t __refs =3D 0) throw();=0A=
 =0A=
     virtual=0A=
     ~facet();=0A=
 =0A=
     static void=0A=
     _S_create_c_locale(__c_locale& __cloc, const char* __s,=0A=
                        __c_locale __old =3D 0);=0A=
 =0A=
     static __c_locale=0A=
     _S_clone_c_locale(__c_locale& __cloc);=0A=
 =0A=
     static void=0A=
     _S_destroy_c_locale(__c_locale& __cloc);=0A=
 =0A=
   private:=0A=
     void=0A=
     _M_add_reference() throw();=0A=
 =0A=
     void=0A=
     _M_remove_reference() throw();=0A=
 =0A=
     facet(const facet&);=0A=
 =0A=
     void=0A=
     operator=3D(const facet&);=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class locale::id=0A=
   {=0A=
   private:=0A=
     friend class locale;=0A=
     friend class locale::_Impl;=0A=
     template<typename _Facet>=0A=
       friend const _Facet&=0A=
       use_facet(const locale&);=0A=
     template<typename _Facet>=0A=
       friend bool=0A=
       has_facet(const locale&) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     mutable size_t _M_index;=0A=
 =0A=
 =0A=
     static _Atomic_word _S_highwater;=0A=
 =0A=
     void=0A=
     operator=3D(const id&);=0A=
 =0A=
     id(const id&);=0A=
 =0A=
   public:=0A=
 =0A=
 =0A=
     id();=0A=
 =0A=
     inline size_t=0A=
     _M_id() const=0A=
     {=0A=
       if (!_M_index)=0A=
         _M_index =3D 1 + __exchange_and_add(&_S_highwater, 1);=0A=
       return _M_index - 1;=0A=
     }=0A=
   };=0A=
 =0A=
   template<typename _Facet>=0A=
     const _Facet&=0A=
     use_facet(const locale& __loc);=0A=
 =0A=
   template<typename _Facet>=0A=
     bool=0A=
     has_facet(const locale& __loc) throw();=0A=
 }=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 3=0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   enum _Ios_Fmtflags { _M_ios_fmtflags_end =3D 1L << 16 };=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A=
   { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A=
   { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A=
   { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator|=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A=
   { return __a =3D __a | __b; }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator&=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A=
   { return __a =3D __a & __b; }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator^=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A=
   { return __a =3D __a ^ __b; }=0A=
 =0A=
   inline _Ios_Fmtflags=0A=
   operator~(_Ios_Fmtflags __a)=0A=
   { return _Ios_Fmtflags(~static_cast<int>(__a)); }=0A=
 =0A=
 =0A=
   enum _Ios_Openmode { _M_ios_openmode_end =3D 1L << 16 };=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator&(_Ios_Openmode __a, _Ios_Openmode __b)=0A=
   { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator|(_Ios_Openmode __a, _Ios_Openmode __b)=0A=
   { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator^(_Ios_Openmode __a, _Ios_Openmode __b)=0A=
   { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); =
 }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator|=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A=
   { return __a =3D __a | __b; }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator&=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A=
   { return __a =3D __a & __b; }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator^=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A=
   { return __a =3D __a ^ __b; }=0A=
 =0A=
   inline _Ios_Openmode=0A=
   operator~(_Ios_Openmode __a)=0A=
   { return _Ios_Openmode(~static_cast<int>(__a)); }=0A=
 =0A=
 =0A=
   enum _Ios_Iostate { _M_ios_iostate_end =3D 1L << 16 };=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator&(_Ios_Iostate __a, _Ios_Iostate __b)=0A=
   { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator|(_Ios_Iostate __a, _Ios_Iostate __b)=0A=
   { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator^(_Ios_Iostate __a, _Ios_Iostate __b)=0A=
   { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator|=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A=
   { return __a =3D __a | __b; }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator&=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A=
   { return __a =3D __a & __b; }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator^=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A=
   { return __a =3D __a ^ __b; }=0A=
 =0A=
   inline _Ios_Iostate=0A=
   operator~(_Ios_Iostate __a)=0A=
   { return _Ios_Iostate(~static_cast<int>(__a)); }=0A=
 =0A=
   enum _Ios_Seekdir { _M_ios_seekdir_end =3D 1L << 16 };=0A=
 =0A=
 =0A=
   class ios_base=0A=
   {=0A=
   public:=0A=
 =0A=
 =0A=
     class failure : public exception=0A=
     {=0A=
     public:=0A=
 =0A=
 =0A=
       explicit=0A=
       failure(const string& __str) throw();=0A=
 =0A=
 =0A=
 =0A=
       virtual=0A=
       ~failure() throw();=0A=
 =0A=
       virtual const char*=0A=
       what() const throw();=0A=
 =0A=
     private:=0A=
       enum { _M_bufsize =3D 256 };=0A=
       char _M_name[_M_bufsize];=0A=
 =0A=
     };=0A=
 =0A=
 =0A=
     typedef _Ios_Fmtflags fmtflags;=0A=
 =0A=
     static const fmtflags boolalpha =3D =
 fmtflags(__ios_flags::_S_boolalpha);=0A=
     static const fmtflags dec =3D fmtflags(__ios_flags::_S_dec);=0A=
     static const fmtflags fixed =3D fmtflags(__ios_flags::_S_fixed);=0A=
     static const fmtflags hex =3D fmtflags(__ios_flags::_S_hex);=0A=
     static const fmtflags internal =3D =
 fmtflags(__ios_flags::_S_internal);=0A=
     static const fmtflags left =3D fmtflags(__ios_flags::_S_left);=0A=
     static const fmtflags oct =3D fmtflags(__ios_flags::_S_oct);=0A=
     static const fmtflags right =3D fmtflags(__ios_flags::_S_right);=0A=
     static const fmtflags scientific =3D =
 fmtflags(__ios_flags::_S_scientific);=0A=
     static const fmtflags showbase =3D =
 fmtflags(__ios_flags::_S_showbase);=0A=
     static const fmtflags showpoint =3D =
 fmtflags(__ios_flags::_S_showpoint);=0A=
     static const fmtflags showpos =3D fmtflags(__ios_flags::_S_showpos);=0A=
     static const fmtflags skipws =3D fmtflags(__ios_flags::_S_skipws);=0A=
     static const fmtflags unitbuf =3D fmtflags(__ios_flags::_S_unitbuf);=0A=
     static const fmtflags uppercase =3D =
 fmtflags(__ios_flags::_S_uppercase);=0A=
     static const fmtflags adjustfield =3D =
 fmtflags(__ios_flags::_S_adjustfield);=0A=
     static const fmtflags basefield =3D =
 fmtflags(__ios_flags::_S_basefield);=0A=
     static const fmtflags floatfield =3D =
 fmtflags(__ios_flags::_S_floatfield);=0A=
 =0A=
 =0A=
     typedef _Ios_Iostate iostate;=0A=
     static const iostate badbit =3D iostate(__ios_flags::_S_badbit);=0A=
     static const iostate eofbit =3D iostate(__ios_flags::_S_eofbit);=0A=
     static const iostate failbit =3D iostate(__ios_flags::_S_failbit);=0A=
     static const iostate goodbit =3D iostate(0);=0A=
 =0A=
 =0A=
     typedef _Ios_Openmode openmode;=0A=
     static const openmode app =3D openmode(__ios_flags::_S_app);=0A=
     static const openmode ate =3D openmode(__ios_flags::_S_ate);=0A=
     static const openmode binary =3D openmode(__ios_flags::_S_bin);=0A=
     static const openmode in =3D openmode(__ios_flags::_S_in);=0A=
     static const openmode out =3D openmode(__ios_flags::_S_out);=0A=
     static const openmode trunc =3D openmode(__ios_flags::_S_trunc);=0A=
 =0A=
 =0A=
     typedef _Ios_Seekdir seekdir;=0A=
     static const seekdir beg =3D seekdir(0);=0A=
     static const seekdir cur =3D seekdir(1);=0A=
     static const seekdir end =3D seekdir(2);=0A=
 # 226 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 3=0A=
     enum event=0A=
     {=0A=
       erase_event,=0A=
       imbue_event,=0A=
       copyfmt_event=0A=
     };=0A=
 =0A=
     typedef void (*event_callback) (event, ios_base&, int);=0A=
 =0A=
     void=0A=
     register_callback(event_callback __fn, int __index);=0A=
 =0A=
   protected:=0A=
 =0A=
     streamsize _M_precision;=0A=
     streamsize _M_width;=0A=
     fmtflags _M_flags;=0A=
     iostate _M_exception;=0A=
     iostate _M_streambuf_state;=0A=
 =0A=
 =0A=
 =0A=
     struct _Callback_list=0A=
     {=0A=
 =0A=
       _Callback_list* _M_next;=0A=
       ios_base::event_callback _M_fn;=0A=
       int _M_index;=0A=
       _Atomic_word _M_refcount;=0A=
 =0A=
       _Callback_list(ios_base::event_callback __fn, int __index,=0A=
                      _Callback_list* __cb)=0A=
       : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }=0A=
 =0A=
       void=0A=
       _M_add_reference() { __atomic_add(&_M_refcount, 1); }=0A=
 =0A=
 =0A=
       int=0A=
       _M_remove_reference() { return __exchange_and_add(&_M_refcount, =
 -1); }=0A=
     };=0A=
 =0A=
      _Callback_list* _M_callbacks;=0A=
 =0A=
     void=0A=
     _M_call_callbacks(event __ev) throw();=0A=
 =0A=
     void=0A=
     _M_dispose_callbacks(void);=0A=
 =0A=
 =0A=
     struct _Words=0A=
     {=0A=
       void* _M_pword;=0A=
       long _M_iword;=0A=
       _Words() : _M_pword(0), _M_iword(0) { }=0A=
     };=0A=
 =0A=
 =0A=
     _Words _M_word_zero;=0A=
 =0A=
 =0A=
     static const int _S_local_word_size =3D 8;=0A=
     _Words _M_local_word[_S_local_word_size];=0A=
 =0A=
 =0A=
     int _M_word_size;=0A=
     _Words* _M_word;=0A=
 =0A=
     _Words&=0A=
     _M_grow_words(int __index);=0A=
 =0A=
 =0A=
     locale _M_ios_locale;=0A=
 =0A=
     void=0A=
     _M_init();=0A=
 =0A=
   public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     class Init=0A=
     {=0A=
       friend class ios_base;=0A=
     public:=0A=
       Init();=0A=
       ~Init();=0A=
 =0A=
       static void=0A=
       _S_ios_create(bool __sync);=0A=
 =0A=
       static void=0A=
       _S_ios_destroy();=0A=
 =0A=
     private:=0A=
       static int _S_ios_base_init;=0A=
       static bool _S_synced_with_stdio;=0A=
     };=0A=
 =0A=
 =0A=
     inline fmtflags=0A=
     flags() const { return _M_flags; }=0A=
 =0A=
     inline fmtflags=0A=
     flags(fmtflags __fmtfl)=0A=
     {=0A=
       fmtflags __old =3D _M_flags;=0A=
       _M_flags =3D __fmtfl;=0A=
       return __old;=0A=
     }=0A=
 =0A=
     inline fmtflags=0A=
     setf(fmtflags __fmtfl)=0A=
     {=0A=
       fmtflags __old =3D _M_flags;=0A=
       _M_flags |=3D __fmtfl;=0A=
       return __old;=0A=
     }=0A=
 =0A=
     inline fmtflags=0A=
     setf(fmtflags __fmtfl, fmtflags __mask)=0A=
     {=0A=
       fmtflags __old =3D _M_flags;=0A=
       _M_flags &=3D ~__mask;=0A=
       _M_flags |=3D (__fmtfl & __mask);=0A=
       return __old;=0A=
     }=0A=
 =0A=
     inline void=0A=
     unsetf(fmtflags __mask) { _M_flags &=3D ~__mask; }=0A=
 =0A=
     inline streamsize=0A=
     precision() const { return _M_precision; }=0A=
 =0A=
     inline streamsize=0A=
     precision(streamsize __prec)=0A=
     {=0A=
       streamsize __old =3D _M_precision;=0A=
       _M_precision =3D __prec;=0A=
       return __old;=0A=
     }=0A=
 =0A=
     inline streamsize=0A=
     width() const { return _M_width; }=0A=
 =0A=
     inline streamsize=0A=
     width(streamsize __wide)=0A=
     {=0A=
       streamsize __old =3D _M_width;=0A=
       _M_width =3D __wide;=0A=
       return __old;=0A=
     }=0A=
 =0A=
     static bool=0A=
     sync_with_stdio(bool __sync =3D true);=0A=
 =0A=
 =0A=
     locale=0A=
     imbue(const locale& __loc);=0A=
 =0A=
     inline locale=0A=
     getloc() const { return _M_ios_locale; }=0A=
 =0A=
 =0A=
     static int=0A=
     xalloc() throw();=0A=
 =0A=
     inline long&=0A=
     iword(int __ix)=0A=
     {=0A=
       _Words& __word =3D (__ix < _M_word_size)=0A=
                         ? _M_word[__ix] : _M_grow_words(__ix);=0A=
       return __word._M_iword;=0A=
     }=0A=
 =0A=
     inline void*&=0A=
     pword(int __ix)=0A=
     {=0A=
       _Words& __word =3D (__ix < _M_word_size)=0A=
                         ? _M_word[__ix] : _M_grow_words(__ix);=0A=
       return __word._M_pword;=0A=
     }=0A=
 =0A=
 =0A=
     ~ios_base();=0A=
 =0A=
   protected:=0A=
     ios_base();=0A=
 =0A=
 =0A=
 =0A=
   private:=0A=
     ios_base(const ios_base&);=0A=
 =0A=
     ios_base&=0A=
     operator=3D(const ios_base&);=0A=
 =0A=
   };=0A=
 =0A=
 =0A=
   inline ios_base&=0A=
   boolalpha(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::boolalpha);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   noboolalpha(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::boolalpha);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   showbase(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::showbase);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   noshowbase(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::showbase);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   showpoint(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::showpoint);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   noshowpoint(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::showpoint);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   showpos(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::showpos);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   noshowpos(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::showpos);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   skipws(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::skipws);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   noskipws(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::skipws);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   uppercase(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::uppercase);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   nouppercase(ios_base& __base)=0A=
   {=0A=
     __base.unsetf(ios_base::uppercase);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   unitbuf(ios_base& __base)=0A=
   {=0A=
      __base.setf(ios_base::unitbuf);=0A=
      return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   nounitbuf(ios_base& __base)=0A=
   {=0A=
      __base.unsetf(ios_base::unitbuf);=0A=
      return __base;=0A=
   }=0A=
 =0A=
 =0A=
   inline ios_base&=0A=
   internal(ios_base& __base)=0A=
   {=0A=
      __base.setf(ios_base::internal, ios_base::adjustfield);=0A=
      return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   left(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::left, ios_base::adjustfield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   right(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::right, ios_base::adjustfield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
 =0A=
   inline ios_base&=0A=
   dec(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::dec, ios_base::basefield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   hex(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::hex, ios_base::basefield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   oct(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::oct, ios_base::basefield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
 =0A=
   inline ios_base&=0A=
   fixed(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::fixed, ios_base::floatfield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
   inline ios_base&=0A=
   scientific(ios_base& __base)=0A=
   {=0A=
     __base.setf(ios_base::scientific, ios_base::floatfield);=0A=
     return __base;=0A=
   }=0A=
 =0A=
 }=0A=
 # 50 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/streambuf" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits>=0A=
     streamsize=0A=
     __copy_streambufs(basic_ios<_CharT, _Traits>& _ios,=0A=
                       basic_streambuf<_CharT, _Traits>* __sbin,=0A=
                       basic_streambuf<_CharT, _Traits>* __sbout);=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_streambuf=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef typename traits_type::int_type int_type;=0A=
       typedef typename traits_type::pos_type pos_type;=0A=
       typedef typename traits_type::off_type off_type;=0A=
 =0A=
 =0A=
       typedef ctype<char_type> __ctype_type;=0A=
       typedef basic_streambuf<char_type, traits_type> __streambuf_type;=0A=
 =0A=
       friend class basic_ios<char_type, traits_type>;=0A=
       friend class basic_istream<char_type, traits_type>;=0A=
       friend class basic_ostream<char_type, traits_type>;=0A=
       friend class istreambuf_iterator<char_type, traits_type>;=0A=
       friend class ostreambuf_iterator<char_type, traits_type>;=0A=
 =0A=
       friend streamsize=0A=
       __copy_streambufs<>(basic_ios<char_type, traits_type>& __ios,=0A=
                           __streambuf_type* __sbin,__streambuf_type* =
 __sbout);=0A=
 =0A=
     protected:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       char_type* _M_buf;=0A=
 =0A=
 =0A=
       int_type _M_buf_size;=0A=
 =0A=
 =0A=
       int_type _M_buf_size_opt;=0A=
 =0A=
 =0A=
 =0A=
       bool _M_buf_unified;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       char_type* _M_in_beg;=0A=
       char_type* _M_in_cur;=0A=
       char_type* _M_in_end;=0A=
       char_type* _M_out_beg;=0A=
       char_type* _M_out_cur;=0A=
       char_type* _M_out_end;=0A=
 =0A=
 =0A=
       ios_base::openmode _M_mode;=0A=
 =0A=
 =0A=
       locale _M_buf_locale;=0A=
 =0A=
 =0A=
       bool _M_buf_locale_init;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       static const int_type _S_pback_size =3D 1;=0A=
       char_type _M_pback[_S_pback_size];=0A=
       char_type* _M_pback_cur_save;=0A=
       char_type* _M_pback_end_save;=0A=
       bool _M_pback_init;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       void=0A=
       _M_pback_create()=0A=
       {=0A=
         if (!_M_pback_init)=0A=
           {=0A=
             int_type __dist =3D _M_in_end - _M_in_cur;=0A=
             int_type __len =3D min(_S_pback_size, __dist);=0A=
             traits_type::copy(_M_pback, _M_in_cur, __len);=0A=
             _M_pback_cur_save =3D _M_in_cur;=0A=
             _M_pback_end_save =3D _M_in_end;=0A=
             this->setg(_M_pback, _M_pback, _M_pback + __len);=0A=
             _M_pback_init =3D true;=0A=
           }=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       void=0A=
       _M_pback_destroy()=0A=
       {=0A=
         if (_M_pback_init)=0A=
           {=0A=
 =0A=
             int_type __off_cur =3D _M_in_cur - _M_pback;=0A=
 =0A=
 =0A=
             int_type __off_end =3D 0;=0A=
             int_type __pback_len =3D _M_in_end - _M_pback;=0A=
             int_type __save_len =3D _M_pback_end_save - _M_buf;=0A=
             if (__pback_len > __save_len)=0A=
               __off_end =3D __pback_len - __save_len;=0A=
 =0A=
             this->setg(_M_buf, _M_pback_cur_save + __off_cur,=0A=
                        _M_pback_end_save + __off_end);=0A=
             _M_pback_cur_save =3D __null;=0A=
             _M_pback_end_save =3D __null;=0A=
             _M_pback_init =3D false;=0A=
           }=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
       void=0A=
       _M_in_cur_move(off_type __n)=0A=
       {=0A=
         bool __testout =3D _M_out_cur;=0A=
         _M_in_cur +=3D __n;=0A=
         if (__testout && _M_buf_unified)=0A=
           _M_out_cur +=3D __n;=0A=
       }=0A=
 # 198 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A=
       void=0A=
       _M_out_cur_move(off_type __n)=0A=
       {=0A=
         bool __testin =3D _M_in_cur;=0A=
 =0A=
         _M_out_cur +=3D __n;=0A=
         if (__testin && _M_buf_unified)=0A=
           _M_in_cur +=3D __n;=0A=
         if (_M_out_cur > _M_out_end)=0A=
           {=0A=
             _M_out_end =3D _M_out_cur;=0A=
 =0A=
             if (__testin)=0A=
               _M_in_end +=3D __n;=0A=
           }=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       off_type=0A=
       _M_out_buf_size()=0A=
       {=0A=
         off_type __ret =3D 0;=0A=
         if (_M_out_cur)=0A=
           {=0A=
 =0A=
             if (_M_out_beg =3D=3D _M_buf)=0A=
               __ret =3D _M_out_beg + _M_buf_size - _M_out_cur;=0A=
 =0A=
             else=0A=
               __ret =3D _M_out_end - _M_out_cur;=0A=
           }=0A=
         return __ret;=0A=
       }=0A=
 =0A=
   public:=0A=
       virtual=0A=
       ~basic_streambuf()=0A=
       {=0A=
         _M_buf_unified =3D false;=0A=
         _M_buf_size =3D 0;=0A=
         _M_buf_size_opt =3D 0;=0A=
         _M_mode =3D ios_base::openmode(0);=0A=
         _M_buf_locale_init =3D false;=0A=
       }=0A=
 =0A=
 =0A=
       locale=0A=
       pubimbue(const locale &__loc)=0A=
       {=0A=
         locale __tmp(this->getloc());=0A=
         this->imbue(__loc);=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
       locale=0A=
       getloc() const=0A=
       {=0A=
         if (_M_buf_locale_init)=0A=
           return _M_buf_locale;=0A=
         else=0A=
           return locale();=0A=
       }=0A=
 =0A=
 =0A=
       __streambuf_type*=0A=
       pubsetbuf(char_type* __s, streamsize __n)=0A=
       { return this->setbuf(__s, __n); }=0A=
 =0A=
       pos_type=0A=
       pubseekoff(off_type __off, ios_base::seekdir __way,=0A=
                  ios_base::openmode __mode =3D ios_base::in | =
 ios_base::out)=0A=
       { return this->seekoff(__off, __way, __mode); }=0A=
 =0A=
       pos_type=0A=
       pubseekpos(pos_type __sp,=0A=
                  ios_base::openmode __mode =3D ios_base::in | =
 ios_base::out)=0A=
       { return this->seekpos(__sp, __mode); }=0A=
 =0A=
       int=0A=
       pubsync() { return this->sync(); }=0A=
 =0A=
 =0A=
 =0A=
       streamsize=0A=
       in_avail()=0A=
       {=0A=
         streamsize __ret;=0A=
         if (_M_in_cur && _M_in_cur < _M_in_end)=0A=
           {=0A=
             if (_M_pback_init)=0A=
               {=0A=
                 int_type __save_len =3D _M_pback_end_save - =
 _M_pback_cur_save;=0A=
                 int_type __pback_len =3D _M_in_cur - _M_pback;=0A=
                 __ret =3D __save_len - __pback_len;=0A=
               }=0A=
             else=0A=
               __ret =3D this->egptr() - this->gptr();=0A=
           }=0A=
         else=0A=
           __ret =3D this->showmanyc();=0A=
         return __ret;=0A=
       }=0A=
 =0A=
       int_type=0A=
       snextc()=0A=
       {=0A=
         int_type __eof =3D traits_type::eof();=0A=
         return (this->sbumpc() =3D=3D __eof ? __eof : this->sgetc());=0A=
       }=0A=
 =0A=
       int_type=0A=
       sbumpc();=0A=
 =0A=
       int_type=0A=
       sgetc()=0A=
       {=0A=
         int_type __ret;=0A=
         if (_M_in_cur && _M_in_cur < _M_in_end)=0A=
           __ret =3D traits_type::to_int_type(*(this->gptr()));=0A=
         else=0A=
           __ret =3D this->underflow();=0A=
         return __ret;=0A=
       }=0A=
 =0A=
       streamsize=0A=
       sgetn(char_type* __s, streamsize __n)=0A=
       { return this->xsgetn(__s, __n); }=0A=
 =0A=
 =0A=
       int_type=0A=
       sputbackc(char_type __c);=0A=
 =0A=
       int_type=0A=
       sungetc();=0A=
 =0A=
 =0A=
       int_type=0A=
       sputc(char_type __c);=0A=
 =0A=
       streamsize=0A=
       sputn(const char_type* __s, streamsize __n)=0A=
       { return this->xsputn(__s, __n); }=0A=
 =0A=
     protected:=0A=
       basic_streambuf()=0A=
       : _M_buf(__null), _M_buf_size(0),=0A=
       _M_buf_size_opt(static_cast<int_type>(8192)), =
 _M_buf_unified(false),=0A=
       _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), =
 _M_out_cur(0),=0A=
       _M_out_end(0), _M_mode(ios_base::openmode(0)), =
 _M_buf_locale(locale()),=0A=
       _M_buf_locale_init(false), _M_pback_cur_save(0), =
 _M_pback_end_save(0),=0A=
       _M_pback_init(false)=0A=
       { }=0A=
 =0A=
 =0A=
       char_type*=0A=
       eback() const { return _M_in_beg; }=0A=
 =0A=
       char_type*=0A=
       gptr() const { return _M_in_cur; }=0A=
 =0A=
       char_type*=0A=
       egptr() const { return _M_in_end; }=0A=
 =0A=
       void=0A=
       gbump(int __n) { _M_in_cur +=3D __n; }=0A=
 =0A=
       void=0A=
       setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)=0A=
       {=0A=
         _M_in_beg =3D __gbeg;=0A=
         _M_in_cur =3D __gnext;=0A=
         _M_in_end =3D __gend;=0A=
         if (!(_M_mode & ios_base::in) && __gbeg && __gnext && __gend)=0A=
           _M_mode =3D _M_mode | ios_base::in;=0A=
       }=0A=
 =0A=
 =0A=
       char_type*=0A=
       pbase() const { return _M_out_beg; }=0A=
 =0A=
       char_type*=0A=
       pptr() const { return _M_out_cur; }=0A=
 =0A=
       char_type*=0A=
       epptr() const { return _M_out_end; }=0A=
 =0A=
       void=0A=
       pbump(int __n) { _M_out_cur +=3D __n; }=0A=
 =0A=
       void=0A=
       setp(char_type* __pbeg, char_type* __pend)=0A=
       {=0A=
         _M_out_beg =3D _M_out_cur =3D __pbeg;=0A=
         _M_out_end =3D __pend;=0A=
         if (!(_M_mode & ios_base::out) && __pbeg && __pend)=0A=
           _M_mode =3D _M_mode | ios_base::out;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
       virtual void=0A=
       imbue(const locale& __loc)=0A=
       {=0A=
         _M_buf_locale_init =3D true;=0A=
         if (_M_buf_locale !=3D __loc)=0A=
           _M_buf_locale =3D __loc;=0A=
       }=0A=
 =0A=
 =0A=
       virtual basic_streambuf<char_type,_Traits>*=0A=
       setbuf(char_type*, streamsize)=0A=
       { return this; }=0A=
 =0A=
       virtual pos_type=0A=
       seekoff(off_type, ios_base::seekdir,=0A=
               ios_base::openmode =3D ios_base::in | ios_base::out)=0A=
       { return pos_type(off_type(-1)); }=0A=
 =0A=
       virtual pos_type=0A=
       seekpos(pos_type,=0A=
               ios_base::openmode =3D ios_base::in | ios_base::out)=0A=
       { return pos_type(off_type(-1)); }=0A=
 =0A=
       virtual int=0A=
       sync() { return 0; }=0A=
 =0A=
 =0A=
       virtual streamsize=0A=
       showmanyc() { return 0; }=0A=
 =0A=
       virtual streamsize=0A=
       xsgetn(char_type* __s, streamsize __n);=0A=
 =0A=
       virtual int_type=0A=
       underflow()=0A=
       { return traits_type::eof(); }=0A=
 =0A=
       virtual int_type=0A=
       uflow()=0A=
       {=0A=
         int_type __ret =3D traits_type::eof();=0A=
         bool __testeof =3D this->underflow() =3D=3D __ret;=0A=
         bool __testpending =3D _M_in_cur && _M_in_cur < _M_in_end;=0A=
         if (!__testeof && __testpending)=0A=
           {=0A=
             __ret =3D traits_type::to_int_type(*_M_in_cur);=0A=
             ++_M_in_cur;=0A=
             if (_M_buf_unified && _M_mode & ios_base::out)=0A=
               ++_M_out_cur;=0A=
           }=0A=
         return __ret;=0A=
       }=0A=
 =0A=
 =0A=
       virtual int_type=0A=
       pbackfail(int_type =3D traits_type::eof())=0A=
       { return traits_type::eof(); }=0A=
 =0A=
 =0A=
       virtual streamsize=0A=
       xsputn(const char_type* __s, streamsize __n);=0A=
 =0A=
       virtual int_type=0A=
       overflow(int_type =3D traits_type::eof())=0A=
       { return traits_type::eof(); }=0A=
 # 480 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A=
     private:=0A=
       basic_streambuf(const __streambuf_type&) { };=0A=
 =0A=
       __streambuf_type&=0A=
       operator=3D(const __streambuf_type&) { return *this; };=0A=
 =0A=
     };=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf.tcc" 1 3=0A=
 # 39 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf.tcc" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits>=0A=
     const typename basic_streambuf<_CharT, _Traits>::int_type=0A=
     basic_streambuf<_CharT, _Traits>::_S_pback_size;=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_streambuf<_CharT, _Traits>::int_type=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     sbumpc()=0A=
     {=0A=
       int_type __ret;=0A=
       if (_M_in_cur && _M_in_cur < _M_in_end)=0A=
         {=0A=
           char_type __c =3D *(this->gptr());=0A=
           _M_in_cur_move(1);=0A=
           __ret =3D traits_type::to_int_type(__c);=0A=
         }=0A=
       else=0A=
         __ret =3D this->uflow();=0A=
       return __ret;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_streambuf<_CharT, _Traits>::int_type=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     sputbackc(char_type __c)=0A=
     {=0A=
       int_type __ret;=0A=
       bool __testpos =3D _M_in_cur && _M_in_beg < _M_in_cur;=0A=
       bool __testne =3D _M_in_cur && !traits_type::eq(__c, =
 this->gptr()[-1]);=0A=
       if (!__testpos || __testne)=0A=
         __ret =3D pbackfail(traits_type::to_int_type(__c));=0A=
       else=0A=
         {=0A=
           _M_in_cur_move(-1);=0A=
           __ret =3D traits_type::to_int_type(*this->gptr());=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_streambuf<_CharT, _Traits>::int_type=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     sungetc()=0A=
     {=0A=
       int_type __ret;=0A=
       if (_M_in_cur && _M_in_beg < _M_in_cur)=0A=
         {=0A=
           _M_in_cur_move(-1);=0A=
           __ret =3D traits_type::to_int_type(*_M_in_cur);=0A=
         }=0A=
       else=0A=
         __ret =3D this->pbackfail();=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_streambuf<_CharT, _Traits>::int_type=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     sputc(char_type __c)=0A=
     {=0A=
       int_type __ret;=0A=
       if (_M_out_buf_size())=0A=
         {=0A=
           *_M_out_cur =3D __c;=0A=
           _M_out_cur_move(1);=0A=
           __ret =3D traits_type::to_int_type(__c);=0A=
         }=0A=
       else=0A=
         __ret =3D this->overflow(traits_type::to_int_type(__c));=0A=
       return __ret;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     streamsize=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     xsgetn(char_type* __s, streamsize __n)=0A=
     {=0A=
       streamsize __ret =3D 0;=0A=
       while (__ret < __n)=0A=
         {=0A=
           size_t __buf_len =3D _M_in_end - _M_in_cur;=0A=
           if (__buf_len > 0)=0A=
             {=0A=
               size_t __remaining =3D __n - __ret;=0A=
               size_t __len =3D min(__buf_len, __remaining);=0A=
               traits_type::copy(__s, _M_in_cur, __len);=0A=
               __ret +=3D __len;=0A=
               __s +=3D __len;=0A=
               _M_in_cur_move(__len);=0A=
             }=0A=
 =0A=
           if (__ret < __n)=0A=
             {=0A=
               int_type __c =3D this->uflow();=0A=
               if (__c !=3D traits_type::eof())=0A=
                 {=0A=
                   traits_type::assign(*__s++, =
 traits_type::to_char_type(__c));=0A=
                   ++__ret;=0A=
                 }=0A=
               else=0A=
                 break;=0A=
             }=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     streamsize=0A=
     basic_streambuf<_CharT, _Traits>::=0A=
     xsputn(const char_type* __s, streamsize __n)=0A=
     {=0A=
       streamsize __ret =3D 0;=0A=
       while (__ret < __n)=0A=
         {=0A=
           off_type __buf_len =3D _M_out_buf_size();=0A=
           if (__buf_len > 0)=0A=
             {=0A=
               off_type __remaining =3D __n - __ret;=0A=
               off_type __len =3D min(__buf_len, __remaining);=0A=
               traits_type::copy(_M_out_cur, __s, __len);=0A=
               __ret +=3D __len;=0A=
               __s +=3D __len;=0A=
               _M_out_cur_move(__len);=0A=
             }=0A=
 =0A=
           if (__ret < __n)=0A=
             {=0A=
               int_type __c =3D =
 this->overflow(traits_type::to_int_type(*__s));=0A=
               if (__c !=3D traits_type::eof())=0A=
                 {=0A=
                   ++__ret;=0A=
                   ++__s;=0A=
                 }=0A=
               else=0A=
                 break;=0A=
             }=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     streamsize=0A=
     __copy_streambufs(basic_ios<_CharT, _Traits>& __ios,=0A=
                       basic_streambuf<_CharT, _Traits>* __sbin,=0A=
                       basic_streambuf<_CharT, _Traits>* __sbout)=0A=
   {=0A=
       typedef typename _Traits::int_type int_type;=0A=
 =0A=
       streamsize __ret =3D 0;=0A=
       streamsize __bufsize =3D __sbin->in_avail();=0A=
       streamsize __xtrct;=0A=
       bool __testput =3D __sbout->_M_mode & ios_base::out;=0A=
       try=0A=
         {=0A=
           while (__testput && __bufsize !=3D -1)=0A=
             {=0A=
               __xtrct =3D __sbout->sputn(__sbin->gptr(), __bufsize);=0A=
               __ret +=3D __xtrct;=0A=
               __sbin->_M_in_cur_move(__xtrct);=0A=
               if (__xtrct =3D=3D __bufsize)=0A=
                 {=0A=
                   if (__sbin->sgetc() =3D=3D _Traits::eof())=0A=
                     break;=0A=
                   __bufsize =3D __sbin->in_avail();=0A=
                 }=0A=
               else=0A=
                 break;=0A=
             }=0A=
         }=0A=
       catch(exception& __fail)=0A=
         {=0A=
           __ios.setstate(ios_base::failbit);=0A=
           if ((__ios.exceptions() & ios_base::failbit) !=3D 0)=0A=
             throw;=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class basic_streambuf<char>;=0A=
   extern template=0A=
     streamsize=0A=
     __copy_streambufs(basic_ios<char>&, basic_streambuf<char>*,=0A=
                       basic_streambuf<char>*);=0A=
 =0A=
   extern template class basic_streambuf<wchar_t>;=0A=
   extern template=0A=
     streamsize=0A=
     __copy_streambufs(basic_ios<wchar_t>&, basic_streambuf<wchar_t>*,=0A=
                       basic_streambuf<wchar_t>*);=0A=
 }=0A=
 # 494 "/usr/local/gcc3.1/include/g++-v3/streambuf" 2 3=0A=
 # 51 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 1 3=0A=
 # 39 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf_iterator.h" 1 3=0A=
 # 42 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf_iterator.h" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class istreambuf_iterator=0A=
     : public iterator<input_iterator_tag, _CharT, typename =
 _Traits::off_type,=0A=
                       _CharT*, _CharT&>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef typename _Traits::int_type int_type;=0A=
       typedef basic_streambuf<_CharT, _Traits> streambuf_type;=0A=
       typedef basic_istream<_CharT, _Traits> istream_type;=0A=
 =0A=
     private:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       mutable streambuf_type* _M_sbuf;=0A=
       int_type _M_c;=0A=
 =0A=
     public:=0A=
       istreambuf_iterator() throw()=0A=
       : _M_sbuf(0), _M_c(-2) { }=0A=
 =0A=
       istreambuf_iterator(istream_type& __s) throw()=0A=
       : _M_sbuf(__s.rdbuf()), _M_c(-2) { }=0A=
 =0A=
       istreambuf_iterator(streambuf_type* __s) throw()=0A=
       : _M_sbuf(__s), _M_c(-2) { }=0A=
 =0A=
 =0A=
       char_type=0A=
       operator*() const=0A=
       { return traits_type::to_char_type(_M_get()); }=0A=
 =0A=
       istreambuf_iterator&=0A=
       operator++()=0A=
       {=0A=
         if (_M_sbuf && _M_sbuf->sbumpc() =3D=3D traits_type::eof())=0A=
           _M_sbuf =3D 0;=0A=
         else=0A=
           _M_c =3D -2;=0A=
         return *this;=0A=
       }=0A=
 =0A=
       istreambuf_iterator=0A=
       operator++(int)=0A=
       {=0A=
         istreambuf_iterator __old =3D *this;=0A=
         if (_M_sbuf && (__old._M_c =3D _M_sbuf->sbumpc()) =3D=3D =
 traits_type::eof())=0A=
           _M_sbuf =3D 0;=0A=
         else=0A=
           _M_c =3D -2;=0A=
         return __old;=0A=
       }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       bool=0A=
       equal(const istreambuf_iterator& __b) const=0A=
       {=0A=
         const int_type __eof =3D traits_type::eof();=0A=
         bool __thiseof =3D _M_get() =3D=3D __eof;=0A=
         bool __beof =3D __b._M_get() =3D=3D __eof;=0A=
         return (__thiseof && __beof || (!__thiseof && !__beof));=0A=
       }=0A=
 =0A=
 =0A=
     private:=0A=
       int_type=0A=
       _M_get() const=0A=
       {=0A=
         int_type __ret =3D traits_type::eof();=0A=
         if (_M_sbuf)=0A=
           {=0A=
             if (_M_c !=3D static_cast<int_type>(-2))=0A=
               __ret =3D _M_c;=0A=
             else=0A=
               if ((__ret =3D _M_sbuf->sgetc()) =3D=3D traits_type::eof())=0A=
                 _M_sbuf =3D 0;=0A=
           }=0A=
         return __ret;=0A=
       }=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     inline bool=0A=
     operator=3D=3D(const istreambuf_iterator<_CharT, _Traits>& __a,=0A=
                const istreambuf_iterator<_CharT, _Traits>& __b)=0A=
     { return __a.equal(__b); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     inline bool=0A=
     operator!=3D(const istreambuf_iterator<_CharT, _Traits>& __a,=0A=
                const istreambuf_iterator<_CharT, _Traits>& __b)=0A=
     { return !__a.equal(__b); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class ostreambuf_iterator=0A=
     : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef basic_streambuf<_CharT, _Traits> streambuf_type;=0A=
       typedef basic_ostream<_CharT, _Traits> ostream_type;=0A=
 =0A=
     private:=0A=
       streambuf_type* _M_sbuf;=0A=
       bool _M_failed;=0A=
 =0A=
     public:=0A=
       inline=0A=
       ostreambuf_iterator(ostream_type& __s) throw ()=0A=
       : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }=0A=
 =0A=
       ostreambuf_iterator(streambuf_type* __s) throw ()=0A=
       : _M_sbuf(__s), _M_failed(!_M_sbuf) { }=0A=
 =0A=
       ostreambuf_iterator&=0A=
       operator=3D(_CharT __c);=0A=
 =0A=
       ostreambuf_iterator&=0A=
       operator*() throw()=0A=
       { return *this; }=0A=
 =0A=
       ostreambuf_iterator&=0A=
       operator++(int) throw()=0A=
       { return *this; }=0A=
 =0A=
       ostreambuf_iterator&=0A=
       operator++() throw()=0A=
       { return *this; }=0A=
 =0A=
       bool=0A=
       failed() const throw()=0A=
       { return _M_failed; }=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     inline ostreambuf_iterator<_CharT, _Traits>&=0A=
     ostreambuf_iterator<_CharT, _Traits>::operator=3D(_CharT __c)=0A=
     {=0A=
       if (!_M_failed &&=0A=
           _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))=0A=
         _M_failed =3D true;=0A=
       return *this;=0A=
     }=0A=
 }=0A=
 # 41 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 1 3=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cwctype" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cwctype" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/wctype.h" 1 3=0A=
 # 35 "/usr/include/wctype.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 36 "/usr/include/wctype.h" 2 3=0A=
 # 61 "/usr/include/wctype.h" 3=0A=
 typedef unsigned long int wctype_t;=0A=
 # 79 "/usr/include/wctype.h" 3=0A=
 enum=0A=
 {=0A=
   __ISwupper =3D 0,=0A=
   __ISwlower =3D 1,=0A=
   __ISwalpha =3D 2,=0A=
   __ISwdigit =3D 3,=0A=
   __ISwxdigit =3D 4,=0A=
   __ISwspace =3D 5,=0A=
   __ISwprint =3D 6,=0A=
   __ISwgraph =3D 7,=0A=
   __ISwblank =3D 8,=0A=
   __ISwcntrl =3D 9,=0A=
   __ISwpunct =3D 10,=0A=
   __ISwalnum =3D 11,=0A=
 =0A=
   _ISwupper =3D ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) =
 : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : =
 ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << =
 (__ISwupper)) >> 24)))),=0A=
   _ISwlower =3D ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) =
 : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : =
 ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << =
 (__ISwlower)) >> 24)))),=0A=
   _ISwalpha =3D ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) =
 : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : =
 ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << =
 (__ISwalpha)) >> 24)))),=0A=
   _ISwdigit =3D ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) =
 : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : =
 ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << =
 (__ISwdigit)) >> 24)))),=0A=
   _ISwxdigit =3D ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << =
 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : =
 ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL =
 << (__ISwxdigit)) >> 24)))),=0A=
   _ISwspace =3D ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) =
 : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : =
 ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << =
 (__ISwspace)) >> 24)))),=0A=
   _ISwprint =3D ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) =
 : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : =
 ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << =
 (__ISwprint)) >> 24)))),=0A=
   _ISwgraph =3D ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) =
 : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : =
 ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << =
 (__ISwgraph)) >> 24)))),=0A=
   _ISwblank =3D ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) =
 : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : =
 ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << =
 (__ISwblank)) >> 24)))),=0A=
   _ISwcntrl =3D ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) =
 : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : =
 ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << =
 (__ISwcntrl)) >> 24)))),=0A=
   _ISwpunct =3D ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) =
 : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : =
 ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << =
 (__ISwpunct)) >> 24)))),=0A=
   _ISwalnum =3D ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) =
 : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : =
 ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << =
 (__ISwalnum)) >> 24))))=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswalnum (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswalpha (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 extern int iswcntrl (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int iswdigit (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int iswgraph (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswlower (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 extern int iswprint (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswpunct (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswspace (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswupper (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswxdigit (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int iswblank (wint_t __wc) throw ();=0A=
 # 178 "/usr/include/wctype.h" 3=0A=
 extern wctype_t wctype (__const char *__property) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int iswctype (wint_t __wc, wctype_t __desc) throw ();=0A=
 # 249 "/usr/include/wctype.h" 3=0A=
 typedef __const __int32_t *wctrans_t;=0A=
 =0A=
 =0A=
 extern wint_t towlower (wint_t __wc) throw ();=0A=
 =0A=
 =0A=
 extern wint_t towupper (wint_t __wc) throw ();=0A=
 # 275 "/usr/include/wctype.h" 3=0A=
 }=0A=
 # 288 "/usr/include/wctype.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 extern wctrans_t wctrans (__const char *__property) throw ();=0A=
 =0A=
 =0A=
 extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswalnum_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswalpha_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 extern int __iswcntrl_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __iswdigit_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __iswgraph_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswlower_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 extern int __iswprint_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswpunct_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswspace_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswupper_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswxdigit_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __iswblank_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wctype_t __wctype_l (__const char *__property, __locale_t =
 __locale)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __iswctype_l (wint_t __wc, wctype_t __desc, __locale_t =
 __locale)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern wint_t __towlower_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 extern wint_t __towupper_l (wint_t __wc, __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern wctrans_t __wctrans_l (__const char *__property, __locale_t =
 __locale)=0A=
      throw ();=0A=
 =0A=
 =0A=
 extern wint_t __towctrans_l (wint_t __wc, wctrans_t __desc,=0A=
                              __locale_t __locale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/cwctype" 2 3=0A=
 # 77 "/usr/local/gcc3.1/include/g++-v3/cwctype" 3=0A=
 namespace std=0A=
 {=0A=
   using ::wint_t;=0A=
 =0A=
   using ::wctype_t;=0A=
   using ::wctrans_t;=0A=
 =0A=
   using ::iswalnum;=0A=
   using ::iswalpha;=0A=
   using ::iswblank;=0A=
   using ::iswcntrl;=0A=
   using ::iswdigit;=0A=
   using ::iswgraph;=0A=
   using ::iswlower;=0A=
   using ::iswprint;=0A=
   using ::iswprint;=0A=
   using ::iswpunct;=0A=
   using ::iswspace;=0A=
   using ::iswupper;=0A=
   using ::iswxdigit;=0A=
   using ::iswctype;=0A=
   using ::towlower;=0A=
   using ::towupper;=0A=
   using ::towctrans;=0A=
   using ::wctrans;=0A=
   using ::wctype;=0A=
 }=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/ios" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 60 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_base.h" 1 =
 3=0A=
 # 50 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_base.h" 3=0A=
   struct ctype_base=0A=
   {=0A=
 =0A=
     typedef const int* __to_type;=0A=
 =0A=
 =0A=
 =0A=
     typedef unsigned short mask;=0A=
     static const mask upper =3D _ISupper;=0A=
     static const mask lower =3D _ISlower;=0A=
     static const mask alpha =3D _ISalpha;=0A=
     static const mask digit =3D _ISdigit;=0A=
     static const mask xdigit =3D _ISxdigit;=0A=
     static const mask space =3D _ISspace;=0A=
     static const mask print =3D _ISprint;=0A=
     static const mask graph =3D _ISgraph;=0A=
     static const mask cntrl =3D _IScntrl;=0A=
     static const mask punct =3D _ISpunct;=0A=
     static const mask alnum =3D _ISalnum;=0A=
   };=0A=
 # 61 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class __ctype_abstract_base : public locale::facet, public ctype_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
 =0A=
       bool=0A=
       is(mask __m, char_type __c) const=0A=
       { return this->do_is(__m, __c); }=0A=
 =0A=
       const char_type*=0A=
       is(const char_type *__lo, const char_type *__hi, mask *__vec) const=0A=
       { return this->do_is(__lo, __hi, __vec); }=0A=
 =0A=
       const char_type*=0A=
       scan_is(mask __m, const char_type* __lo, const char_type* __hi) =
 const=0A=
       { return this->do_scan_is(__m, __lo, __hi); }=0A=
 =0A=
       const char_type*=0A=
       scan_not(mask __m, const char_type* __lo, const char_type* __hi) =
 const=0A=
       { return this->do_scan_not(__m, __lo, __hi); }=0A=
 =0A=
       char_type=0A=
       toupper(char_type __c) const=0A=
       { return this->do_toupper(__c); }=0A=
 =0A=
       const char_type*=0A=
       toupper(char_type *__lo, const char_type* __hi) const=0A=
       { return this->do_toupper(__lo, __hi); }=0A=
 =0A=
       char_type=0A=
       tolower(char_type __c) const=0A=
       { return this->do_tolower(__c); }=0A=
 =0A=
       const char_type*=0A=
       tolower(char_type* __lo, const char_type* __hi) const=0A=
       { return this->do_tolower(__lo, __hi); }=0A=
 =0A=
       char_type=0A=
       widen(char __c) const=0A=
       { return this->do_widen(__c); }=0A=
 =0A=
       const char*=0A=
       widen(const char* __lo, const char* __hi, char_type* __to) const=0A=
       { return this->do_widen(__lo, __hi, __to); }=0A=
 =0A=
       char=0A=
       narrow(char_type __c, char __dfault) const=0A=
       { return this->do_narrow(__c, __dfault); }=0A=
 =0A=
       const char_type*=0A=
       narrow(const char_type* __lo, const char_type* __hi,=0A=
               char __dfault, char *__to) const=0A=
       { return this->do_narrow(__lo, __hi, __dfault, __to); }=0A=
 =0A=
     protected:=0A=
       explicit=0A=
       __ctype_abstract_base(size_t __refs =3D 0): locale::facet(__refs) =
 { }=0A=
 =0A=
       virtual=0A=
       ~__ctype_abstract_base() { }=0A=
 =0A=
       virtual bool=0A=
       do_is(mask __m, char_type __c) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_is(const char_type* __lo, const char_type* __hi,=0A=
             mask* __vec) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_is(mask __m, const char_type* __lo,=0A=
                  const char_type* __hi) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_not(mask __m, const char_type* __lo,=0A=
                   const char_type* __hi) const =3D 0;=0A=
 =0A=
       virtual char_type=0A=
       do_toupper(char_type) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_toupper(char_type* __lo, const char_type* __hi) const =3D 0;=0A=
 =0A=
       virtual char_type=0A=
       do_tolower(char_type) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_tolower(char_type* __lo, const char_type* __hi) const =3D 0;=0A=
 =0A=
       virtual char_type=0A=
       do_widen(char) const =3D 0;=0A=
 =0A=
       virtual const char*=0A=
       do_widen(const char* __lo, const char* __hi,=0A=
                char_type* __dest) const =3D 0;=0A=
 =0A=
       virtual char=0A=
       do_narrow(char_type, char __dfault) const =3D 0;=0A=
 =0A=
       virtual const char_type*=0A=
       do_narrow(const char_type* __lo, const char_type* __hi,=0A=
                  char __dfault, char* __dest) const =3D 0;=0A=
     };=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class ctype : public __ctype_abstract_base<_CharT>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef typename ctype::mask mask;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       ctype(size_t __refs =3D 0) : __ctype_abstract_base<_CharT>(__refs) =
 { }=0A=
 =0A=
    protected:=0A=
       virtual=0A=
       ~ctype();=0A=
 =0A=
       virtual bool=0A=
       do_is(mask __m, char_type __c) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_not(mask __m, const char_type* __lo,=0A=
                   const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_toupper(char_type __c) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_toupper(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_tolower(char_type __c) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_tolower(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_widen(char __c) const;=0A=
 =0A=
       virtual const char*=0A=
       do_widen(const char* __lo, const char* __hi, char_type* __dest) =
 const;=0A=
 =0A=
       virtual char=0A=
       do_narrow(char_type, char __dfault) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_narrow(const char_type* __lo, const char_type* __hi,=0A=
                 char __dfault, char* __dest) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT>=0A=
     locale::id ctype<_CharT>::id;=0A=
 =0A=
 =0A=
   template<>=0A=
     class ctype<char> : public __ctype_abstract_base<char>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef char char_type;=0A=
 =0A=
     protected:=0A=
 =0A=
       __c_locale _M_c_locale_ctype;=0A=
       bool _M_del;=0A=
       __to_type _M_toupper;=0A=
       __to_type _M_tolower;=0A=
       const mask* _M_table;=0A=
 =0A=
     public:=0A=
       static locale::id id;=0A=
       static const size_t table_size =3D 1 + static_cast<unsigned =
 char>(-1);=0A=
 =0A=
       explicit=0A=
       ctype(const mask* __table =3D 0, bool __del =3D false, size_t =
 __refs =3D 0);=0A=
 =0A=
       explicit=0A=
       ctype(__c_locale __cloc, const mask* __table =3D 0, bool __del =3D =
 false,=0A=
             size_t __refs =3D 0);=0A=
 =0A=
       inline bool=0A=
       is(mask __m, char __c) const;=0A=
 =0A=
       inline const char*=0A=
       is(const char* __lo, const char* __hi, mask* __vec) const;=0A=
 =0A=
       inline const char*=0A=
       scan_is(mask __m, const char* __lo, const char* __hi) const;=0A=
 =0A=
       inline const char*=0A=
       scan_not(mask __m, const char* __lo, const char* __hi) const;=0A=
 =0A=
     protected:=0A=
       const mask*=0A=
       table() const throw()=0A=
       { return _M_table; }=0A=
 =0A=
       static const mask*=0A=
       classic_table() throw();=0A=
 =0A=
       virtual=0A=
       ~ctype();=0A=
 =0A=
       virtual bool=0A=
       do_is(mask __m, char_type __c) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_not(mask __m, const char_type* __lo,=0A=
                   const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_toupper(char_type) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_toupper(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_tolower(char_type) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_tolower(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_widen(char) const;=0A=
 =0A=
       virtual const char*=0A=
       do_widen(const char* __lo, const char* __hi, char_type* __dest) =
 const;=0A=
 =0A=
       virtual char=0A=
       do_narrow(char_type, char __dfault) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_narrow(const char_type* __lo, const char_type* __hi,=0A=
                 char __dfault, char* __dest) const;=0A=
     };=0A=
 =0A=
   template<>=0A=
     const ctype<char>&=0A=
     use_facet<ctype<char> >(const locale& __loc);=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     class ctype<wchar_t> : public __ctype_abstract_base<wchar_t>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef wchar_t char_type;=0A=
       typedef wctype_t __wmask_type;=0A=
 =0A=
     protected:=0A=
       __c_locale _M_c_locale_ctype;=0A=
 =0A=
     public:=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       ctype(size_t __refs =3D 0);=0A=
 =0A=
       explicit=0A=
       ctype(__c_locale __cloc, size_t __refs =3D 0);=0A=
 =0A=
     protected:=0A=
       __wmask_type=0A=
       _M_convert_to_wmask(const mask __m) const;=0A=
 =0A=
       virtual=0A=
       ~ctype();=0A=
 =0A=
       virtual bool=0A=
       do_is(mask __m, char_type __c) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) =
 const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_scan_not(mask __m, const char_type* __lo,=0A=
                   const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_toupper(char_type) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_toupper(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_tolower(char_type) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_tolower(char_type* __lo, const char_type* __hi) const;=0A=
 =0A=
       virtual char_type=0A=
       do_widen(char) const;=0A=
 =0A=
       virtual const char*=0A=
       do_widen(const char* __lo, const char* __hi, char_type* __dest) =
 const;=0A=
 =0A=
       virtual char=0A=
       do_narrow(char_type, char __dfault) const;=0A=
 =0A=
       virtual const char_type*=0A=
       do_narrow(const char_type* __lo, const char_type* __hi,=0A=
                 char __dfault, char* __dest) const;=0A=
 =0A=
     };=0A=
 =0A=
   template<>=0A=
     const ctype<wchar_t>&=0A=
     use_facet<ctype<wchar_t> >(const locale& __loc);=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" =
 1 3=0A=
 # 37 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" =
 3=0A=
   bool=0A=
   ctype<char>::=0A=
   is(mask __m, char __c) const=0A=
   { return _M_table[static_cast<unsigned char>(__c)] & __m; }=0A=
 =0A=
   const char*=0A=
   ctype<char>::=0A=
   is(const char* __low, const char* __high, mask* __vec) const=0A=
   {=0A=
     while (__low < __high)=0A=
       *__vec++ =3D _M_table[static_cast<unsigned char>(*__low++)];=0A=
     return __high;=0A=
   }=0A=
 =0A=
   const char*=0A=
   ctype<char>::=0A=
   scan_is(mask __m, const char* __low, const char* __high) const=0A=
   {=0A=
     while (__low < __high=0A=
            && !(_M_table[static_cast<unsigned char>(*__low)] & __m))=0A=
       ++__low;=0A=
     return __low;=0A=
   }=0A=
 =0A=
   const char*=0A=
   ctype<char>::=0A=
   scan_not(mask __m, const char* __low, const char* __high) const=0A=
   {=0A=
     while (__low < __high=0A=
            && (_M_table[static_cast<unsigned char>(*__low)] & __m) !=3D =
 0)=0A=
       ++__low;=0A=
     return __low;=0A=
   }=0A=
 # 398 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class ctype_byname : public ctype<_CharT>=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
 =0A=
       explicit=0A=
       ctype_byname(const char* __s, size_t __refs =3D 0);=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~ctype_byname() { };=0A=
     };=0A=
 =0A=
 =0A=
   template<>=0A=
     ctype_byname<char>::ctype_byname(const char*, size_t refs);=0A=
 =0A=
   template<>=0A=
     ctype_byname<wchar_t>::ctype_byname(const char*, size_t refs);=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 1 3=0A=
 # 45 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 3=0A=
 =0A=
 =0A=
   class codecvt_base=0A=
   {=0A=
   public:=0A=
     enum result=0A=
     {=0A=
       ok,=0A=
       partial,=0A=
       error,=0A=
       noconv=0A=
     };=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     class __codecvt_abstract_base=0A=
     : public locale::facet, public codecvt_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef codecvt_base::result result;=0A=
       typedef _InternT intern_type;=0A=
       typedef _ExternT extern_type;=0A=
       typedef _StateT state_type;=0A=
 =0A=
 =0A=
       result=0A=
       out(state_type& __state, const intern_type* __from,=0A=
           const intern_type* __from_end, const intern_type*& __from_next,=0A=
           extern_type* __to, extern_type* __to_end,=0A=
           extern_type*& __to_next) const=0A=
       {=0A=
         return this->do_out(__state, __from, __from_end, __from_next,=0A=
                             __to, __to_end, __to_next);=0A=
       }=0A=
 =0A=
       result=0A=
       unshift(state_type& __state, extern_type* __to, extern_type* =
 __to_end,=0A=
               extern_type*& __to_next) const=0A=
       { return this->do_unshift(__state, __to,__to_end,__to_next); }=0A=
 =0A=
       result=0A=
       in(state_type& __state, const extern_type* __from,=0A=
          const extern_type* __from_end, const extern_type*& __from_next,=0A=
          intern_type* __to, intern_type* __to_end,=0A=
          intern_type*& __to_next) const=0A=
       {=0A=
         return this->do_in(__state, __from, __from_end, __from_next,=0A=
                            __to, __to_end, __to_next);=0A=
       }=0A=
 =0A=
       int=0A=
       encoding() const throw()=0A=
       { return this->do_encoding(); }=0A=
 =0A=
       bool=0A=
       always_noconv() const throw()=0A=
       { return this->do_always_noconv(); }=0A=
 =0A=
       int=0A=
       length(const state_type& __state, const extern_type* __from,=0A=
              const extern_type* __end, size_t __max) const=0A=
       { return this->do_length(__state, __from, __end, __max); }=0A=
 =0A=
       int=0A=
       max_length() const throw()=0A=
       { return this->do_max_length(); }=0A=
 =0A=
     protected:=0A=
       explicit=0A=
       __codecvt_abstract_base(size_t __refs =3D 0) : =
 locale::facet(__refs) { }=0A=
 =0A=
       virtual=0A=
       ~__codecvt_abstract_base() { }=0A=
 =0A=
       virtual result=0A=
       do_out(state_type& __state, const intern_type* __from,=0A=
              const intern_type* __from_end, const intern_type*& =
 __from_next,=0A=
              extern_type* __to, extern_type* __to_end,=0A=
              extern_type*& __to_next) const =3D 0;=0A=
 =0A=
       virtual result=0A=
       do_unshift(state_type& __state, extern_type* __to,=0A=
                  extern_type* __to_end, extern_type*& __to_next) const =
 =3D 0;=0A=
 =0A=
       virtual result=0A=
       do_in(state_type& __state, const extern_type* __from,=0A=
             const extern_type* __from_end, const extern_type*& =
 __from_next,=0A=
             intern_type* __to, intern_type* __to_end,=0A=
             intern_type*& __to_next) const =3D 0;=0A=
 =0A=
       virtual int=0A=
       do_encoding() const throw() =3D 0;=0A=
 =0A=
       virtual bool=0A=
       do_always_noconv() const throw() =3D 0;=0A=
 =0A=
       virtual int=0A=
       do_length(const state_type&, const extern_type* __from,=0A=
                 const extern_type* __end, size_t __max) const =3D 0;=0A=
 =0A=
       virtual int=0A=
       do_max_length() const throw() =3D 0;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     class codecvt=0A=
     : public __codecvt_abstract_base<_InternT, _ExternT, _StateT>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef codecvt_base::result result;=0A=
       typedef _InternT intern_type;=0A=
       typedef _ExternT extern_type;=0A=
       typedef _StateT state_type;=0A=
 =0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       codecvt(size_t __refs =3D 0)=0A=
       : __codecvt_abstract_base<_InternT,_ExternT,_StateT> (__refs) { }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~codecvt() { }=0A=
 =0A=
       virtual result=0A=
       do_out(state_type& __state, const intern_type* __from,=0A=
              const intern_type* __from_end, const intern_type*& =
 __from_next,=0A=
              extern_type* __to, extern_type* __to_end,=0A=
              extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_unshift(state_type& __state, extern_type* __to,=0A=
                  extern_type* __to_end, extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_in(state_type& __state, const extern_type* __from,=0A=
             const extern_type* __from_end, const extern_type*& =
 __from_next,=0A=
             intern_type* __to, intern_type* __to_end,=0A=
             intern_type*& __to_next) const;=0A=
 =0A=
       virtual int=0A=
       do_encoding() const throw();=0A=
 =0A=
       virtual bool=0A=
       do_always_noconv() const throw();=0A=
 =0A=
       virtual int=0A=
       do_length(const state_type&, const extern_type* __from,=0A=
                 const extern_type* __end, size_t __max) const;=0A=
 =0A=
       virtual int=0A=
       do_max_length() const throw();=0A=
     };=0A=
 =0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     locale::id codecvt<_InternT, _ExternT, _StateT>::id;=0A=
 =0A=
 =0A=
   template<>=0A=
     class codecvt<char, char, mbstate_t>=0A=
     : public __codecvt_abstract_base<char, char, mbstate_t>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef char intern_type;=0A=
       typedef char extern_type;=0A=
       typedef mbstate_t state_type;=0A=
 =0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       codecvt(size_t __refs =3D 0);=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~codecvt();=0A=
 =0A=
       virtual result=0A=
       do_out(state_type& __state, const intern_type* __from,=0A=
              const intern_type* __from_end, const intern_type*& =
 __from_next,=0A=
              extern_type* __to, extern_type* __to_end,=0A=
              extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_unshift(state_type& __state, extern_type* __to,=0A=
                  extern_type* __to_end, extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_in(state_type& __state, const extern_type* __from,=0A=
             const extern_type* __from_end, const extern_type*& =
 __from_next,=0A=
             intern_type* __to, intern_type* __to_end,=0A=
             intern_type*& __to_next) const;=0A=
 =0A=
       virtual int=0A=
       do_encoding() const throw();=0A=
 =0A=
       virtual bool=0A=
       do_always_noconv() const throw();=0A=
 =0A=
       virtual int=0A=
       do_length(const state_type&, const extern_type* __from,=0A=
                 const extern_type* __end, size_t __max) const;=0A=
 =0A=
       virtual int=0A=
       do_max_length() const throw();=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     class codecvt<wchar_t, char, mbstate_t>=0A=
     : public __codecvt_abstract_base<wchar_t, char, mbstate_t>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef wchar_t intern_type;=0A=
       typedef char extern_type;=0A=
       typedef mbstate_t state_type;=0A=
 =0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       codecvt(size_t __refs =3D 0);=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~codecvt();=0A=
 =0A=
       virtual result=0A=
       do_out(state_type& __state, const intern_type* __from,=0A=
              const intern_type* __from_end, const intern_type*& =
 __from_next,=0A=
              extern_type* __to, extern_type* __to_end,=0A=
              extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_unshift(state_type& __state,=0A=
                  extern_type* __to, extern_type* __to_end,=0A=
                  extern_type*& __to_next) const;=0A=
 =0A=
       virtual result=0A=
       do_in(state_type& __state,=0A=
              const extern_type* __from, const extern_type* __from_end,=0A=
              const extern_type*& __from_next,=0A=
              intern_type* __to, intern_type* __to_end,=0A=
              intern_type*& __to_next) const;=0A=
 =0A=
       virtual=0A=
       int do_encoding() const throw();=0A=
 =0A=
       virtual=0A=
       bool do_always_noconv() const throw();=0A=
 =0A=
       virtual=0A=
       int do_length(const state_type&, const extern_type* __from,=0A=
                     const extern_type* __end, size_t __max) const;=0A=
 =0A=
       virtual int=0A=
       do_max_length() const throw();=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
   template<typename _InternT, typename _ExternT, typename _StateT>=0A=
     class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>=0A=
     {=0A=
     public:=0A=
       explicit=0A=
       codecvt_byname(const char*, size_t __refs =3D 0)=0A=
       : codecvt<_InternT, _ExternT, _StateT>(__refs) { }=0A=
     protected:=0A=
       virtual=0A=
       ~codecvt_byname() { }=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/codecvt_speciali=
 zations.h" 1 3=0A=
 # 334 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 2 3=0A=
 # 423 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
   class __num_base=0A=
   {=0A=
   protected:=0A=
 =0A=
 =0A=
     static const char _S_atoms[];=0A=
 =0A=
     enum=0A=
     {=0A=
       _M_zero,=0A=
       _M_e =3D _M_zero + 10,=0A=
       _M_E =3D _M_zero + 11,=0A=
       _M_size =3D 21 + 1=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     static bool=0A=
     _S_format_float(const ios_base& __io, char* __fptr, char __mod,=0A=
                     streamsize __prec);=0A=
 =0A=
 =0A=
     static void=0A=
     _S_format_int(const ios_base& __io, char* __fptr, char __mod, char =
 __modl);=0A=
   };=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class numpunct : public locale::facet=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
     private:=0A=
       char_type _M_decimal_point;=0A=
       char_type _M_thousands_sep;=0A=
       const char* _M_grouping;=0A=
       const char_type* _M_truename;=0A=
       const char_type* _M_falsename;=0A=
 =0A=
     public:=0A=
       explicit=0A=
       numpunct(size_t __refs =3D 0) : locale::facet(__refs)=0A=
       { _M_initialize_numpunct(); }=0A=
 =0A=
       explicit=0A=
       numpunct(__c_locale __cloc, size_t __refs =3D 0) : =
 locale::facet(__refs)=0A=
       { _M_initialize_numpunct(__cloc); }=0A=
 =0A=
       char_type=0A=
       decimal_point() const=0A=
       { return this->do_decimal_point(); }=0A=
 =0A=
       char_type=0A=
       thousands_sep() const=0A=
       { return this->do_thousands_sep(); }=0A=
 =0A=
       string=0A=
       grouping() const=0A=
       { return this->do_grouping(); }=0A=
 =0A=
       string_type=0A=
       truename() const=0A=
       { return this->do_truename(); }=0A=
 =0A=
       string_type=0A=
       falsename() const=0A=
       { return this->do_falsename(); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~numpunct();=0A=
 =0A=
       virtual char_type=0A=
       do_decimal_point() const=0A=
       { return _M_decimal_point; }=0A=
 =0A=
       virtual char_type=0A=
       do_thousands_sep() const=0A=
       { return _M_thousands_sep; }=0A=
 =0A=
       virtual string=0A=
       do_grouping() const=0A=
       { return _M_grouping; }=0A=
 =0A=
       virtual string_type=0A=
       do_truename() const=0A=
       { return _M_truename; }=0A=
 =0A=
       virtual string_type=0A=
       do_falsename() const=0A=
       { return _M_falsename; }=0A=
 =0A=
 =0A=
       void=0A=
       _M_initialize_numpunct(__c_locale __cloc =3D _S_c_locale);=0A=
     };=0A=
 =0A=
   template<typename _CharT>=0A=
     locale::id numpunct<_CharT>::id;=0A=
 =0A=
   template<>=0A=
     numpunct<char>::~numpunct();=0A=
 =0A=
   template<>=0A=
     void=0A=
     numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);=0A=
 =0A=
 =0A=
   template<>=0A=
     numpunct<wchar_t>::~numpunct();=0A=
 =0A=
   template<>=0A=
     void=0A=
     numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class numpunct_byname : public numpunct<_CharT>=0A=
     {=0A=
 =0A=
       __c_locale _M_c_locale_numpunct;=0A=
 =0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       explicit=0A=
       numpunct_byname(const char* __s, size_t __refs =3D 0)=0A=
       : numpunct<_CharT>(__refs)=0A=
       {=0A=
         _S_create_c_locale(_M_c_locale_numpunct, __s);=0A=
         _M_initialize_numpunct(_M_c_locale_numpunct);=0A=
       }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~numpunct_byname()=0A=
       { _S_destroy_c_locale(_M_c_locale_numpunct); }=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     class num_get : public locale::facet, public __num_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _InIter iter_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       num_get(size_t __refs =3D 0) : locale::facet(__refs) { }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, bool& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, long& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, unsigned short& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, unsigned int& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, unsigned long& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, long long& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, unsigned long long& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, float& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, double& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, long double& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __in, iter_type __end, ios_base& __io,=0A=
           ios_base::iostate& __err, void*& __v) const=0A=
       { return this->do_get(__in, __end, __io, __err, __v); }=0A=
 =0A=
     protected:=0A=
       virtual ~num_get() { }=0A=
 =0A=
       iter_type=0A=
       _M_extract_float(iter_type, iter_type, ios_base&, =
 ios_base::iostate&,=0A=
                        string& __xtrc) const;=0A=
 =0A=
       iter_type=0A=
       _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,=0A=
                      string& __xtrc, int& __base) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) =
 const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) =
 const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
               unsigned short&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              unsigned int&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              unsigned long&) const;=0A=
 =0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              long long&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              unsigned long long&) const;=0A=
 =0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              float&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              double&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              long double&) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A=
              void*&) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     locale::id num_get<_CharT, _InIter>::id;=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     class num_put : public locale::facet, public __num_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _OutIter iter_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       num_put(size_t __refs =3D 0) : locale::facet(__refs) { }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill, long __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill,=0A=
           unsigned long __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill, long long __v) =
 const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill,=0A=
           unsigned long long __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill, double __v) =
 const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill,=0A=
           long double __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __f, char_type __fill,=0A=
           const void* __v) const=0A=
       { return this->do_put(__s, __f, __fill, __v); }=0A=
 =0A=
     protected:=0A=
       template<typename _ValueT>=0A=
         iter_type=0A=
         _M_convert_float(iter_type, ios_base& __io, char_type __fill,=0A=
                          char __mod, _ValueT __v) const;=0A=
 =0A=
       template<typename _ValueT>=0A=
         iter_type=0A=
         _M_convert_int(iter_type, ios_base& __io, char_type __fill,=0A=
                        char __mod, char __modl, _ValueT __v) const;=0A=
 =0A=
       iter_type=0A=
       _M_widen_float(iter_type, ios_base& __io, char_type __fill, char* =
 __cs,=0A=
                      int __len) const;=0A=
 =0A=
       iter_type=0A=
       _M_widen_int(iter_type, ios_base& __io, char_type __fill, char* =
 __cs,=0A=
                    int __len) const;=0A=
 =0A=
       iter_type=0A=
       _M_insert(iter_type, ios_base& __io, char_type __fill,=0A=
                 const char_type* __ws, int __len) const;=0A=
 =0A=
       virtual=0A=
       ~num_put() { };=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, bool __v) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, long __v) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, unsigned long) =
 const;=0A=
 =0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, long long __v) =
 const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, unsigned long long) =
 const;=0A=
 =0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, double __v) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, long double __v) =
 const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type, ios_base&, char_type __fill, const void* __v) =
 const;=0A=
     };=0A=
 =0A=
   template <typename _CharT, typename _OutIter>=0A=
     locale::id num_put<_CharT, _OutIter>::id;=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class collate : public locale::facet=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
     protected:=0A=
 =0A=
 =0A=
       __c_locale _M_c_locale_collate;=0A=
 =0A=
     public:=0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       collate(size_t __refs =3D 0)=0A=
       : locale::facet(__refs)=0A=
       { _M_c_locale_collate =3D _S_c_locale; }=0A=
 =0A=
 =0A=
       explicit=0A=
       collate(__c_locale __cloc, size_t __refs =3D 0)=0A=
       : locale::facet(__refs)=0A=
       { _M_c_locale_collate =3D _S_clone_c_locale(__cloc); }=0A=
 =0A=
       int=0A=
       compare(const _CharT* __lo1, const _CharT* __hi1,=0A=
               const _CharT* __lo2, const _CharT* __hi2) const=0A=
       { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }=0A=
 =0A=
       string_type=0A=
       transform(const _CharT* __lo, const _CharT* __hi) const=0A=
       { return this->do_transform(__lo, __hi); }=0A=
 =0A=
       long=0A=
       hash(const _CharT* __lo, const _CharT* __hi) const=0A=
       { return this->do_hash(__lo, __hi); }=0A=
 =0A=
 =0A=
       int=0A=
       _M_compare(const _CharT*, const _CharT*) const;=0A=
 =0A=
       size_t=0A=
       _M_transform(_CharT*, const _CharT*, size_t) const;=0A=
 =0A=
   protected:=0A=
       virtual=0A=
       ~collate()=0A=
       {=0A=
         if (_M_c_locale_collate !=3D _S_c_locale)=0A=
           _S_destroy_c_locale(_M_c_locale_collate);=0A=
       }=0A=
 =0A=
       virtual int=0A=
       do_compare(const _CharT* __lo1, const _CharT* __hi1,=0A=
                  const _CharT* __lo2, const _CharT* __hi2) const;=0A=
 =0A=
       virtual string_type=0A=
       do_transform(const _CharT* __lo, const _CharT* __hi) const;=0A=
 =0A=
       virtual long=0A=
       do_hash(const _CharT* __lo, const _CharT* __hi) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT>=0A=
     locale::id collate<_CharT>::id;=0A=
 =0A=
 =0A=
   template<>=0A=
     int=0A=
     collate<char>::_M_compare(const char*, const char*) const;=0A=
 =0A=
   template<>=0A=
     size_t=0A=
     collate<char>::_M_transform(char*, const char*, size_t) const;=0A=
 =0A=
 =0A=
   template<>=0A=
     int=0A=
     collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const;=0A=
 =0A=
   template<>=0A=
     size_t=0A=
     collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) =
 const;=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     class collate_byname : public collate<_CharT>=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       explicit=0A=
       collate_byname(const char* __s, size_t __refs =3D 0)=0A=
       : collate<_CharT>(__refs)=0A=
       {=0A=
         if (_M_c_locale_collate !=3D _S_c_locale)=0A=
           _S_destroy_c_locale(_M_c_locale_collate);=0A=
         _S_create_c_locale(_M_c_locale_collate, __s);=0A=
       }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~collate_byname() { }=0A=
     };=0A=
 =0A=
 =0A=
   class time_base=0A=
   {=0A=
   public:=0A=
     enum dateorder { no_order, dmy, mdy, ymd, ydm };=0A=
   };=0A=
 =0A=
   template<typename _CharT>=0A=
     class __timepunct : public locale::facet=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT __char_type;=0A=
       typedef basic_string<_CharT> __string_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
 =0A=
       static const _CharT* _S_timezones[14];=0A=
 =0A=
     protected:=0A=
       __c_locale _M_c_locale_timepunct;=0A=
       const char* _M_name_timepunct;=0A=
       const _CharT* _M_date_format;=0A=
       const _CharT* _M_date_era_format;=0A=
       const _CharT* _M_time_format;=0A=
       const _CharT* _M_time_era_format;=0A=
       const _CharT* _M_date_time_format;=0A=
       const _CharT* _M_date_time_era_format;=0A=
       const _CharT* _M_am;=0A=
       const _CharT* _M_pm;=0A=
       const _CharT* _M_am_pm_format;=0A=
 =0A=
 =0A=
       const _CharT* _M_day1;=0A=
       const _CharT* _M_day2;=0A=
       const _CharT* _M_day3;=0A=
       const _CharT* _M_day4;=0A=
       const _CharT* _M_day5;=0A=
       const _CharT* _M_day6;=0A=
       const _CharT* _M_day7;=0A=
 =0A=
 =0A=
       const _CharT* _M_day_a1;=0A=
       const _CharT* _M_day_a2;=0A=
       const _CharT* _M_day_a3;=0A=
       const _CharT* _M_day_a4;=0A=
       const _CharT* _M_day_a5;=0A=
       const _CharT* _M_day_a6;=0A=
       const _CharT* _M_day_a7;=0A=
 =0A=
 =0A=
       const _CharT* _M_month01;=0A=
       const _CharT* _M_month02;=0A=
       const _CharT* _M_month03;=0A=
       const _CharT* _M_month04;=0A=
       const _CharT* _M_month05;=0A=
       const _CharT* _M_month06;=0A=
       const _CharT* _M_month07;=0A=
       const _CharT* _M_month08;=0A=
       const _CharT* _M_month09;=0A=
       const _CharT* _M_month10;=0A=
       const _CharT* _M_month11;=0A=
       const _CharT* _M_month12;=0A=
 =0A=
 =0A=
       const _CharT* _M_month_a01;=0A=
       const _CharT* _M_month_a02;=0A=
       const _CharT* _M_month_a03;=0A=
       const _CharT* _M_month_a04;=0A=
       const _CharT* _M_month_a05;=0A=
       const _CharT* _M_month_a06;=0A=
       const _CharT* _M_month_a07;=0A=
       const _CharT* _M_month_a08;=0A=
       const _CharT* _M_month_a09;=0A=
       const _CharT* _M_month_a10;=0A=
       const _CharT* _M_month_a11;=0A=
       const _CharT* _M_month_a12;=0A=
 =0A=
     public:=0A=
       explicit=0A=
       __timepunct(size_t __refs =3D 0)=0A=
       : locale::facet(__refs), _M_name_timepunct("C")=0A=
       { _M_initialize_timepunct(); }=0A=
 =0A=
       explicit=0A=
       __timepunct(__c_locale __cloc, const char* __s, size_t __refs =3D =
 0)=0A=
       : locale::facet(__refs), _M_name_timepunct(__s)=0A=
       { _M_initialize_timepunct(__cloc); }=0A=
 =0A=
       void=0A=
       _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,=0A=
              const tm* __tm) const;=0A=
 =0A=
       void=0A=
       _M_date_formats(const _CharT** __date) const=0A=
       {=0A=
 =0A=
         __date[0] =3D _M_date_format;=0A=
         __date[1] =3D _M_date_era_format;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_time_formats(const _CharT** __time) const=0A=
       {=0A=
 =0A=
         __time[0] =3D _M_time_format;=0A=
         __time[1] =3D _M_time_era_format;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_ampm(const _CharT** __ampm) const=0A=
       {=0A=
         __ampm[0] =3D _M_am;=0A=
         __ampm[1] =3D _M_pm;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_date_time_formats(const _CharT** __dt) const=0A=
       {=0A=
 =0A=
         __dt[0] =3D _M_date_time_format;=0A=
         __dt[1] =3D _M_date_time_era_format;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_days(const _CharT** __days) const=0A=
       {=0A=
         __days[0] =3D _M_day1;=0A=
         __days[1] =3D _M_day2;=0A=
         __days[2] =3D _M_day3;=0A=
         __days[3] =3D _M_day4;=0A=
         __days[4] =3D _M_day5;=0A=
         __days[5] =3D _M_day6;=0A=
         __days[6] =3D _M_day7;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_days_abbreviated(const _CharT** __days) const=0A=
       {=0A=
         __days[0] =3D _M_day_a1;=0A=
         __days[1] =3D _M_day_a2;=0A=
         __days[2] =3D _M_day_a3;=0A=
         __days[3] =3D _M_day_a4;=0A=
         __days[4] =3D _M_day_a5;=0A=
         __days[5] =3D _M_day_a6;=0A=
         __days[6] =3D _M_day_a7;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_months(const _CharT** __months) const=0A=
       {=0A=
         __months[0] =3D _M_month01;=0A=
         __months[1] =3D _M_month02;=0A=
         __months[2] =3D _M_month03;=0A=
         __months[3] =3D _M_month04;=0A=
         __months[4] =3D _M_month05;=0A=
         __months[5] =3D _M_month06;=0A=
         __months[6] =3D _M_month07;=0A=
         __months[7] =3D _M_month08;=0A=
         __months[8] =3D _M_month09;=0A=
         __months[9] =3D _M_month10;=0A=
         __months[10] =3D _M_month11;=0A=
         __months[11] =3D _M_month12;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_months_abbreviated(const _CharT** __months) const=0A=
       {=0A=
         __months[0] =3D _M_month_a01;=0A=
         __months[1] =3D _M_month_a02;=0A=
         __months[2] =3D _M_month_a03;=0A=
         __months[3] =3D _M_month_a04;=0A=
         __months[4] =3D _M_month_a05;=0A=
         __months[5] =3D _M_month_a06;=0A=
         __months[6] =3D _M_month_a07;=0A=
         __months[7] =3D _M_month_a08;=0A=
         __months[8] =3D _M_month_a09;=0A=
         __months[9] =3D _M_month_a10;=0A=
         __months[10] =3D _M_month_a11;=0A=
         __months[11] =3D _M_month_a12;=0A=
       }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~__timepunct();=0A=
 =0A=
 =0A=
       void=0A=
       _M_initialize_timepunct(__c_locale __cloc =3D _S_c_locale);=0A=
     };=0A=
 =0A=
   template<typename _CharT>=0A=
     locale::id __timepunct<_CharT>::id;=0A=
 =0A=
 =0A=
   template<>=0A=
     __timepunct<char>::~__timepunct();=0A=
 =0A=
   template<>=0A=
     const char*=0A=
     __timepunct<char>::_S_timezones[14];=0A=
 =0A=
   template<>=0A=
     void=0A=
     __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc);=0A=
 =0A=
   template<>=0A=
     void=0A=
     __timepunct<char>::_M_put(char*, size_t, const char*, const tm*) =
 const;=0A=
 =0A=
 =0A=
   template<>=0A=
     __timepunct<wchar_t>::~__timepunct();=0A=
 =0A=
   template<>=0A=
     const wchar_t*=0A=
     __timepunct<wchar_t>::_S_timezones[14];=0A=
 =0A=
   template<>=0A=
     void=0A=
     __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc);=0A=
 =0A=
   template<>=0A=
     void=0A=
     __timepunct<wchar_t>::_M_put(wchar_t*, size_t, const wchar_t*,=0A=
                                  const tm*) const;=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     const _CharT* __timepunct<_CharT>::_S_timezones[14];=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     class time_get : public locale::facet, public time_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _InIter iter_type;=0A=
       typedef basic_string<_CharT> __string_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       time_get(size_t __refs =3D 0)=0A=
       : locale::facet (__refs) { }=0A=
 =0A=
       dateorder=0A=
       date_order() const=0A=
       { return this->do_date_order(); }=0A=
 =0A=
       iter_type=0A=
       get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                ios_base::iostate& __err, tm* __tm) const=0A=
       { return this->do_get_time(__beg, __end, __io, __err, __tm); }=0A=
 =0A=
       iter_type=0A=
       get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                ios_base::iostate& __err, tm* __tm) const=0A=
       { return this->do_get_date(__beg, __end, __io, __err, __tm); }=0A=
 =0A=
       iter_type=0A=
       get_weekday(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                   ios_base::iostate& __err, tm* __tm) const=0A=
       { return this->do_get_weekday(__beg, __end, __io, __err, __tm); }=0A=
 =0A=
       iter_type=0A=
       get_monthname(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                     ios_base::iostate& __err, tm* __tm) const=0A=
       { return this->do_get_monthname(__beg, __end, __io, __err, __tm); }=0A=
 =0A=
       iter_type=0A=
       get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                ios_base::iostate& __err, tm* __tm) const=0A=
       { return this->do_get_year(__beg, __end, __io, __err, __tm); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~time_get() { }=0A=
 =0A=
       virtual dateorder=0A=
       do_date_order() const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                   ios_base::iostate& __err, tm* __tm) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                   ios_base::iostate& __err, tm* __tm) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get_weekday(iter_type __beg, iter_type __end, ios_base&,=0A=
                      ios_base::iostate& __err, tm* __tm) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get_monthname(iter_type __beg, iter_type __end, ios_base&,=0A=
                        ios_base::iostate& __err, tm* __tm) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                   ios_base::iostate& __err, tm* __tm) const;=0A=
 =0A=
 =0A=
       void=0A=
       _M_extract_num(iter_type& __beg, iter_type& __end, int& __member,=0A=
                      int __min, int __max, size_t __len,=0A=
                      const ctype<_CharT>& __ctype,=0A=
                      ios_base::iostate& __err) const;=0A=
 =0A=
 =0A=
 =0A=
       void=0A=
       _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,=0A=
                       const _CharT** __names, size_t __indexlen,=0A=
                       ios_base::iostate& __err) const;=0A=
 =0A=
 =0A=
       void=0A=
       _M_extract_via_format(iter_type& __beg, iter_type& __end, =
 ios_base& __io,=0A=
                             ios_base::iostate& __err, tm* __tm,=0A=
                             const _CharT* __format) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     locale::id time_get<_CharT, _InIter>::id;=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     class time_get_byname : public time_get<_CharT, _InIter>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _InIter iter_type;=0A=
 =0A=
       explicit=0A=
       time_get_byname(const char*, size_t __refs =3D 0)=0A=
       : time_get<_CharT, _InIter>(__refs) { }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~time_get_byname() { }=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     class time_put : public locale::facet, public time_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _OutIter iter_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       time_put(size_t __refs =3D 0)=0A=
       : locale::facet(__refs) { }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __io, char_type __fill, const tm* =
 __tm,=0A=
           const _CharT* __beg, const _CharT* __end) const;=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, ios_base& __io, char_type __fill,=0A=
           const tm* __tm, char __format, char __mod =3D 0) const=0A=
       { return this->do_put(__s, __io, __fill, __tm, __format, __mod); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~time_put()=0A=
       { }=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* =
 __tm,=0A=
              char __format, char __mod) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     locale::id time_put<_CharT, _OutIter>::id;=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     class time_put_byname : public time_put<_CharT, _OutIter>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _OutIter iter_type;=0A=
 =0A=
       explicit=0A=
       time_put_byname(const char* , size_t __refs =3D 0)=0A=
       : time_put<_CharT, _OutIter>(__refs)=0A=
       { };=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~time_put_byname() { }=0A=
     };=0A=
 =0A=
 =0A=
   class money_base=0A=
   {=0A=
   public:=0A=
     enum part { none, space, symbol, sign, value };=0A=
     struct pattern { char field[4]; };=0A=
 =0A=
     static const pattern _S_default_pattern;=0A=
 =0A=
 =0A=
 =0A=
     static pattern=0A=
     _S_construct_pattern(char __precedes, char __space, char __posn);=0A=
   };=0A=
 =0A=
   template<typename _CharT, bool _Intl>=0A=
     class moneypunct : public locale::facet, public money_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       static const bool intl =3D _Intl;=0A=
       static locale::id id;=0A=
 =0A=
     private:=0A=
       const char* _M_grouping;=0A=
       char_type _M_decimal_point;=0A=
       char_type _M_thousands_sep;=0A=
       const char_type* _M_curr_symbol;=0A=
       const char_type* _M_positive_sign;=0A=
       const char_type* _M_negative_sign;=0A=
       int _M_frac_digits;=0A=
       pattern _M_pos_format;=0A=
       pattern _M_neg_format;=0A=
 =0A=
     public:=0A=
       explicit=0A=
       moneypunct(size_t __refs =3D 0) : locale::facet(__refs)=0A=
       { _M_initialize_moneypunct(); }=0A=
 =0A=
       explicit=0A=
       moneypunct(__c_locale __cloc, size_t __refs =3D 0) : =
 locale::facet(__refs)=0A=
       { _M_initialize_moneypunct(__cloc); }=0A=
 =0A=
       char_type=0A=
       decimal_point() const=0A=
       { return this->do_decimal_point(); }=0A=
 =0A=
       char_type=0A=
       thousands_sep() const=0A=
       { return this->do_thousands_sep(); }=0A=
 =0A=
       string=0A=
       grouping() const=0A=
       { return this->do_grouping(); }=0A=
 =0A=
       string_type=0A=
       curr_symbol() const=0A=
       { return this->do_curr_symbol(); }=0A=
 =0A=
       string_type=0A=
       positive_sign() const=0A=
       { return this->do_positive_sign(); }=0A=
 =0A=
       string_type=0A=
       negative_sign() const=0A=
       { return this->do_negative_sign(); }=0A=
 =0A=
       int=0A=
       frac_digits() const=0A=
       { return this->do_frac_digits(); }=0A=
 =0A=
       pattern=0A=
       pos_format() const=0A=
       { return this->do_pos_format(); }=0A=
 =0A=
       pattern=0A=
       neg_format() const=0A=
       { return this->do_neg_format(); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~moneypunct();=0A=
 =0A=
       virtual char_type=0A=
       do_decimal_point() const=0A=
       { return _M_decimal_point; }=0A=
 =0A=
       virtual char_type=0A=
       do_thousands_sep() const=0A=
       { return _M_thousands_sep; }=0A=
 =0A=
       virtual string=0A=
       do_grouping() const=0A=
       { return _M_grouping; }=0A=
 =0A=
       virtual string_type=0A=
       do_curr_symbol() const=0A=
       { return _M_curr_symbol; }=0A=
 =0A=
       virtual string_type=0A=
       do_positive_sign() const=0A=
       { return _M_positive_sign; }=0A=
 =0A=
       virtual string_type=0A=
       do_negative_sign() const=0A=
       { return _M_negative_sign; }=0A=
 =0A=
       virtual int=0A=
       do_frac_digits() const=0A=
       { return _M_frac_digits; }=0A=
 =0A=
       virtual pattern=0A=
       do_pos_format() const=0A=
       { return _M_pos_format; }=0A=
 =0A=
       virtual pattern=0A=
       do_neg_format() const=0A=
       { return _M_neg_format; }=0A=
 =0A=
 =0A=
        void=0A=
        _M_initialize_moneypunct(__c_locale __cloc =3D _S_c_locale);=0A=
     };=0A=
 =0A=
   template<typename _CharT, bool _Intl>=0A=
     locale::id moneypunct<_CharT, _Intl>::id;=0A=
 =0A=
   template<typename _CharT, bool _Intl>=0A=
     const bool moneypunct<_CharT, _Intl>::intl;=0A=
 =0A=
   template<>=0A=
     moneypunct<char, true>::~moneypunct();=0A=
 =0A=
   template<>=0A=
     moneypunct<char, false>::~moneypunct();=0A=
 =0A=
   template<>=0A=
     void=0A=
     moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc);=0A=
 =0A=
   template<>=0A=
     void=0A=
     moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc);=0A=
 =0A=
 =0A=
   template<>=0A=
     moneypunct<wchar_t, true>::~moneypunct();=0A=
 =0A=
   template<>=0A=
     moneypunct<wchar_t, false>::~moneypunct();=0A=
 =0A=
   template<>=0A=
     void=0A=
     moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale =
 __cloc);=0A=
 =0A=
   template<>=0A=
     void=0A=
     moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale =
 __cloc);=0A=
 =0A=
 =0A=
   template<typename _CharT, bool _Intl>=0A=
     class moneypunct_byname : public moneypunct<_CharT, _Intl>=0A=
     {=0A=
       __c_locale _M_c_locale_moneypunct;=0A=
 =0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       static const bool intl =3D _Intl;=0A=
 =0A=
       explicit=0A=
       moneypunct_byname(const char* __s, size_t __refs =3D 0)=0A=
       : moneypunct<_CharT, _Intl>(__refs)=0A=
       {=0A=
         _S_create_c_locale(_M_c_locale_moneypunct, __s);=0A=
         _M_initialize_moneypunct(_M_c_locale_moneypunct);=0A=
       }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~moneypunct_byname()=0A=
       { _S_destroy_c_locale(_M_c_locale_moneypunct); }=0A=
     };=0A=
 =0A=
   template<typename _CharT, bool _Intl>=0A=
     const bool moneypunct_byname<_CharT, _Intl>::intl;=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     class money_get : public locale::facet=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef _InIter iter_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       money_get(size_t __refs =3D 0) : locale::facet(__refs) { }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A=
           ios_base::iostate& __err, long double& __units) const=0A=
       { return this->do_get(__s, __end, __intl, __io, __err, __units); }=0A=
 =0A=
       iter_type=0A=
       get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A=
           ios_base::iostate& __err, string_type& __digits) const=0A=
       { return this->do_get(__s, __end, __intl, __io, __err, __digits); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~money_get() { }=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A=
              ios_base::iostate& __err, long double& __units) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A=
              ios_base::iostate& __err, string_type& __digits) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     locale::id money_get<_CharT, _InIter>::id;=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     class money_put : public locale::facet=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef _OutIter iter_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       money_put(size_t __refs =3D 0) : locale::facet(__refs) { }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, bool __intl, ios_base& __io,=0A=
           char_type __fill, long double __units) const=0A=
       { return this->do_put(__s, __intl, __io, __fill, __units); }=0A=
 =0A=
       iter_type=0A=
       put(iter_type __s, bool __intl, ios_base& __io,=0A=
           char_type __fill, const string_type& __digits) const=0A=
       { return this->do_put(__s, __intl, __io, __fill, __digits); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~money_put() { }=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type __s, bool __intl, ios_base& __io, char_type =
 __fill,=0A=
              long double __units) const;=0A=
 =0A=
       virtual iter_type=0A=
       do_put(iter_type __s, bool __intl, ios_base& __io, char_type =
 __fill,=0A=
              const string_type& __digits) const;=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     locale::id money_put<_CharT, _OutIter>::id;=0A=
 =0A=
 =0A=
   struct messages_base=0A=
   {=0A=
     typedef int catalog;=0A=
   };=0A=
 =0A=
   template<typename _CharT>=0A=
     class messages : public locale::facet, public messages_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
     protected:=0A=
 =0A=
 =0A=
       __c_locale _M_c_locale_messages;=0A=
 =0A=
 =0A=
       const char* _M_name_messages;=0A=
 =0A=
 =0A=
     public:=0A=
       static locale::id id;=0A=
 =0A=
       explicit=0A=
       messages(size_t __refs =3D 0)=0A=
       : locale::facet(__refs), _M_name_messages("C")=0A=
       { _M_c_locale_messages =3D _S_c_locale; }=0A=
 =0A=
 =0A=
       explicit=0A=
       messages(__c_locale __cloc, const char* __name, size_t __refs =3D =
 0)=0A=
       : locale::facet(__refs)=0A=
       {=0A=
         _M_name_messages =3D __name;=0A=
         _M_c_locale_messages =3D _S_clone_c_locale(__cloc);=0A=
       }=0A=
 =0A=
       catalog=0A=
       open(const basic_string<char>& __s, const locale& __loc) const=0A=
       { return this->do_open(__s, __loc); }=0A=
 =0A=
 =0A=
       catalog=0A=
       open(const basic_string<char>&, const locale&, const char*) const;=0A=
 =0A=
       string_type=0A=
       get(catalog __c, int __set, int __msgid, const string_type& __s) =
 const=0A=
       { return this->do_get(__c, __set, __msgid, __s); }=0A=
 =0A=
       void=0A=
       close(catalog __c) const=0A=
       { return this->do_close(__c); }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~messages()=0A=
        {=0A=
          if (_M_c_locale_messages !=3D _S_c_locale)=0A=
            _S_destroy_c_locale(_M_c_locale_messages);=0A=
        }=0A=
 =0A=
       virtual catalog=0A=
       do_open(const basic_string<char>&, const locale&) const;=0A=
 =0A=
       virtual string_type=0A=
       do_get(catalog, int, int, const string_type& __dfault) const;=0A=
 =0A=
       virtual void=0A=
       do_close(catalog) const;=0A=
 =0A=
 =0A=
       char*=0A=
       _M_convert_to_char(const string_type& __msg) const=0A=
       {=0A=
 =0A=
         return =
 reinterpret_cast<char*>(const_cast<_CharT*>(__msg.c_str()));=0A=
       }=0A=
 =0A=
 =0A=
       string_type=0A=
       _M_convert_from_char(char* __msg) const=0A=
       {=0A=
 =0A=
         size_t __len =3D char_traits<char>::length(__msg) - 1;=0A=
 # 1705 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A=
         return string_type();=0A=
       }=0A=
      };=0A=
 =0A=
   template<typename _CharT>=0A=
     locale::id messages<_CharT>::id;=0A=
 =0A=
 =0A=
   template<>=0A=
     string=0A=
     messages<char>::do_get(catalog, int, int, const string&) const;=0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/messages_members=
 .h" 1 3=0A=
 # 37 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/messages_members=
 .h" 3=0A=
   template<typename _CharT>=0A=
     typename messages<_CharT>::catalog=0A=
     messages<_CharT>::open(const basic_string<char>& __s, const locale& =
 __loc,=0A=
                            const char*) const=0A=
     { return this->do_open(__s, __loc); }=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     typename messages<_CharT>::catalog=0A=
     messages<_CharT>::do_open(const basic_string<char>&, const locale&) =
 const=0A=
     { return 0; }=0A=
 =0A=
   template<typename _CharT>=0A=
     typename messages<_CharT>::string_type=0A=
     messages<_CharT>::do_get(catalog, int, int,=0A=
                              const string_type& __dfault) const=0A=
     { return __dfault; }=0A=
 =0A=
   template<typename _CharT>=0A=
     void=0A=
     messages<_CharT>::do_close(catalog) const=0A=
     { }=0A=
 # 1719 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A=
 =0A=
   template<typename _CharT>=0A=
     class messages_byname : public messages<_CharT>=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef basic_string<_CharT> string_type;=0A=
 =0A=
       explicit=0A=
       messages_byname(const char* __s, size_t __refs =3D 0)=0A=
       : messages<_CharT>(__refs)=0A=
       {=0A=
         _M_name_messages =3D __s;=0A=
         if (_M_c_locale_messages !=3D _S_c_locale)=0A=
           _S_destroy_c_locale(_M_c_locale_messages);=0A=
         _S_create_c_locale(_M_c_locale_messages, __s);=0A=
       }=0A=
 =0A=
     protected:=0A=
       virtual=0A=
       ~messages_byname()=0A=
       { }=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isspace(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isprint(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     iscntrl(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isupper(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool islower(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isalpha(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isdigit(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     ispunct(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isxdigit(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isalnum(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline bool=0A=
     isgraph(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, =
 __c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline _CharT=0A=
     toupper(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).toupper(__c); }=0A=
 =0A=
   template<typename _CharT>=0A=
     inline _CharT=0A=
     tolower(_CharT __c, const locale& __loc)=0A=
     { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }=0A=
 }=0A=
 # 42 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_ios : public ios_base=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef typename _Traits::int_type int_type;=0A=
       typedef typename _Traits::pos_type pos_type;=0A=
       typedef typename _Traits::off_type off_type;=0A=
       typedef _Traits traits_type;=0A=
 =0A=
 =0A=
       typedef ctype<_CharT> __ctype_type;=0A=
       typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;=0A=
       typedef num_put<_CharT, __ostreambuf_iter> __numput_type;=0A=
       typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;=0A=
       typedef num_get<_CharT, __istreambuf_iter> __numget_type;=0A=
 =0A=
 =0A=
     protected:=0A=
       basic_ostream<_CharT, _Traits>* _M_tie;=0A=
       mutable char_type _M_fill;=0A=
       mutable bool _M_fill_init;=0A=
       basic_streambuf<_CharT, _Traits>* _M_streambuf;=0A=
 =0A=
 =0A=
       const __ctype_type* _M_fctype;=0A=
 =0A=
       const __numput_type* _M_fnumput;=0A=
 =0A=
       const __numget_type* _M_fnumget;=0A=
 =0A=
     public:=0A=
       operator void*() const=0A=
       { return this->fail() ? 0 : const_cast<basic_ios*>(this); }=0A=
 =0A=
       bool=0A=
       operator!() const=0A=
       { return this->fail(); }=0A=
 =0A=
       iostate=0A=
       rdstate() const=0A=
       { return _M_streambuf_state; }=0A=
 =0A=
       void=0A=
       clear(iostate __state =3D goodbit);=0A=
 =0A=
       void=0A=
       setstate(iostate __state)=0A=
       { this->clear(this->rdstate() | __state); }=0A=
 =0A=
       bool=0A=
       good() const=0A=
       { return this->rdstate() =3D=3D 0; }=0A=
 =0A=
       bool=0A=
       eof() const=0A=
       { return (this->rdstate() & eofbit) !=3D 0; }=0A=
 =0A=
       bool=0A=
       fail() const=0A=
       { return (this->rdstate() & (badbit | failbit)) !=3D 0; }=0A=
 =0A=
       bool=0A=
       bad() const=0A=
       { return (this->rdstate() & badbit) !=3D 0; }=0A=
 =0A=
       iostate=0A=
       exceptions() const=0A=
       { return _M_exception; }=0A=
 =0A=
       void=0A=
       exceptions(iostate __except)=0A=
       {=0A=
         _M_exception =3D __except;=0A=
         this->clear(_M_streambuf_state);=0A=
       }=0A=
 =0A=
 =0A=
       explicit=0A=
       basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base()=0A=
       { this->init(__sb); }=0A=
 =0A=
       virtual=0A=
       ~basic_ios() { }=0A=
 =0A=
 =0A=
       basic_ostream<_CharT, _Traits>*=0A=
       tie() const=0A=
       { return _M_tie; }=0A=
 =0A=
       basic_ostream<_CharT, _Traits>*=0A=
       tie(basic_ostream<_CharT, _Traits>* __tiestr)=0A=
       {=0A=
         basic_ostream<_CharT, _Traits>* __old =3D _M_tie;=0A=
         _M_tie =3D __tiestr;=0A=
         return __old;=0A=
       }=0A=
 =0A=
       basic_streambuf<_CharT, _Traits>*=0A=
       rdbuf() const=0A=
       { return _M_streambuf; }=0A=
 =0A=
       basic_streambuf<_CharT, _Traits>*=0A=
       rdbuf(basic_streambuf<_CharT, _Traits>* __sb);=0A=
 =0A=
       basic_ios&=0A=
       copyfmt(const basic_ios& __rhs);=0A=
 =0A=
       char_type=0A=
       fill() const=0A=
       {=0A=
         if (!_M_fill_init)=0A=
           {=0A=
             _M_fill =3D this->widen(' ');=0A=
             _M_fill_init =3D true;=0A=
           }=0A=
         return _M_fill;=0A=
       }=0A=
 =0A=
       char_type=0A=
       fill(char_type __ch)=0A=
       {=0A=
         char_type __old =3D this->fill();=0A=
         _M_fill =3D __ch;=0A=
         return __old;=0A=
       }=0A=
 =0A=
 =0A=
       locale=0A=
       imbue(const locale& __loc);=0A=
 =0A=
       char=0A=
       narrow(char_type __c, char __dfault) const;=0A=
 =0A=
       char_type=0A=
       widen(char __c) const;=0A=
 =0A=
     protected:=0A=
 =0A=
       basic_ios() : ios_base()=0A=
       { }=0A=
 =0A=
       void=0A=
       init(basic_streambuf<_CharT, _Traits>* __sb);=0A=
 =0A=
       bool=0A=
       _M_check_facet(const locale::facet* __f) const=0A=
       {=0A=
         if (!__f)=0A=
           __throw_bad_cast();=0A=
         return true;=0A=
       }=0A=
 =0A=
       void=0A=
       _M_cache_facets(const locale& __loc);=0A=
     };=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits>=0A=
     void=0A=
     basic_ios<_CharT, _Traits>::clear(iostate __state)=0A=
     {=0A=
       if (this->rdbuf())=0A=
         _M_streambuf_state =3D __state;=0A=
       else=0A=
           _M_streambuf_state =3D __state | badbit;=0A=
       if ((this->rdstate() & this->exceptions()))=0A=
         __throw_ios_failure("basic_ios::clear(iostate) caused =
 exception");=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_streambuf<_CharT, _Traits>*=0A=
     basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* =
 __sb)=0A=
     {=0A=
       basic_streambuf<_CharT, _Traits>* __old =3D _M_streambuf;=0A=
       _M_streambuf =3D __sb;=0A=
       this->clear();=0A=
       return __old;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ios<_CharT, _Traits>&=0A=
     basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       _Words* __words =3D (__rhs._M_word_size <=3D _S_local_word_size) ?=0A=
         _M_local_word : new _Words[__rhs._M_word_size];=0A=
 =0A=
 =0A=
       _Callback_list* __cb =3D __rhs._M_callbacks;=0A=
       if (__cb)=0A=
         __cb->_M_add_reference();=0A=
       _M_call_callbacks(erase_event);=0A=
       if (_M_word !=3D _M_local_word)=0A=
         {=0A=
           delete [] _M_word;=0A=
           _M_word =3D 0;=0A=
         }=0A=
       _M_dispose_callbacks();=0A=
 =0A=
       _M_callbacks =3D __cb;=0A=
       for (int __i =3D 0; __i < __rhs._M_word_size; ++__i)=0A=
         __words[__i] =3D __rhs._M_word[__i];=0A=
       if (_M_word !=3D _M_local_word)=0A=
         {=0A=
           delete [] _M_word;=0A=
           _M_word =3D 0;=0A=
         }=0A=
       _M_word =3D __words;=0A=
       _M_word_size =3D __rhs._M_word_size;=0A=
 =0A=
       this->flags(__rhs.flags());=0A=
       this->width(__rhs.width());=0A=
       this->precision(__rhs.precision());=0A=
       this->tie(__rhs.tie());=0A=
       this->fill(__rhs.fill());=0A=
 =0A=
       this->exceptions(__rhs.exceptions());=0A=
 =0A=
       _M_call_callbacks(copyfmt_event);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     char=0A=
     basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) =
 const=0A=
     {=0A=
       char __ret =3D __dfault;=0A=
       if (_M_check_facet(_M_fctype))=0A=
         __ret =3D _M_fctype->narrow(__c, __dfault);=0A=
       return __ret;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     _CharT=0A=
     basic_ios<_CharT, _Traits>::widen(char __c) const=0A=
     {=0A=
       char_type __ret =3D char_type();=0A=
       if (_M_check_facet(_M_fctype))=0A=
         __ret =3D _M_fctype->widen(__c);=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     locale=0A=
     basic_ios<_CharT, _Traits>::imbue(const locale& __loc)=0A=
     {=0A=
       locale __old(this->getloc());=0A=
       ios_base::imbue(__loc);=0A=
       _M_cache_facets(__loc);=0A=
       if (this->rdbuf() !=3D 0)=0A=
         this->rdbuf()->pubimbue(__loc);=0A=
       return __old;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     void=0A=
     basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* =
 __sb)=0A=
     {=0A=
 =0A=
       ios_base::_M_init();=0A=
       _M_cache_facets(_M_ios_locale);=0A=
       _M_tie =3D 0;=0A=
 # 159 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 3=0A=
       _M_fill =3D 0;=0A=
       _M_fill_init =3D false;=0A=
 =0A=
       _M_exception =3D goodbit;=0A=
       _M_streambuf =3D __sb;=0A=
       _M_streambuf_state =3D __sb ? goodbit : badbit;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     void=0A=
     basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)=0A=
     {=0A=
       if (has_facet<__ctype_type>(__loc))=0A=
         _M_fctype =3D &use_facet<__ctype_type>(__loc);=0A=
       else=0A=
         _M_fctype =3D 0;=0A=
 =0A=
       if (has_facet<__numput_type>(__loc))=0A=
         _M_fnumput =3D &use_facet<__numput_type>(__loc);=0A=
       else=0A=
         _M_fnumput =3D 0;=0A=
       if (has_facet<__numget_type>(__loc))=0A=
         _M_fnumget =3D &use_facet<__numget_type>(__loc);=0A=
       else=0A=
         _M_fnumget =3D 0;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class basic_ios<char>;=0A=
   extern template class basic_ios<wchar_t>;=0A=
 }=0A=
 # 208 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A=
 # 52 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/ostream" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_ostream : virtual public basic_ios<_CharT, _Traits>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef typename _Traits::int_type int_type;=0A=
       typedef typename _Traits::pos_type pos_type;=0A=
       typedef typename _Traits::off_type off_type;=0A=
       typedef _Traits traits_type;=0A=
 =0A=
 =0A=
       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A=
       typedef basic_ios<_CharT, _Traits> __ios_type;=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
       typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;=0A=
       typedef num_put<_CharT, __ostreambuf_iter> __numput_type;=0A=
       typedef ctype<_CharT> __ctype_type;=0A=
 =0A=
 =0A=
       explicit=0A=
       basic_ostream(__streambuf_type* __sb)=0A=
       { this->init(__sb); }=0A=
 =0A=
       virtual=0A=
       ~basic_ostream() { }=0A=
 =0A=
 =0A=
       class sentry;=0A=
       friend class sentry;=0A=
 =0A=
 =0A=
 =0A=
       __ostream_type&=0A=
       operator<<(__ostream_type& (*__pf)(__ostream_type&));=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(__ios_type& (*__pf)(__ios_type&));=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(ios_base& (*__pf) (ios_base&));=0A=
 =0A=
 =0A=
       __ostream_type&=0A=
       operator<<(long __n);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(unsigned long __n);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(bool __n);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(short __n)=0A=
       {=0A=
         ios_base::fmtflags __fmt =3D this->flags() & ios_base::basefield;=0A=
         if (__fmt & ios_base::oct || __fmt & ios_base::hex)=0A=
           return this->operator<<(static_cast<unsigned long>=0A=
                                   (static_cast<unsigned short>(__n)));=0A=
         else=0A=
           return this->operator<<(static_cast<long>(__n));=0A=
       }=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(unsigned short __n)=0A=
       { return this->operator<<(static_cast<unsigned long>(__n)); }=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(int __n)=0A=
       {=0A=
         ios_base::fmtflags __fmt =3D this->flags() & ios_base::basefield;=0A=
         if (__fmt & ios_base::oct || __fmt & ios_base::hex)=0A=
           return this->operator<<(static_cast<unsigned long>=0A=
                                   (static_cast<unsigned int>(__n)));=0A=
         else=0A=
           return this->operator<<(static_cast<long>(__n));=0A=
       }=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(unsigned int __n)=0A=
       { return this->operator<<(static_cast<unsigned long>(__n)); }=0A=
 =0A=
 =0A=
       __ostream_type&=0A=
       operator<<(long long __n);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(unsigned long long __n);=0A=
 =0A=
 =0A=
       __ostream_type&=0A=
       operator<<(double __f);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(float __f)=0A=
       { return this->operator<<(static_cast<double>(__f)); }=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(long double __f);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(const void* __p);=0A=
 =0A=
       __ostream_type&=0A=
       operator<<(__streambuf_type* __sb);=0A=
 =0A=
 =0A=
       __ostream_type&=0A=
       put(char_type __c);=0A=
 =0A=
       __ostream_type&=0A=
       write(const char_type* __s, streamsize __n);=0A=
 =0A=
       __ostream_type&=0A=
       flush();=0A=
 =0A=
 =0A=
       pos_type=0A=
       tellp();=0A=
 =0A=
       __ostream_type&=0A=
       seekp(pos_type);=0A=
 =0A=
       __ostream_type&=0A=
       seekp(off_type, ios_base::seekdir);=0A=
     };=0A=
 =0A=
 =0A=
   template <typename _CharT, typename _Traits>=0A=
     class basic_ostream<_CharT, _Traits>::sentry=0A=
     {=0A=
 =0A=
       bool _M_ok;=0A=
       basic_ostream<_CharT,_Traits>& _M_os;=0A=
 =0A=
     public:=0A=
       explicit=0A=
       sentry(basic_ostream<_CharT,_Traits>& __os);=0A=
 =0A=
       ~sentry()=0A=
       {=0A=
 =0A=
         if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception())=0A=
           {=0A=
 =0A=
             if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() =3D=3D -1)=0A=
               _M_os.setstate(ios_base::badbit);=0A=
           }=0A=
       }=0A=
 =0A=
       operator bool()=0A=
       { return _M_ok; }=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c);=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)=0A=
     { return (__out << __out.widen(__c)); }=0A=
 =0A=
 =0A=
   template <class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, char __c);=0A=
 =0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)=0A=
     { return (__out << static_cast<char>(__c)); }=0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)=0A=
     { return (__out << static_cast<char>(__c)); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s);=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits> &=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);=0A=
 =0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, const char* __s);=0A=
 =0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, const signed char* =
 __s)=0A=
     { return (__out << reinterpret_cast<const char*>(__s)); }=0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits> &=0A=
     operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* =
 __s)=0A=
     { return (__out << reinterpret_cast<const char*>(__s)); }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     endl(basic_ostream<_CharT, _Traits>& __os)=0A=
     { return flush(__os.put(__os.widen('\n'))); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     ends(basic_ostream<_CharT, _Traits>& __os)=0A=
     { return __os.put(_CharT()); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     flush(basic_ostream<_CharT, _Traits>& __os)=0A=
     { return __os.flush(); }=0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 1 3=0A=
 # 36 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/locale" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/locale" 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 1 3=0A=
 # 37 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cerrno" 1 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/cerrno" 3=0A=
 =0A=
 # 1 "/usr/include/errno.h" 1 3=0A=
 # 32 "/usr/include/errno.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/errno.h" 1 3=0A=
 # 25 "/usr/include/bits/errno.h" 3=0A=
 # 1 "/usr/include/linux/errno.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/asm/errno.h" 1 3=0A=
 # 5 "/usr/include/linux/errno.h" 2 3=0A=
 # 26 "/usr/include/bits/errno.h" 2 3=0A=
 # 36 "/usr/include/bits/errno.h" 3=0A=
 extern int errno;=0A=
 =0A=
 =0A=
 extern int *__errno_location (void) throw () __attribute__ ((__const__));=0A=
 # 37 "/usr/include/errno.h" 2 3=0A=
 # 55 "/usr/include/errno.h" 3=0A=
 extern char *program_invocation_name, *program_invocation_short_name;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 69 "/usr/include/errno.h" 3=0A=
 typedef int error_t;=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/cerrno" 2 3=0A=
 # 39 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/cmath" 1 3=0A=
 # 48 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/math.h" 1 3=0A=
 # 29 "/usr/include/math.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/huge_val.h" 1 3=0A=
 # 34 "/usr/include/math.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/nan.h" 1 3=0A=
 # 38 "/usr/include/math.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/mathdef.h" 1 3=0A=
 # 29 "/usr/include/bits/mathdef.h" 3=0A=
 typedef long double float_t;=0A=
 =0A=
 typedef long double double_t;=0A=
 # 41 "/usr/include/math.h" 2 3=0A=
 # 63 "/usr/include/math.h" 3=0A=
 # 1 "/usr/include/bits/mathcalls.h" 1 3=0A=
 # 54 "/usr/include/bits/mathcalls.h" 3=0A=
 extern double acos (double __x) throw (); extern double __acos (double =
 __x) throw ();=0A=
 =0A=
 extern double asin (double __x) throw (); extern double __asin (double =
 __x) throw ();=0A=
 =0A=
 extern double atan (double __x) throw (); extern double __atan (double =
 __x) throw ();=0A=
 =0A=
 extern double atan2 (double __y, double __x) throw (); extern double =
 __atan2 (double __y, double __x) throw ();=0A=
 =0A=
 =0A=
 extern double cos (double __x) throw (); extern double __cos (double =
 __x) throw ();=0A=
 =0A=
 extern double sin (double __x) throw (); extern double __sin (double =
 __x) throw ();=0A=
 =0A=
 extern double tan (double __x) throw (); extern double __tan (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void sincos (double __x, double *__sinx, double *__cosx) throw =
 (); extern void __sincos (double __x, double *__sinx, double *__cosx) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double cosh (double __x) throw (); extern double __cosh (double =
 __x) throw ();=0A=
 =0A=
 extern double sinh (double __x) throw (); extern double __sinh (double =
 __x) throw ();=0A=
 =0A=
 extern double tanh (double __x) throw (); extern double __tanh (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double acosh (double __x) throw (); extern double __acosh (double =
 __x) throw ();=0A=
 =0A=
 extern double asinh (double __x) throw (); extern double __asinh (double =
 __x) throw ();=0A=
 =0A=
 extern double atanh (double __x) throw (); extern double __atanh (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double exp (double __x) throw (); extern double __exp (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double exp10 (double __x) throw (); extern double __exp10 (double =
 __x) throw ();=0A=
 =0A=
 extern double pow10 (double __x) throw (); extern double __pow10 (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double frexp (double __x, int *__exponent) throw (); extern =
 double __frexp (double __x, int *__exponent) throw ();=0A=
 =0A=
 =0A=
 extern double ldexp (double __x, int __exponent) throw (); extern double =
 __ldexp (double __x, int __exponent) throw ();=0A=
 =0A=
 =0A=
 extern double log (double __x) throw (); extern double __log (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double log10 (double __x) throw (); extern double __log10 (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double modf (double __x, double *__iptr) throw (); extern double =
 __modf (double __x, double *__iptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double expm1 (double __x) throw (); extern double __expm1 (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double log1p (double __x) throw (); extern double __log1p (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double logb (double __x) throw (); extern double __logb (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double exp2 (double __x) throw (); extern double __exp2 (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double log2 (double __x) throw (); extern double __log2 (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double pow (double __x, double __y) throw (); extern double __pow =
 (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 extern double sqrt (double __x) throw (); extern double __sqrt (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double hypot (double __x, double __y) throw (); extern double =
 __hypot (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double cbrt (double __x) throw (); extern double __cbrt (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double ceil (double __x) throw () __attribute__ ((__const__)); =
 extern double __ceil (double __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern double fabs (double __x) throw () __attribute__ ((__const__)); =
 extern double __fabs (double __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern double floor (double __x) throw () __attribute__ ((__const__)); =
 extern double __floor (double __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern double fmod (double __x, double __y) throw (); extern double =
 __fmod (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isinf (double __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int __finite (double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int isinf (double __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int finite (double __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern double drem (double __x, double __y) throw (); extern double =
 __drem (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double significand (double __x) throw (); extern double =
 __significand (double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double copysign (double __x, double __y) throw () __attribute__ =
 ((__const__)); extern double __copysign (double __x, double __y) throw =
 () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double nan (__const char *__tagb) throw () __attribute__ =
 ((__const__)); extern double __nan (__const char *__tagb) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isnan (double __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern int isnan (double __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern double j0 (double) throw (); extern double __j0 (double) throw ();=0A=
 extern double j1 (double) throw (); extern double __j1 (double) throw ();=0A=
 extern double jn (int, double) throw (); extern double __jn (int, =
 double) throw ();=0A=
 extern double y0 (double) throw (); extern double __y0 (double) throw ();=0A=
 extern double y1 (double) throw (); extern double __y1 (double) throw ();=0A=
 extern double yn (int, double) throw (); extern double __yn (int, =
 double) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double erf (double) throw (); extern double __erf (double) throw =
 ();=0A=
 extern double erfc (double) throw (); extern double __erfc (double) =
 throw ();=0A=
 extern double lgamma (double) throw (); extern double __lgamma (double) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double tgamma (double) throw (); extern double __tgamma (double) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double gamma (double) throw (); extern double __gamma (double) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double lgamma_r (double, int *__signgamp) throw (); extern double =
 __lgamma_r (double, int *__signgamp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double rint (double __x) throw (); extern double __rint (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern double nextafter (double __x, double __y) throw () __attribute__ =
 ((__const__)); extern double __nextafter (double __x, double __y) throw =
 () __attribute__ ((__const__));=0A=
 =0A=
 extern double nexttoward (double __x, long double __y) throw () =
 __attribute__ ((__const__)); extern double __nexttoward (double __x, =
 long double __y) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern double remainder (double __x, double __y) throw (); extern double =
 __remainder (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double scalb (double __x, double __n) throw (); extern double =
 __scalb (double __x, double __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double scalbn (double __x, int __n) throw (); extern double =
 __scalbn (double __x, int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ilogb (double __x) throw (); extern int __ilogb (double __x) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double scalbln (double __x, long int __n) throw (); extern double =
 __scalbln (double __x, long int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double nearbyint (double __x) throw (); extern double __nearbyint =
 (double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double round (double __x) throw (); extern double __round (double =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double trunc (double __x) throw () __attribute__ ((__const__)); =
 extern double __trunc (double __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern double remquo (double __x, double __y, int *__quo) throw (); =
 extern double __remquo (double __x, double __y, int *__quo) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int lrint (double __x) throw (); extern long int __lrint =
 (double __x) throw ();=0A=
 extern long long int llrint (double __x) throw (); extern long long int =
 __llrint (double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long int lround (double __x) throw (); extern long int __lround =
 (double __x) throw ();=0A=
 extern long long int llround (double __x) throw (); extern long long int =
 __llround (double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern double fdim (double __x, double __y) throw (); extern double =
 __fdim (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 extern double fmax (double __x, double __y) throw (); extern double =
 __fmax (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 extern double fmin (double __x, double __y) throw (); extern double =
 __fmin (double __x, double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __fpclassify (double __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int __signbit (double __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern double fma (double __x, double __y, double __z) throw (); extern =
 double __fma (double __x, double __y, double __z) throw ();=0A=
 # 64 "/usr/include/math.h" 2 3=0A=
 # 82 "/usr/include/math.h" 3=0A=
 # 1 "/usr/include/bits/mathcalls.h" 1 3=0A=
 # 54 "/usr/include/bits/mathcalls.h" 3=0A=
 extern float acosf (float __x) throw (); extern float __acosf (float =
 __x) throw ();=0A=
 =0A=
 extern float asinf (float __x) throw (); extern float __asinf (float =
 __x) throw ();=0A=
 =0A=
 extern float atanf (float __x) throw (); extern float __atanf (float =
 __x) throw ();=0A=
 =0A=
 extern float atan2f (float __y, float __x) throw (); extern float =
 __atan2f (float __y, float __x) throw ();=0A=
 =0A=
 =0A=
 extern float cosf (float __x) throw (); extern float __cosf (float __x) =
 throw ();=0A=
 =0A=
 extern float sinf (float __x) throw (); extern float __sinf (float __x) =
 throw ();=0A=
 =0A=
 extern float tanf (float __x) throw (); extern float __tanf (float __x) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); =
 extern void __sincosf (float __x, float *__sinx, float *__cosx) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float coshf (float __x) throw (); extern float __coshf (float =
 __x) throw ();=0A=
 =0A=
 extern float sinhf (float __x) throw (); extern float __sinhf (float =
 __x) throw ();=0A=
 =0A=
 extern float tanhf (float __x) throw (); extern float __tanhf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float acoshf (float __x) throw (); extern float __acoshf (float =
 __x) throw ();=0A=
 =0A=
 extern float asinhf (float __x) throw (); extern float __asinhf (float =
 __x) throw ();=0A=
 =0A=
 extern float atanhf (float __x) throw (); extern float __atanhf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float expf (float __x) throw (); extern float __expf (float __x) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float exp10f (float __x) throw (); extern float __exp10f (float =
 __x) throw ();=0A=
 =0A=
 extern float pow10f (float __x) throw (); extern float __pow10f (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float frexpf (float __x, int *__exponent) throw (); extern float =
 __frexpf (float __x, int *__exponent) throw ();=0A=
 =0A=
 =0A=
 extern float ldexpf (float __x, int __exponent) throw (); extern float =
 __ldexpf (float __x, int __exponent) throw ();=0A=
 =0A=
 =0A=
 extern float logf (float __x) throw (); extern float __logf (float __x) =
 throw ();=0A=
 =0A=
 =0A=
 extern float log10f (float __x) throw (); extern float __log10f (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern float modff (float __x, float *__iptr) throw (); extern float =
 __modff (float __x, float *__iptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float expm1f (float __x) throw (); extern float __expm1f (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern float log1pf (float __x) throw (); extern float __log1pf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern float logbf (float __x) throw (); extern float __logbf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float exp2f (float __x) throw (); extern float __exp2f (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern float log2f (float __x) throw (); extern float __log2f (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float powf (float __x, float __y) throw (); extern float __powf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 extern float sqrtf (float __x) throw (); extern float __sqrtf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float hypotf (float __x, float __y) throw (); extern float =
 __hypotf (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float cbrtf (float __x) throw (); extern float __cbrtf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float ceilf (float __x) throw () __attribute__ ((__const__)); =
 extern float __ceilf (float __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern float fabsf (float __x) throw () __attribute__ ((__const__)); =
 extern float __fabsf (float __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern float floorf (float __x) throw () __attribute__ ((__const__)); =
 extern float __floorf (float __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern float fmodf (float __x, float __y) throw (); extern float __fmodf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isinff (float __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int __finitef (float __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int isinff (float __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int finitef (float __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern float dremf (float __x, float __y) throw (); extern float __dremf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float significandf (float __x) throw (); extern float =
 __significandf (float __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float copysignf (float __x, float __y) throw () __attribute__ =
 ((__const__)); extern float __copysignf (float __x, float __y) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float nanf (__const char *__tagb) throw () __attribute__ =
 ((__const__)); extern float __nanf (__const char *__tagb) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isnanf (float __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern int isnanf (float __value) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern float j0f (float) throw (); extern float __j0f (float) throw ();=0A=
 extern float j1f (float) throw (); extern float __j1f (float) throw ();=0A=
 extern float jnf (int, float) throw (); extern float __jnf (int, float) =
 throw ();=0A=
 extern float y0f (float) throw (); extern float __y0f (float) throw ();=0A=
 extern float y1f (float) throw (); extern float __y1f (float) throw ();=0A=
 extern float ynf (int, float) throw (); extern float __ynf (int, float) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float erff (float) throw (); extern float __erff (float) throw ();=0A=
 extern float erfcf (float) throw (); extern float __erfcf (float) throw =
 ();=0A=
 extern float lgammaf (float) throw (); extern float __lgammaf (float) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float tgammaf (float) throw (); extern float __tgammaf (float) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float gammaf (float) throw (); extern float __gammaf (float) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float lgammaf_r (float, int *__signgamp) throw (); extern float =
 __lgammaf_r (float, int *__signgamp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float rintf (float __x) throw (); extern float __rintf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 extern float nextafterf (float __x, float __y) throw () __attribute__ =
 ((__const__)); extern float __nextafterf (float __x, float __y) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 extern float nexttowardf (float __x, long double __y) throw () =
 __attribute__ ((__const__)); extern float __nexttowardf (float __x, long =
 double __y) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern float remainderf (float __x, float __y) throw (); extern float =
 __remainderf (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float scalbf (float __x, float __n) throw (); extern float =
 __scalbf (float __x, float __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float scalbnf (float __x, int __n) throw (); extern float =
 __scalbnf (float __x, int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float scalblnf (float __x, long int __n) throw (); extern float =
 __scalblnf (float __x, long int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float nearbyintf (float __x) throw (); extern float __nearbyintf =
 (float __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float roundf (float __x) throw (); extern float __roundf (float =
 __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float truncf (float __x) throw () __attribute__ ((__const__)); =
 extern float __truncf (float __x) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern float remquof (float __x, float __y, int *__quo) throw (); extern =
 float __remquof (float __x, float __y, int *__quo) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int lrintf (float __x) throw (); extern long int __lrintf =
 (float __x) throw ();=0A=
 extern long long int llrintf (float __x) throw (); extern long long int =
 __llrintf (float __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long int lroundf (float __x) throw (); extern long int __lroundf =
 (float __x) throw ();=0A=
 extern long long int llroundf (float __x) throw (); extern long long int =
 __llroundf (float __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern float fdimf (float __x, float __y) throw (); extern float __fdimf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 extern float fminf (float __x, float __y) throw (); extern float __fminf =
 (float __x, float __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __fpclassifyf (float __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int __signbitf (float __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern float fmaf (float __x, float __y, float __z) throw (); extern =
 float __fmaf (float __x, float __y, float __z) throw ();=0A=
 # 83 "/usr/include/math.h" 2 3=0A=
 # 99 "/usr/include/math.h" 3=0A=
 # 1 "/usr/include/bits/mathcalls.h" 1 3=0A=
 # 54 "/usr/include/bits/mathcalls.h" 3=0A=
 extern long double acosl (long double __x) throw (); extern long double =
 __acosl (long double __x) throw ();=0A=
 =0A=
 extern long double asinl (long double __x) throw (); extern long double =
 __asinl (long double __x) throw ();=0A=
 =0A=
 extern long double atanl (long double __x) throw (); extern long double =
 __atanl (long double __x) throw ();=0A=
 =0A=
 extern long double atan2l (long double __y, long double __x) throw (); =
 extern long double __atan2l (long double __y, long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double cosl (long double __x) throw (); extern long double =
 __cosl (long double __x) throw ();=0A=
 =0A=
 extern long double sinl (long double __x) throw (); extern long double =
 __sinl (long double __x) throw ();=0A=
 =0A=
 extern long double tanl (long double __x) throw (); extern long double =
 __tanl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void sincosl (long double __x, long double *__sinx, long double =
 *__cosx) throw (); extern void __sincosl (long double __x, long double =
 *__sinx, long double *__cosx) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double coshl (long double __x) throw (); extern long double =
 __coshl (long double __x) throw ();=0A=
 =0A=
 extern long double sinhl (long double __x) throw (); extern long double =
 __sinhl (long double __x) throw ();=0A=
 =0A=
 extern long double tanhl (long double __x) throw (); extern long double =
 __tanhl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double acoshl (long double __x) throw (); extern long double =
 __acoshl (long double __x) throw ();=0A=
 =0A=
 extern long double asinhl (long double __x) throw (); extern long double =
 __asinhl (long double __x) throw ();=0A=
 =0A=
 extern long double atanhl (long double __x) throw (); extern long double =
 __atanhl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double expl (long double __x) throw (); extern long double =
 __expl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double exp10l (long double __x) throw (); extern long double =
 __exp10l (long double __x) throw ();=0A=
 =0A=
 extern long double pow10l (long double __x) throw (); extern long double =
 __pow10l (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double frexpl (long double __x, int *__exponent) throw (); =
 extern long double __frexpl (long double __x, int *__exponent) throw ();=0A=
 =0A=
 =0A=
 extern long double ldexpl (long double __x, int __exponent) throw (); =
 extern long double __ldexpl (long double __x, int __exponent) throw ();=0A=
 =0A=
 =0A=
 extern long double logl (long double __x) throw (); extern long double =
 __logl (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double log10l (long double __x) throw (); extern long double =
 __log10l (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double modfl (long double __x, long double *__iptr) throw =
 (); extern long double __modfl (long double __x, long double *__iptr) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double expm1l (long double __x) throw (); extern long double =
 __expm1l (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double log1pl (long double __x) throw (); extern long double =
 __log1pl (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double logbl (long double __x) throw (); extern long double =
 __logbl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double exp2l (long double __x) throw (); extern long double =
 __exp2l (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double log2l (long double __x) throw (); extern long double =
 __log2l (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double powl (long double __x, long double __y) throw (); =
 extern long double __powl (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 extern long double sqrtl (long double __x) throw (); extern long double =
 __sqrtl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double hypotl (long double __x, long double __y) throw (); =
 extern long double __hypotl (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double cbrtl (long double __x) throw (); extern long double =
 __cbrtl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double ceill (long double __x) throw () __attribute__ =
 ((__const__)); extern long double __ceill (long double __x) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern long double fabsl (long double __x) throw () __attribute__ =
 ((__const__)); extern long double __fabsl (long double __x) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern long double floorl (long double __x) throw () __attribute__ =
 ((__const__)); extern long double __floorl (long double __x) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern long double fmodl (long double __x, long double __y) throw (); =
 extern long double __fmodl (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isinfl (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 extern int __finitel (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int isinfl (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 extern int finitel (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 extern long double dreml (long double __x, long double __y) throw (); =
 extern long double __dreml (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double significandl (long double __x) throw (); extern long =
 double __significandl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double copysignl (long double __x, long double __y) throw () =
 __attribute__ ((__const__)); extern long double __copysignl (long double =
 __x, long double __y) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double nanl (__const char *__tagb) throw () __attribute__ =
 ((__const__)); extern long double __nanl (__const char *__tagb) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __isnanl (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern int isnanl (long double __value) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 extern long double j0l (long double) throw (); extern long double __j0l =
 (long double) throw ();=0A=
 extern long double j1l (long double) throw (); extern long double __j1l =
 (long double) throw ();=0A=
 extern long double jnl (int, long double) throw (); extern long double =
 __jnl (int, long double) throw ();=0A=
 extern long double y0l (long double) throw (); extern long double __y0l =
 (long double) throw ();=0A=
 extern long double y1l (long double) throw (); extern long double __y1l =
 (long double) throw ();=0A=
 extern long double ynl (int, long double) throw (); extern long double =
 __ynl (int, long double) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double erfl (long double) throw (); extern long double =
 __erfl (long double) throw ();=0A=
 extern long double erfcl (long double) throw (); extern long double =
 __erfcl (long double) throw ();=0A=
 extern long double lgammal (long double) throw (); extern long double =
 __lgammal (long double) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double tgammal (long double) throw (); extern long double =
 __tgammal (long double) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double gammal (long double) throw (); extern long double =
 __gammal (long double) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double lgammal_r (long double, int *__signgamp) throw (); =
 extern long double __lgammal_r (long double, int *__signgamp) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double rintl (long double __x) throw (); extern long double =
 __rintl (long double __x) throw ();=0A=
 =0A=
 =0A=
 extern long double nextafterl (long double __x, long double __y) throw =
 () __attribute__ ((__const__)); extern long double __nextafterl (long =
 double __x, long double __y) throw () __attribute__ ((__const__));=0A=
 =0A=
 extern long double nexttowardl (long double __x, long double __y) throw =
 () __attribute__ ((__const__)); extern long double __nexttowardl (long =
 double __x, long double __y) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern long double remainderl (long double __x, long double __y) throw =
 (); extern long double __remainderl (long double __x, long double __y) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double scalbl (long double __x, long double __n) throw (); =
 extern long double __scalbl (long double __x, long double __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double scalbnl (long double __x, int __n) throw (); extern =
 long double __scalbnl (long double __x, int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ilogbl (long double __x) throw (); extern int __ilogbl (long =
 double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double scalblnl (long double __x, long int __n) throw (); =
 extern long double __scalblnl (long double __x, long int __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double nearbyintl (long double __x) throw (); extern long =
 double __nearbyintl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double roundl (long double __x) throw (); extern long double =
 __roundl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double truncl (long double __x) throw () __attribute__ =
 ((__const__)); extern long double __truncl (long double __x) throw () =
 __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long double remquol (long double __x, long double __y, int =
 *__quo) throw (); extern long double __remquol (long double __x, long =
 double __y, int *__quo) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int lrintl (long double __x) throw (); extern long int =
 __lrintl (long double __x) throw ();=0A=
 extern long long int llrintl (long double __x) throw (); extern long =
 long int __llrintl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long int lroundl (long double __x) throw (); extern long int =
 __lroundl (long double __x) throw ();=0A=
 extern long long int llroundl (long double __x) throw (); extern long =
 long int __llroundl (long double __x) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern long double fdiml (long double __x, long double __y) throw (); =
 extern long double __fdiml (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 extern long double fmaxl (long double __x, long double __y) throw (); =
 extern long double __fmaxl (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 extern long double fminl (long double __x, long double __y) throw (); =
 extern long double __fminl (long double __x, long double __y) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __fpclassifyl (long double __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 extern int __signbitl (long double __value) throw ()=0A=
      __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern long double fmal (long double __x, long double __y, long double =
 __z) throw (); extern long double __fmal (long double __x, long double =
 __y, long double __z) throw ();=0A=
 # 100 "/usr/include/math.h" 2 3=0A=
 # 113 "/usr/include/math.h" 3=0A=
 extern int signgam;=0A=
 # 154 "/usr/include/math.h" 3=0A=
 enum=0A=
   {=0A=
     FP_NAN,=0A=
 =0A=
     FP_INFINITE,=0A=
 =0A=
     FP_ZERO,=0A=
 =0A=
     FP_SUBNORMAL,=0A=
 =0A=
     FP_NORMAL=0A=
 =0A=
   };=0A=
 # 240 "/usr/include/math.h" 3=0A=
 typedef enum=0A=
 {=0A=
   _IEEE_ =3D -1,=0A=
   _SVID_,=0A=
   _XOPEN_,=0A=
   _POSIX_,=0A=
   _ISOC_=0A=
 } _LIB_VERSION_TYPE;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern _LIB_VERSION_TYPE _LIB_VERSION;=0A=
 # 263 "/usr/include/math.h" 3=0A=
 struct __exception=0A=
 =0A=
 =0A=
 =0A=
   {=0A=
     int type;=0A=
     char *name;=0A=
     double arg1;=0A=
     double arg2;=0A=
     double retval;=0A=
   };=0A=
 =0A=
 =0A=
 extern int matherr (struct __exception *__exc) throw ();=0A=
 # 411 "/usr/include/math.h" 3=0A=
 }=0A=
 # 52 "/usr/local/gcc3.1/include/g++-v3/cmath" 2 3=0A=
 # 79 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
   template<typename _Tp> _Tp __cmath_power(_Tp, unsigned int);=0A=
 =0A=
   template<typename _Tp>=0A=
   inline _Tp=0A=
     __cmath_abs(_Tp __x)=0A=
     {=0A=
       return __x < _Tp() ? -__x : __x;=0A=
     }=0A=
 =0A=
   inline double=0A=
   abs(double __x)=0A=
   { return __builtin_fabs(__x); }=0A=
 =0A=
   inline float=0A=
   abs(float __x)=0A=
   { return __builtin_fabsf(__x); }=0A=
 =0A=
   inline long double=0A=
   abs(long double __x)=0A=
   { return __builtin_fabsl(__x); }=0A=
 =0A=
 =0A=
   inline float=0A=
   acos(float __x) { return ::acosf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::acos;=0A=
 =0A=
 =0A=
   inline long double=0A=
   acos(long double __x) { return ::acosl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::asin;=0A=
 =0A=
 =0A=
   inline float=0A=
   asin(float __x) { return ::asinf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   asin(long double __x) { return ::asinl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::atan;=0A=
 =0A=
 =0A=
   inline float=0A=
   atan(float __x) { return ::atanf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   atan(long double __x) { return ::atanl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::atan2;=0A=
 =0A=
 =0A=
   inline float=0A=
   atan2(float __y, float __x) { return ::atan2f(__y, __x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   atan2(long double __y, long double __x) { return ::atan2l(__y, __x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::ceil;=0A=
 =0A=
 =0A=
   inline float=0A=
   ceil(float __x) { return ::ceilf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   ceil(long double __x) { return ::ceill(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::cos;=0A=
 =0A=
   inline float=0A=
   cos(float __x)=0A=
   { return __builtin_cosf(__x); }=0A=
 =0A=
   inline long double=0A=
   cos(long double __x)=0A=
   { return __builtin_cosl(__x); }=0A=
 =0A=
   using ::cosh;=0A=
 =0A=
 =0A=
   inline float=0A=
   cosh(float __x) { return ::coshf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   cosh(long double __x) { return ::coshl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::exp;=0A=
 =0A=
 =0A=
   inline float=0A=
   exp(float __x) { return ::expf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   exp(long double __x) { return ::expl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::fabs;=0A=
 =0A=
   inline float=0A=
   fabs(float __x)=0A=
   { return __builtin_fabsf(__x); }=0A=
 =0A=
   inline long double=0A=
   fabs(long double __x)=0A=
   { return __builtin_fabsl(__x); }=0A=
 =0A=
   using ::floor;=0A=
 =0A=
 =0A=
   inline float=0A=
   floor(float __x) { return ::floorf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   floor(long double __x) { return ::floorl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::fmod;=0A=
 =0A=
 =0A=
   inline float=0A=
   fmod(float __x, float __y) { return ::fmodf(__x, __y); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   fmod(long double __x, long double __y) { return ::fmodl(__x, __y); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::frexp;=0A=
 =0A=
 =0A=
   inline float=0A=
   frexp(float __x, int* __exp) { return ::frexpf(__x, __exp); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::ldexp;=0A=
 =0A=
 =0A=
   inline float=0A=
   ldexp(float __x, int __exp) { return ::ldexpf(__x, __exp); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::log;=0A=
 =0A=
 =0A=
   inline float=0A=
   log(float __x) { return ::logf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   log(long double __x) { return ::logl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::log10;=0A=
 =0A=
 =0A=
   inline float=0A=
   log10(float __x) { return ::log10f(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   log10(long double __x) { return ::log10l(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::modf;=0A=
 =0A=
 =0A=
   inline float=0A=
   modf(float __x, float* __iptr) { return ::modff(__x, __iptr); }=0A=
 # 382 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A=
   inline long double=0A=
   modf(long double __x, long double* __iptr) { return ::modfl(__x, =
 __iptr); }=0A=
 # 395 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A=
   template<typename _Tp>=0A=
     inline _Tp=0A=
     __pow_helper(_Tp __x, int __n)=0A=
     {=0A=
       return __n < 0=0A=
         ? _Tp(1)/__cmath_power(__x, -__n)=0A=
         : __cmath_power(__x, __n);=0A=
     }=0A=
 =0A=
   using ::pow;=0A=
 =0A=
 =0A=
   inline float=0A=
   pow(float __x, float __y) { return ::powf(__x, __y); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   pow(long double __x, long double __y) { return ::powl(__x, __y); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline double=0A=
   pow(double __x, int __i)=0A=
   { return __pow_helper(__x, __i); }=0A=
 =0A=
   inline float=0A=
   pow(float __x, int __n)=0A=
   { return __pow_helper(__x, __n); }=0A=
 =0A=
   inline long double=0A=
   pow(long double __x, int __n)=0A=
   { return __pow_helper(__x, __n); }=0A=
 =0A=
   using ::sin;=0A=
 =0A=
   inline float=0A=
   sin(float __x)=0A=
   { return __builtin_sinf(__x); }=0A=
 =0A=
   inline long double=0A=
   sin(long double __x)=0A=
   { return __builtin_sinl(__x); }=0A=
 =0A=
   using ::sinh;=0A=
 =0A=
 =0A=
   inline float=0A=
   sinh(float __x) { return ::sinhf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   sinh(long double __x) { return ::sinhl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::sqrt;=0A=
 =0A=
   inline float=0A=
   sqrt(float __x)=0A=
   { return __builtin_sqrtf(__x); }=0A=
 =0A=
   inline long double=0A=
   sqrt(long double __x)=0A=
   { return __builtin_sqrtl(__x); }=0A=
 =0A=
   using ::tan;=0A=
 =0A=
 =0A=
   inline float=0A=
   tan(float __x) { return ::tanf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   tan(long double __x) { return ::tanl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   using ::tanh;=0A=
 =0A=
 =0A=
   inline float=0A=
   tanh(float __x) { return ::tanhf(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   inline long double=0A=
   tanh(long double __x) { return ::tanhl(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace __gnu_cxx=0A=
 {=0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_fpclassify(_Tp __f) { return (sizeof (__f) =3D=3D sizeof =
 (float) ? __fpclassifyf (__f) : sizeof (__f) =3D=3D sizeof (double) ? =
 __fpclassify (__f) : __fpclassifyl (__f)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_isfinite(_Tp __f) { return (sizeof (__f) =3D=3D sizeof =
 (float) ? __finitef (__f) : sizeof (__f) =3D=3D sizeof (double) ? =
 __finite (__f) : __finitel (__f)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_isinf(_Tp __f) { return (sizeof (__f) =3D=3D sizeof =
 (float) ? __isinff (__f) : sizeof (__f) =3D=3D sizeof (double) ? __isinf =
 (__f) : __isinfl (__f)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_isnan(_Tp __f) { return (sizeof (__f) =3D=3D sizeof =
 (float) ? __isnanf (__f) : sizeof (__f) =3D=3D sizeof (double) ? __isnan =
 (__f) : __isnanl (__f)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_isnormal(_Tp __f) { return ((sizeof (__f) =3D=3D sizeof =
 (float) ? __fpclassifyf (__f) : sizeof (__f) =3D=3D sizeof (double) ? =
 __fpclassify (__f) : __fpclassifyl (__f)) =3D=3D FP_NORMAL); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_signbit(_Tp __f) { return (sizeof (__f) =3D=3D sizeof =
 (float) ? __signbitf (__f) : sizeof (__f) =3D=3D sizeof (double) ? =
 __signbit (__f) : __signbitl (__f)); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     __capture_isgreater(_Tp __f1, _Tp __f2)=0A=
     { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); =
 __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u =
 =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof =
 (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? =
 __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =
 =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof =
 (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) =
 && __x > __y; })); }=0A=
 =0A=
   template<typename _Tp>=0A=
      int=0A=
      __capture_isgreaterequal(_Tp __f1, _Tp __f2)=0A=
      { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); =
 __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u =
 =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof =
 (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? =
 __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =
 =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof =
 (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) =
 && __x >=3D __y; })); }=0A=
 =0A=
   template<typename _Tp>=0A=
      int=0A=
      __capture_isless(_Tp __f1, _Tp __f2) { return (__extension__ ({ =
 __typeof__(__f1) __x =3D (__f1); __typeof__(__f2) __y =3D (__f2); =
 !(__extension__ ({ __typeof__(__x) __u =3D (__x); __typeof__(__y) __v =
 =3D (__y); (sizeof (__u) =3D=3D sizeof (float) ? __fpclassifyf (__u) : =
 sizeof (__u) =3D=3D sizeof (double) ? __fpclassify (__u) : __fpclassifyl =
 (__u)) =3D=3D FP_NAN || (sizeof (__v) =3D=3D sizeof (float) ? =
 __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof (double) ? __fpclassify =
 (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) && __x < __y; })); }=0A=
 =0A=
   template<typename _Tp>=0A=
      int=0A=
      __capture_islessequal(_Tp __f1, _Tp __f2)=0A=
      { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); =
 __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u =
 =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof =
 (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? =
 __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =
 =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof =
 (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) =
 && __x <=3D __y; })); }=0A=
 =0A=
   template<typename _Tp>=0A=
      int=0A=
      __capture_islessgreater(_Tp __f1, _Tp __f2)=0A=
      { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); =
 __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u =
 =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof =
 (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? =
 __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =
 =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof =
 (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) =
 && (__x < __y || __y < __x); })); }=0A=
 =0A=
   template<typename _Tp>=0A=
      int=0A=
      __capture_isunordered(_Tp __f1, _Tp __f2)=0A=
      { return (__extension__ ({ __typeof__(__f1) __u =3D (__f1); =
 __typeof__(__f2) __v =3D (__f2); (sizeof (__u) =3D=3D sizeof (float) ? =
 __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? __fpclassify =
 (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =3D=3D =
 sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof =
 (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })); =
 }=0A=
 }=0A=
 # 587 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A=
 namespace __gnu_cxx=0A=
 {=0A=
   template<typename _Tp>=0A=
     int=0A=
     fpclassify(_Tp __f) { return __capture_fpclassify(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isfinite(_Tp __f) { return __capture_isfinite(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isinf(_Tp __f) { return __capture_isinf(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isnan(_Tp __f) { return __capture_isnan(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isnormal(_Tp __f) { return __capture_isnormal(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     signbit(_Tp __f) { return __capture_signbit(__f); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, =
 __f2); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isgreaterequal(_Tp __f1, _Tp __f2)=0A=
     { return __capture_isgreaterequal(__f1, __f2); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     islessequal(_Tp __f1, _Tp __f2)=0A=
     { return __capture_islessequal(__f1, __f2); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     islessgreater(_Tp __f1, _Tp __f2)=0A=
     { return __capture_islessgreater(__f1, __f2); }=0A=
 =0A=
   template<typename _Tp>=0A=
     int=0A=
     isunordered(_Tp __f1, _Tp __f2)=0A=
     { return __capture_isunordered(__f1, __f2); }=0A=
 }=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using __gnu_cxx::fpclassify;=0A=
   using __gnu_cxx::isfinite;=0A=
   using __gnu_cxx::isinf;=0A=
   using __gnu_cxx::isnan;=0A=
   using __gnu_cxx::isnormal;=0A=
   using __gnu_cxx::signbit;=0A=
   using __gnu_cxx::isgreater;=0A=
   using __gnu_cxx::isgreaterequal;=0A=
   using __gnu_cxx::isless;=0A=
   using __gnu_cxx::islessequal;=0A=
   using __gnu_cxx::islessgreater;=0A=
   using __gnu_cxx::isunordered;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/cmath.tcc" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/cmath.tcc" 3=0A=
 namespace std=0A=
 {=0A=
   template<typename _Tp>=0A=
     _Tp=0A=
     __cmath_power(_Tp __x, unsigned int __n)=0A=
     {=0A=
       _Tp __y =3D __n % 2 ? __x : 1;=0A=
 =0A=
       while (__n >>=3D 1)=0A=
         {=0A=
           __x =3D __x * __x;=0A=
           if (__n % 2)=0A=
             __y =3D __y * __x;=0A=
         }=0A=
 =0A=
       return __y;=0A=
     }=0A=
 }=0A=
 # 662 "/usr/local/gcc3.1/include/g++-v3/cmath" 2 3=0A=
 # 42 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/limits" 1 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/cpu_limits.h" 1 =
 3=0A=
 # 49 "/usr/local/gcc3.1/include/g++-v3/limits" 2 3=0A=
 # 887 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
 namespace std=0A=
 {=0A=
   enum float_round_style=0A=
   {=0A=
     round_indeterminate =3D -1,=0A=
     round_toward_zero =3D 0,=0A=
     round_to_nearest =3D 1,=0A=
     round_toward_infinity =3D 2,=0A=
     round_toward_neg_infinity =3D 3=0A=
   };=0A=
 =0A=
   enum float_denorm_style=0A=
   {=0A=
     denorm_indeterminate =3D -1,=0A=
     denorm_absent =3D 0,=0A=
     denorm_present =3D 1=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   struct __numeric_limits_base=0A=
   {=0A=
     static const bool is_specialized =3D false;=0A=
 =0A=
     static const int digits =3D 0;=0A=
     static const int digits10 =3D 0;=0A=
     static const bool is_signed =3D false;=0A=
     static const bool is_integer =3D false;=0A=
     static const bool is_exact =3D false;=0A=
     static const int radix =3D 0;=0A=
 =0A=
     static const int min_exponent =3D 0;=0A=
     static const int min_exponent10 =3D 0;=0A=
     static const int max_exponent =3D 0;=0A=
     static const int max_exponent10 =3D 0;=0A=
 =0A=
     static const bool has_infinity =3D false;=0A=
     static const bool has_quiet_NaN =3D false;=0A=
     static const bool has_signaling_NaN =3D false;=0A=
     static const float_denorm_style has_denorm =3D denorm_absent;=0A=
     static const bool has_denorm_loss =3D false;=0A=
 =0A=
     static const bool is_iec559 =3D false;=0A=
     static const bool is_bounded =3D false;=0A=
     static const bool is_modulo =3D false;=0A=
 =0A=
     static const bool traps =3D false;=0A=
     static const bool tinyness_before =3D false;=0A=
     static const float_round_style round_style =3D round_toward_zero;=0A=
   };=0A=
 =0A=
   template<typename _Tp>=0A=
     struct numeric_limits : public __numeric_limits_base=0A=
     {=0A=
       static _Tp min() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp max() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp epsilon() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp round_error() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp infinity() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }=0A=
       static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<bool>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static bool min() throw()=0A=
       { return false; }=0A=
 =0A=
       static bool max() throw()=0A=
       { return true; }=0A=
 =0A=
       static const int digits =3D 1;=0A=
       static const int digits10 =3D 0;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static bool epsilon() throw()=0A=
       { return false; }=0A=
       static bool round_error() throw()=0A=
       { return false; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static bool infinity() throw()=0A=
       { return false; }=0A=
       static bool quiet_NaN() throw()=0A=
       { return false; }=0A=
       static bool signaling_NaN() throw()=0A=
       { return false; }=0A=
       static bool denorm_min() throw()=0A=
       { return false; }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D false;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       static const bool traps =3D true=0A=
                || true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<char>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static char min() throw()=0A=
       { return (char)(-127 - 1); }=0A=
       static char max() throw()=0A=
       { return (char)127; }=0A=
 =0A=
       static const int digits =3D 7;=0A=
       static const int digits10 =3D 7;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static char epsilon() throw()=0A=
       { return char(); }=0A=
       static char round_error() throw()=0A=
       { return char(); }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static char infinity() throw()=0A=
       { return char(); }=0A=
       static char quiet_NaN() throw()=0A=
       { return char(); }=0A=
       static char signaling_NaN() throw()=0A=
       { return char(); }=0A=
       static char denorm_min() throw()=0A=
       { return static_cast<char>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1071 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<signed char>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static signed char min() throw()=0A=
       { return (-127 - 1); }=0A=
       static signed char max() throw()=0A=
       { return 127; }=0A=
 =0A=
       static const int digits =3D 7;=0A=
       static const int digits10 =3D 2;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static signed char epsilon() throw()=0A=
       { return 0; }=0A=
       static signed char round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static signed char infinity() throw()=0A=
       { return static_cast<signed char>(0); }=0A=
       static signed char quiet_NaN() throw()=0A=
       { return static_cast<signed char>(0); }=0A=
       static signed char signaling_NaN() throw()=0A=
       { return static_cast<signed char>(0); }=0A=
       static signed char denorm_min() throw()=0A=
       { return static_cast<signed char>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1128 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<unsigned char>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static unsigned char min() throw()=0A=
       { return 0; }=0A=
       static unsigned char max() throw()=0A=
       { return (127 * 2 + 1); }=0A=
 =0A=
       static const int digits =3D 8;=0A=
       static const int digits10 =3D 2;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static unsigned char epsilon() throw()=0A=
       { return 0; }=0A=
       static unsigned char round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static unsigned char infinity() throw()=0A=
       { return static_cast<unsigned char>(0); }=0A=
       static unsigned char quiet_NaN() throw()=0A=
       { return static_cast<unsigned char>(0); }=0A=
       static unsigned char signaling_NaN() throw()=0A=
       { return static_cast<unsigned char>(0); }=0A=
       static unsigned char denorm_min() throw()=0A=
       { return static_cast<unsigned char>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<wchar_t>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static wchar_t min() throw()=0A=
       { return (wchar_t)(-2147483647L - 1); }=0A=
       static wchar_t max() throw()=0A=
       { return (wchar_t)2147483647L; }=0A=
 =0A=
       static const int digits =3D 31;=0A=
       static const int digits10 =3D 9;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static wchar_t epsilon() throw()=0A=
       { return 0; }=0A=
       static wchar_t round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static wchar_t infinity() throw()=0A=
       { return wchar_t(); }=0A=
       static wchar_t quiet_NaN() throw()=0A=
       { return wchar_t(); }=0A=
       static wchar_t signaling_NaN() throw()=0A=
       { return wchar_t(); }=0A=
       static wchar_t denorm_min() throw()=0A=
       { return wchar_t(); }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1241 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<short>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static short min() throw()=0A=
       { return (-32767 - 1); }=0A=
       static short max() throw()=0A=
       { return 32767; }=0A=
 =0A=
       static const int digits =3D 15;=0A=
       static const int digits10 =3D 4;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static short epsilon() throw()=0A=
       { return 0; }=0A=
       static short round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static short infinity() throw()=0A=
       { return short(); }=0A=
       static short quiet_NaN() throw()=0A=
       { return short(); }=0A=
       static short signaling_NaN() throw()=0A=
       { return short(); }=0A=
       static short denorm_min() throw()=0A=
       { return short(); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1298 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<unsigned short>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static unsigned short min() throw()=0A=
       { return 0; }=0A=
       static unsigned short max() throw()=0A=
       { return (32767 * 2 + 1); }=0A=
 =0A=
       static const int digits =3D 16;=0A=
       static const int digits10 =3D 4;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static unsigned short epsilon() throw()=0A=
       { return 0; }=0A=
       static unsigned short round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static unsigned short infinity() throw()=0A=
       { return static_cast<unsigned short>(0); }=0A=
       static unsigned short quiet_NaN() throw()=0A=
       { return static_cast<unsigned short>(0); }=0A=
       static unsigned short signaling_NaN() throw()=0A=
       { return static_cast<unsigned short>(0); }=0A=
       static unsigned short denorm_min() throw()=0A=
       { return static_cast<unsigned short>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<int>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static int min() throw()=0A=
       { return (int)(-2147483647L - 1); }=0A=
       static int max() throw()=0A=
       { return (int)2147483647L; }=0A=
 =0A=
       static const int digits =3D 31;=0A=
       static const int digits10 =3D 9;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static int epsilon() throw()=0A=
       { return 0; }=0A=
       static int round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static int infinity() throw()=0A=
       { return static_cast<int>(0); }=0A=
       static int quiet_NaN() throw()=0A=
       { return static_cast<int>(0); }=0A=
       static int signaling_NaN() throw()=0A=
       { return static_cast<int>(0); }=0A=
       static int denorm_min() throw()=0A=
       { return static_cast<int>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1410 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<unsigned int>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static unsigned int min() throw()=0A=
       { return 0; }=0A=
           static unsigned int max() throw()=0A=
       { return (unsigned)(2147483647L * 2U + 1); }=0A=
 =0A=
       static const int digits =3D 32;=0A=
       static const int digits10 =3D 9;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static unsigned int epsilon() throw()=0A=
       { return 0; }=0A=
       static unsigned int round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static unsigned int infinity() throw()=0A=
       { return static_cast<unsigned int>(0); }=0A=
       static unsigned int quiet_NaN() throw()=0A=
       { return static_cast<unsigned int>(0); }=0A=
       static unsigned int signaling_NaN() throw()=0A=
       { return static_cast<unsigned int>(0); }=0A=
       static unsigned int denorm_min() throw()=0A=
       { return static_cast<unsigned int>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<long>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static long min() throw()=0A=
       { return (-2147483647L - 1); }=0A=
       static long max() throw()=0A=
       { return 2147483647L; }=0A=
 =0A=
       static const int digits =3D 31;=0A=
       static const int digits10 =3D 9;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static long epsilon() throw()=0A=
       { return 0; }=0A=
       static long round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static long infinity() throw()=0A=
       { return static_cast<long>(0); }=0A=
       static long quiet_NaN() throw()=0A=
       { return static_cast<long>(0); }=0A=
       static long signaling_NaN() throw()=0A=
       { return static_cast<long>(0); }=0A=
       static long denorm_min() throw()=0A=
       { return static_cast<long>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1522 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<unsigned long>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static unsigned long min() throw()=0A=
       { return 0; }=0A=
       static unsigned long max() throw()=0A=
       { return (2147483647L * 2U + 1); }=0A=
 =0A=
       static const int digits =3D 32;=0A=
       static const int digits10 =3D 9;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static unsigned long epsilon() throw()=0A=
       { return 0; }=0A=
       static unsigned long round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static unsigned long infinity() throw()=0A=
       { return static_cast<unsigned long>(0); }=0A=
       static unsigned long quiet_NaN() throw()=0A=
       { return static_cast<unsigned long>(0); }=0A=
       static unsigned long signaling_NaN() throw()=0A=
       { return static_cast<unsigned long>(0); }=0A=
       static unsigned long denorm_min() throw()=0A=
       { return static_cast<unsigned long>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<long long>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static long long min() throw()=0A=
       { return (-9223372036854775807LL - 1); }=0A=
       static long long max() throw()=0A=
       { return 9223372036854775807LL; }=0A=
 =0A=
       static const int digits =3D 63;=0A=
       static const int digits10 =3D 18;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static long long epsilon() throw()=0A=
       { return 0; }=0A=
       static long long round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static long long infinity() throw()=0A=
       { return static_cast<long long>(0); }=0A=
       static long long quiet_NaN() throw()=0A=
       { return static_cast<long long>(0); }=0A=
       static long long signaling_NaN() throw()=0A=
       { return static_cast<long long>(0); }=0A=
       static long long denorm_min() throw()=0A=
       { return static_cast<long long>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1634 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<unsigned long long>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static unsigned long long min() throw()=0A=
       { return 0; }=0A=
       static unsigned long long max() throw()=0A=
       { return (9223372036854775807LL * 2ULL + 1); }=0A=
 =0A=
       static const int digits =3D 64;=0A=
       static const int digits10 =3D 19;=0A=
       static const bool is_signed =3D false;=0A=
       static const bool is_integer =3D true;=0A=
       static const bool is_exact =3D true;=0A=
       static const int radix =3D 2;=0A=
       static unsigned long long epsilon() throw()=0A=
       { return 0; }=0A=
       static unsigned long long round_error() throw()=0A=
       { return 0; }=0A=
 =0A=
       static const int min_exponent =3D 0;=0A=
       static const int min_exponent10 =3D 0;=0A=
       static const int max_exponent =3D 0;=0A=
       static const int max_exponent10 =3D 0;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static unsigned long long infinity() throw()=0A=
       { return static_cast<unsigned long long>(0); }=0A=
       static unsigned long long quiet_NaN() throw()=0A=
       { return static_cast<unsigned long long>(0); }=0A=
       static unsigned long long signaling_NaN() throw()=0A=
       { return static_cast<unsigned long long>(0); }=0A=
       static unsigned long long denorm_min() throw()=0A=
       { return static_cast<unsigned long long>(0); }=0A=
 =0A=
       static const bool is_iec559 =3D true;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D true;=0A=
 =0A=
       static const bool traps =3D true;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<>=0A=
     struct numeric_limits<float>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static float min() throw()=0A=
       { return 1.17549435e-38F; }=0A=
       static float max() throw()=0A=
       { return 3.40282347e+38F; }=0A=
 =0A=
       static const int digits =3D 24;=0A=
       static const int digits10 =3D 6;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D false;=0A=
       static const bool is_exact =3D false;=0A=
       static const int radix =3D 2;=0A=
       static float epsilon() throw()=0A=
       { return 1.19209290e-07F; }=0A=
       static float round_error() throw()=0A=
       { return 1.0F; }=0A=
 =0A=
       static const int min_exponent =3D -125;=0A=
       static const int min_exponent10 =3D -37;=0A=
       static const int max_exponent =3D 128;=0A=
       static const int max_exponent10 =3D 38;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static float infinity() throw()=0A=
       { return 0.0F; }=0A=
       static float quiet_NaN() throw()=0A=
       { return 0.0F; }=0A=
       static float signaling_NaN() throw()=0A=
       { return 0.0F; }=0A=
       static float denorm_min() throw()=0A=
       { return 0.0F; }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D false;=0A=
 =0A=
       static const bool traps =3D false;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D round_toward_zero;=0A=
     };=0A=
 # 1765 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<double>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static double min() throw()=0A=
       { return 2.2250738585072014e-308; }=0A=
       static double max() throw()=0A=
       { return 1.7976931348623157e+308; }=0A=
 =0A=
       static const int digits =3D 53;=0A=
       static const int digits10 =3D 15;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D false;=0A=
       static const bool is_exact =3D false;=0A=
       static const int radix =3D 2;=0A=
       static double epsilon() throw()=0A=
       { return 2.2204460492503131e-16; }=0A=
       static double round_error() throw()=0A=
       { return 1.0; }=0A=
 =0A=
       static const int min_exponent =3D -1021;=0A=
       static const int min_exponent10 =3D -307;=0A=
       static const int max_exponent =3D 1024;=0A=
       static const int max_exponent10 =3D 308;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D false;=0A=
       static const float_denorm_style has_denorm =3D=0A=
               denorm_absent;=0A=
       static const bool has_denorm_loss =3D false;=0A=
 =0A=
       static double infinity() throw()=0A=
       { return 0.0; }=0A=
       static double quiet_NaN() throw()=0A=
       { return 0.0; }=0A=
       static double signaling_NaN() throw()=0A=
       { return 0.0; }=0A=
       static double denorm_min() throw()=0A=
       { return 0.0; }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D false;=0A=
 =0A=
       static const bool traps =3D false;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D=0A=
               round_toward_zero;=0A=
     };=0A=
 # 1844 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
   template<>=0A=
     struct numeric_limits<long double>=0A=
     {=0A=
       static const bool is_specialized =3D true;=0A=
 =0A=
       static long double min() throw()=0A=
       { return 3.36210314311209350626e-4932L; }=0A=
       static long double max() throw()=0A=
       { return 1.18973149535723176502e+4932L; }=0A=
 =0A=
       static const int digits =3D 64;=0A=
       static const int digits10 =3D 18;=0A=
       static const bool is_signed =3D true;=0A=
       static const bool is_integer =3D false;=0A=
       static const bool is_exact =3D false;=0A=
       static const int radix =3D 2;=0A=
       static long double epsilon() throw()=0A=
       { return 1.08420217248550443401e-19L; }=0A=
       static long double round_error() throw()=0A=
       { return 1.0L; }=0A=
 =0A=
       static const int min_exponent =3D -16381;=0A=
       static const int min_exponent10 =3D -4931;=0A=
       static const int max_exponent =3D 16384;=0A=
       static const int max_exponent10 =3D 4932;=0A=
 =0A=
       static const bool has_infinity =3D false;=0A=
       static const bool has_quiet_NaN =3D false;=0A=
       static const bool has_signaling_NaN =3D=0A=
                 false;=0A=
       static const float_denorm_style has_denorm =3D=0A=
                 denorm_absent;=0A=
       static const bool has_denorm_loss =3D=0A=
                 false;=0A=
 =0A=
       static long double infinity() throw()=0A=
       { return 0.0L; }=0A=
       static long double quiet_NaN() throw()=0A=
       { return 0.0L; }=0A=
       static long double signaling_NaN() throw()=0A=
       { return 0.0L; }=0A=
       static long double denorm_min() throw()=0A=
       { return 0.0L; }=0A=
 =0A=
       static const bool is_iec559 =3D false;=0A=
       static const bool is_bounded =3D true;=0A=
       static const bool is_modulo =3D false;=0A=
 =0A=
       static const bool traps =3D false;=0A=
       static const bool tinyness_before =3D false;=0A=
       static const float_round_style round_style =3D=0A=
         round_toward_zero;=0A=
     };=0A=
 # 1924 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A=
 }=0A=
 # 44 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 1 3=0A=
 # 40 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A=
 extern "C++" {=0A=
 =0A=
 namespace __cxxabiv1=0A=
 {=0A=
   class __class_type_info;=0A=
 }=0A=
 # 55 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   class type_info=0A=
   {=0A=
   public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     virtual ~type_info();=0A=
 =0A=
   private:=0A=
 =0A=
     type_info& operator=3D(const type_info&);=0A=
     type_info(const type_info&);=0A=
 =0A=
   protected:=0A=
     const char *__name;=0A=
 =0A=
   protected:=0A=
     explicit type_info(const char *__n): __name(__n) { }=0A=
 =0A=
   public:=0A=
 =0A=
 =0A=
 =0A=
     const char* name() const=0A=
     { return __name; }=0A=
 # 98 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A=
     bool before(const type_info& __arg) const=0A=
     { return __name < __arg.__name; }=0A=
     bool operator=3D=3D(const type_info& __arg) const=0A=
     { return __name =3D=3D __arg.__name; }=0A=
 =0A=
     bool operator!=3D(const type_info& __arg) const=0A=
     { return !operator=3D=3D(__arg); }=0A=
 =0A=
 =0A=
   public:=0A=
 =0A=
     virtual bool __is_pointer_p() const;=0A=
 =0A=
     virtual bool __is_function_p() const;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     virtual bool __do_catch(const type_info *__thr_type, void =
 **__thr_obj,=0A=
                             unsigned __outer) const;=0A=
 =0A=
 =0A=
     virtual bool __do_upcast(const __cxxabiv1::__class_type_info =
 *__target,=0A=
                              void **__obj_ptr) const;=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class bad_cast : public exception=0A=
   {=0A=
   public:=0A=
     bad_cast() throw() { }=0A=
 =0A=
 =0A=
     virtual ~bad_cast() throw();=0A=
   };=0A=
 =0A=
 =0A=
   class bad_typeid : public exception=0A=
   {=0A=
   public:=0A=
     bad_typeid () throw() { }=0A=
 =0A=
 =0A=
     virtual ~bad_typeid() throw();=0A=
   };=0A=
 }=0A=
 =0A=
 }=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _Facet>=0A=
     locale=0A=
     locale::combine(const locale& __other) const=0A=
     {=0A=
       _Impl* __tmp =3D new _Impl(*_M_impl, 1);=0A=
       __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);=0A=
       return locale(__tmp);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     bool=0A=
     locale::operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,=0A=
                        const basic_string<_CharT, _Traits, _Alloc>& =
 __s2) const=0A=
     {=0A=
       typedef std::collate<_CharT> __collate_type;=0A=
       const __collate_type& __collate =3D =
 use_facet<__collate_type>(*this);=0A=
       return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),=0A=
                                 __s2.data(), __s2.data() + =
 __s2.length()) < 0);=0A=
     }=0A=
 =0A=
   template<typename _Facet>=0A=
     const _Facet&=0A=
     use_facet(const locale& __loc)=0A=
     {=0A=
       size_t __i =3D _Facet::id._M_id();=0A=
       locale::facet** __facets =3D __loc._M_impl->_M_facets;=0A=
       if (!(__i < __loc._M_impl->_M_facets_size && __facets[__i]))=0A=
         __throw_bad_cast();=0A=
       return static_cast<const _Facet&>(*__facets[__i]);=0A=
     }=0A=
 =0A=
   template<typename _Facet>=0A=
     bool=0A=
     has_facet(const locale& __loc) throw()=0A=
     {=0A=
       size_t __i =3D _Facet::id._M_id();=0A=
       locale::facet** __facets =3D __loc._M_impl->_M_facets;=0A=
       return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,=0A=
                      ios_base::iostate& __err, string& __xtrc) const=0A=
     {=0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
 =0A=
 =0A=
       const char_type __plus =3D __ctype.widen('+');=0A=
       const char_type __minus =3D __ctype.widen('-');=0A=
       int __pos =3D 0;=0A=
       char_type __c =3D *__beg;=0A=
       if ((__c =3D=3D __plus || __c =3D=3D __minus) && __beg !=3D __end)=0A=
         {=0A=
           __xtrc +=3D __ctype.narrow(__c, char());=0A=
           ++__pos;=0A=
           __c =3D *(++__beg);=0A=
         }=0A=
 =0A=
 =0A=
       const char_type __zero =3D __ctype.widen(_S_atoms[_M_zero]);=0A=
       bool __found_zero =3D false;=0A=
       while (__c =3D=3D __zero && __beg !=3D __end)=0A=
         {=0A=
           __c =3D *(++__beg);=0A=
           __found_zero =3D true;=0A=
         }=0A=
       if (__found_zero)=0A=
         {=0A=
           __xtrc +=3D _S_atoms[_M_zero];=0A=
           ++__pos;=0A=
         }=0A=
 =0A=
 =0A=
       const size_t __len =3D _M_E - _M_zero + 1;=0A=
       char_type __watoms[__len];=0A=
       __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);=0A=
       bool __found_dec =3D false;=0A=
       bool __found_sci =3D false;=0A=
       const char_type __dec =3D __np.decimal_point();=0A=
 =0A=
       string __found_grouping;=0A=
       const string __grouping =3D __np.grouping();=0A=
       bool __check_grouping =3D __grouping.size();=0A=
       int __sep_pos =3D 0;=0A=
       const char_type __sep =3D __np.thousands_sep();=0A=
 =0A=
       while (__beg !=3D __end)=0A=
         {=0A=
 =0A=
           typedef char_traits<_CharT> __traits_type;=0A=
           const char_type* __p =3D __traits_type::find(__watoms, 10, =
 __c);=0A=
 =0A=
 =0A=
           if (__p && __c)=0A=
             {=0A=
 =0A=
               ++__pos;=0A=
               __xtrc +=3D _S_atoms[__p - __watoms];=0A=
               ++__sep_pos;=0A=
               __c =3D *(++__beg);=0A=
             }=0A=
           else if (__c =3D=3D __sep && __check_grouping && !__found_dec)=0A=
             {=0A=
 =0A=
 =0A=
               if (__sep_pos)=0A=
                 {=0A=
                   __found_grouping +=3D static_cast<char>(__sep_pos);=0A=
                   __sep_pos =3D 0;=0A=
                   __c =3D *(++__beg);=0A=
                 }=0A=
               else=0A=
                 {=0A=
                   __err |=3D ios_base::failbit;=0A=
                   break;=0A=
                 }=0A=
             }=0A=
           else if (__c =3D=3D __dec && !__found_dec)=0A=
             {=0A=
 =0A=
 =0A=
 =0A=
               if (__found_grouping.size())=0A=
                 __found_grouping +=3D static_cast<char>(__sep_pos);=0A=
               ++__pos;=0A=
               __xtrc +=3D '.';=0A=
               __c =3D *(++__beg);=0A=
               __found_dec =3D true;=0A=
             }=0A=
           else if ((__c =3D=3D __watoms[_M_e] || __c =3D=3D =
 __watoms[_M_E])=0A=
                    && !__found_sci && __pos)=0A=
             {=0A=
 =0A=
               ++__pos;=0A=
               __xtrc +=3D __ctype.narrow(__c, char());=0A=
               __c =3D *(++__beg);=0A=
 =0A=
 =0A=
               if (__c =3D=3D __plus || __c =3D=3D __minus)=0A=
                 {=0A=
                   ++__pos;=0A=
                   __xtrc +=3D __ctype.narrow(__c, char());=0A=
                   __c =3D *(++__beg);=0A=
                 }=0A=
               __found_sci =3D true;=0A=
             }=0A=
           else=0A=
 =0A=
             break;=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
       if (__check_grouping && __found_grouping.size())=0A=
         {=0A=
 =0A=
           if (!__found_dec)=0A=
             __found_grouping +=3D static_cast<char>(__sep_pos);=0A=
           if (!__verify_grouping(__grouping, __found_grouping))=0A=
             __err |=3D ios_base::failbit;=0A=
         }=0A=
 =0A=
 =0A=
       __xtrc +=3D char();=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,=0A=
                    ios_base::iostate& __err, string& __xtrc, int& =
 __base) const=0A=
     {=0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
 =0A=
 =0A=
       ios_base::fmtflags __basefield =3D __io.flags() & =
 ios_base::basefield;=0A=
       if (__basefield =3D=3D ios_base::oct)=0A=
         __base =3D 8;=0A=
       else if (__basefield =3D=3D ios_base::hex)=0A=
         __base =3D 16;=0A=
       else=0A=
         __base =3D 10;=0A=
 =0A=
 =0A=
       int __pos =3D 0;=0A=
       char_type __c =3D *__beg;=0A=
       if ((__c =3D=3D __ctype.widen('+') || __c =3D=3D =
 __ctype.widen('-'))=0A=
           && __beg !=3D __end)=0A=
         {=0A=
           __xtrc +=3D __ctype.narrow(__c, char());=0A=
           ++__pos;=0A=
           __c =3D *(++__beg);=0A=
         }=0A=
 =0A=
 =0A=
       const char_type __zero =3D __ctype.widen(_S_atoms[_M_zero]);=0A=
       const char_type __x =3D __ctype.widen('x');=0A=
       const char_type __X =3D __ctype.widen('X');=0A=
       if (__base =3D=3D 10)=0A=
         {=0A=
           bool __found_zero =3D false;=0A=
           while (__c =3D=3D __zero && __beg !=3D __end)=0A=
             {=0A=
               __c =3D *(++__beg);=0A=
               __found_zero =3D true;=0A=
             }=0A=
           if (__found_zero)=0A=
             {=0A=
               __xtrc +=3D _S_atoms[_M_zero];=0A=
               ++__pos;=0A=
               if (__basefield =3D=3D 0)=0A=
                 {=0A=
                   if ((__c =3D=3D __x || __c =3D=3D __X) && __beg !=3D =
 __end)=0A=
                     {=0A=
                       __xtrc +=3D __ctype.narrow(__c, char());=0A=
                       ++__pos;=0A=
                       __c =3D *(++__beg);=0A=
                       __base =3D 16;=0A=
                     }=0A=
                   else=0A=
                     __base =3D 8;=0A=
                 }=0A=
             }=0A=
         }=0A=
       else if (__base =3D=3D 16)=0A=
         {=0A=
           if (__c =3D=3D __zero && __beg !=3D __end)=0A=
             {=0A=
               __xtrc +=3D _S_atoms[_M_zero];=0A=
               ++__pos;=0A=
               __c =3D *(++__beg);=0A=
               if ((__c =3D=3D __x || __c =3D=3D __X) && __beg !=3D __end)=0A=
                 {=0A=
                   __xtrc +=3D __ctype.narrow(__c, char());=0A=
                   ++__pos;=0A=
                   __c =3D *(++__beg);=0A=
                 }=0A=
             }=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
       size_t __len;=0A=
       if (__base =3D=3D 16)=0A=
         __len =3D _M_size;=0A=
       else=0A=
         __len =3D __base;=0A=
 =0A=
 =0A=
       char_type __watoms[_M_size];=0A=
       __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);=0A=
       string __found_grouping;=0A=
       const string __grouping =3D __np.grouping();=0A=
       bool __check_grouping =3D __grouping.size();=0A=
       int __sep_pos =3D 0;=0A=
       const char_type __sep =3D __np.thousands_sep();=0A=
       while (__beg !=3D __end)=0A=
         {=0A=
           typedef char_traits<_CharT> __traits_type;=0A=
           const char_type* __p =3D __traits_type::find(__watoms, __len, =
 __c);=0A=
 =0A=
 =0A=
           if (__p && __c)=0A=
             {=0A=
 =0A=
               __xtrc +=3D _S_atoms[__p - __watoms];=0A=
               ++__pos;=0A=
               ++__sep_pos;=0A=
               __c =3D *(++__beg);=0A=
             }=0A=
           else if (__c =3D=3D __sep && __check_grouping)=0A=
             {=0A=
 =0A=
 =0A=
               if (__sep_pos)=0A=
                 {=0A=
                   __found_grouping +=3D static_cast<char>(__sep_pos);=0A=
                   __sep_pos =3D 0;=0A=
                   __c =3D *(++__beg);=0A=
                 }=0A=
               else=0A=
                 {=0A=
                   __err |=3D ios_base::failbit;=0A=
                   break;=0A=
                 }=0A=
             }=0A=
           else=0A=
 =0A=
             break;=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
       if (__check_grouping && __found_grouping.size())=0A=
         {=0A=
 =0A=
           __found_grouping +=3D static_cast<char>(__sep_pos);=0A=
           if (!__verify_grouping(__grouping, __found_grouping))=0A=
             __err |=3D ios_base::failbit;=0A=
         }=0A=
 =0A=
 =0A=
       __xtrc +=3D char();=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, bool& __v) const=0A=
     {=0A=
 =0A=
       if (!(__io.flags() & ios_base::boolalpha))=0A=
         {=0A=
 =0A=
 =0A=
           string __xtrc;=0A=
           int __base;=0A=
           __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
 =0A=
           unsigned long __ul;=0A=
           __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, =
 __base);=0A=
           if (!(__err & ios_base::failbit) && __ul <=3D 1)=0A=
             __v =3D __ul;=0A=
           else=0A=
             __err |=3D ios_base::failbit;=0A=
         }=0A=
 =0A=
 =0A=
       else=0A=
         {=0A=
           typedef basic_string<_CharT> __string_type;=0A=
           locale __loc =3D __io.getloc();=0A=
           const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
           const __string_type __true =3D __np.truename();=0A=
           const __string_type __false =3D __np.falsename();=0A=
           const char_type* __trues =3D __true.c_str();=0A=
           const char_type* __falses =3D __false.c_str();=0A=
           const size_t __truen =3D __true.size() - 1;=0A=
           const size_t __falsen =3D __false.size() - 1;=0A=
 =0A=
           for (size_t __n =3D 0; __beg !=3D __end; ++__n)=0A=
             {=0A=
               char_type __c =3D *__beg++;=0A=
               bool __testf =3D __n <=3D __falsen ? __c =3D=3D =
 __falses[__n] : false;=0A=
               bool __testt =3D __n <=3D __truen ? __c =3D=3D =
 __trues[__n] : false;=0A=
               if (!(__testf || __testt))=0A=
                 {=0A=
                   __err |=3D ios_base::failbit;=0A=
                   break;=0A=
                 }=0A=
               else if (__testf && __n =3D=3D __falsen)=0A=
                 {=0A=
                   __v =3D 0;=0A=
                   break;=0A=
                 }=0A=
               else if (__testt && __n =3D=3D __truen)=0A=
                 {=0A=
                   __v =3D 1;=0A=
                   break;=0A=
                 }=0A=
             }=0A=
           if (__beg =3D=3D __end)=0A=
             __err |=3D ios_base::eofbit;=0A=
         }=0A=
       return __beg;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, long& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, unsigned short& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       unsigned long __ul;=0A=
       __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A=
       if (!(__err & ios_base::failbit)=0A=
           && __ul <=3D numeric_limits<unsigned short>::max())=0A=
         __v =3D static_cast<unsigned short>(__ul);=0A=
       else=0A=
         __err |=3D ios_base::failbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, unsigned int& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       unsigned long __ul;=0A=
       __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A=
       if (!(__err & ios_base::failbit)=0A=
           && __ul <=3D numeric_limits<unsigned int>::max())=0A=
         __v =3D static_cast<unsigned int>(__ul);=0A=
       else=0A=
         __err |=3D ios_base::failbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, unsigned long& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, long long& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, unsigned long long& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, float& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       __xtrc.reserve(32);=0A=
       __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, double& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       __xtrc.reserve(32);=0A=
       __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, long double& __v) const=0A=
     {=0A=
       string __xtrc;=0A=
       __xtrc.reserve(32);=0A=
       __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A=
       __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     num_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A=
            ios_base::iostate& __err, void*& __v) const=0A=
     {=0A=
 =0A=
       typedef ios_base::fmtflags fmtflags;=0A=
       fmtflags __fmt =3D __io.flags();=0A=
       fmtflags __fmtmask =3D ~(ios_base::showpos | ios_base::basefield=0A=
                              | ios_base::uppercase | ios_base::internal);=0A=
       __io.flags(__fmt & __fmtmask | (ios_base::hex | =
 ios_base::showbase));=0A=
 =0A=
       string __xtrc;=0A=
       int __base;=0A=
       __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, =
 __base);=0A=
 =0A=
 =0A=
       __io.flags(__fmt);=0A=
 =0A=
       unsigned long __ul;=0A=
       __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A=
       if (!(__err & ios_base::failbit))=0A=
         __v =3D reinterpret_cast<void*>(__ul);=0A=
       else=0A=
         __err |=3D ios_base::failbit;=0A=
       return __beg;=0A=
     }=0A=
 # 604 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A=
   template<typename _CharT, typename _OutIter>=0A=
     template<typename _ValueT>=0A=
       _OutIter=0A=
       num_put<_CharT, _OutIter>::=0A=
       _M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char =
 __mod,=0A=
                        _ValueT __v) const=0A=
       {=0A=
 =0A=
 =0A=
         const int __max_digits =3D numeric_limits<_ValueT>::digits10 + 1;=0A=
         streamsize __prec =3D __io.precision();=0A=
 =0A=
         if (__prec > static_cast<streamsize>(__max_digits))=0A=
           __prec =3D static_cast<streamsize>(__max_digits);=0A=
 =0A=
 =0A=
         char __fbuf[16];=0A=
 =0A=
 =0A=
         int __len;=0A=
 =0A=
 =0A=
 =0A=
         int __cs_size =3D __max_digits * 3;=0A=
         char* __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
 =0A=
         const bool __fp =3D _S_format_float(__io, __fbuf, __mod, __prec);=0A=
         if (__fp)=0A=
           __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A=
                                    _S_c_locale, __prec);=0A=
         else=0A=
           __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v, =
 _S_c_locale);=0A=
 =0A=
 =0A=
         if (__len >=3D __cs_size)=0A=
           {=0A=
             __cs_size =3D __len + 1;=0A=
             __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
             if (__fp)=0A=
               __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A=
                                        _S_c_locale, __prec);=0A=
             else=0A=
               __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A=
                                        _S_c_locale);=0A=
           }=0A=
 # 667 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A=
         return _M_widen_float(__s, __io, __fill, __cs, __len);=0A=
       }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     template<typename _ValueT>=0A=
       _OutIter=0A=
       num_put<_CharT, _OutIter>::=0A=
       _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char =
 __mod,=0A=
                      char __modl, _ValueT __v) const=0A=
       {=0A=
 =0A=
 =0A=
 =0A=
         char __fbuf[16];=0A=
         _S_format_int(__io, __fbuf, __mod, __modl);=0A=
 =0A=
 =0A=
         int __cs_size =3D 64;=0A=
         char* __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
         int __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A=
                                      _S_c_locale);=0A=
 =0A=
         if (__len >=3D __cs_size)=0A=
           {=0A=
             __cs_size =3D __len + 1;=0A=
             __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
             __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A=
                                      _S_c_locale);=0A=
           }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
         return _M_widen_int(__s, __io, __fill, __cs, __len);=0A=
       }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* =
 __cs,=0A=
                    int __len) const=0A=
     {=0A=
 =0A=
 =0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       _CharT* __ws =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A=
                                                            * __len));=0A=
 =0A=
 =0A=
       _CharT* __ws2 =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A=
                                                             * __len * =
 2));=0A=
       __ctype.widen(__cs, __cs + __len, __ws);=0A=
 =0A=
 =0A=
       const _CharT* __p;=0A=
       const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
       if (__p =3D char_traits<_CharT>::find(__ws, __len, =
 __ctype.widen('.')))=0A=
         __ws[__p - __ws] =3D __np.decimal_point();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       const string __grouping =3D __np.grouping();=0A=
       ios_base::fmtflags __basefield =3D __io.flags() & =
 ios_base::basefield;=0A=
       if (__grouping.size())=0A=
         {=0A=
           _CharT* __p2;=0A=
           int __declen =3D __p ? __p - __ws : __len;=0A=
           __p2 =3D __add_grouping(__ws2, __np.thousands_sep(),=0A=
                                 __grouping.c_str(),=0A=
                                 __grouping.c_str() + __grouping.size(),=0A=
                                 __ws, __ws + __declen);=0A=
           int __newlen =3D __p2 - __ws2;=0A=
 =0A=
 =0A=
           if (__p)=0A=
             {=0A=
               char_traits<_CharT>::copy(__p2, __p, __len - __declen);=0A=
               __newlen +=3D __len - __declen;=0A=
             }=0A=
 =0A=
 =0A=
           __ws =3D __ws2;=0A=
           __len =3D __newlen;=0A=
         }=0A=
 =0A=
       return _M_insert(__s, __io, __fill, __ws, __len);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,=0A=
                  int __len) const=0A=
     {=0A=
 =0A=
 =0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       _CharT* __ws =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A=
                                                            * __len));=0A=
 =0A=
 =0A=
       _CharT* __ws2 =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A=
                                                             * __len * =
 2));=0A=
       __ctype.widen(__cs, __cs + __len, __ws);=0A=
 =0A=
 =0A=
       const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
       const string __grouping =3D __np.grouping();=0A=
       const ios_base::fmtflags __basefield =3D __io.flags() & =
 ios_base::basefield;=0A=
       if (__grouping.size())=0A=
         {=0A=
 =0A=
 =0A=
 =0A=
           streamsize __off =3D 0;=0A=
           if (__io.flags() & ios_base::showbase)=0A=
             if (__basefield =3D=3D ios_base::oct)=0A=
               {=0A=
                 __off =3D 1;=0A=
                 *__ws2 =3D *__ws;=0A=
               }=0A=
             else if (__basefield =3D=3D ios_base::hex)=0A=
               {=0A=
                 __off =3D 2;=0A=
                 *__ws2 =3D *__ws;=0A=
                 *(__ws2 + 1) =3D *(__ws + 1);=0A=
               }=0A=
           _CharT* __p;=0A=
           __p =3D __add_grouping(__ws2 + __off, __np.thousands_sep(),=0A=
                                __grouping.c_str(),=0A=
                                __grouping.c_str() + __grouping.size(),=0A=
                                __ws + __off, __ws + __len);=0A=
           __len =3D __p - __ws2;=0A=
 =0A=
           __ws =3D __ws2;=0A=
         }=0A=
       return _M_insert(__s, __io, __fill, __ws, __len);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* =
 __ws,=0A=
               int __len) const=0A=
     {=0A=
 =0A=
       streamsize __w =3D __io.width();=0A=
       _CharT* __ws2 =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A=
                                                             * __w));=0A=
       if (__w > static_cast<streamsize>(__len))=0A=
         {=0A=
           __pad(__io, __fill, __ws2, __ws, __w, __len, true);=0A=
           __len =3D static_cast<int>(__w);=0A=
 =0A=
           __ws =3D __ws2;=0A=
         }=0A=
       __io.width(0);=0A=
 =0A=
 =0A=
 =0A=
       for (int __j =3D 0; __j < __len; ++__j, ++__s)=0A=
         *__s =3D __ws[__j];=0A=
       return __s;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) =
 const=0A=
     {=0A=
       ios_base::fmtflags __flags =3D __io.flags();=0A=
       if ((__flags & ios_base::boolalpha) =3D=3D 0)=0A=
         {=0A=
           unsigned long __uv =3D __v;=0A=
           __s =3D _M_convert_int(__s, __io, __fill, 'u', char_type(), =
 __uv);=0A=
         }=0A=
       else=0A=
         {=0A=
           typedef basic_string<_CharT> __string_type;=0A=
           locale __loc =3D __io.getloc();=0A=
           const numpunct<_CharT>& __np =3D use_facet<numpunct<_CharT> =
 >(__loc);=0A=
           __string_type __name;=0A=
           if (__v)=0A=
             __name =3D __np.truename();=0A=
           else=0A=
             __name =3D __np.falsename();=0A=
           __s =3D _M_insert(__s, __io, __fill, __name.c_str(), =
 __name.size());=0A=
         }=0A=
       return __s;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) =
 const=0A=
     { return _M_convert_int(__s, __io, __fill, 'd', char_type(), __v); }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill,=0A=
            unsigned long __v) const=0A=
     { return _M_convert_int(__s, __io, __fill, 'u', char_type(), __v); }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __b, char_type __fill, long long =
 __v) const=0A=
     { return _M_convert_int(__s, __b, __fill, 'd', 'l', __v); }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill,=0A=
            unsigned long long __v) const=0A=
     { return _M_convert_int(__s, __io, __fill, 'u', 'l', __v); }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) =
 const=0A=
     { return _M_convert_float(__s, __io, __fill, char_type(), __v); }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill,=0A=
            long double __v) const=0A=
     { return _M_convert_float(__s, __io, __fill, 'L', __v); }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     num_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type __fill,=0A=
            const void* __v) const=0A=
     {=0A=
       ios_base::fmtflags __flags =3D __io.flags();=0A=
       ios_base::fmtflags __fmt =3D ~(ios_base::showpos | =
 ios_base::basefield=0A=
                                    | ios_base::uppercase | =
 ios_base::internal);=0A=
       __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));=0A=
       try=0A=
         {=0A=
           __s =3D _M_convert_int(__s, __io, __fill, 'u', char_type(),=0A=
                                reinterpret_cast<unsigned long>(__v));=0A=
           __io.flags(__flags);=0A=
         }=0A=
       catch (...)=0A=
         {=0A=
           __io.flags(__flags);=0A=
           throw;=0A=
         }=0A=
       return __s;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     money_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,=0A=
            ios_base::iostate& __err, long double& __units) const=0A=
     {=0A=
       string_type __str;=0A=
       __beg =3D this->do_get(__beg, __end, __intl, __io, __err, __str);=0A=
 =0A=
       const int __n =3D numeric_limits<long double>::digits10;=0A=
       char* __cs =3D static_cast<char*>(__builtin_alloca(__n));=0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       const _CharT* __wcs =3D __str.c_str();=0A=
       __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);=0A=
       __convert_to_v(__cs, __units, __err, _S_c_locale);=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     money_get<_CharT, _InIter>::=0A=
     do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,=0A=
            ios_base::iostate& __err, string_type& __units) const=0A=
     {=0A=
 =0A=
       typedef moneypunct<_CharT, true> __money_true;=0A=
       typedef moneypunct<_CharT, false> __money_false;=0A=
       typedef money_base::part part;=0A=
       typedef typename string_type::size_type size_type;=0A=
 =0A=
       const locale __loc =3D __io.getloc();=0A=
       const __money_true& __mpt =3D use_facet<__money_true>(__loc);=0A=
       const __money_false& __mpf =3D use_facet<__money_false>(__loc);=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
 =0A=
       const money_base::pattern __p =3D __intl ? __mpt.neg_format()=0A=
                                              : __mpf.neg_format();=0A=
 =0A=
       const string_type __pos_sign =3D__intl ? __mpt.positive_sign()=0A=
                                            : __mpf.positive_sign();=0A=
       const string_type __neg_sign =3D__intl ? __mpt.negative_sign()=0A=
                                            : __mpf.negative_sign();=0A=
       const char_type __d =3D __intl ? __mpt.decimal_point()=0A=
                                    : __mpf.decimal_point();=0A=
       const char_type __sep =3D __intl ? __mpt.thousands_sep()=0A=
                                      : __mpf.thousands_sep();=0A=
 =0A=
       const string __grouping =3D __intl ? __mpt.grouping() : =
 __mpf.grouping();=0A=
 =0A=
 =0A=
       string_type __sign;=0A=
 =0A=
       string __grouping_tmp;=0A=
 =0A=
       int __sep_pos =3D 0;=0A=
 =0A=
       bool __testvalid =3D true;=0A=
 =0A=
       bool __testdecfound =3D false;=0A=
 =0A=
 =0A=
       string_type __temp_units;=0A=
 =0A=
       char_type __c =3D *__beg;=0A=
       char_type __eof =3D =
 static_cast<char_type>(char_traits<char_type>::eof());=0A=
       for (int __i =3D 0; __beg !=3D __end && __i < 4 && __testvalid; =
 ++__i)=0A=
         {=0A=
           part __which =3D static_cast<part>(__p.field[__i]);=0A=
           switch (__which)=0A=
                 {=0A=
                 case money_base::symbol:=0A=
                   if (__io.flags() & ios_base::showbase=0A=
                       || __i < 2 || __sign.size() > 1=0A=
                       || ((static_cast<part>(__p.field[3]) !=3D =
 money_base::none)=0A=
                           && __i =3D=3D 2))=0A=
                     {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
                       const string_type __symbol =3D __intl ? =
 __mpt.curr_symbol()=0A=
                                                          : =
 __mpf.curr_symbol();=0A=
                       size_type __len =3D __symbol.size();=0A=
                       size_type __j =3D 0;=0A=
                       while (__beg !=3D __end=0A=
                              && __j < __len && __symbol[__j] =3D=3D __c)=0A=
                         {=0A=
                           __c =3D *(++__beg);=0A=
                           ++__j;=0A=
                         }=0A=
 =0A=
 =0A=
                       if (__j !=3D __len && (__io.flags() & =
 ios_base::showbase))=0A=
                         __testvalid =3D false;=0A=
                     }=0A=
                   break;=0A=
                 case money_base::sign:=0A=
 =0A=
                   if (__pos_sign.size() && __neg_sign.size())=0A=
                   {=0A=
 =0A=
                     if (__c =3D=3D __pos_sign[0])=0A=
                       {=0A=
                         __sign =3D __pos_sign;=0A=
                         __c =3D *(++__beg);=0A=
                       }=0A=
                     else if (__c =3D=3D __neg_sign[0])=0A=
                       {=0A=
                         __sign =3D __neg_sign;=0A=
                         __c =3D *(++__beg);=0A=
                       }=0A=
                     else=0A=
                       __testvalid =3D false;=0A=
                   }=0A=
                   else if (__pos_sign.size() && __c =3D=3D __pos_sign[0])=0A=
                     {=0A=
                       __sign =3D __pos_sign;=0A=
                       __c =3D *(++__beg);=0A=
                     }=0A=
                   else if (__neg_sign.size() && __c =3D=3D __neg_sign[0])=0A=
                     {=0A=
                       __sign =3D __neg_sign;=0A=
                       __c =3D *(++__beg);=0A=
                     }=0A=
                   break;=0A=
                 case money_base::value:=0A=
 =0A=
 =0A=
                   while (__beg !=3D __end=0A=
                          && (__ctype.is(ctype_base::digit, __c)=0A=
                              || (__c =3D=3D __d && !__testdecfound)=0A=
                              || __c =3D=3D __sep))=0A=
                     {=0A=
                       if (__c =3D=3D __d)=0A=
                         {=0A=
                           __grouping_tmp +=3D =
 static_cast<char>(__sep_pos);=0A=
                           __sep_pos =3D 0;=0A=
                           __testdecfound =3D true;=0A=
                         }=0A=
                       else if (__c =3D=3D __sep)=0A=
                         {=0A=
                           if (__grouping.size())=0A=
                             {=0A=
 =0A=
                               __grouping_tmp +=3D =
 static_cast<char>(__sep_pos);=0A=
                               __sep_pos =3D 0;=0A=
                             }=0A=
                           else=0A=
                             {=0A=
                               __testvalid =3D false;=0A=
                               break;=0A=
                             }=0A=
                         }=0A=
                       else=0A=
                         {=0A=
                           __temp_units +=3D __c;=0A=
                           ++__sep_pos;=0A=
                         }=0A=
                       __c =3D *(++__beg);=0A=
                     }=0A=
                   break;=0A=
                 case money_base::space:=0A=
                 case money_base::none:=0A=
 =0A=
                   if (__i !=3D 3)=0A=
                     while (__beg !=3D __end=0A=
                            && __ctype.is(ctype_base::space, __c))=0A=
                       __c =3D *(++__beg);=0A=
                   break;=0A=
                 }=0A=
         }=0A=
 =0A=
 =0A=
       if (__sign.size() > 1)=0A=
         {=0A=
           size_type __len =3D __sign.size();=0A=
           size_type __i =3D 1;=0A=
           for (; __c !=3D __eof && __i < __len; ++__i)=0A=
             while (__beg !=3D __end && __c !=3D __sign[__i])=0A=
               __c =3D *(++__beg);=0A=
 =0A=
           if (__i !=3D __len)=0A=
             __testvalid =3D false;=0A=
         }=0A=
 =0A=
 =0A=
       while (__temp_units[0] =3D=3D __ctype.widen('0'))=0A=
         __temp_units.erase(__temp_units.begin());=0A=
 =0A=
       if (__sign.size() && __sign =3D=3D __neg_sign)=0A=
         __temp_units.insert(__temp_units.begin(), __ctype.widen('-'));=0A=
 =0A=
 =0A=
       if (__grouping.size() && __grouping_tmp.size())=0A=
         {=0A=
           if (!__verify_grouping(__grouping, __grouping_tmp))=0A=
             __testvalid =3D false;=0A=
         }=0A=
 =0A=
 =0A=
       if (__c =3D=3D __eof)=0A=
         __err |=3D ios_base::eofbit;=0A=
 =0A=
 =0A=
       if (!__testvalid || !__temp_units.size())=0A=
         __err |=3D ios_base::failbit;=0A=
       else=0A=
 =0A=
         __temp_units.swap(__units);=0A=
 =0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     money_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,=0A=
            long double __units) const=0A=
     {=0A=
       const locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
 =0A=
 =0A=
       int __cs_size =3D 64;=0A=
       char* __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
       int __len =3D __convert_from_v(__cs, __cs_size, "%.01Lf", __units,=0A=
                                    _S_c_locale);=0A=
 =0A=
       if (__len >=3D __cs_size)=0A=
         {=0A=
           __cs_size =3D __len + 1;=0A=
           __cs =3D static_cast<char*>(__builtin_alloca(__cs_size));=0A=
           __len =3D __convert_from_v(__cs, __cs_size, "%.01Lf", __units,=0A=
                                    _S_c_locale);=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       _CharT* __ws =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __cs_size));=0A=
       __ctype.widen(__cs, __cs + __len, __ws);=0A=
       string_type __digits(__ws);=0A=
       return this->do_put(__s, __intl, __io, __fill, __digits);=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     money_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,=0A=
            const string_type& __digits) const=0A=
     {=0A=
       typedef typename string_type::size_type size_type;=0A=
       typedef money_base::part part;=0A=
 =0A=
       const locale __loc =3D __io.getloc();=0A=
       const size_type __width =3D static_cast<size_type>(__io.width());=0A=
 =0A=
 =0A=
       typedef moneypunct<_CharT, true> __money_true;=0A=
       typedef moneypunct<_CharT, false> __money_false;=0A=
       const __money_true& __mpt =3D use_facet<__money_true>(__loc);=0A=
       const __money_false& __mpf =3D use_facet<__money_false>(__loc);=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
 =0A=
 =0A=
 =0A=
       const char_type* __beg =3D __digits.data();=0A=
       const char_type* __end =3D __beg + __digits.size();=0A=
       money_base::pattern __p;=0A=
       string_type __sign;=0A=
       if (*__beg !=3D __ctype.widen('-'))=0A=
         {=0A=
           __p =3D __intl ? __mpt.pos_format() : __mpf.pos_format();=0A=
           __sign =3D__intl ? __mpt.positive_sign() : =
 __mpf.positive_sign();=0A=
         }=0A=
       else=0A=
         {=0A=
           __p =3D __intl ? __mpt.neg_format() : __mpf.neg_format();=0A=
           __sign =3D__intl ? __mpt.negative_sign() : =
 __mpf.negative_sign();=0A=
           ++__beg;=0A=
         }=0A=
 =0A=
 =0A=
       __end =3D __ctype.scan_not(ctype_base::digit, __beg, __end);=0A=
       if (__beg !=3D __end)=0A=
         {=0A=
 =0A=
 =0A=
 =0A=
           string_type __res;=0A=
           string_type __value;=0A=
           const string_type __symbol =3D __intl ? __mpt.curr_symbol()=0A=
                                               : __mpf.curr_symbol();=0A=
 =0A=
 =0A=
           const int __frac =3D __intl ? __mpt.frac_digits()=0A=
                                     : __mpf.frac_digits();=0A=
           if (__frac > 0)=0A=
             {=0A=
               const char_type __d =3D __intl ? __mpt.decimal_point()=0A=
                                            : __mpf.decimal_point();=0A=
               if (__end - __beg >=3D __frac)=0A=
                 {=0A=
                   __value =3D string_type(__end - __frac, __end);=0A=
                   __value.insert(__value.begin(), __d);=0A=
                   __end -=3D __frac;=0A=
                 }=0A=
               else=0A=
                 {=0A=
 =0A=
                   __value =3D string_type(__beg, __end);=0A=
                   int __paddec =3D __frac - (__end - __beg);=0A=
                   char_type __zero =3D __ctype.widen('0');=0A=
                   __value.insert(__value.begin(), __paddec, __zero);=0A=
                   __value.insert(__value.begin(), __d);=0A=
                   __beg =3D __end;=0A=
                 }=0A=
             }=0A=
 =0A=
 =0A=
 =0A=
           if (__beg !=3D __end)=0A=
             {=0A=
               const string __grouping =3D __intl ? __mpt.grouping()=0A=
                                                : __mpf.grouping();=0A=
               if (__grouping.size())=0A=
                 {=0A=
                   const char_type __sep =3D __intl ? =
 __mpt.thousands_sep()=0A=
                                                  : __mpf.thousands_sep();=0A=
                   const char* __gbeg =3D __grouping.c_str();=0A=
                   const char* __gend =3D __gbeg + __grouping.size();=0A=
                   const int __n =3D (__end - __beg) * 2;=0A=
                   _CharT* __ws2 =3D=0A=
                     static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) =
 * __n));=0A=
                   _CharT* __ws_end =3D __add_grouping(__ws2, __sep, =
 __gbeg,=0A=
                                                     __gend, __beg, =
 __end);=0A=
                   __value.insert(0, __ws2, __ws_end - __ws2);=0A=
                 }=0A=
               else=0A=
                 __value.insert(0, string_type(__beg, __end));=0A=
             }=0A=
 =0A=
 =0A=
           ios_base::fmtflags __f =3D __io.flags() & =
 ios_base::adjustfield;=0A=
           size_type __len =3D __value.size() + __sign.size();=0A=
           __len +=3D (__io.flags() & ios_base::showbase) ? =
 __symbol.size() : 0;=0A=
           bool __testipad =3D __f =3D=3D ios_base::internal && __len < =
 __width;=0A=
 =0A=
 =0A=
           for (int __i =3D 0; __i < 4; ++__i)=0A=
             {=0A=
               part __which =3D static_cast<part>(__p.field[__i]);=0A=
               switch (__which)=0A=
                 {=0A=
                 case money_base::symbol:=0A=
                   if (__io.flags() & ios_base::showbase)=0A=
                     __res +=3D __symbol;=0A=
                   break;=0A=
                 case money_base::sign:=0A=
 =0A=
 =0A=
 =0A=
                   if (__sign.size())=0A=
                     __res +=3D __sign[0];=0A=
                   break;=0A=
                 case money_base::value:=0A=
                   __res +=3D __value;=0A=
                   break;=0A=
                 case money_base::space:=0A=
 =0A=
 =0A=
 =0A=
                   if (__testipad)=0A=
                     __res +=3D string_type(__width - __len, __fill);=0A=
                   else=0A=
                     __res +=3D __ctype.widen(__fill);=0A=
                   break;=0A=
                 case money_base::none:=0A=
                   if (__testipad)=0A=
                     __res +=3D string_type(__width - __len, __fill);=0A=
                   break;=0A=
                 }=0A=
             }=0A=
 =0A=
 =0A=
           if (__sign.size() > 1)=0A=
             __res +=3D string_type(__sign.begin() + 1, __sign.end());=0A=
 =0A=
 =0A=
           __len =3D __res.size();=0A=
           if (__width > __len)=0A=
             {=0A=
               if (__f =3D=3D ios_base::left)=0A=
 =0A=
                 __res.append(__width - __len, __fill);=0A=
               else=0A=
 =0A=
                 __res.insert(0, string_type(__width - __len, __fill));=0A=
               __len =3D __width;=0A=
             }=0A=
 =0A=
 =0A=
           for (size_type __j =3D 0; __j < __len; ++__j, ++__s)=0A=
             *__s =3D __res[__j];=0A=
         }=0A=
       __io.width(0);=0A=
       return __s;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     time_base::dateorder=0A=
     time_get<_CharT, _InIter>::do_date_order() const=0A=
     { return time_base::no_order; }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     void=0A=
     time_get<_CharT, _InIter>::=0A=
     _M_extract_via_format(iter_type& __beg, iter_type& __end, ios_base& =
 __io,=0A=
                           ios_base::iostate& __err, tm* __tm,=0A=
                           const _CharT* __format) const=0A=
     {=0A=
       locale __loc =3D __io.getloc();=0A=
       __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> =
 >(__loc);=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       size_t __len =3D char_traits<_CharT>::length(__format);=0A=
 =0A=
       for (size_t __i =3D 0; __beg !=3D __end && __i < __len && !__err; =
 ++__i)=0A=
         {=0A=
           char __c =3D __format[__i];=0A=
           if (__c =3D=3D '%')=0A=
             {=0A=
 =0A=
               __c =3D __format[++__i];=0A=
               char __mod =3D 0;=0A=
               int __mem =3D 0;=0A=
               if (__c =3D=3D 'E' || __c =3D=3D 'O')=0A=
                 {=0A=
                   __mod =3D __c;=0A=
                   __c =3D __format[++__i];=0A=
                 }=0A=
               switch (__c)=0A=
                 {=0A=
                   const char* __cs;=0A=
                   _CharT __wcs[10];=0A=
                 case 'a':=0A=
 =0A=
                   const char_type* __days1[7];=0A=
                   __tp._M_days_abbreviated(__days1);=0A=
                   _M_extract_name(__beg, __end, __tm->tm_wday, __days1, =
 7,=0A=
                                   __err);=0A=
                   break;=0A=
                 case 'A':=0A=
 =0A=
                   const char_type* __days2[7];=0A=
                   __tp._M_days(__days2);=0A=
                   _M_extract_name(__beg, __end, __tm->tm_wday, __days2, =
 7,=0A=
                                   __err);=0A=
                   break;=0A=
                 case 'h':=0A=
                 case 'b':=0A=
 =0A=
                   const char_type* __months1[12];=0A=
                   __tp._M_months_abbreviated(__months1);=0A=
                   _M_extract_name(__beg, __end, __tm->tm_mon, __months1, =
 12,=0A=
                                   __err);=0A=
                   break;=0A=
                 case 'B':=0A=
 =0A=
                   const char_type* __months2[12];=0A=
                   __tp._M_months(__months2);=0A=
                   _M_extract_name(__beg, __end, __tm->tm_mon, __months2, =
 12,=0A=
                                   __err);=0A=
                   break;=0A=
                 case 'c':=0A=
 =0A=
                   const char_type* __dt[2];=0A=
                   __tp._M_date_time_formats(__dt);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __dt[0]);=0A=
                   break;=0A=
                 case 'd':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_mday, 1, 31, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 'D':=0A=
 =0A=
                   __cs =3D "%m/%d/%y";=0A=
                   __ctype.widen(__cs, __cs + 9, __wcs);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __wcs);=0A=
                   break;=0A=
                 case 'H':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_hour, 0, 23, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 'I':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_hour, 1, 12, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 'm':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __mem, 1, 12, 2, __ctype,=0A=
                                  __err);=0A=
                   if (!__err)=0A=
                     __tm->tm_mon =3D __mem - 1;=0A=
                   break;=0A=
                 case 'M':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_min, 0, 59, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 'n':=0A=
                   if (__ctype.narrow(*__beg, 0) =3D=3D '\n')=0A=
                     ++__beg;=0A=
                   else=0A=
                     __err |=3D ios_base::failbit;=0A=
                   break;=0A=
                 case 'R':=0A=
 =0A=
                   __cs =3D "%H:%M";=0A=
                   __ctype.widen(__cs, __cs + 6, __wcs);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __wcs);=0A=
                   break;=0A=
                 case 'S':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_sec, 0, 59, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 't':=0A=
                   if (__ctype.narrow(*__beg, 0) =3D=3D '\t')=0A=
                     ++__beg;=0A=
                   else=0A=
                 __err |=3D ios_base::failbit;=0A=
                   break;=0A=
                 case 'T':=0A=
 =0A=
                   __cs =3D "%H:%M:%S";=0A=
                   __ctype.widen(__cs, __cs + 9, __wcs);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __wcs);=0A=
                   break;=0A=
                 case 'x':=0A=
 =0A=
                   const char_type* __dates[2];=0A=
                   __tp._M_date_formats(__dates);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __dates[0]);=0A=
                   break;=0A=
                 case 'X':=0A=
 =0A=
                   const char_type* __times[2];=0A=
                   __tp._M_time_formats(__times);=0A=
                   _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A=
                                         __times[0]);=0A=
                   break;=0A=
                 case 'y':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __tm->tm_year, 0, 99, 2,=0A=
                                  __ctype, __err);=0A=
                   break;=0A=
                 case 'Y':=0A=
 =0A=
                   _M_extract_num(__beg, __end, __mem, 0,=0A=
                                  numeric_limits<int>::max(), 4,=0A=
                                  __ctype, __err);=0A=
                   if (!__err)=0A=
                     __tm->tm_year =3D __mem - 1900;=0A=
                   break;=0A=
                 case 'Z':=0A=
 =0A=
                   if (__ctype.is(ctype_base::upper, *__beg))=0A=
                     {=0A=
                       int __tmp;=0A=
                       _M_extract_name(__beg, __end, __tmp,=0A=
                                       __timepunct<_CharT>::_S_timezones,=0A=
                                       14, __err);=0A=
 =0A=
 =0A=
                       char_type __c =3D *__beg;=0A=
                       if (!__err && __tmp =3D=3D 0=0A=
                           && (__c =3D=3D __ctype.widen('-')=0A=
                               || __c =3D=3D __ctype.widen('+')))=0A=
                         {=0A=
                           _M_extract_num(__beg, __end, __tmp, 0, 23, 2,=0A=
                                           __ctype, __err);=0A=
                           _M_extract_num(__beg, __end, __tmp, 0, 59, 2,=0A=
                                           __ctype, __err);=0A=
                         }=0A=
                           }=0A=
                       else=0A=
                         __err |=3D ios_base::failbit;=0A=
                       break;=0A=
                     default:=0A=
 =0A=
                       __err |=3D ios_base::failbit;=0A=
                     }=0A=
                 }=0A=
               else=0A=
                 {=0A=
 =0A=
                   if (__c =3D=3D __ctype.narrow(*__beg, 0))=0A=
                     ++__beg;=0A=
                   else=0A=
                     __err |=3D ios_base::failbit;=0A=
                 }=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     void=0A=
     time_get<_CharT, _InIter>::=0A=
     _M_extract_num(iter_type& __beg, iter_type& __end, int& __member,=0A=
                    int __min, int __max, size_t __len,=0A=
                    const ctype<_CharT>& __ctype,=0A=
                    ios_base::iostate& __err) const=0A=
     {=0A=
       size_t __i =3D 0;=0A=
       string __digits;=0A=
       bool __testvalid =3D true;=0A=
       char_type __c =3D *__beg;=0A=
       while (__beg !=3D __end && __i < __len=0A=
              && __ctype.is(ctype_base::digit, __c))=0A=
         {=0A=
           __digits +=3D __ctype.narrow(__c, 0);=0A=
           __c =3D *(++__beg);=0A=
           ++__i;=0A=
         }=0A=
       if (__i =3D=3D __len)=0A=
         {=0A=
           int __value =3D atoi(__digits.c_str());=0A=
           if (__min <=3D __value && __value <=3D __max)=0A=
             __member =3D __value;=0A=
           else=0A=
             __testvalid =3D false;=0A=
         }=0A=
       else=0A=
         __testvalid =3D false;=0A=
       if (!__testvalid)=0A=
         __err |=3D ios_base::failbit;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     void=0A=
     time_get<_CharT, _InIter>::=0A=
     _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,=0A=
                     const _CharT** __names, size_t __indexlen,=0A=
                     ios_base::iostate& __err) const=0A=
     {=0A=
       typedef char_traits<char_type> __traits_type;=0A=
       int* __matches =3D static_cast<int*>(__builtin_alloca(sizeof(int) =
 * __indexlen));=0A=
       size_t __nmatches =3D 0;=0A=
       size_t __pos =3D 0;=0A=
       bool __testvalid =3D true;=0A=
       const char_type* __name;=0A=
 =0A=
       char_type __c =3D *__beg;=0A=
 =0A=
       for (size_t __i1 =3D 0; __i1 < __indexlen; ++__i1)=0A=
         if (__c =3D=3D __names[__i1][0])=0A=
           __matches[__nmatches++] =3D __i1;=0A=
 =0A=
       while(__nmatches > 1)=0A=
         {=0A=
 =0A=
           size_t __minlen =3D 10;=0A=
           for (size_t __i2 =3D 0; __i2 < __nmatches; ++__i2)=0A=
             __minlen =3D min(__minlen,=0A=
                            =
 __traits_type::length(__names[__matches[__i2]]));=0A=
 =0A=
           if (__pos < __minlen && __beg !=3D __end)=0A=
             {=0A=
               ++__pos;=0A=
               __c =3D *(++__beg);=0A=
               for (size_t __i3 =3D 0; __i3 < __nmatches; ++__i3)=0A=
                 {=0A=
                   __name =3D __names[__matches[__i3]];=0A=
                   if (__name[__pos] !=3D __c)=0A=
                     __matches[__i3] =3D __matches[--__nmatches];=0A=
                 }=0A=
             }=0A=
           else=0A=
             break;=0A=
         }=0A=
 =0A=
       if (__nmatches =3D=3D 1)=0A=
         {=0A=
 =0A=
           __name =3D __names[__matches[0]];=0A=
           const size_t __len =3D __traits_type::length(__name);=0A=
           while (__pos < __len && __beg !=3D __end && __name[__pos] =
 =3D=3D *__beg)=0A=
             ++__beg, ++__pos;=0A=
 =0A=
           if (__len =3D=3D __pos)=0A=
             __member =3D __matches[0];=0A=
           else=0A=
             __testvalid =3D false;=0A=
         }=0A=
       else=0A=
         __testvalid =3D false;=0A=
       if (!__testvalid)=0A=
         __err |=3D ios_base::failbit;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     time_get<_CharT, _InIter>::=0A=
     do_get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                 ios_base::iostate& __err, tm* __tm) const=0A=
     {=0A=
       _CharT __wcs[3];=0A=
       const char* __cs =3D "%X";=0A=
       locale __loc =3D __io.getloc();=0A=
       ctype<_CharT> const& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       __ctype.widen(__cs, __cs + 3, __wcs);=0A=
       _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs);=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     time_get<_CharT, _InIter>::=0A=
     do_get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                 ios_base::iostate& __err, tm* __tm) const=0A=
     {=0A=
       _CharT __wcs[3];=0A=
       const char* __cs =3D "%x";=0A=
       locale __loc =3D __io.getloc();=0A=
       ctype<_CharT> const& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       __ctype.widen(__cs, __cs + 3, __wcs);=0A=
       _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs);=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     time_get<_CharT, _InIter>::=0A=
     do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                    ios_base::iostate& __err, tm* __tm) const=0A=
     {=0A=
       typedef char_traits<char_type> __traits_type;=0A=
       locale __loc =3D __io.getloc();=0A=
       __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> =
 >(__loc);=0A=
       const char_type* __days[7];=0A=
       __tp._M_days_abbreviated(__days);=0A=
       int __tmpwday;=0A=
       _M_extract_name(__beg, __end, __tmpwday, __days, 7, __err);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       if (!__err)=0A=
         {=0A=
           size_t __pos =3D __traits_type::length(__days[__tmpwday]);=0A=
           __tp._M_days(__days);=0A=
           const char_type* __name =3D __days[__tmpwday];=0A=
           if (__name[__pos] =3D=3D *__beg)=0A=
             {=0A=
 =0A=
               const size_t __len =3D __traits_type::length(__name);=0A=
               while (__pos < __len && __beg !=3D __end=0A=
                      && __name[__pos] =3D=3D *__beg)=0A=
                 ++__beg, ++__pos;=0A=
               if (__len !=3D __pos)=0A=
                 __err |=3D ios_base::failbit;=0A=
             }=0A=
           if (!__err)=0A=
             __tm->tm_wday =3D __tmpwday;=0A=
         }=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
      }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     time_get<_CharT, _InIter>::=0A=
     do_get_monthname(iter_type __beg, iter_type __end,=0A=
                      ios_base& __io, ios_base::iostate& __err, tm* __tm) =
 const=0A=
     {=0A=
       typedef char_traits<char_type> __traits_type;=0A=
       locale __loc =3D __io.getloc();=0A=
       __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> =
 >(__loc);=0A=
       const char_type* __months[12];=0A=
       __tp._M_months_abbreviated(__months);=0A=
       int __tmpmon;=0A=
       _M_extract_name(__beg, __end, __tmpmon, __months, 12, __err);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       if (!__err)=0A=
         {=0A=
           size_t __pos =3D __traits_type::length(__months[__tmpmon]);=0A=
           __tp._M_months(__months);=0A=
           const char_type* __name =3D __months[__tmpmon];=0A=
           if (__name[__pos] =3D=3D *__beg)=0A=
             {=0A=
 =0A=
               const size_t __len =3D __traits_type::length(__name);=0A=
               while (__pos < __len && __beg !=3D __end=0A=
                      && __name[__pos] =3D=3D *__beg)=0A=
                 ++__beg, ++__pos;=0A=
               if (__len !=3D __pos)=0A=
                 __err |=3D ios_base::failbit;=0A=
             }=0A=
           if (!__err)=0A=
             __tm->tm_mon =3D __tmpmon;=0A=
         }=0A=
 =0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _InIter>=0A=
     _InIter=0A=
     time_get<_CharT, _InIter>::=0A=
     do_get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A=
                 ios_base::iostate& __err, tm* __tm) const=0A=
     {=0A=
       locale __loc =3D __io.getloc();=0A=
       const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
 =0A=
       char_type __c =3D *__beg;=0A=
       size_t __i =3D 0;=0A=
       string __digits;=0A=
       while (__i < 4 && __beg !=3D __end && =
 __ctype.is(ctype_base::digit, __c))=0A=
         {=0A=
           __digits +=3D __ctype.narrow(__c, 0);=0A=
           __c =3D *(++__beg);=0A=
           ++__i;=0A=
         }=0A=
       if (__i =3D=3D 2 || __i =3D=3D 4)=0A=
         {=0A=
           long __l;=0A=
           __convert_to_v(__digits.c_str(), __l, __err, _S_c_locale);=0A=
           if (!(__err & ios_base::failbit) && __l <=3D 2147483647)=0A=
             {=0A=
               __l =3D __i =3D=3D 2 ? __l : __l - 1900;=0A=
               __tm->tm_year =3D static_cast<int>(__l);=0A=
             }=0A=
         }=0A=
       else=0A=
         __err |=3D ios_base::failbit;=0A=
       if (__beg =3D=3D __end)=0A=
         __err |=3D ios_base::eofbit;=0A=
       return __beg;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     time_put<_CharT, _OutIter>::=0A=
     put(iter_type __s, ios_base& __io, char_type, const tm* __tm,=0A=
         const _CharT* __beg, const _CharT* __end) const=0A=
     {=0A=
       locale __loc =3D __io.getloc();=0A=
       ctype<_CharT> const& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       while (__beg !=3D __end)=0A=
         {=0A=
           char __c =3D __ctype.narrow(*__beg, 0);=0A=
           ++__beg;=0A=
           if (__c =3D=3D '%')=0A=
             {=0A=
               char __format;=0A=
               char __mod =3D 0;=0A=
               size_t __len =3D 1;=0A=
               __c =3D __ctype.narrow(*__beg, 0);=0A=
               ++__beg;=0A=
               if (__c =3D=3D 'E' || __c =3D=3D 'O')=0A=
                 {=0A=
                   __mod =3D __c;=0A=
                   __format =3D __ctype.narrow(*__beg, 0);=0A=
                   ++__beg;=0A=
                 }=0A=
               else=0A=
                 __format =3D __c;=0A=
               __s =3D this->do_put(__s, __io, char_type(), __tm, =
 __format,=0A=
                                  __mod);=0A=
             }=0A=
           else=0A=
             {=0A=
               *__s =3D __c;=0A=
               ++__s;=0A=
             }=0A=
         }=0A=
       return __s;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _OutIter>=0A=
     _OutIter=0A=
     time_put<_CharT, _OutIter>::=0A=
     do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm,=0A=
            char __format, char __mod) const=0A=
     {=0A=
       locale __loc =3D __io.getloc();=0A=
       ctype<_CharT> const& __ctype =3D use_facet<ctype<_CharT> >(__loc);=0A=
       __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> =
 >(__loc);=0A=
 =0A=
 =0A=
 =0A=
       const size_t __maxlen =3D 64;=0A=
       char_type* __res =3D=0A=
         static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * =
 __maxlen));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       char_type __fmt[4];=0A=
       __fmt[0] =3D __ctype.widen('%');=0A=
       if (!__mod)=0A=
         {=0A=
           __fmt[1] =3D __format;=0A=
           __fmt[2] =3D char_type();=0A=
         }=0A=
       else=0A=
         {=0A=
           __fmt[1] =3D __mod;=0A=
           __fmt[2] =3D __format;=0A=
           __fmt[3] =3D char_type();=0A=
         }=0A=
 =0A=
       __tp._M_put(__res, __maxlen, __fmt, __tm);=0A=
 =0A=
 =0A=
       size_t __len =3D char_traits<char_type>::length(__res);=0A=
       for (size_t __i =3D 0; __i < __len; ++__i, ++__s)=0A=
         *__s =3D __res[__i];=0A=
       return __s;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     int=0A=
     collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const=0A=
     { return 0; }=0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     size_t=0A=
     collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const=0A=
     { return 0; }=0A=
 =0A=
   template<typename _CharT>=0A=
     int=0A=
     collate<_CharT>::=0A=
     do_compare(const _CharT* __lo1, const _CharT* __hi1,=0A=
                const _CharT* __lo2, const _CharT* __hi2) const=0A=
     {=0A=
       const string_type __one(__lo1, __hi1);=0A=
       const string_type __two(__lo2, __hi2);=0A=
       return _M_compare(__one.c_str(), __two.c_str());=0A=
     }=0A=
 =0A=
  template<typename _CharT>=0A=
     typename collate<_CharT>::string_type=0A=
     collate<_CharT>::=0A=
     do_transform(const _CharT* __lo, const _CharT* __hi) const=0A=
     {=0A=
       size_t __len =3D (__hi - __lo) * 2;=0A=
 =0A=
       _CharT* __c =3D=0A=
         static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));=0A=
       size_t __res =3D _M_transform(__c, __lo, __len);=0A=
 =0A=
       if (__res >=3D __len)=0A=
         {=0A=
           __c =3D=0A=
             static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * =
 (__res + 1)));=0A=
           _M_transform(__c, __lo, __res + 1);=0A=
         }=0A=
       return string_type(__c);=0A=
     }=0A=
 =0A=
  template<typename _CharT>=0A=
     long=0A=
     collate<_CharT>::=0A=
     do_hash(const _CharT* __lo, const _CharT* __hi) const=0A=
     {=0A=
       unsigned long __val =3D 0;=0A=
       for (; __lo < __hi; ++__lo)=0A=
         __val =3D *__lo + ((__val << 7) |=0A=
                        (__val >> (numeric_limits<unsigned long>::digits =
 - 7)));=0A=
       return static_cast<long>(__val);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Tv>=0A=
     void=0A=
     __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& =
 __err,=0A=
                    const __c_locale& __cloc, int __base =3D 10);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Tv>=0A=
     int=0A=
     __convert_from_v(char* __out, const int __size, const char* __fmt,=0A=
                      _Tv __v, const __c_locale&, int __prec =3D -1)=0A=
     {=0A=
       int __ret;=0A=
       const char* __old =3D setlocale(__LC_ALL, "C");=0A=
       if (__prec >=3D 0)=0A=
         __ret =3D snprintf(__out, __size, __fmt, __prec, __v);=0A=
       else=0A=
         __ret =3D snprintf(__out, __size, __fmt, __v);=0A=
       setlocale(__LC_ALL, __old);=0A=
       return __ret;=0A=
     }=0A=
 # 1995 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A=
   template<typename _CharT, typename _Traits>=0A=
     void=0A=
     __pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* =
 __olds,=0A=
           const streamsize __newlen, const streamsize __oldlen,=0A=
           const bool __num)=0A=
     {=0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef typename traits_type::int_type int_type;=0A=
 =0A=
       int_type __plen =3D static_cast<size_t>(__newlen - __oldlen);=0A=
       char_type* __pads =3D =
 static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __plen));=0A=
       traits_type::assign(__pads, __plen, __fill);=0A=
 =0A=
       char_type* __beg;=0A=
       char_type* __end;=0A=
       size_t __mod =3D 0;=0A=
       size_t __beglen;=0A=
       ios_base::fmtflags __adjust =3D __io.flags() & =
 ios_base::adjustfield;=0A=
 =0A=
       if (__adjust =3D=3D ios_base::left)=0A=
         {=0A=
 =0A=
           __beg =3D const_cast<char_type*>(__olds);=0A=
           __beglen =3D __oldlen;=0A=
           __end =3D __pads;=0A=
         }=0A=
       else if (__adjust =3D=3D ios_base::internal && __num)=0A=
         {=0A=
 =0A=
 =0A=
 =0A=
           locale __loc =3D __io.getloc();=0A=
           const ctype<_CharT>& __ctype =3D use_facet<ctype<_CharT> =
 >(__loc);=0A=
           const char_type __minus =3D __ctype.widen('-');=0A=
           const char_type __plus =3D __ctype.widen('+');=0A=
           bool __testsign =3D __olds[0] =3D=3D __minus || __olds[0] =
 =3D=3D __plus;=0A=
           bool __testhex =3D __ctype.widen('0') =3D=3D __olds[0]=0A=
                            && (__ctype.widen('x') =3D=3D __olds[1]=0A=
                                || __ctype.widen('X') =3D=3D __olds[1]);=0A=
           if (__testhex)=0A=
             {=0A=
               __news[0] =3D __olds[0];=0A=
               __news[1] =3D __olds[1];=0A=
               __mod +=3D 2;=0A=
               __news +=3D 2;=0A=
               __beg =3D __pads;=0A=
               __beglen =3D __plen;=0A=
               __end =3D const_cast<char_type*>(__olds + __mod);=0A=
             }=0A=
           else if (__testsign)=0A=
             {=0A=
               __news[0] =3D __olds[0] =3D=3D __plus ? __plus : __minus;=0A=
               ++__mod;=0A=
               ++__news;=0A=
               __beg =3D __pads;=0A=
               __beglen =3D __plen;=0A=
               __end =3D const_cast<char_type*>(__olds + __mod);=0A=
             }=0A=
           else=0A=
             {=0A=
 =0A=
               __beg =3D __pads;=0A=
               __beglen =3D __plen;=0A=
               __end =3D const_cast<char_type*>(__olds);=0A=
             }=0A=
         }=0A=
       else=0A=
         {=0A=
 =0A=
           __beg =3D __pads;=0A=
           __beglen =3D __plen;=0A=
           __end =3D const_cast<char_type*>(__olds);=0A=
         }=0A=
       traits_type::copy(__news, __beg, __beglen);=0A=
       traits_type::copy(__news + __beglen, __end, __newlen - __beglen - =
 __mod);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     void=0A=
     __pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* =
 __olds,=0A=
           const streamsize __newlen, const streamsize __oldlen,=0A=
           const bool __num)=0A=
     {=0A=
       return __pad<_CharT, char_traits<_CharT> >(__io, __fill, __news, =
 __olds,=0A=
                                                  __newlen, __oldlen, =
 __num);=0A=
     }=0A=
 # 2094 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A=
   template<typename _CharT>=0A=
     bool=0A=
     __verify_grouping(const basic_string<_CharT>& __grouping,=0A=
                       basic_string<_CharT>& __grouping_tmp)=0A=
     {=0A=
       int __i =3D 0;=0A=
       int __j =3D 0;=0A=
       const int __len =3D __grouping.size();=0A=
       const int __n =3D __grouping_tmp.size();=0A=
       bool __test =3D true;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
       while (__test && __i < __n - 1)=0A=
         for (__j =3D 0; __test && __j < __len && __i < __n - 1; =
 ++__j,++__i)=0A=
           __test &=3D __grouping[__j] =3D=3D __grouping_tmp[__n - __i - =
 1];=0A=
 =0A=
 =0A=
       __j =3D=3D __len ? __j =3D 0 : __j;=0A=
       __test &=3D __grouping[__j] >=3D __grouping_tmp[__n - __i - 1];=0A=
       return __test;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _CharT>=0A=
     _CharT*=0A=
     __add_grouping(_CharT* __s, _CharT __sep,=0A=
                    const char* __gbeg, const char* __gend,=0A=
                    const _CharT* __first, const _CharT* __last)=0A=
     {=0A=
       if (__last - __first > *__gbeg)=0A=
         {=0A=
           __s =3D __add_grouping(__s, __sep,=0A=
                                (__gbeg + 1 =3D=3D __gend ? __gbeg : =
 __gbeg + 1),=0A=
                                __gend, __first, __last - *__gbeg);=0A=
           __first =3D __last - *__gbeg;=0A=
           *__s++ =3D __sep;=0A=
         }=0A=
       do=0A=
         *__s++ =3D *__first++;=0A=
       while (__first !=3D __last);=0A=
       return __s;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class moneypunct<char, false>;=0A=
   extern template class moneypunct<char, true>;=0A=
   extern template class moneypunct_byname<char, false>;=0A=
   extern template class moneypunct_byname<char, true>;=0A=
   extern template class money_get<char>;=0A=
   extern template class money_put<char>;=0A=
   extern template class moneypunct<wchar_t, false>;=0A=
   extern template class moneypunct<wchar_t, true>;=0A=
   extern template class moneypunct_byname<wchar_t, false>;=0A=
   extern template class moneypunct_byname<wchar_t, true>;=0A=
   extern template class money_get<wchar_t>;=0A=
   extern template class money_put<wchar_t>;=0A=
   extern template class numpunct<char>;=0A=
   extern template class numpunct_byname<char>;=0A=
   extern template class num_get<char>;=0A=
   extern template class num_put<char>;=0A=
   extern template class numpunct<wchar_t>;=0A=
   extern template class numpunct_byname<wchar_t>;=0A=
   extern template class num_get<wchar_t>;=0A=
   extern template class num_put<wchar_t>;=0A=
   extern template class __timepunct<char>;=0A=
   extern template class time_put<char>;=0A=
   extern template class time_put_byname<char>;=0A=
   extern template class time_get<char>;=0A=
   extern template class time_get_byname<char>;=0A=
   extern template class __timepunct<wchar_t>;=0A=
   extern template class time_put<wchar_t>;=0A=
   extern template class time_put_byname<wchar_t>;=0A=
   extern template class time_get<wchar_t>;=0A=
   extern template class time_get_byname<wchar_t>;=0A=
   extern template class messages<char>;=0A=
   extern template class messages_byname<char>;=0A=
   extern template class messages<wchar_t>;=0A=
   extern template class messages_byname<wchar_t>;=0A=
   extern template class ctype_byname<char>;=0A=
   extern template class ctype_byname<wchar_t>;=0A=
   extern template class codecvt_byname<char, char, mbstate_t>;=0A=
   extern template class codecvt_byname<wchar_t, char, mbstate_t>;=0A=
   extern template class collate<char>;=0A=
   extern template class collate_byname<char>;=0A=
   extern template class collate<wchar_t>;=0A=
   extern template class collate_byname<wchar_t>;=0A=
 =0A=
   extern template=0A=
     const codecvt<char, char, mbstate_t>&=0A=
     use_facet<codecvt<char, char, mbstate_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const collate<char>&=0A=
     use_facet<collate<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const numpunct<char>&=0A=
     use_facet<numpunct<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const num_put<char>&=0A=
     use_facet<num_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const num_get<char>&=0A=
     use_facet<num_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const moneypunct<char, true>&=0A=
     use_facet<moneypunct<char, true> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const moneypunct<char, false>&=0A=
     use_facet<moneypunct<char, false> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const money_put<char>&=0A=
     use_facet<money_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const money_get<char>&=0A=
     use_facet<money_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const __timepunct<char>&=0A=
     use_facet<__timepunct<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const time_put<char>&=0A=
     use_facet<time_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const time_get<char>&=0A=
     use_facet<time_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const messages<char>&=0A=
     use_facet<messages<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const codecvt<wchar_t, char, mbstate_t>&=0A=
     use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);=0A=
 =0A=
   extern template=0A=
     const collate<wchar_t>&=0A=
     use_facet<collate<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const numpunct<wchar_t>&=0A=
     use_facet<numpunct<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const num_put<wchar_t>&=0A=
     use_facet<num_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const num_get<wchar_t>&=0A=
     use_facet<num_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const moneypunct<wchar_t, true>&=0A=
     use_facet<moneypunct<wchar_t, true> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const moneypunct<wchar_t, false>&=0A=
     use_facet<moneypunct<wchar_t, false> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const money_put<wchar_t>&=0A=
     use_facet<money_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const money_get<wchar_t>&=0A=
     use_facet<money_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const __timepunct<wchar_t>&=0A=
     use_facet<__timepunct<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const time_put<wchar_t>&=0A=
     use_facet<time_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const time_get<wchar_t>&=0A=
     use_facet<time_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     const messages<wchar_t>&=0A=
     use_facet<messages<wchar_t> >(const locale&);=0A=
 =0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<ctype<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<codecvt<char, char, mbstate_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<collate<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<numpunct<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<num_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<num_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<moneypunct<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<money_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<money_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<__timepunct<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<time_put<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<time_get<char> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<messages<char> >(const locale&);=0A=
 =0A=
  extern template=0A=
     bool=0A=
     has_facet<ctype<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<collate<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<numpunct<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<num_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<num_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<moneypunct<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<money_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<money_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<__timepunct<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<time_put<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<time_get<wchar_t> >(const locale&);=0A=
 =0A=
   extern template=0A=
     bool=0A=
     has_facet<messages<wchar_t> >(const locale&);=0A=
 }=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/locale" 2 3=0A=
 # 38 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>::sentry::=0A=
     sentry(basic_ostream<_CharT,_Traits>& __os)=0A=
     : _M_ok(__os.good()), _M_os(__os)=0A=
     {=0A=
 =0A=
       if (_M_ok && __os.tie())=0A=
         __os.tie()->flush();=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::=0A=
     operator<<(__ostream_type& (*__pf)(__ostream_type&))=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             { __pf(*this); }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::=0A=
     operator<<(__ios_type& (*__pf)(__ios_type&))=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             { __pf(*this); }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::=0A=
     operator<<(ios_base& (*__pf)(ios_base&))=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             { __pf(*this); }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               streamsize __xtrct =3D 0;=0A=
               if (__sbin)=0A=
                 {=0A=
                   __streambuf_type* __sbout =3D this->rdbuf();=0A=
                   __xtrct =3D __copy_streambufs(*this, __sbin, __sbout);=0A=
                 }=0A=
               else=0A=
                 this->setstate(ios_base::badbit);=0A=
               if (!__xtrct)=0A=
                 this->setstate(ios_base::failbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(bool __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(long __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               char_type __c =3D this->fill();=0A=
               ios_base::fmtflags __fmt =3D this->flags() & =
 ios_base::basefield;=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 {=0A=
                   bool __b =3D false;=0A=
                   if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))=0A=
                     {=0A=
                       unsigned long __l =3D static_cast<unsigned =
 long>(__n);=0A=
                       __b =3D _M_fnumput->put(*this, *this, __c, =
 __l).failed();=0A=
                     }=0A=
                   else=0A=
                     __b =3D _M_fnumput->put(*this, *this, __c, =
 __n).failed();=0A=
                   if (__b)=0A=
                     this->setstate(ios_base::badbit);=0A=
                 }=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(unsigned long __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(long long __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               char_type __c =3D this->fill();=0A=
               ios_base::fmtflags __fmt =3D this->flags() & =
 ios_base::basefield;=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 {=0A=
                   bool __b =3D false;=0A=
                   if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))=0A=
                     {=0A=
                       unsigned long long __l;=0A=
                       __l =3D static_cast<unsigned long long>(__n);=0A=
                       __b =3D _M_fnumput->put(*this, *this, __c, =
 __l).failed();=0A=
                     }=0A=
                   else=0A=
                     __b =3D _M_fnumput->put(*this, *this, __c, =
 __n).failed();=0A=
                   if (__b)=0A=
                     this->setstate(ios_base::badbit);=0A=
                 }=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(unsigned long long __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(double __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(long double __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::operator<<(const void* __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               if (_M_check_facet(_M_fnumput))=0A=
                 if (_M_fnumput->put(*this, *this, this->fill(), =
 __n).failed())=0A=
                   this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::put(char_type __c)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           int_type __put =3D rdbuf()->sputc(__c);=0A=
           if (traits_type::eq_int_type(__put, traits_type::eof()))=0A=
             this->setstate(ios_base::badbit);=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize =
 __n)=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           streamsize __put =3D this->rdbuf()->sputn(__s, __n);=0A=
           if ( __put !=3D __n)=0A=
             this->setstate(ios_base::badbit);=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::flush()=0A=
     {=0A=
       sentry __cerb(*this);=0A=
       if (__cerb)=0A=
         {=0A=
           if (this->rdbuf() && this->rdbuf()->pubsync() =3D=3D -1)=0A=
             this->setstate(ios_base::badbit);=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_ostream<_CharT, _Traits>::pos_type=0A=
     basic_ostream<_CharT, _Traits>::tellp()=0A=
     {=0A=
       pos_type __ret =3D pos_type(-1);=0A=
       if (!this->fail())=0A=
         __ret =3D this->rdbuf()->pubseekoff(0, ios_base::cur, =
 ios_base::out);=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::seekp(pos_type __pos)=0A=
     {=0A=
       if (!this->fail())=0A=
         {=0A=
 =0A=
 =0A=
           pos_type __err =3D this->rdbuf()->pubseekpos(__pos, =
 ios_base::out);=0A=
 =0A=
 =0A=
           if (__err =3D=3D pos_type(off_type(-1)))=0A=
             this->setstate(ios_base::failbit);=0A=
 =0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     basic_ostream<_CharT, _Traits>::=0A=
     seekp(off_type __off, ios_base::seekdir __d)=0A=
     {=0A=
       if (!this->fail())=0A=
         {=0A=
 =0A=
 =0A=
           pos_type __err =3D this->rdbuf()->pubseekoff(__off, __d,=0A=
                                                      ios_base::out);=0A=
 =0A=
 =0A=
           if (__err =3D=3D pos_type(off_type(-1)))=0A=
             this->setstate(ios_base::failbit);=0A=
 =0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)=0A=
     {=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               streamsize __w =3D __out.width();=0A=
               _CharT* __pads =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__w + 1)));=0A=
               __pads[0] =3D __c;=0A=
               streamsize __len =3D 1;=0A=
               if (__w > __len)=0A=
                 {=0A=
                   __pad(__out, __out.fill(), __pads, &__c, __w, __len, =
 false);=0A=
                   __len =3D __w;=0A=
                 }=0A=
               __out.write(__pads, __len);=0A=
               __out.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __out.setstate(ios_base::badbit);=0A=
               if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __out;=0A=
     }=0A=
 =0A=
 =0A=
   template <class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, char __c)=0A=
     {=0A=
       typedef basic_ostream<char, _Traits> __ostream_type;=0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               streamsize __w =3D __out.width();=0A=
               char* __pads =3D static_cast<char*>(__builtin_alloca(__w + =
 1));=0A=
               __pads[0] =3D __c;=0A=
               streamsize __len =3D 1;=0A=
               if (__w > __len)=0A=
                 {=0A=
                   __pad(__out, __out.fill(), __pads, &__c, __w, __len, =
 false);=0A=
                   __len =3D __w;=0A=
                 }=0A=
               __out.write(__pads, __len);=0A=
               __out.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __out.setstate(ios_base::badbit);=0A=
               if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __out;=0A=
      }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)=0A=
     {=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               streamsize __w =3D __out.width();=0A=
               _CharT* __pads =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A=
               streamsize __len =3D =
 static_cast<streamsize>(_Traits::length(__s));=0A=
               if (__w > __len)=0A=
                 {=0A=
                   __pad(__out, __out.fill(), __pads, __s, __w, __len, =
 false);=0A=
                   __s =3D __pads;=0A=
                   __len =3D __w;=0A=
                 }=0A=
               __out.write(__s, __len);=0A=
               __out.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __out.setstate(ios_base::badbit);=0A=
               if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __out;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)=0A=
     {=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
 =0A=
 =0A=
 =0A=
       typedef char_traits<char> __ctraits_type;=0A=
 =0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           size_t __clen =3D __ctraits_type::length(__s);=0A=
           _CharT* __ws =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1)));=0A=
           for (size_t __i =3D 0; __i <=3D __clen; ++__i)=0A=
             __ws[__i] =3D __out.widen(__s[__i]);=0A=
           _CharT* __str =3D __ws;=0A=
 =0A=
           try=0A=
             {=0A=
               streamsize __len =3D static_cast<streamsize>(__clen);=0A=
               streamsize __w =3D __out.width();=0A=
               _CharT* __pads =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A=
 =0A=
               if (__w > __len)=0A=
                 {=0A=
                   __pad(__out, __out.fill(), __pads, __ws, __w, __len, =
 false);=0A=
                   __str =3D __pads;=0A=
                   __len =3D __w;=0A=
                 }=0A=
               __out.write(__str, __len);=0A=
               __out.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __out.setstate(ios_base::badbit);=0A=
               if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __out;=0A=
     }=0A=
 =0A=
 =0A=
   template<class _Traits>=0A=
     basic_ostream<char, _Traits>&=0A=
     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)=0A=
     {=0A=
       typedef basic_ostream<char, _Traits> __ostream_type;=0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               streamsize __w =3D __out.width();=0A=
               char* __pads =3D static_cast<char*>(__builtin_alloca(__w));=0A=
               streamsize __len =3D =
 static_cast<streamsize>(_Traits::length(__s));=0A=
               if (__w > __len)=0A=
                 {=0A=
                   __pad(__out, __out.fill(), __pads, __s, __w, __len, =
 false);=0A=
                   __s =3D __pads;=0A=
                   __len =3D __w;=0A=
                 }=0A=
               __out.write(__s, __len);=0A=
               __out.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __out.setstate(ios_base::badbit);=0A=
               if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __out;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_ostream<_CharT, _Traits>&=0A=
     operator<<(basic_ostream<_CharT, _Traits>& __out,=0A=
                const basic_string<_CharT, _Traits, _Alloc>& __str)=0A=
     {=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
       typename __ostream_type::sentry __cerb(__out);=0A=
       if (__cerb)=0A=
         {=0A=
           const _CharT* __s =3D __str.data();=0A=
           streamsize __w =3D __out.width();=0A=
           _CharT* __pads =3D =
 static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A=
           streamsize __len =3D static_cast<streamsize>(__str.size());=0A=
 =0A=
 =0A=
 =0A=
           if (__w > __len)=0A=
             {=0A=
               __pad(__out, __out.fill(), __pads, __s, __w, __len, false);=0A=
               __s =3D __pads;=0A=
               __len =3D __w;=0A=
             }=0A=
           streamsize __res =3D __out.rdbuf()->sputn(__s, __len);=0A=
           __out.width(0);=0A=
           if (__res !=3D __len)=0A=
             __out.setstate(ios_base::failbit);=0A=
         }=0A=
       return __out;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class basic_ostream<char>;=0A=
   extern template ostream& endl(ostream&);=0A=
   extern template ostream& ends(ostream&);=0A=
   extern template ostream& flush(ostream&);=0A=
   extern template ostream& operator<<(ostream&, char);=0A=
   extern template ostream& operator<<(ostream&, unsigned char);=0A=
   extern template ostream& operator<<(ostream&, signed char);=0A=
   extern template ostream& operator<<(ostream&, const char*);=0A=
   extern template ostream& operator<<(ostream&, const unsigned char*);=0A=
   extern template ostream& operator<<(ostream&, const signed char*);=0A=
 =0A=
   extern template class basic_ostream<wchar_t>;=0A=
   extern template wostream& endl(wostream&);=0A=
   extern template wostream& ends(wostream&);=0A=
   extern template wostream& flush(wostream&);=0A=
   extern template wostream& operator<<(wostream&, wchar_t);=0A=
   extern template wostream& operator<<(wostream&, char);=0A=
   extern template wostream& operator<<(wostream&, const wchar_t*);=0A=
   extern template wostream& operator<<(wostream&, const char*);=0A=
 }=0A=
 # 276 "/usr/local/gcc3.1/include/g++-v3/ostream" 2 3=0A=
 # 46 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/istream" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/istream" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_istream : virtual public basic_ios<_CharT, _Traits>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef _CharT char_type;=0A=
       typedef typename _Traits::int_type int_type;=0A=
       typedef typename _Traits::pos_type pos_type;=0A=
       typedef typename _Traits::off_type off_type;=0A=
       typedef _Traits traits_type;=0A=
 =0A=
 =0A=
       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A=
       typedef basic_ios<_CharT, _Traits> __ios_type;=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;=0A=
       typedef num_get<_CharT, __istreambuf_iter> __numget_type;=0A=
       typedef ctype<_CharT> __ctype_type;=0A=
 =0A=
     protected:=0A=
 =0A=
       streamsize _M_gcount;=0A=
 =0A=
     public:=0A=
 =0A=
       explicit=0A=
       basic_istream(__streambuf_type* __sb)=0A=
       {=0A=
         this->init(__sb);=0A=
         _M_gcount =3D streamsize(0);=0A=
       }=0A=
 =0A=
       virtual=0A=
       ~basic_istream()=0A=
       { _M_gcount =3D streamsize(0); }=0A=
 =0A=
 =0A=
       class sentry;=0A=
       friend class sentry;=0A=
 =0A=
 =0A=
 =0A=
       __istream_type&=0A=
       operator>>(__istream_type& (*__pf)(__istream_type&));=0A=
 =0A=
       __istream_type&=0A=
       operator>>(__ios_type& (*__pf)(__ios_type&));=0A=
 =0A=
       __istream_type&=0A=
       operator>>(ios_base& (*__pf)(ios_base&));=0A=
 =0A=
 =0A=
       __istream_type&=0A=
       operator>>(bool& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(short& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(unsigned short& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(int& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(unsigned int& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(long& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(unsigned long& __n);=0A=
 =0A=
 =0A=
       __istream_type&=0A=
       operator>>(long long& __n);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(unsigned long long& __n);=0A=
 =0A=
 =0A=
       __istream_type&=0A=
       operator>>(float& __f);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(double& __f);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(long double& __f);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(void*& __p);=0A=
 =0A=
       __istream_type&=0A=
       operator>>(__streambuf_type* __sb);=0A=
 =0A=
 =0A=
       inline streamsize=0A=
       gcount(void) const=0A=
       { return _M_gcount; }=0A=
 =0A=
       int_type=0A=
       get(void);=0A=
 =0A=
       __istream_type&=0A=
       get(char_type& __c);=0A=
 =0A=
       __istream_type&=0A=
       get(char_type* __s, streamsize __n, char_type __delim);=0A=
 =0A=
       inline __istream_type&=0A=
       get(char_type* __s, streamsize __n)=0A=
       { return this->get(__s, __n, this->widen('\n')); }=0A=
 =0A=
       __istream_type&=0A=
       get(__streambuf_type& __sb, char_type __delim);=0A=
 =0A=
       inline __istream_type&=0A=
       get(__streambuf_type& __sb)=0A=
       { return this->get(__sb, this->widen('\n')); }=0A=
 =0A=
       __istream_type&=0A=
       getline(char_type* __s, streamsize __n, char_type __delim);=0A=
 =0A=
       inline __istream_type&=0A=
       getline(char_type* __s, streamsize __n)=0A=
       { return this->getline(__s, __n, this->widen('\n')); }=0A=
 =0A=
       __istream_type&=0A=
       ignore(streamsize __n =3D 1, int_type __delim =3D =
 traits_type::eof());=0A=
 =0A=
       int_type=0A=
       peek(void);=0A=
 =0A=
       __istream_type&=0A=
       read(char_type* __s, streamsize __n);=0A=
 =0A=
       streamsize=0A=
       readsome(char_type* __s, streamsize __n);=0A=
 =0A=
       __istream_type&=0A=
       putback(char_type __c);=0A=
 =0A=
       __istream_type&=0A=
       unget(void);=0A=
 =0A=
       int=0A=
       sync(void);=0A=
 =0A=
       pos_type=0A=
       tellg(void);=0A=
 =0A=
       __istream_type&=0A=
       seekg(pos_type);=0A=
 =0A=
       __istream_type&=0A=
       seekg(off_type, ios_base::seekdir);=0A=
     };=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_istream<_CharT, _Traits>::sentry=0A=
     {=0A=
     public:=0A=
       typedef _Traits traits_type;=0A=
       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef typename __istream_type::__ctype_type __ctype_type;=0A=
       typedef typename _Traits::int_type __int_type;=0A=
 =0A=
       explicit=0A=
       sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws =3D =
 false);=0A=
 =0A=
       operator bool() { return _M_ok; }=0A=
 =0A=
     private:=0A=
       bool _M_ok;=0A=
     };=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);=0A=
 =0A=
   template<class _Traits>=0A=
     basic_istream<char, _Traits>&=0A=
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)=0A=
     { return (__in >> reinterpret_cast<char&>(__c)); }=0A=
 =0A=
   template<class _Traits>=0A=
     basic_istream<char, _Traits>&=0A=
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)=0A=
     { return (__in >> reinterpret_cast<char&>(__c)); }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);=0A=
 =0A=
   template<class _Traits>=0A=
     basic_istream<char,_Traits>&=0A=
     operator>>(basic_istream<char,_Traits>& __in, unsigned char* __s)=0A=
     { return (__in >> reinterpret_cast<char*>(__s)); }=0A=
 =0A=
   template<class _Traits>=0A=
     basic_istream<char,_Traits>&=0A=
     operator>>(basic_istream<char,_Traits>& __in, signed char* __s)=0A=
     { return (__in >> reinterpret_cast<char*>(__s)); }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     class basic_iostream=0A=
     : public basic_istream<_CharT, _Traits>,=0A=
       public basic_ostream<_CharT, _Traits>=0A=
     {=0A=
     public:=0A=
 =0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A=
 =0A=
       explicit=0A=
       basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)=0A=
       : __istream_type(__sb), __ostream_type(__sb)=0A=
       { }=0A=
 =0A=
       virtual=0A=
       ~basic_iostream() { }=0A=
     };=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     ws(basic_istream<_CharT, _Traits>& __is);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/istream.tcc" 1 3=0A=
 # 36 "/usr/local/gcc3.1/include/g++-v3/bits/istream.tcc" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>::sentry::=0A=
     sentry(basic_istream<_CharT, _Traits>& __in, bool __noskipws)=0A=
     {=0A=
       if (__in.good())=0A=
         {=0A=
           if (__in.tie())=0A=
             __in.tie()->flush();=0A=
           if (!__noskipws && (__in.flags() & ios_base::skipws))=0A=
             {=0A=
               const __int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D __in.rdbuf();=0A=
               __int_type __c =3D __sb->sgetc();=0A=
 =0A=
               if (__in._M_check_facet(__in._M_fctype))=0A=
                 while (__c !=3D __eof=0A=
                        && __in._M_fctype->is(ctype_base::space, __c))=0A=
                   __c =3D __sb->snextc();=0A=
 =0A=
 =0A=
 =0A=
               if (__c =3D=3D __eof)=0A=
                 __in.setstate(ios_base::eofbit);=0A=
 =0A=
             }=0A=
         }=0A=
 =0A=
       if (__in.good())=0A=
         _M_ok =3D true;=0A=
       else=0A=
         {=0A=
           _M_ok =3D false;=0A=
           __in.setstate(ios_base::failbit);=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(__istream_type& (*__pf)(__istream_type&))=0A=
     {=0A=
       __pf(*this);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(__ios_type& (*__pf)(__ios_type&))=0A=
     {=0A=
       __pf(*this);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(ios_base& (*__pf)(ios_base&))=0A=
     {=0A=
       __pf(*this);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(bool& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(short& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               long __l;=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __l);=0A=
 =0A=
 =0A=
               if (!(__err & ios_base::failbit)=0A=
                   && (numeric_limits<short>::min() <=3D __l=0A=
                       && __l <=3D numeric_limits<short>::max()))=0A=
                 __n =3D __l;=0A=
               else=0A=
                 __err |=3D ios_base::failbit;=0A=
 =0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(unsigned short& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(int& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               long __l;=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __l);=0A=
 =0A=
 =0A=
               if (!(__err & ios_base::failbit)=0A=
                   && (numeric_limits<int>::min() <=3D __l=0A=
                       && __l <=3D numeric_limits<int>::max()))=0A=
                 __n =3D __l;=0A=
               else=0A=
                 __err |=3D ios_base::failbit;=0A=
 =0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(unsigned int& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(long& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(unsigned long& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(long long& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
               throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(unsigned long long& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(float& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(double& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(long double& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(void*& __n)=0A=
     {=0A=
       sentry __cerb(*this, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               ios_base::iostate __err =3D =
 ios_base::iostate(ios_base::goodbit);=0A=
               if (_M_check_facet(_M_fnumget))=0A=
                 _M_fnumget->get(*this, 0, *this, __err, __n);=0A=
               this->setstate(__err);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     operator>>(__streambuf_type* __sbout)=0A=
     {=0A=
        sentry __cerb(*this, false);=0A=
        if (__cerb)=0A=
          {=0A=
            try=0A=
              {=0A=
                streamsize __xtrct =3D 0;=0A=
                if (__sbout)=0A=
                  {=0A=
                    __streambuf_type* __sbin =3D this->rdbuf();=0A=
                    __xtrct =3D __copy_streambufs(*this, __sbin, __sbout);=0A=
                  }=0A=
                if (!__sbout || !__xtrct)=0A=
                  this->setstate(ios_base::failbit);=0A=
              }=0A=
            catch(exception& __fail)=0A=
              {=0A=
 =0A=
 =0A=
                this->setstate(ios_base::badbit);=0A=
                if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                  throw;=0A=
              }=0A=
          }=0A=
        return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_istream<_CharT, _Traits>::int_type=0A=
     basic_istream<_CharT, _Traits>::=0A=
     get(void)=0A=
     {=0A=
       const int_type __eof =3D traits_type::eof();=0A=
       int_type __c =3D __eof;=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               __c =3D this->rdbuf()->sbumpc();=0A=
 =0A=
               if (__c !=3D __eof)=0A=
                 _M_gcount =3D 1;=0A=
               else=0A=
                 this->setstate(ios_base::eofbit | ios_base::failbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __c;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     get(char_type& __c)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               int_type __bufval =3D this->rdbuf()->sbumpc();=0A=
 =0A=
               if (__bufval !=3D __eof)=0A=
                 {=0A=
                   _M_gcount =3D 1;=0A=
                   __c =3D traits_type::to_char_type(__bufval);=0A=
                 }=0A=
               else=0A=
                 this->setstate(ios_base::eofbit | ios_base::failbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     get(char_type* __s, streamsize __n, char_type __delim)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __idelim =3D =
 traits_type::to_int_type(__delim);=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               int_type __c =3D __sb->sgetc();=0A=
 =0A=
               while (_M_gcount + 1 < __n && __c !=3D __eof && __c !=3D =
 __idelim)=0A=
                 {=0A=
                   *__s++ =3D traits_type::to_char_type(__c);=0A=
                   __c =3D __sb->snextc();=0A=
                   ++_M_gcount;=0A=
                 }=0A=
               if (__c =3D=3D __eof)=0A=
                 this->setstate(ios_base::eofbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       *__s =3D char_type();=0A=
       if (!_M_gcount)=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     get(__streambuf_type& __sb, char_type __delim)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __idelim =3D =
 traits_type::to_int_type(__delim);=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __this_sb =3D this->rdbuf();=0A=
               int_type __c =3D __this_sb->sgetc();=0A=
 =0A=
               while (__c !=3D __eof && __c !=3D __idelim=0A=
                      && (__sb.sputc(traits_type::to_char_type(__c)) !=3D =
 __eof))=0A=
                 {=0A=
                   ++_M_gcount;=0A=
                   __c =3D __this_sb->snextc();=0A=
                 }=0A=
               if (__c =3D=3D __eof)=0A=
                 this->setstate(ios_base::eofbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       if (!_M_gcount)=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     getline(char_type* __s, streamsize __n, char_type __delim)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __idelim =3D =
 traits_type::to_int_type(__delim);=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               int_type __c =3D __sb->sgetc();=0A=
 =0A=
               while (_M_gcount + 1 < __n && __c !=3D __eof && __c !=3D =
 __idelim)=0A=
                 {=0A=
                   *__s++ =3D traits_type::to_char_type(__c);=0A=
                   __c =3D __sb->snextc();=0A=
                   ++_M_gcount;=0A=
                 }=0A=
               if (__c =3D=3D __eof)=0A=
                 this->setstate(ios_base::eofbit);=0A=
               else=0A=
                 {=0A=
                   if (__c =3D=3D __idelim)=0A=
                     {=0A=
                       __sb->snextc();=0A=
                       ++_M_gcount;=0A=
                     }=0A=
                   else=0A=
                     this->setstate(ios_base::failbit);=0A=
                 }=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       *__s =3D char_type();=0A=
       if (!_M_gcount)=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     ignore(streamsize __n, int_type __delim)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               int_type __c =3D __sb->sgetc();=0A=
 =0A=
               __n =3D min(__n, numeric_limits<streamsize>::max());=0A=
               while (_M_gcount < __n && __c !=3D__eof && __c !=3D =
 __delim)=0A=
                 {=0A=
                   __c =3D __sb->snextc();=0A=
                   ++_M_gcount;=0A=
                 }=0A=
               if (__c =3D=3D __eof)=0A=
                 this->setstate(ios_base::eofbit);=0A=
               else if (__c =3D=3D __delim)=0A=
                 {=0A=
                   __sb->snextc();=0A=
                   ++_M_gcount;=0A=
                 }=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_istream<_CharT, _Traits>::int_type=0A=
     basic_istream<_CharT, _Traits>::=0A=
     peek(void)=0A=
     {=0A=
       int_type __c =3D traits_type::eof();=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             { __c =3D this->rdbuf()->sgetc(); }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __c;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     read(char_type* __s, streamsize __n)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               _M_gcount =3D this->rdbuf()->sgetn(__s, __n);=0A=
               if (_M_gcount !=3D __n)=0A=
                 this->setstate(ios_base::eofbit | ios_base::failbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       else=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     streamsize=0A=
     basic_istream<_CharT, _Traits>::=0A=
     readsome(char_type* __s, streamsize __n)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               streamsize __num =3D this->rdbuf()->in_avail();=0A=
               if (__num !=3D static_cast<streamsize>(__eof))=0A=
                 {=0A=
                   __num =3D min(__num, __n);=0A=
                   if (__num)=0A=
                     _M_gcount =3D this->rdbuf()->sgetn(__s, __num);=0A=
                 }=0A=
               else=0A=
                 this->setstate(ios_base::eofbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       else=0A=
         this->setstate(ios_base::failbit);=0A=
       return _M_gcount;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     putback(char_type __c)=0A=
     {=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               if (!__sb || __sb->sputbackc(__c) =3D=3D __eof)=0A=
                 this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       else=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     unget(void)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               const int_type __eof =3D traits_type::eof();=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               if (!__sb || __eof =3D=3D __sb->sungetc())=0A=
                 this->setstate(ios_base::badbit);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       else=0A=
         this->setstate(ios_base::failbit);=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     int=0A=
     basic_istream<_CharT, _Traits>::=0A=
     sync(void)=0A=
     {=0A=
       int __ret =3D traits_type::eof();=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
               __streambuf_type* __sb =3D this->rdbuf();=0A=
               if (!__sb || __ret =3D=3D __sb->pubsync())=0A=
                 this->setstate(ios_base::badbit);=0A=
               else=0A=
                 __ret =3D 0;=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     typename basic_istream<_CharT, _Traits>::pos_type=0A=
     basic_istream<_CharT, _Traits>::=0A=
     tellg(void)=0A=
     {=0A=
       pos_type __ret =3D pos_type(-1);=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
              __ret =3D this->rdbuf()->pubseekoff(0, ios_base::cur, =
 ios_base::in);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return __ret;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     seekg(pos_type __pos)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
 =0A=
 =0A=
               pos_type __err =3D this->rdbuf()->pubseekpos(__pos, =
 ios_base::in);=0A=
 =0A=
 =0A=
               if (__err =3D=3D pos_type(off_type(-1)))=0A=
                 this->setstate(ios_base::failbit);=0A=
 =0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     basic_istream<_CharT, _Traits>::=0A=
     seekg(off_type __off, ios_base::seekdir __dir)=0A=
     {=0A=
       _M_gcount =3D 0;=0A=
       sentry __cerb(*this, true);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
 =0A=
 =0A=
               pos_type __err =3D this->rdbuf()->pubseekoff(__off, __dir,=0A=
                                                          ios_base::in);=0A=
 =0A=
 =0A=
               if (__err =3D=3D pos_type(off_type(-1)))=0A=
                 this->setstate(ios_base::failbit);=0A=
 =0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               this->setstate(ios_base::badbit);=0A=
               if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)=0A=
     {=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typename __istream_type::sentry __cerb(__in, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             { __in.get(__c); }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __in.setstate(ios_base::badbit);=0A=
               if ((__in.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       else=0A=
         __in.setstate(ios_base::failbit);=0A=
       return __in;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)=0A=
     {=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef typename __istream_type::__streambuf_type __streambuf_type;=0A=
       typedef typename _Traits::int_type int_type;=0A=
       typedef _CharT char_type;=0A=
       typedef ctype<_CharT> __ctype_type;=0A=
       streamsize __extracted =3D 0;=0A=
 =0A=
       typename __istream_type::sentry __cerb(__in, false);=0A=
       if (__cerb)=0A=
         {=0A=
           try=0A=
             {=0A=
 =0A=
               streamsize __num =3D __in.width();=0A=
               if (__num =3D=3D 0)=0A=
                 __num =3D numeric_limits<streamsize>::max();=0A=
 =0A=
               const __ctype_type& __ctype =3D =
 use_facet<__ctype_type>(__in.getloc());=0A=
               const int_type __eof =3D _Traits::eof();=0A=
               __streambuf_type* __sb =3D __in.rdbuf();=0A=
               int_type __c =3D __sb->sgetc();=0A=
 =0A=
               while (__extracted < __num - 1=0A=
                      && __c !=3D __eof && !__ctype.is(ctype_base::space, =
 __c))=0A=
                 {=0A=
                   *__s++ =3D __c;=0A=
                   ++__extracted;=0A=
                   __c =3D __sb->snextc();=0A=
                 }=0A=
               if (__c =3D=3D __eof)=0A=
                 __in.setstate(ios_base::eofbit);=0A=
 =0A=
 =0A=
 =0A=
               *__s =3D char_type();=0A=
 =0A=
               __in.width(0);=0A=
             }=0A=
           catch(exception& __fail)=0A=
             {=0A=
 =0A=
 =0A=
               __in.setstate(ios_base::badbit);=0A=
               if ((__in.exceptions() & ios_base::badbit) !=3D 0)=0A=
                 throw;=0A=
             }=0A=
         }=0A=
       if (!__extracted)=0A=
         __in.setstate(ios_base::failbit);=0A=
       return __in;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits>=0A=
     basic_istream<_CharT,_Traits>&=0A=
     ws(basic_istream<_CharT,_Traits>& __in)=0A=
     {=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef typename __istream_type::__streambuf_type __streambuf_type;=0A=
       typedef typename __istream_type::__ctype_type __ctype_type;=0A=
       typedef typename __istream_type::int_type __int_type;=0A=
 =0A=
       const __ctype_type& __ctype =3D =
 use_facet<__ctype_type>(__in.getloc());=0A=
       const __int_type __eof =3D _Traits::eof();=0A=
       __streambuf_type* __sb =3D __in.rdbuf();=0A=
       __int_type __c =3D __sb->sgetc();=0A=
 =0A=
       while (__c !=3D __eof && __ctype.is(ctype_base::space, __c))=0A=
         __c =3D __sb->snextc();=0A=
       if (__c =3D=3D __eof)=0A=
         __in.setstate(ios_base::eofbit);=0A=
 =0A=
       return __in;=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     operator>>(basic_istream<_CharT, _Traits>& __in,=0A=
                basic_string<_CharT, _Traits, _Alloc>& __str)=0A=
     {=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef typename __istream_type::int_type __int_type;=0A=
       typedef typename __istream_type::__streambuf_type __streambuf_type;=0A=
       typedef typename __istream_type::__ctype_type __ctype_type;=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
       typedef typename __string_type::size_type __size_type;=0A=
       __size_type __extracted =3D 0;=0A=
 =0A=
       typename __istream_type::sentry __cerb(__in, false);=0A=
       if (__cerb)=0A=
         {=0A=
           __str.erase();=0A=
           streamsize __w =3D __in.width();=0A=
           __size_type __n;=0A=
           __n =3D __w > 0 ? static_cast<__size_type>(__w) : =
 __str.max_size();=0A=
 =0A=
           const __ctype_type& __ctype =3D =
 use_facet<__ctype_type>(__in.getloc());=0A=
           const __int_type __eof =3D _Traits::eof();=0A=
           __streambuf_type* __sb =3D __in.rdbuf();=0A=
           __int_type __c =3D __sb->sgetc();=0A=
 =0A=
           while (__extracted < __n=0A=
                  && __c !=3D __eof && !__ctype.is(ctype_base::space, =
 __c))=0A=
             {=0A=
               __str +=3D _Traits::to_char_type(__c);=0A=
               ++__extracted;=0A=
               __c =3D __sb->snextc();=0A=
             }=0A=
           if (__c =3D=3D __eof)=0A=
             __in.setstate(ios_base::eofbit);=0A=
           __in.width(0);=0A=
         }=0A=
 =0A=
 =0A=
       if (!__extracted)=0A=
         __in.setstate (ios_base::failbit);=0A=
 =0A=
       return __in;=0A=
     }=0A=
 =0A=
   template<typename _CharT, typename _Traits, typename _Alloc>=0A=
     basic_istream<_CharT, _Traits>&=0A=
     getline(basic_istream<_CharT, _Traits>& __in,=0A=
             basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)=0A=
     {=0A=
       typedef basic_istream<_CharT, _Traits> __istream_type;=0A=
       typedef typename __istream_type::int_type __int_type;=0A=
       typedef typename __istream_type::__streambuf_type __streambuf_type;=0A=
       typedef typename __istream_type::__ctype_type __ctype_type;=0A=
       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A=
       typedef typename __string_type::size_type __size_type;=0A=
 =0A=
       __size_type __extracted =3D 0;=0A=
       bool __testdelim =3D false;=0A=
       typename __istream_type::sentry __cerb(__in, true);=0A=
       if (__cerb)=0A=
         {=0A=
           __str.erase();=0A=
           __size_type __n =3D __str.max_size();=0A=
 =0A=
           __int_type __idelim =3D _Traits::to_int_type(__delim);=0A=
           __streambuf_type* __sb =3D __in.rdbuf();=0A=
           __int_type __c =3D __sb->sbumpc();=0A=
           const __int_type __eof =3D _Traits::eof();=0A=
           __testdelim =3D __c =3D=3D __idelim;=0A=
 =0A=
           while (__extracted <=3D __n && __c !=3D __eof && !__testdelim)=0A=
             {=0A=
               __str +=3D _Traits::to_char_type(__c);=0A=
               ++__extracted;=0A=
               __c =3D __sb->sbumpc();=0A=
               __testdelim =3D __c =3D=3D __idelim;=0A=
             }=0A=
           if (__c =3D=3D __eof)=0A=
             __in.setstate(ios_base::eofbit);=0A=
         }=0A=
       if (!__extracted && !__testdelim)=0A=
         __in.setstate(ios_base::failbit);=0A=
       return __in;=0A=
     }=0A=
 =0A=
   template<class _CharT, class _Traits, class _Alloc>=0A=
     inline basic_istream<_CharT,_Traits>&=0A=
     getline(basic_istream<_CharT, _Traits>& __in,=0A=
             basic_string<_CharT,_Traits,_Alloc>& __str)=0A=
     { return getline(__in, __str, __in.widen('\n')); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   extern template class basic_istream<char>;=0A=
   extern template istream& ws(istream&);=0A=
   extern template istream& operator>>(istream&, char&);=0A=
   extern template istream& operator>>(istream&, char*);=0A=
   extern template istream& operator>>(istream&, unsigned char&);=0A=
   extern template istream& operator>>(istream&, signed char&);=0A=
   extern template istream& operator>>(istream&, unsigned char*);=0A=
   extern template istream& operator>>(istream&, signed char*);=0A=
 =0A=
   extern template class basic_istream<wchar_t>;=0A=
   extern template wistream& ws(wistream&);=0A=
   extern template wistream& operator>>(wistream&, wchar_t&);=0A=
   extern template wistream& operator>>(wistream&, wchar_t*);=0A=
 }=0A=
 # 288 "/usr/local/gcc3.1/include/g++-v3/istream" 2 3=0A=
 # 47 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   extern istream cin;=0A=
   extern ostream cout;=0A=
   extern ostream cerr;=0A=
   extern ostream clog;=0A=
 =0A=
   extern wistream wcin;=0A=
   extern wostream wcout;=0A=
   extern wostream wcerr;=0A=
   extern wostream wclog;=0A=
 =0A=
 =0A=
 =0A=
   static ios_base::Init __ioinit;=0A=
 }=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 69 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as=
 sertions.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as=
 sertions.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum Failure_behaviour { ABORT, EXIT, EXIT_WITH_SUCCESS, CONTINUE };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void assertion_fail ( const char*, const char*, int, const char*);=0A=
 void precondition_fail ( const char*, const char*, int, const char*);=0A=
 void postcondition_fail ( const char*, const char*, int, const char*);=0A=
 =0A=
 =0A=
 =0A=
 void warning_fail( const char*, const char*, int, const char*);=0A=
 # 319 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as=
 sertions.h"=0A=
 typedef=0A=
     void=0A=
     (*Failure_function)(=0A=
         const char*, const char*, const char*, int, const char*);=0A=
 =0A=
 Failure_function=0A=
 set_error_handler( Failure_function handler);=0A=
 =0A=
 Failure_function=0A=
 set_warning_handler( Failure_function handler);=0A=
 =0A=
 =0A=
 =0A=
 Failure_behaviour=0A=
 set_error_behaviour(Failure_behaviour eb);=0A=
 =0A=
 Failure_behaviour=0A=
 set_warning_behaviour(Failure_behaviour eb);=0A=
 =0A=
 }=0A=
 # 70 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke=
 rnel_assertions.h" 1=0A=
 # 71 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob=
 ject.h" 1=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob=
 ject.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for_virtual.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for_virtual.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Ref_counted_virtual=0A=
 {=0A=
   public:=0A=
     Ref_counted_virtual() : count(1) {}=0A=
     Ref_counted_virtual(const Ref_counted_virtual&) : count(1) {}=0A=
 =0A=
     void add_reference() { ++count; }=0A=
     void remove_reference() { --count; }=0A=
     bool is_referenced() { return (count !=3D 0); }=0A=
     bool is_shared() { return (count > 1); }=0A=
 =0A=
     virtual ~Ref_counted_virtual() {}=0A=
 =0A=
   protected:=0A=
     unsigned int count;=0A=
 };=0A=
 =0A=
 =0A=
 template <class RefCounted>=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Handle_for_virtual=0A=
 {=0A=
   public:=0A=
 =0A=
     Handle_for_virtual(const RefCounted& rc)=0A=
     {=0A=
       ptr =3D new RefCounted(rc);=0A=
     }=0A=
 =0A=
     Handle_for_virtual()=0A=
     {=0A=
       ptr =3D __null;=0A=
     }=0A=
 =0A=
     Handle_for_virtual( const Handle_for_virtual& h)=0A=
     {=0A=
       ptr =3D h.ptr;=0A=
       ptr->add_reference();=0A=
     }=0A=
 =0A=
     ~Handle_for_virtual()=0A=
     {=0A=
       ptr->remove_reference();=0A=
       if ( !ptr->is_referenced() )=0A=
           delete ptr;=0A=
     }=0A=
 =0A=
     Handle_for_virtual&=0A=
     operator=3D( const Handle_for_virtual& h)=0A=
     {=0A=
       h.ptr->add_reference();=0A=
       ptr->remove_reference();=0A=
       if ( !ptr->is_referenced() )=0A=
           delete ptr;=0A=
       ptr =3D h.ptr;=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
     typedef RefCounted element_type;=0A=
 =0A=
     template <class T>=0A=
     void=0A=
     initialize_with( const T& rc)=0A=
     {=0A=
         ptr =3D new T(rc);=0A=
     }=0A=
 =0A=
     bool=0A=
     identical( const Handle_for_virtual& h) const=0A=
     { return ptr =3D=3D h.ptr; }=0A=
 =0A=
     long int=0A=
     id() const=0A=
     { return reinterpret_cast<long int>(&*ptr); }=0A=
 =0A=
     const RefCounted *=0A=
     Ptr() const=0A=
     { return ptr; }=0A=
 # 161 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for_virtual.h"=0A=
 protected:=0A=
 # 170 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for_virtual.h"=0A=
 private:=0A=
 =0A=
     RefCounted * ptr;=0A=
 };=0A=
 =0A=
 }=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob=
 ject.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class T>=0A=
 class Wrapper : public Ref_counted_virtual=0A=
 {=0A=
   public:=0A=
     Wrapper(const T& object) : _object(object) {}=0A=
 =0A=
     Wrapper() {}=0A=
 =0A=
     operator T() const { return _object; }=0A=
 =0A=
     ~Wrapper() {}=0A=
 =0A=
   private:=0A=
     T _object;=0A=
 };=0A=
 =0A=
 class Object=0A=
   : public Handle_for_virtual<Ref_counted_virtual>=0A=
 {=0A=
     struct empty{};=0A=
     typedef Handle_for_virtual<Ref_counted_virtual> base;=0A=
 =0A=
   public:=0A=
 =0A=
     struct private_tag{};=0A=
 =0A=
     Object()=0A=
     {=0A=
         initialize_with(Wrapper<empty>());=0A=
     }=0A=
 =0A=
     template <class T>=0A=
     Object(const T&t, private_tag)=0A=
     {=0A=
         initialize_with(Wrapper<T>(t));=0A=
     }=0A=
 =0A=
     template <class T>=0A=
     bool assign(T &t) const=0A=
     {=0A=
 =0A=
 =0A=
 =0A=
         const Wrapper<T> *wp =3D dynamic_cast<const Wrapper<T> *>(Ptr());=0A=
         if (wp =3D=3D __null)=0A=
             return false;=0A=
         t =3D *wp;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
       return true;=0A=
     }=0A=
 =0A=
     bool=0A=
     is_empty() const=0A=
     {=0A=
         empty E;=0A=
         return assign(E);=0A=
     }=0A=
 };=0A=
 =0A=
 =0A=
 template <class T>=0A=
 inline=0A=
 Object=0A=
 make_object(const T& t)=0A=
 {=0A=
     return Object(t, Object::private_tag());=0A=
 }=0A=
 =0A=
 template <class T>=0A=
 inline=0A=
 bool=0A=
 assign(T& t, const Object& o)=0A=
 {=0A=
     return o.assign(t);=0A=
 }=0A=
 =0A=
 }=0A=
 # 72 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en=
 um.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en=
 um.h"=0A=
 namespace CGAL {=0A=
 =0A=
 enum Sign=0A=
       {=0A=
         NEGATIVE =3D -1,=0A=
         ZERO,=0A=
         POSITIVE=0A=
       };=0A=
 =0A=
 typedef Sign Orientation;=0A=
 =0A=
 const Orientation LEFT_TURN =3D POSITIVE;=0A=
 const Orientation RIGHT_TURN =3D NEGATIVE;=0A=
 =0A=
 =0A=
 const Orientation LEFTTURN =3D POSITIVE;=0A=
 const Orientation RIGHTTURN =3D NEGATIVE;=0A=
 =0A=
 =0A=
 const Orientation CLOCKWISE =3D NEGATIVE;=0A=
 const Orientation COUNTERCLOCKWISE =3D POSITIVE;=0A=
 =0A=
 const Orientation COLLINEAR =3D ZERO;=0A=
 const Orientation COPLANAR =3D ZERO;=0A=
 const Orientation DEGENERATE =3D ZERO;=0A=
 =0A=
 enum Oriented_side=0A=
       {=0A=
         ON_NEGATIVE_SIDE =3D -1,=0A=
         ON_ORIENTED_BOUNDARY,=0A=
         ON_POSITIVE_SIDE=0A=
       };=0A=
 =0A=
 enum Bounded_side=0A=
       {=0A=
         ON_UNBOUNDED_SIDE =3D -1,=0A=
         ON_BOUNDARY,=0A=
         ON_BOUNDED_SIDE=0A=
       };=0A=
 =0A=
 enum Comparison_result=0A=
       {=0A=
         SMALLER =3D -1,=0A=
         EQUAL,=0A=
         LARGER=0A=
       };=0A=
 =0A=
 enum Angle=0A=
       {=0A=
           OBTUSE =3D -1,=0A=
           RIGHT,=0A=
           ACUTE=0A=
       };=0A=
 =0A=
 }=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctions_on_enums.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctions_on_enums.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en=
 um.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctions_on_enums.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class T>=0A=
 inline=0A=
 T=0A=
 opposite(const T& t)=0A=
 { return -t; }=0A=
 =0A=
 inline=0A=
 Sign=0A=
 opposite(Sign o)=0A=
 { return static_cast<Sign>( - static_cast<int>(o)); }=0A=
 =0A=
 inline=0A=
 Comparison_result=0A=
 opposite(Comparison_result o)=0A=
 { return static_cast<Comparison_result>( - static_cast<int>(o)); }=0A=
 =0A=
 inline=0A=
 Oriented_side=0A=
 opposite(Oriented_side os)=0A=
 { return static_cast<Oriented_side>( - static_cast<int>(os)); }=0A=
 =0A=
 inline=0A=
 Bounded_side=0A=
 opposite(Bounded_side bs)=0A=
 { return static_cast<Bounded_side>( - static_cast<int>(bs)); }=0A=
 =0A=
 inline=0A=
 Angle=0A=
 opposite(Angle a)=0A=
 { return static_cast<Angle>( - static_cast<int>(a)); }=0A=
 =0A=
 }=0A=
 # 106 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en=
 um.h" 2=0A=
 # 73 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta=
 gs.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta=
 gs.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/af=
 f_transformation_tags.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/af=
 f_transformation_tags.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Translation {};=0A=
 class Rotation {};=0A=
 class Scaling {};=0A=
 class Reflection {};=0A=
 class Identity_transformation {};=0A=
 =0A=
 extern Translation TRANSLATION;=0A=
 extern Rotation ROTATION;=0A=
 extern Scaling SCALING;=0A=
 extern Reflection REFLECTION;=0A=
 extern Identity_transformation IDENTITY;=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta=
 gs.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /io_tags.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /io_tags.h"=0A=
 namespace CGAL {=0A=
 =0A=
 struct io_Read_write{};=0A=
 struct io_Extract_insert{};=0A=
 struct io_Operator{};=0A=
 =0A=
 }=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta=
 gs.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 struct Tag_true {};=0A=
 struct Tag_false {};=0A=
 =0A=
 inline bool check_tag( Tag_true) {return true;}=0A=
 inline bool check_tag( Tag_false) {return false;}=0A=
 # 71 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta=
 gs.h"=0A=
 template <class Base>=0A=
 struct Assert_tag_class=0A=
 {=0A=
     void match_compile_time_tag( const Base&) const {}=0A=
 };=0A=
 =0A=
 template <class Tag, class Derived>=0A=
 inline=0A=
 void=0A=
 Assert_compile_time_tag( const Tag&, const Derived& b)=0A=
 {=0A=
   Assert_tag_class<Tag> x;=0A=
   x.match_compile_time_tag(b);=0A=
 }=0A=
 =0A=
 =0A=
 template < class T>=0A=
 inline=0A=
 void=0A=
 assert_equal_types( const T&, const T&) {}=0A=
 =0A=
 }=0A=
 # 74 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 1=0A=
 # 65 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 using std::min;=0A=
 using std::max;=0A=
 # 104 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h"=0A=
 }=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Nu=
 mber_type_traits.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Nu=
 mber_type_traits.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class NT >=0A=
 struct Number_type_traits {=0A=
   typedef typename NT::Has_gcd Has_gcd;=0A=
   typedef typename NT::Has_division Has_division;=0A=
   typedef typename NT::Has_sqrt Has_sqrt;=0A=
 };=0A=
 =0A=
 }=0A=
 # 107 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke=
 rnel_basic.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke=
 rnel_basic.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel_traits.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel_traits.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class T>=0A=
 struct Kernel_traits=0A=
 {=0A=
   typedef typename T::R Kernel;=0A=
 };=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke=
 rnel_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctional_base.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctional_base.h"=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/functional" 1 3=0A=
 # 53 "/usr/local/gcc3.1/include/g++-v3/functional" 3=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctional_base.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < int i > struct Arity_tag { enum { arity =3D i }; };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class T >=0A=
 struct Arity_traits {=0A=
   typedef typename T::Arity Arity;=0A=
 };=0A=
 # 143 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu=
 nctional_base.h"=0A=
 template < class T >=0A=
 struct Arity_traits< std::plus< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::minus< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::multiplies< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::divides< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::modulus< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::negate< T > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::equal_to< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::not_equal_to< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::greater< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::less< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::greater_equal< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::less_equal< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::logical_and< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::logical_or< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::logical_not< T > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::unary_negate< T > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::binary_negate< T > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::binder1st< T > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T >=0A=
 struct Arity_traits< std::binder2nd< T > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2 >=0A=
 struct Arity_traits< std::pointer_to_unary_function< T1, T2 > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2, class T3 >=0A=
 struct Arity_traits< std::pointer_to_binary_function< T1, T2, T3 > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T1, class T2 >=0A=
 struct Arity_traits< std::mem_fun_t< T1, T2 > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2, class T3 >=0A=
 struct Arity_traits< std::mem_fun1_t< T1, T2, T3 > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T1, class T2 >=0A=
 struct Arity_traits< std::mem_fun_ref_t< T1, T2 > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2, class T3 >=0A=
 struct Arity_traits< std::mem_fun1_ref_t< T1, T2, T3 > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T1, class T2 >=0A=
 struct Arity_traits< std::const_mem_fun_t< T1, T2 > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2, class T3 >=0A=
 struct Arity_traits< std::const_mem_fun1_t< T1, T2, T3 > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 template < class T1, class T2 >=0A=
 struct Arity_traits< std::const_mem_fun_ref_t< T1, T2 > > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 };=0A=
 template < class T1, class T2, class T3 >=0A=
 struct Arity_traits< std::const_mem_fun1_ref_t< T1, T2, T3 > > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke=
 rnel_basic.h" 2=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_zero(const NT& x)=0A=
 {=0A=
   bool is_zero_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return x =3D=3D NT(0);=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_one(const NT& x)=0A=
 {=0A=
   bool is_one_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return x =3D=3D NT(1);=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_negative(const NT& x)=0A=
 {=0A=
   bool is_negative_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return x < NT(0);=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_positive(const NT& x)=0A=
 {=0A=
   bool is_positive_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return NT(0) < x;=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 Sign=0A=
 sign(const NT& x)=0A=
 {=0A=
   bool sign_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return (x < NT(0)) ? NEGATIVE : (NT(0) < x) ? POSITIVE : ZERO;=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 abs(const NT& x)=0A=
 {=0A=
   bool abs_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return (x < NT(0)) ? -x: x;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 Comparison_result=0A=
 compare(const NT& n1, const NT& n2)=0A=
 {=0A=
   bool compare_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   if (n1 < n2)=0A=
   {=0A=
     return SMALLER ;=0A=
   }=0A=
   return (n2 < n1) ? LARGER : EQUAL;=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 square( const NT& n)=0A=
 {=0A=
   bool square_is_obsolete__qualify_call_by_CGAL_NTS;=0A=
   return n*n;=0A=
 }=0A=
 =0A=
 namespace NTS {=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_zero(const NT& x)=0A=
 { return x =3D=3D NT(0); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_one(const NT& x)=0A=
 { return x =3D=3D NT(1); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_negative(const NT& x)=0A=
 { return x < NT(0); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_positive(const NT& x)=0A=
 { return NT(0) < x; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 Sign=0A=
 sign(const NT& x)=0A=
 { return (x < NT(0)) ? NEGATIVE : (NT(0) < x) ? POSITIVE : ZERO; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 abs(const NT& x)=0A=
 { return (x < NT(0)) ? -x: x; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 const NT&=0A=
 min(const NT& x, const NT& y)=0A=
 { return (y < x) ? y : x; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 const NT&=0A=
 max(const NT& x, const NT& y)=0A=
 { return (x < y) ? y : x; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 Comparison_result=0A=
 compare(const NT& n1, const NT& n2)=0A=
 {=0A=
   if (n1 < n2)=0A=
   {=0A=
     return SMALLER ;=0A=
   }=0A=
   return (n2 < n1) ? LARGER : EQUAL;=0A=
 }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 square( const NT& n)=0A=
 { return n*n; }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 double=0A=
 to_double( const NT& n)=0A=
 { return CGAL::to_double(n); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 div( const NT& n1, const NT& n2)=0A=
 { return CGAL::div(n1, n2); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 sqrt( const NT& n)=0A=
 { return CGAL::sqrt(n); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_valid( const NT& n)=0A=
 { return CGAL::is_valid(n); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_finite( const NT& n)=0A=
 { return CGAL::is_finite(n); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 bool=0A=
 is_integral( const NT& n)=0A=
 { return CGAL::is_integral(n); }=0A=
 =0A=
 template <class NT>=0A=
 inline=0A=
 NT=0A=
 gcd( const NT& n1, const NT& n2)=0A=
 {=0A=
   ((!CGAL::NTS:: is_zero(n2))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "!CGAL_NTS is_zero(n2)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils.h", 244, 0));=0A=
   NT x =3D CGAL::NTS:: abs(n1);=0A=
   NT y =3D CGAL::NTS:: abs(n2);=0A=
   do {=0A=
     x %=3D y;=0A=
     if (CGAL::NTS:: is_zero(x)) return y;=0A=
     y %=3D x;=0A=
   } while (CGAL::NTS:: is_positive(y));=0A=
   return x;=0A=
 }=0A=
 =0A=
 }=0A=
 =0A=
 }=0A=
 # 108 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils_classes.h" 1=0A=
 # 60 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_utils_classes.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class NT >=0A=
 struct Is_zero :public std::unary_function< NT, bool > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   bool operator()( const NT& x) const=0A=
   { return CGAL::NTS:: is_zero( x); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Is_one :public std::unary_function< NT, bool > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   bool operator()( const NT& x) const=0A=
   { return CGAL::NTS:: is_one( x); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Is_negative :public std::unary_function< NT, bool > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   bool operator()( const NT& x) const=0A=
   { return CGAL::NTS:: is_negative( x); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Is_positive :public std::unary_function< NT, bool > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   bool operator()( const NT& x) const=0A=
   { return CGAL::NTS:: is_positive( x); }=0A=
 };=0A=
 =0A=
 =0A=
 template < class NT >=0A=
 struct Sgn :public std::unary_function< NT, int > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   Sign operator()( const NT& x) const=0A=
   { return CGAL::NTS:: sign( x); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Abs :public std::unary_function< NT, NT > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
   NT operator()( const NT& x) const=0A=
   { return CGAL::NTS:: abs( x); }=0A=
 };=0A=
 =0A=
 template < class NT, class Compare =3D std::less< NT > >=0A=
 struct Min :public std::binary_function< NT, NT, NT > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
   Min() {}=0A=
   Min(const Compare& c_) : c(c_) {}=0A=
   NT operator()( const NT& x, const NT& y) const=0A=
   { return min( x, y, c); }=0A=
 protected:=0A=
   Compare c;=0A=
 };=0A=
 =0A=
 template < class NT, class Compare =3D std::less< NT > >=0A=
 struct Max :public std::binary_function< NT, NT, NT > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
   Max() {}=0A=
   Max(const Compare& c_) : c(c_) {}=0A=
   NT operator()( const NT& x, const NT& y) const=0A=
   { return max( x, y, c); }=0A=
 protected:=0A=
   Compare c;=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Compare=0A=
   :public std::binary_function< NT, NT, Comparison_result > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 =0A=
   Comparison_result=0A=
   operator()( const NT& x, const NT& y) const=0A=
   { return CGAL::NTS:: compare( x, y); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Square : public std::unary_function< NT, NT > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 =0A=
   NT=0A=
   operator()( const NT& x) const=0A=
   { return CGAL::NTS:: square( x ); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Sqrt : public std::unary_function< NT, NT > {=0A=
   typedef Arity_tag< 1 > Arity;=0A=
 =0A=
   NT=0A=
   operator()( const NT& x) const=0A=
   { return CGAL::NTS:: sqrt( x ); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Div : public std::binary_function< NT, NT, NT > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 =0A=
   NT=0A=
   operator()( const NT& x, const NT& y) const=0A=
   { return CGAL::NTS:: div( x, y ); }=0A=
 };=0A=
 =0A=
 template < class NT >=0A=
 struct Gcd : public std::binary_function< NT, NT, NT > {=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 =0A=
   NT=0A=
   operator()( const NT& x, const NT& y) const=0A=
   { return CGAL::NTS:: gcd( x, y ); }=0A=
 };=0A=
 =0A=
 }=0A=
 # 109 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do=
 uble.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do=
 uble.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do=
 uble.h" 2=0A=
 # 59 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do=
 uble.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template<> struct Number_type_traits<double> {=0A=
   typedef Tag_false Has_gcd;=0A=
   typedef Tag_true Has_division;=0A=
   typedef Tag_true Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(double d)=0A=
 { return d; }=0A=
 =0A=
 inline=0A=
 double=0A=
 sqrt(double d)=0A=
 { return std::sqrt(d); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_integral (const double d)=0A=
 { return std::ceil(d) =3D=3D d; }=0A=
 # 167 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do=
 uble.h"=0A=
 inline=0A=
 bool=0A=
 is_valid(double d)=0A=
 { return (d =3D=3D d); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(double d)=0A=
 { return (d =3D=3D d) && (is_valid(d-d)); }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(double)=0A=
 { return io_Operator(); }=0A=
 =0A=
 namespace NTS {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <>=0A=
 inline=0A=
 double=0A=
 abs(const double& d)=0A=
 { return std::fabs(d); }=0A=
 =0A=
 }=0A=
 =0A=
 }=0A=
 # 110 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl=
 oat.h" 1=0A=
 # 61 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl=
 oat.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <> struct Number_type_traits<float> {=0A=
   typedef Tag_false Has_gcd;=0A=
   typedef Tag_true Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(float f)=0A=
 { return static_cast<double>(f); }=0A=
 # 159 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl=
 oat.h"=0A=
 inline=0A=
 bool=0A=
 is_valid(float d)=0A=
 { return (d =3D=3D d); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(float d)=0A=
 { return (d =3D=3D d) && (is_valid(d-d)); }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(float)=0A=
 { return io_Operator(); }=0A=
 =0A=
 }=0A=
 # 111 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in=
 t.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in=
 t.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 int=0A=
 div(int i1, int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<unsigned int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned int=0A=
 div(unsigned int i1, unsigned int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(unsigned int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(unsigned int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(unsigned int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(unsigned int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 namespace NTS {=0A=
   inline unsigned int is_negative(unsigned int) { return false; }=0A=
 =0A=
   inline Sign sign(unsigned int i)=0A=
     { return is_positive(i) ? POSITIVE : ZERO; }=0A=
 =0A=
   inline unsigned int is_positive(unsigned int i)=0A=
     { return i !=3D 0; }=0A=
 =0A=
   inline unsigned int abs(unsigned int i) { return i; }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<long int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 long int=0A=
 div(long int i1, long int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(long int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(long int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(long int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(long int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<unsigned long int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned long int=0A=
 div(unsigned long int i1, unsigned long int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(unsigned long int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(unsigned long int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(unsigned long int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(unsigned long int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 namespace NTS {=0A=
   inline unsigned long int is_negative(unsigned long int)=0A=
     { return false; }=0A=
 =0A=
   inline Sign sign(unsigned long int i)=0A=
     { return is_positive(i) ? POSITIVE : ZERO; }=0A=
 =0A=
   inline unsigned long int is_positive(unsigned long int i)=0A=
     { return i !=3D 0; }=0A=
 =0A=
   inline unsigned long int abs(unsigned long int i) { return i; }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<short int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 short int=0A=
 div(short int i1, short int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(short int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(short int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(short int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(short int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 =0A=
 =0A=
 template <> struct Number_type_traits<unsigned short int> {=0A=
   typedef Tag_true Has_gcd;=0A=
   typedef Tag_false Has_division;=0A=
   typedef Tag_false Has_sqrt;=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned short int=0A=
 div(unsigned short int i1, unsigned short int i2)=0A=
 { return i1 / i2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 to_double(unsigned short int i)=0A=
 { return static_cast<double>(i); }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite(unsigned short int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid(unsigned short int)=0A=
 { return true; }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag(unsigned short int)=0A=
 { return io_Operator(); }=0A=
 =0A=
 namespace NTS {=0A=
   inline unsigned short int is_negative(unsigned short int)=0A=
     { return false; }=0A=
 =0A=
   inline Sign sign(unsigned short int i)=0A=
     { return is_positive(i) ? POSITIVE : ZERO; }=0A=
 =0A=
   inline unsigned short int is_positive(unsigned short int i)=0A=
     { return i !=3D 0; }=0A=
 =0A=
   inline unsigned short int abs(unsigned short int i) { return i; }=0A=
 }=0A=
 # 364 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in=
 t.h"=0A=
 }=0A=
 # 112 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h" 1=0A=
 # 61 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h" 1=0A=
 # 62 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h"=0A=
 # 1 "/usr/include/fpu_control.h" 1 3=0A=
 # 89 "/usr/include/fpu_control.h" 3=0A=
 typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__)));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern fpu_control_t __fpu_control;=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h" 2=0A=
 # 84 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline double IA_force_to_double(double x)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   asm("" : "=3Dm"(x) : "m"(x));=0A=
 =0A=
   return x;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 201 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h"=0A=
 typedef unsigned short FPU_CW_t;=0A=
 # 295 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP=
 U.h"=0A=
 inline=0A=
 FPU_CW_t=0A=
 FPU_get_cw (void)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     FPU_CW_t cw;=0A=
     asm volatile ("fnstcw %0" : "=3Dm" (cw));=0A=
     return cw;=0A=
 }=0A=
 =0A=
 inline=0A=
 void=0A=
 FPU_set_cw (FPU_CW_t cw)=0A=
 {=0A=
     asm volatile ("fldcw %0" : :"m" (cw));=0A=
 }=0A=
 =0A=
 inline=0A=
 FPU_CW_t=0A=
 FPU_get_and_set_cw (FPU_CW_t cw)=0A=
 {=0A=
     FPU_CW_t old =3D FPU_get_cw();=0A=
     FPU_set_cw(cw);=0A=
     return old;=0A=
 }=0A=
 =0A=
 FPU_CW_t FPU_empiric_test();=0A=
 =0A=
 void force_ieee_double_precision();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <bool Protected> struct Protect_FPU_rounding;=0A=
 =0A=
 template <>=0A=
 struct Protect_FPU_rounding<true>=0A=
 {=0A=
   Protect_FPU_rounding(FPU_CW_t r =3D (0x800 | 0x127f))=0A=
     : backup( FPU_get_and_set_cw(r) ) {}=0A=
 =0A=
   ~Protect_FPU_rounding()=0A=
   {=0A=
      FPU_set_cw(backup);=0A=
   }=0A=
 =0A=
 private:=0A=
   FPU_CW_t backup;=0A=
 };=0A=
 =0A=
 template <>=0A=
 struct Protect_FPU_rounding<false>=0A=
 {=0A=
   Protect_FPU_rounding(FPU_CW_t=0A=
                         =3D (0x800 | 0x127f))=0A=
   {=0A=
     (static_cast<void>(0));=0A=
   }=0A=
 =0A=
   ~Protect_FPU_rounding() {}=0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 }=0A=
 # 62 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_base.h" 1=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_base.h"=0A=
 namespace CGAL {=0A=
 =0A=
 struct Interval_base=0A=
 {=0A=
   typedef Interval_base IA;=0A=
   struct unsafe_comparison {};=0A=
   static unsigned number_of_failures;=0A=
   static const IA Smallest, Largest;=0A=
 =0A=
   Interval_base () {}=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   Interval_base (const Interval_base &i)=0A=
     : inf_(i.inf_), sup_(i.sup_) {}=0A=
 =0A=
   Interval_base (const double d)=0A=
     : inf_(d), sup_(d) {}=0A=
 =0A=
   Interval_base (const double i, const double s)=0A=
     : inf_(i), sup_(s)=0A=
   {=0A=
 =0A=
 =0A=
     ((!(i>s))?(static_cast<void>(0)): ::CGAL::assertion_fail( "!(i>s)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_base.h", 81, " Variable used before being initialized (or CGAL =
 bug)"));=0A=
 =0A=
   }=0A=
 =0A=
   static void overlap_action()=0A=
   {=0A=
     number_of_failures++;=0A=
     throw unsafe_comparison();=0A=
   }=0A=
 =0A=
   bool operator< (const IA &d) const=0A=
   {=0A=
     if (sup_ < d.inf_) return true;=0A=
     if (inf_ >=3D d.sup_) return false;=0A=
     overlap_action();=0A=
     return false;=0A=
   }=0A=
 =0A=
   bool operator> (const IA &d) const=0A=
   {=0A=
     return d < *this;=0A=
   }=0A=
 =0A=
   bool operator<=3D (const IA &d) const=0A=
   {=0A=
     if (sup_ <=3D d.inf_) return true;=0A=
     if (inf_ > d.sup_) return false;=0A=
     overlap_action();=0A=
     return false;=0A=
   }=0A=
 =0A=
   bool operator>=3D (const IA &d) const=0A=
   {=0A=
     return d <=3D *this;=0A=
   }=0A=
 =0A=
   bool operator=3D=3D (const IA &d) const=0A=
   {=0A=
     if (d.inf_ > sup_ || d.sup_ < inf_) return false;=0A=
     if (d.inf_ =3D=3D sup_ && d.sup_ =3D=3D inf_) return true;=0A=
     overlap_action();=0A=
     return false;=0A=
   }=0A=
 =0A=
   bool operator!=3D (const IA &d) const=0A=
   {=0A=
     return !(*this =3D=3D d);=0A=
   }=0A=
 =0A=
   bool is_point() const=0A=
   {=0A=
     return sup_ =3D=3D inf_;=0A=
   }=0A=
 =0A=
   bool is_same (const IA & d) const=0A=
   {=0A=
     return inf_ =3D=3D d.inf_ && sup_ =3D=3D d.sup_;=0A=
   }=0A=
 =0A=
   bool do_overlap (const IA & d) const=0A=
   {=0A=
     return !(d.inf_ > sup_ || d.sup_ < inf_);=0A=
   }=0A=
 =0A=
   double inf() const { return inf_; }=0A=
   double sup() const { return sup_; }=0A=
 =0A=
 =0A=
   double inf_, sup_;=0A=
 };=0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const Interval_base & d)=0A=
 {=0A=
   return d;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const double & d)=0A=
 {=0A=
   return Interval_base(d);=0A=
 }=0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const float & f)=0A=
 {=0A=
   return Interval_base(double(f));=0A=
 }=0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const int & i)=0A=
 {=0A=
   return Interval_base(double(i));=0A=
 }=0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const short & s)=0A=
 {=0A=
   return Interval_base(double(s));=0A=
 }=0A=
 =0A=
 inline=0A=
 Interval_base=0A=
 to_interval (const long & l)=0A=
 {=0A=
 =0A=
 =0A=
   ((sizeof(double) > sizeof(long))?(static_cast<void>(0)): =
 ::CGAL::assertion_fail( "sizeof(double) > sizeof(long)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_base.h", 194, 0));=0A=
 =0A=
   return Interval_base(double(l));=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 double=0A=
 to_double (const Interval_base & d)=0A=
 {=0A=
   return (d.sup_ + d.inf_) * 0.5;=0A=
 =0A=
 }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_valid (const Interval_base & d)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   return d.inf_ <=3D d.sup_;=0A=
 =0A=
 }=0A=
 =0A=
 inline=0A=
 bool=0A=
 is_finite (const Interval_base & d)=0A=
 {=0A=
   return CGAL::is_finite(d.inf_) && CGAL::is_finite(d.sup_);=0A=
 }=0A=
 =0A=
 inline=0A=
 io_Operator=0A=
 io_tag (const Interval_base &)=0A=
 {=0A=
   return io_Operator();=0A=
 }=0A=
 =0A=
 std::ostream & operator<< (std::ostream &, const Interval_base &);=0A=
 std::istream & operator>> (std::istream &, Interval_base &);=0A=
 =0A=
 }=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <bool Protected =3D true>=0A=
 struct Interval_nt : public Interval_base=0A=
 {=0A=
   typedef Tag_false Has_gcd;=0A=
   typedef Tag_true Has_division;=0A=
   typedef Tag_true Has_sqrt;=0A=
 =0A=
   typedef Interval_nt<Protected> IA;=0A=
 =0A=
   Interval_nt() {}=0A=
 =0A=
   Interval_nt(const double d)=0A=
           : Interval_base(d) {}=0A=
 =0A=
   Interval_nt(const double i, const double s)=0A=
           : Interval_base(i,s) {}=0A=
 =0A=
   Interval_nt(const Interval_base & d)=0A=
           : Interval_base(d) {}=0A=
 =0A=
 =0A=
 =0A=
   IA operator+ (const IA &d) const=0A=
   {=0A=
     Protect_FPU_rounding<Protected> P;=0A=
     return =
 IA(-CGAL::IA_force_to_double((-inf_)-CGAL::IA_force_to_double(d.inf_)), =
 CGAL::IA_force_to_double((sup_)+CGAL::IA_force_to_double(d.sup_)));=0A=
   }=0A=
 =0A=
   IA operator- (const IA &d) const=0A=
   {=0A=
     Protect_FPU_rounding<Protected> P;=0A=
     return =
 IA(-CGAL::IA_force_to_double((d.sup_)-CGAL::IA_force_to_double(inf_)), =
 CGAL::IA_force_to_double((sup_)-CGAL::IA_force_to_double(d.inf_)));=0A=
   }=0A=
 =0A=
   IA operator* (const IA &) const;=0A=
   IA operator/ (const IA &) const;=0A=
 =0A=
   IA operator-() const { return IA (-sup_, -inf_); }=0A=
 =0A=
   IA & operator+=3D (const IA &d) { return *this =3D *this + d; }=0A=
   IA & operator-=3D (const IA &d) { return *this =3D *this - d; }=0A=
   IA & operator*=3D (const IA &d) { return *this =3D *this * d; }=0A=
   IA & operator/=3D (const IA &d) { return *this =3D *this / d; }=0A=
 =0A=
 =0A=
   IA operator|| (const IA & d) const=0A=
   {=0A=
     return IA(std::min(inf_, d.inf_), std::max(sup_, d.sup_));=0A=
   }=0A=
 =0A=
 =0A=
   IA operator&& (const IA & d) const=0A=
   {=0A=
     return IA(std::max(inf_, d.inf_), std::min(sup_, d.sup_));=0A=
   }=0A=
 };=0A=
 # 138 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h"=0A=
 template <bool Protected>=0A=
 =0A=
 inline=0A=
 =0A=
 Interval_nt<Protected>=0A=
 Interval_nt<Protected>::operator* (const Interval_nt<Protected> & d) =
 const=0A=
 {=0A=
   Protect_FPU_rounding<Protected> P;=0A=
   if (inf_>=3D0.0)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     double a =3D inf_, b =3D sup_;=0A=
     if (d.inf_ < 0.0)=0A=
     {=0A=
         a=3Db;=0A=
         if (d.sup_ < 0.0)=0A=
             b=3Dinf_;=0A=
     }=0A=
     return =
 IA(-CGAL::IA_force_to_double((a)*CGAL::IA_force_to_double(-d.inf_)), =
 CGAL::IA_force_to_double((b)*CGAL::IA_force_to_double(d.sup_)));=0A=
   }=0A=
   else if (sup_<=3D0.0)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     double a =3D sup_, b =3D inf_;=0A=
     if (d.inf_ < 0.0)=0A=
     {=0A=
         a=3Db;=0A=
         if (d.sup_ < 0.0)=0A=
             b=3Dsup_;=0A=
     }=0A=
     return =
 IA(-CGAL::IA_force_to_double((b)*CGAL::IA_force_to_double(-d.sup_)), =
 CGAL::IA_force_to_double((a)*CGAL::IA_force_to_double(d.inf_)));=0A=
   }=0A=
   else=0A=
   {=0A=
     if (d.inf_>=3D0.0)=0A=
       return =
 IA(-CGAL::IA_force_to_double((-inf_)*CGAL::IA_force_to_double(d.sup_)), =
 CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(d.sup_)));=0A=
     if (d.sup_<=3D0.0)=0A=
       return =
 IA(-CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(-d.inf_)), =
 CGAL::IA_force_to_double((inf_)*CGAL::IA_force_to_double(d.inf_)));=0A=
 =0A=
     double tmp1 =3D =
 CGAL::IA_force_to_double((-inf_)*CGAL::IA_force_to_double(d.sup_));=0A=
     double tmp2 =3D =
 CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(-d.inf_));=0A=
     double tmp3 =3D =
 CGAL::IA_force_to_double((inf_)*CGAL::IA_force_to_double(d.inf_));=0A=
     double tmp4 =3D =
 CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(d.sup_));=0A=
     return IA(-std::max(tmp1,tmp2), std::max(tmp3,tmp4));=0A=
   };=0A=
 }=0A=
 =0A=
 template <bool Protected>=0A=
 =0A=
 inline=0A=
 =0A=
 Interval_nt<Protected>=0A=
 Interval_nt<Protected>::operator/ (const Interval_nt<Protected> & d) =
 const=0A=
 {=0A=
   Protect_FPU_rounding<Protected> P;=0A=
   if (d.inf_>0.0)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     double a =3D d.sup_, b =3D d.inf_;=0A=
     if (inf_<0.0)=0A=
     {=0A=
         a=3Db;=0A=
         if (sup_<0.0)=0A=
             b=3Dd.sup_;=0A=
     };=0A=
     return =
 IA(-CGAL::IA_force_to_double((-inf_)/CGAL::IA_force_to_double(a)), =
 CGAL::IA_force_to_double((sup_)/CGAL::IA_force_to_double(b)));=0A=
   }=0A=
   else if (d.sup_<0.0)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     double a =3D d.sup_, b =3D d.inf_;=0A=
     if (inf_<0.0)=0A=
     {=0A=
         b=3Da;=0A=
         if (sup_<0.0)=0A=
             a=3Dd.inf_;=0A=
     };=0A=
     return =
 IA(-CGAL::IA_force_to_double((-sup_)/CGAL::IA_force_to_double(a)), =
 CGAL::IA_force_to_double((inf_)/CGAL::IA_force_to_double(b)));=0A=
   }=0A=
   else=0A=
     return IA::Largest;=0A=
 =0A=
 =0A=
 }=0A=
 # 240 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h"=0A=
 template <bool Protected>=0A=
 inline=0A=
 Interval_nt<Protected>=0A=
 sqrt (const Interval_nt<Protected> & d)=0A=
 {=0A=
   Protect_FPU_rounding<Protected> P;=0A=
 =0A=
 =0A=
 =0A=
   FPU_set_cw((0x400 | 0x127f));=0A=
   double i =3D (d.inf_ > 0.0) ? =
 CGAL::IA_force_to_double(std::sqrt(CGAL::IA_force_to_double(d.inf_))) : =
 0.0;=0A=
   FPU_set_cw((0x800 | 0x127f));=0A=
   return Interval_nt<Protected>(i, =
 CGAL::IA_force_to_double(std::sqrt(CGAL::IA_force_to_double(d.sup_))));=0A=
 }=0A=
 =0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Interval_nt<Protected>=0A=
 min (const Interval_nt<Protected> & d, const Interval_nt<Protected> & e)=0A=
 {=0A=
   return Interval_nt<Protected>(std::min(d.inf_, e.inf_),=0A=
                                 std::min(d.sup_, e.sup_));=0A=
 }=0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Interval_nt<Protected>=0A=
 max (const Interval_nt<Protected> & d, const Interval_nt<Protected> & e)=0A=
 {=0A=
   return Interval_nt<Protected>(std::max(d.inf_, e.inf_),=0A=
                                 std::max(d.sup_, e.sup_));=0A=
 }=0A=
 # 306 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h"=0A=
 namespace NTS {=0A=
 =0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Interval_nt<Protected>=0A=
 square (const Interval_nt<Protected> & d)=0A=
 {=0A=
   Protect_FPU_rounding<Protected> P;=0A=
   if (d.inf_>=3D0.0)=0A=
       return =
 Interval_nt<Protected>(-CGAL::IA_force_to_double((d.inf_)*CGAL::IA_force_=
 to_double(-d.inf_)),=0A=
                                      =
 CGAL::IA_force_to_double((d.sup_)*CGAL::IA_force_to_double(d.sup_)));=0A=
   if (d.sup_<=3D0.0)=0A=
       return =
 Interval_nt<Protected>(-CGAL::IA_force_to_double((d.sup_)*CGAL::IA_force_=
 to_double(-d.sup_)),=0A=
                                      =
 CGAL::IA_force_to_double((d.inf_)*CGAL::IA_force_to_double(d.inf_)));=0A=
   return Interval_nt<Protected>(0.0, =
 CGAL::IA_force_to_double((std::max(-d.inf_,d.sup_))*CGAL::IA_force_to_dou=
 ble(std::max(-d.inf_,d.sup_))));=0A=
 }=0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Interval_nt<Protected>=0A=
 abs (const Interval_nt<Protected> & d)=0A=
 {=0A=
   if (d.inf_ >=3D 0.0) return d;=0A=
   if (d.sup_ <=3D 0.0) return -d;=0A=
   return Interval_nt<Protected>(0.0, std::max(-d.inf_, d.sup_));=0A=
 }=0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Sign=0A=
 sign (const Interval_nt<Protected> & d)=0A=
 {=0A=
   if (d.inf_ > 0.0) return POSITIVE;=0A=
   if (d.sup_ < 0.0) return NEGATIVE;=0A=
   if (d.inf_ =3D=3D d.sup_) return ZERO;=0A=
   Interval_nt<Protected>::overlap_action();=0A=
   return ZERO;=0A=
 }=0A=
 =0A=
 template <bool Protected>=0A=
 inline=0A=
 Comparison_result=0A=
 compare (const Interval_nt<Protected> & d, const Interval_nt<Protected> =
 & e)=0A=
 {=0A=
   if (d.inf_ > e.sup_) return LARGER;=0A=
   if (e.inf_ > d.sup_) return SMALLER;=0A=
   if (e.inf_ =3D=3D d.sup_ && d.inf_ =3D=3D e.sup_) return EQUAL;=0A=
   Interval_nt<Protected>::overlap_action();=0A=
   return EQUAL;=0A=
 }=0A=
 # 452 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In=
 terval_arithmetic.h"=0A=
 }=0A=
 =0A=
 typedef Interval_nt<false> Interval_nt_advanced;=0A=
 =0A=
 }=0A=
 # 113 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu=
 mber_type_basic.h" 2=0A=
 # 75 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /io.h" 1=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /io.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /Color.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /Color.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Color {=0A=
 public:=0A=
   Color() {}=0A=
   Color(unsigned char red,=0A=
         unsigned char green,=0A=
         unsigned char blue,=0A=
         unsigned char alpha =3D 120)=0A=
     : _red(red), _green(green), _blue(blue), _alpha(alpha)=0A=
   {}=0A=
 =0A=
   unsigned char r() const {return _red;}=0A=
   unsigned char g() const {return _green;}=0A=
   unsigned char b() const {return _blue;}=0A=
 =0A=
   unsigned char red() const {return _red;}=0A=
   unsigned char green() const {return _green;}=0A=
   unsigned char blue() const {return _blue;}=0A=
   unsigned char alpha() const {return _alpha;}=0A=
   void set_alpha(unsigned char a) {_alpha=3Da;}=0A=
   bool operator=3D=3D(const Color &c) const=0A=
   {=0A=
     return ( (red() =3D=3D c.red()) &&=0A=
              (green() =3D=3D c.green()) &&=0A=
              (blue() =3D=3D c.blue()) );=0A=
   }=0A=
 =0A=
   bool operator!=3D(const Color &c) const=0A=
   {=0A=
     return !( (*this) =3D=3D c);=0A=
   }=0A=
 =0A=
   Color& operator=3D(const Color &c)=0A=
   {=0A=
     _red =3D c.red();=0A=
     _green =3D c.green();=0A=
     _blue =3D c.blue();=0A=
     _alpha =3D c.alpha();=0A=
     return *this;=0A=
   }=0A=
 =0A=
 private:=0A=
   unsigned char _red;=0A=
   unsigned char _green;=0A=
   unsigned char _blue;=0A=
   unsigned char _alpha;=0A=
 };=0A=
 =0A=
 =0A=
 extern const Color BLACK ;=0A=
 extern const Color WHITE ;=0A=
 extern const Color GRAY ;=0A=
 =0A=
 extern const Color RED ;=0A=
 extern const Color GREEN ;=0A=
 =0A=
 extern const Color DEEPBLUE ;=0A=
 extern const Color BLUE ;=0A=
 extern const Color PURPLE ;=0A=
 extern const Color VIOLET ;=0A=
 =0A=
 extern const Color ORANGE ;=0A=
 extern const Color YELLOW ;=0A=
 =0A=
 =0A=
 }=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /io.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 class IO {=0A=
 public:=0A=
     static int mode;=0A=
     enum Mode {ASCII =3D 0, PRETTY, BINARY};=0A=
 };=0A=
 =0A=
 IO::Mode=0A=
 get_mode(std::ios& i);=0A=
 =0A=
 IO::Mode=0A=
 set_ascii_mode(std::ios& i);=0A=
 =0A=
 IO::Mode=0A=
 set_binary_mode(std::ios& i);=0A=
 =0A=
 IO::Mode=0A=
 set_pretty_mode(std::ios& i);=0A=
 =0A=
 IO::Mode=0A=
 set_mode(std::ios& i, IO::Mode m);=0A=
 bool=0A=
 is_pretty(std::ios& i);=0A=
 =0A=
 bool=0A=
 is_ascii(std::ios& i);=0A=
 =0A=
 bool=0A=
 is_binary(std::ios& i);=0A=
 =0A=
 inline io_Read_write io_tag(char){ return io_Read_write(); }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 write(std::ostream& os, const T& t, const io_Read_write&)=0A=
 {=0A=
     os.write(static_cast<char*>(&t), sizeof(t));=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 write(std::ostream& os, const T& t, const io_Operator&)=0A=
 {=0A=
     os << t;=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 write(std::ostream& os, const T& t, const io_Extract_insert&)=0A=
 {=0A=
     insert(os, t);=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 write(std::ostream& os, const T& t)=0A=
 {=0A=
     write(os, t, io_tag(t));=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 read(std::istream& is, T& t, const io_Read_write&)=0A=
 {=0A=
     is.read(static_cast<char*>(&t), sizeof(t));=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 read(std::istream& is, T& t, const io_Operator&)=0A=
 {=0A=
     is >> t;=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 read(std::istream& is, T& t, const io_Extract_insert&)=0A=
 {=0A=
     extract(is, t);=0A=
 }=0A=
 =0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 void=0A=
 read(std::istream& is, T& t)=0A=
 {=0A=
     read(is, t, io_tag(t));=0A=
 }=0A=
 =0A=
 =0A=
 inline=0A=
 std::ostream& operator<<( std::ostream& out, const Color& col)=0A=
 {=0A=
     switch(out.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return out << static_cast<int>(col.red()) << ' '=0A=
                    << static_cast<int>(col.green()) << ' '=0A=
                    << static_cast<int>(col.blue());=0A=
     case IO::BINARY :=0A=
         write(out, static_cast<int>(col.red()));=0A=
         write(out, static_cast<int>(col.green()));=0A=
         write(out, static_cast<int>(col.blue()));=0A=
         return out;=0A=
     default:=0A=
         return out << "Color(" << static_cast<int>(col.red()) << ", "=0A=
                    << static_cast<int>(col.green()) << ", "=0A=
                    << static_cast<int>(col.blue()) << ')';=0A=
     }=0A=
 }=0A=
 =0A=
 inline=0A=
 std::istream &operator>>(std::istream &is, Color& col)=0A=
 {=0A=
     int r, g, b;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> r >> g >> b;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, r);=0A=
         read(is, g);=0A=
         read(is, b);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     col =3D Color(r,g,b);=0A=
     return is;=0A=
 }=0A=
 =0A=
 }=0A=
 # 76 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/me=
 mory.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 struct Ref_counted {};=0A=
 =0A=
 template <class U>=0A=
 struct Ref_counted2=0A=
 {=0A=
     Ref_counted2(const U& u) : count(1), u_(u) {}=0A=
     Ref_counted2(const Ref_counted2& r) : count(1), u_(r.u()) {}=0A=
 =0A=
     U* base_ptr() { return &u_; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     void add_reference() { ++count; }=0A=
     void remove_reference() { --count; }=0A=
     bool is_shared() const { return count > 1; }=0A=
 =0A=
 private:=0A=
 =0A=
     const U& u() const { return u_; }=0A=
 =0A=
     unsigned int count;=0A=
     U u_;=0A=
 };=0A=
 =0A=
 =0A=
 template <class T, class Alloc =3D std::allocator< T > >=0A=
 class Handle_for=0A=
 {=0A=
     typedef Ref_counted2<T> RefCounted;=0A=
 =0A=
 =0A=
     typedef typename Alloc::template rebind<RefCounted>::other Allocator;=0A=
   public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     typedef T element_type;=0A=
 =0A=
     Handle_for()=0A=
     {=0A=
         ptr_ =3D allocator.allocate(1);=0A=
         initialize_with(T());=0A=
     }=0A=
 =0A=
     Handle_for(const T& t)=0A=
     {=0A=
         ptr_ =3D allocator.allocate(1);=0A=
         initialize_with(t);=0A=
     }=0A=
 =0A=
     Handle_for(const Handle_for& h)=0A=
     {=0A=
         ptr_ =3D h.ptr_;=0A=
         ptr_->add_reference();=0A=
     }=0A=
 =0A=
     ~Handle_for()=0A=
     {=0A=
         remove_reference();=0A=
     }=0A=
 =0A=
     Handle_for&=0A=
     operator=3D(const Handle_for& h)=0A=
     {=0A=
         h.ptr_->add_reference();=0A=
         remove_reference();=0A=
         ptr_ =3D h.ptr_;=0A=
         return *this;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     void=0A=
     initialize_with(const T& t)=0A=
     {=0A=
         allocator.construct(ptr_, RefCounted(t));=0A=
     }=0A=
 =0A=
     bool=0A=
     identical(const Handle_for& h) const=0A=
     { return ptr_ =3D=3D h.ptr_; }=0A=
 =0A=
     long int=0A=
     id() const=0A=
     { return reinterpret_cast<long int>(&*ptr_); }=0A=
 =0A=
 =0A=
 =0A=
     const T *=0A=
     Ptr() const=0A=
     { return ptr_->base_ptr(); }=0A=
 # 161 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle_for.h"=0A=
     bool=0A=
     is_shared() const=0A=
     {=0A=
         return ptr_->is_shared();=0A=
     }=0A=
 =0A=
 protected:=0A=
 =0A=
     void=0A=
     copy_on_write()=0A=
     {=0A=
       if ( is_shared() )=0A=
       {=0A=
         RefCounted* tmp_ptr =3D allocator.allocate(1);=0A=
         allocator.construct( tmp_ptr, *ptr_);=0A=
         ptr_->remove_reference();=0A=
         ptr_ =3D tmp_ptr;=0A=
       }=0A=
     }=0A=
 =0A=
 =0A=
     T *=0A=
     ptr()=0A=
     { return ptr_->base_ptr(); }=0A=
 =0A=
     const T *=0A=
     ptr() const=0A=
     { return ptr_->base_ptr(); }=0A=
 =0A=
 private:=0A=
 =0A=
     void=0A=
     remove_reference()=0A=
     {=0A=
       if (! is_shared() ) {=0A=
           allocator.destroy( ptr_);=0A=
           allocator.deallocate( ptr_, 1);=0A=
       }=0A=
       else=0A=
           ptr_->remove_reference();=0A=
     }=0A=
 =0A=
     static Allocator allocator;=0A=
     typename Allocator::pointer ptr_;=0A=
 };=0A=
 =0A=
 =0A=
 template <class T, class Allocator>=0A=
 typename Handle_for<T, Allocator>::Allocator=0A=
 Handle_for<T, Allocator>::allocator;=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 class Leda_like_rep=0A=
 {=0A=
     friend class Leda_like_handle;=0A=
   protected:=0A=
              Leda_like_rep() { count =3D 1; }=0A=
     virtual ~Leda_like_rep() {}=0A=
 =0A=
     int count;=0A=
 };=0A=
 =0A=
 class Leda_like_handle=0A=
 {=0A=
   public:=0A=
     Leda_like_handle()=0A=
         : PTR(static_cast<Leda_like_rep*>(0)) {}=0A=
 =0A=
     Leda_like_handle(const Leda_like_handle& x)=0A=
     {=0A=
       ((x.PTR !=3D =
 static_cast<Leda_like_rep*>(0))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "x.PTR !=3D static_cast<Leda_like_rep*>(0)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h", 71, 0));=0A=
       PTR =3D x.PTR;=0A=
       PTR->count++;=0A=
     }=0A=
 =0A=
     ~Leda_like_handle()=0A=
     {=0A=
         if ( PTR && (--PTR->count =3D=3D 0))=0A=
             delete PTR;=0A=
     }=0A=
 =0A=
     Leda_like_handle&=0A=
     operator=3D(const Leda_like_handle& x)=0A=
     {=0A=
       ((x.PTR !=3D =
 static_cast<Leda_like_rep*>(0))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "x.PTR !=3D static_cast<Leda_like_rep*>(0)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h", 85, 0));=0A=
       x.PTR->count++;=0A=
       if ( PTR && (--PTR->count =3D=3D 0))=0A=
           delete PTR;=0A=
       PTR =3D x.PTR;=0A=
       return *this;=0A=
     }=0A=
 =0A=
     int=0A=
     refs() const { return PTR->count; }=0A=
 =0A=
     friend unsigned long id(const Leda_like_handle& x);=0A=
 =0A=
   protected:=0A=
     Leda_like_rep* PTR;=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned long=0A=
 id(const Leda_like_handle& x)=0A=
 { return reinterpret_cast<unsigned long>(x.PTR); }=0A=
 =0A=
 template < class T >=0A=
 inline=0A=
 bool=0A=
 identical(const T &t1, const T &t2)=0A=
 { return id(t1) =3D=3D id(t2); }=0A=
 =0A=
 }=0A=
 # 137 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha=
 ndle.h"=0A=
 namespace CGAL {=0A=
 =0A=
 typedef Leda_like_handle Handle;=0A=
 typedef Leda_like_rep Rep;=0A=
 =0A=
 }=0A=
 # 77 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn=
 own_bit_size_integers.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn=
 own_bit_size_integers.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     typedef signed char Integer8;=0A=
     typedef short Integer16;=0A=
     typedef int Integer32;=0A=
     typedef unsigned char UInteger8;=0A=
     typedef unsigned short UInteger16;=0A=
     typedef unsigned int UInteger32;=0A=
 # 92 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn=
 own_bit_size_integers.h"=0A=
 }=0A=
 # 79 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic.h" 2=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tw=
 otuple.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tw=
 otuple.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class T >=0A=
 class Twotuple=0A=
 {=0A=
 public:=0A=
   T e0;=0A=
   T e1;=0A=
 =0A=
   Twotuple()=0A=
   {}=0A=
 =0A=
   Twotuple(const T & a0, const T &a1) : e0(a0), e1(a1)=0A=
   {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Th=
 reetuple.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Th=
 reetuple.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class T >=0A=
 struct Threetuple=0A=
 {=0A=
   T e0;=0A=
   T e1;=0A=
   T e2;=0A=
 =0A=
   Threetuple()=0A=
   {}=0A=
 =0A=
   Threetuple(const T & a0, const T & a1, const T & a2)=0A=
     : e0(a0), e1(a1), e2(a2)=0A=
   {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_Handle_for.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_Handle_for.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class Stored >=0A=
 class Simple_Handle_for=0A=
 {=0A=
 public:=0A=
 =0A=
     Simple_Handle_for()=0A=
     {}=0A=
 =0A=
     Simple_Handle_for(const Stored& rc)=0A=
         : _s(rc) {}=0A=
 =0A=
     typedef Stored element_type;=0A=
 =0A=
     void=0A=
     initialize_with(const Stored& rc)=0A=
     {=0A=
       _s =3D rc;=0A=
     }=0A=
 =0A=
     long int=0A=
     id() const=0A=
     { return reinterpret_cast<long int>(&_s); }=0A=
 =0A=
     bool=0A=
     identical(const Simple_Handle_for& h) const=0A=
     { return id() =3D=3D h.id(); }=0A=
 =0A=
     const Stored * Ptr() const=0A=
     { return &_s; }=0A=
 =0A=
     Stored * Ptr()=0A=
     { return &_s; }=0A=
 =0A=
     const Stored * ptr() const=0A=
     { return &_s; }=0A=
 =0A=
     Stored * ptr()=0A=
     { return &_s; }=0A=
 =0A=
     bool=0A=
     is_shared() const=0A=
     {=0A=
         return false;=0A=
     }=0A=
 =0A=
 private:=0A=
     void=0A=
     copy_on_write()=0A=
     {}=0A=
 =0A=
     Stored _s;=0A=
 };=0A=
 =0A=
 }=0A=
 # 57 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ut=
 ility.h" 1=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ut=
 ility.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class T1, class T2, class T3>=0A=
 struct Triple=0A=
 {=0A=
   typedef T1 first_type;=0A=
   typedef T2 second_type;=0A=
   typedef T3 third_type;=0A=
 =0A=
   T1 first;=0A=
   T2 second;=0A=
   T3 third;=0A=
 =0A=
   Triple() {}=0A=
 =0A=
   Triple(const T1& a, const T2& b, const T3& c)=0A=
   : first(a), second(b), third(c)=0A=
   {}=0A=
 };=0A=
 =0A=
 template <class T1, class T2, class T3>=0A=
 inline=0A=
 Triple<T1, T2, T3> make_triple(const T1& x, const T2& y, const T3& z)=0A=
 {=0A=
   return Triple<T1, T2, T3>(x, y, z);=0A=
 }=0A=
 =0A=
 template <class T1, class T2, class T3>=0A=
 inline bool operator=3D=3D(const Triple<T1, T2, T3>& x,=0A=
                        const Triple<T1, T2, T3>& y)=0A=
 {=0A=
   return ( (x.first =3D=3D y.first) &&=0A=
            (x.second =3D=3D y.second) &&=0A=
            (x.third =3D=3D y.third) );=0A=
 }=0A=
 =0A=
 template <class T1, class T2, class T3>=0A=
 inline=0A=
 bool operator<(const Triple<T1, T2, T3>& x,=0A=
                const Triple<T1, T2, T3>& y)=0A=
 {=0A=
   return ( x.first < y.first ||=0A=
            ( (x.first =3D=3D y.first) && (x.second < y.second) ) ||=0A=
            ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A=
              (x.third < y.third) ) );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class T1, class T2, class T3, class T4>=0A=
 struct Quadruple=0A=
 {=0A=
   typedef T1 first_type;=0A=
   typedef T2 second_type;=0A=
   typedef T3 third_type;=0A=
   typedef T4 fourth_type;=0A=
 =0A=
   T1 first;=0A=
   T2 second;=0A=
   T3 third;=0A=
   T4 fourth;=0A=
 =0A=
   Quadruple() {}=0A=
 =0A=
   Quadruple(const T1& a, const T2& b, const T3& c, const T4& d)=0A=
   : first(a), second(b), third(c), fourth(d)=0A=
   {}=0A=
 };=0A=
 =0A=
 template <class T1, class T2, class T3, class T4>=0A=
 inline=0A=
 Quadruple<T1, T2, T3, T4>=0A=
 make_quadruple(const T1& x, const T2& y, const T3& z, const T4& zz)=0A=
 {=0A=
   return Quadruple<T1, T2, T3, T4>(x, y, z, zz);=0A=
 }=0A=
 =0A=
 template <class T1, class T2, class T3, class T4>=0A=
 inline=0A=
 bool=0A=
 operator=3D=3D(const Quadruple<T1, T2, T3, T4>& x,=0A=
            const Quadruple<T1, T2, T3, T4>& y)=0A=
 {=0A=
   return ( (x.first =3D=3D y.first) &&=0A=
            (x.second =3D=3D y.second) &&=0A=
            (x.third =3D=3D y.third) &&=0A=
            (x.fourth =3D=3D y.fourth) );=0A=
 }=0A=
 =0A=
 template <class T1, class T2, class T3, class T4>=0A=
 inline=0A=
 bool=0A=
 operator<(const Quadruple<T1, T2, T3, T4>& x,=0A=
           const Quadruple<T1, T2, T3, T4>& y)=0A=
 {=0A=
   return ( x.first < y.first ||=0A=
            ( (x.first =3D=3D y.first) && (x.second < y.second) ) ||=0A=
            ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A=
              (x.third < y.third) ) ||=0A=
            ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A=
              (x.third =3D=3D y.third) ) &&=0A=
            (x.fourth < y.fourth) );=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 59 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Or=
 igin.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Or=
 igin.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Origin=0A=
 {};=0A=
 =0A=
 extern const Origin ORIGIN;=0A=
 =0A=
 class Null_vector=0A=
 {};=0A=
 =0A=
 extern const Null_vector NULL_VECTOR;=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Fo=
 urtuple.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Fo=
 urtuple.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class T >=0A=
 class Fourtuple=0A=
 {=0A=
 public:=0A=
   T e0;=0A=
   T e1;=0A=
   T e2;=0A=
   T e3;=0A=
 =0A=
   Fourtuple()=0A=
   {}=0A=
 =0A=
   Fourtuple(const T & a0, const T & a1, const T & a2, const T & a3)=0A=
     : e0(a0), e1(a1), e2(a2), e3(a3)=0A=
   {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_2.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 class Bbox_2 : public Simple_Handle_for< Fourtuple<double> >=0A=
 {=0A=
   typedef Simple_Handle_for< Fourtuple<double> > BBox_handle_2;=0A=
   typedef BBox_handle_2::element_type BBox_ref_2;=0A=
 =0A=
 public:=0A=
              Bbox_2()=0A=
                  : BBox_handle_2(BBox_ref_2()) {}=0A=
 =0A=
              Bbox_2(double x_min, double y_min,=0A=
                     double x_max, double y_max)=0A=
                  : BBox_handle_2(BBox_ref_2(x_min, y_min,=0A=
                                             x_max, y_max)) {}=0A=
 =0A=
   inline bool operator=3D=3D(const Bbox_2 &b) const;=0A=
   inline bool operator!=3D(const Bbox_2 &b) const;=0A=
 =0A=
   inline int dimension() const;=0A=
   inline double xmin() const;=0A=
   inline double ymin() const;=0A=
   inline double xmax() const;=0A=
   inline double ymax() const;=0A=
 =0A=
   inline double max(int i) const;=0A=
   inline double min(int i) const;=0A=
 =0A=
   inline Bbox_2 operator+(const Bbox_2 &b) const;=0A=
 =0A=
 };=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::xmin() const=0A=
 { return Ptr()->e0; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::ymin() const=0A=
 { return Ptr()->e1; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::xmax() const=0A=
 { return Ptr()->e2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::ymax() const=0A=
 { return Ptr()->e3; }=0A=
 =0A=
 inline=0A=
 bool=0A=
 Bbox_2::operator=3D=3D(const Bbox_2 &b) const=0A=
 {=0A=
   return xmin() =3D=3D b.xmin() && xmax() =3D=3D b.xmax()=0A=
          && ymin() =3D=3D b.ymin() && ymax() =3D=3D b.ymax();=0A=
 }=0A=
 =0A=
 inline=0A=
 bool=0A=
 Bbox_2::operator!=3D(const Bbox_2 &b) const=0A=
 {=0A=
   return ! (b =3D=3D *this);=0A=
 }=0A=
 =0A=
 inline=0A=
 int=0A=
 Bbox_2::dimension() const=0A=
 { return 2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::min(int i) const=0A=
 {=0A=
   (((i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i =3D=3D 0 ) || ( i =3D=3D 1 )" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_2.h", 130, 0));=0A=
   if(i =3D=3D 0) { return xmin(); }=0A=
   return ymin();=0A=
 }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_2::max(int i) const=0A=
 {=0A=
   (((i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i =3D=3D 0 ) || ( i =3D=3D 1 )" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_2.h", 139, 0));=0A=
   if(i =3D=3D 0) { return xmax(); }=0A=
   return ymax();=0A=
 }=0A=
 =0A=
 inline=0A=
 Bbox_2=0A=
 Bbox_2::operator+(const Bbox_2 &b) const=0A=
 {=0A=
   return Bbox_2(std::min(xmin(), b.xmin()),=0A=
                 std::min(ymin(), b.ymin()),=0A=
                 std::max(xmax(), b.xmax()),=0A=
                 std::max(ymax(), b.ymax()));=0A=
 }=0A=
 =0A=
 inline=0A=
 bool=0A=
 do_overlap(const Bbox_2 &bb1, const Bbox_2 &bb2)=0A=
 {=0A=
 =0A=
     if (bb1.xmax() < bb2.xmin() || bb2.xmax() < bb1.xmin())=0A=
         return false;=0A=
     if (bb1.ymax() < bb2.ymin() || bb2.ymax() < bb1.ymin())=0A=
         return false;=0A=
     return true;=0A=
 }=0A=
 =0A=
 =0A=
 inline=0A=
 std::ostream&=0A=
 operator<<(std::ostream &os, const Bbox_2 &b)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         os << b.xmin() << ' ' << b.ymin() << ' '=0A=
            << b.xmax() << ' ' << b.ymax();=0A=
         break;=0A=
     case IO::BINARY :=0A=
         write(os, b.xmin());=0A=
         write(os, b.ymin());=0A=
         write(os, b.xmax());=0A=
         write(os, b.ymax());=0A=
         break;=0A=
     default:=0A=
         os << "Bbox_2(" << b.xmin() << ", " << b.ymin() << ", "=0A=
                         << b.xmax() << ", " << b.ymax() << ")";=0A=
         break;=0A=
     }=0A=
     return os;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 std::istream&=0A=
 operator>>(std::istream &is, Bbox_2 &b)=0A=
 {=0A=
     double xmin, ymin, xmax, ymax;=0A=
 =0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> xmin >> ymin >> xmax >> ymax;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, xmin);=0A=
         read(is, ymin);=0A=
         read(is, xmax);=0A=
         read(is, ymax);=0A=
         break;=0A=
     }=0A=
     b =3D Bbox_2(xmin, ymin, xmax, ymax);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_3.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 xtuple.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 xtuple.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class T >=0A=
 class Sixtuple=0A=
 {=0A=
 public:=0A=
 =0A=
   T e0;=0A=
   T e1;=0A=
   T e2;=0A=
   T e3;=0A=
   T e4;=0A=
   T e5;=0A=
 =0A=
   Sixtuple()=0A=
   {}=0A=
 =0A=
   Sixtuple(const T & a0, const T & a1, const T & a2,=0A=
            const T & a3, const T & a4, const T & a5)=0A=
     : e0(a0), e1(a1), e2(a2), e3(a3), e4(a4), e5(a5)=0A=
   {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb=
 ox_3.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 class Bbox_3 : public Simple_Handle_for< Sixtuple<double> >=0A=
 {=0A=
   typedef Simple_Handle_for< Sixtuple<double> > BBox_handle_3;=0A=
   typedef BBox_handle_3::element_type BBox_ref_3;=0A=
 =0A=
 public:=0A=
         Bbox_3()=0A=
           : BBox_handle_3(BBox_ref_3()) {}=0A=
 =0A=
         Bbox_3(double x_min, double y_min, double z_min,=0A=
                double x_max, double y_max, double z_max)=0A=
           : BBox_handle_3(BBox_ref_3(x_min, y_min, z_min,=0A=
                                      x_max, y_max, z_max)) {}=0A=
 =0A=
   double xmin() const;=0A=
   double ymin() const;=0A=
   double zmin() const;=0A=
   double xmax() const;=0A=
   double ymax() const;=0A=
   double zmax() const;=0A=
 =0A=
   Bbox_3 operator+(const Bbox_3& b) const;=0A=
 };=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::xmin() const=0A=
 { return Ptr()->e0; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::ymin() const=0A=
 { return Ptr()->e1; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::zmin() const=0A=
 { return Ptr()->e2; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::xmax() const=0A=
 { return Ptr()->e3; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::ymax() const=0A=
 { return Ptr()->e4; }=0A=
 =0A=
 inline=0A=
 double=0A=
 Bbox_3::zmax() const=0A=
 { return Ptr()->e5; }=0A=
 =0A=
 inline=0A=
 Bbox_3=0A=
 Bbox_3::operator+(const Bbox_3& b) const=0A=
 {=0A=
   return Bbox_3(std::min(xmin(), b.xmin()),=0A=
                 std::min(ymin(), b.ymin()),=0A=
                 std::min(zmin(), b.zmin()),=0A=
                 std::max(xmax(), b.xmax()),=0A=
                 std::max(ymax(), b.ymax()),=0A=
                 std::max(zmax(), b.zmax()));=0A=
 }=0A=
 =0A=
 inline=0A=
 bool=0A=
 do_overlap(const Bbox_3& bb1, const Bbox_3& bb2)=0A=
 {=0A=
 =0A=
     if (bb1.xmax() < bb2.xmin() || bb2.xmax() < bb1.xmin())=0A=
         return false;=0A=
     if (bb1.ymax() < bb2.ymin() || bb2.ymax() < bb1.ymin())=0A=
         return false;=0A=
     if (bb1.zmax() < bb2.zmin() || bb2.zmax() < bb1.zmin())=0A=
         return false;=0A=
     return true;=0A=
 }=0A=
 =0A=
 =0A=
 inline=0A=
 std::ostream&=0A=
 operator<<(std::ostream &os, const Bbox_3& b)=0A=
 {=0A=
   switch(os.iword(IO::mode))=0A=
   {=0A=
     case IO::ASCII :=0A=
         return os << b.xmin() << ' ' << b.ymin() << ' ' << b.zmin();=0A=
     case IO::BINARY :=0A=
         write(os, b.xmin());=0A=
         write(os, b.ymin());=0A=
         write(os, b.zmin());=0A=
         write(os, b.xmax());=0A=
         write(os, b.ymax());=0A=
         write(os, b.zmax());=0A=
         return os;=0A=
     default:=0A=
         os << "Bbox_3((" << b.xmin()=0A=
            << ", " << b.ymin()=0A=
            << ", " << b.zmin() << "), (";=0A=
         os << b.xmax()=0A=
            << ", " << b.ymax()=0A=
            << ", " << b.zmax() << "))";=0A=
         return os;=0A=
   }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 inline=0A=
 std::istream&=0A=
 operator>>(std::istream &is, Bbox_3& b)=0A=
 {=0A=
   double xmin, ymin, zmin, xmax, ymax, zmax;=0A=
 =0A=
   switch(is.iword(IO::mode))=0A=
   {=0A=
     case IO::ASCII :=0A=
         is >> xmin >> ymin >> xmax >> ymax;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, xmin);=0A=
         read(is, ymin);=0A=
         read(is, zmin);=0A=
         read(is, xmax);=0A=
         read(is, ymax);=0A=
         read(is, zmax);=0A=
         break;=0A=
   }=0A=
   b =3D Bbox_3(xmin, ymin, zmin, xmax, ymax, zmax);=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/re=
 presentation_tags.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/re=
 presentation_tags.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Cartesian_tag {};=0A=
 class Homogeneous_tag {};=0A=
 =0A=
 }=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba=
 sic_classes.h" 2=0A=
 # 60 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po=
 int_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po=
 int_2.h"=0A=
 class Origin;=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Point_2 : public R_::Kernel_base::Point_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Kernel_base::Point_2 RPoint_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Point_2()=0A=
   {}=0A=
 =0A=
   Point_2(const Origin& o)=0A=
     : RPoint_2(o)=0A=
   {}=0A=
 =0A=
   Point_2(const CGAL::Point_2<R>& p)=0A=
     : RPoint_2(static_cast<const RPoint_2&>(p))=0A=
   {}=0A=
 =0A=
   Point_2(const RPoint_2& p)=0A=
     : RPoint_2(p)=0A=
   {}=0A=
 =0A=
   Point_2(const RT& hx, const RT& hy)=0A=
     : RPoint_2(hx, hy)=0A=
   {}=0A=
 =0A=
   Point_2(const RT& hx, const RT& hy, const RT& hw)=0A=
     : RPoint_2(hx, hy, hw)=0A=
   {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Point_2<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Point_2 RPoint_2;=0A=
   return os << static_cast<const RPoint_2&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Point_2<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Point_2 RPoint_2;=0A=
   return is >> static_cast<RPoint_2&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve=
 ctor_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve=
 ctor_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Null_vector;=0A=
 =0A=
 template <class R_>=0A=
 class Vector_2 : public R_::Kernel_base::Vector_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Kernel_base::Vector_2 RVector_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Vector_2() {}=0A=
 =0A=
   Vector_2(const CGAL::Vector_2<R> &v)=0A=
       : RVector_2(static_cast<const RVector_2&>(v)) {}=0A=
 =0A=
   Vector_2(const Point_2& a, const Point_2& b)=0A=
       : RVector_2(a, b) {}=0A=
 =0A=
   Vector_2(const RVector_2& v) : RVector_2(v) {}=0A=
 =0A=
   Vector_2(const Null_vector &v) : RVector_2(v) {}=0A=
 =0A=
   Vector_2(const RT &x, const RT &y) : RVector_2(x,y) {}=0A=
 =0A=
   Vector_2(const RT &x, const RT &y, const RT &w) : RVector_2(x,y,w) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Vector_2<R> &v)=0A=
 {=0A=
   typedef typename R::Kernel_base::Vector_2 RVector_2;=0A=
   return os << static_cast<const RVector_2&>(v);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Vector_2<R> &p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Vector_2 RVector_2;=0A=
   return is >> static_cast<RVector_2&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di=
 rection_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di=
 rection_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Direction_2 : public R_::Kernel_base::Direction_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Ray_2 Ray_2;=0A=
   typedef typename R_::Segment_2 Segment_2;=0A=
   typedef typename R_::Kernel_base::Direction_2 RDirection_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Direction_2()=0A=
   {}=0A=
 =0A=
   Direction_2(const CGAL::Direction_2<R> &d)=0A=
     : RDirection_2(static_cast<const RDirection_2&>(d)) {}=0A=
 =0A=
   Direction_2(const RDirection_2& d)=0A=
     : RDirection_2(d) {}=0A=
 =0A=
   Direction_2(const Vector_2& v)=0A=
     : RDirection_2(v) {}=0A=
 =0A=
   Direction_2(const Line_2& l)=0A=
     : RDirection_2(l) {}=0A=
 =0A=
   Direction_2(const Ray_2& r)=0A=
     : RDirection_2(r) {}=0A=
 =0A=
   Direction_2(const Segment_2& s)=0A=
     : RDirection_2(s) {}=0A=
 =0A=
   Direction_2(const RT &x, const RT &y)=0A=
     : RDirection_2(x,y) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Direction_2<R> &d)=0A=
 {=0A=
   typedef typename R::Kernel_base::Direction_2 RDirection_2;=0A=
   return os << static_cast<const RDirection_2&>(d);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Direction_2<R> &p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Direction_2 RDirection_2;=0A=
   return is >> static_cast<RDirection_2&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li=
 ne_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li=
 ne_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Line_2 : public R_::Kernel_base::Line_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Segment_2 Segment_2;=0A=
   typedef typename R_::Ray_2 Ray_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Kernel_base::Line_2 RLine_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Line_2()=0A=
     : RLine_2() {}=0A=
 =0A=
   Line_2(const CGAL::Line_2<R> &l)=0A=
     : RLine_2(static_cast<const RLine_2&>(l)) {}=0A=
 =0A=
   Line_2(const Point_2 &p, const Point_2 &q)=0A=
     : RLine_2(p,q) {}=0A=
 =0A=
   Line_2(const RT &a, const RT &b, const RT &c)=0A=
     : RLine_2(a,b,c) {}=0A=
 =0A=
   Line_2(const RLine_2& l)=0A=
     : RLine_2(l) {}=0A=
 =0A=
   Line_2(const Segment_2& s)=0A=
     : RLine_2(s) {}=0A=
 =0A=
   Line_2(const Ray_2& r)=0A=
     : RLine_2(r) {}=0A=
 =0A=
   Line_2(const Point_2 &p, const Direction_2 &d)=0A=
     : RLine_2(p,d) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Line_2<R> &l)=0A=
 {=0A=
   typedef typename R::Kernel_base::Line_2 RLine_2;=0A=
   return os << static_cast<const RLine_2&>(l);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Line_2<R> &p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Line_2 RLine_2;=0A=
   return is >> static_cast<RLine_2&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra=
 y_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra=
 y_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Ray_2 : public R_::Kernel_base::Ray_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Kernel_base::Ray_2 RRay_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Ray_2()=0A=
     : RRay_2() {}=0A=
 =0A=
   Ray_2(const CGAL::Ray_2<R> &r)=0A=
     : RRay_2(static_cast<const RRay_2&>(r)) {}=0A=
 =0A=
   Ray_2(const RRay_2& r)=0A=
     : RRay_2(r) {}=0A=
 =0A=
   Ray_2(const Point_2 &sp, const Point_2 &secondp)=0A=
     : RRay_2(sp, secondp) {}=0A=
 =0A=
   Ray_2(const Point_2 &sp, const Direction_2 &d)=0A=
     : RRay_2(sp, d) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Ray_2<R> &r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Ray_2 RRay_2;=0A=
   return os << static_cast<const RRay_2&>(r);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Ray_2<R> &r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Ray_2 RRay_2;=0A=
   return is >> static_cast<RRay_2&>(r);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se=
 gment_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se=
 gment_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Segment_2 : public R_::Kernel_base::Segment_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Kernel_base::Segment_2 RSegment_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Segment_2()=0A=
     : RSegment_2() {}=0A=
 =0A=
   Segment_2(const CGAL::Segment_2<R>& s)=0A=
     : RSegment_2(static_cast<const RSegment_2&>(s)) {}=0A=
 =0A=
   Segment_2(const Point_2 &sp, const Point_2 &ep)=0A=
     : RSegment_2(sp,ep) {}=0A=
 =0A=
 =0A=
   Segment_2(const RSegment_2& s)=0A=
     : RSegment_2(s) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R>=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Segment_2<R> &s)=0A=
 {=0A=
   typedef typename R::Kernel_base::Segment_2 RSegment_2;=0A=
   return os << static_cast<const RSegment_2&>(s);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R>=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Segment_2<R> &s)=0A=
 {=0A=
   typedef typename R::Kernel_base::Segment_2 RSegment_2;=0A=
   return is >> static_cast<RSegment_2&>(s);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr=
 iangle_2.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr=
 iangle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Triangle_2 : public R_::Kernel_base::Triangle_2=0A=
 {=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Kernel_base::Triangle_2 RTriangle_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Triangle_2()=0A=
       : RTriangle_2() {}=0A=
 =0A=
   Triangle_2(const CGAL::Triangle_2<R> &t)=0A=
       : RTriangle_2((RTriangle_2&)t) {}=0A=
 =0A=
   Triangle_2(const RTriangle_2& t)=0A=
       : RTriangle_2(t) {}=0A=
 =0A=
   Triangle_2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A=
       : RTriangle_2(p,q,r) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Triangle_2<R> &t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Triangle_2 RTriangle_2;=0A=
   return os << (const RTriangle_2&)t;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Triangle_2<R> &t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Triangle_2 RTriangle_2;=0A=
   return is >> (RTriangle_2&)t;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 57 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is=
 o_rectangle_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is=
 o_rectangle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Iso_rectangle_2 : public R_::Kernel_base::Iso_rectangle_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Iso_rectangle_2()=0A=
     : RIso_rectangle_2() {}=0A=
 =0A=
   Iso_rectangle_2(const CGAL::Iso_rectangle_2<R> &r)=0A=
     : RIso_rectangle_2(r) {}=0A=
 =0A=
   Iso_rectangle_2(const RIso_rectangle_2& r)=0A=
     : RIso_rectangle_2(r) {}=0A=
 =0A=
   Iso_rectangle_2(const Point_2 &p, const Point_2 &q)=0A=
     : RIso_rectangle_2(p,q) {}=0A=
 =0A=
   Iso_rectangle_2(const RT& min_hx, const RT& min_hy,=0A=
                   const RT& max_hx, const RT& max_hy)=0A=
     : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy) {}=0A=
 =0A=
   Iso_rectangle_2(const RT& min_hx, const RT& min_hy,=0A=
                   const RT& max_hx, const RT& max_hy, const RT& hw)=0A=
     : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy, hw) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Iso_rectangle_2<R> &r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A=
   return os << (const RIso_rectangle_2&)r;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Iso_rectangle_2<R> &r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A=
   is >> (RIso_rectangle_2&)r;=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 58 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ci=
 rcle_2.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ci=
 rcle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Circle_2 : public R_::Kernel_base::Circle_2=0A=
 {=0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Kernel_base::Circle_2 RCircle_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
     Circle_2()=0A=
       : RCircle_2() {}=0A=
 =0A=
     Circle_2(const CGAL::Circle_2<R> &t)=0A=
       : RCircle_2((RCircle_2&)t) {}=0A=
 =0A=
     Circle_2(const RCircle_2& t)=0A=
       : RCircle_2(t) {}=0A=
 =0A=
     Circle_2(const Point_2 &center, const FT &squared_radius,=0A=
              const Orientation &orientation)=0A=
       : RCircle_2(center, squared_radius, orientation) {}=0A=
 =0A=
     Circle_2(const Point_2 &center, const FT &squared_radius)=0A=
       : RCircle_2(center, squared_radius, COUNTERCLOCKWISE) {}=0A=
 =0A=
     Circle_2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A=
       : RCircle_2(p,q,r) {}=0A=
 =0A=
     Circle_2(const Point_2 & p, const Point_2 & q,=0A=
              const Orientation &orientation)=0A=
       : RCircle_2(p,q,orientation) {}=0A=
 =0A=
     Circle_2(const Point_2 & p, const Point_2 & q)=0A=
       : RCircle_2(p,q,COUNTERCLOCKWISE) {}=0A=
 =0A=
     Circle_2(const Point_2 & center, const Orientation& orientation)=0A=
       : RCircle_2(center,FT(0),orientation) {}=0A=
 =0A=
     Circle_2(const Point_2 & center)=0A=
       : RCircle_2(center,FT(0),COUNTERCLOCKWISE) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Circle_2<R> &c)=0A=
 {=0A=
   typedef typename R::Kernel_base::Circle_2 RCircle_2;=0A=
   return os << (const RCircle_2&)c;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, Circle_2<R> &c)=0A=
 {=0A=
   typedef typename R::Kernel_base::Circle_2 RCircle_2;=0A=
   return is >> (RCircle_2&)c;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 59 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_2.h" 1=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /forward_decl_window_stream.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO=
 /forward_decl_window_stream.h"=0A=
 namespace CGAL {=0A=
 class window;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 typedef CGAL::window Window_stream;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_2.h" 2=0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_misc.h" 1=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_misc.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Op=
 timisation/assertions.h" 1=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_misc.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R>=0A=
 class Conic_2;=0A=
 =0A=
 =0A=
 enum Conic_type=0A=
 {=0A=
     HYPERBOLA =3D -1,=0A=
     PARABOLA,=0A=
     ELLIPSE=0A=
 };=0A=
 =0A=
 =0A=
 typedef CGAL::Bounded_side Convex_side;=0A=
 const Convex_side ON_CONVEX_SIDE =3D CGAL::ON_BOUNDED_SIDE;=0A=
 const Convex_side ON_NONCONVEX_SIDE =3D CGAL::ON_UNBOUNDED_SIDE;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class NT >=0A=
 NT best_value (NT *values, int nr_values,=0A=
                NT a2, NT a1, NT a0,=0A=
                NT b3, NT b2, NT b1, NT b0)=0A=
 {=0A=
     bool det_positive =3D false;=0A=
     NT d, q, max_det =3D 0, det, best =3D -1;=0A=
     for (int i=3D0; i<nr_values; ++i) {=0A=
         NT x =3D values[i];=0A=
         d =3D (a2*x+a1)*x+a0;=0A=
         q =3D ((b3*x+b2)*x+b1)*x+b0;=0A=
         det =3D d*d*d/(q*q);=0A=
         if (det > 0.0)=0A=
             if (!det_positive || (det > max_det)) {=0A=
                 max_det =3D det;=0A=
                 best =3D x;=0A=
                 det_positive =3D true;=0A=
             }=0A=
     }=0A=
     ((det_positive)?((void)0): ::CGAL::precondition_fail( "det_positive" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onic_misc.h",98,0));=0A=
     return best;=0A=
 }=0A=
 =0A=
 =0A=
 template < class NT >=0A=
 int solve_cubic (NT c3, NT c2, NT c1, NT c0,=0A=
                  NT& r1, NT& r2, NT& r3)=0A=
 {=0A=
     if (c3 =3D=3D 0.0) {=0A=
 =0A=
         if (c2 =3D=3D 0) {=0A=
 =0A=
             ((c1 !=3D 0)?((void)0): ::CGAL::precondition_fail( "c1 !=3D =
 0" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onic_misc.h",111,0));=0A=
             r1 =3D -c0/c1;=0A=
             return 1;=0A=
         }=0A=
         NT D =3D c1*c1-4*c2*c0;=0A=
         if (D < 0.0)=0A=
 =0A=
             return 0;=0A=
         if (D =3D=3D 0.0) {=0A=
 =0A=
             r1 =3D -c1/(2.0*c2);=0A=
             return 1;=0A=
         }=0A=
 =0A=
         r1 =3D (-c1 + CGAL::sqrt(D))/(2.0*c2);=0A=
         r2 =3D (-c1 - CGAL::sqrt(D))/(2.0*c2);=0A=
         return 2;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     NT g2 =3D c2/c3,=0A=
        g1 =3D c1/c3,=0A=
        g0 =3D c0/c3;=0A=
 =0A=
 =0A=
     NT a =3D g1 - g2*g2/3.0,=0A=
        b =3D 2.0*g2*g2*g2/27.0 - g1*g2/3.0 + g0;=0A=
 =0A=
     if (a =3D=3D 0) {=0A=
 =0A=
 =0A=
         r1 =3D exp(log(-b)/3.0) - g2/3.0;=0A=
         return 1;=0A=
     }=0A=
 =0A=
 =0A=
     NT D =3D a*a*a/27.0 + b*b/4.0;=0A=
     if (D >=3D 0.0) {=0A=
 =0A=
 =0A=
         NT u =3D exp(log(-b/2.0 + CGAL::sqrt(D))),=0A=
                alpha =3D 1.0 - a/(3.0*u*u);=0A=
         if (D =3D=3D 0) {=0A=
 =0A=
             r1 =3D u*alpha - g2/3.0;=0A=
             r2 =3D -0.5*alpha*u - g2/3.0;=0A=
             return 2;=0A=
         }=0A=
 =0A=
         r1 =3D u*alpha - g2/3.0;=0A=
         return 1;=0A=
     }=0A=
 =0A=
     NT r_prime =3D CGAL::sqrt(-a/3),=0A=
        phi_prime =3D acos (-b/(2.0*r_prime*r_prime*r_prime))/3.0,=0A=
        u_R =3D r_prime * cos (phi_prime),=0A=
        u_I =3D r_prime * sin (phi_prime);=0A=
 =0A=
     r1 =3D 2.0*u_R - g2/3.0;=0A=
     r2 =3D -u_R + u_I*CGAL::sqrt(3.0) - g2/3.0;=0A=
     r3 =3D -u_R - u_I*CGAL::sqrt(3.0) - g2/3.0;=0A=
     return 3;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 59 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nic_2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class _R >=0A=
 class Optimisation_ellipse_2;=0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class _R >=0A=
 CGAL::Window_stream&=0A=
 operator << ( CGAL::Window_stream&,=0A=
               const CGAL::Optimisation_ellipse_2<_R>&);=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class _R>=0A=
 class Conic_2 : public _R::Kernel_base::Conic_2 {=0A=
 =0A=
     friend class Optimisation_ellipse_2<_R>;=0A=
 =0A=
   public:=0A=
 =0A=
 =0A=
     typedef _R R;=0A=
     typedef typename _R::RT RT;=0A=
     typedef typename _R::FT FT;=0A=
     typedef typename _R::Kernel_base::Conic_2 _Conic_2;=0A=
 =0A=
 =0A=
     Conic_2 ()=0A=
     {}=0A=
 =0A=
     Conic_2 (RT r, RT s, RT t, RT u, RT v, RT w)=0A=
         : _Conic_2 (r, s, t, u, v, w)=0A=
     {}=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     RT r () const=0A=
     {=0A=
         return _Conic_2::r();=0A=
     }=0A=
 =0A=
     RT s () const=0A=
     {=0A=
         return _Conic_2::s();=0A=
     }=0A=
 =0A=
     RT t () const=0A=
     {=0A=
         return _Conic_2::t();=0A=
     }=0A=
 =0A=
     RT u () const=0A=
     {=0A=
         return _Conic_2::u();=0A=
     }=0A=
 =0A=
     RT v () const=0A=
     {=0A=
         return _Conic_2::v();=0A=
     }=0A=
 =0A=
     RT w () const=0A=
     {=0A=
         return _Conic_2::w();=0A=
     }=0A=
 =0A=
     CGAL::Point_2<R> center () const=0A=
     {=0A=
         return _Conic_2::center();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     Conic_type conic_type () const=0A=
     {=0A=
         return _Conic_2::conic_type();=0A=
     }=0A=
 =0A=
     bool is_hyperbola () const=0A=
     {=0A=
         return _Conic_2::is_hyperbola();=0A=
     }=0A=
 =0A=
     bool is_parabola () const=0A=
     {=0A=
         return _Conic_2::is_parabola();=0A=
     }=0A=
 =0A=
     bool is_ellipse () const=0A=
     {=0A=
         return _Conic_2::is_ellipse();=0A=
     }=0A=
 =0A=
     bool is_empty () const=0A=
     {=0A=
         return _Conic_2::is_empty();=0A=
     }=0A=
 =0A=
     bool is_trivial () const=0A=
     {=0A=
         return _Conic_2::is_trivial();=0A=
     }=0A=
 =0A=
     bool is_degenerate () const=0A=
     {=0A=
         return _Conic_2::is_degenerate();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     CGAL::Orientation orientation () const=0A=
     {=0A=
         return _Conic_2::orientation ();=0A=
     }=0A=
 =0A=
     CGAL::Oriented_side oriented_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::oriented_side (p);=0A=
     }=0A=
 =0A=
     bool has_on_positive_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on_positive_side (p);=0A=
     }=0A=
 =0A=
     bool has_on_negative_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on_negative_side (p);=0A=
     }=0A=
 =0A=
     bool has_on_boundary (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on_boundary (p);=0A=
     }=0A=
 =0A=
     bool has_on (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on (p);=0A=
     }=0A=
 =0A=
     Convex_side convex_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::convex_side (p);=0A=
     }=0A=
 =0A=
     bool has_on_convex_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on_convex_side (p);=0A=
     }=0A=
 =0A=
     bool has_on_nonconvex_side (const CGAL::Point_2<R>& p) const=0A=
     {=0A=
         return _Conic_2::has_on_nonconvex_side (p);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     bool operator =3D=3D ( const Conic_2<_R>& c) const=0A=
     {=0A=
         return _Conic_2::operator =3D=3D ( (Conic_2)c);=0A=
     }=0A=
 =0A=
     bool operator !=3D ( const Conic_2<_R>& c) const=0A=
     {=0A=
         return( ! operator =3D=3D ( c));=0A=
     }=0A=
 =0A=
 =0A=
     void set (RT r, RT s, RT t,=0A=
               RT u, RT v, RT w)=0A=
     {=0A=
         _Conic_2::set (r, s, t, u, v, w);=0A=
     }=0A=
 =0A=
     void set_opposite ()=0A=
     {=0A=
         _Conic_2::set_opposite();=0A=
     }=0A=
 =0A=
     void set_linepair (const CGAL::Point_2<R>& p1, const =
 CGAL::Point_2<R>& p2,=0A=
                        const CGAL::Point_2<R>& p3, const =
 CGAL::Point_2<R>& p4)=0A=
     {=0A=
         _Conic_2::set_linepair (p1, p2, p3, p4);=0A=
     }=0A=
 =0A=
     void set_ellipse (const CGAL::Point_2<R>& p1, const =
 CGAL::Point_2<R>& p2,=0A=
                       const CGAL::Point_2<R>& p3)=0A=
     {=0A=
         _Conic_2::set_ellipse (p1, p2, p3);=0A=
     }=0A=
 =0A=
     void set_ellipse (const CGAL::Point_2<R>& p1, const =
 CGAL::Point_2<R>& p2,=0A=
                       const CGAL::Point_2<R>& p3, const =
 CGAL::Point_2<R>& p4,=0A=
                       CGAL::Orientation o =3D POSITIVE)=0A=
     {=0A=
         _Conic_2::set_ellipse (p1, p2, p3, p4, o);=0A=
     }=0A=
 =0A=
     void set (const CGAL::Point_2<R>& p1, const CGAL::Point_2<R>& p2,=0A=
               const CGAL::Point_2<R>& p3, const CGAL::Point_2<R>& p4,=0A=
               const CGAL::Point_2<R>& p5,=0A=
               CGAL::Orientation o =3D POSITIVE)=0A=
     {=0A=
         _Conic_2::set (p1, p2, p3, p4, p5, o);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   private:=0A=
     void set_linear_combination (=0A=
         const RT& a1, const Conic_2<R>& c1,=0A=
         const RT& a2, const Conic_2<R>& c2)=0A=
     {=0A=
         _Conic_2::set_linear_combination (a1, c1, a2, c2);=0A=
     }=0A=
 =0A=
     static void set_two_linepairs (const CGAL::Point_2<R>& p1,=0A=
                                    const CGAL::Point_2<R>& p2,=0A=
                                    const CGAL::Point_2<R>& p3,=0A=
                                    const CGAL::Point_2<R>& p4,=0A=
                                    Conic_2<R>& pair1,=0A=
                                    Conic_2<R>& pair2)=0A=
     {=0A=
         _Conic_2::set_two_linepairs (p1, p2, p3, p4, pair1, pair2);=0A=
     }=0A=
 =0A=
     void set_ellipse (const Conic_2<R>& pair1,=0A=
                       const Conic_2<R>& pair2)=0A=
     {=0A=
         _Conic_2::set_ellipse (pair1, pair2);=0A=
     }=0A=
 =0A=
     void set (const Conic_2<R>& c1, const Conic_2<R>& c2,=0A=
               const CGAL::Point_2<R>& p)=0A=
     {=0A=
         _Conic_2::set( c1, c2, p); analyse();=0A=
     }=0A=
 =0A=
     CGAL::Sign vol_derivative (RT dr, RT ds,=0A=
                                RT dt, RT du,=0A=
                                RT dv, RT dw) const=0A=
     {=0A=
         return _Conic_2::vol_derivative (dr, ds, dt, du, dv, dw);=0A=
     }=0A=
 =0A=
     double vol_minimum (RT dr, RT ds,=0A=
                         RT dt, RT du,=0A=
                         RT dv, RT dw) const=0A=
     {=0A=
         return _Conic_2::vol_minimum (dr, ds, dt, du, dv, dw);=0A=
     }=0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template< class _R>=0A=
 std::ostream& operator << ( std::ostream& os, const Conic_2<_R>& c)=0A=
 {=0A=
     return( os << c.r() << ' ' << c.s() << ' ' << c.t() << ' '=0A=
                << c.u() << ' ' << c.v() << ' ' << c.w());=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 60 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af=
 f_transformation_2.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af=
 f_transformation_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Aff_transformation_2 : public R_::Kernel_base::Aff_transformation_2=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Kernel_base::Aff_transformation_2 =
 RAff_transformation_2;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Aff_transformation_2()=0A=
     : RAff_transformation_2()=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const CGAL::Aff_transformation_2<R> &t)=0A=
     : RAff_transformation_2(t)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const RAff_transformation_2& t)=0A=
     : RAff_transformation_2(t)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const Identity_transformation tag)=0A=
     : RAff_transformation_2(tag)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const Translation tag, const Vector_2 &v)=0A=
     : RAff_transformation_2(tag, v)=0A=
   {}=0A=
 =0A=
 =0A=
   Aff_transformation_2(const Rotation tag,=0A=
                        const Direction_2 &d,=0A=
                        const RT &num,=0A=
                        const RT &den =3D RT(1))=0A=
     : RAff_transformation_2(tag, d, num, den)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const Rotation tag,=0A=
                        const RT &sin,=0A=
                        const RT &cos,=0A=
                        const RT &den =3D RT(1))=0A=
     : RAff_transformation_2(tag, sin, cos, den)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const Reflection tag, const Line_2& l )=0A=
     : RAff_transformation_2(tag, l)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const Scaling tag,=0A=
                        const RT &s,=0A=
                        const RT &w=3D RT(1))=0A=
     : RAff_transformation_2(tag, s, w)=0A=
   {}=0A=
 =0A=
 =0A=
   Aff_transformation_2(const RT & m11,=0A=
                        const RT & m12,=0A=
                        const RT & m13,=0A=
 =0A=
                        const RT & m21,=0A=
                        const RT & m22,=0A=
                        const RT & m23,=0A=
 =0A=
                        const RT &w=3D RT(1))=0A=
     : RAff_transformation_2(m11, m12, m13,=0A=
                             m21, m22, m23,=0A=
                                       w)=0A=
   {}=0A=
 =0A=
   Aff_transformation_2(const RT & m11, const RT & m12,=0A=
                        const RT & m21, const RT & m22,=0A=
                        const RT &w =3D RT(1))=0A=
     : RAff_transformation_2(m11, m12,=0A=
                             m21, m22,=0A=
                                       w)=0A=
   {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const CGAL::Aff_transformation_2<R> &t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Aff_transformation_2 =
 RAff_transformation_2;=0A=
   return os << static_cast<const RAff_transformation_2&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, CGAL::Aff_transformation_2<R> &t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Aff_transformation_2 =
 RAff_transformation_2;=0A=
   return is >> static_cast<RAff_transformation_2&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 61 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po=
 int_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po=
 int_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Origin;=0A=
 =0A=
 template <class R_>=0A=
 class Point_3 : public R_::Kernel_base::Point_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Kernel_base::Point_3 RPoint_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Point_3()=0A=
   {}=0A=
 =0A=
   Point_3(const Origin& o)=0A=
       : RPoint_3(o) {}=0A=
 =0A=
   Point_3(const CGAL::Point_3<R>& p)=0A=
       : RPoint_3( static_cast<const RPoint_3&>(p) ) {}=0A=
 =0A=
   Point_3(const RPoint_3& p)=0A=
       : RPoint_3(p) {}=0A=
 =0A=
   Point_3(const RT& hx, const RT& hy, const RT& hz)=0A=
     : RPoint_3(hx, hy, hz) {}=0A=
 =0A=
   Point_3(const RT& hx, const RT& hy, const RT& hz, const RT& hw)=0A=
     : RPoint_3(hx, hy, hz, hw) {}=0A=
 };=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 operator=3D=3D(const Origin& o, const Point_3<R>& p)=0A=
 { return p =3D=3D o; }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 operator!=3D(const Origin& o, const Point_3<R>& p)=0A=
 { return p !=3D o; }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Point_3<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Point_3 RPoint_3;=0A=
   return os << static_cast<const RPoint_3&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream& operator>>(std::istream& is, Point_3<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Point_3 RPoint_3;=0A=
   return is >> static_cast<RPoint_3&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Pl=
 ane_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Pl=
 ane_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Plane_3 : public R_::Kernel_base::Plane_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Kernel_base::Plane_3 RPlane_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Plane_3()=0A=
       : RPlane_3() {}=0A=
 =0A=
   Plane_3(const CGAL::Plane_3<R>& p)=0A=
       : RPlane_3(p) {}=0A=
 =0A=
   Plane_3(const RPlane_3& p)=0A=
       : RPlane_3(p) {}=0A=
 =0A=
   Plane_3(const Point_3& p, const Point_3& q, const Point_3& r)=0A=
     : RPlane_3(p,q,r) {}=0A=
 =0A=
   Plane_3(const Point_3& p, const Direction_3& d)=0A=
     : RPlane_3(p,d) {}=0A=
 =0A=
   Plane_3(const Point_3& p, const Vector_3& v)=0A=
     : RPlane_3(p,v) {}=0A=
 =0A=
   Plane_3(const RT& a, const RT& b, const RT& c, const RT& d)=0A=
     : RPlane_3(a,b,c,d) {}=0A=
 =0A=
   Plane_3(const Line_3& l, const Point_3& p)=0A=
     : RPlane_3(l,p) {}=0A=
 =0A=
   Plane_3(const Segment_3& s, const Point_3& p)=0A=
     : RPlane_3(s,p) {}=0A=
 =0A=
   Plane_3(const Ray_3& r, const Point_3& p)=0A=
     : RPlane_3(r,p) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Plane_3<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Plane_3 RPlane_3;=0A=
   return os << static_cast<const RPlane_3&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Plane_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Plane_3 RPlane_3;=0A=
   return is >> static_cast<RPlane_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 64 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve=
 ctor_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve=
 ctor_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Null_vector;=0A=
 =0A=
 template <class R_>=0A=
 class Vector_3 : public R_::Kernel_base::Vector_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Kernel_base::Vector_3 RVector_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Vector_3()=0A=
   {}=0A=
 =0A=
   Vector_3(const CGAL::Vector_3<R>& v)=0A=
     : RVector_3( static_cast<const RVector_3&>(v) ) {}=0A=
 =0A=
   Vector_3(const Point_3& a, const Point_3& b)=0A=
     : RVector_3(a, b) {}=0A=
 =0A=
   Vector_3(const RVector_3& v)=0A=
       : RVector_3(v) {}=0A=
 =0A=
   Vector_3(const Null_vector& v)=0A=
       : RVector_3(v) {}=0A=
 =0A=
   Vector_3(const RT& x, const RT& y, const RT& z)=0A=
     : RVector_3(x, y, z) {}=0A=
 =0A=
   Vector_3(const RT& x, const RT& y, const RT& z, const RT& w)=0A=
     : RVector_3(x, y, z, w) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Vector_3<R>& v)=0A=
 {=0A=
   typedef typename R::Kernel_base::Vector_3 RVector_3;=0A=
   return os << static_cast<const RVector_3&>(v);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Vector_3<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Vector_3 RVector_3;=0A=
   return is >> static_cast<RVector_3&>(p);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 65 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di=
 rection_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di=
 rection_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Direction_3 : public R_::Kernel_base::Direction_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Kernel_base::Direction_3 RDirection_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Direction_3()=0A=
   {}=0A=
 =0A=
   Direction_3(const CGAL::Direction_3<R>& d)=0A=
     : RDirection_3( static_cast<const RDirection_3&>(d) ) {}=0A=
 =0A=
   Direction_3(const RDirection_3& d)=0A=
     : RDirection_3(d) {}=0A=
 =0A=
   Direction_3(const Vector_3& v)=0A=
     : RDirection_3(v) {}=0A=
 =0A=
   Direction_3(const Line_3& l)=0A=
     : RDirection_3(l) {}=0A=
 =0A=
   Direction_3(const Ray_3& r)=0A=
     : RDirection_3(r) {}=0A=
 =0A=
   Direction_3(const Segment_3& s)=0A=
     : RDirection_3(s) {}=0A=
 =0A=
   Direction_3(const RT& hx, const RT& hy, const RT& hz)=0A=
     : RDirection_3(hx, hy, hz) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream& operator<<(std::ostream& os, const Direction_3<R>& d)=0A=
 {=0A=
   typedef typename R::Kernel_base::Direction_3 RDirection_3;=0A=
   return os << static_cast<const RDirection_3&>(d); }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream& operator>>(std::istream& is, Direction_3<R>& p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Direction_3 RDirection_3;=0A=
   return is >> static_cast<RDirection_3&>(p); }=0A=
 =0A=
 =0A=
 }=0A=
 # 66 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li=
 ne_3.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li=
 ne_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Line_3 : public R_::Kernel_base::Line_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Kernel_base::Line_3 RLine_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Line_3() : RLine_3()=0A=
   {}=0A=
 =0A=
   Line_3(const CGAL::Line_3<R> & l)=0A=
       : RLine_3( static_cast<const RLine_3&>(l)) {}=0A=
 =0A=
   Line_3(const Point_3 & p, const Point_3 & q)=0A=
       : RLine_3(p,q) {}=0A=
 =0A=
 =0A=
   Line_3(const RLine_3& l)=0A=
       : RLine_3(l) {}=0A=
 =0A=
   Line_3(const Segment_3 & s)=0A=
       : RLine_3( s ) {}=0A=
 =0A=
   Line_3(const Ray_3 & r)=0A=
       : RLine_3( r ) {}=0A=
 =0A=
   Line_3(const Point_3 & p, const Direction_3 & d)=0A=
       : RLine_3( p, d ) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Line_3<R>& l)=0A=
 {=0A=
   typedef typename R::Kernel_base::Line_3 RLine_3;=0A=
   return os << static_cast<const RLine_3&>(l);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream & is, Line_3<R> & p)=0A=
 {=0A=
   typedef typename R::Kernel_base::Line_3 RLine_3;=0A=
   is >> static_cast<RLine_3&>(p);=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 67 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra=
 y_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra=
 y_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Ray_3 : public R_::Kernel_base::Ray_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Kernel_base::Ray_3 RRay_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Ray_3()=0A=
       : RRay_3() {}=0A=
 =0A=
   Ray_3(const CGAL::Ray_3<R>& r)=0A=
       : RRay_3(r) {}=0A=
 =0A=
   Ray_3(const RRay_3& r)=0A=
       : RRay_3(r) {}=0A=
 =0A=
   Ray_3(const Point_3& sp, const Point_3& secondp)=0A=
     : RRay_3(sp, secondp) {}=0A=
 =0A=
   Ray_3(const Point_3& sp, const Direction_3& d)=0A=
     : RRay_3(sp, d) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Ray_3<R>& r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Ray_3 RRay_3;=0A=
   return os << static_cast<const RRay_3&>(r);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Ray_3<R>& r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Ray_3 RRay_3;=0A=
   return is >> static_cast<RRay_3&>(r);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 68 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se=
 gment_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se=
 gment_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Segment_3 : public R_::Kernel_base::Segment_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Kernel_base::Segment_3 RSegment_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Segment_3()=0A=
       : RSegment_3() {}=0A=
 =0A=
   Segment_3(const CGAL::Segment_3<R>& s)=0A=
       : RSegment_3(s) {}=0A=
 =0A=
   Segment_3(const Point_3& sp, const Point_3& ep)=0A=
     : RSegment_3(sp,ep) {}=0A=
 =0A=
   Segment_3(const RSegment_3& s)=0A=
       : RSegment_3(s) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R>=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Segment_3<R>& s)=0A=
 {=0A=
   typedef typename R::Kernel_base::Segment_3 RSegment_3;=0A=
   return os << static_cast<const RSegment_3&>(s);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R>=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Segment_3<R>& s)=0A=
 {=0A=
   typedef typename R::Kernel_base::Segment_3 RSegment_3;=0A=
   return is >> static_cast<RSegment_3&>(s);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 69 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr=
 iangle_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr=
 iangle_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Triangle_3 : public R_::Kernel_base::Triangle_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Kernel_base::Triangle_3 RTriangle_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Triangle_3()=0A=
       : RTriangle_3() {}=0A=
 =0A=
   Triangle_3(const CGAL::Triangle_3<R>& t)=0A=
       : RTriangle_3(t) {}=0A=
 =0A=
   Triangle_3(const RTriangle_3& t)=0A=
       : RTriangle_3(t) {}=0A=
 =0A=
   Triangle_3(const Point_3& p, const Point_3& q, const Point_3& r)=0A=
     : RTriangle_3(p,q,r) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Triangle_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Triangle_3 RTriangle_3;=0A=
   return os << static_cast<const RTriangle_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Triangle_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Triangle_3 RTriangle_3;=0A=
   return is >> static_cast<RTriangle_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 70 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Te=
 trahedron_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Te=
 trahedron_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Tetrahedron_3 : public R_::Kernel_base::Tetrahedron_3=0A=
 {=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Tetrahedron_3()=0A=
       : RTetrahedron_3() {}=0A=
 =0A=
   Tetrahedron_3(const CGAL::Tetrahedron_3<R>& t)=0A=
       : RTetrahedron_3(t) {}=0A=
 =0A=
   Tetrahedron_3(const RTetrahedron_3& t)=0A=
       : RTetrahedron_3(t) {}=0A=
 =0A=
   Tetrahedron_3(const Point_3& p,=0A=
                 const Point_3& q,=0A=
                 const Point_3& r,=0A=
                 const Point_3& s)=0A=
     : RTetrahedron_3(p,q,r,s) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Tetrahedron_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A=
   return os << static_cast<const RTetrahedron_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Tetrahedron_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A=
   return is >> static_cast<RTetrahedron_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 71 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is=
 o_cuboid_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is=
 o_cuboid_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Iso_cuboid_3 : public R_::Kernel_base::Iso_cuboid_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Iso_cuboid_3() : RIso_cuboid_3()=0A=
   {}=0A=
 =0A=
   Iso_cuboid_3(const CGAL::Iso_cuboid_3<R>& r)=0A=
       : RIso_cuboid_3(r) {}=0A=
 =0A=
   Iso_cuboid_3(const RIso_cuboid_3& r)=0A=
       : RIso_cuboid_3(r) {}=0A=
 =0A=
   Iso_cuboid_3(const Point_3& p, const Point_3& q)=0A=
    : RIso_cuboid_3(p,q) {}=0A=
 =0A=
   Iso_cuboid_3(const RT& min_hx, const RT& min_hy, const RT& min_hz,=0A=
                const RT& max_hx, const RT& max_hy, const RT& max_hz,=0A=
                const RT& hw)=0A=
    : RIso_cuboid_3(min_hx, min_hy, min_hz, max_hx, max_hy, max_hz, hw) {}=0A=
 =0A=
   Iso_cuboid_3(const RT& min_hx, const RT& min_hy, const RT& min_hz,=0A=
                const RT& max_hx, const RT& max_hy, const RT& max_hz)=0A=
    : RIso_cuboid_3(min_hx, min_hy, min_hz, max_hx, max_hy, max_hz) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Iso_cuboid_3<R>& r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A=
   return os << (const RIso_cuboid_3& )r; }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, Iso_cuboid_3<R>& r)=0A=
 {=0A=
   typedef typename R::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A=
   is >> (RIso_cuboid_3& )r;=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 72 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Sp=
 here_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Sp=
 here_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Sphere_3 : public R_::Kernel_base::Sphere_3=0A=
 {=0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Kernel_base::Sphere_3 RSphere_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
       Sphere_3()=0A=
       {}=0A=
 =0A=
       Sphere_3(const RSphere_3& s)=0A=
       : RSphere_3(s) {}=0A=
 =0A=
       Sphere_3(const Point_3& p, const FT& sq_rad,=0A=
                const Orientation& o =3D COUNTERCLOCKWISE)=0A=
        : RSphere_3(p, sq_rad, o) {}=0A=
 =0A=
       Sphere_3(const Point_3& p, const Point_3& q,=0A=
                const Point_3& r, const Point_3& u)=0A=
        : RSphere_3(p, q, r, u) {}=0A=
 =0A=
       Sphere_3(const Point_3& p, const Point_3& q, const Point_3& r,=0A=
                const Orientation& o =3D COUNTERCLOCKWISE)=0A=
        : RSphere_3(p, q, r, o) {}=0A=
 =0A=
       Sphere_3(const Point_3& p, const Point_3& q,=0A=
                const Orientation& o =3D COUNTERCLOCKWISE)=0A=
        : RSphere_3(p, q, o) {}=0A=
 =0A=
       Sphere_3(const Point_3& p, const Orientation& o =3D =
 COUNTERCLOCKWISE)=0A=
        : RSphere_3(p, o) {}=0A=
 };=0A=
 =0A=
 }=0A=
 # 73 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af=
 f_transformation_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af=
 f_transformation_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Aff_transformation_3 : public R_::Kernel_base::Aff_transformation_3=0A=
 {=0A=
   typedef typename R_::RT RT;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Kernel_base::Aff_transformation_3 =
 RAff_transformation_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Aff_transformation_3()=0A=
       : RAff_transformation_3() {}=0A=
 =0A=
   Aff_transformation_3(const CGAL::Aff_transformation_3<R>& t)=0A=
     : RAff_transformation_3(t) {}=0A=
 =0A=
   Aff_transformation_3(const RAff_transformation_3& t)=0A=
     : RAff_transformation_3(t) {}=0A=
 =0A=
   Aff_transformation_3(const Identity_transformation& tag)=0A=
     : RAff_transformation_3(tag) {}=0A=
 =0A=
   Aff_transformation_3(const Translation tag,=0A=
                        const Vector_3& v)=0A=
     : RAff_transformation_3(tag, v) {}=0A=
 =0A=
   Aff_transformation_3(const Scaling tag,=0A=
                        const RT& s,=0A=
                        const RT& w=3D RT(1) )=0A=
     : RAff_transformation_3(tag, s, w) {}=0A=
 =0A=
 =0A=
   Aff_transformation_3(=0A=
       const RT& m11, const RT& m12, const RT& m13, const RT& m14,=0A=
       const RT& m21, const RT& m22, const RT& m23, const RT& m24,=0A=
       const RT& m31, const RT& m32, const RT& m33, const RT& m34,=0A=
                                                    const RT& w=3D RT(1) )=0A=
     : RAff_transformation_3(m11, m12, m13, m14,=0A=
                             m21, m22, m23, m24,=0A=
                             m31, m32, m33, m34,=0A=
                                            w) {}=0A=
 =0A=
   Aff_transformation_3(=0A=
       const RT& m11, const RT& m12, const RT& m13,=0A=
       const RT& m21, const RT& m22, const RT& m23,=0A=
       const RT& m31, const RT& m32, const RT& m33,=0A=
                                                    const RT& w =3D RT(1) =
 )=0A=
     : RAff_transformation_3(m11, m12, m13,=0A=
                            m21, m22, m23,=0A=
                            m31, m32, m33,=0A=
                                           w) {}=0A=
 };=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const CGAL::Aff_transformation_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Aff_transformation_3 =
 RAff_transformation_3;=0A=
   return os << static_cast<const RAff_transformation_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream& is, CGAL::Aff_transformation_3<R>& t)=0A=
 {=0A=
   typedef typename R::Kernel_base::Aff_transformation_3 =
 RAff_transformation_3;=0A=
   return is >> static_cast<const RAff_transformation_3&>(t);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 74 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us=
 er_classes.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R>=0A=
 class Point_d;=0A=
 =0A=
 }=0A=
 # 61 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_2.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class PointC2=0A=
   : public R_::Point_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Point_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   PointC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   PointC2(const Origin &)=0A=
     : base(rep(FT(0), FT(0))) {}=0A=
 =0A=
   PointC2(const FT &x, const FT &y)=0A=
     : base(rep(x, y)) {}=0A=
 =0A=
   PointC2(const FT &hx, const FT &hy, const FT &hw)=0A=
   {=0A=
     if (hw !=3D FT(1))=0A=
       initialize_with( rep(hx/hw, hy/hw) );=0A=
     else=0A=
       initialize_with( rep(hx, hy) );=0A=
   }=0A=
 =0A=
   PointC2(const Vector_2 &v)=0A=
     : base(v) {}=0A=
 =0A=
   const FT& x() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT& y() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 =0A=
   const FT& hx() const=0A=
   {=0A=
       return x();=0A=
   }=0A=
   const FT& hy() const=0A=
   {=0A=
       return y();=0A=
   }=0A=
   FT hw() const=0A=
   {=0A=
       return FT(1);=0A=
   }=0A=
 =0A=
   const FT& cartesian(int i) const;=0A=
   FT homogeneous(int i) const;=0A=
   const FT& operator[](int i) const=0A=
   {=0A=
       return cartesian(i);=0A=
   }=0A=
 =0A=
   int dimension() const=0A=
   {=0A=
       return 2;=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const PointC2 &p) const=0A=
   {=0A=
       if (identical(p))=0A=
           return true;=0A=
       return equal_xy(*this, p);=0A=
   }=0A=
   bool operator!=3D(const PointC2 &p) const=0A=
   {=0A=
       return !(*this =3D=3D p);=0A=
   }=0A=
 =0A=
   Bbox_2 bbox() const;=0A=
 =0A=
   Point_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename PointC2<R>::FT &=0A=
 PointC2<R>::cartesian(int i) const=0A=
 {=0A=
   (((i =3D=3D 0) || (i =3D=3D 1))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i =3D=3D 0) || (i =3D=3D 1)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_2.h", 152, 0));=0A=
   return (i =3D=3D 0) ? x() : y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PointC2<R>::FT=0A=
 PointC2<R>::homogeneous(int i) const=0A=
 {=0A=
   (((i>=3D0) && (i<=3D2))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i>=3D0) && (i<=3D2)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_2.h", 161, 0));=0A=
   if (i<2)=0A=
     return cartesian(i);=0A=
   return FT(1);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_2=0A=
 PointC2<R>::bbox() const=0A=
 {=0A=
   double bx =3D CGAL::to_double(x());=0A=
   double by =3D CGAL::to_double(y());=0A=
   return Bbox_2(bx,by, bx,by);=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const PointC2<R> &p)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << p.x() << ' ' << p.y();=0A=
     case IO::BINARY :=0A=
         write(os, p.x());=0A=
         write(os, p.y());=0A=
         return os;=0A=
     default:=0A=
         return os << "PointC2(" << p.x() << ", " << p.y() << ')';=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, PointC2<R> &p)=0A=
 {=0A=
     typename R::FT x, y;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> x >> y;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, x);=0A=
         read(is, y);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         p =3D PointC2<R>(x, y);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class VectorC2=0A=
   : public R_::Vector_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Vector_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   VectorC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   VectorC2(const Null_vector &)=0A=
     : base(rep(FT(0), FT(0))) {}=0A=
 =0A=
   VectorC2(const Point_2 &p)=0A=
     : base(p) {}=0A=
 =0A=
   VectorC2(const Point_2 &a, const Point_2 &b)=0A=
     : base(b-a) {}=0A=
 =0A=
   VectorC2(const Direction_2 &d)=0A=
     : base(d) {}=0A=
 =0A=
   VectorC2(const FT &x, const FT &y)=0A=
     : base(rep(x, y)) {}=0A=
 =0A=
   VectorC2(const FT &hx, const FT &hy, const FT &hw)=0A=
   {=0A=
     if (hw !=3D FT(1))=0A=
       initialize_with(rep(hx/hw, hy/hw));=0A=
     else=0A=
       initialize_with(rep(hx, hy));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const VectorC2 &v) const;=0A=
   bool operator!=3D(const VectorC2 &v) const;=0A=
   bool operator=3D=3D(const Null_vector &) const;=0A=
   bool operator!=3D(const Null_vector &p) const;=0A=
 =0A=
   const FT & x() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & y() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 =0A=
   const FT & hx() const=0A=
   {=0A=
       return x();=0A=
   }=0A=
   const FT & hy() const=0A=
   {=0A=
       return y();=0A=
   }=0A=
   FT hw() const=0A=
   {=0A=
       return FT(1);=0A=
   }=0A=
 =0A=
   const FT & cartesian(int i) const;=0A=
   const FT & operator[](int i) const;=0A=
   FT homogeneous(int i) const;=0A=
 =0A=
   int dimension() const=0A=
   {=0A=
       return 2;=0A=
   }=0A=
 =0A=
   Vector_2 operator+(const VectorC2 &w) const;=0A=
   Vector_2 operator-(const VectorC2 &w) const;=0A=
   Vector_2 operator-() const;=0A=
   FT operator*(const VectorC2 &w) const;=0A=
   FT squared_length() const;=0A=
   Vector_2 operator/(const FT &c) const;=0A=
   Direction_2 direction() const;=0A=
 =0A=
   Vector_2 perpendicular(const Orientation &o) const;=0A=
   Vector_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC2<R>::operator=3D=3D(const VectorC2<R> &v) const=0A=
 {=0A=
   if (identical(v))=0A=
       return true;=0A=
   return x() =3D=3D v.x() && y() =3D=3D v.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC2<R>::operator!=3D(const VectorC2<R> &v) const=0A=
 {=0A=
   return !(*this =3D=3D v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC2<R>::operator=3D=3D(const Null_vector &) const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(x()) && CGAL::NTS:: is_zero(y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC2<R>::operator!=3D(const Null_vector &v) const=0A=
 {=0A=
   return !(*this =3D=3D v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename VectorC2<R>::FT &=0A=
 VectorC2<R>::cartesian(int i) const=0A=
 {=0A=
   (((i =3D=3D 0) || (i =3D=3D 1))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i =3D=3D 0) || (i =3D=3D 1)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_2.h", 188, 0));=0A=
   return (i =3D=3D 0) ? x() : y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename VectorC2<R>::FT &=0A=
 VectorC2<R>::operator[](int i) const=0A=
 {=0A=
   return cartesian(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::FT=0A=
 VectorC2<R>::homogeneous(int i) const=0A=
 {=0A=
   return (i =3D=3D 2) ? FT(1) : cartesian(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::Vector_2=0A=
 VectorC2<R>::operator+(const VectorC2<R> &w) const=0A=
 {=0A=
   return VectorC2<R>(x() + w.x(), y() + w.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::Vector_2=0A=
 VectorC2<R>::operator-(const VectorC2<R> &w) const=0A=
 {=0A=
   return VectorC2<R>(x() - w.x(), y() - w.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::Vector_2=0A=
 VectorC2<R>::operator-() const=0A=
 {=0A=
   return VectorC2<R>(-x(), -y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::FT=0A=
 VectorC2<R>::operator*(const VectorC2<R> &w) const=0A=
 {=0A=
   return x() * w.x() + y() * w.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::FT=0A=
 VectorC2<R>::squared_length() const=0A=
 {=0A=
   return CGAL::NTS:: square(x()) + CGAL::NTS:: square(y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::Vector_2=0A=
 VectorC2<R>::=0A=
 operator/(const typename VectorC2<R>::FT &c) const=0A=
 {=0A=
   return VectorC2<R>( x()/c, y()/c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC2<R>::Direction_2=0A=
 VectorC2<R>::direction() const=0A=
 {=0A=
   return Direction_2(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename VectorC2<R>::Vector_2=0A=
 VectorC2<R>::perpendicular(const Orientation &o) const=0A=
 {=0A=
   ((o !=3D COLLINEAR)?(static_cast<void>(0)): ::CGAL::precondition_fail( =
 "o !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_2.h", 270, 0));=0A=
   if (o =3D=3D COUNTERCLOCKWISE)=0A=
     return VectorC2<R>(-y(), x());=0A=
   else=0A=
     return VectorC2<R>(y(), -x());=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const VectorC2<R> &v)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << v.x() << ' ' << v.y();=0A=
     case IO::BINARY :=0A=
         write(os, v.x());=0A=
         write(os, v.y());=0A=
         return os;=0A=
     default:=0A=
         return os << "VectorC2(" << v.x() << ", " << v.y() << ')';=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, VectorC2<R> &p)=0A=
 {=0A=
     typename R::FT x, y;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> x >> y;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, x);=0A=
         read(is, y);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         p =3D VectorC2<R>(x, y);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 64 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class DirectionC2=0A=
   : public R_::Direction_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Ray_2 Ray_2;=0A=
   typedef typename R_::Segment_2 Segment_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Direction_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   DirectionC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   DirectionC2(const Vector_2 &v)=0A=
     : base(v) {}=0A=
 =0A=
   DirectionC2(const Line_2 &l)=0A=
     : base(l.direction()) {}=0A=
 =0A=
   DirectionC2(const Ray_2 &r)=0A=
     : base(r.direction()) {}=0A=
 =0A=
   DirectionC2(const Segment_2 &s)=0A=
     : base(s.direction()) {}=0A=
 =0A=
   DirectionC2(const FT &x, const FT &y)=0A=
     : base(rep(x, y)) {}=0A=
 =0A=
   bool operator=3D=3D(const DirectionC2 &d) const;=0A=
   bool operator!=3D(const DirectionC2 &d) const;=0A=
   bool operator>=3D(const DirectionC2 &d) const;=0A=
   bool operator<=3D(const DirectionC2 &d) const;=0A=
   bool operator>(const DirectionC2 &d) const;=0A=
   bool operator<(const DirectionC2 &d) const;=0A=
   bool counterclockwise_in_between( const DirectionC2 &d1,=0A=
                                     const DirectionC2 &d2) const;=0A=
 =0A=
   Vector_2 to_vector() const;=0A=
   Vector_2 vector() const { return to_vector(); }=0A=
 =0A=
   Direction_2 perpendicular(const Orientation &o) const;=0A=
   Direction_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 =0A=
   Direction_2 operator-() const;=0A=
 =0A=
   const FT & delta(int i) const;=0A=
   const FT & dx() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & dy() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::operator=3D=3D(const DirectionC2<R> &d) const=0A=
 {=0A=
   if (identical(d))=0A=
       return true;=0A=
   return equal_direction(*this, d);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::operator!=3D(const DirectionC2<R> &d) const=0A=
 {=0A=
   return !( *this =3D=3D d );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 DirectionC2<R>::operator<(const DirectionC2<R> &d) const=0A=
 {=0A=
   return compare_angle_with_x_axis(*this, d) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::operator>(const DirectionC2<R> &d) const=0A=
 {=0A=
   return d < *this;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::operator>=3D(const DirectionC2<R> &d) const=0A=
 {=0A=
   return compare_angle_with_x_axis(*this, d) !=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::operator<=3D(const DirectionC2<R> &d) const=0A=
 {=0A=
   return compare_angle_with_x_axis(*this, d) !=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC2<R>::=0A=
 counterclockwise_in_between(const DirectionC2<R> &d1,=0A=
                             const DirectionC2<R> &d2) const=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 {=0A=
   if ( d1 < *this)=0A=
     return ( *this < d2 )||( d2 <=3D d1 );=0A=
   else=0A=
     return ( *this < d2 )&&( d2 <=3D d1 );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename DirectionC2<R>::Vector_2=0A=
 DirectionC2<R>::to_vector() const=0A=
 {=0A=
   return Vector_2(dx(), dy());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename DirectionC2<R>::Direction_2=0A=
 DirectionC2<R>::perpendicular(const Orientation &o) const=0A=
 {=0A=
   ((o !=3D COLLINEAR)?(static_cast<void>(0)): ::CGAL::precondition_fail( =
 "o !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_2.h", 205, 0));=0A=
   if (o =3D=3D COUNTERCLOCKWISE)=0A=
     return DirectionC2<R>(-dy(), dx());=0A=
   else=0A=
     return DirectionC2<R>(dy(), -dx());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename DirectionC2<R>::Direction_2=0A=
 DirectionC2<R>::operator-() const=0A=
 {=0A=
   return DirectionC2<R>(-dx(), -dy());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename DirectionC2<R>::FT &=0A=
 DirectionC2<R>::delta(int i) const=0A=
 {=0A=
   ((( i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "( i =3D=3D 0 ) || ( i =3D=3D 1 )" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_2.h", 225, 0));=0A=
   return (i=3D=3D0) ? dx() : dy();=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream &os, const DirectionC2<R> &d)=0A=
 {=0A=
     typename R::Vector_2 v =3D d.to_vector();=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << v.x() << ' ' << v.y();=0A=
     case IO::BINARY :=0A=
         write(os, v.x());=0A=
         write(os, v.y());=0A=
         return os;=0A=
     default:=0A=
         return os << "DirectionC2(" << v.x() << ", " << v.y() << ')';=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream&=0A=
 operator>>(std::istream &is, DirectionC2<R> &p)=0A=
 {=0A=
     typename R::FT x, y;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> x >> y;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, x);=0A=
         read(is, y);=0A=
         break;=0A=
     default:=0A=
         std::cerr << std::endl << "Stream must be in ascii or binary =
 mode"=0A=
                   << std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         p =3D DirectionC2<R>(x, y);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 65 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class LineC2=0A=
   : public R_::Line_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Ray_2 Ray_2;=0A=
   typedef typename R_::Segment_2 Segment_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Line_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   LineC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   LineC2(const Point_2 &p, const Point_2 &q)=0A=
     : base(line_from_points(p, q)) {}=0A=
 =0A=
   LineC2(const FT &a, const FT &b, const FT &c)=0A=
     : base(rep(a, b, c)) {}=0A=
 =0A=
   LineC2(const Segment_2 &s)=0A=
     : base(line_from_points(s.source(), s.target())) {}=0A=
 =0A=
   LineC2(const Ray_2 &r)=0A=
     : base(line_from_points(r.point(0), r.point(1))) {}=0A=
 =0A=
   LineC2(const Point_2 &p, const Direction_2 &d)=0A=
     : base(line_from_point_direction(p, d)) {}=0A=
 =0A=
   bool operator=3D=3D(const LineC2 &l) const;=0A=
   bool operator!=3D(const LineC2 &l) const;=0A=
 =0A=
   const FT & a() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & b() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   const FT & c() const=0A=
   {=0A=
       return Ptr()->e2;=0A=
   }=0A=
 =0A=
   FT x_at_y(const FT &y) const;=0A=
   FT y_at_x(const FT &x) const;=0A=
 =0A=
   Line_2 perpendicular(const Point_2 &p) const;=0A=
   Line_2 opposite() const;=0A=
   Point_2 point(int i) const;=0A=
 =0A=
   Point_2 point() const;=0A=
   Point_2 projection(const Point_2 &p) const;=0A=
 =0A=
   Direction_2 direction() const;=0A=
 =0A=
   Oriented_side oriented_side(const Point_2 &p) const;=0A=
   bool has_on_boundary(const Point_2 &p) const;=0A=
   bool has_on_positive_side(const Point_2 &p) const;=0A=
   bool has_on_negative_side(const Point_2 &p) const;=0A=
   bool has_on(const Point_2 &p) const { return has_on_boundary(p); }=0A=
 =0A=
   bool is_horizontal() const;=0A=
   bool is_vertical() const;=0A=
   bool is_degenerate() const;=0A=
 =0A=
   Line_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return LineC2<R>(t.transform(point(0)),=0A=
                                t.transform(direction()));=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::operator=3D=3D(const LineC2<R> &l) const=0A=
 {=0A=
   if (identical(l))=0A=
       return true;=0A=
   return equal_line(*this, l);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::operator!=3D(const LineC2<R> &l) const=0A=
 {=0A=
   return !(*this =3D=3D l);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::is_horizontal() const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(a());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::is_vertical() const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(b());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::FT=0A=
 LineC2<R>::x_at_y(const typename LineC2<R>::FT &y) const=0A=
 {=0A=
   ((! is_horizontal())?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "! is_horizontal()" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_2.h", 177, "Line::x_at_y(FT y) is undefined for horizontal =
 line"));=0A=
 =0A=
   return line_x_at_y(*this, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::FT=0A=
 LineC2<R>::y_at_x(const typename LineC2<R>::FT &x) const=0A=
 {=0A=
   ((! is_vertical())?(static_cast<void>(0)): ::CGAL::precondition_fail( =
 "! is_vertical()" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_2.h", 187, "Line::y_at_x(FT x) is undefined for vertical =
 line"));=0A=
 =0A=
   return line_y_at_x(*this, x);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::Line_2=0A=
 LineC2<R>::=0A=
 perpendicular(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return perpendicular_through_point(*this, p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::Line_2=0A=
 LineC2<R>::opposite() const=0A=
 {=0A=
   return LineC2<R>( -a(), -b(), -c() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::Point_2=0A=
 LineC2<R>::point(int i) const=0A=
 {=0A=
   return line_get_point(*this, i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::Point_2=0A=
 LineC2<R>::point() const=0A=
 {=0A=
   return line_get_point(*this, 0);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename LineC2<R>::Point_2=0A=
 LineC2<R>::=0A=
 projection(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return line_project_point(*this, p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC2<R>::Direction_2=0A=
 LineC2<R>::direction() const=0A=
 {=0A=
   return Direction_2( b(), -a() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Oriented_side=0A=
 LineC2<R>::=0A=
 oriented_side(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return side_of_oriented_line(*this, p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::=0A=
 has_on_boundary(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::=0A=
 has_on_positive_side(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::=0A=
 has_on_negative_side(const typename LineC2<R>::Point_2 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC2<R>::is_degenerate() const=0A=
 {=0A=
   return is_horizontal() && is_vertical();=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const LineC2<R> &l)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << l.a() << ' ' << l.b() << ' ' << l.c();=0A=
     case IO::BINARY :=0A=
         write(os, l.a());=0A=
         write(os, l.b());=0A=
         write(os, l.c());=0A=
         return os;=0A=
     default:=0A=
         return os << "LineC2(" << l.a()=0A=
                   << ", " << l.b() << ", " << l.c() <<')';=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, LineC2<R> &l)=0A=
 {=0A=
     typename R::FT a, b, c;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> a >> b >> c;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, a);=0A=
         read(is, b);=0A=
         read(is, c);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         l =3D LineC2<R>(a, b, c);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 66 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class RayC2=0A=
   : public R_::Ray_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Ray_2 Ray_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Ray_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   RayC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   RayC2(const Point_2 &sp, const Point_2 &secondp)=0A=
     : base(rep(sp, secondp)) {}=0A=
 =0A=
   RayC2(const Point_2 &sp, const Direction_2 &d)=0A=
     : base(rep(sp, sp + d.to_vector())){}=0A=
 =0A=
   bool operator=3D=3D(const RayC2 &r) const;=0A=
   bool operator!=3D(const RayC2 &r) const;=0A=
 =0A=
   const Point_2 & start() const;=0A=
   const Point_2 & source() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   Point_2 point(int i) const;=0A=
   const Point_2 & second_point() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 =0A=
   Direction_2 direction() const;=0A=
   Line_2 supporting_line() const;=0A=
   Ray_2 opposite() const;=0A=
 =0A=
   Ray_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return RayC2<R>(t.transform(source()), t.transform(second_point()));=0A=
   }=0A=
 =0A=
   bool is_horizontal() const;=0A=
   bool is_vertical() const;=0A=
   bool is_degenerate() const;=0A=
   bool has_on(const Point_2 &p) const;=0A=
   bool collinear_has_on(const Point_2 &p) const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC2<R>::operator=3D=3D(const RayC2<R> &r) const=0A=
 {=0A=
   if (identical(r))=0A=
       return true;=0A=
   return source() =3D=3D r.source() && direction() =3D=3D r.direction();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC2<R>::operator!=3D(const RayC2<R> &r) const=0A=
 {=0A=
   return !(*this =3D=3D r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename RayC2<R>::Point_2 &=0A=
 RayC2<R>::start() const=0A=
 {=0A=
   return source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC2<R>::Point_2=0A=
 RayC2<R>::point(int i) const=0A=
 {=0A=
   ((i >=3D 0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "i >=3D =
 0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_2.h", 143, 0));=0A=
   if (i =3D=3D 0) return source();=0A=
   if (i =3D=3D 1) return second_point();=0A=
   return source() + (second_point() - source()) * FT(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC2<R>::Direction_2=0A=
 RayC2<R>::direction() const=0A=
 {=0A=
   return Direction_2( second_point() - source() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC2<R>::Line_2=0A=
 RayC2<R>::supporting_line() const=0A=
 {=0A=
   return Line_2(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC2<R>::Ray_2=0A=
 RayC2<R>::opposite() const=0A=
 {=0A=
   return RayC2<R>( source(), - direction() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool RayC2<R>::is_horizontal() const=0A=
 {=0A=
   return y_equal(source(), second_point());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool RayC2<R>::is_vertical() const=0A=
 {=0A=
   return x_equal(source(), second_point());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool RayC2<R>::is_degenerate() const=0A=
 {=0A=
   return source() =3D=3D second_point();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC2<R>::has_on(const typename RayC2<R>::Point_2 &p) const=0A=
 {=0A=
   return p =3D=3D source()=0A=
       || collinear(source(), p, second_point())=0A=
       && Direction_2(p - source()) =3D=3D direction();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 RayC2<R>::=0A=
 collinear_has_on(const typename RayC2<R>::Point_2 &p) const=0A=
 {=0A=
     switch(compare_x(source(), second_point())){=0A=
     case SMALLER:=0A=
         return compare_x(source(), p) !=3D LARGER;=0A=
     case LARGER:=0A=
         return compare_x(p, source()) !=3D LARGER;=0A=
     default:=0A=
         switch(compare_y(source(), second_point())){=0A=
         case SMALLER:=0A=
             return compare_y(source(), p) !=3D LARGER;=0A=
         case LARGER:=0A=
             return compare_y(p, source()) !=3D LARGER;=0A=
         default:=0A=
             return true;=0A=
         }=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const RayC2<R> &r)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << r.source() << ' ' << r.direction();=0A=
     case IO::BINARY :=0A=
         return os << r.source() << r.direction();=0A=
     default:=0A=
         return os << "RayC2(" << r.source() << ", " << r.direction() << =
 ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, RayC2<R> &r)=0A=
 {=0A=
     typename R::Point_2 p;=0A=
     typename R::Direction_2 d;=0A=
 =0A=
     is >> p >> d;=0A=
 =0A=
     if (is)=0A=
         r =3D RayC2<R>(p, d);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 67 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Segment_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Segment_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_2.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/sign_of_determinant.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/sign_of_determinant.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/de=
 terminant.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/de=
 terminant.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 FT=0A=
 det2x2_by_formula(=0A=
  const FT& a00, const FT& a01,=0A=
  const FT& a10, const FT& a11)=0A=
 {=0A=
 =0A=
   const FT m01 =3D a00*a11 - a10*a01;=0A=
   return m01;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 FT=0A=
 det3x3_by_formula(=0A=
  const FT& a00, const FT& a01, const FT& a02,=0A=
  const FT& a10, const FT& a11, const FT& a12,=0A=
  const FT& a20, const FT& a21, const FT& a22)=0A=
 {=0A=
 =0A=
   const FT m01 =3D a00*a11 - a10*a01;=0A=
   const FT m02 =3D a00*a21 - a20*a01;=0A=
   const FT m12 =3D a10*a21 - a20*a11;=0A=
 =0A=
   const FT m012 =3D m01*a22 - m02*a12 + m12*a02;=0A=
   return m012;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 FT=0A=
 det4x4_by_formula(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33)=0A=
 {=0A=
 =0A=
   const FT m01 =3D a10*a01 - a00*a11;=0A=
   const FT m02 =3D a20*a01 - a00*a21;=0A=
   const FT m03 =3D a30*a01 - a00*a31;=0A=
   const FT m12 =3D a20*a11 - a10*a21;=0A=
   const FT m13 =3D a30*a11 - a10*a31;=0A=
   const FT m23 =3D a30*a21 - a20*a31;=0A=
 =0A=
   const FT m012 =3D m12*a02 - m02*a12 + m01*a22;=0A=
   const FT m013 =3D m13*a02 - m03*a12 + m01*a32;=0A=
   const FT m023 =3D m23*a02 - m03*a22 + m02*a32;=0A=
   const FT m123 =3D m23*a12 - m13*a22 + m12*a32;=0A=
 =0A=
   const FT m0123 =3D m123*a03 - m023*a13 + m013*a23 - m012*a33;=0A=
   return m0123;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 FT=0A=
 det5x5_by_formula(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& =
 a04,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& =
 a14,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& =
 a24,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& =
 a34,=0A=
  const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& =
 a44)=0A=
 {=0A=
 =0A=
   const FT m01 =3D a10*a01 - a00*a11;=0A=
   const FT m02 =3D a20*a01 - a00*a21;=0A=
   const FT m03 =3D a30*a01 - a00*a31;=0A=
   const FT m04 =3D a40*a01 - a00*a41;=0A=
   const FT m12 =3D a20*a11 - a10*a21;=0A=
   const FT m13 =3D a30*a11 - a10*a31;=0A=
   const FT m14 =3D a40*a11 - a10*a41;=0A=
   const FT m23 =3D a30*a21 - a20*a31;=0A=
   const FT m24 =3D a40*a21 - a20*a41;=0A=
   const FT m34 =3D a40*a31 - a30*a41;=0A=
 =0A=
   const FT m012 =3D m12*a02 - m02*a12 + m01*a22;=0A=
   const FT m013 =3D m13*a02 - m03*a12 + m01*a32;=0A=
   const FT m014 =3D m14*a02 - m04*a12 + m01*a42;=0A=
   const FT m023 =3D m23*a02 - m03*a22 + m02*a32;=0A=
   const FT m024 =3D m24*a02 - m04*a22 + m02*a42;=0A=
   const FT m034 =3D m34*a02 - m04*a32 + m03*a42;=0A=
   const FT m123 =3D m23*a12 - m13*a22 + m12*a32;=0A=
   const FT m124 =3D m24*a12 - m14*a22 + m12*a42;=0A=
   const FT m134 =3D m34*a12 - m14*a32 + m13*a42;=0A=
   const FT m234 =3D m34*a22 - m24*a32 + m23*a42;=0A=
 =0A=
   const FT m0123 =3D m123*a03 - m023*a13 + m013*a23 - m012*a33;=0A=
   const FT m0124 =3D m124*a03 - m024*a13 + m014*a23 - m012*a43;=0A=
   const FT m0134 =3D m134*a03 - m034*a13 + m014*a33 - m013*a43;=0A=
   const FT m0234 =3D m234*a03 - m034*a23 + m024*a33 - m023*a43;=0A=
   const FT m1234 =3D m234*a13 - m134*a23 + m124*a33 - m123*a43;=0A=
 =0A=
   const FT m01234 =3D m1234*a04 - m0234*a14 + m0134*a24 - m0124*a34 + =
 m0123*a44;=0A=
   return m01234;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 FT=0A=
 det6x6_by_formula(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& =
 a04,=0A=
  const FT& a05,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& =
 a14,=0A=
  const FT& a15,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& =
 a24,=0A=
  const FT& a25,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& =
 a34,=0A=
  const FT& a35,=0A=
  const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& =
 a44,=0A=
  const FT& a45,=0A=
  const FT& a50, const FT& a51, const FT& a52, const FT& a53, const FT& =
 a54,=0A=
  const FT& a55)=0A=
 {=0A=
 =0A=
   const FT m01 =3D a00*a11 - a10*a01;=0A=
   const FT m02 =3D a00*a21 - a20*a01;=0A=
   const FT m03 =3D a00*a31 - a30*a01;=0A=
   const FT m04 =3D a00*a41 - a40*a01;=0A=
   const FT m05 =3D a00*a51 - a50*a01;=0A=
   const FT m12 =3D a10*a21 - a20*a11;=0A=
   const FT m13 =3D a10*a31 - a30*a11;=0A=
   const FT m14 =3D a10*a41 - a40*a11;=0A=
   const FT m15 =3D a10*a51 - a50*a11;=0A=
   const FT m23 =3D a20*a31 - a30*a21;=0A=
   const FT m24 =3D a20*a41 - a40*a21;=0A=
   const FT m25 =3D a20*a51 - a50*a21;=0A=
   const FT m34 =3D a30*a41 - a40*a31;=0A=
   const FT m35 =3D a30*a51 - a50*a31;=0A=
   const FT m45 =3D a40*a51 - a50*a41;=0A=
 =0A=
   const FT m012 =3D m01*a22 - m02*a12 + m12*a02;=0A=
   const FT m013 =3D m01*a32 - m03*a12 + m13*a02;=0A=
   const FT m014 =3D m01*a42 - m04*a12 + m14*a02;=0A=
   const FT m015 =3D m01*a52 - m05*a12 + m15*a02;=0A=
   const FT m023 =3D m02*a32 - m03*a22 + m23*a02;=0A=
   const FT m024 =3D m02*a42 - m04*a22 + m24*a02;=0A=
   const FT m025 =3D m02*a52 - m05*a22 + m25*a02;=0A=
   const FT m034 =3D m03*a42 - m04*a32 + m34*a02;=0A=
   const FT m035 =3D m03*a52 - m05*a32 + m35*a02;=0A=
   const FT m045 =3D m04*a52 - m05*a42 + m45*a02;=0A=
   const FT m123 =3D m12*a32 - m13*a22 + m23*a12;=0A=
   const FT m124 =3D m12*a42 - m14*a22 + m24*a12;=0A=
   const FT m125 =3D m12*a52 - m15*a22 + m25*a12;=0A=
   const FT m134 =3D m13*a42 - m14*a32 + m34*a12;=0A=
   const FT m135 =3D m13*a52 - m15*a32 + m35*a12;=0A=
   const FT m145 =3D m14*a52 - m15*a42 + m45*a12;=0A=
   const FT m234 =3D m23*a42 - m24*a32 + m34*a22;=0A=
   const FT m235 =3D m23*a52 - m25*a32 + m35*a22;=0A=
   const FT m245 =3D m24*a52 - m25*a42 + m45*a22;=0A=
   const FT m345 =3D m34*a52 - m35*a42 + m45*a32;=0A=
 =0A=
   const FT m0123 =3D m012*a33 - m013*a23 + m023*a13 - m123*a03;=0A=
   const FT m0124 =3D m012*a43 - m014*a23 + m024*a13 - m124*a03;=0A=
   const FT m0125 =3D m012*a53 - m015*a23 + m025*a13 - m125*a03;=0A=
   const FT m0134 =3D m013*a43 - m014*a33 + m034*a13 - m134*a03;=0A=
   const FT m0135 =3D m013*a53 - m015*a33 + m035*a13 - m135*a03;=0A=
   const FT m0145 =3D m014*a53 - m015*a43 + m045*a13 - m145*a03;=0A=
   const FT m0234 =3D m023*a43 - m024*a33 + m034*a23 - m234*a03;=0A=
   const FT m0235 =3D m023*a53 - m025*a33 + m035*a23 - m235*a03;=0A=
   const FT m0245 =3D m024*a53 - m025*a43 + m045*a23 - m245*a03;=0A=
   const FT m0345 =3D m034*a53 - m035*a43 + m045*a33 - m345*a03;=0A=
   const FT m1234 =3D m123*a43 - m124*a33 + m134*a23 - m234*a13;=0A=
   const FT m1235 =3D m123*a53 - m125*a33 + m135*a23 - m235*a13;=0A=
   const FT m1245 =3D m124*a53 - m125*a43 + m145*a23 - m245*a13;=0A=
   const FT m1345 =3D m134*a53 - m135*a43 + m145*a33 - m345*a13;=0A=
   const FT m2345 =3D m234*a53 - m235*a43 + m245*a33 - m345*a23;=0A=
 =0A=
   const FT m01234 =3D m0123*a44 - m0124*a34 + m0134*a24 - m0234*a14 + =
 m1234*a04;=0A=
   const FT m01235 =3D m0123*a54 - m0125*a34 + m0135*a24 - m0235*a14 + =
 m1235*a04;=0A=
   const FT m01245 =3D m0124*a54 - m0125*a44 + m0145*a24 - m0245*a14 + =
 m1245*a04;=0A=
   const FT m01345 =3D m0134*a54 - m0135*a44 + m0145*a34 - m0345*a14 + =
 m1345*a04;=0A=
   const FT m02345 =3D m0234*a54 - m0235*a44 + m0245*a34 - m0345*a24 + =
 m2345*a04;=0A=
   const FT m12345 =3D m1234*a54 - m1235*a44 + m1245*a34 - m1345*a24 + =
 m2345*a14;=0A=
 =0A=
   const FT m012345 =3D m01234*a55 - m01235*a45 + m01245*a35 - m01345*a25=0A=
                    + m02345*a15 - m12345*a05;=0A=
   return m012345;=0A=
 }=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/sign_of_determinant.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 Sign=0A=
 sign_of_determinant2x2( const FT& a00, const FT& a01,=0A=
                         const FT& a10, const FT& a11)=0A=
 {=0A=
   return=0A=
     static_cast<Sign>(static_cast<int>(CGAL::NTS:: compare( a00*a11, =
 a10*a01)));=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 Sign=0A=
 sign_of_determinant3x3( const FT& a00, const FT& a01, const FT& a02,=0A=
                         const FT& a10, const FT& a11, const FT& a12,=0A=
                         const FT& a20, const FT& a21, const FT& a22)=0A=
 {=0A=
   return CGAL::NTS:: sign(det3x3_by_formula(a00, a01, a02,=0A=
                                          a10, a11, a12,=0A=
                                          a20, a21, a22));=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 Sign=0A=
 sign_of_determinant4x4(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33)=0A=
 {=0A=
   return CGAL::NTS:: sign(det4x4_by_formula(a00, a01, a02, a03,=0A=
                                          a10, a11, a12, a13,=0A=
                                          a20, a21, a22, a23,=0A=
                                          a30, a31, a32, a33));=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 Sign=0A=
 sign_of_determinant5x5(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& =
 a04,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& =
 a14,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& =
 a24,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& =
 a34,=0A=
  const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& =
 a44)=0A=
 {=0A=
   return CGAL::NTS:: sign(det5x5_by_formula(a00, a01, a02, a03, a04,=0A=
                                          a10, a11, a12, a13, a14,=0A=
                                          a20, a21, a22, a23, a24,=0A=
                                          a30, a31, a32, a33, a34,=0A=
                                          a40, a41, a42, a43, a44));=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 Sign=0A=
 sign_of_determinant6x6(=0A=
  const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& =
 a04,=0A=
  const FT& a05,=0A=
  const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& =
 a14,=0A=
  const FT& a15,=0A=
  const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& =
 a24,=0A=
  const FT& a25,=0A=
  const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& =
 a34,=0A=
  const FT& a35,=0A=
  const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& =
 a44,=0A=
  const FT& a45,=0A=
  const FT& a50, const FT& a51, const FT& a52, const FT& a53, const FT& =
 a54,=0A=
  const FT& a55)=0A=
 {=0A=
   return CGAL::NTS:: sign(det6x6_by_formula(a00, a01, a02, a03, a04, a05,=0A=
                                          a10, a11, a12, a13, a14, a15,=0A=
                                          a20, a21, a22, a23, a24, a25,=0A=
                                          a30, a31, a32, a33, a34, a35,=0A=
                                          a40, a41, a42, a43, a44, a45,=0A=
                                          a50, a51, a52, a53, a54, a55));=0A=
 }=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 midpointC2( const FT &px, const FT &py,=0A=
             const FT &qx, const FT &qy,=0A=
             FT &x, FT &y )=0A=
 {=0A=
   x =3D (px+qx) / FT(2);=0A=
   y =3D (py+qy) / FT(2);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 void=0A=
 circumcenter_translateC2(const FT &dqx, const FT &dqy,=0A=
                          const FT &drx, const FT &dry,=0A=
                                FT &dcx, FT &dcy)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   FT r2 =3D CGAL::NTS:: square(drx) + CGAL::NTS:: square(dry);=0A=
   FT q2 =3D CGAL::NTS:: square(dqx) + CGAL::NTS:: square(dqy);=0A=
   FT den =3D FT(2) * det2x2_by_formula(dqx, dqy, drx, dry);=0A=
 =0A=
 =0A=
 =0A=
   ((! CGAL::NTS:: is_zero(den))?(static_cast<void>(0)): =
 ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC2.h", 82, 0));=0A=
 =0A=
 =0A=
 =0A=
   dcx =3D det2x2_by_formula (dry, dqy, r2, q2) / den;=0A=
   dcy =3D - det2x2_by_formula (drx, dqx, r2, q2) / den;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 void=0A=
 circumcenterC2( const FT &px, const FT &py,=0A=
                 const FT &qx, const FT &qy,=0A=
                 const FT &rx, const FT &ry,=0A=
                 FT &x, FT &y )=0A=
 {=0A=
   circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A=
   x +=3D px;=0A=
   y +=3D py;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 void=0A=
 centroidC2( const FT &px, const FT &py,=0A=
             const FT &qx, const FT &qy,=0A=
             const FT &rx, const FT &ry,=0A=
             FT &x, FT &y)=0A=
 {=0A=
    x =3D (px + qx + rx)/FT(3);=0A=
    y =3D (py + qy + ry)/FT(3);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 void=0A=
 centroidC2( const FT &px, const FT &py,=0A=
             const FT &qx, const FT &qy,=0A=
             const FT &rx, const FT &ry,=0A=
             const FT &sx, const FT &sy,=0A=
             FT &x, FT &y)=0A=
 {=0A=
    x =3D (px + qx + rx + sx)/FT(4);=0A=
    y =3D (py + qy + ry + sy)/FT(4);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 line_from_pointsC2(const FT &px, const FT &py,=0A=
                    const FT &qx, const FT &qy,=0A=
                    FT &a, FT &b, FT &c)=0A=
 {=0A=
   a =3D py - qy;=0A=
   b =3D qx - px;=0A=
 =0A=
   c =3D -px*a - py*b;=0A=
 =0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 line_from_point_directionC2(const FT &px, const FT &py,=0A=
                             const FT &dx, const FT &dy,=0A=
                             FT &a, FT &b, FT &c)=0A=
 {=0A=
   a =3D - dy;=0A=
   b =3D dx;=0A=
   c =3D px*dy - py*dx;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 bisector_of_pointsC2(const FT &px, const FT &py,=0A=
                      const FT &qx, const FT &qy,=0A=
                      FT &a, FT &b, FT& c )=0A=
 {=0A=
   a =3D FT(2)*(px - qx);=0A=
   b =3D FT(2)*(py - qy);=0A=
   c =3D CGAL::NTS:: square(qx) + CGAL::NTS:: square(qy) -=0A=
       CGAL::NTS:: square(px) - CGAL::NTS:: square(py);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 line_y_at_xC2(const FT &a, const FT &b, const FT &c, const FT &x)=0A=
 {=0A=
   return (-a*x-c) / b;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 line_get_pointC2(const FT &a, const FT &b, const FT &c, int i,=0A=
                  FT &x, FT &y)=0A=
 {=0A=
   if (CGAL::NTS:: is_zero(b))=0A=
     {=0A=
       x =3D (-b-c)/a + FT(i)*b;=0A=
       y =3D FT(1) - FT(i)*a;=0A=
     }=0A=
   else=0A=
     {=0A=
       x =3D FT(1) + FT(i)*b;=0A=
       y =3D -(a+c)/b - FT(i)*a;=0A=
     }=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 perpendicular_through_pointC2(const FT &la, const FT &lb,=0A=
                               const FT &px, const FT &py,=0A=
                               FT &a, FT &b, FT &c)=0A=
 {=0A=
   a =3D -lb;=0A=
   b =3D la;=0A=
   c =3D lb * px - la * py;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 void=0A=
 line_project_pointC2(const FT &la, const FT &lb, const FT &lc,=0A=
                      const FT &px, const FT &py,=0A=
                      FT &x, FT &y)=0A=
 {=0A=
 =0A=
 =0A=
   if (CGAL::NTS:: is_zero(la))=0A=
   {=0A=
     x =3D px;=0A=
     y =3D -lc/lb;=0A=
   }=0A=
   else if (CGAL::NTS:: is_zero(lb))=0A=
   {=0A=
     x =3D -lc/la;=0A=
     y =3D py;=0A=
   }=0A=
   else=0A=
   {=0A=
     FT ab =3D la/lb, ba =3D lb/la, ca =3D lc/la;=0A=
     y =3D ( -px + ab*py - ca ) / ( ba + ab );=0A=
     x =3D -ba * y - ca;=0A=
   }=0A=
 # 240 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC2.h"=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 FT=0A=
 squared_radiusC2(const FT &px, const FT &py,=0A=
                        const FT &qx, const FT &qy,=0A=
                        const FT &rx, const FT &ry,=0A=
                        FT &x, FT &y )=0A=
 {=0A=
   circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A=
   FT r2 =3D CGAL::NTS:: square(x) + CGAL::NTS:: square(y);=0A=
   x +=3D px;=0A=
   y +=3D py;=0A=
   return r2;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 FT=0A=
 squared_radiusC2(const FT &px, const FT &py,=0A=
                        const FT &qx, const FT &qy,=0A=
                        const FT &rx, const FT &ry)=0A=
 {=0A=
   FT x, y;=0A=
   circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A=
   return CGAL::NTS:: square(x) + CGAL::NTS:: square(y);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 squared_distanceC2( const FT &px, const FT &py,=0A=
                     const FT &qx, const FT &qy)=0A=
 {=0A=
   return CGAL::NTS:: square(px-qx) + CGAL::NTS:: square(py-qy);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 scaled_distance_to_lineC2( const FT &la, const FT &lb, const FT &lc,=0A=
                            const FT &px, const FT &py)=0A=
 {=0A=
 =0A=
 =0A=
   return la*px + lb*py + lc;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 scaled_distance_to_directionC2( const FT &la, const FT &lb,=0A=
                                 const FT &px, const FT &py)=0A=
 {=0A=
 =0A=
   return la*px + lb*py;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 FT=0A=
 scaled_distance_to_lineC2( const FT &px, const FT &py,=0A=
                            const FT &qx, const FT &qy,=0A=
                            const FT &rx, const FT &ry)=0A=
 {=0A=
   return det2x2_by_formula(px-rx,py-ry,qx-rx,qy-ry);=0A=
 }=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 equal_lineC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A=
              const FT &l2a, const FT &l2b, const FT &l2c)=0A=
 {=0A=
     if (sign_of_determinant2x2(l1a, l1b, l2a, l2b) !=3D ZERO)=0A=
         return false;=0A=
     CGAL::Sign s1a =3D CGAL::NTS:: sign(l1a);=0A=
     if (s1a !=3D ZERO)=0A=
         return s1a =3D=3D CGAL::NTS:: sign(l2a)=0A=
             && sign_of_determinant2x2(l1a, l1c, l2a, l2c) =3D=3D ZERO;=0A=
     return CGAL::NTS:: sign(l1b) =3D=3D CGAL::NTS:: sign(l2b)=0A=
         && sign_of_determinant2x2(l1b, l1c, l2b, l2c) =3D=3D ZERO;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_xC2(const FT &px,=0A=
             const FT &la, const FT &lb, const FT &lc,=0A=
             const FT &ha, const FT &hb, const FT &hc)=0A=
 {=0A=
 =0A=
   FT num =3D det2x2_by_formula( lb, lc, hb, hc);=0A=
   FT den =3D det2x2_by_formula( la, lb, ha, hb);=0A=
   Sign s =3D CGAL::NTS:: sign(den);=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 82, 0));=0A=
   return Comparison_result( s * CGAL::NTS:: compare( px * den, num) );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_xC2(const FT &la, const FT &lb, const FT &lc,=0A=
             const FT &h1a, const FT &h1b, const FT &h1c,=0A=
             const FT &h2a, const FT &h2b, const FT &h2c)=0A=
 {=0A=
 # 103 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h"=0A=
   FT num1 =3D det2x2_by_formula( la, lc, h1a, h1c);=0A=
   FT num2 =3D det2x2_by_formula( la, lc, h2a, h2c);=0A=
   FT num =3D det2x2_by_formula(h1a,h1c,h2a,h2c)*lb=0A=
             + det2x2_by_formula(num1,num2,h1b,h2b);=0A=
   FT den1 =3D det2x2_by_formula( la, lb, h1a, h1b);=0A=
   FT den2 =3D det2x2_by_formula( la, lb, h2a, h2b);=0A=
   return Comparison_result( CGAL::NTS:: sign(lb) * CGAL::NTS:: sign(num) =
 *=0A=
                             CGAL::NTS:: sign(den1) * CGAL::NTS:: =
 sign(den2));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A=
             const FT &h1a, const FT &h1b, const FT &h1c,=0A=
             const FT &l2a, const FT &l2b, const FT &l2c,=0A=
             const FT &h2a, const FT &h2b, const FT &h2c)=0A=
 {=0A=
   FT num1 =3D det2x2_by_formula( l1b, l1c, h1b, h1c);=0A=
   FT den1 =3D det2x2_by_formula( l1a, l1b, h1a, h1b);=0A=
   FT num2 =3D det2x2_by_formula( l2b, l2c, h2b, h2c);=0A=
   FT den2 =3D det2x2_by_formula( l2a, l2b, h2a, h2b);=0A=
   Sign s =3D Sign (CGAL::NTS:: sign(den1) * CGAL::NTS:: sign(den2));=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 126, 0));=0A=
   return Comparison_result( s * sign_of_determinant2x2(num1, num2,=0A=
                                                        den1, den2));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_xC2(const FT &px, const FT &py,=0A=
                  const FT &la, const FT &lb, const FT &lc)=0A=
 {=0A=
   Sign s =3D CGAL::NTS:: sign(lb);=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 138, 0));=0A=
   return Comparison_result (s * CGAL::NTS:: sign(la*px + lb*py + lc));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_xC2(const FT &px,=0A=
                  const FT &l1a, const FT &l1b, const FT &l1c,=0A=
                  const FT &l2a, const FT &l2b, const FT &l2c)=0A=
 {=0A=
   Sign s =3D Sign (CGAL::NTS:: sign(l1b) * CGAL::NTS:: sign(l2b));=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 150, 0));=0A=
   return Comparison_result ( s * sign_of_determinant2x2(l2a*px+l2c, l2b,=0A=
                                                         l1a*px+l1c, =
 l1b));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A=
                  const FT &l2a, const FT &l2b, const FT &l2c,=0A=
                  const FT &ha, const FT &hb, const FT &hc)=0A=
 {=0A=
   Sign s =3D Sign (sign_of_determinant2x2(l1a, l1b, l2a, l2b) *=0A=
                  CGAL::NTS:: sign(hb));=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 164, 0));=0A=
   return Comparison_result( s * sign_of_determinant3x3(l1a, l1b, l1c,=0A=
                                                        l2a, l2b, l2c,=0A=
                                                        ha, hb, hc));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A=
                  const FT &l2a, const FT &l2b, const FT &l2c,=0A=
                  const FT &h1a, const FT &h1b, const FT &h1c,=0A=
                  const FT &h2a, const FT &h2b, const FT &h2c)=0A=
 {=0A=
 =0A=
   FT num =3D det2x2_by_formula( l1b, l1c, l2b, l2c);=0A=
   FT den =3D det2x2_by_formula( l1a, l1b, l2a, l2b);=0A=
   Sign s =3D Sign (CGAL::NTS:: sign(h1b) * CGAL::NTS:: sign(h2b) * =
 CGAL::NTS:: sign(den));=0A=
   ((s !=3D ZERO)?(static_cast<void>(0)): ::CGAL::assertion_fail( "s !=3D =
 ZERO" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 182, 0));=0A=
   return Comparison_result ( s * sign_of_determinant2x2(h2a*num+h2c*den, =
 h2b,=0A=
                                                         h1a*num+h1c*den, =
 h1b));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_xC2(const FT &px, const FT &py,=0A=
                  const FT &ssx, const FT &ssy,=0A=
                  const FT &stx, const FT &sty)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
     ((px >=3D min(ssx, stx) && px <=3D max(ssx, =
 stx))?(static_cast<void>(0)): ::CGAL::precondition_fail( "px >=3D =
 min(ssx, stx) && px <=3D max(ssx, stx)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 198, 0));=0A=
 =0A=
     if (ssx < stx)=0A=
         return (Comparison_result) orientationC2(px, py, ssx, ssy, stx, =
 sty);=0A=
     else if (ssx > stx)=0A=
         return (Comparison_result) orientationC2(px, py, stx, sty, ssx, =
 ssy);=0A=
     else {=0A=
         if (py < min(sty, ssy))=0A=
             return SMALLER;=0A=
         if (py > max(sty, ssy))=0A=
             return LARGER;=0A=
         return EQUAL;=0A=
     }=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_y_at_x_segment_C2(const FT &px,=0A=
                           const FT &s1sx, const FT &s1sy,=0A=
                           const FT &s1tx, const FT &s1ty,=0A=
                           const FT &s2sx, const FT &s2sy,=0A=
                           const FT &s2tx, const FT &s2ty)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     ((px >=3D min(s1sx, s1tx) && px <=3D max(s1sx, =
 s1tx))?(static_cast<void>(0)): ::CGAL::precondition_fail( "px >=3D =
 min(s1sx, s1tx) && px <=3D max(s1sx, s1tx)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 228, 0));=0A=
     ((px >=3D min(s2sx, s2tx) && px <=3D max(s2sx, =
 s2tx))?(static_cast<void>(0)): ::CGAL::precondition_fail( "px >=3D =
 min(s2sx, s2tx) && px <=3D max(s2sx, s2tx)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC2.h", 229, 0));=0A=
 =0A=
     if (s1sx !=3D s1tx && s2sx !=3D s2tx) {=0A=
         FT s1stx =3D s1sx-s1tx;=0A=
         FT s2stx =3D s2sx-s2tx;=0A=
 =0A=
         return Comparison_result(=0A=
             CGAL::NTS:: compare(s1sx, s1tx) *=0A=
             CGAL::NTS:: compare(s2sx, s2tx) *=0A=
             CGAL::NTS:: compare(-(s1sx-px)*(s1sy-s1ty)*s2stx,=0A=
                              (s2sy-s1sy)*s2stx*s1stx=0A=
                              -(s2sx-px)*(s2sy-s2ty)*s1stx ));=0A=
     }=0A=
     else {=0A=
         if (s1sx =3D=3D s1tx) {=0A=
             Comparison_result c1, c2;=0A=
             c1 =3D compare_y_at_xC2(px, s1sy, s2sx, s2sy, s2tx, s2ty);=0A=
             c2 =3D compare_y_at_xC2(px, s1ty, s2sx, s2sy, s2tx, s2ty);=0A=
             if (c1 =3D=3D c2)=0A=
                 return c1;=0A=
             return EQUAL;=0A=
         }=0A=
 =0A=
         Comparison_result c3, c4;=0A=
         c3 =3D compare_y_at_xC2(px, s2sy, s1sx, s1sy, s1tx, s1ty);=0A=
         c4 =3D compare_y_at_xC2(px, s2ty, s1sx, s1sy, s1tx, s1ty);=0A=
         if (c3 =3D=3D c4)=0A=
             return opposite(c3);=0A=
         return EQUAL;=0A=
     }=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 equal_directionC2(const FT &dx1, const FT &dy1,=0A=
                   const FT &dx2, const FT &dy2)=0A=
 {=0A=
   return CGAL::NTS:: sign(dx1) =3D=3D CGAL::NTS:: sign(dx2)=0A=
       && CGAL::NTS:: sign(dy1) =3D=3D CGAL::NTS:: sign(dy2)=0A=
       && sign_of_determinant2x2(dx1, dy1, dx2, dy2) =3D=3D ZERO;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 Comparison_result=0A=
 compare_angle_with_x_axisC2(const FT &dx1, const FT &dy1,=0A=
                             const FT &dx2, const FT &dy2)=0A=
 {=0A=
 =0A=
 =0A=
   int quadrant_1 =3D (dx1 >=3D FT(0)) ? ((dy1 >=3D FT(0))?1:4)=0A=
                                   : ((dy1 >=3D FT(0))?2:3);=0A=
   int quadrant_2 =3D (dx2 >=3D FT(0)) ? ((dy2 >=3D FT(0))?1:4)=0A=
                                   : ((dy2 >=3D FT(0))?2:3);=0A=
 =0A=
 =0A=
   if (quadrant_1 > quadrant_2)=0A=
     return LARGER;=0A=
   else if (quadrant_1 < quadrant_2)=0A=
     return SMALLER;=0A=
   return Comparison_result(-sign_of_determinant2x2(dx1,dy1,dx2,dy2));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_slopesC2(const FT &l1a, const FT &l1b, const FT &l2a, const FT =
 &l2b)=0A=
 {=0A=
    if (l1a =3D=3D FT(0))=0A=
     return l2b =3D=3D FT(0) ? SMALLER : Comparison_result(CGAL::NTS:: =
 sign(l2a*l2b));=0A=
    if (l2a =3D=3D FT(0))=0A=
     return l1b =3D=3D FT(0) ? LARGER : Comparison_result(-CGAL::NTS:: =
 sign(l1a*l1b));=0A=
    if (l1b =3D=3D FT(0)) return l2b =3D=3D FT(0) ? EQUAL : LARGER;=0A=
    if (l2b =3D=3D FT(0)) return SMALLER;=0A=
    int l1_sign =3D CGAL::NTS:: sign(-l1a * l1b);=0A=
    int l2_sign =3D CGAL::NTS:: sign(-l2a * l2b);=0A=
 =0A=
    if (l1_sign < l2_sign) return SMALLER;=0A=
    if (l1_sign > l2_sign) return LARGER;=0A=
 =0A=
    if (l1_sign > 0)=0A=
      return Comparison_result( CGAL::NTS:: sign ( CGAL::NTS:: abs(l1a * =
 l2b) -=0A=
                                                CGAL::NTS:: abs(l2a * =
 l1b) ) );=0A=
 =0A=
    return Comparison_result( CGAL::NTS:: sign ( CGAL::NTS:: abs(l2a * =
 l1b) -=0A=
                                              CGAL::NTS:: abs(l1a * l2b) =
 ) );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 compare_slopesC2(const FT &s1_src_x, const FT &s1_src_y, const FT =
 &s1_tgt_x,=0A=
                  const FT &s1_tgt_y, const FT &s2_src_x, const FT =
 &s2_src_y,=0A=
                  const FT &s2_tgt_x, const FT &s2_tgt_y)=0A=
 {=0A=
    Comparison_result cmp_y1 =3D CGAL::NTS:: compare(s1_src_y, s1_tgt_y);=0A=
    if (cmp_y1 =3D=3D EQUAL)=0A=
    {=0A=
       Comparison_result cmp_x2 =3D CGAL::NTS:: compare(s2_src_x, =
 s2_tgt_x);=0A=
 =0A=
       if (cmp_x2 =3D=3D EQUAL) return SMALLER;=0A=
       return Comparison_result (- CGAL::NTS:: sign((s2_src_y - s2_tgt_y) =
 *=0A=
                                                 (s2_src_x - s2_tgt_x)) );=0A=
    }=0A=
 =0A=
    Comparison_result cmp_y2 =3D CGAL::NTS:: compare(s2_src_y, s2_tgt_y);=0A=
    if (cmp_y2 =3D=3D EQUAL)=0A=
    {=0A=
       Comparison_result cmp_x1 =3D CGAL::NTS:: compare(s1_src_x, =
 s1_tgt_x);=0A=
 =0A=
       if (cmp_x1 =3D=3D EQUAL) return LARGER;=0A=
       return Comparison_result ( CGAL::NTS:: sign((s1_src_y - s1_tgt_y) *=0A=
                                                (s1_src_x - s1_tgt_x)) );=0A=
    }=0A=
 =0A=
    Comparison_result cmp_x1 =3D CGAL::NTS:: compare(s1_src_x, s1_tgt_x);=0A=
    Comparison_result cmp_x2 =3D CGAL::NTS:: compare(s2_src_x, s2_tgt_x);=0A=
 =0A=
    if (cmp_x1 =3D=3D EQUAL) return cmp_x2 =3D=3D EQUAL ? EQUAL : LARGER;=0A=
 =0A=
    if (cmp_x2 =3D=3D EQUAL) return SMALLER;=0A=
 =0A=
    FT s1_xdiff =3D s1_src_x - s1_tgt_x;=0A=
    FT s1_ydiff =3D s1_src_y - s1_tgt_y;=0A=
    FT s2_xdiff =3D s2_src_x - s2_tgt_x;=0A=
    FT s2_ydiff =3D s2_src_y - s2_tgt_y;=0A=
    Sign s1_sign =3D CGAL::NTS:: sign(s1_ydiff * s1_xdiff);=0A=
    Sign s2_sign =3D CGAL::NTS:: sign(s2_ydiff * s2_xdiff);=0A=
 =0A=
    if (s1_sign < s2_sign) return SMALLER;=0A=
    if (s1_sign > s2_sign) return LARGER;=0A=
 =0A=
    if (s1_sign > 0)=0A=
      return Comparison_result(=0A=
              CGAL::NTS:: sign ( CGAL::NTS:: abs(s1_ydiff * s2_xdiff) -=0A=
                              CGAL::NTS:: abs(s2_ydiff * s1_xdiff)) );=0A=
 =0A=
    return Comparison_result(=0A=
             CGAL::NTS:: sign ( CGAL::NTS:: abs(s2_ydiff * s1_xdiff) -=0A=
                             CGAL::NTS:: abs(s1_ydiff * s2_xdiff)) );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_deltax_deltayC2(const FT &px, const FT &qx,=0A=
                         const FT &ry, const FT &sy)=0A=
 {=0A=
   return CGAL::NTS:: compare(CGAL::NTS:: abs(px-qx), CGAL::NTS:: =
 abs(ry-sy));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 inline=0A=
 Comparison_result=0A=
 compare_lexicographically_xyC2(const FT &px, const FT &py,=0A=
                                const FT &qx, const FT &qy)=0A=
 {=0A=
   Comparison_result c =3D CGAL::NTS:: compare(px,qx);=0A=
   return (c !=3D EQUAL) ? c : CGAL::NTS:: compare(py,qy);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Orientation=0A=
 orientationC2(const FT &px, const FT &py,=0A=
               const FT &qx, const FT &qy,=0A=
               const FT &rx, const FT &ry)=0A=
 {=0A=
   return Orientation (sign_of_determinant2x2(qx-px, qy-py,=0A=
                                              rx-px, ry-py));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Angle=0A=
 angleC2(const FT &px, const FT &py,=0A=
         const FT &qx, const FT &qy,=0A=
         const FT &rx, const FT &ry)=0A=
 {=0A=
   return (Angle) CGAL::NTS:: sign ((px-qx)*(rx-qx)+(py-qy)*(ry-qy));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 collinear_are_ordered_along_lineC2(const FT &px, const FT &py,=0A=
                                    const FT &qx, const FT &qy,=0A=
                                    const FT &rx, const FT &ry)=0A=
 {=0A=
   if (px < qx) return !(rx < qx);=0A=
   if (qx < px) return !(qx < rx);=0A=
   if (py < qy) return !(ry < qy);=0A=
   if (qy < py) return !(qy < ry);=0A=
   return true;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 collinear_are_strictly_ordered_along_lineC2(const FT &px, const FT &py,=0A=
                                             const FT &qx, const FT &qy,=0A=
                                             const FT &rx, const FT &ry)=0A=
 {=0A=
   if (px < qx) return (qx < rx);=0A=
   if (qx < px) return (rx < qx);=0A=
   if (py < qy) return (qy < ry);=0A=
   if (qy < py) return (ry < qy);=0A=
   return false;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Oriented_side=0A=
 side_of_oriented_circleC2(const FT &px, const FT &py,=0A=
                           const FT &qx, const FT &qy,=0A=
                           const FT &rx, const FT &ry,=0A=
                           const FT &tx, const FT &ty)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   FT qpx =3D qx-px;=0A=
   FT qpy =3D qy-py;=0A=
   FT rpx =3D rx-px;=0A=
   FT rpy =3D ry-py;=0A=
   FT tpx =3D tx-px;=0A=
   FT tpy =3D ty-py;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   return Oriented_side(sign_of_determinant2x2(=0A=
                              qpx*tpy - qpy*tpx, tpx*(tx-qx) + =
 tpy*(ty-qy),=0A=
                              qpx*rpy - qpy*rpx, rpx*(rx-qx) + =
 rpy*(ry-qy)));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Bounded_side=0A=
 side_of_bounded_circleC2(const FT &px, const FT &py,=0A=
                          const FT &qx, const FT &qy,=0A=
                          const FT &rx, const FT &ry,=0A=
                          const FT &tx, const FT &ty)=0A=
 {=0A=
   return Bounded_side( side_of_oriented_circleC2(px,py,qx,qy,rx,ry,tx,ty)=0A=
                                  * orientationC2(px,py,qx,qy,rx,ry) );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Bounded_side=0A=
 side_of_bounded_circleC2(const FT &px, const FT &py,=0A=
                          const FT &qx, const FT &qy,=0A=
                          const FT &tx, const FT &ty)=0A=
 {=0A=
 =0A=
   return Bounded_side( CGAL::NTS:: compare((tx-px)*(qx-tx), =
 (ty-py)*(ty-qy)) );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_dist_to_pointC2(const FT &px, const FT &py,=0A=
                     const FT &qx, const FT &qy,=0A=
                     const FT &rx, const FT &ry)=0A=
 {=0A=
   return CGAL::NTS:: compare(squared_distanceC2(px,py,qx,qy),=0A=
                           squared_distanceC2(px,py,rx,ry));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_larger_dist_to_pointC2(const FT &px, const FT &py,=0A=
                            const FT &qx, const FT &qy,=0A=
                            const FT &rx, const FT &ry)=0A=
 {=0A=
   return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_smaller_dist_to_pointC2(const FT &px, const FT &py,=0A=
                             const FT &qx, const FT &qy,=0A=
                             const FT &rx, const FT &ry)=0A=
 {=0A=
   return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A=
                                const FT &px, const FT &py,=0A=
                                const FT &qx, const FT &qy)=0A=
 {=0A=
   return CGAL::NTS:: compare(scaled_distance_to_directionC2(la,lb,px,py),=0A=
                           scaled_distance_to_directionC2(la,lb,qx,qy));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_larger_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A=
                                       const FT &px, const FT &py,=0A=
                                       const FT &qx, const FT &qy)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A=
                                        const FT &px, const FT &py,=0A=
                                        const FT &qx, const FT &qy)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) =3D=3D =
 SMALLER;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_signed_dist_to_lineC2(const FT &px, const FT &py,=0A=
                           const FT &qx, const FT &qy,=0A=
                           const FT &rx, const FT &ry,=0A=
                           const FT &sx, const FT &sy)=0A=
 {=0A=
   return CGAL::NTS:: =
 compare(scaled_distance_to_lineC2(px,py,qx,qy,rx,ry),=0A=
                           scaled_distance_to_lineC2(px,py,qx,qy,sx,sy));=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_larger_signed_dist_to_lineC2(const FT &px, const FT &py,=0A=
                                  const FT &qx, const FT &qy,=0A=
                                  const FT &rx, const FT &ry,=0A=
                                  const FT &sx, const FT &sy)=0A=
 {=0A=
   return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) =3D=3D =
 LARGER;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_dist_to_lineC2(const FT &px, const FT &py,=0A=
                                   const FT &qx, const FT &qy,=0A=
                                   const FT &rx, const FT &ry,=0A=
                                   const FT &sx, const FT &sy)=0A=
 {=0A=
   return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) =3D=3D =
 SMALLER;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 inline=0A=
 Oriented_side=0A=
 side_of_oriented_lineC2(const FT &a, const FT &b, const FT &c,=0A=
                         const FT &x, const FT &y)=0A=
 {=0A=
   return Oriented_side(CGAL::NTS:: sign(a*x+b*y+c));=0A=
 }=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 x_equal(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return p.x() =3D=3D q.x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 y_equal(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return p.y() =3D=3D q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_xy(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return p.x() =3D=3D q.x() && p.y() =3D=3D q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 less_x(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return p.x() < q.x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 less_y(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return p.y() < q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return CGAL::NTS:: compare(p.x(), q.x());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return CGAL::NTS:: compare(p.y(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_xy(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xy(p, q);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_deltax_deltay(const PointC2<R>& p,=0A=
                       const PointC2<R>& q,=0A=
                       const PointC2<R>& r,=0A=
                       const PointC2<R>& s)=0A=
 {=0A=
     return compare_deltax_deltayC2(p.x(), q.x(), r.y(), s.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_lexicographically_xy(const PointC2<R> &p,=0A=
                              const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_smaller_or_equal(const PointC2<R> &p,=0A=
                                       const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xy(p, q) !=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_larger_or_equal(const PointC2<R> &p,=0A=
                                      const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xy(p, q) !=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_smaller(const PointC2<R> &p,=0A=
                              const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xy(p, q) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_larger(const PointC2<R> &p,=0A=
                             const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xy(p, q) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_yx(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xyC2(p.y(), p.x(), q.y(), q.x());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_lexicographically_yx(const PointC2<R> &p,=0A=
                              const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_xyC2(p.y(), p.x(), q.y(), q.x());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_yx_smaller_or_equal(const PointC2<R> &p,=0A=
                                       const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_yx(p, q) !=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_yx_larger_or_equal(const PointC2<R> &p,=0A=
                                      const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_yx(p, q) !=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_yx_smaller(const PointC2<R> &p,=0A=
                              const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_yx(p, q) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_yx_larger(const PointC2<R> &p,=0A=
                             const PointC2<R> &q)=0A=
 {=0A=
     return compare_lexicographically_yx(p, q) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Orientation=0A=
 orientation(const PointC2<R> &p,=0A=
             const PointC2<R> &q,=0A=
             const PointC2<R> &r)=0A=
 {=0A=
     return orientationC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Angle=0A=
 angle(const PointC2<R> &p,=0A=
       const PointC2<R> &q,=0A=
       const PointC2<R> &r)=0A=
 {=0A=
     return angleC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear(const PointC2<R> &p,=0A=
           const PointC2<R> &q,=0A=
           const PointC2<R> &r)=0A=
 {=0A=
     return orientation(p, q, r) =3D=3D COLLINEAR;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear_are_ordered_along_line(const PointC2<R> &p,=0A=
                                  const PointC2<R> &q,=0A=
                                  const PointC2<R> &r)=0A=
 {=0A=
     return collinear_are_ordered_along_lineC2=0A=
              (p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 are_ordered_along_line(const PointC2<R> &p,=0A=
                        const PointC2<R> &q,=0A=
                        const PointC2<R> &r)=0A=
 {=0A=
     return collinear(p, q, r) && collinear_are_ordered_along_line(p, q, =
 r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear_are_strictly_ordered_along_line(const PointC2<R> &p,=0A=
                                           const PointC2<R> &q,=0A=
                                           const PointC2<R> &r)=0A=
 {=0A=
   return collinear_are_strictly_ordered_along_lineC2=0A=
                (p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 are_strictly_ordered_along_line(const PointC2<R> &p,=0A=
                                 const PointC2<R> &q,=0A=
                                 const PointC2<R> &r)=0A=
 {=0A=
     return collinear(p, q, r) &&=0A=
            collinear_are_strictly_ordered_along_line(p, q, r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 left_turn(const PointC2<R> &p,=0A=
          const PointC2<R> &q,=0A=
          const PointC2<R> &r)=0A=
 {=0A=
     return orientation(p, q, r) =3D=3D LEFT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 right_turn(const PointC2<R> &p,=0A=
           const PointC2<R> &q,=0A=
           const PointC2<R> &r)=0A=
 {=0A=
    return orientation(p, q, r) =3D=3D RIGHT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 left_turn(const Origin &o,=0A=
           const PointC2<R> &q,=0A=
           const PointC2<R> &r)=0A=
 {=0A=
   return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D =
 LEFT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 right_turn(const Origin &o,=0A=
            const PointC2<R> &q,=0A=
            const PointC2<R> &r)=0A=
 {=0A=
   return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D =
 RIGHT_TURN;=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 leftturn(const PointC2<R> &p,=0A=
          const PointC2<R> &q,=0A=
          const PointC2<R> &r)=0A=
 {=0A=
     return orientation(p, q, r) =3D=3D LEFT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 rightturn(const PointC2<R> &p,=0A=
           const PointC2<R> &q,=0A=
           const PointC2<R> &r)=0A=
 {=0A=
    return orientation(p, q, r) =3D=3D RIGHT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 leftturn(const Origin &o,=0A=
          const PointC2<R> &q,=0A=
          const PointC2<R> &r)=0A=
 {=0A=
   return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D =
 LEFT_TURN;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 rightturn(const Origin &o,=0A=
           const PointC2<R> &q,=0A=
           const PointC2<R> &r)=0A=
 {=0A=
   return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D =
 RIGHT_TURN;=0A=
 }=0A=
 =0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Oriented_side=0A=
 side_of_oriented_circle(const PointC2<R> &p,=0A=
                         const PointC2<R> &q,=0A=
                         const PointC2<R> &r,=0A=
                         const PointC2<R> &t)=0A=
 {=0A=
   return side_of_oriented_circleC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y(),=0A=
                                    t.x(), t.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Bounded_side=0A=
 side_of_bounded_circle(const PointC2<R> &p,=0A=
                        const PointC2<R> &q,=0A=
                        const PointC2<R> &r,=0A=
                        const PointC2<R> &t)=0A=
 {=0A=
   return side_of_bounded_circleC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y(),=0A=
                                   t.x(), t.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Bounded_side=0A=
 side_of_bounded_circle(const PointC2<R> &p,=0A=
                        const PointC2<R> &q,=0A=
                        const PointC2<R> &t)=0A=
 {=0A=
   return side_of_bounded_circleC2(p.x(), p.y(), q.x(), q.y(), t.x(), =
 t.y());=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Segment_2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class SegmentC2=0A=
   : public R_::Segment_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Segment_2 Segment_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Segment_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   SegmentC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   SegmentC2(const Point_2 &sp, const Point_2 &ep)=0A=
     : base(rep(sp, ep)) {}=0A=
 =0A=
   bool is_horizontal() const;=0A=
   bool is_vertical() const;=0A=
   bool has_on(const Point_2 &p) const;=0A=
   bool collinear_has_on(const Point_2 &p) const;=0A=
 =0A=
   bool operator=3D=3D(const SegmentC2 &s) const;=0A=
   bool operator!=3D(const SegmentC2 &s) const;=0A=
 =0A=
   const Point_2 & source() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const Point_2 & target() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 =0A=
   const Point_2 & start() const;=0A=
   const Point_2 & end() const;=0A=
 =0A=
   const Point_2 & min() const;=0A=
   const Point_2 & max() const;=0A=
   const Point_2 & vertex(int i) const;=0A=
   const Point_2 & point(int i) const;=0A=
   const Point_2 & operator[](int i) const;=0A=
 =0A=
   FT squared_length() const;=0A=
 =0A=
   Direction_2 direction() const;=0A=
   Line_2 supporting_line() const;=0A=
   Segment_2 opposite() const;=0A=
   Segment_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return SegmentC2<R>(t.transform(source()), t.transform(target()));=0A=
   }=0A=
 =0A=
   bool is_degenerate() const;=0A=
   Bbox_2 bbox() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::operator=3D=3D(const SegmentC2<R> &s) const=0A=
 {=0A=
   if (identical(s))=0A=
       return true;=0A=
   return source() =3D=3D s.source() && target() =3D=3D s.target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::operator!=3D(const SegmentC2<R> &s) const=0A=
 {=0A=
   return !(*this =3D=3D s);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::start() const=0A=
 {=0A=
   return source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::end() const=0A=
 {=0A=
   return target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::min() const=0A=
 {=0A=
   return lexicographically_xy_smaller(source(),target()) ? source() : =
 target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::max() const=0A=
 {=0A=
   return lexicographically_xy_smaller(source(),target()) ? target() : =
 source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::vertex(int i) const=0A=
 {=0A=
   return (i%2 =3D=3D 0) ? source() : target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::point(int i) const=0A=
 {=0A=
   return (i%2 =3D=3D 0) ? source() : target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC2<R>::Point_2 &=0A=
 SegmentC2<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC2<R>::FT=0A=
 SegmentC2<R>::squared_length() const=0A=
 {=0A=
   return squared_distance(source(), target());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC2<R>::Direction_2=0A=
 SegmentC2<R>::direction() const=0A=
 {=0A=
   return Direction_2( target() - source() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC2<R>::Line_2=0A=
 SegmentC2<R>::supporting_line() const=0A=
 {=0A=
   return Line_2(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC2<R>::Segment_2=0A=
 SegmentC2<R>::opposite() const=0A=
 {=0A=
   return SegmentC2<R>(target(), source());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_2=0A=
 SegmentC2<R>::bbox() const=0A=
 {=0A=
   return source().bbox() + target().bbox();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::is_degenerate() const=0A=
 {=0A=
   return source() =3D=3D target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::is_horizontal() const=0A=
 {=0A=
   return y_equal(source(), target());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::is_vertical() const=0A=
 {=0A=
   return x_equal(source(), target());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC2<R>::=0A=
 has_on(const typename SegmentC2<R>::Point_2 &p) const=0A=
 {=0A=
   return are_ordered_along_line(source(), p, target());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 SegmentC2<R>::=0A=
 collinear_has_on(const typename SegmentC2<R>::Point_2 &p) const=0A=
 {=0A=
     return collinear_are_ordered_along_line(source(), p, target());=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const SegmentC2<R> &s)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << s.source() << ' ' << s.target();=0A=
     case IO::BINARY :=0A=
         return os << s.source() << s.target();=0A=
     default:=0A=
         return os << "SegmentC2(" << s.source() << ", " << s.target() << =
 ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, SegmentC2<R> &s)=0A=
 {=0A=
     typename R::Point_2 p, q;=0A=
 =0A=
     is >> p >> q;=0A=
 =0A=
     if (is)=0A=
         s =3D SegmentC2<R>(p, q);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 68 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Triangle_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Triangle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class TriangleC2=0A=
   : public R_::Triangle_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Triangle_2 Triangle_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Triangle_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   TriangleC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   TriangleC2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A=
     : base(rep(p, q, r)) {}=0A=
 =0A=
   bool operator=3D=3D(const TriangleC2 &s) const;=0A=
   bool operator!=3D(const TriangleC2 &s) const;=0A=
 =0A=
   const Point_2 & vertex(int i) const;=0A=
   const Point_2 & operator[](int i) const;=0A=
 =0A=
   Triangle_2 opposite() const;=0A=
   Triangle_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
     return TriangleC2<R>(t.transform(vertex(0)),=0A=
                 t.transform(vertex(1)),=0A=
                 t.transform(vertex(2)));=0A=
   }=0A=
 =0A=
   Orientation orientation() const;=0A=
   Oriented_side oriented_side(const Point_2 &p) const;=0A=
   Bounded_side bounded_side(const Point_2 &p) const;=0A=
 =0A=
   bool has_on_boundary(const Point_2 &p) const;=0A=
 =0A=
   bool has_on_bounded_side(const Point_2 &p) const;=0A=
   bool has_on_unbounded_side(const Point_2 &p) const;=0A=
 =0A=
   bool has_on_positive_side(const Point_2 &p) const;=0A=
   bool has_on_negative_side(const Point_2 &p) const;=0A=
 =0A=
   bool is_degenerate() const;=0A=
 =0A=
   Bbox_2 bbox() const;=0A=
 =0A=
   FT area() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 TriangleC2<R>::operator=3D=3D(const TriangleC2<R> &t) const=0A=
 {=0A=
   if (identical(t))=0A=
       return true;=0A=
 =0A=
   int i;=0A=
   for(i=3D0; i<3; i++)=0A=
     if ( vertex(0) =3D=3D t.vertex(i) )=0A=
       break;=0A=
 =0A=
   return (i<3) && vertex(1) =3D=3D t.vertex(i+1) && vertex(2) =3D=3D =
 t.vertex(i+2);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC2<R>::operator!=3D(const TriangleC2<R> &t) const=0A=
 {=0A=
   return !(*this =3D=3D t);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 const typename TriangleC2<R>::Point_2 &=0A=
 TriangleC2<R>::vertex(int i) const=0A=
 {=0A=
   if (i>2) i =3D i%3;=0A=
   else if (i<0) i =3D (i%3) + 3;=0A=
   return (i=3D=3D0) ? Ptr()->e0 :=0A=
          (i=3D=3D1) ? Ptr()->e1 :=0A=
                   Ptr()->e2;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename TriangleC2<R>::Point_2 &=0A=
 TriangleC2<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename TriangleC2<R>::FT=0A=
 TriangleC2<R>::area() const=0A=
 {=0A=
   typename R::Vector_2 v1 =3D vertex(1)-vertex(0);=0A=
   typename R::Vector_2 v2 =3D vertex(2)-vertex(0);=0A=
   return det2x2_by_formula(v1.x(), v1.y(), v2.x(), v2.y())/FT(2);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Orientation=0A=
 TriangleC2<R>::orientation() const=0A=
 {=0A=
   return CGAL::orientation(vertex(0), vertex(1), vertex(2));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Bounded_side=0A=
 TriangleC2<R>::=0A=
 bounded_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   Orientation o1 =3D CGAL::orientation(vertex(0), vertex(1), p),=0A=
               o2 =3D CGAL::orientation(vertex(1), vertex(2), p),=0A=
               o3 =3D CGAL::orientation(vertex(2), vertex(3), p);=0A=
 =0A=
   if (o2 =3D=3D o1 && o3 =3D=3D o1)=0A=
     return ON_BOUNDED_SIDE;=0A=
   return=0A=
      (o1 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(0), p, vertex(1))) ||=0A=
      (o2 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(1), p, vertex(2))) ||=0A=
      (o3 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(2), p, vertex(3)))=0A=
      ? ON_BOUNDARY=0A=
      : ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Oriented_side=0A=
 TriangleC2<R>::=0A=
 oriented_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
 =0A=
   Orientation o1 =3D CGAL::orientation(vertex(0), vertex(1), p),=0A=
               o2 =3D CGAL::orientation(vertex(1), vertex(2), p),=0A=
               o3 =3D CGAL::orientation(vertex(2), vertex(3), p),=0A=
               ot =3D CGAL::orientation(vertex(0), vertex(1), vertex(2));=0A=
 =0A=
   if (o1 =3D=3D ot && o2 =3D=3D ot && o3 =3D=3D ot)=0A=
     return Oriented_side(ot);=0A=
   return=0A=
      (o1 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(0), p, vertex(1))) ||=0A=
      (o2 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(1), p, vertex(2))) ||=0A=
      (o3 =3D=3D COLLINEAR=0A=
        && collinear_are_ordered_along_line(vertex(2), p, vertex(3)))=0A=
      ? ON_ORIENTED_BOUNDARY=0A=
      : Oriented_side(-ot);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 TriangleC2<R>::=0A=
 has_on_bounded_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 TriangleC2<R>::=0A=
 has_on_unbounded_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC2<R>::=0A=
 has_on_boundary(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC2<R>::=0A=
 has_on_negative_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC2<R>::=0A=
 has_on_positive_side(const typename TriangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC2<R>::is_degenerate() const=0A=
 {=0A=
   return collinear(vertex(0), vertex(1), vertex(2));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_2=0A=
 TriangleC2<R>::bbox() const=0A=
 {=0A=
   return vertex(0).bbox() + vertex(1).bbox() + vertex(2).bbox();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename TriangleC2<R>::Triangle_2=0A=
 TriangleC2<R>::opposite() const=0A=
 {=0A=
   return TriangleC2<R>(vertex(0), vertex(2), vertex(1));=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const TriangleC2<R> &t)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << t[0] << ' ' << t[1] << ' ' << t[2];=0A=
     case IO::BINARY :=0A=
         return os << t[0] << t[1] << t[2];=0A=
     default:=0A=
         return os<< "TriangleC2(" << t[0] << ", "=0A=
                  << t[1] << ", " << t[2] <<")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, TriangleC2<R> &t)=0A=
 {=0A=
     typename R::Point_2 p, q, r;=0A=
 =0A=
     is >> p >> q >> r;=0A=
 =0A=
     if (is)=0A=
         t =3D TriangleC2<R>(p, q, r);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 69 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_ >=0A=
 class CircleC2=0A=
   : public R_::Circle_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Circle_2 Circle_2;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Circle_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   CircleC2()=0A=
     : base() {}=0A=
 =0A=
   CircleC2(const Point_2 &center, const FT &squared_radius =3D FT(0),=0A=
            const Orientation &orient =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     ((( squared_radius >=3D FT(0) ) && ( orient !=3D =
 COLLINEAR))?(static_cast<void>(0)): ::CGAL::precondition_fail( "( =
 squared_radius >=3D FT(0) ) && ( orient !=3D COLLINEAR)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h", 76, 0));=0A=
 =0A=
 =0A=
     initialize_with(rep(center, squared_radius, orient));=0A=
   }=0A=
 =0A=
   CircleC2(const Point_2 &center, const Orientation &orient)=0A=
   {=0A=
     ((orient !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h", 83, 0));=0A=
 =0A=
     initialize_with(rep(center, FT(0), orient));=0A=
   }=0A=
 =0A=
   CircleC2(const Point_2 &p, const Point_2 &q,=0A=
            const Orientation &orient =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     ((orient !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h", 91, 0));=0A=
 =0A=
     if (p !=3D q) {=0A=
       Point_2 center =3D midpoint(p, q);=0A=
       initialize_with(rep(center, squared_distance(p, center), orient));=0A=
     } else=0A=
       initialize_with(rep(p, FT(0), orient));=0A=
   }=0A=
 =0A=
   CircleC2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A=
   {=0A=
     Orientation orient =3D CGAL::orientation(p, q, r);=0A=
     ((orient !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Circle_2.h", 103, 0));=0A=
 =0A=
     Point_2 center =3D circumcenter(p, q, r);=0A=
     initialize_with(rep(center, squared_distance(p, center), orient));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const CircleC2 &s) const;=0A=
   bool operator!=3D(const CircleC2 &s) const;=0A=
 =0A=
   const Point_2 & center() const=0A=
   {=0A=
    return Ptr()->first;=0A=
   }=0A=
 =0A=
   const FT & squared_radius() const=0A=
   {=0A=
    return Ptr()->second;=0A=
   }=0A=
 =0A=
   Orientation orientation() const=0A=
   {=0A=
    return Ptr()->third;=0A=
   }=0A=
 =0A=
   Circle_2 opposite() const;=0A=
 =0A=
   Circle_2 orthogonal_transform(const Aff_transformation_2 &t) const;=0A=
 =0A=
   Oriented_side oriented_side(const Point_2 &p) const;=0A=
   Bounded_side bounded_side(const Point_2 &p) const;=0A=
 =0A=
   bool has_on_boundary(const Point_2 &p) const;=0A=
   bool has_on_negative_side(const Point_2 &p) const;=0A=
   bool has_on_positive_side(const Point_2 &p) const;=0A=
 =0A=
   bool has_on_bounded_side(const Point_2 &p) const;=0A=
   bool has_on_unbounded_side(const Point_2 &p) const;=0A=
 =0A=
   bool is_degenerate() const;=0A=
 =0A=
   Bbox_2 bbox() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::operator=3D=3D(const CircleC2<R> &c) const=0A=
 {=0A=
   if (identical(c))=0A=
       return true;=0A=
   return center() =3D=3D c.center() &&=0A=
          squared_radius() =3D=3D c.squared_radius() &&=0A=
          orientation() =3D=3D c.orientation();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::operator!=3D(const CircleC2<R> &c) const=0A=
 {=0A=
   return !(*this =3D=3D c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Oriented_side=0A=
 CircleC2<R>::=0A=
 oriented_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return Oriented_side(bounded_side(p) * orientation());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bounded_side=0A=
 CircleC2<R>::=0A=
 bounded_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return Bounded_side(CGAL::NTS:: compare(squared_radius(),=0A=
                                        squared_distance(center(),p)));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::=0A=
 has_on_boundary(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::=0A=
 has_on_bounded_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::=0A=
 has_on_unbounded_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::=0A=
 has_on_negative_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   if (orientation() =3D=3D COUNTERCLOCKWISE)=0A=
     return has_on_unbounded_side(p);=0A=
   return has_on_bounded_side(p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::=0A=
 has_on_positive_side(const typename CircleC2<R>::Point_2 &p) const=0A=
 {=0A=
   if (orientation() =3D=3D COUNTERCLOCKWISE)=0A=
     return has_on_bounded_side(p);=0A=
   return has_on_unbounded_side(p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 CircleC2<R>::is_degenerate() const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(squared_radius());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename CircleC2<R>::Circle_2=0A=
 CircleC2<R>::opposite() const=0A=
 {=0A=
   return CircleC2<R>(center(),=0A=
                                squared_radius(),=0A=
                                CGAL::opposite(orientation()) );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_2=0A=
 CircleC2<R>::bbox() const=0A=
 {=0A=
 =0A=
   double cx =3D CGAL::to_double(center().x());=0A=
   double cy =3D CGAL::to_double(center().y());=0A=
   double radius =3D CGAL::sqrt(CGAL::to_double(squared_radius()));=0A=
 =0A=
   return Bbox_2(cx - radius, cy - radius, cx + radius, cy + radius);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename CircleC2<R>::Circle_2=0A=
 CircleC2<R>::orthogonal_transform=0A=
   (const typename CircleC2<R>::Aff_transformation_2 &t) const=0A=
 {=0A=
   typename R::Vector_2 vec(FT(1), FT(0) );=0A=
   vec =3D vec.transform(t);=0A=
   FT sq_scale =3D vec.squared_length();=0A=
 =0A=
   return CircleC2<R>(t.transform(center()),=0A=
                                sq_scale * squared_radius(),=0A=
                                t.is_even() ? orientation()=0A=
                                            : =
 CGAL::opposite(orientation()));=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const CircleC2<R> &c)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         os << c.center() << ' ' << c.squared_radius() << ' '=0A=
            << static_cast<int>(c.orientation());=0A=
         break;=0A=
     case IO::BINARY :=0A=
         os << c.center();=0A=
         write(os, c.squared_radius());=0A=
         write(os, static_cast<int>(c.orientation()));=0A=
         break;=0A=
     default:=0A=
         os << "CircleC2(" << c.center() << ", " << c.squared_radius() ;=0A=
         switch (c.orientation()) {=0A=
         case CLOCKWISE:=0A=
             os << ", clockwise)";=0A=
             break;=0A=
         case COUNTERCLOCKWISE:=0A=
             os << ", counterclockwise)";=0A=
             break;=0A=
         default:=0A=
             os << ", collinear)";=0A=
             break;=0A=
         }=0A=
         break;=0A=
     }=0A=
     return os;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 std::istream&=0A=
 operator>>(std::istream &is, CircleC2<R> &c)=0A=
 {=0A=
     typename R::Point_2 center;=0A=
     typename R::FT squared_radius;=0A=
     int o;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> center >> squared_radius >> o;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         is >> center;=0A=
         read(is, squared_radius);=0A=
         is >> o;=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         c =3D CircleC2<R>(center, squared_radius,=0A=
                                   static_cast<Orientation>(o));=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 70 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_rectangle_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_rectangle_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class Iso_rectangleC2=0A=
   : public R_::Iso_rectangle_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Iso_rectangle_2 Iso_rectangle_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   typedef typename R_::Iso_rectangle_handle_2 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Iso_rectangleC2()=0A=
     : base(rep()) {}=0A=
 =0A=
   Iso_rectangleC2(const Point_2 &p, const Point_2 &q)=0A=
   {=0A=
     FT minx, maxx, miny, maxy;=0A=
     if (p.x() < q.x()) { minx =3D p.x(); maxx =3D q.x(); }=0A=
     else { minx =3D q.x(); maxx =3D p.x(); }=0A=
     if (p.y() < q.y()) { miny =3D p.y(); maxy =3D q.y(); }=0A=
     else { miny =3D q.y(); maxy =3D p.y(); }=0A=
     initialize_with(rep(Point_2(minx, miny),=0A=
                         Point_2(maxx, maxy)));=0A=
   }=0A=
 =0A=
   Iso_rectangleC2(const FT& min_x, const FT& min_y,=0A=
                   const FT& max_x, const FT& max_y)=0A=
   {=0A=
     initialize_with(rep(Point_2(min_x, min_y),=0A=
                         Point_2(max_x, max_y)));=0A=
   }=0A=
 =0A=
   Iso_rectangleC2(const FT& min_hx, const FT& min_hy,=0A=
                   const FT& max_hx, const FT& max_hy, const FT& hw)=0A=
   {=0A=
     if (hw =3D=3D FT(1))=0A=
        initialize_with(rep(Point_2(min_hx, min_hy),=0A=
                            Point_2(max_hx, max_hy)));=0A=
     else=0A=
        initialize_with(rep(Point_2(min_hx/hw, min_hy/hw),=0A=
                            Point_2(max_hx/hw, max_hy/hw)));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const Iso_rectangleC2 &s) const;=0A=
   bool operator!=3D(const Iso_rectangleC2 &s) const;=0A=
 =0A=
   const Point_2 & min() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const Point_2 & max() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   Point_2 vertex(int i) const;=0A=
   Point_2 operator[](int i) const;=0A=
 =0A=
   Iso_rectangle_2 transform(const Aff_transformation_2 &t) const=0A=
   {=0A=
 =0A=
 =0A=
     return Iso_rectangleC2<R>(t.transform(vertex(0)), =
 t.transform(vertex(2)));=0A=
   }=0A=
 =0A=
   Bounded_side bounded_side(const Point_2 &p) const;=0A=
   bool has_on_boundary(const Point_2 &p) const;=0A=
   bool has_on_bounded_side(const Point_2 &p) const;=0A=
   bool has_on_unbounded_side(const Point_2 &p) const;=0A=
 =0A=
   bool is_degenerate() const;=0A=
 =0A=
   Bbox_2 bbox() const;=0A=
 =0A=
   const FT & xmin() const;=0A=
   const FT & ymin() const;=0A=
   const FT & xmax() const;=0A=
   const FT & ymax() const;=0A=
   const FT & min_coord(int i) const;=0A=
   const FT & max_coord(int i) const;=0A=
 =0A=
   FT area() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::=0A=
 operator=3D=3D(const Iso_rectangleC2<R> &r) const=0A=
 {=0A=
   if (identical(r))=0A=
       return true;=0A=
   return vertex(0) =3D=3D r.vertex(0) && vertex(2) =3D=3D r.vertex(2);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::=0A=
 operator!=3D(const Iso_rectangleC2<R> &r) const=0A=
 {=0A=
   return !(*this =3D=3D r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::xmin() const=0A=
 {=0A=
   return min().x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::ymin() const=0A=
 {=0A=
   return min().y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::xmax() const=0A=
 {=0A=
   return max().x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::ymax() const=0A=
 {=0A=
   return max().y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::min_coord(int i) const=0A=
 {=0A=
   ((i =3D=3D 0 || i =3D=3D 1)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_rectangle_2.h", 200, 0));=0A=
   if (i =3D=3D 0)=0A=
      return xmin();=0A=
   else=0A=
      return ymin();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_rectangleC2<R>::FT &=0A=
 Iso_rectangleC2<R>::max_coord(int i) const=0A=
 {=0A=
   ((i =3D=3D 0 || i =3D=3D 1)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_rectangle_2.h", 212, 0));=0A=
   if (i =3D=3D 0)=0A=
      return xmax();=0A=
   else=0A=
      return ymax();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename Iso_rectangleC2<R>::Point_2=0A=
 Iso_rectangleC2<R>::vertex(int i) const=0A=
 {=0A=
   switch (i%4) {=0A=
   case 0: return min();=0A=
   case 1: return Point_2(xmax(), ymin());=0A=
   case 2: return max();=0A=
   default: return Point_2(xmin(), ymax());=0A=
   }=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Iso_rectangleC2<R>::Point_2=0A=
 Iso_rectangleC2<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Iso_rectangleC2<R>::FT=0A=
 Iso_rectangleC2<R>::area() const=0A=
 {=0A=
   return (xmax()-xmin()) * (ymax()-ymin());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Bounded_side=0A=
 Iso_rectangleC2<R>::=0A=
 bounded_side(const typename Iso_rectangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   bool x_incr =3D (xmin() < p.x()) && (p.x() < xmax()),=0A=
        y_incr =3D (ymin() < p.y()) && (p.y() < ymax());=0A=
   if (x_incr)=0A=
     {=0A=
       if (y_incr)=0A=
           return ON_BOUNDED_SIDE;=0A=
       if ( (p.y() =3D=3D ymin()) || (ymax() =3D=3D p.y()) )=0A=
           return ON_BOUNDARY;=0A=
     }=0A=
   if ( (p.x() =3D=3D xmin()) || (xmax() =3D=3D p.x()) )=0A=
       if ( y_incr || (p.y() =3D=3D ymin()) || (ymax() =3D=3D p.y()) )=0A=
           return ON_BOUNDARY;=0A=
 =0A=
   return ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::=0A=
 has_on_boundary(const typename Iso_rectangleC2<R>::Point_2 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::=0A=
 has_on_bounded_side(const typename Iso_rectangleC2<R>::Point_2 &p)=0A=
     const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::=0A=
 has_on_unbounded_side(const typename Iso_rectangleC2<R>::Point_2 &p)=0A=
     const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_rectangleC2<R>::is_degenerate() const=0A=
 {=0A=
   return (xmin() =3D=3D xmax()) || (ymin() =3D=3D ymax());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_2=0A=
 Iso_rectangleC2<R>::bbox() const=0A=
 {=0A=
   return Bbox_2(CGAL::to_double(xmin()), CGAL::to_double(ymin()),=0A=
                 CGAL::to_double(xmax()), CGAL::to_double(ymax()));=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const Iso_rectangleC2<R> &r)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << r[0] << ' ' << r[2];=0A=
     case IO::BINARY :=0A=
         return os << r[0] << r[2];=0A=
     default:=0A=
         return os << "Iso_rectangleC2(" << r[0] << ", " << r[2] << ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 =0A=
 std::istream &=0A=
 operator>>(std::istream &is, Iso_rectangleC2<R> &r)=0A=
 {=0A=
     typename R::Point_2 p, q;=0A=
 =0A=
     is >> p >> q;=0A=
 =0A=
     if (is)=0A=
         r =3D Iso_rectangleC2<R>(p, q);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 71 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Identity_transformation;=0A=
 template < class R > class Aff_transformation_rep_baseC2;=0A=
 template < class R > class Aff_transformation_repC2;=0A=
 template < class R > class Translation_repC2;=0A=
 template < class R > class Rotation_repC2;=0A=
 template < class R > class Scaling_repC2;=0A=
 =0A=
 }=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_rep_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_rep_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Aff_transformation_rep_baseC2=0A=
   : public Ref_counted_virtual=0A=
 {=0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef typename R::Point_2 Point_2;=0A=
   typedef typename R::Vector_2 Vector_2;=0A=
   typedef typename R::Direction_2 Direction_2;=0A=
   typedef typename R::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   virtual ~Aff_transformation_rep_baseC2() {}=0A=
 =0A=
   virtual Point_2 transform(const Point_2 &p) const =3D 0;=0A=
   virtual Vector_2 transform(const Vector_2 &v) const =3D 0;=0A=
   virtual Direction_2 transform(const Direction_2 &d) const=3D0;=0A=
 =0A=
   virtual Aff_transformation_2 operator*(=0A=
                        const Aff_transformation_rep_baseC2 &t) const =3D =
 0;=0A=
 =0A=
   virtual Aff_transformation_2 compose(=0A=
                        const Aff_transformation_repC2<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_2 compose(=0A=
                        const Translation_repC2<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_2 compose(=0A=
                        const Rotation_repC2<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_2 compose(=0A=
                        const Scaling_repC2<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_2 inverse() const =3D 0;=0A=
   virtual bool is_even() const =3D 0;=0A=
   virtual FT cartesian(int i, int j) const =3D 0;=0A=
   virtual std::ostream &print(std::ostream &os) const =3D 0;=0A=
 };=0A=
 =0A=
 template < class R >=0A=
 class Aff_transformation_repC2=0A=
   : public Aff_transformation_rep_baseC2<R>=0A=
 {=0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef Aff_transformation_repC2<R> Self;=0A=
   typedef Aff_transformation_rep_baseC2<R> Aff_t_base;=0A=
   typedef typename Aff_t_base::Point_2 Point_2;=0A=
   typedef typename Aff_t_base::Vector_2 Vector_2;=0A=
   typedef typename Aff_t_base::Direction_2 Direction_2;=0A=
   typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
 friend class Translation_repC2<R>;=0A=
 friend class Rotation_repC2<R>;=0A=
 friend class Scaling_repC2<R>;=0A=
 =0A=
   Aff_transformation_repC2()=0A=
   {}=0A=
 =0A=
   Aff_transformation_repC2( const FT& m11, const FT& m12,=0A=
                             const FT& m21, const FT& m22)=0A=
     : t11(m11), t12(m12), t13(0),=0A=
       t21(m21), t22(m22), t23(0)=0A=
   {}=0A=
 =0A=
   Aff_transformation_repC2( const FT& m11, const FT& m12, const FT& m13,=0A=
                             const FT& m21, const FT& m22, const FT& m23)=0A=
     : t11(m11), t12(m12), t13(m13),=0A=
       t21(m21), t22(m22), t23(m23)=0A=
   {}=0A=
 =0A=
   Point_2 transform(const Point_2& p) const=0A=
   {=0A=
     return Point_2(t11 * p.x() + t12 * p.y() + t13,=0A=
                    t21 * p.x() + t22 * p.y() + t23);=0A=
   }=0A=
 =0A=
 =0A=
   Vector_2 transform(const Vector_2& v) const=0A=
   {=0A=
     return Vector_2(t11 * v.x() + t12 * v.y(),=0A=
                     t21 * v.x() + t22 * v.y());=0A=
   }=0A=
 =0A=
 =0A=
   Direction_2 transform(const Direction_2& dir) const=0A=
   {=0A=
     Vector_2 v =3D dir.to_vector();=0A=
     return Direction_2(t11 * v.x() + t12 * v.y(),=0A=
                        t21 * v.x() + t22 * v.y());=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   Aff_transformation_2 inverse() const;=0A=
   Aff_transformation_2 operator*(const Aff_t_base &t) const;=0A=
   Aff_transformation_2 compose(const Self &t) const;=0A=
   Aff_transformation_2 compose(const Translation_repC2<R> &t) const;=0A=
   Aff_transformation_2 compose(const Rotation_repC2<R> &t) const;=0A=
   Aff_transformation_2 compose(const Scaling_repC2<R> &t) const;=0A=
 =0A=
   bool is_even() const=0A=
   {=0A=
     return sign_of_determinant2x2(t11, t12, t21, t22) =3D=3D POSITIVE;=0A=
   }=0A=
 =0A=
   FT cartesian(int i, int j) const=0A=
   {=0A=
     switch (i)=0A=
     {=0A=
     case 0: switch (j)=0A=
             {=0A=
               case 0: return t11;=0A=
               case 1: return t12;=0A=
               case 2: return t13;=0A=
             }=0A=
     case 1: switch (j)=0A=
             {=0A=
               case 0: return t21;=0A=
               case 1: return t22;=0A=
               case 2: return t23;=0A=
             }=0A=
     case 2: switch (j)=0A=
             {=0A=
               case 0: return FT(0);=0A=
               case 1: return FT(0);=0A=
               case 2: return FT(1);=0A=
             }=0A=
     }=0A=
     return FT(0);=0A=
   }=0A=
 =0A=
   std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     os <<"Aff_transformationC2(" <<t11<<" "<<t12<<" "<<t13<<std::endl;=0A=
     os <<"                     " <<t21<<" "<<t22<<" "<<t23<<")";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
     FT t11, t12, t13;=0A=
     FT t21, t22, t23;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 inverse() const=0A=
 {=0A=
   FT det =3D FT(1) / (t11 * t22 - t12 * t21);=0A=
   return Aff_transformation_2(=0A=
     det * t22, det * (-t12), det * (t12*t23-t13*t22),=0A=
     det * (-t21), det * t11 , det * (t13*t21-t11*t23));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 operator*(const Aff_transformation_rep_baseC2<R> &t) const=0A=
 {=0A=
   return t.compose(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 compose(const Aff_transformation_repC2<R> &t) const=0A=
 {=0A=
   return Aff_transformation_2(t.t11*t11 + t.t12*t21,=0A=
                               t.t11*t12 + t.t12*t22,=0A=
                               t.t11*t13 + t.t12*t23 + t.t13,=0A=
                               t.t21*t11 + t.t22*t21,=0A=
                               t.t21*t12 + t.t22*t22,=0A=
                               t.t21*t13 + t.t22*t23 + t.t23 );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 compose(const Translation_repC2<R> &t) const=0A=
 {=0A=
   return Aff_transformation_2(t11,=0A=
                               t12,=0A=
                               t13 + t.translationvector_.x(),=0A=
                               t21,=0A=
                               t22,=0A=
                               t23 + t.translationvector_.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 compose(const Rotation_repC2<R> &t) const=0A=
 {=0A=
   return Aff_transformation_2(t.cosinus_*t11 - t.sinus_*t21,=0A=
                               t.cosinus_*t12 - t.sinus_*t22,=0A=
                               t.cosinus_*t13 - t.sinus_*t23,=0A=
                               t.sinus_*t11 + t.cosinus_*t21,=0A=
                               t.sinus_*t12 + t.cosinus_*t22,=0A=
                               t.sinus_*t13 + t.cosinus_*t23);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC2<R>::Aff_transformation_2=0A=
 Aff_transformation_repC2<R>::=0A=
 compose(const Scaling_repC2<R> &t) const=0A=
 {=0A=
    return Aff_transformation_2(t.scalefactor_ * t11,=0A=
                                t.scalefactor_ * t12,=0A=
                                t.scalefactor_ * t13,=0A=
                                t.scalefactor_ * t21,=0A=
                                t.scalefactor_ * t22,=0A=
                                t.scalefactor_ * t23);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Translation_rep_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Translation_rep_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Translation_repC2 : public Aff_transformation_rep_baseC2<R>=0A=
 {=0A=
 friend class Aff_transformation_repC2<R>;=0A=
 friend class Rotation_repC2<R>;=0A=
 friend class Scaling_repC2<R>;=0A=
 =0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef Aff_transformation_rep_baseC2<R> Aff_t_base;=0A=
   typedef Aff_transformation_repC2<R> Transformation;=0A=
   typedef Translation_repC2<R> Translation;=0A=
   typedef Rotation_repC2<R> Rotation;=0A=
   typedef Scaling_repC2<R> Scaling;=0A=
   typedef typename Aff_t_base::Point_2 Point_2;=0A=
   typedef typename Aff_t_base::Vector_2 Vector_2;=0A=
   typedef typename Aff_t_base::Direction_2 Direction_2;=0A=
   typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
   Translation_repC2()=0A=
   {}=0A=
 =0A=
   Translation_repC2(const Vector_2 &tv)=0A=
     : translationvector_(tv)=0A=
   {}=0A=
 =0A=
   Point_2 transform(const Point_2 &p) const=0A=
                             { return p + translationvector_; }=0A=
   Vector_2 transform(const Vector_2 &v) const { return v; }=0A=
   Direction_2 transform(const Direction_2 &d) const { return d; }=0A=
 =0A=
   Aff_transformation_2 operator*(const Aff_t_base &t) const=0A=
   {=0A=
     return t.compose(*this);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Translation &t) const=0A=
   {=0A=
     return Aff_transformation_2(TRANSLATION,=0A=
                                 translationvector_ + =
 t.translationvector_);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Rotation &t) const=0A=
   {=0A=
     return Aff_transformation_2(t.cosinus_,=0A=
                                 -t.sinus_,=0A=
                                 t.cosinus_*translationvector_.x() -=0A=
                                 t.sinus_*translationvector_.y(),=0A=
 =0A=
                                 t.sinus_,=0A=
                                 t.cosinus_,=0A=
                                 t.sinus_*translationvector_.x() +=0A=
                                 t.cosinus_*translationvector_.y());=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Scaling &t) const=0A=
   {=0A=
     return Aff_transformation_2(t.scalefactor_,=0A=
                                 FT(0),=0A=
                                 t.scalefactor_*translationvector_.x(),=0A=
 =0A=
                                 FT(0),=0A=
                                 t.scalefactor_,=0A=
                                 t.scalefactor_*translationvector_.y());=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Transformation &t) const=0A=
   {=0A=
     return Aff_transformation_2(t.t11,=0A=
                                 t.t12,=0A=
                                 t.t11 * translationvector_.x()=0A=
                                 + t.t12 * translationvector_.y()=0A=
                                 + t.t13,=0A=
 =0A=
                                 t.t21,=0A=
                                 t.t22,=0A=
                                 t.t21 * translationvector_.x()=0A=
                                 + t.t22*translationvector_.y()=0A=
                                 + t.t23);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 inverse() const=0A=
   {=0A=
     return Aff_transformation_2(TRANSLATION, - translationvector_);=0A=
   }=0A=
 =0A=
   bool is_even() const=0A=
   {=0A=
     return true;=0A=
   }=0A=
 =0A=
   FT cartesian(int i, int j) const=0A=
   {=0A=
     if (j=3D=3Di) return FT(1);=0A=
     if (j=3D=3D2) return translationvector_[i];=0A=
     return FT(0);=0A=
   }=0A=
 =0A=
   std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     os << "Aff_transformationC2(VectorC2(" << translationvector_.x() << =
 ", "=0A=
        << translationvector_.y() << "))";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   Vector_2 translationvector_;=0A=
 };=0A=
 =0A=
 }=0A=
 # 64 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Rotation_rep_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Rotation_rep_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class NT >=0A=
 void=0A=
 rational_rotation_approximation( const NT & dirx,=0A=
                                  const NT & diry,=0A=
                                        NT & sin_num,=0A=
                                        NT & cos_num,=0A=
                                        NT & denom,=0A=
                                  const NT & eps_num,=0A=
                                  const NT & eps_den )=0A=
 {=0A=
 =0A=
   using std::swap;=0A=
 =0A=
 =0A=
   const NT& n =3D eps_num;=0A=
   const NT& d =3D eps_den;=0A=
   const NT NT0 =3D NT(0) ;=0A=
   const NT NT1 =3D NT(1) ;=0A=
   ((n > NT0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "n > =
 NT0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h", 73, 0));=0A=
   ((d > NT0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "d > =
 NT0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h", 74, 0));=0A=
   NT & sin =3D sin_num;=0A=
   NT & cos =3D cos_num;=0A=
   NT & den =3D denom;=0A=
   NT dx =3D CGAL::NTS:: abs(dirx);=0A=
   NT dy =3D CGAL::NTS:: abs(diry);=0A=
   NT sq_hypotenuse =3D dx*dx + dy*dy;=0A=
   NT common_part;=0A=
   NT diff_part;=0A=
   NT rhs;=0A=
   bool lower_ok;=0A=
   bool upper_ok;=0A=
 =0A=
   if (dy > dx)=0A=
   {=0A=
      swap (dx,dy);=0A=
   }=0A=
 =0A=
 =0A=
   if (dy * dy * d * d < sq_hypotenuse * n * n)=0A=
   {=0A=
       cos =3D NT1;=0A=
       sin =3D NT0;=0A=
       den =3D NT1;=0A=
   }=0A=
   else=0A=
   {=0A=
       NT p;=0A=
       NT q;=0A=
       NT p0 =3D NT0;=0A=
       NT q0 =3D NT1;=0A=
       NT p1 =3D NT1;=0A=
       NT q1 =3D NT1;=0A=
 =0A=
       for(;;)=0A=
       {=0A=
           p =3D p0 + p1;=0A=
           q =3D q0 + q1;=0A=
           sin =3D NT(2)*p*q;=0A=
           den =3D p*p + q*q;=0A=
 # 123 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h"=0A=
           common_part =3D (sin*sin*d*d + n*n*den*den)*sq_hypotenuse;=0A=
           diff_part =3D NT(2)*n*sin*d*den*sq_hypotenuse;=0A=
           rhs =3D dy*dy*d*d*den*den;=0A=
 =0A=
           upper_ok =3D (common_part - diff_part < rhs);=0A=
           lower_ok =3D (common_part + diff_part > rhs);=0A=
 =0A=
           if ( lower_ok && upper_ok )=0A=
           {=0A=
 # 140 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h"=0A=
                     cos =3D q*q - p*p;=0A=
 =0A=
 =0A=
              break;=0A=
           }=0A=
           else=0A=
           {=0A=
 =0A=
               if ( dy*dy*den*den < sin*sin*sq_hypotenuse )=0A=
               {=0A=
                   p1 =3D p;=0A=
                   q1 =3D q;=0A=
               }=0A=
               else=0A=
               {=0A=
                   p0 =3D p;=0A=
                   q0 =3D q;=0A=
               }=0A=
           }=0A=
       }=0A=
   }=0A=
   dx =3D dirx;=0A=
   dy =3D diry;=0A=
 =0A=
 =0A=
   if (dy > dx ) { swap (sin,cos); }=0A=
 =0A=
   if (dx < NT0) { cos =3D - cos; }=0A=
 =0A=
   if (dy < NT0) { sin =3D - sin; }=0A=
 =0A=
   sin_num =3D sin;=0A=
   cos_num =3D cos;=0A=
   denom =3D den;=0A=
 }=0A=
 =0A=
 =0A=
 template < class NT >=0A=
 void=0A=
 rational_rotation_approximation( const double& angle,=0A=
                                             NT & sin_num,=0A=
                                             NT & cos_num,=0A=
                                             NT & denom,=0A=
                                       const NT & eps_num,=0A=
                                       const NT & eps_den )=0A=
 {=0A=
 =0A=
   using std::swap;=0A=
 =0A=
 =0A=
   const NT& n =3D eps_num;=0A=
   const NT& d =3D eps_den;=0A=
   const NT NT0 =3D NT(0) ;=0A=
   const NT NT1 =3D NT(1) ;=0A=
   ((n > NT0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "n > =
 NT0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h", 194, 0));=0A=
   ((d > NT0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "d > =
 NT0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h", 195, 0));=0A=
   NT& isin =3D sin_num;=0A=
   NT& icos =3D cos_num;=0A=
   NT& iden =3D denom;=0A=
   double dsin =3D sin(angle);=0A=
   double dcos =3D cos(angle);=0A=
   double dn =3D CGAL::to_double(n);=0A=
   double dd =3D CGAL::to_double(d);=0A=
   double eps =3D dn / dd;=0A=
   dsin =3D CGAL::NTS:: abs( dsin);=0A=
   dcos =3D CGAL::NTS:: abs( dcos);=0A=
   NT common_part;=0A=
   NT diff_part;=0A=
   NT os;=0A=
   bool lower_ok;=0A=
   bool upper_ok;=0A=
   bool swapped =3D false;=0A=
 =0A=
   if (dsin > dcos)=0A=
   {=0A=
      swapped =3D true;=0A=
      swap (dsin,dcos);=0A=
   }=0A=
   if ( dsin < eps )=0A=
   {=0A=
       icos =3D NT1;=0A=
       isin =3D NT0;=0A=
       iden =3D NT1;=0A=
   }=0A=
   else=0A=
   {=0A=
       NT p;=0A=
       NT q;=0A=
       NT p0 =3D NT0;=0A=
       NT q0 =3D NT1;=0A=
       NT p1 =3D NT1;=0A=
       NT q1 =3D NT1;=0A=
 =0A=
       for(;;)=0A=
       {=0A=
           p =3D p0 + p1;=0A=
           q =3D q0 + q1;=0A=
           isin =3D NT(2)*p*q;=0A=
           iden =3D p*p + q*q;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
           os =3D CGAL::to_double(isin);=0A=
           diff_part =3D eps * CGAL::to_double(iden);=0A=
           common_part =3D dsin * CGAL::to_double(iden);=0A=
 =0A=
           upper_ok =3D (common_part - diff_part < os);=0A=
           lower_ok =3D (os < common_part + diff_part);=0A=
 =0A=
           if ( lower_ok && upper_ok )=0A=
           {=0A=
 # 262 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra=
 tional_rotation.h"=0A=
                     icos =3D q*q - p*p;=0A=
 =0A=
 =0A=
              break;=0A=
           }=0A=
           else=0A=
           {=0A=
 =0A=
               if ( dsin * CGAL::to_double(iden) < CGAL::to_double(isin) )=0A=
               {=0A=
                   p1 =3D p;=0A=
                   q1 =3D q;=0A=
               }=0A=
               else=0A=
               {=0A=
                   p0 =3D p;=0A=
                   q0 =3D q;=0A=
               }=0A=
           }=0A=
       }=0A=
   }=0A=
 =0A=
   if ( swapped ) { swap (isin,icos); }=0A=
 =0A=
   dsin =3D sin( angle);=0A=
   dcos =3D cos( angle);=0A=
   if (dcos < 0.0) { icos =3D - icos; }=0A=
   if (dsin < 0.0) { isin =3D - isin; }=0A=
 =0A=
   sin_num =3D isin;=0A=
   cos_num =3D icos;=0A=
   denom =3D iden;=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Rotation_rep_2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Rotation_repC2: public Aff_transformation_rep_baseC2<R>=0A=
 {=0A=
 friend class Aff_transformation_repC2<R>;=0A=
 friend class Translation_repC2<R>;=0A=
 friend class Scaling_repC2<R>;=0A=
 =0A=
 public:=0A=
   typedef Aff_transformation_rep_baseC2<R> Aff_t_base;=0A=
   typedef typename Aff_t_base::FT FT;=0A=
   typedef typename Aff_t_base::Point_2 Point_2;=0A=
   typedef typename Aff_t_base::Vector_2 Vector_2;=0A=
   typedef typename Aff_t_base::Direction_2 Direction_2;=0A=
   typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A=
   typedef Aff_transformation_repC2<R> Transformation;=0A=
   typedef Translation_repC2<R> Translation;=0A=
   typedef Rotation_repC2<R> Rotation;=0A=
   typedef Scaling_repC2<R> Scaling;=0A=
 =0A=
   Rotation_repC2() {}=0A=
 =0A=
   Rotation_repC2(const FT &sinus, const FT &cosinus)=0A=
     : sinus_(sinus), cosinus_(cosinus) {}=0A=
 =0A=
   Rotation_repC2(const Direction_2 &d,=0A=
                  const FT &eps_num,=0A=
                  const FT &eps_den =3D FT(1))=0A=
   {=0A=
     FT sin_num;=0A=
     FT cos_num;=0A=
     FT denom;=0A=
 =0A=
     rational_rotation_approximation(d.to_vector().x(),=0A=
                                     d.to_vector().y(),=0A=
                                     sin_num,=0A=
                                     cos_num,=0A=
                                     denom,=0A=
                                     eps_num,=0A=
                                     eps_den);=0A=
     sinus_ =3D sin_num/denom;=0A=
     cosinus_ =3D cos_num/denom;=0A=
   }=0A=
 =0A=
   Point_2 transform(const Point_2 &p) const=0A=
   {=0A=
     return Point_2(cosinus_ * p.x() - sinus_ * p.y(),=0A=
                    sinus_ * p.x() + cosinus_ * p.y());=0A=
   }=0A=
 =0A=
   Vector_2 transform(const Vector_2 &v) const=0A=
   {=0A=
     return Vector_2(cosinus_ * v.x() - sinus_ * v.y(),=0A=
                     sinus_ * v.x() + cosinus_ * v.y());=0A=
   }=0A=
 =0A=
   Direction_2 transform(const Direction_2 &d) const=0A=
   {=0A=
     Vector_2 v =3D d.to_vector();=0A=
     return Direction_2(cosinus_ * v.x() - sinus_ * v.y(),=0A=
                        sinus_ * v.x() + cosinus_ * v.y());=0A=
   }=0A=
 =0A=
   Aff_transformation_2 inverse() const=0A=
   {=0A=
     return Aff_transformation_2(ROTATION, - sinus_, cosinus_, FT(1));=0A=
   }=0A=
 =0A=
   Aff_transformation_2 operator*(const Aff_t_base &t) const=0A=
   {=0A=
     return t.compose(*this);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Translation &t) const=0A=
   {=0A=
     return Aff_transformation_2(cosinus_,=0A=
                                 -sinus_,=0A=
                                 t.translationvector_.x(),=0A=
                                 sinus_,=0A=
                                 cosinus_,=0A=
                                 t.translationvector_.y());=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Rotation &t) const=0A=
   {=0A=
     return Aff_transformation_2(ROTATION,=0A=
                                 t.sinus_*cosinus_ + t.cosinus_*sinus_,=0A=
                                 t.cosinus_*cosinus_-t.sinus_*sinus_ );=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Scaling &t) const=0A=
   {=0A=
     return Aff_transformation_2(t.scalefactor_*cosinus_,=0A=
                                 t.scalefactor_*-sinus_,=0A=
                                 t.scalefactor_*sinus_,=0A=
                                 t.scalefactor_*cosinus_);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Transformation &t) const=0A=
   {=0A=
     return Aff_transformation_2(cosinus_*t.t11 + sinus_*t.t12,=0A=
                                 -sinus_*t.t11 + cosinus_*t.t12,=0A=
                                 t.t13,=0A=
                                 cosinus_*t.t21 + sinus_*t.t22,=0A=
                                 -sinus_*t.t21 + cosinus_*t.t22,=0A=
                                 t.t23);=0A=
   }=0A=
 =0A=
   bool is_even() const=0A=
   {=0A=
     return true;=0A=
   }=0A=
 =0A=
   FT cartesian(int i, int j) const=0A=
   {=0A=
     switch (i)=0A=
     {=0A=
     case 0: switch (j)=0A=
             {=0A=
               case 0: return cosinus_;=0A=
               case 1: return -sinus_;=0A=
               case 2: return FT(0);=0A=
             }=0A=
     case 1: switch (j)=0A=
             {=0A=
               case 0: return sinus_;=0A=
               case 1: return cosinus_;=0A=
               case 2: return FT(0);=0A=
             }=0A=
     case 2: switch (j)=0A=
             {=0A=
               case 0: return FT(0);=0A=
               case 1: return FT(0);=0A=
               case 2: return FT(1);=0A=
             }=0A=
     }=0A=
     return FT(0);=0A=
   }=0A=
 =0A=
   std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     os << "Aff_transformationC2(" << sinus_ << ", " << cosinus_ << ")";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   FT sinus_, cosinus_;=0A=
 };=0A=
 =0A=
 }=0A=
 # 65 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Scaling_rep_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Scaling_rep_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Scaling_repC2: public Aff_transformation_rep_baseC2<R>=0A=
 {=0A=
 friend class Aff_transformation_repC2<R>;=0A=
 friend class Translation_repC2<R>;=0A=
 friend class Rotation_repC2<R>;=0A=
 =0A=
 public:=0A=
   typedef Aff_transformation_rep_baseC2<R> Aff_t_base;=0A=
   typedef typename Aff_t_base::FT FT;=0A=
   typedef typename Aff_t_base::Point_2 Point_2;=0A=
   typedef typename Aff_t_base::Vector_2 Vector_2;=0A=
   typedef typename Aff_t_base::Direction_2 Direction_2;=0A=
   typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A=
   typedef Aff_transformation_repC2<R> Transformation;=0A=
   typedef Translation_repC2<R> Translation;=0A=
   typedef Rotation_repC2<R> Rotation;=0A=
   typedef Scaling_repC2<R> Scaling;=0A=
 =0A=
   Scaling_repC2()=0A=
   {}=0A=
 =0A=
   Scaling_repC2(const FT &scalefactor) :=0A=
     scalefactor_(scalefactor)=0A=
   {}=0A=
 =0A=
   ~Scaling_repC2()=0A=
   {}=0A=
 =0A=
   Point_2 transform(const Point_2 &p) const=0A=
   {=0A=
     return Point_2(scalefactor_ * p.x(), scalefactor_ * p.y());=0A=
   }=0A=
 =0A=
   Vector_2 transform(const Vector_2 &p) const=0A=
   {=0A=
     return Vector_2(scalefactor_ * p.x(), scalefactor_ * p.y());=0A=
   }=0A=
 =0A=
   Direction_2 transform(const Direction_2 &d) const=0A=
   {=0A=
     return d;=0A=
   }=0A=
 =0A=
   Aff_transformation_2 operator*(const Aff_t_base &t) const=0A=
   {=0A=
    return t.compose(*this);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Translation &t) const=0A=
   {=0A=
     FT ft0(0);=0A=
     return Aff_transformation_2(scalefactor_,=0A=
                                 ft0,=0A=
                                 t.translationvector_.x(),=0A=
                                 ft0,=0A=
                                 scalefactor_,=0A=
                                 t.translationvector_.y());=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Rotation &t) const=0A=
   {=0A=
     return Aff_transformation_2(scalefactor_ * t.cosinus_,=0A=
                                 scalefactor_ * -t.sinus_,=0A=
                                 scalefactor_ * t.sinus_,=0A=
                                 scalefactor_ * t.cosinus_);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Scaling &t) const=0A=
   {=0A=
     return Aff_transformation_2(SCALING, scalefactor_*t.scalefactor_);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 compose(const Transformation &t) const=0A=
   {=0A=
     return Aff_transformation_2(scalefactor_ * t.t11,=0A=
                                 scalefactor_ * t.t12,=0A=
                                 t.t13,=0A=
                                 scalefactor_ * t.t21,=0A=
                                 scalefactor_ * t.t22,=0A=
                                 t.t23);=0A=
   }=0A=
 =0A=
   Aff_transformation_2 inverse() const=0A=
   {=0A=
     return Aff_transformation_2(SCALING, FT(1)/scalefactor_);=0A=
   }=0A=
 =0A=
   bool is_even() const=0A=
   {=0A=
     return true;=0A=
   }=0A=
 =0A=
   FT cartesian(int i, int j) const=0A=
   {=0A=
     if (i!=3Dj) return FT(0);=0A=
     return (i=3D=3D2) ? FT(1) : scalefactor_;=0A=
   }=0A=
 =0A=
   std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     os << "Aff_transformationC2(" << scalefactor_ << ")";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   FT scalefactor_;=0A=
 };=0A=
 =0A=
 }=0A=
 # 66 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_2.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class Aff_transformationC2=0A=
   : public R_::Aff_transformation_handle_2=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef Aff_transformation_rep_baseC2<R_> Aff_t_base;=0A=
 =0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Vector_2 Vector_2;=0A=
   typedef typename R_::Direction_2 Direction_2;=0A=
   typedef typename R_::Line_2 Line_2;=0A=
   typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Aff_transformationC2()=0A=
   {=0A=
     initialize_with(Aff_transformation_repC2<R>(FT(1), FT(0), FT(0), =
 FT(1)));=0A=
   }=0A=
 =0A=
   Aff_transformationC2(const Identity_transformation)=0A=
   {=0A=
     initialize_with(Aff_transformation_repC2<R>(FT(1), FT(0), FT(0), =
 FT(1)));=0A=
   }=0A=
 =0A=
   Aff_transformationC2(const Translation, const Vector_2 &v)=0A=
   {=0A=
     initialize_with(Translation_repC2<R>(v));=0A=
   }=0A=
 =0A=
 =0A=
   Aff_transformationC2(const Rotation,=0A=
                        const Direction_2 &d,=0A=
                        const FT &num,=0A=
                        const FT &den =3D FT(1))=0A=
   {=0A=
     initialize_with(Rotation_repC2<R>(d, num, den));=0A=
   }=0A=
 =0A=
   Aff_transformationC2(const Rotation,=0A=
                        const FT &sine,=0A=
                        const FT &cosine,=0A=
                        const FT &w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Rotation_repC2<R>(sine/w, cosine/w));=0A=
     else=0A=
       initialize_with(Rotation_repC2<R>(sine, cosine));=0A=
   }=0A=
 =0A=
   Aff_transformationC2(const Scaling, const FT &s, const FT &w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Scaling_repC2<R>(s/w));=0A=
     else=0A=
       initialize_with(Scaling_repC2<R>(s));=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   Aff_transformationC2(const FT & m11, const FT & m12, const FT & m13,=0A=
                        const FT & m21, const FT & m22, const FT & m23,=0A=
                        const FT &w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Aff_transformation_repC2<R>(m11/w, m12/w, m13/w,=0A=
                                                   m21/w, m22/w, m23/w));=0A=
     else=0A=
       initialize_with(Aff_transformation_repC2<R>(m11, m12, m13,=0A=
                                                   m21, m22, m23));=0A=
   }=0A=
 =0A=
   Aff_transformationC2(const FT & m11, const FT & m12,=0A=
                        const FT & m21, const FT & m22,=0A=
                        const FT &w =3D FT(1))=0A=
   {=0A=
     initialize_with(Aff_transformation_repC2<R>(m11/w, m12/w, m21/w, =
 m22/w));=0A=
   }=0A=
 =0A=
   Point_2=0A=
   transform(const Point_2 &p) const=0A=
   { return Ptr()->transform(p); }=0A=
 =0A=
   Point_2=0A=
   operator()(const Point_2 &p) const=0A=
   { return transform(p); }=0A=
 =0A=
   Vector_2=0A=
   transform(const Vector_2 &v) const=0A=
   { return Ptr()->transform(v); }=0A=
 =0A=
   Vector_2=0A=
   operator()(const Vector_2 &v) const=0A=
   { return transform(v); }=0A=
 =0A=
   Direction_2=0A=
   transform(const Direction_2 &d) const=0A=
   { return Ptr()->transform(d); }=0A=
 =0A=
   Direction_2=0A=
   operator()(const Direction_2 &d) const=0A=
   { return transform(d); }=0A=
 =0A=
   Line_2=0A=
   transform(const Line_2 &l) const=0A=
   { return l.transform(*this); }=0A=
 =0A=
   Line_2=0A=
   operator()(const Line_2 &l) const=0A=
   { return transform(l); }=0A=
 =0A=
   Aff_transformation_2 inverse() const { return Ptr()->inverse(); }=0A=
 =0A=
   bool is_even() const { return Ptr()->is_even(); }=0A=
   bool is_odd() const { return ! (Ptr()->is_even()); }=0A=
 =0A=
   FT cartesian(int i, int j) const { return Ptr()->cartesian(i,j); }=0A=
   FT homogeneous(int i, int j) const { return cartesian(i,j); }=0A=
   FT m(int i, int j) const { return cartesian(i,j); }=0A=
   FT hm(int i, int j) const { return cartesian(i,j); }=0A=
 =0A=
   Aff_transformation_2 operator*(const Aff_transformationC2 &t) const=0A=
   {=0A=
     return (*Ptr()) * (*t.Ptr());=0A=
   }=0A=
 =0A=
   std::ostream &=0A=
   print(std::ostream &os) const;=0A=
 };=0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 Aff_transformationC2<R>::print(std::ostream &os) const=0A=
 {=0A=
   Ptr()->print(os);=0A=
   return os;=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream&=0A=
 operator<<(std::ostream& os, const Aff_transformationC2<R>& t)=0A=
 {=0A=
   t.print(os);=0A=
   return os;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 72 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Data_accessor_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Data_accessor_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 template < class R_ >=0A=
 class Data_accessorC2=0A=
 {=0A=
 public:=0A=
 =0A=
     typedef typename R_::FT FT;=0A=
     typedef typename R_::Point_2 Point;=0A=
 =0A=
     typedef R_ R;=0A=
 =0A=
     FT get_x( const Point &p) const { return( p.x()); }=0A=
     FT get_y( const Point &p) const { return( p.y()); }=0A=
 =0A=
     void get( const Point &p, FT &x, FT &y) const { x=3Dget_x(p); =
 y=3Dget_y(p); }=0A=
     void set( Point& p, const FT &x, const FT &y) const { =
 p=3DPoint(x,y); }=0A=
 };=0A=
 =0A=
 }=0A=
 # 73 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nicCPA2.h" 1=0A=
 # 62 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co=
 nicCPA2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class PT, class DA>=0A=
 class ConicCPA2;=0A=
 =0A=
 template < class PT, class DA>=0A=
 class _Min_ellipse_2_adapterC2__Ellipse;=0A=
 =0A=
 =0A=
 template < class _PT, class _DA>=0A=
 class ConicCPA2=0A=
 {=0A=
   public:=0A=
 =0A=
     typedef _PT PT;=0A=
     typedef _DA DA;=0A=
     typedef typename _DA::FT FT;=0A=
 =0A=
 =0A=
 =0A=
     friend class _Min_ellipse_2_adapterC2__Ellipse<PT,DA>;=0A=
 =0A=
     DA dao;=0A=
     FT _r, _s, _t, _u, _v, _w;=0A=
     Conic_type type;=0A=
     CGAL::Orientation o;=0A=
     bool empty, trivial, degenerate;=0A=
 =0A=
 =0A=
     void=0A=
     set_linear_combination (const FT& a1, const ConicCPA2<PT,DA>& c1,=0A=
                             const FT& a2, const ConicCPA2<PT,DA>& c2)=0A=
     {=0A=
         _r =3D a1 * c1.r() + a2 * c2.r();=0A=
         _s =3D a1 * c1.s() + a2 * c2.s();=0A=
         _t =3D a1 * c1.t() + a2 * c2.t();=0A=
         _u =3D a1 * c1.u() + a2 * c2.u();=0A=
         _v =3D a1 * c1.v() + a2 * c2.v();=0A=
         _w =3D a1 * c1.w() + a2 * c2.w();=0A=
     }=0A=
 =0A=
     static void set_two_linepairs (const PT& p1,=0A=
                                    const PT& p2,=0A=
                                    const PT& p3,=0A=
                                    const PT& p4,=0A=
                                    ConicCPA2<PT,DA>& pair1,=0A=
                                    ConicCPA2<PT,DA>& pair2)=0A=
     {=0A=
         FT x1, y1, x2, y2, x3, y3, x4, y4;=0A=
         const DA& da =3D pair1.da();=0A=
         da.get (p1, x1, y1);=0A=
         da.get (p2, x2, y2);=0A=
         da.get (p3, x3, y3);=0A=
         da.get (p4, x4, y4);=0A=
 =0A=
         CGAL::Orientation side1_24 =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign=0A=
                                        (-x1*y4+x2*y4=0A=
                                         +x4*y1-x2*y1=0A=
                                         +x1*y2-x4*y2)),=0A=
                          side3_24 =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign=0A=
                                       (-x3*y4+x2*y4=0A=
                                        +x4*y3-x2*y3=0A=
                                        +x3*y2-x4*y2));=0A=
         if (side1_24 !=3D side3_24) {=0A=
 =0A=
             pair1.set_linepair (p1, p2, p3, p4);=0A=
             pair2.set_linepair (p2, p3, p4, p1);=0A=
         } else {=0A=
             CGAL::Orientation side1_32 =3D =
 (CGAL::Orientation)(CGAL::NTS:: sign=0A=
                                            (-x1*y2+x3*y2=0A=
                                             +x2*y1-x3*y1=0A=
                                             +x1*y3-x2*y3));=0A=
             if (side1_32 !=3D side3_24) {=0A=
 =0A=
                 pair1.set_linepair (p2, p1, p3, p4);=0A=
                 pair2.set_linepair (p1, p3, p4, p2);=0A=
             } else {=0A=
 =0A=
                 pair1.set_linepair (p1, p3, p2, p4);=0A=
                 pair2.set_linepair (p3, p2, p4, p1);=0A=
             }=0A=
         }=0A=
     }=0A=
 =0A=
     void set_ellipse (const ConicCPA2<PT,DA>& pair1,=0A=
                       const ConicCPA2<PT,DA>& pair2)=0A=
     {=0A=
         FT b =3D FT(2) * (pair1.r() * pair2.s() + pair1.s() * pair2.r()) =
 -=0A=
                pair1.t() * pair2.t();=0A=
         set_linear_combination (pair2.det()-b, pair1,=0A=
                                 pair1.det()-b, pair2);=0A=
     }=0A=
 =0A=
     void set (const ConicCPA2<PT,DA>& c1,=0A=
               const ConicCPA2<PT,DA>& c2,=0A=
               const PT& p)=0A=
     {=0A=
         set_linear_combination (c2.evaluate(p), c1, -c1.evaluate(p), c2);=0A=
     }=0A=
 =0A=
     CGAL::Sign vol_derivative (FT dr, FT ds, FT dt,=0A=
                               FT du, FT dv, FT dw) const=0A=
     {=0A=
         FT a1 =3D FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt,=0A=
            a0 =3D FT(4)*r()*s()-t()*t(),=0A=
            b1 =3D (FT(4)*r()*s()-t()*t())*dw+(FT(4)*r()*ds+FT(4)*dr*s()-=0A=
                 FT(2)*t()*dt)*w()-u()*u()*ds -=0A=
                 FT(2)*u()*du*s()-v()*v()*dr-FT(2)*v()*dv*r()+u()*v()*dt+=0A=
                 (u()*dv+du*v())*t(),=0A=
            b0 =3D (FT(4)*r()*s()-t()*t())*w()=0A=
           -u()*u()*s()-v()*v()*r()+u()*v()*t(),=0A=
            c0 =3D -FT(2)*a0*b1 + FT(3)*a1*b0;=0A=
 =0A=
         return CGAL::Sign (-CGAL::NTS:: sign (c0)*o);=0A=
     }=0A=
 =0A=
     double vol_minimum (FT dr, FT ds, FT dt, FT du, FT dv, FT dw) const=0A=
     {=0A=
         FT a2 =3D FT(4)*dr*ds-dt*dt,=0A=
            a1 =3D FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt,=0A=
            a0 =3D FT(4)*r()*s()-t()*t(),=0A=
            b3 =3D (FT(4)*dr*ds-dt*dt)*dw-du*du*ds-dv*dv*dr+du*dv*dt,=0A=
            b2 =3D (FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt)*dw+=0A=
                 (FT(4)*dr*ds-dt*dt)*w()-FT(2)*u()*du*ds-du*du*s()-=0A=
                 FT(2)*v()*dv*dr-dv*dv*r()+(u()*dv+du*v())*dt+du*dv*t(),=0A=
            b1 =3D (FT(4)*r()*s()-t()*t())*dw+(FT(4)*r()*ds+FT(4)*dr*s()-=0A=
                 FT(2)*t()*dt)*w()-u()*u()*ds -=0A=
                 FT(2)*u()*du*s()-v()*v()*dr-FT(2)*v()*dv*r()+u()*v()*dt+=0A=
                 (u()*dv+du*v())*t(),=0A=
            b0 =3D (FT(4)*r()*s()-t()*t())*w()=0A=
                 -u()*u()*s()-v()*v()*r()+u()*v()*t(),=0A=
            c3 =3D -FT(3)*a1*b3 + FT(2)*a2*b2,=0A=
            c2 =3D -FT(6)*a0*b3 - a1*b2 + FT(4)*a2*b1,=0A=
            c1 =3D -FT(4)*a0*b2 + a1*b1 + FT(6)*a2*b0,=0A=
            c0 =3D -FT(2)*a0*b1 + FT(3)*a1*b0;=0A=
 =0A=
            if ( CGAL::NTS:: is_zero( c0)) return 0;=0A=
 =0A=
            double roots[3];=0A=
            int nr_roots =3D solve_cubic=0A=
                                 (CGAL::to_double(c3), =
 CGAL::to_double(c2),=0A=
                                  CGAL::to_double(c1), =
 CGAL::to_double(c0),=0A=
                                  roots[0], roots[1], roots[2]);=0A=
            ((nr_roots > 0)?((void)0): ::CGAL::precondition_fail( =
 "nr_roots > 0" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",205,0));=0A=
            return best_value (roots, nr_roots,=0A=
                                  CGAL::to_double(a2), =
 CGAL::to_double(a1),=0A=
                                  CGAL::to_double(a0), =
 CGAL::to_double(b3),=0A=
                                  CGAL::to_double(b2), =
 CGAL::to_double(b1),=0A=
                                  CGAL::to_double(b0));=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   protected:=0A=
     FT det () const=0A=
     {=0A=
         return FT(4)*s()*r() - t()*t();=0A=
     }=0A=
 =0A=
     void analyse( )=0A=
     {=0A=
         FT d =3D det();=0A=
         type =3D (Conic_type)(CGAL::NTS:: sign(d));=0A=
         switch (type) {=0A=
         case HYPERBOLA:=0A=
             {=0A=
                 trivial =3D empty =3D false;=0A=
                 FT z_prime =3D d*w() - u()*u()*s() - v()*v()*r() + =
 u()*v()*t();=0A=
                 o =3D (CGAL::Orientation)(CGAL::NTS:: sign (z_prime));=0A=
                 degenerate =3D (o =3D=3D CGAL::ZERO);=0A=
 =0A=
 =0A=
             }=0A=
             break;=0A=
         case PARABOLA:=0A=
             {=0A=
                 if (!CGAL::NTS:: is_zero (r())) {=0A=
                     trivial =3D false;=0A=
                     degenerate =3D (t()*u() =3D=3D FT(2)*r()*v());=0A=
                     if (degenerate) {=0A=
                         CGAL::Sign discr =3D (CGAL::Sign)=0A=
                                         CGAL::NTS:: =
 sign(u()*u()-FT(4)*r()*w());=0A=
                         switch (discr) {=0A=
                             case CGAL::NEGATIVE:=0A=
                                 empty =3D true;=0A=
                                 o =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign (w()));=0A=
                                 break;=0A=
                             case CGAL::ZERO:=0A=
                                 empty =3D false;=0A=
                                 o =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign (r()));=0A=
                                 break;=0A=
                             case CGAL::POSITIVE:=0A=
                                 empty =3D false;=0A=
                                 o =3D CGAL::ZERO;=0A=
                                 break;=0A=
                         }=0A=
                     } else {=0A=
                         empty =3D false;=0A=
                         o =3D (CGAL::Orientation)(-CGAL::NTS:: sign =
 (r()));=0A=
                     }=0A=
                 } else if (!CGAL::NTS:: is_zero (s())) {=0A=
                     trivial =3D false;=0A=
                     degenerate =3D (t()*v() =3D=3D FT(2)*s()*u());=0A=
                     if (degenerate) {=0A=
                         CGAL::Sign discr =3D (CGAL::Sign)=0A=
                                         CGAL::NTS:: =
 sign(v()*v()-FT(4)*s()*w());=0A=
                         switch (discr) {=0A=
                             case CGAL::NEGATIVE:=0A=
                                 empty =3D true;=0A=
                                 o =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign (w()));=0A=
                                 break;=0A=
                             case CGAL::ZERO:=0A=
                                 empty =3D false;=0A=
                                 o =3D (CGAL::Orientation)(CGAL::NTS:: =
 sign (s()));=0A=
                                 break;=0A=
                             case CGAL::POSITIVE:=0A=
                                 empty =3D false;=0A=
                                 o =3D CGAL::ZERO;=0A=
                                 break;=0A=
                         }=0A=
                     } else {=0A=
                         empty =3D false;=0A=
                         o =3D (CGAL::Orientation)(-CGAL::NTS:: sign =
 (s()));=0A=
                     }=0A=
                 } else {=0A=
                     degenerate =3D true;=0A=
                     bool uv_zero =3D CGAL::NTS:: is_zero (u())=0A=
                                       && CGAL::NTS:: is_zero (v());=0A=
                     trivial =3D uv_zero && CGAL::NTS:: is_zero (w());=0A=
                     empty =3D uv_zero && !trivial;=0A=
                     if (empty)=0A=
                         o =3D (CGAL::Orientation)(CGAL::NTS:: sign =
 (w()));=0A=
                     else if (trivial)=0A=
                         o =3D CGAL::POSITIVE;=0A=
                     else=0A=
                         o =3D CGAL::ZERO;=0A=
                 }=0A=
 =0A=
 =0A=
             }=0A=
             break;=0A=
         case ELLIPSE:=0A=
             {=0A=
                 trivial =3D false;=0A=
                 FT z_prime =3D d*w() - u()*u()*s() - v()*v()*r() + =
 u()*v()*t();=0A=
                 if (CGAL::NTS:: is_positive (r())) {=0A=
                     empty =3D CGAL::NTS:: is_positive(CGAL::NTS:: sign =
 (z_prime));=0A=
                     empty ? o =3D CGAL::POSITIVE : o =3D CGAL::NEGATIVE;=0A=
                 } else {=0A=
                     empty =3D CGAL::NTS:: is_negative(CGAL::NTS:: sign =
 (z_prime));=0A=
                     empty ? o =3D CGAL::NEGATIVE : o =3D CGAL::POSITIVE;=0A=
                 }=0A=
                 degenerate =3D empty || CGAL::NTS:: is_zero (z_prime);=0A=
 =0A=
 =0A=
             }=0A=
             break;=0A=
         }=0A=
     }=0A=
 =0A=
     FT evaluate (const PT& p) const=0A=
     {=0A=
         FT x, y;=0A=
         dao.get (p, x, y);=0A=
         return r()*x*x + s()*y*y + t()*x*y + u()*x + v()*y + w();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
   public:=0A=
     ConicCPA2 ( const DA& da =3D DA()) : dao( da) { }=0A=
 =0A=
     ConicCPA2 (FT r, FT s, FT t, FT u, FT v, FT w, const DA& da =3D DA())=0A=
         : dao( da), _r(r), _s(s), _t(t), _u(u), _v(v), _w(w)=0A=
     {=0A=
         analyse();=0A=
     }=0A=
 =0A=
     const DA& da() const=0A=
     {=0A=
         return dao;=0A=
     }=0A=
 =0A=
     FT r() const { return _r;}=0A=
     FT s() const { return _s;}=0A=
     FT t() const { return _t;}=0A=
     FT u() const { return _u;}=0A=
     FT v() const { return _v;}=0A=
     FT w() const { return _w;}=0A=
 =0A=
     PT center () const=0A=
     {=0A=
         ((type !=3D PARABOLA)?((void)0): ::CGAL::precondition_fail( =
 "type !=3D PARABOLA" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",354,0));=0A=
         PT p;=0A=
         FT two =3D FT(2);=0A=
         FT div =3D -det();=0A=
         dao.set( p, (two*s()*u() - t()*v()) / div,=0A=
                     (two*r()*v() - t()*u()) / div);=0A=
         return p;=0A=
     }=0A=
 =0A=
     Conic_type conic_type () const=0A=
     {=0A=
         return type;=0A=
     }=0A=
 =0A=
     bool is_hyperbola () const=0A=
     {=0A=
         return (type =3D=3D HYPERBOLA);=0A=
     }=0A=
 =0A=
     bool is_parabola () const=0A=
     {=0A=
         return (type =3D=3D PARABOLA);=0A=
     }=0A=
 =0A=
     bool is_ellipse () const=0A=
     {=0A=
         return (type =3D=3D ELLIPSE);=0A=
     }=0A=
 =0A=
     bool is_empty () const=0A=
     {=0A=
         return empty;=0A=
     }=0A=
 =0A=
     bool is_trivial () const=0A=
     {=0A=
         return trivial;=0A=
     }=0A=
 =0A=
     bool is_degenerate () const=0A=
     {=0A=
         return degenerate;=0A=
     }=0A=
 =0A=
     CGAL::Orientation orientation () const=0A=
     {=0A=
         return o;=0A=
     }=0A=
 =0A=
     CGAL::Oriented_side oriented_side (const PT& p) const=0A=
     {=0A=
         return (CGAL::Oriented_side)(CGAL::NTS:: sign (evaluate (p)));=0A=
     }=0A=
 =0A=
     bool has_on_positive_side (const PT& p) const=0A=
     {=0A=
         return (CGAL::NTS:: is_positive (evaluate(p)));=0A=
     }=0A=
 =0A=
     bool has_on_negative_side (const PT& p) const=0A=
     {=0A=
         return (CGAL::NTS:: is_negative (evaluate(p)));=0A=
     }=0A=
 =0A=
     bool has_on_boundary (const PT& p) const=0A=
     {=0A=
        return (CGAL::NTS:: is_zero (evaluate(p)));=0A=
     }=0A=
 =0A=
     bool has_on (const PT& p) const=0A=
     {=0A=
        return (CGAL::NTS:: is_zero (evaluate(p)));=0A=
     }=0A=
 =0A=
 =0A=
     Convex_side convex_side (const PT& p) const=0A=
     {=0A=
         switch (o) {=0A=
         case CGAL::POSITIVE:=0A=
             return (Convex_side)( CGAL::NTS:: sign (evaluate (p)));=0A=
         case CGAL::NEGATIVE:=0A=
             return (Convex_side)(-CGAL::NTS:: sign (evaluate (p)));=0A=
         case CGAL::ZERO:=0A=
             return (Convex_side)( CGAL::NTS:: sign (CGAL::NTS:: abs =
 (evaluate(p))));=0A=
         }=0A=
 =0A=
         return( Convex_side( 0));=0A=
     }=0A=
 =0A=
     bool has_on_convex_side (const PT& p) const=0A=
     {=0A=
         return (convex_side (p) =3D=3D ON_CONVEX_SIDE);=0A=
     }=0A=
 =0A=
     bool has_on_nonconvex_side (const PT& p) const=0A=
     {=0A=
         return (convex_side (p) =3D=3D ON_NONCONVEX_SIDE);=0A=
     }=0A=
 =0A=
     bool operator =3D=3D ( const ConicCPA2<_PT,_DA>& c) const=0A=
     {=0A=
 =0A=
         FT factor1;=0A=
         if ( ! CGAL::NTS:: is_zero( r())) factor1 =3D r(); else=0A=
         if ( ! CGAL::NTS:: is_zero( s())) factor1 =3D s(); else=0A=
         if ( ! CGAL::NTS:: is_zero( t())) factor1 =3D t(); else=0A=
         if ( ! CGAL::NTS:: is_zero( u())) factor1 =3D u(); else=0A=
         if ( ! CGAL::NTS:: is_zero( v())) factor1 =3D v(); else=0A=
         if ( ! CGAL::NTS:: is_zero( w())) factor1 =3D w(); else=0A=
         ((false)?((void)0): ::CGAL::assertion_fail( "false" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",463,"all coefficients zero"));=0A=
 =0A=
 =0A=
         FT factor2;=0A=
         if ( ! CGAL::NTS:: is_zero( c.r())) factor2 =3D c.r(); else=0A=
         if ( ! CGAL::NTS:: is_zero( c.s())) factor2 =3D c.s(); else=0A=
         if ( ! CGAL::NTS:: is_zero( c.t())) factor2 =3D c.t(); else=0A=
         if ( ! CGAL::NTS:: is_zero( c.u())) factor2 =3D c.u(); else=0A=
         if ( ! CGAL::NTS:: is_zero( c.v())) factor2 =3D c.v(); else=0A=
         if ( ! CGAL::NTS:: is_zero( c.w())) factor2 =3D c.w(); else=0A=
         ((false)?((void)0): ::CGAL::assertion_fail( "false" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",473,"all coefficients zero"));=0A=
 =0A=
         return( ( r()*factor2 =3D=3D c.r()*factor1)=0A=
                 && ( s()*factor2 =3D=3D c.s()*factor1)=0A=
                 && ( t()*factor2 =3D=3D c.t()*factor1)=0A=
                 && ( u()*factor2 =3D=3D c.u()*factor1)=0A=
                 && ( v()*factor2 =3D=3D c.v()*factor1)=0A=
                 && ( w()*factor2 =3D=3D c.w()*factor1));=0A=
     }=0A=
 =0A=
     void set (FT r_, FT s_, FT t_, FT u_, FT v_, FT w_)=0A=
     {=0A=
         _r =3D r_; _s =3D s_; _t =3D t_; _u =3D u_; _v =3D v_; _w =3D w_;=0A=
         analyse();=0A=
      }=0A=
 =0A=
     void set_opposite ()=0A=
     {=0A=
         _r =3D -r(); _s =3D -s(); _t =3D -t(); _u =3D -u(); _v =3D -v(); =
 _w =3D -w();=0A=
         o =3D CGAL::opposite(orientation());=0A=
     }=0A=
 =0A=
     void set_linepair (const PT& p1, const PT& p2, const PT& p3, const =
 PT& p4)=0A=
     {=0A=
         FT x1, y1, x2, y2, x3, y3, x4, y4;=0A=
         dao.get (p1, x1, y1);=0A=
         dao.get (p2, x2, y2);=0A=
         dao.get (p3, x3, y3);=0A=
         dao.get (p4, x4, y4);=0A=
 =0A=
 =0A=
         ((((x1 !=3D x2) || (y1 !=3D y2)) && ((x3 !=3D x4) || (y3 !=3D =
 y4)))?((void)0): ::CGAL::precondition_fail( "((x1 !=3D x2) || (y1 !=3D =
 y2)) && ((x3 !=3D x4) || (y3 !=3D y4))" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",506,0));=0A=
 =0A=
 =0A=
 =0A=
         FT x2_x1 =3D x2-x1;=0A=
         FT x4_x3 =3D x4-x3;=0A=
         FT y1_y2 =3D y1-y2;=0A=
         FT y3_y4 =3D y3-y4;=0A=
         FT x1y2_y1x2 =3D x1*y2-y1*x2;=0A=
         FT x3y4_y3x4 =3D x3*y4-y3*x4;=0A=
 =0A=
         _r =3D y1_y2 * y3_y4;=0A=
         _s =3D x2_x1 * x4_x3;=0A=
         _t =3D x2_x1 * y3_y4 + y1_y2 * x4_x3;=0A=
         _u =3D x1y2_y1x2 * y3_y4 + y1_y2 * x3y4_y3x4;=0A=
         _v =3D x1y2_y1x2 * x4_x3 + x2_x1 * x3y4_y3x4;=0A=
         _w =3D x1y2_y1x2 * x3y4_y3x4;=0A=
 =0A=
         analyse();=0A=
     }=0A=
 =0A=
     void set_ellipse (const PT& p1, const PT& p2, const PT& p3)=0A=
     {=0A=
         FT x1, y1, x2, y2, x3, y3;=0A=
         dao.get (p1, x1, y1);=0A=
         dao.get (p2, x2, y2);=0A=
         dao.get (p3, x3, y3);=0A=
 =0A=
 =0A=
         FT det =3D -x3*y2+x1*y2+x2*y3-x1*y3+x3*y1-x2*y1;=0A=
         ((!CGAL::NTS:: is_zero (det))?((void)0): =
 ::CGAL::precondition_fail( "!CGAL_NTS is_zero (det)" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",534,0));=0A=
 =0A=
         FT x1x1 =3D x1*x1, y1y1 =3D y1*y1,=0A=
            x2x2 =3D x2*x2, y2y2 =3D y2*y2,=0A=
            x3x3 =3D x3*x3, y3y3 =3D y3*y3,=0A=
            two =3D FT(2);=0A=
 =0A=
         _r =3D y1y1 - y1*y2 - y1*y3 +=0A=
              y2y2 - y2*y3 + y3y3;=0A=
 =0A=
         _s =3D x1x1 - x1*x2 - x1*x3 +=0A=
              x2x2 - x2*x3 + x3x3;=0A=
 =0A=
         _t =3D -two*x1*y1 + x1*y2 + x1*y3 +=0A=
                  y1*x2 -two*x2*y2 + x2*y3 +=0A=
                  y1*x3 + y2*x3 -two*x3*y3;=0A=
 =0A=
         _u =3D -(y2y2*x3 - x2*y2*y3 - y2*x3*y3 +=0A=
                    x1*y3y3 + x2*y3y3 + y1y1*x2 +=0A=
                    y1y1*x3 - x1*y1*y2 - y1*x2*y2 -=0A=
                    x1*y1*y3 - y1*x3*y3 + x1*y2y2);=0A=
 =0A=
         _v =3D -(x2x2*y3 - x2*y2*x3 - x2*x3*y3 +=0A=
                    y1*x3x3 + y2*x3x3 + x1x1*y2 +=0A=
                    x1x1*y3 - x1*y1*x2 - x1*x2*y2 -=0A=
                    x1*y1*x3 - x1*x3*y3 + y1*x2x2);=0A=
 =0A=
         _w =3D y1y1*x2*x3 - x1*y1*y2*x3 - y1*x2*y2*x3 +=0A=
              y1*y2*x3x3 - x1*y1*x2*y3 + y1*x2x2*y3 -=0A=
              y1*x2*x3*y3 + x1*y2y2*x3 + x1x1*y2*y3 -=0A=
              x1*x2*y2*y3 - x1*y2*x3*y3 + x1*x2*y3y3;=0A=
 =0A=
         type =3D ELLIPSE;=0A=
         degenerate =3D trivial =3D empty =3D false;=0A=
         o =3D CGAL::NEGATIVE;=0A=
         if (CGAL::NTS:: is_positive (det)) set_opposite();=0A=
     }=0A=
 =0A=
     void set_ellipse (const PT& p1, const PT& p2,=0A=
                       const PT& p3, const PT& p4,=0A=
                       CGAL::Orientation _o =3D POSITIVE)=0A=
     {=0A=
         ConicCPA2<PT,DA> pair1, pair2;=0A=
         set_two_linepairs (p1, p2, p3, p4, pair1, pair2);=0A=
         set_ellipse (pair1, pair2);=0A=
         analyse();=0A=
         if (o !=3D _o) set_opposite();=0A=
     }=0A=
 =0A=
     void set (const PT& p1, const PT& p2, const PT& p3, const PT& p4,=0A=
               const PT& p5, CGAL::Orientation _o =3D POSITIVE)=0A=
     {=0A=
         ConicCPA2<PT,DA> c1; c1.set_linepair (p1, p2, p3, p4);=0A=
         ConicCPA2<PT,DA> c2; c2.set_linepair (p1, p4, p2, p3);=0A=
         set_linear_combination (c2.evaluate (p5), c1,=0A=
                                -c1.evaluate (p5), c2);=0A=
         analyse();=0A=
 =0A=
         ((!is_trivial())?((void)0): ::CGAL::precondition_fail( =
 "!is_trivial()" =
 ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C=
 onicCPA2.h",592,0));=0A=
         if (o !=3D _o) set_opposite();=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
  };=0A=
 =0A=
 =0A=
 template< class _PT, class _DA>=0A=
 std::ostream& operator << ( std::ostream& os, const ConicCPA2<_PT,_DA>& =
 c)=0A=
 {=0A=
     return( os << c.r() << ' ' << c.s() << ' ' << c.t() << ' '=0A=
                << c.u() << ' ' << c.v() << ' ' << c.w());=0A=
 }=0A=
 =0A=
 template< class _PT, class _DA>=0A=
 std::istream& operator >> ( std::istream& is, ConicCPA2<_PT,_DA>& c)=0A=
 {=0A=
     typedef ConicCPA2<_PT,_DA> Conic;=0A=
     typedef typename _DA::FT FT;=0A=
 =0A=
     FT r, s, t, u, v, w;=0A=
     is >> r >> s >> t >> u >> v >> w;=0A=
     c.set( r, s, t, u, v, w);=0A=
 =0A=
     return( is);=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 74 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/global_operators_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/global_operators_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_2=0A=
 operator+(const PointC2<R> &p, const VectorC2<R> &v)=0A=
 {=0A=
   return PointC2<R>(p.x() + v.x(), p.y() + v.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_2=0A=
 operator-(const PointC2<R> &p, const VectorC2<R> &v)=0A=
 {=0A=
   return PointC2<R>(p.x() - v.x(), p.y() - v.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_2=0A=
 operator+(const Origin &, const VectorC2<R> &v)=0A=
 {=0A=
   return PointC2<R>(v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_2=0A=
 operator-(const Origin &, const VectorC2<R> &v)=0A=
 {=0A=
   return PointC2<R>(-v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_2=0A=
 operator-(const PointC2<R> &p, const PointC2<R> &q)=0A=
 {=0A=
   return VectorC2<R>(p.x() - q.x(), p.y() - q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_2=0A=
 operator-(const PointC2<R> &p, const Origin &)=0A=
 {=0A=
   return VectorC2<R>(p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_2=0A=
 operator-(const Origin &, const PointC2<R> &p)=0A=
 {=0A=
   return VectorC2<R>(-p.x(), -p.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_2=0A=
 operator*(const typename R::FT &c, const VectorC2<R> &w)=0A=
 {=0A=
    return VectorC2<R>(c * w.x(), c * w.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_2=0A=
 operator*(const VectorC2<R> &w, const typename R::FT &c)=0A=
 {=0A=
    return VectorC2<R>(c * w.x(), c * w.y());=0A=
 }=0A=
 =0A=
 }=0A=
 # 76 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_directions_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_directions_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_direction(const DirectionC2<R> &d1,=0A=
                 const DirectionC2<R> &d2)=0A=
 {=0A=
   return equal_directionC2(d1.dx(), d1.dy(), d2.dx(), d2.dy());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 compare_angle_with_x_axis(const DirectionC2<R> &d1,=0A=
                           const DirectionC2<R> &d2)=0A=
 {=0A=
   return compare_angle_with_x_axisC2(d1.dx(), d1.dy(), d2.dx(), d2.dy());=0A=
 }=0A=
 =0A=
 }=0A=
 # 78 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_lines_2.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_lines_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_line(const LineC2<R> &l1, const LineC2<R> &l2)=0A=
 {=0A=
   return equal_lineC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x(const PointC2<R> &p,=0A=
           const LineC2<R> &l,=0A=
           const LineC2<R> &h)=0A=
 {=0A=
   return compare_xC2(p.x(), l.a(), l.b(), l.c(), h.a(), h.b(), h.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x(const LineC2<R> &l,=0A=
           const LineC2<R> &h1,=0A=
           const LineC2<R> &h2)=0A=
 {=0A=
   return compare_xC2(l.a(), l.b(), l.c(), h1.a(), h1.b(), h1.c(),=0A=
                                           h2.a(), h2.b(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x(const LineC2<R> &l1,=0A=
           const LineC2<R> &h1,=0A=
           const LineC2<R> &l2,=0A=
           const LineC2<R> &h2)=0A=
 {=0A=
   return compare_xC2(l1.a(), l1.b(), l1.c(), h1.a(), h1.b(), h1.c(),=0A=
                      l2.a(), l2.b(), l2.c(), h2.a(), h2.b(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y(const PointC2<R> &p,=0A=
           const LineC2<R> &l1,=0A=
           const LineC2<R> &l2)=0A=
 {=0A=
   return compare_xC2(p.y(), l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), =
 l2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y(const LineC2<R> &l1,=0A=
           const LineC2<R> &l2,=0A=
           const LineC2<R> &h1,=0A=
           const LineC2<R> &h2)=0A=
 {=0A=
   return compare_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A=
                      h1.b(), h1.a(), h1.c(), h2.b(), h2.a(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y(const LineC2<R> &l,=0A=
           const LineC2<R> &h1,=0A=
           const LineC2<R> &h2)=0A=
 {=0A=
   return compare_xC2(l.b(), l.a(), l.c(), h1.b(), h1.a(), h1.c(),=0A=
                      l.b(), l.a(), l.c(), h2.b(), h2.a(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y_at_x(const PointC2<R> &p, const LineC2<R> &h)=0A=
 {=0A=
   return compare_y_at_xC2(p.x(), p.y(), h.a(), h.b(), h.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y_at_x(const PointC2<R> &p,=0A=
                const LineC2<R> &h1,=0A=
                const LineC2<R> &h2)=0A=
 {=0A=
   return compare_y_at_xC2(p.x(), h1.a(), h1.b(), h1.c(),=0A=
                                  h2.a(), h2.b(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y_at_x(const LineC2<R> &l1,=0A=
                const LineC2<R> &l2,=0A=
                const LineC2<R> &h)=0A=
 {=0A=
   return compare_y_at_xC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c(),=0A=
                           h.a(), h.b(), h.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y_at_x(const LineC2<R> &l1,=0A=
                const LineC2<R> &l2,=0A=
                const LineC2<R> &h1,=0A=
                const LineC2<R> &h2)=0A=
 {=0A=
   return compare_y_at_xC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c(),=0A=
                           h1.a(), h1.b(), h1.c(), h2.a(), h2.b(), =
 h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x_at_y(const PointC2<R> &p, const LineC2<R> &h)=0A=
 {=0A=
   return compare_y_at_xC2(p.y(), p.x(), h.b(), h.a(), h.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x_at_y(const PointC2<R> &p,=0A=
                const LineC2<R> &h1,=0A=
                const LineC2<R> &h2)=0A=
 {=0A=
   return compare_y_at_xC2(p.y(), h1.b(), h1.a(), h1.c(),=0A=
                                  h2.b(), h2.a(), h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x_at_y(const LineC2<R> &l1,=0A=
                const LineC2<R> &l2,=0A=
                const LineC2<R> &h)=0A=
 {=0A=
   return compare_y_at_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A=
                           h.b(), h.a(), h.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x_at_y(const LineC2<R> &l1,=0A=
                const LineC2<R> &l2,=0A=
                const LineC2<R> &h1,=0A=
                const LineC2<R> &h2)=0A=
 {=0A=
   return compare_y_at_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A=
                           h1.b(), h1.a(), h1.c(), h2.b(), h2.a(), =
 h2.c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_slopes(const LineC2<R> &l1,=0A=
                const LineC2<R> &l2)=0A=
 {=0A=
    return compare_slopesC2(l1.a(), l1.b(), l2.a(), l2.b());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Oriented_side=0A=
 side_of_oriented_line(const LineC2<R> &l,=0A=
                       const PointC2<R> &p)=0A=
 {=0A=
   return side_of_oriented_lineC2(l.a(), l.b(), l.c(), p.x(), p.y());=0A=
 }=0A=
 =0A=
 }=0A=
 # 79 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_segments_2.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_segments_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_slopes(const SegmentC2<R> &s1,=0A=
                const SegmentC2<R> &s2)=0A=
 {=0A=
    return compare_slopesC2(s1.source().x(), s1.source().y(),=0A=
                            s1.target().x(), s1.target().y(),=0A=
                            s2.source().x(), s2.source().y(),=0A=
                            s2.target().x(), s2.target().y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_y_at_x(const PointC2<R> &p,=0A=
                const SegmentC2<R> &s)=0A=
 {=0A=
     return compare_y_at_xC2(p.x(), p.y(),=0A=
                             s.source().x(), s.source().y(),=0A=
                             s.target().x(), s.target().y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_y_at_x(const PointC2<R> &p,=0A=
                const SegmentC2<R> &s1,=0A=
                const SegmentC2<R> &s2)=0A=
 {=0A=
     return compare_y_at_x_segment_C2(p.x(),=0A=
                             s1.source().x(), s1.source().y(),=0A=
                             s1.target().x(), s1.target().y(),=0A=
                             s2.source().x(), s2.source().y(),=0A=
                             s2.target().x(), s2.target().y());=0A=
 }=0A=
 =0A=
 }=0A=
 # 80 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/distance_predicates_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/distance_predicates_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_distance_to_point(const PointC2<R>& p,=0A=
                           const PointC2<R>& q,=0A=
                           const PointC2<R>& r)=0A=
 {=0A=
   return cmp_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_distance_to_point(const PointC2<R>& p,=0A=
                              const PointC2<R>& q,=0A=
                              const PointC2<R>& r)=0A=
 {=0A=
   return has_larger_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_distance_to_point(const PointC2<R>& p,=0A=
                               const PointC2<R>& q,=0A=
                               const PointC2<R>& r)=0A=
 {=0A=
   return has_smaller_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Comparison_result=0A=
 compare_signed_distance_to_line(const LineC2<R>& l,=0A=
                                 const PointC2<R>& p,=0A=
                                 const PointC2<R>& q)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC2(l.a(), l.b(), p.x(), p.y(),=0A=
                                         q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_signed_distance_to_line(const LineC2<R>& l,=0A=
                                    const PointC2<R>& p,=0A=
                                    const PointC2<R>& q)=0A=
 {=0A=
   return has_larger_signed_dist_to_directionC2(l.a(), l.b(), p.x(), =
 p.y(),=0A=
                                                q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_distance_to_line(const LineC2<R>& l,=0A=
                                     const PointC2<R>& p,=0A=
                                     const PointC2<R>& q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_directionC2(l.a(), l.b(), p.x(), =
 p.y(),=0A=
                                                 q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Comparison_result=0A=
 compare_signed_distance_to_line(const PointC2<R>& p,=0A=
                                 const PointC2<R>& q,=0A=
                                 const PointC2<R>& r,=0A=
                                 const PointC2<R>& s)=0A=
 {=0A=
   return cmp_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                    r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_distance_to_line(const PointC2<R>& p,=0A=
                                     const PointC2<R>& q,=0A=
                                     const PointC2<R>& r,=0A=
                                     const PointC2<R>& s)=0A=
 {=0A=
   return has_smaller_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                            r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_signed_distance_to_line(const PointC2<R>& p,=0A=
                                    const PointC2<R>& q,=0A=
                                    const PointC2<R>& r,=0A=
                                    const PointC2<R>& s)=0A=
 {=0A=
   return has_larger_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                           r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_dist_to_point(const PointC2<R>& p,=0A=
                   const PointC2<R>& q,=0A=
                   const PointC2<R>& r)=0A=
 {=0A=
   return cmp_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_dist_to_point(const PointC2<R>& p,=0A=
                          const PointC2<R>& q,=0A=
                          const PointC2<R>& r)=0A=
 {=0A=
   return has_larger_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_dist_to_point(const PointC2<R>& p,=0A=
                           const PointC2<R>& q,=0A=
                           const PointC2<R>& r)=0A=
 {=0A=
   return has_smaller_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_signed_dist_to_line(const LineC2<R>& l,=0A=
                         const PointC2<R>& p,=0A=
                         const PointC2<R>& q)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC2(l.a(), l.b(), p.x(), p.y(),=0A=
                                         q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_signed_dist_to_line(const LineC2<R>& l,=0A=
                                const PointC2<R>& p,=0A=
                                const PointC2<R>& q)=0A=
 {=0A=
   return has_larger_signed_dist_to_directionC2(l.a(), l.b(), p.x(), =
 p.y(),=0A=
                                                q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_dist_to_line(const LineC2<R>& l,=0A=
                                 const PointC2<R>& p,=0A=
                                 const PointC2<R>& q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_directionC2(l.a(), l.b(), p.x(), =
 p.y(),=0A=
                                                 q.x(), q.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_signed_dist_to_line(const PointC2<R>& p,=0A=
                         const PointC2<R>& q,=0A=
                         const PointC2<R>& r,=0A=
                         const PointC2<R>& s)=0A=
 {=0A=
   return cmp_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                    r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_smaller_signed_dist_to_line(const PointC2<R>& p,=0A=
                                 const PointC2<R>& q,=0A=
                                 const PointC2<R>& r,=0A=
                                 const PointC2<R>& s)=0A=
 {=0A=
   return has_smaller_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                            r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 inline=0A=
 bool=0A=
 has_larger_signed_dist_to_line(const PointC2<R>& p,=0A=
                                const PointC2<R>& q,=0A=
                                const PointC2<R>& r,=0A=
                                const PointC2<R>& s)=0A=
 {=0A=
   return has_larger_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A=
                                           r.x(), r.y(), s.x(), s.y());=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 81 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_2.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/point_constructions_2.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/point_constructions_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 midpoint(const PointC2<R> &p,=0A=
          const PointC2<R> &q )=0A=
 {=0A=
   typename R::FT x, y;=0A=
   midpointC2(p.x(), p.y(), q.x(), q.y(), x, y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 circumcenter(const PointC2<R> &p,=0A=
              const PointC2<R> &q,=0A=
              const PointC2<R> &r)=0A=
 {=0A=
   typename R::FT x, y;=0A=
   circumcenterC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), x, y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 centroid(const PointC2<R> &p,=0A=
          const PointC2<R> &q,=0A=
          const PointC2<R> &r)=0A=
 {=0A=
   typename R::FT x, y;=0A=
   centroidC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), x, y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 centroid(const PointC2<R> &p,=0A=
          const PointC2<R> &q,=0A=
          const PointC2<R> &r,=0A=
          const PointC2<R> &s)=0A=
 {=0A=
   typename R::FT x, y;=0A=
   centroidC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), s.x(), s.y(), x, =
 y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 line_get_point(const LineC2<R> &l, int i)=0A=
 {=0A=
   typename R::FT x, y;=0A=
   line_get_pointC2(l.a(), l.b(), l.c(), i, x, y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 PointC2<R>=0A=
 line_project_point(const LineC2<R> &l,=0A=
                    const PointC2<R> &p)=0A=
 {=0A=
   typename R::FT x, y;=0A=
   line_project_pointC2(l.a(), l.b(), l.c(), p.x(), p.y(), x, y);=0A=
   return PointC2<R>(x, y);=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/line_constructions_2.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/line_constructions_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 LineC2<R>=0A=
 line_from_points(const PointC2<R> &p,=0A=
                  const PointC2<R> &q)=0A=
 {=0A=
   typename R::FT a, b, c;=0A=
   line_from_pointsC2(p.x(), p.y(), q.x(), q.y(), a, b, c);=0A=
   return LineC2<R>(a, b, c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 LineC2<R>=0A=
 line_from_point_direction(const PointC2<R> &p,=0A=
                           const DirectionC2<R> &d)=0A=
 {=0A=
   typename R::FT a, b, c;=0A=
   line_from_point_directionC2(p.x(), p.y(), d.dx(), d.dy(), a, b, c);=0A=
   return LineC2<R>(a, b, c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 LineC2<R>=0A=
 bisector(const PointC2<R> &p,=0A=
          const PointC2<R> &q)=0A=
 {=0A=
   typename R::FT a, b, c;=0A=
   bisector_of_pointsC2(p.x(), p.y(), q.x(), q.y(), a, b, c);=0A=
   return LineC2<R>(a, b, c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 LineC2<R>=0A=
 perpendicular_through_point(const LineC2<R> &l,=0A=
                             const PointC2<R> &p)=0A=
 {=0A=
   typename R::FT a, b, c;=0A=
   perpendicular_through_pointC2(l.a(), l.b(), p.x(), p.y(), a, b, c);=0A=
   return LineC2<R>(a, b, c);=0A=
 }=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_2.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/ft_constructions_2.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/ft_constructions_2.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 squared_distance(const PointC2<R> &p,=0A=
                  const PointC2<R> &q)=0A=
 {=0A=
   return squared_distanceC2(p.x(), p.y(), q.x(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 scaled_distance_to_line(const LineC2<R> &l,=0A=
                         const PointC2<R> &p)=0A=
 {=0A=
   return scaled_distance_to_lineC2(l.a(), l.b(), l.c(), p.x(), p.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 scaled_distance_to_line(const PointC2<R> &p,=0A=
                         const PointC2<R> &q,=0A=
                         const PointC2<R> &r)=0A=
 {=0A=
   return scaled_distance_to_lineC2(p.x(), p.y(), q.x(), q.y(), r.x(), =
 r.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 line_y_at_x(const LineC2<R> &l, const typename R::FT &x)=0A=
 {=0A=
   return line_y_at_xC2(l.a(), l.b(), l.c(), x);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 line_x_at_y(const LineC2<R> &l, const typename R::FT &y)=0A=
 {=0A=
   return line_y_at_xC2(l.b(), l.a(), l.c(), y);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 squared_radius(const PointC2<R> &p,=0A=
                      const PointC2<R> &q,=0A=
                      const PointC2<R> &r)=0A=
 {=0A=
   return squared_radiusC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A=
 }=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_2.h" 2=0A=
 # 83 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel/function_objects.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel/function_objects.h"=0A=
 namespace CGAL {=0A=
 namespace CGALi {=0A=
 =0A=
 template <class ToBeConstructed>=0A=
 class Construct=0A=
 {=0A=
   public:=0A=
     typedef ToBeConstructed result_type;=0A=
 =0A=
     ToBeConstructed=0A=
     operator()() const=0A=
     { return ToBeConstructed(); }=0A=
 =0A=
     template <class A1>=0A=
     ToBeConstructed=0A=
     operator()( const A1& a1) const=0A=
     { return ToBeConstructed(a1); }=0A=
 =0A=
     template <class A1, class A2>=0A=
     ToBeConstructed=0A=
     operator()( const A1& a1, const A2& a2) const=0A=
     { return ToBeConstructed(a1,a2); }=0A=
 =0A=
     template <class A1, class A2, class A3>=0A=
     ToBeConstructed=0A=
     operator()( const A1& a1, const A2& a2, const A3& a3) const=0A=
     { return ToBeConstructed(a1,a2,a3); }=0A=
 =0A=
     template <class A1, class A2, class A3, class A4>=0A=
     ToBeConstructed=0A=
     operator()( const A1& a1, const A2& a2, const A3& a3, const A4& a4) =
 const=0A=
     { return ToBeConstructed(a1,a2,a3,a4); }=0A=
 =0A=
     template <class A1, class A2, class A3, class A4, class A5>=0A=
     ToBeConstructed=0A=
     operator()( const A1& a1, const A2& a2, const A3& a3, const A4& a4,=0A=
             const A5& a5) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6 ) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5,a6); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6,=0A=
                 const A& a7 ) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6,=0A=
                 const A& a7, const A& a8, const A& a9) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6,=0A=
                 const A& a7, const A& a8, const A& a9,=0A=
                 const A& a10) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6,=0A=
                 const A& a7, const A& a8, const A& a9,=0A=
                 const A& a10,const A& a11,const A& a12) const=0A=
     { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); }=0A=
 =0A=
     template <class A>=0A=
     ToBeConstructed=0A=
     operator()( const A& a1, const A& a2, const A& a3,=0A=
                 const A& a4, const A& a5, const A& a6,=0A=
                 const A& a7, const A& a8, const A& a9,=0A=
                 const A& a10,const A& a11,const A& a12,=0A=
                 const A& a13) const=0A=
     { return =
 ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); }=0A=
 =0A=
 };=0A=
 =0A=
 template <class ToBeConstructed>=0A=
 class Call_make_object_to_get=0A=
 {=0A=
   public:=0A=
     typedef ToBeConstructed result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ToBeConstructed=0A=
     operator()( const Cls& c) const=0A=
     { return make_object(c); }=0A=
 };=0A=
 =0A=
 template <class Vector>=0A=
 class Construct_scaled_vector=0A=
 {=0A=
    public:=0A=
      typedef Vector result_type;=0A=
      typedef Arity_tag< 2 > Arity;=0A=
 =0A=
      template <class NT>=0A=
      Vector=0A=
      operator()( const Vector& v, const NT& scale) const=0A=
      { return v * scale; }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class Construct_translated_point=0A=
 {=0A=
    public:=0A=
      typedef Point result_type;=0A=
      typedef Arity_tag< 2 > Arity;=0A=
 =0A=
      template <class Vector>=0A=
      Point=0A=
      operator()( const Point& p, const Vector& v) const=0A=
      { return p + v; }=0A=
 };=0A=
 =0A=
 template <class Point_2>=0A=
 class Construct_projected_xy_point=0A=
 {=0A=
    public:=0A=
      typedef Point_2 result_type;=0A=
      typedef Arity_tag< 2 > Arity;=0A=
 =0A=
      template <class Plane_3, class Point_3>=0A=
      Point_2=0A=
      operator()( const Plane_3& h, const Point_3& p) const=0A=
      { return h.to_2d(p); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_point_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.point(); }=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c, int i) const=0A=
     { return c.point(i); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_second_point_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.second_point(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_perpendicular_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.perpendicular(); }=0A=
 =0A=
     template <class Cls, class A1>=0A=
     ReturnType=0A=
     operator()( const Cls& c, const A1& a1) const=0A=
     { return c.perpendicular(a1); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_perpendicular_plane_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class A1>=0A=
     ReturnType=0A=
     operator()( const Cls& c, const A1& a1) const=0A=
     { return c.perpendicular_plane(a1); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_perpendicular_line_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class A1>=0A=
     ReturnType=0A=
     operator()( const Cls& c, const A1& a1) const=0A=
     { return c.perpendicular_line(a1); }=0A=
 };=0A=
 =0A=
 template <class Vector>=0A=
 class Call_orthogonal_vector_to_get=0A=
 {=0A=
   public:=0A=
     typedef Vector result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     Vector=0A=
     operator()( const Cls& c ) const=0A=
     { return c.orthogonal_vector(); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class Call_projection_to_get=0A=
 {=0A=
   public:=0A=
     typedef Point result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     Point=0A=
     operator()( const Cls& c, const Point& p ) const=0A=
     { return c.projection(p); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_squared_area_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c ) const=0A=
     { return c.squared_area(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_area_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c ) const=0A=
     { return c.area(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_volume_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c ) const=0A=
     { return c.volume(); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Midpoint=0A=
 {=0A=
   public:=0A=
     typedef Point result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     Point=0A=
     operator()(const Point& p, const Point& q) const=0A=
     { return midpoint(p,q); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Center=0A=
 {=0A=
   public:=0A=
     typedef Point result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class C>=0A=
     Point=0A=
     operator()(const C&c) const=0A=
     { return c.center(); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Circumcenter=0A=
 {=0A=
   public:=0A=
     typedef Point result_type;=0A=
 =0A=
     Point=0A=
     operator()(const Point& p, const Point& q, const Point& r) const=0A=
     { return circumcenter(p,q,r); }=0A=
 =0A=
     Point=0A=
     operator()(const Point& p, const Point& q,=0A=
                const Point& r, const Point& s) const=0A=
     { return circumcenter(p,q,r,s); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Centroid=0A=
 {=0A=
   public:=0A=
     typedef Point result_type;=0A=
 =0A=
     Point=0A=
     operator()(const Point& p, const Point& q, const Point& r) const=0A=
     { return centroid(p,q,r); }=0A=
 =0A=
     Point=0A=
     operator()(const Point& p, const Point& q,=0A=
                const Point& r, const Point& s) const=0A=
     { return centroid(p,q,r,s); }=0A=
 };=0A=
 =0A=
 template <class Point, class Line>=0A=
 class pl_Bisector=0A=
 {=0A=
   public:=0A=
     typedef Line result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     Line=0A=
     operator()(const Point& p, const Point& q) const=0A=
     { return bisector(p,q); }=0A=
 };=0A=
 =0A=
 template <class Vector>=0A=
 class v_Opposite=0A=
 {=0A=
    public:=0A=
      typedef Vector result_type;=0A=
      typedef Arity_tag< 1 > Arity;=0A=
 =0A=
    Vector=0A=
    operator()(const Vector& v) const=0A=
    { return -v; }=0A=
 };=0A=
 =0A=
 template <class Vector>=0A=
 class v_Cross_product=0A=
 {=0A=
   public:=0A=
     typedef Vector result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     Vector=0A=
     operator()(const Vector& v, const Vector& w) const=0A=
     { return cross_product(v, w); }=0A=
 };=0A=
 =0A=
 template <class Vector>=0A=
 class v_Base=0A=
 {=0A=
    public:=0A=
      typedef Vector result_type;=0A=
      typedef Arity_tag< 2 > Arity;=0A=
 =0A=
      template <class Plane>=0A=
      Vector=0A=
      operator()( const Plane& pl, int index )=0A=
      {=0A=
        if (index =3D=3D 1)=0A=
          return pl.base1();=0A=
        else=0A=
          return pl.base2();=0A=
      }=0A=
 };=0A=
 =0A=
 class Intersect=0A=
 {=0A=
   public:=0A=
     typedef CGAL::Object result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     CGAL::Object=0A=
     operator()(const T1& t1, const T2& t2) const=0A=
     { return intersection( t1, t2); }=0A=
 };=0A=
 =0A=
 class Do_intersect=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()(const T1& t1, const T2& t2) const=0A=
     { return do_intersect( t1, t2); }=0A=
 };=0A=
 =0A=
 class Assign=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1>=0A=
     bool=0A=
     operator()(T1& t1, const CGAL::Object& o) const=0A=
     { return assign( t1, o); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_y_at_x_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c, const ReturnType& x) const=0A=
     { return c.y_at_x(x); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_x_at_y_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c, const ReturnType& x) const=0A=
     { return c.x_at_y(x); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_squared_length_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.squared_length(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_squared_distance=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     ReturnType=0A=
     operator()( const T1& t1, const T2& t2) const=0A=
     { return squared_distance(t1, t2); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_squared_radius=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
 =0A=
     template <class T1>=0A=
     ReturnType=0A=
     operator()( const T1& t1) const=0A=
     { return t1.squared_radius(); }=0A=
 =0A=
     template <class T1>=0A=
     ReturnType=0A=
     operator()( const T1& t1, const T1& t2, const T1& t3) const=0A=
     { return squared_radius(t1, t2, t3); }=0A=
 =0A=
     template <class T1>=0A=
     ReturnType=0A=
     operator()( const T1& t1, const T1& t2, const T1& t3, const T1& t4) =
 const=0A=
     { return squared_radius(t1, t2, t3, t4); }=0A=
 };=0A=
 =0A=
 class p_Angle=0A=
 {=0A=
   public:=0A=
     typedef Angle result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     Angle=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return angle(p, q, r); }=0A=
 };=0A=
 =0A=
 template <class Point_3>=0A=
 class p_Lifted=0A=
 {=0A=
    public:=0A=
      typedef Point_3 result_type;=0A=
      typedef Arity_tag< 2 > Arity;=0A=
 =0A=
      template <class Plane, class Point_2>=0A=
      Point_3=0A=
      operator()(const Plane& p, const Point_2& pt) const=0A=
      { return p.to_3d(pt); }=0A=
 };=0A=
 =0A=
 class Counterclockwise_in_between=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return p.counterclockwise_in_between(q,r); }=0A=
 };=0A=
 =0A=
 class Collinear=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return collinear(p,q,r); }=0A=
 };=0A=
 =0A=
 class Coplanar=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 4 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r, const T& s) const=0A=
     { return coplanar(p,q,r,s); }=0A=
 };=0A=
 =0A=
 class Coplanar_orientation=0A=
 {=0A=
   public:=0A=
     typedef Orientation result_type;=0A=
 =0A=
     template <class P>=0A=
     Orientation=0A=
     operator()(const P& p, const P& q, const P& r) const=0A=
     { return coplanar_orientation(p,q,r); }=0A=
 =0A=
     template <class P>=0A=
     Orientation=0A=
     operator()(const P& p, const P& q, const P& r, const P& t) const=0A=
     { return coplanar_orientation(p,q,r,t); }=0A=
 };=0A=
 =0A=
 class Coplanar_side_of_bounded_circle=0A=
 {=0A=
   public:=0A=
     typedef Bounded_side result_type;=0A=
     typedef Arity_tag< 4 > Arity;=0A=
 =0A=
     template <class P>=0A=
     Bounded_side=0A=
     operator()(const P& p, const P& q, const P& r, const P& t) const=0A=
     { return coplanar_side_of_bounded_circle(p,q,r,t); }=0A=
 };=0A=
 =0A=
 class Side_of_oriented_circle=0A=
 {=0A=
   public:=0A=
     typedef Oriented_side result_type;=0A=
     typedef Arity_tag< 4 > Arity;=0A=
 =0A=
     template <class T>=0A=
     Oriented_side=0A=
     operator()(const T& p, const T& q, const T& r, const T& t) const=0A=
     { return side_of_oriented_circle(p,q,r,t); }=0A=
 };=0A=
 =0A=
 class Side_of_bounded_circle=0A=
 {=0A=
   public:=0A=
     typedef Bounded_side result_type;=0A=
 =0A=
     template <class T>=0A=
     Bounded_side=0A=
     operator()(const T& p, const T& q, const T& t) const=0A=
     { return side_of_bounded_circle(p,q,t); }=0A=
 =0A=
     template <class T>=0A=
     Bounded_side=0A=
     operator()(const T& p, const T& q, const T& r, const T& t) const=0A=
     { return side_of_bounded_circle(p,q,r,t); }=0A=
 };=0A=
 =0A=
 class Side_of_oriented_sphere=0A=
 {=0A=
   public:=0A=
     typedef Oriented_side result_type;=0A=
     typedef Arity_tag< 5 > Arity;=0A=
 =0A=
     template <class T>=0A=
     Oriented_side=0A=
     operator()(const T& p, const T& q, const T& r, const T& s,=0A=
             const T& t) const=0A=
     { return side_of_oriented_sphere(p,q,r,s,t); }=0A=
 };=0A=
 =0A=
 class Side_of_bounded_sphere=0A=
 {=0A=
   public:=0A=
     typedef Bounded_side result_type;=0A=
 =0A=
     template <class T>=0A=
     Bounded_side=0A=
     operator()(const T& p, const T& q, const T& t) const=0A=
     { return side_of_bounded_sphere(p,q,t); }=0A=
 =0A=
     template <class T>=0A=
     Bounded_side=0A=
     operator()(const T& p, const T& q, const T& r, const T& t) const=0A=
     { return side_of_bounded_sphere(p,q,r,t); }=0A=
 =0A=
     template <class T>=0A=
     Bounded_side=0A=
     operator()(const T& p, const T& q, const T& r, const T& s,=0A=
             const T& t) const=0A=
     { return side_of_bounded_sphere(p,q,r,s,t); }=0A=
 };=0A=
 =0A=
 class Call_is_horizontal=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     bool=0A=
     operator()( const Cls& c) const=0A=
     { return c.is_horizontal(); }=0A=
 };=0A=
 =0A=
 class Call_is_vertical=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     bool=0A=
     operator()( const Cls& c) const=0A=
     { return c.is_vertical(); }=0A=
 };=0A=
 =0A=
 class Call_is_degenerate=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     bool=0A=
     operator()( const Cls& c) const=0A=
     { return c.is_degenerate(); }=0A=
 };=0A=
 =0A=
 class Call_has_on_bounded_side=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     bool=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.has_on_bounded_side(a); }=0A=
 };=0A=
 =0A=
 class Call_has_on_unbounded_side=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     bool=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.has_on_unbounded_side(a); }=0A=
 };=0A=
 =0A=
 class Call_has_on_boundary=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     bool=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.has_on_boundary(a); }=0A=
 };=0A=
 =0A=
 class Call_has_on_positive_side=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     bool=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.has_on_positive_side(a); }=0A=
 };=0A=
 =0A=
 class Call_has_on_negative_side=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     bool=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.has_on_negative_side(a); }=0A=
 };=0A=
 =0A=
 class Call_oriented_side=0A=
 {=0A=
   public:=0A=
     typedef Oriented_side result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     Oriented_side=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.oriented_side(a); }=0A=
 };=0A=
 =0A=
 class Call_bounded_side=0A=
 {=0A=
   public:=0A=
     typedef Bounded_side result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class Arg>=0A=
     Bounded_side=0A=
     operator()( const Cls& c, const Arg& a) const=0A=
     { return c.bounded_side(a); }=0A=
 };=0A=
 =0A=
 class Less_x=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return less_x(a1,a2); }=0A=
 };=0A=
 =0A=
 class Less_y=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return less_y(a1,a2); }=0A=
 };=0A=
 =0A=
 class Less_z=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return less_y(a1,a2); }=0A=
 };=0A=
 =0A=
 class Less_xy=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return lexicographically_xy_smaller(a1,a2); }=0A=
 };=0A=
 =0A=
 class Less_yx=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return lexicographically_yx_smaller(a1,a2); }=0A=
 };=0A=
 =0A=
 class Less_xyz=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return lexicographically_xyz_smaller(a1,a2); }=0A=
 };=0A=
 =0A=
 class Equal=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()(const T1& p, const T2& q) const=0A=
     { return p =3D=3D q; }=0A=
 };=0A=
 =0A=
 class Equal_x=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return x_equal(a1,a2); }=0A=
 };=0A=
 =0A=
 class Equal_y=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return y_equal(a1,a2); }=0A=
 };=0A=
 =0A=
 class Equal_z=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return z_equal(a1,a2); }=0A=
 };=0A=
 =0A=
 class Equal_xy=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return equal_xy(a1,a2); }=0A=
 };=0A=
 =0A=
 class Equal_xyz=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     bool=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return equal_xyz(a1,a2); }=0A=
 };=0A=
 =0A=
 class Compare_x=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_x(a1,a2); }=0A=
 =0A=
     template <class T1, class T2, class T3>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3) const=0A=
     { return compare_x(a1,a2,a3); }=0A=
 =0A=
     template <class T1, class T2, class T3, class T4>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) =
 const=0A=
     { return compare_x(a1,a2,a3,a4); }=0A=
 =0A=
 };=0A=
 =0A=
 class Compare_y=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_y(a1,a2); }=0A=
 =0A=
     template <class T1, class T2, class T3>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3) const=0A=
     { return compare_y(a1,a2,a3); }=0A=
 =0A=
     template <class T1, class T2, class T3, class T4>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) =
 const=0A=
     { return compare_y(a1,a2,a3,a4); }=0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 class Compare_z=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_z(a1,a2); }=0A=
 };=0A=
 =0A=
 class Compare_xy=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_xy(a1,a2); }=0A=
 };=0A=
 =0A=
 class Compare_xyz=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_xyz(a1,a2); }=0A=
 };=0A=
 =0A=
 class Compare_y_at_x=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_y_at_x(a1,a2); }=0A=
 =0A=
     template <class T1, class T2, class T3>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3) const=0A=
     { return compare_y_at_x(a1,a2,a3); }=0A=
 =0A=
     template <class T1, class T2, class T3, class T4>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) =
 const=0A=
     { return compare_y_at_x(a1,a2,a3,a4); }=0A=
 };=0A=
 =0A=
 class Compare_x_at_y=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
 =0A=
     template <class T1, class T2>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2) const=0A=
     { return compare_x_at_y(a1,a2); }=0A=
 =0A=
     template <class T1, class T2, class T3>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3) const=0A=
     { return compare_x_at_y(a1,a2,a3); }=0A=
 =0A=
     template <class T1, class T2, class T3, class T4>=0A=
     Comparison_result=0A=
     operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) =
 const=0A=
     { return compare_x_at_y(a1,a2,a3,a4); }=0A=
 };=0A=
 =0A=
 template <class T>=0A=
 class Compare_distance=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     Comparison_result=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return cmp_dist_to_point(p,q,r); }=0A=
 };=0A=
 =0A=
 template <class T>=0A=
 class Compare_angle_with_x_axis=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     Comparison_result=0A=
     operator()(const T& p, const T& q) const=0A=
     { return compare_angle_with_x_axis(p,q); }=0A=
 };=0A=
 =0A=
 class Compare_slope=0A=
 {=0A=
   public:=0A=
     typedef Comparison_result result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class T>=0A=
     Comparison_result=0A=
     operator()(const T& l1, const T& l2) const=0A=
     { return compare_slopes(l1,l2); }=0A=
 };=0A=
 =0A=
 =0A=
 template <class Plane, class Point>=0A=
 class Less_signed_distance_to_plane=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     bool operator()( const Plane & p, const Point& q, const Point& r) =
 const=0A=
     { return has_smaller_signed_dist_to_plane(p,q,r); }=0A=
 };=0A=
 =0A=
 class Are_ordered_along_line=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return are_ordered_along_line(p,q,r); }=0A=
 };=0A=
 =0A=
 class Are_strictly_ordered_along_line=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return are_strictly_ordered_along_line(p,q,r); }=0A=
 };=0A=
 =0A=
 class Collinear_are_ordered_along_line=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return collinear_are_ordered_along_line(p,q,r); }=0A=
 };=0A=
 =0A=
 class Collinear_are_strictly_ordered_along_line=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 3 > Arity;=0A=
 =0A=
     template <class T>=0A=
     bool=0A=
     operator()(const T& p, const T& q, const T& r) const=0A=
     { return collinear_are_strictly_ordered_along_line(p,q,r); }=0A=
 };=0A=
 =0A=
 =0A=
 class Call_transform=0A=
 {=0A=
  public:=0A=
     template <class Transformation, class ArgumentType>=0A=
     ArgumentType=0A=
     operator()( const ArgumentType& a, const Transformation& t) const=0A=
     { return a.transform(t); }=0A=
 };=0A=
 =0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_source_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.source(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_target_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.target(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_min_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.min(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_max_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.max(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_vertex_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c, int i) const=0A=
     { return c.vertex(i); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_direction_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.direction(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_supporting_line_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.supporting_line(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_supporting_plane_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.supporting_plane(); }=0A=
 };=0A=
 =0A=
 template <class ReturnType>=0A=
 class Call_opposite_to_get=0A=
 {=0A=
   public:=0A=
     typedef ReturnType result_type;=0A=
     typedef Arity_tag< 1 > Arity;=0A=
 =0A=
     template <class Cls>=0A=
     ReturnType=0A=
     operator()( const Cls& c) const=0A=
     { return c.opposite(); }=0A=
 };=0A=
 =0A=
 =0A=
 class Call_has_on=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class A1>=0A=
     bool=0A=
     operator()( const Cls& c, const A1& a1) const=0A=
     { return c.has_on(a1); }=0A=
 };=0A=
 =0A=
 class Call_collinear_has_on=0A=
 {=0A=
   public:=0A=
     typedef bool result_type;=0A=
     typedef Arity_tag< 2 > Arity;=0A=
 =0A=
     template <class Cls, class A1>=0A=
     bool=0A=
     operator()( const Cls& c, const A1& a1) const=0A=
     { return c.collinear_has_on(a1); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 struct p_Orientation=0A=
 {=0A=
   typedef Orientation result_type;=0A=
 =0A=
   Orientation operator()(const Point& p, const Point& q, const Point& r) =
 const=0A=
   { return orientation(p,q,r); }=0A=
   Orientation operator()(const Point& p, const Point& q, const Point& r,=0A=
                          const Point& s) const=0A=
   { return orientation(p,q,r,s); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 struct p_Less_dist_to_point=0A=
 {=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 3 > Arity;=0A=
 =0A=
   bool operator()(const Point& p0, const Point& p1, const Point& p2) =
 const=0A=
   { return has_smaller_dist_to_point(p0, p1, p2); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 struct p_Less_xy=0A=
 {=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 =0A=
   bool operator()( const Point& p1, const Point& p2) const=0A=
        { return lexicographically_xy_smaller( p1, p2); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 struct p_Less_yx=0A=
 {=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 2 > Arity;=0A=
 =0A=
   bool operator()( const Point& p1, const Point& p2) const=0A=
        { return lexicographically_yx_smaller( p1, p2); }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Less_dist_to_line_2=0A=
 {=0A=
 public:=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 4 > Arity;=0A=
 =0A=
   bool operator()(const Point&a, const Point& b,=0A=
                    const Point& c, const Point& d) const=0A=
         {=0A=
           Comparison_result=0A=
             res =3D compare_signed_distance_to_line( a, b, c, d);=0A=
           if ( res =3D=3D LARGER )=0A=
           {=0A=
               return false;=0A=
           }=0A=
           else if ( res =3D=3D SMALLER )=0A=
           {=0A=
               return true;=0A=
           }=0A=
           else=0A=
           {=0A=
               return lexicographically_xy_smaller( c, d );=0A=
          }=0A=
         }=0A=
 =0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 class p_Less_rotate_ccw=0A=
 {=0A=
 public:=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 3 > Arity;=0A=
 =0A=
   bool operator()(const Point& r, const Point& p, const Point& q) const=0A=
         {=0A=
           Orientation ori =3D orientation(r, p, q);=0A=
           if ( ori =3D=3D LEFTTURN )=0A=
           {=0A=
               return true;=0A=
           }=0A=
           else if ( ori =3D=3D RIGHTTURN )=0A=
           {=0A=
               return false;=0A=
           }=0A=
           else=0A=
           {=0A=
               if (p =3D=3D r) return false;=0A=
               if (q =3D=3D r) return true;=0A=
               if (p =3D=3D q) return false;=0A=
               return collinear_are_ordered_along_line( r, q, p);=0A=
           }=0A=
         }=0A=
 };=0A=
 =0A=
 template <class Point>=0A=
 struct p_Left_turn=0A=
 {=0A=
   typedef bool result_type;=0A=
   typedef Arity_tag< 3 > Arity;=0A=
 =0A=
   bool operator()(const Point& p, const Point& q, const Point& r) const=0A=
         { return left_turn(p,q,r); }=0A=
 };=0A=
 =0A=
 =0A=
 }=0A=
 }=0A=
 # 85 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_3.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class PointC3=0A=
   : public R_::Point_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Point_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   PointC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   PointC3(const Origin &)=0A=
     : base(rep(FT(0), FT(0), FT(0))) {}=0A=
 =0A=
   PointC3(const Vector_3 &v)=0A=
     : base(v) {}=0A=
 =0A=
   PointC3(const FT &x, const FT &y, const FT &z)=0A=
     : base(rep(x, y, z)) {}=0A=
 =0A=
   PointC3(const FT &x, const FT &y, const FT &z, const FT &w)=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(rep(x/w, y/w, z/w));=0A=
     else=0A=
       initialize_with(rep(x, y, z));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const PointC3 &p) const=0A=
   {=0A=
       if (identical(p))=0A=
           return true;=0A=
       return x_equal(*this, p) && y_equal(*this, p) && z_equal(*this, p);=0A=
   }=0A=
   bool operator!=3D(const PointC3 &p) const=0A=
   {=0A=
       return !(*this =3D=3D p);=0A=
   }=0A=
 =0A=
   const FT & x() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & y() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   const FT & z() const=0A=
   {=0A=
       return Ptr()->e2;=0A=
   }=0A=
 =0A=
   const FT & hx() const=0A=
   {=0A=
       return x();=0A=
   }=0A=
   const FT & hy() const=0A=
   {=0A=
       return y();=0A=
   }=0A=
   const FT & hz() const=0A=
   {=0A=
       return z();=0A=
   }=0A=
   FT hw() const=0A=
   {=0A=
       return FT(1);=0A=
   }=0A=
 =0A=
   const FT & cartesian(int i) const;=0A=
   const FT & operator[](int i) const;=0A=
   FT homogeneous(int i) const;=0A=
 =0A=
   int dimension() const=0A=
   {=0A=
       return 3;=0A=
   }=0A=
   Bbox_3 bbox() const;=0A=
 =0A=
   PointC3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename PointC3<R>::FT &=0A=
 PointC3<R>::cartesian(int i) const=0A=
 {=0A=
   (((i>=3D0) && (i<=3D2))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i>=3D0) && (i<=3D2)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_3.h", 155, 0));=0A=
 =0A=
 =0A=
   if (i=3D=3D0) return x();=0A=
   if (i=3D=3D1) return y();=0A=
   return z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename PointC3<R>::FT &=0A=
 PointC3<R>::operator[](int i) const=0A=
 {=0A=
   return cartesian(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PointC3<R>::FT=0A=
 PointC3<R>::homogeneous(int i) const=0A=
 {=0A=
   ((i>=3D0 && i<=3D3)?(static_cast<void>(0)): ::CGAL::precondition_fail( =
 "i>=3D0 && i<=3D3" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Point_3.h", 176, 0));=0A=
   if (i<3) return cartesian(i);=0A=
   return FT(1);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Bbox_3=0A=
 PointC3<R>::bbox() const=0A=
 {=0A=
 =0A=
   double bx =3D CGAL::to_double(x());=0A=
   double by =3D CGAL::to_double(y());=0A=
   double bz =3D CGAL::to_double(z());=0A=
   return Bbox_3(bx, by, bz, bx, by, bz);=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const PointC3<R> &p)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << p.x() << ' ' << p.y() << ' ' << p.z();=0A=
     case IO::BINARY :=0A=
         write(os, p.x());=0A=
         write(os, p.y());=0A=
         write(os, p.z());=0A=
         return os;=0A=
     default:=0A=
         os << "PointC3(" << p.x() << ", " << p.y() << ", " << p.z() << =
 ")";=0A=
         return os;=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, PointC3<R> &p)=0A=
 {=0A=
     typename R::FT x, y, z;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> x >> y >> z;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, x);=0A=
         read(is, y);=0A=
         read(is, z);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         p =3D PointC3<R>(x, y, z);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 87 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class VectorC3=0A=
   : public R_::Vector_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Vector_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   VectorC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   VectorC3(const Null_vector &)=0A=
     : base(rep(FT(0), FT(0), FT(0))) {}=0A=
 =0A=
   VectorC3(const Point_3 &p)=0A=
     : base(p) {}=0A=
 =0A=
   VectorC3(const Point_3 &a, const Point_3 &b)=0A=
     : base(b-a) {}=0A=
 =0A=
   VectorC3(const Direction_3 &d)=0A=
     : base(d) {}=0A=
 =0A=
   VectorC3(const FT &x, const FT &y, const FT &z)=0A=
     : base(rep(x, y, z)) {}=0A=
 =0A=
   VectorC3(const FT &x, const FT &y, const FT &z, const FT &w)=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(rep(x/w, y/w, z/w));=0A=
     else=0A=
       initialize_with(rep(x, y, z));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const VectorC3 &p) const;=0A=
   bool operator!=3D(const VectorC3 &p) const;=0A=
 =0A=
   bool operator=3D=3D(const Null_vector &) const;=0A=
   bool operator!=3D(const Null_vector &) const;=0A=
 =0A=
   const FT & x() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & y() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   const FT & z() const=0A=
   {=0A=
       return Ptr()->e2;=0A=
   }=0A=
 =0A=
   const FT & hx() const=0A=
   {=0A=
       return x();=0A=
   }=0A=
   const FT & hy() const=0A=
   {=0A=
       return y();=0A=
   }=0A=
   const FT & hz() const=0A=
   {=0A=
       return z();=0A=
   }=0A=
   FT hw() const=0A=
   {=0A=
       return FT(1);=0A=
   }=0A=
 =0A=
   const FT & cartesian(int i) const;=0A=
   const FT & operator[](int i) const;=0A=
   FT homogeneous(int i) const;=0A=
 =0A=
   int dimension() const=0A=
   {=0A=
       return 3;=0A=
   }=0A=
 =0A=
   Vector_3 operator+(const VectorC3 &w) const;=0A=
   Vector_3 operator-(const VectorC3 &w) const;=0A=
   Vector_3 operator-() const;=0A=
   Vector_3 operator/(const FT &c) const;=0A=
   FT operator*(const VectorC3 &w) const;=0A=
   FT squared_length() const;=0A=
   Direction_3 direction() const;=0A=
   Vector_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC3<R>::operator=3D=3D(const VectorC3<R> &v) const=0A=
 {=0A=
   if (identical(v))=0A=
       return true;=0A=
   return x() =3D=3D v.x() && y() =3D=3D v.y() && z() =3D=3D v.z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC3<R>::operator!=3D(const VectorC3<R> &v) const=0A=
 {=0A=
   return !(*this =3D=3D v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC3<R>::operator=3D=3D(const Null_vector &) const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(x()) && CGAL::NTS:: is_zero(y()) &&=0A=
          CGAL::NTS:: is_zero(z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 VectorC3<R>::operator!=3D(const Null_vector &v) const=0A=
 {=0A=
   return !(*this =3D=3D v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename VectorC3<R>::FT &=0A=
 VectorC3<R>::cartesian(int i) const=0A=
 {=0A=
   (((i>=3D0) && (i<3))?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "(i>=3D0) && (i<3)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Vector_3.h", 196, 0));=0A=
   if (i=3D=3D0) return x();=0A=
   if (i=3D=3D1) return y();=0A=
   return z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename VectorC3<R>::FT &=0A=
 VectorC3<R>::operator[](int i) const=0A=
 {=0A=
   return cartesian(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename VectorC3<R>::FT=0A=
 VectorC3<R>::homogeneous(int i) const=0A=
 {=0A=
   if (i=3D=3D3) return FT(1);=0A=
   return cartesian(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::Vector_3=0A=
 VectorC3<R>::=0A=
 operator+(const VectorC3<R> &w) const=0A=
 {=0A=
   return VectorC3<R>(x() + w.x(), y() + w.y(), z() + w.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::Vector_3=0A=
 VectorC3<R>::operator-(const VectorC3<R> &w) const=0A=
 {=0A=
   return VectorC3<R>(x() - w.x(), y() - w.y(), z() - w.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::Vector_3=0A=
 VectorC3<R>::operator-() const=0A=
 {=0A=
   return Vector_3(-x(), -y(), -z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::FT=0A=
 VectorC3<R>::operator*(const VectorC3<R> &w) const=0A=
 {=0A=
   return x() * w.x() + y() * w.y() + z() * w.z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::FT=0A=
 VectorC3<R>::squared_length() const=0A=
 {=0A=
   return CGAL::NTS:: square(x()) + CGAL::NTS:: square(y()) + CGAL::NTS:: =
 square(z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::Vector_3=0A=
 VectorC3<R>::=0A=
 operator/(const typename VectorC3<R>::FT &c) const=0A=
 {=0A=
   return VectorC3<R>(x()/c, y()/c, z()/c);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename VectorC3<R>::Direction_3=0A=
 VectorC3<R>::direction() const=0A=
 {=0A=
   return Direction_3(*this);=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const VectorC3<R> &v)=0A=
 {=0A=
   switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
       return os << v.x() << ' ' << v.y() << ' ' << v.z();=0A=
     case IO::BINARY :=0A=
       write(os, v.x());=0A=
       write(os, v.y());=0A=
       write(os, v.z());=0A=
       return os;=0A=
     default:=0A=
       os << "VectorC3(" << v.x() << ", " << v.y() << ", " << v.z() << =
 ")";=0A=
       return os;=0A=
   }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, VectorC3<R> &p)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
       is >> x >> y >> z;=0A=
       break;=0A=
     case IO::BINARY :=0A=
       read(is, x);=0A=
       read(is, y);=0A=
       read(is, z);=0A=
       break;=0A=
     default:=0A=
       std::cerr << "" << std::endl;=0A=
       std::cerr << "Stream must be in ascii or binary mode" << std::endl;=0A=
       break;=0A=
   }=0A=
   if (is)=0A=
       p =3D VectorC3<R>(x, y, z);=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 88 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class DirectionC3=0A=
   : public R_::Direction_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Direction_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   DirectionC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   DirectionC3(const Vector_3 &v)=0A=
     : base(v) {}=0A=
 =0A=
   DirectionC3(const Line_3 &l)=0A=
     : base(l.direction()) {}=0A=
 =0A=
   DirectionC3(const Ray_3 &r)=0A=
     : base(r.direction()) {}=0A=
 =0A=
   DirectionC3(const Segment_3 &s)=0A=
     : base(s.direction()) {}=0A=
 =0A=
   DirectionC3(const FT &x, const FT &y, const FT &z)=0A=
     : base(rep(x, y, z)) {}=0A=
 =0A=
   bool operator=3D=3D(const DirectionC3 &d) const;=0A=
   bool operator!=3D(const DirectionC3 &d) const;=0A=
 =0A=
   Vector_3 to_vector() const;=0A=
   Vector_3 vector() const { return to_vector(); }=0A=
 =0A=
   Direction_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return t.transform(*this);=0A=
   }=0A=
 =0A=
   Direction_3 operator-() const;=0A=
 =0A=
   const FT & delta(int i) const;=0A=
   const FT & dx() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & dy() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   const FT & dz() const=0A=
   {=0A=
       return Ptr()->e2;=0A=
   }=0A=
 =0A=
   const FT & hdx() const=0A=
   {=0A=
       return dx();=0A=
   }=0A=
   const FT & hdy() const=0A=
   {=0A=
       return dy();=0A=
   }=0A=
   const FT & hdz() const=0A=
   {=0A=
       return dz();=0A=
   }=0A=
   FT hw() const=0A=
   {=0A=
       return FT(1);=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC3<R>::operator=3D=3D(const DirectionC3<R> &d) const=0A=
 {=0A=
   if (identical(d))=0A=
       return true;=0A=
   return equal_directionC3(dx(), dy(), dz(), d.dx(), d.dy(), d.dz());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 DirectionC3<R>::operator!=3D(const DirectionC3<R> &d) const=0A=
 {=0A=
   return !(*this =3D=3D d);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename DirectionC3<R>::Vector_3=0A=
 DirectionC3<R>::to_vector() const=0A=
 {=0A=
   return Vector_3(dx(), dy(), dz());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename DirectionC3<R>::Direction_3=0A=
 DirectionC3<R>::operator-() const=0A=
 {=0A=
   return DirectionC3<R>(-dx(), -dy(), -dz());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 const typename DirectionC3<R>::FT &=0A=
 DirectionC3<R>::delta(int i) const=0A=
 {=0A=
   ((i >=3D 0 && i <=3D 2)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "i >=3D 0 && i <=3D 2" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Direction_3.h", 175, 0));=0A=
   if (i=3D=3D0) return dx();=0A=
   if (i=3D=3D1) return dy();=0A=
   return dz();=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const DirectionC3<R> &d)=0A=
 {=0A=
   typename R::Vector_3 v =3D d.to_vector();=0A=
   switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
       return os << v.x() << ' ' << v.y() << ' ' << v.z();=0A=
     case IO::BINARY :=0A=
       write(os, v.x());=0A=
       write(os, v.y());=0A=
       write(os, v.z());=0A=
       return os;=0A=
     default:=0A=
       os << "DirectionC3(" << v.x() << ", " << v.y() << ", " << v.z() << =
 ")";=0A=
       return os;=0A=
   }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, DirectionC3<R> &d)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
       is >> x >> y >> z;=0A=
       break;=0A=
     case IO::BINARY :=0A=
       read(is, x);=0A=
       read(is, y);=0A=
       read(is, z);=0A=
       break;=0A=
     default:=0A=
       std::cerr << "" << std::endl;=0A=
       std::cerr << "Stream must be in ascii or binary mode" << std::endl;=0A=
       break;=0A=
   }=0A=
   if (is)=0A=
       d =3D DirectionC3<R>(x, y, z);=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 89 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Line_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class LineC3=0A=
   : public R_::Line_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Plane_3 Plane_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Line_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   LineC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   LineC3(const Point_3 &p, const Point_3 &q)=0A=
     : base(rep(p, (q-p).direction())) {}=0A=
 =0A=
   LineC3(const Segment_3 &s)=0A=
     : base(rep(s.start(), (s.end() - s.start()).direction())) {}=0A=
 =0A=
   LineC3(const Ray_3 &r)=0A=
     : base(rep(r.start(), (r.point(1) - r.start()).direction())) {}=0A=
 =0A=
   LineC3(const Point_3 &p, const Direction_3 &d)=0A=
     : base(rep(p, d)) {}=0A=
 =0A=
   bool operator=3D=3D(const LineC3 &l) const;=0A=
   bool operator!=3D(const LineC3 &l) const;=0A=
 =0A=
   Plane_3 perpendicular_plane(const Point_3 &p) const;=0A=
   Line_3 opposite() const;=0A=
 =0A=
   const Point_3 & point() const=0A=
   {=0A=
       return Ptr()->first;=0A=
   }=0A=
   const Direction_3 & direction() const=0A=
   {=0A=
       return Ptr()->second;=0A=
   }=0A=
 =0A=
   Point_3 point(int i) const;=0A=
 =0A=
   Point_3 projection(const Point_3 &p) const;=0A=
 =0A=
   bool has_on(const Point_3 &p) const;=0A=
   bool is_degenerate() const;=0A=
 =0A=
   Line_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return LineC3<R>(t.transform(point()), t.transform(direction()));=0A=
   }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC3<R>::operator=3D=3D(const LineC3<R> &l) const=0A=
 {=0A=
   if (identical(l))=0A=
       return true;=0A=
   return has_on(l.point()) && (direction() =3D=3D l.direction());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC3<R>::operator!=3D(const LineC3<R> &l) const=0A=
 {=0A=
   return !(*this =3D=3D l);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC3<R>::Point_3=0A=
 LineC3<R>::point(int i) const=0A=
 {=0A=
   return point_on_line(i, *this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC3<R>::Plane_3=0A=
 LineC3<R>::=0A=
 perpendicular_plane(const typename LineC3<R>::Point_3 &p) const=0A=
 {=0A=
   return Plane_3(p, direction().to_vector());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC3<R>::Line_3=0A=
 LineC3<R>::opposite() const=0A=
 {=0A=
   return LineC3<R>(point(), -direction());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename LineC3<R>::Point_3=0A=
 LineC3<R>::=0A=
 projection(const typename LineC3<R>::Point_3 &p) const=0A=
 {=0A=
   return projection_line(p, *this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC3<R>::=0A=
 has_on(const typename LineC3<R>::Point_3 &p) const=0A=
 {=0A=
   return collinear(point(), point()+direction().to_vector(), p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 LineC3<R>::is_degenerate() const=0A=
 {=0A=
   return direction() =3D=3D Direction_3(0,0,0);=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const LineC3<R> &l)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << l.point(0) << ' ' << l.point(1);=0A=
     case IO::BINARY :=0A=
         return os << l.point(0) << l.point(1);=0A=
     default:=0A=
         return os << "LineC3(" << l.point(0) << ", " << l.point(1) << =
 ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, LineC3<R> &l)=0A=
 {=0A=
     typename R::Point_3 p, q;=0A=
     is >> p >> q;=0A=
     if (is)=0A=
         l =3D LineC3<R>(p, q);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 90 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Plane_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Plane_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class PlaneC3=0A=
   : public R_::Plane_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_2 Point_2;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Plane_3 Plane_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Plane_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   PlaneC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   PlaneC3(const Point_3 &p, const Point_3 &q, const Point_3 &r)=0A=
     : base(plane_from_points(p, q, r)) {}=0A=
 =0A=
   PlaneC3(const Point_3 &p, const Direction_3 &d)=0A=
     : base(plane_from_point_direction(p, d)) {}=0A=
 =0A=
   PlaneC3(const Point_3 &p, const Vector_3 &v)=0A=
     : base(plane_from_point_direction(p, v.direction())) {}=0A=
 =0A=
   PlaneC3(const FT &a, const FT &b, const FT &c, const FT &d)=0A=
     : base(rep(a, b, c, d)) {}=0A=
 =0A=
   PlaneC3(const Line_3 &l, const Point_3 &p)=0A=
     : base(plane_from_points(l.point(),=0A=
                                        =
 l.point()+l.direction().to_vector(),=0A=
                                        p)) {}=0A=
 =0A=
   PlaneC3(const Segment_3 &s, const Point_3 &p)=0A=
     : base(plane_from_points(s.start(), s.end(), p)) {}=0A=
 =0A=
   PlaneC3(const Ray_3 &r, const Point_3 &p)=0A=
     : base(plane_from_points(r.start(), r.second_point(), p)) {}=0A=
 =0A=
   bool operator=3D=3D(const PlaneC3 &p) const;=0A=
   bool operator!=3D(const PlaneC3 &p) const;=0A=
 =0A=
   const FT & a() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const FT & b() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   const FT & c() const=0A=
   {=0A=
       return Ptr()->e2;=0A=
   }=0A=
   const FT & d() const=0A=
   {=0A=
       return Ptr()->e3;=0A=
   }=0A=
 =0A=
   Line_3 perpendicular_line(const Point_3 &p) const;=0A=
   Plane_3 opposite() const;=0A=
 =0A=
   Point_3 point() const;=0A=
   Point_3 projection(const Point_3 &p) const;=0A=
   Vector_3 orthogonal_vector() const;=0A=
   Direction_3 orthogonal_direction() const;=0A=
   Vector_3 base1() const;=0A=
   Vector_3 base2() const;=0A=
 =0A=
   Point_3 to_plane_basis(const Point_3 &p) const;=0A=
 =0A=
   Point_2 to_2d(const Point_3 &p) const;=0A=
   Point_3 to_3d(const Point_2 &p) const;=0A=
 =0A=
   Plane_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     if (t.is_even())=0A=
       return PlaneC3<R>(t.transform(point()),=0A=
                  =
 t.transpose().inverse().transform(orthogonal_direction()));=0A=
     else=0A=
       return PlaneC3<R>( t.transform(point()),=0A=
                - =
 t.transpose().inverse().transform(orthogonal_direction()));=0A=
   }=0A=
 =0A=
   Oriented_side oriented_side(const Point_3 &p) const;=0A=
 =0A=
   bool has_on_boundary(const Point_3 &p) const=0A=
   {=0A=
     return has_on(p);=0A=
   }=0A=
   bool has_on_boundary(const Line_3 &l) const=0A=
   {=0A=
     return has_on(l);=0A=
   }=0A=
 =0A=
   bool has_on_positive_side(const Point_3 &l) const;=0A=
   bool has_on_negative_side(const Point_3 &l) const;=0A=
   bool has_on(const Point_3 &p) const=0A=
   {=0A=
     return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A=
   }=0A=
   bool has_on(const Line_3 &l) const=0A=
   {=0A=
     return has_on(l.point())=0A=
        && has_on(l.point() + l.direction().to_vector());=0A=
   }=0A=
 =0A=
   bool is_degenerate() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 PlaneC3<R>::operator=3D=3D(const PlaneC3<R> &p) const=0A=
 {=0A=
   if (identical(p))=0A=
       return true;=0A=
   return equal_plane(*this, p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 PlaneC3<R>::operator!=3D(const PlaneC3<R> &p) const=0A=
 {=0A=
   return !(*this =3D=3D p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Point_3=0A=
 PlaneC3<R>::point() const=0A=
 {=0A=
   return point_on_plane(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Point_3=0A=
 PlaneC3<R>::=0A=
 projection(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   return CGAL::projection_plane(p, *this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Vector_3=0A=
 PlaneC3<R>::orthogonal_vector() const=0A=
 {=0A=
   return Vector_3(a(), b(), c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Direction_3=0A=
 PlaneC3<R>::orthogonal_direction() const=0A=
 {=0A=
   return Direction_3(a(), b(), c());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename PlaneC3<R>::Vector_3=0A=
 PlaneC3<R>::base1() const=0A=
 {=0A=
   if ( CGAL::NTS:: is_zero(a()) )=0A=
       return Vector_3(FT(1), FT(0), FT(0));=0A=
 =0A=
   if ( CGAL::NTS:: is_zero(b()) )=0A=
       return Vector_3(FT(0), FT(1), FT(0));=0A=
 =0A=
   if ( CGAL::NTS:: is_zero(c()) )=0A=
       return Vector_3(FT(0), FT(0), FT(1));=0A=
 =0A=
   return Vector_3(-b(), a(), FT(0));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename PlaneC3<R>::Vector_3=0A=
 PlaneC3<R>::base2() const=0A=
 {=0A=
   return cross_product(orthogonal_vector(), base1());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename PlaneC3<R>::Point_3=0A=
 PlaneC3<R>::=0A=
 to_plane_basis(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   FT alpha, beta, gamma;=0A=
 =0A=
   solve(base1(), base2(), orthogonal_vector(), p - point(),=0A=
         alpha, beta, gamma);=0A=
 =0A=
   return Point_3(alpha, beta, gamma);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 typename PlaneC3<R>::Point_2=0A=
 PlaneC3<R>::=0A=
 to_2d(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   FT alpha, beta, gamma;=0A=
 =0A=
   solve(base1(), base2(), orthogonal_vector(), p - point(),=0A=
         alpha, beta, gamma);=0A=
 =0A=
   return Point_2(alpha, beta);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Point_3=0A=
 PlaneC3<R>::=0A=
 to_3d(const typename PlaneC3<R>::Point_2 &p) const=0A=
 {=0A=
   return point() + p.x() * base1() + p.y() * base2();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Line_3=0A=
 PlaneC3<R>::=0A=
 perpendicular_line(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   return Line_3(p, orthogonal_direction());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename PlaneC3<R>::Plane_3=0A=
 PlaneC3<R>::opposite() const=0A=
 {=0A=
   return PlaneC3<R>(-a(), -b(), -c(), -d());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Oriented_side=0A=
 PlaneC3<R>::=0A=
 oriented_side(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   return side_of_oriented_plane(*this, p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 PlaneC3<R>::=0A=
 has_on_positive_side(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 PlaneC3<R>::=0A=
 has_on_negative_side(const typename PlaneC3<R>::Point_3 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 PlaneC3<R>::=0A=
 is_degenerate() const=0A=
 {=0A=
   return CGAL::NTS:: is_zero(a()) && CGAL::NTS:: is_zero(b()) &&=0A=
          CGAL::NTS:: is_zero(c());=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const PlaneC3<R> &p)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << p.a() << ' ' << p.b() << ' ' << p.c() << ' ' << =
 p.d();=0A=
     case IO::BINARY :=0A=
         write(os, p.a());=0A=
         write(os, p.b());=0A=
         write(os, p.c());=0A=
         write(os, p.d());=0A=
         return os;=0A=
         default:=0A=
             os << "PlaneC3(" << p.a() << ", " << p.b() << ", ";=0A=
             os << p.c() << ", " << p.d() <<")";=0A=
             return os;=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, PlaneC3<R> &p)=0A=
 {=0A=
     typename R::FT a, b, c, d;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> a >> b >> c >> d;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         read(is, a);=0A=
         read(is, b);=0A=
         read(is, c);=0A=
         read(is, d);=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         p =3D PlaneC3<R>(a, b, c, d);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 91 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class RayC3=0A=
   : public R_::Ray_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Ray_3 Ray_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Ray_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   RayC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   RayC3(const Point_3 &sp, const Point_3 &secondp)=0A=
     : base(rep(sp, secondp)) {}=0A=
 =0A=
   RayC3(const Point_3 &sp, const Direction_3 &d)=0A=
     : base(rep(sp, sp + d.to_vector())) {}=0A=
 =0A=
   bool operator=3D=3D(const RayC3 &r) const;=0A=
   bool operator!=3D(const RayC3 &r) const;=0A=
 =0A=
   const Point_3 & start() const;=0A=
   const Point_3 & source() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const Point_3 & second_point() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   Point_3 point(int i) const;=0A=
 =0A=
   Direction_3 direction() const;=0A=
   Line_3 supporting_line() const;=0A=
   Ray_3 opposite() const;=0A=
 =0A=
   Ray_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return RayC3<R>(t.transform(source()), t.transform(second_point()));=0A=
   }=0A=
 =0A=
   bool is_degenerate() const;=0A=
   bool has_on(const Point_3 &p) const;=0A=
   bool collinear_has_on(const Point_3 &p) const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC3<R>::operator=3D=3D(const RayC3<R> &r) const=0A=
 {=0A=
     if (identical(r))=0A=
         return true;=0A=
     return source() =3D=3D r.source() && direction() =3D=3D =
 r.direction();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC3<R>::operator!=3D(const RayC3<R> &r) const=0A=
 {=0A=
   return !(*this =3D=3D r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename RayC3<R>::Point_3 &=0A=
 RayC3<R>::start() const=0A=
 {=0A=
   return source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC3<R>::Point_3=0A=
 RayC3<R>::point(int i) const=0A=
 {=0A=
   ((i >=3D 0)?(static_cast<void>(0)): ::CGAL::precondition_fail( "i >=3D =
 0" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Ray_3.h", 141, 0));=0A=
   if (i =3D=3D 0) return source();=0A=
   if (i =3D=3D 1) return second_point();=0A=
   return source() + FT(i) * (second_point() - source());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC3<R>::Direction_3=0A=
 RayC3<R>::direction() const=0A=
 {=0A=
   return Direction_3( second_point() - source() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC3<R>::Line_3=0A=
 RayC3<R>::supporting_line() const=0A=
 {=0A=
   return Line_3(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename RayC3<R>::Ray_3=0A=
 RayC3<R>::opposite() const=0A=
 {=0A=
   return RayC3<R>( source(), - direction() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 RayC3<R>::=0A=
 has_on(const typename RayC3<R>::Point_3 &p) const=0A=
 {=0A=
   return (p =3D=3D source()) ||=0A=
          ( collinear(source(), p, second_point())=0A=
            && ( Direction_3(p - source()) =3D=3D direction() ));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC3<R>::is_degenerate() const=0A=
 {=0A=
   return source() =3D=3D second_point();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 RayC3<R>::=0A=
 collinear_has_on(const typename RayC3<R>::Point_3 &p) const=0A=
 {=0A=
   (static_cast<void>(0));=0A=
 =0A=
   Comparison_result cx =3D compare_x(source(), second_point());=0A=
   if (cx !=3D EQUAL)=0A=
     return cx !=3D compare_x(p, source());=0A=
 =0A=
   Comparison_result cy =3D compare_y(source(), second_point());=0A=
   if (cy !=3D EQUAL)=0A=
     return cy !=3D compare_y(p, source());=0A=
 =0A=
   Comparison_result cz =3D compare_z(source(), second_point());=0A=
   if (cz !=3D EQUAL)=0A=
     return cz !=3D compare_z(p, source());=0A=
 =0A=
   return true;=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const RayC3<R> &r)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << r.start() << ' ' << r.direction();=0A=
     case IO::BINARY :=0A=
         return os<< r.start() << r.direction();=0A=
     default:=0A=
         return os << "RayC3(" << r.start() << ", " << r.direction() << =
 ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, RayC3<R> &r)=0A=
 {=0A=
     typename R::Point_3 p;=0A=
     typename R::Direction_3 d;=0A=
 =0A=
     is >> p >> d;=0A=
 =0A=
     if (is)=0A=
         r =3D RayC3<R>(p, d);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 92 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Segment_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Segment_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class SegmentC3=0A=
   : public R_::Segment_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Line_3 Line_3;=0A=
   typedef typename R_::Segment_3 Segment_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Segment_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   SegmentC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   SegmentC3(const Point_3 &sp, const Point_3 &ep)=0A=
     : base(rep(sp, ep)) {}=0A=
 =0A=
   bool has_on(const Point_3 &p) const;=0A=
   bool collinear_has_on(const Point_3 &p) const;=0A=
 =0A=
   bool operator=3D=3D(const SegmentC3 &s) const;=0A=
   bool operator!=3D(const SegmentC3 &s) const;=0A=
 =0A=
   const Point_3 & source() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const Point_3 & target() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
 =0A=
   const Point_3 & start() const;=0A=
   const Point_3 & end() const;=0A=
 =0A=
   const Point_3 & min() const;=0A=
   const Point_3 & max() const;=0A=
   const Point_3 & vertex(int i) const;=0A=
   const Point_3 & point(int i) const;=0A=
   const Point_3 & operator[](int i) const;=0A=
 =0A=
   FT squared_length() const;=0A=
 =0A=
   Direction_3 direction() const;=0A=
   Line_3 supporting_line() const;=0A=
   Segment_3 opposite() const;=0A=
   Segment_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return SegmentC3<R>(t.transform(source()), t.transform(target()));=0A=
   }=0A=
 =0A=
   bool is_degenerate() const;=0A=
   Bbox_3 bbox() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC3<R>::operator=3D=3D(const SegmentC3<R> &s) const=0A=
 {=0A=
   if (identical(s))=0A=
       return true;=0A=
   return source() =3D=3D s.source() && target() =3D=3D s.target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC3<R>::operator!=3D(const SegmentC3<R> &s) const=0A=
 {=0A=
   return !(*this =3D=3D s);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::start() const=0A=
 {=0A=
   return source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::end() const=0A=
 {=0A=
   return target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::min() const=0A=
 {=0A=
   return lexicographically_xyz_smaller(source(),target()) ? source()=0A=
                                                           : target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::max() const=0A=
 {=0A=
   return lexicographically_xyz_smaller(source(),target()) ? target()=0A=
                                                           : source();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::vertex(int i) const=0A=
 {=0A=
   return (i%2 =3D=3D 0) ? source() : target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::point(int i) const=0A=
 {=0A=
   return (i%2 =3D=3D 0) ? source() : target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename SegmentC3<R>::Point_3 &=0A=
 SegmentC3<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC3<R>::FT=0A=
 SegmentC3<R>::squared_length() const=0A=
 {=0A=
   return squared_distance(target(), source());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC3<R>::Direction_3=0A=
 SegmentC3<R>::direction() const=0A=
 {=0A=
   return Direction_3( target() - source() );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC3<R>::Line_3=0A=
 SegmentC3<R>::supporting_line() const=0A=
 {=0A=
   return Line_3(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SegmentC3<R>::Segment_3=0A=
 SegmentC3<R>::opposite() const=0A=
 {=0A=
   return SegmentC3<R>(target(), source());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC3<R>::is_degenerate() const=0A=
 {=0A=
   return source() =3D=3D target();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_3=0A=
 SegmentC3<R>::bbox() const=0A=
 {=0A=
   return source().bbox() + target().bbox();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC3<R>::=0A=
 has_on(const typename SegmentC3<R>::Point_3 &p) const=0A=
 {=0A=
   return are_ordered_along_line(source(), p, target());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SegmentC3<R>::=0A=
 collinear_has_on(const typename SegmentC3<R>::Point_3 &p) const=0A=
 {=0A=
   return collinear_are_ordered_along_line(source(), p, target());=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const SegmentC3<R> &s)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << s.source() << ' ' << s.target();=0A=
     case IO::BINARY :=0A=
         return os << s.source() << s.target();=0A=
     default:=0A=
         return os << "SegmentC3(" << s.source() << ", " << s.target() << =
 ")";=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, SegmentC3<R> &s)=0A=
 {=0A=
     typename R::Point_3 p, q;=0A=
 =0A=
     is >> p >> q;=0A=
 =0A=
     if (is)=0A=
         s =3D SegmentC3<R>(p, q);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 93 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Triangle_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Triangle_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class TriangleC3=0A=
   : public R_::Triangle_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Plane_3 Plane_3;=0A=
   typedef typename R_::Triangle_3 Triangle_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Triangle_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   TriangleC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   TriangleC3(const Point_3 &p, const Point_3 &q, const Point_3 &r)=0A=
     : base(rep(p, q, r)) {}=0A=
 =0A=
   bool operator=3D=3D(const TriangleC3 &t) const;=0A=
   bool operator!=3D(const TriangleC3 &t) const;=0A=
 =0A=
   Plane_3 supporting_plane() const;=0A=
 =0A=
   Triangle_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return TriangleC3<R>(t.transform(vertex(0)),=0A=
                 t.transform(vertex(1)),=0A=
                 t.transform(vertex(2)));=0A=
   }=0A=
 =0A=
   bool has_on(const Point_3 &p) const;=0A=
   bool is_degenerate() const;=0A=
 =0A=
   const Point_3 & vertex(int i) const;=0A=
   const Point_3 & operator[](int i) const;=0A=
 =0A=
   Bbox_3 bbox() const;=0A=
 =0A=
   FT squared_area() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 TriangleC3<R>::operator=3D=3D(const TriangleC3<R> &t) const=0A=
 {=0A=
   if (identical(t))=0A=
       return true;=0A=
 =0A=
   int i;=0A=
   for(i=3D0; i<3; i++)=0A=
     if ( vertex(0) =3D=3D t.vertex(i) )=0A=
        break;=0A=
 =0A=
   return (i<3) && vertex(1) =3D=3D t.vertex(i+1) && vertex(2) =3D=3D =
 t.vertex(i+2);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TriangleC3<R>::operator!=3D(const TriangleC3<R> &t) const=0A=
 {=0A=
   return !(*this =3D=3D t);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 const typename TriangleC3<R>::Point_3 &=0A=
 TriangleC3<R>::vertex(int i) const=0A=
 {=0A=
   if (i<0) i=3D(i%3)+3;=0A=
   else if (i>2) i=3Di%3;=0A=
   return (i=3D=3D0) ? Ptr()->e0 :=0A=
          (i=3D=3D1) ? Ptr()->e1 :=0A=
                   Ptr()->e2;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename TriangleC3<R>::Point_3 &=0A=
 TriangleC3<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename TriangleC3<R>::FT=0A=
 TriangleC3<R>::squared_area() const=0A=
 {=0A=
   typename R::Vector_3 v1 =3D vertex(1)-vertex(0);=0A=
   typename R::Vector_3 v2 =3D vertex(2)-vertex(0);=0A=
   typename R::Vector_3 v3 =3D cross_product(v1, v2);=0A=
   return (v3.squared_length())/FT(4);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename TriangleC3<R>::Plane_3=0A=
 TriangleC3<R>::supporting_plane() const=0A=
 {=0A=
   return Plane_3(vertex(0), vertex(1), vertex(2));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Bbox_3=0A=
 TriangleC3<R>::bbox() const=0A=
 {=0A=
   return vertex(0).bbox() + vertex(1).bbox() + vertex(2).bbox();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 TriangleC3<R>::=0A=
 has_on(const typename TriangleC3<R>::Point_3 &p) const=0A=
 {=0A=
   Point_3 o =3D vertex(0) + supporting_plane().orthogonal_vector();=0A=
   Vector_3 v0 =3D vertex(0)-o,=0A=
            v1 =3D vertex(1)-o,=0A=
            v2 =3D vertex(2)-o;=0A=
 =0A=
   FT alpha, beta, gamma;=0A=
   solve(v0, v1, v2, p-o, alpha, beta, gamma);=0A=
   return (alpha >=3D FT(0)) && (beta >=3D FT(0)) && (gamma >=3D FT(0))=0A=
       && ((alpha+beta+gamma =3D=3D FT(1)));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 TriangleC3<R>::is_degenerate() const=0A=
 {=0A=
   return collinear(vertex(0),vertex(1),vertex(2));=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const TriangleC3<R> &t)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << t[0] << ' ' << t[1] << ' ' << t[2];=0A=
     case IO::BINARY :=0A=
         return os << t[0] << t[1] << t[2];=0A=
     default:=0A=
         os << "TriangleC3(" << t[0] << ", " << t[1] << ", " << t[2] =
 <<")";=0A=
         return os;=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, TriangleC3<R> &t)=0A=
 {=0A=
     typename R::Point_3 p, q, r;=0A=
 =0A=
     is >> p >> q >> r;=0A=
 =0A=
     if (is)=0A=
         t =3D TriangleC3<R>(p, q, r);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 94 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Tetrahedron_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Tetrahedron_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/solve_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/solve_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/so=
 lve.h" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/so=
 lve.h"=0A=
 namespace CGAL {=0A=
 =0A=
 =0A=
 template <class FT>=0A=
 void solve (const FT &a1, const FT &a2, const FT &a3,=0A=
                  const FT &b1, const FT &b2, const FT &b3,=0A=
                  const FT &c1, const FT &c2, const FT &c3,=0A=
                  const FT &d1, const FT &d2, const FT &d3,=0A=
                  FT &x, FT &y, FT &z)=0A=
 {=0A=
   FT denom =3D b2*c1*a3-b1*c2*a3+c3*b1*a2+b3*c2*a1-c1*b3*a2-b2*c3*a1;=0A=
 =0A=
   x =3D - (b2*c3*d1-b2*c1*d3+c1*b3*d2+b1*c2*d3-c3*b1*d2-b3*c2*d1)/denom;=0A=
 =0A=
   z =3D (b2*d1*a3-b2*a1*d3+b1*a2*d3-b1*d2*a3-d1*b3*a2+a1*b3*d2)/denom;=0A=
 =0A=
   y =3D (a2*c3*d1-a2*c1*d3-c2*d1*a3+c2*a1*d3+d2*c1*a3-d2*c3*a1)/denom;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <class FT>=0A=
 void solve_quadratic (const FT &a1, const FT &a2, const FT &a3,=0A=
                            const FT &b1, const FT &b2, const FT &b3,=0A=
                            const FT &d1, const FT &d2, const FT &d3,=0A=
                            FT &x, FT &y, FT &z)=0A=
 {=0A=
   FT denom =3D b2*a3-b1*a3+b1*a2+b3*a1-b3*a2-b2*a1;=0A=
 =0A=
   x =3D - (b2*d1-b2*d3+b3*d2+b1*d3-b1*d2-b3*d1)/denom;=0A=
 =0A=
   z =3D (b2*d1*a3-b2*a1*d3+b1*a2*d3-b1*d2*a3-d1*b3*a2+a1*b3*d2)/denom;=0A=
 =0A=
   y =3D (a2*d1-a2*d3-d1*a3+a1*d3+d2*a3-d2*a1)/denom;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/solve_3.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class R>=0A=
 void solve (const VectorC3<R> &v0,=0A=
             const VectorC3<R> &v1,=0A=
             const VectorC3<R> &v2,=0A=
             const VectorC3<R> &d,=0A=
             typename R::FT &alpha, typename R::FT &beta, typename R::FT =
 &gamma)=0A=
 {=0A=
   solve(v0.x(), v0.y(), v0.z(),=0A=
         v1.x(), v1.y(), v1.z(),=0A=
         v2.x(), v2.y(), v2.z(),=0A=
         d.x(), d.y(), d.z(),=0A=
         alpha, beta, gamma);=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Tetrahedron_3.h" 2=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/vector" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/vector" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   void=0A=
   __throw_bad_exception(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_alloc(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_cast(void);=0A=
 =0A=
   void=0A=
   __throw_bad_typeid(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_logic_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_domain_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_invalid_argument(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_length_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_out_of_range(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_runtime_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_range_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_overflow_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_underflow_error(const char* __s);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_ios_failure(const char* __s);=0A=
 }=0A=
 # 67 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A=
 # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A=
 # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
   void=0A=
   __throw_bad_exception(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_alloc(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_bad_cast(void);=0A=
 =0A=
   void=0A=
   __throw_bad_typeid(void);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_logic_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_domain_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_invalid_argument(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_length_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_out_of_range(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_runtime_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_range_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_overflow_error(const char* __s);=0A=
 =0A=
   void=0A=
   __throw_underflow_error(const char* __s);=0A=
 =0A=
 =0A=
   void=0A=
   __throw_ios_failure(const char* __s);=0A=
 }=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 2 3=0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 # 78 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
 template <class _Tp, class _Allocator, bool _IsStatic>=0A=
 class _Vector_alloc_base {=0A=
 public:=0A=
   typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type=0A=
           allocator_type;=0A=
   allocator_type get_allocator() const { return _M_data_allocator; }=0A=
 =0A=
   _Vector_alloc_base(const allocator_type& __a)=0A=
     : _M_data_allocator(__a), _M_start(0), _M_finish(0), =
 _M_end_of_storage(0)=0A=
   {}=0A=
 =0A=
 protected:=0A=
   allocator_type _M_data_allocator;=0A=
   _Tp* _M_start;=0A=
   _Tp* _M_finish;=0A=
   _Tp* _M_end_of_storage;=0A=
 =0A=
   _Tp* _M_allocate(size_t __n)=0A=
     { return _M_data_allocator.allocate(__n); }=0A=
   void _M_deallocate(_Tp* __p, size_t __n)=0A=
     { if (__p) _M_data_allocator.deallocate(__p, __n); }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <class _Tp, class _Allocator>=0A=
 class _Vector_alloc_base<_Tp, _Allocator, true> {=0A=
 public:=0A=
   typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type=0A=
           allocator_type;=0A=
   allocator_type get_allocator() const { return allocator_type(); }=0A=
 =0A=
   _Vector_alloc_base(const allocator_type&)=0A=
     : _M_start(0), _M_finish(0), _M_end_of_storage(0)=0A=
   {}=0A=
 =0A=
 protected:=0A=
   _Tp* _M_start;=0A=
   _Tp* _M_finish;=0A=
   _Tp* _M_end_of_storage;=0A=
 =0A=
   typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type =
 _Alloc_type;=0A=
   _Tp* _M_allocate(size_t __n)=0A=
     { return _Alloc_type::allocate(__n); }=0A=
   void _M_deallocate(_Tp* __p, size_t __n)=0A=
     { _Alloc_type::deallocate(__p, __n);}=0A=
 };=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 struct _Vector_base=0A=
   : public _Vector_alloc_base<_Tp, _Alloc,=0A=
                               _Alloc_traits<_Tp, =
 _Alloc>::_S_instanceless>=0A=
 {=0A=
   typedef _Vector_alloc_base<_Tp, _Alloc,=0A=
                              _Alloc_traits<_Tp, _Alloc>::_S_instanceless>=0A=
           _Base;=0A=
   typedef typename _Base::allocator_type allocator_type;=0A=
 =0A=
   _Vector_base(const allocator_type& __a) : _Base(__a) {}=0A=
   _Vector_base(size_t __n, const allocator_type& __a) : _Base(__a) {=0A=
     _M_start =3D _M_allocate(__n);=0A=
     _M_finish =3D _M_start;=0A=
     _M_end_of_storage =3D _M_start + __n;=0A=
   }=0A=
 =0A=
   ~_Vector_base() { _M_deallocate(_M_start, _M_end_of_storage - =
 _M_start); }=0A=
 };=0A=
 # 165 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
 template <class _Tp, class _Alloc =3D allocator<_Tp> >=0A=
 class vector : protected _Vector_base<_Tp, _Alloc>=0A=
 {=0A=
 =0A=
  =0A=
 =0A=
 private:=0A=
   typedef _Vector_base<_Tp, _Alloc> _Base;=0A=
   typedef vector<_Tp, _Alloc> vector_type;=0A=
 public:=0A=
   typedef _Tp value_type;=0A=
   typedef value_type* pointer;=0A=
   typedef const value_type* const_pointer;=0A=
   typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;=0A=
   typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>=0A=
                                                         const_iterator;=0A=
   typedef value_type& reference;=0A=
   typedef const value_type& const_reference;=0A=
   typedef size_t size_type;=0A=
   typedef ptrdiff_t difference_type;=0A=
 =0A=
   typedef typename _Base::allocator_type allocator_type;=0A=
   allocator_type get_allocator() const { return _Base::get_allocator(); }=0A=
 =0A=
   typedef reverse_iterator<const_iterator> const_reverse_iterator;=0A=
   typedef reverse_iterator<iterator> reverse_iterator;=0A=
 =0A=
 protected:=0A=
   using _Base::_M_allocate;=0A=
   using _Base::_M_deallocate;=0A=
   using _Base::_M_start;=0A=
   using _Base::_M_finish;=0A=
   using _Base::_M_end_of_storage;=0A=
 =0A=
 protected:=0A=
   void _M_insert_aux(iterator __position, const _Tp& __x);=0A=
   void _M_insert_aux(iterator __position);=0A=
 =0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator begin() { return iterator (_M_start); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator begin() const=0A=
     { return const_iterator (_M_start); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator end() { return iterator (_M_finish); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator end() const { return const_iterator (_M_finish); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rbegin()=0A=
     { return reverse_iterator(end()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rbegin() const=0A=
     { return const_reverse_iterator(end()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rend()=0A=
     { return reverse_iterator(begin()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rend() const=0A=
     { return const_reverse_iterator(begin()); }=0A=
 =0A=
 =0A=
   size_type size() const=0A=
     { return size_type(end() - begin()); }=0A=
 =0A=
 =0A=
   size_type max_size() const=0A=
     { return size_type(-1) / sizeof(_Tp); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   size_type capacity() const=0A=
     { return size_type(const_iterator(_M_end_of_storage) - begin()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   bool empty() const=0A=
     { return begin() =3D=3D end(); }=0A=
 # 289 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   reference operator[](size_type __n) { return *(begin() + __n); }=0A=
 # 300 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   const_reference operator[](size_type __n) const { return *(begin() + =
 __n); }=0A=
 =0A=
   void _M_range_check(size_type __n) const {=0A=
     if (__n >=3D this->size())=0A=
       __throw_out_of_range("vector");=0A=
   }=0A=
 # 316 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   reference at(size_type __n)=0A=
     { _M_range_check(__n); return (*this)[__n]; }=0A=
 # 328 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   const_reference at(size_type __n) const=0A=
     { _M_range_check(__n); return (*this)[__n]; }=0A=
 =0A=
 =0A=
   explicit vector(const allocator_type& __a =3D allocator_type())=0A=
     : _Base(__a) {}=0A=
 =0A=
   vector(size_type __n, const _Tp& __value,=0A=
          const allocator_type& __a =3D allocator_type())=0A=
     : _Base(__n, __a)=0A=
     { _M_finish =3D uninitialized_fill_n(_M_start, __n, __value); }=0A=
 =0A=
   explicit vector(size_type __n)=0A=
     : _Base(__n, allocator_type())=0A=
     { _M_finish =3D uninitialized_fill_n(_M_start, __n, _Tp()); }=0A=
 =0A=
   vector(const vector<_Tp, _Alloc>& __x)=0A=
     : _Base(__x.size(), __x.get_allocator())=0A=
     { _M_finish =3D uninitialized_copy(__x.begin(), __x.end(), =
 _M_start); }=0A=
 =0A=
 =0A=
   template <class _InputIterator>=0A=
     vector(_InputIterator __first, _InputIterator __last,=0A=
            const allocator_type& __a =3D allocator_type())=0A=
         : _Base(__a)=0A=
         {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_initialize_aux(__first, __last, _Integral());=0A=
     }=0A=
 =0A=
   template <class _Integer>=0A=
     void _M_initialize_aux(_Integer __n, _Integer __value, __true_type)=0A=
         {=0A=
       _M_start =3D _M_allocate(__n);=0A=
       _M_end_of_storage =3D _M_start + __n;=0A=
       _M_finish =3D uninitialized_fill_n(_M_start, __n, __value);=0A=
     }=0A=
 =0A=
   template<class _InputIterator>=0A=
     void=0A=
         _M_initialize_aux(_InputIterator __first, _InputIterator __last, =
 __false_type)=0A=
         {=0A=
           typedef typename =
 iterator_traits<_InputIterator>::iterator_category _IterCategory;=0A=
           _M_range_initialize(__first, __last, _IterCategory());=0A=
         }=0A=
 =0A=
   ~vector()=0A=
   { _Destroy(_M_start, _M_finish); }=0A=
 =0A=
   vector<_Tp, _Alloc>& operator=3D(const vector<_Tp, _Alloc>& __x);=0A=
 # 393 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void reserve(size_type __n) {=0A=
     if (capacity() < __n) {=0A=
       const size_type __old_size =3D size();=0A=
       pointer __tmp =3D _M_allocate_and_copy(__n, _M_start, _M_finish);=0A=
       _Destroy(_M_start, _M_finish);=0A=
       _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
       _M_start =3D __tmp;=0A=
       _M_finish =3D __tmp + __old_size;=0A=
       _M_end_of_storage =3D _M_start + __n;=0A=
     }=0A=
   }=0A=
 # 421 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, =
 __val); }=0A=
   void _M_fill_assign(size_type __n, const _Tp& __val);=0A=
 =0A=
   template<class _InputIterator>=0A=
     void=0A=
     assign(_InputIterator __first, _InputIterator __last)=0A=
     {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_assign_dispatch(__first, __last, _Integral());=0A=
     }=0A=
 =0A=
   template<class _Integer>=0A=
     void=0A=
      _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)=0A=
      { _M_fill_assign((size_type) __n, (_Tp) __val); }=0A=
 =0A=
   template<class _InputIter>=0A=
     void=0A=
     _M_assign_dispatch(_InputIter __first, _InputIter __last, =
 __false_type)=0A=
     {=0A=
       typedef typename iterator_traits<_InputIter>::iterator_category =
 _IterCategory;=0A=
       _M_assign_aux(__first, __last, _IterCategory());=0A=
     }=0A=
 =0A=
   template <class _InputIterator>=0A=
     void=0A=
     _M_assign_aux(_InputIterator __first, _InputIterator __last,=0A=
                   input_iterator_tag);=0A=
 =0A=
   template <class _ForwardIterator>=0A=
     void=0A=
     _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,=0A=
                   forward_iterator_tag);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reference front() { return *begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reference front() const { return *begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reference back() { return *(end() - 1); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reference back() const { return *(end() - 1); }=0A=
 # 488 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void=0A=
   push_back(const _Tp& __x)=0A=
   {=0A=
     if (_M_finish !=3D _M_end_of_storage) {=0A=
       _Construct(_M_finish, __x);=0A=
       ++_M_finish;=0A=
     }=0A=
     else=0A=
       _M_insert_aux(end(), __x);=0A=
   }=0A=
 # 519 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void=0A=
   swap(vector<_Tp, _Alloc>& __x)=0A=
   {=0A=
     std::swap(_M_start, __x._M_start);=0A=
     std::swap(_M_finish, __x._M_finish);=0A=
     std::swap(_M_end_of_storage, __x._M_end_of_storage);=0A=
   }=0A=
 # 538 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   iterator=0A=
   insert(iterator __position, const _Tp& __x)=0A=
   {=0A=
     size_type __n =3D __position - begin();=0A=
     if (_M_finish !=3D _M_end_of_storage && __position =3D=3D end()) {=0A=
       _Construct(_M_finish, __x);=0A=
       ++_M_finish;=0A=
     }=0A=
     else=0A=
       _M_insert_aux(iterator(__position), __x);=0A=
     return begin() + __n;=0A=
   }=0A=
 # 562 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   iterator=0A=
   insert(iterator __position)=0A=
   {=0A=
     size_type __n =3D __position - begin();=0A=
     if (_M_finish !=3D _M_end_of_storage && __position =3D=3D end()) {=0A=
       _Construct(_M_finish);=0A=
       ++_M_finish;=0A=
     }=0A=
     else=0A=
       _M_insert_aux(iterator(__position));=0A=
     return begin() + __n;=0A=
   }=0A=
 =0A=
 =0A=
   template<class _InputIterator>=0A=
     void=0A=
         insert(iterator __pos, _InputIterator __first, _InputIterator =
 __last)=0A=
         {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_insert_dispatch(__pos, __first, __last, _Integral());=0A=
     }=0A=
 =0A=
   template <class _Integer>=0A=
     void=0A=
         _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, =
 __true_type)=0A=
     { _M_fill_insert(__pos, static_cast<size_type>(__n), =
 static_cast<_Tp>(__val)); }=0A=
 =0A=
   template<class _InputIterator>=0A=
     void=0A=
         _M_insert_dispatch(iterator __pos,=0A=
                        _InputIterator __first, _InputIterator __last,=0A=
                        __false_type)=0A=
         {=0A=
           typedef typename =
 iterator_traits<_InputIterator>::iterator_category _IterCategory;=0A=
       _M_range_insert(__pos, __first, __last, _IterCategory());=0A=
     }=0A=
 # 612 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void insert (iterator __pos, size_type __n, const _Tp& __x)=0A=
     { _M_fill_insert(__pos, __n, __x); }=0A=
 =0A=
   void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x);=0A=
 # 626 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void pop_back() {=0A=
     --_M_finish;=0A=
     _Destroy(_M_finish);=0A=
   }=0A=
 # 645 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   iterator erase(iterator __position) {=0A=
     if (__position + 1 !=3D end())=0A=
       copy(__position + 1, end(), __position);=0A=
     --_M_finish;=0A=
     _Destroy(_M_finish);=0A=
     return __position;=0A=
   }=0A=
 # 668 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   iterator erase(iterator __first, iterator __last) {=0A=
     iterator __i(copy(__last, end(), __first));=0A=
     _Destroy(__i, end());=0A=
     _M_finish =3D _M_finish - (__last - __first);=0A=
     return __first;=0A=
   }=0A=
 # 685 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void resize(size_type __new_size, const _Tp& __x) {=0A=
     if (__new_size < size())=0A=
       erase(begin() + __new_size, end());=0A=
     else=0A=
       insert(end(), __new_size - size(), __x);=0A=
   }=0A=
 # 701 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A=
   void resize(size_type __new_size) { resize(__new_size, _Tp()); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   void clear() { erase(begin(), end()); }=0A=
 =0A=
 protected:=0A=
 =0A=
   template <class _ForwardIterator>=0A=
   pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first,=0A=
                                                _ForwardIterator __last)=0A=
   {=0A=
     pointer __result =3D _M_allocate(__n);=0A=
     try {=0A=
       uninitialized_copy(__first, __last, __result);=0A=
       return __result;=0A=
     }=0A=
     catch(...)=0A=
       {=0A=
         _M_deallocate(__result, __n);=0A=
         throw;=0A=
       }=0A=
   }=0A=
 =0A=
   template <class _InputIterator>=0A=
   void _M_range_initialize(_InputIterator __first,=0A=
                            _InputIterator __last, input_iterator_tag)=0A=
   {=0A=
     for ( ; __first !=3D __last; ++__first)=0A=
       push_back(*__first);=0A=
   }=0A=
 =0A=
 =0A=
   template <class _ForwardIterator>=0A=
   void _M_range_initialize(_ForwardIterator __first,=0A=
                            _ForwardIterator __last, forward_iterator_tag)=0A=
   {=0A=
     size_type __n =3D distance(__first, __last);=0A=
     _M_start =3D _M_allocate(__n);=0A=
     _M_end_of_storage =3D _M_start + __n;=0A=
     _M_finish =3D uninitialized_copy(__first, __last, _M_start);=0A=
   }=0A=
 =0A=
   template <class _InputIterator>=0A=
   void _M_range_insert(iterator __pos,=0A=
                        _InputIterator __first, _InputIterator __last,=0A=
                        input_iterator_tag);=0A=
 =0A=
   template <class _ForwardIterator>=0A=
   void _M_range_insert(iterator __pos,=0A=
                        _ForwardIterator __first, _ForwardIterator __last,=0A=
                        forward_iterator_tag);=0A=
 };=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator=3D=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, =
 _Alloc>& __y)=0A=
 {=0A=
   return __x.size() =3D=3D __y.size() &&=0A=
          equal(__x.begin(), __x.end(), __y.begin());=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)=0A=
 {=0A=
   return lexicographical_compare(__x.begin(), __x.end(),=0A=
                                  __y.begin(), __y.end());=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline void swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)=0A=
 {=0A=
   __x.swap(__y);=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator!=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& =
 __y) {=0A=
   return !(__x =3D=3D __y);=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& =
 __y) {=0A=
   return __y < __x;=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator<=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& =
 __y) {=0A=
   return !(__y < __x);=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 inline bool=0A=
 operator>=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& =
 __y) {=0A=
   return !(__x < __y);=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 vector<_Tp,_Alloc>&=0A=
 vector<_Tp,_Alloc>::operator=3D(const vector<_Tp, _Alloc>& __x)=0A=
 {=0A=
   if (&__x !=3D this) {=0A=
     const size_type __xlen =3D __x.size();=0A=
     if (__xlen > capacity()) {=0A=
       pointer __tmp =3D _M_allocate_and_copy(__xlen, __x.begin(), =
 __x.end());=0A=
       _Destroy(_M_start, _M_finish);=0A=
       _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
       _M_start =3D __tmp;=0A=
       _M_end_of_storage =3D _M_start + __xlen;=0A=
     }=0A=
     else if (size() >=3D __xlen) {=0A=
       iterator __i(copy(__x.begin(), __x.end(), begin()));=0A=
       _Destroy(__i, end());=0A=
     }=0A=
     else {=0A=
       copy(__x.begin(), __x.begin() + size(), _M_start);=0A=
       uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish);=0A=
     }=0A=
     _M_finish =3D _M_start + __xlen;=0A=
   }=0A=
   return *this;=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 void vector<_Tp, _Alloc>::_M_fill_assign(size_t __n, const value_type& =
 __val)=0A=
 {=0A=
   if (__n > capacity()) {=0A=
     vector<_Tp, _Alloc> __tmp(__n, __val, get_allocator());=0A=
     __tmp.swap(*this);=0A=
   }=0A=
   else if (__n > size()) {=0A=
     fill(begin(), end(), __val);=0A=
     _M_finish =3D uninitialized_fill_n(_M_finish, __n - size(), __val);=0A=
   }=0A=
   else=0A=
     erase(fill_n(begin(), __n, __val), end());=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc> template <class _InputIter>=0A=
 void vector<_Tp, _Alloc>::_M_assign_aux(_InputIter __first, _InputIter =
 __last,=0A=
                                         input_iterator_tag) {=0A=
   iterator __cur(begin());=0A=
   for ( ; __first !=3D __last && __cur !=3D end(); ++__cur, ++__first)=0A=
     *__cur =3D *__first;=0A=
   if (__first =3D=3D __last)=0A=
     erase(__cur, end());=0A=
   else=0A=
     insert(end(), __first, __last);=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc> template <class _ForwardIter>=0A=
 void=0A=
 vector<_Tp, _Alloc>::_M_assign_aux(_ForwardIter __first, _ForwardIter =
 __last,=0A=
                                    forward_iterator_tag) {=0A=
   size_type __len =3D distance(__first, __last);=0A=
 =0A=
   if (__len > capacity()) {=0A=
     pointer __tmp(_M_allocate_and_copy(__len, __first, __last));=0A=
     _Destroy(_M_start, _M_finish);=0A=
     _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
     _M_start =3D __tmp;=0A=
     _M_end_of_storage =3D _M_finish =3D _M_start + __len;=0A=
   }=0A=
   else if (size() >=3D __len) {=0A=
     iterator __new_finish(copy(__first, __last, _M_start));=0A=
     _Destroy(__new_finish, end());=0A=
     _M_finish =3D __new_finish.base();=0A=
   }=0A=
   else {=0A=
     _ForwardIter __mid =3D __first;=0A=
     advance(__mid, size());=0A=
     copy(__first, __mid, _M_start);=0A=
     _M_finish =3D uninitialized_copy(__mid, __last, _M_finish);=0A=
   }=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 void=0A=
 vector<_Tp, _Alloc>::_M_insert_aux(iterator __position, const _Tp& __x)=0A=
 {=0A=
   if (_M_finish !=3D _M_end_of_storage) {=0A=
     _Construct(_M_finish, *(_M_finish - 1));=0A=
     ++_M_finish;=0A=
     _Tp __x_copy =3D __x;=0A=
     copy_backward(__position, iterator(_M_finish - 2), =
 iterator(_M_finish- 1));=0A=
     *__position =3D __x_copy;=0A=
   }=0A=
   else {=0A=
     const size_type __old_size =3D size();=0A=
     const size_type __len =3D __old_size !=3D 0 ? 2 * __old_size : 1;=0A=
     iterator __new_start(_M_allocate(__len));=0A=
     iterator __new_finish(__new_start);=0A=
     try {=0A=
       __new_finish =3D uninitialized_copy(iterator(_M_start), __position,=0A=
                                         __new_start);=0A=
       _Construct(__new_finish.base(), __x);=0A=
       ++__new_finish;=0A=
       __new_finish =3D uninitialized_copy(__position, =
 iterator(_M_finish),=0A=
                                         __new_finish);=0A=
     }=0A=
     catch(...)=0A=
       {=0A=
         _Destroy(__new_start,__new_finish);=0A=
         _M_deallocate(__new_start.base(),__len);=0A=
         throw;=0A=
       }=0A=
     _Destroy(begin(), end());=0A=
     _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
     _M_start =3D __new_start.base();=0A=
     _M_finish =3D __new_finish.base();=0A=
     _M_end_of_storage =3D __new_start.base() + __len;=0A=
   }=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 void=0A=
 vector<_Tp, _Alloc>::_M_insert_aux(iterator __position)=0A=
 {=0A=
   if (_M_finish !=3D _M_end_of_storage) {=0A=
     _Construct(_M_finish, *(_M_finish - 1));=0A=
     ++_M_finish;=0A=
     copy_backward(__position, iterator(_M_finish - 2),=0A=
                   iterator(_M_finish - 1));=0A=
     *__position =3D _Tp();=0A=
   }=0A=
   else {=0A=
     const size_type __old_size =3D size();=0A=
     const size_type __len =3D __old_size !=3D 0 ? 2 * __old_size : 1;=0A=
     pointer __new_start =3D _M_allocate(__len);=0A=
     pointer __new_finish =3D __new_start;=0A=
     try {=0A=
       __new_finish =3D uninitialized_copy(iterator(_M_start), __position,=0A=
                                         __new_start);=0A=
       _Construct(__new_finish);=0A=
       ++__new_finish;=0A=
       __new_finish =3D uninitialized_copy(__position, =
 iterator(_M_finish),=0A=
                                         __new_finish);=0A=
     }=0A=
     catch(...)=0A=
       {=0A=
         _Destroy(__new_start,__new_finish);=0A=
         _M_deallocate(__new_start,__len);=0A=
         throw;=0A=
       }=0A=
     _Destroy(begin(), end());=0A=
     _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
     _M_start =3D __new_start;=0A=
     _M_finish =3D __new_finish;=0A=
     _M_end_of_storage =3D __new_start + __len;=0A=
   }=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc>=0A=
 void vector<_Tp, _Alloc>::_M_fill_insert(iterator __position, size_type =
 __n,=0A=
                                          const _Tp& __x)=0A=
 {=0A=
   if (__n !=3D 0) {=0A=
     if (size_type(_M_end_of_storage - _M_finish) >=3D __n) {=0A=
       _Tp __x_copy =3D __x;=0A=
       const size_type __elems_after =3D end() - __position;=0A=
       iterator __old_finish(_M_finish);=0A=
       if (__elems_after > __n) {=0A=
         uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);=0A=
         _M_finish +=3D __n;=0A=
         copy_backward(__position, __old_finish - __n, __old_finish);=0A=
         fill(__position, __position + __n, __x_copy);=0A=
       }=0A=
       else {=0A=
         uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy);=0A=
         _M_finish +=3D __n - __elems_after;=0A=
         uninitialized_copy(__position, __old_finish, _M_finish);=0A=
         _M_finish +=3D __elems_after;=0A=
         fill(__position, __old_finish, __x_copy);=0A=
       }=0A=
     }=0A=
     else {=0A=
       const size_type __old_size =3D size();=0A=
       const size_type __len =3D __old_size + max(__old_size, __n);=0A=
       iterator __new_start(_M_allocate(__len));=0A=
       iterator __new_finish(__new_start);=0A=
       try {=0A=
         __new_finish =3D uninitialized_copy(begin(), __position, =
 __new_start);=0A=
         __new_finish =3D uninitialized_fill_n(__new_finish, __n, __x);=0A=
         __new_finish=0A=
           =3D uninitialized_copy(__position, end(), __new_finish);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__new_start,__new_finish);=0A=
           _M_deallocate(__new_start.base(),__len);=0A=
           throw;=0A=
         }=0A=
       _Destroy(_M_start, _M_finish);=0A=
       _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
       _M_start =3D __new_start.base();=0A=
       _M_finish =3D __new_finish.base();=0A=
       _M_end_of_storage =3D __new_start.base() + __len;=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc> template <class _InputIterator>=0A=
 void=0A=
 vector<_Tp, _Alloc>::_M_range_insert(iterator __pos,=0A=
                                      _InputIterator __first,=0A=
                                      _InputIterator __last,=0A=
                                      input_iterator_tag)=0A=
 {=0A=
   for ( ; __first !=3D __last; ++__first) {=0A=
     __pos =3D insert(__pos, *__first);=0A=
     ++__pos;=0A=
   }=0A=
 }=0A=
 =0A=
 template <class _Tp, class _Alloc> template <class _ForwardIterator>=0A=
 void=0A=
 vector<_Tp, _Alloc>::_M_range_insert(iterator __position,=0A=
                                      _ForwardIterator __first,=0A=
                                      _ForwardIterator __last,=0A=
                                      forward_iterator_tag)=0A=
 {=0A=
   if (__first !=3D __last) {=0A=
     size_type __n =3D distance(__first, __last);=0A=
     if (size_type(_M_end_of_storage - _M_finish) >=3D __n) {=0A=
       const size_type __elems_after =3D end() - __position;=0A=
       iterator __old_finish(_M_finish);=0A=
       if (__elems_after > __n) {=0A=
         uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);=0A=
         _M_finish +=3D __n;=0A=
         copy_backward(__position, __old_finish - __n, __old_finish);=0A=
         copy(__first, __last, __position);=0A=
       }=0A=
       else {=0A=
         _ForwardIterator __mid =3D __first;=0A=
         advance(__mid, __elems_after);=0A=
         uninitialized_copy(__mid, __last, _M_finish);=0A=
         _M_finish +=3D __n - __elems_after;=0A=
         uninitialized_copy(__position, __old_finish, _M_finish);=0A=
         _M_finish +=3D __elems_after;=0A=
         copy(__first, __mid, __position);=0A=
       }=0A=
     }=0A=
     else {=0A=
       const size_type __old_size =3D size();=0A=
       const size_type __len =3D __old_size + max(__old_size, __n);=0A=
       iterator __new_start(_M_allocate(__len));=0A=
       iterator __new_finish(__new_start);=0A=
       try {=0A=
         __new_finish =3D uninitialized_copy(iterator(_M_start),=0A=
                                           __position, __new_start);=0A=
         __new_finish =3D uninitialized_copy(__first, __last, =
 __new_finish);=0A=
         __new_finish=0A=
           =3D uninitialized_copy(__position, iterator(_M_finish), =
 __new_finish);=0A=
       }=0A=
       catch(...)=0A=
         {=0A=
           _Destroy(__new_start,__new_finish);=0A=
           _M_deallocate(__new_start.base(), __len);=0A=
           throw;=0A=
         }=0A=
       _Destroy(_M_start, _M_finish);=0A=
       _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A=
       _M_start =3D __new_start.base();=0A=
       _M_finish =3D __new_finish.base();=0A=
       _M_end_of_storage =3D __new_start.base() + __len;=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 }=0A=
 # 72 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_bvector.h" 1 3=0A=
 # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_bvector.h" 3=0A=
 namespace std=0A=
 {=0A=
   typedef unsigned long _Bit_type;=0A=
   enum { _M_word_bit =3D int(8 * sizeof(_Bit_type)) };=0A=
 =0A=
 struct _Bit_reference {=0A=
 =0A=
   _Bit_type * _M_p;=0A=
   _Bit_type _M_mask;=0A=
   _Bit_reference(_Bit_type * __x, _Bit_type __y)=0A=
     : _M_p(__x), _M_mask(__y) {}=0A=
 =0A=
 public:=0A=
   _Bit_reference() : _M_p(0), _M_mask(0) {}=0A=
   operator bool() const { return !!(*_M_p & _M_mask); }=0A=
   _Bit_reference& operator=3D(bool __x)=0A=
   {=0A=
     if (__x) *_M_p |=3D _M_mask;=0A=
     else *_M_p &=3D ~_M_mask;=0A=
     return *this;=0A=
   }=0A=
   _Bit_reference& operator=3D(const _Bit_reference& __x)=0A=
     { return *this =3D bool(__x); }=0A=
   bool operator=3D=3D(const _Bit_reference& __x) const=0A=
     { return bool(*this) =3D=3D bool(__x); }=0A=
   bool operator<(const _Bit_reference& __x) const=0A=
     { return !bool(*this) && bool(__x); }=0A=
   void flip() { *_M_p ^=3D _M_mask; }=0A=
 };=0A=
 =0A=
 inline void swap(_Bit_reference __x, _Bit_reference __y)=0A=
 {=0A=
   bool __tmp =3D __x;=0A=
   __x =3D __y;=0A=
   __y =3D __tmp;=0A=
 }=0A=
 =0A=
 struct _Bit_iterator_base : public iterator<random_access_iterator_tag, =
 bool>=0A=
 {=0A=
   _Bit_type * _M_p;=0A=
   unsigned int _M_offset;=0A=
 =0A=
   _Bit_iterator_base(_Bit_type * __x, unsigned int __y)=0A=
     : _M_p(__x), _M_offset(__y) {}=0A=
 =0A=
   void _M_bump_up() {=0A=
     if (_M_offset++ =3D=3D _M_word_bit - 1) {=0A=
       _M_offset =3D 0;=0A=
       ++_M_p;=0A=
     }=0A=
   }=0A=
   void _M_bump_down() {=0A=
     if (_M_offset-- =3D=3D 0) {=0A=
       _M_offset =3D _M_word_bit - 1;=0A=
       --_M_p;=0A=
     }=0A=
   }=0A=
 =0A=
   void _M_incr(ptrdiff_t __i) {=0A=
     difference_type __n =3D __i + _M_offset;=0A=
     _M_p +=3D __n / _M_word_bit;=0A=
     __n =3D __n % _M_word_bit;=0A=
     if (__n < 0) {=0A=
       _M_offset =3D (unsigned int) __n + _M_word_bit;=0A=
       --_M_p;=0A=
     } else=0A=
       _M_offset =3D (unsigned int) __n;=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const _Bit_iterator_base& __i) const {=0A=
     return _M_p =3D=3D __i._M_p && _M_offset =3D=3D __i._M_offset;=0A=
   }=0A=
   bool operator<(const _Bit_iterator_base& __i) const {=0A=
     return _M_p < __i._M_p || (_M_p =3D=3D __i._M_p && _M_offset < =
 __i._M_offset);=0A=
   }=0A=
   bool operator!=3D(const _Bit_iterator_base& __i) const {=0A=
     return !(*this =3D=3D __i);=0A=
   }=0A=
   bool operator>(const _Bit_iterator_base& __i) const {=0A=
     return __i < *this;=0A=
   }=0A=
   bool operator<=3D(const _Bit_iterator_base& __i) const {=0A=
     return !(__i < *this);=0A=
   }=0A=
   bool operator>=3D(const _Bit_iterator_base& __i) const {=0A=
     return !(*this < __i);=0A=
   }=0A=
 };=0A=
 =0A=
 inline ptrdiff_t=0A=
 operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {=0A=
   return _M_word_bit * (__x._M_p - __y._M_p) + __x._M_offset - =
 __y._M_offset;=0A=
 }=0A=
 =0A=
 =0A=
 struct _Bit_iterator : public _Bit_iterator_base=0A=
 {=0A=
   typedef _Bit_reference reference;=0A=
   typedef _Bit_reference* pointer;=0A=
   typedef _Bit_iterator iterator;=0A=
 =0A=
   _Bit_iterator() : _Bit_iterator_base(0, 0) {}=0A=
   _Bit_iterator(_Bit_type * __x, unsigned int __y)=0A=
     : _Bit_iterator_base(__x, __y) {}=0A=
 =0A=
   reference operator*() const { return reference(_M_p, 1U << _M_offset); =
 }=0A=
   iterator& operator++() {=0A=
     _M_bump_up();=0A=
     return *this;=0A=
   }=0A=
   iterator operator++(int) {=0A=
     iterator __tmp =3D *this;=0A=
     _M_bump_up();=0A=
     return __tmp;=0A=
   }=0A=
   iterator& operator--() {=0A=
     _M_bump_down();=0A=
     return *this;=0A=
   }=0A=
   iterator operator--(int) {=0A=
     iterator __tmp =3D *this;=0A=
     _M_bump_down();=0A=
     return __tmp;=0A=
   }=0A=
   iterator& operator+=3D(difference_type __i) {=0A=
     _M_incr(__i);=0A=
     return *this;=0A=
   }=0A=
   iterator& operator-=3D(difference_type __i) {=0A=
     *this +=3D -__i;=0A=
     return *this;=0A=
   }=0A=
   iterator operator+(difference_type __i) const {=0A=
     iterator __tmp =3D *this;=0A=
     return __tmp +=3D __i;=0A=
   }=0A=
   iterator operator-(difference_type __i) const {=0A=
     iterator __tmp =3D *this;=0A=
     return __tmp -=3D __i;=0A=
   }=0A=
 =0A=
   reference operator[](difference_type __i) { return *(*this + __i); }=0A=
 };=0A=
 =0A=
 inline _Bit_iterator=0A=
 operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; }=0A=
 =0A=
 =0A=
 struct _Bit_const_iterator : public _Bit_iterator_base=0A=
 {=0A=
   typedef bool reference;=0A=
   typedef bool const_reference;=0A=
   typedef const bool* pointer;=0A=
   typedef _Bit_const_iterator const_iterator;=0A=
 =0A=
   _Bit_const_iterator() : _Bit_iterator_base(0, 0) {}=0A=
   _Bit_const_iterator(_Bit_type * __x, unsigned int __y)=0A=
     : _Bit_iterator_base(__x, __y) {}=0A=
   _Bit_const_iterator(const _Bit_iterator& __x)=0A=
     : _Bit_iterator_base(__x._M_p, __x._M_offset) {}=0A=
 =0A=
   const_reference operator*() const {=0A=
     return _Bit_reference(_M_p, 1U << _M_offset);=0A=
   }=0A=
   const_iterator& operator++() {=0A=
     _M_bump_up();=0A=
     return *this;=0A=
   }=0A=
   const_iterator operator++(int) {=0A=
     const_iterator __tmp =3D *this;=0A=
     _M_bump_up();=0A=
     return __tmp;=0A=
   }=0A=
   const_iterator& operator--() {=0A=
     _M_bump_down();=0A=
     return *this;=0A=
   }=0A=
   const_iterator operator--(int) {=0A=
     const_iterator __tmp =3D *this;=0A=
     _M_bump_down();=0A=
     return __tmp;=0A=
   }=0A=
   const_iterator& operator+=3D(difference_type __i) {=0A=
     _M_incr(__i);=0A=
     return *this;=0A=
   }=0A=
   const_iterator& operator-=3D(difference_type __i) {=0A=
     *this +=3D -__i;=0A=
     return *this;=0A=
   }=0A=
   const_iterator operator+(difference_type __i) const {=0A=
     const_iterator __tmp =3D *this;=0A=
     return __tmp +=3D __i;=0A=
   }=0A=
   const_iterator operator-(difference_type __i) const {=0A=
     const_iterator __tmp =3D *this;=0A=
     return __tmp -=3D __i;=0A=
   }=0A=
   const_reference operator[](difference_type __i) {=0A=
     return *(*this + __i);=0A=
   }=0A=
 };=0A=
 =0A=
 inline _Bit_const_iterator=0A=
 operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + =
 __n; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class _Allocator, bool __is_static>=0A=
 class _Bvector_alloc_base {=0A=
 public:=0A=
   typedef typename _Alloc_traits<bool, _Allocator>::allocator_type=0A=
           allocator_type;=0A=
   allocator_type get_allocator() const { return _M_data_allocator; }=0A=
 =0A=
   _Bvector_alloc_base(const allocator_type& __a)=0A=
     : _M_data_allocator(__a), _M_start(), _M_finish(), =
 _M_end_of_storage(0) {}=0A=
 =0A=
 protected:=0A=
   _Bit_type * _M_bit_alloc(size_t __n)=0A=
     { return _M_data_allocator.allocate((__n + _M_word_bit - =
 1)/_M_word_bit); }=0A=
   void _M_deallocate() {=0A=
     if (_M_start._M_p)=0A=
       _M_data_allocator.deallocate(_M_start._M_p,=0A=
                                    _M_end_of_storage - _M_start._M_p);=0A=
   }=0A=
 =0A=
   typename _Alloc_traits<_Bit_type, _Allocator>::allocator_type=0A=
           _M_data_allocator;=0A=
   _Bit_iterator _M_start;=0A=
   _Bit_iterator _M_finish;=0A=
   _Bit_type * _M_end_of_storage;=0A=
 };=0A=
 =0A=
 =0A=
 template <class _Allocator>=0A=
 class _Bvector_alloc_base<_Allocator, true> {=0A=
 public:=0A=
   typedef typename _Alloc_traits<bool, _Allocator>::allocator_type=0A=
           allocator_type;=0A=
   allocator_type get_allocator() const { return allocator_type(); }=0A=
 =0A=
   _Bvector_alloc_base(const allocator_type&)=0A=
     : _M_start(), _M_finish(), _M_end_of_storage(0) {}=0A=
 =0A=
 protected:=0A=
   typedef typename _Alloc_traits<_Bit_type, _Allocator>::_Alloc_type=0A=
           _Alloc_type;=0A=
 =0A=
   _Bit_type * _M_bit_alloc(size_t __n)=0A=
     { return _Alloc_type::allocate((__n + _M_word_bit - 1)/_M_word_bit); =
 }=0A=
   void _M_deallocate() {=0A=
     if (_M_start._M_p)=0A=
       _Alloc_type::deallocate(_M_start._M_p,=0A=
                               _M_end_of_storage - _M_start._M_p);=0A=
   }=0A=
 =0A=
   _Bit_iterator _M_start;=0A=
   _Bit_iterator _M_finish;=0A=
   _Bit_type * _M_end_of_storage;=0A=
 };=0A=
 =0A=
 template <class _Alloc>=0A=
 class _Bvector_base=0A=
   : public _Bvector_alloc_base<_Alloc,=0A=
                                _Alloc_traits<bool, =
 _Alloc>::_S_instanceless>=0A=
 {=0A=
   typedef _Bvector_alloc_base<_Alloc,=0A=
                               _Alloc_traits<bool, =
 _Alloc>::_S_instanceless>=0A=
           _Base;=0A=
 public:=0A=
   typedef typename _Base::allocator_type allocator_type;=0A=
 =0A=
   _Bvector_base(const allocator_type& __a) : _Base(__a) {}=0A=
   ~_Bvector_base() { _Base::_M_deallocate(); }=0A=
 };=0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 template <typename _Alloc>=0A=
   class vector<bool, _Alloc> : public _Bvector_base<_Alloc>=0A=
   {=0A=
   public:=0A=
     typedef bool value_type;=0A=
     typedef size_t size_type;=0A=
     typedef ptrdiff_t difference_type;=0A=
     typedef _Bit_reference reference;=0A=
     typedef bool const_reference;=0A=
     typedef _Bit_reference* pointer;=0A=
     typedef const bool* const_pointer;=0A=
 =0A=
     typedef _Bit_iterator iterator;=0A=
     typedef _Bit_const_iterator const_iterator;=0A=
 =0A=
     typedef reverse_iterator<const_iterator> const_reverse_iterator;=0A=
     typedef reverse_iterator<iterator> reverse_iterator;=0A=
 =0A=
     typedef typename _Bvector_base<_Alloc>::allocator_type =
 allocator_type;=0A=
     allocator_type get_allocator() const {=0A=
       return _Bvector_base<_Alloc>::get_allocator();=0A=
     }=0A=
 =0A=
   protected:=0A=
     using _Bvector_base<_Alloc>::_M_bit_alloc;=0A=
     using _Bvector_base<_Alloc>::_M_deallocate;=0A=
     using _Bvector_base<_Alloc>::_M_start;=0A=
     using _Bvector_base<_Alloc>::_M_finish;=0A=
     using _Bvector_base<_Alloc>::_M_end_of_storage;=0A=
 =0A=
   protected:=0A=
     void _M_initialize(size_type __n) {=0A=
       _Bit_type * __q =3D _M_bit_alloc(__n);=0A=
       _M_end_of_storage =3D __q + (__n + _M_word_bit - 1)/_M_word_bit;=0A=
       _M_start =3D iterator(__q, 0);=0A=
       _M_finish =3D _M_start + difference_type(__n);=0A=
     }=0A=
     void _M_insert_aux(iterator __position, bool __x) {=0A=
       if (_M_finish._M_p !=3D _M_end_of_storage) {=0A=
         copy_backward(__position, _M_finish, _M_finish + 1);=0A=
         *__position =3D __x;=0A=
         ++_M_finish;=0A=
       }=0A=
       else {=0A=
         size_type __len =3D size()=0A=
                           ? 2 * size() : =
 static_cast<size_type>(_M_word_bit);=0A=
         _Bit_type * __q =3D _M_bit_alloc(__len);=0A=
         iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A=
         *__i++ =3D __x;=0A=
         _M_finish =3D copy(__position, end(), __i);=0A=
         _M_deallocate();=0A=
         _M_end_of_storage =3D __q + (__len + _M_word_bit - =
 1)/_M_word_bit;=0A=
         _M_start =3D iterator(__q, 0);=0A=
       }=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void _M_initialize_range(_InputIterator __first, _InputIterator =
 __last,=0A=
                              input_iterator_tag) {=0A=
       _M_start =3D iterator();=0A=
       _M_finish =3D iterator();=0A=
       _M_end_of_storage =3D 0;=0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         push_back(*__first);=0A=
     }=0A=
 =0A=
     template <class _ForwardIterator>=0A=
     void _M_initialize_range(_ForwardIterator __first, _ForwardIterator =
 __last,=0A=
                              forward_iterator_tag) {=0A=
       size_type __n =3D distance(__first, __last);=0A=
       _M_initialize(__n);=0A=
       copy(__first, __last, _M_start);=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void _M_insert_range(iterator __pos,=0A=
                          _InputIterator __first, _InputIterator __last,=0A=
                          input_iterator_tag) {=0A=
       for ( ; __first !=3D __last; ++__first) {=0A=
         __pos =3D insert(__pos, *__first);=0A=
         ++__pos;=0A=
       }=0A=
     }=0A=
 =0A=
     template <class _ForwardIterator>=0A=
     void _M_insert_range(iterator __position,=0A=
                          _ForwardIterator __first, _ForwardIterator =
 __last,=0A=
                          forward_iterator_tag) {=0A=
       if (__first !=3D __last) {=0A=
         size_type __n =3D distance(__first, __last);=0A=
         if (capacity() - size() >=3D __n) {=0A=
           copy_backward(__position, end(), _M_finish + =
 difference_type(__n));=0A=
           copy(__first, __last, __position);=0A=
           _M_finish +=3D difference_type(__n);=0A=
         }=0A=
         else {=0A=
           size_type __len =3D size() + max(size(), __n);=0A=
           _Bit_type * __q =3D _M_bit_alloc(__len);=0A=
           iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A=
           __i =3D copy(__first, __last, __i);=0A=
           _M_finish =3D copy(__position, end(), __i);=0A=
           _M_deallocate();=0A=
           _M_end_of_storage =3D __q + (__len + _M_word_bit - =
 1)/_M_word_bit;=0A=
           _M_start =3D iterator(__q, 0);=0A=
         }=0A=
       }=0A=
     }=0A=
 =0A=
   public:=0A=
     iterator begin() { return _M_start; }=0A=
     const_iterator begin() const { return _M_start; }=0A=
     iterator end() { return _M_finish; }=0A=
     const_iterator end() const { return _M_finish; }=0A=
 =0A=
     reverse_iterator rbegin() { return reverse_iterator(end()); }=0A=
     const_reverse_iterator rbegin() const {=0A=
       return const_reverse_iterator(end());=0A=
     }=0A=
     reverse_iterator rend() { return reverse_iterator(begin()); }=0A=
     const_reverse_iterator rend() const {=0A=
       return const_reverse_iterator(begin());=0A=
     }=0A=
 =0A=
     size_type size() const { return size_type(end() - begin()); }=0A=
     size_type max_size() const { return size_type(-1); }=0A=
     size_type capacity() const {=0A=
       return size_type(const_iterator(_M_end_of_storage, 0) - begin());=0A=
     }=0A=
     bool empty() const { return begin() =3D=3D end(); }=0A=
 =0A=
     reference operator[](size_type __n)=0A=
       { return *(begin() + difference_type(__n)); }=0A=
     const_reference operator[](size_type __n) const=0A=
       { return *(begin() + difference_type(__n)); }=0A=
 =0A=
     void _M_range_check(size_type __n) const {=0A=
       if (__n >=3D this->size())=0A=
         __throw_out_of_range("vector<bool>");=0A=
     }=0A=
 =0A=
     reference at(size_type __n)=0A=
       { _M_range_check(__n); return (*this)[__n]; }=0A=
     const_reference at(size_type __n) const=0A=
       { _M_range_check(__n); return (*this)[__n]; }=0A=
 =0A=
     explicit vector(const allocator_type& __a =3D allocator_type())=0A=
       : _Bvector_base<_Alloc>(__a) {}=0A=
 =0A=
     vector(size_type __n, bool __value,=0A=
               const allocator_type& __a =3D allocator_type())=0A=
       : _Bvector_base<_Alloc>(__a)=0A=
     {=0A=
       _M_initialize(__n);=0A=
       fill(_M_start._M_p, _M_end_of_storage, __value ? ~0 : 0);=0A=
     }=0A=
 =0A=
     explicit vector(size_type __n)=0A=
       : _Bvector_base<_Alloc>(allocator_type())=0A=
     {=0A=
       _M_initialize(__n);=0A=
       fill(_M_start._M_p, _M_end_of_storage, 0);=0A=
     }=0A=
 =0A=
     vector(const vector& __x) : =
 _Bvector_base<_Alloc>(__x.get_allocator()) {=0A=
       _M_initialize(__x.size());=0A=
       copy(__x.begin(), __x.end(), _M_start);=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     template <class _Integer>=0A=
     void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) =
 {=0A=
       _M_initialize(__n);=0A=
       fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void _M_initialize_dispatch(_InputIterator __first, _InputIterator =
 __last,=0A=
                                 __false_type) {=0A=
       _M_initialize_range(__first, __last, __iterator_category(__first));=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     vector(_InputIterator __first, _InputIterator __last,=0A=
              const allocator_type& __a =3D allocator_type())=0A=
       : _Bvector_base<_Alloc>(__a)=0A=
     {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_initialize_dispatch(__first, __last, _Integral());=0A=
     }=0A=
 =0A=
     ~vector() { }=0A=
 =0A=
     vector& operator=3D(const vector& __x) {=0A=
       if (&__x =3D=3D this) return *this;=0A=
       if (__x.size() > capacity()) {=0A=
         _M_deallocate();=0A=
         _M_initialize(__x.size());=0A=
       }=0A=
       copy(__x.begin(), __x.end(), begin());=0A=
       _M_finish =3D begin() + difference_type(__x.size());=0A=
       return *this;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     void _M_fill_assign(size_t __n, bool __x) {=0A=
       if (__n > size()) {=0A=
         fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A=
         insert(end(), __n - size(), __x);=0A=
       }=0A=
       else {=0A=
         erase(begin() + __n, end());=0A=
         fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A=
       }=0A=
     }=0A=
 =0A=
     void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void assign(_InputIterator __first, _InputIterator __last) {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_assign_dispatch(__first, __last, _Integral());=0A=
     }=0A=
 =0A=
     template <class _Integer>=0A=
     void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)=0A=
       { _M_fill_assign((size_t) __n, (bool) __val); }=0A=
 =0A=
     template <class _InputIter>=0A=
     void _M_assign_dispatch(_InputIter __first, _InputIter __last, =
 __false_type)=0A=
       { _M_assign_aux(__first, __last, __iterator_category(__first)); }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void _M_assign_aux(_InputIterator __first, _InputIterator __last,=0A=
                        input_iterator_tag) {=0A=
       iterator __cur =3D begin();=0A=
       for ( ; __first !=3D __last && __cur !=3D end(); ++__cur, =
 ++__first)=0A=
         *__cur =3D *__first;=0A=
       if (__first =3D=3D __last)=0A=
         erase(__cur, end());=0A=
       else=0A=
         insert(end(), __first, __last);=0A=
     }=0A=
 =0A=
     template <class _ForwardIterator>=0A=
     void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,=0A=
                        forward_iterator_tag) {=0A=
       size_type __len =3D distance(__first, __last);=0A=
       if (__len < size())=0A=
         erase(copy(__first, __last, begin()), end());=0A=
       else {=0A=
         _ForwardIterator __mid =3D __first;=0A=
         advance(__mid, size());=0A=
         copy(__first, __mid, begin());=0A=
         insert(end(), __mid, __last);=0A=
       }=0A=
     }=0A=
 =0A=
     void reserve(size_type __n) {=0A=
       if (capacity() < __n) {=0A=
         _Bit_type * __q =3D _M_bit_alloc(__n);=0A=
         _M_finish =3D copy(begin(), end(), iterator(__q, 0));=0A=
         _M_deallocate();=0A=
         _M_start =3D iterator(__q, 0);=0A=
         _M_end_of_storage =3D __q + (__n + _M_word_bit - 1)/_M_word_bit;=0A=
       }=0A=
     }=0A=
 =0A=
     reference front() { return *begin(); }=0A=
     const_reference front() const { return *begin(); }=0A=
     reference back() { return *(end() - 1); }=0A=
     const_reference back() const { return *(end() - 1); }=0A=
     void push_back(bool __x) {=0A=
       if (_M_finish._M_p !=3D _M_end_of_storage)=0A=
         *_M_finish++ =3D __x;=0A=
       else=0A=
         _M_insert_aux(end(), __x);=0A=
     }=0A=
     void swap(vector<bool, _Alloc>& __x) {=0A=
       std::swap(_M_start, __x._M_start);=0A=
       std::swap(_M_finish, __x._M_finish);=0A=
       std::swap(_M_end_of_storage, __x._M_end_of_storage);=0A=
     }=0A=
     iterator insert(iterator __position, bool __x =3D bool()) {=0A=
       difference_type __n =3D __position - begin();=0A=
       if (_M_finish._M_p !=3D _M_end_of_storage && __position =3D=3D =
 end())=0A=
         *_M_finish++ =3D __x;=0A=
       else=0A=
         _M_insert_aux(__position, __x);=0A=
       return begin() + __n;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     template <class _Integer>=0A=
     void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,=0A=
                             __true_type) {=0A=
       _M_fill_insert(__pos, __n, __x);=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void _M_insert_dispatch(iterator __pos,=0A=
                             _InputIterator __first, _InputIterator =
 __last,=0A=
                             __false_type) {=0A=
       _M_insert_range(__pos, __first, __last, =
 __iterator_category(__first));=0A=
     }=0A=
 =0A=
     template <class _InputIterator>=0A=
     void insert(iterator __position,=0A=
                 _InputIterator __first, _InputIterator __last) {=0A=
       typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A=
       _M_insert_dispatch(__position, __first, __last, _Integral());=0A=
     }=0A=
 =0A=
     void _M_fill_insert(iterator __position, size_type __n, bool __x) {=0A=
       if (__n =3D=3D 0) return;=0A=
       if (capacity() - size() >=3D __n) {=0A=
         copy_backward(__position, end(), _M_finish + =
 difference_type(__n));=0A=
         fill(__position, __position + difference_type(__n), __x);=0A=
         _M_finish +=3D difference_type(__n);=0A=
       }=0A=
       else {=0A=
         size_type __len =3D size() + max(size(), __n);=0A=
         _Bit_type * __q =3D _M_bit_alloc(__len);=0A=
         iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A=
         fill_n(__i, __n, __x);=0A=
         _M_finish =3D copy(__position, end(), __i + =
 difference_type(__n));=0A=
         _M_deallocate();=0A=
         _M_end_of_storage =3D __q + (__len + _M_word_bit - =
 1)/_M_word_bit;=0A=
         _M_start =3D iterator(__q, 0);=0A=
       }=0A=
     }=0A=
 =0A=
     void insert(iterator __position, size_type __n, bool __x) {=0A=
       _M_fill_insert(__position, __n, __x);=0A=
     }=0A=
 =0A=
     void pop_back() { --_M_finish; }=0A=
     iterator erase(iterator __position) {=0A=
       if (__position + 1 !=3D end())=0A=
         copy(__position + 1, end(), __position);=0A=
         --_M_finish;=0A=
       return __position;=0A=
     }=0A=
     iterator erase(iterator __first, iterator __last) {=0A=
       _M_finish =3D copy(__last, end(), __first);=0A=
       return __first;=0A=
     }=0A=
     void resize(size_type __new_size, bool __x =3D bool()) {=0A=
       if (__new_size < size())=0A=
         erase(begin() + difference_type(__new_size), end());=0A=
       else=0A=
         insert(end(), __new_size - size(), __x);=0A=
     }=0A=
     void flip() {=0A=
       for (_Bit_type * __p =3D _M_start._M_p; __p !=3D =
 _M_end_of_storage; ++__p)=0A=
         *__p =3D ~*__p;=0A=
     }=0A=
 =0A=
     void clear() { erase(begin(), end()); }=0A=
   };=0A=
 =0A=
 =0A=
 typedef vector<bool, __alloc> bit_vector;=0A=
 =0A=
 }=0A=
 # 73 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Tetrahedron_3.h" 2=0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class TetrahedronC3=0A=
   : public R_::Tetrahedron_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Plane_3 Plane_3;=0A=
   typedef typename R_::Tetrahedron_3 Tetrahedron_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Tetrahedron_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   TetrahedronC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   TetrahedronC3(const Point_3 &p, const Point_3 &q, const Point_3 &r,=0A=
                 const Point_3 &s)=0A=
     : base(rep(p, q, r, s)) {}=0A=
 =0A=
   const Point_3 & vertex(int i) const;=0A=
   const Point_3 & operator[](int i) const;=0A=
 =0A=
   bool operator=3D=3D(const TetrahedronC3 &t) const;=0A=
   bool operator!=3D(const TetrahedronC3 &t) const;=0A=
 =0A=
   Bbox_3 bbox() const;=0A=
 =0A=
   Tetrahedron_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return TetrahedronC3<R>(t.transform(vertex(0)),=0A=
                 t.transform(vertex(1)),=0A=
                 t.transform(vertex(2)),=0A=
                 t.transform(vertex(3)));=0A=
   }=0A=
 =0A=
   Orientation orientation() const;=0A=
   Oriented_side oriented_side(const Point_3 &p) const;=0A=
   Bounded_side bounded_side(const Point_3 &p) const;=0A=
 =0A=
   bool has_on_boundary(const Point_3 &p) const;=0A=
   bool has_on_positive_side(const Point_3 &p) const;=0A=
   bool has_on_negative_side(const Point_3 &p) const;=0A=
   bool has_on_bounded_side(const Point_3 &p) const;=0A=
   bool has_on_unbounded_side(const Point_3 &p) const;=0A=
 =0A=
   bool is_degenerate() const;=0A=
   FT volume() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 TetrahedronC3<R>::=0A=
 operator=3D=3D(const TetrahedronC3<R> &t) const=0A=
 {=0A=
   if (identical(t))=0A=
       return true;=0A=
   if (orientation() !=3D t.orientation())=0A=
       return false;=0A=
 =0A=
   std::vector< Point_3 > V1;=0A=
   std::vector< Point_3 > V2;=0A=
   typename std::vector< Point_3 >::iterator uniq_end1;=0A=
   typename std::vector< Point_3 >::iterator uniq_end2;=0A=
   int k;=0A=
   for ( k=3D0; k < 4; k++) V1.push_back( vertex(k));=0A=
   for ( k=3D0; k < 4; k++) V2.push_back( t.vertex(k));=0A=
   typename R::Less_xyz_3 Less_object =3D R().less_xyz_3_object();=0A=
   std::sort(V1.begin(), V1.end(), Less_object);=0A=
   std::sort(V2.begin(), V2.end(), Less_object);=0A=
   uniq_end1 =3D std::unique( V1.begin(), V1.end());=0A=
   uniq_end2 =3D std::unique( V2.begin(), V2.end());=0A=
   V1.erase( uniq_end1, V1.end());=0A=
   V2.erase( uniq_end2, V2.end());=0A=
   return V1 =3D=3D V2;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::=0A=
 operator!=3D(const TetrahedronC3<R> &t) const=0A=
 {=0A=
   return !(*this =3D=3D t);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 const typename TetrahedronC3<R>::Point_3 &=0A=
 TetrahedronC3<R>::=0A=
 vertex(int i) const=0A=
 {=0A=
   if (i<0) i=3D(i%4)+4;=0A=
   else if (i>3) i=3Di%4;=0A=
   switch (i)=0A=
     {=0A=
     case 0: return Ptr()->e0;=0A=
     case 1: return Ptr()->e1;=0A=
     case 2: return Ptr()->e2;=0A=
     default: return Ptr()->e3;=0A=
     }=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename TetrahedronC3<R>::Point_3 &=0A=
 TetrahedronC3<R>::=0A=
 operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename TetrahedronC3<R>::FT=0A=
 TetrahedronC3<R>::volume() const=0A=
 {=0A=
   typename R::Vector_3 v1 =3D vertex(1)-vertex(0);=0A=
   typename R::Vector_3 v2 =3D vertex(2)-vertex(0);=0A=
   typename R::Vector_3 v3 =3D vertex(3)-vertex(0);=0A=
   return det3x3_by_formula(v1.x(), v1.y(), v1.z(),=0A=
                            v2.x(), v2.y(), v2.z(),=0A=
                            v3.x(), v3.y(), v3.z())/FT(6);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Orientation=0A=
 TetrahedronC3<R>::=0A=
 orientation() const=0A=
 {=0A=
   return CGAL::orientation(vertex(0), vertex(1), vertex(2), vertex(3));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Oriented_side=0A=
 TetrahedronC3<R>::=0A=
 oriented_side(const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   Orientation o =3D orientation();=0A=
   if (o !=3D ZERO)=0A=
     return Oriented_side(o * bounded_side(p));=0A=
 =0A=
   ((!is_degenerate())?(static_cast<void>(0)): ::CGAL::assertion_fail( =
 "!is_degenerate()" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Tetrahedron_3.h", 204, 0));=0A=
   return ON_ORIENTED_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Bounded_side=0A=
 TetrahedronC3<R>::=0A=
 bounded_side(const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   FT alpha, beta, gamma;=0A=
 =0A=
   solve(vertex(1)-vertex(0), vertex(2)-vertex(0), vertex(3)-vertex(0),=0A=
              p - vertex(0), alpha, beta, gamma);=0A=
   if ( (alpha < FT(0)) || (beta < FT(0)) || (gamma < FT(0))=0A=
       || (alpha + beta + gamma > FT(1)) )=0A=
       return ON_UNBOUNDED_SIDE;=0A=
 =0A=
   if ( (alpha =3D=3D FT(0)) || (beta =3D=3D FT(0)) || (gamma =3D=3D =
 FT(0))=0A=
       || (alpha+beta+gamma =3D=3D FT(1)) )=0A=
     return ON_BOUNDARY;=0A=
 =0A=
   return ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::has_on_boundary=0A=
   (const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::has_on_positive_side=0A=
   (const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::has_on_negative_side=0A=
   (const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::has_on_bounded_side=0A=
   (const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 TetrahedronC3<R>::has_on_unbounded_side=0A=
   (const typename TetrahedronC3<R>::Point_3 &p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 TetrahedronC3<R>::is_degenerate() const=0A=
 {=0A=
   Plane_3 plane(vertex(0), vertex(1), vertex(2));=0A=
   return (plane.is_degenerate()) ? true=0A=
                                  : plane.has_on_boundary(vertex(3));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_3=0A=
 TetrahedronC3<R>::bbox() const=0A=
 {=0A=
   return vertex(0).bbox() + vertex(1).bbox()=0A=
        + vertex(2).bbox() + vertex(3).bbox();=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const TetrahedronC3<R> &t)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         return os << t[0] << ' ' << t[1] << ' ' << t[2] << ' ' << t[3];=0A=
     case IO::BINARY :=0A=
         return os << t[0] << t[1] << t[2] << t[3];=0A=
     default:=0A=
         os << "TetrahedronC3(" << t[0] << ", " << t[1] << ", " << t[2];=0A=
         os << ", " << t[3] << ")";=0A=
         return os;=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream &is, TetrahedronC3<R> &t)=0A=
 {=0A=
     typename R::Point_3 p, q, r, s;=0A=
 =0A=
     is >> p >> q >> r >> s;=0A=
 =0A=
     if (is)=0A=
         t =3D TetrahedronC3<R>(p, q, r, s);=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 95 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_cuboid_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_cuboid_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC3.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 void=0A=
 midpointC3( const FT &px, const FT &py, const FT &pz,=0A=
             const FT &qx, const FT &qy, const FT &qz,=0A=
             FT &x, FT &y, FT &z)=0A=
 {=0A=
   FT half =3D FT(1) / FT(2);=0A=
   x =3D (px+qx) * half;=0A=
   y =3D (py+qy) * half;=0A=
   z =3D (pz+qz) * half;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 void=0A=
 circumcenterC3( const FT &px, const FT &py, const FT &pz,=0A=
                 const FT &qx, const FT &qy, const FT &qz,=0A=
                 const FT &rx, const FT &ry, const FT &rz,=0A=
                 const FT &sx, const FT &sy, const FT &sz,=0A=
                 FT &x, FT &y, FT &z)=0A=
 {=0A=
 =0A=
   FT qpx =3D qx-px;=0A=
   FT qpy =3D qy-py;=0A=
   FT qpz =3D qz-pz;=0A=
   FT qp2 =3D CGAL::NTS:: square(qpx) + CGAL::NTS:: square(qpy) + =
 CGAL::NTS:: square(qpz);=0A=
   FT rpx =3D rx-px;=0A=
   FT rpy =3D ry-py;=0A=
   FT rpz =3D rz-pz;=0A=
   FT rp2 =3D CGAL::NTS:: square(rpx) + CGAL::NTS:: square(rpy) + =
 CGAL::NTS:: square(rpz);=0A=
   FT spx =3D sx-px;=0A=
   FT spy =3D sy-py;=0A=
   FT spz =3D sz-pz;=0A=
   FT sp2 =3D CGAL::NTS:: square(spx) + CGAL::NTS:: square(spy) + =
 CGAL::NTS:: square(spz);=0A=
 =0A=
   FT num_x =3D det3x3_by_formula(qpy,qpz,qp2,=0A=
                                rpy,rpz,rp2,=0A=
                                spy,spz,sp2);=0A=
   FT num_y =3D det3x3_by_formula(qpx,qpz,qp2,=0A=
                                rpx,rpz,rp2,=0A=
                                spx,spz,sp2);=0A=
   FT num_z =3D det3x3_by_formula(qpx,qpy,qp2,=0A=
                                rpx,rpy,rp2,=0A=
                                spx,spy,sp2);=0A=
   FT den =3D det3x3_by_formula(qpx,qpy,qpz,=0A=
                                rpx,rpy,rpz,=0A=
                                spx,spy,spz);=0A=
   ((! CGAL::NTS:: is_zero(den))?(static_cast<void>(0)): =
 ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h", 100, 0));=0A=
   FT inv =3D FT(1)/(FT(2) * den);=0A=
 =0A=
   x =3D px + num_x*inv;=0A=
   y =3D py - num_y*inv;=0A=
   z =3D pz + num_z*inv;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 void=0A=
 circumcenterC3( const FT &px, const FT &py, const FT &pz,=0A=
                 const FT &qx, const FT &qy, const FT &qz,=0A=
                 const FT &sx, const FT &sy, const FT &sz,=0A=
                 FT &x, FT &y, FT &z)=0A=
 {=0A=
 =0A=
   FT psx =3D px-sx;=0A=
   FT psy =3D py-sy;=0A=
   FT psz =3D pz-sz;=0A=
   FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + =
 CGAL::NTS:: square(psz);=0A=
   FT qsx =3D qx-sx;=0A=
   FT qsy =3D qy-sy;=0A=
   FT qsz =3D qz-sz;=0A=
   FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + =
 CGAL::NTS:: square(qsz);=0A=
   FT rsx =3D psy*qsz-psz*qsy;=0A=
   FT rsy =3D psz*qsx-psx*qsz;=0A=
   FT rsz =3D psx*qsy-psy*qsx;=0A=
 # 140 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h"=0A=
   FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A=
            - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A=
   FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A=
            - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A=
   FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A=
            - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A=
 =0A=
   FT den =3D det3x3_by_formula(psx,psy,psz,=0A=
                                qsx,qsy,qsz,=0A=
                                rsx,rsy,rsz);=0A=
 =0A=
   ((den !=3D FT(0))?(static_cast<void>(0)): ::CGAL::assertion_fail( "den =
 !=3D FT(0)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h", 151, 0));=0A=
   FT inv =3D FT(1)/(FT(2) * den);=0A=
 =0A=
   x =3D sx + num_x*inv;=0A=
   y =3D sy - num_y*inv;=0A=
   z =3D sz + num_z*inv;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 void=0A=
 centroidC3( const FT &px, const FT &py, const FT &pz,=0A=
             const FT &qx, const FT &qy, const FT &qz,=0A=
             const FT &rx, const FT &ry, const FT &rz,=0A=
             const FT &sx, const FT &sy, const FT &sz,=0A=
             FT &x, FT &y, FT &z)=0A=
 {=0A=
    x =3D (px + qx + rx + sx)/FT(4);=0A=
    y =3D (py + qy + ry + sy)/FT(4);=0A=
    z =3D (pz + qz + rz + sz)/FT(4);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 void=0A=
 centroidC3( const FT &px, const FT &py, const FT &pz,=0A=
             const FT &qx, const FT &qy, const FT &qz,=0A=
             const FT &rx, const FT &ry, const FT &rz,=0A=
             FT &x, FT &y, FT &z)=0A=
 {=0A=
    x =3D (px + qx + rx)/FT(3);=0A=
    y =3D (py + qy + ry)/FT(3);=0A=
    z =3D (pz + qz + rz)/FT(3);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 FT=0A=
 squared_radiusC3(const FT &px, const FT &py, const FT &pz,=0A=
                        const FT &qx, const FT &qy, const FT &qz,=0A=
                        const FT &rx, const FT &ry, const FT &rz,=0A=
                        const FT &sx, const FT &sy, const FT &sz)=0A=
 {=0A=
 =0A=
   FT qpx =3D qx-px;=0A=
   FT qpy =3D qy-py;=0A=
   FT qpz =3D qz-pz;=0A=
   FT qp2 =3D CGAL::NTS:: square(qpx) + CGAL::NTS:: square(qpy) + =
 CGAL::NTS:: square(qpz);=0A=
   FT rpx =3D rx-px;=0A=
   FT rpy =3D ry-py;=0A=
   FT rpz =3D rz-pz;=0A=
   FT rp2 =3D CGAL::NTS:: square(rpx) + CGAL::NTS:: square(rpy) + =
 CGAL::NTS:: square(rpz);=0A=
   FT spx =3D sx-px;=0A=
   FT spy =3D sy-py;=0A=
   FT spz =3D sz-pz;=0A=
   FT sp2 =3D CGAL::NTS:: square(spx) + CGAL::NTS:: square(spy) + =
 CGAL::NTS:: square(spz);=0A=
 =0A=
   FT num_x =3D det3x3_by_formula(qpy,qpz,qp2,=0A=
                                rpy,rpz,rp2,=0A=
                                spy,spz,sp2);=0A=
   FT num_y =3D det3x3_by_formula(qpx,qpz,qp2,=0A=
                                rpx,rpz,rp2,=0A=
                                spx,spz,sp2);=0A=
   FT num_z =3D det3x3_by_formula(qpx,qpy,qp2,=0A=
                                rpx,rpy,rp2,=0A=
                                spx,spy,sp2);=0A=
   FT den =3D det3x3_by_formula(qpx,qpy,qpz,=0A=
                                rpx,rpy,rpz,=0A=
                                spx,spy,spz);=0A=
   ((! CGAL::NTS:: is_zero(den))?(static_cast<void>(0)): =
 ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h", 218, 0));=0A=
 =0A=
   return (CGAL::NTS:: square(num_x) + CGAL::NTS:: square(num_y)=0A=
         + CGAL::NTS:: square(num_z)) / CGAL::NTS:: square(FT(2) * den);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 FT=0A=
 squared_radiusC3(const FT &px, const FT &py, const FT &pz,=0A=
                        const FT &qx, const FT &qy, const FT &qz,=0A=
                        const FT &sx, const FT &sy, const FT &sz)=0A=
 {=0A=
 =0A=
   FT psx =3D px-sx;=0A=
   FT psy =3D py-sy;=0A=
   FT psz =3D pz-sz;=0A=
   FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + =
 CGAL::NTS:: square(psz);=0A=
   FT qsx =3D qx-sx;=0A=
   FT qsy =3D qy-sy;=0A=
   FT qsz =3D qz-sz;=0A=
   FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + =
 CGAL::NTS:: square(qsz);=0A=
   FT rsx =3D psy*qsz-psz*qsy;=0A=
   FT rsy =3D psz*qsx-psx*qsz;=0A=
   FT rsz =3D psx*qsy-psy*qsx;=0A=
 =0A=
   FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A=
            - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A=
   FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A=
            - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A=
   FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A=
            - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A=
 =0A=
   FT den =3D det3x3_by_formula(psx,psy,psz,=0A=
                                qsx,qsy,qsz,=0A=
                                rsx,rsy,rsz);=0A=
 =0A=
   ((den !=3D FT(0))?(static_cast<void>(0)): ::CGAL::assertion_fail( "den =
 !=3D FT(0)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co=
 nstructions/kernel_ftC3.h", 255, 0));=0A=
 =0A=
   return (CGAL::NTS:: square(num_x) + CGAL::NTS:: square(num_y)=0A=
         + CGAL::NTS:: square(num_z)) / CGAL::NTS:: square(FT(2) * den);=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 point_on_lineC3(const FT &lpx, const FT &lpy, const FT &lpz,=0A=
                 const FT &ldx, const FT &ldy, const FT &ldz,=0A=
                 int i,=0A=
                 FT &x, FT &y, FT &z)=0A=
 {=0A=
   x =3D lpx + ldx*FT(i);=0A=
   y =3D lpy + ldy*FT(i);=0A=
   z =3D lpz + ldz*FT(i);=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 projection_lineC3(const FT &px, const FT &py, const FT &pz,=0A=
                   const FT &lpx, const FT &lpy, const FT &lpz,=0A=
                   const FT &ldx, const FT &ldy, const FT &ldz,=0A=
                   FT &x, FT &y, FT &z)=0A=
 {=0A=
 =0A=
   FT dpx =3D px-lpx;=0A=
   FT dpy =3D py-lpy;=0A=
   FT dpz =3D pz-lpz;=0A=
   FT lambda =3D (ldx*dpx+ldy*dpy+ldz*dpz) / (ldx*ldx+ldy*ldy+ldz*ldz);=0A=
   x =3D lpx + lambda * ldx;=0A=
   y =3D lpy + lambda * ldy;=0A=
   z =3D lpz + lambda * ldz;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 plane_from_pointsC3(const FT &px, const FT &py, const FT &pz,=0A=
                     const FT &qx, const FT &qy, const FT &qz,=0A=
                     const FT &rx, const FT &ry, const FT &rz,=0A=
                     FT &pa, FT &pb, FT &pc, FT &pd)=0A=
 {=0A=
   FT rpx =3D px-rx;=0A=
   FT rpy =3D py-ry;=0A=
   FT rpz =3D pz-rz;=0A=
   FT rqx =3D qx-rx;=0A=
   FT rqy =3D qy-ry;=0A=
   FT rqz =3D qz-rz;=0A=
 =0A=
   pa =3D rpy*rqz - rqy*rpz;=0A=
   pb =3D rpz*rqx - rqz*rpx;=0A=
   pc =3D rpx*rqy - rqx*rpy;=0A=
   pd =3D - pa*rx - pb*ry - pc*rz;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 plane_from_point_directionC3(const FT &px, const FT &py, const FT &pz,=0A=
                              const FT &dx, const FT &dy, const FT &dz,=0A=
                              FT &pa, FT &pb, FT &pc, FT &pd)=0A=
 {=0A=
 =0A=
   pa =3D dx; pb =3D dy; pc =3D dz; pd =3D -dx*px - dy*py - dz*pz;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 point_on_planeC3(const FT &pa, const FT &pb, const FT &pc, const FT &pd,=0A=
                  FT &x, FT &y, FT &z)=0A=
 {=0A=
   x =3D y =3D z =3D FT(0);=0A=
   if (! CGAL::NTS:: is_zero(pa)) x =3D -pd/pa;=0A=
   else if (! CGAL::NTS:: is_zero(pb)) y =3D -pd/pb;=0A=
   else z =3D -pd/pc;=0A=
 }=0A=
 =0A=
 template <class FT>=0A=
 =0A=
 void=0A=
 projection_planeC3(const FT &pa, const FT &pb, const FT &pc, const FT =
 &pd,=0A=
                    const FT &px, const FT &py, const FT &pz,=0A=
                    FT &x, FT &y, FT &z)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   FT num =3D pa*px + pb*py + pc*pz + pd;=0A=
   FT den =3D pa*pa + pb*pb + pc*pc;=0A=
   FT lambda =3D num / den;=0A=
 =0A=
   x =3D px - lambda * pa;=0A=
   y =3D py - lambda * pb;=0A=
   z =3D pz - lambda * pc;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 squared_distanceC3( const FT &px, const FT &py, const FT &pz,=0A=
                     const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return CGAL::NTS:: square(px-qx) + CGAL::NTS:: square(py-qy) +=0A=
          CGAL::NTS:: square(pz-qz);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 scaled_distance_to_directionC3(const FT &pa, const FT &pb, const FT &pc,=0A=
                                const FT &px, const FT &py, const FT &pz)=0A=
 {=0A=
   return pa*px + pb*py + pc*pz;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 scaled_distance_to_planeC3(=0A=
      const FT &pa, const FT &pb, const FT &pc, const FT &pd,=0A=
      const FT &px, const FT &py, const FT &pz)=0A=
 {=0A=
   return pa*px + pb*py + pc*pz + pd;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 FT=0A=
 scaled_distance_to_planeC3(=0A=
      const FT &ppx, const FT &ppy, const FT &ppz,=0A=
      const FT &pqx, const FT &pqy, const FT &pqz,=0A=
      const FT &prx, const FT &pry, const FT &prz,=0A=
      const FT &px, const FT &py, const FT &pz)=0A=
 {=0A=
   return det3x3_by_formula(ppx-px,ppy-py,ppz-pz,=0A=
                            pqx-px,pqy-py,pqz-pz,=0A=
                            prx-px,pry-py,prz-pz);=0A=
 }=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC3.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 Comparison_result=0A=
 compare_lexicographically_xyzC3(const FT &px, const FT &py, const FT &pz,=0A=
                                 const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   Comparison_result c =3D CGAL::NTS:: compare(px, qx);=0A=
   if (c !=3D EQUAL) return c;=0A=
   c =3D CGAL::NTS:: compare(py, qy);=0A=
   if (c !=3D EQUAL) return c;=0A=
   return CGAL::NTS:: compare(pz, qz);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 strict_dominanceC3(const FT &px, const FT &py, const FT &pz,=0A=
                    const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return CGAL::NTS:: compare(px, qx) =3D=3D LARGER &&=0A=
          CGAL::NTS:: compare(py, qy) =3D=3D LARGER &&=0A=
          CGAL::NTS:: compare(pz, qz) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 dominanceC3(const FT &px, const FT &py, const FT &pz,=0A=
             const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return CGAL::NTS:: compare(px, qx) !=3D SMALLER &&=0A=
          CGAL::NTS:: compare(py, qy) !=3D SMALLER &&=0A=
          CGAL::NTS:: compare(pz, qz) !=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 collinearC3(const FT &px, const FT &py, const FT &pz,=0A=
             const FT &qx, const FT &qy, const FT &qz,=0A=
             const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   FT dpx =3D px-rx;=0A=
   FT dqx =3D qx-rx;=0A=
   FT dpy =3D py-ry;=0A=
   FT dqy =3D qy-ry;=0A=
   if (sign_of_determinant2x2(dpx, dqx, dpy, dqy) !=3D ZERO)=0A=
       return false;=0A=
   FT dpz =3D pz-rz;=0A=
   FT dqz =3D qz-rz;=0A=
   return sign_of_determinant2x2(dpx, dqx, dpz, dqz) =3D=3D ZERO=0A=
       && sign_of_determinant2x2(dpy, dqy, dpz, dqz) =3D=3D ZERO;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Orientation=0A=
 orientationC3(const FT &px, const FT &py, const FT &pz,=0A=
               const FT &qx, const FT &qy, const FT &qz,=0A=
               const FT &rx, const FT &ry, const FT &rz,=0A=
               const FT &sx, const FT &sy, const FT &sz)=0A=
 {=0A=
   return Orientation(sign_of_determinant3x3(qx-px,rx-px,sx-px,=0A=
                                             qy-py,ry-py,sy-py,=0A=
                                             qz-pz,rz-pz,sz-pz));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Angle=0A=
 angleC3(const FT &px, const FT &py, const FT &pz,=0A=
         const FT &qx, const FT &qy, const FT &qz,=0A=
         const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   return (Angle) CGAL::NTS:: sign ((px-qx)*(rx-qx)+=0A=
                                 (py-qy)*(ry-qy)+=0A=
                                 (pz-qz)*(rz-qz));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 Orientation=0A=
 coplanar_orientationC3(const FT &px, const FT &py, const FT &pz,=0A=
                        const FT &qx, const FT &qy, const FT &qz,=0A=
                        const FT &rx, const FT &ry, const FT &rz,=0A=
                        const FT &sx, const FT &sy, const FT &sz)=0A=
 {=0A=
   Orientation oxy_pqr =3D orientationC2(px,py,qx,qy,rx,ry);=0A=
   if (oxy_pqr !=3D COLLINEAR)=0A=
       return Orientation( oxy_pqr * orientationC2(px,py,qx,qy,sx,sy));=0A=
 =0A=
   Orientation oyz_pqr =3D orientationC2(py,pz,qy,qz,ry,rz);=0A=
   if (oyz_pqr !=3D COLLINEAR)=0A=
       return Orientation( oyz_pqr * orientationC2(py,pz,qy,qz,sy,sz));=0A=
 =0A=
   Orientation oxz_pqr =3D orientationC2(px,pz,qx,qz,rx,rz);=0A=
   ((oxz_pqr !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::assertion_fail( "oxz_pqr !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr=
 edicates/kernel_ftC3.h", 153, 0));=0A=
   return Orientation( oxz_pqr * orientationC2(px,pz,qx,qz,sx,sz));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 Orientation=0A=
 coplanar_orientationC3(const FT &px, const FT &py, const FT &pz,=0A=
                        const FT &qx, const FT &qy, const FT &qz,=0A=
                        const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   Orientation oxy_pqr =3D orientationC2(px,py,qx,qy,rx,ry);=0A=
   if (oxy_pqr !=3D COLLINEAR)=0A=
       return oxy_pqr;=0A=
 =0A=
   Orientation oyz_pqr =3D orientationC2(py,pz,qy,qz,ry,rz);=0A=
   if (oyz_pqr !=3D COLLINEAR)=0A=
       return oyz_pqr;=0A=
 =0A=
   return orientationC2(px,pz,qx,qz,rx,rz);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Bounded_side=0A=
 coplanar_side_of_bounded_circleC3(const FT &px, const FT &py, const FT =
 &pz,=0A=
                                   const FT &qx, const FT &qy, const FT =
 &qz,=0A=
                                   const FT &rx, const FT &ry, const FT =
 &rz,=0A=
                                   const FT &tx, const FT &ty, const FT =
 &tz)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   FT ptx =3D px - tx;=0A=
   FT pty =3D py - ty;=0A=
   FT ptz =3D pz - tz;=0A=
   FT pt2 =3D CGAL::NTS:: square(ptx) + CGAL::NTS:: square(pty) + =
 CGAL::NTS:: square(ptz);=0A=
   FT qtx =3D qx - tx;=0A=
   FT qty =3D qy - ty;=0A=
   FT qtz =3D qz - tz;=0A=
   FT qt2 =3D CGAL::NTS:: square(qtx) + CGAL::NTS:: square(qty) + =
 CGAL::NTS:: square(qtz);=0A=
   FT rtx =3D rx - tx;=0A=
   FT rty =3D ry - ty;=0A=
   FT rtz =3D rz - tz;=0A=
   FT rt2 =3D CGAL::NTS:: square(rtx) + CGAL::NTS:: square(rty) + =
 CGAL::NTS:: square(rtz);=0A=
   FT pqx =3D qx - px;=0A=
   FT pqy =3D qy - py;=0A=
   FT pqz =3D qz - pz;=0A=
   FT prx =3D rx - px;=0A=
   FT pry =3D ry - py;=0A=
   FT prz =3D rz - pz;=0A=
   FT vx =3D pqy*prz - pqz*pry;=0A=
   FT vy =3D pqz*prx - pqx*prz;=0A=
   FT vz =3D pqx*pry - pqy*prx;=0A=
   FT v2 =3D CGAL::NTS:: square(vx) + CGAL::NTS:: square(vy) + =
 CGAL::NTS:: square(vz);=0A=
   return Bounded_side(sign_of_determinant4x4(ptx,pty,ptz,pt2,=0A=
                                              rtx,rty,rtz,rt2,=0A=
                                              qtx,qty,qtz,qt2,=0A=
                                              vx,vy,vz,v2));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 collinear_are_ordered_along_lineC3(=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz,=0A=
      const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   if (px < qx) return !(rx < qx);=0A=
   if (qx < px) return !(qx < rx);=0A=
   if (py < qy) return !(ry < qy);=0A=
   if (qy < py) return !(qy < ry);=0A=
   if (pz < qz) return !(rz < qz);=0A=
   if (qz < pz) return !(qz < rz);=0A=
   return true;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 collinear_are_strictly_ordered_along_lineC3(=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz,=0A=
      const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   if (px < qx) return (qx < rx);=0A=
   if (qx < px) return (rx < qx);=0A=
   if (py < qy) return (qy < ry);=0A=
   if (qy < py) return (ry < qy);=0A=
   if (pz < qz) return (qz < rz);=0A=
   if (qz < pz) return (rz < qz);=0A=
   return false;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 equal_directionC3(const FT &dx1, const FT &dy1, const FT &dz1,=0A=
                   const FT &dx2, const FT &dy2, const FT &dz2)=0A=
 {=0A=
   return sign_of_determinant2x2(dx1, dy1, dx2, dy2) =3D=3D ZERO=0A=
       && sign_of_determinant2x2(dx1, dz1, dx2, dz2) =3D=3D ZERO=0A=
       && sign_of_determinant2x2(dy1, dz1, dy2, dz2) =3D=3D ZERO=0A=
       && CGAL::NTS:: sign(dx1) =3D=3D CGAL::NTS:: sign(dx2)=0A=
       && CGAL::NTS:: sign(dy1) =3D=3D CGAL::NTS:: sign(dy2)=0A=
       && CGAL::NTS:: sign(dz1) =3D=3D CGAL::NTS:: sign(dz2);=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 bool=0A=
 equal_planeC3(const FT &ha, const FT &hb, const FT &hc, const FT &hd,=0A=
               const FT &pa, const FT &pb, const FT &pc, const FT &pd)=0A=
 {=0A=
     if (!equal_directionC3(ha, hb, hc, pa, pb, pc))=0A=
         return false;=0A=
 =0A=
     CGAL::Sign s1a =3D CGAL::NTS:: sign(ha);=0A=
     if (s1a !=3D ZERO)=0A=
         return s1a =3D=3D CGAL::NTS:: sign(pa)=0A=
             && sign_of_determinant2x2(pa, pd, ha, hd) =3D=3D ZERO;=0A=
     CGAL::Sign s1b =3D CGAL::NTS:: sign(hb);=0A=
     if (s1b !=3D ZERO)=0A=
         return s1b =3D=3D CGAL::NTS:: sign(pb)=0A=
             && sign_of_determinant2x2(pb, pd, hb, hd) =3D=3D ZERO;=0A=
     return CGAL::NTS:: sign(pc) =3D=3D CGAL::NTS:: sign(hc)=0A=
         && sign_of_determinant2x2(pc, pd, hc, hd) =3D=3D ZERO;=0A=
 }=0A=
 =0A=
 template <class FT >=0A=
 =0A=
 Oriented_side=0A=
 side_of_oriented_planeC3(const FT &a, const FT &b, const FT &c, const FT =
 &d,=0A=
                          const FT &px, const FT &py, const FT &pz)=0A=
 {=0A=
   return Oriented_side(CGAL::NTS:: sign(a*px + b*py + c*pz +d));=0A=
 }=0A=
 =0A=
 template <class FT >=0A=
 =0A=
 Oriented_side=0A=
 side_of_oriented_sphereC3(const FT &px, const FT &py, const FT &pz,=0A=
                           const FT &qx, const FT &qy, const FT &qz,=0A=
                           const FT &rx, const FT &ry, const FT &rz,=0A=
                           const FT &sx, const FT &sy, const FT &sz,=0A=
                           const FT &tx, const FT &ty, const FT &tz)=0A=
 {=0A=
   FT ptx =3D px - tx;=0A=
   FT pty =3D py - ty;=0A=
   FT ptz =3D pz - tz;=0A=
   FT pt2 =3D CGAL::NTS:: square(ptx) + CGAL::NTS:: square(pty) + =
 CGAL::NTS:: square(ptz);=0A=
   FT qtx =3D qx - tx;=0A=
   FT qty =3D qy - ty;=0A=
   FT qtz =3D qz - tz;=0A=
   FT qt2 =3D CGAL::NTS:: square(qtx) + CGAL::NTS:: square(qty) + =
 CGAL::NTS:: square(qtz);=0A=
   FT rtx =3D rx - tx;=0A=
   FT rty =3D ry - ty;=0A=
   FT rtz =3D rz - tz;=0A=
   FT rt2 =3D CGAL::NTS:: square(rtx) + CGAL::NTS:: square(rty) + =
 CGAL::NTS:: square(rtz);=0A=
   FT stx =3D sx - tx;=0A=
   FT sty =3D sy - ty;=0A=
   FT stz =3D sz - tz;=0A=
   FT st2 =3D CGAL::NTS:: square(stx) + CGAL::NTS:: square(sty) + =
 CGAL::NTS:: square(stz);=0A=
   return Oriented_side(sign_of_determinant4x4(ptx,pty,ptz,pt2,=0A=
                                               rtx,rty,rtz,rt2,=0A=
                                               qtx,qty,qtz,qt2,=0A=
                                               stx,sty,stz,st2));=0A=
 }=0A=
 =0A=
 template <class FT >=0A=
 =0A=
 Bounded_side=0A=
 side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A=
                          const FT &qx, const FT &qy, const FT &qz,=0A=
                          const FT &rx, const FT &ry, const FT &rz,=0A=
                          const FT &sx, const FT &sy, const FT &sz,=0A=
                          const FT &tx, const FT &ty, const FT &tz)=0A=
 {=0A=
   Oriented_side s =3D side_of_oriented_sphereC3(px, py, pz,=0A=
                                               qx, qy, qz,=0A=
                                               rx, ry, rz,=0A=
                                               sx, sy, sz,=0A=
                                               tx, ty, tz);=0A=
   Orientation o =3D orientationC3(px, py, pz,=0A=
                                 qx, qy, qz,=0A=
                                 rx, ry, rz,=0A=
                                 sx, sy, sz);=0A=
   return Bounded_side(s * o);=0A=
 }=0A=
 =0A=
 template <class FT >=0A=
 =0A=
 Bounded_side=0A=
 side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A=
                          const FT &qx, const FT &qy, const FT &qz,=0A=
                          const FT &tx, const FT &ty, const FT &tz)=0A=
 {=0A=
 =0A=
   return Bounded_side( CGAL::NTS:: sign((tx-px)*(qx-tx)=0A=
                                    + (ty-py)*(qy-ty)=0A=
                                    + (tz-pz)*(qz-tz)) );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 inline=0A=
 Comparison_result=0A=
 cmp_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A=
                     const FT &qx, const FT &qy, const FT &qz,=0A=
                     const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   return CGAL::NTS:: compare(squared_distanceC3(px,py,pz,qx,qy,qz),=0A=
                           squared_distanceC3(px,py,pz,rx,ry,rz));=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <class FT >=0A=
 =0A=
 Bounded_side=0A=
 side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A=
                          const FT &qx, const FT &qy, const FT &qz,=0A=
                          const FT &sx, const FT &sy, const FT &sz,=0A=
                          const FT &tx, const FT &ty, const FT &tz)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   FT psx =3D px-sx;=0A=
   FT psy =3D py-sy;=0A=
   FT psz =3D pz-sz;=0A=
   FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + =
 CGAL::NTS:: square(psz);=0A=
   FT qsx =3D qx-sx;=0A=
   FT qsy =3D qy-sy;=0A=
   FT qsz =3D qz-sz;=0A=
   FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + =
 CGAL::NTS:: square(qsz);=0A=
   FT rsx =3D psy*qsz-psz*qsy;=0A=
   FT rsy =3D psz*qsx-psx*qsz;=0A=
   FT rsz =3D psx*qsy-psy*qsx;=0A=
   FT tsx =3D tx-sx;=0A=
   FT tsy =3D ty-sy;=0A=
   FT tsz =3D tz-sz;=0A=
 =0A=
   FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A=
            - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A=
   FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A=
            - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A=
   FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A=
            - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A=
 =0A=
   FT den =3D det3x3_by_formula(psx,psy,psz,=0A=
                                qsx,qsy,qsz,=0A=
                                rsx,rsy,rsz);=0A=
 =0A=
   FT den2 =3D FT(2) * den;=0A=
 =0A=
 =0A=
   return Bounded_side(cmp_dist_to_pointC3(num_x, - num_y, num_z,=0A=
                                           psx*den2, psy*den2, psz*den2,=0A=
                                           tsx*den2, tsy*den2, tsz*den2) =
 );=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_larger_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A=
                            const FT &qx, const FT &qy, const FT &qz,=0A=
                            const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   return cmp_dist_to_pointC3(px,py,pz,qx,qy,qz,rx,ry,rz) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_smaller_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A=
                             const FT &qx, const FT &qy, const FT &qz,=0A=
                             const FT &rx, const FT &ry, const FT &rz)=0A=
 {=0A=
   return cmp_dist_to_pointC3(px,py,pz,qx,qy,qz,rx,ry,rz) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 cmp_signed_dist_to_directionC3(=0A=
      const FT &pa, const FT &pb, const FT &pc,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return CGAL::NTS:: =
 compare(scaled_distance_to_directionC3(pa,pb,pc,px,py,pz),=0A=
                           =
 scaled_distance_to_directionC3(pa,pb,pc,qx,qy,qz));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_larger_signed_dist_to_directionC3(=0A=
      const FT &pa, const FT &pb, const FT &pc,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC3(pa,pb,pc,px,py,pz,qx,qy,qz) =
 =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_smaller_signed_dist_to_directionC3(=0A=
      const FT &pa, const FT &pb, const FT &pc,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC3(pa,pb,pc,px,py,pz,qx,qy,qz) =
 =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 Comparison_result=0A=
 cmp_signed_dist_to_planeC3(=0A=
      const FT &ppx, const FT &ppy, const FT &ppz,=0A=
      const FT &pqx, const FT &pqy, const FT &pqz,=0A=
      const FT &prx, const FT &pry, const FT &prz,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
   return Comparison_result(sign_of_determinant3x3(=0A=
               pqx-ppx, pqy-ppy, pqz-ppz,=0A=
               prx-ppx, pry-ppy, prz-ppz,=0A=
               qx-px, qy-py, qz-pz));=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_larger_signed_dist_to_planeC3(=0A=
      const FT &ppx, const FT &ppy, const FT &ppz,=0A=
      const FT &pqx, const FT &pqy, const FT &pqz,=0A=
      const FT &prx, const FT &pry, const FT &prz,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
     return cmp_signed_dist_to_planeC3(ppx, ppy, ppz, pqx, pqy, pqz,=0A=
             prx, pry, prz, px, py, pz, qx, qy, qz) =3D=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class FT >=0A=
 =0A=
 =0A=
 bool=0A=
 has_smaller_signed_dist_to_planeC3(=0A=
      const FT &ppx, const FT &ppy, const FT &ppz,=0A=
      const FT &pqx, const FT &pqy, const FT &pqz,=0A=
      const FT &prx, const FT &pry, const FT &prz,=0A=
      const FT &px, const FT &py, const FT &pz,=0A=
      const FT &qx, const FT &qy, const FT &qz)=0A=
 {=0A=
     return cmp_signed_dist_to_planeC3(ppx, ppy, ppz, pqx, pqy, pqz,=0A=
             prx, pry, prz, px, py, pz, qx, qy, qz) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_points_3.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 x_equal(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.x() =3D=3D q.x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 y_equal(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.y() =3D=3D q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 z_equal(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.z() =3D=3D q.z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 less_x(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.x() < q.x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 less_y(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.y() < q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 less_z(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.z() < q.z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_x(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return CGAL::NTS:: compare(p.x(), q.x());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_y(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return CGAL::NTS:: compare(p.y(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_z(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return CGAL::NTS:: compare(p.z(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_xy(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.x() =3D=3D q.x() && p.y() =3D=3D q.y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_xyz(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return p.x() =3D=3D q.x() && p.y() =3D=3D q.y() && p.z() =3D=3D q.z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_xy(const PointC3<R> &p,=0A=
            const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Comparison_result=0A=
 compare_lexicographically_xy(const PointC3<R> &p,=0A=
                              const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_smaller_or_equal(const PointC3<R> &p,=0A=
                                       const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xy(p, q) !=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 lexicographically_xy_smaller(const PointC3<R> &p,=0A=
                              const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xy(p, q) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_xyz(const PointC3<R> &p,=0A=
                               const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyzC3(p.x(), p.y(), p.z(),=0A=
                                          q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 Comparison_result=0A=
 compare_lexicographically_xyz(const PointC3<R> &p,=0A=
                               const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyzC3(p.x(), p.y(), p.z(),=0A=
                                          q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 lexicographically_xyz_smaller_or_equal(const PointC3<R> &p,=0A=
                                        const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyz(p, q) !=3D LARGER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 bool=0A=
 lexicographically_xyz_smaller(const PointC3<R> &p,=0A=
                               const PointC3<R> &q)=0A=
 {=0A=
   return compare_lexicographically_xyz(p, q) =3D=3D SMALLER;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 strict_dominance(const PointC3<R> &p,=0A=
                  const PointC3<R> &q)=0A=
 {=0A=
   return strict_dominanceC3(p.x(), p.y(), p.z(),=0A=
                             q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 dominance(const PointC3<R> &p,=0A=
           const PointC3<R> &q)=0A=
 {=0A=
   return dominanceC3(p.x(), p.y(), p.z(),=0A=
                      q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear(const PointC3<R> &p,=0A=
           const PointC3<R> &q,=0A=
           const PointC3<R> &r)=0A=
 {=0A=
   return collinearC3(p.x(), p.y(), p.z(),=0A=
                      q.x(), q.y(), q.z(),=0A=
                      r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Orientation=0A=
 orientation(const PointC3<R> &p,=0A=
             const PointC3<R> &q,=0A=
             const PointC3<R> &r,=0A=
             const PointC3<R> &s)=0A=
 {=0A=
   return orientationC3(p.x(), p.y(), p.z(),=0A=
                        q.x(), q.y(), q.z(),=0A=
                        r.x(), r.y(), r.z(),=0A=
                        s.x(), s.y(), s.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Angle=0A=
 angle(const PointC3<R> &p,=0A=
       const PointC3<R> &q,=0A=
       const PointC3<R> &r)=0A=
 {=0A=
     return angleC3(p.x(), p.y(), p.z(),=0A=
                    q.x(), q.y(), q.z(),=0A=
                    r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 coplanar(const PointC3<R> &p,=0A=
          const PointC3<R> &q,=0A=
          const PointC3<R> &r,=0A=
          const PointC3<R> &s)=0A=
 {=0A=
   return orientation(p, q, r, s) =3D=3D COPLANAR;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Orientation=0A=
 coplanar_orientation(const PointC3<R> &p,=0A=
                      const PointC3<R> &q,=0A=
                      const PointC3<R> &r,=0A=
                      const PointC3<R> &s)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   (static_cast<void>(0));=0A=
   (static_cast<void>(0));=0A=
   return coplanar_orientationC3(p.x(), p.y(), p.z(),=0A=
                                 q.x(), q.y(), q.z(),=0A=
                                 r.x(), r.y(), r.z(),=0A=
                                 s.x(), s.y(), s.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Orientation=0A=
 coplanar_orientation(const PointC3<R> &p,=0A=
                      const PointC3<R> &q,=0A=
                      const PointC3<R> &r)=0A=
 {=0A=
 =0A=
   return coplanar_orientationC3(p.x(), p.y(), p.z(),=0A=
                                 q.x(), q.y(), q.z(),=0A=
                                 r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bounded_side=0A=
 coplanar_side_of_bounded_circle(const PointC3<R> &p,=0A=
                                 const PointC3<R> &q,=0A=
                                 const PointC3<R> &r,=0A=
                                 const PointC3<R> &t)=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
   (static_cast<void>(0));=0A=
   (static_cast<void>(0));=0A=
   return coplanar_side_of_bounded_circleC3(p.x(), p.y(), p.z(),=0A=
                                            q.x(), q.y(), q.z(),=0A=
                                            r.x(), r.y(), r.z(),=0A=
                                            t.x(), t.y(), t.z());=0A=
 }=0A=
 =0A=
 template < class R>=0A=
 inline=0A=
 bool=0A=
 are_positive_oriented(const PointC3<R>& p,=0A=
                       const PointC3<R>& q,=0A=
                       const PointC3<R>& r,=0A=
                       const PointC3<R>& s)=0A=
 {=0A=
   return orientation(p, q, r, s) =3D=3D POSITIVE;=0A=
 }=0A=
 =0A=
 template < class R>=0A=
 inline=0A=
 bool=0A=
 are_negative_oriented(const PointC3<R>& p,=0A=
                       const PointC3<R>& q,=0A=
                       const PointC3<R>& r,=0A=
                       const PointC3<R>& s)=0A=
 {=0A=
   return orientation(p, q, r, s) =3D=3D NEGATIVE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 are_ordered_along_line(const PointC3<R> &p,=0A=
                        const PointC3<R> &q,=0A=
                        const PointC3<R> &r)=0A=
 {=0A=
   return collinear(p, q, r) ? collinear_are_ordered_along_line(p, q, r)=0A=
                             : false;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear_are_ordered_along_line(const PointC3<R> &p,=0A=
                                  const PointC3<R> &q,=0A=
                                  const PointC3<R> &r)=0A=
 {=0A=
   (static_cast<void>(0));=0A=
   return collinear_are_ordered_along_lineC3(p.x(), p.y(), p.z(),=0A=
                                             q.x(), q.y(), q.z(),=0A=
                                             r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 are_strictly_ordered_along_line(const PointC3<R> &p,=0A=
                                 const PointC3<R> &q,=0A=
                                 const PointC3<R> &r)=0A=
 {=0A=
   return (collinear(p, q, r))=0A=
          ? collinear_are_strictly_ordered_along_line(p, q, r)=0A=
          : false;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 collinear_are_strictly_ordered_along_line(const PointC3<R> &p,=0A=
                                           const PointC3<R> &q,=0A=
                                           const PointC3<R> &r)=0A=
 {=0A=
   (static_cast<void>(0));=0A=
   return collinear_are_strictly_ordered_along_lineC3(p.x(), p.y(), p.z(),=0A=
                                                      q.x(), q.y(), q.z(),=0A=
                                                      r.x(), r.y(), =
 r.z());=0A=
 }=0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Oriented_side=0A=
 side_of_oriented_sphere(const PointC3<R> &p,=0A=
                         const PointC3<R> &q,=0A=
                         const PointC3<R> &r,=0A=
                         const PointC3<R> &s,=0A=
                         const PointC3<R> &test)=0A=
 {=0A=
   return side_of_oriented_sphereC3(p.x(), p.y(), p.z(),=0A=
                                    q.x(), q.y(), q.z(),=0A=
                                    r.x(), r.y(), r.z(),=0A=
                                    s.x(), s.y(), s.z(),=0A=
                                    test.x(), test.y(), test.z());=0A=
 }=0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Bounded_side=0A=
 side_of_bounded_sphere(const PointC3<R> &p,=0A=
                        const PointC3<R> &q,=0A=
                        const PointC3<R> &test)=0A=
 {=0A=
   return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A=
                                   q.x(), q.y(), q.z(),=0A=
                                   test.x(), test.y(), test.z());=0A=
 }=0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Bounded_side=0A=
 side_of_bounded_sphere(const PointC3<R> &p,=0A=
                        const PointC3<R> &q,=0A=
                        const PointC3<R> &r,=0A=
                        const PointC3<R> &test)=0A=
 {=0A=
   return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A=
                                   q.x(), q.y(), q.z(),=0A=
                                   r.x(), r.y(), r.z(),=0A=
                                   test.x(), test.y(), test.z());=0A=
 }=0A=
 =0A=
 template <class R >=0A=
 inline=0A=
 Bounded_side=0A=
 side_of_bounded_sphere(const PointC3<R> &p,=0A=
                        const PointC3<R> &q,=0A=
                        const PointC3<R> &r,=0A=
                        const PointC3<R> &s,=0A=
                        const PointC3<R> &test)=0A=
 {=0A=
   return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A=
                                   q.x(), q.y(), q.z(),=0A=
                                   r.x(), r.y(), r.z(),=0A=
                                   s.x(), s.y(), s.z(),=0A=
                                   test.x(), test.y(), test.z());=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_cuboid_3.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class Iso_cuboidC3=0A=
   : public R_::Iso_cuboid_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Iso_cuboid_3 Iso_cuboid_3;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Iso_cuboid_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Iso_cuboidC3()=0A=
     : base(rep()) {}=0A=
 =0A=
   Iso_cuboidC3(const Point_3 &p, const Point_3 &q)=0A=
   {=0A=
     FT minx, maxx, miny, maxy, minz, maxz;=0A=
     if (p.x() < q.x()) { minx =3D p.x(); maxx =3D q.x(); }=0A=
     else { minx =3D q.x(); maxx =3D p.x(); }=0A=
     if (p.y() < q.y()) { miny =3D p.y(); maxy =3D q.y(); }=0A=
     else { miny =3D q.y(); maxy =3D p.y(); }=0A=
     if (p.z() < q.z()) { minz =3D p.z(); maxz =3D q.z(); }=0A=
     else { minz =3D q.z(); maxz =3D p.z(); }=0A=
     initialize_with(rep(Point_3(minx, miny, minz),=0A=
                                      Point_3(maxx, maxy, maxz)));=0A=
   }=0A=
 =0A=
   Iso_cuboidC3(const FT& min_x, const FT& min_y, const FT& min_z,=0A=
                const FT& max_x, const FT& max_y, const FT& max_z)=0A=
   {=0A=
     initialize_with(rep(Point_3(min_x, min_y, min_z),=0A=
                                      Point_3(max_x, max_y, max_z)));=0A=
   }=0A=
 =0A=
   Iso_cuboidC3(const FT& min_hx, const FT& min_hy, const FT& min_hz,=0A=
                const FT& max_hx, const FT& max_hy, const FT& max_hz,=0A=
                const FT& hw)=0A=
   {=0A=
     if (hw =3D=3D FT(1))=0A=
        initialize_with(rep(Point_3(min_hx, min_hy, min_hz),=0A=
                                         Point_3(max_hx, max_hy, =
 max_hz)));=0A=
     else=0A=
        initialize_with(=0A=
          rep(Point_3(min_hx/hw, min_hy/hw, min_hz/hw),=0A=
                           Point_3(max_hx/hw, max_hy/hw, max_hz/hw)));=0A=
   }=0A=
 =0A=
 =0A=
   bool operator=3D=3D(const Iso_cuboidC3& s) const;=0A=
   bool operator!=3D(const Iso_cuboidC3& s) const;=0A=
 =0A=
   const Point_3 & min() const=0A=
   {=0A=
       return Ptr()->e0;=0A=
   }=0A=
   const Point_3 & max() const=0A=
   {=0A=
       return Ptr()->e1;=0A=
   }=0A=
   Point_3 vertex(int i) const;=0A=
   Point_3 operator[](int i) const;=0A=
 =0A=
   Iso_cuboid_3 transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
     return Iso_cuboidC3(t.transform(min()), t.transform(max()));=0A=
   }=0A=
 =0A=
   Bounded_side bounded_side(const Point_3& p) const;=0A=
   bool has_on(const Point_3& p) const;=0A=
   bool has_on_boundary(const Point_3& p) const;=0A=
   bool has_on_bounded_side(const Point_3& p) const;=0A=
   bool has_on_unbounded_side(const Point_3& p) const;=0A=
   bool is_degenerate() const;=0A=
   Bbox_3 bbox() const;=0A=
   const FT & xmin() const;=0A=
   const FT & ymin() const;=0A=
   const FT & zmin() const;=0A=
   const FT & xmax() const;=0A=
   const FT & ymax() const;=0A=
   const FT & zmax() const;=0A=
   const FT & min_coord(int i) const;=0A=
   const FT & max_coord(int i) const;=0A=
 =0A=
   FT volume() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::operator=3D=3D(const Iso_cuboidC3<R>& r) const=0A=
 {=0A=
   if (identical(r))=0A=
       return true;=0A=
   return min() =3D=3D r.min() && max() =3D=3D r.max();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::operator!=3D(const Iso_cuboidC3<R>& r) const=0A=
 {=0A=
   return !(*this =3D=3D r);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::xmin() const=0A=
 {=0A=
   return min().x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::ymin() const=0A=
 {=0A=
   return min().y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::zmin() const=0A=
 {=0A=
   return min().z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::xmax() const=0A=
 {=0A=
   return max().x();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::ymax() const=0A=
 {=0A=
   return max().y();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::zmax() const=0A=
 {=0A=
   return max().z();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::min_coord(int i) const=0A=
 {=0A=
   ((i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_cuboid_3.h", 219, 0));=0A=
   if (i =3D=3D 0)=0A=
      return xmin();=0A=
   else if (i =3D=3D 1)=0A=
      return ymin();=0A=
   else=0A=
      return zmin();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 const typename Iso_cuboidC3<R>::FT &=0A=
 Iso_cuboidC3<R>::max_coord(int i) const=0A=
 {=0A=
   ((i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Iso_cuboid_3.h", 233, 0));=0A=
   if (i =3D=3D 0)=0A=
      return xmax();=0A=
   else if (i =3D=3D 1)=0A=
      return ymax();=0A=
   else=0A=
      return zmax();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Iso_cuboidC3<R>::Point_3=0A=
 Iso_cuboidC3<R>::vertex(int i) const=0A=
 {=0A=
   switch (i%8)=0A=
   {=0A=
     case 0: return min();=0A=
     case 1: return Point_3(max().hx(), min().hy(), min().hz());=0A=
     case 2: return Point_3(max().hx(), max().hy(), min().hz());=0A=
     case 3: return Point_3(min().hx(), max().hy(), min().hz());=0A=
     case 4: return Point_3(min().hx(), max().hy(), max().hz());=0A=
     case 5: return Point_3(min().hx(), min().hy(), max().hz());=0A=
     case 6: return Point_3(max().hx(), min().hy(), max().hz());=0A=
     default:=0A=
         return max();=0A=
   }=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Iso_cuboidC3<R>::Point_3=0A=
 Iso_cuboidC3<R>::operator[](int i) const=0A=
 {=0A=
   return vertex(i);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Iso_cuboidC3<R>::FT=0A=
 Iso_cuboidC3<R>::volume() const=0A=
 {=0A=
   return (xmax()-xmin()) * (ymax()-ymin()) * (zmax()-zmin());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Bounded_side=0A=
 Iso_cuboidC3<R>::=0A=
 bounded_side(const typename Iso_cuboidC3<R>::Point_3& p) const=0A=
 {=0A=
   if (strict_dominance(p, min()) && strict_dominance(max(), p) )=0A=
     return ON_BOUNDED_SIDE;=0A=
   if (dominance(p, min()) && dominance(max(), p))=0A=
     return ON_BOUNDARY;=0A=
   return ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::=0A=
 has_on_boundary(const typename Iso_cuboidC3<R>::Point_3& p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::=0A=
 has_on(const typename Iso_cuboidC3<R>::Point_3& p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDARY;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::=0A=
 has_on_bounded_side(const typename Iso_cuboidC3<R>::Point_3& p) const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::=0A=
 has_on_unbounded_side(const typename Iso_cuboidC3<R>::Point_3& p)=0A=
     const=0A=
 {=0A=
   return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 Iso_cuboidC3<R>::is_degenerate() const=0A=
 {=0A=
   return min().hx() =3D=3D max().hx()=0A=
       || min().hy() =3D=3D max().hy()=0A=
       || min().hz() =3D=3D max().hz();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_3=0A=
 Iso_cuboidC3<R>::bbox() const=0A=
 {=0A=
   return min().bbox() + max().bbox();=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &=0A=
 operator<<(std::ostream& os, const Iso_cuboidC3<R>& r)=0A=
 {=0A=
   switch(os.iword(IO::mode)) {=0A=
   case IO::ASCII :=0A=
     return os << r.min() << ' ' << r.max();=0A=
   case IO::BINARY :=0A=
     return os << r.min() << r.max();=0A=
   default:=0A=
     return os << "Iso_cuboidC3(" << r.min() << ", " << r.max() << ")";=0A=
   }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::istream &=0A=
 operator>>(std::istream& is, Iso_cuboidC3<R>& r)=0A=
 {=0A=
   typename R::Point_3 p, q;=0A=
   is >> p >> q;=0A=
   if (is)=0A=
       r =3D Iso_cuboidC3<R>(p, q);=0A=
   return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 96 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R_>=0A=
 class SphereC3=0A=
   : public R_::Sphere_handle_3=0A=
 {=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Sphere_3 Sphere_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   typedef typename R_::Sphere_handle_3 base;=0A=
   typedef typename base::element_type rep;=0A=
 =0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   SphereC3()=0A=
     : base() {}=0A=
 =0A=
   SphereC3(const Point_3 &center, const FT &squared_radius,=0A=
            const Orientation &o =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     (((squared_radius >=3D FT(0)) && (o !=3D =
 COLLINEAR))?(static_cast<void>(0)): ::CGAL::precondition_fail( =
 "(squared_radius >=3D FT(0)) && (o !=3D COLLINEAR)" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h", 75, 0));=0A=
 =0A=
 =0A=
     initialize_with(rep(center, squared_radius, o));=0A=
   }=0A=
 =0A=
 =0A=
   SphereC3(const Point_3 &p, const Point_3 &q,=0A=
            const Point_3 &r, const Point_3 &s)=0A=
   {=0A=
     Orientation orient =3D CGAL::orientation(p, q, r, s);=0A=
     Point_3 center =3D circumcenter(p, q, r, s);=0A=
     FT squared_radius =3D squared_distance(p, center);=0A=
 =0A=
     initialize_with(rep(center, squared_radius, orient));=0A=
   }=0A=
 =0A=
 =0A=
   SphereC3(const Point_3 &p, const Point_3 &q, const Point_3 &r,=0A=
            const Orientation &o =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     ((o !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "o !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h", 95, 0));=0A=
 =0A=
     Point_3 center =3D circumcenter(p, q, r);=0A=
     FT squared_radius =3D squared_distance(p, center);=0A=
 =0A=
     initialize_with(rep(center, squared_radius, o));=0A=
   }=0A=
 =0A=
 =0A=
   SphereC3(const Point_3 &p, const Point_3 &q,=0A=
            const Orientation &o =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     ((o !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "o !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h", 107, 0));=0A=
 =0A=
     Point_3 center =3D midpoint(p, q);=0A=
     FT squared_radius =3D squared_distance(p, center);=0A=
 =0A=
     initialize_with(rep(center, squared_radius, o));=0A=
   }=0A=
 =0A=
   SphereC3(const Point_3 &center,=0A=
            const Orientation& o =3D COUNTERCLOCKWISE)=0A=
   {=0A=
     ((o !=3D COLLINEAR)?(static_cast<void>(0)): =
 ::CGAL::precondition_fail( "o !=3D COLLINEAR" , =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h", 118, 0));=0A=
 =0A=
     initialize_with(rep(center, FT(0), o));=0A=
   }=0A=
 =0A=
   bool operator=3D=3D(const SphereC3 &) const;=0A=
   bool operator!=3D(const SphereC3 &) const;=0A=
 =0A=
   const Point_3 & center() const=0A=
   {=0A=
       return Ptr()->first;=0A=
   }=0A=
   const FT & squared_radius() const=0A=
   {=0A=
 =0A=
 =0A=
       return Ptr()->second;=0A=
   }=0A=
   Orientation orientation() const=0A=
   {=0A=
       return Ptr()->third;=0A=
   }=0A=
 =0A=
   Sphere_3 orthogonal_transform(const Aff_transformation_3 &t) const=0A=
   {=0A=
 =0A=
     Vector_3 vec(FT(1), FT(0));=0A=
     vec =3D vec.transform(t);=0A=
     FT sq_scale =3D vec.squared_length();=0A=
 =0A=
     return SphereC3(t.transform(center()),=0A=
                     sq_scale * squared_radius(),=0A=
                     t.is_even() ? orientation()=0A=
                                 : CGAL::opposite(orientation()));=0A=
   }=0A=
 =0A=
 =0A=
   bool is_degenerate() const;=0A=
 =0A=
 =0A=
   Sphere_3 opposite() const;=0A=
 =0A=
   Oriented_side oriented_side(const Point_3 &p) const;=0A=
 =0A=
 =0A=
 =0A=
   bool has_on_boundary(const Point_3 &p) const;=0A=
   bool has_on_positive_side(const Point_3 &p) const;=0A=
   bool has_on_negative_side(const Point_3 &p) const;=0A=
 =0A=
   Bounded_side bounded_side(const Point_3 &p) const;=0A=
 =0A=
 =0A=
   bool has_on_bounded_side(const Point_3 &p) const;=0A=
   bool has_on_unbounded_side(const Point_3 &p) const;=0A=
 =0A=
   Bbox_3 bbox() const;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::operator=3D=3D(const SphereC3<R> &t) const=0A=
 {=0A=
   if (identical(t))=0A=
       return true;=0A=
   return center() =3D=3D t.center() &&=0A=
          squared_radius() =3D=3D t.squared_radius() &&=0A=
          orientation() =3D=3D t.orientation();=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::operator!=3D(const SphereC3<R> &t) const=0A=
 {=0A=
   return !(*this =3D=3D t);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Oriented_side=0A=
 SphereC3<R>::=0A=
 oriented_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
   return Oriented_side(bounded_side(p) * orientation());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bounded_side=0A=
 SphereC3<R>::=0A=
 bounded_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
 =0A=
   return Bounded_side(CGAL::NTS:: compare(squared_radius(),=0A=
                                        squared_distance(center(),p)));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 has_on_boundary(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
 =0A=
   return squared_distance(center(),p) =3D=3D squared_radius();=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 has_on_negative_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
   if (orientation() =3D=3D COUNTERCLOCKWISE)=0A=
     return has_on_unbounded_side(p);=0A=
   return has_on_bounded_side(p);=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 has_on_positive_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
   if (orientation() =3D=3D COUNTERCLOCKWISE)=0A=
     return has_on_bounded_side(p);=0A=
   return has_on_unbounded_side(p);=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 has_on_bounded_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
 =0A=
   return squared_distance(center(),p) < squared_radius();=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 has_on_unbounded_side(const typename SphereC3<R>::Point_3 &p) const=0A=
 {=0A=
 =0A=
   return squared_distance(center(),p) > squared_radius();=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 SphereC3<R>::=0A=
 is_degenerate() const=0A=
 {=0A=
 =0A=
   return CGAL::NTS:: is_zero(squared_radius());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename SphereC3<R>::Sphere_3=0A=
 SphereC3<R>::opposite() const=0A=
 {=0A=
   return SphereC3<R>(center(), squared_radius(),=0A=
                                CGAL::opposite(orientation()) );=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Bbox_3=0A=
 SphereC3<R>::bbox() const=0A=
 {=0A=
   double cx =3D CGAL::to_double(center().x());=0A=
   double cy =3D CGAL::to_double(center().y());=0A=
   double cz =3D CGAL::to_double(center().z());=0A=
   double radius =3D CGAL::sqrt(CGAL::to_double(squared_radius()));=0A=
 =0A=
   return Bbox_3(cx - radius, cy - radius, cz - radius,=0A=
                 cx + radius, cy + radius, cz + radius);=0A=
 }=0A=
 # 330 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Sphere_3.h"=0A=
 template < class R >=0A=
 inline=0A=
 std::ostream &=0A=
 operator<<(std::ostream &os, const SphereC3<R> &c)=0A=
 {=0A=
     switch(os.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         os << c.center() << ' ' << c.squared_radius() << ' '=0A=
            << static_cast<int>(c.orientation());=0A=
         break;=0A=
     case IO::BINARY :=0A=
         os << c.center();=0A=
         write(os, c.squared_radius());=0A=
         write(os, static_cast<int>(c.orientation()));=0A=
         break;=0A=
     default:=0A=
         os << "SphereC3(" << c.center() << ", " << c.squared_radius();=0A=
         switch (c.orientation()) {=0A=
         case CLOCKWISE:=0A=
             os << ", clockwise)";=0A=
             break;=0A=
         case COUNTERCLOCKWISE:=0A=
             os << ", counterclockwise)";=0A=
             break;=0A=
         default:=0A=
             os << ", collinear)";=0A=
             break;=0A=
         }=0A=
         break;=0A=
     }=0A=
     return os;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 std::istream &=0A=
 operator>>(std::istream &is, SphereC3<R> &c)=0A=
 {=0A=
     typename R::Point_3 center;=0A=
     typename R::FT squared_radius;=0A=
     int o;=0A=
     switch(is.iword(IO::mode)) {=0A=
     case IO::ASCII :=0A=
         is >> center >> squared_radius >> o;=0A=
         break;=0A=
     case IO::BINARY :=0A=
         is >> center;=0A=
         read(is, squared_radius);=0A=
         is >> o;=0A=
         break;=0A=
     default:=0A=
         std::cerr << "" << std::endl;=0A=
         std::cerr << "Stream must be in ascii or binary mode" << =
 std::endl;=0A=
         break;=0A=
     }=0A=
     if (is)=0A=
         c =3D SphereC3<R>(center, squared_radius,=0A=
                                   static_cast<Orientation>(o));=0A=
     return is;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 97 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_3.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 class Identity_transformation;=0A=
 template <class R> class Aff_transformation_rep_baseC3;=0A=
 template <class R> class Aff_transformation_repC3;=0A=
 template <class R> class Translation_repC3;=0A=
 template <class R> class Scaling_repC3;=0A=
 =0A=
 }=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_rep_3.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_rep_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Aff_transformation_rep_baseC3=0A=
   : public Ref_counted_virtual=0A=
 {=0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef typename R::Point_3 Point_3;=0A=
   typedef typename R::Vector_3 Vector_3;=0A=
   typedef typename R::Direction_3 Direction_3;=0A=
   typedef typename R::Aff_transformation_3 Aff_transformation_3;=0A=
 =0A=
   virtual ~Aff_transformation_rep_baseC3(){}=0A=
 =0A=
   virtual Point_3 transform(const Point_3 &p) const =3D 0;=0A=
   virtual Vector_3 transform(const Vector_3 &v) const =3D 0;=0A=
   virtual Direction_3 transform(const Direction_3 &d) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_3 operator*(=0A=
                        const Aff_transformation_rep_baseC3 &t) const =3D =
 0;=0A=
 =0A=
   virtual Aff_transformation_3 compose(=0A=
                        const Translation_repC3<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_3 compose(=0A=
                        const Scaling_repC3<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_3 compose(=0A=
                        const Aff_transformation_repC3<R> &t) const =3D 0;=0A=
 =0A=
   virtual Aff_transformation_3 inverse() const =3D 0;=0A=
   virtual Aff_transformation_3 transpose() const =3D 0;=0A=
   virtual bool is_even() const =3D 0;=0A=
   virtual FT cartesian(int i, int j) const =3D 0;=0A=
   virtual std::ostream &print(std::ostream &os) const =3D 0;=0A=
 };=0A=
 =0A=
 template < class R >=0A=
 class Aff_transformation_repC3=0A=
   : public Aff_transformation_rep_baseC3<R>=0A=
 {=0A=
   friend class Translation_repC3<R>;=0A=
   friend class Scaling_repC3<R>;=0A=
 =0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef Aff_transformation_repC3<R> Self;=0A=
   typedef Aff_transformation_rep_baseC3<R> Transformation_base_3;=0A=
   typedef Aff_transformation_repC3<R> Transformation_3;=0A=
   typedef Translation_repC3<R> Translation_3;=0A=
   typedef Scaling_repC3<R> Scaling_3;=0A=
   typedef typename Transformation_base_3::Point_3 Point_3;=0A=
   typedef typename Transformation_base_3::Vector_3 Vector_3;=0A=
   typedef typename Transformation_base_3::Direction_3 Direction_3;=0A=
   typedef typename Transformation_base_3::=0A=
                                    Aff_transformation_3 =
 Aff_transformation_3;=0A=
 =0A=
   Aff_transformation_repC3()=0A=
   {}=0A=
 =0A=
   Aff_transformation_repC3(const FT& m11, const FT& m12, const FT& m13,=0A=
                            const FT& m21, const FT& m22, const FT& m23,=0A=
                            const FT& m31, const FT& m32, const FT& m33)=0A=
     : t11(m11), t12(m12), t13(m13), t14(FT(0)),=0A=
       t21(m21), t22(m22), t23(m23), t24(FT(0)),=0A=
       t31(m31), t32(m32), t33(m33), t34(FT(0))=0A=
   {}=0A=
 =0A=
   Aff_transformation_repC3(=0A=
      const FT& m11, const FT& m12, const FT& m13, const FT& m14,=0A=
      const FT& m21, const FT& m22, const FT& m23, const FT& m24,=0A=
      const FT& m31, const FT& m32, const FT& m33, const FT& m34=0A=
   )=0A=
     : t11(m11), t12(m12), t13(m13), t14(m14),=0A=
       t21(m21), t22(m22), t23(m23), t24(m24),=0A=
       t31(m31), t32(m32), t33(m33), t34(m34)=0A=
   {}=0A=
 =0A=
   virtual ~Aff_transformation_repC3()=0A=
   {}=0A=
 =0A=
   virtual Point_3 transform(const Point_3& p) const=0A=
   {=0A=
     return Point_3(t11 * p.x() + t12 * p.y() + t13 * p.z() + t14,=0A=
                    t21 * p.x() + t22 * p.y() + t23 * p.z() + t24,=0A=
                    t31 * p.x() + t32 * p.y() + t33 * p.z() + t34);=0A=
   }=0A=
 =0A=
 =0A=
   virtual Vector_3 transform(const Vector_3& v) const=0A=
   {=0A=
     return Vector_3(t11 * v.x() + t12 * v.y() + t13 * v.z(),=0A=
                     t21 * v.x() + t22 * v.y() + t23 * v.z(),=0A=
                     t31 * v.x() + t32 * v.y() + t33 * v.z());=0A=
   }=0A=
 =0A=
 =0A=
   virtual Direction_3 transform(const Direction_3& dir) const=0A=
   {=0A=
     Vector_3 v =3D dir.to_vector();=0A=
     return Direction_3(t11 * v.x() + t12 * v.y() + t13 * v.z(),=0A=
                        t21 * v.x() + t22 * v.y() + t23 * v.z(),=0A=
                        t31 * v.x() + t32 * v.y() + t33 * v.z());=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   virtual Aff_transformation_3 inverse() const;=0A=
   virtual Aff_transformation_3 transpose() const;=0A=
   virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) =
 const;=0A=
   virtual Aff_transformation_3 compose(const Transformation_3 &t) const;=0A=
   virtual Aff_transformation_3 compose(const Translation_3 &t) const;=0A=
   virtual Aff_transformation_3 compose(const Scaling_3 &t) const;=0A=
 =0A=
   virtual bool is_even() const=0A=
   {=0A=
     return sign_of_determinant3x3(t11, t12, t13,=0A=
                                   t21, t22, t23,=0A=
                                   t31, t32, t33) =3D=3D POSITIVE;=0A=
   }=0A=
 =0A=
   virtual FT cartesian(int i, int j) const=0A=
   {=0A=
     switch (i)=0A=
     {=0A=
     case 0: switch (j)=0A=
             {=0A=
               case 0: return t11;=0A=
               case 1: return t12;=0A=
               case 2: return t13;=0A=
               case 3: return t14;=0A=
             }=0A=
     case 1: switch (j)=0A=
             {=0A=
               case 0: return t21;=0A=
               case 1: return t22;=0A=
               case 2: return t23;=0A=
               case 3: return t24;=0A=
             }=0A=
     case 2: switch (j)=0A=
             {=0A=
               case 0: return t31;=0A=
               case 1: return t32;=0A=
               case 2: return t33;=0A=
               case 3: return t34;=0A=
             }=0A=
     case 3: switch (j)=0A=
             {=0A=
               case 0: return FT(0);=0A=
               case 1: return FT(0);=0A=
               case 2: return FT(0);=0A=
               case 3: return FT(1);=0A=
             }=0A=
     }=0A=
   return FT(0);=0A=
   }=0A=
 =0A=
   virtual std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     os <<"Aff_transformationC3("<<t11<<' '<<t12<<' '<<t13<<' =
 '<<t14<<std::endl;=0A=
     os <<"                    "<< t21<<' '<<t22<<' '<<t23<<' =
 '<<t24<<std::endl;=0A=
     os <<"                    "<< t31<<' '<<t32<<' '<<t33<<' '<<t34<<")";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   FT t11, t12, t13, t14;=0A=
   FT t21, t22, t23, t24;=0A=
   FT t31, t32, t33, t34;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::inverse() const=0A=
 {=0A=
   return Aff_transformation_3(=0A=
       det2x2_by_formula( t22, t23, t32, t33),=0A=
      -det2x2_by_formula( t12, t13, t32, t33),=0A=
       det2x2_by_formula( t12, t13, t22, t23),=0A=
      -det3x3_by_formula( t12, t13, t14, t22, t23, t24, t32, t33, t34 ),=0A=
 =0A=
      -det2x2_by_formula( t21, t23, t31, t33),=0A=
       det2x2_by_formula( t11, t13, t31, t33),=0A=
      -det2x2_by_formula( t11, t13, t21, t23),=0A=
       det3x3_by_formula( t11, t13, t14, t21, t23, t24, t31, t33, t34 ),=0A=
 =0A=
       det2x2_by_formula( t21, t22, t31, t32),=0A=
      -det2x2_by_formula( t11, t12, t31, t32),=0A=
       det2x2_by_formula( t11, t12, t21, t22),=0A=
      -det3x3_by_formula( t11, t12, t14, t21, t22, t24, t31, t32, t34 ),=0A=
 =0A=
       det3x3_by_formula( t11, t12, t13, t21, t22, t23, t31, t32, t33 ));=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::=0A=
 operator*(const Aff_transformation_rep_baseC3<R> &t) const=0A=
 {=0A=
   return t.compose(*this);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::=0A=
 compose(const Aff_transformation_repC3<R> &t) const=0A=
 {=0A=
   return Aff_transformation_3(t.t11*t11 + t.t12*t21 + t.t13*t31,=0A=
                               t.t11*t12 + t.t12*t22 + t.t13*t32,=0A=
                               t.t11*t13 + t.t12*t23 + t.t13*t33,=0A=
                               t.t11*t14 + t.t12*t24 + t.t13*t34 + t.t14,=0A=
 =0A=
                               t.t21*t11 + t.t22*t21 + t.t23*t31,=0A=
                               t.t21*t12 + t.t22*t22 + t.t23*t32,=0A=
                               t.t21*t13 + t.t22*t23 + t.t23*t33,=0A=
                               t.t21*t14 + t.t22*t24 + t.t23*t34 + t.t24,=0A=
 =0A=
                               t.t31*t11 + t.t32*t21 + t.t33*t31,=0A=
                               t.t31*t12 + t.t32*t22 + t.t33*t32,=0A=
                               t.t31*t13 + t.t32*t23 + t.t33*t33,=0A=
                               t.t31*t14 + t.t32*t24 + t.t33*t34 + t.t34);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::=0A=
 compose(const Translation_repC3<R> &t) const=0A=
 {=0A=
   return Aff_transformation_3(t11,=0A=
                               t12,=0A=
                               t13,=0A=
                               t14 + t.translationvector_.x(),=0A=
 =0A=
                               t21,=0A=
                               t22,=0A=
                               t23,=0A=
                               t24 + t.translationvector_.y(),=0A=
 =0A=
                               t31,=0A=
                               t32,=0A=
                               t33,=0A=
                               t34 + t.translationvector_.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::=0A=
 compose(const Scaling_repC3<R> &t) const=0A=
 {=0A=
   return Aff_transformation_3(t.scalefactor_ * t11,=0A=
                               t.scalefactor_ * t12,=0A=
                               t.scalefactor_ * t13,=0A=
                               t.scalefactor_ * t14,=0A=
 =0A=
                               t.scalefactor_ * t21,=0A=
                               t.scalefactor_ * t22,=0A=
                               t.scalefactor_ * t23,=0A=
                               t.scalefactor_ * t24,=0A=
 =0A=
                               t.scalefactor_ * t31,=0A=
                               t.scalefactor_ * t32,=0A=
                               t.scalefactor_ * t33,=0A=
                               t.scalefactor_ * t34);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 typename Aff_transformation_repC3<R>::Aff_transformation_3=0A=
 Aff_transformation_repC3<R>::transpose() const=0A=
 {=0A=
   return Aff_transformation_3( t11, t21, t31, t14,=0A=
                                t12, t22, t32, t24,=0A=
                                t13, t23, t33, t34);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 62 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_3.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Translation_rep_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Translation_rep_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Translation_repC3 : public Aff_transformation_rep_baseC3<R>=0A=
 {=0A=
   friend class Aff_transformation_repC3<R>;=0A=
   friend class Scaling_repC3<R>;=0A=
 =0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef Aff_transformation_rep_baseC3<R> Transformation_base_3;=0A=
   typedef Aff_transformation_repC3<R> Transformation_3;=0A=
   typedef Translation_repC3<R> Translation_3;=0A=
   typedef Scaling_repC3<R> Scaling_3;=0A=
   typedef typename Transformation_base_3::Point_3 Point_3;=0A=
   typedef typename Transformation_base_3::Vector_3 Vector_3;=0A=
   typedef typename Transformation_base_3::Direction_3 Direction_3;=0A=
   typedef typename Transformation_base_3::Aff_transformation_3=0A=
                                                         =
 Aff_transformation_3;=0A=
 =0A=
   Translation_repC3() {}=0A=
   Translation_repC3(const Vector_3 &tv) : translationvector_(tv) {}=0A=
   virtual ~Translation_repC3() {}=0A=
 =0A=
   virtual Point_3 transform(const Point_3 &p) const=0A=
   {=0A=
     return p + translationvector_;=0A=
   }=0A=
 =0A=
   virtual Vector_3 transform(const Vector_3 &v) const=0A=
   {=0A=
     return v;=0A=
   }=0A=
 =0A=
   virtual Direction_3 transform(const Direction_3 &d) const=0A=
   {=0A=
     return d;=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) =
 const=0A=
   {=0A=
     return t.compose(*this);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Transformation_3 &t) const=0A=
   {=0A=
     return Aff_transformation_3(t.t11,=0A=
                                 t.t12,=0A=
                                 t.t13,=0A=
                                 t.t11 * translationvector_.x()=0A=
                                 + t.t12 * translationvector_.y()=0A=
                                 + t.t13 * translationvector_.z() + t.t14,=0A=
 =0A=
                                 t.t21,=0A=
                                 t.t22,=0A=
                                 t.t23,=0A=
                                 t.t21 * translationvector_.x()=0A=
                                 + t.t22 * translationvector_.y()=0A=
                                 + t.t23 * translationvector_.z() + t.t24,=0A=
 =0A=
                                 t.t31,=0A=
                                 t.t32,=0A=
                                 t.t33,=0A=
                                 t.t31 * translationvector_.x()=0A=
                                 + t.t32 * translationvector_.y()=0A=
                                 + t.t33 * translationvector_.z() + =
 t.t34);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Translation_3 &t) const=0A=
   {=0A=
     return Aff_transformation_3(TRANSLATION,=0A=
                                 translationvector_ + =
 t.translationvector_);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Scaling_3 &t) const=0A=
   {=0A=
     FT ft0(0);=0A=
     return Aff_transformation_3(t.scalefactor_,=0A=
                                 ft0,=0A=
                                 ft0,=0A=
                                 t.scalefactor_ * translationvector_.x(),=0A=
 =0A=
                                 ft0,=0A=
                                 t.scalefactor_,=0A=
                                 ft0,=0A=
                                 t.scalefactor_ * translationvector_.y(),=0A=
 =0A=
                                 ft0,=0A=
                                 ft0,=0A=
                                 t.scalefactor_,=0A=
                                 t.scalefactor_ * translationvector_.z());=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 inverse() const=0A=
   {=0A=
     return Aff_transformation_3(TRANSLATION, - translationvector_);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 transpose() const=0A=
   {=0A=
     FT ft1(1), ft0(0);=0A=
     return Aff_transformation_3(TRANSLATION, translationvector_);=0A=
   }=0A=
 =0A=
   virtual bool is_even() const=0A=
   {=0A=
     return true;=0A=
   }=0A=
 =0A=
   virtual FT cartesian(int i, int j) const=0A=
   {=0A=
     if (j=3D=3Di) return FT(1);=0A=
     if (j=3D=3D3) return translationvector_[i];=0A=
     return FT(0);=0A=
   }=0A=
 =0A=
   virtual std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     FT ft0(0), ft1(1);=0A=
     os << "Aff_transformationC3(VectorC3("<< translationvector_.x() << =
 ","=0A=
        << translationvector_.y() << ","=0A=
        << translationvector_.z() << "))\n";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   Vector_3 translationvector_;=0A=
 };=0A=
 =0A=
 }=0A=
 # 63 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_3.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Scaling_rep_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Scaling_rep_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 class Scaling_repC3 : public Aff_transformation_rep_baseC3<R>=0A=
 {=0A=
   friend class Aff_transformation_repC3<R>;=0A=
   friend class Translation_repC3<R>;=0A=
 =0A=
 public:=0A=
   typedef typename R::FT FT;=0A=
   typedef Aff_transformation_rep_baseC3<R> Transformation_base_3;=0A=
   typedef Aff_transformation_repC3<R> Transformation_3;=0A=
   typedef Translation_repC3<R> Translation_3;=0A=
   typedef Scaling_repC3<R> Scaling_3;=0A=
   typedef typename Transformation_base_3::Point_3 Point_3;=0A=
   typedef typename Transformation_base_3::Vector_3 Vector_3;=0A=
   typedef typename Transformation_base_3::Direction_3 Direction_3;=0A=
   typedef typename Transformation_base_3::Aff_transformation_3=0A=
                                                         =
 Aff_transformation_3;=0A=
 =0A=
   Scaling_repC3() {}=0A=
   Scaling_repC3(const FT &s) : scalefactor_(s) {}=0A=
   virtual ~Scaling_repC3() {}=0A=
 =0A=
   virtual Point_3 transform(const Point_3 &p) const=0A=
   {=0A=
     return Point_3(scalefactor_ * p.x(),=0A=
                    scalefactor_ * p.y(),=0A=
                    scalefactor_ * p.z());=0A=
   }=0A=
 =0A=
   virtual Vector_3 transform(const Vector_3 &v) const=0A=
   {=0A=
     return Vector_3(scalefactor_ * v.x(), scalefactor_ * v.y(),=0A=
                     scalefactor_ * v.z());=0A=
   }=0A=
 =0A=
   virtual Direction_3 transform(const Direction_3 &d) const=0A=
   {=0A=
     return d;=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) =
 const=0A=
   {=0A=
     return t.compose(*this);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Transformation_3 &t) const=0A=
   {=0A=
     return Aff_transformation_3(scalefactor_ * t.t11,=0A=
                                 scalefactor_ * t.t12,=0A=
                                 scalefactor_ * t.t13,=0A=
                                 t.t14,=0A=
 =0A=
                                 scalefactor_ * t.t21,=0A=
                                 scalefactor_ * t.t22,=0A=
                                 scalefactor_ * t.t23,=0A=
                                 t.t24,=0A=
 =0A=
                                 scalefactor_ * t.t31,=0A=
                                 scalefactor_ * t.t32,=0A=
                                 scalefactor_ * t.t33,=0A=
                                 t.t34);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Translation_3 &t) const=0A=
   {=0A=
     FT ft0(0);=0A=
     return Aff_transformation_3(scalefactor_,=0A=
                                 ft0,=0A=
                                 ft0,=0A=
                                 t.translationvector_.x(),=0A=
 =0A=
                                 ft0,=0A=
                                 scalefactor_,=0A=
                                 ft0,=0A=
                                 t.translationvector_.y(),=0A=
 =0A=
                                 ft0,=0A=
                                 ft0,=0A=
                                 scalefactor_,=0A=
                                 t.translationvector_.z());=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 compose(const Scaling_3 &t) const=0A=
   {=0A=
     return Aff_transformation_3(SCALING, scalefactor_*t.scalefactor_);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 inverse() const=0A=
   {=0A=
     return Aff_transformation_3(SCALING, FT(1)/scalefactor_);=0A=
   }=0A=
 =0A=
   virtual Aff_transformation_3 transpose() const=0A=
   {=0A=
     return Aff_transformation_3(SCALING, scalefactor_);=0A=
   }=0A=
 =0A=
   virtual bool is_even() const=0A=
   {=0A=
     return true;=0A=
   }=0A=
 =0A=
   virtual FT cartesian(int i, int j) const=0A=
   {=0A=
     if (i!=3Dj) return FT(0);=0A=
     if (i=3D=3D3) return FT(1);=0A=
     return scalefactor_;=0A=
   }=0A=
 =0A=
   virtual std::ostream &print(std::ostream &os) const=0A=
   {=0A=
     FT ft0(0);=0A=
     os << "Aff_transformationC3(" << scalefactor_ << ")";=0A=
     return os;=0A=
   }=0A=
 =0A=
 private:=0A=
   FT scalefactor_;=0A=
 };=0A=
 =0A=
 }=0A=
 # 64 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/Aff_transformation_3.h" 2=0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template < class R_ >=0A=
 class Aff_transformationC3=0A=
   : public R_::Aff_transformation_handle_3=0A=
 {=0A=
 =0A=
   friend class PlaneC3<R_>;=0A=
 =0A=
   typedef typename R_::FT FT;=0A=
   typedef Aff_transformation_rep_baseC3<R_> Aff_t_base;=0A=
 =0A=
   typedef typename R_::Point_3 Point_3;=0A=
   typedef typename R_::Vector_3 Vector_3;=0A=
   typedef typename R_::Direction_3 Direction_3;=0A=
   typedef typename R_::Plane_3 Plane_3;=0A=
   typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A=
 public:=0A=
   typedef R_ R;=0A=
 =0A=
   Aff_transformationC3()=0A=
   {=0A=
     FT ft1(1), ft0(0);=0A=
     initialize_with(Aff_transformation_repC3<R>(ft1, ft0, ft0,=0A=
                                           ft0, ft1, ft0,=0A=
                                           ft0, ft0, ft1));=0A=
   }=0A=
 =0A=
   Aff_transformationC3(const Identity_transformation)=0A=
   {=0A=
     FT ft1(1), ft0(0);=0A=
     initialize_with(Aff_transformation_repC3<R>(ft1, ft0, ft0,=0A=
                                           ft0, ft1, ft0,=0A=
                                           ft0, ft0, ft1));=0A=
   }=0A=
 =0A=
   Aff_transformationC3(const Translation, const Vector_3 &v)=0A=
   {=0A=
     initialize_with(Translation_repC3<R>(v));=0A=
   }=0A=
 =0A=
   Aff_transformationC3(const Scaling, const FT &s, const FT &w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Scaling_repC3<R>(s/w));=0A=
     else=0A=
       initialize_with(Scaling_repC3<R>(s));=0A=
   }=0A=
 =0A=
 =0A=
   Aff_transformationC3(const FT& m11, const FT& m12, const FT& m13,=0A=
                        const FT& m21, const FT& m22, const FT& m23,=0A=
                        const FT& m31, const FT& m32, const FT& m33,=0A=
                        const FT& w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Aff_transformation_repC3<R>(m11/w, m12/w, m13/w,=0A=
                                             m21/w, m22/w, m23/w,=0A=
                                             m31/w, m32/w, m33/w));=0A=
     else=0A=
       initialize_with(Aff_transformation_repC3<R>(m11, m12, m13,=0A=
                                             m21, m22, m23,=0A=
                                             m31, m32, m33));=0A=
   }=0A=
 =0A=
 =0A=
   Aff_transformationC3(=0A=
               const FT& m11, const FT& m12, const FT& m13, const FT& m14,=0A=
               const FT& m21, const FT& m22, const FT& m23, const FT& m24,=0A=
               const FT& m31, const FT& m32, const FT& m33, const FT& m34,=0A=
               const FT& w =3D FT(1))=0A=
   {=0A=
     if (w !=3D FT(1))=0A=
       initialize_with(Aff_transformation_repC3<R>(m11/w, m12/w, m13/w, =
 m14/w,=0A=
                                             m21/w, m22/w, m23/w, m24/w,=0A=
                                             m31/w, m32/w, m33/w, m34/w));=0A=
     else=0A=
       initialize_with(Aff_transformation_repC3<R>(m11, m12, m13, m14,=0A=
                                             m21, m22, m23, m24,=0A=
                                             m31, m32, m33, m34));=0A=
   }=0A=
 =0A=
   Point_3=0A=
   transform(const Point_3 &p) const=0A=
   { return Ptr()->transform(p); }=0A=
 =0A=
   Point_3=0A=
   operator()(const Point_3 &p) const=0A=
   { return transform(p); }=0A=
 =0A=
   Vector_3=0A=
   transform(const Vector_3 &v) const=0A=
   { return Ptr()->transform(v); }=0A=
 =0A=
   Vector_3=0A=
   operator()(const Vector_3 &v) const=0A=
   { return transform(v); }=0A=
 =0A=
   Direction_3=0A=
   transform(const Direction_3 &d) const=0A=
   { return Ptr()->transform(d); }=0A=
 =0A=
   Direction_3=0A=
   operator()(const Direction_3 &d) const=0A=
   { return transform(d); }=0A=
 =0A=
   Plane_3=0A=
   transform(const Plane_3& p) const=0A=
   { return p.transform(*this); }=0A=
 =0A=
   Plane_3=0A=
   operator()(const Plane_3& p) const=0A=
   { return transform(p); }=0A=
 =0A=
   Aff_transformation_3 inverse() const { return Ptr()->inverse(); }=0A=
 =0A=
   bool is_even() const { return Ptr()->is_even(); }=0A=
   bool is_odd() const { return ! (Ptr()->is_even()); }=0A=
 =0A=
   FT cartesian(int i, int j) const { return Ptr()->cartesian(i,j); }=0A=
   FT homogeneous(int i, int j) const { return cartesian(i,j); }=0A=
   FT m(int i, int j) const { return cartesian(i,j); }=0A=
   FT hm(int i, int j) const { return cartesian(i,j); }=0A=
 =0A=
   Aff_transformation_3 operator*(const Aff_transformationC3 &t) const=0A=
   { return (*Ptr()) * (*t.Ptr()); }=0A=
 =0A=
 protected:=0A=
   Aff_transformation_3 transpose() const { return Ptr()->transpose(); }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template < class R >=0A=
 std::ostream &operator<<(std::ostream &os,=0A=
                          const Aff_transformationC3<R> &t)=0A=
 {=0A=
     t.print(os);=0A=
     return os;=0A=
 }=0A=
 =0A=
 =0A=
 }=0A=
 # 98 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/global_operators_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/global_operators_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_3=0A=
 operator+(const PointC3<R> &p, const VectorC3<R> &v)=0A=
 {=0A=
   return PointC3<R>(p.x() + v.x(), p.y() + v.y(), p.z() + v.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_3=0A=
 operator-(const PointC3<R> &p, const VectorC3<R> &v)=0A=
 {=0A=
   return PointC3<R>(p.x() - v.x(), p.y() - v.y(), p.z() - v.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_3=0A=
 operator+(const Origin &, const VectorC3<R> &v)=0A=
 {=0A=
   return PointC3<R>(v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Point_3=0A=
 operator-(const Origin &, const VectorC3<R> &v)=0A=
 {=0A=
   return PointC3<R>(-v);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_3=0A=
 operator-(const PointC3<R> &p, const PointC3<R> &q)=0A=
 {=0A=
   return VectorC3<R>(p.x() - q.x(), p.y() - q.y(), p.z() - q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_3=0A=
 operator-(const PointC3<R> &p, const Origin &)=0A=
 {=0A=
   return VectorC3<R>(p);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_3=0A=
 operator-(const Origin &, const PointC3<R> &p)=0A=
 {=0A=
   return VectorC3<R>(-p.x(), -p.y(), -p.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_3=0A=
 operator*(const typename R::FT &c, const VectorC3<R> &w)=0A=
 {=0A=
    return VectorC3<R>(c * w.x(), c * w.y(), c * w.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::Vector_3=0A=
 operator*(const VectorC3<R> &w, const typename R::FT &c)=0A=
 {=0A=
    return VectorC3<R>(c * w.x(), c * w.y(), c * w.z());=0A=
 }=0A=
 =0A=
 }=0A=
 # 100 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_planes_3.h" 1=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/predicates_on_planes_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 Oriented_side=0A=
 side_of_oriented_plane(const PlaneC3<R> &h,=0A=
                        const PointC3<R> &p)=0A=
 {=0A=
   return side_of_oriented_planeC3(h.a(), h.b(), h.c(), h.d(),=0A=
                                   p.x(), p.y(), p.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 bool=0A=
 equal_plane(const PlaneC3<R> &h, const PlaneC3<R> &p)=0A=
 {=0A=
   return equal_planeC3(h.a(), h.b(), h.c(), h.d(),=0A=
                        p.a(), p.b(), p.c(), p.d());=0A=
 }=0A=
 =0A=
 }=0A=
 # 102 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/distance_predicates_3.h" 1=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/distance_predicates_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 compare_distance_to_point(const PointC3<R> &p,=0A=
                           const PointC3<R> &q,=0A=
                           const PointC3<R> &r)=0A=
 {=0A=
   return cmp_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                              q.x(), q.y(), q.z(),=0A=
                              r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_distance_to_point(const PointC3<R> &p,=0A=
                              const PointC3<R> &q,=0A=
                              const PointC3<R> &r)=0A=
 {=0A=
   return has_larger_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                                     q.x(), q.y(), q.z(),=0A=
                                     r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_distance_to_point(const PointC3<R> &p,=0A=
                               const PointC3<R> &q,=0A=
                               const PointC3<R> &r)=0A=
 {=0A=
   return has_smaller_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                                      q.x(), q.y(), q.z(),=0A=
                                      r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 compare_signed_distance_to_plane(const PlaneC3<R> &h,=0A=
                                  const PointC3<R> &p,=0A=
                                  const PointC3<R> &q)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                         p.x(), p.y(), p.z(),=0A=
                                         q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_signed_distance_to_plane(const PlaneC3<R> &h,=0A=
                                     const PointC3<R> &p,=0A=
                                     const PointC3<R> &q)=0A=
 {=0A=
   return has_larger_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                                p.x(), p.y(), p.z(),=0A=
                                                q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_signed_distance_to_plane(const PlaneC3<R> &h,=0A=
                                      const PointC3<R> &p,=0A=
                                      const PointC3<R> &q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                                 p.x(), p.y(), p.z(),=0A=
                                                 q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 compare_signed_distance_to_plane(const PointC3<R> &hp,=0A=
                                  const PointC3<R> &hq,=0A=
                                  const PointC3<R> &hr,=0A=
                                  const PointC3<R> &p,=0A=
                                  const PointC3<R> &q)=0A=
 {=0A=
   return cmp_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                     hq.x(), hq.y(), hq.z(),=0A=
                                     hr.x(), hr.y(), hr.z(),=0A=
                                     p.x(), p.y(), p.z(),=0A=
                                     q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_signed_distance_to_plane(const PointC3<R> &hp,=0A=
                                     const PointC3<R> &hq,=0A=
                                     const PointC3<R> &hr,=0A=
                                     const PointC3<R> &p,=0A=
                                     const PointC3<R> &q)=0A=
 {=0A=
   return has_larger_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                            hq.x(), hq.y(), hq.z(),=0A=
                                            hr.x(), hr.y(), hr.z(),=0A=
                                            p.x(), p.y(), p.z(),=0A=
                                            q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_signed_distance_to_plane(const PointC3<R> &hp,=0A=
                                      const PointC3<R> &hq,=0A=
                                      const PointC3<R> &hr,=0A=
                                      const PointC3<R> &p,=0A=
                                      const PointC3<R> &q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                             hq.x(), hq.y(), hq.z(),=0A=
                                             hr.x(), hr.y(), hr.z(),=0A=
                                             p.x(), p.y(), p.z(),=0A=
                                             q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 cmp_dist_to_point(const PointC3<R> &p,=0A=
                   const PointC3<R> &q,=0A=
                   const PointC3<R> &r)=0A=
 {=0A=
   return cmp_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                              q.x(), q.y(), q.z(),=0A=
                              r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_dist_to_point(const PointC3<R> &p,=0A=
                          const PointC3<R> &q,=0A=
                          const PointC3<R> &r)=0A=
 {=0A=
   return has_larger_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                                     q.x(), q.y(), q.z(),=0A=
                                     r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_dist_to_point(const PointC3<R> &p,=0A=
                           const PointC3<R> &q,=0A=
                           const PointC3<R> &r)=0A=
 {=0A=
   return has_smaller_dist_to_pointC3(p.x(), p.y(), p.z(),=0A=
                                      q.x(), q.y(), q.z(),=0A=
                                      r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 cmp_signed_dist_to_plane(const PlaneC3<R> &h,=0A=
                          const PointC3<R> &p,=0A=
                          const PointC3<R> &q)=0A=
 {=0A=
   return cmp_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                         p.x(), p.y(), p.z(),=0A=
                                         q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_signed_dist_to_plane(const PlaneC3<R> &h,=0A=
                                 const PointC3<R> &p,=0A=
                                 const PointC3<R> &q)=0A=
 {=0A=
   return has_larger_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                                p.x(), p.y(), p.z(),=0A=
                                                q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_signed_dist_to_plane(const PlaneC3<R> &h,=0A=
                                  const PointC3<R> &p,=0A=
                                  const PointC3<R> &q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A=
                                                 p.x(), p.y(), p.z(),=0A=
                                                 q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 Comparison_result=0A=
 cmp_signed_dist_to_plane(const PointC3<R> &hp,=0A=
                          const PointC3<R> &hq,=0A=
                          const PointC3<R> &hr,=0A=
                          const PointC3<R> &p,=0A=
                          const PointC3<R> &q)=0A=
 {=0A=
   return cmp_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                     hq.x(), hq.y(), hq.z(),=0A=
                                     hr.x(), hr.y(), hr.z(),=0A=
                                     p.x(), p.y(), p.z(),=0A=
                                     q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_larger_signed_dist_to_plane(const PointC3<R> &hp,=0A=
                                 const PointC3<R> &hq,=0A=
                                 const PointC3<R> &hr,=0A=
                                 const PointC3<R> &p,=0A=
                                 const PointC3<R> &q)=0A=
 {=0A=
   return has_larger_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                            hq.x(), hq.y(), hq.z(),=0A=
                                            hr.x(), hr.y(), hr.z(),=0A=
                                            p.x(), p.y(), p.z(),=0A=
                                            q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 =0A=
 bool=0A=
 has_smaller_signed_dist_to_plane(const PointC3<R> &hp,=0A=
                                  const PointC3<R> &hq,=0A=
                                  const PointC3<R> &hr,=0A=
                                  const PointC3<R> &p,=0A=
                                  const PointC3<R> &q)=0A=
 {=0A=
   return has_smaller_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                             hq.x(), hq.y(), hq.z(),=0A=
                                             hr.x(), hr.y(), hr.z(),=0A=
                                             p.x(), p.y(), p.z(),=0A=
                                             q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 103 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h" 1=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/point_constructions_3.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/point_constructions_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 =0A=
 PointC3<R>=0A=
 midpoint(const PointC3<R> &p,=0A=
          const PointC3<R> &q)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   midpointC3(p.x(), p.y(), p.z(), q.x(), q.y(), q.z(), x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 PointC3<R>=0A=
 centroid(const PointC3<R> &p,=0A=
          const PointC3<R> &q,=0A=
          const PointC3<R> &r,=0A=
          const PointC3<R> &s)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   centroidC3(p.x(), p.y(), p.z(),=0A=
              q.x(), q.y(), q.z(),=0A=
              r.x(), r.y(), r.z(),=0A=
              s.x(), s.y(), s.z(),=0A=
              x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 PointC3<R>=0A=
 centroid(const PointC3<R> &p,=0A=
          const PointC3<R> &q,=0A=
          const PointC3<R> &r)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   centroidC3(p.x(), p.y(), p.z(),=0A=
              q.x(), q.y(), q.z(),=0A=
              r.x(), r.y(), r.z(),=0A=
              x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 PointC3<R>=0A=
 circumcenter(const PointC3<R> &p,=0A=
              const PointC3<R> &q,=0A=
              const PointC3<R> &r,=0A=
              const PointC3<R> &s)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   circumcenterC3(p.x(), p.y(), p.z(),=0A=
                  q.x(), q.y(), q.z(),=0A=
                  r.x(), r.y(), r.z(),=0A=
                  s.x(), s.y(), s.z(),=0A=
                  x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 PointC3<R>=0A=
 circumcenter(const PointC3<R> &p,=0A=
              const PointC3<R> &q,=0A=
              const PointC3<R> &r)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   circumcenterC3(p.x(), p.y(), p.z(),=0A=
                  q.x(), q.y(), q.z(),=0A=
                  r.x(), r.y(), r.z(),=0A=
                  x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PointC3<R>=0A=
 point_on_line(int i, const LineC3<R> &l)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   point_on_lineC3(l.point().x(), l.point().y(), l.point().z(),=0A=
                   l.direction().dx(), l.direction().dy(), =
 l.direction().dz(),=0A=
                   i, x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PointC3<R>=0A=
 projection_line(const PointC3<R> &p, const LineC3<R> &l)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   projection_lineC3(p.x(), p.y(), p.z(),=0A=
                     l.point().x(), l.point().y(), l.point().z(),=0A=
                     l.direction().dx(), l.direction().dy(), =
 l.direction().dz(),=0A=
                     x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PointC3<R>=0A=
 point_on_plane(const PlaneC3<R> &p)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   point_on_planeC3(p.a(), p.b(), p.c(), p.d(), x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PointC3<R>=0A=
 projection_plane(const PointC3<R> &p,=0A=
                  const PlaneC3<R> &h)=0A=
 {=0A=
   typename R::FT x, y, z;=0A=
   projection_planeC3(h.a(), h.b(), h.c(), h.d(),=0A=
                      p.x(), p.y(), p.z(),=0A=
                      x, y, z);=0A=
   return PointC3<R>(x, y, z);=0A=
 }=0A=
 =0A=
 }=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/vector_constructions_3.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/vector_constructions_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 typename R::Vector_3=0A=
 cross_product(const VectorC3<R> &v, const VectorC3<R> &w)=0A=
 {=0A=
     return VectorC3<R>(v.y() * w.z() - v.z() * w.y(),=0A=
                        v.z() * w.x() - v.x() * w.z(),=0A=
                        v.x() * w.y() - v.y() * w.x());=0A=
 }=0A=
 =0A=
 }=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/plane_constructions_3.h" 1=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/plane_constructions_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PlaneC3<R>=0A=
 plane_from_points(const PointC3<R> &p,=0A=
                   const PointC3<R> &q,=0A=
                   const PointC3<R> &r)=0A=
 {=0A=
   typename R::FT a, b, c, d;=0A=
   plane_from_pointsC3(p.x(), p.y(), p.z(),=0A=
                       q.x(), q.y(), q.z(),=0A=
                       r.x(), r.y(), r.z(),=0A=
                       a, b, c, d);=0A=
   return PlaneC3<R>(a, b, c, d);=0A=
 }=0A=
 =0A=
 template <class R>=0A=
 =0A=
 PlaneC3<R>=0A=
 plane_from_point_direction(const PointC3<R> &p,=0A=
                            const DirectionC3<R> &d)=0A=
 {=0A=
   typename R::FT A, B, C, D;=0A=
   plane_from_point_directionC3(p.x(), p.y(), p.z(), d.dx(), d.dy(), =
 d.dz(),=0A=
                                A, B, C, D);=0A=
   return PlaneC3<R>(A, B, C, D);=0A=
 }=0A=
 =0A=
 }=0A=
 # 52 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/ft_constructions_3.h" 1=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/ft_constructions_3.h"=0A=
 namespace CGAL {=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 squared_distance(const PointC3<R> &p,=0A=
                  const PointC3<R> &q)=0A=
 {=0A=
   return squared_distanceC3(p.x(), p.y(), p.z(), q.x(), q.y(), q.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 scaled_distance_to_plane(const PlaneC3<R> &h,=0A=
                          const PointC3<R> &p)=0A=
 {=0A=
   return scaled_distance_to_planeC3(h.a(), h.b(), h.c(), h.d(),=0A=
                                     p.x(), p.y(), p.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 scaled_distance_to_plane(const PointC3<R> &hp,=0A=
                          const PointC3<R> &hq,=0A=
                          const PointC3<R> &hr,=0A=
                          const PointC3<R> &p)=0A=
 {=0A=
   return scaled_distance_to_planeC3(hp.x(), hp.y(), hp.z(),=0A=
                                     hq.x(), hq.y(), hq.z(),=0A=
                                     hr.x(), hr.y(), hr.z(),=0A=
                                     p.x(), p.y(), p.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 squared_radius(const PointC3<R> &p,=0A=
                      const PointC3<R> &q,=0A=
                      const PointC3<R> &r)=0A=
 {=0A=
   return squared_radiusC3(p.x(), p.y(), p.z(),=0A=
                           q.x(), q.y(), q.z(),=0A=
                           r.x(), r.y(), r.z());=0A=
 }=0A=
 =0A=
 template < class R >=0A=
 inline=0A=
 typename R::FT=0A=
 squared_radius(const PointC3<R> &p,=0A=
                      const PointC3<R> &q,=0A=
                      const PointC3<R> &r,=0A=
                      const PointC3<R> &s)=0A=
 {=0A=
   return squared_radiusC3(p.x(), p.y(), p.z(),=0A=
                           q.x(), q.y(), q.z(),=0A=
                           r.x(), r.y(), r.z(),=0A=
                           s.x(), s.y(), s.z());=0A=
 }=0A=
 =0A=
 }=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca=
 rtesian/basic_constructions_3.h" 2=0A=
 # 105 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 =0A=
 =0A=
 namespace CGAL {=0A=
 =0A=
 template< class R, class FT_ >=0A=
 struct Simple_cartesian_base=0A=
 {=0A=
     typedef FT_ RT;=0A=
     typedef FT_ FT;=0A=
     typedef Cartesian_tag Rep_tag;=0A=
     typedef Cartesian_tag Kernel_tag;=0A=
 =0A=
     typedef CGAL::Object Object_2;=0A=
     typedef CGAL::Object Object_3;=0A=
 =0A=
     typedef PointC2<R> Point_2;=0A=
     typedef VectorC2<R> Vector_2;=0A=
     typedef DirectionC2<R> Direction_2;=0A=
     typedef SegmentC2<R> Segment_2;=0A=
     typedef LineC2<R> Line_2;=0A=
     typedef RayC2<R> Ray_2;=0A=
     typedef TriangleC2<R> Triangle_2;=0A=
     typedef CircleC2<R> Circle_2;=0A=
     typedef Iso_rectangleC2<R> Iso_rectangle_2;=0A=
     typedef Aff_transformationC2<R> Aff_transformation_2;=0A=
     typedef Data_accessorC2<R> Data_accessor_2;=0A=
     typedef ConicCPA2<Point_2,Data_accessor_2> Conic_2;=0A=
 =0A=
     typedef PointC3<R> Point_3;=0A=
     typedef VectorC3<R> Vector_3;=0A=
     typedef DirectionC3<R> Direction_3;=0A=
     typedef LineC3<R> Line_3;=0A=
     typedef PlaneC3<R> Plane_3;=0A=
     typedef RayC3<R> Ray_3;=0A=
     typedef SegmentC3<R> Segment_3;=0A=
     typedef TriangleC3<R> Triangle_3;=0A=
     typedef TetrahedronC3<R> Tetrahedron_3;=0A=
     typedef Iso_cuboidC3<R> Iso_cuboid_3;=0A=
     typedef SphereC3<R> Sphere_3;=0A=
     typedef Aff_transformationC3<R> Aff_transformation_3;=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 template< class FT_ >=0A=
 struct Simple_cartesian=0A=
   : public Simple_cartesian_base< Simple_cartesian<FT_>, FT_ >=0A=
 {=0A=
 =0A=
     typedef FT_ RT;=0A=
     typedef FT_ FT;=0A=
     typedef Cartesian_tag Rep_tag;=0A=
     typedef Cartesian_tag Kernel_tag;=0A=
 =0A=
     typedef Simple_cartesian<FT> Self;=0A=
     typedef Simple_cartesian_base<Self,FT> Kernel_base;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     typedef typename Kernel_base::Object_2 Object_2;=0A=
     typedef typename Kernel_base::Object_3 Object_3;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     typedef CGAL::Point_2<Self> Point_2;=0A=
     typedef CGAL::Vector_2<Self> Vector_2;=0A=
     typedef CGAL::Direction_2<Self> Direction_2;=0A=
     typedef CGAL::Line_2<Self> Line_2;=0A=
     typedef CGAL::Ray_2<Self> Ray_2;=0A=
     typedef CGAL::Segment_2<Self> Segment_2;=0A=
     typedef CGAL::Triangle_2<Self> Triangle_2;=0A=
     typedef CGAL::Circle_2<Self> Circle_2;=0A=
     typedef CGAL::Iso_rectangle_2<Self> Iso_rectangle_2;=0A=
     typedef CGAL::Aff_transformation_2<Self> Aff_transformation_2;=0A=
 =0A=
     typedef Data_accessorC2<Self> Data_accessor_2;=0A=
     typedef CGAL::Conic_2<Self> Conic_2;=0A=
 =0A=
     typedef CGAL::Point_3<Self> Point_3;=0A=
     typedef CGAL::Vector_3<Self> Vector_3;=0A=
     typedef CGAL::Direction_3<Self> Direction_3;=0A=
     typedef CGAL::Line_3<Self> Line_3;=0A=
     typedef CGAL::Plane_3<Self> Plane_3;=0A=
     typedef CGAL::Ray_3<Self> Ray_3;=0A=
     typedef CGAL::Segment_3<Self> Segment_3;=0A=
     typedef CGAL::Triangle_3<Self> Triangle_3;=0A=
     typedef CGAL::Tetrahedron_3<Self> Tetrahedron_3;=0A=
     typedef CGAL::Sphere_3<Self> Sphere_3;=0A=
     typedef CGAL::Iso_cuboid_3<Self> Iso_cuboid_3;=0A=
     typedef CGAL::Aff_transformation_3<Self> Aff_transformation_3;=0A=
 =0A=
 =0A=
 =0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<FT> > Point_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<FT> > Vector_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<FT> > =
 Direction_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<FT> > Line_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_2> > =
 Ray_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_2> > =
 Segment_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<Triple<Point_2, FT, Orientation> >=0A=
                                                         Circle_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<Point_2> >=0A=
                                                         =
 Triangle_handle_2;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_2> >=0A=
                                                         =
 Iso_rectangle_handle_2;=0A=
     typedef CGAL::Handle_for_virtual< =
 Aff_transformation_rep_baseC2<Self> >=0A=
                                                    =
 Aff_transformation_handle_2;=0A=
 =0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<FT> > =
 Point_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<FT> > =
 Vector_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<FT> > =
 Direction_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<std::pair<Point_3, Direction_3> >=0A=
                                                         Line_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Fourtuple<FT> > Plane_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_3> > =
 Ray_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_3> > =
 Segment_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<Triple<Point_3, FT, Orientation> >=0A=
                                                         Sphere_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Threetuple<Point_3> >=0A=
                                                         =
 Triangle_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Fourtuple<Point_3> >=0A=
                                                         =
 Tetrahedron_handle_3;=0A=
     typedef CGAL::Simple_Handle_for<CGAL::Twotuple<Point_3> >=0A=
                                                         =
 Iso_cuboid_handle_3;=0A=
     typedef CGAL::Handle_for_virtual< =
 Aff_transformation_rep_baseC3<Self> >=0A=
                                                    =
 Aff_transformation_handle_3;=0A=
 =0A=
 =0A=
     static FT make_FT(const RT & num, const RT& denom) { return =
 num/denom;}=0A=
     static FT make_FT(const RT & num) { return num;}=0A=
     static RT FT_numerator(const FT &r) { return r;}=0A=
     static RT FT_denominator(const FT &) { return RT(1);}=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel_traits_common.h" 1=0A=
 # 55 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel_traits_common.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel/interface_macros.h" 1=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel/interface_macros.h"=0A=
 typedef CGALi::Construct<Point_2> Construct_point_2; Construct_point_2 =
 construct_point_2_object() const { return Construct_point_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Vector_2> Construct_vector_2; =
 Construct_vector_2 construct_vector_2_object() const { return =
 Construct_vector_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Direction_2> Construct_direction_2; =
 Construct_direction_2 construct_direction_2_object() const { return =
 Construct_direction_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Segment_2> Construct_segment_2; =
 Construct_segment_2 construct_segment_2_object() const { return =
 Construct_segment_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Line_2> Construct_line_2; Construct_line_2 =
 construct_line_2_object() const { return Construct_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Ray_2> Construct_ray_2; Construct_ray_2 =
 construct_ray_2_object() const { return Construct_ray_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Circle_2> Construct_circle_2; =
 Construct_circle_2 construct_circle_2_object() const { return =
 Construct_circle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Triangle_2> Construct_triangle_2; =
 Construct_triangle_2 construct_triangle_2_object() const { return =
 Construct_triangle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Iso_rectangle_2> Construct_iso_rectangle_2; =
 Construct_iso_rectangle_2 construct_iso_rectangle_2_object() const { =
 return Construct_iso_rectangle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_make_object_to_get<Object_2> Construct_object_2; =
 Construct_object_2 construct_object_2_object() const { return =
 Construct_object_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Aff_transformation_2> =
 Construct_aff_transformation_2; Construct_aff_transformation_2 =
 construct_aff_transformation_2_object() const { return =
 Construct_aff_transformation_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_point_to_get<Point_2> Construct_point_on_2; =
 Construct_point_on_2 construct_point_on_2_object() const { return =
 Construct_point_on_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_projection_to_get<Point_2> =
 Construct_projected_point_2; Construct_projected_point_2 =
 construct_projected_point_2_object() const { return =
 Construct_projected_point_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct_projected_xy_point<Point_2> =
 Construct_projected_xy_point_2; Construct_projected_xy_point_2 =
 construct_projected_xy_point_2_object() const { return =
 Construct_projected_xy_point_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct_scaled_vector<Vector_2> =
 Construct_scaled_vector_2; Construct_scaled_vector_2 =
 construct_scaled_vector_2_object() const { return =
 Construct_scaled_vector_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct_translated_point<Point_2> =
 Construct_translated_point_2; Construct_translated_point_2 =
 construct_translated_point_2_object() const { return =
 Construct_translated_point_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_second_point_to_get<Point_2> =
 Construct_second_point_on_2; Construct_second_point_on_2 =
 construct_second_point_on_2_object() const { return =
 Construct_second_point_on_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_source_to_get<Point_2> Construct_source_point_2; =
 Construct_source_point_2 construct_source_point_2_object() const { =
 return Construct_source_point_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_target_to_get<Point_2> Construct_target_point_2; =
 Construct_target_point_2 construct_target_point_2_object() const { =
 return Construct_target_point_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_min_to_get<Point_2> Construct_min_point_2; =
 Construct_min_point_2 construct_min_point_2_object() const { return =
 Construct_min_point_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_max_to_get<Point_2> Construct_max_point_2; =
 Construct_max_point_2 construct_max_point_2_object() const { return =
 Construct_max_point_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_vertex_to_get<Point_2> Construct_vertex_2; =
 Construct_vertex_2 construct_vertex_2_object() const { return =
 Construct_vertex_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_direction_to_get<Direction_2> =
 Construct_direction_of_line_2; Construct_direction_of_line_2 =
 construct_direction_of_line_2_object() const { return =
 Construct_direction_of_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_direction_to_get<Direction_2> =
 Construct_direction_of_ray_2; Construct_direction_of_ray_2 =
 construct_direction_of_ray_2_object() const { return =
 Construct_direction_of_ray_2(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_supporting_line_to_get<Line_2> =
 Construct_supporting_line_2; Construct_supporting_line_2 =
 construct_supporting_line_2_object() const { return =
 Construct_supporting_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_perpendicular_to_get<Vector_2> =
 Construct_perpendicular_vector_2; Construct_perpendicular_vector_2 =
 construct_perpendicular_vector_2_object() const { return =
 Construct_perpendicular_vector_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_perpendicular_to_get<Direction_2> =
 Construct_perpendicular_direction_2; Construct_perpendicular_direction_2 =
 construct_perpendicular_direction_2_object() const { return =
 Construct_perpendicular_direction_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_perpendicular_to_get<Line_2> =
 Construct_perpendicular_line_2; Construct_perpendicular_line_2 =
 construct_perpendicular_line_2_object() const { return =
 Construct_perpendicular_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Midpoint<Point_2> Construct_midpoint_2; =
 Construct_midpoint_2 construct_midpoint_2_object() const { return =
 Construct_midpoint_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Center<Point_2> Construct_center_2; Construct_center_2 =
 construct_center_2_object() const { return Construct_center_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Circumcenter<Point_2> Construct_circumcenter_2; =
 Construct_circumcenter_2 construct_circumcenter_2_object() const { =
 return Construct_circumcenter_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Centroid<Point_2> Construct_centroid_2; =
 Construct_centroid_2 construct_centroid_2_object() const { return =
 Construct_centroid_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::pl_Bisector<Point_2,Line_2> Construct_bisector_2; =
 Construct_bisector_2 construct_bisector_2_object() const { return =
 Construct_bisector_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Opposite<Direction_2> Construct_opposite_direction_2; =
 Construct_opposite_direction_2 construct_opposite_direction_2_object() =
 const { return Construct_opposite_direction_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Segment_2> =
 Construct_opposite_segment_2; Construct_opposite_segment_2 =
 construct_opposite_segment_2_object() const { return =
 Construct_opposite_segment_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Ray_2> Construct_opposite_ray_2; =
 Construct_opposite_ray_2 construct_opposite_ray_2_object() const { =
 return Construct_opposite_ray_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Line_2> Construct_opposite_line_2; =
 Construct_opposite_line_2 construct_opposite_line_2_object() const { =
 return Construct_opposite_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Triangle_2> =
 Construct_opposite_triangle_2; Construct_opposite_triangle_2 =
 construct_opposite_triangle_2_object() const { return =
 Construct_opposite_triangle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Circle_2> =
 Construct_opposite_circle_2; Construct_opposite_circle_2 =
 construct_opposite_circle_2_object() const { return =
 Construct_opposite_circle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Opposite<Vector_2> Construct_opposite_vector_2; =
 Construct_opposite_vector_2 construct_opposite_vector_2_object() const { =
 return Construct_opposite_vector_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Assign Assign_2; Assign_2 assign_2_object() const { =
 return Assign_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_transform Transform_2; Transform_2 =
 transform_2_object() const { return Transform_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Intersect Intersect_2; Intersect_2 intersect_2_object() =
 const { return Intersect_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Do_intersect Do_intersect_2; Do_intersect_2 =
 do_intersect_2_object() const { return Do_intersect_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_y_at_x_to_get<FT> Compute_y_at_x_2; Compute_y_at_x_2 =
 compute_y_at_x_2_object() const { return Compute_y_at_x_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_distance<FT> Compute_squared_distance_2; =
 Compute_squared_distance_2 compute_squared_distance_2_object() const { =
 return Compute_squared_distance_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_length_to_get<FT> Compute_squared_length_2; =
 Compute_squared_length_2 compute_squared_length_2_object() const { =
 return Compute_squared_length_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_radius<FT> Compute_squared_radius_2; =
 Compute_squared_radius_2 compute_squared_radius_2_object() const { =
 return Compute_squared_radius_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_area_to_get<FT> Compute_area_2; Compute_area_2 =
 compute_area_2_object() const { return Compute_area_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal Equal_2; Equal_2 equal_2_object() const { return =
 Equal_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_x Equal_x_2; Equal_x_2 equal_x_2_object() const { =
 return Equal_x_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_y Equal_y_2; Equal_y_2 equal_y_2_object() const { =
 return Equal_y_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Equal_xy Equal_xy_2; Equal_xy_2 equal_xy_2_object() const =
 { return Equal_xy_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Less_x Less_x_2; Less_x_2 less_x_2_object() const { =
 return Less_x_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Less_y Less_y_2; Less_y_2 less_y_2_object() const { =
 return Less_y_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_xy<Point_2> Less_xy_2; Less_xy_2 =
 less_xy_2_object() const { return Less_xy_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_yx<Point_2> Less_yx_2; Less_yx_2 =
 less_yx_2_object() const { return Less_yx_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_x Compare_x_2; Compare_x_2 compare_x_2_object() =
 const { return Compare_x_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_y Compare_y_2; Compare_y_2 compare_y_2_object() =
 const { return Compare_y_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_xy Compare_xy_2; Compare_xy_2 =
 compare_xy_2_object() const { return Compare_xy_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_y_at_x Compare_y_at_x_2; Compare_y_at_x_2 =
 compare_y_at_x_2_object() const { return Compare_y_at_x_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_x_at_y Compare_x_at_y_2; Compare_x_at_y_2 =
 compare_x_at_y_2_object() const { return Compare_x_at_y_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_distance<Point_2> Compare_distance_2; =
 Compare_distance_2 compare_distance_2_object() const { return =
 Compare_distance_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_slope Compare_slope_2; Compare_slope_2 =
 compare_slope_2_object() const { return Compare_slope_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_dist_to_point<Point_2> Less_distance_to_point_2; =
 Less_distance_to_point_2 less_distance_to_point_2_object() const { =
 return Less_distance_to_point_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_dist_to_line_2<Point_2> =
 Less_signed_distance_to_line_2; Less_signed_distance_to_line_2 =
 less_signed_distance_to_line_2_object() const { return =
 Less_signed_distance_to_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_rotate_ccw<Point_2> Less_rotate_ccw_2; =
 Less_rotate_ccw_2 less_rotate_ccw_2_object() const { return =
 Less_rotate_ccw_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_angle_with_x_axis<Direction_2> =
 Compare_angle_with_x_axis_2; Compare_angle_with_x_axis_2 =
 compare_angle_with_x_axis_2_object() const { return =
 Compare_angle_with_x_axis_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Counterclockwise_in_between =
 Counterclockwise_in_between_2; Counterclockwise_in_between_2 =
 counterclockwise_in_between_2_object() const { return =
 Counterclockwise_in_between_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Left_turn<Point_2> Left_turn_2; Left_turn_2 =
 left_turn_2_object() const { return Left_turn_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::p_Left_turn<Point_2> Leftturn_2; Leftturn_2 =
 leftturn_2_object() const { return Leftturn_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::p_Angle Angle_2; Angle_2 angle_2_object() const { return =
 Angle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear Collinear_2; Collinear_2 collinear_2_object() =
 const { return Collinear_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Orientation<Point_2> Orientation_2; Orientation_2 =
 orientation_2_object() const { return Orientation_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Side_of_oriented_circle Side_of_oriented_circle_2; =
 Side_of_oriented_circle_2 side_of_oriented_circle_2_object() const { =
 return Side_of_oriented_circle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Side_of_bounded_circle Side_of_bounded_circle_2; =
 Side_of_bounded_circle_2 side_of_bounded_circle_2_object() const { =
 return Side_of_bounded_circle_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_is_horizontal Is_horizontal_2; Is_horizontal_2 =
 is_horizontal_2_object() const { return Is_horizontal_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_is_vertical Is_vertical_2; Is_vertical_2 =
 is_vertical_2_object() const { return Is_vertical_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_is_degenerate Is_degenerate_2; Is_degenerate_2 =
 is_degenerate_2_object() const { return Is_degenerate_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on Has_on_2; Has_on_2 has_on_2_object() const { =
 return Has_on_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_collinear_has_on Collinear_has_on_2; =
 Collinear_has_on_2 collinear_has_on_2_object() const { return =
 Collinear_has_on_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_2; =
 Has_on_bounded_side_2 has_on_bounded_side_2_object() const { return =
 Has_on_bounded_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_2; =
 Has_on_unbounded_side_2 has_on_unbounded_side_2_object() const { return =
 Has_on_unbounded_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_boundary Has_on_boundary_2; Has_on_boundary_2 =
 has_on_boundary_2_object() const { return Has_on_boundary_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_positive_side Has_on_positive_side_2; =
 Has_on_positive_side_2 has_on_positive_side_2_object() const { return =
 Has_on_positive_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_negative_side Has_on_negative_side_2; =
 Has_on_negative_side_2 has_on_negative_side_2_object() const { return =
 Has_on_negative_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_oriented_side Oriented_side_2; Oriented_side_2 =
 oriented_side_2_object() const { return Oriented_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_bounded_side Bounded_side_2; Bounded_side_2 =
 bounded_side_2_object() const { return Bounded_side_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Are_ordered_along_line Are_ordered_along_line_2; =
 Are_ordered_along_line_2 are_ordered_along_line_2_object() const { =
 return Are_ordered_along_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Are_strictly_ordered_along_line =
 Are_strictly_ordered_along_line_2; Are_strictly_ordered_along_line_2 =
 are_strictly_ordered_along_line_2_object() const { return =
 Are_strictly_ordered_along_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear_are_ordered_along_line =
 Collinear_are_ordered_along_line_2; Collinear_are_ordered_along_line_2 =
 collinear_are_ordered_along_line_2_object() const { return =
 Collinear_are_ordered_along_line_2(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear_are_strictly_ordered_along_line =
 Collinear_are_strictly_ordered_along_line_2; =
 Collinear_are_strictly_ordered_along_line_2 =
 collinear_are_strictly_ordered_along_line_2_object() const { return =
 Collinear_are_strictly_ordered_along_line_2(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Point_3> Construct_point_3; Construct_point_3 =
 construct_point_3_object() const { return Construct_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Vector_3> Construct_vector_3; =
 Construct_vector_3 construct_vector_3_object() const { return =
 Construct_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Direction_3> Construct_direction_3; =
 Construct_direction_3 construct_direction_3_object() const { return =
 Construct_direction_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Segment_3> Construct_segment_3; =
 Construct_segment_3 construct_segment_3_object() const { return =
 Construct_segment_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Plane_3> Construct_plane_3; Construct_plane_3 =
 construct_plane_3_object() const { return Construct_plane_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Line_3> Construct_line_3; Construct_line_3 =
 construct_line_3_object() const { return Construct_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Ray_3> Construct_ray_3; Construct_ray_3 =
 construct_ray_3_object() const { return Construct_ray_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Sphere_3> Construct_sphere_3; =
 Construct_sphere_3 construct_sphere_3_object() const { return =
 Construct_sphere_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Triangle_3> Construct_triangle_3; =
 Construct_triangle_3 construct_triangle_3_object() const { return =
 Construct_triangle_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Tetrahedron_3> Construct_tetrahedron_3; =
 Construct_tetrahedron_3 construct_tetrahedron_3_object() const { return =
 Construct_tetrahedron_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Iso_cuboid_3> Construct_iso_cuboid_3; =
 Construct_iso_cuboid_3 construct_iso_cuboid_3_object() const { return =
 Construct_iso_cuboid_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_make_object_to_get<Object_3> Construct_object_3; =
 Construct_object_3 construct_object_3_object() const { return =
 Construct_object_3(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Construct<Aff_transformation_3> =
 Construct_aff_transformation_3; Construct_aff_transformation_3 =
 construct_aff_transformation_3_object() const { return =
 Construct_aff_transformation_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_point_to_get<Point_3> Construct_point_on_3; =
 Construct_point_on_3 construct_point_on_3_object() const { return =
 Construct_point_on_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_projection_to_get<Point_3> =
 Construct_projected_point_3; Construct_projected_point_3 =
 construct_projected_point_3_object() const { return =
 Construct_projected_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Lifted<Point_3> Construct_lifted_point_3; =
 Construct_lifted_point_3 construct_lifted_point_3_object() const { =
 return Construct_lifted_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct_scaled_vector<Vector_3> =
 Construct_scaled_vector_3; Construct_scaled_vector_3 =
 construct_scaled_vector_3_object() const { return =
 Construct_scaled_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Construct_translated_point<Point_3> =
 Construct_translated_point_3; Construct_translated_point_3 =
 construct_translated_point_3_object() const { return =
 Construct_translated_point_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_second_point_to_get<Point_3> =
 Construct_second_point_on_3; Construct_second_point_on_3 =
 construct_second_point_on_3_object() const { return =
 Construct_second_point_on_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_source_to_get<Point_3> Construct_source_point_3; =
 Construct_source_point_3 construct_source_point_3_object() const { =
 return Construct_source_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_target_to_get<Point_3> Construct_target_point_3; =
 Construct_target_point_3 construct_target_point_3_object() const { =
 return Construct_target_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_min_to_get<Point_3> Construct_min_point_3; =
 Construct_min_point_3 construct_min_point_3_object() const { return =
 Construct_min_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_max_to_get<Point_3> Construct_max_point_3; =
 Construct_max_point_3 construct_max_point_3_object() const { return =
 Construct_max_point_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_vertex_to_get<Point_3> Construct_vertex_3; =
 Construct_vertex_3 construct_vertex_3_object() const { return =
 Construct_vertex_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_direction_to_get<Direction_3> =
 Construct_direction_of_line_3; Construct_direction_of_line_3 =
 construct_direction_of_line_3_object() const { return =
 Construct_direction_of_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_direction_to_get<Direction_3> =
 Construct_direction_of_ray_3; Construct_direction_of_ray_3 =
 construct_direction_of_ray_3_object() const { return =
 Construct_direction_of_ray_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_supporting_line_to_get<Line_3> =
 Construct_supporting_line_3; Construct_supporting_line_3 =
 construct_supporting_line_3_object() const { return =
 Construct_supporting_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_perpendicular_plane_to_get<Plane_3> =
 Construct_perpendicular_plane_3; Construct_perpendicular_plane_3 =
 construct_perpendicular_plane_3_object() const { return =
 Construct_perpendicular_plane_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_perpendicular_line_to_get<Line_3> =
 Construct_perpendicular_line_3; Construct_perpendicular_line_3 =
 construct_perpendicular_line_3_object() const { return =
 Construct_perpendicular_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_orthogonal_vector_to_get<Vector_3> =
 Construct_orthogonal_vector_3; Construct_orthogonal_vector_3 =
 construct_orthogonal_vector_3_object() const { return =
 Construct_orthogonal_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Base<Vector_3> Construct_base_vector_3; =
 Construct_base_vector_3 construct_base_vector_3_object() const { return =
 Construct_base_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Midpoint<Point_3> Construct_midpoint_3; =
 Construct_midpoint_3 construct_midpoint_3_object() const { return =
 Construct_midpoint_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Center<Point_3> Construct_center_3; Construct_center_3 =
 construct_center_3_object() const { return Construct_center_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Circumcenter<Point_3> Construct_circumcenter_3; =
 Construct_circumcenter_3 construct_circumcenter_3_object() const { =
 return Construct_circumcenter_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Centroid<Point_3> Construct_centroid_3; =
 Construct_centroid_3 construct_centroid_3_object() const { return =
 Construct_centroid_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Cross_product<Vector_3> =
 Construct_cross_product_vector_3; Construct_cross_product_vector_3 =
 construct_cross_product_vector_3_object() const { return =
 Construct_cross_product_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Opposite<Direction_3> Construct_opposite_direction_3; =
 Construct_opposite_direction_3 construct_opposite_direction_3_object() =
 const { return Construct_opposite_direction_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Segment_3> =
 Construct_opposite_segment_3; Construct_opposite_segment_3 =
 construct_opposite_segment_3_object() const { return =
 Construct_opposite_segment_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Ray_3> Construct_opposite_ray_3; =
 Construct_opposite_ray_3 construct_opposite_ray_3_object() const { =
 return Construct_opposite_ray_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Line_3> Construct_opposite_line_3; =
 Construct_opposite_line_3 construct_opposite_line_3_object() const { =
 return Construct_opposite_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Plane_3> Construct_opposite_plane_3; =
 Construct_opposite_plane_3 construct_opposite_plane_3_object() const { =
 return Construct_opposite_plane_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_opposite_to_get<Sphere_3> =
 Construct_opposite_sphere_3; Construct_opposite_sphere_3 =
 construct_opposite_sphere_3_object() const { return =
 Construct_opposite_sphere_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::v_Opposite<Vector_3> Construct_opposite_vector_3; =
 Construct_opposite_vector_3 construct_opposite_vector_3_object() const { =
 return Construct_opposite_vector_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_supporting_plane_to_get<Plane_3> =
 Construct_supporting_plane_3; Construct_supporting_plane_3 =
 construct_supporting_plane_3_object() const { return =
 Construct_supporting_plane_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Call_transform Transform_3; Transform_3 =
 transform_3_object() const { return Transform_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Assign Assign_3; Assign_3 assign_3_object() const { =
 return Assign_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Intersect Intersect_3; Intersect_3 intersect_3_object() =
 const { return Intersect_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Do_intersect Do_intersect_3; Do_intersect_3 =
 do_intersect_3_object() const { return Do_intersect_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_distance<FT> Compute_squared_distance_3; =
 Compute_squared_distance_3 compute_squared_distance_3_object() const { =
 return Compute_squared_distance_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_length_to_get<FT> Compute_squared_length_3; =
 Compute_squared_length_3 compute_squared_length_3_object() const { =
 return Compute_squared_length_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_radius<FT> Compute_squared_radius_3; =
 Compute_squared_radius_3 compute_squared_radius_3_object() const { =
 return Compute_squared_radius_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_squared_area_to_get<FT> Compute_squared_area_3; =
 Compute_squared_area_3 compute_squared_area_3_object() const { return =
 Compute_squared_area_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_volume_to_get<FT> Compute_volume_3; Compute_volume_3 =
 compute_volume_3_object() const { return Compute_volume_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal Equal_3; Equal_3 equal_3_object() const { return =
 Equal_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_x Equal_x_3; Equal_x_3 equal_x_3_object() const { =
 return Equal_x_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_y Equal_y_3; Equal_y_3 equal_y_3_object() const { =
 return Equal_y_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_z Equal_z_3; Equal_z_3 equal_z_3_object() const { =
 return Equal_z_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Equal_xy Equal_xy_3; Equal_xy_3 equal_xy_3_object() const =
 { return Equal_xy_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Equal_xyz Equal_xyz_3; Equal_xyz_3 equal_xyz_3_object() =
 const { return Equal_xyz_3(); }=0A=
 =0A=
 =0A=
 =0A=
 typedef CGALi::Less_x Less_x_3; Less_x_3 less_x_3_object() const { =
 return Less_x_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Less_y Less_y_3; Less_y_3 less_y_3_object() const { =
 return Less_y_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Less_z Less_z_3; Less_z_3 less_z_3_object() const { =
 return Less_z_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_xy<Point_3> Less_xy_3; Less_xy_3 =
 less_xy_3_object() const { return Less_xy_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Less_xyz Less_xyz_3; Less_xyz_3 less_xyz_3_object() const =
 { return Less_xyz_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_x Compare_x_3; Compare_x_3 compare_x_3_object() =
 const { return Compare_x_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_y Compare_y_3; Compare_y_3 compare_y_3_object() =
 const { return Compare_y_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_z Compare_z_3; Compare_z_3 compare_z_3_object() =
 const { return Compare_z_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_xy Compare_xy_3; Compare_xy_3 =
 compare_xy_3_object() const { return Compare_xy_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_xyz Compare_xyz_3; Compare_xyz_3 =
 compare_xyz_3_object() const { return Compare_xyz_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Compare_distance<Point_3> Compare_distance_3; =
 Compare_distance_3 compare_distance_3_object() const { return =
 Compare_distance_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Less_dist_to_point<Point_3> Less_distance_to_point_3; =
 Less_distance_to_point_3 less_distance_to_point_3_object() const { =
 return Less_distance_to_point_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Less_signed_distance_to_plane<Plane_3,Point_3> =
 Less_signed_distance_to_plane_3; Less_signed_distance_to_plane_3 =
 less_signed_distance_to_plane_3_object() const { return =
 Less_signed_distance_to_plane_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Angle Angle_3; Angle_3 angle_3_object() const { return =
 Angle_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear Collinear_3; Collinear_3 collinear_3_object() =
 const { return Collinear_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Coplanar Coplanar_3; Coplanar_3 coplanar_3_object() const =
 { return Coplanar_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Coplanar_orientation Coplanar_orientation_3; =
 Coplanar_orientation_3 coplanar_orientation_3_object() const { return =
 Coplanar_orientation_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Coplanar_side_of_bounded_circle =
 Coplanar_side_of_bounded_circle_3; Coplanar_side_of_bounded_circle_3 =
 coplanar_side_of_bounded_circle_3_object() const { return =
 Coplanar_side_of_bounded_circle_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::p_Orientation<Point_3> Orientation_3; Orientation_3 =
 orientation_3_object() const { return Orientation_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_is_degenerate Is_degenerate_3; Is_degenerate_3 =
 is_degenerate_3_object() const { return Is_degenerate_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on Has_on_3; Has_on_3 has_on_3_object() const { =
 return Has_on_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_3; =
 Has_on_bounded_side_3 has_on_bounded_side_3_object() const { return =
 Has_on_bounded_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_3; =
 Has_on_unbounded_side_3 has_on_unbounded_side_3_object() const { return =
 Has_on_unbounded_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_boundary Has_on_boundary_3; Has_on_boundary_3 =
 has_on_boundary_3_object() const { return Has_on_boundary_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_positive_side Has_on_positive_side_3; =
 Has_on_positive_side_3 has_on_positive_side_3_object() const { return =
 Has_on_positive_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_has_on_negative_side Has_on_negative_side_3; =
 Has_on_negative_side_3 has_on_negative_side_3_object() const { return =
 Has_on_negative_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_oriented_side Oriented_side_3; Oriented_side_3 =
 oriented_side_3_object() const { return Oriented_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Call_bounded_side Bounded_side_3; Bounded_side_3 =
 bounded_side_3_object() const { return Bounded_side_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Are_ordered_along_line Are_ordered_along_line_3; =
 Are_ordered_along_line_3 are_ordered_along_line_3_object() const { =
 return Are_ordered_along_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Are_strictly_ordered_along_line =
 Are_strictly_ordered_along_line_3; Are_strictly_ordered_along_line_3 =
 are_strictly_ordered_along_line_3_object() const { return =
 Are_strictly_ordered_along_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear_are_ordered_along_line =
 Collinear_are_ordered_along_line_3; Collinear_are_ordered_along_line_3 =
 collinear_are_ordered_along_line_3_object() const { return =
 Collinear_are_ordered_along_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Collinear_are_strictly_ordered_along_line =
 Collinear_are_strictly_ordered_along_line_3; =
 Collinear_are_strictly_ordered_along_line_3 =
 collinear_are_strictly_ordered_along_line_3_object() const { return =
 Collinear_are_strictly_ordered_along_line_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Side_of_oriented_sphere Side_of_oriented_sphere_3; =
 Side_of_oriented_sphere_3 side_of_oriented_sphere_3_object() const { =
 return Side_of_oriented_sphere_3(); }=0A=
 =0A=
 =0A=
 typedef CGALi::Side_of_bounded_sphere Side_of_bounded_sphere_3; =
 Side_of_bounded_sphere_3 side_of_bounded_sphere_3_object() const { =
 return Side_of_bounded_sphere_3(); }=0A=
 # 56 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke=
 rnel_traits_common.h" 2=0A=
 # 244 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 =0A=
 };=0A=
 =0A=
 }=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/it=
 erator_traits_pointer_specs_for_simple_cartesian_kernel.h" 1=0A=
 # 250 =
 "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si=
 mple_cartesian.h" 2=0A=
 # 8 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp" 1=0A=
 # 22 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp"=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/stdexcept" 1 3=0A=
 # 43 "/usr/local/gcc3.1/include/g++-v3/stdexcept" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   class logic_error : public exception=0A=
   {=0A=
     string _M_msg;=0A=
 =0A=
   public:=0A=
 =0A=
     explicit=0A=
     logic_error(const string& __arg);=0A=
 =0A=
     virtual=0A=
     ~logic_error() throw();=0A=
 =0A=
 =0A=
 =0A=
     virtual const char*=0A=
     what() const throw();=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class domain_error : public logic_error=0A=
   {=0A=
   public:=0A=
     explicit domain_error(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
   class invalid_argument : public logic_error=0A=
   {=0A=
   public:=0A=
     explicit invalid_argument(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class length_error : public logic_error=0A=
   {=0A=
   public:=0A=
     explicit length_error(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class out_of_range : public logic_error=0A=
   {=0A=
   public:=0A=
     explicit out_of_range(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   class runtime_error : public exception=0A=
   {=0A=
     string _M_msg;=0A=
 =0A=
   public:=0A=
 =0A=
     explicit=0A=
     runtime_error(const string& __arg);=0A=
 =0A=
     virtual=0A=
     ~runtime_error() throw();=0A=
 =0A=
 =0A=
 =0A=
     virtual const char*=0A=
     what() const throw();=0A=
   };=0A=
 =0A=
 =0A=
   class range_error : public runtime_error=0A=
   {=0A=
   public:=0A=
     explicit range_error(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
   class overflow_error : public runtime_error=0A=
   {=0A=
   public:=0A=
     explicit overflow_error(const string& __arg);=0A=
   };=0A=
 =0A=
 =0A=
   class underflow_error : public runtime_error=0A=
   {=0A=
   public:=0A=
     explicit underflow_error(const string& __arg);=0A=
   };=0A=
 }=0A=
 # 23 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp" 2=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/iterator" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/iterator" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stream_iterator.h" 1 3=0A=
 # 39 "/usr/local/gcc3.1/include/g++-v3/bits/stream_iterator.h" 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   template<typename _Tp, typename _CharT =3D char,=0A=
            typename _Traits =3D char_traits<_CharT>, typename _Dist =3D =
 ptrdiff_t>=0A=
     class istream_iterator=0A=
       : public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, =
 const _Tp&>=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef basic_istream<_CharT, _Traits> istream_type;=0A=
 =0A=
     private:=0A=
       istream_type* _M_stream;=0A=
       _Tp _M_value;=0A=
       bool _M_ok;=0A=
 =0A=
     public:=0A=
       istream_iterator() : _M_stream(0), _M_ok(false) {}=0A=
 =0A=
       istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); =
 }=0A=
 =0A=
       istream_iterator(const istream_iterator& __obj)=0A=
       : _M_stream(__obj._M_stream), _M_value(__obj._M_value),=0A=
         _M_ok(__obj._M_ok)=0A=
       { }=0A=
 =0A=
       const _Tp&=0A=
       operator*() const { return _M_value; }=0A=
 =0A=
       const _Tp*=0A=
       operator->() const { return &(operator*()); }=0A=
 =0A=
       istream_iterator&=0A=
       operator++()=0A=
       { _M_read(); return *this; }=0A=
 =0A=
       istream_iterator=0A=
       operator++(int)=0A=
       {=0A=
         istream_iterator __tmp =3D *this;=0A=
         _M_read();=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
       bool=0A=
       _M_equal(const istream_iterator& __x) const=0A=
       { return (_M_ok =3D=3D __x._M_ok) && (!_M_ok || _M_stream =3D=3D =
 __x._M_stream);}=0A=
 =0A=
     private:=0A=
       void=0A=
       _M_read()=0A=
       {=0A=
         _M_ok =3D (_M_stream && *_M_stream) ? true : false;=0A=
         if (_M_ok)=0A=
           {=0A=
             *_M_stream >> _M_value;=0A=
             _M_ok =3D *_M_stream ? true : false;=0A=
           }=0A=
       }=0A=
     };=0A=
 =0A=
   template<typename _Tp, typename _CharT, typename _Traits, typename =
 _Dist>=0A=
     inline bool=0A=
     operator=3D=3D(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& =
 __x,=0A=
                const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)=0A=
     { return __x._M_equal(__y); }=0A=
 =0A=
   template <class _Tp, class _CharT, class _Traits, class _Dist>=0A=
     inline bool=0A=
     operator!=3D(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& =
 __x,=0A=
                const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)=0A=
     { return !__x._M_equal(__y); }=0A=
 =0A=
 =0A=
   template<typename _Tp, typename _CharT =3D char,=0A=
            typename _Traits =3D char_traits<_CharT> >=0A=
     class ostream_iterator=0A=
       : public iterator<output_iterator_tag, void, void, void, void>=0A=
     {=0A=
     public:=0A=
       typedef _CharT char_type;=0A=
       typedef _Traits traits_type;=0A=
       typedef basic_ostream<_CharT, _Traits> ostream_type;=0A=
 =0A=
     private:=0A=
       ostream_type* _M_stream;=0A=
       const _CharT* _M_string;=0A=
 =0A=
     public:=0A=
       ostream_iterator(ostream_type& __s) : _M_stream(&__s), =
 _M_string(0) {}=0A=
 =0A=
       ostream_iterator(ostream_type& __s, const _CharT* __c)=0A=
       : _M_stream(&__s), _M_string(__c) { }=0A=
 =0A=
       ostream_iterator(const ostream_iterator& __obj)=0A=
       : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }=0A=
 =0A=
       ostream_iterator&=0A=
       operator=3D(const _Tp& __value)=0A=
       {=0A=
         *_M_stream << __value;=0A=
         if (_M_string) *_M_stream << _M_string;=0A=
         return *this;=0A=
       }=0A=
 =0A=
       ostream_iterator&=0A=
       operator*() { return *this; }=0A=
 =0A=
       ostream_iterator&=0A=
       operator++() { return *this; }=0A=
 =0A=
       ostream_iterator&=0A=
       operator++(int) { return *this; }=0A=
     };=0A=
 }=0A=
 # 73 "/usr/local/gcc3.1/include/g++-v3/iterator" 2 3=0A=
 # 24 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 1=0A=
 # 26 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/user.hpp" 1=0A=
 # 27 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/select_compiler_config.hpp" 1=0A=
 # 32 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/compiler/gcc.hpp" 1=0A=
 # 36 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/select_stdlib_config.hpp" 1=0A=
 # 18 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/select_stdlib_config.hpp"=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/utility" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/utility" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 1 3=0A=
 # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A=
 namespace std=0A=
 {=0A=
   namespace rel_ops=0A=
   {=0A=
 # 90 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A=
 template <class _Tp>=0A=
 inline bool operator!=3D(const _Tp& __x, const _Tp& __y) {=0A=
   return !(__x =3D=3D __y);=0A=
 }=0A=
 # 103 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A=
 template <class _Tp>=0A=
 inline bool operator>(const _Tp& __x, const _Tp& __y) {=0A=
   return __y < __x;=0A=
 }=0A=
 # 116 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A=
 template <class _Tp>=0A=
 inline bool operator<=3D(const _Tp& __x, const _Tp& __y) {=0A=
   return !(__y < __x);=0A=
 }=0A=
 # 129 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A=
 template <class _Tp>=0A=
 inline bool operator>=3D(const _Tp& __x, const _Tp& __y) {=0A=
   return !(__x < __y);=0A=
 }=0A=
 =0A=
   }=0A=
 }=0A=
 # 67 "/usr/local/gcc3.1/include/g++-v3/utility" 2 3=0A=
 # 19 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/select_stdlib_config.hpp" 2=0A=
 # 41 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/stdlib/libstdcpp3.hpp" 1=0A=
 # 45 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/select_platform_config.hpp" 1=0A=
 # 50 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/platform/linux.hpp" 1=0A=
 # 60 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/platform/linux.hpp"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/posix_features.hpp" 1=0A=
 # 11 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/posix_features.hpp"=0A=
 # 1 "/usr/include/unistd.h" 1 3=0A=
 # 28 "/usr/include/unistd.h" 3=0A=
 extern "C" {=0A=
 # 175 "/usr/include/unistd.h" 3=0A=
 # 1 "/usr/include/bits/posix_opt.h" 1 3=0A=
 # 176 "/usr/include/unistd.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/environments.h" 1 3=0A=
 # 23 "/usr/include/bits/environments.h" 3=0A=
 # 1 "/usr/include/bits/wordsize.h" 1 3=0A=
 # 24 "/usr/include/bits/environments.h" 2 3=0A=
 # 180 "/usr/include/unistd.h" 2 3=0A=
 # 199 "/usr/include/unistd.h" 3=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 =
 3=0A=
 # 200 "/usr/include/unistd.h" 2 3=0A=
 # 240 "/usr/include/unistd.h" 3=0A=
 typedef __intptr_t intptr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __socklen_t socklen_t;=0A=
 # 260 "/usr/include/unistd.h" 3=0A=
 extern int access (__const char *__name, int __type) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int euidaccess (__const char *__name, int __type) throw ();=0A=
 # 290 "/usr/include/unistd.h" 3=0A=
 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();=0A=
 # 302 "/usr/include/unistd.h" 3=0A=
 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int close (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) throw ();=0A=
 =0A=
 =0A=
 extern ssize_t write (int __fd, __const void *__buf, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t =
 __offset)=0A=
      throw ();=0A=
 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,=0A=
                        __off_t __offset) throw ();=0A=
 # 340 "/usr/include/unistd.h" 3=0A=
 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,=0A=
                         __off64_t __offset) throw ();=0A=
 =0A=
 =0A=
 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,=0A=
                          __off64_t __offset) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pipe (int __pipedes[2]) throw ();=0A=
 # 362 "/usr/include/unistd.h" 3=0A=
 extern unsigned int alarm (unsigned int __seconds) throw ();=0A=
 # 371 "/usr/include/unistd.h" 3=0A=
 extern unsigned int sleep (unsigned int __seconds) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __useconds_t ualarm (__useconds_t __value, __useconds_t =
 __interval)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int usleep (__useconds_t __useconds) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int pause (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int lchown (__const char *__file, __uid_t __owner, __gid_t =
 __group)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int chdir (__const char *__path) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int fchdir (int __fd) throw ();=0A=
 # 423 "/usr/include/unistd.h" 3=0A=
 extern char *getcwd (char *__buf, size_t __size) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *get_current_dir_name (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *getwd (char *__buf) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int dup (int __fd) throw ();=0A=
 =0A=
 =0A=
 extern int dup2 (int __fd, int __fd2) throw ();=0A=
 =0A=
 =0A=
 extern char **__environ;=0A=
 =0A=
 extern char **environ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int execve (__const char *__path, char *__const __argv[],=0A=
                    char *__const __envp[]) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fexecve (int __fd, char *__const __argv[], char *__const =
 __envp[])=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int execv (__const char *__path, char *__const __argv[]) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int execle (__const char *__path, __const char *__arg, ...) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern int execl (__const char *__path, __const char *__arg, ...) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 extern int execvp (__const char *__file, char *__const __argv[]) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int execlp (__const char *__file, __const char *__arg, ...) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int nice (int __inc) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void _exit (int __status) __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/bits/confname.h" 1 3=0A=
 # 25 "/usr/include/bits/confname.h" 3=0A=
 enum=0A=
   {=0A=
     _PC_LINK_MAX,=0A=
 =0A=
     _PC_MAX_CANON,=0A=
 =0A=
     _PC_MAX_INPUT,=0A=
 =0A=
     _PC_NAME_MAX,=0A=
 =0A=
     _PC_PATH_MAX,=0A=
 =0A=
     _PC_PIPE_BUF,=0A=
 =0A=
     _PC_CHOWN_RESTRICTED,=0A=
 =0A=
     _PC_NO_TRUNC,=0A=
 =0A=
     _PC_VDISABLE,=0A=
 =0A=
     _PC_SYNC_IO,=0A=
 =0A=
     _PC_ASYNC_IO,=0A=
 =0A=
     _PC_PRIO_IO,=0A=
 =0A=
     _PC_SOCK_MAXBUF,=0A=
 =0A=
     _PC_FILESIZEBITS,=0A=
 =0A=
     _PC_REC_INCR_XFER_SIZE,=0A=
 =0A=
     _PC_REC_MAX_XFER_SIZE,=0A=
 =0A=
     _PC_REC_MIN_XFER_SIZE,=0A=
 =0A=
     _PC_REC_XFER_ALIGN,=0A=
 =0A=
     _PC_ALLOC_SIZE_MIN,=0A=
 =0A=
     _PC_SYMLINK_MAX=0A=
 =0A=
   };=0A=
 =0A=
 =0A=
 enum=0A=
   {=0A=
     _SC_ARG_MAX,=0A=
 =0A=
     _SC_CHILD_MAX,=0A=
 =0A=
     _SC_CLK_TCK,=0A=
 =0A=
     _SC_NGROUPS_MAX,=0A=
 =0A=
     _SC_OPEN_MAX,=0A=
 =0A=
     _SC_STREAM_MAX,=0A=
 =0A=
     _SC_TZNAME_MAX,=0A=
 =0A=
     _SC_JOB_CONTROL,=0A=
 =0A=
     _SC_SAVED_IDS,=0A=
 =0A=
     _SC_REALTIME_SIGNALS,=0A=
 =0A=
     _SC_PRIORITY_SCHEDULING,=0A=
 =0A=
     _SC_TIMERS,=0A=
 =0A=
     _SC_ASYNCHRONOUS_IO,=0A=
 =0A=
     _SC_PRIORITIZED_IO,=0A=
 =0A=
     _SC_SYNCHRONIZED_IO,=0A=
 =0A=
     _SC_FSYNC,=0A=
 =0A=
     _SC_MAPPED_FILES,=0A=
 =0A=
     _SC_MEMLOCK,=0A=
 =0A=
     _SC_MEMLOCK_RANGE,=0A=
 =0A=
     _SC_MEMORY_PROTECTION,=0A=
 =0A=
     _SC_MESSAGE_PASSING,=0A=
 =0A=
     _SC_SEMAPHORES,=0A=
 =0A=
     _SC_SHARED_MEMORY_OBJECTS,=0A=
 =0A=
     _SC_AIO_LISTIO_MAX,=0A=
 =0A=
     _SC_AIO_MAX,=0A=
 =0A=
     _SC_AIO_PRIO_DELTA_MAX,=0A=
 =0A=
     _SC_DELAYTIMER_MAX,=0A=
 =0A=
     _SC_MQ_OPEN_MAX,=0A=
 =0A=
     _SC_MQ_PRIO_MAX,=0A=
 =0A=
     _SC_VERSION,=0A=
 =0A=
     _SC_PAGESIZE,=0A=
 =0A=
 =0A=
     _SC_RTSIG_MAX,=0A=
 =0A=
     _SC_SEM_NSEMS_MAX,=0A=
 =0A=
     _SC_SEM_VALUE_MAX,=0A=
 =0A=
     _SC_SIGQUEUE_MAX,=0A=
 =0A=
     _SC_TIMER_MAX,=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     _SC_BC_BASE_MAX,=0A=
 =0A=
     _SC_BC_DIM_MAX,=0A=
 =0A=
     _SC_BC_SCALE_MAX,=0A=
 =0A=
     _SC_BC_STRING_MAX,=0A=
 =0A=
     _SC_COLL_WEIGHTS_MAX,=0A=
 =0A=
     _SC_EQUIV_CLASS_MAX,=0A=
 =0A=
     _SC_EXPR_NEST_MAX,=0A=
 =0A=
     _SC_LINE_MAX,=0A=
 =0A=
     _SC_RE_DUP_MAX,=0A=
 =0A=
     _SC_CHARCLASS_NAME_MAX,=0A=
 =0A=
 =0A=
     _SC_2_VERSION,=0A=
 =0A=
     _SC_2_C_BIND,=0A=
 =0A=
     _SC_2_C_DEV,=0A=
 =0A=
     _SC_2_FORT_DEV,=0A=
 =0A=
     _SC_2_FORT_RUN,=0A=
 =0A=
     _SC_2_SW_DEV,=0A=
 =0A=
     _SC_2_LOCALEDEF,=0A=
 =0A=
 =0A=
     _SC_PII,=0A=
 =0A=
     _SC_PII_XTI,=0A=
 =0A=
     _SC_PII_SOCKET,=0A=
 =0A=
     _SC_PII_INTERNET,=0A=
 =0A=
     _SC_PII_OSI,=0A=
 =0A=
     _SC_POLL,=0A=
 =0A=
     _SC_SELECT,=0A=
 =0A=
     _SC_UIO_MAXIOV,=0A=
 =0A=
     _SC_IOV_MAX =3D _SC_UIO_MAXIOV,=0A=
 =0A=
     _SC_PII_INTERNET_STREAM,=0A=
 =0A=
     _SC_PII_INTERNET_DGRAM,=0A=
 =0A=
     _SC_PII_OSI_COTS,=0A=
 =0A=
     _SC_PII_OSI_CLTS,=0A=
 =0A=
     _SC_PII_OSI_M,=0A=
 =0A=
     _SC_T_IOV_MAX,=0A=
 =0A=
 =0A=
 =0A=
     _SC_THREADS,=0A=
 =0A=
     _SC_THREAD_SAFE_FUNCTIONS,=0A=
 =0A=
     _SC_GETGR_R_SIZE_MAX,=0A=
 =0A=
     _SC_GETPW_R_SIZE_MAX,=0A=
 =0A=
     _SC_LOGIN_NAME_MAX,=0A=
 =0A=
     _SC_TTY_NAME_MAX,=0A=
 =0A=
     _SC_THREAD_DESTRUCTOR_ITERATIONS,=0A=
 =0A=
     _SC_THREAD_KEYS_MAX,=0A=
 =0A=
     _SC_THREAD_STACK_MIN,=0A=
 =0A=
     _SC_THREAD_THREADS_MAX,=0A=
 =0A=
     _SC_THREAD_ATTR_STACKADDR,=0A=
 =0A=
     _SC_THREAD_ATTR_STACKSIZE,=0A=
 =0A=
     _SC_THREAD_PRIORITY_SCHEDULING,=0A=
 =0A=
     _SC_THREAD_PRIO_INHERIT,=0A=
 =0A=
     _SC_THREAD_PRIO_PROTECT,=0A=
 =0A=
     _SC_THREAD_PROCESS_SHARED,=0A=
 =0A=
 =0A=
     _SC_NPROCESSORS_CONF,=0A=
 =0A=
     _SC_NPROCESSORS_ONLN,=0A=
 =0A=
     _SC_PHYS_PAGES,=0A=
 =0A=
     _SC_AVPHYS_PAGES,=0A=
 =0A=
     _SC_ATEXIT_MAX,=0A=
 =0A=
     _SC_PASS_MAX,=0A=
 =0A=
 =0A=
     _SC_XOPEN_VERSION,=0A=
 =0A=
     _SC_XOPEN_XCU_VERSION,=0A=
 =0A=
     _SC_XOPEN_UNIX,=0A=
 =0A=
     _SC_XOPEN_CRYPT,=0A=
 =0A=
     _SC_XOPEN_ENH_I18N,=0A=
 =0A=
     _SC_XOPEN_SHM,=0A=
 =0A=
 =0A=
     _SC_2_CHAR_TERM,=0A=
 =0A=
     _SC_2_C_VERSION,=0A=
 =0A=
     _SC_2_UPE,=0A=
 =0A=
 =0A=
     _SC_XOPEN_XPG2,=0A=
 =0A=
     _SC_XOPEN_XPG3,=0A=
 =0A=
     _SC_XOPEN_XPG4,=0A=
 =0A=
 =0A=
     _SC_CHAR_BIT,=0A=
 =0A=
     _SC_CHAR_MAX,=0A=
 =0A=
     _SC_CHAR_MIN,=0A=
 =0A=
     _SC_INT_MAX,=0A=
 =0A=
     _SC_INT_MIN,=0A=
 =0A=
     _SC_LONG_BIT,=0A=
 =0A=
     _SC_WORD_BIT,=0A=
 =0A=
     _SC_MB_LEN_MAX,=0A=
 =0A=
     _SC_NZERO,=0A=
 =0A=
     _SC_SSIZE_MAX,=0A=
 =0A=
     _SC_SCHAR_MAX,=0A=
 =0A=
     _SC_SCHAR_MIN,=0A=
 =0A=
     _SC_SHRT_MAX,=0A=
 =0A=
     _SC_SHRT_MIN,=0A=
 =0A=
     _SC_UCHAR_MAX,=0A=
 =0A=
     _SC_UINT_MAX,=0A=
 =0A=
     _SC_ULONG_MAX,=0A=
 =0A=
     _SC_USHRT_MAX,=0A=
 =0A=
 =0A=
     _SC_NL_ARGMAX,=0A=
 =0A=
     _SC_NL_LANGMAX,=0A=
 =0A=
     _SC_NL_MSGMAX,=0A=
 =0A=
     _SC_NL_NMAX,=0A=
 =0A=
     _SC_NL_SETMAX,=0A=
 =0A=
     _SC_NL_TEXTMAX,=0A=
 =0A=
 =0A=
     _SC_XBS5_ILP32_OFF32,=0A=
 =0A=
     _SC_XBS5_ILP32_OFFBIG,=0A=
 =0A=
     _SC_XBS5_LP64_OFF64,=0A=
 =0A=
     _SC_XBS5_LPBIG_OFFBIG,=0A=
 =0A=
 =0A=
     _SC_XOPEN_LEGACY,=0A=
 =0A=
     _SC_XOPEN_REALTIME,=0A=
 =0A=
     _SC_XOPEN_REALTIME_THREADS,=0A=
 =0A=
 =0A=
     _SC_ADVISORY_INFO,=0A=
 =0A=
     _SC_BARRIERS,=0A=
 =0A=
     _SC_BASE,=0A=
 =0A=
     _SC_C_LANG_SUPPORT,=0A=
 =0A=
     _SC_C_LANG_SUPPORT_R,=0A=
 =0A=
     _SC_CLOCK_SELECTION,=0A=
 =0A=
     _SC_CPUTIME,=0A=
 =0A=
     _SC_THREAD_CPUTIME,=0A=
 =0A=
     _SC_DEVICE_IO,=0A=
 =0A=
     _SC_DEVICE_SPECIFIC,=0A=
 =0A=
     _SC_DEVICE_SPECIFIC_R,=0A=
 =0A=
     _SC_FD_MGMT,=0A=
 =0A=
     _SC_FIFO,=0A=
 =0A=
     _SC_PIPE,=0A=
 =0A=
     _SC_FILE_ATTRIBUTES,=0A=
 =0A=
     _SC_FILE_LOCKING,=0A=
 =0A=
     _SC_FILE_SYSTEM,=0A=
 =0A=
     _SC_MONOTONIC_CLOCK,=0A=
 =0A=
     _SC_MULTI_PROCESS,=0A=
 =0A=
     _SC_SINGLE_PROCESS,=0A=
 =0A=
     _SC_NETWORKING,=0A=
 =0A=
     _SC_READER_WRITER_LOCKS,=0A=
 =0A=
     _SC_SPIN_LOCKS,=0A=
 =0A=
     _SC_REGEXP,=0A=
 =0A=
     _SC_REGEX_VERSION,=0A=
 =0A=
     _SC_SHELL,=0A=
 =0A=
     _SC_SIGNALS,=0A=
 =0A=
     _SC_SPAWN,=0A=
 =0A=
     _SC_SPORADIC_SERVER,=0A=
 =0A=
     _SC_THREAD_SPORADIC_SERVER,=0A=
 =0A=
     _SC_SYSTEM_DATABASE,=0A=
 =0A=
     _SC_SYSTEM_DATABASE_R,=0A=
 =0A=
     _SC_TIMEOUTS,=0A=
 =0A=
     _SC_TYPED_MEMORY_OBJECTS,=0A=
 =0A=
     _SC_USER_GROUPS,=0A=
 =0A=
     _SC_USER_GROUPS_R,=0A=
 =0A=
     _SC_2_PBS,=0A=
 =0A=
     _SC_2_PBS_ACCOUNTING,=0A=
 =0A=
     _SC_2_PBS_LOCATE,=0A=
 =0A=
     _SC_2_PBS_MESSAGE,=0A=
 =0A=
     _SC_2_PBS_TRACK,=0A=
 =0A=
     _SC_SYMLOOP_MAX,=0A=
 =0A=
     _SC_STREAMS,=0A=
 =0A=
     _SC_2_PBS_CHECKPOINT,=0A=
 =0A=
 =0A=
     _SC_V6_ILP32_OFF32,=0A=
 =0A=
     _SC_V6_ILP32_OFFBIG,=0A=
 =0A=
     _SC_V6_LP64_OFF64,=0A=
 =0A=
     _SC_V6_LPBIG_OFFBIG,=0A=
 =0A=
 =0A=
     _SC_HOST_NAME_MAX,=0A=
 =0A=
     _SC_TRACE,=0A=
 =0A=
     _SC_TRACE_EVENT_FILTER,=0A=
 =0A=
     _SC_TRACE_INHERIT,=0A=
 =0A=
     _SC_TRACE_LOG=0A=
 =0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
   {=0A=
     _CS_PATH,=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     _CS_LFS_CFLAGS =3D 1000,=0A=
 =0A=
     _CS_LFS_LDFLAGS,=0A=
 =0A=
     _CS_LFS_LIBS,=0A=
 =0A=
     _CS_LFS_LINTFLAGS,=0A=
 =0A=
     _CS_LFS64_CFLAGS,=0A=
 =0A=
     _CS_LFS64_LDFLAGS,=0A=
 =0A=
     _CS_LFS64_LIBS,=0A=
 =0A=
     _CS_LFS64_LINTFLAGS,=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     _CS_XBS5_ILP32_OFF32_CFLAGS =3D 1100,=0A=
 =0A=
     _CS_XBS5_ILP32_OFF32_LDFLAGS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFF32_LIBS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFF32_LINTFLAGS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFFBIG_CFLAGS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFFBIG_LIBS,=0A=
 =0A=
     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,=0A=
 =0A=
     _CS_XBS5_LP64_OFF64_CFLAGS,=0A=
 =0A=
     _CS_XBS5_LP64_OFF64_LDFLAGS,=0A=
 =0A=
     _CS_XBS5_LP64_OFF64_LIBS,=0A=
 =0A=
     _CS_XBS5_LP64_OFF64_LINTFLAGS,=0A=
 =0A=
     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,=0A=
 =0A=
     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,=0A=
 =0A=
     _CS_XBS5_LPBIG_OFFBIG_LIBS,=0A=
 =0A=
     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,=0A=
 =0A=
 =0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFF32_CFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFF32_LIBS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFFBIG_LIBS,=0A=
 =0A=
     _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LP64_OFF64_CFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LP64_OFF64_LDFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LP64_OFF64_LIBS,=0A=
 =0A=
     _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,=0A=
 =0A=
     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,=0A=
 =0A=
     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,=0A=
 =0A=
 =0A=
 =0A=
     _CS_V6_WIDTH_RESTRICTED_ENVS=0A=
 =0A=
   };=0A=
 # 501 "/usr/include/unistd.h" 2 3=0A=
 =0A=
 =0A=
 extern long int pathconf (__const char *__path, int __name) throw ();=0A=
 =0A=
 =0A=
 extern long int fpathconf (int __fd, int __name) throw ();=0A=
 =0A=
 =0A=
 extern long int sysconf (int __name) throw () __attribute__ =
 ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t getpid (void) throw ();=0A=
 =0A=
 =0A=
 extern __pid_t getppid (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t getpgrp (void) throw ();=0A=
 # 536 "/usr/include/unistd.h" 3=0A=
 extern __pid_t __getpgid (__pid_t __pid) throw ();=0A=
 =0A=
 extern __pid_t getpgid (__pid_t __pid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();=0A=
 # 562 "/usr/include/unistd.h" 3=0A=
 extern int setpgrp (void) throw ();=0A=
 # 580 "/usr/include/unistd.h" 3=0A=
 extern __pid_t setsid (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t getsid (__pid_t __pid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern __uid_t getuid (void) throw ();=0A=
 =0A=
 =0A=
 extern __uid_t geteuid (void) throw ();=0A=
 =0A=
 =0A=
 extern __gid_t getgid (void) throw ();=0A=
 =0A=
 =0A=
 extern __gid_t getegid (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getgroups (int __size, __gid_t __list[]) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int group_member (__gid_t __gid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setuid (__uid_t __uid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int seteuid (__uid_t __uid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setgid (__gid_t __gid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setegid (__gid_t __gid) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t fork (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t vfork (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *ttyname (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int ttyname_r (int __fd, char *__buf, size_t __buflen) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int isatty (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ttyslot (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int link (__const char *__from, __const char *__to) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int symlink (__const char *__from, __const char *__to) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int readlink (__const char *__restrict __path, char *__restrict =
 __buf,=0A=
                      size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int unlink (__const char *__name) throw ();=0A=
 =0A=
 =0A=
 extern int rmdir (__const char *__path) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern __pid_t tcgetpgrp (int __fd) throw ();=0A=
 =0A=
 =0A=
 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *getlogin (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getlogin_r (char *__name, size_t __name_len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int setlogin (__const char *__name) throw ();=0A=
 # 726 "/usr/include/unistd.h" 3=0A=
 # 1 "/usr/include/getopt.h" 1 3=0A=
 # 38 "/usr/include/getopt.h" 3=0A=
 extern "C" {=0A=
 # 47 "/usr/include/getopt.h" 3=0A=
 extern char *optarg;=0A=
 # 61 "/usr/include/getopt.h" 3=0A=
 extern int optind;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int opterr;=0A=
 =0A=
 =0A=
 =0A=
 extern int optopt;=0A=
 # 145 "/usr/include/getopt.h" 3=0A=
 extern int getopt (int ___argc, char *const *___argv, const char =
 *__shortopts);=0A=
 # 175 "/usr/include/getopt.h" 3=0A=
 }=0A=
 # 727 "/usr/include/unistd.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int gethostname (char *__name, size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int sethostname (__const char *__name, size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int sethostid (long int __id) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getdomainname (char *__name, size_t __len) throw ();=0A=
 extern int setdomainname (__const char *__name, size_t __len) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int vhangup (void) throw ();=0A=
 =0A=
 =0A=
 extern int revoke (__const char *__file) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int profil (unsigned short int *__sample_buffer, size_t __size,=0A=
                    size_t __offset, unsigned int __scale) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int acct (__const char *__name) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *getusershell (void) throw ();=0A=
 extern void endusershell (void) throw ();=0A=
 extern void setusershell (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int daemon (int __nochdir, int __noclose) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int chroot (__const char *__path) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *getpass (__const char *__prompt) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int fsync (int __fd) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern long int gethostid (void) throw ();=0A=
 =0A=
 =0A=
 extern void sync (void) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getpagesize (void) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int truncate (__const char *__file, __off_t __length) throw ();=0A=
 # 836 "/usr/include/unistd.h" 3=0A=
 extern int truncate64 (__const char *__file, __off64_t __length) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ftruncate (int __fd, __off_t __length) throw ();=0A=
 # 851 "/usr/include/unistd.h" 3=0A=
 extern int ftruncate64 (int __fd, __off64_t __length) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int getdtablesize (void) throw ();=0A=
 # 866 "/usr/include/unistd.h" 3=0A=
 extern int brk (void *__addr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *sbrk (intptr_t __delta) throw ();=0A=
 # 887 "/usr/include/unistd.h" 3=0A=
 extern long int syscall (long int __sysno, ...) throw ();=0A=
 # 907 "/usr/include/unistd.h" 3=0A=
 extern int lockf (int __fd, int __cmd, __off_t __len) throw ();=0A=
 # 917 "/usr/include/unistd.h" 3=0A=
 extern int lockf64 (int __fd, int __cmd, __off64_t __len) throw ();=0A=
 # 938 "/usr/include/unistd.h" 3=0A=
 extern int fdatasync (int __fildes) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *crypt (__const char *__key, __const char *__salt) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void encrypt (char *__block, int __edflag) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void swab (__const void *__restrict __from, void *__restrict __to,=0A=
                   ssize_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *ctermid (char *__s) throw ();=0A=
 # 983 "/usr/include/unistd.h" 3=0A=
 extern int pthread_atfork (void (*__prepare) (void),=0A=
                            void (*__parent) (void),=0A=
                            void (*__child) (void)) throw ();=0A=
 =0A=
 =0A=
 }=0A=
 # 12 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/posix_features.hpp" 2=0A=
 # 61 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/platform/linux.hpp" 2=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/suffix.hpp" 1=0A=
 # 30 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/suffix.hpp"=0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 =
 3=0A=
 # 31 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g/suffix.hpp" 2=0A=
 # 58 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi=
 g.hpp" 2=0A=
 # 28 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp" 2=0A=
 =0A=
 namespace boost {=0A=
 =0A=
     template<class T, std::size_t N>=0A=
     class array {=0A=
       public:=0A=
         T elems[N];=0A=
 =0A=
       public:=0A=
 =0A=
         typedef T value_type;=0A=
         typedef T* iterator;=0A=
         typedef const T* const_iterator;=0A=
         typedef T& reference;=0A=
         typedef const T& const_reference;=0A=
         typedef std::size_t size_type;=0A=
         typedef std::ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
         iterator begin() { return elems; }=0A=
         const_iterator begin() const { return elems; }=0A=
         iterator end() { return elems+N; }=0A=
         const_iterator end() const { return elems+N; }=0A=
 =0A=
 =0A=
 =0A=
         typedef std::reverse_iterator<iterator> reverse_iterator;=0A=
         typedef std::reverse_iterator<const_iterator> =
 const_reverse_iterator;=0A=
 # 68 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array=
 .hpp"=0A=
         reverse_iterator rbegin() { return reverse_iterator(end()); }=0A=
         const_reverse_iterator rbegin() const {=0A=
             return const_reverse_iterator(end());=0A=
         }=0A=
         reverse_iterator rend() { return reverse_iterator(begin()); }=0A=
         const_reverse_iterator rend() const {=0A=
             return const_reverse_iterator(begin());=0A=
         }=0A=
 =0A=
 =0A=
         reference operator[](size_type i) { return elems[i]; }=0A=
         const_reference operator[](size_type i) const { return elems[i]; =
 }=0A=
 =0A=
 =0A=
         reference at(size_type i) { rangecheck(i); return elems[i]; }=0A=
         const_reference at(size_type i) const { rangecheck(i); return =
 elems[i]; }=0A=
 =0A=
 =0A=
         reference front() { return elems[0]; }=0A=
         const_reference front() const { return elems[0]; }=0A=
         reference back() { return elems[N-1]; }=0A=
         const_reference back() const { return elems[N-1]; }=0A=
 =0A=
 =0A=
         static size_type size() { return N; }=0A=
         static bool empty() { return false; }=0A=
         static size_type max_size() { return N; }=0A=
         enum { static_size =3D N };=0A=
 =0A=
 =0A=
         void swap (array<T,N>& y) {=0A=
             std::swap_ranges(begin(),end(),y.begin());=0A=
         }=0A=
 =0A=
 =0A=
         const T* data() const { return elems; }=0A=
 =0A=
 =0A=
         template <typename T2>=0A=
         array<T,N>& operator=3D (const array<T2,N>& rhs) {=0A=
             std::copy(rhs.begin(),rhs.end(), begin());=0A=
             return *this;=0A=
         }=0A=
 =0A=
 =0A=
         void assign (const T& value)=0A=
         {=0A=
             std::fill_n(begin(),size(),value);=0A=
         }=0A=
 =0A=
 =0A=
       private:=0A=
 =0A=
 =0A=
         static void rangecheck (size_type i) {=0A=
             if (i >=3D size()) { throw std::range_error("array"); }=0A=
         }=0A=
 =0A=
     };=0A=
 =0A=
 =0A=
     template<class T, std::size_t N>=0A=
     bool operator=3D=3D (const array<T,N>& x, const array<T,N>& y) {=0A=
         return std::equal(x.begin(), x.end(), y.begin());=0A=
     }=0A=
     template<class T, std::size_t N>=0A=
     bool operator< (const array<T,N>& x, const array<T,N>& y) {=0A=
         return =
 std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());=0A=
     }=0A=
     template<class T, std::size_t N>=0A=
     bool operator!=3D (const array<T,N>& x, const array<T,N>& y) {=0A=
         return !(x=3D=3Dy);=0A=
     }=0A=
     template<class T, std::size_t N>=0A=
     bool operator> (const array<T,N>& x, const array<T,N>& y) {=0A=
         return y<x;=0A=
     }=0A=
     template<class T, std::size_t N>=0A=
     bool operator<=3D (const array<T,N>& x, const array<T,N>& y) {=0A=
         return !(y<x);=0A=
     }=0A=
     template<class T, std::size_t N>=0A=
     bool operator>=3D (const array<T,N>& x, const array<T,N>& y) {=0A=
         return !(x<y);=0A=
     }=0A=
 =0A=
 =0A=
     template<class T, std::size_t N>=0A=
     inline void swap (array<T,N>& x, array<T,N>& y) {=0A=
         x.swap(y);=0A=
     }=0A=
 =0A=
 }=0A=
 # 11 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Point=0A=
 {=0A=
 public:=0A=
 =0A=
     Point();=0A=
     Point(const N & x, const N & y, const N & z);=0A=
     Point(const Point & other);=0A=
 =0A=
     template <typename R>=0A=
     Point(const CGAL::Point_3<R> & point);=0A=
 =0A=
     template <typename R>=0A=
     operator CGAL::Point_3<R>();=0A=
 =0A=
     ~Point();=0A=
 =0A=
     Point & operator=3D(const Point & rhs);=0A=
 =0A=
     bool operator=3D=3D(const Point & rhs) const;=0A=
     bool operator!=3D(const Point & rhs) const;=0A=
     bool operator< (const Point & rhs) const;=0A=
     bool operator<=3D(const Point & rhs) const;=0A=
     bool operator> (const Point & rhs) const;=0A=
     bool operator>=3D(const Point & rhs) const;=0A=
 =0A=
     const N & x() const;=0A=
     const N & y() const;=0A=
     const N & z() const;=0A=
 =0A=
     const N & operator[](UInt c) const;=0A=
 =0A=
     N & x();=0A=
     N & y();=0A=
     N & z();=0A=
 =0A=
     N & operator[](UInt c);=0A=
 =0A=
 private:=0A=
     boost::array<N, 3> m_components;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Point<N>::Point()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N>::Point(const N & x, const N & y, const N & z)=0A=
 {=0A=
    m_components[0] =3D x;=0A=
    m_components[1] =3D y;=0A=
    m_components[2] =3D z;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N>::Point(const Point & other) :=0A=
    m_components(other.m_components)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 template <typename R>=0A=
 Point<N>::Point(const CGAL::Point_3<R> & point)=0A=
 {=0A=
    m_components[0] =3D point.x();=0A=
    m_components[1] =3D point.y();=0A=
    m_components[2] =3D point.z();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 template <typename R>=0A=
 Point<N>::operator CGAL::Point_3<R>()=0A=
 {=0A=
    return CGAL::Point_3<R>( m_components[0], m_components[1], =
 m_components[2] );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N>::~Point()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Point<N>::operator=3D(const Point<N> & rhs)=0A=
 {=0A=
    if(this !=3D &rhs)=0A=
    {=0A=
        m_components =3D rhs.m_components;=0A=
    }=0A=
    return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator=3D=3D(const Point & rhs) const=0A=
 {=0A=
     return ( m_components =3D=3D rhs.m_components ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator!=3D(const Point & rhs) const=0A=
 {=0A=
     return ( m_components !=3D rhs.m_components ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator<(const Point & rhs) const=0A=
 {=0A=
     return ( m_components < rhs.m_components ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator<=3D(const Point & rhs) const=0A=
 {=0A=
     return ( m_components <=3D rhs.m_components );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator>(const Point & rhs) const=0A=
 {=0A=
     return ( m_components > rhs.m_components );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Point<N>::operator>=3D(const Point & rhs) const=0A=
 {=0A=
     return ( m_components <=3D rhs.m_components );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Point<N>::x() const=0A=
 {=0A=
     return m_components[0];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Point<N>::y() const=0A=
 {=0A=
     return m_components[1];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Point<N>::z() const=0A=
 {=0A=
     return m_components[2];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Point<N>::operator[](UInt c) const=0A=
 {=0A=
     (static_cast<void> ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c =
 >=3D 0 && c <=3D 2", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h", 165, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return m_components[c];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 N & Point<N>::x() { return m_components[0]; }=0A=
 =0A=
 template <typename N>=0A=
 N & Point<N>::y() { return m_components[1]; }=0A=
 =0A=
 template <typename N>=0A=
 N & Point<N>::z() { return m_components[2]; }=0A=
 =0A=
 =0A=
 template <typename N>=0A=
 N & Point<N>::operator[](UInt c)=0A=
 {=0A=
     (static_cast<void> ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c =
 >=3D 0 && c <=3D 2", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h", 182, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return m_components[c];=0A=
 }=0A=
 # 5 "main.cxx" 2=0A=
 # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h" 1=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
 # 65 "/usr/include/assert.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern void __assert_fail (__const char *__assertion, __const char =
 *__file,=0A=
                            unsigned int __line, __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 extern void __assert_perror_fail (int __errnum, __const char *__file,=0A=
                                   unsigned int __line,=0A=
                                   __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __assert (const char *__assertion, const char *__file, int =
 __line)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 }=0A=
 # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h" 2=0A=
 # 16 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h"=0A=
 template <typename N>=0A=
 class Edge=0A=
 {=0A=
 public:=0A=
 =0A=
     Edge();=0A=
     Edge(const Point<N> & source, const Point<N> & target);=0A=
     Edge(const Edge & other);=0A=
 =0A=
     template <typename R>=0A=
     Edge(const CGAL::Segment_3<R> & segment);=0A=
 =0A=
     template <typename R>=0A=
     operator CGAL::Segment_3<R>();=0A=
 =0A=
     ~Edge();=0A=
 =0A=
     Edge & operator=3D(const Edge & rhs);=0A=
 =0A=
     bool operator=3D=3D(const Edge & rhs) const;=0A=
     bool operator!=3D(const Edge & rhs) const;=0A=
     bool operator< (const Edge & rhs) const;=0A=
     bool operator<=3D(const Edge & rhs) const;=0A=
     bool operator> (const Edge & rhs) const;=0A=
     bool operator>=3D(const Edge & rhs) const;=0A=
 =0A=
     const Point<N> & source() const;=0A=
     const Point<N> & target() const;=0A=
     const Point<N> & operator[](UInt c) const;=0A=
 =0A=
     Point<N> & source();=0A=
     Point<N> & target();=0A=
     Point<N> & operator[](UInt c);=0A=
 =0A=
 =0A=
 private:=0A=
     boost::array<Point<N>, 2> m_points;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Edge<N>::Edge()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N>::Edge(const Point<N> & source, const Point<N> & target)=0A=
 {=0A=
    m_points[0] =3D source;=0A=
    m_points[1] =3D target;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N>::Edge(const Edge & other) :=0A=
    m_points(other.m_points)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 template <typename R>=0A=
 Edge<N>::Edge(const CGAL::Segment_3<R> & segment)=0A=
 {=0A=
    m_points[0] =3D segment.source();=0A=
    m_points[1] =3D segment.target();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 template <typename R>=0A=
 Edge<N>::operator CGAL::Segment_3<R>()=0A=
 {=0A=
    return CGAL::Segment_3<R>( m_points[0], m_points[1] );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N>::~Edge()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N> & Edge<N>::operator=3D(const Edge & rhs)=0A=
 {=0A=
    if(this !=3D &rhs)=0A=
    {=0A=
        m_points =3D rhs.m_points;=0A=
    }=0A=
    return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator=3D=3D(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points =3D=3D rhs.m_points ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator!=3D(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points !=3D rhs.m_points ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator<(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points < rhs.m_points ) ;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator<=3D(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points <=3D rhs.m_points );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator>(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points > rhs.m_points );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Edge<N>::operator>=3D(const Edge & rhs) const=0A=
 {=0A=
     return ( m_points <=3D rhs.m_points );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Edge<N>::source() const=0A=
 {=0A=
     return m_points[0];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Edge<N>::target() const=0A=
 {=0A=
     return m_points[1];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Edge<N>::operator[](UInt c) const=0A=
 {=0A=
     (static_cast<void> ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail =
 ("c =3D=3D 0 || c =3D=3D 1", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h", 158, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return m_points[c];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Edge<N>::source()=0A=
 {=0A=
     return m_points[0];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Edge<N>::target()=0A=
 {=0A=
     return m_points[1];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Edge<N>::operator[](UInt c)=0A=
 {=0A=
     (static_cast<void> ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail =
 ("c =3D=3D 0 || c =3D=3D 1", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h", 177, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return m_points[c];=0A=
 }=0A=
 # 6 "main.cxx" 2=0A=
 # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 1=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
 # 65 "/usr/include/assert.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern void __assert_fail (__const char *__assertion, __const char =
 *__file,=0A=
                            unsigned int __line, __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 extern void __assert_perror_fail (int __errnum, __const char *__file,=0A=
                                   unsigned int __line,=0A=
                                   __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __assert (const char *__assertion, const char *__file, int =
 __line)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 }=0A=
 # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 2=0A=
 # 13 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp" 1=0A=
 # 18 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/check=
 ed_delete.hpp" 1=0A=
 # 19 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/check=
 ed_delete.hpp"=0A=
 namespace boost=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 template< typename T > inline void checked_delete(T * x)=0A=
 {=0A=
     typedef char type_must_be_complete[sizeof(T)];=0A=
     delete x;=0A=
 }=0A=
 =0A=
 template< typename T > inline void checked_array_delete(T * x)=0A=
 {=0A=
     typedef char type_must_be_complete[sizeof(T)];=0A=
     delete [] x;=0A=
 }=0A=
 =0A=
 template<class T> struct checked_deleter=0A=
 {=0A=
     typedef void result_type;=0A=
     typedef T * argument_type;=0A=
 =0A=
     void operator()(T * x)=0A=
     {=0A=
         checked_delete(x);=0A=
     }=0A=
 };=0A=
 =0A=
 template<class T> struct checked_array_deleter=0A=
 {=0A=
     typedef void result_type;=0A=
     typedef T * argument_type;=0A=
 =0A=
     void operator()(T * x)=0A=
     {=0A=
         checked_array_delete(x);=0A=
     }=0A=
 };=0A=
 =0A=
 }=0A=
 # 19 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/base_from_member.hpp" 1=0A=
 # 14 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/base_from_member.hpp"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty_fwd.hpp" 1=0A=
 # 15 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty_fwd.hpp"=0A=
 namespace boost=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template < typename MemberType, int UniqueID =3D 0 >=0A=
     class base_from_member;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class noncopyable;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 # 15 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/base_from_member.hpp" 2=0A=
 =0A=
 =0A=
 namespace boost=0A=
 {=0A=
 # 29 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/base_from_member.hpp"=0A=
 template < typename MemberType, int UniqueID >=0A=
 class base_from_member=0A=
 {=0A=
 protected:=0A=
     MemberType member;=0A=
 =0A=
     explicit base_from_member()=0A=
         : member()=0A=
         {}=0A=
 =0A=
     template< typename T1 >=0A=
     explicit base_from_member( T1 x1 )=0A=
         : member( x1 )=0A=
         {}=0A=
 =0A=
     template< typename T1, typename T2 >=0A=
     base_from_member( T1 x1, T2 x2 )=0A=
         : member( x1, x2 )=0A=
         {}=0A=
 =0A=
     template< typename T1, typename T2, typename T3 >=0A=
     base_from_member( T1 x1, T2 x2, T3 x3 )=0A=
         : member( x1, x2, x3 )=0A=
         {}=0A=
 =0A=
 };=0A=
 =0A=
 }=0A=
 # 20 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/addressof.hpp" 1=0A=
 # 19 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty/addressof.hpp"=0A=
 namespace boost {=0A=
 =0A=
 =0A=
 =0A=
 template <typename T> T* addressof(T& v)=0A=
 {=0A=
   return reinterpret_cast<T*>(=0A=
        &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));=0A=
 }=0A=
 =0A=
 }=0A=
 # 21 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp" 2=0A=
 =0A=
 namespace boost=0A=
 {=0A=
 # 35 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp"=0A=
     template <class T>=0A=
     inline T next(T x) { return ++x; }=0A=
 =0A=
     template <class T>=0A=
     inline T prior(T x) { return --x; }=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili=
 ty.hpp"=0A=
     class noncopyable=0A=
     {=0A=
     protected:=0A=
         noncopyable(){}=0A=
         ~noncopyable(){}=0A=
     private:=0A=
         noncopyable( const noncopyable& );=0A=
         const noncopyable& operator=3D( const noncopyable& );=0A=
     };=0A=
 =0A=
 =0A=
 }=0A=
 # 14 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Face=0A=
 {=0A=
 public:=0A=
 =0A=
     class VertexCirculator;=0A=
     friend class VertexCirculator;=0A=
 =0A=
     class EdgeReference;=0A=
     friend class EdgeReference;=0A=
 =0A=
     class EdgeCirculator;=0A=
     friend class EdgeCirculator;=0A=
 =0A=
     Face();=0A=
 =0A=
     Face(size_t n_vertices);=0A=
 =0A=
     template <typename ForwardIterator>=0A=
     Face(ForwardIterator first, ForwardIterator last);=0A=
 =0A=
     template <typename ForwardCirculator>=0A=
     Face(ForwardCirculator first);=0A=
 =0A=
     Face(const Face & other);=0A=
 =0A=
 =0A=
 =0A=
     ~Face();=0A=
 =0A=
     Face & operator=3D(const Face & rhs);=0A=
 =0A=
     bool operator=3D=3D(const Face & rhs) const;=0A=
     bool operator!=3D(const Face & rhs) const;=0A=
     bool operator< (const Face & rhs) const;=0A=
 =0A=
 =0A=
     VertexCirculator vertex_begin();=0A=
 =0A=
     const Point<N> & operator[](UInt c) const;=0A=
     Point<N> & operator[](UInt c);=0A=
 =0A=
 =0A=
     EdgeCirculator edge_begin();=0A=
 =0A=
     size_t size() const;=0A=
 =0A=
 private:=0A=
 =0A=
     std::vector<Point<N> > m_points;=0A=
 =0A=
 };=0A=
 =0A=
 template <typename N>=0A=
 class Face<N>::VertexCirculator=0A=
 {=0A=
 public:=0A=
     VertexCirculator();=0A=
     VertexCirculator(typename std::vector<Point<N> >::const_iterator p, =
 Face<N> * outer_this);=0A=
     VertexCirculator(const VertexCirculator & other);=0A=
 =0A=
     ~VertexCirculator();=0A=
 =0A=
     VertexCirculator & operator=3D(const VertexCirculator & rhs);=0A=
 =0A=
     Point<N> & operator*();=0A=
 =0A=
     VertexCirculator & operator++();=0A=
 =0A=
     bool operator=3D=3D(Int null) const;=0A=
     bool operator=3D=3D(const VertexCirculator & rhs) const;=0A=
     bool operator!=3D(Int null) const;=0A=
     bool operator!=3D(const VertexCirculator & rhs) const;=0A=
 =0A=
 =0A=
 =0A=
 private:=0A=
     Face<N> * const m_outer_this;=0A=
     typename std::vector<Point<N> >::iterator m_p;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Face<N>::EdgeReference=0A=
 {=0A=
 public:=0A=
     friend class Face<N>;=0A=
 =0A=
     EdgeReference(VertexCirculator p, Face<N> * outer_this);=0A=
     EdgeReference(const EdgeReference & other);=0A=
 =0A=
     ~EdgeReference();=0A=
 =0A=
     operator Edge<N>() const;=0A=
     EdgeReference & operator=3D(const Edge<N> & rhs);=0A=
 =0A=
     bool operator=3D=3D(const Edge<N> & rhs) const;=0A=
     bool operator!=3D(const Edge<N> & rhs) const;=0A=
     bool operator< (const Edge<N> & rhs) const;=0A=
 =0A=
     const Point<N> & source() const;=0A=
     const Point<N> & target() const;=0A=
     const Point<N> & operator[](UInt c) const;=0A=
 =0A=
     Point<N> & source();=0A=
     Point<N> & target();=0A=
     Point<N> & operator[](UInt c);=0A=
 private:=0A=
     EdgeReference & operator=3D(const EdgeReference & rhs);=0A=
 =0A=
     VertexCirculator m_p;=0A=
 =0A=
     Face<N> * const m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Face<N>::EdgeCirculator=0A=
 {=0A=
 public:=0A=
     friend class Face<N>;=0A=
 =0A=
     EdgeCirculator();=0A=
     EdgeCirculator(VertexCirculator p, Face<N> * outer_this);=0A=
     EdgeCirculator(const EdgeCirculator & other);=0A=
 =0A=
     ~EdgeCirculator();=0A=
 =0A=
     EdgeCirculator & operator=3D(const EdgeCirculator & rhs);=0A=
 =0A=
     EdgeReference operator*();=0A=
     Edge<N> operator*() const;=0A=
 =0A=
     EdgeCirculator & operator++();=0A=
 =0A=
     bool operator=3D=3D(Int null) const;=0A=
     bool operator=3D=3D(const EdgeCirculator & rhs) const;=0A=
     bool operator!=3D(Int null) const;=0A=
     bool operator!=3D(const EdgeCirculator & rhs) const;=0A=
 =0A=
 =0A=
 =0A=
 private:=0A=
     VertexCirculator m_p;=0A=
 =0A=
     Face<N> * const m_outer_this;=0A=
 };=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::Face()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::Face(size_t n_vertices) :=0A=
     m_points(n_vertices)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 template <typename ForwardIterator>=0A=
 Face<N>::Face(ForwardIterator first, ForwardIterator last)=0A=
 {=0A=
     std::copy(first, last, std::back_inserter(m_points) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::Face(const Face & other) :=0A=
     m_points(other.m_points)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::~Face()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N> & Face<N>::operator=3D(const Face & rhs)=0A=
 {=0A=
     if(this !=3D &rhs)=0A=
     {=0A=
         m_points =3D rhs.m_points;=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::operator=3D=3D(const Face & rhs) const=0A=
 {=0A=
     if(this =3D=3D &rhs)=0A=
     {=0A=
         return true;=0A=
     }=0A=
     return (m_points =3D=3D rhs.m_points);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::operator!=3D(const Face & rhs) const=0A=
 {=0A=
     if(this =3D=3D &rhs)=0A=
     {=0A=
         return false;=0A=
     }=0A=
     return (m_points !=3D rhs.m_points);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::operator< (const Face & rhs) const=0A=
 {=0A=
     return (m_points < rhs.m_points);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::VertexCirculator Face<N>::vertex_begin()=0A=
 {=0A=
     return VertexCirculator( m_points.begin(), this );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Face<N>::operator[](UInt c) const=0A=
 {=0A=
     return m_points[c];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Face<N>::operator[](UInt c)=0A=
 {=0A=
     return m_points[c];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::EdgeCirculator Face<N>::edge_begin()=0A=
 {=0A=
     return EdgeCirculator( m_points.begin(), this );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Face<N>::VertexCirculator::VertexCirculator() :=0A=
     m_outer_this(0)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::VertexCirculator::VertexCirculator(typename =
 std::vector<Point<N> >::const_iterator p, Face<N> * outer_this) :=0A=
     m_outer_this(outer_this),=0A=
     m_p(p)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::VertexCirculator::VertexCirculator(const VertexCirculator & =
 rhs) :=0A=
     m_outer_this(other.m_outer_this),=0A=
     m_p(other.m_p)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::VertexCirculator::~VertexCirculator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::VertexCirculator & =
 Face<N>::VertexCirculator::operator=3D(const VertexCirculator & rhs)=0A=
 {=0A=
     if(this !=3D &rhs)=0A=
     {=0A=
         m_outer_this =3D rhs.m_outer_this;=0A=
         m_p =3D rhs.m_p;=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Face<N>::VertexCirculator::operator*()=0A=
 {=0A=
     return *m_p;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::VertexCirculator & =
 Face<N>::VertexCirculator::operator++()=0A=
 {=0A=
     ++m_p;=0A=
     if( m_outer_this->m_points.end() =3D=3D m_p )=0A=
     {=0A=
         m_p =3D m_outer_this->m_points.begin();=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::VertexCirculator::operator=3D=3D(Int null) const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", =
 320, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return m_outer_this->m_points.empty();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::VertexCirculator::operator=3D=3D(const VertexCirculator & =
 rhs) const=0A=
 {=0A=
 =0A=
     return ( (m_outer_this =3D=3D rhs.m_outer_this) && (m_p =3D=3D =
 rhs.m_p) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::VertexCirculator::operator!=3D(Int null) const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", =
 335, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return !(m_outer_this->m_points.empty);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::VertexCirculator::operator!=3D(const VertexCirculator & =
 rhs) const=0A=
 {=0A=
 =0A=
     return ( (m_outer_this !=3D rhs.m_outer_this) || (m_p !=3D rhs.m_p) =
 );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeReference::EdgeReference(VertexCirculator p, Face<N> * =
 outer_this) :=0A=
     m_p(p),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeReference::EdgeReference(const EdgeReference & other) :=0A=
     m_p(other.m_p),=0A=
     m_outer_this(m_outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeReference::~EdgeReference()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeReference::operator Edge<N>() const=0A=
 {=0A=
     return Edge<N>(*m_p, *boost::next(m_p) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::EdgeReference & =
 Face<N>::EdgeReference::operator=3D(const Edge<N> & rhs)=0A=
 {=0A=
     *m_p =3D rhs.source;=0A=
     *boost::next(m_p) =3D rhs.target;=0A=
 =0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeReference::operator=3D=3D(const Edge<N> & rhs) const=0A=
 {=0A=
     return ( ( *m_p =3D=3D rhs.source() )=0A=
           && ( *boost::next(m_p) =3D=3D rhs.target() ) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeReference::operator!=3D(const Edge<N> & rhs) const=0A=
 {=0A=
     return ( ( *m_p !=3D rhs.source() )=0A=
           || ( *boost::next(m_p) !=3D rhs.target() ) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeReference::operator< (const Edge<N> & rhs) const=0A=
 {=0A=
     if( (*m_p) < rhs.source )=0A=
     {=0A=
         return true;=0A=
     }=0A=
     else if( (*m_p) =3D=3D rhs.source )=0A=
     {=0A=
         if( ( *boost::next(m_p) ) < rhs.target )=0A=
         {=0A=
             return true;=0A=
         }=0A=
     }=0A=
     return false;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Face<N>::EdgeReference::source() const=0A=
 {=0A=
     return *m_p;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Face<N>::EdgeReference::target() const=0A=
 {=0A=
     return *boost::next(m_p);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const Point<N> & Face<N>::EdgeReference::operator[](UInt c) const=0A=
 {=0A=
     (static_cast<void> ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail =
 ("c =3D=3D 0 || c =3D=3D 1", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", 429, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     if(0 =3D=3D c)=0A=
     {=0A=
         return *m_p;=0A=
     }=0A=
     else=0A=
     {=0A=
         return *boost::next(m_p);=0A=
     }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Face<N>::EdgeReference::source()=0A=
 {=0A=
     return *m_p;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Face<N>::EdgeReference::target()=0A=
 {=0A=
     return *boost::next(m_p);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> & Face<N>::EdgeReference::operator[](UInt c)=0A=
 {=0A=
     (static_cast<void> ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail =
 ("c =3D=3D 0 || c =3D=3D 1", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", 456, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     if(0 =3D=3D c)=0A=
     {=0A=
         return *m_p;=0A=
     }=0A=
     else=0A=
     {=0A=
         return *boost::next(m_p);=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeCirculator::EdgeCirculator() :=0A=
     m_outer_this(0)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeCirculator::EdgeCirculator(VertexCirculator p, Face<N> * =
 outer_this) :=0A=
     m_p(p),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeCirculator::EdgeCirculator(const EdgeCirculator & other) :=0A=
     m_p(other.m_p),=0A=
     m_outer_this(other.m_outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Face<N>::EdgeCirculator::~EdgeCirculator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::EdgeCirculator & =
 Face<N>::EdgeCirculator::operator=3D(const EdgeCirculator & rhs)=0A=
 {=0A=
     if(this !=3D &rhs)=0A=
     {=0A=
         m_p(rhs.m_p);=0A=
         m_outer_this(rhs.m_outer_this);=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::EdgeReference Face<N>::EdgeCirculator::operator*()=0A=
 {=0A=
     return EdgeReference(m_p, m_outer_this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N> Face<N>::EdgeCirculator::operator*() const=0A=
 {=0A=
     return Edge<N>( *m_p, *boost::next(m_p) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Face<N>::EdgeCirculator & Face<N>::EdgeCirculator::operator++()=0A=
 {=0A=
     ++m_p;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeCirculator::operator=3D=3D(Int null) const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", =
 527, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return m_outer_this->m_points.empty();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeCirculator::operator=3D=3D(const EdgeCirculator & rhs) =
 const=0A=
 {=0A=
     if(this =3D=3D &rhs)=0A=
     {=0A=
         return true;=0A=
     }=0A=
 =0A=
     return ( (m_p =3D=3D rhs.m_p) && (m_outer_this =3D=3D =
 rhs.m_outer_this) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeCirculator::operator!=3D(const EdgeCirculator & rhs) =
 const=0A=
 {=0A=
     if(this =3D=3D &rhs)=0A=
     {=0A=
         return false;=0A=
     }=0A=
     return ( (m_p !=3D rhs.m_p) || (m_outer_this !=3D rhs.m_outer_this) =
 );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Face<N>::EdgeCirculator::operator!=3D(Int null) const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", =
 556, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return !( m_outer_this->m_points.empty() );=0A=
 }=0A=
 # 7 "main.cxx" 2=0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h" 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 defs.h" 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 defs.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h" 1=0A=
 # 441 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 typedef unsigned char uchar;=0A=
 typedef unsigned short ushort;=0A=
 typedef unsigned uint;=0A=
 typedef unsigned long ulong;=0A=
 typedef char *pchar;=0A=
 typedef uchar *puchar;=0A=
 typedef const char *pcchar;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const bool FALSE =3D 0;=0A=
 const bool TRUE =3D !0;=0A=
 # 481 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 inline int qRound( double d )=0A=
 {=0A=
     return int( d >=3D 0.0 ? d + 0.5 : d - 0.5 );=0A=
 }=0A=
 # 493 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 typedef signed char INT8;=0A=
 typedef unsigned char UINT8;=0A=
 typedef short INT16;=0A=
 typedef unsigned short UINT16;=0A=
 typedef int INT32;=0A=
 typedef unsigned int UINT32;=0A=
 =0A=
 =0A=
 typedef signed char Q_INT8;=0A=
 typedef unsigned char Q_UINT8;=0A=
 typedef short Q_INT16;=0A=
 typedef unsigned short Q_UINT16;=0A=
 typedef int Q_INT32;=0A=
 typedef unsigned int Q_UINT32;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long Q_LONG;=0A=
 typedef unsigned long Q_ULONG;=0A=
 # 528 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 class QDataStream;=0A=
 # 559 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qconfig=
 .h" 1=0A=
 # 560 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmodule=
 s.h" 1=0A=
 # 565 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h" 2=0A=
 # 613 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qfeatur=
 es.h" 1=0A=
 # 614 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h" 2=0A=
 # 651 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
  const char *qVersion();=0A=
  bool qSysInfo( int *wordSize, bool *bigEndian );=0A=
 # 723 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
  void qDebug( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 =0A=
  void qWarning( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 =0A=
  void qFatal( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 =0A=
  void qSystemWarning( const char *, int code =3D -1 );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  void debug( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 =0A=
  void warning( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 =0A=
  void fatal( const char *, ... )=0A=
 =0A=
     __attribute__ ((format (printf, 1, 2)))=0A=
 =0A=
 ;=0A=
 # 789 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
  bool qt_check_pointer( bool c, const char *, int );=0A=
 # 805 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal=
 .h"=0A=
 enum QtMsgType { QtDebugMsg, QtWarningMsg, QtFatalMsg };=0A=
 =0A=
 typedef void (*QtMsgHandler)(QtMsgType, const char *);=0A=
  QtMsgHandler qInstallMsgHandler( QtMsgHandler );=0A=
 =0A=
 =0A=
 =0A=
 typedef QtMsgHandler msg_handler;=0A=
 =0A=
 =0A=
  void qSuppressObsoleteWarnings( bool =3D TRUE );=0A=
 =0A=
  void qObsolete( const char *obj, const char *oldfunc,=0A=
                    const char *newfunc );=0A=
  void qObsolete( const char *obj, const char *oldfunc );=0A=
  void qObsolete( const char *message );=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 defs.h" 2=0A=
 # 71 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 defs.h"=0A=
 struct QUObject;=0A=
 # 151 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 defs.h"=0A=
 class QObject;=0A=
 class QMetaObject;=0A=
 class QSignal;=0A=
 class QConnection;=0A=
 class QEvent;=0A=
 struct QMetaData;=0A=
 class QConnectionList;=0A=
 class QConnectionListIt;=0A=
 class QSignalVec;=0A=
 class QObjectList;=0A=
 class QObjectListIt;=0A=
 class QMemberDict;=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h" 1=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring=
 .h" 1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h" 1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr=
 ay.h" 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr=
 ay.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray=
 .h" 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qshared=
 .h" 1=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qshared=
 .h"=0A=
 struct QShared=0A=
 {=0A=
     QShared() { count =3D 1; }=0A=
     void ref() { count++; }=0A=
     bool deref() { return !--count; }=0A=
     uint count;=0A=
 };=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray=
 .h" 2=0A=
 =0A=
 =0A=
 =0A=
 class QGArray=0A=
 {=0A=
 friend class QBuffer;=0A=
 public:=0A=
 =0A=
     struct array_data : public QShared {=0A=
         array_data() { data=3D0; len=3D0; }=0A=
         char *data;=0A=
         uint len;=0A=
     };=0A=
     QGArray();=0A=
 protected:=0A=
     QGArray( int, int );=0A=
     QGArray( int size );=0A=
     QGArray( const QGArray &a );=0A=
     virtual ~QGArray();=0A=
 =0A=
     QGArray &operator=3D( const QGArray &a ) { return assign( a ); }=0A=
 =0A=
     virtual void detach() { duplicate(*this); }=0A=
 =0A=
     char *data() const { return shd->data; }=0A=
     uint nrefs() const { return shd->count; }=0A=
     uint size() const { return shd->len; }=0A=
     bool isEqual( const QGArray &a ) const;=0A=
 =0A=
     bool resize( uint newsize );=0A=
 =0A=
     bool fill( const char *d, int len, uint sz );=0A=
 =0A=
     QGArray &assign( const QGArray &a );=0A=
     QGArray &assign( const char *d, uint len );=0A=
     QGArray &duplicate( const QGArray &a );=0A=
     QGArray &duplicate( const char *d, uint len );=0A=
     void store( const char *d, uint len );=0A=
 =0A=
     array_data *sharedBlock() const { return shd; }=0A=
     void setSharedBlock( array_data *p ) { shd=3D(array_data*)p; }=0A=
 =0A=
     QGArray &setRawData( const char *d, uint len );=0A=
     void resetRawData( const char *d, uint len );=0A=
 =0A=
     int find( const char *d, uint index, uint sz ) const;=0A=
     int contains( const char *d, uint sz ) const;=0A=
 =0A=
     void sort( uint sz );=0A=
     int bsearch( const char *d, uint sz ) const;=0A=
 =0A=
     char *at( uint index ) const;=0A=
 =0A=
     bool setExpand( uint index, const char *d, uint sz );=0A=
 =0A=
 protected:=0A=
     virtual array_data *newData();=0A=
     virtual void deleteData( array_data *p );=0A=
 =0A=
 private:=0A=
     static void msg_index( uint );=0A=
     array_data *shd;=0A=
 };=0A=
 =0A=
 =0A=
 inline char *QGArray::at( uint index ) const=0A=
 {=0A=
 =0A=
     if ( index >=3D size() ) {=0A=
         msg_index( index );=0A=
         index =3D 0;=0A=
     }=0A=
 =0A=
     return &shd->data[index];=0A=
 }=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr=
 ay.h" 2=0A=
 =0A=
 =0A=
 =0A=
 template<class type> class QMemArray : public QGArray=0A=
 {=0A=
 public:=0A=
     typedef type* Iterator;=0A=
     typedef const type* ConstIterator;=0A=
     typedef type ValueType;=0A=
 =0A=
 protected:=0A=
     QMemArray( int, int ) : QGArray( 0, 0 ) {}=0A=
 =0A=
 public:=0A=
     QMemArray() {}=0A=
     QMemArray( int size ) : QGArray(size*sizeof(type)) {}=0A=
     QMemArray( const QMemArray<type> &a ) : QGArray(a) {}=0A=
    ~QMemArray() {}=0A=
     QMemArray<type> &operator=3D(const QMemArray<type> &a)=0A=
                                 { return =
 (QMemArray<type>&)QGArray::assign(a); }=0A=
     type *data() const { return (type *)QGArray::data(); }=0A=
     uint nrefs() const { return QGArray::nrefs(); }=0A=
     uint size() const { return QGArray::size()/sizeof(type); }=0A=
     uint count() const { return size(); }=0A=
     bool isEmpty() const { return QGArray::size() =3D=3D 0; }=0A=
     bool isNull() const { return QGArray::data() =3D=3D 0; }=0A=
     bool resize( uint size ) { return =
 QGArray::resize(size*sizeof(type)); }=0A=
     bool truncate( uint pos ) { return =
 QGArray::resize(pos*sizeof(type)); }=0A=
     bool fill( const type &d, int size =3D -1 )=0A=
         { return QGArray::fill((char*)&d,size,sizeof(type) ); }=0A=
     void detach() { QGArray::detach(); }=0A=
     QMemArray<type> copy() const=0A=
         { QMemArray<type> tmp; return tmp.duplicate(*this); }=0A=
     QMemArray<type>& assign( const QMemArray<type>& a )=0A=
         { return (QMemArray<type>&)QGArray::assign(a); }=0A=
     QMemArray<type>& assign( const type *a, uint n )=0A=
         { return =
 (QMemArray<type>&)QGArray::assign((char*)a,n*sizeof(type)); }=0A=
     QMemArray<type>& duplicate( const QMemArray<type>& a )=0A=
         { return (QMemArray<type>&)QGArray::duplicate(a); }=0A=
     QMemArray<type>& duplicate( const type *a, uint n )=0A=
         { return =
 (QMemArray<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); }=0A=
     QMemArray<type>& setRawData( const type *a, uint n )=0A=
         { return (QMemArray<type>&)QGArray::setRawData((char*)a,=0A=
                                                      n*sizeof(type)); }=0A=
     void resetRawData( const type *a, uint n )=0A=
         { QGArray::resetRawData((char*)a,n*sizeof(type)); }=0A=
     int find( const type &d, uint i=3D0 ) const=0A=
         { return QGArray::find((char*)&d,i,sizeof(type)); }=0A=
     int contains( const type &d ) const=0A=
         { return QGArray::contains((char*)&d,sizeof(type)); }=0A=
     void sort() { QGArray::sort(sizeof(type)); }=0A=
     int bsearch( const type &d ) const=0A=
         { return QGArray::bsearch((const char*)&d,sizeof(type)); }=0A=
     type& operator[]( int i ) const=0A=
         { return (type &)(*(type *)QGArray::at(i*sizeof(type))); }=0A=
     type& at( uint i ) const=0A=
         { return (type &)(*(type *)QGArray::at(i*sizeof(type))); }=0A=
          operator const type*() const { return (const type =
 *)QGArray::data(); }=0A=
     bool operator=3D=3D( const QMemArray<type> &a ) const { return =
 isEqual(a); }=0A=
     bool operator!=3D( const QMemArray<type> &a ) const { return =
 !isEqual(a); }=0A=
     Iterator begin() { return data(); }=0A=
     Iterator end() { return data() + size(); }=0A=
     ConstIterator begin() const { return data(); }=0A=
     ConstIterator end() const { return data() + size(); }=0A=
 };=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h" 2=0A=
 # 53 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h"=0A=
  void *qmemmove( void *dst, const void *src, uint len );=0A=
 =0A=
  char *qstrdup( const char * );=0A=
 =0A=
  inline uint qstrlen( const char *str )=0A=
 { return str ? (uint)strlen(str) : 0; }=0A=
 =0A=
  inline char *qstrcpy( char *dst, const char *src )=0A=
 { return src ? strcpy(dst, src) : 0; }=0A=
 =0A=
  char *qstrncpy( char *dst, const char *src, uint len );=0A=
 =0A=
  inline int qstrcmp( const char *str1, const char *str2 )=0A=
 {=0A=
     return ( str1 && str2 ) ? strcmp( str1, str2 )=0A=
                             : ( str1 ? 1 : ( str2 ? -1 : 0 ) );=0A=
 }=0A=
 =0A=
  inline int qstrncmp( const char *str1, const char *str2, uint len )=0A=
 {=0A=
     return ( str1 && str2 ) ? strncmp( str1, str2, len )=0A=
                             : ( str1 ? 1 : ( str2 ? -1 : 0 ) );=0A=
 }=0A=
 =0A=
  int qstricmp( const char *, const char * );=0A=
 =0A=
  int qstrnicmp( const char *, const char *, uint len );=0A=
 =0A=
 =0A=
  inline uint cstrlen( const char *str )=0A=
 { return (uint)strlen(str); }=0A=
 =0A=
  inline char *cstrcpy( char *dst, const char *src )=0A=
 { return strcpy(dst,src); }=0A=
 =0A=
  inline int cstrcmp( const char *str1, const char *str2 )=0A=
 { return strcmp(str1,str2); }=0A=
 =0A=
  inline int cstrncmp( const char *str1, const char *str2, uint len )=0A=
 { return strncmp(str1,str2,len); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  Q_UINT16 qChecksum( const char *s, uint len );=0A=
 # 120 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h"=0A=
 typedef QMemArray<char> QByteArray;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QByteArray & );=0A=
  QDataStream &operator>>( QDataStream &, QByteArray & );=0A=
 # 137 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin=
 g.h"=0A=
 class QRegExp;=0A=
 =0A=
 class QCString : public QByteArray=0A=
 {=0A=
 public:=0A=
     QCString() {}=0A=
     QCString( int size );=0A=
     QCString( const QCString &s ) : QByteArray( s ) {}=0A=
     QCString( const char *str );=0A=
     QCString( const char *str, uint maxlen );=0A=
     ~QCString();=0A=
 =0A=
     QCString &operator=3D( const QCString &s );=0A=
     QCString &operator=3D( const char *str );=0A=
 =0A=
     bool isNull() const;=0A=
     bool isEmpty() const;=0A=
     uint length() const;=0A=
     bool resize( uint newlen );=0A=
     bool truncate( uint pos );=0A=
     bool fill( char c, int len =3D -1 );=0A=
 =0A=
     QCString copy() const;=0A=
 =0A=
     QCString &sprintf( const char *format, ... );=0A=
 =0A=
     int find( char c, int index=3D0, bool cs=3DTRUE ) const;=0A=
     int find( const char *str, int index=3D0, bool cs=3DTRUE ) const;=0A=
 =0A=
     int find( const QRegExp &, int index=3D0 ) const;=0A=
 =0A=
     int findRev( char c, int index=3D-1, bool cs=3DTRUE) const;=0A=
     int findRev( const char *str, int index=3D-1, bool cs=3DTRUE) const;=0A=
 =0A=
     int findRev( const QRegExp &, int index=3D-1 ) const;=0A=
 =0A=
     int contains( char c, bool cs=3DTRUE ) const;=0A=
     int contains( const char *str, bool cs=3DTRUE ) const;=0A=
 =0A=
     int contains( const QRegExp & ) const;=0A=
 =0A=
     QCString left( uint len ) const;=0A=
     QCString right( uint len ) const;=0A=
     QCString mid( uint index, uint len=3D0xffffffff) const;=0A=
 =0A=
     QCString leftJustify( uint width, char fill=3D' ', bool =
 trunc=3DFALSE)const;=0A=
     QCString rightJustify( uint width, char fill=3D' ',bool =
 trunc=3DFALSE)const;=0A=
 =0A=
     QCString lower() const;=0A=
     QCString upper() const;=0A=
 =0A=
     QCString stripWhiteSpace() const;=0A=
     QCString simplifyWhiteSpace() const;=0A=
 =0A=
     QCString &insert( uint index, const char * );=0A=
     QCString &insert( uint index, char );=0A=
     QCString &append( const char * );=0A=
     QCString &prepend( const char * );=0A=
     QCString &remove( uint index, uint len );=0A=
     QCString &replace( uint index, uint len, const char * );=0A=
 =0A=
     QCString &replace( const QRegExp &, const char * );=0A=
 =0A=
     short toShort( bool *ok=3D0 ) const;=0A=
     ushort toUShort( bool *ok=3D0 ) const;=0A=
     int toInt( bool *ok=3D0 ) const;=0A=
     uint toUInt( bool *ok=3D0 ) const;=0A=
     long toLong( bool *ok=3D0 ) const;=0A=
     ulong toULong( bool *ok=3D0 ) const;=0A=
     float toFloat( bool *ok=3D0 ) const;=0A=
     double toDouble( bool *ok=3D0 ) const;=0A=
 =0A=
     QCString &setStr( const char *s );=0A=
     QCString &setNum( short );=0A=
     QCString &setNum( ushort );=0A=
     QCString &setNum( int );=0A=
     QCString &setNum( uint );=0A=
     QCString &setNum( long );=0A=
     QCString &setNum( ulong );=0A=
     QCString &setNum( float, char f=3D'g', int prec=3D6 );=0A=
     QCString &setNum( double, char f=3D'g', int prec=3D6 );=0A=
 =0A=
     bool setExpand( uint index, char c );=0A=
 =0A=
                 operator const char *() const;=0A=
     QCString &operator+=3D( const char *str );=0A=
     QCString &operator+=3D( char c );=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QCString & );=0A=
  QDataStream &operator>>( QDataStream &, QCString & );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QCString &QCString::operator=3D( const QCString &s )=0A=
 { return (QCString&)assign( s ); }=0A=
 =0A=
 inline QCString &QCString::operator=3D( const char *str )=0A=
 { return (QCString&)duplicate( str, qstrlen(str)+1 ); }=0A=
 =0A=
 inline bool QCString::isNull() const=0A=
 { return data() =3D=3D 0; }=0A=
 =0A=
 inline bool QCString::isEmpty() const=0A=
 { return data() =3D=3D 0 || *data() =3D=3D '\0'; }=0A=
 =0A=
 inline uint QCString::length() const=0A=
 { return qstrlen( data() ); }=0A=
 =0A=
 inline bool QCString::truncate( uint pos )=0A=
 { return resize(pos+1); }=0A=
 =0A=
 inline QCString QCString::copy() const=0A=
 { return QCString( data() ); }=0A=
 =0A=
 inline QCString &QCString::prepend( const char *s )=0A=
 { return insert(0,s); }=0A=
 =0A=
 inline QCString &QCString::append( const char *s )=0A=
 { return operator+=3D(s); }=0A=
 =0A=
 inline QCString &QCString::setNum( short n )=0A=
 { return setNum((long)n); }=0A=
 =0A=
 inline QCString &QCString::setNum( ushort n )=0A=
 { return setNum((ulong)n); }=0A=
 =0A=
 inline QCString &QCString::setNum( int n )=0A=
 { return setNum((long)n); }=0A=
 =0A=
 inline QCString &QCString::setNum( uint n )=0A=
 { return setNum((ulong)n); }=0A=
 =0A=
 inline QCString &QCString::setNum( float n, char f, int prec )=0A=
 { return setNum((double)n,f,prec); }=0A=
 =0A=
 inline QCString::operator const char *() const=0A=
 { return (const char *)data(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  inline bool operator=3D=3D( const QCString &s1, const QCString &s2 )=0A=
 { return qstrcmp(s1.data(),s2.data()) =3D=3D 0; }=0A=
 =0A=
  inline bool operator=3D=3D( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) =3D=3D 0; }=0A=
 =0A=
  inline bool operator=3D=3D( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) =3D=3D 0; }=0A=
 =0A=
  inline bool operator!=3D( const QCString &s1, const QCString &s2 )=0A=
 { return qstrcmp(s1.data(),s2.data()) !=3D 0; }=0A=
 =0A=
  inline bool operator!=3D( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) !=3D 0; }=0A=
 =0A=
  inline bool operator!=3D( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) !=3D 0; }=0A=
 =0A=
  inline bool operator<( const QCString &s1, const QCString& s2 )=0A=
 { return qstrcmp(s1.data(),s2.data()) < 0; }=0A=
 =0A=
  inline bool operator<( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) < 0; }=0A=
 =0A=
  inline bool operator<( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) < 0; }=0A=
 =0A=
  inline bool operator<=3D( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) <=3D 0; }=0A=
 =0A=
  inline bool operator<=3D( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) <=3D 0; }=0A=
 =0A=
  inline bool operator>( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) > 0; }=0A=
 =0A=
  inline bool operator>( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) > 0; }=0A=
 =0A=
  inline bool operator>=3D( const QCString &s1, const char *s2 )=0A=
 { return qstrcmp(s1.data(),s2) >=3D 0; }=0A=
 =0A=
  inline bool operator>=3D( const char *s1, const QCString &s2 )=0A=
 { return qstrcmp(s1,s2.data()) >=3D 0; }=0A=
 =0A=
  inline const QCString operator+( const QCString &s1, const QCString &s2 =
 )=0A=
 {=0A=
     QCString tmp( s1.data() );=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QCString operator+( const QCString &s1, const char *s2 )=0A=
 {=0A=
     QCString tmp( s1.data() );=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QCString operator+( const char *s1, const QCString &s2 )=0A=
 {=0A=
     QCString tmp( s1 );=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QCString operator+( const QCString &s1, char c2 )=0A=
 {=0A=
     QCString tmp( s1.data() );=0A=
     tmp +=3D c2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QCString operator+( char c1, const QCString &s2 )=0A=
 {=0A=
     QCString tmp;=0A=
     tmp +=3D c1;=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring=
 .h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QRegExp;=0A=
 class QString;=0A=
 class QCharRef;=0A=
 =0A=
 class QChar {=0A=
 public:=0A=
     QChar();=0A=
     QChar( char c );=0A=
     QChar( uchar c );=0A=
     QChar( uchar c, uchar r );=0A=
     QChar( const QChar& c );=0A=
     QChar( ushort rc );=0A=
     QChar( short rc );=0A=
     QChar( uint rc );=0A=
     QChar( int rc );=0A=
 =0A=
     static const QChar null;=0A=
     static const QChar replacement;=0A=
     static const QChar byteOrderMark;=0A=
     static const QChar byteOrderSwapped;=0A=
     static const QChar nbsp;=0A=
 =0A=
 =0A=
 =0A=
     enum Category=0A=
     {=0A=
         NoCategory,=0A=
 =0A=
         Mark_NonSpacing,=0A=
         Mark_SpacingCombining,=0A=
         Mark_Enclosing,=0A=
 =0A=
         Number_DecimalDigit,=0A=
         Number_Letter,=0A=
         Number_Other,=0A=
 =0A=
         Separator_Space,=0A=
         Separator_Line,=0A=
         Separator_Paragraph,=0A=
 =0A=
         Other_Control,=0A=
         Other_Format,=0A=
         Other_Surrogate,=0A=
         Other_PrivateUse,=0A=
         Other_NotAssigned,=0A=
 =0A=
         Letter_Uppercase,=0A=
         Letter_Lowercase,=0A=
         Letter_Titlecase,=0A=
         Letter_Modifier,=0A=
         Letter_Other,=0A=
 =0A=
         Punctuation_Connector,=0A=
         Punctuation_Dash,=0A=
         Punctuation_Dask =3D Punctuation_Dash,=0A=
         Punctuation_Open,=0A=
         Punctuation_Close,=0A=
         Punctuation_InitialQuote,=0A=
         Punctuation_FinalQuote,=0A=
         Punctuation_Other,=0A=
 =0A=
         Symbol_Math,=0A=
         Symbol_Currency,=0A=
         Symbol_Modifier,=0A=
         Symbol_Other=0A=
     };=0A=
 =0A=
     enum Direction=0A=
     {=0A=
         DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, =
 DirWS, DirON,=0A=
         DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN=0A=
     };=0A=
 =0A=
     enum Decomposition=0A=
     {=0A=
         Single, Canonical, Font, NoBreak, Initial, Medial,=0A=
         Final, Isolated, Circle, Super, Sub, Vertical,=0A=
         Wide, Narrow, Small, Square, Compat, Fraction=0A=
     };=0A=
 =0A=
     enum Joining=0A=
     {=0A=
         OtherJoining, Dual, Right, Center=0A=
     };=0A=
 =0A=
     enum CombiningClass=0A=
     {=0A=
         Combining_BelowLeftAttached =3D 200,=0A=
         Combining_BelowAttached =3D 202,=0A=
         Combining_BelowRightAttached =3D 204,=0A=
         Combining_LeftAttached =3D 208,=0A=
         Combining_RightAttached =3D 210,=0A=
         Combining_AboveLeftAttached =3D 212,=0A=
         Combining_AboveAttached =3D 214,=0A=
         Combining_AboveRightAttached =3D 216,=0A=
 =0A=
         Combining_BelowLeft =3D 218,=0A=
         Combining_Below =3D 220,=0A=
         Combining_BelowRight =3D 222,=0A=
         Combining_Left =3D 224,=0A=
         Combining_Right =3D 226,=0A=
         Combining_AboveLeft =3D 228,=0A=
         Combining_Above =3D 230,=0A=
         Combining_AboveRight =3D 232,=0A=
 =0A=
         Combining_DoubleBelow =3D 233,=0A=
         Combining_DoubleAbove =3D 234,=0A=
         Combining_IotaSubscript =3D 240=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     int digitValue() const;=0A=
     QChar lower() const;=0A=
     QChar upper() const;=0A=
 =0A=
     Category category() const;=0A=
     Direction direction() const;=0A=
     Joining joining() const;=0A=
     bool mirrored() const;=0A=
     QChar mirroredChar() const;=0A=
     const QString &decomposition() const;=0A=
     Decomposition decompositionTag() const;=0A=
     unsigned char combiningClass() const;=0A=
 =0A=
     char latin1() const { return ucs > 0xff ? 0 : (char) ucs; }=0A=
     ushort unicode() const { return ucs; }=0A=
     ushort &unicode() { return ucs; }=0A=
 =0A=
 =0A=
     operator char() const { return latin1(); }=0A=
 =0A=
 =0A=
     bool isNull() const { return unicode()=3D=3D0; }=0A=
     bool isPrint() const;=0A=
     bool isPunct() const;=0A=
     bool isSpace() const;=0A=
     bool isMark() const;=0A=
     bool isLetter() const;=0A=
     bool isNumber() const;=0A=
     bool isLetterOrNumber() const;=0A=
     bool isDigit() const;=0A=
     bool isSymbol() const;=0A=
 =0A=
     uchar cell() const { return ((uchar) ucs & 0xff); }=0A=
     uchar row() const { return ((uchar) (ucs>>8)&0xff); }=0A=
     void setCell( uchar cell ) { ucs =3D (ucs & 0xff00) + cell; }=0A=
     void setRow( uchar row ) { ucs =3D (((ushort) row)<<8) + (ucs&0xff); =
 }=0A=
 =0A=
 =0A=
     static bool networkOrdered() { return FALSE; }=0A=
 =0A=
 =0A=
     friend inline bool operator=3D=3D( char ch, QChar c );=0A=
     friend inline bool operator=3D=3D( QChar c, char ch );=0A=
     friend inline bool operator=3D=3D( QChar c1, QChar c2 );=0A=
     friend inline bool operator!=3D( QChar c1, QChar c2 );=0A=
     friend inline bool operator!=3D( char ch, QChar c );=0A=
     friend inline bool operator!=3D( QChar c, char ch );=0A=
     friend inline bool operator<=3D( QChar c, char ch );=0A=
     friend inline bool operator<=3D( char ch, QChar c );=0A=
     friend inline bool operator<=3D( QChar c1, QChar c2 );=0A=
 =0A=
 private:=0A=
     ushort ucs;=0A=
 =0A=
 =0A=
 =0A=
 } ;=0A=
 =0A=
 inline QChar::QChar()=0A=
 {=0A=
     ucs =3D 0;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( char c )=0A=
 {=0A=
     ucs =3D (uchar)c;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( uchar c )=0A=
 {=0A=
     ucs =3D c;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( uchar c, uchar r )=0A=
 {=0A=
     ucs =3D (r << 8) | c;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( const QChar& c )=0A=
 {=0A=
     ucs =3D c.ucs;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 inline QChar::QChar( ushort rc )=0A=
 {=0A=
     ucs =3D rc;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( short rc )=0A=
 {=0A=
     ucs =3D (ushort) rc;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( uint rc )=0A=
 {=0A=
     ucs =3D (ushort ) (rc & 0xffff);=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 inline QChar::QChar( int rc )=0A=
 {=0A=
     ucs =3D (ushort) (rc & 0xffff);=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 inline bool operator=3D=3D( char ch, QChar c )=0A=
 {=0A=
     return ((uchar) ch) =3D=3D c.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator=3D=3D( QChar c, char ch )=0A=
 {=0A=
     return ((uchar) ch) =3D=3D c.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator=3D=3D( QChar c1, QChar c2 )=0A=
 {=0A=
     return c1.ucs =3D=3D c2.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator!=3D( QChar c1, QChar c2 )=0A=
 {=0A=
     return c1.ucs !=3D c2.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator!=3D( char ch, QChar c )=0A=
 {=0A=
     return ((uchar)ch) !=3D c.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator!=3D( QChar c, char ch )=0A=
 {=0A=
     return ((uchar) ch) !=3D c.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator<=3D( QChar c, char ch )=0A=
 {=0A=
     return c.ucs <=3D ((uchar) ch);=0A=
 }=0A=
 =0A=
 inline bool operator<=3D( char ch, QChar c )=0A=
 {=0A=
     return ((uchar) ch) <=3D c.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator<=3D( QChar c1, QChar c2 )=0A=
 {=0A=
     return c1.ucs <=3D c2.ucs;=0A=
 }=0A=
 =0A=
 inline bool operator>=3D( QChar c, char ch ) { return ch <=3D c; }=0A=
 inline bool operator>=3D( char ch, QChar c ) { return c <=3D ch; }=0A=
 inline bool operator>=3D( QChar c1, QChar c2 ) { return c2 <=3D c1; }=0A=
 inline bool operator<( QChar c, char ch ) { return !(ch<=3Dc); }=0A=
 inline bool operator<( char ch, QChar c ) { return !(c<=3Dch); }=0A=
 inline bool operator<( QChar c1, QChar c2 ) { return !(c2<=3Dc1); }=0A=
 inline bool operator>( QChar c, char ch ) { return !(ch>=3Dc); }=0A=
 inline bool operator>( char ch, QChar c ) { return !(c>=3Dch); }=0A=
 inline bool operator>( QChar c1, QChar c2 ) { return !(c2>=3Dc1); }=0A=
 =0A=
 =0A=
 struct QStringData : public QShared {=0A=
     QStringData() :=0A=
         unicode(0), ascii(0), len(0), simpletext(1), maxl(0), dirty(0) { =
 ref(); }=0A=
     QStringData(QChar *u, uint l, uint m) :=0A=
         unicode(u), ascii(0), len(l), simpletext(1), maxl(m), dirty(1) { =
 }=0A=
 =0A=
     ~QStringData() { if ( unicode ) delete[] ((char*)unicode);=0A=
                      if ( ascii ) delete[] ascii; }=0A=
 =0A=
     void deleteSelf();=0A=
     QChar *unicode;=0A=
     char *ascii;=0A=
     void setDirty() {=0A=
         if ( ascii ) {=0A=
             delete [] ascii;=0A=
             ascii =3D 0;=0A=
         }=0A=
         dirty =3D 1;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     uint len : 30;=0A=
 =0A=
     uint simpletext : 1;=0A=
 =0A=
 =0A=
 =0A=
     uint maxl : 30;=0A=
 =0A=
     uint dirty : 1;=0A=
 };=0A=
 =0A=
 =0A=
 class QString=0A=
 {=0A=
 public:=0A=
     QString();=0A=
     QString( QChar );=0A=
     QString( const QString & );=0A=
     QString( const QByteArray& );=0A=
     QString( const QChar* unicode, uint length );=0A=
 =0A=
     QString( const char *str );=0A=
 =0A=
     ~QString();=0A=
 =0A=
     QString &operator=3D( const QString & );=0A=
 =0A=
     QString &operator=3D( const char * );=0A=
 =0A=
     QString &operator=3D( const QCString& );=0A=
     QString &operator=3D( QChar c );=0A=
     QString &operator=3D( char c );=0A=
 =0A=
     static const QString null;=0A=
 =0A=
     bool isNull() const;=0A=
     bool isEmpty() const;=0A=
     uint length() const;=0A=
     void truncate( uint pos );=0A=
 =0A=
     QString & fill( QChar c, int len =3D -1 );=0A=
 =0A=
     QString copy() const;=0A=
 =0A=
     QString arg( long a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( ulong a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( int a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( uint a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( short a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( ushort a, int fieldwidth=3D0, int base=3D10 ) const;=0A=
     QString arg( char a, int fieldwidth=3D0 ) const;=0A=
     QString arg( QChar a, int fieldwidth=3D0 ) const;=0A=
     QString arg( const QString& a, int fieldwidth=3D0 ) const;=0A=
     QString arg( double a, int fieldwidth=3D0, char fmt=3D'g', int =
 prec=3D-1 ) const;=0A=
 =0A=
 =0A=
     QString &sprintf( const char* format, ... )=0A=
 =0A=
         __attribute__ ((format (printf, 2, 3)))=0A=
 =0A=
         ;=0A=
 =0A=
 =0A=
     int find( QChar c, int index=3D0, bool cs=3DTRUE ) const;=0A=
     int find( char c, int index=3D0, bool cs=3DTRUE ) const;=0A=
     int find( const QString &str, int index=3D0, bool cs=3DTRUE ) const;=0A=
 =0A=
     int find( const QRegExp &, int index=3D0 ) const;=0A=
 =0A=
 =0A=
     int find( const char* str, int index=3D0 ) const;=0A=
 =0A=
     int findRev( QChar c, int index=3D-1, bool cs=3DTRUE) const;=0A=
     int findRev( char c, int index=3D-1, bool cs=3DTRUE) const;=0A=
     int findRev( const QString &str, int index=3D-1, bool cs=3DTRUE) =
 const;=0A=
 =0A=
     int findRev( const QRegExp &, int index=3D-1 ) const;=0A=
 =0A=
 =0A=
     int findRev( const char* str, int index=3D-1 ) const;=0A=
 =0A=
     int contains( QChar c, bool cs=3DTRUE ) const;=0A=
     int contains( char c, bool cs=3DTRUE ) const=0A=
                     { return contains(QChar(c), cs); }=0A=
 =0A=
     int contains( const char* str, bool cs=3DTRUE ) const;=0A=
 =0A=
     int contains( const QString &str, bool cs=3DTRUE ) const;=0A=
 =0A=
     int contains( const QRegExp & ) const;=0A=
 =0A=
 =0A=
     enum SectionFlags {=0A=
         SectionDefault =3D 0x00,=0A=
         SectionSkipEmpty =3D 0x01,=0A=
         SectionIncludeLeadingSep =3D 0x02,=0A=
         SectionIncludeTrailingSep =3D 0x04,=0A=
         SectionCaseInsensitiveSeps =3D 0x08=0A=
     };=0A=
     QString section( QChar sep, int start, int end =3D 0xffffffff, int =
 flags =3D SectionDefault ) const;=0A=
     QString section( char sep, int start, int end =3D 0xffffffff, int =
 flags =3D SectionDefault ) const;=0A=
 =0A=
     QString section( const char *in_sep, int start, int end =3D =
 0xffffffff, int flags =3D SectionDefault ) const;=0A=
 =0A=
     QString section( const QString &in_sep, int start, int end =3D =
 0xffffffff, int flags =3D SectionDefault ) const;=0A=
 =0A=
     QString section( const QRegExp &reg, int start, int end =3D =
 0xffffffff, int flags =3D SectionDefault ) const;=0A=
 =0A=
 =0A=
     QString left( uint len ) const;=0A=
     QString right( uint len ) const;=0A=
     QString mid( uint index, uint len=3D0xffffffff) const;=0A=
 =0A=
     QString leftJustify( uint width, QChar fill=3D' ', bool =
 trunc=3DFALSE)const;=0A=
     QString rightJustify( uint width, QChar fill=3D' ',bool =
 trunc=3DFALSE)const;=0A=
 =0A=
     QString lower() const;=0A=
     QString upper() const;=0A=
 =0A=
     QString stripWhiteSpace() const;=0A=
     QString simplifyWhiteSpace() const;=0A=
 =0A=
     QString &insert( uint index, const QString & );=0A=
     QString &insert( uint index, const QChar*, uint len );=0A=
     QString &insert( uint index, QChar );=0A=
     QString &insert( uint index, char c ) { return =
 insert(index,QChar(c)); }=0A=
     QString &append( char );=0A=
     QString &append( QChar );=0A=
     QString &append( const QString & );=0A=
     QString &prepend( char );=0A=
     QString &prepend( QChar );=0A=
     QString &prepend( const QString & );=0A=
     QString &remove( uint index, uint len );=0A=
     QString &replace( uint index, uint len, const QString & );=0A=
     QString &replace( uint index, uint len, const QChar*, uint clen );=0A=
 =0A=
     QString &replace( const QRegExp &, const QString & );=0A=
 =0A=
     short toShort( bool *ok=3D0, int base=3D10 ) const;=0A=
     ushort toUShort( bool *ok=3D0, int base=3D10 ) const;=0A=
     int toInt( bool *ok=3D0, int base=3D10 ) const;=0A=
     uint toUInt( bool *ok=3D0, int base=3D10 ) const;=0A=
     long toLong( bool *ok=3D0, int base=3D10 ) const;=0A=
     ulong toULong( bool *ok=3D0, int base=3D10 ) const;=0A=
     float toFloat( bool *ok=3D0 ) const;=0A=
     double toDouble( bool *ok=3D0 ) const;=0A=
 =0A=
     QString &setNum( short, int base=3D10 );=0A=
     QString &setNum( ushort, int base=3D10 );=0A=
     QString &setNum( int, int base=3D10 );=0A=
     QString &setNum( uint, int base=3D10 );=0A=
     QString &setNum( long, int base=3D10 );=0A=
     QString &setNum( ulong, int base=3D10 );=0A=
     QString &setNum( float, char f=3D'g', int prec=3D6 );=0A=
     QString &setNum( double, char f=3D'g', int prec=3D6 );=0A=
 =0A=
     static QString number( long, int base=3D10 );=0A=
     static QString number( ulong, int base=3D10);=0A=
     static QString number( int, int base=3D10 );=0A=
     static QString number( uint, int base=3D10);=0A=
     static QString number( double, char f=3D'g', int prec=3D6 );=0A=
 =0A=
     void setExpand( uint index, QChar c );=0A=
 =0A=
     QString &operator+=3D( const QString &str );=0A=
     QString &operator+=3D( QChar c );=0A=
     QString &operator+=3D( char c );=0A=
 =0A=
     QChar at( uint i ) const=0A=
         { return i < d->len ? d->unicode[i] : QChar::null; }=0A=
     QChar operator[]( int i ) const { return at((uint)i); }=0A=
     QCharRef at( uint i );=0A=
     QCharRef operator[]( int i );=0A=
 =0A=
     QChar constref(uint i) const=0A=
         { return at(i); }=0A=
     QChar& ref(uint i)=0A=
         {=0A=
             if ( d->count !=3D 1 || i >=3D d->len )=0A=
                 subat( i );=0A=
             d->setDirty();=0A=
             return d->unicode[i];=0A=
         }=0A=
 =0A=
     const QChar* unicode() const { return d->unicode; }=0A=
     const char* ascii() const { return latin1(); }=0A=
     const char* latin1() const;=0A=
     static QString fromLatin1(const char*, int len=3D-1);=0A=
 =0A=
     QCString utf8() const;=0A=
     static QString fromUtf8(const char*, int len=3D-1);=0A=
 =0A=
     QCString local8Bit() const;=0A=
     static QString fromLocal8Bit(const char*, int len=3D-1);=0A=
     bool operator!() const;=0A=
 =0A=
     operator const char *() const { return latin1(); }=0A=
 =0A=
 =0A=
     QString &setUnicode( const QChar* unicode, uint len );=0A=
     QString &setUnicodeCodes( const ushort* unicode_as_ushorts, uint len =
 );=0A=
     QString &setLatin1( const char*, int len=3D-1 );=0A=
 =0A=
     int compare( const QString& s ) const;=0A=
     static int compare( const QString& s1, const QString& s2 )=0A=
     { return s1.compare( s2 ); }=0A=
 =0A=
     int localeAwareCompare( const QString& s ) const;=0A=
     static int localeAwareCompare( const QString& s1, const QString& s2 )=0A=
     { return s1.localeAwareCompare( s2 ); }=0A=
 =0A=
 =0A=
     friend QDataStream &operator>>( QDataStream &, QString & );=0A=
 =0A=
 =0A=
     void compose();=0A=
 =0A=
 =0A=
     const char* data() const { return latin1(); }=0A=
 =0A=
 =0A=
     bool startsWith( const QString& ) const;=0A=
     bool endsWith( const QString& ) const;=0A=
 =0A=
     void setLength( uint newLength );=0A=
 =0A=
     bool simpleText() const { if ( d->dirty ) checkSimpleText(); return =
 (bool)d->simpletext; }=0A=
     bool isRightToLeft() const;=0A=
 =0A=
 private:=0A=
 # 604 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring=
 .h"=0A=
     QString& replace( const QString &, const QString & ) { return *this; =
 }=0A=
 =0A=
     QString( int size, bool );=0A=
 =0A=
     void deref();=0A=
     void real_detach();=0A=
     void subat( uint );=0A=
     bool findArg(int& pos, int& len) const;=0A=
 =0A=
     void checkSimpleText() const;=0A=
 =0A=
     static QChar* asciiToUnicode( const char*, uint * len, uint =
 maxlen=3D(uint)-1 );=0A=
     static QChar* asciiToUnicode( const QByteArray&, uint * len );=0A=
     static char* unicodeToAscii( const QChar*, uint len );=0A=
 =0A=
     QStringData *d;=0A=
     static QStringData* shared_null;=0A=
     static QStringData* makeSharedNull();=0A=
 =0A=
     friend class QConstString;=0A=
     friend class QTextStream;=0A=
     QString( QStringData* dd, bool ) : d(dd) { }=0A=
 };=0A=
 =0A=
 class QCharRef {=0A=
     friend class QString;=0A=
     QString& s;=0A=
     uint p;=0A=
     QCharRef(QString* str, uint pos) : s(*str), p(pos) { }=0A=
 =0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     ushort unicode() const { return s.constref(p).unicode(); }=0A=
     char latin1() const { return s.constref(p).latin1(); }=0A=
 =0A=
 =0A=
     QCharRef operator=3D(char c ) { s.ref(p)=3Dc; return *this; }=0A=
     QCharRef operator=3D(uchar c ) { s.ref(p)=3Dc; return *this; }=0A=
     QCharRef operator=3D(QChar c ) { s.ref(p)=3Dc; return *this; }=0A=
     QCharRef operator=3D(const QCharRef& c ) { s.ref(p)=3Dc.unicode(); =
 return *this; }=0A=
     QCharRef operator=3D(ushort rc ) { s.ref(p)=3Drc; return *this; }=0A=
     QCharRef operator=3D(short rc ) { s.ref(p)=3Drc; return *this; }=0A=
     QCharRef operator=3D(uint rc ) { s.ref(p)=3Drc; return *this; }=0A=
     QCharRef operator=3D(int rc ) { s.ref(p)=3Drc; return *this; }=0A=
 =0A=
     operator QChar () const { return s.constref(p); }=0A=
 =0A=
 =0A=
     bool isNull() const { return unicode()=3D=3D0; }=0A=
     bool isPrint() const { return s.constref(p).isPrint(); }=0A=
     bool isPunct() const { return s.constref(p).isPunct(); }=0A=
     bool isSpace() const { return s.constref(p).isSpace(); }=0A=
     bool isMark() const { return s.constref(p).isMark(); }=0A=
     bool isLetter() const { return s.constref(p).isLetter(); }=0A=
     bool isNumber() const { return s.constref(p).isNumber(); }=0A=
     bool isLetterOrNumber() { return s.constref(p).isLetterOrNumber(); }=0A=
     bool isDigit() const { return s.constref(p).isDigit(); }=0A=
 =0A=
     int digitValue() const { return s.constref(p).digitValue(); }=0A=
     QChar lower() const { return s.constref(p).lower(); }=0A=
     QChar upper() const { return s.constref(p).upper(); }=0A=
 =0A=
     QChar::Category category() const { return s.constref(p).category(); }=0A=
     QChar::Direction direction() const { return =
 s.constref(p).direction(); }=0A=
     QChar::Joining joining() const { return s.constref(p).joining(); }=0A=
     bool mirrored() const { return s.constref(p).mirrored(); }=0A=
     QChar mirroredChar() const { return s.constref(p).mirroredChar(); }=0A=
     const QString &decomposition() const { return =
 s.constref(p).decomposition(); }=0A=
     QChar::Decomposition decompositionTag() const { return =
 s.constref(p).decompositionTag(); }=0A=
     unsigned char combiningClass() const { return =
 s.constref(p).combiningClass(); }=0A=
 =0A=
 =0A=
     uchar cell() const { return s.constref(p).cell(); }=0A=
     uchar row() const { return s.constref(p).row(); }=0A=
 =0A=
 };=0A=
 =0A=
 inline QCharRef QString::at( uint i ) { return QCharRef(this,i); }=0A=
 inline QCharRef QString::operator[]( int i ) { return at((uint)i); }=0A=
 =0A=
 =0A=
 class QConstString : private QString {=0A=
 public:=0A=
     QConstString( const QChar* unicode, uint length );=0A=
     ~QConstString();=0A=
     const QString& string() const { return *this; }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QString & );=0A=
  QDataStream &operator>>( QDataStream &, QString & );=0A=
 # 713 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring=
 .h"=0A=
 inline QString::QString() :=0A=
     d(shared_null ? shared_null : makeSharedNull())=0A=
 {=0A=
     d->ref();=0A=
 }=0A=
 =0A=
 inline QString::~QString()=0A=
 {=0A=
     if ( d->deref() ) {=0A=
         if ( d =3D=3D shared_null )=0A=
             shared_null =3D 0;=0A=
         d->deleteSelf();=0A=
     }=0A=
 }=0A=
 =0A=
 inline QString QString::section( QChar sep, int start, int end, int =
 flags ) const=0A=
 { return section(QString(sep), start, end, flags); }=0A=
 =0A=
 inline QString QString::section( char sep, int start, int end, int flags =
 ) const=0A=
 { return section(QChar(sep), start, end, flags); }=0A=
 =0A=
 =0A=
 inline QString QString::section( const char *in_sep, int start, int end, =
 int flags ) const=0A=
 { return section(QString(in_sep), start, end, flags); }=0A=
 =0A=
 =0A=
 inline QString &QString::operator=3D( QChar c )=0A=
 { return *this =3D QString(c); }=0A=
 =0A=
 inline QString &QString::operator=3D( char c )=0A=
 { return *this =3D QString(QChar(c)); }=0A=
 =0A=
 inline bool QString::isNull() const=0A=
 { return unicode() =3D=3D 0; }=0A=
 =0A=
 inline bool QString::operator!() const=0A=
 { return isNull(); }=0A=
 =0A=
 inline uint QString::length() const=0A=
 { return d->len; }=0A=
 =0A=
 inline bool QString::isEmpty() const=0A=
 { return length() =3D=3D 0; }=0A=
 =0A=
 inline QString QString::copy() const=0A=
 { return QString( *this ); }=0A=
 =0A=
 inline QString &QString::prepend( const QString & s )=0A=
 { return insert(0,s); }=0A=
 =0A=
 inline QString &QString::prepend( QChar c )=0A=
 { return insert(0,c); }=0A=
 =0A=
 inline QString &QString::prepend( char c )=0A=
 { return insert(0,c); }=0A=
 =0A=
 inline QString &QString::append( const QString & s )=0A=
 { return operator+=3D(s); }=0A=
 =0A=
 inline QString &QString::append( QChar c )=0A=
 { return operator+=3D(c); }=0A=
 =0A=
 inline QString &QString::append( char c )=0A=
 { return operator+=3D(c); }=0A=
 =0A=
 inline QString &QString::setNum( short n, int base )=0A=
 { return setNum((long)n, base); }=0A=
 =0A=
 inline QString &QString::setNum( ushort n, int base )=0A=
 { return setNum((ulong)n, base); }=0A=
 =0A=
 inline QString &QString::setNum( int n, int base )=0A=
 { return setNum((long)n, base); }=0A=
 =0A=
 inline QString &QString::setNum( uint n, int base )=0A=
 { return setNum((ulong)n, base); }=0A=
 =0A=
 inline QString &QString::setNum( float n, char f, int prec )=0A=
 { return setNum((double)n,f,prec); }=0A=
 =0A=
 inline QString QString::arg(int a, int fieldwidth, int base) const=0A=
 { return arg((long)a, fieldwidth, base); }=0A=
 =0A=
 inline QString QString::arg(uint a, int fieldwidth, int base) const=0A=
 { return arg((ulong)a, fieldwidth, base); }=0A=
 =0A=
 inline QString QString::arg(short a, int fieldwidth, int base) const=0A=
 { return arg((long)a, fieldwidth, base); }=0A=
 =0A=
 inline QString QString::arg(ushort a, int fieldwidth, int base) const=0A=
 { return arg((ulong)a, fieldwidth, base); }=0A=
 =0A=
 inline int QString::find( char c, int index, bool cs ) const=0A=
 { return find(QChar(c), index, cs); }=0A=
 =0A=
 inline int QString::findRev( char c, int index, bool cs) const=0A=
 { return findRev( QChar(c), index, cs ); }=0A=
 =0A=
 =0A=
 =0A=
 inline int QString::find( const char* str, int index ) const=0A=
 { return find(QString::fromLatin1(str), index); }=0A=
 =0A=
 inline int QString::findRev( const char* str, int index ) const=0A=
 { return findRev(QString::fromLatin1(str), index); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  bool operator!=3D( const QString &s1, const QString &s2 );=0A=
  bool operator<( const QString &s1, const QString &s2 );=0A=
  bool operator<=3D( const QString &s1, const QString &s2 );=0A=
  bool operator=3D=3D( const QString &s1, const QString &s2 );=0A=
  bool operator>( const QString &s1, const QString &s2 );=0A=
  bool operator>=3D( const QString &s1, const QString &s2 );=0A=
 =0A=
  bool operator!=3D( const QString &s1, const char *s2 );=0A=
  bool operator<( const QString &s1, const char *s2 );=0A=
  bool operator<=3D( const QString &s1, const char *s2 );=0A=
  bool operator=3D=3D( const QString &s1, const char *s2 );=0A=
  bool operator>( const QString &s1, const char *s2 );=0A=
  bool operator>=3D( const QString &s1, const char *s2 );=0A=
  bool operator!=3D( const char *s1, const QString &s2 );=0A=
  bool operator<( const char *s1, const QString &s2 );=0A=
  bool operator<=3D( const char *s1, const QString &s2 );=0A=
  bool operator=3D=3D( const char *s1, const QString &s2 );=0A=
 =0A=
  bool operator>=3D( const char *s1, const QString &s2 );=0A=
 =0A=
 =0A=
  inline const QString operator+( const QString &s1, const QString &s2 )=0A=
 {=0A=
     QString tmp( s1 );=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
 =0A=
  inline const QString operator+( const QString &s1, const char *s2 )=0A=
 {=0A=
     QString tmp( s1 );=0A=
     tmp +=3D QString::fromLatin1(s2);=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QString operator+( const char *s1, const QString &s2 )=0A=
 {=0A=
     QString tmp =3D QString::fromLatin1( s1 );=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
 =0A=
  inline const QString operator+( const QString &s1, QChar c2 )=0A=
 {=0A=
     QString tmp( s1 );=0A=
     tmp +=3D c2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QString operator+( const QString &s1, char c2 )=0A=
 {=0A=
     QString tmp( s1 );=0A=
     tmp +=3D c2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QString operator+( QChar c1, const QString &s2 )=0A=
 {=0A=
     QString tmp;=0A=
     tmp +=3D c1;=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 =0A=
  inline const QString operator+( char c1, const QString &s2 )=0A=
 {=0A=
     QString tmp;=0A=
     tmp +=3D c1;=0A=
     tmp +=3D s2;=0A=
     return tmp;=0A=
 }=0A=
 # 45 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h" 2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp=
 ace.h" 1=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp=
 ace.h"=0A=
 class QColor;=0A=
 class QCursor;=0A=
 =0A=
 =0A=
 class Qt {=0A=
 public:=0A=
     static const QColor & color0;=0A=
     static const QColor & color1;=0A=
     static const QColor & black;=0A=
     static const QColor & white;=0A=
     static const QColor & darkGray;=0A=
     static const QColor & gray;=0A=
     static const QColor & lightGray;=0A=
     static const QColor & red;=0A=
     static const QColor & green;=0A=
     static const QColor & blue;=0A=
     static const QColor & cyan;=0A=
     static const QColor & magenta;=0A=
     static const QColor & yellow;=0A=
     static const QColor & darkRed;=0A=
     static const QColor & darkGreen;=0A=
     static const QColor & darkBlue;=0A=
     static const QColor & darkCyan;=0A=
     static const QColor & darkMagenta;=0A=
     static const QColor & darkYellow;=0A=
 =0A=
 =0A=
     enum ButtonState {=0A=
         NoButton =3D 0x0000,=0A=
         LeftButton =3D 0x0001,=0A=
         RightButton =3D 0x0002,=0A=
         MidButton =3D 0x0004,=0A=
         MouseButtonMask =3D 0x00ff,=0A=
         ShiftButton =3D 0x0100,=0A=
         ControlButton =3D 0x0200,=0A=
         AltButton =3D 0x0400,=0A=
         MetaButton =3D 0x0800,=0A=
         KeyButtonMask =3D 0x0fff,=0A=
         Keypad =3D 0x4000=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     enum Orientation {=0A=
         Horizontal =3D 0,=0A=
         Vertical=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     enum AlignmentFlags {=0A=
         AlignAuto =3D 0x0000,=0A=
         AlignLeft =3D 0x0001,=0A=
         AlignRight =3D 0x0002,=0A=
         AlignHCenter =3D 0x0004,=0A=
         AlignJustify =3D 0x0008,=0A=
         AlignHorizontal_Mask =3D AlignLeft | AlignRight | AlignHCenter | =
 AlignJustify,=0A=
         AlignTop =3D 0x0010,=0A=
         AlignBottom =3D 0x0020,=0A=
         AlignVCenter =3D 0x0040,=0A=
         AlignVertical_Mask =3D AlignTop | AlignBottom | AlignVCenter,=0A=
         AlignCenter =3D AlignVCenter | AlignHCenter=0A=
     };=0A=
 =0A=
 =0A=
     enum TextFlags {=0A=
         SingleLine =3D 0x0080,=0A=
         DontClip =3D 0x0100,=0A=
         ExpandTabs =3D 0x0200,=0A=
         ShowPrefix =3D 0x0400,=0A=
         WordBreak =3D 0x0800,=0A=
         BreakAnywhere =3D 0x1000,=0A=
         DontPrint =3D 0x2000,=0A=
         NoAccel =3D 0x4000=0A=
     };=0A=
 =0A=
 =0A=
     typedef uint WState;=0A=
 =0A=
 =0A=
     enum WidgetState {=0A=
         WState_Created =3D 0x00000001,=0A=
         WState_Disabled =3D 0x00000002,=0A=
         WState_Visible =3D 0x00000004,=0A=
         WState_ForceHide =3D 0x00000008,=0A=
         WState_OwnCursor =3D 0x00000010,=0A=
         WState_MouseTracking =3D 0x00000020,=0A=
         WState_CompressKeys =3D 0x00000040,=0A=
         WState_BlockUpdates =3D 0x00000080,=0A=
         WState_InPaintEvent =3D 0x00000100,=0A=
         WState_Reparented =3D 0x00000200,=0A=
         WState_ConfigPending =3D 0x00000400,=0A=
         WState_Resized =3D 0x00000800,=0A=
         WState_AutoMask =3D 0x00001000,=0A=
         WState_Polished =3D 0x00002000,=0A=
         WState_DND =3D 0x00004000,=0A=
         WState_Reserved0 =3D 0x00008000,=0A=
         WState_Reserved1 =3D 0x00010000,=0A=
         WState_Reserved2 =3D 0x00020000,=0A=
         WState_Reserved3 =3D 0x00040000,=0A=
         WState_Maximized =3D 0x00080000,=0A=
         WState_Minimized =3D 0x00100000,=0A=
         WState_ForceDisabled =3D 0x00200000,=0A=
         WState_Exposed =3D 0x00400000,=0A=
         WState_HasMouse =3D 0x00800000=0A=
     };=0A=
 =0A=
 =0A=
     typedef uint WFlags;=0A=
 =0A=
 =0A=
     enum WidgetFlags {=0A=
         WType_TopLevel =3D 0x00000001,=0A=
         WType_Dialog =3D 0x00000002,=0A=
         WType_Popup =3D 0x00000004,=0A=
         WType_Desktop =3D 0x00000008,=0A=
         WType_Mask =3D 0x0000000f,=0A=
 =0A=
         WStyle_Customize =3D 0x00000010,=0A=
         WStyle_NormalBorder =3D 0x00000020,=0A=
         WStyle_DialogBorder =3D 0x00000040,=0A=
         WStyle_NoBorder =3D 0x00002000,=0A=
         WStyle_Title =3D 0x00000080,=0A=
         WStyle_SysMenu =3D 0x00000100,=0A=
         WStyle_Minimize =3D 0x00000200,=0A=
         WStyle_Maximize =3D 0x00000400,=0A=
         WStyle_MinMax =3D WStyle_Minimize | WStyle_Maximize,=0A=
         WStyle_Tool =3D 0x00000800,=0A=
         WStyle_StaysOnTop =3D 0x00001000,=0A=
         WStyle_ContextHelp =3D 0x00004000,=0A=
         WStyle_Reserved =3D 0x00008000,=0A=
         WStyle_Mask =3D 0x0000fff0,=0A=
 =0A=
         WDestructiveClose =3D 0x00010000,=0A=
         WPaintDesktop =3D 0x00020000,=0A=
         WPaintUnclipped =3D 0x00040000,=0A=
         WPaintClever =3D 0x00080000,=0A=
         WResizeNoErase =3D 0x00100000,=0A=
         WMouseNoMask =3D 0x00200000,=0A=
         WStaticContents =3D 0x00400000,=0A=
         WRepaintNoErase =3D 0x00800000,=0A=
 =0A=
         WX11BypassWM =3D 0x01000000,=0A=
         WWinOwnDC =3D 0x00000000,=0A=
 =0A=
 =0A=
 =0A=
 =0A=
         WGroupLeader =3D 0x02000000,=0A=
         WShowModal =3D 0x04000000,=0A=
         WNoMousePropagation =3D 0x08000000,=0A=
         WSubWindow =3D 0x10000000=0A=
 =0A=
         ,=0A=
         WNorthWestGravity =3D WStaticContents,=0A=
         WType_Modal =3D WType_Dialog | WShowModal,=0A=
         WStyle_Dialog =3D WType_Dialog,=0A=
         WStyle_NoBorderEx =3D WStyle_NoBorder=0A=
 =0A=
     };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     enum ImageConversionFlags {=0A=
         ColorMode_Mask =3D 0x00000003,=0A=
         AutoColor =3D 0x00000000,=0A=
         ColorOnly =3D 0x00000003,=0A=
         MonoOnly =3D 0x00000002,=0A=
 =0A=
 =0A=
         AlphaDither_Mask =3D 0x0000000c,=0A=
         ThresholdAlphaDither =3D 0x00000000,=0A=
         OrderedAlphaDither =3D 0x00000004,=0A=
         DiffuseAlphaDither =3D 0x00000008,=0A=
         NoAlpha =3D 0x0000000c,=0A=
 =0A=
         Dither_Mask =3D 0x00000030,=0A=
         DiffuseDither =3D 0x00000000,=0A=
         OrderedDither =3D 0x00000010,=0A=
         ThresholdDither =3D 0x00000020,=0A=
 =0A=
 =0A=
         DitherMode_Mask =3D 0x000000c0,=0A=
         AutoDither =3D 0x00000000,=0A=
         PreferDither =3D 0x00000040,=0A=
         AvoidDither =3D 0x00000080=0A=
     };=0A=
 =0A=
 =0A=
     enum BGMode {=0A=
         TransparentMode,=0A=
         OpaqueMode=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     enum PaintUnit {=0A=
         PixelUnit,=0A=
         LoMetricUnit,=0A=
         HiMetricUnit,=0A=
         LoEnglishUnit,=0A=
         HiEnglishUnit,=0A=
         TwipsUnit=0A=
     };=0A=
 # 264 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp=
 ace.h"=0A=
     enum GUIStyle {=0A=
         MacStyle,=0A=
         WindowsStyle,=0A=
         Win3Style,=0A=
         PMStyle,=0A=
         MotifStyle=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     enum Modifier {=0A=
         SHIFT =3D 0x00200000,=0A=
         CTRL =3D 0x00400000,=0A=
         ALT =3D 0x00800000,=0A=
         MODIFIER_MASK =3D 0x00e00000,=0A=
         UNICODE_ACCEL =3D 0x10000000,=0A=
 =0A=
         ASCII_ACCEL =3D UNICODE_ACCEL=0A=
     };=0A=
 =0A=
 =0A=
     enum Key {=0A=
         Key_Escape =3D 0x1000,=0A=
         Key_Tab =3D 0x1001,=0A=
         Key_Backtab =3D 0x1002, Key_BackTab =3D Key_Backtab,=0A=
         Key_Backspace =3D 0x1003, Key_BackSpace =3D Key_Backspace,=0A=
         Key_Return =3D 0x1004,=0A=
         Key_Enter =3D 0x1005,=0A=
         Key_Insert =3D 0x1006,=0A=
         Key_Delete =3D 0x1007,=0A=
         Key_Pause =3D 0x1008,=0A=
         Key_Print =3D 0x1009,=0A=
         Key_SysReq =3D 0x100a,=0A=
         Key_Home =3D 0x1010,=0A=
         Key_End =3D 0x1011,=0A=
         Key_Left =3D 0x1012,=0A=
         Key_Up =3D 0x1013,=0A=
         Key_Right =3D 0x1014,=0A=
         Key_Down =3D 0x1015,=0A=
         Key_Prior =3D 0x1016, Key_PageUp =3D Key_Prior,=0A=
         Key_Next =3D 0x1017, Key_PageDown =3D Key_Next,=0A=
         Key_Shift =3D 0x1020,=0A=
         Key_Control =3D 0x1021,=0A=
         Key_Meta =3D 0x1022,=0A=
         Key_Alt =3D 0x1023,=0A=
         Key_CapsLock =3D 0x1024,=0A=
         Key_NumLock =3D 0x1025,=0A=
         Key_ScrollLock =3D 0x1026,=0A=
         Key_F1 =3D 0x1030,=0A=
         Key_F2 =3D 0x1031,=0A=
         Key_F3 =3D 0x1032,=0A=
         Key_F4 =3D 0x1033,=0A=
         Key_F5 =3D 0x1034,=0A=
         Key_F6 =3D 0x1035,=0A=
         Key_F7 =3D 0x1036,=0A=
         Key_F8 =3D 0x1037,=0A=
         Key_F9 =3D 0x1038,=0A=
         Key_F10 =3D 0x1039,=0A=
         Key_F11 =3D 0x103a,=0A=
         Key_F12 =3D 0x103b,=0A=
         Key_F13 =3D 0x103c,=0A=
         Key_F14 =3D 0x103d,=0A=
         Key_F15 =3D 0x103e,=0A=
         Key_F16 =3D 0x103f,=0A=
         Key_F17 =3D 0x1040,=0A=
         Key_F18 =3D 0x1041,=0A=
         Key_F19 =3D 0x1042,=0A=
         Key_F20 =3D 0x1043,=0A=
         Key_F21 =3D 0x1044,=0A=
         Key_F22 =3D 0x1045,=0A=
         Key_F23 =3D 0x1046,=0A=
         Key_F24 =3D 0x1047,=0A=
         Key_F25 =3D 0x1048,=0A=
         Key_F26 =3D 0x1049,=0A=
         Key_F27 =3D 0x104a,=0A=
         Key_F28 =3D 0x104b,=0A=
         Key_F29 =3D 0x104c,=0A=
         Key_F30 =3D 0x104d,=0A=
         Key_F31 =3D 0x104e,=0A=
         Key_F32 =3D 0x104f,=0A=
         Key_F33 =3D 0x1050,=0A=
         Key_F34 =3D 0x1051,=0A=
         Key_F35 =3D 0x1052,=0A=
         Key_Super_L =3D 0x1053,=0A=
         Key_Super_R =3D 0x1054,=0A=
         Key_Menu =3D 0x1055,=0A=
         Key_Hyper_L =3D 0x1056,=0A=
         Key_Hyper_R =3D 0x1057,=0A=
         Key_Help =3D 0x1058,=0A=
         Key_Direction_L =3D 0x1059,=0A=
         Key_Direction_R =3D 0x1060,=0A=
         Key_Space =3D 0x20,=0A=
         Key_Any =3D Key_Space,=0A=
         Key_Exclam =3D 0x21,=0A=
         Key_QuoteDbl =3D 0x22,=0A=
         Key_NumberSign =3D 0x23,=0A=
         Key_Dollar =3D 0x24,=0A=
         Key_Percent =3D 0x25,=0A=
         Key_Ampersand =3D 0x26,=0A=
         Key_Apostrophe =3D 0x27,=0A=
         Key_ParenLeft =3D 0x28,=0A=
         Key_ParenRight =3D 0x29,=0A=
         Key_Asterisk =3D 0x2a,=0A=
         Key_Plus =3D 0x2b,=0A=
         Key_Comma =3D 0x2c,=0A=
         Key_Minus =3D 0x2d,=0A=
         Key_Period =3D 0x2e,=0A=
         Key_Slash =3D 0x2f,=0A=
         Key_0 =3D 0x30,=0A=
         Key_1 =3D 0x31,=0A=
         Key_2 =3D 0x32,=0A=
         Key_3 =3D 0x33,=0A=
         Key_4 =3D 0x34,=0A=
         Key_5 =3D 0x35,=0A=
         Key_6 =3D 0x36,=0A=
         Key_7 =3D 0x37,=0A=
         Key_8 =3D 0x38,=0A=
         Key_9 =3D 0x39,=0A=
         Key_Colon =3D 0x3a,=0A=
         Key_Semicolon =3D 0x3b,=0A=
         Key_Less =3D 0x3c,=0A=
         Key_Equal =3D 0x3d,=0A=
         Key_Greater =3D 0x3e,=0A=
         Key_Question =3D 0x3f,=0A=
         Key_At =3D 0x40,=0A=
         Key_A =3D 0x41,=0A=
         Key_B =3D 0x42,=0A=
         Key_C =3D 0x43,=0A=
         Key_D =3D 0x44,=0A=
         Key_E =3D 0x45,=0A=
         Key_F =3D 0x46,=0A=
         Key_G =3D 0x47,=0A=
         Key_H =3D 0x48,=0A=
         Key_I =3D 0x49,=0A=
         Key_J =3D 0x4a,=0A=
         Key_K =3D 0x4b,=0A=
         Key_L =3D 0x4c,=0A=
         Key_M =3D 0x4d,=0A=
         Key_N =3D 0x4e,=0A=
         Key_O =3D 0x4f,=0A=
         Key_P =3D 0x50,=0A=
         Key_Q =3D 0x51,=0A=
         Key_R =3D 0x52,=0A=
         Key_S =3D 0x53,=0A=
         Key_T =3D 0x54,=0A=
         Key_U =3D 0x55,=0A=
         Key_V =3D 0x56,=0A=
         Key_W =3D 0x57,=0A=
         Key_X =3D 0x58,=0A=
         Key_Y =3D 0x59,=0A=
         Key_Z =3D 0x5a,=0A=
         Key_BracketLeft =3D 0x5b,=0A=
         Key_Backslash =3D 0x5c,=0A=
         Key_BracketRight =3D 0x5d,=0A=
         Key_AsciiCircum =3D 0x5e,=0A=
         Key_Underscore =3D 0x5f,=0A=
         Key_QuoteLeft =3D 0x60,=0A=
         Key_BraceLeft =3D 0x7b,=0A=
         Key_Bar =3D 0x7c,=0A=
         Key_BraceRight =3D 0x7d,=0A=
         Key_AsciiTilde =3D 0x7e,=0A=
 =0A=
 =0A=
 =0A=
         Key_nobreakspace =3D 0x0a0,=0A=
         Key_exclamdown =3D 0x0a1,=0A=
         Key_cent =3D 0x0a2,=0A=
         Key_sterling =3D 0x0a3,=0A=
         Key_currency =3D 0x0a4,=0A=
         Key_yen =3D 0x0a5,=0A=
         Key_brokenbar =3D 0x0a6,=0A=
         Key_section =3D 0x0a7,=0A=
         Key_diaeresis =3D 0x0a8,=0A=
         Key_copyright =3D 0x0a9,=0A=
         Key_ordfeminine =3D 0x0aa,=0A=
         Key_guillemotleft =3D 0x0ab,=0A=
         Key_notsign =3D 0x0ac,=0A=
         Key_hyphen =3D 0x0ad,=0A=
         Key_registered =3D 0x0ae,=0A=
         Key_macron =3D 0x0af,=0A=
         Key_degree =3D 0x0b0,=0A=
         Key_plusminus =3D 0x0b1,=0A=
         Key_twosuperior =3D 0x0b2,=0A=
         Key_threesuperior =3D 0x0b3,=0A=
         Key_acute =3D 0x0b4,=0A=
         Key_mu =3D 0x0b5,=0A=
         Key_paragraph =3D 0x0b6,=0A=
         Key_periodcentered =3D 0x0b7,=0A=
         Key_cedilla =3D 0x0b8,=0A=
         Key_onesuperior =3D 0x0b9,=0A=
         Key_masculine =3D 0x0ba,=0A=
         Key_guillemotright =3D 0x0bb,=0A=
         Key_onequarter =3D 0x0bc,=0A=
         Key_onehalf =3D 0x0bd,=0A=
         Key_threequarters =3D 0x0be,=0A=
         Key_questiondown =3D 0x0bf,=0A=
         Key_Agrave =3D 0x0c0,=0A=
         Key_Aacute =3D 0x0c1,=0A=
         Key_Acircumflex =3D 0x0c2,=0A=
         Key_Atilde =3D 0x0c3,=0A=
         Key_Adiaeresis =3D 0x0c4,=0A=
         Key_Aring =3D 0x0c5,=0A=
         Key_AE =3D 0x0c6,=0A=
         Key_Ccedilla =3D 0x0c7,=0A=
         Key_Egrave =3D 0x0c8,=0A=
         Key_Eacute =3D 0x0c9,=0A=
         Key_Ecircumflex =3D 0x0ca,=0A=
         Key_Ediaeresis =3D 0x0cb,=0A=
         Key_Igrave =3D 0x0cc,=0A=
         Key_Iacute =3D 0x0cd,=0A=
         Key_Icircumflex =3D 0x0ce,=0A=
         Key_Idiaeresis =3D 0x0cf,=0A=
         Key_ETH =3D 0x0d0,=0A=
         Key_Ntilde =3D 0x0d1,=0A=
         Key_Ograve =3D 0x0d2,=0A=
         Key_Oacute =3D 0x0d3,=0A=
         Key_Ocircumflex =3D 0x0d4,=0A=
         Key_Otilde =3D 0x0d5,=0A=
         Key_Odiaeresis =3D 0x0d6,=0A=
         Key_multiply =3D 0x0d7,=0A=
         Key_Ooblique =3D 0x0d8,=0A=
         Key_Ugrave =3D 0x0d9,=0A=
         Key_Uacute =3D 0x0da,=0A=
         Key_Ucircumflex =3D 0x0db,=0A=
         Key_Udiaeresis =3D 0x0dc,=0A=
         Key_Yacute =3D 0x0dd,=0A=
         Key_THORN =3D 0x0de,=0A=
         Key_ssharp =3D 0x0df,=0A=
         Key_agrave =3D 0x0e0,=0A=
         Key_aacute =3D 0x0e1,=0A=
         Key_acircumflex =3D 0x0e2,=0A=
         Key_atilde =3D 0x0e3,=0A=
         Key_adiaeresis =3D 0x0e4,=0A=
         Key_aring =3D 0x0e5,=0A=
         Key_ae =3D 0x0e6,=0A=
         Key_ccedilla =3D 0x0e7,=0A=
         Key_egrave =3D 0x0e8,=0A=
         Key_eacute =3D 0x0e9,=0A=
         Key_ecircumflex =3D 0x0ea,=0A=
         Key_ediaeresis =3D 0x0eb,=0A=
         Key_igrave =3D 0x0ec,=0A=
         Key_iacute =3D 0x0ed,=0A=
         Key_icircumflex =3D 0x0ee,=0A=
         Key_idiaeresis =3D 0x0ef,=0A=
         Key_eth =3D 0x0f0,=0A=
         Key_ntilde =3D 0x0f1,=0A=
         Key_ograve =3D 0x0f2,=0A=
         Key_oacute =3D 0x0f3,=0A=
         Key_ocircumflex =3D 0x0f4,=0A=
         Key_otilde =3D 0x0f5,=0A=
         Key_odiaeresis =3D 0x0f6,=0A=
         Key_division =3D 0x0f7,=0A=
         Key_oslash =3D 0x0f8,=0A=
         Key_ugrave =3D 0x0f9,=0A=
         Key_uacute =3D 0x0fa,=0A=
         Key_ucircumflex =3D 0x0fb,=0A=
         Key_udiaeresis =3D 0x0fc,=0A=
         Key_yacute =3D 0x0fd,=0A=
         Key_thorn =3D 0x0fe,=0A=
         Key_ydiaeresis =3D 0x0ff,=0A=
 =0A=
         Key_unknown =3D 0xffff=0A=
     };=0A=
 =0A=
 =0A=
     enum ArrowType {=0A=
         UpArrow,=0A=
         DownArrow,=0A=
         LeftArrow,=0A=
         RightArrow=0A=
     };=0A=
 =0A=
 =0A=
     enum RasterOp {=0A=
         CopyROP,=0A=
         OrROP,=0A=
         XorROP,=0A=
         NotAndROP, EraseROP=3DNotAndROP,=0A=
         NotCopyROP,=0A=
         NotOrROP,=0A=
         NotXorROP,=0A=
         AndROP, NotEraseROP=3DAndROP,=0A=
         NotROP,=0A=
         ClearROP,=0A=
         SetROP,=0A=
         NopROP,=0A=
         AndNotROP,=0A=
         OrNotROP,=0A=
         NandROP,=0A=
         NorROP, LastROP=3DNorROP=0A=
     };=0A=
 =0A=
 =0A=
     enum PenStyle {=0A=
         NoPen,=0A=
         SolidLine,=0A=
         DashLine,=0A=
         DotLine,=0A=
         DashDotLine,=0A=
         DashDotDotLine,=0A=
         MPenStyle =3D 0x0f=0A=
     };=0A=
 =0A=
 =0A=
     enum PenCapStyle {=0A=
         FlatCap =3D 0x00,=0A=
         SquareCap =3D 0x10,=0A=
         RoundCap =3D 0x20,=0A=
         MPenCapStyle =3D 0x30=0A=
     };=0A=
 =0A=
 =0A=
     enum PenJoinStyle {=0A=
         MiterJoin =3D 0x00,=0A=
         BevelJoin =3D 0x40,=0A=
         RoundJoin =3D 0x80,=0A=
         MPenJoinStyle =3D 0xc0=0A=
     };=0A=
 =0A=
 =0A=
     enum BrushStyle {=0A=
         NoBrush,=0A=
         SolidPattern,=0A=
         Dense1Pattern,=0A=
         Dense2Pattern,=0A=
         Dense3Pattern,=0A=
         Dense4Pattern,=0A=
         Dense5Pattern,=0A=
         Dense6Pattern,=0A=
         Dense7Pattern,=0A=
         HorPattern,=0A=
         VerPattern,=0A=
         CrossPattern,=0A=
         BDiagPattern,=0A=
         FDiagPattern,=0A=
         DiagCrossPattern,=0A=
         CustomPattern=3D24=0A=
     };=0A=
 =0A=
 =0A=
     enum WindowsVersion {=0A=
         WV_32s =3D 0x0001,=0A=
         WV_95 =3D 0x0002,=0A=
         WV_98 =3D 0x0003,=0A=
         WV_Me =3D 0x0004,=0A=
         WV_DOS_based =3D 0x000f,=0A=
 =0A=
         WV_NT =3D 0x0010,=0A=
         WV_2000 =3D 0x0020,=0A=
         WV_XP =3D 0x0030,=0A=
         WV_NT_based =3D 0x00f0=0A=
     };=0A=
 =0A=
 =0A=
     enum UIEffect {=0A=
         UI_General,=0A=
         UI_AnimateMenu,=0A=
         UI_FadeMenu,=0A=
         UI_AnimateCombo,=0A=
         UI_AnimateTooltip,=0A=
         UI_FadeTooltip=0A=
     };=0A=
 =0A=
 =0A=
     enum CursorShape {=0A=
         ArrowCursor,=0A=
         UpArrowCursor,=0A=
         CrossCursor,=0A=
         WaitCursor,=0A=
         IbeamCursor,=0A=
         SizeVerCursor,=0A=
         SizeHorCursor,=0A=
         SizeBDiagCursor,=0A=
         SizeFDiagCursor,=0A=
         SizeAllCursor,=0A=
         BlankCursor,=0A=
         SplitVCursor,=0A=
         SplitHCursor,=0A=
         PointingHandCursor,=0A=
         ForbiddenCursor,=0A=
         WhatsThisCursor,=0A=
         LastCursor =3D WhatsThisCursor,=0A=
         BitmapCursor =3D 24=0A=
     };=0A=
 =0A=
 =0A=
 =0A=
     static const QCursor & arrowCursor;=0A=
     static const QCursor & upArrowCursor;=0A=
     static const QCursor & crossCursor;=0A=
     static const QCursor & waitCursor;=0A=
     static const QCursor & ibeamCursor;=0A=
     static const QCursor & sizeVerCursor;=0A=
     static const QCursor & sizeHorCursor;=0A=
     static const QCursor & sizeBDiagCursor;=0A=
     static const QCursor & sizeFDiagCursor;=0A=
     static const QCursor & sizeAllCursor;=0A=
     static const QCursor & blankCursor;=0A=
     static const QCursor & splitVCursor;=0A=
 =0A=
     static const QCursor & splitHCursor;=0A=
 =0A=
     static const QCursor & pointingHandCursor;=0A=
     static const QCursor & forbiddenCursor;=0A=
     static const QCursor & whatsThisCursor;=0A=
 =0A=
 =0A=
     enum TextFormat {=0A=
         PlainText,=0A=
         RichText,=0A=
         AutoText=0A=
     };=0A=
 =0A=
 =0A=
     enum Dock {=0A=
         DockUnmanaged,=0A=
         DockTornOff,=0A=
         DockTop,=0A=
         DockBottom,=0A=
         DockRight,=0A=
         DockLeft,=0A=
         DockMinimized=0A=
 =0A=
         ,=0A=
         Unmanaged =3D DockUnmanaged,=0A=
         TornOff =3D DockTornOff,=0A=
         Top =3D DockTop,=0A=
         Bottom =3D DockBottom,=0A=
         Right =3D DockRight,=0A=
         Left =3D DockLeft,=0A=
         Minimized =3D DockMinimized=0A=
 =0A=
     };=0A=
 =0A=
     typedef Dock ToolBarDock;=0A=
 =0A=
 =0A=
     enum DateFormat {=0A=
         TextDate,=0A=
         ISODate,=0A=
         LocalDate=0A=
     };=0A=
 =0A=
 =0A=
     enum BackgroundMode {=0A=
         FixedColor,=0A=
         FixedPixmap,=0A=
         NoBackground,=0A=
         PaletteForeground,=0A=
         PaletteButton,=0A=
         PaletteLight,=0A=
         PaletteMidlight,=0A=
         PaletteDark,=0A=
         PaletteMid,=0A=
         PaletteText,=0A=
         PaletteBrightText,=0A=
         PaletteBase,=0A=
         PaletteBackground,=0A=
         PaletteShadow,=0A=
         PaletteHighlight,=0A=
         PaletteHighlightedText,=0A=
         PaletteButtonText,=0A=
         PaletteLink,=0A=
         PaletteLinkVisited,=0A=
         X11ParentRelative=0A=
     };=0A=
 =0A=
     typedef uint ComparisonFlags;=0A=
 =0A=
 =0A=
     enum StringComparisonMode {=0A=
         CaseSensitive =3D 0x00001,=0A=
         BeginsWith =3D 0x00002,=0A=
         EndsWith =3D 0x00004,=0A=
         Contains =3D 0x00008,=0A=
         ExactMatch =3D 0x00010=0A=
     };=0A=
 # 749 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp=
 ace.h"=0A=
     typedef unsigned long HANDLE;=0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 class QInternal {=0A=
 public:=0A=
     enum PaintDeviceFlags {=0A=
         UndefinedDevice =3D 0x00,=0A=
         Widget =3D 0x01,=0A=
         Pixmap =3D 0x02,=0A=
         Printer =3D 0x03,=0A=
         Picture =3D 0x04,=0A=
         System =3D 0x05,=0A=
         DeviceTypeMask =3D 0x0f,=0A=
         ExternalDevice =3D 0x10,=0A=
 =0A=
         CompatibilityMode =3D 0x20=0A=
     };=0A=
 };=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h" 2=0A=
 =0A=
 =0A=
 # 1 =
 "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 =
 3=0A=
 # 49 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h" 2=0A=
 =0A=
 =0A=
 =0A=
 class QPaintDevice;=0A=
 class QPaintDeviceMetrics;=0A=
 class QWidget;=0A=
 class QWidgetMapper;=0A=
 class QDialog;=0A=
 class QColor;=0A=
 class QColorGroup;=0A=
 class QPalette;=0A=
 class QCursor;=0A=
 class QPoint;=0A=
 class QSize;=0A=
 class QRect;=0A=
 class QPointArray;=0A=
 class QPainter;=0A=
 class QRegion;=0A=
 class QFont;=0A=
 class QFontMetrics;=0A=
 class QFontInfo;=0A=
 class QPen;=0A=
 class QBrush;=0A=
 class QWMatrix;=0A=
 class QPixmap;=0A=
 class QBitmap;=0A=
 class QMovie;=0A=
 class QImage;=0A=
 class QImageIO;=0A=
 class QPicture;=0A=
 class QPrinter;=0A=
 class QAccel;=0A=
 class QTimer;=0A=
 class QTime;=0A=
 class QClipboard;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QWidgetList;=0A=
 class QWidgetListIt;=0A=
 # 135 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h"=0A=
 typedef struct _XDisplay Display;=0A=
 typedef union _XEvent XEvent;=0A=
 typedef struct _XGC *GC;=0A=
 typedef struct _XRegion *Region;=0A=
 typedef unsigned long WId;=0A=
 =0A=
  Display *qt_xdisplay();=0A=
  int qt_xscreen();=0A=
  WId qt_xrootwin();=0A=
  GC qt_xget_readonly_gc( int scrn, bool monochrome );=0A=
  GC qt_xget_temp_gc( int scrn, bool monochrome );=0A=
 # 157 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow=
 defs.h"=0A=
 class QApplication;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef Q_INT32 QCOORD;=0A=
 const QCOORD QCOORD_MAX =3D 2147483647;=0A=
 const QCOORD QCOORD_MIN =3D -QCOORD_MAX - 1;=0A=
 =0A=
 typedef unsigned int QRgb;=0A=
 =0A=
  const char *qAppName();=0A=
 =0A=
 =0A=
 =0A=
 typedef void (*QtCleanUpFunction)();=0A=
  void qAddPostRoutine( QtCleanUpFunction );=0A=
  void qRemovePostRoutine( QtCleanUpFunction );=0A=
 =0A=
 =0A=
 =0A=
 typedef QtCleanUpFunction Q_CleanUpFunction;=0A=
 =0A=
 =0A=
 =0A=
  void *qt_find_obj_child( QObject *, const char *, const char * );=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.=
 h" 1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.=
 h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion=
 .h" 1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion=
 .h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h=
 " 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h=
 "=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h=
 " 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h=
 "=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpoint.=
 h" 1=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpoint.=
 h"=0A=
 class QPoint=0A=
 {=0A=
 public:=0A=
     QPoint();=0A=
     QPoint( int xpos, int ypos );=0A=
 =0A=
     bool isNull() const;=0A=
 =0A=
     int x() const;=0A=
     int y() const;=0A=
     void setX( int x );=0A=
     void setY( int y );=0A=
 =0A=
     int manhattanLength() const;=0A=
 =0A=
     QCOORD &rx();=0A=
     QCOORD &ry();=0A=
 =0A=
     QPoint &operator+=3D( const QPoint &p );=0A=
     QPoint &operator-=3D( const QPoint &p );=0A=
     QPoint &operator*=3D( int c );=0A=
     QPoint &operator*=3D( double c );=0A=
     QPoint &operator/=3D( int c );=0A=
     QPoint &operator/=3D( double c );=0A=
 =0A=
     friend inline bool operator=3D=3D( const QPoint &, const QPoint & );=0A=
     friend inline bool operator!=3D( const QPoint &, const QPoint & );=0A=
     friend inline const QPoint operator+( const QPoint &, const QPoint & =
 );=0A=
     friend inline const QPoint operator-( const QPoint &, const QPoint & =
 );=0A=
     friend inline const QPoint operator*( const QPoint &, int );=0A=
     friend inline const QPoint operator*( int, const QPoint & );=0A=
     friend inline const QPoint operator*( const QPoint &, double );=0A=
     friend inline const QPoint operator*( double, const QPoint & );=0A=
     friend inline const QPoint operator-( const QPoint & );=0A=
     friend inline const QPoint operator/( const QPoint &, int );=0A=
     friend inline const QPoint operator/( const QPoint &, double );=0A=
 =0A=
 private:=0A=
     static void warningDivByZero();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QCOORD xp;=0A=
     QCOORD yp;=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QPoint & );=0A=
  QDataStream &operator>>( QDataStream &, QPoint & );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QPoint::QPoint()=0A=
 { xp=3D0; yp=3D0; }=0A=
 =0A=
 inline QPoint::QPoint( int xpos, int ypos )=0A=
 { xp=3D(QCOORD)xpos; yp=3D(QCOORD)ypos; }=0A=
 =0A=
 inline bool QPoint::isNull() const=0A=
 { return xp =3D=3D 0 && yp =3D=3D 0; }=0A=
 =0A=
 inline int QPoint::x() const=0A=
 { return xp; }=0A=
 =0A=
 inline int QPoint::y() const=0A=
 { return yp; }=0A=
 =0A=
 inline void QPoint::setX( int x )=0A=
 { xp =3D (QCOORD)x; }=0A=
 =0A=
 inline void QPoint::setY( int y )=0A=
 { yp =3D (QCOORD)y; }=0A=
 =0A=
 inline QCOORD &QPoint::rx()=0A=
 { return xp; }=0A=
 =0A=
 inline QCOORD &QPoint::ry()=0A=
 { return yp; }=0A=
 =0A=
 inline QPoint &QPoint::operator+=3D( const QPoint &p )=0A=
 { xp+=3Dp.xp; yp+=3Dp.yp; return *this; }=0A=
 =0A=
 inline QPoint &QPoint::operator-=3D( const QPoint &p )=0A=
 { xp-=3Dp.xp; yp-=3Dp.yp; return *this; }=0A=
 =0A=
 inline QPoint &QPoint::operator*=3D( int c )=0A=
 { xp*=3D(QCOORD)c; yp*=3D(QCOORD)c; return *this; }=0A=
 =0A=
 inline QPoint &QPoint::operator*=3D( double c )=0A=
 { xp=3D(QCOORD)(xp*c); yp=3D(QCOORD)(yp*c); return *this; }=0A=
 =0A=
 inline bool operator=3D=3D( const QPoint &p1, const QPoint &p2 )=0A=
 { return p1.xp =3D=3D p2.xp && p1.yp =3D=3D p2.yp; }=0A=
 =0A=
 inline bool operator!=3D( const QPoint &p1, const QPoint &p2 )=0A=
 { return p1.xp !=3D p2.xp || p1.yp !=3D p2.yp; }=0A=
 =0A=
 inline const QPoint operator+( const QPoint &p1, const QPoint &p2 )=0A=
 { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); }=0A=
 =0A=
 inline const QPoint operator-( const QPoint &p1, const QPoint &p2 )=0A=
 { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); }=0A=
 =0A=
 inline const QPoint operator*( const QPoint &p, int c )=0A=
 { return QPoint(p.xp*c, p.yp*c); }=0A=
 =0A=
 inline const QPoint operator*( int c, const QPoint &p )=0A=
 { return QPoint(p.xp*c, p.yp*c); }=0A=
 =0A=
 inline const QPoint operator*( const QPoint &p, double c )=0A=
 { return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }=0A=
 =0A=
 inline const QPoint operator*( double c, const QPoint &p )=0A=
 { return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }=0A=
 =0A=
 inline const QPoint operator-( const QPoint &p )=0A=
 { return QPoint(-p.xp, -p.yp); }=0A=
 =0A=
 inline QPoint &QPoint::operator/=3D( int c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0 )=0A=
         warningDivByZero();=0A=
 =0A=
     xp/=3D(QCOORD)c;=0A=
     yp/=3D(QCOORD)c;=0A=
     return *this;=0A=
 }=0A=
 =0A=
 inline QPoint &QPoint::operator/=3D( double c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0.0 )=0A=
         warningDivByZero();=0A=
 =0A=
     xp=3D(QCOORD)(xp/c);=0A=
     yp=3D(QCOORD)(yp/c);=0A=
     return *this;=0A=
 }=0A=
 =0A=
 inline const QPoint operator/( const QPoint &p, int c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0 )=0A=
         QPoint::warningDivByZero();=0A=
 =0A=
     return QPoint(p.xp/c, p.yp/c);=0A=
 }=0A=
 =0A=
 inline const QPoint operator/( const QPoint &p, double c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0.0 )=0A=
         QPoint::warningDivByZero();=0A=
 =0A=
     return QPoint((QCOORD)(p.xp/c), (QCOORD)(p.yp/c));=0A=
 }=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h=
 " 2=0A=
 =0A=
 =0A=
 =0A=
 class QSize=0A=
 {=0A=
 public:=0A=
     QSize();=0A=
     QSize( int w, int h );=0A=
 =0A=
     bool isNull() const;=0A=
     bool isEmpty() const;=0A=
     bool isValid() const;=0A=
 =0A=
     int width() const;=0A=
     int height() const;=0A=
     void setWidth( int w );=0A=
     void setHeight( int h );=0A=
     void transpose();=0A=
 =0A=
     QSize expandedTo( const QSize & ) const;=0A=
     QSize boundedTo( const QSize & ) const;=0A=
 =0A=
     QCOORD &rwidth();=0A=
     QCOORD &rheight();=0A=
 =0A=
     QSize &operator+=3D( const QSize & );=0A=
     QSize &operator-=3D( const QSize & );=0A=
     QSize &operator*=3D( int c );=0A=
     QSize &operator*=3D( double c );=0A=
     QSize &operator/=3D( int c );=0A=
     QSize &operator/=3D( double c );=0A=
 =0A=
     friend inline bool operator=3D=3D( const QSize &, const QSize & );=0A=
     friend inline bool operator!=3D( const QSize &, const QSize & );=0A=
     friend inline const QSize operator+( const QSize &, const QSize & );=0A=
     friend inline const QSize operator-( const QSize &, const QSize & );=0A=
     friend inline const QSize operator*( const QSize &, int );=0A=
     friend inline const QSize operator*( int, const QSize & );=0A=
     friend inline const QSize operator*( const QSize &, double );=0A=
     friend inline const QSize operator*( double, const QSize & );=0A=
     friend inline const QSize operator/( const QSize &, int );=0A=
     friend inline const QSize operator/( const QSize &, double );=0A=
 =0A=
 private:=0A=
     static void warningDivByZero();=0A=
 =0A=
     QCOORD wd;=0A=
     QCOORD ht;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QSize & );=0A=
  QDataStream &operator>>( QDataStream &, QSize & );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QSize::QSize()=0A=
 { wd =3D ht =3D -1; }=0A=
 =0A=
 inline QSize::QSize( int w, int h )=0A=
 { wd=3D(QCOORD)w; ht=3D(QCOORD)h; }=0A=
 =0A=
 inline bool QSize::isNull() const=0A=
 { return wd=3D=3D0 && ht=3D=3D0; }=0A=
 =0A=
 inline bool QSize::isEmpty() const=0A=
 { return wd<1 || ht<1; }=0A=
 =0A=
 inline bool QSize::isValid() const=0A=
 { return wd>=3D0 && ht>=3D0; }=0A=
 =0A=
 inline int QSize::width() const=0A=
 { return wd; }=0A=
 =0A=
 inline int QSize::height() const=0A=
 { return ht; }=0A=
 =0A=
 inline void QSize::setWidth( int w )=0A=
 { wd=3D(QCOORD)w; }=0A=
 =0A=
 inline void QSize::setHeight( int h )=0A=
 { ht=3D(QCOORD)h; }=0A=
 =0A=
 inline QCOORD &QSize::rwidth()=0A=
 { return wd; }=0A=
 =0A=
 inline QCOORD &QSize::rheight()=0A=
 { return ht; }=0A=
 =0A=
 inline QSize &QSize::operator+=3D( const QSize &s )=0A=
 { wd+=3Ds.wd; ht+=3Ds.ht; return *this; }=0A=
 =0A=
 inline QSize &QSize::operator-=3D( const QSize &s )=0A=
 { wd-=3Ds.wd; ht-=3Ds.ht; return *this; }=0A=
 =0A=
 inline QSize &QSize::operator*=3D( int c )=0A=
 { wd*=3D(QCOORD)c; ht*=3D(QCOORD)c; return *this; }=0A=
 =0A=
 inline QSize &QSize::operator*=3D( double c )=0A=
 { wd=3D(QCOORD)(wd*c); ht=3D(QCOORD)(ht*c); return *this; }=0A=
 =0A=
 inline bool operator=3D=3D( const QSize &s1, const QSize &s2 )=0A=
 { return s1.wd =3D=3D s2.wd && s1.ht =3D=3D s2.ht; }=0A=
 =0A=
 inline bool operator!=3D( const QSize &s1, const QSize &s2 )=0A=
 { return s1.wd !=3D s2.wd || s1.ht !=3D s2.ht; }=0A=
 =0A=
 inline const QSize operator+( const QSize & s1, const QSize & s2 )=0A=
 { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); }=0A=
 =0A=
 inline const QSize operator-( const QSize &s1, const QSize &s2 )=0A=
 { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); }=0A=
 =0A=
 inline const QSize operator*( const QSize &s, int c )=0A=
 { return QSize(s.wd*c, s.ht*c); }=0A=
 =0A=
 inline const QSize operator*( int c, const QSize &s )=0A=
 { return QSize(s.wd*c, s.ht*c); }=0A=
 =0A=
 inline const QSize operator*( const QSize &s, double c )=0A=
 { return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }=0A=
 =0A=
 inline const QSize operator*( double c, const QSize &s )=0A=
 { return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }=0A=
 =0A=
 inline QSize &QSize::operator/=3D( int c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0 )=0A=
         warningDivByZero();=0A=
 =0A=
     wd/=3D(QCOORD)c; ht/=3D(QCOORD)c;=0A=
     return *this;=0A=
 }=0A=
 =0A=
 inline QSize &QSize::operator/=3D( double c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0.0 )=0A=
         warningDivByZero();=0A=
 =0A=
     wd=3D(QCOORD)(wd/c); ht=3D(QCOORD)(ht/c);=0A=
     return *this;=0A=
 }=0A=
 =0A=
 inline const QSize operator/( const QSize &s, int c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0 )=0A=
         QSize::warningDivByZero();=0A=
 =0A=
     return QSize(s.wd/c, s.ht/c);=0A=
 }=0A=
 =0A=
 inline const QSize operator/( const QSize &s, double c )=0A=
 {=0A=
 =0A=
     if ( c =3D=3D 0.0 )=0A=
         QSize::warningDivByZero();=0A=
 =0A=
     return QSize((QCOORD)(s.wd/c), (QCOORD)(s.ht/c));=0A=
 }=0A=
 =0A=
 inline QSize QSize::expandedTo( const QSize & otherSize ) const=0A=
 {=0A=
     return QSize( ((otherSize.wd) < (wd) ? (wd) : (otherSize.wd)), =
 ((otherSize.ht) < (ht) ? (ht) : (otherSize.ht)) );=0A=
 }=0A=
 =0A=
 inline QSize QSize::boundedTo( const QSize & otherSize ) const=0A=
 {=0A=
     return QSize( ((wd) < (otherSize.wd) ? (wd) : (otherSize.wd)), ((ht) =
 < (otherSize.ht) ? (ht) : (otherSize.ht)) );=0A=
 }=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h=
 " 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QRect=0A=
 {=0A=
 public:=0A=
     QRect() { x1 =3D y1 =3D 0; x2 =3D y2 =3D -1; }=0A=
     QRect( const QPoint &topleft, const QPoint &bottomright );=0A=
     QRect( const QPoint &topleft, const QSize &size );=0A=
     QRect( int left, int top, int width, int height );=0A=
 =0A=
     bool isNull() const;=0A=
     bool isEmpty() const;=0A=
     bool isValid() const;=0A=
     QRect normalize() const;=0A=
 =0A=
     int left() const;=0A=
     int top() const;=0A=
     int right() const;=0A=
     int bottom() const;=0A=
 =0A=
     QCOORD &rLeft();=0A=
     QCOORD &rTop();=0A=
     QCOORD &rRight();=0A=
     QCOORD &rBottom();=0A=
 =0A=
     int x() const;=0A=
     int y() const;=0A=
     void setLeft( int pos );=0A=
     void setTop( int pos );=0A=
     void setRight( int pos );=0A=
     void setBottom( int pos );=0A=
     void setX( int x );=0A=
     void setY( int y );=0A=
 =0A=
     QPoint topLeft() const;=0A=
     QPoint bottomRight() const;=0A=
     QPoint topRight() const;=0A=
     QPoint bottomLeft() const;=0A=
     QPoint center() const;=0A=
 =0A=
     void rect( int *x, int *y, int *w, int *h ) const;=0A=
     void coords( int *x1, int *y1, int *x2, int *y2 ) const;=0A=
 =0A=
     void moveTopLeft( const QPoint &p );=0A=
     void moveBottomRight( const QPoint &p );=0A=
     void moveTopRight( const QPoint &p );=0A=
     void moveBottomLeft( const QPoint &p );=0A=
     void moveCenter( const QPoint &p );=0A=
     void moveBy( int dx, int dy );=0A=
 =0A=
     void setRect( int x, int y, int w, int h );=0A=
     void setCoords( int x1, int y1, int x2, int y2 );=0A=
     void addCoords( int x1, int y1, int x2, int y2 );=0A=
 =0A=
     QSize size() const;=0A=
     int width() const;=0A=
     int height() const;=0A=
     void setWidth( int w );=0A=
     void setHeight( int h );=0A=
     void setSize( const QSize &s );=0A=
 =0A=
     QRect operator|(const QRect &r) const;=0A=
     QRect operator&(const QRect &r) const;=0A=
     QRect& operator|=3D(const QRect &r);=0A=
     QRect& operator&=3D(const QRect &r);=0A=
 =0A=
     bool contains( const QPoint &p, bool proper=3DFALSE ) const;=0A=
     bool contains( int x, int y, bool proper=3DFALSE ) const;=0A=
     bool contains( const QRect &r, bool proper=3DFALSE ) const;=0A=
     QRect unite( const QRect &r ) const;=0A=
     QRect intersect( const QRect &r ) const;=0A=
     bool intersects( const QRect &r ) const;=0A=
 =0A=
     friend bool operator=3D=3D( const QRect &, const QRect & );=0A=
     friend bool operator!=3D( const QRect &, const QRect & );=0A=
 =0A=
 private:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QCOORD x1;=0A=
     QCOORD y1;=0A=
     QCOORD x2;=0A=
     QCOORD y2;=0A=
 =0A=
 };=0A=
 =0A=
  bool operator=3D=3D( const QRect &, const QRect & );=0A=
  bool operator!=3D( const QRect &, const QRect & );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  QDataStream &operator<<( QDataStream &, const QRect & );=0A=
  QDataStream &operator>>( QDataStream &, QRect & );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QRect::QRect( int left, int top, int width, int height )=0A=
 {=0A=
     x1 =3D (QCOORD)left;=0A=
     y1 =3D (QCOORD)top;=0A=
     x2 =3D (QCOORD)(left+width-1);=0A=
     y2 =3D (QCOORD)(top+height-1);=0A=
 }=0A=
 =0A=
 inline bool QRect::isNull() const=0A=
 { return x2 =3D=3D x1-1 && y2 =3D=3D y1-1; }=0A=
 =0A=
 inline bool QRect::isEmpty() const=0A=
 { return x1 > x2 || y1 > y2; }=0A=
 =0A=
 inline bool QRect::isValid() const=0A=
 { return x1 <=3D x2 && y1 <=3D y2; }=0A=
 =0A=
 inline int QRect::left() const=0A=
 { return x1; }=0A=
 =0A=
 inline int QRect::top() const=0A=
 { return y1; }=0A=
 =0A=
 inline int QRect::right() const=0A=
 { return x2; }=0A=
 =0A=
 inline int QRect::bottom() const=0A=
 { return y2; }=0A=
 =0A=
 inline QCOORD &QRect::rLeft()=0A=
 { return x1; }=0A=
 =0A=
 inline QCOORD & QRect::rTop()=0A=
 { return y1; }=0A=
 =0A=
 inline QCOORD & QRect::rRight()=0A=
 { return x2; }=0A=
 =0A=
 inline QCOORD & QRect::rBottom()=0A=
 { return y2; }=0A=
 =0A=
 inline int QRect::x() const=0A=
 { return x1; }=0A=
 =0A=
 inline int QRect::y() const=0A=
 { return y1; }=0A=
 =0A=
 inline void QRect::setLeft( int pos )=0A=
 { x1 =3D (QCOORD)pos; }=0A=
 =0A=
 inline void QRect::setTop( int pos )=0A=
 { y1 =3D (QCOORD)pos; }=0A=
 =0A=
 inline void QRect::setRight( int pos )=0A=
 { x2 =3D (QCOORD)pos; }=0A=
 =0A=
 inline void QRect::setBottom( int pos )=0A=
 { y2 =3D (QCOORD)pos; }=0A=
 =0A=
 inline void QRect::setX( int x )=0A=
 { x1 =3D (QCOORD)x; }=0A=
 =0A=
 inline void QRect::setY( int y )=0A=
 { y1 =3D (QCOORD)y; }=0A=
 =0A=
 inline QPoint QRect::topLeft() const=0A=
 { return QPoint(x1, y1); }=0A=
 =0A=
 inline QPoint QRect::bottomRight() const=0A=
 { return QPoint(x2, y2); }=0A=
 =0A=
 inline QPoint QRect::topRight() const=0A=
 { return QPoint(x2, y1); }=0A=
 =0A=
 inline QPoint QRect::bottomLeft() const=0A=
 { return QPoint(x1, y2); }=0A=
 =0A=
 inline QPoint QRect::center() const=0A=
 { return QPoint((x1+x2)/2, (y1+y2)/2); }=0A=
 =0A=
 inline int QRect::width() const=0A=
 { return x2 - x1 + 1; }=0A=
 =0A=
 inline int QRect::height() const=0A=
 { return y2 - y1 + 1; }=0A=
 =0A=
 inline QSize QRect::size() const=0A=
 { return QSize(x2-x1+1, y2-y1+1); }=0A=
 =0A=
 inline bool QRect::contains( int x, int y, bool proper ) const=0A=
 {=0A=
     if ( proper )=0A=
         return x > x1 && x < x2 &&=0A=
                y > y1 && y < y2;=0A=
     else=0A=
         return x >=3D x1 && x <=3D x2 &&=0A=
                y >=3D y1 && y <=3D y2;=0A=
 }=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion=
 .h" 2=0A=
 =0A=
 =0A=
 =0A=
 class QRegion=0A=
 {=0A=
 public:=0A=
     enum RegionType { Rectangle, Ellipse };=0A=
 =0A=
     QRegion();=0A=
     QRegion( int x, int y, int w, int h, RegionType =3D Rectangle );=0A=
     QRegion( const QRect &, RegionType =3D Rectangle );=0A=
     QRegion( const QPointArray &, bool winding=3DFALSE );=0A=
     QRegion( const QRegion & );=0A=
     QRegion( const QBitmap & );=0A=
    ~QRegion();=0A=
     QRegion &operator=3D( const QRegion & );=0A=
 =0A=
     bool isNull() const;=0A=
     bool isEmpty() const;=0A=
 =0A=
     bool contains( const QPoint &p ) const;=0A=
     bool contains( const QRect &r ) const;=0A=
 =0A=
     void translate( int dx, int dy );=0A=
 =0A=
     QRegion unite( const QRegion & ) const;=0A=
     QRegion intersect( const QRegion &) const;=0A=
     QRegion subtract( const QRegion & ) const;=0A=
     QRegion eor( const QRegion & ) const;=0A=
 =0A=
     QRect boundingRect() const;=0A=
     QMemArray<QRect> rects() const;=0A=
     void setRects( const QRect *, int );=0A=
 =0A=
     const QRegion operator|( const QRegion & ) const;=0A=
     const QRegion operator+( const QRegion & ) const;=0A=
     const QRegion operator&( const QRegion & ) const;=0A=
     const QRegion operator-( const QRegion & ) const;=0A=
     const QRegion operator^( const QRegion & ) const;=0A=
     QRegion& operator|=3D( const QRegion & );=0A=
     QRegion& operator+=3D( const QRegion & );=0A=
     QRegion& operator&=3D( const QRegion & );=0A=
     QRegion& operator-=3D( const QRegion & );=0A=
     QRegion& operator^=3D( const QRegion & );=0A=
 =0A=
     bool operator=3D=3D( const QRegion & ) const;=0A=
     bool operator!=3D( const QRegion &r ) const=0A=
                         { return !(operator=3D=3D(r)); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     Region handle() const { return data->rgn; }=0A=
 # 105 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion=
 .h"=0A=
     friend QDataStream &operator<<( QDataStream &, const QRegion & );=0A=
     friend QDataStream &operator>>( QDataStream &, QRegion & );=0A=
 =0A=
 private:=0A=
     QRegion( bool );=0A=
     QRegion copy() const;=0A=
     void detach();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     void exec( const QByteArray &, int ver =3D 0 );=0A=
     struct QRegionData : public QShared {=0A=
 =0A=
 =0A=
 =0A=
         Region rgn;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
         bool is_null;=0A=
     } *data;=0A=
 };=0A=
 # 153 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion=
 .h"=0A=
  QDataStream &operator<<( QDataStream &, const QRegion & );=0A=
  QDataStream &operator>>( QDataStream &, QRegion & );=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.=
 h" 2=0A=
 =0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h=
 " 1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h=
 "=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=
  1=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast=
 ream.h" 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast=
 ream.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qiodevi=
 ce.h" 1=0A=
 # 95 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qiodevi=
 ce.h"=0A=
 class QIODevice=0A=
 {=0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
     typedef Q_ULONG Offset;=0A=
 =0A=
 =0A=
     QIODevice();=0A=
     virtual ~QIODevice();=0A=
 =0A=
     int flags() const { return ioMode; }=0A=
     int mode() const { return ioMode & 0x00ff; }=0A=
     int state() const { return ioMode & 0xf000; }=0A=
 =0A=
     bool isDirectAccess() const { return ((ioMode & 0x0100) =3D=3D =
 0x0100); }=0A=
     bool isSequentialAccess() const { return ((ioMode & 0x0200) =3D=3D =
 0x0200); }=0A=
     bool isCombinedAccess() const { return ((ioMode & 0x0300) =3D=3D =
 0x0300); }=0A=
     bool isBuffered() const { return ((ioMode & 0x0040) !=3D 0x0040); }=0A=
     bool isRaw() const { return ((ioMode & 0x0040) =3D=3D 0x0040); }=0A=
     bool isSynchronous() const { return ((ioMode & 0x0080) !=3D 0x0080); =
 }=0A=
     bool isAsynchronous() const { return ((ioMode & 0x0080) =3D=3D =
 0x0080); }=0A=
     bool isTranslated() const { return ((ioMode & 0x0010) =3D=3D =
 0x0010); }=0A=
     bool isReadable() const { return ((ioMode & 0x0001) =3D=3D 0x0001); }=0A=
     bool isWritable() const { return ((ioMode & 0x0002) =3D=3D 0x0002); }=0A=
     bool isReadWrite() const { return ((ioMode & 0x0003) =3D=3D 0x0003); =
 }=0A=
     bool isInactive() const { return state() =3D=3D 0; }=0A=
     bool isOpen() const { return state() =3D=3D 0x1000; }=0A=
 =0A=
     int status() const { return ioSt; }=0A=
     void resetStatus() { ioSt =3D 0; }=0A=
 =0A=
     virtual bool open( int mode ) =3D 0;=0A=
     virtual void close() =3D 0;=0A=
     virtual void flush() =3D 0;=0A=
 =0A=
     virtual Offset size() const =3D 0;=0A=
     virtual Offset at() const;=0A=
     virtual bool at( Offset );=0A=
     virtual bool atEnd() const;=0A=
     bool reset() { return at(0); }=0A=
 =0A=
     virtual Q_LONG readBlock( char *data, Q_ULONG maxlen ) =3D 0;=0A=
     virtual Q_LONG writeBlock( const char *data, Q_ULONG len ) =3D 0;=0A=
     virtual Q_LONG readLine( char *data, Q_ULONG maxlen );=0A=
     Q_LONG writeBlock( const QByteArray& data );=0A=
     virtual QByteArray readAll();=0A=
 =0A=
     virtual int getch() =3D 0;=0A=
     virtual int putch( int ) =3D 0;=0A=
     virtual int ungetch( int ) =3D 0;=0A=
 =0A=
 protected:=0A=
     void setFlags( int f ) { ioMode =3D f; }=0A=
     void setType( int );=0A=
     void setMode( int );=0A=
     void setState( int );=0A=
     void setStatus( int );=0A=
     Offset ioIndex;=0A=
 =0A=
 private:=0A=
     int ioMode;=0A=
     int ioSt;=0A=
 =0A=
 private:=0A=
 =0A=
     QIODevice( const QIODevice & );=0A=
     QIODevice &operator=3D( const QIODevice & );=0A=
 =0A=
 };=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast=
 ream.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QDataStream=0A=
 {=0A=
 public:=0A=
     QDataStream();=0A=
     QDataStream( QIODevice * );=0A=
     QDataStream( QByteArray, int mode );=0A=
     virtual ~QDataStream();=0A=
 =0A=
     QIODevice *device() const;=0A=
     void setDevice( QIODevice * );=0A=
     void unsetDevice();=0A=
 =0A=
     bool atEnd() const;=0A=
     bool eof() const;=0A=
 =0A=
     enum ByteOrder { BigEndian, LittleEndian };=0A=
     int byteOrder() const;=0A=
     void setByteOrder( int );=0A=
 =0A=
     bool isPrintableData() const;=0A=
     void setPrintableData( bool );=0A=
 =0A=
     int version() const;=0A=
     void setVersion( int );=0A=
 =0A=
     QDataStream &operator>>( Q_INT8 &i );=0A=
     QDataStream &operator>>( Q_UINT8 &i );=0A=
     QDataStream &operator>>( Q_INT16 &i );=0A=
     QDataStream &operator>>( Q_UINT16 &i );=0A=
     QDataStream &operator>>( Q_INT32 &i );=0A=
     QDataStream &operator>>( Q_UINT32 &i );=0A=
     QDataStream &operator>>( Q_LONG &i );=0A=
     QDataStream &operator>>( Q_ULONG &i );=0A=
 =0A=
     QDataStream &operator>>( float &f );=0A=
     QDataStream &operator>>( double &f );=0A=
     QDataStream &operator>>( char *&str );=0A=
 =0A=
     QDataStream &operator<<( Q_INT8 i );=0A=
     QDataStream &operator<<( Q_UINT8 i );=0A=
     QDataStream &operator<<( Q_INT16 i );=0A=
     QDataStream &operator<<( Q_UINT16 i );=0A=
     QDataStream &operator<<( Q_INT32 i );=0A=
     QDataStream &operator<<( Q_UINT32 i );=0A=
     QDataStream &operator<<( Q_LONG i );=0A=
     QDataStream &operator<<( Q_ULONG i );=0A=
     QDataStream &operator<<( float f );=0A=
     QDataStream &operator<<( double f );=0A=
     QDataStream &operator<<( const char *str );=0A=
 =0A=
     QDataStream &readBytes( char *&, uint &len );=0A=
     QDataStream &readRawBytes( char *, uint len );=0A=
 =0A=
     QDataStream &writeBytes( const char *, uint len );=0A=
     QDataStream &writeRawBytes( const char *, uint len );=0A=
 =0A=
 private:=0A=
     QIODevice *dev;=0A=
     bool owndev;=0A=
     int byteorder;=0A=
     bool printable;=0A=
     bool noswap;=0A=
     int ver;=0A=
 =0A=
 private:=0A=
 =0A=
     QDataStream( const QDataStream & );=0A=
     QDataStream &operator=3D( const QDataStream & );=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QIODevice *QDataStream::device() const=0A=
 { return dev; }=0A=
 =0A=
 inline bool QDataStream::atEnd() const=0A=
 { return dev ? dev->atEnd() : TRUE; }=0A=
 =0A=
 inline bool QDataStream::eof() const=0A=
 { return atEnd(); }=0A=
 =0A=
 inline int QDataStream::byteOrder() const=0A=
 { return byteorder; }=0A=
 =0A=
 inline bool QDataStream::isPrintableData() const=0A=
 { return printable; }=0A=
 =0A=
 inline void QDataStream::setPrintableData( bool p )=0A=
 { printable =3D p; }=0A=
 =0A=
 inline int QDataStream::version() const=0A=
 { return ver; }=0A=
 =0A=
 inline void QDataStream::setVersion( int v )=0A=
 { ver =3D v; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator>>( Q_UINT8 &i )=0A=
 { return *this >> (Q_INT8&)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator>>( Q_UINT16 &i )=0A=
 { return *this >> (Q_INT16&)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator>>( Q_UINT32 &i )=0A=
 { return *this >> (Q_INT32&)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator>>( Q_ULONG &i )=0A=
 { return *this >> (Q_LONG&)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator<<( Q_UINT8 i )=0A=
 { return *this << (Q_INT8)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator<<( Q_UINT16 i )=0A=
 { return *this << (Q_INT16)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator<<( Q_UINT32 i )=0A=
 { return *this << (Q_INT32)i; }=0A=
 =0A=
 inline QDataStream &QDataStream::operator<<( Q_ULONG i )=0A=
 { return *this << (Q_LONG)i; }=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=
  2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpair.h=
 " 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpair.h=
 "=0A=
 template <class T1, class T2>=0A=
 struct QPair=0A=
 {=0A=
     typedef T1 first_type;=0A=
     typedef T2 second_type;=0A=
 =0A=
     QPair()=0A=
         : first( T1() ), second( T2() )=0A=
     {}=0A=
     QPair( const T1& t1, const T2& t2 )=0A=
         : first( t1 ), second( t2 )=0A=
     {}=0A=
 =0A=
     T1 first;=0A=
     T2 second;=0A=
 };=0A=
 =0A=
 template <class T1, class T2>=0A=
 inline bool operator=3D=3D( const QPair<T1, T2>& x, const QPair<T1, T2>& =
 y )=0A=
 {=0A=
     return x.first =3D=3D y.first && x.second =3D=3D y.second;=0A=
 }=0A=
 =0A=
 template <class T1, class T2>=0A=
 inline bool operator<( const QPair<T1, T2>& x, const QPair<T1, T2>& y )=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
     return x.first < y.first || ( !( y.first < x.first ) && x.second < =
 y.second );=0A=
 }=0A=
 =0A=
 template <class T1, class T2>=0A=
 inline QPair<T1, T2> qMakePair( const T1& x, const T2& y )=0A=
 {=0A=
     return QPair<T1, T2>( x, y );=0A=
 }=0A=
 # 45 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=
  2=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h" =
 1=0A=
 # 42 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A=
 # 1 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtextst=
 ream.h" 1=0A=
 # 48 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtextst=
 ream.h"=0A=
 class QTextCodec;=0A=
 class QTextDecoder;=0A=
 =0A=
 class QTextStreamPrivate;=0A=
 =0A=
 class QTextStream=0A=
 {=0A=
 public:=0A=
     enum Encoding { Locale, Latin1, Unicode, UnicodeNetworkOrder,=0A=
                     UnicodeReverse, RawUnicode, UnicodeUTF8 };=0A=
 =0A=
     void setEncoding( Encoding );=0A=
 =0A=
     void setCodec( QTextCodec* );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QTextStream();=0A=
     QTextStream( QIODevice * );=0A=
     QTextStream( QString*, int mode );=0A=
     QTextStream( QString&, int mode );=0A=
     QTextStream( QByteArray, int mode );=0A=
     QTextStream( FILE *, int mode );=0A=
     virtual ~QTextStream();=0A=
 =0A=
     QIODevice *device() const;=0A=
     void setDevice( QIODevice * );=0A=
     void unsetDevice();=0A=
 =0A=
     bool atEnd() const;=0A=
     bool eof() const;=0A=
 =0A=
     QTextStream &operator>>( QChar & );=0A=
     QTextStream &operator>>( char & );=0A=
     QTextStream &operator>>( signed short & );=0A=
     QTextStream &operator>>( unsigned short & );=0A=
     QTextStream &operator>>( signed int & );=0A=
     QTextStream &operator>>( unsigned int & );=0A=
     QTextStream &operator>>( signed long & );=0A=
     QTextStream &operator>>( unsigned long & );=0A=
     QTextStream &operator>>( float & );=0A=
     QTextStream &operator>>( double & );=0A=
     QTextStream &operator>>( char * );=0A=
     QTextStream &operator>>( QString & );=0A=
     QTextStream &operator>>( QCString & );=0A=
 =0A=
     QTextStream &operator<<( QChar );=0A=
     QTextStream &operator<<( char );=0A=
     QTextStream &operator<<( signed short );=0A=
     QTextStream &operator<<( unsigned short );=0A=
     QTextStream &operator<<( signed int );=0A=
     QTextStream &operator<<( unsigned int );=0A=
     QTextStream &operator<<( signed long );=0A=
     QTextStream &operator<<( unsigned long );=0A=
     QTextStream &operator<<( float );=0A=
     QTextStream &operator<<( double );=0A=
     QTextStream &operator<<( const char* );=0A=
     QTextStream &operator<<( const QString & );=0A=
     QTextStream &operator<<( const QCString & );=0A=
     QTextStream &operator<<( void * );=0A=
 =0A=
     QTextStream &readRawBytes( char *, uint len );=0A=
     QTextStream &writeRawBytes( const char* , uint len );=0A=
 =0A=
     QString readLine();=0A=
     QString read();=0A=
     void skipWhiteSpace();=0A=
 =0A=
     enum {=0A=
         skipws =3D 0x0001,=0A=
         left =3D 0x0002,=0A=
         right =3D 0x0004,=0A=
         internal =3D 0x0008,=0A=
         bin =3D 0x0010,=0A=
         oct =3D 0x0020,=0A=
         dec =3D 0x0040,=0A=
         hex =3D 0x0080,=0A=
         showbase =3D 0x0100,=0A=
         showpoint =3D 0x0200,=0A=
         uppercase =3D 0x0400,=0A=
         showpos =3D 0x0800,=0A=
         scientific=3D 0x1000,=0A=
         fixed =3D 0x2000=0A=
     };=0A=
 =0A=
     static const int basefield;=0A=
     static const int adjustfield;=0A=
     static const int floatfield;=0A=
 =0A=
     int flags() const;=0A=
     int flags( int f );=0A=
     int setf( int bits );=0A=
     int setf( int bits, int mask );=0A=
     int unsetf( int bits );=0A=
 =0A=
     void reset();=0A=
 =0A=
     int width() const;=0A=
     int width( int );=0A=
     int fill() const;=0A=
     int fill( int );=0A=
     int precision() const;=0A=
     int precision( int );=0A=
 =0A=
 private:=0A=
     long input_int();=0A=
     void init();=0A=
     QTextStream &output_int( int, ulong, bool );=0A=
     QIODevice *dev;=0A=
 =0A=
     bool isNetworkOrder() { return internalOrder =3D=3D FALSE; }=0A=
 =0A=
 =0A=
     int fflags;=0A=
     int fwidth;=0A=
     int fillchar;=0A=
     int fprec;=0A=
     bool fstrm;=0A=
     bool owndev;=0A=
     QTextCodec *mapper;=0A=
     QTextStreamPrivate * d;=0A=
     QChar ungetcBuf;=0A=
     bool latin1;=0A=
     bool internalOrder;=0A=
     bool doUnicodeHeader;=0A=
     void *reserved_ptr;=0A=
 =0A=
     QChar eat_ws();=0A=
     uint ts_getline( QChar* );=0A=
     void ts_ungetc( QChar );=0A=
     QChar ts_getc();=0A=
     uint ts_getbuf( QChar*, uint );=0A=
     void ts_putc(int);=0A=
     void ts_putc(QChar);=0A=
     bool ts_isspace(QChar);=0A=
     bool ts_isdigit(QChar);=0A=
     ulong input_bin();=0A=
     ulong input_oct();=0A=
     ulong input_dec();=0A=
     ulong input_hex();=0A=
     double input_double();=0A=
     QTextStream &writeBlock( const char* p, uint len );=0A=
     QTextStream &writeBlock( const QChar* p, uint len );=0A=
 =0A=
 private:=0A=
 =0A=
     QTextStream( const QTextStream & );=0A=
     QTextStream &operator=3D( const QTextStream & );=0A=
 =0A=
 };=0A=
 =0A=
 typedef QTextStream QTS;=0A=
 =0A=
 class QTextIStream : public QTextStream {=0A=
 public:=0A=
     QTextIStream( const QString* s ) :=0A=
         QTextStream((QString*)s,0x0001) { }=0A=
     QTextIStream( QByteArray ba ) :=0A=
         QTextStream(ba,0x0001) { }=0A=
     QTextIStream( FILE *f ) :=0A=
         QTextStream(f,0x0001) { }=0A=
 };=0A=
 =0A=
 class QTextOStream : public QTextStream {=0A=
 public:=0A=
     QTextOStream( QString* s ) :=0A=
         QTextStream(s,0x0002) { }=0A=
     QTextOStream( QByteArray ba ) :=0A=
         QTextStream(ba,0x0002) { }=0A=
     QTextOStream( FILE *f ) :=0A=
         QTextStream(f,0x0002) { }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QIODevice *QTextStream::device() const=0A=
 { return dev; }=0A=
 =0A=
 inline bool QTextStream::atEnd() const=0A=
 { return dev ? dev->atEnd() : FALSE; }=0A=
 =0A=
 inline bool QTextStream::eof() const=0A=
 { return atEnd(); }=0A=
 =0A=
 inline int QTextStream::flags() const=0A=
 { return fflags; }=0A=
 =0A=
 inline int QTextStream::flags( int f )=0A=
 { int oldf =3D fflags; fflags =3D f; return oldf; }=0A=
 =0A=
 inline int QTextStream::setf( int bits )=0A=
 { int oldf =3D fflags; fflags |=3D bits; return oldf; }=0A=
 =0A=
 inline int QTextStream::setf( int bits, int mask )=0A=
 { int oldf =3D fflags; fflags =3D (fflags & ~mask) | (bits & mask); =
 return oldf; }=0A=
 =0A=
 inline int QTextStream::unsetf( int bits )=0A=
 { int oldf =3D fflags; fflags &=3D ~bits; return oldf; }=0A=
 =0A=
 inline int QTextStream::width() const=0A=
 { return fwidth; }=0A=
 =0A=
 inline int QTextStream::width( int w )=0A=
 { int oldw =3D fwidth; fwidth =3D w; return oldw; }=0A=
 =0A=
 inline int QTextStream::fill() const=0A=
 { return fillchar; }=0A=
 =0A=
 inline int QTextStream::fill( int f )=0A=
 { int oldc =3D fillchar; fillchar =3D f; return oldc; }=0A=
 =0A=
 inline int QTextStream::precision() const=0A=
 { return fprec; }=0A=
 =0A=
 inline int QTextStream::precision( int p )=0A=
 { int oldp =3D fprec; fprec =3D p; return oldp; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline QChar QTextStream::ts_getc()=0A=
 { QChar r; return ( ts_getbuf( &r,1 ) =3D=3D 1 ? r : =
 QChar((ushort)0xffff) ); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef QTextStream & (*QTSFUNC)(QTextStream &);=0A=
 typedef int (QTextStream::*QTSMFI)(int);=0A=
 =0A=
 class QTSManip {=0A=
 public:=0A=
     QTSManip( QTSMFI m, int a ) { mf=3Dm; arg=3Da; }=0A=
     void exec( QTextStream &s ) { (s.*mf)(arg); }=0A=
 private:=0A=
     QTSMFI mf;=0A=
     int arg;=0A=
 };=0A=
 =0A=
  inline QTextStream &operator>>( QTextStream &s, QTSFUNC f )=0A=
 { return (*f)( s ); }=0A=
 =0A=
  inline QTextStream &operator<<( QTextStream &s, QTSFUNC f )=0A=
 { return (*f)( s ); }=0A=
 =0A=
  inline QTextStream &operator<<( QTextStream &s, QTSManip m )=0A=
 { m.exec(s); return s; }=0A=
 =0A=
  QTextStream &bin( QTextStream &s );=0A=
  QTextStream &oct( QTextStream &s );=0A=
  QTextStream &dec( QTextStream &s );=0A=
  QTextStream &hex( QTextStream &s );=0A=
  QTextStream &endl( QTextStream &s );=0A=
  QTextStream &flush( QTextStream &s );=0A=
  QTextStream &ws( QTextStream &s );=0A=
  QTextStream &reset( QTextStream &s );=0A=
 =0A=
  inline QTSManip qSetW( int w )=0A=
 {=0A=
     QTSMFI func =3D &QTextStream::width;=0A=
     return QTSManip(func,w);=0A=
 }=0A=
 =0A=
  inline QTSManip qSetFill( int f )=0A=
 {=0A=
     QTSMFI func =3D &QTextStream::fill;=0A=
     return QTSManip(func,f);=0A=
 }=0A=
 =0A=
  inline QTSManip qSetPrecision( int p )=0A=
 {=0A=
     QTSMFI func =3D &QTextStream::precision;=0A=
     return QTSManip(func,p);=0A=
 }=0A=
 # 43 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h" =
 2=0A=
 # 54 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A=
 template <class T>=0A=
 class QTextOStreamIterator=0A=
 {=0A=
 protected:=0A=
     QTextOStream& stream;=0A=
     QString separator;=0A=
 =0A=
 public:=0A=
     QTextOStreamIterator( QTextOStream& s) : stream( s ) {}=0A=
     QTextOStreamIterator( QTextOStream& s, const QString& sep )=0A=
         : stream( s ), separator( sep ) {}=0A=
     QTextOStreamIterator<T>& operator=3D ( const T& x ) {=0A=
         stream << x;=0A=
         if ( !separator.isEmpty() )=0A=
             stream << separator;=0A=
         return *this;=0A=
     }=0A=
     QTextOStreamIterator<T>& operator*() { return *this; }=0A=
     QTextOStreamIterator<T>& operator++() { return *this; }=0A=
     QTextOStreamIterator<T>& operator++(int) { return *this; }=0A=
 };=0A=
 =0A=
 =0A=
 template <class InputIterator, class OutputIterator>=0A=
 inline OutputIterator qCopy( InputIterator _begin, InputIterator _end,=0A=
                              OutputIterator _dest )=0A=
 {=0A=
     while( _begin !=3D _end )=0A=
         *_dest++ =3D *_begin++;=0A=
     return _dest;=0A=
 }=0A=
 =0A=
 template <class BiIterator, class BiOutputIterator>=0A=
 inline BiOutputIterator qCopyBackward( BiIterator _begin, BiIterator =
 _end,=0A=
                                        BiOutputIterator _dest )=0A=
 {=0A=
     while ( _begin !=3D _end )=0A=
         *--_dest =3D *--_end;=0A=
     return _dest;=0A=
 }=0A=
 =0A=
 template <class InputIterator1, class InputIterator2>=0A=
 inline bool qEqual( InputIterator1 first1, InputIterator1 last1, =
 InputIterator2 first2 )=0A=
 {=0A=
     for ( ; first1 !=3D last1; ++first1, ++first2 )=0A=
         if ( *first1 !=3D *first2 )=0A=
             return FALSE;=0A=
     return TRUE;=0A=
 }=0A=
 =0A=
 template <class ForwardIterator, class T>=0A=
 inline void qFill( ForwardIterator first, ForwardIterator last, const T& =
 val )=0A=
 {=0A=
     for ( ; first !=3D last; ++first )=0A=
         *first =3D val;=0A=
 }=0A=
 # 126 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A=
 template <class InputIterator, class T>=0A=
 inline InputIterator qFind( InputIterator first, InputIterator last,=0A=
                             const T& val )=0A=
 {=0A=
     while ( first !=3D last && *first !=3D val )=0A=
         ++first;=0A=
     return first;=0A=
 }=0A=
 =0A=
 template <class InputIterator, class T, class Size>=0A=
 inline void qCount( InputIterator first, InputIterator last, const T& =
 value,=0A=
                     Size& n )=0A=
 {=0A=
     for ( ; first !=3D last; ++first )=0A=
         if ( *first =3D=3D value )=0A=
             ++n;=0A=
 }=0A=
 =0A=
 template <class T>=0A=
 inline void qSwap( T& _value1, T& _value2 )=0A=
 {=0A=
     T tmp =3D _value1;=0A=
     _value1 =3D _value2;=0A=
     _value2 =3D tmp;=0A=
 }=0A=
 =0A=
 =0A=
 template <class InputIterator>=0A=
 inline void qBubbleSort( InputIterator b, InputIterator e )=0A=
 {=0A=
 =0A=
     InputIterator last =3D e;=0A=
     --last;=0A=
 =0A=
     if ( last =3D=3D b )=0A=
         return;=0A=
 =0A=
 =0A=
     while( b !=3D last ) {=0A=
         bool swapped =3D FALSE;=0A=
         InputIterator swap_pos =3D b;=0A=
         InputIterator x =3D e;=0A=
         InputIterator y =3D x;=0A=
         y--;=0A=
         do {=0A=
             --x;=0A=
             --y;=0A=
             if ( *x < *y ) {=0A=
                 swapped =3D TRUE;=0A=
                 qSwap( *x, *y );=0A=
                 swap_pos =3D y;=0A=
             }=0A=
         } while( y !=3D b );=0A=
         if ( !swapped )=0A=
             return;=0A=
         b =3D swap_pos;=0A=
         b++;=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 template <class Container>=0A=
 inline void qBubbleSort( Container &c )=0A=
 {=0A=
   qBubbleSort( c.begin(), c.end() );=0A=
 }=0A=
 =0A=
 =0A=
 template <class Value>=0A=
 inline void qHeapSortPushDown( Value* heap, int first, int last )=0A=
 {=0A=
     int r =3D first;=0A=
     while( r <=3D last/2 ) {=0A=
 =0A=
         if ( last =3D=3D 2*r ) {=0A=
 =0A=
             if ( heap[r] > heap[ 2*r ] )=0A=
                 qSwap( heap[r], heap[ 2*r ] );=0A=
 =0A=
             r =3D last;=0A=
         } else {=0A=
             if ( heap[r] > heap[ 2*r ] && heap[ 2*r ] <=3D heap[ 2*r+1 ] =
 ) {=0A=
 =0A=
                 qSwap( heap[r], heap[ 2*r ] );=0A=
                 r *=3D 2;=0A=
             } else if ( heap[r] > heap[ 2*r+1 ] &&=0A=
                         heap[ 2*r+1 ] < heap[ 2*r ] ) {=0A=
 =0A=
                 qSwap( heap[r], heap[ 2*r+1 ] );=0A=
                 r =3D 2*r+1;=0A=
             } else {=0A=
 =0A=
                 r =3D last;=0A=
             }=0A=
         }=0A=
     }=0A=
 }=0A=
 =0A=
 =0A=
 template <class InputIterator, class Value>=0A=
 inline void qHeapSortHelper( InputIterator b, InputIterator e, Value, =
 uint n )=0A=
 {=0A=
 =0A=
     InputIterator insert =3D b;=0A=
     Value* realheap =3D new Value[ n ];=0A=
 =0A=
     Value* heap =3D realheap - 1;=0A=
     int size =3D 0;=0A=
     for( ; insert !=3D e; ++insert ) {=0A=
         heap[++size] =3D *insert;=0A=
         int i =3D size;=0A=
         while( i > 1 && heap[i] < heap[ i / 2 ] ) {=0A=
             qSwap( heap[i], heap[ i / 2 ] );=0A=
             i /=3D 2;=0A=
         }=0A=
     }=0A=
 =0A=
 =0A=
     for( uint i =3D n; i > 0; i-- ) {=0A=
         *b++ =3D heap[1];=0A=
         if ( i > 1 ) {=0A=
             heap[1] =3D heap[i];=0A=
             qHeapSortPushDown( heap, 1, (int)i - 1 );=0A=
         }=0A=
     }=0A=
 =0A=
     delete[] realheap;=0A=
 }=0A=
 =0A=
 =0A=
 template <class InputIterator>=0A=
 inline void qHeapSort( InputIterator b, InputIterator e )=0A=
 {=0A=
 =0A=
     if ( b =3D=3D e )=0A=
         return;=0A=
 =0A=
 =0A=
     InputIterator it =3D b;=0A=
     uint n =3D 0;=0A=
     while ( it !=3D e ) {=0A=
         ++n;=0A=
         ++it;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     qHeapSortHelper( b, e, *b, n );=0A=
 }=0A=
 =0A=
 =0A=
 template <class Container>=0A=
 inline void qHeapSort( Container &c )=0A=
 {=0A=
     if ( c.begin() =3D=3D c.end() )=0A=
         return;=0A=
 =0A=
 =0A=
 =0A=
     qHeapSortHelper( c.begin(), c.end(), *(c.begin()), (uint)c.count() );=0A=
 }=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=
  2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/map" 1 3=0A=
 # 65 "/usr/local/gcc3.1/include/g++-v3/map" 3=0A=
 =0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tree.h" 1 3=0A=
 # 91 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tree.h" 3=0A=
 namespace std=0A=
 {=0A=
   enum _Rb_tree_color { _M_red =3D false, _M_black =3D true };=0A=
 =0A=
   struct _Rb_tree_node_base=0A=
   {=0A=
     typedef _Rb_tree_node_base* _Base_ptr;=0A=
 =0A=
     _Rb_tree_color _M_color;=0A=
     _Base_ptr _M_parent;=0A=
     _Base_ptr _M_left;=0A=
     _Base_ptr _M_right;=0A=
 =0A=
     static _Base_ptr=0A=
     _S_minimum(_Base_ptr __x)=0A=
     {=0A=
       while (__x->_M_left !=3D 0) __x =3D __x->_M_left;=0A=
       return __x;=0A=
     }=0A=
 =0A=
     static _Base_ptr=0A=
     _S_maximum(_Base_ptr __x)=0A=
     {=0A=
       while (__x->_M_right !=3D 0) __x =3D __x->_M_right;=0A=
       return __x;=0A=
     }=0A=
   };=0A=
 =0A=
   template<typename _Val>=0A=
     struct _Rb_tree_node : public _Rb_tree_node_base=0A=
     {=0A=
       typedef _Rb_tree_node<_Val>* _Link_type;=0A=
       _Val _M_value_field;=0A=
     };=0A=
 =0A=
   struct _Rb_tree_base_iterator=0A=
   {=0A=
     typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;=0A=
     typedef bidirectional_iterator_tag iterator_category;=0A=
     typedef ptrdiff_t difference_type;=0A=
 =0A=
     _Base_ptr _M_node;=0A=
 =0A=
     void=0A=
     _M_increment()=0A=
     {=0A=
       if (_M_node->_M_right !=3D 0)=0A=
         {=0A=
           _M_node =3D _M_node->_M_right;=0A=
           while (_M_node->_M_left !=3D 0)=0A=
             _M_node =3D _M_node->_M_left;=0A=
         }=0A=
       else=0A=
         {=0A=
           _Base_ptr __y =3D _M_node->_M_parent;=0A=
           while (_M_node =3D=3D __y->_M_right)=0A=
             {=0A=
               _M_node =3D __y;=0A=
               __y =3D __y->_M_parent;=0A=
             }=0A=
           if (_M_node->_M_right !=3D __y)=0A=
             _M_node =3D __y;=0A=
         }=0A=
     }=0A=
 =0A=
     void=0A=
     _M_decrement()=0A=
     {=0A=
       if (_M_node->_M_color =3D=3D _M_red=0A=
           && _M_node->_M_parent->_M_parent =3D=3D _M_node)=0A=
         _M_node =3D _M_node->_M_right;=0A=
       else if (_M_node->_M_left !=3D 0)=0A=
         {=0A=
           _Base_ptr __y =3D _M_node->_M_left;=0A=
           while (__y->_M_right !=3D 0)=0A=
             __y =3D __y->_M_right;=0A=
           _M_node =3D __y;=0A=
         }=0A=
       else=0A=
         {=0A=
           _Base_ptr __y =3D _M_node->_M_parent;=0A=
           while (_M_node =3D=3D __y->_M_left)=0A=
             {=0A=
               _M_node =3D __y;=0A=
               __y =3D __y->_M_parent;=0A=
             }=0A=
           _M_node =3D __y;=0A=
         }=0A=
     }=0A=
   };=0A=
 =0A=
   template<typename _Val, typename _Ref, typename _Ptr>=0A=
     struct _Rb_tree_iterator : public _Rb_tree_base_iterator=0A=
     {=0A=
       typedef _Val value_type;=0A=
       typedef _Ref reference;=0A=
       typedef _Ptr pointer;=0A=
       typedef _Rb_tree_iterator<_Val, _Val&, _Val*> iterator;=0A=
       typedef _Rb_tree_iterator<_Val, const _Val&, const _Val*>=0A=
       const_iterator;=0A=
       typedef _Rb_tree_iterator<_Val, _Ref, _Ptr> _Self;=0A=
       typedef _Rb_tree_node<_Val>* _Link_type;=0A=
 =0A=
       _Rb_tree_iterator() {}=0A=
       _Rb_tree_iterator(_Link_type __x) { _M_node =3D __x; }=0A=
       _Rb_tree_iterator(const iterator& __it) { _M_node =3D =
 __it._M_node; }=0A=
 =0A=
       reference=0A=
       operator*() const { return _Link_type(_M_node)->_M_value_field; }=0A=
 =0A=
       pointer=0A=
       operator->() const { return &(operator*()); }=0A=
 =0A=
       _Self&=0A=
       operator++()=0A=
       {=0A=
         _M_increment();=0A=
         return *this;=0A=
       }=0A=
 =0A=
       _Self=0A=
       operator++(int)=0A=
       {=0A=
         _Self __tmp =3D *this;=0A=
         _M_increment();=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
       _Self&=0A=
       operator--() { _M_decrement(); return *this; }=0A=
 =0A=
       _Self=0A=
       operator--(int)=0A=
       {=0A=
         _Self __tmp =3D *this;=0A=
         _M_decrement();=0A=
         return __tmp;=0A=
       }=0A=
   };=0A=
 =0A=
   template<typename _Val, typename _Ref, typename _Ptr>=0A=
     inline bool=0A=
     operator=3D=3D(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x,=0A=
                const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y)=0A=
     { return __x._M_node =3D=3D __y._M_node; }=0A=
 =0A=
   template<typename _Val>=0A=
     inline bool=0A=
     operator=3D=3D(const _Rb_tree_iterator<_Val, const _Val&, const =
 _Val*>& __x,=0A=
                const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y)=0A=
     { return __x._M_node =3D=3D __y._M_node; }=0A=
 =0A=
   template<typename _Val>=0A=
     inline bool=0A=
     operator=3D=3D(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x,=0A=
                const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& =
 __y)=0A=
     { return __x._M_node =3D=3D __y._M_node; }=0A=
 =0A=
   template<typename _Val, typename _Ref, typename _Ptr>=0A=
     inline bool=0A=
     operator!=3D(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x,=0A=
                const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y)=0A=
     { return __x._M_node !=3D __y._M_node; }=0A=
 =0A=
   template<typename _Val>=0A=
     inline bool=0A=
     operator!=3D(const _Rb_tree_iterator<_Val, const _Val&, const =
 _Val*>& __x,=0A=
                const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y)=0A=
     { return __x._M_node !=3D __y._M_node; }=0A=
 =0A=
   template<typename _Val>=0A=
     inline bool=0A=
     operator!=3D(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x,=0A=
                const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& =
 __y)=0A=
     { return __x._M_node !=3D __y._M_node; }=0A=
 =0A=
   inline void=0A=
   _Rb_tree_rotate_left(_Rb_tree_node_base* __x, _Rb_tree_node_base*& =
 __root)=0A=
   {=0A=
     _Rb_tree_node_base* __y =3D __x->_M_right;=0A=
     __x->_M_right =3D __y->_M_left;=0A=
     if (__y->_M_left !=3D0)=0A=
       __y->_M_left->_M_parent =3D __x;=0A=
     __y->_M_parent =3D __x->_M_parent;=0A=
 =0A=
     if (__x =3D=3D __root)=0A=
       __root =3D __y;=0A=
     else if (__x =3D=3D __x->_M_parent->_M_left)=0A=
       __x->_M_parent->_M_left =3D __y;=0A=
     else=0A=
       __x->_M_parent->_M_right =3D __y;=0A=
     __y->_M_left =3D __x;=0A=
     __x->_M_parent =3D __y;=0A=
   }=0A=
 =0A=
   inline void=0A=
   _Rb_tree_rotate_right(_Rb_tree_node_base* __x, _Rb_tree_node_base*& =
 __root)=0A=
   {=0A=
     _Rb_tree_node_base* __y =3D __x->_M_left;=0A=
     __x->_M_left =3D __y->_M_right;=0A=
     if (__y->_M_right !=3D 0)=0A=
       __y->_M_right->_M_parent =3D __x;=0A=
     __y->_M_parent =3D __x->_M_parent;=0A=
 =0A=
     if (__x =3D=3D __root)=0A=
       __root =3D __y;=0A=
     else if (__x =3D=3D __x->_M_parent->_M_right)=0A=
       __x->_M_parent->_M_right =3D __y;=0A=
     else=0A=
       __x->_M_parent->_M_left =3D __y;=0A=
     __y->_M_right =3D __x;=0A=
     __x->_M_parent =3D __y;=0A=
   }=0A=
 =0A=
   inline void=0A=
   _Rb_tree_rebalance(_Rb_tree_node_base* __x, _Rb_tree_node_base*& =
 __root)=0A=
   {=0A=
     __x->_M_color =3D _M_red;=0A=
     while (__x !=3D __root=0A=
            && __x->_M_parent->_M_color =3D=3D _M_red)=0A=
       {=0A=
         if (__x->_M_parent =3D=3D __x->_M_parent->_M_parent->_M_left)=0A=
           {=0A=
             _Rb_tree_node_base* __y =3D =
 __x->_M_parent->_M_parent->_M_right;=0A=
             if (__y && __y->_M_color =3D=3D _M_red)=0A=
               {=0A=
                 __x->_M_parent->_M_color =3D _M_black;=0A=
                 __y->_M_color =3D _M_black;=0A=
                 __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A=
                 __x =3D __x->_M_parent->_M_parent;=0A=
               }=0A=
             else=0A=
               {=0A=
                 if (__x =3D=3D __x->_M_parent->_M_right)=0A=
                   {=0A=
                     __x =3D __x->_M_parent;=0A=
                     _Rb_tree_rotate_left(__x, __root);=0A=
                   }=0A=
                 __x->_M_parent->_M_color =3D _M_black;=0A=
                 __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A=
                 _Rb_tree_rotate_right(__x->_M_parent->_M_parent, __root);=0A=
               }=0A=
           }=0A=
         else=0A=
           {=0A=
             _Rb_tree_node_base* __y =3D =
 __x->_M_parent->_M_parent->_M_left;=0A=
             if (__y && __y->_M_color =3D=3D _M_red)=0A=
               {=0A=
                 __x->_M_parent->_M_color =3D _M_black;=0A=
                 __y->_M_color =3D _M_black;=0A=
                 __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A=
                 __x =3D __x->_M_parent->_M_parent;=0A=
               }=0A=
             else=0A=
               {=0A=
                 if (__x =3D=3D __x->_M_parent->_M_left)=0A=
                   {=0A=
                     __x =3D __x->_M_parent;=0A=
                     _Rb_tree_rotate_right(__x, __root);=0A=
                   }=0A=
                 __x->_M_parent->_M_color =3D _M_black;=0A=
                 __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A=
                 _Rb_tree_rotate_left(__x->_M_parent->_M_parent, __root);=0A=
               }=0A=
           }=0A=
       }=0A=
     __root->_M_color =3D _M_black;=0A=
   }=0A=
 =0A=
   inline _Rb_tree_node_base*=0A=
   _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* __z,=0A=
                                _Rb_tree_node_base*& __root,=0A=
                                _Rb_tree_node_base*& __leftmost,=0A=
                                _Rb_tree_node_base*& __rightmost)=0A=
   {=0A=
     _Rb_tree_node_base* __y =3D __z;=0A=
     _Rb_tree_node_base* __x =3D 0;=0A=
     _Rb_tree_node_base* __x_parent =3D 0;=0A=
     if (__y->_M_left =3D=3D 0)=0A=
       __x =3D __y->_M_right;=0A=
     else=0A=
       if (__y->_M_right =3D=3D 0)=0A=
         __x =3D __y->_M_left;=0A=
       else=0A=
         {=0A=
 =0A=
           __y =3D __y->_M_right;=0A=
           while (__y->_M_left !=3D 0)=0A=
             __y =3D __y->_M_left;=0A=
           __x =3D __y->_M_right;=0A=
         }=0A=
     if (__y !=3D __z)=0A=
       {=0A=
 =0A=
         __z->_M_left->_M_parent =3D __y;=0A=
         __y->_M_left =3D __z->_M_left;=0A=
         if (__y !=3D __z->_M_right)=0A=
           {=0A=
             __x_parent =3D __y->_M_parent;=0A=
             if (__x) __x->_M_parent =3D __y->_M_parent;=0A=
             __y->_M_parent->_M_left =3D __x;=0A=
             __y->_M_right =3D __z->_M_right;=0A=
             __z->_M_right->_M_parent =3D __y;=0A=
           }=0A=
         else=0A=
           __x_parent =3D __y;=0A=
         if (__root =3D=3D __z)=0A=
           __root =3D __y;=0A=
         else if (__z->_M_parent->_M_left =3D=3D __z)=0A=
           __z->_M_parent->_M_left =3D __y;=0A=
         else=0A=
           __z->_M_parent->_M_right =3D __y;=0A=
         __y->_M_parent =3D __z->_M_parent;=0A=
         std::swap(__y->_M_color, __z->_M_color);=0A=
         __y =3D __z;=0A=
 =0A=
       }=0A=
     else=0A=
       {=0A=
         __x_parent =3D __y->_M_parent;=0A=
         if (__x)=0A=
           __x->_M_parent =3D __y->_M_parent;=0A=
         if (__root =3D=3D __z)=0A=
           __root =3D __x;=0A=
         else=0A=
           if (__z->_M_parent->_M_left =3D=3D __z)=0A=
             __z->_M_parent->_M_left =3D __x;=0A=
           else=0A=
             __z->_M_parent->_M_right =3D __x;=0A=
         if (__leftmost =3D=3D __z)=0A=
           if (__z->_M_right =3D=3D 0)=0A=
             __leftmost =3D __z->_M_parent;=0A=
 =0A=
           else=0A=
             __leftmost =3D _Rb_tree_node_base::_S_minimum(__x);=0A=
         if (__rightmost =3D=3D __z)=0A=
           if (__z->_M_left =3D=3D 0)=0A=
             __rightmost =3D __z->_M_parent;=0A=
 =0A=
           else=0A=
             __rightmost =3D _Rb_tree_node_base::_S_maximum(__x);=0A=
       }=0A=
     if (__y->_M_color !=3D _M_red)=0A=
       {=0A=
         while (__x !=3D __root && (__x =3D=3D 0 || __x->_M_color =3D=3D =
 _M_black))=0A=
           if (__x =3D=3D __x_parent->_M_left)=0A=
             {=0A=
               _Rb_tree_node_base* __w =3D __x_parent->_M_right;=0A=
               if (__w->_M_color =3D=3D _M_red)=0A=
                 {=0A=
                   __w->_M_color =3D _M_black;=0A=
                   __x_parent->_M_color =3D _M_red;=0A=
                   _Rb_tree_rotate_left(__x_parent, __root);=0A=
                   __w =3D __x_parent->_M_right;=0A=
                 }=0A=
               if ((__w->_M_left =3D=3D 0 ||=0A=
                    __w->_M_left->_M_color =3D=3D _M_black) &&=0A=
                   (__w->_M_right =3D=3D 0 ||=0A=
                    __w->_M_right->_M_color =3D=3D _M_black))=0A=
                 {=0A=
                   __w->_M_color =3D _M_red;=0A=
                   __x =3D __x_parent;=0A=
                   __x_parent =3D __x_parent->_M_parent;=0A=
                 }=0A=
               else=0A=
                 {=0A=
                   if (__w->_M_right =3D=3D 0=0A=
                       || __w->_M_right->_M_color =3D=3D _M_black)=0A=
                     {=0A=
                       if (__w->_M_left) __w->_M_left->_M_color =3D =
 _M_black;=0A=
                       __w->_M_color =3D _M_red;=0A=
                       _Rb_tree_rotate_right(__w, __root);=0A=
                       __w =3D __x_parent->_M_right;=0A=
                     }=0A=
                   __w->_M_color =3D __x_parent->_M_color;=0A=
                   __x_parent->_M_color =3D _M_black;=0A=
                   if (__w->_M_right)=0A=
                     __w->_M_right->_M_color =3D _M_black;=0A=
                   _Rb_tree_rotate_left(__x_parent, __root);=0A=
                   break;=0A=
                 }=0A=
             }=0A=
           else=0A=
             {=0A=
 =0A=
               _Rb_tree_node_base* __w =3D __x_parent->_M_left;=0A=
               if (__w->_M_color =3D=3D _M_red)=0A=
                 {=0A=
                   __w->_M_color =3D _M_black;=0A=
                   __x_parent->_M_color =3D _M_red;=0A=
                   _Rb_tree_rotate_right(__x_parent, __root);=0A=
                   __w =3D __x_parent->_M_left;=0A=
                 }=0A=
               if ((__w->_M_right =3D=3D 0 ||=0A=
                    __w->_M_right->_M_color =3D=3D _M_black) &&=0A=
                   (__w->_M_left =3D=3D 0 ||=0A=
                    __w->_M_left->_M_color =3D=3D _M_black))=0A=
                 {=0A=
                   __w->_M_color =3D _M_red;=0A=
                   __x =3D __x_parent;=0A=
                   __x_parent =3D __x_parent->_M_parent;=0A=
                 }=0A=
               else=0A=
                 {=0A=
                   if (__w->_M_left =3D=3D 0 || __w->_M_left->_M_color =
 =3D=3D _M_black)=0A=
                     {=0A=
                       if (__w->_M_right) __w->_M_right->_M_color =3D =
 _M_black;=0A=
                       __w->_M_color =3D _M_red;=0A=
                       _Rb_tree_rotate_left(__w, __root);=0A=
                       __w =3D __x_parent->_M_left;=0A=
                     }=0A=
                   __w->_M_color =3D __x_parent->_M_color;=0A=
                   __x_parent->_M_color =3D _M_black;=0A=
                   if (__w->_M_left)=0A=
                     __w->_M_left->_M_color =3D _M_black;=0A=
                   _Rb_tree_rotate_right(__x_parent, __root);=0A=
                   break;=0A=
                 }=0A=
             }=0A=
         if (__x) __x->_M_color =3D _M_black;=0A=
       }=0A=
     return __y;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template<typename _Tp, typename _Alloc, bool _S_instanceless>=0A=
     class _Rb_tree_alloc_base=0A=
     {=0A=
     public:=0A=
     typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type =
 allocator_type;=0A=
 =0A=
       allocator_type=0A=
       get_allocator() const { return _M_node_allocator; }=0A=
 =0A=
       _Rb_tree_alloc_base(const allocator_type& __a)=0A=
       : _M_node_allocator(__a), _M_header(0) {}=0A=
 =0A=
     protected:=0A=
       typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::allocator_type=0A=
       _M_node_allocator;=0A=
 =0A=
       _Rb_tree_node<_Tp>* _M_header;=0A=
 =0A=
       _Rb_tree_node<_Tp>*=0A=
       _M_get_node() { return _M_node_allocator.allocate(1); }=0A=
 =0A=
       void=0A=
       _M_put_node(_Rb_tree_node<_Tp>* __p)=0A=
       { _M_node_allocator.deallocate(__p, 1); }=0A=
     };=0A=
 =0A=
 =0A=
   template<typename _Tp, typename _Alloc>=0A=
     class _Rb_tree_alloc_base<_Tp, _Alloc, true>=0A=
     {=0A=
     public:=0A=
     typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type =
 allocator_type;=0A=
       allocator_type get_allocator() const { return allocator_type(); }=0A=
 =0A=
       _Rb_tree_alloc_base(const allocator_type&) : _M_header(0) {}=0A=
 =0A=
     protected:=0A=
       _Rb_tree_node<_Tp>* _M_header;=0A=
 =0A=
       typedef typename _Alloc_traits<_Rb_tree_node<_Tp>, =
 _Alloc>::_Alloc_type=0A=
       _Alloc_type;=0A=
 =0A=
       _Rb_tree_node<_Tp>*=0A=
       _M_get_node() { return _Alloc_type::allocate(1); }=0A=
 =0A=
       void=0A=
       _M_put_node(_Rb_tree_node<_Tp>* __p) { =
 _Alloc_type::deallocate(__p, 1); }=0A=
     };=0A=
 =0A=
   template<typename _Tp, typename _Alloc>=0A=
     struct _Rb_tree_base : public _Rb_tree_alloc_base<_Tp, _Alloc,=0A=
                                   _Alloc_traits<_Tp, =
 _Alloc>::_S_instanceless>=0A=
     {=0A=
       typedef _Rb_tree_alloc_base<_Tp,=0A=
         _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base;=0A=
       typedef typename _Base::allocator_type allocator_type;=0A=
 =0A=
       _Rb_tree_base(const allocator_type& __a)=0A=
       : _Base(__a) { _M_header =3D _M_get_node(); }=0A=
       ~_Rb_tree_base() { _M_put_node(_M_header); }=0A=
     };=0A=
 =0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc =3D allocator<_Val> >=0A=
     class _Rb_tree : protected _Rb_tree_base<_Val, _Alloc>=0A=
     {=0A=
       typedef _Rb_tree_base<_Val, _Alloc> _Base;=0A=
 =0A=
     protected:=0A=
       typedef _Rb_tree_node_base* _Base_ptr;=0A=
       typedef _Rb_tree_node<_Val> _Rb_tree_node;=0A=
 =0A=
     public:=0A=
       typedef _Key key_type;=0A=
       typedef _Val value_type;=0A=
       typedef value_type* pointer;=0A=
       typedef const value_type* const_pointer;=0A=
       typedef value_type& reference;=0A=
       typedef const value_type& const_reference;=0A=
       typedef _Rb_tree_node* _Link_type;=0A=
       typedef size_t size_type;=0A=
       typedef ptrdiff_t difference_type;=0A=
 =0A=
       typedef typename _Base::allocator_type allocator_type;=0A=
       allocator_type get_allocator() const { return =
 _Base::get_allocator(); }=0A=
 =0A=
     protected:=0A=
       using _Base::_M_get_node;=0A=
       using _Base::_M_put_node;=0A=
       using _Base::_M_header;=0A=
 =0A=
       _Link_type=0A=
       _M_create_node(const value_type& __x)=0A=
       {=0A=
         _Link_type __tmp =3D _M_get_node();=0A=
         try=0A=
           { _Construct(&__tmp->_M_value_field, __x); }=0A=
         catch(...)=0A=
           {=0A=
           _M_put_node(__tmp);=0A=
           throw;=0A=
           }=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
       _Link_type=0A=
       _M_clone_node(_Link_type __x)=0A=
       {=0A=
         _Link_type __tmp =3D _M_create_node(__x->_M_value_field);=0A=
         __tmp->_M_color =3D __x->_M_color;=0A=
         __tmp->_M_left =3D 0;=0A=
         __tmp->_M_right =3D 0;=0A=
         return __tmp;=0A=
       }=0A=
 =0A=
       void=0A=
       destroy_node(_Link_type __p)=0A=
       {=0A=
         _Destroy(&__p->_M_value_field);=0A=
         _M_put_node(__p);=0A=
       }=0A=
 =0A=
       size_type _M_node_count;=0A=
       _Compare _M_key_compare;=0A=
 =0A=
       _Link_type&=0A=
       _M_root() const { return (_Link_type&) _M_header->_M_parent; }=0A=
 =0A=
       _Link_type&=0A=
       _M_leftmost() const { return (_Link_type&) _M_header->_M_left; }=0A=
 =0A=
       _Link_type&=0A=
       _M_rightmost() const { return (_Link_type&) _M_header->_M_right; }=0A=
 =0A=
       static _Link_type&=0A=
       _S_left(_Link_type __x) { return (_Link_type&)(__x->_M_left); }=0A=
 =0A=
       static _Link_type&=0A=
       _S_right(_Link_type __x) { return (_Link_type&)(__x->_M_right); }=0A=
 =0A=
       static _Link_type&=0A=
       _S_parent(_Link_type __x) { return (_Link_type&)(__x->_M_parent); }=0A=
 =0A=
       static reference=0A=
       _S_value(_Link_type __x) { return __x->_M_value_field; }=0A=
 =0A=
       static const _Key&=0A=
       _S_key(_Link_type __x) { return _KeyOfValue()(_S_value(__x)); }=0A=
 =0A=
       static _Rb_tree_color&=0A=
       _S_color(_Link_type __x) { return __x->_M_color; }=0A=
 =0A=
       static _Link_type&=0A=
       _S_left(_Base_ptr __x) { return (_Link_type&)(__x->_M_left); }=0A=
 =0A=
       static _Link_type&=0A=
       _S_right(_Base_ptr __x) { return (_Link_type&)(__x->_M_right); }=0A=
 =0A=
       static _Link_type&=0A=
       _S_parent(_Base_ptr __x) { return (_Link_type&)(__x->_M_parent); }=0A=
 =0A=
       static reference=0A=
       _S_value(_Base_ptr __x) { return =
 ((_Link_type)__x)->_M_value_field; }=0A=
 =0A=
       static const _Key&=0A=
       _S_key(_Base_ptr __x) { return =
 _KeyOfValue()(_S_value(_Link_type(__x)));}=0A=
 =0A=
       static _Rb_tree_color&=0A=
       _S_color(_Base_ptr __x) { return (_Link_type(__x)->_M_color); }=0A=
 =0A=
       static _Link_type=0A=
       _S_minimum(_Link_type __x)=0A=
       { return (_Link_type) _Rb_tree_node_base::_S_minimum(__x); }=0A=
 =0A=
       static _Link_type=0A=
       _S_maximum(_Link_type __x)=0A=
       { return (_Link_type) _Rb_tree_node_base::_S_maximum(__x); }=0A=
 =0A=
     public:=0A=
       typedef _Rb_tree_iterator<value_type, reference, pointer> iterator;=0A=
       typedef _Rb_tree_iterator<value_type, const_reference, =
 const_pointer>=0A=
       const_iterator;=0A=
 =0A=
       typedef reverse_iterator<const_iterator> const_reverse_iterator;=0A=
       typedef reverse_iterator<iterator> reverse_iterator;=0A=
 =0A=
     private:=0A=
       iterator=0A=
       _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v);=0A=
 =0A=
       _Link_type=0A=
       _M_copy(_Link_type __x, _Link_type __p);=0A=
 =0A=
       void=0A=
       _M_erase(_Link_type __x);=0A=
 =0A=
     public:=0A=
 =0A=
       _Rb_tree()=0A=
         : _Base(allocator_type()), _M_node_count(0), _M_key_compare()=0A=
       { _M_empty_initialize(); }=0A=
 =0A=
       _Rb_tree(const _Compare& __comp)=0A=
         : _Base(allocator_type()), _M_node_count(0), =
 _M_key_compare(__comp)=0A=
       { _M_empty_initialize(); }=0A=
 =0A=
       _Rb_tree(const _Compare& __comp, const allocator_type& __a)=0A=
         : _Base(__a), _M_node_count(0), _M_key_compare(__comp)=0A=
       { _M_empty_initialize(); }=0A=
 =0A=
       _Rb_tree(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x)=0A=
         : _Base(__x.get_allocator()), _M_node_count(0),=0A=
                  _M_key_compare(__x._M_key_compare)=0A=
       {=0A=
         if (__x._M_root() =3D=3D 0)=0A=
           _M_empty_initialize();=0A=
         else=0A=
           {=0A=
             _S_color(_M_header) =3D _M_red;=0A=
             _M_root() =3D _M_copy(__x._M_root(), _M_header);=0A=
             _M_leftmost() =3D _S_minimum(_M_root());=0A=
             _M_rightmost() =3D _S_maximum(_M_root());=0A=
           }=0A=
         _M_node_count =3D __x._M_node_count;=0A=
       }=0A=
 =0A=
       ~_Rb_tree() { clear(); }=0A=
 =0A=
       _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>&=0A=
       operator=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x);=0A=
 =0A=
     private:=0A=
       void _M_empty_initialize()=0A=
       {=0A=
         _S_color(_M_header) =3D _M_red;=0A=
 =0A=
         _M_root() =3D 0;=0A=
         _M_leftmost() =3D _M_header;=0A=
         _M_rightmost() =3D _M_header;=0A=
       }=0A=
 =0A=
     public:=0A=
 =0A=
       _Compare=0A=
       key_comp() const { return _M_key_compare; }=0A=
 =0A=
       iterator=0A=
       begin() { return _M_leftmost(); }=0A=
 =0A=
       const_iterator=0A=
       begin() const { return _M_leftmost(); }=0A=
 =0A=
       iterator=0A=
       end() { return _M_header; }=0A=
 =0A=
       const_iterator=0A=
       end() const { return _M_header; }=0A=
 =0A=
       reverse_iterator=0A=
       rbegin() { return reverse_iterator(end()); }=0A=
 =0A=
       const_reverse_iterator=0A=
       rbegin() const { return const_reverse_iterator(end()); }=0A=
 =0A=
       reverse_iterator=0A=
       rend() { return reverse_iterator(begin()); }=0A=
 =0A=
       const_reverse_iterator=0A=
       rend() const { return const_reverse_iterator(begin()); }=0A=
 =0A=
       bool=0A=
       empty() const { return _M_node_count =3D=3D 0; }=0A=
 =0A=
       size_type=0A=
       size() const { return _M_node_count; }=0A=
 =0A=
       size_type=0A=
       max_size() const { return size_type(-1); }=0A=
 =0A=
       void=0A=
       swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __t)=0A=
       {=0A=
         std::swap(_M_header, __t._M_header);=0A=
         std::swap(_M_node_count, __t._M_node_count);=0A=
         std::swap(_M_key_compare, __t._M_key_compare);=0A=
       }=0A=
 =0A=
 =0A=
       pair<iterator,bool>=0A=
       insert_unique(const value_type& __x);=0A=
 =0A=
       iterator=0A=
       insert_equal(const value_type& __x);=0A=
 =0A=
       iterator=0A=
       insert_unique(iterator __position, const value_type& __x);=0A=
 =0A=
       iterator=0A=
       insert_equal(iterator __position, const value_type& __x);=0A=
 =0A=
       template<typename _InputIterator>=0A=
       void=0A=
       insert_unique(_InputIterator __first, _InputIterator __last);=0A=
 =0A=
       template<typename _InputIterator>=0A=
       void=0A=
       insert_equal(_InputIterator __first, _InputIterator __last);=0A=
 =0A=
       void=0A=
       erase(iterator __position);=0A=
 =0A=
       size_type=0A=
       erase(const key_type& __x);=0A=
 =0A=
       void=0A=
       erase(iterator __first, iterator __last);=0A=
 =0A=
       void=0A=
       erase(const key_type* __first, const key_type* __last);=0A=
 =0A=
       void=0A=
       clear()=0A=
       {=0A=
         if (_M_node_count !=3D 0)=0A=
           {=0A=
             _M_erase(_M_root());=0A=
             _M_leftmost() =3D _M_header;=0A=
             _M_root() =3D 0;=0A=
             _M_rightmost() =3D _M_header;=0A=
             _M_node_count =3D 0;=0A=
           }=0A=
       }=0A=
 =0A=
 =0A=
       iterator=0A=
       find(const key_type& __x);=0A=
 =0A=
       const_iterator=0A=
       find(const key_type& __x) const;=0A=
 =0A=
       size_type=0A=
       count(const key_type& __x) const;=0A=
 =0A=
       iterator=0A=
       lower_bound(const key_type& __x);=0A=
 =0A=
       const_iterator=0A=
       lower_bound(const key_type& __x) const;=0A=
 =0A=
       iterator=0A=
       upper_bound(const key_type& __x);=0A=
 =0A=
       const_iterator=0A=
       upper_bound(const key_type& __x) const;=0A=
 =0A=
       pair<iterator,iterator>=0A=
       equal_range(const key_type& __x);=0A=
 =0A=
       pair<const_iterator, const_iterator>=0A=
       equal_range(const key_type& __x) const;=0A=
 =0A=
 =0A=
       bool=0A=
       __rb_verify() const;=0A=
     };=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator=3D=3D(const =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A=
                const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __y)=0A=
     {=0A=
       return __x.size() =3D=3D __y.size() &&=0A=
         equal(__x.begin(), __x.end(), __y.begin());=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator<(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A=
               const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A=
     {=0A=
       return lexicographical_compare(__x.begin(), __x.end(),=0A=
                                      __y.begin(), __y.end());=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator!=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x,=0A=
                const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __y)=0A=
     { return !(__x =3D=3D __y); }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator>(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A=
               const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A=
     { return __y < __x; }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator<=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x,=0A=
                const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __y)=0A=
   { return !(__y < __x); }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline bool=0A=
     operator>=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x,=0A=
                const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __y)=0A=
   { return !(__x < __y); }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline void=0A=
     swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A=
          _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A=
     { __x.swap(__y); }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>&=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     operator=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& =
 __x)=0A=
     {=0A=
       if (this !=3D &__x)=0A=
         {=0A=
 =0A=
           clear();=0A=
           _M_node_count =3D 0;=0A=
           _M_key_compare =3D __x._M_key_compare;=0A=
           if (__x._M_root() =3D=3D 0)=0A=
             {=0A=
               _M_root() =3D 0;=0A=
               _M_leftmost() =3D _M_header;=0A=
               _M_rightmost() =3D _M_header;=0A=
             }=0A=
           else=0A=
             {=0A=
               _M_root() =3D _M_copy(__x._M_root(), _M_header);=0A=
               _M_leftmost() =3D _S_minimum(_M_root());=0A=
               _M_rightmost() =3D _S_maximum(_M_root());=0A=
               _M_node_count =3D __x._M_node_count;=0A=
             }=0A=
         }=0A=
       return *this;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     _M_insert(_Base_ptr __x_, _Base_ptr __y_, const _Val& __v)=0A=
     {=0A=
       _Link_type __x =3D (_Link_type) __x_;=0A=
       _Link_type __y =3D (_Link_type) __y_;=0A=
       _Link_type __z;=0A=
 =0A=
       if (__y =3D=3D _M_header || __x !=3D 0 ||=0A=
           _M_key_compare(_KeyOfValue()(__v), _S_key(__y)))=0A=
         {=0A=
           __z =3D _M_create_node(__v);=0A=
           _S_left(__y) =3D __z;=0A=
 =0A=
           if (__y =3D=3D _M_header)=0A=
             {=0A=
               _M_root() =3D __z;=0A=
               _M_rightmost() =3D __z;=0A=
             }=0A=
           else if (__y =3D=3D _M_leftmost())=0A=
             _M_leftmost() =3D __z;=0A=
         }=0A=
       else=0A=
         {=0A=
           __z =3D _M_create_node(__v);=0A=
           _S_right(__y) =3D __z;=0A=
 =0A=
           if (__y =3D=3D _M_rightmost())=0A=
             _M_rightmost() =3D __z;=0A=
         }=0A=
       _S_parent(__z) =3D __y;=0A=
       _S_left(__z) =3D 0;=0A=
       _S_right(__z) =3D 0;=0A=
       _Rb_tree_rebalance(__z, _M_header->_M_parent);=0A=
       ++_M_node_count;=0A=
       return iterator(__z);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     insert_equal(const _Val& __v)=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
       while (__x !=3D 0)=0A=
         {=0A=
           __y =3D __x;=0A=
           __x =3D _M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ?=0A=
             _S_left(__x) : _S_right(__x);=0A=
         }=0A=
       return _M_insert(__x, __y, __v);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     pair<typename =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator,=0A=
     bool>=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     insert_unique(const _Val& __v)=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
       bool __comp =3D true;=0A=
       while (__x !=3D 0)=0A=
         {=0A=
           __y =3D __x;=0A=
           __comp =3D _M_key_compare(_KeyOfValue()(__v), _S_key(__x));=0A=
           __x =3D __comp ? _S_left(__x) : _S_right(__x);=0A=
         }=0A=
       iterator __j =3D iterator(__y);=0A=
       if (__comp)=0A=
         if (__j =3D=3D begin())=0A=
           return pair<iterator,bool>(_M_insert(__x, __y, __v), true);=0A=
         else=0A=
           --__j;=0A=
       if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v)))=0A=
         return pair<iterator,bool>(_M_insert(__x, __y, __v), true);=0A=
       return pair<iterator,bool>(__j, false);=0A=
     }=0A=
 =0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, =
 _Alloc>::iterator=0A=
     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::=0A=
     insert_unique(iterator __position, const _Val& __v)=0A=
     {=0A=
       if (__position._M_node =3D=3D _M_header->_M_left)=0A=
         {=0A=
 =0A=
           if (size() > 0 &&=0A=
               _M_key_compare(_KeyOfValue()(__v), =
 _S_key(__position._M_node)))=0A=
             return _M_insert(__position._M_node, __position._M_node, =
 __v);=0A=
 =0A=
           else=0A=
             return insert_unique(__v).first;=0A=
         }=0A=
       else if (__position._M_node =3D=3D _M_header)=0A=
         {=0A=
 =0A=
           if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v)))=0A=
             return _M_insert(0, _M_rightmost(), __v);=0A=
           else=0A=
             return insert_unique(__v).first;=0A=
         }=0A=
       else=0A=
         {=0A=
           iterator __before =3D __position;=0A=
           --__before;=0A=
           if (_M_key_compare(_S_key(__before._M_node), =
 _KeyOfValue()(__v))=0A=
               && =
 _M_key_compare(_KeyOfValue()(__v),_S_key(__position._M_node)))=0A=
             {=0A=
               if (_S_right(__before._M_node) =3D=3D 0)=0A=
                 return _M_insert(0, __before._M_node, __v);=0A=
               else=0A=
                 return _M_insert(__position._M_node, __position._M_node, =
 __v);=0A=
 =0A=
             }=0A=
           else=0A=
             return insert_unique(__v).first;=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     insert_equal(iterator __position, const _Val& __v)=0A=
     {=0A=
       if (__position._M_node =3D=3D _M_header->_M_left)=0A=
         {=0A=
 =0A=
           if (size() > 0 &&=0A=
               !_M_key_compare(_S_key(__position._M_node), =
 _KeyOfValue()(__v)))=0A=
             return _M_insert(__position._M_node, __position._M_node, =
 __v);=0A=
 =0A=
           else=0A=
             return insert_equal(__v);=0A=
         }=0A=
       else if (__position._M_node =3D=3D _M_header)=0A=
         {=0A=
 =0A=
           if (!_M_key_compare(_KeyOfValue()(__v), =
 _S_key(_M_rightmost())))=0A=
             return _M_insert(0, _M_rightmost(), __v);=0A=
           else=0A=
             return insert_equal(__v);=0A=
         }=0A=
       else=0A=
         {=0A=
           iterator __before =3D __position;=0A=
           --__before;=0A=
           if (!_M_key_compare(_KeyOfValue()(__v), =
 _S_key(__before._M_node))=0A=
               && !_M_key_compare(_S_key(__position._M_node),=0A=
                                  _KeyOfValue()(__v)))=0A=
             {=0A=
               if (_S_right(__before._M_node) =3D=3D 0)=0A=
                 return _M_insert(0, __before._M_node, __v);=0A=
               else=0A=
                 return _M_insert(__position._M_node, __position._M_node, =
 __v);=0A=
 =0A=
             }=0A=
           else=0A=
             return insert_equal(__v);=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KoV,=0A=
            typename _Cmp, typename _Alloc>=0A=
     template<class _II>=0A=
       void=0A=
       _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>::=0A=
       insert_equal(_II __first, _II __last)=0A=
       {=0A=
         for ( ; __first !=3D __last; ++__first)=0A=
           insert_equal(*__first);=0A=
       }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KoV,=0A=
            typename _Cmp, typename _Alloc>=0A=
     template<class _II>=0A=
     void=0A=
     _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>::=0A=
     insert_unique(_II __first, _II __last)=0A=
     {=0A=
       for ( ; __first !=3D __last; ++__first)=0A=
         insert_unique(*__first);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline void=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(iterator =
 __position)=0A=
     {=0A=
       _Link_type __y =3D=0A=
         (_Link_type) _Rb_tree_rebalance_for_erase(__position._M_node,=0A=
                                                   _M_header->_M_parent,=0A=
                                                   _M_header->_M_left,=0A=
                                                   _M_header->_M_right);=0A=
       destroy_node(__y);=0A=
       --_M_node_count;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(const _Key& =
 __x)=0A=
     {=0A=
       pair<iterator,iterator> __p =3D equal_range(__x);=0A=
       size_type __n =3D distance(__p.first, __p.second);=0A=
       erase(__p.first, __p.second);=0A=
       return __n;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KoV,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type=0A=
     _Rb_tree<_Key,_Val,_KoV,_Compare,_Alloc>::=0A=
     _M_copy(_Link_type __x, _Link_type __p)=0A=
     {=0A=
 =0A=
       _Link_type __top =3D _M_clone_node(__x);=0A=
       __top->_M_parent =3D __p;=0A=
 =0A=
       try=0A=
         {=0A=
           if (__x->_M_right)=0A=
             __top->_M_right =3D _M_copy(_S_right(__x), __top);=0A=
           __p =3D __top;=0A=
           __x =3D _S_left(__x);=0A=
 =0A=
           while (__x !=3D 0)=0A=
             {=0A=
               _Link_type __y =3D _M_clone_node(__x);=0A=
               __p->_M_left =3D __y;=0A=
               __y->_M_parent =3D __p;=0A=
               if (__x->_M_right)=0A=
                 __y->_M_right =3D _M_copy(_S_right(__x), __y);=0A=
               __p =3D __y;=0A=
               __x =3D _S_left(__x);=0A=
             }=0A=
         }=0A=
       catch(...)=0A=
         {=0A=
           _M_erase(__top);=0A=
           throw;=0A=
         }=0A=
       return __top;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     void=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::_M_erase(_Link_type =
 __x)=0A=
     {=0A=
 =0A=
       while (__x !=3D 0)=0A=
         {=0A=
           _M_erase(_S_right(__x));=0A=
           _Link_type __y =3D _S_left(__x);=0A=
           destroy_node(__x);=0A=
           __x =3D __y;=0A=
         }=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     void=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     erase(iterator __first, iterator __last)=0A=
     {=0A=
       if (__first =3D=3D begin() && __last =3D=3D end())=0A=
         clear();=0A=
       else=0A=
         while (__first !=3D __last) erase(__first++);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     void=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     erase(const _Key* __first, const _Key* __last)=0A=
     {=0A=
       while (__first !=3D __last)=0A=
         erase(*__first++);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::find(const _Key& =
 __k)=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
       while (__x !=3D 0)=0A=
         if (!_M_key_compare(_S_key(__x), __k))=0A=
           __y =3D __x, __x =3D _S_left(__x);=0A=
         else=0A=
           __x =3D _S_right(__x);=0A=
 =0A=
       iterator __j =3D iterator(__y);=0A=
       return (__j =3D=3D end() || _M_key_compare(__k, =
 _S_key(__j._M_node))) ?=0A=
         end() : __j;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     find(const _Key& __k) const=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
      while (__x !=3D 0)=0A=
        {=0A=
          if (!_M_key_compare(_S_key(__x), __k))=0A=
            __y =3D __x, __x =3D _S_left(__x);=0A=
          else=0A=
            __x =3D _S_right(__x);=0A=
        }=0A=
      const_iterator __j =3D const_iterator(__y);=0A=
      return (__j =3D=3D end() || _M_key_compare(__k, =
 _S_key(__j._M_node))) ?=0A=
        end() : __j;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     count(const _Key& __k) const=0A=
     {=0A=
       pair<const_iterator, const_iterator> __p =3D equal_range(__k);=0A=
       size_type __n =3D distance(__p.first, __p.second);=0A=
       return __n;=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     lower_bound(const _Key& __k)=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
       while (__x !=3D 0)=0A=
         if (!_M_key_compare(_S_key(__x), __k))=0A=
           __y =3D __x, __x =3D _S_left(__x);=0A=
         else=0A=
           __x =3D _S_right(__x);=0A=
 =0A=
       return iterator(__y);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     lower_bound(const _Key& __k) const=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
       while (__x !=3D 0)=0A=
         if (!_M_key_compare(_S_key(__x), __k))=0A=
           __y =3D __x, __x =3D _S_left(__x);=0A=
         else=0A=
           __x =3D _S_right(__x);=0A=
 =0A=
       return const_iterator(__y);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     upper_bound(const _Key& __k)=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
       while (__x !=3D 0)=0A=
         if (_M_key_compare(__k, _S_key(__x)))=0A=
           __y =3D __x, __x =3D _S_left(__x);=0A=
         else=0A=
           __x =3D _S_right(__x);=0A=
 =0A=
       return iterator(__y);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     typename =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     upper_bound(const _Key& __k) const=0A=
     {=0A=
       _Link_type __y =3D _M_header;=0A=
       _Link_type __x =3D _M_root();=0A=
 =0A=
       while (__x !=3D 0)=0A=
         if (_M_key_compare(__k, _S_key(__x)))=0A=
           __y =3D __x, __x =3D _S_left(__x);=0A=
         else=0A=
           __x =3D _S_right(__x);=0A=
 =0A=
       return const_iterator(__y);=0A=
     }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     inline=0A=
     pair<typename =
 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator,=0A=
                                                                    =
 typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator>=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A=
     equal_range(const _Key& __k)=0A=
     { return pair<iterator, iterator>(lower_bound(__k), =
 upper_bound(__k)); }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KoV,=0A=
            typename _Compare, typename _Alloc>=0A=
   inline=0A=
   pair<typename _Rb_tree<_Key, _Val, _KoV, _Compare, =
 _Alloc>::const_iterator,=0A=
                                                                 typename =
 _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator>=0A=
   _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>=0A=
   ::equal_range(const _Key& __k) const=0A=
   {=0A=
     return pair<const_iterator,const_iterator>(lower_bound(__k),=0A=
                                                upper_bound(__k));=0A=
   }=0A=
 =0A=
   inline int=0A=
   __black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root)=0A=
   {=0A=
     if (__node =3D=3D 0)=0A=
       return 0;=0A=
     int __sum =3D 0;=0A=
     do=0A=
       {=0A=
         if (__node->_M_color =3D=3D _M_black)=0A=
           ++__sum;=0A=
         if (__node =3D=3D __root)=0A=
           break;=0A=
         __node =3D __node->_M_parent;=0A=
       }=0A=
     while (1);=0A=
     return __sum;=0A=
   }=0A=
 =0A=
   template<typename _Key, typename _Val, typename _KeyOfValue,=0A=
            typename _Compare, typename _Alloc>=0A=
     bool=0A=
     _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const=0A=
     {=0A=
     if (_M_node_count =3D=3D 0 || begin() =3D=3D end())=0A=
       return _M_node_count =3D=3D 0 && begin() =3D=3D end() &&=0A=
         _M_header->_M_left =3D=3D _M_header && _M_header->_M_right =
 =3D=3D _M_header;=0A=
 =0A=
     int __len =3D __black_count(_M_leftmost(), _M_root());=0A=
     for (const_iterator __it =3D begin(); __it !=3D end(); ++__it)=0A=
       {=0A=
         _Link_type __x =3D (_Link_type) __it._M_node;=0A=
         _Link_type __L =3D _S_left(__x);=0A=
         _Link_type __R =3D _S_right(__x);=0A=
 =0A=
         if (__x->_M_color =3D=3D _M_red)=0A=
           if ((__L && __L->_M_color =3D=3D _M_red)=0A=
               || (__R && __R->_M_color =3D=3D _M_red))=0A=
             return false;=0A=
 =0A=
         if (__L && _M_key_compare(_S_key(__x), _S_key(__L)))=0A=
           return false;=0A=
         if (__R && _M_key_compare(_S_key(__R), _S_key(__x)))=0A=
           return false;=0A=
 =0A=
         if (!__L && !__R && __black_count(__x, _M_root()) !=3D __len)=0A=
           return false;=0A=
       }=0A=
 =0A=
     if (_M_leftmost() !=3D _Rb_tree_node_base::_S_minimum(_M_root()))=0A=
       return false;=0A=
     if (_M_rightmost() !=3D _Rb_tree_node_base::_S_maximum(_M_root()))=0A=
       return false;=0A=
     return true;=0A=
     }=0A=
 }=0A=
 # 67 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 1 3=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
 namespace std=0A=
 {=0A=
 # 77 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
 template <class _Key, class _Tp, class _Compare =3D less<_Key>,=0A=
           class _Alloc =3D allocator<pair<const _Key, _Tp> > >=0A=
 class map=0A=
 {=0A=
 =0A=
  =0A=
   ;=0A=
 =0A=
 public:=0A=
 =0A=
   typedef _Key key_type;=0A=
   typedef _Tp data_type;=0A=
   typedef _Tp mapped_type;=0A=
   typedef pair<const _Key, _Tp> value_type;=0A=
   typedef _Compare key_compare;=0A=
 =0A=
   class value_compare=0A=
     : public binary_function<value_type, value_type, bool> {=0A=
   friend class map<_Key,_Tp,_Compare,_Alloc>;=0A=
   protected :=0A=
     _Compare comp;=0A=
     value_compare(_Compare __c) : comp(__c) {}=0A=
   public:=0A=
     bool operator()(const value_type& __x, const value_type& __y) const {=0A=
       return comp(__x.first, __y.first);=0A=
     }=0A=
   };=0A=
 =0A=
 private:=0A=
   typedef _Rb_tree<key_type, value_type,=0A=
                    _Select1st<value_type>, key_compare, _Alloc> =
 _Rep_type;=0A=
   _Rep_type _M_t;=0A=
 public:=0A=
   typedef typename _Rep_type::pointer pointer;=0A=
   typedef typename _Rep_type::const_pointer const_pointer;=0A=
   typedef typename _Rep_type::reference reference;=0A=
   typedef typename _Rep_type::const_reference const_reference;=0A=
   typedef typename _Rep_type::iterator iterator;=0A=
   typedef typename _Rep_type::const_iterator const_iterator;=0A=
   typedef typename _Rep_type::reverse_iterator reverse_iterator;=0A=
   typedef typename _Rep_type::const_reverse_iterator =
 const_reverse_iterator;=0A=
   typedef typename _Rep_type::size_type size_type;=0A=
   typedef typename _Rep_type::difference_type difference_type;=0A=
   typedef typename _Rep_type::allocator_type allocator_type;=0A=
 =0A=
 =0A=
 =0A=
   map() : _M_t(_Compare(), allocator_type()) {}=0A=
   explicit map(const _Compare& __comp,=0A=
                const allocator_type& __a =3D allocator_type())=0A=
     : _M_t(__comp, __a) {}=0A=
 =0A=
   template <class _InputIterator>=0A=
   map(_InputIterator __first, _InputIterator __last)=0A=
     : _M_t(_Compare(), allocator_type())=0A=
     { _M_t.insert_unique(__first, __last); }=0A=
 =0A=
   template <class _InputIterator>=0A=
   map(_InputIterator __first, _InputIterator __last, const _Compare& =
 __comp,=0A=
       const allocator_type& __a =3D allocator_type())=0A=
     : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }=0A=
   map(const map<_Key,_Tp,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {}=0A=
 =0A=
   map<_Key,_Tp,_Compare,_Alloc>&=0A=
   operator=3D(const map<_Key, _Tp, _Compare, _Alloc>& __x)=0A=
   {=0A=
     _M_t =3D __x._M_t;=0A=
     return *this;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   key_compare key_comp() const { return _M_t.key_comp(); }=0A=
   value_compare value_comp() const { return =
 value_compare(_M_t.key_comp()); }=0A=
   allocator_type get_allocator() const { return _M_t.get_allocator(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator begin() { return _M_t.begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator begin() const { return _M_t.begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator end() { return _M_t.end(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator end() const { return _M_t.end(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rbegin() { return _M_t.rbegin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rbegin() const { return _M_t.rbegin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rend() { return _M_t.rend(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rend() const { return _M_t.rend(); }=0A=
 =0A=
 =0A=
   bool empty() const { return _M_t.empty(); }=0A=
 =0A=
   size_type size() const { return _M_t.size(); }=0A=
 =0A=
   size_type max_size() const { return _M_t.max_size(); }=0A=
 # 221 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   _Tp& operator[](const key_type& __k) {=0A=
     iterator __i =3D lower_bound(__k);=0A=
 =0A=
     if (__i =3D=3D end() || key_comp()(__k, (*__i).first))=0A=
       __i =3D insert(__i, value_type(__k, _Tp()));=0A=
     return (*__i).second;=0A=
   }=0A=
 =0A=
   void swap(map<_Key,_Tp,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); }=0A=
 # 244 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   pair<iterator,bool> insert(const value_type& __x)=0A=
     { return _M_t.insert_unique(__x); }=0A=
 # 261 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   iterator insert(iterator position, const value_type& __x)=0A=
     { return _M_t.insert_unique(position, __x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   template <class _InputIterator>=0A=
   void insert(_InputIterator __first, _InputIterator __last) {=0A=
     _M_t.insert_unique(__first, __last);=0A=
   }=0A=
 # 284 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   void erase(iterator __position) { _M_t.erase(__position); }=0A=
 # 297 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   size_type erase(const key_type& __x) { return _M_t.erase(__x); }=0A=
 # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   void erase(iterator __first, iterator __last)=0A=
     { _M_t.erase(__first, __last); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   void clear() { _M_t.clear(); }=0A=
 # 332 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   iterator find(const key_type& __x) { return _M_t.find(__x); }=0A=
 # 345 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   const_iterator find(const key_type& __x) const { return =
 _M_t.find(__x); }=0A=
 # 354 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   size_type count(const key_type& __x) const {=0A=
     return _M_t.find(__x) =3D=3D _M_t.end() ? 0 : 1;=0A=
   }=0A=
 # 369 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   iterator lower_bound(const key_type& __x) {return =
 _M_t.lower_bound(__x); }=0A=
 # 382 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   const_iterator lower_bound(const key_type& __x) const {=0A=
     return _M_t.lower_bound(__x);=0A=
   }=0A=
 # 393 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   iterator upper_bound(const key_type& __x) {return =
 _M_t.upper_bound(__x); }=0A=
 # 403 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   const_iterator upper_bound(const key_type& __x) const {=0A=
     return _M_t.upper_bound(__x);=0A=
   }=0A=
 # 423 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   pair<iterator,iterator> equal_range(const key_type& __x) {=0A=
     return _M_t.equal_range(__x);=0A=
   }=0A=
 # 443 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A=
   pair<const_iterator,const_iterator> equal_range(const key_type& __x) =
 const {=0A=
     return _M_t.equal_range(__x);=0A=
   }=0A=
 =0A=
   template <class _K1, class _T1, class _C1, class _A1>=0A=
   friend bool operator=3D=3D (const map<_K1, _T1, _C1, _A1>&,=0A=
                           const map<_K1, _T1, _C1, _A1>&);=0A=
   template <class _K1, class _T1, class _C1, class _A1>=0A=
   friend bool operator< (const map<_K1, _T1, _C1, _A1>&,=0A=
                          const map<_K1, _T1, _C1, _A1>&);=0A=
 };=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator=3D=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __x._M_t =3D=3D __y._M_t;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                       const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __x._M_t < __y._M_t;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator!=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__x =3D=3D __y);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                       const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __y < __x;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator<=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__y < __x);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator>=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__x < __y);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline void swap(map<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                  map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   __x.swap(__y);=0A=
 }=0A=
 =0A=
 }=0A=
 # 68 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A=
 # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 1 3=0A=
 # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
 namespace std=0A=
 {=0A=
 =0A=
 template <class _Key, class _Tp,=0A=
           class _Compare =3D less<_Key>,=0A=
           class _Alloc =3D allocator<pair<const _Key, _Tp> > >=0A=
 class multimap;=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator=3D=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const multimap<_Key,_Tp,_Compare,_Alloc>& __y);=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                       const multimap<_Key,_Tp,_Compare,_Alloc>& __y);=0A=
 # 90 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 class multimap=0A=
 {=0A=
 =0A=
  =0A=
   ;=0A=
 =0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
   typedef _Key key_type;=0A=
   typedef _Tp data_type;=0A=
   typedef _Tp mapped_type;=0A=
   typedef pair<const _Key, _Tp> value_type;=0A=
   typedef _Compare key_compare;=0A=
 =0A=
   class value_compare : public binary_function<value_type, value_type, =
 bool> {=0A=
   friend class multimap<_Key,_Tp,_Compare,_Alloc>;=0A=
   protected:=0A=
     _Compare comp;=0A=
     value_compare(_Compare __c) : comp(__c) {}=0A=
   public:=0A=
     bool operator()(const value_type& __x, const value_type& __y) const {=0A=
       return comp(__x.first, __y.first);=0A=
     }=0A=
   };=0A=
 =0A=
 private:=0A=
   typedef _Rb_tree<key_type, value_type,=0A=
                   _Select1st<value_type>, key_compare, _Alloc> _Rep_type;=0A=
   _Rep_type _M_t;=0A=
 public:=0A=
   typedef typename _Rep_type::pointer pointer;=0A=
   typedef typename _Rep_type::const_pointer const_pointer;=0A=
   typedef typename _Rep_type::reference reference;=0A=
   typedef typename _Rep_type::const_reference const_reference;=0A=
   typedef typename _Rep_type::iterator iterator;=0A=
   typedef typename _Rep_type::const_iterator const_iterator;=0A=
   typedef typename _Rep_type::reverse_iterator reverse_iterator;=0A=
   typedef typename _Rep_type::const_reverse_iterator =
 const_reverse_iterator;=0A=
   typedef typename _Rep_type::size_type size_type;=0A=
   typedef typename _Rep_type::difference_type difference_type;=0A=
   typedef typename _Rep_type::allocator_type allocator_type;=0A=
 =0A=
 =0A=
 =0A=
   multimap() : _M_t(_Compare(), allocator_type()) { }=0A=
   explicit multimap(const _Compare& __comp,=0A=
                     const allocator_type& __a =3D allocator_type())=0A=
     : _M_t(__comp, __a) { }=0A=
 =0A=
   template <class _InputIterator>=0A=
   multimap(_InputIterator __first, _InputIterator __last)=0A=
     : _M_t(_Compare(), allocator_type())=0A=
     { _M_t.insert_equal(__first, __last); }=0A=
 =0A=
   template <class _InputIterator>=0A=
   multimap(_InputIterator __first, _InputIterator __last,=0A=
            const _Compare& __comp,=0A=
            const allocator_type& __a =3D allocator_type())=0A=
     : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }=0A=
   multimap(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) : =
 _M_t(__x._M_t) { }=0A=
 =0A=
   multimap<_Key,_Tp,_Compare,_Alloc>&=0A=
   operator=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) {=0A=
     _M_t =3D __x._M_t;=0A=
     return *this;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   key_compare key_comp() const { return _M_t.key_comp(); }=0A=
   value_compare value_comp() const { return =
 value_compare(_M_t.key_comp()); }=0A=
   allocator_type get_allocator() const { return _M_t.get_allocator(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator begin() { return _M_t.begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator begin() const { return _M_t.begin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator end() { return _M_t.end(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator end() const { return _M_t.end(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rbegin() { return _M_t.rbegin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rbegin() const { return _M_t.rbegin(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   reverse_iterator rend() { return _M_t.rend(); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_reverse_iterator rend() const { return _M_t.rend(); }=0A=
 =0A=
 =0A=
   bool empty() const { return _M_t.empty(); }=0A=
 =0A=
 =0A=
   size_type size() const { return _M_t.size(); }=0A=
 =0A=
 =0A=
   size_type max_size() const { return _M_t.max_size(); }=0A=
 =0A=
   void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x) { =
 _M_t.swap(__x._M_t); }=0A=
 # 242 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   iterator insert(const value_type& __x) { return =
 _M_t.insert_equal(__x); }=0A=
 # 259 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   iterator insert(iterator __position, const value_type& __x) {=0A=
     return _M_t.insert_equal(__position, __x);=0A=
   }=0A=
 # 270 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   template <class _InputIterator>=0A=
   void insert(_InputIterator __first, _InputIterator __last) {=0A=
     _M_t.insert_equal(__first, __last);=0A=
   }=0A=
 # 284 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   void erase(iterator __position) { _M_t.erase(__position); }=0A=
 # 297 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   size_type erase(const key_type& __x) { return _M_t.erase(__x); }=0A=
 # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   void erase(iterator __first, iterator __last)=0A=
     { _M_t.erase(__first, __last); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   void clear() { _M_t.clear(); }=0A=
 # 332 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   iterator find(const key_type& __x) { return _M_t.find(__x); }=0A=
 # 345 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   const_iterator find(const key_type& __x) const { return =
 _M_t.find(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   size_type count(const key_type& __x) const { return _M_t.count(__x); }=0A=
 # 365 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   iterator lower_bound(const key_type& __x) {return =
 _M_t.lower_bound(__x); }=0A=
 # 378 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   const_iterator lower_bound(const key_type& __x) const {=0A=
     return _M_t.lower_bound(__x);=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   iterator upper_bound(const key_type& __x) {return =
 _M_t.upper_bound(__x); }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   const_iterator upper_bound(const key_type& __x) const {=0A=
     return _M_t.upper_bound(__x);=0A=
   }=0A=
 # 413 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   pair<iterator,iterator> equal_range(const key_type& __x) {=0A=
     return _M_t.equal_range(__x);=0A=
   }=0A=
 # 431 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A=
   pair<const_iterator,const_iterator> equal_range(const key_type& __x) =
 const {=0A=
     return _M_t.equal_range(__x);=0A=
   }=0A=
 =0A=
   template <class _K1, class _T1, class _C1, class _A1>=0A=
   friend bool operator=3D=3D (const multimap<_K1, _T1, _C1, _A1>&,=0A=
                           const multimap<_K1, _T1, _C1, _A1>&);=0A=
   template <class _K1, class _T1, class _C1, class _A1>=0A=
   friend bool operator< (const multimap<_K1, _T1, _C1, _A1>&,=0A=
                          const multimap<_K1, _T1, _C1, _A1>&);=0A=
 };=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator=3D=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __x._M_t =3D=3D __y._M_t;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                       const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __x._M_t < __y._M_t;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator!=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__x =3D=3D __y);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                       const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return __y < __x;=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator<=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__y < __x);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline bool operator>=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                        const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   return !(__x < __y);=0A=
 }=0A=
 =0A=
 template <class _Key, class _Tp, class _Compare, class _Alloc>=0A=
 inline void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A=
                  multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A=
   __x.swap(__y);=0A=
 }=0A=
 =0A=
 }=0A=
 # 69 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A=
 # 51 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=
  2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct QMapNodeBase=0A=
 {=0A=
     enum Color { Red, Black };=0A=
 =0A=
     QMapNodeBase* left;=0A=
     QMapNodeBase* right;=0A=
     QMapNodeBase* parent;=0A=
 =0A=
     Color color;=0A=
 =0A=
     QMapNodeBase* minimum() {=0A=
         QMapNodeBase* x =3D this;=0A=
         while ( x->left )=0A=
             x =3D x->left;=0A=
         return x;=0A=
     }=0A=
 =0A=
     QMapNodeBase* maximum() {=0A=
         QMapNodeBase* x =3D this;=0A=
         while ( x->right )=0A=
             x =3D x->right;=0A=
         return x;=0A=
     }=0A=
 };=0A=
 =0A=
 =0A=
 template <class K, class T>=0A=
 struct QMapNode : public QMapNodeBase=0A=
 {=0A=
     QMapNode( const K& _key, const T& _data ) { data =3D _data; key =3D =
 _key; }=0A=
     QMapNode( const K& _key ) { key =3D _key; }=0A=
     QMapNode( const QMapNode<K,T>& _n ) { key =3D _n.key; data =3D =
 _n.data; }=0A=
     QMapNode() { }=0A=
     T data;=0A=
     K key;=0A=
 };=0A=
 =0A=
 =0A=
 template<class K, class T>=0A=
 class QMapIterator=0A=
 {=0A=
  public:=0A=
 =0A=
 =0A=
 =0A=
     typedef QMapNode< K, T >* NodePtr;=0A=
 =0A=
     typedef std::bidirectional_iterator_tag iterator_category;=0A=
 =0A=
     typedef T value_type;=0A=
 =0A=
     typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
 =0A=
     typedef T* pointer;=0A=
     typedef T& reference;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMapNode<K,T>* node;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMapIterator() : node( 0 ) {}=0A=
     QMapIterator( QMapNode<K,T>* p ) : node( p ) {}=0A=
     QMapIterator( const QMapIterator<K,T>& it ) : node( it.node ) {}=0A=
 =0A=
     bool operator=3D=3D( const QMapIterator<K,T>& it ) const { return =
 node =3D=3D it.node; }=0A=
     bool operator!=3D( const QMapIterator<K,T>& it ) const { return node =
 !=3D it.node; }=0A=
     T& operator*() { return node->data; }=0A=
     const T& operator*() const { return node->data; }=0A=
 =0A=
 =0A=
 =0A=
     const K& key() const { return node->key; }=0A=
     T& data() { return node->data; }=0A=
     const T& data() const { return node->data; }=0A=
 =0A=
 private:=0A=
     int inc() {=0A=
         QMapNodeBase* tmp =3D node;=0A=
         if ( tmp->right ) {=0A=
             tmp =3D tmp->right;=0A=
             while ( tmp->left )=0A=
                 tmp =3D tmp->left;=0A=
         } else {=0A=
             QMapNodeBase* y =3D tmp->parent;=0A=
             while (tmp =3D=3D y->right) {=0A=
                 tmp =3D y;=0A=
                 y =3D y->parent;=0A=
             }=0A=
             if (tmp->right !=3D y)=0A=
                 tmp =3D y;=0A=
         }=0A=
         node =3D (NodePtr)tmp;=0A=
         return 0;=0A=
     }=0A=
 =0A=
     int dec() {=0A=
         QMapNodeBase* tmp =3D node;=0A=
         if (tmp->color =3D=3D QMapNodeBase::Red &&=0A=
             tmp->parent->parent =3D=3D tmp ) {=0A=
             tmp =3D tmp->right;=0A=
         } else if (tmp->left !=3D 0) {=0A=
             QMapNodeBase* y =3D tmp->left;=0A=
             while ( y->right )=0A=
                 y =3D y->right;=0A=
             tmp =3D y;=0A=
         } else {=0A=
             QMapNodeBase* y =3D tmp->parent;=0A=
             while (tmp =3D=3D y->left) {=0A=
                 tmp =3D y;=0A=
                 y =3D y->parent;=0A=
             }=0A=
             tmp =3D y;=0A=
         }=0A=
         node =3D (NodePtr)tmp;=0A=
         return 0;=0A=
     }=0A=
 =0A=
 public:=0A=
     QMapIterator<K,T>& operator++() {=0A=
         inc();=0A=
         return *this;=0A=
     }=0A=
 =0A=
     QMapIterator<K,T> operator++(int) {=0A=
         QMapIterator<K,T> tmp =3D *this;=0A=
         inc();=0A=
         return tmp;=0A=
     }=0A=
 =0A=
     QMapIterator<K,T>& operator--() {=0A=
         dec();=0A=
         return *this;=0A=
     }=0A=
 =0A=
     QMapIterator<K,T> operator--(int) {=0A=
         QMapIterator<K,T> tmp =3D *this;=0A=
         dec();=0A=
         return tmp;=0A=
     }=0A=
 };=0A=
 =0A=
 template<class K, class T>=0A=
 class QMapConstIterator=0A=
 {=0A=
  public:=0A=
 =0A=
 =0A=
 =0A=
     typedef QMapNode< K, T >* NodePtr;=0A=
 =0A=
     typedef std::bidirectional_iterator_tag iterator_category;=0A=
 =0A=
     typedef T value_type;=0A=
 =0A=
     typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
 =0A=
     typedef const T* pointer;=0A=
     typedef const T& reference;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMapNode<K,T>* node;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMapConstIterator() : node( 0 ) {}=0A=
     QMapConstIterator( QMapNode<K,T>* p ) : node( p ) {}=0A=
     QMapConstIterator( const QMapConstIterator<K,T>& it ) : node( =
 it.node ) {}=0A=
     QMapConstIterator( const QMapIterator<K,T>& it ) : node( it.node ) {}=0A=
 =0A=
     bool operator=3D=3D( const QMapConstIterator<K,T>& it ) const { =
 return node =3D=3D it.node; }=0A=
     bool operator!=3D( const QMapConstIterator<K,T>& it ) const { return =
 node !=3D it.node; }=0A=
     const T& operator*() const { return node->data; }=0A=
 =0A=
 =0A=
 =0A=
     const K& key() const { return node->key; }=0A=
     const T& data() const { return node->data; }=0A=
 =0A=
 private:=0A=
     int inc() {=0A=
         QMapNodeBase* tmp =3D node;=0A=
         if ( tmp->right ) {=0A=
             tmp =3D tmp->right;=0A=
             while ( tmp->left )=0A=
                 tmp =3D tmp->left;=0A=
         } else {=0A=
             QMapNodeBase* y =3D tmp->parent;=0A=
             while (tmp =3D=3D y->right) {=0A=
                 tmp =3D y;=0A=
                 y =3D y->parent;=0A=
             }=0A=
             if (tmp->right !=3D y)=0A=
                 tmp =3D y;=0A=
         }=0A=
         node =3D (NodePtr)tmp;=0A=
         return 0;=0A=
     }=0A=
 =0A=
     int dec() {=0A=
         QMapNodeBase* tmp =3D node;=0A=
         if (tmp->color =3D=3D QMapNodeBase::Red &&=0A=
             tmp->parent->parent =3D=3D tmp ) {=0A=
             tmp =3D tmp->right;=0A=
         } else if (tmp->left !=3D 0) {=0A=
             QMapNodeBase* y =3D tmp->left;=0A=
             while ( y->right )=0A=
                 y =3D y->right;=0A=
             tmp =3D y;=0A=
         } else {=0A=
             QMapNodeBase* y =3D tmp->parent;=0A=
             while (tmp =3D=3D y->left) {=0A=
                 tmp =3D y;=0A=
                 y =3D y->parent;=0A=
             }=0A=
             tmp =3D y;=0A=
         }=0A=
         node =3D (NodePtr)tmp;=0A=
         return 0;=0A=
     }=0A=
 =0A=
 public:=0A=
     QMapConstIterator<K,T>& operator++() {=0A=
         inc();=0A=
         return *this;=0A=
     }=0A=
 =0A=
     QMapConstIterator<K,T> operator++(int) {=0A=
         QMapConstIterator<K,T> tmp =3D *this;=0A=
         inc();=0A=
         return tmp;=0A=
     }=0A=
 =0A=
     QMapConstIterator<K,T>& operator--() {=0A=
         dec();=0A=
         return *this;=0A=
     }=0A=
 =0A=
     QMapConstIterator<K,T> operator--(int) {=0A=
         QMapConstIterator<K,T> tmp =3D *this;=0A=
         dec();=0A=
         return tmp;=0A=
     }=0A=
 };=0A=
 =0A=
 =0A=
 class QMapPrivateBase : public QShared=0A=
 {=0A=
 public:=0A=
     QMapPrivateBase() {=0A=
         node_count =3D 0;=0A=
     }=0A=
     QMapPrivateBase( const QMapPrivateBase* _map) {=0A=
         node_count =3D _map->node_count;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     void rotateLeft( QMapNodeBase* x, QMapNodeBase*& root);=0A=
     void rotateRight( QMapNodeBase* x, QMapNodeBase*& root );=0A=
     void rebalance( QMapNodeBase* x, QMapNodeBase*& root );=0A=
     QMapNodeBase* removeAndRebalance( QMapNodeBase* z, QMapNodeBase*& =
 root,=0A=
                                       QMapNodeBase*& leftmost,=0A=
                                       QMapNodeBase*& rightmost );=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     int node_count;=0A=
 };=0A=
 =0A=
 =0A=
 template <class Key, class T>=0A=
 class QMapPrivate : public QMapPrivateBase=0A=
 {=0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
     typedef QMapIterator< Key, T > Iterator;=0A=
     typedef QMapConstIterator< Key, T > ConstIterator;=0A=
     typedef QMapNode< Key, T > Node;=0A=
     typedef QMapNode< Key, T >* NodePtr;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMapPrivate() {=0A=
         header =3D new Node;=0A=
         header->color =3D QMapNodeBase::Red;=0A=
         header->parent =3D 0;=0A=
         header->left =3D header->right =3D header;=0A=
     }=0A=
     QMapPrivate( const QMapPrivate< Key, T >* _map ) : QMapPrivateBase( =
 _map ) {=0A=
         header =3D new Node;=0A=
         header->color =3D QMapNodeBase::Red;=0A=
         if ( _map->header->parent =3D=3D 0 ) {=0A=
             header->parent =3D 0;=0A=
             header->left =3D header->right =3D header;=0A=
         } else {=0A=
             header->parent =3D copy( (NodePtr)(_map->header->parent) );=0A=
             header->parent->parent =3D header;=0A=
             header->left =3D header->parent->minimum();=0A=
             header->right =3D header->parent->maximum();=0A=
         }=0A=
     }=0A=
     ~QMapPrivate() { clear(); delete header; }=0A=
 =0A=
     NodePtr copy( NodePtr p ) {=0A=
         if ( !p )=0A=
             return 0;=0A=
         NodePtr n =3D new Node( *p );=0A=
         n->color =3D p->color;=0A=
         if ( p->left ) {=0A=
             n->left =3D copy( (NodePtr)(p->left) );=0A=
             n->left->parent =3D n;=0A=
         } else {=0A=
             n->left =3D 0;=0A=
         }=0A=
         if ( p->right ) {=0A=
             n->right =3D copy( (NodePtr)(p->right) );=0A=
             n->right->parent =3D n;=0A=
         } else {=0A=
             n->right =3D 0;=0A=
         }=0A=
         return n;=0A=
     }=0A=
 =0A=
     void clear() {=0A=
         clear( (NodePtr)(header->parent) );=0A=
         header->color =3D QMapNodeBase::Red;=0A=
         header->parent =3D 0;=0A=
         header->left =3D header->right =3D header;=0A=
         node_count =3D 0;=0A=
     }=0A=
 =0A=
     void clear( NodePtr p ) {=0A=
         while ( p !=3D 0 ) {=0A=
             clear( (NodePtr)p->right );=0A=
             NodePtr y =3D (NodePtr)p->left;=0A=
             delete p;=0A=
             p =3D y;=0A=
         }=0A=
     }=0A=
 =0A=
     Iterator begin() { return Iterator( (NodePtr)(header->left ) ); }=0A=
     Iterator end() { return Iterator( header ); }=0A=
     ConstIterator begin() const { return ConstIterator( =
 (NodePtr)(header->left ) ); }=0A=
     ConstIterator end() const { return ConstIterator( header ); }=0A=
 =0A=
     ConstIterator find(const Key& k) const {=0A=
         QMapNodeBase* y =3D header;=0A=
         QMapNodeBase* x =3D header->parent;=0A=
 =0A=
         while ( x !=3D 0 ) {=0A=
 =0A=
             if ( !( key(x) < k ) ) {=0A=
                 y =3D x;=0A=
                 x =3D x->left;=0A=
             } else {=0A=
                 x =3D x->right;=0A=
             }=0A=
         }=0A=
 =0A=
 =0A=
 =0A=
         if ( y =3D=3D header || k < key(y) )=0A=
             return ConstIterator( header );=0A=
         return ConstIterator( (NodePtr)y );=0A=
     }=0A=
 =0A=
     void remove( Iterator it ) {=0A=
         NodePtr del =3D (NodePtr) removeAndRebalance( it.node, =
 header->parent, header->left, header->right );=0A=
         delete del;=0A=
         --node_count;=0A=
     }=0A=
 # 468 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A=
     Iterator insertSingle( const Key& k ) {=0A=
 =0A=
         QMapNodeBase* y =3D header;=0A=
         QMapNodeBase* x =3D header->parent;=0A=
         bool result =3D TRUE;=0A=
         while ( x !=3D 0 ) {=0A=
             result =3D ( k < key(x) );=0A=
             y =3D x;=0A=
             x =3D result ? x->left : x->right;=0A=
         }=0A=
 =0A=
         Iterator j( (NodePtr)y );=0A=
         if ( result ) {=0A=
 =0A=
             if ( j =3D=3D begin() ) {=0A=
                 return insert(x, y, k );=0A=
             } else {=0A=
 =0A=
                 --j;=0A=
             }=0A=
         }=0A=
 =0A=
         if ( (j.node->key) < k )=0A=
             return insert(x, y, k );=0A=
 =0A=
         return j;=0A=
     }=0A=
 =0A=
     Iterator insert( QMapNodeBase* x, QMapNodeBase* y, const Key& k ) {=0A=
         NodePtr z =3D new Node( k );=0A=
         if (y =3D=3D header || x !=3D 0 || k < key(y) ) {=0A=
             y->left =3D z;=0A=
             if ( y =3D=3D header ) {=0A=
                 header->parent =3D z;=0A=
                 header->right =3D z;=0A=
             } else if ( y =3D=3D header->left )=0A=
                 header->left =3D z;=0A=
         } else {=0A=
             y->right =3D z;=0A=
             if ( y =3D=3D header->right )=0A=
                 header->right =3D z;=0A=
         }=0A=
         z->parent =3D y;=0A=
         z->left =3D 0;=0A=
         z->right =3D 0;=0A=
         rebalance( z, header->parent );=0A=
         ++node_count;=0A=
         return Iterator(z);=0A=
     }=0A=
 =0A=
 protected:=0A=
 =0A=
 =0A=
 =0A=
     const Key& key( QMapNodeBase* b ) const { return ((NodePtr)b)->key; }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     NodePtr header;=0A=
 };=0A=
 # 543 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A=
 template<class Key, class T>=0A=
 class QMap=0A=
 {=0A=
 public:=0A=
 =0A=
 =0A=
 =0A=
     typedef Key key_type;=0A=
     typedef T mapped_type;=0A=
     typedef QPair<const key_type, mapped_type> value_type;=0A=
     typedef value_type* pointer;=0A=
     typedef const value_type* const_pointer;=0A=
     typedef value_type& reference;=0A=
     typedef const value_type& const_reference;=0A=
 =0A=
     typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
 =0A=
     typedef size_t size_type;=0A=
     typedef QMapIterator<Key,T> iterator;=0A=
     typedef QMapConstIterator<Key,T> const_iterator;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     QMap()=0A=
     {=0A=
         sh =3D new QMapPrivate< Key, T >;=0A=
     }=0A=
     QMap( const QMap<Key,T>& m )=0A=
     {=0A=
         sh =3D m.sh; sh->ref();=0A=
     }=0A=
 =0A=
 =0A=
     QMap( const std::map<Key,T>& m )=0A=
     {=0A=
         sh =3D new QMapPrivate<Key,T>;=0A=
 =0A=
 =0A=
 =0A=
         QMapConstIterator<Key,T> it =3D m.begin();=0A=
 =0A=
         for ( ; it !=3D m.end(); ++it ) {=0A=
             value_type p( (*it).first, (*it).second );=0A=
             insert( p );=0A=
         }=0A=
     }=0A=
 =0A=
     ~QMap()=0A=
     {=0A=
         if ( sh->deref() )=0A=
             delete sh;=0A=
     }=0A=
     QMap<Key,T>& operator=3D ( const QMap<Key,T>& m )=0A=
     {=0A=
         m.sh->ref();=0A=
         if ( sh->deref() )=0A=
             delete sh;=0A=
         sh =3D m.sh;=0A=
         return *this;=0A=
     }=0A=
 =0A=
     QMap<Key,T>& operator=3D ( const std::map<Key,T>& m )=0A=
     {=0A=
         clear();=0A=
 =0A=
 =0A=
 =0A=
         QMapConstIterator<Key,T> it =3D m.begin();=0A=
 =0A=
         for ( ; it !=3D m.end(); ++it ) {=0A=
             value_type p( (*it).first, (*it).second );=0A=
             insert( p );=0A=
         }=0A=
         return *this;=0A=
     }=0A=
 =0A=
 =0A=
     iterator begin()=0A=
     {=0A=
         detach();=0A=
         return sh->begin();=0A=
     }=0A=
     iterator end()=0A=
     {=0A=
         detach();=0A=
         return sh->end();=0A=
     }=0A=
     const_iterator begin() const=0A=
     {=0A=
         return ((const Priv*)sh)->begin();=0A=
     }=0A=
     const_iterator end() const=0A=
     {=0A=
         return ((const Priv*)sh)->end();=0A=
     }=0A=
     iterator replace( const Key& k, const T& v )=0A=
     {=0A=
         remove( k );=0A=
         return insert( k, v );=0A=
     }=0A=
 =0A=
     size_type size() const=0A=
     {=0A=
         return sh->node_count;=0A=
     }=0A=
     bool empty() const=0A=
     {=0A=
         return sh->node_count =3D=3D 0;=0A=
     }=0A=
     QPair<iterator,bool> insert( const value_type& x )=0A=
     {=0A=
         detach();=0A=
         size_type n =3D size();=0A=
         iterator it =3D sh->insertSingle( x.first );=0A=
         bool inserted =3D FALSE;=0A=
         if ( n < size() ) {=0A=
             inserted =3D TRUE;=0A=
             it.data() =3D x.second;=0A=
         }=0A=
         return QPair<iterator,bool>( it, inserted );=0A=
     }=0A=
     void erase( iterator it )=0A=
     {=0A=
         detach();=0A=
         sh->remove( it );=0A=
     }=0A=
     void erase( const key_type& k )=0A=
     {=0A=
         detach();=0A=
         iterator it( sh->find( k ).node );=0A=
         if ( it !=3D end() )=0A=
             sh->remove( it );=0A=
     }=0A=
     size_type count( const key_type& k ) const=0A=
     {=0A=
         const_iterator it( sh->find( k ).node );=0A=
         if ( it !=3D end() ) {=0A=
             size_type c =3D 0;=0A=
             while ( it !=3D end() ) {=0A=
                 ++it;=0A=
                 ++c;=0A=
             }=0A=
             return c;=0A=
         }=0A=
         return 0;=0A=
     }=0A=
 =0A=
     T& operator[] ( const Key& k )=0A=
     {=0A=
         detach();=0A=
         QMapNode<Key,T>* p =3D sh->find( k ).node;=0A=
         if ( p !=3D sh->end().node )=0A=
             return p->data;=0A=
         return insert( k, T() ).data();=0A=
     }=0A=
 =0A=
     void clear()=0A=
     {=0A=
         if ( sh->count =3D=3D 1 )=0A=
             sh->clear();=0A=
         else {=0A=
             sh->deref();=0A=
             sh =3D new QMapPrivate<Key,T>;=0A=
         }=0A=
     }=0A=
 =0A=
     typedef QMapIterator< Key, T > Iterator;=0A=
     typedef QMapConstIterator< Key, T > ConstIterator;=0A=
     typedef T ValueType;=0A=
     typedef QMapPrivate< Key, T > Priv;=0A=
 =0A=
     iterator find ( const Key& k )=0A=
     {=0A=
         detach();=0A=
         return iterator( sh->find( k ).node );=0A=
     }=0A=
     const_iterator find ( const Key& k ) const { return sh->find( k ); }=0A=
 =0A=
     const T& operator[] ( const Key& k ) const=0A=
         { ; return sh->find( k ).data(); }=0A=
     bool contains ( const Key& k ) const=0A=
         { return find( k ) !=3D end(); }=0A=
 =0A=
 =0A=
     size_type count() const { return sh->node_count; }=0A=
 =0A=
     bool isEmpty() const { return sh->node_count =3D=3D 0; }=0A=
 =0A=
 =0A=
     iterator insert( const Key& key, const T& value, bool overwrite =3D =
 TRUE ) {=0A=
         detach();=0A=
         size_type n =3D size();=0A=
         iterator it =3D sh->insertSingle( key );=0A=
         if ( overwrite || n < size() )=0A=
             it.data() =3D value;=0A=
         return it;=0A=
     }=0A=
 =0A=
     void remove( iterator it ) { detach(); sh->remove( it ); }=0A=
     void remove( const Key& k ) {=0A=
         detach();=0A=
         iterator it( sh->find( k ).node );=0A=
         if ( it !=3D end() )=0A=
             sh->remove( it );=0A=
     }=0A=
 # 759 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A=
 protected:=0A=
 =0A=
 =0A=
 =0A=
     void detach() { if ( sh->count > 1 ) { sh->deref(); sh =3D new =
 QMapPrivate<Key,T>( sh ); } }=0A=
 =0A=
     Priv* sh;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template<class Key, class T>=0A=
 inline QDataStream& operator>>( QDataStream& s, QMap<Key,T>& m ) {=0A=
     m.clear();=0A=
     Q_UINT32 c;=0A=
     s >> c;=0A=
     for( Q_UINT32 i =3D 0; i < c; ++i ) {=0A=
         Key k; T t;=0A=
         s >> k >> t;=0A=
         m.insert( k, t );=0A=
         if ( s.atEnd() )=0A=
             break;=0A=
     }=0A=
     return s;=0A=
 }=0A=
 =0A=
 =0A=
 template<class Key, class T>=0A=
 inline QDataStream& operator<<( QDataStream& s, const QMap<Key,T>& m ) {=0A=
     s << (Q_UINT32)m.size();=0A=
     QMapConstIterator<Key,T> it =3D m.begin();=0A=
     for( ; it !=3D m.end(); ++it )=0A=
         s << it.key() << it.data();=0A=
     return s;=0A=
 }=0A=
 # 44 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h=
 " 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QImageDrag;=0A=
 class QTextDrag;=0A=
 =0A=
 class QMimeSource=0A=
 {=0A=
     friend class QClipboardData;=0A=
 =0A=
 public:=0A=
     QMimeSource();=0A=
     virtual ~QMimeSource();=0A=
     virtual const char* format( int n =3D 0 ) const =3D 0;=0A=
     virtual bool provides( const char* ) const;=0A=
     virtual QByteArray encodedData( const char* ) const =3D 0;=0A=
     int serialNumber() const;=0A=
 =0A=
 private:=0A=
     int ser_no;=0A=
     enum { NoCache, Text, Graphics } cacheType;=0A=
     union=0A=
     {=0A=
         struct=0A=
         {=0A=
             QString *str;=0A=
             QCString *subtype;=0A=
         } txt;=0A=
         struct=0A=
         {=0A=
             QImage *img;=0A=
             QPixmap *pix;=0A=
         } gfx;=0A=
     } cache;=0A=
     void clearCache();=0A=
 =0A=
 =0A=
     friend class QImageDrag;=0A=
     friend class QTextDrag;=0A=
 =0A=
 };=0A=
 =0A=
 inline int QMimeSource::serialNumber() const=0A=
 { return ser_no; }=0A=
 =0A=
 class QStringList;=0A=
 class QMimeSourceFactoryData;=0A=
 =0A=
 class QMimeSourceFactory {=0A=
 public:=0A=
     QMimeSourceFactory();=0A=
     virtual ~QMimeSourceFactory();=0A=
 =0A=
     static QMimeSourceFactory* defaultFactory();=0A=
     static void setDefaultFactory( QMimeSourceFactory* );=0A=
     static QMimeSourceFactory* takeDefaultFactory();=0A=
     static void addFactory( QMimeSourceFactory *f );=0A=
     static void removeFactory( QMimeSourceFactory *f );=0A=
 =0A=
     virtual const QMimeSource* data(const QString& abs_name) const;=0A=
     virtual QString makeAbsolute(const QString& abs_or_rel_name, const =
 QString& context) const;=0A=
     const QMimeSource* data(const QString& abs_or_rel_name, const =
 QString& context) const;=0A=
 =0A=
     virtual void setText( const QString& abs_name, const QString& text );=0A=
     virtual void setImage( const QString& abs_name, const QImage& im );=0A=
     virtual void setPixmap( const QString& abs_name, const QPixmap& pm );=0A=
     virtual void setData( const QString& abs_name, QMimeSource* data );=0A=
     virtual void setFilePath( const QStringList& );=0A=
     virtual QStringList filePath() const;=0A=
     void addFilePath( const QString& );=0A=
     virtual void setExtensionType( const QString& ext, const char* =
 mimetype );=0A=
 =0A=
 private:=0A=
     QMimeSource *dataInternal(const QString& abs_name, const =
 QMap<QString, QString> &extensions ) const;=0A=
     QMimeSourceFactoryData* d;=0A=
 };=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.=
 h" 2=0A=
 =0A=
 =0A=
 =0A=
 class QEvent: public Qt=0A=
 {=0A=
 public:=0A=
     enum Type {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
         None =3D 0,=0A=
 =0A=
 =0A=
         Timer =3D 1,=0A=
         MouseButtonPress =3D 2,=0A=
         MouseButtonRelease =3D 3,=0A=
         MouseButtonDblClick=3D 4,=0A=
         MouseMove =3D 5,=0A=
         KeyPress =3D 6,=0A=
         KeyRelease =3D 7,=0A=
         FocusIn =3D 8,=0A=
         FocusOut =3D 9,=0A=
         Enter =3D 10,=0A=
         Leave =3D 11,=0A=
         Paint =3D 12,=0A=
         Move =3D 13,=0A=
         Resize =3D 14,=0A=
         Create =3D 15,=0A=
         Destroy =3D 16,=0A=
         Show =3D 17,=0A=
         Hide =3D 18,=0A=
         Close =3D 19,=0A=
         Quit =3D 20,=0A=
         Reparent =3D 21,=0A=
         ShowMinimized =3D 22,=0A=
         ShowNormal =3D 23,=0A=
         WindowActivate =3D 24,=0A=
         WindowDeactivate =3D 25,=0A=
         ShowToParent =3D 26,=0A=
         HideToParent =3D 27,=0A=
         ShowMaximized =3D 28,=0A=
         ShowFullScreen =3D 29,=0A=
         Accel =3D 30,=0A=
         Wheel =3D 31,=0A=
         AccelAvailable =3D 32,=0A=
         CaptionChange =3D 33,=0A=
         IconChange =3D 34,=0A=
         ParentFontChange =3D 35,=0A=
         ApplicationFontChange =3D 36,=0A=
         ParentPaletteChange =3D 37,=0A=
         ApplicationPaletteChange =3D 38,=0A=
         PaletteChange =3D 39,=0A=
         Clipboard =3D 40,=0A=
         Speech =3D 42,=0A=
         SockAct =3D 50,=0A=
         AccelOverride =3D 51,=0A=
         DeferredDelete =3D 52,=0A=
         DragEnter =3D 60,=0A=
         DragMove =3D 61,=0A=
         DragLeave =3D 62,=0A=
         Drop =3D 63,=0A=
         DragResponse =3D 64,=0A=
         ChildInserted =3D 70,=0A=
         ChildRemoved =3D 71,=0A=
         LayoutHint =3D 72,=0A=
         ShowWindowRequest =3D 73,=0A=
         ActivateControl =3D 80,=0A=
         DeactivateControl =3D 81,=0A=
         ContextMenu =3D 82,=0A=
         IMStart =3D 83,=0A=
         IMCompose =3D 84,=0A=
         IMEnd =3D 85,=0A=
         Accessibility =3D 86,=0A=
         Tablet =3D 87,=0A=
         User =3D 1000,=0A=
         MaxUser =3D 65535=0A=
     };=0A=
 =0A=
 =0A=
     QEvent( Type type ) : t(type), posted(FALSE), spont(FALSE) {}=0A=
     virtual ~QEvent();=0A=
     Type type() const { return t; }=0A=
     bool spontaneous() const { return spont; }=0A=
 protected:=0A=
     Type t;=0A=
 private:=0A=
     uint posted : 1;=0A=
     uint spont : 1;=0A=
 =0A=
 =0A=
     friend class QApplication;=0A=
     friend class QBaseApplication;=0A=
     friend class QETWidget;=0A=
 };=0A=
 =0A=
 =0A=
 class QTimerEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QTimerEvent( int timerId )=0A=
         : QEvent(Timer), id(timerId) {}=0A=
     int timerId() const { return id; }=0A=
 protected:=0A=
     int id;=0A=
 };=0A=
 =0A=
 =0A=
 class QMouseEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QMouseEvent( Type type, const QPoint &pos, int button, int state );=0A=
 =0A=
     QMouseEvent( Type type, const QPoint &pos, const QPoint&globalPos,=0A=
                  int button, int state )=0A=
         : QEvent(type), p(pos), g(globalPos), =
 b((ushort)button),s((ushort)state),accpt(TRUE) {};=0A=
 =0A=
     const QPoint &pos() const { return p; }=0A=
     const QPoint &globalPos() const { return g; }=0A=
     int x() const { return p.x(); }=0A=
     int y() const { return p.y(); }=0A=
     int globalX() const { return g.x(); }=0A=
     int globalY() const { return g.y(); }=0A=
     ButtonState button() const { return (ButtonState) b; }=0A=
     ButtonState state() const { return (ButtonState) s; }=0A=
     ButtonState stateAfter() const;=0A=
     bool isAccepted() const { return accpt; }=0A=
     void accept() { accpt =3D TRUE; }=0A=
     void ignore() { accpt =3D FALSE; }=0A=
 protected:=0A=
     QPoint p;=0A=
     QPoint g;=0A=
     ushort b;=0A=
     ushort s;=0A=
     uint accpt:1;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 class QWheelEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QWheelEvent( const QPoint &pos, int delta, int state, Orientation =
 orient =3D Vertical );=0A=
     QWheelEvent( const QPoint &pos, const QPoint& globalPos, int delta, =
 int state, Orientation orient =3D Vertical )=0A=
         : QEvent(Wheel), p(pos), g(globalPos), d(delta), =
 s((ushort)state),=0A=
           accpt(TRUE), o(orient) {}=0A=
     int delta() const { return d; }=0A=
     const QPoint &pos() const { return p; }=0A=
     const QPoint &globalPos() const { return g; }=0A=
     int x() const { return p.x(); }=0A=
     int y() const { return p.y(); }=0A=
     int globalX() const { return g.x(); }=0A=
     int globalY() const { return g.y(); }=0A=
     ButtonState state() const { return ButtonState(s); }=0A=
     Orientation orientation() const { return o; }=0A=
     bool isAccepted() const { return accpt; }=0A=
     void accept() { accpt =3D TRUE; }=0A=
     void ignore() { accpt =3D FALSE; }=0A=
 protected:=0A=
     QPoint p;=0A=
     QPoint g;=0A=
     int d;=0A=
     ushort s;=0A=
     bool accpt;=0A=
     Orientation o;=0A=
 };=0A=
 =0A=
 =0A=
 class QTabletEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     enum TabletDevice { NoDevice =3D -1, Puck, Stylus, Eraser };=0A=
     QTabletEvent( const QPoint &pos, int device, int pressure, int xTilt,=0A=
                   int yTilt, const QPair<int,int> &uId )=0A=
         : QEvent( Tablet ), mPos( pos ), mDev( device ), mPress( =
 pressure ),=0A=
           mXT( xTilt ), mYT( yTilt ), mType( uId.first ), mPhy( =
 uId.second )=0A=
     {}=0A=
     QTabletEvent( const QPoint &pos, const QPoint &globalPos, int device,=0A=
                   int pressure, int xTilt, int yTilt, const =
 QPair<int,int> &uId )=0A=
         : QEvent( Tablet ), mPos( pos ), mGPos( globalPos ), mDev( =
 device ),=0A=
           mPress( pressure ), mXT( xTilt ), mYT( yTilt ), mType( =
 uId.first ),=0A=
           mPhy( uId.second )=0A=
     {}=0A=
     int pressure() const { return mPress; }=0A=
     int xTilt() const { return mXT; }=0A=
     int yTilt() const { return mYT; }=0A=
     const QPoint &pos() const { return mPos; }=0A=
     const QPoint &globalPos() const { return mGPos; }=0A=
     int x() const { return mPos.x(); }=0A=
     int y() const { return mPos.y(); }=0A=
     int globalX() const { return mGPos.x(); }=0A=
     int globalY() const { return mGPos.y(); }=0A=
     TabletDevice device() const { return TabletDevice(mDev); }=0A=
     int isAccepted() const { return mbAcc; }=0A=
     void accept() { mbAcc =3D TRUE; }=0A=
     void ignore() { mbAcc =3D FALSE; }=0A=
     QPair<int,int> uniqueId() { return QPair<int,int>( mType, mPhy); }=0A=
 protected:=0A=
     QPoint mPos;=0A=
     QPoint mGPos;=0A=
     int mDev,=0A=
         mPress,=0A=
         mXT,=0A=
         mYT,=0A=
         mType,=0A=
         mPhy;=0A=
     bool mbAcc;=0A=
 =0A=
 };=0A=
 =0A=
 class QKeyEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QKeyEvent( Type type, int key, int ascii, int state,=0A=
                 const QString& text=3DQString::null, bool =
 autorep=3DFALSE, ushort count=3D1 )=0A=
         : QEvent(type), txt(text), k((ushort)key), s((ushort)state),=0A=
             a((uchar)ascii), accpt(TRUE), autor(autorep), c(count) {}=0A=
     int key() const { return k; }=0A=
     int ascii() const { return a; }=0A=
     ButtonState state() const { return ButtonState(s); }=0A=
     ButtonState stateAfter() const;=0A=
     bool isAccepted() const { return accpt; }=0A=
     QString text() const { return txt; }=0A=
     bool isAutoRepeat() const { return autor; }=0A=
     int count() const { return int(c); }=0A=
     void accept() { accpt =3D TRUE; }=0A=
     void ignore() { accpt =3D FALSE; }=0A=
 =0A=
 protected:=0A=
     QString txt;=0A=
     ushort k, s;=0A=
     uchar a;=0A=
     uint accpt:1;=0A=
     uint autor:1;=0A=
     ushort c;=0A=
 };=0A=
 =0A=
 =0A=
 class QFocusEvent : public QEvent=0A=
 {=0A=
 public:=0A=
 =0A=
     QFocusEvent( Type type )=0A=
         : QEvent(type) {}=0A=
 =0A=
     bool gotFocus() const { return type() =3D=3D FocusIn; }=0A=
     bool lostFocus() const { return type() =3D=3D FocusOut; }=0A=
 =0A=
     enum Reason { Mouse, Tab, Backtab, ActiveWindow, Popup, Shortcut, =
 Other };=0A=
     static Reason reason();=0A=
     static void setReason( Reason reason );=0A=
     static void resetReason();=0A=
 =0A=
 private:=0A=
     static Reason m_reason;=0A=
     static Reason prev_reason;=0A=
 };=0A=
 =0A=
 =0A=
 class QPaintEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QPaintEvent( const QRegion& paintRegion, bool erased =3D TRUE)=0A=
         : QEvent(Paint),=0A=
           rec(paintRegion.boundingRect()),=0A=
           reg(paintRegion),=0A=
           erase(erased){}=0A=
     QPaintEvent( const QRect &paintRect, bool erased =3D TRUE )=0A=
         : QEvent(Paint),=0A=
           rec(paintRect),=0A=
           reg(paintRect),=0A=
           erase(erased){}=0A=
     const QRect &rect() const { return rec; }=0A=
     const QRegion &region() const { return reg; }=0A=
     bool erased() const { return erase; }=0A=
 protected:=0A=
     friend class QApplication;=0A=
     friend class QBaseApplication;=0A=
     QRect rec;=0A=
     QRegion reg;=0A=
     bool erase;=0A=
 };=0A=
 =0A=
 =0A=
 class QMoveEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QMoveEvent( const QPoint &pos, const QPoint &oldPos )=0A=
         : QEvent(Move), p(pos), oldp(oldPos) {}=0A=
     const QPoint &pos() const { return p; }=0A=
     const QPoint &oldPos()const { return oldp;}=0A=
 protected:=0A=
     QPoint p, oldp;=0A=
     friend class QApplication;=0A=
     friend class QBaseApplication;=0A=
 };=0A=
 =0A=
 =0A=
 class QResizeEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QResizeEvent( const QSize &size, const QSize &oldSize )=0A=
         : QEvent(Resize), s(size), olds(oldSize) {}=0A=
     const QSize &size() const { return s; }=0A=
     const QSize &oldSize()const { return olds;}=0A=
 protected:=0A=
     QSize s, olds;=0A=
     friend class QApplication;=0A=
     friend class QBaseApplication;=0A=
 };=0A=
 =0A=
 =0A=
 class QCloseEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QCloseEvent()=0A=
         : QEvent(Close), accpt(FALSE) {}=0A=
     bool isAccepted() const { return accpt; }=0A=
     void accept() { accpt =3D TRUE; }=0A=
     void ignore() { accpt =3D FALSE; }=0A=
 protected:=0A=
     bool accpt;=0A=
 };=0A=
 =0A=
 =0A=
 class QShowEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QShowEvent()=0A=
         : QEvent(Show) {}=0A=
 };=0A=
 =0A=
 =0A=
 class QHideEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QHideEvent()=0A=
         : QEvent(Hide) {}=0A=
 };=0A=
 =0A=
 class QContextMenuEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     enum Reason { Mouse, Keyboard, Other };=0A=
     QContextMenuEvent( Reason reason, const QPoint &pos, const QPoint =
 &globalPos, int state )=0A=
         : QEvent( ContextMenu ), p( pos ), gp( globalPos ), accpt( FALSE =
 ), consum(FALSE),=0A=
         reas( reason ), s((ushort)state) {}=0A=
     QContextMenuEvent( Reason reason, const QPoint &pos, int state );=0A=
 =0A=
     int x() const { return p.x(); }=0A=
     int y() const { return p.y(); }=0A=
     int globalX() const { return gp.x(); }=0A=
     int globalY() const { return gp.y(); }=0A=
 =0A=
     const QPoint& pos() const { return p; }=0A=
     const QPoint& globalPos() const { return gp; }=0A=
 =0A=
     ButtonState state() const { return (ButtonState) s; }=0A=
     bool isAccepted() const { return accpt; }=0A=
     bool isConsumed() const { return consum; }=0A=
     void consume() { consum =3D TRUE; }=0A=
     void accept() { accpt =3D TRUE; consum =3D TRUE; }=0A=
     void ignore() { accpt =3D FALSE; consum =3D FALSE; }=0A=
 =0A=
     Reason reason() const { return Reason( reas ); }=0A=
 =0A=
 protected:=0A=
     QPoint p;=0A=
     QPoint gp;=0A=
     bool accpt;=0A=
     bool consum;=0A=
     uint reas:8;=0A=
     ushort s;=0A=
 };=0A=
 =0A=
 =0A=
 class QIMEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QIMEvent( Type type, const QString &text, int cursorPosition )=0A=
         : QEvent(type), txt(text), cpos(cursorPosition), a(FALSE) {}=0A=
     const QString &text() const { return txt; }=0A=
     int cursorPos() const { return cpos; }=0A=
     bool isAccepted() const { return a; }=0A=
     void accept() { a =3D TRUE; }=0A=
     void ignore() { a =3D FALSE; }=0A=
 private:=0A=
     QString txt;=0A=
     int cpos;=0A=
     bool a;=0A=
 };=0A=
 # 447 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.=
 h"=0A=
 class QDropEvent : public QEvent, public QMimeSource=0A=
 {=0A=
 public:=0A=
     QDropEvent( const QPoint& pos, Type typ=3DDrop )=0A=
         : QEvent(typ), p(pos),=0A=
           act(0), accpt(0), accptact(0), resv(0),=0A=
           d(0)=0A=
         {}=0A=
     const QPoint &pos() const { return p; }=0A=
     bool isAccepted() const { return accpt || accptact; }=0A=
     void accept(bool y=3DTRUE) { accpt =3D y; }=0A=
     void ignore() { accpt =3D FALSE; }=0A=
 =0A=
     bool isActionAccepted() const { return accptact; }=0A=
     void acceptAction(bool y=3DTRUE) { accptact =3D y; }=0A=
     enum Action { Copy, Link, Move, Private, UserAction=3D100 };=0A=
     void setAction( Action a ) { act =3D (uint)a; }=0A=
     Action action() const { return Action(act); }=0A=
 =0A=
     QWidget* source() const;=0A=
     const char* format( int n =3D 0 ) const;=0A=
     QByteArray encodedData( const char* ) const;=0A=
     bool provides( const char* ) const;=0A=
 =0A=
     QByteArray data(const char* f) const { return encodedData(f); }=0A=
 =0A=
     void setPoint( const QPoint& np ) { p =3D np; }=0A=
 =0A=
 protected:=0A=
     QPoint p;=0A=
     uint act:8;=0A=
     uint accpt:1;=0A=
     uint accptact:1;=0A=
     uint resv:5;=0A=
     void * d;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 class QDragMoveEvent : public QDropEvent=0A=
 {=0A=
 public:=0A=
     QDragMoveEvent( const QPoint& pos, Type typ=3DDragMove )=0A=
         : QDropEvent(pos,typ),=0A=
           rect( pos, QSize( 1, 1 ) ) {}=0A=
     QRect answerRect() const { return rect; }=0A=
     void accept( bool y=3DTRUE ) { QDropEvent::accept(y); }=0A=
     void accept( const QRect & r) { accpt =3D TRUE; rect =3D r; }=0A=
     void ignore( const QRect & r) { accpt =3DFALSE; rect =3D r; }=0A=
     void ignore() { QDropEvent::ignore(); }=0A=
 =0A=
 protected:=0A=
     QRect rect;=0A=
 };=0A=
 =0A=
 =0A=
 class QDragEnterEvent : public QDragMoveEvent=0A=
 {=0A=
 public:=0A=
     QDragEnterEvent( const QPoint& pos ) :=0A=
         QDragMoveEvent(pos, DragEnter) { }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 class QDragResponseEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QDragResponseEvent( bool accepted )=0A=
         : QEvent(DragResponse), a(accepted) {}=0A=
     bool dragAccepted() const { return a; }=0A=
 protected:=0A=
     bool a;=0A=
 };=0A=
 =0A=
 =0A=
 class QDragLeaveEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QDragLeaveEvent()=0A=
         : QEvent(DragLeave) {}=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 class QChildEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QChildEvent( Type type, QObject *child )=0A=
         : QEvent(type), c(child) {}=0A=
     QObject *child() const { return c; }=0A=
     bool inserted() const { return t =3D=3D ChildInserted; }=0A=
     bool removed() const { return t =3D=3D ChildRemoved; }=0A=
 protected:=0A=
     QObject *c;=0A=
 };=0A=
 =0A=
 =0A=
 class QCustomEvent : public QEvent=0A=
 {=0A=
 public:=0A=
     QCustomEvent( int type );=0A=
     QCustomEvent( Type type, void *data )=0A=
         : QEvent(type), d(data) {};=0A=
     void *data() const { return d; }=0A=
     void setData( void* data ) { d =3D data; }=0A=
 private:=0A=
     void *d;=0A=
 };=0A=
 # 46 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QMetaObject;=0A=
 class QVariant;=0A=
 class QMetaProperty;=0A=
 class QPostEventList;=0A=
 class QObjectPrivate;=0A=
 struct QUObject;=0A=
 =0A=
 class QObject: public Qt=0A=
 {=0A=
     public: virtual QMetaObject *metaObject() const { return =
 staticMetaObject(); } virtual const char *className() const; virtual =
 void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); =
 virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int, =
 int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* =
 qObject() { return (QObject*)this; } static QString tr( const char *, =
 const char * =3D 0 ); static QString trUtf8( const char *, const char * =
 =3D 0 ); private: static QMetaObject *metaObj;=0A=
    =0A=
 =0A=
 public:=0A=
     QObject( QObject *parent=3D0, const char *name=3D0 );=0A=
     virtual ~QObject();=0A=
 # 75 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h"=0A=
     virtual bool event( QEvent * );=0A=
     virtual bool eventFilter( QObject *, QEvent * );=0A=
 =0A=
     bool isA( const char * ) const;=0A=
     bool inherits( const char * ) const;=0A=
 =0A=
     const char *name() const;=0A=
     const char *name( const char * defaultName ) const;=0A=
 =0A=
     virtual void setName( const char *name );=0A=
     bool isWidgetType() const { return isWidget; }=0A=
     bool highPriority() const { return FALSE; }=0A=
 =0A=
     bool signalsBlocked() const { return blockSig; }=0A=
     void blockSignals( bool b );=0A=
 =0A=
     int startTimer( int interval );=0A=
     void killTimer( int id );=0A=
     void killTimers();=0A=
 =0A=
     QObject *child( const char *objName, const char *inheritsClass =3D =
 0, bool recursiveSearch =3D TRUE );=0A=
     const QObjectList *children() const { return childObjects; }=0A=
 =0A=
     static const QObjectList *objectTrees();=0A=
 =0A=
     QObjectList *queryList( const char *inheritsClass =3D 0,=0A=
                                   const char *objName =3D 0,=0A=
                                   bool regexpMatch =3D TRUE,=0A=
                                   bool recursiveSearch =3D TRUE ) const;=0A=
 =0A=
     virtual void insertChild( QObject * );=0A=
     virtual void removeChild( QObject * );=0A=
 =0A=
     void installEventFilter( const QObject * );=0A=
     void removeEventFilter( const QObject * );=0A=
 =0A=
     static bool connect( const QObject *sender, const char *signal,=0A=
                           const QObject *receiver, const char *member );=0A=
     bool connect( const QObject *sender, const char *signal,=0A=
                           const char *member ) const;=0A=
     static bool disconnect( const QObject *sender, const char *signal,=0A=
                              const QObject *receiver, const char *member =
 );=0A=
     bool disconnect( const char *signal=3D0,=0A=
                              const QObject *receiver=3D0, const char =
 *member=3D0 );=0A=
     bool disconnect( const QObject *receiver, const char *member=3D0 );=0A=
     static void connectInternal( const QObject *sender, int =
 signal_index, const QObject *receiver,=0A=
                                   int membcode, int member_index );=0A=
 =0A=
     void dumpObjectTree();=0A=
     void dumpObjectInfo();=0A=
 =0A=
 =0A=
     virtual bool setProperty( const char *name, const QVariant& value );=0A=
     virtual QVariant property( const char *name ) const;=0A=
 # 137 =
 "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject=
 .h"=0A=
 protected:=0A=
     void destroyed();=0A=
     void destroyed( QObject* obj );=0A=
 =0A=
 public:=0A=
     QObject *parent() const { return parentObj; }=0A=
 =0A=
 public :=0A=
     void deleteLater();=0A=
 =0A=
 private :=0A=
     void cleanupEventFilter( QObject* );=0A=
 =0A=
 protected:=0A=
     bool activate_filters( QEvent * );=0A=
     QConnectionList *receivers( const char* signal ) const;=0A=
     QConnectionList *receivers( int signal ) const;=0A=
     void activate_signal( int signal );=0A=
     void activate_signal( int signal, int );=0A=
     void activate_signal( int signal, double );=0A=
     void activate_signal( int signal, QString );=0A=
     void activate_signal_bool( int signal, bool );=0A=
     void activate_signal( QConnectionList *clist, QUObject *o );=0A=
 =0A=
     const QObject *sender();=0A=
 =0A=
     virtual void timerEvent( QTimerEvent * );=0A=
     virtual void childEvent( QChildEvent * );=0A=
     virtual void customEvent( QCustomEvent * );=0A=
 =0A=
     virtual void connectNotify( const char *signal );=0A=
     virtual void disconnectNotify( const char *signal );=0A=
     virtual bool checkConnectArgs( const char *signal, const QObject =
 *receiver,=0A=
                                    const char *member );=0A=
     static QCString normalizeSignalSlot( const char *signalSlot );=0A=
 =0A=
 private:=0A=
     uint isSignal : 1;=0A=
     uint isWidget : 1;=0A=
     uint pendTimer : 1;=0A=
     uint blockSig : 1;=0A=
     uint wasDeleted : 1;=0A=
     uint isTree : 1;=0A=
 =0A=
     const char *objname;=0A=
     QObject *parentObj;=0A=
     QObjectList *childObjects;=0A=
     QSignalVec *connections;=0A=
     QObjectList *senderObjects;=0A=
     QObjectList *eventFilters;=0A=
     QPostEventList *postedEvents;=0A=
     QObjectPrivate* d;=0A=
 =0A=
     static QMetaObject* staticQtMetaObject();=0A=
 =0A=
     friend class QApplication;=0A=
     friend class QBaseApplication;=0A=
     friend class QWidget;=0A=
     friend class QSignal;=0A=
     friend class QSenderObject;=0A=
 =0A=
 private:=0A=
 =0A=
     QObject( const QObject & );=0A=
     QObject &operator=3D( const QObject & );=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 inline bool QObject::connect( const QObject *sender, const char *signal,=0A=
                               const char *member ) const=0A=
 {=0A=
     return connect( sender, signal, this, member );=0A=
 }=0A=
 =0A=
 =0A=
 inline bool QObject::disconnect( const char *signal,=0A=
                                  const QObject *receiver, const char =
 *member )=0A=
 {=0A=
     return disconnect( this, signal, receiver, member );=0A=
 }=0A=
 =0A=
 =0A=
 inline bool QObject::disconnect( const QObject *receiver, const char =
 *member )=0A=
 {=0A=
     return disconnect( this, 0, receiver, member );=0A=
 }=0A=
 =0A=
 =0A=
 class QSenderObject : public QObject=0A=
 {=0A=
 public:=0A=
     void setSender( QObject *s );=0A=
 };=0A=
 # 7 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h" 1=0A=
 # 11 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h"=0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
 # 65 "/usr/include/assert.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 extern void __assert_fail (__const char *__assertion, __const char =
 *__file,=0A=
                            unsigned int __line, __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 extern void __assert_perror_fail (int __errnum, __const char *__file,=0A=
                                   unsigned int __line,=0A=
                                   __const char *__function)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __assert (const char *__assertion, const char *__file, int =
 __line)=0A=
      throw () __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
 }=0A=
 # 12 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h" 2=0A=
 =0A=
 =0A=
 namespace nmove=0A=
 {=0A=
 =0A=
 namespace utilities=0A=
 {=0A=
 # 31 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h"=0A=
 template <typename T, unsigned int N>=0A=
 class Array;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <unsigned int N>=0A=
 class ArraySize=0A=
 {=0A=
      typedef const unsigned int (&UIntArrayN)[N];=0A=
 =0A=
      unsigned int m_Dimensions[N];=0A=
 =0A=
      ArraySize(const unsigned int (&Dimensions)[N-1],unsigned int dim)=0A=
      {=0A=
          std::copy(&Dimensions[0],&Dimensions[N-1],m_Dimensions);=0A=
          m_Dimensions[N-1]=3Ddim;=0A=
      }=0A=
 =0A=
   public:=0A=
 =0A=
      ArraySize<N+1> operator () (unsigned int dim)=0A=
      {=0A=
         return ArraySize<N+1>(m_Dimensions,dim);=0A=
      }=0A=
 =0A=
      operator UIntArrayN () const { return m_Dimensions; }=0A=
 =0A=
      friend class ArraySizes;=0A=
      friend class ArraySize<N-1>;=0A=
 };=0A=
 =0A=
 =0A=
 class ArraySizes=0A=
 {=0A=
      unsigned int m_Dimensions[1];=0A=
 =0A=
   public:=0A=
 =0A=
      explicit ArraySizes(unsigned int dim)=0A=
      {=0A=
         m_Dimensions[0]=3Ddim;=0A=
      }=0A=
 =0A=
      ArraySize<2> operator () (unsigned int dim)=0A=
      {=0A=
         return ArraySize<2>(m_Dimensions,dim);=0A=
      }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 class RefArray=0A=
 {=0A=
  public:=0A=
 =0A=
 =0A=
    typedef T value_type;=0A=
    typedef T & reference;=0A=
    typedef const T & const_reference;=0A=
    typedef T * pointer;=0A=
    typedef const T * const_pointer;=0A=
    typedef T * iterator;=0A=
    typedef const T * const_iterator;=0A=
    typedef size_t size_type;=0A=
    typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
    enum { array_dims =3D N };=0A=
 =0A=
  private:=0A=
 =0A=
    const size_type * const m_pNDimensions;=0A=
    const size_type * const m_pSubArrayLen;=0A=
 =0A=
    T * const m_pElements;=0A=
 =0A=
    RefArray<T,N>(T * pElements, const size_type * pNDimensions,=0A=
                                 const size_type * pSubArrayLen)=0A=
      :m_pElements(pElements),m_pNDimensions(pNDimensions),=0A=
                              m_pSubArrayLen(pSubArrayLen)=0A=
    {=0A=
       (static_cast<void> ((m_pElements && m_pNDimensions && =
 m_pSubArrayLen) ? 0 : (__assert_fail ("m_pElements && m_pNDimensions && =
 m_pSubArrayLen", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 118, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((m_pNDimensions[0]>0 && m_pSubArrayLen[0]>0) ? =
 0 : (__assert_fail ("m_pNDimensions[0]>0 && m_pSubArrayLen[0]>0", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 119, =
 __PRETTY_FUNCTION__), 0)));=0A=
    }=0A=
 =0A=
  public:=0A=
 =0A=
    RefArray<T,N-1> operator [](size_type Index)=0A=
    {=0A=
       (static_cast<void> ((m_pElements) ? 0 : (__assert_fail =
 ("m_pElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 126, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_pNDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_pNDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 127, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N-1>(&m_pElements[Index*m_pSubArrayLen[0]],=0A=
                               m_pNDimensions+1,m_pSubArrayLen+1);=0A=
    }=0A=
 =0A=
    const RefArray<T,N-1> operator [](size_type Index) const=0A=
    {=0A=
       (static_cast<void> ((m_pElements) ? 0 : (__assert_fail =
 ("m_pElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 134, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_pNDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_pNDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 135, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N-1>(&m_pElements[Index*m_pSubArrayLen[0]],=0A=
                               m_pNDimensions+1,m_pSubArrayLen+1);=0A=
    }=0A=
 =0A=
 =0A=
    iterator begin() { return m_pElements; }=0A=
    const_iterator begin() const { return m_pElements; }=0A=
    iterator end() { return m_pElements+size(); }=0A=
    const_iterator end() const { return m_pElements+size(); }=0A=
 =0A=
 =0A=
    size_type size() const { return m_pNDimensions[0]*m_pSubArrayLen[0]; }=0A=
 =0A=
 =0A=
    size_type size(unsigned int Dim) const=0A=
    {=0A=
       (static_cast<void> ((Dim>=3D1 && Dim<=3DN) ? 0 : (__assert_fail =
 ("Dim>=3D1 && Dim<=3DN", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 152, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return m_pNDimensions[Dim-1];=0A=
    }=0A=
 =0A=
 =0A=
    unsigned int dimensions() const { return N; }=0A=
 =0A=
  protected:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
    void copy(const RefArray<T,N> & SA, const T & Init=3DT())=0A=
    {=0A=
        size_type below=3Dstd::min(size(1),SA.size(1));=0A=
        size_type above=3Dsize(1);=0A=
 =0A=
 =0A=
        for (size_type i=3D0;i<below;i++)=0A=
            (*this)[i].copy(SA[i],Init);=0A=
 =0A=
 =0A=
        for (size_type j=3Dbelow;j<above;j++)=0A=
            (*this)[j].initialize(Init);=0A=
    }=0A=
 =0A=
 =0A=
    void initialize(const T & Init=3DT())=0A=
    {=0A=
        std::fill(begin(),end(),Init);=0A=
    }=0A=
 =0A=
 =0A=
    template <typename TT, unsigned int NN>=0A=
    friend bool operator =3D=3D (const RefArray<TT,NN> & A, const =
 RefArray<TT,NN> & B);=0A=
 =0A=
    friend class Array<T,N>;=0A=
    friend class Array<T,N+1>;=0A=
    friend class RefArray<T,N+1>;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename T>=0A=
 class RefArray<T,1>=0A=
 {=0A=
  public:=0A=
 =0A=
 =0A=
    typedef T value_type;=0A=
    typedef T & reference;=0A=
    typedef const T & const_reference;=0A=
    typedef T * pointer;=0A=
    typedef const T * const_pointer;=0A=
    typedef T * iterator;=0A=
    typedef const T * const_iterator;=0A=
    typedef size_t size_type;=0A=
    typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
    enum { array_dims =3D 1 };=0A=
 =0A=
  private:=0A=
 =0A=
    const size_type * const m_pNDimensions;=0A=
 =0A=
    T * const m_pElements;=0A=
 =0A=
    RefArray<T,1>(T * pElements, const size_type * pNDimensions,=0A=
                                 const size_type * pSubArrayLen)=0A=
      :m_pElements(pElements),m_pNDimensions(pNDimensions)=0A=
    {=0A=
       (static_cast<void> ((m_pElements && m_pNDimensions && =
 pSubArrayLen) ? 0 : (__assert_fail ("m_pElements && m_pNDimensions && =
 pSubArrayLen", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 229, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((m_pNDimensions[0]>0 && =
 pSubArrayLen[0]=3D=3D1) ? 0 : (__assert_fail ("m_pNDimensions[0]>0 && =
 pSubArrayLen[0]=3D=3D1", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 230, =
 __PRETTY_FUNCTION__), 0)));=0A=
    }=0A=
 =0A=
  public:=0A=
 =0A=
    reference operator [](size_type Index)=0A=
    {=0A=
       (static_cast<void> ((m_pElements) ? 0 : (__assert_fail =
 ("m_pElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 237, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_pNDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_pNDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 238, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return m_pElements[Index];=0A=
    }=0A=
 =0A=
    const_reference operator [](size_type Index) const=0A=
    {=0A=
       (static_cast<void> ((m_pElements) ? 0 : (__assert_fail =
 ("m_pElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 244, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_pNDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_pNDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 245, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return m_pElements[Index];=0A=
    }=0A=
 =0A=
 =0A=
    iterator begin() { return m_pElements; }=0A=
    const_iterator begin() const { return m_pElements; }=0A=
    iterator end() { return m_pElements+size(); }=0A=
    const_iterator end() const { return m_pElements+size(); }=0A=
 =0A=
 =0A=
    size_type size() const { return m_pNDimensions[0]; }=0A=
 =0A=
 =0A=
    size_type size(unsigned int Dim) const=0A=
    {=0A=
       (static_cast<void> ((Dim=3D=3D1) ? 0 : (__assert_fail =
 ("Dim=3D=3D1", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 261, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return m_pNDimensions[0];=0A=
    }=0A=
 =0A=
 =0A=
    unsigned int dimensions() const { return 1; }=0A=
 =0A=
  protected:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
    void copy(const RefArray<T,1> & SA, const T & Init=3DT())=0A=
    {=0A=
        size_type below=3Dstd::min(size(1),SA.size(1));=0A=
        size_type above=3Dsize(1);=0A=
 =0A=
 =0A=
        for (size_type i=3D0;i<below;i++)=0A=
           m_pElements[i]=3DSA.m_pElements[i];=0A=
 =0A=
 =0A=
        for (size_type j=3Dbelow;j<above;j++)=0A=
           m_pElements[j]=3DInit;=0A=
    }=0A=
 =0A=
 =0A=
    void initialize(const T & Init=3DT())=0A=
    {=0A=
        std::fill(begin(),end(),Init);=0A=
    }=0A=
 =0A=
 =0A=
    template <typename TT, unsigned int NN>=0A=
    friend bool operator =3D=3D (const RefArray<TT,NN> & A, const =
 RefArray<TT,NN> & B);=0A=
 =0A=
    friend class Array<T,1>;=0A=
    friend class Array<T,2>;=0A=
    friend class RefArray<T,2>;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 class Array=0A=
 {=0A=
  public:=0A=
 =0A=
 =0A=
    typedef T value_type;=0A=
    typedef T & reference;=0A=
    typedef const T & const_reference;=0A=
    typedef T * pointer;=0A=
    typedef const T * const_pointer;=0A=
    typedef T * iterator;=0A=
    typedef const T * const_iterator;=0A=
    typedef size_t size_type;=0A=
    typedef ptrdiff_t difference_type;=0A=
 =0A=
 =0A=
    enum { array_dims =3D N };=0A=
 =0A=
  private:=0A=
 =0A=
    T * m_pArrayElements;=0A=
    size_type m_nArrayElements;=0A=
 =0A=
    size_type m_NDimensions[N];=0A=
    size_type m_SubArrayLen[N];=0A=
 =0A=
  public:=0A=
 =0A=
 =0A=
    Array<T,N>()=0A=
       :m_pArrayElements(__null),m_nArrayElements(0)=0A=
    {=0A=
       std::fill(m_NDimensions,m_NDimensions+N,0);=0A=
       std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A=
    }=0A=
 =0A=
 =0A=
 =0A=
    explicit Array<T,N>(const unsigned int (&Dimensions)[N], const T & =
 Init=3DT())=0A=
       :m_pArrayElements(__null),m_nArrayElements(0)=0A=
    {=0A=
       std::fill(m_NDimensions,m_NDimensions+N,0);=0A=
       std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A=
 =0A=
       resize(Dimensions,Init);=0A=
    }=0A=
 =0A=
 =0A=
    Array<T,N>(const Array<T,N> & A)=0A=
       :m_pArrayElements(__null),m_nArrayElements(0)=0A=
    {=0A=
       std::fill(m_NDimensions,m_NDimensions+N,0);=0A=
       std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A=
 =0A=
       Array<T,N> Temp;=0A=
       if (!A.empty() && Temp.resize(A.m_NDimensions))=0A=
          std::copy(A.begin(),A.end(),Temp.begin());=0A=
       swap(Temp);=0A=
    }=0A=
 =0A=
 =0A=
   ~Array<T,N>()=0A=
    {=0A=
       delete [] m_pArrayElements;=0A=
    }=0A=
 =0A=
 =0A=
    RefArray<T,N-1> operator [](size_type Index)=0A=
    {=0A=
       (static_cast<void> ((m_pArrayElements) ? 0 : (__assert_fail =
 ("m_pArrayElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 379, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_NDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_NDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 380, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N-1>(&m_pArrayElements[Index*m_SubArrayLen[0]],=0A=
                               m_NDimensions+1,m_SubArrayLen+1);=0A=
    }=0A=
 =0A=
 =0A=
    const RefArray<T,N-1> operator [](size_type Index) const=0A=
    {=0A=
       (static_cast<void> ((m_pArrayElements) ? 0 : (__assert_fail =
 ("m_pArrayElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 388, =
 __PRETTY_FUNCTION__), 0)));=0A=
       (static_cast<void> ((Index<m_NDimensions[0]) ? 0 : (__assert_fail =
 ("Index<m_NDimensions[0]", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 389, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N-1>(&m_pArrayElements[Index*m_SubArrayLen[0]],=0A=
                               m_NDimensions+1,m_SubArrayLen+1);=0A=
    }=0A=
 =0A=
 =0A=
    RefArray<T,N> GetRefArray()=0A=
    {=0A=
       (static_cast<void> ((m_pArrayElements) ? 0 : (__assert_fail =
 ("m_pArrayElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 397, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N>(m_pArrayElements,m_NDimensions,m_SubArrayLen);=0A=
    }=0A=
 =0A=
 =0A=
    const RefArray<T,N> GetRefArray() const=0A=
    {=0A=
       (static_cast<void> ((m_pArrayElements) ? 0 : (__assert_fail =
 ("m_pArrayElements", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 404, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return RefArray<T,N>(m_pArrayElements,m_NDimensions,m_SubArrayLen);=0A=
    }=0A=
 =0A=
 =0A=
    bool resize(const unsigned int (&Dimensions)[N], const T & =
 Init=3DT(), bool PreserveElems=3Dfalse)=0A=
    {=0A=
       Array<T,N> Temp;=0A=
 =0A=
 =0A=
       Temp.m_nArrayElements=3D1;=0A=
       for (int i=3D0;i<N;i++)=0A=
       {=0A=
          if (Dimensions[i]=3D=3D0)=0A=
             return false;=0A=
          Temp.m_nArrayElements*=3DDimensions[i];=0A=
          Temp.m_NDimensions[i]=3DDimensions[i];=0A=
          Temp.m_SubArrayLen[i]=3D1;=0A=
          for (int k=3DN-1;k>i;k--)=0A=
             Temp.m_SubArrayLen[i]*=3DDimensions[k];=0A=
       }=0A=
 =0A=
 =0A=
       Temp.m_pArrayElements=3Dnew T[Temp.m_nArrayElements];=0A=
 =0A=
 =0A=
       if (!Temp.m_pArrayElements)=0A=
          return false;=0A=
 =0A=
 =0A=
       if (PreserveElems && !empty())=0A=
          Temp.copy(*this,Init);=0A=
 =0A=
       else=0A=
          Temp.initialize(Init);=0A=
 =0A=
 =0A=
       swap(Temp);=0A=
 =0A=
       return true;=0A=
    }=0A=
 =0A=
 =0A=
    void clear()=0A=
    {=0A=
       delete [] m_pArrayElements;=0A=
       m_pArrayElements=3D__null;=0A=
       m_nArrayElements=3D0;=0A=
 =0A=
       std::fill(m_NDimensions,m_NDimensions+N,0);=0A=
       std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A=
    }=0A=
 =0A=
 =0A=
    Array<T,N> & operator =3D (const Array<T,N> & A)=0A=
    {=0A=
       if (&A!=3Dthis)=0A=
       {=0A=
         Array<T,N> Temp(A);=0A=
         swap(Temp);=0A=
       }=0A=
       return *this;=0A=
    }=0A=
 =0A=
 =0A=
    iterator begin() { return m_pArrayElements; }=0A=
    const_iterator begin() const { return m_pArrayElements; }=0A=
    iterator end() { return m_pArrayElements+m_nArrayElements; }=0A=
    const_iterator end() const { return =
 m_pArrayElements+m_nArrayElements; }=0A=
 =0A=
 =0A=
    size_type size() const { return m_nArrayElements; }=0A=
 =0A=
 =0A=
    size_type size(unsigned int Dim) const=0A=
    {=0A=
       (static_cast<void> ((Dim>=3D1 && Dim<=3DN) ? 0 : (__assert_fail =
 ("Dim>=3D1 && Dim<=3DN", =
 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 480, =
 __PRETTY_FUNCTION__), 0)));=0A=
       return m_NDimensions[Dim-1];=0A=
    }=0A=
 =0A=
 =0A=
    bool empty() const { return m_nArrayElements=3D=3D0; }=0A=
 =0A=
 =0A=
    unsigned int dimensions() const { return N; }=0A=
 =0A=
 =0A=
    void swap(Array<T,N> & A)=0A=
    {=0A=
       std::swap(m_pArrayElements,A.m_pArrayElements);=0A=
       std::swap(m_nArrayElements,A.m_nArrayElements);=0A=
 =0A=
       std::swap_ranges(m_NDimensions,m_NDimensions+N,A.m_NDimensions);=0A=
       std::swap_ranges(m_SubArrayLen,m_SubArrayLen+N,A.m_SubArrayLen);=0A=
    }=0A=
 =0A=
  protected:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
    void copy(const Array<T,N> & A, const T & Init=3DT())=0A=
    {=0A=
       size_type below=3Dstd::min(size(1),A.size(1));=0A=
       size_type above=3Dsize(1);=0A=
 =0A=
 =0A=
       for (size_type i=3D0;i<below;i++)=0A=
           (*this)[i].copy(A[i],Init);=0A=
 =0A=
 =0A=
       for (size_type j=3Dbelow;j<above;j++)=0A=
           (*this)[j].initialize(Init);=0A=
    }=0A=
 =0A=
 =0A=
    void initialize(const T & Init=3DT())=0A=
    {=0A=
       std::fill(begin(),end(),Init);=0A=
    }=0A=
 =0A=
 =0A=
    template <typename TT, unsigned int NN>=0A=
    friend bool operator =3D=3D (const Array<TT,NN> & A, const =
 Array<TT,NN> & B);=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 bool operator =3D=3D (const Array<T,N> & A, const Array<T,N> & B)=0A=
 {=0A=
    return std::equal(A.m_NDimensions,A.m_NDimensions+N,B.m_NDimensions)=0A=
        && std::equal(A.begin(),A.end(),B.begin());=0A=
 }=0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 bool operator !=3D (const Array<T,N> & A, const Array<T,N> & B)=0A=
 {=0A=
    return !(A=3D=3DB);=0A=
 }=0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 bool operator =3D=3D (const RefArray<T,N> & A, const RefArray<T,N> & B)=0A=
 {=0A=
    return =
 std::equal(A.m_pNDimensions,A.m_pNDimensions+N,B.m_pNDimensions)=0A=
        && std::equal(A.begin(),A.end(),B.begin());=0A=
 }=0A=
 =0A=
 =0A=
 template <typename T, unsigned int N>=0A=
 bool operator !=3D (const RefArray<T,N> & A, const RefArray<T,N> & B)=0A=
 {=0A=
    return !(A=3D=3DB);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <typename T>=0A=
 class Array<T,0>=0A=
 {=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename T>=0A=
 class Array<T,1>=0A=
 {=0A=
 };=0A=
 =0A=
 }=0A=
 =0A=
 }=0A=
 # 14 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum IorJ {i_parallel, j_parallel };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D=0A=
 {=0A=
 public:=0A=
 =0A=
   class PointReference;=0A=
 =0A=
   class VertexIterator;=0A=
 =0A=
   class EdgeReference;=0A=
 =0A=
   class EdgeIterator;=0A=
 =0A=
   class FaceReference;=0A=
 =0A=
   class FaceIterator;=0A=
 =0A=
   Grid2D();=0A=
   Grid2D(const Point<N> & origin, N spacing_i, N spacing_j, UInt i_size, =
 UInt j_size);=0A=
   ~Grid2D();=0A=
 =0A=
   PointReference vertex(UInt i, UInt j);=0A=
   EdgeReference edge(UInt i, UInt j, IorJ i_or_j);=0A=
 =0A=
   VertexIterator vertex_begin();=0A=
   VertexIterator vertex_end();=0A=
 =0A=
   EdgeIterator edge_begin();=0A=
   EdgeIterator edge_end();=0A=
 =0A=
   FaceIterator face_begin();=0A=
   FaceIterator face_end();=0A=
 =0A=
 private:=0A=
 =0A=
   nmove::utilities::Array<N, 2> m_z_values;=0A=
 =0A=
   Point<N> m_origin;=0A=
 =0A=
   N m_spacing_i;=0A=
   N m_spacing_j;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::PointReference=0A=
 {=0A=
 public:=0A=
 =0A=
     class PointComponentReference;=0A=
 =0A=
     PointReference(UInt i, UInt j, Grid2D * outer_this);=0A=
     PointReference(const PointReference & other);=0A=
 =0A=
     ~PointReference();=0A=
 =0A=
     operator Point<N>() const;=0A=
     PointReference & operator=3D(const Point<N> & rhs);=0A=
 =0A=
 =0A=
     bool operator=3D=3D(const Point<N> & rhs) const;=0A=
     bool operator!=3D(const Point<N> & rhs) const;=0A=
     bool operator< (const Point<N> & rhs) const;=0A=
     bool operator<=3D(const Point<N> & rhs) const;=0A=
     bool operator> (const Point<N> & rhs) const;=0A=
     bool operator>=3D(const Point<N> & rhs) const;=0A=
 =0A=
     const N & x() const;=0A=
     const N & y() const;=0A=
     const N & z() const;=0A=
     const N & operator[](UInt c) const;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     PointComponentReference x();=0A=
     PointComponentReference y();=0A=
     PointComponentReference z();=0A=
     PointComponentReference operator[](UInt c);=0A=
 =0A=
 private:=0A=
 =0A=
     PointReference & operator=3D(const PointReference & rhs);=0A=
 =0A=
     void update_cached_point() const;=0A=
     void write_back() const;=0A=
 =0A=
     const UInt m_i;=0A=
     const UInt m_j;=0A=
     Grid2D * const m_outer_this;=0A=
 =0A=
     mutable Point<N> m_cached_point;=0A=
 =0A=
     mutable bool m_first_time;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::PointReference::PointComponentReference=0A=
 {=0A=
 public:=0A=
     PointComponentReference(PointReference * target, UInt component);=0A=
 =0A=
     PointComponentReference(const PointComponentReference & other);=0A=
     ~PointComponentReference();=0A=
 =0A=
     operator N() const;=0A=
 =0A=
     PointComponentReference & operator=3D (const N & rhs);=0A=
     PointComponentReference & operator+=3D(const N & rhs);=0A=
     PointComponentReference & operator-=3D(const N & rhs);=0A=
     PointComponentReference & operator*=3D(const N & rhs);=0A=
     PointComponentReference & operator/=3D(const N & rhs);=0A=
 =0A=
     bool operator=3D=3D(const N & rhs) const;=0A=
     bool operator!=3D(const N & rhs) const;=0A=
     bool operator< (const N & rhs) const;=0A=
     bool operator<=3D(const N & rhs) const;=0A=
     bool operator> (const N & rhs) const;=0A=
     bool operator>=3D(const N & rhs) const;=0A=
 =0A=
 =0A=
 =0A=
 private:=0A=
     PointComponentReference & operator=3D(const PointComponentReference =
 & rhs);=0A=
 =0A=
     const UInt m_component;=0A=
     PointReference * const m_target;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::EdgeReference=0A=
 {=0A=
 public:=0A=
 =0A=
   EdgeReference(UInt i, UInt j, IorJ i_or_j, Grid2D * outer_this);=0A=
   EdgeReference(const EdgeReference & other);=0A=
 =0A=
   ~EdgeReference();=0A=
 =0A=
   operator Edge<N>() const;=0A=
   EdgeReference & operator=3D(const Edge<N> & rhs);=0A=
 =0A=
   bool operator=3D=3D(const Edge<N> & rhs) const;=0A=
   bool operator!=3D(const Edge<N> & rhs) const;=0A=
   bool operator< (const Edge<N> & rhs) const;=0A=
 =0A=
   Point<N> source() const;=0A=
   Point<N> target() const;=0A=
   Point<N> operator[](UInt c) const;=0A=
 =0A=
   Grid2D<N>::PointReference source();=0A=
   Grid2D<N>::PointReference target();=0A=
   Grid2D<N>::PointReference operator[](UInt c);=0A=
 =0A=
 private:=0A=
   EdgeReference & operator=3D(const EdgeReference & rhs);=0A=
 =0A=
   const UInt m_i;=0A=
   const UInt m_j;=0A=
   const IorJ m_i_or_j;=0A=
   Grid2D * const m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::FaceReference=0A=
 {=0A=
 public:=0A=
     friend class Grid2D<N>;=0A=
 =0A=
     class VertexCirculator;=0A=
 =0A=
     class EdgeCirculator;=0A=
 =0A=
     FaceReference(UInt i, UInt j, Grid2D * outer_this);=0A=
     FaceReference(const FaceReference & other);=0A=
 =0A=
     ~FaceReference();=0A=
 =0A=
     operator Face<N>() const;=0A=
     FaceReference & operator=3D(const Face<N> & rhs);=0A=
 =0A=
     bool operator=3D=3D(const Face<N> & rhs) const;=0A=
     bool operator!=3D(const Face<N> & rhs) const;=0A=
     bool operator< (const Face<N> & rhs) const;=0A=
 =0A=
     VertexCirculator vertex_begin();=0A=
 =0A=
 =0A=
     Point<N> operator[](UInt c) const;=0A=
     Grid2D<N>::PointReference operator[](UInt c);=0A=
 =0A=
 =0A=
     EdgeCirculator edge_begin();=0A=
 =0A=
     size_t size() const;=0A=
 private:=0A=
     FaceReference & operator=3D(const FaceReference & rhs);=0A=
 =0A=
     const UInt m_i;=0A=
     const UInt m_j;=0A=
     Grid2D * const m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::FaceReference::VertexCirculator=0A=
 {=0A=
 public:=0A=
     VertexCirculator(UInt c, FaceReference * outer_this);=0A=
     VertexCirculator(const VertexCirculator & other);=0A=
 =0A=
     ~VertexCirculator();=0A=
 =0A=
     VertexCirculator & operator=3D(const VertexCirculator & rhs);=0A=
 =0A=
     typename Grid2D<N>::PointReference operator*();=0A=
     Point<N> operator*() const;=0A=
 =0A=
     VertexCirculator & operator++();=0A=
 =0A=
     bool operator=3D=3D(Int null) const;=0A=
     bool operator=3D=3D(const VertexCirculator & rhs) const;=0A=
     bool operator!=3D(Int null) const;=0A=
     bool operator!=3D(const VertexCirculator & rhs) const;=0A=
 =0A=
 =0A=
 =0A=
 private:=0A=
     UInt m_c;=0A=
     typename Grid2D<N>::FaceReference * const m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::FaceReference::EdgeCirculator=0A=
 {=0A=
 public:=0A=
     EdgeCirculator(UInt c, FaceReference * outer_this);=0A=
     EdgeCirculator(const EdgeCirculator & other);=0A=
 =0A=
     ~EdgeCirculator();=0A=
 =0A=
     EdgeCirculator & operator=3D(const EdgeCirculator & rhs);=0A=
 =0A=
     typename Grid2D<N>::EdgeReference operator*();=0A=
     Edge<N> operator*() const;=0A=
 =0A=
     EdgeCirculator & operator++();=0A=
 =0A=
     bool operator=3D=3D(Int null) const;=0A=
     bool operator=3D=3D(const EdgeCirculator & rhs) const;=0A=
     bool operator!=3D(Int null) const;=0A=
     bool operator!=3D(const EdgeCirculator & rhs) const;=0A=
 =0A=
 =0A=
 =0A=
 private:=0A=
     UInt m_c;=0A=
     typename Grid2D<N>::FaceReference * const m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::EdgeIterator=0A=
 {=0A=
 public:=0A=
   EdgeIterator();=0A=
   EdgeIterator(UInt i, UInt j, IorJ i_or_j, Grid2D * outer_this);=0A=
   EdgeIterator(const EdgeIterator & other);=0A=
   EdgeIterator & operator=3D(const EdgeIterator & rhs);=0A=
   ~EdgeIterator();=0A=
 =0A=
   EdgeReference operator*() const;=0A=
   EdgeIterator & operator++();=0A=
 =0A=
   bool operator=3D=3D(const EdgeIterator & rhs) const;=0A=
   bool operator!=3D(const EdgeIterator & rhs) const;=0A=
   bool operator< (const EdgeIterator & rhs) const;=0A=
 =0A=
 private:=0A=
   UInt m_i;=0A=
   UInt m_j;=0A=
   IorJ m_i_or_j;=0A=
   Grid2D<N> * m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 class Grid2D<N>::VertexIterator=0A=
 {=0A=
 public:=0A=
   VertexIterator();=0A=
   VertexIterator(UInt i, UInt j, Grid2D * outer_this);=0A=
   VertexIterator(const VertexIterator & other);=0A=
   VertexIterator & operator=3D(const VertexIterator & rhs);=0A=
   ~VertexIterator();=0A=
 =0A=
   PointReference operator*() const;=0A=
   VertexIterator & operator++();=0A=
 =0A=
 =0A=
   bool operator=3D=3D(const VertexIterator & rhs) const;=0A=
   bool operator!=3D(const VertexIterator & rhs) const;=0A=
   bool operator< (const VertexIterator & rhs) const;=0A=
 =0A=
 private:=0A=
   UInt m_i;=0A=
   UInt m_j;=0A=
   Grid2D<N> * m_outer_this;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::VertexIterator::VertexIterator() :=0A=
   m_i(0),=0A=
   m_j(0),=0A=
   m_outer_this(0)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::VertexIterator::VertexIterator(UInt i, UInt j, Grid2D * =
 outer_this) :=0A=
   m_i(i),=0A=
   m_j(j),=0A=
   m_outer_this(outer_this)=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 373, =
 __PRETTY_FUNCTION__), 0)));=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::VertexIterator::VertexIterator(const VertexIterator & other) :=0A=
   m_i(other.m_i),=0A=
   m_j(other.m_j),=0A=
   m_outer_this(other.m_outer_this)=0A=
 {=0A=
   (static_cast<void> ((other.m_outer_this) ? 0 : (__assert_fail =
 ("other.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 382, =
 __PRETTY_FUNCTION__), 0)));=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::VertexIterator & =
 Grid2D<N>::VertexIterator::operator=3D(const VertexIterator & rhs)=0A=
 {=0A=
   (static_cast<void> ((rhs.m_outer_this) ? 0 : (__assert_fail =
 ("rhs.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 388, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   if(this !=3D &rhs)=0A=
   {=0A=
     m_i =3D rhs.m_i;=0A=
     m_j =3D rhs.m_j;=0A=
     m_outer_this =3D rhs.m_j;=0A=
   }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::VertexIterator::~VertexIterator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference =
 Grid2D<N>::VertexIterator::operator*() const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 406, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   return PointReference(m_i, m_j, m_outer_this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::VertexIterator & =
 Grid2D<N>::VertexIterator::operator++()=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 414, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   ++m_i;=0A=
   if(m_i =3D=3D m_outer_this->m_z_values.size(1))=0A=
   {=0A=
     m_i =3D 0;=0A=
     ++m_j;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
   return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::VertexIterator::operator=3D=3D(const VertexIterator & =
 rhs) const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 431, =
 __PRETTY_FUNCTION__), 0)));=0A=
   (static_cast<void> ((rhs.m_outer_this) ? 0 : (__assert_fail =
 ("rhs.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 432, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   if(this =3D=3D &rhs)=0A=
   {=0A=
     return true;=0A=
   }=0A=
   return ((m_outer_this =3D=3D rhs.m_outer_this) && (m_i =3D=3D rhs.m_i) =
 && (m_j =3D=3D rhs.m_j) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::VertexIterator::operator!=3D(const VertexIterator & rhs) =
 const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 444, =
 __PRETTY_FUNCTION__), 0)));=0A=
   (static_cast<void> ((rhs.m_outer_this) ? 0 : (__assert_fail =
 ("rhs.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 445, =
 __PRETTY_FUNCTION__), 0)));=0A=
   return ((m_outer_this !=3D rhs.m_outer_this) || (m_i !=3D rhs.m_i) || =
 (m_j !=3D rhs.m_j) );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeIterator::EdgeIterator() :=0A=
   m_i(0),=0A=
   m_j(0),=0A=
   m_i_or_j(i_parallel),=0A=
   m_outer_this(0)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeIterator::EdgeIterator(UInt i, UInt j, IorJ i_or_j, =
 Grid2D* outer_this) :=0A=
   m_i(i),=0A=
   m_j(j),=0A=
   m_i_or_j(i_or_j),=0A=
   m_outer_this(outer_this)=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 469, =
 __PRETTY_FUNCTION__), 0)));=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeIterator::EdgeIterator(const EdgeIterator & other) :=0A=
   m_i(other.m_i),=0A=
   m_j(other.m_j),=0A=
   m_i_or_j(other.m_i_or_j),=0A=
   m_outer_this(other.m_outer_this)=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 479, =
 __PRETTY_FUNCTION__), 0)));=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeIterator::~EdgeIterator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeReference Grid2D<N>::EdgeIterator::operator*() =
 const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 490, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   return EdgeReference(m_i, m_j, m_i_or_j, m_outer_this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeIterator & Grid2D<N>::EdgeIterator::operator++()=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 503, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
 =0A=
   if(i_parallel =3D=3D m_i_or_j)=0A=
   {=0A=
     if( m_j < m_outer_this->m_z_values.size(2) - 1 )=0A=
     {=0A=
       m_i_or_j =3D j_parallel;=0A=
     }=0A=
     else=0A=
     {=0A=
       ++m_i;=0A=
     }=0A=
   }=0A=
   else=0A=
   {=0A=
     ++m_i;=0A=
 =0A=
     UInt i_size =3D m_outer_this->m_z_values.size(1);=0A=
 =0A=
     if(m_i < i_size - 1)=0A=
     {=0A=
       m_i_or_j =3D i_parallel;=0A=
     }=0A=
     else if( m_i =3D=3D i_size - 1 )=0A=
     {=0A=
       m_i_or_j =3D j_parallel;=0A=
     }=0A=
     else=0A=
     {=0A=
       m_i =3D 0;=0A=
       ++m_j;=0A=
       m_i_or_j =3D i_parallel;=0A=
     }=0A=
   }=0A=
 =0A=
   return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::EdgeIterator::operator=3D=3D(const EdgeIterator & rhs) =
 const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 545, =
 __PRETTY_FUNCTION__), 0)));=0A=
   (static_cast<void> ((rhs.m_outer_this) ? 0 : (__assert_fail =
 ("rhs.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 546, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   if(this =3D=3D &rhs)=0A=
   {=0A=
     return true;=0A=
   }=0A=
   return (m_outer_this =3D=3D rhs.m_outer_this)=0A=
          && ( m_i =3D=3D rhs.m_i )=0A=
          && ( m_j =3D=3D rhs.m_j )=0A=
          && ( m_i_or_j =3D=3D rhs.m_i_or_j );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::EdgeIterator::operator!=3D(const EdgeIterator & rhs) =
 const=0A=
 {=0A=
     (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 561, =
 __PRETTY_FUNCTION__), 0)));=0A=
     (static_cast<void> ((rhs.m_outer_this) ? 0 : (__assert_fail =
 ("rhs.m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 562, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return (m_outer_this !=3D rhs.m_outer_this)=0A=
          || ( m_i !=3D rhs.m_i )=0A=
          || ( m_j !=3D rhs.m_j )=0A=
          || ( m_i_or_j !=3D rhs.m_i_or_j );=0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 IorJ & operator++(IorJ & i_or_j)=0A=
 {=0A=
   if(i_parallel =3D=3D i_or_j)=0A=
   {=0A=
     i_or_j =3D j_parallel;=0A=
     return i_or_j;=0A=
   }=0A=
   i_or_j =3D i_parallel;=0A=
   return i_or_j;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::Grid2D()=0A=
 {=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::Grid2D(const Point<N> & origin, N spacing_i, N spacing_j, =
 UInt i_size, UInt j_size) :=0A=
     m_origin(origin),=0A=
     m_spacing_i(spacing_i),=0A=
     m_spacing_j(spacing_j)=0A=
 {=0A=
     UInt dimensions[2];=0A=
     dimensions[0] =3D i_size;=0A=
     dimensions[1] =3D j_size;=0A=
     m_z_values.resize(dimensions, origin.z() );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::~Grid2D()=0A=
 {=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference Grid2D<N>::vertex(UInt i, UInt j)=0A=
 {=0A=
 =0A=
     return PointReference(i, j, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeReference Grid2D<N>::edge(UInt i, UInt j, IorJ =
 i_or_j)=0A=
 {=0A=
 =0A=
   return EdgeReference(i, j, i_or_j, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::VertexIterator Grid2D<N>::vertex_begin()=0A=
 {=0A=
 =0A=
   return VertexIterator(0, 0, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::VertexIterator Grid2D<N>::vertex_end()=0A=
 {=0A=
 =0A=
   return VertexIterator(0, m_z_values.size(2), this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeIterator Grid2D<N>::edge_begin()=0A=
 {=0A=
   return EdgeIterator(0, 0, i_parallel, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeIterator Grid2D<N>::edge_end()=0A=
 {=0A=
   return EdgeIterator(m_z_values.size(1) - 1, m_z_values.size(2) - 1, =
 i_parallel, this);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointReference(UInt i, UInt j, Grid2D * =
 outer_this) :=0A=
   m_i(i),=0A=
   m_j(j),=0A=
   m_outer_this(outer_this),=0A=
   m_first_time(true)=0A=
 {=0A=
   update_cached_point();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointReference(const PointReference & other) :=0A=
   m_i(other.m_i),=0A=
   m_j(other.m_j),=0A=
   m_outer_this(other.m_outer_this),=0A=
   m_cached_point(other.m_cached_point),=0A=
   m_first_time(other.m_first_time)=0A=
 {=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::~PointReference()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::operator Point<N>() const=0A=
 {=0A=
 =0A=
   update_cached_point();=0A=
   return m_cached_point;=0A=
 }=0A=
 # 701 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h"=0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference & =
 Grid2D<N>::PointReference::operator=3D(const Point<N> & rhs)=0A=
 {=0A=
 =0A=
   m_cached_point =3D rhs;=0A=
   write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator=3D=3D(const Point<N> & rhs) =
 const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components =3D=3D rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator!=3D(const Point<N> & rhs) const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components !=3D rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator<(const Point<N> & rhs) const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components < rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator<=3D(const Point<N> & rhs) const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components <=3D rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator>(const Point<N> & rhs) const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components > rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::operator>=3D(const Point<N> & rhs) const=0A=
 {=0A=
   update_cached_point();=0A=
   return (m_cached_point.m_components >=3D rhs.m_components);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Grid2D<N>::PointReference::x() const=0A=
 {=0A=
   update_cached_point();=0A=
   return m_cached_point.m_components[0];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Grid2D<N>::PointReference::y() const=0A=
 {=0A=
   update_cached_point();=0A=
   return m_cached_point.m_components[1];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Grid2D<N>::PointReference::z() const=0A=
 {=0A=
   update_cached_point();=0A=
   return m_cached_point.m_components[2];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 const N & Grid2D<N>::PointReference::operator[](UInt c) const=0A=
 {=0A=
   (static_cast<void> ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c =
 >=3D 0 && c <=3D 2", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 775, =
 __PRETTY_FUNCTION__), 0)));=0A=
   update_cached_point();=0A=
   return m_cached_point.m_components[c];=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference =
 Grid2D<N>::PointReference::x()=0A=
 {=0A=
   return PointComponentReference(this, 0);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference =
 Grid2D<N>::PointReference::y()=0A=
 {=0A=
   return PointComponentReference(this, 1);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference =
 Grid2D<N>::PointReference::z()=0A=
 {=0A=
   return PointComponentReference(this, 2);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference =
 Grid2D<N>::PointReference::operator[](UInt c)=0A=
 {=0A=
   return PointComponentReference(this, c);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 void Grid2D<N>::PointReference::update_cached_point() const=0A=
 {=0A=
    (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 812, =
 __PRETTY_FUNCTION__), 0)));=0A=
    if(m_first_time)=0A=
    {=0A=
 =0A=
 =0A=
      m_cached_point.x() =3D m_outer_this->m_origin.x() + =
 m_outer_this->m_spacing_i * m_i;=0A=
      m_cached_point.y() =3D m_outer_this->m_origin.y() + =
 m_outer_this->m_spacing_j * m_j;=0A=
      m_first_time =3D false;=0A=
    }=0A=
 =0A=
    m_cached_point.z() =3D m_outer_this->m_z_values[m_i][m_j];=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 void Grid2D<N>::PointReference::write_back() const=0A=
 {=0A=
   (static_cast<void> ((m_outer_this) ? 0 : (__assert_fail =
 ("m_outer_this", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 829, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
   N correct_x =3D m_outer_this->m_origin.x() + m_outer_this->m_spacing_i =
 * m_i;=0A=
   if(m_cached_point.x() !=3D correct_x)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     std::cerr << "Cannot modify x co-ordinate of grid point\n";=0A=
     exit(1);=0A=
   }=0A=
 =0A=
   N correct_y =3D m_outer_this->m_origin.y() + m_outer_this->m_spacing_j =
 * m_j;=0A=
   if(m_cached_point.y() !=3D correct_y)=0A=
   {=0A=
 =0A=
 =0A=
 =0A=
     std::cerr << "Cannot modify y co-ordinate of grid point\n";=0A=
     exit(1);=0A=
   }=0A=
 =0A=
   m_outer_this->m_z_values[m_i][m_j] =3D m_cached_point.z();=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointComponentReference::~PointComponentRefere=
 nce()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointComponentReference::PointComponentReferen=
 ce(const PointComponentReference & other) :=0A=
   m_component(other.m_component),=0A=
   m_target(other.m_target)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointComponentReference::operator N() const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 873, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     m_target->update_cached_point();=0A=
     return m_target->m_cached_point[m_component];=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference & =
 Grid2D<N>::PointReference::PointComponentReference::operator=3D(const N =
 & rhs)=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 882, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     m_target->m_cached_point[m_component] =3D rhs;=0A=
     m_target->write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference & =
 Grid2D<N>::PointReference::PointComponentReference::operator+=3D(const N =
 & rhs)=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 891, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     m_target->m_cached_point[m_component] +=3D rhs;=0A=
     m_target->write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference & =
 Grid2D<N>::PointReference::PointComponentReference::operator-=3D(const N =
 & rhs)=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 900, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     m_target->m_cached_point[m_component] -=3D rhs;=0A=
     m_target->write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference & =
 Grid2D<N>::PointReference::PointComponentReference::operator*=3D(const N =
 & rhs)=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 909, =
 __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     m_target->m_cached_point[m_component] *=3D rhs;=0A=
     m_target->write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference::PointComponentReference & =
 Grid2D<N>::PointReference::PointComponentReference::operator/=3D(const N =
 & rhs)=0A=
 {=0A=
 =0A=
     m_target->m_cached_point[m_component] /=3D rhs;=0A=
     m_target->write_back();=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool =
 Grid2D<N>::PointReference::PointComponentReference::operator=3D=3D(const =
 N & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 926, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] =3D=3D rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool =
 Grid2D<N>::PointReference::PointComponentReference::operator!=3D(const N =
 & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 933, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] !=3D rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::PointComponentReference::operator< =
 (const N & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 940, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] < rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool =
 Grid2D<N>::PointReference::PointComponentReference::operator<=3D(const N =
 & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 947, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] <=3D rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::PointReference::PointComponentReference::operator> =
 (const N & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 954, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] > rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool =
 Grid2D<N>::PointReference::PointComponentReference::operator>=3D(const N =
 & rhs) const=0A=
 {=0A=
     (static_cast<void> ((m_target) ? 0 : (__assert_fail ("m_target", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 961, =
 __PRETTY_FUNCTION__), 0)));=0A=
     return ( m_target->m_cached_point[m_component] >=3D rhs);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::PointReference::PointComponentReference::PointComponentReferen=
 ce(PointReference * const target, UInt component) :=0A=
     m_component(component),=0A=
     m_target(target)=0A=
 {=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeReference::EdgeReference(UInt i, UInt j, IorJ i_or_j, =
 Grid2D * outer_this) :=0A=
   m_i(i),=0A=
   m_j(j),=0A=
   m_i_or_j(i_or_j),=0A=
   m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeReference::EdgeReference(const EdgeReference & other) :=0A=
   m_i(other.m_i),=0A=
   m_j(other.m_j),=0A=
   m_i_or_j(other.m_i_or_j),=0A=
   m_outer_this(other.m_outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeReference::~EdgeReference()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::EdgeReference::operator Edge<N>() const=0A=
 {=0A=
 =0A=
   return Edge<N>( m_outer_this->vertex(m_i, m_j)=0A=
                   , (i_parallel =3D=3D m_i_or_j) ? =
 m_outer_this->vertex(m_i + 1, m_j) : m_outer_this->vertex(m_i, m_j + 1) =
 );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeReference & =
 Grid2D<N>::EdgeReference::operator=3D(const Edge<N> & rhs)=0A=
 {=0A=
 =0A=
   m_outer_this->vertex(m_i, m_j) =3D rhs.source();=0A=
 =0A=
   if(i_parallel =3D=3D m_i_or_j)=0A=
   {=0A=
     m_outer_this->vertex(m_i + 1, m_j) =3D rhs.target();=0A=
   }=0A=
   else=0A=
   {=0A=
     m_outer_this->vertex(m_i, m_j + 1) =3D rhs.target();=0A=
   }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::EdgeReference::operator=3D=3D(const Edge<N> & rhs) const=0A=
 {=0A=
   return ( (source() =3D=3D rhs.source() ) && ( target() =3D=3D =
 rhs.target() ) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::EdgeReference::operator!=3D(const Edge<N> & rhs) const=0A=
 {=0A=
   return ( (source() !=3D rhs.source() ) || ( target() !=3D rhs.target() =
 ) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::EdgeReference::operator< (const Edge<N> & rhs) const=0A=
 {=0A=
   if( source() < rhs.source() )=0A=
   {=0A=
     return true;=0A=
   }=0A=
   else if(source() =3D=3D rhs.source())=0A=
   {=0A=
     if( target() < rhs.target() )=0A=
     {=0A=
       return true;=0A=
     }=0A=
     else=0A=
     {=0A=
       return false;=0A=
     }=0A=
   }=0A=
   else=0A=
   {=0A=
     return false;=0A=
   }=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> Grid2D<N>::EdgeReference::source() const=0A=
 {=0A=
 =0A=
   return m_outer_this->vertex(m_i, m_j);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> Grid2D<N>::EdgeReference::target() const=0A=
 {=0A=
   if(i_parallel =3D=3D m_i_or_j)=0A=
   {=0A=
     return m_outer_this->vertex(m_i + 1, m_j);=0A=
   }=0A=
   else=0A=
   {=0A=
     return m_outer_this->vertex(m_i, m_j + 1);=0A=
   }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> Grid2D<N>::EdgeReference::operator[](UInt c) const=0A=
 {=0A=
   (static_cast<void> ((0 =3D=3D c || 1 =3D=3D c) ? 0 : (__assert_fail =
 ("0 =3D=3D c || 1 =3D=3D c", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1083, __PRETTY_FUNCTION__), 0)));=0A=
   if(0 =3D=3D c)=0A=
   {=0A=
     return m_outer_this->vertex(m_i, m_j);=0A=
   }=0A=
   else=0A=
   {=0A=
     if(i_parallel =3D=3D m_i_or_j)=0A=
     {=0A=
       return m_outer_this->vertex(m_i + 1, m_j);=0A=
     }=0A=
     else=0A=
     {=0A=
       return m_outer_this->vertex(m_i, m_j + 1);=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference Grid2D<N>::EdgeReference::source()=0A=
 {=0A=
   return m_outer_this->vertex(m_i, m_j);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference Grid2D<N>::EdgeReference::target()=0A=
 {=0A=
   if(i_parallel =3D=3D m_i_or_j)=0A=
   {=0A=
     return m_outer_this->vertex(m_i + 1, m_j);=0A=
   }=0A=
   else=0A=
   {=0A=
     return m_outer_this->vertex(m_i, m_j + 1);=0A=
   }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference =
 Grid2D<N>::EdgeReference::operator[](UInt c)=0A=
 {=0A=
   (static_cast<void> ((0 =3D=3D c || 1 =3D=3D c) ? 0 : (__assert_fail =
 ("0 =3D=3D c || 1 =3D=3D c", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1123, __PRETTY_FUNCTION__), 0)));=0A=
   if(0 =3D=3D c)=0A=
   {=0A=
     return m_outer_this->vertex(m_i, m_j);=0A=
   }=0A=
   else=0A=
   {=0A=
     if(i_parallel =3D=3D m_i_or_j)=0A=
     {=0A=
       return m_outer_this->vertex(m_i + 1, m_j);=0A=
     }=0A=
     else=0A=
     {=0A=
       return m_outer_this->vertex(m_i, m_j + 1);=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::FaceReference(UInt i, UInt j, Grid2D * =
 outer_this) :=0A=
     m_i(i),=0A=
     m_j(j),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::FaceReference(const FaceReference & other) :=0A=
     m_i(other.m_i),=0A=
     m_j(other.m_j),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::~FaceReference()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::operator Face<N>() const=0A=
 {=0A=
     return Face<N>( vertex_begin() );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference & =
 Grid2D<N>::FaceReference::operator=3D(const Face<N> & rhs)=0A=
 {=0A=
 =0A=
 =0A=
     if(rhs.size() !=3D 4)=0A=
     {=0A=
         (static_cast<void> ((0) ? 0 : (__assert_fail ("0", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1179, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     }=0A=
 =0A=
     VertexCirculator this_c =3D vertex_begin();=0A=
     VertexCirculator this_c_end =3D this_c;=0A=
 =0A=
     VertexCirculator rhs_c =3D rhs.vertex_begin();=0A=
 =0A=
     do=0A=
     {=0A=
         *this_c =3D *rhs_c;=0A=
 =0A=
         ++rhs_c;=0A=
         ++this_c;=0A=
     }=0A=
     while (this_c !=3D this_c_end);=0A=
 =0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::operator=3D=3D(const Face<N> & rhs) const=0A=
 {=0A=
     if(rhs.size() !=3D 4)=0A=
     {=0A=
         return false;=0A=
     }=0A=
 =0A=
 =0A=
     VertexCirculator this_c =3D vertex_begin();=0A=
     VertexCirculator this_c_end =3D this_c;=0A=
 =0A=
     VertexCirculator rhs_c =3D rhs.vertex_begin();=0A=
 =0A=
     do=0A=
     {=0A=
         if(*this_c !=3D *rhs_c)=0A=
         {=0A=
             return false;=0A=
         }=0A=
         ++rhs_c;=0A=
         ++this_c;=0A=
     }=0A=
     while (this_c !=3D this_c_end);=0A=
 =0A=
     return true;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::operator!=3D(const Face<N> & rhs) const=0A=
 {=0A=
     if(rhs.size !=3D 4)=0A=
     {=0A=
         return true;=0A=
     }=0A=
 =0A=
     VertexCirculator this_c =3D vertex_begin();=0A=
     VertexCirculator this_c_end =3D this_c;=0A=
 =0A=
     VertexCirculator rhs_c =3D rhs.vertex_begin();=0A=
 =0A=
     do=0A=
     {=0A=
         if(*this_c !=3D *rhs_c)=0A=
         {=0A=
             return true;=0A=
         }=0A=
         ++rhs_c;=0A=
         ++this_c;=0A=
     }=0A=
     while (this_c !=3D this_c_end);=0A=
 =0A=
     return false;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::operator< (const Face<N> & rhs) const=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
     VertexCirculator this_c =3D vertex_begin();=0A=
     VertexCirculator this_c_end =3D this_c;=0A=
 =0A=
     VertexCirculator rhs_c =3D rhs.vertex_begin();=0A=
     VertexCirculator rhs_c_end =3D rhs_c;=0A=
 =0A=
     do=0A=
     {=0A=
         if(*this_c < *rhs_c)=0A=
         {=0A=
             return true;=0A=
         }=0A=
         else if(*this_c > *rhs_c)=0A=
         {=0A=
             return false;=0A=
         }=0A=
     }=0A=
     while ( (this_c !=3D this_c_end) && (rhs_c !=3D rhs_c_end) );=0A=
 =0A=
 =0A=
     return false;=0A=
 =0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::VertexCirculator =
 Grid2D<N>::FaceReference::vertex_begin()=0A=
 {=0A=
     return VertexCirculator(0, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference =
 Grid2D<N>::FaceReference::operator[](UInt c)=0A=
 {=0A=
     (static_cast<void> ((c >=3D 0 && c < 4) ? 0 : (__assert_fail ("c =
 >=3D 0 && c < 4", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1294, __PRETTY_FUNCTION__), 0)));=0A=
     switch(c)=0A=
     {=0A=
     case 0 :=0A=
         return Grid2D<N>::PointReference(m_i, m_j, m_outer_this);=0A=
     case 1 :=0A=
         return Grid2D<N>::PointReference(m_i + 1, m_j, m_outer_this);=0A=
     case 2 :=0A=
         return Grid2D<N>::PointReference(m_i + 1, m_j + 1, m_outer_this);=0A=
     default :=0A=
         return Grid2D<N>::PointReference(m_i, m_j + 1, m_outer_this);=0A=
     }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> Grid2D<N>::FaceReference::operator[](UInt c) const=0A=
 {=0A=
       (static_cast<void> ((c >=3D 0 && c < 4) ? 0 : (__assert_fail ("c =
 >=3D 0 && c < 4", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1311, __PRETTY_FUNCTION__), 0)));=0A=
     switch(c)=0A=
     {=0A=
     case 0 :=0A=
         return Grid2D<N>::PointReference(m_i, m_j, m_outer_this);=0A=
     case 1 :=0A=
         return Grid2D<N>::PointReference(m_i + 1, m_j, m_outer_this);=0A=
     case 2 :=0A=
         return Grid2D<N>::PointReference(m_i + 1, m_j + 1, m_outer_this);=0A=
     default :=0A=
         return Grid2D<N>::PointReference(m_i, m_j + 1, m_outer_this);=0A=
     }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::EdgeCirculator =
 Grid2D<N>::FaceReference::edge_begin()=0A=
 {=0A=
     return EdgeCirculator(0, this);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 size_t Grid2D<N>::FaceReference::size() const=0A=
 {=0A=
     return 4;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::VertexCirculator::VertexCirculator(UInt c, =
 FaceReference * outer_this) :=0A=
     m_c(c),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::VertexCirculator::VertexCirculator(const =
 VertexCirculator & other) :=0A=
     m_c(other.m_c),=0A=
     m_outer_this(other.m_outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::VertexCirculator::~VertexCirculator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::VertexCirculator & =
 Grid2D<N>::FaceReference::VertexCirculator::operator=3D(const =
 VertexCirculator & rhs)=0A=
 {=0A=
     if(this !=3D &rhs)=0A=
     {=0A=
         m_c =3D rhs.m_c;=0A=
         m_outer_this =3D rhs.m_outer_this;=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::PointReference =
 Grid2D<N>::FaceReference::VertexCirculator::operator*()=0A=
 {=0A=
     return m_outer_this->operator[](m_c);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Point<N> Grid2D<N>::FaceReference::VertexCirculator::operator*() const=0A=
 {=0A=
     return m_outer_this->operator[](m_c);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::VertexCirculator & =
 Grid2D<N>::FaceReference::VertexCirculator::operator++()=0A=
 {=0A=
     ++m_c;=0A=
     if(4 =3D=3D m_c)=0A=
     {=0A=
         m_c =3D 0;=0A=
     }=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::VertexCirculator::operator=3D=3D(Int =
 null) const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1397, __PRETTY_FUNCTION__), 0)));=0A=
     return (m_outer_this->size() =3D=3D 0);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::VertexCirculator::operator=3D=3D(const =
 VertexCirculator & rhs) const=0A=
 {=0A=
     return (m_outer_this =3D=3D rhs.m_outer_this)=0A=
              && ( m_c =3D=3D rhs.m_c );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::VertexCirculator::operator!=3D(Int null) =
 const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1411, __PRETTY_FUNCTION__), 0)));=0A=
     return (m_outer_this->size() !=3D 0);=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::VertexCirculator::operator!=3D(const =
 VertexCirculator & rhs) const=0A=
 {=0A=
     return (m_outer_this !=3D rhs.m_outer_this)=0A=
         || ( m_c !=3D rhs.m_c );=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::EdgeCirculator::EdgeCirculator(UInt c, =
 FaceReference * outer_this) :=0A=
     m_c(c),=0A=
     m_outer_this(outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::EdgeCirculator::EdgeCirculator(const =
 EdgeCirculator & other) :=0A=
     m_c(other.m_c),=0A=
     m_outer_this(other.m_outer_this)=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Grid2D<N>::FaceReference::EdgeCirculator::~EdgeCirculator()=0A=
 {=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::EdgeCirculator & =
 Grid2D<N>::FaceReference::EdgeCirculator::operator=3D(const =
 EdgeCirculator & rhs)=0A=
 {=0A=
     m_c =3D rhs.m_c;=0A=
     m_outer_this =3D rhs.m_outer_this;=0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::EdgeReference =
 Grid2D<N>::FaceReference::EdgeCirculator::operator*()=0A=
 {=0A=
     (static_cast<void> ((m_c >=3D 0 && c < 4) ? 0 : (__assert_fail ("m_c =
 >=3D 0 && c < 4", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1454, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
 =0A=
     switch(c)=0A=
     {=0A=
     case 0 :=0A=
         return Grid2D<N>::EdgeReference(m_outer_this->m_i, =
 m_outer_this->m_j, i_parallel, m_outer_this->m_outer_this);=0A=
     case 1 :=0A=
         return Grid2D<N>::EdgeReference(m_outer_this->m_i + 1, =
 m_outer_this->m_j, j_parallel, m_outer_this->m_outer_this);=0A=
     case 2 :=0A=
         return Grid2D<N>::EdgeReference(m_outer_this->m_i, =
 m_outer_this->m_j + 1, i_parallel, m_outer_this->m_outer_this);=0A=
     default :=0A=
         return Grid2D<N>::EdgeReference(m_outer_this->m_i, =
 m_outer_this->m_j, j_parallel, m_outer_this->m_outer_this);=0A=
     }=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 Edge<N> Grid2D<N>::FaceReference::EdgeCirculator::operator*() const=0A=
 {=0A=
     Grid2D<N>::FaceReference::VertexCirculator p(m_c, m_outer_this);=0A=
 =0A=
     return Edge<N>( *p, boost::next(*p) );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 typename Grid2D<N>::FaceReference::EdgeCirculator & =
 Grid2D<N>::FaceReference::EdgeCirculator::operator++()=0A=
 {=0A=
     ++m_c;=0A=
 =0A=
     if(4 =3D=3D m_c)=0A=
     {=0A=
         m_c =3D 0;=0A=
     }=0A=
 =0A=
     return *this;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::EdgeCirculator::operator=3D=3D(Int null) =
 const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1494, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return false;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::EdgeCirculator::operator=3D=3D(const =
 EdgeCirculator & rhs) const=0A=
 {=0A=
     return (m_outer_this =3D=3D rhs.m_outer_this)=0A=
         && ( m_c =3D=3D rhs.m_c );=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::EdgeCirculator::operator!=3D(Int null) =
 const=0A=
 {=0A=
     (static_cast<void> ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D =
 null", =
 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", =
 1509, __PRETTY_FUNCTION__), 0)));=0A=
 =0A=
     return true;=0A=
 }=0A=
 =0A=
 template <typename N>=0A=
 bool Grid2D<N>::FaceReference::EdgeCirculator::operator!=3D(const =
 EdgeCirculator & rhs) const=0A=
 {=0A=
     return (m_outer_this !=3D rhs.m_outer_this)=0A=
            || (m_outer_this !=3D rhs.m_outer_this);=0A=
 }=0A=
 # 9 "main.cxx" 2=0A=
 =0A=
 # 1 "/homes/rob/dev/products/nmove/main/inc/nmove_epilog.cxx" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 static void* operator new( size_t size, const char* file, int line )=0A=
 {=0A=
     void* result =3D ::operator new( size );=0A=
     return result;=0A=
 }=0A=
 # 11 "main.cxx" 2=0A=
 =0A=
 =0A=
 =0A=
 int main()=0A=
 {=0A=
 =0A=
     Grid2D<float> my_grid( Point<float>(10.0f, 20.0f, 30.0f), 5.0f, =
 5.0f, 20, 20);=0A=
 =0A=
 =0A=
     Point<float> my_point =3D my_grid.vertex(3, 4);=0A=
     std::cout << "my_point =3D (" << my_point.x() << ", " << =
 my_point.y() << ", " << my_point.z() << ")" << std::endl;=0A=
 =0A=
 =0A=
     my_point.z() =3D 35.0f;=0A=
     std::cout << "my_point =3D (" << my_point.x() << ", " << =
 my_point.y() << ", " << my_point.z() << ")" << std::endl;=0A=
 =0A=
 =0A=
     my_grid.vertex(3, 4) =3D my_point;=0A=
 =0A=
 =0A=
     float my_z1 =3D my_grid.vertex(3, 4).z();=0A=
     std::cout << "my_z1 =3D " << my_z1 << std::endl;=0A=
 =0A=
 =0A=
     my_grid.vertex(6, 3).z() =3D 10.0f;=0A=
 =0A=
 =0A=
     float my_z2 =3D my_grid.vertex(6, 3).z();=0A=
     std::cout << "my_z2 =3D " << my_z2 << std::endl;=0A=
 =0A=
     my_grid.vertex(3, 2).z() +=3D 2.4f;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
     Edge<float> my_edge =3D my_grid.edge(2, 3, i_parallel);=0A=
 =0A=
     Point<float> my_edge_source =3D my_edge.source();=0A=
 =0A=
     std::cerr << "my_edge_source =3D (" << my_edge_source.x() << ", " << =
 my_edge_source.y() << ", " << my_edge_source.z() << ")" << std::endl;=0A=
 =0A=
     my_grid.edge(1, 3, j_parallel).target().z() =3D 145.0f;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
     Grid2D<float>::VertexIterator i =3D my_grid.vertex_begin();=0A=
     Grid2D<float>::VertexIterator i_end =3D my_grid.vertex_end();=0A=
 =0A=
     (*i).z() =3D 50.9f;=0A=
 =0A=
     std::cout << "Grid contents\n";=0A=
 =0A=
     while(i !=3D i_end)=0A=
     {=0A=
         Point<float> ip =3D *i;=0A=
 =0A=
         std::cout << "ip =3D (" << ip.x() << ", " << ip.y() << ", " << =
 ip.z() << ")" << std::endl;=0A=
 =0A=
         ++i;=0A=
     }=0A=
 =0A=
 =0A=
 =0A=
     Grid2D<float>::EdgeIterator r =3D my_grid.edge_begin();=0A=
     Grid2D<float>::EdgeIterator r_end =3D my_grid.edge_end();=0A=
 =0A=
     (*r).target().z() =3D 123.4f;=0A=
 =0A=
     std::cout << "All the edges\n";=0A=
     while(r !=3D r_end)=0A=
     {=0A=
         std::cout << "Edge (" << (*r).source().x() << ", " << =
 (*r).source().y() << ", " << (*r).source().z() << ")"=0A=
                   << " ->  (" << (*r).target().x() << ", " << =
 (*r).target().y() << ", " << (*r).target().z() << ")\n";=0A=
         ++r;=0A=
     }=0A=
 =0A=
     return 0;=0A=
 }=0A=
 
 ------=_NextPart_000_0004_01C24AB4.7CD7C780--
 


             reply	other threads:[~2002-08-23 13:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-23  7:06 Rob Smallshire [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-08-23  6:45 gdr
2002-08-23  6:36 rob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020823135602.27492.qmail@sources.redhat.com \
    --to=rob@mve.com \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).