typedef struct { unsigned char *data; int len; } barray; 
typedef  int INT;
typedef  char * CHARS;



#define IT_cs_CODE 0x0
struct IT_cs { 
	int size; 	/* size */
	int hd; 	/* hd */
	int hs; 	/* hs */
	int un; 	/* un */
	int us; 	/* us */
	int sc; 	/* sc */
	int ss; 	/* ss */
	int er; 	/* er */
	int ed; 	/* ed */
	int sh; 	/* sh */
	int ob; 	/* ob */
	int rl; 	/* rl */
	int du; 	/* du */
	int dps; 	/* dps */
	int dsy; 	/* dsy */
	int dty; 	/* dty */
	int dln; 	/* dln */
	int dso; 	/* dso */
	int dus; 	/* dus */
	int dss; 	/* dss */
	int dbt; 	/* dbt */
	int dpp; 	/* dpp */
	int dfp; 	/* dfp */
	int den; 	/* den */
	int dds; 	/* dds */
	int dar; 	/* dar */
	int dpt; 	/* dpt */
	int dul; 	/* dul */
	int dse; 	/* dse */
	int dot; 	/* dot */
};



#define IT_hd_CODE 0x4
struct IT_hd { 
#define MTYPE_ABS_LM 0
#define MTYPE_REL_LM 1
#define MTYPE_OMS_OR_LMS 2
#define MTYPE_UNSPEC 0xf
	int mt; 	/* module type */
	int spare1; 	/* spare */
	char *cd;	 /* creation date */
	int nu; 	/* number of units */
	int code; 	/* code */
	char *ver;	 /* version */
	int au; 	/* address update */
	int si; 	/* segment identifier */
	int afl; 	/* address field length */
	int spare2; 	/* spare */
	int spcsz; 	/* space size within segment */
	int segsz; 	/* segment size */
	int segsh; 	/* segment shift */
	int ep; 	/* entry point */
	int uan; 	/* unit appearance number */
	int sa; 	/* section appearance number */
	int sad; 	/* segment address */
	int address; 	/* address */
	char *os;	 /* os name */
	char *sys;	 /* sys name */
	char *mn;	 /* module name */
	char *cpu;	 /* cpu */
};



#define IT_hs_CODE 0x5
struct IT_hs { 
	int neg; 	/* neg number */
};



#define IT_un_CODE 0x6
struct IT_un { 
#define FORMAT_LM 0
#define FORMAT_OM 1
#define FORMAT_OMS_OR_LMS 2
	int format; 	/* format */
	int spare1; 	/* spare */
	int nsections; 	/* number of sections */
	int nextrefs; 	/* number of external refs */
	int nextdefs; 	/* number of external defs */
	char *name;	 /* unit name */
	char *tool;	 /* tool name */
	char *tcd;	 /* creation date */
	char *linker;	 /* linker name */
	char *lcd;	 /* creation date */
};



#define IT_us_CODE 0x7
struct IT_us { 
	int neg; 	/* negotiation number */
};



#define IT_sc_CODE 0x8
struct IT_sc { 
	int format; 	/* format */
	int spare; 	/* spare */
	int segadd; 	/* segment address */
	int addr; 	/* address */
	int length; 	/* length */
	int align; 	/* alignment */
#define CONTENTS_CODE 0
#define CONTENTS_DATA 1
#define CONTENTS_STACK 2
#define CONTENTS_DUMMY 3
#define CONTENTS_SPECIAL 4
#define CONTENTS_NONSPEC 0xf
	int contents; 	/* contents */
#define CONCAT_SIMPLE 0
#define CONCAT_SHAREDC 1
#define CONCAT_DUMMY 2
#define CONCAT_GROUP 3
#define CONCAT_SHARED 4
#define CONCAT_PRIVATE 5
#define CONCAT_UNSPEC 0xf
	int concat; 	/* concat */
	int read; 	/* read */
	int write; 	/* write */
	int exec; 	/* exec */
	int init; 	/* initialized */
	int mode; 	/* mode */
	int spare1; 	/* spare */
	char *name;	 /* name */
};



