public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: qiongc@cse.unsw.edu.au (Qiong Cai)
To: law@redhat.com
Cc: Diego Novillo <dnovillo@redhat.com>, gcc@gcc.gnu.org
Subject: Re: tree-ssa branch: Call for preliminary testing
Date: Fri, 09 May 2003 01:31:00 -0000	[thread overview]
Message-ID: <20030509013134.GB28720@cse.unsw.edu.au> (raw)
In-Reply-To: <200305071802.h47I29fG031741@speedy.slc.redhat.com>

[-- Attachment #1: Type: text/plain, Size: 526 bytes --]

universal.i is attached.

Qiong

On Wed, May 07, 2003 at 12:02:09PM -0600, law@redhat.com wrote:
> In message <20030507175428.GA5081@cse.unsw.edu.au>, Qiong Cai writes:
>  >Compiling Error:
>  >1) perlbmk
>  >universal.c: In function `XS_UNIVERSAL_isa':
>  >universal.c:123: internal compiler error: in simplify_stmt_expr, at c-simplif
>  >y.c:991
> If you could add "-save-temps" to the compilation line, recompile and send
> the resulting universal.i file to Diego and myself it would be greatly
> appreciated.
> 
> Jeff
> 

[-- Attachment #2: universal.i --]
[-- Type: text/plain, Size: 184447 bytes --]

# 1 "universal.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "universal.c"
# 1 "EXTERN.h" 1
# 2 "universal.c" 2
# 1 "perl.h" 1
# 137 "perl.h"
# 1 "config.h" 1
# 1 "spec_config.h" 1
# 2 "config.h" 2
# 138 "perl.h" 2

# 1 "embed.h" 1
# 140 "perl.h" 2
# 307 "perl.h"
# 1 "/usr/include/sys/types.h" 1 3 4
# 26 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 283 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 284 "/usr/include/features.h" 2 3 4
# 312 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 313 "/usr/include/features.h" 2 3 4
# 27 "/usr/include/sys/types.h" 2 3 4



# 1 "/usr/include/bits/types.h" 1 3 4
# 29 "/usr/include/bits/types.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 213 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef unsigned int size_t;
# 30 "/usr/include/bits/types.h" 2 3 4


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

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3 4
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

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

typedef __quad_t *__qaddr_t;

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

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


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;

typedef long int __clock_t;


typedef int __clockid_t;


typedef int __timer_t;






typedef int __key_t;


typedef unsigned short int __ipc_pid_t;



typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;


typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;


typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;


typedef __u_quad_t __ino64_t;


typedef __loff_t __off64_t;


typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;


typedef int __intptr_t;


typedef unsigned int __socklen_t;




# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/sched.h" 1 3 4
# 68 "/usr/include/bits/sched.h" 3 4
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4

typedef int __atomic_lock_t;


struct _pthread_fastlock
{
  long int __status;
  __atomic_lock_t __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;
# 142 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3 4
# 31 "/usr/include/sys/types.h" 2 3 4



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




typedef __loff_t loff_t;



typedef __ino_t ino_t;
# 61 "/usr/include/sys/types.h" 3 4
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 99 "/usr/include/sys/types.h" 3 4
typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 132 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 70 "/usr/include/time.h" 3 4
typedef __time_t time_t;
# 82 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 94 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3 4
# 146 "/usr/include/sys/types.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 147 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3 4
typedef int int8_t ;
typedef int int16_t ;
typedef int int32_t ;
typedef int int64_t ;


typedef unsigned int u_int8_t ;
typedef unsigned int u_int16_t ;
typedef unsigned int u_int32_t ;
typedef unsigned int u_int64_t ;

typedef int register_t ;
# 212 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 213 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 32 "/usr/include/sys/select.h" 2 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 23 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;





# 1 "/usr/include/time.h" 1 3 4
# 106 "/usr/include/time.h" 3 4
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 45 "/usr/include/sys/select.h" 2 3 4

# 1 "/usr/include/bits/time.h" 1 3 4
# 67 "/usr/include/bits/time.h" 3 4
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/sys/select.h" 2 3 4


typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;







typedef struct
  {






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


  } fd_set;






typedef __fd_mask fd_mask;
# 95 "/usr/include/sys/select.h" 3 4







extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout) ;
# 118 "/usr/include/sys/select.h" 3 4

# 216 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 219 "/usr/include/sys/types.h" 2 3 4
# 230 "/usr/include/sys/types.h" 3 4
typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 262 "/usr/include/sys/types.h" 3 4

# 308 "perl.h" 2
# 318 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 1 3 4
# 43 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 319 "perl.h" 2






# 1 "iperlsys.h" 1
# 74 "iperlsys.h"
extern void PerlIO_init (void);
# 203 "iperlsys.h"
# 1 "perlsdio.h" 1




# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 1 3 4
# 39 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4




# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 44 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
# 54 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef struct _IO_FILE FILE;
# 64 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef struct _IO_FILE __FILE;
# 74 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/libio.h" 1 3 4
# 32 "/usr/include/libio.h" 3 4
# 1 "/usr/include/_G_config.h" 1 3 4
# 14 "/usr/include/_G_config.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 325 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef long int wchar_t;
# 354 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3 4
# 24 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4

# 1 "/usr/include/bits/wchar.h" 1 3 4
# 51 "/usr/include/wchar.h" 2 3 4
# 67 "/usr/include/wchar.h" 3 4
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3 4

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/gconv.h" 1 3 4
# 28 "/usr/include/gconv.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 29 "/usr/include/gconv.h" 2 3 4


# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 32 "/usr/include/gconv.h" 2 3 4





enum
{
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NOMEM,

  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,

  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
};



enum
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
};



struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;



typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
       __const unsigned char **, __const unsigned char *,
       unsigned char **, size_t *, int, int);


typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
      struct __gconv_step_data *, void *,
      __const unsigned char *,
      __const unsigned char **,
      __const unsigned char *, unsigned char **,
      size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
       __const unsigned char *,
       unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
     size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3 4
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t ;
typedef int _G_int32_t ;
typedef unsigned int _G_uint16_t ;
typedef unsigned int _G_uint32_t ;
# 33 "/usr/include/libio.h" 2 3 4
# 160 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3 4
typedef void _IO_lock_t;





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



  int _pos;
# 193 "/usr/include/libio.h" 3 4
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 261 "/usr/include/libio.h" 3 4
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  __off_t _old_offset;



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



  _IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3 4
  __off64_t _offset;





  void *__pad1;
  void *__pad2;

  int _mode;

  char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 344 "/usr/include/libio.h" 3 4
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







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







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


typedef int __io_close_fn (void *__cookie);
# 396 "/usr/include/libio.h" 3 4
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 426 "/usr/include/libio.h" 3 4
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;

extern int _IO_peekc_locked (_IO_FILE *__fp) ;





extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 456 "/usr/include/libio.h" 3 4
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
   __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
    __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;

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

extern void _IO_free_backup_area (_IO_FILE *) ;
# 75 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
# 89 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef _G_fpos_t fpos_t;
# 138 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 139 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4



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






extern int remove (__const char *__filename) ;

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




extern FILE *tmpfile (void) ;
# 170 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *tmpnam (char *__s) ;




extern char *tmpnam_r (char *__s) ;
# 187 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *tempnam (__const char *__dir, __const char *__pfx)
     ;




extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;



extern int fflush_unlocked (FILE *__stream) ;
# 210 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern FILE *fopen (__const char *__restrict __filename,
      __const char *__restrict __modes) ;

extern FILE *freopen (__const char *__restrict __filename,
        __const char *__restrict __modes,
        FILE *__restrict __stream) ;
# 240 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 263 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;



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




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


extern void setlinebuf (FILE *__stream) ;




extern int fprintf (FILE *__restrict __stream,
      __const char *__restrict __format, ...) ;

extern int printf (__const char *__restrict __format, ...) ;

extern int sprintf (char *__restrict __s,
      __const char *__restrict __format, ...) ;


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

extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
     ;

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
       __gnuc_va_list __arg) ;



extern int snprintf (char *__restrict __s, size_t __maxlen,
       __const char *__restrict __format, ...)
     ;

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
        __const char *__restrict __format, __gnuc_va_list __arg)
     ;
# 334 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fscanf (FILE *__restrict __stream,
     __const char *__restrict __format, ...) ;

extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
     __const char *__restrict __format, ...) ;
# 360 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;







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




extern int fgetc_unlocked (FILE *__stream) ;




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


extern int putchar (int __c) ;







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




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





extern int getw (FILE *__stream) ;


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




extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     ;
# 426 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *gets (char *__s) ;
# 450 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
     ;
# 460 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int puts (__const char *__s) ;



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



extern size_t fread (void *__restrict __ptr, size_t __size,
       size_t __n, FILE *__restrict __stream) ;

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



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




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

extern long int ftell (FILE *__stream) ;

extern void rewind (FILE *__stream) ;
# 504 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
     ;

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 540 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern void clearerr (FILE *__stream) ;

extern int feof (FILE *__stream) ;

extern int ferror (FILE *__stream) ;



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




extern void perror (__const char *__s) ;





# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
# 27 "/usr/include/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 562 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4




extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






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


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;
# 613 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 634 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio.h" 1 3 4
# 33 "/usr/include/bits/stdio.h" 3 4
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
  return vfprintf (stdout, __fmt, __arg);
}


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




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


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




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




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





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


extern __inline int
putchar_unlocked (int __c)
{
  return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 111 "/usr/include/bits/stdio.h" 3 4
extern __inline int
feof_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x10) != 0);
}


extern __inline int
ferror_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x20) != 0);
}
# 635 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4



# 6 "perlsdio.h" 2
# 204 "iperlsys.h" 2
# 318 "iperlsys.h"
extern int PerlIO_sprintf (char *, int, const char *,...)
     ;
# 326 "perl.h" 2
# 336 "perl.h"
# 1 "/usr/include/ctype.h" 1 3 4
# 29 "/usr/include/ctype.h" 3 4

# 47 "/usr/include/ctype.h" 3 4
enum
{
  _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
  _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
  _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
  _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
  _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
  _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
  _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
  _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
  _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
  _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
  _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
  _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 75 "/usr/include/ctype.h" 3 4
extern __const unsigned short int *__ctype_b;
extern __const __int32_t *__ctype_tolower;
extern __const __int32_t *__ctype_toupper;
# 91 "/usr/include/ctype.h" 3 4
extern int isalnum (int) ;
extern int isalpha (int) ;
extern int iscntrl (int) ;
extern int isdigit (int) ;
extern int islower (int) ;
extern int isgraph (int) ;
extern int isprint (int) ;
extern int ispunct (int) ;
extern int isspace (int) ;
extern int isupper (int) ;
extern int isxdigit (int) ;







extern int tolower (int __c) ;


extern int toupper (int __c) ;






extern int isascii (int __c) ;



extern int toascii (int __c) ;



extern int _toupper (int) ;
extern int _tolower (int) ;
# 167 "/usr/include/ctype.h" 3 4
extern __inline int
tolower (int __c)
{
  return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}

extern __inline int
toupper (int __c)
{
  return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
# 276 "/usr/include/ctype.h" 3 4

# 337 "perl.h" 2







# 1 "/usr/include/locale.h" 1 3 4
# 29 "/usr/include/locale.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 30 "/usr/include/locale.h" 2 3 4
# 1 "/usr/include/bits/locale.h" 1 3 4
# 27 "/usr/include/bits/locale.h" 3 4
enum
{
  __LC_CTYPE = 0,
  __LC_NUMERIC = 1,
  __LC_TIME = 2,
  __LC_COLLATE = 3,
  __LC_MONETARY = 4,
  __LC_MESSAGES = 5,
  __LC_ALL = 6,
  __LC_PAPER = 7,
  __LC_NAME = 8,
  __LC_ADDRESS = 9,
  __LC_TELEPHONE = 10,
  __LC_MEASUREMENT = 11,
  __LC_IDENTIFICATION = 12
};
# 31 "/usr/include/locale.h" 2 3 4


# 52 "/usr/include/locale.h" 3 4
struct lconv
{


  char *decimal_point;
  char *thousands_sep;





  char *grouping;





  char *int_curr_symbol;
  char *currency_symbol;
  char *mon_decimal_point;
  char *mon_thousands_sep;
  char *mon_grouping;
  char *positive_sign;
  char *negative_sign;
  char int_frac_digits;
  char frac_digits;

  char p_cs_precedes;

  char p_sep_by_space;

  char n_cs_precedes;

  char n_sep_by_space;






  char p_sign_posn;
  char n_sign_posn;
# 112 "/usr/include/locale.h" 3 4
  char __int_p_cs_precedes;
  char __int_p_sep_by_space;
  char __int_n_cs_precedes;
  char __int_n_sep_by_space;
  char __int_p_sign_posn;
  char __int_n_sign_posn;

};



extern char *setlocale (int __category, __const char *__locale) ;


extern struct lconv *localeconv (void) ;
# 161 "/usr/include/locale.h" 3 4

# 345 "perl.h" 2
# 361 "perl.h"
# 1 "/usr/include/setjmp.h" 1 3 4
# 28 "/usr/include/setjmp.h" 3 4


# 1 "/usr/include/bits/setjmp.h" 1 3 4
# 36 "/usr/include/bits/setjmp.h" 3 4
typedef int __jmp_buf[6];
# 31 "/usr/include/setjmp.h" 2 3 4
# 1 "/usr/include/bits/sigset.h" 1 3 4
# 32 "/usr/include/setjmp.h" 2 3 4


typedef struct __jmp_buf_tag
  {




    __jmp_buf __jmpbuf;
    int __mask_was_saved;
    __sigset_t __saved_mask;
  } jmp_buf[1];




extern int setjmp (jmp_buf __env) ;



extern int _setjmp (jmp_buf __env) ;




extern int __sigsetjmp (jmp_buf __env, int __savemask) ;
# 73 "/usr/include/setjmp.h" 3 4
extern void longjmp (jmp_buf __env, int __val)
     ;




extern void _longjmp (jmp_buf __env, int __val)
     ;







typedef jmp_buf sigjmp_buf;
# 98 "/usr/include/setjmp.h" 3 4
extern void siglongjmp (sigjmp_buf __env, int __val)
     ;



# 362 "perl.h" 2
# 373 "perl.h"
# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 34 "/usr/include/stdlib.h" 2 3 4


# 94 "/usr/include/stdlib.h" 3 4
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;
# 133 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) ;



extern double atof (__const char *__nptr) ;

extern int atoi (__const char *__nptr) ;

extern long int atol (__const char *__nptr) ;



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



extern double strtod (__const char *__restrict __nptr,
        char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3 4
extern long int strtol (__const char *__restrict __nptr,
   char **__restrict __endptr, int __base) ;

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



__extension__
extern long long int strtoq (__const char *__restrict __nptr,
        char **__restrict __endptr, int __base) ;

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






__extension__
extern long long int strtoll (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
     char **__restrict __endptr, int __base)
     ;
# 250 "/usr/include/stdlib.h" 3 4
extern double __strtod_internal (__const char *__restrict __nptr,
     char **__restrict __endptr, int __group)
     ;
extern float __strtof_internal (__const char *__restrict __nptr,
    char **__restrict __endptr, int __group)
     ;
extern long double __strtold_internal (__const char *__restrict __nptr,
           char **__restrict __endptr,
           int __group) ;

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



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




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



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







extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
 int __base)
{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
  int __base)
{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 325 "/usr/include/stdlib.h" 3 4
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
 int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
  int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}



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


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


__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 384 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) ;
# 397 "/usr/include/stdlib.h" 3 4
extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





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



extern char *setstate (char *__statebuf) ;







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

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

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

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

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





extern int rand (void) ;

extern void srand (unsigned int __seed) ;



extern int rand_r (unsigned int *__seed) ;







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


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


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


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





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


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


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


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


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

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

extern int lcong48_r (unsigned short int __param[7],
        struct drand48_data *__buffer) ;
# 527 "/usr/include/stdlib.h" 3 4
extern void *malloc (size_t __size) ;

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





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

extern void free (void *__ptr) ;



extern void cfree (void *__ptr) ;



# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4







extern void *alloca (size_t __size) ;






# 547 "/usr/include/stdlib.h" 2 3 4




extern void *valloc (size_t __size) ;
# 561 "/usr/include/stdlib.h" 3 4
extern void abort (void) ;



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




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





extern void exit (int __status) ;
# 587 "/usr/include/stdlib.h" 3 4
extern char *getenv (__const char *__name) ;



extern char *__secure_getenv (__const char *__name) ;





extern int putenv (char *__string) ;





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


extern int unsetenv (__const char *__name) ;






extern int clearenv (void) ;
# 623 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 650 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;
# 672 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
         char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);
# 689 "/usr/include/stdlib.h" 3 4
extern void *bsearch (__const void *__key, __const void *__base,
        size_t __nmemb, size_t __size, __compar_fn_t __compar);



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



extern int abs (int __x) ;
extern long int labs (long int __x) ;
# 710 "/usr/include/stdlib.h" 3 4
extern div_t div (int __numer, int __denom)
     ;
extern ldiv_t ldiv (long int __numer, long int __denom)
     ;
# 728 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) ;




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




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




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




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

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






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


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


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



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

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







extern int rpmatch (__const char *__response) ;
# 858 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem) ;






# 374 "perl.h" 2
# 426 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 151 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 427 "perl.h" 2






# 1 "/usr/include/string.h" 1 3 4
# 28 "/usr/include/string.h" 3 4





# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4



extern void *memcpy (void *__restrict __dest,
       __const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
     ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
        int __c, size_t __n)
     ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
     ;


extern void *memchr (__const void *__s, int __c, size_t __n)
      ;
# 77 "/usr/include/string.h" 3 4
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncpy (char *__restrict __dest,
        __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
        size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
     ;

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
     ;


extern int strcoll (__const char *__s1, __const char *__s2)
     ;

extern size_t strxfrm (char *__restrict __dest,
         __const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3 4
extern char *strdup (__const char *__s) ;
# 155 "/usr/include/string.h" 3 4
extern char *strchr (__const char *__s, int __c) ;

extern char *strrchr (__const char *__s, int __c) ;
# 167 "/usr/include/string.h" 3 4
extern size_t strcspn (__const char *__s, __const char *__reject)
     ;


extern size_t strspn (__const char *__s, __const char *__accept)
     ;

extern char *strpbrk (__const char *__s, __const char *__accept)
     ;

extern char *strstr (__const char *__haystack, __const char *__needle)
     ;
# 187 "/usr/include/string.h" 3 4
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
     ;



extern char *__strtok_r (char *__restrict __s,
    __const char *__restrict __delim,
    char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
         char **__restrict __save_ptr) ;
# 218 "/usr/include/string.h" 3 4
extern size_t strlen (__const char *__s) ;
# 229 "/usr/include/string.h" 3 4
extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
     ;


extern char *index (__const char *__s, int __c) ;


extern char *rindex (__const char *__s, int __c) ;



extern int ffs (int __i) ;
# 272 "/usr/include/string.h" 3 4
extern int strcasecmp (__const char *__s1, __const char *__s2)
     ;


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
     ;
# 294 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
       __const char *__restrict __delim) ;
# 357 "/usr/include/string.h" 3 4
# 1 "/usr/include/bits/string.h" 1 3 4
# 358 "/usr/include/string.h" 2 3 4


# 1 "/usr/include/bits/string2.h" 1 3 4
# 387 "/usr/include/bits/string2.h" 3 4
extern void *__rawmemchr (const void *__s, int __c);
# 917 "/usr/include/bits/string2.h" 3 4
extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, int __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
         int __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
         int __reject2, int __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
       int __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 974 "/usr/include/bits/string2.h" 3 4
extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, int __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
        int __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, int __accept1, int __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
        int __accept2, int __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
  || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 1031 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
         int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
         int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
       int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
  && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1083 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  __result = ((void *)0);
  if (*__s != '\0')
    {
      __result = __s++;
      while (*__s != '\0')
 if (*__s++ == __sep)
   {
     __s[-1] = '\0';
     break;
   }
      *__nextp = __s;
    }
  return __result;
}
# 1115 "/usr/include/bits/string2.h" 3 4
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1133 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
       char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}
# 1214 "/usr/include/bits/string2.h" 3 4
extern char *__strdup (__const char *__string) ;
# 1233 "/usr/include/bits/string2.h" 3 4
extern char *__strndup (__const char *__string, size_t __n)
     ;
# 361 "/usr/include/string.h" 2 3 4




# 434 "perl.h" 2
# 537 "perl.h"
# 1 "/usr/include/sys/stat.h" 1 3 4
# 96 "/usr/include/sys/stat.h" 3 4


# 1 "/usr/include/bits/stat.h" 1 3 4
# 36 "/usr/include/bits/stat.h" 3 4
struct stat
  {
    __dev_t st_dev;
    unsigned short int __pad1;

    __ino_t st_ino;



    __mode_t st_mode;
    __nlink_t st_nlink;
    __uid_t st_uid;
    __gid_t st_gid;
    __dev_t st_rdev;
    unsigned short int __pad2;

    __off_t st_size;



    __blksize_t st_blksize;


    __blkcnt_t st_blocks;



    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;

    unsigned long int __unused4;
    unsigned long int __unused5;



  };
# 99 "/usr/include/sys/stat.h" 2 3 4
# 200 "/usr/include/sys/stat.h" 3 4
extern int stat (__const char *__restrict __file,
   struct stat *__restrict __buf) ;



extern int fstat (int __fd, struct stat *__buf) ;
# 228 "/usr/include/sys/stat.h" 3 4
extern int lstat (__const char *__restrict __file,
    struct stat *__restrict __buf) ;
# 249 "/usr/include/sys/stat.h" 3 4
extern int chmod (__const char *__file, __mode_t __mode) ;



extern int fchmod (int __fd, __mode_t __mode) ;





extern __mode_t umask (__mode_t __mask) ;
# 268 "/usr/include/sys/stat.h" 3 4
extern int mkdir (__const char *__path, __mode_t __mode) ;





extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
     ;




extern int mkfifo (__const char *__path, __mode_t __mode) ;
# 306 "/usr/include/sys/stat.h" 3 4
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) ;
extern int __xstat (int __ver, __const char *__filename,
      struct stat *__stat_buf) ;
extern int __lxstat (int __ver, __const char *__filename,
       struct stat *__stat_buf) ;
# 337 "/usr/include/sys/stat.h" 3 4
extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
       __dev_t *__dev) ;




extern __inline__ int stat (__const char *__path,
       struct stat *__statbuf)
{
  return __xstat (3, __path, __statbuf);
}


extern __inline__ int lstat (__const char *__path,
        struct stat *__statbuf)
{
  return __lxstat (3, __path, __statbuf);
}


extern __inline__ int fstat (int __fd, struct stat *__statbuf)
{
  return __fxstat (3, __fd, __statbuf);
}


extern __inline__ int mknod (__const char *__path, __mode_t __mode,
        __dev_t __dev)
{
  return __xmknod (1, __path, __mode, &__dev);
}
# 395 "/usr/include/sys/stat.h" 3 4

# 538 "perl.h" 2
# 566 "perl.h"
# 1 "/usr/include/sys/time.h" 1 3 4
# 26 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 27 "/usr/include/sys/time.h" 2 3 4

# 1 "/usr/include/bits/time.h" 1 3 4
# 29 "/usr/include/sys/time.h" 2 3 4
# 38 "/usr/include/sys/time.h" 3 4

# 56 "/usr/include/sys/time.h" 3 4
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
    __timezone_ptr_t __tz) ;




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





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




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };






typedef int __itimer_which_t;




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




extern int setitimer (__itimer_which_t __which,
        __const struct itimerval *__restrict __new,
        struct itimerval *__restrict __old) ;



extern int utimes (__const char *__file, __const struct timeval __tvp[2])
     ;
# 171 "/usr/include/sys/time.h" 3 4

# 567 "perl.h" 2






# 1 "/usr/include/sys/times.h" 1 3 4
# 29 "/usr/include/sys/times.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 59 "/usr/include/time.h" 3 4
typedef __clock_t clock_t;
# 30 "/usr/include/sys/times.h" 2 3 4





struct tms
  {
    clock_t tms_utime;
    clock_t tms_stime;

    clock_t tms_cutime;
    clock_t tms_cstime;
  };






extern clock_t times (struct tms *__buffer) ;


# 574 "perl.h" 2






# 1 "/usr/include/errno.h" 1 3 4
# 32 "/usr/include/errno.h" 3 4




# 1 "/usr/include/bits/errno.h" 1 3 4
# 25 "/usr/include/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4



# 1 "/usr/include/asm/errno.h" 1 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/bits/errno.h" 2 3 4
# 36 "/usr/include/bits/errno.h" 3 4
extern int errno;


extern int *__errno_location (void) ;
# 37 "/usr/include/errno.h" 2 3 4
# 59 "/usr/include/errno.h" 3 4

# 581 "perl.h" 2
# 618 "perl.h"
 char *strerror (int);
# 637 "perl.h"
# 1 "/usr/include/sys/ioctl.h" 1 3 4
# 24 "/usr/include/sys/ioctl.h" 3 4



# 1 "/usr/include/bits/ioctls.h" 1 3 4
# 24 "/usr/include/bits/ioctls.h" 3 4
# 1 "/usr/include/asm/ioctls.h" 1 3 4



# 1 "/usr/include/asm/ioctl.h" 1 3 4
# 5 "/usr/include/asm/ioctls.h" 2 3 4
# 25 "/usr/include/bits/ioctls.h" 2 3 4
# 28 "/usr/include/sys/ioctl.h" 2 3 4


# 1 "/usr/include/bits/ioctl-types.h" 1 3 4
# 28 "/usr/include/bits/ioctl-types.h" 3 4
struct winsize
  {
    unsigned short int ws_row;
    unsigned short int ws_col;
    unsigned short int ws_xpixel;
    unsigned short int ws_ypixel;
  };


struct termio
  {
    unsigned short int c_iflag;
    unsigned short int c_oflag;
    unsigned short int c_cflag;
    unsigned short int c_lflag;
    unsigned char c_line;
    unsigned char c_cc[8];
};
# 31 "/usr/include/sys/ioctl.h" 2 3 4






# 1 "/usr/include/sys/ttydefaults.h" 1 3 4
# 38 "/usr/include/sys/ioctl.h" 2 3 4




extern int ioctl (int __fd, unsigned long int __request, ...) ;


# 638 "perl.h" 2
# 660 "perl.h"
# 1 "/usr/include/dirent.h" 1 3 4
# 28 "/usr/include/dirent.h" 3 4

# 62 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/bits/dirent.h" 1 3 4
# 23 "/usr/include/bits/dirent.h" 3 4
struct dirent
  {

    __ino_t d_ino;
    __off_t d_off;




    unsigned short int d_reclen;
    unsigned char d_type;
    char d_name[256];
  };
# 63 "/usr/include/dirent.h" 2 3 4
# 98 "/usr/include/dirent.h" 3 4
enum
  {
    DT_UNKNOWN = 0,

    DT_FIFO = 1,

    DT_CHR = 2,

    DT_DIR = 4,

    DT_BLK = 6,

    DT_REG = 8,

    DT_LNK = 10,

    DT_SOCK = 12,

    DT_WHT = 14

  };
# 128 "/usr/include/dirent.h" 3 4
typedef struct __dirstream DIR;



extern DIR *opendir (__const char *__name) ;



extern int closedir (DIR *__dirp) ;
# 146 "/usr/include/dirent.h" 3 4
extern struct dirent *readdir (DIR *__dirp) ;
# 163 "/usr/include/dirent.h" 3 4
extern int readdir_r (DIR *__restrict __dirp,
        struct dirent *__restrict __entry,
        struct dirent **__restrict __result) ;
# 186 "/usr/include/dirent.h" 3 4
extern void rewinddir (DIR *__dirp) ;





extern void seekdir (DIR *__dirp, long int __pos) ;


extern long int telldir (DIR *__dirp) ;





extern int dirfd (DIR *__dirp) ;







# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 126 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 127 "/usr/include/bits/posix1_lim.h" 2 3 4
# 210 "/usr/include/dirent.h" 2 3 4
# 220 "/usr/include/dirent.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 221 "/usr/include/dirent.h" 2 3 4






extern int scandir (__const char *__restrict __dir,
      struct dirent ***__restrict __namelist,
      int (*__selector) (__const struct dirent *),
      int (*__cmp) (__const void *, __const void *)) ;
# 255 "/usr/include/dirent.h" 3 4
extern int alphasort (__const void *__e1, __const void *__e2)
     ;
# 300 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
    size_t __nbytes,
    __off_t *__restrict __basep) ;
# 323 "/usr/include/dirent.h" 3 4

# 661 "perl.h" 2
# 840 "perl.h"
    typedef long IV;
    typedef unsigned long UV;
# 860 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 1 3 4
# 11 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/syslimits.h" 1 3 4






# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 1 3 4
# 122 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 148 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 149 "/usr/include/limits.h" 2 3 4
# 123 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 2 3 4
# 8 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/syslimits.h" 2 3 4
# 12 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 2 3 4
# 861 "perl.h" 2
# 1041 "perl.h"
typedef size_t STRLEN;

typedef struct op OP;
typedef struct cop COP;
typedef struct unop UNOP;
typedef struct binop BINOP;
typedef struct listop LISTOP;
typedef struct logop LOGOP;
typedef struct condop CONDOP;
typedef struct pmop PMOP;
typedef struct svop SVOP;
typedef struct gvop GVOP;
typedef struct pvop PVOP;
typedef struct loop LOOP;

typedef struct Outrec Outrec;
typedef struct interpreter PerlInterpreter;

typedef struct ff FF;

typedef struct sv SV;
typedef struct av AV;
typedef struct hv HV;
typedef struct cv CV;
typedef struct regexp REGEXP;
typedef struct gp GP;
typedef struct gv GV;
typedef struct io IO;
typedef struct context PERL_CONTEXT;
typedef struct block BLOCK;

typedef struct magic MAGIC;
typedef struct xrv XRV;
typedef struct xpv XPV;
typedef struct xpviv XPVIV;
typedef struct xpvuv XPVUV;
typedef struct xpvnv XPVNV;
typedef struct xpvmg XPVMG;
typedef struct xpvlv XPVLV;
typedef struct xpvav XPVAV;
typedef struct xpvhv XPVHV;
typedef struct xpvgv XPVGV;
typedef struct xpvcv XPVCV;
typedef struct xpvbm XPVBM;
typedef struct xpvfm XPVFM;
typedef struct xpvio XPVIO;
typedef struct mgvtbl MGVTBL;
typedef union any ANY;

# 1 "handy.h" 1
# 108 "handy.h"
typedef char I8;
typedef unsigned char U8;





typedef short I16;
typedef unsigned short U16;
# 130 "handy.h"
  typedef long I32;
  typedef unsigned long U32;
# 259 "handy.h"
typedef U16 line_t;
# 1091 "perl.h" 2




typedef I32 (*filter_t) (int, SV *, int);
# 1121 "perl.h"
# 1 "unixish.h" 1
# 93 "unixish.h"
# 1 "/usr/include/signal.h" 1 3 4
# 31 "/usr/include/signal.h" 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 103 "/usr/include/bits/sigset.h" 3 4
extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
# 117 "/usr/include/bits/sigset.h" 3 4
extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
# 34 "/usr/include/signal.h" 2 3 4






typedef __sig_atomic_t sig_atomic_t;
# 56 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/signum.h" 1 3 4
# 57 "/usr/include/signal.h" 2 3 4
# 71 "/usr/include/signal.h" 3 4
typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     ;
# 87 "/usr/include/signal.h" 3 4
extern __sighandler_t signal (int __sig, __sighandler_t __handler) ;
# 110 "/usr/include/signal.h" 3 4
extern int kill (__pid_t __pid, int __sig) ;






extern int killpg (__pid_t __pgrp, int __sig) ;



extern int raise (int __sig) ;



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) ;
extern int gsignal (int __sig) ;




extern void psignal (int __sig, __const char *__s) ;
# 140 "/usr/include/signal.h" 3 4
extern int __sigpause (int __sig_or_mask, int __is_sig) ;




extern int sigpause (int __mask) ;
# 168 "/usr/include/signal.h" 3 4
extern int sigblock (int __mask) ;


extern int sigsetmask (int __mask) ;


extern int siggetmask (void) ;
# 188 "/usr/include/signal.h" 3 4
typedef __sighandler_t sig_t;







# 1 "/usr/include/time.h" 1 3 4
# 197 "/usr/include/signal.h" 2 3 4


# 1 "/usr/include/bits/siginfo.h" 1 3 4
# 25 "/usr/include/bits/siginfo.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 26 "/usr/include/bits/siginfo.h" 2 3 4







typedef union sigval
  {
    int sival_int;
    void *sival_ptr;
  } sigval_t;
# 51 "/usr/include/bits/siginfo.h" 3 4
typedef struct siginfo
  {
    int si_signo;
    int si_errno;

    int si_code;

    union
      {
 int _pad[((128 / sizeof (int)) - 3)];


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
   } _kill;


 struct
   {
     unsigned int _timer1;
     unsigned int _timer2;
   } _timer;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     sigval_t si_sigval;
   } _rt;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     int si_status;
     __clock_t si_utime;
     __clock_t si_stime;
   } _sigchld;


 struct
   {
     void *si_addr;
   } _sigfault;


 struct
   {
     long int si_band;
     int si_fd;
   } _sigpoll;
      } _sifields;
  } siginfo_t;
# 128 "/usr/include/bits/siginfo.h" 3 4
enum
{
  SI_ASYNCNL = -6,

  SI_SIGIO,

  SI_ASYNCIO,

  SI_MESGQ,

  SI_TIMER,

  SI_QUEUE,

  SI_USER,

  SI_KERNEL = 0x80

};



enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR

};


enum
{
  TRAP_BRKPT = 1,

  TRAP_TRACE

};


enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};
# 271 "/usr/include/bits/siginfo.h" 3 4
struct __pthread_attr_s;

typedef struct sigevent
  {
    sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
 int _pad[((64 / sizeof (int)) - 3)];

 struct
   {
     void (*_function) (sigval_t);
     struct __pthread_attr_s *_attribute;
   } _sigev_thread;
      } _sigev_un;
  } sigevent_t;






enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD

};
# 200 "/usr/include/signal.h" 2 3 4



extern int sigemptyset (sigset_t *__set) ;


extern int sigfillset (sigset_t *__set) ;


extern int sigaddset (sigset_t *__set, int __signo) ;


extern int sigdelset (sigset_t *__set, int __signo) ;


extern int sigismember (__const sigset_t *__set, int __signo) ;
# 232 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/sigaction.h" 1 3 4
# 25 "/usr/include/bits/sigaction.h" 3 4
struct sigaction
  {


    union
      {

 __sighandler_t sa_handler;

 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;







    __sigset_t sa_mask;


    int sa_flags;


    void (*sa_restorer) (void);
  };
# 233 "/usr/include/signal.h" 2 3 4


extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
   sigset_t *__restrict __oset) ;



extern int sigsuspend (__const sigset_t *__set) ;


extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
        struct sigaction *__restrict __oact) ;


extern int sigpending (sigset_t *__set) ;



extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
     ;



extern int sigwaitinfo (__const sigset_t *__restrict __set,
   siginfo_t *__restrict __info) ;



extern int sigtimedwait (__const sigset_t *__restrict __set,
    siginfo_t *__restrict __info,
    __const struct timespec *__restrict __timeout)
     ;



extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
     ;
# 278 "/usr/include/signal.h" 3 4
extern __const char *__const _sys_siglist[64];
extern __const char *__const sys_siglist[64];


struct sigvec
  {
    __sighandler_t sv_handler;
    int sv_mask;

    int sv_flags;

  };
# 302 "/usr/include/signal.h" 3 4
extern int sigvec (int __sig, __const struct sigvec *__vec,
     struct sigvec *__ovec) ;



# 1 "/usr/include/bits/sigcontext.h" 1 3 4
# 28 "/usr/include/bits/sigcontext.h" 3 4
# 1 "/usr/include/asm/sigcontext.h" 1 3 4
# 18 "/usr/include/asm/sigcontext.h" 3 4
struct _fpreg {
 unsigned short significand[4];
 unsigned short exponent;
};

struct _fpxreg {
 unsigned short significand[4];
 unsigned short exponent;
 unsigned short padding[3];
};

struct _xmmreg {
 unsigned long element[4];
};

struct _fpstate {

 unsigned long cw;
 unsigned long sw;
 unsigned long tag;
 unsigned long ipoff;
 unsigned long cssel;
 unsigned long dataoff;
 unsigned long datasel;
 struct _fpreg _st[8];
 unsigned short status;
 unsigned short magic;


 unsigned long _fxsr_env[6];
 unsigned long mxcsr;
 unsigned long reserved;
 struct _fpxreg _fxsr_st[8];
 struct _xmmreg _xmm[8];
 unsigned long padding[56];
};



struct sigcontext {
 unsigned short gs, __gsh;
 unsigned short fs, __fsh;
 unsigned short es, __esh;
 unsigned short Perl_ds, __dsh;
 unsigned long edi;
 unsigned long esi;
 unsigned long ebp;
 unsigned long esp;
 unsigned long ebx;
 unsigned long edx;
 unsigned long ecx;
 unsigned long eax;
 unsigned long trapno;
 unsigned long err;
 unsigned long eip;
 unsigned short cs, __csh;
 unsigned long eflags;
 unsigned long esp_at_signal;
 unsigned short ss, __ssh;
 struct _fpstate * fpstate;
 unsigned long oldmask;
 unsigned long cr2;
};
# 29 "/usr/include/bits/sigcontext.h" 2 3 4
# 308 "/usr/include/signal.h" 2 3 4


extern int sigreturn (struct sigcontext *__scp) ;
# 320 "/usr/include/signal.h" 3 4
extern int siginterrupt (int __sig, int __interrupt) ;

# 1 "/usr/include/bits/sigstack.h" 1 3 4
# 26 "/usr/include/bits/sigstack.h" 3 4
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };



enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 50 "/usr/include/bits/sigstack.h" 3 4
typedef struct sigaltstack
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 323 "/usr/include/signal.h" 2 3 4







extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) ;



extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
   struct sigaltstack *__restrict __oss) ;
# 358 "/usr/include/signal.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/bits/sigthread.h" 1 3 4
# 40 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
       __const __sigset_t *__restrict __newmask,
       __sigset_t *__restrict __oldmask);


extern int pthread_kill (pthread_t __thr, int __signo) ;
# 359 "/usr/include/signal.h" 2 3 4






extern int __libc_current_sigrtmin (void) ;

extern int __libc_current_sigrtmax (void) ;




# 94 "unixish.h" 2
# 1122 "perl.h" 2
# 1248 "perl.h"
union any {
    void* any_ptr;
    I32 any_i32;
    IV any_iv;
    long any_long;
    void (*any_dptr) (void*);
};
# 1268 "perl.h"
# 1 "regexp.h" 1
# 12 "regexp.h"
struct regnode {
    U8 flags;
    U8 type;
    U16 next_off;
};

typedef struct regnode regnode;

struct reg_data {
    U32 count;
    U8 *what;
    void* data[1];
};

struct reg_substr_datum {
    I32 min_offset;
    I32 max_offset;
    SV *substr;
};

struct reg_substr_data {
    struct reg_substr_datum data[3];
};

typedef struct regexp {
 I32 refcnt;
 char **startp;
 char **endp;
 regnode *regstclass;
 I32 minlen;
 I32 prelen;
 U32 nparens;
 U32 lastparen;
 char *precomp;
 char *subbase;
 char *subbeg;
 char *subend;
 U16 naughty;
 U16 reganch;
# 62 "regexp.h"
        struct reg_substr_data *substrs;

        struct reg_data *data;
 regnode program[1];
} regexp;
# 1269 "perl.h" 2
# 1 "sv.h" 1
# 14 "sv.h"
typedef enum {
 SVt_NULL,
 SVt_IV,
 SVt_NV,
 SVt_RV,
 SVt_PV,
 SVt_PVIV,
 SVt_PVNV,
 SVt_PVMG,
 SVt_PVBM,
 SVt_PVLV,
 SVt_PVAV,
 SVt_PVHV,
 SVt_PVCV,
 SVt_PVGV,
 SVt_PVFM,
 SVt_PVIO
} svtype;



struct sv {
    void* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};

struct gv {
    XPVGV* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};

struct cv {
    XPVCV* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};

struct av {
    XPVAV* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};

struct hv {
    XPVHV* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};

struct io {
    XPVIO* sv_any;
    U32 sv_refcnt;
    U32 sv_flags;
};
# 168 "sv.h"
struct xrv {
    SV * xrv_rv;
};

struct xpv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
};

struct xpviv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
};

struct xpvuv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    UV xuv_uv;
};

struct xpvnv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
};


struct xpvmg {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;
};

struct xpvlv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    STRLEN xlv_targoff;
    STRLEN xlv_targlen;
    SV* xlv_targ;
    char xlv_type;
};

struct xpvgv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    GP* xgv_gp;
    char* xgv_name;
    STRLEN xgv_namelen;
    HV* xgv_stash;
    U8 xgv_flags;
};

struct xpvbm {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    I32 xbm_useful;
    U16 xbm_previous;
    U8 xbm_rare;
};



typedef U16 cv_flags_t;

struct xpvfm {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    HV * xcv_stash;
    OP * xcv_start;
    OP * xcv_root;
    void (*xcv_xsub)(CV* );
    ANY xcv_xsubany;
    GV * xcv_gv;
    GV * xcv_filegv;
    long xcv_depth;
    AV * xcv_padlist;
    CV * xcv_outside;




    cv_flags_t xcv_flags;

    I32 xfm_lines;
};

struct xpvio {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xiv_iv;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    FILE * xio_ifp;
    FILE * xio_ofp;
    DIR * xio_dirp;
    long xio_lines;
    long xio_page;
    long xio_page_len;
    long xio_lines_left;
    char * xio_top_name;
    GV * xio_top_gv;
    char * xio_fmt_name;
    GV * xio_fmt_gv;
    char * xio_bottom_name;
    GV * xio_bottom_gv;
    short xio_subprocess;
    char xio_type;
    char xio_flags;
};
# 1270 "perl.h" 2
# 1 "util.h" 1
# 1271 "perl.h" 2
# 1 "form.h" 1
# 1272 "perl.h" 2
# 1 "gv.h" 1
# 10 "gv.h"
struct gp {
    SV * gp_sv;
    U32 gp_refcnt;
    struct io * gp_io;
    CV * gp_form;
    AV * gp_av;
    HV * gp_hv;
    GV * gp_egv;
    CV * gp_cv;
    U32 gp_cvgen;
    I32 gp_lastexpr;
    line_t gp_line;
    GV * gp_filegv;
};
# 1273 "perl.h" 2
# 1 "cv.h" 1
# 12 "cv.h"
struct xpvcv {
    char * xpv_pv;
    STRLEN xpv_cur;
    STRLEN xpv_len;
    IV xof_off;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    HV * xcv_stash;
    OP * xcv_start;
    OP * xcv_root;
    void (*xcv_xsub) (CV* );
    ANY xcv_xsubany;
    GV * xcv_gv;
    GV * xcv_filegv;
    long xcv_depth;
    AV * xcv_padlist;
    CV * xcv_outside;




    cv_flags_t xcv_flags;
};
# 1274 "perl.h" 2
# 1 "opcode.h" 1





typedef enum {
 OP_NULL,
 OP_STUB,
 OP_SCALAR,
 OP_PUSHMARK,
 OP_WANTARRAY,
 OP_CONST,
 OP_GVSV,
 OP_GV,
 OP_GELEM,
 OP_PADSV,
 OP_PADAV,
 OP_PADHV,
 OP_PADANY,
 OP_PUSHRE,
 OP_RV2GV,
 OP_RV2SV,
 OP_AV2ARYLEN,
 OP_RV2CV,
 OP_ANONCODE,
 OP_PROTOTYPE,
 OP_REFGEN,
 OP_SREFGEN,
 OP_REF,
 OP_BLESS,
 OP_BACKTICK,
 OP_GLOB,
 OP_READLINE,
 OP_RCATLINE,
 OP_REGCMAYBE,
 OP_REGCRESET,
 OP_REGCOMP,
 OP_MATCH,
 OP_QR,
 OP_SUBST,
 OP_SUBSTCONT,
 OP_TRANS,
 OP_SASSIGN,
 OP_AASSIGN,
 OP_CHOP,
 OP_SCHOP,
 OP_CHOMP,
 OP_SCHOMP,
 OP_DEFINED,
 OP_UNDEF,
 OP_STUDY,
 OP_POS,
 OP_PREINC,
 OP_I_PREINC,
 OP_PREDEC,
 OP_I_PREDEC,
 OP_POSTINC,
 OP_I_POSTINC,
 OP_POSTDEC,
 OP_I_POSTDEC,
 OP_POW,
 OP_MULTIPLY,
 OP_I_MULTIPLY,
 OP_DIVIDE,
 OP_I_DIVIDE,
 OP_MODULO,
 OP_I_MODULO,
 OP_REPEAT,
 OP_ADD,
 OP_I_ADD,
 OP_SUBTRACT,
 OP_I_SUBTRACT,
 OP_CONCAT,
 OP_STRINGIFY,
 OP_LEFT_SHIFT,
 OP_RIGHT_SHIFT,
 OP_LT,
 OP_I_LT,
 OP_GT,
 OP_I_GT,
 OP_LE,
 OP_I_LE,
 OP_GE,
 OP_I_GE,
 OP_EQ,
 OP_I_EQ,
 OP_NE,
 OP_I_NE,
 OP_NCMP,
 OP_I_NCMP,
 OP_SLT,
 OP_SGT,
 OP_SLE,
 OP_SGE,
 OP_SEQ,
 OP_SNE,
 OP_SCMP,
 OP_BIT_AND,
 OP_BIT_XOR,
 OP_BIT_OR,
 OP_NEGATE,
 OP_I_NEGATE,
 OP_NOT,
 OP_COMPLEMENT,
 OP_ATAN2,
 OP_SIN,
 OP_COS,
 OP_RAND,
 OP_SRAND,
 OP_EXP,
 OP_LOG,
 OP_SQRT,
 OP_INT,
 OP_HEX,
 OP_OCT,
 OP_ABS,
 OP_LENGTH,
 OP_SUBSTR,
 OP_VEC,
 OP_INDEX,
 OP_RINDEX,
 OP_SPRINTF,
 OP_FORMLINE,
 OP_ORD,
 OP_CHR,
 OP_CRYPT,
 OP_UCFIRST,
 OP_LCFIRST,
 OP_UC,
 OP_LC,
 OP_QUOTEMETA,
 OP_RV2AV,
 OP_AELEMFAST,
 OP_AELEM,
 OP_ASLICE,
 OP_EACH,
 OP_VALUES,
 OP_KEYS,
 OP_DELETE,
 OP_EXISTS,
 OP_RV2HV,
 OP_HELEM,
 OP_HSLICE,
 OP_UNPACK,
 OP_PACK,
 OP_SPLIT,
 OP_JOIN,
 OP_LIST,
 OP_LSLICE,
 OP_ANONLIST,
 OP_ANONHASH,
 OP_SPLICE,
 OP_PUSH,
 OP_POP,
 OP_SHIFT,
 OP_UNSHIFT,
 OP_SORT,
 OP_REVERSE,
 OP_GREPSTART,
 OP_GREPWHILE,
 OP_MAPSTART,
 OP_MAPWHILE,
 OP_RANGE,
 OP_FLIP,
 OP_FLOP,
 OP_AND,
 OP_OR,
 OP_XOR,
 OP_COND_EXPR,
 OP_ANDASSIGN,
 OP_ORASSIGN,
 OP_METHOD,
 OP_ENTERSUB,
 OP_LEAVESUB,
 OP_CALLER,
 OP_WARN,
 OP_DIE,
 OP_RESET,
 OP_LINESEQ,
 OP_NEXTSTATE,
 OP_DBSTATE,
 OP_UNSTACK,
 OP_ENTER,
 OP_LEAVE,
 OP_SCOPE,
 OP_ENTERITER,
 OP_ITER,
 OP_ENTERLOOP,
 OP_LEAVELOOP,
 OP_RETURN,
 OP_LAST,
 OP_NEXT,
 OP_REDO,
 OP_DUMP,
 OP_GOTO,
 OP_EXIT,
 OP_OPEN,
 OP_CLOSE,
 OP_PIPE_OP,
 OP_FILENO,
 OP_UMASK,
 OP_BINMODE,
 OP_TIE,
 OP_UNTIE,
 OP_TIED,
 OP_DBMOPEN,
 OP_DBMCLOSE,
 OP_SSELECT,
 OP_SELECT,
 OP_GETC,
 OP_READ,
 OP_ENTERWRITE,
 OP_LEAVEWRITE,
 OP_PRTF,
 OP_PRINT,
 OP_SYSOPEN,
 OP_SYSSEEK,
 OP_SYSREAD,
 OP_SYSWRITE,
 OP_SEND,
 OP_RECV,
 OP_EOF,
 OP_TELL,
 OP_SEEK,
 OP_TRUNCATE,
 OP_FCNTL,
 OP_IOCTL,
 OP_FLOCK,
 OP_SOCKET,
 OP_SOCKPAIR,
 OP_BIND,
 OP_CONNECT,
 OP_LISTEN,
 OP_ACCEPT,
 OP_SHUTDOWN,
 OP_GSOCKOPT,
 OP_SSOCKOPT,
 OP_GETSOCKNAME,
 OP_GETPEERNAME,
 OP_LSTAT,
 OP_STAT,
 OP_FTRREAD,
 OP_FTRWRITE,
 OP_FTREXEC,
 OP_FTEREAD,
 OP_FTEWRITE,
 OP_FTEEXEC,
 OP_FTIS,
 OP_FTEOWNED,
 OP_FTROWNED,
 OP_FTZERO,
 OP_FTSIZE,
 OP_FTMTIME,
 OP_FTATIME,
 OP_FTCTIME,
 OP_FTSOCK,
 OP_FTCHR,
 OP_FTBLK,
 OP_FTFILE,
 OP_FTDIR,
 OP_FTPIPE,
 OP_FTLINK,
 OP_FTSUID,
 OP_FTSGID,
 OP_FTSVTX,
 OP_FTTTY,
 OP_FTTEXT,
 OP_FTBINARY,
 OP_CHDIR,
 OP_CHOWN,
 OP_CHROOT,
 OP_UNLINK,
 OP_CHMOD,
 OP_UTIME,
 OP_RENAME,
 OP_LINK,
 OP_SYMLINK,
 OP_READLINK,
 OP_MKDIR,
 OP_RMDIR,
 OP_OPEN_DIR,
 OP_READDIR,
 OP_TELLDIR,
 OP_SEEKDIR,
 OP_REWINDDIR,
 OP_CLOSEDIR,
 OP_FORK,
 OP_WAIT,
 OP_WAITPID,
 OP_SYSTEM,
 OP_EXEC,
 OP_KILL,
 OP_GETPPID,
 OP_GETPGRP,
 OP_SETPGRP,
 OP_GETPRIORITY,
 OP_SETPRIORITY,
 OP_TIME,
 OP_TMS,
 OP_LOCALTIME,
 OP_GMTIME,
 OP_ALARM,
 OP_SLEEP,
 OP_SHMGET,
 OP_SHMCTL,
 OP_SHMREAD,
 OP_SHMWRITE,
 OP_MSGGET,
 OP_MSGCTL,
 OP_MSGSND,
 OP_MSGRCV,
 OP_SEMGET,
 OP_SEMCTL,
 OP_SEMOP,
 OP_REQUIRE,
 OP_DOFILE,
 OP_ENTEREVAL,
 OP_LEAVEEVAL,
 OP_ENTERTRY,
 OP_LEAVETRY,
 OP_GHBYNAME,
 OP_GHBYADDR,
 OP_GHOSTENT,
 OP_GNBYNAME,
 OP_GNBYADDR,
 OP_GNETENT,
 OP_GPBYNAME,
 OP_GPBYNUMBER,
 OP_GPROTOENT,
 OP_GSBYNAME,
 OP_GSBYPORT,
 OP_GSERVENT,
 OP_SHOSTENT,
 OP_SNETENT,
 OP_SPROTOENT,
 OP_SSERVENT,
 OP_EHOSTENT,
 OP_ENETENT,
 OP_EPROTOENT,
 OP_ESERVENT,
 OP_GPWNAM,
 OP_GPWUID,
 OP_GPWENT,
 OP_SPWENT,
 OP_EPWENT,
 OP_GGRNAM,
 OP_GGRGID,
 OP_GGRENT,
 OP_SGRENT,
 OP_EGRENT,
 OP_GETLOGIN,
 OP_SYSCALL,
 OP_LOCK,
 OP_THREADSV,
 OP_max
} opcode;




extern char *Perl_op_name[];
# 716 "opcode.h"
extern char *Perl_op_desc[];
# 1071 "opcode.h"


OP * Perl_ck_anoncode (OP* o);
OP * Perl_ck_bitop (OP* o);
OP * Perl_ck_concat (OP* o);
OP * Perl_ck_delete (OP* o);
OP * Perl_ck_eof (OP* o);
OP * Perl_ck_eval (OP* o);
OP * Perl_ck_exec (OP* o);
OP * Perl_ck_exists (OP* o);
OP * Perl_ck_ftst (OP* o);
OP * Perl_ck_fun (OP* o);
OP * Perl_ck_fun_locale (OP* o);
OP * Perl_ck_glob (OP* o);
OP * Perl_ck_grep (OP* o);
OP * Perl_ck_index (OP* o);
OP * Perl_ck_lengthconst (OP* o);
OP * Perl_ck_lfun (OP* o);
OP * Perl_ck_listiob (OP* o);
OP * Perl_ck_match (OP* o);
OP * Perl_ck_null (OP* o);
OP * Perl_ck_repeat (OP* o);
OP * Perl_ck_require (OP* o);
OP * Perl_ck_rfun (OP* o);
OP * Perl_ck_rvconst (OP* o);
OP * Perl_ck_scmp (OP* o);
OP * Perl_ck_select (OP* o);
OP * Perl_ck_shift (OP* o);
OP * Perl_ck_sort (OP* o);
OP * Perl_ck_spair (OP* o);
OP * Perl_ck_split (OP* o);
OP * Perl_ck_subr (OP* o);
OP * Perl_ck_svconst (OP* o);
OP * Perl_ck_trunc (OP* o);

OP * Perl_pp_null (void);
OP * Perl_pp_stub (void);
OP * Perl_pp_scalar (void);
OP * Perl_pp_pushmark (void);
OP * Perl_pp_wantarray (void);
OP * Perl_pp_const (void);
OP * Perl_pp_gvsv (void);
OP * Perl_pp_gv (void);
OP * Perl_pp_gelem (void);
OP * Perl_pp_padsv (void);
OP * Perl_pp_padav (void);
OP * Perl_pp_padhv (void);
OP * Perl_pp_padany (void);
OP * Perl_pp_pushre (void);
OP * Perl_pp_rv2gv (void);
OP * Perl_pp_rv2sv (void);
OP * Perl_pp_av2arylen (void);
OP * Perl_pp_rv2cv (void);
OP * Perl_pp_anoncode (void);
OP * Perl_pp_prototype (void);
OP * Perl_pp_refgen (void);
OP * Perl_pp_srefgen (void);
OP * Perl_pp_ref (void);
OP * Perl_pp_bless (void);
OP * Perl_pp_backtick (void);
OP * Perl_pp_glob (void);
OP * Perl_pp_readline (void);
OP * Perl_pp_rcatline (void);
OP * Perl_pp_regcmaybe (void);
OP * Perl_pp_regcreset (void);
OP * Perl_pp_regcomp (void);
OP * Perl_pp_match (void);
OP * Perl_pp_qr (void);
OP * Perl_pp_subst (void);
OP * Perl_pp_substcont (void);
OP * Perl_pp_trans (void);
OP * Perl_pp_sassign (void);
OP * Perl_pp_aassign (void);
OP * Perl_pp_chop (void);
OP * Perl_pp_schop (void);
OP * Perl_pp_chomp (void);
OP * Perl_pp_schomp (void);
OP * Perl_pp_defined (void);
OP * Perl_pp_undef (void);
OP * Perl_pp_study (void);
OP * Perl_pp_pos (void);
OP * Perl_pp_preinc (void);
OP * Perl_pp_preinc (void);
OP * Perl_pp_predec (void);
OP * Perl_pp_predec (void);
OP * Perl_pp_postinc (void);
OP * Perl_pp_postinc (void);
OP * Perl_pp_postdec (void);
OP * Perl_pp_postdec (void);
OP * Perl_pp_pow (void);
OP * Perl_pp_multiply (void);
OP * Perl_pp_i_multiply (void);
OP * Perl_pp_divide (void);
OP * Perl_pp_i_divide (void);
OP * Perl_pp_modulo (void);
OP * Perl_pp_i_modulo (void);
OP * Perl_pp_repeat (void);
OP * Perl_pp_add (void);
OP * Perl_pp_i_add (void);
OP * Perl_pp_subtract (void);
OP * Perl_pp_i_subtract (void);
OP * Perl_pp_concat (void);
OP * Perl_pp_stringify (void);
OP * Perl_pp_left_shift (void);
OP * Perl_pp_right_shift (void);
OP * Perl_pp_lt (void);
OP * Perl_pp_i_lt (void);
OP * Perl_pp_gt (void);
OP * Perl_pp_i_gt (void);
OP * Perl_pp_le (void);
OP * Perl_pp_i_le (void);
OP * Perl_pp_ge (void);
OP * Perl_pp_i_ge (void);
OP * Perl_pp_eq (void);
OP * Perl_pp_i_eq (void);
OP * Perl_pp_ne (void);
OP * Perl_pp_i_ne (void);
OP * Perl_pp_ncmp (void);
OP * Perl_pp_i_ncmp (void);
OP * Perl_pp_slt (void);
OP * Perl_pp_sgt (void);
OP * Perl_pp_sle (void);
OP * Perl_pp_sge (void);
OP * Perl_pp_seq (void);
OP * Perl_pp_sne (void);
OP * Perl_pp_scmp (void);
OP * Perl_pp_bit_and (void);
OP * Perl_pp_bit_xor (void);
OP * Perl_pp_bit_or (void);
OP * Perl_pp_negate (void);
OP * Perl_pp_i_negate (void);
OP * Perl_pp_not (void);
OP * Perl_pp_complement (void);
OP * Perl_pp_atan2 (void);
OP * Perl_pp_sin (void);
OP * Perl_pp_cos (void);
OP * Perl_pp_rand (void);
OP * Perl_pp_srand (void);
OP * Perl_pp_exp (void);
OP * Perl_pp_log (void);
OP * Perl_pp_sqrt (void);
OP * Perl_pp_int (void);
OP * Perl_pp_hex (void);
OP * Perl_pp_oct (void);
OP * Perl_pp_abs (void);
OP * Perl_pp_length (void);
OP * Perl_pp_substr (void);
OP * Perl_pp_vec (void);
OP * Perl_pp_index (void);
OP * Perl_pp_rindex (void);
OP * Perl_pp_sprintf (void);
OP * Perl_pp_formline (void);
OP * Perl_pp_ord (void);
OP * Perl_pp_chr (void);
OP * Perl_pp_crypt (void);
OP * Perl_pp_ucfirst (void);
OP * Perl_pp_lcfirst (void);
OP * Perl_pp_uc (void);
OP * Perl_pp_lc (void);
OP * Perl_pp_quotemeta (void);
OP * Perl_pp_rv2av (void);
OP * Perl_pp_aelemfast (void);
OP * Perl_pp_aelem (void);
OP * Perl_pp_aslice (void);
OP * Perl_pp_each (void);
OP * Perl_pp_values (void);
OP * Perl_pp_keys (void);
OP * Perl_pp_delete (void);
OP * Perl_pp_exists (void);
OP * Perl_pp_rv2hv (void);
OP * Perl_pp_helem (void);
OP * Perl_pp_hslice (void);
OP * Perl_pp_unpack (void);
OP * Perl_pp_pack (void);
OP * Perl_pp_split (void);
OP * Perl_pp_join (void);
OP * Perl_pp_list (void);
OP * Perl_pp_lslice (void);
OP * Perl_pp_anonlist (void);
OP * Perl_pp_anonhash (void);
OP * Perl_pp_splice (void);
OP * Perl_pp_push (void);
OP * Perl_pp_pop (void);
OP * Perl_pp_shift (void);
OP * Perl_pp_unshift (void);
OP * Perl_pp_sort (void);
OP * Perl_pp_reverse (void);
OP * Perl_pp_grepstart (void);
OP * Perl_pp_grepwhile (void);
OP * Perl_pp_mapstart (void);
OP * Perl_pp_mapwhile (void);
OP * Perl_pp_range (void);
OP * Perl_pp_flip (void);
OP * Perl_pp_flop (void);
OP * Perl_pp_and (void);
OP * Perl_pp_or (void);
OP * Perl_pp_xor (void);
OP * Perl_pp_cond_expr (void);
OP * Perl_pp_andassign (void);
OP * Perl_pp_orassign (void);
OP * Perl_pp_method (void);
OP * Perl_pp_entersub (void);
OP * Perl_pp_leavesub (void);
OP * Perl_pp_caller (void);
OP * Perl_pp_warn (void);
OP * Perl_pp_die (void);
OP * Perl_pp_reset (void);
OP * Perl_pp_lineseq (void);
OP * Perl_pp_nextstate (void);
OP * Perl_pp_dbstate (void);
OP * Perl_pp_unstack (void);
OP * Perl_pp_enter (void);
OP * Perl_pp_leave (void);
OP * Perl_pp_scope (void);
OP * Perl_pp_enteriter (void);
OP * Perl_pp_iter (void);
OP * Perl_pp_enterloop (void);
OP * Perl_pp_leaveloop (void);
OP * Perl_pp_return (void);
OP * Perl_pp_last (void);
OP * Perl_pp_next (void);
OP * Perl_pp_redo (void);
OP * Perl_pp_dump (void);
OP * Perl_pp_goto (void);
OP * Perl_pp_exit (void);
OP * Perl_pp_open (void);
OP * Perl_pp_close (void);
OP * Perl_pp_pipe_op (void);
OP * Perl_pp_fileno (void);
OP * Perl_pp_umask (void);
OP * Perl_pp_binmode (void);
OP * Perl_pp_tie (void);
OP * Perl_pp_untie (void);
OP * Perl_pp_tied (void);
OP * Perl_pp_dbmopen (void);
OP * Perl_pp_dbmclose (void);
OP * Perl_pp_sselect (void);
OP * Perl_pp_select (void);
OP * Perl_pp_getc (void);
OP * Perl_pp_read (void);
OP * Perl_pp_enterwrite (void);
OP * Perl_pp_leavewrite (void);
OP * Perl_pp_prtf (void);
OP * Perl_pp_print (void);
OP * Perl_pp_sysopen (void);
OP * Perl_pp_sysseek (void);
OP * Perl_pp_sysread (void);
OP * Perl_pp_syswrite (void);
OP * Perl_pp_send (void);
OP * Perl_pp_recv (void);
OP * Perl_pp_eof (void);
OP * Perl_pp_tell (void);
OP * Perl_pp_seek (void);
OP * Perl_pp_truncate (void);
OP * Perl_pp_fcntl (void);
OP * Perl_pp_ioctl (void);
OP * Perl_pp_flock (void);
OP * Perl_pp_socket (void);
OP * Perl_pp_sockpair (void);
OP * Perl_pp_bind (void);
OP * Perl_pp_connect (void);
OP * Perl_pp_listen (void);
OP * Perl_pp_accept (void);
OP * Perl_pp_shutdown (void);
OP * Perl_pp_gsockopt (void);
OP * Perl_pp_ssockopt (void);
OP * Perl_pp_getsockname (void);
OP * Perl_pp_getpeername (void);
OP * Perl_pp_lstat (void);
OP * Perl_pp_stat (void);
OP * Perl_pp_ftrread (void);
OP * Perl_pp_ftrwrite (void);
OP * Perl_pp_ftrexec (void);
OP * Perl_pp_fteread (void);
OP * Perl_pp_ftewrite (void);
OP * Perl_pp_fteexec (void);
OP * Perl_pp_ftis (void);
OP * Perl_pp_fteowned (void);
OP * Perl_pp_ftrowned (void);
OP * Perl_pp_ftzero (void);
OP * Perl_pp_ftsize (void);
OP * Perl_pp_ftmtime (void);
OP * Perl_pp_ftatime (void);
OP * Perl_pp_ftctime (void);
OP * Perl_pp_ftsock (void);
OP * Perl_pp_ftchr (void);
OP * Perl_pp_ftblk (void);
OP * Perl_pp_ftfile (void);
OP * Perl_pp_ftdir (void);
OP * Perl_pp_ftpipe (void);
OP * Perl_pp_ftlink (void);
OP * Perl_pp_ftsuid (void);
OP * Perl_pp_ftsgid (void);
OP * Perl_pp_ftsvtx (void);
OP * Perl_pp_fttty (void);
OP * Perl_pp_fttext (void);
OP * Perl_pp_ftbinary (void);
OP * Perl_pp_chdir (void);
OP * Perl_pp_chown (void);
OP * Perl_pp_chroot (void);
OP * Perl_pp_unlink (void);
OP * Perl_pp_chmod (void);
OP * Perl_pp_utime (void);
OP * Perl_pp_rename (void);
OP * Perl_pp_link (void);
OP * Perl_pp_symlink (void);
OP * Perl_pp_readlink (void);
OP * Perl_pp_mkdir (void);
OP * Perl_pp_rmdir (void);
OP * Perl_pp_open_dir (void);
OP * Perl_pp_readdir (void);
OP * Perl_pp_telldir (void);
OP * Perl_pp_seekdir (void);
OP * Perl_pp_rewinddir (void);
OP * Perl_pp_closedir (void);
OP * Perl_pp_fork (void);
OP * Perl_pp_wait (void);
OP * Perl_pp_waitpid (void);
OP * Perl_pp_system (void);
OP * Perl_pp_exec (void);
OP * Perl_pp_kill (void);
OP * Perl_pp_getppid (void);
OP * Perl_pp_getpgrp (void);
OP * Perl_pp_setpgrp (void);
OP * Perl_pp_getpriority (void);
OP * Perl_pp_setpriority (void);
OP * Perl_pp_time (void);
OP * Perl_pp_tms (void);
OP * Perl_pp_localtime (void);
OP * Perl_pp_gmtime (void);
OP * Perl_pp_alarm (void);
OP * Perl_pp_sleep (void);
OP * Perl_pp_shmget (void);
OP * Perl_pp_shmctl (void);
OP * Perl_pp_shmread (void);
OP * Perl_pp_shmwrite (void);
OP * Perl_pp_msgget (void);
OP * Perl_pp_msgctl (void);
OP * Perl_pp_msgsnd (void);
OP * Perl_pp_msgrcv (void);
OP * Perl_pp_semget (void);
OP * Perl_pp_semctl (void);
OP * Perl_pp_semop (void);
OP * Perl_pp_require (void);
OP * Perl_pp_dofile (void);
OP * Perl_pp_entereval (void);
OP * Perl_pp_leaveeval (void);
OP * Perl_pp_entertry (void);
OP * Perl_pp_leavetry (void);
OP * Perl_pp_ghbyname (void);
OP * Perl_pp_ghbyaddr (void);
OP * Perl_pp_ghostent (void);
OP * Perl_pp_gnbyname (void);
OP * Perl_pp_gnbyaddr (void);
OP * Perl_pp_gnetent (void);
OP * Perl_pp_gpbyname (void);
OP * Perl_pp_gpbynumber (void);
OP * Perl_pp_gprotoent (void);
OP * Perl_pp_gsbyname (void);
OP * Perl_pp_gsbyport (void);
OP * Perl_pp_gservent (void);
OP * Perl_pp_shostent (void);
OP * Perl_pp_snetent (void);
OP * Perl_pp_sprotoent (void);
OP * Perl_pp_sservent (void);
OP * Perl_pp_ehostent (void);
OP * Perl_pp_enetent (void);
OP * Perl_pp_eprotoent (void);
OP * Perl_pp_eservent (void);
OP * Perl_pp_gpwnam (void);
OP * Perl_pp_gpwuid (void);
OP * Perl_pp_gpwent (void);
OP * Perl_pp_spwent (void);
OP * Perl_pp_epwent (void);
OP * Perl_pp_ggrnam (void);
OP * Perl_pp_ggrgid (void);
OP * Perl_pp_ggrent (void);
OP * Perl_pp_sgrent (void);
OP * Perl_pp_egrent (void);
OP * Perl_pp_getlogin (void);
OP * Perl_pp_syscall (void);
OP * Perl_pp_lock (void);
OP * Perl_pp_threadsv (void);





extern OP * (*Perl_ppaddr[])(void);
# 1816 "opcode.h"
extern OP * (*Perl_check[]) (OP *op);
# 2173 "opcode.h"
extern U32 Perl_opargs[];
# 1275 "perl.h" 2
# 1 "op.h" 1
# 26 "op.h"
typedef U32 PADOFFSET;
# 146 "op.h"
struct op {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
};

struct unop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
};

struct binop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_last;
};

struct logop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_other;
};

struct condop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_true;
    OP * op_false;
};

struct listop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_last;
    U32 op_children;
};

struct pmop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_last;
    U32 op_children;
    OP * op_pmreplroot;
    OP * op_pmreplstart;
    PMOP * op_pmnext;
    REGEXP * op_pmregexp;
    U16 op_pmflags;
    U16 op_pmpermflags;
    U8 op_pmdynflags;
};
# 218 "op.h"
struct svop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    SV * op_sv;
};

struct gvop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    GV * op_gv;
};

struct pvop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    char * op_pv;
};

struct loop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    OP * op_first;
    OP * op_last;
    U32 op_children;
    OP * op_redoop;
    OP * op_nextop;
    OP * op_lastop;
};
# 1276 "perl.h" 2
# 1 "cop.h" 1
# 10 "cop.h"
struct cop {
    OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
    char * cop_label;
    HV * cop_stash;
    GV * cop_filegv;
    U32 cop_seq;
    I32 cop_arybase;
    line_t cop_line;
};
# 27 "cop.h"
struct block_sub {
    CV * cv;
    GV * gv;
    GV * dfoutgv;

    AV * savearray;

    AV * argarray;
    U16 olddepth;
    U8 hasargs;
};
# 86 "cop.h"
struct block_eval {
    I32 old_in_eval;
    I32 old_op_type;
    char * old_name;
    OP * old_eval_root;
    SV * cur_text;
};
# 107 "cop.h"
struct block_loop {
    char * label;
    I32 resetsp;
    OP * redo_op;
    OP * next_op;
    OP * last_op;
    SV ** itervar;
    SV * itersave;
    SV * iterlval;
    AV * iterary;
    IV iterix;
    IV itermax;
};
# 152 "cop.h"
struct block {
    I32 blku_oldsp;
    COP * blku_oldcop;
    I32 blku_oldretsp;
    I32 blku_oldmarksp;
    I32 blku_oldscopesp;
    PMOP * blku_oldpm;
    U8 blku_gimme;

    union {
 struct block_sub blku_sub;
 struct block_eval blku_eval;
 struct block_loop blku_loop;
    } blk_u;
};
# 212 "cop.h"
struct subst {
    I32 sbu_iters;
    I32 sbu_maxiters;
    I32 sbu_safebase;
    I32 sbu_oldsave;
    int sbu_once;
    int sbu_rxtainted;
    char * sbu_orig;
    SV * sbu_dstr;
    SV * sbu_targ;
    char * sbu_s;
    char * sbu_m;
    char * sbu_strend;
    void * sbu_rxres;
    REGEXP * sbu_rx;
};
# 264 "cop.h"
struct context {
    U32 cx_type;
    union {
 struct block cx_blk;
 struct subst cx_subst;
    } cx_u;
};
# 316 "cop.h"
struct stackinfo {
    AV * si_stack;
    PERL_CONTEXT * si_cxstack;
    I32 si_cxix;
    I32 si_cxmax;
    I32 si_type;
    struct stackinfo * si_prev;
    struct stackinfo * si_next;
    I32 * si_markbase;


};

typedef struct stackinfo PERL_SI;
# 1277 "perl.h" 2
# 1 "av.h" 1
# 10 "av.h"
struct xpvav {
    char* xav_array;
    ssize_t xav_fill;
    ssize_t xav_max;
    IV xof_off;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    SV** xav_alloc;
    SV* xav_arylen;
    U8 xav_flags;
};
# 1278 "perl.h" 2
# 1 "hv.h" 1
# 10 "hv.h"
typedef struct he HE;
typedef struct hek HEK;

struct he {
    HE *hent_next;
    HEK *hent_hek;
    SV *hent_val;
};

struct hek {
    U32 hek_hash;
    I32 hek_len;
    char hek_key[1];
};


struct xpvhv {
    char * xhv_array;
    STRLEN xhv_fill;
    STRLEN xhv_max;
    IV xhv_keys;
    double xnv_nv;
    MAGIC* xmg_magic;
    HV* xmg_stash;

    I32 xhv_riter;
    HE *xhv_eiter;
    PMOP *xhv_pmroot;
    char *xhv_name;
};
# 1279 "perl.h" 2
# 1 "mg.h" 1
# 13 "mg.h"
struct mgvtbl {
    int (*svt_get) (SV *sv, MAGIC* mg);
    int (*svt_set) (SV *sv, MAGIC* mg);
    U32 (*svt_len) (SV *sv, MAGIC* mg);
    int (*svt_clear) (SV *sv, MAGIC* mg);
    int (*svt_free) (SV *sv, MAGIC* mg);
};


struct magic {
    MAGIC* mg_moremagic;
    MGVTBL* mg_virtual;
    U16 mg_private;
    char mg_type;
    U8 mg_flags;
    SV* mg_obj;
    char* mg_ptr;
    I32 mg_len;
};
# 1280 "perl.h" 2
# 1 "scope.h" 1
# 131 "scope.h"
struct jmpenv {
    struct jmpenv * je_prev;
    jmp_buf je_buf;
    int je_ret;
    int je_mustcatch;
};

typedef struct jmpenv JMPENV;
# 1281 "perl.h" 2
# 1 "bytecode.h" 1
typedef char *pvcontents;
typedef char *strconst;
typedef U32 PV;
typedef char *op_tr_array;
typedef int comment_t;
typedef SV *svindex;
typedef OP *opindex;
typedef IV IV64;
# 1282 "perl.h" 2
# 1 "byterun.h" 1
# 20 "byterun.h"
void *Perl_bset_obj_store (void *, I32);

enum {
    INSN_RET,
    INSN_LDSV,
    INSN_LDOP,
    INSN_STSV,
    INSN_STOP,
    INSN_LDSPECSV,
    INSN_NEWSV,
    INSN_NEWOP,
    INSN_NEWOPN,
    INSN_NEWPV,
    INSN_NOP,
    INSN_PV_CUR,
    INSN_PV_FREE,
    INSN_SV_UPGRADE,
    INSN_SV_REFCNT,
    INSN_SV_REFCNT_ADD,
    INSN_SV_FLAGS,
    INSN_XRV,
    INSN_XPV,
    INSN_XIV32,
    INSN_XIV64,
    INSN_XNV,
    INSN_XLV_TARGOFF,
    INSN_XLV_TARGLEN,
    INSN_XLV_TARG,
    INSN_XLV_TYPE,
    INSN_XBM_USEFUL,
    INSN_XBM_PREVIOUS,
    INSN_XBM_RARE,
    INSN_XFM_LINES,
    INSN_XIO_LINES,
    INSN_XIO_PAGE,
    INSN_XIO_PAGE_LEN,
    INSN_XIO_LINES_LEFT,
    INSN_XIO_TOP_NAME,
    INSN_COMMENT,
    INSN_XIO_TOP_GV,
    INSN_XIO_FMT_NAME,
    INSN_XIO_FMT_GV,
    INSN_XIO_BOTTOM_NAME,
    INSN_XIO_BOTTOM_GV,
    INSN_XIO_SUBPROCESS,
    INSN_XIO_TYPE,
    INSN_XIO_FLAGS,
    INSN_XCV_STASH,
    INSN_XCV_START,
    INSN_XCV_ROOT,
    INSN_XCV_GV,
    INSN_XCV_FILEGV,
    INSN_XCV_DEPTH,
    INSN_XCV_PADLIST,
    INSN_XCV_OUTSIDE,
    INSN_XCV_FLAGS,
    INSN_AV_EXTEND,
    INSN_AV_PUSH,
    INSN_XAV_FILL,
    INSN_XAV_MAX,
    INSN_XAV_FLAGS,
    INSN_XHV_RITER,
    INSN_XHV_NAME,
    INSN_HV_STORE,
    INSN_SV_MAGIC,
    INSN_MG_OBJ,
    INSN_MG_PRIVATE,
    INSN_MG_FLAGS,
    INSN_MG_PV,
    INSN_XMG_STASH,
    INSN_GV_FETCHPV,
    INSN_GV_STASHPV,
    INSN_GP_SV,
    INSN_GP_REFCNT,
    INSN_GP_REFCNT_ADD,
    INSN_GP_AV,
    INSN_GP_HV,
    INSN_GP_CV,
    INSN_GP_FILEGV,
    INSN_GP_IO,
    INSN_GP_FORM,
    INSN_GP_CVGEN,
    INSN_GP_LINE,
    INSN_GP_SHARE,
    INSN_XGV_FLAGS,
    INSN_OP_NEXT,
    INSN_OP_SIBLING,
    INSN_OP_PPADDR,
    INSN_OP_TARG,
    INSN_OP_TYPE,
    INSN_OP_SEQ,
    INSN_OP_FLAGS,
    INSN_OP_PRIVATE,
    INSN_OP_FIRST,
    INSN_OP_LAST,
    INSN_OP_OTHER,
    INSN_OP_TRUE,
    INSN_OP_FALSE,
    INSN_OP_CHILDREN,
    INSN_OP_PMREPLROOT,
    INSN_OP_PMREPLROOTGV,
    INSN_OP_PMREPLSTART,
    INSN_OP_PMNEXT,
    INSN_PREGCOMP,
    INSN_OP_PMFLAGS,
    INSN_OP_PMPERMFLAGS,
    INSN_OP_SV,
    INSN_OP_GV,
    INSN_OP_PV,
    INSN_OP_PV_TR,
    INSN_OP_REDOOP,
    INSN_OP_NEXTOP,
    INSN_OP_LASTOP,
    INSN_COP_LABEL,
    INSN_COP_STASH,
    INSN_COP_FILEGV,
    INSN_COP_SEQ,
    INSN_COP_ARYBASE,
    INSN_COP_LINE,
    INSN_MAIN_START,
    INSN_MAIN_ROOT,
    INSN_CURPAD,
    MAX_INSN = 118
};

enum {
    OPt_OP,
    OPt_UNOP,
    OPt_BINOP,
    OPt_LOGOP,
    OPt_CONDOP,
    OPt_LISTOP,
    OPt_PMOP,
    OPt_SVOP,
    OPt_GVOP,
    OPt_PVOP,
    OPt_LOOP,
    OPt_COP
};

extern int optype_size[]
# 177 "byterun.h"
;
# 1283 "perl.h" 2


typedef struct curcur CURCUR;
struct curcur {
    int parenfloor;
    int cur;
    int min;
    int max;
    int minmod;
    regnode * scan;
    regnode * next;
    char * lastloc;
    CURCUR * oldcc;
};

typedef struct _sublex_info SUBLEXINFO;
struct _sublex_info {
    I32 super_state;
    I32 sub_inwhat;
    OP *sub_op;
};
# 1414 "perl.h"
 U32 Perl_cast_ulong (double);
# 1425 "perl.h"

I32 cast_i32 (double);
IV cast_iv (double);
UV cast_uv (double);






struct Outrec {
    I32 o_lines;
    char *o_str;
    U32 o_len;
};
# 1450 "perl.h"
uid_t getuid (void);
uid_t geteuid (void);
gid_t getgid (void);
gid_t getegid (void);
# 1517 "perl.h"
struct ufuncs {
    I32 (*uf_val)(IV, SV*);
    I32 (*uf_set)(IV, SV*);
    IV uf_index;
};



char *mktemp (char*);
double atof (const char*);
# 1544 "perl.h"
# 1 "/usr/include/math.h" 1 3 4
# 29 "/usr/include/math.h" 3 4




# 1 "/usr/include/bits/huge_val.h" 1 3 4
# 34 "/usr/include/math.h" 2 3 4






# 1 "/usr/include/bits/mathdef.h" 1 3 4
# 41 "/usr/include/math.h" 2 3 4
# 63 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern double acos (double __x) ; extern double __acos (double __x) ;

extern double asin (double __x) ; extern double __asin (double __x) ;

extern double atan (double __x) ; extern double __atan (double __x) ;

extern double atan2 (double __y, double __x) ; extern double __atan2 (double __y, double __x) ;


extern double cos (double __x) ; extern double __cos (double __x) ;

extern double sin (double __x) ; extern double __sin (double __x) ;

extern double tan (double __x) ; extern double __tan (double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern double cosh (double __x) ; extern double __cosh (double __x) ;

extern double sinh (double __x) ; extern double __sinh (double __x) ;

extern double tanh (double __x) ; extern double __tanh (double __x) ;



extern double acosh (double __x) ; extern double __acosh (double __x) ;

extern double asinh (double __x) ; extern double __asinh (double __x) ;

extern double atanh (double __x) ; extern double __atanh (double __x) ;





extern double exp (double __x) ; extern double __exp (double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern double frexp (double __x, int *__exponent) ; extern double __frexp (double __x, int *__exponent) ;


extern double ldexp (double __x, int __exponent) ; extern double __ldexp (double __x, int __exponent) ;


extern double log (double __x) ; extern double __log (double __x) ;


extern double log10 (double __x) ; extern double __log10 (double __x) ;


extern double modf (double __x, double *__iptr) ; extern double __modf (double __x, double *__iptr) ;



extern double expm1 (double __x) ; extern double __expm1 (double __x) ;


extern double log1p (double __x) ; extern double __log1p (double __x) ;


extern double logb (double __x) ; extern double __logb (double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern double pow (double __x, double __y) ; extern double __pow (double __x, double __y) ;


extern double sqrt (double __x) ; extern double __sqrt (double __x) ;



extern double hypot (double __x, double __y) ; extern double __hypot (double __x, double __y) ;




extern double cbrt (double __x) ; extern double __cbrt (double __x) ;






extern double ceil (double __x) ; extern double __ceil (double __x) ;


extern double fabs (double __x) ; extern double __fabs (double __x) ;


extern double floor (double __x) ; extern double __floor (double __x) ;


extern double fmod (double __x, double __y) ; extern double __fmod (double __x, double __y) ;




extern int __isinf (double __value) ;


extern int __finite (double __value) ;




extern int isinf (double __value) ;


extern int finite (double __value) ;


extern double drem (double __x, double __y) ; extern double __drem (double __x, double __y) ;



extern double significand (double __x) ; extern double __significand (double __x) ;




extern double copysign (double __x, double __y) ; extern double __copysign (double __x, double __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnan (double __value) ;



extern int isnan (double __value) ;


extern double j0 (double) ; extern double __j0 (double) ;
extern double j1 (double) ; extern double __j1 (double) ;
extern double jn (int, double) ; extern double __jn (int, double) ;
extern double y0 (double) ; extern double __y0 (double) ;
extern double y1 (double) ; extern double __y1 (double) ;
extern double yn (int, double) ; extern double __yn (int, double) ;





extern double erf (double) ; extern double __erf (double) ;
extern double erfc (double) ; extern double __erfc (double) ;
extern double lgamma (double) ; extern double __lgamma (double) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern double gamma (double) ; extern double __gamma (double) ;






extern double lgamma_r (double, int *__signgamp) ; extern double __lgamma_r (double, int *__signgamp) ;






extern double rint (double __x) ; extern double __rint (double __x) ;


extern double nextafter (double __x, double __y) ; extern double __nextafter (double __x, double __y) ;





extern double remainder (double __x, double __y) ; extern double __remainder (double __x, double __y) ;



extern double scalb (double __x, double __n) ; extern double __scalb (double __x, double __n) ;




extern double scalbn (double __x, int __n) ; extern double __scalbn (double __x, int __n) ;



extern int ilogb (double __x) ; extern int __ilogb (double __x) ;
# 64 "/usr/include/math.h" 2 3 4
# 82 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern float acosf (float __x) ; extern float __acosf (float __x) ;

extern float asinf (float __x) ; extern float __asinf (float __x) ;

extern float atanf (float __x) ; extern float __atanf (float __x) ;

extern float atan2f (float __y, float __x) ; extern float __atan2f (float __y, float __x) ;


extern float cosf (float __x) ; extern float __cosf (float __x) ;

extern float sinf (float __x) ; extern float __sinf (float __x) ;

extern float tanf (float __x) ; extern float __tanf (float __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern float coshf (float __x) ; extern float __coshf (float __x) ;

extern float sinhf (float __x) ; extern float __sinhf (float __x) ;

extern float tanhf (float __x) ; extern float __tanhf (float __x) ;



extern float acoshf (float __x) ; extern float __acoshf (float __x) ;

extern float asinhf (float __x) ; extern float __asinhf (float __x) ;

extern float atanhf (float __x) ; extern float __atanhf (float __x) ;





extern float expf (float __x) ; extern float __expf (float __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern float frexpf (float __x, int *__exponent) ; extern float __frexpf (float __x, int *__exponent) ;


extern float ldexpf (float __x, int __exponent) ; extern float __ldexpf (float __x, int __exponent) ;


extern float logf (float __x) ; extern float __logf (float __x) ;


extern float log10f (float __x) ; extern float __log10f (float __x) ;


extern float modff (float __x, float *__iptr) ; extern float __modff (float __x, float *__iptr) ;



extern float expm1f (float __x) ; extern float __expm1f (float __x) ;


extern float log1pf (float __x) ; extern float __log1pf (float __x) ;


extern float logbf (float __x) ; extern float __logbf (float __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern float powf (float __x, float __y) ; extern float __powf (float __x, float __y) ;


extern float sqrtf (float __x) ; extern float __sqrtf (float __x) ;



extern float hypotf (float __x, float __y) ; extern float __hypotf (float __x, float __y) ;




extern float cbrtf (float __x) ; extern float __cbrtf (float __x) ;






extern float ceilf (float __x) ; extern float __ceilf (float __x) ;


extern float fabsf (float __x) ; extern float __fabsf (float __x) ;


extern float floorf (float __x) ; extern float __floorf (float __x) ;


extern float fmodf (float __x, float __y) ; extern float __fmodf (float __x, float __y) ;




extern int __isinff (float __value) ;


extern int __finitef (float __value) ;




extern int isinff (float __value) ;


extern int finitef (float __value) ;


extern float dremf (float __x, float __y) ; extern float __dremf (float __x, float __y) ;



extern float significandf (float __x) ; extern float __significandf (float __x) ;




extern float copysignf (float __x, float __y) ; extern float __copysignf (float __x, float __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnanf (float __value) ;



extern int isnanf (float __value) ;


extern float j0f (float) ; extern float __j0f (float) ;
extern float j1f (float) ; extern float __j1f (float) ;
extern float jnf (int, float) ; extern float __jnf (int, float) ;
extern float y0f (float) ; extern float __y0f (float) ;
extern float y1f (float) ; extern float __y1f (float) ;
extern float ynf (int, float) ; extern float __ynf (int, float) ;





extern float erff (float) ; extern float __erff (float) ;
extern float erfcf (float) ; extern float __erfcf (float) ;
extern float lgammaf (float) ; extern float __lgammaf (float) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern float gammaf (float) ; extern float __gammaf (float) ;






extern float lgammaf_r (float, int *__signgamp) ; extern float __lgammaf_r (float, int *__signgamp) ;






extern float rintf (float __x) ; extern float __rintf (float __x) ;


extern float nextafterf (float __x, float __y) ; extern float __nextafterf (float __x, float __y) ;





extern float remainderf (float __x, float __y) ; extern float __remainderf (float __x, float __y) ;



extern float scalbf (float __x, float __n) ; extern float __scalbf (float __x, float __n) ;




extern float scalbnf (float __x, int __n) ; extern float __scalbnf (float __x, int __n) ;



extern int ilogbf (float __x) ; extern int __ilogbf (float __x) ;
# 83 "/usr/include/math.h" 2 3 4
# 99 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern long double acosl (long double __x) ; extern long double __acosl (long double __x) ;

extern long double asinl (long double __x) ; extern long double __asinl (long double __x) ;

extern long double atanl (long double __x) ; extern long double __atanl (long double __x) ;

extern long double atan2l (long double __y, long double __x) ; extern long double __atan2l (long double __y, long double __x) ;


extern long double cosl (long double __x) ; extern long double __cosl (long double __x) ;

extern long double sinl (long double __x) ; extern long double __sinl (long double __x) ;

extern long double tanl (long double __x) ; extern long double __tanl (long double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern long double coshl (long double __x) ; extern long double __coshl (long double __x) ;

extern long double sinhl (long double __x) ; extern long double __sinhl (long double __x) ;

extern long double tanhl (long double __x) ; extern long double __tanhl (long double __x) ;



extern long double acoshl (long double __x) ; extern long double __acoshl (long double __x) ;

extern long double asinhl (long double __x) ; extern long double __asinhl (long double __x) ;

extern long double atanhl (long double __x) ; extern long double __atanhl (long double __x) ;





extern long double expl (long double __x) ; extern long double __expl (long double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern long double frexpl (long double __x, int *__exponent) ; extern long double __frexpl (long double __x, int *__exponent) ;


extern long double ldexpl (long double __x, int __exponent) ; extern long double __ldexpl (long double __x, int __exponent) ;


extern long double logl (long double __x) ; extern long double __logl (long double __x) ;


extern long double log10l (long double __x) ; extern long double __log10l (long double __x) ;


extern long double modfl (long double __x, long double *__iptr) ; extern long double __modfl (long double __x, long double *__iptr) ;



extern long double expm1l (long double __x) ; extern long double __expm1l (long double __x) ;


extern long double log1pl (long double __x) ; extern long double __log1pl (long double __x) ;


extern long double logbl (long double __x) ; extern long double __logbl (long double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern long double powl (long double __x, long double __y) ; extern long double __powl (long double __x, long double __y) ;


extern long double sqrtl (long double __x) ; extern long double __sqrtl (long double __x) ;



extern long double hypotl (long double __x, long double __y) ; extern long double __hypotl (long double __x, long double __y) ;




extern long double cbrtl (long double __x) ; extern long double __cbrtl (long double __x) ;






extern long double ceill (long double __x) ; extern long double __ceill (long double __x) ;


extern long double fabsl (long double __x) ; extern long double __fabsl (long double __x) ;


extern long double floorl (long double __x) ; extern long double __floorl (long double __x) ;


extern long double fmodl (long double __x, long double __y) ; extern long double __fmodl (long double __x, long double __y) ;




extern int __isinfl (long double __value) ;


extern int __finitel (long double __value) ;




extern int isinfl (long double __value) ;


extern int finitel (long double __value) ;


extern long double dreml (long double __x, long double __y) ; extern long double __dreml (long double __x, long double __y) ;



extern long double significandl (long double __x) ; extern long double __significandl (long double __x) ;




extern long double copysignl (long double __x, long double __y) ; extern long double __copysignl (long double __x, long double __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnanl (long double __value) ;



extern int isnanl (long double __value) ;


extern long double j0l (long double) ; extern long double __j0l (long double) ;
extern long double j1l (long double) ; extern long double __j1l (long double) ;
extern long double jnl (int, long double) ; extern long double __jnl (int, long double) ;
extern long double y0l (long double) ; extern long double __y0l (long double) ;
extern long double y1l (long double) ; extern long double __y1l (long double) ;
extern long double ynl (int, long double) ; extern long double __ynl (int, long double) ;





extern long double erfl (long double) ; extern long double __erfl (long double) ;
extern long double erfcl (long double) ; extern long double __erfcl (long double) ;
extern long double lgammal (long double) ; extern long double __lgammal (long double) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern long double gammal (long double) ; extern long double __gammal (long double) ;






extern long double lgammal_r (long double, int *__signgamp) ; extern long double __lgammal_r (long double, int *__signgamp) ;






extern long double rintl (long double __x) ; extern long double __rintl (long double __x) ;


extern long double nextafterl (long double __x, long double __y) ; extern long double __nextafterl (long double __x, long double __y) ;





extern long double remainderl (long double __x, long double __y) ; extern long double __remainderl (long double __x, long double __y) ;



extern long double scalbl (long double __x, long double __n) ; extern long double __scalbl (long double __x, long double __n) ;




extern long double scalbnl (long double __x, int __n) ; extern long double __scalbnl (long double __x, int __n) ;



extern int ilogbl (long double __x) ; extern int __ilogbl (long double __x) ;
# 100 "/usr/include/math.h" 2 3 4
# 113 "/usr/include/math.h" 3 4
extern int signgam;
# 240 "/usr/include/math.h" 3 4
typedef enum
{
  _IEEE_ = -1,
  _SVID_,
  _XOPEN_,
  _POSIX_,
  _ISOC_
} _LIB_VERSION_TYPE;




extern _LIB_VERSION_TYPE _LIB_VERSION;
# 265 "/usr/include/math.h" 3 4
struct exception

  {
    int type;
    char *name;
    double arg1;
    double arg2;
    double retval;
  };




extern int matherr (struct exception *__exc);
# 350 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathinline.h" 1 3 4
# 291 "/usr/include/bits/mathinline.h" 3 4
extern __inline double __sgn (double) ; extern __inline double __sgn (double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline float __sgnf (float) ; extern __inline float __sgnf (float __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline long double __sgnl (long double) ; extern __inline long double __sgnl (long double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); }
# 425 "/usr/include/bits/mathinline.h" 3 4
extern __inline double atan2 (double __y, double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline float atan2f (float __y, float __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline long double atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }
extern __inline long double __atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }


extern __inline double fmod (double __x, double __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline float fmodf (float __x, float __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline long double fmodl (long double __x, long double __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; }
# 440 "/usr/include/bits/mathinline.h" 3 4
extern __inline double sqrt (double __x) { register double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline float sqrtf (float __x) { register float __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline long double sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }
extern __inline long double __sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }


extern __inline double fabs (double __x) { return __builtin_fabs (__x); }
extern __inline float fabsf (float __x) { return __builtin_fabsf (__x); }
extern __inline long double fabsl (long double __x) { return __builtin_fabsl (__x); }
extern __inline long double __fabsl (long double __x) { return __builtin_fabsl (__x); }
# 466 "/usr/include/bits/mathinline.h" 3 4
extern __inline double atan (double __x) { register double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline float atanf (float __x) { register float __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline long double atanl (long double __x) { register long double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; }

extern __inline long double __sgn1l (long double) ; extern __inline long double __sgn1l (long double __x) { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; }
# 492 "/usr/include/bits/mathinline.h" 3 4
extern __inline double floor (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float floorf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double floorl (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 503 "/usr/include/bits/mathinline.h" 3 4
extern __inline double ceil (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float ceilf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double ceill (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 521 "/usr/include/bits/mathinline.h" 3 4
extern __inline double
ldexp (double __x, int __y)
{
  register long double __value; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__x), "u" ((long double) __y)); return __value;
}
# 539 "/usr/include/bits/mathinline.h" 3 4
extern __inline double log1p (double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline float log1pf (float __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline long double log1pl (long double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; }
# 553 "/usr/include/bits/mathinline.h" 3 4
extern __inline double asinh (double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline float asinhf (float __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline long double asinhl (long double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); }




extern __inline double acosh (double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline float acoshf (float __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline long double acoshl (long double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); }


extern __inline double atanh (double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline float atanhf (float __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline long double atanhl (long double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); }




extern __inline double hypot (double __x, double __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline float hypotf (float __x, float __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline long double hypotl (long double __x, long double __y) { return __sqrtl (__x * __x + __y * __y); }

extern __inline double logb (double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline float logbf (float __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline long double logbl (long double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; }
# 652 "/usr/include/bits/mathinline.h" 3 4
extern __inline double drem (double __x, double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline float dremf (float __x, float __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline long double dreml (long double __x, long double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; }
# 665 "/usr/include/bits/mathinline.h" 3 4
extern __inline int
__finite (double __x)
{
  return (__extension__
   (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1]
      | 0x800fffffu) + 1) >> 31));
}
# 351 "/usr/include/math.h" 2 3 4
# 411 "/usr/include/math.h" 3 4

# 1545 "perl.h" 2
# 1566 "perl.h"
char *crypt (const char*, const char*);




char *getenv (const char*);

off_t lseek (int,off_t,int);

char *getlogin (void);
# 1598 "perl.h"
typedef void (*Sighandler_t) (int);




typedef Sighandler_t Sigsave_t;
# 1650 "perl.h"
typedef int runops_proc_t (void);
int Perl_runops_standard (void);
# 1665 "perl.h"
extern char ** environ;
# 1678 "perl.h"
extern int * Perl_di;
extern short * Perl_ds;
extern char * Perl_dc;


extern const char Perl_warn_uninit[]
  ;
extern const char Perl_warn_nosemi[]
  ;
extern const char Perl_warn_reserved[]
  ;
extern const char Perl_warn_nl[]
  ;
extern const char Perl_no_wrongref[]
  ;
extern const char Perl_no_symref[]
  ;
extern const char Perl_no_usym[]
  ;
extern const char Perl_no_aelem[]
  ;
extern const char Perl_no_helem[]
  ;
extern const char Perl_no_modify[]
  ;
extern const char Perl_no_mem[]
  ;
extern const char Perl_no_security[]
  ;
extern const char Perl_no_sock_func[]
  ;
extern const char Perl_no_dir_func[]
  ;
extern const char Perl_no_func[]
  ;
extern const char Perl_no_myglob[]
  ;







extern char *Perl_sig_name[];
extern int Perl_sig_num[];
extern SV * Perl_psig_ptr[];
extern SV * Perl_psig_name[];
# 1803 "perl.h"
extern const unsigned char Perl_fold[];
# 1842 "perl.h"
extern unsigned char Perl_fold_locale[];
# 1918 "perl.h"
extern const unsigned char Perl_freq[];
# 1941 "perl.h"
# 1 "perly.h" 1
# 59 "perly.h"
typedef union {
    I32 ival;
    char *pval;
    OP *opval;
    GV *gvval;
} YYSTYPE;
extern YYSTYPE Perl_yylval;
# 1942 "perl.h" 2



typedef enum {
    XOPERATOR,
    XTERM,
    XREF,
    XSTATE,
    XBLOCK,
    XTERMBLOCK
} expectation;

enum {
    want_vtbl_sv,
    want_vtbl_env,
    want_vtbl_envelem,
    want_vtbl_sig,
    want_vtbl_sigelem,
    want_vtbl_pack,
    want_vtbl_packelem,
    want_vtbl_dbline,
    want_vtbl_isa,
    want_vtbl_isaelem,
    want_vtbl_arylen,
    want_vtbl_glob,
    want_vtbl_mglob,
    want_vtbl_nkeys,
    want_vtbl_taint,
    want_vtbl_substr,
    want_vtbl_vec,
    want_vtbl_pos,
    want_vtbl_bm,
    want_vtbl_fm,
    want_vtbl_uvar,
    want_vtbl_defelem,
    want_vtbl_regexp,
    want_vtbl_collxfrm,
    want_vtbl_amagic,
    want_vtbl_amagicelem




};
# 2022 "perl.h"
typedef regexp*(*regcomp_t) (char* exp, char* xend, PMOP* pm);
typedef I32 (*regexec_t) (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
# 2035 "perl.h"
typedef struct exitlistentry {



    void (*fn) (void*);

    void *ptr;
} PerlExitListEntry;
# 2094 "perl.h"
struct interpreter {
    char broiled;
};
# 2112 "perl.h"
typedef void *Thread;







# 1 "thread.h" 1
# 2121 "perl.h" 2
# 1 "pp.h" 1
# 2122 "perl.h" 2
# 1 "proto.h" 1
# 9 "proto.h"

# 26 "proto.h"
 SV* Perl_amagic_call (SV* left,SV* right,int method,int dir);
 int Perl_Gv_AMupdate (HV* stash);

 OP* Perl_append_elem (I32 optype, OP* head, OP* tail);
 OP* Perl_append_list (I32 optype, LISTOP* first, LISTOP* last);
 I32 Perl_apply (I32 type, SV** mark, SV** sp);
 void Perl_assertref (OP* o);
 int Perl_avhv_exists_ent (AV *ar, SV* keysv, U32 hash);
 SV** Perl_avhv_fetch_ent (AV *ar, SV* keysv, I32 lval, U32 hash);
 HE* Perl_avhv_iternext (AV *ar);
 SV* Perl_avhv_iterval (AV *ar, HE* entry);
 HV* Perl_avhv_keys (AV *ar);
 void Perl_av_clear (AV* ar);
 void Perl_av_extend (AV* ar, I32 key);
 AV* Perl_av_fake (I32 size, SV** svp);
 SV** Perl_av_fetch (AV* ar, I32 key, I32 lval);
 void Perl_av_fill (AV* ar, I32 fill);
 I32 Perl_av_len (AV* ar);
 AV* Perl_av_make (I32 size, SV** svp);
 SV* Perl_av_pop (AV* ar);
 void Perl_av_push (AV* ar, SV* val);
 void Perl_av_reify (AV* ar);
 SV* Perl_av_shift (AV* ar);
 SV** Perl_av_store (AV* ar, I32 key, SV* val);
 void Perl_av_undef (AV* ar);
 void Perl_av_unshift (AV* ar, I32 num);
 OP* Perl_bind_match (I32 type, OP* left, OP* pat);
 OP* Perl_block_end (I32 floor, OP* seq);
 I32 Perl_block_gimme (void);
 int Perl_block_start (int full);
 void Perl_boot_core_UNIVERSAL (void);
 void Perl_call_list (I32 oldscope, AV* av_list);
 I32 Perl_cando (I32 bit, I32 effective, struct stat* statbufp);

 U32 Perl_cast_ulong (double f);




 OP* Perl_ck_gvconst (OP* o);
 OP* Perl_ck_retarget (OP* o);



 OP* Perl_convert (I32 optype, I32 flags, OP* o);
 void Perl_croak (const char* pat,...) ;
 void Perl_cv_ckproto (CV* cv, GV* gv, char* p);
 CV* Perl_cv_clone (CV* proto);
 SV* Perl_cv_const_sv (CV* cv);
 SV* Perl_op_const_sv (OP* o, CV* cv);
 void Perl_cv_undef (CV* cv);
 void Perl_cx_dump (PERL_CONTEXT* cs);
 SV* Perl_filter_add (filter_t funcp, SV* datasv);
 void Perl_filter_del (filter_t funcp);
 I32 Perl_filter_read (int idx, SV* buffer, int maxlen);
 char ** Perl_get_op_descs (void);
 char ** Perl_get_op_names (void);
 char * Perl_get_no_modify (void);
 U32 * Perl_get_opargs (void);
 I32 Perl_cxinc (void);
 void Perl_deb (const char* pat,...);
 void Perl_deb_growlevel (void);
 void Perl_debprofdump (void);
 I32 Perl_debop (OP* o);
 I32 Perl_debstack (void);
 I32 Perl_debstackptrs (void);
 char* Perl_delimcpy (char* to, char* toend, char* from, char* fromend, int delim, I32* retlen);

 void Perl_deprecate (char* s);
 OP* Perl_die (const char* pat,...);
 OP* Perl_die_where (char* message);
 void Perl_dounwind (I32 cxix);
 int Perl_do_aexec (SV* really, SV** mark, SV** sp);
 int Perl_do_binmode (FILE *fp, int iotype, int flag);
 void Perl_do_chop (SV* asv, SV* sv);
 int Perl_do_close (GV* gv, int not_implicit);
 int Perl_do_eof (GV* gv);
 int Perl_do_exec (char* cmd);
 void Perl_do_execfree (void);




 void Perl_do_join (SV* sv, SV* del, SV** mark, SV** sp);
 OP* Perl_do_kv (void);




 int Perl_do_open (GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, FILE* supplied_fp);

 void Perl_do_pipe (SV* sv, GV* rgv, GV* wgv);
 int Perl_do_print (SV* sv, FILE* fp);
 OP* Perl_do_readline (void);
 I32 Perl_do_chomp (SV* sv);
 int Perl_do_seek (GV* gv, long pos, int whence);




 void Perl_do_sprintf (SV* sv, I32 len, SV** sarg);
 long Perl_do_sysseek (GV* gv, long pos, int whence);
 long Perl_do_tell (GV* gv);
 I32 Perl_do_trans (SV* sv, OP* arg);
 void Perl_do_vecset (SV* sv);
 void Perl_do_vop (I32 optype, SV* sv, SV* left, SV* right);
 I32 Perl_dowantarray (void);
 void Perl_dump_all (void);
 void Perl_dump_eval (void);



 void Perl_dump_form (GV* gv);
 void Perl_dump_gv (GV* gv);



 void Perl_dump_op (OP* arg);
 void Perl_dump_pm (PMOP* pm);
 void Perl_dump_packsubs (HV* stash);
 void Perl_dump_sub (GV* gv);
 void Perl_fbm_compile (SV* sv, U32 flags);
 char* Perl_fbm_instr (unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags);
 char* Perl_find_script (char *scriptname, int dosearch, char **search_ext, I32 flags);



 OP* Perl_force_list (OP* arg);
 OP* Perl_fold_constants (OP* arg);
 char* Perl_form (const char* pat, ...);
 void Perl_free_tmps (void);
 OP* Perl_gen_constant_list (OP* o);
 void Perl_gp_free (GV* gv);
 GP* Perl_gp_ref (GP* gp);
 GV* Perl_gv_AVadd (GV* gv);
 GV* Perl_gv_HVadd (GV* gv);
 GV* Perl_gv_IOadd (GV* gv);
 GV* Perl_gv_autoload4 (HV* stash, char* name, STRLEN len, I32 method);
 void Perl_gv_check (HV* stash);
 void Perl_gv_efullname (SV* sv, GV* gv);
 void Perl_gv_efullname3 (SV* sv, GV* gv, char* prefix);
 GV* Perl_gv_fetchfile (char* name);
 GV* Perl_gv_fetchmeth (HV* stash, char* name, STRLEN len, I32 level);
 GV* Perl_gv_fetchmethod (HV* stash, char* name);
 GV* Perl_gv_fetchmethod_autoload (HV* stash, char* name, I32 autoload);
 GV* Perl_gv_fetchpv (char* name, I32 add, I32 sv_type);
 void Perl_gv_fullname (SV* sv, GV* gv);
 void Perl_gv_fullname3 (SV* sv, GV* gv, char* prefix);
 void Perl_gv_init (GV* gv, HV* stash, char* name, STRLEN len, int multi);
 HV* Perl_gv_stashpv (char* name, I32 create);
 HV* Perl_gv_stashpvn (char* name, U32 namelen, I32 create);
 HV* Perl_gv_stashsv (SV* sv, I32 create);
 void Perl_hv_clear (HV* tb);
 void Perl_hv_delayfree_ent (HV* hv, HE* entry);
 SV* Perl_hv_delete (HV* tb, char* key, U32 klen, I32 flags);
 SV* Perl_hv_delete_ent (HV* tb, SV* key, I32 flags, U32 hash);
 int Perl_hv_exists (HV* tb, char* key, U32 klen);
 int Perl_hv_exists_ent (HV* tb, SV* key, U32 hash);
 SV** Perl_hv_fetch (HV* tb, char* key, U32 klen, I32 lval);
 HE* Perl_hv_fetch_ent (HV* tb, SV* key, I32 lval, U32 hash);
 void Perl_hv_free_ent (HV* hv, HE* entry);
 I32 Perl_hv_iterinit (HV* tb);
 char* Perl_hv_iterkey (HE* entry, I32* retlen);
 SV* Perl_hv_iterkeysv (HE* entry);
 HE* Perl_hv_iternext (HV* tb);
 SV* Perl_hv_iternextsv (HV* hv, char** key, I32* retlen);
 SV* Perl_hv_iterval (HV* tb, HE* entry);
 void Perl_hv_ksplit (HV* hv, IV newmax);
 void Perl_hv_magic (HV* hv, GV* gv, int how);
 SV** Perl_hv_store (HV* tb, char* key, U32 klen, SV* val, U32 hash);
 HE* Perl_hv_store_ent (HV* tb, SV* key, SV* val, U32 hash);
 void Perl_hv_undef (HV* tb);
 I32 Perl_ibcmp (char* a, char* b, I32 len);
 I32 Perl_ibcmp_locale (char* a, char* b, I32 len);
 I32 Perl_ingroup (I32 testgid, I32 effective);
 void Perl_init_stacks (void);
 U32 Perl_intro_my (void);
 char* Perl_instr (char* big, char* little);
 int Perl_io_close (IO* io);
 OP* Perl_invert (OP* cmd);
 OP* Perl_jmaybe (OP* arg);
 I32 Perl_keyword (char* d, I32 len);
 void Perl_leave_scope (I32 base);
 void Perl_lex_end (void);
 void Perl_lex_start (SV* line);
 OP* Perl_linklist (OP* o);
 OP* Perl_list (OP* o);
 OP* Perl_listkids (OP* o);
 OP* Perl_localize (OP* arg, I32 lexical);
 I32 Perl_looks_like_number (SV* sv);
 int Perl_magic_clearenv (SV* sv, MAGIC* mg);
 int Perl_magic_clear_all_env (SV* sv, MAGIC* mg);
 int Perl_magic_clearpack (SV* sv, MAGIC* mg);
 int Perl_magic_clearsig (SV* sv, MAGIC* mg);
 int Perl_magic_existspack (SV* sv, MAGIC* mg);
 int Perl_magic_freeregexp (SV* sv, MAGIC* mg);
 int Perl_magic_get (SV* sv, MAGIC* mg);
 int Perl_magic_getarylen (SV* sv, MAGIC* mg);
 int Perl_magic_getdefelem (SV* sv, MAGIC* mg);
 int Perl_magic_getglob (SV* sv, MAGIC* mg);
 int Perl_magic_getnkeys (SV* sv, MAGIC* mg);
 int Perl_magic_getpack (SV* sv, MAGIC* mg);
 int Perl_magic_getpos (SV* sv, MAGIC* mg);
 int Perl_magic_getsig (SV* sv, MAGIC* mg);
 int Perl_magic_getsubstr (SV* sv, MAGIC* mg);
 int Perl_magic_gettaint (SV* sv, MAGIC* mg);
 int Perl_magic_getuvar (SV* sv, MAGIC* mg);
 int Perl_magic_getvec (SV* sv, MAGIC* mg);
 U32 Perl_magic_len (SV* sv, MAGIC* mg);



 int Perl_magic_nextpack (SV* sv, MAGIC* mg, SV* key);
 int Perl_magic_set (SV* sv, MAGIC* mg);

 int Perl_magic_setamagic (SV* sv, MAGIC* mg);

 int Perl_magic_setarylen (SV* sv, MAGIC* mg);
 int Perl_magic_setbm (SV* sv, MAGIC* mg);
 int Perl_magic_setdbline (SV* sv, MAGIC* mg);



 int Perl_magic_setdefelem (SV* sv, MAGIC* mg);
 int Perl_magic_setenv (SV* sv, MAGIC* mg);
 int Perl_magic_setfm (SV* sv, MAGIC* mg);
 int Perl_magic_setisa (SV* sv, MAGIC* mg);
 int Perl_magic_setglob (SV* sv, MAGIC* mg);
 int Perl_magic_setmglob (SV* sv, MAGIC* mg);
 int Perl_magic_setnkeys (SV* sv, MAGIC* mg);
 int Perl_magic_setpack (SV* sv, MAGIC* mg);
 int Perl_magic_setpos (SV* sv, MAGIC* mg);
 int Perl_magic_setsig (SV* sv, MAGIC* mg);
 int Perl_magic_setsubstr (SV* sv, MAGIC* mg);
 int Perl_magic_settaint (SV* sv, MAGIC* mg);
 int Perl_magic_setuvar (SV* sv, MAGIC* mg);
 int Perl_magic_setvec (SV* sv, MAGIC* mg);
 int Perl_magic_set_all_env (SV* sv, MAGIC* mg);
 U32 Perl_magic_sizepack (SV* sv, MAGIC* mg);
 int Perl_magic_wipepack (SV* sv, MAGIC* mg);
 void Perl_magicname (char* sym, char* name, I32 namlen);
int main (int argc, char** argv, char** env);



 void Perl_markstack_grow (void);



 char* Perl_mess (const char* pat, va_list* args);
 int Perl_mg_clear (SV* sv);
 int Perl_mg_copy (SV* sv, SV* nsv, char* key, I32 klen);
 MAGIC* Perl_mg_find (SV* sv, int type);
 int Perl_mg_free (SV* sv);
 int Perl_mg_get (SV* sv);
 U32 Perl_mg_length (SV* sv);
 void Perl_mg_magical (SV* sv);
 int Perl_mg_set (SV* sv);
 I32 Perl_mg_size (SV* sv);
 OP* Perl_mod (OP* o, I32 type);
 char* Perl_moreswitches (char* s);
 OP* Perl_my (OP* o);

 char* Perl_my_bcopy (char* from, char* to, I32 len);




 void Perl_my_exit (U32 status) ;
 void Perl_my_failure_exit (void) ;
 I32 Perl_my_lstat (void);

 I32 Perl_my_memcmp (char* s1, char* s2, I32 len);





 I32 Perl_my_pclose (FILE* ptr);
 FILE* Perl_my_popen (char* cmd, char* mode);

 void Perl_my_setenv (char* nam, char* val);
 I32 Perl_my_stat (void);

 short Perl_my_swap (short s);
 long Perl_my_htonl (long l);
 long Perl_my_ntohl (long l);

 void Perl_my_unexec (void);
 OP* Perl_newANONLIST (OP* o);
 OP* Perl_newANONHASH (OP* o);
 OP* Perl_newANONSUB (I32 floor, OP* proto, OP* block);
 OP* Perl_newASSIGNOP (I32 flags, OP* left, I32 optype, OP* right);
 OP* Perl_newCONDOP (I32 flags, OP* expr, OP* trueop, OP* falseop);
 void Perl_newCONSTSUB (HV* stash, char* name, SV* sv);
 void Perl_newFORM (I32 floor, OP* o, OP* block);
 OP* Perl_newFOROP (I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont);
 OP* Perl_newLOGOP (I32 optype, I32 flags, OP* left, OP* right);
 OP* Perl_newLOOPEX (I32 type, OP* label);
 OP* Perl_newLOOPOP (I32 flags, I32 debuggable, OP* expr, OP* block);
 OP* Perl_newNULLLIST (void);
 OP* Perl_newOP (I32 optype, I32 flags);
 void Perl_newPROG (OP* o);
 OP* Perl_newRANGE (I32 flags, OP* left, OP* right);
 OP* Perl_newSLICEOP (I32 flags, OP* subscript, OP* Perl_list);
 OP* Perl_newSTATEOP (I32 flags, char* label, OP* o);
 CV* Perl_newSUB (I32 floor, OP* o, OP* proto, OP* block);
 CV* Perl_newXS (char* name, void (*subaddr)(CV* cv ), char* filename);
 AV* Perl_newAV (void);
 OP* Perl_newAVREF (OP* o);
 OP* Perl_newBINOP (I32 type, I32 flags, OP* first, OP* last);
 OP* Perl_newCVREF (I32 flags, OP* o);
 OP* Perl_newGVOP (I32 type, I32 flags, GV* gv);
 GV* Perl_newGVgen (char* pack);
 OP* Perl_newGVREF (I32 type, OP* o);
 OP* Perl_newHVREF (OP* o);
 HV* Perl_newHV (void);
 HV* Perl_newHVhv (HV* hv);
 IO* Perl_newIO (void);
 OP* Perl_newLISTOP (I32 type, I32 flags, OP* first, OP* last);
 OP* Perl_newPMOP (I32 type, I32 flags);
 OP* Perl_newPVOP (I32 type, I32 flags, char* pv);
 SV* Perl_newRV (SV* pref);
 SV* Perl_newRV_noinc (SV *sv);
 SV* Perl_newSV (STRLEN len);
 OP* Perl_newSVREF (OP* o);
 OP* Perl_newSVOP (I32 type, I32 flags, SV* sv);
 SV* Perl_newSViv (IV i);
 SV* Perl_newSVnv (double n);
 SV* Perl_newSVpv (char* s, STRLEN len);
 SV* Perl_newSVpvn (char *s, STRLEN len);
 SV* Perl_newSVpvf (const char* pat, ...);
 SV* Perl_newSVrv (SV* rv, char* classname);
 SV* Perl_newSVsv (SV* old);
 OP* Perl_newUNOP (I32 type, I32 flags, OP* first);
 OP* Perl_newWHILEOP (I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont);




 PERL_SI * Perl_new_stackinfo (I32 stitems, I32 cxitems);
 FILE* Perl_nextargv (GV* gv);
 char* Perl_ninstr (char* big, char* bigend, char* little, char* lend);
 OP* Perl_oopsCV (OP* o);
 void Perl_op_free (OP* arg);
 void Perl_package (OP* o);
 PADOFFSET Perl_pad_alloc (I32 optype, U32 tmptype);
 PADOFFSET Perl_pad_allocmy (char* name);
 PADOFFSET Perl_pad_findmy (char* name);
 OP* Perl_oopsAV (OP* o);
 OP* Perl_oopsHV (OP* o);
 void Perl_pad_leavemy (I32 fill);
 SV* Perl_pad_sv (PADOFFSET po);
 void Perl_pad_free (PADOFFSET po);
 void Perl_pad_reset (void);
 void Perl_pad_swipe (PADOFFSET po);
 void Perl_peep (OP* o);

PerlInterpreter* perl_alloc (void);




void perl_atexit (void(*fn)(void *), void*);

 I32 perl_call_argv (char* sub_name, I32 flags, char** argv);
 I32 perl_call_method (char* methname, I32 flags);
 I32 perl_call_pv (char* sub_name, I32 flags);
 I32 perl_call_sv (SV* sv, I32 flags);




void perl_construct (PerlInterpreter* sv_interp);
void perl_destruct (PerlInterpreter* sv_interp);

 SV* perl_eval_pv (char* p, I32 croak_on_error);
 I32 perl_eval_sv (SV* sv, I32 flags);



void perl_free (PerlInterpreter* sv_interp);

 SV* perl_get_sv (char* name, I32 create);
 AV* perl_get_av (char* name, I32 create);
 HV* perl_get_hv (char* name, I32 create);
 CV* perl_get_cv (char* name, I32 create);
 int perl_init_i18nl10n (int printwarn);
 int perl_init_i18nl14n (int printwarn);
 void perl_new_collate (char* newcoll);
 void perl_new_ctype (char* newctype);
 void perl_new_numeric (char* newcoll);
 void perl_set_numeric_local (void);
 void perl_set_numeric_standard (void);



int perl_parse (PerlInterpreter* sv_interp, void(*xsinit)(void), int argc, char** argv, char** env);

 void perl_require_pv (char* pv);




int perl_run (PerlInterpreter* sv_interp);

 void Perl_pidgone (int pid, int status);
 void Perl_pmflag (U16* pmfl, int ch);
 OP* Perl_pmruntime (OP* pm, OP* expr, OP* repl);
 OP* Perl_pmtrans (OP* o, OP* expr, OP* repl);
 OP* Perl_pop_return (void);
 void Perl_pop_scope (void);
 OP* Perl_prepend_elem (I32 optype, OP* head, OP* tail);
 void Perl_push_return (OP* o);
 void Perl_push_scope (void);
 OP* Perl_ref (OP* o, I32 type);
 OP* Perl_refkids (OP* o, I32 type);
 void Perl_regdump (regexp* r);
 I32 Perl_pregexec (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
 void Perl_pregfree (struct regexp* r);
 regexp* Perl_pregcomp (char* exp, char* xend, PMOP* pm);
 I32 Perl_regexec_flags (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);


 regnode* Perl_regnext (regnode* p);
 void Perl_regprop (SV* sv, regnode* o);
 void Perl_repeatcpy (char* to, char* from, I32 len, I32 count);
 char* Perl_rninstr (char* big, char* bigend, char* little, char* lend);
 Sighandler_t Perl_rsignal (int i, Sighandler_t t);
 int Perl_rsignal_restore (int i, Sigsave_t* t);
 int Perl_rsignal_save (int i, Sighandler_t t1, Sigsave_t* t2);
 Sighandler_t Perl_rsignal_state (int i);
 void Perl_rxres_free (void** rsp);
 void Perl_rxres_restore (void** rsp, REGEXP* prx);
 void Perl_rxres_save (void** rsp, REGEXP* prx);



 char* Perl_savepv (char* sv);
 char* Perl_savepvn (char* sv, I32 len);
 void Perl_savestack_grow (void);
 void Perl_save_aelem (AV* av, I32 idx, SV **sptr);
 void Perl_save_aptr (AV** aptr);
 AV* Perl_save_ary (GV* gv);
 void Perl_save_clearsv (SV** svp);
 void Perl_save_delete (HV* hv, char* key, I32 klen);





void Perl_save_destructor (void (*f)(void*), void* p);


 void Perl_save_freesv (SV* sv);
 void Perl_save_freeop (OP* o);
 void Perl_save_freepv (char* pv);
 void Perl_save_gp (GV* gv, I32 empty);
 HV* Perl_save_hash (GV* gv);
 void Perl_save_helem (HV* hv, SV *key, SV **sptr);
 void Perl_save_hints (void);
 void Perl_save_hptr (HV** hptr);
 void Perl_save_I16 (I16* intp);
 void Perl_save_I32 (I32* intp);
 void Perl_save_int (int* intp);
 void Perl_save_item (SV* item);
 void Perl_save_iv (IV* iv);
 void Perl_save_list (SV** sarg, I32 maxsarg);
 void Perl_save_long (long* longp);
 void Perl_save_nogv (GV* gv);
 void Perl_save_op (void);
 SV* Perl_save_scalar (GV* gv);
 void Perl_save_pptr (char** pptr);
 void Perl_save_sptr (SV** sptr);
 SV* Perl_save_svref (SV** sptr);
 SV** Perl_save_threadsv (PADOFFSET i);
 OP* Perl_sawparens (OP* o);
 OP* Perl_scalar (OP* o);
 OP* Perl_scalarkids (OP* o);
 OP* Perl_scalarseq (OP* o);
 OP* Perl_scalarvoid (OP* o);
 UV Perl_scan_hex (char* start, I32 len, I32* retlen);
 char* Perl_scan_num (char* s);
 UV Perl_scan_oct (char* start, I32 len, I32* retlen);
 OP* Perl_scope (OP* o);
 char* Perl_screaminstr (SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);

 I32 Perl_setenv_getix (char* nam);

 void Perl_setdefout (GV* gv);
 char* Perl_sharepvn (char* sv, I32 len, U32 hash);
 HEK* Perl_share_hek (char* sv, I32 len, U32 hash);
 void Perl_sighandler (int sig);
 SV** Perl_stack_grow (SV** sp, SV**p, int n);
 I32 Perl_start_subparse (I32 is_format, U32 flags);
 void Perl_sub_crush_depth (CV* cv);
 int Perl_sv_2bool (SV* sv);
 CV* Perl_sv_2cv (SV* sv, HV** st, GV** gvp, I32 lref);
 IO* Perl_sv_2io (SV* sv);
 IV Perl_sv_2iv (SV* sv);
 SV* Perl_sv_2mortal (SV* sv);
 double Perl_sv_2nv (SV* sv);
 char* Perl_sv_2pv (SV* sv, STRLEN* lp);
 UV Perl_sv_2uv (SV* sv);
 IV Perl_sv_iv (SV* sv);
 UV Perl_sv_uv (SV* sv);
 double Perl_sv_nv (SV* sv);
 char * Perl_sv_pvn (SV *sv, STRLEN *len);
 I32 Perl_sv_true (SV *sv);
 void Perl_sv_add_arena (char* ptr, U32 size, U32 flags);
 int Perl_sv_backoff (SV* sv);
 SV* Perl_sv_bless (SV* sv, HV* stash);
 void Perl_sv_catpvf (SV* sv, const char* pat, ...);
 void Perl_sv_catpv (SV* sv, char* ptr);
 void Perl_sv_catpvn (SV* sv, char* ptr, STRLEN len);
 void Perl_sv_catsv (SV* dsv, SV* ssv);
 void Perl_sv_chop (SV* sv, char* ptr);
 void Perl_sv_clean_all (void);
 void Perl_sv_clean_objs (void);
 void Perl_sv_clear (SV* sv);
 I32 Perl_sv_cmp (SV* sv1, SV* sv2);
 I32 Perl_sv_cmp_locale (SV* sv1, SV* sv2);



 OP* Perl_sv_compile_2op (SV* sv, OP** startp, char* code, AV** avp);
 void Perl_sv_dec (SV* sv);
 void Perl_sv_dump (SV* sv);
 int Perl_sv_derived_from (SV* sv, char* name);
 I32 Perl_sv_eq (SV* sv1, SV* sv2);
 void Perl_sv_free (SV* sv);
 void Perl_sv_free_arenas (void);
 char* Perl_sv_gets (SV* sv, FILE* fp, I32 append);

 char* Perl_sv_grow (SV* sv, I32 newlen);



 void Perl_sv_inc (SV* sv);
 void Perl_sv_insert (SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen);
 int Perl_sv_isa (SV* sv, char* name);
 int Perl_sv_isobject (SV* sv);
 STRLEN Perl_sv_len (SV* sv);
 void Perl_sv_magic (SV* sv, SV* obj, int how, char* name, I32 namlen);
 SV* Perl_sv_mortalcopy (SV* oldsv);
 SV* Perl_sv_newmortal (void);
 SV* Perl_sv_newref (SV* sv);
 char* Perl_sv_peek (SV* sv);
 char* Perl_sv_pvn_force (SV* sv, STRLEN* lp);
 char* Perl_sv_reftype (SV* sv, int ob);
 void Perl_sv_replace (SV* sv, SV* nsv);
 void Perl_sv_report_used (void);
 void Perl_sv_reset (char* s, HV* stash);
 void Perl_sv_setpvf (SV* sv, const char* pat, ...);
 void Perl_sv_setiv (SV* sv, IV num);
 void Perl_sv_setpviv (SV* sv, IV num);
 void Perl_sv_setuv (SV* sv, UV num);
 void Perl_sv_setnv (SV* sv, double num);
 SV* Perl_sv_setref_iv (SV* rv, char* classname, IV iv);
 SV* Perl_sv_setref_nv (SV* rv, char* classname, double nv);
 SV* Perl_sv_setref_pv (SV* rv, char* classname, void* pv);
 SV* Perl_sv_setref_pvn (SV* rv, char* classname, char* pv, I32 n);
 void Perl_sv_setpv (SV* sv, const char* ptr);
 void Perl_sv_setpvn (SV* sv, const char* ptr, STRLEN len);
 void Perl_sv_setsv (SV* dsv, SV* ssv);
 void Perl_sv_taint (SV* sv);
 int Perl_sv_tainted (SV* sv);
 int Perl_sv_unmagic (SV* sv, int type);
 void Perl_sv_unref (SV* sv);
 void Perl_sv_untaint (SV* sv);
 int Perl_sv_upgrade (SV* sv, U32 mt);
 void Perl_sv_usepvn (SV* sv, char* ptr, STRLEN len);
 void Perl_sv_vcatpvfn (SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, int *used_locale);


 void Perl_sv_vsetpvfn (SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, int *used_locale);


 void Perl_taint_env (void);
 void Perl_taint_proper (const char* f, char* s);






 void Perl_unsharepvn (char* sv, I32 len, U32 hash);
 void Perl_unshare_hek (HEK* hek);
 void Perl_utilize (int aver, I32 floor, OP* version, OP* id, OP* arg);
 void Perl_vivify_defelem (SV* sv);
 void Perl_vivify_ref (SV* sv, U32 to_what);
 I32 Perl_wait4pid (int pid, int* statusp, int flags);
 void Perl_warn (const char* pat,...);
 void Perl_watch (char** addr);
 I32 Perl_whichsig (char* sig);
 int Perl_yyerror (char* s);
 int Perl_yylex (void);
 int Perl_yyparse (void);
 int Perl_yywarn (char* s);


 void * Perl_safemalloc (size_t nbytes);
 void * Perl_safecalloc (size_t elements, size_t size);
 void * Perl_saferealloc (void * where, size_t nbytes);
 void Perl_safefree (void * where);
# 879 "proto.h"






 void Perl_byterun (FILE *fp);


 void Perl_sv_catpvf_mg (SV *sv, const char* pat, ...);
 void Perl_sv_catpv_mg (SV *sv, char *ptr);
 void Perl_sv_catpvn_mg (SV *sv, char *ptr, STRLEN len);
 void Perl_sv_catsv_mg (SV *dstr, SV *sstr);
 void Perl_sv_setpvf_mg (SV *sv, const char* pat, ...);
 void Perl_sv_setiv_mg (SV *sv, IV i);
 void Perl_sv_setpviv_mg (SV *sv, IV iv);
 void Perl_sv_setuv_mg (SV *sv, UV u);
 void Perl_sv_setnv_mg (SV *sv, double num);
 void Perl_sv_setpv_mg (SV *sv, const char *ptr);
 void Perl_sv_setpvn_mg (SV *sv, const char *ptr, STRLEN len);
 void Perl_sv_setsv_mg (SV *dstr, SV *sstr);
 void Perl_sv_usepvn_mg (SV *sv, char *ptr, STRLEN len);

 MGVTBL* Perl_get_vtbl (int vtbl_id);
 OP* Perl_dofile (OP* term);
 void Perl_save_generic_svref (SV** sptr);
# 2123 "perl.h" 2
# 2134 "perl.h"
# 1 "embedvar.h" 1
# 2135 "perl.h" 2
# 2146 "perl.h"
# 1 "perlvars.h" 1
# 21 "perlvars.h"
extern PerlInterpreter * PL_curinterp;
# 42 "perlvars.h"
extern int PL_ninterps;

extern int PL_uid;
extern int PL_euid;
extern int PL_gid;
extern int PL_egid;
extern int PL_nomemok;
extern U32 PL_an;
extern U32 PL_cop_seqmax;
extern U16 PL_op_seqmax;
extern U32 PL_evalseq;
extern char ** PL_origenviron;
extern U32 PL_origalen;
extern HV * PL_pidstatus;
extern int PL_maxo ;
extern char * PL_osname;
extern char * PL_sh_path ;
extern Sighandler_t PL_sighandlerp;

extern XPV* PL_xiv_arenaroot;
extern IV * PL_xiv_root;
extern double * PL_xnv_root;
extern XRV * PL_xrv_root;
extern XPV * PL_xpv_root;
extern HE * PL_he_root;
extern char * PL_nice_chunk;
extern U32 PL_nice_chunk_size;




extern runops_proc_t * PL_runops ;


extern char PL_tokenbuf[256];
extern STRLEN PL_na;


extern SV PL_sv_undef;
extern SV PL_sv_no;
extern SV PL_sv_yes;





extern U32 PL_lex_state;
extern U32 PL_lex_defer;
extern expectation PL_lex_expect;
extern I32 PL_lex_brackets;
extern I32 PL_lex_formbrack;
extern I32 PL_lex_fakebrack;
extern I32 PL_lex_casemods;
extern I32 PL_lex_dojoin;
extern I32 PL_lex_starts;
extern SV * PL_lex_stuff;
extern SV * PL_lex_repl;
extern OP * PL_lex_op;
extern OP * PL_lex_inpat;
extern I32 PL_lex_inwhat;
extern char * PL_lex_brackstack;
extern char * PL_lex_casestack;


extern YYSTYPE PL_nextval[5];
extern I32 PL_nexttype[5];
extern I32 PL_nexttoke;

extern SV * PL_linestr;
extern char * PL_bufptr;
extern char * PL_oldbufptr;
extern char * PL_oldoldbufptr;
extern char * PL_bufend;
extern expectation PL_expect ;

extern I32 PL_multi_start;
extern I32 PL_multi_end;
extern I32 PL_multi_open;
extern I32 PL_multi_close;

extern I32 PL_error_count;
extern I32 PL_subline;
extern SV * PL_subname;

extern I32 PL_min_intro_pending;
extern I32 PL_max_intro_pending;
extern I32 PL_padix;
extern I32 PL_padix_floor;
extern I32 PL_pad_reset_pending;

extern I32 PL_thisexpr;
extern char * PL_last_uni;
extern char * PL_last_lop;
extern U16 PL_last_lop_op;
extern int PL_in_my;
extern HV * PL_in_my_stash;




extern U32 PL_hints;

extern int PL_do_undump;
extern volatile U32 PL_debug;




extern long PL_amagic_generation;
# 174 "perlvars.h"
extern const char * PL_Yes ;
extern const char * PL_No ;
extern const char * PL_hexdigit ;
extern const char * PL_patleave ;

extern SV * PL_specialsv_list[4];
# 2147 "perl.h" 2




# 1 "intrpvar.h" 1
# 17 "intrpvar.h"
extern int PL_origargc;
extern char ** PL_origargv;
extern GV * PL_envgv;
extern GV * PL_siggv;
extern GV * PL_incgv;
extern GV * PL_hintgv;
extern char * PL_origfilename;
extern SV * PL_diehook;
extern SV * PL_warnhook;
extern SV * PL_parsehook;
extern char * PL_cddir;
extern int PL_minus_c;
extern char PL_patchlevel[10];
extern char ** PL_localpatches;
extern char * PL_splitstr ;
extern int PL_preprocess;
extern int PL_minus_n;
extern int PL_minus_p;
extern int PL_minus_l;
extern int PL_minus_a;
extern int PL_minus_F;
extern int PL_doswitches;
extern int PL_dowarn;
extern int PL_doextract;
extern int PL_sawampersand;
extern int PL_sawstudy;
extern int PL_sawvec;
extern int PL_unsafe;
extern char * PL_inplace;
extern SV * PL_e_script;
extern U32 PL_perldb;



extern int PL_perl_destruct_level ;


extern time_t PL_basetime;
extern SV * PL_formfeed;


extern I32 PL_maxsysfd ;

extern int PL_multiline;
extern I32 PL_statusvalue;





extern GV * PL_stdingv;
extern GV * PL_defgv;
extern GV * PL_argvgv;
extern GV * PL_argvoutgv;



extern GV * PL_leftgv;
extern GV * PL_ampergv;
extern GV * PL_rightgv;



extern GV * PL_replgv;


extern GV * PL_errgv;


extern GV * PL_DBgv;
extern GV * PL_DBline;
extern GV * PL_DBsub;
extern SV * PL_DBsingle;
extern SV * PL_DBtrace;
extern SV * PL_DBsignal;
extern AV * PL_lineary;
extern AV * PL_dbargs;


extern HV * PL_debstash;
extern HV * PL_globalstash;
extern SV * PL_curstname;
extern AV * PL_beginav;
extern AV * PL_endav;
extern AV * PL_initav;
extern HV * PL_strtab;
extern U32 PL_sub_generation ;


extern I32 PL_sv_count;
extern I32 PL_sv_objcount;
extern SV* PL_sv_root;
extern SV* PL_sv_arenaroot;


extern I32 PL_lastspbase;
extern I32 PL_lastsize;
extern int PL_forkprocess;


extern AV * PL_fdpid;


extern int PL_tainting;
extern char * PL_op_mask ;
extern char * PL_last_proto;


extern I32 PL_dlevel;
extern I32 PL_dlmax ;
extern char * PL_debname;
extern char * PL_debdelim;


extern CV * PL_main_cv;
extern OP * PL_main_root;
extern OP * PL_main_start;
extern OP * PL_eval_root;
extern OP * PL_eval_start;


extern COP * PL_curcopdb ;
extern line_t PL_copline ;


extern SV PL_strchop;
extern int PL_filemode;
extern int PL_lastfd;
extern char * PL_oldname;
extern char ** PL_Argv;
extern char * PL_Cmd;
extern SV * PL_mystrk;
extern I32 PL_dumplvl;
extern PMOP * PL_oldlastpm;
extern I32 PL_gensym;
extern int PL_preambled;
extern AV * PL_preambleav;
extern int PL_laststatval ;
extern I32 PL_laststype ;
extern SV * PL_mess_sv;


extern char * PL_ors;
extern STRLEN PL_orslen;
extern char * PL_ofmt;


extern PerlExitListEntry * PL_exitlist ;

extern I32 PL_exitlistlen ;
extern HV * PL_modglobal;


extern U32 * PL_profiledata ;
extern FILE * volatile PL_rsfp ;
extern AV * PL_rsfp_filters ;

extern COP PL_compiling;

extern CV * PL_compcv;
extern AV * PL_comppad;
extern AV * PL_comppad_name;
extern I32 PL_comppad_name_fill;
extern I32 PL_comppad_name_floor;







extern int PL_generation ;
extern CV * PL_DBcv;
extern char* PL_archpat_auto;

extern int PL_in_clean_objs ;
extern int PL_in_clean_all ;

extern char * PL_linestart;
extern char PL_pending_ident;
extern SUBLEXINFO PL_sublex_info;







extern int PL_bytecode_iv_overflows ;
extern SV * PL_bytecode_sv;
extern XPV PL_bytecode_pv;
extern void ** PL_bytecode_obj_list;
extern I32 PL_bytecode_obj_list_fill ;
# 2152 "perl.h" 2

# 1 "thrdvar.h" 1
# 20 "thrdvar.h"
extern SV ** PL_stack_sp;



extern OP * PL_op;

extern SV ** PL_curpad;

extern SV ** PL_stack_base;
extern SV ** PL_stack_max;

extern I32 * PL_scopestack;
extern I32 PL_scopestack_ix;
extern I32 PL_scopestack_max;

extern ANY * PL_savestack;

extern I32 PL_savestack_ix;
extern I32 PL_savestack_max;

extern SV ** PL_tmps_stack;
extern I32 PL_tmps_ix ;
extern I32 PL_tmps_floor ;
extern I32 PL_tmps_max;

extern I32 * PL_markstack;
extern I32 * PL_markstack_ptr;
extern I32 * PL_markstack_max;

extern OP ** PL_retstack;
extern I32 PL_retstack_ix;
extern I32 PL_retstack_max;

extern SV * PL_Sv;
extern XPV * PL_Xpv;


extern struct stat PL_statbuf;
extern struct stat PL_statcache;
extern GV * PL_statgv;
extern SV * PL_statname ;


extern struct tms PL_timesbuf;



extern int PL_tainted;
extern PMOP * PL_curpm;
extern SV * PL_nrs;
extern SV * PL_rs;
extern GV * PL_last_in_gv;
extern char * PL_ofs;
extern STRLEN PL_ofslen;
extern GV * PL_defoutgv;
extern char * PL_chopset ;
extern SV * PL_formtarget;
extern SV * PL_bodytarget;
extern SV * PL_toptarget;


extern HV * PL_defstash;
extern HV * PL_curstash;

extern OP * PL_restartop;
extern COP * volatile PL_curcop ;
extern volatile int PL_in_eval;
extern int PL_delaymagic;
extern int PL_dirty;
extern int PL_localizing;

extern AV * PL_curstack;
extern PERL_SI * PL_curstackinfo;
extern AV * PL_mainstack;
extern JMPENV * PL_top_env;
extern JMPENV PL_start_env;


extern SV * PL_av_fetch_sv;
extern SV * PL_hv_fetch_sv;
extern HE PL_hv_fetch_ent_mh;

extern I32 PL_modcount;

extern OP* PL_lastgotoprobe;


extern OP * PL_sortcop;
extern HV * PL_sortstash;
extern GV * PL_firstgv;
extern GV * PL_secondgv;
extern I32 PL_sortcxix;



extern I32 * PL_screamfirst;
extern I32 * PL_screamnext;
extern I32 PL_maxscream ;
extern SV * PL_lastscream;

extern regnode PL_regdummy;
extern char* PL_regcomp_parse;
extern char* PL_regxend;
extern regnode* PL_regcode;
extern I32 PL_regnaughty;
extern I32 PL_regsawback;
extern char * PL_regprecomp;
extern I32 PL_regnpar;
extern I32 PL_regsize;
extern U16 PL_regflags;
extern U32 PL_regseen;
extern I32 PL_seen_zerolen;
extern I32 PL_seen_evals;
extern regexp * PL_regcomp_rx;
extern I32 PL_extralen;
extern int PL_colorset;
extern char * PL_colors[4];
extern char * PL_reginput;
extern char * PL_regbol;
extern char * PL_regeol;
extern char ** PL_regstartp;
extern char ** PL_regendp;
extern U32 * PL_reglastparen;
extern char * PL_regtill;
extern char PL_regprev;
extern char ** PL_reg_start_tmp;
extern U32 PL_reg_start_tmpl;
extern struct reg_data * PL_regdata;

extern char * PL_bostr;
extern U32 PL_reg_flags;
extern I32 PL_reg_eval_set;
extern I32 PL_regnarrate;
extern regnode * PL_regprogram;
extern int PL_regindent ;
extern CURCUR * PL_regcc;

extern regcomp_t PL_regcompp ;

extern regexec_t PL_regexecp ;

extern int PL_reginterp_cnt ;
# 2154 "perl.h" 2
# 2317 "perl.h"
extern MGVTBL Perl_vtbl_sv;
extern MGVTBL Perl_vtbl_env;
extern MGVTBL Perl_vtbl_envelem;
extern MGVTBL Perl_vtbl_sig;
extern MGVTBL Perl_vtbl_sigelem;
extern MGVTBL Perl_vtbl_pack;
extern MGVTBL Perl_vtbl_packelem;
extern MGVTBL Perl_vtbl_dbline;
extern MGVTBL Perl_vtbl_isa;
extern MGVTBL Perl_vtbl_isaelem;
extern MGVTBL Perl_vtbl_arylen;
extern MGVTBL Perl_vtbl_glob;
extern MGVTBL Perl_vtbl_mglob;
extern MGVTBL Perl_vtbl_nkeys;
extern MGVTBL Perl_vtbl_taint;
extern MGVTBL Perl_vtbl_substr;
extern MGVTBL Perl_vtbl_vec;
extern MGVTBL Perl_vtbl_pos;
extern MGVTBL Perl_vtbl_bm;
extern MGVTBL Perl_vtbl_fm;
extern MGVTBL Perl_vtbl_uvar;





extern MGVTBL Perl_vtbl_defelem;
extern MGVTBL Perl_vtbl_regexp;






extern MGVTBL Perl_vtbl_amagic;
extern MGVTBL Perl_vtbl_amagicelem;
# 2393 "perl.h"
extern const char * Perl_AMG_names[58];


struct am_table {
  long was_ok_sub;
  long was_ok_am;
  U32 flags;
  CV* table[58];
  long fallback;
};
struct am_table_short {
  long was_ok_sub;
  long was_ok_am;
  U32 flags;
};
typedef struct am_table AMT;
typedef struct am_table_short AMTS;
# 2420 "perl.h"
enum {
  Perl_fallback_amg, Perl_abs_amg,
  Perl_bool__amg, Perl_nomethod_amg,
  Perl_string_amg, Perl_numer_amg,
  Perl_add_amg, Perl_add_ass_amg,
  Perl_subtr_amg, Perl_subtr_ass_amg,
  Perl_mult_amg, Perl_mult_ass_amg,
  Perl_div_amg, Perl_div_ass_amg,
  modulo_amg, modulo_ass_amg,
  Perl_pow_amg, Perl_pow_ass_amg,
  Perl_lshift_amg, Perl_lshift_ass_amg,
  Perl_rshift_amg, Perl_rshift_ass_amg,
  Perl_band_amg, band_ass_amg,
  Perl_bor_amg, bor_ass_amg,
  Perl_bxor_amg, bxor_ass_amg,
  Perl_lt_amg, Perl_le_amg,
  Perl_gt_amg, Perl_ge_amg,
  Perl_eq_amg, Perl_ne_amg,
  Perl_ncmp_amg, Perl_scmp_amg,
  Perl_slt_amg, Perl_sle_amg,
  Perl_sgt_amg, Perl_sge_amg,
  Perl_seq_amg, Perl_sne_amg,
  Perl_not_amg, Perl_compl_amg,
  Perl_inc_amg, Perl_dec_amg,
  Perl_atan2_amg, Perl_cos_amg,
  Perl_sin_amg, Perl_exp_amg,
  Perl_log_amg, Perl_sqrt_amg,
  Perl_repeat_amg, Perl_repeat_ass_amg,
  Perl_concat_amg, Perl_concat_ass_amg,
  copy_amg, Perl_neg_amg
};
# 3 "universal.c" 2






static SV *
isa_lookup(HV *stash, char *name, int len, int level)
{
    AV* av;
    GV* gv;
    GV** gvp;
    HV* hv = ((HV*)((void *)0));

    if (!stash)
 return &PL_sv_undef;

    if((!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && __builtin_constant_p (name) && (__s1_len = strlen (((XPVHV*) (stash)->sv_any)->xhv_name), __s2_len = strlen (name), (!((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && ((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) && (__s1_len = strlen (((XPVHV*) (stash)->sv_any)->xhv_name), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && ((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (((XPVHV*) (stash)->sv_any)->xhv_name, name)))); })))
 return &PL_sv_yes;

    if (level > 100)
 Perl_croak("Recursive inheritance detected in package '%s'", ((XPVHV*) (stash)->sv_any)->xhv_name);

    gvp = (GV**)Perl_hv_fetch(stash, "::ISA::CACHE::", 14, (0));

    if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (hv = (((((XPVGV*)(gv)->sv_any)->xgv_gp))->gp_hv))) {
 SV* sv;
 SV** svp = (SV**)Perl_hv_fetch(hv, name, len, (0));
 if (svp && (sv = *svp) != (SV*)&PL_sv_undef)
     return sv;
    }

    gvp = (GV**)Perl_hv_fetch(stash,"ISA",3,(0));

    if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_av))) {
 if(!hv) {
     gvp = (GV**)Perl_hv_fetch(stash, "::ISA::CACHE::", 14, (1));

     gv = *gvp;

     if (((gv)->sv_flags & 0xff) != SVt_PVGV)
  Perl_gv_init(gv, stash, "::ISA::CACHE::", 14, (1));

     hv = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_hv ? (((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_hv : (((XPVGV*)(Perl_gv_HVadd(gv))->sv_any)->xgv_gp)->gp_hv);
 }
 if(hv) {
     SV** svp = ((SV**)((XPVAV*) (av)->sv_any)->xav_array);

     I32 items = ((XPVAV*) (av)->sv_any)->xav_fill + 1;
     while (items--) {
  SV* sv = *svp++;
  HV* basestash = Perl_gv_stashsv(sv, (0));
  if (!basestash) {
      if (PL_dowarn)
   Perl_warn("Can't locate package %s for @%s::ISA",
       ((XPV*) (sv)->sv_any)->xpv_pv, ((XPVHV*) (stash)->sv_any)->xhv_name);
      continue;
  }
  if(&PL_sv_yes == isa_lookup(basestash, name, len, level + 1)) {
      (void)Perl_hv_store(hv,name,len,&PL_sv_yes,0);
      return &PL_sv_yes;
  }
     }
     (void)Perl_hv_store(hv,name,len,&PL_sv_no,0);
 }
    }

    return (((!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (name) && __builtin_constant_p ("UNIVERSAL") && (__s1_len = strlen (name), __s2_len = strlen ("UNIVERSAL"), (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (name), (__const char *) ("UNIVERSAL"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p ("UNIVERSAL") && ((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("UNIVERSAL"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("UNIVERSAL"); register int __result = (((__const unsigned char *) (__const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("UNIVERSAL") && ((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) && (__s2_len = strlen ("UNIVERSAL"), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("UNIVERSAL"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; }))) : strcmp (name, "UNIVERSAL")))); }))) ? &PL_sv_yes : &PL_sv_no);
}

int
Perl_sv_derived_from(SV *sv, char *name)
{
    SV *rv;
    char *type;
    HV *stash;

    stash = ((HV*)((void *)0));
    type = ((char*)((void *)0));

    if (((sv)->sv_flags & 0x00002000))
        Perl_mg_get(sv) ;

    if (((sv)->sv_flags & 0x00080000)) {
        sv = ((XRV*) (sv)->sv_any)->xrv_rv;
        type = Perl_sv_reftype(sv,0);
        if(((sv)->sv_flags & 0x00001000))
            stash = ((XPVMG*) (sv)->sv_any)->xmg_stash;
    }
    else {
        stash = Perl_gv_stashsv(sv, (0));
    }

    return (type && (!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (type) && __builtin_constant_p (name) && (__s1_len = strlen (type), __s2_len = strlen (name), (!((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (type), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (type) && ((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) && (__s1_len = strlen (type), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (type))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (type))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (type) && ((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (type))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (type); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (type, name)))); }))) ||
            (stash && isa_lookup(stash, name, strlen(name), 0) == &PL_sv_yes)
        ? (1)
        : (0) ;

}





# 1 "XSUB.h" 1
# 108 "universal.c" 2

void XS_UNIVERSAL_isa(CV* cv)
{
    extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
    SV *sv;
    char *name;
    STRLEN n_a;

    if (items != 2)
 Perl_croak("Usage: UNIVERSAL::isa(reference, kind)");

    sv = PL_stack_base[ax + (0)];
    name = (char *)(((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a));

    PL_stack_base[ax + (0)] = ((Perl_sv_derived_from(sv, name)) ? &PL_sv_yes : &PL_sv_no);
    (void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}

void XS_UNIVERSAL_can(CV* cv)
{
    extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
    SV *sv;
    char *name;
    SV *rv;
    HV *pkg = ((void *)0);
    STRLEN n_a;

    if (items != 2)
 Perl_croak("Usage: UNIVERSAL::can(object-ref, method)");

    sv = PL_stack_base[ax + (0)];
    name = (char *)(((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a));
    rv = &PL_sv_undef;

    if(((sv)->sv_flags & 0x00080000)) {
        sv = (SV*)((XRV*) (sv)->sv_any)->xrv_rv;
        if(((sv)->sv_flags & 0x00001000))
            pkg = ((XPVMG*) (sv)->sv_any)->xmg_stash;
    }
    else {
        pkg = Perl_gv_stashsv(sv, (0));
    }

    if (pkg) {
        GV *gv = Perl_gv_fetchmethod_autoload(pkg, name, (0));
        if (gv && (((gv)->sv_flags & 0xff) == SVt_PVGV))
     rv = Perl_sv_2mortal(Perl_newRV((SV*)((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_cv)));
    }

    PL_stack_base[ax + (0)] = rv;
    (void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}

void XS_UNIVERSAL_VERSION(CV* cv)
{
    extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
    HV *pkg;
    GV **gvp;
    GV *gv;
    SV *sv;
    char *undef;
    double req;

    if(((PL_stack_base[ax + (0)])->sv_flags & 0x00080000)) {
        sv = (SV*)((XRV*) (PL_stack_base[ax + (0)])->sv_any)->xrv_rv;
        if(!((sv)->sv_flags & 0x00001000))
            Perl_croak("Cannot find version of an unblessed reference");
        pkg = ((XPVMG*) (sv)->sv_any)->xmg_stash;
    }
    else {
        pkg = Perl_gv_stashsv(PL_stack_base[ax + (0)], (0));
    }

    gvp = pkg ? (GV**)Perl_hv_fetch(pkg,"VERSION",7,(0)) : ((GV**)((void *)0));

    if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (sv = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_sv))) {
        SV *nsv = Perl_sv_newmortal();
        Perl_sv_setsv(nsv, sv);
        sv = nsv;
        undef = ((char*)((void *)0));
    }
    else {
        sv = (SV*)&PL_sv_undef;
        undef = "(undef)";
    }

    if (items > 1 && (undef || (req = (((PL_stack_base[ax + (1)])->sv_flags & 0x00020000) ? ((XPVNV*)(PL_stack_base[ax + (1)])->sv_any)->xnv_nv : Perl_sv_2nv(PL_stack_base[ax + (1)])), req > (((sv)->sv_flags & 0x00020000) ? ((XPVNV*)(sv)->sv_any)->xnv_nv : Perl_sv_2nv(sv))))) {
 STRLEN n_a;
 Perl_croak("%s version %s required--this is only version %s",
       ((XPVHV*) (pkg)->sv_any)->xhv_name, (((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a)), undef ? undef : (((sv)->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (sv)->sv_any)->xpv_cur), ((XPV*) (sv)->sv_any)->xpv_pv) : Perl_sv_2pv(sv, &n_a)));
    }

    PL_stack_base[ax + (0)] = sv;

    (void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}







void
Perl_boot_core_UNIVERSAL(void)
{
    char *file = "universal.c";

    Perl_newXS("UNIVERSAL::isa", XS_UNIVERSAL_isa, file);
    Perl_newXS("UNIVERSAL::can", XS_UNIVERSAL_can, file);
    Perl_newXS("UNIVERSAL::VERSION", XS_UNIVERSAL_VERSION, file);
}

  reply	other threads:[~2003-05-09  1:31 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-07 14:25 Diego Novillo
2003-05-07 14:30 ` Diego Novillo
2003-05-07 17:54 ` Qiong Cai
2003-05-07 18:02   ` law
2003-05-09  1:31     ` Qiong Cai [this message]
2003-05-09  2:02       ` Andrew Pinski
2003-05-07 18:24   ` Daniel Berlin
2003-05-08  5:51 ` Toon Moene
2003-05-08 13:26   ` Diego Novillo
2003-05-09 16:46 ` Gerald Pfeifer
2003-05-09 17:28   ` Diego Novillo
2003-05-09 17:37     ` Diego Novillo
2003-05-09 19:02       ` Eric Botcazou
2003-05-10 14:19     ` Gerald Pfeifer
2003-05-10 14:43       ` Graham Stott
2003-05-10 15:34         ` Daniel Berlin
2003-05-12 12:43       ` Diego Novillo
2003-05-10 15:04     ` Gerald Pfeifer
2003-05-12 14:21   ` Gerald Pfeifer
2003-05-12 16:27     ` Steven Bosscher
2003-05-20 10:44     ` Gerald Pfeifer
2003-05-20 11:39       ` Diego Novillo
2003-05-11 17:11 Richard Guenther
2003-05-12 12:43 ` Diego Novillo
2003-05-12 12:58   ` Steven Bosscher
2003-05-12 13:08     ` Andrew MacLeod
2003-05-12 13:16     ` Diego Novillo
2003-05-12 13:22       ` Andrew MacLeod
2003-05-12 13:49       ` Richard Guenther
2003-05-12 14:05         ` Daniel Berlin
2003-05-12 14:16           ` Andrew MacLeod
2003-05-12 14:17           ` Diego Novillo
2003-06-12 15:36         ` Diego Novillo
2003-05-12 13:02   ` Richard Guenther
2003-06-12 16:09     ` Diego Novillo
2003-06-12 21:10       ` Richard Guenther
2003-06-12 21:29         ` Diego Novillo
2003-06-13  9:58           ` Richard Guenther
2003-06-13 11:38             ` Diego Novillo
2003-06-14 11:41               ` Richard Guenther
2003-06-13 20:15       ` Andrew MacLeod
2003-06-14 20:06         ` Richard Guenther
2003-05-12 13:02   ` Steven Bosscher
2003-05-12 13:09     ` Diego Novillo
2003-05-12 13:59     ` Daniel Berlin
2003-05-12 14:12       ` Andrew MacLeod
2003-05-12  2:13 John David Anglin
2003-05-12 12:43 ` Diego Novillo
2003-05-15 17:50   ` John David Anglin
2003-05-15 19:32     ` Diego Novillo

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=20030509013134.GB28720@cse.unsw.edu.au \
    --to=qiongc@cse.unsw.edu.au \
    --cc=dnovillo@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=law@redhat.com \
    /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).