
/*******************************************
****    File generated by Tree2C V1.0   ****
**** (c) 2017-2019, Alessandro Pedretti ****
********************************************/


#define  VGVLL
#include <vega.h>
#include <graphappz.h>
#include <hdcharge.h>
#include <hdstring.h>
#include <stdio.h>

#include <hdargs.h>
#include <hddir.h>
#include <hdfile.h>
#include <hdprocess.h>
#include <hdtime.h>

/**** Window parameters ****/

#define  T2C_ABWWIDTH     300    /* Abort window width  */
#define  T2C_ABWHEIGHT    104    /* Abort window height */
#define  T2C_BTWIDTH       89    /* Button width        */
#define  T2C_BTHEIGHT      25    /* Button height       */

/**** Output values ****/

#define  T2C_RANDOM_FOREST_MOPAC_0        0
#define  T2C_RANDOM_FOREST_MOPAC_1        1

/**** Data types ****/

typedef struct {
  float    ASA;
  float    Angles;
  float    Atoms;
  float    Bonds;
  float    CORE_CORE_REPULSION;
  float    COSMO_AREA;
  float    COSMO_VOLUME;
  float    Charge;
  float    ChiralAtms;
  float    DIPOLE;
  float    Dipole;
  float    ELECTRONIC_ENERGY;
  float    EzBnds;
  float    FlexTorsions;
  float    Gyrrad;
  float    HEAT_OF_FORMATION;
  float    HOMO_ENERGY;
  float    HbAcc;
  float    HbDon;
  float    HbTot;
  float    HeavyAtoms;
  float    IONIZATION_POTENTIAL;
  float    Impropers;
  float    LUMO_ENERGY;
  float    Lipole;
  float    MOLECULAR_WEIGHT;
  float    Mass;
  float    NO__OF_FILLED_LEVELS;
  float    Ovality;
  float    Psa;
  float    Rings;
  float    Sas;
  float    Sav;
  float    Sdiam;
  float    Surface;
  float    TOTAL_ENERGY;
  float    Torsions;
  float    Vdiam;
  float    VirtualLogP;
  float    Volume;
} T2C_RANDOM_FOREST_MOPAC_INPUT;

/**** Prototypes ****/

int                 T2C_RANDOM_FOREST_MOPAC_Classify(T2C_RANDOM_FOREST_MOPAC_INPUT *Input);
int                 T2C_RANDOM_FOREST_MOPAC_DomCheck(T2C_RANDOM_FOREST_MOPAC_INPUT *Input);
HD_BOOL             T2C_RANDOM_FOREST_MOPAC_ClassifyMol(HD_LONG *Class, HD_LONG *Violations, HD_ATOM *Atm, HD_ULONG TotAtm);
HD_VOID             BT_AbortClick(GAZ_BUTTON b);
HD_LONG HD_CALLBACK CalcThread(HD_VOID *Arg);
HD_VOID             Error(const HD_CHAR *Err);
float               CalcGyrrad(HD_ATOM *Atm);
float               VegaGetAtt(const HD_CHAR *Att);

/**** MOPAC keywords ****/

#define  T2C_MOPAC_KEYS                          "PM7 GEO-OK MMOK 1SCF"

/**** MOPAC properties ****/

#define  T2C_MOPAC_CORE_CORE_REPULSION           0
#define  T2C_MOPAC_COSMO_AREA                    1
#define  T2C_MOPAC_COSMO_VOLUME                  2
#define  T2C_MOPAC_DE_TOTAL                      3
#define  T2C_MOPAC_DN_TOTAL                      4
#define  T2C_MOPAC_DIPOLE                        5
#define  T2C_MOPAC_ELECTRONIC_ENERGY             6
#define  T2C_MOPAC_HEAT_OF_FORMATION             7
#define  T2C_MOPAC_HOMO_ENERGY                   8
#define  T2C_MOPAC_IONIZATION_POTENTIAL          9
#define  T2C_MOPAC_LUMO_ENERGY                   10
#define  T2C_MOPAC_MULLIKEN_ELECTRONEGATIVITY    11
#define  T2C_MOPAC_NO_OF_FILLED_LEVELS           12
#define  T2C_MOPAC_PARR_POPLE_ABSOLUTE_HARDNESS  13
#define  T2C_MOPAC_PIS_TOTAL                     14
#define  T2C_MOPAC_SCHUURMANN_MO_SHIFT_ALPHA     15
#define  T2C_MOPAC_TOTAL_ENERGY                  16

#define  T2C_MOPAC_NUM_OF_PROPERTIES             17

/**** MOPAC global variables ****/

float                 MopacProp[T2C_MOPAC_NUM_OF_PROPERTIES];
HD_PROC               hMopac = NULL;

/**** MOPAC prototypes ****/

HD_BOOL MopacRun(HD_PROC hProc, const HD_CHAR *MopacKeys);

/**** Labels ****/

const HD_CHAR *     MsgAborted          = "Aborted by user";
const HD_CHAR *     MsgBtAbort          = "Abort";
const HD_CHAR *     MsgCsvFile          = " - Classification.csv";
const HD_CHAR *     MsgCsvHdr           = "Molecule;Class;Violations\n";
const HD_CHAR *     MsgCsvSave          = "SaveDlg \"Save classification file...\" "
                                          "\"%a\" \"Comma separates values (*.csv)|*.csv\" 1";
const HD_CHAR *     MsgDbOpen           = "OpenDlg \"Open database...\" \"\" \""
                                          "All supported databases|*.accdb;*.db;*.dsn;*.mdb;*.mol2;*.ml2;*.sdf;*.smi;*.txt;*.zip|"
                                          "Access (*.mdb;*.accdb)|*.mdb;*.accdb|"
                                          "Mol2 (*.mol2;*.ml2)|*.mol2;*.ml2|"
                                          "ODBC data source (*.dsn)|*.dsn|"
                                          "SDF file (*.sdf)|*.sdf|"
                                          "SMILES (*.smi;*.txt)|*.smi;*.txt|"
                                          "SQLite (*.db)|*.db|"
                                          "Zip archive (*.zip)|*.zip"
                                          "\" 1";
const HD_CHAR *     MsgDone             = "Done";
const HD_CHAR *     MsgError            = "ERROR";
const HD_CHAR *     MsgInit             = "Initializing...";
const HD_CHAR *     MsgPred             = "  Predicted class....: %d\n"
                                          "  Domain violations..: %d (0 for a better prediction)\n\n";
const HD_CHAR *     MsgPredMol          = "Classifying molecule %u/%u";
const HD_CHAR *     MsgProg             = "* Performing the classification\n";
const HD_CHAR *     MsgProgTitle        = "Database classification";
const HD_CHAR *     MsgWaiting          = "Waiting for the next iteration...";

const HD_CHAR *     MsgWarnNoPred       = "  WARNING: There are %u/%u molecules not classified.\n"
                                          "           For more detail, see the output file.\n";

const HD_CHAR *     MsgErrCalc          = "A calculation is already running";
const HD_CHAR *     MsgErrCsvCreate     = "Can't create the output file";
const HD_CHAR *     MsgErrCsvHdr        = "Can't write the header";
const HD_CHAR *     MsgErrCsvWrt        = "Can't write the output file";
const HD_CHAR *     MsgErrDbEmpty       = "Empty database";
const HD_CHAR *     MsgErrDbNotFound    = "Database not found";
const HD_CHAR *     MsgErrMopacRun      = "Can't run MOPAC";
const HD_CHAR *     MsgErrMopacSave     = "Unable to save the input file for MOPAC";

/**** Global  variables ****/

GAZ_LABEL           LBL_Abort;
GAZ_WINDOW          hAbort;
HD_LONG             Mols;

FILE *              FH        = NULL;
GAZ_APPLICATION     AppHandle = NULL;
HD_BOOL             Running   = TRUE;
HD_STRING           hDb       = NULL;
HD_THREAD           hThread   = NULL;
HD_ULONG            Errors    = 0;


/**** Main code ****/

