#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  static const int Faultevent = 7;
  static const int Faultsub = 1;
  static const int Faultextra = 2;
  void Level5(void) {
    if (_imp_on_event(6)) {
      _imp_string Msg;
      Geteventmessage;
      Printstring(_imp_join(
          _imp_str_literal("At level 5 handling Event ("),
          _imp_join(
              Itos(Getevent, 0),
              _imp_join(
                  _imp_str_literal(","),
                  _imp_join(Itos(Geteventsub, 0),
                            _imp_join(_imp_str_literal(","),
                                      _imp_join(Itos(Geteventinfo, 0),
                                                _imp_str_literal(")"))))))));
      Newline();
      Printstring(_imp_join(_imp_str_literal("Error message ='"),
                            _imp_join(Msg, _imp_str_literal("'"))));
      Newline();
      goto Lev5;
    }
    Printstring(_imp_str_literal("Inside Level 5"));
    Newline();
    _imp_signal(7, Faultsub, Faultextra, _imp_str_literal(""));
  Lev5:;
    Printstring(_imp_str_literal("Reached lev5"));
    Newline();
  }
  void Level4(void) {
    if (_imp_on_event(5)) {
      _imp_string Msg;
      Geteventmessage;
      Printstring(_imp_join(
          _imp_str_literal("At level 4 handling Event ("),
          _imp_join(
              Itos(Getevent, 0),
              _imp_join(
                  _imp_str_literal(","),
                  _imp_join(Itos(Geteventsub, 0),
                            _imp_join(_imp_str_literal(","),
                                      _imp_join(Itos(Geteventinfo, 0),
                                                _imp_str_literal(")"))))))));
      Newline();
      Printstring(_imp_join(_imp_str_literal("Error message ='"),
                            _imp_join(Msg, _imp_str_literal("'"))));
      Newline();
      goto Lev4;
    }
    Printstring(_imp_str_literal("Inside Level 4"));
    Newline();
    Level5();
  Lev4:;
    Printstring(_imp_str_literal("Reached lev4"));
    Newline();
  }
  void Level3(void) {
    if (_imp_on_event(4)) {
      _imp_string Msg;
      Geteventmessage;
      Printstring(_imp_join(
          _imp_str_literal("At level 3 handling Event ("),
          _imp_join(
              Itos(Getevent, 0),
              _imp_join(
                  _imp_str_literal(","),
                  _imp_join(Itos(Geteventsub, 0),
                            _imp_join(_imp_str_literal(","),
                                      _imp_join(Itos(Geteventinfo, 0),
                                                _imp_str_literal(")"))))))));
      Newline();
      Printstring(_imp_join(_imp_str_literal("Error message ='"),
                            _imp_join(Msg, _imp_str_literal("'"))));
      Newline();
      goto Lev3;
    }
    Printstring(_imp_str_literal("Inside Level 3"));
    Newline();
    Level4();
  Lev3:;
    Printstring(_imp_str_literal("Reached lev3"));
    Newline();
  }
  void Level2(void) {
    if (_imp_on_event(3)) {
      _imp_string Msg;
      Geteventmessage;
      Printstring(_imp_join(
          _imp_str_literal("At level 2 handling Event ("),
          _imp_join(
              Itos(Getevent, 0),
              _imp_join(
                  _imp_str_literal(","),
                  _imp_join(Itos(Geteventsub, 0),
                            _imp_join(_imp_str_literal(","),
                                      _imp_join(Itos(Geteventinfo, 0),
                                                _imp_str_literal(")"))))))));
      Newline();
      Printstring(_imp_join(_imp_str_literal("Error message ='"),
                            _imp_join(Msg, _imp_str_literal("'"))));
      Newline();
      goto Lev2;
    }
    Printstring(_imp_str_literal("Inside Level 2"));
    Newline();
    Level3();
  Lev2:;
    Printstring(_imp_str_literal("Reached lev2"));
    Newline();
  }
  void Level1(void) {
    if (_imp_on_event(2)) {
      _imp_string Msg;
      Geteventmessage;
      Printstring(_imp_join(
          _imp_str_literal("At level 1 handling Event ("),
          _imp_join(
              Itos(Getevent, 0),
              _imp_join(
                  _imp_str_literal(","),
                  _imp_join(Itos(Geteventsub, 0),
                            _imp_join(_imp_str_literal(","),
                                      _imp_join(Itos(Geteventinfo, 0),
                                                _imp_str_literal(")"))))))));
      Newline();
      Printstring(_imp_join(_imp_str_literal("Error message ='"),
                            _imp_join(Msg, _imp_str_literal("'"))));
      Newline();
      goto Lev1;
    }
    Printstring(_imp_str_literal("Inside Level 1"));
    Newline();
    Level2();
  Lev1:;
    Printstring(_imp_str_literal("Reached lev1"));
    Newline();
  }
  if (_imp_on_event(1)) {
    _imp_string Msg;
    Geteventmessage;
    Printstring(_imp_join(
        _imp_str_literal("At level 0 handling Event ("),
        _imp_join(
            Itos(Getevent, 0),
            _imp_join(
                _imp_str_literal(","),
                _imp_join(Itos(Geteventsub, 0),
                          _imp_join(_imp_str_literal(","),
                                    _imp_join(Itos(Geteventinfo, 0),
                                              _imp_str_literal(")"))))))));
    Newline();
    Printstring(_imp_join(_imp_str_literal("Error message ='"),
                          _imp_join(Msg, _imp_str_literal("'"))));
    Newline();
    goto Lev0;
  }
  Printstring(_imp_str_literal("Inside level 0"));
  Newline();
  Level1();
Levm1:;
  Printstring(_imp_str_literal("Reached label levm1"));
  Newline();
  goto Theend;
Lev0:;
  Printstring(_imp_str_literal("Reached label lev0"));
  Newline();
  goto Theend;
Theend:;
  Cleardebug;
  exit(0);
  return (1);
}