#define IT_ss_CODE 0x9
struct IT_ss { 
	int neg; 	/* neg number */
};



#define IT_er_CODE 0xc
struct IT_er { 
#define ER_ENTRY 0
#define ER_DATA 1
#define ER_NOTDEF 2
#define ER_NOTSPEC 3
	int type; 	/* symbol type */
	int spare; 	/* spare */
	char *name;	 /* symbol name */
};



#define IT_ed_CODE 0x14
struct IT_ed { 
	int section; 	/* section appearance number */
#define ED_TYPE_ENTRY 0
#define ED_TYPE_DATA 1
#define ED_TYPE_CONST 2
#define ED_TYPE_NOTSPEC 7
	int type; 	/* symbol type */
	int spare; 	/* spare */
	int address; 	/* symbol address */
	int constant; 	/* constant value */
	char *name;	 /* symbol name */
};



#define IT_sh_CODE 0x1a
struct IT_sh { 
	int unit; 	/* unit appearance number */
	int section; 	/* section appearance number */
};



#define IT_ob_CODE 0x1c
struct IT_ob { 
	int saf; 	/* starting address flag */
	int cpf; 	/* compression flag */
	int spare; 	/* spare */
	int address; 	/* starting address */
	int compreps; 	/* comp reps */
	barray data;	 /* data */
};



#define IT_rl_CODE 0x20
struct IT_rl { 
	int boundary; 	/* boundary of relocateable area */
	int apol; 	/* address polarity */
	int segment; 	/* segment number */
	int sign; 	/* sign of relocation */
	int check; 	/* check range */
	int addr; 	/* reloc address */
	int bitloc; 	/* bit loc */
	int flen; 	/* field length */
	int bcount; 	/* bcount */
#define OP_RELOC_ADDR 1
#define OP_SEC_REF 0
#define OP_EXT_REF 2
	int op; 	/* operator */
	int symn; 	/* symbol number */
	int secn; 	/* section number */
	int copcode_is_3; 	/* const opcode */
	int alength_is_4; 	/* addend length */
	int addend; 	/* addend */
	int aopcode_is_0x20; 	/* plus opcode */
	int dunno; 	/* dunno */
	int end; 	/* end */
};



#define IT_du_CODE 0x30
struct IT_du { 
	int format; 	/* format */
	int optimized; 	/* optimized */
	int stackfrmt; 	/* stackfrmt */
	int spare; 	/* spare */
	int unit; 	/* unit number */
	int sections; 	/* sections */
	/* repeat ptr->sections */
	int *san; 	/* section appearance number */
	/* repeat ptr->sections */
	int *address; 	/* address */
	/* repeat ptr->sections */
	int *length; 	/* section length */
	char *tool;	 /* tool name */
	char *date;	 /* creation date */
};



#define IT_dsy_CODE 0x34
struct IT_dsy { 
#define STYPE_VAR 0
#define STYPE_LAB 1
#define STYPE_PROC 2
#define STYPE_FUNC 3
#define STYPE_TYPE 4
#define STYPE_CONST 5
#define STYPE_ENTRY 6
#define STYPE_MEMBER 7
#define STYPE_ENUM 8
#define STYPE_TAG 9
#define STYPE_PACKAGE 10
#define STYPE_GENERIC 11
#define STYPE_TASK 12
#define STYPE_EXCEPTION 13
#define STYPE_PARAMETER 14
#define STYPE_EQUATE 15
#define STYPE_UNSPEC 0x7f
	int type; 	/* symbol type */
	int assign; 	/* assignment info */
	int snumber; 	/* symbol id */
	char *sname;	 /* symbol name */
	int nesting; 	/* nesting level */
#define AINFO_REG 1
#define AINFO_STATIC_EXT_DEF 2
#define AINFO_STATIC_EXT_REF 3
#define AINFO_STATIC_INT 4
#define AINFO_STATIC_COM 5
#define AINFO_AUTO 6
#define AINFO_CONST 7
#define AINFO_UNSPEC 0xff
	int ainfo; 	/* assignment type */
	int dlength; 	/* data length */
	int section; 	/* section number */
	int address; 	/* address */
	char *reg;	 /* register name */
	char *ename;	 /* external name */
	char *constant;	 /* constant */
	int bitunit; 	/* assignment unit */
	int spare2; 	/* spare */
	int field_len; 	/* field length */
	int field_off; 	/* field offset */
	int field_bitoff; 	/* bit offset */
	int evallen; 	/* value length */
	int evalue; 	/* value */
	char *cvalue;	 /* value */
	int qvallen; 	/* value length */
	int qvalue; 	/* value */
	int btype; 	/* basic type */
	int sizeinfo; 	/* size information */
	int sign; 	/* sign */
	int flt_type; 	/* floating point type */
	int sfn; 	/* source file number */
	int sln; 	/* source line number */
	int neg; 	/* negotiation number */
	int magic; 	/* magic */
};



