#include <perms.h>

typedef struct RF {
  int RF;
  float R;
  int I;

} RF;
int XI1;
int *XIN1;
float XR1;
int XI2;
int XI3;
float XCR1 = 3.1415;
float XRA1[9 - 0 + 1];
float *XRAN1;
double XCLR1 = 3.1415;
double XLRA1[9 - 0 + 1];
double *XLRAN1;
int *XINA1[9 - 0 + 1];
int ***XINAN1;
_imp_string XS1;
_imp_string *XSN1;
_imp_string XSA1[7 - 4 + 1];
_imp_string *XSAN1;
_imp_string *XSNA1[7 - 4 + 1];
_imp_string ***XSNAN1;
RF XREC1;
RF *XRECN1;
RF XRECA1[3 - 2 + 1];
RF *XRECAN1;
RF *XRECNA1[3 - 2 + 1];
RF ***XRECNAN1;
int IFN1(void) {
  _imp_enter();
  return (XI1);
  _imp_leave();
}
int *IMAP1(void) {
  _imp_enter();
  return (&XI1);
  _imp_leave();
}
void RT1(void) {
  _imp_enter();
  int I1;
  auto void RT1(void) {
    _imp_enter();

    _imp_leave();
  }

  _imp_leave();
}
int TEST1(void) {
  _imp_enter();
  return (1);
  _imp_leave();
}
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  auto int *IMAP1(void);
  int I1;
  int *IN1;
  short SI1;
  short *SIN1;
  char BI1;
  char *BIN1;
  float R1;
  // reals long
  double QR1;
  // reals normal
  const float CR1 = 3.1415;
  double LR1;
  const double CLR1 = 3.1415;
  auto int IFN1(void) {
    _imp_enter();
    return (I1);
    _imp_leave();
  }
  auto int *IMAP1(void) {
    _imp_enter();
    return (&I1);
    _imp_leave();
  }
  auto void RT1(void) {
    _imp_enter();
    int I1;
    int LOCAL1;
    auto void RT1(void) {
      _imp_enter();
      int LOCAL1;
      LOCAL1 = 1;
      I1 = 1;
      _imp_leave();
    }
    LOCAL1 = 2;
    I1 = 2;
    _imp_leave();
  }
  auto int TEST1(void) {
    _imp_enter();
    return (0);
    _imp_leave();
  }
  float RA1[9 - 0 + 1], RA1B[9 - 0 + 1];
  float RA2[19 - 10 + 1], RA2B[19 - 10 + 1];
  float *RAN1;
  float *RAN2;
  double LRA1[9 - 0 + 1], LRA1B[9 - 0 + 1];
  double LRA2[19 - 10 + 1], LRA2B[19 - 10 + 1];
  double *LRAN1;
  double *LRAN2;
  int *INA1[9 - 0 + 1], *INA1B[9 - 0 + 1];
  int *INA2[19 - 10 + 1], *INA2B[19 - 10 + 1];
  int ***INAN1;
  int ***INAN2;
  _imp_string S1;
  _imp_string S2;
  _imp_string *SN1;
  _imp_string *SN2;
  _imp_string SA1[7 - 4 + 1], SA1B[7 - 4 + 1];
  _imp_string SA2[10 - 9 + 1], SA2B[10 - 9 + 1];
  _imp_string SA3[100 - 1 + 1];
  _imp_string *SAN1;
  _imp_string *SAN2;
  _imp_string *SAN3;
  _imp_string *SNA1[7 - 4 + 1], *SNA2[7 - 4 + 1];
  _imp_string *SNA3[2 - 1 + 1];
  _imp_string ***SNAN1;
  _imp_string ***SNAN2;
  RF REC1;
  RF REC2;
  RF *RECN1;
  RF *RECN2;
  RF RECA1[3 - 2 + 1], RECA2[3 - 2 + 1];
  RF RECA3[5 - 4 + 1];
  RF *RECAN1;
  RF *RECAN2;
  RF *RECNA1[3 - 2 + 1], *RECNA2[3 - 2 + 1];
  RF *RECNA3[2 - 1 + 1];
  RF ***RECNAN1;
  RF ***RECNAN2;
  static int OI1;
  static int *OIN1;
  static float OR1;
  static double OLR1;
  static int OI2;
  static int OI3;
  static float OCR1 = 3.1415;
  static double OCLR1 = 3.1415;
  static float ORA1[9 - 0 + 1];
  static float *ORAN1;
  static double OLRA1[9 - 0 + 1];
  static double *OLRAN1;
  static int *OINA1[9 - 0 + 1];
  static int ***OINAN1;
  static _imp_string OS1;
  static _imp_string *OSN1;
  static _imp_string OSA1[7 - 4 + 1];
  static _imp_string *OSAN1;
  static _imp_string *OSNA1[7 - 4 + 1];
  static _imp_string ***OSNAN1;
  static RF OREC1;
  static RF *ORECN1;
  static RF ORECA1[3 - 2 + 1];
  static RF *ORECAN1;
  static RF *ORECNA1[3 - 2 + 1];
  static RF ***ORECNAN1;
  static void *SW1[255 - 0 + 1] = {
      /* These need to be filled in from associated code block */};
  static void *SW2['z' - 'a' + 1] = {
      /* These need to be filled in from associated code block */};
  int IA3[10 - 1 + 1], IA4[10 - 1 + 1];
  int IA5[11 - 2 + 1][1 - 0 + 1][2 - 0 + 1];
  int *IN3A1[11 - 2 + 1][1 - 0 + 1][2 - 0 + 1];
  I1 = 1;
  XI1 = 1;
  XIN1 = &XI1;
  *XIN1 = 1;
  XR1 = 3.1;
  XI2 = XI3;
  XCR1 = 3.1415;
  XRA1[5] = XCR1;
  XRAN1 = &XRA1;
  XCLR1 = 3.1415;
  XLRA1[2] = 3.1;
  XLRAN1 = &XLRA1;
  *XLRAN1(/*index missing*/) = 3.2;
  XINA1[9] = &XI1;
  XINAN1 = &XINA1;
  _imp_leave();
  exit(0);
  return (0);
}
