ROOT logo

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned int magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* Object support */
struct sqltvn
{
  unsigned char *tvnvsn; 
  unsigned short tvnvsnl; 
  unsigned char *tvnnm;
  unsigned short tvnnml; 
  unsigned char *tvnsnm;
  unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;

struct sqladts
{
  unsigned int adtvsn; 
  unsigned short adtmode; 
  unsigned short adtnum;  
  sqltvn adttvn[1];       
};
typedef struct sqladts sqladts;

static struct sqladts sqladt = {
  1,1,0,
};

/* Binding to PL/SQL Records */
struct sqltdss
{
  unsigned int tdsvsn; 
  unsigned short tdsnum; 
  unsigned char *tdsval[1]; 
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
  1,
  0,
};

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[17];
};
static const struct sqlcxp sqlfpn =
{
    16,
    "hgeomora2conn.pc"
};


static unsigned int sqlctx = 4724107;


static struct sqlexd {
   unsigned long  sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   occurs;
      const short *cud;
   unsigned char  *sqlest;
      const char  *stmt;
   sqladts *sqladtp;
   sqltdss *sqltdsp;
   unsigned char  **sqphsv;
   unsigned long  *sqphsl;
            int   *sqphss;
            short **sqpind;
            int   *sqpins;
   unsigned long  *sqparm;
   unsigned long  **sqparc;
   unsigned short  *sqpadto;
   unsigned short  *sqptdso;
   unsigned int   sqlcmax;
   unsigned int   sqlcmin;
   unsigned int   sqlcincr;
   unsigned int   sqlctimeout;
   unsigned int   sqlcnowait;
            int   sqfoff;
   unsigned int   sqcmod;
   unsigned int   sqfmod;
   unsigned int   sqlpfmem;
   unsigned char  *sqhstv[4];
   unsigned long  sqhstl[4];
            int   sqhsts[4];
            short *sqindv[4];
            int   sqinds[4];
   unsigned long  sqharm[4];
   unsigned long  *sqharc[4];
   unsigned short  sqadto[4];
   unsigned short  sqtdso[4];
} sqlstm = {13,4};

// Prototypes
extern "C" {
  void sqlcxt (void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlcx2t(void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlbuft(void **, char *);
  void sqlgs2t(void **, char *);
  void sqlorat(void **, unsigned int *, void *);
}

// Forms Interface
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL  = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }

typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,0,0,32,101,0,0,0,0,0,1,0,
20,0,0,2,0,0,29,130,0,0,0,0,0,1,0,
35,0,0,3,0,0,31,137,0,0,0,0,0,1,0,
50,0,0,0,0,0,27,187,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,
81,0,0,5,76,0,4,212,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
104,0,0,6,56,0,6,241,0,0,1,1,0,1,0,2,3,0,0,
123,0,0,7,79,0,6,283,0,0,3,3,0,1,0,3,3,0,0,2,3,0,0,2,9,0,0,
150,0,0,8,149,0,6,321,0,0,2,2,0,1,0,1,97,0,0,2,97,0,0,
173,0,0,9,150,0,6,348,0,0,2,2,0,1,0,1,97,0,0,2,97,0,0,
196,0,0,10,156,0,6,376,0,0,2,2,0,1,0,1,3,0,0,2,97,0,0,
};


//*-- AUTHOR : Ilse Koenig
//*-- Created : 10/06/2010 by Ilse Koenig

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////
// HGeomOra2Conn
//
// Connection class to database Oracle for geometry 
// (uses the Oracle C/C++ precompiler)
//
/////////////////////////////////////////////////////////////
using namespace std;
#include "hgeomora2conn.h"
#include "TRandom.h"
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

// Oracle communication area
#include <oraca.h>
// SQL Communications Area
#include <sqlca.h>
 
ClassImp(HGeomOra2Conn)

HGeomOra2Conn::HGeomOra2Conn() {
  // default constructor
  // defines default values for user ("hades_ana") and the database
  //   ("db-hades", the HADES Oracle database at GSI)
  // User "hades" has Read-only access to the Oracle tables.
  // The connection to Oracle is not opened!
  strcpy(dbName,"db-hades");
  strcpy(userName,"hades_ana");
  isConnected=kFALSE;
  actRunId=-1;
  runStart=-1;
  expLocation[0]='\0';
  historyDate[0]='\0';
  needsServerCheck=kTRUE;
  writable=kFALSE;
}

HGeomOra2Conn::~HGeomOra2Conn() {
  // default destructor (closes connection)
  close();
}

Bool_t HGeomOra2Conn::open() {
  // opens default connection with readonly access
  Char_t* password = new Char_t[20];
  strcpy(password,"hades");
  Bool_t rc=openConnection(password);
  writable=kFALSE;
  if (!rc) close();
  return rc;
}

Bool_t HGeomOra2Conn::open(const Char_t *uName) {
  // opens connection to database Hades for user given by name
  // asks for password
  strcpy(userName,uName);
  Char_t* password=getPassword();
  Bool_t rc=openConnection(password);
  writable=kTRUE;
  if (!rc) close();
  return rc;
}

Bool_t HGeomOra2Conn::open(const Char_t *dbN,const Char_t *uN) {
  // opens connection to database with name dbName for user given by name
  // asks for password
  strcpy(dbName,dbN);
  strcpy(userName,uN);
  Char_t* password=getPassword();
  Bool_t rc=openConnection(password);
  writable=kTRUE;
  if (!rc) close();
  return rc;
}