#define IT_dul_CODE 0x52
struct IT_dul { 
	int max_variable; 	/* max declaration type flag */
	int maxspare; 	/* max spare */
	int max; 	/* maximum */
	char *maxmode;	 /* max mode */
	int min_variable; 	/* min declaration type flag */
	int minspare; 	/* min spare */
	int min; 	/* minimum */
	char *minmode;	 /* min mode */
};



#define IT_dty_CODE 0x36
struct IT_dty { 
	int end; 	/* end flag */
	int spare; 	/* spare */
	int neg; 	/* negotiation */
};



#define IT_dbt_CODE 0x44
struct IT_dbt { 
#define BTYPE_VOID 0
#define BTYPE_UNDEF 1
#define BTYPE_CHAR 2
#define BTYPE_INT 3
#define BTYPE_FLOAT 4
#define BTYPE_BIT 5
#define BTYPE_STRING 6
#define BTYPE_DECIMAL 7
#define BTYPE_ENUM 8
#define BTYPE_STRUCT 9
#define BTYPE_TYPE 10
#define BTYPE_TAG 11
#define BTYPE_UNSPEC 0xff
	int btype; 	/* basic type */
	int bitsize; 	/* size info */
#define SIGN_SIGNED 0
#define SIGN_UNSIGNED 1
#define SIGN_UNSPEC 3
	int sign; 	/* sign */
#define FPTYPE_SINGLE 0
#define FPTYPE_DOUBLE 1
#define FPTYPE_EXTENDED 2
#define FPTYPE_NOTSPEC 0x3f
	int fptype; 	/* floating point type */
	int sid; 	/* symbol id */
	int neg; 	/* negotiation */
};



#define IT_dar_CODE 0x4e
struct IT_dar { 
	int length; 	/* element length */
	int dims; 	/* dims */
#define VARIABLE_FIXED 0
#define VARIABLE_VARIABLE 1
	/* repeat ptr->dims */
	int *variable; 	/* variable flag */
#define SUB_INTEGER 0
#define SUB_TYPE 1
	/* repeat ptr->dims */
	int *subtype; 	/* subscript type */
	/* repeat ptr->dims */
	int *spare; 	/* spare */
	/* repeat ptr->dims */
	int *sid; 	/* sub symbol id */
	/* repeat ptr->dims */
	int *max_variable; 	/* max declaration type flag */
	/* repeat ptr->dims */
	int *maxspare; 	/* max spare */
	/* repeat ptr->dims */
	int *max; 	/* maximum */
	/* repeat ptr->dims */
	int *min_variable; 	/* min declaration type flag */
	/* repeat ptr->dims */
	int *minspare; 	/* min spare */
	/* repeat ptr->dims */
	int *min; 	/* minimum */
	int neg; 	/* negotiation */
};



#define IT_dso_CODE 0x3a
struct IT_dso { 
	int sid; 	/* function name */
	int spupdates; 	/* sp update count */
	/* repeat ptr->spupdates */
	int *address; 	/* update address */
	/* repeat ptr->spupdates */
	int *offset; 	/* offset */
};