int VllMain(VGP_VEGAINFO *VegaInfo)
{
  HD_LONG           Class, Violations;
  HD_STRING         Result;

  HD_STRING         DbFile  = NULL;
  HD_STRING         OutFile = NULL;

  /**** Translate the labels ****/

  if (!strcmp(VgLanguage, "italiano")) {
    MsgAborted          = "Arrestato dall'utente";
    MsgBtAbort          = "Arresta";
    MsgCsvFile          = " - Classificazione.csv";
    MsgCsvHdr           = "Molecola;Classe;Violazioni\n";
    MsgCsvSave          = "SaveDlg \"Salva il file della classificazione...\" "
                          "\"%a\" \"Valori separati da virgola (*.csv)|*.csv\" 1";
    MsgDbOpen           = "OpenDlg \"Apri il database...\" \"\" \""
                          "Tutti i database supportati|*.accdb;*.db;*.dsn;*.mdb;*.mol2;*.ml2;*.sdf;*.smi;*.txt;*.zip|"
                          "Access (*.mdb;*.accdb)|*.mdb;*.accdb|"
                          "Mol2 (*.mol2;*.ml2)|*.mol2;*.ml2|"
                          "ODBC data source (*.dsn)|*.dsn|"
                          "SDF file (*.sdf)|*.sdf|"
                          "SMILES (*.smi;*.txt)|*.smi;*.txt|"
                          "SQLite (*.db)|*.db|"
                          "Archivio Zip (*.zip)|*.zip"
                          "\" 1";
    MsgDone             = "Fatto";
    MsgError            = "ERRORE";
    MsgInit             = "Inizializzazione...";
    MsgPred             = "  Classe predetta....: %d\n"
                          "  Violazioni dominio.: %d (0 per una migliore predizione)\n\n";
    MsgPredMol          = "Classifico la molecola %u/%u";
    MsgProg             = "* Eseguo la classificazione\n";
    MsgProgTitle        = "Classificazione del database";
    MsgWaiting          = "Attendo la prossima iterazione...";

    MsgWarnNoPred       = "  ATTENZIONE: Non sono state classificate %u/%u molecole.\n"
                          "              Per maggiori informazioni, vedi il file di output.\n";

    MsgErrCalc          = "E' già in esecuzione un calcolo";
    MsgErrCsvCreate     = "Impossibile creare il file di output";
    MsgErrCsvHdr        = "Impossibile scrivere l'intestazione del file";
    MsgErrCsvWrt        = "Impossibile scrivere il file di output";
    MsgErrDbEmpty       = "Il database è vuoto";
    MsgErrDbNotFound    = "Database non trovato";
    MsgErrMopacRun      = "Impossibile eseguire MOPAC";
    MsgErrMopacSave     = "Impossibile salvare il file di input per MOPAC";
  }

  /**** Check if a calculation is already running ****/

  if (VegaIsCalc()) {
    Error(MsgErrCalc);
    return 0;
  }
  Result = HD_StrNew();

  /**** MOPAC setup ****/

  hMopac = HD_ProcNew();
  VegaCmdSafe(hMopac -> FileName, "Get MopacExe");
  VegaCmdSafe(Result, "Get TmpDir");
  HD_StrPrintC(hMopac -> Directory, "%amopac_%u", Result, HD_GetTickCount());
  HD_StrCpyC(hMopac -> Param, "molecule.dat");
  hMopac -> Flags = HD_PROCFLG_NOWIN|HD_PROCFLG_WAIT;
  HD_ProcSetPri(hMopac, HD_PRI_LOW);
  HD_DirCreate(hMopac -> Directory);

  /*
   * If there is a molecule in the workspace, a single classification is performed,
   * otherwise a file requester is shown to select an input database. In this case,
   * the classification is performed for all molecules of the database.
   */

  if (VegaIsEmpty()) {
    DbFile = HD_StrNew();
    VegaCmdSafe(DbFile, MsgDbOpen);
    if (HD_StrIsEmpty(DbFile)) goto ExitErr;

    /**** Open the database ****/

    hDb = HD_StrNew();
    VegaCmdSafe(hDb, "DbOpen \"%a\"", DbFile);
    if (*hDb -> Cstr == '0') {
      Error(MsgErrDbNotFound);
      goto ExitErr;
    }

    /**** Check the number of molecules ****/

    VegaCmdSafe(Result, "DbInfo %a Molecules", hDb);
    if ((Mols = HD_Str2Uint(Result)) == 0) {
      Error(MsgErrDbEmpty);
      goto ExitErr;
    }

    /**** Ask for the output file ****/

    OutFile = HD_StrCpy(NULL, DbFile);
    HD_StrChangeExtC(OutFile, NULL);
    HD_StrCatC(OutFile, MsgCsvFile);
    VegaCmdSafe(OutFile, MsgCsvSave, OutFile);
    if (HD_StrIsEmpty(OutFile)) goto ExitErr;

    /**** Create the output file ****/

    if ((FH = fopen(OutFile -> Cstr + 2, "w")) == NULL) {
      Error(MsgErrCsvCreate);
      goto ExitErr;
    }

    /**** Write the header ****/

    if (fprintf(FH, MsgCsvHdr) <= 0) {
      Error(MsgErrCsvHdr);
      goto ExitErr;
    }
  }

  VegaCmdSafe(NULL, "Cursor Busy");
  VegaCmdSafe(NULL, "WksLock");
  VegaPrint(MsgProg);

  /**** Perform the classification ****/

  if (FH) {
    GAZ_FONT      f;
    GAZ_PANEL     p;
    GAZ_RECT      r;

    /**** Create the abort window ****/

    r.x             = 0;
    r.y             = 0;
    r.width         = T2C_ABWWIDTH;
    r.height        = T2C_ABWHEIGHT;
    f               = gazFontNew("MS Sans Serif", GAZ_FS_PLAIN, -11);
    hAbort          = gazWindowNew(MsgProgTitle, r,
                                   GAZ_WIN_CENTERED|GAZ_WIN_MAGFIELD|GAZ_WIN_TOOLWIN|
                                   GAZ_WIN_ALPHA|GAZ_WIN_ALPHAOVERLAP|GAZ_WIN_TITLEBAR|
                                   GAZ_WIN_TEXBACK);
    r.x             = 4;
    r.y             = 4;
    r.width        -= 14;
    r.height        = T2C_ABWHEIGHT - T2C_BTHEIGHT - 44;
    p               = gazPanelNew(hAbort, NULL, r, GAZ_PANEL_BEVIN_RAISED|GAZ_PANEL_BEVKING_NONE|GAZ_PANEL_BEVOUT_LOW);
    r               = gazRect(8, 8, T2C_ABWWIDTH - 30, 18);
    LBL_Abort       = gazLabelNew(p, MsgInit, r, GAZ_ALIGN_CENTER); gazSetFont(LBL_Abort, f);

    /**** Abort button ****/

    gazButtonNew(hAbort, MsgBtAbort, gazRect((T2C_ABWWIDTH  - T2C_BTWIDTH ) >> 1,
                                              T2C_ABWHEIGHT - T2C_BTHEIGHT - 32,
                                              T2C_BTWIDTH, T2C_BTHEIGHT), BT_AbortClick);

    /**** Show the window ****/

    gazWindowShow(hAbort);

    VegaCmdSafe(NULL, "UndoEnable 0");
    VegaCmdSafe(NULL, "Turbo 1");

    /**** Start the calculation thread ****/

    hThread = HD_MthCreateThread(CalcThread, NULL);

    /**** Wait loop ****/

    gazAppRun(&AppHandle);
    if (hThread) {
      HD_MthWaitThread(hThread);
      HD_MthCloseThread(hThread);
      if (Errors)
        VegaPrint(MsgWarnNoPred, Errors, Mols);

      VegaPrint("* %s\n", Running ? MsgDone : MsgAborted);
    }
    gazAppTerminate(AppHandle);

    VegaCmdSafe(NULL, "New");
    VegaCmdSafe(NULL, "Turbo 0");
    VegaCmdSafe(NULL, "UndoEnable 1");
  } else {
    if (T2C_RANDOM_FOREST_MOPAC_ClassifyMol(&Class, &Violations, VegaFirstAtom, VegaTotAtom)) {
      VegaPrint(MsgPred, Class, Violations);
    }
  }

  VegaCmdSafe(NULL, "WksUnLock");
  VegaCmdSafe(NULL, "Cursor Default");

ExitErr:

  if (hMopac) {
    if (!HD_StrIsEmpty(hMopac -> Directory))
      HD_DirRemove(hMopac -> Directory, HD_REMOVE_RECURSIVE);
    HD_ProcFree(hMopac);
  }

  if (FH) fclose(FH);
  if (!HD_StrIsEmpty(hDb)) VegaCmdSafe(NULL, "DbClose %a", hDb);
  HD_StrFree(DbFile);
  HD_StrFree(hDb);
  HD_StrFree(OutFile);
  HD_StrFree(Result);

  return 0;
}


/**** Abort button click ****/

HD_VOID BT_AbortClick(GAZ_BUTTON b)
{
  gazSetText(LBL_Abort, MsgWaiting);
  gazEnabled(b, FALSE);
  Running = FALSE;
}


/**** Database classification ****/

HD_LONG HD_CALLBACK CalcThread(HD_VOID *Arg)
{
  HD_LONG           Class, Ret, Violations;
  HD_ULONG          k;

  HD_STRING         MolName = HD_StrNew();

  for(k = 0; (k < Mols) && (Running); ++k) {

    /**** Update the progress ****/

    HD_StrPrintC(MolName, MsgPredMol, k + 1, Mols);
    gazSetText(LBL_Abort, MolName -> Cstr);

    VegaCmdSafe(NULL   , "DbGetID %a %u Replace", hDb, k);
    VegaCmdSafe(MolName, "DbInfo %a CurMolName" , hDb);
    HD_StrTrim(MolName);

    /**** Write the molecule name ****/

    if (fprintf(FH, (HD_StrFindChar(MolName, ';', 0) == -1) ?
                "%s" : "\"%s\"", MolName -> Cstr) <= 0) {
      Error(MsgErrCsvWrt);
      break;
    }

    /**** Perform the classification ****/

    if (T2C_RANDOM_FOREST_MOPAC_ClassifyMol(&Class, &Violations, VegaFirstAtom, VegaTotAtom))
      Ret = fprintf(FH, ";%d;%d\n", Class, Violations);
    else {
      Ret = fprintf(FH, ";ERR;ERR\n");
      ++Errors;
    }

    if (Ret <= 0) {
      Error(MsgErrCsvWrt);
      break;
    }
  } /* End of for (k) */

  /**** Free the resources ****/

  HD_StrFree(MolName);

  /**** Close the application ****/

  gazAppTerminate(AppHandle);

  return 0;
}


/**** Show an error message ****/

HD_VOID Error(const HD_CHAR *Err)
{
  VegaCmdSafe(NULL, "MessageBox \"%s.\" \"%s\" 16", Err, MsgError);
}


/**** Calculate the gyration radius ****/

float CalcGyrrad(HD_ATOM *Atm)
{
  HD_XYZF        Center;

  HD_AtmsCalcMassCent(Atm, &Center, FALSE);

  return HD_AtmsCalcGyrRad(Atm, &Center, FALSE);
}


/**** Run MOPAC ****/

HD_BOOL MopacRun(HD_PROC hProc, const HD_CHAR *MopacKeys)
{
  FILE          *InFH, *OutFH;
  float         Charge;
  HD_CHAR       Buf[256];
  HD_LONG       ChargeI;
  HD_STRING     DestFile, SrcFile;

  HD_BOOL       Ret = FALSE;

  SrcFile = HD_StrCpy(NULL, hProc -> Directory);
  HD_StrCatChar(SrcFile, HD_DIRSEPC);
  DestFile = HD_StrCpy(NULL, SrcFile);
  HD_StrCatC(DestFile, "molecule.dat");
  HD_StrCatC(SrcFile, "temp.dat");

  /**** Save the input file ****/

  VegaCmdSafe(NULL, "Save \"%a\" MopCar none 7", SrcFile);

  /**** Get the total charge ****/

  if (HD_ChargeChk(&Charge, VegaFirstAtom, FALSE))
    ChargeI = (HD_LONG)floor(Charge + 0.5);
  else
    HD_ChargeTotal(&ChargeI, VegaFirstAtom, FALSE);

  /**** Change the input file with the right charge ****/

  if ((InFH = fopen(SrcFile -> Cstr, "r")) != NULL) {
    fgets(Buf, sizeof(Buf), InFH);
    if ((OutFH = fopen(DestFile -> Cstr, "w")) != NULL) {
      if (fprintf(OutFH, "%s CHARGE=%d\n", MopacKeys, ChargeI) > 0) {
        while(fgets(Buf, sizeof(Buf), InFH))
          fputs(Buf, OutFH);
        Ret = TRUE;
      }
      fclose(OutFH);
    }
    fclose(InFH);
    HD_FileRemove(SrcFile, HD_REMOVE_NONE);
  }

  /**** Run MOPAC ****/

  if (Ret) {
    if (HD_ProcRunEx(hProc)) {

      /**** Read the output ****/

      Ret = FALSE;
      HD_StrChangeExtC(DestFile, "arc");
      if ((InFH = fopen(DestFile -> Cstr, "r")) != NULL) {
        HD_ARGS  hArg1 = HD_ArgsAlloc();
        HD_ARGS  hArg2 = HD_ArgsAlloc();

        while(fgets(Buf, sizeof(Buf), InFH)) {
          if (!strncmp(Buf, "          FINAL GEOMETRY OBTAINED", 33)) {
            Ret = TRUE;
            break;
          }
          if (HD_ArgsParseStrEx(hArg1, Buf, "=\n\r") < 2) continue;
          HD_StrCpyC(SrcFile, HD_ArgsGetCharEx(hArg1, 0));
          HD_StrTrim(SrcFile);

          if (!HD_StrCmpC(SrcFile, "HOMO LUMO ENERGIES (EV)")) {
            sscanf(HD_ArgsGetCharEx(hArg1, 1), "%15f%f",
                   MopacProp + T2C_MOPAC_HOMO_ENERGY,
                   MopacProp + T2C_MOPAC_LUMO_ENERGY);
          } else {
            float    Val;

            if (HD_ArgsParseStrEx(hArg2, HD_ArgsGetCharEx(hArg1, 1), NULL) < 1)
              continue;

            Val = HD_ArgsGetFloatEx(hArg2, 0);
            if (!HD_StrCmpC(SrcFile, "CORE-CORE REPULSION"))
              MopacProp[T2C_MOPAC_CORE_CORE_REPULSION] = Val;
            else if (!HD_StrCmpC(SrcFile, "COSMO AREA"))
              MopacProp[T2C_MOPAC_COSMO_AREA] = Val;
            else if (!HD_StrCmpC(SrcFile, "COSMO VOLUME"))
              MopacProp[T2C_MOPAC_COSMO_VOLUME] = Val;
            else if (!HD_StrCmpC(SrcFile, "DIPOLE"))
              MopacProp[T2C_MOPAC_DIPOLE] = Val;
            else if (!HD_StrCmpC(SrcFile, "ELECTRONIC ENERGY"))
              MopacProp[T2C_MOPAC_ELECTRONIC_ENERGY] = Val;
            else if (!HD_StrCmpC(SrcFile, "HEAT OF FORMATION"))
              MopacProp[T2C_MOPAC_HEAT_OF_FORMATION] = Val;
            else if (!HD_StrCmpC(SrcFile, "IONIZATION POTENTIAL"))
              MopacProp[T2C_MOPAC_IONIZATION_POTENTIAL] = Val;
            else if (!HD_StrCmpC(SrcFile, "NO. OF FILLED LEVELS"))
              MopacProp[T2C_MOPAC_NO_OF_FILLED_LEVELS] = Val;
            else if (!HD_StrCmpC(SrcFile, "TOTAL ENERGY"))
              MopacProp[T2C_MOPAC_TOTAL_ENERGY] = Val;
          }
        } /* End of while */
        fclose(InFH);
        HD_FileRemove(DestFile, HD_REMOVE_NONE);
        HD_ArgsFree(hArg1);
        HD_ArgsFree(hArg2);
      }
    } else Error(MsgErrMopacRun);
  } else Error(MsgErrMopacSave);

  HD_StrFree(DestFile);
  HD_StrFree(SrcFile);

  return Ret;
}