void HGeomOra2Conn::close() {
  // disconnects from ORACLE
  // A transaction will be automatically rolled back,
  // that means changes in the database are not stored
  // without an explicit COMMIT
  actRunId=-1;
  runStart=-1;
  expLocation[0]='\0';
  historyDate[0]='\0';
  /* EXEC SQL WHENEVER SQLERROR DO
    showSqlError("ORACLE error in HGeomOra2Conn::close():"); */ 

  if (isConnected) {
    /* EXEC SQL ROLLBACK RELEASE; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 0;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )5;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) showSqlError("ORACLE error in HGeomOra2Conn::close():");
}


    isConnected=kFALSE;
    cout<<"connection to Oracle closed"<<endl;
  }
  writable=kFALSE;
  needsServerCheck=kTRUE;
}

void HGeomOra2Conn::print() {
  // prints information about the database connection
  if (isConnected)
    cout<<"Oracle-Database: "<<dbName<<"    Username: "<<userName<<'\n';
  else cout<<"*** no connection to Oracle established  ***\n";
  if (strlen(historyDate)==0) cout<<"No history date set\n";
  else cout<<"History date: "<<historyDate<<'\n';
}

void HGeomOra2Conn::showSqlError(const Char_t* fctName) {
  // shows SQL error messages
  Error(fctName,"\n%s\n",sqlca.sqlerrm.sqlerrmc);
}

void HGeomOra2Conn::showSqlError(const Char_t* fctName,const Char_t* msg) {
  // shows SQL error messages
  Error(fctName,"\n%s\n%s\n",sqlca.sqlerrm.sqlerrmc,msg);
}

void HGeomOra2Conn::commit(void) {
  // commits all changes
  /* EXEC SQL COMMIT WORK; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 0;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )20;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("ORACLE error in HGeomOra2Conn::close():");
}


  cout<<"Transaction committed"<<endl;
  return;
}

void HGeomOra2Conn::rollback(void) {
  // discards all changes since last commit
  /* EXEC SQL ROLLBACK WORK; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 0;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )35;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("ORACLE error in HGeomOra2Conn::close():");
}


  cout<<"Transaction rolled back"<<endl;
  return;
}

Char_t* HGeomOra2Conn::getPassword() {
  // asks for the password
  Char_t* passwd = new Char_t[20];
  Char_t buf[20];
  Int_t ttyfd = 0;
  struct termios tio, itio;
  if ((ttyfd = ::open("/dev/tty", O_RDWR)) < 0) {
    fprintf(stderr, "cannot open tty, using stdin\n");
    ttyfd = 0;
  }
  if (tcgetattr(ttyfd, &tio) < 0) {
    fprintf (stderr, "\nUnable to get terminal characteristics: ");
    cout<<"enter password for user "<<userName<<" > ";
    Int_t n=scanf("%[^\n]%*c",passwd);
    if(n==0)cout<<"no password found!"<<endl;
    return passwd; 
  }
  itio = tio;
  tio.c_lflag &= ~(ECHO|ICANON);         
  tcsetattr (ttyfd, TCSAFLUSH, &tio);
  cout<<"enter password for user "<<userName<<" > ";
  Bool_t res=fgets(buf, 20, stdin);
  if(!res)cout<<"could not retrieve next buffer!"<<endl;
  tcsetattr (ttyfd, TCSAFLUSH, &itio);
  //close(ttyfd);
  sscanf(buf, "%s", passwd);
  cout<<endl;
  return passwd;
}

Bool_t HGeomOra2Conn::openConnection(const Char_t* password) {
  // opens connection (contains the SQL-statements)
  if (isConnected) close();
  Char_t connId[80];
  strcpy(connId,userName);
  strcat(connId,"@");
  strcat(connId,dbName);    // e.g."hades_ana@hadp"
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* uName;
    char* pWord;
  /* EXEC SQL END DECLARE SECTION; */ 

  uName=connId;
  pWord=(Char_t*)password;
  /* EXEC SQL WHENEVER SQLERROR DO
    showSqlError("ORACLE error in HGeomOra2Conn::openConnection(...):"); */ 

  /* EXEC SQL CONNECT :uName IDENTIFIED BY :pWord; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )10;
  sqlstm.offset = (unsigned int  )50;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)uName;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)pWord;
  sqlstm.sqhstl[1] = (unsigned long )0;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlstm.sqlcmax = (unsigned int )100;
  sqlstm.sqlcmin = (unsigned int )2;
  sqlstm.sqlcincr = (unsigned int )1;
  sqlstm.sqlctimeout = (unsigned int )0;
  sqlstm.sqlcnowait = (unsigned int )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) showSqlError("ORACLE error in HGeomOra2Conn::openConnection(...):");
}


  if (sqlca.sqlcode==0) isConnected=kTRUE;
  else cout<<"*** Failed to connect to Oracle ***"<<endl;
  delete password;
  actRunId=-1;
  runStart=0;
  expLocation[0]='\0';
  historyDate[0]='\0';
  return isConnected; 
}

Bool_t HGeomOra2Conn::setSimulRefRun(const Char_t* runName) {
  // Sets the run id via the name of the simulation reference run
  if (!isConnected) return kFALSE; 
  simulRefRun=runName;
  if (simulRefRun.Length()==0) return kFALSE;
  simulRefRun.ToLower();
  runStart=-1;  
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* fname;
    int   run;
  /* EXEC SQL END DECLARE SECTION; */ 

  fname=(Char_t*)simulRefRun.Data();
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */ 

  /* EXEC SQL SELECT ref_run_id INTO :run
           FROM hanal2.simul_ref_run
           WHERE ref_run_name = :fname; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select ref_run_id into :b0  from hanal2.simul_ref_run where\
 ref_run_name=:b1";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )81;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&run;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)fname;
  sqlstm.sqhstl[1] = (unsigned long )0;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto errorfound;
}


  getRunStart(run);
  if (runStart>0) return kTRUE;
  else return kFALSE;
errorfound:
  showSqlError("setSimulRefRun(const Char_t*");
  return kFALSE;
notfound:
  Error("setSimulRefRun(const Char_t*)",
        "No such simulation reference run %s",runName);
  return kFALSE;
}

Bool_t HGeomOra2Conn::setRunId(Int_t id) {
  // Sets the run id and the run start
  if (!isConnected) return kFALSE; 
  simulRefRun="";
  getRunStart(id);   
  if (runStart==-1) return kFALSE;
  else return kTRUE;
}

Int_t HGeomOra2Conn::checkServerLoad() {
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int retval;
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO notfound; */ 

  /* EXEC SQL EXECUTE
    BEGIN
      :retval := hanal.check_analysis_sessions;
    END;
  END-EXEC; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "begin :retval := hanal . check_analysis_sessions ; END ;";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )104;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&retval;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto notfound;
}


  return retval;
notfound:
  showSqlError("checkServerLoad");
  return -1;
}

Int_t HGeomOra2Conn::getRunStart(Int_t id) {
  // Compares the run id with the last used actRunId for fetching data.
  // If they are different, the run start time (converted to ansi C time) is
  // read from Oracle and stored together with the run id in the data members
  // run_id and runStart
  if (id==actRunId && runStart>0) return runStart;
  if (needsServerCheck) {
    Int_t l=0;
    UInt_t nTotWait=0;
    l=checkServerLoad();
    while (l==0&&nTotWait<86400000) {
      UInt_t nWait=10000+gRandom->Integer(20000);
      nTotWait+=nWait;
      cout<<"Oracle server busy, retry in "<<nWait/1000<<" seconds"<<endl;
      usleep(nWait*1000);
      l=checkServerLoad();
    }
    if (l>0) needsServerCheck=kFALSE;
    else return -1;
  }
  if (strlen(historyDate)==0) setParamRelease(id);
  actRunId=id;
  runStart=-1;
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int ri; 
    int rs;
    /* varchar exp_loc[30]; */ 
struct { unsigned short len; unsigned char arr[30]; } exp_loc;

  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO notfound; */ 

  ri = actRunId;
  exp_loc.len=30;
  /* EXEC SQL EXECUTE
    BEGIN
      hades_oper.run_query_2.get_run_start(:ri,:rs,:exp_loc);
    END;
  END-EXEC; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "begin hades_oper . run_query_2 . get_run_start ( :ri , :rs \
, :exp_loc ) ; END ;";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )123;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&ri;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)&rs;
  sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)&exp_loc;
  sqlstm.sqhstl[2] = (unsigned long )32;
  sqlstm.sqhsts[2] = (         int  )0;
  sqlstm.sqindv[2] = (         short *)0;
  sqlstm.sqinds[2] = (         int  )0;
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto notfound;
}


  if (ri==actRunId) {
    runStart=rs;
    exp_loc.arr[exp_loc.len]='\0';
    if (strlen(expLocation)==0) strcpy(expLocation,(Char_t*)exp_loc.arr);
    else {
      if (strcmp(expLocation,(Char_t*)exp_loc.arr)!=0) {
        Error("getRunStart(Int_t)",
          "\nA switch from beamtime runs to simulations runs and vice versa is not "
          "possible\nwithout the close and reopen of the Oracle connection!\n\n");
        runStart=-1;
      }
    }
    return runStart;
  }
notfound:
  Error("getRunStart(Int_t)","Run not found!\n\n");
  return -1; 
}

Bool_t HGeomOra2Conn::setHistoryDate(const Char_t* dateString) {
  // Sets the date to retrieve historic data
  // Returns kFALSE when the date string cannot be converted to a valid date.
  if (!isConnected) return kFALSE;
  if (strstr(dateString,"_")!=NULL) {
    return  setParamRelease(dateString);
  }
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* d;
    char rd[21];
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO notfound; */ 

  d=(Char_t*)dateString;
  rd[0]='\0';
  /* EXEC SQL EXECUTE
    BEGIN
      hades_oper.run_query_2.set_history_date(:d);
      :rd := to_char(hades_oper.run_query_2.get_history_date,hwww.c_datemask);
    END;
  END-EXEC; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "begin hades_oper . run_query_2 . set_history_date ( :d ) ; \
:rd := to_char ( hades_oper . run_query_2 . get_history_date , hwww . c_datema\
sk ) ; END ;";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )150;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)d;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)rd;
  sqlstm.sqhstl[1] = (unsigned long )21;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto notfound;
}


  rd[20]='\0';
  strcpy(historyDate,rd);
  cout<<"*************************************************************\n";
  cout<<"     Oracle history date: "<<historyDate<<"\n";
  cout<<"*************************************************************\n";
  return kTRUE;
notfound:
  showSqlError("setHistoryDate(const Char_t*): sql error");
  return kFALSE;
}

Bool_t HGeomOra2Conn::setParamRelease(const Char_t* release_name) {
  // Sets the history date to the creation date of the parameter release give by name
  if (!isConnected) return kFALSE; 
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* r;
    char rd[21];
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO notfound; */ 

  rd[0]='\0';	
  r=(Char_t*)release_name;
  /* EXEC SQL EXECUTE
    BEGIN
      hades_oper.run_query_2.set_param_release(:r);
      :rd := to_char(hades_oper.run_query_2.get_history_date,hwww.c_datemask);
    END;
  END-EXEC; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "begin hades_oper . run_query_2 . set_param_release ( :r ) ;\
 :rd := to_char ( hades_oper . run_query_2 . get_history_date , hwww . c_datem\
ask ) ; END ;";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )173;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)r;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)rd;
  sqlstm.sqhstl[1] = (unsigned long )21;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto notfound;
}


  rd[20]='\0';
  strcpy(historyDate,rd);
  cout<<"*************************************************************\n";
  cout<<"     Oracle history date: "<<historyDate<<"\n";
  cout<<"*************************************************************\n";
  return kTRUE;
notfound:
  showSqlError("setParamRelease(const Char_t*): sql error");
  return kFALSE;
}

Bool_t HGeomOra2Conn::setParamRelease(Int_t run) {
  // Sets the history date to the creation date of the parameter release
  // for the corresponding experiment
  if (!isConnected) return kFALSE; 
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int r;
    char rd[21];
  /* EXEC SQL END DECLARE SECTION; */ 

  /* EXEC SQL WHENEVER SQLERROR GOTO notfound; */ 

  r=run;
  rd[0]='\0';
  /* EXEC SQL EXECUTE
    BEGIN
      hades_oper.run_query_2.set_history_date_by_run(:r);	
      :rd := to_char(hades_oper.run_query_2.get_history_date,hwww.c_datemask);
    END;
  END-EXEC; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 4;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "begin hades_oper . run_query_2 . set_history_date_by_run ( \
:r ) ; :rd := to_char ( hades_oper . run_query_2 . get_history_date , hwww . c\
_datemask ) ; END ;";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )196;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&r;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)rd;
  sqlstm.sqhstl[1] = (unsigned long )21;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto notfound;
}


  rd[20]='\0';
  strcpy(historyDate,rd);
  cout<<"*************************************************************\n";
  cout<<"     Oracle history date: "<<historyDate<<"\n";
  cout<<"*************************************************************\n";
  return kTRUE;
notfound:
  showSqlError("setParamRelease(Int_t): sql error");
  return kFALSE;
}
 hgeomora2conn.pc.cc:1
 hgeomora2conn.pc.cc:2
 hgeomora2conn.pc.cc:3
 hgeomora2conn.pc.cc:4
 hgeomora2conn.pc.cc:5
 hgeomora2conn.pc.cc:6
 hgeomora2conn.pc.cc:7
 hgeomora2conn.pc.cc:8
 hgeomora2conn.pc.cc:9
 hgeomora2conn.pc.cc:10
 hgeomora2conn.pc.cc:11
 hgeomora2conn.pc.cc:12
 hgeomora2conn.pc.cc:13
 hgeomora2conn.pc.cc:14
 hgeomora2conn.pc.cc:15
 hgeomora2conn.pc.cc:16
 hgeomora2conn.pc.cc:17
 hgeomora2conn.pc.cc:18
 hgeomora2conn.pc.cc:19
 hgeomora2conn.pc.cc:20
 hgeomora2conn.pc.cc:21
 hgeomora2conn.pc.cc:22
 hgeomora2conn.pc.cc:23
 hgeomora2conn.pc.cc:24
 hgeomora2conn.pc.cc:25
 hgeomora2conn.pc.cc:26
 hgeomora2conn.pc.cc:27
 hgeomora2conn.pc.cc:28
 hgeomora2conn.pc.cc:29
 hgeomora2conn.pc.cc:30
 hgeomora2conn.pc.cc:31
 hgeomora2conn.pc.cc:32
 hgeomora2conn.pc.cc:33
 hgeomora2conn.pc.cc:34
 hgeomora2conn.pc.cc:35
 hgeomora2conn.pc.cc:36
 hgeomora2conn.pc.cc:37
 hgeomora2conn.pc.cc:38
 hgeomora2conn.pc.cc:39
 hgeomora2conn.pc.cc:40
 hgeomora2conn.pc.cc:41
 hgeomora2conn.pc.cc:42
 hgeomora2conn.pc.cc:43
 hgeomora2conn.pc.cc:44
 hgeomora2conn.pc.cc:45
 hgeomora2conn.pc.cc:46
 hgeomora2conn.pc.cc:47
 hgeomora2conn.pc.cc:48
 hgeomora2conn.pc.cc:49
 hgeomora2conn.pc.cc:50
 hgeomora2conn.pc.cc:51
 hgeomora2conn.pc.cc:52
 hgeomora2conn.pc.cc:53
 hgeomora2conn.pc.cc:54
 hgeomora2conn.pc.cc:55
 hgeomora2conn.pc.cc:56
 hgeomora2conn.pc.cc:57
 hgeomora2conn.pc.cc:58
 hgeomora2conn.pc.cc:59
 hgeomora2conn.pc.cc:60
 hgeomora2conn.pc.cc:61
 hgeomora2conn.pc.cc:62
 hgeomora2conn.pc.cc:63
 hgeomora2conn.pc.cc:64
 hgeomora2conn.pc.cc:65
 hgeomora2conn.pc.cc:66
 hgeomora2conn.pc.cc:67
 hgeomora2conn.pc.cc:68
 hgeomora2conn.pc.cc:69
 hgeomora2conn.pc.cc:70
 hgeomora2conn.pc.cc:71
 hgeomora2conn.pc.cc:72
 hgeomora2conn.pc.cc:73
 hgeomora2conn.pc.cc:74
 hgeomora2conn.pc.cc:75
 hgeomora2conn.pc.cc:76
 hgeomora2conn.pc.cc:77
 hgeomora2conn.pc.cc:78
 hgeomora2conn.pc.cc:79
 hgeomora2conn.pc.cc:80
 hgeomora2conn.pc.cc:81
 hgeomora2conn.pc.cc:82
 hgeomora2conn.pc.cc:83
 hgeomora2conn.pc.cc:84
 hgeomora2conn.pc.cc:85
 hgeomora2conn.pc.cc:86
 hgeomora2conn.pc.cc:87
 hgeomora2conn.pc.cc:88
 hgeomora2conn.pc.cc:89
 hgeomora2conn.pc.cc:90
 hgeomora2conn.pc.cc:91
 hgeomora2conn.pc.cc:92
 hgeomora2conn.pc.cc:93
 hgeomora2conn.pc.cc:94
 hgeomora2conn.pc.cc:95
 hgeomora2conn.pc.cc:96
 hgeomora2conn.pc.cc:97
 hgeomora2conn.pc.cc:98
 hgeomora2conn.pc.cc:99
 hgeomora2conn.pc.cc:100
 hgeomora2conn.pc.cc:101
 hgeomora2conn.pc.cc:102
 hgeomora2conn.pc.cc:103
 hgeomora2conn.pc.cc:104
 hgeomora2conn.pc.cc:105
 hgeomora2conn.pc.cc:106
 hgeomora2conn.pc.cc:107
 hgeomora2conn.pc.cc:108
 hgeomora2conn.pc.cc:109
 hgeomora2conn.pc.cc:110
 hgeomora2conn.pc.cc:111
 hgeomora2conn.pc.cc:112
 hgeomora2conn.pc.cc:113
 hgeomora2conn.pc.cc:114
 hgeomora2conn.pc.cc:115
 hgeomora2conn.pc.cc:116
 hgeomora2conn.pc.cc:117
 hgeomora2conn.pc.cc:118
 hgeomora2conn.pc.cc:119
 hgeomora2conn.pc.cc:120
 hgeomora2conn.pc.cc:121
 hgeomora2conn.pc.cc:122
 hgeomora2conn.pc.cc:123
 hgeomora2conn.pc.cc:124
 hgeomora2conn.pc.cc:125
 hgeomora2conn.pc.cc:126
 hgeomora2conn.pc.cc:127
 hgeomora2conn.pc.cc:128
 hgeomora2conn.pc.cc:129
 hgeomora2conn.pc.cc:130
 hgeomora2conn.pc.cc:131
 hgeomora2conn.pc.cc:132
 hgeomora2conn.pc.cc:133
 hgeomora2conn.pc.cc:134
 hgeomora2conn.pc.cc:135
 hgeomora2conn.pc.cc:136
 hgeomora2conn.pc.cc:137
 hgeomora2conn.pc.cc:138
 hgeomora2conn.pc.cc:139
 hgeomora2conn.pc.cc:140
 hgeomora2conn.pc.cc:141
 hgeomora2conn.pc.cc:142
 hgeomora2conn.pc.cc:143
 hgeomora2conn.pc.cc:144
 hgeomora2conn.pc.cc:145
 hgeomora2conn.pc.cc:146
 hgeomora2conn.pc.cc:147
 hgeomora2conn.pc.cc:148
 hgeomora2conn.pc.cc:149
 hgeomora2conn.pc.cc:150
 hgeomora2conn.pc.cc:151
 hgeomora2conn.pc.cc:152
 hgeomora2conn.pc.cc:153
 hgeomora2conn.pc.cc:154
 hgeomora2conn.pc.cc:155
 hgeomora2conn.pc.cc:156
 hgeomora2conn.pc.cc:157
 hgeomora2conn.pc.cc:158
 hgeomora2conn.pc.cc:159
 hgeomora2conn.pc.cc:160
 hgeomora2conn.pc.cc:161
 hgeomora2conn.pc.cc:162
 hgeomora2conn.pc.cc:163
 hgeomora2conn.pc.cc:164
 hgeomora2conn.pc.cc:165
 hgeomora2conn.pc.cc:166
 hgeomora2conn.pc.cc:167
 hgeomora2conn.pc.cc:168
 hgeomora2conn.pc.cc:169
 hgeomora2conn.pc.cc:170
 hgeomora2conn.pc.cc:171
 hgeomora2conn.pc.cc:172
 hgeomora2conn.pc.cc:173
 hgeomora2conn.pc.cc:174
 hgeomora2conn.pc.cc:175
 hgeomora2conn.pc.cc:176
 hgeomora2conn.pc.cc:177
 hgeomora2conn.pc.cc:178
 hgeomora2conn.pc.cc:179
 hgeomora2conn.pc.cc:180
 hgeomora2conn.pc.cc:181
 hgeomora2conn.pc.cc:182
 hgeomora2conn.pc.cc:183
 hgeomora2conn.pc.cc:184
 hgeomora2conn.pc.cc:185
 hgeomora2conn.pc.cc:186
 hgeomora2conn.pc.cc:187
 hgeomora2conn.pc.cc:188
 hgeomora2conn.pc.cc:189
 hgeomora2conn.pc.cc:190
 hgeomora2conn.pc.cc:191
 hgeomora2conn.pc.cc:192
 hgeomora2conn.pc.cc:193
 hgeomora2conn.pc.cc:194
 hgeomora2conn.pc.cc:195
 hgeomora2conn.pc.cc:196
 hgeomora2conn.pc.cc:197
 hgeomora2conn.pc.cc:198
 hgeomora2conn.pc.cc:199
 hgeomora2conn.pc.cc:200
 hgeomora2conn.pc.cc:201
 hgeomora2conn.pc.cc:202
 hgeomora2conn.pc.cc:203
 hgeomora2conn.pc.cc:204
 hgeomora2conn.pc.cc:205
 hgeomora2conn.pc.cc:206
 hgeomora2conn.pc.cc:207
 hgeomora2conn.pc.cc:208
 hgeomora2conn.pc.cc:209
 hgeomora2conn.pc.cc:210
 hgeomora2conn.pc.cc:211
 hgeomora2conn.pc.cc:212
 hgeomora2conn.pc.cc:213
 hgeomora2conn.pc.cc:214
 hgeomora2conn.pc.cc:215
 hgeomora2conn.pc.cc:216
 hgeomora2conn.pc.cc:217
 hgeomora2conn.pc.cc:218
 hgeomora2conn.pc.cc:219
 hgeomora2conn.pc.cc:220
 hgeomora2conn.pc.cc:221
 hgeomora2conn.pc.cc:222
 hgeomora2conn.pc.cc:223
 hgeomora2conn.pc.cc:224
 hgeomora2conn.pc.cc:225
 hgeomora2conn.pc.cc:226
 hgeomora2conn.pc.cc:227
 hgeomora2conn.pc.cc:228
 hgeomora2conn.pc.cc:229
 hgeomora2conn.pc.cc:230
 hgeomora2conn.pc.cc:231
 hgeomora2conn.pc.cc:232
 hgeomora2conn.pc.cc:233
 hgeomora2conn.pc.cc:234
 hgeomora2conn.pc.cc:235
 hgeomora2conn.pc.cc:236
 hgeomora2conn.pc.cc:237
 hgeomora2conn.pc.cc:238
 hgeomora2conn.pc.cc:239
 hgeomora2conn.pc.cc:240
 hgeomora2conn.pc.cc:241
 hgeomora2conn.pc.cc:242
 hgeomora2conn.pc.cc:243
 hgeomora2conn.pc.cc:244
 hgeomora2conn.pc.cc:245
 hgeomora2conn.pc.cc:246
 hgeomora2conn.pc.cc:247
 hgeomora2conn.pc.cc:248
 hgeomora2conn.pc.cc:249
 hgeomora2conn.pc.cc:250
 hgeomora2conn.pc.cc:251
 hgeomora2conn.pc.cc:252
 hgeomora2conn.pc.cc:253
 hgeomora2conn.pc.cc:254
 hgeomora2conn.pc.cc:255
 hgeomora2conn.pc.cc:256
 hgeomora2conn.pc.cc:257
 hgeomora2conn.pc.cc:258
 hgeomora2conn.pc.cc:259
 hgeomora2conn.pc.cc:260
 hgeomora2conn.pc.cc:261
 hgeomora2conn.pc.cc:262
 hgeomora2conn.pc.cc:263
 hgeomora2conn.pc.cc:264
 hgeomora2conn.pc.cc:265
 hgeomora2conn.pc.cc:266
 hgeomora2conn.pc.cc:267
 hgeomora2conn.pc.cc:268
 hgeomora2conn.pc.cc:269
 hgeomora2conn.pc.cc:270
 hgeomora2conn.pc.cc:271
 hgeomora2conn.pc.cc:272
 hgeomora2conn.pc.cc:273
 hgeomora2conn.pc.cc:274
 hgeomora2conn.pc.cc:275
 hgeomora2conn.pc.cc:276
 hgeomora2conn.pc.cc:277
 hgeomora2conn.pc.cc:278
 hgeomora2conn.pc.cc:279
 hgeomora2conn.pc.cc:280
 hgeomora2conn.pc.cc:281
 hgeomora2conn.pc.cc:282
 hgeomora2conn.pc.cc:283
 hgeomora2conn.pc.cc:284
 hgeomora2conn.pc.cc:285
 hgeomora2conn.pc.cc:286
 hgeomora2conn.pc.cc:287
 hgeomora2conn.pc.cc:288
 hgeomora2conn.pc.cc:289
 hgeomora2conn.pc.cc:290
 hgeomora2conn.pc.cc:291
 hgeomora2conn.pc.cc:292
 hgeomora2conn.pc.cc:293
 hgeomora2conn.pc.cc:294
 hgeomora2conn.pc.cc:295
 hgeomora2conn.pc.cc:296
 hgeomora2conn.pc.cc:297
 hgeomora2conn.pc.cc:298
 hgeomora2conn.pc.cc:299
 hgeomora2conn.pc.cc:300
 hgeomora2conn.pc.cc:301
 hgeomora2conn.pc.cc:302
 hgeomora2conn.pc.cc:303
 hgeomora2conn.pc.cc:304
 hgeomora2conn.pc.cc:305
 hgeomora2conn.pc.cc:306
 hgeomora2conn.pc.cc:307
 hgeomora2conn.pc.cc:308
 hgeomora2conn.pc.cc:309
 hgeomora2conn.pc.cc:310
 hgeomora2conn.pc.cc:311
 hgeomora2conn.pc.cc:312
 hgeomora2conn.pc.cc:313
 hgeomora2conn.pc.cc:314
 hgeomora2conn.pc.cc:315
 hgeomora2conn.pc.cc:316
 hgeomora2conn.pc.cc:317
 hgeomora2conn.pc.cc:318
 hgeomora2conn.pc.cc:319
 hgeomora2conn.pc.cc:320
 hgeomora2conn.pc.cc:321
 hgeomora2conn.pc.cc:322
 hgeomora2conn.pc.cc:323
 hgeomora2conn.pc.cc:324
 hgeomora2conn.pc.cc:325
 hgeomora2conn.pc.cc:326
 hgeomora2conn.pc.cc:327
 hgeomora2conn.pc.cc:328
 hgeomora2conn.pc.cc:329
 hgeomora2conn.pc.cc:330
 hgeomora2conn.pc.cc:331
 hgeomora2conn.pc.cc:332
 hgeomora2conn.pc.cc:333
 hgeomora2conn.pc.cc:334
 hgeomora2conn.pc.cc:335
 hgeomora2conn.pc.cc:336
 hgeomora2conn.pc.cc:337
 hgeomora2conn.pc.cc:338
 hgeomora2conn.pc.cc:339
 hgeomora2conn.pc.cc:340
 hgeomora2conn.pc.cc:341
 hgeomora2conn.pc.cc:342
 hgeomora2conn.pc.cc:343
 hgeomora2conn.pc.cc:344
 hgeomora2conn.pc.cc:345
 hgeomora2conn.pc.cc:346
 hgeomora2conn.pc.cc:347
 hgeomora2conn.pc.cc:348
 hgeomora2conn.pc.cc:349
 hgeomora2conn.pc.cc:350
 hgeomora2conn.pc.cc:351
 hgeomora2conn.pc.cc:352
 hgeomora2conn.pc.cc:353
 hgeomora2conn.pc.cc:354
 hgeomora2conn.pc.cc:355
 hgeomora2conn.pc.cc:356
 hgeomora2conn.pc.cc:357
 hgeomora2conn.pc.cc:358
 hgeomora2conn.pc.cc:359
 hgeomora2conn.pc.cc:360
 hgeomora2conn.pc.cc:361
 hgeomora2conn.pc.cc:362
 hgeomora2conn.pc.cc:363
 hgeomora2conn.pc.cc:364
 hgeomora2conn.pc.cc:365
 hgeomora2conn.pc.cc:366
 hgeomora2conn.pc.cc:367
 hgeomora2conn.pc.cc:368
 hgeomora2conn.pc.cc:369
 hgeomora2conn.pc.cc:370
 hgeomora2conn.pc.cc:371
 hgeomora2conn.pc.cc:372
 hgeomora2conn.pc.cc:373
 hgeomora2conn.pc.cc:374
 hgeomora2conn.pc.cc:375
 hgeomora2conn.pc.cc:376
 hgeomora2conn.pc.cc:377
 hgeomora2conn.pc.cc:378
 hgeomora2conn.pc.cc:379
 hgeomora2conn.pc.cc:380
 hgeomora2conn.pc.cc:381
 hgeomora2conn.pc.cc:382
 hgeomora2conn.pc.cc:383
 hgeomora2conn.pc.cc:384
 hgeomora2conn.pc.cc:385
 hgeomora2conn.pc.cc:386
 hgeomora2conn.pc.cc:387
 hgeomora2conn.pc.cc:388
 hgeomora2conn.pc.cc:389
 hgeomora2conn.pc.cc:390
 hgeomora2conn.pc.cc:391
 hgeomora2conn.pc.cc:392
 hgeomora2conn.pc.cc:393
 hgeomora2conn.pc.cc:394
 hgeomora2conn.pc.cc:395
 hgeomora2conn.pc.cc:396
 hgeomora2conn.pc.cc:397
 hgeomora2conn.pc.cc:398
 hgeomora2conn.pc.cc:399
 hgeomora2conn.pc.cc:400
 hgeomora2conn.pc.cc:401
 hgeomora2conn.pc.cc:402
 hgeomora2conn.pc.cc:403
 hgeomora2conn.pc.cc:404
 hgeomora2conn.pc.cc:405
 hgeomora2conn.pc.cc:406
 hgeomora2conn.pc.cc:407
 hgeomora2conn.pc.cc:408
 hgeomora2conn.pc.cc:409
 hgeomora2conn.pc.cc:410
 hgeomora2conn.pc.cc:411
 hgeomora2conn.pc.cc:412
 hgeomora2conn.pc.cc:413
 hgeomora2conn.pc.cc:414
 hgeomora2conn.pc.cc:415
 hgeomora2conn.pc.cc:416
 hgeomora2conn.pc.cc:417
 hgeomora2conn.pc.cc:418
 hgeomora2conn.pc.cc:419
 hgeomora2conn.pc.cc:420
 hgeomora2conn.pc.cc:421
 hgeomora2conn.pc.cc:422
 hgeomora2conn.pc.cc:423
 hgeomora2conn.pc.cc:424
 hgeomora2conn.pc.cc:425
 hgeomora2conn.pc.cc:426
 hgeomora2conn.pc.cc:427
 hgeomora2conn.pc.cc:428
 hgeomora2conn.pc.cc:429
 hgeomora2conn.pc.cc:430
 hgeomora2conn.pc.cc:431
 hgeomora2conn.pc.cc:432
 hgeomora2conn.pc.cc:433
 hgeomora2conn.pc.cc:434
 hgeomora2conn.pc.cc:435
 hgeomora2conn.pc.cc:436
 hgeomora2conn.pc.cc:437
 hgeomora2conn.pc.cc:438
 hgeomora2conn.pc.cc:439
 hgeomora2conn.pc.cc:440
 hgeomora2conn.pc.cc:441
 hgeomora2conn.pc.cc:442
 hgeomora2conn.pc.cc:443
 hgeomora2conn.pc.cc:444
 hgeomora2conn.pc.cc:445
 hgeomora2conn.pc.cc:446
 hgeomora2conn.pc.cc:447
 hgeomora2conn.pc.cc:448
 hgeomora2conn.pc.cc:449
 hgeomora2conn.pc.cc:450
 hgeomora2conn.pc.cc:451
 hgeomora2conn.pc.cc:452
 hgeomora2conn.pc.cc:453
 hgeomora2conn.pc.cc:454
 hgeomora2conn.pc.cc:455
 hgeomora2conn.pc.cc:456
 hgeomora2conn.pc.cc:457
 hgeomora2conn.pc.cc:458
 hgeomora2conn.pc.cc:459
 hgeomora2conn.pc.cc:460
 hgeomora2conn.pc.cc:461
 hgeomora2conn.pc.cc:462
 hgeomora2conn.pc.cc:463
 hgeomora2conn.pc.cc:464
 hgeomora2conn.pc.cc:465
 hgeomora2conn.pc.cc:466
 hgeomora2conn.pc.cc:467
 hgeomora2conn.pc.cc:468
 hgeomora2conn.pc.cc:469
 hgeomora2conn.pc.cc:470
 hgeomora2conn.pc.cc:471
 hgeomora2conn.pc.cc:472
 hgeomora2conn.pc.cc:473
 hgeomora2conn.pc.cc:474
 hgeomora2conn.pc.cc:475
 hgeomora2conn.pc.cc:476
 hgeomora2conn.pc.cc:477
 hgeomora2conn.pc.cc:478
 hgeomora2conn.pc.cc:479
 hgeomora2conn.pc.cc:480
 hgeomora2conn.pc.cc:481
 hgeomora2conn.pc.cc:482
 hgeomora2conn.pc.cc:483
 hgeomora2conn.pc.cc:484
 hgeomora2conn.pc.cc:485
 hgeomora2conn.pc.cc:486
 hgeomora2conn.pc.cc:487
 hgeomora2conn.pc.cc:488
 hgeomora2conn.pc.cc:489
 hgeomora2conn.pc.cc:490
 hgeomora2conn.pc.cc:491
 hgeomora2conn.pc.cc:492
 hgeomora2conn.pc.cc:493
 hgeomora2conn.pc.cc:494
 hgeomora2conn.pc.cc:495
 hgeomora2conn.pc.cc:496
 hgeomora2conn.pc.cc:497
 hgeomora2conn.pc.cc:498
 hgeomora2conn.pc.cc:499
 hgeomora2conn.pc.cc:500
 hgeomora2conn.pc.cc:501
 hgeomora2conn.pc.cc:502
 hgeomora2conn.pc.cc:503
 hgeomora2conn.pc.cc:504
 hgeomora2conn.pc.cc:505
 hgeomora2conn.pc.cc:506
 hgeomora2conn.pc.cc:507
 hgeomora2conn.pc.cc:508
 hgeomora2conn.pc.cc:509
 hgeomora2conn.pc.cc:510
 hgeomora2conn.pc.cc:511
 hgeomora2conn.pc.cc:512
 hgeomora2conn.pc.cc:513
 hgeomora2conn.pc.cc:514
 hgeomora2conn.pc.cc:515
 hgeomora2conn.pc.cc:516
 hgeomora2conn.pc.cc:517
 hgeomora2conn.pc.cc:518
 hgeomora2conn.pc.cc:519
 hgeomora2conn.pc.cc:520
 hgeomora2conn.pc.cc:521
 hgeomora2conn.pc.cc:522
 hgeomora2conn.pc.cc:523
 hgeomora2conn.pc.cc:524
 hgeomora2conn.pc.cc:525
 hgeomora2conn.pc.cc:526
 hgeomora2conn.pc.cc:527
 hgeomora2conn.pc.cc:528
 hgeomora2conn.pc.cc:529
 hgeomora2conn.pc.cc:530
 hgeomora2conn.pc.cc:531
 hgeomora2conn.pc.cc:532
 hgeomora2conn.pc.cc:533
 hgeomora2conn.pc.cc:534
 hgeomora2conn.pc.cc:535
 hgeomora2conn.pc.cc:536
 hgeomora2conn.pc.cc:537
 hgeomora2conn.pc.cc:538
 hgeomora2conn.pc.cc:539
 hgeomora2conn.pc.cc:540
 hgeomora2conn.pc.cc:541
 hgeomora2conn.pc.cc:542
 hgeomora2conn.pc.cc:543
 hgeomora2conn.pc.cc:544
 hgeomora2conn.pc.cc:545
 hgeomora2conn.pc.cc:546
 hgeomora2conn.pc.cc:547
 hgeomora2conn.pc.cc:548
 hgeomora2conn.pc.cc:549
 hgeomora2conn.pc.cc:550
 hgeomora2conn.pc.cc:551
 hgeomora2conn.pc.cc:552
 hgeomora2conn.pc.cc:553
 hgeomora2conn.pc.cc:554
 hgeomora2conn.pc.cc:555
 hgeomora2conn.pc.cc:556
 hgeomora2conn.pc.cc:557
 hgeomora2conn.pc.cc:558
 hgeomora2conn.pc.cc:559
 hgeomora2conn.pc.cc:560
 hgeomora2conn.pc.cc:561
 hgeomora2conn.pc.cc:562
 hgeomora2conn.pc.cc:563
 hgeomora2conn.pc.cc:564
 hgeomora2conn.pc.cc:565
 hgeomora2conn.pc.cc:566
 hgeomora2conn.pc.cc:567
 hgeomora2conn.pc.cc:568
 hgeomora2conn.pc.cc:569
 hgeomora2conn.pc.cc:570
 hgeomora2conn.pc.cc:571
 hgeomora2conn.pc.cc:572
 hgeomora2conn.pc.cc:573
 hgeomora2conn.pc.cc:574
 hgeomora2conn.pc.cc:575
 hgeomora2conn.pc.cc:576
 hgeomora2conn.pc.cc:577
 hgeomora2conn.pc.cc:578
 hgeomora2conn.pc.cc:579
 hgeomora2conn.pc.cc:580
 hgeomora2conn.pc.cc:581
 hgeomora2conn.pc.cc:582
 hgeomora2conn.pc.cc:583
 hgeomora2conn.pc.cc:584
 hgeomora2conn.pc.cc:585
 hgeomora2conn.pc.cc:586
 hgeomora2conn.pc.cc:587
 hgeomora2conn.pc.cc:588
 hgeomora2conn.pc.cc:589
 hgeomora2conn.pc.cc:590
 hgeomora2conn.pc.cc:591
 hgeomora2conn.pc.cc:592
 hgeomora2conn.pc.cc:593
 hgeomora2conn.pc.cc:594
 hgeomora2conn.pc.cc:595
 hgeomora2conn.pc.cc:596
 hgeomora2conn.pc.cc:597
 hgeomora2conn.pc.cc:598
 hgeomora2conn.pc.cc:599
 hgeomora2conn.pc.cc:600
 hgeomora2conn.pc.cc:601
 hgeomora2conn.pc.cc:602
 hgeomora2conn.pc.cc:603
 hgeomora2conn.pc.cc:604
 hgeomora2conn.pc.cc:605
 hgeomora2conn.pc.cc:606
 hgeomora2conn.pc.cc:607
 hgeomora2conn.pc.cc:608
 hgeomora2conn.pc.cc:609
 hgeomora2conn.pc.cc:610
 hgeomora2conn.pc.cc:611
 hgeomora2conn.pc.cc:612
 hgeomora2conn.pc.cc:613
 hgeomora2conn.pc.cc:614
 hgeomora2conn.pc.cc:615
 hgeomora2conn.pc.cc:616
 hgeomora2conn.pc.cc:617
 hgeomora2conn.pc.cc:618
 hgeomora2conn.pc.cc:619
 hgeomora2conn.pc.cc:620
 hgeomora2conn.pc.cc:621
 hgeomora2conn.pc.cc:622
 hgeomora2conn.pc.cc:623
 hgeomora2conn.pc.cc:624
 hgeomora2conn.pc.cc:625
 hgeomora2conn.pc.cc:626
 hgeomora2conn.pc.cc:627
 hgeomora2conn.pc.cc:628
 hgeomora2conn.pc.cc:629
 hgeomora2conn.pc.cc:630
 hgeomora2conn.pc.cc:631
 hgeomora2conn.pc.cc:632
 hgeomora2conn.pc.cc:633
 hgeomora2conn.pc.cc:634
 hgeomora2conn.pc.cc:635
 hgeomora2conn.pc.cc:636
 hgeomora2conn.pc.cc:637
 hgeomora2conn.pc.cc:638
 hgeomora2conn.pc.cc:639
 hgeomora2conn.pc.cc:640
 hgeomora2conn.pc.cc:641
 hgeomora2conn.pc.cc:642
 hgeomora2conn.pc.cc:643
 hgeomora2conn.pc.cc:644
 hgeomora2conn.pc.cc:645
 hgeomora2conn.pc.cc:646
 hgeomora2conn.pc.cc:647
 hgeomora2conn.pc.cc:648
 hgeomora2conn.pc.cc:649
 hgeomora2conn.pc.cc:650
 hgeomora2conn.pc.cc:651
 hgeomora2conn.pc.cc:652
 hgeomora2conn.pc.cc:653
 hgeomora2conn.pc.cc:654
 hgeomora2conn.pc.cc:655
 hgeomora2conn.pc.cc:656
 hgeomora2conn.pc.cc:657
 hgeomora2conn.pc.cc:658
 hgeomora2conn.pc.cc:659
 hgeomora2conn.pc.cc:660
 hgeomora2conn.pc.cc:661
 hgeomora2conn.pc.cc:662
 hgeomora2conn.pc.cc:663
 hgeomora2conn.pc.cc:664
 hgeomora2conn.pc.cc:665
 hgeomora2conn.pc.cc:666
 hgeomora2conn.pc.cc:667
 hgeomora2conn.pc.cc:668
 hgeomora2conn.pc.cc:669
 hgeomora2conn.pc.cc:670
 hgeomora2conn.pc.cc:671
 hgeomora2conn.pc.cc:672
 hgeomora2conn.pc.cc:673
 hgeomora2conn.pc.cc:674
 hgeomora2conn.pc.cc:675
 hgeomora2conn.pc.cc:676
 hgeomora2conn.pc.cc:677
 hgeomora2conn.pc.cc:678
 hgeomora2conn.pc.cc:679
 hgeomora2conn.pc.cc:680
 hgeomora2conn.pc.cc:681
 hgeomora2conn.pc.cc:682
 hgeomora2conn.pc.cc:683
 hgeomora2conn.pc.cc:684
 hgeomora2conn.pc.cc:685
 hgeomora2conn.pc.cc:686
 hgeomora2conn.pc.cc:687
 hgeomora2conn.pc.cc:688
 hgeomora2conn.pc.cc:689
 hgeomora2conn.pc.cc:690
 hgeomora2conn.pc.cc:691
 hgeomora2conn.pc.cc:692
 hgeomora2conn.pc.cc:693
 hgeomora2conn.pc.cc:694
 hgeomora2conn.pc.cc:695
 hgeomora2conn.pc.cc:696
 hgeomora2conn.pc.cc:697
 hgeomora2conn.pc.cc:698
 hgeomora2conn.pc.cc:699
 hgeomora2conn.pc.cc:700
 hgeomora2conn.pc.cc:701
 hgeomora2conn.pc.cc:702
 hgeomora2conn.pc.cc:703
 hgeomora2conn.pc.cc:704
 hgeomora2conn.pc.cc:705
 hgeomora2conn.pc.cc:706
 hgeomora2conn.pc.cc:707
 hgeomora2conn.pc.cc:708
 hgeomora2conn.pc.cc:709
 hgeomora2conn.pc.cc:710
 hgeomora2conn.pc.cc:711
 hgeomora2conn.pc.cc:712
 hgeomora2conn.pc.cc:713
 hgeomora2conn.pc.cc:714
 hgeomora2conn.pc.cc:715
 hgeomora2conn.pc.cc:716
 hgeomora2conn.pc.cc:717
 hgeomora2conn.pc.cc:718
 hgeomora2conn.pc.cc:719
 hgeomora2conn.pc.cc:720
 hgeomora2conn.pc.cc:721
 hgeomora2conn.pc.cc:722
 hgeomora2conn.pc.cc:723
 hgeomora2conn.pc.cc:724
 hgeomora2conn.pc.cc:725
 hgeomora2conn.pc.cc:726
 hgeomora2conn.pc.cc:727
 hgeomora2conn.pc.cc:728
 hgeomora2conn.pc.cc:729
 hgeomora2conn.pc.cc:730
 hgeomora2conn.pc.cc:731
 hgeomora2conn.pc.cc:732
 hgeomora2conn.pc.cc:733
 hgeomora2conn.pc.cc:734
 hgeomora2conn.pc.cc:735
 hgeomora2conn.pc.cc:736
 hgeomora2conn.pc.cc:737
 hgeomora2conn.pc.cc:738
 hgeomora2conn.pc.cc:739
 hgeomora2conn.pc.cc:740
 hgeomora2conn.pc.cc:741
 hgeomora2conn.pc.cc:742
 hgeomora2conn.pc.cc:743
 hgeomora2conn.pc.cc:744
 hgeomora2conn.pc.cc:745
 hgeomora2conn.pc.cc:746
 hgeomora2conn.pc.cc:747
 hgeomora2conn.pc.cc:748
 hgeomora2conn.pc.cc:749
 hgeomora2conn.pc.cc:750
 hgeomora2conn.pc.cc:751
 hgeomora2conn.pc.cc:752
 hgeomora2conn.pc.cc:753
 hgeomora2conn.pc.cc:754
 hgeomora2conn.pc.cc:755
 hgeomora2conn.pc.cc:756
 hgeomora2conn.pc.cc:757
 hgeomora2conn.pc.cc:758
 hgeomora2conn.pc.cc:759
 hgeomora2conn.pc.cc:760
 hgeomora2conn.pc.cc:761
 hgeomora2conn.pc.cc:762
 hgeomora2conn.pc.cc:763
 hgeomora2conn.pc.cc:764
 hgeomora2conn.pc.cc:765
 hgeomora2conn.pc.cc:766
 hgeomora2conn.pc.cc:767
 hgeomora2conn.pc.cc:768
 hgeomora2conn.pc.cc:769
 hgeomora2conn.pc.cc:770
 hgeomora2conn.pc.cc:771
 hgeomora2conn.pc.cc:772
 hgeomora2conn.pc.cc:773
 hgeomora2conn.pc.cc:774
 hgeomora2conn.pc.cc:775
 hgeomora2conn.pc.cc:776
 hgeomora2conn.pc.cc:777
 hgeomora2conn.pc.cc:778
 hgeomora2conn.pc.cc:779
 hgeomora2conn.pc.cc:780
 hgeomora2conn.pc.cc:781
 hgeomora2conn.pc.cc:782
 hgeomora2conn.pc.cc:783
 hgeomora2conn.pc.cc:784
 hgeomora2conn.pc.cc:785
 hgeomora2conn.pc.cc:786
 hgeomora2conn.pc.cc:787
 hgeomora2conn.pc.cc:788
 hgeomora2conn.pc.cc:789
 hgeomora2conn.pc.cc:790
 hgeomora2conn.pc.cc:791
 hgeomora2conn.pc.cc:792
 hgeomora2conn.pc.cc:793
 hgeomora2conn.pc.cc:794
 hgeomora2conn.pc.cc:795
 hgeomora2conn.pc.cc:796
 hgeomora2conn.pc.cc:797
 hgeomora2conn.pc.cc:798
 hgeomora2conn.pc.cc:799
 hgeomora2conn.pc.cc:800
 hgeomora2conn.pc.cc:801
 hgeomora2conn.pc.cc:802
 hgeomora2conn.pc.cc:803
 hgeomora2conn.pc.cc:804
 hgeomora2conn.pc.cc:805
 hgeomora2conn.pc.cc:806
 hgeomora2conn.pc.cc:807
 hgeomora2conn.pc.cc:808
 hgeomora2conn.pc.cc:809
 hgeomora2conn.pc.cc:810
 hgeomora2conn.pc.cc:811
 hgeomora2conn.pc.cc:812
 hgeomora2conn.pc.cc:813
 hgeomora2conn.pc.cc:814
 hgeomora2conn.pc.cc:815
 hgeomora2conn.pc.cc:816
 hgeomora2conn.pc.cc:817
 hgeomora2conn.pc.cc:818
 hgeomora2conn.pc.cc:819
 hgeomora2conn.pc.cc:820
 hgeomora2conn.pc.cc:821
 hgeomora2conn.pc.cc:822
 hgeomora2conn.pc.cc:823
 hgeomora2conn.pc.cc:824
 hgeomora2conn.pc.cc:825
 hgeomora2conn.pc.cc:826
 hgeomora2conn.pc.cc:827
 hgeomora2conn.pc.cc:828
 hgeomora2conn.pc.cc:829
 hgeomora2conn.pc.cc:830
 hgeomora2conn.pc.cc:831
 hgeomora2conn.pc.cc:832
 hgeomora2conn.pc.cc:833
 hgeomora2conn.pc.cc:834
 hgeomora2conn.pc.cc:835
 hgeomora2conn.pc.cc:836
 hgeomora2conn.pc.cc:837
 hgeomora2conn.pc.cc:838
 hgeomora2conn.pc.cc:839
 hgeomora2conn.pc.cc:840
 hgeomora2conn.pc.cc:841
 hgeomora2conn.pc.cc:842
 hgeomora2conn.pc.cc:843
 hgeomora2conn.pc.cc:844
 hgeomora2conn.pc.cc:845
 hgeomora2conn.pc.cc:846
 hgeomora2conn.pc.cc:847
 hgeomora2conn.pc.cc:848
 hgeomora2conn.pc.cc:849
 hgeomora2conn.pc.cc:850
 hgeomora2conn.pc.cc:851
 hgeomora2conn.pc.cc:852
 hgeomora2conn.pc.cc:853
 hgeomora2conn.pc.cc:854
 hgeomora2conn.pc.cc:855
 hgeomora2conn.pc.cc:856
 hgeomora2conn.pc.cc:857
 hgeomora2conn.pc.cc:858
 hgeomora2conn.pc.cc:859
 hgeomora2conn.pc.cc:860
 hgeomora2conn.pc.cc:861
 hgeomora2conn.pc.cc:862
 hgeomora2conn.pc.cc:863
 hgeomora2conn.pc.cc:864
 hgeomora2conn.pc.cc:865
 hgeomora2conn.pc.cc:866
 hgeomora2conn.pc.cc:867
 hgeomora2conn.pc.cc:868
 hgeomora2conn.pc.cc:869
 hgeomora2conn.pc.cc:870
 hgeomora2conn.pc.cc:871
 hgeomora2conn.pc.cc:872
 hgeomora2conn.pc.cc:873
 hgeomora2conn.pc.cc:874
 hgeomora2conn.pc.cc:875
 hgeomora2conn.pc.cc:876
 hgeomora2conn.pc.cc:877
 hgeomora2conn.pc.cc:878
 hgeomora2conn.pc.cc:879
 hgeomora2conn.pc.cc:880
 hgeomora2conn.pc.cc:881
 hgeomora2conn.pc.cc:882
 hgeomora2conn.pc.cc:883
 hgeomora2conn.pc.cc:884
 hgeomora2conn.pc.cc:885
 hgeomora2conn.pc.cc:886
 hgeomora2conn.pc.cc:887
 hgeomora2conn.pc.cc:888
 hgeomora2conn.pc.cc:889
 hgeomora2conn.pc.cc:890
 hgeomora2conn.pc.cc:891
 hgeomora2conn.pc.cc:892
 hgeomora2conn.pc.cc:893
 hgeomora2conn.pc.cc:894
 hgeomora2conn.pc.cc:895
 hgeomora2conn.pc.cc:896
 hgeomora2conn.pc.cc:897
 hgeomora2conn.pc.cc:898
 hgeomora2conn.pc.cc:899
 hgeomora2conn.pc.cc:900
 hgeomora2conn.pc.cc:901
 hgeomora2conn.pc.cc:902
 hgeomora2conn.pc.cc:903
 hgeomora2conn.pc.cc:904
 hgeomora2conn.pc.cc:905
 hgeomora2conn.pc.cc:906
 hgeomora2conn.pc.cc:907
 hgeomora2conn.pc.cc:908
 hgeomora2conn.pc.cc:909
 hgeomora2conn.pc.cc:910
 hgeomora2conn.pc.cc:911
 hgeomora2conn.pc.cc:912
 hgeomora2conn.pc.cc:913
 hgeomora2conn.pc.cc:914
 hgeomora2conn.pc.cc:915
 hgeomora2conn.pc.cc:916
 hgeomora2conn.pc.cc:917
 hgeomora2conn.pc.cc:918
 hgeomora2conn.pc.cc:919
 hgeomora2conn.pc.cc:920
 hgeomora2conn.pc.cc:921
 hgeomora2conn.pc.cc:922
 hgeomora2conn.pc.cc:923
 hgeomora2conn.pc.cc:924
 hgeomora2conn.pc.cc:925
 hgeomora2conn.pc.cc:926
 hgeomora2conn.pc.cc:927
 hgeomora2conn.pc.cc:928
 hgeomora2conn.pc.cc:929
 hgeomora2conn.pc.cc:930
 hgeomora2conn.pc.cc:931
 hgeomora2conn.pc.cc:932
 hgeomora2conn.pc.cc:933
 hgeomora2conn.pc.cc:934
 hgeomora2conn.pc.cc:935
 hgeomora2conn.pc.cc:936
 hgeomora2conn.pc.cc:937
 hgeomora2conn.pc.cc:938
 hgeomora2conn.pc.cc:939
 hgeomora2conn.pc.cc:940
 hgeomora2conn.pc.cc:941
 hgeomora2conn.pc.cc:942
 hgeomora2conn.pc.cc:943
 hgeomora2conn.pc.cc:944
 hgeomora2conn.pc.cc:945
 hgeomora2conn.pc.cc:946
 hgeomora2conn.pc.cc:947
 hgeomora2conn.pc.cc:948
 hgeomora2conn.pc.cc:949
 hgeomora2conn.pc.cc:950
 hgeomora2conn.pc.cc:951
 hgeomora2conn.pc.cc:952
 hgeomora2conn.pc.cc:953
 hgeomora2conn.pc.cc:954
 hgeomora2conn.pc.cc:955
 hgeomora2conn.pc.cc:956
 hgeomora2conn.pc.cc:957
 hgeomora2conn.pc.cc:958
 hgeomora2conn.pc.cc:959
 hgeomora2conn.pc.cc:960