#define IT_dln_CODE 0x38
struct IT_dln { 
	int nln; 	/* number of lines */
	/* repeat ptr->nln */
	int *sfn; 	/* source file number */
	/* repeat ptr->nln */
	int *sln; 	/* source line number */
	/* repeat ptr->nln */
	int *section; 	/* section number */
	/* repeat ptr->nln */
	int *from_address; 	/* from address */
	/* repeat ptr->nln */
	int *to_address; 	/* to address */
	/* repeat ptr->nln */
	int *cc; 	/* call count */
	int neg; 	/* neg */
};



#define IT_dpp_CODE 0x46
struct IT_dpp { 
	int end; 	/* start/end */
	int spare; 	/* spare */
	int params; 	/* params */
	int neg; 	/* neg number */
};



#define IT_den_CODE 0x4a
struct IT_den { 
	int end; 	/* start/end */
	int spare; 	/* spare */
	int neg; 	/* neg number */
};



#define IT_dfp_CODE 0x48
struct IT_dfp { 
	int end; 	/* start/end flag */
	int spare; 	/* spare */
	int nparams; 	/* number of parameters */
	int neg; 	/* neg number */
};



#define IT_dds_CODE 0x4c
struct IT_dds { 
	int end; 	/* start/end */
	int spare; 	/* spare */
	int neg; 	/* neg number */
};



#define IT_dpt_CODE 0x50
struct IT_dpt { 
	int neg; 	/* neg number */
	int dunno; 	/* dunno */
};



#define IT_dse_CODE 0x54
struct IT_dse { 
	int neg; 	/* neg number */
	int dunno; 	/* dunno */
};



#define IT_dot_CODE 0x56
struct IT_dot { 
	int unknown; 	/* unknown */
};



#define IT_dss_CODE 0x42
struct IT_dss { 
	int type; 	/* type */
	int internal; 	/* external/internal */
	int spare; 	/* spare */
	char *package;	 /* package name */
	int id; 	/* symbol id */
	int record; 	/* record type */
	char *rules;	 /* rules */
	int nsymbols; 	/* number of symbols */
	int fixme; 	/* unknown */
};



#define IT_pss_CODE 0x40
struct IT_pss { 
	int efn; 	/* negotiation number */
	int ns; 	/* number of source files */
	/* repeat ptr->ns */
	int *drb; 	/* directory reference bit */
	/* repeat ptr->ns */
	int *spare; 	/* spare */
	/* repeat ptr->ns */
	char **fname;	 /* completed file name */
	/* repeat ptr->ns */
	int *dan; 	/* directory apperance number */
	int ndir; 	/* number of directories */
	/* repeat ptr->ndir */
	char **dname;	 /* directory name */
};



#define IT_dus_CODE 0x40
struct IT_dus { 
	int efn; 	/* negotiation number */
	int ns; 	/* number of source files */
	/* repeat ptr->ns */
	int *drb; 	/* directory reference bit */
	/* repeat ptr->ns */
	int *spare; 	/* spare */
	/* repeat ptr->ns */
	char **fname;	 /* completed file name */
	/* repeat ptr->ns */
	int *dan; 	/* directory apperance number */
	int ndir; 	/* number of directories */
	/* repeat ptr->ndir */
	char **dname;	 /* directory name */
};



#define IT_dps_CODE 0x32
struct IT_dps { 
	int end; 	/* start/end flag */
#define BLOCK_TYPE_COMPUNIT 0
#define BLOCK_TYPE_PROCEDURE 2
#define BLOCK_TYPE_FUNCTION 3
#define BLOCK_TYPE_BLOCK 4
#define BLOCK_TYPE_BASIC 9
	int type; 	/* block type */
	int opt; 	/* optimization */
	int san; 	/* section number */
	int address; 	/* address */
	int block_size; 	/* block size */
	int nesting; 	/* nesting */
	int retaddr; 	/* return address */
	int intrflag; 	/* interrupt function flag */
	int stackflag; 	/* stack update flag */
	int intrpagejmp; 	/* intra page JMP */
	int spare; 	/* spare */
	int neg; 	/* neg number */
};