/**** Get a value from VEGA ****/

float VegaGetAtt(const HD_CHAR *Att)
{
  float          Val;
  HD_STRING      Result = HD_StrNew();

  VegaCmdSafe(Result, "Get %s", Att);
  Val = HD_Str2Float(Result);
  HD_StrFree(Result);

  return Val;
}


/***** Calculate the attributes and do the classification ****/

HD_BOOL T2C_RANDOM_FOREST_MOPAC_ClassifyMol(HD_LONG *Class, HD_LONG *Violations, HD_ATOM *Atm, HD_ULONG TotAtm)
{
  T2C_RANDOM_FOREST_MOPAC_INPUT      Input;

  *Violations = 0;

  /**** Check the atom charges ****/

  if (!HD_ChargeChk(NULL, Atm, FALSE))
      VegaCmdSafe(NULL, "Charge Gasteiger 0");

  /**** Calculate MOPAC parameters ****/

  if (!MopacRun(hMopac, T2C_MOPAC_KEYS))
    return FALSE;

  /**** Calculate the attributes ****/

  Input.ASA                  = VegaGetAtt("Area") - VegaGetAtt("Psa");
  Input.Angles               = (float)HD_CountAngle(Atm);
  Input.Atoms                = (float)TotAtm;
  Input.Bonds                = (float)HD_CountBond(Atm, FALSE);
  Input.CORE_CORE_REPULSION  = MopacProp[T2C_MOPAC_CORE_CORE_REPULSION];
  Input.COSMO_AREA           = MopacProp[T2C_MOPAC_COSMO_AREA];
  Input.COSMO_VOLUME         = MopacProp[T2C_MOPAC_COSMO_VOLUME];
  Input.Charge               = VegaGetAtt("Charge");
  Input.ChiralAtms           = VegaGetAtt("TotChiral");
  Input.ELECTRONIC_ENERGY    = MopacProp[T2C_MOPAC_ELECTRONIC_ENERGY];
  Input.EzBnds               = VegaGetAtt("TotEz");
  Input.FlexTorsions         = VegaGetAtt("FlexTor");
  Input.Gyrrad               = CalcGyrrad(Atm);
  Input.HEAT_OF_FORMATION    = MopacProp[T2C_MOPAC_HEAT_OF_FORMATION];
  Input.HOMO_ENERGY          = MopacProp[T2C_MOPAC_HOMO_ENERGY];
  Input.HbAcc                = (float)HD_CountHbondAtm(TRUE, Atm, HD_HBOND_CHK_N|HD_HBOND_CHK_O, FALSE);
  Input.HbDon                = (float)HD_CountHbondAtm(FALSE, Atm, HD_HBOND_CHK_N|HD_HBOND_CHK_O, FALSE);
  Input.HbTot                = (float)(HD_CountHbondAtm(TRUE, Atm, HD_HBOND_CHK_N|HD_HBOND_CHK_O, FALSE) + HD_CountHbondAtm(FALSE, Atm, HD_HBOND_CHK_N|HD_HBOND_CHK_O, FALSE));
  Input.HeavyAtoms           = (float)HD_CountHeavy(Atm, FALSE);
  Input.IONIZATION_POTENTIAL = MopacProp[T2C_MOPAC_IONIZATION_POTENTIAL];
  Input.Impropers            = VegaGetAtt("TotImp");
  Input.LUMO_ENERGY          = MopacProp[T2C_MOPAC_LUMO_ENERGY];
  Input.Lipole               = VegaGetAtt("BmLipole");
  Input.MOLECULAR_WEIGHT     = HD_Mass(Atm);
  Input.Mass                 = HD_Mass(Atm);
  Input.NO__OF_FILLED_LEVELS = MopacProp[T2C_MOPAC_NO_OF_FILLED_LEVELS];
  Input.Ovality              = VegaGetAtt("Ovality");
  Input.Psa                  = VegaGetAtt("Psa");
  Input.Rings                = (float)HD_CountRings(Atm, TotAtm);
  Input.Sas                  = VegaGetAtt("Sas");
  Input.Sav                  = VegaGetAtt("Sav");
  Input.Sdiam                = VegaGetAtt("Sdiam");
  Input.Surface              = VegaGetAtt("Area");
  Input.TOTAL_ENERGY         = MopacProp[T2C_MOPAC_TOTAL_ENERGY];
  Input.Torsions             = VegaGetAtt("TotTor");
  Input.Vdiam                = VegaGetAtt("Vdiam");
  Input.VirtualLogP          = VegaGetAtt("VLogP");
  Input.Volume               = VegaGetAtt("Volume");

  HD_Dipole(&Input.DIPOLE, NULL, Atm, FALSE);
  HD_Dipole(&Input.Dipole, NULL, Atm, FALSE);

  /**** Check the domain of the attributes ****/

  *Violations = T2C_RANDOM_FOREST_MOPAC_DomCheck(&Input);

  /**** Perform the classification ****/

  *Class = T2C_RANDOM_FOREST_MOPAC_Classify(&Input);

  return TRUE;
}



/**** Classification code ****/

/*
 * Return the class code
 */

int T2C_RANDOM_FOREST_MOPAC_Classify(T2C_RANDOM_FOREST_MOPAC_INPUT *Input)
{
  int     Res;
  int     Occur[2];

  Occur[T2C_RANDOM_FOREST_MOPAC_0] = 0;
  Occur[T2C_RANDOM_FOREST_MOPAC_1] = 0;

  /**** Tree #1 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> Dipole < 2.8500f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Vdiam < 8.1900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HOMO_ENERGY < -8.2700f) {
          if (Input -> HbDon < 2.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Torsions < 21.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  } else {
    if (Input -> Sav < 1283.7800f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HEAT_OF_FORMATION < -0.6300f) {
        if (Input -> Lipole < 3.9400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
          if (Input -> HbDon < 6.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #2 ****/

  if (Input -> HbAcc < 5.5000f) {
    if (Input -> FlexTorsions < 9.5000f) {
      if (Input -> VirtualLogP < 3.0100f) {
        if (Input -> HEAT_OF_FORMATION < -63.7200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> VirtualLogP < 1.8000f) {
            if (Input -> Sas < 538.9700f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Gyrrad < 5.5100f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> Angles < 86.0000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> Lipole < 5.2700f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> VirtualLogP < 3.7700f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #3 ****/

  if (Input -> LUMO_ENERGY < -1.6600f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Psa < 125.9900f) {
      if (Input -> Bonds < 35.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> VirtualLogP < 1.8300f) {
          if (Input -> Mass < 376.4300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> FlexTorsions < 8.5000f) {
            if (Input -> Lipole < 0.8900f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> LUMO_ENERGY < -0.9400f) {
                if (Input -> Angles < 82.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            if (Input -> Torsions < 18.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      }
    } else {
      if (Input -> Sas < 816.9700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 6.4100f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #4 ****/

  if (Input -> VirtualLogP < 3.9200f) {
    if (Input -> HbAcc < 5.5000f) {
      if (Input -> Angles < 61.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sas < 663.2300f) {
          if (Input -> Surface < 383.6400f) {
            if (Input -> Torsions < 24.0000f) {
              if (Input -> FlexTorsions < 8.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> DIPOLE < 5.7900f) {
            if (Input -> TOTAL_ENERGY < -5164.5800f) {
              if (Input -> ELECTRONIC_ENERGY < -43051.9600f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  }

  ++Occur[Res];

  /**** Tree #5 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> Bonds < 35.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Ovality < 1.7800f) {
        if (Input -> Gyrrad < 4.8200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Sav < 1002.6100f) {
              if (Input -> Bonds < 42.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> VirtualLogP < 3.2900f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HOMO_ENERGY < -8.7100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #6 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Vdiam < 9.0700f) {
      if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
        if (Input -> Mass < 343.4200f) {
          if (Input -> Surface < 365.7300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Dipole < 3.2500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Ovality < 1.7600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      } else {
        if (Input -> HbTot < 9.5000f) {
          if (Input -> Lipole < 4.1700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Dipole < 3.6500f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Sdiam < 12.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #7 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Volume < 391.4300f) {
      if (Input -> Ovality < 1.6600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 4.8700f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> HbTot < 8.5000f) {
            if (Input -> Angles < 77.5000f) {
              if (Input -> ELECTRONIC_ENERGY < -29645.4500f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              if (Input -> VirtualLogP < 2.5600f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      if (Input -> Bonds < 64.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbDon < 6.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> COSMO_VOLUME < 446.8700f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #8 ****/

  if (Input -> HEAT_OF_FORMATION < 84.3800f) {
    if (Input -> Sav < 1075.5700f) {
      if (Input -> Angles < 69.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Vdiam < 8.3200f) {
          if (Input -> IONIZATION_POTENTIAL < 8.9400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Dipole < 1.6500f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> DIPOLE < 6.5600f) {
          if (Input -> HbDon < 2.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> DIPOLE < 8.7400f) {
            if (Input -> ASA < 307.3300f) {
              if (Input -> HbTot < 9.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  } else {
    if (Input -> HbDon < 6.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #9 ****/

  if (Input -> HEAT_OF_FORMATION < 100.9600f) {
    if (Input -> HeavyAtoms < 26.5000f) {
      if (Input -> Surface < 348.8900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sav < 975.2900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Surface < 384.9800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> DIPOLE < 5.2400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Dipole < 3.7200f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        }
      }
    } else {
      if (Input -> VirtualLogP < 3.8400f) {
        if (Input -> HEAT_OF_FORMATION < 69.8200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Sas < 676.8300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  }

  ++Occur[Res];

  /**** Tree #10 ****/

  if (Input -> LUMO_ENERGY < -1.5800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Torsions < 33.5000f) {
      if (Input -> Dipole < 1.6600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Sas < 661.6400f) {
          if (Input -> ASA < 235.2200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Dipole < 2.2400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Psa < 99.0000f) {
                if (Input -> Angles < 74.0000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  if (Input -> FlexTorsions < 7.5000f) {
                    if (Input -> Vdiam < 8.4700f) {
                      Res = T2C_RANDOM_FOREST_MOPAC_0;
                    } else {
                      Res = T2C_RANDOM_FOREST_MOPAC_1;
                    }
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        } else {
          if (Input -> Angles < 108.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Gyrrad < 6.8800f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #11 ****/

  if (Input -> Sas < 787.2600f) {
    if (Input -> IONIZATION_POTENTIAL < 8.1900f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HEAT_OF_FORMATION < -137.1400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Sas < 709.0200f) {
          if (Input -> Ovality < 1.6500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> LUMO_ENERGY < -0.8700f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Sas < 618.2700f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> HOMO_ENERGY < -8.8200f) {
      if (Input -> Angles < 108.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #12 ****/

  if (Input -> Gyrrad < 5.4300f) {
    if (Input -> HeavyAtoms < 28.5000f) {
      if (Input -> Bonds < 43.5000f) {
        if (Input -> HOMO_ENERGY < -9.4100f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Gyrrad < 5.1200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Psa < 125.5600f) {
      if (Input -> Torsions < 23.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Mass < 442.2100f) {
          if (Input -> COSMO_AREA < 430.4100f) {
            if (Input -> TOTAL_ENERGY < -4376.4600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Angles < 72.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Gyrrad < 7.0800f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 7.1000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #13 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> HbAcc < 2.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> DIPOLE < 5.5600f) {
        if (Input -> Psa < 99.0000f) {
          if (Input -> Bonds < 48.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> ELECTRONIC_ENERGY < -30719.7100f) {
            if (Input -> DIPOLE < 4.3500f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Sav < 1332.8400f) {
      if (Input -> VirtualLogP < 4.1300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> DIPOLE < 4.9200f) {
        if (Input -> HbDon < 4.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #14 ****/

  if (Input -> ELECTRONIC_ENERGY < -29645.4500f) {
    if (Input -> ChiralAtms < 0.5000f) {
      if (Input -> NO__OF_FILLED_LEVELS < 82.5000f) {
        if (Input -> Vdiam < 8.8300f) {
          if (Input -> ASA < 307.3300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> IONIZATION_POTENTIAL < 9.2000f) {
      if (Input -> Atoms < 45.5000f) {
        if (Input -> Volume < 283.0700f) {
          if (Input -> Psa < 79.4300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #15 ****/

  if (Input -> ChiralAtms < 0.5000f) {
    if (Input -> Bonds < 61.0000f) {
      if (Input -> HbTot < 9.5000f) {
        if (Input -> LUMO_ENERGY < -1.2200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Lipole < 4.6000f) {
            if (Input -> Lipole < 1.4600f) {
              if (Input -> FlexTorsions < 7.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              if (Input -> MOLECULAR_WEIGHT < 305.3900f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> Charge < -0.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> HbAcc < 4.5000f) {
      if (Input -> EzBnds < 1.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #16 ****/

  if (Input -> Lipole < 2.8300f) {
    if (Input -> Psa < 125.2700f) {
      if (Input -> Lipole < 1.1300f) {
        if (Input -> HbAcc < 4.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Gyrrad < 5.6400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> HEAT_OF_FORMATION < 65.5400f) {
      if (Input -> HbTot < 6.5000f) {
        if (Input -> Ovality < 1.6400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Impropers < 10.5000f) {
            if (Input -> HbTot < 5.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        if (Input -> HOMO_ENERGY < -8.7500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Dipole < 2.5300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #17 ****/

  if (Input -> LUMO_ENERGY < -1.6000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> HOMO_ENERGY < -8.8200f) {
      if (Input -> Lipole < 2.8600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbTot < 10.5000f) {
          if (Input -> Volume < 289.6500f) {
            if (Input -> Bonds < 35.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Torsions < 23.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Atoms < 57.5000f) {
          if (Input -> Lipole < 1.4600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Atoms < 50.5000f) {
              if (Input -> ELECTRONIC_ENERGY < -30886.7000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> Atoms < 44.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              }
            } else {
              if (Input -> Dipole < 2.2900f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          if (Input -> VirtualLogP < 3.2900f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #18 ****/

  if (Input -> Dipole < 1.7700f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> HEAT_OF_FORMATION < 100.0200f) {
      if (Input -> HbTot < 5.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sav < 1154.0900f) {
          if (Input -> HEAT_OF_FORMATION < -63.7200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Rings < 3.5000f) {
              if (Input -> Sdiam < 11.0500f) {
                if (Input -> HeavyAtoms < 22.0000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              } else {
                if (Input -> FlexTorsions < 8.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          if (Input -> Sas < 805.6400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Vdiam < 9.3600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #19 ****/

  if (Input -> Ovality < 1.8500f) {
    if (Input -> Ovality < 1.6600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Sdiam < 10.9200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> TOTAL_ENERGY < -3732.6900f) {
          if (Input -> Gyrrad < 5.6000f) {
            if (Input -> VirtualLogP < 2.6600f) {
              if (Input -> HbTot < 8.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            if (Input -> ELECTRONIC_ENERGY < -40948.2200f) {
              if (Input -> Bonds < 61.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> FlexTorsions < 9.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> VirtualLogP < 3.7900f) {
        if (Input -> Gyrrad < 6.7500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> HeavyAtoms < 31.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #20 ****/

  if (Input -> Bonds < 35.5000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> Sav < 975.2900f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> VirtualLogP < 3.9200f) {
        if (Input -> Dipole < 5.9700f) {
          if (Input -> COSMO_AREA < 474.6200f) {
            if (Input -> Sav < 1154.0900f) {
              if (Input -> Angles < 82.0000f) {
                if (Input -> Gyrrad < 5.7300f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            if (Input -> Angles < 110.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Atoms < 66.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #21 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
      if (Input -> ASA < 277.8600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Psa < 130.6600f) {
          if (Input -> Angles < 96.5000f) {
            if (Input -> Vdiam < 8.2800f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> FlexTorsions < 5.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> LUMO_ENERGY < -0.8500f) {
                  if (Input -> Lipole < 3.6200f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                } else {
                  if (Input -> DIPOLE < 7.9400f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                }
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> COSMO_AREA < 425.0100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Atoms < 72.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #22 ****/

  if (Input -> Torsions < 36.5000f) {
    if (Input -> Sav < 1154.0900f) {
      if (Input -> Bonds < 35.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HOMO_ENERGY < -8.2400f) {
          if (Input -> HbTot < 9.5000f) {
            if (Input -> Gyrrad < 5.7200f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Atoms < 46.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> DIPOLE < 4.5300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Sas < 687.8700f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      }
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        if (Input -> Bonds < 58.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Ovality < 1.8300f) {
            if (Input -> HbDon < 5.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  }

  ++Occur[Res];

  /**** Tree #23 ****/

  if (Input -> Sav < 1166.4100f) {
    if (Input -> Lipole < 3.5900f) {
      if (Input -> Torsions < 24.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Ovality < 1.8200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        if (Input -> Angles < 62.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Angles < 71.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Sas < 787.2600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Atoms < 60.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Atoms < 66.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #24 ****/

  if (Input -> LUMO_ENERGY < -1.6000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Torsions < 36.5000f) {
      if (Input -> FlexTorsions < 9.5000f) {
        if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
          if (Input -> VirtualLogP < 3.1900f) {
            if (Input -> HeavyAtoms < 23.0000f) {
              if (Input -> Charge < -0.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> HbAcc < 5.5000f) {
            if (Input -> LUMO_ENERGY < -0.8300f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Bonds < 50.0000f) {
                if (Input -> HEAT_OF_FORMATION < -82.2700f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  if (Input -> HEAT_OF_FORMATION < 16.6400f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> Psa < 146.1600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #25 ****/

  if (Input -> Dipole < 3.7300f) {
    if (Input -> ChiralAtms < 0.5000f) {
      if (Input -> Volume < 391.3100f) {
        if (Input -> ASA < 277.8600f) {
          if (Input -> Mass < 270.2800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> HbDon < 3.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Gyrrad < 4.4700f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          if (Input -> Lipole < 0.8700f) {
            if (Input -> Lipole < 0.6200f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> DIPOLE < 5.3800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Vdiam < 9.3000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Ovality < 1.8300f) {
      if (Input -> Angles < 62.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> TOTAL_ENERGY < -3731.8600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> LUMO_ENERGY < -2.6200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #26 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Mass < 432.9900f) {
      if (Input -> LUMO_ENERGY < -0.9100f) {
        if (Input -> Surface < 449.6400f) {
          if (Input -> FlexTorsions < 8.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Mass < 362.8800f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Bonds < 48.5000f) {
          if (Input -> Psa < 99.0600f) {
            if (Input -> DIPOLE < 5.8300f) {
              if (Input -> Sdiam < 9.7900f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              if (Input -> Ovality < 1.5800f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> COSMO_AREA < 488.0100f) {
      if (Input -> HbDon < 3.5000f) {
        if (Input -> Gyrrad < 6.6000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> DIPOLE < 6.8200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #27 ****/

  if (Input -> VirtualLogP < 4.1900f) {
    if (Input -> Atoms < 50.5000f) {
      if (Input -> Angles < 78.5000f) {
        if (Input -> Gyrrad < 5.7300f) {
          if (Input -> Sav < 968.1500f) {
            if (Input -> Mass < 270.2800f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Dipole < 2.2900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Angles < 108.5000f) {
          if (Input -> Surface < 433.5600f) {
            if (Input -> Sav < 1069.0600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Gyrrad < 5.8300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  }

  ++Occur[Res];

  /**** Tree #28 ****/

  if (Input -> FlexTorsions < 8.5000f) {
    if (Input -> Lipole < 1.4600f) {
      if (Input -> VirtualLogP < 3.0000f) {
        if (Input -> Dipole < 4.0600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> IONIZATION_POTENTIAL < 8.1900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HbDon < 2.5000f) {
          if (Input -> HEAT_OF_FORMATION < 12.9700f) {
            if (Input -> HEAT_OF_FORMATION < -38.3700f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> Psa < 146.1600f) {
      if (Input -> HbAcc < 3.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HOMO_ENERGY < -8.3800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Dipole < 27.9300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #29 ****/

  if (Input -> Torsions < 33.5000f) {
    if (Input -> COSMO_AREA < 427.0600f) {
      if (Input -> Angles < 80.5000f) {
        if (Input -> Vdiam < 8.4500f) {
          if (Input -> IONIZATION_POTENTIAL < 8.9400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> HbDon < 2.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Angles < 68.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Sas < 794.1300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> LUMO_ENERGY < -1.1400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> Psa < 128.0400f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Gyrrad < 5.6900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Torsions < 37.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Bonds < 75.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #30 ****/

  if (Input -> LUMO_ENERGY < -1.5800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Torsions < 36.5000f) {
      if (Input -> Sav < 1042.3900f) {
        if (Input -> Psa < 85.2900f) {
          if (Input -> Ovality < 1.6500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Sas < 787.4800f) {
          if (Input -> Angles < 86.5000f) {
            if (Input -> Mass < 385.4200f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Bonds < 63.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #31 ****/

  if (Input -> Ovality < 1.6600f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> LUMO_ENERGY < -1.5800f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> FlexTorsions < 8.5000f) {
        if (Input -> Lipole < 1.4800f) {
          if (Input -> Gyrrad < 4.6600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> HOMO_ENERGY < -8.2300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Gyrrad < 6.2600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Bonds < 63.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        }
      } else {
        if (Input -> VirtualLogP < 2.2800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Lipole < 3.1400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> VirtualLogP < 3.8400f) {
              if (Input -> IONIZATION_POTENTIAL < 8.3300f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> HbAcc < 6.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #32 ****/

  if (Input -> Gyrrad < 4.8700f) {
    if (Input -> Impropers < 4.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Sas < 816.9700f) {
      if (Input -> Surface < 501.9000f) {
        if (Input -> Volume < 399.2600f) {
          if (Input -> Gyrrad < 5.3600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Angles < 87.0000f) {
              if (Input -> Atoms < 46.5000f) {
                if (Input -> VirtualLogP < 2.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              if (Input -> Dipole < 6.4700f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> Mass < 411.4500f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #33 ****/

  if (Input -> Ovality < 1.8300f) {
    if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
      if (Input -> HbDon < 6.5000f) {
        if (Input -> DIPOLE < 3.9100f) {
          if (Input -> Mass < 341.3800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Sdiam < 11.2100f) {
            if (Input -> FlexTorsions < 8.5000f) {
              if (Input -> Volume < 313.1200f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Mass < 440.9900f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Gyrrad < 5.8800f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #34 ****/

  if (Input -> HEAT_OF_FORMATION < 91.9600f) {
    if (Input -> Sas < 661.6400f) {
      if (Input -> Volume < 285.9500f) {
        if (Input -> LUMO_ENERGY < -0.3000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> DIPOLE < 4.0800f) {
          if (Input -> Surface < 384.3100f) {
            if (Input -> Impropers < 9.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Gyrrad < 6.0100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> VirtualLogP < 3.3400f) {
          if (Input -> Atoms < 61.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  }

  ++Occur[Res];

  /**** Tree #35 ****/

  if (Input -> COSMO_AREA < 428.4500f) {
    if (Input -> Sdiam < 10.0300f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Angles < 80.5000f) {
        if (Input -> COSMO_AREA < 363.0400f) {
          if (Input -> HbDon < 3.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Ovality < 1.7000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Gyrrad < 5.1800f) {
              if (Input -> FlexTorsions < 7.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      } else {
        if (Input -> Lipole < 5.1000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Mass < 445.9100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #36 ****/

  if (Input -> Dipole < 4.6500f) {
    if (Input -> COSMO_VOLUME < 471.3100f) {
      if (Input -> Angles < 80.5000f) {
        if (Input -> Gyrrad < 3.8400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Sas < 780.9100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Mass < 497.0400f) {
          if (Input -> Dipole < 2.3200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> HEAT_OF_FORMATION < -10.5300f) {
      if (Input -> Angles < 87.0000f) {
        if (Input -> Gyrrad < 3.6400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #37 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> Sdiam < 11.0500f) {
      if (Input -> COSMO_AREA < 365.6300f) {
        if (Input -> HbTot < 5.5000f) {
          if (Input -> Sdiam < 10.2800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Ovality < 1.8200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Gyrrad < 6.2600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> Sas < 816.9700f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> FlexTorsions < 11.5000f) {
        if (Input -> Atoms < 62.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #38 ****/

  if (Input -> MOLECULAR_WEIGHT < 348.9000f) {
    if (Input -> Dipole < 2.9800f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Sdiam < 10.5400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> ASA < 303.3600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Sas < 709.0200f) {
      if (Input -> Vdiam < 8.5700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Rings < 2.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Sas < 787.2600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> ChiralAtms < 0.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> EzBnds < 1.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #39 ****/

  if (Input -> Impropers < 13.5000f) {
    if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
      if (Input -> Angles < 82.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Gyrrad < 5.2000f) {
        if (Input -> HbDon < 2.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Angles < 108.5000f) {
      if (Input -> Psa < 125.5600f) {
        if (Input -> Psa < 83.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> FlexTorsions < 9.5000f) {
            if (Input -> HbAcc < 4.5000f) {
              if (Input -> EzBnds < 0.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> Dipole < 3.3700f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Lipole < 2.9500f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Atoms < 62.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #40 ****/

  if (Input -> LUMO_ENERGY < -1.6000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> HOMO_ENERGY < -8.7400f) {
      if (Input -> Mass < 362.8800f) {
        if (Input -> Mass < 270.2800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> COSMO_AREA < 363.9200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> HbTot < 10.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> TOTAL_ENERGY < -5337.1800f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Torsions < 22.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> HEAT_OF_FORMATION < 100.0200f) {
            if (Input -> LUMO_ENERGY < -0.8600f) {
              if (Input -> Mass < 335.8900f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> Angles < 76.0000f) {
                  if (Input -> Lipole < 2.0800f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #41 ****/

  if (Input -> Gyrrad < 5.7300f) {
    if (Input -> Ovality < 1.8300f) {
      if (Input -> HEAT_OF_FORMATION < 38.9800f) {
        if (Input -> HeavyAtoms < 25.5000f) {
          if (Input -> HOMO_ENERGY < -8.9500f) {
            if (Input -> Sdiam < 10.8500f) {
              if (Input -> TOTAL_ENERGY < -3644.3400f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            if (Input -> Torsions < 22.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> FlexTorsions < 7.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Sav < 1124.9500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Sdiam < 12.3200f) {
      if (Input -> Sav < 1166.4100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #42 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Angles < 57.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Mass < 344.8900f) {
        if (Input -> Psa < 81.1600f) {
          if (Input -> Sav < 986.9000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Psa < 106.1500f) {
          if (Input -> TOTAL_ENERGY < -4085.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Lipole < 2.4600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          if (Input -> HOMO_ENERGY < -8.2300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Torsions < 34.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Atoms < 60.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        }
      }
    }
  } else {
    if (Input -> Sdiam < 12.5100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HeavyAtoms < 32.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #43 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> Angles < 78.5000f) {
      if (Input -> Volume < 295.5600f) {
        if (Input -> Ovality < 1.6500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Lipole < 5.8200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> MOLECULAR_WEIGHT < 432.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> LUMO_ENERGY < -1.0800f) {
        if (Input -> Dipole < 2.0800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #44 ****/

  if (Input -> Sav < 1157.1800f) {
    if (Input -> Ovality < 1.7600f) {
      if (Input -> HEAT_OF_FORMATION < 44.9100f) {
        if (Input -> Volume < 318.0100f) {
          if (Input -> IONIZATION_POTENTIAL < 8.9500f) {
            if (Input -> Gyrrad < 5.5400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            if (Input -> IONIZATION_POTENTIAL < 9.4100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Mass < 294.8200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Rings < 3.5000f) {
      if (Input -> Dipole < 1.7200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbAcc < 6.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Mass < 440.2200f) {
        if (Input -> Bonds < 59.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Angles < 105.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Mass < 487.5500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #45 ****/

  if (Input -> Impropers < 13.5000f) {
    if (Input -> Vdiam < 8.5600f) {
      if (Input -> FlexTorsions < 5.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Psa < 81.1600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> FlexTorsions < 8.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Vdiam < 8.7400f) {
      if (Input -> Sas < 538.9700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HbDon < 5.5000f) {
          if (Input -> NO__OF_FILLED_LEVELS < 60.5000f) {
            if (Input -> Dipole < 4.0900f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> HEAT_OF_FORMATION < 97.0300f) {
        if (Input -> Atoms < 61.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> ChiralAtms < 0.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #46 ****/

  if (Input -> Dipole < 2.5000f) {
    if (Input -> ChiralAtms < 0.5000f) {
      if (Input -> Psa < 131.2100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Angles < 105.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Ovality < 1.8300f) {
      if (Input -> FlexTorsions < 5.5000f) {
        if (Input -> Atoms < 41.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Dipole < 3.9700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        if (Input -> Surface < 383.6400f) {
          if (Input -> VirtualLogP < 1.7500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #47 ****/

  if (Input -> Surface < 433.8000f) {
    if (Input -> ELECTRONIC_ENERGY < -33116.1600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> HEAT_OF_FORMATION < -63.7200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> FlexTorsions < 8.5000f) {
          if (Input -> ELECTRONIC_ENERGY < -29645.4500f) {
            if (Input -> Mass < 374.4100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Mass < 432.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Ovality < 1.8500f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Atoms < 67.0000f) {
          if (Input -> Lipole < 4.0400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #48 ****/

  if (Input -> Ovality < 1.8200f) {
    if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
      if (Input -> Atoms < 55.5000f) {
        if (Input -> FlexTorsions < 7.0000f) {
          if (Input -> DIPOLE < 6.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Charge < -0.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> DIPOLE < 5.5600f) {
        if (Input -> IONIZATION_POTENTIAL < 8.9400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Rings < 2.5000f) {
            if (Input -> Lipole < 2.4600f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> HeavyAtoms < 34.5000f) {
      if (Input -> COSMO_AREA < 490.3400f) {
        if (Input -> DIPOLE < 2.3100f) {
          if (Input -> HbDon < 3.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Psa < 137.9300f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #49 ****/

  if (Input -> Sas < 709.0800f) {
    if (Input -> IONIZATION_POTENTIAL < 8.2800f) {
      if (Input -> Torsions < 24.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> HbDon < 2.5000f) {
        if (Input -> Lipole < 3.7000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Sas < 787.2600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> IONIZATION_POTENTIAL < 8.5200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> VirtualLogP < 2.9700f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Psa < 118.9700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #50 ****/

  if (Input -> VirtualLogP < 3.2500f) {
    if (Input -> Ovality < 1.8200f) {
      if (Input -> Ovality < 1.6600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> FlexTorsions < 8.5000f) {
          if (Input -> FlexTorsions < 6.5000f) {
            if (Input -> HOMO_ENERGY < -8.4900f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Angles < 74.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Surface < 383.5900f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Lipole < 4.9600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #51 ****/

  if (Input -> IONIZATION_POTENTIAL < 8.1900f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> Dipole < 2.6700f) {
      if (Input -> HOMO_ENERGY < -8.8900f) {
        if (Input -> Sav < 1154.0900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Dipole < 2.4900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Dipole < 2.5200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Ovality < 1.8200f) {
        if (Input -> Angles < 81.0000f) {
          if (Input -> Lipole < 2.8700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> DIPOLE < 6.9900f) {
              if (Input -> Sdiam < 9.8100f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> Psa < 99.0600f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  if (Input -> Dipole < 3.4600f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> HbAcc < 6.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #52 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Volume < 251.5200f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Torsions < 24.5000f) {
        if (Input -> VirtualLogP < 2.6000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> FlexTorsions < 8.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> Volume < 391.4300f) {
          if (Input -> Lipole < 1.4500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> ELECTRONIC_ENERGY < -37982.4900f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          if (Input -> Atoms < 60.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Angles < 120.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      }
    }
  } else {
    if (Input -> Ovality < 1.9800f) {
      if (Input -> Dipole < 1.7200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #53 ****/

  if (Input -> Torsions < 33.5000f) {
    if (Input -> Bonds < 51.0000f) {
      if (Input -> Bonds < 35.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Angles < 80.5000f) {
          if (Input -> IONIZATION_POTENTIAL < 8.2400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> DIPOLE < 6.9900f) {
              if (Input -> Ovality < 1.7300f) {
                if (Input -> Sdiam < 11.0500f) {
                  if (Input -> Dipole < 2.8400f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> Dipole < 10.6000f) {
        if (Input -> Impropers < 13.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
      if (Input -> Dipole < 2.3200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #54 ****/

  if (Input -> LUMO_ENERGY < -1.5800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> FlexTorsions < 9.5000f) {
      if (Input -> HbTot < 5.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> COSMO_VOLUME < 388.5500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> HbDon < 6.5000f) {
            if (Input -> MOLECULAR_WEIGHT < 440.2300f) {
              if (Input -> VirtualLogP < 1.8000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> LUMO_ENERGY < -0.2300f) {
                  if (Input -> HbTot < 6.5000f) {
                    if (Input -> Rings < 2.5000f) {
                      Res = T2C_RANDOM_FOREST_MOPAC_0;
                    } else {
                      Res = T2C_RANDOM_FOREST_MOPAC_1;
                    }
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            if (Input -> Sav < 1333.8400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      }
    } else {
      if (Input -> HEAT_OF_FORMATION < -0.6300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #55 ****/

  if (Input -> FlexTorsions < 8.5000f) {
    if (Input -> HOMO_ENERGY < -8.2600f) {
      if (Input -> HeavyAtoms < 20.5000f) {
        if (Input -> Angles < 61.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Sas < 705.0500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Mass < 425.9700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Angles < 82.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HbTot < 8.5000f) {
          if (Input -> Lipole < 4.8500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Lipole < 2.5100f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  } else {
    if (Input -> Charge < 0.5000f) {
      if (Input -> Dipole < 1.6400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Torsions < 18.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> TOTAL_ENERGY < -5446.7700f) {
            if (Input -> Vdiam < 9.3300f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #56 ****/

  if (Input -> Vdiam < 8.8600f) {
    if (Input -> VirtualLogP < 1.8900f) {
      if (Input -> Angles < 57.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Torsions < 28.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Bonds < 51.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Sav < 1073.4700f) {
        if (Input -> Sdiam < 11.0500f) {
          if (Input -> Atoms < 43.5000f) {
            if (Input -> Charge < -0.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> HbTot < 8.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Lipole < 2.4000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Ovality < 1.7400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> FlexTorsions < 9.0000f) {
      if (Input -> Mass < 435.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Dipole < 2.3500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> Angles < 107.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> VirtualLogP < 3.1000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #57 ****/

  if (Input -> Mass < 354.9200f) {
    if (Input -> Angles < 57.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> ASA < 303.3600f) {
        if (Input -> MOLECULAR_WEIGHT < 322.8600f) {
          if (Input -> TOTAL_ENERGY < -3653.1500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> FlexTorsions < 9.5000f) {
      if (Input -> TOTAL_ENERGY < -5364.9900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbDon < 6.5000f) {
          if (Input -> HOMO_ENERGY < -8.1900f) {
            if (Input -> EzBnds < 0.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Sav < 1333.8400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Sav < 1335.6600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 5.8300f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #58 ****/

  if (Input -> ChiralAtms < 0.5000f) {
    if (Input -> Dipole < 2.4400f) {
      if (Input -> DIPOLE < 5.7400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbAcc < 4.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> LUMO_ENERGY < -0.8500f) {
        if (Input -> Lipole < 3.7000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> HbDon < 2.5000f) {
            if (Input -> HbTot < 7.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        if (Input -> Torsions < 22.5000f) {
          if (Input -> HbTot < 7.5000f) {
            if (Input -> LUMO_ENERGY < -0.6000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Sas < 686.8300f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  }

  ++Occur[Res];

  /**** Tree #59 ****/

  if (Input -> ChiralAtms < 0.5000f) {
    if (Input -> FlexTorsions < 5.5000f) {
      if (Input -> Atoms < 41.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Atoms < 45.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> Vdiam < 9.0800f) {
        if (Input -> TOTAL_ENERGY < -4692.3700f) {
          if (Input -> Sav < 1157.6400f) {
            if (Input -> Atoms < 45.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Sas < 725.9100f) {
            if (Input -> LUMO_ENERGY < -0.5200f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Mass < 306.3800f) {
                if (Input -> FlexTorsions < 8.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Rings < 1.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Atoms < 66.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #60 ****/

  if (Input -> Bonds < 35.5000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> LUMO_ENERGY < -1.5900f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Atoms < 44.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Mass < 440.9900f) {
          if (Input -> Sdiam < 11.6800f) {
            if (Input -> Angles < 79.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> ChiralAtms < 0.5000f) {
            if (Input -> Vdiam < 9.3100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> HbAcc < 4.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            if (Input -> HbAcc < 4.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #61 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> FlexTorsions < 5.5000f) {
      if (Input -> Impropers < 13.5000f) {
        if (Input -> HbDon < 3.5000f) {
          if (Input -> Angles < 64.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> HbAcc < 3.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HbDon < 2.5000f) {
          if (Input -> Dipole < 3.7400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Sas < 606.4800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> HbTot < 7.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
                if (Input -> VirtualLogP < 3.2900f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        }
      }
    }
  } else {
    if (Input -> HbTot < 10.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> EzBnds < 0.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #62 ****/

  if (Input -> TOTAL_ENERGY < -5337.1800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Gyrrad < 4.8700f) {
      if (Input -> Bonds < 35.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> HbAcc < 2.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> HbTot < 10.5000f) {
        if (Input -> Sav < 1286.6800f) {
          if (Input -> FlexTorsions < 9.5000f) {
            if (Input -> MOLECULAR_WEIGHT < 313.3800f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> FlexTorsions < 7.5000f) {
                if (Input -> Dipole < 3.7300f) {
                  if (Input -> Gyrrad < 5.6800f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #63 ****/

  if (Input -> Lipole < 2.8500f) {
    if (Input -> HOMO_ENERGY < -8.2500f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> HbTot < 8.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> ELECTRONIC_ENERGY < -42072.7300f) {
          if (Input -> Psa < 130.6600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Mass < 487.7400f) {
      if (Input -> HbAcc < 4.5000f) {
        if (Input -> Angles < 75.0000f) {
          if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Dipole < 2.5700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #64 ****/

  if (Input -> Impropers < 13.5000f) {
    if (Input -> Angles < 92.5000f) {
      if (Input -> Dipole < 3.0800f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> ASA < 232.9900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> HEAT_OF_FORMATION < 44.9100f) {
            if (Input -> HbAcc < 5.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Bonds < 52.5000f) {
      if (Input -> Volume < 268.4600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> COSMO_AREA < 364.4500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Angles < 80.0000f) {
            if (Input -> Dipole < 4.1100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Psa < 145.5900f) {
        if (Input -> IONIZATION_POTENTIAL < 8.4400f) {
          if (Input -> Sav < 1280.6600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #65 ****/

  if (Input -> HOMO_ENERGY < -9.3800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Sas < 785.6600f) {
      if (Input -> Angles < 86.5000f) {
        if (Input -> Mass < 270.2800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Sav < 982.1600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Atoms < 45.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> VirtualLogP < 3.5200f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Gyrrad < 5.8700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> FlexTorsions < 7.5000f) {
          if (Input -> Lipole < 2.5100f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #66 ****/

  if (Input -> Sdiam < 11.6600f) {
    if (Input -> Angles < 80.5000f) {
      if (Input -> Lipole < 1.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Ovality < 1.7400f) {
          if (Input -> TOTAL_ENERGY < -3986.0200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Dipole < 3.0100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Sav < 876.9400f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> Psa < 100.0400f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Impropers < 13.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Volume < 403.6300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> LUMO_ENERGY < -1.0800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #67 ****/

  if (Input -> Surface < 426.7700f) {
    if (Input -> IONIZATION_POTENTIAL < 8.5500f) {
      if (Input -> ASA < 280.8900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Lipole < 2.8700f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Impropers < 13.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> IONIZATION_POTENTIAL < 8.7500f) {
      if (Input -> Sdiam < 12.3200f) {
        if (Input -> Sav < 1067.6000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Bonds < 65.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> Angles < 129.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #68 ****/

  if (Input -> Lipole < 2.8500f) {
    if (Input -> Volume < 391.3100f) {
      if (Input -> Sav < 1166.4100f) {
        if (Input -> COSMO_VOLUME < 436.1900f) {
          if (Input -> Impropers < 16.5000f) {
            if (Input -> HeavyAtoms < 22.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Mass < 353.4000f) {
                if (Input -> Angles < 72.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> CORE_CORE_REPULSION < 27926.6100f) {
      if (Input -> Psa < 86.9400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Angles < 131.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #69 ****/

  if (Input -> COSMO_AREA < 389.3700f) {
    if (Input -> Surface < 314.9200f) {
      if (Input -> Bonds < 35.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Atoms < 47.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HEAT_OF_FORMATION < 1.4600f) {
        if (Input -> HOMO_ENERGY < -9.1300f) {
          if (Input -> Dipole < 4.3200f) {
            if (Input -> Bonds < 62.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
          if (Input -> VirtualLogP < 3.2700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #70 ****/

  if (Input -> Sav < 1149.8600f) {
    if (Input -> ELECTRONIC_ENERGY < -33116.1600f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Impropers < 16.5000f) {
        if (Input -> Psa < 84.5700f) {
          if (Input -> Ovality < 1.7600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Sdiam < 10.9000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> ELECTRONIC_ENERGY < -32535.5800f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Dipole < 3.6400f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Sav < 1286.6800f) {
      if (Input -> Rings < 3.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sdiam < 11.8500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> IONIZATION_POTENTIAL < 8.5200f) {
        if (Input -> VirtualLogP < 3.3400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #71 ****/

  if (Input -> Atoms < 51.0000f) {
    if (Input -> Angles < 80.5000f) {
      if (Input -> COSMO_AREA < 365.6300f) {
        if (Input -> Sav < 942.5900f) {
          if (Input -> Psa < 100.2800f) {
            if (Input -> Gyrrad < 3.8000f) {
              if (Input -> HbDon < 1.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> ASA < 407.7200f) {
      if (Input -> FlexTorsions < 9.5000f) {
        if (Input -> COSMO_AREA < 473.1900f) {
          if (Input -> Impropers < 7.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Atoms < 60.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #72 ****/

  if (Input -> Bonds < 35.5000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> Surface < 433.5600f) {
      if (Input -> FlexTorsions < 8.5000f) {
        if (Input -> Sdiam < 10.5400f) {
          if (Input -> Atoms < 40.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Torsions < 25.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> HbTot < 6.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      } else {
        if (Input -> Sdiam < 11.0500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Volume < 332.1200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      if (Input -> Mass < 445.9100f) {
        if (Input -> Ovality < 1.8800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.7100f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Torsions < 30.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #73 ****/

  if (Input -> CORE_CORE_REPULSION < 25559.9500f) {
    if (Input -> CORE_CORE_REPULSION < 17889.2300f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Lipole < 1.4600f) {
        if (Input -> HeavyAtoms < 24.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> TOTAL_ENERGY < -5387.0200f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> HEAT_OF_FORMATION < 100.0200f) {
        if (Input -> Gyrrad < 4.1800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> IONIZATION_POTENTIAL < 8.2300f) {
            if (Input -> Gyrrad < 7.1400f) {
              if (Input -> VirtualLogP < 4.4500f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #74 ****/

  if (Input -> LUMO_ENERGY < -1.5800f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Ovality < 1.8200f) {
      if (Input -> Sav < 1057.7300f) {
        if (Input -> Lipole < 4.8100f) {
          if (Input -> Surface < 316.0200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Volume < 297.4000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> LUMO_ENERGY < -0.2300f) {
                if (Input -> TOTAL_ENERGY < -4013.2600f) {
                  if (Input -> EzBnds < 0.5000f) {
                    if (Input -> HbAcc < 3.5000f) {
                      Res = T2C_RANDOM_FOREST_MOPAC_1;
                    } else {
                      Res = T2C_RANDOM_FOREST_MOPAC_0;
                    }
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> HEAT_OF_FORMATION < 0.3100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sas < 785.8900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #75 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> HbTot < 5.5000f) {
      if (Input -> EzBnds < 1.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Lipole < 5.1800f) {
        if (Input -> Surface < 396.6400f) {
          if (Input -> HOMO_ENERGY < -8.2600f) {
            if (Input -> FlexTorsions < 8.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          if (Input -> Bonds < 64.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Bonds < 71.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> Vdiam < 9.2700f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Psa < 142.3300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #76 ****/

  if (Input -> Psa < 80.8600f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> ChiralAtms < 0.5000f) {
      if (Input -> ELECTRONIC_ENERGY < -41210.2300f) {
        if (Input -> VirtualLogP < 3.2900f) {
          if (Input -> Angles < 99.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Gyrrad < 5.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> FlexTorsions < 5.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Angles < 88.0000f) {
              if (Input -> Sav < 1023.0300f) {
                if (Input -> Mass < 341.3800f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              if (Input -> Impropers < 13.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        }
      }
    } else {
      if (Input -> FlexTorsions < 7.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #77 ****/

  if (Input -> ChiralAtms < 0.5000f) {
    if (Input -> MOLECULAR_WEIGHT < 429.4800f) {
      if (Input -> Ovality < 1.8200f) {
        if (Input -> HEAT_OF_FORMATION < 29.1400f) {
          if (Input -> Vdiam < 8.3300f) {
            if (Input -> DIPOLE < 5.8300f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Charge < -0.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Lipole < 1.4700f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Lipole < 5.6000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> HOMO_ENERGY < -8.2200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> ChiralAtms < 1.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #78 ****/

  if (Input -> Dipole < 4.3900f) {
    if (Input -> Sav < 1286.6800f) {
      if (Input -> FlexTorsions < 8.5000f) {
        if (Input -> HbTot < 10.5000f) {
          if (Input -> EzBnds < 1.5000f) {
            if (Input -> Lipole < 1.3100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Bonds < 35.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> ASA < 291.7200f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  if (Input -> Bonds < 49.5000f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  }
                }
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Gyrrad < 5.8700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> HbTot < 3.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> VirtualLogP < 2.5200f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HeavyAtoms < 27.5000f) {
          if (Input -> Rings < 2.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #79 ****/

  if (Input -> Gyrrad < 5.7300f) {
    if (Input -> Ovality < 1.8100f) {
      if (Input -> IONIZATION_POTENTIAL < 8.2400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Angles < 78.0000f) {
          if (Input -> IONIZATION_POTENTIAL < 8.9500f) {
            if (Input -> IONIZATION_POTENTIAL < 8.2600f) {
              if (Input -> HbTot < 6.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            if (Input -> HEAT_OF_FORMATION < -78.8300f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Atoms < 51.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Sas < 787.2600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
          if (Input -> HbDon < 6.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #80 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Psa < 107.6300f) {
      if (Input -> IONIZATION_POTENTIAL < 9.1200f) {
        if (Input -> COSMO_AREA < 365.5100f) {
          if (Input -> Charge < -0.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Gyrrad < 5.7300f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Angles < 86.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Angles < 101.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> TOTAL_ENERGY < -5069.2200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Atoms < 72.0000f) {
      if (Input -> HOMO_ENERGY < -8.7500f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Atoms < 55.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #81 ****/

  if (Input -> Mass < 451.9300f) {
    if (Input -> Sas < 705.6100f) {
      if (Input -> HbAcc < 2.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Dipole < 4.3000f) {
          if (Input -> Sav < 974.8600f) {
            if (Input -> Psa < 80.3100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            if (Input -> DIPOLE < 3.3400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Bonds < 52.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> ASA < 369.6000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> LUMO_ENERGY < -1.0800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> ELECTRONIC_ENERGY < -44092.9100f) {
      if (Input -> Dipole < 2.4900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HeavyAtoms < 39.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #82 ****/

  if (Input -> Gyrrad < 5.7000f) {
    if (Input -> MOLECULAR_WEIGHT < 367.3900f) {
      if (Input -> HOMO_ENERGY < -8.2600f) {
        if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
          if (Input -> Sas < 613.7500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> FlexTorsions < 7.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Gyrrad < 5.1100f) {
          if (Input -> Angles < 59.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> EzBnds < 2.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> Sav < 1166.4100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> CORE_CORE_REPULSION < 36638.7300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Volume < 422.4700f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> ELECTRONIC_ENERGY < -47921.3800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #83 ****/

  if (Input -> Impropers < 13.5000f) {
    if (Input -> HOMO_ENERGY < -8.2600f) {
      if (Input -> Bonds < 43.5000f) {
        if (Input -> Atoms < 41.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Mass < 367.9200f) {
      if (Input -> ASA < 243.4400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Sas < 675.3600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    } else {
      if (Input -> MOLECULAR_WEIGHT < 445.9100f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Dipole < 2.4900f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Angles < 131.0000f) {
            if (Input -> HEAT_OF_FORMATION < -133.6700f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #84 ****/

  if (Input -> Impropers < 13.5000f) {
    if (Input -> IONIZATION_POTENTIAL < 8.2100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Lipole < 0.8300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Bonds < 56.5000f) {
          if (Input -> HbTot < 7.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> FlexTorsions < 7.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Gyrrad < 4.8200f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    if (Input -> Sav < 1083.0100f) {
      if (Input -> CORE_CORE_REPULSION < 21356.0700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Dipole < 2.1400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> HEAT_OF_FORMATION < 92.8900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #85 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> Angles < 78.5000f) {
      if (Input -> Sav < 975.2900f) {
        if (Input -> FlexTorsions < 3.0000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Surface < 383.6800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> HeavyAtoms < 26.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    } else {
      if (Input -> Surface < 433.5600f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HEAT_OF_FORMATION < 51.6400f) {
          if (Input -> Mass < 447.7000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> HOMO_ENERGY < -8.2200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Atoms < 59.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      }
    }
  } else {
    if (Input -> Gyrrad < 7.0200f) {
      if (Input -> COSMO_VOLUME < 446.8700f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #86 ****/

  if (Input -> Sas < 709.0200f) {
    if (Input -> Angles < 79.5000f) {
      if (Input -> Sav < 975.2900f) {
        if (Input -> Ovality < 1.6700f) {
          if (Input -> Sas < 513.7100f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> ASA < 355.8000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> Rings < 3.5000f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Gyrrad < 5.9900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 6.9400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #87 ****/

  if (Input -> Gyrrad < 5.7200f) {
    if (Input -> Torsions < 26.5000f) {
      if (Input -> Angles < 57.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Mass < 309.4000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> VirtualLogP < 1.3400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> LUMO_ENERGY < -0.8500f) {
              if (Input -> TOTAL_ENERGY < -4111.9000f) {
                if (Input -> DIPOLE < 6.1300f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> Sas < 816.9700f) {
      if (Input -> EzBnds < 0.5000f) {
        if (Input -> Angles < 106.5000f) {
          if (Input -> Sas < 773.7900f) {
            if (Input -> DIPOLE < 4.4000f) {
              if (Input -> Lipole < 1.8600f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #88 ****/

  if (Input -> Torsions < 25.5000f) {
    if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
      if (Input -> HbTot < 9.0000f) {
        if (Input -> Rings < 1.5000f) {
          if (Input -> Bonds < 44.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> NO__OF_FILLED_LEVELS < 84.0000f) {
      if (Input -> Impropers < 13.5000f) {
        if (Input -> Psa < 104.9000f) {
          if (Input -> Vdiam < 8.8700f) {
            if (Input -> MOLECULAR_WEIGHT < 348.9000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Dipole < 2.4900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Ovality < 1.8500f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #89 ****/

  if (Input -> COSMO_AREA < 427.0600f) {
    if (Input -> Ovality < 1.7200f) {
      if (Input -> HEAT_OF_FORMATION < 35.3700f) {
        if (Input -> Angles < 65.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> FlexTorsions < 8.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> IONIZATION_POTENTIAL < 8.8600f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> FlexTorsions < 9.5000f) {
      if (Input -> HbDon < 6.5000f) {
        if (Input -> Surface < 476.5600f) {
          if (Input -> HEAT_OF_FORMATION < 140.0400f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> Atoms < 58.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Gyrrad < 7.1200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      if (Input -> Rings < 5.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #90 ****/

  if (Input -> LUMO_ENERGY < -1.6000f) {
    Res = T2C_RANDOM_FOREST_MOPAC_1;
  } else {
    if (Input -> Psa < 122.3500f) {
      if (Input -> HOMO_ENERGY < -8.9400f) {
        if (Input -> FlexTorsions < 8.5000f) {
          if (Input -> HbDon < 2.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        if (Input -> Bonds < 49.5000f) {
          if (Input -> HEAT_OF_FORMATION < 23.6100f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> NO__OF_FILLED_LEVELS < 58.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Atoms < 45.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                if (Input -> Bonds < 48.5000f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                }
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    } else {
      if (Input -> NO__OF_FILLED_LEVELS < 84.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Gyrrad < 5.8800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> IONIZATION_POTENTIAL < 8.2200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #91 ****/

  if (Input -> Sav < 1151.9200f) {
    if (Input -> Sdiam < 11.0200f) {
      if (Input -> Vdiam < 8.2800f) {
        if (Input -> Sav < 815.0500f) {
          if (Input -> Psa < 82.7900f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Lipole < 2.5400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Surface < 421.5700f) {
          if (Input -> VirtualLogP < 3.0600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  } else {
    if (Input -> Mass < 440.9900f) {
      if (Input -> Charge < 0.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> FlexTorsions < 11.5000f) {
        if (Input -> VirtualLogP < 3.3100f) {
          if (Input -> Bonds < 64.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #92 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> ASA < 235.2200f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> HOMO_ENERGY < -8.2500f) {
        if (Input -> LUMO_ENERGY < -0.5200f) {
          if (Input -> Sdiam < 11.9800f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Angles < 96.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          if (Input -> EzBnds < 0.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      } else {
        if (Input -> LUMO_ENERGY < -0.6000f) {
          if (Input -> Dipole < 1.6900f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> LUMO_ENERGY < -0.9800f) {
              if (Input -> Bonds < 50.0000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      }
    }
  } else {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  }

  ++Occur[Res];

  /**** Tree #93 ****/

  if (Input -> HEAT_OF_FORMATION < 9.1900f) {
    if (Input -> COSMO_AREA < 416.1900f) {
      if (Input -> Bonds < 45.5000f) {
        if (Input -> DIPOLE < 5.8300f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Angles < 56.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> HeavyAtoms < 31.0000f) {
      if (Input -> Mass < 344.8900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> HEAT_OF_FORMATION < 29.1400f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> DIPOLE < 6.0500f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #94 ****/

  if (Input -> Ovality < 1.6600f) {
    Res = T2C_RANDOM_FOREST_MOPAC_0;
  } else {
    if (Input -> ChiralAtms < 0.5000f) {
      if (Input -> Lipole < 5.1800f) {
        if (Input -> Psa < 125.5600f) {
          if (Input -> CORE_CORE_REPULSION < 27179.9900f) {
            if (Input -> ELECTRONIC_ENERGY < -29645.4500f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              if (Input -> Volume < 294.5900f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                if (Input -> Sas < 631.3500f) {
                  Res = T2C_RANDOM_FOREST_MOPAC_0;
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              }
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> IONIZATION_POTENTIAL < 8.6600f) {
            if (Input -> Gyrrad < 7.1400f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      if (Input -> Atoms < 52.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #95 ****/

  if (Input -> Sdiam < 11.7500f) {
    if (Input -> Surface < 349.7700f) {
      if (Input -> TOTAL_ENERGY < -3266.7300f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Ovality < 1.7400f) {
        if (Input -> Sas < 655.3000f) {
          if (Input -> Angles < 77.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    }
  } else {
    if (Input -> HEAT_OF_FORMATION < 58.8300f) {
      if (Input -> HbAcc < 6.5000f) {
        if (Input -> VirtualLogP < 3.9100f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> Angles < 90.5000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> Torsions < 37.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> Angles < 120.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #96 ****/

  if (Input -> ChiralAtms < 0.5000f) {
    if (Input -> Vdiam < 9.0800f) {
      if (Input -> Sas < 717.5900f) {
        if (Input -> HOMO_ENERGY < -8.2700f) {
          if (Input -> Angles < 57.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Surface < 381.2800f) {
              if (Input -> FlexTorsions < 8.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          if (Input -> Bonds < 50.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  } else {
    if (Input -> Angles < 121.5000f) {
      if (Input -> Lipole < 4.7400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Tree #97 ****/

  if (Input -> Sav < 1149.8600f) {
    if (Input -> Ovality < 1.6500f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> Sav < 982.0000f) {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      } else {
        if (Input -> Sav < 1000.2200f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> FlexTorsions < 5.5000f) {
            if (Input -> HeavyAtoms < 28.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          } else {
            if (Input -> Atoms < 50.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> HbDon < 3.5000f) {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              }
            }
          }
        }
      }
    }
  } else {
    if (Input -> Sav < 1286.6800f) {
      if (Input -> TOTAL_ENERGY < -4648.8900f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      if (Input -> LUMO_ENERGY < -1.3400f) {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      } else {
        if (Input -> FlexTorsions < 7.5000f) {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        } else {
          if (Input -> Gyrrad < 5.9000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #98 ****/

  if (Input -> Lipole < 2.8500f) {
    if (Input -> Lipole < 1.1400f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> FlexTorsions < 9.0000f) {
        if (Input -> HOMO_ENERGY < -8.1800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          if (Input -> HbDon < 3.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  } else {
    if (Input -> HOMO_ENERGY < -9.4100f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> ChiralAtms < 0.5000f) {
        if (Input -> Bonds < 59.5000f) {
          if (Input -> ASA < 235.2200f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Bonds < 48.0000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_0;
      }
    }
  }

  ++Occur[Res];

  /**** Tree #99 ****/

  if (Input -> Bonds < 48.5000f) {
    if (Input -> ELECTRONIC_ENERGY < -21236.8200f) {
      if (Input -> Ovality < 1.6600f) {
        if (Input -> Sas < 547.4800f) {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      } else {
        Res = T2C_RANDOM_FOREST_MOPAC_1;
      }
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    }
  } else {
    if (Input -> LUMO_ENERGY < -1.6400f) {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    } else {
      if (Input -> Mass < 445.9100f) {
        if (Input -> TOTAL_ENERGY < -4309.5000f) {
          if (Input -> Sdiam < 12.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> HbAcc < 5.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_1;
        }
      } else {
        if (Input -> FlexTorsions < 11.5000f) {
          if (Input -> LUMO_ENERGY < -1.4600f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> HEAT_OF_FORMATION < 88.5100f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              if (Input -> Gyrrad < 6.8200f) {
                Res = T2C_RANDOM_FOREST_MOPAC_1;
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            }
          }
        } else {
          Res = T2C_RANDOM_FOREST_MOPAC_0;
        }
      }
    }
  }

  ++Occur[Res];

  /**** Tree #100 ****/

  if (Input -> FlexTorsions < 9.5000f) {
    if (Input -> CORE_CORE_REPULSION < 17889.2300f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      if (Input -> DIPOLE < 5.7900f) {
        if (Input -> HOMO_ENERGY < -8.5600f) {
          if (Input -> HbTot < 9.0000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            if (Input -> Bonds < 53.5000f) {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            }
          }
        } else {
          if (Input -> Atoms < 48.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          } else {
            if (Input -> Lipole < 4.4400f) {
              if (Input -> Bonds < 64.0000f) {
                if (Input -> Sav < 1256.8900f) {
                  if (Input -> Lipole < 1.4700f) {
                    Res = T2C_RANDOM_FOREST_MOPAC_1;
                  } else {
                    Res = T2C_RANDOM_FOREST_MOPAC_0;
                  }
                } else {
                  Res = T2C_RANDOM_FOREST_MOPAC_1;
                }
              } else {
                Res = T2C_RANDOM_FOREST_MOPAC_0;
              }
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          }
        }
      } else {
        if (Input -> HOMO_ENERGY < -8.1900f) {
          if (Input -> CORE_CORE_REPULSION < 23346.2400f) {
            if (Input -> Sdiam < 10.8900f) {
              Res = T2C_RANDOM_FOREST_MOPAC_1;
            } else {
              Res = T2C_RANDOM_FOREST_MOPAC_0;
            }
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          }
        } else {
          if (Input -> Torsions < 21.5000f) {
            Res = T2C_RANDOM_FOREST_MOPAC_1;
          } else {
            Res = T2C_RANDOM_FOREST_MOPAC_0;
          }
        }
      }
    }
  } else {
    if (Input -> Volume < 487.7300f) {
      Res = T2C_RANDOM_FOREST_MOPAC_0;
    } else {
      Res = T2C_RANDOM_FOREST_MOPAC_1;
    }
  }

  ++Occur[Res];

  /**** Find the more frequent output class ****/

  if (Occur[T2C_RANDOM_FOREST_MOPAC_0] > Occur[T2C_RANDOM_FOREST_MOPAC_1])
    return T2C_RANDOM_FOREST_MOPAC_0;

  return T2C_RANDOM_FOREST_MOPAC_1;
}


/**** Domain check code ****/

/*
 * Return the number of domain violations
 */

int T2C_RANDOM_FOREST_MOPAC_DomCheck(T2C_RANDOM_FOREST_MOPAC_INPUT *Input)
{
  int     Violations = 0;

  if ((Input -> ASA < 171.29440000f) || (Input -> ASA > 503.41890000f)) ++Violations;
  if ((Input -> Angles < 45.00000000f) || (Input -> Angles > 151.00000000f)) ++Violations;
  if ((Input -> Atoms < 25.00000000f) || (Input -> Atoms > 81.00000000f)) ++Violations;
  if ((Input -> Bonds < 24.00000000f) || (Input -> Bonds > 86.00000000f)) ++Violations;
  if ((Input -> CORE_CORE_REPULSION < 7434.74831000f) || (Input -> CORE_CORE_REPULSION > 60918.11772000f)) ++Violations;
  if ((Input -> COSMO_AREA < 199.38000000f) || (Input -> COSMO_AREA > 601.74000000f)) ++Violations;
  if ((Input -> COSMO_VOLUME < 202.74000000f) || (Input -> COSMO_VOLUME > 705.92000000f)) ++Violations;
  if ((Input -> Charge < -1.00000000f) || (Input -> Charge > 1.00000000f)) ++Violations;
  if ((Input -> ChiralAtms < 0.00000000f) || (Input -> ChiralAtms > 2.00000000f)) ++Violations;
  if ((Input -> DIPOLE < 1.38554000f) || (Input -> DIPOLE > 46.37085000f)) ++Violations;
  if ((Input -> Dipole < 0.76843000f) || (Input -> Dipole > 53.48024000f)) ++Violations;
  if ((Input -> ELECTRONIC_ENERGY < -67620.12768000f) || (Input -> ELECTRONIC_ENERGY > -9212.80319000f)) ++Violations;
  if ((Input -> EzBnds < 0.00000000f) || (Input -> EzBnds > 3.00000000f)) ++Violations;
  if ((Input -> FlexTorsions < 2.00000000f) || (Input -> FlexTorsions > 13.00000000f)) ++Violations;
  if ((Input -> Gyrrad < 2.56610800f) || (Input -> Gyrrad > 7.18179800f)) ++Violations;
  if ((Input -> HEAT_OF_FORMATION < -188.27063000f) || (Input -> HEAT_OF_FORMATION > 215.26215000f)) ++Violations;
  if ((Input -> HOMO_ENERGY < -11.09800000f) || (Input -> HOMO_ENERGY > -4.35500000f)) ++Violations;
  if ((Input -> HbAcc < 2.00000000f) || (Input -> HbAcc > 9.00000000f)) ++Violations;
  if ((Input -> HbDon < 0.00000000f) || (Input -> HbDon > 7.00000000f)) ++Violations;
  if ((Input -> HbTot < 2.00000000f) || (Input -> HbTot > 12.00000000f)) ++Violations;
  if ((Input -> HeavyAtoms < 10.00000000f) || (Input -> HeavyAtoms > 43.00000000f)) ++Violations;
  if ((Input -> IONIZATION_POTENTIAL < 4.35497800f) || (Input -> IONIZATION_POTENTIAL > 11.09756800f)) ++Violations;
  if ((Input -> Impropers < 3.00000000f) || (Input -> Impropers > 30.00000000f)) ++Violations;
  if ((Input -> LUMO_ENERGY < -4.44900000f) || (Input -> LUMO_ENERGY > 7.10800000f)) ++Violations;
  if ((Input -> Lipole < 0.44858900f) || (Input -> Lipole > 7.32993900f)) ++Violations;
  if ((Input -> MOLECULAR_WEIGHT < 143.20530000f) || (Input -> MOLECULAR_WEIGHT > 580.71130000f)) ++Violations;
  if ((Input -> Mass < 143.20350000f) || (Input -> Mass > 580.70320000f)) ++Violations;
  if ((Input -> NO__OF_FILLED_LEVELS < 30.00000000f) || (Input -> NO__OF_FILLED_LEVELS > 111.00000000f)) ++Violations;
  if ((Input -> Ovality < 1.49188800f) || (Input -> Ovality > 2.02934500f)) ++Violations;
  if ((Input -> Psa < 35.48520000f) || (Input -> Psa > 157.16810000f)) ++Violations;
  if ((Input -> Rings < 0.00000000f) || (Input -> Rings > 6.00000000f)) ++Violations;
  if ((Input -> Sas < 373.76050000f) || (Input -> Sas > 972.82620000f)) ++Violations;
  if ((Input -> Sav < 556.81250000f) || (Input -> Sav > 1673.95600000f)) ++Violations;
  if ((Input -> Sdiam < 8.11295100f) || (Input -> Sdiam > 14.37390000f)) ++Violations;
  if ((Input -> Surface < 206.77960000f) || (Input -> Surface > 649.08170000f)) ++Violations;
  if ((Input -> TOTAL_ENERGY < -6702.00996000f) || (Input -> TOTAL_ENERGY > -1778.05489000f)) ++Violations;
  if ((Input -> Torsions < 2.00000000f) || (Input -> Torsions > 47.00000000f)) ++Violations;
  if ((Input -> Vdiam < 6.64218100f) || (Input -> Vdiam > 10.09013000f)) ++Violations;
  if ((Input -> VirtualLogP < -1.44834600f) || (Input -> VirtualLogP > 5.40986700f)) ++Violations;
  if ((Input -> Volume < 153.43720000f) || (Input -> Volume > 537.88430000f)) ++Violations;

  return Violations;
}
